From 8808f0f8249c10790d35be1785368ac0ee8c5ee5 Mon Sep 17 00:00:00 2001 From: Taus Date: Wed, 8 Jan 2025 15:56:17 +0000 Subject: [PATCH 001/656] Misc: Add script for calculating MRVA totals Use this script if you want to quickly calculate the totals of some query across all the queries in a MRVA run. For an example of such a query, see e.g. `python/ql/src/Metrics/Internal/TypeAnnotations.ql` The script expects the query to produce an output table of the form ``` | header0 | header1 | header2 | header3 | ... |----------|----------|----------|----------|---- | message1 | value11 | value12 | value13 | ... | message2 | value21 | value22 | value23 | ... ... ``` where all of the `values` are numbers. For each `(message, header)` pair, it then calculates the total of all the values in that cell, across all of the repos in the MRVA run. To use the script, simply pass it the URL of the exported Gist of the MRVA run. After calculating the totals, the script will then (optionally, but by default) add the totals to the `_summary.md` file, and push these changes to the Gist. --- misc/scripts/calculate_mrva_totals.py | 131 ++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 misc/scripts/calculate_mrva_totals.py diff --git a/misc/scripts/calculate_mrva_totals.py b/misc/scripts/calculate_mrva_totals.py new file mode 100644 index 00000000000..cec1b8b54bf --- /dev/null +++ b/misc/scripts/calculate_mrva_totals.py @@ -0,0 +1,131 @@ +import os +import subprocess +import tempfile +import argparse +from collections import defaultdict + +help_text = """ +To use this script, pass the URL of a GitHub Gist as an argument. The Gist should contain the +exported MarkDown output of a MRVA run. + +The script expects the query to produce an output table of the form +``` +| header0 | header1 | header2 | header3 | ... +|----------|----------|----------|----------|---- +| message1 | value11 | value12 | value13 | ... +| message2 | value21 | value22 | value23 | ... +... +``` +The script will calculate the totals for each message and header, and put a table containing these +totals in the `_summary.md` file in the Gist. By default it will then commit and push these changes +to the Gist (having first displayed a diff of the changes). +""" + +first_header = "" + +def split_line(line): + return [item.strip() for item in line.strip('|').split('|')] + +def parse_markdown_table(stream): + global first_header + iterator = (line.strip() for line in stream) + + # Skip irrelevant lines until we find the header line + for line in iterator: + if line.startswith('|'): + first_header, *headers = split_line(line) + break + + # Skip the separator line + next(iterator) + + data_dict = {} + + # Process the remaining lines + for line in iterator: + if line.startswith('|'): + message, *values = [value.strip('`') for value in split_line(line)] + data_dict[message] = { + headers[i]: int(value) if value.isdigit() else value + for i, value in enumerate(values) + } + + return data_dict + +def clone_gist(gist_url, repo_dir): + try: + subprocess.run(["gh", "gist", "clone", gist_url, repo_dir], check=True) + except subprocess.CalledProcessError: + print(f"Failed to clone the gist from {gist_url}") + subprocess.run(["rm", "-rf", repo_dir]) + exit(1) + +def process_gist_files(repo_dir): + total_data = defaultdict(lambda: defaultdict(int)) + + for filename in os.listdir(repo_dir): + if filename.endswith(".md") and filename != "_summary.md": + with open(os.path.join(repo_dir, filename), "r") as file: + data_dict = parse_markdown_table(file) + + for message, values in data_dict.items(): + for header, value in values.items(): + if isinstance(value, int): + total_data[message][header] += value + + return total_data + +def append_totals_to_summary(total_data, repo_dir): + global first_header + summary_path = os.path.join(repo_dir, "_summary.md") + with open(summary_path, "r") as summary_file: + content = summary_file.read() + + totals_table = "\n\n### Totals\n\n" + headers = [first_header] + list(next(iter(total_data.values())).keys()) + totals_table += "| " + " | ".join(headers) + " |\n" + totals_table += "| " + "|".join(["---"] + ["---:"] * (len(headers) - 1)) + " |\n" # Right align all but the first column + for message, values in total_data.items(): + row = [message] + [f"{values[header]:,}" for header in headers[1:]] + totals_table += "| " + " | ".join(row) + " |\n" + + new_content = content.replace("### Summary", totals_table + "\n### Summary") + + with open(summary_path, "w") as summary_file: + summary_file.write(new_content) + +def commit_and_push_changes(repo_dir): + subprocess.run(["git", "add", "_summary.md"], cwd=repo_dir, check=True) + subprocess.run(["git", "commit", "-m", "Update summary with totals"], cwd=repo_dir, check=True) + subprocess.run(["git", "push"], cwd=repo_dir, check=True) + +def show_git_diff(repo_dir): + subprocess.run(["git", "diff", "_summary.md"], cwd=repo_dir, check=True) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Calculate MRVA totals from a GitHub Gist", epilog=help_text, formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument("gist_url", nargs='?', help="URL of the GitHub Gist") + parser.add_argument("--keep-dir", action="store_true", help="Keep the temporary directory") + + args = parser.parse_args() + + if not args.gist_url: + parser.print_help() + exit(1) + + repo_dir = tempfile.mkdtemp(dir=".") + clone_gist(args.gist_url, repo_dir) + + total_data = process_gist_files(repo_dir) + + append_totals_to_summary(total_data, repo_dir) + + show_git_diff(repo_dir) + + if input("Do you want to push the changes to the gist? (Y/n): ").strip().lower() in ['y', '']: + commit_and_push_changes(repo_dir) + + if args.keep_dir: + print(f"Temporary directory retained at: {repo_dir}") + else: + subprocess.run(["rm", "-rf", repo_dir]) From 395d54bf867803acddc8012c4c44bf8b56531165 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 23 Jan 2025 12:46:09 +0100 Subject: [PATCH 002/656] Create Base.qll --- cpp/ql/lib/experimental/Quantum/Base.qll | 165 +++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 cpp/ql/lib/experimental/Quantum/Base.qll diff --git a/cpp/ql/lib/experimental/Quantum/Base.qll b/cpp/ql/lib/experimental/Quantum/Base.qll new file mode 100644 index 00000000000..bfdd509174e --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/Base.qll @@ -0,0 +1,165 @@ +/** + * A language-independent library for reasoning about cryptography. + */ + +import codeql.util.Location +import codeql.util.Option + +signature module InputSig { + class KnownUnknownLocation extends Location; + + class LocatableElement { + Location getLocation(); + } +} + +module CryptographyBase Input> { + final class LocatableElement = Input::LocatableElement; + + newtype TNode = + TNodeUnknown() or + TNodeAsset() or + TNodeValue() // currently unused + + class KnownNode = TNodeAsset or TNodeValue; + + abstract class NodeBase extends TNode { + /** + * Returns a string representation of this node, usually the name of the operation/algorithm/property. + */ + abstract string toString(); + + /** + * Returns the location of this node in the code. + */ + abstract Location getLocation(); + + /** + * Returns the child of this node with the given edge name. + * + * This predicate is used by derived classes to construct the graph of cryptographic operations. + */ + NodeBase getChild(string edgeName) { none() } + + /** + * Returns the parent of this node. + */ + final NodeBase getAParent() { result.getChild(_) = this } + } + + /** + * A node representing an unknown value. + * + * If a property should have a value but that value is unknown, `UnknownNode` to represent that value. + */ + final class UnknownNode extends NodeBase, TNodeUnknown { + override string toString() { result = "unknown" } + + override Location getLocation() { result instanceof Input::KnownUnknownLocation } + } + + /** + * A node with a known location in the code. + */ + abstract class LocatableNode extends NodeBase, TNodeAsset { + abstract LocatableElement toElement(); + + override Location getLocation() { result = this.toElement().getLocation() } + } + + /** + * A node representing a known asset, i.e., an algorithm, operation, or property. + */ + class Asset = LocatableNode; + + /** + * A cryptographic operation, such as hashing or encryption. + */ + abstract class Operation extends Asset { + /** + * Gets the algorithm associated with this operation. + */ + private NodeBase getAlgorithmOrUnknown() { + if exists(this.getAlgorithm()) + then result = this.getAlgorithm() + else result instanceof UnknownNode + } + + abstract Algorithm getAlgorithm(); + + /** + * Gets the name of this operation, e.g., "hash" or "encrypt". + */ + abstract string getOperationName(); + + final override string toString() { result = this.getOperationName() } + + override NodeBase getChild(string edgeName) { + edgeName = "algorithm" and + this.getAlgorithmOrUnknown() = result + } + } + + abstract class Algorithm extends Asset { + /** + * Gets the name of this algorithm, e.g., "AES" or "SHA". + */ + abstract string getAlgorithmName(); + + final override string toString() { result = this.getAlgorithmName() } + } + + /** + * A hashing operation that processes data to generate a hash value. + * This operation takes an input message of arbitrary content and length and produces a fixed-size + * hash value as the output using a specified hashing algorithm. + */ + abstract class HashOperation extends Operation { + abstract override HashAlgorithm getAlgorithm(); + + override string getOperationName() { result = "hash" } + } + + /** + * A hashing algorithm that transforms variable-length input into a fixed-size hash value. + */ + abstract class HashAlgorithm extends Algorithm { } + + /** + * An operation that derives one or more keys from an input value. + */ + abstract class KeyDerivationOperation extends Operation { + override string getOperationName() { result = "key derivation" } + } + + /** + * An algorithm that derives one or more keys from an input value. + */ + abstract class KeyDerivationAlgorithm extends Algorithm { + abstract override string getAlgorithmName(); + } + + /** + * HKDF Extract+Expand key derivation function. + */ + abstract class HKDFAlgorithm extends KeyDerivationAlgorithm { + final override string getAlgorithmName() { result = "HKDF" } + + private NodeBase getHashAlgorithmOrUnknown() { + if exists(this.getHashAlgorithm()) + then result = this.getHashAlgorithm() + else result instanceof UnknownNode + } + + abstract HashAlgorithm getHashAlgorithm(); + + /** + * digest:HashAlgorithm + */ + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + edgeName = "digest" and result = this.getHashAlgorithmOrUnknown() + } + } +} From 1a7d8cb99db194624238ab0d2880bd6984c96904 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Fri, 24 Jan 2025 17:33:03 +0100 Subject: [PATCH 003/656] WIP --- cpp/ql/lib/experimental/Quantum/Base.qll | 84 +++++------- .../lib/experimental/Quantum/BaseBackup.qll | 125 ++++++++++++++++++ cpp/ql/lib/experimental/Quantum/Language.qll | 10 ++ cpp/ql/lib/experimental/Quantum/OpenSSL.qll | 100 ++++++++++++++ cpp/ql/src/experimental/Quantum/Test.ql | 17 +++ cpp/ql/src/experimental/Quantum/Test2.ql | 8 ++ 6 files changed, 290 insertions(+), 54 deletions(-) create mode 100644 cpp/ql/lib/experimental/Quantum/BaseBackup.qll create mode 100644 cpp/ql/lib/experimental/Quantum/Language.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL.qll create mode 100644 cpp/ql/src/experimental/Quantum/Test.ql create mode 100644 cpp/ql/src/experimental/Quantum/Test2.ql diff --git a/cpp/ql/lib/experimental/Quantum/Base.qll b/cpp/ql/lib/experimental/Quantum/Base.qll index bfdd509174e..8a910eb4414 100644 --- a/cpp/ql/lib/experimental/Quantum/Base.qll +++ b/cpp/ql/lib/experimental/Quantum/Base.qll @@ -6,8 +6,6 @@ import codeql.util.Location import codeql.util.Option signature module InputSig { - class KnownUnknownLocation extends Location; - class LocatableElement { Location getLocation(); } @@ -16,14 +14,7 @@ signature module InputSig { module CryptographyBase Input> { final class LocatableElement = Input::LocatableElement; - newtype TNode = - TNodeUnknown() or - TNodeAsset() or - TNodeValue() // currently unused - - class KnownNode = TNodeAsset or TNodeValue; - - abstract class NodeBase extends TNode { + abstract class NodeBase instanceof LocatableElement { /** * Returns a string representation of this node, usually the name of the operation/algorithm/property. */ @@ -32,14 +23,19 @@ module CryptographyBase Input> { /** * Returns the location of this node in the code. */ - abstract Location getLocation(); + Location getLocation() { result = super.getLocation() } /** * Returns the child of this node with the given edge name. * * This predicate is used by derived classes to construct the graph of cryptographic operations. */ - NodeBase getChild(string edgeName) { none() } + NodeBase getChild(string edgeName) { edgeName = "origin" and result = this.getOrigin() } + + /** + * Gets the origin of this node, e.g., a string literal in source describing it. + */ + NodeBase getOrigin() { none() } /** * Returns the parent of this node. @@ -47,30 +43,7 @@ module CryptographyBase Input> { final NodeBase getAParent() { result.getChild(_) = this } } - /** - * A node representing an unknown value. - * - * If a property should have a value but that value is unknown, `UnknownNode` to represent that value. - */ - final class UnknownNode extends NodeBase, TNodeUnknown { - override string toString() { result = "unknown" } - - override Location getLocation() { result instanceof Input::KnownUnknownLocation } - } - - /** - * A node with a known location in the code. - */ - abstract class LocatableNode extends NodeBase, TNodeAsset { - abstract LocatableElement toElement(); - - override Location getLocation() { result = this.toElement().getLocation() } - } - - /** - * A node representing a known asset, i.e., an algorithm, operation, or property. - */ - class Asset = LocatableNode; + class Asset = NodeBase; /** * A cryptographic operation, such as hashing or encryption. @@ -79,12 +52,6 @@ module CryptographyBase Input> { /** * Gets the algorithm associated with this operation. */ - private NodeBase getAlgorithmOrUnknown() { - if exists(this.getAlgorithm()) - then result = this.getAlgorithm() - else result instanceof UnknownNode - } - abstract Algorithm getAlgorithm(); /** @@ -95,8 +62,10 @@ module CryptographyBase Input> { final override string toString() { result = this.getOperationName() } override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or edgeName = "algorithm" and - this.getAlgorithmOrUnknown() = result + if exists(this.getAlgorithm()) then result = this.getAlgorithm() else result = this } } @@ -125,6 +94,10 @@ module CryptographyBase Input> { */ abstract class HashAlgorithm extends Algorithm { } + abstract class SHA1 extends HashAlgorithm { + override string getAlgorithmName() { result = "SHA1" } + } + /** * An operation that derives one or more keys from an input value. */ @@ -142,24 +115,27 @@ module CryptographyBase Input> { /** * HKDF Extract+Expand key derivation function. */ - abstract class HKDFAlgorithm extends KeyDerivationAlgorithm { + abstract class HKDF extends KeyDerivationAlgorithm { final override string getAlgorithmName() { result = "HKDF" } - private NodeBase getHashAlgorithmOrUnknown() { - if exists(this.getHashAlgorithm()) - then result = this.getHashAlgorithm() - else result instanceof UnknownNode - } - abstract HashAlgorithm getHashAlgorithm(); - /** - * digest:HashAlgorithm - */ override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or - edgeName = "digest" and result = this.getHashAlgorithmOrUnknown() + edgeName = "digest" and result = this.getHashAlgorithm() + } + } + + abstract class PKCS12KDF extends KeyDerivationAlgorithm { + final override string getAlgorithmName() { result = "PKCS12KDF" } + + abstract HashAlgorithm getHashAlgorithm(); + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + edgeName = "digest" and result = this.getHashAlgorithm() } } } diff --git a/cpp/ql/lib/experimental/Quantum/BaseBackup.qll b/cpp/ql/lib/experimental/Quantum/BaseBackup.qll new file mode 100644 index 00000000000..821c89eb8f5 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/BaseBackup.qll @@ -0,0 +1,125 @@ +/** + * A language-independent library for reasoning about cryptography. + */ + +import codeql.util.Location +import codeql.util.Option + +signature module InputSig { + class KnownUnknownLocation extends Location; + + class LocatableElement { + Location getLocation(); + } +} + +// An operation = a specific loc in code +// An algorithm +// Properties +// Node -> Operation -> Algorithm -> Symmetric -> SpecificSymmetricAlgo +// -[Language-Specific]-> LibrarySymmetricAlgo -> Properties +// For example (nsted newtypes): +/* + * newtype for each algo, and each one of those would have params for their properties + * implementation: optional/range for example + * + * + * + * /** + * Constructs an `Option` type that is a disjoint union of the given type and an + * additional singleton element. + */ + +module CryptographyBase Input> { + newtype TNode = + TNodeUnknown() or + TNodeAlgorithm() or + TNodeOperation() + + /* + * A cryptographic asset in code, i.e., an algorithm, operation, property, or known unknown. + */ + + abstract class Node extends TNode { + // this would then extend LanguageNode + abstract Location getLocation(); + + abstract string toString(); + + abstract Node getChild(int childIndex); + + final Node getAChild() { result = this.getChild(_) } + + final Node getAParent() { result.getAChild() = this } + } + + final class KnownUnknown extends Node, TNodeUnknown { + override string toString() { result = "unknown" } + + override Node getChild(int childIndex) { none() } + + override Location getLocation() { result instanceof Input::KnownUnknownLocation } + } + + abstract class Operation extends Node, TNodeOperation { + /** + * Gets the algorithm associated with this operation. + */ + abstract Node getAlgorithm(); + + /** + * Gets the name of this operation, e.g., "hash" or "encrypt". + */ + abstract string getOperationName(); + + final override Node getChild(int childIndex) { childIndex = 0 and result = this.getAlgorithm() } + + final override string toString() { result = this.getOperationName() } + } + + abstract class Algorithm extends Node, TNodeAlgorithm { + /** + * Gets the name of this algorithm, e.g., "AES" or "SHA". + */ + abstract string getAlgorithmName(); + } + + /** + * A hashing operation that processes data to generate a hash value. + * This operation takes an input message of arbitrary content and length and produces a fixed-size + * hash value as the output using a specified hashing algorithm. + */ + abstract class HashOperation extends Operation { + abstract override HashAlgorithm getAlgorithm(); + + override string getOperationName() { result = "hash" } + } + + /** + * A hashing algorithm that transforms variable-length input into a fixed-size hash value. + */ + abstract class HashAlgorithm extends Algorithm { } + + /** + * An operation that derives one or more keys from an input value. + */ + abstract class KeyDerivationOperation extends Operation { + override string getOperationName() { result = "key derivation" } + } + + /** + * An algorithm that derives one or more keys from an input value. + */ + abstract class KeyDerivationAlgorithm extends Algorithm { + abstract override string getAlgorithmName(); + } + + /** + * HKDF Extract+Expand key derivation function. + */ + abstract class HKDFAlgorithm extends KeyDerivationAlgorithm { + final override string getAlgorithmName() { result = "HKDF" } + + abstract Node getDigestAlgorithm(); + } +} diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll new file mode 100644 index 00000000000..108993fb134 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -0,0 +1,10 @@ +private import Base +private import cpp as Lang + +module CryptoInput implements InputSig { + class LocatableElement = Lang::Locatable; +} + +module Crypto = CryptographyBase; + +import OpenSSL diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll new file mode 100644 index 00000000000..b489a6630a0 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll @@ -0,0 +1,100 @@ +import cpp +import semmle.code.cpp.dataflow.new.DataFlow + +module OpenSSLModel { + import Language + + abstract class KeyDerivationOperation extends Crypto::KeyDerivationOperation { } + + class SHA1Algo extends Crypto::SHA1 instanceof MacroAccess { + SHA1Algo() { this.getMacro().getName() = "SN_sha1" } + } + + module AlgorithmToEVPKeyDeriveConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr() instanceof KeyDerivationAlgorithm } + + predicate isSink(DataFlow::Node sink) { + exists(EVP_KDF_derive kdo | sink.asExpr() = kdo.getAlgorithmArg()) + } + } + + module AlgorithmToEVPKeyDeriveFlow = DataFlow::Global; + + predicate algorithm_to_EVP_KDF_derive(Crypto::Algorithm algo, EVP_KDF_derive derive) { + algo.(Expr).getEnclosingFunction() = derive.(Expr).getEnclosingFunction() + } + + class EVP_KDF_derive extends KeyDerivationOperation instanceof FunctionCall { + EVP_KDF_derive() { this.getTarget().getName() = "EVP_KDF_derive" } + + override Crypto::Algorithm getAlgorithm() { algorithm_to_EVP_KDF_derive(result, this) } + + Expr getAlgorithmArg() { result = this.(FunctionCall).getArgument(3) } + } + + abstract class KeyDerivationAlgorithm extends Crypto::KeyDerivationAlgorithm { } + + class EVP_KDF_fetch_Call extends FunctionCall { + EVP_KDF_fetch_Call() { this.getTarget().getName() = "EVP_KDF_fetch" } + + Expr getAlgorithmArg() { result = this.getArgument(1) } + } + + predicate kdf_names(string algo) { algo = ["HKDF", "PKCS12KDF"] } + + class KDFAlgorithmStringLiteral extends Crypto::NodeBase instanceof StringLiteral { + KDFAlgorithmStringLiteral() { kdf_names(this.getValue().toUpperCase()) } + + override string toString() { result = this.(StringLiteral).toString() } + + string getValue() { result = this.(StringLiteral).getValue() } + } + + private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KDFAlgorithmStringLiteral } + + predicate isSink(DataFlow::Node sink) { + exists(EVP_KDF_fetch_Call call | sink.asExpr() = call.getAlgorithmArg()) + } + } + + module AlgorithmStringToFetchFlow = DataFlow::Global; + + predicate algorithmStringToKDFFetchArgFlow(string name, KDFAlgorithmStringLiteral origin, Expr arg) { + exists(EVP_KDF_fetch_Call sinkCall | + origin.getValue().toUpperCase() = name and + arg = sinkCall.getAlgorithmArg() and + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) + ) + } + + class HKDF extends KeyDerivationAlgorithm, Crypto::HKDF instanceof Expr { + KDFAlgorithmStringLiteral origin; + + HKDF() { algorithmStringToKDFFetchArgFlow("HKDF", origin, this) } + + override Crypto::HashAlgorithm getHashAlgorithm() { none() } + + override Crypto::NodeBase getOrigin() { result = origin } + } + + class TestKeyDerivationOperationHacky extends KeyDerivationOperation instanceof FunctionCall { + HKDF hkdf; + + TestKeyDerivationOperationHacky() { + this.getEnclosingFunction() = hkdf.(Expr).getEnclosingFunction() + } + + override Crypto::KeyDerivationAlgorithm getAlgorithm() { result = hkdf } + } + + class PKCS12KDF extends KeyDerivationAlgorithm, Crypto::PKCS12KDF instanceof Expr { + KDFAlgorithmStringLiteral origin; + + PKCS12KDF() { algorithmStringToKDFFetchArgFlow("PKCS12KDF", origin, this) } + + override Crypto::HashAlgorithm getHashAlgorithm() { none() } + + override Crypto::NodeBase getOrigin() { result = origin } + } +} diff --git a/cpp/ql/src/experimental/Quantum/Test.ql b/cpp/ql/src/experimental/Quantum/Test.ql new file mode 100644 index 00000000000..a9ad5021a29 --- /dev/null +++ b/cpp/ql/src/experimental/Quantum/Test.ql @@ -0,0 +1,17 @@ +/** + * @name "PQC Test" + * @kind graph + */ + +import experimental.Quantum.Language + +query predicate nodes(Crypto::NodeBase node) { any() } + +query predicate edges(Crypto::NodeBase source, Crypto::NodeBase target, string key, string value) { + target = source.getChild(value) and + key = "semmle.label" +} + +query predicate graphProperties(string key, string value) { + key = "semmle.graphKind" and value = "tree" +} diff --git a/cpp/ql/src/experimental/Quantum/Test2.ql b/cpp/ql/src/experimental/Quantum/Test2.ql new file mode 100644 index 00000000000..f5971da9644 --- /dev/null +++ b/cpp/ql/src/experimental/Quantum/Test2.ql @@ -0,0 +1,8 @@ +/** + * @name "PQC Test" + */ + +import experimental.Quantum.Language + +from Crypto::KeyDerivationAlgorithm n +select n From 78362341fff9adb73deaf5a3a3f85f1da66481b0 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Fri, 24 Jan 2025 22:32:32 +0100 Subject: [PATCH 004/656] WIP: hash types example and documentation --- cpp/ql/lib/experimental/Quantum/Base.qll | 38 ++++++++++++++++++--- cpp/ql/lib/experimental/Quantum/OpenSSL.qll | 4 ++- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/Base.qll b/cpp/ql/lib/experimental/Quantum/Base.qll index 8a910eb4414..22e810f4aff 100644 --- a/cpp/ql/lib/experimental/Quantum/Base.qll +++ b/cpp/ql/lib/experimental/Quantum/Base.qll @@ -64,7 +64,7 @@ module CryptographyBase Input> { override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or - edgeName = "algorithm" and + edgeName = "uses" and if exists(this.getAlgorithm()) then result = this.getAlgorithm() else result = this } } @@ -89,13 +89,43 @@ module CryptographyBase Input> { override string getOperationName() { result = "hash" } } + // Rule: no newtype representing a type of algorithm should be modelled with multiple interfaces + // + // Example: HKDF and PKCS12KDF are both key derivation algorithms. + // However, PKCS12KDF also has a property: the iteration count. + // + // If we have HKDF and PKCS12KDF under TKeyDerivationType, + // someone modelling a library might try to make a generic identification of both of those algorithms. + // + // They will therefore not use the specialized type for PKCS12KDF, + // meaning "from PKCS12KDF algo select algo" will have no results. + // + newtype THashType = + // We're saying by this that all of these have an identical interface / properties / edges + MD5() or + SHA1() or + SHA256() or + SHA512() + + class HashAlgorithmType extends THashType { + string toString() { hashTypeToNameMapping(this, result) } + } + + predicate hashTypeToNameMapping(THashType type, string name) { + type instanceof SHA1 and name = "SHA-1" + or + type instanceof SHA256 and name = "SHA-256" + or + type instanceof SHA512 and name = "SHA-512" + } + /** * A hashing algorithm that transforms variable-length input into a fixed-size hash value. */ - abstract class HashAlgorithm extends Algorithm { } + abstract class HashAlgorithm extends Algorithm { + abstract HashAlgorithmType getHashType(); - abstract class SHA1 extends HashAlgorithm { - override string getAlgorithmName() { result = "SHA1" } + override string getAlgorithmName() { hashTypeToNameMapping(this.getHashType(), result) } } /** diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll index b489a6630a0..17de5ddab60 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll @@ -6,8 +6,10 @@ module OpenSSLModel { abstract class KeyDerivationOperation extends Crypto::KeyDerivationOperation { } - class SHA1Algo extends Crypto::SHA1 instanceof MacroAccess { + class SHA1Algo extends Crypto::HashAlgorithm instanceof MacroAccess { SHA1Algo() { this.getMacro().getName() = "SN_sha1" } + + override Crypto::HashAlgorithmType getHashType() { result instanceof Crypto::SHA1 } } module AlgorithmToEVPKeyDeriveConfig implements DataFlow::ConfigSig { From e027b0e9a0e56f21226d832bcd87751a8c0ee47f Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Tue, 28 Jan 2025 02:02:06 +0100 Subject: [PATCH 005/656] WIP: add properties --- cpp/ql/lib/experimental/Quantum/Base.qll | 95 +++++++++++++++----- cpp/ql/lib/experimental/Quantum/Language.qll | 2 + cpp/ql/lib/experimental/Quantum/OpenSSL.qll | 12 ++- cpp/ql/src/experimental/Quantum/Test.ql | 28 +++++- cpp/ql/src/experimental/Quantum/Test2.ql | 4 +- 5 files changed, 114 insertions(+), 27 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/Base.qll b/cpp/ql/lib/experimental/Quantum/Base.qll index 22e810f4aff..b3f4d619f4d 100644 --- a/cpp/ql/lib/experimental/Quantum/Base.qll +++ b/cpp/ql/lib/experimental/Quantum/Base.qll @@ -9,11 +9,19 @@ signature module InputSig { class LocatableElement { Location getLocation(); } + + class UnknownLocation instanceof Location; } module CryptographyBase Input> { final class LocatableElement = Input::LocatableElement; + final class UnknownLocation = Input::UnknownLocation; + + final class UnknownPropertyValue extends string { + UnknownPropertyValue() { this = "" } + } + abstract class NodeBase instanceof LocatableElement { /** * Returns a string representation of this node, usually the name of the operation/algorithm/property. @@ -25,17 +33,26 @@ module CryptographyBase Input> { */ Location getLocation() { result = super.getLocation() } + /** + * Gets the origin of this node, e.g., a string literal in source describing it. + */ + LocatableElement getOrigin(string value) { none() } + /** * Returns the child of this node with the given edge name. * * This predicate is used by derived classes to construct the graph of cryptographic operations. */ - NodeBase getChild(string edgeName) { edgeName = "origin" and result = this.getOrigin() } + NodeBase getChild(string edgeName) { none() } /** - * Gets the origin of this node, e.g., a string literal in source describing it. + * Defines properties of this node by name and either a value or location or both. + * + * This predicate is used by derived classes to construct the graph of cryptographic operations. */ - NodeBase getOrigin() { none() } + predicate properties(string key, string value, Location location) { + key = "origin" and location = this.getOrigin(value).getLocation() + } /** * Returns the parent of this node. @@ -86,7 +103,7 @@ module CryptographyBase Input> { abstract class HashOperation extends Operation { abstract override HashAlgorithm getAlgorithm(); - override string getOperationName() { result = "hash" } + override string getOperationName() { result = "HASH" } } // Rule: no newtype representing a type of algorithm should be modelled with multiple interfaces @@ -105,34 +122,40 @@ module CryptographyBase Input> { MD5() or SHA1() or SHA256() or - SHA512() - - class HashAlgorithmType extends THashType { - string toString() { hashTypeToNameMapping(this, result) } - } - - predicate hashTypeToNameMapping(THashType type, string name) { - type instanceof SHA1 and name = "SHA-1" - or - type instanceof SHA256 and name = "SHA-256" - or - type instanceof SHA512 and name = "SHA-512" - } + SHA512() or + OtherHashType() /** * A hashing algorithm that transforms variable-length input into a fixed-size hash value. */ abstract class HashAlgorithm extends Algorithm { - abstract HashAlgorithmType getHashType(); + final predicate hashTypeToNameMapping(THashType type, string name) { + type instanceof MD5 and name = "MD5" + or + type instanceof SHA1 and name = "SHA-1" + or + type instanceof SHA256 and name = "SHA-256" + or + type instanceof SHA512 and name = "SHA-512" + or + type instanceof OtherHashType and name = this.getRawAlgorithmName() + } - override string getAlgorithmName() { hashTypeToNameMapping(this.getHashType(), result) } + abstract THashType getHashType(); + + override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashType(), result) } + + /** + * Gets the raw name of this hash algorithm from source. + */ + abstract string getRawAlgorithmName(); } /** * An operation that derives one or more keys from an input value. */ abstract class KeyDerivationOperation extends Operation { - override string getOperationName() { result = "key derivation" } + override string getOperationName() { result = "KEY_DERIVATION" } } /** @@ -143,7 +166,7 @@ module CryptographyBase Input> { } /** - * HKDF Extract+Expand key derivation function. + * HKDF key derivation function */ abstract class HKDF extends KeyDerivationAlgorithm { final override string getAlgorithmName() { result = "HKDF" } @@ -157,6 +180,9 @@ module CryptographyBase Input> { } } + /** + * PKCS #12 key derivation function + */ abstract class PKCS12KDF extends KeyDerivationAlgorithm { final override string getAlgorithmName() { result = "PKCS12KDF" } @@ -168,4 +194,31 @@ module CryptographyBase Input> { edgeName = "digest" and result = this.getHashAlgorithm() } } + + /** + * Elliptic curve algorithm + */ + abstract class EllipticCurve extends Algorithm { + abstract string getVersion(Location location); + + abstract string getKeySize(Location location); + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + key = "version" and + if exists(this.getVersion(location)) + then value = this.getVersion(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + or + key = "key_size" and + if exists(this.getKeySize(location)) + then value = this.getKeySize(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + } + } } diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index 108993fb134..c9398c9e324 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -3,6 +3,8 @@ private import cpp as Lang module CryptoInput implements InputSig { class LocatableElement = Lang::Locatable; + + class UnknownLocation = Lang::UnknownDefaultLocation; } module Crypto = CryptographyBase; diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll index 17de5ddab60..852fedf646a 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll @@ -9,7 +9,9 @@ module OpenSSLModel { class SHA1Algo extends Crypto::HashAlgorithm instanceof MacroAccess { SHA1Algo() { this.getMacro().getName() = "SN_sha1" } - override Crypto::HashAlgorithmType getHashType() { result instanceof Crypto::SHA1 } + override string getRawAlgorithmName() { result = "SN_sha1" } + + override Crypto::THashType getHashType() { result instanceof Crypto::SHA1 } } module AlgorithmToEVPKeyDeriveConfig implements DataFlow::ConfigSig { @@ -77,7 +79,9 @@ module OpenSSLModel { override Crypto::HashAlgorithm getHashAlgorithm() { none() } - override Crypto::NodeBase getOrigin() { result = origin } + override Crypto::LocatableElement getOrigin(string name) { + result = origin and name = origin.toString() + } } class TestKeyDerivationOperationHacky extends KeyDerivationOperation instanceof FunctionCall { @@ -97,6 +101,8 @@ module OpenSSLModel { override Crypto::HashAlgorithm getHashAlgorithm() { none() } - override Crypto::NodeBase getOrigin() { result = origin } + override Crypto::NodeBase getOrigin(string name) { + result = origin and name = origin.toString() + } } } diff --git a/cpp/ql/src/experimental/Quantum/Test.ql b/cpp/ql/src/experimental/Quantum/Test.ql index a9ad5021a29..87341a6b612 100644 --- a/cpp/ql/src/experimental/Quantum/Test.ql +++ b/cpp/ql/src/experimental/Quantum/Test.ql @@ -5,7 +5,33 @@ import experimental.Quantum.Language -query predicate nodes(Crypto::NodeBase node) { any() } +string getValueAndLocationPairs(Crypto::NodeBase node, string key) { + exists(string value, Location location | + node.properties(key, value, location) and + result = "(" + value + "," + location.toString() + ")" + ) +} + +string properties(Crypto::NodeBase node) { + forex(string key | node.properties(key, _, _) | + result = key + ":" + strictconcat(getValueAndLocationPairs(node, key), ",") + ) +} + +string getLabel(Crypto::NodeBase node) { + result = + "[" + node.toString() + "]" + + any(string prop | + if exists(properties(node)) then prop = " " + properties(node) else prop = "" + | + prop + ) +} + +query predicate nodes(Crypto::NodeBase node, string key, string value) { + key = "semmle.label" and + value = getLabel(node) +} query predicate edges(Crypto::NodeBase source, Crypto::NodeBase target, string key, string value) { target = source.getChild(value) and diff --git a/cpp/ql/src/experimental/Quantum/Test2.ql b/cpp/ql/src/experimental/Quantum/Test2.ql index f5971da9644..3f48f156a43 100644 --- a/cpp/ql/src/experimental/Quantum/Test2.ql +++ b/cpp/ql/src/experimental/Quantum/Test2.ql @@ -4,5 +4,5 @@ import experimental.Quantum.Language -from Crypto::KeyDerivationAlgorithm n -select n +from Crypto::NodeBase node +select node From 0cd3df9d2685d9aef55b2305c2ef2d478d3e1223 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Wed, 29 Jan 2025 10:27:46 -0500 Subject: [PATCH 006/656] Concepts for elliptic cureve and misc. updates. --- cpp/ql/lib/experimental/Quantum/Base.qll | 50 +++- python/ql/lib/experimental/Quantum/Base.qll | 250 ++++++++++++++++++ .../ql/lib/experimental/Quantum/Language.qll | 12 + .../experimental/Quantum/PycaCryptography.qll | 55 ++++ python/ql/lib/semmle/python/Files.qll | 37 +++ 5 files changed, 392 insertions(+), 12 deletions(-) create mode 100644 python/ql/lib/experimental/Quantum/Base.qll create mode 100644 python/ql/lib/experimental/Quantum/Language.qll create mode 100644 python/ql/lib/experimental/Quantum/PycaCryptography.qll diff --git a/cpp/ql/lib/experimental/Quantum/Base.qll b/cpp/ql/lib/experimental/Quantum/Base.qll index b3f4d619f4d..9be24ca6efa 100644 --- a/cpp/ql/lib/experimental/Quantum/Base.qll +++ b/cpp/ql/lib/experimental/Quantum/Base.qll @@ -92,6 +92,11 @@ module CryptographyBase Input> { */ abstract string getAlgorithmName(); + /** + * Gets the raw name of this algorithm from source (no parsing or formatting) + */ + abstract string getRawAlgorithmName(); + final override string toString() { result = this.getAlgorithmName() } } @@ -145,10 +150,6 @@ module CryptographyBase Input> { override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashType(), result) } - /** - * Gets the raw name of this hash algorithm from source. - */ - abstract string getRawAlgorithmName(); } /** @@ -195,30 +196,55 @@ module CryptographyBase Input> { } } + newtype TEllipticCurveFamilyType = + // We're saying by this that all of these have an identical interface / properties / edges + NIST() or + SEC() or + NUMS() or + PRIME() or + BRAINPOOL() or + CURVE25519() or + CURVE448() or + C2() or + SM2() or + ES() or + OtherEllipticCurveFamilyType() + + /** * Elliptic curve algorithm */ abstract class EllipticCurve extends Algorithm { - abstract string getVersion(Location location); + abstract string getKeySize(Location location); + abstract TEllipticCurveFamilyType getCurveFamilyType(); + override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or - key = "version" and - if exists(this.getVersion(location)) - then value = this.getVersion(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - or key = "key_size" and if exists(this.getKeySize(location)) then value = this.getKeySize(location) else ( value instanceof UnknownPropertyValue and location instanceof UnknownLocation ) + // other properties, like field type are possible, but not modeled until considered necessary } + + override string getAlgorithmName() { result = this.getRawAlgorithmName().toUpperCase()} + + /** + * Mandating that for Elliptic Curves specifically, users are responsible + * for providing as the 'raw' name, the official name of the algorithm. + * Casing doesn't matter, we will enforce further naming restrictions on + * `getAlgorithmName` by default. + * Rationale: elliptic curve names can have a lot of variation in their components + * (e.g., "secp256r1" vs "P-256"), trying to produce generalized set of properties + * is possible to capture all cases, but such modeling is likely not necessary. + * if all properties need to be captured, we can reassess how names are generated. + */ + override abstract string getRawAlgorithmName(); } } diff --git a/python/ql/lib/experimental/Quantum/Base.qll b/python/ql/lib/experimental/Quantum/Base.qll new file mode 100644 index 00000000000..9be24ca6efa --- /dev/null +++ b/python/ql/lib/experimental/Quantum/Base.qll @@ -0,0 +1,250 @@ +/** + * A language-independent library for reasoning about cryptography. + */ + +import codeql.util.Location +import codeql.util.Option + +signature module InputSig { + class LocatableElement { + Location getLocation(); + } + + class UnknownLocation instanceof Location; +} + +module CryptographyBase Input> { + final class LocatableElement = Input::LocatableElement; + + final class UnknownLocation = Input::UnknownLocation; + + final class UnknownPropertyValue extends string { + UnknownPropertyValue() { this = "" } + } + + abstract class NodeBase instanceof LocatableElement { + /** + * Returns a string representation of this node, usually the name of the operation/algorithm/property. + */ + abstract string toString(); + + /** + * Returns the location of this node in the code. + */ + Location getLocation() { result = super.getLocation() } + + /** + * Gets the origin of this node, e.g., a string literal in source describing it. + */ + LocatableElement getOrigin(string value) { none() } + + /** + * Returns the child of this node with the given edge name. + * + * This predicate is used by derived classes to construct the graph of cryptographic operations. + */ + NodeBase getChild(string edgeName) { none() } + + /** + * Defines properties of this node by name and either a value or location or both. + * + * This predicate is used by derived classes to construct the graph of cryptographic operations. + */ + predicate properties(string key, string value, Location location) { + key = "origin" and location = this.getOrigin(value).getLocation() + } + + /** + * Returns the parent of this node. + */ + final NodeBase getAParent() { result.getChild(_) = this } + } + + class Asset = NodeBase; + + /** + * A cryptographic operation, such as hashing or encryption. + */ + abstract class Operation extends Asset { + /** + * Gets the algorithm associated with this operation. + */ + abstract Algorithm getAlgorithm(); + + /** + * Gets the name of this operation, e.g., "hash" or "encrypt". + */ + abstract string getOperationName(); + + final override string toString() { result = this.getOperationName() } + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + edgeName = "uses" and + if exists(this.getAlgorithm()) then result = this.getAlgorithm() else result = this + } + } + + abstract class Algorithm extends Asset { + /** + * Gets the name of this algorithm, e.g., "AES" or "SHA". + */ + abstract string getAlgorithmName(); + + /** + * Gets the raw name of this algorithm from source (no parsing or formatting) + */ + abstract string getRawAlgorithmName(); + + final override string toString() { result = this.getAlgorithmName() } + } + + /** + * A hashing operation that processes data to generate a hash value. + * This operation takes an input message of arbitrary content and length and produces a fixed-size + * hash value as the output using a specified hashing algorithm. + */ + abstract class HashOperation extends Operation { + abstract override HashAlgorithm getAlgorithm(); + + override string getOperationName() { result = "HASH" } + } + + // Rule: no newtype representing a type of algorithm should be modelled with multiple interfaces + // + // Example: HKDF and PKCS12KDF are both key derivation algorithms. + // However, PKCS12KDF also has a property: the iteration count. + // + // If we have HKDF and PKCS12KDF under TKeyDerivationType, + // someone modelling a library might try to make a generic identification of both of those algorithms. + // + // They will therefore not use the specialized type for PKCS12KDF, + // meaning "from PKCS12KDF algo select algo" will have no results. + // + newtype THashType = + // We're saying by this that all of these have an identical interface / properties / edges + MD5() or + SHA1() or + SHA256() or + SHA512() or + OtherHashType() + + /** + * A hashing algorithm that transforms variable-length input into a fixed-size hash value. + */ + abstract class HashAlgorithm extends Algorithm { + final predicate hashTypeToNameMapping(THashType type, string name) { + type instanceof MD5 and name = "MD5" + or + type instanceof SHA1 and name = "SHA-1" + or + type instanceof SHA256 and name = "SHA-256" + or + type instanceof SHA512 and name = "SHA-512" + or + type instanceof OtherHashType and name = this.getRawAlgorithmName() + } + + abstract THashType getHashType(); + + override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashType(), result) } + + } + + /** + * An operation that derives one or more keys from an input value. + */ + abstract class KeyDerivationOperation extends Operation { + override string getOperationName() { result = "KEY_DERIVATION" } + } + + /** + * An algorithm that derives one or more keys from an input value. + */ + abstract class KeyDerivationAlgorithm extends Algorithm { + abstract override string getAlgorithmName(); + } + + /** + * HKDF key derivation function + */ + abstract class HKDF extends KeyDerivationAlgorithm { + final override string getAlgorithmName() { result = "HKDF" } + + abstract HashAlgorithm getHashAlgorithm(); + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + edgeName = "digest" and result = this.getHashAlgorithm() + } + } + + /** + * PKCS #12 key derivation function + */ + abstract class PKCS12KDF extends KeyDerivationAlgorithm { + final override string getAlgorithmName() { result = "PKCS12KDF" } + + abstract HashAlgorithm getHashAlgorithm(); + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + edgeName = "digest" and result = this.getHashAlgorithm() + } + } + + newtype TEllipticCurveFamilyType = + // We're saying by this that all of these have an identical interface / properties / edges + NIST() or + SEC() or + NUMS() or + PRIME() or + BRAINPOOL() or + CURVE25519() or + CURVE448() or + C2() or + SM2() or + ES() or + OtherEllipticCurveFamilyType() + + + /** + * Elliptic curve algorithm + */ + abstract class EllipticCurve extends Algorithm { + + + abstract string getKeySize(Location location); + + abstract TEllipticCurveFamilyType getCurveFamilyType(); + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + key = "key_size" and + if exists(this.getKeySize(location)) + then value = this.getKeySize(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + // other properties, like field type are possible, but not modeled until considered necessary + } + + override string getAlgorithmName() { result = this.getRawAlgorithmName().toUpperCase()} + + /** + * Mandating that for Elliptic Curves specifically, users are responsible + * for providing as the 'raw' name, the official name of the algorithm. + * Casing doesn't matter, we will enforce further naming restrictions on + * `getAlgorithmName` by default. + * Rationale: elliptic curve names can have a lot of variation in their components + * (e.g., "secp256r1" vs "P-256"), trying to produce generalized set of properties + * is possible to capture all cases, but such modeling is likely not necessary. + * if all properties need to be captured, we can reassess how names are generated. + */ + override abstract string getRawAlgorithmName(); + } +} diff --git a/python/ql/lib/experimental/Quantum/Language.qll b/python/ql/lib/experimental/Quantum/Language.qll new file mode 100644 index 00000000000..9abf3e7fa7e --- /dev/null +++ b/python/ql/lib/experimental/Quantum/Language.qll @@ -0,0 +1,12 @@ +private import Base +private import python as Lang + +module CryptoInput implements InputSig { + class LocatableElement = Lang::Expr; + + class UnknownLocation = Lang::UnknownDefaultLocation; +} + +module Crypto = CryptographyBase; + +import PycaCryptography diff --git a/python/ql/lib/experimental/Quantum/PycaCryptography.qll b/python/ql/lib/experimental/Quantum/PycaCryptography.qll new file mode 100644 index 00000000000..802ad23cf9d --- /dev/null +++ b/python/ql/lib/experimental/Quantum/PycaCryptography.qll @@ -0,0 +1,55 @@ +import python +import semmle.python.ApiGraphs + +module PycaCryptographyModule { + import Language + + /** + * Gets a predefined curve class constructor call from + * `cryptography.hazmat.primitives.asymmetric.ec` + * https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ec/#elliptic-curves + */ + DataFlow::Node predefinedCurveClass(string rawName, string curveName, Crypto::TEllipticCurveFamilyType family, int keySize) { + // getACall since the typical case is to construct the curve with initialization values, + // not to pass the mode uninitialized + result = + API::moduleImport("cryptography") + .getMember("hazmat") + .getMember("primitives") + .getMember("asymmetric") + .getMember("ec") + .getMember(rawName) + .getACall() + and + curveName = rawName.toUpperCase() + and + curveName.matches("SEC%") and family instanceof Crypto::SEC + and + curveName.matches("BRAINPOOL%") and family instanceof Crypto::BRAINPOOL + and + // Enumerating all key sizes known in the API + // TODO: should we dynamically extract them through a regex? + keySize in [160, 163, 192, 224, 233, 256, 283, 320, 384, 409, 512, 571] + and + curveName.matches("%" + keySize + "%") + } + + + class EllipticCurve extends Crypto::EllipticCurve instanceof Expr{ + int keySize; + string rawName; + string curveName; + Crypto::TEllipticCurveFamilyType family; + EllipticCurve() { + this = predefinedCurveClass(rawName, curveName, family, keySize).asExpr() + } + + override string getRawAlgorithmName() { result = rawName } + override string getAlgorithmName() { result = curveName } + Crypto::TEllipticCurveFamilyType getFamily() { result = family } + + override string getKeySize(Location location) { + location = this and + result = keySize.toString() } + } +} diff --git a/python/ql/lib/semmle/python/Files.qll b/python/ql/lib/semmle/python/Files.qll index 2da0dd61f88..67f21ad0b24 100644 --- a/python/ql/lib/semmle/python/Files.qll +++ b/python/ql/lib/semmle/python/Files.qll @@ -368,3 +368,40 @@ class EncodingError extends SyntaxError { override string toString() { result = "Encoding Error" } } + + + +/** + * A dummy location which is used when something doesn't have a location in + * the source code but needs to have a `Location` associated with it. There + * may be several distinct kinds of unknown locations. For example: one for + * expressions, one for statements and one for other program elements. + */ +class UnknownLocation extends Location { + UnknownLocation() { this.getFile().getAbsolutePath() = "" } +} + +/** + * A dummy location which is used when something doesn't have a location in + * the source code but needs to have a `Location` associated with it. + */ +class UnknownDefaultLocation extends UnknownLocation { + UnknownDefaultLocation() { locations_default(this, _, 0, 0, 0, 0) } +} + +/** + * A dummy location which is used when an expression doesn't have a + * location in the source code but needs to have a `Location` associated + * with it. + */ +class UnknownExprLocation extends UnknownLocation { + UnknownExprLocation() { locations_default(this, _, 0, 0, 0, 0) } +} + +/** + * A dummy location which is used when a statement doesn't have a location + * in the source code but needs to have a `Location` associated with it. + */ +class UnknownStmtLocation extends UnknownLocation { + UnknownStmtLocation() { locations_default(this, _, 0, 0, 0, 0) } +} From 9af18bc1002e4b32b18a8f56d2fbf9c2ffa7405f Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Wed, 29 Jan 2025 19:45:04 +0100 Subject: [PATCH 007/656] WIP: add dgml/dot output/remove test code --- cpp/ql/lib/experimental/Quantum/Base.qll | 4 +- .../lib/experimental/Quantum/BaseBackup.qll | 125 ------------------ cpp/ql/lib/experimental/Quantum/OpenSSL.qll | 10 -- cpp/ql/src/experimental/Quantum/CBOMGraph.ql | 47 +++++++ cpp/ql/src/experimental/Quantum/Test.ql | 43 ------ cpp/ql/src/experimental/Quantum/cbom.sh | 8 ++ .../src/experimental/Quantum/generate_cbom.py | 104 +++++++++++++++ 7 files changed, 162 insertions(+), 179 deletions(-) delete mode 100644 cpp/ql/lib/experimental/Quantum/BaseBackup.qll create mode 100644 cpp/ql/src/experimental/Quantum/CBOMGraph.ql delete mode 100644 cpp/ql/src/experimental/Quantum/Test.ql create mode 100755 cpp/ql/src/experimental/Quantum/cbom.sh create mode 100644 cpp/ql/src/experimental/Quantum/generate_cbom.py diff --git a/cpp/ql/lib/experimental/Quantum/Base.qll b/cpp/ql/lib/experimental/Quantum/Base.qll index b3f4d619f4d..cb0f53f468e 100644 --- a/cpp/ql/lib/experimental/Quantum/Base.qll +++ b/cpp/ql/lib/experimental/Quantum/Base.qll @@ -51,7 +51,9 @@ module CryptographyBase Input> { * This predicate is used by derived classes to construct the graph of cryptographic operations. */ predicate properties(string key, string value, Location location) { - key = "origin" and location = this.getOrigin(value).getLocation() + key = "origin" and + location = this.getOrigin(value).getLocation() and + not location = this.getLocation() } /** diff --git a/cpp/ql/lib/experimental/Quantum/BaseBackup.qll b/cpp/ql/lib/experimental/Quantum/BaseBackup.qll deleted file mode 100644 index 821c89eb8f5..00000000000 --- a/cpp/ql/lib/experimental/Quantum/BaseBackup.qll +++ /dev/null @@ -1,125 +0,0 @@ -/** - * A language-independent library for reasoning about cryptography. - */ - -import codeql.util.Location -import codeql.util.Option - -signature module InputSig { - class KnownUnknownLocation extends Location; - - class LocatableElement { - Location getLocation(); - } -} - -// An operation = a specific loc in code -// An algorithm -// Properties -// Node -> Operation -> Algorithm -> Symmetric -> SpecificSymmetricAlgo -// -[Language-Specific]-> LibrarySymmetricAlgo -> Properties -// For example (nsted newtypes): -/* - * newtype for each algo, and each one of those would have params for their properties - * implementation: optional/range for example - * - * - * - * /** - * Constructs an `Option` type that is a disjoint union of the given type and an - * additional singleton element. - */ - -module CryptographyBase Input> { - newtype TNode = - TNodeUnknown() or - TNodeAlgorithm() or - TNodeOperation() - - /* - * A cryptographic asset in code, i.e., an algorithm, operation, property, or known unknown. - */ - - abstract class Node extends TNode { - // this would then extend LanguageNode - abstract Location getLocation(); - - abstract string toString(); - - abstract Node getChild(int childIndex); - - final Node getAChild() { result = this.getChild(_) } - - final Node getAParent() { result.getAChild() = this } - } - - final class KnownUnknown extends Node, TNodeUnknown { - override string toString() { result = "unknown" } - - override Node getChild(int childIndex) { none() } - - override Location getLocation() { result instanceof Input::KnownUnknownLocation } - } - - abstract class Operation extends Node, TNodeOperation { - /** - * Gets the algorithm associated with this operation. - */ - abstract Node getAlgorithm(); - - /** - * Gets the name of this operation, e.g., "hash" or "encrypt". - */ - abstract string getOperationName(); - - final override Node getChild(int childIndex) { childIndex = 0 and result = this.getAlgorithm() } - - final override string toString() { result = this.getOperationName() } - } - - abstract class Algorithm extends Node, TNodeAlgorithm { - /** - * Gets the name of this algorithm, e.g., "AES" or "SHA". - */ - abstract string getAlgorithmName(); - } - - /** - * A hashing operation that processes data to generate a hash value. - * This operation takes an input message of arbitrary content and length and produces a fixed-size - * hash value as the output using a specified hashing algorithm. - */ - abstract class HashOperation extends Operation { - abstract override HashAlgorithm getAlgorithm(); - - override string getOperationName() { result = "hash" } - } - - /** - * A hashing algorithm that transforms variable-length input into a fixed-size hash value. - */ - abstract class HashAlgorithm extends Algorithm { } - - /** - * An operation that derives one or more keys from an input value. - */ - abstract class KeyDerivationOperation extends Operation { - override string getOperationName() { result = "key derivation" } - } - - /** - * An algorithm that derives one or more keys from an input value. - */ - abstract class KeyDerivationAlgorithm extends Algorithm { - abstract override string getAlgorithmName(); - } - - /** - * HKDF Extract+Expand key derivation function. - */ - abstract class HKDFAlgorithm extends KeyDerivationAlgorithm { - final override string getAlgorithmName() { result = "HKDF" } - - abstract Node getDigestAlgorithm(); - } -} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll index 852fedf646a..18feda6c8c6 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll @@ -84,16 +84,6 @@ module OpenSSLModel { } } - class TestKeyDerivationOperationHacky extends KeyDerivationOperation instanceof FunctionCall { - HKDF hkdf; - - TestKeyDerivationOperationHacky() { - this.getEnclosingFunction() = hkdf.(Expr).getEnclosingFunction() - } - - override Crypto::KeyDerivationAlgorithm getAlgorithm() { result = hkdf } - } - class PKCS12KDF extends KeyDerivationAlgorithm, Crypto::PKCS12KDF instanceof Expr { KDFAlgorithmStringLiteral origin; diff --git a/cpp/ql/src/experimental/Quantum/CBOMGraph.ql b/cpp/ql/src/experimental/Quantum/CBOMGraph.ql new file mode 100644 index 00000000000..1df6611aab9 --- /dev/null +++ b/cpp/ql/src/experimental/Quantum/CBOMGraph.ql @@ -0,0 +1,47 @@ +/** + * @name "Outputs a graph representation of the cryptographic bill of materials." + * @kind graph + * @id cbomgraph + */ + +import experimental.Quantum.Language + +string getPropertyString(Crypto::NodeBase node, string key) { + result = + strictconcat(any(string value, Location location, string parsed | + node.properties(key, value, location) and + parsed = "(" + value + "," + location.toString() + ")" + | + parsed + ), "," + ) +} + +string getLabel(Crypto::NodeBase node) { result = node.toString() } + +query predicate nodes(Crypto::NodeBase node, string key, string value) { + key = "semmle.label" and + value = getLabel(node) + or + // CodeQL's DGML output does not include a location + key = "Location" and + value = node.getLocation().toString() + or + // Known unknown edges should be reported as properties rather than edges + node = node.getChild(key) and + value = "" + or + // Report properties + value = getPropertyString(node, key) +} + +query predicate edges(Crypto::NodeBase source, Crypto::NodeBase target, string key, string value) { + key = "semmle.label" and + target = source.getChild(value) and + // Known unknowns are reported as properties rather than edges + not source = target +} + +query predicate graphProperties(string key, string value) { + key = "semmle.graphKind" and value = "graph" +} diff --git a/cpp/ql/src/experimental/Quantum/Test.ql b/cpp/ql/src/experimental/Quantum/Test.ql deleted file mode 100644 index 87341a6b612..00000000000 --- a/cpp/ql/src/experimental/Quantum/Test.ql +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @name "PQC Test" - * @kind graph - */ - -import experimental.Quantum.Language - -string getValueAndLocationPairs(Crypto::NodeBase node, string key) { - exists(string value, Location location | - node.properties(key, value, location) and - result = "(" + value + "," + location.toString() + ")" - ) -} - -string properties(Crypto::NodeBase node) { - forex(string key | node.properties(key, _, _) | - result = key + ":" + strictconcat(getValueAndLocationPairs(node, key), ",") - ) -} - -string getLabel(Crypto::NodeBase node) { - result = - "[" + node.toString() + "]" + - any(string prop | - if exists(properties(node)) then prop = " " + properties(node) else prop = "" - | - prop - ) -} - -query predicate nodes(Crypto::NodeBase node, string key, string value) { - key = "semmle.label" and - value = getLabel(node) -} - -query predicate edges(Crypto::NodeBase source, Crypto::NodeBase target, string key, string value) { - target = source.getChild(value) and - key = "semmle.label" -} - -query predicate graphProperties(string key, string value) { - key = "semmle.graphKind" and value = "tree" -} diff --git a/cpp/ql/src/experimental/Quantum/cbom.sh b/cpp/ql/src/experimental/Quantum/cbom.sh new file mode 100755 index 00000000000..df1c58b1efb --- /dev/null +++ b/cpp/ql/src/experimental/Quantum/cbom.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +CODEQL_PATH="/Users/nicolaswill/Library/Application Support/Code/User/globalStorage/github.vscode-codeql/distribution5/codeql/codeql" +DATABASE_PATH="/Users/nicolaswill/openssl_codeql/openssl/openssl_db" +QUERY_FILE="CBOMGraph.ql" +OUTPUT_DIR="graph_output" + +python3 generate_cbom.py -c "$CODEQL_PATH" -d "$DATABASE_PATH" -q "$QUERY_FILE" -o "$OUTPUT_DIR" diff --git a/cpp/ql/src/experimental/Quantum/generate_cbom.py b/cpp/ql/src/experimental/Quantum/generate_cbom.py new file mode 100644 index 00000000000..10ec895dc62 --- /dev/null +++ b/cpp/ql/src/experimental/Quantum/generate_cbom.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 + +import os +import sys +import argparse +import subprocess +import xml.etree.ElementTree as ET + +def run_codeql_analysis(codeql_path, database_path, query_path, output_dir): + """Runs the CodeQL analysis and generates a DGML file.""" + os.makedirs(output_dir, exist_ok=True) + command = [ + codeql_path, "database", "analyze", database_path, query_path, + "--rerun", "--format=dgml", "--output", output_dir + ] + + print(f"Running CodeQL analysis: {' '.join(command)}") + result = subprocess.run(command, capture_output=True, text=True) + + if result.returncode == 0: + print("Analysis completed successfully.") + else: + print("Analysis failed.") + print(result.stderr) + sys.exit(1) + + return result.returncode + + +def convert_dgml_to_dot(dgml_file, dot_file): + """Converts the DGML file to DOT format using the exact original implementation.""" + print(f"Processing DGML file: {dgml_file}") + + # Read source DGML + with open(dgml_file, "r", encoding="utf-8") as f: + xml_content = f.read() + + root = ET.fromstring(xml_content) + + # Form dot element sequence + body_l = ["digraph cbom {", + "node [shape=box];", + "rankdir=LR;" + ] + + # Process nodes + for node in root.find("{http://schemas.microsoft.com/vs/2009/dgml}Nodes"): + att = node.attrib + node_id = att['Id'] + label_parts = [] + for key, value in att.items(): + if key == 'Id': + continue + elif key == 'Label': + label_parts.append(value) + else: + label_parts.append(f"{key}={value}") + label = "\\n".join(label_parts) + prop_l = [f'label="{label}"'] + node_s = f'nd_{node_id} [{", ".join(prop_l)}];' + body_l.append(node_s) + + # Process edges + for edge in root.find("{http://schemas.microsoft.com/vs/2009/dgml}Links"): + att = edge.attrib + edge_s = 'nd_{} -> nd_{} [label="{}"];'.format( + att["Source"], att["Target"], att.get("Label", "")) + body_l.append(edge_s) + + body_l.append("}") + + # Write DOT output + with open(dot_file, "w", encoding="utf-8") as f: + f.write("\n".join(body_l)) + + print(f"DGML file successfully converted to DOT format: {dot_file}") + + +def main(): + parser = argparse.ArgumentParser(description="Run CodeQL analysis and convert DGML to DOT.") + parser.add_argument("-c", "--codeql", required=True, help="Path to CodeQL CLI executable.") + parser.add_argument("-d", "--database", required=True, help="Path to the CodeQL database.") + parser.add_argument("-q", "--query", required=True, help="Path to the .ql query file.") + parser.add_argument("-o", "--output", required=True, help="Output directory for analysis results.") + + args = parser.parse_args() + + # Run CodeQL analysis + run_codeql_analysis(args.codeql, args.database, args.query, args.output) + + # Locate DGML file + dgml_file = os.path.join(args.output, "cbomgraph.dgml") + dot_file = dgml_file.replace(".dgml", ".dot") + + if os.path.exists(dgml_file): + # Convert DGML to DOT + convert_dgml_to_dot(dgml_file, dot_file) + else: + print(f"No DGML file found in {args.output}.") + sys.exit(1) + + +if __name__ == "__main__": + main() From 69a63855cc07c7a5d4b0b48f2e4b3f51b274ed3a Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Wed, 29 Jan 2025 21:55:57 +0100 Subject: [PATCH 008/656] Update CBOMGraph.ql --- cpp/ql/src/experimental/Quantum/CBOMGraph.ql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cpp/ql/src/experimental/Quantum/CBOMGraph.ql b/cpp/ql/src/experimental/Quantum/CBOMGraph.ql index 1df6611aab9..edcc40aca6a 100644 --- a/cpp/ql/src/experimental/Quantum/CBOMGraph.ql +++ b/cpp/ql/src/experimental/Quantum/CBOMGraph.ql @@ -1,5 +1,6 @@ /** - * @name "Outputs a graph representation of the cryptographic bill of materials." + * @name "Print CBOM Graph" + * @description "Outputs a graph representation of the cryptographic bill of materials." * @kind graph * @id cbomgraph */ From 5f355c7f555748cb47b9cbaab862a0a05daf211c Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Tue, 4 Feb 2025 11:55:09 -0500 Subject: [PATCH 009/656] Add first sample JCA encryption model --- java/ql/lib/experimental/Quantum/Base.qll | 235 ++++++++++++++++++ java/ql/lib/experimental/Quantum/JCA.qll | 105 ++++++++ java/ql/lib/experimental/Quantum/Language.qll | 30 +++ java/ql/src/experimental/Quantum/Test.ql | 13 + 4 files changed, 383 insertions(+) create mode 100644 java/ql/lib/experimental/Quantum/Base.qll create mode 100644 java/ql/lib/experimental/Quantum/JCA.qll create mode 100644 java/ql/lib/experimental/Quantum/Language.qll create mode 100644 java/ql/src/experimental/Quantum/Test.ql diff --git a/java/ql/lib/experimental/Quantum/Base.qll b/java/ql/lib/experimental/Quantum/Base.qll new file mode 100644 index 00000000000..bbcd60ee891 --- /dev/null +++ b/java/ql/lib/experimental/Quantum/Base.qll @@ -0,0 +1,235 @@ +/** + * A language-independent library for reasoning about cryptography. + */ + + import codeql.util.Location + import codeql.util.Option + + signature module InputSig { + class LocatableElement { + Location getLocation(); + } + + class UnknownLocation instanceof Location; + } + + module CryptographyBase Input> { + final class LocatableElement = Input::LocatableElement; + + final class UnknownLocation = Input::UnknownLocation; + + final class UnknownPropertyValue extends string { + UnknownPropertyValue() { this = "" } + } + + abstract class NodeBase instanceof LocatableElement { + /** + * Returns a string representation of this node, usually the name of the operation/algorithm/property. + */ + abstract string toString(); + + /** + * Returns the location of this node in the code. + */ + Location getLocation() { result = super.getLocation() } + + /** + * Gets the origin of this node, e.g., a string literal in source describing it. + */ + LocatableElement getOrigin(string value) { none() } + + /** + * Returns the child of this node with the given edge name. + * + * This predicate is used by derived classes to construct the graph of cryptographic operations. + */ + NodeBase getChild(string edgeName) { none() } + + /** + * Defines properties of this node by name and either a value or location or both. + * + * This predicate is used by derived classes to construct the graph of cryptographic operations. + */ + predicate properties(string key, string value, Location location) { + key = "origin" and location = this.getOrigin(value).getLocation() + } + + /** + * Returns the parent of this node. + */ + final NodeBase getAParent() { result.getChild(_) = this } + } + + class Asset = NodeBase; + + /** + * A cryptographic operation, such as hashing or encryption. + */ + abstract class Operation extends Asset { + /** + * Gets the algorithm associated with this operation. + */ + abstract Algorithm getAlgorithm(); + + /** + * Gets the name of this operation, e.g., "hash" or "encrypt". + */ + abstract string getOperationName(); + + final override string toString() { result = this.getOperationName() } + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + edgeName = "uses" and + if exists(this.getAlgorithm()) then result = this.getAlgorithm() else result = this + } + } + + abstract class Algorithm extends Asset { + /** + * Gets the name of this algorithm, e.g., "AES" or "SHA". + */ + abstract string getAlgorithmName(); + + final override string toString() { result = this.getAlgorithmName() } + } + + /** + * A hashing operation that processes data to generate a hash value. + * This operation takes an input message of arbitrary content and length and produces a fixed-size + * hash value as the output using a specified hashing algorithm. + */ + abstract class HashOperation extends Operation { + abstract override HashAlgorithm getAlgorithm(); + + override string getOperationName() { result = "HASH" } + } + + // Rule: no newtype representing a type of algorithm should be modelled with multiple interfaces + // + // Example: HKDF and PKCS12KDF are both key derivation algorithms. + // However, PKCS12KDF also has a property: the iteration count. + // + // If we have HKDF and PKCS12KDF under TKeyDerivationType, + // someone modelling a library might try to make a generic identification of both of those algorithms. + // + // They will therefore not use the specialized type for PKCS12KDF, + // meaning "from PKCS12KDF algo select algo" will have no results. + // + newtype THashType = + // We're saying by this that all of these have an identical interface / properties / edges + MD5() or + SHA1() or + SHA256() or + SHA512() or + OtherHashType() + + /** + * A hashing algorithm that transforms variable-length input into a fixed-size hash value. + */ + abstract class HashAlgorithm extends Algorithm { + final predicate hashTypeToNameMapping(THashType type, string name) { + type instanceof MD5 and name = "MD5" + or + type instanceof SHA1 and name = "SHA-1" + or + type instanceof SHA256 and name = "SHA-256" + or + type instanceof SHA512 and name = "SHA-512" + or + type instanceof OtherHashType and name = this.getRawAlgorithmName() + } + + abstract THashType getHashType(); + + override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashType(), result) } + + /** + * Gets the raw name of this hash algorithm from source. + */ + abstract string getRawAlgorithmName(); + } + + /** + * An operation that derives one or more keys from an input value. + */ + abstract class KeyDerivationOperation extends Operation { + override string getOperationName() { result = "KEY_DERIVATION" } + } + + /** + * An algorithm that derives one or more keys from an input value. + */ + abstract class KeyDerivationAlgorithm extends Algorithm { + abstract override string getAlgorithmName(); + } + + /** + * HKDF key derivation function + */ + abstract class HKDF extends KeyDerivationAlgorithm { + final override string getAlgorithmName() { result = "HKDF" } + + abstract HashAlgorithm getHashAlgorithm(); + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + edgeName = "digest" and result = this.getHashAlgorithm() + } + } + + /** + * PKCS #12 key derivation function + */ + abstract class PKCS12KDF extends KeyDerivationAlgorithm { + final override string getAlgorithmName() { result = "PKCS12KDF" } + + abstract HashAlgorithm getHashAlgorithm(); + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + edgeName = "digest" and result = this.getHashAlgorithm() + } + } + + /** + * Elliptic curve algorithm + */ + abstract class EllipticCurve extends Algorithm { + abstract string getVersion(Location location); + + abstract string getKeySize(Location location); + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + key = "version" and + if exists(this.getVersion(location)) + then value = this.getVersion(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + or + key = "key_size" and + if exists(this.getKeySize(location)) + then value = this.getKeySize(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + } + } + + /** + * An encryption operation that processes plaintext to generate a ciphertext. + * This operation takes an input message (plaintext) of arbitrary content and length and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). + */ + abstract class EncryptionOperation extends Operation { + abstract override Algorithm getAlgorithm(); + + override string getOperationName() { result = "ENCRYPTION" } + } + } + \ No newline at end of file diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll new file mode 100644 index 00000000000..bef648d290a --- /dev/null +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -0,0 +1,105 @@ +import java +import semmle.code.java.dataflow.DataFlow + +module JCAModel { + import Language + + abstract class EncryptionOperation extends Crypto::EncryptionOperation { } + + //TODO PBEWith can have suffixes. how to do? enumerate? or match a pattern? +predicate cipher_names(string algo) { algo = ["AES", "AESWrap", "AESWrapPad", "ARCFOUR", "Blowfish", "ChaCha20", "ChaCha20-Poly1305", "DES", "DESede", "DESedeWrap", "ECIES", "PBEWith", "RC2", "RC4", "RC5", "RSA"] } +//TODO solve the fact that x is an int of various values. same as above... enumerate? +predicate cipher_modes(string mode) {mode = ["NONE", "CBC", "CCM", "CFB", "CFBx", "CTR", "CTS", "ECB", "GCM", "KW", "KWP", "OFB", "OFBx", "PCBC"]} +//todo same as above, OAEPWith has asuffix type +predicate cipher_padding(string padding) {padding = ["NoPadding", "ISO10126Padding", "OAEPPadding", "OAEPWith", "PKCS1Padding", "PKCS5Padding", "SSL3Padding"]} + + /** + * Symmetric algorithms + */ + abstract class SymmetricAlgorithm extends Crypto::Algorithm { + + + //TODO figure out how to get this from the Cipher interface, is it explicit? + //abstract string getKeySize(Location location); + + // override predicate properties(string key, string value, Location location) { + // super.properties(key, value, location) + // or + // key = "key_size" and + // if exists(this.getKeySize(location)) + // then value = this.getKeySize(location) + // else ( + // value instanceof Crypto::UnknownPropertyValue and location instanceof UnknownLocation + // ) + // // other properties, like field type are possible, but not modeled until considered necessary + // } + + abstract override string getAlgorithmName(); +} + +////cipher specifics ---------------------------------------- + +class CipherInstance extends Call { + CipherInstance() { this.getCallee().hasQualifiedName("javax.crypto","Cipher", "getInstance") } + + Expr getAlgorithmArg() { result = this.getArgument(0) } + } + +class CipherAlgorithmStringLiteral extends Crypto::NodeBase instanceof StringLiteral { + CipherAlgorithmStringLiteral() { cipher_names(this.getValue().splitAt("/"))} + + override string toString() { result = this.(StringLiteral).toString() } + + string getValue() { result = this.(StringLiteral).getValue() } + } + + class CipherAlgorithmModeStringLiteral extends Crypto::NodeBase instanceof StringLiteral { + CipherAlgorithmModeStringLiteral() { cipher_modes(this.getValue().splitAt("/"))} + + override string toString() { result = this.(StringLiteral).toString() } + + string getValue() { result = this.(StringLiteral).getValue() } + } + + class CipherAlgorithmPaddingStringLiteral extends Crypto::NodeBase instanceof StringLiteral { + CipherAlgorithmPaddingStringLiteral() { cipher_padding(this.getValue().splitAt("/"))} + + override string toString() { result = this.(StringLiteral).toString() } + + string getValue() { result = this.(StringLiteral).getValue() } + } + + private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherAlgorithmStringLiteral } + + predicate isSink(DataFlow::Node sink) { + exists(CipherInstance call | sink.asExpr() = call.getAlgorithmArg()) + } + } + + module AlgorithmStringToFetchFlow = DataFlow::Global; + + predicate algorithmStringToCipherInstanceArgFlow(string name, CipherAlgorithmStringLiteral origin, Expr arg) { + exists(CipherInstance sinkCall | + origin.getValue().toUpperCase() = name and + arg = sinkCall.getAlgorithmArg() and + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) + ) + } + + class AES extends SymmetricAlgorithm instanceof Expr { + CipherAlgorithmStringLiteral origin; + + AES() { algorithmStringToCipherInstanceArgFlow("AES", origin, this) } + + override Crypto::LocatableElement getOrigin(string name) { + result = origin and name = origin.toString() + } + + override string getAlgorithmName(){ result = "AES"} + } + + + + +} \ No newline at end of file diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll new file mode 100644 index 00000000000..246f2b86367 --- /dev/null +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -0,0 +1,30 @@ +private import Base +private import java as Lang + +/** + * A dummy location which is used when something doesn't have a location in + * the source code but needs to have a `Location` associated with it. There + * may be several distinct kinds of unknown locations. For example: one for + * expressions, one for statements and one for other program elements. + */ +class UnknownLocation extends Location { + UnknownLocation() { this.getFile().getAbsolutePath() = "" } +} + +/** + * A dummy location which is used when something doesn't have a location in + * the source code but needs to have a `Location` associated with it. + */ +class UnknownDefaultLocation extends UnknownLocation { + UnknownDefaultLocation() { locations_default(this, _, 0, 0, 0, 0) } +} + +module CryptoInput implements InputSig { + class LocatableElement = Lang::Element; + + class UnknownLocation = UnknownDefaultLocation; +} + +module Crypto = CryptographyBase; + +import JCA diff --git a/java/ql/src/experimental/Quantum/Test.ql b/java/ql/src/experimental/Quantum/Test.ql new file mode 100644 index 00000000000..672ad14e5df --- /dev/null +++ b/java/ql/src/experimental/Quantum/Test.ql @@ -0,0 +1,13 @@ +/** + * @name "PQC Test" + */ + + import experimental.Quantum.Language + //import java + + from Crypto::NodeBase node + select node + +// from Class t +// where t.hasQualifiedName("javax.crypto", "CipherSpi") +// select t, t.getADescendant*() \ No newline at end of file From 86e51dad8a4d2ead6638f1d5cfb0f54309bf81fa Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Wed, 5 Feb 2025 13:39:48 -0500 Subject: [PATCH 010/656] Improve JCA aes alg model, add test --- java/ql/lib/experimental/Quantum/JCA.qll | 58 ++++++++++++++++++------ java/ql/src/experimental/Quantum/Test.ql | 9 +--- 2 files changed, 45 insertions(+), 22 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index bef648d290a..fae5c4f806e 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -13,6 +13,18 @@ predicate cipher_modes(string mode) {mode = ["NONE", "CBC", "CCM", "CFB", "CFBx" //todo same as above, OAEPWith has asuffix type predicate cipher_padding(string padding) {padding = ["NoPadding", "ISO10126Padding", "OAEPPadding", "OAEPWith", "PKCS1Padding", "PKCS5Padding", "SSL3Padding"]} + +abstract class BlockCiper extends Crypto::Algorithm { + CipherAlgorithmStringLiteral alg; + CipherAlgorithmMode mode; + CipherAlgorithmPadding padding; + + + CipherAlgorithmStringLiteral getAlg() {result = alg } + CipherAlgorithmMode getMode() {result = mode } + + CipherAlgorithmPadding getPadding() {result =padding} +} /** * Symmetric algorithms */ @@ -45,6 +57,9 @@ class CipherInstance extends Call { Expr getAlgorithmArg() { result = this.getArgument(0) } } + /** + * this may be specified either in the ALG/MODE/PADDING or just ALG format + */ class CipherAlgorithmStringLiteral extends Crypto::NodeBase instanceof StringLiteral { CipherAlgorithmStringLiteral() { cipher_names(this.getValue().splitAt("/"))} @@ -53,20 +68,28 @@ class CipherAlgorithmStringLiteral extends Crypto::NodeBase instanceof StringLit string getValue() { result = this.(StringLiteral).getValue() } } - class CipherAlgorithmModeStringLiteral extends Crypto::NodeBase instanceof StringLiteral { - CipherAlgorithmModeStringLiteral() { cipher_modes(this.getValue().splitAt("/"))} +abstract class CipherAlgorithmMode extends Crypto::NodeBase { + string getValue() {result = ""} +} + + class CipherAlgorithmModeStringLiteral extends CipherAlgorithmMode instanceof StringLiteral { + CipherAlgorithmModeStringLiteral() { cipher_modes(this.(StringLiteral).getValue().splitAt("/"))} override string toString() { result = this.(StringLiteral).toString() } - string getValue() { result = this.(StringLiteral).getValue() } + override string getValue() { result = this.(StringLiteral).getValue().regexpCapture(".*/(.*)/.*",1) } } - class CipherAlgorithmPaddingStringLiteral extends Crypto::NodeBase instanceof StringLiteral { - CipherAlgorithmPaddingStringLiteral() { cipher_padding(this.getValue().splitAt("/"))} + abstract class CipherAlgorithmPadding extends Crypto::NodeBase { + string getValue() {result = ""} + } + + class CipherAlgorithmPaddingStringLiteral extends CipherAlgorithmPadding instanceof StringLiteral { + CipherAlgorithmPaddingStringLiteral() { cipher_padding(this.(StringLiteral).getValue().splitAt("/"))} override string toString() { result = this.(StringLiteral).toString() } - string getValue() { result = this.(StringLiteral).getValue() } + override string getValue() { result = this.(StringLiteral).getValue().regexpCapture(".*/.*/(.*)",1) } } private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { @@ -79,27 +102,32 @@ class CipherAlgorithmStringLiteral extends Crypto::NodeBase instanceof StringLit module AlgorithmStringToFetchFlow = DataFlow::Global; - predicate algorithmStringToCipherInstanceArgFlow(string name, CipherAlgorithmStringLiteral origin, Expr arg) { + predicate algorithmStringToCipherInstanceArgFlow(string name, CipherAlgorithmStringLiteral origin, CipherAlgorithmModeStringLiteral mode, CipherAlgorithmPaddingStringLiteral padding, Expr arg) { exists(CipherInstance sinkCall | - origin.getValue().toUpperCase() = name and + origin.getValue().splitAt("/") = name and + origin = mode and + origin = padding and arg = sinkCall.getAlgorithmArg() and AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) ) } - class AES extends SymmetricAlgorithm instanceof Expr { - CipherAlgorithmStringLiteral origin; + /** + * A class to represent when AES is used AND it has literal mode and padding provided + * this does not capture the use without + */ + class AESLiteral extends SymmetricAlgorithm, BlockCiper instanceof Expr { - AES() { algorithmStringToCipherInstanceArgFlow("AES", origin, this) } + + AESLiteral() { algorithmStringToCipherInstanceArgFlow("AES", alg, mode, padding, this) +} override Crypto::LocatableElement getOrigin(string name) { - result = origin and name = origin.toString() + result = alg and name = alg.toString() } - override string getAlgorithmName(){ result = "AES"} + override string getAlgorithmName(){ result = this.getAlgorithmName()} } - - } \ No newline at end of file diff --git a/java/ql/src/experimental/Quantum/Test.ql b/java/ql/src/experimental/Quantum/Test.ql index 672ad14e5df..f35336a846f 100644 --- a/java/ql/src/experimental/Quantum/Test.ql +++ b/java/ql/src/experimental/Quantum/Test.ql @@ -3,11 +3,6 @@ */ import experimental.Quantum.Language - //import java - from Crypto::NodeBase node - select node - -// from Class t -// where t.hasQualifiedName("javax.crypto", "CipherSpi") -// select t, t.getADescendant*() \ No newline at end of file +from JCAModel::AESLiteral l +select l, l.getAlg(), l.getMode().getValue(), l.getPadding().getValue() \ No newline at end of file From efcf7eab0cad504376e19ea96145007df3d929a5 Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Wed, 5 Feb 2025 17:24:25 -0500 Subject: [PATCH 011/656] Add broken crypto query --- java/ql/lib/experimental/Quantum/JCA.qll | 2 +- .../src/experimental/Quantum/BrokenCrypto.ql | 77 +++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 java/ql/src/experimental/Quantum/BrokenCrypto.ql diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index fae5c4f806e..8a613b66d02 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -126,7 +126,7 @@ abstract class CipherAlgorithmMode extends Crypto::NodeBase { result = alg and name = alg.toString() } - override string getAlgorithmName(){ result = this.getAlgorithmName()} + override string getAlgorithmName(){ result = alg.getValue()} } diff --git a/java/ql/src/experimental/Quantum/BrokenCrypto.ql b/java/ql/src/experimental/Quantum/BrokenCrypto.ql new file mode 100644 index 00000000000..020ac1b8925 --- /dev/null +++ b/java/ql/src/experimental/Quantum/BrokenCrypto.ql @@ -0,0 +1,77 @@ +/** +* @name Use of a broken or risky cryptographic algorithm +* @description Using broken or weak cryptographic algorithms can allow an attacker to compromise security. +* @kind problem +* @problem.severity warning +* @security-severity 7.5 +* @precision high +* @id java/weak-cryptographic-algorithm-new-model +* @tags security +* external/cwe/cwe-327 +* external/cwe/cwe-328 +*/ + + + +//THIS QUERY IS A REPLICA OF: https://github.com/github/codeql/blob/main/java/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.ql +//but uses the **NEW MODELLING** +import experimental.Quantum.Language + + +/** + * Gets the name of an algorithm that is known to be insecure. + */ +string getAnInsecureAlgorithmName() { + result = + [ + "DES", "RC2", "RC4", "RC5", + // ARCFOUR is a variant of RC4 + "ARCFOUR", + // Encryption mode ECB like AES/ECB/NoPadding is vulnerable to replay and other attacks + "ECB", + // CBC mode of operation with PKCS#5 or PKCS#7 padding is vulnerable to padding oracle attacks + "AES/CBC/PKCS[57]Padding" + ] + } + + private string rankedInsecureAlgorithm(int i) { + result = rank[i](string s | s = getAnInsecureAlgorithmName()) + } + + private string insecureAlgorithmString(int i) { + i = 1 and result = rankedInsecureAlgorithm(i) + or + result = rankedInsecureAlgorithm(i) + "|" + insecureAlgorithmString(i - 1) + } + + /** + * Gets the regular expression used for matching strings that look like they + * contain an algorithm that is known to be insecure. + */ + string getInsecureAlgorithmRegex() { + result = algorithmRegex(insecureAlgorithmString(max(int i | exists(rankedInsecureAlgorithm(i))))) + } + + bindingset[algorithmString] +private string algorithmRegex(string algorithmString) { + // Algorithms usually appear in names surrounded by characters that are not + // alphabetical characters in the same case. This handles the upper and lower + // case cases. + result = + "((^|.*[^A-Z])(" + algorithmString + ")([^A-Z].*|$))" + + // or... + "|" + + // For lowercase, we want to be careful to avoid being confused by camelCase + // hence we require two preceding uppercase letters to be sure of a case switch, + // or a preceding non-alphabetic character + "((^|.*[A-Z]{2}|.*[^a-zA-Z])(" + algorithmString.toLowerCase() + ")([^a-z].*|$))" +} + +from Crypto::Algorithm alg +where alg.getAlgorithmName().regexpMatch(getInsecureAlgorithmRegex()) and +// Exclude RSA/ECB/.* ciphers. +not alg.getAlgorithmName().regexpMatch("RSA/ECB.*") and +// Exclude German and French sentences. +not alg.getAlgorithmName().regexpMatch(".*\\p{IsLowercase} des \\p{IsLetter}.*") +select alg, "Cryptographic algorithm $@ is weak and should not be used.", alg, +alg.getAlgorithmName() From 3dc28c2d17d95c9bdbf2e7127d365e3673770363 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 6 Feb 2025 21:54:18 +0100 Subject: [PATCH 012/656] Move language-agnostic model to shared library --- cpp/ql/lib/experimental/Quantum/Language.qll | 2 +- cpp/ql/lib/experimental/Quantum/OpenSSL.qll | 4 ++ cpp/ql/lib/qlpack.yml | 1 + .../scripts/cryptography}/cbom.sh | 2 +- .../scripts/cryptography}/generate_cbom.py | 0 .../codeql/cryptography/Model.qll | 44 +++++++++---------- shared/cryptography/qlpack.yml | 7 +++ 7 files changed, 34 insertions(+), 26 deletions(-) rename {cpp/ql/src/experimental/Quantum => misc/scripts/cryptography}/cbom.sh (79%) rename {cpp/ql/src/experimental/Quantum => misc/scripts/cryptography}/generate_cbom.py (100%) rename cpp/ql/lib/experimental/Quantum/Base.qll => shared/cryptography/codeql/cryptography/Model.qll (93%) create mode 100644 shared/cryptography/qlpack.yml diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index c9398c9e324..8f400858f07 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -1,4 +1,4 @@ -private import Base +private import codeql.cryptography.Model private import cpp as Lang module CryptoInput implements InputSig { diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll index 18feda6c8c6..bf38e5c0ab5 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll @@ -77,6 +77,8 @@ module OpenSSLModel { HKDF() { algorithmStringToKDFFetchArgFlow("HKDF", origin, this) } + override string getRawAlgorithmName() { result = origin.getValue() } + override Crypto::HashAlgorithm getHashAlgorithm() { none() } override Crypto::LocatableElement getOrigin(string name) { @@ -89,6 +91,8 @@ module OpenSSLModel { PKCS12KDF() { algorithmStringToKDFFetchArgFlow("PKCS12KDF", origin, this) } + override string getRawAlgorithmName() { result = origin.getValue() } + override Crypto::HashAlgorithm getHashAlgorithm() { none() } override Crypto::NodeBase getOrigin(string name) { diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 6ffc77714d4..489de9f6cef 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -6,6 +6,7 @@ extractor: cpp library: true upgrades: upgrades dependencies: + codeql/cryptography: ${workspace} codeql/dataflow: ${workspace} codeql/mad: ${workspace} codeql/rangeanalysis: ${workspace} diff --git a/cpp/ql/src/experimental/Quantum/cbom.sh b/misc/scripts/cryptography/cbom.sh similarity index 79% rename from cpp/ql/src/experimental/Quantum/cbom.sh rename to misc/scripts/cryptography/cbom.sh index df1c58b1efb..9cbef951bbf 100755 --- a/cpp/ql/src/experimental/Quantum/cbom.sh +++ b/misc/scripts/cryptography/cbom.sh @@ -2,7 +2,7 @@ CODEQL_PATH="/Users/nicolaswill/Library/Application Support/Code/User/globalStorage/github.vscode-codeql/distribution5/codeql/codeql" DATABASE_PATH="/Users/nicolaswill/openssl_codeql/openssl/openssl_db" -QUERY_FILE="CBOMGraph.ql" +QUERY_FILE="/Users/nicolaswill/pqc/codeql/cpp/ql/src/experimental/Quantum/CBOMGraph.ql" OUTPUT_DIR="graph_output" python3 generate_cbom.py -c "$CODEQL_PATH" -d "$DATABASE_PATH" -q "$QUERY_FILE" -o "$OUTPUT_DIR" diff --git a/cpp/ql/src/experimental/Quantum/generate_cbom.py b/misc/scripts/cryptography/generate_cbom.py similarity index 100% rename from cpp/ql/src/experimental/Quantum/generate_cbom.py rename to misc/scripts/cryptography/generate_cbom.py diff --git a/cpp/ql/lib/experimental/Quantum/Base.qll b/shared/cryptography/codeql/cryptography/Model.qll similarity index 93% rename from cpp/ql/lib/experimental/Quantum/Base.qll rename to shared/cryptography/codeql/cryptography/Model.qll index 68b3bc08cf7..eba25db60d2 100644 --- a/cpp/ql/lib/experimental/Quantum/Base.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -94,7 +94,7 @@ module CryptographyBase Input> { */ abstract string getAlgorithmName(); - /** + /** * Gets the raw name of this algorithm from source (no parsing or formatting) */ abstract string getRawAlgorithmName(); @@ -151,7 +151,6 @@ module CryptographyBase Input> { abstract THashType getHashType(); override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashType(), result) } - } /** @@ -199,26 +198,23 @@ module CryptographyBase Input> { } newtype TEllipticCurveFamilyType = - // We're saying by this that all of these have an identical interface / properties / edges - NIST() or - SEC() or - NUMS() or - PRIME() or - BRAINPOOL() or - CURVE25519() or - CURVE448() or - C2() or - SM2() or - ES() or - OtherEllipticCurveFamilyType() - + // We're saying by this that all of these have an identical interface / properties / edges + NIST() or + SEC() or + NUMS() or + PRIME() or + BRAINPOOL() or + CURVE25519() or + CURVE448() or + C2() or + SM2() or + ES() or + OtherEllipticCurveFamilyType() /** * Elliptic curve algorithm */ abstract class EllipticCurve extends Algorithm { - - abstract string getKeySize(Location location); abstract TEllipticCurveFamilyType getCurveFamilyType(); @@ -235,18 +231,18 @@ module CryptographyBase Input> { // other properties, like field type are possible, but not modeled until considered necessary } - override string getAlgorithmName() { result = this.getRawAlgorithmName().toUpperCase()} + override string getAlgorithmName() { result = this.getRawAlgorithmName().toUpperCase() } /** * Mandating that for Elliptic Curves specifically, users are responsible - * for providing as the 'raw' name, the official name of the algorithm. - * Casing doesn't matter, we will enforce further naming restrictions on - * `getAlgorithmName` by default. + * for providing as the 'raw' name, the official name of the algorithm. + * Casing doesn't matter, we will enforce further naming restrictions on + * `getAlgorithmName` by default. * Rationale: elliptic curve names can have a lot of variation in their components * (e.g., "secp256r1" vs "P-256"), trying to produce generalized set of properties - * is possible to capture all cases, but such modeling is likely not necessary. - * if all properties need to be captured, we can reassess how names are generated. + * is possible to capture all cases, but such modeling is likely not necessary. + * if all properties need to be captured, we can reassess how names are generated. */ - override abstract string getRawAlgorithmName(); + abstract override string getRawAlgorithmName(); } } diff --git a/shared/cryptography/qlpack.yml b/shared/cryptography/qlpack.yml new file mode 100644 index 00000000000..768c64a0704 --- /dev/null +++ b/shared/cryptography/qlpack.yml @@ -0,0 +1,7 @@ +name: codeql/cryptography +version: 0.0.0-dev +groups: shared +library: true +dependencies: + codeql/util: ${workspace} +warnOnImplicitThis: true \ No newline at end of file From 60d931af9f98ffda9185ed17bc17e9ad870887ab Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Fri, 7 Feb 2025 15:46:13 -0500 Subject: [PATCH 013/656] Update progress on JCA --- java/ql/lib/experimental/Quantum/Base.qll | 94 +++++++++++++++++++- java/ql/lib/experimental/Quantum/JCA.qll | 100 ++++++++++------------ 2 files changed, 136 insertions(+), 58 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/Base.qll b/java/ql/lib/experimental/Quantum/Base.qll index bbcd60ee891..a14f3b6836a 100644 --- a/java/ql/lib/experimental/Quantum/Base.qll +++ b/java/ql/lib/experimental/Quantum/Base.qll @@ -11,6 +11,8 @@ } class UnknownLocation instanceof Location; + + } module CryptographyBase Input> { @@ -91,6 +93,11 @@ * Gets the name of this algorithm, e.g., "AES" or "SHA". */ abstract string getAlgorithmName(); + + /** + * Gets the raw name of this algorithm from source (no parsing or formatting) + */ + abstract string getRawAlgorithmName(); final override string toString() { result = this.getAlgorithmName() } } @@ -148,7 +155,7 @@ /** * Gets the raw name of this hash algorithm from source. */ - abstract string getRawAlgorithmName(); + override abstract string getRawAlgorithmName(); } /** @@ -231,5 +238,90 @@ override string getOperationName() { result = "ENCRYPTION" } } + +// newtype TBlockCipherFamilyType = +// // We're saying by this that all of these have an identical interface / properties / edges +// CBC() or ECB() + + +// abstract class BlockCiper extends Algorithm { + +// abstract string getKeySize(Location location); + +// abstract TBlockCipherFamilyType getBlockCipherFamilyType(); + +// override predicate properties(string key, string value, Location location) { +// super.properties(key, value, location) +// or +// key = "key_size" and +// if exists(this.getKeySize(location)) +// then value = this.getKeySize(location) +// else ( +// value instanceof UnknownPropertyValue and location instanceof UnknownLocation +// ) +// // other properties, like field type are possible, but not modeled until considered necessary +// } + +// override string getAlgorithmName() { result = this.getRawAlgorithmName().toUpperCase()} + +// override abstract string getRawAlgorithmName(); +// } + +newtype TModeOperation = +ECB() or OtherMode() + +abstract class ModeOfOperation extends Algorithm { + string getValue() {result = ""} + + final private predicate modeToNameMapping(TModeOperation type, string name) { + type instanceof ECB and name = "ECB" + or + type instanceof OtherMode and name = this.getRawAlgorithmName() + } + + abstract TModeOperation getModeType(); + + override string getAlgorithmName() { this.modeToNameMapping(this.getModeType(), result) } + +} + +newtype TCipherStructure = +Block() or Stream() + + newtype TSymmetricCipherFamilyType = +// We're saying by this that all of these have an identical interface / properties / edges +AES() + + /** + * Symmetric algorithms + */ + abstract class SymmetricAlgorithm extends Algorithm { + + + abstract TSymmetricCipherFamilyType getSymmetricCipherFamilyType(); + + abstract string getKeySize(Location location); + + abstract TCipherStructure getCipherType(); + + + //mode, padding scheme, keysize, block/stream, auth'd + //nodes = mode, padding scheme + //properties = keysize, block/stream, auth'd + //leave authd to lang specific + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + key = "key_size" and + if exists(this.getKeySize(location)) + then value = this.getKeySize(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + //add more keys to index props + } + + abstract ModeOfOperation getModeOfOperation(); +} } \ No newline at end of file diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 8a613b66d02..389235964b5 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -14,41 +14,6 @@ predicate cipher_modes(string mode) {mode = ["NONE", "CBC", "CCM", "CFB", "CFBx" predicate cipher_padding(string padding) {padding = ["NoPadding", "ISO10126Padding", "OAEPPadding", "OAEPWith", "PKCS1Padding", "PKCS5Padding", "SSL3Padding"]} -abstract class BlockCiper extends Crypto::Algorithm { - CipherAlgorithmStringLiteral alg; - CipherAlgorithmMode mode; - CipherAlgorithmPadding padding; - - - CipherAlgorithmStringLiteral getAlg() {result = alg } - CipherAlgorithmMode getMode() {result = mode } - - CipherAlgorithmPadding getPadding() {result =padding} -} - /** - * Symmetric algorithms - */ - abstract class SymmetricAlgorithm extends Crypto::Algorithm { - - - //TODO figure out how to get this from the Cipher interface, is it explicit? - //abstract string getKeySize(Location location); - - // override predicate properties(string key, string value, Location location) { - // super.properties(key, value, location) - // or - // key = "key_size" and - // if exists(this.getKeySize(location)) - // then value = this.getKeySize(location) - // else ( - // value instanceof Crypto::UnknownPropertyValue and location instanceof UnknownLocation - // ) - // // other properties, like field type are possible, but not modeled until considered necessary - // } - - abstract override string getAlgorithmName(); -} - ////cipher specifics ---------------------------------------- class CipherInstance extends Call { @@ -60,24 +25,26 @@ class CipherInstance extends Call { /** * this may be specified either in the ALG/MODE/PADDING or just ALG format */ -class CipherAlgorithmStringLiteral extends Crypto::NodeBase instanceof StringLiteral { +class CipherAlgorithmStringLiteral extends StringLiteral { CipherAlgorithmStringLiteral() { cipher_names(this.getValue().splitAt("/"))} - - override string toString() { result = this.(StringLiteral).toString() } - - string getValue() { result = this.(StringLiteral).getValue() } } -abstract class CipherAlgorithmMode extends Crypto::NodeBase { - string getValue() {result = ""} -} - class CipherAlgorithmModeStringLiteral extends CipherAlgorithmMode instanceof StringLiteral { - CipherAlgorithmModeStringLiteral() { cipher_modes(this.(StringLiteral).getValue().splitAt("/"))} + class ModeOfOperationStringLiteral extends Crypto::ModeOfOperation instanceof StringLiteral { + ModeOfOperationStringLiteral() { cipher_modes(this.(StringLiteral).getValue().splitAt("/"))} - override string toString() { result = this.(StringLiteral).toString() } + override string getRawAlgorithmName() { result = this.(StringLiteral).getValue().regexpCapture(".*/(.*)/.*",1) } override string getValue() { result = this.(StringLiteral).getValue().regexpCapture(".*/(.*)/.*",1) } + + + predicate modeToNameMapping(Crypto::TModeOperation type, string name) { + name = "ECB" and type instanceof Crypto::ECB + } + + override Crypto::TModeOperation getModeType(){ + modeToNameMapping(result, this.getRawAlgorithmName()) + } } abstract class CipherAlgorithmPadding extends Crypto::NodeBase { @@ -102,32 +69,51 @@ abstract class CipherAlgorithmMode extends Crypto::NodeBase { module AlgorithmStringToFetchFlow = DataFlow::Global; - predicate algorithmStringToCipherInstanceArgFlow(string name, CipherAlgorithmStringLiteral origin, CipherAlgorithmModeStringLiteral mode, CipherAlgorithmPaddingStringLiteral padding, Expr arg) { + predicate algorithmStringToCipherInstanceArgFlow(string name, CipherAlgorithmStringLiteral origin, Expr arg) { exists(CipherInstance sinkCall | origin.getValue().splitAt("/") = name and - origin = mode and - origin = padding and arg = sinkCall.getAlgorithmArg() and AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) ) } + + predicate modeStringToCipherInstanceArgFlow(string name, ModeOfOperationStringLiteral mode, Expr arg) { + exists(CipherInstance sinkCall | + mode.getRawAlgorithmName() = name and + arg = sinkCall.getAlgorithmArg() and + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(mode), DataFlow::exprNode(arg)) + ) + } + /** * A class to represent when AES is used AND it has literal mode and padding provided * this does not capture the use without */ - class AESLiteral extends SymmetricAlgorithm, BlockCiper instanceof Expr { +// class AESLiteral extends Crypto::SymmetricAlgorithm instanceof Expr { +// CipherAlgorithmStringLiteral alg; +// AESLiteral() { algorithmStringToCipherInstanceArgFlow("AES", alg, this) +// } +// override Crypto::ModeOfOperation getModeOfOperation(){ modeStringToCipherInstanceArgFlow(result.getAlgorithmName(), result, this)} - AESLiteral() { algorithmStringToCipherInstanceArgFlow("AES", alg, mode, padding, this) -} +// override Crypto::LocatableElement getOrigin(string name) { +// result = alg and name = alg.toString() +// } - override Crypto::LocatableElement getOrigin(string name) { - result = alg and name = alg.toString() - } +// override string getAlgorithmName(){ result = "AES" } - override string getAlgorithmName(){ result = alg.getValue()} - } +// override string getRawAlgorithmName(){ result = alg.getValue()} + +// override Crypto::TSymmetricCipherFamilyType getSymmetricCipherFamilyType() { result instanceof Crypto::AES} + +// //temp hacks for testing +// override string getKeySize(Location location){ +// result = "" +// } + +// override Crypto::TCipherStructure getCipherType(){ none()} +// } } \ No newline at end of file From 6005437001c27e022d6f9d29c738f5fdb05ad481 Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Mon, 10 Feb 2025 11:26:48 -0500 Subject: [PATCH 014/656] Update JCA model with flow to call as AESuse and format JCA model --- java/ql/lib/experimental/Quantum/JCA.qll | 132 ++++++++++++++--------- 1 file changed, 82 insertions(+), 50 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 389235964b5..f75cfe7fd08 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -7,17 +7,35 @@ module JCAModel { abstract class EncryptionOperation extends Crypto::EncryptionOperation { } //TODO PBEWith can have suffixes. how to do? enumerate? or match a pattern? -predicate cipher_names(string algo) { algo = ["AES", "AESWrap", "AESWrapPad", "ARCFOUR", "Blowfish", "ChaCha20", "ChaCha20-Poly1305", "DES", "DESede", "DESedeWrap", "ECIES", "PBEWith", "RC2", "RC4", "RC5", "RSA"] } -//TODO solve the fact that x is an int of various values. same as above... enumerate? -predicate cipher_modes(string mode) {mode = ["NONE", "CBC", "CCM", "CFB", "CFBx", "CTR", "CTS", "ECB", "GCM", "KW", "KWP", "OFB", "OFBx", "PCBC"]} -//todo same as above, OAEPWith has asuffix type -predicate cipher_padding(string padding) {padding = ["NoPadding", "ISO10126Padding", "OAEPPadding", "OAEPWith", "PKCS1Padding", "PKCS5Padding", "SSL3Padding"]} + predicate cipher_names(string algo) { + algo = + [ + "AES", "AESWrap", "AESWrapPad", "ARCFOUR", "Blowfish", "ChaCha20", "ChaCha20-Poly1305", + "DES", "DESede", "DESedeWrap", "ECIES", "PBEWith", "RC2", "RC4", "RC5", "RSA" + ] + } + //TODO solve the fact that x is an int of various values. same as above... enumerate? + predicate cipher_modes(string mode) { + mode = + [ + "NONE", "CBC", "CCM", "CFB", "CFBx", "CTR", "CTS", "ECB", "GCM", "KW", "KWP", "OFB", "OFBx", + "PCBC" + ] + } -////cipher specifics ---------------------------------------- + //todo same as above, OAEPWith has asuffix type + predicate cipher_padding(string padding) { + padding = + [ + "NoPadding", "ISO10126Padding", "OAEPPadding", "OAEPWith", "PKCS1Padding", "PKCS5Padding", + "SSL3Padding" + ] + } -class CipherInstance extends Call { - CipherInstance() { this.getCallee().hasQualifiedName("javax.crypto","Cipher", "getInstance") } + ////cipher specifics ---------------------------------------- + class CipherInstance extends Call { + CipherInstance() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "getInstance") } Expr getAlgorithmArg() { result = this.getArgument(0) } } @@ -25,38 +43,44 @@ class CipherInstance extends Call { /** * this may be specified either in the ALG/MODE/PADDING or just ALG format */ -class CipherAlgorithmStringLiteral extends StringLiteral { - CipherAlgorithmStringLiteral() { cipher_names(this.getValue().splitAt("/"))} + class CipherAlgorithmStringLiteral extends StringLiteral { + CipherAlgorithmStringLiteral() { cipher_names(this.getValue().splitAt("/")) } } - class ModeOfOperationStringLiteral extends Crypto::ModeOfOperation instanceof StringLiteral { - ModeOfOperationStringLiteral() { cipher_modes(this.(StringLiteral).getValue().splitAt("/"))} + ModeOfOperationStringLiteral() { cipher_modes(this.(StringLiteral).getValue().splitAt("/")) } - override string getRawAlgorithmName() { result = this.(StringLiteral).getValue().regexpCapture(".*/(.*)/.*",1) } + override string getRawAlgorithmName() { + result = this.(StringLiteral).getValue().regexpCapture(".*/(.*)/.*", 1) + } - override string getValue() { result = this.(StringLiteral).getValue().regexpCapture(".*/(.*)/.*",1) } + override string getValue() { + result = this.(StringLiteral).getValue().regexpCapture(".*/(.*)/.*", 1) + } + predicate modeToNameMapping(Crypto::TModeOperation type, string name) { + name = "ECB" and type instanceof Crypto::ECB + } - predicate modeToNameMapping(Crypto::TModeOperation type, string name) { - name = "ECB" and type instanceof Crypto::ECB - } - - override Crypto::TModeOperation getModeType(){ + override Crypto::TModeOperation getModeType() { modeToNameMapping(result, this.getRawAlgorithmName()) } } abstract class CipherAlgorithmPadding extends Crypto::NodeBase { - string getValue() {result = ""} + string getValue() { result = "" } } class CipherAlgorithmPaddingStringLiteral extends CipherAlgorithmPadding instanceof StringLiteral { - CipherAlgorithmPaddingStringLiteral() { cipher_padding(this.(StringLiteral).getValue().splitAt("/"))} + CipherAlgorithmPaddingStringLiteral() { + cipher_padding(this.(StringLiteral).getValue().splitAt("/")) + } override string toString() { result = this.(StringLiteral).toString() } - override string getValue() { result = this.(StringLiteral).getValue().regexpCapture(".*/.*/(.*)",1) } + override string getValue() { + result = this.(StringLiteral).getValue().regexpCapture(".*/.*/(.*)", 1) + } } private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { @@ -69,51 +93,59 @@ class CipherAlgorithmStringLiteral extends StringLiteral { module AlgorithmStringToFetchFlow = DataFlow::Global; - predicate algorithmStringToCipherInstanceArgFlow(string name, CipherAlgorithmStringLiteral origin, Expr arg) { + predicate algorithmStringToCipherInstanceArgFlow( + string name, CipherAlgorithmStringLiteral origin, Expr arg + ) { exists(CipherInstance sinkCall | origin.getValue().splitAt("/") = name and - arg = sinkCall.getAlgorithmArg() and - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) + arg = sinkCall and + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), + DataFlow::exprNode(sinkCall.getAlgorithmArg())) ) } - - predicate modeStringToCipherInstanceArgFlow(string name, ModeOfOperationStringLiteral mode, Expr arg) { + predicate modeStringToCipherInstanceArgFlow( + string name, ModeOfOperationStringLiteral mode, Expr arg + ) { exists(CipherInstance sinkCall | mode.getRawAlgorithmName() = name and - arg = sinkCall.getAlgorithmArg() and - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(mode), DataFlow::exprNode(arg)) + arg = sinkCall and + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(mode), + DataFlow::exprNode(sinkCall.getAlgorithmArg())) ) } /** - * A class to represent when AES is used AND it has literal mode and padding provided - * this does not capture the use without + * A class to represent when AES is used + * AND currently it has literal mode and padding provided + * + * this currently does not capture the use without a literal + * though should be extended to */ -// class AESLiteral extends Crypto::SymmetricAlgorithm instanceof Expr { -// CipherAlgorithmStringLiteral alg; -// AESLiteral() { algorithmStringToCipherInstanceArgFlow("AES", alg, this) -// } + class AESAlgo extends Crypto::SymmetricAlgorithm instanceof Expr { + CipherAlgorithmStringLiteral alg; -// override Crypto::ModeOfOperation getModeOfOperation(){ modeStringToCipherInstanceArgFlow(result.getAlgorithmName(), result, this)} + AESAlgo() { algorithmStringToCipherInstanceArgFlow("AES", alg, this) } -// override Crypto::LocatableElement getOrigin(string name) { -// result = alg and name = alg.toString() -// } + override Crypto::ModeOfOperation getModeOfOperation() { + modeStringToCipherInstanceArgFlow(result.getAlgorithmName(), result, this) + } -// override string getAlgorithmName(){ result = "AES" } + override Crypto::LocatableElement getOrigin(string name) { + result = alg and name = alg.toString() + } -// override string getRawAlgorithmName(){ result = alg.getValue()} + override string getAlgorithmName() { result = "AES" } -// override Crypto::TSymmetricCipherFamilyType getSymmetricCipherFamilyType() { result instanceof Crypto::AES} + override string getRawAlgorithmName() { result = alg.getValue() } -// //temp hacks for testing -// override string getKeySize(Location location){ -// result = "" -// } + override Crypto::TSymmetricCipherFamilyType getSymmetricCipherFamilyType() { + result instanceof Crypto::AES + } -// override Crypto::TCipherStructure getCipherType(){ none()} -// } + //temp hacks for testing + override string getKeySize(Location location) { result = "" } - -} \ No newline at end of file + override Crypto::TCipherStructure getCipherType() { none() } + } +} From 59208bdb85adb0b5fb14c7b2d9bf94d393ff11ea Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Mon, 10 Feb 2025 12:22:22 -0500 Subject: [PATCH 015/656] Update JCA model to use shared lib --- java/ql/lib/experimental/Quantum/Base.qll | 327 ------------------ java/ql/lib/experimental/Quantum/Language.qll | 2 +- java/ql/lib/qlpack.yml | 1 + .../codeql/cryptography/Model.qll | 65 ++++ 4 files changed, 67 insertions(+), 328 deletions(-) delete mode 100644 java/ql/lib/experimental/Quantum/Base.qll diff --git a/java/ql/lib/experimental/Quantum/Base.qll b/java/ql/lib/experimental/Quantum/Base.qll deleted file mode 100644 index a14f3b6836a..00000000000 --- a/java/ql/lib/experimental/Quantum/Base.qll +++ /dev/null @@ -1,327 +0,0 @@ -/** - * A language-independent library for reasoning about cryptography. - */ - - import codeql.util.Location - import codeql.util.Option - - signature module InputSig { - class LocatableElement { - Location getLocation(); - } - - class UnknownLocation instanceof Location; - - - } - - module CryptographyBase Input> { - final class LocatableElement = Input::LocatableElement; - - final class UnknownLocation = Input::UnknownLocation; - - final class UnknownPropertyValue extends string { - UnknownPropertyValue() { this = "" } - } - - abstract class NodeBase instanceof LocatableElement { - /** - * Returns a string representation of this node, usually the name of the operation/algorithm/property. - */ - abstract string toString(); - - /** - * Returns the location of this node in the code. - */ - Location getLocation() { result = super.getLocation() } - - /** - * Gets the origin of this node, e.g., a string literal in source describing it. - */ - LocatableElement getOrigin(string value) { none() } - - /** - * Returns the child of this node with the given edge name. - * - * This predicate is used by derived classes to construct the graph of cryptographic operations. - */ - NodeBase getChild(string edgeName) { none() } - - /** - * Defines properties of this node by name and either a value or location or both. - * - * This predicate is used by derived classes to construct the graph of cryptographic operations. - */ - predicate properties(string key, string value, Location location) { - key = "origin" and location = this.getOrigin(value).getLocation() - } - - /** - * Returns the parent of this node. - */ - final NodeBase getAParent() { result.getChild(_) = this } - } - - class Asset = NodeBase; - - /** - * A cryptographic operation, such as hashing or encryption. - */ - abstract class Operation extends Asset { - /** - * Gets the algorithm associated with this operation. - */ - abstract Algorithm getAlgorithm(); - - /** - * Gets the name of this operation, e.g., "hash" or "encrypt". - */ - abstract string getOperationName(); - - final override string toString() { result = this.getOperationName() } - - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) - or - edgeName = "uses" and - if exists(this.getAlgorithm()) then result = this.getAlgorithm() else result = this - } - } - - abstract class Algorithm extends Asset { - /** - * Gets the name of this algorithm, e.g., "AES" or "SHA". - */ - abstract string getAlgorithmName(); - - /** - * Gets the raw name of this algorithm from source (no parsing or formatting) - */ - abstract string getRawAlgorithmName(); - - final override string toString() { result = this.getAlgorithmName() } - } - - /** - * A hashing operation that processes data to generate a hash value. - * This operation takes an input message of arbitrary content and length and produces a fixed-size - * hash value as the output using a specified hashing algorithm. - */ - abstract class HashOperation extends Operation { - abstract override HashAlgorithm getAlgorithm(); - - override string getOperationName() { result = "HASH" } - } - - // Rule: no newtype representing a type of algorithm should be modelled with multiple interfaces - // - // Example: HKDF and PKCS12KDF are both key derivation algorithms. - // However, PKCS12KDF also has a property: the iteration count. - // - // If we have HKDF and PKCS12KDF under TKeyDerivationType, - // someone modelling a library might try to make a generic identification of both of those algorithms. - // - // They will therefore not use the specialized type for PKCS12KDF, - // meaning "from PKCS12KDF algo select algo" will have no results. - // - newtype THashType = - // We're saying by this that all of these have an identical interface / properties / edges - MD5() or - SHA1() or - SHA256() or - SHA512() or - OtherHashType() - - /** - * A hashing algorithm that transforms variable-length input into a fixed-size hash value. - */ - abstract class HashAlgorithm extends Algorithm { - final predicate hashTypeToNameMapping(THashType type, string name) { - type instanceof MD5 and name = "MD5" - or - type instanceof SHA1 and name = "SHA-1" - or - type instanceof SHA256 and name = "SHA-256" - or - type instanceof SHA512 and name = "SHA-512" - or - type instanceof OtherHashType and name = this.getRawAlgorithmName() - } - - abstract THashType getHashType(); - - override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashType(), result) } - - /** - * Gets the raw name of this hash algorithm from source. - */ - override abstract string getRawAlgorithmName(); - } - - /** - * An operation that derives one or more keys from an input value. - */ - abstract class KeyDerivationOperation extends Operation { - override string getOperationName() { result = "KEY_DERIVATION" } - } - - /** - * An algorithm that derives one or more keys from an input value. - */ - abstract class KeyDerivationAlgorithm extends Algorithm { - abstract override string getAlgorithmName(); - } - - /** - * HKDF key derivation function - */ - abstract class HKDF extends KeyDerivationAlgorithm { - final override string getAlgorithmName() { result = "HKDF" } - - abstract HashAlgorithm getHashAlgorithm(); - - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) - or - edgeName = "digest" and result = this.getHashAlgorithm() - } - } - - /** - * PKCS #12 key derivation function - */ - abstract class PKCS12KDF extends KeyDerivationAlgorithm { - final override string getAlgorithmName() { result = "PKCS12KDF" } - - abstract HashAlgorithm getHashAlgorithm(); - - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) - or - edgeName = "digest" and result = this.getHashAlgorithm() - } - } - - /** - * Elliptic curve algorithm - */ - abstract class EllipticCurve extends Algorithm { - abstract string getVersion(Location location); - - abstract string getKeySize(Location location); - - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) - or - key = "version" and - if exists(this.getVersion(location)) - then value = this.getVersion(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - or - key = "key_size" and - if exists(this.getKeySize(location)) - then value = this.getKeySize(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - } - } - - /** - * An encryption operation that processes plaintext to generate a ciphertext. - * This operation takes an input message (plaintext) of arbitrary content and length and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). - */ - abstract class EncryptionOperation extends Operation { - abstract override Algorithm getAlgorithm(); - - override string getOperationName() { result = "ENCRYPTION" } - } - -// newtype TBlockCipherFamilyType = -// // We're saying by this that all of these have an identical interface / properties / edges -// CBC() or ECB() - - -// abstract class BlockCiper extends Algorithm { - -// abstract string getKeySize(Location location); - -// abstract TBlockCipherFamilyType getBlockCipherFamilyType(); - -// override predicate properties(string key, string value, Location location) { -// super.properties(key, value, location) -// or -// key = "key_size" and -// if exists(this.getKeySize(location)) -// then value = this.getKeySize(location) -// else ( -// value instanceof UnknownPropertyValue and location instanceof UnknownLocation -// ) -// // other properties, like field type are possible, but not modeled until considered necessary -// } - -// override string getAlgorithmName() { result = this.getRawAlgorithmName().toUpperCase()} - -// override abstract string getRawAlgorithmName(); -// } - -newtype TModeOperation = -ECB() or OtherMode() - -abstract class ModeOfOperation extends Algorithm { - string getValue() {result = ""} - - final private predicate modeToNameMapping(TModeOperation type, string name) { - type instanceof ECB and name = "ECB" - or - type instanceof OtherMode and name = this.getRawAlgorithmName() - } - - abstract TModeOperation getModeType(); - - override string getAlgorithmName() { this.modeToNameMapping(this.getModeType(), result) } - -} - -newtype TCipherStructure = -Block() or Stream() - - newtype TSymmetricCipherFamilyType = -// We're saying by this that all of these have an identical interface / properties / edges -AES() - - /** - * Symmetric algorithms - */ - abstract class SymmetricAlgorithm extends Algorithm { - - - abstract TSymmetricCipherFamilyType getSymmetricCipherFamilyType(); - - abstract string getKeySize(Location location); - - abstract TCipherStructure getCipherType(); - - - //mode, padding scheme, keysize, block/stream, auth'd - //nodes = mode, padding scheme - //properties = keysize, block/stream, auth'd - //leave authd to lang specific - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) - or - key = "key_size" and - if exists(this.getKeySize(location)) - then value = this.getKeySize(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - //add more keys to index props - } - - abstract ModeOfOperation getModeOfOperation(); -} - } - \ No newline at end of file diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 246f2b86367..485b3e716e6 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -1,4 +1,4 @@ -private import Base +private import codeql.cryptography.Model private import java as Lang /** diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 18b74a919dd..ae7f13ad7ab 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -6,6 +6,7 @@ extractor: java library: true upgrades: upgrades dependencies: + codeql/cryptography: ${workspace} codeql/dataflow: ${workspace} codeql/mad: ${workspace} codeql/rangeanalysis: ${workspace} diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index eba25db60d2..aa626066684 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -245,4 +245,69 @@ module CryptographyBase Input> { */ abstract override string getRawAlgorithmName(); } + + /** + * An encryption operation that processes plaintext to generate a ciphertext. + * This operation takes an input message (plaintext) of arbitrary content and length and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). + */ + abstract class EncryptionOperation extends Operation { + abstract override Algorithm getAlgorithm(); + + override string getOperationName() { result = "ENCRYPTION" } + } + + newtype TModeOperation = + ECB() or + OtherMode() + + abstract class ModeOfOperation extends Algorithm { + string getValue() { result = "" } + + final private predicate modeToNameMapping(TModeOperation type, string name) { + type instanceof ECB and name = "ECB" + or + type instanceof OtherMode and name = this.getRawAlgorithmName() + } + + abstract TModeOperation getModeType(); + + override string getAlgorithmName() { this.modeToNameMapping(this.getModeType(), result) } + } + + newtype TCipherStructure = + Block() or + Stream() + + newtype TSymmetricCipherFamilyType = + // We're saying by this that all of these have an identical interface / properties / edges + AES() + + /** + * Symmetric algorithms + */ + abstract class SymmetricAlgorithm extends Algorithm { + abstract TSymmetricCipherFamilyType getSymmetricCipherFamilyType(); + + abstract string getKeySize(Location location); + + abstract TCipherStructure getCipherType(); + + //mode, padding scheme, keysize, block/stream, auth'd + //nodes = mode, padding scheme + //properties = keysize, block/stream, auth'd + //leave authd to lang specific + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + key = "key_size" and + if exists(this.getKeySize(location)) + then value = this.getKeySize(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + //add more keys to index props + } + + abstract ModeOfOperation getModeOfOperation(); + } } From 1a12fb309902fa6111c443051ab56359d6867f48 Mon Sep 17 00:00:00 2001 From: Kristen Newbury Date: Mon, 10 Feb 2025 13:49:32 -0500 Subject: [PATCH 016/656] Update JCA model, refactor modes --- java/ql/lib/experimental/Quantum/JCA.qll | 47 +++++++++++-------- .../codeql/cryptography/Model.qll | 1 + 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index f75cfe7fd08..4443ce85159 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -47,16 +47,18 @@ module JCAModel { CipherAlgorithmStringLiteral() { cipher_names(this.getValue().splitAt("/")) } } - class ModeOfOperationStringLiteral extends Crypto::ModeOfOperation instanceof StringLiteral { + class ModeOfOperationStringLiteral extends StringLiteral { ModeOfOperationStringLiteral() { cipher_modes(this.(StringLiteral).getValue().splitAt("/")) } - override string getRawAlgorithmName() { - result = this.(StringLiteral).getValue().regexpCapture(".*/(.*)/.*", 1) - } + string getRawAlgorithmName() { result = this.getValue().regexpCapture(".*/(.*)/.*", 1) } + } - override string getValue() { - result = this.(StringLiteral).getValue().regexpCapture(".*/(.*)/.*", 1) - } + class ECBMode extends Crypto::ModeOfOperation { + ModeOfOperationStringLiteral mode; + + ECBMode() { modeStringToCipherInstanceArgFlow("ECB", mode, this) } + + override string getRawAlgorithmName() { result = mode.getRawAlgorithmName() } predicate modeToNameMapping(Crypto::TModeOperation type, string name) { name = "ECB" and type instanceof Crypto::ECB @@ -65,24 +67,26 @@ module JCAModel { override Crypto::TModeOperation getModeType() { modeToNameMapping(result, this.getRawAlgorithmName()) } + + override Crypto::LocatableElement getOrigin(string name) { + result = mode and name = mode.toString() + } } abstract class CipherAlgorithmPadding extends Crypto::NodeBase { string getValue() { result = "" } } - class CipherAlgorithmPaddingStringLiteral extends CipherAlgorithmPadding instanceof StringLiteral { - CipherAlgorithmPaddingStringLiteral() { - cipher_padding(this.(StringLiteral).getValue().splitAt("/")) - } - - override string toString() { result = this.(StringLiteral).toString() } - - override string getValue() { - result = this.(StringLiteral).getValue().regexpCapture(".*/.*/(.*)", 1) - } - } - + //todo refactor + // class CipherAlgorithmPaddingStringLiteral extends CipherAlgorithmPadding instanceof StringLiteral { + // CipherAlgorithmPaddingStringLiteral() { + // cipher_padding(this.(StringLiteral).getValue().splitAt("/")) + // } + // override string toString() { result = this.(StringLiteral).toString() } + // override string getValue() { + // result = this.(StringLiteral).getValue().regexpCapture(".*/.*/(.*)", 1) + // } + // } private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherAlgorithmStringLiteral } @@ -108,6 +112,7 @@ module JCAModel { string name, ModeOfOperationStringLiteral mode, Expr arg ) { exists(CipherInstance sinkCall | + //consider if this should be a more specific predicate mode.getRawAlgorithmName() = name and arg = sinkCall and AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(mode), @@ -127,8 +132,10 @@ module JCAModel { AESAlgo() { algorithmStringToCipherInstanceArgFlow("AES", alg, this) } + //todo this is really not correct yet override Crypto::ModeOfOperation getModeOfOperation() { - modeStringToCipherInstanceArgFlow(result.getAlgorithmName(), result, this) + none() + //exists(Crypto::ModeOfOperation mode | mode = this and result = this) } override Crypto::LocatableElement getOrigin(string name) { diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index aa626066684..2b2919b6d3f 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -258,6 +258,7 @@ module CryptographyBase Input> { newtype TModeOperation = ECB() or + CBC() or OtherMode() abstract class ModeOfOperation extends Algorithm { From 4d447559457edacc18dad249417e2855e2b7269d Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Tue, 11 Feb 2025 15:37:15 +0100 Subject: [PATCH 017/656] Refactor Model and CBOM print queries --- cpp/ql/src/experimental/Quantum/CBOMGraph.ql | 48 --------- .../experimental/Quantum/PrintCBOMGraph.ql | 21 ++++ java/ql/lib/experimental/Quantum/JCA.qll | 27 ++--- .../experimental/Quantum/PrintCBOMGraph.ql | 21 ++++ .../codeql/cryptography/Model.qll | 101 +++++++++++++----- 5 files changed, 134 insertions(+), 84 deletions(-) delete mode 100644 cpp/ql/src/experimental/Quantum/CBOMGraph.ql create mode 100644 cpp/ql/src/experimental/Quantum/PrintCBOMGraph.ql create mode 100644 java/ql/src/experimental/Quantum/PrintCBOMGraph.ql diff --git a/cpp/ql/src/experimental/Quantum/CBOMGraph.ql b/cpp/ql/src/experimental/Quantum/CBOMGraph.ql deleted file mode 100644 index edcc40aca6a..00000000000 --- a/cpp/ql/src/experimental/Quantum/CBOMGraph.ql +++ /dev/null @@ -1,48 +0,0 @@ -/** - * @name "Print CBOM Graph" - * @description "Outputs a graph representation of the cryptographic bill of materials." - * @kind graph - * @id cbomgraph - */ - -import experimental.Quantum.Language - -string getPropertyString(Crypto::NodeBase node, string key) { - result = - strictconcat(any(string value, Location location, string parsed | - node.properties(key, value, location) and - parsed = "(" + value + "," + location.toString() + ")" - | - parsed - ), "," - ) -} - -string getLabel(Crypto::NodeBase node) { result = node.toString() } - -query predicate nodes(Crypto::NodeBase node, string key, string value) { - key = "semmle.label" and - value = getLabel(node) - or - // CodeQL's DGML output does not include a location - key = "Location" and - value = node.getLocation().toString() - or - // Known unknown edges should be reported as properties rather than edges - node = node.getChild(key) and - value = "" - or - // Report properties - value = getPropertyString(node, key) -} - -query predicate edges(Crypto::NodeBase source, Crypto::NodeBase target, string key, string value) { - key = "semmle.label" and - target = source.getChild(value) and - // Known unknowns are reported as properties rather than edges - not source = target -} - -query predicate graphProperties(string key, string value) { - key = "semmle.graphKind" and value = "graph" -} diff --git a/cpp/ql/src/experimental/Quantum/PrintCBOMGraph.ql b/cpp/ql/src/experimental/Quantum/PrintCBOMGraph.ql new file mode 100644 index 00000000000..d9658105aeb --- /dev/null +++ b/cpp/ql/src/experimental/Quantum/PrintCBOMGraph.ql @@ -0,0 +1,21 @@ +/** + * @name Print CBOM Graph + * @description Outputs a graph representation of the cryptographic bill of materials. + * This query only supports DGML output, as CodeQL DOT output omits properties. + * @kind graph + * @id cpp/print-cbom-graph + */ + +import experimental.Quantum.Language + +query predicate nodes(Crypto::NodeBase node, string key, string value) { + Crypto::nodes_graph_impl(node, key, value) +} + +query predicate edges(Crypto::NodeBase source, Crypto::NodeBase target, string key, string value) { + Crypto::edges_graph_impl(source, target, key, value) +} + +query predicate graphProperties(string key, string value) { + key = "semmle.graphKind" and value = "graph" +} diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 4443ce85159..44a753bb7db 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -7,12 +7,14 @@ module JCAModel { abstract class EncryptionOperation extends Crypto::EncryptionOperation { } //TODO PBEWith can have suffixes. how to do? enumerate? or match a pattern? + bindingset[algo] predicate cipher_names(string algo) { - algo = - [ - "AES", "AESWrap", "AESWrapPad", "ARCFOUR", "Blowfish", "ChaCha20", "ChaCha20-Poly1305", - "DES", "DESede", "DESedeWrap", "ECIES", "PBEWith", "RC2", "RC4", "RC5", "RSA" - ] + // "Standard names are not case-sensitive." + algo.toUpperCase() + .matches([ + "AES", "AESWrap", "AESWrapPad", "ARCFOUR", "Blowfish", "ChaCha20", "ChaCha20-Poly1305", + "DES", "DESede", "DESedeWrap", "ECIES", "PBEWith%", "RC2", "RC4", "RC5", "RSA" + ].toUpperCase()) } //TODO solve the fact that x is an int of various values. same as above... enumerate? @@ -33,9 +35,10 @@ module JCAModel { ] } - ////cipher specifics ---------------------------------------- - class CipherInstance extends Call { - CipherInstance() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "getInstance") } + class CipherGetInstanceCall extends Call { + CipherGetInstanceCall() { + this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "getInstance") + } Expr getAlgorithmArg() { result = this.getArgument(0) } } @@ -65,7 +68,7 @@ module JCAModel { } override Crypto::TModeOperation getModeType() { - modeToNameMapping(result, this.getRawAlgorithmName()) + this.modeToNameMapping(result, this.getRawAlgorithmName()) } override Crypto::LocatableElement getOrigin(string name) { @@ -91,7 +94,7 @@ module JCAModel { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherAlgorithmStringLiteral } predicate isSink(DataFlow::Node sink) { - exists(CipherInstance call | sink.asExpr() = call.getAlgorithmArg()) + exists(CipherGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) } } @@ -100,7 +103,7 @@ module JCAModel { predicate algorithmStringToCipherInstanceArgFlow( string name, CipherAlgorithmStringLiteral origin, Expr arg ) { - exists(CipherInstance sinkCall | + exists(CipherGetInstanceCall sinkCall | origin.getValue().splitAt("/") = name and arg = sinkCall and AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), @@ -111,7 +114,7 @@ module JCAModel { predicate modeStringToCipherInstanceArgFlow( string name, ModeOfOperationStringLiteral mode, Expr arg ) { - exists(CipherInstance sinkCall | + exists(CipherGetInstanceCall sinkCall | //consider if this should be a more specific predicate mode.getRawAlgorithmName() = name and arg = sinkCall and diff --git a/java/ql/src/experimental/Quantum/PrintCBOMGraph.ql b/java/ql/src/experimental/Quantum/PrintCBOMGraph.ql new file mode 100644 index 00000000000..063cda564b6 --- /dev/null +++ b/java/ql/src/experimental/Quantum/PrintCBOMGraph.ql @@ -0,0 +1,21 @@ +/** + * @name Print CBOM Graph + * @description Outputs a graph representation of the cryptographic bill of materials. + * This query only supports DGML output, as CodeQL DOT output omits properties. + * @kind graph + * @id java/print-cbom-graph + */ + +import experimental.Quantum.Language + +query predicate nodes(Crypto::NodeBase node, string key, string value) { + Crypto::nodes_graph_impl(node, key, value) +} + +query predicate edges(Crypto::NodeBase source, Crypto::NodeBase target, string key, string value) { + Crypto::edges_graph_impl(source, target, key, value) +} + +query predicate graphProperties(string key, string value) { + key = "semmle.graphKind" and value = "graph" +} diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 2b2919b6d3f..ad117674dff 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -22,6 +22,45 @@ module CryptographyBase Input> { UnknownPropertyValue() { this = "" } } + private string getPropertyAsGraphString(NodeBase node, string key) { + result = + strictconcat(any(string value, Location location, string parsed | + node.properties(key, value, location) and + parsed = "(" + value + "," + location.toString() + ")" + | + parsed + ), "," + ) + } + + predicate nodes_graph_impl(NodeBase node, string key, string value) { + key = "semmle.label" and + value = node.toString() + or + // CodeQL's DGML output does not include a location + key = "Location" and + value = node.getLocation().toString() + or + // Known unknown edges should be reported as properties rather than edges + node = node.getChild(key) and + value = "" + or + // Report properties + value = getPropertyAsGraphString(node, key) + } + + predicate edges_graph_impl(NodeBase source, NodeBase target, string key, string value) { + key = "semmle.label" and + target = source.getChild(value) and + // Known unknowns are reported as properties rather than edges + not source = target + } + + /** + * The base class for all cryptographic assets, such as operations and algorithms. + * + * Each `NodeBase` is a node in a graph of cryptographic operations, where the edges are the relationships between the nodes. + */ abstract class NodeBase instanceof LocatableElement { /** * Returns a string representation of this node, usually the name of the operation/algorithm/property. @@ -104,6 +143,7 @@ module CryptographyBase Input> { /** * A hashing operation that processes data to generate a hash value. + * * This operation takes an input message of arbitrary content and length and produces a fixed-size * hash value as the output using a specified hashing algorithm. */ @@ -113,19 +153,7 @@ module CryptographyBase Input> { override string getOperationName() { result = "HASH" } } - // Rule: no newtype representing a type of algorithm should be modelled with multiple interfaces - // - // Example: HKDF and PKCS12KDF are both key derivation algorithms. - // However, PKCS12KDF also has a property: the iteration count. - // - // If we have HKDF and PKCS12KDF under TKeyDerivationType, - // someone modelling a library might try to make a generic identification of both of those algorithms. - // - // They will therefore not use the specialized type for PKCS12KDF, - // meaning "from PKCS12KDF algo select algo" will have no results. - // newtype THashType = - // We're saying by this that all of these have an identical interface / properties / edges MD5() or SHA1() or SHA256() or @@ -197,8 +225,28 @@ module CryptographyBase Input> { } } - newtype TEllipticCurveFamilyType = - // We're saying by this that all of these have an identical interface / properties / edges + /* + * TODO: + * + * Rule: No newtype representing a type of algorithm should be modelled with multiple interfaces + * + * Example 1: HKDF and PKCS12KDF are both key derivation algorithms. + * However, PKCS12KDF also has a property: the iteration count. + * + * If we have HKDF and PKCS12KDF under TKeyDerivationType, + * someone modelling a library might try to make a generic identification of both of those algorithms. + * + * They will therefore not use the specialized type for PKCS12KDF, + * meaning "from PKCS12KDF algo select algo" will have no results. + * + * Example 2: Each type below represents a common family of elliptic curves, with a shared interface, i.e., + * predicates for library modellers to implement as well as the properties and edges reported. + */ + + /** + * Elliptic curve algorithms + */ + newtype TEllipticCurveFamily = NIST() or SEC() or NUMS() or @@ -211,13 +259,10 @@ module CryptographyBase Input> { ES() or OtherEllipticCurveFamilyType() - /** - * Elliptic curve algorithm - */ abstract class EllipticCurve extends Algorithm { abstract string getKeySize(Location location); - abstract TEllipticCurveFamilyType getCurveFamilyType(); + abstract TEllipticCurveFamily getCurveFamilyType(); override predicate properties(string key, string value, Location location) { super.properties(key, value, location) @@ -236,8 +281,10 @@ module CryptographyBase Input> { /** * Mandating that for Elliptic Curves specifically, users are responsible * for providing as the 'raw' name, the official name of the algorithm. + * * Casing doesn't matter, we will enforce further naming restrictions on * `getAlgorithmName` by default. + * * Rationale: elliptic curve names can have a lot of variation in their components * (e.g., "secp256r1" vs "P-256"), trying to produce generalized set of properties * is possible to capture all cases, but such modeling is likely not necessary. @@ -256,17 +303,20 @@ module CryptographyBase Input> { override string getOperationName() { result = "ENCRYPTION" } } + /** + * Block cipher modes of operation algorithms + */ newtype TModeOperation = ECB() or CBC() or OtherMode() abstract class ModeOfOperation extends Algorithm { - string getValue() { result = "" } - final private predicate modeToNameMapping(TModeOperation type, string name) { type instanceof ECB and name = "ECB" or + type instanceof CBC and name = "CBC" + or type instanceof OtherMode and name = this.getRawAlgorithmName() } @@ -275,17 +325,20 @@ module CryptographyBase Input> { override string getAlgorithmName() { this.modeToNameMapping(this.getModeType(), result) } } + /** + * A helper type for distinguishing between block and stream ciphers. + */ newtype TCipherStructure = Block() or Stream() - newtype TSymmetricCipherFamilyType = - // We're saying by this that all of these have an identical interface / properties / edges - AES() - /** * Symmetric algorithms */ + newtype TSymmetricCipherFamilyType = + AES() or + OtherSymmetricCipherFamilyType() + abstract class SymmetricAlgorithm extends Algorithm { abstract TSymmetricCipherFamilyType getSymmetricCipherFamilyType(); From 874e3b5e063bdd403264eea80e367d6a2f4eccdc Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Wed, 12 Feb 2025 17:58:15 +0100 Subject: [PATCH 018/656] Modify model to use newtypes, expand modeling --- cpp/ql/lib/experimental/Quantum/OpenSSL.qll | 208 ++++++-- java/ql/lib/experimental/Quantum/JCA.qll | 161 +++--- java/ql/src/experimental/Quantum/Test.ql | 7 +- .../codeql/cryptography/Model.qll | 467 ++++++++++++++++-- 4 files changed, 676 insertions(+), 167 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll index bf38e5c0ab5..cb19092f3fd 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll @@ -4,78 +4,172 @@ import semmle.code.cpp.dataflow.new.DataFlow module OpenSSLModel { import Language - abstract class KeyDerivationOperation extends Crypto::KeyDerivationOperation { } + class FunctionCallOrMacroAccess extends Element { + FunctionCallOrMacroAccess() { this instanceof FunctionCall or this instanceof MacroAccess } - class SHA1Algo extends Crypto::HashAlgorithm instanceof MacroAccess { - SHA1Algo() { this.getMacro().getName() = "SN_sha1" } - - override string getRawAlgorithmName() { result = "SN_sha1" } - - override Crypto::THashType getHashType() { result instanceof Crypto::SHA1 } + string getTargetName() { + result = this.(FunctionCall).getTarget().getName() + or + result = this.(MacroAccess).getMacroName() + } } + /** + * Hash function references in OpenSSL. + */ + predicate hash_ref_type_mapping_known(string name, Crypto::THashType algo) { + // `ma` name has an LN_ or SN_ prefix, which we want to ignore + // capture any name after the _ prefix using regex matching + name = ["sha1", "sha160"] and algo instanceof Crypto::SHA1 + or + name = ["sha224", "sha256", "sha384", "sha512"] and algo instanceof Crypto::SHA2 + or + name = ["sha3-224", "sha3-256", "sha3-384", "sha3-512"] and algo instanceof Crypto::SHA3 + or + name = "md2" and algo instanceof Crypto::MD2 + or + name = "md4" and algo instanceof Crypto::MD4 + or + name = "md5" and algo instanceof Crypto::MD5 + or + name = "ripemd160" and algo instanceof Crypto::RIPEMD160 + or + name = "whirlpool" and algo instanceof Crypto::WHIRLPOOL + } + + predicate hash_ref_type_mapping(FunctionCallOrMacroAccess ref, string name, Crypto::THashType algo) { + name = ref.getTargetName().regexpCapture("(?:SN_|LN_|EVP_)([a-z0-9]+)", 1) and + hash_ref_type_mapping_known(name, algo) + } + + class HashAlgorithmRef extends Crypto::HashAlgorithm { + FunctionCallOrMacroAccess instance; + + HashAlgorithmRef() { + this = Crypto::THashAlgorithm(instance) and + hash_ref_type_mapping(instance, _, _) + } + + override string getSHA2OrSHA3DigestSize(Location location) { + ( + this.getHashType() instanceof Crypto::SHA2 or + this.getHashType() instanceof Crypto::SHA3 + ) and + exists(string name | + hash_ref_type_mapping(instance, name, this.getHashType()) and + result = name.regexpFind("\\d{3}", 0, _) and + location = instance.getLocation() + ) + } + + override string getRawAlgorithmName() { result = instance.getTargetName() } + + override Crypto::THashType getHashType() { hash_ref_type_mapping(instance, _, result) } + + Element getInstance() { result = instance } + + override Location getLocation() { result = instance.getLocation() } + } + + /** + * Data-flow configuration for key derivation algorithm flow to EVP_KDF_derive. + */ module AlgorithmToEVPKeyDeriveConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source.asExpr() instanceof KeyDerivationAlgorithm } + predicate isSource(DataFlow::Node source) { + source.asExpr() = any(KeyDerivationAlgorithm a).getInstance() + } predicate isSink(DataFlow::Node sink) { - exists(EVP_KDF_derive kdo | sink.asExpr() = kdo.getAlgorithmArg()) + exists(EVP_KDF_derive kdo | + sink.asExpr() = kdo.getAlgorithmArg() + or + sink.asExpr() = kdo.getContextArg() // via `EVP_KDF_CTX_set_params` + ) + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + none() // TODO } } module AlgorithmToEVPKeyDeriveFlow = DataFlow::Global; - predicate algorithm_to_EVP_KDF_derive(Crypto::Algorithm algo, EVP_KDF_derive derive) { - algo.(Expr).getEnclosingFunction() = derive.(Expr).getEnclosingFunction() + predicate algorithm_to_EVP_KDF_derive(KeyDerivationAlgorithm algo, EVP_KDF_derive derive) { + none() } - class EVP_KDF_derive extends KeyDerivationOperation instanceof FunctionCall { - EVP_KDF_derive() { this.getTarget().getName() = "EVP_KDF_derive" } + /** + * Key derivation operation (e.g., `EVP_KDF_derive`) + */ + abstract class KeyDerivationOperation extends Crypto::KeyDerivationOperation { } + + class EVP_KDF_derive extends KeyDerivationOperation { + FunctionCall instance; + + EVP_KDF_derive() { + this = Crypto::TKeyDerivationOperation(instance) and + instance.getTarget().getName() = "EVP_KDF_derive" + } override Crypto::Algorithm getAlgorithm() { algorithm_to_EVP_KDF_derive(result, this) } - Expr getAlgorithmArg() { result = this.(FunctionCall).getArgument(3) } + Expr getAlgorithmArg() { result = instance.getArgument(3) } + + Expr getContextArg() { result = instance.getArgument(0) } } - abstract class KeyDerivationAlgorithm extends Crypto::KeyDerivationAlgorithm { } + /** + * Key derivation algorithm nodes + */ + abstract class KeyDerivationAlgorithm extends Crypto::KeyDerivationAlgorithm { + abstract Expr getInstance(); + } + /** + * `EVP_KDF_fetch` returns a key derivation algorithm. + */ class EVP_KDF_fetch_Call extends FunctionCall { EVP_KDF_fetch_Call() { this.getTarget().getName() = "EVP_KDF_fetch" } Expr getAlgorithmArg() { result = this.getArgument(1) } } - predicate kdf_names(string algo) { algo = ["HKDF", "PKCS12KDF"] } + class EVP_KDF_fetch_AlgorithmArg extends Expr { + EVP_KDF_fetch_AlgorithmArg() { exists(EVP_KDF_fetch_Call call | this = call.getAlgorithmArg()) } + } - class KDFAlgorithmStringLiteral extends Crypto::NodeBase instanceof StringLiteral { + predicate kdf_names(string algo) { algo = ["HKDF", "PKCS12KDF", "PBKDF2"] } + + class KDFAlgorithmStringLiteral extends StringLiteral { KDFAlgorithmStringLiteral() { kdf_names(this.getValue().toUpperCase()) } - - override string toString() { result = this.(StringLiteral).toString() } - - string getValue() { result = this.(StringLiteral).getValue() } } private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KDFAlgorithmStringLiteral } - predicate isSink(DataFlow::Node sink) { - exists(EVP_KDF_fetch_Call call | sink.asExpr() = call.getAlgorithmArg()) - } + predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof EVP_KDF_fetch_AlgorithmArg } } module AlgorithmStringToFetchFlow = DataFlow::Global; - predicate algorithmStringToKDFFetchArgFlow(string name, KDFAlgorithmStringLiteral origin, Expr arg) { - exists(EVP_KDF_fetch_Call sinkCall | - origin.getValue().toUpperCase() = name and - arg = sinkCall.getAlgorithmArg() and - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) - ) + predicate algorithmStringToKDFFetchArgFlow( + string name, KDFAlgorithmStringLiteral origin, EVP_KDF_fetch_AlgorithmArg arg + ) { + origin.getValue().toUpperCase() = name and + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) } - class HKDF extends KeyDerivationAlgorithm, Crypto::HKDF instanceof Expr { + /** + * HKDF key derivation algorithm. + */ + class HKDF extends KeyDerivationAlgorithm, Crypto::HKDF { KDFAlgorithmStringLiteral origin; + EVP_KDF_fetch_AlgorithmArg instance; - HKDF() { algorithmStringToKDFFetchArgFlow("HKDF", origin, this) } + HKDF() { + this = Crypto::TKeyDerivationAlgorithm(instance) and + algorithmStringToKDFFetchArgFlow("HKDF", origin, instance) + } override string getRawAlgorithmName() { result = origin.getValue() } @@ -84,19 +178,61 @@ module OpenSSLModel { override Crypto::LocatableElement getOrigin(string name) { result = origin and name = origin.toString() } + + override Expr getInstance() { result = origin } } - class PKCS12KDF extends KeyDerivationAlgorithm, Crypto::PKCS12KDF instanceof Expr { + /** + * PBKDF2 key derivation algorithm. + */ + class PBKDF2 extends KeyDerivationAlgorithm, Crypto::PBKDF2 { KDFAlgorithmStringLiteral origin; + EVP_KDF_fetch_AlgorithmArg instance; - PKCS12KDF() { algorithmStringToKDFFetchArgFlow("PKCS12KDF", origin, this) } + PBKDF2() { + this = Crypto::TKeyDerivationAlgorithm(instance) and + algorithmStringToKDFFetchArgFlow("PBKDF2", origin, instance) + } override string getRawAlgorithmName() { result = origin.getValue() } - override Crypto::HashAlgorithm getHashAlgorithm() { none() } + override string getIterationCount(Location location) { none() } // TODO - override Crypto::NodeBase getOrigin(string name) { + override string getKeyLength(Location location) { none() } // TODO + + override Crypto::HashAlgorithm getHashAlgorithm() { none() } // TODO + + override Crypto::LocatableElement getOrigin(string name) { result = origin and name = origin.toString() } + + override Expr getInstance() { result = instance } + } + + /** + * PKCS12KDF key derivation algorithm. + */ + class PKCS12KDF extends KeyDerivationAlgorithm, Crypto::PKCS12KDF { + KDFAlgorithmStringLiteral origin; + EVP_KDF_fetch_AlgorithmArg instance; + + PKCS12KDF() { + this = Crypto::TKeyDerivationAlgorithm(instance) and + algorithmStringToKDFFetchArgFlow("PKCS12KDF", origin, instance) + } + + override string getRawAlgorithmName() { result = origin.getValue() } + + override string getIterationCount(Location location) { none() } // TODO + + override string getIDByte(Location location) { none() } // TODO + + override Crypto::HashAlgorithm getHashAlgorithm() { none() } // TODO + + override Crypto::LocatableElement getOrigin(string name) { + result = origin and name = origin.toString() + } + + override Expr getInstance() { result = instance } } } diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 44a753bb7db..807dec96ba4 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -35,6 +35,19 @@ module JCAModel { ] } + /** + * this may be specified either in the ALG/MODE/PADDING or just ALG format + */ + class CipherStringLiteral extends StringLiteral { + CipherStringLiteral() { cipher_names(this.getValue().splitAt("/")) } + + string getAlgorithmName() { result = this.getValue().splitAt("/", 0) } + + string getMode() { result = this.getValue().splitAt("/", 1) } + + string getPadding() { result = this.getValue().splitAt("/", 2) } + } + class CipherGetInstanceCall extends Call { CipherGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "getInstance") @@ -43,41 +56,48 @@ module JCAModel { Expr getAlgorithmArg() { result = this.getArgument(0) } } - /** - * this may be specified either in the ALG/MODE/PADDING or just ALG format - */ - class CipherAlgorithmStringLiteral extends StringLiteral { - CipherAlgorithmStringLiteral() { cipher_names(this.getValue().splitAt("/")) } - } + private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherStringLiteral } - class ModeOfOperationStringLiteral extends StringLiteral { - ModeOfOperationStringLiteral() { cipher_modes(this.(StringLiteral).getValue().splitAt("/")) } - - string getRawAlgorithmName() { result = this.getValue().regexpCapture(".*/(.*)/.*", 1) } - } - - class ECBMode extends Crypto::ModeOfOperation { - ModeOfOperationStringLiteral mode; - - ECBMode() { modeStringToCipherInstanceArgFlow("ECB", mode, this) } - - override string getRawAlgorithmName() { result = mode.getRawAlgorithmName() } - - predicate modeToNameMapping(Crypto::TModeOperation type, string name) { - name = "ECB" and type instanceof Crypto::ECB - } - - override Crypto::TModeOperation getModeType() { - this.modeToNameMapping(result, this.getRawAlgorithmName()) - } - - override Crypto::LocatableElement getOrigin(string name) { - result = mode and name = mode.toString() + predicate isSink(DataFlow::Node sink) { + exists(CipherGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) } } - abstract class CipherAlgorithmPadding extends Crypto::NodeBase { - string getValue() { result = "" } + module AlgorithmStringToFetchFlow = DataFlow::Global; + + class CipherGetInstanceAlgorithmArg extends Expr { + CipherGetInstanceAlgorithmArg() { + exists(CipherGetInstanceCall call | this = call.getArgument(0)) + } + + StringLiteral getOrigin() { + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), DataFlow::exprNode(this)) + } + } + + class ModeStringLiteral extends Crypto::ModeOfOperation { + CipherStringLiteral instance; + + ModeStringLiteral() { + this = Crypto::TModeOfOperationAlgorithm(instance) and + exists(instance.getMode()) and + instance = any(CipherGetInstanceAlgorithmArg call).getOrigin() + } + + override Location getLocation() { result = instance.getLocation() } + + override string getRawAlgorithmName() { result = instance.getMode() } + + predicate modeToNameMapping(Crypto::TModeOperationType type, string name) { + super.modeToNameMapping(type, name) + } + + override Crypto::TModeOperationType getModeType() { + this.modeToNameMapping(result, instance.getMode().toUpperCase()) + } + + CipherStringLiteral getInstance() { result = instance } } //todo refactor @@ -90,39 +110,6 @@ module JCAModel { // result = this.(StringLiteral).getValue().regexpCapture(".*/.*/(.*)", 1) // } // } - private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherAlgorithmStringLiteral } - - predicate isSink(DataFlow::Node sink) { - exists(CipherGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) - } - } - - module AlgorithmStringToFetchFlow = DataFlow::Global; - - predicate algorithmStringToCipherInstanceArgFlow( - string name, CipherAlgorithmStringLiteral origin, Expr arg - ) { - exists(CipherGetInstanceCall sinkCall | - origin.getValue().splitAt("/") = name and - arg = sinkCall and - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), - DataFlow::exprNode(sinkCall.getAlgorithmArg())) - ) - } - - predicate modeStringToCipherInstanceArgFlow( - string name, ModeOfOperationStringLiteral mode, Expr arg - ) { - exists(CipherGetInstanceCall sinkCall | - //consider if this should be a more specific predicate - mode.getRawAlgorithmName() = name and - arg = sinkCall and - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(mode), - DataFlow::exprNode(sinkCall.getAlgorithmArg())) - ) - } - /** * A class to represent when AES is used * AND currently it has literal mode and padding provided @@ -130,32 +117,48 @@ module JCAModel { * this currently does not capture the use without a literal * though should be extended to */ - class AESAlgo extends Crypto::SymmetricAlgorithm instanceof Expr { - CipherAlgorithmStringLiteral alg; + class CipherAlgorithm extends Crypto::SymmetricAlgorithm { + CipherStringLiteral origin; + CipherGetInstanceAlgorithmArg instance; - AESAlgo() { algorithmStringToCipherInstanceArgFlow("AES", alg, this) } + CipherAlgorithm() { + this = Crypto::TSymmetricAlgorithm(instance) and + instance.getOrigin() = origin + } + + override Location getLocation() { result = instance.getLocation() } - //todo this is really not correct yet override Crypto::ModeOfOperation getModeOfOperation() { - none() - //exists(Crypto::ModeOfOperation mode | mode = this and result = this) + result.(ModeStringLiteral).getInstance() = origin } override Crypto::LocatableElement getOrigin(string name) { - result = alg and name = alg.toString() + result = origin and name = origin.toString() } - override string getAlgorithmName() { result = "AES" } + override string getRawAlgorithmName() { result = origin.getValue() } - override string getRawAlgorithmName() { result = alg.getValue() } - - override Crypto::TSymmetricCipherFamilyType getSymmetricCipherFamilyType() { - result instanceof Crypto::AES + override Crypto::TSymmetricCipherType getCipherFamily() { + this.cipherNameMapping(result, origin.getAlgorithmName()) } - //temp hacks for testing - override string getKeySize(Location location) { result = "" } + override string getKeySize(Location location) { none() } - override Crypto::TCipherStructure getCipherType() { none() } + bindingset[name] + private predicate cipherNameMappingKnown(Crypto::TSymmetricCipherType type, string name) { + name = "AES" and + type instanceof Crypto::AES + or + name = "RC4" and + type instanceof Crypto::RC4 + } + + bindingset[name] + predicate cipherNameMapping(Crypto::TSymmetricCipherType type, string name) { + this.cipherNameMappingKnown(type, name) + or + not this.cipherNameMappingKnown(_, name) and + type instanceof Crypto::OtherSymmetricCipherType + } } } diff --git a/java/ql/src/experimental/Quantum/Test.ql b/java/ql/src/experimental/Quantum/Test.ql index f35336a846f..f3ae23a2cca 100644 --- a/java/ql/src/experimental/Quantum/Test.ql +++ b/java/ql/src/experimental/Quantum/Test.ql @@ -2,7 +2,8 @@ * @name "PQC Test" */ - import experimental.Quantum.Language +import experimental.Quantum.Language -from JCAModel::AESLiteral l -select l, l.getAlg(), l.getMode().getValue(), l.getPadding().getValue() \ No newline at end of file +from Crypto::SymmetricAlgorithm a, Crypto::ModeOfOperation mode +where a.getModeOfOperation() = mode +select a, a.getAlgorithmName(), a.getRawAlgorithmName(), mode, mode.getAlgorithmName() diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index ad117674dff..dd570a89ef6 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -56,12 +56,22 @@ module CryptographyBase Input> { not source = target } + newtype TNode = + THashOperation(LocatableElement e) or + THashAlgorithm(LocatableElement e) or + TKeyDerivationOperation(LocatableElement e) or + TKeyDerivationAlgorithm(LocatableElement e) or + TEncryptionOperation(LocatableElement e) or + TSymmetricAlgorithm(LocatableElement e) or + TEllipticCurveAlgorithm(LocatableElement e) or + TModeOfOperationAlgorithm(LocatableElement e) + /** * The base class for all cryptographic assets, such as operations and algorithms. * * Each `NodeBase` is a node in a graph of cryptographic operations, where the edges are the relationships between the nodes. */ - abstract class NodeBase instanceof LocatableElement { + abstract class NodeBase extends TNode { /** * Returns a string representation of this node, usually the name of the operation/algorithm/property. */ @@ -70,7 +80,7 @@ module CryptographyBase Input> { /** * Returns the location of this node in the code. */ - Location getLocation() { result = super.getLocation() } + abstract Location getLocation(); /** * Gets the origin of this node, e.g., a string literal in source describing it. @@ -128,6 +138,8 @@ module CryptographyBase Input> { } abstract class Algorithm extends Asset { + final override string toString() { result = this.getAlgorithmType() } + /** * Gets the name of this algorithm, e.g., "AES" or "SHA". */ @@ -138,7 +150,20 @@ module CryptographyBase Input> { */ abstract string getRawAlgorithmName(); - final override string toString() { result = this.getAlgorithmName() } + /** + * Gets the type of this algorithm, e.g., "hash" or "key derivation". + */ + abstract string getAlgorithmType(); + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + // [ONLY_KNOWN] + key = "name" and value = this.getAlgorithmName() and location = this.getLocation() + or + // [ONLY_KNOWN] + key = "raw_name" and value = this.getRawAlgorithmName() and location = this.getLocation() + } } /** @@ -147,81 +172,318 @@ module CryptographyBase Input> { * This operation takes an input message of arbitrary content and length and produces a fixed-size * hash value as the output using a specified hashing algorithm. */ - abstract class HashOperation extends Operation { + abstract class HashOperation extends Operation, THashOperation { abstract override HashAlgorithm getAlgorithm(); - override string getOperationName() { result = "HASH" } + override string getOperationName() { result = "HashOperation" } } newtype THashType = + MD2() or + MD4() or MD5() or SHA1() or - SHA256() or - SHA512() or + SHA2() or + SHA3() or + RIPEMD160() or + WHIRLPOOL() or OtherHashType() /** * A hashing algorithm that transforms variable-length input into a fixed-size hash value. */ - abstract class HashAlgorithm extends Algorithm { + abstract class HashAlgorithm extends Algorithm, THashAlgorithm { + override string getAlgorithmType() { result = "HashAlgorithm" } + final predicate hashTypeToNameMapping(THashType type, string name) { + type instanceof MD2 and name = "MD2" + or + type instanceof MD4 and name = "MD4" + or type instanceof MD5 and name = "MD5" or - type instanceof SHA1 and name = "SHA-1" + type instanceof SHA1 and name = "SHA1" or - type instanceof SHA256 and name = "SHA-256" + type instanceof SHA2 and name = "SHA2" or - type instanceof SHA512 and name = "SHA-512" + type instanceof SHA3 and name = "SHA3" + or + type instanceof RIPEMD160 and name = "RIPEMD160" + or + type instanceof WHIRLPOOL and name = "WHIRLPOOL" or type instanceof OtherHashType and name = this.getRawAlgorithmName() } + /** + * Gets the type of this hashing algorithm, e.g., MD5 or SHA. + * + * When modeling a new hashing algorithm, use this predicate to specify the type of the algorithm. + */ abstract THashType getHashType(); override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashType(), result) } + + /** + * Gets the digest size of SHA2 or SHA3 algorithms. + * + * This predicate does not need to hold for other algorithms, + * as the digest size is already known based on the algorithm itself. + * + * For `OtherHashType` algorithms where a digest size should be reported, `THashType` + * should be extended to explicitly model that algorithm. If the algorithm has variable + * or multiple digest size variants, a similar predicate to this one must be defined + * for that algorithm to report the digest size. + */ + abstract string getSHA2OrSHA3DigestSize(Location location); + + bindingset[type] + private string getDigestSize(THashType type, Location location) { + type instanceof MD2 and result = "128" + or + type instanceof MD4 and result = "128" + or + type instanceof MD5 and result = "128" + or + type instanceof SHA1 and result = "160" + or + type instanceof SHA2 and result = this.getSHA2OrSHA3DigestSize(location) + or + type instanceof SHA3 and result = this.getSHA2OrSHA3DigestSize(location) + or + type instanceof RIPEMD160 and result = "160" + or + type instanceof WHIRLPOOL and result = "512" + } + + final override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + // [KNOWN_OR_UNKNOWN] + key = "digest_size" and + if exists(this.getDigestSize(this.getHashType(), location)) + then value = this.getDigestSize(this.getHashType(), location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + } } /** * An operation that derives one or more keys from an input value. */ - abstract class KeyDerivationOperation extends Operation { - override string getOperationName() { result = "KEY_DERIVATION" } + abstract class KeyDerivationOperation extends Operation, TKeyDerivationOperation { + final override Location getLocation() { + exists(LocatableElement le | this = TKeyDerivationOperation(le) and result = le.getLocation()) + } + + override string getOperationName() { result = "KeyDerivationOperation" } } /** * An algorithm that derives one or more keys from an input value. + * + * Only use this class to model UNKNOWN key derivation algorithms. + * + * For known algorithms, use the specialized classes, e.g., `HKDF` and `PKCS12KDF`. */ - abstract class KeyDerivationAlgorithm extends Algorithm { - abstract override string getAlgorithmName(); + abstract class KeyDerivationAlgorithm extends Algorithm, TKeyDerivationAlgorithm { + final override Location getLocation() { + exists(LocatableElement le | this = TKeyDerivationAlgorithm(le) and result = le.getLocation()) + } + + override string getAlgorithmType() { result = "KeyDerivationAlgorithm" } + + override string getAlgorithmName() { result = this.getRawAlgorithmName() } + } + + /** + * An algorithm that derives one or more keys from an input value, using a configurable digest algorithm. + */ + abstract private class KeyDerivationWithDigestParameter extends KeyDerivationAlgorithm { + abstract HashAlgorithm getHashAlgorithm(); + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + ( + // [KNOWN_OR_UNKNOWN] + edgeName = "uses" and + if exists(this.getHashAlgorithm()) then result = this.getHashAlgorithm() else result = this + ) + } } /** * HKDF key derivation function */ - abstract class HKDF extends KeyDerivationAlgorithm { + abstract class HKDF extends KeyDerivationWithDigestParameter { final override string getAlgorithmName() { result = "HKDF" } + } - abstract HashAlgorithm getHashAlgorithm(); + /** + * PBKDF2 key derivation function + */ + abstract class PBKDF2 extends KeyDerivationWithDigestParameter { + final override string getAlgorithmName() { result = "PBKDF2" } - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) + /** + * Gets the iteration count of this key derivation algorithm. + */ + abstract string getIterationCount(Location location); + + /** + * Gets the bit-length of the derived key. + */ + abstract string getKeyLength(Location location); + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) or - edgeName = "digest" and result = this.getHashAlgorithm() + ( + // [KNOWN_OR_UNKNOWN] + key = "iterations" and + if exists(this.getIterationCount(location)) + then value = this.getIterationCount(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + ) + or + ( + // [KNOWN_OR_UNKNOWN] + key = "key_len" and + if exists(this.getKeyLength(location)) + then value = this.getKeyLength(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + ) } } /** - * PKCS #12 key derivation function + * PKCS12KDF key derivation function */ - abstract class PKCS12KDF extends KeyDerivationAlgorithm { - final override string getAlgorithmName() { result = "PKCS12KDF" } + abstract class PKCS12KDF extends KeyDerivationWithDigestParameter { + override string getAlgorithmName() { result = "PKCS12KDF" } - abstract HashAlgorithm getHashAlgorithm(); + /** + * Gets the iteration count of this key derivation algorithm. + */ + abstract string getIterationCount(Location location); - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) + /** + * Gets the raw ID argument specifying the intended use of the derived key. + * + * The intended use is defined in RFC 7292, appendix B.3, as follows: + * + * This standard specifies 3 different values for the ID byte mentioned above: + * + * 1. If ID=1, then the pseudorandom bits being produced are to be used + * as key material for performing encryption or decryption. + * + * 2. If ID=2, then the pseudorandom bits being produced are to be used + * as an IV (Initial Value) for encryption or decryption. + * + * 3. If ID=3, then the pseudorandom bits being produced are to be used + * as an integrity key for MACing. + */ + abstract string getIDByte(Location location); + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) or - edgeName = "digest" and result = this.getHashAlgorithm() + ( + // [KNOWN_OR_UNKNOWN] + key = "iterations" and + if exists(this.getIterationCount(location)) + then value = this.getIterationCount(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + ) + or + ( + // [KNOWN_OR_UNKNOWN] + key = "id_byte" and + if exists(this.getIDByte(location)) + then value = this.getIDByte(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + ) + } + } + + /** + * scrypt key derivation function + */ + abstract class SCRYPT extends KeyDerivationAlgorithm { + final override string getAlgorithmName() { result = "scrypt" } + + /** + * Gets the iteration count (`N`) argument + */ + abstract string get_N(Location location); + + /** + * Gets the block size (`r`) argument + */ + abstract string get_r(Location location); + + /** + * Gets the parallelization factor (`p`) argument + */ + abstract string get_p(Location location); + + /** + * Gets the derived key length argument + */ + abstract string getDerivedKeyLength(Location location); + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + ( + // [KNOWN_OR_UNKNOWN] + key = "N" and + if exists(this.get_N(location)) + then value = this.get_N(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + ) + or + ( + // [KNOWN_OR_UNKNOWN] + key = "r" and + if exists(this.get_r(location)) + then value = this.get_r(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + ) + or + ( + // [KNOWN_OR_UNKNOWN] + key = "p" and + if exists(this.get_p(location)) + then value = this.get_p(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + ) + or + ( + // [KNOWN_OR_UNKNOWN] + key = "key_len" and + if exists(this.getDerivedKeyLength(location)) + then value = this.getDerivedKeyLength(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + ) } } @@ -246,7 +508,7 @@ module CryptographyBase Input> { /** * Elliptic curve algorithms */ - newtype TEllipticCurveFamily = + newtype TEllipticCurveType = NIST() or SEC() or NUMS() or @@ -257,16 +519,17 @@ module CryptographyBase Input> { C2() or SM2() or ES() or - OtherEllipticCurveFamilyType() + OtherEllipticCurveType() - abstract class EllipticCurve extends Algorithm { + abstract class EllipticCurve extends Algorithm, TEllipticCurveAlgorithm { abstract string getKeySize(Location location); - abstract TEllipticCurveFamily getCurveFamilyType(); + abstract TEllipticCurveType getCurveFamily(); override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or + // [KNOWN_OR_UNKNOWN] key = "key_size" and if exists(this.getKeySize(location)) then value = this.getKeySize(location) @@ -306,62 +569,168 @@ module CryptographyBase Input> { /** * Block cipher modes of operation algorithms */ - newtype TModeOperation = + newtype TModeOperationType = ECB() or CBC() or + CFB() or + OFB() or + CTR() or + GCM() or + CCM() or + XTS() or OtherMode() abstract class ModeOfOperation extends Algorithm { - final private predicate modeToNameMapping(TModeOperation type, string name) { + override string getAlgorithmType() { result = "ModeOfOperation" } + + /** + * Gets the type of this mode of operation, e.g., "ECB" or "CBC". + * + * When modeling a new mode of operation, use this predicate to specify the type of the mode. + */ + abstract TModeOperationType getModeType(); + + bindingset[type] + final predicate modeToNameMapping(TModeOperationType type, string name) { type instanceof ECB and name = "ECB" or type instanceof CBC and name = "CBC" or + type instanceof CFB and name = "CFB" + or + type instanceof OFB and name = "OFB" + or + type instanceof CTR and name = "CTR" + or + type instanceof GCM and name = "GCM" + or + type instanceof CCM and name = "CCM" + or + type instanceof XTS and name = "XTS" + or type instanceof OtherMode and name = this.getRawAlgorithmName() } - abstract TModeOperation getModeType(); - override string getAlgorithmName() { this.modeToNameMapping(this.getModeType(), result) } } /** * A helper type for distinguishing between block and stream ciphers. */ - newtype TCipherStructure = + newtype TCipherStructureType = Block() or - Stream() + Stream() or + UnknownCipherStructureType() + + private string getCipherStructureTypeString(TCipherStructureType type) { + type instanceof Block and result = "Block" + or + type instanceof Stream and result = "Stream" + or + type instanceof UnknownCipherStructureType and result instanceof UnknownPropertyValue + } /** * Symmetric algorithms */ - newtype TSymmetricCipherFamilyType = + newtype TSymmetricCipherType = AES() or - OtherSymmetricCipherFamilyType() + Camellia() or + DES() or + TripleDES() or + IDEA() or + CAST5() or + ChaCha20() or + RC4() or + RC5() or + OtherSymmetricCipherType() abstract class SymmetricAlgorithm extends Algorithm { - abstract TSymmetricCipherFamilyType getSymmetricCipherFamilyType(); + final TCipherStructureType getCipherStructure() { + this.cipherFamilyToNameAndStructure(this.getCipherFamily(), _, result) + } + final override string getAlgorithmName() { + this.cipherFamilyToNameAndStructure(this.getCipherFamily(), result, _) + } + + final override string getAlgorithmType() { result = "SymmetricAlgorithm" } + + /** + * Gets the key size of this symmetric cipher, e.g., "128" or "256". + */ abstract string getKeySize(Location location); - abstract TCipherStructure getCipherType(); + /** + * Gets the type of this symmetric cipher, e.g., "AES" or "ChaCha20". + */ + abstract TSymmetricCipherType getCipherFamily(); + + /** + * Gets the mode of operation of this symmetric cipher, e.g., "GCM" or "CBC". + */ + abstract ModeOfOperation getModeOfOperation(); + + bindingset[type] + final private predicate cipherFamilyToNameAndStructure( + TSymmetricCipherType type, string name, TCipherStructureType s + ) { + type instanceof AES and name = "AES" and s = Block() + or + type instanceof Camellia and name = "Camellia" and s = Block() + or + type instanceof DES and name = "DES" and s = Block() + or + type instanceof TripleDES and name = "TripleDES" and s = Block() + or + type instanceof IDEA and name = "IDEA" and s = Block() + or + type instanceof CAST5 and name = "CAST5" and s = Block() + or + type instanceof ChaCha20 and name = "ChaCha20" and s = Stream() + or + type instanceof RC4 and name = "RC4" and s = Stream() + or + type instanceof RC5 and name = "RC5" and s = Block() + or + type instanceof OtherSymmetricCipherType and + name = this.getRawAlgorithmName() and + s = UnknownCipherStructureType() + } //mode, padding scheme, keysize, block/stream, auth'd //nodes = mode, padding scheme //properties = keysize, block/stream, auth'd //leave authd to lang specific + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + ( + // [KNOWN_OR_UNKNOWN] + edgeName = "mode" and + if exists(this.getModeOfOperation()) + then result = this.getModeOfOperation() + else result = this + ) + } + override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or - key = "key_size" and - if exists(this.getKeySize(location)) - then value = this.getKeySize(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation + // [ALWAYS_KNOWN]: unknown case is handled in `getCipherStructureTypeString` + key = "structure" and + getCipherStructureTypeString(this.getCipherStructure()) = value and + location instanceof UnknownLocation + or + ( + // [KNOWN_OR_UNKNOWN] + key = "key_size" and + if exists(this.getKeySize(location)) + then value = this.getKeySize(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) ) - //add more keys to index props } - - abstract ModeOfOperation getModeOfOperation(); } } From b777a22d3578a057e58082310b2ab9e7a01b522e Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Fri, 14 Feb 2025 23:43:07 +0100 Subject: [PATCH 019/656] Expand model and specialize newtype relations --- cpp/ql/lib/experimental/Quantum/OpenSSL.qll | 62 ++++---- java/ql/lib/experimental/Quantum/JCA.qll | 116 ++++++++------- java/ql/src/experimental/Quantum/Test.ql | 2 +- .../codeql/cryptography/Model.qll | 135 ++++++++++++++---- 4 files changed, 203 insertions(+), 112 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll index cb19092f3fd..821fc0aec8f 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll @@ -4,16 +4,6 @@ import semmle.code.cpp.dataflow.new.DataFlow module OpenSSLModel { import Language - class FunctionCallOrMacroAccess extends Element { - FunctionCallOrMacroAccess() { this instanceof FunctionCall or this instanceof MacroAccess } - - string getTargetName() { - result = this.(FunctionCall).getTarget().getName() - or - result = this.(MacroAccess).getMacroName() - } - } - /** * Hash function references in OpenSSL. */ @@ -42,13 +32,27 @@ module OpenSSLModel { hash_ref_type_mapping_known(name, algo) } - class HashAlgorithmRef extends Crypto::HashAlgorithm { - FunctionCallOrMacroAccess instance; + class FunctionCallOrMacroAccess extends Element { + FunctionCallOrMacroAccess() { this instanceof FunctionCall or this instanceof MacroAccess } - HashAlgorithmRef() { - this = Crypto::THashAlgorithm(instance) and - hash_ref_type_mapping(instance, _, _) + string getTargetName() { + result = this.(FunctionCall).getTarget().getName() + or + result = this.(MacroAccess).getMacroName() } + } + + class HashAlgorithmCallOrMacro extends Crypto::HashAlgorithmInstance instanceof FunctionCallOrMacroAccess + { + HashAlgorithmCallOrMacro() { hash_ref_type_mapping(this, _, _) } + + string getTargetName() { result = this.(FunctionCallOrMacroAccess).getTargetName() } + } + + class HashAlgorithm extends Crypto::HashAlgorithm { + HashAlgorithmCallOrMacro instance; + + HashAlgorithm() { this = Crypto::THashAlgorithm(instance) } override string getSHA2OrSHA3DigestSize(Location location) { ( @@ -81,9 +85,9 @@ module OpenSSLModel { predicate isSink(DataFlow::Node sink) { exists(EVP_KDF_derive kdo | - sink.asExpr() = kdo.getAlgorithmArg() + sink.asExpr() = kdo.getCall().getAlgorithmArg() or - sink.asExpr() = kdo.getContextArg() // via `EVP_KDF_CTX_set_params` + sink.asExpr() = kdo.getCall().getContextArg() // via `EVP_KDF_CTX_set_params` ) } @@ -101,21 +105,23 @@ module OpenSSLModel { /** * Key derivation operation (e.g., `EVP_KDF_derive`) */ - abstract class KeyDerivationOperation extends Crypto::KeyDerivationOperation { } + class EVP_KDF_derive_FunctionCall extends Crypto::KeyDerivationOperationInstance instanceof FunctionCall + { + EVP_KDF_derive_FunctionCall() { this.getTarget().getName() = "EVP_KDF_derive" } - class EVP_KDF_derive extends KeyDerivationOperation { - FunctionCall instance; + Expr getAlgorithmArg() { result = super.getArgument(3) } - EVP_KDF_derive() { - this = Crypto::TKeyDerivationOperation(instance) and - instance.getTarget().getName() = "EVP_KDF_derive" - } + Expr getContextArg() { result = super.getArgument(0) } + } + + class EVP_KDF_derive extends Crypto::KeyDerivationOperation { + EVP_KDF_derive_FunctionCall instance; + + EVP_KDF_derive() { this = Crypto::TKeyDerivationOperation(instance) } override Crypto::Algorithm getAlgorithm() { algorithm_to_EVP_KDF_derive(result, this) } - Expr getAlgorithmArg() { result = instance.getArgument(3) } - - Expr getContextArg() { result = instance.getArgument(0) } + EVP_KDF_derive_FunctionCall getCall() { result = instance } } /** @@ -134,7 +140,7 @@ module OpenSSLModel { Expr getAlgorithmArg() { result = this.getArgument(1) } } - class EVP_KDF_fetch_AlgorithmArg extends Expr { + class EVP_KDF_fetch_AlgorithmArg extends Crypto::KeyDerivationAlgorithmInstance instanceof Expr { EVP_KDF_fetch_AlgorithmArg() { exists(EVP_KDF_fetch_Call call | this = call.getAlgorithmArg()) } } diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 807dec96ba4..299d9558ee1 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -4,12 +4,9 @@ import semmle.code.java.dataflow.DataFlow module JCAModel { import Language - abstract class EncryptionOperation extends Crypto::EncryptionOperation { } - - //TODO PBEWith can have suffixes. how to do? enumerate? or match a pattern? + // TODO: Verify that the PBEWith% case works correctly bindingset[algo] predicate cipher_names(string algo) { - // "Standard names are not case-sensitive." algo.toUpperCase() .matches([ "AES", "AESWrap", "AESWrapPad", "ARCFOUR", "Blowfish", "ChaCha20", "ChaCha20-Poly1305", @@ -17,26 +14,29 @@ module JCAModel { ].toUpperCase()) } - //TODO solve the fact that x is an int of various values. same as above... enumerate? + // TODO: Verify that the CFB% case works correctly + bindingset[mode] predicate cipher_modes(string mode) { - mode = - [ - "NONE", "CBC", "CCM", "CFB", "CFBx", "CTR", "CTS", "ECB", "GCM", "KW", "KWP", "OFB", "OFBx", - "PCBC" - ] + mode.toUpperCase() + .matches([ + "NONE", "CBC", "CCM", "CFB", "CFB%", "CTR", "CTS", "ECB", "GCM", "KW", "KWP", "OFB", + "OFB%", "PCBC" + ].toUpperCase()) } - //todo same as above, OAEPWith has asuffix type + // TODO: Verify that the OAEPWith% case works correctly + bindingset[padding] predicate cipher_padding(string padding) { - padding = - [ - "NoPadding", "ISO10126Padding", "OAEPPadding", "OAEPWith", "PKCS1Padding", "PKCS5Padding", - "SSL3Padding" - ] + padding + .toUpperCase() + .matches([ + "NoPadding", "ISO10126Padding", "OAEPPadding", "OAEPWith%", "PKCS1Padding", + "PKCS5Padding", "SSL3Padding" + ].toUpperCase()) } /** - * this may be specified either in the ALG/MODE/PADDING or just ALG format + * A `StringLiteral` in the `"ALG/MODE/PADDING"` or `"ALG"` format */ class CipherStringLiteral extends StringLiteral { CipherStringLiteral() { cipher_names(this.getValue().splitAt("/")) } @@ -56,6 +56,9 @@ module JCAModel { Expr getAlgorithmArg() { result = this.getArgument(0) } } + /** + * Data-flow configuration modelling flow from a cipher string literal to a `CipherGetInstanceCall` argument. + */ private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherStringLiteral } @@ -66,70 +69,77 @@ module JCAModel { module AlgorithmStringToFetchFlow = DataFlow::Global; - class CipherGetInstanceAlgorithmArg extends Expr { + /** + * The cipher algorithm argument to a `CipherGetInstanceCall`. + * + * For example, in `Cipher.getInstance(algorithm)`, this class represents `algorithm`. + */ + class CipherGetInstanceAlgorithmArg extends Crypto::EncryptionAlgorithmInstance, + Crypto::ModeOfOperationAlgorithmInstance instanceof Expr + { CipherGetInstanceAlgorithmArg() { exists(CipherGetInstanceCall call | this = call.getArgument(0)) } - StringLiteral getOrigin() { - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), DataFlow::exprNode(this)) + /** + * Returns the `StringLiteral` from which this argument is derived, if known. + */ + CipherStringLiteral getOrigin() { + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), + DataFlow::exprNode(this.(Expr).getAChildExpr*())) } } - class ModeStringLiteral extends Crypto::ModeOfOperation { - CipherStringLiteral instance; + /** + * A block cipher mode of operation, where the mode is specified in the ALG or ALG/MODE/PADDING format. + * + * This class will only exist when the mode (*and its type*) is determinable. + * This is because the mode will always be specified alongside the algorithm and never independently. + * Therefore, we can always assume that a determinable algorithm will have a determinable mode. + * + * In the case that only an algorithm is specified, e.g., "AES", the provider provides a default mode. + * + * TODO: Model the case of relying on a provider default, but alert on it as a bad practice. + */ + class ModeOfOperation extends Crypto::ModeOfOperationAlgorithm { + CipherGetInstanceAlgorithmArg instance; - ModeStringLiteral() { + ModeOfOperation() { this = Crypto::TModeOfOperationAlgorithm(instance) and - exists(instance.getMode()) and - instance = any(CipherGetInstanceAlgorithmArg call).getOrigin() + // TODO: this currently only holds for explicitly defined modes in a string literal. + // Cases with defaults, e.g., "AES", are not yet modelled. + // For these cases, in a CBOM, the AES node would have an unknown edge to its mode child. + exists(instance.getOrigin().getMode()) } override Location getLocation() { result = instance.getLocation() } - override string getRawAlgorithmName() { result = instance.getMode() } + override string getRawAlgorithmName() { result = instance.getOrigin().getValue() } predicate modeToNameMapping(Crypto::TModeOperationType type, string name) { super.modeToNameMapping(type, name) } override Crypto::TModeOperationType getModeType() { - this.modeToNameMapping(result, instance.getMode().toUpperCase()) + this.modeToNameMapping(result, instance.getOrigin().getMode()) } CipherStringLiteral getInstance() { result = instance } } - //todo refactor - // class CipherAlgorithmPaddingStringLiteral extends CipherAlgorithmPadding instanceof StringLiteral { - // CipherAlgorithmPaddingStringLiteral() { - // cipher_padding(this.(StringLiteral).getValue().splitAt("/")) - // } - // override string toString() { result = this.(StringLiteral).toString() } - // override string getValue() { - // result = this.(StringLiteral).getValue().regexpCapture(".*/.*/(.*)", 1) - // } - // } - /** - * A class to represent when AES is used - * AND currently it has literal mode and padding provided - * - * this currently does not capture the use without a literal - * though should be extended to - */ - class CipherAlgorithm extends Crypto::SymmetricAlgorithm { + class EncryptionAlgorithm extends Crypto::EncryptionAlgorithm { CipherStringLiteral origin; CipherGetInstanceAlgorithmArg instance; - CipherAlgorithm() { - this = Crypto::TSymmetricAlgorithm(instance) and + EncryptionAlgorithm() { + this = Crypto::TEncryptionAlgorithm(instance) and instance.getOrigin() = origin } override Location getLocation() { result = instance.getLocation() } - override Crypto::ModeOfOperation getModeOfOperation() { - result.(ModeStringLiteral).getInstance() = origin + override Crypto::ModeOfOperationAlgorithm getModeOfOperation() { + result.(ModeOfOperation).getInstance() = origin } override Crypto::LocatableElement getOrigin(string name) { @@ -138,23 +148,25 @@ module JCAModel { override string getRawAlgorithmName() { result = origin.getValue() } - override Crypto::TSymmetricCipherType getCipherFamily() { + override Crypto::TCipherType getCipherFamily() { this.cipherNameMapping(result, origin.getAlgorithmName()) } override string getKeySize(Location location) { none() } bindingset[name] - private predicate cipherNameMappingKnown(Crypto::TSymmetricCipherType type, string name) { + private predicate cipherNameMappingKnown(Crypto::TCipherType type, string name) { name = "AES" and type instanceof Crypto::AES or name = "RC4" and type instanceof Crypto::RC4 + // or + // TODO } bindingset[name] - predicate cipherNameMapping(Crypto::TSymmetricCipherType type, string name) { + predicate cipherNameMapping(Crypto::TCipherType type, string name) { this.cipherNameMappingKnown(type, name) or not this.cipherNameMappingKnown(_, name) and diff --git a/java/ql/src/experimental/Quantum/Test.ql b/java/ql/src/experimental/Quantum/Test.ql index f3ae23a2cca..5496e5a70cf 100644 --- a/java/ql/src/experimental/Quantum/Test.ql +++ b/java/ql/src/experimental/Quantum/Test.ql @@ -4,6 +4,6 @@ import experimental.Quantum.Language -from Crypto::SymmetricAlgorithm a, Crypto::ModeOfOperation mode +from Crypto::EncryptionAlgorithm a, Crypto::ModeOfOperationAlgorithm mode where a.getModeOfOperation() = mode select a, a.getAlgorithmName(), a.getRawAlgorithmName(), mode, mode.getAlgorithmName() diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index dd570a89ef6..38ea6e475c0 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -8,6 +8,8 @@ import codeql.util.Option signature module InputSig { class LocatableElement { Location getLocation(); + + string toString(); } class UnknownLocation instanceof Location; @@ -56,15 +58,67 @@ module CryptographyBase Input> { not source = target } + /** + * All elements in the database that are mapped to nodes must extend the following classes + */ + abstract class HashOperationInstance extends LocatableElement { } + + abstract class HashAlgorithmInstance extends LocatableElement { } + + abstract class KeyDerivationOperationInstance extends LocatableElement { } + + abstract class KeyDerivationAlgorithmInstance extends LocatableElement { } + + abstract class EncryptionOperationInstance extends LocatableElement { } + + abstract class EncryptionAlgorithmInstance extends LocatableElement { } + + abstract class KeyEncapsulationOperationInstance extends LocatableElement { } + + abstract class KeyEncapsulationAlgorithmInstance extends LocatableElement { } + + abstract class EllipticCurveAlgorithmInstance extends LocatableElement { } + + // Non-standalone algorithms + abstract class ModeOfOperationAlgorithmInstance extends LocatableElement { } + + abstract class PaddingAlgorithmInstance extends LocatableElement { } + + // Artifacts + abstract class DigestArtifactInstance extends LocatableElement { } + + abstract class KeyArtifactInstance extends LocatableElement { } + + abstract class InitializationVectorArtifactInstance extends LocatableElement { } + + abstract class NonceArtifactInstance extends LocatableElement { } + newtype TNode = - THashOperation(LocatableElement e) or - THashAlgorithm(LocatableElement e) or - TKeyDerivationOperation(LocatableElement e) or - TKeyDerivationAlgorithm(LocatableElement e) or - TEncryptionOperation(LocatableElement e) or - TSymmetricAlgorithm(LocatableElement e) or - TEllipticCurveAlgorithm(LocatableElement e) or - TModeOfOperationAlgorithm(LocatableElement e) + // Artifacts (data that is not an operation or algorithm, e.g., a key) + TDigest(DigestArtifactInstance e) or + TKey(KeyArtifactInstance e) or + TInitializationVector(InitializationVectorArtifactInstance e) or + TNonce(NonceArtifactInstance e) or + // Operations (e.g., hashing, encryption) + THashOperation(HashOperationInstance e) or + TKeyDerivationOperation(KeyDerivationOperationInstance e) or + TEncryptionOperation(EncryptionOperationInstance e) or + TKeyEncapsulationOperation(KeyEncapsulationOperationInstance e) or + // Algorithms (e.g., SHA-256, AES) + TEncryptionAlgorithm(EncryptionAlgorithmInstance e) or + TEllipticCurveAlgorithm(EllipticCurveAlgorithmInstance e) or + THashAlgorithm(HashAlgorithmInstance e) or + TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstance e) or + TKeyEncapsulationAlgorithm(KeyEncapsulationAlgorithmInstance e) or + // Non-standalone Algorithms (e.g., Mode, Padding) + TModeOfOperationAlgorithm(ModeOfOperationAlgorithmInstance e) or + TPaddingAlgorithm(PaddingAlgorithmInstance e) or + // Composite and hybrid cryptosystems (e.g., RSA-OAEP used with AES, post-quantum hybrid cryptosystems) + // These nodes are always parent nodes and are not modeled but rather defined via library-agnostic patterns. + TKemDemHybridCryptosystem(EncryptionAlgorithmInstance dem) or + TKeyAgreementHybridCryptosystem(EncryptionAlgorithmInstance ka) or + TAsymmetricEncryptionMacHybridCryptosystem(EncryptionAlgorithmInstance enc) or + TPostQuantumHybridCryptosystem(EncryptionAlgorithmInstance enc) /** * The base class for all cryptographic assets, such as operations and algorithms. @@ -90,14 +144,14 @@ module CryptographyBase Input> { /** * Returns the child of this node with the given edge name. * - * This predicate is used by derived classes to construct the graph of cryptographic operations. + * This predicate is overriden by derived classes to construct the graph of cryptographic operations. */ NodeBase getChild(string edgeName) { none() } /** * Defines properties of this node by name and either a value or location or both. * - * This predicate is used by derived classes to construct the graph of cryptographic operations. + * This predicate is overriden by derived classes to construct the graph of cryptographic operations. */ predicate properties(string key, string value, Location location) { key = "origin" and @@ -113,6 +167,8 @@ module CryptographyBase Input> { class Asset = NodeBase; + class Artifact = NodeBase; + /** * A cryptographic operation, such as hashing or encryption. */ @@ -125,9 +181,9 @@ module CryptographyBase Input> { /** * Gets the name of this operation, e.g., "hash" or "encrypt". */ - abstract string getOperationName(); + abstract string getOperationType(); - final override string toString() { result = this.getOperationName() } + final override string toString() { result = this.getOperationType() } override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) @@ -175,7 +231,7 @@ module CryptographyBase Input> { abstract class HashOperation extends Operation, THashOperation { abstract override HashAlgorithm getAlgorithm(); - override string getOperationName() { result = "HashOperation" } + override string getOperationType() { result = "HashOperation" } } newtype THashType = @@ -238,7 +294,7 @@ module CryptographyBase Input> { abstract string getSHA2OrSHA3DigestSize(Location location); bindingset[type] - private string getDigestSize(THashType type, Location location) { + private string type_to_digest_size_fixed(THashType type) { type instanceof MD2 and result = "128" or type instanceof MD4 and result = "128" @@ -247,15 +303,20 @@ module CryptographyBase Input> { or type instanceof SHA1 and result = "160" or - type instanceof SHA2 and result = this.getSHA2OrSHA3DigestSize(location) - or - type instanceof SHA3 and result = this.getSHA2OrSHA3DigestSize(location) - or type instanceof RIPEMD160 and result = "160" or type instanceof WHIRLPOOL and result = "512" } + bindingset[type] + private string getDigestSize(THashType type, Location location) { + result = this.type_to_digest_size_fixed(type) and location = this.getLocation() + or + type instanceof SHA2 and result = this.getSHA2OrSHA3DigestSize(location) + or + type instanceof SHA3 and result = this.getSHA2OrSHA3DigestSize(location) + } + final override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or @@ -277,7 +338,7 @@ module CryptographyBase Input> { exists(LocatableElement le | this = TKeyDerivationOperation(le) and result = le.getLocation()) } - override string getOperationName() { result = "KeyDerivationOperation" } + override string getOperationType() { result = "KeyDerivationOperation" } } /** @@ -560,10 +621,10 @@ module CryptographyBase Input> { * An encryption operation that processes plaintext to generate a ciphertext. * This operation takes an input message (plaintext) of arbitrary content and length and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). */ - abstract class EncryptionOperation extends Operation { + abstract class EncryptionOperation extends Operation, TEncryptionOperation { abstract override Algorithm getAlgorithm(); - override string getOperationName() { result = "ENCRYPTION" } + override string getOperationType() { result = "EncryptionOperation" } } /** @@ -578,15 +639,18 @@ module CryptographyBase Input> { GCM() or CCM() or XTS() or + OAEP() or OtherMode() - abstract class ModeOfOperation extends Algorithm { + abstract class ModeOfOperationAlgorithm extends Algorithm, TModeOfOperationAlgorithm { override string getAlgorithmType() { result = "ModeOfOperation" } /** * Gets the type of this mode of operation, e.g., "ECB" or "CBC". * * When modeling a new mode of operation, use this predicate to specify the type of the mode. + * + * If a type cannot be determined, the result is `OtherMode`. */ abstract TModeOperationType getModeType(); @@ -633,7 +697,7 @@ module CryptographyBase Input> { /** * Symmetric algorithms */ - newtype TSymmetricCipherType = + newtype TCipherType = AES() or Camellia() or DES() or @@ -643,9 +707,12 @@ module CryptographyBase Input> { ChaCha20() or RC4() or RC5() or + RSA() or OtherSymmetricCipherType() - abstract class SymmetricAlgorithm extends Algorithm { + abstract class EncryptionAlgorithm extends Algorithm, TEncryptionAlgorithm { + final LocatableElement getInstance() { this = TEncryptionAlgorithm(result) } + final TCipherStructureType getCipherStructure() { this.cipherFamilyToNameAndStructure(this.getCipherFamily(), _, result) } @@ -654,26 +721,26 @@ module CryptographyBase Input> { this.cipherFamilyToNameAndStructure(this.getCipherFamily(), result, _) } - final override string getAlgorithmType() { result = "SymmetricAlgorithm" } + final override string getAlgorithmType() { result = "EncryptionAlgorithm" } /** - * Gets the key size of this symmetric cipher, e.g., "128" or "256". + * Gets the key size of this cipher, e.g., "128" or "256". */ abstract string getKeySize(Location location); /** - * Gets the type of this symmetric cipher, e.g., "AES" or "ChaCha20". + * Gets the type of this cipher, e.g., "AES" or "ChaCha20". */ - abstract TSymmetricCipherType getCipherFamily(); + abstract TCipherType getCipherFamily(); /** - * Gets the mode of operation of this symmetric cipher, e.g., "GCM" or "CBC". + * Gets the mode of operation of this cipher, e.g., "GCM" or "CBC". */ - abstract ModeOfOperation getModeOfOperation(); + abstract ModeOfOperationAlgorithm getModeOfOperation(); bindingset[type] final private predicate cipherFamilyToNameAndStructure( - TSymmetricCipherType type, string name, TCipherStructureType s + TCipherType type, string name, TCipherStructureType s ) { type instanceof AES and name = "AES" and s = Block() or @@ -693,6 +760,8 @@ module CryptographyBase Input> { or type instanceof RC5 and name = "RC5" and s = Block() or + type instanceof RSA and name = "RSA" and s = Block() + or type instanceof OtherSymmetricCipherType and name = this.getRawAlgorithmName() and s = UnknownCipherStructureType() @@ -733,4 +802,8 @@ module CryptographyBase Input> { ) } } + + abstract class KEMAlgorithm extends TKeyEncapsulationAlgorithm, Algorithm { + final override string getAlgorithmType() { result = "KeyEncapsulationAlgorithm" } + } } From df01fa7a9cd6a3b8c750c47d658ec4f6e37cd3c6 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Mon, 17 Feb 2025 00:16:08 +0100 Subject: [PATCH 020/656] Expand model and JCA modeling --- java/ql/lib/experimental/Quantum/JCA.qll | 151 ++++++++++++++++-- java/ql/src/experimental/Quantum/Test.ql | 6 +- .../codeql/cryptography/Model.qll | 124 +++++++++++--- 3 files changed, 238 insertions(+), 43 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 299d9558ee1..5a30e96b13c 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -54,6 +54,8 @@ module JCAModel { } Expr getAlgorithmArg() { result = this.getArgument(0) } + + Expr getProviderArg() { result = this.getArgument(1) } } /** @@ -75,7 +77,7 @@ module JCAModel { * For example, in `Cipher.getInstance(algorithm)`, this class represents `algorithm`. */ class CipherGetInstanceAlgorithmArg extends Crypto::EncryptionAlgorithmInstance, - Crypto::ModeOfOperationAlgorithmInstance instanceof Expr + Crypto::ModeOfOperationAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof Expr { CipherGetInstanceAlgorithmArg() { exists(CipherGetInstanceCall call | this = call.getArgument(0)) @@ -114,14 +116,62 @@ module JCAModel { override Location getLocation() { result = instance.getLocation() } - override string getRawAlgorithmName() { result = instance.getOrigin().getValue() } + // In this case, the raw name is still only the /MODE/ part. + // TODO: handle defaults + override string getRawAlgorithmName() { result = instance.getOrigin().getMode() } - predicate modeToNameMapping(Crypto::TModeOperationType type, string name) { - super.modeToNameMapping(type, name) + private predicate modeToNameMappingKnown(Crypto::TModeOperationType type, string name) { + type instanceof Crypto::ECB and name = "ECB" + or + type instanceof Crypto::CBC and name = "CBC" + or + type instanceof Crypto::GCM and name = "GCM" + or + type instanceof Crypto::CTR and name = "CTR" + or + type instanceof Crypto::XTS and name = "XTS" + or + type instanceof Crypto::CCM and name = "CCM" + or + type instanceof Crypto::SIV and name = "SIV" + or + type instanceof Crypto::OCB and name = "OCB" } override Crypto::TModeOperationType getModeType() { - this.modeToNameMapping(result, instance.getOrigin().getMode()) + if this.modeToNameMappingKnown(_, instance.getOrigin().getMode()) + then this.modeToNameMappingKnown(result, instance.getOrigin().getMode()) + else result instanceof Crypto::OtherMode + } + + CipherStringLiteral getInstance() { result = instance } + } + + class PaddingAlgorithm extends Crypto::PaddingAlgorithm { + CipherGetInstanceAlgorithmArg instance; + + PaddingAlgorithm() { + this = Crypto::TPaddingAlgorithm(instance) and + exists(instance.getOrigin().getPadding()) + } + + override Location getLocation() { result = instance.getLocation() } + + override string getRawAlgorithmName() { result = instance.getOrigin().getPadding() } + + bindingset[name] + private predicate paddingToNameMappingKnown(Crypto::TPaddingType type, string name) { + type instanceof Crypto::NoPadding and name = "NOPADDING" + or + type instanceof Crypto::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? + or + type instanceof Crypto::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% + } + + override Crypto::TPaddingType getPaddingType() { + if this.paddingToNameMappingKnown(_, instance.getOrigin().getPadding()) + then this.paddingToNameMappingKnown(result, instance.getOrigin().getPadding()) + else result instanceof Crypto::OtherPadding } CipherStringLiteral getInstance() { result = instance } @@ -142,6 +192,10 @@ module JCAModel { result.(ModeOfOperation).getInstance() = origin } + override Crypto::PaddingAlgorithm getPadding() { + result.(PaddingAlgorithm).getInstance() = origin + } + override Crypto::LocatableElement getOrigin(string name) { result = origin and name = origin.toString() } @@ -149,7 +203,9 @@ module JCAModel { override string getRawAlgorithmName() { result = origin.getValue() } override Crypto::TCipherType getCipherFamily() { - this.cipherNameMapping(result, origin.getAlgorithmName()) + if this.cipherNameMappingKnown(_, origin.getAlgorithmName()) + then this.cipherNameMappingKnown(result, origin.getAlgorithmName()) + else result instanceof Crypto::OtherSymmetricCipherType } override string getKeySize(Location location) { none() } @@ -159,18 +215,83 @@ module JCAModel { name = "AES" and type instanceof Crypto::AES or + name = "DES" and + type instanceof Crypto::DES + or + name = "TripleDES" and + type instanceof Crypto::TripleDES + or + name = "IDEA" and + type instanceof Crypto::IDEA + or + name = "CAST5" and + type instanceof Crypto::CAST5 + or + name = "ChaCha20" and + type instanceof Crypto::ChaCha20 + or name = "RC4" and type instanceof Crypto::RC4 - // or - // TODO - } - - bindingset[name] - predicate cipherNameMapping(Crypto::TCipherType type, string name) { - this.cipherNameMappingKnown(type, name) or - not this.cipherNameMappingKnown(_, name) and - type instanceof Crypto::OtherSymmetricCipherType + name = "RC5" and + type instanceof Crypto::RC5 + or + name = "RSA" and + type instanceof Crypto::RSA } } + + /** + * Initialiation vectors + */ + abstract class IVParameterInstantiation extends ClassInstanceExpr { + abstract Expr getIV(); + } + + class IvParameterSpecInstance extends IVParameterInstantiation { + IvParameterSpecInstance() { + this.getConstructedType().hasQualifiedName("javax.crypto.spec", "IvParameterSpec") + } + + override Expr getIV() { result = super.getArgument(0) } + } + + class GCMParameterSpecInstance extends IVParameterInstantiation { + GCMParameterSpecInstance() { + this.getConstructedType().hasQualifiedName("javax.crypto.spec", "GCMParameterSpec") + } + + override Expr getIV() { result = super.getArgument(1) } + } + + class CipherInitCall extends MethodCall { + CipherInitCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "init") } + + Expr getModeArg() { result = this.getArgument(0) } + + Expr getKey() { + result = this.getArgument(1) and this.getMethod().getParameterType(1).hasName("Key") + } + + Expr getIV() { + result = this.getArgument(2) and + this.getMethod().getParameterType(2).hasName("AlgorithmParameterSpec") + } + } + + // TODO: cipher.getParameters().getParameterSpec(GCMParameterSpec.class); + class InitializationVectorExpr extends Crypto::InitializationVectorArtifactInstance instanceof Expr + { + CipherInitCall call; // TODO: add origin to known sources (e.g. RNG, etc.) + + InitializationVectorExpr() { this = call.getIV() } + } + + class InitializationVector extends Crypto::InitializationVector { + InitializationVectorExpr instance; + + InitializationVector() { this = Crypto::TInitializationVector(instance) } + + override Location getLocation() { result = instance.getLocation() } + } } diff --git a/java/ql/src/experimental/Quantum/Test.ql b/java/ql/src/experimental/Quantum/Test.ql index 5496e5a70cf..ba76213132c 100644 --- a/java/ql/src/experimental/Quantum/Test.ql +++ b/java/ql/src/experimental/Quantum/Test.ql @@ -4,6 +4,6 @@ import experimental.Quantum.Language -from Crypto::EncryptionAlgorithm a, Crypto::ModeOfOperationAlgorithm mode -where a.getModeOfOperation() = mode -select a, a.getAlgorithmName(), a.getRawAlgorithmName(), mode, mode.getAlgorithmName() +from Crypto::EncryptionAlgorithm a, Crypto::ModeOfOperationAlgorithm m, Crypto::PaddingAlgorithm p +where m = a.getModeOfOperation() and p = a.getPadding() +select a, a.getRawAlgorithmName(), m, m.getRawAlgorithmName(), p, p.getRawAlgorithmName() diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 38ea6e475c0..9814f151995 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -115,7 +115,7 @@ module CryptographyBase Input> { TPaddingAlgorithm(PaddingAlgorithmInstance e) or // Composite and hybrid cryptosystems (e.g., RSA-OAEP used with AES, post-quantum hybrid cryptosystems) // These nodes are always parent nodes and are not modeled but rather defined via library-agnostic patterns. - TKemDemHybridCryptosystem(EncryptionAlgorithmInstance dem) or + TKemDemHybridCryptosystem(EncryptionAlgorithmInstance dem) or // TODO, change this relation and the below ones TKeyAgreementHybridCryptosystem(EncryptionAlgorithmInstance ka) or TAsymmetricEncryptionMacHybridCryptosystem(EncryptionAlgorithmInstance enc) or TPostQuantumHybridCryptosystem(EncryptionAlgorithmInstance enc) @@ -131,6 +131,11 @@ module CryptographyBase Input> { */ abstract string toString(); + /** + * Returns a string representation of the internal type of this node, usually the name of the class. + */ + abstract string getInternalType(); + /** * Returns the location of this node in the code. */ @@ -169,6 +174,15 @@ module CryptographyBase Input> { class Artifact = NodeBase; + /** + * An initialization vector + */ + abstract class InitializationVector extends Asset, TInitializationVector { + final override string getInternalType() { result = "InitializationVector" } + + final override string toString() { result = this.getInternalType() } + } + /** * A cryptographic operation, such as hashing or encryption. */ @@ -185,6 +199,8 @@ module CryptographyBase Input> { final override string toString() { result = this.getOperationType() } + final override string getInternalType() { result = this.getOperationType() } + override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or @@ -196,6 +212,8 @@ module CryptographyBase Input> { abstract class Algorithm extends Asset { final override string toString() { result = this.getAlgorithmType() } + final override string getInternalType() { result = this.getAlgorithmType() } + /** * Gets the name of this algorithm, e.g., "AES" or "SHA". */ @@ -294,7 +312,7 @@ module CryptographyBase Input> { abstract string getSHA2OrSHA3DigestSize(Location location); bindingset[type] - private string type_to_digest_size_fixed(THashType type) { + private string getTypeDigestSizeFixed(THashType type) { type instanceof MD2 and result = "128" or type instanceof MD4 and result = "128" @@ -309,21 +327,25 @@ module CryptographyBase Input> { } bindingset[type] - private string getDigestSize(THashType type, Location location) { - result = this.type_to_digest_size_fixed(type) and location = this.getLocation() + private string getTypeDigestSize(THashType type, Location location) { + result = this.getTypeDigestSizeFixed(type) and location = this.getLocation() or type instanceof SHA2 and result = this.getSHA2OrSHA3DigestSize(location) or type instanceof SHA3 and result = this.getSHA2OrSHA3DigestSize(location) } + string getDigestSize(Location location) { + result = this.getTypeDigestSize(this.getHashType(), location) + } + final override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or // [KNOWN_OR_UNKNOWN] key = "digest_size" and - if exists(this.getDigestSize(this.getHashType(), location)) - then value = this.getDigestSize(this.getHashType(), location) + if exists(this.getDigestSize(location)) + then value = this.getDigestSize(location) else ( value instanceof UnknownPropertyValue and location instanceof UnknownLocation ) @@ -619,27 +641,33 @@ module CryptographyBase Input> { /** * An encryption operation that processes plaintext to generate a ciphertext. - * This operation takes an input message (plaintext) of arbitrary content and length and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). + * This operation takes an input message (plaintext) of arbitrary content and length + * and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). */ abstract class EncryptionOperation extends Operation, TEncryptionOperation { - abstract override Algorithm getAlgorithm(); - override string getOperationType() { result = "EncryptionOperation" } + + /** + * Gets the initialization vector associated with this encryption operation. + * + * This predicate does not need to hold for all encryption operations, + * as the initialization vector is not always required. + */ + abstract InitializationVector getInitializationVector(); } /** * Block cipher modes of operation algorithms */ newtype TModeOperationType = - ECB() or - CBC() or - CFB() or - OFB() or - CTR() or - GCM() or - CCM() or - XTS() or - OAEP() or + ECB() or // Not secure, widely used + CBC() or // Vulnerable to padding oracle attacks + GCM() or // Widely used AEAD mode (TLS 1.3, SSH, IPsec) + CTR() or // Fast stream-like encryption (SSH, disk encryption) + XTS() or // Standard for full-disk encryption (BitLocker, LUKS, FileVault) + CCM() or // Used in lightweight cryptography (IoT, WPA2) + SIV() or // Misuse-resistant encryption, used in secure storage + OCB() or // Efficient AEAD mode OtherMode() abstract class ModeOfOperationAlgorithm extends Algorithm, TModeOfOperationAlgorithm { @@ -655,22 +683,22 @@ module CryptographyBase Input> { abstract TModeOperationType getModeType(); bindingset[type] - final predicate modeToNameMapping(TModeOperationType type, string name) { + final private predicate modeToNameMapping(TModeOperationType type, string name) { type instanceof ECB and name = "ECB" or type instanceof CBC and name = "CBC" or - type instanceof CFB and name = "CFB" - or - type instanceof OFB and name = "OFB" + type instanceof GCM and name = "GCM" or type instanceof CTR and name = "CTR" or - type instanceof GCM and name = "GCM" + type instanceof XTS and name = "XTS" or type instanceof CCM and name = "CCM" or - type instanceof XTS and name = "XTS" + type instanceof SIV and name = "SIV" + or + type instanceof OCB and name = "OCB" or type instanceof OtherMode and name = this.getRawAlgorithmName() } @@ -678,12 +706,51 @@ module CryptographyBase Input> { override string getAlgorithmName() { this.modeToNameMapping(this.getModeType(), result) } } + newtype TPaddingType = + PKCS1_v1_5() or // RSA encryption/signing padding + PKCS7() or // Standard block cipher padding (PKCS5 for 8-byte blocks) + ANSI_X9_23() or // Zero-padding except last byte = padding length + NoPadding() or // Explicit no-padding + OAEP() or // RSA OAEP padding + OtherPadding() + + abstract class PaddingAlgorithm extends Algorithm, TPaddingAlgorithm { + override string getAlgorithmType() { result = "PaddingAlgorithm" } + + /** + * Gets the type of this padding algorithm, e.g., "PKCS7" or "OAEP". + * + * When modeling a new padding algorithm, use this predicate to specify the type of the padding. + * + * If a type cannot be determined, the result is `OtherPadding`. + */ + abstract TPaddingType getPaddingType(); + + bindingset[type] + final private predicate paddingToNameMapping(TPaddingType type, string name) { + type instanceof PKCS1_v1_5 and name = "PKCS1_v1_5" + or + type instanceof PKCS7 and name = "PKCS7" + or + type instanceof ANSI_X9_23 and name = "ANSI_X9_23" + or + type instanceof NoPadding and name = "NoPadding" + or + type instanceof OAEP and name = "OAEP" + or + type instanceof OtherPadding and name = this.getRawAlgorithmName() + } + + override string getAlgorithmName() { this.paddingToNameMapping(this.getPaddingType(), result) } + } + /** * A helper type for distinguishing between block and stream ciphers. */ newtype TCipherStructureType = Block() or Stream() or + Asymmetric() or UnknownCipherStructureType() private string getCipherStructureTypeString(TCipherStructureType type) { @@ -691,6 +758,8 @@ module CryptographyBase Input> { or type instanceof Stream and result = "Stream" or + type instanceof Asymmetric and result = "Asymmetric" + or type instanceof UnknownCipherStructureType and result instanceof UnknownPropertyValue } @@ -738,6 +807,11 @@ module CryptographyBase Input> { */ abstract ModeOfOperationAlgorithm getModeOfOperation(); + /** + * Gets the padding scheme of this cipher, e.g., "PKCS7" or "NoPadding". + */ + abstract PaddingAlgorithm getPadding(); + bindingset[type] final private predicate cipherFamilyToNameAndStructure( TCipherType type, string name, TCipherStructureType s @@ -760,7 +834,7 @@ module CryptographyBase Input> { or type instanceof RC5 and name = "RC5" and s = Block() or - type instanceof RSA and name = "RSA" and s = Block() + type instanceof RSA and name = "RSA" and s = Asymmetric() or type instanceof OtherSymmetricCipherType and name = this.getRawAlgorithmName() and From 8707e4d9a394aea6081fbcf52dffc0d29e0c6e8b Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Tue, 18 Feb 2025 18:35:49 +0100 Subject: [PATCH 021/656] Continue Artifact data-flow WIP --- java/ql/lib/experimental/Quantum/JCA.qll | 37 ++++++--- java/ql/lib/experimental/Quantum/Language.qll | 80 ++++++++++++++++--- .../codeql/cryptography/Model.qll | 62 +++++++++++--- 3 files changed, 143 insertions(+), 36 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 5a30e96b13c..e961310334f 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -244,24 +244,29 @@ module JCAModel { /** * Initialiation vectors */ - abstract class IVParameterInstantiation extends ClassInstanceExpr { - abstract Expr getIV(); + abstract class IVParameterInstantiation extends Crypto::InitializationVectorArtifactInstance instanceof ClassInstanceExpr + { + abstract Expr getInput(); } class IvParameterSpecInstance extends IVParameterInstantiation { IvParameterSpecInstance() { - this.getConstructedType().hasQualifiedName("javax.crypto.spec", "IvParameterSpec") + this.(ClassInstanceExpr) + .getConstructedType() + .hasQualifiedName("javax.crypto.spec", "IvParameterSpec") } - override Expr getIV() { result = super.getArgument(0) } + override Expr getInput() { result = this.(ClassInstanceExpr).getArgument(0) } } class GCMParameterSpecInstance extends IVParameterInstantiation { GCMParameterSpecInstance() { - this.getConstructedType().hasQualifiedName("javax.crypto.spec", "GCMParameterSpec") + this.(ClassInstanceExpr) + .getConstructedType() + .hasQualifiedName("javax.crypto.spec", "GCMParameterSpec") } - override Expr getIV() { result = super.getArgument(1) } + override Expr getInput() { result = this.(ClassInstanceExpr).getArgument(1) } } class CipherInitCall extends MethodCall { @@ -280,18 +285,24 @@ module JCAModel { } // TODO: cipher.getParameters().getParameterSpec(GCMParameterSpec.class); - class InitializationVectorExpr extends Crypto::InitializationVectorArtifactInstance instanceof Expr - { - CipherInitCall call; // TODO: add origin to known sources (e.g. RNG, etc.) - - InitializationVectorExpr() { this = call.getIV() } - } + /* + * class InitializationVectorArg extends Crypto::InitializationVectorArtifactInstance instanceof Expr + * { + * IVParameterInstantiation creation; + * + * InitializationVectorArg() { this = creation.getInput() } + * } + */ class InitializationVector extends Crypto::InitializationVector { - InitializationVectorExpr instance; + IVParameterInstantiation instance; InitializationVector() { this = Crypto::TInitializationVector(instance) } override Location getLocation() { result = instance.getLocation() } + + override Crypto::DataFlowNode asOutputData() { result.asExpr() = instance } + + override Crypto::DataFlowNode getInputData() { result.asExpr() = instance.getInput() } } } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 485b3e716e6..5801815109b 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -1,5 +1,11 @@ private import codeql.cryptography.Model -private import java as Lang +private import java as Language +private import semmle.code.java.security.InsecureRandomnessQuery +private import semmle.code.java.security.RandomQuery + +private class UnknownLocation extends Language::Location { + UnknownLocation() { this.getFile().getAbsolutePath() = "" } +} /** * A dummy location which is used when something doesn't have a location in @@ -7,24 +13,72 @@ private import java as Lang * may be several distinct kinds of unknown locations. For example: one for * expressions, one for statements and one for other program elements. */ -class UnknownLocation extends Location { - UnknownLocation() { this.getFile().getAbsolutePath() = "" } -} - -/** - * A dummy location which is used when something doesn't have a location in - * the source code but needs to have a `Location` associated with it. - */ -class UnknownDefaultLocation extends UnknownLocation { +private class UnknownDefaultLocation extends UnknownLocation { UnknownDefaultLocation() { locations_default(this, _, 0, 0, 0, 0) } } -module CryptoInput implements InputSig { - class LocatableElement = Lang::Element; +module CryptoInput implements InputSig { + class DataFlowNode = DataFlow::Node; + + class LocatableElement = Language::Element; class UnknownLocation = UnknownDefaultLocation; + + predicate rngToIvFlow(DataFlowNode rng, DataFlowNode iv) { none() } } -module Crypto = CryptographyBase; +/** + * Instantiate the model + */ +module Crypto = CryptographyBase; +/** + * Random number generation, where each instance is modelled as the expression + * tied to an output node (i.e., the result of the source of randomness) + */ +abstract class RandomnessInstance extends Crypto::RandomNumberGenerationInstance { + abstract Crypto::RNGSourceSecurity getSourceSecurity(); + + Crypto::TRNGSeedSecurity getSeedSecurity(Location location) { none() } +} + +class SecureRandomnessInstance extends RandomnessInstance { + SecureRandomnessInstance() { + exists(RandomDataSource s | this = s.getOutput() | + s.getSourceOfRandomness() instanceof SecureRandomNumberGenerator + ) + } + + override Crypto::RNGSourceSecurity getSourceSecurity() { + result instanceof Crypto::RNGSourceSecure + } +} + +class InsecureRandomnessInstance extends RandomnessInstance { + InsecureRandomnessInstance() { exists(InsecureRandomnessSource node | this = node.asExpr()) } + + override Crypto::RNGSourceSecurity getSourceSecurity() { + result instanceof Crypto::RNGSourceInsecure + } +} + +class RandomnessArtifact extends Crypto::RandomNumberGeneration { + RandomnessInstance instance; + + RandomnessArtifact() { this = Crypto::TRandomNumberGeneration(instance) } + + override Location getLocation() { result = instance.getLocation() } + + override Crypto::RNGSourceSecurity getSourceSecurity() { result = instance.getSourceSecurity() } + + override Crypto::TRNGSeedSecurity getSeedSecurity(Location location) { + result = instance.getSeedSecurity(location) + } + + override Crypto::DataFlowNode asOutputData() { result.asExpr() = instance } + + override Crypto::DataFlowNode getInputData() { none() } +} + +// Import library-specific modeling import JCA diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 9814f151995..205400e8a3c 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -12,7 +12,15 @@ signature module InputSig { string toString(); } + class DataFlowNode { + Location getLocation(); + + string toString(); + } + class UnknownLocation instanceof Location; + + predicate rngToIvFlow(DataFlowNode rng, DataFlowNode iv); } module CryptographyBase Input> { @@ -20,6 +28,8 @@ module CryptographyBase Input> { final class UnknownLocation = Input::UnknownLocation; + final class DataFlowNode = Input::DataFlowNode; + final class UnknownPropertyValue extends string { UnknownPropertyValue() { this = "" } } @@ -93,12 +103,15 @@ module CryptographyBase Input> { abstract class NonceArtifactInstance extends LocatableElement { } + abstract class RandomNumberGenerationInstance extends LocatableElement { } + newtype TNode = // Artifacts (data that is not an operation or algorithm, e.g., a key) TDigest(DigestArtifactInstance e) or TKey(KeyArtifactInstance e) or TInitializationVector(InitializationVectorArtifactInstance e) or TNonce(NonceArtifactInstance e) or + TRandomNumberGeneration(RandomNumberGenerationInstance e) or // Operations (e.g., hashing, encryption) THashOperation(HashOperationInstance e) or TKeyDerivationOperation(KeyDerivationOperationInstance e) or @@ -115,7 +128,7 @@ module CryptographyBase Input> { TPaddingAlgorithm(PaddingAlgorithmInstance e) or // Composite and hybrid cryptosystems (e.g., RSA-OAEP used with AES, post-quantum hybrid cryptosystems) // These nodes are always parent nodes and are not modeled but rather defined via library-agnostic patterns. - TKemDemHybridCryptosystem(EncryptionAlgorithmInstance dem) or // TODO, change this relation and the below ones + TKemDemHybridCryptosystem(EncryptionAlgorithm dem) or // TODO, change this relation and the below ones TKeyAgreementHybridCryptosystem(EncryptionAlgorithmInstance ka) or TAsymmetricEncryptionMacHybridCryptosystem(EncryptionAlgorithmInstance enc) or TPostQuantumHybridCryptosystem(EncryptionAlgorithmInstance enc) @@ -127,9 +140,9 @@ module CryptographyBase Input> { */ abstract class NodeBase extends TNode { /** - * Returns a string representation of this node, usually the name of the operation/algorithm/property. + * Returns a string representation of this node. */ - abstract string toString(); + string toString() { result = this.getInternalType() } /** * Returns a string representation of the internal type of this node, usually the name of the class. @@ -172,15 +185,48 @@ module CryptographyBase Input> { class Asset = NodeBase; - class Artifact = NodeBase; + abstract class Artifact extends NodeBase { + abstract DataFlowNode asOutputData(); + + abstract DataFlowNode getInputData(); + } /** * An initialization vector */ - abstract class InitializationVector extends Asset, TInitializationVector { + abstract class InitializationVector extends Artifact, TInitializationVector { final override string getInternalType() { result = "InitializationVector" } - final override string toString() { result = this.getInternalType() } + RandomNumberGeneration getRNGSource() { + Input::rngToIvFlow(result.asOutputData(), this.getInputData()) + } + } + + newtype TRNGSourceSecurity = + RNGSourceSecure() or // Secure RNG source (unrelated to seed) + RNGSourceInsecure() // Insecure RNG source (unrelated to seed) + + class RNGSourceSecurity extends TRNGSourceSecurity { + string toString() { + this instanceof RNGSourceSecure and result = "Secure RNG Source" + or + this instanceof RNGSourceInsecure and result = "Insecure RNG Source" + } + } + + newtype TRNGSeedSecurity = + RNGSeedSecure() or + RNGSeedInsecure() + + /** + * A source of random number generation + */ + abstract class RandomNumberGeneration extends Artifact, TRandomNumberGeneration { + final override string getInternalType() { result = "RandomNumberGeneration" } + + abstract RNGSourceSecurity getSourceSecurity(); + + abstract TRNGSeedSecurity getSeedSecurity(Location location); } /** @@ -197,8 +243,6 @@ module CryptographyBase Input> { */ abstract string getOperationType(); - final override string toString() { result = this.getOperationType() } - final override string getInternalType() { result = this.getOperationType() } override NodeBase getChild(string edgeName) { @@ -210,8 +254,6 @@ module CryptographyBase Input> { } abstract class Algorithm extends Asset { - final override string toString() { result = this.getAlgorithmType() } - final override string getInternalType() { result = this.getAlgorithmType() } /** From 3871c6a33ed3e3c0399de39b389e6cb7712eea64 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 18 Feb 2025 16:09:00 -0500 Subject: [PATCH 022/656] Adding support for encryption operation detection. --- java/ql/lib/experimental/Quantum/JCA.qll | 57 +++++++++++++++++++ .../codeql/cryptography/Model.qll | 15 ++--- 2 files changed, 65 insertions(+), 7 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index e961310334f..5b55090bd9e 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -58,6 +58,10 @@ module JCAModel { Expr getProviderArg() { result = this.getArgument(1) } } + class CipherDoFinalCall extends Call { + CipherDoFinalCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "doFinal") } + } + /** * Data-flow configuration modelling flow from a cipher string literal to a `CipherGetInstanceCall` argument. */ @@ -92,6 +96,57 @@ module JCAModel { } } + // TODO: what if encrypt/decrypt mode isn't known + private module CipherGetInstanceToFinalizeConfig implements DataFlow::StateConfigSig { + class FlowState = string; + + predicate isSource(DataFlow::Node src, FlowState state) { + state = "UNKNOWN" and + src.asExpr() instanceof CipherGetInstanceCall + } + + predicate isSink(DataFlow::Node sink, FlowState state) { + state in ["ENCRYPT", "DECRYPT", "UNKNOWN"] and + exists(CipherDoFinalCall c | c.getQualifier() = sink.asExpr()) + } + + predicate isAdditionalFlowStep( + DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 + ) { + state1 in ["UNKNOWN", "ENCRYPT", "DECRYPT"] and + exists(CipherInitCall c | + c.getQualifier() = node1.asExpr() and + // TODO: not taking into consideration if the mode traces to this arg + exists(FieldAccess fa | + c.getModeArg() = fa and + ( + fa.getField().getName() = "ENCRYPT_MODE" and + state2 = "ENCRYPT" + or + fa.getField().getName() = "DECRYPT_MODE" and + state2 = "DECRYPT" + ) + ) + ) and + node2 = node1 + } + } + + module CipherGetInstanceToFinalizeFlow = + DataFlow::GlobalWithState; + + // TODO: what if the mode is UNKNOWN? + class CipherEncryptionOperation extends Crypto::EncryptionOperationInstance instanceof Call { + CipherEncryptionOperation() { + exists(CipherGetInstanceToFinalizeFlow::PathNode sink, CipherDoFinalCall c | + CipherGetInstanceToFinalizeFlow::flowPath(_, sink) and + sink.getNode().asExpr() = c.getQualifier() and + sink.getState() = "ENCRYPT" and + this = c + ) + } + } + /** * A block cipher mode of operation, where the mode is specified in the ALG or ALG/MODE/PADDING format. * @@ -272,6 +327,8 @@ module JCAModel { class CipherInitCall extends MethodCall { CipherInitCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "init") } + // TODO: this doesn't account for tracing the mode to this arg if expending this arg to have + // the actual mode directly Expr getModeArg() { result = this.getArgument(0) } Expr getKey() { diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 205400e8a3c..8a5011489a6 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -689,13 +689,14 @@ module CryptographyBase Input> { abstract class EncryptionOperation extends Operation, TEncryptionOperation { override string getOperationType() { result = "EncryptionOperation" } - /** - * Gets the initialization vector associated with this encryption operation. - * - * This predicate does not need to hold for all encryption operations, - * as the initialization vector is not always required. - */ - abstract InitializationVector getInitializationVector(); + abstract override EncryptionAlgorithm getAlgorithm(); + // /** + // * Gets the initialization vector associated with this encryption operation. + // * + // * This predicate does not need to hold for all encryption operations, + // * as the initialization vector is not always required. + // */ + // abstract InitializationVector getInitializationVector(); } /** From 9ee4a7a7b8798efb33b18271527e5dd167d9bc94 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 20 Feb 2025 10:37:40 -0500 Subject: [PATCH 023/656] Adding a sketch for a CipherOperation concept to model encryption/decryption operations. --- java/ql/lib/experimental/Quantum/JCA.qll | 51 +++++++++++++------ .../codeql/cryptography/Model.qll | 51 +++++++++++++------ 2 files changed, 70 insertions(+), 32 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 5b55090bd9e..0f505e400a0 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -83,9 +83,9 @@ module JCAModel { class CipherGetInstanceAlgorithmArg extends Crypto::EncryptionAlgorithmInstance, Crypto::ModeOfOperationAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof Expr { - CipherGetInstanceAlgorithmArg() { - exists(CipherGetInstanceCall call | this = call.getArgument(0)) - } + CipherGetInstanceCall call; + + CipherGetInstanceAlgorithmArg() { this = call.getAlgorithmArg() } /** * Returns the `StringLiteral` from which this argument is derived, if known. @@ -94,26 +94,26 @@ module JCAModel { AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), DataFlow::exprNode(this.(Expr).getAChildExpr*())) } + + CipherGetInstanceCall getCall() { result = call } } // TODO: what if encrypt/decrypt mode isn't known private module CipherGetInstanceToFinalizeConfig implements DataFlow::StateConfigSig { - class FlowState = string; + class FlowState = Crypto::TCipherOperationMode; predicate isSource(DataFlow::Node src, FlowState state) { - state = "UNKNOWN" and + state = Crypto::UnknownCipherOperationMode() and src.asExpr() instanceof CipherGetInstanceCall } predicate isSink(DataFlow::Node sink, FlowState state) { - state in ["ENCRYPT", "DECRYPT", "UNKNOWN"] and exists(CipherDoFinalCall c | c.getQualifier() = sink.asExpr()) } predicate isAdditionalFlowStep( DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 ) { - state1 in ["UNKNOWN", "ENCRYPT", "DECRYPT"] and exists(CipherInitCall c | c.getQualifier() = node1.asExpr() and // TODO: not taking into consideration if the mode traces to this arg @@ -121,10 +121,16 @@ module JCAModel { c.getModeArg() = fa and ( fa.getField().getName() = "ENCRYPT_MODE" and - state2 = "ENCRYPT" + state2 = Crypto::EncryptionMode() or fa.getField().getName() = "DECRYPT_MODE" and - state2 = "DECRYPT" + state2 = Crypto::DecryptionMode() + or + fa.getField().getName() = "WRAP_MODE" and + state2 = Crypto::EncryptionMode() + or + fa.getField().getName() = "UNWRAP_MODE" and + state2 = Crypto::DecryptionMode() ) ) ) and @@ -135,16 +141,29 @@ module JCAModel { module CipherGetInstanceToFinalizeFlow = DataFlow::GlobalWithState; - // TODO: what if the mode is UNKNOWN? - class CipherEncryptionOperation extends Crypto::EncryptionOperationInstance instanceof Call { + class CipherEncryptionOperation extends Crypto::CipherOperationInstance instanceof Call { + Crypto::TCipherOperationMode mode; + Crypto::EncryptionAlgorithmInstance algorithm; + CipherEncryptionOperation() { - exists(CipherGetInstanceToFinalizeFlow::PathNode sink, CipherDoFinalCall c | - CipherGetInstanceToFinalizeFlow::flowPath(_, sink) and - sink.getNode().asExpr() = c.getQualifier() and - sink.getState() = "ENCRYPT" and - this = c + exists( + CipherGetInstanceToFinalizeFlow::PathNode sink, + CipherGetInstanceToFinalizeFlow::PathNode src, CipherGetInstanceCall getCipher, + CipherDoFinalCall doFinalize, CipherGetInstanceAlgorithmArg arg + | + CipherGetInstanceToFinalizeFlow::flowPath(src, sink) and + src.getNode().asExpr() = getCipher and + sink.getNode().asExpr() = doFinalize.getQualifier() and + sink.getState() = mode and + this = doFinalize and + arg.getCall() = getCipher and + algorithm = arg ) } + + override Crypto::EncryptionAlgorithmInstance getAlgorithm() { result = algorithm } + + override Crypto::TCipherOperationMode getCipherOperationMode() { result = mode } } /** diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 8a5011489a6..24e3d4f48eb 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -79,7 +79,11 @@ module CryptographyBase Input> { abstract class KeyDerivationAlgorithmInstance extends LocatableElement { } - abstract class EncryptionOperationInstance extends LocatableElement { } + abstract class CipherOperationInstance extends LocatableElement { + abstract EncryptionAlgorithmInstance getAlgorithm(); + + abstract TCipherOperationMode getCipherOperationMode(); + } abstract class EncryptionAlgorithmInstance extends LocatableElement { } @@ -115,7 +119,7 @@ module CryptographyBase Input> { // Operations (e.g., hashing, encryption) THashOperation(HashOperationInstance e) or TKeyDerivationOperation(KeyDerivationOperationInstance e) or - TEncryptionOperation(EncryptionOperationInstance e) or + TCipherOperation(CipherOperationInstance e) or TKeyEncapsulationOperation(KeyEncapsulationOperationInstance e) or // Algorithms (e.g., SHA-256, AES) TEncryptionAlgorithm(EncryptionAlgorithmInstance e) or @@ -238,13 +242,14 @@ module CryptographyBase Input> { */ abstract Algorithm getAlgorithm(); - /** - * Gets the name of this operation, e.g., "hash" or "encrypt". - */ - abstract string getOperationType(); - - final override string getInternalType() { result = this.getOperationType() } - + // TODO: I only removed this because I want the operation type to be non-string + // since for CipherOperations the user will have to pick the right type, + // and I want to force them to use a type that is restricted. In this case to a TCipherOperationType + // /** + // * Gets the name of this operation, e.g., "hash" or "encrypt". + // */ + // abstract string getOperationType(); + // final override string getInternalType() { result = this.getOperationType() } override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or @@ -290,8 +295,7 @@ module CryptographyBase Input> { */ abstract class HashOperation extends Operation, THashOperation { abstract override HashAlgorithm getAlgorithm(); - - override string getOperationType() { result = "HashOperation" } + //override string getOperationType() { result = "HashOperation" } } newtype THashType = @@ -401,8 +405,7 @@ module CryptographyBase Input> { final override Location getLocation() { exists(LocatableElement le | this = TKeyDerivationOperation(le) and result = le.getLocation()) } - - override string getOperationType() { result = "KeyDerivationOperation" } + //override string getOperationType() { result = "KeyDerivationOperation" } } /** @@ -681,15 +684,31 @@ module CryptographyBase Input> { abstract override string getRawAlgorithmName(); } + newtype TCipherOperationMode = + EncryptionMode() or + DecryptionMode() or + UnknownCipherOperationMode() + /** * An encryption operation that processes plaintext to generate a ciphertext. * This operation takes an input message (plaintext) of arbitrary content and length * and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). */ - abstract class EncryptionOperation extends Operation, TEncryptionOperation { - override string getOperationType() { result = "EncryptionOperation" } + // NOTE FOR NICK: making this concrete here as I don't think users need to worry about making/extending these operations, just instances + class CipherOperation extends Operation, TCipherOperation { + CipherOperationInstance instance; - abstract override EncryptionAlgorithm getAlgorithm(); + CipherOperation() { this = TCipherOperation(instance) } + + override Location getLocation() { result = instance.getLocation() } + + final TCipherOperationMode getCipherOperationMode() { + result = instance.getCipherOperationMode() + } + + final override EncryptionAlgorithm getAlgorithm() { result = instance.getAlgorithm() } + + override string getInternalType() { result = "CipherOperation" } // /** // * Gets the initialization vector associated with this encryption operation. // * From 83dc5b99065f8d4482899bb05d8736e8d6e0d13d Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 20 Feb 2025 10:45:33 -0500 Subject: [PATCH 024/656] Fixing type bug --- shared/cryptography/codeql/cryptography/Model.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 24e3d4f48eb..17834343e6d 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -706,7 +706,7 @@ module CryptographyBase Input> { result = instance.getCipherOperationMode() } - final override EncryptionAlgorithm getAlgorithm() { result = instance.getAlgorithm() } + final override EncryptionAlgorithm getAlgorithm() { result.getInstance() = instance.getAlgorithm() } override string getInternalType() { result = "CipherOperation" } // /** From 011ed3fbfd11a6cd7ab5b8aa13c3945881a37faf Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 20 Feb 2025 11:10:24 -0500 Subject: [PATCH 025/656] Simplifying additional flow step logic. --- java/ql/lib/experimental/Quantum/JCA.qll | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 0f505e400a0..0a7903aa272 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -120,17 +120,13 @@ module JCAModel { exists(FieldAccess fa | c.getModeArg() = fa and ( - fa.getField().getName() = "ENCRYPT_MODE" and - state2 = Crypto::EncryptionMode() - or - fa.getField().getName() = "DECRYPT_MODE" and - state2 = Crypto::DecryptionMode() - or - fa.getField().getName() = "WRAP_MODE" and - state2 = Crypto::EncryptionMode() - or - fa.getField().getName() = "UNWRAP_MODE" and - state2 = Crypto::DecryptionMode() + if fa.getField().getName() in ["ENCRYPT_MODE", "WRAP_MODE"] + then state2 = Crypto::EncryptionMode() + else ( + if fa.getField().getName() in ["DECRYPT_MODE", "UNWRAP_MODE"] + then state2 = Crypto::DecryptionMode() + else state2 = Crypto::UnknownCipherOperationMode() + ) ) ) ) and From 9ac9252f7548d1c6f59cd2b4f159ebe57db60aa8 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 20 Feb 2025 11:11:41 -0500 Subject: [PATCH 026/656] Adding a todo --- java/ql/lib/experimental/Quantum/JCA.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 0a7903aa272..3c37d1d717e 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -346,6 +346,8 @@ module JCAModel { // the actual mode directly Expr getModeArg() { result = this.getArgument(0) } + // TODO: need a getModeOrigin + Expr getKey() { result = this.getArgument(1) and this.getMethod().getParameterType(1).hasName("Key") } From 86cab46b8d7bd15213ce40d57cc1fa86b01d0e43 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 21 Feb 2025 12:53:35 -0500 Subject: [PATCH 027/656] Misc. updates to support all JCA cipher operations, including wrap, unwrap and doFinal calls. Corrected pathing for init tracing to detect what mode is being set along a path. Added support for tracing the init operation mode argument to source. Since this involved creating an Operation Mode, changes were also made to make cipher block modes (CBC) more explicit (previously just called mode, but now that term is used for various purposes). --- java/ql/lib/experimental/Quantum/JCA.qll | 193 ++++++++++++++---- .../codeql/cryptography/Model.qll | 41 +++- 2 files changed, 181 insertions(+), 53 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 3c37d1d717e..acbe6c67888 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -58,8 +58,12 @@ module JCAModel { Expr getProviderArg() { result = this.getArgument(1) } } - class CipherDoFinalCall extends Call { - CipherDoFinalCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "doFinal") } + private class JCACipherOperationCall extends Call { + JCACipherOperationCall() { + exists(string s | s in ["doFinal", "wrap", "unwrap"] | + this.getCallee().hasQualifiedName("javax.crypto", "Cipher", s) + ) + } } /** @@ -81,7 +85,7 @@ module JCAModel { * For example, in `Cipher.getInstance(algorithm)`, this class represents `algorithm`. */ class CipherGetInstanceAlgorithmArg extends Crypto::EncryptionAlgorithmInstance, - Crypto::ModeOfOperationAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof Expr + Crypto::BlockCipherModeOfOperationAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof Expr { CipherGetInstanceCall call; @@ -98,68 +102,136 @@ module JCAModel { CipherGetInstanceCall getCall() { result = call } } - // TODO: what if encrypt/decrypt mode isn't known - private module CipherGetInstanceToFinalizeConfig implements DataFlow::StateConfigSig { - class FlowState = Crypto::TCipherOperationMode; + /** + * An access to the `javax.crypto.Cipher` class. + */ + private class CipherAccess extends TypeAccess { + CipherAccess() { this.getType().(Class).hasQualifiedName("javax.crypto", "Cipher") } + } + + /** + * An access to a cipher mode field of the `javax.crypto.Cipher` class, + * specifically `ENCRYPT_MODE`, `DECRYPT_MODE`, `WRAP_MODE`, or `UNWRAP_MODE`. + */ + private class JavaxCryptoCipherOperationModeAccess extends FieldAccess { + JavaxCryptoCipherOperationModeAccess() { + this.getQualifier() instanceof CipherAccess and + this.getField().getName() in ["ENCRYPT_MODE", "DECRYPT_MODE", "WRAP_MODE", "UNWRAP_MODE"] + } + } + + private newtype TCipherModeFlowState = + TUninitializedCipherModeFlowState() or + TInitializedCipherModeFlowState(CipherInitCall call) + + abstract private class CipherModeFlowState extends TCipherModeFlowState { + string toString() { + this = TUninitializedCipherModeFlowState() and result = "uninitialized" + or + this = TInitializedCipherModeFlowState(_) and result = "initialized" + } + + abstract Crypto::CipherOperationMode getCipherOperationMode(); + } + + private class UninitializedCipherModeFlowState extends CipherModeFlowState, + TUninitializedCipherModeFlowState + { + override Crypto::CipherOperationMode getCipherOperationMode() { + result instanceof Crypto::UnknownCipherOperationMode + } + } + + private class InitializedCipherModeFlowState extends CipherModeFlowState, + TInitializedCipherModeFlowState + { + CipherInitCall call; + DataFlow::Node node1; + DataFlow::Node node2; + Crypto::CipherOperationMode mode; + + InitializedCipherModeFlowState() { + this = TInitializedCipherModeFlowState(call) and + DataFlow::localFlowStep(node1, node2) and + node2.asExpr() = call.getQualifier() and + // I would imagine this would make this predicate horribly horribly inefficient + // it now binds with anything + not node1.asExpr() = call.getQualifier() and + mode = call.getCipherOperationModeType() + } + + CipherInitCall getCall() { result = call } + + DataFlow::Node getFstNode() { result = node1 } + + /** + * Returns the node *to* which the state-changing step occurs + */ + DataFlow::Node getSndNode() { result = node2 } + + override Crypto::CipherOperationMode getCipherOperationMode() { result = mode } + } + + /** + * Trace to a cryptographic operation, + * specifically `Cipher.doFinal()`, `Cipher.wrap()`, or `Cipher.unwrap()`. + */ + private module CipherGetInstanceToCipherOperationConfig implements DataFlow::StateConfigSig { + class FlowState = TCipherModeFlowState; predicate isSource(DataFlow::Node src, FlowState state) { - state = Crypto::UnknownCipherOperationMode() and + state instanceof UninitializedCipherModeFlowState and src.asExpr() instanceof CipherGetInstanceCall } - predicate isSink(DataFlow::Node sink, FlowState state) { - exists(CipherDoFinalCall c | c.getQualifier() = sink.asExpr()) + predicate isSink(DataFlow::Node sink, FlowState state) { none() } + + predicate isSink(DataFlow::Node sink) { + exists(JCACipherOperationCall c | c.getQualifier() = sink.asExpr()) } predicate isAdditionalFlowStep( DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 ) { - exists(CipherInitCall c | - c.getQualifier() = node1.asExpr() and - // TODO: not taking into consideration if the mode traces to this arg - exists(FieldAccess fa | - c.getModeArg() = fa and - ( - if fa.getField().getName() in ["ENCRYPT_MODE", "WRAP_MODE"] - then state2 = Crypto::EncryptionMode() - else ( - if fa.getField().getName() in ["DECRYPT_MODE", "UNWRAP_MODE"] - then state2 = Crypto::DecryptionMode() - else state2 = Crypto::UnknownCipherOperationMode() - ) - ) - ) - ) and - node2 = node1 + node1 = state2.(InitializedCipherModeFlowState).getFstNode() and + node2 = state2.(InitializedCipherModeFlowState).getSndNode() + } + + predicate isBarrier(DataFlow::Node node, FlowState state) { + exists(CipherInitCall call | node.asExpr() = call.getQualifier() | + state instanceof UninitializedCipherModeFlowState + or + state.(InitializedCipherModeFlowState).getCall() != call + ) } } - module CipherGetInstanceToFinalizeFlow = - DataFlow::GlobalWithState; + module CipherGetInstanceToCipherOperationFlow = + DataFlow::GlobalWithState; class CipherEncryptionOperation extends Crypto::CipherOperationInstance instanceof Call { - Crypto::TCipherOperationMode mode; + Crypto::CipherOperationMode mode; Crypto::EncryptionAlgorithmInstance algorithm; CipherEncryptionOperation() { exists( - CipherGetInstanceToFinalizeFlow::PathNode sink, - CipherGetInstanceToFinalizeFlow::PathNode src, CipherGetInstanceCall getCipher, - CipherDoFinalCall doFinalize, CipherGetInstanceAlgorithmArg arg + CipherGetInstanceToCipherOperationFlow::PathNode sink, + CipherGetInstanceToCipherOperationFlow::PathNode src, CipherGetInstanceCall getCipher, + JCACipherOperationCall doFinalize, CipherGetInstanceAlgorithmArg arg | - CipherGetInstanceToFinalizeFlow::flowPath(src, sink) and + CipherGetInstanceToCipherOperationFlow::flowPath(src, sink) and src.getNode().asExpr() = getCipher and sink.getNode().asExpr() = doFinalize.getQualifier() and - sink.getState() = mode and + sink.getState().(CipherModeFlowState).getCipherOperationMode() = mode and this = doFinalize and - arg.getCall() = getCipher and + arg.getCall() = getCipher and algorithm = arg ) } override Crypto::EncryptionAlgorithmInstance getAlgorithm() { result = algorithm } - override Crypto::TCipherOperationMode getCipherOperationMode() { result = mode } + override Crypto::CipherOperationMode getCipherOperationMode() { result = mode } } /** @@ -177,7 +249,7 @@ module JCAModel { CipherGetInstanceAlgorithmArg instance; ModeOfOperation() { - this = Crypto::TModeOfOperationAlgorithm(instance) and + this = Crypto::TBlockCipherModeOfOperationAlgorithm(instance) and // TODO: this currently only holds for explicitly defined modes in a string literal. // Cases with defaults, e.g., "AES", are not yet modelled. // For these cases, in a CBOM, the AES node would have an unknown edge to its mode child. @@ -190,7 +262,7 @@ module JCAModel { // TODO: handle defaults override string getRawAlgorithmName() { result = instance.getOrigin().getMode() } - private predicate modeToNameMappingKnown(Crypto::TModeOperationType type, string name) { + private predicate modeToNameMappingKnown(Crypto::TBlockCipherModeOperationType type, string name) { type instanceof Crypto::ECB and name = "ECB" or type instanceof Crypto::CBC and name = "CBC" @@ -208,7 +280,7 @@ module JCAModel { type instanceof Crypto::OCB and name = "OCB" } - override Crypto::TModeOperationType getModeType() { + override Crypto::TBlockCipherModeOperationType getModeType() { if this.modeToNameMappingKnown(_, instance.getOrigin().getMode()) then this.modeToNameMappingKnown(result, instance.getOrigin().getMode()) else result instanceof Crypto::OtherMode @@ -339,14 +411,51 @@ module JCAModel { override Expr getInput() { result = this.(ClassInstanceExpr).getArgument(1) } } + private module JavaxCipherModeAccessToInitConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + src.asExpr() instanceof JavaxCryptoCipherOperationModeAccess + } + + predicate isSink(DataFlow::Node sink) { + exists(CipherInitCall c | c.getModeArg() = sink.asExpr()) + } + } + + module JavaxCipherModeAccessToInitFlow = DataFlow::Global; + class CipherInitCall extends MethodCall { CipherInitCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "init") } - // TODO: this doesn't account for tracing the mode to this arg if expending this arg to have - // the actual mode directly + /** + * Returns the mode argument to the `init` method + * that is used to determine the cipher operation mode. + * Note this is the raw expr and not necessarily a direct access + * of a mode. Use `getModeOrigin()` to get the field access origin + * flowing to this argument, if one exists (is known). + */ Expr getModeArg() { result = this.getArgument(0) } - // TODO: need a getModeOrigin + JavaxCryptoCipherOperationModeAccess getModeOrigin() { + exists(DataFlow::Node src, DataFlow::Node sink | + JavaxCipherModeAccessToInitFlow::flow(src, sink) and + src.asExpr() = result and + this.getModeArg() = sink.asExpr() + ) + } + + Crypto::CipherOperationMode getCipherOperationModeType() { + if not exists(this.getModeOrigin()) + then result instanceof Crypto::UnknownCipherOperationMode + else + if this.getModeOrigin().getField().getName() in ["ENCRYPT_MODE", "WRAP_MODE"] + then result instanceof Crypto::EncryptionMode + else + if this.getModeOrigin().getField().getName() in ["DECRYPT_MODE", "UNWRAP_MODE"] + then result instanceof Crypto::DecryptionMode + else + // TODO/Question: distinguish between unknown vs unspecified? (the field access is not recognized, vs no field access is found) + result instanceof Crypto::UnknownCipherOperationMode + } Expr getKey() { result = this.getArgument(1) and this.getMethod().getParameterType(1).hasName("Key") diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 17834343e6d..a0f22d0229b 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -82,7 +82,7 @@ module CryptographyBase Input> { abstract class CipherOperationInstance extends LocatableElement { abstract EncryptionAlgorithmInstance getAlgorithm(); - abstract TCipherOperationMode getCipherOperationMode(); + abstract CipherOperationMode getCipherOperationMode(); } abstract class EncryptionAlgorithmInstance extends LocatableElement { } @@ -94,7 +94,7 @@ module CryptographyBase Input> { abstract class EllipticCurveAlgorithmInstance extends LocatableElement { } // Non-standalone algorithms - abstract class ModeOfOperationAlgorithmInstance extends LocatableElement { } + abstract class BlockCipherModeOfOperationAlgorithmInstance extends LocatableElement { } abstract class PaddingAlgorithmInstance extends LocatableElement { } @@ -128,7 +128,8 @@ module CryptographyBase Input> { TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstance e) or TKeyEncapsulationAlgorithm(KeyEncapsulationAlgorithmInstance e) or // Non-standalone Algorithms (e.g., Mode, Padding) - TModeOfOperationAlgorithm(ModeOfOperationAlgorithmInstance e) or + // TODO: need to rename this, as "mode" is getting reused in different contexts, be precise + TBlockCipherModeOfOperationAlgorithm(BlockCipherModeOfOperationAlgorithmInstance e) or TPaddingAlgorithm(PaddingAlgorithmInstance e) or // Composite and hybrid cryptosystems (e.g., RSA-OAEP used with AES, post-quantum hybrid cryptosystems) // These nodes are always parent nodes and are not modeled but rather defined via library-agnostic patterns. @@ -685,9 +686,25 @@ module CryptographyBase Input> { } newtype TCipherOperationMode = - EncryptionMode() or - DecryptionMode() or - UnknownCipherOperationMode() + TEncryptionMode() or + TDecryptionMode() or + TUnknownCipherOperationMode() + + abstract class CipherOperationMode extends TCipherOperationMode { + abstract string toString(); + } + + class EncryptionMode extends CipherOperationMode, TEncryptionMode { + override string toString() { result = "Encryption" } + } + + class DecryptionMode extends CipherOperationMode, TDecryptionMode { + override string toString() { result = "Decryption" } + } + + class UnknownCipherOperationMode extends CipherOperationMode, TUnknownCipherOperationMode { + override string toString() { result = "Unknown" } + } /** * An encryption operation that processes plaintext to generate a ciphertext. @@ -706,7 +723,9 @@ module CryptographyBase Input> { result = instance.getCipherOperationMode() } - final override EncryptionAlgorithm getAlgorithm() { result.getInstance() = instance.getAlgorithm() } + final override EncryptionAlgorithm getAlgorithm() { + result.getInstance() = instance.getAlgorithm() + } override string getInternalType() { result = "CipherOperation" } // /** @@ -721,7 +740,7 @@ module CryptographyBase Input> { /** * Block cipher modes of operation algorithms */ - newtype TModeOperationType = + newtype TBlockCipherModeOperationType = ECB() or // Not secure, widely used CBC() or // Vulnerable to padding oracle attacks GCM() or // Widely used AEAD mode (TLS 1.3, SSH, IPsec) @@ -732,7 +751,7 @@ module CryptographyBase Input> { OCB() or // Efficient AEAD mode OtherMode() - abstract class ModeOfOperationAlgorithm extends Algorithm, TModeOfOperationAlgorithm { + abstract class ModeOfOperationAlgorithm extends Algorithm, TBlockCipherModeOfOperationAlgorithm { override string getAlgorithmType() { result = "ModeOfOperation" } /** @@ -742,10 +761,10 @@ module CryptographyBase Input> { * * If a type cannot be determined, the result is `OtherMode`. */ - abstract TModeOperationType getModeType(); + abstract TBlockCipherModeOperationType getModeType(); bindingset[type] - final private predicate modeToNameMapping(TModeOperationType type, string name) { + final private predicate modeToNameMapping(TBlockCipherModeOperationType type, string name) { type instanceof ECB and name = "ECB" or type instanceof CBC and name = "CBC" From 2b0b927b0b14ad819f2e07588d2b75042cbd2545 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Mon, 24 Feb 2025 17:37:41 +0100 Subject: [PATCH 028/656] Add Nonce association to Operation, update graph --- java/ql/lib/experimental/Quantum/JCA.qll | 176 ++++++++----- java/ql/lib/experimental/Quantum/Language.qll | 32 +-- .../src/experimental/Quantum/ReusedNonce.ql | 23 ++ java/ql/src/experimental/Quantum/Test.ql | 9 - .../ql/src/experimental/Quantum/TestCipher.ql | 16 ++ misc/scripts/cryptography/cbom.sh | 6 +- misc/scripts/cryptography/generate_cbom.py | 10 +- .../codeql/cryptography/Model.qll | 237 ++++++++++-------- 8 files changed, 299 insertions(+), 210 deletions(-) create mode 100644 java/ql/src/experimental/Quantum/ReusedNonce.ql delete mode 100644 java/ql/src/experimental/Quantum/Test.ql create mode 100644 java/ql/src/experimental/Quantum/TestCipher.ql diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index acbe6c67888..9892b445312 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -1,5 +1,6 @@ import java import semmle.code.java.dataflow.DataFlow +import semmle.code.java.controlflow.Dominance module JCAModel { import Language @@ -64,6 +65,8 @@ module JCAModel { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", s) ) } + + DataFlow::Node getInputData() { result.asExpr() = this.getArgument(0) } } /** @@ -84,7 +87,7 @@ module JCAModel { * * For example, in `Cipher.getInstance(algorithm)`, this class represents `algorithm`. */ - class CipherGetInstanceAlgorithmArg extends Crypto::EncryptionAlgorithmInstance, + class CipherGetInstanceAlgorithmArg extends Crypto::CipherAlgorithmInstance, Crypto::BlockCipherModeOfOperationAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof Expr { CipherGetInstanceCall call; @@ -116,13 +119,22 @@ module JCAModel { private class JavaxCryptoCipherOperationModeAccess extends FieldAccess { JavaxCryptoCipherOperationModeAccess() { this.getQualifier() instanceof CipherAccess and - this.getField().getName() in ["ENCRYPT_MODE", "DECRYPT_MODE", "WRAP_MODE", "UNWRAP_MODE"] + this.getField().getName().toUpperCase() in [ + "ENCRYPT_MODE", "DECRYPT_MODE", "WRAP_MODE", "UNWRAP_MODE" + ] } } + class CipherUpdateCall extends MethodCall { + CipherUpdateCall() { this.getMethod().hasQualifiedName("javax.crypto", "Cipher", "update") } + + DataFlow::Node getInputData() { result.asExpr() = this.getArgument(0) } + } + private newtype TCipherModeFlowState = TUninitializedCipherModeFlowState() or - TInitializedCipherModeFlowState(CipherInitCall call) + TInitializedCipherModeFlowState(CipherInitCall call) or + TUsedCipherModeFlowState(CipherInitCall init, CipherUpdateCall update) abstract private class CipherModeFlowState extends TCipherModeFlowState { string toString() { @@ -131,13 +143,13 @@ module JCAModel { this = TInitializedCipherModeFlowState(_) and result = "initialized" } - abstract Crypto::CipherOperationMode getCipherOperationMode(); + abstract Crypto::CipherOperationSubtype getCipherOperationMode(); } private class UninitializedCipherModeFlowState extends CipherModeFlowState, TUninitializedCipherModeFlowState { - override Crypto::CipherOperationMode getCipherOperationMode() { + override Crypto::CipherOperationSubtype getCipherOperationMode() { result instanceof Crypto::UnknownCipherOperationMode } } @@ -148,19 +160,18 @@ module JCAModel { CipherInitCall call; DataFlow::Node node1; DataFlow::Node node2; - Crypto::CipherOperationMode mode; + Crypto::CipherOperationSubtype mode; InitializedCipherModeFlowState() { this = TInitializedCipherModeFlowState(call) and DataFlow::localFlowStep(node1, node2) and node2.asExpr() = call.getQualifier() and - // I would imagine this would make this predicate horribly horribly inefficient - // it now binds with anything + // TODO: does this make this predicate inefficient as it binds with anything? not node1.asExpr() = call.getQualifier() and mode = call.getCipherOperationModeType() } - CipherInitCall getCall() { result = call } + CipherInitCall getInitCall() { result = call } DataFlow::Node getFstNode() { result = node1 } @@ -169,12 +180,14 @@ module JCAModel { */ DataFlow::Node getSndNode() { result = node2 } - override Crypto::CipherOperationMode getCipherOperationMode() { result = mode } + override Crypto::CipherOperationSubtype getCipherOperationMode() { result = mode } } /** - * Trace to a cryptographic operation, + * Trace from cipher initialization to a cryptographic operation, * specifically `Cipher.doFinal()`, `Cipher.wrap()`, or `Cipher.unwrap()`. + * + * TODO: handle `Cipher.update()` */ private module CipherGetInstanceToCipherOperationConfig implements DataFlow::StateConfigSig { class FlowState = TCipherModeFlowState; @@ -201,7 +214,7 @@ module JCAModel { exists(CipherInitCall call | node.asExpr() = call.getQualifier() | state instanceof UninitializedCipherModeFlowState or - state.(InitializedCipherModeFlowState).getCall() != call + state.(InitializedCipherModeFlowState).getInitCall() != call ) } } @@ -209,15 +222,16 @@ module JCAModel { module CipherGetInstanceToCipherOperationFlow = DataFlow::GlobalWithState; - class CipherEncryptionOperation extends Crypto::CipherOperationInstance instanceof Call { - Crypto::CipherOperationMode mode; - Crypto::EncryptionAlgorithmInstance algorithm; + class CipherOperationInstance extends Crypto::CipherOperationInstance instanceof Call { + Crypto::CipherOperationSubtype mode; + Crypto::CipherAlgorithmInstance algorithm; + CipherGetInstanceToCipherOperationFlow::PathNode sink; + JCACipherOperationCall doFinalize; - CipherEncryptionOperation() { + CipherOperationInstance() { exists( - CipherGetInstanceToCipherOperationFlow::PathNode sink, CipherGetInstanceToCipherOperationFlow::PathNode src, CipherGetInstanceCall getCipher, - JCACipherOperationCall doFinalize, CipherGetInstanceAlgorithmArg arg + CipherGetInstanceAlgorithmArg arg | CipherGetInstanceToCipherOperationFlow::flowPath(src, sink) and src.getNode().asExpr() = getCipher and @@ -229,9 +243,19 @@ module JCAModel { ) } - override Crypto::EncryptionAlgorithmInstance getAlgorithm() { result = algorithm } + override Crypto::CipherAlgorithmInstance getAlgorithm() { result = algorithm } - override Crypto::CipherOperationMode getCipherOperationMode() { result = mode } + override Crypto::CipherOperationSubtype getCipherOperationSubtype() { result = mode } + + override Crypto::NonceArtifactInstance getNonce() { + NonceArtifactToCipherInitCallFlow::flow(result.asOutputData(), + DataFlow::exprNode(sink.getState() + .(InitializedCipherModeFlowState) + .getInitCall() + .getNonceArg())) + } + + override DataFlow::Node getInputData() { result = doFinalize.getInputData() } } /** @@ -319,12 +343,12 @@ module JCAModel { CipherStringLiteral getInstance() { result = instance } } - class EncryptionAlgorithm extends Crypto::EncryptionAlgorithm { + class EncryptionAlgorithm extends Crypto::CipherAlgorithm { CipherStringLiteral origin; CipherGetInstanceAlgorithmArg instance; EncryptionAlgorithm() { - this = Crypto::TEncryptionAlgorithm(instance) and + this = Crypto::TCipherAlgorithm(instance) and instance.getOrigin() = origin } @@ -347,7 +371,7 @@ module JCAModel { override Crypto::TCipherType getCipherFamily() { if this.cipherNameMappingKnown(_, origin.getAlgorithmName()) then this.cipherNameMappingKnown(result, origin.getAlgorithmName()) - else result instanceof Crypto::OtherSymmetricCipherType + else result instanceof Crypto::OtherCipherType } override string getKeySize(Location location) { none() } @@ -384,33 +408,71 @@ module JCAModel { } /** - * Initialiation vectors + * Initialization vectors and other nonce artifacts */ - abstract class IVParameterInstantiation extends Crypto::InitializationVectorArtifactInstance instanceof ClassInstanceExpr + abstract class NonceParameterInstantiation extends Crypto::NonceArtifactInstance instanceof ClassInstanceExpr { - abstract Expr getInput(); + override DataFlow::Node asOutputData() { result.asExpr() = this } } - class IvParameterSpecInstance extends IVParameterInstantiation { + class IvParameterSpecInstance extends NonceParameterInstantiation { IvParameterSpecInstance() { this.(ClassInstanceExpr) .getConstructedType() .hasQualifiedName("javax.crypto.spec", "IvParameterSpec") } - override Expr getInput() { result = this.(ClassInstanceExpr).getArgument(0) } + override DataFlow::Node getInput() { result.asExpr() = this.(ClassInstanceExpr).getArgument(0) } } - class GCMParameterSpecInstance extends IVParameterInstantiation { + // TODO: this also specifies the tag length for GCM + class GCMParameterSpecInstance extends NonceParameterInstantiation { GCMParameterSpecInstance() { this.(ClassInstanceExpr) .getConstructedType() .hasQualifiedName("javax.crypto.spec", "GCMParameterSpec") } - override Expr getInput() { result = this.(ClassInstanceExpr).getArgument(1) } + override DataFlow::Node getInput() { result.asExpr() = this.(ClassInstanceExpr).getArgument(1) } } + class IvParameterSpecGetIvCall extends MethodCall { + IvParameterSpecGetIvCall() { + this.getMethod().hasQualifiedName("javax.crypto.spec", "IvParameterSpec", "getIV") + } + } + + module NonceArtifactToCipherInitCallConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + exists(NonceParameterInstantiation n | + src = n.asOutputData() and + not exists(IvParameterSpecGetIvCall m | n.getInput().asExpr() = m) + ) + } + + predicate isSink(DataFlow::Node sink) { + exists(CipherInitCall c | c.getNonceArg() = sink.asExpr()) + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + exists(IvParameterSpecGetIvCall m | + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + or + exists(NonceParameterInstantiation n | + node1 = n.getInput() and + node2.asExpr() = n + ) + } + } + + module NonceArtifactToCipherInitCallFlow = DataFlow::Global; + + /** + * A data-flow configuration to track flow from a mode field access to + * the mode argument of the `init` method of the `javax.crypto.Cipher` class. + */ private module JavaxCipherModeAccessToInitConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof JavaxCryptoCipherOperationModeAccess @@ -423,6 +485,18 @@ module JCAModel { module JavaxCipherModeAccessToInitFlow = DataFlow::Global; + private predicate cipher_mode_str_to_cipher_mode_known( + string mode, Crypto::CipherOperationSubtype cipher_mode + ) { + mode = "ENCRYPT_MODE" and cipher_mode instanceof Crypto::EncryptionMode + or + mode = "WRAP_MODE" and cipher_mode instanceof Crypto::WrapMode + or + mode = "DECRYPT_MODE" and cipher_mode instanceof Crypto::DecryptionMode + or + mode = "UNWRAP_MODE" and cipher_mode instanceof Crypto::UnwrapMode + } + class CipherInitCall extends MethodCall { CipherInitCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "init") } @@ -443,49 +517,19 @@ module JCAModel { ) } - Crypto::CipherOperationMode getCipherOperationModeType() { - if not exists(this.getModeOrigin()) - then result instanceof Crypto::UnknownCipherOperationMode - else - if this.getModeOrigin().getField().getName() in ["ENCRYPT_MODE", "WRAP_MODE"] - then result instanceof Crypto::EncryptionMode - else - if this.getModeOrigin().getField().getName() in ["DECRYPT_MODE", "UNWRAP_MODE"] - then result instanceof Crypto::DecryptionMode - else - // TODO/Question: distinguish between unknown vs unspecified? (the field access is not recognized, vs no field access is found) - result instanceof Crypto::UnknownCipherOperationMode + Crypto::CipherOperationSubtype getCipherOperationModeType() { + if cipher_mode_str_to_cipher_mode_known(this.getModeOrigin().getField().getName(), _) + then cipher_mode_str_to_cipher_mode_known(this.getModeOrigin().getField().getName(), result) + else result instanceof Crypto::UnknownCipherOperationMode } - Expr getKey() { + Expr getKeyArg() { result = this.getArgument(1) and this.getMethod().getParameterType(1).hasName("Key") } - Expr getIV() { + Expr getNonceArg() { result = this.getArgument(2) and this.getMethod().getParameterType(2).hasName("AlgorithmParameterSpec") } } - - // TODO: cipher.getParameters().getParameterSpec(GCMParameterSpec.class); - /* - * class InitializationVectorArg extends Crypto::InitializationVectorArtifactInstance instanceof Expr - * { - * IVParameterInstantiation creation; - * - * InitializationVectorArg() { this = creation.getInput() } - * } - */ - - class InitializationVector extends Crypto::InitializationVector { - IVParameterInstantiation instance; - - InitializationVector() { this = Crypto::TInitializationVector(instance) } - - override Location getLocation() { result = instance.getLocation() } - - override Crypto::DataFlowNode asOutputData() { result.asExpr() = instance } - - override Crypto::DataFlowNode getInputData() { result.asExpr() = instance.getInput() } - } } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 5801815109b..e88bce6d995 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -23,8 +23,6 @@ module CryptoInput implements InputSig { class LocatableElement = Language::Element; class UnknownLocation = UnknownDefaultLocation; - - predicate rngToIvFlow(DataFlowNode rng, DataFlowNode iv) { none() } } /** @@ -37,9 +35,7 @@ module Crypto = CryptographyBase; * tied to an output node (i.e., the result of the source of randomness) */ abstract class RandomnessInstance extends Crypto::RandomNumberGenerationInstance { - abstract Crypto::RNGSourceSecurity getSourceSecurity(); - - Crypto::TRNGSeedSecurity getSeedSecurity(Location location) { none() } + override DataFlow::Node asOutputData() { result.asExpr() = this } } class SecureRandomnessInstance extends RandomnessInstance { @@ -48,36 +44,10 @@ class SecureRandomnessInstance extends RandomnessInstance { s.getSourceOfRandomness() instanceof SecureRandomNumberGenerator ) } - - override Crypto::RNGSourceSecurity getSourceSecurity() { - result instanceof Crypto::RNGSourceSecure - } } class InsecureRandomnessInstance extends RandomnessInstance { InsecureRandomnessInstance() { exists(InsecureRandomnessSource node | this = node.asExpr()) } - - override Crypto::RNGSourceSecurity getSourceSecurity() { - result instanceof Crypto::RNGSourceInsecure - } -} - -class RandomnessArtifact extends Crypto::RandomNumberGeneration { - RandomnessInstance instance; - - RandomnessArtifact() { this = Crypto::TRandomNumberGeneration(instance) } - - override Location getLocation() { result = instance.getLocation() } - - override Crypto::RNGSourceSecurity getSourceSecurity() { result = instance.getSourceSecurity() } - - override Crypto::TRNGSeedSecurity getSeedSecurity(Location location) { - result = instance.getSeedSecurity(location) - } - - override Crypto::DataFlowNode asOutputData() { result.asExpr() = instance } - - override Crypto::DataFlowNode getInputData() { none() } } // Import library-specific modeling diff --git a/java/ql/src/experimental/Quantum/ReusedNonce.ql b/java/ql/src/experimental/Quantum/ReusedNonce.ql new file mode 100644 index 00000000000..cb0d6ff9d61 --- /dev/null +++ b/java/ql/src/experimental/Quantum/ReusedNonce.ql @@ -0,0 +1,23 @@ +/** + * @name Unsafe nonce source or reuse + * @id java/unsafe-nonce-source-or-reuse + */ + +import experimental.Quantum.Language +import semmle.code.java.dataflow.DataFlow + +Element getNonceOrigin(Crypto::NonceArtifactInstance nonce) { + // TODO: this check is currently ultra hacky just for demoing + result = nonce.getInput().asExpr().(VarAccess).getVariable() +} + +from + Crypto::CipherOperationInstance op, Crypto::NonceArtifactInstance nonce1, + Crypto::NonceArtifactInstance nonce2 +where + op.(Expr).getEnclosingCallable().getName() = "encrypt" and + nonce1 = op.getNonce() and + nonce2 = op.getNonce() and + not nonce1 = nonce2 and + getNonceOrigin(nonce1) = getNonceOrigin(nonce2) +select op, nonce1, nonce2 diff --git a/java/ql/src/experimental/Quantum/Test.ql b/java/ql/src/experimental/Quantum/Test.ql deleted file mode 100644 index ba76213132c..00000000000 --- a/java/ql/src/experimental/Quantum/Test.ql +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @name "PQC Test" - */ - -import experimental.Quantum.Language - -from Crypto::EncryptionAlgorithm a, Crypto::ModeOfOperationAlgorithm m, Crypto::PaddingAlgorithm p -where m = a.getModeOfOperation() and p = a.getPadding() -select a, a.getRawAlgorithmName(), m, m.getRawAlgorithmName(), p, p.getRawAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/TestCipher.ql b/java/ql/src/experimental/Quantum/TestCipher.ql new file mode 100644 index 00000000000..6be308c2560 --- /dev/null +++ b/java/ql/src/experimental/Quantum/TestCipher.ql @@ -0,0 +1,16 @@ +/** + * @name "PQC Test" + */ + +import experimental.Quantum.Language + +from + Crypto::CipherOperation op, Crypto::CipherAlgorithm a, Crypto::ModeOfOperationAlgorithm m, + Crypto::PaddingAlgorithm p, Crypto::Nonce nonce +where + a = op.getAlgorithm() and + m = a.getModeOfOperation() and + p = a.getPadding() and + nonce = op.getNonce() +select op, op.getCipherOperationMode(), a, a.getRawAlgorithmName(), m, m.getRawAlgorithmName(), p, + p.getRawAlgorithmName(), nonce, nonce.getInputData() diff --git a/misc/scripts/cryptography/cbom.sh b/misc/scripts/cryptography/cbom.sh index 9cbef951bbf..ef558ccf432 100755 --- a/misc/scripts/cryptography/cbom.sh +++ b/misc/scripts/cryptography/cbom.sh @@ -1,8 +1,8 @@ #!/bin/bash -CODEQL_PATH="/Users/nicolaswill/Library/Application Support/Code/User/globalStorage/github.vscode-codeql/distribution5/codeql/codeql" -DATABASE_PATH="/Users/nicolaswill/openssl_codeql/openssl/openssl_db" -QUERY_FILE="/Users/nicolaswill/pqc/codeql/cpp/ql/src/experimental/Quantum/CBOMGraph.ql" +CODEQL_PATH="/Users/nicolaswill/.local/share/gh/extensions/gh-codeql/dist/release/v2.20.4/codeql" +DATABASE_PATH="/Users/nicolaswill/pqc/gpt-crypto-test-cases/gpt_ai_gen_jca_test_cases_db" +QUERY_FILE="/Users/nicolaswill/pqc/codeql/java/ql/src/experimental/Quantum/PrintCBOMGraph.ql" OUTPUT_DIR="graph_output" python3 generate_cbom.py -c "$CODEQL_PATH" -d "$DATABASE_PATH" -q "$QUERY_FILE" -o "$OUTPUT_DIR" diff --git a/misc/scripts/cryptography/generate_cbom.py b/misc/scripts/cryptography/generate_cbom.py index 10ec895dc62..07400d6cd6a 100644 --- a/misc/scripts/cryptography/generate_cbom.py +++ b/misc/scripts/cryptography/generate_cbom.py @@ -56,6 +56,9 @@ def convert_dgml_to_dot(dgml_file, dot_file): else: label_parts.append(f"{key}={value}") label = "\\n".join(label_parts) + # Escape forward slashes and double quotes + label = label.replace("/", "\\/") + label = label.replace("\"", "\\\"") prop_l = [f'label="{label}"'] node_s = f'nd_{node_id} [{", ".join(prop_l)}];' body_l.append(node_s) @@ -63,8 +66,11 @@ def convert_dgml_to_dot(dgml_file, dot_file): # Process edges for edge in root.find("{http://schemas.microsoft.com/vs/2009/dgml}Links"): att = edge.attrib + edge_label = att.get("Label", "") + edge_label = edge_label.replace("/", "\\/") + edge_label = edge_label.replace("\"", "\\\"") edge_s = 'nd_{} -> nd_{} [label="{}"];'.format( - att["Source"], att["Target"], att.get("Label", "")) + att["Source"], att["Target"], edge_label) body_l.append(edge_s) body_l.append("}") @@ -89,7 +95,7 @@ def main(): run_codeql_analysis(args.codeql, args.database, args.query, args.output) # Locate DGML file - dgml_file = os.path.join(args.output, "cbomgraph.dgml") + dgml_file = os.path.join(args.output, "java", "print-cbom-graph.dgml") dot_file = dgml_file.replace(".dgml", ".dot") if os.path.exists(dgml_file): diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index a0f22d0229b..e5b91e198ea 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -19,8 +19,6 @@ signature module InputSig { } class UnknownLocation instanceof Location; - - predicate rngToIvFlow(DataFlowNode rng, DataFlowNode iv); } module CryptographyBase Input> { @@ -34,11 +32,13 @@ module CryptographyBase Input> { UnknownPropertyValue() { this = "" } } - private string getPropertyAsGraphString(NodeBase node, string key) { + private string getPropertyAsGraphString(NodeBase node, string key, Location root) { result = strictconcat(any(string value, Location location, string parsed | node.properties(key, value, location) and - parsed = "(" + value + "," + location.toString() + ")" + if location = root or location instanceof UnknownLocation + then parsed = value + else parsed = "(" + value + "," + location.toString() + ")" | parsed ), "," @@ -46,19 +46,26 @@ module CryptographyBase Input> { } predicate nodes_graph_impl(NodeBase node, string key, string value) { - key = "semmle.label" and - value = node.toString() - or - // CodeQL's DGML output does not include a location - key = "Location" and - value = node.getLocation().toString() - or - // Known unknown edges should be reported as properties rather than edges - node = node.getChild(key) and - value = "" - or - // Report properties - value = getPropertyAsGraphString(node, key) + not ( + // exclude Artifact nodes with no edges to or from them + node instanceof Artifact and + not (edges_graph_impl(node, _, _, _) or edges_graph_impl(_, node, _, _)) + ) and + ( + key = "semmle.label" and + value = node.toString() + or + // CodeQL's DGML output does not include a location + key = "Location" and + value = node.getLocation().toString() + or + // Known unknown edges should be reported as properties rather than edges + node = node.getChild(key) and + value = "" + or + // Report properties + value = getPropertyAsGraphString(node, key, node.getLocation()) + ) } predicate edges_graph_impl(NodeBase source, NodeBase target, string key, string value) { @@ -80,12 +87,16 @@ module CryptographyBase Input> { abstract class KeyDerivationAlgorithmInstance extends LocatableElement { } abstract class CipherOperationInstance extends LocatableElement { - abstract EncryptionAlgorithmInstance getAlgorithm(); + abstract CipherAlgorithmInstance getAlgorithm(); - abstract CipherOperationMode getCipherOperationMode(); + abstract CipherOperationSubtype getCipherOperationSubtype(); + + abstract NonceArtifactInstance getNonce(); + + abstract DataFlowNode getInputData(); } - abstract class EncryptionAlgorithmInstance extends LocatableElement { } + abstract class CipherAlgorithmInstance extends LocatableElement { } abstract class KeyEncapsulationOperationInstance extends LocatableElement { } @@ -99,21 +110,26 @@ module CryptographyBase Input> { abstract class PaddingAlgorithmInstance extends LocatableElement { } // Artifacts - abstract class DigestArtifactInstance extends LocatableElement { } + abstract private class ArtifactLocatableElement extends LocatableElement { + abstract DataFlowNode asOutputData(); - abstract class KeyArtifactInstance extends LocatableElement { } + abstract DataFlowNode getInput(); + } - abstract class InitializationVectorArtifactInstance extends LocatableElement { } + abstract class DigestArtifactInstance extends ArtifactLocatableElement { } - abstract class NonceArtifactInstance extends LocatableElement { } + abstract class KeyArtifactInstance extends ArtifactLocatableElement { } - abstract class RandomNumberGenerationInstance extends LocatableElement { } + abstract class NonceArtifactInstance extends ArtifactLocatableElement { } + + abstract class RandomNumberGenerationInstance extends ArtifactLocatableElement { + final override DataFlowNode getInput() { none() } + } newtype TNode = // Artifacts (data that is not an operation or algorithm, e.g., a key) TDigest(DigestArtifactInstance e) or TKey(KeyArtifactInstance e) or - TInitializationVector(InitializationVectorArtifactInstance e) or TNonce(NonceArtifactInstance e) or TRandomNumberGeneration(RandomNumberGenerationInstance e) or // Operations (e.g., hashing, encryption) @@ -122,7 +138,7 @@ module CryptographyBase Input> { TCipherOperation(CipherOperationInstance e) or TKeyEncapsulationOperation(KeyEncapsulationOperationInstance e) or // Algorithms (e.g., SHA-256, AES) - TEncryptionAlgorithm(EncryptionAlgorithmInstance e) or + TCipherAlgorithm(CipherAlgorithmInstance e) or TEllipticCurveAlgorithm(EllipticCurveAlgorithmInstance e) or THashAlgorithm(HashAlgorithmInstance e) or TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstance e) or @@ -133,10 +149,10 @@ module CryptographyBase Input> { TPaddingAlgorithm(PaddingAlgorithmInstance e) or // Composite and hybrid cryptosystems (e.g., RSA-OAEP used with AES, post-quantum hybrid cryptosystems) // These nodes are always parent nodes and are not modeled but rather defined via library-agnostic patterns. - TKemDemHybridCryptosystem(EncryptionAlgorithm dem) or // TODO, change this relation and the below ones - TKeyAgreementHybridCryptosystem(EncryptionAlgorithmInstance ka) or - TAsymmetricEncryptionMacHybridCryptosystem(EncryptionAlgorithmInstance enc) or - TPostQuantumHybridCryptosystem(EncryptionAlgorithmInstance enc) + TKemDemHybridCryptosystem(CipherAlgorithm dem) or // TODO, change this relation and the below ones + TKeyAgreementHybridCryptosystem(CipherAlgorithmInstance ka) or + TAsymmetricEncryptionMacHybridCryptosystem(CipherAlgorithmInstance enc) or + TPostQuantumHybridCryptosystem(CipherAlgorithmInstance enc) /** * The base class for all cryptographic assets, such as operations and algorithms. @@ -183,7 +199,7 @@ module CryptographyBase Input> { } /** - * Returns the parent of this node. + * Returns a parent of this node. */ final NodeBase getAParent() { result.getChild(_) = this } } @@ -197,43 +213,43 @@ module CryptographyBase Input> { } /** - * An initialization vector + * A nonce or initialization vector */ - abstract class InitializationVector extends Artifact, TInitializationVector { - final override string getInternalType() { result = "InitializationVector" } + private class NonceImpl extends Artifact, TNonce { + NonceArtifactInstance instance; - RandomNumberGeneration getRNGSource() { - Input::rngToIvFlow(result.asOutputData(), this.getInputData()) - } + NonceImpl() { this = TNonce(instance) } + + final override string getInternalType() { result = "Nonce" } + + override Location getLocation() { result = instance.getLocation() } + + override DataFlowNode asOutputData() { result = instance.asOutputData() } + + override DataFlowNode getInputData() { result = instance.getInput() } } - newtype TRNGSourceSecurity = - RNGSourceSecure() or // Secure RNG source (unrelated to seed) - RNGSourceInsecure() // Insecure RNG source (unrelated to seed) - - class RNGSourceSecurity extends TRNGSourceSecurity { - string toString() { - this instanceof RNGSourceSecure and result = "Secure RNG Source" - or - this instanceof RNGSourceInsecure and result = "Insecure RNG Source" - } - } - - newtype TRNGSeedSecurity = - RNGSeedSecure() or - RNGSeedInsecure() + final class Nonce = NonceImpl; /** * A source of random number generation */ - abstract class RandomNumberGeneration extends Artifact, TRandomNumberGeneration { + final private class RandomNumberGenerationImpl extends Artifact, TRandomNumberGeneration { + RandomNumberGenerationInstance instance; + + RandomNumberGenerationImpl() { this = TRandomNumberGeneration(instance) } + final override string getInternalType() { result = "RandomNumberGeneration" } - abstract RNGSourceSecurity getSourceSecurity(); + override Location getLocation() { result = instance.getLocation() } - abstract TRNGSeedSecurity getSeedSecurity(Location location); + override DataFlowNode asOutputData() { result = instance.asOutputData() } + + override DataFlowNode getInputData() { result = instance.getInput() } } + final class RandomNumberGeneration = RandomNumberGenerationImpl; + /** * A cryptographic operation, such as hashing or encryption. */ @@ -243,14 +259,6 @@ module CryptographyBase Input> { */ abstract Algorithm getAlgorithm(); - // TODO: I only removed this because I want the operation type to be non-string - // since for CipherOperations the user will have to pick the right type, - // and I want to force them to use a type that is restricted. In this case to a TCipherOperationType - // /** - // * Gets the name of this operation, e.g., "hash" or "encrypt". - // */ - // abstract string getOperationType(); - // final override string getInternalType() { result = this.getOperationType() } override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or @@ -685,24 +693,34 @@ module CryptographyBase Input> { abstract override string getRawAlgorithmName(); } - newtype TCipherOperationMode = + newtype TCipherOperationSubtype = TEncryptionMode() or TDecryptionMode() or + TWrapMode() or + TUnwrapMode() or TUnknownCipherOperationMode() - abstract class CipherOperationMode extends TCipherOperationMode { + abstract class CipherOperationSubtype extends TCipherOperationSubtype { abstract string toString(); } - class EncryptionMode extends CipherOperationMode, TEncryptionMode { - override string toString() { result = "Encryption" } + class EncryptionMode extends CipherOperationSubtype, TEncryptionMode { + override string toString() { result = "Encrypt" } } - class DecryptionMode extends CipherOperationMode, TDecryptionMode { - override string toString() { result = "Decryption" } + class DecryptionMode extends CipherOperationSubtype, TDecryptionMode { + override string toString() { result = "Decrypt" } } - class UnknownCipherOperationMode extends CipherOperationMode, TUnknownCipherOperationMode { + class WrapMode extends CipherOperationSubtype, TWrapMode { + override string toString() { result = "Wrap" } + } + + class UnwrapMode extends CipherOperationSubtype, TUnwrapMode { + override string toString() { result = "Unwrap" } + } + + class UnknownCipherOperationMode extends CipherOperationSubtype, TUnknownCipherOperationMode { override string toString() { result = "Unknown" } } @@ -711,32 +729,51 @@ module CryptographyBase Input> { * This operation takes an input message (plaintext) of arbitrary content and length * and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). */ - // NOTE FOR NICK: making this concrete here as I don't think users need to worry about making/extending these operations, just instances - class CipherOperation extends Operation, TCipherOperation { + class CipherOperationImpl extends Operation, TCipherOperation { CipherOperationInstance instance; - CipherOperation() { this = TCipherOperation(instance) } + CipherOperationImpl() { this = TCipherOperation(instance) } + + override string getInternalType() { result = "CipherOperation" } override Location getLocation() { result = instance.getLocation() } - final TCipherOperationMode getCipherOperationMode() { - result = instance.getCipherOperationMode() + CipherOperationSubtype getCipherOperationMode() { + result = instance.getCipherOperationSubtype() } - final override EncryptionAlgorithm getAlgorithm() { - result.getInstance() = instance.getAlgorithm() + final override CipherAlgorithm getAlgorithm() { result.getInstance() = instance.getAlgorithm() } + + override NodeBase getChild(string key) { + result = super.getChild(key) + or + // [KNOWN_OR_UNKNOWN] + key = "nonce" and + if exists(this.getNonce()) then result = this.getNonce() else result = this } - override string getInternalType() { result = "CipherOperation" } - // /** - // * Gets the initialization vector associated with this encryption operation. - // * - // * This predicate does not need to hold for all encryption operations, - // * as the initialization vector is not always required. - // */ - // abstract InitializationVector getInitializationVector(); + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + // [ALWAYS_KNOWN] - Unknown is handled in getCipherOperationMode() + key = "operation" and + value = this.getCipherOperationMode().toString() and + location = this.getLocation() + } + + /** + * Gets the initialization vector associated with this encryption operation. + * + * This predicate does not need to hold for all encryption operations, + * as the initialization vector is not always required. + */ + Nonce getNonce() { result = TNonce(instance.getNonce()) } + + DataFlowNode getInputData() { result = instance.getInputData() } } + final class CipherOperation = CipherOperationImpl; + /** * Block cipher modes of operation algorithms */ @@ -858,10 +895,10 @@ module CryptographyBase Input> { RC4() or RC5() or RSA() or - OtherSymmetricCipherType() + OtherCipherType() - abstract class EncryptionAlgorithm extends Algorithm, TEncryptionAlgorithm { - final LocatableElement getInstance() { this = TEncryptionAlgorithm(result) } + abstract class CipherAlgorithm extends Algorithm, TCipherAlgorithm { + final LocatableElement getInstance() { this = TCipherAlgorithm(result) } final TCipherStructureType getCipherStructure() { this.cipherFamilyToNameAndStructure(this.getCipherFamily(), _, result) @@ -871,7 +908,7 @@ module CryptographyBase Input> { this.cipherFamilyToNameAndStructure(this.getCipherFamily(), result, _) } - final override string getAlgorithmType() { result = "EncryptionAlgorithm" } + override string getAlgorithmType() { result = "CipherAlgorithm" } /** * Gets the key size of this cipher, e.g., "128" or "256". @@ -917,7 +954,7 @@ module CryptographyBase Input> { or type instanceof RSA and name = "RSA" and s = Asymmetric() or - type instanceof OtherSymmetricCipherType and + type instanceof OtherCipherType and name = this.getRawAlgorithmName() and s = UnknownCipherStructureType() } @@ -929,19 +966,21 @@ module CryptographyBase Input> { override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or - ( - // [KNOWN_OR_UNKNOWN] - edgeName = "mode" and - if exists(this.getModeOfOperation()) - then result = this.getModeOfOperation() - else result = this - ) + // [KNOWN_OR_UNKNOWN] + edgeName = "mode" and + if exists(this.getModeOfOperation()) + then result = this.getModeOfOperation() + else result = this + or + // [KNOWN_OR_UNKNOWN] + edgeName = "padding" and + if exists(this.getPadding()) then result = this.getPadding() else result = this } override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or - // [ALWAYS_KNOWN]: unknown case is handled in `getCipherStructureTypeString` + // [ALWAYS_KNOWN] - unknown case is handled in `getCipherStructureTypeString` key = "structure" and getCipherStructureTypeString(this.getCipherStructure()) = value and location instanceof UnknownLocation From eb91ecf1fb8864856a7dea33e513edb0a2bd7f68 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Tue, 25 Feb 2025 02:53:13 +0100 Subject: [PATCH 029/656] Add generic artifact data-flow The relation between RNG and other artifacts has been added Nonce has been completed to report its source --- java/ql/lib/experimental/Quantum/Language.qll | 20 ++++++ .../codeql/cryptography/Model.qll | 71 +++++++++++++++---- 2 files changed, 79 insertions(+), 12 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index e88bce6d995..f8b7bf7a914 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -2,6 +2,7 @@ private import codeql.cryptography.Model private import java as Language private import semmle.code.java.security.InsecureRandomnessQuery private import semmle.code.java.security.RandomQuery +private import semmle.code.java.dataflow.DataFlow private class UnknownLocation extends Language::Location { UnknownLocation() { this.getFile().getAbsolutePath() = "" } @@ -36,6 +37,10 @@ module Crypto = CryptographyBase; */ abstract class RandomnessInstance extends Crypto::RandomNumberGenerationInstance { override DataFlow::Node asOutputData() { result.asExpr() = this } + + override predicate flowsTo(Crypto::ArtifactLocatableElement other) { + RNGToArtifactFlow::flow(this.asOutputData(), other.getInput()) + } } class SecureRandomnessInstance extends RandomnessInstance { @@ -50,5 +55,20 @@ class InsecureRandomnessInstance extends RandomnessInstance { InsecureRandomnessInstance() { exists(InsecureRandomnessSource node | this = node.asExpr()) } } +/** + * Random number generation artifact to other artifact flow configuration + */ +module RNGToArtifactFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::RandomNumberGenerationInstance rng).asOutputData() + } + + predicate isSink(DataFlow::Node sink) { + sink = any(Crypto::ArtifactLocatableElement other).getInput() + } +} + +module RNGToArtifactFlow = DataFlow::Global; + // Import library-specific modeling import JCA diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index e5b91e198ea..4e8dae8aa02 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -47,8 +47,9 @@ module CryptographyBase Input> { predicate nodes_graph_impl(NodeBase node, string key, string value) { not ( - // exclude Artifact nodes with no edges to or from them - node instanceof Artifact and + // exclude certain Artifact nodes with no edges to or from them + node instanceof RandomNumberGeneration and + // TODO: performance? not (edges_graph_impl(node, _, _, _) or edges_graph_impl(_, node, _, _)) ) and ( @@ -110,17 +111,47 @@ module CryptographyBase Input> { abstract class PaddingAlgorithmInstance extends LocatableElement { } // Artifacts - abstract private class ArtifactLocatableElement extends LocatableElement { + abstract class ArtifactLocatableElement extends LocatableElement { + /** + * Gets the output node for this artifact, which should usually be the same as `this`. + */ abstract DataFlowNode asOutputData(); + /** + * Gets the input node for this artifact. + * + * If `getInput` is implemented as `none()`, the artifact will not have inbound flow analysis. + */ abstract DataFlowNode getInput(); + + /** + * Holds if this artifact flows to `other`. + * + * This predicate should be defined generically per-language with library-specific extension support. + * The expected implementation is to perform flow analysis from this artifact's output to another artifact's input. + * The `other` argument should be one or more `ArtifactLocatableElement` that are sinks of the flow. + * + * If `flowsTo` is implemented as `none()`, the artifact will not have outbound flow analysis. + */ + abstract predicate flowsTo(ArtifactLocatableElement other); } + newtype TGenericDataSourceType = + FilesystemDataSource() or + ExternalLibraryDataSource() or + MemoryAllocationDataSource() or + ConstantDataSource() + + abstract class GenericDataSourceInstance extends ArtifactLocatableElement { } + abstract class DigestArtifactInstance extends ArtifactLocatableElement { } abstract class KeyArtifactInstance extends ArtifactLocatableElement { } - abstract class NonceArtifactInstance extends ArtifactLocatableElement { } + abstract class NonceArtifactInstance extends ArtifactLocatableElement { + // no implicit outbound data-flow (only modelled in cipher operations) + override predicate flowsTo(ArtifactLocatableElement other) { none() } + } abstract class RandomNumberGenerationInstance extends ArtifactLocatableElement { final override DataFlowNode getInput() { none() } @@ -206,10 +237,30 @@ module CryptographyBase Input> { class Asset = NodeBase; + /** + * An artifact is an instance of data that is used in a cryptographic operation or produced by one. + */ abstract class Artifact extends NodeBase { - abstract DataFlowNode asOutputData(); + /** + * Gets the artifact locatable element associated with this artifact. + * + * *Implementation note*: to avoid cross-products, the result *must* only bind to the + * `ArtifactLocatableElement` that is already associated with the node instance. + */ + abstract ArtifactLocatableElement asArtifactLocatableElement(); - abstract DataFlowNode getInputData(); + final Artifact getSourceArtifact() { + not result = this and + result.asArtifactLocatableElement().flowsTo(this.asArtifactLocatableElement()) + } + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + // [ONLY_KNOWN] - TODO: unknown case handled by reporting a generic source type or unknown as a property + edgeName = "source" and + result = this.getSourceArtifact() + } } /** @@ -224,9 +275,7 @@ module CryptographyBase Input> { override Location getLocation() { result = instance.getLocation() } - override DataFlowNode asOutputData() { result = instance.asOutputData() } - - override DataFlowNode getInputData() { result = instance.getInput() } + override ArtifactLocatableElement asArtifactLocatableElement() { result = instance } } final class Nonce = NonceImpl; @@ -243,9 +292,7 @@ module CryptographyBase Input> { override Location getLocation() { result = instance.getLocation() } - override DataFlowNode asOutputData() { result = instance.asOutputData() } - - override DataFlowNode getInputData() { result = instance.getInput() } + override ArtifactLocatableElement asArtifactLocatableElement() { result = instance } } final class RandomNumberGeneration = RandomNumberGenerationImpl; From f55f27b0d92297d314a2cccfb913032379edfbac Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Tue, 25 Feb 2025 18:22:38 +0100 Subject: [PATCH 030/656] Expand handling of generic artifact sources --- java/ql/lib/experimental/Quantum/JCA.qll | 8 +- java/ql/lib/experimental/Quantum/Language.qll | 35 +++++ .../ql/src/experimental/Quantum/TestCipher.ql | 2 +- .../codeql/cryptography/Model.qll | 138 ++++++++++++++---- 4 files changed, 147 insertions(+), 36 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 9892b445312..df96a4460e2 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -125,16 +125,10 @@ module JCAModel { } } - class CipherUpdateCall extends MethodCall { - CipherUpdateCall() { this.getMethod().hasQualifiedName("javax.crypto", "Cipher", "update") } - - DataFlow::Node getInputData() { result.asExpr() = this.getArgument(0) } - } - private newtype TCipherModeFlowState = TUninitializedCipherModeFlowState() or TInitializedCipherModeFlowState(CipherInitCall call) or - TUsedCipherModeFlowState(CipherInitCall init, CipherUpdateCall update) + TUsedCipherModeFlowState(CipherInitCall init) abstract private class CipherModeFlowState extends TCipherModeFlowState { string toString() { diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index f8b7bf7a914..5abac9e9462 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -3,6 +3,7 @@ private import java as Language private import semmle.code.java.security.InsecureRandomnessQuery private import semmle.code.java.security.RandomQuery private import semmle.code.java.dataflow.DataFlow +private import semmle.code.java.dataflow.FlowSources private class UnknownLocation extends Language::Location { UnknownLocation() { this.getFile().getAbsolutePath() = "" } @@ -31,6 +32,25 @@ module CryptoInput implements InputSig { */ module Crypto = CryptographyBase; +/** + * Definitions of various generic data sources + */ +final class DefaultFlowSource = SourceNode; + +final class DefaultRemoteFlowSource = RemoteFlowSource; + +class GenericLocalDataSource extends Crypto::GenericRemoteDataSource { + GenericLocalDataSource() { + any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this + } + + override DataFlow::Node asOutputData() { result.asExpr() = this } + + override predicate flowsTo(Crypto::ArtifactLocatableElement other) { + DataSourceToArtifactFlow::flow(this.asOutputData(), other.getInput()) + } +} + /** * Random number generation, where each instance is modelled as the expression * tied to an output node (i.e., the result of the source of randomness) @@ -70,5 +90,20 @@ module RNGToArtifactFlowConfig implements DataFlow::ConfigSig { module RNGToArtifactFlow = DataFlow::Global; +/** + * Generic data source to artifact flow configuration + */ +module DataSourceToArtifactFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::GenericDataSourceInstance i).asOutputData() + } + + predicate isSink(DataFlow::Node sink) { + sink = any(Crypto::ArtifactLocatableElement other).getInput() + } +} + +module DataSourceToArtifactFlow = DataFlow::Global; + // Import library-specific modeling import JCA diff --git a/java/ql/src/experimental/Quantum/TestCipher.ql b/java/ql/src/experimental/Quantum/TestCipher.ql index 6be308c2560..14041cd3b22 100644 --- a/java/ql/src/experimental/Quantum/TestCipher.ql +++ b/java/ql/src/experimental/Quantum/TestCipher.ql @@ -13,4 +13,4 @@ where p = a.getPadding() and nonce = op.getNonce() select op, op.getCipherOperationMode(), a, a.getRawAlgorithmName(), m, m.getRawAlgorithmName(), p, - p.getRawAlgorithmName(), nonce, nonce.getInputData() + p.getRawAlgorithmName(), nonce diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 4e8dae8aa02..713c503ea65 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -136,13 +136,30 @@ module CryptographyBase Input> { abstract predicate flowsTo(ArtifactLocatableElement other); } - newtype TGenericDataSourceType = - FilesystemDataSource() or - ExternalLibraryDataSource() or - MemoryAllocationDataSource() or - ConstantDataSource() + // TODO: WARNING: + // If this overlaps with any other LocatableElement, there will be a cross-product + // This is never to be used for unknowns + abstract class GenericDataSourceInstance extends ArtifactLocatableElement { + final override DataFlowNode getInput() { none() } - abstract class GenericDataSourceInstance extends ArtifactLocatableElement { } + abstract string getLabel(); + } + + abstract class GenericConstantOrAllocationSource extends GenericDataSourceInstance { + final override string getLabel() { result = "ConstantData" } // TODO: toString of source? + } + + abstract class GenericExternalCallSource extends GenericDataSourceInstance { + final override string getLabel() { result = "ExternalCall" } // TODO: call target name or toString of source? + } + + abstract class GenericRemoteDataSource extends GenericDataSourceInstance { + final override string getLabel() { result = "RemoteData" } // TODO: toString of source? + } + + abstract class GenericLocalDataSource extends GenericDataSourceInstance { + final override string getLabel() { result = "LocalData" } // TODO: toString of source? + } abstract class DigestArtifactInstance extends ArtifactLocatableElement { } @@ -224,7 +241,7 @@ module CryptographyBase Input> { * This predicate is overriden by derived classes to construct the graph of cryptographic operations. */ predicate properties(string key, string value, Location location) { - key = "origin" and + key = "Origin" and location = this.getOrigin(value).getLocation() and not location = this.getLocation() } @@ -249,18 +266,65 @@ module CryptographyBase Input> { */ abstract ArtifactLocatableElement asArtifactLocatableElement(); + /** + * Gets the `Artifact` node that is the data source for this artifact. + */ final Artifact getSourceArtifact() { - not result = this and - result.asArtifactLocatableElement().flowsTo(this.asArtifactLocatableElement()) + result.asArtifactLocatableElement() = this.getSourceArtifactElement() + } + + /** + * Gets the `ArtifactLocatableElement` that is the data source for this artifact. + * + * This predicate is equivalent to `getSourceArtifact().asArtifactLocatableElement()`. + */ + final ArtifactLocatableElement getSourceArtifactElement() { + not result = this.asArtifactLocatableElement() and + result.flowsTo(this.asArtifactLocatableElement()) } override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or - // [ONLY_KNOWN] - TODO: unknown case handled by reporting a generic source type or unknown as a property - edgeName = "source" and + // [ONLY_KNOWN] - TODO: known-unknown case handled by reporting a generic source type or unknown as a property + edgeName = "Source" and result = this.getSourceArtifact() } + + // TODO: document the below + final private predicate src_generic_data_source_to_label_and_loc(string label, Location location) { + exists(GenericDataSourceInstance instance | + this.getSourceArtifactElement() = instance and + instance.getLabel() = label and + instance.getLocation() = location + ) + } + + final private predicate src_artifact_to_label_and_loc(string label, Location location) { + exists(Artifact a | + this.getSourceArtifact() = a and + a.getInternalType() = label and + a.getLocation() = location + ) + } + + final private predicate source_type_property(string key, string value, Location location) { + key = "SourceType" and + if this.src_artifact_to_label_and_loc(_, _) + then this.src_artifact_to_label_and_loc(value, location) + else + if + exists(this.asArtifactLocatableElement().getInput()) and + not this.src_generic_data_source_to_label_and_loc(_, _) + then value instanceof UnknownPropertyValue and location instanceof UnknownLocation + else this.src_generic_data_source_to_label_and_loc(value, location) + } + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + this.source_type_property(key, value, location) + } } /** @@ -309,7 +373,25 @@ module CryptographyBase Input> { override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or - edgeName = "uses" and + /* + * TODO: Consider a case with getProperty, where an unknown value is loaded from the filesystem, + * but a default is specified as such: + * String value = getProperty("property", "default_algorithm") + * In this case, getAlgorithm *could* be resolved to default_algorithm, but in that case, the known + * unknown case, i.e., what is loaded from `property`, would not be reported at all as a known unknown. + * + * Implementation brainstorming: + * We have two cases, and we only considered one before: the case where we can't point to the known unknown. + * The new case is pointing to a known unknown, e.g., "property" loaded via getProperty. + * A potential solution is to create a known unknown node for each node type (particularly algorithms) + * and model those elements in the database to associate with that known unknown type?? + * + * - Idea: use the generic data source concept as the definition of potential known unknowns. + * flow should be tracked from them to anything that could be a "sink" that specifies the relation. + * in this case, the sink would be an instantiaition of an algorithm where the value is not resolvable. + */ + + edgeName = "Uses" and if exists(this.getAlgorithm()) then result = this.getAlgorithm() else result = this } } @@ -336,10 +418,10 @@ module CryptographyBase Input> { super.properties(key, value, location) or // [ONLY_KNOWN] - key = "name" and value = this.getAlgorithmName() and location = this.getLocation() + key = "Name" and value = this.getAlgorithmName() and location = this.getLocation() or // [ONLY_KNOWN] - key = "raw_name" and value = this.getRawAlgorithmName() and location = this.getLocation() + key = "RawName" and value = this.getRawAlgorithmName() and location = this.getLocation() } } @@ -445,7 +527,7 @@ module CryptographyBase Input> { super.properties(key, value, location) or // [KNOWN_OR_UNKNOWN] - key = "digest_size" and + key = "DigestSize" and if exists(this.getDigestSize(location)) then value = this.getDigestSize(location) else ( @@ -492,7 +574,7 @@ module CryptographyBase Input> { or ( // [KNOWN_OR_UNKNOWN] - edgeName = "uses" and + edgeName = "Uses" and if exists(this.getHashAlgorithm()) then result = this.getHashAlgorithm() else result = this ) } @@ -526,7 +608,7 @@ module CryptographyBase Input> { or ( // [KNOWN_OR_UNKNOWN] - key = "iterations" and + key = "Iterations" and if exists(this.getIterationCount(location)) then value = this.getIterationCount(location) else ( @@ -536,7 +618,7 @@ module CryptographyBase Input> { or ( // [KNOWN_OR_UNKNOWN] - key = "key_len" and + key = "KeyLength" and if exists(this.getKeyLength(location)) then value = this.getKeyLength(location) else ( @@ -580,7 +662,7 @@ module CryptographyBase Input> { or ( // [KNOWN_OR_UNKNOWN] - key = "iterations" and + key = "Iterations" and if exists(this.getIterationCount(location)) then value = this.getIterationCount(location) else ( @@ -590,7 +672,7 @@ module CryptographyBase Input> { or ( // [KNOWN_OR_UNKNOWN] - key = "id_byte" and + key = "IdByte" and if exists(this.getIDByte(location)) then value = this.getIDByte(location) else ( @@ -661,7 +743,7 @@ module CryptographyBase Input> { or ( // [KNOWN_OR_UNKNOWN] - key = "key_len" and + key = "KeyLength" and if exists(this.getDerivedKeyLength(location)) then value = this.getDerivedKeyLength(location) else ( @@ -714,7 +796,7 @@ module CryptographyBase Input> { super.properties(key, value, location) or // [KNOWN_OR_UNKNOWN] - key = "key_size" and + key = "KeySize" and if exists(this.getKeySize(location)) then value = this.getKeySize(location) else ( @@ -795,7 +877,7 @@ module CryptographyBase Input> { result = super.getChild(key) or // [KNOWN_OR_UNKNOWN] - key = "nonce" and + key = "Nonce" and if exists(this.getNonce()) then result = this.getNonce() else result = this } @@ -803,7 +885,7 @@ module CryptographyBase Input> { super.properties(key, value, location) or // [ALWAYS_KNOWN] - Unknown is handled in getCipherOperationMode() - key = "operation" and + key = "Operation" and value = this.getCipherOperationMode().toString() and location = this.getLocation() } @@ -1014,13 +1096,13 @@ module CryptographyBase Input> { result = super.getChild(edgeName) or // [KNOWN_OR_UNKNOWN] - edgeName = "mode" and + edgeName = "Mode" and if exists(this.getModeOfOperation()) then result = this.getModeOfOperation() else result = this or // [KNOWN_OR_UNKNOWN] - edgeName = "padding" and + edgeName = "Padding" and if exists(this.getPadding()) then result = this.getPadding() else result = this } @@ -1028,13 +1110,13 @@ module CryptographyBase Input> { super.properties(key, value, location) or // [ALWAYS_KNOWN] - unknown case is handled in `getCipherStructureTypeString` - key = "structure" and + key = "Structure" and getCipherStructureTypeString(this.getCipherStructure()) = value and location instanceof UnknownLocation or ( // [KNOWN_OR_UNKNOWN] - key = "key_size" and + key = "KeySize" and if exists(this.getKeySize(location)) then value = this.getKeySize(location) else ( From 04f46833991dffedfb91d425cba61dc4146b6fac Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 27 Feb 2025 05:42:02 +0100 Subject: [PATCH 031/656] Rewrite handling of known unknowns and data-flow --- java/ql/lib/experimental/Quantum/JCA.qll | 344 +++-- java/ql/lib/experimental/Quantum/Language.qll | 64 +- .../src/experimental/Quantum/ReusedNonce.ql | 14 +- .../ql/src/experimental/Quantum/TestCipher.ql | 14 +- .../codeql/cryptography/Model.qll | 1146 ++++++++++------- 5 files changed, 864 insertions(+), 718 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index df96a4460e2..f1e1ce9ccdc 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -66,7 +66,7 @@ module JCAModel { ) } - DataFlow::Node getInputData() { result.asExpr() = this.getArgument(0) } + DataFlow::Node getMessageArg() { result.asExpr() = this.getArgument(0) } } /** @@ -82,27 +82,137 @@ module JCAModel { module AlgorithmStringToFetchFlow = DataFlow::Global; + /** + * Note: padding and a mode of operation will only exist when the padding / mode (*and its type*) are determinable. + * This is because the mode will always be specified alongside the algorithm and never independently. + * Therefore, we can always assume that a determinable algorithm will have a determinable mode. + * + * In the case that only an algorithm is specified, e.g., "AES", the provider provides a default mode. + * + * TODO: Model the case of relying on a provider default, but alert on it as a bad practice. + */ + class CipherStringLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance, + Crypto::ModeOfOperationAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof CipherStringLiteral + { + CipherGetInstanceAlgorithmArg consumer; + + CipherStringLiteralAlgorithmInstance() { + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), DataFlow::exprNode(consumer)) + } + + CipherGetInstanceAlgorithmArg getConsumer() { result = consumer } + + override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { + result = this and exists(this.getRawModeAlgorithmName()) // TODO: provider defaults + } + + override Crypto::PaddingAlgorithmInstance getPaddingAlgorithm() { + result = this and exists(this.getRawPaddingAlgorithmName()) // TODO: provider defaults + } + + override string getRawAlgorithmName() { result = super.getValue() } + + override Crypto::TCipherType getCipherFamily() { + if this.cipherNameMappingKnown(_, super.getAlgorithmName()) + then this.cipherNameMappingKnown(result, super.getAlgorithmName()) + else result instanceof Crypto::OtherCipherType + } + + bindingset[name] + private predicate cipherNameMappingKnown(Crypto::TCipherType type, string name) { + name = "AES" and + type instanceof Crypto::AES + or + name = "DES" and + type instanceof Crypto::DES + or + name = "TripleDES" and + type instanceof Crypto::TripleDES + or + name = "IDEA" and + type instanceof Crypto::IDEA + or + name = "CAST5" and + type instanceof Crypto::CAST5 + or + name = "ChaCha20" and + type instanceof Crypto::ChaCha20 + or + name = "RC4" and + type instanceof Crypto::RC4 + or + name = "RC5" and + type instanceof Crypto::RC5 + or + name = "RSA" and + type instanceof Crypto::RSA + } + + private predicate modeToNameMappingKnown(Crypto::TBlockCipherModeOperationType type, string name) { + type instanceof Crypto::ECB and name = "ECB" + or + type instanceof Crypto::CBC and name = "CBC" + or + type instanceof Crypto::GCM and name = "GCM" + or + type instanceof Crypto::CTR and name = "CTR" + or + type instanceof Crypto::XTS and name = "XTS" + or + type instanceof Crypto::CCM and name = "CCM" + or + type instanceof Crypto::SIV and name = "SIV" + or + type instanceof Crypto::OCB and name = "OCB" + } + + override Crypto::TBlockCipherModeOperationType getModeType() { + if this.modeToNameMappingKnown(_, super.getMode()) + then this.modeToNameMappingKnown(result, super.getMode()) + else result instanceof Crypto::OtherMode + } + + override string getRawModeAlgorithmName() { result = super.getMode() } + + override string getRawPaddingAlgorithmName() { result = super.getPadding() } + + bindingset[name] + private predicate paddingToNameMappingKnown(Crypto::TPaddingType type, string name) { + type instanceof Crypto::NoPadding and name = "NOPADDING" + or + type instanceof Crypto::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? + or + type instanceof Crypto::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% + } + + override Crypto::TPaddingType getPaddingType() { + if this.paddingToNameMappingKnown(_, super.getPadding()) + then this.paddingToNameMappingKnown(result, super.getPadding()) + else result instanceof Crypto::OtherPadding + } + } + /** * The cipher algorithm argument to a `CipherGetInstanceCall`. * * For example, in `Cipher.getInstance(algorithm)`, this class represents `algorithm`. */ - class CipherGetInstanceAlgorithmArg extends Crypto::CipherAlgorithmInstance, - Crypto::BlockCipherModeOfOperationAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof Expr - { + class CipherGetInstanceAlgorithmArg extends Crypto::AlgorithmConsumer instanceof Expr { CipherGetInstanceCall call; CipherGetInstanceAlgorithmArg() { this = call.getAlgorithmArg() } - /** - * Returns the `StringLiteral` from which this argument is derived, if known. - */ - CipherStringLiteral getOrigin() { + override DataFlow::Node getInputNode() { result.asExpr() = this } + + CipherStringLiteral getOrigin(string value) { AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), - DataFlow::exprNode(this.(Expr).getAChildExpr*())) + DataFlow::exprNode(this.(Expr).getAChildExpr*())) and + value = result.getValue() } - CipherGetInstanceCall getCall() { result = call } + override Crypto::AlgorithmElement getAKnownAlgorithmSource() { + result.(CipherStringLiteralAlgorithmInstance).getConsumer() = this + } } /** @@ -144,7 +254,7 @@ module JCAModel { TUninitializedCipherModeFlowState { override Crypto::CipherOperationSubtype getCipherOperationMode() { - result instanceof Crypto::UnknownCipherOperationMode + result instanceof Crypto::UnknownCipherOperationSubtype } } @@ -200,6 +310,7 @@ module JCAModel { predicate isAdditionalFlowStep( DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 ) { + state1 = state1 and node1 = state2.(InitializedCipherModeFlowState).getFstNode() and node2 = state2.(InitializedCipherModeFlowState).getSndNode() } @@ -218,195 +329,40 @@ module JCAModel { class CipherOperationInstance extends Crypto::CipherOperationInstance instanceof Call { Crypto::CipherOperationSubtype mode; - Crypto::CipherAlgorithmInstance algorithm; CipherGetInstanceToCipherOperationFlow::PathNode sink; JCACipherOperationCall doFinalize; + CipherGetInstanceAlgorithmArg consumer; CipherOperationInstance() { - exists( - CipherGetInstanceToCipherOperationFlow::PathNode src, CipherGetInstanceCall getCipher, - CipherGetInstanceAlgorithmArg arg - | + exists(CipherGetInstanceToCipherOperationFlow::PathNode src, CipherGetInstanceCall getCipher | CipherGetInstanceToCipherOperationFlow::flowPath(src, sink) and src.getNode().asExpr() = getCipher and sink.getNode().asExpr() = doFinalize.getQualifier() and sink.getState().(CipherModeFlowState).getCipherOperationMode() = mode and this = doFinalize and - arg.getCall() = getCipher and - algorithm = arg + consumer = getCipher.getAlgorithmArg() ) } - override Crypto::CipherAlgorithmInstance getAlgorithm() { result = algorithm } - override Crypto::CipherOperationSubtype getCipherOperationSubtype() { result = mode } - override Crypto::NonceArtifactInstance getNonce() { - NonceArtifactToCipherInitCallFlow::flow(result.asOutputData(), - DataFlow::exprNode(sink.getState() - .(InitializedCipherModeFlowState) - .getInitCall() - .getNonceArg())) + override Crypto::ArtifactConsumer getNonceConsumer() { + result = sink.getState().(InitializedCipherModeFlowState).getInitCall().getNonceArg() } - override DataFlow::Node getInputData() { result = doFinalize.getInputData() } - } - - /** - * A block cipher mode of operation, where the mode is specified in the ALG or ALG/MODE/PADDING format. - * - * This class will only exist when the mode (*and its type*) is determinable. - * This is because the mode will always be specified alongside the algorithm and never independently. - * Therefore, we can always assume that a determinable algorithm will have a determinable mode. - * - * In the case that only an algorithm is specified, e.g., "AES", the provider provides a default mode. - * - * TODO: Model the case of relying on a provider default, but alert on it as a bad practice. - */ - class ModeOfOperation extends Crypto::ModeOfOperationAlgorithm { - CipherGetInstanceAlgorithmArg instance; - - ModeOfOperation() { - this = Crypto::TBlockCipherModeOfOperationAlgorithm(instance) and - // TODO: this currently only holds for explicitly defined modes in a string literal. - // Cases with defaults, e.g., "AES", are not yet modelled. - // For these cases, in a CBOM, the AES node would have an unknown edge to its mode child. - exists(instance.getOrigin().getMode()) + override Crypto::ArtifactConsumer getMessageConsumer() { + result = doFinalize.getMessageArg().asExpr() } - override Location getLocation() { result = instance.getLocation() } - - // In this case, the raw name is still only the /MODE/ part. - // TODO: handle defaults - override string getRawAlgorithmName() { result = instance.getOrigin().getMode() } - - private predicate modeToNameMappingKnown(Crypto::TBlockCipherModeOperationType type, string name) { - type instanceof Crypto::ECB and name = "ECB" - or - type instanceof Crypto::CBC and name = "CBC" - or - type instanceof Crypto::GCM and name = "GCM" - or - type instanceof Crypto::CTR and name = "CTR" - or - type instanceof Crypto::XTS and name = "XTS" - or - type instanceof Crypto::CCM and name = "CCM" - or - type instanceof Crypto::SIV and name = "SIV" - or - type instanceof Crypto::OCB and name = "OCB" - } - - override Crypto::TBlockCipherModeOperationType getModeType() { - if this.modeToNameMappingKnown(_, instance.getOrigin().getMode()) - then this.modeToNameMappingKnown(result, instance.getOrigin().getMode()) - else result instanceof Crypto::OtherMode - } - - CipherStringLiteral getInstance() { result = instance } - } - - class PaddingAlgorithm extends Crypto::PaddingAlgorithm { - CipherGetInstanceAlgorithmArg instance; - - PaddingAlgorithm() { - this = Crypto::TPaddingAlgorithm(instance) and - exists(instance.getOrigin().getPadding()) - } - - override Location getLocation() { result = instance.getLocation() } - - override string getRawAlgorithmName() { result = instance.getOrigin().getPadding() } - - bindingset[name] - private predicate paddingToNameMappingKnown(Crypto::TPaddingType type, string name) { - type instanceof Crypto::NoPadding and name = "NOPADDING" - or - type instanceof Crypto::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? - or - type instanceof Crypto::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% - } - - override Crypto::TPaddingType getPaddingType() { - if this.paddingToNameMappingKnown(_, instance.getOrigin().getPadding()) - then this.paddingToNameMappingKnown(result, instance.getOrigin().getPadding()) - else result instanceof Crypto::OtherPadding - } - - CipherStringLiteral getInstance() { result = instance } - } - - class EncryptionAlgorithm extends Crypto::CipherAlgorithm { - CipherStringLiteral origin; - CipherGetInstanceAlgorithmArg instance; - - EncryptionAlgorithm() { - this = Crypto::TCipherAlgorithm(instance) and - instance.getOrigin() = origin - } - - override Location getLocation() { result = instance.getLocation() } - - override Crypto::ModeOfOperationAlgorithm getModeOfOperation() { - result.(ModeOfOperation).getInstance() = origin - } - - override Crypto::PaddingAlgorithm getPadding() { - result.(PaddingAlgorithm).getInstance() = origin - } - - override Crypto::LocatableElement getOrigin(string name) { - result = origin and name = origin.toString() - } - - override string getRawAlgorithmName() { result = origin.getValue() } - - override Crypto::TCipherType getCipherFamily() { - if this.cipherNameMappingKnown(_, origin.getAlgorithmName()) - then this.cipherNameMappingKnown(result, origin.getAlgorithmName()) - else result instanceof Crypto::OtherCipherType - } - - override string getKeySize(Location location) { none() } - - bindingset[name] - private predicate cipherNameMappingKnown(Crypto::TCipherType type, string name) { - name = "AES" and - type instanceof Crypto::AES - or - name = "DES" and - type instanceof Crypto::DES - or - name = "TripleDES" and - type instanceof Crypto::TripleDES - or - name = "IDEA" and - type instanceof Crypto::IDEA - or - name = "CAST5" and - type instanceof Crypto::CAST5 - or - name = "ChaCha20" and - type instanceof Crypto::ChaCha20 - or - name = "RC4" and - type instanceof Crypto::RC4 - or - name = "RC5" and - type instanceof Crypto::RC5 - or - name = "RSA" and - type instanceof Crypto::RSA - } + override Crypto::AlgorithmConsumer getAlgorithmConsumer() { result = consumer } } /** * Initialization vectors and other nonce artifacts */ - abstract class NonceParameterInstantiation extends Crypto::NonceArtifactInstance instanceof ClassInstanceExpr + abstract class NonceParameterInstantiation extends NonceArtifactInstance instanceof ClassInstanceExpr { - override DataFlow::Node asOutputData() { result.asExpr() = this } + override DataFlow::Node getOutputNode() { result.asExpr() = this } } class IvParameterSpecInstance extends NonceParameterInstantiation { @@ -416,7 +372,9 @@ module JCAModel { .hasQualifiedName("javax.crypto.spec", "IvParameterSpec") } - override DataFlow::Node getInput() { result.asExpr() = this.(ClassInstanceExpr).getArgument(0) } + override DataFlow::Node getInputNode() { + result.asExpr() = this.(ClassInstanceExpr).getArgument(0) + } } // TODO: this also specifies the tag length for GCM @@ -427,7 +385,9 @@ module JCAModel { .hasQualifiedName("javax.crypto.spec", "GCMParameterSpec") } - override DataFlow::Node getInput() { result.asExpr() = this.(ClassInstanceExpr).getArgument(1) } + override DataFlow::Node getInputNode() { + result.asExpr() = this.(ClassInstanceExpr).getArgument(1) + } } class IvParameterSpecGetIvCall extends MethodCall { @@ -439,8 +399,8 @@ module JCAModel { module NonceArtifactToCipherInitCallConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { exists(NonceParameterInstantiation n | - src = n.asOutputData() and - not exists(IvParameterSpecGetIvCall m | n.getInput().asExpr() = m) + src = n.getOutputNode() and + not exists(IvParameterSpecGetIvCall m | n.getInputNode().asExpr() = m) ) } @@ -455,7 +415,7 @@ module JCAModel { ) or exists(NonceParameterInstantiation n | - node1 = n.getInput() and + node1 = n.getInputNode() and node2.asExpr() = n ) } @@ -482,13 +442,13 @@ module JCAModel { private predicate cipher_mode_str_to_cipher_mode_known( string mode, Crypto::CipherOperationSubtype cipher_mode ) { - mode = "ENCRYPT_MODE" and cipher_mode instanceof Crypto::EncryptionMode + mode = "ENCRYPT_MODE" and cipher_mode instanceof Crypto::EncryptionSubtype or - mode = "WRAP_MODE" and cipher_mode instanceof Crypto::WrapMode + mode = "WRAP_MODE" and cipher_mode instanceof Crypto::WrapSubtype or - mode = "DECRYPT_MODE" and cipher_mode instanceof Crypto::DecryptionMode + mode = "DECRYPT_MODE" and cipher_mode instanceof Crypto::DecryptionSubtype or - mode = "UNWRAP_MODE" and cipher_mode instanceof Crypto::UnwrapMode + mode = "UNWRAP_MODE" and cipher_mode instanceof Crypto::UnwrapSubtype } class CipherInitCall extends MethodCall { @@ -514,7 +474,7 @@ module JCAModel { Crypto::CipherOperationSubtype getCipherOperationModeType() { if cipher_mode_str_to_cipher_mode_known(this.getModeOrigin().getField().getName(), _) then cipher_mode_str_to_cipher_mode_known(this.getModeOrigin().getField().getName(), result) - else result instanceof Crypto::UnknownCipherOperationMode + else result instanceof Crypto::UnknownCipherOperationSubtype } Expr getKeyArg() { @@ -526,4 +486,16 @@ module JCAModel { this.getMethod().getParameterType(2).hasName("AlgorithmParameterSpec") } } + + class CipherInitCallNonceArgConsumer extends Crypto::ArtifactConsumer instanceof Expr { + CipherInitCallNonceArgConsumer() { this = any(CipherInitCall call).getNonceArg() } + + override DataFlow::Node getInputNode() { result.asExpr() = this } + } + + class CipherInitCallKeyConsumer extends Crypto::ArtifactConsumer instanceof Expr { + CipherInitCallKeyConsumer() { this = any(CipherInitCall call).getKeyArg() } + + override DataFlow::Node getInputNode() { result.asExpr() = this } + } } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 5abac9e9462..228f21bd69b 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -39,16 +39,30 @@ final class DefaultFlowSource = SourceNode; final class DefaultRemoteFlowSource = RemoteFlowSource; -class GenericLocalDataSource extends Crypto::GenericRemoteDataSource { +class GenericLocalDataSource extends Crypto::GenericLocalDataSource { GenericLocalDataSource() { any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this } - override DataFlow::Node asOutputData() { result.asExpr() = this } + override DataFlow::Node getOutputNode() { result.asExpr() = this } - override predicate flowsTo(Crypto::ArtifactLocatableElement other) { - DataSourceToArtifactFlow::flow(this.asOutputData(), other.getInput()) + override predicate flowsTo(Crypto::FlowAwareElement other) { + GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) } + + override string getAdditionalDescription() { result = this.toString() } +} + +class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { + GenericRemoteDataSource() { any(DefaultRemoteFlowSource src).asExpr() = this } + + override DataFlow::Node getOutputNode() { result.asExpr() = this } + + override predicate flowsTo(Crypto::FlowAwareElement other) { + GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } + + override string getAdditionalDescription() { result = this.toString() } } /** @@ -56,10 +70,12 @@ class GenericLocalDataSource extends Crypto::GenericRemoteDataSource { * tied to an output node (i.e., the result of the source of randomness) */ abstract class RandomnessInstance extends Crypto::RandomNumberGenerationInstance { - override DataFlow::Node asOutputData() { result.asExpr() = this } + override DataFlow::Node getOutputNode() { result.asExpr() = this } - override predicate flowsTo(Crypto::ArtifactLocatableElement other) { - RNGToArtifactFlow::flow(this.asOutputData(), other.getInput()) + override DataFlow::Node getInputNode() { none() } // TODO: add seed + + override predicate flowsTo(Crypto::FlowAwareElement other) { + ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) } } @@ -76,34 +92,48 @@ class InsecureRandomnessInstance extends RandomnessInstance { } /** - * Random number generation artifact to other artifact flow configuration + * Artifact output to node input configuration */ -module RNGToArtifactFlowConfig implements DataFlow::ConfigSig { +module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { - source = any(Crypto::RandomNumberGenerationInstance rng).asOutputData() + source = any(Crypto::ArtifactElement artifact).getOutputNode() } predicate isSink(DataFlow::Node sink) { - sink = any(Crypto::ArtifactLocatableElement other).getInput() + sink = any(Crypto::FlowAwareElement other).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() } } -module RNGToArtifactFlow = DataFlow::Global; +module ArtifactUniversalFlow = DataFlow::Global; + +abstract class NonceArtifactInstance extends Crypto::NonceArtifactInstance { + override predicate flowsTo(Crypto::FlowAwareElement other) { + ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } +} /** - * Generic data source to artifact flow configuration + * Generic data source to node input configuration */ -module DataSourceToArtifactFlowConfig implements DataFlow::ConfigSig { +module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { - source = any(Crypto::GenericDataSourceInstance i).asOutputData() + source = any(Crypto::GenericDataSourceInstance i).getOutputNode() } predicate isSink(DataFlow::Node sink) { - sink = any(Crypto::ArtifactLocatableElement other).getInput() + sink = any(Crypto::FlowAwareElement other).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() } } -module DataSourceToArtifactFlow = DataFlow::Global; +module GenericDataSourceUniversalFlow = DataFlow::Global; // Import library-specific modeling import JCA diff --git a/java/ql/src/experimental/Quantum/ReusedNonce.ql b/java/ql/src/experimental/Quantum/ReusedNonce.ql index cb0d6ff9d61..7847781e0be 100644 --- a/java/ql/src/experimental/Quantum/ReusedNonce.ql +++ b/java/ql/src/experimental/Quantum/ReusedNonce.ql @@ -6,18 +6,16 @@ import experimental.Quantum.Language import semmle.code.java.dataflow.DataFlow -Element getNonceOrigin(Crypto::NonceArtifactInstance nonce) { +Crypto::NodeBase getNonceOrigin(Crypto::NonceNode nonce) { // TODO: this check is currently ultra hacky just for demoing - result = nonce.getInput().asExpr().(VarAccess).getVariable() + result = nonce.getSourceNode() } -from - Crypto::CipherOperationInstance op, Crypto::NonceArtifactInstance nonce1, - Crypto::NonceArtifactInstance nonce2 +from Crypto::CipherOperationNode op, Crypto::NonceNode nonce1, Crypto::NonceNode nonce2 where - op.(Expr).getEnclosingCallable().getName() = "encrypt" and - nonce1 = op.getNonce() and - nonce2 = op.getNonce() and + op.asElement().(Expr).getEnclosingCallable().getName() = "encrypt" and + nonce1 = op.getANonce() and + nonce2 = op.getANonce() and not nonce1 = nonce2 and getNonceOrigin(nonce1) = getNonceOrigin(nonce2) select op, nonce1, nonce2 diff --git a/java/ql/src/experimental/Quantum/TestCipher.ql b/java/ql/src/experimental/Quantum/TestCipher.ql index 14041cd3b22..fa04770d854 100644 --- a/java/ql/src/experimental/Quantum/TestCipher.ql +++ b/java/ql/src/experimental/Quantum/TestCipher.ql @@ -5,12 +5,12 @@ import experimental.Quantum.Language from - Crypto::CipherOperation op, Crypto::CipherAlgorithm a, Crypto::ModeOfOperationAlgorithm m, - Crypto::PaddingAlgorithm p, Crypto::Nonce nonce + Crypto::CipherOperationNode op, Crypto::CipherAlgorithmNode a, + Crypto::ModeOfOperationAlgorithmNode m, Crypto::PaddingAlgorithmNode p, Crypto::NonceNode nonce where - a = op.getAlgorithm() and + a = op.getAKnownCipherAlgorithm() and m = a.getModeOfOperation() and - p = a.getPadding() and - nonce = op.getNonce() -select op, op.getCipherOperationMode(), a, a.getRawAlgorithmName(), m, m.getRawAlgorithmName(), p, - p.getRawAlgorithmName(), nonce + p = a.getPaddingAlgorithm() and + nonce = op.getANonce() +select op, op.getCipherOperationSubtype(), a, a.getRawAlgorithmName(), m, m.getRawAlgorithmName(), + p, p.getRawAlgorithmName(), nonce diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 713c503ea65..5889e9eb5e2 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -48,7 +48,7 @@ module CryptographyBase Input> { predicate nodes_graph_impl(NodeBase node, string key, string value) { not ( // exclude certain Artifact nodes with no edges to or from them - node instanceof RandomNumberGeneration and + node instanceof RandomNumberGenerationNode and // TODO: performance? not (edges_graph_impl(node, _, _, _) or edges_graph_impl(_, node, _, _)) ) and @@ -58,7 +58,7 @@ module CryptographyBase Input> { or // CodeQL's DGML output does not include a location key = "Location" and - value = node.getLocation().toString() + value = "" // node.getLocation().toString() or // Known unknown edges should be reported as properties rather than edges node = node.getChild(key) and @@ -77,52 +77,20 @@ module CryptographyBase Input> { } /** - * All elements in the database that are mapped to nodes must extend the following classes + * An element that is flow-aware, i.e., it has an input and output node implicitly used for data flow analysis. */ - abstract class HashOperationInstance extends LocatableElement { } - - abstract class HashAlgorithmInstance extends LocatableElement { } - - abstract class KeyDerivationOperationInstance extends LocatableElement { } - - abstract class KeyDerivationAlgorithmInstance extends LocatableElement { } - - abstract class CipherOperationInstance extends LocatableElement { - abstract CipherAlgorithmInstance getAlgorithm(); - - abstract CipherOperationSubtype getCipherOperationSubtype(); - - abstract NonceArtifactInstance getNonce(); - - abstract DataFlowNode getInputData(); - } - - abstract class CipherAlgorithmInstance extends LocatableElement { } - - abstract class KeyEncapsulationOperationInstance extends LocatableElement { } - - abstract class KeyEncapsulationAlgorithmInstance extends LocatableElement { } - - abstract class EllipticCurveAlgorithmInstance extends LocatableElement { } - - // Non-standalone algorithms - abstract class BlockCipherModeOfOperationAlgorithmInstance extends LocatableElement { } - - abstract class PaddingAlgorithmInstance extends LocatableElement { } - - // Artifacts - abstract class ArtifactLocatableElement extends LocatableElement { + abstract class FlowAwareElement extends LocatableElement { /** * Gets the output node for this artifact, which should usually be the same as `this`. */ - abstract DataFlowNode asOutputData(); + abstract DataFlowNode getOutputNode(); /** * Gets the input node for this artifact. * * If `getInput` is implemented as `none()`, the artifact will not have inbound flow analysis. */ - abstract DataFlowNode getInput(); + abstract DataFlowNode getInputNode(); /** * Holds if this artifact flows to `other`. @@ -133,53 +101,227 @@ module CryptographyBase Input> { * * If `flowsTo` is implemented as `none()`, the artifact will not have outbound flow analysis. */ - abstract predicate flowsTo(ArtifactLocatableElement other); + abstract predicate flowsTo(FlowAwareElement other); } - // TODO: WARNING: - // If this overlaps with any other LocatableElement, there will be a cross-product - // This is never to be used for unknowns - abstract class GenericDataSourceInstance extends ArtifactLocatableElement { - final override DataFlowNode getInput() { none() } + /** + * An element that represents a _known_ cryptographic asset. + */ + abstract class KnownElement extends LocatableElement { + final ConsumerElement getAConsumer() { result.getAKnownSource() = this } + } - abstract string getLabel(); + /** + * An element that represents a _known_ cryptographic operation. + */ + abstract class OperationElement extends KnownElement { + /** + * Gets the consumer of algorithms associated with this operation. + */ + abstract AlgorithmConsumer getAlgorithmConsumer(); + } + + /** + * An element that represents a _known_ cryptographic algorithm. + */ + abstract class AlgorithmElement extends KnownElement { } + + /** + * An element that represents a _known_ cryptographic artifact. + */ + abstract class ArtifactElement extends KnownElement, FlowAwareElement { } + + /** + * An element that represents an _unknown_ data-source with a non-statically determinable value. + */ + abstract class GenericDataSourceInstance extends FlowAwareElement { + final override DataFlowNode getInputNode() { none() } + + abstract string getInternalType(); + + string getAdditionalDescription() { none() } } abstract class GenericConstantOrAllocationSource extends GenericDataSourceInstance { - final override string getLabel() { result = "ConstantData" } // TODO: toString of source? + final override string getInternalType() { result = "ConstantData" } // TODO: toString of source? } abstract class GenericExternalCallSource extends GenericDataSourceInstance { - final override string getLabel() { result = "ExternalCall" } // TODO: call target name or toString of source? + final override string getInternalType() { result = "ExternalCall" } // TODO: call target name or toString of source? } abstract class GenericRemoteDataSource extends GenericDataSourceInstance { - final override string getLabel() { result = "RemoteData" } // TODO: toString of source? + final override string getInternalType() { result = "RemoteData" } // TODO: toString of source? } abstract class GenericLocalDataSource extends GenericDataSourceInstance { - final override string getLabel() { result = "LocalData" } // TODO: toString of source? + final override string getInternalType() { result = "LocalData" } // TODO: toString of source? } - abstract class DigestArtifactInstance extends ArtifactLocatableElement { } + /** + * An element that consumes _known_ or _unknown_ cryptographic assets. + * + * Note that known assets are to be modeled explicitly with the `getAKnownSource` predicate, whereas + * unknown assets are modeled implicitly via flow analysis from any `GenericDataSourceInstance` to this element. + * + * A consumer can consume multiple instances and types of assets at once, e.g., both a `PaddingAlgorithm` and `CipherAlgorithm`. + */ + abstract private class ConsumerElement extends FlowAwareElement { + override predicate flowsTo(FlowAwareElement other) { none() } - abstract class KeyArtifactInstance extends ArtifactLocatableElement { } + override DataFlowNode getOutputNode() { none() } - abstract class NonceArtifactInstance extends ArtifactLocatableElement { - // no implicit outbound data-flow (only modelled in cipher operations) - override predicate flowsTo(ArtifactLocatableElement other) { none() } + GenericDataSourceInstance getAnUnknownSource() { result.flowsTo(this) } + + GenericSourceNode getAnUnknownSourceNode() { result.asElement() = this.getAnUnknownSource() } + + abstract KnownElement getAKnownSource(); + + final NodeBase getAKnownSourceNode() { result.asElement() = this.getAKnownSource() } + + final LocatableElement getAKnownOrUnknownSource() { + result = this.getAKnownSource() + or + result = this.getAnUnknownSource() + } + + NodeBase getAKnownOrUnknownSourceNode() { result.asElement() = this.getAKnownOrUnknownSource() } } - abstract class RandomNumberGenerationInstance extends ArtifactLocatableElement { - final override DataFlowNode getInput() { none() } + /** + * An element that consumes _known_ and _unknown_ values. + * + * A value consumer can consume multiple values and multiple value sources at once. + */ + abstract class ValueConsumer extends ConsumerElement { + final override KnownElement getAKnownSource() { none() } + + abstract string getAKnownValue(Location location); } + abstract class AlgorithmConsumer extends ConsumerElement { + final override KnownElement getAKnownSource() { result = this.getAKnownAlgorithmSource() } + + abstract AlgorithmElement getAKnownAlgorithmSource(); + } + + abstract class ArtifactConsumer extends ConsumerElement { + final override KnownElement getAKnownSource() { result = this.getAKnownArtifactSource() } + + final ArtifactElement getAKnownArtifactSource() { result.flowsTo(this) } + } + + abstract class CipherOperationInstance extends OperationElement { + /** + * Gets the subtype of this cipher operation, distinguishing encryption, decryption, key wrapping, and key unwrapping. + */ + abstract CipherOperationSubtype getCipherOperationSubtype(); + + /** + * Gets the consumer of nonces/IVs associated with this cipher operation. + */ + abstract ArtifactConsumer getNonceConsumer(); + + /** + * Gets the consumer of plaintext or ciphertext input associated with this cipher operation. + */ + abstract ArtifactConsumer getMessageConsumer(); + } + + abstract class CipherAlgorithmInstance extends AlgorithmElement { + /** + * Gets the raw name as it appears in source, e.g., "AES/CBC/PKCS7Padding". + * This name is not parsed or formatted. + */ + abstract string getRawAlgorithmName(); + + /** + * Gets the type of this cipher, e.g., "AES" or "ChaCha20". + */ + abstract TCipherType getCipherFamily(); + + /** + * Gets the mode of operation of this cipher, e.g., "GCM" or "CBC". + * + * IMPLEMENTATION NOTE: as a trade-off, this is not a consumer but always either an instance or unknown. + * A mode of operation is therefore assumed to always be part of the cipher algorithm itself. + */ + abstract ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm(); + + /** + * Gets the padding scheme of this cipher, e.g., "PKCS7" or "NoPadding". + * + * IMPLEMENTATION NOTE: as a trade-off, this is not a consumer but always either an instance or unknown. + * A padding algorithm is therefore assumed to always be defined as part of the cipher algorithm itself. + */ + abstract PaddingAlgorithmInstance getPaddingAlgorithm(); + } + + abstract class ModeOfOperationAlgorithmInstance extends AlgorithmElement { + /** + * Gets the type of this mode of operation, e.g., "ECB" or "CBC". + * + * When modeling a new mode of operation, use this predicate to specify the type of the mode. + * + * If a type cannot be determined, the result is `OtherMode`. + */ + abstract TBlockCipherModeOperationType getModeType(); + + /** + * Gets the isolated name as it appears in source, e.g., "CBC" in "AES/CBC/PKCS7Padding". + * + * This name should not be parsed or formatted beyond isolating the raw mode name if necessary. + */ + abstract string getRawModeAlgorithmName(); + } + + abstract class PaddingAlgorithmInstance extends AlgorithmElement { + /** + * Gets the isolated name as it appears in source, e.g., "PKCS7Padding" in "AES/CBC/PKCS7Padding". + * + * This name should not be parsed or formatted beyond isolating the raw padding name if necessary. + */ + abstract string getRawPaddingAlgorithmName(); + + /** + * Gets the type of this padding algorithm, e.g., "PKCS7" or "OAEP". + * + * When modeling a new padding algorithm, use this predicate to specify the type of the padding. + * + * If a type cannot be determined, the result is `OtherPadding`. + */ + abstract TPaddingType getPaddingType(); + } + + abstract class KeyEncapsulationOperationInstance extends LocatableElement { } + + abstract class KeyEncapsulationAlgorithmInstance extends LocatableElement { } + + abstract class EllipticCurveAlgorithmInstance extends LocatableElement { } + + abstract class HashOperationInstance extends KnownElement { } + + abstract class HashAlgorithmInstance extends KnownElement { } + + abstract class KeyDerivationOperationInstance extends KnownElement { } + + abstract class KeyDerivationAlgorithmInstance extends KnownElement { } + + // Artifacts + abstract class DigestArtifactInstance extends ArtifactElement { } + + abstract class KeyArtifactInstance extends ArtifactElement { } + + abstract class NonceArtifactInstance extends ArtifactElement { } + + abstract class RandomNumberGenerationInstance extends ArtifactElement { } + newtype TNode = // Artifacts (data that is not an operation or algorithm, e.g., a key) TDigest(DigestArtifactInstance e) or TKey(KeyArtifactInstance e) or TNonce(NonceArtifactInstance e) or - TRandomNumberGeneration(RandomNumberGenerationInstance e) or + TRandomNumberGeneration(RandomNumberGenerationInstance e) { e.flowsTo(_) } or // Operations (e.g., hashing, encryption) THashOperation(HashOperationInstance e) or TKeyDerivationOperation(KeyDerivationOperationInstance e) or @@ -193,19 +335,40 @@ module CryptographyBase Input> { TKeyEncapsulationAlgorithm(KeyEncapsulationAlgorithmInstance e) or // Non-standalone Algorithms (e.g., Mode, Padding) // TODO: need to rename this, as "mode" is getting reused in different contexts, be precise - TBlockCipherModeOfOperationAlgorithm(BlockCipherModeOfOperationAlgorithmInstance e) or + TModeOfOperationAlgorithm(ModeOfOperationAlgorithmInstance e) or TPaddingAlgorithm(PaddingAlgorithmInstance e) or // Composite and hybrid cryptosystems (e.g., RSA-OAEP used with AES, post-quantum hybrid cryptosystems) // These nodes are always parent nodes and are not modeled but rather defined via library-agnostic patterns. - TKemDemHybridCryptosystem(CipherAlgorithm dem) or // TODO, change this relation and the below ones + TKemDemHybridCryptosystem(CipherAlgorithmNode dem) or // TODO, change this relation and the below ones TKeyAgreementHybridCryptosystem(CipherAlgorithmInstance ka) or TAsymmetricEncryptionMacHybridCryptosystem(CipherAlgorithmInstance enc) or - TPostQuantumHybridCryptosystem(CipherAlgorithmInstance enc) + TPostQuantumHybridCryptosystem(CipherAlgorithmInstance enc) or + // Unknown source node + TGenericSourceNode(GenericDataSourceInstance e) { e.flowsTo(_) } /** * The base class for all cryptographic assets, such as operations and algorithms. * * Each `NodeBase` is a node in a graph of cryptographic operations, where the edges are the relationships between the nodes. + * + * A node, as opposed to a property, is a construct that can reference or be referenced by more than one node. + * For example: a key size is a single value configuring a cipher algorithm, but a single mode of operation algorithm + * can be referenced by multiple disjoint cipher algorithms. For example, even if the same key size value is reused + * for multiple cipher algorithms, the key size holds no information when devolved to that simple value, and it is + * therefore not a "construct" or "element" being reused by multiple nodes. + * + * As a rule of thumb, a node is an algorithm or the use of an algorithm (an operation), as well as structured data + * consumed by or produced by an operation or algorithm (an artifact) that represents a construct beyond its data. + * + * _Example 1_: A seed of a random number generation algorithm has meaning beyond its value, as its reuse in multiple + * random number generation algorithms is more relevant than its underlying value. In contrast, a key size is only + * relevant to analysis in terms of its underlying value. Therefore, an RNG seed is a node; a key size is not. + * + * _Example 2_: A salt for a key derivation function *is* an `ArtifactNode`. + * + * _Example 3_: The iteration count of a key derivation function is *not* a node. + * + * _Example 4_: A nonce for a cipher operation *is* an `ArtifactNode`. */ abstract class NodeBase extends TNode { /** @@ -221,12 +384,7 @@ module CryptographyBase Input> { /** * Returns the location of this node in the code. */ - abstract Location getLocation(); - - /** - * Gets the origin of this node, e.g., a string literal in source describing it. - */ - LocatableElement getOrigin(string value) { none() } + Location getLocation() { result = this.asElement().getLocation() } /** * Returns the child of this node with the given edge name. @@ -240,165 +398,109 @@ module CryptographyBase Input> { * * This predicate is overriden by derived classes to construct the graph of cryptographic operations. */ - predicate properties(string key, string value, Location location) { - key = "Origin" and - location = this.getOrigin(value).getLocation() and - not location = this.getLocation() - } + predicate properties(string key, string value, Location location) { none() } /** * Returns a parent of this node. */ final NodeBase getAParent() { result.getChild(_) = this } + + /** + * Gets the element associated with this node. + */ + abstract LocatableElement asElement(); } - class Asset = NodeBase; + /** + * A generic source node is a source of data that is not resolvable to a specific value or type. + */ + private class GenericSourceNode extends NodeBase, TGenericSourceNode { + GenericDataSourceInstance instance; + + GenericSourceNode() { this = TGenericSourceNode(instance) } + + final override string getInternalType() { result = instance.getInternalType() } + + override LocatableElement asElement() { result = instance } + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + // [ONLY_KNOWN] + key = "Description" and + value = instance.getAdditionalDescription() and + location = this.getLocation() + } + } + + class AssetNode = NodeBase; /** * An artifact is an instance of data that is used in a cryptographic operation or produced by one. */ - abstract class Artifact extends NodeBase { - /** - * Gets the artifact locatable element associated with this artifact. - * - * *Implementation note*: to avoid cross-products, the result *must* only bind to the - * `ArtifactLocatableElement` that is already associated with the node instance. - */ - abstract ArtifactLocatableElement asArtifactLocatableElement(); - + abstract class ArtifactNode extends NodeBase { /** * Gets the `Artifact` node that is the data source for this artifact. */ - final Artifact getSourceArtifact() { - result.asArtifactLocatableElement() = this.getSourceArtifactElement() - } + final NodeBase getSourceNode() { result.asElement() = this.getSourceElement() } /** * Gets the `ArtifactLocatableElement` that is the data source for this artifact. * * This predicate is equivalent to `getSourceArtifact().asArtifactLocatableElement()`. */ - final ArtifactLocatableElement getSourceArtifactElement() { - not result = this.asArtifactLocatableElement() and - result.flowsTo(this.asArtifactLocatableElement()) + final FlowAwareElement getSourceElement() { + not result = this.asElement() and result.flowsTo(this.asElement()) } + /** + * Gets a string describing the relationship between this artifact and its source. + * + * If a child class defines this predicate as `none()`, no relationship will be reported. + */ + string getSourceNodeRelationship() { result = "Source" } + override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or - // [ONLY_KNOWN] - TODO: known-unknown case handled by reporting a generic source type or unknown as a property - edgeName = "Source" and - result = this.getSourceArtifact() - } - - // TODO: document the below - final private predicate src_generic_data_source_to_label_and_loc(string label, Location location) { - exists(GenericDataSourceInstance instance | - this.getSourceArtifactElement() = instance and - instance.getLabel() = label and - instance.getLocation() = location - ) - } - - final private predicate src_artifact_to_label_and_loc(string label, Location location) { - exists(Artifact a | - this.getSourceArtifact() = a and - a.getInternalType() = label and - a.getLocation() = location - ) - } - - final private predicate source_type_property(string key, string value, Location location) { - key = "SourceType" and - if this.src_artifact_to_label_and_loc(_, _) - then this.src_artifact_to_label_and_loc(value, location) - else - if - exists(this.asArtifactLocatableElement().getInput()) and - not this.src_generic_data_source_to_label_and_loc(_, _) - then value instanceof UnknownPropertyValue and location instanceof UnknownLocation - else this.src_generic_data_source_to_label_and_loc(value, location) - } - - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) - or - this.source_type_property(key, value, location) + // [KNOWN_OR_UNKNOWN] + edgeName = this.getSourceNodeRelationship() and // only holds if not set to none() + if exists(this.getSourceNode()) then result = this.getSourceNode() else result = this } } /** * A nonce or initialization vector */ - private class NonceImpl extends Artifact, TNonce { + final class NonceNode extends ArtifactNode, TNonce { NonceArtifactInstance instance; - NonceImpl() { this = TNonce(instance) } + NonceNode() { this = TNonce(instance) } final override string getInternalType() { result = "Nonce" } - override Location getLocation() { result = instance.getLocation() } - - override ArtifactLocatableElement asArtifactLocatableElement() { result = instance } + override LocatableElement asElement() { result = instance } } - final class Nonce = NonceImpl; - /** * A source of random number generation */ - final private class RandomNumberGenerationImpl extends Artifact, TRandomNumberGeneration { + final class RandomNumberGenerationNode extends ArtifactNode, TRandomNumberGeneration { RandomNumberGenerationInstance instance; - RandomNumberGenerationImpl() { this = TRandomNumberGeneration(instance) } + RandomNumberGenerationNode() { this = TRandomNumberGeneration(instance) } final override string getInternalType() { result = "RandomNumberGeneration" } - override Location getLocation() { result = instance.getLocation() } - - override ArtifactLocatableElement asArtifactLocatableElement() { result = instance } + override LocatableElement asElement() { result = instance } } - final class RandomNumberGeneration = RandomNumberGenerationImpl; - /** * A cryptographic operation, such as hashing or encryption. */ - abstract class Operation extends Asset { - /** - * Gets the algorithm associated with this operation. - */ - abstract Algorithm getAlgorithm(); - - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) - or - /* - * TODO: Consider a case with getProperty, where an unknown value is loaded from the filesystem, - * but a default is specified as such: - * String value = getProperty("property", "default_algorithm") - * In this case, getAlgorithm *could* be resolved to default_algorithm, but in that case, the known - * unknown case, i.e., what is loaded from `property`, would not be reported at all as a known unknown. - * - * Implementation brainstorming: - * We have two cases, and we only considered one before: the case where we can't point to the known unknown. - * The new case is pointing to a known unknown, e.g., "property" loaded via getProperty. - * A potential solution is to create a known unknown node for each node type (particularly algorithms) - * and model those elements in the database to associate with that known unknown type?? - * - * - Idea: use the generic data source concept as the definition of potential known unknowns. - * flow should be tracked from them to anything that could be a "sink" that specifies the relation. - * in this case, the sink would be an instantiaition of an algorithm where the value is not resolvable. - */ - - edgeName = "Uses" and - if exists(this.getAlgorithm()) then result = this.getAlgorithm() else result = this - } - } - - abstract class Algorithm extends Asset { - final override string getInternalType() { result = this.getAlgorithmType() } + abstract class OperationNode extends AssetNode { } + abstract class AlgorithmNode extends AssetNode { /** * Gets the name of this algorithm, e.g., "AES" or "SHA". */ @@ -409,11 +511,6 @@ module CryptographyBase Input> { */ abstract string getRawAlgorithmName(); - /** - * Gets the type of this algorithm, e.g., "hash" or "key derivation". - */ - abstract string getAlgorithmType(); - override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or @@ -425,15 +522,367 @@ module CryptographyBase Input> { } } + newtype TCipherOperationSubtype = + TEncryptionMode() or + TDecryptionMode() or + TWrapMode() or + TUnwrapMode() or + TUnknownCipherOperationMode() + + abstract class CipherOperationSubtype extends TCipherOperationSubtype { + abstract string toString(); + } + + class EncryptionSubtype extends CipherOperationSubtype, TEncryptionMode { + override string toString() { result = "Encrypt" } + } + + class DecryptionSubtype extends CipherOperationSubtype, TDecryptionMode { + override string toString() { result = "Decrypt" } + } + + class WrapSubtype extends CipherOperationSubtype, TWrapMode { + override string toString() { result = "Wrap" } + } + + class UnwrapSubtype extends CipherOperationSubtype, TUnwrapMode { + override string toString() { result = "Unwrap" } + } + + class UnknownCipherOperationSubtype extends CipherOperationSubtype, TUnknownCipherOperationMode { + override string toString() { result = "Unknown" } + } + + /** + * An encryption operation that processes plaintext to generate a ciphertext. + * This operation takes an input message (plaintext) of arbitrary content and length + * and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). + */ + final class CipherOperationNode extends OperationNode, TCipherOperation { + CipherOperationInstance instance; + + CipherOperationNode() { this = TCipherOperation(instance) } + + override LocatableElement asElement() { result = instance } + + override string getInternalType() { result = "CipherOperation" } + + /** + * Gets the algorithm or unknown source nodes consumed as an algorithm associated with this operation. + */ + NodeBase getACipherAlgorithmOrUnknown() { + result = this.getAKnownCipherAlgorithm() or + result = this.asElement().(OperationElement).getAlgorithmConsumer().getAnUnknownSourceNode() + } + + /** + * Gets a known algorithm associated with this operation + */ + CipherAlgorithmNode getAKnownCipherAlgorithm() { + result = this.asElement().(OperationElement).getAlgorithmConsumer().getAKnownSourceNode() + } + + CipherOperationSubtype getCipherOperationSubtype() { + result = instance.getCipherOperationSubtype() + } + + NodeBase getANonceOrUnknown() { + result = + this.asElement().(CipherOperationInstance).getNonceConsumer().getAKnownOrUnknownSourceNode() + } + + NonceNode getANonce() { + result = this.asElement().(CipherOperationInstance).getNonceConsumer().getAKnownSourceNode() + } + + NodeBase getAMessageOrUnknown() { + result = + this.asElement() + .(CipherOperationInstance) + .getMessageConsumer() + .getAKnownOrUnknownSourceNode() + } + + override NodeBase getChild(string key) { + result = super.getChild(key) + or + // [KNOWN_OR_UNKNOWN] + key = "Algorithm" and + if exists(this.getACipherAlgorithmOrUnknown()) + then result = this.getACipherAlgorithmOrUnknown() + else result = this + or + // [KNOWN_OR_UNKNOWN] + key = "Nonce" and + if exists(this.getANonceOrUnknown()) + then result = this.getANonceOrUnknown() + else result = this + or + // [KNOWN_OR_UNKNOWN] + key = "Message" and + if exists(this.getAMessageOrUnknown()) + then result = this.getAMessageOrUnknown() + else result = this + } + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + // [ALWAYS_KNOWN] - Unknown is handled in getCipherOperationMode() + key = "Operation" and + value = this.getCipherOperationSubtype().toString() and + location = this.getLocation() + } + } + + /** + * Block cipher modes of operation algorithms + */ + newtype TBlockCipherModeOperationType = + ECB() or // Not secure, widely used + CBC() or // Vulnerable to padding oracle attacks + GCM() or // Widely used AEAD mode (TLS 1.3, SSH, IPsec) + CTR() or // Fast stream-like encryption (SSH, disk encryption) + XTS() or // Standard for full-disk encryption (BitLocker, LUKS, FileVault) + CCM() or // Used in lightweight cryptography (IoT, WPA2) + SIV() or // Misuse-resistant encryption, used in secure storage + OCB() or // Efficient AEAD mode + OtherMode() + + class ModeOfOperationAlgorithmNode extends AlgorithmNode, TModeOfOperationAlgorithm { + ModeOfOperationAlgorithmInstance instance; + + ModeOfOperationAlgorithmNode() { this = TModeOfOperationAlgorithm(instance) } + + override LocatableElement asElement() { result = instance } + + override string getInternalType() { result = "ModeOfOperation" } + + override string getRawAlgorithmName() { result = instance.getRawModeAlgorithmName() } + + /** + * Gets the type of this mode of operation, e.g., "ECB" or "CBC". + * + * When modeling a new mode of operation, use this predicate to specify the type of the mode. + * + * If a type cannot be determined, the result is `OtherMode`. + */ + TBlockCipherModeOperationType getModeType() { result = instance.getModeType() } + + bindingset[type] + final private predicate modeToNameMapping(TBlockCipherModeOperationType type, string name) { + type instanceof ECB and name = "ECB" + or + type instanceof CBC and name = "CBC" + or + type instanceof GCM and name = "GCM" + or + type instanceof CTR and name = "CTR" + or + type instanceof XTS and name = "XTS" + or + type instanceof CCM and name = "CCM" + or + type instanceof SIV and name = "SIV" + or + type instanceof OCB and name = "OCB" + or + type instanceof OtherMode and name = this.getRawAlgorithmName() + } + + override string getAlgorithmName() { this.modeToNameMapping(this.getModeType(), result) } + } + + newtype TPaddingType = + PKCS1_v1_5() or // RSA encryption/signing padding + PKCS7() or // Standard block cipher padding (PKCS5 for 8-byte blocks) + ANSI_X9_23() or // Zero-padding except last byte = padding length + NoPadding() or // Explicit no-padding + OAEP() or // RSA OAEP padding + OtherPadding() + + class PaddingAlgorithmNode extends AlgorithmNode, TPaddingAlgorithm { + PaddingAlgorithmInstance instance; + + PaddingAlgorithmNode() { this = TPaddingAlgorithm(instance) } + + override string getInternalType() { result = "PaddingAlgorithm" } + + override LocatableElement asElement() { result = instance } + + TPaddingType getPaddingType() { result = instance.getPaddingType() } + + bindingset[type] + final private predicate paddingToNameMapping(TPaddingType type, string name) { + type instanceof PKCS1_v1_5 and name = "PKCS1_v1_5" + or + type instanceof PKCS7 and name = "PKCS7" + or + type instanceof ANSI_X9_23 and name = "ANSI_X9_23" + or + type instanceof NoPadding and name = "NoPadding" + or + type instanceof OAEP and name = "OAEP" + or + type instanceof OtherPadding and name = this.getRawAlgorithmName() + } + + override string getAlgorithmName() { this.paddingToNameMapping(this.getPaddingType(), result) } + + override string getRawAlgorithmName() { result = instance.getRawPaddingAlgorithmName() } + } + + /** + * A helper type for distinguishing between block and stream ciphers. + */ + newtype TCipherStructureType = + Block() or + Stream() or + Asymmetric() or + UnknownCipherStructureType() + + private string getCipherStructureTypeString(TCipherStructureType type) { + type instanceof Block and result = "Block" + or + type instanceof Stream and result = "Stream" + or + type instanceof Asymmetric and result = "Asymmetric" + or + type instanceof UnknownCipherStructureType and result instanceof UnknownPropertyValue + } + + /** + * Symmetric algorithms + */ + newtype TCipherType = + AES() or + Camellia() or + DES() or + TripleDES() or + IDEA() or + CAST5() or + ChaCha20() or + RC4() or + RC5() or + RSA() or + OtherCipherType() + + final class CipherAlgorithmNode extends AlgorithmNode, TCipherAlgorithm { + CipherAlgorithmInstance instance; + + CipherAlgorithmNode() { this = TCipherAlgorithm(instance) } + + override LocatableElement asElement() { result = instance } + + override string getInternalType() { result = "CipherAlgorithm" } + + final TCipherStructureType getCipherStructure() { + this.cipherFamilyToNameAndStructure(this.getCipherFamily(), _, result) + } + + final override string getAlgorithmName() { + this.cipherFamilyToNameAndStructure(this.getCipherFamily(), result, _) + } + + final override string getRawAlgorithmName() { result = instance.getRawAlgorithmName() } + + /** + * Gets the key size of this cipher, e.g., "128" or "256". + */ + string getKeySize(Location location) { none() } // TODO + + /** + * Gets the type of this cipher, e.g., "AES" or "ChaCha20". + */ + TCipherType getCipherFamily() { result = instance.getCipherFamily() } + + /** + * Gets the mode of operation of this cipher, e.g., "GCM" or "CBC". + */ + ModeOfOperationAlgorithmNode getModeOfOperation() { + result.asElement() = instance.getModeOfOperationAlgorithm() + } + + /** + * Gets the padding scheme of this cipher, e.g., "PKCS7" or "NoPadding". + */ + PaddingAlgorithmNode getPaddingAlgorithm() { + result.asElement() = instance.getPaddingAlgorithm() + } + + bindingset[type] + final private predicate cipherFamilyToNameAndStructure( + TCipherType type, string name, TCipherStructureType s + ) { + type instanceof AES and name = "AES" and s = Block() + or + type instanceof Camellia and name = "Camellia" and s = Block() + or + type instanceof DES and name = "DES" and s = Block() + or + type instanceof TripleDES and name = "TripleDES" and s = Block() + or + type instanceof IDEA and name = "IDEA" and s = Block() + or + type instanceof CAST5 and name = "CAST5" and s = Block() + or + type instanceof ChaCha20 and name = "ChaCha20" and s = Stream() + or + type instanceof RC4 and name = "RC4" and s = Stream() + or + type instanceof RC5 and name = "RC5" and s = Block() + or + type instanceof RSA and name = "RSA" and s = Asymmetric() + or + type instanceof OtherCipherType and + name = this.getRawAlgorithmName() and + s = UnknownCipherStructureType() + } + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + // [KNOWN_OR_UNKNOWN] + edgeName = "Mode" and + if exists(this.getModeOfOperation()) + then result = this.getModeOfOperation() + else result = this + or + // [KNOWN_OR_UNKNOWN] + edgeName = "Padding" and + if exists(this.getPaddingAlgorithm()) + then result = this.getPaddingAlgorithm() + else result = this + } + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + // [ALWAYS_KNOWN] - unknown case is handled in `getCipherStructureTypeString` + key = "Structure" and + getCipherStructureTypeString(this.getCipherStructure()) = value and + location instanceof UnknownLocation + or + ( + // [KNOWN_OR_UNKNOWN] + key = "KeySize" and + if exists(this.getKeySize(location)) + then value = this.getKeySize(location) + else ( + value instanceof UnknownPropertyValue and location instanceof UnknownLocation + ) + ) + } + } + /** * A hashing operation that processes data to generate a hash value. * * This operation takes an input message of arbitrary content and length and produces a fixed-size * hash value as the output using a specified hashing algorithm. */ - abstract class HashOperation extends Operation, THashOperation { - abstract override HashAlgorithm getAlgorithm(); - //override string getOperationType() { result = "HashOperation" } + abstract class HashOperationNode extends OperationNode, THashOperation { + abstract HashAlgorithmNode getAlgorithm(); } newtype THashType = @@ -450,8 +899,8 @@ module CryptographyBase Input> { /** * A hashing algorithm that transforms variable-length input into a fixed-size hash value. */ - abstract class HashAlgorithm extends Algorithm, THashAlgorithm { - override string getAlgorithmType() { result = "HashAlgorithm" } + abstract class HashAlgorithmNode extends AlgorithmNode, THashAlgorithm { + override string getInternalType() { result = "HashAlgorithm" } final predicate hashTypeToNameMapping(THashType type, string name) { type instanceof MD2 and name = "MD2" @@ -539,11 +988,12 @@ module CryptographyBase Input> { /** * An operation that derives one or more keys from an input value. */ - abstract class KeyDerivationOperation extends Operation, TKeyDerivationOperation { + abstract class KeyDerivationOperationNode extends OperationNode, TKeyDerivationOperation { final override Location getLocation() { exists(LocatableElement le | this = TKeyDerivationOperation(le) and result = le.getLocation()) } - //override string getOperationType() { result = "KeyDerivationOperation" } + + override string getInternalType() { result = "KeyDerivationOperation" } } /** @@ -553,12 +1003,12 @@ module CryptographyBase Input> { * * For known algorithms, use the specialized classes, e.g., `HKDF` and `PKCS12KDF`. */ - abstract class KeyDerivationAlgorithm extends Algorithm, TKeyDerivationAlgorithm { + abstract class KeyDerivationAlgorithmNode extends AlgorithmNode, TKeyDerivationAlgorithm { final override Location getLocation() { exists(LocatableElement le | this = TKeyDerivationAlgorithm(le) and result = le.getLocation()) } - override string getAlgorithmType() { result = "KeyDerivationAlgorithm" } + override string getInternalType() { result = "KeyDerivationAlgorithm" } override string getAlgorithmName() { result = this.getRawAlgorithmName() } } @@ -566,8 +1016,8 @@ module CryptographyBase Input> { /** * An algorithm that derives one or more keys from an input value, using a configurable digest algorithm. */ - abstract private class KeyDerivationWithDigestParameter extends KeyDerivationAlgorithm { - abstract HashAlgorithm getHashAlgorithm(); + abstract private class KeyDerivationWithDigestParameterNode extends KeyDerivationAlgorithmNode { + abstract HashAlgorithmNode getHashAlgorithm(); override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) @@ -583,14 +1033,14 @@ module CryptographyBase Input> { /** * HKDF key derivation function */ - abstract class HKDF extends KeyDerivationWithDigestParameter { + abstract class HKDFNode extends KeyDerivationWithDigestParameterNode { final override string getAlgorithmName() { result = "HKDF" } } /** * PBKDF2 key derivation function */ - abstract class PBKDF2 extends KeyDerivationWithDigestParameter { + abstract class PBKDF2Node extends KeyDerivationWithDigestParameterNode { final override string getAlgorithmName() { result = "PBKDF2" } /** @@ -631,7 +1081,7 @@ module CryptographyBase Input> { /** * PKCS12KDF key derivation function */ - abstract class PKCS12KDF extends KeyDerivationWithDigestParameter { + abstract class PKCS12KDF extends KeyDerivationWithDigestParameterNode { override string getAlgorithmName() { result = "PKCS12KDF" } /** @@ -685,7 +1135,7 @@ module CryptographyBase Input> { /** * scrypt key derivation function */ - abstract class SCRYPT extends KeyDerivationAlgorithm { + abstract class SCRYPT extends KeyDerivationAlgorithmNode { final override string getAlgorithmName() { result = "scrypt" } /** @@ -787,7 +1237,7 @@ module CryptographyBase Input> { ES() or OtherEllipticCurveType() - abstract class EllipticCurve extends Algorithm, TEllipticCurveAlgorithm { + abstract class EllipticCurve extends AlgorithmNode, TEllipticCurveAlgorithm { abstract string getKeySize(Location location); abstract TEllipticCurveType getCurveFamily(); @@ -822,311 +1272,7 @@ module CryptographyBase Input> { abstract override string getRawAlgorithmName(); } - newtype TCipherOperationSubtype = - TEncryptionMode() or - TDecryptionMode() or - TWrapMode() or - TUnwrapMode() or - TUnknownCipherOperationMode() - - abstract class CipherOperationSubtype extends TCipherOperationSubtype { - abstract string toString(); - } - - class EncryptionMode extends CipherOperationSubtype, TEncryptionMode { - override string toString() { result = "Encrypt" } - } - - class DecryptionMode extends CipherOperationSubtype, TDecryptionMode { - override string toString() { result = "Decrypt" } - } - - class WrapMode extends CipherOperationSubtype, TWrapMode { - override string toString() { result = "Wrap" } - } - - class UnwrapMode extends CipherOperationSubtype, TUnwrapMode { - override string toString() { result = "Unwrap" } - } - - class UnknownCipherOperationMode extends CipherOperationSubtype, TUnknownCipherOperationMode { - override string toString() { result = "Unknown" } - } - - /** - * An encryption operation that processes plaintext to generate a ciphertext. - * This operation takes an input message (plaintext) of arbitrary content and length - * and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). - */ - class CipherOperationImpl extends Operation, TCipherOperation { - CipherOperationInstance instance; - - CipherOperationImpl() { this = TCipherOperation(instance) } - - override string getInternalType() { result = "CipherOperation" } - - override Location getLocation() { result = instance.getLocation() } - - CipherOperationSubtype getCipherOperationMode() { - result = instance.getCipherOperationSubtype() - } - - final override CipherAlgorithm getAlgorithm() { result.getInstance() = instance.getAlgorithm() } - - override NodeBase getChild(string key) { - result = super.getChild(key) - or - // [KNOWN_OR_UNKNOWN] - key = "Nonce" and - if exists(this.getNonce()) then result = this.getNonce() else result = this - } - - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) - or - // [ALWAYS_KNOWN] - Unknown is handled in getCipherOperationMode() - key = "Operation" and - value = this.getCipherOperationMode().toString() and - location = this.getLocation() - } - - /** - * Gets the initialization vector associated with this encryption operation. - * - * This predicate does not need to hold for all encryption operations, - * as the initialization vector is not always required. - */ - Nonce getNonce() { result = TNonce(instance.getNonce()) } - - DataFlowNode getInputData() { result = instance.getInputData() } - } - - final class CipherOperation = CipherOperationImpl; - - /** - * Block cipher modes of operation algorithms - */ - newtype TBlockCipherModeOperationType = - ECB() or // Not secure, widely used - CBC() or // Vulnerable to padding oracle attacks - GCM() or // Widely used AEAD mode (TLS 1.3, SSH, IPsec) - CTR() or // Fast stream-like encryption (SSH, disk encryption) - XTS() or // Standard for full-disk encryption (BitLocker, LUKS, FileVault) - CCM() or // Used in lightweight cryptography (IoT, WPA2) - SIV() or // Misuse-resistant encryption, used in secure storage - OCB() or // Efficient AEAD mode - OtherMode() - - abstract class ModeOfOperationAlgorithm extends Algorithm, TBlockCipherModeOfOperationAlgorithm { - override string getAlgorithmType() { result = "ModeOfOperation" } - - /** - * Gets the type of this mode of operation, e.g., "ECB" or "CBC". - * - * When modeling a new mode of operation, use this predicate to specify the type of the mode. - * - * If a type cannot be determined, the result is `OtherMode`. - */ - abstract TBlockCipherModeOperationType getModeType(); - - bindingset[type] - final private predicate modeToNameMapping(TBlockCipherModeOperationType type, string name) { - type instanceof ECB and name = "ECB" - or - type instanceof CBC and name = "CBC" - or - type instanceof GCM and name = "GCM" - or - type instanceof CTR and name = "CTR" - or - type instanceof XTS and name = "XTS" - or - type instanceof CCM and name = "CCM" - or - type instanceof SIV and name = "SIV" - or - type instanceof OCB and name = "OCB" - or - type instanceof OtherMode and name = this.getRawAlgorithmName() - } - - override string getAlgorithmName() { this.modeToNameMapping(this.getModeType(), result) } - } - - newtype TPaddingType = - PKCS1_v1_5() or // RSA encryption/signing padding - PKCS7() or // Standard block cipher padding (PKCS5 for 8-byte blocks) - ANSI_X9_23() or // Zero-padding except last byte = padding length - NoPadding() or // Explicit no-padding - OAEP() or // RSA OAEP padding - OtherPadding() - - abstract class PaddingAlgorithm extends Algorithm, TPaddingAlgorithm { - override string getAlgorithmType() { result = "PaddingAlgorithm" } - - /** - * Gets the type of this padding algorithm, e.g., "PKCS7" or "OAEP". - * - * When modeling a new padding algorithm, use this predicate to specify the type of the padding. - * - * If a type cannot be determined, the result is `OtherPadding`. - */ - abstract TPaddingType getPaddingType(); - - bindingset[type] - final private predicate paddingToNameMapping(TPaddingType type, string name) { - type instanceof PKCS1_v1_5 and name = "PKCS1_v1_5" - or - type instanceof PKCS7 and name = "PKCS7" - or - type instanceof ANSI_X9_23 and name = "ANSI_X9_23" - or - type instanceof NoPadding and name = "NoPadding" - or - type instanceof OAEP and name = "OAEP" - or - type instanceof OtherPadding and name = this.getRawAlgorithmName() - } - - override string getAlgorithmName() { this.paddingToNameMapping(this.getPaddingType(), result) } - } - - /** - * A helper type for distinguishing between block and stream ciphers. - */ - newtype TCipherStructureType = - Block() or - Stream() or - Asymmetric() or - UnknownCipherStructureType() - - private string getCipherStructureTypeString(TCipherStructureType type) { - type instanceof Block and result = "Block" - or - type instanceof Stream and result = "Stream" - or - type instanceof Asymmetric and result = "Asymmetric" - or - type instanceof UnknownCipherStructureType and result instanceof UnknownPropertyValue - } - - /** - * Symmetric algorithms - */ - newtype TCipherType = - AES() or - Camellia() or - DES() or - TripleDES() or - IDEA() or - CAST5() or - ChaCha20() or - RC4() or - RC5() or - RSA() or - OtherCipherType() - - abstract class CipherAlgorithm extends Algorithm, TCipherAlgorithm { - final LocatableElement getInstance() { this = TCipherAlgorithm(result) } - - final TCipherStructureType getCipherStructure() { - this.cipherFamilyToNameAndStructure(this.getCipherFamily(), _, result) - } - - final override string getAlgorithmName() { - this.cipherFamilyToNameAndStructure(this.getCipherFamily(), result, _) - } - - override string getAlgorithmType() { result = "CipherAlgorithm" } - - /** - * Gets the key size of this cipher, e.g., "128" or "256". - */ - abstract string getKeySize(Location location); - - /** - * Gets the type of this cipher, e.g., "AES" or "ChaCha20". - */ - abstract TCipherType getCipherFamily(); - - /** - * Gets the mode of operation of this cipher, e.g., "GCM" or "CBC". - */ - abstract ModeOfOperationAlgorithm getModeOfOperation(); - - /** - * Gets the padding scheme of this cipher, e.g., "PKCS7" or "NoPadding". - */ - abstract PaddingAlgorithm getPadding(); - - bindingset[type] - final private predicate cipherFamilyToNameAndStructure( - TCipherType type, string name, TCipherStructureType s - ) { - type instanceof AES and name = "AES" and s = Block() - or - type instanceof Camellia and name = "Camellia" and s = Block() - or - type instanceof DES and name = "DES" and s = Block() - or - type instanceof TripleDES and name = "TripleDES" and s = Block() - or - type instanceof IDEA and name = "IDEA" and s = Block() - or - type instanceof CAST5 and name = "CAST5" and s = Block() - or - type instanceof ChaCha20 and name = "ChaCha20" and s = Stream() - or - type instanceof RC4 and name = "RC4" and s = Stream() - or - type instanceof RC5 and name = "RC5" and s = Block() - or - type instanceof RSA and name = "RSA" and s = Asymmetric() - or - type instanceof OtherCipherType and - name = this.getRawAlgorithmName() and - s = UnknownCipherStructureType() - } - - //mode, padding scheme, keysize, block/stream, auth'd - //nodes = mode, padding scheme - //properties = keysize, block/stream, auth'd - //leave authd to lang specific - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) - or - // [KNOWN_OR_UNKNOWN] - edgeName = "Mode" and - if exists(this.getModeOfOperation()) - then result = this.getModeOfOperation() - else result = this - or - // [KNOWN_OR_UNKNOWN] - edgeName = "Padding" and - if exists(this.getPadding()) then result = this.getPadding() else result = this - } - - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) - or - // [ALWAYS_KNOWN] - unknown case is handled in `getCipherStructureTypeString` - key = "Structure" and - getCipherStructureTypeString(this.getCipherStructure()) = value and - location instanceof UnknownLocation - or - ( - // [KNOWN_OR_UNKNOWN] - key = "KeySize" and - if exists(this.getKeySize(location)) - then value = this.getKeySize(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - ) - } - } - - abstract class KEMAlgorithm extends TKeyEncapsulationAlgorithm, Algorithm { - final override string getAlgorithmType() { result = "KeyEncapsulationAlgorithm" } + abstract class KEMAlgorithm extends TKeyEncapsulationAlgorithm, AlgorithmNode { + final override string getInternalType() { result = "KeyEncapsulationAlgorithm" } } } From ef0614ad45d451e6f4982279230e5ba25fc050de Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 27 Feb 2025 05:45:27 +0100 Subject: [PATCH 032/656] Restore removed node location output --- shared/cryptography/codeql/cryptography/Model.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 5889e9eb5e2..2006804952a 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -58,7 +58,7 @@ module CryptographyBase Input> { or // CodeQL's DGML output does not include a location key = "Location" and - value = "" // node.getLocation().toString() + value = node.getLocation().toString() or // Known unknown edges should be reported as properties rather than edges node = node.getChild(key) and From 0354afc365a8db1fa22b917f358d32bfa047bb24 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 27 Feb 2025 15:54:38 +0100 Subject: [PATCH 033/656] Make ArtifactConsumers instances of some Artifacts TODO: refactor the interfaces --- java/ql/lib/experimental/Quantum/JCA.qll | 52 ++++++++----------- java/ql/lib/experimental/Quantum/Language.qll | 39 +++++++++++++- .../codeql/cryptography/Model.qll | 19 +++---- 3 files changed, 69 insertions(+), 41 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index f1e1ce9ccdc..4370d34ca28 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -346,7 +346,7 @@ module JCAModel { override Crypto::CipherOperationSubtype getCipherOperationSubtype() { result = mode } - override Crypto::ArtifactConsumer getNonceConsumer() { + override Crypto::NonceArtifactConsumer getNonceConsumer() { result = sink.getState().(InitializedCipherModeFlowState).getInitCall().getNonceArg() } @@ -360,9 +360,10 @@ module JCAModel { /** * Initialization vectors and other nonce artifacts */ - abstract class NonceParameterInstantiation extends NonceArtifactInstance instanceof ClassInstanceExpr - { - override DataFlow::Node getOutputNode() { result.asExpr() = this } + abstract class NonceParameterInstantiation extends ClassInstanceExpr { + DataFlow::Node getOutputNode() { result.asExpr() = this } + + abstract DataFlow::Node getInputNode(); } class IvParameterSpecInstance extends NonceParameterInstantiation { @@ -396,32 +397,25 @@ module JCAModel { } } - module NonceArtifactToCipherInitCallConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { - exists(NonceParameterInstantiation n | - src = n.getOutputNode() and - not exists(IvParameterSpecGetIvCall m | n.getInputNode().asExpr() = m) - ) - } - - predicate isSink(DataFlow::Node sink) { - exists(CipherInitCall c | c.getNonceArg() = sink.asExpr()) - } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - exists(IvParameterSpecGetIvCall m | - node1.asExpr() = m.getQualifier() and - node2.asExpr() = m - ) - or - exists(NonceParameterInstantiation n | - node1 = n.getInputNode() and - node2.asExpr() = n - ) - } + predicate additionalFlowSteps(DataFlow::Node node1, DataFlow::Node node2) { + exists(IvParameterSpecGetIvCall m | + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + or + exists(NonceParameterInstantiation n | + node1 = n.getInputNode() and + node2 = n.getOutputNode() + ) } - module NonceArtifactToCipherInitCallFlow = DataFlow::Global; + class NonceAdditionalFlowInputStep extends AdditionalFlowInputStep { + DataFlow::Node output; + + NonceAdditionalFlowInputStep() { additionalFlowSteps(this, output) } + + override DataFlow::Node getOutput() { result = output } + } /** * A data-flow configuration to track flow from a mode field access to @@ -487,7 +481,7 @@ module JCAModel { } } - class CipherInitCallNonceArgConsumer extends Crypto::ArtifactConsumer instanceof Expr { + class CipherInitCallNonceArgConsumer extends Crypto::NonceArtifactConsumer instanceof Expr { CipherInitCallNonceArgConsumer() { this = any(CipherInitCall call).getNonceArg() } override DataFlow::Node getInputNode() { result.asExpr() = this } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 228f21bd69b..a2945bb6dd3 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -65,6 +65,19 @@ class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { override string getAdditionalDescription() { result = this.toString() } } +class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { + override DataFlow::Node getOutputNode() { result.asExpr() = this } + + override predicate flowsTo(Crypto::FlowAwareElement other) { + other instanceof NonceArtifactInstance and + // limit to only nonces for now + // TODO: separate config to avoid blowing up data-flow analysis + GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } + + override string getAdditionalDescription() { result = this.toString() } +} + /** * Random number generation, where each instance is modelled as the expression * tied to an output node (i.e., the result of the source of randomness) @@ -94,6 +107,12 @@ class InsecureRandomnessInstance extends RandomnessInstance { /** * Artifact output to node input configuration */ +abstract class AdditionalFlowInputStep extends DataFlow::Node { + abstract DataFlow::Node getOutput(); + + final DataFlow::Node getInput() { result = this } +} + module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source = any(Crypto::ArtifactElement artifact).getOutputNode() @@ -106,14 +125,28 @@ module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { predicate isBarrierIn(DataFlow::Node node) { node = any(Crypto::FlowAwareElement element).getOutputNode() } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + } } module ArtifactUniversalFlow = DataFlow::Global; -abstract class NonceArtifactInstance extends Crypto::NonceArtifactInstance { +class NonceArtifactInstance extends Crypto::NonceArtifactInstance { + NonceArtifactInstance() { this instanceof Crypto::NonceArtifactConsumer } + override predicate flowsTo(Crypto::FlowAwareElement other) { ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) } + + override DataFlow::Node getOutputNode() { + result = this.(Crypto::NonceArtifactConsumer).getOutputNode() + } + + override DataFlow::Node getInputNode() { + result = this.(Crypto::NonceArtifactConsumer).getInputNode() + } } /** @@ -131,6 +164,10 @@ module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { predicate isBarrierIn(DataFlow::Node node) { node = any(Crypto::FlowAwareElement element).getOutputNode() } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + } } module GenericDataSourceUniversalFlow = DataFlow::Global; diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 2006804952a..8799bbef572 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -205,12 +205,16 @@ module CryptographyBase Input> { abstract AlgorithmElement getAKnownAlgorithmSource(); } - abstract class ArtifactConsumer extends ConsumerElement { + abstract class ArtifactConsumer extends ConsumerElement, ArtifactElement { final override KnownElement getAKnownSource() { result = this.getAKnownArtifactSource() } final ArtifactElement getAKnownArtifactSource() { result.flowsTo(this) } } + abstract class NonceArtifactConsumer extends ArtifactConsumer { + NonceArtifactInstance asNonce() { result = this } + } + abstract class CipherOperationInstance extends OperationElement { /** * Gets the subtype of this cipher operation, distinguishing encryption, decryption, key wrapping, and key unwrapping. @@ -220,7 +224,7 @@ module CryptographyBase Input> { /** * Gets the consumer of nonces/IVs associated with this cipher operation. */ - abstract ArtifactConsumer getNonceConsumer(); + abstract NonceArtifactConsumer getNonceConsumer(); /** * Gets the consumer of plaintext or ciphertext input associated with this cipher operation. @@ -586,13 +590,8 @@ module CryptographyBase Input> { result = instance.getCipherOperationSubtype() } - NodeBase getANonceOrUnknown() { - result = - this.asElement().(CipherOperationInstance).getNonceConsumer().getAKnownOrUnknownSourceNode() - } - NonceNode getANonce() { - result = this.asElement().(CipherOperationInstance).getNonceConsumer().getAKnownSourceNode() + result.asElement() = this.asElement().(CipherOperationInstance).getNonceConsumer().asNonce() } NodeBase getAMessageOrUnknown() { @@ -614,9 +613,7 @@ module CryptographyBase Input> { or // [KNOWN_OR_UNKNOWN] key = "Nonce" and - if exists(this.getANonceOrUnknown()) - then result = this.getANonceOrUnknown() - else result = this + if exists(this.getANonce()) then result = this.getANonce() else result = this or // [KNOWN_OR_UNKNOWN] key = "Message" and From cf33cf7653c0d8d902a0537bf098ad26eeb08458 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Fri, 28 Feb 2025 15:21:46 +0100 Subject: [PATCH 034/656] Add input and output nodes and fix cross product --- java/ql/lib/experimental/Quantum/JCA.qll | 42 +++-- java/ql/lib/experimental/Quantum/Language.qll | 72 ++++++--- .../codeql/cryptography/Model.qll | 147 ++++++++++++++---- 3 files changed, 196 insertions(+), 65 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 4370d34ca28..8d748772bff 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -59,14 +59,22 @@ module JCAModel { Expr getProviderArg() { result = this.getArgument(1) } } - private class JCACipherOperationCall extends Call { - JCACipherOperationCall() { + private class CipherOperationCall extends MethodCall { + CipherOperationCall() { exists(string s | s in ["doFinal", "wrap", "unwrap"] | - this.getCallee().hasQualifiedName("javax.crypto", "Cipher", s) + this.getMethod().hasQualifiedName("javax.crypto", "Cipher", s) ) } - DataFlow::Node getMessageArg() { result.asExpr() = this.getArgument(0) } + Expr getInput() { result = this.getArgument(0) } + + Expr getOutput() { + result = this.getArgument(3) + or + this.getMethod().getReturnType().hasName("byte[]") and result = this + } + + DataFlow::Node getMessageArg() { result.asExpr() = this.getInput() } } /** @@ -304,7 +312,7 @@ module JCAModel { predicate isSink(DataFlow::Node sink, FlowState state) { none() } predicate isSink(DataFlow::Node sink) { - exists(JCACipherOperationCall c | c.getQualifier() = sink.asExpr()) + exists(CipherOperationCall c | c.getQualifier() = sink.asExpr()) } predicate isAdditionalFlowStep( @@ -330,7 +338,7 @@ module JCAModel { class CipherOperationInstance extends Crypto::CipherOperationInstance instanceof Call { Crypto::CipherOperationSubtype mode; CipherGetInstanceToCipherOperationFlow::PathNode sink; - JCACipherOperationCall doFinalize; + CipherOperationCall doFinalize; CipherGetInstanceAlgorithmArg consumer; CipherOperationInstance() { @@ -350,11 +358,15 @@ module JCAModel { result = sink.getState().(InitializedCipherModeFlowState).getInitCall().getNonceArg() } - override Crypto::ArtifactConsumer getMessageConsumer() { + override Crypto::CipherInputConsumer getInputConsumer() { result = doFinalize.getMessageArg().asExpr() } override Crypto::AlgorithmConsumer getAlgorithmConsumer() { result = consumer } + + override Crypto::CipherOutputArtifactInstance getOutputArtifact() { + result = doFinalize.getOutput() + } } /** @@ -481,15 +493,27 @@ module JCAModel { } } - class CipherInitCallNonceArgConsumer extends Crypto::NonceArtifactConsumer instanceof Expr { + class CipherInitCallNonceArgConsumer extends NonceArtifactConsumer instanceof Expr { CipherInitCallNonceArgConsumer() { this = any(CipherInitCall call).getNonceArg() } override DataFlow::Node getInputNode() { result.asExpr() = this } } - class CipherInitCallKeyConsumer extends Crypto::ArtifactConsumer instanceof Expr { + class CipherInitCallKeyConsumer extends Crypto::ArtifactConsumer { CipherInitCallKeyConsumer() { this = any(CipherInitCall call).getKeyArg() } override DataFlow::Node getInputNode() { result.asExpr() = this } } + + class CipherMessageInputConsumer extends Crypto::CipherInputConsumer { + CipherMessageInputConsumer() { this = any(CipherOperationCall call).getMessageArg().asExpr() } + + override DataFlow::Node getInputNode() { result.asExpr() = this } + } + + class CipherOperationCallOutput extends CipherOutputArtifact { + CipherOperationCallOutput() { this = any(CipherOperationCall call).getOutput() } + + override DataFlow::Node getOutputNode() { result.asExpr() = this } + } } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index a2945bb6dd3..03c35100538 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -69,8 +69,6 @@ class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource insta override DataFlow::Node getOutputNode() { result.asExpr() = this } override predicate flowsTo(Crypto::FlowAwareElement other) { - other instanceof NonceArtifactInstance and - // limit to only nonces for now // TODO: separate config to avoid blowing up data-flow analysis GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) } @@ -113,29 +111,10 @@ abstract class AdditionalFlowInputStep extends DataFlow::Node { final DataFlow::Node getInput() { result = this } } -module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - source = any(Crypto::ArtifactElement artifact).getOutputNode() - } - - predicate isSink(DataFlow::Node sink) { - sink = any(Crypto::FlowAwareElement other).getInputNode() - } - - predicate isBarrierIn(DataFlow::Node node) { - node = any(Crypto::FlowAwareElement element).getOutputNode() - } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - node1.(AdditionalFlowInputStep).getOutput() = node2 - } -} - module ArtifactUniversalFlow = DataFlow::Global; -class NonceArtifactInstance extends Crypto::NonceArtifactInstance { - NonceArtifactInstance() { this instanceof Crypto::NonceArtifactConsumer } - +class NonceArtifactConsumer extends Crypto::NonceArtifactInstance instanceof Crypto::NonceArtifactConsumer +{ override predicate flowsTo(Crypto::FlowAwareElement other) { ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) } @@ -149,6 +128,27 @@ class NonceArtifactInstance extends Crypto::NonceArtifactInstance { } } +class CipherInputConsumer extends Crypto::CipherInputArtifactInstance instanceof Crypto::CipherInputConsumer +{ + override predicate flowsTo(Crypto::FlowAwareElement other) { + ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } + + override DataFlow::Node getOutputNode() { none() } + + override DataFlow::Node getInputNode() { + result = this.(Crypto::CipherInputArtifactInstance).getInputNode() + } +} + +abstract class CipherOutputArtifact extends Crypto::CipherOutputArtifactInstance { + override predicate flowsTo(Crypto::FlowAwareElement other) { + ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } + + override DataFlow::Node getInputNode() { none() } +} + /** * Generic data source to node input configuration */ @@ -161,6 +161,32 @@ module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { sink = any(Crypto::FlowAwareElement other).getInputNode() } + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + } +} + +module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::ArtifactElement artifact).getOutputNode() + } + + predicate isSink(DataFlow::Node sink) { + sink = any(Crypto::FlowAwareElement other).getInputNode() + } + + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } + predicate isBarrierIn(DataFlow::Node node) { node = any(Crypto::FlowAwareElement element).getOutputNode() } diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 8799bbef572..83111519a00 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -46,12 +46,7 @@ module CryptographyBase Input> { } predicate nodes_graph_impl(NodeBase node, string key, string value) { - not ( - // exclude certain Artifact nodes with no edges to or from them - node instanceof RandomNumberGenerationNode and - // TODO: performance? - not (edges_graph_impl(node, _, _, _) or edges_graph_impl(_, node, _, _)) - ) and + not node.isExcludedFromGraph() and ( key = "semmle.label" and value = node.toString() @@ -106,6 +101,9 @@ module CryptographyBase Input> { /** * An element that represents a _known_ cryptographic asset. + * + * CROSS PRODUCT WARNING: Do not model any *other* element that is a `FlowAwareElement` to the same + * instance in the database, as every other `KnownElement` will share that output artifact's flow. */ abstract class KnownElement extends LocatableElement { final ConsumerElement getAConsumer() { result.getAKnownSource() = this } @@ -167,25 +165,21 @@ module CryptographyBase Input> { * A consumer can consume multiple instances and types of assets at once, e.g., both a `PaddingAlgorithm` and `CipherAlgorithm`. */ abstract private class ConsumerElement extends FlowAwareElement { + abstract KnownElement getAKnownSource(); + override predicate flowsTo(FlowAwareElement other) { none() } override DataFlowNode getOutputNode() { none() } - GenericDataSourceInstance getAnUnknownSource() { result.flowsTo(this) } - - GenericSourceNode getAnUnknownSourceNode() { result.asElement() = this.getAnUnknownSource() } - - abstract KnownElement getAKnownSource(); - - final NodeBase getAKnownSourceNode() { result.asElement() = this.getAKnownSource() } - - final LocatableElement getAKnownOrUnknownSource() { - result = this.getAKnownSource() - or - result = this.getAnUnknownSource() + final GenericDataSourceInstance getAnUnknownSource() { + result.flowsTo(this) and not result = this.getAKnownSource() } - NodeBase getAKnownOrUnknownSourceNode() { result.asElement() = this.getAKnownOrUnknownSource() } + final GenericSourceNode getAnUnknownSourceNode() { + result.asElement() = this.getAnUnknownSource() + } + + final NodeBase getAKnownSourceNode() { result.asElement() = this.getAKnownSource() } } /** @@ -205,16 +199,47 @@ module CryptographyBase Input> { abstract AlgorithmElement getAKnownAlgorithmSource(); } - abstract class ArtifactConsumer extends ConsumerElement, ArtifactElement { + /** + * An `ArtifactConsumer` represents an element in code that consumes an artifact. + * + * The concept of "`ArtifactConsumer` = `ArtifactNode`" should be used for inputs, as a consumer can be directly tied + * to the artifact it receives, thereby becoming the definitive contextual source for that artifact. + * + * For example, consider a nonce artifact consumer: + * + * A `NonceArtifactConsumer` is always the `NonceArtifactInstance` itself, since data only becomes (i.e., is determined to be) + * a `NonceArtifactInstance` when it is consumed in a context that expects a nonce (e.g., an argument expecting nonce data). + * In this case, the artifact (nonce) is fully defined by the context in which it is consumed, and the consumer embodies + * that identity without the need for additional differentiation. Without the context a consumer provides, that data could + * otherwise be any other type of artifact or even simply random data. + * + * + * Architectural Implications: + * * By directly coupling a consumer with the node that receives an artifact, + * the data flow is fully transparent with the consumer itself serving only as a transparent node. + * * An artifact's properties (such as being a nonce) are not necessarily inherent; they are determined by the context in which the artifact is consumed. + * The consumer node is therefore essential in defining these properties for inputs. + * * This approach reduces ambiguity by avoiding separate notions of "artifact source" and "consumer", as the node itself encapsulates both roles. + * * Instances of nodes do not necessarily have to come from a consumer, allowing additional modelling of an artifact to occur outside of the consumer. + */ + abstract class ArtifactConsumer extends ConsumerElement { final override KnownElement getAKnownSource() { result = this.getAKnownArtifactSource() } final ArtifactElement getAKnownArtifactSource() { result.flowsTo(this) } } - abstract class NonceArtifactConsumer extends ArtifactConsumer { + abstract class NonceArtifactConsumer extends ArtifactConsumer, NonceArtifactInstance { NonceArtifactInstance asNonce() { result = this } } + abstract class CipherInputArtifactInstance extends ArtifactElement { } + + abstract class CipherInputConsumer extends ArtifactConsumer, CipherInputArtifactInstance { + CipherInputArtifactInstance asCipherInput() { result = this } + } + + abstract class CipherOutputArtifactInstance extends ArtifactElement { } + abstract class CipherOperationInstance extends OperationElement { /** * Gets the subtype of this cipher operation, distinguishing encryption, decryption, key wrapping, and key unwrapping. @@ -229,7 +254,16 @@ module CryptographyBase Input> { /** * Gets the consumer of plaintext or ciphertext input associated with this cipher operation. */ - abstract ArtifactConsumer getMessageConsumer(); + abstract CipherInputConsumer getInputConsumer(); + + /** + * Gets the output artifact of this cipher operation. + * + * Implementation guidelines: + * 1. Each unique output target should have an artifact. + * 1. Discarded outputs from intermittent calls should not be artifacts. + */ + abstract CipherOutputArtifactInstance getOutputArtifact(); } abstract class CipherAlgorithmInstance extends AlgorithmElement { @@ -325,6 +359,8 @@ module CryptographyBase Input> { TDigest(DigestArtifactInstance e) or TKey(KeyArtifactInstance e) or TNonce(NonceArtifactInstance e) or + TCipherInput(CipherInputArtifactInstance e) or + TCipherOutput(CipherOutputArtifactInstance e) or TRandomNumberGeneration(RandomNumberGenerationInstance e) { e.flowsTo(_) } or // Operations (e.g., hashing, encryption) THashOperation(HashOperationInstance e) or @@ -413,6 +449,11 @@ module CryptographyBase Input> { * Gets the element associated with this node. */ abstract LocatableElement asElement(); + + /** + * If this predicate holds, this node should be excluded from the graph. + */ + predicate isExcludedFromGraph() { none() } } /** @@ -435,6 +476,10 @@ module CryptographyBase Input> { value = instance.getAdditionalDescription() and location = this.getLocation() } + + override predicate isExcludedFromGraph() { + not exists(NodeBase other | not other = this and other.getChild(_) = this) + } } class AssetNode = NodeBase; @@ -444,9 +489,12 @@ module CryptographyBase Input> { */ abstract class ArtifactNode extends NodeBase { /** - * Gets the `Artifact` node that is the data source for this artifact. + * Gets the `ArtifactNode` or `GenericSourceNode` node that is the data source for this artifact. */ - final NodeBase getSourceNode() { result.asElement() = this.getSourceElement() } + final NodeBase getSourceNode() { + result.asElement() = this.getSourceElement() and + (result instanceof ArtifactNode or result instanceof GenericSourceNode) + } /** * Gets the `ArtifactLocatableElement` that is the data source for this artifact. @@ -486,6 +534,32 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } } + /** + * Output text from a cipher operation + */ + final class CipherOutputNode extends ArtifactNode, TCipherOutput { + CipherOutputArtifactInstance instance; + + CipherOutputNode() { this = TCipherOutput(instance) } + + final override string getInternalType() { result = "CipherOutput" } + + override LocatableElement asElement() { result = instance } + } + + /** + * Input text to a cipher operation + */ + final class CipherMessageNode extends ArtifactNode, TCipherInput { + CipherInputArtifactInstance instance; + + CipherMessageNode() { this = TCipherInput(instance) } + + final override string getInternalType() { result = "CipherMessage" } + + override LocatableElement asElement() { result = instance } + } + /** * A source of random number generation */ @@ -594,12 +668,13 @@ module CryptographyBase Input> { result.asElement() = this.asElement().(CipherOperationInstance).getNonceConsumer().asNonce() } - NodeBase getAMessageOrUnknown() { - result = - this.asElement() - .(CipherOperationInstance) - .getMessageConsumer() - .getAKnownOrUnknownSourceNode() + CipherMessageNode getAnInputArtifact() { + result.asElement() = + this.asElement().(CipherOperationInstance).getInputConsumer().asCipherInput() + } + + CipherOutputNode getAnOutputArtifact() { + result.asElement() = this.asElement().(CipherOperationInstance).getOutputArtifact() } override NodeBase getChild(string key) { @@ -616,9 +691,15 @@ module CryptographyBase Input> { if exists(this.getANonce()) then result = this.getANonce() else result = this or // [KNOWN_OR_UNKNOWN] - key = "Message" and - if exists(this.getAMessageOrUnknown()) - then result = this.getAMessageOrUnknown() + key = "InputText" and + if exists(this.getAnInputArtifact()) + then result = this.getAnInputArtifact() + else result = this + or + // [KNOWN_OR_UNKNOWN] + key = "OutputText" and + if exists(this.getAnOutputArtifact()) + then result = this.getAnOutputArtifact() else result = this } From 627790f98b1a0ebb0a724ee9f23b673276d1d04e Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Mon, 3 Mar 2025 19:06:53 +0100 Subject: [PATCH 035/656] Clean up consumer and instance interfaces --- java/ql/lib/experimental/Quantum/JCA.qll | 2 +- java/ql/lib/experimental/Quantum/Language.qll | 32 -------- .../codeql/cryptography/Model.qll | 82 +++++++++++++------ 3 files changed, 57 insertions(+), 59 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 8d748772bff..5cb7bcf23dc 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -493,7 +493,7 @@ module JCAModel { } } - class CipherInitCallNonceArgConsumer extends NonceArtifactConsumer instanceof Expr { + class CipherInitCallNonceArgConsumer extends Crypto::NonceArtifactConsumer instanceof Expr { CipherInitCallNonceArgConsumer() { this = any(CipherInitCall call).getNonceArg() } override DataFlow::Node getInputNode() { result.asExpr() = this } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 03c35100538..0e875295bd8 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -83,8 +83,6 @@ class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource insta abstract class RandomnessInstance extends Crypto::RandomNumberGenerationInstance { override DataFlow::Node getOutputNode() { result.asExpr() = this } - override DataFlow::Node getInputNode() { none() } // TODO: add seed - override predicate flowsTo(Crypto::FlowAwareElement other) { ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) } @@ -113,40 +111,10 @@ abstract class AdditionalFlowInputStep extends DataFlow::Node { module ArtifactUniversalFlow = DataFlow::Global; -class NonceArtifactConsumer extends Crypto::NonceArtifactInstance instanceof Crypto::NonceArtifactConsumer -{ - override predicate flowsTo(Crypto::FlowAwareElement other) { - ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) - } - - override DataFlow::Node getOutputNode() { - result = this.(Crypto::NonceArtifactConsumer).getOutputNode() - } - - override DataFlow::Node getInputNode() { - result = this.(Crypto::NonceArtifactConsumer).getInputNode() - } -} - -class CipherInputConsumer extends Crypto::CipherInputArtifactInstance instanceof Crypto::CipherInputConsumer -{ - override predicate flowsTo(Crypto::FlowAwareElement other) { - ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) - } - - override DataFlow::Node getOutputNode() { none() } - - override DataFlow::Node getInputNode() { - result = this.(Crypto::CipherInputArtifactInstance).getInputNode() - } -} - abstract class CipherOutputArtifact extends Crypto::CipherOutputArtifactInstance { override predicate flowsTo(Crypto::FlowAwareElement other) { ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) } - - override DataFlow::Node getInputNode() { none() } } /** diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 83111519a00..243d52cd2e6 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -45,15 +45,26 @@ module CryptographyBase Input> { ) } + NodeBase getPassthroughNodeChild(NodeBase node) { + result = node.(CipherInputNode).getChild(_) or + result = node.(NonceNode).getChild(_) + } + + predicate isPassthroughNode(NodeBase node) { + node instanceof CipherInputNode or + node instanceof NonceNode + } + predicate nodes_graph_impl(NodeBase node, string key, string value) { not node.isExcludedFromGraph() and + not isPassthroughNode(node) and ( key = "semmle.label" and value = node.toString() or // CodeQL's DGML output does not include a location key = "Location" and - value = node.getLocation().toString() + value = "" // node.getLocation().toString() or // Known unknown edges should be reported as properties rather than edges node = node.getChild(key) and @@ -66,7 +77,14 @@ module CryptographyBase Input> { predicate edges_graph_impl(NodeBase source, NodeBase target, string key, string value) { key = "semmle.label" and - target = source.getChild(value) and + exists(NodeBase directTarget | + directTarget = source.getChild(value) and + // [NodeA] ---Input--> [Passthrough] ---Source---> [NodeB] + // should get reported as [NodeA] ---Input--> [NodeB] + if isPassthroughNode(directTarget) + then target = getPassthroughNodeChild(directTarget) + else target = directTarget + ) and // Known unknowns are reported as properties rather than edges not source = target } @@ -223,23 +241,24 @@ module CryptographyBase Input> { * * Instances of nodes do not necessarily have to come from a consumer, allowing additional modelling of an artifact to occur outside of the consumer. */ abstract class ArtifactConsumer extends ConsumerElement { + /** + * Use `getAKnownArtifactSource() instead. The behaviour of these two predicates is equivalent. + */ final override KnownElement getAKnownSource() { result = this.getAKnownArtifactSource() } final ArtifactElement getAKnownArtifactSource() { result.flowsTo(this) } } - abstract class NonceArtifactConsumer extends ArtifactConsumer, NonceArtifactInstance { - NonceArtifactInstance asNonce() { result = this } + abstract class ArtifactConsumerAndInstance extends ArtifactConsumer { + final override DataFlowNode getOutputNode() { none() } + + final override predicate flowsTo(FlowAwareElement other) { none() } } - abstract class CipherInputArtifactInstance extends ArtifactElement { } - - abstract class CipherInputConsumer extends ArtifactConsumer, CipherInputArtifactInstance { - CipherInputArtifactInstance asCipherInput() { result = this } + abstract class CipherOutputArtifactInstance extends ArtifactElement { + final override DataFlowNode getInputNode() { none() } } - abstract class CipherOutputArtifactInstance extends ArtifactElement { } - abstract class CipherOperationInstance extends OperationElement { /** * Gets the subtype of this cipher operation, distinguishing encryption, decryption, key wrapping, and key unwrapping. @@ -345,21 +364,33 @@ module CryptographyBase Input> { abstract class KeyDerivationAlgorithmInstance extends KnownElement { } - // Artifacts - abstract class DigestArtifactInstance extends ArtifactElement { } + // Artifacts determined solely by the element that produces them + // Implementation guidance: these *do* need to be defined generically at the language-level + // in order for a flowsTo to be defined. At the per-modeling-instance level, extend that language-level class! + abstract class OutputArtifactElement extends ArtifactElement { + final override DataFlowNode getInputNode() { none() } + } - abstract class KeyArtifactInstance extends ArtifactElement { } + abstract class DigestArtifactInstance extends OutputArtifactElement { } - abstract class NonceArtifactInstance extends ArtifactElement { } + abstract class RandomNumberGenerationInstance extends OutputArtifactElement { } // TODO: is this an OutputArtifactElement if it takes a seed? - abstract class RandomNumberGenerationInstance extends ArtifactElement { } + // Artifacts determined solely by the consumer that consumes them are defined as consumers + // Implementation guidance: these do not need to be defined generically at the language-level + // Only the sink node needs to be defined per-modeling-instance (e.g., in JCA.qll) + abstract class NonceArtifactConsumer extends ArtifactConsumerAndInstance { } + + abstract class CipherInputConsumer extends ArtifactConsumerAndInstance { } + + // Other artifacts + abstract class KeyArtifactInstance extends ArtifactElement { } // TODO: implement and categorize newtype TNode = // Artifacts (data that is not an operation or algorithm, e.g., a key) TDigest(DigestArtifactInstance e) or TKey(KeyArtifactInstance e) or - TNonce(NonceArtifactInstance e) or - TCipherInput(CipherInputArtifactInstance e) or + TNonce(NonceArtifactConsumer e) or + TCipherInput(CipherInputConsumer e) or TCipherOutput(CipherOutputArtifactInstance e) or TRandomNumberGeneration(RandomNumberGenerationInstance e) { e.flowsTo(_) } or // Operations (e.g., hashing, encryption) @@ -525,7 +556,7 @@ module CryptographyBase Input> { * A nonce or initialization vector */ final class NonceNode extends ArtifactNode, TNonce { - NonceArtifactInstance instance; + NonceArtifactConsumer instance; NonceNode() { this = TNonce(instance) } @@ -550,12 +581,12 @@ module CryptographyBase Input> { /** * Input text to a cipher operation */ - final class CipherMessageNode extends ArtifactNode, TCipherInput { - CipherInputArtifactInstance instance; + final class CipherInputNode extends ArtifactNode, TCipherInput { + CipherInputConsumer instance; - CipherMessageNode() { this = TCipherInput(instance) } + CipherInputNode() { this = TCipherInput(instance) } - final override string getInternalType() { result = "CipherMessage" } + final override string getInternalType() { result = "CipherInput" } override LocatableElement asElement() { result = instance } } @@ -665,12 +696,11 @@ module CryptographyBase Input> { } NonceNode getANonce() { - result.asElement() = this.asElement().(CipherOperationInstance).getNonceConsumer().asNonce() + result.asElement() = this.asElement().(CipherOperationInstance).getNonceConsumer() } - CipherMessageNode getAnInputArtifact() { - result.asElement() = - this.asElement().(CipherOperationInstance).getInputConsumer().asCipherInput() + CipherInputNode getAnInputArtifact() { + result.asElement() = this.asElement().(CipherOperationInstance).getInputConsumer() } CipherOutputNode getAnOutputArtifact() { From 076f53147dc7d1598ad6d9bea6bbfe9332e317fc Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 3 Mar 2025 13:53:16 -0500 Subject: [PATCH 036/656] Proof-of-concept query for InsecureOrUnknownNonceAtOperation --- .../InsecureOrUnknownNonceAtOperation.ql | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql diff --git a/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql b/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql new file mode 100644 index 00000000000..ba43413d281 --- /dev/null +++ b/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql @@ -0,0 +1,76 @@ +/** + * @name Insecure or unknown nonce source at a cipher operation + * @id java/insecure-or-unknown-nonce-at-operation + * @kind problem + */ + +import experimental.Quantum.Language + + +from Crypto::NonceNode n, Crypto::CipherOperationNode op, Crypto::FlowAwareElement src, string msg +where + op.getANonce() = n and + ( + // Known sources cases that are not secure + src = n.getSourceElement() and + not src instanceof SecureRandomnessInstance and + msg = "Operation uses insecure nonce source $@" + + or + // Totally unknown sources (unmodeled input sources) + not exists(n.getSourceElement()) and msg = "Operation uses unknown nonce source" and src = n.asElement() + ) +select n, msg, src, src.toString() + + +// variant using instances, does not yield the same results +// from Crypto::NonceArtifactConsumer n, Crypto::CipherOperationInstance op, Crypto::FlowAwareElement src, string msg +// where +// op.getNonceConsumer() = n and +// ( +// // Known sources cases that are not secure +// src = n.getAKnownArtifactSource()and +// not src instanceof SecureRandomnessInstance and +// msg = "Operation uses insecure nonce source $@" + +// or +// // Totally unknown sources (unmodeled input sources) +// // When this occurs set src to n, just to bind it, but the output message will not report any source +// not exists(n.getAKnownArtifactSource()) and msg = "Operation uses unknown nonce source" and src = n +// ) +// select n, msg, src, src.toString() + + + + + + + + + + + + + +// NOTE: this will find all unknowns too, constants, and allocations, without needing to model them +// which is kinda nice, but accidental, since getSourceElement is not modeled for everything +// If users want to find constants or unallocated, they need to model those sources, and output the +// getSourceElement +// QUESTION: why isn't the source element a node? +// NOTE: when not all sources are modeled, if one source is secure, even if others do exist, you +// will see the nonce and operation are secure, regardless of potentially insecure IV sources +// resulting in False Negatives +// NOTE: need to have a query where the op has no Nonce + +// // Ideal query +// from Crypto::NonceNode n, Crypto::CipherOperationNode op +// where +// n = op.getANonce() and +// // n = op.getAnUnknownNonce() +// not n.asElement() instanceof SecureRandomSource +// select op, "Operation uses insecure nonce source @", n, n.toString() +// from Crypto::Nonce n, Crypto::ArtifactLocatableElement nonceSrc +// where +// n.() = nonceSrc and +// not nonceSrc instanceof SecureRandomnessInstance +// select n, nonceSrc From 14cb2bb12f879e12a0b4b99f77e8d0a78808f3a7 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 3 Mar 2025 14:42:50 -0500 Subject: [PATCH 037/656] Updates to insecure or unknown nonce at operation. --- .../InsecureOrUnknownNonceAtOperation.ql | 36 ++++++++----------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql b/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql index ba43413d281..cdeeebd5a7d 100644 --- a/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql +++ b/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql @@ -6,52 +6,47 @@ import experimental.Quantum.Language - from Crypto::NonceNode n, Crypto::CipherOperationNode op, Crypto::FlowAwareElement src, string msg where op.getANonce() = n and + // Only encryption mode is relevant for insecure nonces, consder any 'unknown' subtype + // as possibly encryption. + ( + op.getCipherOperationSubtype() instanceof Crypto::EncryptionSubtype + or + op.getCipherOperationSubtype() instanceof Crypto::WrapSubtype + or + op.getCipherOperationSubtype() instanceof Crypto::UnwrapSubtype + ) and ( // Known sources cases that are not secure src = n.getSourceElement() and - not src instanceof SecureRandomnessInstance and - msg = "Operation uses insecure nonce source $@" - + not src instanceof SecureRandomnessInstance and + msg = "Operation uses insecure nonce source $@" or // Totally unknown sources (unmodeled input sources) - not exists(n.getSourceElement()) and msg = "Operation uses unknown nonce source" and src = n.asElement() + not exists(n.getSourceElement()) and + msg = "Operation uses unknown nonce source" and + src = n.asElement() ) select n, msg, src, src.toString() - // variant using instances, does not yield the same results // from Crypto::NonceArtifactConsumer n, Crypto::CipherOperationInstance op, Crypto::FlowAwareElement src, string msg // where // op.getNonceConsumer() = n and +// TODO: only perform the query on encryption // ( // // Known sources cases that are not secure // src = n.getAKnownArtifactSource()and // not src instanceof SecureRandomnessInstance and // msg = "Operation uses insecure nonce source $@" - // or // // Totally unknown sources (unmodeled input sources) // // When this occurs set src to n, just to bind it, but the output message will not report any source // not exists(n.getAKnownArtifactSource()) and msg = "Operation uses unknown nonce source" and src = n // ) // select n, msg, src, src.toString() - - - - - - - - - - - - - // NOTE: this will find all unknowns too, constants, and allocations, without needing to model them // which is kinda nice, but accidental, since getSourceElement is not modeled for everything // If users want to find constants or unallocated, they need to model those sources, and output the @@ -61,7 +56,6 @@ select n, msg, src, src.toString() // will see the nonce and operation are secure, regardless of potentially insecure IV sources // resulting in False Negatives // NOTE: need to have a query where the op has no Nonce - // // Ideal query // from Crypto::NonceNode n, Crypto::CipherOperationNode op // where From 2ee16811267268f610c0f47e5e4887fa97b60cad Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 3 Mar 2025 15:09:27 -0500 Subject: [PATCH 038/656] Adding a proof-of-concept PossibleReusedNonce query. --- .../Quantum/PossibleReusedNonce.ql | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 java/ql/src/experimental/Quantum/PossibleReusedNonce.ql diff --git a/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql b/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql new file mode 100644 index 00000000000..fde1ef12178 --- /dev/null +++ b/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql @@ -0,0 +1,35 @@ +/** + * @name Possible Nonce Reuse: Produces false positives if reuse occurs in a source that is a re-entry point. + * @id java/possible-nonce-reuse + */ + +import experimental.Quantum.Language +import semmle.code.java.dataflow.DataFlow + +from + Crypto::CipherOperationNode op1, Crypto::CipherOperationNode op2, Crypto::NonceNode nonce1, + Crypto::NonceNode nonce2, Crypto::FlowAwareElement src1, Crypto::FlowAwareElement src2 +where + // NOTE: not looking at value of the nonce, if we knew value, it would be insecure (hard coded) + // Instead trying to find nonce sources that trace to multiple operations. + // Only looking for encryption operations, presumably if reuse for decryption either wouldn't be observable + // (the encryption happened else where) or we are able to see the encryption and decryption operation and + // reuse for encryption is the concern) + ( + op1.getCipherOperationSubtype() instanceof Crypto::EncryptionSubtype or + op1.getCipherOperationSubtype() instanceof Crypto::WrapSubtype or + op1.getCipherOperationSubtype() instanceof Crypto::UnknownCipherOperationSubtype + ) and + ( + op2.getCipherOperationSubtype() instanceof Crypto::EncryptionSubtype or + op2.getCipherOperationSubtype() instanceof Crypto::WrapSubtype or + op2.getCipherOperationSubtype() instanceof Crypto::UnknownCipherOperationSubtype + ) and + nonce1 = op1.getANonce() and + nonce2 = op2.getANonce() and + op1 != op2 and + nonce1.getSourceElement() = src1 and + nonce2.getSourceElement() = src2 and + src1 = src2 +// TODO: need to clarify that a reuse in a non-finalize is ok, need to check if 'finalize' through a modeled predicate +select op1, "Operation has a possible reused nonce with source $@", src1, src1.toString() From 8865d89fe9c381d78be44e75b3fde1519d3f1868 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 3 Mar 2025 16:51:30 -0500 Subject: [PATCH 039/656] Removing old ReusedNonce query. --- .../src/experimental/Quantum/ReusedNonce.ql | 21 ------------------- 1 file changed, 21 deletions(-) delete mode 100644 java/ql/src/experimental/Quantum/ReusedNonce.ql diff --git a/java/ql/src/experimental/Quantum/ReusedNonce.ql b/java/ql/src/experimental/Quantum/ReusedNonce.ql deleted file mode 100644 index 7847781e0be..00000000000 --- a/java/ql/src/experimental/Quantum/ReusedNonce.ql +++ /dev/null @@ -1,21 +0,0 @@ -/** - * @name Unsafe nonce source or reuse - * @id java/unsafe-nonce-source-or-reuse - */ - -import experimental.Quantum.Language -import semmle.code.java.dataflow.DataFlow - -Crypto::NodeBase getNonceOrigin(Crypto::NonceNode nonce) { - // TODO: this check is currently ultra hacky just for demoing - result = nonce.getSourceNode() -} - -from Crypto::CipherOperationNode op, Crypto::NonceNode nonce1, Crypto::NonceNode nonce2 -where - op.asElement().(Expr).getEnclosingCallable().getName() = "encrypt" and - nonce1 = op.getANonce() and - nonce2 = op.getANonce() and - not nonce1 = nonce2 and - getNonceOrigin(nonce1) = getNonceOrigin(nonce2) -select op, nonce1, nonce2 From cce5f24b3860a451dd2869798cee012faf81ec5d Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 4 Mar 2025 15:52:57 -0500 Subject: [PATCH 040/656] Initial OpenSSL modeling work. --- cpp/ql/lib/experimental/Quantum/Language.qll | 125 +- cpp/ql/lib/experimental/Quantum/OpenSSL.qll | 244 -- .../Quantum/OpenSSL/AlgorithmSource.qll | 2848 +++++++++++++++++ .../experimental/Quantum/OpenSSL/CtxFlow.qll | 82 + .../Quantum/OpenSSL/EVPCipherConsumers.qll | 25 + .../Quantum/OpenSSL/EVPCipherInitializer.qll | 153 + .../Quantum/OpenSSL/EVPCipherOperation.qll | 87 + .../experimental/Quantum/OpenSSL/OpenSSL.qll | 357 +++ 8 files changed, 3674 insertions(+), 247 deletions(-) delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmSource.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherInitializer.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index 8f400858f07..3f1d9aa9bdf 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -1,12 +1,131 @@ private import codeql.cryptography.Model +import semmle.code.cpp.ir.IR +import semmle.code.cpp.security.FlowSources as FlowSources private import cpp as Lang -module CryptoInput implements InputSig { - class LocatableElement = Lang::Locatable; +module CryptoInput implements InputSig { + class DataFlowNode = DataFlow::Node; + class LocatableElement = Lang::Locatable; class UnknownLocation = Lang::UnknownDefaultLocation; } module Crypto = CryptographyBase; -import OpenSSL +/** + * Artifact output to node input configuration + */ +abstract class AdditionalFlowInputStep extends DataFlow::Node { + abstract DataFlow::Node getOutput(); + + final DataFlow::Node getInput() { result = this } +} + + +/** + * Generic data source to node input configuration + */ +module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::GenericDataSourceInstance i).getOutputNode() + } + + predicate isSink(DataFlow::Node sink) { + sink = any(Crypto::FlowAwareElement other).getInputNode() + } + + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + } +} + + + +// TODO: I think this will be inefficient, no? +class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { + override DataFlow::Node getOutputNode() { + result.asExpr() = this + } + + override predicate flowsTo(Crypto::FlowAwareElement other) { + // TODO: separate config to avoid blowing up data-flow analysis + GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } + + override string getAdditionalDescription() { result = this.toString() } +} + +/** + * Definitions of various generic data sources + */ +// final class DefaultFlowSource = SourceNode; + +// final class DefaultRemoteFlowSource = RemoteFlowSource; + +// class GenericLocalDataSource extends Crypto::GenericLocalDataSource { +// GenericLocalDataSource() { +// any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this +// } + +// override DataFlow::Node getOutputNode() { result.asExpr() = this } + +// override predicate flowsTo(Crypto::FlowAwareElement other) { +// GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) +// } + +// override string getAdditionalDescription() { result = this.toString() } +// } + +// class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { +// GenericRemoteDataSource() { any(DefaultRemoteFlowSource src).asExpr() = this } + +// override DataFlow::Node getOutputNode() { result.asExpr() = this } + +// override predicate flowsTo(Crypto::FlowAwareElement other) { +// GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) +// } + +// override string getAdditionalDescription() { result = this.toString() } +// } + + +module GenericDataSourceUniversalFlow = DataFlow::Global; + +module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::ArtifactElement artifact).getOutputNode() + } + + predicate isSink(DataFlow::Node sink) { + sink = any(Crypto::FlowAwareElement other).getInputNode() + } + + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + } +} +module ArtifactUniversalFlow = DataFlow::Global; +abstract class CipherOutputArtifact extends Crypto::CipherOutputArtifactInstance { + override predicate flowsTo(Crypto::FlowAwareElement other) { + ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } +} + + +import OpenSSL.OpenSSL diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL.qll deleted file mode 100644 index 821fc0aec8f..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL.qll +++ /dev/null @@ -1,244 +0,0 @@ -import cpp -import semmle.code.cpp.dataflow.new.DataFlow - -module OpenSSLModel { - import Language - - /** - * Hash function references in OpenSSL. - */ - predicate hash_ref_type_mapping_known(string name, Crypto::THashType algo) { - // `ma` name has an LN_ or SN_ prefix, which we want to ignore - // capture any name after the _ prefix using regex matching - name = ["sha1", "sha160"] and algo instanceof Crypto::SHA1 - or - name = ["sha224", "sha256", "sha384", "sha512"] and algo instanceof Crypto::SHA2 - or - name = ["sha3-224", "sha3-256", "sha3-384", "sha3-512"] and algo instanceof Crypto::SHA3 - or - name = "md2" and algo instanceof Crypto::MD2 - or - name = "md4" and algo instanceof Crypto::MD4 - or - name = "md5" and algo instanceof Crypto::MD5 - or - name = "ripemd160" and algo instanceof Crypto::RIPEMD160 - or - name = "whirlpool" and algo instanceof Crypto::WHIRLPOOL - } - - predicate hash_ref_type_mapping(FunctionCallOrMacroAccess ref, string name, Crypto::THashType algo) { - name = ref.getTargetName().regexpCapture("(?:SN_|LN_|EVP_)([a-z0-9]+)", 1) and - hash_ref_type_mapping_known(name, algo) - } - - class FunctionCallOrMacroAccess extends Element { - FunctionCallOrMacroAccess() { this instanceof FunctionCall or this instanceof MacroAccess } - - string getTargetName() { - result = this.(FunctionCall).getTarget().getName() - or - result = this.(MacroAccess).getMacroName() - } - } - - class HashAlgorithmCallOrMacro extends Crypto::HashAlgorithmInstance instanceof FunctionCallOrMacroAccess - { - HashAlgorithmCallOrMacro() { hash_ref_type_mapping(this, _, _) } - - string getTargetName() { result = this.(FunctionCallOrMacroAccess).getTargetName() } - } - - class HashAlgorithm extends Crypto::HashAlgorithm { - HashAlgorithmCallOrMacro instance; - - HashAlgorithm() { this = Crypto::THashAlgorithm(instance) } - - override string getSHA2OrSHA3DigestSize(Location location) { - ( - this.getHashType() instanceof Crypto::SHA2 or - this.getHashType() instanceof Crypto::SHA3 - ) and - exists(string name | - hash_ref_type_mapping(instance, name, this.getHashType()) and - result = name.regexpFind("\\d{3}", 0, _) and - location = instance.getLocation() - ) - } - - override string getRawAlgorithmName() { result = instance.getTargetName() } - - override Crypto::THashType getHashType() { hash_ref_type_mapping(instance, _, result) } - - Element getInstance() { result = instance } - - override Location getLocation() { result = instance.getLocation() } - } - - /** - * Data-flow configuration for key derivation algorithm flow to EVP_KDF_derive. - */ - module AlgorithmToEVPKeyDeriveConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - source.asExpr() = any(KeyDerivationAlgorithm a).getInstance() - } - - predicate isSink(DataFlow::Node sink) { - exists(EVP_KDF_derive kdo | - sink.asExpr() = kdo.getCall().getAlgorithmArg() - or - sink.asExpr() = kdo.getCall().getContextArg() // via `EVP_KDF_CTX_set_params` - ) - } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - none() // TODO - } - } - - module AlgorithmToEVPKeyDeriveFlow = DataFlow::Global; - - predicate algorithm_to_EVP_KDF_derive(KeyDerivationAlgorithm algo, EVP_KDF_derive derive) { - none() - } - - /** - * Key derivation operation (e.g., `EVP_KDF_derive`) - */ - class EVP_KDF_derive_FunctionCall extends Crypto::KeyDerivationOperationInstance instanceof FunctionCall - { - EVP_KDF_derive_FunctionCall() { this.getTarget().getName() = "EVP_KDF_derive" } - - Expr getAlgorithmArg() { result = super.getArgument(3) } - - Expr getContextArg() { result = super.getArgument(0) } - } - - class EVP_KDF_derive extends Crypto::KeyDerivationOperation { - EVP_KDF_derive_FunctionCall instance; - - EVP_KDF_derive() { this = Crypto::TKeyDerivationOperation(instance) } - - override Crypto::Algorithm getAlgorithm() { algorithm_to_EVP_KDF_derive(result, this) } - - EVP_KDF_derive_FunctionCall getCall() { result = instance } - } - - /** - * Key derivation algorithm nodes - */ - abstract class KeyDerivationAlgorithm extends Crypto::KeyDerivationAlgorithm { - abstract Expr getInstance(); - } - - /** - * `EVP_KDF_fetch` returns a key derivation algorithm. - */ - class EVP_KDF_fetch_Call extends FunctionCall { - EVP_KDF_fetch_Call() { this.getTarget().getName() = "EVP_KDF_fetch" } - - Expr getAlgorithmArg() { result = this.getArgument(1) } - } - - class EVP_KDF_fetch_AlgorithmArg extends Crypto::KeyDerivationAlgorithmInstance instanceof Expr { - EVP_KDF_fetch_AlgorithmArg() { exists(EVP_KDF_fetch_Call call | this = call.getAlgorithmArg()) } - } - - predicate kdf_names(string algo) { algo = ["HKDF", "PKCS12KDF", "PBKDF2"] } - - class KDFAlgorithmStringLiteral extends StringLiteral { - KDFAlgorithmStringLiteral() { kdf_names(this.getValue().toUpperCase()) } - } - - private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KDFAlgorithmStringLiteral } - - predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof EVP_KDF_fetch_AlgorithmArg } - } - - module AlgorithmStringToFetchFlow = DataFlow::Global; - - predicate algorithmStringToKDFFetchArgFlow( - string name, KDFAlgorithmStringLiteral origin, EVP_KDF_fetch_AlgorithmArg arg - ) { - origin.getValue().toUpperCase() = name and - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) - } - - /** - * HKDF key derivation algorithm. - */ - class HKDF extends KeyDerivationAlgorithm, Crypto::HKDF { - KDFAlgorithmStringLiteral origin; - EVP_KDF_fetch_AlgorithmArg instance; - - HKDF() { - this = Crypto::TKeyDerivationAlgorithm(instance) and - algorithmStringToKDFFetchArgFlow("HKDF", origin, instance) - } - - override string getRawAlgorithmName() { result = origin.getValue() } - - override Crypto::HashAlgorithm getHashAlgorithm() { none() } - - override Crypto::LocatableElement getOrigin(string name) { - result = origin and name = origin.toString() - } - - override Expr getInstance() { result = origin } - } - - /** - * PBKDF2 key derivation algorithm. - */ - class PBKDF2 extends KeyDerivationAlgorithm, Crypto::PBKDF2 { - KDFAlgorithmStringLiteral origin; - EVP_KDF_fetch_AlgorithmArg instance; - - PBKDF2() { - this = Crypto::TKeyDerivationAlgorithm(instance) and - algorithmStringToKDFFetchArgFlow("PBKDF2", origin, instance) - } - - override string getRawAlgorithmName() { result = origin.getValue() } - - override string getIterationCount(Location location) { none() } // TODO - - override string getKeyLength(Location location) { none() } // TODO - - override Crypto::HashAlgorithm getHashAlgorithm() { none() } // TODO - - override Crypto::LocatableElement getOrigin(string name) { - result = origin and name = origin.toString() - } - - override Expr getInstance() { result = instance } - } - - /** - * PKCS12KDF key derivation algorithm. - */ - class PKCS12KDF extends KeyDerivationAlgorithm, Crypto::PKCS12KDF { - KDFAlgorithmStringLiteral origin; - EVP_KDF_fetch_AlgorithmArg instance; - - PKCS12KDF() { - this = Crypto::TKeyDerivationAlgorithm(instance) and - algorithmStringToKDFFetchArgFlow("PKCS12KDF", origin, instance) - } - - override string getRawAlgorithmName() { result = origin.getValue() } - - override string getIterationCount(Location location) { none() } // TODO - - override string getIDByte(Location location) { none() } // TODO - - override Crypto::HashAlgorithm getHashAlgorithm() { none() } // TODO - - override Crypto::LocatableElement getOrigin(string name) { - result = origin and name = origin.toString() - } - - override Expr getInstance() { result = instance } - } -} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmSource.qll new file mode 100644 index 00000000000..f409578e98d --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmSource.qll @@ -0,0 +1,2848 @@ +import cpp +import experimental.Quantum.Language +import EVPCipherConsumers + +/** + * Note: padding and a mode of operation will only exist when the padding / mode (*and its type*) are determinable. + * This is because the mode will always be specified alongside the algorithm and never independently. + * Therefore, we can always assume that a determinable algorithm will have a determinable mode. + * + * In the case that only an algorithm is specified, e.g., "AES", the provider provides a default mode. + * + * TODO: Model the case of relying on a provider default, but alert on it as a bad practice. + */ +class CipherLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance instanceof ConstantDataSource +{ + Crypto::AlgorithmConsumer consumer; // TODO: I need to make this an open SSL algorithm consumer specifically + + CipherLiteralAlgorithmInstance() { + GenericDataSourceUniversalFlow::flow(DataFlow::exprNode(this), DataFlow::exprNode(consumer)) + } + + Crypto::AlgorithmConsumer getConsumer() { result = consumer } + + override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { + none() // TODO: provider defaults + } + + override Crypto::PaddingAlgorithmInstance getPaddingAlgorithm() { none() } + + override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } + + override Crypto::TCipherType getCipherFamily() { none() } +} + +// override Crypto::TCipherType getCipherFamily() { +// if this.cipherNameMappingKnown(_, super.getAlgorithmName()) +// then this.cipherNameMappingKnown(result, super.getAlgorithmName()) +// else result instanceof Crypto::OtherCipherType +// } +// bindingset[name] +// private predicate cipherNameMappingKnown(Crypto::TCipherType type, string name) { +// name = "AES" and +// type instanceof Crypto::AES +// or +// name = "DES" and +// type instanceof Crypto::DES +// or +// name = "TripleDES" and +// type instanceof Crypto::TripleDES +// or +// name = "IDEA" and +// type instanceof Crypto::IDEA +// or +// name = "CAST5" and +// type instanceof Crypto::CAST5 +// or +// name = "ChaCha20" and +// type instanceof Crypto::ChaCha20 +// or +// name = "RC4" and +// type instanceof Crypto::RC4 +// or +// name = "RC5" and +// type instanceof Crypto::RC5 +// or +// name = "RSA" and +// type instanceof Crypto::RSA +// } +// private predicate modeToNameMappingKnown(Crypto::TBlockCipherModeOperationType type, string name) { +// type instanceof Crypto::ECB and name = "ECB" +// or +// type instanceof Crypto::CBC and name = "CBC" +// or +// type instanceof Crypto::GCM and name = "GCM" +// or +// type instanceof Crypto::CTR and name = "CTR" +// or +// type instanceof Crypto::XTS and name = "XTS" +// or +// type instanceof Crypto::CCM and name = "CCM" +// or +// type instanceof Crypto::SIV and name = "SIV" +// or +// type instanceof Crypto::OCB and name = "OCB" +// } +// override Crypto::TBlockCipherModeOperationType getModeType() { +// if this.modeToNameMappingKnown(_, super.getMode()) +// then this.modeToNameMappingKnown(result, super.getMode()) +// else result instanceof Crypto::OtherMode +// } +// override string getRawModeAlgorithmName() { result = super.getMode() } +// override string getRawPaddingAlgorithmName() { result = super.getPadding() } +// bindingset[name] +// private predicate paddingToNameMappingKnown(Crypto::TPaddingType type, string name) { +// type instanceof Crypto::NoPadding and name = "NOPADDING" +// or +// type instanceof Crypto::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? +// or +// type instanceof Crypto::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% +// } +// } +/** + * Resolves literal `e` to a known algorithm name, nid, normalized name, and algType + * if `e` resolves to a known algorithm. + * If this predicate does not hold, then `e` can be interpreted as being of `UNKNOWN` type. + */ +predicate resolveAlgorithmFromLiteral(Literal e, string normalized, string algType) { + exists(int nid | + nid = getPossibleNidFromLiteral(e) and knownOpenSSLAlgorithm(_, nid, normalized, algType) + ) + or + exists(string name | + name = resolveAlgorithmAlias(e) and knownOpenSSLAlgorithm(name, _, normalized, algType) + ) +} + +string resolveAlgorithmAlias(StringLiteral name) { + exists(string lower | lower = name.getValue().toLowerCase() | + // The result is an alias algorithm name if known + result = getAlgorithmAlias(lower) + or + // or the name is itself a known algorithm + knownOpenSSLAlgorithm(lower, _, _, _) and result = lower + ) +} + +private int getPossibleNidFromLiteral(Literal e) { + result = e.getValue().toInt() and + not e instanceof CharLiteral and + not e instanceof StringLiteral and + // ASSUMPTION, no negative numbers are allowed + // RATIONALE: this is a performance improvement to avoid having to trace every number + not exists(UnaryMinusExpr u | u.getOperand() = e) and + // OPENSSL has a special macro for getting every line, ignore it + not exists(MacroInvocation mi | mi.getExpr() = e and mi.getMacroName() = "OPENSSL_LINE") and + // Filter out cases where an int is assigned into a pointer, e.g., char* x = NULL; + not exists(Assignment a | + a.getRValue() = e and a.getLValue().getType().getUnspecifiedType() instanceof PointerType + ) and + not exists(Initializer i | + i.getExpr() = e and + i.getDeclaration().getADeclarationEntry().getUnspecifiedType() instanceof PointerType + ) and + // Filter out cases where an int is returned into a pointer, e.g., return NULL; + not exists(ReturnStmt r | + r.getExpr() = e and + r.getEnclosingFunction().getType().getUnspecifiedType() instanceof PointerType + ) +} + +string getAlgorithmAlias(string alias) { + customAliases(result, alias) + or + defaultAliases(result, alias) +} + +/** + * Finds aliases of known alagorithms defined by users (through obj_name_add and various macros pointing to this function) + * + * The `target` and `alias` are converted to lowercase to be of a standard form. + */ +predicate customAliases(string target, string alias) { + exists(Call c | c.getTarget().getName().toLowerCase() = "obj_name_add" | + target = c.getArgument(2).getValue().toLowerCase() and + alias = c.getArgument(0).getValue().toLowerCase() + ) +} + +/** + * A hard-coded mapping of known algorithm aliases in OpenSSL. + * This was derived by applying the same kind of logic foun din `customAliases` to the + * OpenSSL code base directly. + * + * The `target` and `alias` are converted to lowercase to be of a standard form. + */ +predicate defaultAliases(string target, string alias) { + alias = "aes128" and target = "aes-128-cbc" + or + alias = "aes192" and target = "aes-192-cbc" + or + alias = "aes256" and target = "aes-256-cbc" + or + alias = "aes128-wrap" and target = "id-aes128-wrap" + or + alias = "aes192-wrap" and target = "id-aes192-wrap" + or + alias = "aes256-wrap" and target = "id-aes256-wrap" + or + alias = "aes128-wrap-pad" and target = "id-aes128-wrap-pad" + or + alias = "aes192-wrap-pad" and target = "id-aes192-wrap-pad" + or + alias = "aes256-wrap-pad" and target = "id-aes256-wrap-pad" + or + alias = "aes-128-wrap" and target = "id-aes128-wrap" + or + alias = "aes-192-wrap" and target = "id-aes192-wrap" + or + alias = "aes-256-wrap" and target = "id-aes256-wrap" + or + alias = "aria128" and target = "aria-128-cbc" + or + alias = "aria192" and target = "aria-192-cbc" + or + alias = "aria256" and target = "aria-256-cbc" + or + alias = "aes128" and target = "aes-128-cbc" + or + alias = "bf" and target = "bf-cbc" + or + alias = "blowfish" and target = "bf-cbc" + or + alias = "camellia128" and target = "camellia-128-cbc" + or + alias = "camellia192" and target = "camellia-192-cbc" + or + alias = "camellia256" and target = "camellia-256-cbc" + or + alias = "cast" and target = "cast5-cbc" + or + alias = "cast-cbc" and target = "cast5-cbc" + or + alias = "des" and target = "des-cbc" + or + alias = "des-ede-ecb" and target = "des-ede" + or + alias = "des-ede3-ecb" and target = "des-ede3" + or + alias = "des3" and target = "des-ede3-cbc" + or + alias = "des3-wrap" and target = "id-smime-alg-cms3deswrap" + or + alias = "desx" and target = "desx-cbc" + or + alias = "idea" and target = "idea-cbc" + or + alias = "rc2" and target = "rc2-cbc" + or + alias = "rc2-128" and target = "rc2-cbc" + or + alias = "rc2-40" and target = "rc2-40-cbc" + or + alias = "rc2-64" and target = "rc2-64-cbc" + or + alias = "ripemd" and target = "ripemd160" + or + alias = "rmd160" and target = "ripemd160" + or + alias = "rsa-sha1-2" and target = "rsa-sha1" + or + alias = "seed" and target = "seed-cbc" + or + alias = "sm4" and target = "sm4-cbc" + or + alias = "ssl3-md5" and target = "md5" + or + alias = "ssl3-sha1" and target = "sha1" +} + +/** + * Enumeration of all known crypto algorithms for openSSL + * `name` is all lower case (caller's must ensure they pass in lower case) + * `nid` is the numeric id of the algorithm, + * `normalized` is the normalized name of the algorithm (e.g., "AES128" for "aes-128-cbc") + * `algType` is the type of algorithm (e.g., "SYMMETRIC_ENCRYPTION") + */ +predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string algType) { + name = "rsa" and nid = 19 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "prime192v1" and nid = 409 and normalized = "PRIME192V1" and algType = "ELLIPTIC_CURVE" + or + name = "prime256v1" and nid = 415 and normalized = "PRIME256V1" and algType = "ELLIPTIC_CURVE" + or + name = "pbkdf2" and nid = 69 and normalized = "PBKDF2" and algType = "KEY_DERIVATION" + or + name = "dsa" and nid = 116 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "gost2001" and nid = 811 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost2012_256" and nid = 979 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost2012_512" and nid = 980 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "ed25519" and nid = 1087 and normalized = "ED25519" and algType = "ELLIPTIC_CURVE" + or + name = "ed448" and nid = 1088 and normalized = "ED448" and algType = "ELLIPTIC_CURVE" + or + name = "md2" and nid = 3 and normalized = "MD2" and algType = "HASH" + or + name = "sha" and nid = 41 and normalized = "SHA" and algType = "HASH" + or + name = "sha1" and nid = 64 and normalized = "SHA1" and algType = "HASH" + or + name = "scrypt" and nid = 973 and normalized = "SCRYPT" and algType = "KEY_DERIVATION" + or + name = "pkcs7" and nid = 20 and normalized = "PKCS7" and algType = "SYMMETRIC_PADDING" + or + name = "md4" and nid = 257 and normalized = "MD4" and algType = "HASH" + or + name = "md5" and nid = 4 and normalized = "MD5" and algType = "HASH" + or + name = "sha224" and nid = 675 and normalized = "SHA224" and algType = "HASH" + or + name = "sha256" and nid = 672 and normalized = "SHA256" and algType = "HASH" + or + name = "sha384" and nid = 673 and normalized = "SHA384" and algType = "HASH" + or + name = "sha512" and nid = 674 and normalized = "SHA512" and algType = "HASH" + or + name = "sha512-224" and nid = 1094 and normalized = "SHA512224" and algType = "HASH" + or + name = "sha512-256" and nid = 1095 and normalized = "SHA512256" and algType = "HASH" + or + name = "sha3-224" and nid = 1096 and normalized = "SHA3224" and algType = "HASH" + or + name = "sha3-256" and nid = 1097 and normalized = "SHA3256" and algType = "HASH" + or + name = "sha3-384" and nid = 1098 and normalized = "SHA3384" and algType = "HASH" + or + name = "sha3-512" and nid = 1099 and normalized = "SHA3512" and algType = "HASH" + or + name = "shake128" and nid = 1100 and normalized = "SHAKE128" and algType = "HASH" + or + name = "shake256" and nid = 1101 and normalized = "SHAKE256" and algType = "HASH" + or + name = "mdc2" and nid = 95 and normalized = "MDC2" and algType = "HASH" + or + name = "blake2b512" and nid = 1056 and normalized = "BLAKE2B" and algType = "HASH" + or + name = "blake2s256" and nid = 1057 and normalized = "BLAKE2S" and algType = "HASH" + or + name = "sm3" and nid = 1143 and normalized = "SM3" and algType = "HASH" + or + name = "aes-128-cbc" and nid = 419 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-cbc" and nid = 419 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aes-128-ecb" and nid = 418 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-ecb" and nid = 418 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "aes-192-cbc" and nid = 423 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-cbc" and nid = 423 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aes-192-ecb" and nid = 422 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-ecb" and nid = 422 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "aes-256-cbc" and nid = 427 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-cbc" and nid = 427 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aes-256-ecb" and nid = 426 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-ecb" and nid = 426 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "aria-128-cbc" and nid = 1066 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aria-128-cbc" and nid = 1066 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-128-cfb" and nid = 1067 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aria-128-cfb" and nid = 1067 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-128-ctr" and nid = 1069 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "aria-128-ctr" and nid = 1069 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-128-ecb" and nid = 1065 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "aria-128-ecb" and nid = 1065 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-128-ofb" and nid = 1068 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "aria-128-ofb" and nid = 1068 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-128-cfb1" and nid = 1080 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aria-128-cfb1" and nid = 1080 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-128-cfb8" and nid = 1083 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-128-cfb8" and nid = 1083 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "aria-192-cbc" and nid = 1071 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aria-192-cbc" and nid = 1071 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-192-cfb" and nid = 1072 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aria-192-cfb" and nid = 1072 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-192-ctr" and nid = 1074 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "aria-192-ctr" and nid = 1074 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-192-ecb" and nid = 1070 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "aria-192-ecb" and nid = 1070 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-192-ofb" and nid = 1073 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "aria-192-ofb" and nid = 1073 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-192-cfb1" and nid = 1081 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aria-192-cfb1" and nid = 1081 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-192-cfb8" and nid = 1084 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-192-cfb8" and nid = 1084 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "aria-256-cbc" and nid = 1076 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aria-256-cbc" and nid = 1076 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-256-cfb" and nid = 1077 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aria-256-cfb" and nid = 1077 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-256-ctr" and nid = 1079 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "aria-256-ctr" and nid = 1079 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-256-ecb" and nid = 1075 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "aria-256-ecb" and nid = 1075 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-256-ofb" and nid = 1078 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "aria-256-ofb" and nid = 1078 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-256-cfb1" and nid = 1082 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aria-256-cfb1" and nid = 1082 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-256-cfb8" and nid = 1085 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-256-cfb8" and nid = 1085 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "camellia-128-cbc" and + nid = 751 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-128-cbc" and nid = 751 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "camellia-128-ecb" and + nid = 754 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-128-ecb" and nid = 754 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "camellia-192-cbc" and + nid = 752 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-192-cbc" and nid = 752 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "camellia-192-ecb" and + nid = 755 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-192-ecb" and nid = 755 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "camellia-256-cbc" and + nid = 753 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-256-cbc" and nid = 753 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "camellia-256-ecb" and + nid = 756 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-256-ecb" and nid = 756 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "rc4" and nid = 5 and normalized = "RC4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rc4-40" and nid = 97 and normalized = "RC4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ecb" and nid = 29 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ecb" and nid = 29 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "des-ede" and nid = 32 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ede3" and nid = 33 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ede3" and nid = 33 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "des-cbc" and nid = 31 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-cbc" and nid = 31 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "des-ede-cbc" and nid = 43 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ede-cbc" and nid = 43 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "des-ede-cbc" and nid = 43 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "des-ede3-cbc" and nid = 44 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ede3-cbc" and nid = 44 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "des-cfb" and nid = 30 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-cfb" and nid = 30 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "des-ede-cfb" and nid = 60 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ede-cfb" and nid = 60 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "des-ede3-cfb" and nid = 61 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ede3-cfb" and nid = 61 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "des-ofb" and nid = 45 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ofb" and nid = 45 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "des-ede-ofb" and nid = 62 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ede-ofb" and nid = 62 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "des-ede3-ofb" and nid = 63 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ede3-ofb" and nid = 63 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "idea-cbc" and nid = 34 and normalized = "IDEA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "idea-cbc" and nid = 34 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "idea-ecb" and nid = 36 and normalized = "IDEA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "idea-ecb" and nid = 36 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "idea-cfb" and nid = 35 and normalized = "IDEA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "idea-cfb" and nid = 35 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "idea-ofb" and nid = 46 and normalized = "IDEA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "idea-ofb" and nid = 46 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "seed-cbc" and nid = 777 and normalized = "SEED" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "seed-cbc" and nid = 777 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "seed-ecb" and nid = 776 and normalized = "SEED" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "seed-ecb" and nid = 776 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "seed-cfb" and nid = 779 and normalized = "SEED" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "seed-cfb" and nid = 779 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "seed-ofb" and nid = 778 and normalized = "SEED" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "seed-ofb" and nid = 778 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "rc2-cbc" and nid = 37 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rc2-cbc" and nid = 37 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "rc2-ecb" and nid = 38 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rc2-ecb" and nid = 38 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "rc2-cfb" and nid = 39 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rc2-cfb" and nid = 39 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "rc2-ofb" and nid = 40 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rc2-ofb" and nid = 40 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "rc2-64-cbc" and nid = 166 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rc2-64-cbc" and nid = 166 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "rc2-40-cbc" and nid = 98 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rc2-40-cbc" and nid = 98 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "bf-cbc" and nid = 91 and normalized = "BF" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "bf-cbc" and nid = 91 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "bf-ecb" and nid = 92 and normalized = "BF" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "bf-ecb" and nid = 92 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "bf-cfb" and nid = 93 and normalized = "BF" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "bf-cfb" and nid = 93 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "bf-ofb" and nid = 94 and normalized = "BF" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "bf-ofb" and nid = 94 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "cast5-cbc" and nid = 108 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "cast5-cbc" and nid = 108 and normalized = "CAST5" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "cast5-ecb" and nid = 109 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "cast5-ecb" and nid = 109 and normalized = "CAST5" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "cast5-cfb" and nid = 110 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "cast5-cfb" and nid = 110 and normalized = "CAST5" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "cast5-ofb" and nid = 111 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "cast5-ofb" and nid = 111 and normalized = "CAST5" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-cbc" and nid = 1134 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-cbc" and nid = 1134 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "sm4-ecb" and nid = 1133 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-ecb" and nid = 1133 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "sm4-cfb" and nid = 1137 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-cfb" and nid = 1137 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "sm4-ofb" and nid = 1135 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-ofb" and nid = 1135 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "sm4-ctr" and nid = 1139 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-ctr" and nid = 1139 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "aes-128-gcm" and nid = 895 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-gcm" and nid = 895 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "secp160r1" and nid = 709 and normalized = "SECP160R1" and algType = "ELLIPTIC_CURVE" + or + name = "ripemd160" and nid = 117 and normalized = "RIPEMD160" and algType = "HASH" + or + name = "whirlpool" and nid = 804 and normalized = "WHIRLPOOL" and algType = "HASH" + or + name = "rc5-cbc" and nid = 120 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "rc5-cbc" and nid = 120 and normalized = "RC5" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pss" and nid = 435 and normalized = "PSS" and algType = "ASYMMETRIC_PADDING" + or + name = "id-aes128-wrap" and + nid = 788 and + normalized = "AES128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes192-wrap" and + nid = 789 and + normalized = "AES192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes256-wrap" and + nid = 790 and + normalized = "AES256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes128-wrap-pad" and + nid = 897 and + normalized = "AES128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes192-wrap-pad" and + nid = 900 and + normalized = "AES192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes256-wrap-pad" and + nid = 903 and + normalized = "AES256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "chacha20" and nid = 1019 and normalized = "CHACHA20" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "secp112r1" and nid = 704 and normalized = "SECP112R1" and algType = "ELLIPTIC_CURVE" + or + name = "secp112r2" and nid = 705 and normalized = "SECP112R2" and algType = "ELLIPTIC_CURVE" + or + name = "secp128r1" and nid = 706 and normalized = "SECP128R1" and algType = "ELLIPTIC_CURVE" + or + name = "secp128r2" and nid = 707 and normalized = "SECP128R2" and algType = "ELLIPTIC_CURVE" + or + name = "secp160k1" and nid = 708 and normalized = "SECP160K1" and algType = "ELLIPTIC_CURVE" + or + name = "secp160r2" and nid = 710 and normalized = "SECP160R2" and algType = "ELLIPTIC_CURVE" + or + name = "secp192k1" and nid = 711 and normalized = "SECP192K1" and algType = "ELLIPTIC_CURVE" + or + name = "secp224k1" and nid = 712 and normalized = "SECP224K1" and algType = "ELLIPTIC_CURVE" + or + name = "secp224r1" and nid = 713 and normalized = "SECP224R1" and algType = "ELLIPTIC_CURVE" + or + name = "secp256k1" and nid = 714 and normalized = "SECP256K1" and algType = "ELLIPTIC_CURVE" + or + name = "secp384r1" and nid = 715 and normalized = "SECP384R1" and algType = "ELLIPTIC_CURVE" + or + name = "secp521r1" and nid = 716 and normalized = "SECP521R1" and algType = "ELLIPTIC_CURVE" + or + name = "prime192v2" and nid = 410 and normalized = "PRIME192V2" and algType = "ELLIPTIC_CURVE" + or + name = "prime192v3" and nid = 411 and normalized = "PRIME192V3" and algType = "ELLIPTIC_CURVE" + or + name = "prime239v1" and nid = 412 and normalized = "PRIME239V1" and algType = "ELLIPTIC_CURVE" + or + name = "prime239v2" and nid = 413 and normalized = "PRIME239V2" and algType = "ELLIPTIC_CURVE" + or + name = "prime239v3" and nid = 414 and normalized = "PRIME239V3" and algType = "ELLIPTIC_CURVE" + or + name = "sect113r1" and nid = 717 and normalized = "SECT113R1" and algType = "ELLIPTIC_CURVE" + or + name = "sect113r2" and nid = 718 and normalized = "SECT113R2" and algType = "ELLIPTIC_CURVE" + or + name = "sect131r1" and nid = 719 and normalized = "SECT131R1" and algType = "ELLIPTIC_CURVE" + or + name = "sect131r2" and nid = 720 and normalized = "SECT131R2" and algType = "ELLIPTIC_CURVE" + or + name = "sect163k1" and nid = 721 and normalized = "SECT163K1" and algType = "ELLIPTIC_CURVE" + or + name = "sect163r1" and nid = 722 and normalized = "SECT163R1" and algType = "ELLIPTIC_CURVE" + or + name = "sect163r2" and nid = 723 and normalized = "SECT163R2" and algType = "ELLIPTIC_CURVE" + or + name = "sect193r1" and nid = 724 and normalized = "SECT193R1" and algType = "ELLIPTIC_CURVE" + or + name = "sect193r2" and nid = 725 and normalized = "SECT193R2" and algType = "ELLIPTIC_CURVE" + or + name = "sect233k1" and nid = 726 and normalized = "SECT233K1" and algType = "ELLIPTIC_CURVE" + or + name = "sect233r1" and nid = 727 and normalized = "SECT233R1" and algType = "ELLIPTIC_CURVE" + or + name = "sect239k1" and nid = 728 and normalized = "SECT239K1" and algType = "ELLIPTIC_CURVE" + or + name = "sect283k1" and nid = 729 and normalized = "SECT283K1" and algType = "ELLIPTIC_CURVE" + or + name = "sect283r1" and nid = 730 and normalized = "SECT283R1" and algType = "ELLIPTIC_CURVE" + or + name = "sect409k1" and nid = 731 and normalized = "SECT409K1" and algType = "ELLIPTIC_CURVE" + or + name = "sect409r1" and nid = 732 and normalized = "SECT409R1" and algType = "ELLIPTIC_CURVE" + or + name = "sect571k1" and nid = 733 and normalized = "SECT571K1" and algType = "ELLIPTIC_CURVE" + or + name = "sect571r1" and nid = 734 and normalized = "SECT571R1" and algType = "ELLIPTIC_CURVE" + or + name = "c2pnb163v1" and nid = 684 and normalized = "C2PNB163V1" and algType = "ELLIPTIC_CURVE" + or + name = "c2pnb163v2" and nid = 685 and normalized = "C2PNB163V2" and algType = "ELLIPTIC_CURVE" + or + name = "c2pnb163v3" and nid = 686 and normalized = "C2PNB163V3" and algType = "ELLIPTIC_CURVE" + or + name = "c2pnb176v1" and nid = 687 and normalized = "C2PNB176V1" and algType = "ELLIPTIC_CURVE" + or + name = "c2tnb191v1" and nid = 688 and normalized = "C2TNB191V1" and algType = "ELLIPTIC_CURVE" + or + name = "c2tnb191v2" and nid = 689 and normalized = "C2TNB191V2" and algType = "ELLIPTIC_CURVE" + or + name = "c2tnb191v3" and nid = 690 and normalized = "C2TNB191V3" and algType = "ELLIPTIC_CURVE" + or + name = "c2pnb208w1" and nid = 693 and normalized = "C2PNB208W1" and algType = "ELLIPTIC_CURVE" + or + name = "c2tnb239v1" and nid = 694 and normalized = "C2TNB239V1" and algType = "ELLIPTIC_CURVE" + or + name = "c2tnb239v2" and nid = 695 and normalized = "C2TNB239V2" and algType = "ELLIPTIC_CURVE" + or + name = "c2tnb239v3" and nid = 696 and normalized = "C2TNB239V3" and algType = "ELLIPTIC_CURVE" + or + name = "c2pnb272w1" and nid = 699 and normalized = "C2PNB272W1" and algType = "ELLIPTIC_CURVE" + or + name = "c2pnb304w1" and nid = 700 and normalized = "C2PNB304W1" and algType = "ELLIPTIC_CURVE" + or + name = "c2tnb359v1" and nid = 701 and normalized = "C2TNB359V1" and algType = "ELLIPTIC_CURVE" + or + name = "c2pnb368w1" and nid = 702 and normalized = "C2PNB368W1" and algType = "ELLIPTIC_CURVE" + or + name = "c2tnb431r1" and nid = 703 and normalized = "C2TNB431R1" and algType = "ELLIPTIC_CURVE" + or + name = "pkcs5" and nid = 187 and normalized = "PKCS5" and algType = "KEY_DERIVATION" + or + name = "aes-256-gcm" and nid = 901 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-gcm" and nid = 901 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "chacha20-poly1305" and nid = 1018 and normalized = "POLY1305" and algType = "HASH" + or + name = "chacha20-poly1305" and + nid = 1018 and + normalized = "CHACHA20POLY1305" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "rsadsi" and nid = 1 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "pkcs7-data" and nid = 21 and normalized = "PKCS7" and algType = "SYMMETRIC_PADDING" + or + name = "desx-cbc" and nid = 80 and normalized = "DESX" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "desx-cbc" and nid = 80 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "md5-sha1" and nid = 114 and normalized = "SHA1" and algType = "HASH" + or + name = "rc5-ecb" and nid = 121 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "rc5-ecb" and nid = 121 and normalized = "RC5" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rc5-cfb" and nid = 122 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "rc5-cfb" and nid = 122 and normalized = "RC5" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rc5-ofb" and nid = 123 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "rc5-ofb" and nid = 123 and normalized = "RC5" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-alg-des40" and nid = 323 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-alg-dh-sig-hmac-sha1" and nid = 325 and normalized = "SHA1" and algType = "HASH" + or + name = "aes-128-ofb" and nid = 420 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-ofb" and nid = 420 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "aes-128-cfb" and nid = 421 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-cfb" and nid = 421 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aes-192-ofb" and nid = 424 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-ofb" and nid = 424 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "aes-192-cfb" and nid = 425 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-cfb" and nid = 425 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aes-256-ofb" and nid = 428 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-ofb" and nid = 428 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "aes-256-cfb" and nid = 429 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-cfb" and nid = 429 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "des-cdmf" and nid = 643 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-cfb1" and nid = 650 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-cfb1" and nid = 650 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aes-192-cfb1" and nid = 651 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-cfb1" and nid = 651 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aes-256-cfb1" and nid = 652 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-cfb1" and nid = 652 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "aes-128-cfb8" and nid = 653 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-cfb8" and nid = 653 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "aes-192-cfb8" and nid = 654 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-cfb8" and nid = 654 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "aes-256-cfb8" and nid = 655 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-cfb8" and nid = 655 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "des-cfb1" and nid = 656 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-cfb1" and nid = 656 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "des-cfb8" and nid = 657 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-cfb8" and nid = 657 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "des-ede3-cfb1" and nid = 658 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ede3-cfb1" and nid = 658 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "des-ede3-cfb8" and nid = 659 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "des-ede3-cfb8" and nid = 659 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "c2onb191v4" and nid = 691 and normalized = "C2ONB191V4" and algType = "ELLIPTIC_CURVE" + or + name = "c2onb191v5" and nid = 692 and normalized = "C2ONB191V5" and algType = "ELLIPTIC_CURVE" + or + name = "c2onb239v4" and nid = 697 and normalized = "C2ONB239V4" and algType = "ELLIPTIC_CURVE" + or + name = "c2onb239v5" and nid = 698 and normalized = "C2ONB239V5" and algType = "ELLIPTIC_CURVE" + or + name = "camellia-128-cfb" and + nid = 757 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-128-cfb" and nid = 757 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "camellia-192-cfb" and + nid = 758 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-192-cfb" and nid = 758 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "camellia-256-cfb" and + nid = 759 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-256-cfb" and nid = 759 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "camellia-128-cfb1" and + nid = 760 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-128-cfb1" and nid = 760 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "camellia-192-cfb1" and + nid = 761 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-192-cfb1" and nid = 761 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "camellia-256-cfb1" and + nid = 762 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-256-cfb1" and nid = 762 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "camellia-128-cfb8" and + nid = 763 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-128-cfb8" and nid = 763 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "camellia-192-cfb8" and + nid = 764 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-192-cfb8" and nid = 764 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "camellia-256-cfb8" and + nid = 765 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-256-cfb8" and nid = 765 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "camellia-128-ofb" and + nid = 766 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-128-ofb" and nid = 766 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "camellia-192-ofb" and + nid = 767 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-192-ofb" and nid = 767 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "camellia-256-ofb" and + nid = 768 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-256-ofb" and nid = 768 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "hmac-md5" and nid = 780 and normalized = "MD5" and algType = "HASH" + or + name = "hmac-sha1" and nid = 781 and normalized = "SHA1" and algType = "HASH" + or + name = "md_gost94" and nid = 809 and normalized = "GOST94" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost94" and nid = 812 and normalized = "GOST94" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost89" and nid = 813 and normalized = "GOST89" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost89-cnt" and nid = 814 and normalized = "GOST89" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost-mac" and nid = 815 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "prf-gostr3411-94" and + nid = 816 and + normalized = "GOSTR341194" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost94cc" and nid = 850 and normalized = "GOST94" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost2001cc" and nid = 851 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-ccm" and nid = 896 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-ccm" and nid = 896 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "aes-192-gcm" and nid = 898 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-gcm" and nid = 898 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "aes-192-ccm" and nid = 899 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-ccm" and nid = 899 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "aes-256-ccm" and nid = 902 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-ccm" and nid = 902 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "aes-128-ctr" and nid = 904 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-ctr" and nid = 904 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "aes-192-ctr" and nid = 905 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-ctr" and nid = 905 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "aes-256-ctr" and nid = 906 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-ctr" and nid = 906 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "id-camellia128-wrap" and + nid = 907 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-camellia192-wrap" and + nid = 908 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-camellia256-wrap" and + nid = 909 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "mgf1" and nid = 911 and normalized = "MGF1" and algType = "HASH" + or + name = "aes-128-xts" and nid = 913 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-xts" and nid = 913 and normalized = "XTS" and algType = "BLOCK_MODE" + or + name = "aes-256-xts" and nid = 914 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-xts" and nid = 914 and normalized = "XTS" and algType = "BLOCK_MODE" + or + name = "rc4-hmac-md5" and nid = 915 and normalized = "MD5" and algType = "HASH" + or + name = "rc4-hmac-md5" and nid = 915 and normalized = "RC4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-cbc-hmac-sha1" and nid = 916 and normalized = "SHA1" and algType = "HASH" + or + name = "aes-128-cbc-hmac-sha1" and + nid = 916 and + normalized = "AES128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-cbc-hmac-sha1" and nid = 916 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aes-192-cbc-hmac-sha1" and nid = 917 and normalized = "SHA1" and algType = "HASH" + or + name = "aes-192-cbc-hmac-sha1" and + nid = 917 and + normalized = "AES192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-cbc-hmac-sha1" and nid = 917 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aes-256-cbc-hmac-sha1" and + nid = 918 and + normalized = "AES256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-cbc-hmac-sha1" and nid = 918 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aes-128-cbc-hmac-sha256" and nid = 948 and normalized = "SHA256" and algType = "HASH" + or + name = "aes-128-cbc-hmac-sha256" and + nid = 948 and + normalized = "AES128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-cbc-hmac-sha256" and nid = 948 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aes-192-cbc-hmac-sha256" and nid = 949 and normalized = "SHA256" and algType = "HASH" + or + name = "aes-192-cbc-hmac-sha256" and + nid = 949 and + normalized = "AES192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-cbc-hmac-sha256" and nid = 949 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aes-256-cbc-hmac-sha256" and nid = 950 and normalized = "SHA256" and algType = "HASH" + or + name = "aes-256-cbc-hmac-sha256" and + nid = 950 and + normalized = "AES256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-cbc-hmac-sha256" and nid = 950 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "aes-128-ocb" and nid = 958 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-ocb" and nid = 959 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-ocb" and nid = 960 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-128-gcm" and + nid = 961 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-128-gcm" and nid = 961 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "camellia-128-ccm" and + nid = 962 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-128-ccm" and nid = 962 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "camellia-128-ctr" and + nid = 963 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-128-ctr" and nid = 963 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "camellia-128-cmac" and + nid = 964 and + normalized = "CAMELLIA128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-192-gcm" and + nid = 965 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-192-gcm" and nid = 965 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "camellia-192-ccm" and + nid = 966 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-192-ccm" and nid = 966 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "camellia-192-ctr" and + nid = 967 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-192-ctr" and nid = 967 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "camellia-192-cmac" and + nid = 968 and + normalized = "CAMELLIA192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-256-gcm" and + nid = 969 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-256-gcm" and nid = 969 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "camellia-256-ccm" and + nid = 970 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-256-ccm" and nid = 970 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "camellia-256-ctr" and + nid = 971 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "camellia-256-ctr" and nid = 971 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "camellia-256-cmac" and + nid = 972 and + normalized = "CAMELLIA256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-scrypt" and nid = 973 and normalized = "SCRYPT" and algType = "KEY_DERIVATION" + or + name = "gost89-cnt-12" and + nid = 975 and + normalized = "GOST89" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost-mac-12" and nid = 976 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "md_gost12_256" and nid = 982 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "md_gost12_512" and nid = 983 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-signwithdigest-gost3410-2012-256" and + nid = 985 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-signwithdigest-gost3410-2012-512" and + nid = 986 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-hmac-gost-3411-2012-256" and + nid = 988 and + normalized = "GOST34112012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-hmac-gost-3411-2012-512" and + nid = 989 and + normalized = "GOST34112012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-agreement-gost-3410-2012-256" and + nid = 992 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-agreement-gost-3410-2012-512" and + nid = 993 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-3410-2012-512-constants" and + nid = 996 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-28147-constants" and + nid = 1002 and + normalized = "GOST28147" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost89-cbc" and nid = 1009 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "gost89-cbc" and nid = 1009 and normalized = "GOST89" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost89-ecb" and nid = 1010 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "gost89-ecb" and nid = 1010 and normalized = "GOST89" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost89-ctr" and nid = 1011 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "gost89-ctr" and nid = 1011 and normalized = "GOST89" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "kuznyechik-ecb" and nid = 1012 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "kuznyechik-ecb" and + nid = 1012 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "kuznyechik-ctr" and nid = 1013 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "kuznyechik-ctr" and + nid = 1013 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "kuznyechik-ofb" and nid = 1014 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "kuznyechik-ofb" and + nid = 1014 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "kuznyechik-cbc" and nid = 1015 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "kuznyechik-cbc" and + nid = 1015 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "kuznyechik-cfb" and nid = 1016 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "kuznyechik-cfb" and + nid = 1016 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "kuznyechik-mac" and + nid = 1017 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "hkdf" and nid = 1036 and normalized = "HKDF" and algType = "KEY_DERIVATION" + or + name = "kx-rsa" and nid = 1037 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "kx-ecdhe" and nid = 1038 and normalized = "ECDH" and algType = "KEY_EXCHANGE" + or + name = "kx-ecdhe-psk" and nid = 1040 and normalized = "ECDH" and algType = "KEY_EXCHANGE" + or + name = "kx-rsa-psk" and nid = 1042 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "kx-gost" and nid = 1045 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "auth-rsa" and nid = 1046 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "auth-ecdsa" and nid = 1047 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "auth-gost01" and nid = 1050 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "auth-gost12" and nid = 1051 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "poly1305" and nid = 1061 and normalized = "POLY1305" and algType = "HASH" + or + name = "hmac-sha3-224" and nid = 1102 and normalized = "SHA3224" and algType = "HASH" + or + name = "hmac-sha3-256" and nid = 1103 and normalized = "SHA3256" and algType = "HASH" + or + name = "hmac-sha3-384" and nid = 1104 and normalized = "SHA3384" and algType = "HASH" + or + name = "hmac-sha3-512" and nid = 1105 and normalized = "SHA3512" and algType = "HASH" + or + name = "id-dsa-with-sha384" and nid = 1106 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "id-dsa-with-sha384" and nid = 1106 and normalized = "SHA384" and algType = "HASH" + or + name = "id-dsa-with-sha512" and nid = 1107 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "id-dsa-with-sha512" and nid = 1107 and normalized = "SHA512" and algType = "HASH" + or + name = "id-dsa-with-sha3-224" and nid = 1108 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "id-dsa-with-sha3-224" and nid = 1108 and normalized = "SHA3224" and algType = "HASH" + or + name = "id-dsa-with-sha3-256" and nid = 1109 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "id-dsa-with-sha3-256" and nid = 1109 and normalized = "SHA3256" and algType = "HASH" + or + name = "id-dsa-with-sha3-384" and nid = 1110 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "id-dsa-with-sha3-384" and nid = 1110 and normalized = "SHA3384" and algType = "HASH" + or + name = "id-dsa-with-sha3-512" and nid = 1111 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "id-dsa-with-sha3-512" and nid = 1111 and normalized = "SHA3512" and algType = "HASH" + or + name = "id-ecdsa-with-sha3-224" and nid = 1112 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "id-ecdsa-with-sha3-224" and nid = 1112 and normalized = "SHA3224" and algType = "HASH" + or + name = "id-ecdsa-with-sha3-256" and nid = 1113 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "id-ecdsa-with-sha3-256" and nid = 1113 and normalized = "SHA3256" and algType = "HASH" + or + name = "id-ecdsa-with-sha3-384" and nid = 1114 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "id-ecdsa-with-sha3-384" and nid = 1114 and normalized = "SHA3384" and algType = "HASH" + or + name = "id-ecdsa-with-sha3-512" and nid = 1115 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "id-ecdsa-with-sha3-512" and nid = 1115 and normalized = "SHA3512" and algType = "HASH" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-224" and + nid = 1116 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-224" and + nid = 1116 and + normalized = "PKCS1V15" and + algType = "ASYMMETRIC_PADDING" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-224" and + nid = 1116 and + normalized = "SHA3224" and + algType = "HASH" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-256" and + nid = 1117 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-256" and + nid = 1117 and + normalized = "PKCS1V15" and + algType = "ASYMMETRIC_PADDING" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-256" and + nid = 1117 and + normalized = "SHA3256" and + algType = "HASH" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-384" and + nid = 1118 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-384" and + nid = 1118 and + normalized = "PKCS1V15" and + algType = "ASYMMETRIC_PADDING" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-384" and + nid = 1118 and + normalized = "SHA3384" and + algType = "HASH" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-512" and + nid = 1119 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-512" and + nid = 1119 and + normalized = "PKCS1V15" and + algType = "ASYMMETRIC_PADDING" + or + name = "id-rsassa-pkcs1-v1_5-with-sha3-512" and + nid = 1119 and + normalized = "SHA3512" and + algType = "HASH" + or + name = "aria-128-ccm" and nid = 1120 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "aria-128-ccm" and nid = 1120 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-192-ccm" and nid = 1121 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "aria-192-ccm" and nid = 1121 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-256-ccm" and nid = 1122 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "aria-256-ccm" and nid = 1122 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-128-gcm" and nid = 1123 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "aria-128-gcm" and nid = 1123 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-192-gcm" and nid = 1124 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "aria-192-gcm" and nid = 1124 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aria-256-gcm" and nid = 1125 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "aria-256-gcm" and nid = 1125 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-cfb1" and nid = 1136 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-cfb1" and nid = 1136 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "sm4-cfb8" and nid = 1138 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-cfb8" and nid = 1138 and normalized = "CFB8" and algType = "BLOCK_MODE" + or + name = "id-tc26-gost-3410-2012-256-constants" and + nid = 1147 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "dstu28147-ofb" and nid = 1153 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "dstu28147-cfb" and nid = 1154 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "id-tc26-cipher-gostr3412-2015-magma" and + nid = 1173 and + normalized = "MAGMA" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "magma-ctr-acpkm" and nid = 1174 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "magma-ctr-acpkm" and + nid = 1174 and + normalized = "MAGMA" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "magma-ctr-acpkm-omac" and nid = 1175 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "magma-ctr-acpkm-omac" and + nid = 1175 and + normalized = "MAGMA" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-cipher-gostr3412-2015-kuznyechik" and + nid = 1176 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "kuznyechik-ctr-acpkm" and nid = 1177 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "kuznyechik-ctr-acpkm" and + nid = 1177 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "kuznyechik-ctr-acpkm-omac" and + nid = 1178 and + normalized = "CTR" and + algType = "BLOCK_MODE" + or + name = "kuznyechik-ctr-acpkm-omac" and + nid = 1178 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-wrap-gostr3412-2015-magma" and + nid = 1180 and + normalized = "MAGMA" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "magma-kexp15" and nid = 1181 and normalized = "MAGMA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-wrap-gostr3412-2015-kuznyechik" and + nid = 1182 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "kuznyechik-kexp15" and + nid = 1183 and + normalized = "KUZNYECHIK" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "magma-ecb" and nid = 1187 and normalized = "ECB" and algType = "BLOCK_MODE" + or + name = "magma-ecb" and nid = 1187 and normalized = "MAGMA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "magma-ctr" and nid = 1188 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "magma-ctr" and nid = 1188 and normalized = "MAGMA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "magma-ofb" and nid = 1189 and normalized = "OFB" and algType = "BLOCK_MODE" + or + name = "magma-ofb" and nid = 1189 and normalized = "MAGMA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "magma-cbc" and nid = 1190 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "magma-cbc" and nid = 1190 and normalized = "MAGMA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "magma-cfb" and nid = 1191 and normalized = "CFB" and algType = "BLOCK_MODE" + or + name = "magma-cfb" and nid = 1191 and normalized = "MAGMA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "magma-mac" and nid = 1192 and normalized = "MAGMA" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-siv" and nid = 1198 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-128-siv" and nid = 1198 and normalized = "SIV" and algType = "BLOCK_MODE" + or + name = "aes-192-siv" and nid = 1199 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-192-siv" and nid = 1199 and normalized = "SIV" and algType = "BLOCK_MODE" + or + name = "aes-256-siv" and nid = 1200 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "aes-256-siv" and nid = 1200 and normalized = "SIV" and algType = "BLOCK_MODE" + or + name = "blake2bmac" and nid = 1201 and normalized = "BLAKE2B" and algType = "HASH" + or + name = "blake2smac" and nid = 1202 and normalized = "BLAKE2S" and algType = "HASH" + or + name = "sshkdf" and nid = 1203 and normalized = "HKDF" and algType = "KEY_DERIVATION" + or + name = "x963kdf" and nid = 1206 and normalized = "X963KDF" and algType = "KEY_DERIVATION" + or + name = "kx-gost18" and nid = 1218 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-gcm" and nid = 1248 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-gcm" and nid = 1248 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "sm4-ccm" and nid = 1249 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-ccm" and nid = 1249 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "sm4-xts" and nid = 1290 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "sm4-xts" and nid = 1290 and normalized = "XTS" and algType = "BLOCK_MODE" + or + name = "x448" and nid = 1035 and normalized = "X448" and algType = "ELLIPTIC_CURVE" + or + name = "x25519" and nid = 1034 and normalized = "X25519" and algType = "ELLIPTIC_CURVE" + or + name = "authecdsa" and nid = 1047 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "authgost01" and nid = 1050 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "authgost12" and nid = 1051 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "authrsa" and nid = 1046 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "brainpoolp160r1" and + nid = 921 and + normalized = "BRAINPOOLP160R1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp160t1" and + nid = 922 and + normalized = "BRAINPOOLP160T1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp192r1" and + nid = 923 and + normalized = "BRAINPOOLP192R1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp192t1" and + nid = 924 and + normalized = "BRAINPOOLP192T1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp224r1" and + nid = 925 and + normalized = "BRAINPOOLP224R1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp224t1" and + nid = 926 and + normalized = "BRAINPOOLP224T1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp256r1" and + nid = 927 and + normalized = "BRAINPOOLP256R1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp256r1tls13" and + nid = 1285 and + normalized = "BRAINPOOLP256R1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp256t1" and + nid = 928 and + normalized = "BRAINPOOLP256T1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp320r1" and + nid = 929 and + normalized = "BRAINPOOLP320R1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp320t1" and + nid = 930 and + normalized = "BRAINPOOLP320T1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp384r1" and + nid = 931 and + normalized = "BRAINPOOLP384R1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp384r1tls13" and + nid = 1286 and + normalized = "BRAINPOOLP384R1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp384t1" and + nid = 932 and + normalized = "BRAINPOOLP384T1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp512r1" and + nid = 933 and + normalized = "BRAINPOOLP512R1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp512r1tls13" and + nid = 1287 and + normalized = "BRAINPOOLP512R1" and + algType = "ELLIPTIC_CURVE" + or + name = "brainpoolp512t1" and + nid = 934 and + normalized = "BRAINPOOLP512T1" and + algType = "ELLIPTIC_CURVE" + or + name = "dhsinglepass-cofactordh-sha1kdf-scheme" and + nid = 941 and + normalized = "SHA1" and + algType = "HASH" + or + name = "dhsinglepass-cofactordh-sha224kdf-scheme" and + nid = 942 and + normalized = "SHA224" and + algType = "HASH" + or + name = "dhsinglepass-cofactordh-sha256kdf-scheme" and + nid = 943 and + normalized = "SHA256" and + algType = "HASH" + or + name = "dhsinglepass-cofactordh-sha384kdf-scheme" and + nid = 944 and + normalized = "SHA384" and + algType = "HASH" + or + name = "dhsinglepass-cofactordh-sha512kdf-scheme" and + nid = 945 and + normalized = "SHA512" and + algType = "HASH" + or + name = "dhsinglepass-stddh-sha1kdf-scheme" and + nid = 936 and + normalized = "SHA1" and + algType = "HASH" + or + name = "dhsinglepass-stddh-sha224kdf-scheme" and + nid = 937 and + normalized = "SHA224" and + algType = "HASH" + or + name = "dhsinglepass-stddh-sha256kdf-scheme" and + nid = 938 and + normalized = "SHA256" and + algType = "HASH" + or + name = "dhsinglepass-stddh-sha384kdf-scheme" and + nid = 939 and + normalized = "SHA384" and + algType = "HASH" + or + name = "dhsinglepass-stddh-sha512kdf-scheme" and + nid = 940 and + normalized = "SHA512" and + algType = "HASH" + or + name = "dsa-old" and nid = 67 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa-sha" and nid = 66 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa-sha" and nid = 66 and normalized = "SHA" and algType = "HASH" + or + name = "dsa-sha1" and nid = 113 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa-sha1" and nid = 113 and normalized = "SHA1" and algType = "HASH" + or + name = "dsa-sha1-old" and nid = 70 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa-sha1-old" and nid = 70 and normalized = "SHA1" and algType = "HASH" + or + name = "dsa_with_sha224" and nid = 802 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa_with_sha224" and nid = 802 and normalized = "SHA224" and algType = "HASH" + or + name = "dsa_with_sha256" and nid = 803 and normalized = "SHA256" and algType = "HASH" + or + name = "dsa_with_sha256" and nid = 803 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa_with_sha3-224" and nid = 1108 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa_with_sha3-224" and nid = 1108 and normalized = "SHA3224" and algType = "HASH" + or + name = "dsa_with_sha3-256" and nid = 1109 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa_with_sha3-256" and nid = 1109 and normalized = "SHA3256" and algType = "HASH" + or + name = "dsa_with_sha3-384" and nid = 1110 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa_with_sha3-384" and nid = 1110 and normalized = "SHA3384" and algType = "HASH" + or + name = "dsa_with_sha3-512" and nid = 1111 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa_with_sha3-512" and nid = 1111 and normalized = "SHA3512" and algType = "HASH" + or + name = "dsa_with_sha384" and nid = 1106 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa_with_sha384" and nid = 1106 and normalized = "SHA384" and algType = "HASH" + or + name = "dsa_with_sha512" and nid = 1107 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsa_with_sha512" and nid = 1107 and normalized = "SHA512" and algType = "HASH" + or + name = "dsaencryption" and nid = 116 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsaencryption-old" and nid = 67 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsaquality" and nid = 495 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsawithsha" and nid = 66 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsawithsha" and nid = 66 and normalized = "SHA" and algType = "HASH" + or + name = "dsawithsha1" and nid = 113 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsawithsha1" and nid = 113 and normalized = "SHA1" and algType = "HASH" + or + name = "dsawithsha1-old" and nid = 70 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "dsawithsha1-old" and nid = 70 and normalized = "SHA1" and algType = "HASH" + or + name = "dstu gost 28147-2009 cfb mode" and + nid = 1154 and + normalized = "CFB" and + algType = "BLOCK_MODE" + or + name = "dstu gost 28147-2009 cfb mode" and + nid = 1154 and + normalized = "GOST28147" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "dstu gost 28147-2009 ofb mode" and + nid = 1153 and + normalized = "OFB" and + algType = "BLOCK_MODE" + or + name = "dstu gost 28147-2009 ofb mode" and + nid = 1153 and + normalized = "GOST28147" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "ecdsa-with-recommended" and nid = 791 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa-with-sha1" and nid = 416 and normalized = "SHA1" and algType = "HASH" + or + name = "ecdsa-with-sha1" and nid = 416 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa-with-sha224" and nid = 793 and normalized = "SHA224" and algType = "HASH" + or + name = "ecdsa-with-sha224" and nid = 793 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa-with-sha256" and nid = 794 and normalized = "SHA256" and algType = "HASH" + or + name = "ecdsa-with-sha256" and nid = 794 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa-with-sha384" and nid = 795 and normalized = "SHA384" and algType = "HASH" + or + name = "ecdsa-with-sha384" and nid = 795 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa-with-sha512" and nid = 796 and normalized = "SHA512" and algType = "HASH" + or + name = "ecdsa-with-sha512" and nid = 796 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa-with-specified" and nid = 792 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa_with_sha3-224" and nid = 1112 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa_with_sha3-224" and nid = 1112 and normalized = "SHA3224" and algType = "HASH" + or + name = "ecdsa_with_sha3-256" and nid = 1113 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa_with_sha3-256" and nid = 1113 and normalized = "SHA3256" and algType = "HASH" + or + name = "ecdsa_with_sha3-384" and nid = 1114 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa_with_sha3-384" and nid = 1114 and normalized = "SHA3384" and algType = "HASH" + or + name = "ecdsa_with_sha3-512" and nid = 1115 and normalized = "ECDSA" and algType = "SIGNATURE" + or + name = "ecdsa_with_sha3-512" and nid = 1115 and normalized = "SHA3512" and algType = "HASH" + or + name = "gost 28147-89" and + nid = 813 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost 28147-89 cryptocom paramset" and + nid = 849 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost 28147-89 mac" and + nid = 815 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost 28147-89 tc26 parameter set" and + nid = 1003 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost 34.10-2001 cryptocom" and + nid = 851 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost 34.10-94 cryptocom" and + nid = 850 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2001" and + nid = 811 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2001 dh" and + nid = 817 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 (256 bit) paramset a" and + nid = 1148 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 (256 bit) paramset b" and + nid = 1184 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 (256 bit) paramset c" and + nid = 1185 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 (256 bit) paramset d" and + nid = 1186 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 (512 bit) paramset a" and + nid = 998 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 (512 bit) paramset b" and + nid = 999 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 (512 bit) paramset c" and + nid = 1149 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 (512 bit) testing parameter set" and + nid = 997 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 with 256 bit modulus" and + nid = 979 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 with 512 bit modulus" and + nid = 980 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 with gost r 34.11-2012 (256 bit)" and + nid = 985 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-2012 with gost r 34.11-2012 (512 bit)" and + nid = 986 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-94" and + nid = 812 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.10-94 dh" and + nid = 818 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.11-2012 with 256 bit hash" and + nid = 982 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.11-2012 with 512 bit hash" and + nid = 983 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.11-94" and + nid = 809 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.11-94 prf" and + nid = 816 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.11-94 with gost r 34.10-2001" and + nid = 807 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.11-94 with gost r 34.10-2001 cryptocom" and + nid = 853 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.11-94 with gost r 34.10-94" and + nid = 808 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 34.11-94 with gost r 34.10-94 cryptocom" and + nid = 852 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "gost r 3410-2001 parameter set cryptocom" and + nid = 854 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "hmac gost 34.11-2012 256 bit" and + nid = 988 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "hmac gost 34.11-2012 512 bit" and + nid = 989 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "hmac gost 34.11-94" and + nid = 810 and + normalized = "GOST" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "hmacwithmd5" and nid = 797 and normalized = "MD5" and algType = "HASH" + or + name = "hmacwithsha1" and nid = 163 and normalized = "SHA1" and algType = "HASH" + or + name = "hmacwithsha224" and nid = 798 and normalized = "SHA224" and algType = "HASH" + or + name = "hmacwithsha256" and nid = 799 and normalized = "SHA256" and algType = "HASH" + or + name = "hmacwithsha384" and nid = 800 and normalized = "SHA384" and algType = "HASH" + or + name = "hmacwithsha512" and nid = 801 and normalized = "SHA512" and algType = "HASH" + or + name = "hmacwithsha512-224" and nid = 1193 and normalized = "SHA512224" and algType = "HASH" + or + name = "hmacwithsha512-256" and nid = 1194 and normalized = "SHA512256" and algType = "HASH" + or + name = "hmacwithsm3" and nid = 1281 and normalized = "SM3" and algType = "HASH" + or + name = "id-aes128-ccm" and + nid = 896 and + normalized = "AES128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes128-ccm" and nid = 896 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "id-aes128-gcm" and + nid = 895 and + normalized = "AES128" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes128-gcm" and nid = 895 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "id-aes192-ccm" and + nid = 899 and + normalized = "AES192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes192-ccm" and nid = 899 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "id-aes192-gcm" and + nid = 898 and + normalized = "AES192" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes192-gcm" and nid = 898 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "id-aes256-ccm" and + nid = 902 and + normalized = "AES256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes256-ccm" and nid = 902 and normalized = "CCM" and algType = "BLOCK_MODE" + or + name = "id-aes256-gcm" and + nid = 901 and + normalized = "AES256" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-aes256-gcm" and nid = 901 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "id-gost28147-89-cc" and + nid = 849 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gost28147-89-cryptopro-a-paramset" and + nid = 824 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gost28147-89-cryptopro-b-paramset" and + nid = 825 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gost28147-89-cryptopro-c-paramset" and + nid = 826 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gost28147-89-cryptopro-d-paramset" and + nid = 827 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gost28147-89-cryptopro-keymeshing" and + nid = 819 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gost28147-89-cryptopro-oscar-1-0-paramset" and + nid = 829 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gost28147-89-cryptopro-oscar-1-1-paramset" and + nid = 828 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gost28147-89-cryptopro-ric-1-paramset" and + nid = 830 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gost28147-89-none-keymeshing" and + nid = 820 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gost28147-89-testparamset" and + nid = 823 and + normalized = "GOST2814789" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-2001-cryptopro-a-paramset" and + nid = 840 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-2001-cryptopro-b-paramset" and + nid = 841 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-2001-cryptopro-c-paramset" and + nid = 842 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-2001-cryptopro-xcha-paramset" and + nid = 843 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-2001-cryptopro-xchb-paramset" and + nid = 844 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-2001-paramset-cc" and + nid = 854 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-2001-testparamset" and + nid = 839 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-2001dh" and + nid = 817 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-a" and + nid = 845 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-abis" and + nid = 846 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-b" and + nid = 847 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-bbis" and + nid = 848 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-cryptopro-a-paramset" and + nid = 832 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-cryptopro-b-paramset" and + nid = 833 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-cryptopro-c-paramset" and + nid = 834 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-cryptopro-d-paramset" and + nid = 835 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-cryptopro-xcha-paramset" and + nid = 836 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-cryptopro-xchb-paramset" and + nid = 837 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-cryptopro-xchc-paramset" and + nid = 838 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94-testparamset" and + nid = 831 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3410-94dh" and + nid = 818 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3411-94-cryptoproparamset" and + nid = 822 and + normalized = "GOSTR341194" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3411-94-testparamset" and + nid = 821 and + normalized = "GOSTR341194" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3411-94-with-gostr3410-2001" and + nid = 807 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3411-94-with-gostr3410-2001-cc" and + nid = 853 and + normalized = "GOSTR34102001" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3411-94-with-gostr3410-94" and + nid = 808 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3411-94-with-gostr3410-94" and + nid = 808 and + normalized = "GOSTR341194" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3411-94-with-gostr3410-94-cc" and + nid = 852 and + normalized = "GOSTR341094" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-gostr3411-94-with-gostr3410-94-cc" and + nid = 852 and + normalized = "GOSTR341194" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-hmacgostr3411-94" and + nid = 810 and + normalized = "GOSTR341194" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-hmacwithsha3-224" and nid = 1102 and normalized = "SHA3224" and algType = "HASH" + or + name = "id-hmacwithsha3-256" and nid = 1103 and normalized = "SHA3256" and algType = "HASH" + or + name = "id-hmacwithsha3-384" and nid = 1104 and normalized = "SHA3384" and algType = "HASH" + or + name = "id-hmacwithsha3-512" and nid = 1105 and normalized = "SHA3512" and algType = "HASH" + or + name = "id-regctrl" and nid = 313 and normalized = "CTR" and algType = "BLOCK_MODE" + or + name = "id-smime-alg-3deswrap" and + nid = 243 and + normalized = "3DES" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-smime-alg-cms3deswrap" and nid = 246 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "id-smime-alg-cms3deswrap" and + nid = 246 and + normalized = "3DES" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-smime-alg-cmsrc2wrap" and + nid = 247 and + normalized = "RC2" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-smime-alg-cmsrc2wrap" and nid = 247 and normalized = "GCM" and algType = "BLOCK_MODE" + or + name = "id-smime-alg-esdhwith3des" and + nid = 241 and + normalized = "3DES" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-smime-alg-esdhwithrc2" and + nid = 242 and + normalized = "RC2" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-smime-alg-rc2wrap" and + nid = 244 and + normalized = "RC2" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-28147-param-z" and + nid = 1003 and + normalized = "GOST28147" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-3410-2012-256-paramseta" and + nid = 1148 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-3410-2012-256-paramsetb" and + nid = 1184 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-3410-2012-256-paramsetc" and + nid = 1185 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-3410-2012-256-paramsetd" and + nid = 1186 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-3410-2012-512-paramseta" and + nid = 998 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-3410-2012-512-paramsetb" and + nid = 999 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-3410-2012-512-paramsetc" and + nid = 1149 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "id-tc26-gost-3410-2012-512-paramsettest" and + nid = 997 and + normalized = "GOST34102012" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "kxecdhe" and nid = 1038 and normalized = "ECDH" and algType = "KEY_EXCHANGE" + or + name = "kxecdhe-psk" and nid = 1040 and normalized = "ECDH" and algType = "KEY_EXCHANGE" + or + name = "kxgost" and nid = 1045 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "kxgost18" and nid = 1218 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "kxrsa" and nid = 1037 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "kxrsa_psk" and nid = 1042 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "md2withrsaencryption" and + nid = 7 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "md2withrsaencryption" and nid = 7 and normalized = "MD2" and algType = "HASH" + or + name = "md4withrsaencryption" and + nid = 396 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "md4withrsaencryption" and nid = 396 and normalized = "MD4" and algType = "HASH" + or + name = "md5withrsa" and nid = 104 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "md5withrsa" and nid = 104 and normalized = "MD5" and algType = "HASH" + or + name = "md5withrsaencryption" and + nid = 8 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "md5withrsaencryption" and nid = 8 and normalized = "MD5" and algType = "HASH" + or + name = "mdc2withrsa" and nid = 96 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "mdc2withrsa" and nid = 96 and normalized = "MDC2" and algType = "HASH" + or + name = "pbe-md2-des" and nid = 9 and normalized = "MD2" and algType = "HASH" + or + name = "pbe-md2-des" and nid = 9 and normalized = "2DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-md2-rc2-64" and nid = 168 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-md2-rc2-64" and nid = 168 and normalized = "MD2" and algType = "HASH" + or + name = "pbe-md5-des" and nid = 10 and normalized = "MD5" and algType = "HASH" + or + name = "pbe-md5-des" and nid = 10 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-md5-rc2-64" and nid = 169 and normalized = "MD5" and algType = "HASH" + or + name = "pbe-md5-rc2-64" and nid = 169 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-sha1-2des" and nid = 147 and normalized = "SHA1" and algType = "HASH" + or + name = "pbe-sha1-2des" and nid = 147 and normalized = "2DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-sha1-3des" and nid = 146 and normalized = "SHA1" and algType = "HASH" + or + name = "pbe-sha1-3des" and nid = 146 and normalized = "3DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-sha1-des" and nid = 170 and normalized = "SHA1" and algType = "HASH" + or + name = "pbe-sha1-des" and nid = 170 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-sha1-rc2-128" and nid = 148 and normalized = "SHA1" and algType = "HASH" + or + name = "pbe-sha1-rc2-128" and + nid = 148 and + normalized = "RC2" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-sha1-rc2-40" and nid = 149 and normalized = "SHA1" and algType = "HASH" + or + name = "pbe-sha1-rc2-40" and nid = 149 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-sha1-rc2-64" and nid = 68 and normalized = "SHA1" and algType = "HASH" + or + name = "pbe-sha1-rc2-64" and nid = 68 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-sha1-rc4-128" and nid = 144 and normalized = "SHA1" and algType = "HASH" + or + name = "pbe-sha1-rc4-128" and + nid = 144 and + normalized = "RC4" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbe-sha1-rc4-40" and nid = 145 and normalized = "SHA1" and algType = "HASH" + or + name = "pbe-sha1-rc4-40" and nid = 145 and normalized = "RC4" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithmd2anddes-cbc" and + nid = 9 and + normalized = "DES" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithmd2anddes-cbc" and nid = 9 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "pbewithmd2anddes-cbc" and nid = 9 and normalized = "MD2" and algType = "HASH" + or + name = "pbewithmd2andrc2-cbc" and + nid = 168 and + normalized = "RC2" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithmd2andrc2-cbc" and nid = 168 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "pbewithmd2andrc2-cbc" and nid = 168 and normalized = "MD2" and algType = "HASH" + or + name = "pbewithmd5andcast5cbc" and nid = 112 and normalized = "MD5" and algType = "HASH" + or + name = "pbewithmd5andcast5cbc" and nid = 112 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "pbewithmd5andcast5cbc" and + nid = 112 and + normalized = "CAST5" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithmd5anddes-cbc" and nid = 10 and normalized = "MD5" and algType = "HASH" + or + name = "pbewithmd5anddes-cbc" and + nid = 10 and + normalized = "DES" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithmd5anddes-cbc" and nid = 10 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "pbewithmd5andrc2-cbc" and nid = 169 and normalized = "MD5" and algType = "HASH" + or + name = "pbewithmd5andrc2-cbc" and + nid = 169 and + normalized = "RC2" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithmd5andrc2-cbc" and nid = 169 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "pbewithsha1and128bitrc2-cbc" and nid = 148 and normalized = "SHA1" and algType = "HASH" + or + name = "pbewithsha1and128bitrc2-cbc" and + nid = 148 and + normalized = "RC2" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithsha1and128bitrc2-cbc" and + nid = 148 and + normalized = "CBC" and + algType = "BLOCK_MODE" + or + name = "pbewithsha1and128bitrc4" and nid = 144 and normalized = "SHA1" and algType = "HASH" + or + name = "pbewithsha1and128bitrc4" and + nid = 144 and + normalized = "RC4" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithsha1and2-keytripledes-cbc" and + nid = 147 and + normalized = "SHA1" and + algType = "HASH" + or + name = "pbewithsha1and2-keytripledes-cbc" and + nid = 147 and + normalized = "CBC" and + algType = "BLOCK_MODE" + or + name = "pbewithsha1and2-keytripledes-cbc" and + nid = 147 and + normalized = "TRIPLEDES" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithsha1and3-keytripledes-cbc" and + nid = 146 and + normalized = "SHA1" and + algType = "HASH" + or + name = "pbewithsha1and3-keytripledes-cbc" and + nid = 146 and + normalized = "CBC" and + algType = "BLOCK_MODE" + or + name = "pbewithsha1and3-keytripledes-cbc" and + nid = 146 and + normalized = "TRIPLEDES" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithsha1and40bitrc2-cbc" and nid = 149 and normalized = "SHA1" and algType = "HASH" + or + name = "pbewithsha1and40bitrc2-cbc" and + nid = 149 and + normalized = "RC2" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithsha1and40bitrc2-cbc" and + nid = 149 and + normalized = "CBC" and + algType = "BLOCK_MODE" + or + name = "pbewithsha1and40bitrc4" and nid = 145 and normalized = "SHA1" and algType = "HASH" + or + name = "pbewithsha1and40bitrc4" and + nid = 145 and + normalized = "RC4" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithsha1anddes-cbc" and nid = 170 and normalized = "SHA1" and algType = "HASH" + or + name = "pbewithsha1anddes-cbc" and + nid = 170 and + normalized = "DES" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithsha1anddes-cbc" and nid = 170 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "pbewithsha1andrc2-cbc" and nid = 68 and normalized = "SHA1" and algType = "HASH" + or + name = "pbewithsha1andrc2-cbc" and + nid = 68 and + normalized = "RC2" and + algType = "SYMMETRIC_ENCRYPTION" + or + name = "pbewithsha1andrc2-cbc" and nid = 68 and normalized = "CBC" and algType = "BLOCK_MODE" + or + name = "pilotdsa" and nid = 456 and normalized = "DSA" and algType = "SIGNATURE" + or + name = "pkcs7-digestdata" and nid = 25 and normalized = "PKCS7" and algType = "SYMMETRIC_PADDING" + or + name = "pkcs7-encrypteddata" and + nid = 26 and + normalized = "PKCS7" and + algType = "SYMMETRIC_PADDING" + or + name = "pkcs7-envelopeddata" and + nid = 23 and + normalized = "PKCS7" and + algType = "SYMMETRIC_PADDING" + or + name = "pkcs7-signedandenvelopeddata" and + nid = 24 and + normalized = "PKCS7" and + algType = "SYMMETRIC_PADDING" + or + name = "pkcs7-signeddata" and nid = 22 and normalized = "PKCS7" and algType = "SYMMETRIC_PADDING" + or + name = "ripemd160withrsa" and + nid = 119 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "ripemd160withrsa" and nid = 119 and normalized = "RIPEMD160" and algType = "HASH" + or + name = "rsa-md2" and nid = 7 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-md2" and nid = 7 and normalized = "MD2" and algType = "HASH" + or + name = "rsa-md4" and nid = 396 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-md4" and nid = 396 and normalized = "MD4" and algType = "HASH" + or + name = "rsa-md5" and nid = 8 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-md5" and nid = 8 and normalized = "MD5" and algType = "HASH" + or + name = "rsa-mdc2" and nid = 96 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-mdc2" and nid = 96 and normalized = "MDC2" and algType = "HASH" + or + name = "rsa-np-md5" and nid = 104 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-np-md5" and nid = 104 and normalized = "MD5" and algType = "HASH" + or + name = "rsa-ripemd160" and nid = 119 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-ripemd160" and nid = 119 and normalized = "RIPEMD160" and algType = "HASH" + or + name = "rsa-sha" and nid = 42 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha" and nid = 42 and normalized = "SHA" and algType = "HASH" + or + name = "rsa-sha1" and nid = 65 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha1" and nid = 65 and normalized = "SHA1" and algType = "HASH" + or + name = "rsa-sha1-2" and nid = 115 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha1-2" and nid = 115 and normalized = "SHA1" and algType = "HASH" + or + name = "rsa-sha224" and nid = 671 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha224" and nid = 671 and normalized = "SHA224" and algType = "HASH" + or + name = "rsa-sha256" and nid = 668 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha256" and nid = 668 and normalized = "SHA256" and algType = "HASH" + or + name = "rsa-sha3-224" and nid = 1116 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha3-224" and nid = 1116 and normalized = "SHA3224" and algType = "HASH" + or + name = "rsa-sha3-256" and nid = 1117 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha3-256" and nid = 1117 and normalized = "SHA3256" and algType = "HASH" + or + name = "rsa-sha3-384" and nid = 1118 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha3-384" and nid = 1118 and normalized = "SHA3384" and algType = "HASH" + or + name = "rsa-sha3-512" and nid = 1119 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha3-512" and nid = 1119 and normalized = "SHA3512" and algType = "HASH" + or + name = "rsa-sha384" and nid = 669 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha384" and nid = 669 and normalized = "SHA384" and algType = "HASH" + or + name = "rsa-sha512" and nid = 670 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha512" and nid = 670 and normalized = "SHA512" and algType = "HASH" + or + name = "rsa-sha512/224" and + nid = 1145 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha512/224" and nid = 1145 and normalized = "SHA512224" and algType = "HASH" + or + name = "rsa-sha512/256" and + nid = 1146 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sha512/256" and nid = 1146 and normalized = "SHA512256" and algType = "HASH" + or + name = "rsa-sm3" and nid = 1144 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsa-sm3" and nid = 1144 and normalized = "SM3" and algType = "HASH" + or + name = "rsaencryption" and nid = 6 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsaes-oaep" and nid = 919 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsaes-oaep" and nid = 919 and normalized = "AES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rsaes-oaep" and nid = 919 and normalized = "OAEP" and algType = "ASYMMETRIC_PADDING" + or + name = "rsaesoaep" and nid = 919 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsaesoaep" and nid = 919 and normalized = "AES" and algType = "SYMMETRIC_ENCRYPTION" + or + name = "rsaesoaep" and nid = 919 and normalized = "OAEP" and algType = "ASYMMETRIC_PADDING" + or + name = "rsaoaepencryptionset" and + nid = 644 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsaoaepencryptionset" and + nid = 644 and + normalized = "OAEP" and + algType = "ASYMMETRIC_PADDING" + or + name = "rsasignature" and nid = 377 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsassa-pss" and nid = 912 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsassa-pss" and nid = 912 and normalized = "PSS" and algType = "ASYMMETRIC_PADDING" + or + name = "rsassapss" and nid = 912 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "rsassapss" and nid = 912 and normalized = "PSS" and algType = "ASYMMETRIC_PADDING" + or + name = "sha1withrsa" and nid = 115 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" + or + name = "sha1withrsa" and nid = 115 and normalized = "SHA1" and algType = "HASH" + or + name = "sha1withrsaencryption" and + nid = 65 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "sha1withrsaencryption" and nid = 65 and normalized = "SHA1" and algType = "HASH" + or + name = "sha224withrsaencryption" and + nid = 671 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "sha224withrsaencryption" and nid = 671 and normalized = "SHA224" and algType = "HASH" + or + name = "sha256withrsaencryption" and + nid = 668 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "sha256withrsaencryption" and nid = 668 and normalized = "SHA256" and algType = "HASH" + or + name = "sha384withrsaencryption" and + nid = 669 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "sha384withrsaencryption" and nid = 669 and normalized = "SHA384" and algType = "HASH" + or + name = "sha512-224withrsaencryption" and + nid = 1145 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "sha512-224withrsaencryption" and + nid = 1145 and + normalized = "SHA512224" and + algType = "HASH" + or + name = "sha512-256withrsaencryption" and + nid = 1146 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "sha512-256withrsaencryption" and + nid = 1146 and + normalized = "SHA512256" and + algType = "HASH" + or + name = "sha512withrsaencryption" and + nid = 670 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "sha512withrsaencryption" and nid = 670 and normalized = "SHA512" and algType = "HASH" + or + name = "shawithrsaencryption" and + nid = 42 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "shawithrsaencryption" and nid = 42 and normalized = "SHA" and algType = "HASH" + or + name = "sm2" and nid = 1172 and normalized = "SM2" and algType = "ELLIPTIC_CURVE" + or + name = "sm2-sm3" and nid = 1204 and normalized = "SM3" and algType = "HASH" + or + name = "sm2-sm3" and nid = 1204 and normalized = "SM2" and algType = "ELLIPTIC_CURVE" + or + name = "sm2-with-sm3" and nid = 1204 and normalized = "SM3" and algType = "HASH" + or + name = "sm2-with-sm3" and nid = 1204 and normalized = "SM2" and algType = "ELLIPTIC_CURVE" + or + name = "sm3withrsaencryption" and + nid = 1144 and + normalized = "RSA" and + algType = "ASYMMETRIC_ENCRYPTION" + or + name = "sm3withrsaencryption" and nid = 1144 and normalized = "SM3" and algType = "HASH" +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll new file mode 100644 index 00000000000..54be40729b6 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll @@ -0,0 +1,82 @@ +import semmle.code.cpp.dataflow.new.DataFlow + +class CTXType extends Type { + CTXType() { + // TODO: should we limit this to an openssl path? + this.getUnspecifiedType().stripType().getName().matches("evp_%ctx_%st") + } +} + +class CTXPointerExpr extends Expr { + CTXPointerExpr() { + this.getType() instanceof CTXType and + this.getType() instanceof PointerType + } +} + +class CTXPointerArgument extends CTXPointerExpr { + CTXPointerArgument() { + + exists(Call c | c.getAnArgument() = this) + } + + Call getCall() { result.getAnArgument() = this } +} + +class CTXClearCall extends Call { + CTXClearCall() { + this.getTarget().getName().toLowerCase().matches(["%free%", "%reset%"]) and + this.getAnArgument() instanceof CTXPointerArgument + } +} + +class CTXCopyOutArgCall extends Call { + CTXCopyOutArgCall() { + this.getTarget().getName().toLowerCase().matches(["%copy%"]) and + this.getAnArgument() instanceof CTXPointerArgument + } +} + +class CTXCopyReturnCall extends Call { + CTXCopyReturnCall() { + this.getTarget().getName().toLowerCase().matches(["%dup%"]) and + this.getAnArgument() instanceof CTXPointerArgument and + this instanceof CTXPointerExpr + } +} + +module OpenSSLCTXArgumentFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr() instanceof CTXPointerArgument } + + predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof CTXPointerArgument } + + predicate isBarrier(DataFlow::Node node) { + exists(CTXClearCall c | c.getAnArgument() = node.asExpr()) + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + exists(CTXCopyOutArgCall c | + c.getAnArgument() = node1.asExpr() and + c.getAnArgument() = node2.asExpr() and + node1.asExpr() != node2.asExpr() and + node2.asExpr().getType() instanceof CTXType + ) + or + exists(CTXCopyReturnCall c | + c.getAnArgument() = node1.asExpr() and + c = node2.asExpr() and + node1.asExpr() != node2.asExpr() and + node2.asExpr().getType() instanceof CTXType + ) + } +} + +module OpenSSLCTXArgumentFlow = DataFlow::Global; + +predicate ctxFlowsTo(CTXPointerArgument source, CTXPointerArgument sink) { + exists(DataFlow::Node a, DataFlow::Node b | + OpenSSLCTXArgumentFlow::flow(a, b) and + a.asExpr() = source and + b.asExpr() = sink + ) +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll new file mode 100644 index 00000000000..ceabae77374 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll @@ -0,0 +1,25 @@ +import EVPCipherInitializer +import EVPCipherOperation +import AlgorithmSource + + +class EVP_Cipher_Initializer_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof EVPCipherInitializerAlgorithmArgument +{ + override DataFlow::Node getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmElement getAKnownAlgorithmSource() { + result.(CipherLiteralAlgorithmInstance).getConsumer() = this + } +} +// //TODO: need a key consumer +// class EVP_Initializer_Key_Consumer extends Crypto::KeyConsumer instanceof EVP_Cipher_Inititalizer isntanceof InitializerKeyArgument{ +// } +class EVP_Cipher_Initializer_IV_Consumer extends Crypto::NonceArtifactConsumer instanceof EVPCipherInitializerIVArgument{ + override DataFlow::Node getInputNode() { result.asExpr() = this } +} + +class EVP_Cipher_Input_Consumer extends Crypto::CipherInputConsumer instanceof EVPCipherInputArgument{ + + override DataFlow::Node getInputNode() { result.asExpr() = this } +} + diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherInitializer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherInitializer.qll new file mode 100644 index 00000000000..12cbe4da650 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherInitializer.qll @@ -0,0 +1,153 @@ +import experimental.Quantum.Language +import CtxFlow as CTXFlow + +module EncValToInitEncArgConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr().getValue().toInt() in [0, 1] } + + predicate isSink(DataFlow::Node sink) { + exists(EVP_Cipher_Inititalizer initCall | sink.asExpr() = initCall.getOperataionSubtypeArg()) + } +} + +module EncValToInitEncArgFlow = DataFlow::Global; + +int getEncConfigValue(Expr e) { + exists(EVP_Cipher_Inititalizer initCall | e = initCall.getOperataionSubtypeArg()) and + exists(DataFlow::Node a, DataFlow::Node b | + EncValToInitEncArgFlow::flow(a, b) and b.asExpr() = e and result = a.asExpr().getValue().toInt() + ) +} + +bindingset[i] +Crypto::CipherOperationSubtype intToCipherOperationSubtype(int i) { + if i = 0 + then result instanceof Crypto::EncryptionSubtype + else + if i = 1 + then result instanceof Crypto::DecryptionSubtype + else result instanceof Crypto::UnknownCipherOperationSubtype +} + +// TODO: need to add key consumer +abstract class EVP_Cipher_Inititalizer extends Call { + Expr getContextArg() { result = this.(Call).getArgument(0) } + + Expr getAlgorithmArg() { result = this.(Call).getArgument(1) } + + abstract Expr getKeyArg(); + + abstract Expr getIVArg(); + +// abstract Crypto::CipherOperationSubtype getCipherOperationSubtype(); + + abstract Expr getOperataionSubtypeArg(); + +Crypto::CipherOperationSubtype getCipherOperationSubtype() { + if this.(Call).getTarget().getName().toLowerCase().matches("%encrypt%") + then result instanceof Crypto::EncryptionSubtype + else + if this.(Call).getTarget().getName().toLowerCase().matches("%decrypt%") + then result instanceof Crypto::DecryptionSubtype + else + if exists(getEncConfigValue(this.getOperataionSubtypeArg())) + then result = intToCipherOperationSubtype(getEncConfigValue(this.getOperataionSubtypeArg())) + else result instanceof Crypto::UnknownCipherOperationSubtype + } +} + +abstract class EVP_EX_Initializer extends EVP_Cipher_Inititalizer { + override Expr getKeyArg() { result = this.(Call).getArgument(3) } + + override Expr getIVArg() { result = this.(Call).getArgument(4) } +} + +abstract class EVP_EX2_Initializer extends EVP_Cipher_Inititalizer { + override Expr getKeyArg() { result = this.(Call).getArgument(2) } + + override Expr getIVArg() { result = this.(Call).getArgument(3) } +} + +class EVP_Cipher_EX_Init_Call extends EVP_EX_Initializer { + EVP_Cipher_EX_Init_Call() { + this.(Call).getTarget().getName() in [ + "EVP_EncryptInit_ex", "EVP_DecryptInit_ex", "EVP_CipherInit_ex" + ] + } + + override Expr getOperataionSubtypeArg() { + this.(Call).getTarget().getName().toLowerCase().matches("%cipherinit%") and + result = this.(Call).getArgument(5) + } +} + +// abstract class EVP_CipherInit extends EVP_Cipher_Inititalizer{ +// abstract Expr getOperataionSubtypeArg(); +// } +// class EVP_CipherInit_ex_Call extends EVP_EX_Initializer, EVP_CipherInit { +// EVP_CipherInit_ex_Call() { this.(Call).getTarget().getName() = "EVP_CipherInit_ex" } +// override Crypto::CipherOperationSubtype getCipherOperationSubtype() { +// result instanceof Crypto::EncryptionSubtype +// } +// override Expr getOperataionSubtypeArg(){ +// result = this.(Call).getArgument(5) +// } +// } +// class EVP_CipherInit_ex2_Call extends EVP_EX_Initializer, EVP_CipherInit { +// EVP_CipherInit_ex2_Call() { this.(Call).getTarget().getName() = "EVP_CipherInit_ex2" } +// override Crypto::CipherOperationSubtype getCipherOperationSubtype() { +// result instanceof Crypto::EncryptionSubtype +// } +// override Expr getOperataionSubtypeArg(){ +// result = this.(Call).getArgument(4) +// } +// } +class EVP_Cipher_EX2_or_Simple_Init_Call extends EVP_EX2_Initializer { + EVP_Cipher_EX2_or_Simple_Init_Call() { + this.(Call).getTarget().getName() in [ + "EVP_EncryptInit_ex2", "EVP_DecryptInit_ex2", "EVP_CipherInit_ex2", + "EVP_EncryptInit", "EVP_DecryptInit", "EVP_CipherInit" + ] + } + + + override Expr getOperataionSubtypeArg() { + this.(Call).getTarget().getName().toLowerCase().matches("%cipherinit%") and + result = this.(Call).getArgument(4) + } +} + +class EVP_CipherInit_SKEY_Call extends EVP_EX2_Initializer { + EVP_CipherInit_SKEY_Call() { + this.(Call).getTarget().getName() in [ + "EVP_CipherInit_SKEY" + ] + } + + override Expr getOperataionSubtypeArg() { + result = this.(Call).getArgument(5) + } +} + + +// class EVP_CipherInit extends EVP_Cipher_Inititalizer { +// EVP_CipherInit() { this.(Call).getTarget().getName() = "EVP_CipherInit" } +// override Expr getKeyArg() { result = this.(Call).getArgument(2) } +// override Expr getIVArg() { result = this.(Call).getArgument(3) } +// override Crypto::CipherOperationSubtype getCipherOperationSubtype() { +// result instanceof Crypto::EncryptionSubtype +// } +// } +class EVPCipherInitializerAlgorithmArgument extends Expr { + EVPCipherInitializerAlgorithmArgument() { + exists(EVP_Cipher_Inititalizer initCall | this = initCall.getAlgorithmArg()) + } +} +class EVPCipherInitializerKeyArgument extends Expr { + EVPCipherInitializerKeyArgument() { + exists(EVP_Cipher_Inititalizer initCall | this = initCall.getKeyArg()) + } +} +class EVPCipherInitializerIVArgument extends Expr { + EVPCipherInitializerIVArgument() { exists(EVP_Cipher_Inititalizer initCall | this = initCall.getIVArg()) } +} + diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll new file mode 100644 index 00000000000..4913d2763e9 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll @@ -0,0 +1,87 @@ +import experimental.Quantum.Language +import CtxFlow as CTXFlow +import EVPCipherInitializer +import EVPCipherConsumers + +//https://docs.openssl.org/master/man3/EVP_EncryptInit/#synopsis +abstract class EVP_Cipher_Operation extends Crypto::CipherOperationInstance instanceof Call { + Expr getContextArg() { result = this.(Call).getArgument(0) } + + abstract Expr getInputArg(); + + Expr getOutputArg() { result = this.(Call).getArgument(1) } + + override Crypto::CipherOperationSubtype getCipherOperationSubtype() { + result instanceof Crypto::EncryptionSubtype and + this.(Call).getTarget().getName().toLowerCase().matches("%encrypt%") + or + result instanceof Crypto::DecryptionSubtype and + this.(Call).getTarget().getName().toLowerCase().matches("%decrypt%") + or + result = this.getInitCall().getCipherOperationSubtype() and + this.(Call).getTarget().getName().toLowerCase().matches("%cipher%") + } + + EVP_Cipher_Inititalizer getInitCall() { + CTXFlow::ctxFlowsTo(result.getContextArg(), this.getContextArg()) + } + + override Crypto::NonceArtifactConsumer getNonceConsumer() { + this.getInitCall().getIVArg() = result + } + + override Crypto::CipherInputConsumer getInputConsumer() { this.getInputArg() = result } + + override Crypto::CipherOutputArtifactInstance getOutputArtifact() { this.getOutputArg() = result } + + override Crypto::AlgorithmConsumer getAlgorithmConsumer() { + this.getInitCall().getAlgorithmArg() = result + } +} + +abstract class EVP_Update_Call extends EVP_Cipher_Operation { } + +abstract class EVP_Final_Call extends EVP_Cipher_Operation { + override Expr getInputArg() { none() } +} + +class EVP_Cipher_Call extends EVP_Cipher_Operation { + // TODO/QUESTION: what is the better way to do this? + EVP_Cipher_Call() { this.(Call).getTarget().getName() = "EVP_Cipher" } + + override Expr getInputArg() { result = this.(Call).getArgument(2) } +} + +class EVP_Encrypt_Decrypt_or_Cipher_Update_Call extends EVP_Update_Call { + // TODO/QUESTION: what is the better way to do this? + EVP_Encrypt_Decrypt_or_Cipher_Update_Call() { + this.(Call).getTarget().getName() in [ + "EVP_EncryptUpdate", "EVP_DecryptUpdate", "EVP_CipherUpdate" + ] + } + + override Expr getInputArg() { result = this.(Call).getArgument(3) } +} + +class EVP_Encrypt_Decrypt_or_Cipher_Final_Call extends EVP_Final_Call { + // TODO/QUESTION: what is the better way to do this? + EVP_Encrypt_Decrypt_or_Cipher_Final_Call() { + this.(Call).getTarget().getName() in + [ + "EVP_EncryptFinal_ex", "EVP_DecryptFinal_ex", "EVP_CipherFinal_ex", "EVP_EncryptFinal", + "EVP_DecryptFinal", "EVP_CipherFinal" + ] + } +} + +class EVPCipherOutput extends CipherOutputArtifact { + EVPCipherOutput() { exists(EVP_Cipher_Operation op | op.getOutputArg() = this) } + + override DataFlow::Node getOutputNode(){ + result.asExpr() = this + } +} + +class EVPCipherInputArgument extends Expr { + EVPCipherInputArgument() { exists(EVP_Cipher_Operation op | op.getInputArg() = this) } +} \ No newline at end of file diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll new file mode 100644 index 00000000000..f942f4687da --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll @@ -0,0 +1,357 @@ +import cpp +import semmle.code.cpp.dataflow.new.DataFlow + +module OpenSSLModel { + import experimental.Quantum.Language + import experimental.Quantum.OpenSSL.EVPCipherOperation + +// // TODO: trace CTX from init variants to the context arg of EVP update calls +// //https://docs.openssl.org/master/man3/EVP_EncryptInit/#synopsis +// abstract class EVP_Cipher_Init_Call extends Call { +// Expr getContextArg() { result = this.getArgument(0) } +// abstract Expr getKeyArg(); + +// abstract Expr getIVArg(); + +// abstract Crypto::CipherOperationSubtype getCipherOperationSubtype(); +// } + +// abstract class EVP_Cipher_EX_Init_Call extends EVP_Cipher_Init_Call { +// override Expr getKeyArg() { result = this.getArgument(3) } + +// override Expr getIVArg() { result = this.getArgument(4) } +// } + +// abstract class EVP_Cipher_EX2_Init_Call extends EVP_Cipher_Init_Call { +// override Expr getKeyArg() { result = this.getArgument(2) } + +// override Expr getIVArg() { result = this.getArgument(3) } +// } + +// abstract class EVP_Cipher_Operation_Call extends Crypto::CipherOperationInstance instanceof Call { +// Expr getContextArg() { result = this.(Call).getArgument(0) } +// abstract Expr getInputArg(); +// Expr getOutputArg() { result = this.(Call).getArgument(1) } +// abstract Expr getInitCall(); +// } + +// abstract class EVP_Update_Call extends EVP_Cipher_Operation_Call { +// override Expr getInputArg() { result = this.(Call).getArgument(3) } + +// } + +// abstract class EVP_Final_Call extends EVP_Cipher_Operation_Call{ +// override Expr getInputArg() { none() } + +// } + +// class EVP_Cipher_Call extends EVP_Cipher_Operation_Call{ +// // TODO/QUESTION: what is the better way to do this? +// EVP_Cipher_Call() { this.(Call).getTarget().getName() = "EVP_Cipher" } + +// override Expr getInputArg() { result = this.(Call).getArgument(2) } + +// override Expr getOutputArg() { result = this.(Call).getArgument(1) } + +// override Crypto::CipherOperationSubtype getCipherOperationSubtype(){ +// result instanceof Crypto::EncryptionSubtype +// } + +// override Expr getInitCall(){ +// //TODO: +// none() +// } + +// override Crypto::NonceArtifactConsumer getNonceConsumer(){ +// none() +// } + +// override Crypto::CipherInputConsumer getInputConsumer(){ +// none() +// } + +// override Crypto::CipherOutputArtifactInstance getOutputArtifact(){ +// none() +// } + +// override Crypto::AlgorithmConsumer getAlgorithmConsumer(){ +// none() +// } +// } + + + //TODO: what about EVP_CIpher + + + // class EVP_EncryptUpdateCall extends Crypto::CipherOperationInstance instanceof Call { + // // NICK QUESTION: is there a better way to tie this to openssl? + // EVP_EncryptUpdateCall() { this.getTarget().getName() = "EVP_EncryptUpdate" } + + // Expr getContextArg() { result = super.getArgument(0) } + + // Expr getInputArg() { result = super.getArgument(3) } + + // Expr getOutputArg() { result = super.getArgument(1) } + + // override Crypto::CipherOperationSubtype getCipherOperationSubtype(){ + // result instanceof Crypto::EncryptionSubtype + // } + + // override Crypto::NonceArtifactConsumer getNonceConsumer(){ + // none() + // } + + // override Crypto::CipherInputConsumer getInputConsumer(){ + // none() + // } + + // override Crypto::CipherOutputArtifactInstance getOutputArtifact(){ + // none() + // } + + // override Crypto::AlgorithmConsumer getAlgorithmConsumer(){ + // none() + // } + + // } + + //EVP_EncryptUpdate + + // /** + // * Hash function references in OpenSSL. + // */ + // predicate hash_ref_type_mapping_known(string name, Crypto::THashType algo) { + // // `ma` name has an LN_ or SN_ prefix, which we want to ignore + // // capture any name after the _ prefix using regex matching + // name = ["sha1", "sha160"] and algo instanceof Crypto::SHA1 + // or + // name = ["sha224", "sha256", "sha384", "sha512"] and algo instanceof Crypto::SHA2 + // or + // name = ["sha3-224", "sha3-256", "sha3-384", "sha3-512"] and algo instanceof Crypto::SHA3 + // or + // name = "md2" and algo instanceof Crypto::MD2 + // or + // name = "md4" and algo instanceof Crypto::MD4 + // or + // name = "md5" and algo instanceof Crypto::MD5 + // or + // name = "ripemd160" and algo instanceof Crypto::RIPEMD160 + // or + // name = "whirlpool" and algo instanceof Crypto::WHIRLPOOL + // } + + // predicate hash_ref_type_mapping(FunctionCallOrMacroAccess ref, string name, Crypto::THashType algo) { + // name = ref.getTargetName().regexpCapture("(?:SN_|LN_|EVP_)([a-z0-9]+)", 1) and + // hash_ref_type_mapping_known(name, algo) + // } + + // class FunctionCallOrMacroAccess extends Element { + // FunctionCallOrMacroAccess() { this instanceof FunctionCall or this instanceof MacroAccess } + + // string getTargetName() { + // result = this.(FunctionCall).getTarget().getName() + // or + // result = this.(MacroAccess).getMacroName() + // } + // } + + // class HashAlgorithmCallOrMacro extends Crypto::HashAlgorithmInstance instanceof FunctionCallOrMacroAccess + // { + // HashAlgorithmCallOrMacro() { hash_ref_type_mapping(this, _, _) } + + // string getTargetName() { result = this.(FunctionCallOrMacroAccess).getTargetName() } + // } + + // class HashAlgorithm extends Crypto::HashAlgorithm { + // HashAlgorithmCallOrMacro instance; + + // HashAlgorithm() { this = Crypto::THashAlgorithm(instance) } + + // override string getSHA2OrSHA3DigestSize(Location location) { + // ( + // this.getHashType() instanceof Crypto::SHA2 or + // this.getHashType() instanceof Crypto::SHA3 + // ) and + // exists(string name | + // hash_ref_type_mapping(instance, name, this.getHashType()) and + // result = name.regexpFind("\\d{3}", 0, _) and + // location = instance.getLocation() + // ) + // } + + // override string getRawAlgorithmName() { result = instance.getTargetName() } + + // override Crypto::THashType getHashType() { hash_ref_type_mapping(instance, _, result) } + + // Element getInstance() { result = instance } + + // override Location getLocation() { result = instance.getLocation() } + // } + + // /** + // * Data-flow configuration for key derivation algorithm flow to EVP_KDF_derive. + // */ + // module AlgorithmToEVPKeyDeriveConfig implements DataFlow::ConfigSig { + // predicate isSource(DataFlow::Node source) { + // source.asExpr() = any(KeyDerivationAlgorithm a).getInstance() + // } + + // predicate isSink(DataFlow::Node sink) { + // exists(EVP_KDF_derive kdo | + // sink.asExpr() = kdo.getCall().getAlgorithmArg() + // or + // sink.asExpr() = kdo.getCall().getContextArg() // via `EVP_KDF_CTX_set_params` + // ) + // } + + // predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + // none() // TODO + // } + // } + + // module AlgorithmToEVPKeyDeriveFlow = DataFlow::Global; + + // predicate algorithm_to_EVP_KDF_derive(KeyDerivationAlgorithm algo, EVP_KDF_derive derive) { + // none() + // } + + // /** + // * Key derivation operation (e.g., `EVP_KDF_derive`) + // */ + // class EVP_KDF_derive_FunctionCall extends Crypto::KeyDerivationOperationInstance instanceof FunctionCall + // { + // EVP_KDF_derive_FunctionCall() { this.getTarget().getName() = "EVP_KDF_derive" } + + // Expr getAlgorithmArg() { result = super.getArgument(3) } + + // Expr getContextArg() { result = super.getArgument(0) } + // } + + // class EVP_KDF_derive extends Crypto::KeyDerivationOperation { + // EVP_KDF_derive_FunctionCall instance; + + // EVP_KDF_derive() { this = Crypto::TKeyDerivationOperation(instance) } + + // override Crypto::Algorithm getAlgorithm() { algorithm_to_EVP_KDF_derive(result, this) } + + // EVP_KDF_derive_FunctionCall getCall() { result = instance } + // } + + // /** + // * Key derivation algorithm nodes + // */ + // abstract class KeyDerivationAlgorithm extends Crypto::KeyDerivationAlgorithm { + // abstract Expr getInstance(); + // } + + // /** + // * `EVP_KDF_fetch` returns a key derivation algorithm. + // */ + // class EVP_KDF_fetch_Call extends FunctionCall { + // EVP_KDF_fetch_Call() { this.getTarget().getName() = "EVP_KDF_fetch" } + + // Expr getAlgorithmArg() { result = this.getArgument(1) } + // } + + // class EVP_KDF_fetch_AlgorithmArg extends Crypto::KeyDerivationAlgorithmInstance instanceof Expr { + // EVP_KDF_fetch_AlgorithmArg() { exists(EVP_KDF_fetch_Call call | this = call.getAlgorithmArg()) } + // } + + // predicate kdf_names(string algo) { algo = ["HKDF", "PKCS12KDF", "PBKDF2"] } + + // class KDFAlgorithmStringLiteral extends StringLiteral { + // KDFAlgorithmStringLiteral() { kdf_names(this.getValue().toUpperCase()) } + // } + + // private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { + // predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KDFAlgorithmStringLiteral } + + // predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof EVP_KDF_fetch_AlgorithmArg } + // } + + // module AlgorithmStringToFetchFlow = DataFlow::Global; + + // predicate algorithmStringToKDFFetchArgFlow( + // string name, KDFAlgorithmStringLiteral origin, EVP_KDF_fetch_AlgorithmArg arg + // ) { + // origin.getValue().toUpperCase() = name and + // AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) + // } + + // /** + // * HKDF key derivation algorithm. + // */ + // class HKDF extends KeyDerivationAlgorithm, Crypto::HKDF { + // KDFAlgorithmStringLiteral origin; + // EVP_KDF_fetch_AlgorithmArg instance; + + // HKDF() { + // this = Crypto::TKeyDerivationAlgorithm(instance) and + // algorithmStringToKDFFetchArgFlow("HKDF", origin, instance) + // } + + // override string getRawAlgorithmName() { result = origin.getValue() } + + // override Crypto::HashAlgorithm getHashAlgorithm() { none() } + + // override Crypto::LocatableElement getOrigin(string name) { + // result = origin and name = origin.toString() + // } + + // override Expr getInstance() { result = origin } + // } + + // /** + // * PBKDF2 key derivation algorithm. + // */ + // class PBKDF2 extends KeyDerivationAlgorithm, Crypto::PBKDF2 { + // KDFAlgorithmStringLiteral origin; + // EVP_KDF_fetch_AlgorithmArg instance; + + // PBKDF2() { + // this = Crypto::TKeyDerivationAlgorithm(instance) and + // algorithmStringToKDFFetchArgFlow("PBKDF2", origin, instance) + // } + + // override string getRawAlgorithmName() { result = origin.getValue() } + + // override string getIterationCount(Location location) { none() } // TODO + + // override string getKeyLength(Location location) { none() } // TODO + + // override Crypto::HashAlgorithm getHashAlgorithm() { none() } // TODO + + // override Crypto::LocatableElement getOrigin(string name) { + // result = origin and name = origin.toString() + // } + + // override Expr getInstance() { result = instance } + // } + + // /** + // * PKCS12KDF key derivation algorithm. + // */ + // class PKCS12KDF extends KeyDerivationAlgorithm, Crypto::PKCS12KDF { + // KDFAlgorithmStringLiteral origin; + // EVP_KDF_fetch_AlgorithmArg instance; + + // PKCS12KDF() { + // this = Crypto::TKeyDerivationAlgorithm(instance) and + // algorithmStringToKDFFetchArgFlow("PKCS12KDF", origin, instance) + // } + + // override string getRawAlgorithmName() { result = origin.getValue() } + + // override string getIterationCount(Location location) { none() } // TODO + + // override string getIDByte(Location location) { none() } // TODO + + // override Crypto::HashAlgorithm getHashAlgorithm() { none() } // TODO + + // override Crypto::LocatableElement getOrigin(string name) { + // result = origin and name = origin.toString() + // } + + // override Expr getInstance() { result = instance } + // } +} From de3ff45cba87043af0709026cdc9eccda4404710 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Wed, 5 Mar 2025 15:17:52 -0500 Subject: [PATCH 041/656] Misc updates for OpenSSL modeling to trace algorithm literals to known alg getters, and converting the literal to a TCipherType. --- cpp/ql/lib/experimental/Quantum/Language.qll | 22 +- .../experimental/Quantum/OpenSSL/CtxFlow.qll | 15 +- .../OpenSSL/EVPCipherAlgorithmSource.qll | 148 ++++++ .../Quantum/OpenSSL/EVPCipherConsumers.qll | 4 +- .../Quantum/OpenSSL/LibraryDetector.qll | 10 + .../OpenSSL/OpenSSLAlgorithmGetter.qll | 436 ++++++++++++++++++ ...qll => OpenSSLKnownAlgorithmConstants.qll} | 103 +---- .../codeql/cryptography/Model.qll | 64 +-- 8 files changed, 652 insertions(+), 150 deletions(-) create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/LibraryDetector.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll rename cpp/ql/lib/experimental/Quantum/OpenSSL/{AlgorithmSource.qll => OpenSSLKnownAlgorithmConstants.qll} (96%) diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index 3f1d9aa9bdf..5d4ff4bc686 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -49,19 +49,19 @@ module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { -// TODO: I think this will be inefficient, no? -class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { - override DataFlow::Node getOutputNode() { - result.asExpr() = this - } +// // TODO: I think this will be inefficient, no? +// class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { +// override DataFlow::Node getOutputNode() { +// result.asExpr() = this +// } - override predicate flowsTo(Crypto::FlowAwareElement other) { - // TODO: separate config to avoid blowing up data-flow analysis - GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) - } +// override predicate flowsTo(Crypto::FlowAwareElement other) { +// // TODO: separate config to avoid blowing up data-flow analysis +// GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) +// } - override string getAdditionalDescription() { result = this.toString() } -} +// override string getAdditionalDescription() { result = this.toString() } +// } /** * Definitions of various generic data sources diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll index 54be40729b6..e1b08c9652d 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll @@ -8,17 +8,14 @@ class CTXType extends Type { } class CTXPointerExpr extends Expr { - CTXPointerExpr() { - this.getType() instanceof CTXType and - this.getType() instanceof PointerType + CTXPointerExpr() { + this.getType() instanceof CTXType and + this.getType() instanceof PointerType } } class CTXPointerArgument extends CTXPointerExpr { - CTXPointerArgument() { - - exists(Call c | c.getAnArgument() = this) - } + CTXPointerArgument() { exists(Call c | c.getAnArgument() = this) } Call getCall() { result.getAnArgument() = this } } @@ -31,14 +28,14 @@ class CTXClearCall extends Call { } class CTXCopyOutArgCall extends Call { - CTXCopyOutArgCall() { + CTXCopyOutArgCall() { this.getTarget().getName().toLowerCase().matches(["%copy%"]) and this.getAnArgument() instanceof CTXPointerArgument } } class CTXCopyReturnCall extends Call { - CTXCopyReturnCall() { + CTXCopyReturnCall() { this.getTarget().getName().toLowerCase().matches(["%dup%"]) and this.getAnArgument() instanceof CTXPointerArgument and this instanceof CTXPointerExpr diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll new file mode 100644 index 00000000000..046abf3f43a --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll @@ -0,0 +1,148 @@ +import cpp +import experimental.Quantum.Language +import EVPCipherConsumers +import OpenSSLAlgorithmGetter + +predicate literalToCipherFamilyType(Literal e, Crypto::TCipherType type) { + exists(string name, string algType | algType.toLowerCase().matches("%encryption") | + resolveAlgorithmFromLiteral(e, name, algType) and + ( + name.matches("AES%") and type instanceof Crypto::AES + or + name.matches("ARIA") and type instanceof Crypto::ARIA + or + name.matches("BLOWFISH") and type instanceof Crypto::BLOWFISH + or + name.matches("BF") and type instanceof Crypto::BLOWFISH + or + name.matches("CAMELLIA%") and type instanceof Crypto::CAMELLIA + or + name.matches("CHACHA20") and type instanceof Crypto::CHACHA20 + or + name.matches("CAST5") and type instanceof Crypto::CAST5 + or + name.matches("2DES") and type instanceof Crypto::DOUBLEDES + or + name.matches(["3DES", "TRIPLEDES"]) and type instanceof Crypto::TRIPLEDES + or + name.matches("DES") and type instanceof Crypto::DES + or + name.matches("DESX") and type instanceof Crypto::DESX + or + name.matches("GOST%") and type instanceof Crypto::GOST + or + name.matches("IDEA") and type instanceof Crypto::IDEA + or + name.matches("KUZNYECHIK") and type instanceof Crypto::KUZNYECHIK + or + name.matches("MAGMA") and type instanceof Crypto::MAGMA + or + name.matches("RC2") and type instanceof Crypto::RC2 + or + name.matches("RC4") and type instanceof Crypto::RC4 + or + name.matches("RC5") and type instanceof Crypto::RC5 + or + name.matches("RSA") and type instanceof Crypto::RSA + or + name.matches("SEED") and type instanceof Crypto::SEED + or + name.matches("SM4") and type instanceof Crypto::SM4 + ) + ) +} + +class CipherKnownAlgorithmLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance instanceof Literal +{ + CipherKnownAlgorithmLiteralAlgorithmInstance() { + exists(EVPCipherGetterCall c, DataFlow::Node src, DataFlow::Node sink | + sink = c.getValueArgNode() and + src.asExpr() = this and + KnownAlgorithmLiteralToAlgorithmGetterFlow::flow(src, sink) and + // Not just any known value, but specifically a known cipher operation + exists(string algType | + resolveAlgorithmFromLiteral(src.asExpr(), _, algType) and + algType.toLowerCase().matches("%encryption") + ) + ) + } + + Crypto::AlgorithmConsumer getConsumer() { none() } //result = consumer } + + override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { + none() // TODO: provider defaults + } + + override Crypto::PaddingAlgorithmInstance getPaddingAlgorithm() { none() } + + override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } + + override Crypto::TCipherType getCipherFamily() { literalToCipherFamilyType(this, result) } +} +// override Crypto::TCipherType getCipherFamily() { +// if this.cipherNameMappingKnown(_, super.getAlgorithmName()) +// then this.cipherNameMappingKnown(result, super.getAlgorithmName()) +// else result instanceof Crypto::OtherCipherType +// } +// bindingset[name] +// private predicate cipherNameMappingKnown(Crypto::TCipherType type, string name) { +// name = "AES" and +// type instanceof Crypto::AES +// or +// name = "DES" and +// type instanceof Crypto::DES +// or +// name = "TripleDES" and +// type instanceof Crypto::TripleDES +// or +// name = "IDEA" and +// type instanceof Crypto::IDEA +// or +// name = "CAST5" and +// type instanceof Crypto::CAST5 +// or +// name = "ChaCha20" and +// type instanceof Crypto::ChaCha20 +// or +// name = "RC4" and +// type instanceof Crypto::RC4 +// or +// name = "RC5" and +// type instanceof Crypto::RC5 +// or +// name = "RSA" and +// type instanceof Crypto::RSA +// } +// private predicate modeToNameMappingKnown(Crypto::TBlockCipherModeOperationType type, string name) { +// type instanceof Crypto::ECB and name = "ECB" +// or +// type instanceof Crypto::CBC and name = "CBC" +// or +// type instanceof Crypto::GCM and name = "GCM" +// or +// type instanceof Crypto::CTR and name = "CTR" +// or +// type instanceof Crypto::XTS and name = "XTS" +// or +// type instanceof Crypto::CCM and name = "CCM" +// or +// type instanceof Crypto::SIV and name = "SIV" +// or +// type instanceof Crypto::OCB and name = "OCB" +// } +// override Crypto::TBlockCipherModeOperationType getModeType() { +// if this.modeToNameMappingKnown(_, super.getMode()) +// then this.modeToNameMappingKnown(result, super.getMode()) +// else result instanceof Crypto::OtherMode +// } +// override string getRawModeAlgorithmName() { result = super.getMode() } +// override string getRawPaddingAlgorithmName() { result = super.getPadding() } +// bindingset[name] +// private predicate paddingToNameMappingKnown(Crypto::TPaddingType type, string name) { +// type instanceof Crypto::NoPadding and name = "NOPADDING" +// or +// type instanceof Crypto::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? +// or +// type instanceof Crypto::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% +// } +// } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll index ceabae77374..8717a857385 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll @@ -1,6 +1,6 @@ import EVPCipherInitializer import EVPCipherOperation -import AlgorithmSource +import EVPCipherAlgorithmSource class EVP_Cipher_Initializer_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof EVPCipherInitializerAlgorithmArgument @@ -8,7 +8,7 @@ class EVP_Cipher_Initializer_Algorithm_Consumer extends Crypto::AlgorithmConsume override DataFlow::Node getInputNode() { result.asExpr() = this } override Crypto::AlgorithmElement getAKnownAlgorithmSource() { - result.(CipherLiteralAlgorithmInstance).getConsumer() = this + result.(CipherKnownAlgorithmLiteralAlgorithmInstance).getConsumer() = this } } // //TODO: need a key consumer diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/LibraryDetector.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/LibraryDetector.qll new file mode 100644 index 00000000000..3cd359ce58b --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/LibraryDetector.qll @@ -0,0 +1,10 @@ +import cpp + +predicate isPossibleOpenSSLFunction(Function f) { + isPossibleOpenSSLLocation(f.getADeclarationLocation()) + } + +predicate isPossibleOpenSSLLocation(Location l){ + l.toString().toLowerCase().matches("%openssl%") +} + \ No newline at end of file diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll new file mode 100644 index 00000000000..79491ca2a09 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll @@ -0,0 +1,436 @@ +import cpp +import semmle.code.cpp.dataflow.new.DataFlow +import LibraryDetector +import OpenSSLKnownAlgorithmConstants + +abstract class AlgorithmPassthroughCall extends Call { + abstract DataFlow::Node getInNode(); + + abstract DataFlow::Node getOutNode(); +} + +class CopyAndDupAlgorithmPassthroughCall extends AlgorithmPassthroughCall { + DataFlow::Node inNode; + DataFlow::Node outNode; + + CopyAndDupAlgorithmPassthroughCall() { + // Flow out through any return or other argument of the same type + // Assume flow in and out is asIndirectExpr or asDefinitingArgument since a pointer is assumed + // to be involved + // NOTE: not attempting to detect openssl specific copy/dup functions, but anything suspected to be copy/dup + this.getTarget().getName().toLowerCase().matches(["%_dup", "%_copy"]) and + exists(Expr inArg, Type t | + inArg = this.getAnArgument() and t = inArg.getUnspecifiedType().stripType() + | + inNode.asIndirectExpr() = inArg and + ( + // Case 1: flow through another argument as an out arg of the same type + exists(Expr outArg | + outArg = this.getAnArgument() and + outArg != inArg and + outArg.getUnspecifiedType().stripType() = t + | + outNode.asDefiningArgument() = outArg + ) + or + // Case 2: flow through the return value if the result is the same as the intput type + exists(Expr outArg | outArg = this and outArg.getUnspecifiedType().stripType() = t | + outNode.asIndirectExpr() = outArg + ) + ) + ) + } + + override DataFlow::Node getInNode() { result = inNode } + + override DataFlow::Node getOutNode() { result = outNode } +} + +class NIDToPointerPassthroughCall extends AlgorithmPassthroughCall { + DataFlow::Node inNode; + DataFlow::Node outNode; + + NIDToPointerPassthroughCall() { + this.getTarget().getName() in ["OBJ_nid2obj", "OBJ_nid2ln", "OBJ_nid2sn"] and + inNode.asExpr() = this.getArgument(0) and + outNode.asExpr() = this + //outNode.asIndirectExpr() = this + } + + override DataFlow::Node getInNode() { result = inNode } + + override DataFlow::Node getOutNode() { result = outNode } +} + +class PointerToPointerPassthroughCall extends AlgorithmPassthroughCall { + DataFlow::Node inNode; + DataFlow::Node outNode; + + PointerToPointerPassthroughCall() { + this.getTarget().getName() = "OBJ_txt2obj" and + inNode.asIndirectExpr() = this.getArgument(0) and + outNode.asIndirectExpr() = this + or + //outNode.asExpr() = this + this.getTarget().getName() in ["OBJ_obj2txt", "i2t_ASN1_OBJECT"] and + inNode.asIndirectExpr() = this.getArgument(2) and + outNode.asDefiningArgument() = this.getArgument(0) + } + + override DataFlow::Node getInNode() { result = inNode } + + override DataFlow::Node getOutNode() { result = outNode } +} + +class PointerToNIDPassthroughCall extends AlgorithmPassthroughCall { + DataFlow::Node inNode; + DataFlow::Node outNode; + + PointerToNIDPassthroughCall() { + this.getTarget().getName() in ["OBJ_obj2nid", "OBJ_ln2nid", "OBJ_sn2nid", "OBJ_txt2nid"] and + ( + inNode.asIndirectExpr() = this.getArgument(0) + or + inNode.asExpr() = this.getArgument(0) + ) and + outNode.asExpr() = this + } + + override DataFlow::Node getInNode() { result = inNode } + + override DataFlow::Node getOutNode() { result = outNode } +} + +predicate knownPassThroughStep(DataFlow::Node node1, DataFlow::Node node2) { + exists(AlgorithmPassthroughCall c | c.getInNode() = node1 and c.getOutNode() = node2) +} + +abstract class OpenSSLAlgorithmGetterCall extends Call { + abstract DataFlow::Node getValueArgNode(); + + abstract DataFlow::Node getResultNode(); + + abstract Expr getValueArgExpr(); + + abstract Expr getResultExpr(); +} + +module KnownAlgorithmLiteralToAlgorithmGetterConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + ( + source.asExpr() instanceof Literal and + // 0 sources, for nid are unknown, and 0 otherwise represents a null assignment (ignore as unknown) + exists(source.asExpr().(Literal).getValue().toInt()) implies source.asExpr().(Literal).getValue().toInt() != 0 + //resolveAlgorithmFromLiteral(source.asExpr(),_,_) + ) + } + + predicate isSink(DataFlow::Node sink) { + exists(OpenSSLAlgorithmGetterCall c | c.getValueArgNode() = sink) + } + + predicate isBarrier(DataFlow::Node node) { + // False positive reducer, don't flow out through argv + exists(VariableAccess va, Variable v | + v.getAnAccess() = va and va = node.asExpr() + or + va = node.asIndirectExpr() + | + v.getName().matches("%argv") + ) + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + knownPassThroughStep(node1, node2) + } +} + +module KnownAlgorithmLiteralToAlgorithmGetterFlow = + DataFlow::Global; + +// https://www.openssl.org/docs/manmaster/man3/EVP_CIPHER_fetch.html +class EVPCipherGetterCall extends OpenSSLAlgorithmGetterCall { + DataFlow::Node valueArgNode; + DataFlow::Node resultNode; + Expr valueArgExpr; + Expr resultExpr; + + EVPCipherGetterCall() { + // Flow out through the return pointer itself (trace the pointer, not what it is pointing to) + resultExpr = this and + resultNode.asExpr() = this and + ( + this.getTarget().getName() in ["EVP_get_cipherbyname", "EVP_get_cipherbyobj"] and + valueArgExpr = this.getArgument(0) and + valueArgNode.asExpr() = valueArgExpr + or + this.getTarget().getName() = "EVP_CIPHER_fetch" and + valueArgExpr = this.getArgument(1) and + valueArgNode.asExpr() = valueArgExpr + or + this.getTarget().getName() = "EVP_get_cipherbynid" and + valueArgExpr = this.getArgument(0) and + valueArgNode.asExpr() = valueArgExpr + ) + } + + override DataFlow::Node getValueArgNode() { result = valueArgNode } + + override DataFlow::Node getResultNode() { result = resultNode } + + override Expr getValueArgExpr() { result = valueArgExpr } + + override Expr getResultExpr() { result = resultExpr } +} +// /** +// * Predicates/classes for identifying algorithm sinks. +// * An Algorithm Sink is a function that takes an algorithm as an argument. +// * In particular, any function that takes in an algorithm that until the call +// * the algorithm is not definitely known to be an algorithm (e.g., an integer used as an identifier to fetch an algorithm) +// */ +// //TODO: enforce a hierarchy of AlgorithmSinkArgument, e.g., so I can get all Asymmetric SinkArguments that includes all the strictly RSA etc. +// import cpp +// // import experimental.cryptography.utils.OpenSSL.LibraryFunction +// // import experimental.cryptography.CryptoAlgorithmNames +// predicate isAlgorithmSink(AlgorithmSinkArgument arg, string algType) { arg.algType() = algType } +// abstract class AlgorithmSinkArgument extends Expr { +// AlgorithmSinkArgument() { +// exists(Call c | c.getAnArgument() = this and openSSLLibraryFunc(c.getTarget())) +// } +// /** +// * Gets the function call in which the argument exists +// */ +// Call getSinkCall() { result.getAnArgument() = this } +// abstract string algType(); +// } +// // https://www.openssl.org/docs/manmaster/man3/EVP_CIPHER_fetch.html +// predicate cipherAlgorithmSink(string funcName, int argInd) { +// funcName in ["EVP_get_cipherbyname", "EVP_get_cipherbynid", "EVP_get_cipherbyobj"] and argInd = 0 +// or +// funcName = "EVP_CIPHER_fetch" and argInd = 1 +// } +// class CipherAlgorithmSink extends AlgorithmSinkArgument { +// CipherAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// cipherAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = getSymmetricEncryptionType() } +// } +// // https://www.openssl.org/docs/manmaster/man3/EVP_MAC_fetch +// predicate macAlgorithmSink(string funcName, int argInd) { +// (funcName = "EVP_MAC_fetch" and argInd = 1) +// } +// class MACAlgorithmSink extends AlgorithmSinkArgument { +// MACAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// macAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = "TBD" } +// } +// // https://www.openssl.org/docs/manmaster/man3/EVP_MD_fetch +// predicate messageDigestAlgorithmSink(string funcName, int argInd) { +// funcName in ["EVP_get_digestbyname", "EVP_get_digestbynid", "EVP_get_digestbyobj"] and argInd = 0 +// or +// funcName = "EVP_MD_fetch" and argInd = 1 +// } +// class MessageDigestAlgorithmSink extends AlgorithmSinkArgument { +// MessageDigestAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// messageDigestAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = getHashType() } +// } +// // https://www.openssl.org/docs/manmaster/man3/EVP_KEYEXCH_fetch +// // https://www.openssl.org/docs/manmaster/man3/EVP_KEM_fetch +// predicate keyExchangeAlgorithmSink(string funcName, int argInd) { +// funcName = "EVP_KEYEXCH_fetch" and argInd = 1 +// or +// funcName = "EVP_KEM_fetch" and argInd = 1 +// } +// class KeyExchangeAlgorithmSink extends AlgorithmSinkArgument { +// KeyExchangeAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// keyExchangeAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = getKeyExchangeType() } +// } +// // https://www.openssl.org/docs/manmaster/man3/EVP_KEYMGMT_fetch +// predicate keyManagementAlgorithmSink(string funcName, int argInd) { +// funcName = "EVP_KEYMGMT_fetch" and argInd = 1 +// } +// class KeyManagementAlgorithmSink extends AlgorithmSinkArgument { +// KeyManagementAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// keyManagementAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = "TBD" } +// } +// // https://www.openssl.org/docs/manmaster/man3/EVP_KDF +// predicate keyDerivationAlgorithmSink(string funcName, int argInd) { +// funcName = "EVP_KDF_fetch" and argInd = 1 +// } +// class KeyDerivationAlgorithmSink extends AlgorithmSinkArgument { +// KeyDerivationAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// keyDerivationAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = getKeyDerivationType() } +// } +// // https://www.openssl.org/docs/manmaster/man3/EVP_ASYM_CIPHER_fetch +// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_new_id +// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_new_CMAC_key.html +// predicate asymmetricCipherAlgorithmSink(string funcName, int argInd) { +// funcName = "EVP_ASYM_CIPHER_fetch" and argInd = 1 +// or +// funcName = "EVP_PKEY_new_CMAC_key" and argInd = 3 +// // NOTE: other cases are handled by AsymmetricAlgorithmSink +// } +// class AsymmetricCipherAlgorithmSink extends AlgorithmSinkArgument { +// AsymmetricCipherAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// asymmetricCipherAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = "ASYMMETRIC_ENCRYPTION" } +// } +// class AsymmetricCipherAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { +// AsymmetricCipherAlgorithmSink_EVP_PKEY_Q_keygen() { +// exists(Call c, string funcName | +// funcName = c.getTarget().getName() and +// this = c.getArgument(3) +// | +// funcName = "EVP_PKEY_Q_keygen" and +// c.getArgument(3).getType().getUnderlyingType() instanceof IntegralType +// ) +// } +// override string algType() { result = "ASYMMETRIC_ENCRYPTION" } +// } +// // https://www.openssl.org/docs/manmaster/man3/EVP_RAND_fetch +// predicate randomAlgorithmSink(string funcName, int argInd) { +// funcName = "EVP_RAND_fetch" and argInd = 1 +// } +// class RandomAlgorithmSink extends AlgorithmSinkArgument { +// RandomAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// randomAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = "TBD" } +// } +// // https://www.openssl.org/docs/manmaster/man3/EVP_SIGNATURE_fetch +// predicate signatureAlgorithmSink(string funcName, int argInd) { +// funcName = "EVP_SIGNATURE_fetch" and argInd = 1 +// } +// class SignatureAlgorithmSink extends AlgorithmSinkArgument { +// SignatureAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// signatureAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = getSignatureType() } +// } +// // https://www.openssl.org/docs/manmaster/man3/EC_KEY_new_by_curve_name.html +// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.html +// predicate ellipticCurveAlgorithmSink(string funcName, int argInd) { +// funcName in ["EC_KEY_new_by_curve_name", "EVP_EC_gen"] and argInd = 0 +// or +// funcName = "EC_KEY_new_by_curve_name_ex" and argInd = 2 +// or +// funcName in ["EVP_PKEY_CTX_set_ec_paramgen_curve_nid"] and argInd = 1 +// } +// class EllipticCurveAlgorithmSink extends AlgorithmSinkArgument { +// EllipticCurveAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// ellipticCurveAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = getEllipticCurveType() } +// } +// /** +// * Special cased to address the fact that arg index 3 (zero offset based) is the curve name. +// * ASSUMPTION: if the arg ind 3 is a char* assume it is an elliptic curve +// */ +// class EllipticCurveAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { +// EllipticCurveAlgorithmSink_EVP_PKEY_Q_keygen() { +// exists(Call c, string funcName | +// funcName = c.getTarget().getName() and +// this = c.getArgument(3) +// | +// funcName = "EVP_PKEY_Q_keygen" and +// c.getArgument(3).getType().getUnderlyingType() instanceof PointerType and +// c.getArgument(3).getType().getUnderlyingType().stripType() instanceof CharType +// ) +// } +// override string algType() { result = getEllipticCurveType() } +// } +// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_new_id.html +// // https://www.openssl.org/docs/man1.1.1/man3/EVP_PKEY_new_raw_private_key.html +// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_new.html +// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_ctrl.html +// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_Q_keygen.html +// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_ctrl.html +// predicate asymmetricAlgorithmSink(string funcName, int argInd) { +// funcName = "EVP_PKEY_CTX_new_id" and argInd = 0 +// or +// funcName = "EVP_PKEY_CTX_new_from_name" and argInd = 1 +// or +// funcName in [ +// "EVP_PKEY_new_raw_private_key", "EVP_PKEY_new_raw_public_key", "EVP_PKEY_new_mac_key" +// ] and +// argInd = 0 +// or +// funcName in ["EVP_PKEY_new_raw_private_key_ex", "EVP_PKEY_new_raw_public_key_ex"] and argInd = 1 +// or +// // special casing this as arg index 3 must be specified depending on if RSA or ECC, and otherwise not specified for other algs +// // funcName = "EVP_PKEY_Q_keygen" and argInd = 2 +// funcName in ["EVP_PKEY_CTX_ctrl", "EVP_PKEY_CTX_set_group_name"] and argInd = 1 +// // TODO consider void cases EVP_PKEY_new +// } +// class AsymmetricAlgorithmSink extends AlgorithmSinkArgument { +// AsymmetricAlgorithmSink() { +// exists(Call c, string funcName, int argInd | +// funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// | +// asymmetricAlgorithmSink(funcName, argInd) +// ) +// } +// override string algType() { result = getAsymmetricType() } +// } +// class AsymmetricAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { +// AsymmetricAlgorithmSink_EVP_PKEY_Q_keygen() { +// exists(Call c, string funcName | +// funcName = c.getTarget().getName() and +// this = c.getArgument(2) +// | +// funcName = "EVP_PKEY_Q_keygen" and +// not exists(c.getArgument(3)) +// ) +// } +// override string algType() { result = getAsymmetricType() } +// } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll similarity index 96% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmSource.qll rename to cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll index f409578e98d..dcf24d01ace 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll @@ -1,104 +1,5 @@ import cpp -import experimental.Quantum.Language -import EVPCipherConsumers -/** - * Note: padding and a mode of operation will only exist when the padding / mode (*and its type*) are determinable. - * This is because the mode will always be specified alongside the algorithm and never independently. - * Therefore, we can always assume that a determinable algorithm will have a determinable mode. - * - * In the case that only an algorithm is specified, e.g., "AES", the provider provides a default mode. - * - * TODO: Model the case of relying on a provider default, but alert on it as a bad practice. - */ -class CipherLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance instanceof ConstantDataSource -{ - Crypto::AlgorithmConsumer consumer; // TODO: I need to make this an open SSL algorithm consumer specifically - - CipherLiteralAlgorithmInstance() { - GenericDataSourceUniversalFlow::flow(DataFlow::exprNode(this), DataFlow::exprNode(consumer)) - } - - Crypto::AlgorithmConsumer getConsumer() { result = consumer } - - override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { - none() // TODO: provider defaults - } - - override Crypto::PaddingAlgorithmInstance getPaddingAlgorithm() { none() } - - override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } - - override Crypto::TCipherType getCipherFamily() { none() } -} - -// override Crypto::TCipherType getCipherFamily() { -// if this.cipherNameMappingKnown(_, super.getAlgorithmName()) -// then this.cipherNameMappingKnown(result, super.getAlgorithmName()) -// else result instanceof Crypto::OtherCipherType -// } -// bindingset[name] -// private predicate cipherNameMappingKnown(Crypto::TCipherType type, string name) { -// name = "AES" and -// type instanceof Crypto::AES -// or -// name = "DES" and -// type instanceof Crypto::DES -// or -// name = "TripleDES" and -// type instanceof Crypto::TripleDES -// or -// name = "IDEA" and -// type instanceof Crypto::IDEA -// or -// name = "CAST5" and -// type instanceof Crypto::CAST5 -// or -// name = "ChaCha20" and -// type instanceof Crypto::ChaCha20 -// or -// name = "RC4" and -// type instanceof Crypto::RC4 -// or -// name = "RC5" and -// type instanceof Crypto::RC5 -// or -// name = "RSA" and -// type instanceof Crypto::RSA -// } -// private predicate modeToNameMappingKnown(Crypto::TBlockCipherModeOperationType type, string name) { -// type instanceof Crypto::ECB and name = "ECB" -// or -// type instanceof Crypto::CBC and name = "CBC" -// or -// type instanceof Crypto::GCM and name = "GCM" -// or -// type instanceof Crypto::CTR and name = "CTR" -// or -// type instanceof Crypto::XTS and name = "XTS" -// or -// type instanceof Crypto::CCM and name = "CCM" -// or -// type instanceof Crypto::SIV and name = "SIV" -// or -// type instanceof Crypto::OCB and name = "OCB" -// } -// override Crypto::TBlockCipherModeOperationType getModeType() { -// if this.modeToNameMappingKnown(_, super.getMode()) -// then this.modeToNameMappingKnown(result, super.getMode()) -// else result instanceof Crypto::OtherMode -// } -// override string getRawModeAlgorithmName() { result = super.getMode() } -// override string getRawPaddingAlgorithmName() { result = super.getPadding() } -// bindingset[name] -// private predicate paddingToNameMappingKnown(Crypto::TPaddingType type, string name) { -// type instanceof Crypto::NoPadding and name = "NOPADDING" -// or -// type instanceof Crypto::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? -// or -// type instanceof Crypto::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% -// } -// } /** * Resolves literal `e` to a known algorithm name, nid, normalized name, and algType * if `e` resolves to a known algorithm. @@ -992,7 +893,7 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "hmac-sha1" and nid = 781 and normalized = "SHA1" and algType = "HASH" or - name = "md_gost94" and nid = 809 and normalized = "GOST94" and algType = "SYMMETRIC_ENCRYPTION" + name = "md_gost94" and nid = 809 and normalized = "GOST94" and algType = "HASH" or name = "gost94" and nid = 812 and normalized = "GOST94" and algType = "SYMMETRIC_ENCRYPTION" or @@ -2432,7 +2333,7 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "pbe-md2-des" and nid = 9 and normalized = "MD2" and algType = "HASH" or - name = "pbe-md2-des" and nid = 9 and normalized = "2DES" and algType = "SYMMETRIC_ENCRYPTION" + name = "pbe-md2-des" and nid = 9 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" or name = "pbe-md2-rc2-64" and nid = 168 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" or diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 243d52cd2e6..522ff3b2784 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -864,16 +864,26 @@ module CryptographyBase Input> { */ newtype TCipherType = AES() or - Camellia() or - DES() or - TripleDES() or - IDEA() or + ARIA() or + BLOWFISH() or + CAMELLIA() or CAST5() or - ChaCha20() or + CHACHA20() or + DES() or + DESX() or + GOST() or + IDEA() or + KUZNYECHIK() or + MAGMA() or + TRIPLEDES() or + DOUBLEDES() or + RC2() or RC4() or RC5() or RSA() or - OtherCipherType() + SEED() or + SM4() or + OTHERCIPHERTYPE() final class CipherAlgorithmNode extends AlgorithmNode, TCipherAlgorithm { CipherAlgorithmInstance instance; @@ -922,27 +932,27 @@ module CryptographyBase Input> { final private predicate cipherFamilyToNameAndStructure( TCipherType type, string name, TCipherStructureType s ) { - type instanceof AES and name = "AES" and s = Block() - or - type instanceof Camellia and name = "Camellia" and s = Block() - or - type instanceof DES and name = "DES" and s = Block() - or - type instanceof TripleDES and name = "TripleDES" and s = Block() - or - type instanceof IDEA and name = "IDEA" and s = Block() - or - type instanceof CAST5 and name = "CAST5" and s = Block() - or - type instanceof ChaCha20 and name = "ChaCha20" and s = Stream() - or - type instanceof RC4 and name = "RC4" and s = Stream() - or - type instanceof RC5 and name = "RC5" and s = Block() - or - type instanceof RSA and name = "RSA" and s = Asymmetric() - or - type instanceof OtherCipherType and + type instanceof AES and name = "AES" and s = Block() or + type instanceof ARIA and name = "ARIA" and s = Block() or + type instanceof BLOWFISH and name = "Blowfish" and s = Block() or + type instanceof CAMELLIA and name = "Camellia" and s = Block() or + type instanceof CAST5 and name = "CAST5" and s = Block() or + type instanceof CHACHA20 and name = "ChaCha20" and s = Stream() or + type instanceof DES and name = "DES" and s = Block() or + type instanceof DESX and name = "DESX" and s = Block() or + type instanceof GOST and name = "GOST" and s = Block() or + type instanceof IDEA and name = "IDEA" and s = Block() or + type instanceof KUZNYECHIK and name = "Kuznyechik" and s = Block() or + type instanceof MAGMA and name = "Magma" and s = Block() or + type instanceof TRIPLEDES and name = "TripleDES" and s = Block() or + type instanceof DOUBLEDES and name = "DoubleDES" and s = Block() or + type instanceof RC2 and name = "RC2" and s = Block() or + type instanceof RC4 and name = "RC4" and s = Stream() or + type instanceof RC5 and name = "RC5" and s = Block() or + type instanceof RSA and name = "RSA" and s = Asymmetric() or + type instanceof SEED and name = "SEED" and s = Block() or + type instanceof SM4 and name = "SM4" and s = Block() or + type instanceof OTHERCIPHERTYPE and name = this.getRawAlgorithmName() and s = UnknownCipherStructureType() } From 6083df2b7f22955bf123982f7a66760e3f756aa2 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Wed, 5 Mar 2025 15:48:08 -0500 Subject: [PATCH 042/656] Completed tying algorithm instances to consumers. Now the model should have known literals for cipher instances, and it traces those instances to consumers (inits) and those inits are traced to cipher operations. --- .../OpenSSL/EVPCipherAlgorithmSource.qll | 10 ++++++--- .../OpenSSL/OpenSSLAlgorithmGetter.qll | 22 ++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll index 046abf3f43a..c6810c0ab39 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll @@ -52,11 +52,13 @@ predicate literalToCipherFamilyType(Literal e, Crypto::TCipherType type) { ) } + class CipherKnownAlgorithmLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance instanceof Literal { + OpenSSLAlgorithmGetterCall cipherGetterCall; CipherKnownAlgorithmLiteralAlgorithmInstance() { - exists(EVPCipherGetterCall c, DataFlow::Node src, DataFlow::Node sink | - sink = c.getValueArgNode() and + exists(DataFlow::Node src, DataFlow::Node sink | + sink = cipherGetterCall.getValueArgNode() and src.asExpr() = this and KnownAlgorithmLiteralToAlgorithmGetterFlow::flow(src, sink) and // Not just any known value, but specifically a known cipher operation @@ -67,7 +69,9 @@ class CipherKnownAlgorithmLiteralAlgorithmInstance extends Crypto::CipherAlgorit ) } - Crypto::AlgorithmConsumer getConsumer() { none() } //result = consumer } + Crypto::AlgorithmConsumer getConsumer() { + AlgGetterToAlgConsumerFlow::flow(cipherGetterCall.getResultNode(), DataFlow::exprNode(result)) + } override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { none() // TODO: provider defaults diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll index 79491ca2a09..0b1f5546c4b 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll @@ -2,6 +2,19 @@ import cpp import semmle.code.cpp.dataflow.new.DataFlow import LibraryDetector import OpenSSLKnownAlgorithmConstants +import experimental.Quantum.Language + +module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + exists(OpenSSLAlgorithmGetterCall c | c.getResultNode() = source) + } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::AlgorithmConsumer c | c.getInputNode() = sink) + } +} + +module AlgGetterToAlgConsumerFlow = DataFlow::Global; abstract class AlgorithmPassthroughCall extends Call { abstract DataFlow::Node getInNode(); @@ -116,14 +129,7 @@ abstract class OpenSSLAlgorithmGetterCall extends Call { } module KnownAlgorithmLiteralToAlgorithmGetterConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - ( - source.asExpr() instanceof Literal and - // 0 sources, for nid are unknown, and 0 otherwise represents a null assignment (ignore as unknown) - exists(source.asExpr().(Literal).getValue().toInt()) implies source.asExpr().(Literal).getValue().toInt() != 0 - //resolveAlgorithmFromLiteral(source.asExpr(),_,_) - ) - } + predicate isSource(DataFlow::Node source) { resolveAlgorithmFromLiteral(source.asExpr(), _, _) } predicate isSink(DataFlow::Node sink) { exists(OpenSSLAlgorithmGetterCall c | c.getValueArgNode() = sink) From b9bd199432e19a8d3a8235aa479ee4eea33aebc7 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 6 Mar 2025 13:39:23 -0500 Subject: [PATCH 043/656] Regression fixes for JCA --- java/ql/lib/experimental/Quantum/JCA.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 5cb7bcf23dc..5d5184fdda2 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -123,7 +123,7 @@ module JCAModel { override Crypto::TCipherType getCipherFamily() { if this.cipherNameMappingKnown(_, super.getAlgorithmName()) then this.cipherNameMappingKnown(result, super.getAlgorithmName()) - else result instanceof Crypto::OtherCipherType + else result instanceof Crypto::OTHERCIPHERTYPE } bindingset[name] @@ -135,7 +135,7 @@ module JCAModel { type instanceof Crypto::DES or name = "TripleDES" and - type instanceof Crypto::TripleDES + type instanceof Crypto::TRIPLEDES or name = "IDEA" and type instanceof Crypto::IDEA @@ -144,7 +144,7 @@ module JCAModel { type instanceof Crypto::CAST5 or name = "ChaCha20" and - type instanceof Crypto::ChaCha20 + type instanceof Crypto::CHACHA20 or name = "RC4" and type instanceof Crypto::RC4 From 32d29ffde3c1f0392c0b4e7fc72bc95d8a493806 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 7 Mar 2025 10:02:36 -0500 Subject: [PATCH 044/656] Changed casing on TCipherType, Added some initial fixes for hash support, started developing openssl hashing modeling. --- .../OpenSSL/EVPCipherAlgorithmSource.qll | 11 +- .../OpenSSL/EVPDigestAlgorithmSource.qll | 65 +++++++++++ .../Quantum/OpenSSL/EVPHashOperation.qll | 5 + .../OpenSSL/OpenSSLAlgorithmGetter.qll | 34 +++++- java/ql/lib/experimental/Quantum/JCA.qll | 4 +- .../codeql/cryptography/Model.qll | 108 ++++++++++++------ 6 files changed, 185 insertions(+), 42 deletions(-) create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll index c6810c0ab39..8aa4f88a81b 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll @@ -3,7 +3,7 @@ import experimental.Quantum.Language import EVPCipherConsumers import OpenSSLAlgorithmGetter -predicate literalToCipherFamilyType(Literal e, Crypto::TCipherType type) { +predicate literalToCipherFamilyType(Literal e, Crypto::TCipherType type) { exists(string name, string algType | algType.toLowerCase().matches("%encryption") | resolveAlgorithmFromLiteral(e, name, algType) and ( @@ -21,9 +21,9 @@ predicate literalToCipherFamilyType(Literal e, Crypto::TCipherType type) { or name.matches("CAST5") and type instanceof Crypto::CAST5 or - name.matches("2DES") and type instanceof Crypto::DOUBLEDES + name.matches("2DES") and type instanceof Crypto::DoubleDES or - name.matches(["3DES", "TRIPLEDES"]) and type instanceof Crypto::TRIPLEDES + name.matches(["3DES", "TRIPLEDES"]) and type instanceof Crypto::TripleDES or name.matches("DES") and type instanceof Crypto::DES or @@ -52,7 +52,6 @@ predicate literalToCipherFamilyType(Literal e, Crypto::TCipherType type) { ) } - class CipherKnownAlgorithmLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance instanceof Literal { OpenSSLAlgorithmGetterCall cipherGetterCall; @@ -81,7 +80,9 @@ class CipherKnownAlgorithmLiteralAlgorithmInstance extends Crypto::CipherAlgorit override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } - override Crypto::TCipherType getCipherFamily() { literalToCipherFamilyType(this, result) } + override Crypto::TCipherType getCipherFamily() { + literalToCipherFamilyType(this, result) + } } // override Crypto::TCipherType getCipherFamily() { // if this.cipherNameMappingKnown(_, super.getAlgorithmName()) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll new file mode 100644 index 00000000000..aa9c4008dd1 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll @@ -0,0 +1,65 @@ +import cpp +import experimental.Quantum.Language +import EVPCipherConsumers +import OpenSSLAlgorithmGetter + +predicate literalToHashFamilyType(Literal e, Crypto::THashType type) { + exists(string name, string algType | algType.toLowerCase().matches("%hash") | + resolveAlgorithmFromLiteral(e, name, algType) and + ( + name.matches("BLAKE2B") and type instanceof Crypto::BLAKE2B + or + name.matches("BLAKE2S") and type instanceof Crypto::BLAKE2S + or + name.matches("RIPEMD160") and type instanceof Crypto::RIPEMD160 + or + name.matches("MD2") and type instanceof Crypto::MD2 + or + name.matches("MD4") and type instanceof Crypto::MD4 + or + name.matches("MD5") and type instanceof Crypto::MD5 + or + name.matches("POLY1305") and type instanceof Crypto::POLY1305 + or + name.matches(["SHA1", "SHA"]) and type instanceof Crypto::SHA1 + or + name.matches("SHA2") and type instanceof Crypto::SHA2 + or + name.matches("SHA3") and type instanceof Crypto::SHA3 + or + name.matches("SHAKE") and type instanceof Crypto::SHAKE + or + name.matches("SM3") and type instanceof Crypto::SM3 + or + name.matches("WHIRLPOOL") and type instanceof Crypto::WHIRLPOOL + // TODO: what about MD_GOST? + ) + ) +} + +class HashKnownAlgorithmLiteralAlgorithmInstance extends Crypto::HashAlgorithmInstance instanceof Literal +{ + OpenSSLAlgorithmGetterCall cipherGetterCall; + + HashKnownAlgorithmLiteralAlgorithmInstance() { + exists(DataFlow::Node src, DataFlow::Node sink | + sink = cipherGetterCall.getValueArgNode() and + src.asExpr() = this and + KnownAlgorithmLiteralToAlgorithmGetterFlow::flow(src, sink) and + // Not just any known value, but specifically a known cipher operation + exists(string algType | + resolveAlgorithmFromLiteral(src.asExpr(), _, algType) and + algType.toLowerCase().matches("hash") + ) + ) + } + + // TODO: should this not be part of the abstract algorithm definition? + Crypto::AlgorithmConsumer getConsumer() { + AlgGetterToAlgConsumerFlow::flow(cipherGetterCall.getResultNode(), DataFlow::exprNode(result)) + } + + override Crypto::THashType getHashFamily() { literalToHashFamilyType(this, result) } + + override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll new file mode 100644 index 00000000000..91b3f2ea62b --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll @@ -0,0 +1,5 @@ +import experimental.Quantum.Language +import CtxFlow as CTXFlow + + +//https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis \ No newline at end of file diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll index 0b1f5546c4b..30ffd1e1f3e 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll @@ -162,9 +162,9 @@ class EVPCipherGetterCall extends OpenSSLAlgorithmGetterCall { Expr resultExpr; EVPCipherGetterCall() { - // Flow out through the return pointer itself (trace the pointer, not what it is pointing to) resultExpr = this and resultNode.asExpr() = this and + isPossibleOpenSSLFunction(this.getTarget()) and ( this.getTarget().getName() in ["EVP_get_cipherbyname", "EVP_get_cipherbyobj"] and valueArgExpr = this.getArgument(0) and @@ -188,6 +188,38 @@ class EVPCipherGetterCall extends OpenSSLAlgorithmGetterCall { override Expr getResultExpr() { result = resultExpr } } + +class EVPDigestGetterCall extends OpenSSLAlgorithmGetterCall { + DataFlow::Node valueArgNode; + DataFlow::Node resultNode; + Expr valueArgExpr; + Expr resultExpr; + + EVPDigestGetterCall() { + resultExpr = this and + resultNode.asExpr() = this and + isPossibleOpenSSLFunction(this.getTarget()) and + ( + this.getTarget().getName() in [ + "EVP_get_digestbyname", "EVP_get_digestbyobj", "EVP_get_digestbynid" + ] and + valueArgExpr = this.getArgument(0) and + valueArgNode.asExpr() = valueArgExpr + or + this.getTarget().getName() = "EVP_MD_fetch" and + valueArgExpr = this.getArgument(1) and + valueArgNode.asExpr() = valueArgExpr + ) + } + + override DataFlow::Node getValueArgNode() { result = valueArgNode } + + override DataFlow::Node getResultNode() { result = resultNode } + + override Expr getValueArgExpr() { result = valueArgExpr } + + override Expr getResultExpr() { result = resultExpr } +} // /** // * Predicates/classes for identifying algorithm sinks. // * An Algorithm Sink is a function that takes an algorithm as an argument. diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 5d5184fdda2..b2698cabee2 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -123,7 +123,7 @@ module JCAModel { override Crypto::TCipherType getCipherFamily() { if this.cipherNameMappingKnown(_, super.getAlgorithmName()) then this.cipherNameMappingKnown(result, super.getAlgorithmName()) - else result instanceof Crypto::OTHERCIPHERTYPE + else result instanceof Crypto::OtherCipherType } bindingset[name] @@ -135,7 +135,7 @@ module JCAModel { type instanceof Crypto::DES or name = "TripleDES" and - type instanceof Crypto::TRIPLEDES + type instanceof Crypto::TripleDES or name = "IDEA" and type instanceof Crypto::IDEA diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 522ff3b2784..e3a1a6123ec 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -140,7 +140,13 @@ module CryptographyBase Input> { /** * An element that represents a _known_ cryptographic algorithm. */ - abstract class AlgorithmElement extends KnownElement { } + abstract class AlgorithmElement extends KnownElement { + /** + * Gets the raw name as it appears in source, e.g., "AES/CBC/PKCS7Padding". + * This name is not parsed or formatted. + */ + abstract string getRawAlgorithmName(); + } /** * An element that represents a _known_ cryptographic artifact. @@ -286,12 +292,6 @@ module CryptographyBase Input> { } abstract class CipherAlgorithmInstance extends AlgorithmElement { - /** - * Gets the raw name as it appears in source, e.g., "AES/CBC/PKCS7Padding". - * This name is not parsed or formatted. - */ - abstract string getRawAlgorithmName(); - /** * Gets the type of this cipher, e.g., "AES" or "ChaCha20". */ @@ -358,7 +358,12 @@ module CryptographyBase Input> { abstract class HashOperationInstance extends KnownElement { } - abstract class HashAlgorithmInstance extends KnownElement { } + abstract class HashAlgorithmInstance extends AlgorithmElement { + /** + * Gets the type of this digest algorithm, e.g., "SHA1", "SHA2", "MD5" etc. + */ + abstract THashType getHashFamily(); + } abstract class KeyDerivationOperationInstance extends KnownElement { } @@ -875,15 +880,15 @@ module CryptographyBase Input> { IDEA() or KUZNYECHIK() or MAGMA() or - TRIPLEDES() or - DOUBLEDES() or + TripleDES() or + DoubleDES() or RC2() or RC4() or RC5() or RSA() or SEED() or SM4() or - OTHERCIPHERTYPE() + OtherCipherType() final class CipherAlgorithmNode extends AlgorithmNode, TCipherAlgorithm { CipherAlgorithmInstance instance; @@ -932,27 +937,47 @@ module CryptographyBase Input> { final private predicate cipherFamilyToNameAndStructure( TCipherType type, string name, TCipherStructureType s ) { - type instanceof AES and name = "AES" and s = Block() or - type instanceof ARIA and name = "ARIA" and s = Block() or - type instanceof BLOWFISH and name = "Blowfish" and s = Block() or - type instanceof CAMELLIA and name = "Camellia" and s = Block() or - type instanceof CAST5 and name = "CAST5" and s = Block() or - type instanceof CHACHA20 and name = "ChaCha20" and s = Stream() or - type instanceof DES and name = "DES" and s = Block() or - type instanceof DESX and name = "DESX" and s = Block() or - type instanceof GOST and name = "GOST" and s = Block() or - type instanceof IDEA and name = "IDEA" and s = Block() or - type instanceof KUZNYECHIK and name = "Kuznyechik" and s = Block() or - type instanceof MAGMA and name = "Magma" and s = Block() or - type instanceof TRIPLEDES and name = "TripleDES" and s = Block() or - type instanceof DOUBLEDES and name = "DoubleDES" and s = Block() or - type instanceof RC2 and name = "RC2" and s = Block() or - type instanceof RC4 and name = "RC4" and s = Stream() or - type instanceof RC5 and name = "RC5" and s = Block() or - type instanceof RSA and name = "RSA" and s = Asymmetric() or - type instanceof SEED and name = "SEED" and s = Block() or - type instanceof SM4 and name = "SM4" and s = Block() or - type instanceof OTHERCIPHERTYPE and + type instanceof AES and name = "AES" and s = Block() + or + type instanceof ARIA and name = "ARIA" and s = Block() + or + type instanceof BLOWFISH and name = "Blowfish" and s = Block() + or + type instanceof CAMELLIA and name = "Camellia" and s = Block() + or + type instanceof CAST5 and name = "CAST5" and s = Block() + or + type instanceof CHACHA20 and name = "ChaCha20" and s = Stream() + or + type instanceof DES and name = "DES" and s = Block() + or + type instanceof DESX and name = "DESX" and s = Block() + or + type instanceof GOST and name = "GOST" and s = Block() + or + type instanceof IDEA and name = "IDEA" and s = Block() + or + type instanceof KUZNYECHIK and name = "Kuznyechik" and s = Block() + or + type instanceof MAGMA and name = "Magma" and s = Block() + or + type instanceof TripleDES and name = "TripleDES" and s = Block() + or + type instanceof DoubleDES and name = "DoubleDES" and s = Block() + or + type instanceof RC2 and name = "RC2" and s = Block() + or + type instanceof RC4 and name = "RC4" and s = Stream() + or + type instanceof RC5 and name = "RC5" and s = Block() + or + type instanceof RSA and name = "RSA" and s = Asymmetric() + or + type instanceof SEED and name = "SEED" and s = Block() + or + type instanceof SM4 and name = "SM4" and s = Block() + or + type instanceof OtherCipherType and name = this.getRawAlgorithmName() and s = UnknownCipherStructureType() } @@ -1004,13 +1029,18 @@ module CryptographyBase Input> { } newtype THashType = + BLAKE2B() or + BLAKE2S() or + RIPEMD160() or MD2() or MD4() or MD5() or + POLY1305() or SHA1() or SHA2() or SHA3() or - RIPEMD160() or + SHAKE() or + SM3() or WHIRLPOOL() or OtherHashType() @@ -1021,19 +1051,29 @@ module CryptographyBase Input> { override string getInternalType() { result = "HashAlgorithm" } final predicate hashTypeToNameMapping(THashType type, string name) { + type instanceof BLAKE2B and name = "BLAKE2B" + or + type instanceof BLAKE2S and name = "BLAKE2S" + or + type instanceof RIPEMD160 and name = "RIPEMD160" + or type instanceof MD2 and name = "MD2" or type instanceof MD4 and name = "MD4" or type instanceof MD5 and name = "MD5" or + type instanceof POLY1305 and name = "POLY1305" + or type instanceof SHA1 and name = "SHA1" or type instanceof SHA2 and name = "SHA2" or type instanceof SHA3 and name = "SHA3" or - type instanceof RIPEMD160 and name = "RIPEMD160" + type instanceof SHAKE and name = "SHAKE" + or + type instanceof SM3 and name = "SM3" or type instanceof WHIRLPOOL and name = "WHIRLPOOL" or From cf72fde911b1d73047454009aa5bdb268f0dbabb Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 7 Mar 2025 12:11:12 -0500 Subject: [PATCH 045/656] Fixing cross product in getPropertyAsGraphString (parameter `root` not bound in all cases, fixing using a bindingetset) --- shared/cryptography/codeql/cryptography/Model.qll | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index e3a1a6123ec..5a6cd3288fe 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -32,13 +32,16 @@ module CryptographyBase Input> { UnknownPropertyValue() { this = "" } } + bindingset[root] private string getPropertyAsGraphString(NodeBase node, string key, Location root) { result = strictconcat(any(string value, Location location, string parsed | node.properties(key, value, location) and - if location = root or location instanceof UnknownLocation - then parsed = value - else parsed = "(" + value + "," + location.toString() + ")" + ( + if location = root or location instanceof UnknownLocation + then parsed = value + else parsed = "(" + value + "," + location.toString() + ")" + ) | parsed ), "," From 47affa0fed674e875699b0587f84a15bef683bbc Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Fri, 7 Mar 2025 18:30:58 +0100 Subject: [PATCH 046/656] Restore location output for nodes --- shared/cryptography/codeql/cryptography/Model.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 5a6cd3288fe..433c97a8387 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -67,7 +67,7 @@ module CryptographyBase Input> { or // CodeQL's DGML output does not include a location key = "Location" and - value = "" // node.getLocation().toString() + value = node.getLocation().toString() or // Known unknown edges should be reported as properties rather than edges node = node.getChild(key) and From bac0a635f943abb9a1bf50f001364e3094f74d04 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 7 Mar 2025 14:24:01 -0500 Subject: [PATCH 047/656] Initial hash models for openssl. --- cpp/ql/lib/experimental/Quantum/Language.qll | 128 +++++++++--------- .../OpenSSL/EVPDigestAlgorithmSource.qll | 8 +- .../OpenSSL/EVPHashAlgorithmSource.qll | 70 ++++++++++ .../Quantum/OpenSSL/EVPHashConsumers.qll | 27 ++++ .../Quantum/OpenSSL/EVPHashInitializer.qll | 25 ++++ .../Quantum/OpenSSL/EVPHashOperation.qll | 80 ++++++++++- .../OpenSSLKnownAlgorithmConstants.qll | 72 +++++----- .../codeql/cryptography/Model.qll | 8 +- 8 files changed, 312 insertions(+), 106 deletions(-) create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashInitializer.qll diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index 5d4ff4bc686..f0775df1b2e 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -22,82 +22,82 @@ abstract class AdditionalFlowInputStep extends DataFlow::Node { } -/** - * Generic data source to node input configuration - */ -module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - source = any(Crypto::GenericDataSourceInstance i).getOutputNode() - } - - predicate isSink(DataFlow::Node sink) { - sink = any(Crypto::FlowAwareElement other).getInputNode() - } - - predicate isBarrierOut(DataFlow::Node node) { - node = any(Crypto::FlowAwareElement element).getInputNode() - } - - predicate isBarrierIn(DataFlow::Node node) { - node = any(Crypto::FlowAwareElement element).getOutputNode() - } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - node1.(AdditionalFlowInputStep).getOutput() = node2 - } -} - - - -// // TODO: I think this will be inefficient, no? -// class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { -// override DataFlow::Node getOutputNode() { -// result.asExpr() = this +// /** +// * Generic data source to node input configuration +// */ +// module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { +// predicate isSource(DataFlow::Node source) { +// source = any(Crypto::GenericDataSourceInstance i).getOutputNode() // } -// override predicate flowsTo(Crypto::FlowAwareElement other) { -// // TODO: separate config to avoid blowing up data-flow analysis -// GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) +// predicate isSink(DataFlow::Node sink) { +// sink = any(Crypto::FlowAwareElement other).getInputNode() // } -// override string getAdditionalDescription() { result = this.toString() } -// } - -/** - * Definitions of various generic data sources - */ -// final class DefaultFlowSource = SourceNode; - -// final class DefaultRemoteFlowSource = RemoteFlowSource; - -// class GenericLocalDataSource extends Crypto::GenericLocalDataSource { -// GenericLocalDataSource() { -// any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this +// predicate isBarrierOut(DataFlow::Node node) { +// node = any(Crypto::FlowAwareElement element).getInputNode() // } -// override DataFlow::Node getOutputNode() { result.asExpr() = this } - -// override predicate flowsTo(Crypto::FlowAwareElement other) { -// GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) +// predicate isBarrierIn(DataFlow::Node node) { +// node = any(Crypto::FlowAwareElement element).getOutputNode() // } -// override string getAdditionalDescription() { result = this.toString() } -// } - -// class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { -// GenericRemoteDataSource() { any(DefaultRemoteFlowSource src).asExpr() = this } - -// override DataFlow::Node getOutputNode() { result.asExpr() = this } - -// override predicate flowsTo(Crypto::FlowAwareElement other) { -// GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) +// predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { +// node1.(AdditionalFlowInputStep).getOutput() = node2 // } - -// override string getAdditionalDescription() { result = this.toString() } // } -module GenericDataSourceUniversalFlow = DataFlow::Global; + +// // // TODO: I think this will be inefficient, no? +// // class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { +// // override DataFlow::Node getOutputNode() { +// // result.asExpr() = this +// // } + +// // override predicate flowsTo(Crypto::FlowAwareElement other) { +// // // TODO: separate config to avoid blowing up data-flow analysis +// // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) +// // } + +// // override string getAdditionalDescription() { result = this.toString() } +// // } + +// /** +// * Definitions of various generic data sources +// */ +// // final class DefaultFlowSource = SourceNode; + +// // final class DefaultRemoteFlowSource = RemoteFlowSource; + +// // class GenericLocalDataSource extends Crypto::GenericLocalDataSource { +// // GenericLocalDataSource() { +// // any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this +// // } + +// // override DataFlow::Node getOutputNode() { result.asExpr() = this } + +// // override predicate flowsTo(Crypto::FlowAwareElement other) { +// // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) +// // } + +// // override string getAdditionalDescription() { result = this.toString() } +// // } + +// // class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { +// // GenericRemoteDataSource() { any(DefaultRemoteFlowSource src).asExpr() = this } + +// // override DataFlow::Node getOutputNode() { result.asExpr() = this } + +// // override predicate flowsTo(Crypto::FlowAwareElement other) { +// // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) +// // } + +// // override string getAdditionalDescription() { result = this.toString() } +// // } + + +// module GenericDataSourceUniversalFlow = DataFlow::Global; module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll index aa9c4008dd1..7d132b22a3a 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll @@ -39,11 +39,11 @@ predicate literalToHashFamilyType(Literal e, Crypto::THashType type) { class HashKnownAlgorithmLiteralAlgorithmInstance extends Crypto::HashAlgorithmInstance instanceof Literal { - OpenSSLAlgorithmGetterCall cipherGetterCall; + OpenSSLAlgorithmGetterCall getterCall; HashKnownAlgorithmLiteralAlgorithmInstance() { exists(DataFlow::Node src, DataFlow::Node sink | - sink = cipherGetterCall.getValueArgNode() and + sink = getterCall.getValueArgNode() and src.asExpr() = this and KnownAlgorithmLiteralToAlgorithmGetterFlow::flow(src, sink) and // Not just any known value, but specifically a known cipher operation @@ -56,10 +56,12 @@ class HashKnownAlgorithmLiteralAlgorithmInstance extends Crypto::HashAlgorithmIn // TODO: should this not be part of the abstract algorithm definition? Crypto::AlgorithmConsumer getConsumer() { - AlgGetterToAlgConsumerFlow::flow(cipherGetterCall.getResultNode(), DataFlow::exprNode(result)) + AlgGetterToAlgConsumerFlow::flow(getterCall.getResultNode(), DataFlow::exprNode(result)) } override Crypto::THashType getHashFamily() { literalToHashFamilyType(this, result) } + override int getHashSize() { none() } //TODO + override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll new file mode 100644 index 00000000000..ad2af7e05be --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll @@ -0,0 +1,70 @@ +import cpp +import experimental.Quantum.Language +import EVPHashConsumers +import OpenSSLAlgorithmGetter + +predicate literalToHashFamilyType(Literal e, Crypto::THashType type) { + exists(string name, string algType | algType.toLowerCase().matches("hash") | + resolveAlgorithmFromLiteral(e, name, algType) and + ( + name.matches("BLAKE2B") and type instanceof Crypto::BLAKE2B + or + name.matches("BLAKE2S") and type instanceof Crypto::BLAKE2S + or + name.matches("MD2") and type instanceof Crypto::MD2 + or + name.matches("MD4") and type instanceof Crypto::MD4 + or + name.matches("MD5") and type instanceof Crypto::MD5 + or + name.matches("POLY1305") and type instanceof Crypto::POLY1305 + or + name.matches(["SHA", "SHA1"]) and type instanceof Crypto::SHA1 + or + name.matches("SHA+%") and not name.matches(["SHA1", "SHA3-"]) and type instanceof Crypto::SHA2 + or + name.matches("SHA3-%") and type instanceof Crypto::SHA3 + or + name.matches(["SHAKE"]) and type instanceof Crypto::SHAKE + or + name.matches("SM3") and type instanceof Crypto::SM3 + or + name.matches("RIPEMD160") and type instanceof Crypto::RIPEMD160 + or + //or + //TODO: need to handle MACs differently, including md_GOST94 + // name.matches("%GOST%") and type instanceof Crypto::GOST + name.matches("WHIRLPOOL") and type instanceof Crypto::WHIRLPOOL + ) + ) +} + +class HashKnownAlgorithmLiteralAlgorithmInstance extends Crypto::HashAlgorithmInstance instanceof Literal +{ + OpenSSLAlgorithmGetterCall cipherGetterCall; + + HashKnownAlgorithmLiteralAlgorithmInstance() { + exists(DataFlow::Node src, DataFlow::Node sink | + sink = cipherGetterCall.getValueArgNode() and + src.asExpr() = this and + KnownAlgorithmLiteralToAlgorithmGetterFlow::flow(src, sink) and + // Not just any known value, but specifically a known cipher operation + exists(string algType | + resolveAlgorithmFromLiteral(src.asExpr(), _, algType) and + algType.toLowerCase().matches("hash") + ) + ) + } + + Crypto::AlgorithmConsumer getConsumer() { + AlgGetterToAlgConsumerFlow::flow(cipherGetterCall.getResultNode(), DataFlow::exprNode(result)) + } + + override Crypto::THashType getHashFamily() { + literalToHashFamilyType(this, result) + } + + override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } + + override int getHashSize() {none() }//TODO +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll new file mode 100644 index 00000000000..31bf00ef94a --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll @@ -0,0 +1,27 @@ +import EVPHashInitializer +import EVPHashOperation +import EVPHashAlgorithmSource + +class EVP_Digest_Initializer_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof EVPDigestInitializerAlgorithmArgument{ + override DataFlow::Node getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmElement getAKnownAlgorithmSource() { + result.(HashKnownAlgorithmLiteralAlgorithmInstance).getConsumer() = this + } +} + +class EVP_Q_Digest_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof EVP_Q_Digest_Algorithm_Argument{ + override DataFlow::Node getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmElement getAKnownAlgorithmSource() { + result.(HashKnownAlgorithmLiteralAlgorithmInstance).getConsumer() = this + } +} + +class EVP_Digest_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof EVP_Digest_Algorithm_Argument{ + override DataFlow::Node getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmElement getAKnownAlgorithmSource() { + result.(HashKnownAlgorithmLiteralAlgorithmInstance).getConsumer() = this + } +} \ No newline at end of file diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashInitializer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashInitializer.qll new file mode 100644 index 00000000000..16a9234d68c --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashInitializer.qll @@ -0,0 +1,25 @@ +import cpp + +abstract class EVP_Hash_Inititalizer extends Call { + Expr getContextArg() { result = this.(Call).getArgument(0) } + + abstract Expr getAlgorithmArg(); +} + +class EVP_DigestInit_Variant_Calls extends EVP_Hash_Inititalizer { + EVP_DigestInit_Variant_Calls() { + this.(Call).getTarget().getName() in [ + "EVP_DigestInit", "EVP_DigestInit_ex", "EVP_DigestInit_ex2" + ] + } + + override Expr getAlgorithmArg() { result = this.(Call).getArgument(1) } + +} + + +class EVPDigestInitializerAlgorithmArgument extends Expr { + EVPDigestInitializerAlgorithmArgument() { + exists(EVP_Hash_Inititalizer initCall | this = initCall.getAlgorithmArg()) + } +} \ No newline at end of file diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll index 91b3f2ea62b..7db90c4eccc 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll @@ -1,5 +1,83 @@ import experimental.Quantum.Language import CtxFlow as CTXFlow +import LibraryDetector +import EVPHashInitializer +import EVPHashConsumers +abstract class EVP_Hash_Operation extends Crypto::HashOperationInstance instanceof Call { + Expr getContextArg() { result = this.(Call).getArgument(0) } -//https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis \ No newline at end of file + EVP_Hash_Inititalizer getInitCall() { + CTXFlow::ctxFlowsTo(result.getContextArg(), this.getContextArg()) + } +} + +//https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis +class EVP_Q_Digest_Operation extends EVP_Hash_Operation { + EVP_Q_Digest_Operation() { + this.(Call).getTarget().getName() = "EVP_Q_digest" and + isPossibleOpenSSLFunction(this.(Call).getTarget()) + } + + override Crypto::AlgorithmConsumer getAlgorithmConsumer() { this.(Call).getArgument(1) = result } + + override EVP_Hash_Inititalizer getInitCall() { + // This variant of digest does not use an init + // and even if it were used, the init would be ignored/undefined + none() + } +} + +class EVP_Q_Digest_Algorithm_Argument extends Expr { + EVP_Q_Digest_Algorithm_Argument() { + exists(EVP_Q_Digest_Operation op | this = op.(Call).getArgument(1)) + } +} + +class EVP_Digest_Operation extends EVP_Hash_Operation { + EVP_Digest_Operation() { + this.(Call).getTarget().getName() = "EVP_Digest" and + isPossibleOpenSSLFunction(this.(Call).getTarget()) + } + + // There is no context argument for this function + override Expr getContextArg() { none() } + + override Crypto::AlgorithmConsumer getAlgorithmConsumer() { this.(Call).getArgument(4) = result } + + override EVP_Hash_Inititalizer getInitCall() { + // This variant of digest does not use an init + // and even if it were used, the init would be ignored/undefined + none() + } +} + +class EVP_Digest_Algorithm_Argument extends Expr { + EVP_Digest_Algorithm_Argument() { + exists(EVP_Digest_Operation op | this = op.(Call).getArgument(4)) + } +} + +class EVP_DigestUpdate_Operation extends EVP_Hash_Operation { + EVP_DigestUpdate_Operation() { + this.(Call).getTarget().getName() = "EVP_DigestUpdate" and + isPossibleOpenSSLFunction(this.(Call).getTarget()) + } + + override Crypto::AlgorithmConsumer getAlgorithmConsumer() { + this.getInitCall().getAlgorithmArg() = result + } +} + +class EVP_DigestFinal_Variants_Operation extends EVP_Hash_Operation { + EVP_DigestFinal_Variants_Operation() { + this.(Call).getTarget().getName() in [ + "EVP_DigestFinal", "EVP_DigestFinal_ex", "EVP_DigestFinalXOF" + ] and + isPossibleOpenSSLFunction(this.(Call).getTarget()) + } + + override Crypto::AlgorithmConsumer getAlgorithmConsumer() { + this.getInitCall().getAlgorithmArg() = result + } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll index dcf24d01ace..76c6c172bf6 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll @@ -212,13 +212,13 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "sha512-256" and nid = 1095 and normalized = "SHA512256" and algType = "HASH" or - name = "sha3-224" and nid = 1096 and normalized = "SHA3224" and algType = "HASH" + name = "sha3-224" and nid = 1096 and normalized = "SHA3-224" and algType = "HASH" or - name = "sha3-256" and nid = 1097 and normalized = "SHA3256" and algType = "HASH" + name = "sha3-256" and nid = 1097 and normalized = "SHA3-256" and algType = "HASH" or - name = "sha3-384" and nid = 1098 and normalized = "SHA3384" and algType = "HASH" + name = "sha3-384" and nid = 1098 and normalized = "SHA3-384" and algType = "HASH" or - name = "sha3-512" and nid = 1099 and normalized = "SHA3512" and algType = "HASH" + name = "sha3-512" and nid = 1099 and normalized = "SHA3-512" and algType = "HASH" or name = "shake128" and nid = 1100 and normalized = "SHAKE128" and algType = "HASH" or @@ -1232,13 +1232,13 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "poly1305" and nid = 1061 and normalized = "POLY1305" and algType = "HASH" or - name = "hmac-sha3-224" and nid = 1102 and normalized = "SHA3224" and algType = "HASH" + name = "hmac-sha3-224" and nid = 1102 and normalized = "SHA3-224" and algType = "HASH" or - name = "hmac-sha3-256" and nid = 1103 and normalized = "SHA3256" and algType = "HASH" + name = "hmac-sha3-256" and nid = 1103 and normalized = "SHA3-256" and algType = "HASH" or - name = "hmac-sha3-384" and nid = 1104 and normalized = "SHA3384" and algType = "HASH" + name = "hmac-sha3-384" and nid = 1104 and normalized = "SHA3-384" and algType = "HASH" or - name = "hmac-sha3-512" and nid = 1105 and normalized = "SHA3512" and algType = "HASH" + name = "hmac-sha3-512" and nid = 1105 and normalized = "SHA3-512" and algType = "HASH" or name = "id-dsa-with-sha384" and nid = 1106 and normalized = "DSA" and algType = "SIGNATURE" or @@ -1250,35 +1250,35 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "id-dsa-with-sha3-224" and nid = 1108 and normalized = "DSA" and algType = "SIGNATURE" or - name = "id-dsa-with-sha3-224" and nid = 1108 and normalized = "SHA3224" and algType = "HASH" + name = "id-dsa-with-sha3-224" and nid = 1108 and normalized = "SHA3-224" and algType = "HASH" or name = "id-dsa-with-sha3-256" and nid = 1109 and normalized = "DSA" and algType = "SIGNATURE" or - name = "id-dsa-with-sha3-256" and nid = 1109 and normalized = "SHA3256" and algType = "HASH" + name = "id-dsa-with-sha3-256" and nid = 1109 and normalized = "SHA3-256" and algType = "HASH" or name = "id-dsa-with-sha3-384" and nid = 1110 and normalized = "DSA" and algType = "SIGNATURE" or - name = "id-dsa-with-sha3-384" and nid = 1110 and normalized = "SHA3384" and algType = "HASH" + name = "id-dsa-with-sha3-384" and nid = 1110 and normalized = "SHA3-384" and algType = "HASH" or name = "id-dsa-with-sha3-512" and nid = 1111 and normalized = "DSA" and algType = "SIGNATURE" or - name = "id-dsa-with-sha3-512" and nid = 1111 and normalized = "SHA3512" and algType = "HASH" + name = "id-dsa-with-sha3-512" and nid = 1111 and normalized = "SHA3-512" and algType = "HASH" or name = "id-ecdsa-with-sha3-224" and nid = 1112 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "id-ecdsa-with-sha3-224" and nid = 1112 and normalized = "SHA3224" and algType = "HASH" + name = "id-ecdsa-with-sha3-224" and nid = 1112 and normalized = "SHA3-224" and algType = "HASH" or name = "id-ecdsa-with-sha3-256" and nid = 1113 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "id-ecdsa-with-sha3-256" and nid = 1113 and normalized = "SHA3256" and algType = "HASH" + name = "id-ecdsa-with-sha3-256" and nid = 1113 and normalized = "SHA3-256" and algType = "HASH" or name = "id-ecdsa-with-sha3-384" and nid = 1114 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "id-ecdsa-with-sha3-384" and nid = 1114 and normalized = "SHA3384" and algType = "HASH" + name = "id-ecdsa-with-sha3-384" and nid = 1114 and normalized = "SHA3-384" and algType = "HASH" or name = "id-ecdsa-with-sha3-512" and nid = 1115 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "id-ecdsa-with-sha3-512" and nid = 1115 and normalized = "SHA3512" and algType = "HASH" + name = "id-ecdsa-with-sha3-512" and nid = 1115 and normalized = "SHA3-512" and algType = "HASH" or name = "id-rsassa-pkcs1-v1_5-with-sha3-224" and nid = 1116 and @@ -1292,7 +1292,7 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "id-rsassa-pkcs1-v1_5-with-sha3-224" and nid = 1116 and - normalized = "SHA3224" and + normalized = "SHA3-224" and algType = "HASH" or name = "id-rsassa-pkcs1-v1_5-with-sha3-256" and @@ -1307,7 +1307,7 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "id-rsassa-pkcs1-v1_5-with-sha3-256" and nid = 1117 and - normalized = "SHA3256" and + normalized = "SHA3-256" and algType = "HASH" or name = "id-rsassa-pkcs1-v1_5-with-sha3-384" and @@ -1322,7 +1322,7 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "id-rsassa-pkcs1-v1_5-with-sha3-384" and nid = 1118 and - normalized = "SHA3384" and + normalized = "SHA3-384" and algType = "HASH" or name = "id-rsassa-pkcs1-v1_5-with-sha3-512" and @@ -1337,7 +1337,7 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "id-rsassa-pkcs1-v1_5-with-sha3-512" and nid = 1119 and - normalized = "SHA3512" and + normalized = "SHA3-512" and algType = "HASH" or name = "aria-128-ccm" and nid = 1120 and normalized = "CCM" and algType = "BLOCK_MODE" @@ -1666,19 +1666,19 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "dsa_with_sha3-224" and nid = 1108 and normalized = "DSA" and algType = "SIGNATURE" or - name = "dsa_with_sha3-224" and nid = 1108 and normalized = "SHA3224" and algType = "HASH" + name = "dsa_with_sha3-224" and nid = 1108 and normalized = "SHA3-224" and algType = "HASH" or name = "dsa_with_sha3-256" and nid = 1109 and normalized = "DSA" and algType = "SIGNATURE" or - name = "dsa_with_sha3-256" and nid = 1109 and normalized = "SHA3256" and algType = "HASH" + name = "dsa_with_sha3-256" and nid = 1109 and normalized = "SHA3-256" and algType = "HASH" or name = "dsa_with_sha3-384" and nid = 1110 and normalized = "DSA" and algType = "SIGNATURE" or - name = "dsa_with_sha3-384" and nid = 1110 and normalized = "SHA3384" and algType = "HASH" + name = "dsa_with_sha3-384" and nid = 1110 and normalized = "SHA3-384" and algType = "HASH" or name = "dsa_with_sha3-512" and nid = 1111 and normalized = "DSA" and algType = "SIGNATURE" or - name = "dsa_with_sha3-512" and nid = 1111 and normalized = "SHA3512" and algType = "HASH" + name = "dsa_with_sha3-512" and nid = 1111 and normalized = "SHA3-512" and algType = "HASH" or name = "dsa_with_sha384" and nid = 1106 and normalized = "DSA" and algType = "SIGNATURE" or @@ -1752,19 +1752,19 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "ecdsa_with_sha3-224" and nid = 1112 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "ecdsa_with_sha3-224" and nid = 1112 and normalized = "SHA3224" and algType = "HASH" + name = "ecdsa_with_sha3-224" and nid = 1112 and normalized = "SHA3-224" and algType = "HASH" or name = "ecdsa_with_sha3-256" and nid = 1113 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "ecdsa_with_sha3-256" and nid = 1113 and normalized = "SHA3256" and algType = "HASH" + name = "ecdsa_with_sha3-256" and nid = 1113 and normalized = "SHA3-256" and algType = "HASH" or name = "ecdsa_with_sha3-384" and nid = 1114 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "ecdsa_with_sha3-384" and nid = 1114 and normalized = "SHA3384" and algType = "HASH" + name = "ecdsa_with_sha3-384" and nid = 1114 and normalized = "SHA3-384" and algType = "HASH" or name = "ecdsa_with_sha3-512" and nid = 1115 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "ecdsa_with_sha3-512" and nid = 1115 and normalized = "SHA3512" and algType = "HASH" + name = "ecdsa_with_sha3-512" and nid = 1115 and normalized = "SHA3-512" and algType = "HASH" or name = "gost 28147-89" and nid = 813 and @@ -2201,13 +2201,13 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string normalized = "GOSTR341194" and algType = "SYMMETRIC_ENCRYPTION" or - name = "id-hmacwithsha3-224" and nid = 1102 and normalized = "SHA3224" and algType = "HASH" + name = "id-hmacwithsha3-224" and nid = 1102 and normalized = "SHA3-224" and algType = "HASH" or - name = "id-hmacwithsha3-256" and nid = 1103 and normalized = "SHA3256" and algType = "HASH" + name = "id-hmacwithsha3-256" and nid = 1103 and normalized = "SHA3-256" and algType = "HASH" or - name = "id-hmacwithsha3-384" and nid = 1104 and normalized = "SHA3384" and algType = "HASH" + name = "id-hmacwithsha3-384" and nid = 1104 and normalized = "SHA3-384" and algType = "HASH" or - name = "id-hmacwithsha3-512" and nid = 1105 and normalized = "SHA3512" and algType = "HASH" + name = "id-hmacwithsha3-512" and nid = 1105 and normalized = "SHA3-512" and algType = "HASH" or name = "id-regctrl" and nid = 313 and normalized = "CTR" and algType = "BLOCK_MODE" or @@ -2590,19 +2590,19 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "rsa-sha3-224" and nid = 1116 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsa-sha3-224" and nid = 1116 and normalized = "SHA3224" and algType = "HASH" + name = "rsa-sha3-224" and nid = 1116 and normalized = "SHA3-224" and algType = "HASH" or name = "rsa-sha3-256" and nid = 1117 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsa-sha3-256" and nid = 1117 and normalized = "SHA3256" and algType = "HASH" + name = "rsa-sha3-256" and nid = 1117 and normalized = "SHA3-256" and algType = "HASH" or name = "rsa-sha3-384" and nid = 1118 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsa-sha3-384" and nid = 1118 and normalized = "SHA3384" and algType = "HASH" + name = "rsa-sha3-384" and nid = 1118 and normalized = "SHA3-384" and algType = "HASH" or name = "rsa-sha3-512" and nid = 1119 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsa-sha3-512" and nid = 1119 and normalized = "SHA3512" and algType = "HASH" + name = "rsa-sha3-512" and nid = 1119 and normalized = "SHA3-512" and algType = "HASH" or name = "rsa-sha384" and nid = 669 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 5a6cd3288fe..bc763175589 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -359,13 +359,17 @@ module CryptographyBase Input> { abstract class EllipticCurveAlgorithmInstance extends LocatableElement { } - abstract class HashOperationInstance extends KnownElement { } + abstract class HashOperationInstance extends OperationElement { + // TODO: need input and outputs, but this should be universal to all Operations + } abstract class HashAlgorithmInstance extends AlgorithmElement { /** * Gets the type of this digest algorithm, e.g., "SHA1", "SHA2", "MD5" etc. */ abstract THashType getHashFamily(); + + abstract int getHashSize(); } abstract class KeyDerivationOperationInstance extends KnownElement { } @@ -1034,7 +1038,6 @@ module CryptographyBase Input> { newtype THashType = BLAKE2B() or BLAKE2S() or - RIPEMD160() or MD2() or MD4() or MD5() or @@ -1044,6 +1047,7 @@ module CryptographyBase Input> { SHA3() or SHAKE() or SM3() or + RIPEMD160() or WHIRLPOOL() or OtherHashType() From d99812a10d6a50371b70fd419038874acceb28ea Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 09:59:28 -0400 Subject: [PATCH 048/656] Adding GOSTHash to THashType. --- shared/cryptography/codeql/cryptography/Model.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 25165cf5bf3..bbe817e2110 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -1038,6 +1038,7 @@ module CryptographyBase Input> { newtype THashType = BLAKE2B() or BLAKE2S() or + GOSTHash() or MD2() or MD4() or MD5() or From 3316d6135d29f0c64acabae614cdad553af18f45 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 11:32:14 -0400 Subject: [PATCH 049/656] Ctx flow comments. --- .../experimental/Quantum/OpenSSL/CtxFlow.qll | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll index e1b08c9652d..c07902022d8 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll @@ -1,3 +1,21 @@ +/** + * In OpenSSL, flow between 'context' parameters is often used to + * store state/config of how an operation will eventually be performed. + * Tracing algorithms and configurations to operations therefore + * requires tracing context parameters for many OpenSSL apis. + * + * This library provides a dataflow analysis to track context parameters + * between any two functions accepting openssl context parameters. + * The dataflow takes into consideration flowing through duplication and copy calls + * as well as flow through flow killers (free/reset calls). + * + * TODO: we may need to revisit 'free' as a dataflow killer, depending on how + * we want to model use after frees. + * + * This library also provides classes to represent context Types and relevant + * arguments/expressions. + */ + import semmle.code.cpp.dataflow.new.DataFlow class CTXType extends Type { From 6a4659fc7eaa067e79f07f517abdd32bada665da Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 11:33:46 -0400 Subject: [PATCH 050/656] Updating known constants for OpenSSL to handle direct algorithm getters from older versions of openssl (e.g., EVP_md5()) --- .../OpenSSLKnownAlgorithmConstants.qll | 62 ++++++++++++++++--- 1 file changed, 53 insertions(+), 9 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll index 76c6c172bf6..063a7084d3d 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll @@ -1,4 +1,42 @@ import cpp +import LibraryDetector + +class KnownOpenSSLAlgorithmConstant extends Expr { + string normalizedName; + string algType; + + KnownOpenSSLAlgorithmConstant() { + resolveAlgorithmFromCall(this, normalizedName, algType) + or + resolveAlgorithmFromLiteral(this, normalizedName, algType) + } + + string getNormalizedName() { result = normalizedName } + + string getAlgType() { result = algType } +} + +/** + * Resolves a call to a 'direct algorithm getter', e.g., EVP_MD5() + * This approach to fetching algorithms was used in OpenSSL 1.0.2. + * The strategy for resolving these calls is to parse the target name + * and resolve the name as though it were a known literal. + * There are a few exceptions where the name doesn't directly match the + * known literal set. If that occurs, users must add the name to the + * set of aliases. E.g., EVP_dss() and EVP_dss1() needed such mappings + * alias = "dss" and target = "dsa" + * or + * alias = "dss1" and target = "dsaWithSHA1" + */ +predicate resolveAlgorithmFromCall(Call c, string normalized, string algType) { + isPossibleOpenSSLFunction(c.getTarget()) and + exists(string name, string parsedTargetName | + parsedTargetName = + c.getTarget().getName().replaceAll("EVP_", "").toLowerCase().replaceAll("_", "-") and + name = resolveAlgorithmAlias(parsedTargetName) and + knownOpenSSLAlgorithmLiteral(name, _, normalized, algType) + ) +} /** * Resolves literal `e` to a known algorithm name, nid, normalized name, and algType @@ -7,21 +45,23 @@ import cpp */ predicate resolveAlgorithmFromLiteral(Literal e, string normalized, string algType) { exists(int nid | - nid = getPossibleNidFromLiteral(e) and knownOpenSSLAlgorithm(_, nid, normalized, algType) + nid = getPossibleNidFromLiteral(e) and knownOpenSSLAlgorithmLiteral(_, nid, normalized, algType) ) or exists(string name | - name = resolveAlgorithmAlias(e) and knownOpenSSLAlgorithm(name, _, normalized, algType) + name = resolveAlgorithmAlias(e.getValue()) and + knownOpenSSLAlgorithmLiteral(name, _, normalized, algType) ) } -string resolveAlgorithmAlias(StringLiteral name) { - exists(string lower | lower = name.getValue().toLowerCase() | +bindingset[name] +string resolveAlgorithmAlias(string name) { + exists(string lower | lower = name.toLowerCase() | // The result is an alias algorithm name if known result = getAlgorithmAlias(lower) or // or the name is itself a known algorithm - knownOpenSSLAlgorithm(lower, _, _, _) and result = lower + knownOpenSSLAlgorithmLiteral(lower, _, _, _) and result = lower ) } @@ -133,6 +173,10 @@ predicate defaultAliases(string target, string alias) { or alias = "desx" and target = "desx-cbc" or + alias = "dss" and target = "dsa" + or + alias = "dss1" and target = "dsaWithSHA1" + or alias = "idea" and target = "idea-cbc" or alias = "rc2" and target = "rc2-cbc" @@ -165,7 +209,7 @@ predicate defaultAliases(string target, string alias) { * `normalized` is the normalized name of the algorithm (e.g., "AES128" for "aes-128-cbc") * `algType` is the type of algorithm (e.g., "SYMMETRIC_ENCRYPTION") */ -predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string algType) { +predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, string algType) { name = "rsa" and nid = 19 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or name = "prime192v1" and nid = 409 and normalized = "PRIME192V1" and algType = "ELLIPTIC_CURVE" @@ -895,7 +939,7 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "md_gost94" and nid = 809 and normalized = "GOST94" and algType = "HASH" or - name = "gost94" and nid = 812 and normalized = "GOST94" and algType = "SYMMETRIC_ENCRYPTION" + name = "gost94" and nid = 812 and normalized = "GOST94" and algType = "HASH" or name = "gost89" and nid = 813 and normalized = "GOST89" and algType = "SYMMETRIC_ENCRYPTION" or @@ -1114,9 +1158,9 @@ predicate knownOpenSSLAlgorithm(string name, int nid, string normalized, string or name = "gost-mac-12" and nid = 976 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" or - name = "md_gost12_256" and nid = 982 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + name = "md_gost12_256" and nid = 982 and normalized = "GOST" and algType = "HASH" or - name = "md_gost12_512" and nid = 983 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + name = "md_gost12_512" and nid = 983 and normalized = "GOST" and algType = "HASH" or name = "id-tc26-signwithdigest-gost3410-2012-256" and nid = 985 and From bd07b8a4c7946107db067d2b79a748e1105227b8 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 11:34:26 -0400 Subject: [PATCH 051/656] Making getter flow through 'copy' more general (copy can appear in any part of the call name now. --- .../lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll index 30ffd1e1f3e..cee5937d551 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll @@ -31,7 +31,7 @@ class CopyAndDupAlgorithmPassthroughCall extends AlgorithmPassthroughCall { // Assume flow in and out is asIndirectExpr or asDefinitingArgument since a pointer is assumed // to be involved // NOTE: not attempting to detect openssl specific copy/dup functions, but anything suspected to be copy/dup - this.getTarget().getName().toLowerCase().matches(["%_dup", "%_copy"]) and + this.getTarget().getName().toLowerCase().matches(["%_dup%", "%_copy%"]) and exists(Expr inArg, Type t | inArg = this.getAnArgument() and t = inArg.getUnspecifiedType().stripType() | From 451808616e8746bc31dfd8f5b294fe4c58f77079 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 11:35:16 -0400 Subject: [PATCH 052/656] Getting rid of commented out code. --- .../OpenSSL/EVPCipherAlgorithmSource.qll | 71 +------------------ 1 file changed, 1 insertion(+), 70 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll index 8aa4f88a81b..4523bd86035 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll @@ -80,74 +80,5 @@ class CipherKnownAlgorithmLiteralAlgorithmInstance extends Crypto::CipherAlgorit override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } - override Crypto::TCipherType getCipherFamily() { - literalToCipherFamilyType(this, result) - } + override Crypto::TCipherType getCipherFamily() { literalToCipherFamilyType(this, result) } } -// override Crypto::TCipherType getCipherFamily() { -// if this.cipherNameMappingKnown(_, super.getAlgorithmName()) -// then this.cipherNameMappingKnown(result, super.getAlgorithmName()) -// else result instanceof Crypto::OtherCipherType -// } -// bindingset[name] -// private predicate cipherNameMappingKnown(Crypto::TCipherType type, string name) { -// name = "AES" and -// type instanceof Crypto::AES -// or -// name = "DES" and -// type instanceof Crypto::DES -// or -// name = "TripleDES" and -// type instanceof Crypto::TripleDES -// or -// name = "IDEA" and -// type instanceof Crypto::IDEA -// or -// name = "CAST5" and -// type instanceof Crypto::CAST5 -// or -// name = "ChaCha20" and -// type instanceof Crypto::ChaCha20 -// or -// name = "RC4" and -// type instanceof Crypto::RC4 -// or -// name = "RC5" and -// type instanceof Crypto::RC5 -// or -// name = "RSA" and -// type instanceof Crypto::RSA -// } -// private predicate modeToNameMappingKnown(Crypto::TBlockCipherModeOperationType type, string name) { -// type instanceof Crypto::ECB and name = "ECB" -// or -// type instanceof Crypto::CBC and name = "CBC" -// or -// type instanceof Crypto::GCM and name = "GCM" -// or -// type instanceof Crypto::CTR and name = "CTR" -// or -// type instanceof Crypto::XTS and name = "XTS" -// or -// type instanceof Crypto::CCM and name = "CCM" -// or -// type instanceof Crypto::SIV and name = "SIV" -// or -// type instanceof Crypto::OCB and name = "OCB" -// } -// override Crypto::TBlockCipherModeOperationType getModeType() { -// if this.modeToNameMappingKnown(_, super.getMode()) -// then this.modeToNameMappingKnown(result, super.getMode()) -// else result instanceof Crypto::OtherMode -// } -// override string getRawModeAlgorithmName() { result = super.getMode() } -// override string getRawPaddingAlgorithmName() { result = super.getPadding() } -// bindingset[name] -// private predicate paddingToNameMappingKnown(Crypto::TPaddingType type, string name) { -// type instanceof Crypto::NoPadding and name = "NOPADDING" -// or -// type instanceof Crypto::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? -// or -// type instanceof Crypto::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% -// } -// } From 06720278220acccc4c230196a1932a869d2c89b8 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 11:46:26 -0400 Subject: [PATCH 053/656] Tracing new notion of known getters, which now includes direct getters for cipher and hash. Removed a redundant hash qll, and fixed misplacement of has type in model. --- .../OpenSSL/EVPCipherAlgorithmSource.qll | 47 ++++++++----- .../Quantum/OpenSSL/EVPCipherConsumers.qll | 24 +++---- .../OpenSSL/EVPDigestAlgorithmSource.qll | 67 ------------------- .../OpenSSL/EVPHashAlgorithmSource.qll | 48 +++++++------ .../Quantum/OpenSSL/EVPHashConsumers.qll | 6 +- .../OpenSSL/OpenSSLAlgorithmGetter.qll | 35 ++++++++-- .../codeql/cryptography/Model.qll | 1 + 7 files changed, 107 insertions(+), 121 deletions(-) delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll index 4523bd86035..2c1930698b1 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll @@ -3,7 +3,13 @@ import experimental.Quantum.Language import EVPCipherConsumers import OpenSSLAlgorithmGetter -predicate literalToCipherFamilyType(Literal e, Crypto::TCipherType type) { +/** + * Given a literal `e`, converts this to a cipher family type. + * The literal must be a known literal representing a cipher algorithm. + * If the literal does not represent any known cipher algorithm, + * this predicate will not hold (i.e., it will not bind an unknown to an unknown cipher type) + */ +predicate literalToCipherFamilyType(Literal e, Crypto::TCipherType type) { exists(string name, string algType | algType.toLowerCase().matches("%encryption") | resolveAlgorithmFromLiteral(e, name, algType) and ( @@ -52,25 +58,36 @@ predicate literalToCipherFamilyType(Literal e, Crypto::TCipherType type) { ) } -class CipherKnownAlgorithmLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance instanceof Literal +class KnownOpenSSLCipherConstantAlgorithmInstance extends Crypto::CipherAlgorithmInstance instanceof KnownOpenSSLAlgorithmConstant { - OpenSSLAlgorithmGetterCall cipherGetterCall; - CipherKnownAlgorithmLiteralAlgorithmInstance() { - exists(DataFlow::Node src, DataFlow::Node sink | - sink = cipherGetterCall.getValueArgNode() and - src.asExpr() = this and - KnownAlgorithmLiteralToAlgorithmGetterFlow::flow(src, sink) and - // Not just any known value, but specifically a known cipher operation - exists(string algType | - resolveAlgorithmFromLiteral(src.asExpr(), _, algType) and - algType.toLowerCase().matches("%encryption") + OpenSSLAlgorithmGetterCall getterCall; + + KnownOpenSSLCipherConstantAlgorithmInstance() { + // Not just any known value, but specifically a known cipher operation + this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("%encryption") and + ( + // Two possibilities: + // 1) The source is a literal and flows to a getter, then we know we have an instance + // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that + // Possibility 1: + this instanceof Literal and + exists(DataFlow::Node src, DataFlow::Node sink | + // Sink is an argument to a CipherGetterCall + sink = getterCall.(OpenSSLAlgorithmGetterCall).getValueArgNode() and + // Source is `this` + src.asExpr() = this and + // This traces to a getter + KnownOpenSSLAlgorithmToAlgorithmGetterFlow::flow(src, sink) ) + or + // Possibility 2: + this instanceof DirectGetterCall and getterCall = this ) } - Crypto::AlgorithmConsumer getConsumer() { - AlgGetterToAlgConsumerFlow::flow(cipherGetterCall.getResultNode(), DataFlow::exprNode(result)) - } + Crypto::AlgorithmConsumer getConsumer() { + AlgGetterToAlgConsumerFlow::flow(getterCall.getResultNode(), DataFlow::exprNode(result)) + } override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { none() // TODO: provider defaults diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll index 8717a857385..4f8a5ccd354 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll @@ -2,24 +2,24 @@ import EVPCipherInitializer import EVPCipherOperation import EVPCipherAlgorithmSource - class EVP_Cipher_Initializer_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof EVPCipherInitializerAlgorithmArgument -{ - override DataFlow::Node getInputNode() { result.asExpr() = this } +{ + override DataFlow::Node getInputNode() { result.asExpr() = this } - override Crypto::AlgorithmElement getAKnownAlgorithmSource() { - result.(CipherKnownAlgorithmLiteralAlgorithmInstance).getConsumer() = this - } + override Crypto::AlgorithmElement getAKnownAlgorithmSource() { + result.(KnownOpenSSLCipherConstantAlgorithmInstance).getConsumer() = this + } } + // //TODO: need a key consumer // class EVP_Initializer_Key_Consumer extends Crypto::KeyConsumer instanceof EVP_Cipher_Inititalizer isntanceof InitializerKeyArgument{ // } -class EVP_Cipher_Initializer_IV_Consumer extends Crypto::NonceArtifactConsumer instanceof EVPCipherInitializerIVArgument{ - override DataFlow::Node getInputNode() { result.asExpr() = this } +class EVP_Cipher_Initializer_IV_Consumer extends Crypto::NonceArtifactConsumer instanceof EVPCipherInitializerIVArgument +{ + override DataFlow::Node getInputNode() { result.asExpr() = this } } -class EVP_Cipher_Input_Consumer extends Crypto::CipherInputConsumer instanceof EVPCipherInputArgument{ - - override DataFlow::Node getInputNode() { result.asExpr() = this } +class EVP_Cipher_Input_Consumer extends Crypto::CipherInputConsumer instanceof EVPCipherInputArgument +{ + override DataFlow::Node getInputNode() { result.asExpr() = this } } - diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll deleted file mode 100644 index 7d132b22a3a..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPDigestAlgorithmSource.qll +++ /dev/null @@ -1,67 +0,0 @@ -import cpp -import experimental.Quantum.Language -import EVPCipherConsumers -import OpenSSLAlgorithmGetter - -predicate literalToHashFamilyType(Literal e, Crypto::THashType type) { - exists(string name, string algType | algType.toLowerCase().matches("%hash") | - resolveAlgorithmFromLiteral(e, name, algType) and - ( - name.matches("BLAKE2B") and type instanceof Crypto::BLAKE2B - or - name.matches("BLAKE2S") and type instanceof Crypto::BLAKE2S - or - name.matches("RIPEMD160") and type instanceof Crypto::RIPEMD160 - or - name.matches("MD2") and type instanceof Crypto::MD2 - or - name.matches("MD4") and type instanceof Crypto::MD4 - or - name.matches("MD5") and type instanceof Crypto::MD5 - or - name.matches("POLY1305") and type instanceof Crypto::POLY1305 - or - name.matches(["SHA1", "SHA"]) and type instanceof Crypto::SHA1 - or - name.matches("SHA2") and type instanceof Crypto::SHA2 - or - name.matches("SHA3") and type instanceof Crypto::SHA3 - or - name.matches("SHAKE") and type instanceof Crypto::SHAKE - or - name.matches("SM3") and type instanceof Crypto::SM3 - or - name.matches("WHIRLPOOL") and type instanceof Crypto::WHIRLPOOL - // TODO: what about MD_GOST? - ) - ) -} - -class HashKnownAlgorithmLiteralAlgorithmInstance extends Crypto::HashAlgorithmInstance instanceof Literal -{ - OpenSSLAlgorithmGetterCall getterCall; - - HashKnownAlgorithmLiteralAlgorithmInstance() { - exists(DataFlow::Node src, DataFlow::Node sink | - sink = getterCall.getValueArgNode() and - src.asExpr() = this and - KnownAlgorithmLiteralToAlgorithmGetterFlow::flow(src, sink) and - // Not just any known value, but specifically a known cipher operation - exists(string algType | - resolveAlgorithmFromLiteral(src.asExpr(), _, algType) and - algType.toLowerCase().matches("hash") - ) - ) - } - - // TODO: should this not be part of the abstract algorithm definition? - Crypto::AlgorithmConsumer getConsumer() { - AlgGetterToAlgConsumerFlow::flow(getterCall.getResultNode(), DataFlow::exprNode(result)) - } - - override Crypto::THashType getHashFamily() { literalToHashFamilyType(this, result) } - - override int getHashSize() { none() } //TODO - - override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } -} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll index ad2af7e05be..5fc61c7b6c5 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll @@ -1,6 +1,5 @@ import cpp import experimental.Quantum.Language -import EVPHashConsumers import OpenSSLAlgorithmGetter predicate literalToHashFamilyType(Literal e, Crypto::THashType type) { @@ -11,12 +10,16 @@ predicate literalToHashFamilyType(Literal e, Crypto::THashType type) { or name.matches("BLAKE2S") and type instanceof Crypto::BLAKE2S or + name.matches("GOST%") and type instanceof Crypto::GOSTHash + or name.matches("MD2") and type instanceof Crypto::MD2 or name.matches("MD4") and type instanceof Crypto::MD4 or name.matches("MD5") and type instanceof Crypto::MD5 or + name.matches("MDC2") and type instanceof Crypto::MDC2 + or name.matches("POLY1305") and type instanceof Crypto::POLY1305 or name.matches(["SHA", "SHA1"]) and type instanceof Crypto::SHA1 @@ -31,40 +34,45 @@ predicate literalToHashFamilyType(Literal e, Crypto::THashType type) { or name.matches("RIPEMD160") and type instanceof Crypto::RIPEMD160 or - //or - //TODO: need to handle MACs differently, including md_GOST94 - // name.matches("%GOST%") and type instanceof Crypto::GOST name.matches("WHIRLPOOL") and type instanceof Crypto::WHIRLPOOL ) ) } -class HashKnownAlgorithmLiteralAlgorithmInstance extends Crypto::HashAlgorithmInstance instanceof Literal +class KnownOpenSSLHashConstantAlgorithmInstance extends Crypto::HashAlgorithmInstance instanceof KnownOpenSSLAlgorithmConstant { - OpenSSLAlgorithmGetterCall cipherGetterCall; + OpenSSLAlgorithmGetterCall getterCall; - HashKnownAlgorithmLiteralAlgorithmInstance() { - exists(DataFlow::Node src, DataFlow::Node sink | - sink = cipherGetterCall.getValueArgNode() and - src.asExpr() = this and - KnownAlgorithmLiteralToAlgorithmGetterFlow::flow(src, sink) and - // Not just any known value, but specifically a known cipher operation - exists(string algType | - resolveAlgorithmFromLiteral(src.asExpr(), _, algType) and - algType.toLowerCase().matches("hash") + KnownOpenSSLHashConstantAlgorithmInstance() { + // Not just any known value, but specifically a known hash + this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("hash") and + ( + // Two possibilities: + // 1) The source is a literal and flows to a getter, then we know we have an instance + // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that + // Possibility 1: + this instanceof Literal and + exists(DataFlow::Node src, DataFlow::Node sink | + // Sink is an argument to a CipherGetterCall + sink = getterCall.(OpenSSLAlgorithmGetterCall).getValueArgNode() and + // Source is `this` + src.asExpr() = this and + // This traces to a getter + KnownOpenSSLAlgorithmToAlgorithmGetterFlow::flow(src, sink) ) + or + // Possibility 2: + this instanceof DirectGetterCall and getterCall = this ) } Crypto::AlgorithmConsumer getConsumer() { - AlgGetterToAlgConsumerFlow::flow(cipherGetterCall.getResultNode(), DataFlow::exprNode(result)) + AlgGetterToAlgConsumerFlow::flow(getterCall.getResultNode(), DataFlow::exprNode(result)) } - override Crypto::THashType getHashFamily() { - literalToHashFamilyType(this, result) - } + override Crypto::THashType getHashFamily() { literalToHashFamilyType(this, result) } override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } - override int getHashSize() {none() }//TODO + override int getHashSize() { none() } //TODO } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll index 31bf00ef94a..2edca9d5763 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll @@ -6,7 +6,7 @@ class EVP_Digest_Initializer_Algorithm_Consumer extends Crypto::AlgorithmConsume override DataFlow::Node getInputNode() { result.asExpr() = this } override Crypto::AlgorithmElement getAKnownAlgorithmSource() { - result.(HashKnownAlgorithmLiteralAlgorithmInstance).getConsumer() = this + result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this } } @@ -14,7 +14,7 @@ class EVP_Q_Digest_Algorithm_Consumer extends Crypto::AlgorithmConsumer instance override DataFlow::Node getInputNode() { result.asExpr() = this } override Crypto::AlgorithmElement getAKnownAlgorithmSource() { - result.(HashKnownAlgorithmLiteralAlgorithmInstance).getConsumer() = this + result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this } } @@ -22,6 +22,6 @@ class EVP_Digest_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof override DataFlow::Node getInputNode() { result.asExpr() = this } override Crypto::AlgorithmElement getAKnownAlgorithmSource() { - result.(HashKnownAlgorithmLiteralAlgorithmInstance).getConsumer() = this + result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this } } \ No newline at end of file diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll index cee5937d551..689f022b56d 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll @@ -128,8 +128,10 @@ abstract class OpenSSLAlgorithmGetterCall extends Call { abstract Expr getResultExpr(); } -module KnownAlgorithmLiteralToAlgorithmGetterConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { resolveAlgorithmFromLiteral(source.asExpr(), _, _) } +module KnownOpenSSLAlgorithmToAlgorithmGetterConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source.asExpr() instanceof KnownOpenSSLAlgorithmConstant + } predicate isSink(DataFlow::Node sink) { exists(OpenSSLAlgorithmGetterCall c | c.getValueArgNode() = sink) @@ -151,8 +153,33 @@ module KnownAlgorithmLiteralToAlgorithmGetterConfig implements DataFlow::ConfigS } } -module KnownAlgorithmLiteralToAlgorithmGetterFlow = - DataFlow::Global; +module KnownOpenSSLAlgorithmToAlgorithmGetterFlow = + DataFlow::Global; + +/** + * Cases like EVP_MD5(), + * there is no input, rather it directly gets an algorithm + * and returns it. + */ +class DirectGetterCall extends OpenSSLAlgorithmGetterCall { + DataFlow::Node resultNode; + Expr resultExpr; + + DirectGetterCall() { + this instanceof KnownOpenSSLAlgorithmConstant and + this instanceof Call and + resultExpr = this and + resultNode.asExpr() = resultExpr + } + + override DataFlow::Node getValueArgNode() { none() } + + override DataFlow::Node getResultNode() { result = resultNode } + + override Expr getValueArgExpr() { none() } + + override Expr getResultExpr() { result = resultExpr } +} // https://www.openssl.org/docs/manmaster/man3/EVP_CIPHER_fetch.html class EVPCipherGetterCall extends OpenSSLAlgorithmGetterCall { diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index bbe817e2110..298b270e6b6 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -1042,6 +1042,7 @@ module CryptographyBase Input> { MD2() or MD4() or MD5() or + MDC2() or POLY1305() or SHA1() or SHA2() or From 73368ea59abd9be8bc4df7df8dfd853dfcbde40c Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 13:27:39 -0400 Subject: [PATCH 054/656] Adding hashes to openssl library import --- cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll index f942f4687da..6c30bec16cd 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll @@ -4,6 +4,10 @@ import semmle.code.cpp.dataflow.new.DataFlow module OpenSSLModel { import experimental.Quantum.Language import experimental.Quantum.OpenSSL.EVPCipherOperation + import experimental.Quantum.OpenSSL.EVPHashOperation + import experimental.Quantum.OpenSSL.EVPCipherAlgorithmSource + import experimental.Quantum.OpenSSL.EVPHashAlgorithmSource + // // TODO: trace CTX from init variants to the context arg of EVP update calls // //https://docs.openssl.org/master/man3/EVP_EncryptInit/#synopsis From fe52351aed103e958312521da6a386858606dfd0 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 14:10:55 -0400 Subject: [PATCH 055/656] Stubbing out hash operation node, borrowing from cipher operaiton node --- .../codeql/cryptography/Model.qll | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 298b270e6b6..0e8a3959675 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -1031,8 +1031,29 @@ module CryptographyBase Input> { * This operation takes an input message of arbitrary content and length and produces a fixed-size * hash value as the output using a specified hashing algorithm. */ - abstract class HashOperationNode extends OperationNode, THashOperation { - abstract HashAlgorithmNode getAlgorithm(); + class HashOperationNode extends OperationNode, THashOperation { + HashAlgorithmInstance instance; + + HashOperationNode() { this = THashOperation(instance) } + + override string getInternalType() { result = "HashOperation" } + + override LocatableElement asElement() { result = instance } + + /** + * Gets the algorithm or unknown source nodes consumed as an algorithm associated with this operation. + */ + NodeBase getACipherAlgorithmOrUnknown() { + result = this.getAKnownCipherAlgorithm() or + result = this.asElement().(OperationElement).getAlgorithmConsumer().getAnUnknownSourceNode() + } + + /** + * Gets a known algorithm associated with this operation + */ + HashAlgorithmNode getAKnownCipherAlgorithm() { + result = this.asElement().(OperationElement).getAlgorithmConsumer().getAKnownSourceNode() + } } newtype THashType = From 036035b6a224d70e1105a96fe2c29270bf3b4fb3 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 15:04:19 -0400 Subject: [PATCH 056/656] Adding modeling for OpenSSL random number generation. --- .../experimental/Quantum/OpenSSL/OpenSSL.qll | 1 + .../experimental/Quantum/OpenSSL/Random.qll | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/Random.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll index 6c30bec16cd..9e48f8cbb93 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll @@ -7,6 +7,7 @@ module OpenSSLModel { import experimental.Quantum.OpenSSL.EVPHashOperation import experimental.Quantum.OpenSSL.EVPCipherAlgorithmSource import experimental.Quantum.OpenSSL.EVPHashAlgorithmSource + import experimental.Quantum.OpenSSL.Random // // TODO: trace CTX from init variants to the context arg of EVP update calls diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Random.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Random.qll new file mode 100644 index 00000000000..eceff874874 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Random.qll @@ -0,0 +1,21 @@ +import cpp +private import experimental.Quantum.Language +private import codeql.cryptography.Model +private import LibraryDetector +private import semmle.code.cpp.dataflow.new.DataFlow + +class OpenSSLRandomNumberGeneratorInstance extends Crypto::RandomNumberGenerationInstance instanceof Call +{ + OpenSSLRandomNumberGeneratorInstance() { + this.(Call).getTarget().getName() in ["RAND_bytes", "RAND_pseudo_bytes"] and + isPossibleOpenSSLFunction(this.(Call).getTarget()) + } + + override Crypto::DataFlowNode getOutputNode() { + result.asDefiningArgument() = this.(Call).getArgument(0) + } + + override predicate flowsTo(Crypto::FlowAwareElement other) { + ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } +} From c83cb533ce4dac9fcd5082bc82c562ccc8afc0d6 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 15:56:01 -0400 Subject: [PATCH 057/656] Adding an instantiation of the additional flow step class to automatically apply to generic dataflow. Flow step passthrough comes from the algorithm to getter flow passthroughs. --- cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll | 2 ++ .../Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll index 9e48f8cbb93..16b9e6485c9 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll @@ -8,6 +8,8 @@ module OpenSSLModel { import experimental.Quantum.OpenSSL.EVPCipherAlgorithmSource import experimental.Quantum.OpenSSL.EVPHashAlgorithmSource import experimental.Quantum.OpenSSL.Random + // Imports the additional algorithm flow step for OpenSSL + import experimental.Quantum.OpenSSL.OpenSSLAlgorithmGetter // // TODO: trace CTX from init variants to the context arg of EVP update calls diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll index 689f022b56d..02d0d833918 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll @@ -4,6 +4,14 @@ import LibraryDetector import OpenSSLKnownAlgorithmConstants import experimental.Quantum.Language +class OpenSSLAlgorithmAdditionalFlowStep extends AdditionalFlowInputStep { + OpenSSLAlgorithmAdditionalFlowStep() { exists(AlgorithmPassthroughCall c | c.getInNode() = this) } + + override DataFlow::Node getOutput() { + exists(AlgorithmPassthroughCall c | c.getInNode() = this and c.getOutNode() = result) + } +} + module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { exists(OpenSSLAlgorithmGetterCall c | c.getResultNode() = source) From f72efa638adc9a7c9c5c69acf90bd59daee88baf Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 10 Mar 2025 16:12:53 -0400 Subject: [PATCH 058/656] Uncommenting out generic dataflow --- cpp/ql/lib/experimental/Quantum/Language.qll | 40 ++++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index f0775df1b2e..5ec4da8d19d 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -22,30 +22,30 @@ abstract class AdditionalFlowInputStep extends DataFlow::Node { } -// /** -// * Generic data source to node input configuration -// */ -// module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { -// predicate isSource(DataFlow::Node source) { -// source = any(Crypto::GenericDataSourceInstance i).getOutputNode() -// } +/** + * Generic data source to node input configuration + */ +module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::GenericDataSourceInstance i).getOutputNode() + } -// predicate isSink(DataFlow::Node sink) { -// sink = any(Crypto::FlowAwareElement other).getInputNode() -// } + predicate isSink(DataFlow::Node sink) { + sink = any(Crypto::FlowAwareElement other).getInputNode() + } -// predicate isBarrierOut(DataFlow::Node node) { -// node = any(Crypto::FlowAwareElement element).getInputNode() -// } + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } -// predicate isBarrierIn(DataFlow::Node node) { -// node = any(Crypto::FlowAwareElement element).getOutputNode() -// } + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } -// predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { -// node1.(AdditionalFlowInputStep).getOutput() = node2 -// } -// } + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + } +} From ae574f7cf2b67a981e7052851d23a85a601a421a Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 11 Mar 2025 13:35:02 -0400 Subject: [PATCH 059/656] Resolving hash and cipher types for openssl not using literals but KnownOpenSSLAlgorithmConstant. --- .../Quantum/OpenSSL/EVPCipherAlgorithmSource.qll | 14 +++++++++----- .../Quantum/OpenSSL/EVPHashAlgorithmSource.qll | 11 +++++++---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll index 2c1930698b1..8718fb5b44d 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll @@ -9,9 +9,9 @@ import OpenSSLAlgorithmGetter * If the literal does not represent any known cipher algorithm, * this predicate will not hold (i.e., it will not bind an unknown to an unknown cipher type) */ -predicate literalToCipherFamilyType(Literal e, Crypto::TCipherType type) { - exists(string name, string algType | algType.toLowerCase().matches("%encryption") | - resolveAlgorithmFromLiteral(e, name, algType) and +predicate knownOpenSSLConstantToCipherFamilyType(KnownOpenSSLAlgorithmConstant e, Crypto::TCipherType type) { + exists(string name | e.getAlgType().toLowerCase().matches("%encryption") | + name = e.getNormalizedName() and ( name.matches("AES%") and type instanceof Crypto::AES or @@ -97,5 +97,9 @@ class KnownOpenSSLCipherConstantAlgorithmInstance extends Crypto::CipherAlgorith override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } - override Crypto::TCipherType getCipherFamily() { literalToCipherFamilyType(this, result) } -} + override Crypto::TCipherType getCipherFamily() { + knownOpenSSLConstantToCipherFamilyType(this, result) + or + not knownOpenSSLConstantToCipherFamilyType(this, _) and result = Crypto::OtherCipherType() + } +} \ No newline at end of file diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll index 5fc61c7b6c5..d89eee2590d 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll @@ -2,9 +2,9 @@ import cpp import experimental.Quantum.Language import OpenSSLAlgorithmGetter -predicate literalToHashFamilyType(Literal e, Crypto::THashType type) { - exists(string name, string algType | algType.toLowerCase().matches("hash") | - resolveAlgorithmFromLiteral(e, name, algType) and +predicate knownOpenSSLConstantToHashFamilyType(KnownOpenSSLAlgorithmConstant e, Crypto::THashType type) { + exists(string name | e.getAlgType().toLowerCase().matches("hash") | + name = e.getNormalizedName() and ( name.matches("BLAKE2B") and type instanceof Crypto::BLAKE2B or @@ -70,7 +70,10 @@ class KnownOpenSSLHashConstantAlgorithmInstance extends Crypto::HashAlgorithmIns AlgGetterToAlgConsumerFlow::flow(getterCall.getResultNode(), DataFlow::exprNode(result)) } - override Crypto::THashType getHashFamily() { literalToHashFamilyType(this, result) } + override Crypto::THashType getHashFamily() { + knownOpenSSLConstantToHashFamilyType(this, result) or + not knownOpenSSLConstantToHashFamilyType(this, _) and result = Crypto::OtherHashType() + } override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } From f69b0578936314eed92339e1d43ba753b029cb45 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 11 Mar 2025 13:35:44 -0400 Subject: [PATCH 060/656] Updating OpenSSLKnownAlgorithmConstants.qll (a few bugs) and also enforcing that known key sizes are on the normalized name (need to re-visit for GOST). --- .../OpenSSLKnownAlgorithmConstants.qll | 64 +++++++++---------- 1 file changed, 30 insertions(+), 34 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll index 063a7084d3d..0d328e287f6 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll @@ -302,85 +302,85 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aria-128-cbc" and nid = 1066 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aria-128-cbc" and nid = 1066 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-cbc" and nid = 1066 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-cfb" and nid = 1067 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aria-128-cfb" and nid = 1067 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-cfb" and nid = 1067 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-ctr" and nid = 1069 and normalized = "CTR" and algType = "BLOCK_MODE" or - name = "aria-128-ctr" and nid = 1069 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-ctr" and nid = 1069 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-ecb" and nid = 1065 and normalized = "ECB" and algType = "BLOCK_MODE" or - name = "aria-128-ecb" and nid = 1065 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-ecb" and nid = 1065 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-ofb" and nid = 1068 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "aria-128-ofb" and nid = 1068 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-ofb" and nid = 1068 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aria-128-cfb1" and nid = 1080 and normalized = "CFB" and algType = "BLOCK_MODE" + name = "aria-128-cfb1" and nid = 1080 and normalized = "CFB1" and algType = "BLOCK_MODE" or - name = "aria-128-cfb1" and nid = 1080 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-cfb1" and nid = 1080 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aria-128-cfb8" and nid = 1083 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-cfb8" and nid = 1083 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-cfb8" and nid = 1083 and normalized = "CFB8" and algType = "BLOCK_MODE" or name = "aria-192-cbc" and nid = 1071 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aria-192-cbc" and nid = 1071 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-cbc" and nid = 1071 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-cfb" and nid = 1072 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aria-192-cfb" and nid = 1072 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-cfb" and nid = 1072 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-ctr" and nid = 1074 and normalized = "CTR" and algType = "BLOCK_MODE" or - name = "aria-192-ctr" and nid = 1074 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-ctr" and nid = 1074 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-ecb" and nid = 1070 and normalized = "ECB" and algType = "BLOCK_MODE" or - name = "aria-192-ecb" and nid = 1070 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-ecb" and nid = 1070 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-ofb" and nid = 1073 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "aria-192-ofb" and nid = 1073 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-ofb" and nid = 1073 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aria-192-cfb1" and nid = 1081 and normalized = "CFB" and algType = "BLOCK_MODE" + name = "aria-192-cfb1" and nid = 1081 and normalized = "CFB1" and algType = "BLOCK_MODE" or - name = "aria-192-cfb1" and nid = 1081 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-cfb1" and nid = 1081 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aria-192-cfb8" and nid = 1084 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-cfb8" and nid = 1084 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-cfb8" and nid = 1084 and normalized = "CFB8" and algType = "BLOCK_MODE" or name = "aria-256-cbc" and nid = 1076 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aria-256-cbc" and nid = 1076 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-cbc" and nid = 1076 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-cfb" and nid = 1077 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aria-256-cfb" and nid = 1077 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-cfb" and nid = 1077 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-ctr" and nid = 1079 and normalized = "CTR" and algType = "BLOCK_MODE" or - name = "aria-256-ctr" and nid = 1079 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-ctr" and nid = 1079 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-ecb" and nid = 1075 and normalized = "ECB" and algType = "BLOCK_MODE" or - name = "aria-256-ecb" and nid = 1075 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-ecb" and nid = 1075 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-ofb" and nid = 1078 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "aria-256-ofb" and nid = 1078 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-ofb" and nid = 1078 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aria-256-cfb1" and nid = 1082 and normalized = "CFB" and algType = "BLOCK_MODE" + name = "aria-256-cfb1" and nid = 1082 and normalized = "CFB1" and algType = "BLOCK_MODE" or - name = "aria-256-cfb1" and nid = 1082 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-cfb1" and nid = 1082 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aria-256-cfb8" and nid = 1085 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-cfb8" and nid = 1085 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-cfb8" and nid = 1085 and normalized = "CFB8" and algType = "BLOCK_MODE" or @@ -1386,27 +1386,27 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aria-128-ccm" and nid = 1120 and normalized = "CCM" and algType = "BLOCK_MODE" or - name = "aria-128-ccm" and nid = 1120 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-ccm" and nid = 1120 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-ccm" and nid = 1121 and normalized = "CCM" and algType = "BLOCK_MODE" or - name = "aria-192-ccm" and nid = 1121 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-ccm" and nid = 1121 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-ccm" and nid = 1122 and normalized = "CCM" and algType = "BLOCK_MODE" or - name = "aria-256-ccm" and nid = 1122 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-ccm" and nid = 1122 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-gcm" and nid = 1123 and normalized = "GCM" and algType = "BLOCK_MODE" or - name = "aria-128-gcm" and nid = 1123 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-gcm" and nid = 1123 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-gcm" and nid = 1124 and normalized = "GCM" and algType = "BLOCK_MODE" or - name = "aria-192-gcm" and nid = 1124 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-gcm" and nid = 1124 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-gcm" and nid = 1125 and normalized = "GCM" and algType = "BLOCK_MODE" or - name = "aria-256-gcm" and nid = 1125 and normalized = "ARIA" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-gcm" and nid = 1125 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" or name = "sm4-cfb1" and nid = 1136 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" or @@ -2678,14 +2678,10 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "rsaes-oaep" and nid = 919 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsaes-oaep" and nid = 919 and normalized = "AES" and algType = "SYMMETRIC_ENCRYPTION" - or name = "rsaes-oaep" and nid = 919 and normalized = "OAEP" and algType = "ASYMMETRIC_PADDING" or name = "rsaesoaep" and nid = 919 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsaesoaep" and nid = 919 and normalized = "AES" and algType = "SYMMETRIC_ENCRYPTION" - or name = "rsaesoaep" and nid = 919 and normalized = "OAEP" and algType = "ASYMMETRIC_PADDING" or name = "rsaoaepencryptionset" and From 085e8d40fd0c2d2ccfd801be695b66ed627bfd68 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 11 Mar 2025 14:06:36 -0400 Subject: [PATCH 061/656] Hash nodes have instances. --- shared/cryptography/codeql/cryptography/Model.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 0e8a3959675..4ad83b12210 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -1078,6 +1078,8 @@ module CryptographyBase Input> { * A hashing algorithm that transforms variable-length input into a fixed-size hash value. */ abstract class HashAlgorithmNode extends AlgorithmNode, THashAlgorithm { + HashAlgorithmInstance instance; + HashAlgorithmNode() { this = THashAlgorithm(instance) } override string getInternalType() { result = "HashAlgorithm" } final predicate hashTypeToNameMapping(THashType type, string name) { From 44b1e921d6fd0609e65fc7874b21a09c3fdec2f3 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 11 Mar 2025 14:10:04 -0400 Subject: [PATCH 062/656] commenting out hash size for now, TODO --- .../lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll | 2 +- shared/cryptography/codeql/cryptography/Model.qll | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll index d89eee2590d..d269658c8aa 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll @@ -77,5 +77,5 @@ class KnownOpenSSLHashConstantAlgorithmInstance extends Crypto::HashAlgorithmIns override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } - override int getHashSize() { none() } //TODO + // override int getHashSize() { none() } //TODO } diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 4ad83b12210..74a9b5d02a7 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -369,7 +369,7 @@ module CryptographyBase Input> { */ abstract THashType getHashFamily(); - abstract int getHashSize(); + // abstract int getHashSize(); } abstract class KeyDerivationOperationInstance extends KnownElement { } From 7757279908a1e9049d20e67b4651d7018d7ed285 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 11 Mar 2025 14:46:36 -0400 Subject: [PATCH 063/656] Adding a KDF algorithm getter. --- .../OpenSSL/OpenSSLAlgorithmGetter.qll | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll index 02d0d833918..364bb3ab0b8 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll @@ -255,6 +255,30 @@ class EVPDigestGetterCall extends OpenSSLAlgorithmGetterCall { override Expr getResultExpr() { result = resultExpr } } + +class EVPKDFFetch extends OpenSSLAlgorithmGetterCall { + DataFlow::Node valueArgNode; + DataFlow::Node resultNode; + Expr valueArgExpr; + Expr resultExpr; + + EVPKDFFetch() { + resultExpr = this and + resultNode.asExpr() = this and + isPossibleOpenSSLFunction(this.getTarget()) and + this.getTarget().getName() in ["EVP_KDF_fetch"] and + valueArgExpr = this.getArgument(1) and + valueArgNode.asExpr() = valueArgExpr + } + + override DataFlow::Node getValueArgNode() { result = valueArgNode } + + override DataFlow::Node getResultNode() { result = resultNode } + + override Expr getValueArgExpr() { result = valueArgExpr } + + override Expr getResultExpr() { result = resultExpr } +} // /** // * Predicates/classes for identifying algorithm sinks. // * An Algorithm Sink is a function that takes an algorithm as an argument. From d988afd4a4b3cd177dab2dd48f933c14c04061ee Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 11 Mar 2025 14:47:10 -0400 Subject: [PATCH 064/656] Adding an EVP_AASYM_CIPHER_fetch getter. --- .../OpenSSL/OpenSSLAlgorithmGetter.qll | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll index 364bb3ab0b8..3e061eeff88 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll @@ -224,6 +224,30 @@ class EVPCipherGetterCall extends OpenSSLAlgorithmGetterCall { override Expr getResultExpr() { result = resultExpr } } +class EVPAsymCipherGetterCall extends OpenSSLAlgorithmGetterCall { + DataFlow::Node valueArgNode; + DataFlow::Node resultNode; + Expr valueArgExpr; + Expr resultExpr; + + EVPAsymCipherGetterCall() { + isPossibleOpenSSLFunction(this.getTarget()) and + resultExpr = this and + resultNode.asExpr() = this and + this.getTarget().getName() = "EVP_ASYM_CIPHER_fetch" and + valueArgExpr = this.getArgument(1) and + valueArgNode.asExpr() = valueArgExpr + } + + override DataFlow::Node getValueArgNode() { result = valueArgNode } + + override DataFlow::Node getResultNode() { result = resultNode } + + override Expr getValueArgExpr() { result = valueArgExpr } + + override Expr getResultExpr() { result = resultExpr } +} + class EVPDigestGetterCall extends OpenSSLAlgorithmGetterCall { DataFlow::Node valueArgNode; DataFlow::Node resultNode; From a9458ba762875bacfc985242883d90d894095eed Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 11 Mar 2025 14:48:38 -0400 Subject: [PATCH 065/656] Formatting, removing dead comments, --- .../Quantum/OpenSSL/EVPCipherOperation.qll | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll index 4913d2763e9..fd95bb71805 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll @@ -46,14 +46,12 @@ abstract class EVP_Final_Call extends EVP_Cipher_Operation { } class EVP_Cipher_Call extends EVP_Cipher_Operation { - // TODO/QUESTION: what is the better way to do this? EVP_Cipher_Call() { this.(Call).getTarget().getName() = "EVP_Cipher" } override Expr getInputArg() { result = this.(Call).getArgument(2) } } class EVP_Encrypt_Decrypt_or_Cipher_Update_Call extends EVP_Update_Call { - // TODO/QUESTION: what is the better way to do this? EVP_Encrypt_Decrypt_or_Cipher_Update_Call() { this.(Call).getTarget().getName() in [ "EVP_EncryptUpdate", "EVP_DecryptUpdate", "EVP_CipherUpdate" @@ -64,10 +62,8 @@ class EVP_Encrypt_Decrypt_or_Cipher_Update_Call extends EVP_Update_Call { } class EVP_Encrypt_Decrypt_or_Cipher_Final_Call extends EVP_Final_Call { - // TODO/QUESTION: what is the better way to do this? EVP_Encrypt_Decrypt_or_Cipher_Final_Call() { - this.(Call).getTarget().getName() in - [ + this.(Call).getTarget().getName() in [ "EVP_EncryptFinal_ex", "EVP_DecryptFinal_ex", "EVP_CipherFinal_ex", "EVP_EncryptFinal", "EVP_DecryptFinal", "EVP_CipherFinal" ] @@ -77,11 +73,9 @@ class EVP_Encrypt_Decrypt_or_Cipher_Final_Call extends EVP_Final_Call { class EVPCipherOutput extends CipherOutputArtifact { EVPCipherOutput() { exists(EVP_Cipher_Operation op | op.getOutputArg() = this) } - override DataFlow::Node getOutputNode(){ - result.asExpr() = this - } + override DataFlow::Node getOutputNode() { result.asExpr() = this } } class EVPCipherInputArgument extends Expr { EVPCipherInputArgument() { exists(EVP_Cipher_Operation op | op.getInputArg() = this) } -} \ No newline at end of file +} From c98e6d7c56011e429c2f945930a41fa94b89192e Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 11 Mar 2025 14:49:07 -0400 Subject: [PATCH 066/656] Adding a stub EVP_CIpher_Operation for EVP_PKEY, this probably should be made into it's own class, hence it is a stub with comments. --- .../Quantum/OpenSSL/EVPCipherOperation.qll | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll index fd95bb71805..f426eb3f92d 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll @@ -70,6 +70,17 @@ class EVP_Encrypt_Decrypt_or_Cipher_Final_Call extends EVP_Final_Call { } } +class EVP_PKEY_Operation extends EVP_Cipher_Operation { + EVP_PKEY_Operation() { + this.(Call).getTarget().getName() in ["EVP_PKEY_decrypt", "EVP_PKEY_encrypt"] + } + + override Expr getInputArg() { result = this.(Call).getArgument(3) } + // TODO: how PKEY is initialized is different that symmetric cipher + // Consider making an entirely new class for this and specializing + // the get init call +} + class EVPCipherOutput extends CipherOutputArtifact { EVPCipherOutput() { exists(EVP_Cipher_Operation op | op.getOutputArg() = this) } From 71eae39feb73e2d7e680b04d2c6536831864ae02 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 11 Mar 2025 15:19:42 -0400 Subject: [PATCH 067/656] Adding missing block modes. --- shared/cryptography/codeql/cryptography/Model.qll | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 74a9b5d02a7..f5f57d245ba 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -761,12 +761,14 @@ module CryptographyBase Input> { newtype TBlockCipherModeOperationType = ECB() or // Not secure, widely used CBC() or // Vulnerable to padding oracle attacks + CFB() or GCM() or // Widely used AEAD mode (TLS 1.3, SSH, IPsec) CTR() or // Fast stream-like encryption (SSH, disk encryption) XTS() or // Standard for full-disk encryption (BitLocker, LUKS, FileVault) CCM() or // Used in lightweight cryptography (IoT, WPA2) SIV() or // Misuse-resistant encryption, used in secure storage OCB() or // Efficient AEAD mode + OFB() or OtherMode() class ModeOfOperationAlgorithmNode extends AlgorithmNode, TModeOfOperationAlgorithm { @@ -807,6 +809,10 @@ module CryptographyBase Input> { or type instanceof OCB and name = "OCB" or + type instanceof CFB and name = "CFB" + or + type instanceof OFB and name = "OFB" + or type instanceof OtherMode and name = this.getRawAlgorithmName() } From 8a7671dc2a5bdc4bdfa87a0b4a24e617e85ddb25 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 11 Mar 2025 15:20:05 -0400 Subject: [PATCH 068/656] Adding block mode models to openssl. --- .../OpenSSL/EVPCipherAlgorithmSource.qll | 94 +++++++++++++++++-- 1 file changed, 85 insertions(+), 9 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll index 8718fb5b44d..65231e32cd0 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll @@ -4,12 +4,12 @@ import EVPCipherConsumers import OpenSSLAlgorithmGetter /** - * Given a literal `e`, converts this to a cipher family type. - * The literal must be a known literal representing a cipher algorithm. - * If the literal does not represent any known cipher algorithm, - * this predicate will not hold (i.e., it will not bind an unknown to an unknown cipher type) + * Given a `KnownOpenSSLAlgorithmConstant`, converts this to a cipher family type. + * Does not bind if there is know mapping (no mapping to 'unknown' or 'other'). */ -predicate knownOpenSSLConstantToCipherFamilyType(KnownOpenSSLAlgorithmConstant e, Crypto::TCipherType type) { +predicate knownOpenSSLConstantToCipherFamilyType( + KnownOpenSSLAlgorithmConstant e, Crypto::TCipherType type +) { exists(string name | e.getAlgType().toLowerCase().matches("%encryption") | name = e.getNormalizedName() and ( @@ -90,16 +90,92 @@ class KnownOpenSSLCipherConstantAlgorithmInstance extends Crypto::CipherAlgorith } override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { - none() // TODO: provider defaults + // if there is a block mode associated with the same element, then that's the block mode + // note, if none are associated, we may need to parse if the cipher is a block cipher + // to determine if this is an unknown vs not relevant. + result = this } override Crypto::PaddingAlgorithmInstance getPaddingAlgorithm() { none() } override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } - override Crypto::TCipherType getCipherFamily() { - knownOpenSSLConstantToCipherFamilyType(this, result) + override Crypto::TCipherType getCipherFamily() { + knownOpenSSLConstantToCipherFamilyType(this, result) or not knownOpenSSLConstantToCipherFamilyType(this, _) and result = Crypto::OtherCipherType() } -} \ No newline at end of file +} + +/** + * Given a `KnownOpenSSLAlgorithmConstant`, converts this to a cipher family type. + * Does not bind if there is know mapping (no mapping to 'unknown' or 'other'). + */ +predicate knownOpenSSLConstantToBlockModeFamilyType( + KnownOpenSSLAlgorithmConstant e, Crypto::TBlockCipherModeOperationType type +) { + exists(string name | e.getAlgType().toLowerCase().matches("block_mode") | + name = e.getNormalizedName() and + ( + name.matches("CBC") and type instanceof Crypto::CBC + or + name.matches("CFB%") and type instanceof Crypto::CFB + or + name.matches("CTR") and type instanceof Crypto::CTR + or + name.matches("GCM") and type instanceof Crypto::GCM + or + name.matches("OFB") and type instanceof Crypto::OFB + or + name.matches("XTS") and type instanceof Crypto::XTS + or + name.matches("CCM") and type instanceof Crypto::CCM + or + name.matches("GCM") and type instanceof Crypto::GCM + or + name.matches("CCM") and type instanceof Crypto::CCM + or + name.matches("ECB") and type instanceof Crypto::ECB + ) + ) +} + +class KnownOpenSSLBlockModeConstantAlgorithmInstance extends Crypto::ModeOfOperationAlgorithmInstance instanceof KnownOpenSSLAlgorithmConstant +{ + OpenSSLAlgorithmGetterCall getterCall; + + KnownOpenSSLBlockModeConstantAlgorithmInstance() { + // Not just any known value, but specifically a known cipher operation + this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("block_mode") and + ( + // Two possibilities: + // 1) The source is a literal and flows to a getter, then we know we have an instance + // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that + // Possibility 1: + this instanceof Literal and + exists(DataFlow::Node src, DataFlow::Node sink | + // Sink is an argument to a CipherGetterCall + sink = getterCall.(OpenSSLAlgorithmGetterCall).getValueArgNode() and + // Source is `this` + src.asExpr() = this and + // This traces to a getter + KnownOpenSSLAlgorithmToAlgorithmGetterFlow::flow(src, sink) + ) + or + // Possibility 2: + this instanceof DirectGetterCall and getterCall = this + ) + } + + override Crypto::TBlockCipherModeOperationType getModeType() { + knownOpenSSLConstantToBlockModeFamilyType(this, result) + or + not knownOpenSSLConstantToBlockModeFamilyType(this, _) and result = Crypto::OtherMode() + } + + // NOTE: I'm not going to attempt to parse out the mode specific part, so returning + // the same as the raw name for now. + override string getRawModeAlgorithmName() { result = this.(Literal).getValue().toString() } + + override string getRawAlgorithmName() { result = this.getRawModeAlgorithmName() } +} From 95607c5f31c9ee72e9b556bce21af8d92c5281de Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Tue, 18 Mar 2025 22:05:00 +0100 Subject: [PATCH 069/656] Refactor instances and consumers + add JCA hashes --- cpp/ql/lib/experimental/Quantum/Language.qll | 30 +- .../Quantum/OpenSSL/EVPCipherConsumers.qll | 2 +- .../Quantum/OpenSSL/EVPHashConsumers.qll | 35 +- java/ql/lib/experimental/Quantum/JCA.qll | 127 +++++- java/ql/lib/experimental/Quantum/Language.qll | 20 +- .../InsecureOrUnknownNonceAtOperation.ql | 9 +- .../Quantum/PossibleReusedNonce.ql | 6 +- .../ql/src/experimental/Quantum/TestCipher.ql | 3 +- java/ql/src/experimental/Quantum/TestHash.ql | 9 + .../codeql/cryptography/Model.qll | 401 +++++++++++++----- 10 files changed, 475 insertions(+), 167 deletions(-) create mode 100644 java/ql/src/experimental/Quantum/TestHash.ql diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index 5ec4da8d19d..dbcb2004b83 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -3,10 +3,11 @@ import semmle.code.cpp.ir.IR import semmle.code.cpp.security.FlowSources as FlowSources private import cpp as Lang - module CryptoInput implements InputSig { class DataFlowNode = DataFlow::Node; + class LocatableElement = Lang::Locatable; + class UnknownLocation = Lang::UnknownDefaultLocation; } @@ -21,7 +22,6 @@ abstract class AdditionalFlowInputStep extends DataFlow::Node { final DataFlow::Node getInput() { result = this } } - /** * Generic data source to node input configuration */ @@ -47,61 +47,44 @@ module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { } } - - // // // TODO: I think this will be inefficient, no? // // class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { -// // override DataFlow::Node getOutputNode() { -// // result.asExpr() = this +// // override DataFlow::Node getOutputNode() { +// // result.asExpr() = this // // } - // // override predicate flowsTo(Crypto::FlowAwareElement other) { // // // TODO: separate config to avoid blowing up data-flow analysis // // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) // // } - // // override string getAdditionalDescription() { result = this.toString() } // // } - // /** // * Definitions of various generic data sources // */ // // final class DefaultFlowSource = SourceNode; - // // final class DefaultRemoteFlowSource = RemoteFlowSource; - // // class GenericLocalDataSource extends Crypto::GenericLocalDataSource { // // GenericLocalDataSource() { // // any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this // // } - // // override DataFlow::Node getOutputNode() { result.asExpr() = this } - // // override predicate flowsTo(Crypto::FlowAwareElement other) { // // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) // // } - // // override string getAdditionalDescription() { result = this.toString() } // // } - // // class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { // // GenericRemoteDataSource() { any(DefaultRemoteFlowSource src).asExpr() = this } - // // override DataFlow::Node getOutputNode() { result.asExpr() = this } - // // override predicate flowsTo(Crypto::FlowAwareElement other) { // // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) // // } - // // override string getAdditionalDescription() { result = this.toString() } // // } - - // module GenericDataSourceUniversalFlow = DataFlow::Global; - module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { - source = any(Crypto::ArtifactElement artifact).getOutputNode() + source = any(Crypto::ArtifactInstance artifact).getOutputNode() } predicate isSink(DataFlow::Node sink) { @@ -120,12 +103,13 @@ module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { node1.(AdditionalFlowInputStep).getOutput() = node2 } } + module ArtifactUniversalFlow = DataFlow::Global; + abstract class CipherOutputArtifact extends Crypto::CipherOutputArtifactInstance { override predicate flowsTo(Crypto::FlowAwareElement other) { ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) } } - import OpenSSL.OpenSSL diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll index 4f8a5ccd354..e2f5bc0e838 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll @@ -6,7 +6,7 @@ class EVP_Cipher_Initializer_Algorithm_Consumer extends Crypto::AlgorithmConsume { override DataFlow::Node getInputNode() { result.asExpr() = this } - override Crypto::AlgorithmElement getAKnownAlgorithmSource() { + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { result.(KnownOpenSSLCipherConstantAlgorithmInstance).getConsumer() = this } } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll index 2edca9d5763..82bf331546f 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll @@ -2,26 +2,29 @@ import EVPHashInitializer import EVPHashOperation import EVPHashAlgorithmSource -class EVP_Digest_Initializer_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof EVPDigestInitializerAlgorithmArgument{ - override DataFlow::Node getInputNode() { result.asExpr() = this } +class EVP_Digest_Initializer_Algorithm_Consumer extends Crypto::AlgorithmValueConsumer instanceof EVPDigestInitializerAlgorithmArgument +{ + override DataFlow::Node getInputNode() { result.asExpr() = this } - override Crypto::AlgorithmElement getAKnownAlgorithmSource() { - result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this - } + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this + } } -class EVP_Q_Digest_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof EVP_Q_Digest_Algorithm_Argument{ - override DataFlow::Node getInputNode() { result.asExpr() = this } +class EVP_Q_Digest_Algorithm_Consumer extends Crypto::AlgorithmValueConsumer instanceof EVP_Q_Digest_Algorithm_Argument +{ + override DataFlow::Node getInputNode() { result.asExpr() = this } - override Crypto::AlgorithmElement getAKnownAlgorithmSource() { - result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this - } + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this + } } -class EVP_Digest_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof EVP_Digest_Algorithm_Argument{ - override DataFlow::Node getInputNode() { result.asExpr() = this } +class EVP_Digest_Algorithm_Consumer extends Crypto::AlgorithmValueConsumer instanceof EVP_Digest_Algorithm_Argument +{ + override DataFlow::Node getInputNode() { result.asExpr() = this } - override Crypto::AlgorithmElement getAKnownAlgorithmSource() { - result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this - } -} \ No newline at end of file + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this + } +} diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index b2698cabee2..336f7fe5cc5 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -205,7 +205,7 @@ module JCAModel { * * For example, in `Cipher.getInstance(algorithm)`, this class represents `algorithm`. */ - class CipherGetInstanceAlgorithmArg extends Crypto::AlgorithmConsumer instanceof Expr { + class CipherGetInstanceAlgorithmArg extends Crypto::AlgorithmValueConsumer instanceof Expr { CipherGetInstanceCall call; CipherGetInstanceAlgorithmArg() { this = call.getAlgorithmArg() } @@ -218,7 +218,7 @@ module JCAModel { value = result.getValue() } - override Crypto::AlgorithmElement getAKnownAlgorithmSource() { + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { result.(CipherStringLiteralAlgorithmInstance).getConsumer() = this } } @@ -354,15 +354,17 @@ module JCAModel { override Crypto::CipherOperationSubtype getCipherOperationSubtype() { result = mode } - override Crypto::NonceArtifactConsumer getNonceConsumer() { - result = sink.getState().(InitializedCipherModeFlowState).getInitCall().getNonceArg() + override DataFlow::Node getNonceConsumer() { + result.asExpr() = sink.getState().(InitializedCipherModeFlowState).getInitCall().getNonceArg() } - override Crypto::CipherInputConsumer getInputConsumer() { - result = doFinalize.getMessageArg().asExpr() + override DataFlow::Node getInputConsumer() { result = doFinalize.getMessageArg() } + + override DataFlow::Node getKeyConsumer() { + result.asExpr() = sink.getState().(InitializedCipherModeFlowState).getInitCall().getKeyArg() } - override Crypto::AlgorithmConsumer getAlgorithmConsumer() { result = consumer } + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { result = consumer } override Crypto::CipherOutputArtifactInstance getOutputArtifact() { result = doFinalize.getOutput() @@ -493,27 +495,114 @@ module JCAModel { } } - class CipherInitCallNonceArgConsumer extends Crypto::NonceArtifactConsumer instanceof Expr { - CipherInitCallNonceArgConsumer() { this = any(CipherInitCall call).getNonceArg() } - - override DataFlow::Node getInputNode() { result.asExpr() = this } - } - class CipherInitCallKeyConsumer extends Crypto::ArtifactConsumer { CipherInitCallKeyConsumer() { this = any(CipherInitCall call).getKeyArg() } override DataFlow::Node getInputNode() { result.asExpr() = this } } - class CipherMessageInputConsumer extends Crypto::CipherInputConsumer { - CipherMessageInputConsumer() { this = any(CipherOperationCall call).getMessageArg().asExpr() } - - override DataFlow::Node getInputNode() { result.asExpr() = this } - } - class CipherOperationCallOutput extends CipherOutputArtifact { CipherOperationCallOutput() { this = any(CipherOperationCall call).getOutput() } override DataFlow::Node getOutputNode() { result.asExpr() = this } } + + bindingset[hash] + predicate hash_names(string hash) { + hash.toUpperCase() + .matches([ + "SHA-1", "SHA-256", "SHA-384", "SHA-512", "SHA3-224", "SHA3-256", "SHA3-384", + "SHA3-512", "BLAKE2b", "BLAKE2s" + ].toUpperCase()) + } + + // flow config from a known hash algorithm literal to MessageDigest.getInstance + module KnownHashAlgorithmLiteralToMessageDigestConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { hash_names(src.asExpr().(StringLiteral).getValue()) } + + predicate isSink(DataFlow::Node sink) { + exists(MessageDigestGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) + } + } + + module KnownHashAlgorithmLiteralToMessageDigestFlow = + DataFlow::Global; + + class KnownHashAlgorithm extends Crypto::HashAlgorithmInstance instanceof StringLiteral { + MessageDigestAlgorithmValueConsumer consumer; + + KnownHashAlgorithm() { + hash_names(this.getValue()) and + KnownHashAlgorithmLiteralToMessageDigestFlow::flow(DataFlow::exprNode(this), + consumer.getInputNode()) + } + + MessageDigestAlgorithmValueConsumer getConsumer() { result = consumer } + + override string getRawAlgorithmName() { result = this.(StringLiteral).getValue() } + + override Crypto::THashType getHashFamily() { + result = Crypto::OtherHashType() // TODO + } + } + + class MessageDigestAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { + MessageDigestGetInstanceCall call; + + MessageDigestAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + override DataFlow::Node getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + exists(KnownHashAlgorithm l | l.getConsumer() = this and result = l) + } + } + + class MessageDigestGetInstanceCall extends MethodCall { + MessageDigestGetInstanceCall() { + this.getCallee().hasQualifiedName("java.security", "MessageDigest", "getInstance") + } + + Expr getAlgorithmArg() { result = this.getArgument(0) } + + DigestHashOperation getDigestCall() { + DigestGetInstanceToDigestFlow::flow(DataFlow::exprNode(this), + DataFlow::exprNode(result.(DigestCall).getQualifier())) + } + } + + class DigestCall extends MethodCall { + DigestCall() { this.getCallee().hasQualifiedName("java.security", "MessageDigest", "digest") } + + Expr getDigestArtifactOutput() { result = this } + } + + // flow config from MessageDigest.getInstance to MessageDigest.digest + module DigestGetInstanceToDigestConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof MessageDigestGetInstanceCall } + + predicate isSink(DataFlow::Node sink) { + exists(DigestCall c | c.getQualifier() = sink.asExpr()) + } + } + + module DigestGetInstanceToDigestFlow = DataFlow::Global; + + class DigestArtifact extends DigestArtifactInstance { + DigestArtifact() { this = any(DigestCall call).getDigestArtifactOutput() } + + override DataFlow::Node getOutputNode() { result.asExpr() = this } + } + + class DigestHashOperation extends Crypto::HashOperationInstance instanceof DigestCall { + override Crypto::DigestArtifactInstance getDigestArtifact() { + result = this.(DigestCall).getDigestArtifactOutput() + } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + exists(MessageDigestGetInstanceCall call | + call.getDigestCall() = this and result = call.getAlgorithmArg() + ) + } + } } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 0e875295bd8..5666a0c42bb 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -25,6 +25,11 @@ module CryptoInput implements InputSig { class LocatableElement = Language::Element; class UnknownLocation = UnknownDefaultLocation; + + LocatableElement dfn_to_element(DataFlow::Node node) { + result = node.asExpr() or + result = node.asParameter() + } } /** @@ -100,6 +105,17 @@ class InsecureRandomnessInstance extends RandomnessInstance { InsecureRandomnessInstance() { exists(InsecureRandomnessSource node | this = node.asExpr()) } } +/** + * Output artifact flow logic + */ +abstract class DigestArtifactInstance extends Crypto::DigestArtifactInstance { + override predicate flowsTo(Crypto::FlowAwareElement other) { + ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } + + override predicate isConsumerArtifact() { none() } +} + /** * Artifact output to node input configuration */ @@ -115,6 +131,8 @@ abstract class CipherOutputArtifact extends Crypto::CipherOutputArtifactInstance override predicate flowsTo(Crypto::FlowAwareElement other) { ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) } + + override predicate isConsumerArtifact() { none() } } /** @@ -144,7 +162,7 @@ module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { - source = any(Crypto::ArtifactElement artifact).getOutputNode() + source = any(Crypto::ArtifactInstance artifact).getOutputNode() } predicate isSink(DataFlow::Node sink) { diff --git a/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql b/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql index cdeeebd5a7d..7fea3515b7d 100644 --- a/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql +++ b/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql @@ -6,17 +6,19 @@ import experimental.Quantum.Language -from Crypto::NonceNode n, Crypto::CipherOperationNode op, Crypto::FlowAwareElement src, string msg +from + Crypto::NonceArtifactNode n, Crypto::CipherOperationNode op, Crypto::FlowAwareElement src, + string msg where op.getANonce() = n and // Only encryption mode is relevant for insecure nonces, consder any 'unknown' subtype - // as possibly encryption. + // as possibly encryption. ( op.getCipherOperationSubtype() instanceof Crypto::EncryptionSubtype or op.getCipherOperationSubtype() instanceof Crypto::WrapSubtype or - op.getCipherOperationSubtype() instanceof Crypto::UnwrapSubtype + op.getCipherOperationSubtype() instanceof Crypto::UnwrapSubtype ) and ( // Known sources cases that are not secure @@ -30,7 +32,6 @@ where src = n.asElement() ) select n, msg, src, src.toString() - // variant using instances, does not yield the same results // from Crypto::NonceArtifactConsumer n, Crypto::CipherOperationInstance op, Crypto::FlowAwareElement src, string msg // where diff --git a/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql b/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql index fde1ef12178..f9fc7a873db 100644 --- a/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql +++ b/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql @@ -1,14 +1,16 @@ /** * @name Possible Nonce Reuse: Produces false positives if reuse occurs in a source that is a re-entry point. * @id java/possible-nonce-reuse + * @kind problem */ import experimental.Quantum.Language import semmle.code.java.dataflow.DataFlow from - Crypto::CipherOperationNode op1, Crypto::CipherOperationNode op2, Crypto::NonceNode nonce1, - Crypto::NonceNode nonce2, Crypto::FlowAwareElement src1, Crypto::FlowAwareElement src2 + Crypto::CipherOperationNode op1, Crypto::CipherOperationNode op2, + Crypto::NonceArtifactNode nonce1, Crypto::NonceArtifactNode nonce2, Crypto::FlowAwareElement src1, + Crypto::FlowAwareElement src2 where // NOTE: not looking at value of the nonce, if we knew value, it would be insecure (hard coded) // Instead trying to find nonce sources that trace to multiple operations. diff --git a/java/ql/src/experimental/Quantum/TestCipher.ql b/java/ql/src/experimental/Quantum/TestCipher.ql index fa04770d854..b98347a57ec 100644 --- a/java/ql/src/experimental/Quantum/TestCipher.ql +++ b/java/ql/src/experimental/Quantum/TestCipher.ql @@ -6,7 +6,8 @@ import experimental.Quantum.Language from Crypto::CipherOperationNode op, Crypto::CipherAlgorithmNode a, - Crypto::ModeOfOperationAlgorithmNode m, Crypto::PaddingAlgorithmNode p, Crypto::NonceNode nonce + Crypto::ModeOfOperationAlgorithmNode m, Crypto::PaddingAlgorithmNode p, + Crypto::NonceArtifactNode nonce where a = op.getAKnownCipherAlgorithm() and m = a.getModeOfOperation() and diff --git a/java/ql/src/experimental/Quantum/TestHash.ql b/java/ql/src/experimental/Quantum/TestHash.ql new file mode 100644 index 00000000000..96f99193cba --- /dev/null +++ b/java/ql/src/experimental/Quantum/TestHash.ql @@ -0,0 +1,9 @@ +/** + * @name TestHashOperations + */ + +import experimental.Quantum.Language + +from Crypto::HashOperationNode op, Crypto::HashAlgorithmNode alg +where alg = op.getAKnownHashAlgorithm() +select op, op.getDigest(), alg, alg.getRawAlgorithmName() diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index f5f57d245ba..cebbac2ff6b 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -4,6 +4,7 @@ import codeql.util.Location import codeql.util.Option +import codeql.util.Either signature module InputSig { class LocatableElement { @@ -19,6 +20,8 @@ signature module InputSig { } class UnknownLocation instanceof Location; + + LocatableElement dfn_to_element(DataFlowNode node); } module CryptographyBase Input> { @@ -50,12 +53,12 @@ module CryptographyBase Input> { NodeBase getPassthroughNodeChild(NodeBase node) { result = node.(CipherInputNode).getChild(_) or - result = node.(NonceNode).getChild(_) + result = node.(NonceArtifactNode).getChild(_) } predicate isPassthroughNode(NodeBase node) { node instanceof CipherInputNode or - node instanceof NonceNode + node instanceof NonceArtifactNode } predicate nodes_graph_impl(NodeBase node, string key, string value) { @@ -121,7 +124,7 @@ module CryptographyBase Input> { } /** - * An element that represents a _known_ cryptographic asset. + * An element that represents a _known_ cryptographic asset with a determinable value OR an artifact. * * CROSS PRODUCT WARNING: Do not model any *other* element that is a `FlowAwareElement` to the same * instance in the database, as every other `KnownElement` will share that output artifact's flow. @@ -133,17 +136,17 @@ module CryptographyBase Input> { /** * An element that represents a _known_ cryptographic operation. */ - abstract class OperationElement extends KnownElement { + abstract class OperationInstance extends KnownElement { /** - * Gets the consumer of algorithms associated with this operation. + * Gets the consumers of algorithm values associated with this operation. */ - abstract AlgorithmConsumer getAlgorithmConsumer(); + abstract AlgorithmValueConsumer getAnAlgorithmValueConsumer(); } /** * An element that represents a _known_ cryptographic algorithm. */ - abstract class AlgorithmElement extends KnownElement { + abstract class AlgorithmInstance extends KnownElement { /** * Gets the raw name as it appears in source, e.g., "AES/CBC/PKCS7Padding". * This name is not parsed or formatted. @@ -151,11 +154,6 @@ module CryptographyBase Input> { abstract string getRawAlgorithmName(); } - /** - * An element that represents a _known_ cryptographic artifact. - */ - abstract class ArtifactElement extends KnownElement, FlowAwareElement { } - /** * An element that represents an _unknown_ data-source with a non-statically determinable value. */ @@ -198,6 +196,7 @@ module CryptographyBase Input> { override DataFlowNode getOutputNode() { none() } + // for internal use only final GenericDataSourceInstance getAnUnknownSource() { result.flowsTo(this) and not result = this.getAKnownSource() } @@ -207,23 +206,31 @@ module CryptographyBase Input> { } final NodeBase getAKnownSourceNode() { result.asElement() = this.getAKnownSource() } + + final LocatableElement getASource() { + result = this.getAnUnknownSource() or + result = this.getAKnownSource() + } + } + + abstract class AlgorithmValueConsumer extends ConsumerElement { + /** + * DO NOT USE. + * Model `getAKnownAlgorithmSource()` instead, which is equivalent but correctly typed. + */ + final override KnownElement getAKnownSource() { result = this.getAKnownAlgorithmSource() } + + /** + * Gets a known algorithm value that is equivalent to or consumed by this element. + */ + abstract AlgorithmInstance getAKnownAlgorithmSource(); } /** - * An element that consumes _known_ and _unknown_ values. - * - * A value consumer can consume multiple values and multiple value sources at once. + * An element that represents a _known_ cryptographic artifact. */ - abstract class ValueConsumer extends ConsumerElement { - final override KnownElement getAKnownSource() { none() } - - abstract string getAKnownValue(Location location); - } - - abstract class AlgorithmConsumer extends ConsumerElement { - final override KnownElement getAKnownSource() { result = this.getAKnownAlgorithmSource() } - - abstract AlgorithmElement getAKnownAlgorithmSource(); + abstract class ArtifactInstance extends KnownElement, FlowAwareElement { + abstract predicate isConsumerArtifact(); // whether this is an input artifact defined by its consumer } /** @@ -232,15 +239,6 @@ module CryptographyBase Input> { * The concept of "`ArtifactConsumer` = `ArtifactNode`" should be used for inputs, as a consumer can be directly tied * to the artifact it receives, thereby becoming the definitive contextual source for that artifact. * - * For example, consider a nonce artifact consumer: - * - * A `NonceArtifactConsumer` is always the `NonceArtifactInstance` itself, since data only becomes (i.e., is determined to be) - * a `NonceArtifactInstance` when it is consumed in a context that expects a nonce (e.g., an argument expecting nonce data). - * In this case, the artifact (nonce) is fully defined by the context in which it is consumed, and the consumer embodies - * that identity without the need for additional differentiation. Without the context a consumer provides, that data could - * otherwise be any other type of artifact or even simply random data. - * - * * Architectural Implications: * * By directly coupling a consumer with the node that receives an artifact, * the data flow is fully transparent with the consumer itself serving only as a transparent node. @@ -251,24 +249,114 @@ module CryptographyBase Input> { */ abstract class ArtifactConsumer extends ConsumerElement { /** + * DO NOT USE: * Use `getAKnownArtifactSource() instead. The behaviour of these two predicates is equivalent. */ final override KnownElement getAKnownSource() { result = this.getAKnownArtifactSource() } - final ArtifactElement getAKnownArtifactSource() { result.flowsTo(this) } + final ArtifactInstance getAKnownArtifactSource() { result.flowsTo(this) } } - abstract class ArtifactConsumerAndInstance extends ArtifactConsumer { - final override DataFlowNode getOutputNode() { none() } - - final override predicate flowsTo(FlowAwareElement other) { none() } + /** + * An `ArtifactConsumer` that is also an `ArtifactInstance`. + * + * For example: + * A `NonceArtifactConsumer` is always the `NonceArtifactInstance` itself, since data only becomes (i.e., is determined to be) + * a `NonceArtifactInstance` when it is consumed in a context that expects a nonce (e.g., an argument expecting nonce data). + * In this case, the artifact (nonce) is fully defined by the context in which it is consumed, and the consumer embodies + * that identity without the need for additional differentiation. Without the context a consumer provides, that data could + * otherwise be any other type of artifact or even simply random data. + * + * TODO: what if a Nonce from hypothetical func `generateNonce()` flows to this instance which is also a Nonce? + * TODO: potential solution is creating another artifact type called NonceData or treating it as a generic source. + * + * TODO: An alternative is simply having a predicate DataFlowNode getNonceInputNode() on (for example) operations. + * Under the hood, in Model.qll, we would create the instance for the modeller, thus avoiding the need for the modeller + * to create a separate consumer class / instance themselves using this class. + */ + abstract private class ArtifactConsumerAndInstance extends ArtifactConsumer, ArtifactInstance { + override predicate isConsumerArtifact() { any() } } - abstract class CipherOutputArtifactInstance extends ArtifactElement { + final private class NonceArtifactConsumer extends ArtifactConsumerAndInstance { + DataFlowNode inputNode; + + NonceArtifactConsumer() { + exists(CipherOperationInstance op | inputNode = op.getNonceConsumer()) and + this = Input::dfn_to_element(inputNode) + } + + final override DataFlowNode getInputNode() { result = inputNode } + } + + final private class CipherInputArtifactConsumer extends ArtifactConsumerAndInstance { + DataFlowNode inputNode; + + CipherInputArtifactConsumer() { + exists(CipherOperationInstance op | inputNode = op.getInputConsumer()) and + this = Input::dfn_to_element(inputNode) + } + + final override DataFlowNode getInputNode() { result = inputNode } + } + + // Output artifacts are determined solely by the element that produces them. + // Implementation guidance: these *do* need to be defined generically at the language-level + // in order for a flowsTo to be defined. At the per-modeling-instance level, extend that language-level class! + abstract class OutputArtifactInstance extends ArtifactInstance { + override predicate isConsumerArtifact() { none() } + } + + abstract class DigestArtifactInstance extends OutputArtifactInstance { final override DataFlowNode getInputNode() { none() } } - abstract class CipherOperationInstance extends OperationElement { + abstract class RandomNumberGenerationInstance extends OutputArtifactInstance { + // TODO: input seed? + final override DataFlowNode getInputNode() { none() } + } + + abstract class CipherOutputArtifactInstance extends ArtifactInstance { + final override DataFlowNode getInputNode() { none() } + } + + // Artifacts that may be outputs or inputs + newtype TKeyArtifactType = + TSymmetricKeyType() or + TAsymmetricKeyType() or + TUnknownKeyType() + + class KeyArtifactType extends TKeyArtifactType { + string toString() { + this = TSymmetricKeyType() and result = "Symmetric" + or + this = TAsymmetricKeyType() and result = "Asymmetric" + or + this = TUnknownKeyType() and result = "Unknown" + } + } + + abstract class KeyArtifactInstance extends ArtifactInstance { + abstract KeyArtifactType getKeyType(); + } + + final class KeyArtifactConsumer extends ArtifactConsumerAndInstance, KeyArtifactInstance { + DataFlowNode inputNode; + + KeyArtifactConsumer() { + exists(CipherOperationInstance op | inputNode = op.getKeyConsumer()) and + this = Input::dfn_to_element(inputNode) + } + + override KeyArtifactType getKeyType() { result instanceof TUnknownKeyType } + + final override DataFlowNode getInputNode() { result = inputNode } + } + + /** + * A cipher operation instance, such as encryption or decryption. + */ + abstract class CipherOperationInstance extends OperationInstance { /** * Gets the subtype of this cipher operation, distinguishing encryption, decryption, key wrapping, and key unwrapping. */ @@ -277,12 +365,17 @@ module CryptographyBase Input> { /** * Gets the consumer of nonces/IVs associated with this cipher operation. */ - abstract NonceArtifactConsumer getNonceConsumer(); + abstract DataFlowNode getNonceConsumer(); /** * Gets the consumer of plaintext or ciphertext input associated with this cipher operation. */ - abstract CipherInputConsumer getInputConsumer(); + abstract DataFlowNode getInputConsumer(); + + /** + * Gets the consumer of a key. + */ + abstract DataFlowNode getKeyConsumer(); /** * Gets the output artifact of this cipher operation. @@ -294,7 +387,7 @@ module CryptographyBase Input> { abstract CipherOutputArtifactInstance getOutputArtifact(); } - abstract class CipherAlgorithmInstance extends AlgorithmElement { + abstract class CipherAlgorithmInstance extends AlgorithmInstance { /** * Gets the type of this cipher, e.g., "AES" or "ChaCha20". */ @@ -303,7 +396,7 @@ module CryptographyBase Input> { /** * Gets the mode of operation of this cipher, e.g., "GCM" or "CBC". * - * IMPLEMENTATION NOTE: as a trade-off, this is not a consumer but always either an instance or unknown. + * IMPLEMENTATION NOTE: as a tradeoff, this is not a consumer but always either an instance or unknown. * A mode of operation is therefore assumed to always be part of the cipher algorithm itself. */ abstract ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm(); @@ -311,13 +404,13 @@ module CryptographyBase Input> { /** * Gets the padding scheme of this cipher, e.g., "PKCS7" or "NoPadding". * - * IMPLEMENTATION NOTE: as a trade-off, this is not a consumer but always either an instance or unknown. + * IMPLEMENTATION NOTE: as a tradeoff, this is not a consumer but always either an instance or unknown. * A padding algorithm is therefore assumed to always be defined as part of the cipher algorithm itself. */ abstract PaddingAlgorithmInstance getPaddingAlgorithm(); } - abstract class ModeOfOperationAlgorithmInstance extends AlgorithmElement { + abstract class ModeOfOperationAlgorithmInstance extends AlgorithmInstance { /** * Gets the type of this mode of operation, e.g., "ECB" or "CBC". * @@ -335,7 +428,7 @@ module CryptographyBase Input> { abstract string getRawModeAlgorithmName(); } - abstract class PaddingAlgorithmInstance extends AlgorithmElement { + abstract class PaddingAlgorithmInstance extends AlgorithmInstance { /** * Gets the isolated name as it appears in source, e.g., "PKCS7Padding" in "AES/CBC/PKCS7Padding". * @@ -353,56 +446,70 @@ module CryptographyBase Input> { abstract TPaddingType getPaddingType(); } - abstract class KeyEncapsulationOperationInstance extends LocatableElement { } + abstract class OAEPPaddingAlgorithmInstance extends PaddingAlgorithmInstance { + OAEPPaddingAlgorithmInstance() { this.getPaddingType() = OAEP() } - abstract class KeyEncapsulationAlgorithmInstance extends LocatableElement { } + /** + * Gets the hash algorithm used in this padding scheme. + */ + abstract HashAlgorithmInstance getHashAlgorithm(); - abstract class EllipticCurveAlgorithmInstance extends LocatableElement { } - - abstract class HashOperationInstance extends OperationElement { - // TODO: need input and outputs, but this should be universal to all Operations + /** + * Gets the mask generation function used in this padding scheme. + */ + abstract HashAlgorithmInstance getMaskGenerationFunction(); } - abstract class HashAlgorithmInstance extends AlgorithmElement { + abstract class KeyEncapsulationOperationInstance extends OperationInstance { } + + abstract class KeyEncapsulationAlgorithmInstance extends AlgorithmInstance { } + + abstract class EllipticCurveAlgorithmInstance extends AlgorithmInstance { } + + abstract class HashOperationInstance extends OperationInstance { + abstract DigestArtifactInstance getDigestArtifact(); + } + + abstract class HashAlgorithmInstance extends AlgorithmInstance { /** * Gets the type of this digest algorithm, e.g., "SHA1", "SHA2", "MD5" etc. */ abstract THashType getHashFamily(); - - // abstract int getHashSize(); } - abstract class KeyDerivationOperationInstance extends KnownElement { } + abstract class KeyDerivationOperationInstance extends OperationInstance { } - abstract class KeyDerivationAlgorithmInstance extends KnownElement { } + abstract class KeyDerivationAlgorithmInstance extends AlgorithmInstance { } - // Artifacts determined solely by the element that produces them - // Implementation guidance: these *do* need to be defined generically at the language-level - // in order for a flowsTo to be defined. At the per-modeling-instance level, extend that language-level class! - abstract class OutputArtifactElement extends ArtifactElement { - final override DataFlowNode getInputNode() { none() } + private signature class AlgorithmInstanceType instanceof AlgorithmInstance; + + module AlgorithmInstanceOrValueConsumer { + class Union extends LocatableElement { + Union() { + this instanceof Alg + or + this instanceof AlgorithmValueConsumer and + not exists(this.(AlgorithmValueConsumer).getASource()) + } + + Alg asAlg() { result = this } + + AlgorithmValueConsumer asAVC() { result = this } + } } - abstract class DigestArtifactInstance extends OutputArtifactElement { } + class CipherAlgorithmInstanceOrValueConsumer = + AlgorithmInstanceOrValueConsumer::Union; - abstract class RandomNumberGenerationInstance extends OutputArtifactElement { } // TODO: is this an OutputArtifactElement if it takes a seed? - - // Artifacts determined solely by the consumer that consumes them are defined as consumers - // Implementation guidance: these do not need to be defined generically at the language-level - // Only the sink node needs to be defined per-modeling-instance (e.g., in JCA.qll) - abstract class NonceArtifactConsumer extends ArtifactConsumerAndInstance { } - - abstract class CipherInputConsumer extends ArtifactConsumerAndInstance { } - - // Other artifacts - abstract class KeyArtifactInstance extends ArtifactElement { } // TODO: implement and categorize + class HashAlgorithmInstanceOrValueConsumer = + AlgorithmInstanceOrValueConsumer::Union; newtype TNode = // Artifacts (data that is not an operation or algorithm, e.g., a key) TDigest(DigestArtifactInstance e) or TKey(KeyArtifactInstance e) or TNonce(NonceArtifactConsumer e) or - TCipherInput(CipherInputConsumer e) or + TCipherInput(CipherInputArtifactConsumer e) or TCipherOutput(CipherOutputArtifactInstance e) or TRandomNumberGeneration(RandomNumberGenerationInstance e) { e.flowsTo(_) } or // Operations (e.g., hashing, encryption) @@ -411,9 +518,9 @@ module CryptographyBase Input> { TCipherOperation(CipherOperationInstance e) or TKeyEncapsulationOperation(KeyEncapsulationOperationInstance e) or // Algorithms (e.g., SHA-256, AES) - TCipherAlgorithm(CipherAlgorithmInstance e) or + TCipherAlgorithm(CipherAlgorithmInstanceOrValueConsumer e) or TEllipticCurveAlgorithm(EllipticCurveAlgorithmInstance e) or - THashAlgorithm(HashAlgorithmInstance e) or + THashAlgorithm(HashAlgorithmInstanceOrValueConsumer e) or TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstance e) or TKeyEncapsulationAlgorithm(KeyEncapsulationAlgorithmInstance e) or // Non-standalone Algorithms (e.g., Mode, Padding) @@ -567,10 +674,10 @@ module CryptographyBase Input> { /** * A nonce or initialization vector */ - final class NonceNode extends ArtifactNode, TNonce { + final class NonceArtifactNode extends ArtifactNode, TNonce { NonceArtifactConsumer instance; - NonceNode() { this = TNonce(instance) } + NonceArtifactNode() { this = TNonce(instance) } final override string getInternalType() { result = "Nonce" } @@ -594,7 +701,7 @@ module CryptographyBase Input> { * Input text to a cipher operation */ final class CipherInputNode extends ArtifactNode, TCipherInput { - CipherInputConsumer instance; + CipherInputArtifactConsumer instance; CipherInputNode() { this = TCipherInput(instance) } @@ -616,6 +723,41 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } } + /** + * A cryptographic key, such as a symmetric key or asymmetric key pair. + */ + final class KeyArtifactNode extends ArtifactNode, TKey { + KeyArtifactInstance instance; + + KeyArtifactNode() { this = TKey(instance) } + + final override string getInternalType() { result = "Key" } + + override LocatableElement asElement() { result = instance } + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + // [ONLY_KNOWN] + key = "KeyType" and + value = instance.getKeyType().toString() and + location = this.getLocation() + } + } + + /** + * A digest produced by a hash operation. + */ + final class DigestArtifactNode extends ArtifactNode, TDigest { + DigestArtifactInstance instance; + + DigestArtifactNode() { this = TDigest(instance) } + + final override string getInternalType() { result = "Digest" } + + override LocatableElement asElement() { result = instance } + } + /** * A cryptographic operation, such as hashing or encryption. */ @@ -693,26 +835,30 @@ module CryptographyBase Input> { */ NodeBase getACipherAlgorithmOrUnknown() { result = this.getAKnownCipherAlgorithm() or - result = this.asElement().(OperationElement).getAlgorithmConsumer().getAnUnknownSourceNode() + result = + this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAnUnknownSourceNode() } /** * Gets a known algorithm associated with this operation */ CipherAlgorithmNode getAKnownCipherAlgorithm() { - result = this.asElement().(OperationElement).getAlgorithmConsumer().getAKnownSourceNode() + result = + this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() } CipherOperationSubtype getCipherOperationSubtype() { result = instance.getCipherOperationSubtype() } - NonceNode getANonce() { - result.asElement() = this.asElement().(CipherOperationInstance).getNonceConsumer() + NonceArtifactNode getANonce() { + result.asElement() = + Input::dfn_to_element(this.asElement().(CipherOperationInstance).getNonceConsumer()) } CipherInputNode getAnInputArtifact() { - result.asElement() = this.asElement().(CipherOperationInstance).getInputConsumer() + result.asElement() = + Input::dfn_to_element(this.asElement().(CipherOperationInstance).getInputConsumer()) } CipherOutputNode getAnOutputArtifact() { @@ -858,6 +1004,32 @@ module CryptographyBase Input> { override string getRawAlgorithmName() { result = instance.getRawPaddingAlgorithmName() } } + class OAEPPaddingAlgorithmNode extends PaddingAlgorithmNode { + override OAEPPaddingAlgorithmInstance instance; + + OAEPPaddingAlgorithmNode() { this = TPaddingAlgorithm(instance) } + + HashAlgorithmNode getHashAlgorithm() { result.asElement() = instance.getHashAlgorithm() } + + HashAlgorithmNode getMaskGenerationFunction() { + result.asElement() = instance.getMaskGenerationFunction() + } + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + // [KNOWN_OR_UNKNOWN] + edgeName = "MD" and + if exists(this.getHashAlgorithm()) then result = this.getHashAlgorithm() else result = this + or + // [KNOWN_OR_UNKNOWN] + edgeName = "MGF" and + if exists(this.getMaskGenerationFunction()) + then result = this.getMaskGenerationFunction() + else result = this + } + } + /** * A helper type for distinguishing between block and stream ciphers. */ @@ -904,7 +1076,7 @@ module CryptographyBase Input> { OtherCipherType() final class CipherAlgorithmNode extends AlgorithmNode, TCipherAlgorithm { - CipherAlgorithmInstance instance; + CipherAlgorithmInstanceOrValueConsumer instance; CipherAlgorithmNode() { this = TCipherAlgorithm(instance) } @@ -920,7 +1092,7 @@ module CryptographyBase Input> { this.cipherFamilyToNameAndStructure(this.getCipherFamily(), result, _) } - final override string getRawAlgorithmName() { result = instance.getRawAlgorithmName() } + final override string getRawAlgorithmName() { result = instance.asAlg().getRawAlgorithmName() } /** * Gets the key size of this cipher, e.g., "128" or "256". @@ -930,20 +1102,20 @@ module CryptographyBase Input> { /** * Gets the type of this cipher, e.g., "AES" or "ChaCha20". */ - TCipherType getCipherFamily() { result = instance.getCipherFamily() } + TCipherType getCipherFamily() { result = instance.asAlg().getCipherFamily() } /** * Gets the mode of operation of this cipher, e.g., "GCM" or "CBC". */ ModeOfOperationAlgorithmNode getModeOfOperation() { - result.asElement() = instance.getModeOfOperationAlgorithm() + result.asElement() = instance.asAlg().getModeOfOperationAlgorithm() } /** * Gets the padding scheme of this cipher, e.g., "PKCS7" or "NoPadding". */ PaddingAlgorithmNode getPaddingAlgorithm() { - result.asElement() = instance.getPaddingAlgorithm() + result.asElement() = instance.asAlg().getPaddingAlgorithm() } bindingset[type] @@ -1038,7 +1210,7 @@ module CryptographyBase Input> { * hash value as the output using a specified hashing algorithm. */ class HashOperationNode extends OperationNode, THashOperation { - HashAlgorithmInstance instance; + HashOperationInstance instance; HashOperationNode() { this = THashOperation(instance) } @@ -1049,16 +1221,39 @@ module CryptographyBase Input> { /** * Gets the algorithm or unknown source nodes consumed as an algorithm associated with this operation. */ - NodeBase getACipherAlgorithmOrUnknown() { - result = this.getAKnownCipherAlgorithm() or - result = this.asElement().(OperationElement).getAlgorithmConsumer().getAnUnknownSourceNode() + NodeBase getAHashAlgorithmOrUnknown() { + result = this.getAKnownHashAlgorithm() or + result = + this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAnUnknownSourceNode() } /** * Gets a known algorithm associated with this operation */ - HashAlgorithmNode getAKnownCipherAlgorithm() { - result = this.asElement().(OperationElement).getAlgorithmConsumer().getAKnownSourceNode() + HashAlgorithmNode getAKnownHashAlgorithm() { + result = + this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() + } + + /** + * Gets the output digest node + */ + DigestArtifactNode getDigest() { + result.asElement() = this.asElement().(HashOperationInstance).getDigestArtifact() + } + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + // [KNOWN_OR_UNKNOWN] + edgeName = "Algorithm" and + if exists(this.getAHashAlgorithmOrUnknown()) + then result = this.getAHashAlgorithmOrUnknown() + else result = this + or + // [KNOWN_OR_UNKNOWN] + edgeName = "Digest" and + if exists(this.getDigest()) then result = this.getDigest() else result = this } } @@ -1083,11 +1278,17 @@ module CryptographyBase Input> { /** * A hashing algorithm that transforms variable-length input into a fixed-size hash value. */ - abstract class HashAlgorithmNode extends AlgorithmNode, THashAlgorithm { - HashAlgorithmInstance instance; + final class HashAlgorithmNode extends AlgorithmNode, THashAlgorithm { + HashAlgorithmInstanceOrValueConsumer instance; + HashAlgorithmNode() { this = THashAlgorithm(instance) } + override string getInternalType() { result = "HashAlgorithm" } + override LocatableElement asElement() { result = instance } + + override string getRawAlgorithmName() { result = instance.asAlg().getRawAlgorithmName() } + final predicate hashTypeToNameMapping(THashType type, string name) { type instanceof BLAKE2B and name = "BLAKE2B" or From 63aaebbea6bd4a5249393265d980c27a5f1724c7 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Wed, 19 Mar 2025 18:30:06 -0400 Subject: [PATCH 070/656] . --- cpp/ql/lib/experimental/Quantum/Language.qll | 6 + .../OpenSSL/EVPCipherAlgorithmSource.qll | 181 --- .../Quantum/OpenSSL/EVPCipherInitializer.qll | 153 --- .../Quantum/OpenSSL/EVPCipherOperation.qll | 92 -- .../experimental/Quantum/OpenSSL/OpenSSL.qll | 216 +--- .../OpenSSL/OpenSSLAlgorithmGetter.qll | 1024 ++++++++--------- .../codeql/cryptography/Model.qll | 5 + 7 files changed, 555 insertions(+), 1122 deletions(-) delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherInitializer.qll delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index dbcb2004b83..2dc17f5e267 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -9,6 +9,12 @@ module CryptoInput implements InputSig { class LocatableElement = Lang::Locatable; class UnknownLocation = Lang::UnknownDefaultLocation; + + LocatableElement dfn_to_element(DataFlow::Node node) { + result = node.asExpr() or + result = node.asParameter() or + result = node.asVariable() + } } module Crypto = CryptographyBase; diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll deleted file mode 100644 index 65231e32cd0..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherAlgorithmSource.qll +++ /dev/null @@ -1,181 +0,0 @@ -import cpp -import experimental.Quantum.Language -import EVPCipherConsumers -import OpenSSLAlgorithmGetter - -/** - * Given a `KnownOpenSSLAlgorithmConstant`, converts this to a cipher family type. - * Does not bind if there is know mapping (no mapping to 'unknown' or 'other'). - */ -predicate knownOpenSSLConstantToCipherFamilyType( - KnownOpenSSLAlgorithmConstant e, Crypto::TCipherType type -) { - exists(string name | e.getAlgType().toLowerCase().matches("%encryption") | - name = e.getNormalizedName() and - ( - name.matches("AES%") and type instanceof Crypto::AES - or - name.matches("ARIA") and type instanceof Crypto::ARIA - or - name.matches("BLOWFISH") and type instanceof Crypto::BLOWFISH - or - name.matches("BF") and type instanceof Crypto::BLOWFISH - or - name.matches("CAMELLIA%") and type instanceof Crypto::CAMELLIA - or - name.matches("CHACHA20") and type instanceof Crypto::CHACHA20 - or - name.matches("CAST5") and type instanceof Crypto::CAST5 - or - name.matches("2DES") and type instanceof Crypto::DoubleDES - or - name.matches(["3DES", "TRIPLEDES"]) and type instanceof Crypto::TripleDES - or - name.matches("DES") and type instanceof Crypto::DES - or - name.matches("DESX") and type instanceof Crypto::DESX - or - name.matches("GOST%") and type instanceof Crypto::GOST - or - name.matches("IDEA") and type instanceof Crypto::IDEA - or - name.matches("KUZNYECHIK") and type instanceof Crypto::KUZNYECHIK - or - name.matches("MAGMA") and type instanceof Crypto::MAGMA - or - name.matches("RC2") and type instanceof Crypto::RC2 - or - name.matches("RC4") and type instanceof Crypto::RC4 - or - name.matches("RC5") and type instanceof Crypto::RC5 - or - name.matches("RSA") and type instanceof Crypto::RSA - or - name.matches("SEED") and type instanceof Crypto::SEED - or - name.matches("SM4") and type instanceof Crypto::SM4 - ) - ) -} - -class KnownOpenSSLCipherConstantAlgorithmInstance extends Crypto::CipherAlgorithmInstance instanceof KnownOpenSSLAlgorithmConstant -{ - OpenSSLAlgorithmGetterCall getterCall; - - KnownOpenSSLCipherConstantAlgorithmInstance() { - // Not just any known value, but specifically a known cipher operation - this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("%encryption") and - ( - // Two possibilities: - // 1) The source is a literal and flows to a getter, then we know we have an instance - // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that - // Possibility 1: - this instanceof Literal and - exists(DataFlow::Node src, DataFlow::Node sink | - // Sink is an argument to a CipherGetterCall - sink = getterCall.(OpenSSLAlgorithmGetterCall).getValueArgNode() and - // Source is `this` - src.asExpr() = this and - // This traces to a getter - KnownOpenSSLAlgorithmToAlgorithmGetterFlow::flow(src, sink) - ) - or - // Possibility 2: - this instanceof DirectGetterCall and getterCall = this - ) - } - - Crypto::AlgorithmConsumer getConsumer() { - AlgGetterToAlgConsumerFlow::flow(getterCall.getResultNode(), DataFlow::exprNode(result)) - } - - override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { - // if there is a block mode associated with the same element, then that's the block mode - // note, if none are associated, we may need to parse if the cipher is a block cipher - // to determine if this is an unknown vs not relevant. - result = this - } - - override Crypto::PaddingAlgorithmInstance getPaddingAlgorithm() { none() } - - override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } - - override Crypto::TCipherType getCipherFamily() { - knownOpenSSLConstantToCipherFamilyType(this, result) - or - not knownOpenSSLConstantToCipherFamilyType(this, _) and result = Crypto::OtherCipherType() - } -} - -/** - * Given a `KnownOpenSSLAlgorithmConstant`, converts this to a cipher family type. - * Does not bind if there is know mapping (no mapping to 'unknown' or 'other'). - */ -predicate knownOpenSSLConstantToBlockModeFamilyType( - KnownOpenSSLAlgorithmConstant e, Crypto::TBlockCipherModeOperationType type -) { - exists(string name | e.getAlgType().toLowerCase().matches("block_mode") | - name = e.getNormalizedName() and - ( - name.matches("CBC") and type instanceof Crypto::CBC - or - name.matches("CFB%") and type instanceof Crypto::CFB - or - name.matches("CTR") and type instanceof Crypto::CTR - or - name.matches("GCM") and type instanceof Crypto::GCM - or - name.matches("OFB") and type instanceof Crypto::OFB - or - name.matches("XTS") and type instanceof Crypto::XTS - or - name.matches("CCM") and type instanceof Crypto::CCM - or - name.matches("GCM") and type instanceof Crypto::GCM - or - name.matches("CCM") and type instanceof Crypto::CCM - or - name.matches("ECB") and type instanceof Crypto::ECB - ) - ) -} - -class KnownOpenSSLBlockModeConstantAlgorithmInstance extends Crypto::ModeOfOperationAlgorithmInstance instanceof KnownOpenSSLAlgorithmConstant -{ - OpenSSLAlgorithmGetterCall getterCall; - - KnownOpenSSLBlockModeConstantAlgorithmInstance() { - // Not just any known value, but specifically a known cipher operation - this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("block_mode") and - ( - // Two possibilities: - // 1) The source is a literal and flows to a getter, then we know we have an instance - // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that - // Possibility 1: - this instanceof Literal and - exists(DataFlow::Node src, DataFlow::Node sink | - // Sink is an argument to a CipherGetterCall - sink = getterCall.(OpenSSLAlgorithmGetterCall).getValueArgNode() and - // Source is `this` - src.asExpr() = this and - // This traces to a getter - KnownOpenSSLAlgorithmToAlgorithmGetterFlow::flow(src, sink) - ) - or - // Possibility 2: - this instanceof DirectGetterCall and getterCall = this - ) - } - - override Crypto::TBlockCipherModeOperationType getModeType() { - knownOpenSSLConstantToBlockModeFamilyType(this, result) - or - not knownOpenSSLConstantToBlockModeFamilyType(this, _) and result = Crypto::OtherMode() - } - - // NOTE: I'm not going to attempt to parse out the mode specific part, so returning - // the same as the raw name for now. - override string getRawModeAlgorithmName() { result = this.(Literal).getValue().toString() } - - override string getRawAlgorithmName() { result = this.getRawModeAlgorithmName() } -} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherInitializer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherInitializer.qll deleted file mode 100644 index 12cbe4da650..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherInitializer.qll +++ /dev/null @@ -1,153 +0,0 @@ -import experimental.Quantum.Language -import CtxFlow as CTXFlow - -module EncValToInitEncArgConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source.asExpr().getValue().toInt() in [0, 1] } - - predicate isSink(DataFlow::Node sink) { - exists(EVP_Cipher_Inititalizer initCall | sink.asExpr() = initCall.getOperataionSubtypeArg()) - } -} - -module EncValToInitEncArgFlow = DataFlow::Global; - -int getEncConfigValue(Expr e) { - exists(EVP_Cipher_Inititalizer initCall | e = initCall.getOperataionSubtypeArg()) and - exists(DataFlow::Node a, DataFlow::Node b | - EncValToInitEncArgFlow::flow(a, b) and b.asExpr() = e and result = a.asExpr().getValue().toInt() - ) -} - -bindingset[i] -Crypto::CipherOperationSubtype intToCipherOperationSubtype(int i) { - if i = 0 - then result instanceof Crypto::EncryptionSubtype - else - if i = 1 - then result instanceof Crypto::DecryptionSubtype - else result instanceof Crypto::UnknownCipherOperationSubtype -} - -// TODO: need to add key consumer -abstract class EVP_Cipher_Inititalizer extends Call { - Expr getContextArg() { result = this.(Call).getArgument(0) } - - Expr getAlgorithmArg() { result = this.(Call).getArgument(1) } - - abstract Expr getKeyArg(); - - abstract Expr getIVArg(); - -// abstract Crypto::CipherOperationSubtype getCipherOperationSubtype(); - - abstract Expr getOperataionSubtypeArg(); - -Crypto::CipherOperationSubtype getCipherOperationSubtype() { - if this.(Call).getTarget().getName().toLowerCase().matches("%encrypt%") - then result instanceof Crypto::EncryptionSubtype - else - if this.(Call).getTarget().getName().toLowerCase().matches("%decrypt%") - then result instanceof Crypto::DecryptionSubtype - else - if exists(getEncConfigValue(this.getOperataionSubtypeArg())) - then result = intToCipherOperationSubtype(getEncConfigValue(this.getOperataionSubtypeArg())) - else result instanceof Crypto::UnknownCipherOperationSubtype - } -} - -abstract class EVP_EX_Initializer extends EVP_Cipher_Inititalizer { - override Expr getKeyArg() { result = this.(Call).getArgument(3) } - - override Expr getIVArg() { result = this.(Call).getArgument(4) } -} - -abstract class EVP_EX2_Initializer extends EVP_Cipher_Inititalizer { - override Expr getKeyArg() { result = this.(Call).getArgument(2) } - - override Expr getIVArg() { result = this.(Call).getArgument(3) } -} - -class EVP_Cipher_EX_Init_Call extends EVP_EX_Initializer { - EVP_Cipher_EX_Init_Call() { - this.(Call).getTarget().getName() in [ - "EVP_EncryptInit_ex", "EVP_DecryptInit_ex", "EVP_CipherInit_ex" - ] - } - - override Expr getOperataionSubtypeArg() { - this.(Call).getTarget().getName().toLowerCase().matches("%cipherinit%") and - result = this.(Call).getArgument(5) - } -} - -// abstract class EVP_CipherInit extends EVP_Cipher_Inititalizer{ -// abstract Expr getOperataionSubtypeArg(); -// } -// class EVP_CipherInit_ex_Call extends EVP_EX_Initializer, EVP_CipherInit { -// EVP_CipherInit_ex_Call() { this.(Call).getTarget().getName() = "EVP_CipherInit_ex" } -// override Crypto::CipherOperationSubtype getCipherOperationSubtype() { -// result instanceof Crypto::EncryptionSubtype -// } -// override Expr getOperataionSubtypeArg(){ -// result = this.(Call).getArgument(5) -// } -// } -// class EVP_CipherInit_ex2_Call extends EVP_EX_Initializer, EVP_CipherInit { -// EVP_CipherInit_ex2_Call() { this.(Call).getTarget().getName() = "EVP_CipherInit_ex2" } -// override Crypto::CipherOperationSubtype getCipherOperationSubtype() { -// result instanceof Crypto::EncryptionSubtype -// } -// override Expr getOperataionSubtypeArg(){ -// result = this.(Call).getArgument(4) -// } -// } -class EVP_Cipher_EX2_or_Simple_Init_Call extends EVP_EX2_Initializer { - EVP_Cipher_EX2_or_Simple_Init_Call() { - this.(Call).getTarget().getName() in [ - "EVP_EncryptInit_ex2", "EVP_DecryptInit_ex2", "EVP_CipherInit_ex2", - "EVP_EncryptInit", "EVP_DecryptInit", "EVP_CipherInit" - ] - } - - - override Expr getOperataionSubtypeArg() { - this.(Call).getTarget().getName().toLowerCase().matches("%cipherinit%") and - result = this.(Call).getArgument(4) - } -} - -class EVP_CipherInit_SKEY_Call extends EVP_EX2_Initializer { - EVP_CipherInit_SKEY_Call() { - this.(Call).getTarget().getName() in [ - "EVP_CipherInit_SKEY" - ] - } - - override Expr getOperataionSubtypeArg() { - result = this.(Call).getArgument(5) - } -} - - -// class EVP_CipherInit extends EVP_Cipher_Inititalizer { -// EVP_CipherInit() { this.(Call).getTarget().getName() = "EVP_CipherInit" } -// override Expr getKeyArg() { result = this.(Call).getArgument(2) } -// override Expr getIVArg() { result = this.(Call).getArgument(3) } -// override Crypto::CipherOperationSubtype getCipherOperationSubtype() { -// result instanceof Crypto::EncryptionSubtype -// } -// } -class EVPCipherInitializerAlgorithmArgument extends Expr { - EVPCipherInitializerAlgorithmArgument() { - exists(EVP_Cipher_Inititalizer initCall | this = initCall.getAlgorithmArg()) - } -} -class EVPCipherInitializerKeyArgument extends Expr { - EVPCipherInitializerKeyArgument() { - exists(EVP_Cipher_Inititalizer initCall | this = initCall.getKeyArg()) - } -} -class EVPCipherInitializerIVArgument extends Expr { - EVPCipherInitializerIVArgument() { exists(EVP_Cipher_Inititalizer initCall | this = initCall.getIVArg()) } -} - diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll deleted file mode 100644 index f426eb3f92d..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherOperation.qll +++ /dev/null @@ -1,92 +0,0 @@ -import experimental.Quantum.Language -import CtxFlow as CTXFlow -import EVPCipherInitializer -import EVPCipherConsumers - -//https://docs.openssl.org/master/man3/EVP_EncryptInit/#synopsis -abstract class EVP_Cipher_Operation extends Crypto::CipherOperationInstance instanceof Call { - Expr getContextArg() { result = this.(Call).getArgument(0) } - - abstract Expr getInputArg(); - - Expr getOutputArg() { result = this.(Call).getArgument(1) } - - override Crypto::CipherOperationSubtype getCipherOperationSubtype() { - result instanceof Crypto::EncryptionSubtype and - this.(Call).getTarget().getName().toLowerCase().matches("%encrypt%") - or - result instanceof Crypto::DecryptionSubtype and - this.(Call).getTarget().getName().toLowerCase().matches("%decrypt%") - or - result = this.getInitCall().getCipherOperationSubtype() and - this.(Call).getTarget().getName().toLowerCase().matches("%cipher%") - } - - EVP_Cipher_Inititalizer getInitCall() { - CTXFlow::ctxFlowsTo(result.getContextArg(), this.getContextArg()) - } - - override Crypto::NonceArtifactConsumer getNonceConsumer() { - this.getInitCall().getIVArg() = result - } - - override Crypto::CipherInputConsumer getInputConsumer() { this.getInputArg() = result } - - override Crypto::CipherOutputArtifactInstance getOutputArtifact() { this.getOutputArg() = result } - - override Crypto::AlgorithmConsumer getAlgorithmConsumer() { - this.getInitCall().getAlgorithmArg() = result - } -} - -abstract class EVP_Update_Call extends EVP_Cipher_Operation { } - -abstract class EVP_Final_Call extends EVP_Cipher_Operation { - override Expr getInputArg() { none() } -} - -class EVP_Cipher_Call extends EVP_Cipher_Operation { - EVP_Cipher_Call() { this.(Call).getTarget().getName() = "EVP_Cipher" } - - override Expr getInputArg() { result = this.(Call).getArgument(2) } -} - -class EVP_Encrypt_Decrypt_or_Cipher_Update_Call extends EVP_Update_Call { - EVP_Encrypt_Decrypt_or_Cipher_Update_Call() { - this.(Call).getTarget().getName() in [ - "EVP_EncryptUpdate", "EVP_DecryptUpdate", "EVP_CipherUpdate" - ] - } - - override Expr getInputArg() { result = this.(Call).getArgument(3) } -} - -class EVP_Encrypt_Decrypt_or_Cipher_Final_Call extends EVP_Final_Call { - EVP_Encrypt_Decrypt_or_Cipher_Final_Call() { - this.(Call).getTarget().getName() in [ - "EVP_EncryptFinal_ex", "EVP_DecryptFinal_ex", "EVP_CipherFinal_ex", "EVP_EncryptFinal", - "EVP_DecryptFinal", "EVP_CipherFinal" - ] - } -} - -class EVP_PKEY_Operation extends EVP_Cipher_Operation { - EVP_PKEY_Operation() { - this.(Call).getTarget().getName() in ["EVP_PKEY_decrypt", "EVP_PKEY_encrypt"] - } - - override Expr getInputArg() { result = this.(Call).getArgument(3) } - // TODO: how PKEY is initialized is different that symmetric cipher - // Consider making an entirely new class for this and specializing - // the get init call -} - -class EVPCipherOutput extends CipherOutputArtifact { - EVPCipherOutput() { exists(EVP_Cipher_Operation op | op.getOutputArg() = this) } - - override DataFlow::Node getOutputNode() { result.asExpr() = this } -} - -class EVPCipherInputArgument extends Expr { - EVPCipherInputArgument() { exists(EVP_Cipher_Operation op | op.getInputArg() = this) } -} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll index 16b9e6485c9..1f9fb9a54ba 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll @@ -3,127 +3,93 @@ import semmle.code.cpp.dataflow.new.DataFlow module OpenSSLModel { import experimental.Quantum.Language - import experimental.Quantum.OpenSSL.EVPCipherOperation - import experimental.Quantum.OpenSSL.EVPHashOperation - import experimental.Quantum.OpenSSL.EVPCipherAlgorithmSource - import experimental.Quantum.OpenSSL.EVPHashAlgorithmSource - import experimental.Quantum.OpenSSL.Random - // Imports the additional algorithm flow step for OpenSSL - import experimental.Quantum.OpenSSL.OpenSSLAlgorithmGetter - - -// // TODO: trace CTX from init variants to the context arg of EVP update calls -// //https://docs.openssl.org/master/man3/EVP_EncryptInit/#synopsis -// abstract class EVP_Cipher_Init_Call extends Call { -// Expr getContextArg() { result = this.getArgument(0) } -// abstract Expr getKeyArg(); - -// abstract Expr getIVArg(); - -// abstract Crypto::CipherOperationSubtype getCipherOperationSubtype(); -// } - -// abstract class EVP_Cipher_EX_Init_Call extends EVP_Cipher_Init_Call { -// override Expr getKeyArg() { result = this.getArgument(3) } - -// override Expr getIVArg() { result = this.getArgument(4) } -// } - -// abstract class EVP_Cipher_EX2_Init_Call extends EVP_Cipher_Init_Call { -// override Expr getKeyArg() { result = this.getArgument(2) } - -// override Expr getIVArg() { result = this.getArgument(3) } -// } - -// abstract class EVP_Cipher_Operation_Call extends Crypto::CipherOperationInstance instanceof Call { -// Expr getContextArg() { result = this.(Call).getArgument(0) } -// abstract Expr getInputArg(); -// Expr getOutputArg() { result = this.(Call).getArgument(1) } -// abstract Expr getInitCall(); -// } - -// abstract class EVP_Update_Call extends EVP_Cipher_Operation_Call { -// override Expr getInputArg() { result = this.(Call).getArgument(3) } - -// } - -// abstract class EVP_Final_Call extends EVP_Cipher_Operation_Call{ -// override Expr getInputArg() { none() } - -// } - -// class EVP_Cipher_Call extends EVP_Cipher_Operation_Call{ -// // TODO/QUESTION: what is the better way to do this? -// EVP_Cipher_Call() { this.(Call).getTarget().getName() = "EVP_Cipher" } - -// override Expr getInputArg() { result = this.(Call).getArgument(2) } - -// override Expr getOutputArg() { result = this.(Call).getArgument(1) } - -// override Crypto::CipherOperationSubtype getCipherOperationSubtype(){ -// result instanceof Crypto::EncryptionSubtype -// } - -// override Expr getInitCall(){ -// //TODO: -// none() -// } - -// override Crypto::NonceArtifactConsumer getNonceConsumer(){ -// none() -// } - -// override Crypto::CipherInputConsumer getInputConsumer(){ -// none() -// } - -// override Crypto::CipherOutputArtifactInstance getOutputArtifact(){ -// none() -// } - -// override Crypto::AlgorithmConsumer getAlgorithmConsumer(){ -// none() -// } -// } - - + import experimental.Quantum.OpenSSL.AlgorithmInstances.Instances + import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.AlgorithmValueConsumers + import experimental.Quantum.OpenSSL.Operations.Operations + // import experimental.Quantum.OpenSSL.EVPCipherOperation + // import experimental.Quantum.OpenSSL.EVPHashOperation + // import experimental.Quantum.OpenSSL.EVPCipherAlgorithmSource + // import experimental.Quantum.OpenSSL.EVPHashAlgorithmSource + // import experimental.Quantum.OpenSSL.Random + // // Imports the additional algorithm flow step for OpenSSL + // import experimental.Quantum.OpenSSL.OpenSSLAlgorithmGetter + // // TODO: trace CTX from init variants to the context arg of EVP update calls + // //https://docs.openssl.org/master/man3/EVP_EncryptInit/#synopsis + // abstract class EVP_Cipher_Init_Call extends Call { + // Expr getContextArg() { result = this.getArgument(0) } + // abstract Expr getKeyArg(); + // abstract Expr getIVArg(); + // abstract Crypto::CipherOperationSubtype getCipherOperationSubtype(); + // } + // abstract class EVP_Cipher_EX_Init_Call extends EVP_Cipher_Init_Call { + // override Expr getKeyArg() { result = this.getArgument(3) } + // override Expr getIVArg() { result = this.getArgument(4) } + // } + // abstract class EVP_Cipher_EX2_Init_Call extends EVP_Cipher_Init_Call { + // override Expr getKeyArg() { result = this.getArgument(2) } + // override Expr getIVArg() { result = this.getArgument(3) } + // } + // abstract class EVP_Cipher_Operation_Call extends Crypto::CipherOperationInstance instanceof Call { + // Expr getContextArg() { result = this.(Call).getArgument(0) } + // abstract Expr getInputArg(); + // Expr getOutputArg() { result = this.(Call).getArgument(1) } + // abstract Expr getInitCall(); + // } + // abstract class EVP_Update_Call extends EVP_Cipher_Operation_Call { + // override Expr getInputArg() { result = this.(Call).getArgument(3) } + // } + // abstract class EVP_Final_Call extends EVP_Cipher_Operation_Call{ + // override Expr getInputArg() { none() } + // } + // class EVP_Cipher_Call extends EVP_Cipher_Operation_Call{ + // // TODO/QUESTION: what is the better way to do this? + // EVP_Cipher_Call() { this.(Call).getTarget().getName() = "EVP_Cipher" } + // override Expr getInputArg() { result = this.(Call).getArgument(2) } + // override Expr getOutputArg() { result = this.(Call).getArgument(1) } + // override Crypto::CipherOperationSubtype getCipherOperationSubtype(){ + // result instanceof Crypto::EncryptionSubtype + // } + // override Expr getInitCall(){ + // //TODO: + // none() + // } + // override Crypto::NonceArtifactConsumer getNonceConsumer(){ + // none() + // } + // override Crypto::CipherInputConsumer getInputConsumer(){ + // none() + // } + // override Crypto::CipherOutputArtifactInstance getOutputArtifact(){ + // none() + // } + // override Crypto::AlgorithmConsumer getAlgorithmConsumer(){ + // none() + // } + // } //TODO: what about EVP_CIpher - - // class EVP_EncryptUpdateCall extends Crypto::CipherOperationInstance instanceof Call { // // NICK QUESTION: is there a better way to tie this to openssl? // EVP_EncryptUpdateCall() { this.getTarget().getName() = "EVP_EncryptUpdate" } - // Expr getContextArg() { result = super.getArgument(0) } - // Expr getInputArg() { result = super.getArgument(3) } - // Expr getOutputArg() { result = super.getArgument(1) } - // override Crypto::CipherOperationSubtype getCipherOperationSubtype(){ // result instanceof Crypto::EncryptionSubtype // } - // override Crypto::NonceArtifactConsumer getNonceConsumer(){ // none() // } - // override Crypto::CipherInputConsumer getInputConsumer(){ // none() // } - // override Crypto::CipherOutputArtifactInstance getOutputArtifact(){ // none() // } - // override Crypto::AlgorithmConsumer getAlgorithmConsumer(){ // none() // } - // } - //EVP_EncryptUpdate - // /** // * Hash function references in OpenSSL. // */ @@ -146,34 +112,26 @@ module OpenSSLModel { // or // name = "whirlpool" and algo instanceof Crypto::WHIRLPOOL // } - // predicate hash_ref_type_mapping(FunctionCallOrMacroAccess ref, string name, Crypto::THashType algo) { // name = ref.getTargetName().regexpCapture("(?:SN_|LN_|EVP_)([a-z0-9]+)", 1) and // hash_ref_type_mapping_known(name, algo) // } - // class FunctionCallOrMacroAccess extends Element { // FunctionCallOrMacroAccess() { this instanceof FunctionCall or this instanceof MacroAccess } - // string getTargetName() { // result = this.(FunctionCall).getTarget().getName() // or // result = this.(MacroAccess).getMacroName() // } // } - // class HashAlgorithmCallOrMacro extends Crypto::HashAlgorithmInstance instanceof FunctionCallOrMacroAccess // { // HashAlgorithmCallOrMacro() { hash_ref_type_mapping(this, _, _) } - // string getTargetName() { result = this.(FunctionCallOrMacroAccess).getTargetName() } // } - // class HashAlgorithm extends Crypto::HashAlgorithm { // HashAlgorithmCallOrMacro instance; - // HashAlgorithm() { this = Crypto::THashAlgorithm(instance) } - // override string getSHA2OrSHA3DigestSize(Location location) { // ( // this.getHashType() instanceof Crypto::SHA2 or @@ -185,16 +143,11 @@ module OpenSSLModel { // location = instance.getLocation() // ) // } - // override string getRawAlgorithmName() { result = instance.getTargetName() } - // override Crypto::THashType getHashType() { hash_ref_type_mapping(instance, _, result) } - // Element getInstance() { result = instance } - // override Location getLocation() { result = instance.getLocation() } // } - // /** // * Data-flow configuration for key derivation algorithm flow to EVP_KDF_derive. // */ @@ -202,7 +155,6 @@ module OpenSSLModel { // predicate isSource(DataFlow::Node source) { // source.asExpr() = any(KeyDerivationAlgorithm a).getInstance() // } - // predicate isSink(DataFlow::Node sink) { // exists(EVP_KDF_derive kdo | // sink.asExpr() = kdo.getCall().getAlgorithmArg() @@ -210,155 +162,113 @@ module OpenSSLModel { // sink.asExpr() = kdo.getCall().getContextArg() // via `EVP_KDF_CTX_set_params` // ) // } - // predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { // none() // TODO // } // } - // module AlgorithmToEVPKeyDeriveFlow = DataFlow::Global; - // predicate algorithm_to_EVP_KDF_derive(KeyDerivationAlgorithm algo, EVP_KDF_derive derive) { // none() // } - // /** // * Key derivation operation (e.g., `EVP_KDF_derive`) // */ // class EVP_KDF_derive_FunctionCall extends Crypto::KeyDerivationOperationInstance instanceof FunctionCall // { // EVP_KDF_derive_FunctionCall() { this.getTarget().getName() = "EVP_KDF_derive" } - // Expr getAlgorithmArg() { result = super.getArgument(3) } - // Expr getContextArg() { result = super.getArgument(0) } // } - // class EVP_KDF_derive extends Crypto::KeyDerivationOperation { // EVP_KDF_derive_FunctionCall instance; - // EVP_KDF_derive() { this = Crypto::TKeyDerivationOperation(instance) } - // override Crypto::Algorithm getAlgorithm() { algorithm_to_EVP_KDF_derive(result, this) } - // EVP_KDF_derive_FunctionCall getCall() { result = instance } // } - // /** // * Key derivation algorithm nodes // */ // abstract class KeyDerivationAlgorithm extends Crypto::KeyDerivationAlgorithm { // abstract Expr getInstance(); // } - // /** // * `EVP_KDF_fetch` returns a key derivation algorithm. // */ // class EVP_KDF_fetch_Call extends FunctionCall { // EVP_KDF_fetch_Call() { this.getTarget().getName() = "EVP_KDF_fetch" } - // Expr getAlgorithmArg() { result = this.getArgument(1) } // } - // class EVP_KDF_fetch_AlgorithmArg extends Crypto::KeyDerivationAlgorithmInstance instanceof Expr { // EVP_KDF_fetch_AlgorithmArg() { exists(EVP_KDF_fetch_Call call | this = call.getAlgorithmArg()) } // } - // predicate kdf_names(string algo) { algo = ["HKDF", "PKCS12KDF", "PBKDF2"] } - // class KDFAlgorithmStringLiteral extends StringLiteral { // KDFAlgorithmStringLiteral() { kdf_names(this.getValue().toUpperCase()) } // } - // private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { // predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KDFAlgorithmStringLiteral } - // predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof EVP_KDF_fetch_AlgorithmArg } // } - // module AlgorithmStringToFetchFlow = DataFlow::Global; - // predicate algorithmStringToKDFFetchArgFlow( // string name, KDFAlgorithmStringLiteral origin, EVP_KDF_fetch_AlgorithmArg arg // ) { // origin.getValue().toUpperCase() = name and // AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) // } - // /** // * HKDF key derivation algorithm. // */ // class HKDF extends KeyDerivationAlgorithm, Crypto::HKDF { // KDFAlgorithmStringLiteral origin; // EVP_KDF_fetch_AlgorithmArg instance; - // HKDF() { // this = Crypto::TKeyDerivationAlgorithm(instance) and // algorithmStringToKDFFetchArgFlow("HKDF", origin, instance) // } - // override string getRawAlgorithmName() { result = origin.getValue() } - // override Crypto::HashAlgorithm getHashAlgorithm() { none() } - // override Crypto::LocatableElement getOrigin(string name) { // result = origin and name = origin.toString() // } - // override Expr getInstance() { result = origin } // } - // /** // * PBKDF2 key derivation algorithm. // */ // class PBKDF2 extends KeyDerivationAlgorithm, Crypto::PBKDF2 { // KDFAlgorithmStringLiteral origin; // EVP_KDF_fetch_AlgorithmArg instance; - // PBKDF2() { // this = Crypto::TKeyDerivationAlgorithm(instance) and // algorithmStringToKDFFetchArgFlow("PBKDF2", origin, instance) // } - // override string getRawAlgorithmName() { result = origin.getValue() } - // override string getIterationCount(Location location) { none() } // TODO - // override string getKeyLength(Location location) { none() } // TODO - // override Crypto::HashAlgorithm getHashAlgorithm() { none() } // TODO - // override Crypto::LocatableElement getOrigin(string name) { // result = origin and name = origin.toString() // } - // override Expr getInstance() { result = instance } // } - // /** // * PKCS12KDF key derivation algorithm. // */ // class PKCS12KDF extends KeyDerivationAlgorithm, Crypto::PKCS12KDF { // KDFAlgorithmStringLiteral origin; // EVP_KDF_fetch_AlgorithmArg instance; - // PKCS12KDF() { // this = Crypto::TKeyDerivationAlgorithm(instance) and // algorithmStringToKDFFetchArgFlow("PKCS12KDF", origin, instance) // } - // override string getRawAlgorithmName() { result = origin.getValue() } - // override string getIterationCount(Location location) { none() } // TODO - // override string getIDByte(Location location) { none() } // TODO - // override Crypto::HashAlgorithm getHashAlgorithm() { none() } // TODO - // override Crypto::LocatableElement getOrigin(string name) { // result = origin and name = origin.toString() // } - // override Expr getInstance() { result = instance } // } } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll index 3e061eeff88..b436f3b412a 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll @@ -1,557 +1,495 @@ -import cpp -import semmle.code.cpp.dataflow.new.DataFlow -import LibraryDetector -import OpenSSLKnownAlgorithmConstants -import experimental.Quantum.Language -class OpenSSLAlgorithmAdditionalFlowStep extends AdditionalFlowInputStep { - OpenSSLAlgorithmAdditionalFlowStep() { exists(AlgorithmPassthroughCall c | c.getInNode() = this) } - - override DataFlow::Node getOutput() { - exists(AlgorithmPassthroughCall c | c.getInNode() = this and c.getOutNode() = result) - } -} - -module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - exists(OpenSSLAlgorithmGetterCall c | c.getResultNode() = source) - } - - predicate isSink(DataFlow::Node sink) { - exists(Crypto::AlgorithmConsumer c | c.getInputNode() = sink) - } -} - -module AlgGetterToAlgConsumerFlow = DataFlow::Global; - -abstract class AlgorithmPassthroughCall extends Call { - abstract DataFlow::Node getInNode(); - - abstract DataFlow::Node getOutNode(); -} - -class CopyAndDupAlgorithmPassthroughCall extends AlgorithmPassthroughCall { - DataFlow::Node inNode; - DataFlow::Node outNode; - - CopyAndDupAlgorithmPassthroughCall() { - // Flow out through any return or other argument of the same type - // Assume flow in and out is asIndirectExpr or asDefinitingArgument since a pointer is assumed - // to be involved - // NOTE: not attempting to detect openssl specific copy/dup functions, but anything suspected to be copy/dup - this.getTarget().getName().toLowerCase().matches(["%_dup%", "%_copy%"]) and - exists(Expr inArg, Type t | - inArg = this.getAnArgument() and t = inArg.getUnspecifiedType().stripType() - | - inNode.asIndirectExpr() = inArg and - ( - // Case 1: flow through another argument as an out arg of the same type - exists(Expr outArg | - outArg = this.getAnArgument() and - outArg != inArg and - outArg.getUnspecifiedType().stripType() = t - | - outNode.asDefiningArgument() = outArg - ) - or - // Case 2: flow through the return value if the result is the same as the intput type - exists(Expr outArg | outArg = this and outArg.getUnspecifiedType().stripType() = t | - outNode.asIndirectExpr() = outArg - ) - ) - ) - } - - override DataFlow::Node getInNode() { result = inNode } - - override DataFlow::Node getOutNode() { result = outNode } -} - -class NIDToPointerPassthroughCall extends AlgorithmPassthroughCall { - DataFlow::Node inNode; - DataFlow::Node outNode; - - NIDToPointerPassthroughCall() { - this.getTarget().getName() in ["OBJ_nid2obj", "OBJ_nid2ln", "OBJ_nid2sn"] and - inNode.asExpr() = this.getArgument(0) and - outNode.asExpr() = this - //outNode.asIndirectExpr() = this - } - - override DataFlow::Node getInNode() { result = inNode } - - override DataFlow::Node getOutNode() { result = outNode } -} - -class PointerToPointerPassthroughCall extends AlgorithmPassthroughCall { - DataFlow::Node inNode; - DataFlow::Node outNode; - - PointerToPointerPassthroughCall() { - this.getTarget().getName() = "OBJ_txt2obj" and - inNode.asIndirectExpr() = this.getArgument(0) and - outNode.asIndirectExpr() = this - or - //outNode.asExpr() = this - this.getTarget().getName() in ["OBJ_obj2txt", "i2t_ASN1_OBJECT"] and - inNode.asIndirectExpr() = this.getArgument(2) and - outNode.asDefiningArgument() = this.getArgument(0) - } - - override DataFlow::Node getInNode() { result = inNode } - - override DataFlow::Node getOutNode() { result = outNode } -} - -class PointerToNIDPassthroughCall extends AlgorithmPassthroughCall { - DataFlow::Node inNode; - DataFlow::Node outNode; - - PointerToNIDPassthroughCall() { - this.getTarget().getName() in ["OBJ_obj2nid", "OBJ_ln2nid", "OBJ_sn2nid", "OBJ_txt2nid"] and - ( - inNode.asIndirectExpr() = this.getArgument(0) - or - inNode.asExpr() = this.getArgument(0) - ) and - outNode.asExpr() = this - } - - override DataFlow::Node getInNode() { result = inNode } - - override DataFlow::Node getOutNode() { result = outNode } -} - -predicate knownPassThroughStep(DataFlow::Node node1, DataFlow::Node node2) { - exists(AlgorithmPassthroughCall c | c.getInNode() = node1 and c.getOutNode() = node2) -} - -abstract class OpenSSLAlgorithmGetterCall extends Call { - abstract DataFlow::Node getValueArgNode(); - - abstract DataFlow::Node getResultNode(); - - abstract Expr getValueArgExpr(); - - abstract Expr getResultExpr(); -} - -module KnownOpenSSLAlgorithmToAlgorithmGetterConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - source.asExpr() instanceof KnownOpenSSLAlgorithmConstant - } - - predicate isSink(DataFlow::Node sink) { - exists(OpenSSLAlgorithmGetterCall c | c.getValueArgNode() = sink) - } - - predicate isBarrier(DataFlow::Node node) { - // False positive reducer, don't flow out through argv - exists(VariableAccess va, Variable v | - v.getAnAccess() = va and va = node.asExpr() - or - va = node.asIndirectExpr() - | - v.getName().matches("%argv") - ) - } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - knownPassThroughStep(node1, node2) - } -} - -module KnownOpenSSLAlgorithmToAlgorithmGetterFlow = - DataFlow::Global; - -/** - * Cases like EVP_MD5(), - * there is no input, rather it directly gets an algorithm - * and returns it. - */ -class DirectGetterCall extends OpenSSLAlgorithmGetterCall { - DataFlow::Node resultNode; - Expr resultExpr; - - DirectGetterCall() { - this instanceof KnownOpenSSLAlgorithmConstant and - this instanceof Call and - resultExpr = this and - resultNode.asExpr() = resultExpr - } - - override DataFlow::Node getValueArgNode() { none() } - - override DataFlow::Node getResultNode() { result = resultNode } - - override Expr getValueArgExpr() { none() } - - override Expr getResultExpr() { result = resultExpr } -} - -// https://www.openssl.org/docs/manmaster/man3/EVP_CIPHER_fetch.html -class EVPCipherGetterCall extends OpenSSLAlgorithmGetterCall { - DataFlow::Node valueArgNode; - DataFlow::Node resultNode; - Expr valueArgExpr; - Expr resultExpr; - - EVPCipherGetterCall() { - resultExpr = this and - resultNode.asExpr() = this and - isPossibleOpenSSLFunction(this.getTarget()) and - ( - this.getTarget().getName() in ["EVP_get_cipherbyname", "EVP_get_cipherbyobj"] and - valueArgExpr = this.getArgument(0) and - valueArgNode.asExpr() = valueArgExpr - or - this.getTarget().getName() = "EVP_CIPHER_fetch" and - valueArgExpr = this.getArgument(1) and - valueArgNode.asExpr() = valueArgExpr - or - this.getTarget().getName() = "EVP_get_cipherbynid" and - valueArgExpr = this.getArgument(0) and - valueArgNode.asExpr() = valueArgExpr - ) - } - - override DataFlow::Node getValueArgNode() { result = valueArgNode } - - override DataFlow::Node getResultNode() { result = resultNode } - - override Expr getValueArgExpr() { result = valueArgExpr } - - override Expr getResultExpr() { result = resultExpr } -} - -class EVPAsymCipherGetterCall extends OpenSSLAlgorithmGetterCall { - DataFlow::Node valueArgNode; - DataFlow::Node resultNode; - Expr valueArgExpr; - Expr resultExpr; - - EVPAsymCipherGetterCall() { - isPossibleOpenSSLFunction(this.getTarget()) and - resultExpr = this and - resultNode.asExpr() = this and - this.getTarget().getName() = "EVP_ASYM_CIPHER_fetch" and - valueArgExpr = this.getArgument(1) and - valueArgNode.asExpr() = valueArgExpr - } - - override DataFlow::Node getValueArgNode() { result = valueArgNode } - - override DataFlow::Node getResultNode() { result = resultNode } - - override Expr getValueArgExpr() { result = valueArgExpr } - - override Expr getResultExpr() { result = resultExpr } -} - -class EVPDigestGetterCall extends OpenSSLAlgorithmGetterCall { - DataFlow::Node valueArgNode; - DataFlow::Node resultNode; - Expr valueArgExpr; - Expr resultExpr; - - EVPDigestGetterCall() { - resultExpr = this and - resultNode.asExpr() = this and - isPossibleOpenSSLFunction(this.getTarget()) and - ( - this.getTarget().getName() in [ - "EVP_get_digestbyname", "EVP_get_digestbyobj", "EVP_get_digestbynid" - ] and - valueArgExpr = this.getArgument(0) and - valueArgNode.asExpr() = valueArgExpr - or - this.getTarget().getName() = "EVP_MD_fetch" and - valueArgExpr = this.getArgument(1) and - valueArgNode.asExpr() = valueArgExpr - ) - } - - override DataFlow::Node getValueArgNode() { result = valueArgNode } - - override DataFlow::Node getResultNode() { result = resultNode } - - override Expr getValueArgExpr() { result = valueArgExpr } - - override Expr getResultExpr() { result = resultExpr } -} - -class EVPKDFFetch extends OpenSSLAlgorithmGetterCall { - DataFlow::Node valueArgNode; - DataFlow::Node resultNode; - Expr valueArgExpr; - Expr resultExpr; - - EVPKDFFetch() { - resultExpr = this and - resultNode.asExpr() = this and - isPossibleOpenSSLFunction(this.getTarget()) and - this.getTarget().getName() in ["EVP_KDF_fetch"] and - valueArgExpr = this.getArgument(1) and - valueArgNode.asExpr() = valueArgExpr - } - - override DataFlow::Node getValueArgNode() { result = valueArgNode } - - override DataFlow::Node getResultNode() { result = resultNode } - - override Expr getValueArgExpr() { result = valueArgExpr } - - override Expr getResultExpr() { result = resultExpr } -} -// /** -// * Predicates/classes for identifying algorithm sinks. -// * An Algorithm Sink is a function that takes an algorithm as an argument. -// * In particular, any function that takes in an algorithm that until the call -// * the algorithm is not definitely known to be an algorithm (e.g., an integer used as an identifier to fetch an algorithm) -// */ -// //TODO: enforce a hierarchy of AlgorithmSinkArgument, e.g., so I can get all Asymmetric SinkArguments that includes all the strictly RSA etc. // import cpp -// // import experimental.cryptography.utils.OpenSSL.LibraryFunction -// // import experimental.cryptography.CryptoAlgorithmNames -// predicate isAlgorithmSink(AlgorithmSinkArgument arg, string algType) { arg.algType() = algType } -// abstract class AlgorithmSinkArgument extends Expr { -// AlgorithmSinkArgument() { -// exists(Call c | c.getAnArgument() = this and openSSLLibraryFunc(c.getTarget())) +// import semmle.code.cpp.dataflow.new.DataFlow +// import LibraryDetector +// import OpenSSLKnownAlgorithmConstants +// import experimental.Quantum.Language +// class OpenSSLAlgorithmAdditionalFlowStep extends AdditionalFlowInputStep { +// OpenSSLAlgorithmAdditionalFlowStep() { exists(AlgorithmPassthroughCall c | c.getInNode() = this) } +// override DataFlow::Node getOutput() { +// exists(AlgorithmPassthroughCall c | c.getInNode() = this and c.getOutNode() = result) // } -// /** -// * Gets the function call in which the argument exists -// */ -// Call getSinkCall() { result.getAnArgument() = this } -// abstract string algType(); +// } +// module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { +// predicate isSource(DataFlow::Node source) { +// exists(OpenSSLAlgorithmGetterCall c | c.getResultNode() = source) +// } +// predicate isSink(DataFlow::Node sink) { +// exists(Crypto::AlgorithmConsumer c | c.getInputNode() = sink) +// } +// } +// module AlgGetterToAlgConsumerFlow = DataFlow::Global; +// abstract class AlgorithmPassthroughCall extends Call { +// abstract DataFlow::Node getInNode(); +// abstract DataFlow::Node getOutNode(); +// } +// class CopyAndDupAlgorithmPassthroughCall extends AlgorithmPassthroughCall { +// DataFlow::Node inNode; +// DataFlow::Node outNode; +// CopyAndDupAlgorithmPassthroughCall() { +// // Flow out through any return or other argument of the same type +// // Assume flow in and out is asIndirectExpr or asDefinitingArgument since a pointer is assumed +// // to be involved +// // NOTE: not attempting to detect openssl specific copy/dup functions, but anything suspected to be copy/dup +// this.getTarget().getName().toLowerCase().matches(["%_dup%", "%_copy%"]) and +// exists(Expr inArg, Type t | +// inArg = this.getAnArgument() and t = inArg.getUnspecifiedType().stripType() +// | +// inNode.asIndirectExpr() = inArg and +// ( +// // Case 1: flow through another argument as an out arg of the same type +// exists(Expr outArg | +// outArg = this.getAnArgument() and +// outArg != inArg and +// outArg.getUnspecifiedType().stripType() = t +// | +// outNode.asDefiningArgument() = outArg +// ) +// or +// // Case 2: flow through the return value if the result is the same as the intput type +// exists(Expr outArg | outArg = this and outArg.getUnspecifiedType().stripType() = t | +// outNode.asIndirectExpr() = outArg +// ) +// ) +// ) +// } +// override DataFlow::Node getInNode() { result = inNode } +// override DataFlow::Node getOutNode() { result = outNode } +// } +// class NIDToPointerPassthroughCall extends AlgorithmPassthroughCall { +// DataFlow::Node inNode; +// DataFlow::Node outNode; +// NIDToPointerPassthroughCall() { +// this.getTarget().getName() in ["OBJ_nid2obj", "OBJ_nid2ln", "OBJ_nid2sn"] and +// inNode.asExpr() = this.getArgument(0) and +// outNode.asExpr() = this +// //outNode.asIndirectExpr() = this +// } +// override DataFlow::Node getInNode() { result = inNode } +// override DataFlow::Node getOutNode() { result = outNode } +// } +// class PointerToPointerPassthroughCall extends AlgorithmPassthroughCall { +// DataFlow::Node inNode; +// DataFlow::Node outNode; +// PointerToPointerPassthroughCall() { +// this.getTarget().getName() = "OBJ_txt2obj" and +// inNode.asIndirectExpr() = this.getArgument(0) and +// outNode.asIndirectExpr() = this +// or +// //outNode.asExpr() = this +// this.getTarget().getName() in ["OBJ_obj2txt", "i2t_ASN1_OBJECT"] and +// inNode.asIndirectExpr() = this.getArgument(2) and +// outNode.asDefiningArgument() = this.getArgument(0) +// } +// override DataFlow::Node getInNode() { result = inNode } +// override DataFlow::Node getOutNode() { result = outNode } +// } +// class PointerToNIDPassthroughCall extends AlgorithmPassthroughCall { +// DataFlow::Node inNode; +// DataFlow::Node outNode; +// PointerToNIDPassthroughCall() { +// this.getTarget().getName() in ["OBJ_obj2nid", "OBJ_ln2nid", "OBJ_sn2nid", "OBJ_txt2nid"] and +// ( +// inNode.asIndirectExpr() = this.getArgument(0) +// or +// inNode.asExpr() = this.getArgument(0) +// ) and +// outNode.asExpr() = this +// } +// override DataFlow::Node getInNode() { result = inNode } +// override DataFlow::Node getOutNode() { result = outNode } +// } +// predicate knownPassThroughStep(DataFlow::Node node1, DataFlow::Node node2) { +// exists(AlgorithmPassthroughCall c | c.getInNode() = node1 and c.getOutNode() = node2) +// } +// abstract class OpenSSLAlgorithmGetterCall extends Call { +// abstract DataFlow::Node getValueArgNode(); +// abstract DataFlow::Node getResultNode(); +// abstract Expr getValueArgExpr(); +// abstract Expr getResultExpr(); +// } +// module KnownOpenSSLAlgorithmToAlgorithmGetterConfig implements DataFlow::ConfigSig { +// predicate isSource(DataFlow::Node source) { +// source.asExpr() instanceof KnownOpenSSLAlgorithmConstant +// } +// predicate isSink(DataFlow::Node sink) { +// exists(OpenSSLAlgorithmGetterCall c | c.getValueArgNode() = sink) +// } +// predicate isBarrier(DataFlow::Node node) { +// // False positive reducer, don't flow out through argv +// exists(VariableAccess va, Variable v | +// v.getAnAccess() = va and va = node.asExpr() +// or +// va = node.asIndirectExpr() +// | +// v.getName().matches("%argv") +// ) +// } +// predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { +// knownPassThroughStep(node1, node2) +// } +// } +// module KnownOpenSSLAlgorithmToAlgorithmGetterFlow = +// DataFlow::Global; +// /** +// * Cases like EVP_MD5(), +// * there is no input, rather it directly gets an algorithm +// * and returns it. +// */ +// class DirectGetterCall extends OpenSSLAlgorithmGetterCall { +// DataFlow::Node resultNode; +// Expr resultExpr; +// DirectGetterCall() { +// this instanceof KnownOpenSSLAlgorithmConstant and +// this instanceof Call and +// resultExpr = this and +// resultNode.asExpr() = resultExpr +// } +// override DataFlow::Node getValueArgNode() { none() } +// override DataFlow::Node getResultNode() { result = resultNode } +// override Expr getValueArgExpr() { none() } +// override Expr getResultExpr() { result = resultExpr } // } // // https://www.openssl.org/docs/manmaster/man3/EVP_CIPHER_fetch.html -// predicate cipherAlgorithmSink(string funcName, int argInd) { -// funcName in ["EVP_get_cipherbyname", "EVP_get_cipherbynid", "EVP_get_cipherbyobj"] and argInd = 0 -// or -// funcName = "EVP_CIPHER_fetch" and argInd = 1 -// } -// class CipherAlgorithmSink extends AlgorithmSinkArgument { -// CipherAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// cipherAlgorithmSink(funcName, argInd) +// class EVPCipherGetterCall extends OpenSSLAlgorithmGetterCall { +// DataFlow::Node valueArgNode; +// DataFlow::Node resultNode; +// Expr valueArgExpr; +// Expr resultExpr; +// EVPCipherGetterCall() { +// resultExpr = this and +// resultNode.asExpr() = this and +// isPossibleOpenSSLFunction(this.getTarget()) and +// ( +// this.getTarget().getName() in ["EVP_get_cipherbyname", "EVP_get_cipherbyobj"] and +// valueArgExpr = this.getArgument(0) and +// valueArgNode.asExpr() = valueArgExpr +// or +// this.getTarget().getName() = "EVP_CIPHER_fetch" and +// valueArgExpr = this.getArgument(1) and +// valueArgNode.asExpr() = valueArgExpr +// or +// this.getTarget().getName() = "EVP_get_cipherbynid" and +// valueArgExpr = this.getArgument(0) and +// valueArgNode.asExpr() = valueArgExpr // ) // } -// override string algType() { result = getSymmetricEncryptionType() } +// override DataFlow::Node getValueArgNode() { result = valueArgNode } +// override DataFlow::Node getResultNode() { result = resultNode } +// override Expr getValueArgExpr() { result = valueArgExpr } +// override Expr getResultExpr() { result = resultExpr } // } -// // https://www.openssl.org/docs/manmaster/man3/EVP_MAC_fetch -// predicate macAlgorithmSink(string funcName, int argInd) { -// (funcName = "EVP_MAC_fetch" and argInd = 1) +// class EVPAsymCipherGetterCall extends OpenSSLAlgorithmGetterCall { +// DataFlow::Node valueArgNode; +// DataFlow::Node resultNode; +// Expr valueArgExpr; +// Expr resultExpr; +// EVPAsymCipherGetterCall() { +// isPossibleOpenSSLFunction(this.getTarget()) and +// resultExpr = this and +// resultNode.asExpr() = this and +// this.getTarget().getName() = "EVP_ASYM_CIPHER_fetch" and +// valueArgExpr = this.getArgument(1) and +// valueArgNode.asExpr() = valueArgExpr +// } +// override DataFlow::Node getValueArgNode() { result = valueArgNode } +// override DataFlow::Node getResultNode() { result = resultNode } +// override Expr getValueArgExpr() { result = valueArgExpr } +// override Expr getResultExpr() { result = resultExpr } // } -// class MACAlgorithmSink extends AlgorithmSinkArgument { -// MACAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// macAlgorithmSink(funcName, argInd) +// class EVPDigestGetterCall extends OpenSSLAlgorithmGetterCall { +// DataFlow::Node valueArgNode; +// DataFlow::Node resultNode; +// Expr valueArgExpr; +// Expr resultExpr; +// EVPDigestGetterCall() { +// resultExpr = this and +// resultNode.asExpr() = this and +// isPossibleOpenSSLFunction(this.getTarget()) and +// ( +// this.getTarget().getName() in [ +// "EVP_get_digestbyname", "EVP_get_digestbyobj", "EVP_get_digestbynid" +// ] and +// valueArgExpr = this.getArgument(0) and +// valueArgNode.asExpr() = valueArgExpr +// or +// this.getTarget().getName() = "EVP_MD_fetch" and +// valueArgExpr = this.getArgument(1) and +// valueArgNode.asExpr() = valueArgExpr // ) // } -// override string algType() { result = "TBD" } +// override DataFlow::Node getValueArgNode() { result = valueArgNode } +// override DataFlow::Node getResultNode() { result = resultNode } +// override Expr getValueArgExpr() { result = valueArgExpr } +// override Expr getResultExpr() { result = resultExpr } // } -// // https://www.openssl.org/docs/manmaster/man3/EVP_MD_fetch -// predicate messageDigestAlgorithmSink(string funcName, int argInd) { -// funcName in ["EVP_get_digestbyname", "EVP_get_digestbynid", "EVP_get_digestbyobj"] and argInd = 0 -// or -// funcName = "EVP_MD_fetch" and argInd = 1 -// } -// class MessageDigestAlgorithmSink extends AlgorithmSinkArgument { -// MessageDigestAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// messageDigestAlgorithmSink(funcName, argInd) -// ) +// class EVPKDFFetch extends OpenSSLAlgorithmGetterCall { +// DataFlow::Node valueArgNode; +// DataFlow::Node resultNode; +// Expr valueArgExpr; +// Expr resultExpr; +// EVPKDFFetch() { +// resultExpr = this and +// resultNode.asExpr() = this and +// isPossibleOpenSSLFunction(this.getTarget()) and +// this.getTarget().getName() in ["EVP_KDF_fetch"] and +// valueArgExpr = this.getArgument(1) and +// valueArgNode.asExpr() = valueArgExpr // } -// override string algType() { result = getHashType() } -// } -// // https://www.openssl.org/docs/manmaster/man3/EVP_KEYEXCH_fetch -// // https://www.openssl.org/docs/manmaster/man3/EVP_KEM_fetch -// predicate keyExchangeAlgorithmSink(string funcName, int argInd) { -// funcName = "EVP_KEYEXCH_fetch" and argInd = 1 -// or -// funcName = "EVP_KEM_fetch" and argInd = 1 -// } -// class KeyExchangeAlgorithmSink extends AlgorithmSinkArgument { -// KeyExchangeAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// keyExchangeAlgorithmSink(funcName, argInd) -// ) -// } -// override string algType() { result = getKeyExchangeType() } -// } -// // https://www.openssl.org/docs/manmaster/man3/EVP_KEYMGMT_fetch -// predicate keyManagementAlgorithmSink(string funcName, int argInd) { -// funcName = "EVP_KEYMGMT_fetch" and argInd = 1 -// } -// class KeyManagementAlgorithmSink extends AlgorithmSinkArgument { -// KeyManagementAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// keyManagementAlgorithmSink(funcName, argInd) -// ) -// } -// override string algType() { result = "TBD" } -// } -// // https://www.openssl.org/docs/manmaster/man3/EVP_KDF -// predicate keyDerivationAlgorithmSink(string funcName, int argInd) { -// funcName = "EVP_KDF_fetch" and argInd = 1 -// } -// class KeyDerivationAlgorithmSink extends AlgorithmSinkArgument { -// KeyDerivationAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// keyDerivationAlgorithmSink(funcName, argInd) -// ) -// } -// override string algType() { result = getKeyDerivationType() } -// } -// // https://www.openssl.org/docs/manmaster/man3/EVP_ASYM_CIPHER_fetch -// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_new_id -// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_new_CMAC_key.html -// predicate asymmetricCipherAlgorithmSink(string funcName, int argInd) { -// funcName = "EVP_ASYM_CIPHER_fetch" and argInd = 1 -// or -// funcName = "EVP_PKEY_new_CMAC_key" and argInd = 3 -// // NOTE: other cases are handled by AsymmetricAlgorithmSink -// } -// class AsymmetricCipherAlgorithmSink extends AlgorithmSinkArgument { -// AsymmetricCipherAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// asymmetricCipherAlgorithmSink(funcName, argInd) -// ) -// } -// override string algType() { result = "ASYMMETRIC_ENCRYPTION" } -// } -// class AsymmetricCipherAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { -// AsymmetricCipherAlgorithmSink_EVP_PKEY_Q_keygen() { -// exists(Call c, string funcName | -// funcName = c.getTarget().getName() and -// this = c.getArgument(3) -// | -// funcName = "EVP_PKEY_Q_keygen" and -// c.getArgument(3).getType().getUnderlyingType() instanceof IntegralType -// ) -// } -// override string algType() { result = "ASYMMETRIC_ENCRYPTION" } -// } -// // https://www.openssl.org/docs/manmaster/man3/EVP_RAND_fetch -// predicate randomAlgorithmSink(string funcName, int argInd) { -// funcName = "EVP_RAND_fetch" and argInd = 1 -// } -// class RandomAlgorithmSink extends AlgorithmSinkArgument { -// RandomAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// randomAlgorithmSink(funcName, argInd) -// ) -// } -// override string algType() { result = "TBD" } -// } -// // https://www.openssl.org/docs/manmaster/man3/EVP_SIGNATURE_fetch -// predicate signatureAlgorithmSink(string funcName, int argInd) { -// funcName = "EVP_SIGNATURE_fetch" and argInd = 1 -// } -// class SignatureAlgorithmSink extends AlgorithmSinkArgument { -// SignatureAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// signatureAlgorithmSink(funcName, argInd) -// ) -// } -// override string algType() { result = getSignatureType() } -// } -// // https://www.openssl.org/docs/manmaster/man3/EC_KEY_new_by_curve_name.html -// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.html -// predicate ellipticCurveAlgorithmSink(string funcName, int argInd) { -// funcName in ["EC_KEY_new_by_curve_name", "EVP_EC_gen"] and argInd = 0 -// or -// funcName = "EC_KEY_new_by_curve_name_ex" and argInd = 2 -// or -// funcName in ["EVP_PKEY_CTX_set_ec_paramgen_curve_nid"] and argInd = 1 -// } -// class EllipticCurveAlgorithmSink extends AlgorithmSinkArgument { -// EllipticCurveAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// ellipticCurveAlgorithmSink(funcName, argInd) -// ) -// } -// override string algType() { result = getEllipticCurveType() } -// } -// /** -// * Special cased to address the fact that arg index 3 (zero offset based) is the curve name. -// * ASSUMPTION: if the arg ind 3 is a char* assume it is an elliptic curve -// */ -// class EllipticCurveAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { -// EllipticCurveAlgorithmSink_EVP_PKEY_Q_keygen() { -// exists(Call c, string funcName | -// funcName = c.getTarget().getName() and -// this = c.getArgument(3) -// | -// funcName = "EVP_PKEY_Q_keygen" and -// c.getArgument(3).getType().getUnderlyingType() instanceof PointerType and -// c.getArgument(3).getType().getUnderlyingType().stripType() instanceof CharType -// ) -// } -// override string algType() { result = getEllipticCurveType() } -// } -// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_new_id.html -// // https://www.openssl.org/docs/man1.1.1/man3/EVP_PKEY_new_raw_private_key.html -// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_new.html -// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_ctrl.html -// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_Q_keygen.html -// // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_ctrl.html -// predicate asymmetricAlgorithmSink(string funcName, int argInd) { -// funcName = "EVP_PKEY_CTX_new_id" and argInd = 0 -// or -// funcName = "EVP_PKEY_CTX_new_from_name" and argInd = 1 -// or -// funcName in [ -// "EVP_PKEY_new_raw_private_key", "EVP_PKEY_new_raw_public_key", "EVP_PKEY_new_mac_key" -// ] and -// argInd = 0 -// or -// funcName in ["EVP_PKEY_new_raw_private_key_ex", "EVP_PKEY_new_raw_public_key_ex"] and argInd = 1 -// or -// // special casing this as arg index 3 must be specified depending on if RSA or ECC, and otherwise not specified for other algs -// // funcName = "EVP_PKEY_Q_keygen" and argInd = 2 -// funcName in ["EVP_PKEY_CTX_ctrl", "EVP_PKEY_CTX_set_group_name"] and argInd = 1 -// // TODO consider void cases EVP_PKEY_new -// } -// class AsymmetricAlgorithmSink extends AlgorithmSinkArgument { -// AsymmetricAlgorithmSink() { -// exists(Call c, string funcName, int argInd | -// funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// | -// asymmetricAlgorithmSink(funcName, argInd) -// ) -// } -// override string algType() { result = getAsymmetricType() } -// } -// class AsymmetricAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { -// AsymmetricAlgorithmSink_EVP_PKEY_Q_keygen() { -// exists(Call c, string funcName | -// funcName = c.getTarget().getName() and -// this = c.getArgument(2) -// | -// funcName = "EVP_PKEY_Q_keygen" and -// not exists(c.getArgument(3)) -// ) -// } -// override string algType() { result = getAsymmetricType() } +// override DataFlow::Node getValueArgNode() { result = valueArgNode } +// override DataFlow::Node getResultNode() { result = resultNode } +// override Expr getValueArgExpr() { result = valueArgExpr } +// override Expr getResultExpr() { result = resultExpr } // } +// // /** +// // * Predicates/classes for identifying algorithm sinks. +// // * An Algorithm Sink is a function that takes an algorithm as an argument. +// // * In particular, any function that takes in an algorithm that until the call +// // * the algorithm is not definitely known to be an algorithm (e.g., an integer used as an identifier to fetch an algorithm) +// // */ +// // //TODO: enforce a hierarchy of AlgorithmSinkArgument, e.g., so I can get all Asymmetric SinkArguments that includes all the strictly RSA etc. +// // import cpp +// // // import experimental.cryptography.utils.OpenSSL.LibraryFunction +// // // import experimental.cryptography.CryptoAlgorithmNames +// // predicate isAlgorithmSink(AlgorithmSinkArgument arg, string algType) { arg.algType() = algType } +// // abstract class AlgorithmSinkArgument extends Expr { +// // AlgorithmSinkArgument() { +// // exists(Call c | c.getAnArgument() = this and openSSLLibraryFunc(c.getTarget())) +// // } +// // /** +// // * Gets the function call in which the argument exists +// // */ +// // Call getSinkCall() { result.getAnArgument() = this } +// // abstract string algType(); +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EVP_CIPHER_fetch.html +// // predicate cipherAlgorithmSink(string funcName, int argInd) { +// // funcName in ["EVP_get_cipherbyname", "EVP_get_cipherbynid", "EVP_get_cipherbyobj"] and argInd = 0 +// // or +// // funcName = "EVP_CIPHER_fetch" and argInd = 1 +// // } +// // class CipherAlgorithmSink extends AlgorithmSinkArgument { +// // CipherAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // cipherAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = getSymmetricEncryptionType() } +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EVP_MAC_fetch +// // predicate macAlgorithmSink(string funcName, int argInd) { +// // (funcName = "EVP_MAC_fetch" and argInd = 1) +// // } +// // class MACAlgorithmSink extends AlgorithmSinkArgument { +// // MACAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // macAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = "TBD" } +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EVP_MD_fetch +// // predicate messageDigestAlgorithmSink(string funcName, int argInd) { +// // funcName in ["EVP_get_digestbyname", "EVP_get_digestbynid", "EVP_get_digestbyobj"] and argInd = 0 +// // or +// // funcName = "EVP_MD_fetch" and argInd = 1 +// // } +// // class MessageDigestAlgorithmSink extends AlgorithmSinkArgument { +// // MessageDigestAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // messageDigestAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = getHashType() } +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EVP_KEYEXCH_fetch +// // // https://www.openssl.org/docs/manmaster/man3/EVP_KEM_fetch +// // predicate keyExchangeAlgorithmSink(string funcName, int argInd) { +// // funcName = "EVP_KEYEXCH_fetch" and argInd = 1 +// // or +// // funcName = "EVP_KEM_fetch" and argInd = 1 +// // } +// // class KeyExchangeAlgorithmSink extends AlgorithmSinkArgument { +// // KeyExchangeAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // keyExchangeAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = getKeyExchangeType() } +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EVP_KEYMGMT_fetch +// // predicate keyManagementAlgorithmSink(string funcName, int argInd) { +// // funcName = "EVP_KEYMGMT_fetch" and argInd = 1 +// // } +// // class KeyManagementAlgorithmSink extends AlgorithmSinkArgument { +// // KeyManagementAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // keyManagementAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = "TBD" } +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EVP_KDF +// // predicate keyDerivationAlgorithmSink(string funcName, int argInd) { +// // funcName = "EVP_KDF_fetch" and argInd = 1 +// // } +// // class KeyDerivationAlgorithmSink extends AlgorithmSinkArgument { +// // KeyDerivationAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // keyDerivationAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = getKeyDerivationType() } +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EVP_ASYM_CIPHER_fetch +// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_new_id +// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_new_CMAC_key.html +// // predicate asymmetricCipherAlgorithmSink(string funcName, int argInd) { +// // funcName = "EVP_ASYM_CIPHER_fetch" and argInd = 1 +// // or +// // funcName = "EVP_PKEY_new_CMAC_key" and argInd = 3 +// // // NOTE: other cases are handled by AsymmetricAlgorithmSink +// // } +// // class AsymmetricCipherAlgorithmSink extends AlgorithmSinkArgument { +// // AsymmetricCipherAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // asymmetricCipherAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = "ASYMMETRIC_ENCRYPTION" } +// // } +// // class AsymmetricCipherAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { +// // AsymmetricCipherAlgorithmSink_EVP_PKEY_Q_keygen() { +// // exists(Call c, string funcName | +// // funcName = c.getTarget().getName() and +// // this = c.getArgument(3) +// // | +// // funcName = "EVP_PKEY_Q_keygen" and +// // c.getArgument(3).getType().getUnderlyingType() instanceof IntegralType +// // ) +// // } +// // override string algType() { result = "ASYMMETRIC_ENCRYPTION" } +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EVP_RAND_fetch +// // predicate randomAlgorithmSink(string funcName, int argInd) { +// // funcName = "EVP_RAND_fetch" and argInd = 1 +// // } +// // class RandomAlgorithmSink extends AlgorithmSinkArgument { +// // RandomAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // randomAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = "TBD" } +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EVP_SIGNATURE_fetch +// // predicate signatureAlgorithmSink(string funcName, int argInd) { +// // funcName = "EVP_SIGNATURE_fetch" and argInd = 1 +// // } +// // class SignatureAlgorithmSink extends AlgorithmSinkArgument { +// // SignatureAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // signatureAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = getSignatureType() } +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EC_KEY_new_by_curve_name.html +// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.html +// // predicate ellipticCurveAlgorithmSink(string funcName, int argInd) { +// // funcName in ["EC_KEY_new_by_curve_name", "EVP_EC_gen"] and argInd = 0 +// // or +// // funcName = "EC_KEY_new_by_curve_name_ex" and argInd = 2 +// // or +// // funcName in ["EVP_PKEY_CTX_set_ec_paramgen_curve_nid"] and argInd = 1 +// // } +// // class EllipticCurveAlgorithmSink extends AlgorithmSinkArgument { +// // EllipticCurveAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // ellipticCurveAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = getEllipticCurveType() } +// // } +// // /** +// // * Special cased to address the fact that arg index 3 (zero offset based) is the curve name. +// // * ASSUMPTION: if the arg ind 3 is a char* assume it is an elliptic curve +// // */ +// // class EllipticCurveAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { +// // EllipticCurveAlgorithmSink_EVP_PKEY_Q_keygen() { +// // exists(Call c, string funcName | +// // funcName = c.getTarget().getName() and +// // this = c.getArgument(3) +// // | +// // funcName = "EVP_PKEY_Q_keygen" and +// // c.getArgument(3).getType().getUnderlyingType() instanceof PointerType and +// // c.getArgument(3).getType().getUnderlyingType().stripType() instanceof CharType +// // ) +// // } +// // override string algType() { result = getEllipticCurveType() } +// // } +// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_new_id.html +// // // https://www.openssl.org/docs/man1.1.1/man3/EVP_PKEY_new_raw_private_key.html +// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_new.html +// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_ctrl.html +// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_Q_keygen.html +// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_ctrl.html +// // predicate asymmetricAlgorithmSink(string funcName, int argInd) { +// // funcName = "EVP_PKEY_CTX_new_id" and argInd = 0 +// // or +// // funcName = "EVP_PKEY_CTX_new_from_name" and argInd = 1 +// // or +// // funcName in [ +// // "EVP_PKEY_new_raw_private_key", "EVP_PKEY_new_raw_public_key", "EVP_PKEY_new_mac_key" +// // ] and +// // argInd = 0 +// // or +// // funcName in ["EVP_PKEY_new_raw_private_key_ex", "EVP_PKEY_new_raw_public_key_ex"] and argInd = 1 +// // or +// // // special casing this as arg index 3 must be specified depending on if RSA or ECC, and otherwise not specified for other algs +// // // funcName = "EVP_PKEY_Q_keygen" and argInd = 2 +// // funcName in ["EVP_PKEY_CTX_ctrl", "EVP_PKEY_CTX_set_group_name"] and argInd = 1 +// // // TODO consider void cases EVP_PKEY_new +// // } +// // class AsymmetricAlgorithmSink extends AlgorithmSinkArgument { +// // AsymmetricAlgorithmSink() { +// // exists(Call c, string funcName, int argInd | +// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) +// // | +// // asymmetricAlgorithmSink(funcName, argInd) +// // ) +// // } +// // override string algType() { result = getAsymmetricType() } +// // } +// // class AsymmetricAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { +// // AsymmetricAlgorithmSink_EVP_PKEY_Q_keygen() { +// // exists(Call c, string funcName | +// // funcName = c.getTarget().getName() and +// // this = c.getArgument(2) +// // | +// // funcName = "EVP_PKEY_Q_keygen" and +// // not exists(c.getArgument(3)) +// // ) +// // } +// // override string algType() { result = getAsymmetricType() } +// // } diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index cebbac2ff6b..2f5e2ca77fa 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -318,6 +318,8 @@ module CryptographyBase Input> { abstract class CipherOutputArtifactInstance extends ArtifactInstance { final override DataFlowNode getInputNode() { none() } + + override predicate isConsumerArtifact() { none() } } // Artifacts that may be outputs or inputs @@ -967,6 +969,7 @@ module CryptographyBase Input> { newtype TPaddingType = PKCS1_v1_5() or // RSA encryption/signing padding + PSS() or PKCS7() or // Standard block cipher padding (PKCS5 for 8-byte blocks) ANSI_X9_23() or // Zero-padding except last byte = padding length NoPadding() or // Explicit no-padding @@ -988,6 +991,8 @@ module CryptographyBase Input> { final private predicate paddingToNameMapping(TPaddingType type, string name) { type instanceof PKCS1_v1_5 and name = "PKCS1_v1_5" or + type instanceof PSS and name = "PSS" + or type instanceof PKCS7 and name = "PKCS7" or type instanceof ANSI_X9_23 and name = "ANSI_X9_23" From d18dac0c8e79a738cc53eb0991bc88890cc983ed Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 20 Mar 2025 21:26:18 +0100 Subject: [PATCH 071/656] Add JCA key (generation) modelling --- java/ql/lib/experimental/Quantum/JCA.qll | 98 +++++++++++++- java/ql/lib/experimental/Quantum/Language.qll | 30 +++-- .../ql/src/experimental/Quantum/TestCipher.ql | 7 +- .../src/experimental/Quantum/TestCipherKey.ql | 17 +++ .../codeql/cryptography/Model.qll | 127 +++++++++++++++--- 5 files changed, 240 insertions(+), 39 deletions(-) create mode 100644 java/ql/src/experimental/Quantum/TestCipherKey.ql diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 336f7fe5cc5..e0e30f6d510 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -84,7 +84,7 @@ module JCAModel { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherStringLiteral } predicate isSink(DataFlow::Node sink) { - exists(CipherGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) + exists(Crypto::AlgorithmValueConsumer consumer | sink = consumer.getInputNode()) } } @@ -102,13 +102,13 @@ module JCAModel { class CipherStringLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance, Crypto::ModeOfOperationAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof CipherStringLiteral { - CipherGetInstanceAlgorithmArg consumer; + Crypto::AlgorithmValueConsumer consumer; CipherStringLiteralAlgorithmInstance() { - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), DataFlow::exprNode(consumer)) + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) } - CipherGetInstanceAlgorithmArg getConsumer() { result = consumer } + Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { result = this and exists(this.getRawModeAlgorithmName()) // TODO: provider defaults @@ -411,6 +411,19 @@ module JCAModel { } } + // e.g., getPublic or getPrivate + class KeyPairGetKeyCall extends MethodCall { + KeyPairGetKeyCall() { + this.getCallee().hasQualifiedName("java.security", "KeyPair", "getPublic") + or + this.getCallee().hasQualifiedName("java.security", "KeyPair", "getPrivate") + } + + DataFlow::Node getInputNode() { result.asExpr() = this.getQualifier() } + + DataFlow::Node getOutputNode() { result.asExpr() = this } + } + predicate additionalFlowSteps(DataFlow::Node node1, DataFlow::Node node2) { exists(IvParameterSpecGetIvCall m | node1.asExpr() = m.getQualifier() and @@ -421,12 +434,17 @@ module JCAModel { node1 = n.getInputNode() and node2 = n.getOutputNode() ) + or + exists(KeyPairGetKeyCall call | + node1 = call.getInputNode() and + node2 = call.getOutputNode() + ) } - class NonceAdditionalFlowInputStep extends AdditionalFlowInputStep { + class ArtifactAdditionalFlowStep extends AdditionalFlowInputStep { DataFlow::Node output; - NonceAdditionalFlowInputStep() { additionalFlowSteps(this, output) } + ArtifactAdditionalFlowStep() { additionalFlowSteps(this, output) } override DataFlow::Node getOutput() { result = output } } @@ -605,4 +623,72 @@ module JCAModel { ) } } + + class KeyGeneratorCallAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { + KeyGeneratorGetInstanceCall call; + + KeyGeneratorCallAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + override DataFlow::Node getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + result.(CipherStringLiteralAlgorithmInstance).getConsumer() = this + } + } + + // flow from instance created by getInstance to generateKey + module KeyGeneratorGetInstanceToGenerateConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + exists(KeyGeneratorGetInstanceCall call | src.asExpr() = call) + } + + predicate isSink(DataFlow::Node sink) { + exists(KeyGeneratorGenerateCall call | sink.asExpr() = call.(MethodCall).getQualifier()) + } + } + + module KeyGeneratorGetInstanceToGenerateFlow = + DataFlow::Global; + + class KeyGeneratorGetInstanceCall extends MethodCall { + KeyGeneratorGetInstanceCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyGenerator", "getInstance") + or + this.getCallee().hasQualifiedName("java.security", "KeyPairGenerator", "getInstance") + } + + Expr getAlgorithmArg() { result = super.getArgument(0) } + + predicate flowsTo(KeyGeneratorGenerateCall sink) { + KeyGeneratorGetInstanceToGenerateFlow::flow(DataFlow::exprNode(this), + DataFlow::exprNode(sink.(MethodCall).getQualifier())) + } + } + + class KeyGeneratorGenerateCall extends Crypto::KeyGenerationOperationInstance instanceof MethodCall + { + Crypto::KeyArtifactType type; + + KeyGeneratorGenerateCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyGenerator", "generateKey") and + type instanceof Crypto::TSymmetricKeyType + or + this.getCallee().hasQualifiedName("java.security", "KeyPairGenerator", "generateKeyPair") and + type instanceof Crypto::TAsymmetricKeyType + } + + override DataFlow::Node getOutputKeyArtifact() { result.asExpr() = this } + + override Crypto::KeyArtifactType getOutputKeyType() { result = type } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + exists(KeyGeneratorGetInstanceCall getInstance | + getInstance.flowsTo(this) and result = getInstance.getAlgorithmArg() + ) + } + + Crypto::AlgorithmInstance getAKnownAlgorithm() { + result = this.getAnAlgorithmValueConsumer().getAKnownAlgorithmSource() + } + } } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 5666a0c42bb..e8bb052b620 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -30,6 +30,12 @@ module CryptoInput implements InputSig { result = node.asExpr() or result = node.asParameter() } + + predicate artifactOutputFlowsToGenericInput( + DataFlow::Node artifactOutput, DataFlow::Node otherInput + ) { + ArtifactUniversalFlow::flow(artifactOutput, otherInput) + } } /** @@ -70,16 +76,20 @@ class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { override string getAdditionalDescription() { result = this.toString() } } -class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { - override DataFlow::Node getOutputNode() { result.asExpr() = this } - - override predicate flowsTo(Crypto::FlowAwareElement other) { - // TODO: separate config to avoid blowing up data-flow analysis - GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) - } - - override string getAdditionalDescription() { result = this.toString() } -} +/* + * class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { + * ConstantDataSource() { not this instanceof Crypto::KnownElement } + * + * override DataFlow::Node getOutputNode() { result.asExpr() = this } + * + * override predicate flowsTo(Crypto::FlowAwareElement other) { + * // TODO: separate config to avoid blowing up data-flow analysis + * GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + * } + * + * override string getAdditionalDescription() { result = this.toString() } + * } + */ /** * Random number generation, where each instance is modelled as the expression diff --git a/java/ql/src/experimental/Quantum/TestCipher.ql b/java/ql/src/experimental/Quantum/TestCipher.ql index b98347a57ec..8743ef3aa19 100644 --- a/java/ql/src/experimental/Quantum/TestCipher.ql +++ b/java/ql/src/experimental/Quantum/TestCipher.ql @@ -7,11 +7,12 @@ import experimental.Quantum.Language from Crypto::CipherOperationNode op, Crypto::CipherAlgorithmNode a, Crypto::ModeOfOperationAlgorithmNode m, Crypto::PaddingAlgorithmNode p, - Crypto::NonceArtifactNode nonce + Crypto::NonceArtifactNode nonce, Crypto::KeyArtifactNode k where a = op.getAKnownCipherAlgorithm() and m = a.getModeOfOperation() and p = a.getPaddingAlgorithm() and - nonce = op.getANonce() + nonce = op.getANonce() and + k = op.getAKey() select op, op.getCipherOperationSubtype(), a, a.getRawAlgorithmName(), m, m.getRawAlgorithmName(), - p, p.getRawAlgorithmName(), nonce + p, p.getRawAlgorithmName(), nonce, k, k.getSourceElement() diff --git a/java/ql/src/experimental/Quantum/TestCipherKey.ql b/java/ql/src/experimental/Quantum/TestCipherKey.ql new file mode 100644 index 00000000000..1ae0cdfd89f --- /dev/null +++ b/java/ql/src/experimental/Quantum/TestCipherKey.ql @@ -0,0 +1,17 @@ +/** + * @name "PQC Test" + */ + +import experimental.Quantum.Language + +from Crypto::CipherOperationNode op, Crypto::CipherAlgorithmNode a, Crypto::KeyArtifactNode k +where + a = op.getAKnownCipherAlgorithm() and + k = op.getAKey() +select op, op.getCipherOperationSubtype(), a, a.getRawAlgorithmName(), k, k.getSourceNode() +/* + * from Crypto::CipherOperationNode op + * where op.getLocation().getFile().getBaseName() = "AsymmetricEncryptionMacHybridCryptosystem.java" + * select op, op.getAKey().getSourceNode() + */ + diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 2f5e2ca77fa..2a006cd7f82 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -22,6 +22,10 @@ signature module InputSig { class UnknownLocation instanceof Location; LocatableElement dfn_to_element(DataFlowNode node); + + predicate artifactOutputFlowsToGenericInput( + DataFlowNode artifactOutput, DataFlowNode otherFlowAwareInput + ); } module CryptographyBase Input> { @@ -51,26 +55,22 @@ module CryptographyBase Input> { ) } - NodeBase getPassthroughNodeChild(NodeBase node) { - result = node.(CipherInputNode).getChild(_) or - result = node.(NonceArtifactNode).getChild(_) - } + NodeBase getPassthroughNodeChild(NodeBase node) { result = node.getChild(_) } predicate isPassthroughNode(NodeBase node) { - node instanceof CipherInputNode or - node instanceof NonceArtifactNode + node.asElement() instanceof ArtifactConsumerAndInstance } predicate nodes_graph_impl(NodeBase node, string key, string value) { not node.isExcludedFromGraph() and - not isPassthroughNode(node) and + not isPassthroughNode(node) and // TODO: punt to fix known unknowns for passthrough nodes ( key = "semmle.label" and value = node.toString() or // CodeQL's DGML output does not include a location key = "Location" and - value = node.getLocation().toString() + value = "demo" // node.getLocation().toString() or // Known unknown edges should be reported as properties rather than edges node = node.getChild(key) and @@ -305,22 +305,17 @@ module CryptographyBase Input> { // in order for a flowsTo to be defined. At the per-modeling-instance level, extend that language-level class! abstract class OutputArtifactInstance extends ArtifactInstance { override predicate isConsumerArtifact() { none() } + + override DataFlowNode getInputNode() { none() } } - abstract class DigestArtifactInstance extends OutputArtifactInstance { - final override DataFlowNode getInputNode() { none() } - } + abstract class DigestArtifactInstance extends OutputArtifactInstance { } abstract class RandomNumberGenerationInstance extends OutputArtifactInstance { // TODO: input seed? - final override DataFlowNode getInputNode() { none() } } - abstract class CipherOutputArtifactInstance extends ArtifactInstance { - final override DataFlowNode getInputNode() { none() } - - override predicate isConsumerArtifact() { none() } - } + abstract class CipherOutputArtifactInstance extends OutputArtifactInstance { } // Artifacts that may be outputs or inputs newtype TKeyArtifactType = @@ -338,13 +333,30 @@ module CryptographyBase Input> { } } - abstract class KeyArtifactInstance extends ArtifactInstance { + abstract private class KeyArtifactInstance extends ArtifactInstance { abstract KeyArtifactType getKeyType(); } - final class KeyArtifactConsumer extends ArtifactConsumerAndInstance, KeyArtifactInstance { + final class KeyArtifactOutputInstance extends KeyArtifactInstance, OutputArtifactInstance { + KeyCreationOperationInstance creator; + + KeyArtifactOutputInstance() { Input::dfn_to_element(creator.getOutputKeyArtifact()) = this } + + final KeyCreationOperationInstance getCreator() { result = creator } + + override KeyArtifactType getKeyType() { result = creator.getOutputKeyType() } + + override DataFlowNode getOutputNode() { result = creator.getOutputKeyArtifact() } + + override predicate flowsTo(FlowAwareElement other) { + Input::artifactOutputFlowsToGenericInput(this.getOutputNode(), other.getInputNode()) + } + } + + final class KeyArtifactConsumer extends KeyArtifactInstance, ArtifactConsumerAndInstance { DataFlowNode inputNode; + // TODO: key type hint? e.g. hint: private || public KeyArtifactConsumer() { exists(CipherOperationInstance op | inputNode = op.getKeyConsumer()) and this = Input::dfn_to_element(inputNode) @@ -483,6 +495,33 @@ module CryptographyBase Input> { abstract class KeyDerivationAlgorithmInstance extends AlgorithmInstance { } + abstract private class KeyCreationOperationInstance extends OperationInstance { + abstract string getKeyCreationTypeDescription(); + + /** + * Gets the key artifact produced by this operation. + */ + abstract DataFlowNode getOutputKeyArtifact(); + + /** + * Gets the key artifact type produced. + */ + abstract KeyArtifactType getOutputKeyType(); + + /** + * Gets the key size of the key produced by this operation. + */ + string getKeySize() { none() } // TODO: punt, might need a generic value consumer? + } + + abstract class KeyGenerationOperationInstance extends KeyCreationOperationInstance { + final override string getKeyCreationTypeDescription() { result = "KeyGeneration" } + } + + abstract class KeyLoadOperationInstance extends KeyCreationOperationInstance { + final override string getKeyCreationTypeDescription() { result = "KeyLoad" } + } + private signature class AlgorithmInstanceType instanceof AlgorithmInstance; module AlgorithmInstanceOrValueConsumer { @@ -519,6 +558,8 @@ module CryptographyBase Input> { TKeyDerivationOperation(KeyDerivationOperationInstance e) or TCipherOperation(CipherOperationInstance e) or TKeyEncapsulationOperation(KeyEncapsulationOperationInstance e) or + // Key Creation Operations + TKeyCreationOperation(KeyCreationOperationInstance e) or // Algorithms (e.g., SHA-256, AES) TCipherAlgorithm(CipherAlgorithmInstanceOrValueConsumer e) or TEllipticCurveAlgorithm(EllipticCurveAlgorithmInstance e) or @@ -662,7 +703,7 @@ module CryptographyBase Input> { * * If a child class defines this predicate as `none()`, no relationship will be reported. */ - string getSourceNodeRelationship() { result = "Source" } + string getSourceNodeRelationship() { result = "Source" } // TODO: revisit why this exists override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) @@ -737,6 +778,33 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } + /** + * Gets the algorithm or unknown source nodes consumed as an algorithm associated with this operation. + */ + NodeBase getAnAlgorithmOrUnknown() { + result = this.getAKnownAlgorithm() or + result = + this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAnUnknownSourceNode() + } + + /** + * Gets a known algorithm associated with this operation + */ + CipherAlgorithmNode getAKnownAlgorithm() { + result = + this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() + } + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + // [KNOWN_OR_UNKNOWN] + edgeName = "Algorithm" and + if exists(this.getAnAlgorithmOrUnknown()) + then result = this.getAnAlgorithmOrUnknown() + else result = this + } + override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or @@ -787,6 +855,16 @@ module CryptographyBase Input> { } } + final class KeyCreationOperationNode extends OperationNode, TKeyCreationOperation { + KeyCreationOperationInstance instance; + + KeyCreationOperationNode() { this = TKeyCreationOperation(instance) } + + override LocatableElement asElement() { result = instance } + + override string getInternalType() { result = instance.getKeyCreationTypeDescription() } + } + newtype TCipherOperationSubtype = TEncryptionMode() or TDecryptionMode() or @@ -867,6 +945,11 @@ module CryptographyBase Input> { result.asElement() = this.asElement().(CipherOperationInstance).getOutputArtifact() } + KeyArtifactNode getAKey() { + result.asElement() = + Input::dfn_to_element(this.asElement().(CipherOperationInstance).getKeyConsumer()) + } + override NodeBase getChild(string key) { result = super.getChild(key) or @@ -891,6 +974,10 @@ module CryptographyBase Input> { if exists(this.getAnOutputArtifact()) then result = this.getAnOutputArtifact() else result = this + or + // [KNOWN_OR_UNKNOWN] + key = "Key" and + if exists(this.getAKey()) then result = this.getAKey() else result = this } override predicate properties(string key, string value, Location location) { From b6956413626fd8e7493fe696797d3cb7d4c90084 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 20 Mar 2025 16:27:20 -0400 Subject: [PATCH 072/656] Add signature to cipher operation --- shared/cryptography/codeql/cryptography/Model.qll | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 2f5e2ca77fa..577993e7f63 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -792,6 +792,7 @@ module CryptographyBase Input> { TDecryptionMode() or TWrapMode() or TUnwrapMode() or + TSignatureMode() or TUnknownCipherOperationMode() abstract class CipherOperationSubtype extends TCipherOperationSubtype { @@ -814,6 +815,10 @@ module CryptographyBase Input> { override string toString() { result = "Unwrap" } } + class SignatureSubtype extends CipherOperationSubtype, TSignatureMode { + override string toString() { result = "Sign" } + } + class UnknownCipherOperationSubtype extends CipherOperationSubtype, TUnknownCipherOperationMode { override string toString() { result = "Unknown" } } From fb7c0033981e04118ad06414a7b2028334a9af05 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Sat, 22 Mar 2025 08:01:03 +0100 Subject: [PATCH 073/656] Add initial MAC support for JCA, refactor hashes --- java/ql/lib/experimental/Quantum/JCA.qll | 374 +++++++++++++++--- java/ql/lib/experimental/Quantum/Language.qll | 71 ++-- .../codeql/cryptography/Model.qll | 353 +++++++++++++---- 3 files changed, 626 insertions(+), 172 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index e0e30f6d510..eac400183b8 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -36,6 +36,50 @@ module JCAModel { ].toUpperCase()) } + bindingset[hash] + predicate hash_names(string hash) { + hash.toUpperCase() + .matches(["SHA-%", "SHA3-%", "BLAKE2b%", "BLAKE2s%", "MD5", "RIPEMD160", "Whirlpool"] + .toUpperCase()) + } + + bindingset[name] + Crypto::THashType hash_name_to_hash_type(string name, int digestLength) { + name = "SHA-1" and result instanceof Crypto::SHA1 and digestLength = 160 + or + name = ["SHA-256", "SHA-384", "SHA-512"] and + result instanceof Crypto::SHA2 and + digestLength = name.splitAt("-", 1).toInt() + or + name = ["SHA3-224", "SHA3-256", "SHA3-384", "SHA3-512"] and + result instanceof Crypto::SHA3 and + digestLength = name.splitAt("-", 1).toInt() + or + ( + name.matches("BLAKE2b%") and + result instanceof Crypto::BLAKE2B + or + name = "BLAKE2s" and result instanceof Crypto::BLAKE2S + ) and + ( + if exists(name.indexOf("-")) + then name.splitAt("-", 1).toInt() = digestLength + else digestLength = 512 + ) + or + name = "MD5" and + result instanceof Crypto::MD5 and + digestLength = 128 + or + name = "RIPEMD160" and + result instanceof Crypto::RIPEMD160 and + digestLength = 160 + or + name = "Whirlpool" and + result instanceof Crypto::WHIRLPOOL and + digestLength = 512 // TODO: verify + } + /** * A `StringLiteral` in the `"ALG/MODE/PADDING"` or `"ALG"` format */ @@ -99,8 +143,63 @@ module JCAModel { * * TODO: Model the case of relying on a provider default, but alert on it as a bad practice. */ - class CipherStringLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance, - Crypto::ModeOfOperationAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof CipherStringLiteral + class CipherStringLiteralPaddingAlgorithmInstance extends CipherStringLiteralAlgorithmInstance, + Crypto::PaddingAlgorithmInstance instanceof CipherStringLiteral + { + CipherStringLiteralPaddingAlgorithmInstance() { exists(super.getPadding()) } // TODO: provider defaults + + override string getRawPaddingAlgorithmName() { result = super.getPadding() } + + bindingset[name] + private predicate paddingToNameMappingKnown(Crypto::TPaddingType type, string name) { + type instanceof Crypto::NoPadding and name = "NOPADDING" + or + type instanceof Crypto::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? + or + type instanceof Crypto::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% + } + + override Crypto::TPaddingType getPaddingType() { + if this.paddingToNameMappingKnown(_, super.getPadding()) + then this.paddingToNameMappingKnown(result, super.getPadding()) + else result instanceof Crypto::OtherPadding + } + } + + class CipherStringLiteralModeAlgorithmInstance extends CipherStringLiteralPaddingAlgorithmInstance, + Crypto::ModeOfOperationAlgorithmInstance instanceof CipherStringLiteral + { + CipherStringLiteralModeAlgorithmInstance() { exists(super.getMode()) } // TODO: provider defaults + + override string getRawModeAlgorithmName() { result = super.getMode() } + + bindingset[name] + private predicate modeToNameMappingKnown(Crypto::TBlockCipherModeOperationType type, string name) { + type instanceof Crypto::ECB and name = "ECB" + or + type instanceof Crypto::CBC and name = "CBC" + or + type instanceof Crypto::GCM and name = "GCM" + or + type instanceof Crypto::CTR and name = "CTR" + or + type instanceof Crypto::XTS and name = "XTS" + or + type instanceof Crypto::CCM and name = "CCM" + or + type instanceof Crypto::SIV and name = "SIV" + or + type instanceof Crypto::OCB and name = "OCB" + } + + override Crypto::TBlockCipherModeOperationType getModeType() { + if this.modeToNameMappingKnown(_, super.getMode()) + then this.modeToNameMappingKnown(result, super.getMode()) + else result instanceof Crypto::OtherMode + } + } + + class CipherStringLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance instanceof CipherStringLiteral { Crypto::AlgorithmValueConsumer consumer; @@ -111,14 +210,14 @@ module JCAModel { Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { - result = this and exists(this.getRawModeAlgorithmName()) // TODO: provider defaults + result = this // TODO: provider defaults } override Crypto::PaddingAlgorithmInstance getPaddingAlgorithm() { - result = this and exists(this.getRawPaddingAlgorithmName()) // TODO: provider defaults + result = this // TODO: provider defaults } - override string getRawAlgorithmName() { result = super.getValue() } + override string getRawCipherAlgorithmName() { result = super.getValue() } override Crypto::TCipherType getCipherFamily() { if this.cipherNameMappingKnown(_, super.getAlgorithmName()) @@ -155,49 +254,43 @@ module JCAModel { name = "RSA" and type instanceof Crypto::RSA } + } - private predicate modeToNameMappingKnown(Crypto::TBlockCipherModeOperationType type, string name) { - type instanceof Crypto::ECB and name = "ECB" - or - type instanceof Crypto::CBC and name = "CBC" - or - type instanceof Crypto::GCM and name = "GCM" - or - type instanceof Crypto::CTR and name = "CTR" - or - type instanceof Crypto::XTS and name = "XTS" - or - type instanceof Crypto::CCM and name = "CCM" - or - type instanceof Crypto::SIV and name = "SIV" - or - type instanceof Crypto::OCB and name = "OCB" + bindingset[input] + predicate oaep_padding_string_components(string input, string hash, string mfg) { + exists(string regex | + regex = "OAEPWith(.*)And(.*)Padding" and + hash = input.regexpCapture(regex, 1) and + mfg = input.regexpCapture(regex, 2) + ) + } + + predicate oaep_padding_string_components_eval(string hash, string mfg) { + oaep_padding_string_components(any(CipherStringLiteral s).getPadding(), hash, mfg) + } + + class OAEPPaddingHashAlgorithmInstance extends OAEPPaddingAlgorithmInstance, + Crypto::HashAlgorithmInstance instanceof CipherStringLiteral + { + string hashName; + + OAEPPaddingHashAlgorithmInstance() { + oaep_padding_string_components(super.getPadding(), hashName, _) } - override Crypto::TBlockCipherModeOperationType getModeType() { - if this.modeToNameMappingKnown(_, super.getMode()) - then this.modeToNameMappingKnown(result, super.getMode()) - else result instanceof Crypto::OtherMode - } + override string getRawHashAlgorithmName() { result = super.getPadding() } - override string getRawModeAlgorithmName() { result = super.getMode() } + override Crypto::THashType getHashFamily() { result = hash_name_to_hash_type(hashName, _) } - override string getRawPaddingAlgorithmName() { result = super.getPadding() } + override int getDigestLength() { exists(hash_name_to_hash_type(hashName, result)) } + } - bindingset[name] - private predicate paddingToNameMappingKnown(Crypto::TPaddingType type, string name) { - type instanceof Crypto::NoPadding and name = "NOPADDING" - or - type instanceof Crypto::PKCS7 and name = ["PKCS5Padding", "PKCS7Padding"] // TODO: misnomer in the JCA? - or - type instanceof Crypto::OAEP and name.matches("OAEP%") // TODO: handle OAEPWith% - } + class OAEPPaddingAlgorithmInstance extends Crypto::OAEPPaddingAlgorithmInstance, + CipherStringLiteralPaddingAlgorithmInstance + { + override Crypto::HashAlgorithmInstance getOAEPEncodingHashAlgorithm() { result = this } - override Crypto::TPaddingType getPaddingType() { - if this.paddingToNameMappingKnown(_, super.getPadding()) - then this.paddingToNameMappingKnown(result, super.getPadding()) - else result instanceof Crypto::OtherPadding - } + override Crypto::HashAlgorithmInstance getMGF1HashAlgorithm() { none() } // TODO } /** @@ -412,11 +505,13 @@ module JCAModel { } // e.g., getPublic or getPrivate - class KeyPairGetKeyCall extends MethodCall { - KeyPairGetKeyCall() { + class KeyAdditionalFlowSteps extends MethodCall { + KeyAdditionalFlowSteps() { this.getCallee().hasQualifiedName("java.security", "KeyPair", "getPublic") or this.getCallee().hasQualifiedName("java.security", "KeyPair", "getPrivate") + or + this.getCallee().hasQualifiedName("java.security", "Key", "getEncoded") } DataFlow::Node getInputNode() { result.asExpr() = this.getQualifier() } @@ -435,7 +530,7 @@ module JCAModel { node2 = n.getOutputNode() ) or - exists(KeyPairGetKeyCall call | + exists(KeyAdditionalFlowSteps call | node1 = call.getInputNode() and node2 = call.getOutputNode() ) @@ -519,21 +614,12 @@ module JCAModel { override DataFlow::Node getInputNode() { result.asExpr() = this } } - class CipherOperationCallOutput extends CipherOutputArtifact { + class CipherOperationCallOutput extends Crypto::CipherOutputArtifactInstance { CipherOperationCallOutput() { this = any(CipherOperationCall call).getOutput() } override DataFlow::Node getOutputNode() { result.asExpr() = this } } - bindingset[hash] - predicate hash_names(string hash) { - hash.toUpperCase() - .matches([ - "SHA-1", "SHA-256", "SHA-384", "SHA-512", "SHA3-224", "SHA3-256", "SHA3-384", - "SHA3-512", "BLAKE2b", "BLAKE2s" - ].toUpperCase()) - } - // flow config from a known hash algorithm literal to MessageDigest.getInstance module KnownHashAlgorithmLiteralToMessageDigestConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { hash_names(src.asExpr().(StringLiteral).getValue()) } @@ -557,10 +643,14 @@ module JCAModel { MessageDigestAlgorithmValueConsumer getConsumer() { result = consumer } - override string getRawAlgorithmName() { result = this.(StringLiteral).getValue() } + override string getRawHashAlgorithmName() { result = this.(StringLiteral).getValue() } override Crypto::THashType getHashFamily() { - result = Crypto::OtherHashType() // TODO + result = hash_name_to_hash_type(this.getRawHashAlgorithmName(), _) + } + + override int getDigestLength() { + exists(hash_name_to_hash_type(this.getRawHashAlgorithmName(), result)) } } @@ -606,7 +696,7 @@ module JCAModel { module DigestGetInstanceToDigestFlow = DataFlow::Global; - class DigestArtifact extends DigestArtifactInstance { + class DigestArtifact extends Crypto::DigestArtifactInstance { DigestArtifact() { this = any(DigestCall call).getDigestArtifactOutput() } override DataFlow::Node getOutputNode() { result.asExpr() = this } @@ -659,7 +749,7 @@ module JCAModel { Expr getAlgorithmArg() { result = super.getArgument(0) } - predicate flowsTo(KeyGeneratorGenerateCall sink) { + predicate flowsToKeyGenerateCallQualifier(KeyGeneratorGenerateCall sink) { KeyGeneratorGetInstanceToGenerateFlow::flow(DataFlow::exprNode(this), DataFlow::exprNode(sink.(MethodCall).getQualifier())) } @@ -683,7 +773,7 @@ module JCAModel { override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { exists(KeyGeneratorGetInstanceCall getInstance | - getInstance.flowsTo(this) and result = getInstance.getAlgorithmArg() + getInstance.flowsToKeyGenerateCallQualifier(this) and result = getInstance.getAlgorithmArg() ) } @@ -691,4 +781,170 @@ module JCAModel { result = this.getAnAlgorithmValueConsumer().getAKnownAlgorithmSource() } } + + /* + * TODO: + * + * MAC Algorithms possible (JCA Default + BouncyCastle Extensions) + * + * Name Type Description + * --------------------------------------------------------------------------- + * "HmacMD5" HMAC HMAC with MD5 (not recommended) + * "HmacSHA1" HMAC HMAC with SHA-1 (not recommended) + * "HmacSHA224" HMAC HMAC with SHA-224 + * "HmacSHA256" HMAC HMAC with SHA-256 + * "HmacSHA384" HMAC HMAC with SHA-384 + * "HmacSHA512" HMAC HMAC with SHA-512 + * + * (BouncyCastle and Other Provider Extensions) + * "AESCMAC" CMAC Cipher-based MAC using AES + * "DESCMAC" CMAC CMAC with DES (legacy) + * "GMAC" GCM-based MAC Authenticates AAD only (GCM-style) + * "Poly1305" AEAD-style MAC Used with ChaCha20 + * "SipHash" Hash-based MAC Fast MAC for short inputs + * "BLAKE2BMAC" HMAC-style BLAKE2b MAC (cryptographic hash) + * "HmacRIPEMD160" HMAC HMAC with RIPEMD160 hash + */ + + bindingset[name] + predicate mac_names(string name) { + name.toUpperCase() + .matches([ + "HMAC%", "AESCMAC", "DESCMAC", "GMAC", "Poly1305", "SipHash", "BLAKE2BMAC", + "HMACRIPEMD160" + ].toUpperCase()) + } + + bindingset[name] + predicate mac_name_to_mac_type_known(Crypto::TMACType type, string name) { + type instanceof Crypto::THMAC and + name.toUpperCase().matches("HMAC%") + } + + module MACKnownAlgorithmToConsumerConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { mac_names(src.asExpr().(StringLiteral).getValue()) } + + predicate isSink(DataFlow::Node sink) { + exists(MACGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) + } + } + + module MACKnownAlgorithmToConsumerFlow = DataFlow::Global; + + module MACGetInstanceToMACOperationFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof MACGetInstanceCall } + + predicate isSink(DataFlow::Node sink) { + exists(MACOperationCall call | sink.asExpr() = call.(MethodCall).getQualifier()) or + exists(MACInitCall call | sink.asExpr() = call.(MethodCall).getQualifier()) + } + } + + module MACGetInstanceToMACOperationFlow = + DataFlow::Global; + + module MACInitCallToMACOperationFlowConfig implements DataFlow::ConfigSig { + // TODO: use flow state with one config + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof MACInitCall } + + predicate isSink(DataFlow::Node sink) { + exists(MACOperationCall call | sink.asExpr() = call.(MethodCall).getQualifier()) + } + } + + module MACInitCallToMACOperationFlow = DataFlow::Global; + + class KnownMACAlgorithm extends Crypto::MACAlgorithmInstance instanceof StringLiteral { + MACGetInstanceAlgorithmValueConsumer consumer; + + KnownMACAlgorithm() { + mac_names(this.getValue()) and + MACKnownAlgorithmToConsumerFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + } + + MACGetInstanceAlgorithmValueConsumer getConsumer() { result = consumer } + + override string getRawMACAlgorithmName() { result = super.getValue() } + + override Crypto::TMACType getMACType() { + if mac_name_to_mac_type_known(_, super.getValue()) + then mac_name_to_mac_type_known(result, super.getValue()) + else result instanceof Crypto::TOtherMACType + } + } + + class MACGetInstanceCall extends MethodCall { + MACGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "Mac", "getInstance") } + + Expr getAlgorithmArg() { result = this.getArgument(0) } + + MACOperationCall getOperation() { + MACGetInstanceToMACOperationFlow::flow(DataFlow::exprNode(this), + DataFlow::exprNode(result.(MethodCall).getQualifier())) + } + + MACInitCall getInitCall() { + MACInitCallToMACOperationFlow::flow(DataFlow::exprNode(this), + DataFlow::exprNode(result.getQualifier())) + } + } + + class MACInitCall extends MethodCall { + MACInitCall() { this.getCallee().hasQualifiedName("javax.crypto", "Mac", "init") } + + Expr getKeyArg() { + result = this.getArgument(0) and this.getMethod().getParameterType(0).hasName("Key") + } + + MACOperationCall getOperation() { + MACInitCallToMACOperationFlow::flow(DataFlow::exprNode(this), + DataFlow::exprNode(result.(MethodCall).getQualifier())) + } + } + + class MACGetInstanceAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { + MACGetInstanceCall call; + + MACGetInstanceAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + override DataFlow::Node getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + exists(KnownMACAlgorithm l | l.getConsumer() = this and result = l) + } + } + + class MACOperationCall extends Crypto::MACOperationInstance instanceof MethodCall { + Expr output; + + MACOperationCall() { + super.getMethod().getDeclaringType().hasQualifiedName("javax.crypto", "Mac") and + ( + super.getMethod().hasStringSignature(["doFinal()", "doFinal(byte[])"]) and this = output + or + super.getMethod().hasStringSignature("doFinal(byte[], int)") and + this.getArgument(0) = output + ) + } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + exists(MACGetInstanceCall instantiation | + instantiation.getOperation() = this and result = instantiation.getAlgorithmArg() + ) + } + + override DataFlow::Node getKeyConsumer() { + exists(MACGetInstanceCall instantiation, MACInitCall initCall | + instantiation.getOperation() = this and + initCall.getOperation() = this and + instantiation.getInitCall() = initCall and + result.asExpr() = initCall.getKeyArg() + ) + } + + override DataFlow::Node getMessageConsumer() { + result.asExpr() = super.getArgument(0) and + super.getMethod().getParameterType(0).hasName("byte[]") + } + } } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index e8bb052b620..74edfec1d39 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -26,6 +26,10 @@ module CryptoInput implements InputSig { class UnknownLocation = UnknownDefaultLocation; + string locationToFileBaseNameAndLineNumberString(Location location) { + result = location.getFile().getBaseName() + ":" + location.getStartLine() + } + LocatableElement dfn_to_element(DataFlow::Node node) { result = node.asExpr() or result = node.asParameter() @@ -50,6 +54,20 @@ final class DefaultFlowSource = SourceNode; final class DefaultRemoteFlowSource = RemoteFlowSource; +class GenericUnreferencedParameterSource extends Crypto::GenericUnreferencedParameterSource { + GenericUnreferencedParameterSource() { + exists(Parameter p | this = p and not exists(p.getAnArgument())) + } + + override predicate flowsTo(Crypto::FlowAwareElement other) { + GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } + + override DataFlow::Node getOutputNode() { result.asParameter() = this } + + override string getAdditionalDescription() { result = this.toString() } +} + class GenericLocalDataSource extends Crypto::GenericLocalDataSource { GenericLocalDataSource() { any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this @@ -76,20 +94,16 @@ class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { override string getAdditionalDescription() { result = this.toString() } } -/* - * class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { - * ConstantDataSource() { not this instanceof Crypto::KnownElement } - * - * override DataFlow::Node getOutputNode() { result.asExpr() = this } - * - * override predicate flowsTo(Crypto::FlowAwareElement other) { - * // TODO: separate config to avoid blowing up data-flow analysis - * GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) - * } - * - * override string getAdditionalDescription() { result = this.toString() } - * } - */ +class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { + override DataFlow::Node getOutputNode() { result.asExpr() = this } + + override predicate flowsTo(Crypto::FlowAwareElement other) { + // TODO: separate config to avoid blowing up data-flow analysis + GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + } + + override string getAdditionalDescription() { result = this.toString() } +} /** * Random number generation, where each instance is modelled as the expression @@ -97,10 +111,6 @@ class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { */ abstract class RandomnessInstance extends Crypto::RandomNumberGenerationInstance { override DataFlow::Node getOutputNode() { result.asExpr() = this } - - override predicate flowsTo(Crypto::FlowAwareElement other) { - ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) - } } class SecureRandomnessInstance extends RandomnessInstance { @@ -115,17 +125,6 @@ class InsecureRandomnessInstance extends RandomnessInstance { InsecureRandomnessInstance() { exists(InsecureRandomnessSource node | this = node.asExpr()) } } -/** - * Output artifact flow logic - */ -abstract class DigestArtifactInstance extends Crypto::DigestArtifactInstance { - override predicate flowsTo(Crypto::FlowAwareElement other) { - ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) - } - - override predicate isConsumerArtifact() { none() } -} - /** * Artifact output to node input configuration */ @@ -137,14 +136,6 @@ abstract class AdditionalFlowInputStep extends DataFlow::Node { module ArtifactUniversalFlow = DataFlow::Global; -abstract class CipherOutputArtifact extends Crypto::CipherOutputArtifactInstance { - override predicate flowsTo(Crypto::FlowAwareElement other) { - ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) - } - - override predicate isConsumerArtifact() { none() } -} - /** * Generic data source to node input configuration */ @@ -167,6 +158,12 @@ module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) } } diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 2a006cd7f82..0ed24452c0b 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -21,6 +21,8 @@ signature module InputSig { class UnknownLocation instanceof Location; + string locationToFileBaseNameAndLineNumberString(Location location); + LocatableElement dfn_to_element(DataFlowNode node); predicate artifactOutputFlowsToGenericInput( @@ -70,7 +72,7 @@ module CryptographyBase Input> { or // CodeQL's DGML output does not include a location key = "Location" and - value = "demo" // node.getLocation().toString() + value = Input::locationToFileBaseNameAndLineNumberString(node.getLocation()) // node.getLocation().toString() or // Known unknown edges should be reported as properties rather than edges node = node.getChild(key) and @@ -146,13 +148,7 @@ module CryptographyBase Input> { /** * An element that represents a _known_ cryptographic algorithm. */ - abstract class AlgorithmInstance extends KnownElement { - /** - * Gets the raw name as it appears in source, e.g., "AES/CBC/PKCS7Padding". - * This name is not parsed or formatted. - */ - abstract string getRawAlgorithmName(); - } + abstract class AlgorithmInstance extends KnownElement { } /** * An element that represents an _unknown_ data-source with a non-statically determinable value. @@ -173,6 +169,10 @@ module CryptographyBase Input> { final override string getInternalType() { result = "ExternalCall" } // TODO: call target name or toString of source? } + abstract class GenericUnreferencedParameterSource extends GenericDataSourceInstance { + final override string getInternalType() { result = "Parameter" } // TODO: toString of source? + } + abstract class GenericRemoteDataSource extends GenericDataSourceInstance { final override string getInternalType() { result = "RemoteData" } // TODO: toString of source? } @@ -300,6 +300,17 @@ module CryptographyBase Input> { final override DataFlowNode getInputNode() { result = inputNode } } + final private class MACInputArtifactConsumer extends ArtifactConsumerAndInstance { + DataFlowNode inputNode; + + MACInputArtifactConsumer() { + exists(MACOperationInstance op | inputNode = op.getMessageConsumer()) and + this = Input::dfn_to_element(inputNode) + } + + final override DataFlowNode getInputNode() { result = inputNode } + } + // Output artifacts are determined solely by the element that produces them. // Implementation guidance: these *do* need to be defined generically at the language-level // in order for a flowsTo to be defined. At the per-modeling-instance level, extend that language-level class! @@ -307,6 +318,10 @@ module CryptographyBase Input> { override predicate isConsumerArtifact() { none() } override DataFlowNode getInputNode() { none() } + + final override predicate flowsTo(FlowAwareElement other) { + Input::artifactOutputFlowsToGenericInput(this.getOutputNode(), other.getInputNode()) + } } abstract class DigestArtifactInstance extends OutputArtifactInstance { } @@ -347,10 +362,6 @@ module CryptographyBase Input> { override KeyArtifactType getKeyType() { result = creator.getOutputKeyType() } override DataFlowNode getOutputNode() { result = creator.getOutputKeyArtifact() } - - override predicate flowsTo(FlowAwareElement other) { - Input::artifactOutputFlowsToGenericInput(this.getOutputNode(), other.getInputNode()) - } } final class KeyArtifactConsumer extends KeyArtifactInstance, ArtifactConsumerAndInstance { @@ -402,6 +413,12 @@ module CryptographyBase Input> { } abstract class CipherAlgorithmInstance extends AlgorithmInstance { + /** + * Gets the raw name as it appears in source, e.g., "AES/CBC/PKCS7Padding". + * This name is not parsed or formatted. + */ + abstract string getRawCipherAlgorithmName(); + /** * Gets the type of this cipher, e.g., "AES" or "ChaCha20". */ @@ -466,12 +483,51 @@ module CryptographyBase Input> { /** * Gets the hash algorithm used in this padding scheme. */ - abstract HashAlgorithmInstance getHashAlgorithm(); + abstract HashAlgorithmInstance getOAEPEncodingHashAlgorithm(); /** - * Gets the mask generation function used in this padding scheme. + * Gets the hash algorithm used by MGF1 (assumption: MGF1 is the only MGF used by OAEP) */ - abstract HashAlgorithmInstance getMaskGenerationFunction(); + abstract HashAlgorithmInstance getMGF1HashAlgorithm(); + } + + newtype TMACType = + THMAC() or + TOtherMACType() + + abstract class MACAlgorithmInstance extends AlgorithmInstance { + /** + * Gets the type of this MAC algorithm, e.g., "HMAC" or "CMAC". + */ + abstract TMACType getMACType(); + + /** + * Gets the isolated name as it appears in source, e.g., "HMAC-SHA256" in "HMAC-SHA256/UnrelatedInformation". + * + * This name should not be parsed or formatted beyond isolating the raw MAC name if necessary. + */ + abstract string getRawMACAlgorithmName(); + } + + abstract class MACOperationInstance extends OperationInstance { + /** + * Gets the message input used in this operation. + */ + abstract DataFlowNode getMessageConsumer(); + + /** + * Gets the key used in this operation. + */ + abstract DataFlowNode getKeyConsumer(); + } + + abstract class HMACAlgorithmInstance extends MACAlgorithmInstance { + HMACAlgorithmInstance() { this.getMACType() instanceof THMAC } + + /** + * Gets the hash algorithm used by this HMAC algorithm. + */ + abstract AlgorithmValueConsumer getHashAlgorithmValueConsumer(); } abstract class KeyEncapsulationOperationInstance extends OperationInstance { } @@ -489,6 +545,16 @@ module CryptographyBase Input> { * Gets the type of this digest algorithm, e.g., "SHA1", "SHA2", "MD5" etc. */ abstract THashType getHashFamily(); + + /** + * Gets the isolated name as it appears in source, e.g., "SHA-256" in "SHA-256/PKCS7Padding". + */ + abstract string getRawHashAlgorithmName(); + + /** + * Gets the length of the hash digest in bits. + */ + abstract int getDigestLength(); } abstract class KeyDerivationOperationInstance extends OperationInstance { } @@ -512,6 +578,10 @@ module CryptographyBase Input> { * Gets the key size of the key produced by this operation. */ string getKeySize() { none() } // TODO: punt, might need a generic value consumer? + + final KeyArtifactOutputInstance getKeyArtifactOutputInstance() { + result.getOutputNode() = this.getOutputKeyArtifact() + } } abstract class KeyGenerationOperationInstance extends KeyCreationOperationInstance { @@ -524,13 +594,18 @@ module CryptographyBase Input> { private signature class AlgorithmInstanceType instanceof AlgorithmInstance; - module AlgorithmInstanceOrValueConsumer { + private signature predicate isCandidateAVCSig(AlgorithmValueConsumer avc); + + module AlgorithmInstanceOrValueConsumer< + AlgorithmInstanceType Alg, isCandidateAVCSig/1 isCandidateAVC> + { class Union extends LocatableElement { Union() { this instanceof Alg or - this instanceof AlgorithmValueConsumer and - not exists(this.(AlgorithmValueConsumer).getASource()) + isCandidateAVC(this) and + not exists(this.(AlgorithmValueConsumer).getAKnownAlgorithmSource()) and + exists(this.(AlgorithmValueConsumer).getAnUnknownSource()) } Alg asAlg() { result = this } @@ -539,25 +614,43 @@ module CryptographyBase Input> { } } - class CipherAlgorithmInstanceOrValueConsumer = - AlgorithmInstanceOrValueConsumer::Union; + private predicate isHashAVC(AlgorithmValueConsumer avc) { + exists(HashOperationInstance op | op.getAnAlgorithmValueConsumer() = avc) or + exists(HMACAlgorithmInstance alg | avc = alg.getAConsumer()) + } - class HashAlgorithmInstanceOrValueConsumer = - AlgorithmInstanceOrValueConsumer::Union; + private predicate isCipherAVC(AlgorithmValueConsumer avc) { + exists(CipherOperationInstance op | op.getAnAlgorithmValueConsumer() = avc) + } - newtype TNode = + private predicate isMACAVC(AlgorithmValueConsumer avc) { + exists(MACOperationInstance op | op.getAnAlgorithmValueConsumer() = avc) + } + + final private class CipherAlgorithmInstanceOrValueConsumer = + AlgorithmInstanceOrValueConsumer::Union; + + final private class HashAlgorithmInstanceOrValueConsumer = + AlgorithmInstanceOrValueConsumer::Union; + + private class MACAlgorithmInstanceOrValueConsumer = + AlgorithmInstanceOrValueConsumer::Union; + + private newtype TNode = // Artifacts (data that is not an operation or algorithm, e.g., a key) TDigest(DigestArtifactInstance e) or TKey(KeyArtifactInstance e) or TNonce(NonceArtifactConsumer e) or TCipherInput(CipherInputArtifactConsumer e) or TCipherOutput(CipherOutputArtifactInstance e) or + TMACMessageInput(MACInputArtifactConsumer e) or TRandomNumberGeneration(RandomNumberGenerationInstance e) { e.flowsTo(_) } or // Operations (e.g., hashing, encryption) THashOperation(HashOperationInstance e) or TKeyDerivationOperation(KeyDerivationOperationInstance e) or TCipherOperation(CipherOperationInstance e) or TKeyEncapsulationOperation(KeyEncapsulationOperationInstance e) or + TMACOperation(MACOperationInstance e) or // Key Creation Operations TKeyCreationOperation(KeyCreationOperationInstance e) or // Algorithms (e.g., SHA-256, AES) @@ -566,6 +659,7 @@ module CryptographyBase Input> { THashAlgorithm(HashAlgorithmInstanceOrValueConsumer e) or TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstance e) or TKeyEncapsulationAlgorithm(KeyEncapsulationAlgorithmInstance e) or + TMACAlgorithm(MACAlgorithmInstanceOrValueConsumer e) or // Non-standalone Algorithms (e.g., Mode, Padding) // TODO: need to rename this, as "mode" is getting reused in different contexts, be precise TModeOfOperationAlgorithm(ModeOfOperationAlgorithmInstance e) or @@ -738,6 +832,8 @@ module CryptographyBase Input> { final override string getInternalType() { result = "CipherOutput" } override LocatableElement asElement() { result = instance } + + override string getSourceNodeRelationship() { none() } } /** @@ -764,6 +860,8 @@ module CryptographyBase Input> { final override string getInternalType() { result = "RandomNumberGeneration" } override LocatableElement asElement() { result = instance } + + override string getSourceNodeRelationship() { none() } // TODO: seed? } /** @@ -813,6 +911,127 @@ module CryptographyBase Input> { value = instance.getKeyType().toString() and location = this.getLocation() } + + override string getSourceNodeRelationship() { + instance.isConsumerArtifact() and + result = "Source" + } + } + + final class MACMessageInputNode extends ArtifactNode, TMACMessageInput { + MACInputArtifactConsumer instance; + + MACMessageInputNode() { this = TMACMessageInput(instance) } + + final override string getInternalType() { result = "MACMessageInput" } + + override LocatableElement asElement() { result = instance } + } + + /** + * A MAC operation that produces a MAC value. + */ + final class MACOperationNode extends OperationNode, TMACOperation { + MACOperationInstance instance; + + MACOperationNode() { this = TMACOperation(instance) } + + final override string getInternalType() { result = "MACOperation" } + + override LocatableElement asElement() { result = instance } + + MACMessageInputNode getAMessage() { + result.asElement() = Input::dfn_to_element(instance.getMessageConsumer()) + } + + KeyArtifactNode getAKey() { + result.asElement() = Input::dfn_to_element(instance.getKeyConsumer()) + } + + /** + * Gets the algorithm or unknown source nodes consumed as an algorithm associated with this operation. + */ + NodeBase getAMACAlgorithmOrUnknown() { + result = this.getAKnownMACAlgorithm() or + result = + this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAnUnknownSourceNode() + } + + /** + * Gets a known algorithm associated with this operation + */ + MACAlgorithmNode getAKnownMACAlgorithm() { + result = + this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() + } + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + // [KNOWN_OR_UNKNOWN] + edgeName = "Algorithm" and + if exists(this.getAMACAlgorithmOrUnknown()) + then result = this.getAMACAlgorithmOrUnknown() + else result = this + or + // [KNOWN_OR_UNKNOWN] + edgeName = "Message" and + if exists(this.getAMessage()) then result = this.getAMessage() else result = this + or + // [KNOWN_OR_UNKNOWN] + edgeName = "Key" and + if exists(this.getAKey()) then result = this.getAKey() else result = this + } + } + + /** + * A MAC algorithm, such as HMAC or CMAC. + */ + class MACAlgorithmNode extends AlgorithmNode, TMACAlgorithm { + MACAlgorithmInstanceOrValueConsumer instance; + + MACAlgorithmNode() { this = TMACAlgorithm(instance) } + + final override string getInternalType() { result = "MACAlgorithm" } + + override LocatableElement asElement() { result = instance } + + final override string getRawAlgorithmName() { + result = instance.asAlg().getRawMACAlgorithmName() + } + + TMACType getMACType() { result = instance.asAlg().getMACType() } + + bindingset[type] + final private predicate macToNameMapping(TMACType type, string name) { + type instanceof THMAC and + name = "HMAC" + or + type instanceof TOtherMACType and + name = this.getRawAlgorithmName() + } + + override string getAlgorithmName() { this.macToNameMapping(this.getMACType(), result) } + } + + final class HMACAlgorithmNode extends MACAlgorithmNode { + HMACAlgorithmInstance hmacInstance; + + HMACAlgorithmNode() { hmacInstance = instance.asAlg() } + + NodeBase getHashAlgorithmOrUnknown() { + result.asElement() = hmacInstance.getHashAlgorithmValueConsumer().getASource() + } + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + // [KNOWN_OR_UNKNOWN] + edgeName = "H" and + if exists(this.getHashAlgorithmOrUnknown()) + then result = this.getHashAlgorithmOrUnknown() + else result = this + } } /** @@ -863,6 +1082,21 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } override string getInternalType() { result = instance.getKeyCreationTypeDescription() } + + /** + * Gets the key artifact produced by this operation. + */ + KeyArtifactNode getOutputKeyArtifact() { + instance.getKeyArtifactOutputInstance() = result.asElement() + } + + override NodeBase getChild(string key) { + result = super.getChild(key) + or + // [ALWAYS_KNOWN] + key = "Output" and + result = this.getOutputKeyArtifact() + } } newtype TCipherOperationSubtype = @@ -1101,10 +1335,12 @@ module CryptographyBase Input> { OAEPPaddingAlgorithmNode() { this = TPaddingAlgorithm(instance) } - HashAlgorithmNode getHashAlgorithm() { result.asElement() = instance.getHashAlgorithm() } + HashAlgorithmNode getOAEPEncodingHashAlgorithm() { + result.asElement() = instance.getOAEPEncodingHashAlgorithm() + } - HashAlgorithmNode getMaskGenerationFunction() { - result.asElement() = instance.getMaskGenerationFunction() + HashAlgorithmNode getMGF1HashAlgorithm() { + result.asElement() = instance.getMGF1HashAlgorithm() } override NodeBase getChild(string edgeName) { @@ -1112,12 +1348,14 @@ module CryptographyBase Input> { or // [KNOWN_OR_UNKNOWN] edgeName = "MD" and - if exists(this.getHashAlgorithm()) then result = this.getHashAlgorithm() else result = this + if exists(this.getOAEPEncodingHashAlgorithm()) + then result = this.getOAEPEncodingHashAlgorithm() + else result = this or // [KNOWN_OR_UNKNOWN] - edgeName = "MGF" and - if exists(this.getMaskGenerationFunction()) - then result = this.getMaskGenerationFunction() + edgeName = "MGF1Hash" and + if exists(this.getMGF1HashAlgorithm()) + then result = this.getMGF1HashAlgorithm() else result = this } } @@ -1184,7 +1422,9 @@ module CryptographyBase Input> { this.cipherFamilyToNameAndStructure(this.getCipherFamily(), result, _) } - final override string getRawAlgorithmName() { result = instance.asAlg().getRawAlgorithmName() } + final override string getRawAlgorithmName() { + result = instance.asAlg().getRawCipherAlgorithmName() + } /** * Gets the key size of this cipher, e.g., "128" or "256". @@ -1379,7 +1619,7 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } - override string getRawAlgorithmName() { result = instance.asAlg().getRawAlgorithmName() } + override string getRawAlgorithmName() { result = instance.asAlg().getRawHashAlgorithmName() } final predicate hashTypeToNameMapping(THashType type, string name) { type instanceof BLAKE2B and name = "BLAKE2B" @@ -1416,58 +1656,19 @@ module CryptographyBase Input> { * * When modeling a new hashing algorithm, use this predicate to specify the type of the algorithm. */ - abstract THashType getHashType(); + THashType getHashFamily() { result = instance.asAlg().getHashFamily() } - override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashType(), result) } + override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashFamily(), result) } - /** - * Gets the digest size of SHA2 or SHA3 algorithms. - * - * This predicate does not need to hold for other algorithms, - * as the digest size is already known based on the algorithm itself. - * - * For `OtherHashType` algorithms where a digest size should be reported, `THashType` - * should be extended to explicitly model that algorithm. If the algorithm has variable - * or multiple digest size variants, a similar predicate to this one must be defined - * for that algorithm to report the digest size. - */ - abstract string getSHA2OrSHA3DigestSize(Location location); - - bindingset[type] - private string getTypeDigestSizeFixed(THashType type) { - type instanceof MD2 and result = "128" - or - type instanceof MD4 and result = "128" - or - type instanceof MD5 and result = "128" - or - type instanceof SHA1 and result = "160" - or - type instanceof RIPEMD160 and result = "160" - or - type instanceof WHIRLPOOL and result = "512" - } - - bindingset[type] - private string getTypeDigestSize(THashType type, Location location) { - result = this.getTypeDigestSizeFixed(type) and location = this.getLocation() - or - type instanceof SHA2 and result = this.getSHA2OrSHA3DigestSize(location) - or - type instanceof SHA3 and result = this.getSHA2OrSHA3DigestSize(location) - } - - string getDigestSize(Location location) { - result = this.getTypeDigestSize(this.getHashType(), location) - } + int getDigestLength() { result = instance.asAlg().getDigestLength() } final override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or // [KNOWN_OR_UNKNOWN] key = "DigestSize" and - if exists(this.getDigestSize(location)) - then value = this.getDigestSize(location) + if exists(this.getDigestLength()) + then value = this.getDigestLength().toString() and location = this.getLocation() else ( value instanceof UnknownPropertyValue and location instanceof UnknownLocation ) From 9cd0340d21aa8e582da299bb0a1c0c981317eb59 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Wed, 26 Mar 2025 13:26:45 +0100 Subject: [PATCH 074/656] Remove rankdir=LR; from DOT output --- misc/scripts/cryptography/generate_cbom.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/misc/scripts/cryptography/generate_cbom.py b/misc/scripts/cryptography/generate_cbom.py index 07400d6cd6a..fa4c2cb1d02 100644 --- a/misc/scripts/cryptography/generate_cbom.py +++ b/misc/scripts/cryptography/generate_cbom.py @@ -39,8 +39,7 @@ def convert_dgml_to_dot(dgml_file, dot_file): # Form dot element sequence body_l = ["digraph cbom {", - "node [shape=box];", - "rankdir=LR;" + "node [shape=box];" ] # Process nodes From bec69ca1061875679086c7624165ffb001cc4f59 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Wed, 26 Mar 2025 13:27:32 +0100 Subject: [PATCH 075/656] Refactor consumer and generic source model --- java/ql/lib/experimental/Quantum/JCA.qll | 239 +++- java/ql/lib/experimental/Quantum/Language.qll | 20 +- .../codeql/cryptography/Model.qll | 1125 ++++++++++------- 3 files changed, 877 insertions(+), 507 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index eac400183b8..5cff0129b72 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -1,5 +1,6 @@ import java import semmle.code.java.dataflow.DataFlow +import semmle.code.java.dataflow.TaintTracking import semmle.code.java.controlflow.Dominance module JCAModel { @@ -43,6 +44,22 @@ module JCAModel { .toUpperCase()) } + bindingset[kdf] + predicate kdf_names(string kdf) { + kdf.toUpperCase().matches(["PBKDF2With%", "PBEWith%"].toUpperCase()) + } + + bindingset[name] + Crypto::TKeyDerivationType kdf_name_to_kdf_type(string name, string withSubstring) { + name.matches("PBKDF2With%") and + result instanceof Crypto::PBKDF2 and + withSubstring = name.regexpCapture("PBKDF2With(.*)", 1) + or + name.matches("PBEWith%") and + result instanceof Crypto::PBES and + withSubstring = name.regexpCapture("PBEWith(.*)", 1) + } + bindingset[name] Crypto::THashType hash_name_to_hash_type(string name, int digestLength) { name = "SHA-1" and result instanceof Crypto::SHA1 and digestLength = 160 @@ -132,7 +149,7 @@ module JCAModel { } } - module AlgorithmStringToFetchFlow = DataFlow::Global; + module AlgorithmStringToFetchFlow = TaintTracking::Global; /** * Note: padding and a mode of operation will only exist when the padding / mode (*and its type*) are determinable. @@ -303,7 +320,7 @@ module JCAModel { CipherGetInstanceAlgorithmArg() { this = call.getAlgorithmArg() } - override DataFlow::Node getInputNode() { result.asExpr() = this } + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } CipherStringLiteral getOrigin(string value) { AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), @@ -447,13 +464,15 @@ module JCAModel { override Crypto::CipherOperationSubtype getCipherOperationSubtype() { result = mode } - override DataFlow::Node getNonceConsumer() { + override Crypto::ConsumerInputDataFlowNode getNonceConsumer() { result.asExpr() = sink.getState().(InitializedCipherModeFlowState).getInitCall().getNonceArg() } - override DataFlow::Node getInputConsumer() { result = doFinalize.getMessageArg() } + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { + result = doFinalize.getMessageArg() + } - override DataFlow::Node getKeyConsumer() { + override Crypto::ConsumerInputDataFlowNode getKeyConsumer() { result.asExpr() = sink.getState().(InitializedCipherModeFlowState).getInitCall().getKeyArg() } @@ -611,7 +630,7 @@ module JCAModel { class CipherInitCallKeyConsumer extends Crypto::ArtifactConsumer { CipherInitCallKeyConsumer() { this = any(CipherInitCall call).getKeyArg() } - override DataFlow::Node getInputNode() { result.asExpr() = this } + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } } class CipherOperationCallOutput extends Crypto::CipherOutputArtifactInstance { @@ -659,7 +678,7 @@ module JCAModel { MessageDigestAlgorithmValueConsumer() { this = call.getAlgorithmArg() } - override DataFlow::Node getInputNode() { result.asExpr() = this } + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { exists(KnownHashAlgorithm l | l.getConsumer() = this and result = l) @@ -719,7 +738,7 @@ module JCAModel { KeyGeneratorCallAlgorithmValueConsumer() { this = call.getAlgorithmArg() } - override DataFlow::Node getInputNode() { result.asExpr() = this } + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { result.(CipherStringLiteralAlgorithmInstance).getConsumer() = this @@ -780,6 +799,10 @@ module JCAModel { Crypto::AlgorithmInstance getAKnownAlgorithm() { result = this.getAnAlgorithmValueConsumer().getAKnownAlgorithmSource() } + + override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { none() } + + override string getKeySizeFixed() { none() } } /* @@ -845,7 +868,9 @@ module JCAModel { module MACInitCallToMACOperationFlowConfig implements DataFlow::ConfigSig { // TODO: use flow state with one config - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof MACInitCall } + predicate isSource(DataFlow::Node src) { + exists(MACInitCall init | src.asExpr() = init.getQualifier()) + } predicate isSink(DataFlow::Node sink) { exists(MACOperationCall call | sink.asExpr() = call.(MethodCall).getQualifier()) @@ -884,7 +909,7 @@ module JCAModel { } MACInitCall getInitCall() { - MACInitCallToMACOperationFlow::flow(DataFlow::exprNode(this), + MACGetInstanceToMACOperationFlow::flow(DataFlow::exprNode(this), DataFlow::exprNode(result.getQualifier())) } } @@ -897,7 +922,7 @@ module JCAModel { } MACOperationCall getOperation() { - MACInitCallToMACOperationFlow::flow(DataFlow::exprNode(this), + MACInitCallToMACOperationFlow::flow(DataFlow::exprNode(this.getQualifier()), DataFlow::exprNode(result.(MethodCall).getQualifier())) } } @@ -907,7 +932,7 @@ module JCAModel { MACGetInstanceAlgorithmValueConsumer() { this = call.getAlgorithmArg() } - override DataFlow::Node getInputNode() { result.asExpr() = this } + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { exists(KnownMACAlgorithm l | l.getConsumer() = this and result = l) @@ -933,7 +958,7 @@ module JCAModel { ) } - override DataFlow::Node getKeyConsumer() { + override Crypto::ConsumerInputDataFlowNode getKeyConsumer() { exists(MACGetInstanceCall instantiation, MACInitCall initCall | instantiation.getOperation() = this and initCall.getOperation() = this and @@ -942,9 +967,195 @@ module JCAModel { ) } - override DataFlow::Node getMessageConsumer() { + override Crypto::ConsumerInputDataFlowNode getMessageConsumer() { result.asExpr() = super.getArgument(0) and super.getMethod().getParameterType(0).hasName("byte[]") } } + + module SecretKeyFactoryGetInstanceToGenerateSecretFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + exists(SecretKeyFactoryGetInstanceCall call | src.asExpr() = call) + } + + predicate isSink(DataFlow::Node sink) { + exists(SecretKeyFactoryGenerateSecretCall call | + sink.asExpr() = call.(MethodCall).getQualifier() + ) + } + } + + module PBEKeySpecInstantiationToGenerateSecretFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + exists(PBEKeySpecInstantiation call | src.asExpr() = call) + } + + predicate isSink(DataFlow::Node sink) { + exists(SecretKeyFactoryGenerateSecretCall call | sink.asExpr() = call.getKeySpecArg()) + } + } + + module KDFAlgorithmStringToGetInstanceConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { kdf_names(src.asExpr().(StringLiteral).getValue()) } + + predicate isSink(DataFlow::Node sink) { + exists(SecretKeyFactoryGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) + } + } + + module SecretKeyFactoryGetInstanceToGenerateSecretFlow = + DataFlow::Global; + + module PBEKeySpecInstantiationToGenerateSecretFlow = + DataFlow::Global; + + module KDFAlgorithmStringToGetInstanceFlow = + DataFlow::Global; + + class PBEKeySpecInstantiation extends ClassInstanceExpr { + PBEKeySpecInstantiation() { + this.getConstructedType().hasQualifiedName("javax.crypto.spec", "PBEKeySpec") + } + + Expr getPasswordArg() { result = this.getArgument(0) } + + Expr getSaltArg() { result = this.getArgument(1) } + + Expr getIterationCountArg() { result = this.getArgument(2) } + + Expr getKeyLengthArg() { result = this.getArgument(3) } + } + + class SecretKeyFactoryGetInstanceCall extends MethodCall { + SecretKeyFactoryGetInstanceCall() { + this.getCallee().hasQualifiedName("javax.crypto", "SecretKeyFactory", "getInstance") + } + + Expr getAlgorithmArg() { result = this.getArgument(0) } + + SecretKeyFactoryGenerateSecretCall getOperation() { + SecretKeyFactoryGetInstanceToGenerateSecretFlow::flow(DataFlow::exprNode(this), + DataFlow::exprNode(result.(MethodCall).getQualifier())) + } + } + + class KDFAlgorithmStringLiteral extends Crypto::KeyDerivationAlgorithmInstance instanceof StringLiteral + { + SecretKeyFactoryKDFAlgorithmValueConsumer consumer; + + KDFAlgorithmStringLiteral() { + kdf_names(this.getValue()) and + KDFAlgorithmStringToGetInstanceFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + } + + override string getRawKDFAlgorithmName() { result = super.getValue() } + + override Crypto::TKeyDerivationType getKDFType() { + result = kdf_name_to_kdf_type(super.getValue(), _) + } + + SecretKeyFactoryKDFAlgorithmValueConsumer getConsumer() { result = consumer } + } + + class PBKDF2AlgorithmStringLiteral extends KDFAlgorithmStringLiteral, + Crypto::PBKDF2AlgorithmInstance, Crypto::HMACAlgorithmInstance, Crypto::HashAlgorithmInstance, + Crypto::AlgorithmValueConsumer + { + PBKDF2AlgorithmStringLiteral() { super.getKDFType() instanceof Crypto::PBKDF2 } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { none() } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { result = this } + + override Crypto::THashType getHashFamily() { + result = hash_name_to_hash_type(this.getRawHashAlgorithmName(), _) + } + + override int getDigestLength() { + exists(hash_name_to_hash_type(this.getRawHashAlgorithmName(), result)) + } + + override string getRawMACAlgorithmName() { + result = super.getRawKDFAlgorithmName().splitAt("PBKDF2With", 1) + } + + override string getRawHashAlgorithmName() { + result = super.getRawKDFAlgorithmName().splitAt("WithHmac", 1) + } + + override Crypto::TMACType getMACType() { result instanceof Crypto::THMAC } + + override Crypto::AlgorithmValueConsumer getHMACAlgorithmValueConsumer() { result = this } + + override Crypto::AlgorithmValueConsumer getHashAlgorithmValueConsumer() { result = this } + } + + class SecretKeyFactoryKDFAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer instanceof Expr + { + SecretKeyFactoryGetInstanceCall call; + + SecretKeyFactoryKDFAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + exists(KDFAlgorithmStringLiteral l | l.getConsumer() = this and result = l) + } + + SecretKeyFactoryGetInstanceCall getInstantiation() { result = call } + } + + class SecretKeyFactoryGenerateSecretCall extends Crypto::KeyDerivationOperationInstance instanceof MethodCall + { + SecretKeyFactoryGenerateSecretCall() { + super.getCallee().hasQualifiedName("javax.crypto", "SecretKeyFactory", "generateSecret") + } + + Expr getKeySpecArg() { + result = super.getArgument(0) and + super.getMethod().getParameterType(0).hasName("KeySpec") + } + + PBEKeySpecInstantiation getInstantiation() { + PBEKeySpecInstantiationToGenerateSecretFlow::flow(DataFlow::exprNode(result), + DataFlow::exprNode(this.getKeySpecArg())) + } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + exists(SecretKeyFactoryGetInstanceCall instantiation | + instantiation.getOperation() = this and result = instantiation.getAlgorithmArg() + ) + } + + override Crypto::ConsumerInputDataFlowNode getSaltConsumer() { + result.asExpr() = this.getInstantiation().getSaltArg() + } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { + result.asExpr() = this.getInstantiation().getPasswordArg() + } + + override Crypto::ConsumerInputDataFlowNode getIterationCountConsumer() { + result.asExpr() = this.getInstantiation().getIterationCountArg() + } + + override DataFlow::Node getOutputKeyArtifact() { + result.asExpr() = this and + super.getMethod().getReturnType().hasName("SecretKey") + } + + override Crypto::ConsumerInputDataFlowNode getOutputKeySizeConsumer() { + result.asExpr() = this.getInstantiation().getKeyLengthArg() + } + + override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { + result.asExpr() = this.getInstantiation().getKeyLengthArg() + } + + override string getKeySizeFixed() { none() } + + override string getOutputKeySizeFixed() { none() } + + override string getIterationCountFixed() { none() } + } } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 74edfec1d39..1621e9436c4 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -94,7 +94,7 @@ class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { override string getAdditionalDescription() { result = this.toString() } } -class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { +class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceof Literal { override DataFlow::Node getOutputNode() { result.asExpr() = this } override predicate flowsTo(Crypto::FlowAwareElement other) { @@ -141,7 +141,7 @@ module ArtifactUniversalFlow = DataFlow::Global; */ module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { - source = any(Crypto::GenericDataSourceInstance i).getOutputNode() + source = any(Crypto::GenericSourceInstance i).getOutputNode() } predicate isSink(DataFlow::Node sink) { @@ -189,7 +189,21 @@ module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { } } -module GenericDataSourceUniversalFlow = DataFlow::Global; +module GenericDataSourceUniversalFlow = TaintTracking::Global; + +/* + * class LiteralOrGenericDataSource extends Element { + * DataFlow::Node node; + * + * LiteralOrGenericDataSource() { + * node = this.(Crypto::GenericSourceInstance).getOutputNode() or + * node.asExpr() = this.(Literal) + * } + * + * bindingset[other] + * predicate localFlowsTo(DataFlow::Node other) { DataFlow::localFlow(node, other) } + * } + */ // Import library-specific modeling import JCA diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index f2068192380..8252b513860 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -37,6 +37,10 @@ module CryptographyBase Input> { final class DataFlowNode = Input::DataFlowNode; + class ConsumerInputDataFlowNode extends DataFlowNode { + ConsumerElement getConsumer() { result.getInputNode() = this } + } + final class UnknownPropertyValue extends string { UnknownPropertyValue() { this = "" } } @@ -49,7 +53,10 @@ module CryptographyBase Input> { ( if location = root or location instanceof UnknownLocation then parsed = value - else parsed = "(" + value + "," + location.toString() + ")" + else + parsed = + "(" + value + "," + Input::locationToFileBaseNameAndLineNumberString(location) + + ")" ) | parsed @@ -57,15 +64,28 @@ module CryptographyBase Input> { ) } + bindingset[node] + predicate node_as_property(GenericSourceNode node, string value, Location location) { + value = + node.getInternalType() + ":" + + node.asElement().(GenericSourceInstance).getAdditionalDescription() and + location = node.getLocation() + } + NodeBase getPassthroughNodeChild(NodeBase node) { result = node.getChild(_) } + predicate isPassthroughNodeWithSource(NodeBase node) { + isPassthroughNode(node) and + exists(node.asElement().(ArtifactConsumerAndInstance).getASource()) + } + predicate isPassthroughNode(NodeBase node) { node.asElement() instanceof ArtifactConsumerAndInstance } predicate nodes_graph_impl(NodeBase node, string key, string value) { not node.isExcludedFromGraph() and - not isPassthroughNode(node) and // TODO: punt to fix known unknowns for passthrough nodes + not isPassthroughNodeWithSource(node) and // TODO: punt to fix known unknowns for passthrough nodes ( key = "semmle.label" and value = node.toString() @@ -102,23 +122,23 @@ module CryptographyBase Input> { */ abstract class FlowAwareElement extends LocatableElement { /** - * Gets the output node for this artifact, which should usually be the same as `this`. + * Gets the output node for this element, which should usually be the same as `this`. */ abstract DataFlowNode getOutputNode(); /** - * Gets the input node for this artifact. + * Gets the input node for this element which takes in data. * * If `getInput` is implemented as `none()`, the artifact will not have inbound flow analysis. */ - abstract DataFlowNode getInputNode(); + abstract ConsumerInputDataFlowNode getInputNode(); /** - * Holds if this artifact flows to `other`. + * Holds if this element flows to `other`. * * This predicate should be defined generically per-language with library-specific extension support. - * The expected implementation is to perform flow analysis from this artifact's output to another artifact's input. - * The `other` argument should be one or more `ArtifactLocatableElement` that are sinks of the flow. + * The expected implementation is to perform flow analysis from this element's output to another element's input. + * The `other` argument should be one or more `FlowAwareElement`s that are sinks of the flow. * * If `flowsTo` is implemented as `none()`, the artifact will not have outbound flow analysis. */ @@ -128,8 +148,8 @@ module CryptographyBase Input> { /** * An element that represents a _known_ cryptographic asset with a determinable value OR an artifact. * - * CROSS PRODUCT WARNING: Do not model any *other* element that is a `FlowAwareElement` to the same - * instance in the database, as every other `KnownElement` will share that output artifact's flow. + * CROSS PRODUCT WARNING: Modeling any *other* element that is a `FlowAwareElement` to the same + * instance in the database will result in every `FlowAwareElement` sharing the output flow. */ abstract class KnownElement extends LocatableElement { final ConsumerElement getAConsumer() { result.getAKnownSource() = this } @@ -151,33 +171,71 @@ module CryptographyBase Input> { abstract class AlgorithmInstance extends KnownElement { } /** - * An element that represents an _unknown_ data-source with a non-statically determinable value. + * An element that represents a generic source of data. + * + * A generic source of data is either: + * 1. A value (e.g., a string or integer literal) *or* + * 1. An input for which a value cannot be determined (e.g., `argv`, file system reads, and web request headers) */ - abstract class GenericDataSourceInstance extends FlowAwareElement { - final override DataFlowNode getInputNode() { none() } + abstract class GenericSourceInstance extends FlowAwareElement { + final override ConsumerInputDataFlowNode getInputNode() { none() } abstract string getInternalType(); string getAdditionalDescription() { none() } } - abstract class GenericConstantOrAllocationSource extends GenericDataSourceInstance { - final override string getInternalType() { result = "ConstantData" } // TODO: toString of source? + /** + * An element that has a constant value and is a generic source of data. + */ + abstract class GenericValueSourceInstance extends GenericSourceInstance { } + + /** + * An element with a constant value, such as a literal. + */ + abstract class GenericConstantSourceInstance extends GenericValueSourceInstance { + final override string getInternalType() { result = "Constant" } } - abstract class GenericExternalCallSource extends GenericDataSourceInstance { + /** + * An element representing statically or dynamically allocated data. + */ + abstract class GenericAllocationSourceInstance extends GenericValueSourceInstance { + final override string getInternalType() { result = "Allocation" } + } + + /** + * An element that does not have a determinable constant value and is a generic source of data. + */ + abstract class GenericNoValueSourceInstance extends GenericSourceInstance { } + + /** + * A call to or an output argument of an external function with no definition. + */ + abstract class GenericExternalCallSource extends GenericNoValueSourceInstance { final override string getInternalType() { result = "ExternalCall" } // TODO: call target name or toString of source? } - abstract class GenericUnreferencedParameterSource extends GenericDataSourceInstance { + /** + * A parameter of a function which has no identifiable callsite. + */ + abstract class GenericUnreferencedParameterSource extends GenericNoValueSourceInstance { final override string getInternalType() { result = "Parameter" } // TODO: toString of source? } - abstract class GenericRemoteDataSource extends GenericDataSourceInstance { + /** + * A source of remote or external data, such as web request headers. + */ + abstract class GenericRemoteDataSource extends GenericNoValueSourceInstance { + // TODO: avoid duplication with the above types?.. perhaps define the above generically then override final override string getInternalType() { result = "RemoteData" } // TODO: toString of source? } - abstract class GenericLocalDataSource extends GenericDataSourceInstance { + /** + * A source of local or environment data, such as environment variables or a local filesystem. + */ + abstract class GenericLocalDataSource extends GenericNoValueSourceInstance { + // TODO: avoid duplication with the above types final override string getInternalType() { result = "LocalData" } // TODO: toString of source? } @@ -185,7 +243,7 @@ module CryptographyBase Input> { * An element that consumes _known_ or _unknown_ cryptographic assets. * * Note that known assets are to be modeled explicitly with the `getAKnownSource` predicate, whereas - * unknown assets are modeled implicitly via flow analysis from any `GenericDataSourceInstance` to this element. + * unknown assets are modeled implicitly via flow analysis from any `GenericSourceInstance` to this element. * * A consumer can consume multiple instances and types of assets at once, e.g., both a `PaddingAlgorithm` and `CipherAlgorithm`. */ @@ -196,23 +254,46 @@ module CryptographyBase Input> { override DataFlowNode getOutputNode() { none() } - // for internal use only - final GenericDataSourceInstance getAnUnknownSource() { + final GenericSourceInstance getAGenericSource() { result.flowsTo(this) and not result = this.getAKnownSource() } - final GenericSourceNode getAnUnknownSourceNode() { - result.asElement() = this.getAnUnknownSource() + final GenericSourceNode getAGenericSourceNode() { + result.asElement() = this.getAGenericSource() } final NodeBase getAKnownSourceNode() { result.asElement() = this.getAKnownSource() } final LocatableElement getASource() { - result = this.getAnUnknownSource() or + result = this.getAGenericSource() or result = this.getAKnownSource() } } + /** + * A generic value consumer, e.g. for inputs such as key length. + * TODO: type hints or per-instantiation type hint config on the source/sink pairs. + */ + final private class GenericValueConsumer extends ConsumerElement { + ConsumerInputDataFlowNode input; + + GenericValueConsumer() { + ( + exists(KeyCreationOperationInstance op | input = op.getKeySizeConsumer()) + or + exists(KeyDerivationOperationInstance op | + input = op.getIterationCountConsumer() or + input = op.getOutputKeySizeConsumer() + ) + ) and + this = Input::dfn_to_element(input) + } + + final override KnownElement getAKnownSource() { none() } + + final override ConsumerInputDataFlowNode getInputNode() { result = input } + } + abstract class AlgorithmValueConsumer extends ConsumerElement { /** * DO NOT USE. @@ -279,45 +360,49 @@ module CryptographyBase Input> { } final private class NonceArtifactConsumer extends ArtifactConsumerAndInstance { - DataFlowNode inputNode; + ConsumerInputDataFlowNode inputNode; NonceArtifactConsumer() { exists(CipherOperationInstance op | inputNode = op.getNonceConsumer()) and this = Input::dfn_to_element(inputNode) } - final override DataFlowNode getInputNode() { result = inputNode } + final override ConsumerInputDataFlowNode getInputNode() { result = inputNode } } - final private class CipherInputArtifactConsumer extends ArtifactConsumerAndInstance { - DataFlowNode inputNode; + final private class MessageArtifactConsumer extends ArtifactConsumerAndInstance { + ConsumerInputDataFlowNode inputNode; - CipherInputArtifactConsumer() { - exists(CipherOperationInstance op | inputNode = op.getInputConsumer()) and + MessageArtifactConsumer() { + ( + exists(CipherOperationInstance op | inputNode = op.getInputConsumer()) + or + exists(KeyDerivationOperationInstance op | inputNode = op.getInputConsumer()) + or + exists(MACOperationInstance op | inputNode = op.getMessageConsumer()) + ) and this = Input::dfn_to_element(inputNode) } - final override DataFlowNode getInputNode() { result = inputNode } + final override ConsumerInputDataFlowNode getInputNode() { result = inputNode } } - final private class MACInputArtifactConsumer extends ArtifactConsumerAndInstance { - DataFlowNode inputNode; + final private class SaltArtifactConsumer extends ArtifactConsumerAndInstance { + ConsumerInputDataFlowNode inputNode; - MACInputArtifactConsumer() { - exists(MACOperationInstance op | inputNode = op.getMessageConsumer()) and + SaltArtifactConsumer() { + exists(KeyDerivationOperationInstance op | inputNode = op.getSaltConsumer()) and this = Input::dfn_to_element(inputNode) } - final override DataFlowNode getInputNode() { result = inputNode } + final override ConsumerInputDataFlowNode getInputNode() { result = inputNode } } // Output artifacts are determined solely by the element that produces them. - // Implementation guidance: these *do* need to be defined generically at the language-level - // in order for a flowsTo to be defined. At the per-modeling-instance level, extend that language-level class! abstract class OutputArtifactInstance extends ArtifactInstance { override predicate isConsumerArtifact() { none() } - override DataFlowNode getInputNode() { none() } + override ConsumerInputDataFlowNode getInputNode() { none() } final override predicate flowsTo(FlowAwareElement other) { Input::artifactOutputFlowsToGenericInput(this.getOutputNode(), other.getInputNode()) @@ -365,17 +450,20 @@ module CryptographyBase Input> { } final class KeyArtifactConsumer extends KeyArtifactInstance, ArtifactConsumerAndInstance { - DataFlowNode inputNode; + ConsumerInputDataFlowNode inputNode; // TODO: key type hint? e.g. hint: private || public KeyArtifactConsumer() { - exists(CipherOperationInstance op | inputNode = op.getKeyConsumer()) and + ( + exists(CipherOperationInstance op | inputNode = op.getKeyConsumer()) or + exists(MACOperationInstance op | inputNode = op.getKeyConsumer()) + ) and this = Input::dfn_to_element(inputNode) } override KeyArtifactType getKeyType() { result instanceof TUnknownKeyType } - final override DataFlowNode getInputNode() { result = inputNode } + final override ConsumerInputDataFlowNode getInputNode() { result = inputNode } } /** @@ -390,17 +478,17 @@ module CryptographyBase Input> { /** * Gets the consumer of nonces/IVs associated with this cipher operation. */ - abstract DataFlowNode getNonceConsumer(); + abstract ConsumerInputDataFlowNode getNonceConsumer(); /** * Gets the consumer of plaintext or ciphertext input associated with this cipher operation. */ - abstract DataFlowNode getInputConsumer(); + abstract ConsumerInputDataFlowNode getInputConsumer(); /** * Gets the consumer of a key. */ - abstract DataFlowNode getKeyConsumer(); + abstract ConsumerInputDataFlowNode getKeyConsumer(); /** * Gets the output artifact of this cipher operation. @@ -513,12 +601,12 @@ module CryptographyBase Input> { /** * Gets the message input used in this operation. */ - abstract DataFlowNode getMessageConsumer(); + abstract ConsumerInputDataFlowNode getMessageConsumer(); /** * Gets the key used in this operation. */ - abstract DataFlowNode getKeyConsumer(); + abstract ConsumerInputDataFlowNode getKeyConsumer(); } abstract class HMACAlgorithmInstance extends MACAlgorithmInstance { @@ -557,10 +645,6 @@ module CryptographyBase Input> { abstract int getDigestLength(); } - abstract class KeyDerivationOperationInstance extends OperationInstance { } - - abstract class KeyDerivationAlgorithmInstance extends AlgorithmInstance { } - abstract private class KeyCreationOperationInstance extends OperationInstance { abstract string getKeyCreationTypeDescription(); @@ -574,16 +658,69 @@ module CryptographyBase Input> { */ abstract KeyArtifactType getOutputKeyType(); - /** - * Gets the key size of the key produced by this operation. - */ - string getKeySize() { none() } // TODO: punt, might need a generic value consumer? + // Defaults or fixed values + abstract string getKeySizeFixed(); + + // Consumer input nodes + abstract ConsumerInputDataFlowNode getKeySizeConsumer(); final KeyArtifactOutputInstance getKeyArtifactOutputInstance() { result.getOutputNode() = this.getOutputKeyArtifact() } } + abstract class KeyDerivationOperationInstance extends KeyCreationOperationInstance { + final override KeyArtifactType getOutputKeyType() { result instanceof TSymmetricKeyType } + + final override string getKeyCreationTypeDescription() { result = "KeyDerivation" } + + // Defaults or fixed values + abstract string getIterationCountFixed(); + + abstract string getOutputKeySizeFixed(); + + // Generic consumer input nodes + abstract ConsumerInputDataFlowNode getIterationCountConsumer(); + + abstract ConsumerInputDataFlowNode getOutputKeySizeConsumer(); + + // Artifact consumer input nodes + abstract ConsumerInputDataFlowNode getInputConsumer(); + + abstract ConsumerInputDataFlowNode getSaltConsumer(); + } + + newtype TKeyDerivationType = + PBKDF2() or + PBES() or + HKDF() or + ARGON2() or + OtherKeyDerivationType() + + abstract class KeyDerivationAlgorithmInstance extends AlgorithmInstance { + /** + * Gets the type of this key derivation algorithm, e.g., "PBKDF2" or "HKDF". + */ + abstract TKeyDerivationType getKDFType(); + + /** + * Gets the isolated name as it appears in source, e.g., "PBKDF2WithHmacSHA256" in "PBKDF2WithHmacSHA256/UnrelatedInformation". + */ + abstract string getRawKDFAlgorithmName(); + } + + abstract class PBKDF2AlgorithmInstance extends KeyDerivationAlgorithmInstance { + PBKDF2AlgorithmInstance() { this.getKDFType() instanceof PBKDF2 } + + /** + * Gets the HMAC algorithm used by this PBKDF2 algorithm. + * + * Note: Other PRFs are not supported, as most cryptographic libraries + * only support HMAC for PBKDF2's PRF input. + */ + abstract AlgorithmValueConsumer getHMACAlgorithmValueConsumer(); + } + abstract class KeyGenerationOperationInstance extends KeyCreationOperationInstance { final override string getKeyCreationTypeDescription() { result = "KeyGeneration" } } @@ -601,11 +738,13 @@ module CryptographyBase Input> { { class Union extends LocatableElement { Union() { + // Either an AlgorithmInstance this instanceof Alg or + // Or an AlgorithmValueConsumer with unknown sources and no known sources isCandidateAVC(this) and not exists(this.(AlgorithmValueConsumer).getAKnownAlgorithmSource()) and - exists(this.(AlgorithmValueConsumer).getAnUnknownSource()) + exists(this.(AlgorithmValueConsumer).getAGenericSource()) } Alg asAlg() { result = this } @@ -624,7 +763,12 @@ module CryptographyBase Input> { } private predicate isMACAVC(AlgorithmValueConsumer avc) { - exists(MACOperationInstance op | op.getAnAlgorithmValueConsumer() = avc) + exists(MACOperationInstance op | op.getAnAlgorithmValueConsumer() = avc) or + exists(PBKDF2AlgorithmInstance alg | avc = alg.getHMACAlgorithmValueConsumer()) + } + + private predicate isKeyDerivationAVC(AlgorithmValueConsumer avc) { + exists(KeyDerivationOperationInstance op | op.getAnAlgorithmValueConsumer() = avc) } final private class CipherAlgorithmInstanceOrValueConsumer = @@ -633,21 +777,24 @@ module CryptographyBase Input> { final private class HashAlgorithmInstanceOrValueConsumer = AlgorithmInstanceOrValueConsumer::Union; - private class MACAlgorithmInstanceOrValueConsumer = + final private class MACAlgorithmInstanceOrValueConsumer = AlgorithmInstanceOrValueConsumer::Union; + final private class KeyDerivationAlgorithmInstanceOrValueConsumer = + AlgorithmInstanceOrValueConsumer::Union; + private newtype TNode = // Artifacts (data that is not an operation or algorithm, e.g., a key) TDigest(DigestArtifactInstance e) or TKey(KeyArtifactInstance e) or - TNonce(NonceArtifactConsumer e) or - TCipherInput(CipherInputArtifactConsumer e) or TCipherOutput(CipherOutputArtifactInstance e) or - TMACMessageInput(MACInputArtifactConsumer e) or + // Input artifact nodes (synthetic, used to differentiate input as entities) + TNonceInput(NonceArtifactConsumer e) or + TMessageInput(MessageArtifactConsumer e) or + TSaltInput(SaltArtifactConsumer e) or TRandomNumberGeneration(RandomNumberGenerationInstance e) { e.flowsTo(_) } or // Operations (e.g., hashing, encryption) THashOperation(HashOperationInstance e) or - TKeyDerivationOperation(KeyDerivationOperationInstance e) or TCipherOperation(CipherOperationInstance e) or TKeyEncapsulationOperation(KeyEncapsulationOperationInstance e) or TMACOperation(MACOperationInstance e) or @@ -657,7 +804,7 @@ module CryptographyBase Input> { TCipherAlgorithm(CipherAlgorithmInstanceOrValueConsumer e) or TEllipticCurveAlgorithm(EllipticCurveAlgorithmInstance e) or THashAlgorithm(HashAlgorithmInstanceOrValueConsumer e) or - TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstance e) or + TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstanceOrValueConsumer e) or TKeyEncapsulationAlgorithm(KeyEncapsulationAlgorithmInstance e) or TMACAlgorithm(MACAlgorithmInstanceOrValueConsumer e) or // Non-standalone Algorithms (e.g., Mode, Padding) @@ -670,8 +817,15 @@ module CryptographyBase Input> { TKeyAgreementHybridCryptosystem(CipherAlgorithmInstance ka) or TAsymmetricEncryptionMacHybridCryptosystem(CipherAlgorithmInstance enc) or TPostQuantumHybridCryptosystem(CipherAlgorithmInstance enc) or - // Unknown source node - TGenericSourceNode(GenericDataSourceInstance e) { e.flowsTo(_) } + // Generic source nodes + TGenericSourceNode(GenericSourceInstance e) { + // An element modelled as a `GenericSourceInstance` can also be modelled as a `KnownElement` + // For example, a string literal "AES" could be a generic constant but also an algorithm instance. + // Only create generic nodes tied to instances which are not also a `KnownElement`. + not e instanceof KnownElement and + // Only create nodes for generic sources which flow to other elements + e.flowsTo(_) + } /** * The base class for all cryptographic assets, such as operations and algorithms. @@ -689,11 +843,12 @@ module CryptographyBase Input> { * * _Example 1_: A seed of a random number generation algorithm has meaning beyond its value, as its reuse in multiple * random number generation algorithms is more relevant than its underlying value. In contrast, a key size is only - * relevant to analysis in terms of its underlying value. Therefore, an RNG seed is a node; a key size is not. + * relevant to analysis in terms of its underlying value. Therefore, an RNG seed is a node; a key size is not. However, + * the key size might have a `GenericSourceNode` source, even if it itself is not a node. * * _Example 2_: A salt for a key derivation function *is* an `ArtifactNode`. * - * _Example 3_: The iteration count of a key derivation function is *not* a node. + * _Example 3_: The iteration count of a key derivation function is *not* a node, but it may link to a generic node. * * _Example 4_: A nonce for a cipher operation *is* an `ArtifactNode`. */ @@ -743,11 +898,32 @@ module CryptographyBase Input> { predicate isExcludedFromGraph() { none() } } + signature string getDefaultValueSig(); + + signature ConsumerInputDataFlowNode getConsumerSig(); + + signature class NodeBaseSig instanceof NodeBase; + + module PropertyOutput { + bindingset[root] + predicate get(NodeBase root, string value, Location location) { + if not exists(getDefault()) and not exists(getConsumer().getConsumer().getASource()) + then value instanceof UnknownPropertyValue and location instanceof UnknownLocation + else ( + if exists(getDefault()) + then + value = "Default:" + getDefault() and + location = root.getLocation() + else node_as_property(getConsumer().getConsumer().getAGenericSourceNode(), value, location) + ) + } + } + /** * A generic source node is a source of data that is not resolvable to a specific value or type. */ private class GenericSourceNode extends NodeBase, TGenericSourceNode { - GenericDataSourceInstance instance; + GenericSourceInstance instance; GenericSourceNode() { this = TGenericSourceNode(instance) } @@ -765,12 +941,74 @@ module CryptographyBase Input> { } override predicate isExcludedFromGraph() { - not exists(NodeBase other | not other = this and other.getChild(_) = this) + // Exclude generic source instances that are not child nodes of another node + not exists(NodeBase other | other != this and other.getChild(_) = this) } } class AssetNode = NodeBase; + /** + * A cryptographic operation, such as hashing or encryption. + */ + abstract class OperationNode extends AssetNode { + /** + * Holds if `node` is a potential candidate for a known algorithm node. + * This predicate should be used to restrict the set of candidate algorithm node types. + */ + abstract predicate isCandidateKnownAlgorithmNode(AlgorithmNode node); + + /** + * Gets the algorithm or generic source nodes consumed as an algorithm associated with this operation. + */ + NodeBase getAnAlgorithmOrGenericSource() { + result = this.getAKnownAlgorithm() or + result = + this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAGenericSourceNode() + } + + /** + * Gets a known algorithm associated with this operation, subject to `isCandidateKnownAlgorithmNode`. + */ + AlgorithmNode getAKnownAlgorithm() { + result = + this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() and + this.isCandidateKnownAlgorithmNode(result) + } + + override NodeBase getChild(string edgeName) { + result = super.getChild(edgeName) + or + // [KNOWN_OR_UNKNOWN] + edgeName = "Algorithm" and + if exists(this.getAnAlgorithmOrGenericSource()) + then result = this.getAnAlgorithmOrGenericSource() + else result = this + } + } + + abstract class AlgorithmNode extends AssetNode { + /** + * Gets the name of this algorithm, e.g., "AES" or "SHA". + */ + abstract string getAlgorithmName(); + + /** + * Gets the raw name of this algorithm from source (no parsing or formatting) + */ + abstract string getRawAlgorithmName(); + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + // [ONLY_KNOWN] + key = "Name" and value = this.getAlgorithmName() and location = this.getLocation() + or + // [ONLY_KNOWN] + key = "RawName" and value = this.getRawAlgorithmName() and location = this.getLocation() + } + } + /** * An artifact is an instance of data that is used in a cryptographic operation or produced by one. */ @@ -803,24 +1041,50 @@ module CryptographyBase Input> { result = super.getChild(edgeName) or // [KNOWN_OR_UNKNOWN] - edgeName = this.getSourceNodeRelationship() and // only holds if not set to none() + edgeName = this.getSourceNodeRelationship() and // TODO: only holds if not set to none().. revisit this if exists(this.getSourceNode()) then result = this.getSourceNode() else result = this } } /** - * A nonce or initialization vector + * A nonce or initialization vector input */ - final class NonceArtifactNode extends ArtifactNode, TNonce { + final class NonceArtifactNode extends ArtifactNode, TNonceInput { NonceArtifactConsumer instance; - NonceArtifactNode() { this = TNonce(instance) } + NonceArtifactNode() { this = TNonceInput(instance) } final override string getInternalType() { result = "Nonce" } override LocatableElement asElement() { result = instance } } + /** + * A message or plaintext/ciphertext input + */ + final class MessageArtifactNode extends ArtifactNode, TMessageInput { + MessageArtifactConsumer instance; + + MessageArtifactNode() { this = TMessageInput(instance) } + + final override string getInternalType() { result = "Message" } + + override LocatableElement asElement() { result = instance } + } + + /** + * A salt input + */ + final class SaltArtifactNode extends ArtifactNode, TSaltInput { + SaltArtifactConsumer instance; + + SaltArtifactNode() { this = TSaltInput(instance) } + + final override string getInternalType() { result = "Salt" } + + override LocatableElement asElement() { result = instance } + } + /** * Output text from a cipher operation */ @@ -836,19 +1100,6 @@ module CryptographyBase Input> { override string getSourceNodeRelationship() { none() } } - /** - * Input text to a cipher operation - */ - final class CipherInputNode extends ArtifactNode, TCipherInput { - CipherInputArtifactConsumer instance; - - CipherInputNode() { this = TCipherInput(instance) } - - final override string getInternalType() { result = "CipherInput" } - - override LocatableElement asElement() { result = instance } - } - /** * A source of random number generation */ @@ -876,30 +1127,28 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } - /** - * Gets the algorithm or unknown source nodes consumed as an algorithm associated with this operation. - */ - NodeBase getAnAlgorithmOrUnknown() { + NodeBase getAKnownAlgorithmOrGenericSourceNode() { result = this.getAKnownAlgorithm() or result = - this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAnUnknownSourceNode() + instance + .(KeyCreationOperationInstance) + .getAnAlgorithmValueConsumer() + .getAGenericSourceNode() } - /** - * Gets a known algorithm associated with this operation - */ CipherAlgorithmNode getAKnownAlgorithm() { result = - this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() + instance.(KeyCreationOperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() } override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or - // [KNOWN_OR_UNKNOWN] + // [KNOWN_OR_UNKNOWN] - only if asymmetric edgeName = "Algorithm" and - if exists(this.getAnAlgorithmOrUnknown()) - then result = this.getAnAlgorithmOrUnknown() + instance.getKeyType() instanceof TAsymmetricKeyType and + if exists(this.getAKnownAlgorithmOrGenericSourceNode()) + then result = this.getAKnownAlgorithmOrGenericSourceNode() else result = this } @@ -918,16 +1167,44 @@ module CryptographyBase Input> { } } - final class MACMessageInputNode extends ArtifactNode, TMACMessageInput { - MACInputArtifactConsumer instance; + /** + * A digest produced by a hash operation. + */ + final class DigestArtifactNode extends ArtifactNode, TDigest { + DigestArtifactInstance instance; - MACMessageInputNode() { this = TMACMessageInput(instance) } + DigestArtifactNode() { this = TDigest(instance) } - final override string getInternalType() { result = "MACMessageInput" } + final override string getInternalType() { result = "Digest" } override LocatableElement asElement() { result = instance } } + abstract class KeyCreationOperationNode extends OperationNode, TKeyCreationOperation { + KeyCreationOperationInstance instance; + + KeyCreationOperationNode() { this = TKeyCreationOperation(instance) } + + override LocatableElement asElement() { result = instance } + + override string getInternalType() { result = instance.getKeyCreationTypeDescription() } + + /** + * Gets the key artifact produced by this operation. + */ + KeyArtifactNode getOutputKeyArtifact() { + instance.getKeyArtifactOutputInstance() = result.asElement() + } + + override NodeBase getChild(string key) { + result = super.getChild(key) + or + // [ALWAYS_KNOWN] + key = "Output" and + result = this.getOutputKeyArtifact() + } + } + /** * A MAC operation that produces a MAC value. */ @@ -940,41 +1217,20 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } - MACMessageInputNode getAMessage() { - result.asElement() = Input::dfn_to_element(instance.getMessageConsumer()) + override predicate isCandidateKnownAlgorithmNode(AlgorithmNode node) { + node instanceof MACAlgorithmNode } - KeyArtifactNode getAKey() { - result.asElement() = Input::dfn_to_element(instance.getKeyConsumer()) + MessageArtifactNode getAMessage() { + result.asElement() = instance.getMessageConsumer().getConsumer() } - /** - * Gets the algorithm or unknown source nodes consumed as an algorithm associated with this operation. - */ - NodeBase getAMACAlgorithmOrUnknown() { - result = this.getAKnownMACAlgorithm() or - result = - this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAnUnknownSourceNode() - } - - /** - * Gets a known algorithm associated with this operation - */ - MACAlgorithmNode getAKnownMACAlgorithm() { - result = - this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() - } + KeyArtifactNode getAKey() { result.asElement() = instance.getKeyConsumer().getConsumer() } override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or // [KNOWN_OR_UNKNOWN] - edgeName = "Algorithm" and - if exists(this.getAMACAlgorithmOrUnknown()) - then result = this.getAMACAlgorithmOrUnknown() - else result = this - or - // [KNOWN_OR_UNKNOWN] edgeName = "Message" and if exists(this.getAMessage()) then result = this.getAMessage() else result = this or @@ -1006,9 +1262,6 @@ module CryptographyBase Input> { final private predicate macToNameMapping(TMACType type, string name) { type instanceof THMAC and name = "HMAC" - or - type instanceof TOtherMACType and - name = this.getRawAlgorithmName() } override string getAlgorithmName() { this.macToNameMapping(this.getMACType(), result) } @@ -1034,60 +1287,13 @@ module CryptographyBase Input> { } } - /** - * A digest produced by a hash operation. - */ - final class DigestArtifactNode extends ArtifactNode, TDigest { - DigestArtifactInstance instance; + class KeyGenerationOperationNode extends KeyCreationOperationNode { + KeyGenerationOperationInstance keyGenInstance; - DigestArtifactNode() { this = TDigest(instance) } + KeyGenerationOperationNode() { keyGenInstance = instance } - final override string getInternalType() { result = "Digest" } - - override LocatableElement asElement() { result = instance } - } - - /** - * A cryptographic operation, such as hashing or encryption. - */ - abstract class OperationNode extends AssetNode { } - - abstract class AlgorithmNode extends AssetNode { - /** - * Gets the name of this algorithm, e.g., "AES" or "SHA". - */ - abstract string getAlgorithmName(); - - /** - * Gets the raw name of this algorithm from source (no parsing or formatting) - */ - abstract string getRawAlgorithmName(); - - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) - or - // [ONLY_KNOWN] - key = "Name" and value = this.getAlgorithmName() and location = this.getLocation() - or - // [ONLY_KNOWN] - key = "RawName" and value = this.getRawAlgorithmName() and location = this.getLocation() - } - } - - final class KeyCreationOperationNode extends OperationNode, TKeyCreationOperation { - KeyCreationOperationInstance instance; - - KeyCreationOperationNode() { this = TKeyCreationOperation(instance) } - - override LocatableElement asElement() { result = instance } - - override string getInternalType() { result = instance.getKeyCreationTypeDescription() } - - /** - * Gets the key artifact produced by this operation. - */ - KeyArtifactNode getOutputKeyArtifact() { - instance.getKeyArtifactOutputInstance() = result.asElement() + override predicate isCandidateKnownAlgorithmNode(AlgorithmNode node) { + node instanceof CipherAlgorithmNode } override NodeBase getChild(string key) { @@ -1099,6 +1305,236 @@ module CryptographyBase Input> { } } + class KeyDerivationOperationNode extends KeyCreationOperationNode { + KeyDerivationOperationInstance kdfInstance; + + KeyDerivationOperationNode() { kdfInstance = instance } + + MessageArtifactNode getInput() { + result.asElement() = kdfInstance.getInputConsumer().getConsumer() + } + + SaltArtifactNode getSalt() { + result.asElement().(SaltArtifactConsumer).getInputNode() = kdfInstance.getSaltConsumer() + } + + GenericSourceNode getIterationCount() { + result.asElement() = kdfInstance.getIterationCountConsumer().getConsumer().getAGenericSource() + } + + GenericSourceNode getOutputKeySize() { + result.asElement() = kdfInstance.getOutputKeySizeConsumer().getConsumer().getAGenericSource() + } + + override predicate isCandidateKnownAlgorithmNode(AlgorithmNode node) { + node instanceof KeyDerivationAlgorithmNode + } + + override NodeBase getChild(string key) { + result = super.getChild(key) + or + // [KNOWN_OR_UNKNOWN] + key = "Input" and + if exists(this.getInput()) then result = this.getInput() else result = this + or + // [KNOWN_OR_UNKNOWN] + key = "Salt" and + if exists(this.getSalt()) then result = this.getSalt() else result = this + } + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + // [ONLY_KNOWN] + key = "DefaultIterations" and + value = kdfInstance.getIterationCountFixed() and + location = this.getLocation() + or + // [ONLY_KNOWN] + key = "DefaultKeySize" and + value = kdfInstance.getKeySizeFixed() and + location = this.getLocation() + or + // [ONLY_KNOWN] - TODO: refactor for known unknowns + key = "Iterations" and + node_as_property(this.getIterationCount(), value, location) + or + // [ONLY_KNOWN] - TODO: refactor for known unknowns + key = "KeySize" and + node_as_property(this.getOutputKeySize(), value, location) + } + } + + class KeyDerivationAlgorithmNode extends AlgorithmNode, TKeyDerivationAlgorithm { + KeyDerivationAlgorithmInstanceOrValueConsumer instance; + + KeyDerivationAlgorithmNode() { this = TKeyDerivationAlgorithm(instance) } + + final override string getInternalType() { result = "KeyDerivationAlgorithm" } + + override LocatableElement asElement() { result = instance } + + final override string getRawAlgorithmName() { + result = instance.asAlg().getRawKDFAlgorithmName() + } + + final override string getAlgorithmName() { result = this.getRawAlgorithmName() } + } + + /** + * PBKDF2 key derivation function + */ + class PBKDF2AlgorithmNode extends KeyDerivationAlgorithmNode { + PBKDF2AlgorithmInstance pbkdf2Instance; + + PBKDF2AlgorithmNode() { pbkdf2Instance = instance.asAlg() } + + HMACAlgorithmNode getHMACAlgorithm() { + result.asElement() = pbkdf2Instance.getHMACAlgorithmValueConsumer().getASource() + } + + override NodeBase getChild(string key) { + result = super.getChild(key) + or + // [KNOWN_OR_UNKNOWN] + key = "PRF" and + if exists(this.getHMACAlgorithm()) then result = this.getHMACAlgorithm() else result = this + } + } + + // /** + // * PKCS12KDF key derivation function + // */ + // abstract class PKCS12KDF extends KeyDerivationWithDigestParameterNode { + // override string getAlgorithmName() { result = "PKCS12KDF" } + // /** + // * Gets the iteration count of this key derivation algorithm. + // */ + // abstract string getIterationCount(Location location); + // /** + // * Gets the raw ID argument specifying the intended use of the derived key. + // * + // * The intended use is defined in RFC 7292, appendix B.3, as follows: + // * + // * This standard specifies 3 different values for the ID byte mentioned above: + // * + // * 1. If ID=1, then the pseudorandom bits being produced are to be used + // * as key material for performing encryption or decryption. + // * + // * 2. If ID=2, then the pseudorandom bits being produced are to be used + // * as an IV (Initial Value) for encryption or decryption. + // * + // * 3. If ID=3, then the pseudorandom bits being produced are to be used + // * as an integrity key for MACing. + // */ + // abstract string getIDByte(Location location); + // override predicate properties(string key, string value, Location location) { + // super.properties(key, value, location) + // or + // ( + // // [KNOWN_OR_UNKNOWN] + // key = "Iterations" and + // if exists(this.getIterationCount(location)) + // then value = this.getIterationCount(location) + // else ( + // value instanceof UnknownPropertyValue and location instanceof UnknownLocation + // ) + // ) + // or + // ( + // // [KNOWN_OR_UNKNOWN] + // key = "IdByte" and + // if exists(this.getIDByte(location)) + // then value = this.getIDByte(location) + // else ( + // value instanceof UnknownPropertyValue and location instanceof UnknownLocation + // ) + // ) + // } + // } + // /** + // * scrypt key derivation function + // */ + // abstract class SCRYPT extends KeyDerivationAlgorithmNode { + // final override string getAlgorithmName() { result = "scrypt" } + // /** + // * Gets the iteration count (`N`) argument + // */ + // abstract string get_N(Location location); + // /** + // * Gets the block size (`r`) argument + // */ + // abstract string get_r(Location location); + // /** + // * Gets the parallelization factor (`p`) argument + // */ + // abstract string get_p(Location location); + // /** + // * Gets the derived key length argument + // */ + // abstract string getDerivedKeyLength(Location location); + // override predicate properties(string key, string value, Location location) { + // super.properties(key, value, location) + // or + // ( + // // [KNOWN_OR_UNKNOWN] + // key = "N" and + // if exists(this.get_N(location)) + // then value = this.get_N(location) + // else ( + // value instanceof UnknownPropertyValue and location instanceof UnknownLocation + // ) + // ) + // or + // ( + // // [KNOWN_OR_UNKNOWN] + // key = "r" and + // if exists(this.get_r(location)) + // then value = this.get_r(location) + // else ( + // value instanceof UnknownPropertyValue and location instanceof UnknownLocation + // ) + // ) + // or + // ( + // // [KNOWN_OR_UNKNOWN] + // key = "p" and + // if exists(this.get_p(location)) + // then value = this.get_p(location) + // else ( + // value instanceof UnknownPropertyValue and location instanceof UnknownLocation + // ) + // ) + // or + // ( + // // [KNOWN_OR_UNKNOWN] + // key = "KeyLength" and + // if exists(this.getDerivedKeyLength(location)) + // then value = this.getDerivedKeyLength(location) + // else ( + // value instanceof UnknownPropertyValue and location instanceof UnknownLocation + // ) + // ) + // } + // } + /* + * TODO: + * + * Rule: No newtype representing a type of algorithm should be modelled with multiple interfaces + * + * Example 1: HKDF and PKCS12KDF are both key derivation algorithms. + * However, PKCS12KDF also has a property: the iteration count. + * + * If we have HKDF and PKCS12KDF under TKeyDerivationType, + * someone modelling a library might try to make a generic identification of both of those algorithms. + * + * They will therefore not use the specialized type for PKCS12KDF, + * meaning "from PKCS12KDF algo select algo" will have no results. + * + * Example 2: Each type below represents a common family of elliptic curves, with a shared interface, i.e., + * predicates for library modellers to implement as well as the properties and edges reported. + */ + newtype TCipherOperationSubtype = TEncryptionMode() or TDecryptionMode() or @@ -1149,56 +1585,28 @@ module CryptographyBase Input> { override string getInternalType() { result = "CipherOperation" } - /** - * Gets the algorithm or unknown source nodes consumed as an algorithm associated with this operation. - */ - NodeBase getACipherAlgorithmOrUnknown() { - result = this.getAKnownCipherAlgorithm() or - result = - this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAnUnknownSourceNode() - } - - /** - * Gets a known algorithm associated with this operation - */ - CipherAlgorithmNode getAKnownCipherAlgorithm() { - result = - this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() + override predicate isCandidateKnownAlgorithmNode(AlgorithmNode node) { + node instanceof CipherAlgorithmNode } CipherOperationSubtype getCipherOperationSubtype() { result = instance.getCipherOperationSubtype() } - NonceArtifactNode getANonce() { - result.asElement() = - Input::dfn_to_element(this.asElement().(CipherOperationInstance).getNonceConsumer()) + NonceArtifactNode getANonce() { result.asElement() = instance.getNonceConsumer().getConsumer() } + + MessageArtifactNode getAnInputArtifact() { + result.asElement() = instance.getInputConsumer().getConsumer() } - CipherInputNode getAnInputArtifact() { - result.asElement() = - Input::dfn_to_element(this.asElement().(CipherOperationInstance).getInputConsumer()) - } + CipherOutputNode getAnOutputArtifact() { result.asElement() = instance.getOutputArtifact() } - CipherOutputNode getAnOutputArtifact() { - result.asElement() = this.asElement().(CipherOperationInstance).getOutputArtifact() - } - - KeyArtifactNode getAKey() { - result.asElement() = - Input::dfn_to_element(this.asElement().(CipherOperationInstance).getKeyConsumer()) - } + KeyArtifactNode getAKey() { result.asElement() = instance.getKeyConsumer().getConsumer() } override NodeBase getChild(string key) { result = super.getChild(key) or // [KNOWN_OR_UNKNOWN] - key = "Algorithm" and - if exists(this.getACipherAlgorithmOrUnknown()) - then result = this.getACipherAlgorithmOrUnknown() - else result = this - or - // [KNOWN_OR_UNKNOWN] key = "Nonce" and if exists(this.getANonce()) then result = this.getANonce() else result = this or @@ -1286,8 +1694,6 @@ module CryptographyBase Input> { type instanceof CFB and name = "CFB" or type instanceof OFB and name = "OFB" - or - type instanceof OtherMode and name = this.getRawAlgorithmName() } override string getAlgorithmName() { this.modeToNameMapping(this.getModeType(), result) } @@ -1326,8 +1732,6 @@ module CryptographyBase Input> { type instanceof NoPadding and name = "NoPadding" or type instanceof OAEP and name = "OAEP" - or - type instanceof OtherPadding and name = this.getRawAlgorithmName() } override string getAlgorithmName() { this.paddingToNameMapping(this.getPaddingType(), result) } @@ -1500,7 +1904,7 @@ module CryptographyBase Input> { type instanceof SM4 and name = "SM4" and s = Block() or type instanceof OtherCipherType and - name = this.getRawAlgorithmName() and + name instanceof UnknownPropertyValue and s = UnknownCipherStructureType() } @@ -1555,41 +1959,20 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } - /** - * Gets the algorithm or unknown source nodes consumed as an algorithm associated with this operation. - */ - NodeBase getAHashAlgorithmOrUnknown() { - result = this.getAKnownHashAlgorithm() or - result = - this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAnUnknownSourceNode() - } - - /** - * Gets a known algorithm associated with this operation - */ - HashAlgorithmNode getAKnownHashAlgorithm() { - result = - this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() + override predicate isCandidateKnownAlgorithmNode(AlgorithmNode node) { + node instanceof HashAlgorithmNode } /** * Gets the output digest node */ - DigestArtifactNode getDigest() { - result.asElement() = this.asElement().(HashOperationInstance).getDigestArtifact() - } + DigestArtifactNode getDigest() { result.asElement() = instance.getDigestArtifact() } - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) + override NodeBase getChild(string key) { + result = super.getChild(key) or // [KNOWN_OR_UNKNOWN] - edgeName = "Algorithm" and - if exists(this.getAHashAlgorithmOrUnknown()) - then result = this.getAHashAlgorithmOrUnknown() - else result = this - or - // [KNOWN_OR_UNKNOWN] - edgeName = "Digest" and + key = "Digest" and if exists(this.getDigest()) then result = this.getDigest() else result = this } } @@ -1652,8 +2035,6 @@ module CryptographyBase Input> { type instanceof SM3 and name = "SM3" or type instanceof WHIRLPOOL and name = "WHIRLPOOL" - or - type instanceof OtherHashType and name = this.getRawAlgorithmName() } /** @@ -1680,242 +2061,6 @@ module CryptographyBase Input> { } } - /** - * An operation that derives one or more keys from an input value. - */ - abstract class KeyDerivationOperationNode extends OperationNode, TKeyDerivationOperation { - final override Location getLocation() { - exists(LocatableElement le | this = TKeyDerivationOperation(le) and result = le.getLocation()) - } - - override string getInternalType() { result = "KeyDerivationOperation" } - } - - /** - * An algorithm that derives one or more keys from an input value. - * - * Only use this class to model UNKNOWN key derivation algorithms. - * - * For known algorithms, use the specialized classes, e.g., `HKDF` and `PKCS12KDF`. - */ - abstract class KeyDerivationAlgorithmNode extends AlgorithmNode, TKeyDerivationAlgorithm { - final override Location getLocation() { - exists(LocatableElement le | this = TKeyDerivationAlgorithm(le) and result = le.getLocation()) - } - - override string getInternalType() { result = "KeyDerivationAlgorithm" } - - override string getAlgorithmName() { result = this.getRawAlgorithmName() } - } - - /** - * An algorithm that derives one or more keys from an input value, using a configurable digest algorithm. - */ - abstract private class KeyDerivationWithDigestParameterNode extends KeyDerivationAlgorithmNode { - abstract HashAlgorithmNode getHashAlgorithm(); - - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) - or - ( - // [KNOWN_OR_UNKNOWN] - edgeName = "Uses" and - if exists(this.getHashAlgorithm()) then result = this.getHashAlgorithm() else result = this - ) - } - } - - /** - * HKDF key derivation function - */ - abstract class HKDFNode extends KeyDerivationWithDigestParameterNode { - final override string getAlgorithmName() { result = "HKDF" } - } - - /** - * PBKDF2 key derivation function - */ - abstract class PBKDF2Node extends KeyDerivationWithDigestParameterNode { - final override string getAlgorithmName() { result = "PBKDF2" } - - /** - * Gets the iteration count of this key derivation algorithm. - */ - abstract string getIterationCount(Location location); - - /** - * Gets the bit-length of the derived key. - */ - abstract string getKeyLength(Location location); - - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) - or - ( - // [KNOWN_OR_UNKNOWN] - key = "Iterations" and - if exists(this.getIterationCount(location)) - then value = this.getIterationCount(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - ) - or - ( - // [KNOWN_OR_UNKNOWN] - key = "KeyLength" and - if exists(this.getKeyLength(location)) - then value = this.getKeyLength(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - ) - } - } - - /** - * PKCS12KDF key derivation function - */ - abstract class PKCS12KDF extends KeyDerivationWithDigestParameterNode { - override string getAlgorithmName() { result = "PKCS12KDF" } - - /** - * Gets the iteration count of this key derivation algorithm. - */ - abstract string getIterationCount(Location location); - - /** - * Gets the raw ID argument specifying the intended use of the derived key. - * - * The intended use is defined in RFC 7292, appendix B.3, as follows: - * - * This standard specifies 3 different values for the ID byte mentioned above: - * - * 1. If ID=1, then the pseudorandom bits being produced are to be used - * as key material for performing encryption or decryption. - * - * 2. If ID=2, then the pseudorandom bits being produced are to be used - * as an IV (Initial Value) for encryption or decryption. - * - * 3. If ID=3, then the pseudorandom bits being produced are to be used - * as an integrity key for MACing. - */ - abstract string getIDByte(Location location); - - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) - or - ( - // [KNOWN_OR_UNKNOWN] - key = "Iterations" and - if exists(this.getIterationCount(location)) - then value = this.getIterationCount(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - ) - or - ( - // [KNOWN_OR_UNKNOWN] - key = "IdByte" and - if exists(this.getIDByte(location)) - then value = this.getIDByte(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - ) - } - } - - /** - * scrypt key derivation function - */ - abstract class SCRYPT extends KeyDerivationAlgorithmNode { - final override string getAlgorithmName() { result = "scrypt" } - - /** - * Gets the iteration count (`N`) argument - */ - abstract string get_N(Location location); - - /** - * Gets the block size (`r`) argument - */ - abstract string get_r(Location location); - - /** - * Gets the parallelization factor (`p`) argument - */ - abstract string get_p(Location location); - - /** - * Gets the derived key length argument - */ - abstract string getDerivedKeyLength(Location location); - - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) - or - ( - // [KNOWN_OR_UNKNOWN] - key = "N" and - if exists(this.get_N(location)) - then value = this.get_N(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - ) - or - ( - // [KNOWN_OR_UNKNOWN] - key = "r" and - if exists(this.get_r(location)) - then value = this.get_r(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - ) - or - ( - // [KNOWN_OR_UNKNOWN] - key = "p" and - if exists(this.get_p(location)) - then value = this.get_p(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - ) - or - ( - // [KNOWN_OR_UNKNOWN] - key = "KeyLength" and - if exists(this.getDerivedKeyLength(location)) - then value = this.getDerivedKeyLength(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - ) - } - } - - /* - * TODO: - * - * Rule: No newtype representing a type of algorithm should be modelled with multiple interfaces - * - * Example 1: HKDF and PKCS12KDF are both key derivation algorithms. - * However, PKCS12KDF also has a property: the iteration count. - * - * If we have HKDF and PKCS12KDF under TKeyDerivationType, - * someone modelling a library might try to make a generic identification of both of those algorithms. - * - * They will therefore not use the specialized type for PKCS12KDF, - * meaning "from PKCS12KDF algo select algo" will have no results. - * - * Example 2: Each type below represents a common family of elliptic curves, with a shared interface, i.e., - * predicates for library modellers to implement as well as the properties and edges reported. - */ - /** * Elliptic curve algorithms */ From ac96649a02e78549110002fd42dc240bbd1279aa Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 1 Apr 2025 16:15:49 -0400 Subject: [PATCH 076/656] Misc. modifications to support elliptic curves and hooking them up to keygeneration. --- java/ql/lib/experimental/Quantum/JCA.qll | 241 ++++++++++++++---- java/ql/lib/experimental/Quantum/Language.qll | 8 + .../codeql/cryptography/Model.qll | 172 +++++++++++-- 3 files changed, 341 insertions(+), 80 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 5cff0129b72..bce4b117522 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -6,6 +6,10 @@ import semmle.code.java.controlflow.Dominance module JCAModel { import Language + abstract class JCAAlgorithmInstance extends Crypto::AlgorithmInstance { + abstract Crypto::AlgorithmValueConsumer getConsumer(); + } + // TODO: Verify that the PBEWith% case works correctly bindingset[algo] predicate cipher_names(string algo) { @@ -49,6 +53,9 @@ module JCAModel { kdf.toUpperCase().matches(["PBKDF2With%", "PBEWith%"].toUpperCase()) } + bindingset[name] + predicate elliptic_curve_names(string name) { Crypto::isEllipticCurveAlgorithmName(name) } + bindingset[name] Crypto::TKeyDerivationType kdf_name_to_kdf_type(string name, string withSubstring) { name.matches("PBKDF2With%") and @@ -110,6 +117,12 @@ module JCAModel { string getPadding() { result = this.getValue().splitAt("/", 2) } } + class EllipticCurveStringLiteral extends StringLiteral { + EllipticCurveStringLiteral() { elliptic_curve_names(this.getValue()) } + + string getStandardEllipticCurveName() { result = this.getValue() } + } + class CipherGetInstanceCall extends Call { CipherGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "getInstance") @@ -139,9 +152,9 @@ module JCAModel { } /** - * Data-flow configuration modelling flow from a cipher string literal to a `CipherGetInstanceCall` argument. + * Data-flow configuration modelling flow from a cipher string literal to a value consumer argument. */ - private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { + private module CipherAlgorithmStringToFetchConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherStringLiteral } predicate isSink(DataFlow::Node sink) { @@ -149,7 +162,22 @@ module JCAModel { } } - module AlgorithmStringToFetchFlow = TaintTracking::Global; + module CipherAlgorithmStringToFetchFlow = + TaintTracking::Global; + + /** + * Data-flow configuration modelling flow from a cipher string literal to a value consumer argument. + */ + private module EllipticCurveAlgorithmStringToFetchConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof EllipticCurveStringLiteral } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::AlgorithmValueConsumer consumer | sink = consumer.getInputNode()) + } + } + + module EllipticCurveAlgorithmStringToFetchFlow = + TaintTracking::Global; /** * Note: padding and a mode of operation will only exist when the padding / mode (*and its type*) are determinable. @@ -160,8 +188,8 @@ module JCAModel { * * TODO: Model the case of relying on a provider default, but alert on it as a bad practice. */ - class CipherStringLiteralPaddingAlgorithmInstance extends CipherStringLiteralAlgorithmInstance, - Crypto::PaddingAlgorithmInstance instanceof CipherStringLiteral + class CipherStringLiteralPaddingAlgorithmInstance extends JCAAlgorithmInstance, + CipherStringLiteralAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof CipherStringLiteral { CipherStringLiteralPaddingAlgorithmInstance() { exists(super.getPadding()) } // TODO: provider defaults @@ -183,8 +211,8 @@ module JCAModel { } } - class CipherStringLiteralModeAlgorithmInstance extends CipherStringLiteralPaddingAlgorithmInstance, - Crypto::ModeOfOperationAlgorithmInstance instanceof CipherStringLiteral + class CipherStringLiteralModeAlgorithmInstance extends JCAAlgorithmInstance, + CipherStringLiteralPaddingAlgorithmInstance, Crypto::ModeOfOperationAlgorithmInstance instanceof CipherStringLiteral { CipherStringLiteralModeAlgorithmInstance() { exists(super.getMode()) } // TODO: provider defaults @@ -216,15 +244,141 @@ module JCAModel { } } - class CipherStringLiteralAlgorithmInstance extends Crypto::CipherAlgorithmInstance instanceof CipherStringLiteral + class KeyGeneratorGetInstanceCall extends MethodCall { + KeyGeneratorGetInstanceCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyGenerator", "getInstance") + or + this.getCallee().hasQualifiedName("java.security", "KeyPairGenerator", "getInstance") + } + + Expr getAlgorithmArg() { result = super.getArgument(0) } + } + + // For general elliptic curves, getInstance("EC") is used + // and java.security.spec.ECGenParameterSpec("") is what sets the specific curve. + // The result of ECGenParameterSpec is passed to KeyPairGenerator.initialize + // If the curve is not specified, the default is used. + // We would trace the use of this inside a KeyPairGenerator.initialize + class ECGenParameterSpecCall extends ClassInstanceExpr { + ECGenParameterSpecCall() { + this.(ClassInstanceExpr) + .getConstructedType() + .hasQualifiedName("java.security.spec", "ECGenParameterSpec") + } + + Expr getAlgorithmArg() { result = super.getArgument(0) } + + KeyPairGeneratorInitializeCall getInitializeConsumerCall() { + exists(DataFlow::Node sink | + ECGenParameterSpecCallToInitializeFlow::flow(DataFlow::exprNode(this), sink) and + result.getAnArgument() = sink.asExpr() + ) + } + } + + abstract class KeyGenAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { + // abstract predicate flowsToKeyGenerateCallQualifier(KeyGeneratorGenerateCall sink); + abstract DataFlow::Node getResultNode(); + } + + class KeyPairGeneratorInitializeCall extends MethodCall { + KeyPairGeneratorInitializeCall() { + this.getCallee().hasQualifiedName("java.security", "KeyPairGenerator", "initialize") + } + + Expr getKeyArg() { + result = this.getArgument(0) and + result.getType() instanceof IntegralType + } + } + + private module ECGenParameterSpecCallToInitializeConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof ECGenParameterSpecCall } + + predicate isSink(DataFlow::Node sink) { + exists(KeyPairGeneratorInitializeCall c | c.getAnArgument() = sink.asExpr()) + } + } + + module ECGenParameterSpecCallToInitializeFlow = + DataFlow::Global; + + class ECGenParameterSpecAlgorithmValueConsumer extends KeyGenAlgorithmValueConsumer { + ECGenParameterSpecCall call; + + ECGenParameterSpecAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } + + override DataFlow::Node getResultNode() { + // Traversing to the initialilzer directly and calling this the 'result' + // to simplify the trace. In theory you would trace from the call + // through the initializer, but we already have a trace to the initializer + // so using this instead of altering/creating data flow configs. + call.getInitializeConsumerCall().getQualifier() = result.asExpr() + } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + result.(JCAAlgorithmInstance).getConsumer() = this + } + } + + class KeyGeneratorGetInstanceAlgorithmValueConsumer extends KeyGenAlgorithmValueConsumer { + KeyGeneratorGetInstanceCall call; + + KeyGeneratorGetInstanceAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } + + override DataFlow::Node getResultNode() { result.asExpr() = call } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + // The source is any instance whose consumer is this + result.(JCAAlgorithmInstance).getConsumer() = this + } + } + + class EllipticCurveStringLiteralAlgorithmInstance extends JCAAlgorithmInstance, + Crypto::EllipticCurveAlgorithmInstance instanceof StringLiteral { Crypto::AlgorithmValueConsumer consumer; - CipherStringLiteralAlgorithmInstance() { - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + EllipticCurveStringLiteralAlgorithmInstance() { + // Trace a known elliptic curve algorithm string literal to a key gen consumer + EllipticCurveAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), + consumer.getInputNode()) } - Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } + override Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } + + override string getRawEllipticCurveAlgorithmName() { result = super.getValue() } + + override string getStandardCurveName() { result = this.getRawEllipticCurveAlgorithmName() } + + override Crypto::TEllipticCurveType getEllipticCurveFamily() { + Crypto::isEllipticCurveAlgorithm(this.getRawEllipticCurveAlgorithmName(), _, result) + } + + override string getKeySize() { + exists(int keySize | + Crypto::isEllipticCurveAlgorithm(this.getRawEllipticCurveAlgorithmName(), keySize, _) and + result = keySize.toString() + ) + } + } + + class CipherStringLiteralAlgorithmInstance extends JCAAlgorithmInstance, + Crypto::CipherAlgorithmInstance instanceof CipherStringLiteral + { + // NOTE: this consumer is generic, but cipher algorithms can be consumed + // by getInstance as well as key generation + Crypto::AlgorithmValueConsumer consumer; + + CipherStringLiteralAlgorithmInstance() { + CipherAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + } + + override Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { result = this // TODO: provider defaults @@ -302,8 +456,8 @@ module JCAModel { override int getDigestLength() { exists(hash_name_to_hash_type(hashName, result)) } } - class OAEPPaddingAlgorithmInstance extends Crypto::OAEPPaddingAlgorithmInstance, - CipherStringLiteralPaddingAlgorithmInstance + class OAEPPaddingAlgorithmInstance extends JCAAlgorithmInstance, + Crypto::OAEPPaddingAlgorithmInstance, CipherStringLiteralPaddingAlgorithmInstance { override Crypto::HashAlgorithmInstance getOAEPEncodingHashAlgorithm() { result = this } @@ -323,7 +477,7 @@ module JCAModel { override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } CipherStringLiteral getOrigin(string value) { - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), + CipherAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), DataFlow::exprNode(this.(Expr).getAChildExpr*())) and value = result.getValue() } @@ -651,7 +805,8 @@ module JCAModel { module KnownHashAlgorithmLiteralToMessageDigestFlow = DataFlow::Global; - class KnownHashAlgorithm extends Crypto::HashAlgorithmInstance instanceof StringLiteral { + class KnownHashAlgorithm extends JCAAlgorithmInstance, Crypto::HashAlgorithmInstance instanceof StringLiteral + { MessageDigestAlgorithmValueConsumer consumer; KnownHashAlgorithm() { @@ -660,7 +815,7 @@ module JCAModel { consumer.getInputNode()) } - MessageDigestAlgorithmValueConsumer getConsumer() { result = consumer } + override MessageDigestAlgorithmValueConsumer getConsumer() { result = consumer } override string getRawHashAlgorithmName() { result = this.(StringLiteral).getValue() } @@ -733,22 +888,10 @@ module JCAModel { } } - class KeyGeneratorCallAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { - KeyGeneratorGetInstanceCall call; - - KeyGeneratorCallAlgorithmValueConsumer() { this = call.getAlgorithmArg() } - - override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - result.(CipherStringLiteralAlgorithmInstance).getConsumer() = this - } - } - // flow from instance created by getInstance to generateKey - module KeyGeneratorGetInstanceToGenerateConfig implements DataFlow::ConfigSig { + module KeyGeneratorAlgValueConsumerToGenerateConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { - exists(KeyGeneratorGetInstanceCall call | src.asExpr() = call) + exists(KeyGenAlgorithmValueConsumer consumer | consumer.getResultNode() = src) } predicate isSink(DataFlow::Node sink) { @@ -756,23 +899,8 @@ module JCAModel { } } - module KeyGeneratorGetInstanceToGenerateFlow = - DataFlow::Global; - - class KeyGeneratorGetInstanceCall extends MethodCall { - KeyGeneratorGetInstanceCall() { - this.getCallee().hasQualifiedName("javax.crypto", "KeyGenerator", "getInstance") - or - this.getCallee().hasQualifiedName("java.security", "KeyPairGenerator", "getInstance") - } - - Expr getAlgorithmArg() { result = super.getArgument(0) } - - predicate flowsToKeyGenerateCallQualifier(KeyGeneratorGenerateCall sink) { - KeyGeneratorGetInstanceToGenerateFlow::flow(DataFlow::exprNode(this), - DataFlow::exprNode(sink.(MethodCall).getQualifier())) - } - } + module KeyGeneratorAlgValueConsumerToGenerateFlow = + DataFlow::Global; class KeyGeneratorGenerateCall extends Crypto::KeyGenerationOperationInstance instanceof MethodCall { @@ -791,8 +919,10 @@ module JCAModel { override Crypto::KeyArtifactType getOutputKeyType() { result = type } override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { - exists(KeyGeneratorGetInstanceCall getInstance | - getInstance.flowsToKeyGenerateCallQualifier(this) and result = getInstance.getAlgorithmArg() + exists(KeyGenAlgorithmValueConsumer consumer | + KeyGeneratorAlgValueConsumerToGenerateFlow::flow(consumer.getResultNode(), + DataFlow::exprNode(this.(Call).getQualifier())) and + result = consumer ) } @@ -879,7 +1009,8 @@ module JCAModel { module MACInitCallToMACOperationFlow = DataFlow::Global; - class KnownMACAlgorithm extends Crypto::MACAlgorithmInstance instanceof StringLiteral { + class KnownMACAlgorithm extends JCAAlgorithmInstance, Crypto::MACAlgorithmInstance instanceof StringLiteral + { MACGetInstanceAlgorithmValueConsumer consumer; KnownMACAlgorithm() { @@ -887,7 +1018,7 @@ module JCAModel { MACKnownAlgorithmToConsumerFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) } - MACGetInstanceAlgorithmValueConsumer getConsumer() { result = consumer } + override MACGetInstanceAlgorithmValueConsumer getConsumer() { result = consumer } override string getRawMACAlgorithmName() { result = super.getValue() } @@ -1039,7 +1170,8 @@ module JCAModel { } } - class KDFAlgorithmStringLiteral extends Crypto::KeyDerivationAlgorithmInstance instanceof StringLiteral + class KDFAlgorithmStringLiteral extends JCAAlgorithmInstance, + Crypto::KeyDerivationAlgorithmInstance instanceof StringLiteral { SecretKeyFactoryKDFAlgorithmValueConsumer consumer; @@ -1054,10 +1186,10 @@ module JCAModel { result = kdf_name_to_kdf_type(super.getValue(), _) } - SecretKeyFactoryKDFAlgorithmValueConsumer getConsumer() { result = consumer } + override SecretKeyFactoryKDFAlgorithmValueConsumer getConsumer() { result = consumer } } - class PBKDF2AlgorithmStringLiteral extends KDFAlgorithmStringLiteral, + class PBKDF2AlgorithmStringLiteral extends JCAAlgorithmInstance, KDFAlgorithmStringLiteral, Crypto::PBKDF2AlgorithmInstance, Crypto::HMACAlgorithmInstance, Crypto::HashAlgorithmInstance, Crypto::AlgorithmValueConsumer { @@ -1158,4 +1290,5 @@ module JCAModel { override string getIterationCountFixed() { none() } } + // TODO: flow the GCGenParametersSpecCall to an init, and the init to the operations } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 1621e9436c4..55d4f497f8e 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -95,6 +95,14 @@ class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { } class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceof Literal { + ConstantDataSource() { + // TODO: this is an API specific workaround for JCA, as 'EC' is a constant that may be used + // where typical algorithms are specified, but EC specifically means set up a + // default curve container, that will later be specified explicitly (or if not a default) + // curve is used. + this = any(Literal l | l.getValue() != "EC") + } + override DataFlow::Node getOutputNode() { result.asExpr() = this } override predicate flowsTo(Crypto::FlowAwareElement other) { diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 8252b513860..f202db6f8e6 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -622,7 +622,30 @@ module CryptographyBase Input> { abstract class KeyEncapsulationAlgorithmInstance extends AlgorithmInstance { } - abstract class EllipticCurveAlgorithmInstance extends AlgorithmInstance { } + abstract class EllipticCurveAlgorithmInstance extends AlgorithmInstance { + /** + * Gets the isolated name as it appears in source + * + * This name should not be parsed or formatted beyond isolating the raw name if necessary. + */ + abstract string getRawEllipticCurveAlgorithmName(); + + /** + * The 'standard' curve name, e.g., "P-256" or "secp256r1". + * meaning the full name of the curve, including the family, key size, and other + * typical parameters found on the name. In many cases this will + * be equivalent to `getRawEllipticCurveAlgorithmName()`, but not always + * (e.g., if the curve is specified through a raw NID). + * In cases like an NID, we want the standardized name so users can quickly + * understand what the curve is, while also parsing out the family and key size + * separately. + */ + abstract string getStandardCurveName(); + + abstract TEllipticCurveType getEllipticCurveFamily(); + + abstract string getKeySize(); + } abstract class HashOperationInstance extends OperationInstance { abstract DigestArtifactInstance getDigestArtifact(); @@ -783,6 +806,9 @@ module CryptographyBase Input> { final private class KeyDerivationAlgorithmInstanceOrValueConsumer = AlgorithmInstanceOrValueConsumer::Union; + final private class EllipticCurveAlgorithmInstanceOrValueConsumer = + AlgorithmInstanceOrValueConsumer::Union; + private newtype TNode = // Artifacts (data that is not an operation or algorithm, e.g., a key) TDigest(DigestArtifactInstance e) or @@ -802,7 +828,7 @@ module CryptographyBase Input> { TKeyCreationOperation(KeyCreationOperationInstance e) or // Algorithms (e.g., SHA-256, AES) TCipherAlgorithm(CipherAlgorithmInstanceOrValueConsumer e) or - TEllipticCurveAlgorithm(EllipticCurveAlgorithmInstance e) or + TEllipticCurveAlgorithm(EllipticCurveAlgorithmInstanceOrValueConsumer e) or THashAlgorithm(HashAlgorithmInstanceOrValueConsumer e) or TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstanceOrValueConsumer e) or TKeyEncapsulationAlgorithm(KeyEncapsulationAlgorithmInstance e) or @@ -2077,39 +2103,133 @@ module CryptographyBase Input> { ES() or OtherEllipticCurveType() - abstract class EllipticCurve extends AlgorithmNode, TEllipticCurveAlgorithm { - abstract string getKeySize(Location location); + private predicate isBrainpoolCurve(string curveName, int keySize) { + // ALL BRAINPOOL CURVES + keySize in [160, 192, 224, 256, 320, 384, 512] and + ( + curveName = "BRAINPOOLP" + keySize.toString() + "R1" + or + curveName = "BRAINPOOLP" + keySize.toString() + "T1" + ) + } - abstract TEllipticCurveType getCurveFamily(); + private predicate isSecCurve(string curveName, int keySize) { + // ALL SEC CURVES + keySize in [112, 113, 128, 131, 160, 163, 192, 193, 224, 233, 239, 256, 283, 384, 409, 521, 571] and + exists(string suff | suff in ["R1", "R2", "K1"] | + curveName = "SECT" + keySize.toString() + suff or + curveName = "SECP" + keySize.toString() + suff + ) + } + + private predicate isC2Curve(string curveName, int keySize) { + // ALL C2 CURVES + keySize in [163, 176, 191, 208, 239, 272, 304, 359, 368, 431] and + exists(string pre, string suff | + pre in ["PNB", "ONB", "TNB"] and suff in ["V1", "V2", "V3", "V4", "V5", "W1", "R1"] + | + curveName = "C2" + pre + keySize.toString() + suff + ) + } + + private predicate isPrimeCurve(string curveName, int keySize) { + // ALL PRIME CURVES + keySize in [192, 239, 256] and + exists(string suff | suff in ["V1", "V2", "V3"] | + curveName = "PRIME" + keySize.toString() + suff + ) + } + + private predicate isNumsCurve(string curveName, int keySize) { + // ALL NUMS CURVES + keySize in [256, 384, 512] and + exists(string suff | suff in ["T1"] | curveName = "NUMSP" + keySize.toString() + suff) + } + + bindingset[curveName] + predicate isEllipticCurveAlgorithmName(string curveName) { + isEllipticCurveAlgorithm(curveName, _, _) + } + + /** + * Holds if `name` corresponds to a known elliptic curve. + */ + bindingset[rawName] + predicate isEllipticCurveAlgorithm(string rawName, int keySize, TEllipticCurveType curveFamily) { + exists(string curveName | curveName = rawName.toUpperCase() | + isSecCurve(curveName, keySize) and curveFamily = SEC() + or + isBrainpoolCurve(curveName, keySize) and curveFamily = BRAINPOOL() + or + isC2Curve(curveName, keySize) and curveFamily = C2() + or + isPrimeCurve(curveName, keySize) and curveFamily = PRIME() + or + isNumsCurve(curveName, keySize) and curveFamily = NUMS() + or + curveName = "ES256" and keySize = 256 and curveFamily = ES() + or + curveName = "CURVE25519" and keySize = 255 and curveFamily = CURVE25519() + or + curveName = "X25519" and keySize = 255 and curveFamily = CURVE25519() + or + curveName = "ED25519" and keySize = 255 and curveFamily = CURVE25519() + or + curveName = "CURVE448" and keySize = 448 and curveFamily = CURVE448() + or + curveName = "ED448" and keySize = 448 and curveFamily = CURVE448() + or + curveName = "X448" and keySize = 448 and curveFamily = CURVE448() + or + curveName = "SM2" and keySize in [256, 512] and curveFamily = SM2() + ) + } + + final class EllipticCurveNode extends AlgorithmNode, TEllipticCurveAlgorithm { + EllipticCurveAlgorithmInstanceOrValueConsumer instance; + + EllipticCurveNode() { this = TEllipticCurveAlgorithm(instance) } + + override string getInternalType() { result = "EllipticCurveAlgorithm" } + + final override string getRawAlgorithmName() { + result = instance.asAlg().getRawEllipticCurveAlgorithmName() + } + + // NICK QUESTION: do I repeat the key size and curve family predicates here as wrappers of the instance? + override LocatableElement asElement() { result = instance } + + TEllipticCurveType getEllipticCurveFamily() { + result = instance.asAlg().getEllipticCurveFamily() + } override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or - // [KNOWN_OR_UNKNOWN] + // [ONLY_KNOWN] key = "KeySize" and - if exists(this.getKeySize(location)) - then value = this.getKeySize(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - // other properties, like field type are possible, but not modeled until considered necessary + value = instance.asAlg().getKeySize() and + location = this.getLocation() + or + key = "StdCurveName" and + value = instance.asAlg().getStandardCurveName().toUpperCase() and + location = this.getLocation() } override string getAlgorithmName() { result = this.getRawAlgorithmName().toUpperCase() } - - /** - * Mandating that for Elliptic Curves specifically, users are responsible - * for providing as the 'raw' name, the official name of the algorithm. - * - * Casing doesn't matter, we will enforce further naming restrictions on - * `getAlgorithmName` by default. - * - * Rationale: elliptic curve names can have a lot of variation in their components - * (e.g., "secp256r1" vs "P-256"), trying to produce generalized set of properties - * is possible to capture all cases, but such modeling is likely not necessary. - * if all properties need to be captured, we can reassess how names are generated. - */ - abstract override string getRawAlgorithmName(); + // /** + // * Mandating that for Elliptic Curves specifically, users are responsible + // * for providing as the 'raw' name, the official name of the algorithm. + // * + // * Casing doesn't matter, we will enforce further naming restrictions on + // * `getAlgorithmName` by default. + // * + // * Rationale: elliptic curve names can have a lot of variation in their components + // * (e.g., "secp256r1" vs "P-256"), trying to produce generalized set of properties + // * is possible to capture all cases, but such modeling is likely not necessary. + // * if all properties need to be captured, we can reassess how names are generated. + // */ + // abstract override string getRawAlgorithmName(); } abstract class KEMAlgorithm extends TKeyEncapsulationAlgorithm, AlgorithmNode { From 50507586ac3faf9b00ff9a9d0c9fe47e3b92f88c Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Wed, 2 Apr 2025 19:44:57 +0200 Subject: [PATCH 077/656] Refactor output artifact type --- java/ql/lib/experimental/Quantum/JCA.qll | 6 +- java/ql/lib/experimental/Quantum/Language.qll | 14 ----- .../codeql/cryptography/Model.qll | 57 +++++++------------ 3 files changed, 24 insertions(+), 53 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 5cff0129b72..4a9082bf91c 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -419,7 +419,7 @@ module JCAModel { src.asExpr() instanceof CipherGetInstanceCall } - predicate isSink(DataFlow::Node sink, FlowState state) { none() } + predicate isSink(DataFlow::Node sink, FlowState state) { none() } // TODO: document this, but this is intentional (avoid cross products?) predicate isSink(DataFlow::Node sink) { exists(CipherOperationCall c | c.getQualifier() = sink.asExpr()) @@ -786,7 +786,7 @@ module JCAModel { type instanceof Crypto::TAsymmetricKeyType } - override DataFlow::Node getOutputKeyArtifact() { result.asExpr() = this } + override Crypto::ArtifactOutputDataFlowNode getOutputKeyArtifact() { result.asExpr() = this } override Crypto::KeyArtifactType getOutputKeyType() { result = type } @@ -1139,7 +1139,7 @@ module JCAModel { result.asExpr() = this.getInstantiation().getIterationCountArg() } - override DataFlow::Node getOutputKeyArtifact() { + override Crypto::ArtifactOutputDataFlowNode getOutputKeyArtifact() { result.asExpr() = this and super.getMethod().getReturnType().hasName("SecretKey") } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 1621e9436c4..9e27fedf7fa 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -191,19 +191,5 @@ module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { module GenericDataSourceUniversalFlow = TaintTracking::Global; -/* - * class LiteralOrGenericDataSource extends Element { - * DataFlow::Node node; - * - * LiteralOrGenericDataSource() { - * node = this.(Crypto::GenericSourceInstance).getOutputNode() or - * node.asExpr() = this.(Literal) - * } - * - * bindingset[other] - * predicate localFlowsTo(DataFlow::Node other) { DataFlow::localFlow(node, other) } - * } - */ - // Import library-specific modeling import JCA diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 8252b513860..33c75c556ef 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -41,6 +41,10 @@ module CryptographyBase Input> { ConsumerElement getConsumer() { result.getInputNode() = this } } + class ArtifactOutputDataFlowNode extends DataFlowNode { + OutputArtifactInstance getArtifact() { result.getOutputNode() = this } + } + final class UnknownPropertyValue extends string { UnknownPropertyValue() { this = "" } } @@ -461,7 +465,7 @@ module CryptographyBase Input> { this = Input::dfn_to_element(inputNode) } - override KeyArtifactType getKeyType() { result instanceof TUnknownKeyType } + override KeyArtifactType getKeyType() { result instanceof TUnknownKeyType } // A consumer node does not have a key type, refer to source (TODO: refine, should this be none()) final override ConsumerInputDataFlowNode getInputNode() { result = inputNode } } @@ -651,7 +655,7 @@ module CryptographyBase Input> { /** * Gets the key artifact produced by this operation. */ - abstract DataFlowNode getOutputKeyArtifact(); + abstract ArtifactOutputDataFlowNode getOutputKeyArtifact(); /** * Gets the key artifact type produced. @@ -898,29 +902,8 @@ module CryptographyBase Input> { predicate isExcludedFromGraph() { none() } } - signature string getDefaultValueSig(); - - signature ConsumerInputDataFlowNode getConsumerSig(); - - signature class NodeBaseSig instanceof NodeBase; - - module PropertyOutput { - bindingset[root] - predicate get(NodeBase root, string value, Location location) { - if not exists(getDefault()) and not exists(getConsumer().getConsumer().getASource()) - then value instanceof UnknownPropertyValue and location instanceof UnknownLocation - else ( - if exists(getDefault()) - then - value = "Default:" + getDefault() and - location = root.getLocation() - else node_as_property(getConsumer().getConsumer().getAGenericSourceNode(), value, location) - ) - } - } - /** - * A generic source node is a source of data that is not resolvable to a specific value or type. + * A generic source node is a source of data that is not resolvable to a specific asset. */ private class GenericSourceNode extends NodeBase, TGenericSourceNode { GenericSourceInstance instance; @@ -956,7 +939,7 @@ module CryptographyBase Input> { * Holds if `node` is a potential candidate for a known algorithm node. * This predicate should be used to restrict the set of candidate algorithm node types. */ - abstract predicate isCandidateKnownAlgorithmNode(AlgorithmNode node); + abstract predicate isCandidateAlgorithmNode(AlgorithmNode node); /** * Gets the algorithm or generic source nodes consumed as an algorithm associated with this operation. @@ -968,12 +951,12 @@ module CryptographyBase Input> { } /** - * Gets a known algorithm associated with this operation, subject to `isCandidateKnownAlgorithmNode`. + * Gets a known algorithm associated with this operation, subject to `isCandidateAlgorithmNode`. */ AlgorithmNode getAKnownAlgorithm() { result = this.asElement().(OperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() and - this.isCandidateKnownAlgorithmNode(result) + this.isCandidateAlgorithmNode(result) } override NodeBase getChild(string edgeName) { @@ -1147,9 +1130,11 @@ module CryptographyBase Input> { // [KNOWN_OR_UNKNOWN] - only if asymmetric edgeName = "Algorithm" and instance.getKeyType() instanceof TAsymmetricKeyType and - if exists(this.getAKnownAlgorithmOrGenericSourceNode()) - then result = this.getAKnownAlgorithmOrGenericSourceNode() - else result = this + ( + if exists(this.getAKnownAlgorithmOrGenericSourceNode()) + then result = this.getAKnownAlgorithmOrGenericSourceNode() + else result = this + ) } override predicate properties(string key, string value, Location location) { @@ -1217,7 +1202,7 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } - override predicate isCandidateKnownAlgorithmNode(AlgorithmNode node) { + override predicate isCandidateAlgorithmNode(AlgorithmNode node) { node instanceof MACAlgorithmNode } @@ -1292,7 +1277,7 @@ module CryptographyBase Input> { KeyGenerationOperationNode() { keyGenInstance = instance } - override predicate isCandidateKnownAlgorithmNode(AlgorithmNode node) { + override predicate isCandidateAlgorithmNode(AlgorithmNode node) { node instanceof CipherAlgorithmNode } @@ -1326,7 +1311,7 @@ module CryptographyBase Input> { result.asElement() = kdfInstance.getOutputKeySizeConsumer().getConsumer().getAGenericSource() } - override predicate isCandidateKnownAlgorithmNode(AlgorithmNode node) { + override predicate isCandidateAlgorithmNode(AlgorithmNode node) { node instanceof KeyDerivationAlgorithmNode } @@ -1585,7 +1570,7 @@ module CryptographyBase Input> { override string getInternalType() { result = "CipherOperation" } - override predicate isCandidateKnownAlgorithmNode(AlgorithmNode node) { + override predicate isCandidateAlgorithmNode(AlgorithmNode node) { node instanceof CipherAlgorithmNode } @@ -1904,7 +1889,7 @@ module CryptographyBase Input> { type instanceof SM4 and name = "SM4" and s = Block() or type instanceof OtherCipherType and - name instanceof UnknownPropertyValue and + name instanceof UnknownPropertyValue and // TODO: get rid of this hack to bind structure and type s = UnknownCipherStructureType() } @@ -1959,7 +1944,7 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } - override predicate isCandidateKnownAlgorithmNode(AlgorithmNode node) { + override predicate isCandidateAlgorithmNode(AlgorithmNode node) { node instanceof HashAlgorithmNode } From 697c9f0bb0e03272a6d6c964a4891582e1526697 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 4 Apr 2025 09:02:09 -0400 Subject: [PATCH 078/656] Elliptic curve AVCs are incorrect, but I'm not sure how to fix them generally. Putting in a stop gap to use 'isCipherAVC' for now. --- shared/cryptography/codeql/cryptography/Model.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 1c2e655314c..09f67f156c2 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -811,7 +811,7 @@ module CryptographyBase Input> { AlgorithmInstanceOrValueConsumer::Union; final private class EllipticCurveAlgorithmInstanceOrValueConsumer = - AlgorithmInstanceOrValueConsumer::Union; + AlgorithmInstanceOrValueConsumer::Union; private newtype TNode = // Artifacts (data that is not an operation or algorithm, e.g., a key) From a2fe19af38acc7e4a7acef3c61ff66ea93c6605a Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 4 Apr 2025 16:00:05 -0400 Subject: [PATCH 079/656] Initial progress on key agreement. --- java/ql/lib/experimental/Quantum/JCA.qll | 135 +++++++++++++++++- .../codeql/cryptography/Model.qll | 53 +++++++ 2 files changed, 186 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 2bce7fa6843..7d4b36ebe27 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -56,6 +56,9 @@ module JCAModel { bindingset[name] predicate elliptic_curve_names(string name) { Crypto::isEllipticCurveAlgorithmName(name) } + bindingset[name] + predicate key_agreement_names(string name) { Crypto::isKeyAgreementAlgorithmName(name) } + bindingset[name] Crypto::TKeyDerivationType kdf_name_to_kdf_type(string name, string withSubstring) { name.matches("PBKDF2With%") and @@ -123,6 +126,10 @@ module JCAModel { string getStandardEllipticCurveName() { result = this.getValue() } } + class KeyAgreementStringLiteral extends StringLiteral { + KeyAgreementStringLiteral() { key_agreement_names(this.getValue()) } + } + class CipherGetInstanceCall extends Call { CipherGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "getInstance") @@ -166,7 +173,7 @@ module JCAModel { TaintTracking::Global; /** - * Data-flow configuration modelling flow from a cipher string literal to a value consumer argument. + * Data-flow configuration modelling flow from a elliptic curve literal to a value consumer argument. */ private module EllipticCurveAlgorithmStringToFetchConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof EllipticCurveStringLiteral } @@ -211,6 +218,89 @@ module JCAModel { } } + /** + * Data-flow configuration modelling flow from a key agreement literal to a value consumer argument. + */ + private module KeyAgreementAlgorithmStringToFetchConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KeyAgreementStringLiteral } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::AlgorithmValueConsumer consumer | sink = consumer.getInputNode()) + } + } + + module KeyAgreementAlgorithmStringToFetchFlow = + TaintTracking::Global; + + class KeyAgreementInitCall extends MethodCall { + KeyAgreementInitCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "init") + } + + Expr getServerKeyArg() { result = this.getArgument(0) } + } + + private module KeyAgreementInitQualifierToSecretGenQualifierConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + exists(KeyAgreementInitCall init | src.asExpr() = init.getQualifier()) + } + + predicate isSink(DataFlow::Node sink) { + exists(KeyAgreementGenerateSecretCall c | sink.asExpr() = c.getQualifier()) + } + + /** + * Barrier if we go into another init, assume the second init overwrites the first + */ + predicate isBarrierIn(DataFlow::Node node) { isSource(node) } + } + + module KeyAgreementInitQualifierToSecretGenQualifierFlow = + DataFlow::Global; + + class KeyAgreementGenerateSecretCall extends MethodCall { + KeyAgreementGenerateSecretCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "generateSecret") + } + + KeyAgreementInitCall getKeyAgreementInitCall() { + KeyAgreementInitQualifierToSecretGenQualifierFlow::flow(DataFlow::exprNode(result + .getQualifier()), DataFlow::exprNode(this.getQualifier())) + } + } + + private module KeyAgreementAVCToInitQualifierConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + exists(KeyAgreementAlgorithmValueConsumer consumer | consumer.getResultNode() = src) + } + + predicate isSink(DataFlow::Node sink) { + exists(KeyAgreementInitCall init | sink.asExpr() = init.getQualifier()) + } + } + + module KeyAgreementAVCToInitQualifierFlow = + DataFlow::Global; + + class KeyAgreementSecretGenerationOperationInstance extends Crypto::KeyAgreementSecretGenerationOperationInstance instanceof KeyAgreementGenerateSecretCall + { + override Crypto::ConsumerInputDataFlowNode getServerKeyConsumer() { + this.(KeyAgreementGenerateSecretCall).getKeyAgreementInitCall().getServerKeyArg() = + result.asExpr() + } + + override Crypto::ConsumerInputDataFlowNode getPeerKeyConsumer() { + none() //TODO + } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + none() // TODO: key agreeement has it's own algorithm consumer, separate from the key + // TODO: the char pred must trace from the consumer to here, + // in theory, along that path we would get the init and doPhase, but can I just get those + // separately avoiding a complicated config state for dataflow? + } + } + class CipherStringLiteralModeAlgorithmInstance extends JCAAlgorithmInstance, CipherStringLiteralPaddingAlgorithmInstance, Crypto::ModeOfOperationAlgorithmInstance instanceof CipherStringLiteral { @@ -339,7 +429,7 @@ module JCAModel { } class EllipticCurveStringLiteralAlgorithmInstance extends JCAAlgorithmInstance, - Crypto::EllipticCurveAlgorithmInstance instanceof StringLiteral + Crypto::EllipticCurveAlgorithmInstance instanceof EllipticCurveStringLiteral { Crypto::AlgorithmValueConsumer consumer; @@ -367,6 +457,47 @@ module JCAModel { } } + class KeyAgreementGetInstanceCall extends MethodCall { + KeyAgreementGetInstanceCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "getInstance") + } + + Expr getAlgorithmArg() { result = super.getArgument(0) } + } + + class KeyAgreementAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { + KeyAgreementGetInstanceCall call; + + KeyAgreementAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + DataFlow::Node getResultNode() { result.asExpr() = call } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + result.(KeyAgreementStringLiteralAlgorithmInstance).getConsumer() = this + } + } + + class KeyAgreementStringLiteralAlgorithmInstance extends JCAAlgorithmInstance, + Crypto::KeyAgreementAlgorithmInstance instanceof KeyAgreementStringLiteral + { + Crypto::AlgorithmValueConsumer consumer; + + KeyAgreementStringLiteralAlgorithmInstance() { + KeyAgreementAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + } + + override Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } + // override Crypto::EllipticCurveAlgorithmInstance getEllipticCurveAlgorithm() { + // this.(KeyAgreementStringLiteral).getValue().toUpperCase() in ["X25519", "X448"] and + // // NOTE: this relies upon modeling the elliptic curve on 'this' separately + // result = this + // // TODO: or is ecdh and go find the curve + // // this.(KeyAgreementStringLiteral).toString().toUpperCase() = ["ECDH"] + // } + } + class CipherStringLiteralAlgorithmInstance extends JCAAlgorithmInstance, Crypto::CipherAlgorithmInstance instanceof CipherStringLiteral { diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 09f67f156c2..fe397c6247f 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -837,6 +837,7 @@ module CryptographyBase Input> { TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstanceOrValueConsumer e) or TKeyEncapsulationAlgorithm(KeyEncapsulationAlgorithmInstance e) or TMACAlgorithm(MACAlgorithmInstanceOrValueConsumer e) or + TKeyAgreementAlgorithm(KeyAgreementAlgorithmInstance e) or // Non-standalone Algorithms (e.g., Mode, Padding) // TODO: need to rename this, as "mode" is getting reused in different contexts, be precise TModeOfOperationAlgorithm(ModeOfOperationAlgorithmInstance e) or @@ -2220,4 +2221,56 @@ module CryptographyBase Input> { abstract class KEMAlgorithm extends TKeyEncapsulationAlgorithm, AlgorithmNode { final override string getInternalType() { result = "KeyEncapsulationAlgorithm" } } + + /** + * Key agreement algorithms + */ + newtype TKeyAgreementType = + DH() or // Diffie-Hellman + EDH() or // Ephemeral Diffie-Hellman + ECDH() or // Elliptic Curve Diffie-Hellman + // Note: x25519 and x448 are applications of ECDH + OtherKeyAgreementType() + + bindingset[name] + predicate isKeyAgreementAlgorithmName(string name) { isKeyAgreementAlgorithm(name, _) } + + bindingset[name] + predicate isKeyAgreementAlgorithm(string name, TKeyAgreementType type) { + exists(string name2 | name2 = name.toUpperCase() | + name2 = "DH" and type = DH() + or + name2 = "EDH" and type = EDH() + or + name2 = "ECDH" and type = ECDH() + or + name2 = "X25519" and type = ECDH() + or + name2 = "X448" and type = ECDH() + ) + } + + abstract class KeyAgreementAlgorithmInstance extends AlgorithmInstance { + // /** + // * If the key agreement uses a curve, (e.g., ECDH) point to the curve instance. + // * none() if the agreement is not curve based (e.g., plain DH). + // * Note that if the curve is inherent to the algorithm (e.g., x25519), this will be + // * the key agreement algorithm instance itself (this). + // */ + // abstract EllipticCurveAlgorithmInstance getEllipticCurveAlgorithm(); + } + + abstract class KeyAgreementSecretGenerationOperationInstance extends OperationInstance { + /** + * The private key used in the key agreement operation. + * This key represents the local party in the key agreement. + */ + abstract ConsumerInputDataFlowNode getServerKeyConsumer(); + + /** + * The public key used in the key agreement operation, coming + * from the peer (the other party in the key agreement). + */ + abstract ConsumerInputDataFlowNode getPeerKeyConsumer(); + } } From b9d0abda632b05ddaa74e3747defa1eb8cc2b0a4 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Wed, 9 Apr 2025 21:19:00 +0200 Subject: [PATCH 080/656] Move CipherOperation into KeyOperation, refactor - KeyOperation and Algorithm now encompasses encryption, decryption, wrapping, unwrapping, signing, and verifying. - Removed elliptic curve implementation from JCA.qll pending rewrite - Removed JCAAlgorithmInstance abstraction from JCA.qll - Cleaned up and removed JCA-specific naming from Model.qll - Added and clarified documentation --- cpp/ql/lib/experimental/Quantum/Language.qll | 2 +- java/ql/lib/experimental/Quantum/JCA.qll | 754 +++++----- .../InsecureOrUnknownNonceAtOperation.ql | 9 +- .../Quantum/PossibleReusedNonce.ql | 17 +- .../ql/src/experimental/Quantum/TestCipher.ql | 8 +- .../src/experimental/Quantum/TestCipherKey.ql | 4 +- .../codeql/cryptography/Model.qll | 1208 +++++++++-------- 7 files changed, 986 insertions(+), 1016 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index 2dc17f5e267..0d0caf7f49b 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -112,7 +112,7 @@ module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { module ArtifactUniversalFlow = DataFlow::Global; -abstract class CipherOutputArtifact extends Crypto::CipherOutputArtifactInstance { +abstract class CipherOutputArtifact extends Crypto::KeyOperationOutputArtifactInstance { override predicate flowsTo(Crypto::FlowAwareElement other) { ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) } diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 7d4b36ebe27..b75c00c3549 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -5,10 +5,7 @@ import semmle.code.java.controlflow.Dominance module JCAModel { import Language - - abstract class JCAAlgorithmInstance extends Crypto::AlgorithmInstance { - abstract Crypto::AlgorithmValueConsumer getConsumer(); - } + import Crypto::KeyOpAlg as KeyOpAlg // TODO: Verify that the PBEWith% case works correctly bindingset[algo] @@ -54,10 +51,48 @@ module JCAModel { } bindingset[name] - predicate elliptic_curve_names(string name) { Crypto::isEllipticCurveAlgorithmName(name) } + predicate elliptic_curve_names(string name) { + // Note: as a one-off exception, we use the internal Crypto module implementation of `isEllipticCurveAlgorithmName` + Crypto::isEllipticCurveAlgorithmName(name) + } + + /* + * TODO: + * + * MAC Algorithms possible (JCA Default + BouncyCastle Extensions) + * + * Name Type Description + * --------------------------------------------------------------------------- + * "HmacMD5" HMAC HMAC with MD5 (not recommended) + * "HmacSHA1" HMAC HMAC with SHA-1 (not recommended) + * "HmacSHA224" HMAC HMAC with SHA-224 + * "HmacSHA256" HMAC HMAC with SHA-256 + * "HmacSHA384" HMAC HMAC with SHA-384 + * "HmacSHA512" HMAC HMAC with SHA-512 + * + * (BouncyCastle and Other Provider Extensions) + * "AESCMAC" CMAC Cipher-based MAC using AES + * "DESCMAC" CMAC CMAC with DES (legacy) + * "GMAC" GCM-based MAC Authenticates AAD only (GCM-style) + * "Poly1305" AEAD-style MAC Used with ChaCha20 + * "SipHash" Hash-based MAC Fast MAC for short inputs + * "BLAKE2BMAC" HMAC-style BLAKE2b MAC (cryptographic hash) + * "HmacRIPEMD160" HMAC HMAC with RIPEMD160 hash + */ bindingset[name] - predicate key_agreement_names(string name) { Crypto::isKeyAgreementAlgorithmName(name) } + predicate mac_names(string name) { + name.toUpperCase() + .matches([ + "HMAC%", "AESCMAC", "DESCMAC", "GMAC", "Poly1305", "SipHash", "BLAKE2BMAC", + "HMACRIPEMD160" + ].toUpperCase()) + } + + bindingset[name] + predicate key_agreement_names(string name) { + name.toUpperCase().matches(["DH", "EDH", "ECDH", "X25519", "X448"].toUpperCase()) + } bindingset[name] Crypto::TKeyDerivationType kdf_name_to_kdf_type(string name, string withSubstring) { @@ -107,6 +142,77 @@ module JCAModel { digestLength = 512 // TODO: verify } + bindingset[name] + private predicate mode_name_to_type_known( + Crypto::TBlockCipherModeOfOperationType type, string name + ) { + type = Crypto::ECB() and name = "ECB" + or + type = Crypto::CBC() and name = "CBC" + or + type = Crypto::GCM() and name = "GCM" + or + type = Crypto::CTR() and name = "CTR" + or + type = Crypto::XTS() and name = "XTS" + or + type = Crypto::CCM() and name = "CCM" + or + type = Crypto::SIV() and name = "SIV" + or + type = Crypto::OCB() and name = "OCB" + } + + bindingset[name] + private predicate cipher_name_to_type_known(KeyOpAlg::TAlgorithm type, string name) { + exists(string upper | upper = name.toUpperCase() | + upper.matches("AES%") and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::AES()) + or + upper = "DES" and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DES()) + or + upper = "TRIPLEDES" and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::TripleDES()) + or + upper = "IDEA" and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::IDEA()) + or + upper = "CAST5" and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::CAST5()) + or + upper = "CHACHA20" and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::CHACHA20()) + or + upper = "RC4" and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC4()) + or + upper = "RC5" and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC5()) + or + upper = "RSA" and + type = KeyOpAlg::TAsymmetricCipher(KeyOpAlg::RSA()) + ) + } + + bindingset[name] + predicate mac_name_to_mac_type_known(Crypto::TMACType type, string name) { + type = Crypto::THMAC() and + name.toUpperCase().matches("HMAC%") + } + + bindingset[name] + predicate key_agreement_name_to_type_known(Crypto::TKeyAgreementType type, string name) { + type = Crypto::DH() and + name.toUpperCase() = "DH" + or + type = Crypto::EDH() and + name.toUpperCase() = "EDH" + or + type = Crypto::ECDH() and + name.toUpperCase() in ["ECDH", "X25519", "X448"] + } + /** * A `StringLiteral` in the `"ALG/MODE/PADDING"` or `"ALG"` format */ @@ -120,16 +226,6 @@ module JCAModel { string getPadding() { result = this.getValue().splitAt("/", 2) } } - class EllipticCurveStringLiteral extends StringLiteral { - EllipticCurveStringLiteral() { elliptic_curve_names(this.getValue()) } - - string getStandardEllipticCurveName() { result = this.getValue() } - } - - class KeyAgreementStringLiteral extends StringLiteral { - KeyAgreementStringLiteral() { key_agreement_names(this.getValue()) } - } - class CipherGetInstanceCall extends Call { CipherGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "getInstance") @@ -159,9 +255,9 @@ module JCAModel { } /** - * Data-flow configuration modelling flow from a cipher string literal to a value consumer argument. + * Data-flow configuration modelling flow from a cipher string literal to a `CipherGetInstanceCall` argument. */ - private module CipherAlgorithmStringToFetchConfig implements DataFlow::ConfigSig { + private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherStringLiteral } predicate isSink(DataFlow::Node sink) { @@ -169,22 +265,7 @@ module JCAModel { } } - module CipherAlgorithmStringToFetchFlow = - TaintTracking::Global; - - /** - * Data-flow configuration modelling flow from a elliptic curve literal to a value consumer argument. - */ - private module EllipticCurveAlgorithmStringToFetchConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof EllipticCurveStringLiteral } - - predicate isSink(DataFlow::Node sink) { - exists(Crypto::AlgorithmValueConsumer consumer | sink = consumer.getInputNode()) - } - } - - module EllipticCurveAlgorithmStringToFetchFlow = - TaintTracking::Global; + module AlgorithmStringToFetchFlow = TaintTracking::Global; /** * Note: padding and a mode of operation will only exist when the padding / mode (*and its type*) are determinable. @@ -195,8 +276,8 @@ module JCAModel { * * TODO: Model the case of relying on a provider default, but alert on it as a bad practice. */ - class CipherStringLiteralPaddingAlgorithmInstance extends JCAAlgorithmInstance, - CipherStringLiteralAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof CipherStringLiteral + class CipherStringLiteralPaddingAlgorithmInstance extends CipherStringLiteralAlgorithmInstance, + Crypto::PaddingAlgorithmInstance instanceof CipherStringLiteral { CipherStringLiteralPaddingAlgorithmInstance() { exists(super.getPadding()) } // TODO: provider defaults @@ -218,298 +299,29 @@ module JCAModel { } } - /** - * Data-flow configuration modelling flow from a key agreement literal to a value consumer argument. - */ - private module KeyAgreementAlgorithmStringToFetchConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KeyAgreementStringLiteral } - - predicate isSink(DataFlow::Node sink) { - exists(Crypto::AlgorithmValueConsumer consumer | sink = consumer.getInputNode()) - } - } - - module KeyAgreementAlgorithmStringToFetchFlow = - TaintTracking::Global; - - class KeyAgreementInitCall extends MethodCall { - KeyAgreementInitCall() { - this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "init") - } - - Expr getServerKeyArg() { result = this.getArgument(0) } - } - - private module KeyAgreementInitQualifierToSecretGenQualifierConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { - exists(KeyAgreementInitCall init | src.asExpr() = init.getQualifier()) - } - - predicate isSink(DataFlow::Node sink) { - exists(KeyAgreementGenerateSecretCall c | sink.asExpr() = c.getQualifier()) - } - - /** - * Barrier if we go into another init, assume the second init overwrites the first - */ - predicate isBarrierIn(DataFlow::Node node) { isSource(node) } - } - - module KeyAgreementInitQualifierToSecretGenQualifierFlow = - DataFlow::Global; - - class KeyAgreementGenerateSecretCall extends MethodCall { - KeyAgreementGenerateSecretCall() { - this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "generateSecret") - } - - KeyAgreementInitCall getKeyAgreementInitCall() { - KeyAgreementInitQualifierToSecretGenQualifierFlow::flow(DataFlow::exprNode(result - .getQualifier()), DataFlow::exprNode(this.getQualifier())) - } - } - - private module KeyAgreementAVCToInitQualifierConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { - exists(KeyAgreementAlgorithmValueConsumer consumer | consumer.getResultNode() = src) - } - - predicate isSink(DataFlow::Node sink) { - exists(KeyAgreementInitCall init | sink.asExpr() = init.getQualifier()) - } - } - - module KeyAgreementAVCToInitQualifierFlow = - DataFlow::Global; - - class KeyAgreementSecretGenerationOperationInstance extends Crypto::KeyAgreementSecretGenerationOperationInstance instanceof KeyAgreementGenerateSecretCall - { - override Crypto::ConsumerInputDataFlowNode getServerKeyConsumer() { - this.(KeyAgreementGenerateSecretCall).getKeyAgreementInitCall().getServerKeyArg() = - result.asExpr() - } - - override Crypto::ConsumerInputDataFlowNode getPeerKeyConsumer() { - none() //TODO - } - - override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { - none() // TODO: key agreeement has it's own algorithm consumer, separate from the key - // TODO: the char pred must trace from the consumer to here, - // in theory, along that path we would get the init and doPhase, but can I just get those - // separately avoiding a complicated config state for dataflow? - } - } - - class CipherStringLiteralModeAlgorithmInstance extends JCAAlgorithmInstance, - CipherStringLiteralPaddingAlgorithmInstance, Crypto::ModeOfOperationAlgorithmInstance instanceof CipherStringLiteral + class CipherStringLiteralModeAlgorithmInstance extends CipherStringLiteralPaddingAlgorithmInstance, + Crypto::ModeOfOperationAlgorithmInstance instanceof CipherStringLiteral { CipherStringLiteralModeAlgorithmInstance() { exists(super.getMode()) } // TODO: provider defaults override string getRawModeAlgorithmName() { result = super.getMode() } - bindingset[name] - private predicate modeToNameMappingKnown(Crypto::TBlockCipherModeOperationType type, string name) { - type instanceof Crypto::ECB and name = "ECB" - or - type instanceof Crypto::CBC and name = "CBC" - or - type instanceof Crypto::GCM and name = "GCM" - or - type instanceof Crypto::CTR and name = "CTR" - or - type instanceof Crypto::XTS and name = "XTS" - or - type instanceof Crypto::CCM and name = "CCM" - or - type instanceof Crypto::SIV and name = "SIV" - or - type instanceof Crypto::OCB and name = "OCB" - } - - override Crypto::TBlockCipherModeOperationType getModeType() { - if this.modeToNameMappingKnown(_, super.getMode()) - then this.modeToNameMappingKnown(result, super.getMode()) + override Crypto::TBlockCipherModeOfOperationType getModeType() { + if mode_name_to_type_known(_, super.getMode()) + then mode_name_to_type_known(result, super.getMode()) else result instanceof Crypto::OtherMode } } - class KeyGeneratorGetInstanceCall extends MethodCall { - KeyGeneratorGetInstanceCall() { - this.getCallee().hasQualifiedName("javax.crypto", "KeyGenerator", "getInstance") - or - this.getCallee().hasQualifiedName("java.security", "KeyPairGenerator", "getInstance") - } - - Expr getAlgorithmArg() { result = super.getArgument(0) } - } - - // For general elliptic curves, getInstance("EC") is used - // and java.security.spec.ECGenParameterSpec("") is what sets the specific curve. - // The result of ECGenParameterSpec is passed to KeyPairGenerator.initialize - // If the curve is not specified, the default is used. - // We would trace the use of this inside a KeyPairGenerator.initialize - class ECGenParameterSpecCall extends ClassInstanceExpr { - ECGenParameterSpecCall() { - this.(ClassInstanceExpr) - .getConstructedType() - .hasQualifiedName("java.security.spec", "ECGenParameterSpec") - } - - Expr getAlgorithmArg() { result = super.getArgument(0) } - - KeyPairGeneratorInitializeCall getInitializeConsumerCall() { - exists(DataFlow::Node sink | - ECGenParameterSpecCallToInitializeFlow::flow(DataFlow::exprNode(this), sink) and - result.getAnArgument() = sink.asExpr() - ) - } - } - - abstract class KeyGenAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { - // abstract predicate flowsToKeyGenerateCallQualifier(KeyGeneratorGenerateCall sink); - abstract DataFlow::Node getResultNode(); - } - - class KeyPairGeneratorInitializeCall extends MethodCall { - KeyPairGeneratorInitializeCall() { - this.getCallee().hasQualifiedName("java.security", "KeyPairGenerator", "initialize") - } - - Expr getKeyArg() { - result = this.getArgument(0) and - result.getType() instanceof IntegralType - } - } - - private module ECGenParameterSpecCallToInitializeConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof ECGenParameterSpecCall } - - predicate isSink(DataFlow::Node sink) { - exists(KeyPairGeneratorInitializeCall c | c.getAnArgument() = sink.asExpr()) - } - } - - module ECGenParameterSpecCallToInitializeFlow = - DataFlow::Global; - - class ECGenParameterSpecAlgorithmValueConsumer extends KeyGenAlgorithmValueConsumer { - ECGenParameterSpecCall call; - - ECGenParameterSpecAlgorithmValueConsumer() { this = call.getAlgorithmArg() } - - override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } - - override DataFlow::Node getResultNode() { - // Traversing to the initialilzer directly and calling this the 'result' - // to simplify the trace. In theory you would trace from the call - // through the initializer, but we already have a trace to the initializer - // so using this instead of altering/creating data flow configs. - call.getInitializeConsumerCall().getQualifier() = result.asExpr() - } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - result.(JCAAlgorithmInstance).getConsumer() = this - } - } - - class KeyGeneratorGetInstanceAlgorithmValueConsumer extends KeyGenAlgorithmValueConsumer { - KeyGeneratorGetInstanceCall call; - - KeyGeneratorGetInstanceAlgorithmValueConsumer() { this = call.getAlgorithmArg() } - - override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } - - override DataFlow::Node getResultNode() { result.asExpr() = call } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - // The source is any instance whose consumer is this - result.(JCAAlgorithmInstance).getConsumer() = this - } - } - - class EllipticCurveStringLiteralAlgorithmInstance extends JCAAlgorithmInstance, - Crypto::EllipticCurveAlgorithmInstance instanceof EllipticCurveStringLiteral + class CipherStringLiteralAlgorithmInstance extends Crypto::KeyOperationAlgorithmInstance instanceof CipherStringLiteral { Crypto::AlgorithmValueConsumer consumer; - EllipticCurveStringLiteralAlgorithmInstance() { - // Trace a known elliptic curve algorithm string literal to a key gen consumer - EllipticCurveAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), - consumer.getInputNode()) - } - - override Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } - - override string getRawEllipticCurveAlgorithmName() { result = super.getValue() } - - override string getStandardCurveName() { result = this.getRawEllipticCurveAlgorithmName() } - - override Crypto::TEllipticCurveType getEllipticCurveFamily() { - Crypto::isEllipticCurveAlgorithm(this.getRawEllipticCurveAlgorithmName(), _, result) - } - - override string getKeySize() { - exists(int keySize | - Crypto::isEllipticCurveAlgorithm(this.getRawEllipticCurveAlgorithmName(), keySize, _) and - result = keySize.toString() - ) - } - } - - class KeyAgreementGetInstanceCall extends MethodCall { - KeyAgreementGetInstanceCall() { - this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "getInstance") - } - - Expr getAlgorithmArg() { result = super.getArgument(0) } - } - - class KeyAgreementAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { - KeyAgreementGetInstanceCall call; - - KeyAgreementAlgorithmValueConsumer() { this = call.getAlgorithmArg() } - - DataFlow::Node getResultNode() { result.asExpr() = call } - - override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - result.(KeyAgreementStringLiteralAlgorithmInstance).getConsumer() = this - } - } - - class KeyAgreementStringLiteralAlgorithmInstance extends JCAAlgorithmInstance, - Crypto::KeyAgreementAlgorithmInstance instanceof KeyAgreementStringLiteral - { - Crypto::AlgorithmValueConsumer consumer; - - KeyAgreementStringLiteralAlgorithmInstance() { - KeyAgreementAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) - } - - override Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } - // override Crypto::EllipticCurveAlgorithmInstance getEllipticCurveAlgorithm() { - // this.(KeyAgreementStringLiteral).getValue().toUpperCase() in ["X25519", "X448"] and - // // NOTE: this relies upon modeling the elliptic curve on 'this' separately - // result = this - // // TODO: or is ecdh and go find the curve - // // this.(KeyAgreementStringLiteral).toString().toUpperCase() = ["ECDH"] - // } - } - - class CipherStringLiteralAlgorithmInstance extends JCAAlgorithmInstance, - Crypto::CipherAlgorithmInstance instanceof CipherStringLiteral - { - // NOTE: this consumer is generic, but cipher algorithms can be consumed - // by getInstance as well as key generation - Crypto::AlgorithmValueConsumer consumer; - CipherStringLiteralAlgorithmInstance() { - CipherAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) } - override Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } + Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { result = this // TODO: provider defaults @@ -519,42 +331,16 @@ module JCAModel { result = this // TODO: provider defaults } - override string getRawCipherAlgorithmName() { result = super.getValue() } + override string getRawAlgorithmName() { result = super.getValue() } - override Crypto::TCipherType getCipherFamily() { - if this.cipherNameMappingKnown(_, super.getAlgorithmName()) - then this.cipherNameMappingKnown(result, super.getAlgorithmName()) - else result instanceof Crypto::OtherCipherType + override KeyOpAlg::Algorithm getAlgorithmType() { + if cipher_name_to_type_known(_, super.getAlgorithmName()) + then cipher_name_to_type_known(result, super.getAlgorithmName()) + else result instanceof KeyOpAlg::TUnknownKeyOperationAlgorithmType } - bindingset[name] - private predicate cipherNameMappingKnown(Crypto::TCipherType type, string name) { - name = "AES" and - type instanceof Crypto::AES - or - name = "DES" and - type instanceof Crypto::DES - or - name = "TripleDES" and - type instanceof Crypto::TripleDES - or - name = "IDEA" and - type instanceof Crypto::IDEA - or - name = "CAST5" and - type instanceof Crypto::CAST5 - or - name = "ChaCha20" and - type instanceof Crypto::CHACHA20 - or - name = "RC4" and - type instanceof Crypto::RC4 - or - name = "RC5" and - type instanceof Crypto::RC5 - or - name = "RSA" and - type instanceof Crypto::RSA + override string getKeySize() { + none() // TODO: implement to handle variants such as AES-128 } } @@ -587,12 +373,14 @@ module JCAModel { override int getDigestLength() { exists(hash_name_to_hash_type(hashName, result)) } } - class OAEPPaddingAlgorithmInstance extends JCAAlgorithmInstance, - Crypto::OAEPPaddingAlgorithmInstance, CipherStringLiteralPaddingAlgorithmInstance + class OAEPPaddingAlgorithmInstance extends Crypto::OAEPPaddingAlgorithmInstance, + CipherStringLiteralPaddingAlgorithmInstance { override Crypto::HashAlgorithmInstance getOAEPEncodingHashAlgorithm() { result = this } override Crypto::HashAlgorithmInstance getMGF1HashAlgorithm() { none() } // TODO + + override string getKeySize() { none() } } /** @@ -608,7 +396,7 @@ module JCAModel { override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } CipherStringLiteral getOrigin(string value) { - CipherAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), + AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), DataFlow::exprNode(this.(Expr).getAChildExpr*())) and value = result.getValue() } @@ -650,14 +438,14 @@ module JCAModel { this = TInitializedCipherModeFlowState(_) and result = "initialized" } - abstract Crypto::CipherOperationSubtype getCipherOperationMode(); + abstract Crypto::KeyOperationSubtype getKeyOperationMode(); } private class UninitializedCipherModeFlowState extends CipherModeFlowState, TUninitializedCipherModeFlowState { - override Crypto::CipherOperationSubtype getCipherOperationMode() { - result instanceof Crypto::UnknownCipherOperationSubtype + override Crypto::KeyOperationSubtype getKeyOperationMode() { + result instanceof Crypto::TUnknownKeyOperationMode } } @@ -667,7 +455,7 @@ module JCAModel { CipherInitCall call; DataFlow::Node node1; DataFlow::Node node2; - Crypto::CipherOperationSubtype mode; + Crypto::KeyOperationSubtype mode; InitializedCipherModeFlowState() { this = TInitializedCipherModeFlowState(call) and @@ -687,7 +475,7 @@ module JCAModel { */ DataFlow::Node getSndNode() { result = node2 } - override Crypto::CipherOperationSubtype getCipherOperationMode() { result = mode } + override Crypto::KeyOperationSubtype getKeyOperationMode() { result = mode } } /** @@ -730,8 +518,8 @@ module JCAModel { module CipherGetInstanceToCipherOperationFlow = DataFlow::GlobalWithState; - class CipherOperationInstance extends Crypto::CipherOperationInstance instanceof Call { - Crypto::CipherOperationSubtype mode; + class CipherOperationInstance extends Crypto::KeyOperationInstance instanceof Call { + Crypto::KeyOperationSubtype mode; CipherGetInstanceToCipherOperationFlow::PathNode sink; CipherOperationCall doFinalize; CipherGetInstanceAlgorithmArg consumer; @@ -741,13 +529,13 @@ module JCAModel { CipherGetInstanceToCipherOperationFlow::flowPath(src, sink) and src.getNode().asExpr() = getCipher and sink.getNode().asExpr() = doFinalize.getQualifier() and - sink.getState().(CipherModeFlowState).getCipherOperationMode() = mode and + sink.getState().(CipherModeFlowState).getKeyOperationMode() = mode and this = doFinalize and consumer = getCipher.getAlgorithmArg() ) } - override Crypto::CipherOperationSubtype getCipherOperationSubtype() { result = mode } + override Crypto::KeyOperationSubtype getKeyOperationSubtype() { result = mode } override Crypto::ConsumerInputDataFlowNode getNonceConsumer() { result.asExpr() = sink.getState().(InitializedCipherModeFlowState).getInitCall().getNonceArg() @@ -763,8 +551,8 @@ module JCAModel { override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { result = consumer } - override Crypto::CipherOutputArtifactInstance getOutputArtifact() { - result = doFinalize.getOutput() + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { + result.asExpr() = doFinalize.getOutput() } } @@ -865,15 +653,15 @@ module JCAModel { module JavaxCipherModeAccessToInitFlow = DataFlow::Global; private predicate cipher_mode_str_to_cipher_mode_known( - string mode, Crypto::CipherOperationSubtype cipher_mode + string mode, Crypto::KeyOperationSubtype cipher_mode ) { - mode = "ENCRYPT_MODE" and cipher_mode instanceof Crypto::EncryptionSubtype + mode = "ENCRYPT_MODE" and cipher_mode = Crypto::TEncryptMode() or - mode = "WRAP_MODE" and cipher_mode instanceof Crypto::WrapSubtype + mode = "WRAP_MODE" and cipher_mode = Crypto::TWrapMode() or - mode = "DECRYPT_MODE" and cipher_mode instanceof Crypto::DecryptionSubtype + mode = "DECRYPT_MODE" and cipher_mode = Crypto::TDecryptMode() or - mode = "UNWRAP_MODE" and cipher_mode instanceof Crypto::UnwrapSubtype + mode = "UNWRAP_MODE" and cipher_mode = Crypto::TUnwrapMode() } class CipherInitCall extends MethodCall { @@ -896,10 +684,10 @@ module JCAModel { ) } - Crypto::CipherOperationSubtype getCipherOperationModeType() { + Crypto::KeyOperationSubtype getCipherOperationModeType() { if cipher_mode_str_to_cipher_mode_known(this.getModeOrigin().getField().getName(), _) then cipher_mode_str_to_cipher_mode_known(this.getModeOrigin().getField().getName(), result) - else result instanceof Crypto::UnknownCipherOperationSubtype + else result = Crypto::TUnknownKeyOperationMode() } Expr getKeyArg() { @@ -918,12 +706,6 @@ module JCAModel { override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } } - class CipherOperationCallOutput extends Crypto::CipherOutputArtifactInstance { - CipherOperationCallOutput() { this = any(CipherOperationCall call).getOutput() } - - override DataFlow::Node getOutputNode() { result.asExpr() = this } - } - // flow config from a known hash algorithm literal to MessageDigest.getInstance module KnownHashAlgorithmLiteralToMessageDigestConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { hash_names(src.asExpr().(StringLiteral).getValue()) } @@ -936,8 +718,7 @@ module JCAModel { module KnownHashAlgorithmLiteralToMessageDigestFlow = DataFlow::Global; - class KnownHashAlgorithm extends JCAAlgorithmInstance, Crypto::HashAlgorithmInstance instanceof StringLiteral - { + class KnownHashAlgorithm extends Crypto::HashAlgorithmInstance instanceof StringLiteral { MessageDigestAlgorithmValueConsumer consumer; KnownHashAlgorithm() { @@ -946,7 +727,7 @@ module JCAModel { consumer.getInputNode()) } - override MessageDigestAlgorithmValueConsumer getConsumer() { result = consumer } + MessageDigestAlgorithmValueConsumer getConsumer() { result = consumer } override string getRawHashAlgorithmName() { result = this.(StringLiteral).getValue() } @@ -1019,10 +800,22 @@ module JCAModel { } } + class KeyGeneratorCallAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { + KeyGeneratorGetInstanceCall call; + + KeyGeneratorCallAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + result.(CipherStringLiteralAlgorithmInstance).getConsumer() = this + } + } + // flow from instance created by getInstance to generateKey - module KeyGeneratorAlgValueConsumerToGenerateConfig implements DataFlow::ConfigSig { + module KeyGeneratorGetInstanceToGenerateConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { - exists(KeyGenAlgorithmValueConsumer consumer | consumer.getResultNode() = src) + exists(KeyGeneratorGetInstanceCall call | src.asExpr() = call) } predicate isSink(DataFlow::Node sink) { @@ -1030,8 +823,23 @@ module JCAModel { } } - module KeyGeneratorAlgValueConsumerToGenerateFlow = - DataFlow::Global; + module KeyGeneratorGetInstanceToGenerateFlow = + DataFlow::Global; + + class KeyGeneratorGetInstanceCall extends MethodCall { + KeyGeneratorGetInstanceCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyGenerator", "getInstance") + or + this.getCallee().hasQualifiedName("java.security", "KeyPairGenerator", "getInstance") + } + + Expr getAlgorithmArg() { result = super.getArgument(0) } + + predicate flowsToKeyGenerateCallQualifier(KeyGeneratorGenerateCall sink) { + KeyGeneratorGetInstanceToGenerateFlow::flow(DataFlow::exprNode(this), + DataFlow::exprNode(sink.(MethodCall).getQualifier())) + } + } class KeyGeneratorGenerateCall extends Crypto::KeyGenerationOperationInstance instanceof MethodCall { @@ -1050,10 +858,8 @@ module JCAModel { override Crypto::KeyArtifactType getOutputKeyType() { result = type } override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { - exists(KeyGenAlgorithmValueConsumer consumer | - KeyGeneratorAlgValueConsumerToGenerateFlow::flow(consumer.getResultNode(), - DataFlow::exprNode(this.(Call).getQualifier())) and - result = consumer + exists(KeyGeneratorGetInstanceCall getInstance | + getInstance.flowsToKeyGenerateCallQualifier(this) and result = getInstance.getAlgorithmArg() ) } @@ -1066,45 +872,6 @@ module JCAModel { override string getKeySizeFixed() { none() } } - /* - * TODO: - * - * MAC Algorithms possible (JCA Default + BouncyCastle Extensions) - * - * Name Type Description - * --------------------------------------------------------------------------- - * "HmacMD5" HMAC HMAC with MD5 (not recommended) - * "HmacSHA1" HMAC HMAC with SHA-1 (not recommended) - * "HmacSHA224" HMAC HMAC with SHA-224 - * "HmacSHA256" HMAC HMAC with SHA-256 - * "HmacSHA384" HMAC HMAC with SHA-384 - * "HmacSHA512" HMAC HMAC with SHA-512 - * - * (BouncyCastle and Other Provider Extensions) - * "AESCMAC" CMAC Cipher-based MAC using AES - * "DESCMAC" CMAC CMAC with DES (legacy) - * "GMAC" GCM-based MAC Authenticates AAD only (GCM-style) - * "Poly1305" AEAD-style MAC Used with ChaCha20 - * "SipHash" Hash-based MAC Fast MAC for short inputs - * "BLAKE2BMAC" HMAC-style BLAKE2b MAC (cryptographic hash) - * "HmacRIPEMD160" HMAC HMAC with RIPEMD160 hash - */ - - bindingset[name] - predicate mac_names(string name) { - name.toUpperCase() - .matches([ - "HMAC%", "AESCMAC", "DESCMAC", "GMAC", "Poly1305", "SipHash", "BLAKE2BMAC", - "HMACRIPEMD160" - ].toUpperCase()) - } - - bindingset[name] - predicate mac_name_to_mac_type_known(Crypto::TMACType type, string name) { - type instanceof Crypto::THMAC and - name.toUpperCase().matches("HMAC%") - } - module MACKnownAlgorithmToConsumerConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { mac_names(src.asExpr().(StringLiteral).getValue()) } @@ -1140,8 +907,7 @@ module JCAModel { module MACInitCallToMACOperationFlow = DataFlow::Global; - class KnownMACAlgorithm extends JCAAlgorithmInstance, Crypto::MACAlgorithmInstance instanceof StringLiteral - { + class KnownMACAlgorithm extends Crypto::MACAlgorithmInstance instanceof StringLiteral { MACGetInstanceAlgorithmValueConsumer consumer; KnownMACAlgorithm() { @@ -1149,7 +915,7 @@ module JCAModel { MACKnownAlgorithmToConsumerFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) } - override MACGetInstanceAlgorithmValueConsumer getConsumer() { result = consumer } + MACGetInstanceAlgorithmValueConsumer getConsumer() { result = consumer } override string getRawMACAlgorithmName() { result = super.getValue() } @@ -1301,8 +1067,7 @@ module JCAModel { } } - class KDFAlgorithmStringLiteral extends JCAAlgorithmInstance, - Crypto::KeyDerivationAlgorithmInstance instanceof StringLiteral + class KDFAlgorithmStringLiteral extends Crypto::KeyDerivationAlgorithmInstance instanceof StringLiteral { SecretKeyFactoryKDFAlgorithmValueConsumer consumer; @@ -1317,10 +1082,10 @@ module JCAModel { result = kdf_name_to_kdf_type(super.getValue(), _) } - override SecretKeyFactoryKDFAlgorithmValueConsumer getConsumer() { result = consumer } + SecretKeyFactoryKDFAlgorithmValueConsumer getConsumer() { result = consumer } } - class PBKDF2AlgorithmStringLiteral extends JCAAlgorithmInstance, KDFAlgorithmStringLiteral, + class PBKDF2AlgorithmStringLiteral extends KDFAlgorithmStringLiteral, Crypto::PBKDF2AlgorithmInstance, Crypto::HMACAlgorithmInstance, Crypto::HashAlgorithmInstance, Crypto::AlgorithmValueConsumer { @@ -1421,5 +1186,132 @@ module JCAModel { override string getIterationCountFixed() { none() } } - // TODO: flow the GCGenParametersSpecCall to an init, and the init to the operations + + class KeyAgreementStringLiteral extends StringLiteral { + KeyAgreementStringLiteral() { key_agreement_names(this.getValue()) } + } + + /** + * Data-flow configuration modelling flow from a key agreement literal to a value consumer argument. + */ + private module KeyAgreementAlgorithmStringToFetchConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KeyAgreementStringLiteral } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::AlgorithmValueConsumer consumer | sink = consumer.getInputNode()) + } + } + + module KeyAgreementAlgorithmStringToFetchFlow = + TaintTracking::Global; + + class KeyAgreementInitCall extends MethodCall { + KeyAgreementInitCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "init") + } + + Expr getServerKeyArg() { result = this.getArgument(0) } + } + + private module KeyAgreementInitQualifierToSecretGenQualifierConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + exists(KeyAgreementInitCall init | src.asExpr() = init.getQualifier()) + } + + predicate isSink(DataFlow::Node sink) { + exists(KeyAgreementGenerateSecretCall c | sink.asExpr() = c.getQualifier()) + } + + /** + * Barrier if we go into another init, assume the second init overwrites the first + */ + predicate isBarrierIn(DataFlow::Node node) { isSource(node) } + } + + module KeyAgreementInitQualifierToSecretGenQualifierFlow = + DataFlow::Global; + + class KeyAgreementGetInstanceCall extends MethodCall { + KeyAgreementGetInstanceCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "getInstance") + } + + Expr getAlgorithmArg() { result = super.getArgument(0) } + } + + class KeyAgreementAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { + KeyAgreementGetInstanceCall call; + + KeyAgreementAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + DataFlow::Node getResultNode() { result.asExpr() = call } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + result.(KeyAgreementStringLiteralAlgorithmInstance).getConsumer() = this + } + } + + class KeyAgreementStringLiteralAlgorithmInstance extends Crypto::KeyAgreementAlgorithmInstance instanceof KeyAgreementStringLiteral + { + Crypto::AlgorithmValueConsumer consumer; + + KeyAgreementStringLiteralAlgorithmInstance() { + KeyAgreementAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + } + + Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } + + override string getRawKeyAgreementAlgorithmName() { result = super.getValue() } + + override Crypto::TKeyAgreementType getKeyAgreementType() { + if key_agreement_name_to_type_known(_, super.getValue()) + then key_agreement_name_to_type_known(result, super.getValue()) + else result = Crypto::UnknownKeyAgreementType() + } + } + + class KeyAgreementGenerateSecretCall extends MethodCall { + KeyAgreementGenerateSecretCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "generateSecret") + } + + KeyAgreementInitCall getKeyAgreementInitCall() { + KeyAgreementInitQualifierToSecretGenQualifierFlow::flow(DataFlow::exprNode(result + .getQualifier()), DataFlow::exprNode(this.getQualifier())) + } + } + + private module KeyAgreementAVCToInitQualifierConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + exists(KeyAgreementAlgorithmValueConsumer consumer | consumer.getResultNode() = src) + } + + predicate isSink(DataFlow::Node sink) { + exists(KeyAgreementInitCall init | sink.asExpr() = init.getQualifier()) + } + } + + module KeyAgreementAVCToInitQualifierFlow = + DataFlow::Global; + + class KeyAgreementSecretGenerationOperationInstance extends Crypto::KeyAgreementSecretGenerationOperationInstance instanceof KeyAgreementGenerateSecretCall + { + override Crypto::ConsumerInputDataFlowNode getServerKeyConsumer() { + this.(KeyAgreementGenerateSecretCall).getKeyAgreementInitCall().getServerKeyArg() = + result.asExpr() + } + + override Crypto::ConsumerInputDataFlowNode getPeerKeyConsumer() { + none() //TODO + } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + none() // TODO: key agreeement has its own algorithm consumer, separate from the key + // TODO: the char pred must trace from the consumer to here, + // in theory, along that path we would get the init and doPhase, but can I just get those + // separately avoiding a complicated config state for dataflow? + } + } } diff --git a/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql b/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql index 7fea3515b7d..a9eb70076a0 100644 --- a/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql +++ b/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql @@ -7,18 +7,17 @@ import experimental.Quantum.Language from - Crypto::NonceArtifactNode n, Crypto::CipherOperationNode op, Crypto::FlowAwareElement src, - string msg + Crypto::NonceArtifactNode n, Crypto::KeyOperationNode op, Crypto::FlowAwareElement src, string msg where op.getANonce() = n and // Only encryption mode is relevant for insecure nonces, consder any 'unknown' subtype // as possibly encryption. ( - op.getCipherOperationSubtype() instanceof Crypto::EncryptionSubtype + op.getKeyOperationSubtype() instanceof Crypto::EncryptionSubtype or - op.getCipherOperationSubtype() instanceof Crypto::WrapSubtype + op.getKeyOperationSubtype() instanceof Crypto::WrapSubtype or - op.getCipherOperationSubtype() instanceof Crypto::UnwrapSubtype + op.getKeyOperationSubtype() instanceof Crypto::UnwrapSubtype ) and ( // Known sources cases that are not secure diff --git a/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql b/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql index f9fc7a873db..2263f05d56e 100644 --- a/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql +++ b/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql @@ -8,9 +8,8 @@ import experimental.Quantum.Language import semmle.code.java.dataflow.DataFlow from - Crypto::CipherOperationNode op1, Crypto::CipherOperationNode op2, - Crypto::NonceArtifactNode nonce1, Crypto::NonceArtifactNode nonce2, Crypto::FlowAwareElement src1, - Crypto::FlowAwareElement src2 + Crypto::KeyOperationNode op1, Crypto::KeyOperationNode op2, Crypto::NonceArtifactNode nonce1, + Crypto::NonceArtifactNode nonce2, Crypto::FlowAwareElement src1, Crypto::FlowAwareElement src2 where // NOTE: not looking at value of the nonce, if we knew value, it would be insecure (hard coded) // Instead trying to find nonce sources that trace to multiple operations. @@ -18,14 +17,14 @@ where // (the encryption happened else where) or we are able to see the encryption and decryption operation and // reuse for encryption is the concern) ( - op1.getCipherOperationSubtype() instanceof Crypto::EncryptionSubtype or - op1.getCipherOperationSubtype() instanceof Crypto::WrapSubtype or - op1.getCipherOperationSubtype() instanceof Crypto::UnknownCipherOperationSubtype + op1.getKeyOperationSubtype() instanceof Crypto::EncryptionSubtype or + op1.getKeyOperationSubtype() instanceof Crypto::WrapSubtype or + op1.getKeyOperationSubtype() instanceof Crypto::UnknownCipherOperationSubtype ) and ( - op2.getCipherOperationSubtype() instanceof Crypto::EncryptionSubtype or - op2.getCipherOperationSubtype() instanceof Crypto::WrapSubtype or - op2.getCipherOperationSubtype() instanceof Crypto::UnknownCipherOperationSubtype + op2.getKeyOperationSubtype() instanceof Crypto::EncryptionSubtype or + op2.getKeyOperationSubtype() instanceof Crypto::WrapSubtype or + op2.getKeyOperationSubtype() instanceof Crypto::UnknownCipherOperationSubtype ) and nonce1 = op1.getANonce() and nonce2 = op2.getANonce() and diff --git a/java/ql/src/experimental/Quantum/TestCipher.ql b/java/ql/src/experimental/Quantum/TestCipher.ql index 8743ef3aa19..d56e1680440 100644 --- a/java/ql/src/experimental/Quantum/TestCipher.ql +++ b/java/ql/src/experimental/Quantum/TestCipher.ql @@ -5,14 +5,14 @@ import experimental.Quantum.Language from - Crypto::CipherOperationNode op, Crypto::CipherAlgorithmNode a, + Crypto::CipherOperationNode op, Crypto::KeyOperationAlgorithmNode a, Crypto::ModeOfOperationAlgorithmNode m, Crypto::PaddingAlgorithmNode p, Crypto::NonceArtifactNode nonce, Crypto::KeyArtifactNode k where - a = op.getAKnownCipherAlgorithm() and + a = op.getAKnownAlgorithm() and m = a.getModeOfOperation() and p = a.getPaddingAlgorithm() and nonce = op.getANonce() and k = op.getAKey() -select op, op.getCipherOperationSubtype(), a, a.getRawAlgorithmName(), m, m.getRawAlgorithmName(), - p, p.getRawAlgorithmName(), nonce, k, k.getSourceElement() +select op, op.getKeyOperationSubtype(), a, a.getRawAlgorithmName(), m, m.getRawAlgorithmName(), p, + p.getRawAlgorithmName(), nonce, k, k.getSourceElement() diff --git a/java/ql/src/experimental/Quantum/TestCipherKey.ql b/java/ql/src/experimental/Quantum/TestCipherKey.ql index 1ae0cdfd89f..c489320528d 100644 --- a/java/ql/src/experimental/Quantum/TestCipherKey.ql +++ b/java/ql/src/experimental/Quantum/TestCipherKey.ql @@ -4,11 +4,11 @@ import experimental.Quantum.Language -from Crypto::CipherOperationNode op, Crypto::CipherAlgorithmNode a, Crypto::KeyArtifactNode k +from Crypto::KeyOperationNode op, Crypto::CipherAlgorithmNode a, Crypto::KeyArtifactNode k where a = op.getAKnownCipherAlgorithm() and k = op.getAKey() -select op, op.getCipherOperationSubtype(), a, a.getRawAlgorithmName(), k, k.getSourceNode() +select op, op.getKeyOperationSubtype(), a, a.getRawAlgorithmName(), k, k.getSourceNode() /* * from Crypto::CipherOperationNode op * where op.getLocation().getFile().getBaseName() = "AsymmetricEncryptionMacHybridCryptosystem.java" diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index fe397c6247f..782c53e1043 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -334,7 +334,6 @@ module CryptographyBase Input> { */ abstract class ArtifactConsumer extends ConsumerElement { /** - * DO NOT USE: * Use `getAKnownArtifactSource() instead. The behaviour of these two predicates is equivalent. */ final override KnownElement getAKnownSource() { result = this.getAKnownArtifactSource() } @@ -348,26 +347,22 @@ module CryptographyBase Input> { * For example: * A `NonceArtifactConsumer` is always the `NonceArtifactInstance` itself, since data only becomes (i.e., is determined to be) * a `NonceArtifactInstance` when it is consumed in a context that expects a nonce (e.g., an argument expecting nonce data). - * In this case, the artifact (nonce) is fully defined by the context in which it is consumed, and the consumer embodies + * + * In this case, the artifact (nonce) is fully defined by the context in which it is consumed, and the consumer embodies * that identity without the need for additional differentiation. Without the context a consumer provides, that data could * otherwise be any other type of artifact or even simply random data. * - * TODO: what if a Nonce from hypothetical func `generateNonce()` flows to this instance which is also a Nonce? - * TODO: potential solution is creating another artifact type called NonceData or treating it as a generic source. - * - * TODO: An alternative is simply having a predicate DataFlowNode getNonceInputNode() on (for example) operations. - * Under the hood, in Model.qll, we would create the instance for the modeller, thus avoiding the need for the modeller - * to create a separate consumer class / instance themselves using this class. + * This class is used to create synthetic nodes for the artifact at any place where it is consumed. */ abstract private class ArtifactConsumerAndInstance extends ArtifactConsumer, ArtifactInstance { - override predicate isConsumerArtifact() { any() } + final override predicate isConsumerArtifact() { any() } } final private class NonceArtifactConsumer extends ArtifactConsumerAndInstance { ConsumerInputDataFlowNode inputNode; NonceArtifactConsumer() { - exists(CipherOperationInstance op | inputNode = op.getNonceConsumer()) and + exists(KeyOperationInstance op | inputNode = op.getNonceConsumer()) and this = Input::dfn_to_element(inputNode) } @@ -379,7 +374,7 @@ module CryptographyBase Input> { MessageArtifactConsumer() { ( - exists(CipherOperationInstance op | inputNode = op.getInputConsumer()) + exists(KeyOperationInstance op | inputNode = op.getInputConsumer()) or exists(KeyDerivationOperationInstance op | inputNode = op.getInputConsumer()) or @@ -402,7 +397,9 @@ module CryptographyBase Input> { final override ConsumerInputDataFlowNode getInputNode() { result = inputNode } } - // Output artifacts are determined solely by the element that produces them. + /** + * An artifact that is produced by an operation, representing a concrete artifact instance rather than a synthetic consumer artifact. + */ abstract class OutputArtifactInstance extends ArtifactInstance { override predicate isConsumerArtifact() { none() } @@ -413,13 +410,33 @@ module CryptographyBase Input> { } } + /** + * An artifact representing a hash function's digest output. + */ abstract class DigestArtifactInstance extends OutputArtifactInstance { } + /** + * An artifact representing a random number generator's output. + */ abstract class RandomNumberGenerationInstance extends OutputArtifactInstance { // TODO: input seed? } - abstract class CipherOutputArtifactInstance extends OutputArtifactInstance { } + /** + * An artifact representing a key operation's output, e.g.: + * 1. Encryption/decryption output (ciphertext or plaintext) + * 1. Signing output (signature) + * 1. Key encapsulation output (wrapped or unwrapped key) + */ + final class KeyOperationOutputArtifactInstance extends OutputArtifactInstance { + KeyOperationInstance creator; + + KeyOperationOutputArtifactInstance() { + Input::dfn_to_element(creator.getOutputArtifact()) = this + } + + override DataFlowNode getOutputNode() { result = creator.getOutputArtifact() } + } // Artifacts that may be outputs or inputs newtype TKeyArtifactType = @@ -459,7 +476,7 @@ module CryptographyBase Input> { // TODO: key type hint? e.g. hint: private || public KeyArtifactConsumer() { ( - exists(CipherOperationInstance op | inputNode = op.getKeyConsumer()) or + exists(KeyOperationInstance op | inputNode = op.getKeyConsumer()) or exists(MACOperationInstance op | inputNode = op.getKeyConsumer()) ) and this = Input::dfn_to_element(inputNode) @@ -471,68 +488,291 @@ module CryptographyBase Input> { } /** - * A cipher operation instance, such as encryption or decryption. + * The `KeyOpAlg` module defines key operation algorithms types (e.g., symmetric ciphers, signatures, etc.) + * and provides mapping of those types to string names and structural properties. */ - abstract class CipherOperationInstance extends OperationInstance { + module KeyOpAlg { /** - * Gets the subtype of this cipher operation, distinguishing encryption, decryption, key wrapping, and key unwrapping. + * An algorithm used in key operations. */ - abstract CipherOperationSubtype getCipherOperationSubtype(); + newtype TAlgorithm = + TSymmetricCipher(TSymmetricCipherType t) or + TAsymmetricCipher(TAsymmetricCipherType t) or + TSignature(TSignatureAlgorithmType t) or + TKeyEncapsulation(TKEMAlgorithmType t) or + TUnknownKeyOperationAlgorithmType() + + // Parameterized algorithm types + newtype TSymmetricCipherType = + AES() or + ARIA() or + BLOWFISH() or + CAMELLIA() or + CAST5() or + CHACHA20() or + DES() or + DESX() or + GOST() or + IDEA() or + KUZNYECHIK() or + MAGMA() or + TripleDES() or + DoubleDES() or + RC2() or + RC4() or + RC5() or + SEED() or + SM4() or + OtherSymmetricCipherType() + + newtype TAsymmetricCipherType = + RSA() or + OtherAsymmetricCipherType() + + newtype TSignatureAlgorithmType = + DSA() or + ECDSA() or + Ed25519() or + Ed448() or + OtherSignatureAlgorithmType() + + newtype TKEMAlgorithmType = + Kyber() or + FrodoKEM() or + OtherKEMAlgorithmType() + + newtype TCipherStructureType = + Block() or + Stream() or + UnknownCipherStructureType() + + class CipherStructureType extends TCipherStructureType { + string toString() { + result = "Block" and this = Block() + or + result = "Stream" and this = Stream() + or + result = "Unknown" and this = UnknownCipherStructureType() + } + } + + bindingset[type] + predicate symmetric_cipher_to_name_and_structure( + TSymmetricCipherType type, string name, CipherStructureType s + ) { + type = AES() and name = "AES" and s = Block() + or + type = ARIA() and name = "ARIA" and s = Block() + or + type = BLOWFISH() and name = "Blowfish" and s = Block() + or + type = CAMELLIA() and name = "Camellia" and s = Block() + or + type = CAST5() and name = "CAST5" and s = Block() + or + type = CHACHA20() and name = "ChaCha20" and s = Stream() + or + type = DES() and name = "DES" and s = Block() + or + type = DESX() and name = "DESX" and s = Block() + or + type = GOST() and name = "GOST" and s = Block() + or + type = IDEA() and name = "IDEA" and s = Block() + or + type = KUZNYECHIK() and name = "Kuznyechik" and s = Block() + or + type = MAGMA() and name = "Magma" and s = Block() + or + type = TripleDES() and name = "TripleDES" and s = Block() + or + type = DoubleDES() and name = "DoubleDES" and s = Block() + or + type = RC2() and name = "RC2" and s = Block() + or + type = RC4() and name = "RC4" and s = Stream() + or + type = RC5() and name = "RC5" and s = Block() + or + type = SEED() and name = "SEED" and s = Block() + or + type = SM4() and name = "SM4" and s = Block() + or + type = OtherSymmetricCipherType() and + name = "UnknownSymmetricCipher" and + s = UnknownCipherStructureType() + } + + bindingset[type] + predicate type_to_name(Algorithm type, string name) { + // Symmetric cipher algorithm + symmetric_cipher_to_name_and_structure(type.(SymmetricCipherAlgorithm).getType(), name, _) + or + // Asymmetric cipher algorithms + type = TAsymmetricCipher(RSA()) and name = "RSA" + or + type = TAsymmetricCipher(OtherAsymmetricCipherType()) and name = "UnknownAsymmetricCipher" + or + // Signature algorithms + type = TSignature(DSA()) and name = "DSA" + or + type = TSignature(ECDSA()) and name = "ECDSA" + or + type = TSignature(Ed25519()) and name = "Ed25519" + or + type = TSignature(Ed448()) and name = "Ed448" + or + type = TSignature(OtherSignatureAlgorithmType()) and name = "UnknownSignature" + or + // Key Encapsulation Mechanisms + type = TKeyEncapsulation(Kyber()) and name = "Kyber" + or + type = TKeyEncapsulation(FrodoKEM()) and name = "FrodoKEM" + or + type = TKeyEncapsulation(OtherKEMAlgorithmType()) and name = "UnknownKEM" + or + // Unknown + type = TUnknownKeyOperationAlgorithmType() and name = "Unknown" + } + + class Algorithm extends TAlgorithm { + string toString() { type_to_name(this, result) } + } + + class SymmetricCipherAlgorithm extends Algorithm, TSymmetricCipher { + TSymmetricCipherType type; + + SymmetricCipherAlgorithm() { this = TSymmetricCipher(type) } + + TSymmetricCipherType getType() { result = type } + } + } + + /** + * A key-based cryptographic operation instance, encompassing: + * 1. **Ciphers**: Encryption and decryption, both symmetric and asymmetric + * 1. **Signing**: Signing and verifying, **NOT** including MACs (see `MACOperationInstance`) + * 1. **Key encapsulation**: Key wrapping and unwrapping + * + * This class represents a generic key operation that transforms input data + * using a cryptographic key, producing an output artifact such as ciphertext, + * plaintext, a signature, or an (un-)wrapped key. + */ + abstract class KeyOperationInstance extends OperationInstance { + final KeyOperationOutputArtifactInstance getOutputArtifactInstance() { + result.getOutputNode() = this.getOutputArtifact() + } /** - * Gets the consumer of nonces/IVs associated with this cipher operation. + * Gets the subtype of this key operation, distinguishing operations such as + * encryption, decryption, signing, verification, key wrapping, and key unwrapping. */ - abstract ConsumerInputDataFlowNode getNonceConsumer(); + abstract KeyOperationSubtype getKeyOperationSubtype(); /** - * Gets the consumer of plaintext or ciphertext input associated with this cipher operation. - */ - abstract ConsumerInputDataFlowNode getInputConsumer(); - - /** - * Gets the consumer of a key. + * Gets the consumer of the cryptographic key used in this key operation. + * The key may be symmetric or asymmetric, depending on the operation subtype. */ abstract ConsumerInputDataFlowNode getKeyConsumer(); /** - * Gets the output artifact of this cipher operation. + * Gets the consumer of nonces or initialization vectors (IVs) associated with this key operation. + * These are typically required for encryption, AEAD, or wrap modes. + * + * If the operation does not require a nonce, this predicate should be implemented as `none()`. + */ + abstract ConsumerInputDataFlowNode getNonceConsumer(); + + /** + * Gets the consumer of the primary message input for this key operation. + * For example: plaintext (for encryption), ciphertext (for decryption), + * message to be signed, or wrapped key to be unwrapped. + */ + abstract ConsumerInputDataFlowNode getInputConsumer(); + + /** + * Gets the output artifact produced by this key operation. + * This may represent ciphertext, a digital signature, a wrapped key, or any + * other data resulting from the operation. * * Implementation guidelines: - * 1. Each unique output target should have an artifact. - * 1. Discarded outputs from intermittent calls should not be artifacts. + * 1. Each semantically meaningful output should result in an artifact. + * 2. Discarded or transient intermediate values should not be artifacts. */ - abstract CipherOutputArtifactInstance getOutputArtifact(); + abstract ArtifactOutputDataFlowNode getOutputArtifact(); } - abstract class CipherAlgorithmInstance extends AlgorithmInstance { + /** + * A key-based algorithm instance used in cryptographic operations such as encryption, decryption, + * signing, verification, and key wrapping. + */ + abstract class KeyOperationAlgorithmInstance extends AlgorithmInstance { /** - * Gets the raw name as it appears in source, e.g., "AES/CBC/PKCS7Padding". - * This name is not parsed or formatted. + * Gets the raw algorithm name as provided in source, e.g., "AES/CBC/PKCS7Padding". + * This name is not parsed or normalized. */ - abstract string getRawCipherAlgorithmName(); + abstract string getRawAlgorithmName(); /** - * Gets the type of this cipher, e.g., "AES" or "ChaCha20". - */ - abstract TCipherType getCipherFamily(); - - /** - * Gets the mode of operation of this cipher, e.g., "GCM" or "CBC". + * Gets the key operation algorithm type, e.g., `TSignature(Ed25519())` or `TSymmetricCipher(AES())`. * - * IMPLEMENTATION NOTE: as a tradeoff, this is not a consumer but always either an instance or unknown. - * A mode of operation is therefore assumed to always be part of the cipher algorithm itself. + * If the category of algorithm is known, but the precise algorithm is not, the following type hints should be used: + * - `TSymmetricCipher(OtherSymmetricCipherType())` + * - `TAsymmetricCipher(OtherAsymmetricCipherType())` + * - `TSignature(OtherSignatureAlgorithmType())` + * - `TKeyEncapsulation(OtherKEMAlgorithmType())` + * + * If the category of algorithm is not known, the following type should be used: + * - `TUnknownKeyOperationAlgorithmType()` + * + * This predicate should always hold. + */ + abstract KeyOpAlg::Algorithm getAlgorithmType(); + + /** + * Gets the mode of operation, such as "CBC", "GCM", or "ECB". + * + * Edge-cases and modeling guidance: + * - Mode of operation not identifiable: result is `none()`. + * - No mode possible (e.g., RSA, DSA, or ChaCha20): result is `none()`. + * - Mode of operation explicitly specified as none: result is `ModeOfOperationAlgorithmInstance`. + * + * IMPLEMENTATION NOTE: This is treated as part of the algorithm identity and + * not modeled as a separate algorithm value consumer. */ abstract ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm(); /** - * Gets the padding scheme of this cipher, e.g., "PKCS7" or "NoPadding". + * Gets the padding scheme, such as "PKCS7", "OAEP", or "NoPadding". * - * IMPLEMENTATION NOTE: as a tradeoff, this is not a consumer but always either an instance or unknown. - * A padding algorithm is therefore assumed to always be defined as part of the cipher algorithm itself. + * See the modeling guidance for `getModeOfOperationAlgorithm` for modeling guidance. */ abstract PaddingAlgorithmInstance getPaddingAlgorithm(); + + /** + * Gets the key size in bits specified for this algorithm variant, for example, "128" for "AES-128". This predicate is only + * necessary to specify if there are multiple variants of the algorithm defined by key size and a specific key size is known. + * + * If a specific key size is unknown, this predicate should be implemented as `none()`. + * + * If the algorithm accepts a range of key sizes without a particular one specified, this predicate should be implemented as `none()`. + */ + abstract string getKeySize(); } + newtype TBlockCipherModeOfOperationType = + ECB() or // Not secure, widely used + CBC() or // Vulnerable to padding oracle attacks + CFB() or + GCM() or // Widely used AEAD mode (TLS 1.3, SSH, IPsec) + CTR() or // Fast stream-like encryption (SSH, disk encryption) + XTS() or // Standard for full-disk encryption (BitLocker, LUKS, FileVault) + CCM() or // Used in lightweight cryptography (IoT, WPA2) + SIV() or // Misuse-resistant encryption, used in secure storage + OCB() or // Efficient AEAD mode + OFB() or + OtherMode() + abstract class ModeOfOperationAlgorithmInstance extends AlgorithmInstance { /** * Gets the type of this mode of operation, e.g., "ECB" or "CBC". @@ -541,7 +781,7 @@ module CryptographyBase Input> { * * If a type cannot be determined, the result is `OtherMode`. */ - abstract TBlockCipherModeOperationType getModeType(); + abstract TBlockCipherModeOfOperationType getModeType(); /** * Gets the isolated name as it appears in source, e.g., "CBC" in "AES/CBC/PKCS7Padding". @@ -570,7 +810,7 @@ module CryptographyBase Input> { } abstract class OAEPPaddingAlgorithmInstance extends PaddingAlgorithmInstance { - OAEPPaddingAlgorithmInstance() { this.getPaddingType() = OAEP() } + OAEPPaddingAlgorithmInstance() { this.getPaddingType() instanceof OAEP } /** * Gets the hash algorithm used in this padding scheme. @@ -585,6 +825,7 @@ module CryptographyBase Input> { newtype TMACType = THMAC() or + TCMAC() or TOtherMACType() abstract class MACAlgorithmInstance extends AlgorithmInstance { @@ -622,33 +863,31 @@ module CryptographyBase Input> { abstract AlgorithmValueConsumer getHashAlgorithmValueConsumer(); } - abstract class KeyEncapsulationOperationInstance extends OperationInstance { } - - abstract class KeyEncapsulationAlgorithmInstance extends AlgorithmInstance { } - - abstract class EllipticCurveAlgorithmInstance extends AlgorithmInstance { + abstract class EllipticCurveInstance extends AlgorithmInstance { /** * Gets the isolated name as it appears in source * * This name should not be parsed or formatted beyond isolating the raw name if necessary. */ - abstract string getRawEllipticCurveAlgorithmName(); - - /** - * The 'standard' curve name, e.g., "P-256" or "secp256r1". - * meaning the full name of the curve, including the family, key size, and other - * typical parameters found on the name. In many cases this will - * be equivalent to `getRawEllipticCurveAlgorithmName()`, but not always - * (e.g., if the curve is specified through a raw NID). - * In cases like an NID, we want the standardized name so users can quickly - * understand what the curve is, while also parsing out the family and key size - * separately. - */ - abstract string getStandardCurveName(); + abstract string getRawEllipticCurveName(); abstract TEllipticCurveType getEllipticCurveFamily(); abstract string getKeySize(); + + /** + * The 'parsed' curve name, e.g., "P-256" or "secp256r1" + * The parsed name is full name of the curve, including the family, key size, and other + * typical parameters found on the name. + * + * In many cases this will be equivalent to `getRawEllipticCurveAlgorithmName()`, + * but not always (e.g., if the curve is specified through a raw NID). + * + * In cases like an NID, we want the standardized name so users can quickly + * understand what the curve is, while also parsing out the family and key size + * separately. + */ + string getParsedEllipticCurveName() { result = this.getRawEllipticCurveName() } } abstract class HashOperationInstance extends OperationInstance { @@ -686,7 +925,7 @@ module CryptographyBase Input> { abstract KeyArtifactType getOutputKeyType(); // Defaults or fixed values - abstract string getKeySizeFixed(); + string getKeySizeFixed() { none() } // Consumer input nodes abstract ConsumerInputDataFlowNode getKeySizeConsumer(); @@ -702,9 +941,9 @@ module CryptographyBase Input> { final override string getKeyCreationTypeDescription() { result = "KeyDerivation" } // Defaults or fixed values - abstract string getIterationCountFixed(); + string getIterationCountFixed() { none() } - abstract string getOutputKeySizeFixed(); + string getOutputKeySizeFixed() { none() } // Generic consumer input nodes abstract ConsumerInputDataFlowNode getIterationCountConsumer(); @@ -722,6 +961,7 @@ module CryptographyBase Input> { PBES() or HKDF() or ARGON2() or + SCRYPT() or OtherKeyDerivationType() abstract class KeyDerivationAlgorithmInstance extends AlgorithmInstance { @@ -748,6 +988,18 @@ module CryptographyBase Input> { abstract AlgorithmValueConsumer getHMACAlgorithmValueConsumer(); } + abstract class ScryptAlgorithmInstance extends KeyDerivationAlgorithmInstance { + ScryptAlgorithmInstance() { this.getKDFType() instanceof SCRYPT } + + /** + * Gets the HMAC algorithm used by this PBKDF2 algorithm. + * + * Note: Other PRFs are not supported, as most cryptographic libraries + * only support HMAC for PBKDF2's PRF input. + */ + abstract AlgorithmValueConsumer getHMACAlgorithmValueConsumer(); + } + abstract class KeyGenerationOperationInstance extends KeyCreationOperationInstance { final override string getKeyCreationTypeDescription() { result = "KeyGeneration" } } @@ -756,10 +1008,55 @@ module CryptographyBase Input> { final override string getKeyCreationTypeDescription() { result = "KeyLoad" } } + // Key agreement algorithms + newtype TKeyAgreementType = + DH() or // Diffie-Hellman + EDH() or // Ephemeral Diffie-Hellman + ECDH() or // Elliptic Curve Diffie-Hellman + // Note: x25519 and x448 are applications of ECDH + UnknownKeyAgreementType() + + abstract class KeyAgreementAlgorithmInstance extends AlgorithmInstance { + abstract TKeyAgreementType getKeyAgreementType(); + + abstract string getRawKeyAgreementAlgorithmName(); + } + + abstract class ECDHKeyAgreementAlgorithmInstance extends KeyAgreementAlgorithmInstance { + ECDHKeyAgreementAlgorithmInstance() { this.getKeyAgreementType() instanceof ECDH } + + /** + * Gets the consumer for the elliptic curve used in the key agreement operation. + */ + abstract AlgorithmValueConsumer getEllipticCurveAlgorithmValueConsumer(); + } + + abstract class KeyAgreementSecretGenerationOperationInstance extends OperationInstance { + /** + * The private key used in the key agreement operation. + * This key represents the local party in the key agreement. + */ + abstract ConsumerInputDataFlowNode getServerKeyConsumer(); + + /** + * The public key used in the key agreement operation, coming + * from the peer (the other party in the key agreement). + */ + abstract ConsumerInputDataFlowNode getPeerKeyConsumer(); + } + private signature class AlgorithmInstanceType instanceof AlgorithmInstance; private signature predicate isCandidateAVCSig(AlgorithmValueConsumer avc); + /** + * An element that is either an `AlgorithmInstance` or an `AlgorithmValueConsumer` with no known sources. + * + * This concept is used to model consumers that have no known source as an algorithm node. + * + * The `isCandidateAVCSig` predicate is used to restrict the set of consumers that expect inputs of `AlgorithmInstanceType`. + * These "total unknown" algorithm nodes would otherwise not exist if not modelled as a consumer node. + */ module AlgorithmInstanceOrValueConsumer< AlgorithmInstanceType Alg, isCandidateAVCSig/1 isCandidateAVC> { @@ -785,8 +1082,8 @@ module CryptographyBase Input> { exists(HMACAlgorithmInstance alg | avc = alg.getAConsumer()) } - private predicate isCipherAVC(AlgorithmValueConsumer avc) { - exists(CipherOperationInstance op | op.getAnAlgorithmValueConsumer() = avc) + private predicate isKeyOperationAlgorithmAVC(AlgorithmValueConsumer avc) { + exists(KeyOperationInstance op | op.getAnAlgorithmValueConsumer() = avc) } private predicate isMACAVC(AlgorithmValueConsumer avc) { @@ -798,8 +1095,14 @@ module CryptographyBase Input> { exists(KeyDerivationOperationInstance op | op.getAnAlgorithmValueConsumer() = avc) } - final private class CipherAlgorithmInstanceOrValueConsumer = - AlgorithmInstanceOrValueConsumer::Union; + private predicate isEllipticCurveAVC(AlgorithmValueConsumer avc) { + exists(ECDHKeyAgreementAlgorithmInstance alg | + avc = alg.getEllipticCurveAlgorithmValueConsumer() + ) + } + + final private class KeyOperationAlgorithmInstanceOrValueConsumer = + AlgorithmInstanceOrValueConsumer::Union; final private class HashAlgorithmInstanceOrValueConsumer = AlgorithmInstanceOrValueConsumer::Union; @@ -810,51 +1113,47 @@ module CryptographyBase Input> { final private class KeyDerivationAlgorithmInstanceOrValueConsumer = AlgorithmInstanceOrValueConsumer::Union; - final private class EllipticCurveAlgorithmInstanceOrValueConsumer = - AlgorithmInstanceOrValueConsumer::Union; + final private class EllipticCurveInstanceOrValueConsumer = + AlgorithmInstanceOrValueConsumer::Union; private newtype TNode = - // Artifacts (data that is not an operation or algorithm, e.g., a key) + // Output artifacts (data that is not an operation or algorithm, e.g., a key) TDigest(DigestArtifactInstance e) or TKey(KeyArtifactInstance e) or - TCipherOutput(CipherOutputArtifactInstance e) or - // Input artifact nodes (synthetic, used to differentiate input as entities) + // Input artifacts (synthetic nodes, used to differentiate input as entities) TNonceInput(NonceArtifactConsumer e) or TMessageInput(MessageArtifactConsumer e) or TSaltInput(SaltArtifactConsumer e) or TRandomNumberGeneration(RandomNumberGenerationInstance e) { e.flowsTo(_) } or - // Operations (e.g., hashing, encryption) - THashOperation(HashOperationInstance e) or - TCipherOperation(CipherOperationInstance e) or - TKeyEncapsulationOperation(KeyEncapsulationOperationInstance e) or - TMACOperation(MACOperationInstance e) or - // Key Creation Operations + // Key Creation Operation union type (e.g., key generation, key load) TKeyCreationOperation(KeyCreationOperationInstance e) or - // Algorithms (e.g., SHA-256, AES) - TCipherAlgorithm(CipherAlgorithmInstanceOrValueConsumer e) or - TEllipticCurveAlgorithm(EllipticCurveAlgorithmInstanceOrValueConsumer e) or - THashAlgorithm(HashAlgorithmInstanceOrValueConsumer e) or - TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstanceOrValueConsumer e) or - TKeyEncapsulationAlgorithm(KeyEncapsulationAlgorithmInstance e) or - TMACAlgorithm(MACAlgorithmInstanceOrValueConsumer e) or - TKeyAgreementAlgorithm(KeyAgreementAlgorithmInstance e) or - // Non-standalone Algorithms (e.g., Mode, Padding) - // TODO: need to rename this, as "mode" is getting reused in different contexts, be precise + // Key operations, algorithms, and artifacts + // These types are union types of encryption, signing, encapsulation and their algorithms/artifacts. + // The artifacts are the outputs, e.g., ciphertext, signature, wrapped key. + TKeyOperation(KeyOperationInstance e) or + TKeyOperationAlgorithm(KeyOperationAlgorithmInstanceOrValueConsumer e) or + TKeyOperationOutput(KeyOperationOutputArtifactInstance e) or + // Non-Standalone Algorithms (e.g., Mode, Padding) + // These algorithms are always tied to a key operation algorithm TModeOfOperationAlgorithm(ModeOfOperationAlgorithmInstance e) or TPaddingAlgorithm(PaddingAlgorithmInstance e) or - // Composite and hybrid cryptosystems (e.g., RSA-OAEP used with AES, post-quantum hybrid cryptosystems) - // These nodes are always parent nodes and are not modeled but rather defined via library-agnostic patterns. - TKemDemHybridCryptosystem(CipherAlgorithmNode dem) or // TODO, change this relation and the below ones - TKeyAgreementHybridCryptosystem(CipherAlgorithmInstance ka) or - TAsymmetricEncryptionMacHybridCryptosystem(CipherAlgorithmInstance enc) or - TPostQuantumHybridCryptosystem(CipherAlgorithmInstance enc) or - // Generic source nodes + // All other operations + THashOperation(HashOperationInstance e) or + TMACOperation(MACOperationInstance e) or + // All other algorithms + TEllipticCurve(EllipticCurveInstanceOrValueConsumer e) or + THashAlgorithm(HashAlgorithmInstanceOrValueConsumer e) or + TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstanceOrValueConsumer e) or + TMACAlgorithm(MACAlgorithmInstanceOrValueConsumer e) or + TKeyAgreementAlgorithm(KeyAgreementAlgorithmInstance e) or + // Generic source nodes, i.e., sources of data that are not resolvable to a specific known asset. TGenericSourceNode(GenericSourceInstance e) { // An element modelled as a `GenericSourceInstance` can also be modelled as a `KnownElement` // For example, a string literal "AES" could be a generic constant but also an algorithm instance. - // Only create generic nodes tied to instances which are not also a `KnownElement`. + // + // Therefore, only create generic nodes tied to instances which are not also a `KnownElement`... not e instanceof KnownElement and - // Only create nodes for generic sources which flow to other elements + // ... and that flow to other elements e.flowsTo(_) } @@ -863,25 +1162,8 @@ module CryptographyBase Input> { * * Each `NodeBase` is a node in a graph of cryptographic operations, where the edges are the relationships between the nodes. * - * A node, as opposed to a property, is a construct that can reference or be referenced by more than one node. - * For example: a key size is a single value configuring a cipher algorithm, but a single mode of operation algorithm - * can be referenced by multiple disjoint cipher algorithms. For example, even if the same key size value is reused - * for multiple cipher algorithms, the key size holds no information when devolved to that simple value, and it is - * therefore not a "construct" or "element" being reused by multiple nodes. - * - * As a rule of thumb, a node is an algorithm or the use of an algorithm (an operation), as well as structured data - * consumed by or produced by an operation or algorithm (an artifact) that represents a construct beyond its data. - * - * _Example 1_: A seed of a random number generation algorithm has meaning beyond its value, as its reuse in multiple - * random number generation algorithms is more relevant than its underlying value. In contrast, a key size is only - * relevant to analysis in terms of its underlying value. Therefore, an RNG seed is a node; a key size is not. However, - * the key size might have a `GenericSourceNode` source, even if it itself is not a node. - * - * _Example 2_: A salt for a key derivation function *is* an `ArtifactNode`. - * - * _Example 3_: The iteration count of a key derivation function is *not* a node, but it may link to a generic node. - * - * _Example 4_: A nonce for a cipher operation *is* an `ArtifactNode`. + * As a rule of thumb, a node is an algorithm or the use of an algorithm (an operation), as well as structured data (an artifact) + * consumed by or produced by an operation or algorithm. */ abstract class NodeBase extends TNode { /** @@ -1057,7 +1339,7 @@ module CryptographyBase Input> { } /** - * A nonce or initialization vector input + * A nonce or initialization vector input. */ final class NonceArtifactNode extends ArtifactNode, TNonceInput { NonceArtifactConsumer instance; @@ -1070,7 +1352,7 @@ module CryptographyBase Input> { } /** - * A message or plaintext/ciphertext input + * A message or plaintext/ciphertext input. */ final class MessageArtifactNode extends ArtifactNode, TMessageInput { MessageArtifactConsumer instance; @@ -1083,7 +1365,7 @@ module CryptographyBase Input> { } /** - * A salt input + * A salt input. */ final class SaltArtifactNode extends ArtifactNode, TSaltInput { SaltArtifactConsumer instance; @@ -1096,14 +1378,16 @@ module CryptographyBase Input> { } /** - * Output text from a cipher operation + * The base class for output nodes from key operations. + * + * This class represents the output of key generation, key derivation, encryption, decryption, signing, and verification. */ - final class CipherOutputNode extends ArtifactNode, TCipherOutput { - CipherOutputArtifactInstance instance; + class KeyOperationOutputNode extends ArtifactNode, TKeyOperationOutput { + KeyOperationOutputArtifactInstance instance; - CipherOutputNode() { this = TCipherOutput(instance) } + KeyOperationOutputNode() { this = TKeyOperationOutput(instance) } - final override string getInternalType() { result = "CipherOutput" } + final override string getInternalType() { result = "KeyOperationOutput" } override LocatableElement asElement() { result = instance } @@ -1111,7 +1395,7 @@ module CryptographyBase Input> { } /** - * A source of random number generation + * A source of random number generation. */ final class RandomNumberGenerationNode extends ArtifactNode, TRandomNumberGeneration { RandomNumberGenerationInstance instance; @@ -1125,6 +1409,22 @@ module CryptographyBase Input> { override string getSourceNodeRelationship() { none() } // TODO: seed? } + /** + * A union type of all algorithm types that can be used in key creation operations. + */ + class TKeyCreationCandidateAlgorithm = + TKeyOperationAlgorithm or TEllipticCurve or TKeyAgreementAlgorithm or TKeyDerivationAlgorithm; + + /** + * A candidate algorithm node for key creation. + * + * Note: This is not an independent node type, but a subset of `AlgorithmNode` that is of type `TKeyCreationCandidateAlgorithm`. + */ + private class KeyCreationCandidateAlgorithmNode extends TKeyCreationCandidateAlgorithm instanceof AlgorithmNode + { + string toString() { result = super.getAlgorithmName() } + } + /** * A cryptographic key, such as a symmetric key or asymmetric key pair. */ @@ -1146,7 +1446,7 @@ module CryptographyBase Input> { .getAGenericSourceNode() } - CipherAlgorithmNode getAKnownAlgorithm() { + KeyCreationCandidateAlgorithmNode getAKnownAlgorithm() { result = instance.(KeyCreationOperationInstance).getAnAlgorithmValueConsumer().getAKnownSourceNode() } @@ -1180,7 +1480,7 @@ module CryptographyBase Input> { } /** - * A digest produced by a hash operation. + * A digest artifact produced by a hash operation. */ final class DigestArtifactNode extends ArtifactNode, TDigest { DigestArtifactInstance instance; @@ -1305,7 +1605,7 @@ module CryptographyBase Input> { KeyGenerationOperationNode() { keyGenInstance = instance } override predicate isCandidateAlgorithmNode(AlgorithmNode node) { - node instanceof CipherAlgorithmNode + node instanceof KeyCreationCandidateAlgorithmNode } override NodeBase getChild(string key) { @@ -1390,7 +1690,7 @@ module CryptographyBase Input> { result = instance.asAlg().getRawKDFAlgorithmName() } - final override string getAlgorithmName() { result = this.getRawAlgorithmName() } + override string getAlgorithmName() { result = this.getRawAlgorithmName() } // TODO: standardize? } /** @@ -1414,195 +1714,97 @@ module CryptographyBase Input> { } } - // /** - // * PKCS12KDF key derivation function - // */ - // abstract class PKCS12KDF extends KeyDerivationWithDigestParameterNode { - // override string getAlgorithmName() { result = "PKCS12KDF" } - // /** - // * Gets the iteration count of this key derivation algorithm. - // */ - // abstract string getIterationCount(Location location); - // /** - // * Gets the raw ID argument specifying the intended use of the derived key. - // * - // * The intended use is defined in RFC 7292, appendix B.3, as follows: - // * - // * This standard specifies 3 different values for the ID byte mentioned above: - // * - // * 1. If ID=1, then the pseudorandom bits being produced are to be used - // * as key material for performing encryption or decryption. - // * - // * 2. If ID=2, then the pseudorandom bits being produced are to be used - // * as an IV (Initial Value) for encryption or decryption. - // * - // * 3. If ID=3, then the pseudorandom bits being produced are to be used - // * as an integrity key for MACing. - // */ - // abstract string getIDByte(Location location); - // override predicate properties(string key, string value, Location location) { - // super.properties(key, value, location) - // or - // ( - // // [KNOWN_OR_UNKNOWN] - // key = "Iterations" and - // if exists(this.getIterationCount(location)) - // then value = this.getIterationCount(location) - // else ( - // value instanceof UnknownPropertyValue and location instanceof UnknownLocation - // ) - // ) - // or - // ( - // // [KNOWN_OR_UNKNOWN] - // key = "IdByte" and - // if exists(this.getIDByte(location)) - // then value = this.getIDByte(location) - // else ( - // value instanceof UnknownPropertyValue and location instanceof UnknownLocation - // ) - // ) - // } - // } - // /** - // * scrypt key derivation function - // */ - // abstract class SCRYPT extends KeyDerivationAlgorithmNode { - // final override string getAlgorithmName() { result = "scrypt" } - // /** - // * Gets the iteration count (`N`) argument - // */ - // abstract string get_N(Location location); - // /** - // * Gets the block size (`r`) argument - // */ - // abstract string get_r(Location location); - // /** - // * Gets the parallelization factor (`p`) argument - // */ - // abstract string get_p(Location location); - // /** - // * Gets the derived key length argument - // */ - // abstract string getDerivedKeyLength(Location location); - // override predicate properties(string key, string value, Location location) { - // super.properties(key, value, location) - // or - // ( - // // [KNOWN_OR_UNKNOWN] - // key = "N" and - // if exists(this.get_N(location)) - // then value = this.get_N(location) - // else ( - // value instanceof UnknownPropertyValue and location instanceof UnknownLocation - // ) - // ) - // or - // ( - // // [KNOWN_OR_UNKNOWN] - // key = "r" and - // if exists(this.get_r(location)) - // then value = this.get_r(location) - // else ( - // value instanceof UnknownPropertyValue and location instanceof UnknownLocation - // ) - // ) - // or - // ( - // // [KNOWN_OR_UNKNOWN] - // key = "p" and - // if exists(this.get_p(location)) - // then value = this.get_p(location) - // else ( - // value instanceof UnknownPropertyValue and location instanceof UnknownLocation - // ) - // ) - // or - // ( - // // [KNOWN_OR_UNKNOWN] - // key = "KeyLength" and - // if exists(this.getDerivedKeyLength(location)) - // then value = this.getDerivedKeyLength(location) - // else ( - // value instanceof UnknownPropertyValue and location instanceof UnknownLocation - // ) - // ) - // } - // } - /* - * TODO: - * - * Rule: No newtype representing a type of algorithm should be modelled with multiple interfaces - * - * Example 1: HKDF and PKCS12KDF are both key derivation algorithms. - * However, PKCS12KDF also has a property: the iteration count. - * - * If we have HKDF and PKCS12KDF under TKeyDerivationType, - * someone modelling a library might try to make a generic identification of both of those algorithms. - * - * They will therefore not use the specialized type for PKCS12KDF, - * meaning "from PKCS12KDF algo select algo" will have no results. - * - * Example 2: Each type below represents a common family of elliptic curves, with a shared interface, i.e., - * predicates for library modellers to implement as well as the properties and edges reported. + /** + * scrypt key derivation function */ + class ScryptAlgorithmNode extends KeyDerivationAlgorithmNode { + ScryptAlgorithmInstance scryptInstance; - newtype TCipherOperationSubtype = - TEncryptionMode() or - TDecryptionMode() or - TWrapMode() or - TUnwrapMode() or - TSignatureMode() or - TUnknownCipherOperationMode() + ScryptAlgorithmNode() { scryptInstance = instance.asAlg() } - abstract class CipherOperationSubtype extends TCipherOperationSubtype { - abstract string toString(); - } + /** + * Gets the iteration count (`N`) argument + */ + GenericSourceNode get_N() { none() } // TODO - class EncryptionSubtype extends CipherOperationSubtype, TEncryptionMode { - override string toString() { result = "Encrypt" } - } + /** + * Gets the block size (`r`) argument + */ + GenericSourceNode get_r() { none() } // TODO - class DecryptionSubtype extends CipherOperationSubtype, TDecryptionMode { - override string toString() { result = "Decrypt" } - } - - class WrapSubtype extends CipherOperationSubtype, TWrapMode { - override string toString() { result = "Wrap" } - } - - class UnwrapSubtype extends CipherOperationSubtype, TUnwrapMode { - override string toString() { result = "Unwrap" } - } - - class SignatureSubtype extends CipherOperationSubtype, TSignatureMode { - override string toString() { result = "Sign" } - } - - class UnknownCipherOperationSubtype extends CipherOperationSubtype, TUnknownCipherOperationMode { - override string toString() { result = "Unknown" } + /** + * Gets the parallelization factor (`p`) argument + */ + GenericSourceNode get_p() { none() } // TODO } /** - * An encryption operation that processes plaintext to generate a ciphertext. - * This operation takes an input message (plaintext) of arbitrary content and length - * and produces a ciphertext as the output using a specified encryption algorithm (with a mode and padding). + * A type defining the subtype type of a key operation. */ - final class CipherOperationNode extends OperationNode, TCipherOperation { - CipherOperationInstance instance; + newtype TKeyOperationSubtype = + TEncryptMode() or + TDecryptMode() or + TWrapMode() or + TUnwrapMode() or + TSignMode() or + TVerifyMode() or + TUnknownKeyOperationMode() - CipherOperationNode() { this = TCipherOperation(instance) } + /** + * A class defining the subtype of a key operation. + */ + class KeyOperationSubtype extends TKeyOperationSubtype { + string toString() { + result = "Encrypt" and this = TEncryptMode() + or + result = "Decrypt" and this = TDecryptMode() + or + result = "Wrap" and this = TWrapMode() + or + result = "Unwrap" and this = TUnwrapMode() + or + result = "Sign" and this = TSignMode() + or + result = "Verify" and this = TVerifyMode() + or + result = "Unknown" and this = TUnknownKeyOperationMode() + } + } + + /** + * A key-based cryptographic transformation that operates on data using either a symmetric or asymmetric cryptographic key. + * + * This operation class covers operations based on symmetric ciphers or broader asymmetric algorithms, including: + * + * - **Encryption / Decryption**: + * Symmetric (e.g., AES-GCM) or asymmetric (e.g., RSA-OAEP, ECIES) encryption of plaintext to ciphertext or vice-versa. + * + * - **Key Wrapping / Unwrapping**: + * Encapsulation of symmetric keys using algorithms such as Kyber, AES-KW, RSA-KEM, RSA-OAEP, etc. + * + * - **Signing / Verifying**: + * Digital signatures using private/public keypairs (e.g., Ed25519, RSA-PSS, ECDSA) + * + * Each sub-operation is represented by a `CipherOperationSubtype`, such as `Encrypt`, `Sign`, `Wrap`, etc. + * + * Note: This class does _not_ include symmetric message authentication operations (MACs) like HMAC or CMAC. + * These are handled separately in the `MacOperationNode` class. + */ + class KeyOperationNode extends OperationNode, TKeyOperation { + KeyOperationInstance instance; + + KeyOperationNode() { this = TKeyOperation(instance) } + + final KeyOperationSubtype getKeyOperationSubtype() { + result = instance.getKeyOperationSubtype() + } override LocatableElement asElement() { result = instance } - override string getInternalType() { result = "CipherOperation" } + override string getInternalType() { result = "KeyOperation" } override predicate isCandidateAlgorithmNode(AlgorithmNode node) { - node instanceof CipherAlgorithmNode - } - - CipherOperationSubtype getCipherOperationSubtype() { - result = instance.getCipherOperationSubtype() + node instanceof KeyOperationAlgorithmNode } NonceArtifactNode getANonce() { result.asElement() = instance.getNonceConsumer().getConsumer() } @@ -1611,25 +1813,29 @@ module CryptographyBase Input> { result.asElement() = instance.getInputConsumer().getConsumer() } - CipherOutputNode getAnOutputArtifact() { result.asElement() = instance.getOutputArtifact() } + KeyOperationOutputNode getAnOutputArtifact() { + result.asElement() = instance.getOutputArtifactInstance() + } KeyArtifactNode getAKey() { result.asElement() = instance.getKeyConsumer().getConsumer() } override NodeBase getChild(string key) { result = super.getChild(key) or - // [KNOWN_OR_UNKNOWN] + // [KNOWN_OR_UNKNOWN] - but only if not sign/verify + not this instanceof SignatureOperationNode and key = "Nonce" and if exists(this.getANonce()) then result = this.getANonce() else result = this or // [KNOWN_OR_UNKNOWN] - key = "InputText" and + key = "Input" and if exists(this.getAnInputArtifact()) then result = this.getAnInputArtifact() else result = this or - // [KNOWN_OR_UNKNOWN] - key = "OutputText" and + // [KNOWN_OR_UNKNOWN] - but only if not verify + not this.getKeyOperationSubtype() instanceof TVerifyMode and + key = "Output" and if exists(this.getAnOutputArtifact()) then result = this.getAnOutputArtifact() else result = this @@ -1638,33 +1844,47 @@ module CryptographyBase Input> { key = "Key" and if exists(this.getAKey()) then result = this.getAKey() else result = this } + } - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) + class CipherOperationNode extends KeyOperationNode { + string nodeName; + + CipherOperationNode() { + this.getKeyOperationSubtype() = TEncryptMode() and nodeName = "EncryptOperation" or - // [ALWAYS_KNOWN] - Unknown is handled in getCipherOperationMode() - key = "Operation" and - value = this.getCipherOperationSubtype().toString() and - location = this.getLocation() + this.getKeyOperationSubtype() = TDecryptMode() and nodeName = "DecryptOperation" } + + override string getInternalType() { result = nodeName } + } + + class KeyEncapsulationOperationNode extends KeyOperationNode { + string nodeName; + + KeyEncapsulationOperationNode() { + this.getKeyOperationSubtype() = TWrapMode() and nodeName = "WrapOperation" + or + this.getKeyOperationSubtype() = TUnwrapMode() and nodeName = "UnwrapOperation" + } + + override string getInternalType() { result = nodeName } + } + + class SignatureOperationNode extends KeyOperationNode { + string nodeName; + + SignatureOperationNode() { + this.getKeyOperationSubtype() = TSignMode() and nodeName = "SignOperation" + or + this.getKeyOperationSubtype() = TVerifyMode() and nodeName = "VerifyOperation" + } + + override string getInternalType() { result = nodeName } } /** * Block cipher modes of operation algorithms */ - newtype TBlockCipherModeOperationType = - ECB() or // Not secure, widely used - CBC() or // Vulnerable to padding oracle attacks - CFB() or - GCM() or // Widely used AEAD mode (TLS 1.3, SSH, IPsec) - CTR() or // Fast stream-like encryption (SSH, disk encryption) - XTS() or // Standard for full-disk encryption (BitLocker, LUKS, FileVault) - CCM() or // Used in lightweight cryptography (IoT, WPA2) - SIV() or // Misuse-resistant encryption, used in secure storage - OCB() or // Efficient AEAD mode - OFB() or - OtherMode() - class ModeOfOperationAlgorithmNode extends AlgorithmNode, TModeOfOperationAlgorithm { ModeOfOperationAlgorithmInstance instance; @@ -1683,29 +1903,29 @@ module CryptographyBase Input> { * * If a type cannot be determined, the result is `OtherMode`. */ - TBlockCipherModeOperationType getModeType() { result = instance.getModeType() } + TBlockCipherModeOfOperationType getModeType() { result = instance.getModeType() } bindingset[type] - final private predicate modeToNameMapping(TBlockCipherModeOperationType type, string name) { - type instanceof ECB and name = "ECB" + final private predicate modeToNameMapping(TBlockCipherModeOfOperationType type, string name) { + type = ECB() and name = "ECB" or - type instanceof CBC and name = "CBC" + type = CBC() and name = "CBC" or - type instanceof GCM and name = "GCM" + type = GCM() and name = "GCM" or - type instanceof CTR and name = "CTR" + type = CTR() and name = "CTR" or - type instanceof XTS and name = "XTS" + type = XTS() and name = "XTS" or - type instanceof CCM and name = "CCM" + type = CCM() and name = "CCM" or - type instanceof SIV and name = "SIV" + type = SIV() and name = "SIV" or - type instanceof OCB and name = "OCB" + type = OCB() and name = "OCB" or - type instanceof CFB and name = "CFB" + type = CFB() and name = "CFB" or - type instanceof OFB and name = "OFB" + type = OFB() and name = "OFB" } override string getAlgorithmName() { this.modeToNameMapping(this.getModeType(), result) } @@ -1733,17 +1953,17 @@ module CryptographyBase Input> { bindingset[type] final private predicate paddingToNameMapping(TPaddingType type, string name) { - type instanceof PKCS1_v1_5 and name = "PKCS1_v1_5" + type = ANSI_X9_23() and name = "ANSI_X9_23" or - type instanceof PSS and name = "PSS" + type = NoPadding() and name = "NoPadding" or - type instanceof PKCS7 and name = "PKCS7" + type = OAEP() and name = "OAEP" or - type instanceof ANSI_X9_23 and name = "ANSI_X9_23" + type = PKCS1_v1_5() and name = "PKCS1_v1_5" or - type instanceof NoPadding and name = "NoPadding" + type = PKCS7() and name = "PKCS7" or - type instanceof OAEP and name = "OAEP" + type = PSS() and name = "PSS" } override string getAlgorithmName() { this.paddingToNameMapping(this.getPaddingType(), result) } @@ -1781,81 +2001,36 @@ module CryptographyBase Input> { } } - /** - * A helper type for distinguishing between block and stream ciphers. - */ - newtype TCipherStructureType = - Block() or - Stream() or - Asymmetric() or - UnknownCipherStructureType() + class KeyOperationAlgorithmNode extends AlgorithmNode, TKeyOperationAlgorithm { + KeyOperationAlgorithmInstanceOrValueConsumer instance; - private string getCipherStructureTypeString(TCipherStructureType type) { - type instanceof Block and result = "Block" - or - type instanceof Stream and result = "Stream" - or - type instanceof Asymmetric and result = "Asymmetric" - or - type instanceof UnknownCipherStructureType and result instanceof UnknownPropertyValue - } - - /** - * Symmetric algorithms - */ - newtype TCipherType = - AES() or - ARIA() or - BLOWFISH() or - CAMELLIA() or - CAST5() or - CHACHA20() or - DES() or - DESX() or - GOST() or - IDEA() or - KUZNYECHIK() or - MAGMA() or - TripleDES() or - DoubleDES() or - RC2() or - RC4() or - RC5() or - RSA() or - SEED() or - SM4() or - OtherCipherType() - - final class CipherAlgorithmNode extends AlgorithmNode, TCipherAlgorithm { - CipherAlgorithmInstanceOrValueConsumer instance; - - CipherAlgorithmNode() { this = TCipherAlgorithm(instance) } + KeyOperationAlgorithmNode() { this = TKeyOperationAlgorithm(instance) } override LocatableElement asElement() { result = instance } - override string getInternalType() { result = "CipherAlgorithm" } + override string getInternalType() { result = "KeyOperationAlgorithm" } - final TCipherStructureType getCipherStructure() { - this.cipherFamilyToNameAndStructure(this.getCipherFamily(), _, result) + final KeyOpAlg::CipherStructureType getSymmetricCipherStructure() { + KeyOpAlg::symmetric_cipher_to_name_and_structure(this.getAlgorithmType() + .(KeyOpAlg::SymmetricCipherAlgorithm) + .getType(), _, result) } final override string getAlgorithmName() { - this.cipherFamilyToNameAndStructure(this.getCipherFamily(), result, _) + KeyOpAlg::type_to_name(this.getAlgorithmType(), result) } - final override string getRawAlgorithmName() { - result = instance.asAlg().getRawCipherAlgorithmName() - } + final override string getRawAlgorithmName() { result = instance.asAlg().getRawAlgorithmName() } /** - * Gets the key size of this cipher, e.g., "128" or "256". + * Gets the key size variant of this algorithm in bits, e.g., 128 for "AES-128". */ - string getKeySize(Location location) { none() } // TODO + string getKeySize() { result = instance.asAlg().getKeySize() } // TODO: key sizes for known algorithms /** - * Gets the type of this cipher, e.g., "AES" or "ChaCha20". + * Gets the type of this key operation algorithm, e.g., "SymmetricEncryption(_)" or "" */ - TCipherType getCipherFamily() { result = instance.asAlg().getCipherFamily() } + KeyOpAlg::Algorithm getAlgorithmType() { result = instance.asAlg().getAlgorithmType() } /** * Gets the mode of operation of this cipher, e.g., "GCM" or "CBC". @@ -1871,55 +2046,6 @@ module CryptographyBase Input> { result.asElement() = instance.asAlg().getPaddingAlgorithm() } - bindingset[type] - final private predicate cipherFamilyToNameAndStructure( - TCipherType type, string name, TCipherStructureType s - ) { - type instanceof AES and name = "AES" and s = Block() - or - type instanceof ARIA and name = "ARIA" and s = Block() - or - type instanceof BLOWFISH and name = "Blowfish" and s = Block() - or - type instanceof CAMELLIA and name = "Camellia" and s = Block() - or - type instanceof CAST5 and name = "CAST5" and s = Block() - or - type instanceof CHACHA20 and name = "ChaCha20" and s = Stream() - or - type instanceof DES and name = "DES" and s = Block() - or - type instanceof DESX and name = "DESX" and s = Block() - or - type instanceof GOST and name = "GOST" and s = Block() - or - type instanceof IDEA and name = "IDEA" and s = Block() - or - type instanceof KUZNYECHIK and name = "Kuznyechik" and s = Block() - or - type instanceof MAGMA and name = "Magma" and s = Block() - or - type instanceof TripleDES and name = "TripleDES" and s = Block() - or - type instanceof DoubleDES and name = "DoubleDES" and s = Block() - or - type instanceof RC2 and name = "RC2" and s = Block() - or - type instanceof RC4 and name = "RC4" and s = Stream() - or - type instanceof RC5 and name = "RC5" and s = Block() - or - type instanceof RSA and name = "RSA" and s = Asymmetric() - or - type instanceof SEED and name = "SEED" and s = Block() - or - type instanceof SM4 and name = "SM4" and s = Block() - or - type instanceof OtherCipherType and - name instanceof UnknownPropertyValue and // TODO: get rid of this hack to bind structure and type - s = UnknownCipherStructureType() - } - override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or @@ -1939,16 +2065,16 @@ module CryptographyBase Input> { override predicate properties(string key, string value, Location location) { super.properties(key, value, location) or - // [ALWAYS_KNOWN] - unknown case is handled in `getCipherStructureTypeString` + // [ONLY_KNOWN] - only if symmetric, unknown case is handled in `toString` key = "Structure" and - getCipherStructureTypeString(this.getCipherStructure()) = value and - location instanceof UnknownLocation + this.getSymmetricCipherStructure().toString() = value and + location = this.getLocation() or ( // [KNOWN_OR_UNKNOWN] key = "KeySize" and - if exists(this.getKeySize(location)) - then value = this.getKeySize(location) + if exists(this.getKeySize()) + then value = this.getKeySize() else ( value instanceof UnknownPropertyValue and location instanceof UnknownLocation ) @@ -2021,32 +2147,32 @@ module CryptographyBase Input> { override string getRawAlgorithmName() { result = instance.asAlg().getRawHashAlgorithmName() } - final predicate hashTypeToNameMapping(THashType type, string name) { - type instanceof BLAKE2B and name = "BLAKE2B" + final private predicate hashTypeToNameMapping(THashType type, string name) { + type = BLAKE2B() and name = "BLAKE2B" or - type instanceof BLAKE2S and name = "BLAKE2S" + type = BLAKE2S() and name = "BLAKE2S" or - type instanceof RIPEMD160 and name = "RIPEMD160" + type = RIPEMD160() and name = "RIPEMD160" or - type instanceof MD2 and name = "MD2" + type = MD2() and name = "MD2" or - type instanceof MD4 and name = "MD4" + type = MD4() and name = "MD4" or - type instanceof MD5 and name = "MD5" + type = MD5() and name = "MD5" or - type instanceof POLY1305 and name = "POLY1305" + type = POLY1305() and name = "POLY1305" or - type instanceof SHA1 and name = "SHA1" + type = SHA1() and name = "SHA1" or - type instanceof SHA2 and name = "SHA2" + type = SHA2() and name = "SHA2" or - type instanceof SHA3 and name = "SHA3" + type = SHA3() and name = "SHA3" or - type instanceof SHAKE and name = "SHAKE" + type = SHAKE() and name = "SHAKE" or - type instanceof SM3 and name = "SM3" + type = SM3() and name = "SM3" or - type instanceof WHIRLPOOL and name = "WHIRLPOOL" + type = WHIRLPOOL() and name = "WHIRLPOOL" } /** @@ -2129,19 +2255,32 @@ module CryptographyBase Input> { private predicate isNumsCurve(string curveName, int keySize) { // ALL NUMS CURVES keySize in [256, 384, 512] and - exists(string suff | suff in ["T1"] | curveName = "NUMSP" + keySize.toString() + suff) - } - - bindingset[curveName] - predicate isEllipticCurveAlgorithmName(string curveName) { - isEllipticCurveAlgorithm(curveName, _, _) + exists(string suff | suff = "T1" | curveName = "NUMSP" + keySize.toString() + suff) } /** * Holds if `name` corresponds to a known elliptic curve. + * + * Note: As an exception, this predicate may be used for library modelling, as curve names are largely standardized. + * + * When modelling, verify that this predicate offers sufficient coverage for the library and handle edge-cases. + */ + bindingset[curveName] + predicate isEllipticCurveAlgorithmName(string curveName) { + ellipticCurveNameToKeySizeAndFamilyMapping(curveName, _, _) + } + + /** + * Relates elliptic curve names to their key size and family. + * + * Note: As an exception, this predicate may be used for library modelling, as curve names are largely standardized. + * + * When modelling, verify that this predicate offers sufficient coverage for the library and handle edge-cases. */ bindingset[rawName] - predicate isEllipticCurveAlgorithm(string rawName, int keySize, TEllipticCurveType curveFamily) { + predicate ellipticCurveNameToKeySizeAndFamilyMapping( + string rawName, int keySize, TEllipticCurveType curveFamily + ) { exists(string curveName | curveName = rawName.toUpperCase() | isSecCurve(curveName, keySize) and curveFamily = SEC() or @@ -2171,19 +2310,30 @@ module CryptographyBase Input> { ) } - final class EllipticCurveNode extends AlgorithmNode, TEllipticCurveAlgorithm { - EllipticCurveAlgorithmInstanceOrValueConsumer instance; + final class EllipticCurveNode extends AlgorithmNode, TEllipticCurve { + EllipticCurveInstanceOrValueConsumer instance; - EllipticCurveNode() { this = TEllipticCurveAlgorithm(instance) } + EllipticCurveNode() { this = TEllipticCurve(instance) } - override string getInternalType() { result = "EllipticCurveAlgorithm" } + override string getInternalType() { result = "EllipticCurve" } + + override LocatableElement asElement() { result = instance } final override string getRawAlgorithmName() { - result = instance.asAlg().getRawEllipticCurveAlgorithmName() + result = instance.asAlg().getRawEllipticCurveName() } - // NICK QUESTION: do I repeat the key size and curve family predicates here as wrappers of the instance? - override LocatableElement asElement() { result = instance } + /* + * Mandating that for Elliptic Curves specifically, users are *only* responsible + * for providing as the 'raw' name within source code. + * + * Rationale: elliptic curve names can have a lot of variation in their components + * (e.g., "secp256r1" vs "P-256"), trying to produce generalized set of properties + * is possible to capture all cases, but such modeling is likely not necessary. + * if all properties need to be captured, we can reassess how names are generated. + */ + + override string getAlgorithmName() { result = this.getRawAlgorithmName() } TEllipticCurveType getEllipticCurveFamily() { result = instance.asAlg().getEllipticCurveFamily() @@ -2197,80 +2347,10 @@ module CryptographyBase Input> { value = instance.asAlg().getKeySize() and location = this.getLocation() or - key = "StdCurveName" and - value = instance.asAlg().getStandardCurveName().toUpperCase() and + // [ONLY_KNOWN] + key = "ParsedName" and + value = instance.asAlg().getParsedEllipticCurveName() and location = this.getLocation() } - - override string getAlgorithmName() { result = this.getRawAlgorithmName().toUpperCase() } - // /** - // * Mandating that for Elliptic Curves specifically, users are responsible - // * for providing as the 'raw' name, the official name of the algorithm. - // * - // * Casing doesn't matter, we will enforce further naming restrictions on - // * `getAlgorithmName` by default. - // * - // * Rationale: elliptic curve names can have a lot of variation in their components - // * (e.g., "secp256r1" vs "P-256"), trying to produce generalized set of properties - // * is possible to capture all cases, but such modeling is likely not necessary. - // * if all properties need to be captured, we can reassess how names are generated. - // */ - // abstract override string getRawAlgorithmName(); - } - - abstract class KEMAlgorithm extends TKeyEncapsulationAlgorithm, AlgorithmNode { - final override string getInternalType() { result = "KeyEncapsulationAlgorithm" } - } - - /** - * Key agreement algorithms - */ - newtype TKeyAgreementType = - DH() or // Diffie-Hellman - EDH() or // Ephemeral Diffie-Hellman - ECDH() or // Elliptic Curve Diffie-Hellman - // Note: x25519 and x448 are applications of ECDH - OtherKeyAgreementType() - - bindingset[name] - predicate isKeyAgreementAlgorithmName(string name) { isKeyAgreementAlgorithm(name, _) } - - bindingset[name] - predicate isKeyAgreementAlgorithm(string name, TKeyAgreementType type) { - exists(string name2 | name2 = name.toUpperCase() | - name2 = "DH" and type = DH() - or - name2 = "EDH" and type = EDH() - or - name2 = "ECDH" and type = ECDH() - or - name2 = "X25519" and type = ECDH() - or - name2 = "X448" and type = ECDH() - ) - } - - abstract class KeyAgreementAlgorithmInstance extends AlgorithmInstance { - // /** - // * If the key agreement uses a curve, (e.g., ECDH) point to the curve instance. - // * none() if the agreement is not curve based (e.g., plain DH). - // * Note that if the curve is inherent to the algorithm (e.g., x25519), this will be - // * the key agreement algorithm instance itself (this). - // */ - // abstract EllipticCurveAlgorithmInstance getEllipticCurveAlgorithm(); - } - - abstract class KeyAgreementSecretGenerationOperationInstance extends OperationInstance { - /** - * The private key used in the key agreement operation. - * This key represents the local party in the key agreement. - */ - abstract ConsumerInputDataFlowNode getServerKeyConsumer(); - - /** - * The public key used in the key agreement operation, coming - * from the peer (the other party in the key agreement). - */ - abstract ConsumerInputDataFlowNode getPeerKeyConsumer(); } } From 1958c192ecdc1ed7cbb88038d1eaf72daaf22e2d Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Tue, 15 Apr 2025 23:00:12 -0400 Subject: [PATCH 081/656] Reimplement EC, MAC, key creation logic + consumer --- java/ql/lib/experimental/Quantum/JCA.qll | 1168 ++++++++++------- java/ql/lib/experimental/Quantum/Language.qll | 8 +- .../ql/src/experimental/Quantum/TestCipher.ql | 4 +- .../codeql/cryptography/Model.qll | 125 +- 4 files changed, 834 insertions(+), 471 deletions(-) diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index b75c00c3549..7507c9edbd5 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -2,11 +2,20 @@ import java import semmle.code.java.dataflow.DataFlow import semmle.code.java.dataflow.TaintTracking import semmle.code.java.controlflow.Dominance +import codeql.util.Option module JCAModel { import Language import Crypto::KeyOpAlg as KeyOpAlg + abstract class CipherAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { } + + abstract class EllipticCurveAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { } + + abstract class HashAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { } + + abstract class KeyAgreementAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { } + // TODO: Verify that the PBEWith% case works correctly bindingset[algo] predicate cipher_names(string algo) { @@ -103,10 +112,11 @@ module JCAModel { name.matches("PBEWith%") and result instanceof Crypto::PBES and withSubstring = name.regexpCapture("PBEWith(.*)", 1) + // TODO: add additional } bindingset[name] - Crypto::THashType hash_name_to_hash_type(string name, int digestLength) { + Crypto::THashType hash_name_to_type_known(string name, int digestLength) { name = "SHA-1" and result instanceof Crypto::SHA1 and digestLength = 160 or name = ["SHA-256", "SHA-384", "SHA-512"] and @@ -226,7 +236,7 @@ module JCAModel { string getPadding() { result = this.getValue().splitAt("/", 2) } } - class CipherGetInstanceCall extends Call { + class CipherGetInstanceCall extends MethodCall { CipherGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "Cipher", "getInstance") } @@ -236,17 +246,21 @@ module JCAModel { Expr getProviderArg() { result = this.getArgument(1) } } + // TODO: handle key artifact produced by unwrap private class CipherOperationCall extends MethodCall { CipherOperationCall() { - exists(string s | s in ["doFinal", "wrap", "unwrap"] | - this.getMethod().hasQualifiedName("javax.crypto", "Cipher", s) - ) + this.getMethod() + .hasQualifiedName("javax.crypto", "Cipher", ["update", "doFinal", "wrap", "unwrap"]) } + predicate isIntermediate() { this.getMethod().getName() = "update" } + Expr getInput() { result = this.getArgument(0) } Expr getOutput() { - result = this.getArgument(3) + exists(int outputIndex | this.getMethod().getParameter(outputIndex).getName() = "output" | + result = this.getArgument(outputIndex) + ) or this.getMethod().getReturnType().hasName("byte[]") and result = this } @@ -255,17 +269,18 @@ module JCAModel { } /** - * Data-flow configuration modelling flow from a cipher string literal to a `CipherGetInstanceCall` argument. + * Data-flow configuration modelling flow from a cipher string literal to a cipher algorithm consumer. */ - private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { + private module CipherAlgorithmStringToCipherConsumerConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherStringLiteral } predicate isSink(DataFlow::Node sink) { - exists(Crypto::AlgorithmValueConsumer consumer | sink = consumer.getInputNode()) + sink = any(CipherAlgorithmValueConsumer call).getInputNode() } } - module AlgorithmStringToFetchFlow = TaintTracking::Global; + module CipherAlgorithmStringToFetchFlow = + TaintTracking::Global; /** * Note: padding and a mode of operation will only exist when the padding / mode (*and its type*) are determinable. @@ -315,13 +330,13 @@ module JCAModel { class CipherStringLiteralAlgorithmInstance extends Crypto::KeyOperationAlgorithmInstance instanceof CipherStringLiteral { - Crypto::AlgorithmValueConsumer consumer; + CipherAlgorithmValueConsumer consumer; CipherStringLiteralAlgorithmInstance() { - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + CipherAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) } - Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } + CipherAlgorithmValueConsumer getConsumer() { result = consumer } override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { result = this // TODO: provider defaults @@ -368,9 +383,9 @@ module JCAModel { override string getRawHashAlgorithmName() { result = super.getPadding() } - override Crypto::THashType getHashFamily() { result = hash_name_to_hash_type(hashName, _) } + override Crypto::THashType getHashFamily() { result = hash_name_to_type_known(hashName, _) } - override int getDigestLength() { exists(hash_name_to_hash_type(hashName, result)) } + override int getDigestLength() { exists(hash_name_to_type_known(hashName, result)) } } class OAEPPaddingAlgorithmInstance extends Crypto::OAEPPaddingAlgorithmInstance, @@ -388,19 +403,13 @@ module JCAModel { * * For example, in `Cipher.getInstance(algorithm)`, this class represents `algorithm`. */ - class CipherGetInstanceAlgorithmArg extends Crypto::AlgorithmValueConsumer instanceof Expr { + class CipherGetInstanceAlgorithmArg extends CipherAlgorithmValueConsumer instanceof Expr { CipherGetInstanceCall call; CipherGetInstanceAlgorithmArg() { this = call.getAlgorithmArg() } override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } - CipherStringLiteral getOrigin(string value) { - AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(result), - DataFlow::exprNode(this.(Expr).getAChildExpr*())) and - value = result.getValue() - } - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { result.(CipherStringLiteralAlgorithmInstance).getConsumer() = this } @@ -426,133 +435,208 @@ module JCAModel { } } - private newtype TCipherModeFlowState = - TUninitializedCipherModeFlowState() or - TInitializedCipherModeFlowState(CipherInitCall call) or - TUsedCipherModeFlowState(CipherInitCall init) + signature class GetInstanceCallSig instanceof MethodCall; - abstract private class CipherModeFlowState extends TCipherModeFlowState { - string toString() { - this = TUninitializedCipherModeFlowState() and result = "uninitialized" - or - this = TInitializedCipherModeFlowState(_) and result = "initialized" - } - - abstract Crypto::KeyOperationSubtype getKeyOperationMode(); - } - - private class UninitializedCipherModeFlowState extends CipherModeFlowState, - TUninitializedCipherModeFlowState - { - override Crypto::KeyOperationSubtype getKeyOperationMode() { - result instanceof Crypto::TUnknownKeyOperationMode - } - } - - private class InitializedCipherModeFlowState extends CipherModeFlowState, - TInitializedCipherModeFlowState - { - CipherInitCall call; - DataFlow::Node node1; - DataFlow::Node node2; - Crypto::KeyOperationSubtype mode; - - InitializedCipherModeFlowState() { - this = TInitializedCipherModeFlowState(call) and - DataFlow::localFlowStep(node1, node2) and - node2.asExpr() = call.getQualifier() and - // TODO: does this make this predicate inefficient as it binds with anything? - not node1.asExpr() = call.getQualifier() and - mode = call.getCipherOperationModeType() - } - - CipherInitCall getInitCall() { result = call } - - DataFlow::Node getFstNode() { result = node1 } + signature class InitCallSig instanceof MethodCall; + signature class UseCallSig instanceof MethodCall { /** - * Returns the node *to* which the state-changing step occurs + * Holds if the use is not a final use, such as an `update()` call before `doFinal()` */ - DataFlow::Node getSndNode() { result = node2 } - - override Crypto::KeyOperationSubtype getKeyOperationMode() { result = mode } + predicate isIntermediate(); } + module MethodCallOption = Option; + /** - * Trace from cipher initialization to a cryptographic operation, - * specifically `Cipher.doFinal()`, `Cipher.wrap()`, or `Cipher.unwrap()`. + * An generic analysis module for analyzing the `getInstance` to `initialize` to `doOperation` pattern in the JCA. * - * TODO: handle `Cipher.update()` + * For example: + * ``` + * kpg = KeyPairGenerator.getInstance(); + * kpg.initialize(...); + * kpg.generate(...); + * ``` */ - private module CipherGetInstanceToCipherOperationConfig implements DataFlow::StateConfigSig { - class FlowState = TCipherModeFlowState; + module GetInstanceInitUseFlowAnalysis< + GetInstanceCallSig GetInstance, InitCallSig Init, UseCallSig Use> + { + newtype TFlowState = + TUninitialized() or + TInitialized(Init call) or + TIntermediateUse(Use call) - predicate isSource(DataFlow::Node src, FlowState state) { - state instanceof UninitializedCipherModeFlowState and - src.asExpr() instanceof CipherGetInstanceCall - } - - predicate isSink(DataFlow::Node sink, FlowState state) { none() } // TODO: document this, but this is intentional (avoid cross products?) - - predicate isSink(DataFlow::Node sink) { - exists(CipherOperationCall c | c.getQualifier() = sink.asExpr()) - } - - predicate isAdditionalFlowStep( - DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 - ) { - state1 = state1 and - node1 = state2.(InitializedCipherModeFlowState).getFstNode() and - node2 = state2.(InitializedCipherModeFlowState).getSndNode() - } - - predicate isBarrier(DataFlow::Node node, FlowState state) { - exists(CipherInitCall call | node.asExpr() = call.getQualifier() | - state instanceof UninitializedCipherModeFlowState + abstract class InitFlowState extends TFlowState { + string toString() { + this = TUninitialized() and result = "Uninitialized" or - state.(InitializedCipherModeFlowState).getInitCall() != call - ) + this = TInitialized(_) and result = "Initialized" + // TODO: add intermediate use + } + } + + class UninitializedFlowState extends InitFlowState, TUninitialized { } + + class InitializedFlowState extends InitFlowState, TInitialized { + Init call; + DataFlow::Node node1; + DataFlow::Node node2; + + InitializedFlowState() { + this = TInitialized(call) and + node2.asExpr() = call.(MethodCall).getQualifier() and + DataFlow::localFlowStep(node1, node2) and + node1 != node2 + } + + Init getInitCall() { result = call } + + DataFlow::Node getFstNode() { result = node1 } + + DataFlow::Node getSndNode() { result = node2 } + } + + class IntermediateUseState extends InitFlowState, TIntermediateUse { + Use call; + DataFlow::Node node1; + DataFlow::Node node2; + + IntermediateUseState() { + this = TIntermediateUse(call) and + call.isIntermediate() and + node1.asExpr() = call.(MethodCall).getQualifier() and + node2 = node1 + } + + Use getUseCall() { result = call } + + DataFlow::Node getFstNode() { result = node1 } + + DataFlow::Node getSndNode() { result = node2 } + } + + module GetInstanceToInitToUseConfig implements DataFlow::StateConfigSig { + class FlowState = InitFlowState; + + predicate isSource(DataFlow::Node src, FlowState state) { + state instanceof UninitializedFlowState and + src.asExpr() instanceof GetInstance + or + src = state.(InitializedFlowState).getSndNode() + or + src = state.(IntermediateUseState).getSndNode() + } + + // TODO: document this, but this is intentional (avoid cross products?) + predicate isSink(DataFlow::Node sink, FlowState state) { none() } + + predicate isSink(DataFlow::Node sink) { + exists(Init c | c.(MethodCall).getQualifier() = sink.asExpr()) + or + exists(Use c | not c.isIntermediate() and c.(MethodCall).getQualifier() = sink.asExpr()) + } + + predicate isAdditionalFlowStep( + DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 + ) { + state1 = state1 and + ( + node1 = state2.(InitializedFlowState).getFstNode() and + node2 = state2.(InitializedFlowState).getSndNode() + or + node1 = state2.(IntermediateUseState).getFstNode() and + node2 = state2.(IntermediateUseState).getSndNode() + ) + } + + predicate isBarrier(DataFlow::Node node, FlowState state) { + exists(CipherInitCall call | node.asExpr() = call.getQualifier() | + state instanceof UninitializedFlowState + or + state.(InitializedFlowState).getInitCall() != call + ) + } + } + + module GetInstanceToInitToUseFlow = DataFlow::GlobalWithState; + + GetInstance getInstantiationFromUse( + Use use, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink + ) { + src.getNode().asExpr() = result and + sink.getNode().asExpr() = use.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flowPath(src, sink) + } + + Init getInitFromUse( + Use use, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink + ) { + src.getNode().asExpr() = result.(MethodCall).getQualifier() and + sink.getNode().asExpr() = use.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flowPath(src, sink) + } + + predicate hasInit(Use use) { exists(getInitFromUse(use, _, _)) } + + Use getAnIntermediateUseFromFinalUse( + Use final, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink + ) { + not final.isIntermediate() and + result.isIntermediate() and + src.getNode().asExpr() = result.(MethodCall).getQualifier() and + sink.getNode().asExpr() = final.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flowPath(src, sink) } } - module CipherGetInstanceToCipherOperationFlow = - DataFlow::GlobalWithState; + module CipherFlowAnalysisImpl = + GetInstanceInitUseFlowAnalysis; - class CipherOperationInstance extends Crypto::KeyOperationInstance instanceof Call { - Crypto::KeyOperationSubtype mode; - CipherGetInstanceToCipherOperationFlow::PathNode sink; - CipherOperationCall doFinalize; - CipherGetInstanceAlgorithmArg consumer; + module CipherFlow = CipherFlowAnalysisImpl::GetInstanceToInitToUseFlow; - CipherOperationInstance() { - exists(CipherGetInstanceToCipherOperationFlow::PathNode src, CipherGetInstanceCall getCipher | - CipherGetInstanceToCipherOperationFlow::flowPath(src, sink) and - src.getNode().asExpr() = getCipher and - sink.getNode().asExpr() = doFinalize.getQualifier() and - sink.getState().(CipherModeFlowState).getKeyOperationMode() = mode and - this = doFinalize and - consumer = getCipher.getAlgorithmArg() - ) + Crypto::KeyOperationSubtype getKeyOperationSubtypeFromState( + CipherFlowAnalysisImpl::InitFlowState state + ) { + state instanceof CipherFlowAnalysisImpl::UninitializedFlowState and + result = Crypto::TUnknownKeyOperationMode() + or + exists(CipherInitCall call | state = CipherFlowAnalysisImpl::TInitialized(call) | + result = call.getCipherOperationModeType() + ) + } + + class CipherOperationInstance extends Crypto::KeyOperationInstance instanceof CipherOperationCall { + override Crypto::KeyOperationSubtype getKeyOperationSubtype() { + if CipherFlowAnalysisImpl::hasInit(this) + then result = CipherFlowAnalysisImpl::getInitFromUse(this, _, _).getCipherOperationModeType() + else result = Crypto::TUnknownKeyOperationMode() } - override Crypto::KeyOperationSubtype getKeyOperationSubtype() { result = mode } + CipherGetInstanceCall getInstantiationCall() { + result = CipherFlowAnalysisImpl::getInstantiationFromUse(this, _, _) + } + + CipherInitCall getInitCall() { result = CipherFlowAnalysisImpl::getInitFromUse(this, _, _) } override Crypto::ConsumerInputDataFlowNode getNonceConsumer() { - result.asExpr() = sink.getState().(InitializedCipherModeFlowState).getInitCall().getNonceArg() + result.asExpr() = this.getInitCall().getNonceArg() } override Crypto::ConsumerInputDataFlowNode getInputConsumer() { - result = doFinalize.getMessageArg() + result = super.getMessageArg() or + result = CipherFlowAnalysisImpl::getAnIntermediateUseFromFinalUse(this, _, _).getMessageArg() } override Crypto::ConsumerInputDataFlowNode getKeyConsumer() { - result.asExpr() = sink.getState().(InitializedCipherModeFlowState).getInitCall().getKeyArg() + result.asExpr() = this.getInitCall().getKeyArg() } - override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { result = consumer } + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + result = this.getInstantiationCall().getAlgorithmArg() + } override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { - result.asExpr() = doFinalize.getOutput() + result.asExpr() = super.getOutput() } } @@ -596,7 +680,6 @@ module JCAModel { } } - // e.g., getPublic or getPrivate class KeyAdditionalFlowSteps extends MethodCall { KeyAdditionalFlowSteps() { this.getCallee().hasQualifiedName("java.security", "KeyPair", "getPublic") @@ -706,12 +789,18 @@ module JCAModel { override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } } - // flow config from a known hash algorithm literal to MessageDigest.getInstance + /* + * Hash Functions + */ + + /** + * Flow from a known hash algorithm name to a `MessageDigest.getInstance(sink)` call. + */ module KnownHashAlgorithmLiteralToMessageDigestConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { hash_names(src.asExpr().(StringLiteral).getValue()) } predicate isSink(DataFlow::Node sink) { - exists(MessageDigestGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) + exists(HashAlgorithmValueConsumer consumer | sink = consumer.getInputNode()) } } @@ -719,7 +808,7 @@ module JCAModel { DataFlow::Global; class KnownHashAlgorithm extends Crypto::HashAlgorithmInstance instanceof StringLiteral { - MessageDigestAlgorithmValueConsumer consumer; + HashAlgorithmValueConsumer consumer; KnownHashAlgorithm() { hash_names(this.getValue()) and @@ -727,23 +816,25 @@ module JCAModel { consumer.getInputNode()) } - MessageDigestAlgorithmValueConsumer getConsumer() { result = consumer } + HashAlgorithmValueConsumer getConsumer() { result = consumer } override string getRawHashAlgorithmName() { result = this.(StringLiteral).getValue() } override Crypto::THashType getHashFamily() { - result = hash_name_to_hash_type(this.getRawHashAlgorithmName(), _) + result = hash_name_to_type_known(this.getRawHashAlgorithmName(), _) } override int getDigestLength() { - exists(hash_name_to_hash_type(this.getRawHashAlgorithmName(), result)) + exists(hash_name_to_type_known(this.getRawHashAlgorithmName(), result)) } } - class MessageDigestAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { + class MessageDigestGetInstanceAlgorithmValueConsumer extends HashAlgorithmValueConsumer { MessageDigestGetInstanceCall call; - MessageDigestAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + MessageDigestGetInstanceAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + MessageDigestGetInstanceCall getInstantiationCall() { result = call } override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } @@ -794,38 +885,141 @@ module JCAModel { } override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { - exists(MessageDigestGetInstanceCall call | - call.getDigestCall() = this and result = call.getAlgorithmArg() + exists(MessageDigestGetInstanceCall getInstanceCall | + getInstanceCall.getDigestCall() = this and + getInstanceCall = + result.(MessageDigestGetInstanceAlgorithmValueConsumer).getInstantiationCall() ) } } - class KeyGeneratorCallAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { - KeyGeneratorGetInstanceCall call; + /* + * Key Generation + */ - KeyGeneratorCallAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + module KeyGeneratorFlowAnalysisImpl = + GetInstanceInitUseFlowAnalysis; + + module KeyGeneratorFlow = KeyGeneratorFlowAnalysisImpl::GetInstanceToInitToUseFlow; + + abstract class KeyGeneratorParameterSpecClassInstanceExpr extends ClassInstanceExpr { + KeyGeneratorInitCall getAnInitCallUse() { + exists(DataFlow::Node sink | + KeyGeneratorParameterSpecToInitializeFlow::flow(DataFlow::exprNode(this), sink) and + result.getAlgorithmParameterSpecArg() = sink.asExpr() + ) + } + } + + class DHGenParameterSpecInstance extends KeyGeneratorParameterSpecClassInstanceExpr { + DHGenParameterSpecInstance() { + this.(ClassInstanceExpr) + .getConstructedType() + .hasQualifiedName("javax.crypto.spec", "DHGenParameterSpec") + } + + Expr getPrimeSizeArg() { result = this.getArgument(0) } + + Expr getExponentSizeArg() { result = this.getArgument(1) } + } + + class DSAParameterSpecInstance extends KeyGeneratorParameterSpecClassInstanceExpr { + DSAParameterSpecInstance() { + this.(ClassInstanceExpr) + .getConstructedType() + .hasQualifiedName("java.security.spec", "DSAParameterSpec") + } + + Expr getPArg() { result = this.getArgument(0) } + + Expr getQArg() { result = this.getArgument(1) } + + Expr getSeedLenArg() { result = this.getArgument(2) } + } + + class ECGenParameterSpecInstance extends KeyGeneratorParameterSpecClassInstanceExpr { + ECGenParameterSpecInstance() { + this.(ClassInstanceExpr) + .getConstructedType() + .hasQualifiedName("java.security.spec", "ECGenParameterSpec") + } + + Expr getCurveNameArg() { result = this.getArgument(0) } + + Expr getRandomNumberGeneratorArg() { result = this.getArgument(1) } + } + + class RSAGenParameterSpecInstance extends KeyGeneratorParameterSpecClassInstanceExpr { + RSAGenParameterSpecInstance() { + this.(ClassInstanceExpr) + .getConstructedType() + .hasQualifiedName("java.security.spec", "RSAGenParameterSpec") + } + + Expr getKeySizeArg() { result = this.getArgument(0) } + } + + private module KeyGeneratorParameterSpecToInitializeConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + src.asExpr() instanceof KeyGeneratorParameterSpecClassInstanceExpr + } + + predicate isSink(DataFlow::Node sink) { + exists(KeyGeneratorInitCall c | + c.getKeyType() = Crypto::TAsymmetricKeyType() and + c.getArgument(0) = sink.asExpr() + ) + } + } + + module KeyGeneratorParameterSpecToInitializeFlow = + DataFlow::Global; + + class ECGenParameterSpecClassInstanceExpr extends KeyGeneratorParameterSpecClassInstanceExpr { + ECGenParameterSpecClassInstanceExpr() { + this.(ClassInstanceExpr) + .getConstructedType() + .hasQualifiedName("java.security.spec", "ECGenParameterSpec") + } + + Expr getAlgorithmArg() { result = this.getArgument(0) } + } + + class KeyGenerationAlgorithmValueConsumer extends CipherAlgorithmValueConsumer, + KeyAgreementAlgorithmValueConsumer, EllipticCurveAlgorithmValueConsumer instanceof Expr + { + KeyGeneratorGetInstanceCall instantiationCall; + + KeyGenerationAlgorithmValueConsumer() { + // This is only an algorithm value consumer if it accepts a spec rather than a key size (integral) + this = instantiationCall.getAlgorithmArg() and not super.getType() instanceof IntegralType + or + // However, for general elliptic curves, getInstance("EC") is used + // and java.security.spec.ECGenParameterSpec("") is what sets the specific curve. + // The result of ECGenParameterSpec is passed to KeyPairGenerator.initialize + // If the curve is not specified, the default is used. + // We would trace the use of this inside a KeyPairGenerator.initialize + exists(KeyGeneratorInitCall initCall, ECGenParameterSpecClassInstanceExpr spec | + KeyGeneratorFlow::flow(DataFlow::exprNode(instantiationCall), + DataFlow::exprNode(initCall.getQualifier())) and + spec.getAnInitCallUse() = initCall and + spec.getAlgorithmArg() = this + ) + } override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - result.(CipherStringLiteralAlgorithmInstance).getConsumer() = this + result.(CipherStringLiteralAlgorithmInstance).getConsumer() = this or + result.(KeyAgreementStringLiteralAlgorithmInstance).getConsumer() = this or + result.(EllipticCurveStringLiteralInstance).getConsumer() = this } + + KeyGeneratorGetInstanceCall getInstantiationCall() { result = instantiationCall } } - // flow from instance created by getInstance to generateKey - module KeyGeneratorGetInstanceToGenerateConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { - exists(KeyGeneratorGetInstanceCall call | src.asExpr() = call) - } - - predicate isSink(DataFlow::Node sink) { - exists(KeyGeneratorGenerateCall call | sink.asExpr() = call.(MethodCall).getQualifier()) - } - } - - module KeyGeneratorGetInstanceToGenerateFlow = - DataFlow::Global; - + // TODO: Link getAlgorithm from KeyPairGenerator to algorithm instances or AVCs? High priority. class KeyGeneratorGetInstanceCall extends MethodCall { KeyGeneratorGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "KeyGenerator", "getInstance") @@ -834,10 +1028,36 @@ module JCAModel { } Expr getAlgorithmArg() { result = super.getArgument(0) } + } - predicate flowsToKeyGenerateCallQualifier(KeyGeneratorGenerateCall sink) { - KeyGeneratorGetInstanceToGenerateFlow::flow(DataFlow::exprNode(this), - DataFlow::exprNode(sink.(MethodCall).getQualifier())) + class KeyGeneratorInitCall extends MethodCall { + Crypto::TKeyArtifactType keyType; + + KeyGeneratorInitCall() { + this.getCallee().hasQualifiedName("java.security", "KeyPairGenerator", "initialize") and + keyType = Crypto::TAsymmetricKeyType() + or + this.getCallee().hasQualifiedName("javax.crypto", "KeyGenerator", ["init", "initialize"]) and + keyType = Crypto::TSymmetricKeyType() + } + + Crypto::TKeyArtifactType getKeyType() { result = keyType } + + Expr getAlgorithmParameterSpecArg() { + result = this.getArgument(0) and + this.getMethod().getParameterType(0).hasName("AlgorithmParameterSpec") + } + + Expr getKeySizeArg() { + result = this.getArgument(0) and + this.getMethod().getParameterType(0) instanceof IntegralType + } + + Expr getRandomnessSourceArg() { + exists(int index | + this.getMethod().getParameterType(index).hasName("SecureRandom") and + result = this.getArgument(index) + ) } } @@ -849,29 +1069,344 @@ module JCAModel { this.getCallee().hasQualifiedName("javax.crypto", "KeyGenerator", "generateKey") and type instanceof Crypto::TSymmetricKeyType or - this.getCallee().hasQualifiedName("java.security", "KeyPairGenerator", "generateKeyPair") and + this.getCallee() + .hasQualifiedName("java.security", "KeyPairGenerator", ["generateKeyPair", "genKeyPair"]) and type instanceof Crypto::TAsymmetricKeyType } + predicate isIntermediate() { none() } + override Crypto::ArtifactOutputDataFlowNode getOutputKeyArtifact() { result.asExpr() = this } override Crypto::KeyArtifactType getOutputKeyType() { result = type } override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { - exists(KeyGeneratorGetInstanceCall getInstance | - getInstance.flowsToKeyGenerateCallQualifier(this) and result = getInstance.getAlgorithmArg() - ) + KeyGeneratorFlowAnalysisImpl::getInstantiationFromUse(this, _, _) = + result.(KeyGenerationAlgorithmValueConsumer).getInstantiationCall() } Crypto::AlgorithmInstance getAKnownAlgorithm() { result = this.getAnAlgorithmValueConsumer().getAKnownAlgorithmSource() } - override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { none() } + override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { + KeyGeneratorFlowAnalysisImpl::getInitFromUse(this, _, _).getKeySizeArg() = result.asExpr() + } override string getKeySizeFixed() { none() } } + /* + * Key Derivation Functions (KDFs) + */ + + class KeySpecInstantiation extends ClassInstanceExpr { + KeySpecInstantiation() { + this.getConstructedType() + .hasQualifiedName("javax.crypto.spec", + ["PBEKeySpec", "SecretKeySpec", "PBEKeySpec", "DESedeKeySpec"]) + } + + Expr getPasswordArg() { result = this.getArgument(0) } + } + + class PBEKeySpecInstantiation extends KeySpecInstantiation { + PBEKeySpecInstantiation() { this.getConstructedType().hasName("PBEKeySpec") } + + Expr getSaltArg() { result = this.getArgument(1) } + + Expr getIterationCountArg() { result = this.getArgument(2) } + + Expr getKeyLengthArg() { result = this.getArgument(3) } + } + + module KeySpecInstantiationToGenerateSecretFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + exists(KeySpecInstantiation call | src.asExpr() = call) + } + + predicate isSink(DataFlow::Node sink) { + exists(SecretKeyFactoryGenerateSecretCall call | sink.asExpr() = call.getKeySpecArg()) + } + } + + module KDFAlgorithmStringToGetInstanceConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { kdf_names(src.asExpr().(StringLiteral).getValue()) } + + predicate isSink(DataFlow::Node sink) { + exists(SecretKeyFactoryGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) + } + } + + module KeySpecInstantiationToGenerateSecretFlow = + DataFlow::Global; + + module KDFAlgorithmStringToGetInstanceFlow = + DataFlow::Global; + + class DUMMY_UNUSED_METHODCALL extends MethodCall { + DUMMY_UNUSED_METHODCALL() { none() } + } + + module SecretKeyFactoryFlowAnalysisImpl = + GetInstanceInitUseFlowAnalysis; + + module SecretKeyFactoryFlow = SecretKeyFactoryFlowAnalysisImpl::GetInstanceToInitToUseFlow; + + class SecretKeyFactoryGetInstanceCall extends MethodCall { + SecretKeyFactoryGetInstanceCall() { + this.getCallee().hasQualifiedName("javax.crypto", "SecretKeyFactory", "getInstance") + } + + Expr getAlgorithmArg() { result = this.getArgument(0) } + } + + class SecretKeyFactoryGenerateSecretCall extends MethodCall { + SecretKeyFactoryGenerateSecretCall() { + this.getCallee().hasQualifiedName("javax.crypto", "SecretKeyFactory", "generateSecret") + } + + Expr getKeySpecArg() { result = this.getArgument(0) } + + predicate isIntermediate() { none() } + } + + class KDFAlgorithmStringLiteral extends Crypto::KeyDerivationAlgorithmInstance instanceof StringLiteral + { + SecretKeyFactoryKDFAlgorithmValueConsumer consumer; + + KDFAlgorithmStringLiteral() { + kdf_names(this.getValue()) and + KDFAlgorithmStringToGetInstanceFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + } + + override string getRawKDFAlgorithmName() { result = super.getValue() } + + override Crypto::TKeyDerivationType getKDFType() { + result = kdf_name_to_kdf_type(super.getValue(), _) + } + + SecretKeyFactoryKDFAlgorithmValueConsumer getConsumer() { result = consumer } + } + + class PBKDF2AlgorithmStringLiteral extends KDFAlgorithmStringLiteral, + Crypto::PBKDF2AlgorithmInstance, Crypto::HMACAlgorithmInstance, Crypto::HashAlgorithmInstance, + Crypto::AlgorithmValueConsumer + { + PBKDF2AlgorithmStringLiteral() { super.getKDFType() instanceof Crypto::PBKDF2 } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { none() } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { result = this } + + override Crypto::THashType getHashFamily() { + result = hash_name_to_type_known(this.getRawHashAlgorithmName(), _) + } + + override int getDigestLength() { + exists(hash_name_to_type_known(this.getRawHashAlgorithmName(), result)) + } + + override string getRawMACAlgorithmName() { + result = super.getRawKDFAlgorithmName().splitAt("PBKDF2With", 1) + } + + override string getRawHashAlgorithmName() { + result = super.getRawKDFAlgorithmName().splitAt("WithHmac", 1) + } + + override Crypto::TMACType getMACType() { result instanceof Crypto::THMAC } + + override Crypto::AlgorithmValueConsumer getHMACAlgorithmValueConsumer() { result = this } + + override Crypto::AlgorithmValueConsumer getHashAlgorithmValueConsumer() { result = this } + } + + class SecretKeyFactoryKDFAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer instanceof Expr + { + SecretKeyFactoryGetInstanceCall call; + + SecretKeyFactoryKDFAlgorithmValueConsumer() { this = call.getAlgorithmArg() } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + exists(KDFAlgorithmStringLiteral l | l.getConsumer() = this and result = l) + } + + SecretKeyFactoryGetInstanceCall getInstantiation() { result = call } + } + + class KeyDerivationOperationCall extends Crypto::KeyDerivationOperationInstance instanceof SecretKeyFactoryGenerateSecretCall + { + KeyDerivationOperationCall() { not super.isIntermediate() } + + KeySpecInstantiation getKeySpecInstantiation() { + KeySpecInstantiationToGenerateSecretFlow::flow(DataFlow::exprNode(result), + DataFlow::exprNode(super.getKeySpecArg())) + } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + result.(SecretKeyFactoryKDFAlgorithmValueConsumer).getInstantiation() = + SecretKeyFactoryFlowAnalysisImpl::getInstantiationFromUse(this, _, _) + } + + override Crypto::ConsumerInputDataFlowNode getSaltConsumer() { + result.asExpr() = this.getKeySpecInstantiation().(PBEKeySpecInstantiation).getSaltArg() + } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { + result.asExpr() = this.getKeySpecInstantiation().getPasswordArg() + } + + override Crypto::ConsumerInputDataFlowNode getIterationCountConsumer() { + result.asExpr() = + this.getKeySpecInstantiation().(PBEKeySpecInstantiation).getIterationCountArg() + } + + override Crypto::ArtifactOutputDataFlowNode getOutputKeyArtifact() { result.asExpr() = this } + + override Crypto::ConsumerInputDataFlowNode getOutputKeySizeConsumer() { + result.asExpr() = this.getKeySpecInstantiation().(PBEKeySpecInstantiation).getKeyLengthArg() + } + + override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { + result.asExpr() = this.getKeySpecInstantiation().(PBEKeySpecInstantiation).getKeyLengthArg() + } + + override string getKeySizeFixed() { none() } + + override string getOutputKeySizeFixed() { none() } + + override string getIterationCountFixed() { none() } + } + + /* + * Key agreement + */ + + module KeyAgreementFlowAnalysisImpl = + GetInstanceInitUseFlowAnalysis; + + class KeyAgreementStringLiteral extends StringLiteral { + KeyAgreementStringLiteral() { key_agreement_names(this.getValue()) } + } + + /** + * Data-flow configuration modelling flow from a key agreement string literal to a key agreement algorithm consumer. + */ + private module KeyAgreementAlgorithmStringToConsumerConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KeyAgreementStringLiteral } + + predicate isSink(DataFlow::Node sink) { + sink = any(KeyAgreementAlgorithmValueConsumer consumer).getInputNode() + } + } + + module KeyAgreementAlgorithmStringToConsumerFlow = + TaintTracking::Global; + + class KeyAgreementInitCall extends MethodCall { + KeyAgreementInitCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "init") + } + + Expr getServerKeyArg() { result = this.getArgument(0) } + } + + class KeyAgreementGetInstanceCall extends MethodCall { + KeyAgreementGetInstanceCall() { + this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "getInstance") + } + + Expr getAlgorithmArg() { result = super.getArgument(0) } + } + + private class KeyAgreementGetInstanceAlgorithmArgValueConsumer extends KeyAgreementAlgorithmValueConsumer + { + KeyAgreementGetInstanceCall call; + + KeyAgreementGetInstanceAlgorithmArgValueConsumer() { this = call.getAlgorithmArg() } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + result.(KeyAgreementStringLiteralAlgorithmInstance).getConsumer() = this + } + + KeyAgreementGetInstanceCall getInstantiationCall() { result = call } + } + + class KeyAgreementStringLiteralAlgorithmInstance extends Crypto::KeyAgreementAlgorithmInstance instanceof KeyAgreementStringLiteral + { + KeyAgreementAlgorithmValueConsumer consumer; + + KeyAgreementStringLiteralAlgorithmInstance() { + KeyAgreementAlgorithmStringToConsumerFlow::flow(DataFlow::exprNode(this), + consumer.getInputNode()) + } + + override string getRawKeyAgreementAlgorithmName() { result = super.getValue() } + + override Crypto::TKeyAgreementType getKeyAgreementType() { + if key_agreement_name_to_type_known(_, super.getValue()) + then key_agreement_name_to_type_known(result, super.getValue()) + else result = Crypto::UnknownKeyAgreementType() + } + + KeyAgreementAlgorithmValueConsumer getConsumer() { result = consumer } + } + + class KeyAgreementCall extends MethodCall { + KeyAgreementCall() { + this.getCallee() + .hasQualifiedName("javax.crypto", "KeyAgreement", ["generateSecret", "doPhase"]) + } + + predicate isIntermediate() { this.getCallee().getName() = "doPhase" } + + DataFlow::Node getOutputNode() { + result.asExpr() = this and + not this.isIntermediate() + } + + Expr getPeerKeyArg() { + this.isIntermediate() and + result = this.getArgument(0) and + this.getCallee().getName() = "doPhase" + } + } + + class KeyAgreementSecretGenerationOperationInstance extends Crypto::KeyAgreementSecretGenerationOperationInstance instanceof KeyAgreementCall + { + KeyAgreementSecretGenerationOperationInstance() { + // exclude doPhase (only include generateSecret) + not super.isIntermediate() + } + + override Crypto::ConsumerInputDataFlowNode getServerKeyConsumer() { + result.asExpr() = KeyAgreementFlowAnalysisImpl::getInitFromUse(this, _, _).getServerKeyArg() + } + + override Crypto::ConsumerInputDataFlowNode getPeerKeyConsumer() { + result.asExpr() = + KeyAgreementFlowAnalysisImpl::getAnIntermediateUseFromFinalUse(this, _, _).getPeerKeyArg() + } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + result.(KeyAgreementGetInstanceAlgorithmArgValueConsumer).getInstantiationCall() = + KeyAgreementFlowAnalysisImpl::getInstantiationFromUse(this, _, _) + } + + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { result.asExpr() = this } + } + + /* + * MACs + */ + module MACKnownAlgorithmToConsumerConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { mac_names(src.asExpr().(StringLiteral).getValue()) } @@ -1001,317 +1536,50 @@ module JCAModel { } } - module SecretKeyFactoryGetInstanceToGenerateSecretFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { - exists(SecretKeyFactoryGetInstanceCall call | src.asExpr() = call) - } - - predicate isSink(DataFlow::Node sink) { - exists(SecretKeyFactoryGenerateSecretCall call | - sink.asExpr() = call.(MethodCall).getQualifier() - ) - } - } - - module PBEKeySpecInstantiationToGenerateSecretFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { - exists(PBEKeySpecInstantiation call | src.asExpr() = call) - } - - predicate isSink(DataFlow::Node sink) { - exists(SecretKeyFactoryGenerateSecretCall call | sink.asExpr() = call.getKeySpecArg()) - } - } - - module KDFAlgorithmStringToGetInstanceConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { kdf_names(src.asExpr().(StringLiteral).getValue()) } - - predicate isSink(DataFlow::Node sink) { - exists(SecretKeyFactoryGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) - } - } - - module SecretKeyFactoryGetInstanceToGenerateSecretFlow = - DataFlow::Global; - - module PBEKeySpecInstantiationToGenerateSecretFlow = - DataFlow::Global; - - module KDFAlgorithmStringToGetInstanceFlow = - DataFlow::Global; - - class PBEKeySpecInstantiation extends ClassInstanceExpr { - PBEKeySpecInstantiation() { - this.getConstructedType().hasQualifiedName("javax.crypto.spec", "PBEKeySpec") - } - - Expr getPasswordArg() { result = this.getArgument(0) } - - Expr getSaltArg() { result = this.getArgument(1) } - - Expr getIterationCountArg() { result = this.getArgument(2) } - - Expr getKeyLengthArg() { result = this.getArgument(3) } - } - - class SecretKeyFactoryGetInstanceCall extends MethodCall { - SecretKeyFactoryGetInstanceCall() { - this.getCallee().hasQualifiedName("javax.crypto", "SecretKeyFactory", "getInstance") - } - - Expr getAlgorithmArg() { result = this.getArgument(0) } - - SecretKeyFactoryGenerateSecretCall getOperation() { - SecretKeyFactoryGetInstanceToGenerateSecretFlow::flow(DataFlow::exprNode(this), - DataFlow::exprNode(result.(MethodCall).getQualifier())) - } - } - - class KDFAlgorithmStringLiteral extends Crypto::KeyDerivationAlgorithmInstance instanceof StringLiteral - { - SecretKeyFactoryKDFAlgorithmValueConsumer consumer; - - KDFAlgorithmStringLiteral() { - kdf_names(this.getValue()) and - KDFAlgorithmStringToGetInstanceFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) - } - - override string getRawKDFAlgorithmName() { result = super.getValue() } - - override Crypto::TKeyDerivationType getKDFType() { - result = kdf_name_to_kdf_type(super.getValue(), _) - } - - SecretKeyFactoryKDFAlgorithmValueConsumer getConsumer() { result = consumer } - } - - class PBKDF2AlgorithmStringLiteral extends KDFAlgorithmStringLiteral, - Crypto::PBKDF2AlgorithmInstance, Crypto::HMACAlgorithmInstance, Crypto::HashAlgorithmInstance, - Crypto::AlgorithmValueConsumer - { - PBKDF2AlgorithmStringLiteral() { super.getKDFType() instanceof Crypto::PBKDF2 } - - override Crypto::ConsumerInputDataFlowNode getInputNode() { none() } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { result = this } - - override Crypto::THashType getHashFamily() { - result = hash_name_to_hash_type(this.getRawHashAlgorithmName(), _) - } - - override int getDigestLength() { - exists(hash_name_to_hash_type(this.getRawHashAlgorithmName(), result)) - } - - override string getRawMACAlgorithmName() { - result = super.getRawKDFAlgorithmName().splitAt("PBKDF2With", 1) - } - - override string getRawHashAlgorithmName() { - result = super.getRawKDFAlgorithmName().splitAt("WithHmac", 1) - } - - override Crypto::TMACType getMACType() { result instanceof Crypto::THMAC } - - override Crypto::AlgorithmValueConsumer getHMACAlgorithmValueConsumer() { result = this } - - override Crypto::AlgorithmValueConsumer getHashAlgorithmValueConsumer() { result = this } - } - - class SecretKeyFactoryKDFAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer instanceof Expr - { - SecretKeyFactoryGetInstanceCall call; - - SecretKeyFactoryKDFAlgorithmValueConsumer() { this = call.getAlgorithmArg() } - - override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - exists(KDFAlgorithmStringLiteral l | l.getConsumer() = this and result = l) - } - - SecretKeyFactoryGetInstanceCall getInstantiation() { result = call } - } - - class SecretKeyFactoryGenerateSecretCall extends Crypto::KeyDerivationOperationInstance instanceof MethodCall - { - SecretKeyFactoryGenerateSecretCall() { - super.getCallee().hasQualifiedName("javax.crypto", "SecretKeyFactory", "generateSecret") - } - - Expr getKeySpecArg() { - result = super.getArgument(0) and - super.getMethod().getParameterType(0).hasName("KeySpec") - } - - PBEKeySpecInstantiation getInstantiation() { - PBEKeySpecInstantiationToGenerateSecretFlow::flow(DataFlow::exprNode(result), - DataFlow::exprNode(this.getKeySpecArg())) - } - - override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { - exists(SecretKeyFactoryGetInstanceCall instantiation | - instantiation.getOperation() = this and result = instantiation.getAlgorithmArg() - ) - } - - override Crypto::ConsumerInputDataFlowNode getSaltConsumer() { - result.asExpr() = this.getInstantiation().getSaltArg() - } - - override Crypto::ConsumerInputDataFlowNode getInputConsumer() { - result.asExpr() = this.getInstantiation().getPasswordArg() - } - - override Crypto::ConsumerInputDataFlowNode getIterationCountConsumer() { - result.asExpr() = this.getInstantiation().getIterationCountArg() - } - - override Crypto::ArtifactOutputDataFlowNode getOutputKeyArtifact() { - result.asExpr() = this and - super.getMethod().getReturnType().hasName("SecretKey") - } - - override Crypto::ConsumerInputDataFlowNode getOutputKeySizeConsumer() { - result.asExpr() = this.getInstantiation().getKeyLengthArg() - } - - override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { - result.asExpr() = this.getInstantiation().getKeyLengthArg() - } - - override string getKeySizeFixed() { none() } - - override string getOutputKeySizeFixed() { none() } - - override string getIterationCountFixed() { none() } - } - - class KeyAgreementStringLiteral extends StringLiteral { - KeyAgreementStringLiteral() { key_agreement_names(this.getValue()) } - } - - /** - * Data-flow configuration modelling flow from a key agreement literal to a value consumer argument. + /* + * Elliptic Curves (EC) */ - private module KeyAgreementAlgorithmStringToFetchConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KeyAgreementStringLiteral } + + module EllipticCurveStringToConsumerConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof EllipticCurveStringLiteral } predicate isSink(DataFlow::Node sink) { - exists(Crypto::AlgorithmValueConsumer consumer | sink = consumer.getInputNode()) + exists(EllipticCurveAlgorithmValueConsumer consumer | sink = consumer.getInputNode()) } } - module KeyAgreementAlgorithmStringToFetchFlow = - TaintTracking::Global; + module EllipticCurveStringToConsumerFlow = DataFlow::Global; - class KeyAgreementInitCall extends MethodCall { - KeyAgreementInitCall() { - this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "init") - } - - Expr getServerKeyArg() { result = this.getArgument(0) } + class EllipticCurveStringLiteral extends StringLiteral { + EllipticCurveStringLiteral() { elliptic_curve_names(this.getValue()) } } - private module KeyAgreementInitQualifierToSecretGenQualifierConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { - exists(KeyAgreementInitCall init | src.asExpr() = init.getQualifier()) - } - - predicate isSink(DataFlow::Node sink) { - exists(KeyAgreementGenerateSecretCall c | sink.asExpr() = c.getQualifier()) - } - - /** - * Barrier if we go into another init, assume the second init overwrites the first - */ - predicate isBarrierIn(DataFlow::Node node) { isSource(node) } - } - - module KeyAgreementInitQualifierToSecretGenQualifierFlow = - DataFlow::Global; - - class KeyAgreementGetInstanceCall extends MethodCall { - KeyAgreementGetInstanceCall() { - this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "getInstance") - } - - Expr getAlgorithmArg() { result = super.getArgument(0) } - } - - class KeyAgreementAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { - KeyAgreementGetInstanceCall call; - - KeyAgreementAlgorithmValueConsumer() { this = call.getAlgorithmArg() } - - DataFlow::Node getResultNode() { result.asExpr() = call } - - override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - result.(KeyAgreementStringLiteralAlgorithmInstance).getConsumer() = this - } - } - - class KeyAgreementStringLiteralAlgorithmInstance extends Crypto::KeyAgreementAlgorithmInstance instanceof KeyAgreementStringLiteral + class EllipticCurveStringLiteralInstance extends Crypto::EllipticCurveInstance instanceof EllipticCurveStringLiteral { - Crypto::AlgorithmValueConsumer consumer; + EllipticCurveAlgorithmValueConsumer consumer; - KeyAgreementStringLiteralAlgorithmInstance() { - KeyAgreementAlgorithmStringToFetchFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) + EllipticCurveStringLiteralInstance() { + EllipticCurveStringToConsumerFlow::flow(DataFlow::exprNode(this), consumer.getInputNode()) } - Crypto::AlgorithmValueConsumer getConsumer() { result = consumer } + override string getRawEllipticCurveName() { result = super.getValue() } - override string getRawKeyAgreementAlgorithmName() { result = super.getValue() } - - override Crypto::TKeyAgreementType getKeyAgreementType() { - if key_agreement_name_to_type_known(_, super.getValue()) - then key_agreement_name_to_type_known(result, super.getValue()) - else result = Crypto::UnknownKeyAgreementType() - } - } - - class KeyAgreementGenerateSecretCall extends MethodCall { - KeyAgreementGenerateSecretCall() { - this.getCallee().hasQualifiedName("javax.crypto", "KeyAgreement", "generateSecret") + override Crypto::TEllipticCurveType getEllipticCurveType() { + if Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), _, _) + then + Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), _, result) + else result = Crypto::OtherEllipticCurveType() } - KeyAgreementInitCall getKeyAgreementInitCall() { - KeyAgreementInitQualifierToSecretGenQualifierFlow::flow(DataFlow::exprNode(result - .getQualifier()), DataFlow::exprNode(this.getQualifier())) - } - } - - private module KeyAgreementAVCToInitQualifierConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { - exists(KeyAgreementAlgorithmValueConsumer consumer | consumer.getResultNode() = src) + override string getKeySize() { + exists(int keySize | + Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), keySize, + _) + | + result = keySize.toString() + ) } - predicate isSink(DataFlow::Node sink) { - exists(KeyAgreementInitCall init | sink.asExpr() = init.getQualifier()) - } - } - - module KeyAgreementAVCToInitQualifierFlow = - DataFlow::Global; - - class KeyAgreementSecretGenerationOperationInstance extends Crypto::KeyAgreementSecretGenerationOperationInstance instanceof KeyAgreementGenerateSecretCall - { - override Crypto::ConsumerInputDataFlowNode getServerKeyConsumer() { - this.(KeyAgreementGenerateSecretCall).getKeyAgreementInitCall().getServerKeyArg() = - result.asExpr() - } - - override Crypto::ConsumerInputDataFlowNode getPeerKeyConsumer() { - none() //TODO - } - - override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { - none() // TODO: key agreeement has its own algorithm consumer, separate from the key - // TODO: the char pred must trace from the consumer to here, - // in theory, along that path we would get the init and doPhase, but can I just get those - // separately avoiding a complicated config state for dataflow? - } + EllipticCurveAlgorithmValueConsumer getConsumer() { result = consumer } } } diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 8027ef33df7..1e12f6f1ac8 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -100,7 +100,7 @@ class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceo // where typical algorithms are specified, but EC specifically means set up a // default curve container, that will later be specified explicitly (or if not a default) // curve is used. - this = any(Literal l | l.getValue() != "EC") + this.getValue() != "EC" } override DataFlow::Node getOutputNode() { result.asExpr() = this } @@ -194,6 +194,12 @@ module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) } } diff --git a/java/ql/src/experimental/Quantum/TestCipher.ql b/java/ql/src/experimental/Quantum/TestCipher.ql index d56e1680440..6779a64f608 100644 --- a/java/ql/src/experimental/Quantum/TestCipher.ql +++ b/java/ql/src/experimental/Quantum/TestCipher.ql @@ -5,7 +5,7 @@ import experimental.Quantum.Language from - Crypto::CipherOperationNode op, Crypto::KeyOperationAlgorithmNode a, + Crypto::KeyOperationNode op, Crypto::KeyOperationAlgorithmNode a, Crypto::ModeOfOperationAlgorithmNode m, Crypto::PaddingAlgorithmNode p, Crypto::NonceArtifactNode nonce, Crypto::KeyArtifactNode k where @@ -15,4 +15,4 @@ where nonce = op.getANonce() and k = op.getAKey() select op, op.getKeyOperationSubtype(), a, a.getRawAlgorithmName(), m, m.getRawAlgorithmName(), p, - p.getRawAlgorithmName(), nonce, k, k.getSourceElement() + p.getRawAlgorithmName(), nonce, k diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 782c53e1043..510f334bc62 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -438,6 +438,19 @@ module CryptographyBase Input> { override DataFlowNode getOutputNode() { result = creator.getOutputArtifact() } } + /** + * An artifact representing the shared secret generated by key agreement operations. + */ + final class KeyAgreementSharedSecretOutputArtifactInstance extends OutputArtifactInstance { + KeyAgreementSecretGenerationOperationInstance creator; + + KeyAgreementSharedSecretOutputArtifactInstance() { + Input::dfn_to_element(creator.getOutputArtifact()) = this + } + + override DataFlowNode getOutputNode() { result = creator.getOutputArtifact() } + } + // Artifacts that may be outputs or inputs newtype TKeyArtifactType = TSymmetricKeyType() or @@ -871,7 +884,7 @@ module CryptographyBase Input> { */ abstract string getRawEllipticCurveName(); - abstract TEllipticCurveType getEllipticCurveFamily(); + abstract TEllipticCurveType getEllipticCurveType(); abstract string getKeySize(); @@ -1043,6 +1056,13 @@ module CryptographyBase Input> { * from the peer (the other party in the key agreement). */ abstract ConsumerInputDataFlowNode getPeerKeyConsumer(); + + /** + * The output artifact produced by the key agreement operation. + * This artifact represents the shared secret generated during + * the key agreement process. + */ + abstract ArtifactOutputDataFlowNode getOutputArtifact(); } private signature class AlgorithmInstanceType instanceof AlgorithmInstance; @@ -1066,14 +1086,17 @@ module CryptographyBase Input> { this instanceof Alg or // Or an AlgorithmValueConsumer with unknown sources and no known sources + not this instanceof Alg and isCandidateAVC(this) and not exists(this.(AlgorithmValueConsumer).getAKnownAlgorithmSource()) and - exists(this.(AlgorithmValueConsumer).getAGenericSource()) + exists(GenericSourceInstance src | + src = this.(AlgorithmValueConsumer).getAGenericSource() and src != this + ) } Alg asAlg() { result = this } - AlgorithmValueConsumer asAVC() { result = this } + AlgorithmValueConsumer asAVC() { result = this and not this instanceof Alg } } } @@ -1098,6 +1121,13 @@ module CryptographyBase Input> { private predicate isEllipticCurveAVC(AlgorithmValueConsumer avc) { exists(ECDHKeyAgreementAlgorithmInstance alg | avc = alg.getEllipticCurveAlgorithmValueConsumer() + ) or + exists(KeyGenerationOperationInstance op | op.getAnAlgorithmValueConsumer() = avc) + } + + private predicate isKeyAgreementAVC(AlgorithmValueConsumer avc) { + exists(KeyAgreementSecretGenerationOperationInstance op | + op.getAnAlgorithmValueConsumer() = avc ) } @@ -1116,10 +1146,14 @@ module CryptographyBase Input> { final private class EllipticCurveInstanceOrValueConsumer = AlgorithmInstanceOrValueConsumer::Union; + final private class KeyAgreementAlgorithmInstanceOrValueConsumer = + AlgorithmInstanceOrValueConsumer::Union; + private newtype TNode = // Output artifacts (data that is not an operation or algorithm, e.g., a key) TDigest(DigestArtifactInstance e) or TKey(KeyArtifactInstance e) or + TSharedSecret(KeyAgreementSharedSecretOutputArtifactInstance e) or // Input artifacts (synthetic nodes, used to differentiate input as entities) TNonceInput(NonceArtifactConsumer e) or TMessageInput(MessageArtifactConsumer e) or @@ -1140,12 +1174,13 @@ module CryptographyBase Input> { // All other operations THashOperation(HashOperationInstance e) or TMACOperation(MACOperationInstance e) or + TKeyAgreementOperation(KeyAgreementSecretGenerationOperationInstance e) or // All other algorithms TEllipticCurve(EllipticCurveInstanceOrValueConsumer e) or THashAlgorithm(HashAlgorithmInstanceOrValueConsumer e) or TKeyDerivationAlgorithm(KeyDerivationAlgorithmInstanceOrValueConsumer e) or TMACAlgorithm(MACAlgorithmInstanceOrValueConsumer e) or - TKeyAgreementAlgorithm(KeyAgreementAlgorithmInstance e) or + TKeyAgreementAlgorithm(KeyAgreementAlgorithmInstanceOrValueConsumer e) or // Generic source nodes, i.e., sources of data that are not resolvable to a specific known asset. TGenericSourceNode(GenericSourceInstance e) { // An element modelled as a `GenericSourceInstance` can also be modelled as a `KnownElement` @@ -1492,6 +1527,19 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } } + /** + * A shared secret artifact produced by a key agreement operation. + */ + final class SharedSecretArtifactNode extends ArtifactNode, TSharedSecret { + KeyAgreementSharedSecretOutputArtifactInstance instance; + + SharedSecretArtifactNode() { this = TSharedSecret(instance) } + + final override string getInternalType() { result = "SharedSecret" } + + override LocatableElement asElement() { result = instance } + } + abstract class KeyCreationOperationNode extends OperationNode, TKeyCreationOperation { KeyCreationOperationInstance instance; @@ -1599,6 +1647,48 @@ module CryptographyBase Input> { } } + class KeyAgreementOperationNode extends OperationNode, TKeyAgreementOperation { + KeyAgreementSecretGenerationOperationInstance instance; + + KeyAgreementOperationNode() { this = TKeyAgreementOperation(instance) } + + final override string getInternalType() { result = "KeyAgreementOperation" } + + override LocatableElement asElement() { result = instance } + + override predicate isCandidateAlgorithmNode(AlgorithmNode node) { + node instanceof KeyAgreementAlgorithmNode + } + + SharedSecretArtifactNode getOutput() { + result.asElement() = instance.getOutputArtifact().getArtifact() + } + + override NodeBase getChild(string key) { + result = super.getChild(key) + or + // [ALWAYS_KNOWN] + key = "Output" and + result = this.getOutput() + } + } + + class KeyAgreementAlgorithmNode extends AlgorithmNode, TKeyAgreementAlgorithm { + KeyAgreementAlgorithmInstanceOrValueConsumer instance; + + KeyAgreementAlgorithmNode() { this = TKeyAgreementAlgorithm(instance) } + + final override string getInternalType() { result = "KeyAgreementAlgorithm" } + + override LocatableElement asElement() { result = instance } + + final override string getRawAlgorithmName() { + result = instance.asAlg().getRawKeyAgreementAlgorithmName() + } + + override string getAlgorithmName() { result = this.getRawAlgorithmName() } // TODO: standardize? + } + class KeyGenerationOperationNode extends KeyCreationOperationNode { KeyGenerationOperationInstance keyGenInstance; @@ -2296,16 +2386,17 @@ module CryptographyBase Input> { or curveName = "CURVE25519" and keySize = 255 and curveFamily = CURVE25519() or - curveName = "X25519" and keySize = 255 and curveFamily = CURVE25519() - or - curveName = "ED25519" and keySize = 255 and curveFamily = CURVE25519() - or - curveName = "CURVE448" and keySize = 448 and curveFamily = CURVE448() - or - curveName = "ED448" and keySize = 448 and curveFamily = CURVE448() - or - curveName = "X448" and keySize = 448 and curveFamily = CURVE448() - or + // TODO: separate these into key agreement logic or sign/verify (ECDSA / ECDH) + // or + // curveName = "X25519" and keySize = 255 and curveFamily = CURVE25519() + // or + // curveName = "ED25519" and keySize = 255 and curveFamily = CURVE25519() + // or + // curveName = "ED448" and keySize = 448 and curveFamily = CURVE448() + // curveName = "CURVE448" and keySize = 448 and curveFamily = CURVE448() + // or + // or + // curveName = "X448" and keySize = 448 and curveFamily = CURVE448() curveName = "SM2" and keySize in [256, 512] and curveFamily = SM2() ) } @@ -2335,9 +2426,7 @@ module CryptographyBase Input> { override string getAlgorithmName() { result = this.getRawAlgorithmName() } - TEllipticCurveType getEllipticCurveFamily() { - result = instance.asAlg().getEllipticCurveFamily() - } + TEllipticCurveType getEllipticCurveType() { result = instance.asAlg().getEllipticCurveType() } override predicate properties(string key, string value, Location location) { super.properties(key, value, location) @@ -2347,7 +2436,7 @@ module CryptographyBase Input> { value = instance.asAlg().getKeySize() and location = this.getLocation() or - // [ONLY_KNOWN] + // [KNOWN_OR_UNKNOWN] key = "ParsedName" and value = instance.asAlg().getParsedEllipticCurveName() and location = this.getLocation() From 6a284eeecb4feddcf7d5541461c377fef792e61c Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 23 Apr 2025 13:41:03 +0200 Subject: [PATCH 082/656] Merged `ES6Class` into `FunctionStyleClass` --- .../lib/semmle/javascript/dataflow/Nodes.qll | 281 ++++++++++-------- 1 file changed, 164 insertions(+), 117 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 2e231383522..8b41ed5b82c 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -1214,81 +1214,6 @@ module ClassNode { DataFlow::Node getADecorator() { none() } } - /** - * An ES6 class as a `ClassNode` instance. - */ - private class ES6Class extends Range, DataFlow::ValueNode { - override ClassDefinition astNode; - - override string getName() { result = astNode.getName() } - - override string describe() { result = astNode.describe() } - - override FunctionNode getConstructor() { result = astNode.getConstructor().getBody().flow() } - - override FunctionNode getInstanceMember(string name, MemberKind kind) { - exists(MethodDeclaration method | - method = astNode.getMethod(name) and - not method.isStatic() and - kind = MemberKind::of(method) and - result = method.getBody().flow() - ) - or - kind = MemberKind::method() and - result = this.getConstructor().getReceiver().getAPropertySource(name) - } - - override FunctionNode getAnInstanceMember(MemberKind kind) { - exists(MethodDeclaration method | - method = astNode.getAMethod() and - not method.isStatic() and - kind = MemberKind::of(method) and - result = method.getBody().flow() - ) - or - kind = MemberKind::method() and - result = this.getConstructor().getReceiver().getAPropertySource() - } - - override FunctionNode getStaticMember(string name, MemberKind kind) { - exists(MethodDeclaration method | - method = astNode.getMethod(name) and - method.isStatic() and - kind = MemberKind::of(method) and - result = method.getBody().flow() - ) - or - kind.isMethod() and - result = this.getAPropertySource(name) - } - - override FunctionNode getAStaticMember(MemberKind kind) { - exists(MethodDeclaration method | - method = astNode.getAMethod() and - method.isStatic() and - kind = MemberKind::of(method) and - result = method.getBody().flow() - ) - or - kind.isMethod() and - result = this.getAPropertySource() - } - - override DataFlow::Node getASuperClassNode() { result = astNode.getSuperClass().flow() } - - override TypeAnnotation getFieldTypeAnnotation(string fieldName) { - exists(FieldDeclaration field | - field.getDeclaringClass() = astNode and - fieldName = field.getName() and - result = field.getTypeAnnotation() - ) - } - - override DataFlow::Node getADecorator() { - result = astNode.getADecorator().getExpression().flow() - } - } - private DataFlow::PropRef getAPrototypeReferenceInFile(string name, File f) { result.getBase() = AccessPath::getAReferenceOrAssignmentTo(name) and result.getPropertyName() = "prototype" and @@ -1313,12 +1238,18 @@ module ClassNode { /** * A function definition, targeted by a `new`-call or with prototype manipulation, seen as a `ClassNode` instance. + * Or An ES6 class as a `ClassNode` instance. */ class FunctionStyleClass extends Range, DataFlow::ValueNode { - override Function astNode; + override AST::ValueNode astNode; AbstractFunction function; FunctionStyleClass() { + // ES6 class case + astNode instanceof ClassDefinition + or + // Function-style class case + astNode instanceof Function and function.getFunction() = astNode and ( exists(getAFunctionValueWithPrototype(function)) @@ -1333,13 +1264,30 @@ module ClassNode { ) } - override string getName() { result = astNode.getName() } + override string getName() { + astNode instanceof ClassDefinition and result = astNode.(ClassDefinition).getName() + or + astNode instanceof Function and result = astNode.(Function).getName() + } - override string describe() { result = astNode.describe() } + override string describe() { + astNode instanceof ClassDefinition and result = astNode.(ClassDefinition).describe() + or + astNode instanceof Function and result = astNode.(Function).describe() + } - override FunctionNode getConstructor() { result = this } + override FunctionNode getConstructor() { + // For ES6 classes + astNode instanceof ClassDefinition and + result = astNode.(ClassDefinition).getConstructor().getBody().flow() + or + // For function-style classes + astNode instanceof Function and result = this + } private PropertyAccessor getAnAccessor(MemberKind kind) { + // Only applies to function-style classes + astNode instanceof Function and result.getObjectExpr() = this.getAPrototypeReference().asExpr() and ( kind = MemberKind::getter() and @@ -1351,12 +1299,41 @@ module ClassNode { } override FunctionNode getInstanceMember(string name, MemberKind kind) { - kind = MemberKind::method() and - result = this.getAPrototypeReference().getAPropertySource(name) + // ES6 class methods + exists(MethodDeclaration method | + astNode instanceof ClassDefinition and + method = astNode.(ClassDefinition).getMethod(name) and + not method.isStatic() and + kind = MemberKind::of(method) and + result = method.getBody().flow() + ) or + // ES6 class property in constructor + astNode instanceof ClassDefinition and kind = MemberKind::method() and - result = this.getConstructor().getReceiver().getAPropertySource(name) + exists(ThisNode receiver | + receiver = this.getConstructor().getReceiver() and + receiver.hasPropertyWrite(name, result) + ) or + // Function-style class methods via prototype + astNode instanceof Function and + kind = MemberKind::method() and + exists(DataFlow::SourceNode proto | + proto = this.getAPrototypeReference() and + proto.hasPropertyWrite(name, result) + ) + or + // Function-style class methods via constructor + astNode instanceof Function and + kind = MemberKind::method() and + exists(ThisNode receiver | + receiver = this.getConstructor().getReceiver() and + receiver.hasPropertyWrite(name, result) + ) + or + // Function-style class accessors + astNode instanceof Function and exists(PropertyAccessor accessor | accessor = this.getAnAccessor(kind) and accessor.getName() = name and @@ -1365,12 +1342,41 @@ module ClassNode { } override FunctionNode getAnInstanceMember(MemberKind kind) { - kind = MemberKind::method() and - result = this.getAPrototypeReference().getAPropertySource() + // ES6 class methods + exists(MethodDeclaration method | + astNode instanceof ClassDefinition and + method = astNode.(ClassDefinition).getAMethod() and + not method.isStatic() and + kind = MemberKind::of(method) and + result = method.getBody().flow() + ) or + // ES6 class property in constructor + astNode instanceof ClassDefinition and kind = MemberKind::method() and - result = this.getConstructor().getReceiver().getAPropertySource() + exists(ThisNode receiver | + receiver = this.getConstructor().getReceiver() and + result = receiver.getAPropertySource() + ) or + // Function-style class methods via prototype + astNode instanceof Function and + kind = MemberKind::method() and + exists(DataFlow::SourceNode proto | + proto = this.getAPrototypeReference() and + result = proto.getAPropertySource() + ) + or + // Function-style class methods via constructor + astNode instanceof Function and + kind = MemberKind::method() and + exists(ThisNode receiver | + receiver = this.getConstructor().getReceiver() and + result = receiver.getAPropertySource() + ) + or + // Function-style class accessors + astNode instanceof Function and exists(PropertyAccessor accessor | accessor = this.getAnAccessor(kind) and result = accessor.getInit().flow() @@ -1378,60 +1384,101 @@ module ClassNode { } override FunctionNode getStaticMember(string name, MemberKind kind) { + exists(MethodDeclaration method | + astNode instanceof ClassDefinition and + method = astNode.(ClassDefinition).getMethod(name) and + method.isStatic() and + kind = MemberKind::of(method) and + result = method.getBody().flow() + ) + or kind.isMethod() and result = this.getAPropertySource(name) } override FunctionNode getAStaticMember(MemberKind kind) { + exists(MethodDeclaration method | + astNode instanceof ClassDefinition and + method = astNode.(ClassDefinition).getAMethod() and + method.isStatic() and + kind = MemberKind::of(method) and + result = method.getBody().flow() + ) + or kind.isMethod() and result = this.getAPropertySource() } /** * Gets a reference to the prototype of this class. + * Only applies to function-style classes. */ DataFlow::SourceNode getAPrototypeReference() { - exists(DataFlow::SourceNode base | base = getAFunctionValueWithPrototype(function) | - result = base.getAPropertyRead("prototype") + astNode instanceof Function and + ( + exists(DataFlow::SourceNode base | base = getAFunctionValueWithPrototype(function) | + result = base.getAPropertyRead("prototype") + or + result = base.getAPropertySource("prototype") + ) or - result = base.getAPropertySource("prototype") - ) - or - exists(string name | - this = AccessPath::getAnAssignmentTo(name) and - result = getAPrototypeReferenceInFile(name, this.getFile()) - ) - or - exists(ExtendCall call | - call.getDestinationOperand() = this.getAPrototypeReference() and - result = call.getASourceOperand() + exists(string name | + this = AccessPath::getAnAssignmentTo(name) and + result = getAPrototypeReferenceInFile(name, this.getFile()) + ) + or + exists(ExtendCall call | + call.getDestinationOperand() = this.getAPrototypeReference() and + result = call.getASourceOperand() + ) ) } override DataFlow::Node getASuperClassNode() { - // C.prototype = Object.create(D.prototype) - exists(DataFlow::InvokeNode objectCreate, DataFlow::PropRead superProto | - this.getAPropertySource("prototype") = objectCreate and - objectCreate = DataFlow::globalVarRef("Object").getAMemberCall("create") and - superProto.flowsTo(objectCreate.getArgument(0)) and - superProto.getPropertyName() = "prototype" and - result = superProto.getBase() - ) + // ES6 class superclass + astNode instanceof ClassDefinition and + result = astNode.(ClassDefinition).getSuperClass().flow() or - // C.prototype = new D() - exists(DataFlow::NewNode newCall | - this.getAPropertySource("prototype") = newCall and - result = newCall.getCalleeNode() + // Function-style class superclass patterns + astNode instanceof Function and + ( + // C.prototype = Object.create(D.prototype) + exists(DataFlow::InvokeNode objectCreate, DataFlow::PropRead superProto | + this.getAPropertySource("prototype") = objectCreate and + objectCreate = DataFlow::globalVarRef("Object").getAMemberCall("create") and + superProto.flowsTo(objectCreate.getArgument(0)) and + superProto.getPropertyName() = "prototype" and + result = superProto.getBase() + ) + or + // C.prototype = new D() + exists(DataFlow::NewNode newCall | + this.getAPropertySource("prototype") = newCall and + result = newCall.getCalleeNode() + ) + or + // util.inherits(C, D); + exists(DataFlow::CallNode inheritsCall | + inheritsCall = DataFlow::moduleMember("util", "inherits").getACall() + | + this = inheritsCall.getArgument(0).getALocalSource() and + result = inheritsCall.getArgument(1) + ) ) - or - // util.inherits(C, D); - exists(DataFlow::CallNode inheritsCall | - inheritsCall = DataFlow::moduleMember("util", "inherits").getACall() - | - this = inheritsCall.getArgument(0).getALocalSource() and - result = inheritsCall.getArgument(1) + } + + override TypeAnnotation getFieldTypeAnnotation(string fieldName) { + exists(FieldDeclaration field | + field.getDeclaringClass() = astNode and + fieldName = field.getName() and + result = field.getTypeAnnotation() ) } + + override DataFlow::Node getADecorator() { + astNode instanceof ClassDefinition and + result = astNode.(ClassDefinition).getADecorator().getExpression().flow() + } } } From dcc488cb0587614fb0960e20b165bbf1a35b0888 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 17 Apr 2025 20:03:37 +0100 Subject: [PATCH 083/656] Rust: Clean up the sources test. --- .../dataflow/sources/TaintSources.expected | 52 ++-- .../library-tests/dataflow/sources/test.rs | 238 ++++++++++-------- 2 files changed, 163 insertions(+), 127 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index ba7eeae0008..47bdf01faf1 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -20,30 +20,30 @@ | test.rs:74:26:74:37 | ...::get | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:77:26:77:37 | ...::get | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:80:24:80:35 | ...::get | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:112:35:112:46 | send_request | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:112:31:112:42 | send_request | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:119:31:119:42 | send_request | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:205:31:205:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:210:31:210:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:215:22:215:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:221:22:221:25 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:222:27:222:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:228:22:228:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:243:22:243:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:249:22:249:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:255:22:255:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:261:9:261:22 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:265:17:265:30 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:271:20:271:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:304:50:304:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:310:50:310:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:317:50:317:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:324:50:324:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:331:56:331:69 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:338:50:338:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:345:50:345:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:351:50:351:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:360:25:360:43 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:361:25:361:43 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:369:25:369:43 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:377:22:377:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:386:16:386:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| test.rs:209:22:209:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:215:22:215:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:221:22:221:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:227:22:227:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:233:9:233:22 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:237:17:237:30 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:244:50:244:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:250:46:250:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:257:50:257:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:264:50:264:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:271:56:271:69 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:278:46:278:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:285:46:285:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:291:46:291:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:303:31:303:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:308:31:308:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:313:22:313:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:319:22:319:25 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:320:27:320:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:326:22:326:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:336:20:336:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:370:21:370:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:371:21:371:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:379:21:379:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:390:16:390:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 2ec0b8964ca..8ffa464a0b4 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -106,10 +106,10 @@ async fn test_hyper_http(case: i64) -> Result<(), Box> { // make the request println!("sending request..."); - if (case == 0) { + if case == 0 { // simple flow case let request = http::Request::builder().uri(url).body(String::from(""))?; - let mut response = sender.send_request(request).await?; // $ Alert[rust/summary/taint-sources] + let response = sender.send_request(request).await?; // $ Alert[rust/summary/taint-sources] sink(&response); // $ hasTaintFlow=request sink(response); // $ hasTaintFlow=request return Ok(()) @@ -198,6 +198,104 @@ async fn test_hyper_http(case: i64) -> Result<(), Box> { Ok(()) } +use std::io::Read; +use std::io::BufRead; + +fn test_io_stdin() -> std::io::Result<()> { + // --- stdin --- + + { + let mut buffer = [0u8; 100]; + let _bytes = std::io::stdin().read(&mut buffer)?; // $ Alert[rust/summary/taint-sources] + sink(&buffer); // $ hasTaintFlow + } + + { + let mut buffer = Vec::::new(); + let _bytes = std::io::stdin().read_to_end(&mut buffer)?; // $ Alert[rust/summary/taint-sources] + sink(&buffer); // $ MISSING: hasTaintFlow + } + + { + let mut buffer = String::new(); + let _bytes = std::io::stdin().read_to_string(&mut buffer)?; // $ Alert[rust/summary/taint-sources] + sink(&buffer); // $ hasTaintFlow + } + + { + let mut buffer = String::new(); + let _bytes = std::io::stdin().lock().read_to_string(&mut buffer)?; // $ Alert[rust/summary/taint-sources] + sink(&buffer); // $ hasTaintFlow + } + + { + let mut buffer = [0; 100]; + std::io::stdin().read_exact(&mut buffer)?; // $ Alert[rust/summary/taint-sources] + sink(&buffer); // $ hasTaintFlow + } + + for byte in std::io::stdin().bytes() { // $ Alert[rust/summary/taint-sources] + sink(byte); // $ hasTaintFlow + } + + // --- BufReader --- + + { + let mut reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] + let data = reader.fill_buf()?; + sink(&data); // $ hasTaintFlow + } + + { + let reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] + let data = reader.buffer(); + sink(&data); // $ hasTaintFlow + } + + { + let mut buffer = String::new(); + let mut reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] + reader.read_line(&mut buffer)?; + sink(&buffer); // $ hasTaintFlow + } + + { + let mut buffer = Vec::::new(); + let mut reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] + reader.read_until(b',', &mut buffer)?; + sink(&buffer); // $ hasTaintFlow + sink(buffer[0]); // $ hasTaintFlow + } + + { + let mut reader_split = std::io::BufReader::new(std::io::stdin()).split(b','); // $ Alert[rust/summary/taint-sources] + while let Some(chunk) = reader_split.next() { + sink(chunk.unwrap()); // $ MISSING: hasTaintFlow + } + } + + { + let reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] + for line in reader.lines() { + sink(line); // $ hasTaintFlow + } + } + + { + let reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] + let line = reader.lines().nth(1).unwrap(); + sink(line.unwrap().clone()); // $ MISSING: hasTaintFlow + } + + { + let reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] + let lines: Vec<_> = reader.lines().collect(); + sink(lines[1].as_ref().unwrap().clone()); // $ MISSING: hasTaintFlow + } + + Ok(()) +} + use std::fs; fn test_fs() -> Result<(), Box> { @@ -232,40 +330,7 @@ fn test_fs() -> Result<(), Box> { Ok(()) } -use std::io::Read; -use std::io::BufRead; - -fn test_io_fs() -> std::io::Result<()> { - // --- stdin --- - - { - let mut buffer = [0u8; 100]; - let _bytes = std::io::stdin().read(&mut buffer)?; // $ Alert[rust/summary/taint-sources] - sink(&buffer); // $ hasTaintFlow - } - - { - let mut buffer = Vec::::new(); - let _bytes = std::io::stdin().read_to_end(&mut buffer)?; // $ Alert[rust/summary/taint-sources] - sink(&buffer); // $ MISSING: hasTaintFlow - } - - { - let mut buffer = String::new(); - let _bytes = std::io::stdin().read_to_string(&mut buffer)?; // $ Alert[rust/summary/taint-sources] - sink(&buffer); // $ hasTaintFlow - } - - { - let mut buffer = [0; 100]; - std::io::stdin().read_exact(&mut buffer)?; // $ Alert[rust/summary/taint-sources] - sink(&buffer); // $ hasTaintFlow - } - - for byte in std::io::stdin().bytes() { // $ Alert[rust/summary/taint-sources] - sink(byte); // $ hasTaintFlow - } - +fn test_io_file() -> std::io::Result<()> { // --- file --- let mut file = std::fs::File::open("file.txt")?; // $ Alert[rust/summary/taint-sources] @@ -298,67 +363,12 @@ fn test_io_fs() -> std::io::Result<()> { sink(byte); // $ hasTaintFlow="file.txt" } - // --- BufReader --- - - { - let mut reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] - let data = reader.fill_buf()?; - sink(&data); // $ hasTaintFlow - } - - { - let mut reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] - let data = reader.buffer(); - sink(&data); // $ hasTaintFlow - } - - { - let mut buffer = String::new(); - let mut reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] - reader.read_line(&mut buffer)?; - sink(&buffer); // $ hasTaintFlow - } - - { - let mut buffer = Vec::::new(); - let mut reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] - reader.read_until(b',', &mut buffer)?; - sink(&buffer); // $ hasTaintFlow - } - - { - let mut buffer = Vec::::new(); - let mut reader_split = std::io::BufReader::new(std::io::stdin()).split(b','); // $ Alert[rust/summary/taint-sources] - while let Some(chunk) = reader_split.next() { - sink(chunk.unwrap()); // $ MISSING: hasTaintFlow - } - } - - { - let mut reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] - for line in reader.lines() { - sink(line); // $ hasTaintFlow - } - } - - { - let mut reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] - let line = reader.lines().nth(1).unwrap(); - sink(line.unwrap().clone()); // $ MISSING: hasTaintFlow - } - - { - let mut reader = std::io::BufReader::new(std::io::stdin()); // $ Alert[rust/summary/taint-sources] - let lines: Vec<_> = reader.lines().collect(); - sink(lines[1].as_ref().unwrap().clone()); // $ MISSING: hasTaintFlow - } - // --- misc operations --- { let mut buffer = String::new(); - let mut file1 = std::fs::File::open("file.txt")?; // $ Alert[rust/summary/taint-sources] - let mut file2 = std::fs::File::open("another_file.txt")?; // $ Alert[rust/summary/taint-sources] + let file1 = std::fs::File::open("file.txt")?; // $ Alert[rust/summary/taint-sources] + let file2 = std::fs::File::open("another_file.txt")?; // $ Alert[rust/summary/taint-sources] let mut reader = file1.chain(file2); reader.read_to_string(&mut buffer)?; sink(&buffer); // $ hasTaintFlow="file.txt" hasTaintFlow="another_file.txt" @@ -366,18 +376,12 @@ fn test_io_fs() -> std::io::Result<()> { { let mut buffer = String::new(); - let mut file1 = std::fs::File::open("file.txt")?; // $ Alert[rust/summary/taint-sources] + let file1 = std::fs::File::open("file.txt")?; // $ Alert[rust/summary/taint-sources] let mut reader = file1.take(100); reader.read_to_string(&mut buffer)?; sink(&buffer); // $ hasTaintFlow="file.txt" } - { - let mut buffer = String::new(); - let _bytes = std::io::stdin().lock().read_to_string(&mut buffer)?; // $ Alert[rust/summary/taint-sources] - sink(&buffer); // $ hasTaintFlow - } - Ok(()) } @@ -385,12 +389,44 @@ fn test_io_fs() -> std::io::Result<()> { async fn main() -> Result<(), Box> { let case = std::env::args().nth(1).unwrap_or(String::from("1")).parse::().unwrap(); // $ Alert[rust/summary/taint-sources] + println!("test_env_vars..."); + test_env_vars(); + + /*println!("test_env_args..."); + test_env_args();*/ + + println!("test_env_dirs..."); + test_env_dirs(); + + /*println!("test_reqwest..."); + match futures::executor::block_on(test_reqwest()) { + Ok(_) => println!("complete"), + Err(e) => println!("error: {}", e), + }*/ + println!("test_hyper_http..."); match futures::executor::block_on(test_hyper_http(case)) { Ok(_) => println!("complete"), Err(e) => println!("error: {}", e), } - println!(""); + + /*println!("test_io_stdin..."); + match test_io_stdin() { + Ok(_) => println!("complete"), + Err(e) => println!("error: {}", e), + }*/ + + println!("test_fs..."); + match test_fs() { + Ok(_) => println!("complete"), + Err(e) => println!("error: {}", e), + } + + println!("test_io_file..."); + match test_io_file() { + Ok(_) => println!("complete"), + Err(e) => println!("error: {}", e), + } Ok(()) } From 307424e87e4803fb0daa2b1702c1119ec2b3937f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 10:53:36 +0100 Subject: [PATCH 084/656] Rust: Add source tests for tokio (stdin). --- .../dataflow/sources/TaintSources.expected | 22 ++--- .../library-tests/dataflow/sources/test.rs | 87 +++++++++++++++++++ 2 files changed, 98 insertions(+), 11 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index 47bdf01faf1..616195e5f31 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -36,14 +36,14 @@ | test.rs:278:46:278:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | | test.rs:285:46:285:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | | test.rs:291:46:291:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:303:31:303:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:308:31:308:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:313:22:313:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:319:22:319:25 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:320:27:320:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:326:22:326:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:336:20:336:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:370:21:370:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:371:21:371:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:379:21:379:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:390:16:390:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| test.rs:384:31:384:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:389:31:389:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:394:22:394:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:400:22:400:25 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:401:27:401:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:407:22:407:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:417:20:417:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:451:21:451:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:452:21:452:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:460:21:460:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:471:16:471:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 8ffa464a0b4..084df8bb13f 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -296,6 +296,87 @@ fn test_io_stdin() -> std::io::Result<()> { Ok(()) } +use tokio::io::{AsyncReadExt, AsyncBufReadExt}; + +async fn test_tokio_stdin() -> Result<(), Box> { + + // --- async reading from stdin --- + + { + let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut buffer = [0u8; 100]; + let _bytes = stdin.read(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow + } + + { + let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut buffer = Vec::::new(); + let _bytes = stdin.read_to_end(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow + } + + { + let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut buffer = String::new(); + let _bytes = stdin.read_to_string(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow + } + + { + let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut buffer = [0; 100]; + stdin.read_exact(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow + } + + // --- async reading from stdin (BufReader) --- + + { + let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] + let data = reader.fill_buf().await?; + sink(&data); // $ MISSING: hasTaintFlow + } + + { + let reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] + let data = reader.buffer(); + sink(&data); // $ MISSING: hasTaintFlow + } + + { + let mut buffer = String::new(); + let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] + reader.read_line(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow + } + + { + let mut buffer = Vec::::new(); + let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] + reader.read_until(b',', &mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow + sink(buffer[0]); // $ MISSING: hasTaintFlow + } + + { + let mut reader_split = tokio::io::BufReader::new(tokio::io::stdin()).split(b','); // $ MISSING: Alert[rust/summary/taint-sources] + while let Some(chunk) = reader_split.next_segment().await? { + sink(chunk); // $ MISSING: hasTaintFlow + } + } + + { + let reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] + let mut lines = reader.lines(); + while let Some(line) = lines.next_line().await? { + sink(line); // $ hasTai + } + } + + Ok(()) +} + use std::fs; fn test_fs() -> Result<(), Box> { @@ -414,6 +495,12 @@ async fn main() -> Result<(), Box> { match test_io_stdin() { Ok(_) => println!("complete"), Err(e) => println!("error: {}", e), + } + + println!("test_tokio_stdin..."); + match futures::executor::block_on(test_tokio_stdin()) { + Ok(_) => println!("complete"), + Err(e) => println!("error: {}", e), }*/ println!("test_fs..."); From 809dd20f9d3772c420a16ab18fddb25893b76e2e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 10:56:47 +0100 Subject: [PATCH 085/656] Rust: Add source tests for tokio (file). --- .../dataflow/sources/TaintSources.expected | 2 +- .../library-tests/dataflow/sources/test.rs | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index 616195e5f31..6ce7eea13be 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -46,4 +46,4 @@ | test.rs:451:21:451:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:452:21:452:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:460:21:460:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:471:16:471:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| test.rs:522:16:522:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 084df8bb13f..9347642820f 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -466,6 +466,57 @@ fn test_io_file() -> std::io::Result<()> { Ok(()) } +async fn test_tokio_file() -> std::io::Result<()> { + // --- file --- + + let mut file = tokio::fs::File::open("file.txt").await?; // $ MISSING: Alert[rust/summary/taint-sources] + + { + let mut buffer = [0u8; 100]; + let _bytes = file.read(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" + } + + { + let mut buffer = Vec::::new(); + let _bytes = file.read_to_end(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" + } + + { + let mut buffer = String::new(); + let _bytes = file.read_to_string(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" + } + + { + let mut buffer = [0; 100]; + file.read_exact(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" + } + + // --- misc operations --- + + { + let mut buffer = String::new(); + let file1 = tokio::fs::File::open("file.txt").await?; // $ MISSING: Alert[rust/summary/taint-sources] + let file2 = tokio::fs::File::open("another_file.txt").await?; // $ MISSING: [rust/summary/taint-sources] + let mut reader = file1.chain(file2); + reader.read_to_string(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" hasTaintFlow="another_file.txt" + } + + { + let mut buffer = String::new(); + let file1 = tokio::fs::File::open("file.txt").await?; // $ MISSING: Alert[rust/summary/taint-sources] + let mut reader = file1.take(100); + reader.read_to_string(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" + } + + Ok(()) +} + #[tokio::main] async fn main() -> Result<(), Box> { let case = std::env::args().nth(1).unwrap_or(String::from("1")).parse::().unwrap(); // $ Alert[rust/summary/taint-sources] @@ -515,5 +566,11 @@ async fn main() -> Result<(), Box> { Err(e) => println!("error: {}", e), } + println!("test_tokio_file..."); + match futures::executor::block_on(test_tokio_file()) { + Ok(_) => println!("complete"), + Err(e) => println!("error: {}", e), + } + Ok(()) } From b57375aa91d66c08b193d33742e720fd529651cd Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 11:25:36 +0100 Subject: [PATCH 086/656] Rust: Add source tests for tcp (std and tokio). --- .../dataflow/sources/TaintSources.expected | 2 +- .../library-tests/dataflow/sources/test.rs | 111 ++++++++++++++++++ 2 files changed, 112 insertions(+), 1 deletion(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index 6ce7eea13be..e34f7bbcd24 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -46,4 +46,4 @@ | test.rs:451:21:451:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:452:21:452:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:460:21:460:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:522:16:522:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| test.rs:621:16:621:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 9347642820f..1dc573c5e3a 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -517,6 +517,105 @@ async fn test_tokio_file() -> std::io::Result<()> { Ok(()) } +use std::net::ToSocketAddrs; + +async fn test_std_tcpstream(case: i64) -> std::io::Result<()> { // Result<(), Box> + // using std::net to fetch a web page + let address = "example.com:80"; + + if case == 1 { + // create the connection + let mut stream = std::net::TcpStream::connect(address)?; + + // send request + let _ = stream.write_all(b"GET / HTTP/1.1\nHost:example.com\n\n"); + + // read response + let mut buffer = vec![0; 32 * 1024]; + let _ = stream.read(&mut buffer); // $ MISSING: Alert[rust/summary/taint-sources] + + println!("data = {:?}", buffer); + sink(&buffer); // $ MISSING: hasTaintFlow + sink(buffer[0]); // $ MISSING: hasTaintFlow + + let buffer_string = String::from_utf8_lossy(&buffer); + println!("string = {}", buffer_string); + sink(buffer_string); // $ MISSING: hasTaintFlow + } else { + // create the connection + let sock_addr = address.to_socket_addrs().unwrap().next().unwrap(); + let mut stream = std::net::TcpStream::connect_timeout(&sock_addr, std::time::Duration::new(1, 0))?; + + // send request + let _ = stream.write_all(b"GET / HTTP/1.1\nHost:example.com\n\n"); + + // read response + match case { + 2 => { + let mut reader = std::io::BufReader::new(stream).take(256); + let mut line = String::new(); + loop { + match reader.read_line(&mut line) { // $ MISSING: Alert[rust/summary/taint-sources] + Ok(0) => { + println!("end"); + break; + } + Ok(_n) => { + println!("line = {}", line); + sink(&line); // $ MISSING: hasTaintFlow + line.clear(); + } + Err(e) => { + println!("error: {}", e); + break; + } + } + } + } + 3 => { + let reader = std::io::BufReader::new(stream.try_clone()?).take(256); + for line in reader.lines() { // $ MISSING: Alert[rust/summary/taint-sources] + if let Ok(string) = line { + println!("line = {}", string); + sink(string); // $ MISSING: hasTaintFlow + } + } + } + _ => {} + } + } + + Ok(()) +} + +use tokio::io::AsyncWriteExt; + +async fn test_tokio_tcpstream() -> std::io::Result<()> { + // using tokio::io to fetch a web page + let address = "example.com:80"; + + // create the connection + println!("connecting to {}...", address); + let mut tokio_stream = tokio::net::TcpStream::connect(address).await?; + + // send request + tokio_stream.write_all(b"GET / HTTP/1.1\nHost:example.com\n\n").await?; + + // read response + let mut buffer = vec![0; 32 * 1024]; + let n = tokio_stream.read(&mut buffer).await?; // $ MISSING: Alert[rust/summary/taint-sources] + + println!("data = {:?}", buffer); + sink(&buffer); // $ MISSING: hasTaintFlow + sink(buffer[0]); // $ MISSING: hasTaintFlow + + let buffer_string = String::from_utf8_lossy(&buffer[..n]); + println!("string = {}", buffer_string); + sink(buffer_string); // $ MISSING: hasTaintFlow + + Ok(()) +} + #[tokio::main] async fn main() -> Result<(), Box> { let case = std::env::args().nth(1).unwrap_or(String::from("1")).parse::().unwrap(); // $ Alert[rust/summary/taint-sources] @@ -572,5 +671,17 @@ async fn main() -> Result<(), Box> { Err(e) => println!("error: {}", e), } + println!("test_std_tcpstream..."); + match futures::executor::block_on(test_std_tcpstream(case)) { + Ok(_) => println!("complete"), + Err(e) => println!("error: {}", e), + } + + println!("test_tokio_tcpstream..."); + match futures::executor::block_on(test_tokio_tcpstream()) { + Ok(_) => println!("complete"), + Err(e) => println!("error: {}", e), + } + Ok(()) } From 38397195a258208b819e2a4f313decf9745a3be5 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 11:36:00 +0100 Subject: [PATCH 087/656] Rust: Add further source test cases for tokio. --- .../dataflow/sources/TaintSources.expected | 22 ++++++------ .../dataflow/sources/options.yml | 1 + .../library-tests/dataflow/sources/test.rs | 36 +++++++++++++++++++ 3 files changed, 48 insertions(+), 11 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index e34f7bbcd24..5ae527c9ff7 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -36,14 +36,14 @@ | test.rs:278:46:278:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | | test.rs:285:46:285:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | | test.rs:291:46:291:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:384:31:384:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:389:31:389:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:394:22:394:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:400:22:400:25 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:401:27:401:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:407:22:407:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:417:20:417:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:451:21:451:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:452:21:452:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:460:21:460:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:621:16:621:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| test.rs:403:31:403:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:408:31:408:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:413:22:413:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:419:22:419:25 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:420:27:420:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:426:22:426:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:436:20:436:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:470:21:470:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:471:21:471:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:479:21:479:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:657:16:657:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/options.yml b/rust/ql/test/library-tests/dataflow/sources/options.yml index 9b4565f1e1a..b48be615eb5 100644 --- a/rust/ql/test/library-tests/dataflow/sources/options.yml +++ b/rust/ql/test/library-tests/dataflow/sources/options.yml @@ -7,3 +7,4 @@ qltest_dependencies: - http = { version = "1.2.0" } - tokio = { version = "1.43.0", features = ["full"] } - futures = { version = "0.3" } + - bytes = { version = "1.10.1" } diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 1dc573c5e3a..71643f750ad 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -330,6 +330,25 @@ async fn test_tokio_stdin() -> Result<(), Box> { sink(&buffer); // $ MISSING: hasTaintFlow } + { + let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let v1 = stdin.read_u8().await?; + let v2 = stdin.read_i16().await?; + let v3 = stdin.read_f32().await?; + let v4 = stdin.read_i64_le().await?; + sink(v1); // $ MISSING: hasTaintFlow + sink(v2); // $ MISSING: hasTaintFlow + sink(v3); // $ MISSING: hasTaintFlow + sink(v4); // $ MISSING: hasTaintFlow + } + + { + let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut buffer = bytes::BytesMut::new(); + stdin.read_buf(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow + } + // --- async reading from stdin (BufReader) --- { @@ -495,6 +514,23 @@ async fn test_tokio_file() -> std::io::Result<()> { sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" } + { + let v1 = file.read_u8().await?; + let v2 = file.read_i16().await?; + let v3 = file.read_f32().await?; + let v4 = file.read_i64_le().await?; + sink(v1); // $ MISSING: hasTaintFlow + sink(v2); // $ MISSING: hasTaintFlow + sink(v3); // $ MISSING: hasTaintFlow + sink(v4); // $ MISSING: hasTaintFlow + } + + { + let mut buffer = bytes::BytesMut::new(); + file.read_buf(&mut buffer).await?; + sink(&buffer); // $ MISSING: hasTaintFlow + } + // --- misc operations --- { From 49cf1739a4dcb1f5fea44459ca2a6cb32af261c0 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 17 Apr 2025 18:09:15 +0200 Subject: [PATCH 088/656] Rust: expand attribute macros --- rust/ast-generator/BUILD.bazel | 3 +- rust/ast-generator/src/main.rs | 18 +- .../{src => }/templates/extractor.mustache | 35 +- .../{src => }/templates/schema.mustache | 0 rust/codegen/BUILD.bazel | 1 + rust/codegen/codegen.sh | 4 +- .../downgrade.ql | 7 + .../old.dbscheme | 3606 +++++++++++++++++ .../rust.dbscheme | 3606 +++++++++++++++++ .../upgrade.properties | 4 + rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 12 +- rust/extractor/src/main.rs | 2 +- rust/extractor/src/translate/base.rs | 77 +- rust/extractor/src/translate/generated.rs | 2816 +++++++------ rust/ql/.generated.list | 64 +- rust/ql/.gitattributes | 16 + .../internal/generated/CfgNodes.qll | 10 - rust/ql/lib/codeql/rust/elements/Item.qll | 1 + .../ql/lib/codeql/rust/elements/MacroCall.qll | 1 - .../rust/elements/internal/generated/Item.qll | 15 +- .../elements/internal/generated/MacroCall.qll | 16 - .../internal/generated/ParentChild.qll | 11 +- .../rust/elements/internal/generated/Raw.qll | 12 +- rust/ql/lib/rust.dbscheme | 12 +- .../old.dbscheme | 3606 +++++++++++++++++ .../rust.dbscheme | 3606 +++++++++++++++++ .../upgrade.properties | 4 + .../attr_macro_expansion.rs | 2 + .../attribute_macro_expansion/options.yml | 2 + .../attribute_macro_expansion/test.expected | 2 + .../attribute_macro_expansion/test.ql | 6 + .../extractor-tests/generated/Const/Const.ql | 12 +- .../generated/Const/Const_getExpanded.ql | 7 + .../extractor-tests/generated/Enum/Enum.ql | 13 +- .../generated/Enum/Enum_getExpanded.ql | 7 + .../generated/ExternBlock/ExternBlock.ql | 9 +- .../ExternBlock/ExternBlock_getExpanded.ql | 7 + .../generated/ExternCrate/ExternCrate.ql | 9 +- .../ExternCrate/ExternCrate_getExpanded.ql | 7 + .../generated/Function/Function.ql | 15 +- .../Function/Function_getExpanded.ql | 7 + .../extractor-tests/generated/Impl/Impl.ql | 16 +- .../generated/Impl/Impl_getExpanded.ql | 7 + .../generated/MacroCall/MacroCall.ql | 12 +- .../generated/MacroDef/MacroDef.ql | 9 +- .../MacroDef/MacroDef_getExpanded.ql | 7 + .../generated/MacroRules/MacroRules.ql | 9 +- .../MacroRules/MacroRules_getExpanded.ql | 7 + .../generated/Module/Module.ql | 9 +- .../generated/Module/Module_getExpanded.ql | 7 + .../generated/Static/Static.ql | 13 +- .../generated/Static/Static_getExpanded.ql | 7 + .../generated/Struct/Struct.ql | 13 +- .../generated/Struct/Struct_getExpanded.ql | 7 + .../extractor-tests/generated/Trait/Trait.ql | 16 +- .../generated/Trait/Trait_getExpanded.ql | 7 + .../generated/TraitAlias/TraitAlias.ql | 13 +- .../TraitAlias/TraitAlias_getExpanded.ql | 7 + .../generated/TypeAlias/TypeAlias.ql | 14 +- .../TypeAlias/TypeAlias_getExpanded.ql | 7 + .../extractor-tests/generated/Union/Union.ql | 13 +- .../generated/Union/Union_getExpanded.ql | 7 + .../test/extractor-tests/generated/Use/Use.ql | 8 +- .../generated/Use/Use_getExpanded.ql | 7 + rust/schema/annotations.py | 3 +- 66 files changed, 16543 insertions(+), 1354 deletions(-) rename rust/ast-generator/{src => }/templates/extractor.mustache (66%) rename rust/ast-generator/{src => }/templates/schema.mustache (100%) create mode 100644 rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/downgrade.ql create mode 100644 rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/old.dbscheme create mode 100644 rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/rust.dbscheme create mode 100644 rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/upgrade.properties create mode 100644 rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/old.dbscheme create mode 100644 rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme create mode 100644 rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties create mode 100644 rust/ql/test/extractor-tests/attribute_macro_expansion/attr_macro_expansion.rs create mode 100644 rust/ql/test/extractor-tests/attribute_macro_expansion/options.yml create mode 100644 rust/ql/test/extractor-tests/attribute_macro_expansion/test.expected create mode 100644 rust/ql/test/extractor-tests/attribute_macro_expansion/test.ql create mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.ql create mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.ql diff --git a/rust/ast-generator/BUILD.bazel b/rust/ast-generator/BUILD.bazel index 7d0105ac456..24d429cbede 100644 --- a/rust/ast-generator/BUILD.bazel +++ b/rust/ast-generator/BUILD.bazel @@ -46,8 +46,7 @@ codeql_rust_binary( ) + [":codegen"], aliases = aliases(), args = ["$(rlocationpath :rust.ungram)"], - compile_data = glob(["src/templates/*.mustache"]), - data = [":rust.ungram"], + data = [":rust.ungram"] + glob(["templates/*.mustache"]), proc_macro_deps = all_crate_deps( proc_macro = True, ), diff --git a/rust/ast-generator/src/main.rs b/rust/ast-generator/src/main.rs index 8b8d7f5c593..f4dbeca57a9 100644 --- a/rust/ast-generator/src/main.rs +++ b/rust/ast-generator/src/main.rs @@ -142,6 +142,7 @@ fn fix_blank_lines(s: &str) -> String { fn write_schema( grammar: &AstSrc, super_types: BTreeMap>, + mustache_ctx: &mustache::Context, ) -> mustache::Result { let mut schema = Schema::default(); schema.classes.extend( @@ -156,7 +157,7 @@ fn write_schema( .iter() .map(|node| node_src_to_schema_class(node, &super_types)), ); - let template = mustache::compile_str(include_str!("templates/schema.mustache"))?; + let template = mustache_ctx.compile_path("schema")?; let res = template.render_to_string(&schema)?; Ok(fix_blank_lines(&res)) } @@ -541,7 +542,7 @@ fn node_to_extractor_info(node: &AstNodeSrc) -> ExtractorNodeInfo { } } -fn write_extractor(grammar: &AstSrc) -> mustache::Result { +fn write_extractor(grammar: &AstSrc, mustache_ctx: &mustache::Context) -> mustache::Result { let extractor_info = ExtractorInfo { enums: grammar .enums @@ -550,7 +551,7 @@ fn write_extractor(grammar: &AstSrc) -> mustache::Result { .collect(), nodes: grammar.nodes.iter().map(node_to_extractor_info).collect(), }; - let template = mustache::compile_str(include_str!("templates/extractor.mustache"))?; + let template = mustache_ctx.compile_path("extractor")?; let res = template.render_to_string(&extractor_info)?; Ok(fix_blank_lines(&res)) } @@ -578,8 +579,13 @@ fn main() -> anyhow::Result<()> { let super_class_y = super_types.get(&y.name).into_iter().flatten().max(); super_class_x.cmp(&super_class_y).then(x.name.cmp(&y.name)) }); - let schema = write_schema(&grammar, super_types)?; - let schema_path = project_root().join("schema/ast.py"); + let root = project_root(); + let mustache_ctx = mustache::Context { + template_path: root.join("ast-generator").join("templates"), + template_extension: "mustache".to_string(), + }; + let schema = write_schema(&grammar, super_types, &mustache_ctx)?; + let schema_path = root.join("schema/ast.py"); codegen::ensure_file_contents( crate::flags::CodegenType::Grammar, &schema_path, @@ -587,7 +593,7 @@ fn main() -> anyhow::Result<()> { false, ); - let extractor = write_extractor(&grammar)?; + let extractor = write_extractor(&grammar, &mustache_ctx)?; let extractor_path = project_root().join("extractor/src/translate/generated.rs"); codegen::ensure_file_contents( crate::flags::CodegenType::Grammar, diff --git a/rust/ast-generator/src/templates/extractor.mustache b/rust/ast-generator/templates/extractor.mustache similarity index 66% rename from rust/ast-generator/src/templates/extractor.mustache rename to rust/ast-generator/templates/extractor.mustache index c83881027bb..c4f8dbd983d 100644 --- a/rust/ast-generator/src/templates/extractor.mustache +++ b/rust/ast-generator/templates/extractor.mustache @@ -1,7 +1,5 @@ //! Generated by `ast-generator`, do not edit by hand. -¶{{! <- denotes empty line that should be kept, all blank lines are removed otherwise}} -#![cfg_attr(any(), rustfmt::skip)] -¶ + use super::base::Translator; use super::mappings::TextValue; use crate::emit_detached; @@ -11,30 +9,33 @@ use ra_ap_syntax::ast::{ HasArgList, HasAttrs, HasGenericArgs, HasGenericParams, HasLoopBody, HasModuleItem, HasName, HasTypeBounds, HasVisibility, RangeItem, }; -use ra_ap_syntax::{ast, AstNode}; -¶ +#[rustfmt::skip] +use ra_ap_syntax::{AstNode, ast}; + impl Translator<'_> { - fn emit_else_branch(&mut self, node: ast::ElseBranch) -> Option> { + fn emit_else_branch(&mut self, node: &ast::ElseBranch) -> Option> { match node { ast::ElseBranch::IfExpr(inner) => self.emit_if_expr(inner).map(Into::into), ast::ElseBranch::Block(inner) => self.emit_block_expr(inner).map(Into::into), } } {{#enums}} -¶ - pub(crate) fn emit_{{snake_case_name}}(&mut self, node: ast::{{ast_name}}) -> Option> { - match node { + + pub(crate) fn emit_{{snake_case_name}}(&mut self, node: &ast::{{ast_name}}) -> Option> { + let label = match node { {{#variants}} ast::{{ast_name}}::{{variant_ast_name}}(inner) => self.emit_{{snake_case_name}}(inner).map(Into::into), {{/variants}} - } + }?; + emit_detached!({{name}}, self, node, label); + Some(label) } {{/enums}} {{#nodes}} -¶ - pub(crate) fn emit_{{snake_case_name}}(&mut self, node: ast::{{ast_name}}) -> Option> { + + pub(crate) fn emit_{{snake_case_name}}(&mut self, node: &ast::{{ast_name}}) -> Option> { {{#has_attrs}} - if self.should_be_excluded(&node) { return None; } + if self.should_be_excluded(node) { return None; } {{/has_attrs}} {{#fields}} {{#predicate}} @@ -44,10 +45,10 @@ impl Translator<'_> { let {{name}} = node.try_get_text(); {{/string}} {{#list}} - let {{name}} = node.{{method}}().filter_map(|x| self.emit_{{snake_case_ty}}(x)).collect(); + let {{name}} = node.{{method}}().filter_map(|x| self.emit_{{snake_case_ty}}(&x)).collect(); {{/list}} {{#optional}} - let {{name}} = node.{{method}}().and_then(|x| self.emit_{{snake_case_ty}}(x)); + let {{name}} = node.{{method}}().and_then(|x| self.emit_{{snake_case_ty}}(&x)); {{/optional}} {{/fields}} let label = self.trap.emit(generated::{{name}} { @@ -56,9 +57,9 @@ impl Translator<'_> { {{name}}, {{/fields}} }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!({{name}}, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } {{/nodes}} diff --git a/rust/ast-generator/src/templates/schema.mustache b/rust/ast-generator/templates/schema.mustache similarity index 100% rename from rust/ast-generator/src/templates/schema.mustache rename to rust/ast-generator/templates/schema.mustache diff --git a/rust/codegen/BUILD.bazel b/rust/codegen/BUILD.bazel index e1b51ca3661..04d380f8cc3 100644 --- a/rust/codegen/BUILD.bazel +++ b/rust/codegen/BUILD.bazel @@ -7,6 +7,7 @@ _args = [ "//rust/ast-generator:Cargo.toml", "//misc/codegen", "//rust:codegen-conf", + "@rules_rust//tools/rustfmt:upstream_rustfmt", ] sh_binary( diff --git a/rust/codegen/codegen.sh b/rust/codegen/codegen.sh index c1d160f314b..2d415009aed 100755 --- a/rust/codegen/codegen.sh +++ b/rust/codegen/codegen.sh @@ -9,7 +9,9 @@ grammar_file="$(rlocation "$2")" ast_generator_manifest="$(rlocation "$3")" codegen="$(rlocation "$4")" codegen_conf="$(rlocation "$5")" -shift 5 +rustfmt="$(rlocation "$6")" +shift 6 CARGO_MANIFEST_DIR="$(dirname "$ast_generator_manifest")" "$ast_generator" "$grammar_file" +"$rustfmt" "$(dirname "$ast_generator_manifest")/../extractor/src/translate/generated.rs" "$codegen" --configuration-file="$codegen_conf" "$@" diff --git a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/downgrade.ql b/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/downgrade.ql new file mode 100644 index 00000000000..562e773383f --- /dev/null +++ b/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/downgrade.ql @@ -0,0 +1,7 @@ +class Element extends @element { + string toString() { none() } +} + +query predicate new_macro_call_expandeds(Element id, Element expanded) { + item_expandeds(id, expanded) and macro_calls(id) +} diff --git a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/old.dbscheme b/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/old.dbscheme new file mode 100644 index 00000000000..f78cb8f2ab3 --- /dev/null +++ b/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/old.dbscheme @@ -0,0 +1,3606 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @macro_stmts +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id] +crate_modules( + int id: @crate ref, + int module: @module ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +macro_stmts( + unique int id: @macro_stmts +); + +#keyset[id] +macro_stmts_exprs( + int id: @macro_stmts ref, + int expr: @expr ref +); + +#keyset[id, index] +macro_stmts_statements( + int id: @macro_stmts ref, + int index: int ref, + int statement: @stmt ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +#keyset[id] +item_expandeds( + int id: @item ref, + int expanded: @ast_node ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/rust.dbscheme b/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/rust.dbscheme new file mode 100644 index 00000000000..e8707b675dc --- /dev/null +++ b/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/rust.dbscheme @@ -0,0 +1,3606 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @macro_stmts +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id] +crate_modules( + int id: @crate ref, + int module: @module ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +macro_stmts( + unique int id: @macro_stmts +); + +#keyset[id] +macro_stmts_exprs( + int id: @macro_stmts ref, + int expr: @expr ref +); + +#keyset[id, index] +macro_stmts_statements( + int id: @macro_stmts ref, + int index: int ref, + int statement: @stmt ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_expandeds( + int id: @macro_call ref, + int expanded: @ast_node ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/upgrade.properties b/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/upgrade.properties new file mode 100644 index 00000000000..aa90ec62fc3 --- /dev/null +++ b/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/upgrade.properties @@ -0,0 +1,4 @@ +description: Move `expanded` back from all `@item`s to `@macro_call`s only +compatibility: backwards +item_expandeds.rel: delete +macro_call_expandeds.rel: run downgrade.ql new_macro_call_expandeds diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 82b6665615b..4888deae33c 100644 --- a/rust/extractor/src/generated/.generated.list +++ b/rust/extractor/src/generated/.generated.list @@ -1,2 +1,2 @@ mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 -top.rs 060225ccbae440eef117e2ef0a82f3deba29e6ba2d35f00281f9c0e6a945e692 060225ccbae440eef117e2ef0a82f3deba29e6ba2d35f00281f9c0e6a945e692 +top.rs af7f3cf5d0941e7dffd6fa4ce75ac432f433a5367a408fb944176dc1a932883b af7f3cf5d0941e7dffd6fa4ce75ac432f433a5367a408fb944176dc1a932883b diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index caeeb7552a7..d1a7068848f 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -5818,6 +5818,12 @@ pub struct Item { _unused: () } +impl Item { + pub fn emit_expanded(id: trap::Label, value: trap::Label, out: &mut trap::Writer) { + out.add_tuple("item_expandeds", vec![id.into(), value.into()]); + } +} + impl trap::TrapClass for Item { fn class_name() -> &'static str { "Item" } } @@ -9765,12 +9771,6 @@ impl trap::TrapEntry for MacroCall { } } -impl MacroCall { - pub fn emit_expanded(id: trap::Label, value: trap::Label, out: &mut trap::Writer) { - out.add_tuple("macro_call_expandeds", vec![id.into(), value.into()]); - } -} - impl trap::TrapClass for MacroCall { fn class_name() -> &'static str { "MacroCall" } } diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index 0ec1769f1d1..2e90d943c74 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -89,7 +89,7 @@ impl<'a> Extractor<'a> { no_location, ); } - translator.emit_source_file(ast); + translator.emit_source_file(&ast); translator.trap.commit().unwrap_or_else(|err| { error!( "Failed to write trap file for: {}: {}", diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 584d1d0be5c..a8e8bc0c890 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -11,7 +11,7 @@ use ra_ap_hir::{ }; use ra_ap_hir_def::ModuleId; use ra_ap_hir_def::type_ref::Mutability; -use ra_ap_hir_expand::ExpandTo; +use ra_ap_hir_expand::{ExpandResult, ExpandTo}; use ra_ap_ide_db::RootDatabase; use ra_ap_ide_db::line_index::{LineCol, LineIndex}; use ra_ap_parser::SyntaxKind; @@ -25,50 +25,53 @@ use ra_ap_syntax::{ #[macro_export] macro_rules! emit_detached { (MacroCall, $self:ident, $node:ident, $label:ident) => { - $self.extract_macro_call_expanded(&$node, $label); + $self.extract_macro_call_expanded($node, $label); }; (Function, $self:ident, $node:ident, $label:ident) => { - $self.extract_canonical_origin(&$node, $label.into()); + $self.extract_canonical_origin($node, $label.into()); }; (Trait, $self:ident, $node:ident, $label:ident) => { - $self.extract_canonical_origin(&$node, $label.into()); + $self.extract_canonical_origin($node, $label.into()); }; (Struct, $self:ident, $node:ident, $label:ident) => { - $self.extract_canonical_origin(&$node, $label.into()); + $self.extract_canonical_origin($node, $label.into()); }; (Enum, $self:ident, $node:ident, $label:ident) => { - $self.extract_canonical_origin(&$node, $label.into()); + $self.extract_canonical_origin($node, $label.into()); }; (Union, $self:ident, $node:ident, $label:ident) => { - $self.extract_canonical_origin(&$node, $label.into()); + $self.extract_canonical_origin($node, $label.into()); }; (Module, $self:ident, $node:ident, $label:ident) => { - $self.extract_canonical_origin(&$node, $label.into()); + $self.extract_canonical_origin($node, $label.into()); }; (Variant, $self:ident, $node:ident, $label:ident) => { - $self.extract_canonical_origin_of_enum_variant(&$node, $label); + $self.extract_canonical_origin_of_enum_variant($node, $label); + }; + (Item, $self:ident, $node:ident, $label:ident) => { + $self.emit_item_expansion($node, $label); }; // TODO canonical origin of other items (PathExpr, $self:ident, $node:ident, $label:ident) => { - $self.extract_path_canonical_destination(&$node, $label.into()); + $self.extract_path_canonical_destination($node, $label.into()); }; (StructExpr, $self:ident, $node:ident, $label:ident) => { - $self.extract_path_canonical_destination(&$node, $label.into()); + $self.extract_path_canonical_destination($node, $label.into()); }; (PathPat, $self:ident, $node:ident, $label:ident) => { - $self.extract_path_canonical_destination(&$node, $label.into()); + $self.extract_path_canonical_destination($node, $label.into()); }; (StructPat, $self:ident, $node:ident, $label:ident) => { - $self.extract_path_canonical_destination(&$node, $label.into()); + $self.extract_path_canonical_destination($node, $label.into()); }; (TupleStructPat, $self:ident, $node:ident, $label:ident) => { - $self.extract_path_canonical_destination(&$node, $label.into()); + $self.extract_path_canonical_destination($node, $label.into()); }; (MethodCallExpr, $self:ident, $node:ident, $label:ident) => { - $self.extract_method_canonical_destination(&$node, $label); + $self.extract_method_canonical_destination($node, $label); }; (PathSegment, $self:ident, $node:ident, $label:ident) => { - $self.extract_types_from_path_segment(&$node, $label.into()); + $self.extract_types_from_path_segment($node, $label.into()); }; ($($_:tt)*) => {}; } @@ -252,7 +255,11 @@ impl<'a> Translator<'a> { } } } - fn emit_macro_expansion_parse_errors(&mut self, mcall: &ast::MacroCall, expanded: &SyntaxNode) { + fn emit_macro_expansion_parse_errors( + &mut self, + node: &impl ast::AstNode, + expanded: &SyntaxNode, + ) { let semantics = self.semantics.as_ref().unwrap(); if let Some(value) = semantics .hir_file_for(expanded) @@ -266,7 +273,7 @@ impl<'a> Translator<'a> { if let Some(err) = &value.err { let error = err.render_to_string(semantics.db); - if err.span().anchor.file_id == semantics.hir_file_for(mcall.syntax()) { + if err.span().anchor.file_id == semantics.hir_file_for(node.syntax()) { let location = err.span().range + semantics .db @@ -274,11 +281,11 @@ impl<'a> Translator<'a> { .get_erased(err.span().anchor.ast_id) .text_range() .start(); - self.emit_parse_error(mcall, &SyntaxError::new(error.message, location)); + self.emit_parse_error(node, &SyntaxError::new(error.message, location)); }; } for err in value.value.iter() { - self.emit_parse_error(mcall, err); + self.emit_parse_error(node, err); } } } @@ -290,20 +297,20 @@ impl<'a> Translator<'a> { ) -> Option> { match expand_to { ra_ap_hir_expand::ExpandTo::Statements => ast::MacroStmts::cast(expanded) - .and_then(|x| self.emit_macro_stmts(x)) + .and_then(|x| self.emit_macro_stmts(&x)) .map(Into::into), ra_ap_hir_expand::ExpandTo::Items => ast::MacroItems::cast(expanded) - .and_then(|x| self.emit_macro_items(x)) + .and_then(|x| self.emit_macro_items(&x)) .map(Into::into), ra_ap_hir_expand::ExpandTo::Pattern => ast::Pat::cast(expanded) - .and_then(|x| self.emit_pat(x)) + .and_then(|x| self.emit_pat(&x)) .map(Into::into), ra_ap_hir_expand::ExpandTo::Type => ast::Type::cast(expanded) - .and_then(|x| self.emit_type(x)) + .and_then(|x| self.emit_type(&x)) .map(Into::into), ra_ap_hir_expand::ExpandTo::Expr => ast::Expr::cast(expanded) - .and_then(|x| self.emit_expr(x)) + .and_then(|x| self.emit_expr(&x)) .map(Into::into), } } @@ -321,7 +328,7 @@ impl<'a> Translator<'a> { let expand_to = ra_ap_hir_expand::ExpandTo::from_call_site(mcall); let kind = expanded.kind(); if let Some(value) = self.emit_expanded_as(expand_to, expanded) { - generated::MacroCall::emit_expanded(label, value, &mut self.trap.writer); + generated::Item::emit_expanded(label.into(), value, &mut self.trap.writer); } else { let range = self.text_range_for_node(mcall); self.emit_parse_error(mcall, &SyntaxError::new( @@ -626,17 +633,31 @@ impl<'a> Translator<'a> { if let Some(t) = type_refs .next() .and_then(ast::Type::cast) - .and_then(|t| self.emit_type(t)) + .and_then(|t| self.emit_type(&t)) { generated::PathSegment::emit_type_repr(label, t, &mut self.trap.writer) } if let Some(t) = type_refs .next() .and_then(ast::PathType::cast) - .and_then(|t| self.emit_path_type(t)) + .and_then(|t| self.emit_path_type(&t)) { generated::PathSegment::emit_trait_type_repr(label, t, &mut self.trap.writer) } } } + + pub(crate) fn emit_item_expansion(&mut self, node: &ast::Item, label: Label) { + (|| { + let semantics = self.semantics?; + let ExpandResult { + value: expanded, .. + } = semantics.expand_attr_macro(node)?; + // TODO emit err? + self.emit_macro_expansion_parse_errors(node, &expanded); + let expanded = self.emit_expanded_as(ExpandTo::Items, expanded)?; + generated::Item::emit_expanded(label, expanded, &mut self.trap.writer); + Some(()) + })(); + } } diff --git a/rust/extractor/src/translate/generated.rs b/rust/extractor/src/translate/generated.rs index 32b9c2367a6..1cc9b80538d 100644 --- a/rust/extractor/src/translate/generated.rs +++ b/rust/extractor/src/translate/generated.rs @@ -1,7 +1,4 @@ //! Generated by `ast-generator`, do not edit by hand. - -#![cfg_attr(any(), rustfmt::skip)] - use super::base::Translator; use super::mappings::TextValue; use crate::emit_detached; @@ -11,44 +8,59 @@ use ra_ap_syntax::ast::{ HasArgList, HasAttrs, HasGenericArgs, HasGenericParams, HasLoopBody, HasModuleItem, HasName, HasTypeBounds, HasVisibility, RangeItem, }; -use ra_ap_syntax::{ast, AstNode}; - +#[rustfmt::skip] +use ra_ap_syntax::{AstNode, ast}; impl Translator<'_> { - fn emit_else_branch(&mut self, node: ast::ElseBranch) -> Option> { + fn emit_else_branch(&mut self, node: &ast::ElseBranch) -> Option> { match node { ast::ElseBranch::IfExpr(inner) => self.emit_if_expr(inner).map(Into::into), ast::ElseBranch::Block(inner) => self.emit_block_expr(inner).map(Into::into), } } - - pub(crate) fn emit_asm_operand(&mut self, node: ast::AsmOperand) -> Option> { - match node { + pub(crate) fn emit_asm_operand( + &mut self, + node: &ast::AsmOperand, + ) -> Option> { + let label = match node { ast::AsmOperand::AsmConst(inner) => self.emit_asm_const(inner).map(Into::into), ast::AsmOperand::AsmLabel(inner) => self.emit_asm_label(inner).map(Into::into), - ast::AsmOperand::AsmRegOperand(inner) => self.emit_asm_reg_operand(inner).map(Into::into), + ast::AsmOperand::AsmRegOperand(inner) => { + self.emit_asm_reg_operand(inner).map(Into::into) + } ast::AsmOperand::AsmSym(inner) => self.emit_asm_sym(inner).map(Into::into), - } + }?; + emit_detached!(AsmOperand, self, node, label); + Some(label) } - - pub(crate) fn emit_asm_piece(&mut self, node: ast::AsmPiece) -> Option> { - match node { + pub(crate) fn emit_asm_piece( + &mut self, + node: &ast::AsmPiece, + ) -> Option> { + let label = match node { ast::AsmPiece::AsmClobberAbi(inner) => self.emit_asm_clobber_abi(inner).map(Into::into), - ast::AsmPiece::AsmOperandNamed(inner) => self.emit_asm_operand_named(inner).map(Into::into), + ast::AsmPiece::AsmOperandNamed(inner) => { + self.emit_asm_operand_named(inner).map(Into::into) + } ast::AsmPiece::AsmOptions(inner) => self.emit_asm_options(inner).map(Into::into), - } + }?; + emit_detached!(AsmPiece, self, node, label); + Some(label) } - - pub(crate) fn emit_assoc_item(&mut self, node: ast::AssocItem) -> Option> { - match node { + pub(crate) fn emit_assoc_item( + &mut self, + node: &ast::AssocItem, + ) -> Option> { + let label = match node { ast::AssocItem::Const(inner) => self.emit_const(inner).map(Into::into), ast::AssocItem::Fn(inner) => self.emit_fn(inner).map(Into::into), ast::AssocItem::MacroCall(inner) => self.emit_macro_call(inner).map(Into::into), ast::AssocItem::TypeAlias(inner) => self.emit_type_alias(inner).map(Into::into), - } + }?; + emit_detached!(AssocItem, self, node, label); + Some(label) } - - pub(crate) fn emit_expr(&mut self, node: ast::Expr) -> Option> { - match node { + pub(crate) fn emit_expr(&mut self, node: &ast::Expr) -> Option> { + let label = match node { ast::Expr::ArrayExpr(inner) => self.emit_array_expr(inner).map(Into::into), ast::Expr::AsmExpr(inner) => self.emit_asm_expr(inner).map(Into::into), ast::Expr::AwaitExpr(inner) => self.emit_await_expr(inner).map(Into::into), @@ -85,44 +97,67 @@ impl Translator<'_> { ast::Expr::WhileExpr(inner) => self.emit_while_expr(inner).map(Into::into), ast::Expr::YeetExpr(inner) => self.emit_yeet_expr(inner).map(Into::into), ast::Expr::YieldExpr(inner) => self.emit_yield_expr(inner).map(Into::into), - } + }?; + emit_detached!(Expr, self, node, label); + Some(label) } - - pub(crate) fn emit_extern_item(&mut self, node: ast::ExternItem) -> Option> { - match node { + pub(crate) fn emit_extern_item( + &mut self, + node: &ast::ExternItem, + ) -> Option> { + let label = match node { ast::ExternItem::Fn(inner) => self.emit_fn(inner).map(Into::into), ast::ExternItem::MacroCall(inner) => self.emit_macro_call(inner).map(Into::into), ast::ExternItem::Static(inner) => self.emit_static(inner).map(Into::into), ast::ExternItem::TypeAlias(inner) => self.emit_type_alias(inner).map(Into::into), - } + }?; + emit_detached!(ExternItem, self, node, label); + Some(label) } - - pub(crate) fn emit_field_list(&mut self, node: ast::FieldList) -> Option> { - match node { - ast::FieldList::RecordFieldList(inner) => self.emit_record_field_list(inner).map(Into::into), - ast::FieldList::TupleFieldList(inner) => self.emit_tuple_field_list(inner).map(Into::into), - } + pub(crate) fn emit_field_list( + &mut self, + node: &ast::FieldList, + ) -> Option> { + let label = match node { + ast::FieldList::RecordFieldList(inner) => { + self.emit_record_field_list(inner).map(Into::into) + } + ast::FieldList::TupleFieldList(inner) => { + self.emit_tuple_field_list(inner).map(Into::into) + } + }?; + emit_detached!(FieldList, self, node, label); + Some(label) } - - pub(crate) fn emit_generic_arg(&mut self, node: ast::GenericArg) -> Option> { - match node { + pub(crate) fn emit_generic_arg( + &mut self, + node: &ast::GenericArg, + ) -> Option> { + let label = match node { ast::GenericArg::AssocTypeArg(inner) => self.emit_assoc_type_arg(inner).map(Into::into), ast::GenericArg::ConstArg(inner) => self.emit_const_arg(inner).map(Into::into), ast::GenericArg::LifetimeArg(inner) => self.emit_lifetime_arg(inner).map(Into::into), ast::GenericArg::TypeArg(inner) => self.emit_type_arg(inner).map(Into::into), - } + }?; + emit_detached!(GenericArg, self, node, label); + Some(label) } - - pub(crate) fn emit_generic_param(&mut self, node: ast::GenericParam) -> Option> { - match node { + pub(crate) fn emit_generic_param( + &mut self, + node: &ast::GenericParam, + ) -> Option> { + let label = match node { ast::GenericParam::ConstParam(inner) => self.emit_const_param(inner).map(Into::into), - ast::GenericParam::LifetimeParam(inner) => self.emit_lifetime_param(inner).map(Into::into), + ast::GenericParam::LifetimeParam(inner) => { + self.emit_lifetime_param(inner).map(Into::into) + } ast::GenericParam::TypeParam(inner) => self.emit_type_param(inner).map(Into::into), - } + }?; + emit_detached!(GenericParam, self, node, label); + Some(label) } - - pub(crate) fn emit_pat(&mut self, node: ast::Pat) -> Option> { - match node { + pub(crate) fn emit_pat(&mut self, node: &ast::Pat) -> Option> { + let label = match node { ast::Pat::BoxPat(inner) => self.emit_box_pat(inner).map(Into::into), ast::Pat::ConstBlockPat(inner) => self.emit_const_block_pat(inner).map(Into::into), ast::Pat::IdentPat(inner) => self.emit_ident_pat(inner).map(Into::into), @@ -139,19 +174,21 @@ impl Translator<'_> { ast::Pat::TuplePat(inner) => self.emit_tuple_pat(inner).map(Into::into), ast::Pat::TupleStructPat(inner) => self.emit_tuple_struct_pat(inner).map(Into::into), ast::Pat::WildcardPat(inner) => self.emit_wildcard_pat(inner).map(Into::into), - } + }?; + emit_detached!(Pat, self, node, label); + Some(label) } - - pub(crate) fn emit_stmt(&mut self, node: ast::Stmt) -> Option> { - match node { + pub(crate) fn emit_stmt(&mut self, node: &ast::Stmt) -> Option> { + let label = match node { ast::Stmt::ExprStmt(inner) => self.emit_expr_stmt(inner).map(Into::into), ast::Stmt::Item(inner) => self.emit_item(inner).map(Into::into), ast::Stmt::LetStmt(inner) => self.emit_let_stmt(inner).map(Into::into), - } + }?; + emit_detached!(Stmt, self, node, label); + Some(label) } - - pub(crate) fn emit_type(&mut self, node: ast::Type) -> Option> { - match node { + pub(crate) fn emit_type(&mut self, node: &ast::Type) -> Option> { + let label = match node { ast::Type::ArrayType(inner) => self.emit_array_type(inner).map(Into::into), ast::Type::DynTraitType(inner) => self.emit_dyn_trait_type(inner).map(Into::into), ast::Type::FnPtrType(inner) => self.emit_fn_ptr_type(inner).map(Into::into), @@ -166,18 +203,23 @@ impl Translator<'_> { ast::Type::RefType(inner) => self.emit_ref_type(inner).map(Into::into), ast::Type::SliceType(inner) => self.emit_slice_type(inner).map(Into::into), ast::Type::TupleType(inner) => self.emit_tuple_type(inner).map(Into::into), - } + }?; + emit_detached!(TypeRepr, self, node, label); + Some(label) } - - pub(crate) fn emit_use_bound_generic_arg(&mut self, node: ast::UseBoundGenericArg) -> Option> { - match node { + pub(crate) fn emit_use_bound_generic_arg( + &mut self, + node: &ast::UseBoundGenericArg, + ) -> Option> { + let label = match node { ast::UseBoundGenericArg::Lifetime(inner) => self.emit_lifetime(inner).map(Into::into), ast::UseBoundGenericArg::NameRef(inner) => self.emit_name_ref(inner).map(Into::into), - } + }?; + emit_detached!(UseBoundGenericArg, self, node, label); + Some(label) } - - pub(crate) fn emit_item(&mut self, node: ast::Item) -> Option> { - match node { + pub(crate) fn emit_item(&mut self, node: &ast::Item) -> Option> { + let label = match node { ast::Item::Const(inner) => self.emit_const(inner).map(Into::into), ast::Item::Enum(inner) => self.emit_enum(inner).map(Into::into), ast::Item::ExternBlock(inner) => self.emit_extern_block(inner).map(Into::into), @@ -195,37 +237,44 @@ impl Translator<'_> { ast::Item::TypeAlias(inner) => self.emit_type_alias(inner).map(Into::into), ast::Item::Union(inner) => self.emit_union(inner).map(Into::into), ast::Item::Use(inner) => self.emit_use(inner).map(Into::into), - } + }?; + emit_detached!(Item, self, node, label); + Some(label) } - - pub(crate) fn emit_abi(&mut self, node: ast::Abi) -> Option> { + pub(crate) fn emit_abi(&mut self, node: &ast::Abi) -> Option> { let abi_string = node.try_get_text(); let label = self.trap.emit(generated::Abi { id: TrapId::Star, abi_string, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Abi, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_arg_list(&mut self, node: ast::ArgList) -> Option> { - let args = node.args().filter_map(|x| self.emit_expr(x)).collect(); + pub(crate) fn emit_arg_list( + &mut self, + node: &ast::ArgList, + ) -> Option> { + let args = node.args().filter_map(|x| self.emit_expr(&x)).collect(); let label = self.trap.emit(generated::ArgList { id: TrapId::Star, args, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ArgList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_array_expr(&mut self, node: ast::ArrayExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let exprs = node.exprs().filter_map(|x| self.emit_expr(x)).collect(); + pub(crate) fn emit_array_expr( + &mut self, + node: &ast::ArrayExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let exprs = node.exprs().filter_map(|x| self.emit_expr(&x)).collect(); let is_semicolon = node.semicolon_token().is_some(); let label = self.trap.emit(generated::ArrayExprInternal { id: TrapId::Star, @@ -233,205 +282,251 @@ impl Translator<'_> { exprs, is_semicolon, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ArrayExprInternal, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_array_type(&mut self, node: ast::ArrayType) -> Option> { - let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(x)); - let element_type_repr = node.ty().and_then(|x| self.emit_type(x)); + pub(crate) fn emit_array_type( + &mut self, + node: &ast::ArrayType, + ) -> Option> { + let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(&x)); + let element_type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ArrayTypeRepr { id: TrapId::Star, const_arg, element_type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ArrayTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_clobber_abi(&mut self, node: ast::AsmClobberAbi) -> Option> { - let label = self.trap.emit(generated::AsmClobberAbi { - id: TrapId::Star, - }); - self.emit_location(label, &node); + pub(crate) fn emit_asm_clobber_abi( + &mut self, + node: &ast::AsmClobberAbi, + ) -> Option> { + let label = self + .trap + .emit(generated::AsmClobberAbi { id: TrapId::Star }); + self.emit_location(label, node); emit_detached!(AsmClobberAbi, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_const(&mut self, node: ast::AsmConst) -> Option> { - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_asm_const( + &mut self, + node: &ast::AsmConst, + ) -> Option> { + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let is_const = node.const_token().is_some(); let label = self.trap.emit(generated::AsmConst { id: TrapId::Star, expr, is_const, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AsmConst, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_dir_spec(&mut self, node: ast::AsmDirSpec) -> Option> { - let label = self.trap.emit(generated::AsmDirSpec { - id: TrapId::Star, - }); - self.emit_location(label, &node); + pub(crate) fn emit_asm_dir_spec( + &mut self, + node: &ast::AsmDirSpec, + ) -> Option> { + let label = self.trap.emit(generated::AsmDirSpec { id: TrapId::Star }); + self.emit_location(label, node); emit_detached!(AsmDirSpec, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_expr(&mut self, node: ast::AsmExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let asm_pieces = node.asm_pieces().filter_map(|x| self.emit_asm_piece(x)).collect(); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let template = node.template().filter_map(|x| self.emit_expr(x)).collect(); + pub(crate) fn emit_asm_expr( + &mut self, + node: &ast::AsmExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let asm_pieces = node + .asm_pieces() + .filter_map(|x| self.emit_asm_piece(&x)) + .collect(); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let template = node.template().filter_map(|x| self.emit_expr(&x)).collect(); let label = self.trap.emit(generated::AsmExpr { id: TrapId::Star, asm_pieces, attrs, template, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AsmExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_label(&mut self, node: ast::AsmLabel) -> Option> { - let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(x)); + pub(crate) fn emit_asm_label( + &mut self, + node: &ast::AsmLabel, + ) -> Option> { + let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::AsmLabel { id: TrapId::Star, block_expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AsmLabel, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_operand_expr(&mut self, node: ast::AsmOperandExpr) -> Option> { - let in_expr = node.in_expr().and_then(|x| self.emit_expr(x)); - let out_expr = node.out_expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_asm_operand_expr( + &mut self, + node: &ast::AsmOperandExpr, + ) -> Option> { + let in_expr = node.in_expr().and_then(|x| self.emit_expr(&x)); + let out_expr = node.out_expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::AsmOperandExpr { id: TrapId::Star, in_expr, out_expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AsmOperandExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_operand_named(&mut self, node: ast::AsmOperandNamed) -> Option> { - let asm_operand = node.asm_operand().and_then(|x| self.emit_asm_operand(x)); - let name = node.name().and_then(|x| self.emit_name(x)); + pub(crate) fn emit_asm_operand_named( + &mut self, + node: &ast::AsmOperandNamed, + ) -> Option> { + let asm_operand = node.asm_operand().and_then(|x| self.emit_asm_operand(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::AsmOperandNamed { id: TrapId::Star, asm_operand, name, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AsmOperandNamed, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_option(&mut self, node: ast::AsmOption) -> Option> { + pub(crate) fn emit_asm_option( + &mut self, + node: &ast::AsmOption, + ) -> Option> { let is_raw = node.raw_token().is_some(); let label = self.trap.emit(generated::AsmOption { id: TrapId::Star, is_raw, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AsmOption, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_options(&mut self, node: ast::AsmOptions) -> Option> { - let asm_options = node.asm_options().filter_map(|x| self.emit_asm_option(x)).collect(); + pub(crate) fn emit_asm_options( + &mut self, + node: &ast::AsmOptions, + ) -> Option> { + let asm_options = node + .asm_options() + .filter_map(|x| self.emit_asm_option(&x)) + .collect(); let label = self.trap.emit(generated::AsmOptionsList { id: TrapId::Star, asm_options, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AsmOptionsList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_reg_operand(&mut self, node: ast::AsmRegOperand) -> Option> { - let asm_dir_spec = node.asm_dir_spec().and_then(|x| self.emit_asm_dir_spec(x)); - let asm_operand_expr = node.asm_operand_expr().and_then(|x| self.emit_asm_operand_expr(x)); - let asm_reg_spec = node.asm_reg_spec().and_then(|x| self.emit_asm_reg_spec(x)); + pub(crate) fn emit_asm_reg_operand( + &mut self, + node: &ast::AsmRegOperand, + ) -> Option> { + let asm_dir_spec = node.asm_dir_spec().and_then(|x| self.emit_asm_dir_spec(&x)); + let asm_operand_expr = node + .asm_operand_expr() + .and_then(|x| self.emit_asm_operand_expr(&x)); + let asm_reg_spec = node.asm_reg_spec().and_then(|x| self.emit_asm_reg_spec(&x)); let label = self.trap.emit(generated::AsmRegOperand { id: TrapId::Star, asm_dir_spec, asm_operand_expr, asm_reg_spec, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AsmRegOperand, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_reg_spec(&mut self, node: ast::AsmRegSpec) -> Option> { - let identifier = node.name_ref().and_then(|x| self.emit_name_ref(x)); + pub(crate) fn emit_asm_reg_spec( + &mut self, + node: &ast::AsmRegSpec, + ) -> Option> { + let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); let label = self.trap.emit(generated::AsmRegSpec { id: TrapId::Star, identifier, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AsmRegSpec, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_asm_sym(&mut self, node: ast::AsmSym) -> Option> { - let path = node.path().and_then(|x| self.emit_path(x)); + pub(crate) fn emit_asm_sym(&mut self, node: &ast::AsmSym) -> Option> { + let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::AsmSym { id: TrapId::Star, path, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AsmSym, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_assoc_item_list(&mut self, node: ast::AssocItemList) -> Option> { - if self.should_be_excluded(&node) { return None; } - let assoc_items = node.assoc_items().filter_map(|x| self.emit_assoc_item(x)).collect(); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); + pub(crate) fn emit_assoc_item_list( + &mut self, + node: &ast::AssocItemList, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let assoc_items = node + .assoc_items() + .filter_map(|x| self.emit_assoc_item(&x)) + .collect(); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let label = self.trap.emit(generated::AssocItemList { id: TrapId::Star, assoc_items, attrs, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AssocItemList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_assoc_type_arg(&mut self, node: ast::AssocTypeArg) -> Option> { - let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(x)); - let generic_arg_list = node.generic_arg_list().and_then(|x| self.emit_generic_arg_list(x)); - let identifier = node.name_ref().and_then(|x| self.emit_name_ref(x)); - let param_list = node.param_list().and_then(|x| self.emit_param_list(x)); - let ret_type = node.ret_type().and_then(|x| self.emit_ret_type(x)); - let return_type_syntax = node.return_type_syntax().and_then(|x| self.emit_return_type_syntax(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); - let type_bound_list = node.type_bound_list().and_then(|x| self.emit_type_bound_list(x)); + pub(crate) fn emit_assoc_type_arg( + &mut self, + node: &ast::AssocTypeArg, + ) -> Option> { + let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(&x)); + let generic_arg_list = node + .generic_arg_list() + .and_then(|x| self.emit_generic_arg_list(&x)); + let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); + let param_list = node.param_list().and_then(|x| self.emit_param_list(&x)); + let ret_type = node.ret_type().and_then(|x| self.emit_ret_type(&x)); + let return_type_syntax = node + .return_type_syntax() + .and_then(|x| self.emit_return_type_syntax(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); + let type_bound_list = node + .type_bound_list() + .and_then(|x| self.emit_type_bound_list(&x)); let label = self.trap.emit(generated::AssocTypeArg { id: TrapId::Star, const_arg, @@ -443,60 +538,71 @@ impl Translator<'_> { type_repr, type_bound_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AssocTypeArg, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_attr(&mut self, node: ast::Attr) -> Option> { - let meta = node.meta().and_then(|x| self.emit_meta(x)); + pub(crate) fn emit_attr(&mut self, node: &ast::Attr) -> Option> { + let meta = node.meta().and_then(|x| self.emit_meta(&x)); let label = self.trap.emit(generated::Attr { id: TrapId::Star, meta, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Attr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_await_expr(&mut self, node: ast::AwaitExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_await_expr( + &mut self, + node: &ast::AwaitExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::AwaitExpr { id: TrapId::Star, attrs, expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(AwaitExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_become_expr(&mut self, node: ast::BecomeExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_become_expr( + &mut self, + node: &ast::BecomeExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::BecomeExpr { id: TrapId::Star, attrs, expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(BecomeExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_bin_expr(&mut self, node: ast::BinExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let lhs = node.lhs().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_bin_expr( + &mut self, + node: &ast::BinExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let lhs = node.lhs().and_then(|x| self.emit_expr(&x)); let operator_name = node.try_get_text(); - let rhs = node.rhs().and_then(|x| self.emit_expr(x)); + let rhs = node.rhs().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::BinaryExpr { id: TrapId::Star, attrs, @@ -504,23 +610,27 @@ impl Translator<'_> { operator_name, rhs, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(BinaryExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_block_expr(&mut self, node: ast::BlockExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); + pub(crate) fn emit_block_expr( + &mut self, + node: &ast::BlockExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); let is_gen = node.gen_token().is_some(); let is_move = node.move_token().is_some(); let is_try = node.try_token().is_some(); let is_unsafe = node.unsafe_token().is_some(); - let label = node.label().and_then(|x| self.emit_label(x)); - let stmt_list = node.stmt_list().and_then(|x| self.emit_stmt_list(x)); + let label = node.label().and_then(|x| self.emit_label(&x)); + let stmt_list = node.stmt_list().and_then(|x| self.emit_stmt_list(&x)); let label = self.trap.emit(generated::BlockExpr { id: TrapId::Star, attrs, @@ -533,99 +643,120 @@ impl Translator<'_> { label, stmt_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(BlockExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_box_pat(&mut self, node: ast::BoxPat) -> Option> { - let pat = node.pat().and_then(|x| self.emit_pat(x)); + pub(crate) fn emit_box_pat(&mut self, node: &ast::BoxPat) -> Option> { + let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::BoxPat { id: TrapId::Star, pat, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(BoxPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_break_expr(&mut self, node: ast::BreakExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); - let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(x)); + pub(crate) fn emit_break_expr( + &mut self, + node: &ast::BreakExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); + let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::BreakExpr { id: TrapId::Star, attrs, expr, lifetime, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(BreakExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_call_expr(&mut self, node: ast::CallExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let arg_list = node.arg_list().and_then(|x| self.emit_arg_list(x)); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let function = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_call_expr( + &mut self, + node: &ast::CallExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let arg_list = node.arg_list().and_then(|x| self.emit_arg_list(&x)); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let function = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::CallExpr { id: TrapId::Star, arg_list, attrs, function, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(CallExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_cast_expr(&mut self, node: ast::CastExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + pub(crate) fn emit_cast_expr( + &mut self, + node: &ast::CastExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::CastExpr { id: TrapId::Star, attrs, expr, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(CastExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_closure_binder(&mut self, node: ast::ClosureBinder) -> Option> { - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); + pub(crate) fn emit_closure_binder( + &mut self, + node: &ast::ClosureBinder, + ) -> Option> { + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); let label = self.trap.emit(generated::ClosureBinder { id: TrapId::Star, generic_param_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ClosureBinder, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_closure_expr(&mut self, node: ast::ClosureExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let body = node.body().and_then(|x| self.emit_expr(x)); - let closure_binder = node.closure_binder().and_then(|x| self.emit_closure_binder(x)); + pub(crate) fn emit_closure_expr( + &mut self, + node: &ast::ClosureExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let body = node.body().and_then(|x| self.emit_expr(&x)); + let closure_binder = node + .closure_binder() + .and_then(|x| self.emit_closure_binder(&x)); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); let is_gen = node.gen_token().is_some(); let is_move = node.move_token().is_some(); let is_static = node.static_token().is_some(); - let param_list = node.param_list().and_then(|x| self.emit_param_list(x)); - let ret_type = node.ret_type().and_then(|x| self.emit_ret_type(x)); + let param_list = node.param_list().and_then(|x| self.emit_param_list(&x)); + let ret_type = node.ret_type().and_then(|x| self.emit_ret_type(&x)); let label = self.trap.emit(generated::ClosureExpr { id: TrapId::Star, attrs, @@ -639,21 +770,22 @@ impl Translator<'_> { param_list, ret_type, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ClosureExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_const(&mut self, node: ast::Const) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let body = node.body().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_const(&mut self, node: &ast::Const) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let body = node.body().and_then(|x| self.emit_expr(&x)); let is_const = node.const_token().is_some(); let is_default = node.default_token().is_some(); - let name = node.name().and_then(|x| self.emit_name(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); let label = self.trap.emit(generated::Const { id: TrapId::Star, attrs, @@ -664,45 +796,53 @@ impl Translator<'_> { type_repr, visibility, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Const, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_const_arg(&mut self, node: ast::ConstArg) -> Option> { - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_const_arg( + &mut self, + node: &ast::ConstArg, + ) -> Option> { + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ConstArg { id: TrapId::Star, expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ConstArg, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_const_block_pat(&mut self, node: ast::ConstBlockPat) -> Option> { - let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(x)); + pub(crate) fn emit_const_block_pat( + &mut self, + node: &ast::ConstBlockPat, + ) -> Option> { + let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let is_const = node.const_token().is_some(); let label = self.trap.emit(generated::ConstBlockPat { id: TrapId::Star, block_expr, is_const, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ConstBlockPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_const_param(&mut self, node: ast::ConstParam) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let default_val = node.default_val().and_then(|x| self.emit_const_arg(x)); + pub(crate) fn emit_const_param( + &mut self, + node: &ast::ConstParam, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let default_val = node.default_val().and_then(|x| self.emit_const_arg(&x)); let is_const = node.const_token().is_some(); - let name = node.name().and_then(|x| self.emit_name(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ConstParam { id: TrapId::Star, attrs, @@ -711,47 +851,58 @@ impl Translator<'_> { name, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ConstParam, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_continue_expr(&mut self, node: ast::ContinueExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(x)); + pub(crate) fn emit_continue_expr( + &mut self, + node: &ast::ContinueExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::ContinueExpr { id: TrapId::Star, attrs, lifetime, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ContinueExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_dyn_trait_type(&mut self, node: ast::DynTraitType) -> Option> { - let type_bound_list = node.type_bound_list().and_then(|x| self.emit_type_bound_list(x)); + pub(crate) fn emit_dyn_trait_type( + &mut self, + node: &ast::DynTraitType, + ) -> Option> { + let type_bound_list = node + .type_bound_list() + .and_then(|x| self.emit_type_bound_list(&x)); let label = self.trap.emit(generated::DynTraitTypeRepr { id: TrapId::Star, type_bound_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(DynTraitTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_enum(&mut self, node: ast::Enum) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); - let name = node.name().and_then(|x| self.emit_name(x)); - let variant_list = node.variant_list().and_then(|x| self.emit_variant_list(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); - let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(x)); + pub(crate) fn emit_enum(&mut self, node: &ast::Enum) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let variant_list = node.variant_list().and_then(|x| self.emit_variant_list(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); + let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x)); let label = self.trap.emit(generated::Enum { id: TrapId::Star, attrs, @@ -761,29 +912,37 @@ impl Translator<'_> { visibility, where_clause, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Enum, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_expr_stmt(&mut self, node: ast::ExprStmt) -> Option> { - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_expr_stmt( + &mut self, + node: &ast::ExprStmt, + ) -> Option> { + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ExprStmt { id: TrapId::Star, expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ExprStmt, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_extern_block(&mut self, node: ast::ExternBlock) -> Option> { - if self.should_be_excluded(&node) { return None; } - let abi = node.abi().and_then(|x| self.emit_abi(x)); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let extern_item_list = node.extern_item_list().and_then(|x| self.emit_extern_item_list(x)); + pub(crate) fn emit_extern_block( + &mut self, + node: &ast::ExternBlock, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let abi = node.abi().and_then(|x| self.emit_abi(&x)); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let extern_item_list = node + .extern_item_list() + .and_then(|x| self.emit_extern_item_list(&x)); let is_unsafe = node.unsafe_token().is_some(); let label = self.trap.emit(generated::ExternBlock { id: TrapId::Star, @@ -792,18 +951,22 @@ impl Translator<'_> { extern_item_list, is_unsafe, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ExternBlock, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_extern_crate(&mut self, node: ast::ExternCrate) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let identifier = node.name_ref().and_then(|x| self.emit_name_ref(x)); - let rename = node.rename().and_then(|x| self.emit_rename(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); + pub(crate) fn emit_extern_crate( + &mut self, + node: &ast::ExternCrate, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); + let rename = node.rename().and_then(|x| self.emit_rename(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); let label = self.trap.emit(generated::ExternCrate { id: TrapId::Star, attrs, @@ -811,60 +974,74 @@ impl Translator<'_> { rename, visibility, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ExternCrate, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_extern_item_list(&mut self, node: ast::ExternItemList) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let extern_items = node.extern_items().filter_map(|x| self.emit_extern_item(x)).collect(); + pub(crate) fn emit_extern_item_list( + &mut self, + node: &ast::ExternItemList, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let extern_items = node + .extern_items() + .filter_map(|x| self.emit_extern_item(&x)) + .collect(); let label = self.trap.emit(generated::ExternItemList { id: TrapId::Star, attrs, extern_items, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ExternItemList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_field_expr(&mut self, node: ast::FieldExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let container = node.expr().and_then(|x| self.emit_expr(x)); - let identifier = node.name_ref().and_then(|x| self.emit_name_ref(x)); + pub(crate) fn emit_field_expr( + &mut self, + node: &ast::FieldExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let container = node.expr().and_then(|x| self.emit_expr(&x)); + let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); let label = self.trap.emit(generated::FieldExpr { id: TrapId::Star, attrs, container, identifier, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(FieldExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_fn(&mut self, node: ast::Fn) -> Option> { - if self.should_be_excluded(&node) { return None; } - let abi = node.abi().and_then(|x| self.emit_abi(x)); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let body = node.body().and_then(|x| self.emit_block_expr(x)); - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); + pub(crate) fn emit_fn(&mut self, node: &ast::Fn) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let abi = node.abi().and_then(|x| self.emit_abi(&x)); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let body = node.body().and_then(|x| self.emit_block_expr(&x)); + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); let is_default = node.default_token().is_some(); let is_gen = node.gen_token().is_some(); let is_unsafe = node.unsafe_token().is_some(); - let name = node.name().and_then(|x| self.emit_name(x)); - let param_list = node.param_list().and_then(|x| self.emit_param_list(x)); - let ret_type = node.ret_type().and_then(|x| self.emit_ret_type(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); - let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let param_list = node.param_list().and_then(|x| self.emit_param_list(&x)); + let ret_type = node.ret_type().and_then(|x| self.emit_ret_type(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); + let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x)); let label = self.trap.emit(generated::Function { id: TrapId::Star, abi, @@ -882,19 +1059,21 @@ impl Translator<'_> { visibility, where_clause, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Function, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_fn_ptr_type(&mut self, node: ast::FnPtrType) -> Option> { - let abi = node.abi().and_then(|x| self.emit_abi(x)); + pub(crate) fn emit_fn_ptr_type( + &mut self, + node: &ast::FnPtrType, + ) -> Option> { + let abi = node.abi().and_then(|x| self.emit_abi(&x)); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); let is_unsafe = node.unsafe_token().is_some(); - let param_list = node.param_list().and_then(|x| self.emit_param_list(x)); - let ret_type = node.ret_type().and_then(|x| self.emit_ret_type(x)); + let param_list = node.param_list().and_then(|x| self.emit_param_list(&x)); + let ret_type = node.ret_type().and_then(|x| self.emit_ret_type(&x)); let label = self.trap.emit(generated::FnPtrTypeRepr { id: TrapId::Star, abi, @@ -904,19 +1083,23 @@ impl Translator<'_> { param_list, ret_type, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(FnPtrTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_for_expr(&mut self, node: ast::ForExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let iterable = node.iterable().and_then(|x| self.emit_expr(x)); - let label = node.label().and_then(|x| self.emit_label(x)); - let loop_body = node.loop_body().and_then(|x| self.emit_block_expr(x)); - let pat = node.pat().and_then(|x| self.emit_pat(x)); + pub(crate) fn emit_for_expr( + &mut self, + node: &ast::ForExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let iterable = node.iterable().and_then(|x| self.emit_expr(&x)); + let label = node.label().and_then(|x| self.emit_label(&x)); + let loop_body = node.loop_body().and_then(|x| self.emit_block_expr(&x)); + let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::ForExpr { id: TrapId::Star, attrs, @@ -925,88 +1108,115 @@ impl Translator<'_> { loop_body, pat, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ForExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_for_type(&mut self, node: ast::ForType) -> Option> { - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + pub(crate) fn emit_for_type( + &mut self, + node: &ast::ForType, + ) -> Option> { + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ForTypeRepr { id: TrapId::Star, generic_param_list, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ForTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_format_args_arg(&mut self, node: ast::FormatArgsArg) -> Option> { - let expr = node.expr().and_then(|x| self.emit_expr(x)); - let name = node.name().and_then(|x| self.emit_name(x)); + pub(crate) fn emit_format_args_arg( + &mut self, + node: &ast::FormatArgsArg, + ) -> Option> { + let expr = node.expr().and_then(|x| self.emit_expr(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::FormatArgsArg { id: TrapId::Star, expr, name, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(FormatArgsArg, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_format_args_expr(&mut self, node: ast::FormatArgsExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let args = node.args().filter_map(|x| self.emit_format_args_arg(x)).collect(); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let template = node.template().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_format_args_expr( + &mut self, + node: &ast::FormatArgsExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let args = node + .args() + .filter_map(|x| self.emit_format_args_arg(&x)) + .collect(); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let template = node.template().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::FormatArgsExpr { id: TrapId::Star, args, attrs, template, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(FormatArgsExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_generic_arg_list(&mut self, node: ast::GenericArgList) -> Option> { - let generic_args = node.generic_args().filter_map(|x| self.emit_generic_arg(x)).collect(); + pub(crate) fn emit_generic_arg_list( + &mut self, + node: &ast::GenericArgList, + ) -> Option> { + let generic_args = node + .generic_args() + .filter_map(|x| self.emit_generic_arg(&x)) + .collect(); let label = self.trap.emit(generated::GenericArgList { id: TrapId::Star, generic_args, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(GenericArgList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_generic_param_list(&mut self, node: ast::GenericParamList) -> Option> { - let generic_params = node.generic_params().filter_map(|x| self.emit_generic_param(x)).collect(); + pub(crate) fn emit_generic_param_list( + &mut self, + node: &ast::GenericParamList, + ) -> Option> { + let generic_params = node + .generic_params() + .filter_map(|x| self.emit_generic_param(&x)) + .collect(); let label = self.trap.emit(generated::GenericParamList { id: TrapId::Star, generic_params, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(GenericParamList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_ident_pat(&mut self, node: ast::IdentPat) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); + pub(crate) fn emit_ident_pat( + &mut self, + node: &ast::IdentPat, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let is_mut = node.mut_token().is_some(); let is_ref = node.ref_token().is_some(); - let name = node.name().and_then(|x| self.emit_name(x)); - let pat = node.pat().and_then(|x| self.emit_pat(x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::IdentPat { id: TrapId::Star, attrs, @@ -1015,18 +1225,19 @@ impl Translator<'_> { name, pat, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(IdentPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_if_expr(&mut self, node: ast::IfExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let condition = node.condition().and_then(|x| self.emit_expr(x)); - let else_ = node.else_branch().and_then(|x| self.emit_else_branch(x)); - let then = node.then_branch().and_then(|x| self.emit_block_expr(x)); + pub(crate) fn emit_if_expr(&mut self, node: &ast::IfExpr) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let condition = node.condition().and_then(|x| self.emit_expr(&x)); + let else_ = node.else_branch().and_then(|x| self.emit_else_branch(&x)); + let then = node.then_branch().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::IfExpr { id: TrapId::Star, attrs, @@ -1034,24 +1245,29 @@ impl Translator<'_> { else_, then, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(IfExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_impl(&mut self, node: ast::Impl) -> Option> { - if self.should_be_excluded(&node) { return None; } - let assoc_item_list = node.assoc_item_list().and_then(|x| self.emit_assoc_item_list(x)); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); + pub(crate) fn emit_impl(&mut self, node: &ast::Impl) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let assoc_item_list = node + .assoc_item_list() + .and_then(|x| self.emit_assoc_item_list(&x)); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); let is_const = node.const_token().is_some(); let is_default = node.default_token().is_some(); let is_unsafe = node.unsafe_token().is_some(); - let self_ty = node.self_ty().and_then(|x| self.emit_type(x)); - let trait_ = node.trait_().and_then(|x| self.emit_type(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); - let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(x)); + let self_ty = node.self_ty().and_then(|x| self.emit_type(&x)); + let trait_ = node.trait_().and_then(|x| self.emit_type(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); + let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x)); let label = self.trap.emit(generated::Impl { id: TrapId::Star, assoc_item_list, @@ -1065,114 +1281,137 @@ impl Translator<'_> { visibility, where_clause, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Impl, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_impl_trait_type(&mut self, node: ast::ImplTraitType) -> Option> { - let type_bound_list = node.type_bound_list().and_then(|x| self.emit_type_bound_list(x)); + pub(crate) fn emit_impl_trait_type( + &mut self, + node: &ast::ImplTraitType, + ) -> Option> { + let type_bound_list = node + .type_bound_list() + .and_then(|x| self.emit_type_bound_list(&x)); let label = self.trap.emit(generated::ImplTraitTypeRepr { id: TrapId::Star, type_bound_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ImplTraitTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_index_expr(&mut self, node: ast::IndexExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let base = node.base().and_then(|x| self.emit_expr(x)); - let index = node.index().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_index_expr( + &mut self, + node: &ast::IndexExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let base = node.base().and_then(|x| self.emit_expr(&x)); + let index = node.index().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::IndexExpr { id: TrapId::Star, attrs, base, index, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(IndexExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_infer_type(&mut self, node: ast::InferType) -> Option> { - let label = self.trap.emit(generated::InferTypeRepr { - id: TrapId::Star, - }); - self.emit_location(label, &node); + pub(crate) fn emit_infer_type( + &mut self, + node: &ast::InferType, + ) -> Option> { + let label = self + .trap + .emit(generated::InferTypeRepr { id: TrapId::Star }); + self.emit_location(label, node); emit_detached!(InferTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_item_list(&mut self, node: ast::ItemList) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let items = node.items().filter_map(|x| self.emit_item(x)).collect(); + pub(crate) fn emit_item_list( + &mut self, + node: &ast::ItemList, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let items = node.items().filter_map(|x| self.emit_item(&x)).collect(); let label = self.trap.emit(generated::ItemList { id: TrapId::Star, attrs, items, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ItemList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_label(&mut self, node: ast::Label) -> Option> { - let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(x)); + pub(crate) fn emit_label(&mut self, node: &ast::Label) -> Option> { + let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::Label { id: TrapId::Star, lifetime, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Label, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_let_else(&mut self, node: ast::LetElse) -> Option> { - let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(x)); + pub(crate) fn emit_let_else( + &mut self, + node: &ast::LetElse, + ) -> Option> { + let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::LetElse { id: TrapId::Star, block_expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(LetElse, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_let_expr(&mut self, node: ast::LetExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let scrutinee = node.expr().and_then(|x| self.emit_expr(x)); - let pat = node.pat().and_then(|x| self.emit_pat(x)); + pub(crate) fn emit_let_expr( + &mut self, + node: &ast::LetExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let scrutinee = node.expr().and_then(|x| self.emit_expr(&x)); + let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::LetExpr { id: TrapId::Star, attrs, scrutinee, pat, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(LetExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_let_stmt(&mut self, node: ast::LetStmt) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let initializer = node.initializer().and_then(|x| self.emit_expr(x)); - let let_else = node.let_else().and_then(|x| self.emit_let_else(x)); - let pat = node.pat().and_then(|x| self.emit_pat(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + pub(crate) fn emit_let_stmt( + &mut self, + node: &ast::LetStmt, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let initializer = node.initializer().and_then(|x| self.emit_expr(&x)); + let let_else = node.let_else().and_then(|x| self.emit_let_else(&x)); + let pat = node.pat().and_then(|x| self.emit_pat(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::LetStmt { id: TrapId::Star, attrs, @@ -1181,121 +1420,149 @@ impl Translator<'_> { pat, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(LetStmt, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_lifetime(&mut self, node: ast::Lifetime) -> Option> { + pub(crate) fn emit_lifetime( + &mut self, + node: &ast::Lifetime, + ) -> Option> { let text = node.try_get_text(); let label = self.trap.emit(generated::Lifetime { id: TrapId::Star, text, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Lifetime, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_lifetime_arg(&mut self, node: ast::LifetimeArg) -> Option> { - let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(x)); + pub(crate) fn emit_lifetime_arg( + &mut self, + node: &ast::LifetimeArg, + ) -> Option> { + let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::LifetimeArg { id: TrapId::Star, lifetime, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(LifetimeArg, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_lifetime_param(&mut self, node: ast::LifetimeParam) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(x)); - let type_bound_list = node.type_bound_list().and_then(|x| self.emit_type_bound_list(x)); + pub(crate) fn emit_lifetime_param( + &mut self, + node: &ast::LifetimeParam, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); + let type_bound_list = node + .type_bound_list() + .and_then(|x| self.emit_type_bound_list(&x)); let label = self.trap.emit(generated::LifetimeParam { id: TrapId::Star, attrs, lifetime, type_bound_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(LifetimeParam, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_literal(&mut self, node: ast::Literal) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); + pub(crate) fn emit_literal( + &mut self, + node: &ast::Literal, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let text_value = node.try_get_text(); let label = self.trap.emit(generated::LiteralExpr { id: TrapId::Star, attrs, text_value, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(LiteralExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_literal_pat(&mut self, node: ast::LiteralPat) -> Option> { - let literal = node.literal().and_then(|x| self.emit_literal(x)); + pub(crate) fn emit_literal_pat( + &mut self, + node: &ast::LiteralPat, + ) -> Option> { + let literal = node.literal().and_then(|x| self.emit_literal(&x)); let label = self.trap.emit(generated::LiteralPat { id: TrapId::Star, literal, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(LiteralPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_loop_expr(&mut self, node: ast::LoopExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let label = node.label().and_then(|x| self.emit_label(x)); - let loop_body = node.loop_body().and_then(|x| self.emit_block_expr(x)); + pub(crate) fn emit_loop_expr( + &mut self, + node: &ast::LoopExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let label = node.label().and_then(|x| self.emit_label(&x)); + let loop_body = node.loop_body().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::LoopExpr { id: TrapId::Star, attrs, label, loop_body, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(LoopExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_macro_call(&mut self, node: ast::MacroCall) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let path = node.path().and_then(|x| self.emit_path(x)); - let token_tree = node.token_tree().and_then(|x| self.emit_token_tree(x)); + pub(crate) fn emit_macro_call( + &mut self, + node: &ast::MacroCall, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let path = node.path().and_then(|x| self.emit_path(&x)); + let token_tree = node.token_tree().and_then(|x| self.emit_token_tree(&x)); let label = self.trap.emit(generated::MacroCall { id: TrapId::Star, attrs, path, token_tree, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MacroCall, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_macro_def(&mut self, node: ast::MacroDef) -> Option> { - if self.should_be_excluded(&node) { return None; } - let args = node.args().and_then(|x| self.emit_token_tree(x)); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let body = node.body().and_then(|x| self.emit_token_tree(x)); - let name = node.name().and_then(|x| self.emit_name(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); + pub(crate) fn emit_macro_def( + &mut self, + node: &ast::MacroDef, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let args = node.args().and_then(|x| self.emit_token_tree(&x)); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let body = node.body().and_then(|x| self.emit_token_tree(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); let label = self.trap.emit(generated::MacroDef { id: TrapId::Star, args, @@ -1304,54 +1571,64 @@ impl Translator<'_> { name, visibility, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MacroDef, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_macro_expr(&mut self, node: ast::MacroExpr) -> Option> { - let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(x)); + pub(crate) fn emit_macro_expr( + &mut self, + node: &ast::MacroExpr, + ) -> Option> { + let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroExpr { id: TrapId::Star, macro_call, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MacroExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_macro_items(&mut self, node: ast::MacroItems) -> Option> { - let items = node.items().filter_map(|x| self.emit_item(x)).collect(); + pub(crate) fn emit_macro_items( + &mut self, + node: &ast::MacroItems, + ) -> Option> { + let items = node.items().filter_map(|x| self.emit_item(&x)).collect(); let label = self.trap.emit(generated::MacroItems { id: TrapId::Star, items, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MacroItems, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_macro_pat(&mut self, node: ast::MacroPat) -> Option> { - let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(x)); + pub(crate) fn emit_macro_pat( + &mut self, + node: &ast::MacroPat, + ) -> Option> { + let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroPat { id: TrapId::Star, macro_call, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MacroPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_macro_rules(&mut self, node: ast::MacroRules) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let name = node.name().and_then(|x| self.emit_name(x)); - let token_tree = node.token_tree().and_then(|x| self.emit_token_tree(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); + pub(crate) fn emit_macro_rules( + &mut self, + node: &ast::MacroRules, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let name = node.name().and_then(|x| self.emit_name(&x)); + let token_tree = node.token_tree().and_then(|x| self.emit_token_tree(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); let label = self.trap.emit(generated::MacroRules { id: TrapId::Star, attrs, @@ -1359,44 +1636,55 @@ impl Translator<'_> { token_tree, visibility, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MacroRules, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_macro_stmts(&mut self, node: ast::MacroStmts) -> Option> { - let expr = node.expr().and_then(|x| self.emit_expr(x)); - let statements = node.statements().filter_map(|x| self.emit_stmt(x)).collect(); + pub(crate) fn emit_macro_stmts( + &mut self, + node: &ast::MacroStmts, + ) -> Option> { + let expr = node.expr().and_then(|x| self.emit_expr(&x)); + let statements = node + .statements() + .filter_map(|x| self.emit_stmt(&x)) + .collect(); let label = self.trap.emit(generated::MacroStmts { id: TrapId::Star, expr, statements, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MacroStmts, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_macro_type(&mut self, node: ast::MacroType) -> Option> { - let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(x)); + pub(crate) fn emit_macro_type( + &mut self, + node: &ast::MacroType, + ) -> Option> { + let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroTypeRepr { id: TrapId::Star, macro_call, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MacroTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_match_arm(&mut self, node: ast::MatchArm) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); - let guard = node.guard().and_then(|x| self.emit_match_guard(x)); - let pat = node.pat().and_then(|x| self.emit_pat(x)); + pub(crate) fn emit_match_arm( + &mut self, + node: &ast::MatchArm, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); + let guard = node.guard().and_then(|x| self.emit_match_guard(&x)); + let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::MatchArm { id: TrapId::Star, attrs, @@ -1404,61 +1692,75 @@ impl Translator<'_> { guard, pat, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MatchArm, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_match_arm_list(&mut self, node: ast::MatchArmList) -> Option> { - if self.should_be_excluded(&node) { return None; } - let arms = node.arms().filter_map(|x| self.emit_match_arm(x)).collect(); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); + pub(crate) fn emit_match_arm_list( + &mut self, + node: &ast::MatchArmList, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let arms = node + .arms() + .filter_map(|x| self.emit_match_arm(&x)) + .collect(); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let label = self.trap.emit(generated::MatchArmList { id: TrapId::Star, arms, attrs, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MatchArmList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_match_expr(&mut self, node: ast::MatchExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let scrutinee = node.expr().and_then(|x| self.emit_expr(x)); - let match_arm_list = node.match_arm_list().and_then(|x| self.emit_match_arm_list(x)); + pub(crate) fn emit_match_expr( + &mut self, + node: &ast::MatchExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let scrutinee = node.expr().and_then(|x| self.emit_expr(&x)); + let match_arm_list = node + .match_arm_list() + .and_then(|x| self.emit_match_arm_list(&x)); let label = self.trap.emit(generated::MatchExpr { id: TrapId::Star, attrs, scrutinee, match_arm_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MatchExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_match_guard(&mut self, node: ast::MatchGuard) -> Option> { - let condition = node.condition().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_match_guard( + &mut self, + node: &ast::MatchGuard, + ) -> Option> { + let condition = node.condition().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::MatchGuard { id: TrapId::Star, condition, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MatchGuard, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_meta(&mut self, node: ast::Meta) -> Option> { - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_meta(&mut self, node: &ast::Meta) -> Option> { + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let is_unsafe = node.unsafe_token().is_some(); - let path = node.path().and_then(|x| self.emit_path(x)); - let token_tree = node.token_tree().and_then(|x| self.emit_token_tree(x)); + let path = node.path().and_then(|x| self.emit_path(&x)); + let token_tree = node.token_tree().and_then(|x| self.emit_token_tree(&x)); let label = self.trap.emit(generated::Meta { id: TrapId::Star, expr, @@ -1466,19 +1768,25 @@ impl Translator<'_> { path, token_tree, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Meta, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_method_call_expr(&mut self, node: ast::MethodCallExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let arg_list = node.arg_list().and_then(|x| self.emit_arg_list(x)); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let generic_arg_list = node.generic_arg_list().and_then(|x| self.emit_generic_arg_list(x)); - let identifier = node.name_ref().and_then(|x| self.emit_name_ref(x)); - let receiver = node.receiver().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_method_call_expr( + &mut self, + node: &ast::MethodCallExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let arg_list = node.arg_list().and_then(|x| self.emit_arg_list(&x)); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let generic_arg_list = node + .generic_arg_list() + .and_then(|x| self.emit_generic_arg_list(&x)); + let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); + let receiver = node.receiver().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::MethodCallExpr { id: TrapId::Star, arg_list, @@ -1487,18 +1795,19 @@ impl Translator<'_> { identifier, receiver, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(MethodCallExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_module(&mut self, node: ast::Module) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let item_list = node.item_list().and_then(|x| self.emit_item_list(x)); - let name = node.name().and_then(|x| self.emit_name(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); + pub(crate) fn emit_module(&mut self, node: &ast::Module) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let item_list = node.item_list().and_then(|x| self.emit_item_list(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); let label = self.trap.emit(generated::Module { id: TrapId::Star, attrs, @@ -1506,204 +1815,242 @@ impl Translator<'_> { name, visibility, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Module, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_name(&mut self, node: ast::Name) -> Option> { + pub(crate) fn emit_name(&mut self, node: &ast::Name) -> Option> { let text = node.try_get_text(); let label = self.trap.emit(generated::Name { id: TrapId::Star, text, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Name, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_name_ref(&mut self, node: ast::NameRef) -> Option> { + pub(crate) fn emit_name_ref( + &mut self, + node: &ast::NameRef, + ) -> Option> { let text = node.try_get_text(); let label = self.trap.emit(generated::NameRef { id: TrapId::Star, text, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(NameRef, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_never_type(&mut self, node: ast::NeverType) -> Option> { - let label = self.trap.emit(generated::NeverTypeRepr { - id: TrapId::Star, - }); - self.emit_location(label, &node); + pub(crate) fn emit_never_type( + &mut self, + node: &ast::NeverType, + ) -> Option> { + let label = self + .trap + .emit(generated::NeverTypeRepr { id: TrapId::Star }); + self.emit_location(label, node); emit_detached!(NeverTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_offset_of_expr(&mut self, node: ast::OffsetOfExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let fields = node.fields().filter_map(|x| self.emit_name_ref(x)).collect(); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + pub(crate) fn emit_offset_of_expr( + &mut self, + node: &ast::OffsetOfExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let fields = node + .fields() + .filter_map(|x| self.emit_name_ref(&x)) + .collect(); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::OffsetOfExpr { id: TrapId::Star, attrs, fields, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(OffsetOfExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_or_pat(&mut self, node: ast::OrPat) -> Option> { - let pats = node.pats().filter_map(|x| self.emit_pat(x)).collect(); + pub(crate) fn emit_or_pat(&mut self, node: &ast::OrPat) -> Option> { + let pats = node.pats().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::OrPat { id: TrapId::Star, pats, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(OrPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_param(&mut self, node: ast::Param) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let pat = node.pat().and_then(|x| self.emit_pat(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + pub(crate) fn emit_param(&mut self, node: &ast::Param) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let pat = node.pat().and_then(|x| self.emit_pat(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::Param { id: TrapId::Star, attrs, pat, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Param, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_param_list(&mut self, node: ast::ParamList) -> Option> { - let params = node.params().filter_map(|x| self.emit_param(x)).collect(); - let self_param = node.self_param().and_then(|x| self.emit_self_param(x)); + pub(crate) fn emit_param_list( + &mut self, + node: &ast::ParamList, + ) -> Option> { + let params = node.params().filter_map(|x| self.emit_param(&x)).collect(); + let self_param = node.self_param().and_then(|x| self.emit_self_param(&x)); let label = self.trap.emit(generated::ParamList { id: TrapId::Star, params, self_param, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ParamList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_paren_expr(&mut self, node: ast::ParenExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_paren_expr( + &mut self, + node: &ast::ParenExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ParenExpr { id: TrapId::Star, attrs, expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ParenExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_paren_pat(&mut self, node: ast::ParenPat) -> Option> { - let pat = node.pat().and_then(|x| self.emit_pat(x)); + pub(crate) fn emit_paren_pat( + &mut self, + node: &ast::ParenPat, + ) -> Option> { + let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::ParenPat { id: TrapId::Star, pat, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ParenPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_paren_type(&mut self, node: ast::ParenType) -> Option> { - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + pub(crate) fn emit_paren_type( + &mut self, + node: &ast::ParenType, + ) -> Option> { + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ParenTypeRepr { id: TrapId::Star, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ParenTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_parenthesized_arg_list(&mut self, node: ast::ParenthesizedArgList) -> Option> { - let type_args = node.type_args().filter_map(|x| self.emit_type_arg(x)).collect(); + pub(crate) fn emit_parenthesized_arg_list( + &mut self, + node: &ast::ParenthesizedArgList, + ) -> Option> { + let type_args = node + .type_args() + .filter_map(|x| self.emit_type_arg(&x)) + .collect(); let label = self.trap.emit(generated::ParenthesizedArgList { id: TrapId::Star, type_args, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ParenthesizedArgList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_path(&mut self, node: ast::Path) -> Option> { - let qualifier = node.qualifier().and_then(|x| self.emit_path(x)); - let segment = node.segment().and_then(|x| self.emit_path_segment(x)); + pub(crate) fn emit_path(&mut self, node: &ast::Path) -> Option> { + let qualifier = node.qualifier().and_then(|x| self.emit_path(&x)); + let segment = node.segment().and_then(|x| self.emit_path_segment(&x)); let label = self.trap.emit(generated::Path { id: TrapId::Star, qualifier, segment, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Path, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_path_expr(&mut self, node: ast::PathExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let path = node.path().and_then(|x| self.emit_path(x)); + pub(crate) fn emit_path_expr( + &mut self, + node: &ast::PathExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::PathExpr { id: TrapId::Star, attrs, path, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(PathExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_path_pat(&mut self, node: ast::PathPat) -> Option> { - let path = node.path().and_then(|x| self.emit_path(x)); + pub(crate) fn emit_path_pat( + &mut self, + node: &ast::PathPat, + ) -> Option> { + let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::PathPat { id: TrapId::Star, path, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(PathPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_path_segment(&mut self, node: ast::PathSegment) -> Option> { - let generic_arg_list = node.generic_arg_list().and_then(|x| self.emit_generic_arg_list(x)); - let identifier = node.name_ref().and_then(|x| self.emit_name_ref(x)); - let parenthesized_arg_list = node.parenthesized_arg_list().and_then(|x| self.emit_parenthesized_arg_list(x)); - let ret_type = node.ret_type().and_then(|x| self.emit_ret_type(x)); - let return_type_syntax = node.return_type_syntax().and_then(|x| self.emit_return_type_syntax(x)); + pub(crate) fn emit_path_segment( + &mut self, + node: &ast::PathSegment, + ) -> Option> { + let generic_arg_list = node + .generic_arg_list() + .and_then(|x| self.emit_generic_arg_list(&x)); + let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); + let parenthesized_arg_list = node + .parenthesized_arg_list() + .and_then(|x| self.emit_parenthesized_arg_list(&x)); + let ret_type = node.ret_type().and_then(|x| self.emit_ret_type(&x)); + let return_type_syntax = node + .return_type_syntax() + .and_then(|x| self.emit_return_type_syntax(&x)); let label = self.trap.emit(generated::PathSegment { id: TrapId::Star, generic_arg_list, @@ -1712,28 +2059,34 @@ impl Translator<'_> { ret_type, return_type_syntax, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(PathSegment, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_path_type(&mut self, node: ast::PathType) -> Option> { - let path = node.path().and_then(|x| self.emit_path(x)); + pub(crate) fn emit_path_type( + &mut self, + node: &ast::PathType, + ) -> Option> { + let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::PathTypeRepr { id: TrapId::Star, path, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(PathTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_prefix_expr(&mut self, node: ast::PrefixExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_prefix_expr( + &mut self, + node: &ast::PrefixExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let operator_name = node.try_get_text(); let label = self.trap.emit(generated::PrefixExpr { id: TrapId::Star, @@ -1741,34 +2094,40 @@ impl Translator<'_> { expr, operator_name, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(PrefixExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_ptr_type(&mut self, node: ast::PtrType) -> Option> { + pub(crate) fn emit_ptr_type( + &mut self, + node: &ast::PtrType, + ) -> Option> { let is_const = node.const_token().is_some(); let is_mut = node.mut_token().is_some(); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::PtrTypeRepr { id: TrapId::Star, is_const, is_mut, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(PtrTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_range_expr(&mut self, node: ast::RangeExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let end = node.end().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_range_expr( + &mut self, + node: &ast::RangeExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let end = node.end().and_then(|x| self.emit_expr(&x)); let operator_name = node.try_get_text(); - let start = node.start().and_then(|x| self.emit_expr(x)); + let start = node.start().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::RangeExpr { id: TrapId::Star, attrs, @@ -1776,84 +2135,105 @@ impl Translator<'_> { operator_name, start, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(RangeExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_range_pat(&mut self, node: ast::RangePat) -> Option> { - let end = node.end().and_then(|x| self.emit_pat(x)); + pub(crate) fn emit_range_pat( + &mut self, + node: &ast::RangePat, + ) -> Option> { + let end = node.end().and_then(|x| self.emit_pat(&x)); let operator_name = node.try_get_text(); - let start = node.start().and_then(|x| self.emit_pat(x)); + let start = node.start().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::RangePat { id: TrapId::Star, end, operator_name, start, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(RangePat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_record_expr(&mut self, node: ast::RecordExpr) -> Option> { - let path = node.path().and_then(|x| self.emit_path(x)); - let struct_expr_field_list = node.record_expr_field_list().and_then(|x| self.emit_record_expr_field_list(x)); + pub(crate) fn emit_record_expr( + &mut self, + node: &ast::RecordExpr, + ) -> Option> { + let path = node.path().and_then(|x| self.emit_path(&x)); + let struct_expr_field_list = node + .record_expr_field_list() + .and_then(|x| self.emit_record_expr_field_list(&x)); let label = self.trap.emit(generated::StructExpr { id: TrapId::Star, path, struct_expr_field_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(StructExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_record_expr_field(&mut self, node: ast::RecordExprField) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); - let identifier = node.name_ref().and_then(|x| self.emit_name_ref(x)); + pub(crate) fn emit_record_expr_field( + &mut self, + node: &ast::RecordExprField, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); + let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); let label = self.trap.emit(generated::StructExprField { id: TrapId::Star, attrs, expr, identifier, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(StructExprField, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_record_expr_field_list(&mut self, node: ast::RecordExprFieldList) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let fields = node.fields().filter_map(|x| self.emit_record_expr_field(x)).collect(); - let spread = node.spread().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_record_expr_field_list( + &mut self, + node: &ast::RecordExprFieldList, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let fields = node + .fields() + .filter_map(|x| self.emit_record_expr_field(&x)) + .collect(); + let spread = node.spread().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::StructExprFieldList { id: TrapId::Star, attrs, fields, spread, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(StructExprFieldList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_record_field(&mut self, node: ast::RecordField) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let default = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_record_field( + &mut self, + node: &ast::RecordField, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let default = node.expr().and_then(|x| self.emit_expr(&x)); let is_unsafe = node.unsafe_token().is_some(); - let name = node.name().and_then(|x| self.emit_name(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); let label = self.trap.emit(generated::StructField { id: TrapId::Star, attrs, @@ -1863,73 +2243,95 @@ impl Translator<'_> { type_repr, visibility, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(StructField, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_record_field_list(&mut self, node: ast::RecordFieldList) -> Option> { - let fields = node.fields().filter_map(|x| self.emit_record_field(x)).collect(); + pub(crate) fn emit_record_field_list( + &mut self, + node: &ast::RecordFieldList, + ) -> Option> { + let fields = node + .fields() + .filter_map(|x| self.emit_record_field(&x)) + .collect(); let label = self.trap.emit(generated::StructFieldList { id: TrapId::Star, fields, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(StructFieldList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_record_pat(&mut self, node: ast::RecordPat) -> Option> { - let path = node.path().and_then(|x| self.emit_path(x)); - let struct_pat_field_list = node.record_pat_field_list().and_then(|x| self.emit_record_pat_field_list(x)); + pub(crate) fn emit_record_pat( + &mut self, + node: &ast::RecordPat, + ) -> Option> { + let path = node.path().and_then(|x| self.emit_path(&x)); + let struct_pat_field_list = node + .record_pat_field_list() + .and_then(|x| self.emit_record_pat_field_list(&x)); let label = self.trap.emit(generated::StructPat { id: TrapId::Star, path, struct_pat_field_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(StructPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_record_pat_field(&mut self, node: ast::RecordPatField) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let identifier = node.name_ref().and_then(|x| self.emit_name_ref(x)); - let pat = node.pat().and_then(|x| self.emit_pat(x)); + pub(crate) fn emit_record_pat_field( + &mut self, + node: &ast::RecordPatField, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); + let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::StructPatField { id: TrapId::Star, attrs, identifier, pat, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(StructPatField, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_record_pat_field_list(&mut self, node: ast::RecordPatFieldList) -> Option> { - let fields = node.fields().filter_map(|x| self.emit_record_pat_field(x)).collect(); - let rest_pat = node.rest_pat().and_then(|x| self.emit_rest_pat(x)); + pub(crate) fn emit_record_pat_field_list( + &mut self, + node: &ast::RecordPatFieldList, + ) -> Option> { + let fields = node + .fields() + .filter_map(|x| self.emit_record_pat_field(&x)) + .collect(); + let rest_pat = node.rest_pat().and_then(|x| self.emit_rest_pat(&x)); let label = self.trap.emit(generated::StructPatFieldList { id: TrapId::Star, fields, rest_pat, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(StructPatFieldList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_ref_expr(&mut self, node: ast::RefExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_ref_expr( + &mut self, + node: &ast::RefExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let is_const = node.const_token().is_some(); let is_mut = node.mut_token().is_some(); let is_raw = node.raw_token().is_some(); @@ -1941,112 +2343,128 @@ impl Translator<'_> { is_mut, is_raw, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(RefExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_ref_pat(&mut self, node: ast::RefPat) -> Option> { + pub(crate) fn emit_ref_pat(&mut self, node: &ast::RefPat) -> Option> { let is_mut = node.mut_token().is_some(); - let pat = node.pat().and_then(|x| self.emit_pat(x)); + let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::RefPat { id: TrapId::Star, is_mut, pat, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(RefPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_ref_type(&mut self, node: ast::RefType) -> Option> { + pub(crate) fn emit_ref_type( + &mut self, + node: &ast::RefType, + ) -> Option> { let is_mut = node.mut_token().is_some(); - let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::RefTypeRepr { id: TrapId::Star, is_mut, lifetime, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(RefTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_rename(&mut self, node: ast::Rename) -> Option> { - let name = node.name().and_then(|x| self.emit_name(x)); + pub(crate) fn emit_rename(&mut self, node: &ast::Rename) -> Option> { + let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::Rename { id: TrapId::Star, name, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Rename, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_rest_pat(&mut self, node: ast::RestPat) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); + pub(crate) fn emit_rest_pat( + &mut self, + node: &ast::RestPat, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let label = self.trap.emit(generated::RestPat { id: TrapId::Star, attrs, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(RestPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_ret_type(&mut self, node: ast::RetType) -> Option> { - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + pub(crate) fn emit_ret_type( + &mut self, + node: &ast::RetType, + ) -> Option> { + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::RetTypeRepr { id: TrapId::Star, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(RetTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_return_expr(&mut self, node: ast::ReturnExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_return_expr( + &mut self, + node: &ast::ReturnExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ReturnExpr { id: TrapId::Star, attrs, expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(ReturnExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_return_type_syntax(&mut self, node: ast::ReturnTypeSyntax) -> Option> { - let label = self.trap.emit(generated::ReturnTypeSyntax { - id: TrapId::Star, - }); - self.emit_location(label, &node); + pub(crate) fn emit_return_type_syntax( + &mut self, + node: &ast::ReturnTypeSyntax, + ) -> Option> { + let label = self + .trap + .emit(generated::ReturnTypeSyntax { id: TrapId::Star }); + self.emit_location(label, node); emit_detached!(ReturnTypeSyntax, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_self_param(&mut self, node: ast::SelfParam) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); + pub(crate) fn emit_self_param( + &mut self, + node: &ast::SelfParam, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let is_ref = node.amp_token().is_some(); let is_mut = node.mut_token().is_some(); - let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(x)); - let name = node.name().and_then(|x| self.emit_name(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::SelfParam { id: TrapId::Star, attrs, @@ -2056,61 +2474,70 @@ impl Translator<'_> { name, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(SelfParam, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_slice_pat(&mut self, node: ast::SlicePat) -> Option> { - let pats = node.pats().filter_map(|x| self.emit_pat(x)).collect(); + pub(crate) fn emit_slice_pat( + &mut self, + node: &ast::SlicePat, + ) -> Option> { + let pats = node.pats().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::SlicePat { id: TrapId::Star, pats, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(SlicePat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_slice_type(&mut self, node: ast::SliceType) -> Option> { - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + pub(crate) fn emit_slice_type( + &mut self, + node: &ast::SliceType, + ) -> Option> { + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::SliceTypeRepr { id: TrapId::Star, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(SliceTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_source_file(&mut self, node: ast::SourceFile) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let items = node.items().filter_map(|x| self.emit_item(x)).collect(); + pub(crate) fn emit_source_file( + &mut self, + node: &ast::SourceFile, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let items = node.items().filter_map(|x| self.emit_item(&x)).collect(); let label = self.trap.emit(generated::SourceFile { id: TrapId::Star, attrs, items, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(SourceFile, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_static(&mut self, node: ast::Static) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let body = node.body().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_static(&mut self, node: &ast::Static) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let body = node.body().and_then(|x| self.emit_expr(&x)); let is_mut = node.mut_token().is_some(); let is_static = node.static_token().is_some(); let is_unsafe = node.unsafe_token().is_some(); - let name = node.name().and_then(|x| self.emit_name(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); let label = self.trap.emit(generated::Static { id: TrapId::Star, attrs, @@ -2122,37 +2549,47 @@ impl Translator<'_> { type_repr, visibility, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Static, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_stmt_list(&mut self, node: ast::StmtList) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let statements = node.statements().filter_map(|x| self.emit_stmt(x)).collect(); - let tail_expr = node.tail_expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_stmt_list( + &mut self, + node: &ast::StmtList, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let statements = node + .statements() + .filter_map(|x| self.emit_stmt(&x)) + .collect(); + let tail_expr = node.tail_expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::StmtList { id: TrapId::Star, attrs, statements, tail_expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(StmtList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_struct(&mut self, node: ast::Struct) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let field_list = node.field_list().and_then(|x| self.emit_field_list(x)); - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); - let name = node.name().and_then(|x| self.emit_name(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); - let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(x)); + pub(crate) fn emit_struct(&mut self, node: &ast::Struct) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let field_list = node.field_list().and_then(|x| self.emit_field_list(&x)); + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); + let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x)); let label = self.trap.emit(generated::Struct { id: TrapId::Star, attrs, @@ -2162,33 +2599,40 @@ impl Translator<'_> { visibility, where_clause, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Struct, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_token_tree(&mut self, node: ast::TokenTree) -> Option> { - let label = self.trap.emit(generated::TokenTree { - id: TrapId::Star, - }); - self.emit_location(label, &node); + pub(crate) fn emit_token_tree( + &mut self, + node: &ast::TokenTree, + ) -> Option> { + let label = self.trap.emit(generated::TokenTree { id: TrapId::Star }); + self.emit_location(label, node); emit_detached!(TokenTree, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_trait(&mut self, node: ast::Trait) -> Option> { - if self.should_be_excluded(&node) { return None; } - let assoc_item_list = node.assoc_item_list().and_then(|x| self.emit_assoc_item_list(x)); - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); + pub(crate) fn emit_trait(&mut self, node: &ast::Trait) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let assoc_item_list = node + .assoc_item_list() + .and_then(|x| self.emit_assoc_item_list(&x)); + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); let is_auto = node.auto_token().is_some(); let is_unsafe = node.unsafe_token().is_some(); - let name = node.name().and_then(|x| self.emit_name(x)); - let type_bound_list = node.type_bound_list().and_then(|x| self.emit_type_bound_list(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); - let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let type_bound_list = node + .type_bound_list() + .and_then(|x| self.emit_type_bound_list(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); + let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x)); let label = self.trap.emit(generated::Trait { id: TrapId::Star, assoc_item_list, @@ -2201,20 +2645,28 @@ impl Translator<'_> { visibility, where_clause, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Trait, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_trait_alias(&mut self, node: ast::TraitAlias) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); - let name = node.name().and_then(|x| self.emit_name(x)); - let type_bound_list = node.type_bound_list().and_then(|x| self.emit_type_bound_list(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); - let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(x)); + pub(crate) fn emit_trait_alias( + &mut self, + node: &ast::TraitAlias, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let type_bound_list = node + .type_bound_list() + .and_then(|x| self.emit_type_bound_list(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); + let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x)); let label = self.trap.emit(generated::TraitAlias { id: TrapId::Star, attrs, @@ -2224,119 +2676,150 @@ impl Translator<'_> { visibility, where_clause, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TraitAlias, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_try_expr(&mut self, node: ast::TryExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_try_expr( + &mut self, + node: &ast::TryExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::TryExpr { id: TrapId::Star, attrs, expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TryExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_tuple_expr(&mut self, node: ast::TupleExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let fields = node.fields().filter_map(|x| self.emit_expr(x)).collect(); + pub(crate) fn emit_tuple_expr( + &mut self, + node: &ast::TupleExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let fields = node.fields().filter_map(|x| self.emit_expr(&x)).collect(); let label = self.trap.emit(generated::TupleExpr { id: TrapId::Star, attrs, fields, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TupleExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_tuple_field(&mut self, node: ast::TupleField) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); + pub(crate) fn emit_tuple_field( + &mut self, + node: &ast::TupleField, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); let label = self.trap.emit(generated::TupleField { id: TrapId::Star, attrs, type_repr, visibility, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TupleField, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_tuple_field_list(&mut self, node: ast::TupleFieldList) -> Option> { - let fields = node.fields().filter_map(|x| self.emit_tuple_field(x)).collect(); + pub(crate) fn emit_tuple_field_list( + &mut self, + node: &ast::TupleFieldList, + ) -> Option> { + let fields = node + .fields() + .filter_map(|x| self.emit_tuple_field(&x)) + .collect(); let label = self.trap.emit(generated::TupleFieldList { id: TrapId::Star, fields, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TupleFieldList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_tuple_pat(&mut self, node: ast::TuplePat) -> Option> { - let fields = node.fields().filter_map(|x| self.emit_pat(x)).collect(); + pub(crate) fn emit_tuple_pat( + &mut self, + node: &ast::TuplePat, + ) -> Option> { + let fields = node.fields().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::TuplePat { id: TrapId::Star, fields, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TuplePat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_tuple_struct_pat(&mut self, node: ast::TupleStructPat) -> Option> { - let fields = node.fields().filter_map(|x| self.emit_pat(x)).collect(); - let path = node.path().and_then(|x| self.emit_path(x)); + pub(crate) fn emit_tuple_struct_pat( + &mut self, + node: &ast::TupleStructPat, + ) -> Option> { + let fields = node.fields().filter_map(|x| self.emit_pat(&x)).collect(); + let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::TupleStructPat { id: TrapId::Star, fields, path, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TupleStructPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_tuple_type(&mut self, node: ast::TupleType) -> Option> { - let fields = node.fields().filter_map(|x| self.emit_type(x)).collect(); + pub(crate) fn emit_tuple_type( + &mut self, + node: &ast::TupleType, + ) -> Option> { + let fields = node.fields().filter_map(|x| self.emit_type(&x)).collect(); let label = self.trap.emit(generated::TupleTypeRepr { id: TrapId::Star, fields, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TupleTypeRepr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_type_alias(&mut self, node: ast::TypeAlias) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); + pub(crate) fn emit_type_alias( + &mut self, + node: &ast::TypeAlias, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); let is_default = node.default_token().is_some(); - let name = node.name().and_then(|x| self.emit_name(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); - let type_bound_list = node.type_bound_list().and_then(|x| self.emit_type_bound_list(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); - let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); + let type_bound_list = node + .type_bound_list() + .and_then(|x| self.emit_type_bound_list(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); + let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x)); let label = self.trap.emit(generated::TypeAlias { id: TrapId::Star, attrs, @@ -2348,30 +2831,36 @@ impl Translator<'_> { visibility, where_clause, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TypeAlias, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_type_arg(&mut self, node: ast::TypeArg) -> Option> { - let type_repr = node.ty().and_then(|x| self.emit_type(x)); + pub(crate) fn emit_type_arg( + &mut self, + node: &ast::TypeArg, + ) -> Option> { + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::TypeArg { id: TrapId::Star, type_repr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TypeArg, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_type_bound(&mut self, node: ast::TypeBound) -> Option> { + pub(crate) fn emit_type_bound( + &mut self, + node: &ast::TypeBound, + ) -> Option> { let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); - let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); - let use_bound_generic_args = node.use_bound_generic_args().and_then(|x| self.emit_use_bound_generic_args(x)); + let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); + let use_bound_generic_args = node + .use_bound_generic_args() + .and_then(|x| self.emit_use_bound_generic_args(&x)); let label = self.trap.emit(generated::TypeBound { id: TrapId::Star, is_async, @@ -2380,30 +2869,41 @@ impl Translator<'_> { type_repr, use_bound_generic_args, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TypeBound, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_type_bound_list(&mut self, node: ast::TypeBoundList) -> Option> { - let bounds = node.bounds().filter_map(|x| self.emit_type_bound(x)).collect(); + pub(crate) fn emit_type_bound_list( + &mut self, + node: &ast::TypeBoundList, + ) -> Option> { + let bounds = node + .bounds() + .filter_map(|x| self.emit_type_bound(&x)) + .collect(); let label = self.trap.emit(generated::TypeBoundList { id: TrapId::Star, bounds, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TypeBoundList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_type_param(&mut self, node: ast::TypeParam) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let default_type = node.default_type().and_then(|x| self.emit_type(x)); - let name = node.name().and_then(|x| self.emit_name(x)); - let type_bound_list = node.type_bound_list().and_then(|x| self.emit_type_bound_list(x)); + pub(crate) fn emit_type_param( + &mut self, + node: &ast::TypeParam, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let default_type = node.default_type().and_then(|x| self.emit_type(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let type_bound_list = node + .type_bound_list() + .and_then(|x| self.emit_type_bound_list(&x)); let label = self.trap.emit(generated::TypeParam { id: TrapId::Star, attrs, @@ -2411,33 +2911,42 @@ impl Translator<'_> { name, type_bound_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(TypeParam, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_underscore_expr(&mut self, node: ast::UnderscoreExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); + pub(crate) fn emit_underscore_expr( + &mut self, + node: &ast::UnderscoreExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let label = self.trap.emit(generated::UnderscoreExpr { id: TrapId::Star, attrs, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(UnderscoreExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_union(&mut self, node: ast::Union) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); - let name = node.name().and_then(|x| self.emit_name(x)); - let struct_field_list = node.record_field_list().and_then(|x| self.emit_record_field_list(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); - let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(x)); + pub(crate) fn emit_union(&mut self, node: &ast::Union) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let struct_field_list = node + .record_field_list() + .and_then(|x| self.emit_record_field_list(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); + let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x)); let label = self.trap.emit(generated::Union { id: TrapId::Star, attrs, @@ -2447,46 +2956,56 @@ impl Translator<'_> { visibility, where_clause, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Union, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_use(&mut self, node: ast::Use) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let use_tree = node.use_tree().and_then(|x| self.emit_use_tree(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); + pub(crate) fn emit_use(&mut self, node: &ast::Use) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let use_tree = node.use_tree().and_then(|x| self.emit_use_tree(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); let label = self.trap.emit(generated::Use { id: TrapId::Star, attrs, use_tree, visibility, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Use, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_use_bound_generic_args(&mut self, node: ast::UseBoundGenericArgs) -> Option> { - let use_bound_generic_args = node.use_bound_generic_args().filter_map(|x| self.emit_use_bound_generic_arg(x)).collect(); + pub(crate) fn emit_use_bound_generic_args( + &mut self, + node: &ast::UseBoundGenericArgs, + ) -> Option> { + let use_bound_generic_args = node + .use_bound_generic_args() + .filter_map(|x| self.emit_use_bound_generic_arg(&x)) + .collect(); let label = self.trap.emit(generated::UseBoundGenericArgs { id: TrapId::Star, use_bound_generic_args, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(UseBoundGenericArgs, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_use_tree(&mut self, node: ast::UseTree) -> Option> { + pub(crate) fn emit_use_tree( + &mut self, + node: &ast::UseTree, + ) -> Option> { let is_glob = node.star_token().is_some(); - let path = node.path().and_then(|x| self.emit_path(x)); - let rename = node.rename().and_then(|x| self.emit_rename(x)); - let use_tree_list = node.use_tree_list().and_then(|x| self.emit_use_tree_list(x)); + let path = node.path().and_then(|x| self.emit_path(&x)); + let rename = node.rename().and_then(|x| self.emit_rename(&x)); + let use_tree_list = node + .use_tree_list() + .and_then(|x| self.emit_use_tree_list(&x)); let label = self.trap.emit(generated::UseTree { id: TrapId::Star, is_glob, @@ -2494,31 +3013,40 @@ impl Translator<'_> { rename, use_tree_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(UseTree, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_use_tree_list(&mut self, node: ast::UseTreeList) -> Option> { - let use_trees = node.use_trees().filter_map(|x| self.emit_use_tree(x)).collect(); + pub(crate) fn emit_use_tree_list( + &mut self, + node: &ast::UseTreeList, + ) -> Option> { + let use_trees = node + .use_trees() + .filter_map(|x| self.emit_use_tree(&x)) + .collect(); let label = self.trap.emit(generated::UseTreeList { id: TrapId::Star, use_trees, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(UseTreeList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_variant(&mut self, node: ast::Variant) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let discriminant = node.expr().and_then(|x| self.emit_expr(x)); - let field_list = node.field_list().and_then(|x| self.emit_field_list(x)); - let name = node.name().and_then(|x| self.emit_name(x)); - let visibility = node.visibility().and_then(|x| self.emit_visibility(x)); + pub(crate) fn emit_variant( + &mut self, + node: &ast::Variant, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let discriminant = node.expr().and_then(|x| self.emit_expr(&x)); + let field_list = node.field_list().and_then(|x| self.emit_field_list(&x)); + let name = node.name().and_then(|x| self.emit_name(&x)); + let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); let label = self.trap.emit(generated::Variant { id: TrapId::Star, attrs, @@ -2527,53 +3055,71 @@ impl Translator<'_> { name, visibility, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Variant, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_variant_list(&mut self, node: ast::VariantList) -> Option> { - let variants = node.variants().filter_map(|x| self.emit_variant(x)).collect(); + pub(crate) fn emit_variant_list( + &mut self, + node: &ast::VariantList, + ) -> Option> { + let variants = node + .variants() + .filter_map(|x| self.emit_variant(&x)) + .collect(); let label = self.trap.emit(generated::VariantList { id: TrapId::Star, variants, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(VariantList, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_visibility(&mut self, node: ast::Visibility) -> Option> { - let path = node.path().and_then(|x| self.emit_path(x)); + pub(crate) fn emit_visibility( + &mut self, + node: &ast::Visibility, + ) -> Option> { + let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::Visibility { id: TrapId::Star, path, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(Visibility, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_where_clause(&mut self, node: ast::WhereClause) -> Option> { - let predicates = node.predicates().filter_map(|x| self.emit_where_pred(x)).collect(); + pub(crate) fn emit_where_clause( + &mut self, + node: &ast::WhereClause, + ) -> Option> { + let predicates = node + .predicates() + .filter_map(|x| self.emit_where_pred(&x)) + .collect(); let label = self.trap.emit(generated::WhereClause { id: TrapId::Star, predicates, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(WhereClause, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_where_pred(&mut self, node: ast::WherePred) -> Option> { - let generic_param_list = node.generic_param_list().and_then(|x| self.emit_generic_param_list(x)); - let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(x)); - let type_repr = node.ty().and_then(|x| self.emit_type(x)); - let type_bound_list = node.type_bound_list().and_then(|x| self.emit_type_bound_list(x)); + pub(crate) fn emit_where_pred( + &mut self, + node: &ast::WherePred, + ) -> Option> { + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); + let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); + let type_repr = node.ty().and_then(|x| self.emit_type(&x)); + let type_bound_list = node + .type_bound_list() + .and_then(|x| self.emit_type_bound_list(&x)); let label = self.trap.emit(generated::WherePred { id: TrapId::Star, generic_param_list, @@ -2581,18 +3127,22 @@ impl Translator<'_> { type_repr, type_bound_list, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(WherePred, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_while_expr(&mut self, node: ast::WhileExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let condition = node.condition().and_then(|x| self.emit_expr(x)); - let label = node.label().and_then(|x| self.emit_label(x)); - let loop_body = node.loop_body().and_then(|x| self.emit_block_expr(x)); + pub(crate) fn emit_while_expr( + &mut self, + node: &ast::WhileExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let condition = node.condition().and_then(|x| self.emit_expr(&x)); + let label = node.label().and_then(|x| self.emit_label(&x)); + let loop_body = node.loop_body().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::WhileExpr { id: TrapId::Star, attrs, @@ -2600,49 +3150,57 @@ impl Translator<'_> { label, loop_body, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(WhileExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_wildcard_pat(&mut self, node: ast::WildcardPat) -> Option> { - let label = self.trap.emit(generated::WildcardPat { - id: TrapId::Star, - }); - self.emit_location(label, &node); + pub(crate) fn emit_wildcard_pat( + &mut self, + node: &ast::WildcardPat, + ) -> Option> { + let label = self.trap.emit(generated::WildcardPat { id: TrapId::Star }); + self.emit_location(label, node); emit_detached!(WildcardPat, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_yeet_expr(&mut self, node: ast::YeetExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_yeet_expr( + &mut self, + node: &ast::YeetExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::YeetExpr { id: TrapId::Star, attrs, expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(YeetExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } - - pub(crate) fn emit_yield_expr(&mut self, node: ast::YieldExpr) -> Option> { - if self.should_be_excluded(&node) { return None; } - let attrs = node.attrs().filter_map(|x| self.emit_attr(x)).collect(); - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_yield_expr( + &mut self, + node: &ast::YieldExpr, + ) -> Option> { + if self.should_be_excluded(node) { + return None; + } + let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); + let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::YieldExpr { id: TrapId::Star, attrs, expr, }); - self.emit_location(label, &node); + self.emit_location(label, node); emit_detached!(YieldExpr, self, node, label); - self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); + self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } } diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 0ff3e721e23..fd7c9c84bf6 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -1,4 +1,4 @@ -lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll d1cc3cfc9ae558b1cb473e3bfca66e5c424445b98ce343eb6f3050321fe4f8a0 8d00e385230b45360bc6281af01e0f674c58117593fd1b3cb7eb0c8a45517542 +lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 9452207ba069c4174b9e2903614380c5fb09dccd46e612d6c68ed4305b26ac70 3dbc42e9091ea12456014425df347230471da3afd5e811136a9bc58ba6e5880a lib/codeql/rust/elements/Abi.qll 4c973d28b6d628f5959d1f1cc793704572fd0acaae9a97dfce82ff9d73f73476 250f68350180af080f904cd34cb2af481c5c688dc93edf7365fd0ae99855e893 lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be lib/codeql/rust/elements/ArgList.qll 661f5100f5d3ef8351452d9058b663a2a5c720eea8cf11bedd628969741486a2 28e424aac01a90fb58cd6f9f83c7e4cf379eea39e636bc0ba07efc818be71c71 @@ -74,7 +74,7 @@ lib/codeql/rust/elements/Impl.qll 6407348d86e73cdb68e414f647260cb82cb90bd40860ba lib/codeql/rust/elements/ImplTraitTypeRepr.qll e2d5a3ade0a9eb7dcb7eec229a235581fe6f293d1cb66b1036f6917c01dff981 49367cada57d1873c9c9d2b752ee6191943a23724059b2674c2d7f85497cff97 lib/codeql/rust/elements/IndexExpr.qll 0e2e9f018d06ae72be0fc4ddbc019a9aacd8a06f42b4c4431760bd149e7f2290 2bcfd557abd53a48e48de7915c4f2089107c62dfb3e732a904848248dfd3727b lib/codeql/rust/elements/InferTypeRepr.qll 0a7b3e92512b2b167a8e04d650e12700dbbb8b646b10694056d622ba2501d299 e5e67b7c1124f430750f186da4642e646badcdcf66490dd328af3e64ac8da9e9 -lib/codeql/rust/elements/Item.qll 59353bf99dea5b464f45ed0dc5cef2db8208e92985d81dcd0b5ea09b638d10e4 2b0b87a4b1a1d9b512a67279d1dec2089d22d1df121585f7a9ca9661d689f74f +lib/codeql/rust/elements/Item.qll b1c41dcdd51fc94248abd52e838d9ca4d6f8c41f22f7bd1fa2e357b99d237b48 b05416c85d9f2ee67dbf25d2b900c270524b626f0b389fe0c9b90543fd05d8e1 lib/codeql/rust/elements/ItemList.qll c33e46a9ee45ccb194a0fe5b30a6ad3bcecb0f51486c94e0191a943710a17a7d 5a69c4e7712b4529681c4406d23dc1b6b9e5b3c03552688c55addab271912ed5 lib/codeql/rust/elements/Label.qll a31d41db351af7f99a55b26cdbbc7f13b4e96b660a74e2f1cc90c17ee8df8d73 689f87cb056c8a2aefe1a0bfc2486a32feb44eb3175803c61961a6aeee53d66e lib/codeql/rust/elements/LabelableExpr.qll 598be487cd051b004ab95cbbc3029100069dc9955851c492029d80f230e56f0d 92c49b3cfdaba07982f950e18a8d62dae4e96f5d9ae0d7d2f4292628361f0ddc @@ -89,7 +89,7 @@ lib/codeql/rust/elements/LiteralPat.qll daffb5f380a47543669c8cc92628b0e0de478c3a lib/codeql/rust/elements/Locatable.qll 2855efa4a469b54e0ca85daa89309a8b991cded6f3f10db361010831ba1e11d3 00c3406d14603f90abea11bf074eaf2c0b623a30e29cf6afc3a247cb58b92f0f lib/codeql/rust/elements/LoopExpr.qll ee171177650fa23eef102a9580765f4b6073a1cc41bab1ec31ad4f84ffe6c2c9 bfcf0cca4dc944270d9748a202829a38c64dfae167c0d3a4202788ceb9daf5f6 lib/codeql/rust/elements/LoopingExpr.qll 7ad7d4bbfd05adc0bb9b4ca90ff3377b8298121ca5360ffb45d5a7a1e20fe37a 964168b2045ee9bad827bba53f10a64d649b3513f2d1e3c17a1b1f11d0fc7f3a -lib/codeql/rust/elements/MacroCall.qll a39a11d387355f59af3007dcbab3282e2b9e3289c1f8f4c6b96154ddb802f8c3 88d4575e462af2aa780219ba1338a790547fdfc1d267c4b84f1b929f4bc08d05 +lib/codeql/rust/elements/MacroCall.qll 16933db15c6c0dbb717ef442f751ad8f63c444f36a12f8d56b8a05a3e5f71d1b ac05cbf50e4b06f39f58817cddbeac6f804c2d1e4f60956a960d63d495e7183d lib/codeql/rust/elements/MacroDef.qll acb39275a1a3257084314a46ad4d8477946130f57e401c70c5949ad6aafc5c5f 6a8a8db12a3ec345fede51ca36e8c6acbdce58c5144388bb94f0706416fa152a lib/codeql/rust/elements/MacroExpr.qll ea9fed13f610bab1a2c4541c994510e0cb806530b60beef0d0c36b23e3b620f0 ad11a6bbd3a229ad97a16049cc6b0f3c8740f9f75ea61bbf4eebb072db9b12d2 lib/codeql/rust/elements/MacroItems.qll 00a5d41f7bb836d952abbd9382e42f72a9d81e65646a15a460b35ccd07a866c6 00efdb4d701b5599d76096f740da9ec157804865267b7e29bc2a214cbf03763e @@ -536,7 +536,7 @@ lib/codeql/rust/elements/internal/generated/Impl.qll 863281820a933a86e6890e31a25 lib/codeql/rust/elements/internal/generated/ImplTraitTypeRepr.qll a1bbebe97a0421f02d2f2ee6c67c7d9107f897b9ba535ec2652bbd27c35d61df ba1f404a5d39cf560e322294194285302fe84074b173e049333fb7f4e5c8b278 lib/codeql/rust/elements/internal/generated/IndexExpr.qll cf951fc40f6690e966b4dc78fa9a6221aa5c6cade44759dcb52254f799292d11 1572e71918cc4e0b7e028331b6d98c9db23100a3646cd3874d1915e06ab6211d lib/codeql/rust/elements/internal/generated/InferTypeRepr.qll dab311562be68a2fcbbe29956b0c3fc66d58348658b734e59f7d080c820093ae ca099ecf9803d3c03b183e4ba19f998e24c881c86027b25037914884ce3de20e -lib/codeql/rust/elements/internal/generated/Item.qll 97f204f27c12689a01fef502a4eec3b587e4eaccd278ec07a34c70a33ce6119d 139af2d44f794d0f91d9aabc3d50d895107c34bd9bcb72457a2e243c14622e51 +lib/codeql/rust/elements/internal/generated/Item.qll 24f388cf0d9a47b38b6cfb93bbe92b9f0cbd0b05e9aa0e6adc1d8056b2cd2f57 66a14e6ff2190e8eebf879b02d0a9a38467e293d6be60685a08542ca1fc34803 lib/codeql/rust/elements/internal/generated/ItemList.qll 73c8398a96d4caa47a2dc114d76c657bd3fcc59e4c63cb397ffac4a85b8cf8ab 540a13ca68d414e3727c3d53c6b1cc97687994d572bc74b3df99ecc8b7d8e791 lib/codeql/rust/elements/internal/generated/Label.qll 6630fe16e9d2de6c759ff2684f5b9950bc8566a1525c835c131ebb26f3eea63e 671143775e811fd88ec90961837a6c0ee4db96e54f42efd80c5ae2571661f108 lib/codeql/rust/elements/internal/generated/LabelableExpr.qll 896fd165b438b60d7169e8f30fa2a94946490c4d284e1bbadfec4253b909ee6c 5c6b029ea0b22cf096df2b15fe6f9384ad3e65b50b253cae7f19a2e5ffb04a58 @@ -551,7 +551,7 @@ lib/codeql/rust/elements/internal/generated/LiteralPat.qll f36b09cf39330019c111e lib/codeql/rust/elements/internal/generated/Locatable.qll c897dc1bdd4dfcb6ded83a4a93332ca3d8f421bae02493ea2a0555023071775e b32d242f8c9480dc9b53c1e13a5cb8dcfce575b0373991c082c1db460a3e37b8 lib/codeql/rust/elements/internal/generated/LoopExpr.qll db6bc87e795c9852426ec661fa2c2c54106805897408b43a67f5b82fb4657afd 1492866ccf8213469be85bbdbcae0142f4e2a39df305d4c0d664229ecd1ebdb9 lib/codeql/rust/elements/internal/generated/LoopingExpr.qll 0792c38d84b8c68114da2bbdfef32ef803b696cb0fd06e10e101756d5c46976c 111fe961fad512722006323c3f2a075fddf59bd3eb5c7afc349835fcec8eb102 -lib/codeql/rust/elements/internal/generated/MacroCall.qll fc8988696493992cc4fdce8c0e5610c54ee92ea52ebb05262338f8b612353f50 188a2d7a484bd402a521787371e64f6e00e928306c8d437e6b19bf890a7aa14e +lib/codeql/rust/elements/internal/generated/MacroCall.qll 8b49d44e6aeac26dc2fc4b9ba03c482c65ebf0cba089d16f9d65e784e48ccbb0 9ecf6e278007adcbdc42ed1c10e7b1c0652b6c64738b780d256c9326afa3b393 lib/codeql/rust/elements/internal/generated/MacroDef.qll e9b3f07ba41aa12a8e0bd6ec1437b26a6c363065ce134b6d059478e96c2273a6 87470dea99da1a6afb3a19565291f9382e851ba864b50a995ac6f29589efbd70 lib/codeql/rust/elements/internal/generated/MacroExpr.qll 03a1daa41866f51e479ac20f51f8406d04e9946b24f3875e3cf75a6b172c3d35 1ae8ca0ee96bd2be32575d87c07cc999a6ff7770151b66c0e3406f9454153786 lib/codeql/rust/elements/internal/generated/MacroItems.qll 894890f61e118b3727d03ca813ae7220a15e45195f2d1d059cb1bba6802128c8 db3854b347f8782a3ec9f9a1439da822727b66f0bd33727383184ab65dbf29ac @@ -579,7 +579,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll c808c9d84dd7800573832b lib/codeql/rust/elements/internal/generated/ParenExpr.qll bc0731505bfe88516205ec360582a4222d2681d11342c93e15258590ddee82f2 d4bd6e0c80cf1d63746c88d4bcb3a01d4c75732e5da09e3ebd9437ced227fb60 lib/codeql/rust/elements/internal/generated/ParenPat.qll 4f168ef5d5bb87a903251cc31b2e44a759b099ec69c90af31783fbb15778c940 0e34f94a45a13396fd57d94c245dc64d1adde2ab0e22b56946f7e94c04e297fc lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 40ab5c592e7699c621787793743e33988de71ff42ca27599f5ab3ddb70e3f7d8 12c0a6eed2202ee3e892f61da3b3ce77ac3190854cdf3097e8d2be98aa3cb91d -lib/codeql/rust/elements/internal/generated/ParentChild.qll d1770632e8d0c649ebcbcab9cbc653531ecf521bbf5d891941db8c0927ae6796 fb40a76aff319ec5f7dae9a05da083b337887b0918b3702641b39342213ddf6f +lib/codeql/rust/elements/internal/generated/ParentChild.qll b9fe4919578ae4889e6993df712b685da3dc2d6559b2a2b34a466c604623feee 306fb39ad5d3877c8afcce14aa6be67ff099b334279bd0ce6b2012719a1e812a lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll c5fa328ea60d3a3333d7c7bb3480969c1873166c7ac8ebb9d0afad7a8099d1a8 2dbbb6200d96f7db7dea4a55bdeab8d67b14d39a43e0bd54ada019f7e466f163 lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4 lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd @@ -594,7 +594,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 51d1e9e683fc79dddbff lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9 -lib/codeql/rust/elements/internal/generated/Raw.qll 6e33d9fa21ee3287a0ebc27856a09f4fdc4d587b5a31ff1c4337106de7ca1a2e eece38e6accb6b9d8838fd05edd7cbaf6f7ee37190adbef2b023ad91064d1622 +lib/codeql/rust/elements/internal/generated/Raw.qll 6cfbf74f0635ce379cce096cdfe70c33b74c7e3a35d2e3af2e93bc06d374efee 5b20172d0662bdbcca737e94ee6ceefc58503898b9584bef372720fea0be2671 lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 3d8c0bd296d33b91a81633f697a43269a6538df06d277262d3990d3f6880ef57 13680f39e89bcd8299c218aba396f3deec804597e6f7cb7d4a7e7c748b6faa77 @@ -736,10 +736,11 @@ test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql cbfcf test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql 68ce501516094512dd5bfed42a785474583a91312f704087cba801b02ba7b834 eacbf89d63159e7decfd84c2a1dc5c067dfce56a8157fbb52bc133e9702d266d test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql c95bc7306b2d77aa05a6501b6321e6f1e7a48b7ad422ba082635ab20014288ae fe72d44c9819b42fff49b9092a9fb2bfafde6d3b9e4967547fb5298822f30bc3 test/extractor-tests/generated/Comment/Comment.ql 5428b8417a737f88f0d55d87de45c4693d81f03686f03da11dc5369e163d977b 8948c1860cde198d49cff7c74741f554a9e89f8af97bb94de80f3c62e1e29244 -test/extractor-tests/generated/Const/Const.ql ef2d2730e08ff6c9e5e8473f654e0b023296c51bc9acfbffd7d4cc5caeed7919 906f8624b10b3fade378d29e34af8537f86d9de16a22a188887ecfc165f5ded9 +test/extractor-tests/generated/Const/Const.ql ddce26b7dc205fe37651f4b289e62c76b08a2d9e8fdaf911ad22a8fdb2a18bc9 b7c7e3c13582b6424a0afd07588e24a258eff7eb3c8587cc11b20aa054d3c727 test/extractor-tests/generated/Const/Const_getAttr.ql bd6296dab00065db39663db8d09fe62146838875206ff9d8595d06d6439f5043 34cb55ca6d1f44e27d82a8b624f16f9408bae2485c85da94cc76327eed168577 test/extractor-tests/generated/Const/Const_getBody.ql f50f79b7f42bb1043b79ec96f999fa4740c8014e6969a25812d5d023d7a5a5d8 90e5060ba9757f1021429ed4ec4913bc78747f3fc415456ef7e7fc284b8a0026 test/extractor-tests/generated/Const/Const_getCrateOrigin.ql f042bf15f9bde6c62d129601806c79951a2a131b6388e8df24b1dc5d17fe89f7 7c6decb624f087fda178f87f6609510907d2ed3877b0f36e605e2422b4b13f57 +test/extractor-tests/generated/Const/Const_getExpanded.ql b2d0dc1857413cdf0e222bda4717951239b8af663522990d3949dfc170fab6f5 a21fed32088db850950cb65128f2f946d498aaa6873720b653d4b9b2787c7d00 test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql 3300b902e1d1f9928cfe918203b87043e13460cfa5348a8c93712d2e26d61ced 71e7b80d3290f17b1c235adaca2c48ae90eb8b2cb24d4c9e6dc66559daf3824c test/extractor-tests/generated/Const/Const_getName.ql b876a1964bbb857fbe8852fb05f589fba947a494f343e8c96a1171e791aa2b5e 83655b1fbc67a4a1704439726c1138bb6784553e35b6ac16250b807e6cd0f40c test/extractor-tests/generated/Const/Const_getTypeRepr.ql 87c5deaa31014c40a035deaf149d76b3aca15c4560c93dd6f4b1ee5f76714baa f3e6b31e4877849792778d4535bd0389f3afd482a6a02f9ceb7e792e46fca83e @@ -759,9 +760,10 @@ test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.ql 39dae987 test/extractor-tests/generated/Crate/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql 513d64b564f359e1022ae6f3d6d4a8ad637f595f01f29a6c2a167d1c2e8f1f99 0c7a7af6ee1005126b9ab77b2a7732821f85f1d2d426312c98206cbbedc19bb2 test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql b20720ff0b147d55cea6f2de44d5bf297e79991eaf103938ccd7ab9d129e9656 eb8c9db2581cea00c29d7772de0b0a125be02c37092217a419f1a2b6a9711a6c -test/extractor-tests/generated/Enum/Enum.ql ed518d828d8e2e4790849284de1d0d5e728dbc2fe5e9f187e8ebfa2d503efd5a 7092b963eb133371e1cbc09d45f8c2308d7093523140b351d67073a8d258643e +test/extractor-tests/generated/Enum/Enum.ql 31645674671eda7b72230cd20b7a2e856190c3a3244e002ab3558787ed1261d9 1f40ee305173af30b244d8e1421a3e521d446d935ece752da5a62f4e57345412 test/extractor-tests/generated/Enum/Enum_getAttr.ql 8109ef2495f4a154e3bb408d549a16c6085e28de3aa9b40b51043af3d007afa7 868cf275a582266ffa8da556d99247bc8af0fdf3b43026c49e250cf0cac64687 test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql 76d32838b7800ed8e5cab895c9dbea76129f96afab949598bebec2b0cb34b7ff 226d099377c9d499cc614b45aa7e26756124d82f07b797863ad2ac6a6b2f5acb +test/extractor-tests/generated/Enum/Enum_getExpanded.ql 846117a6ee8e04f3d85dce1963bffcbd4bc9b4a95bfab6295c3c87a2f4eda50e 3a9c57fa5c8f514ec172e98126d21b12abe94a3a8a737fb50c838b47fe287ac4 test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql 001bb634adc4b20afb241bff41194bc91ba8544d1edd55958a01975e2ac428e1 c7c3fe3dc22a1887981a895a1e5262b1d0ad18f5052c67aa73094586de5212f6 test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql 2a858a07195a4b26b8c92e28519995bd6eba64889bddd126e161038f4a8d78e0 db188f238db915c67b084bc85aa0784c6a20b97b5a5f1966b3530c4c945b5527 test/extractor-tests/generated/Enum/Enum_getName.ql 32a8638534f37bfd416a6906114a3bcaf985af118a165b78f2c8fffd9f1841b8 c9ca8030622932dd6ceab7d41e05f86b923f77067b457fb7ec196fe4f4155397 @@ -770,15 +772,17 @@ test/extractor-tests/generated/Enum/Enum_getVisibility.ql 7fdae1b147d3d2ed41e055 test/extractor-tests/generated/Enum/Enum_getWhereClause.ql 00be944242a2056cd760a59a04d7a4f95910c122fe8ea6eca3efe44be1386b0c 70107b11fb72ed722afa9464acc4a90916822410d6b8bf3b670f6388a193d27d test/extractor-tests/generated/ExprStmt/ExprStmt.ql 811d3c75a93d081002ecf03f4e299c248f708e3c2708fca9e17b36708da620e5 a4477e67931ba90fd948a7ef778b18b50c8492bae32689356899e7104a6d6794 test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.ql e269bb222317afe1470eee1be822d305fc37c65bca2999da8d24a86fa9337036 088369d6c5b072192290c34c1828b1068aeedaabdae131594ca529bbb1630548 -test/extractor-tests/generated/ExternBlock/ExternBlock.ql 45233abdf39caefd2d1d236990a5fbf06eb0b547d892f1ad3e82b8e3c215bc79 df30e0370ed20bef3b2c5bed6e8c27b27663716e7c9e14e85acb6e33a43f4edc +test/extractor-tests/generated/ExternBlock/ExternBlock.ql 14da23b2b22f3d61a06103d1416ad416333945fd30b3a07b471f351f682c4e16 eaaf4ac8dc23c17d667bc804ed3b88c816c0c5a6127b76e2781faec52534426c test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql 9b7c7263fcbc84e07361f5b419026a525f781836ede051412b22fb4ddb5d0c6a c3755faa7ffb69ad7d3b4c5d6c7b4d378beca2fa349ea072e3bef4401e18ec99 test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql 78ed6a2d31ccab67b02da4792e9d2c7c7084a9f20eb065d83f64cd1c0a603d1b e548d4fa8a3dc1ca4b7d7b893897537237a01242c187ac738493b9f5c4700521 test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql 5a2e0b546e17a998156f48f62e711c8a7b920d352516de3518dfcd0dfedde82d 1d11b8a790c943ef215784907ff2e367b13737a5d1c24ad0d869794114deaa32 +test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql 13d466cb7d6ab8d7d5a98237775518826675e7107dbd7a3879133841eacfcadc b091495c25ead5e93b7a4d64443ca8c8bfdeb699a802bd601efa0259610cf9e7 test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql 40d6ee4bcb77c2669e07cf8070cc1aadfca22a638412c8fcf35ff892f5393b0c e9782a3b580e076800a1ad013c8f43cdda5c08fee30947599c0c38c2638820d6 test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql 2c2b29bdfdc3b27173c068cbaab9946b42053aa14cf371236b4b60ff2e723370 dfc20fc8ef81cdce6f0badd664ef3914d6d49082eb942b1da3f45239b4351e2f -test/extractor-tests/generated/ExternCrate/ExternCrate.ql c6c673d6f533fc47b1a15aac0deb5675ba146c9b53e4575f01e97106969ef38e 5a4d9e6f4fdb689d9687f4e7eb392b184c84bad80eec5dad0da775af27028604 +test/extractor-tests/generated/ExternCrate/ExternCrate.ql 3d4a4db58e34e6baa6689c801dd5c63d609549bcd9fa0c554b32042594a0bc46 63568f79c7b9ceb19c1847f5e8567aec6de5b904ef0215b57c7243fcf5e09a7a test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql cbe8efdfdbe5d46b4cd28d0e9d3bffcf08f0f9a093acf12314c15b692a9e502e 67fe03af83e4460725f371920277186c13cf1ed35629bce4ed9e23dd3d986b95 test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql c0bf9ba36beb93dc27cd1c688f18b606f961b687fd7a7afd4b3fc7328373dcfb 312da595252812bd311aecb356dd80f2f7dc5ecf77bc956e6478bbe96ec72fd9 +test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql 007d4bae6dad9aa2d7db45dfc683a143d6ce1b3dd752233cdc46218e8bdab0b1 e77fe7e5128ee3673aec69aef44dc43f881a3767705866c956472e0137b86b60 test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql 88e16e2bbef466cec43ace25716e354408b5289f9054eaafe38abafd9df327e3 83a69487e16d59492d44d8c02f0baf7898c88ed5fcf67c73ed89d80f00c69fe8 test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.ql 6ce362fb4df37210ce491e2ef4e04c0899a67c7e15b746c37ef87a42b2b5d5f9 5209c8a64d5707e50771521850ff6deae20892d85a82803aad1328c2d6372d09 test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.ql 52007ef7745e7ceb394de73212c5566300eb7962d1de669136633aea0263afb2 da98779b9e82a1b985c1b1310f0d43c784e5e66716a791ac0f2a78a10702f34b @@ -818,11 +822,12 @@ test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql 27 test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.ql 634efdffaae4199aa9d95652cf081a8dc26e88224e24678845f8a67dc24ce090 d0302fee5c50403214771d5c6b896ba7c6e52be10c9bea59720ef2bb954e6f40 test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.ql 0d2140f84d0220b0c72c48c6bd272f4cfe1863d1797eddd16a6e238552a61e4d f4fe9b29697041e30764fa3dea44f125546bfb648f32c3474a1e922a4255c534 test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.ql 01ef27dd0bfab273e1ddc57ada0e079ece8a2bfd195ce413261006964b444093 acd0161f86010759417015c5b58044467a7f760f288ec4e8525458c54ae9a715 -test/extractor-tests/generated/Function/Function.ql c1c2a9b68c35f839ccd2b5e62e87d1acd94dcc2a3dc4c307c269b84b2a0806e6 1c446f19d2f81dd139aa5a1578d1b165e13bddbaeab8cfee8f0430bced3a99ab +test/extractor-tests/generated/Function/Function.ql 084e8c4a938e0eea6e2cd47b592021891cb2ad04edbec336f87f0f3faf6a7f32 200b8b17eb09f6df13b2e60869b0329b7a59e3d23a3273d17b03f6addd8ebf89 test/extractor-tests/generated/Function/Function_getAbi.ql e5c9c97de036ddd51cae5d99d41847c35c6b2eabbbd145f4467cb501edc606d8 0b81511528bd0ef9e63b19edfc3cb638d8af43eb87d018fad69d6ef8f8221454 test/extractor-tests/generated/Function/Function_getAttr.ql 44067ee11bdec8e91774ff10de0704a8c5c1b60816d587378e86bf3d82e1f660 b4bebf9441bda1f2d1e34e9261e07a7468cbabf53cf8047384f3c8b11869f04e test/extractor-tests/generated/Function/Function_getBody.ql cf2716a751e309deba703ee4da70e607aae767c1961d3c0ac5b6728f7791f608 3beaf4032924720cb881ef6618a3dd22316f88635c86cbc1be60e3bdad173e21 test/extractor-tests/generated/Function/Function_getCrateOrigin.ql acec761c56b386600443411cabb438d7a88f3a5e221942b31a2bf949e77c14b4 ff2387acb13eebfad614b808278f057a702ef4a844386680b8767f9bb4438461 +test/extractor-tests/generated/Function/Function_getExpanded.ql dc93cca67a3436543cd5b8e5c291cceacde523b8652f162532b274e717378293 c0c28eeb6c97690dfc82bd97e31db1a6b72c6410b98eb193270a37fc95952518 test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql 0bcdca25bb92424007cea950409d73ba681e3ffbea53e0508f1d630fccfa8bed ff28c3349f5fc007d5f144e549579bd04870973c0fabef4198edce0fba0ef421 test/extractor-tests/generated/Function/Function_getGenericParamList.ql 0b255791c153b7cb03a64f1b9ab5beccc832984251f37516e1d06ce311e71c2b d200f90d4dd6f8dfd22ce49203423715d5bef27436c56ee553097c668e71c5a1 test/extractor-tests/generated/Function/Function_getName.ql 3d9e0518075d161213485389efe0adf8a9e6352dd1c6233ef0403a9abbcc7ed1 841e644ecefff7e9a82f458bcf14d9976d6a6dbe9191755ead88374d7c086375 @@ -843,10 +848,11 @@ test/extractor-tests/generated/IfExpr/IfExpr_getAttr.ql f5872cdbb21683bed689e753 test/extractor-tests/generated/IfExpr/IfExpr_getCondition.ql 5bab301a1d53fe6ee599edfb17f9c7edb2410ec6ea7108b3f4a5f0a8d14316e3 355183b52cca9dc81591a09891dab799150370fff2034ddcbf7b1e4a7cb43482 test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql 8674cedf42fb7be513fdf6b9c3988308453ae3baf8051649832e7767b366c12f e064e5f0b8e394b080a05a7bccd57277a229c1f985aa4df37daea26aeade4603 test/extractor-tests/generated/IfExpr/IfExpr_getThen.ql 0989ddab2c231c0ee122ae805ffa0d3f0697fb7b6d9e53ee6d32b9140d4b0421 81028f9cd6b417c63091d46a8b85c3b32b1c77eea885f3f93ae12c99685bfe0a -test/extractor-tests/generated/Impl/Impl.ql c473ab1d919fc56b641684b9eb7ba0e65defe554e1bb2fa603b8246a896aa574 16f2f7d8456aee81b395bf8e44fcf0562cfa44294fa03e4f85f3b06f5ff1c57f +test/extractor-tests/generated/Impl/Impl.ql a6e19421a7785408ad5ce8e6508d9f88eceb71fe6f6f4abc5795285ecc778db6 158519bed8a89b8d25921a17f488267af6be626db559bd93bbbe79f07ebfed6c test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql cf875361c53c081ac967482fd3af8daf735b0bc22f21dcf0936fcf70500a001a 0ad723839fa26d30fa1cd2badd01f9453977eba81add7f0f0a0fcb3adb76b87e test/extractor-tests/generated/Impl/Impl_getAttr.ql 018bdf6d9a9724d4f497d249de7cecd8bda0ac2340bde64b9b3d7c57482e715b cd065899d92aa35aca5d53ef64eadf7bb195d9a4e8ed632378a4e8c550b850cd test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql 494d5524ef7bac1286b8a465e833e98409c13f3f8155edab21d72424944f2ed9 b238ef992fce97699b14a5c45d386a2711287fd88fa44d43d18c0cdfd81ed72c +test/extractor-tests/generated/Impl/Impl_getExpanded.ql ce623514e77f67dda422566531515d839a422e75ea87a10d86ad162fa61e1469 533624938c937835a59326c086e341b7bacab32d84af132e7f3d0d17c6cd4864 test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql 3ab82fd7831d22c7ec125908abf9238a9e8562087d783c1c12c108b449c31c83 320afd5dd1cea9017dbc25cc31ebe1588d242e273d27207a5ad2578eee638f7e test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql 88d5cd8fd03cb4cc2887393ee38b2e2315eeef8c4db40a9bd94cf86b95935bdd 9c72828669ccf8f7ca39851bc36a0c426325a91fc428b49681e4bb680d6547a9 test/extractor-tests/generated/Impl/Impl_getSelfTy.ql 2962d540a174b38815d150cdd9053796251de4843b7276d051191c6a6c8ecad4 b7156cec08bd6231f7b8f621e823da0642a0eb036b05476222f259101d9d37c0 @@ -894,18 +900,19 @@ test/extractor-tests/generated/LoopExpr/LoopExpr.ql 37b320acefa3734331f87414de27 test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql d557c1a34ae8762b32702d6b50e79c25bc506275c33a896b6b94bbbe73d04c49 34846c9eefa0219f4a16e28b518b2afa23f372d0aa03b08d042c5a35375e0cd6 test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql 0b77b9d9fb5903d37bce5a2c0d6b276e6269da56fcb37b83cd931872fb88490f c7f09c526e59dcadec13ec9719980d68b8619d630caab2c26b8368b06c1f2cc0 test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql 0267f54077640f3dfeb38524577e4a1229115eeb1c839398d0c5f460c1d65129 96ec876635b8c561f7add19e57574444f630eae3df9ab9bc33ac180e61f3a7b8 -test/extractor-tests/generated/MacroCall/MacroCall.ql f41552ce4c8132db854132e445aa0c8df514bfd375aa71cc9ed0ae838b7df9f1 442ecbe1481084bb072c6f8cf0eb595b7ad371587e8708610a10f2cc718535f7 +test/extractor-tests/generated/MacroCall/MacroCall.ql 989d90726edab22a69377480ce5d1a13309d9aac60e0382c2ad6d36e8c7f1df5 68ffd6e1afa0c2c17fb04f87a09baca9766421aa28acd4ef8a6d04798f4c3a57 test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql c22a2a29d705e85b03a6586d1eda1a2f4f99f95f7dfeb4e6908ec3188b5ad0ad 9b8d9dcc2116a123c15c520a880efab73ade20e08197c64bc3ed0c50902c4672 test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql 3030e87de6f773d510882ee4469146f6008898e23a4a4ccabcbaa7da1a4e765e a10fe67315eda1c59d726d538ead34f35ccffc3e121eeda74c286d49a4ce4f54 test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.ql 757c4a4c32888e4604044c798a3180aa6d4f73381eec9bc28ba9dc71ffcbd03a 27d5edaa2c1096a24c86744aaad0f006da20d5caa28ccfd8528e7c98aa1bead1 test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql 553b810f611014ae04d76663d1393c93687df8b96bda325bd71e264e950a8be9 a0e80c3dac6a0e48c635e9f25926b6a97adabd4b3c0e3cfb6766ae160bcb4ee7 test/extractor-tests/generated/MacroCall/MacroCall_getPath.ql 160edc6a001a2d946da6049ffb21a84b9a3756e85f9a2fb0a4d85058124b399a 1e25dd600f19ef89a99f328f86603bce12190220168387c5a88bfb9926da56d9 test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.ql 1cbf6b1ac7fa0910ff299b939743153fc00ad7e28a9a70c69a8297c6841e8238 570380c0dc4b20fe25c0499378569720a6da14bdb058e73d757e174bdd62d0c0 -test/extractor-tests/generated/MacroDef/MacroDef.ql b8186c22beb7f818a30fe80f36d2e4207887445863e4deeae88bd03c24863dbb 71bebfb1b57b56ea479bc6edd714a4f01bfce2fa8e12fb9eb1481f9dffa4515e +test/extractor-tests/generated/MacroDef/MacroDef.ql 2b9965d72ba85d531f66e547059110e95a03315889fbb3833cce121c1ad49309 2b5b03afbce92745b1d9750a958b602ccf5e7f9f7934fb12d8b3c20dfc8d3d28 test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql 61f11d6ba6ea3bd42708c4dc172be4016277c015d3560025d776e8fef447270f 331541eff1d8a835a9ecc6306f3adf234cbff96ea74b0638e482e03f3e336fd1 test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql 0a30875f7b02351a4facf454273fb124aa40c6ef8a47dfe5210072a226b03656 8e97307aef71bf93b28f787050bfaa50fe95edf6c3f5418acd07c1de64e62cc1 test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql 7b350f48e6f208d9fa4725919efd439baf5e9ec4563ba9be261b7a17dacc451b 33f99a707bb89705c92195a5f86055d1f6019bcd33aafcc1942358a6ed413661 test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql 6c46366798df82ed96b8fb1efeb46bd84c2660f226ff2359af0041d5cdf004ba 8ab22599ef784dcad778d86828318699c2230c8927ae98ab0c60ac4639d6d1b5 +test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql 7f2baed8b5a2ba8a6e67cb601e7a03a7d3276673d6bd3b05f83b76058622bc2d 85241a780e2cec0be062042bcea4a3c3282f3694f6bf7faa64a51f1126b1f438 test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql d09b262b8e5558078506ec370255a63c861ca0c41ab9af3eb4f987325dadd90c cd466062c59b6a8ea2a05ddac1bf5b6d04165755f4773867774215ec5e79afa3 test/extractor-tests/generated/MacroDef/MacroDef_getName.ql 6bc8a17804f23782e98f7baf70a0a87256a639c11f92e3c80940021319868847 726f9d8249b2ca6789d37bb4248bf5dd044acc9add5c25ed62607502c8af65aa test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.ql d858ccaab381432c529bf4a621afc82ea5e4b810b463f2b1f551de79908e14e7 83a85c4f90417ab44570a862642d8f8fc9208e62ba20ca69b32d39a3190381aa @@ -915,9 +922,10 @@ test/extractor-tests/generated/MacroItems/MacroItems.ql 876b5d2a4ce7dcb599e02208 test/extractor-tests/generated/MacroItems/MacroItems_getItem.ql 53fc2db35a23b9aca6ee327d2a51202d23ddf482e6bdd92c5399b7f3a73959b1 63051c8b7a7bfbe9cc640f775e753c9a82f1eb8472989f7d3c8af94fdf26c7a0 test/extractor-tests/generated/MacroPat/MacroPat.ql d9ec72d4d6a7342ee2d9aa7e90227faa31792ca5842fe948d7fdf22597a123b7 74b0f21ef2bb6c13aae74dba1eea97451755110909a083360e2c56cfbc76fd91 test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql 398996f0d0f2aa6d3b58d80b26c7d1185b5094d455c6c5c7f075f6d414150aa6 b4662e57cac36ed0e692201f53ba46c3d0826bba99c5cc6dfcb302b44dd2154b -test/extractor-tests/generated/MacroRules/MacroRules.ql e8a243a1aa368d44c963d81b4459aa6eba7caf514d4865af5007cc33fe53dde4 9e9114cb808239e3bb15403cf5712f8dbaf4e2719e74efddbb800ec0be19f06a +test/extractor-tests/generated/MacroRules/MacroRules.ql 46c125145d836fd5d781d4eda02f9f09f2d39a35350dffb982610b27e4e4936f 4068314eca12ac08ad7e90ceb8b9d935a355c2fe8c38593972484abde1ac47b4 test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql 7de501c724e3465520cdc870c357911e7e7fce147f6fb5ed30ad37f21cf7d932 0d7754b89bcad6c012a0b43ee4e48e64dd20b608b3a7aeb4042f95eec50bb6e6 test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql fccedeee10ef85be3c26f6360b867e81d4ebce3e7f9cf90ccb641c5a14e73e7d 28c38a03a7597a9f56032077102e7a19378b0f3f3a6804e6c234526d0a441997 +test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql 01746ce9f525dcf97517d121eb3d80a25a1ee7e1d550b52b3452ee6b8fd83a00 0ccb55088d949fa2cd0d0be34ea5a626c221ae1f35d56ccf2eb20c696d3c157b test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql a0098b1d945df46e546e748c2297444aaccd04a4d543ba3d94424e7f33be6d26 3bab748c7f5bbe486f30e1a1c422a421ab622f401f4f865afb003915ae47be83 test/extractor-tests/generated/MacroRules/MacroRules_getName.ql 591606e3accae8b8fb49e1218c4867a42724ac209cf99786db0e5d7ea0bf55d5 d2936ef5aa4bbf024372516dde3de578990aafb2b8675bbbf0f72e8b54eb82a8 test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql 7598d33c3d86f9ad8629219b90667b2b65e3a1e18c6b0887291df9455a319cab 69d90446743e78e851145683c17677497fe42ed02f61f2b2974e216dc6e05b01 @@ -953,9 +961,10 @@ test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.ql 13 test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.ql 77407ac956c897ff7234132de1a825f1af5cfd0b6c1fd3a30f64fe08813d56db d80719e02d19c45bd6534c89ec7255652655f5680199854a0a6552b7c7793249 test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.ql c22504665900715e8a32dd47627111e8cef4ed2646f74a8886dead15fbc85bb5 d92462cf3cb40dcd383bcaffc67d9a43e840494df9d7491339cbd09a0a73427b test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql 9e7bbb7ed60db49b45c3bdf8e01ec58de751889fc394f59ac33f9d6e98200aa1 c055d877e2ff0edc78cce6dd79c78b2881e7940889729cbb5c12e7029ddeb5a3 -test/extractor-tests/generated/Module/Module.ql 4bc4d74921a5af94b124a5010cdf6908cdc9ecf26124e354155fba781009071f acca26579b087ce1fc674703c4d95d8d353075d3021c464d2f3fc06891716774 +test/extractor-tests/generated/Module/Module.ql 3b534dc4377a6411d75c5d1d99ad649acaebd17364af2738cbc86f5a43315028 feeedeb64c4eccba1787bff746ee8009bddead00123de98b8d5ca0b401078443 test/extractor-tests/generated/Module/Module_getAttr.ql b97ae3f5175a358bf02c47ec154f7c2a0bd7ca54d0561517008d59344736d5cd f199116633c183826afa9ab8e409c3bf118d8e626647dbc617ae0d40d42e5d25 test/extractor-tests/generated/Module/Module_getCrateOrigin.ql ff479546bf8fe8ef3da60c9c95b7e8e523c415be61839b2fff5f44c146c4e7df b14d3c0577bd6d6e3b6e5f4b93448cdccde424e21327a2e0213715b16c064a52 +test/extractor-tests/generated/Module/Module_getExpanded.ql 03d49dd284795a59b7b5126218e1c8c7ce1cb0284c5070e2d8875e273d9d90fc fa004cf6b464afe0307c767e4dd29bbce7e1c65de61cdd714af542a8b68bbe44 test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql 55c5b633d05ddbe47d324535a337d5dfed5913ab23cdb826424ddd22009a2a53 ab9e11e334e99be0d4c8d2bd0580657211d05feeeb322fbb5400f07264219497 test/extractor-tests/generated/Module/Module_getItemList.ql 59b49af9788e9d8b5bceaeffe3c3d203038abd987880a720669117ac3db35388 9550939a0e07b11892b38ca03a0ce305d0e924c28d27f25c9acc47a819088969 test/extractor-tests/generated/Module/Module_getName.ql 7945dc007146c650cf4f5ac6e312bbd9c8b023246ff77f033a9410da29774ace 9de11a1806487d123376c6a267a332d72cd81e7d6e4baa48669e0bb28b7e352e @@ -1053,10 +1062,11 @@ test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.ql a6604f test/extractor-tests/generated/SourceFile/SourceFile.ql c30a3c2c82be3114f3857295615e2ec1e59c823f0b65ea3918be85e6b7adb921 6a5bbe96f81861c953eb89f77ea64d580f996dca5950f717dd257a0b795453e6 test/extractor-tests/generated/SourceFile/SourceFile_getAttr.ql 450404306b3d991b23c60a7bb354631d37925e74dec7cc795452fe3263dc2358 07ffcc91523fd029bd599be28fe2fc909917e22f2b95c4257d3605f54f9d7551 test/extractor-tests/generated/SourceFile/SourceFile_getItem.ql f17e44bc0c829b2aadcb6d4ab9c687c10dc8f1afbed4e5190404e574d6ab3107 1cf49a37cc32a67fdc00d16b520daf39143e1b27205c1a610e24d2fe1a464b95 -test/extractor-tests/generated/Static/Static.ql ac93af3e443bd2339e460a2d5273415da3d8e3e1cbbfc3a0af5b43b559047154 2f38e26764f2a07f5bf6ddadf7ebe9db5e087d784d1f2c4e79766ed10bb97859 +test/extractor-tests/generated/Static/Static.ql 271ef78c98c5cb8c80812a1028bb6b21b5e3ae11976ed8276b35832bf41c4798 23ab4c55836873daf500973820d2d5eaa5892925ebdc5d35e314b87997ca6ce3 test/extractor-tests/generated/Static/Static_getAttr.ql adb0bbf55fb962c0e9d317fd815c09c88793c04f2fb78dfd62c259420c70bc68 d317429171c69c4d5d926c26e97b47f5df87cf0552338f575cd3aeea0e57d2c2 test/extractor-tests/generated/Static/Static_getBody.ql e735bbd421e22c67db792671f5cb78291c437621fdfd700e5ef13b5b76b3684d 9148dc9d1899cedf817258a30a274e4f2c34659140090ca2afeb1b6f2f21e52f test/extractor-tests/generated/Static/Static_getCrateOrigin.ql f24ac3dac6a6e04d3cc58ae11b09749114a89816c28b96bf6be0e96b2e20d37f e4051426c5daa7e73c1a5a9023d6e50a2b46ebf194f45befbe3dd45e64831a55 +test/extractor-tests/generated/Static/Static_getExpanded.ql 6f949494cba88f12b1657badd7d15bdd0b6aba73701674a64aac9d30cbb4907f 9ea0c4bb0100482e9ae0b03c410860f10fd88115e854b2516b61732acc634501 test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql 6ec02f7ec9cf4cb174a7cdf87921758a3e798c76171be85939614305d773b6a0 c51567dac069fc67ece0aa018ae6332187aa1145f33489093e4aee049d7cea52 test/extractor-tests/generated/Static/Static_getName.ql c7537e166d994b6f961547e8b97ab4328b78cbd038a0eb9afaae42e35f6d9cb4 bb5ae24b85cd7a8340a4ce9e9d56ec3be31558051c82257ccb84289291f38a42 test/extractor-tests/generated/Static/Static_getTypeRepr.ql 45efcf393a3c6d4eca92416d8d6c88e0d0e85a2bc017da097ae2bbbe8a271a32 374b551e2d58813203df6f475a1701c89508803693e2a4bec7afc86c2d58d60b @@ -1065,9 +1075,10 @@ test/extractor-tests/generated/StmtList/StmtList.ql 0010df0d5e30f7bed3bd5d916faf test/extractor-tests/generated/StmtList/StmtList_getAttr.ql 78d4bf65273498f04238706330b03d0b61dd03b001531f05fcb2230f24ceab64 6e02cee05c0b9f104ddea72b20097034edb76e985188b3f10f079bb03163b830 test/extractor-tests/generated/StmtList/StmtList_getStatement.ql abbc3bcf98aab395fc851d5cc58c9c8a13fe1bdd531723bec1bc1b8ddbec6614 e302a26079986fa055306a1f641533dfde36c9bc0dd7958d21e2518b59e808c2 test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql 578d7c944ef42bdb822fc6ce52fe3d49a0012cf7854cfddbb3d5117133700587 64ea407455a3b4dfbb86202e71a72b5abbff885479367b2834c0dd16d1f9d0ee -test/extractor-tests/generated/Struct/Struct.ql 14dc5ead6bed88c2c79d9fd3874198f845d8202290b0931b2d2375c0a397c44a 408b07b6bb40ca09f51d2becd94501cc2b95ec52e04ccc2703c2e25d6577b4c6 +test/extractor-tests/generated/Struct/Struct.ql 13d575bd8ca4ad029d233a13a485005bc03f58221b976c7e1df7456ddc788544 fc7cbaaf44d71e66aa8170b1822895fc0d0710d0b3a4da4f1b96ed9633f0b856 test/extractor-tests/generated/Struct/Struct_getAttr.ql 028d90ddc5189b82cfc8de20f9e05d98e8a12cc185705481f91dd209f2cb1f87 760780a48c12be4581c1675c46aae054a6198196a55b6b989402cc29b7caf245 test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql 289622244a1333277d3b1507c5cea7c7dd29a7905774f974d8c2100cea50b35f d32941a2d08d7830b42c263ee336bf54de5240bfc22082341b4420a20a1886c7 +test/extractor-tests/generated/Struct/Struct_getExpanded.ql fc6809bfafce55b6ff1794898fcd08ac220c4b2455782c52a51de64346ed09ba 9bcb24573b63831861b55c7f93af58e19af2929acf9bb1b8da94763bbfcde013 test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql 866a5893bd0869224fb8aadd071fba35b5386183bb476f5de45c9de7ab88c583 267aedc228d69e31ca8e95dcab6bcb1aa30f9ebaea43896a55016b7d68e3c441 test/extractor-tests/generated/Struct/Struct_getFieldList.ql f45d6d5d953741e52aca67129994b80f6904b2e6b43c519d6d42c29c7b663c42 77a7d07e8462fa608efc58af97ce8f17c5369f9573f9d200191136607cb0e600 test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql cd72452713004690b77086163541fa319f8ab5faf503bb4a6a20bcaf2f790d38 4d72e891c5fac6e491d9e18b87ecf680dc423787d6b419da8f700fe1a14bc26f @@ -1111,19 +1122,21 @@ test/extractor-tests/generated/TokenTree/TokenTree.ql ba2ef197e0566640b57503579f test/extractor-tests/generated/Trait/AssocItemList.ql 0ea572b1350f87cc09ce4dc1794b392cc9ad292abb8439c106a7a1afe166868b 6e7493a3ace65c68b714e31234e149f3fc44941c3b4d125892531102b1060b2f test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.ql 8149d905f6fc6caeb51fa1ddec787d0d90f4642687461c7b1a9d4ab93a27d65d 8fb9caad7d88a89dd71e5cc8e17496afbdf33800e58179f424ef482b1b765bb1 test/extractor-tests/generated/Trait/AssocItemList_getAttr.ql 06526c4a28fd4fdce04ca15fbadc2205b13dcc2d2de24177c370d812e02540e6 79c8ce6e1f8acc1aaca498531e2c1a0e7e2c0f2459d7fc9fe485fd82263c433f -test/extractor-tests/generated/Trait/Trait.ql e88ff04557cf050a5acb5038537bb4f7a444c85721eaf3e0aa4c10e7e7724c56 e37b9e60fa8cc64ef9e8db1707d2d8c5a62f9804233c939b4aaa39762b9b0a9a +test/extractor-tests/generated/Trait/Trait.ql a7407c80d297ba0b7651ae5756483c8d81874d20af4123552d929870e9125d13 62e45d36c9791702bc9d4a26eb04f22fe713d120a8e00fe6131032b081bad9f4 test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql 05e6896f60afabf931a244e42f75ee55e09c749954a751d8895846de3121f58f def1f07d9945e8d9b45a659a285b0eb72b37509d20624c88e0a2d34abf7f0c72 test/extractor-tests/generated/Trait/Trait_getAttr.ql 9711125fa4fc0212b6357f06d1bc50df50b46168d139b649034296c64d732e21 901b6a9d04055b563f13d8742bd770c76ed1b2ccf9a7236a64de9d6d287fbd52 test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql d8433d63bb2c4b3befaaedc9ce862d1d7edcdf8b83b3fb5529262fab93880d20 3779f2678b3e00aac87259ecfe60903bb564aa5dbbc39adc6c98ad70117d8510 +test/extractor-tests/generated/Trait/Trait_getExpanded.ql 4a6912b74ad6cbfce27c6ffdff781271d182a91a4d781ee02b7ac35b775d681b 14c8df06c3909c9986fc238229208e87b39b238890eb5766af2185c36e3b00c9 test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql a2bd16e84f057ed8cb6aae3e2a117453a6e312705302f544a1496dbdd6fcb3e6 b4d419045430aa7acbc45f8043acf6bdacd8aff7fdda8a96c70ae6c364c9f4d1 test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql b27ff28e3aff9ec3369bbbcbee40a07a4bd8af40928c8c1cb7dd1e407a88ffee 2b48e2049df18de61ae3026f8ab4c3e9e517f411605328b37a0b71b288826925 test/extractor-tests/generated/Trait/Trait_getName.ql d4ff3374f9d6068633bd125ede188fcd3f842f739ede214327cd33c3ace37379 3dcf91c303531113b65ea5205e9b6936c5d8b45cd3ddb60cd89ca7e49f0f00c1 test/extractor-tests/generated/Trait/Trait_getTypeBoundList.ql 8a4eb898424fe476db549207d67ba520999342f708cbb89ee0713e6bbf1c050d 69d01d97d161eef86f24dd0777e510530a4db5b0c31c760a9a3a54f70d6dc144 test/extractor-tests/generated/Trait/Trait_getVisibility.ql 8f4641558effd13a96c45d902e5726ba5e78fc9f39d3a05b4c72069993c499f4 553cf299e7d60a242cf44f2a68b8349fd8666cc4ccecab5ce200ce44ad244ba9 test/extractor-tests/generated/Trait/Trait_getWhereClause.ql b34562e7f9ad9003d2ae1f3a9be1b5c141944d3236eae3402a6c73f14652e8ad 509fa3815933737e8996ea2c1540f5d7f3f7de21947b02e10597006967efc9d1 -test/extractor-tests/generated/TraitAlias/TraitAlias.ql 8870048164ba3c3ea8d4c10e5793d860a4ed3ef0890bf32409827321ddde4b72 9a912ebba80977656e74e1d94478c193164684f01371e23f09817231b58007ff +test/extractor-tests/generated/TraitAlias/TraitAlias.ql 6ba52527c90cd067ce3a48bb5051ba94c3c108444d428244622d381c1264ba55 76acb3a91331fa55c390a1cf2fd70a35052d9019b0216f5e00271ee367607d33 test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql 128c24196bfa6204fffd4154ff6acebd2d1924bb366809cdb227f33d89e185c8 56e8329e652567f19ef7d4c4933ee670a27c0afb877a0fab060a0a2031d8133e test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql 303212122021da7f745050c5de76c756461e5c6e8f4b20e26c43aa63d821c2b6 fdbd024cbe13e34265505147c6faffd997e5c222386c3d9e719cd2a385bde51c +test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql 8767d1ffb0a9c1e84c39907d3ab5456aff146e877f7bfe905786ff636a39acd9 9467a2b63f32b84501f4aa1ce1e0fc822845a9239216b9ebf4eaf0c23d6d27f3 test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql 601b6b0e5e7e7f2926626866085d9a4a9e31dc575791e9bd0019befc0e397193 9bd325414edc35364dba570f6eecc48a8e18c4cbff37d32e920859773c586319 test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql 5a40c1760fcf5074dc9e9efa1a543fc6223f4e5d2984923355802f91edb307e4 9fd7ab65c1d6affe19f96b1037ec3fb9381e90f602dd4611bb958048710601fa test/extractor-tests/generated/TraitAlias/TraitAlias_getName.ql e91fa621774b9467ae820f3c408191ac75ad33dd73bcd417d299006a84c1a069 113e0c5dd2e3ac2ddb1fd6b099b9b5c91d5cdd4a02e62d4eb8e575096f7f4c6a @@ -1151,9 +1164,10 @@ test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOri test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.ql 150898b6e55cc74b9ddb947f136b5a7f538ee5598928c5724d80e3ddf93ae499 66e0bd7b32df8f5bbe229cc02be6a07cb9ec0fe8b444dad3f5b32282a90551ee test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql 2f99917a95a85a932f423cba5a619a51cada8e704b93c54b0a8cb5d7a1129fa1 759bd02347c898139ac7dabe207988eea125be24d3e4c2282b791ec810c16ea7 test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql 615acfcbc475b5c2ffa8e46d023fc2e19d29ee879b4949644a7f0b25c33125e6 81b037af5dcb8a0489a7a81a0ad668ca781b71d4406c123c4f1c4f558722f13e -test/extractor-tests/generated/TypeAlias/TypeAlias.ql 637d4c982691942fabcc99ef4a1765ec794d1271bdd376addb55c9d7ea31230e ef81773e2f1260f66f23ce537080c3273b1cf74f96fba37403d34dc1ee1e0458 +test/extractor-tests/generated/TypeAlias/TypeAlias.ql b7c4adb8322a2032657f4417471e7001dbe8236da79af963d6ac5ddf6c4e7c8a 7504a27f32fd76520398c95abd6adeca67be5b71ff4b8abdd086eb29c0d698fc test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql ecf4b45ef4876e46252785d2e42b11207e65757cdb26e60decafd765e7b03b49 21bb4d635d3d38abd731b9ad1a2b871f8e0788f48a03e9572823abeea0ea9382 test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql cd66db5b43bcb46a6cf6db8c262fd524017ef67cdb67c010af61fab303e3bc65 2aebae618448530ec537709c5381359ea98399db83eeae3be88825ebefa1829d +test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql dc797269de5b29409484577d4f2e4de9462a1001232a57c141c1e9d3f0e7ad74 d2c3d55fcdf077523ceb899d11d479db15b449b5e82eb8610cb637ae79ef74e6 test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql fe9c4132e65b54eb071b779e508e9ed0081d860df20f8d4748332b45b7215fd5 448c10c3f8f785c380ce430996af4040419d8dccfa86f75253b6af83d2c8f1c9 test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql e7e936458dce5a8c6675485a49e2769b6dbff29c112ed744c880e0fc7ae740ef e5fcf3a33d2416db6b0a73401a3cbc0cece22d0e06794e01a1645f2b3bca9306 test/extractor-tests/generated/TypeAlias/TypeAlias_getName.ql 757deb3493764677de3eb1ff7cc119a469482b7277ed01eb8aa0c38b4a8797fb 5efed24a6968544b10ff44bfac7d0432a9621bde0e53b8477563d600d4847825 @@ -1176,18 +1190,20 @@ test/extractor-tests/generated/TypeParam/TypeParam_getName.ql 9d5b6d6a9f2a5793e2 test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.ql 080a6b370ad460bf128fdfd632aa443af2ad91c3483e192ad756eb234dbfa4d8 8b048d282963f670db357f1eef9b8339f83d03adf57489a22b441d5c782aff62 test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql 4ad6ed0c803fb4f58094a55b866940b947b16259756c674200172551ee6546e0 d3270bdcc4c026325159bd2a59848eb51d96298b2bf21402ea0a83ac1ea6d291 test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql d8502be88bcd97465f387c410b5078a4709e32b2baa556a4918ea5e609c40dd7 b238dc37404254e3e7806d50a7b1453e17e71da122931331b16a55853d3a843f -test/extractor-tests/generated/Union/Union.ql 2cbbdf085667e0741322cd21288d7987d6bdba72fb1b930aaf589494f5f9ea5e 2e64f70926141ea56aa14cc3122c522407f2f45ab9dc364ef4a3e3caf171befa +test/extractor-tests/generated/Union/Union.ql ef8005f4ac5d3e6f308b3bb1a1861403674cbb1b72e6558573e9506865ae985e 88933d0f9500ce61a847fbb792fd778d77a4e7379fc353d2a9f5060773eda64f test/extractor-tests/generated/Union/Union_getAttr.ql 42fa0878a6566208863b1d884baf7b68b46089827fdb1dbbfacbfccf5966a9a2 54aa94f0281ca80d1a4bdb0e2240f4384af2ab8d50f251875d1877d0964579fc test/extractor-tests/generated/Union/Union_getCrateOrigin.ql c218308cf17b1490550229a725542d248617661b1a5fa14e9b0e18d29c5ecc00 e0489242c8ff7aa4dbfdebcd46a5e0d9bea0aa618eb0617e76b9b6f863a2907a +test/extractor-tests/generated/Union/Union_getExpanded.ql a096814a812662a419b50aa9fd66ab2f6be9d4471df3d50351e9d0bcf061f194 51b406644ee819d74f1b80cdb3a451fa1fad6e6a65d89fa6e3dc87516d9d4292 test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql 6268ddb68c3e05906e3fc85e40635925b84e5c7290746ded9c6814d362033068 04473b3b9891012e95733463018db8da0e96659ea0b10458b33dc857c091d278 test/extractor-tests/generated/Union/Union_getGenericParamList.ql c55156ae26b766e385be7d21e67f8c3c45c29274201c93d660077fcc47e1ceee 4c4d338e17c32876ef6e51fd19cff67d125dd89c10e939dfaadbac824bef6a68 test/extractor-tests/generated/Union/Union_getName.ql 17247183e1a8c8bbb15e67120f65ca323630bddeb614fa8a48e1e74319f8ed37 e21c2a0205bc991ba86f3e508451ef31398bdf5441f6d2a3f72113aaae9e152b test/extractor-tests/generated/Union/Union_getStructFieldList.ql ae42dec53a42bcb712ec5e94a3137a5c0b7743ea3b635e44e7af8a0d59e59182 61b34bb8d6e05d9eb34ce353eef7cc07c684179bf2e3fdf9f5541e04bef41425 test/extractor-tests/generated/Union/Union_getVisibility.ql 86628736a677343d816e541ba76db02bdae3390f8367c09be3c1ff46d1ae8274 6514cdf4bfad8d9c968de290cc981be1063c0919051822cc6fdb03e8a891f123 test/extractor-tests/generated/Union/Union_getWhereClause.ql 508e68ffa87f4eca2e2f9c894d215ea76070d628a294809dc267082b9e36a359 29da765d11794441a32a5745d4cf594495a9733e28189d898f64da864817894f -test/extractor-tests/generated/Use/Use.ql b20f6221e6ee731718eb9a02fa765f298ad285f23393a3df0119707c48edd8b3 9ab45d9b3c51c6181a6609b72ebd763c336fee01b11757e7f044257510bd7f3f +test/extractor-tests/generated/Use/Use.ql 9a0a5efb8118830355fb90bc850de011ae8586c12dce92cfc8f39a870dd52100 7fd580282752a8e6a8ea9ac33ff23a950304030bc32cfbd3b9771368723fb8d6 test/extractor-tests/generated/Use/Use_getAttr.ql 6d43c25401398108553508aabb32ca476b3072060bb73eb07b1b60823a01f964 84e6f6953b4aa9a7472082f0a4f2df26ab1d157529ab2c661f0031603c94bb1d test/extractor-tests/generated/Use/Use_getCrateOrigin.ql 912ebc1089aa3390d4142a39ea73d5490eae525d1fb51654fdd05e9dd48a94b6 c59e36362016ae536421e6d517889cea0b2670818ea1f9e997796f51a9b381e2 +test/extractor-tests/generated/Use/Use_getExpanded.ql 386631ee0ee002d3d6f7f6e48c87d2bb2c4349aa3692d16730c0bc31853b11cf 50e03f47cc1099d7f2f27724ea82d3b69b85e826b66736361b0cbeceb88f88a4 test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql ccfde95c861cf4199e688b6efeeee9dab58a27cfecd520e39cc20f89143c03c9 6ff93df4134667d7cb74ae7efe102fe2db3ad4c67b4b5a0f8955f21997806f16 test/extractor-tests/generated/Use/Use_getUseTree.ql 1dfe6bb40b29fbf823d67fecfc36ba928b43f17c38227b8eedf19fa252edf3af aacdcc4cf418ef1eec267287d2af905fe73f5bcfb080ef5373d08da31c608720 test/extractor-tests/generated/Use/Use_getVisibility.ql 587f80acdd780042c48aeb347004be5e9fd9df063d263e6e4f2b660c48c53a8f 0c2c04f95838bca93dfe93fa208e1df7677797efc62b4e8052a4f9c5d20831dd diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 382565f3b86..9fb82167e79 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -742,6 +742,7 @@ /test/extractor-tests/generated/Const/Const_getAttr.ql linguist-generated /test/extractor-tests/generated/Const/Const_getBody.ql linguist-generated /test/extractor-tests/generated/Const/Const_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Const/Const_getExpanded.ql linguist-generated /test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Const/Const_getName.ql linguist-generated /test/extractor-tests/generated/Const/Const_getTypeRepr.ql linguist-generated @@ -764,6 +765,7 @@ /test/extractor-tests/generated/Enum/Enum.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getAttr.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Enum/Enum_getExpanded.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getName.ql linguist-generated @@ -776,11 +778,13 @@ /test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql linguist-generated /test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql linguist-generated /test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql linguist-generated /test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.ql linguist-generated @@ -825,6 +829,7 @@ /test/extractor-tests/generated/Function/Function_getAttr.ql linguist-generated /test/extractor-tests/generated/Function/Function_getBody.ql linguist-generated /test/extractor-tests/generated/Function/Function_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Function/Function_getExpanded.ql linguist-generated /test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Function/Function_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Function/Function_getName.ql linguist-generated @@ -849,6 +854,7 @@ /test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getAttr.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Impl/Impl_getExpanded.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getSelfTy.ql linguist-generated @@ -908,6 +914,7 @@ /test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getName.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.ql linguist-generated @@ -920,6 +927,7 @@ /test/extractor-tests/generated/MacroRules/MacroRules.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getName.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql linguist-generated @@ -958,6 +966,7 @@ /test/extractor-tests/generated/Module/Module.ql linguist-generated /test/extractor-tests/generated/Module/Module_getAttr.ql linguist-generated /test/extractor-tests/generated/Module/Module_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Module/Module_getExpanded.ql linguist-generated /test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Module/Module_getItemList.ql linguist-generated /test/extractor-tests/generated/Module/Module_getName.ql linguist-generated @@ -1059,6 +1068,7 @@ /test/extractor-tests/generated/Static/Static_getAttr.ql linguist-generated /test/extractor-tests/generated/Static/Static_getBody.ql linguist-generated /test/extractor-tests/generated/Static/Static_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Static/Static_getExpanded.ql linguist-generated /test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Static/Static_getName.ql linguist-generated /test/extractor-tests/generated/Static/Static_getTypeRepr.ql linguist-generated @@ -1070,6 +1080,7 @@ /test/extractor-tests/generated/Struct/Struct.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getAttr.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Struct/Struct_getExpanded.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getFieldList.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql linguist-generated @@ -1117,6 +1128,7 @@ /test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getAttr.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Trait/Trait_getExpanded.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getName.ql linguist-generated @@ -1126,6 +1138,7 @@ /test/extractor-tests/generated/TraitAlias/TraitAlias.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias_getName.ql linguist-generated @@ -1156,6 +1169,7 @@ /test/extractor-tests/generated/TypeAlias/TypeAlias.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias_getName.ql linguist-generated @@ -1181,6 +1195,7 @@ /test/extractor-tests/generated/Union/Union.ql linguist-generated /test/extractor-tests/generated/Union/Union_getAttr.ql linguist-generated /test/extractor-tests/generated/Union/Union_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Union/Union_getExpanded.ql linguist-generated /test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Union/Union_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Union/Union_getName.ql linguist-generated @@ -1190,6 +1205,7 @@ /test/extractor-tests/generated/Use/Use.ql linguist-generated /test/extractor-tests/generated/Use/Use_getAttr.ql linguist-generated /test/extractor-tests/generated/Use/Use_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Use/Use_getExpanded.ql linguist-generated /test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Use/Use_getUseTree.ql linguist-generated /test/extractor-tests/generated/Use/Use_getVisibility.ql linguist-generated diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll index 12ef6847b82..8631e242e82 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll @@ -1818,16 +1818,6 @@ module MakeCfgNodes Input> { * Holds if `getTokenTree()` exists. */ predicate hasTokenTree() { exists(this.getTokenTree()) } - - /** - * Gets the expanded of this macro call, if it exists. - */ - AstNode getExpanded() { result = node.getExpanded() } - - /** - * Holds if `getExpanded()` exists. - */ - predicate hasExpanded() { exists(this.getExpanded()) } } final private class ParentMacroExpr extends ParentAstNode, MacroExpr { diff --git a/rust/ql/lib/codeql/rust/elements/Item.qll b/rust/ql/lib/codeql/rust/elements/Item.qll index b95620551ba..30c11c6481e 100644 --- a/rust/ql/lib/codeql/rust/elements/Item.qll +++ b/rust/ql/lib/codeql/rust/elements/Item.qll @@ -5,6 +5,7 @@ private import internal.ItemImpl import codeql.rust.elements.Addressable +import codeql.rust.elements.AstNode import codeql.rust.elements.Stmt /** diff --git a/rust/ql/lib/codeql/rust/elements/MacroCall.qll b/rust/ql/lib/codeql/rust/elements/MacroCall.qll index b0985ea3fed..5399f1f2a87 100644 --- a/rust/ql/lib/codeql/rust/elements/MacroCall.qll +++ b/rust/ql/lib/codeql/rust/elements/MacroCall.qll @@ -5,7 +5,6 @@ private import internal.MacroCallImpl import codeql.rust.elements.AssocItem -import codeql.rust.elements.AstNode import codeql.rust.elements.Attr import codeql.rust.elements.ExternItem import codeql.rust.elements.Item diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Item.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Item.qll index 39149c25258..e93d25f86f3 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Item.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Item.qll @@ -7,6 +7,7 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AddressableImpl::Impl as AddressableImpl +import codeql.rust.elements.AstNode import codeql.rust.elements.internal.StmtImpl::Impl as StmtImpl /** @@ -22,5 +23,17 @@ module Generated { * INTERNAL: Do not reference the `Generated::Item` class directly. * Use the subclass `Item`, where the following predicates are available. */ - class Item extends Synth::TItem, StmtImpl::Stmt, AddressableImpl::Addressable { } + class Item extends Synth::TItem, StmtImpl::Stmt, AddressableImpl::Addressable { + /** + * Gets the expanded attribute or procedural macro call of this item, if it exists. + */ + AstNode getExpanded() { + result = Synth::convertAstNodeFromRaw(Synth::convertItemToRaw(this).(Raw::Item).getExpanded()) + } + + /** + * Holds if `getExpanded()` exists. + */ + final predicate hasExpanded() { exists(this.getExpanded()) } + } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroCall.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroCall.qll index d95a29cd302..30717a1a391 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroCall.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroCall.qll @@ -7,7 +7,6 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AssocItemImpl::Impl as AssocItemImpl -import codeql.rust.elements.AstNode import codeql.rust.elements.Attr import codeql.rust.elements.internal.ExternItemImpl::Impl as ExternItemImpl import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl @@ -77,20 +76,5 @@ module Generated { * Holds if `getTokenTree()` exists. */ final predicate hasTokenTree() { exists(this.getTokenTree()) } - - /** - * Gets the expanded of this macro call, if it exists. - */ - AstNode getExpanded() { - result = - Synth::convertAstNodeFromRaw(Synth::convertMacroCallToRaw(this) - .(Raw::MacroCall) - .getExpanded()) - } - - /** - * Holds if `getExpanded()` exists. - */ - final predicate hasExpanded() { exists(this.getExpanded()) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll index 4268ef3f840..d84b28f9117 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -2204,18 +2204,21 @@ private module Impl { } private Element getImmediateChildOfItem(Item e, int index, string partialPredicateCall) { - exists(int b, int bStmt, int bAddressable, int n | + exists(int b, int bStmt, int bAddressable, int n, int nExpanded | b = 0 and bStmt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfStmt(e, i, _)) | i) and bAddressable = bStmt + 1 + max(int i | i = -1 or exists(getImmediateChildOfAddressable(e, i, _)) | i) and n = bAddressable and + nExpanded = n + 1 and ( none() or result = getImmediateChildOfStmt(e, index - b, partialPredicateCall) or result = getImmediateChildOfAddressable(e, index - bStmt, partialPredicateCall) + or + index = n and result = e.getExpanded() and partialPredicateCall = "Expanded()" ) ) } @@ -3495,8 +3498,7 @@ private module Impl { private Element getImmediateChildOfMacroCall(MacroCall e, int index, string partialPredicateCall) { exists( - int b, int bAssocItem, int bExternItem, int bItem, int n, int nAttr, int nPath, - int nTokenTree, int nExpanded + int b, int bAssocItem, int bExternItem, int bItem, int n, int nAttr, int nPath, int nTokenTree | b = 0 and bAssocItem = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAssocItem(e, i, _)) | i) and @@ -3507,7 +3509,6 @@ private module Impl { nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nPath = nAttr + 1 and nTokenTree = nPath + 1 and - nExpanded = nTokenTree + 1 and ( none() or @@ -3523,8 +3524,6 @@ private module Impl { index = nAttr and result = e.getPath() and partialPredicateCall = "Path()" or index = nPath and result = e.getTokenTree() and partialPredicateCall = "TokenTree()" - or - index = nTokenTree and result = e.getExpanded() and partialPredicateCall = "Expanded()" ) ) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index 3bd57ae9862..275f143083a 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -2180,7 +2180,12 @@ module Raw { * todo!() * ``` */ - class Item extends @item, Stmt, Addressable { } + class Item extends @item, Stmt, Addressable { + /** + * Gets the expanded attribute or procedural macro call of this item, if it exists. + */ + AstNode getExpanded() { item_expandeds(this, result) } + } /** * INTERNAL: Do not use. @@ -3620,11 +3625,6 @@ module Raw { * Gets the token tree of this macro call, if it exists. */ TokenTree getTokenTree() { macro_call_token_trees(this, result) } - - /** - * Gets the expanded of this macro call, if it exists. - */ - AstNode getExpanded() { macro_call_expandeds(this, result) } } /** diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index e8707b675dc..f78cb8f2ab3 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -1959,6 +1959,12 @@ infer_type_reprs( | @use ; +#keyset[id] +item_expandeds( + int id: @item ref, + int expanded: @ast_node ref +); + @labelable_expr = @block_expr | @looping_expr @@ -3082,12 +3088,6 @@ macro_call_token_trees( int token_tree: @token_tree ref ); -#keyset[id] -macro_call_expandeds( - int id: @macro_call ref, - int expanded: @ast_node ref -); - macro_defs( unique int id: @macro_def ); diff --git a/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/old.dbscheme b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/old.dbscheme new file mode 100644 index 00000000000..e8707b675dc --- /dev/null +++ b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/old.dbscheme @@ -0,0 +1,3606 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @macro_stmts +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id] +crate_modules( + int id: @crate ref, + int module: @module ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +macro_stmts( + unique int id: @macro_stmts +); + +#keyset[id] +macro_stmts_exprs( + int id: @macro_stmts ref, + int expr: @expr ref +); + +#keyset[id, index] +macro_stmts_statements( + int id: @macro_stmts ref, + int index: int ref, + int statement: @stmt ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_expandeds( + int id: @macro_call ref, + int expanded: @ast_node ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme new file mode 100644 index 00000000000..f78cb8f2ab3 --- /dev/null +++ b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme @@ -0,0 +1,3606 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @macro_stmts +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id] +crate_modules( + int id: @crate ref, + int module: @module ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +macro_stmts( + unique int id: @macro_stmts +); + +#keyset[id] +macro_stmts_exprs( + int id: @macro_stmts ref, + int expr: @expr ref +); + +#keyset[id, index] +macro_stmts_statements( + int id: @macro_stmts ref, + int index: int ref, + int statement: @stmt ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +#keyset[id] +item_expandeds( + int id: @item ref, + int expanded: @ast_node ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties new file mode 100644 index 00000000000..5834a727f49 --- /dev/null +++ b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties @@ -0,0 +1,4 @@ +description: Add `expanded` to all `@item` elements +compatibility: backwards +item_expandeds.rel: reorder macro_call_expandeds.rel (@macro_call id, @ast_node expanded) id expanded +macro_call_expandeds.rel: delete diff --git a/rust/ql/test/extractor-tests/attribute_macro_expansion/attr_macro_expansion.rs b/rust/ql/test/extractor-tests/attribute_macro_expansion/attr_macro_expansion.rs new file mode 100644 index 00000000000..8ccaa6276c6 --- /dev/null +++ b/rust/ql/test/extractor-tests/attribute_macro_expansion/attr_macro_expansion.rs @@ -0,0 +1,2 @@ +#[ctor::ctor] +fn foo() {} diff --git a/rust/ql/test/extractor-tests/attribute_macro_expansion/options.yml b/rust/ql/test/extractor-tests/attribute_macro_expansion/options.yml new file mode 100644 index 00000000000..07ec8d1b4eb --- /dev/null +++ b/rust/ql/test/extractor-tests/attribute_macro_expansion/options.yml @@ -0,0 +1,2 @@ +qltest_dependencies: + - ctor = { version = "0.2.9" } diff --git a/rust/ql/test/extractor-tests/attribute_macro_expansion/test.expected b/rust/ql/test/extractor-tests/attribute_macro_expansion/test.expected new file mode 100644 index 00000000000..c6815fb3828 --- /dev/null +++ b/rust/ql/test/extractor-tests/attribute_macro_expansion/test.expected @@ -0,0 +1,2 @@ +| attr_macro_expansion.rs:1:1:2:11 | fn foo | attr_macro_expansion.rs:2:4:2:6 | Static | +| attr_macro_expansion.rs:1:1:2:11 | fn foo | attr_macro_expansion.rs:2:4:2:10 | fn foo | diff --git a/rust/ql/test/extractor-tests/attribute_macro_expansion/test.ql b/rust/ql/test/extractor-tests/attribute_macro_expansion/test.ql new file mode 100644 index 00000000000..f8d2f17b75e --- /dev/null +++ b/rust/ql/test/extractor-tests/attribute_macro_expansion/test.ql @@ -0,0 +1,6 @@ +import rust +import TestUtils + +from Item i, MacroItems items, Item expanded +where toBeTested(i) and i.getExpanded() = items and items.getAnItem() = expanded +select i, expanded diff --git a/rust/ql/test/extractor-tests/generated/Const/Const.ql b/rust/ql/test/extractor-tests/generated/Const/Const.ql index f1509aac368..859bc139866 100644 --- a/rust/ql/test/extractor-tests/generated/Const/Const.ql +++ b/rust/ql/test/extractor-tests/generated/Const/Const.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - Const x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasBody, string isConst, string isDefault, string hasName, string hasTypeRepr, - string hasVisibility + Const x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasBody, string isConst, string isDefault, string hasName, + string hasTypeRepr, string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -15,6 +15,7 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and (if x.isConst() then isConst = "yes" else isConst = "no") and @@ -23,5 +24,6 @@ where (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, "isConst:", isConst, "isDefault:", - isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, "hasVisibility:", hasVisibility + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, + "isConst:", isConst, "isDefault:", isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, + "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.ql new file mode 100644 index 00000000000..8f608b857bc --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Const x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql index 3468056c072..76f3c2941b0 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - Enum x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasGenericParamList, string hasName, string hasVariantList, string hasVisibility, - string hasWhereClause + Enum x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasGenericParamList, string hasName, string hasVariantList, + string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,6 +15,7 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and @@ -22,6 +23,6 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "hasName:", - hasName, "hasVariantList:", hasVariantList, "hasVisibility:", hasVisibility, "hasWhereClause:", - hasWhereClause + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", + hasGenericParamList, "hasName:", hasName, "hasVariantList:", hasVariantList, "hasVisibility:", + hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.ql new file mode 100644 index 00000000000..428223feaae --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Enum x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql index 3d58a471412..b1fa57580a1 100644 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql +++ b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql @@ -3,8 +3,8 @@ import codeql.rust.elements import TestUtils from - ExternBlock x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAbi, - int getNumberOfAttrs, string hasExternItemList, string isUnsafe + ExternBlock x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + string hasAbi, int getNumberOfAttrs, string hasExternItemList, string isUnsafe where toBeTested(x) and not x.isUnknown() and @@ -14,10 +14,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and (if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasExternItemList() then hasExternItemList = "yes" else hasExternItemList = "no") and if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAbi:", hasAbi, "getNumberOfAttrs:", getNumberOfAttrs, "hasExternItemList:", hasExternItemList, - "isUnsafe:", isUnsafe + "hasExpanded:", hasExpanded, "hasAbi:", hasAbi, "getNumberOfAttrs:", getNumberOfAttrs, + "hasExternItemList:", hasExternItemList, "isUnsafe:", isUnsafe diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql new file mode 100644 index 00000000000..e7819652b38 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from ExternBlock x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql index c8250d86b4b..03ef38925ea 100644 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql +++ b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql @@ -3,8 +3,8 @@ import codeql.rust.elements import TestUtils from - ExternCrate x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasIdentifier, string hasRename, string hasVisibility + ExternCrate x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasIdentifier, string hasRename, string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -14,10 +14,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and (if x.hasRename() then hasRename = "yes" else hasRename = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasIdentifier:", hasIdentifier, "hasRename:", hasRename, - "hasVisibility:", hasVisibility + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasIdentifier:", + hasIdentifier, "hasRename:", hasRename, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql new file mode 100644 index 00000000000..28cdb0138d9 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from ExternCrate x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.ql b/rust/ql/test/extractor-tests/generated/Function/Function.ql index a6e969111fb..162f8af6d75 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.ql +++ b/rust/ql/test/extractor-tests/generated/Function/Function.ql @@ -4,9 +4,9 @@ import TestUtils from Function x, string hasParamList, int getNumberOfAttrs, string hasExtendedCanonicalPath, - string hasCrateOrigin, string hasAbi, string hasBody, string hasGenericParamList, string isAsync, - string isConst, string isDefault, string isGen, string isUnsafe, string hasName, - string hasRetType, string hasVisibility, string hasWhereClause + string hasCrateOrigin, string hasExpanded, string hasAbi, string hasBody, + string hasGenericParamList, string isAsync, string isConst, string isDefault, string isGen, + string isUnsafe, string hasName, string hasRetType, string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -18,6 +18,7 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and (if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and @@ -32,7 +33,7 @@ where if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAbi:", hasAbi, "hasBody:", hasBody, "hasGenericParamList:", hasGenericParamList, "isAsync:", - isAsync, "isConst:", isConst, "isDefault:", isDefault, "isGen:", isGen, "isUnsafe:", isUnsafe, - "hasName:", hasName, "hasRetType:", hasRetType, "hasVisibility:", hasVisibility, - "hasWhereClause:", hasWhereClause + "hasExpanded:", hasExpanded, "hasAbi:", hasAbi, "hasBody:", hasBody, "hasGenericParamList:", + hasGenericParamList, "isAsync:", isAsync, "isConst:", isConst, "isDefault:", isDefault, "isGen:", + isGen, "isUnsafe:", isUnsafe, "hasName:", hasName, "hasRetType:", hasRetType, "hasVisibility:", + hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.ql new file mode 100644 index 00000000000..7a994831e7d --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Function x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl.ql index 5af0d0da0d4..cc7ffd76208 100644 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl.ql +++ b/rust/ql/test/extractor-tests/generated/Impl/Impl.ql @@ -3,9 +3,10 @@ import codeql.rust.elements import TestUtils from - Impl x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAssocItemList, - int getNumberOfAttrs, string hasGenericParamList, string isConst, string isDefault, - string isUnsafe, string hasSelfTy, string hasTrait, string hasVisibility, string hasWhereClause + Impl x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + string hasAssocItemList, int getNumberOfAttrs, string hasGenericParamList, string isConst, + string isDefault, string isUnsafe, string hasSelfTy, string hasTrait, string hasVisibility, + string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,6 +16,7 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and (if x.hasAssocItemList() then hasAssocItemList = "yes" else hasAssocItemList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and @@ -26,7 +28,7 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAssocItemList:", hasAssocItemList, "getNumberOfAttrs:", getNumberOfAttrs, - "hasGenericParamList:", hasGenericParamList, "isConst:", isConst, "isDefault:", isDefault, - "isUnsafe:", isUnsafe, "hasSelfTy:", hasSelfTy, "hasTrait:", hasTrait, "hasVisibility:", - hasVisibility, "hasWhereClause:", hasWhereClause + "hasExpanded:", hasExpanded, "hasAssocItemList:", hasAssocItemList, "getNumberOfAttrs:", + getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "isConst:", isConst, "isDefault:", + isDefault, "isUnsafe:", isUnsafe, "hasSelfTy:", hasSelfTy, "hasTrait:", hasTrait, + "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.ql new file mode 100644 index 00000000000..dc85f4c06fd --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Impl x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql index 56044c127c2..c9fa32e3c00 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql @@ -3,8 +3,8 @@ import codeql.rust.elements import TestUtils from - MacroCall x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasPath, string hasTokenTree, string hasExpanded + MacroCall x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasPath, string hasTokenTree where toBeTested(x) and not x.isUnknown() and @@ -14,10 +14,10 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasPath() then hasPath = "yes" else hasPath = "no") and - (if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no") and - if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no" + if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasPath:", hasPath, "hasTokenTree:", hasTokenTree, - "hasExpanded:", hasExpanded + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasPath:", hasPath, + "hasTokenTree:", hasTokenTree diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql index 957d5b9ea9e..ed235d8312a 100644 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql +++ b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql @@ -3,8 +3,8 @@ import codeql.rust.elements import TestUtils from - MacroDef x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasArgs, - int getNumberOfAttrs, string hasBody, string hasName, string hasVisibility + MacroDef x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + string hasArgs, int getNumberOfAttrs, string hasBody, string hasName, string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -14,11 +14,12 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and (if x.hasArgs() then hasArgs = "yes" else hasArgs = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasArgs:", hasArgs, "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, "hasName:", - hasName, "hasVisibility:", hasVisibility + "hasExpanded:", hasExpanded, "hasArgs:", hasArgs, "getNumberOfAttrs:", getNumberOfAttrs, + "hasBody:", hasBody, "hasName:", hasName, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql new file mode 100644 index 00000000000..cc97ad20927 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from MacroDef x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql index 7bdc462c01c..a04df90d75d 100644 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql +++ b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql @@ -3,8 +3,8 @@ import codeql.rust.elements import TestUtils from - MacroRules x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasName, string hasTokenTree, string hasVisibility + MacroRules x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasName, string hasTokenTree, string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -14,10 +14,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasName() then hasName = "yes" else hasName = "no") and (if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasName:", hasName, "hasTokenTree:", hasTokenTree, - "hasVisibility:", hasVisibility + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasName:", hasName, + "hasTokenTree:", hasTokenTree, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql new file mode 100644 index 00000000000..4fdf9f94469 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from MacroRules x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/Module/Module.ql b/rust/ql/test/extractor-tests/generated/Module/Module.ql index a33b7daa895..8cf7f20a20f 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module.ql +++ b/rust/ql/test/extractor-tests/generated/Module/Module.ql @@ -3,8 +3,8 @@ import codeql.rust.elements import TestUtils from - Module x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasItemList, string hasName, string hasVisibility + Module x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasItemList, string hasName, string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -14,10 +14,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasItemList() then hasItemList = "yes" else hasItemList = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasItemList:", hasItemList, "hasName:", hasName, - "hasVisibility:", hasVisibility + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasItemList:", hasItemList, + "hasName:", hasName, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.ql new file mode 100644 index 00000000000..139b6d007dd --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Module x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/Static/Static.ql b/rust/ql/test/extractor-tests/generated/Static/Static.ql index fa0776ca377..84a5077826b 100644 --- a/rust/ql/test/extractor-tests/generated/Static/Static.ql +++ b/rust/ql/test/extractor-tests/generated/Static/Static.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - Static x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasBody, string isMut, string isStatic, string isUnsafe, string hasName, - string hasTypeRepr, string hasVisibility + Static x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasBody, string isMut, string isStatic, string isUnsafe, + string hasName, string hasTypeRepr, string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -15,6 +15,7 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and (if x.isMut() then isMut = "yes" else isMut = "no") and @@ -24,6 +25,6 @@ where (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, "isMut:", isMut, "isStatic:", - isStatic, "isUnsafe:", isUnsafe, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, - "hasVisibility:", hasVisibility + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, "isMut:", + isMut, "isStatic:", isStatic, "isUnsafe:", isUnsafe, "hasName:", hasName, "hasTypeRepr:", + hasTypeRepr, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.ql new file mode 100644 index 00000000000..2f8c034f4c9 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Static x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql index d2b3a349386..5e9936dd07f 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - Struct x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasFieldList, string hasGenericParamList, string hasName, string hasVisibility, - string hasWhereClause + Struct x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasFieldList, string hasGenericParamList, string hasName, + string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,6 +15,7 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasFieldList() then hasFieldList = "yes" else hasFieldList = "no") and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and @@ -22,6 +23,6 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasFieldList:", hasFieldList, "hasGenericParamList:", - hasGenericParamList, "hasName:", hasName, "hasVisibility:", hasVisibility, "hasWhereClause:", - hasWhereClause + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasFieldList:", hasFieldList, + "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, "hasVisibility:", hasVisibility, + "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.ql new file mode 100644 index 00000000000..cd9b80356c4 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Struct x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait.ql index b4548cddcee..c10c3685fc9 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait.ql +++ b/rust/ql/test/extractor-tests/generated/Trait/Trait.ql @@ -3,9 +3,10 @@ import codeql.rust.elements import TestUtils from - Trait x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAssocItemList, - int getNumberOfAttrs, string hasGenericParamList, string isAuto, string isUnsafe, string hasName, - string hasTypeBoundList, string hasVisibility, string hasWhereClause + Trait x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + string hasAssocItemList, int getNumberOfAttrs, string hasGenericParamList, string isAuto, + string isUnsafe, string hasName, string hasTypeBoundList, string hasVisibility, + string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,6 +16,7 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and (if x.hasAssocItemList() then hasAssocItemList = "yes" else hasAssocItemList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and @@ -25,7 +27,7 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAssocItemList:", hasAssocItemList, "getNumberOfAttrs:", getNumberOfAttrs, - "hasGenericParamList:", hasGenericParamList, "isAuto:", isAuto, "isUnsafe:", isUnsafe, "hasName:", - hasName, "hasTypeBoundList:", hasTypeBoundList, "hasVisibility:", hasVisibility, - "hasWhereClause:", hasWhereClause + "hasExpanded:", hasExpanded, "hasAssocItemList:", hasAssocItemList, "getNumberOfAttrs:", + getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "isAuto:", isAuto, "isUnsafe:", + isUnsafe, "hasName:", hasName, "hasTypeBoundList:", hasTypeBoundList, "hasVisibility:", + hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.ql new file mode 100644 index 00000000000..22425676ccb --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Trait x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql index 80fe86e2749..d01a2bf22c7 100644 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql +++ b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - TraitAlias x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasGenericParamList, string hasName, string hasTypeBoundList, string hasVisibility, - string hasWhereClause + TraitAlias x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasGenericParamList, string hasName, string hasTypeBoundList, + string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,6 +15,7 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and @@ -22,6 +23,6 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "hasName:", - hasName, "hasTypeBoundList:", hasTypeBoundList, "hasVisibility:", hasVisibility, - "hasWhereClause:", hasWhereClause + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", + hasGenericParamList, "hasName:", hasName, "hasTypeBoundList:", hasTypeBoundList, "hasVisibility:", + hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql new file mode 100644 index 00000000000..3a8abe17f82 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from TraitAlias x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql index 16e92ed7e02..51544c36a82 100644 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - TypeAlias x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasGenericParamList, string isDefault, string hasName, string hasTypeRepr, - string hasTypeBoundList, string hasVisibility, string hasWhereClause + TypeAlias x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasGenericParamList, string isDefault, string hasName, + string hasTypeRepr, string hasTypeBoundList, string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,6 +15,7 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.isDefault() then isDefault = "yes" else isDefault = "no") and @@ -24,6 +25,7 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "isDefault:", - isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, "hasTypeBoundList:", - hasTypeBoundList, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", + hasGenericParamList, "isDefault:", isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, + "hasTypeBoundList:", hasTypeBoundList, "hasVisibility:", hasVisibility, "hasWhereClause:", + hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql new file mode 100644 index 00000000000..2a385759422 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from TypeAlias x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/Union/Union.ql b/rust/ql/test/extractor-tests/generated/Union/Union.ql index a514017b734..a5eb910d0b3 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union.ql +++ b/rust/ql/test/extractor-tests/generated/Union/Union.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - Union x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasGenericParamList, string hasName, string hasStructFieldList, string hasVisibility, - string hasWhereClause + Union x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasGenericParamList, string hasName, string hasStructFieldList, + string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,6 +15,7 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and @@ -22,6 +23,6 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "hasName:", - hasName, "hasStructFieldList:", hasStructFieldList, "hasVisibility:", hasVisibility, - "hasWhereClause:", hasWhereClause + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", + hasGenericParamList, "hasName:", hasName, "hasStructFieldList:", hasStructFieldList, + "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.ql new file mode 100644 index 00000000000..d76e97d362a --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Union x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/ql/test/extractor-tests/generated/Use/Use.ql b/rust/ql/test/extractor-tests/generated/Use/Use.ql index b88b3a69332..d88546c73fe 100644 --- a/rust/ql/test/extractor-tests/generated/Use/Use.ql +++ b/rust/ql/test/extractor-tests/generated/Use/Use.ql @@ -3,8 +3,8 @@ import codeql.rust.elements import TestUtils from - Use x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasUseTree, string hasVisibility + Use x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + int getNumberOfAttrs, string hasUseTree, string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -14,8 +14,10 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasUseTree() then hasUseTree = "yes" else hasUseTree = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasUseTree:", hasUseTree, "hasVisibility:", hasVisibility + "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasUseTree:", hasUseTree, + "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.ql new file mode 100644 index 00000000000..39d2fa9f4f6 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Use x +where toBeTested(x) and not x.isUnknown() +select x, x.getExpanded() diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index a5c3ff56651..d6289e795c4 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -1232,7 +1232,6 @@ class _: todo!() ``` """ - expanded: optional[AstNode] | child | rust.detach @annotate(MacroDef) @@ -1945,4 +1944,4 @@ class FormatArgument(Locatable): @annotate(Item, add_bases=(Addressable,)) class _: - pass + expanded: optional[AstNode] | child | rust.detach | doc("expanded attribute or procedural macro call of this item") From adeaceb7afe7e3a9b4c8c97bf80a73f4a1784307 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 25 Apr 2025 17:41:13 +0200 Subject: [PATCH 089/656] Rust: accept test changes --- .../extractor-tests/generated/Function/Function.expected | 4 ++-- .../extractor-tests/generated/MacroCall/MacroCall.expected | 2 +- .../test/extractor-tests/generated/Module/Module.expected | 6 +++--- rust/ql/test/extractor-tests/generated/Trait/Trait.expected | 4 ++-- .../extractor-tests/generated/TypeAlias/TypeAlias.expected | 4 ++-- .../library-tests/dataflow/sources/TaintSources.expected | 1 + 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.expected b/rust/ql/test/extractor-tests/generated/Function/Function.expected index b96996beef9..e37c985985a 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.expected +++ b/rust/ql/test/extractor-tests/generated/Function/Function.expected @@ -1,2 +1,2 @@ -| gen_function.rs:3:1:4:38 | fn foo | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAbi: | no | hasBody: | yes | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | yes | hasVisibility: | no | hasWhereClause: | no | -| gen_function.rs:7:5:7:13 | fn bar | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAbi: | no | hasBody: | no | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_function.rs:3:1:4:38 | fn foo | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | hasAbi: | no | hasBody: | yes | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_function.rs:7:5:7:13 | fn bar | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | hasAbi: | no | hasBody: | no | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | no | hasVisibility: | no | hasWhereClause: | no | diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected index db69c4e068a..b5bf260e2f4 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected @@ -1 +1 @@ -| gen_macro_call.rs:5:5:5:11 | todo!... | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | getNumberOfAttrs: | 0 | hasPath: | yes | hasTokenTree: | yes | hasExpanded: | yes | +| gen_macro_call.rs:5:5:5:11 | todo!... | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasExpanded: | yes | getNumberOfAttrs: | 0 | hasPath: | yes | hasTokenTree: | yes | diff --git a/rust/ql/test/extractor-tests/generated/Module/Module.expected b/rust/ql/test/extractor-tests/generated/Module/Module.expected index 11b6d9e1e9b..18f7e911fe3 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module.expected +++ b/rust/ql/test/extractor-tests/generated/Module/Module.expected @@ -1,3 +1,3 @@ -| gen_module.rs:3:1:4:8 | mod foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | -| gen_module.rs:5:1:7:1 | mod bar | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | getNumberOfAttrs: | 0 | hasItemList: | yes | hasName: | yes | hasVisibility: | no | -| lib.rs:1:1:1:15 | mod gen_module | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | +| gen_module.rs:3:1:4:8 | mod foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | +| gen_module.rs:5:1:7:1 | mod bar | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | getNumberOfAttrs: | 0 | hasItemList: | yes | hasName: | yes | hasVisibility: | no | +| lib.rs:1:1:1:15 | mod gen_module | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait.expected index 451422d330a..33dd170e766 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait.expected +++ b/rust/ql/test/extractor-tests/generated/Trait/Trait.expected @@ -1,2 +1,2 @@ -| gen_trait.rs:3:1:8:1 | trait Frobinizable | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | -| gen_trait.rs:10:1:10:57 | trait Foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | yes | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | yes | hasWhereClause: | yes | +| gen_trait.rs:3:1:8:1 | trait Frobinizable | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_trait.rs:10:1:10:57 | trait Foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | yes | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | yes | hasWhereClause: | yes | diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected index 19ccc9349b1..9168aed43d5 100644 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected @@ -1,2 +1,2 @@ -| gen_type_alias.rs:4:5:5:26 | type Point | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | -| gen_type_alias.rs:8:9:8:20 | type Output | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | no | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_type_alias.rs:4:5:5:26 | type Point | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasExpanded: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_type_alias.rs:8:9:8:20 | type Output | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasExpanded: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | no | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index ba7eeae0008..2b3b91e1abc 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -47,3 +47,4 @@ | test.rs:369:25:369:43 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:377:22:377:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | | test.rs:386:16:386:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| test.rs:386:16:386:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | From 2d32c366d8a470d74ce05f74913a80e02c75aafd Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 28 Apr 2025 10:46:36 +0200 Subject: [PATCH 090/656] Rust: add missing expected files --- .../extractor-tests/generated/Const/Const_getExpanded.expected | 0 .../test/extractor-tests/generated/Enum/Enum_getExpanded.expected | 0 .../generated/ExternBlock/ExternBlock_getExpanded.expected | 0 .../generated/ExternCrate/ExternCrate_getExpanded.expected | 0 .../generated/Function/Function_getExpanded.expected | 0 .../test/extractor-tests/generated/Impl/Impl_getExpanded.expected | 0 .../generated/MacroDef/MacroDef_getExpanded.expected | 0 .../generated/MacroRules/MacroRules_getExpanded.expected | 0 .../extractor-tests/generated/Module/Module_getExpanded.expected | 0 .../extractor-tests/generated/Static/Static_getExpanded.expected | 0 .../extractor-tests/generated/Struct/Struct_getExpanded.expected | 0 .../extractor-tests/generated/Trait/Trait_getExpanded.expected | 0 .../generated/TraitAlias/TraitAlias_getExpanded.expected | 0 .../generated/TypeAlias/TypeAlias_getExpanded.expected | 0 .../extractor-tests/generated/Union/Union_getExpanded.expected | 0 .../test/extractor-tests/generated/Use/Use_getExpanded.expected | 0 16 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.expected create mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.expected diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.expected b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.expected new file mode 100644 index 00000000000..e69de29bb2d From c57172121e4c36555fcfa107e544b1ff8ad08e21 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 24 Apr 2025 12:06:32 +0200 Subject: [PATCH 091/656] Update Nodes.qll Applied suggestions Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com> --- javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll | 5 +++-- javascript/ql/test/library-tests/Classes/tests.expected | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 8b41ed5b82c..6a8bacb585d 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -1242,11 +1242,12 @@ module ClassNode { */ class FunctionStyleClass extends Range, DataFlow::ValueNode { override AST::ValueNode astNode; - AbstractFunction function; + AbstractCallable function; FunctionStyleClass() { // ES6 class case - astNode instanceof ClassDefinition + astNode instanceof ClassDefinition and + function.(AbstractClass).getClass() = astNode or // Function-style class case astNode instanceof Function and diff --git a/javascript/ql/test/library-tests/Classes/tests.expected b/javascript/ql/test/library-tests/Classes/tests.expected index aadd449349c..460614e02e1 100644 --- a/javascript/ql/test/library-tests/Classes/tests.expected +++ b/javascript/ql/test/library-tests/Classes/tests.expected @@ -194,6 +194,7 @@ test_ConstructorDefinitions | tst.js:11:9:11:8 | constructor() {} | test_ClassNodeConstructor | dataflow.js:4:2:13:2 | class F ... \\n\\t\\t}\\n\\t} | dataflow.js:4:12:4:11 | () {} | +| dataflow.js:4:12:4:11 | () {} | dataflow.js:4:12:4:11 | () {} | | fields.js:1:1:4:1 | class C ... = 42\\n} | fields.js:1:9:1:8 | () {} | | points.js:1:1:18:1 | class P ... ;\\n }\\n} | points.js:2:14:5:3 | (x, y) ... y;\\n } | | points.js:20:1:33:1 | class C ... ;\\n }\\n} | points.js:21:14:24:3 | (x, y, ... c;\\n } | From 4705d30bac847d3a8326e8f258d77a2f2a4c6254 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Mon, 28 Apr 2025 15:12:24 +0200 Subject: [PATCH 092/656] Add call graph tests for prototype methods injected on class --- .../CallGraphs/AnnotatedTest/Test.expected | 1 + .../CallGraphs/AnnotatedTest/prototypes.js | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected index 0abd563b419..2ad95355cf1 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected @@ -2,6 +2,7 @@ spuriousCallee missingCallee | constructor-field.ts:40:5:40:14 | f3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | | constructor-field.ts:71:1:71:11 | bf3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | +| prototypes.js:19:3:19:13 | baz.shout() | prototypes.js:11:23:11:35 | function() {} | -1 | calls | badAnnotation accessorCall | accessors.js:12:1:12:5 | obj.f | accessors.js:5:8:5:12 | () {} | diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js new file mode 100644 index 00000000000..640da2edb70 --- /dev/null +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js @@ -0,0 +1,25 @@ +class Baz { + baz() { + /** calls:Baz.greet */ + this.greet(); + } + /** name:Baz.greet */ + greet() {} +} + +/** name:Baz.shout */ +Baz.prototype.shout = function() {}; +/** name:Baz.staticShout */ +Baz.staticShout = function() {}; + +function foo(baz){ + /** calls:Baz.greet */ + baz.greet(); + /** calls:Baz.shout */ + baz.shout(); + /** calls:Baz.staticShout */ + Baz.staticShout(); +} + +const baz = new Baz(); +foo(baz); From ee3a3bd9f50a3c6be6b2834279278a93f69bfdaa Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Mon, 28 Apr 2025 15:17:26 +0200 Subject: [PATCH 093/656] Add support for prototype methods in class instance member resolution --- javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll | 3 --- .../test/library-tests/CallGraphs/AnnotatedTest/Test.expected | 1 - 2 files changed, 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 6a8bacb585d..dfd451afc37 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -1318,7 +1318,6 @@ module ClassNode { ) or // Function-style class methods via prototype - astNode instanceof Function and kind = MemberKind::method() and exists(DataFlow::SourceNode proto | proto = this.getAPrototypeReference() and @@ -1361,7 +1360,6 @@ module ClassNode { ) or // Function-style class methods via prototype - astNode instanceof Function and kind = MemberKind::method() and exists(DataFlow::SourceNode proto | proto = this.getAPrototypeReference() and @@ -1415,7 +1413,6 @@ module ClassNode { * Only applies to function-style classes. */ DataFlow::SourceNode getAPrototypeReference() { - astNode instanceof Function and ( exists(DataFlow::SourceNode base | base = getAFunctionValueWithPrototype(function) | result = base.getAPropertyRead("prototype") diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected index 2ad95355cf1..0abd563b419 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected @@ -2,7 +2,6 @@ spuriousCallee missingCallee | constructor-field.ts:40:5:40:14 | f3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | | constructor-field.ts:71:1:71:11 | bf3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | -| prototypes.js:19:3:19:13 | baz.shout() | prototypes.js:11:23:11:35 | function() {} | -1 | calls | badAnnotation accessorCall | accessors.js:12:1:12:5 | obj.f | accessors.js:5:8:5:12 | () {} | From 28ccc833464e64d3e5dbdc5fd34c7fb59bde3bbb Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 28 Apr 2025 11:33:37 -0400 Subject: [PATCH 094/656] Adding a means to distinguish asymmetric algorithms. --- shared/cryptography/codeql/cryptography/Model.qll | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 510f334bc62..1ea862b470d 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -2122,6 +2122,12 @@ module CryptographyBase Input> { */ KeyOpAlg::Algorithm getAlgorithmType() { result = instance.asAlg().getAlgorithmType() } + predicate isAsymmetric() { + this.getAlgorithmType() instanceof KeyOpAlg::TAsymmetricCipher + or + this.getAlgorithmType() instanceof KeyOpAlg::TSignature + } + /** * Gets the mode of operation of this cipher, e.g., "GCM" or "CBC". */ @@ -2442,4 +2448,11 @@ module CryptographyBase Input> { location = this.getLocation() } } + + predicate isAsymmetricAlgorithm(AlgorithmNode node) { + node instanceof EllipticCurveNode + or + node instanceof KeyOperationAlgorithmNode and node.(KeyOperationAlgorithmNode).isAsymmetric() + // TODO: get unknown algorithms from known asymmetric operations + } } From fdd09a4dbffafa8e5e1e5ff08589f117b706980a Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 28 Apr 2025 11:34:16 -0400 Subject: [PATCH 095/656] Adding a new means for determining if there is nonce reuse. --- .../InventoryFilters/ArtifactReuse.qll | 70 +++++++++++++++++++ .../Quantum/InventoryFilters/ReusedNonce.ql | 12 ++++ .../Quantum/PossibleReusedNonce.ql | 36 ---------- 3 files changed, 82 insertions(+), 36 deletions(-) create mode 100644 java/ql/src/experimental/Quantum/InventoryFilters/ArtifactReuse.qll create mode 100644 java/ql/src/experimental/Quantum/InventoryFilters/ReusedNonce.ql delete mode 100644 java/ql/src/experimental/Quantum/PossibleReusedNonce.ql diff --git a/java/ql/src/experimental/Quantum/InventoryFilters/ArtifactReuse.qll b/java/ql/src/experimental/Quantum/InventoryFilters/ArtifactReuse.qll new file mode 100644 index 00000000000..de283f89775 --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventoryFilters/ArtifactReuse.qll @@ -0,0 +1,70 @@ +import java +import semmle.code.java.dataflow.DataFlow +import experimental.Quantum.Language + +/** + * Flow from any function that appears to return a value + * to an artifact node. + * NOTE: TODO: need to handle call by refernece for now. Need to re-evaluate (see notes below) + * Such functions may be 'wrappers' for some derived value. + */ +private module WrapperConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + exists(Call c | + c = source.asExpr() + // not handling references yet, I think we want to flat say references are only ok + // if I know the source, otherwise, it has to be through an additional flow step, which + // we filter as a source, i.e., references are only allowed as sources only, + // no inferrece? Not sure if that would work + //or + // source.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr() = c.getAnArgument() + ) and + // Filter out sources that are known additional flow steps, as these are likely not the + // kind of wrapper source we are looking for. + not exists(AdditionalFlowInputStep s | s.getOutput() = source) + } + + // Flow through additional flow steps + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + } + + predicate isSink(DataFlow::Node sink) { sink.asExpr() = any(Crypto::ArtifactNode i).asElement() } +} + +module WrapperFlow = DataFlow::Global; + +/** + * Using a set approach to determine if reuse of an artifact exists. + * This predicate produces a set of 'wrappers' that flow to the artifact node. + * This set can be compared with the set to another artifact node to determine if they are the same. + */ +private DataFlow::Node getWrapperSet(Crypto::NonceArtifactNode a) { + WrapperFlow::flow(result, DataFlow::exprNode(a.asElement())) + or + result.asExpr() = a.getSourceElement() +} + +/** + * Two different artifact nodes are considered reuse if any of the following conditions are met: + * 1. The source for artifact `a` and artifact `b` are the same and the source is a literal. + * 2. The source for artifact `a` and artifact `b` are not the same and the source is a literal of the same value. + * 3. For all 'wrappers' that return the source of artifact `a`, and that wrapper also exists for artifact `b`. + * 4. For all 'wrappers' that return the source of artifact `b`, and that wrapper also exists for artifact `a`. + */ +predicate isArtifactReuse(Crypto::ArtifactNode a, Crypto::ArtifactNode b) { + a != b and + ( + a.getSourceElement() = b.getSourceElement() and a.getSourceElement() instanceof Literal + or + a.getSourceElement().(Literal).getValue() = b.getSourceElement().(Literal).getValue() + or + forex(DataFlow::Node e | e = getWrapperSet(a) | + exists(DataFlow::Node e2 | e2 = getWrapperSet(b) | e = e2) + ) + or + forex(DataFlow::Node e | e = getWrapperSet(b) | + exists(DataFlow::Node e2 | e2 = getWrapperSet(a) | e = e2) + ) + ) +} diff --git a/java/ql/src/experimental/Quantum/InventoryFilters/ReusedNonce.ql b/java/ql/src/experimental/Quantum/InventoryFilters/ReusedNonce.ql new file mode 100644 index 00000000000..d8adccace55 --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventoryFilters/ReusedNonce.ql @@ -0,0 +1,12 @@ +/** + * @name Detects reuse of the same nonce in multiple operations + * @id java/crypto_inventory_filter/nonce_reuse + * @kind problem + */ + +import java +import ArtifactReuse + +from Crypto::NonceArtifactNode nonce1, Crypto::NonceArtifactNode nonce2 +where isArtifactReuse(nonce1, nonce2) +select nonce1, "Reuse with nonce $@", nonce2, nonce2.toString() diff --git a/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql b/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql deleted file mode 100644 index 2263f05d56e..00000000000 --- a/java/ql/src/experimental/Quantum/PossibleReusedNonce.ql +++ /dev/null @@ -1,36 +0,0 @@ -/** - * @name Possible Nonce Reuse: Produces false positives if reuse occurs in a source that is a re-entry point. - * @id java/possible-nonce-reuse - * @kind problem - */ - -import experimental.Quantum.Language -import semmle.code.java.dataflow.DataFlow - -from - Crypto::KeyOperationNode op1, Crypto::KeyOperationNode op2, Crypto::NonceArtifactNode nonce1, - Crypto::NonceArtifactNode nonce2, Crypto::FlowAwareElement src1, Crypto::FlowAwareElement src2 -where - // NOTE: not looking at value of the nonce, if we knew value, it would be insecure (hard coded) - // Instead trying to find nonce sources that trace to multiple operations. - // Only looking for encryption operations, presumably if reuse for decryption either wouldn't be observable - // (the encryption happened else where) or we are able to see the encryption and decryption operation and - // reuse for encryption is the concern) - ( - op1.getKeyOperationSubtype() instanceof Crypto::EncryptionSubtype or - op1.getKeyOperationSubtype() instanceof Crypto::WrapSubtype or - op1.getKeyOperationSubtype() instanceof Crypto::UnknownCipherOperationSubtype - ) and - ( - op2.getKeyOperationSubtype() instanceof Crypto::EncryptionSubtype or - op2.getKeyOperationSubtype() instanceof Crypto::WrapSubtype or - op2.getKeyOperationSubtype() instanceof Crypto::UnknownCipherOperationSubtype - ) and - nonce1 = op1.getANonce() and - nonce2 = op2.getANonce() and - op1 != op2 and - nonce1.getSourceElement() = src1 and - nonce2.getSourceElement() = src2 and - src1 = src2 -// TODO: need to clarify that a reuse in a non-finalize is ok, need to check if 'finalize' through a modeled predicate -select op1, "Operation has a possible reused nonce with source $@", src1, src1.toString() From 7b7ed61beb039071e32a263921d38714329b59e0 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 28 Apr 2025 11:34:32 -0400 Subject: [PATCH 096/656] Adding an asymmetric algorithm slice. --- .../Quantum/InventorySlices/AsymmetricAlgorithm.ql | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/AsymmetricAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/AsymmetricAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/AsymmetricAlgorithm.ql new file mode 100644 index 00000000000..1d451978400 --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/AsymmetricAlgorithm.ql @@ -0,0 +1,12 @@ +/** + * @name Detects known uses of asymmetric algorithms + * @id java/crypto_inventory_slices/known_asymmetric_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::AlgorithmNode a +where Crypto::isAsymmetricAlgorithm(a) +select a, "Instance of asymmetric algorithm " + a.getAlgorithmName() From 1fd7643ab3ad1f2b15817ca0839e67ae69129cec Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 28 Apr 2025 14:54:38 -0400 Subject: [PATCH 097/656] Adding example slicing queries. --- .../KnownAsymmetricAlgorithm.ql | 12 ++++++++++ .../KnownAsymmetricOperationAlgorithm.ql | 12 ++++++++++ .../KnownEllipticCurveAlgorithm.ql | 11 ++++++++++ .../InventorySlices/KnownHashingAlgorithm.ql | 11 ++++++++++ .../InventorySlices/KnownHashingOperation.ql | 11 ++++++++++ .../KnownHashingOperationAlgorithm.ql | 12 ++++++++++ .../KnownKeyDerivationAlgorithm.ql | 11 ++++++++++ .../KnownKeyDerivationOperation.ql | 11 ++++++++++ .../KnownKeyDerivationOperationAlgorithm.ql | 12 ++++++++++ .../LikelyCryptoAPIFunction.ql | 16 ++++++++++++++ .../UnknownOperationAlgorithm.ql | 22 +++++++++++++++++++ 11 files changed, 141 insertions(+) create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricAlgorithm.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownHashingAlgorithm.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperation.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperationAlgorithm.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperation.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/LikelyCryptoAPIFunction.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/UnknownOperationAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricAlgorithm.ql new file mode 100644 index 00000000000..1e5a7c5bced --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricAlgorithm.ql @@ -0,0 +1,12 @@ +/** + * @name Detects known asymmetric algorithms + * @id java/crypto_inventory_slices/known_asymmetric_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::AlgorithmNode a +where Crypto::isKnownAsymmetricAlgorithm(a) +select a, "Instance of asymmetric algorithm " + a.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql new file mode 100644 index 00000000000..0900401b80d --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql @@ -0,0 +1,12 @@ +/** + * @name Detects operations where the algorithm applied is a known asymmetric algorithms + * @id java/crypto_inventory_slices/known_asymmetric_operation_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::OperationNode op, Crypto::AlgorithmNode a +where a = op.getAKnownAlgorithm() and Crypto::isKnownAsymmetricAlgorithm(a) +select op, "Operation using asymmetric algorithm $@", a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql new file mode 100644 index 00000000000..0112e9d96df --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql @@ -0,0 +1,11 @@ +/** + * @name Detects known elliptic curve algorithms + * @id java/crypto_inventory_slices/known_elliptic_curvee_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::EllipticCurveNode a +select a, "Instance of elliptic curve algorithm " + a.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingAlgorithm.ql new file mode 100644 index 00000000000..632872725e7 --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingAlgorithm.ql @@ -0,0 +1,11 @@ +/** + * @name Detects algorithms that are known hashing algorithms + * @id java/crypto_inventory_slices/known_hashing_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::HashAlgorithmNode a +select a, "Instance of hashing algorithm " + a.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperation.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperation.ql new file mode 100644 index 00000000000..b3556393173 --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperation.ql @@ -0,0 +1,11 @@ +/** + * @name Detects uses of hashing operations (operations exlicitly for hashing only, irrespective of the algorithm used) + * @id java/crypto_inventory_slices/known_hashing_operation + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::HashOperationNode op +select op, "Known hashing operation" diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperationAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperationAlgorithm.ql new file mode 100644 index 00000000000..ce0f4d37d4d --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperationAlgorithm.ql @@ -0,0 +1,12 @@ +/** + * @name Detects operations where the algorithm applied is a known hashing algorithm + * @id java/crypto_inventory_slices/operation_with_known_hashing_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::OperationNode op, Crypto::HashAlgorithmNode a +where a = op.getAKnownAlgorithm() +select op, "Operation using hashing algorithm $@", a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql new file mode 100644 index 00000000000..584ffef0bbf --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql @@ -0,0 +1,11 @@ +/** + * @name Detects known key derivation algorithms + * @id java/crypto_inventory_slices/known_key_derivation_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::KeyDerivationAlgorithmNode alg +select alg, "Known key derivation algorithm " + alg.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperation.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperation.ql new file mode 100644 index 00000000000..8c77b2aa984 --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperation.ql @@ -0,0 +1,11 @@ +/** + * @name Detects uses of key derivation operations (operations exlicitly for key derivation only, irrespective of the algorithm used) + * @id java/crypto_inventory_slices/known_key_derivation_operation + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::KeyDerivationOperationNode op +select op, "Known key derivation operation" diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql new file mode 100644 index 00000000000..cf9a4e96f4d --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql @@ -0,0 +1,12 @@ +/** + * @name Detects operations where the algorithm applied is a known key derivation algorithm + * @id java/crypto_inventory_slices/operation_with_known_key_derivation_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::OperationNode op, Crypto::KeyDerivationAlgorithmNode a +where a = op.getAKnownAlgorithm() +select op, "Operation using key derivation algorithm $@", a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/LikelyCryptoAPIFunction.ql b/java/ql/src/experimental/Quantum/InventorySlices/LikelyCryptoAPIFunction.ql new file mode 100644 index 00000000000..0076c478dec --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/LikelyCryptoAPIFunction.ql @@ -0,0 +1,16 @@ +/** + * @name Detects functions that take in crypto configuration parameters but calls are not detected in source. + * @id java/crypto_inventory_slices/likely_crypto_api_function + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Callable f, Parameter p, Crypto::OperationNode op +where + op.asElement().(Expr).getEnclosingCallable() = f and + op.getAnAlgorithmOrGenericSource().asElement() = p +select f, + "Likely crypto API function: Operation $@ configured by parameter $@ with no known configuring call", + op, op.toString(), p, p.toString() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/UnknownOperationAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/UnknownOperationAlgorithm.ql new file mode 100644 index 00000000000..61a27c75dac --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/UnknownOperationAlgorithm.ql @@ -0,0 +1,22 @@ +/** + * @name Detects operations where the algorithm applied is unknown + * @id java/crypto_inventory_slices/unknown_operation_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +//TODO: can we have an unknown node concept? +from Crypto::OperationNode op, Element e, string msg +where + not exists(op.getAnAlgorithmOrGenericSource()) and + e = op.asElement() and + msg = "Operation with unconfigured algorithm (no known sources)." + or + exists(Crypto::GenericSourceNode n | + n = op.getAnAlgorithmOrGenericSource() and + e = n.asElement() + ) and + msg = "Operation with unknown algorithm source: $@" +select op, msg, e, e.toString() From 5a8bffac11d352f02e83219d24d357021368ef7b Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 28 Apr 2025 14:56:08 -0400 Subject: [PATCH 098/656] Removing old asymmetric algorithm slice --- .../Quantum/InventorySlices/AsymmetricAlgorithm.ql | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 java/ql/src/experimental/Quantum/InventorySlices/AsymmetricAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/AsymmetricAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/AsymmetricAlgorithm.ql deleted file mode 100644 index 1d451978400..00000000000 --- a/java/ql/src/experimental/Quantum/InventorySlices/AsymmetricAlgorithm.ql +++ /dev/null @@ -1,12 +0,0 @@ -/** - * @name Detects known uses of asymmetric algorithms - * @id java/crypto_inventory_slices/known_asymmetric_algorithm - * @kind problem - */ - -import java -import experimental.Quantum.Language - -from Crypto::AlgorithmNode a -where Crypto::isAsymmetricAlgorithm(a) -select a, "Instance of asymmetric algorithm " + a.getAlgorithmName() From ce3eabf05ac98a255ccddf483ae9b1b120b1a120 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 28 Apr 2025 14:56:28 -0400 Subject: [PATCH 099/656] Updating model to support slicing. --- shared/cryptography/codeql/cryptography/Model.qll | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 1ea862b470d..704be38362b 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -1249,7 +1249,7 @@ module CryptographyBase Input> { /** * A generic source node is a source of data that is not resolvable to a specific asset. */ - private class GenericSourceNode extends NodeBase, TGenericSourceNode { + final class GenericSourceNode extends NodeBase, TGenericSourceNode { GenericSourceInstance instance; GenericSourceNode() { this = TGenericSourceNode(instance) } @@ -2449,10 +2449,9 @@ module CryptographyBase Input> { } } - predicate isAsymmetricAlgorithm(AlgorithmNode node) { + predicate isKnownAsymmetricAlgorithm(AlgorithmNode node) { node instanceof EllipticCurveNode or node instanceof KeyOperationAlgorithmNode and node.(KeyOperationAlgorithmNode).isAsymmetric() - // TODO: get unknown algorithms from known asymmetric operations } } From 219476cee01bb9042945345f1d08f19f959ba731 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 28 Apr 2025 15:47:58 -0400 Subject: [PATCH 100/656] Adding KDF iteration count inventory filters. --- .../KnownWeakKDFIterationCount.ql | 15 +++++++++++++++ .../UnknownKDFIterationCount.ql | 19 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 java/ql/src/experimental/Quantum/InventoryFilters/KnownWeakKDFIterationCount.ql create mode 100644 java/ql/src/experimental/Quantum/InventoryFilters/UnknownKDFIterationCount.ql diff --git a/java/ql/src/experimental/Quantum/InventoryFilters/KnownWeakKDFIterationCount.ql b/java/ql/src/experimental/Quantum/InventoryFilters/KnownWeakKDFIterationCount.ql new file mode 100644 index 00000000000..439295f74e3 --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventoryFilters/KnownWeakKDFIterationCount.ql @@ -0,0 +1,15 @@ +/** + * @name Detects known weak KDf iteration counts (less than 100k and the count is statically known) + * @id java/crypto_inventory_filters/known_weak_kdf_iteration_count + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::KeyDerivationOperationNode op, Literal l +where + op.getIterationCount().asElement() = l and + l.getValue().toInt() < 100000 +select op, "Key derivation operation configures iteration count below 100k: $@", l, + l.getValue().toString() diff --git a/java/ql/src/experimental/Quantum/InventoryFilters/UnknownKDFIterationCount.ql b/java/ql/src/experimental/Quantum/InventoryFilters/UnknownKDFIterationCount.ql new file mode 100644 index 00000000000..0c91e66d52b --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventoryFilters/UnknownKDFIterationCount.ql @@ -0,0 +1,19 @@ +/** + * @name Detects unknown KDf iteration counts + * @id java/crypto_inventory_filters/unknown_kdf_iteration_count + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::KeyDerivationOperationNode op, Element e, string msg +where + e = op.getIterationCount().asElement() and + not e instanceof Literal and + msg = "Key derivation operation with unknown iteration: $@" + or + not exists(op.getIterationCount()) and + e = op.asElement() and + msg = "Key derivation operation with no iteration configuration." +select op, msg, e, e.toString() From ac3675bdac65175d5f39df239223afa68764d127 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 28 Apr 2025 16:00:41 -0400 Subject: [PATCH 101/656] Typo fix --- .../Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql index 0112e9d96df..048bcd8182c 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql @@ -1,6 +1,6 @@ /** * @name Detects known elliptic curve algorithms - * @id java/crypto_inventory_slices/known_elliptic_curvee_algorithm + * @id java/crypto_inventory_slices/known_elliptic_curve_algorithm * @kind problem */ From ac798f2bc6dc5ca0a952682805767077442b641d Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 28 Apr 2025 16:03:41 -0400 Subject: [PATCH 102/656] Cipher Algorithm Slices --- .../KnownAsymmetricCipherAlgorithm.ql | 12 ++++++++++++ .../InventorySlices/KnownCipherAlgorithm.ql | 15 +++++++++++++++ .../KnownSymmetricCipherAlgorithm.ql | 0 shared/cryptography/codeql/cryptography/Model.qll | 8 ++++++++ 4 files changed, 35 insertions(+) create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownCipherAlgorithm.ql create mode 100644 java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql new file mode 100644 index 00000000000..962a6b72015 --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql @@ -0,0 +1,12 @@ +/** + * @name Detects known asymmetric cipher algorithms + * @id java/crypto_inventory_slices/known_symmetric_cipher_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::KeyOperationAlgorithmNode a +where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::AsymmetricCipherAlgorithm +select a, "Instance of asymmetric cipher algorithm " + a.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownCipherAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownCipherAlgorithm.ql new file mode 100644 index 00000000000..4096fe16d29 --- /dev/null +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownCipherAlgorithm.ql @@ -0,0 +1,15 @@ +/** + * @name Detects known cipher algorithms + * @id java/crypto_inventory_slices/known_cipher_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +// TODO: should there be a cipher algorithm node? +from Crypto::KeyOperationAlgorithmNode a +where + a.getAlgorithmType() instanceof Crypto::KeyOpAlg::AsymmetricCipherAlgorithm or + a.getAlgorithmType() instanceof Crypto::KeyOpAlg::SymmetricCipherAlgorithm +select a, "Instance of cipher algorithm " + a.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql new file mode 100644 index 00000000000..e69de29bb2d diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 704be38362b..bfc527e108d 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -659,6 +659,14 @@ module CryptographyBase Input> { TSymmetricCipherType getType() { result = type } } + + class AsymmetricCipherAlgorithm extends Algorithm, TAsymmetricCipher { + TAsymmetricCipherType type; + + AsymmetricCipherAlgorithm() { this = TAsymmetricCipher(type) } + + TAsymmetricCipherType getType() { result = type } + } } /** From eb059969e3f345dba5c9a30d4aec994891a39afa Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Apr 2025 09:12:48 +0200 Subject: [PATCH 103/656] Move getAChildContainer one scope up --- shared/util/codeql/util/FileSystem.qll | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/shared/util/codeql/util/FileSystem.qll b/shared/util/codeql/util/FileSystem.qll index 8eb372e0c24..e4d32e14dbd 100644 --- a/shared/util/codeql/util/FileSystem.qll +++ b/shared/util/codeql/util/FileSystem.qll @@ -221,6 +221,12 @@ module Make { /** Provides logic related to `Folder`s. */ module Folder { + pragma[nomagic] + private Container getAChildContainer(Container c, string baseName) { + result = c.getAChildContainer() and + baseName = result.getBaseName() + } + /** Holds if `relativePath` needs to be appended to `f`. */ signature predicate shouldAppendSig(Folder f, string relativePath); @@ -239,12 +245,6 @@ module Make { result = 0 } - pragma[nomagic] - private Container getAChildContainer(Container c, string baseName) { - result = c.getAChildContainer() and - baseName = result.getBaseName() - } - pragma[nomagic] private Container appendStep(Folder f, string relativePath, int i) { i = -1 and From 2ce01bfb9a190a69b014d3b0b490ca72d92ff3b8 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Apr 2025 09:23:32 +0200 Subject: [PATCH 104/656] Add Folder::Resolve as a generalisation of Folder::Append --- shared/util/codeql/util/FileSystem.qll | 153 ++++++++++++++++++++----- 1 file changed, 125 insertions(+), 28 deletions(-) diff --git a/shared/util/codeql/util/FileSystem.qll b/shared/util/codeql/util/FileSystem.qll index e4d32e14dbd..2b120faaace 100644 --- a/shared/util/codeql/util/FileSystem.qll +++ b/shared/util/codeql/util/FileSystem.qll @@ -232,46 +232,143 @@ module Make { /** Provides the `append` predicate for appending a relative path onto a folder. */ module Append { - pragma[nomagic] - private string getComponent(string relativePath, int i) { - shouldAppend(_, relativePath) and - result = relativePath.replaceAll("\\", "/").regexpFind("[^/]+", i, _) + private module Config implements ResolveSig { + predicate shouldResolve(Container c, string name) { shouldAppend(c, name) } } - private int getNumberOfComponents(string relativePath) { - result = strictcount(int i | exists(getComponent(relativePath, i)) | i) - or - relativePath = "" and - result = 0 + predicate append = Resolve::resolve/2; + } + + /** + * Signature for modules to pass to `Resolve`. + */ + signature module ResolveSig { + /** + * Holds if `path` should be resolved to a file or folder, relative to `base`. + */ + predicate shouldResolve(Container base, string path); + + /** + * Gets an additional file or folder to consider a child of `base`. + */ + default Container getAnAdditionalChild(Container base, string name) { none() } + + /** + * Holds if `component` may be treated as `.` if it does not match a child. + */ + default predicate isOptionalPathComponent(string component) { none() } + + /** + * Holds if globs should be interpreted in the paths being resolved. + * + * The following types of globs are supported: + * - `*` (matches any child) + * - `**` (matches any child recursively) + * - Complex patterns like `foo-*.txt` are also supported + */ + default predicate allowGlobs() { none() } + + /** + * Gets an alternative path segment to try if `segment` did not match a child. + * + * The motivating use-case is to map compiler-generated file names back to their sources files, + * for example, `foo.min.js` could be mapped to `foo.ts`. + */ + bindingset[segment] + default string rewritePathSegment(string segment) { none() } + } + + /** + * Provides a mechanism for resolving file paths relative to a given directory. + */ + module Resolve { + private import Config + + pragma[nomagic] + private string getPathSegment(string path, int n) { + shouldResolve(_, path) and + result = path.replaceAll("\\", "/").splitAt("/", n) } pragma[nomagic] - private Container appendStep(Folder f, string relativePath, int i) { - i = -1 and - shouldAppend(f, relativePath) and - result = f + private string getPathSegmentAsGlobRegexp(string segment) { + allowGlobs() and + segment = getPathSegment(_, _) and + segment.matches("%*%") and + not segment = ["*", "**"] and // these are special-cased + result = segment.regexpReplaceAll("[^a-zA-Z0-9*]", "\\\\$0").replaceAll("*", ".*") + } + + pragma[nomagic] + private int getNumPathSegment(string path) { + result = strictcount(int n | exists(getPathSegment(path, n))) + } + + private Container getChild(Container base, string name) { + result = getAChildContainer(base, name) or - exists(Container mid, string comp | - mid = appendStep(f, relativePath, i - 1) and - comp = getComponent(relativePath, i) and - if comp = ".." - then result = mid.getParentContainer() - else - if comp = "." - then result = mid - else result = getAChildContainer(mid, comp) + result = getAnAdditionalChild(base, name) + } + + pragma[nomagic] + private Container resolve(Container base, string path, int n) { + shouldResolve(base, path) and n = 0 and result = base + or + exists(Container current, string segment | + current = resolve(base, path, n - 1) and + segment = getPathSegment(path, n - 1) + | + result = getChild(current, segment) + or + segment = [".", ""] and + result = current + or + segment = ".." and + result = current.getParentContainer() + or + not exists(getChild(current, segment)) and + ( + isOptionalPathComponent(segment) and + result = current + or + result = getChild(current, rewritePathSegment(segment)) + ) + or + allowGlobs() and + ( + segment = "*" and + result = getChild(current, _) + or + segment = "**" and // allow empty match + result = current + or + exists(string name | + result = getChild(current, name) and + name.regexpMatch(getPathSegmentAsGlobRegexp(segment)) + ) + ) + ) + or + exists(Container current, string segment | + current = resolve(base, path, n) and + segment = getPathSegment(path, n) + | + // Follow child without advancing 'n' + allowGlobs() and + segment = "**" and + result = getChild(current, _) ) } /** - * Gets the file or folder obtained by appending `relativePath` onto `f`. + * Gets the file or folder that `path` resolves to when resolved from `base`. + * + * Only has results for the `(base, path)` pairs provided by `shouldResolve` + * in the instantiation of this module. */ pragma[nomagic] - Container append(Folder f, string relativePath) { - exists(int last | - last = getNumberOfComponents(relativePath) - 1 and - result = appendStep(f, relativePath, last) - ) + Container resolve(Container base, string path) { + result = resolve(base, path, getNumPathSegment(path)) } } } From ec9d15bb79fdd3d127b9fadba84c6a30d7e83ff5 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Apr 2025 09:05:36 +0200 Subject: [PATCH 105/656] JS: Make shared Folder module visible --- javascript/ql/lib/semmle/javascript/Files.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/Files.qll b/javascript/ql/lib/semmle/javascript/Files.qll index 88513f087ae..9febb67117d 100644 --- a/javascript/ql/lib/semmle/javascript/Files.qll +++ b/javascript/ql/lib/semmle/javascript/Files.qll @@ -29,6 +29,8 @@ private module Impl = Make; class Container = Impl::Container; +module Folder = Impl::Folder; + /** A folder. */ class Folder extends Container, Impl::Folder { /** Gets the file or subfolder in this folder that has the given `name`, if any. */ From 4fbf8ca5cf787eb611bead6d77e39b16850533d1 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Tue, 29 Apr 2025 12:31:34 +0200 Subject: [PATCH 106/656] Added test cases with inheritance --- .../CallGraphs/AnnotatedTest/Test.expected | 3 + .../CallGraphs/AnnotatedTest/prototypes.js | 74 ++++++++++++++++++- 2 files changed, 73 insertions(+), 4 deletions(-) diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected index 0abd563b419..01a9bb03e3a 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected @@ -2,6 +2,9 @@ spuriousCallee missingCallee | constructor-field.ts:40:5:40:14 | f3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | | constructor-field.ts:71:1:71:11 | bf3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | +| prototypes.js:7:5:7:16 | this.greet() | prototypes.js:59:8:63:3 | () { \\n ... ); \\n } | -1 | calls | +| prototypes.js:62:5:62:34 | Baz.pro ... l(this) | prototypes.js:10:8:10:39 | () { co ... et"); } | -1 | calls | +| prototypes.js:77:3:77:32 | Baz.pro ... l(this) | prototypes.js:14:23:14:62 | functio ... ut"); } | -1 | calls | badAnnotation accessorCall | accessors.js:12:1:12:5 | obj.f | accessors.js:5:8:5:12 | () {} | diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js index 640da2edb70..e0088019f9f 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js @@ -1,16 +1,19 @@ +import 'dummy' + class Baz { baz() { - /** calls:Baz.greet */ + console.log("Baz baz"); + /** calls:Baz.greet calls:Derived.greet1 calls:BazExtented.greet2 */ this.greet(); } /** name:Baz.greet */ - greet() {} + greet() { console.log("Baz greet"); } } /** name:Baz.shout */ -Baz.prototype.shout = function() {}; +Baz.prototype.shout = function() { console.log("Baz shout"); }; /** name:Baz.staticShout */ -Baz.staticShout = function() {}; +Baz.staticShout = function() { console.log("Baz staticShout"); }; function foo(baz){ /** calls:Baz.greet */ @@ -23,3 +26,66 @@ function foo(baz){ const baz = new Baz(); foo(baz); + +class Derived extends Baz { + /** name:Derived.greet1 */ + greet() { + console.log("Derived greet"); + super.greet(); + } + + /** name:Derived.shout1 */ + shout() { + console.log("Derived shout"); + super.shout(); + } +} + +function bar(derived){ + /** calls:Derived.greet1 */ + derived.greet(); + /** calls:Derived.shout1 */ + derived.shout(); +} + +bar(new Derived()); + +class BazExtented { + constructor() { + console.log("BazExtented construct"); + } + + /** name:BazExtented.greet2 */ + greet() { + console.log("BazExtented greet"); + /** calls:Baz.greet */ + Baz.prototype.greet.call(this); + }; +} + +BazExtented.prototype = Object.create(Baz.prototype); +BazExtented.prototype.constructor = BazExtented; +BazExtented.staticShout = Baz.staticShout; + +/** name:BazExtented.talk */ +BazExtented.prototype.talk = function() { console.log("BazExtented talk"); }; + +/** name:BazExtented.shout2 */ +BazExtented.prototype.shout = function() { + console.log("BazExtented shout"); + /** calls:Baz.shout */ + Baz.prototype.shout.call(this); +}; + +function barbar(bazExtented){ + /** calls:BazExtented.talk */ + bazExtented.talk(); + /** calls:BazExtented.shout2 */ + bazExtented.shout(); + /** calls:BazExtented.greet2 */ + bazExtented.greet(); + /** calls:Baz.staticShout */ + BazExtented.staticShout(); +} + +barbar(new BazExtented()); From a015003bda045c630c8858caaf762670921ad4cf Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Tue, 29 Apr 2025 12:32:26 +0200 Subject: [PATCH 107/656] Updated test case to resolve reflected calls --- .../CallGraphs/AnnotatedTest/Test.expected | 2 -- .../library-tests/CallGraphs/AnnotatedTest/Test.ql | 14 ++++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected index 01a9bb03e3a..0c47e2c2c6a 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected @@ -3,8 +3,6 @@ missingCallee | constructor-field.ts:40:5:40:14 | f3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | | constructor-field.ts:71:1:71:11 | bf3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | | prototypes.js:7:5:7:16 | this.greet() | prototypes.js:59:8:63:3 | () { \\n ... ); \\n } | -1 | calls | -| prototypes.js:62:5:62:34 | Baz.pro ... l(this) | prototypes.js:10:8:10:39 | () { co ... et"); } | -1 | calls | -| prototypes.js:77:3:77:32 | Baz.pro ... l(this) | prototypes.js:14:23:14:62 | functio ... ut"); } | -1 | calls | badAnnotation accessorCall | accessors.js:12:1:12:5 | obj.f | accessors.js:5:8:5:12 | () {} | diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.ql b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.ql index 4388a2d388d..82533ba74c4 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.ql +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.ql @@ -31,7 +31,7 @@ class AnnotatedCall extends DataFlow::Node { AnnotatedCall() { this instanceof DataFlow::InvokeNode and - calls = getAnnotation(this.asExpr(), kind) and + calls = getAnnotation(this.getEnclosingExpr(), kind) and kind = "calls" or this instanceof DataFlow::PropRef and @@ -79,12 +79,14 @@ query predicate spuriousCallee(AnnotatedCall call, Function target, int boundArg } query predicate missingCallee( - AnnotatedCall call, AnnotatedFunction target, int boundArgs, string kind + InvokeExpr invoke, AnnotatedFunction target, int boundArgs, string kind ) { - not callEdge(call, target, boundArgs) and - kind = call.getKind() and - target = call.getAnExpectedCallee(kind) and - boundArgs = call.getBoundArgsOrMinusOne() + forex(AnnotatedCall call | call.getEnclosingExpr() = invoke | + not callEdge(call, target, boundArgs) and + kind = call.getKind() and + target = call.getAnExpectedCallee(kind) and + boundArgs = call.getBoundArgsOrMinusOne() + ) } query predicate badAnnotation(string name) { From 0a9a7911c2eca86ceb5e8abbb2bb177e9953dd1c Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Tue, 29 Apr 2025 12:39:44 +0200 Subject: [PATCH 108/656] Fixed issue where method calls weren't properly resolved when inheritance was implemented via prototype manipulation instead of ES6 class syntax. --- javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll | 2 -- .../test/library-tests/CallGraphs/AnnotatedTest/Test.expected | 1 - 2 files changed, 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index dfd451afc37..527031950ec 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -1437,8 +1437,6 @@ module ClassNode { astNode instanceof ClassDefinition and result = astNode.(ClassDefinition).getSuperClass().flow() or - // Function-style class superclass patterns - astNode instanceof Function and ( // C.prototype = Object.create(D.prototype) exists(DataFlow::InvokeNode objectCreate, DataFlow::PropRead superProto | diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected index 0c47e2c2c6a..0abd563b419 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected @@ -2,7 +2,6 @@ spuriousCallee missingCallee | constructor-field.ts:40:5:40:14 | f3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | | constructor-field.ts:71:1:71:11 | bf3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | -| prototypes.js:7:5:7:16 | this.greet() | prototypes.js:59:8:63:3 | () { \\n ... ); \\n } | -1 | calls | badAnnotation accessorCall | accessors.js:12:1:12:5 | obj.f | accessors.js:5:8:5:12 | () {} | From 8c0b0c480010a47a8f8416e7e1c39e565be82352 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Apr 2025 09:03:21 +0200 Subject: [PATCH 109/656] JS: Ensure json files are extracted properly in tests --- .../semmle/js/extractor/JSONExtractor.java | 2 +- .../src/com/semmle/js/extractor/Main.java | 7 +- .../AST/Decorators/printAst.expected | 31 ++- .../MissingTypeRoot/test.expected | 1 + .../TypeRootFile/test.expected | 1 + .../TSConfigReferences/test.expected | 2 + .../TypeScript/Types/printAst.expected | 244 ++++++++++-------- 7 files changed, 176 insertions(+), 112 deletions(-) diff --git a/javascript/extractor/src/com/semmle/js/extractor/JSONExtractor.java b/javascript/extractor/src/com/semmle/js/extractor/JSONExtractor.java index c2cad57c3c9..1ca4eeb2609 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/JSONExtractor.java +++ b/javascript/extractor/src/com/semmle/js/extractor/JSONExtractor.java @@ -29,7 +29,7 @@ public class JSONExtractor implements IExtractor { private final boolean tolerateParseErrors; public JSONExtractor(ExtractorConfig config) { - this.tolerateParseErrors = config.isTolerateParseErrors(); + this.tolerateParseErrors = true; } @Override diff --git a/javascript/extractor/src/com/semmle/js/extractor/Main.java b/javascript/extractor/src/com/semmle/js/extractor/Main.java index 45691d1d7f4..d4f377f1547 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/Main.java +++ b/javascript/extractor/src/com/semmle/js/extractor/Main.java @@ -301,9 +301,14 @@ public class Main { // only extract HTML and JS by default addIncludesFor(includes, FileType.HTML); addIncludesFor(includes, FileType.JS); + includes.add("**/.babelrc*.json"); + // extract TypeScript if `--typescript` or `--typescript-full` was specified - if (getTypeScriptMode(ap) != TypeScriptMode.NONE) addIncludesFor(includes, FileType.TYPESCRIPT); + if (getTypeScriptMode(ap) != TypeScriptMode.NONE) { + addIncludesFor(includes, FileType.TYPESCRIPT); + includes.add("**/tsconfig*.json"); + } // add explicit include patterns for (String pattern : ap.getZeroOrMore(P_INCLUDE)) diff --git a/javascript/ql/test/library-tests/AST/Decorators/printAst.expected b/javascript/ql/test/library-tests/AST/Decorators/printAst.expected index 5cbec5ec883..1c426948b1d 100644 --- a/javascript/ql/test/library-tests/AST/Decorators/printAst.expected +++ b/javascript/ql/test/library-tests/AST/Decorators/printAst.expected @@ -1,8 +1,17 @@ nodes | file://:0:0:0:0 | (Arguments) | semmle.label | (Arguments) | | file://:0:0:0:0 | (Parameters) | semmle.label | (Parameters) | +| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | semmle.label | [JsonObject] {compilerOptions: ...} | +| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | semmle.order | 1 | +| tsconfig.json:2:24:4:5 | [JsonObject] {experimentalDecorators: ...} | semmle.label | [JsonObject] {experimentalDecorators: ...} | +| tsconfig.json:3:35:3:38 | [JsonBoolean] true | semmle.label | [JsonBoolean] true | +| tsconfig.json:5:16:5:26 | [JsonArray] ["**/*.ts"] | semmle.label | [JsonArray] ["**/*.ts"] | +| tsconfig.json:5:17:5:25 | [JsonString] "**/*.ts" | semmle.label | [JsonString] "**/*.ts" | +| tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | semmle.label | [JsonArray] ["es2015", ...] | +| tsconfig.json:6:13:6:20 | [JsonString] "es2015" | semmle.label | [JsonString] "es2015" | +| tsconfig.json:6:23:6:27 | [JsonString] "dom" | semmle.label | [JsonString] "dom" | | tst.ts:1:1:1:22 | [DeclStmt] const Dec = ... | semmle.label | [DeclStmt] const Dec = ... | -| tst.ts:1:1:1:22 | [DeclStmt] const Dec = ... | semmle.order | 1 | +| tst.ts:1:1:1:22 | [DeclStmt] const Dec = ... | semmle.order | 2 | | tst.ts:1:7:1:9 | [VarDecl] Dec | semmle.label | [VarDecl] Dec | | tst.ts:1:7:1:21 | [VariableDeclarator] Dec: any = null | semmle.label | [VariableDeclarator] Dec: any = null | | tst.ts:1:12:1:14 | [KeywordTypeExpr] any | semmle.label | [KeywordTypeExpr] any | @@ -11,7 +20,7 @@ nodes | tst.ts:3:2:3:4 | [VarRef] Dec | semmle.label | [VarRef] Dec | | tst.ts:3:2:3:6 | [CallExpr] Dec() | semmle.label | [CallExpr] Dec() | | tst.ts:4:1:8:1 | [ExportDeclaration] export ... id {} } | semmle.label | [ExportDeclaration] export ... id {} } | -| tst.ts:4:1:8:1 | [ExportDeclaration] export ... id {} } | semmle.order | 2 | +| tst.ts:4:1:8:1 | [ExportDeclaration] export ... id {} } | semmle.order | 3 | | tst.ts:4:8:8:1 | [ClassDefinition,TypeDefinition] class O ... id {} } | semmle.label | [ClassDefinition,TypeDefinition] class O ... id {} } | | tst.ts:4:14:4:30 | [VarDecl] OperatorResolvers | semmle.label | [VarDecl] OperatorResolvers | | tst.ts:4:32:4:31 | [BlockStmt] {} | semmle.label | [BlockStmt] {} | @@ -30,7 +39,7 @@ nodes | tst.ts:7:16:7:19 | [KeywordTypeExpr] void | semmle.label | [KeywordTypeExpr] void | | tst.ts:7:21:7:22 | [BlockStmt] {} | semmle.label | [BlockStmt] {} | | tst.ts:10:1:10:41 | [DeclStmt] const createMethodDecorator = ... | semmle.label | [DeclStmt] const createMethodDecorator = ... | -| tst.ts:10:1:10:41 | [DeclStmt] const createMethodDecorator = ... | semmle.order | 3 | +| tst.ts:10:1:10:41 | [DeclStmt] const createMethodDecorator = ... | semmle.order | 4 | | tst.ts:10:7:10:27 | [VarDecl] createMethodDecorator | semmle.label | [VarDecl] createMethodDecorator | | tst.ts:10:7:10:40 | [VariableDeclarator] createM ... = null | semmle.label | [VariableDeclarator] createM ... = null | | tst.ts:10:31:10:33 | [KeywordTypeExpr] any | semmle.label | [KeywordTypeExpr] any | @@ -38,7 +47,7 @@ nodes | tst.ts:12:1:12:21 | [VarRef] createMethodDecorator | semmle.label | [VarRef] createMethodDecorator | | tst.ts:12:1:14:2 | [CallExpr] createM ... { }) | semmle.label | [CallExpr] createM ... { }) | | tst.ts:12:1:14:3 | [ExprStmt] createM ... }); | semmle.label | [ExprStmt] createM ... }); | -| tst.ts:12:1:14:3 | [ExprStmt] createM ... }); | semmle.order | 4 | +| tst.ts:12:1:14:3 | [ExprStmt] createM ... }); | semmle.order | 5 | | tst.ts:12:23:14:1 | [ArrowFunctionExpr] ({ args ... { } | semmle.label | [ArrowFunctionExpr] ({ args ... { } | | tst.ts:12:24:12:40 | [ObjectPattern,Parameter] { args, context } | semmle.label | [ObjectPattern,Parameter] { args, context } | | tst.ts:12:26:12:29 | [Label] args | semmle.label | [Label] args | @@ -56,6 +65,20 @@ edges | file://:0:0:0:0 | (Parameters) | tst.ts:12:24:12:40 | [ObjectPattern,Parameter] { args, context } | semmle.order | 0 | | file://:0:0:0:0 | (Parameters) | tst.ts:12:43:12:46 | [SimpleParameter] next | semmle.label | 1 | | file://:0:0:0:0 | (Parameters) | tst.ts:12:43:12:46 | [SimpleParameter] next | semmle.order | 1 | +| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:2:24:4:5 | [JsonObject] {experimentalDecorators: ...} | semmle.label | 0 | +| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:2:24:4:5 | [JsonObject] {experimentalDecorators: ...} | semmle.order | 0 | +| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:5:16:5:26 | [JsonArray] ["**/*.ts"] | semmle.label | 1 | +| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:5:16:5:26 | [JsonArray] ["**/*.ts"] | semmle.order | 1 | +| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | semmle.label | 2 | +| tsconfig.json:1:1:7:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | semmle.order | 2 | +| tsconfig.json:2:24:4:5 | [JsonObject] {experimentalDecorators: ...} | tsconfig.json:3:35:3:38 | [JsonBoolean] true | semmle.label | 0 | +| tsconfig.json:2:24:4:5 | [JsonObject] {experimentalDecorators: ...} | tsconfig.json:3:35:3:38 | [JsonBoolean] true | semmle.order | 0 | +| tsconfig.json:5:16:5:26 | [JsonArray] ["**/*.ts"] | tsconfig.json:5:17:5:25 | [JsonString] "**/*.ts" | semmle.label | 0 | +| tsconfig.json:5:16:5:26 | [JsonArray] ["**/*.ts"] | tsconfig.json:5:17:5:25 | [JsonString] "**/*.ts" | semmle.order | 0 | +| tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | tsconfig.json:6:13:6:20 | [JsonString] "es2015" | semmle.label | 0 | +| tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | tsconfig.json:6:13:6:20 | [JsonString] "es2015" | semmle.order | 0 | +| tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | tsconfig.json:6:23:6:27 | [JsonString] "dom" | semmle.label | 1 | +| tsconfig.json:6:12:6:28 | [JsonArray] ["es2015", ...] | tsconfig.json:6:23:6:27 | [JsonString] "dom" | semmle.order | 1 | | tst.ts:1:1:1:22 | [DeclStmt] const Dec = ... | tst.ts:1:7:1:21 | [VariableDeclarator] Dec: any = null | semmle.label | 1 | | tst.ts:1:1:1:22 | [DeclStmt] const Dec = ... | tst.ts:1:7:1:21 | [VariableDeclarator] Dec: any = null | semmle.order | 1 | | tst.ts:1:7:1:21 | [VariableDeclarator] Dec: any = null | tst.ts:1:7:1:9 | [VarDecl] Dec | semmle.label | 1 | diff --git a/javascript/ql/test/library-tests/TypeScript/RegressionTests/MissingTypeRoot/test.expected b/javascript/ql/test/library-tests/TypeScript/RegressionTests/MissingTypeRoot/test.expected index 51c6bdf27ff..5f7ccb159cd 100644 --- a/javascript/ql/test/library-tests/TypeScript/RegressionTests/MissingTypeRoot/test.expected +++ b/javascript/ql/test/library-tests/TypeScript/RegressionTests/MissingTypeRoot/test.expected @@ -1 +1,2 @@ +| tsconfig.json:0:0:0:0 | tsconfig.json | | tst.ts:0:0:0:0 | tst.ts | diff --git a/javascript/ql/test/library-tests/TypeScript/RegressionTests/TypeRootFile/test.expected b/javascript/ql/test/library-tests/TypeScript/RegressionTests/TypeRootFile/test.expected index fc88cb47c18..840934a14d3 100644 --- a/javascript/ql/test/library-tests/TypeScript/RegressionTests/TypeRootFile/test.expected +++ b/javascript/ql/test/library-tests/TypeScript/RegressionTests/TypeRootFile/test.expected @@ -1,2 +1,3 @@ +| tsconfig.json:0:0:0:0 | tsconfig.json | | tst.ts:0:0:0:0 | tst.ts | | typeroot.d.ts:0:0:0:0 | typeroot.d.ts | diff --git a/javascript/ql/test/library-tests/TypeScript/TSConfigReferences/test.expected b/javascript/ql/test/library-tests/TypeScript/TSConfigReferences/test.expected index 18dbed450ba..47ea4115ae6 100644 --- a/javascript/ql/test/library-tests/TypeScript/TSConfigReferences/test.expected +++ b/javascript/ql/test/library-tests/TypeScript/TSConfigReferences/test.expected @@ -7,3 +7,5 @@ types | string | | void | jsonFiles +| tsconfig.foo.json:0:0:0:0 | tsconfig.foo.json | +| tsconfig.json:0:0:0:0 | tsconfig.json | diff --git a/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected b/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected index 04d6e6247ff..3860acf0afb 100644 --- a/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected +++ b/javascript/ql/test/library-tests/TypeScript/Types/printAst.expected @@ -206,50 +206,62 @@ nodes | middle-rest.ts:3:8:3:11 | [Literal] true | semmle.label | [Literal] true | | middle-rest.ts:3:14:3:20 | [Literal] "hello" | semmle.label | [Literal] "hello" | | middle-rest.ts:3:23:3:25 | [Literal] 123 | semmle.label | [Literal] 123 | +| tsconfig.json:1:1:9:1 | [JsonObject] {compilerOptions: ...} | semmle.label | [JsonObject] {compilerOptions: ...} | +| tsconfig.json:1:1:9:1 | [JsonObject] {compilerOptions: ...} | semmle.order | 18 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | semmle.label | [JsonObject] {module: ...} | +| tsconfig.json:3:15:3:22 | [JsonString] "esnext" | semmle.label | [JsonString] "esnext" | +| tsconfig.json:4:15:4:22 | [JsonString] "esnext" | semmle.label | [JsonString] "esnext" | +| tsconfig.json:5:12:5:28 | [JsonArray] ["dom", ...] | semmle.label | [JsonArray] ["dom", ...] | +| tsconfig.json:5:13:5:17 | [JsonString] "dom" | semmle.label | [JsonString] "dom" | +| tsconfig.json:5:20:5:27 | [JsonString] "esnext" | semmle.label | [JsonString] "esnext" | +| tsconfig.json:6:26:6:29 | [JsonBoolean] true | semmle.label | [JsonBoolean] true | +| tsconfig.json:7:23:7:34 | [JsonArray] [".ios", ...] | semmle.label | [JsonArray] [".ios", ...] | +| tsconfig.json:7:24:7:29 | [JsonString] ".ios" | semmle.label | [JsonString] ".ios" | +| tsconfig.json:7:32:7:33 | [JsonString] "" | semmle.label | [JsonString] "" | | tst.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.label | [ImportDeclaration] import ... dummy"; | -| tst.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 18 | +| tst.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 19 | | tst.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | [ImportSpecifier] * as dummy | | tst.ts:1:13:1:17 | [VarDecl] dummy | semmle.label | [VarDecl] dummy | | tst.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | [Literal] "./dummy" | | tst.ts:3:1:3:19 | [DeclStmt] var numVar = ... | semmle.label | [DeclStmt] var numVar = ... | -| tst.ts:3:1:3:19 | [DeclStmt] var numVar = ... | semmle.order | 19 | +| tst.ts:3:1:3:19 | [DeclStmt] var numVar = ... | semmle.order | 20 | | tst.ts:3:5:3:10 | [VarDecl] numVar | semmle.label | [VarDecl] numVar | | tst.ts:3:5:3:18 | [VariableDeclarator] numVar: number | semmle.label | [VariableDeclarator] numVar: number | | tst.ts:3:13:3:18 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | tst.ts:5:1:5:18 | [DeclStmt] var num1 = ... | semmle.label | [DeclStmt] var num1 = ... | -| tst.ts:5:1:5:18 | [DeclStmt] var num1 = ... | semmle.order | 20 | +| tst.ts:5:1:5:18 | [DeclStmt] var num1 = ... | semmle.order | 21 | | tst.ts:5:5:5:8 | [VarDecl] num1 | semmle.label | [VarDecl] num1 | | tst.ts:5:5:5:17 | [VariableDeclarator] num1 = numVar | semmle.label | [VariableDeclarator] num1 = numVar | | tst.ts:5:12:5:17 | [VarRef] numVar | semmle.label | [VarRef] numVar | | tst.ts:6:1:6:13 | [DeclStmt] var num2 = ... | semmle.label | [DeclStmt] var num2 = ... | -| tst.ts:6:1:6:13 | [DeclStmt] var num2 = ... | semmle.order | 21 | +| tst.ts:6:1:6:13 | [DeclStmt] var num2 = ... | semmle.order | 22 | | tst.ts:6:5:6:8 | [VarDecl] num2 | semmle.label | [VarDecl] num2 | | tst.ts:6:5:6:12 | [VariableDeclarator] num2 = 5 | semmle.label | [VariableDeclarator] num2 = 5 | | tst.ts:6:12:6:12 | [Literal] 5 | semmle.label | [Literal] 5 | | tst.ts:7:1:7:23 | [DeclStmt] var num3 = ... | semmle.label | [DeclStmt] var num3 = ... | -| tst.ts:7:1:7:23 | [DeclStmt] var num3 = ... | semmle.order | 22 | +| tst.ts:7:1:7:23 | [DeclStmt] var num3 = ... | semmle.order | 23 | | tst.ts:7:5:7:8 | [VarDecl] num3 | semmle.label | [VarDecl] num3 | | tst.ts:7:5:7:22 | [VariableDeclarator] num3 = num1 + num2 | semmle.label | [VariableDeclarator] num3 = num1 + num2 | | tst.ts:7:12:7:15 | [VarRef] num1 | semmle.label | [VarRef] num1 | | tst.ts:7:12:7:22 | [BinaryExpr] num1 + num2 | semmle.label | [BinaryExpr] num1 + num2 | | tst.ts:7:19:7:22 | [VarRef] num2 | semmle.label | [VarRef] num2 | | tst.ts:9:1:9:19 | [DeclStmt] var strVar = ... | semmle.label | [DeclStmt] var strVar = ... | -| tst.ts:9:1:9:19 | [DeclStmt] var strVar = ... | semmle.order | 23 | +| tst.ts:9:1:9:19 | [DeclStmt] var strVar = ... | semmle.order | 24 | | tst.ts:9:5:9:10 | [VarDecl] strVar | semmle.label | [VarDecl] strVar | | tst.ts:9:5:9:18 | [VariableDeclarator] strVar: string | semmle.label | [VariableDeclarator] strVar: string | | tst.ts:9:13:9:18 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | | tst.ts:10:1:10:20 | [DeclStmt] var hello = ... | semmle.label | [DeclStmt] var hello = ... | -| tst.ts:10:1:10:20 | [DeclStmt] var hello = ... | semmle.order | 24 | +| tst.ts:10:1:10:20 | [DeclStmt] var hello = ... | semmle.order | 25 | | tst.ts:10:5:10:9 | [VarDecl] hello | semmle.label | [VarDecl] hello | | tst.ts:10:5:10:19 | [VariableDeclarator] hello = "hello" | semmle.label | [VariableDeclarator] hello = "hello" | | tst.ts:10:13:10:19 | [Literal] "hello" | semmle.label | [Literal] "hello" | | tst.ts:11:1:11:20 | [DeclStmt] var world = ... | semmle.label | [DeclStmt] var world = ... | -| tst.ts:11:1:11:20 | [DeclStmt] var world = ... | semmle.order | 25 | +| tst.ts:11:1:11:20 | [DeclStmt] var world = ... | semmle.order | 26 | | tst.ts:11:5:11:9 | [VarDecl] world | semmle.label | [VarDecl] world | | tst.ts:11:5:11:19 | [VariableDeclarator] world = "world" | semmle.label | [VariableDeclarator] world = "world" | | tst.ts:11:13:11:19 | [Literal] "world" | semmle.label | [Literal] "world" | | tst.ts:12:1:12:30 | [DeclStmt] var msg = ... | semmle.label | [DeclStmt] var msg = ... | -| tst.ts:12:1:12:30 | [DeclStmt] var msg = ... | semmle.order | 26 | +| tst.ts:12:1:12:30 | [DeclStmt] var msg = ... | semmle.order | 27 | | tst.ts:12:5:12:7 | [VarDecl] msg | semmle.label | [VarDecl] msg | | tst.ts:12:5:12:29 | [VariableDeclarator] msg = h ... + world | semmle.label | [VariableDeclarator] msg = h ... + world | | tst.ts:12:11:12:15 | [VarRef] hello | semmle.label | [VarRef] hello | @@ -258,7 +270,7 @@ nodes | tst.ts:12:19:12:21 | [Literal] " " | semmle.label | [Literal] " " | | tst.ts:12:25:12:29 | [VarRef] world | semmle.label | [VarRef] world | | tst.ts:14:1:14:63 | [FunctionDeclStmt] functio ... + y; } | semmle.label | [FunctionDeclStmt] functio ... + y; } | -| tst.ts:14:1:14:63 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 27 | +| tst.ts:14:1:14:63 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 28 | | tst.ts:14:10:14:15 | [VarDecl] concat | semmle.label | [VarDecl] concat | | tst.ts:14:17:14:17 | [SimpleParameter] x | semmle.label | [SimpleParameter] x | | tst.ts:14:20:14:25 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | @@ -271,7 +283,7 @@ nodes | tst.ts:14:56:14:60 | [BinaryExpr] x + y | semmle.label | [BinaryExpr] x + y | | tst.ts:14:60:14:60 | [VarRef] y | semmle.label | [VarRef] y | | tst.ts:16:1:16:60 | [FunctionDeclStmt] functio ... + y; } | semmle.label | [FunctionDeclStmt] functio ... + y; } | -| tst.ts:16:1:16:60 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 28 | +| tst.ts:16:1:16:60 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 29 | | tst.ts:16:10:16:12 | [VarDecl] add | semmle.label | [VarDecl] add | | tst.ts:16:14:16:14 | [SimpleParameter] x | semmle.label | [SimpleParameter] x | | tst.ts:16:17:16:22 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | @@ -284,7 +296,7 @@ nodes | tst.ts:16:53:16:57 | [BinaryExpr] x + y | semmle.label | [BinaryExpr] x + y | | tst.ts:16:57:16:57 | [VarRef] y | semmle.label | [VarRef] y | | tst.ts:18:1:18:40 | [FunctionDeclStmt] functio ... + y; } | semmle.label | [FunctionDeclStmt] functio ... + y; } | -| tst.ts:18:1:18:40 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 29 | +| tst.ts:18:1:18:40 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 30 | | tst.ts:18:10:18:16 | [VarDecl] untyped | semmle.label | [VarDecl] untyped | | tst.ts:18:18:18:18 | [SimpleParameter] x | semmle.label | [SimpleParameter] x | | tst.ts:18:21:18:21 | [SimpleParameter] y | semmle.label | [SimpleParameter] y | @@ -294,7 +306,7 @@ nodes | tst.ts:18:33:18:37 | [BinaryExpr] x + y | semmle.label | [BinaryExpr] x + y | | tst.ts:18:37:18:37 | [VarRef] y | semmle.label | [VarRef] y | | tst.ts:20:1:20:53 | [FunctionDeclStmt] functio ... + y; } | semmle.label | [FunctionDeclStmt] functio ... + y; } | -| tst.ts:20:1:20:53 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 30 | +| tst.ts:20:1:20:53 | [FunctionDeclStmt] functio ... + y; } | semmle.order | 31 | | tst.ts:20:10:20:21 | [VarDecl] partialTyped | semmle.label | [VarDecl] partialTyped | | tst.ts:20:23:20:23 | [SimpleParameter] x | semmle.label | [SimpleParameter] x | | tst.ts:20:26:20:26 | [SimpleParameter] y | semmle.label | [SimpleParameter] y | @@ -305,7 +317,7 @@ nodes | tst.ts:20:46:20:50 | [BinaryExpr] x + y | semmle.label | [BinaryExpr] x + y | | tst.ts:20:50:20:50 | [VarRef] y | semmle.label | [VarRef] y | | tst.ts:22:1:22:34 | [ForOfStmt] for (le ... 2]) {} | semmle.label | [ForOfStmt] for (le ... 2]) {} | -| tst.ts:22:1:22:34 | [ForOfStmt] for (le ... 2]) {} | semmle.order | 31 | +| tst.ts:22:1:22:34 | [ForOfStmt] for (le ... 2]) {} | semmle.order | 32 | | tst.ts:22:6:22:20 | [DeclStmt] let numFromLoop = ... | semmle.label | [DeclStmt] let numFromLoop = ... | | tst.ts:22:10:22:20 | [VarDecl] numFromLoop | semmle.label | [VarDecl] numFromLoop | | tst.ts:22:10:22:20 | [VariableDeclarator] numFromLoop | semmle.label | [VariableDeclarator] numFromLoop | @@ -314,54 +326,54 @@ nodes | tst.ts:22:29:22:29 | [Literal] 2 | semmle.label | [Literal] 2 | | tst.ts:22:33:22:34 | [BlockStmt] {} | semmle.label | [BlockStmt] {} | | tst.ts:24:1:24:20 | [DeclStmt] let array = ... | semmle.label | [DeclStmt] let array = ... | -| tst.ts:24:1:24:20 | [DeclStmt] let array = ... | semmle.order | 32 | +| tst.ts:24:1:24:20 | [DeclStmt] let array = ... | semmle.order | 33 | | tst.ts:24:5:24:9 | [VarDecl] array | semmle.label | [VarDecl] array | | tst.ts:24:5:24:19 | [VariableDeclarator] array: number[] | semmle.label | [VariableDeclarator] array: number[] | | tst.ts:24:12:24:17 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | tst.ts:24:12:24:19 | [ArrayTypeExpr] number[] | semmle.label | [ArrayTypeExpr] number[] | | tst.ts:26:1:26:25 | [DeclStmt] let voidType = ... | semmle.label | [DeclStmt] let voidType = ... | -| tst.ts:26:1:26:25 | [DeclStmt] let voidType = ... | semmle.order | 33 | +| tst.ts:26:1:26:25 | [DeclStmt] let voidType = ... | semmle.order | 34 | | tst.ts:26:5:26:12 | [VarDecl] voidType | semmle.label | [VarDecl] voidType | | tst.ts:26:5:26:24 | [VariableDeclarator] voidType: () => void | semmle.label | [VariableDeclarator] voidType: () => void | | tst.ts:26:15:26:24 | [FunctionExpr] () => void | semmle.label | [FunctionExpr] () => void | | tst.ts:26:15:26:24 | [FunctionTypeExpr] () => void | semmle.label | [FunctionTypeExpr] () => void | | tst.ts:26:21:26:24 | [KeywordTypeExpr] void | semmle.label | [KeywordTypeExpr] void | | tst.ts:27:1:27:29 | [DeclStmt] let undefinedType = ... | semmle.label | [DeclStmt] let undefinedType = ... | -| tst.ts:27:1:27:29 | [DeclStmt] let undefinedType = ... | semmle.order | 34 | +| tst.ts:27:1:27:29 | [DeclStmt] let undefinedType = ... | semmle.order | 35 | | tst.ts:27:5:27:17 | [VarDecl] undefinedType | semmle.label | [VarDecl] undefinedType | | tst.ts:27:5:27:28 | [VariableDeclarator] undefin ... defined | semmle.label | [VariableDeclarator] undefin ... defined | | tst.ts:27:20:27:28 | [KeywordTypeExpr] undefined | semmle.label | [KeywordTypeExpr] undefined | | tst.ts:28:1:28:26 | [DeclStmt] let nullType = ... | semmle.label | [DeclStmt] let nullType = ... | -| tst.ts:28:1:28:26 | [DeclStmt] let nullType = ... | semmle.order | 35 | +| tst.ts:28:1:28:26 | [DeclStmt] let nullType = ... | semmle.order | 36 | | tst.ts:28:5:28:12 | [VarDecl] nullType | semmle.label | [VarDecl] nullType | | tst.ts:28:5:28:25 | [VariableDeclarator] nullTyp ... = null | semmle.label | [VariableDeclarator] nullTyp ... = null | | tst.ts:28:15:28:18 | [KeywordTypeExpr] null | semmle.label | [KeywordTypeExpr] null | | tst.ts:28:22:28:25 | [Literal] null | semmle.label | [Literal] null | | tst.ts:29:1:29:27 | [DeclStmt] let neverType = ... | semmle.label | [DeclStmt] let neverType = ... | -| tst.ts:29:1:29:27 | [DeclStmt] let neverType = ... | semmle.order | 36 | +| tst.ts:29:1:29:27 | [DeclStmt] let neverType = ... | semmle.order | 37 | | tst.ts:29:5:29:13 | [VarDecl] neverType | semmle.label | [VarDecl] neverType | | tst.ts:29:5:29:26 | [VariableDeclarator] neverTy ... > never | semmle.label | [VariableDeclarator] neverTy ... > never | | tst.ts:29:16:29:26 | [FunctionExpr] () => never | semmle.label | [FunctionExpr] () => never | | tst.ts:29:16:29:26 | [FunctionTypeExpr] () => never | semmle.label | [FunctionTypeExpr] () => never | | tst.ts:29:22:29:26 | [KeywordTypeExpr] never | semmle.label | [KeywordTypeExpr] never | | tst.ts:30:1:30:23 | [DeclStmt] let symbolType = ... | semmle.label | [DeclStmt] let symbolType = ... | -| tst.ts:30:1:30:23 | [DeclStmt] let symbolType = ... | semmle.order | 37 | +| tst.ts:30:1:30:23 | [DeclStmt] let symbolType = ... | semmle.order | 38 | | tst.ts:30:5:30:14 | [VarDecl] symbolType | semmle.label | [VarDecl] symbolType | | tst.ts:30:5:30:22 | [VariableDeclarator] symbolType: symbol | semmle.label | [VariableDeclarator] symbolType: symbol | | tst.ts:30:17:30:22 | [KeywordTypeExpr] symbol | semmle.label | [KeywordTypeExpr] symbol | | tst.ts:31:1:31:45 | [DeclStmt] const uniqueSymbolType = ... | semmle.label | [DeclStmt] const uniqueSymbolType = ... | -| tst.ts:31:1:31:45 | [DeclStmt] const uniqueSymbolType = ... | semmle.order | 38 | +| tst.ts:31:1:31:45 | [DeclStmt] const uniqueSymbolType = ... | semmle.order | 39 | | tst.ts:31:7:31:22 | [VarDecl] uniqueSymbolType | semmle.label | [VarDecl] uniqueSymbolType | | tst.ts:31:7:31:44 | [VariableDeclarator] uniqueS ... = null | semmle.label | [VariableDeclarator] uniqueS ... = null | | tst.ts:31:25:31:37 | [KeywordTypeExpr] unique symbol | semmle.label | [KeywordTypeExpr] unique symbol | | tst.ts:31:41:31:44 | [Literal] null | semmle.label | [Literal] null | | tst.ts:32:1:32:23 | [DeclStmt] let objectType = ... | semmle.label | [DeclStmt] let objectType = ... | -| tst.ts:32:1:32:23 | [DeclStmt] let objectType = ... | semmle.order | 39 | +| tst.ts:32:1:32:23 | [DeclStmt] let objectType = ... | semmle.order | 40 | | tst.ts:32:5:32:14 | [VarDecl] objectType | semmle.label | [VarDecl] objectType | | tst.ts:32:5:32:22 | [VariableDeclarator] objectType: object | semmle.label | [VariableDeclarator] objectType: object | | tst.ts:32:17:32:22 | [KeywordTypeExpr] object | semmle.label | [KeywordTypeExpr] object | | tst.ts:33:1:33:39 | [DeclStmt] let intersection = ... | semmle.label | [DeclStmt] let intersection = ... | -| tst.ts:33:1:33:39 | [DeclStmt] let intersection = ... | semmle.order | 40 | +| tst.ts:33:1:33:39 | [DeclStmt] let intersection = ... | semmle.order | 41 | | tst.ts:33:5:33:16 | [VarDecl] intersection | semmle.label | [VarDecl] intersection | | tst.ts:33:5:33:38 | [VariableDeclarator] interse ... string} | semmle.label | [VariableDeclarator] interse ... string} | | tst.ts:33:19:33:24 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | @@ -371,14 +383,14 @@ nodes | tst.ts:33:29:33:37 | [FieldDeclaration] x: string | semmle.label | [FieldDeclaration] x: string | | tst.ts:33:32:33:37 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | | tst.ts:34:1:34:28 | [DeclStmt] let tuple = ... | semmle.label | [DeclStmt] let tuple = ... | -| tst.ts:34:1:34:28 | [DeclStmt] let tuple = ... | semmle.order | 41 | +| tst.ts:34:1:34:28 | [DeclStmt] let tuple = ... | semmle.order | 42 | | tst.ts:34:5:34:9 | [VarDecl] tuple | semmle.label | [VarDecl] tuple | | tst.ts:34:5:34:27 | [VariableDeclarator] tuple: ... string] | semmle.label | [VariableDeclarator] tuple: ... string] | | tst.ts:34:12:34:27 | [TupleTypeExpr] [number, string] | semmle.label | [TupleTypeExpr] [number, string] | | tst.ts:34:13:34:18 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | tst.ts:34:21:34:26 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | | tst.ts:36:1:36:56 | [DeclStmt] let tupleWithOptionalElement = ... | semmle.label | [DeclStmt] let tupleWithOptionalElement = ... | -| tst.ts:36:1:36:56 | [DeclStmt] let tupleWithOptionalElement = ... | semmle.order | 42 | +| tst.ts:36:1:36:56 | [DeclStmt] let tupleWithOptionalElement = ... | semmle.order | 43 | | tst.ts:36:5:36:28 | [VarDecl] tupleWithOptionalElement | semmle.label | [VarDecl] tupleWithOptionalElement | | tst.ts:36:5:36:55 | [VariableDeclarator] tupleWi ... umber?] | semmle.label | [VariableDeclarator] tupleWi ... umber?] | | tst.ts:36:31:36:55 | [TupleTypeExpr] [number ... umber?] | semmle.label | [TupleTypeExpr] [number ... umber?] | @@ -387,12 +399,12 @@ nodes | tst.ts:36:48:36:53 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | tst.ts:36:48:36:54 | [OptionalTypeExpr] number? | semmle.label | [OptionalTypeExpr] number? | | tst.ts:37:1:37:19 | [DeclStmt] let emptyTuple = ... | semmle.label | [DeclStmt] let emptyTuple = ... | -| tst.ts:37:1:37:19 | [DeclStmt] let emptyTuple = ... | semmle.order | 43 | +| tst.ts:37:1:37:19 | [DeclStmt] let emptyTuple = ... | semmle.order | 44 | | tst.ts:37:5:37:14 | [VarDecl] emptyTuple | semmle.label | [VarDecl] emptyTuple | | tst.ts:37:5:37:18 | [VariableDeclarator] emptyTuple: [] | semmle.label | [VariableDeclarator] emptyTuple: [] | | tst.ts:37:17:37:18 | [TupleTypeExpr] [] | semmle.label | [TupleTypeExpr] [] | | tst.ts:38:1:38:48 | [DeclStmt] let tupleWithRestElement = ... | semmle.label | [DeclStmt] let tupleWithRestElement = ... | -| tst.ts:38:1:38:48 | [DeclStmt] let tupleWithRestElement = ... | semmle.order | 44 | +| tst.ts:38:1:38:48 | [DeclStmt] let tupleWithRestElement = ... | semmle.order | 45 | | tst.ts:38:5:38:24 | [VarDecl] tupleWithRestElement | semmle.label | [VarDecl] tupleWithRestElement | | tst.ts:38:5:38:47 | [VariableDeclarator] tupleWi ... ring[]] | semmle.label | [VariableDeclarator] tupleWi ... ring[]] | | tst.ts:38:27:38:47 | [TupleTypeExpr] [number ... ring[]] | semmle.label | [TupleTypeExpr] [number ... ring[]] | @@ -401,7 +413,7 @@ nodes | tst.ts:38:39:38:44 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | | tst.ts:38:39:38:46 | [ArrayTypeExpr] string[] | semmle.label | [ArrayTypeExpr] string[] | | tst.ts:39:1:39:69 | [DeclStmt] let tupleWithOptionalAndRestElements = ... | semmle.label | [DeclStmt] let tupleWithOptionalAndRestElements = ... | -| tst.ts:39:1:39:69 | [DeclStmt] let tupleWithOptionalAndRestElements = ... | semmle.order | 45 | +| tst.ts:39:1:39:69 | [DeclStmt] let tupleWithOptionalAndRestElements = ... | semmle.order | 46 | | tst.ts:39:5:39:36 | [VarDecl] tupleWithOptionalAndRestElements | semmle.label | [VarDecl] tupleWithOptionalAndRestElements | | tst.ts:39:5:39:68 | [VariableDeclarator] tupleWi ... mber[]] | semmle.label | [VariableDeclarator] tupleWi ... mber[]] | | tst.ts:39:39:39:68 | [TupleTypeExpr] [number ... mber[]] | semmle.label | [TupleTypeExpr] [number ... mber[]] | @@ -412,12 +424,12 @@ nodes | tst.ts:39:60:39:65 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | tst.ts:39:60:39:67 | [ArrayTypeExpr] number[] | semmle.label | [ArrayTypeExpr] number[] | | tst.ts:40:1:40:25 | [DeclStmt] let unknownType = ... | semmle.label | [DeclStmt] let unknownType = ... | -| tst.ts:40:1:40:25 | [DeclStmt] let unknownType = ... | semmle.order | 46 | +| tst.ts:40:1:40:25 | [DeclStmt] let unknownType = ... | semmle.order | 47 | | tst.ts:40:5:40:15 | [VarDecl] unknownType | semmle.label | [VarDecl] unknownType | | tst.ts:40:5:40:24 | [VariableDeclarator] unknownType: unknown | semmle.label | [VariableDeclarator] unknownType: unknown | | tst.ts:40:18:40:24 | [KeywordTypeExpr] unknown | semmle.label | [KeywordTypeExpr] unknown | | tst.ts:42:1:42:40 | [DeclStmt] let constArrayLiteral = ... | semmle.label | [DeclStmt] let constArrayLiteral = ... | -| tst.ts:42:1:42:40 | [DeclStmt] let constArrayLiteral = ... | semmle.order | 47 | +| tst.ts:42:1:42:40 | [DeclStmt] let constArrayLiteral = ... | semmle.order | 48 | | tst.ts:42:5:42:21 | [VarDecl] constArrayLiteral | semmle.label | [VarDecl] constArrayLiteral | | tst.ts:42:5:42:39 | [VariableDeclarator] constAr ... s const | semmle.label | [VariableDeclarator] constAr ... s const | | tst.ts:42:25:42:30 | [ArrayExpr] [1, 2] | semmle.label | [ArrayExpr] [1, 2] | @@ -426,7 +438,7 @@ nodes | tst.ts:42:29:42:29 | [Literal] 2 | semmle.label | [Literal] 2 | | tst.ts:42:35:42:39 | [KeywordTypeExpr] const | semmle.label | [KeywordTypeExpr] const | | tst.ts:43:1:43:49 | [DeclStmt] let constObjectLiteral = ... | semmle.label | [DeclStmt] let constObjectLiteral = ... | -| tst.ts:43:1:43:49 | [DeclStmt] let constObjectLiteral = ... | semmle.order | 48 | +| tst.ts:43:1:43:49 | [DeclStmt] let constObjectLiteral = ... | semmle.order | 49 | | tst.ts:43:5:43:22 | [VarDecl] constObjectLiteral | semmle.label | [VarDecl] constObjectLiteral | | tst.ts:43:5:43:48 | [VariableDeclarator] constOb ... s const | semmle.label | [VariableDeclarator] constOb ... s const | | tst.ts:43:26:43:39 | [ObjectExpr] {foo: ...} | semmle.label | [ObjectExpr] {foo: ...} | @@ -436,7 +448,7 @@ nodes | tst.ts:43:33:43:37 | [Literal] "foo" | semmle.label | [Literal] "foo" | | tst.ts:43:44:43:48 | [KeywordTypeExpr] const | semmle.label | [KeywordTypeExpr] const | | tst.ts:46:1:51:1 | [TryStmt] try { } ... ; } } | semmle.label | [TryStmt] try { } ... ; } } | -| tst.ts:46:1:51:1 | [TryStmt] try { } ... ; } } | semmle.order | 49 | +| tst.ts:46:1:51:1 | [TryStmt] try { } ... ; } } | semmle.order | 50 | | tst.ts:46:5:46:7 | [BlockStmt] { } | semmle.label | [BlockStmt] { } | | tst.ts:47:1:51:1 | [CatchClause] catch ( ... ; } } | semmle.label | [CatchClause] catch ( ... ; } } | | tst.ts:47:8:47:8 | [SimpleParameter] e | semmle.label | [SimpleParameter] e | @@ -453,21 +465,21 @@ nodes | tst.ts:49:15:49:20 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | | tst.ts:49:24:49:24 | [VarRef] e | semmle.label | [VarRef] e | | tst.ts:54:1:56:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | -| tst.ts:54:1:56:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.order | 50 | +| tst.ts:54:1:56:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.order | 51 | | tst.ts:54:11:54:26 | [Identifier] NonAbstractDummy | semmle.label | [Identifier] NonAbstractDummy | | tst.ts:55:3:55:9 | [Label] getArea | semmle.label | [Label] getArea | | tst.ts:55:3:55:20 | [FunctionExpr] getArea(): number; | semmle.label | [FunctionExpr] getArea(): number; | | tst.ts:55:3:55:20 | [MethodSignature] getArea(): number; | semmle.label | [MethodSignature] getArea(): number; | | tst.ts:55:14:55:19 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | tst.ts:58:1:60:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | -| tst.ts:58:1:60:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.order | 51 | +| tst.ts:58:1:60:1 | [InterfaceDeclaration,TypeDefinition] interfa ... mber; } | semmle.order | 52 | | tst.ts:58:11:58:17 | [Identifier] HasArea | semmle.label | [Identifier] HasArea | | tst.ts:59:3:59:9 | [Label] getArea | semmle.label | [Label] getArea | | tst.ts:59:3:59:20 | [FunctionExpr] getArea(): number; | semmle.label | [FunctionExpr] getArea(): number; | | tst.ts:59:3:59:20 | [MethodSignature] getArea(): number; | semmle.label | [MethodSignature] getArea(): number; | | tst.ts:59:14:59:19 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | tst.ts:63:1:63:45 | [DeclStmt] let Ctor = ... | semmle.label | [DeclStmt] let Ctor = ... | -| tst.ts:63:1:63:45 | [DeclStmt] let Ctor = ... | semmle.order | 52 | +| tst.ts:63:1:63:45 | [DeclStmt] let Ctor = ... | semmle.order | 53 | | tst.ts:63:5:63:8 | [VarDecl] Ctor | semmle.label | [VarDecl] Ctor | | tst.ts:63:5:63:44 | [VariableDeclarator] Ctor: a ... = Shape | semmle.label | [VariableDeclarator] Ctor: a ... = Shape | | tst.ts:63:11:63:36 | [FunctionExpr] abstrac ... HasArea | semmle.label | [FunctionExpr] abstrac ... HasArea | @@ -475,7 +487,7 @@ nodes | tst.ts:63:30:63:36 | [LocalTypeAccess] HasArea | semmle.label | [LocalTypeAccess] HasArea | | tst.ts:63:40:63:44 | [VarRef] Shape | semmle.label | [VarRef] Shape | | tst.ts:65:1:65:54 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | -| tst.ts:65:1:65:54 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.order | 53 | +| tst.ts:65:1:65:54 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.order | 54 | | tst.ts:65:6:65:12 | [Identifier] MyUnion | semmle.label | [Identifier] MyUnion | | tst.ts:65:16:65:30 | [InterfaceTypeExpr] {myUnion: true} | semmle.label | [InterfaceTypeExpr] {myUnion: true} | | tst.ts:65:16:65:53 | [UnionTypeExpr] {myUnio ... : true} | semmle.label | [UnionTypeExpr] {myUnio ... : true} | @@ -487,7 +499,7 @@ nodes | tst.ts:65:35:65:52 | [FieldDeclaration] stillMyUnion: true | semmle.label | [FieldDeclaration] stillMyUnion: true | | tst.ts:65:49:65:52 | [LiteralTypeExpr] true | semmle.label | [LiteralTypeExpr] true | | tst.ts:66:1:66:38 | [DeclStmt] let union1 = ... | semmle.label | [DeclStmt] let union1 = ... | -| tst.ts:66:1:66:38 | [DeclStmt] let union1 = ... | semmle.order | 54 | +| tst.ts:66:1:66:38 | [DeclStmt] let union1 = ... | semmle.order | 55 | | tst.ts:66:5:66:10 | [VarDecl] union1 | semmle.label | [VarDecl] union1 | | tst.ts:66:5:66:37 | [VariableDeclarator] union1: ... : true} | semmle.label | [VariableDeclarator] union1: ... : true} | | tst.ts:66:13:66:19 | [LocalTypeAccess] MyUnion | semmle.label | [LocalTypeAccess] MyUnion | @@ -496,7 +508,7 @@ nodes | tst.ts:66:24:66:36 | [Property] myUnion: true | semmle.label | [Property] myUnion: true | | tst.ts:66:33:66:36 | [Literal] true | semmle.label | [Literal] true | | tst.ts:68:1:68:49 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | -| tst.ts:68:1:68:49 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.order | 55 | +| tst.ts:68:1:68:49 | [TypeAliasDeclaration,TypeDefinition] type My ... true}; | semmle.order | 56 | | tst.ts:68:6:68:13 | [Identifier] MyUnion2 | semmle.label | [Identifier] MyUnion2 | | tst.ts:68:17:68:23 | [LocalTypeAccess] MyUnion | semmle.label | [LocalTypeAccess] MyUnion | | tst.ts:68:17:68:48 | [UnionTypeExpr] MyUnion ... : true} | semmle.label | [UnionTypeExpr] MyUnion ... : true} | @@ -505,7 +517,7 @@ nodes | tst.ts:68:28:68:47 | [FieldDeclaration] yetAnotherType: true | semmle.label | [FieldDeclaration] yetAnotherType: true | | tst.ts:68:44:68:47 | [LiteralTypeExpr] true | semmle.label | [LiteralTypeExpr] true | | tst.ts:69:1:69:46 | [DeclStmt] let union2 = ... | semmle.label | [DeclStmt] let union2 = ... | -| tst.ts:69:1:69:46 | [DeclStmt] let union2 = ... | semmle.order | 56 | +| tst.ts:69:1:69:46 | [DeclStmt] let union2 = ... | semmle.order | 57 | | tst.ts:69:5:69:10 | [VarDecl] union2 | semmle.label | [VarDecl] union2 | | tst.ts:69:5:69:45 | [VariableDeclarator] union2: ... : true} | semmle.label | [VariableDeclarator] union2: ... : true} | | tst.ts:69:13:69:20 | [LocalTypeAccess] MyUnion2 | semmle.label | [LocalTypeAccess] MyUnion2 | @@ -514,7 +526,7 @@ nodes | tst.ts:69:25:69:44 | [Property] yetAnotherType: true | semmle.label | [Property] yetAnotherType: true | | tst.ts:69:41:69:44 | [Literal] true | semmle.label | [Literal] true | | tst.ts:71:1:130:1 | [NamespaceDeclaration] module ... } } | semmle.label | [NamespaceDeclaration] module ... } } | -| tst.ts:71:1:130:1 | [NamespaceDeclaration] module ... } } | semmle.order | 57 | +| tst.ts:71:1:130:1 | [NamespaceDeclaration] module ... } } | semmle.order | 58 | | tst.ts:71:8:71:11 | [VarDecl] TS43 | semmle.label | [VarDecl] TS43 | | tst.ts:73:3:76:3 | [InterfaceDeclaration,TypeDefinition] interfa ... n); } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... n); } | | tst.ts:73:13:73:18 | [Identifier] ThingI | semmle.label | [Identifier] ThingI | @@ -679,7 +691,7 @@ nodes | tst.ts:127:14:127:28 | [DotExpr] this.#someValue | semmle.label | [DotExpr] this.#someValue | | tst.ts:127:19:127:28 | [Label] #someValue | semmle.label | [Label] #someValue | | tst.ts:132:1:193:1 | [NamespaceDeclaration] module ... } } | semmle.label | [NamespaceDeclaration] module ... } } | -| tst.ts:132:1:193:1 | [NamespaceDeclaration] module ... } } | semmle.order | 58 | +| tst.ts:132:1:193:1 | [NamespaceDeclaration] module ... } } | semmle.order | 59 | | tst.ts:132:8:132:11 | [VarDecl] TS44 | semmle.label | [VarDecl] TS44 | | tst.ts:133:3:138:3 | [FunctionDeclStmt] functio ... } } | semmle.label | [FunctionDeclStmt] functio ... } } | | tst.ts:133:12:133:14 | [VarDecl] foo | semmle.label | [VarDecl] foo | @@ -870,7 +882,7 @@ nodes | tst.ts:189:19:189:28 | [DotExpr] Foo.#count | semmle.label | [DotExpr] Foo.#count | | tst.ts:189:23:189:28 | [Label] #count | semmle.label | [Label] #count | | tst.ts:195:1:235:1 | [NamespaceDeclaration] module ... } } } | semmle.label | [NamespaceDeclaration] module ... } } } | -| tst.ts:195:1:235:1 | [NamespaceDeclaration] module ... } } } | semmle.order | 59 | +| tst.ts:195:1:235:1 | [NamespaceDeclaration] module ... } } } | semmle.order | 60 | | tst.ts:195:8:195:11 | [VarDecl] TS45 | semmle.label | [VarDecl] TS45 | | tst.ts:197:3:197:36 | [TypeAliasDeclaration,TypeDefinition] type A ... ring>>; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type A ... ring>>; | | tst.ts:197:8:197:8 | [Identifier] A | semmle.label | [Identifier] A | @@ -983,21 +995,21 @@ nodes | tst.ts:232:28:232:38 | [DotExpr] other.#name | semmle.label | [DotExpr] other.#name | | tst.ts:232:34:232:38 | [Label] #name | semmle.label | [Label] #name | | tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | semmle.label | [ImportDeclaration] import ... son" }; | -| tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | semmle.order | 60 | +| tst.ts:237:1:237:63 | [ImportDeclaration] import ... son" }; | semmle.order | 61 | | tst.ts:237:8:237:16 | [ImportSpecifier] * as Foo3 | semmle.label | [ImportSpecifier] * as Foo3 | | tst.ts:237:13:237:16 | [VarDecl] Foo3 | semmle.label | [VarDecl] Foo3 | | tst.ts:237:23:237:40 | [Literal] "./something.json" | semmle.label | [Literal] "./something.json" | | tst.ts:237:47:237:62 | [ObjectExpr] { type: "json" } | semmle.label | [ObjectExpr] { type: "json" } | | tst.ts:237:49:237:60 | [Property] type: "json" | semmle.label | [Property] type: "json" | | tst.ts:238:1:238:19 | [DeclStmt] var foo = ... | semmle.label | [DeclStmt] var foo = ... | -| tst.ts:238:1:238:19 | [DeclStmt] var foo = ... | semmle.order | 61 | +| tst.ts:238:1:238:19 | [DeclStmt] var foo = ... | semmle.order | 62 | | tst.ts:238:5:238:7 | [VarDecl] foo | semmle.label | [VarDecl] foo | | tst.ts:238:5:238:18 | [VariableDeclarator] foo = Foo3.foo | semmle.label | [VariableDeclarator] foo = Foo3.foo | | tst.ts:238:11:238:14 | [VarRef] Foo3 | semmle.label | [VarRef] Foo3 | | tst.ts:238:11:238:18 | [DotExpr] Foo3.foo | semmle.label | [DotExpr] Foo3.foo | | tst.ts:238:16:238:18 | [Label] foo | semmle.label | [Label] foo | | tst.ts:240:1:296:1 | [NamespaceDeclaration] module ... }; } | semmle.label | [NamespaceDeclaration] module ... }; } | -| tst.ts:240:1:296:1 | [NamespaceDeclaration] module ... }; } | semmle.order | 62 | +| tst.ts:240:1:296:1 | [NamespaceDeclaration] module ... }; } | semmle.order | 63 | | tst.ts:240:8:240:11 | [VarDecl] TS46 | semmle.label | [VarDecl] TS46 | | tst.ts:241:3:241:15 | [ClassDefinition,TypeDefinition] class Base {} | semmle.label | [ClassDefinition,TypeDefinition] class Base {} | | tst.ts:241:9:241:12 | [VarDecl] Base | semmle.label | [VarDecl] Base | @@ -1192,13 +1204,13 @@ nodes | tst.ts:293:7:293:24 | [ExprStmt] payload.toFixed(); | semmle.label | [ExprStmt] payload.toFixed(); | | tst.ts:293:15:293:21 | [Label] toFixed | semmle.label | [Label] toFixed | | tst.ts:298:1:298:21 | [DeclStmt] const key = ... | semmle.label | [DeclStmt] const key = ... | -| tst.ts:298:1:298:21 | [DeclStmt] const key = ... | semmle.order | 63 | +| tst.ts:298:1:298:21 | [DeclStmt] const key = ... | semmle.order | 64 | | tst.ts:298:7:298:9 | [VarDecl] key | semmle.label | [VarDecl] key | | tst.ts:298:7:298:20 | [VariableDeclarator] key = Symbol() | semmle.label | [VariableDeclarator] key = Symbol() | | tst.ts:298:13:298:18 | [VarRef] Symbol | semmle.label | [VarRef] Symbol | | tst.ts:298:13:298:20 | [CallExpr] Symbol() | semmle.label | [CallExpr] Symbol() | | tst.ts:300:1:300:58 | [DeclStmt] const numberOrString = ... | semmle.label | [DeclStmt] const numberOrString = ... | -| tst.ts:300:1:300:58 | [DeclStmt] const numberOrString = ... | semmle.order | 64 | +| tst.ts:300:1:300:58 | [DeclStmt] const numberOrString = ... | semmle.order | 65 | | tst.ts:300:7:300:20 | [VarDecl] numberOrString | semmle.label | [VarDecl] numberOrString | | tst.ts:300:7:300:57 | [VariableDeclarator] numberO ... "hello" | semmle.label | [VariableDeclarator] numberO ... "hello" | | tst.ts:300:24:300:27 | [VarRef] Math | semmle.label | [VarRef] Math | @@ -1211,7 +1223,7 @@ nodes | tst.ts:300:46:300:47 | [Literal] 42 | semmle.label | [Literal] 42 | | tst.ts:300:51:300:57 | [Literal] "hello" | semmle.label | [Literal] "hello" | | tst.ts:302:1:304:2 | [DeclStmt] let obj = ... | semmle.label | [DeclStmt] let obj = ... | -| tst.ts:302:1:304:2 | [DeclStmt] let obj = ... | semmle.order | 65 | +| tst.ts:302:1:304:2 | [DeclStmt] let obj = ... | semmle.order | 66 | | tst.ts:302:5:302:7 | [VarDecl] obj | semmle.label | [VarDecl] obj | | tst.ts:302:5:304:1 | [VariableDeclarator] obj = { ... ring, } | semmle.label | [VariableDeclarator] obj = { ... ring, } | | tst.ts:302:11:304:1 | [ObjectExpr] { [ke ... ring, } | semmle.label | [ObjectExpr] { [ke ... ring, } | @@ -1219,7 +1231,7 @@ nodes | tst.ts:303:4:303:6 | [VarRef] key | semmle.label | [VarRef] key | | tst.ts:303:10:303:23 | [VarRef] numberOrString | semmle.label | [VarRef] numberOrString | | tst.ts:306:1:309:1 | [IfStmt] if (typ ... se(); } | semmle.label | [IfStmt] if (typ ... se(); } | -| tst.ts:306:1:309:1 | [IfStmt] if (typ ... se(); } | semmle.order | 66 | +| tst.ts:306:1:309:1 | [IfStmt] if (typ ... se(); } | semmle.order | 67 | | tst.ts:306:5:306:19 | [UnaryExpr] typeof obj[key] | semmle.label | [UnaryExpr] typeof obj[key] | | tst.ts:306:5:306:32 | [BinaryExpr] typeof ... string" | semmle.label | [BinaryExpr] typeof ... string" | | tst.ts:306:12:306:14 | [VarRef] obj | semmle.label | [VarRef] obj | @@ -1239,7 +1251,7 @@ nodes | tst.ts:308:3:308:20 | [ExprStmt] str.toUpperCase(); | semmle.label | [ExprStmt] str.toUpperCase(); | | tst.ts:308:7:308:17 | [Label] toUpperCase | semmle.label | [Label] toUpperCase | | tst.ts:313:1:316:10 | [FunctionDeclStmt] functio ... void {} | semmle.label | [FunctionDeclStmt] functio ... void {} | -| tst.ts:313:1:316:10 | [FunctionDeclStmt] functio ... void {} | semmle.order | 67 | +| tst.ts:313:1:316:10 | [FunctionDeclStmt] functio ... void {} | semmle.order | 68 | | tst.ts:313:10:313:10 | [VarDecl] f | semmle.label | [VarDecl] f | | tst.ts:313:12:313:12 | [Identifier] T | semmle.label | [Identifier] T | | tst.ts:313:12:313:12 | [TypeParameter] T | semmle.label | [TypeParameter] T | @@ -1262,11 +1274,11 @@ nodes | tst.ts:316:4:316:7 | [KeywordTypeExpr] void | semmle.label | [KeywordTypeExpr] void | | tst.ts:316:9:316:10 | [BlockStmt] {} | semmle.label | [BlockStmt] {} | | tst.ts:316:11:316:11 | [EmptyStmt] ; | semmle.label | [EmptyStmt] ; | -| tst.ts:316:11:316:11 | [EmptyStmt] ; | semmle.order | 68 | +| tst.ts:316:11:316:11 | [EmptyStmt] ; | semmle.order | 69 | | tst.ts:318:1:318:1 | [VarRef] f | semmle.label | [VarRef] f | | tst.ts:318:1:321:2 | [CallExpr] f({ p ... se() }) | semmle.label | [CallExpr] f({ p ... se() }) | | tst.ts:318:1:321:3 | [ExprStmt] f({ p ... e() }); | semmle.label | [ExprStmt] f({ p ... e() }); | -| tst.ts:318:1:321:3 | [ExprStmt] f({ p ... e() }); | semmle.order | 69 | +| tst.ts:318:1:321:3 | [ExprStmt] f({ p ... e() }); | semmle.order | 70 | | tst.ts:318:3:321:1 | [ObjectExpr] {produce: ...} | semmle.label | [ObjectExpr] {produce: ...} | | tst.ts:319:3:319:9 | [Label] produce | semmle.label | [Label] produce | | tst.ts:319:3:319:17 | [Property] produce: n => n | semmle.label | [Property] produce: n => n | @@ -1282,7 +1294,7 @@ nodes | tst.ts:320:17:320:31 | [MethodCallExpr] x.toLowerCase() | semmle.label | [MethodCallExpr] x.toLowerCase() | | tst.ts:320:19:320:29 | [Label] toLowerCase | semmle.label | [Label] toLowerCase | | tst.ts:325:1:325:36 | [DeclStmt] const ErrorMap = ... | semmle.label | [DeclStmt] const ErrorMap = ... | -| tst.ts:325:1:325:36 | [DeclStmt] const ErrorMap = ... | semmle.order | 70 | +| tst.ts:325:1:325:36 | [DeclStmt] const ErrorMap = ... | semmle.order | 71 | | tst.ts:325:7:325:14 | [VarDecl] ErrorMap | semmle.label | [VarDecl] ErrorMap | | tst.ts:325:7:325:35 | [VariableDeclarator] ErrorMa ... Error> | semmle.label | [VariableDeclarator] ErrorMa ... Error> | | tst.ts:325:18:325:20 | [VarRef] Map | semmle.label | [VarRef] Map | @@ -1290,13 +1302,13 @@ nodes | tst.ts:325:22:325:27 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | | tst.ts:325:30:325:34 | [LocalTypeAccess] Error | semmle.label | [LocalTypeAccess] Error | | tst.ts:327:1:327:32 | [DeclStmt] const errorMap = ... | semmle.label | [DeclStmt] const errorMap = ... | -| tst.ts:327:1:327:32 | [DeclStmt] const errorMap = ... | semmle.order | 71 | +| tst.ts:327:1:327:32 | [DeclStmt] const errorMap = ... | semmle.order | 72 | | tst.ts:327:7:327:14 | [VarDecl] errorMap | semmle.label | [VarDecl] errorMap | | tst.ts:327:7:327:31 | [VariableDeclarator] errorMa ... orMap() | semmle.label | [VariableDeclarator] errorMa ... orMap() | | tst.ts:327:18:327:31 | [NewExpr] new ErrorMap() | semmle.label | [NewExpr] new ErrorMap() | | tst.ts:327:22:327:29 | [VarRef] ErrorMap | semmle.label | [VarRef] ErrorMap | | tst.ts:331:1:334:14 | [TypeAliasDeclaration,TypeDefinition] type Fi ... never; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Fi ... never; | -| tst.ts:331:1:334:14 | [TypeAliasDeclaration,TypeDefinition] type Fi ... never; | semmle.order | 72 | +| tst.ts:331:1:334:14 | [TypeAliasDeclaration,TypeDefinition] type Fi ... never; | semmle.order | 73 | | tst.ts:331:6:331:16 | [Identifier] FirstString | semmle.label | [Identifier] FirstString | | tst.ts:331:18:331:18 | [Identifier] T | semmle.label | [Identifier] T | | tst.ts:331:18:331:18 | [TypeParameter] T | semmle.label | [TypeParameter] T | @@ -1313,7 +1325,7 @@ nodes | tst.ts:333:9:333:9 | [LocalTypeAccess] S | semmle.label | [LocalTypeAccess] S | | tst.ts:334:9:334:13 | [KeywordTypeExpr] never | semmle.label | [KeywordTypeExpr] never | | tst.ts:336:1:336:51 | [TypeAliasDeclaration,TypeDefinition] type F ... lean]>; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type F ... lean]>; | -| tst.ts:336:1:336:51 | [TypeAliasDeclaration,TypeDefinition] type F ... lean]>; | semmle.order | 73 | +| tst.ts:336:1:336:51 | [TypeAliasDeclaration,TypeDefinition] type F ... lean]>; | semmle.order | 74 | | tst.ts:336:6:336:6 | [Identifier] F | semmle.label | [Identifier] F | | tst.ts:336:10:336:20 | [LocalTypeAccess] FirstString | semmle.label | [LocalTypeAccess] FirstString | | tst.ts:336:10:336:50 | [GenericTypeExpr] FirstSt ... olean]> | semmle.label | [GenericTypeExpr] FirstSt ... olean]> | @@ -1324,13 +1336,13 @@ nodes | tst.ts:336:34:336:39 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | tst.ts:336:42:336:48 | [KeywordTypeExpr] boolean | semmle.label | [KeywordTypeExpr] boolean | | tst.ts:338:1:338:17 | [DeclStmt] const a = ... | semmle.label | [DeclStmt] const a = ... | -| tst.ts:338:1:338:17 | [DeclStmt] const a = ... | semmle.order | 74 | +| tst.ts:338:1:338:17 | [DeclStmt] const a = ... | semmle.order | 75 | | tst.ts:338:7:338:7 | [VarDecl] a | semmle.label | [VarDecl] a | | tst.ts:338:7:338:16 | [VariableDeclarator] a: F = 'a' | semmle.label | [VariableDeclarator] a: F = 'a' | | tst.ts:338:10:338:10 | [LocalTypeAccess] F | semmle.label | [LocalTypeAccess] F | | tst.ts:338:14:338:16 | [Literal] 'a' | semmle.label | [Literal] 'a' | | tst.ts:342:1:345:1 | [InterfaceDeclaration,TypeDefinition] interfa ... void; } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... void; } | -| tst.ts:342:1:345:1 | [InterfaceDeclaration,TypeDefinition] interfa ... void; } | semmle.order | 75 | +| tst.ts:342:1:345:1 | [InterfaceDeclaration,TypeDefinition] interfa ... void; } | semmle.order | 76 | | tst.ts:342:11:342:15 | [Identifier] State | semmle.label | [Identifier] State | | tst.ts:342:17:342:24 | [TypeParameter] in out T | semmle.label | [TypeParameter] in out T | | tst.ts:342:24:342:24 | [Identifier] T | semmle.label | [Identifier] T | @@ -1347,7 +1359,7 @@ nodes | tst.ts:344:16:344:16 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T | | tst.ts:344:22:344:25 | [KeywordTypeExpr] void | semmle.label | [KeywordTypeExpr] void | | tst.ts:347:1:350:1 | [DeclStmt] const state = ... | semmle.label | [DeclStmt] const state = ... | -| tst.ts:347:1:350:1 | [DeclStmt] const state = ... | semmle.order | 76 | +| tst.ts:347:1:350:1 | [DeclStmt] const state = ... | semmle.order | 77 | | tst.ts:347:7:347:11 | [VarDecl] state | semmle.label | [VarDecl] state | | tst.ts:347:7:350:1 | [VariableDeclarator] state: ... > { } } | semmle.label | [VariableDeclarator] state: ... > { } } | | tst.ts:347:14:347:18 | [LocalTypeAccess] State | semmle.label | [LocalTypeAccess] State | @@ -1364,7 +1376,7 @@ nodes | tst.ts:349:9:349:13 | [SimpleParameter] value | semmle.label | [SimpleParameter] value | | tst.ts:349:19:349:21 | [BlockStmt] { } | semmle.label | [BlockStmt] { } | | tst.ts:352:1:352:29 | [DeclStmt] const fortyTwo = ... | semmle.label | [DeclStmt] const fortyTwo = ... | -| tst.ts:352:1:352:29 | [DeclStmt] const fortyTwo = ... | semmle.order | 77 | +| tst.ts:352:1:352:29 | [DeclStmt] const fortyTwo = ... | semmle.order | 78 | | tst.ts:352:7:352:14 | [VarDecl] fortyTwo | semmle.label | [VarDecl] fortyTwo | | tst.ts:352:7:352:28 | [VariableDeclarator] fortyTw ... e.get() | semmle.label | [VariableDeclarator] fortyTw ... e.get() | | tst.ts:352:18:352:22 | [VarRef] state | semmle.label | [VarRef] state | @@ -1372,7 +1384,7 @@ nodes | tst.ts:352:18:352:28 | [MethodCallExpr] state.get() | semmle.label | [MethodCallExpr] state.get() | | tst.ts:352:24:352:26 | [Label] get | semmle.label | [Label] get | | tst.ts:356:1:356:44 | [ImportDeclaration] import ... S.mjs'; | semmle.label | [ImportDeclaration] import ... S.mjs'; | -| tst.ts:356:1:356:44 | [ImportDeclaration] import ... S.mjs'; | semmle.order | 78 | +| tst.ts:356:1:356:44 | [ImportDeclaration] import ... S.mjs'; | semmle.order | 79 | | tst.ts:356:8:356:18 | [ImportSpecifier] tstModuleES | semmle.label | [ImportSpecifier] tstModuleES | | tst.ts:356:8:356:18 | [VarDecl] tstModuleES | semmle.label | [VarDecl] tstModuleES | | tst.ts:356:25:356:43 | [Literal] './tstModuleES.mjs' | semmle.label | [Literal] './tstModuleES.mjs' | @@ -1380,12 +1392,12 @@ nodes | tst.ts:358:1:358:11 | [DotExpr] console.log | semmle.label | [DotExpr] console.log | | tst.ts:358:1:358:26 | [MethodCallExpr] console ... leES()) | semmle.label | [MethodCallExpr] console ... leES()) | | tst.ts:358:1:358:27 | [ExprStmt] console ... eES()); | semmle.label | [ExprStmt] console ... eES()); | -| tst.ts:358:1:358:27 | [ExprStmt] console ... eES()); | semmle.order | 79 | +| tst.ts:358:1:358:27 | [ExprStmt] console ... eES()); | semmle.order | 80 | | tst.ts:358:9:358:11 | [Label] log | semmle.label | [Label] log | | tst.ts:358:13:358:23 | [VarRef] tstModuleES | semmle.label | [VarRef] tstModuleES | | tst.ts:358:13:358:25 | [CallExpr] tstModuleES() | semmle.label | [CallExpr] tstModuleES() | | tst.ts:360:1:360:50 | [ImportDeclaration] import ... S.cjs'; | semmle.label | [ImportDeclaration] import ... S.cjs'; | -| tst.ts:360:1:360:50 | [ImportDeclaration] import ... S.cjs'; | semmle.order | 80 | +| tst.ts:360:1:360:50 | [ImportDeclaration] import ... S.cjs'; | semmle.order | 81 | | tst.ts:360:10:360:21 | [ImportSpecifier] tstModuleCJS | semmle.label | [ImportSpecifier] tstModuleCJS | | tst.ts:360:10:360:21 | [Label] tstModuleCJS | semmle.label | [Label] tstModuleCJS | | tst.ts:360:10:360:21 | [VarDecl] tstModuleCJS | semmle.label | [VarDecl] tstModuleCJS | @@ -1394,12 +1406,12 @@ nodes | tst.ts:362:1:362:11 | [DotExpr] console.log | semmle.label | [DotExpr] console.log | | tst.ts:362:1:362:27 | [MethodCallExpr] console ... eCJS()) | semmle.label | [MethodCallExpr] console ... eCJS()) | | tst.ts:362:1:362:28 | [ExprStmt] console ... CJS()); | semmle.label | [ExprStmt] console ... CJS()); | -| tst.ts:362:1:362:28 | [ExprStmt] console ... CJS()); | semmle.order | 81 | +| tst.ts:362:1:362:28 | [ExprStmt] console ... CJS()); | semmle.order | 82 | | tst.ts:362:9:362:11 | [Label] log | semmle.label | [Label] log | | tst.ts:362:13:362:24 | [VarRef] tstModuleCJS | semmle.label | [VarRef] tstModuleCJS | | tst.ts:362:13:362:26 | [CallExpr] tstModuleCJS() | semmle.label | [CallExpr] tstModuleCJS() | | tst.ts:368:1:368:34 | [ImportDeclaration] import ... ffixA'; | semmle.label | [ImportDeclaration] import ... ffixA'; | -| tst.ts:368:1:368:34 | [ImportDeclaration] import ... ffixA'; | semmle.order | 82 | +| tst.ts:368:1:368:34 | [ImportDeclaration] import ... ffixA'; | semmle.order | 83 | | tst.ts:368:8:368:13 | [ImportSpecifier] * as A | semmle.label | [ImportSpecifier] * as A | | tst.ts:368:13:368:13 | [VarDecl] A | semmle.label | [VarDecl] A | | tst.ts:368:20:368:33 | [Literal] './tstSuffixA' | semmle.label | [Literal] './tstSuffixA' | @@ -1407,14 +1419,14 @@ nodes | tst.ts:370:1:370:11 | [DotExpr] console.log | semmle.label | [DotExpr] console.log | | tst.ts:370:1:370:29 | [MethodCallExpr] console ... File()) | semmle.label | [MethodCallExpr] console ... File()) | | tst.ts:370:1:370:30 | [ExprStmt] console ... ile()); | semmle.label | [ExprStmt] console ... ile()); | -| tst.ts:370:1:370:30 | [ExprStmt] console ... ile()); | semmle.order | 83 | +| tst.ts:370:1:370:30 | [ExprStmt] console ... ile()); | semmle.order | 84 | | tst.ts:370:9:370:11 | [Label] log | semmle.label | [Label] log | | tst.ts:370:13:370:13 | [VarRef] A | semmle.label | [VarRef] A | | tst.ts:370:13:370:26 | [DotExpr] A.resolvedFile | semmle.label | [DotExpr] A.resolvedFile | | tst.ts:370:13:370:28 | [MethodCallExpr] A.resolvedFile() | semmle.label | [MethodCallExpr] A.resolvedFile() | | tst.ts:370:15:370:26 | [Label] resolvedFile | semmle.label | [Label] resolvedFile | | tst.ts:372:1:372:34 | [ImportDeclaration] import ... ffixB'; | semmle.label | [ImportDeclaration] import ... ffixB'; | -| tst.ts:372:1:372:34 | [ImportDeclaration] import ... ffixB'; | semmle.order | 84 | +| tst.ts:372:1:372:34 | [ImportDeclaration] import ... ffixB'; | semmle.order | 85 | | tst.ts:372:8:372:13 | [ImportSpecifier] * as B | semmle.label | [ImportSpecifier] * as B | | tst.ts:372:13:372:13 | [VarDecl] B | semmle.label | [VarDecl] B | | tst.ts:372:20:372:33 | [Literal] './tstSuffixB' | semmle.label | [Literal] './tstSuffixB' | @@ -1422,14 +1434,14 @@ nodes | tst.ts:374:1:374:11 | [DotExpr] console.log | semmle.label | [DotExpr] console.log | | tst.ts:374:1:374:29 | [MethodCallExpr] console ... File()) | semmle.label | [MethodCallExpr] console ... File()) | | tst.ts:374:1:374:30 | [ExprStmt] console ... ile()); | semmle.label | [ExprStmt] console ... ile()); | -| tst.ts:374:1:374:30 | [ExprStmt] console ... ile()); | semmle.order | 85 | +| tst.ts:374:1:374:30 | [ExprStmt] console ... ile()); | semmle.order | 86 | | tst.ts:374:9:374:11 | [Label] log | semmle.label | [Label] log | | tst.ts:374:13:374:13 | [VarRef] B | semmle.label | [VarRef] B | | tst.ts:374:13:374:26 | [DotExpr] B.resolvedFile | semmle.label | [DotExpr] B.resolvedFile | | tst.ts:374:13:374:28 | [MethodCallExpr] B.resolvedFile() | semmle.label | [MethodCallExpr] B.resolvedFile() | | tst.ts:374:15:374:26 | [Label] resolvedFile | semmle.label | [Label] resolvedFile | | tst.ts:379:1:386:1 | [NamespaceDeclaration] module ... ; } | semmle.label | [NamespaceDeclaration] module ... ; } | -| tst.ts:379:1:386:1 | [NamespaceDeclaration] module ... ; } | semmle.order | 86 | +| tst.ts:379:1:386:1 | [NamespaceDeclaration] module ... ; } | semmle.order | 87 | | tst.ts:379:8:379:11 | [VarDecl] TS48 | semmle.label | [VarDecl] TS48 | | tst.ts:381:5:381:73 | [TypeAliasDeclaration,TypeDefinition] type So ... never; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type So ... never; | | tst.ts:381:10:381:16 | [Identifier] SomeNum | semmle.label | [Identifier] SomeNum | @@ -1468,7 +1480,7 @@ nodes | tst.ts:385:59:385:63 | [Literal] false | semmle.label | [Literal] false | | tst.ts:385:66:385:71 | [Literal] "bye!" | semmle.label | [Literal] "bye!" | | tst.ts:390:1:426:1 | [NamespaceDeclaration] module ... } } } | semmle.label | [NamespaceDeclaration] module ... } } } | -| tst.ts:390:1:426:1 | [NamespaceDeclaration] module ... } } } | semmle.order | 87 | +| tst.ts:390:1:426:1 | [NamespaceDeclaration] module ... } } } | semmle.order | 88 | | tst.ts:390:8:390:11 | [VarDecl] TS49 | semmle.label | [VarDecl] TS49 | | tst.ts:391:3:391:41 | [TypeAliasDeclaration,TypeDefinition] type Co ... "blue"; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Co ... "blue"; | | tst.ts:391:8:391:13 | [Identifier] Colors | semmle.label | [Identifier] Colors | @@ -1565,7 +1577,7 @@ nodes | tst.ts:423:12:423:15 | [Label] name | semmle.label | [Label] name | | tst.ts:423:19:423:22 | [VarRef] name | semmle.label | [VarRef] name | | tst.ts:430:1:468:1 | [NamespaceDeclaration] module ... - "b" } | semmle.label | [NamespaceDeclaration] module ... - "b" } | -| tst.ts:430:1:468:1 | [NamespaceDeclaration] module ... - "b" } | semmle.order | 88 | +| tst.ts:430:1:468:1 | [NamespaceDeclaration] module ... - "b" } | semmle.order | 89 | | tst.ts:430:8:430:11 | [VarDecl] TS50 | semmle.label | [VarDecl] TS50 | | tst.ts:431:5:445:5 | [FunctionDeclStmt] functio ... ; } | semmle.label | [FunctionDeclStmt] functio ... ; } | | tst.ts:431:14:431:25 | [VarDecl] loggedMethod | semmle.label | [VarDecl] loggedMethod | @@ -1715,7 +1727,7 @@ nodes | tst.ts:467:15:467:20 | [IndexExpr] foo[1] | semmle.label | [IndexExpr] foo[1] | | tst.ts:467:19:467:19 | [Literal] 1 | semmle.label | [Literal] 1 | | tst.ts:472:1:484:1 | [NamespaceDeclaration] module ... ng>); } | semmle.label | [NamespaceDeclaration] module ... ng>); } | -| tst.ts:472:1:484:1 | [NamespaceDeclaration] module ... ng>); } | semmle.order | 89 | +| tst.ts:472:1:484:1 | [NamespaceDeclaration] module ... ng>); } | semmle.order | 90 | | tst.ts:472:8:472:11 | [VarDecl] TS52 | semmle.label | [VarDecl] TS52 | | tst.ts:473:5:476:5 | [ClassDefinition,TypeDefinition] class S ... ; } | semmle.label | [ClassDefinition,TypeDefinition] class S ... ; } | | tst.ts:473:11:473:19 | [VarDecl] SomeClass | semmle.label | [VarDecl] SomeClass | @@ -1763,7 +1775,7 @@ nodes | tst.ts:483:46:483:58 | [GenericTypeExpr] Pair3 | semmle.label | [GenericTypeExpr] Pair3 | | tst.ts:483:52:483:57 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | | tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | semmle.label | [NamespaceDeclaration] module ... }); } | -| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | semmle.order | 90 | +| tst.ts:486:1:496:1 | [NamespaceDeclaration] module ... }); } | semmle.order | 91 | | tst.ts:486:8:486:11 | [VarDecl] TS54 | semmle.label | [VarDecl] TS54 | | tst.ts:487:3:489:3 | [FunctionDeclStmt] functio ... 0]; } | semmle.label | [FunctionDeclStmt] functio ... 0]; } | | tst.ts:487:12:487:28 | [VarDecl] createStreetLight | semmle.label | [VarDecl] createStreetLight | @@ -1818,7 +1830,7 @@ nodes | tst.ts:494:28:494:33 | [Literal] "even" | semmle.label | [Literal] "even" | | tst.ts:494:36:494:40 | [Literal] "odd" | semmle.label | [Literal] "odd" | | tst.ts:498:1:511:1 | [NamespaceDeclaration] module ... } } } | semmle.label | [NamespaceDeclaration] module ... } } } | -| tst.ts:498:1:511:1 | [NamespaceDeclaration] module ... } } } | semmle.order | 91 | +| tst.ts:498:1:511:1 | [NamespaceDeclaration] module ... } } } | semmle.order | 92 | | tst.ts:498:8:498:11 | [VarDecl] TS55 | semmle.label | [VarDecl] TS55 | | tst.ts:499:3:500:40 | [DeclStmt] const strings = ... | semmle.label | [DeclStmt] const strings = ... | | tst.ts:499:9:499:15 | [VarDecl] strings | semmle.label | [VarDecl] strings | @@ -1875,7 +1887,7 @@ nodes | tst.ts:508:21:508:23 | [VarRef] key | semmle.label | [VarRef] key | | tst.ts:508:26:508:36 | [Label] toUpperCase | semmle.label | [Label] toUpperCase | | tst.ts:513:1:520:1 | [NamespaceDeclaration] namespa ... type. } | semmle.label | [NamespaceDeclaration] namespa ... type. } | -| tst.ts:513:1:520:1 | [NamespaceDeclaration] namespa ... type. } | semmle.order | 92 | +| tst.ts:513:1:520:1 | [NamespaceDeclaration] namespa ... type. } | semmle.order | 93 | | tst.ts:513:11:513:14 | [VarDecl] TS57 | semmle.label | [VarDecl] TS57 | | tst.ts:514:3:514:26 | [DeclStmt] const a = ... | semmle.label | [DeclStmt] const a = ... | | tst.ts:514:17:514:17 | [VarDecl] a | semmle.label | [VarDecl] a | @@ -1902,7 +1914,7 @@ nodes | tst.ts:519:23:519:30 | [TypeofTypeExpr] typeof a | semmle.label | [TypeofTypeExpr] typeof a | | tst.ts:519:30:519:30 | [LocalVarTypeAccess] a | semmle.label | [LocalVarTypeAccess] a | | tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.label | [ExportDeclaration] export ... 'b'; } | -| tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 93 | +| tstModuleCJS.cts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 94 | | tstModuleCJS.cts:1:8:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.label | [FunctionDeclStmt] functio ... 'b'; } | | tstModuleCJS.cts:1:17:1:28 | [VarDecl] tstModuleCJS | semmle.label | [VarDecl] tstModuleCJS | | tstModuleCJS.cts:1:33:1:35 | [LiteralTypeExpr] 'a' | semmle.label | [LiteralTypeExpr] 'a' | @@ -1920,7 +1932,7 @@ nodes | tstModuleCJS.cts:2:34:2:36 | [Literal] 'a' | semmle.label | [Literal] 'a' | | tstModuleCJS.cts:2:40:2:42 | [Literal] 'b' | semmle.label | [Literal] 'b' | | tstModuleES.mts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.label | [ExportDeclaration] export ... 'b'; } | -| tstModuleES.mts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 94 | +| tstModuleES.mts:1:1:3:1 | [ExportDeclaration] export ... 'b'; } | semmle.order | 95 | | tstModuleES.mts:1:16:3:1 | [FunctionDeclStmt] functio ... 'b'; } | semmle.label | [FunctionDeclStmt] functio ... 'b'; } | | tstModuleES.mts:1:25:1:35 | [VarDecl] tstModuleES | semmle.label | [VarDecl] tstModuleES | | tstModuleES.mts:1:40:1:42 | [LiteralTypeExpr] 'a' | semmle.label | [LiteralTypeExpr] 'a' | @@ -1938,7 +1950,7 @@ nodes | tstModuleES.mts:2:34:2:36 | [Literal] 'a' | semmle.label | [Literal] 'a' | | tstModuleES.mts:2:40:2:42 | [Literal] 'b' | semmle.label | [Literal] 'b' | | tstSuffixA.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.label | [ExportDeclaration] export ... .ts'; } | -| tstSuffixA.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 95 | +| tstSuffixA.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 96 | | tstSuffixA.ts:1:8:3:1 | [FunctionDeclStmt] functio ... .ts'; } | semmle.label | [FunctionDeclStmt] functio ... .ts'; } | | tstSuffixA.ts:1:17:1:28 | [VarDecl] resolvedFile | semmle.label | [VarDecl] resolvedFile | | tstSuffixA.ts:1:33:1:47 | [LiteralTypeExpr] 'tstSuffixA.ts' | semmle.label | [LiteralTypeExpr] 'tstSuffixA.ts' | @@ -1946,7 +1958,7 @@ nodes | tstSuffixA.ts:2:5:2:27 | [ReturnStmt] return ... xA.ts'; | semmle.label | [ReturnStmt] return ... xA.ts'; | | tstSuffixA.ts:2:12:2:26 | [Literal] 'tstSuffixA.ts' | semmle.label | [Literal] 'tstSuffixA.ts' | | tstSuffixB.ios.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.label | [ExportDeclaration] export ... .ts'; } | -| tstSuffixB.ios.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 96 | +| tstSuffixB.ios.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 97 | | tstSuffixB.ios.ts:1:8:3:1 | [FunctionDeclStmt] functio ... .ts'; } | semmle.label | [FunctionDeclStmt] functio ... .ts'; } | | tstSuffixB.ios.ts:1:17:1:28 | [VarDecl] resolvedFile | semmle.label | [VarDecl] resolvedFile | | tstSuffixB.ios.ts:1:33:1:51 | [LiteralTypeExpr] 'tstSuffixB.ios.ts' | semmle.label | [LiteralTypeExpr] 'tstSuffixB.ios.ts' | @@ -1954,7 +1966,7 @@ nodes | tstSuffixB.ios.ts:2:5:2:31 | [ReturnStmt] return ... os.ts'; | semmle.label | [ReturnStmt] return ... os.ts'; | | tstSuffixB.ios.ts:2:12:2:30 | [Literal] 'tstSuffixB.ios.ts' | semmle.label | [Literal] 'tstSuffixB.ios.ts' | | tstSuffixB.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.label | [ExportDeclaration] export ... .ts'; } | -| tstSuffixB.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 97 | +| tstSuffixB.ts:1:1:3:1 | [ExportDeclaration] export ... .ts'; } | semmle.order | 98 | | tstSuffixB.ts:1:8:3:1 | [FunctionDeclStmt] functio ... .ts'; } | semmle.label | [FunctionDeclStmt] functio ... .ts'; } | | tstSuffixB.ts:1:17:1:28 | [VarDecl] resolvedFile | semmle.label | [VarDecl] resolvedFile | | tstSuffixB.ts:1:33:1:47 | [LiteralTypeExpr] 'tstSuffixB.ts' | semmle.label | [LiteralTypeExpr] 'tstSuffixB.ts' | @@ -1962,16 +1974,16 @@ nodes | tstSuffixB.ts:2:5:2:27 | [ReturnStmt] return ... xB.ts'; | semmle.label | [ReturnStmt] return ... xB.ts'; | | tstSuffixB.ts:2:12:2:26 | [Literal] 'tstSuffixB.ts' | semmle.label | [Literal] 'tstSuffixB.ts' | | type_alias.ts:1:1:1:17 | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | -| type_alias.ts:1:1:1:17 | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | semmle.order | 98 | +| type_alias.ts:1:1:1:17 | [TypeAliasDeclaration,TypeDefinition] type B = boolean; | semmle.order | 99 | | type_alias.ts:1:6:1:6 | [Identifier] B | semmle.label | [Identifier] B | | type_alias.ts:1:10:1:16 | [KeywordTypeExpr] boolean | semmle.label | [KeywordTypeExpr] boolean | | type_alias.ts:3:1:3:9 | [DeclStmt] var b = ... | semmle.label | [DeclStmt] var b = ... | -| type_alias.ts:3:1:3:9 | [DeclStmt] var b = ... | semmle.order | 99 | +| type_alias.ts:3:1:3:9 | [DeclStmt] var b = ... | semmle.order | 100 | | type_alias.ts:3:5:3:5 | [VarDecl] b | semmle.label | [VarDecl] b | | type_alias.ts:3:5:3:8 | [VariableDeclarator] b: B | semmle.label | [VariableDeclarator] b: B | | type_alias.ts:3:8:3:8 | [LocalTypeAccess] B | semmle.label | [LocalTypeAccess] B | | type_alias.ts:5:1:5:50 | [TypeAliasDeclaration,TypeDefinition] type Va ... ay>; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Va ... ay>; | -| type_alias.ts:5:1:5:50 | [TypeAliasDeclaration,TypeDefinition] type Va ... ay>; | semmle.order | 100 | +| type_alias.ts:5:1:5:50 | [TypeAliasDeclaration,TypeDefinition] type Va ... ay>; | semmle.order | 101 | | type_alias.ts:5:6:5:17 | [Identifier] ValueOrArray | semmle.label | [Identifier] ValueOrArray | | type_alias.ts:5:19:5:19 | [Identifier] T | semmle.label | [Identifier] T | | type_alias.ts:5:19:5:19 | [TypeParameter] T | semmle.label | [TypeParameter] T | @@ -1983,14 +1995,14 @@ nodes | type_alias.ts:5:34:5:48 | [GenericTypeExpr] ValueOrArray | semmle.label | [GenericTypeExpr] ValueOrArray | | type_alias.ts:5:47:5:47 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T | | type_alias.ts:7:1:7:28 | [DeclStmt] var c = ... | semmle.label | [DeclStmt] var c = ... | -| type_alias.ts:7:1:7:28 | [DeclStmt] var c = ... | semmle.order | 101 | +| type_alias.ts:7:1:7:28 | [DeclStmt] var c = ... | semmle.order | 102 | | type_alias.ts:7:5:7:5 | [VarDecl] c | semmle.label | [VarDecl] c | | type_alias.ts:7:5:7:27 | [VariableDeclarator] c: Valu ... number> | semmle.label | [VariableDeclarator] c: Valu ... number> | | type_alias.ts:7:8:7:19 | [LocalTypeAccess] ValueOrArray | semmle.label | [LocalTypeAccess] ValueOrArray | | type_alias.ts:7:8:7:27 | [GenericTypeExpr] ValueOrArray | semmle.label | [GenericTypeExpr] ValueOrArray | | type_alias.ts:7:21:7:26 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | type_alias.ts:9:1:15:13 | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | -| type_alias.ts:9:1:15:13 | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | semmle.order | 102 | +| type_alias.ts:9:1:15:13 | [TypeAliasDeclaration,TypeDefinition] type Js ... Json[]; | semmle.order | 103 | | type_alias.ts:9:6:9:9 | [Identifier] Json | semmle.label | [Identifier] Json | | type_alias.ts:10:5:15:12 | [UnionTypeExpr] \| strin ... Json[] | semmle.label | [UnionTypeExpr] \| strin ... Json[] | | type_alias.ts:10:7:10:12 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | @@ -2006,12 +2018,12 @@ nodes | type_alias.ts:15:7:15:10 | [LocalTypeAccess] Json | semmle.label | [LocalTypeAccess] Json | | type_alias.ts:15:7:15:12 | [ArrayTypeExpr] Json[] | semmle.label | [ArrayTypeExpr] Json[] | | type_alias.ts:17:1:17:15 | [DeclStmt] var json = ... | semmle.label | [DeclStmt] var json = ... | -| type_alias.ts:17:1:17:15 | [DeclStmt] var json = ... | semmle.order | 103 | +| type_alias.ts:17:1:17:15 | [DeclStmt] var json = ... | semmle.order | 104 | | type_alias.ts:17:5:17:8 | [VarDecl] json | semmle.label | [VarDecl] json | | type_alias.ts:17:5:17:14 | [VariableDeclarator] json: Json | semmle.label | [VariableDeclarator] json: Json | | type_alias.ts:17:11:17:14 | [LocalTypeAccess] Json | semmle.label | [LocalTypeAccess] Json | | type_alias.ts:19:1:21:57 | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | -| type_alias.ts:19:1:21:57 | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | semmle.order | 104 | +| type_alias.ts:19:1:21:57 | [TypeAliasDeclaration,TypeDefinition] type Vi ... ode[]]; | semmle.order | 105 | | type_alias.ts:19:6:19:16 | [Identifier] VirtualNode | semmle.label | [Identifier] VirtualNode | | type_alias.ts:20:5:21:56 | [UnionTypeExpr] \| strin ... Node[]] | semmle.label | [UnionTypeExpr] \| strin ... Node[]] | | type_alias.ts:20:7:20:12 | [KeywordTypeExpr] string | semmle.label | [KeywordTypeExpr] string | @@ -2027,7 +2039,7 @@ nodes | type_alias.ts:21:43:21:53 | [LocalTypeAccess] VirtualNode | semmle.label | [LocalTypeAccess] VirtualNode | | type_alias.ts:21:43:21:55 | [ArrayTypeExpr] VirtualNode[] | semmle.label | [ArrayTypeExpr] VirtualNode[] | | type_alias.ts:23:1:27:6 | [DeclStmt] const myNode = ... | semmle.label | [DeclStmt] const myNode = ... | -| type_alias.ts:23:1:27:6 | [DeclStmt] const myNode = ... | semmle.order | 105 | +| type_alias.ts:23:1:27:6 | [DeclStmt] const myNode = ... | semmle.order | 106 | | type_alias.ts:23:7:23:12 | [VarDecl] myNode | semmle.label | [VarDecl] myNode | | type_alias.ts:23:7:27:5 | [VariableDeclarator] myNode: ... ] ] | semmle.label | [VariableDeclarator] myNode: ... ] ] | | type_alias.ts:23:15:23:25 | [LocalTypeAccess] VirtualNode | semmle.label | [LocalTypeAccess] VirtualNode | @@ -2052,12 +2064,12 @@ nodes | type_alias.ts:26:23:26:36 | [Literal] "second-child" | semmle.label | [Literal] "second-child" | | type_alias.ts:26:41:26:62 | [Literal] "I'm the second child" | semmle.label | [Literal] "I'm the second child" | | type_definition_objects.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.label | [ImportDeclaration] import ... dummy"; | -| type_definition_objects.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 106 | +| type_definition_objects.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 107 | | type_definition_objects.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | [ImportSpecifier] * as dummy | | type_definition_objects.ts:1:13:1:17 | [VarDecl] dummy | semmle.label | [VarDecl] dummy | | type_definition_objects.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | [Literal] "./dummy" | | type_definition_objects.ts:3:1:3:17 | [ExportDeclaration] export class C {} | semmle.label | [ExportDeclaration] export class C {} | -| type_definition_objects.ts:3:1:3:17 | [ExportDeclaration] export class C {} | semmle.order | 107 | +| type_definition_objects.ts:3:1:3:17 | [ExportDeclaration] export class C {} | semmle.order | 108 | | type_definition_objects.ts:3:8:3:17 | [ClassDefinition,TypeDefinition] class C {} | semmle.label | [ClassDefinition,TypeDefinition] class C {} | | type_definition_objects.ts:3:14:3:14 | [VarDecl] C | semmle.label | [VarDecl] C | | type_definition_objects.ts:3:16:3:15 | [BlockStmt] {} | semmle.label | [BlockStmt] {} | @@ -2065,36 +2077,36 @@ nodes | type_definition_objects.ts:3:16:3:15 | [FunctionExpr] () {} | semmle.label | [FunctionExpr] () {} | | type_definition_objects.ts:3:16:3:15 | [Label] constructor | semmle.label | [Label] constructor | | type_definition_objects.ts:4:1:4:17 | [DeclStmt] let classObj = ... | semmle.label | [DeclStmt] let classObj = ... | -| type_definition_objects.ts:4:1:4:17 | [DeclStmt] let classObj = ... | semmle.order | 108 | +| type_definition_objects.ts:4:1:4:17 | [DeclStmt] let classObj = ... | semmle.order | 109 | | type_definition_objects.ts:4:5:4:12 | [VarDecl] classObj | semmle.label | [VarDecl] classObj | | type_definition_objects.ts:4:5:4:16 | [VariableDeclarator] classObj = C | semmle.label | [VariableDeclarator] classObj = C | | type_definition_objects.ts:4:16:4:16 | [VarRef] C | semmle.label | [VarRef] C | | type_definition_objects.ts:6:1:6:16 | [ExportDeclaration] export enum E {} | semmle.label | [ExportDeclaration] export enum E {} | -| type_definition_objects.ts:6:1:6:16 | [ExportDeclaration] export enum E {} | semmle.order | 109 | +| type_definition_objects.ts:6:1:6:16 | [ExportDeclaration] export enum E {} | semmle.order | 110 | | type_definition_objects.ts:6:8:6:16 | [EnumDeclaration,TypeDefinition] enum E {} | semmle.label | [EnumDeclaration,TypeDefinition] enum E {} | | type_definition_objects.ts:6:13:6:13 | [VarDecl] E | semmle.label | [VarDecl] E | | type_definition_objects.ts:7:1:7:16 | [DeclStmt] let enumObj = ... | semmle.label | [DeclStmt] let enumObj = ... | -| type_definition_objects.ts:7:1:7:16 | [DeclStmt] let enumObj = ... | semmle.order | 110 | +| type_definition_objects.ts:7:1:7:16 | [DeclStmt] let enumObj = ... | semmle.order | 111 | | type_definition_objects.ts:7:5:7:11 | [VarDecl] enumObj | semmle.label | [VarDecl] enumObj | | type_definition_objects.ts:7:5:7:15 | [VariableDeclarator] enumObj = E | semmle.label | [VariableDeclarator] enumObj = E | | type_definition_objects.ts:7:15:7:15 | [VarRef] E | semmle.label | [VarRef] E | | type_definition_objects.ts:9:1:9:22 | [ExportDeclaration] export ... e N {;} | semmle.label | [ExportDeclaration] export ... e N {;} | -| type_definition_objects.ts:9:1:9:22 | [ExportDeclaration] export ... e N {;} | semmle.order | 111 | +| type_definition_objects.ts:9:1:9:22 | [ExportDeclaration] export ... e N {;} | semmle.order | 112 | | type_definition_objects.ts:9:8:9:22 | [NamespaceDeclaration] namespace N {;} | semmle.label | [NamespaceDeclaration] namespace N {;} | | type_definition_objects.ts:9:18:9:18 | [VarDecl] N | semmle.label | [VarDecl] N | | type_definition_objects.ts:9:21:9:21 | [EmptyStmt] ; | semmle.label | [EmptyStmt] ; | | type_definition_objects.ts:10:1:10:21 | [DeclStmt] let namespaceObj = ... | semmle.label | [DeclStmt] let namespaceObj = ... | -| type_definition_objects.ts:10:1:10:21 | [DeclStmt] let namespaceObj = ... | semmle.order | 112 | +| type_definition_objects.ts:10:1:10:21 | [DeclStmt] let namespaceObj = ... | semmle.order | 113 | | type_definition_objects.ts:10:5:10:16 | [VarDecl] namespaceObj | semmle.label | [VarDecl] namespaceObj | | type_definition_objects.ts:10:5:10:20 | [VariableDeclarator] namespaceObj = N | semmle.label | [VariableDeclarator] namespaceObj = N | | type_definition_objects.ts:10:20:10:20 | [VarRef] N | semmle.label | [VarRef] N | | type_definitions.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.label | [ImportDeclaration] import ... dummy"; | -| type_definitions.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 113 | +| type_definitions.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | semmle.order | 114 | | type_definitions.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | [ImportSpecifier] * as dummy | | type_definitions.ts:1:13:1:17 | [VarDecl] dummy | semmle.label | [VarDecl] dummy | | type_definitions.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | [Literal] "./dummy" | | type_definitions.ts:3:1:5:1 | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | semmle.label | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | -| type_definitions.ts:3:1:5:1 | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | semmle.order | 114 | +| type_definitions.ts:3:1:5:1 | [InterfaceDeclaration,TypeDefinition] interfa ... x: S; } | semmle.order | 115 | | type_definitions.ts:3:11:3:11 | [Identifier] I | semmle.label | [Identifier] I | | type_definitions.ts:3:13:3:13 | [Identifier] S | semmle.label | [Identifier] S | | type_definitions.ts:3:13:3:13 | [TypeParameter] S | semmle.label | [TypeParameter] S | @@ -2102,14 +2114,14 @@ nodes | type_definitions.ts:4:3:4:7 | [FieldDeclaration] x: S; | semmle.label | [FieldDeclaration] x: S; | | type_definitions.ts:4:6:4:6 | [LocalTypeAccess] S | semmle.label | [LocalTypeAccess] S | | type_definitions.ts:6:1:6:16 | [DeclStmt] let i = ... | semmle.label | [DeclStmt] let i = ... | -| type_definitions.ts:6:1:6:16 | [DeclStmt] let i = ... | semmle.order | 115 | +| type_definitions.ts:6:1:6:16 | [DeclStmt] let i = ... | semmle.order | 116 | | type_definitions.ts:6:5:6:5 | [VarDecl] i | semmle.label | [VarDecl] i | | type_definitions.ts:6:5:6:16 | [VariableDeclarator] i: I | semmle.label | [VariableDeclarator] i: I | | type_definitions.ts:6:8:6:8 | [LocalTypeAccess] I | semmle.label | [LocalTypeAccess] I | | type_definitions.ts:6:8:6:16 | [GenericTypeExpr] I | semmle.label | [GenericTypeExpr] I | | type_definitions.ts:6:10:6:15 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | type_definitions.ts:8:1:10:1 | [ClassDefinition,TypeDefinition] class C ... x: T } | semmle.label | [ClassDefinition,TypeDefinition] class C ... x: T } | -| type_definitions.ts:8:1:10:1 | [ClassDefinition,TypeDefinition] class C ... x: T } | semmle.order | 116 | +| type_definitions.ts:8:1:10:1 | [ClassDefinition,TypeDefinition] class C ... x: T } | semmle.order | 117 | | type_definitions.ts:8:7:8:7 | [VarDecl] C | semmle.label | [VarDecl] C | | type_definitions.ts:8:8:8:7 | [BlockStmt] {} | semmle.label | [BlockStmt] {} | | type_definitions.ts:8:8:8:7 | [ClassInitializedMember,ConstructorDefinition] constructor() {} | semmle.label | [ClassInitializedMember,ConstructorDefinition] constructor() {} | @@ -2121,14 +2133,14 @@ nodes | type_definitions.ts:9:3:9:6 | [FieldDeclaration] x: T | semmle.label | [FieldDeclaration] x: T | | type_definitions.ts:9:6:9:6 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T | | type_definitions.ts:11:1:11:17 | [DeclStmt] let c = ... | semmle.label | [DeclStmt] let c = ... | -| type_definitions.ts:11:1:11:17 | [DeclStmt] let c = ... | semmle.order | 117 | +| type_definitions.ts:11:1:11:17 | [DeclStmt] let c = ... | semmle.order | 118 | | type_definitions.ts:11:5:11:5 | [VarDecl] c | semmle.label | [VarDecl] c | | type_definitions.ts:11:5:11:16 | [VariableDeclarator] c: C | semmle.label | [VariableDeclarator] c: C | | type_definitions.ts:11:8:11:8 | [LocalTypeAccess] C | semmle.label | [LocalTypeAccess] C | | type_definitions.ts:11:8:11:16 | [GenericTypeExpr] C | semmle.label | [GenericTypeExpr] C | | type_definitions.ts:11:10:11:15 | [KeywordTypeExpr] number | semmle.label | [KeywordTypeExpr] number | | type_definitions.ts:13:1:15:1 | [EnumDeclaration,TypeDefinition] enum Co ... blue } | semmle.label | [EnumDeclaration,TypeDefinition] enum Co ... blue } | -| type_definitions.ts:13:1:15:1 | [EnumDeclaration,TypeDefinition] enum Co ... blue } | semmle.order | 118 | +| type_definitions.ts:13:1:15:1 | [EnumDeclaration,TypeDefinition] enum Co ... blue } | semmle.order | 119 | | type_definitions.ts:13:6:13:10 | [VarDecl] Color | semmle.label | [VarDecl] Color | | type_definitions.ts:14:3:14:5 | [EnumMember,TypeDefinition] red | semmle.label | [EnumMember,TypeDefinition] red | | type_definitions.ts:14:3:14:5 | [VarDecl] red | semmle.label | [VarDecl] red | @@ -2137,29 +2149,29 @@ nodes | type_definitions.ts:14:15:14:18 | [EnumMember,TypeDefinition] blue | semmle.label | [EnumMember,TypeDefinition] blue | | type_definitions.ts:14:15:14:18 | [VarDecl] blue | semmle.label | [VarDecl] blue | | type_definitions.ts:16:1:16:17 | [DeclStmt] let color = ... | semmle.label | [DeclStmt] let color = ... | -| type_definitions.ts:16:1:16:17 | [DeclStmt] let color = ... | semmle.order | 119 | +| type_definitions.ts:16:1:16:17 | [DeclStmt] let color = ... | semmle.order | 120 | | type_definitions.ts:16:5:16:9 | [VarDecl] color | semmle.label | [VarDecl] color | | type_definitions.ts:16:5:16:16 | [VariableDeclarator] color: Color | semmle.label | [VariableDeclarator] color: Color | | type_definitions.ts:16:12:16:16 | [LocalTypeAccess] Color | semmle.label | [LocalTypeAccess] Color | | type_definitions.ts:18:1:18:33 | [EnumDeclaration,TypeDefinition] enum En ... ember } | semmle.label | [EnumDeclaration,TypeDefinition] enum En ... ember } | -| type_definitions.ts:18:1:18:33 | [EnumDeclaration,TypeDefinition] enum En ... ember } | semmle.order | 120 | +| type_definitions.ts:18:1:18:33 | [EnumDeclaration,TypeDefinition] enum En ... ember } | semmle.order | 121 | | type_definitions.ts:18:6:18:22 | [VarDecl] EnumWithOneMember | semmle.label | [VarDecl] EnumWithOneMember | | type_definitions.ts:18:26:18:31 | [EnumMember,TypeDefinition] member | semmle.label | [EnumMember,TypeDefinition] member | | type_definitions.ts:18:26:18:31 | [VarDecl] member | semmle.label | [VarDecl] member | | type_definitions.ts:19:1:19:25 | [DeclStmt] let e = ... | semmle.label | [DeclStmt] let e = ... | -| type_definitions.ts:19:1:19:25 | [DeclStmt] let e = ... | semmle.order | 121 | +| type_definitions.ts:19:1:19:25 | [DeclStmt] let e = ... | semmle.order | 122 | | type_definitions.ts:19:5:19:5 | [VarDecl] e | semmle.label | [VarDecl] e | | type_definitions.ts:19:5:19:24 | [VariableDeclarator] e: EnumWithOneMember | semmle.label | [VariableDeclarator] e: EnumWithOneMember | | type_definitions.ts:19:8:19:24 | [LocalTypeAccess] EnumWithOneMember | semmle.label | [LocalTypeAccess] EnumWithOneMember | | type_definitions.ts:21:1:21:20 | [TypeAliasDeclaration,TypeDefinition] type Alias = T[]; | semmle.label | [TypeAliasDeclaration,TypeDefinition] type Alias = T[]; | -| type_definitions.ts:21:1:21:20 | [TypeAliasDeclaration,TypeDefinition] type Alias = T[]; | semmle.order | 122 | +| type_definitions.ts:21:1:21:20 | [TypeAliasDeclaration,TypeDefinition] type Alias = T[]; | semmle.order | 123 | | type_definitions.ts:21:6:21:10 | [Identifier] Alias | semmle.label | [Identifier] Alias | | type_definitions.ts:21:12:21:12 | [Identifier] T | semmle.label | [Identifier] T | | type_definitions.ts:21:12:21:12 | [TypeParameter] T | semmle.label | [TypeParameter] T | | type_definitions.ts:21:17:21:17 | [LocalTypeAccess] T | semmle.label | [LocalTypeAccess] T | | type_definitions.ts:21:17:21:19 | [ArrayTypeExpr] T[] | semmle.label | [ArrayTypeExpr] T[] | | type_definitions.ts:22:1:22:39 | [DeclStmt] let aliasForNumberArray = ... | semmle.label | [DeclStmt] let aliasForNumberArray = ... | -| type_definitions.ts:22:1:22:39 | [DeclStmt] let aliasForNumberArray = ... | semmle.order | 123 | +| type_definitions.ts:22:1:22:39 | [DeclStmt] let aliasForNumberArray = ... | semmle.order | 124 | | type_definitions.ts:22:5:22:23 | [VarDecl] aliasForNumberArray | semmle.label | [VarDecl] aliasForNumberArray | | type_definitions.ts:22:5:22:38 | [VariableDeclarator] aliasFo ... number> | semmle.label | [VariableDeclarator] aliasFo ... number> | | type_definitions.ts:22:26:22:30 | [LocalTypeAccess] Alias | semmle.label | [LocalTypeAccess] Alias | @@ -2546,6 +2558,26 @@ edges | middle-rest.ts:3:7:3:26 | [ArrayExpr] [true, "hello", 123] | middle-rest.ts:3:14:3:20 | [Literal] "hello" | semmle.order | 2 | | middle-rest.ts:3:7:3:26 | [ArrayExpr] [true, "hello", 123] | middle-rest.ts:3:23:3:25 | [Literal] 123 | semmle.label | 3 | | middle-rest.ts:3:7:3:26 | [ArrayExpr] [true, "hello", 123] | middle-rest.ts:3:23:3:25 | [Literal] 123 | semmle.order | 3 | +| tsconfig.json:1:1:9:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | semmle.label | 0 | +| tsconfig.json:1:1:9:1 | [JsonObject] {compilerOptions: ...} | tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | semmle.order | 0 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | tsconfig.json:3:15:3:22 | [JsonString] "esnext" | semmle.label | 0 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | tsconfig.json:3:15:3:22 | [JsonString] "esnext" | semmle.order | 0 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | tsconfig.json:4:15:4:22 | [JsonString] "esnext" | semmle.label | 1 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | tsconfig.json:4:15:4:22 | [JsonString] "esnext" | semmle.order | 1 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | tsconfig.json:5:12:5:28 | [JsonArray] ["dom", ...] | semmle.label | 2 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | tsconfig.json:5:12:5:28 | [JsonArray] ["dom", ...] | semmle.order | 2 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | tsconfig.json:6:26:6:29 | [JsonBoolean] true | semmle.label | 3 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | tsconfig.json:6:26:6:29 | [JsonBoolean] true | semmle.order | 3 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | tsconfig.json:7:23:7:34 | [JsonArray] [".ios", ...] | semmle.label | 4 | +| tsconfig.json:2:22:8:3 | [JsonObject] {module: ...} | tsconfig.json:7:23:7:34 | [JsonArray] [".ios", ...] | semmle.order | 4 | +| tsconfig.json:5:12:5:28 | [JsonArray] ["dom", ...] | tsconfig.json:5:13:5:17 | [JsonString] "dom" | semmle.label | 0 | +| tsconfig.json:5:12:5:28 | [JsonArray] ["dom", ...] | tsconfig.json:5:13:5:17 | [JsonString] "dom" | semmle.order | 0 | +| tsconfig.json:5:12:5:28 | [JsonArray] ["dom", ...] | tsconfig.json:5:20:5:27 | [JsonString] "esnext" | semmle.label | 1 | +| tsconfig.json:5:12:5:28 | [JsonArray] ["dom", ...] | tsconfig.json:5:20:5:27 | [JsonString] "esnext" | semmle.order | 1 | +| tsconfig.json:7:23:7:34 | [JsonArray] [".ios", ...] | tsconfig.json:7:24:7:29 | [JsonString] ".ios" | semmle.label | 0 | +| tsconfig.json:7:23:7:34 | [JsonArray] [".ios", ...] | tsconfig.json:7:24:7:29 | [JsonString] ".ios" | semmle.order | 0 | +| tsconfig.json:7:23:7:34 | [JsonArray] [".ios", ...] | tsconfig.json:7:32:7:33 | [JsonString] "" | semmle.label | 1 | +| tsconfig.json:7:23:7:34 | [JsonArray] [".ios", ...] | tsconfig.json:7:32:7:33 | [JsonString] "" | semmle.order | 1 | | tst.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | tst.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.label | 1 | | tst.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | tst.ts:1:8:1:17 | [ImportSpecifier] * as dummy | semmle.order | 1 | | tst.ts:1:1:1:33 | [ImportDeclaration] import ... dummy"; | tst.ts:1:24:1:32 | [Literal] "./dummy" | semmle.label | 2 | From 359525b65a6d31e56637651080bbdf42a25c1710 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 29 Apr 2025 09:41:38 +0200 Subject: [PATCH 110/656] JS: Extract more tsconfig.json patterns --- javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java | 2 +- javascript/extractor/src/com/semmle/js/extractor/Main.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java index 49b22ddcd2d..22d008637c9 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java +++ b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java @@ -404,7 +404,7 @@ public class AutoBuild { patterns.add("**/*.view.json"); // SAP UI5 patterns.add("**/manifest.json"); patterns.add("**/package.json"); - patterns.add("**/tsconfig*.json"); + patterns.add("**/*tsconfig*.json"); patterns.add("**/codeql-javascript-*.json"); // include any explicitly specified extensions diff --git a/javascript/extractor/src/com/semmle/js/extractor/Main.java b/javascript/extractor/src/com/semmle/js/extractor/Main.java index d4f377f1547..59be61388e3 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/Main.java +++ b/javascript/extractor/src/com/semmle/js/extractor/Main.java @@ -307,7 +307,7 @@ public class Main { // extract TypeScript if `--typescript` or `--typescript-full` was specified if (getTypeScriptMode(ap) != TypeScriptMode.NONE) { addIncludesFor(includes, FileType.TYPESCRIPT); - includes.add("**/tsconfig*.json"); + includes.add("**/*tsconfig*.json"); } // add explicit include patterns From c8ee8dce98195117bee8993ddc424cb1ea21f943 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Tue, 29 Apr 2025 13:04:07 +0200 Subject: [PATCH 111/656] Add test cases to verify correct call graph resolution with various JavaScript inheritance patterns --- .../CallGraphs/AnnotatedTest/Test.expected | 2 ++ .../CallGraphs/AnnotatedTest/prototypes.js | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected index 0abd563b419..e6532c0816f 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected @@ -2,6 +2,8 @@ spuriousCallee missingCallee | constructor-field.ts:40:5:40:14 | f3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | | constructor-field.ts:71:1:71:11 | bf3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | +| prototypes.js:96:5:96:15 | this.read() | prototypes.js:104:27:104:39 | function() {} | -1 | calls | +| prototypes.js:96:5:96:15 | this.read() | prototypes.js:109:27:109:39 | function() {} | -1 | calls | badAnnotation accessorCall | accessors.js:12:1:12:5 | obj.f | accessors.js:5:8:5:12 | () {} | diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js index e0088019f9f..2556e07a279 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js @@ -89,3 +89,21 @@ function barbar(bazExtented){ } barbar(new BazExtented()); + +class Base { + constructor() { + /** calls:Base.read calls:Derived1.read calls:Derived2.read */ + this.read(); + } + /** name:Base.read */ + read() { } +} + +class Derived1 extends Base {} +/** name:Derived1.read */ +Derived1.prototype.read = function() {}; + +class Derived2 {} +Derived2.prototype = Object.create(Base.prototype); +/** name:Derived2.read */ +Derived2.prototype.read = function() {}; From 565cb434fc3c46a207afa23fb09fe59ac62ac8f0 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Apr 2025 09:03:55 +0200 Subject: [PATCH 112/656] JS: Add test --- .../PathResolution/BaseUrl/base/lib/file.ts | 1 + .../PathResolution/BaseUrl/base/lib/index.ts | 1 + .../PathResolution/BaseUrl/base/lib/nostar.ts | 1 + .../PathResolution/BaseUrl/base/lib2/file.ts | 1 + .../PathResolution/BaseUrl/src/main.ts | 47 ++++++++ .../PathResolution/BaseUrl/tsconfig.json | 14 +++ .../PathResolution/Basic/Subdir/sub.ts | 4 + .../PathResolution/Basic/index.ts | 1 + .../DeclarationFiles/lib/split.d.ts | 5 + .../DeclarationFiles/lib/split.js | 4 + .../DeclarationFiles/lib/typescript.d.ts | 1 + .../DeclarationFiles/lib/typescript.js | 1 + .../DeclarationFiles/lib/typescript.ts | 1 + .../DeclarationFiles/src/main.ts | 7 ++ .../PathResolution/DirnameImports/main.js | 15 +++ .../DirnameImports/nested/target.js | 2 + .../PathResolution/DirnameImports/target.js | 2 + .../DistContainsSrc/package.json | 3 + .../PathResolution/DistContainsSrc/src/foo.ts | 1 + .../Extended/base/tsconfig.base.json | 11 ++ .../PathResolution/Extended/lib/file.ts | 1 + .../PathResolution/Extended/lib/index.ts | 1 + .../PathResolution/Extended/lib/nostar.ts | 1 + .../PathResolution/Extended/src/main.ts | 35 ++++++ .../PathResolution/Extended/tsconfig.json | 4 + .../PathResolution/Fallback/lib1/both.ts | 1 + .../Fallback/lib1/differentExtension.js | 1 + .../PathResolution/Fallback/lib1/only1.ts | 1 + .../Fallback/lib1/subdir/both.ts | 1 + .../Fallback/lib1/subdir/index.ts | 1 + .../Fallback/lib1/subdir/only1.ts | 1 + .../PathResolution/Fallback/lib2/both.ts | 1 + .../Fallback/lib2/differentExtension.ts | 1 + .../PathResolution/Fallback/lib2/only2.ts | 1 + .../Fallback/lib2/subdir/both.ts | 1 + .../Fallback/lib2/subdir/index.ts | 1 + .../Fallback/lib2/subdir/only2.ts | 1 + .../PathResolution/Fallback/src/main.ts | 10 ++ .../PathResolution/Fallback/tsconfig.json | 8 ++ .../PathResolution/JSDocProvide/lib.js | 5 + .../PathResolution/JSDocProvide/main.js | 1 + .../PathResolution/MainIsFolder/package.json | 4 + .../PathResolution/MainIsFolder/src/index.ts | 1 + .../PathResolution/MinifiedMain/package.json | 3 + .../MinifiedMain/src/library.ts | 1 + .../PathResolution/NoBaseUrl/lib/file.ts | 1 + .../PathResolution/NoBaseUrl/lib/index.ts | 1 + .../PathResolution/NoBaseUrl/lib/nostar.ts | 1 + .../PathResolution/NoBaseUrl/src/main.ts | 35 ++++++ .../PathResolution/NoBaseUrl/tsconfig.json | 10 ++ .../NodeModules/node_modules/foo/index.js | 1 + .../NodeModules/node_modules/foo/package.json | 3 + .../PathResolution/NodeModules/outermain.ts | 2 + .../subfolder/node_modules/bar/index.js | 1 + .../subfolder/node_modules/bar/package.json | 3 + .../NodeModules/subfolder/src/main.ts | 2 + .../PathResolution/PackageGuess1/package.json | 3 + .../PathResolution/PackageGuess1/src/index.ts | 1 + .../PackageGuess2/blah/stuff.ts | 1 + .../PathResolution/PackageGuess2/package.json | 6 + .../PathResolution/PackageIndexFile/index.js | 1 + .../PackageIndexFile/package.json | 3 + .../PackageWithExports/fake-file-impl.js | 1 + .../PathResolution/PackageWithExports/main.js | 1 + .../PackageWithExports/package.json | 14 +++ .../PackageWithExports/star-impl/foo.js | 1 + .../PathResolution/PackageWithMain/main.js | 1 + .../PackageWithMain/package.json | 4 + .../PackageWithMainExt/lib/main.ts | 1 + .../PackageWithMainExt/package.json | 4 + .../PackageWithModuleMain/main.js | 1 + .../PackageWithModuleMain/package.json | 4 + .../PathResolution/RootDir/my-root/foo.ts | 1 + .../PathResolution/RootDir/tsconfig.json | 7 ++ .../PathResolution/TSConfigOutDir/src/foo.ts | 1 + .../TSConfigOutDir/tsconfig.json | 7 ++ .../PathResolution/import-packages.ts | 35 ++++++ .../PathResolution/test.expected | 111 ++++++++++++++++++ .../test/library-tests/PathResolution/test.ql | 5 + .../library-tests/PathResolution/test.qlref | 2 + .../PathResolution/tsconfig.json | 1 + 81 files changed, 487 insertions(+) create mode 100644 javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/file.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/index.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/nostar.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib2/file.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/BaseUrl/src/main.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/BaseUrl/tsconfig.json create mode 100644 javascript/ql/test/library-tests/PathResolution/Basic/Subdir/sub.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Basic/index.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/split.d.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/split.js create mode 100644 javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.d.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.js create mode 100644 javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/DeclarationFiles/src/main.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/DirnameImports/main.js create mode 100644 javascript/ql/test/library-tests/PathResolution/DirnameImports/nested/target.js create mode 100644 javascript/ql/test/library-tests/PathResolution/DirnameImports/target.js create mode 100644 javascript/ql/test/library-tests/PathResolution/DistContainsSrc/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/DistContainsSrc/src/foo.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Extended/base/tsconfig.base.json create mode 100644 javascript/ql/test/library-tests/PathResolution/Extended/lib/file.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Extended/lib/index.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Extended/lib/nostar.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Extended/src/main.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Extended/tsconfig.json create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib1/both.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib1/differentExtension.js create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib1/only1.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/both.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/index.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/only1.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib2/both.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib2/differentExtension.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib2/only2.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/both.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/index.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/only2.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/src/main.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/Fallback/tsconfig.json create mode 100644 javascript/ql/test/library-tests/PathResolution/JSDocProvide/lib.js create mode 100644 javascript/ql/test/library-tests/PathResolution/JSDocProvide/main.js create mode 100644 javascript/ql/test/library-tests/PathResolution/MainIsFolder/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/MainIsFolder/src/index.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/MinifiedMain/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/MinifiedMain/src/library.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/file.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/index.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/nostar.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/NoBaseUrl/src/main.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/NoBaseUrl/tsconfig.json create mode 100644 javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/index.js create mode 100644 javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/NodeModules/outermain.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/index.js create mode 100644 javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/src/main.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageGuess1/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageGuess1/src/index.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageGuess2/blah/stuff.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageGuess2/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageIndexFile/index.js create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageIndexFile/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageWithExports/fake-file-impl.js create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageWithExports/main.js create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageWithExports/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageWithExports/star-impl/foo.js create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageWithMain/main.js create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageWithMain/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageWithMainExt/lib/main.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageWithMainExt/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageWithModuleMain/main.js create mode 100644 javascript/ql/test/library-tests/PathResolution/PackageWithModuleMain/package.json create mode 100644 javascript/ql/test/library-tests/PathResolution/RootDir/my-root/foo.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/RootDir/tsconfig.json create mode 100644 javascript/ql/test/library-tests/PathResolution/TSConfigOutDir/src/foo.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/TSConfigOutDir/tsconfig.json create mode 100644 javascript/ql/test/library-tests/PathResolution/import-packages.ts create mode 100644 javascript/ql/test/library-tests/PathResolution/test.expected create mode 100644 javascript/ql/test/library-tests/PathResolution/test.ql create mode 100644 javascript/ql/test/library-tests/PathResolution/test.qlref create mode 100644 javascript/ql/test/library-tests/PathResolution/tsconfig.json diff --git a/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/file.ts b/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/file.ts new file mode 100644 index 00000000000..f8a2b761a99 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/file.ts @@ -0,0 +1 @@ +export const x = "file.ts" diff --git a/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/index.ts b/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/index.ts new file mode 100644 index 00000000000..8d1382ced0c --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/index.ts @@ -0,0 +1 @@ +export const x = "index.ts"; diff --git a/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/nostar.ts b/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/nostar.ts new file mode 100644 index 00000000000..9245143d085 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib/nostar.ts @@ -0,0 +1 @@ +export const x = "nostar.ts" diff --git a/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib2/file.ts b/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib2/file.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BaseUrl/base/lib2/file.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/BaseUrl/src/main.ts b/javascript/ql/test/library-tests/PathResolution/BaseUrl/src/main.ts new file mode 100644 index 00000000000..9c5b9072903 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BaseUrl/src/main.ts @@ -0,0 +1,47 @@ +// Relative import +import "../base/lib/file"; // $ importTarget=BaseUrl/base/lib/file.ts +import "../base/lib/file.ts"; // $ importTarget=BaseUrl/base/lib/file.ts +import "../base/lib/file.js"; // $ importTarget=BaseUrl/base/lib/file.ts +import "../base/lib"; // $ importTarget=BaseUrl/base/lib/index.ts +import "../base/lib/index"; // $ importTarget=BaseUrl/base/lib/index.ts +import "../base/lib/index.ts"; // $ importTarget=BaseUrl/base/lib/index.ts +import "../base/lib/index.js"; // $ importTarget=BaseUrl/base/lib/index.ts + +// Import relative to baseUrl +import "lib/file"; // $ importTarget=BaseUrl/base/lib/file.ts +import "lib/file.ts"; // $ importTarget=BaseUrl/base/lib/file.ts +import "lib/file.js"; // $ importTarget=BaseUrl/base/lib/file.ts +import "lib"; // $ importTarget=BaseUrl/base/lib/index.ts +import "lib/index"; // $ importTarget=BaseUrl/base/lib/index.ts +import "lib/index.ts"; // $ importTarget=BaseUrl/base/lib/index.ts +import "lib/index.js"; // $ importTarget=BaseUrl/base/lib/index.ts + +// Import matching "@/*" path mapping +import "@/file"; // $ importTarget=BaseUrl/base/lib/file.ts +import "@/file.ts"; // $ importTarget=BaseUrl/base/lib/file.ts +import "@/file.js"; // $ importTarget=BaseUrl/base/lib/file.ts +import "@"; // $ importTarget=BaseUrl/base/lib/nostar.ts +import "@/index"; // $ importTarget=BaseUrl/base/lib/index.ts +import "@/index.ts"; // $ importTarget=BaseUrl/base/lib/index.ts +import "@/index.js"; // $ importTarget=BaseUrl/base/lib/index.ts + +// Import matching "#/*" path mapping +import "#/file"; // $ importTarget=BaseUrl/base/lib/file.ts +import "#/file.ts"; // $ importTarget=BaseUrl/base/lib/file.ts +import "#/file.js"; // $ importTarget=BaseUrl/base/lib/file.ts +import "#/index"; // $ importTarget=BaseUrl/base/lib/index.ts +import "#/index.ts"; // $ importTarget=BaseUrl/base/lib/index.ts +import "#/index.js"; // $ importTarget=BaseUrl/base/lib/index.ts + +// Import matching "^lib*" path mapping +import "^lib/file"; // $ importTarget=BaseUrl/base/lib/file.ts +import "^lib2/file"; // $ importTarget=BaseUrl/base/lib2/file.ts + +// Import matching "@/*.xyz" path mapping. Note that this is not actually supported by TypeScript. +import "@/file.xyz"; +import "@/file.ts.xyz"; +import "@/file.js.xyz"; +import "@.xyz"; +import "@/index.xyz"; +import "@/index.ts.xyz"; +import "@/index.js.xyz"; diff --git a/javascript/ql/test/library-tests/PathResolution/BaseUrl/tsconfig.json b/javascript/ql/test/library-tests/PathResolution/BaseUrl/tsconfig.json new file mode 100644 index 00000000000..9167650c05a --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BaseUrl/tsconfig.json @@ -0,0 +1,14 @@ +{ + "include": ["."], + "compilerOptions": { + // Path mappings are resolved relative to baseUrl + "baseUrl": "./base", + "paths": { + "@/*": ["lib/*"], + "#/*": ["./lib/*"], // relative paths here are also resolved from the base url + "^lib*": ["./lib*"], // must end with "*" but not necessarily "/*" + "@/*.xyz": ["lib/*"], + "@": ["lib/nostar.ts"] + } + } +} diff --git a/javascript/ql/test/library-tests/PathResolution/Basic/Subdir/sub.ts b/javascript/ql/test/library-tests/PathResolution/Basic/Subdir/sub.ts new file mode 100644 index 00000000000..375c5f95537 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Basic/Subdir/sub.ts @@ -0,0 +1,4 @@ +import '..'; // $ importTarget=Basic/index.ts +import '../'; // $ importTarget=Basic/index.ts +import './..'; // $ importTarget=Basic/index.ts +import './../'; // $ importTarget=Basic/index.ts diff --git a/javascript/ql/test/library-tests/PathResolution/Basic/index.ts b/javascript/ql/test/library-tests/PathResolution/Basic/index.ts new file mode 100644 index 00000000000..1d8ed2b606a --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Basic/index.ts @@ -0,0 +1 @@ +import './Subdir/sub'; // $ importTarget=Basic/Subdir/sub.ts diff --git a/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/split.d.ts b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/split.d.ts new file mode 100644 index 00000000000..83e844e755e --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/split.d.ts @@ -0,0 +1,5 @@ +// Type declaration for dual-module +export interface DualType { + prop: string; +} +export declare function helper(): DualType; diff --git a/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/split.js b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/split.js new file mode 100644 index 00000000000..be8d5d53baf --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/split.js @@ -0,0 +1,4 @@ +// Implementation of dual-module +export function helper() { + return { prop: "implementation" }; +} diff --git a/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.d.ts b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.d.ts new file mode 100644 index 00000000000..226fa6a598b --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.d.ts @@ -0,0 +1 @@ +export const x: number; diff --git a/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.js b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.js new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.js @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.ts b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/lib/typescript.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/src/main.ts b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/src/main.ts new file mode 100644 index 00000000000..cfa7c750d9a --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/src/main.ts @@ -0,0 +1,7 @@ +import "../lib/split"; // $ importTarget=DeclarationFiles/lib/split.d.ts importTarget=DeclarationFiles/lib/split.js +import "../lib/split.js"; // $ importTarget=DeclarationFiles/lib/split.js importTarget=DeclarationFiles/lib/split.d.ts +import "../lib/split.d.ts"; // $ importTarget=DeclarationFiles/lib/split.d.ts + +import "../lib/typescript"; // $ importTarget=DeclarationFiles/lib/typescript.ts +import "../lib/typescript.js"; // $ importTarget=DeclarationFiles/lib/typescript.ts +import "../lib/typescript.d.ts"; // $ importTarget=DeclarationFiles/lib/typescript.d.ts SPURIOUS: importTarget=DeclarationFiles/lib/typescript.ts diff --git a/javascript/ql/test/library-tests/PathResolution/DirnameImports/main.js b/javascript/ql/test/library-tests/PathResolution/DirnameImports/main.js new file mode 100644 index 00000000000..7303809541c --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DirnameImports/main.js @@ -0,0 +1,15 @@ +// Test for imports using __dirname +const path = require('path'); + +require(__dirname + '/target.js'); // $ importTarget=DirnameImports/target.js +require(__dirname + '/nested/target.js'); // $ importTarget=DirnameImports/nested/target.js +require(__dirname + '/../import-packages.ts'); // $ importTarget=import-packages.ts +require(__dirname + '/' + 'target.js'); // $ importTarget=DirnameImports/target.js + +require(path.join(__dirname, 'target.js')); // $ importTarget=DirnameImports/target.js +require(path.resolve(__dirname, 'target.js')); // $ MISSING: importTarget=DirnameImports/target.js + +const subdir = 'nested'; +require(__dirname + '/' + subdir + '/target.js'); // $ importTarget=DirnameImports/nested/target.js + +require(`${__dirname}/target.js`); // $ MISSING: importTarget=DirnameImports/target.js diff --git a/javascript/ql/test/library-tests/PathResolution/DirnameImports/nested/target.js b/javascript/ql/test/library-tests/PathResolution/DirnameImports/nested/target.js new file mode 100644 index 00000000000..329f6242a40 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DirnameImports/nested/target.js @@ -0,0 +1,2 @@ +// Nested target file for __dirname imports +module.exports = { name: 'nested-target' }; diff --git a/javascript/ql/test/library-tests/PathResolution/DirnameImports/target.js b/javascript/ql/test/library-tests/PathResolution/DirnameImports/target.js new file mode 100644 index 00000000000..bb9a3de9202 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DirnameImports/target.js @@ -0,0 +1,2 @@ +// Target file for __dirname imports +module.exports = { name: 'target' }; diff --git a/javascript/ql/test/library-tests/PathResolution/DistContainsSrc/package.json b/javascript/ql/test/library-tests/PathResolution/DistContainsSrc/package.json new file mode 100644 index 00000000000..d830ef0f567 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DistContainsSrc/package.json @@ -0,0 +1,3 @@ +{ + "main": "./dist/src/foo.js" +} diff --git a/javascript/ql/test/library-tests/PathResolution/DistContainsSrc/src/foo.ts b/javascript/ql/test/library-tests/PathResolution/DistContainsSrc/src/foo.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/DistContainsSrc/src/foo.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Extended/base/tsconfig.base.json b/javascript/ql/test/library-tests/PathResolution/Extended/base/tsconfig.base.json new file mode 100644 index 00000000000..dd5518cad9e --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Extended/base/tsconfig.base.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + // The baseUrl is interpreted relative to this file, not the "root" tsconfig.json file extending it. + "baseUrl": "./../", + "paths": { + "@/*": ["lib/*"], + "@/*.xyz": ["lib/*"], + "@": ["lib/nostar.ts"] + } + } +} diff --git a/javascript/ql/test/library-tests/PathResolution/Extended/lib/file.ts b/javascript/ql/test/library-tests/PathResolution/Extended/lib/file.ts new file mode 100644 index 00000000000..f8a2b761a99 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Extended/lib/file.ts @@ -0,0 +1 @@ +export const x = "file.ts" diff --git a/javascript/ql/test/library-tests/PathResolution/Extended/lib/index.ts b/javascript/ql/test/library-tests/PathResolution/Extended/lib/index.ts new file mode 100644 index 00000000000..8d1382ced0c --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Extended/lib/index.ts @@ -0,0 +1 @@ +export const x = "index.ts"; diff --git a/javascript/ql/test/library-tests/PathResolution/Extended/lib/nostar.ts b/javascript/ql/test/library-tests/PathResolution/Extended/lib/nostar.ts new file mode 100644 index 00000000000..9245143d085 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Extended/lib/nostar.ts @@ -0,0 +1 @@ +export const x = "nostar.ts" diff --git a/javascript/ql/test/library-tests/PathResolution/Extended/src/main.ts b/javascript/ql/test/library-tests/PathResolution/Extended/src/main.ts new file mode 100644 index 00000000000..949bc7c7908 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Extended/src/main.ts @@ -0,0 +1,35 @@ +// Relative import +import "../lib/file"; // $ importTarget=Extended/lib/file.ts +import "../lib/file.ts"; // $ importTarget=Extended/lib/file.ts +import "../lib/file.js"; // $ importTarget=Extended/lib/file.ts +import "../lib"; // $ importTarget=Extended/lib/index.ts +import "../lib/index"; // $ importTarget=Extended/lib/index.ts +import "../lib/index.ts"; // $ importTarget=Extended/lib/index.ts +import "../lib/index.js"; // $ importTarget=Extended/lib/index.ts + +// Import relative to baseUrl +import "lib/file"; // $ importTarget=Extended/lib/file.ts +import "lib/file.ts"; // $ importTarget=Extended/lib/file.ts +import "lib/file.js"; // $ importTarget=Extended/lib/file.ts +import "lib"; // $ importTarget=Extended/lib/index.ts +import "lib/index"; // $ importTarget=Extended/lib/index.ts +import "lib/index.ts"; // $ importTarget=Extended/lib/index.ts +import "lib/index.js"; // $ importTarget=Extended/lib/index.ts + +// Import matching "@/*" path mapping +import "@/file"; // $ importTarget=Extended/lib/file.ts +import "@/file.ts"; // $ importTarget=Extended/lib/file.ts +import "@/file.js"; // $ importTarget=Extended/lib/file.ts +import "@"; // $ importTarget=Extended/lib/nostar.ts +import "@/index"; // $ importTarget=Extended/lib/index.ts +import "@/index.ts"; // $ importTarget=Extended/lib/index.ts +import "@/index.js"; // $ importTarget=Extended/lib/index.ts + +// Import matching "@/*.xyz" path mapping. Note that this is not actually supported by TypeScript. +import "@/file.xyz"; +import "@/file.ts.xyz"; +import "@/file.js.xyz"; +import "@.xyz"; +import "@/index.xyz"; +import "@/index.ts.xyz"; +import "@/index.js.xyz"; diff --git a/javascript/ql/test/library-tests/PathResolution/Extended/tsconfig.json b/javascript/ql/test/library-tests/PathResolution/Extended/tsconfig.json new file mode 100644 index 00000000000..608d152f71a --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Extended/tsconfig.json @@ -0,0 +1,4 @@ +{ + "include": ["."], + "extends": "./base/tsconfig.base.json" +} diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/both.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/both.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/both.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/differentExtension.js b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/differentExtension.js new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/differentExtension.js @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/only1.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/only1.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/only1.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/both.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/both.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/both.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/index.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/index.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/index.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/only1.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/only1.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib1/subdir/only1.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/both.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/both.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/both.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/differentExtension.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/differentExtension.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/differentExtension.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/only2.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/only2.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/only2.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/both.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/both.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/both.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/index.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/index.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/index.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/only2.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/only2.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/lib2/subdir/only2.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/src/main.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/src/main.ts new file mode 100644 index 00000000000..1b0bdb14e99 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/src/main.ts @@ -0,0 +1,10 @@ +import "@/both" // $ importTarget=Fallback/lib1/both.ts +import "@/only1" // $ importTarget=Fallback/lib1/only1.ts +import "@/only2" // $ importTarget=Fallback/lib2/only2.ts +import "@/differentExtension" // $ importTarget=Fallback/lib2/differentExtension.ts +import "@/differentExtension.js" // $ importTarget=Fallback/lib2/differentExtension.ts + +import "@/subdir" // $ importTarget=Fallback/lib1/subdir/index.ts +import "@/subdir/both" // $ importTarget=Fallback/lib1/subdir/both.ts +import "@/subdir/only1" // $ importTarget=Fallback/lib1/subdir/only1.ts +import "@/subdir/only2" // $ importTarget=Fallback/lib2/subdir/only2.ts diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/tsconfig.json b/javascript/ql/test/library-tests/PathResolution/Fallback/tsconfig.json new file mode 100644 index 00000000000..239fac92558 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/tsconfig.json @@ -0,0 +1,8 @@ +{ + "include": ["."], + "compilerOptions": { + "paths": { + "@/*": ["./lib1/*", "./lib2/*"], + } + } +} diff --git a/javascript/ql/test/library-tests/PathResolution/JSDocProvide/lib.js b/javascript/ql/test/library-tests/PathResolution/JSDocProvide/lib.js new file mode 100644 index 00000000000..ba12858811b --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/JSDocProvide/lib.js @@ -0,0 +1,5 @@ +/** + * @providesModule jsdoc-provided-module/foo/bar/baz + */ + +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/JSDocProvide/main.js b/javascript/ql/test/library-tests/PathResolution/JSDocProvide/main.js new file mode 100644 index 00000000000..5e1aaf8bd7b --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/JSDocProvide/main.js @@ -0,0 +1 @@ +import 'jsdoc-provided-module/foo/bar/baz'; // $ importTarget=JSDocProvide/lib.js diff --git a/javascript/ql/test/library-tests/PathResolution/MainIsFolder/package.json b/javascript/ql/test/library-tests/PathResolution/MainIsFolder/package.json new file mode 100644 index 00000000000..d5947ffcfa5 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/MainIsFolder/package.json @@ -0,0 +1,4 @@ +{ + "name": "@example/main-is-folder", + "main": "dist" +} diff --git a/javascript/ql/test/library-tests/PathResolution/MainIsFolder/src/index.ts b/javascript/ql/test/library-tests/PathResolution/MainIsFolder/src/index.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/MainIsFolder/src/index.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/MinifiedMain/package.json b/javascript/ql/test/library-tests/PathResolution/MinifiedMain/package.json new file mode 100644 index 00000000000..bd7204f0a66 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/MinifiedMain/package.json @@ -0,0 +1,3 @@ +{ + "main": "dist/library.min.js" +} diff --git a/javascript/ql/test/library-tests/PathResolution/MinifiedMain/src/library.ts b/javascript/ql/test/library-tests/PathResolution/MinifiedMain/src/library.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/MinifiedMain/src/library.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/file.ts b/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/file.ts new file mode 100644 index 00000000000..f8a2b761a99 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/file.ts @@ -0,0 +1 @@ +export const x = "file.ts" diff --git a/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/index.ts b/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/index.ts new file mode 100644 index 00000000000..8d1382ced0c --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/index.ts @@ -0,0 +1 @@ +export const x = "index.ts"; diff --git a/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/nostar.ts b/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/nostar.ts new file mode 100644 index 00000000000..9245143d085 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/lib/nostar.ts @@ -0,0 +1 @@ +export const x = "nostar.ts" diff --git a/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/src/main.ts b/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/src/main.ts new file mode 100644 index 00000000000..799794a2c6b --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/src/main.ts @@ -0,0 +1,35 @@ +// Relative import +import "../lib/file"; // $ importTarget=NoBaseUrl/lib/file.ts +import "../lib/file.ts"; // $ importTarget=NoBaseUrl/lib/file.ts +import "../lib/file.js"; // $ importTarget=NoBaseUrl/lib/file.ts +import "../lib"; // $ importTarget=NoBaseUrl/lib/index.ts +import "../lib/index"; // $ importTarget=NoBaseUrl/lib/index.ts +import "../lib/index.ts"; // $ importTarget=NoBaseUrl/lib/index.ts +import "../lib/index.js"; // $ importTarget=NoBaseUrl/lib/index.ts + +// Import unresolvable due to missing baseUrl +import "lib/file"; +import "lib/file.ts"; +import "lib/file.js"; +import "lib"; +import "lib/index"; +import "lib/index.ts"; +import "lib/index.js"; + +// Import matching "@/*" path mapping +import "@/file"; // $ importTarget=NoBaseUrl/lib/file.ts +import "@/file.ts"; // $ importTarget=NoBaseUrl/lib/file.ts +import "@/file.js"; // $ importTarget=NoBaseUrl/lib/file.ts +import "@"; // $ importTarget=NoBaseUrl/lib/nostar.ts +import "@/index"; // $ importTarget=NoBaseUrl/lib/index.ts +import "@/index.ts"; // $ importTarget=NoBaseUrl/lib/index.ts +import "@/index.js"; // $ importTarget=NoBaseUrl/lib/index.ts + +// Import matching "@/*.xyz" path mapping. Note that this is not actually supported by TypeScript. +import "@/file.xyz"; +import "@/file.ts.xyz"; +import "@/file.js.xyz"; +import "@.xyz"; +import "@/index.xyz"; +import "@/index.ts.xyz"; +import "@/index.js.xyz"; diff --git a/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/tsconfig.json b/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/tsconfig.json new file mode 100644 index 00000000000..192347d919c --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NoBaseUrl/tsconfig.json @@ -0,0 +1,10 @@ +{ + "include": ["."], + "compilerOptions": { + "paths": { + "@/*": ["./lib/*"], + "@/*.xyz": ["./lib/*"], + "@": ["./lib/nostar.ts"] + } + } +} diff --git a/javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/index.js b/javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/index.js new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/index.js @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/package.json b/javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/package.json new file mode 100644 index 00000000000..7173713a8cd --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NodeModules/node_modules/foo/package.json @@ -0,0 +1,3 @@ +{ + "name": "foo" +} diff --git a/javascript/ql/test/library-tests/PathResolution/NodeModules/outermain.ts b/javascript/ql/test/library-tests/PathResolution/NodeModules/outermain.ts new file mode 100644 index 00000000000..47da8ef4229 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NodeModules/outermain.ts @@ -0,0 +1,2 @@ +import 'foo'; // $ importTarget=NodeModules/node_modules/foo/index.js +import 'bar'; // $ SPURIOUS: importTarget=NodeModules/subfolder/node_modules/bar/index.js // Technically would not resolve diff --git a/javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/index.js b/javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/index.js new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/index.js @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/package.json b/javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/package.json new file mode 100644 index 00000000000..f31168998ef --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/node_modules/bar/package.json @@ -0,0 +1,3 @@ +{ + "name": "bar" +} diff --git a/javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/src/main.ts b/javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/src/main.ts new file mode 100644 index 00000000000..1da40b0e2f8 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/NodeModules/subfolder/src/main.ts @@ -0,0 +1,2 @@ +import 'foo'; // $ importTarget=NodeModules/node_modules/foo/index.js +import 'bar'; // $ importTarget=NodeModules/subfolder/node_modules/bar/index.js diff --git a/javascript/ql/test/library-tests/PathResolution/PackageGuess1/package.json b/javascript/ql/test/library-tests/PathResolution/PackageGuess1/package.json new file mode 100644 index 00000000000..ea524ea7900 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageGuess1/package.json @@ -0,0 +1,3 @@ +{ + "name": "@example/package-guess1" +} diff --git a/javascript/ql/test/library-tests/PathResolution/PackageGuess1/src/index.ts b/javascript/ql/test/library-tests/PathResolution/PackageGuess1/src/index.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageGuess1/src/index.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/PackageGuess2/blah/stuff.ts b/javascript/ql/test/library-tests/PathResolution/PackageGuess2/blah/stuff.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageGuess2/blah/stuff.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/PackageGuess2/package.json b/javascript/ql/test/library-tests/PathResolution/PackageGuess2/package.json new file mode 100644 index 00000000000..afa0dbe1c8e --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageGuess2/package.json @@ -0,0 +1,6 @@ +{ + "name": "@example/package-guess2", + "files": [ + "./blah/stuff.js" + ] +} diff --git a/javascript/ql/test/library-tests/PathResolution/PackageIndexFile/index.js b/javascript/ql/test/library-tests/PathResolution/PackageIndexFile/index.js new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageIndexFile/index.js @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/PackageIndexFile/package.json b/javascript/ql/test/library-tests/PathResolution/PackageIndexFile/package.json new file mode 100644 index 00000000000..8d52b4ea656 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageIndexFile/package.json @@ -0,0 +1,3 @@ +{ + "name": "@example/package-with-index-file" +} diff --git a/javascript/ql/test/library-tests/PathResolution/PackageWithExports/fake-file-impl.js b/javascript/ql/test/library-tests/PathResolution/PackageWithExports/fake-file-impl.js new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageWithExports/fake-file-impl.js @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/PackageWithExports/main.js b/javascript/ql/test/library-tests/PathResolution/PackageWithExports/main.js new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageWithExports/main.js @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/PackageWithExports/package.json b/javascript/ql/test/library-tests/PathResolution/PackageWithExports/package.json new file mode 100644 index 00000000000..229803c3301 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageWithExports/package.json @@ -0,0 +1,14 @@ +{ + "name": "@example/package-with-exports", + "exports": { + ".": { + "default": "./main.js" + }, + "./fake-file": { + "default": "./fake-file-impl.js" + }, + "./star/*": { + "default": "./star-impl/*" + } + } +} diff --git a/javascript/ql/test/library-tests/PathResolution/PackageWithExports/star-impl/foo.js b/javascript/ql/test/library-tests/PathResolution/PackageWithExports/star-impl/foo.js new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageWithExports/star-impl/foo.js @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/PackageWithMain/main.js b/javascript/ql/test/library-tests/PathResolution/PackageWithMain/main.js new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageWithMain/main.js @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/PackageWithMain/package.json b/javascript/ql/test/library-tests/PathResolution/PackageWithMain/package.json new file mode 100644 index 00000000000..7aab9ed4316 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageWithMain/package.json @@ -0,0 +1,4 @@ +{ + "name": "@example/package-with-main", + "main": "./main.js" +} diff --git a/javascript/ql/test/library-tests/PathResolution/PackageWithMainExt/lib/main.ts b/javascript/ql/test/library-tests/PathResolution/PackageWithMainExt/lib/main.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageWithMainExt/lib/main.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/PackageWithMainExt/package.json b/javascript/ql/test/library-tests/PathResolution/PackageWithMainExt/package.json new file mode 100644 index 00000000000..c178bf7cbb2 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageWithMainExt/package.json @@ -0,0 +1,4 @@ +{ + "name": "@example/package-with-main-ext", + "main": "./lib/main.js" +} diff --git a/javascript/ql/test/library-tests/PathResolution/PackageWithModuleMain/main.js b/javascript/ql/test/library-tests/PathResolution/PackageWithModuleMain/main.js new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageWithModuleMain/main.js @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/PackageWithModuleMain/package.json b/javascript/ql/test/library-tests/PathResolution/PackageWithModuleMain/package.json new file mode 100644 index 00000000000..ff43010d7d5 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/PackageWithModuleMain/package.json @@ -0,0 +1,4 @@ +{ + "name": "@example/package-with-module-main", + "module": "./main.js" +} diff --git a/javascript/ql/test/library-tests/PathResolution/RootDir/my-root/foo.ts b/javascript/ql/test/library-tests/PathResolution/RootDir/my-root/foo.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/RootDir/my-root/foo.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/RootDir/tsconfig.json b/javascript/ql/test/library-tests/PathResolution/RootDir/tsconfig.json new file mode 100644 index 00000000000..2bfc42007b6 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/RootDir/tsconfig.json @@ -0,0 +1,7 @@ +{ + "include": ["my-root","my-tests"], + "compilerOptions": { + "rootDir": "./my-root", + "outDir": "./my-out", + } +} diff --git a/javascript/ql/test/library-tests/PathResolution/TSConfigOutDir/src/foo.ts b/javascript/ql/test/library-tests/PathResolution/TSConfigOutDir/src/foo.ts new file mode 100644 index 00000000000..ad1d380d6cc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/TSConfigOutDir/src/foo.ts @@ -0,0 +1 @@ +export const x = 1; diff --git a/javascript/ql/test/library-tests/PathResolution/TSConfigOutDir/tsconfig.json b/javascript/ql/test/library-tests/PathResolution/TSConfigOutDir/tsconfig.json new file mode 100644 index 00000000000..09d14078cb6 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/TSConfigOutDir/tsconfig.json @@ -0,0 +1,7 @@ +{ + "include": ["src"], + "compilerOptions": { + // Use unusual name to test independently of naming heuristics + "outDir": "./customOutDir" + } +} diff --git a/javascript/ql/test/library-tests/PathResolution/import-packages.ts b/javascript/ql/test/library-tests/PathResolution/import-packages.ts new file mode 100644 index 00000000000..8f1ec41d9cb --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/import-packages.ts @@ -0,0 +1,35 @@ +import './PackageWithMain/main'; // $ importTarget=PackageWithMain/main.js +import '@example/package-with-main'; // $ importTarget=PackageWithMain/main.js + +import './PackageWithModuleMain'; // $ MISSING: importTarget=PackageWithModuleMain/main.js +import '@example/package-with-module-main'; // $ importTarget=PackageWithModuleMain/main.js + +import './PackageWithExports'; // Not a valid import +import './PackageWithExports/fake-file'; // Not a valid import +import './PackageWithExports/star/foo'; // Not a valid import +import '@example/package-with-exports'; // $ importTarget=PackageWithExports/main.js +import '@example/package-with-exports/fake-file'; // $ MISSING: importTarget=PackageWithExports/fake-file-impl.js +import '@example/package-with-exports/star/foo'; // $ MISSING: importTarget=PackageWithExports/star-impl/foo.js + +import './PackageIndexFile'; // $ importTarget=PackageIndexFile/index.js +import '@example/package-with-index-file'; // $ importTarget=PackageIndexFile/index.js + +import './PackageGuess1'; // $ MISSING: importTarget=PackageGuess1/src/index.ts +import '@example/package-guess1'; // $ importTarget=PackageGuess1/src/index.ts + +import './PackageGuess2'; // $ MISSING: importTarget=PackageGuess2/blah/stuff.ts +import '@example/package-guess2'; // $ importTarget=PackageGuess2/blah/stuff.ts + +import './PackageWithMainExt'; // $ importTarget=PackageWithMainExt/lib/main.ts +import '@example/package-with-main-ext'; // $ importTarget=PackageWithMainExt/lib/main.ts + +import './TSConfigOutDir/customOutDir/foo.js'; // $ importTarget=TSConfigOutDir/src/foo.ts + +import './MainIsFolder'; // $ MISSING: importTarget=MainIsFolder/src/index.ts +import '@example/main-is-folder'; // $ importTarget=MainIsFolder/src/index.ts + +import './DistContainsSrc'; // $ MISSING: importTarget=DistContainsSrc/src/foo.ts + +import './MinifiedMain'; // $ MISSING: importTarget=MinifiedMain/src/library.ts + +import './RootDir/my-out/foo.js'; // $ importTarget=RootDir/my-root/foo.ts diff --git a/javascript/ql/test/library-tests/PathResolution/test.expected b/javascript/ql/test/library-tests/PathResolution/test.expected new file mode 100644 index 00000000000..cbabd2cc7bc --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/test.expected @@ -0,0 +1,111 @@ +| BaseUrl/src/main.ts:2:1:2:26 | import ... /file"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:3:1:3:29 | import ... le.ts"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:4:1:4:29 | import ... le.js"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:5:1:5:21 | import ... e/lib"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:6:1:6:27 | import ... index"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:7:1:7:30 | import ... ex.ts"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:8:1:8:30 | import ... ex.js"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:11:1:11:18 | import "lib/file"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:12:1:12:21 | import ... le.ts"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:13:1:13:21 | import ... le.js"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:14:1:14:13 | import "lib"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:15:1:15:19 | import "lib/index"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:16:1:16:22 | import ... ex.ts"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:17:1:17:22 | import ... ex.js"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:20:1:20:16 | import "@/file"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:21:1:21:19 | import "@/file.ts"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:22:1:22:19 | import "@/file.js"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:23:1:23:11 | import "@"; | BaseUrl/base/lib/nostar.ts | +| BaseUrl/src/main.ts:24:1:24:17 | import "@/index"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:25:1:25:20 | import "@/index.ts"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:26:1:26:20 | import "@/index.js"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:29:1:29:16 | import "#/file"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:30:1:30:19 | import "#/file.ts"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:31:1:31:19 | import "#/file.js"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:32:1:32:17 | import "#/index"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:33:1:33:20 | import "#/index.ts"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:34:1:34:20 | import "#/index.js"; | BaseUrl/base/lib/index.ts | +| BaseUrl/src/main.ts:37:1:37:19 | import "^lib/file"; | BaseUrl/base/lib/file.ts | +| BaseUrl/src/main.ts:38:1:38:20 | import "^lib2/file"; | BaseUrl/base/lib2/file.ts | +| Basic/Subdir/sub.ts:1:1:1:12 | import '..'; | Basic/index.ts | +| Basic/Subdir/sub.ts:2:1:2:13 | import '../'; | Basic/index.ts | +| Basic/Subdir/sub.ts:3:1:3:14 | import './..'; | Basic/index.ts | +| Basic/Subdir/sub.ts:4:1:4:15 | import './../'; | Basic/index.ts | +| Basic/index.ts:1:1:1:22 | import ... r/sub'; | Basic/Subdir/sub.ts | +| DeclarationFiles/src/main.ts:1:1:1:22 | import ... split"; | DeclarationFiles/lib/split.d.ts | +| DeclarationFiles/src/main.ts:1:1:1:22 | import ... split"; | DeclarationFiles/lib/split.js | +| DeclarationFiles/src/main.ts:2:1:2:25 | import ... it.js"; | DeclarationFiles/lib/split.d.ts | +| DeclarationFiles/src/main.ts:2:1:2:25 | import ... it.js"; | DeclarationFiles/lib/split.js | +| DeclarationFiles/src/main.ts:3:1:3:27 | import ... .d.ts"; | DeclarationFiles/lib/split.d.ts | +| DeclarationFiles/src/main.ts:5:1:5:27 | import ... cript"; | DeclarationFiles/lib/typescript.ts | +| DeclarationFiles/src/main.ts:6:1:6:30 | import ... pt.js"; | DeclarationFiles/lib/typescript.ts | +| DeclarationFiles/src/main.ts:7:1:7:32 | import ... .d.ts"; | DeclarationFiles/lib/typescript.d.ts | +| DeclarationFiles/src/main.ts:7:1:7:32 | import ... .d.ts"; | DeclarationFiles/lib/typescript.ts | +| DirnameImports/main.js:4:1:4:33 | require ... et.js') | DirnameImports/target.js | +| DirnameImports/main.js:5:1:5:40 | require ... et.js') | DirnameImports/nested/target.js | +| DirnameImports/main.js:6:1:6:45 | require ... es.ts') | import-packages.ts | +| DirnameImports/main.js:7:1:7:38 | require ... et.js') | DirnameImports/target.js | +| DirnameImports/main.js:9:1:9:42 | require ... t.js')) | DirnameImports/target.js | +| DirnameImports/main.js:13:1:13:48 | require ... et.js') | DirnameImports/nested/target.js | +| Extended/src/main.ts:2:1:2:21 | import ... /file"; | Extended/lib/file.ts | +| Extended/src/main.ts:3:1:3:24 | import ... le.ts"; | Extended/lib/file.ts | +| Extended/src/main.ts:4:1:4:24 | import ... le.js"; | Extended/lib/file.ts | +| Extended/src/main.ts:5:1:5:16 | import "../lib"; | Extended/lib/index.ts | +| Extended/src/main.ts:6:1:6:22 | import ... index"; | Extended/lib/index.ts | +| Extended/src/main.ts:7:1:7:25 | import ... ex.ts"; | Extended/lib/index.ts | +| Extended/src/main.ts:8:1:8:25 | import ... ex.js"; | Extended/lib/index.ts | +| Extended/src/main.ts:11:1:11:18 | import "lib/file"; | Extended/lib/file.ts | +| Extended/src/main.ts:12:1:12:21 | import ... le.ts"; | Extended/lib/file.ts | +| Extended/src/main.ts:13:1:13:21 | import ... le.js"; | Extended/lib/file.ts | +| Extended/src/main.ts:14:1:14:13 | import "lib"; | Extended/lib/index.ts | +| Extended/src/main.ts:15:1:15:19 | import "lib/index"; | Extended/lib/index.ts | +| Extended/src/main.ts:16:1:16:22 | import ... ex.ts"; | Extended/lib/index.ts | +| Extended/src/main.ts:17:1:17:22 | import ... ex.js"; | Extended/lib/index.ts | +| Extended/src/main.ts:20:1:20:16 | import "@/file"; | Extended/lib/file.ts | +| Extended/src/main.ts:21:1:21:19 | import "@/file.ts"; | Extended/lib/file.ts | +| Extended/src/main.ts:22:1:22:19 | import "@/file.js"; | Extended/lib/file.ts | +| Extended/src/main.ts:23:1:23:11 | import "@"; | Extended/lib/nostar.ts | +| Extended/src/main.ts:24:1:24:17 | import "@/index"; | Extended/lib/index.ts | +| Extended/src/main.ts:25:1:25:20 | import "@/index.ts"; | Extended/lib/index.ts | +| Extended/src/main.ts:26:1:26:20 | import "@/index.js"; | Extended/lib/index.ts | +| Fallback/src/main.ts:1:1:1:15 | import "@/both" | Fallback/lib1/both.ts | +| Fallback/src/main.ts:2:1:2:16 | import "@/only1" | Fallback/lib1/only1.ts | +| Fallback/src/main.ts:3:1:3:16 | import "@/only2" | Fallback/lib2/only2.ts | +| Fallback/src/main.ts:4:1:4:29 | import ... ension" | Fallback/lib2/differentExtension.ts | +| Fallback/src/main.ts:5:1:5:32 | import ... ion.js" | Fallback/lib2/differentExtension.ts | +| Fallback/src/main.ts:7:1:7:17 | import "@/subdir" | Fallback/lib1/subdir/index.ts | +| Fallback/src/main.ts:8:1:8:22 | import ... r/both" | Fallback/lib1/subdir/both.ts | +| Fallback/src/main.ts:9:1:9:23 | import ... /only1" | Fallback/lib1/subdir/only1.ts | +| Fallback/src/main.ts:10:1:10:23 | import ... /only2" | Fallback/lib2/subdir/only2.ts | +| JSDocProvide/main.js:1:1:1:43 | import ... r/baz'; | JSDocProvide/lib.js | +| NoBaseUrl/src/main.ts:2:1:2:21 | import ... /file"; | NoBaseUrl/lib/file.ts | +| NoBaseUrl/src/main.ts:3:1:3:24 | import ... le.ts"; | NoBaseUrl/lib/file.ts | +| NoBaseUrl/src/main.ts:4:1:4:24 | import ... le.js"; | NoBaseUrl/lib/file.ts | +| NoBaseUrl/src/main.ts:5:1:5:16 | import "../lib"; | NoBaseUrl/lib/index.ts | +| NoBaseUrl/src/main.ts:6:1:6:22 | import ... index"; | NoBaseUrl/lib/index.ts | +| NoBaseUrl/src/main.ts:7:1:7:25 | import ... ex.ts"; | NoBaseUrl/lib/index.ts | +| NoBaseUrl/src/main.ts:8:1:8:25 | import ... ex.js"; | NoBaseUrl/lib/index.ts | +| NoBaseUrl/src/main.ts:20:1:20:16 | import "@/file"; | NoBaseUrl/lib/file.ts | +| NoBaseUrl/src/main.ts:21:1:21:19 | import "@/file.ts"; | NoBaseUrl/lib/file.ts | +| NoBaseUrl/src/main.ts:22:1:22:19 | import "@/file.js"; | NoBaseUrl/lib/file.ts | +| NoBaseUrl/src/main.ts:23:1:23:11 | import "@"; | NoBaseUrl/lib/nostar.ts | +| NoBaseUrl/src/main.ts:24:1:24:17 | import "@/index"; | NoBaseUrl/lib/index.ts | +| NoBaseUrl/src/main.ts:25:1:25:20 | import "@/index.ts"; | NoBaseUrl/lib/index.ts | +| NoBaseUrl/src/main.ts:26:1:26:20 | import "@/index.js"; | NoBaseUrl/lib/index.ts | +| NodeModules/outermain.ts:1:1:1:13 | import 'foo'; | NodeModules/node_modules/foo/index.js | +| NodeModules/outermain.ts:2:1:2:13 | import 'bar'; | NodeModules/subfolder/node_modules/bar/index.js | +| NodeModules/subfolder/src/main.ts:1:1:1:13 | import 'foo'; | NodeModules/node_modules/foo/index.js | +| NodeModules/subfolder/src/main.ts:2:1:2:13 | import 'bar'; | NodeModules/subfolder/node_modules/bar/index.js | +| import-packages.ts:1:1:1:32 | import ... /main'; | PackageWithMain/main.js | +| import-packages.ts:2:1:2:36 | import ... -main'; | PackageWithMain/main.js | +| import-packages.ts:5:1:5:43 | import ... -main'; | PackageWithModuleMain/main.js | +| import-packages.ts:10:1:10:39 | import ... ports'; | PackageWithExports/main.js | +| import-packages.ts:14:1:14:28 | import ... xFile'; | PackageIndexFile/index.js | +| import-packages.ts:15:1:15:42 | import ... -file'; | PackageIndexFile/index.js | +| import-packages.ts:18:1:18:33 | import ... uess1'; | PackageGuess1/src/index.ts | +| import-packages.ts:21:1:21:33 | import ... uess2'; | PackageGuess2/blah/stuff.ts | +| import-packages.ts:23:1:23:30 | import ... inExt'; | PackageWithMainExt/lib/main.ts | +| import-packages.ts:24:1:24:40 | import ... n-ext'; | PackageWithMainExt/lib/main.ts | +| import-packages.ts:26:1:26:46 | import ... oo.js'; | TSConfigOutDir/src/foo.ts | +| import-packages.ts:29:1:29:33 | import ... older'; | MainIsFolder/src/index.ts | +| import-packages.ts:35:1:35:33 | import ... oo.js'; | RootDir/my-root/foo.ts | diff --git a/javascript/ql/test/library-tests/PathResolution/test.ql b/javascript/ql/test/library-tests/PathResolution/test.ql new file mode 100644 index 00000000000..a3cf0884659 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/test.ql @@ -0,0 +1,5 @@ +import javascript + +query predicate importTarget(Import imprt, string value) { + imprt.getImportedModule().getFile().getRelativePath() = value +} diff --git a/javascript/ql/test/library-tests/PathResolution/test.qlref b/javascript/ql/test/library-tests/PathResolution/test.qlref new file mode 100644 index 00000000000..ab6773f15f9 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/test.qlref @@ -0,0 +1,2 @@ +query: test.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/javascript/ql/test/library-tests/PathResolution/tsconfig.json b/javascript/ql/test/library-tests/PathResolution/tsconfig.json new file mode 100644 index 00000000000..81edd78b2ff --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/tsconfig.json @@ -0,0 +1 @@ +{} // dummy file to enable full TS extraction From 17aa5220a60775265c124eedb0d394b3aafecb7d Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Apr 2025 09:04:18 +0200 Subject: [PATCH 113/656] JS: Add some helpers --- javascript/ql/lib/semmle/javascript/Files.qll | 13 +++++++++++++ javascript/ql/lib/semmle/javascript/NPM.qll | 11 ++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/Files.qll b/javascript/ql/lib/semmle/javascript/Files.qll index 9febb67117d..e717eb6def4 100644 --- a/javascript/ql/lib/semmle/javascript/Files.qll +++ b/javascript/ql/lib/semmle/javascript/Files.qll @@ -75,6 +75,19 @@ class Folder extends Container, Impl::Folder { ) } + /** + * Gets an implementation file and/or a typings file from this folder that has the given `stem`. + * This could be a single `.ts` file or a pair of `.js` and `.d.ts` files. + */ + File getJavaScriptFileOrTypings(string stem) { + exists(File jsFile | jsFile = this.getJavaScriptFile(stem) | + result = jsFile + or + not jsFile.getFileType().isTypeScript() and + result = this.getFile(stem + ".d.ts") + ) + } + /** Gets a subfolder contained in this folder. */ Folder getASubFolder() { result = this.getAChildContainer() } } diff --git a/javascript/ql/lib/semmle/javascript/NPM.qll b/javascript/ql/lib/semmle/javascript/NPM.qll index b70ff8055b4..b625612aa33 100644 --- a/javascript/ql/lib/semmle/javascript/NPM.qll +++ b/javascript/ql/lib/semmle/javascript/NPM.qll @@ -12,12 +12,21 @@ class PackageJson extends JsonObject { this.isTopLevel() } + /** Gets the folder containing this `package.json` file. */ + Folder getFolder() { result = this.getJsonFile().getParentContainer() } + + /** + * Gets the name of this package as it appears in the `name` field. + */ + pragma[nomagic] + string getDeclaredPackageName() { result = this.getPropStringValue("name") } + /** * Gets the name of this package. * If the package is located under the package `pkg1` and its relative path is `foo/bar`, then the resulting package name will be `pkg1/foo/bar`. */ string getPackageName() { - result = this.getPropStringValue("name") + result = this.getDeclaredPackageName() or exists( PackageJson parentPkg, Container currentDir, Container parentDir, string parentPkgName, From ef32a036b1e40ba0a793398f34986b46e1165f39 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 28 Apr 2025 13:23:34 +0200 Subject: [PATCH 114/656] JS: Extract from methods from PathString into a non-abstract base class The new class 'FilePath' has bindingset[this] so one just has to cast a string to that type and you can use its methods. --- javascript/ql/lib/semmle/javascript/Paths.qll | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/Paths.qll b/javascript/ql/lib/semmle/javascript/Paths.qll index 66a840e9f26..cfbe00afbee 100644 --- a/javascript/ql/lib/semmle/javascript/Paths.qll +++ b/javascript/ql/lib/semmle/javascript/Paths.qll @@ -96,27 +96,22 @@ private class ConsPath extends Path, TConsPath { private string pathRegex() { result = "(.*)(?:/|^)(([^/]*?)(\\.([^.]*))?)" } /** - * A string value that represents a (relative or absolute) file system path. - * - * Each path string is associated with one or more root folders relative to - * which the path may be resolved. For instance, paths inside a module are - * usually resolved relative to the module's folder, with a default - * lookup path as the fallback. + * A `string` with some additional member predicates for extracting parts of a file path. */ -abstract class PathString extends string { +class FilePath extends string { bindingset[this] - PathString() { any() } - - /** Gets a root folder relative to which this path can be resolved. */ - abstract Folder getARootFolder(); + FilePath() { any() } /** Gets the `i`th component of this path. */ + bindingset[this] string getComponent(int i) { result = this.splitAt("/", i) } /** Gets the number of components of this path. */ + bindingset[this] int getNumComponent() { result = count(int i | exists(this.getComponent(i))) } /** Gets the base name of the folder or file this path refers to. */ + bindingset[this] string getBaseName() { result = this.regexpCapture(pathRegex(), 2) } /** @@ -124,9 +119,11 @@ abstract class PathString extends string { * up to (but not including) the last dot character if there is one, or the entire * base name if there is not */ + bindingset[this] string getStem() { result = this.regexpCapture(pathRegex(), 3) } /** Gets the path of the parent folder of the folder or file this path refers to. */ + bindingset[this] string getDirName() { result = this.regexpCapture(pathRegex(), 1) } /** @@ -135,8 +132,26 @@ abstract class PathString extends string { * * Has no result if the base name does not contain a dot. */ + bindingset[this] string getExtension() { result = this.regexpCapture(pathRegex(), 4) } +} + +/** + * A string value that represents a (relative or absolute) file system path. + * + * Each path string is associated with one or more root folders relative to + * which the path may be resolved. For instance, paths inside a module are + * usually resolved relative to the module's folder, with a default + * lookup path as the fallback. + */ +abstract class PathString extends FilePath { + bindingset[this] + PathString() { any() } + + /** Gets a root folder relative to which this path can be resolved. */ + abstract Folder getARootFolder(); + /** * Gets the absolute path that the sub-path consisting of the first `n` * components of this path refers to when resolved relative to the From 59e1cbcc7b795f3f65a7c6612ec470d6834e95ab Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Apr 2025 09:06:33 +0200 Subject: [PATCH 115/656] JS: Add tsconfig class --- .../ql/lib/semmle/javascript/TSConfig.qll | 180 ++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 javascript/ql/lib/semmle/javascript/TSConfig.qll diff --git a/javascript/ql/lib/semmle/javascript/TSConfig.qll b/javascript/ql/lib/semmle/javascript/TSConfig.qll new file mode 100644 index 00000000000..358326c20d7 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/TSConfig.qll @@ -0,0 +1,180 @@ +/** + * Provides a class for working with `tsconfig.json` files. + */ + +private import javascript + +/** + * A TypeScript configuration file, usually named `tsconfig.json`. + */ +class TSConfig extends JsonObject { + TSConfig() { + this.getJsonFile().getBaseName().matches("%tsconfig%.json") and + this.isTopLevel() + } + + /** Gets the folder containing this file. */ + Folder getFolder() { result = this.getJsonFile().getParentContainer() } + + /** Gets the `compilerOptions` object. */ + JsonObject getCompilerOptions() { result = this.getPropValue("compilerOptions") } + + /** Gets the string value in the `extends` property. */ + string getExtendsPath() { result = this.getPropStringValue("extends") } + + /** Gets the file referred to by the `extends` property. */ + File getExtendedFile() { result = Resolver::resolve(this.getFolder(), this.getExtendsPath()) } + + /** Gets the `TSConfig` file referred to by the `extends` property. */ + TSConfig getExtendedTSConfig() { result.getJsonFile() = this.getExtendedFile() } + + /** Gets the string value in the `baseUrl` property. */ + string getBaseUrlPath() { result = this.getCompilerOptions().getPropStringValue("baseUrl") } + + /** Gets the folder referred to by the `baseUrl` property in this file, not taking `extends` into account. */ + Folder getOwnBaseUrlFolder() { + result = Resolver::resolve(this.getFolder(), this.getBaseUrlPath()) + } + + /** Gets the effective baseUrl folder for this tsconfig file. */ + Folder getBaseUrlFolder() { + result = this.getOwnBaseUrlFolder() + or + not exists(this.getOwnBaseUrlFolder()) and + result = this.getExtendedTSConfig().getBaseUrlFolder() + } + + /** Gets the effective baseUrl folder for this tsconfig file, or its enclosing folder if there is no baseUrl. */ + Folder getBaseUrlFolderOrOwnFolder() { + result = this.getBaseUrlFolder() + or + not exists(this.getBaseUrlFolder()) and + result = this.getFolder() + } + + /** Gets a path mentioned in the `include` property. */ + string getAnIncludePath() { + result = this.getPropStringValue("include") + or + result = this.getPropValue("include").(JsonArray).getElementStringValue(_) + } + + /** + * Gets a file or folder refenced by a path the `include` property, possibly + * inherited from an extended tsconfig file. + * + * Does not include all the files within includes directories, use `getAnIncludedContainer` for that. + */ + Container getAnIncludePathTarget() { + result = Resolver::resolve(this.getFolder(), this.getAnIncludePath()) + or + not exists(this.getPropValue("include")) and + result = this.getExtendedTSConfig().getAnIncludePathTarget() + } + + /** + * Gets a file or folder inside the directory tree mentioned in the `include` property. + */ + Container getAnIncludedContainer() { + result = this.getAnIncludePathTarget() + or + result = this.getAnIncludedContainer().getAChildContainer() + } + + /** Gets the path mentioned in the `rootDir` property. */ + string getRootDirPath() { result = this.getCompilerOptions().getPropStringValue("rootDir") } + + private Container getOwnRootDir() { + result = Resolver::resolve(this.getFolder(), this.getRootDirPath()) + } + + /** Gets the file or folder referenced by the `rootDir` property. */ + Container getRootDir() { + result = this.getOwnRootDir() + or + not exists(this.getRootDirPath()) and + result = this.getExtendedTSConfig().getOwnRootDir() + } + + private string getATopLevelIncludePath() { + result = this.getAnIncludePath().(FilePath).getComponent(0) + } + + private string getUniqueTopLevelIncludePath() { + result = unique( | | this.getATopLevelIncludePath()) + } + + /** + * Gets the folder referred to by the `rootDir` property, or if absent, an effective root dir + * derived from `include` paths. + */ + Container getEffectiveRootDir() { + result = this.getRootDir() + or + not exists(this.getRootDir()) and + ( + result = this.getFolder().getFolder(this.getUniqueTopLevelIncludePath()) + or + not exists(this.getUniqueTopLevelIncludePath()) and + exists(this.getATopLevelIncludePath()) and + result = this.getFolder() + or + not exists(this.getATopLevelIncludePath()) and + result = this.getExtendedTSConfig().getEffectiveRootDir() + ) + } + + private JsonObject getPathMappings() { result = this.getCompilerOptions().getPropValue("paths") } + + /** + * Holds if this has a path mapping from `pattern` to `newPath`. + * + * For example, `"paths": { "@/*": "./src/*" }` maps the `@/*` pattern to `./src/*`. + * + * Does not include path mappings from extended tsconfig files. + */ + predicate hasPathMapping(string pattern, string newPath) { + this.getPathMappings().getPropStringValue(pattern) = newPath + or + this.getPathMappings().getPropValue(pattern).(JsonArray).getElementStringValue(_) = newPath + } + + /** + * Holds if this has an exact path mapping from `pattern` to `newPath`. + * + * For example, `"paths": { "@": "./src/index.ts" }` maps the `@` path to `./src/index.ts`. + * + * Does not include path mappings from extended tsconfig files. + */ + predicate hasExactPathMapping(string pattern, string newPath) { + this.hasPathMapping(pattern, newPath) and + not pattern.matches("%*%") + } + + /** + * Holds if this has a path mapping from the `pattern` prefix to the `newPath` prefix. + * The trailing `*` is not included. + * + * For example, `"paths": { "@/*": "./src/*" }` maps the `@/` pattern to `./src/`. + * + * Does not include path mappings from extended tsconfig files. + */ + predicate hasPrefixPathMapping(string pattern, string newPath) { + this.hasPathMapping(pattern + "*", newPath + "*") + } +} + +/** For resolving paths in a tsconfig file, except `paths` mappings. */ +private module ResolverConfig implements Folder::ResolveSig { + predicate shouldResolve(Container base, string path) { + exists(TSConfig cfg | + base = cfg.getFolder() and + path = + [cfg.getExtendsPath(), cfg.getBaseUrlPath(), cfg.getRootDirPath(), cfg.getAnIncludePath()] + ) + } + + predicate allowGlobs() { any() } // "include" can use globs +} + +private module Resolver = Folder::Resolve; From bb91df814539ca8af695fbd24d7163cafca36341 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Apr 2025 11:12:55 +0200 Subject: [PATCH 116/656] JS: Add helper for doing path resolution with JS rules --- .../javascript/internal/paths/JSPaths.qll | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 javascript/ql/lib/semmle/javascript/internal/paths/JSPaths.qll diff --git a/javascript/ql/lib/semmle/javascript/internal/paths/JSPaths.qll b/javascript/ql/lib/semmle/javascript/internal/paths/JSPaths.qll new file mode 100644 index 00000000000..dc90dcc3946 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/internal/paths/JSPaths.qll @@ -0,0 +1,70 @@ +/** + * Provides predicates for use in `Folder::ResolveSig` in order to resolve + * paths using JavaScript semantics. + */ + +private import javascript +private import semmle.javascript.TSConfig + +/** + * Gets a folder name that is a common source folder name. + */ +string getASrcFolderName() { result = ["ts", "js", "src", "lib"] } + +/** + * Gets a folder name that is a common build output folder name. + */ +string getABuildOutputFolderName() { result = ["dist", "build", "out", "lib"] } + +/** + * Provides predicates for use in a `Folder::ResolveSig` in order to resolve + * paths using JavaScript semantics. + * + * This accounts for two things: + * - automatic file extensions (e.g `./foo` may resolve to `./foo.js`) + * - mapping compiled-generated files back to their original source files + */ +module JSPaths { + private Container getAnAdditionalChildFromBuildMapping(Container base, string name) { + // When importing a .js file, map to the original file that compiles to the .js file. + exists(string stem | + result = base.(Folder).getJavaScriptFileOrTypings(stem) and + name = stem + ".js" + ) + or + // Redirect './bar' to 'foo' given a tsconfig like: + // + // { include: ["foo"], compilerOptions: { outDir: "./bar" }} + // + exists(TSConfig tsconfig | + name = + tsconfig.getCompilerOptions().getPropStringValue("outDir").regexpReplaceAll("^\\./", "") and + base = tsconfig.getFolder() and + result = tsconfig.getEffectiveRootDir() + ) + } + + /** + * Gets an additional child of `base` to include when resolving JS paths. + */ + pragma[nomagic] + Container getAnAdditionalChild(Container base, string name) { + // Automatically fill in file extensions + result = base.(Folder).getJavaScriptFileOrTypings(name) + or + result = getAnAdditionalChildFromBuildMapping(base, name) + or + // Heuristic version of the above based on commonly used source and build folder names + not exists(getAnAdditionalChildFromBuildMapping(base, name)) and + exists(Folder folder | base = folder | + folder = any(PackageJson pkg).getFolder() and + name = getABuildOutputFolderName() and + not exists(folder.getJavaScriptFileOrTypings(name)) and + ( + result = folder.getChildContainer(getASrcFolderName()) + or + result = folder + ) + ) + } +} From f542956f66d930be53e7b3134b39a251bbdb354c Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 24 Apr 2025 11:13:10 +0200 Subject: [PATCH 117/656] JS: Add internal extension of PackageJson class --- javascript/ql/lib/semmle/javascript/NPM.qll | 32 ++-- .../internal/paths/PackageJsonEx.qll | 151 ++++++++++++++++++ 2 files changed, 162 insertions(+), 21 deletions(-) create mode 100644 javascript/ql/lib/semmle/javascript/internal/paths/PackageJsonEx.qll diff --git a/javascript/ql/lib/semmle/javascript/NPM.qll b/javascript/ql/lib/semmle/javascript/NPM.qll index b625612aa33..92e34959414 100644 --- a/javascript/ql/lib/semmle/javascript/NPM.qll +++ b/javascript/ql/lib/semmle/javascript/NPM.qll @@ -4,6 +4,7 @@ import javascript private import NodeModuleResolutionImpl +private import semmle.javascript.internal.paths.PackageJsonEx /** A `package.json` configuration object. */ class PackageJson extends JsonObject { @@ -93,7 +94,10 @@ class PackageJson extends JsonObject { * `module` paths to be exported under the relative path `"."`. */ string getExportedPath(string relativePath) { - result = MainModulePath::of(this, relativePath).getValue() + this.(PackageJsonEx).hasExactPathMapping(relativePath, result) + or + relativePath = "." and + result = this.(PackageJsonEx).getMainPath() } /** Gets the path of a command defined for this package. */ @@ -220,7 +224,7 @@ class PackageJson extends JsonObject { /** * Gets the main module of this package. */ - Module getMainModule() { result = this.getExportedModule(".") } + Module getMainModule() { result.getFile() = this.(PackageJsonEx).getMainFileOrBestGuess() } /** * Gets the module exported under the given relative path. @@ -228,12 +232,10 @@ class PackageJson extends JsonObject { * The main module is considered exported under the path `"."`. */ Module getExportedModule(string relativePath) { - result = - min(Module m, int prio | - m.getFile() = resolveMainModule(this, prio, relativePath) - | - m order by prio - ) + this.(PackageJsonEx).hasExactPathMappingTo(relativePath, result.getFile()) + or + relativePath = "." and + result = this.getMainModule() } /** @@ -245,19 +247,7 @@ class PackageJson extends JsonObject { * Gets the file containing the typings of this package, which can either be from the `types` or * `typings` field, or derived from the `main` or `module` fields. */ - File getTypingsFile() { - result = - TypingsModulePathString::of(this).resolve(this.getFile().getParentContainer()).getContainer() - or - not exists(TypingsModulePathString::of(this)) and - exists(File mainFile | - mainFile = this.getMainModule().getFile() and - result = - mainFile - .getParentContainer() - .getFile(mainFile.getStem().regexpReplaceAll("\\.d$", "") + ".d.ts") - ) - } + File getTypingsFile() { none() } // implemented in PackageJsonEx /** * Gets the module containing the typings of this package, which can either be from the `types` or diff --git a/javascript/ql/lib/semmle/javascript/internal/paths/PackageJsonEx.qll b/javascript/ql/lib/semmle/javascript/internal/paths/PackageJsonEx.qll new file mode 100644 index 00000000000..4e2a51aaf7d --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/internal/paths/PackageJsonEx.qll @@ -0,0 +1,151 @@ +private import javascript +private import semmle.javascript.internal.paths.JSPaths + +/** + * Extension of `PackageJson` with some internal path-resolution predicates. + */ +class PackageJsonEx extends PackageJson { + private JsonValue getAPartOfExportsSection(string pattern) { + result = this.getPropValue("exports") and + pattern = "" + or + exists(string prop, string prevPath | + result = this.getAPartOfExportsSection(prevPath).getPropValue(prop) and + if prop.matches("./%") then pattern = prop.suffix(2) else pattern = prevPath + ) + } + + predicate hasPathMapping(string pattern, string newPath) { + this.getAPartOfExportsSection(pattern).getStringValue() = newPath + } + + predicate hasExactPathMapping(string pattern, string newPath) { + this.getAPartOfExportsSection(pattern).getStringValue() = newPath and + not pattern.matches("%*%") + } + + predicate hasPrefixPathMapping(string pattern, string newPath) { + this.hasPathMapping(pattern + "*", newPath + "*") + } + + predicate hasExactPathMappingTo(string pattern, Container target) { + exists(string newPath | + this.hasExactPathMapping(pattern, newPath) and + target = Resolver::resolve(this.getFolder(), newPath) + ) + } + + predicate hasPrefixPathMappingTo(string pattern, Container target) { + exists(string newPath | + this.hasPrefixPathMapping(pattern, newPath) and + target = Resolver::resolve(this.getFolder(), newPath) + ) + } + + string getMainPath() { result = this.getPropStringValue(["main", "module"]) } + + File getMainFile() { + exists(Container main | main = Resolver::resolve(this.getFolder(), this.getMainPath()) | + result = main + or + result = main.(Folder).getJavaScriptFileOrTypings("index") + ) + } + + File getMainFileOrBestGuess() { + result = this.getMainFile() + or + result = guessPackageJsonMain1(this) + or + result = guessPackageJsonMain2(this) + } + + string getAPathInFilesArray() { + result = this.getPropValue("files").(JsonArray).getElementStringValue(_) + } + + Container getAFileInFilesArray() { + result = Resolver::resolve(this.getFolder(), this.getAPathInFilesArray()) + } + + override File getTypingsFile() { + result = Resolver::resolve(this.getFolder(), this.getTypings()) + or + not exists(this.getTypings()) and + exists(File mainFile | + mainFile = this.getMainFileOrBestGuess() and + result = + mainFile + .getParentContainer() + .getFile(mainFile.getStem().regexpReplaceAll("\\.d$", "") + ".d.ts") + ) + } +} + +private module ResolverConfig implements Folder::ResolveSig { + additional predicate shouldResolve(PackageJsonEx pkg, Container base, string path) { + base = pkg.getFolder() and + ( + pkg.hasExactPathMapping(_, path) + or + pkg.hasPrefixPathMapping(_, path) + or + path = pkg.getMainPath() + or + path = pkg.getAPathInFilesArray() + or + path = pkg.getTypings() + ) + } + + predicate shouldResolve(Container base, string path) { shouldResolve(_, base, path) } + + predicate getAnAdditionalChild = JSPaths::getAnAdditionalChild/2; + + predicate isOptionalPathComponent(string segment) { + // Try to omit paths can might refer to a build format, .e.g `dist/cjs/foo.cjs` -> `src/foo.ts` + segment = ["cjs", "mjs", "js"] + } + + bindingset[segment] + string rewritePathSegment(string segment) { + // Try removing anything after the first dot, such as foo.min.js -> foo (the extension is then filled in by getAdditionalChild) + result = segment.regexpReplaceAll("\\..*", "") + } +} + +private module Resolver = Folder::Resolve; + +/** + * Removes the scope from a package name, e.g. `@foo/bar` -> `bar`. + */ +bindingset[name] +private string stripPackageScope(string name) { result = name.regexpReplaceAll("^@[^/]+/", "") } + +private predicate isImplementationFile(File f) { not f.getBaseName().matches("%.d.ts") } + +File guessPackageJsonMain1(PackageJsonEx pkg) { + not isImplementationFile(pkg.getMainFile()) and + exists(Folder folder, Folder subfolder | + folder = pkg.getFolder() and + ( + subfolder = folder or + subfolder = folder.getChildContainer(getASrcFolderName()) or + subfolder = + folder + .getChildContainer(getASrcFolderName()) + .(Folder) + .getChildContainer(getASrcFolderName()) + ) + | + result = subfolder.getJavaScriptFileOrTypings("index") + or + result = subfolder.getJavaScriptFileOrTypings(stripPackageScope(pkg.getDeclaredPackageName())) + ) +} + +File guessPackageJsonMain2(PackageJsonEx pkg) { + not isImplementationFile(pkg.getMainFile()) and + not isImplementationFile(guessPackageJsonMain1(pkg)) and + result = pkg.getAFileInFilesArray() +} From ed4864edf7bb6cd9afe1e9e0aeb66f5b086ea789 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 28 Apr 2025 13:24:06 +0200 Subject: [PATCH 118/656] JS: Add two more helpers to FilePath class --- javascript/ql/lib/semmle/javascript/Paths.qll | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/Paths.qll b/javascript/ql/lib/semmle/javascript/Paths.qll index cfbe00afbee..981e43f8966 100644 --- a/javascript/ql/lib/semmle/javascript/Paths.qll +++ b/javascript/ql/lib/semmle/javascript/Paths.qll @@ -135,6 +135,31 @@ class FilePath extends string { bindingset[this] string getExtension() { result = this.regexpCapture(pathRegex(), 4) } + /** + * Holds if this is a relative path starting with an explicit `./` or similar syntax meaning it + * must be resolved relative to its enclosing folder. + * + * Specifically this holds when the string is `.` or `..`, or starts with `./` or `../` or + * `.\` or `..\`. + */ + bindingset[this] + pragma[inline_late] + predicate isDotRelativePath() { this.regexpMatch("\\.\\.?(?:[/\\\\].*)?") } + + /** + * Gets the NPM package name from the beginning of the given import path. + * + * Has no result for paths starting with a `.` or `/` + * + * For example: + * - `foo/bar` maps to `foo` + * - `@example/foo/bar` maps to `@example/foo` + * - `./foo` maps to nothing. + */ + bindingset[this] + string getPackagePrefix() { + result = this.regexpFind("^(@[^/\\\\]+[/\\\\])?[^@./\\\\][^/\\\\]*", _, _) + } } /** From 6725cb5b8cb73f3810d7ad26c70ebad772fa8977 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 29 Apr 2025 12:52:15 +0200 Subject: [PATCH 119/656] JS: Implement import resolution --- .../lib/semmle/javascript/ES2015Modules.qll | 18 +- .../ql/lib/semmle/javascript/Modules.qll | 66 +---- .../ql/lib/semmle/javascript/TSConfig.qll | 42 +++ .../internal/paths/PathConcatenation.qll | 35 +++ .../internal/paths/PathExprResolver.qll | 249 ++++++++++++++++++ .../javascript/internal/paths/PathMapping.qll | 31 +++ .../test/library-tests/NodeJS/tests.expected | 4 +- .../DeclarationFiles/src/main.ts | 2 +- .../PathResolution/Fallback/src/main.ts | 10 +- .../PathResolution/import-packages.ts | 16 +- .../PathResolution/test.expected | 14 +- 11 files changed, 394 insertions(+), 93 deletions(-) create mode 100644 javascript/ql/lib/semmle/javascript/internal/paths/PathConcatenation.qll create mode 100644 javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll create mode 100644 javascript/ql/lib/semmle/javascript/internal/paths/PathMapping.qll diff --git a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll index cc84fb87324..378094e7c98 100644 --- a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll +++ b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll @@ -2,6 +2,7 @@ import javascript private import semmle.javascript.internal.CachedStages +private import semmle.javascript.internal.paths.PathExprResolver /** * An ECMAScript 2015 module. @@ -725,22 +726,7 @@ abstract class ReExportDeclaration extends ExportDeclaration { cached Module getReExportedModule() { Stages::Imports::ref() and - result.getFile() = this.getEnclosingModule().resolve(this.getImportedPath()) - or - result = this.resolveFromTypeRoot() - } - - /** - * Gets a module in a `node_modules/@types/` folder that matches the imported module name. - */ - private Module resolveFromTypeRoot() { - result.getFile() = - min(TypeRootFolder typeRoot | - | - typeRoot.getModuleFile(this.getImportedPath().getStringValue()) - order by - typeRoot.getSearchPriority(this.getFile().getParentContainer()) - ) + result.getFile() = ImportPathResolver::resolveExpr(this.getImportedPath()) } } diff --git a/javascript/ql/lib/semmle/javascript/Modules.qll b/javascript/ql/lib/semmle/javascript/Modules.qll index 8c36044bb24..6dc27f980b8 100644 --- a/javascript/ql/lib/semmle/javascript/Modules.qll +++ b/javascript/ql/lib/semmle/javascript/Modules.qll @@ -6,6 +6,7 @@ import javascript private import semmle.javascript.internal.CachedStages +private import semmle.javascript.internal.paths.PathExprResolver /** * A module, which may either be an ECMAScript 2015-style module, @@ -138,39 +139,17 @@ abstract class Import extends AstNode { /** * Gets the module the path of this import resolves to. */ - Module resolveImportedPath() { - result.getFile() = this.getEnclosingModule().resolve(this.getImportedPath()) - } + Module resolveImportedPath() { result.getFile() = this.getTargetFile() } /** - * Gets a module with a `@providesModule` JSDoc tag that matches - * the imported path. + * Gets the module the path of this import resolves to. */ - private Module resolveAsProvidedModule() { - exists(JSDocTag tag | - tag.getTitle() = "providesModule" and - tag.getParent().getComment().getTopLevel() = result and - tag.getDescription().trim() = this.getImportedPath().getValue() - ) - } + File getTargetFile() { result = ImportPathResolver::resolveExpr(this.getImportedPath()) } /** - * Gets a module in a `node_modules/@types/` folder that matches the imported module name. + * DEPRECATED. Use `getImportedModule()` instead. */ - private Module resolveFromTypeRoot() { - result.getFile() = - min(TypeRootFolder typeRoot | - | - typeRoot.getModuleFile(this.getImportedPath().getValue()) - order by - typeRoot.getSearchPriority(this.getFile().getParentContainer()) - ) - } - - /** - * Gets the imported module, as determined by the TypeScript compiler, if any. - */ - private Module resolveFromTypeScriptSymbol() { + deprecated Module resolveFromTypeScriptSymbol() { exists(CanonicalName symbol | ast_node_symbol(this, symbol) and ast_node_symbol(result, symbol) @@ -190,13 +169,7 @@ abstract class Import extends AstNode { Stages::Imports::ref() and if exists(this.resolveExternsImport()) then result = this.resolveExternsImport() - else ( - result = this.resolveAsProvidedModule() or - result = this.resolveImportedPath() or - result = this.resolveFromTypeRoot() or - result = this.resolveFromTypeScriptSymbol() or - result = resolveNeighbourPackage(this.getImportedPath().getValue()) - ) + else result = this.resolveImportedPath() } /** @@ -204,28 +177,3 @@ abstract class Import extends AstNode { */ abstract DataFlow::Node getImportedModuleNode(); } - -/** - * Gets a module imported from another package in the same repository. - * - * No support for importing from folders inside the other package. - */ -private Module resolveNeighbourPackage(PathString importPath) { - exists(PackageJson json | importPath = json.getPackageName() and result = json.getMainModule()) - or - exists(string package | - result.getFile().getParentContainer() = getPackageFolder(package) and - importPath = package + "/" + [result.getFile().getBaseName(), result.getFile().getStem()] - ) -} - -/** - * Gets the folder for a package that has name `package` according to a package.json file in the resulting folder. - */ -pragma[noinline] -private Folder getPackageFolder(string package) { - exists(PackageJson json | - json.getPackageName() = package and - result = json.getFile().getParentContainer() - ) -} diff --git a/javascript/ql/lib/semmle/javascript/TSConfig.qll b/javascript/ql/lib/semmle/javascript/TSConfig.qll index 358326c20d7..b38fa1d1dc9 100644 --- a/javascript/ql/lib/semmle/javascript/TSConfig.qll +++ b/javascript/ql/lib/semmle/javascript/TSConfig.qll @@ -3,6 +3,7 @@ */ private import javascript +private import semmle.javascript.internal.paths.PathMapping /** * A TypeScript configuration file, usually named `tsconfig.json`. @@ -178,3 +179,44 @@ private module ResolverConfig implements Folder::ResolveSig { } private module Resolver = Folder::Resolve; + +/** + * Gets a tsconfig file to use as fallback for handling paths in `c`. + * + * This holds for files and folders where no tsconfig seems to include it, + * but it has one or more tsconfig files in parent directories. + */ +private TSConfig getFallbackTSConfig(Container c) { + not c = any(TSConfig t).getAnIncludedContainer() and + ( + c = result.getFolder() + or + result = getFallbackTSConfig(c.getParentContainer()) + ) +} + +private class TSConfigPathMapping extends PathMapping, TSConfig { + override File getAnAffectedFile() { + result = this.getAnIncludedContainer() + or + this = getFallbackTSConfig(result) + } + + override predicate hasExactPathMapping(string pattern, Container newContext, string newPath) { + exists(TSConfig tsconfig | + tsconfig = this.getExtendedTSConfig*() and + tsconfig.hasExactPathMapping(pattern, newPath) and + newContext = tsconfig.getBaseUrlFolderOrOwnFolder() + ) + } + + override predicate hasPrefixPathMapping(string pattern, Container newContext, string newPath) { + exists(TSConfig tsconfig | + tsconfig = this.getExtendedTSConfig*() and + tsconfig.hasPrefixPathMapping(pattern, newPath) and + newContext = tsconfig.getBaseUrlFolderOrOwnFolder() + ) + } + + override predicate hasBaseUrl(Container base) { base = this.getBaseUrlFolder() } +} diff --git a/javascript/ql/lib/semmle/javascript/internal/paths/PathConcatenation.qll b/javascript/ql/lib/semmle/javascript/internal/paths/PathConcatenation.qll new file mode 100644 index 00000000000..448c7e55e01 --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/internal/paths/PathConcatenation.qll @@ -0,0 +1,35 @@ +private import javascript + +/** + * A path expression that can be constant-folded by concatenating subexpressions. + */ +abstract class PathConcatenation extends Expr { + /** Gets the separator to insert between paths */ + string getSeparator() { result = "" } + + /** Gets the `n`th operand to concatenate. */ + abstract Expr getOperand(int n); +} + +private class AddExprConcatenation extends PathConcatenation, AddExpr { + override Expr getOperand(int n) { + n = 0 and result = this.getLeftOperand() + or + n = 1 and result = this.getRightOperand() + } +} + +private class TemplateConcatenation extends PathConcatenation, TemplateLiteral { + override Expr getOperand(int n) { result = this.getElement(n) } +} + +private class JoinCallConcatenation extends PathConcatenation, CallExpr { + JoinCallConcatenation() { + this.getReceiver().(VarAccess).getName() = "path" and + this.getCalleeName() = ["join", "resolve"] + } + + override Expr getOperand(int n) { result = this.getArgument(n) } + + override string getSeparator() { result = "/" } +} diff --git a/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll b/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll new file mode 100644 index 00000000000..853939dfe5f --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll @@ -0,0 +1,249 @@ +private import javascript +private import semmle.javascript.internal.paths.PackageJsonEx +private import semmle.javascript.internal.paths.JSPaths +private import semmle.javascript.internal.paths.PathMapping +private import semmle.javascript.internal.paths.PathConcatenation +private import semmle.javascript.dataflow.internal.DataFlowNode + +/** + * Gets the file to import when an imported path resolves to the given `folder`. + */ +File getFileFromFolderImport(Folder folder) { + result = folder.getJavaScriptFileOrTypings("index") + or + // Note that unlike "exports" paths, "main" and "module" also take effect when the package + // is imported via a relative path, e.g. `require("..")` targeting a folder with a package.json file. + exists(PackageJsonEx pkg | + pkg.getFolder() = folder and + result = pkg.getMainFileOrBestGuess() + ) +} + +private Variable dirnameVar() { result.getName() = "__dirname" } + +private Variable filenameVar() { result.getName() = "__filename" } + +private signature predicate exprSig(Expr e); + +module ResolveExpr { + /** Holds if we need the constant string-value of `node`. */ + private predicate needsConstantFolding(EarlyStageNode node) { + exists(Expr e | + shouldResolveExpr(e) and + node = TValueNode(e) + ) + or + exists(EarlyStageNode needsFolding | needsConstantFolding(needsFolding) | + DataFlow::Impl::earlyStageImmediateFlowStep(node, needsFolding) + or + exists(PathConcatenation joiner | + needsFolding = TValueNode(joiner) and + node = TValueNode(joiner.getOperand(_)) + ) + ) + } + + /** Gets the constant-value of `node` */ + language[monotonicAggregates] + private string getValue(EarlyStageNode node) { + needsConstantFolding(node) and + ( + exists(Expr e | node = TValueNode(e) | + result = e.getStringValue() + or + e = dirnameVar().getAnAccess() and + result = "./" // Ensure the path gets interpreted relative to the current directory + or + e = filenameVar().getAnAccess() and + result = "./" + e.getFile().getBaseName() + ) + or + exists(EarlyStageNode pred | + DataFlow::Impl::earlyStageImmediateFlowStep(pred, node) and + result = getValue(pred) + ) + or + exists(PathConcatenation join | + node = TValueNode(join) and + result = + strictconcat(int n, EarlyStageNode child, string sep | + child = TValueNode(join.getOperand(n)) and sep = join.getSeparator() + | + getValue(child), sep order by n + ) + ) + ) + } + + final private class FinalExpr = Expr; + + private class RelevantExpr extends FinalExpr { + RelevantExpr() { shouldResolveExpr(this) } + + /** Gets the string-value of this path. */ + string getValue() { result = getValue(TValueNode(this)) } + + /** Gets a path mapping affecting this path. */ + pragma[nomagic] + PathMapping getAPathMapping() { result.getAnAffectedFile() = this.getFile() } + + /** Gets the NPM package name from the beginning of this path. */ + pragma[nomagic] + string getPackagePrefix() { result = this.getValue().(FilePath).getPackagePrefix() } + } + + /** + * Holds if `expr` matches a path mapping, and should thus be resolved as `newPath` relative to `base`. + */ + pragma[nomagic] + private predicate resolveViaPathMapping(RelevantExpr expr, Container base, string newPath) { + // Handle path mappings such as `{ "paths": { "@/*": "./src/*" }}` in a tsconfig.json file + exists(PathMapping mapping, string value | + mapping = expr.getAPathMapping() and + value = expr.getValue() + | + mapping.hasExactPathMapping(value, base, newPath) + or + exists(string pattern, string suffix, string mappedPath | + mapping.hasPrefixPathMapping(pattern, base, mappedPath) and + value = pattern + suffix and + newPath = mappedPath + suffix + ) + ) + or + // Handle imports referring to a package by name, where we have a package.json + // file for that package in the codebase. This is treated separately from PathMapping for performance + // reasons, as there can be a large number of packages which affect all files in the project. + // + // This part only handles the "exports" property of package.json. "main" and "modules" are + // handled further down because their semantics are easier to handle there. + exists(PackageJsonEx pkg, string packageName, string remainder | + packageName = expr.getPackagePrefix() and + pkg.getDeclaredPackageName() = packageName and + remainder = expr.getValue().suffix(packageName.length()).regexpReplaceAll("^[/\\\\]", "") + | + // "exports": { ".": "./foo.js" } + // "exports": { "./foo.js": "./foo/impl.js" } + pkg.hasExactPathMappingTo(remainder, base) and + newPath = "" + or + // "exports": { "./*": "./foo/*" } + exists(string prefix | + pkg.hasPrefixPathMappingTo(prefix, base) and + remainder = prefix + newPath + ) + ) + } + + pragma[noopt] + private predicate relativePathExpr(RelevantExpr expr, Container base, FilePath path) { + expr instanceof RelevantExpr and + path = expr.getValue() and + path.isDotRelativePath() and + exists(File file | + file = expr.getFile() and + base = file.getParentContainer() + ) + } + + pragma[nomagic] + private Container getJSDocProvidedModule(string moduleName) { + exists(JSDocTag tag | + tag.getTitle() = "providesModule" and + tag.getDescription().trim() = moduleName and + tag.getFile() = result + ) + } + + /** + * Holds if `expr` should be resolved as `path` relative to `base`. + */ + pragma[nomagic] + private predicate shouldResolve(RelevantExpr expr, Container base, FilePath path) { + // Relative paths are resolved from their enclosing folder + relativePathExpr(expr, base, path) + or + resolveViaPathMapping(expr, base, path) + or + // Resolve from baseUrl of relevant tsconfig.json file + path = expr.getValue() and + not path.isDotRelativePath() and + expr.getAPathMapping().hasBaseUrl(base) + or + // If the path starts with the name of a package, resolve relative to the directory of that package. + // Note that `getFileFromFolderImport` may subsequently redirect this to the package's "main", + // so we don't have to deal with that here. + exists(PackageJson pkg, string packageName | + packageName = expr.getPackagePrefix() and + pkg.getDeclaredPackageName() = packageName and + path = expr.getValue().suffix(packageName.length()) and + base = pkg.getFolder() + ) + or + base = getJSDocProvidedModule(expr.getValue()) and + path = "" + } + + private module ResolverConfig implements Folder::ResolveSig { + predicate shouldResolve(Container base, string path) { shouldResolve(_, base, path) } + + predicate getAnAdditionalChild = JSPaths::getAnAdditionalChild/2; + } + + private module Resolver = Folder::Resolve; + + private Container resolvePathExpr1(RelevantExpr expr) { + exists(Container base, string path | + shouldResolve(expr, base, path) and + result = Resolver::resolve(base, path) + ) + } + + File resolveExpr(RelevantExpr expr) { + result = resolvePathExpr1(expr) + or + result = getFileFromFolderImport(resolvePathExpr1(expr)) + } + + module Debug { + class PathExprToDebug extends RelevantExpr { + PathExprToDebug() { this.getValue() = "vs/nls" } + } + + query PathExprToDebug pathExprs() { any() } + + query string getPackagePrefixFromPathExpr_(PathExprToDebug expr) { + result = expr.getPackagePrefix() + } + + query predicate resolveViaPathMapping_(PathExprToDebug expr, Container base, string newPath) { + resolveViaPathMapping(expr, base, newPath) + } + + query predicate shouldResolve_(PathExprToDebug expr, Container base, string newPath) { + shouldResolve(expr, base, newPath) + } + + query Container resolvePathExpr1_(PathExprToDebug expr) { result = resolvePathExpr1(expr) } + + query File resolveExpr_(PathExprToDebug expr) { result = resolveExpr(expr) } + + // Some predicates that are usually small enough that they don't need restriction + query File getPackageMainFile(PackageJsonEx pkg) { result = pkg.getMainFile() } + + query predicate guessPackageJsonMain1_ = guessPackageJsonMain1/1; + + query predicate guessPackageJsonMain2_ = guessPackageJsonMain2/1; + + query predicate getFileFromFolderImport_ = getFileFromFolderImport/1; + } +} + +private predicate isImportPathExpr(Expr e) { + e = any(Import imprt).getImportedPath() + or + e = any(ReExportDeclaration decl).getImportedPath() +} + +/** Resolves paths in imports and re-exports. */ +module ImportPathResolver = ResolveExpr; diff --git a/javascript/ql/lib/semmle/javascript/internal/paths/PathMapping.qll b/javascript/ql/lib/semmle/javascript/internal/paths/PathMapping.qll new file mode 100644 index 00000000000..d3da0a51cfa --- /dev/null +++ b/javascript/ql/lib/semmle/javascript/internal/paths/PathMapping.qll @@ -0,0 +1,31 @@ +/** + * Provides an extensible mechanism for modeling path mappings. + */ + +private import javascript +private import semmle.javascript.TSConfig + +/** + * A `tsconfig.json`-like configuration object that can affect import resolution via path mappings. + */ +abstract class PathMapping extends Locatable { + /** + * Gets a file affected by this path mapping. + */ + abstract File getAnAffectedFile(); + + /** + * Holds if imports paths exactly matching `pattern` should be redirected to `newPath` + * resolved relative to `newContext`. + */ + predicate hasExactPathMapping(string pattern, Container newContext, string newPath) { none() } + + /** + * Holds if imports paths starting with `pattern` should have the matched prefix replaced by `newPath` + * and then resolved relative to `newContext`. + */ + predicate hasPrefixPathMapping(string pattern, Container newContext, string newPath) { none() } + + /** Holds if non-relative paths in affected files should be resolved relative to `base`. */ + predicate hasBaseUrl(Container base) { none() } +} diff --git a/javascript/ql/test/library-tests/NodeJS/tests.expected b/javascript/ql/test/library-tests/NodeJS/tests.expected index b97c6a345e8..964b784cf93 100644 --- a/javascript/ql/test/library-tests/NodeJS/tests.expected +++ b/javascript/ql/test/library-tests/NodeJS/tests.expected @@ -94,14 +94,12 @@ requireImport | a.js:3:6:3:23 | require('./sub/c') | ./sub/c | sub/c.js:1:1:4:0 | | | a.js:4:6:4:29 | require ... /d.js') | ./sub/../d.js | d.js:1:1:7:15 | | | a.js:7:1:7:18 | require('./sub/c') | ./sub/c | sub/c.js:1:1:4:0 | | -| a.js:10:1:10:18 | require(__dirname) | | index.js:1:1:3:0 | | -| a.js:11:1:11:25 | require ... + '/e') | /e | e.js:1:1:6:0 | | | a.js:12:1:12:28 | require ... + 'c') | ./sub/c | sub/c.js:1:1:4:0 | | | b.js:1:1:1:18 | require('./sub/c') | ./sub/c | sub/c.js:1:1:4:0 | | | d.js:7:1:7:14 | require('foo') | foo | sub/f.js:1:1:4:17 | | -| index.js:2:1:2:41 | require ... b.js")) | /index.js/../b.js | b.js:1:1:8:0 | | | mjs-files/require-from-js.js:1:12:1:36 | require ... on-me') | ./depend-on-me | mjs-files/depend-on-me.mjs:1:1:7:1 | | | mjs-files/require-from-js.js:2:12:2:39 | require ... me.js') | ./depend-on-me.js | mjs-files/depend-on-me.js:1:1:8:0 | | +| mjs-files/require-from-js.js:2:12:2:39 | require ... me.js') | ./depend-on-me.js | mjs-files/depend-on-me.mjs:1:1:7:1 | | | mjs-files/require-from-js.js:3:12:3:40 | require ... e.mjs') | ./depend-on-me.mjs | mjs-files/depend-on-me.mjs:1:1:7:1 | | | reexport/b.js:1:11:1:24 | require("./a") | ./a | reexport/a.js:1:1:3:1 | | | sub/c.js:1:1:1:15 | require('../a') | ../a | a.js:1:1:14:0 | | diff --git a/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/src/main.ts b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/src/main.ts index cfa7c750d9a..7682a39f00a 100644 --- a/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/src/main.ts +++ b/javascript/ql/test/library-tests/PathResolution/DeclarationFiles/src/main.ts @@ -4,4 +4,4 @@ import "../lib/split.d.ts"; // $ importTarget=DeclarationFiles/lib/split.d.ts import "../lib/typescript"; // $ importTarget=DeclarationFiles/lib/typescript.ts import "../lib/typescript.js"; // $ importTarget=DeclarationFiles/lib/typescript.ts -import "../lib/typescript.d.ts"; // $ importTarget=DeclarationFiles/lib/typescript.d.ts SPURIOUS: importTarget=DeclarationFiles/lib/typescript.ts +import "../lib/typescript.d.ts"; // $ importTarget=DeclarationFiles/lib/typescript.d.ts diff --git a/javascript/ql/test/library-tests/PathResolution/Fallback/src/main.ts b/javascript/ql/test/library-tests/PathResolution/Fallback/src/main.ts index 1b0bdb14e99..aad239811b5 100644 --- a/javascript/ql/test/library-tests/PathResolution/Fallback/src/main.ts +++ b/javascript/ql/test/library-tests/PathResolution/Fallback/src/main.ts @@ -1,10 +1,10 @@ -import "@/both" // $ importTarget=Fallback/lib1/both.ts +import "@/both" // $ importTarget=Fallback/lib1/both.ts SPURIOUS: importTarget=Fallback/lib2/both.ts import "@/only1" // $ importTarget=Fallback/lib1/only1.ts import "@/only2" // $ importTarget=Fallback/lib2/only2.ts -import "@/differentExtension" // $ importTarget=Fallback/lib2/differentExtension.ts -import "@/differentExtension.js" // $ importTarget=Fallback/lib2/differentExtension.ts +import "@/differentExtension" // $ importTarget=Fallback/lib2/differentExtension.ts SPURIOUS: importTarget=Fallback/lib1/differentExtension.js +import "@/differentExtension.js" // $ importTarget=Fallback/lib2/differentExtension.ts SPURIOUS: importTarget=Fallback/lib1/differentExtension.js -import "@/subdir" // $ importTarget=Fallback/lib1/subdir/index.ts -import "@/subdir/both" // $ importTarget=Fallback/lib1/subdir/both.ts +import "@/subdir" // $ importTarget=Fallback/lib1/subdir/index.ts SPURIOUS: importTarget=Fallback/lib2/subdir/index.ts +import "@/subdir/both" // $ importTarget=Fallback/lib1/subdir/both.ts SPURIOUS: importTarget=Fallback/lib2/subdir/both.ts import "@/subdir/only1" // $ importTarget=Fallback/lib1/subdir/only1.ts import "@/subdir/only2" // $ importTarget=Fallback/lib2/subdir/only2.ts diff --git a/javascript/ql/test/library-tests/PathResolution/import-packages.ts b/javascript/ql/test/library-tests/PathResolution/import-packages.ts index 8f1ec41d9cb..6b7ca9014e4 100644 --- a/javascript/ql/test/library-tests/PathResolution/import-packages.ts +++ b/javascript/ql/test/library-tests/PathResolution/import-packages.ts @@ -1,23 +1,23 @@ import './PackageWithMain/main'; // $ importTarget=PackageWithMain/main.js import '@example/package-with-main'; // $ importTarget=PackageWithMain/main.js -import './PackageWithModuleMain'; // $ MISSING: importTarget=PackageWithModuleMain/main.js +import './PackageWithModuleMain'; // $ importTarget=PackageWithModuleMain/main.js import '@example/package-with-module-main'; // $ importTarget=PackageWithModuleMain/main.js import './PackageWithExports'; // Not a valid import import './PackageWithExports/fake-file'; // Not a valid import import './PackageWithExports/star/foo'; // Not a valid import import '@example/package-with-exports'; // $ importTarget=PackageWithExports/main.js -import '@example/package-with-exports/fake-file'; // $ MISSING: importTarget=PackageWithExports/fake-file-impl.js -import '@example/package-with-exports/star/foo'; // $ MISSING: importTarget=PackageWithExports/star-impl/foo.js +import '@example/package-with-exports/fake-file'; // $ importTarget=PackageWithExports/fake-file-impl.js +import '@example/package-with-exports/star/foo'; // $ importTarget=PackageWithExports/star-impl/foo.js import './PackageIndexFile'; // $ importTarget=PackageIndexFile/index.js import '@example/package-with-index-file'; // $ importTarget=PackageIndexFile/index.js -import './PackageGuess1'; // $ MISSING: importTarget=PackageGuess1/src/index.ts +import './PackageGuess1'; // $ importTarget=PackageGuess1/src/index.ts import '@example/package-guess1'; // $ importTarget=PackageGuess1/src/index.ts -import './PackageGuess2'; // $ MISSING: importTarget=PackageGuess2/blah/stuff.ts +import './PackageGuess2'; // $ importTarget=PackageGuess2/blah/stuff.ts import '@example/package-guess2'; // $ importTarget=PackageGuess2/blah/stuff.ts import './PackageWithMainExt'; // $ importTarget=PackageWithMainExt/lib/main.ts @@ -25,11 +25,11 @@ import '@example/package-with-main-ext'; // $ importTarget=PackageWithMainExt/li import './TSConfigOutDir/customOutDir/foo.js'; // $ importTarget=TSConfigOutDir/src/foo.ts -import './MainIsFolder'; // $ MISSING: importTarget=MainIsFolder/src/index.ts +import './MainIsFolder'; // $ importTarget=MainIsFolder/src/index.ts import '@example/main-is-folder'; // $ importTarget=MainIsFolder/src/index.ts -import './DistContainsSrc'; // $ MISSING: importTarget=DistContainsSrc/src/foo.ts +import './DistContainsSrc'; // $ importTarget=DistContainsSrc/src/foo.ts -import './MinifiedMain'; // $ MISSING: importTarget=MinifiedMain/src/library.ts +import './MinifiedMain'; // $ importTarget=MinifiedMain/src/library.ts import './RootDir/my-out/foo.js'; // $ importTarget=RootDir/my-root/foo.ts diff --git a/javascript/ql/test/library-tests/PathResolution/test.expected b/javascript/ql/test/library-tests/PathResolution/test.expected index cbabd2cc7bc..492aa6efd44 100644 --- a/javascript/ql/test/library-tests/PathResolution/test.expected +++ b/javascript/ql/test/library-tests/PathResolution/test.expected @@ -40,7 +40,6 @@ | DeclarationFiles/src/main.ts:5:1:5:27 | import ... cript"; | DeclarationFiles/lib/typescript.ts | | DeclarationFiles/src/main.ts:6:1:6:30 | import ... pt.js"; | DeclarationFiles/lib/typescript.ts | | DeclarationFiles/src/main.ts:7:1:7:32 | import ... .d.ts"; | DeclarationFiles/lib/typescript.d.ts | -| DeclarationFiles/src/main.ts:7:1:7:32 | import ... .d.ts"; | DeclarationFiles/lib/typescript.ts | | DirnameImports/main.js:4:1:4:33 | require ... et.js') | DirnameImports/target.js | | DirnameImports/main.js:5:1:5:40 | require ... et.js') | DirnameImports/nested/target.js | | DirnameImports/main.js:6:1:6:45 | require ... es.ts') | import-packages.ts | @@ -69,12 +68,17 @@ | Extended/src/main.ts:25:1:25:20 | import "@/index.ts"; | Extended/lib/index.ts | | Extended/src/main.ts:26:1:26:20 | import "@/index.js"; | Extended/lib/index.ts | | Fallback/src/main.ts:1:1:1:15 | import "@/both" | Fallback/lib1/both.ts | +| Fallback/src/main.ts:1:1:1:15 | import "@/both" | Fallback/lib2/both.ts | | Fallback/src/main.ts:2:1:2:16 | import "@/only1" | Fallback/lib1/only1.ts | | Fallback/src/main.ts:3:1:3:16 | import "@/only2" | Fallback/lib2/only2.ts | +| Fallback/src/main.ts:4:1:4:29 | import ... ension" | Fallback/lib1/differentExtension.js | | Fallback/src/main.ts:4:1:4:29 | import ... ension" | Fallback/lib2/differentExtension.ts | +| Fallback/src/main.ts:5:1:5:32 | import ... ion.js" | Fallback/lib1/differentExtension.js | | Fallback/src/main.ts:5:1:5:32 | import ... ion.js" | Fallback/lib2/differentExtension.ts | | Fallback/src/main.ts:7:1:7:17 | import "@/subdir" | Fallback/lib1/subdir/index.ts | +| Fallback/src/main.ts:7:1:7:17 | import "@/subdir" | Fallback/lib2/subdir/index.ts | | Fallback/src/main.ts:8:1:8:22 | import ... r/both" | Fallback/lib1/subdir/both.ts | +| Fallback/src/main.ts:8:1:8:22 | import ... r/both" | Fallback/lib2/subdir/both.ts | | Fallback/src/main.ts:9:1:9:23 | import ... /only1" | Fallback/lib1/subdir/only1.ts | | Fallback/src/main.ts:10:1:10:23 | import ... /only2" | Fallback/lib2/subdir/only2.ts | | JSDocProvide/main.js:1:1:1:43 | import ... r/baz'; | JSDocProvide/lib.js | @@ -98,14 +102,22 @@ | NodeModules/subfolder/src/main.ts:2:1:2:13 | import 'bar'; | NodeModules/subfolder/node_modules/bar/index.js | | import-packages.ts:1:1:1:32 | import ... /main'; | PackageWithMain/main.js | | import-packages.ts:2:1:2:36 | import ... -main'; | PackageWithMain/main.js | +| import-packages.ts:4:1:4:33 | import ... eMain'; | PackageWithModuleMain/main.js | | import-packages.ts:5:1:5:43 | import ... -main'; | PackageWithModuleMain/main.js | | import-packages.ts:10:1:10:39 | import ... ports'; | PackageWithExports/main.js | +| import-packages.ts:11:1:11:49 | import ... -file'; | PackageWithExports/fake-file-impl.js | +| import-packages.ts:12:1:12:48 | import ... r/foo'; | PackageWithExports/star-impl/foo.js | | import-packages.ts:14:1:14:28 | import ... xFile'; | PackageIndexFile/index.js | | import-packages.ts:15:1:15:42 | import ... -file'; | PackageIndexFile/index.js | +| import-packages.ts:17:1:17:25 | import ... uess1'; | PackageGuess1/src/index.ts | | import-packages.ts:18:1:18:33 | import ... uess1'; | PackageGuess1/src/index.ts | +| import-packages.ts:20:1:20:25 | import ... uess2'; | PackageGuess2/blah/stuff.ts | | import-packages.ts:21:1:21:33 | import ... uess2'; | PackageGuess2/blah/stuff.ts | | import-packages.ts:23:1:23:30 | import ... inExt'; | PackageWithMainExt/lib/main.ts | | import-packages.ts:24:1:24:40 | import ... n-ext'; | PackageWithMainExt/lib/main.ts | | import-packages.ts:26:1:26:46 | import ... oo.js'; | TSConfigOutDir/src/foo.ts | +| import-packages.ts:28:1:28:24 | import ... older'; | MainIsFolder/src/index.ts | | import-packages.ts:29:1:29:33 | import ... older'; | MainIsFolder/src/index.ts | +| import-packages.ts:31:1:31:27 | import ... nsSrc'; | DistContainsSrc/src/foo.ts | +| import-packages.ts:33:1:33:24 | import ... dMain'; | MinifiedMain/src/library.ts | | import-packages.ts:35:1:35:33 | import ... oo.js'; | RootDir/my-root/foo.ts | From e4420f63fb2966e3c058f8688e0748d5f4ed648f Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 28 Apr 2025 12:52:24 +0200 Subject: [PATCH 120/656] JS: Move babel-root-import test This moves the test for the babel `root-import` plugin into the new unit test for import resolution, so we only have one set of tests to maintain. The actual implementation is added in the next commit. --- .../BabelRootImport}/tst1/.babelrc.json | 0 .../BabelRootImport}/tst1/a.js | 0 .../PathResolution/BabelRootImport/tst1/index.js | 1 + .../PathResolution/BabelRootImport/tst1/nested/tst.js | 1 + .../PathResolution/BabelRootImport/tst2/index.js | 2 ++ .../BabelRootImport}/tst2/package.json | 0 .../BabelRootImport}/tst2/src/js/b.js | 0 .../BabelRootImport}/tst3/.babelrc.json | 0 .../PathResolution/BabelRootImport/tst3/index.js | 1 + .../BabelRootImport}/tst3/src/b.js | 0 .../PathResolution/BabelRootImport/tst4/index.js | 2 ++ .../BabelRootImport}/tst4/package.json | 0 .../BabelRootImport}/tst4/src/js/b.js | 0 .../frameworks/babel/root-import/Imports.expected | 9 --------- .../frameworks/babel/root-import/Imports.ql | 4 ---- .../frameworks/babel/root-import/tst1/index.js | 1 - .../frameworks/babel/root-import/tst1/nested/tst.js | 1 - .../frameworks/babel/root-import/tst2/index.js | 2 -- .../frameworks/babel/root-import/tst3/index.js | 1 - .../frameworks/babel/root-import/tst4/index.js | 2 -- 20 files changed, 7 insertions(+), 20 deletions(-) rename javascript/ql/test/library-tests/{frameworks/babel/root-import => PathResolution/BabelRootImport}/tst1/.babelrc.json (100%) rename javascript/ql/test/library-tests/{frameworks/babel/root-import => PathResolution/BabelRootImport}/tst1/a.js (100%) create mode 100644 javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/index.js create mode 100644 javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/nested/tst.js create mode 100644 javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/index.js rename javascript/ql/test/library-tests/{frameworks/babel/root-import => PathResolution/BabelRootImport}/tst2/package.json (100%) rename javascript/ql/test/library-tests/{frameworks/babel/root-import => PathResolution/BabelRootImport}/tst2/src/js/b.js (100%) rename javascript/ql/test/library-tests/{frameworks/babel/root-import => PathResolution/BabelRootImport}/tst3/.babelrc.json (100%) create mode 100644 javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/index.js rename javascript/ql/test/library-tests/{frameworks/babel/root-import => PathResolution/BabelRootImport}/tst3/src/b.js (100%) create mode 100644 javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/index.js rename javascript/ql/test/library-tests/{frameworks/babel/root-import => PathResolution/BabelRootImport}/tst4/package.json (100%) rename javascript/ql/test/library-tests/{frameworks/babel/root-import => PathResolution/BabelRootImport}/tst4/src/js/b.js (100%) delete mode 100644 javascript/ql/test/library-tests/frameworks/babel/root-import/Imports.expected delete mode 100644 javascript/ql/test/library-tests/frameworks/babel/root-import/Imports.ql delete mode 100644 javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/index.js delete mode 100644 javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/nested/tst.js delete mode 100644 javascript/ql/test/library-tests/frameworks/babel/root-import/tst2/index.js delete mode 100644 javascript/ql/test/library-tests/frameworks/babel/root-import/tst3/index.js delete mode 100644 javascript/ql/test/library-tests/frameworks/babel/root-import/tst4/index.js diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/.babelrc.json b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/.babelrc.json similarity index 100% rename from javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/.babelrc.json rename to javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/.babelrc.json diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/a.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/a.js similarity index 100% rename from javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/a.js rename to javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/a.js diff --git a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/index.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/index.js new file mode 100644 index 00000000000..78238f8a22c --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/index.js @@ -0,0 +1 @@ +import f from '~/a'; // $ MISSING: importTarget=BabelRootImport/tst1/a.js diff --git a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/nested/tst.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/nested/tst.js new file mode 100644 index 00000000000..78238f8a22c --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/nested/tst.js @@ -0,0 +1 @@ +import f from '~/a'; // $ MISSING: importTarget=BabelRootImport/tst1/a.js diff --git a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/index.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/index.js new file mode 100644 index 00000000000..bb9ac8e5631 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/index.js @@ -0,0 +1,2 @@ +import g from '~/b.js'; // $ MISSING: importTarget=BabelRootImport/tst2/src/js/b.js +import f from '#/a'; // $ MISSING: importTarget=BabelRootImport/tst1/a.js diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst2/package.json b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/package.json similarity index 100% rename from javascript/ql/test/library-tests/frameworks/babel/root-import/tst2/package.json rename to javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/package.json diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst2/src/js/b.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/src/js/b.js similarity index 100% rename from javascript/ql/test/library-tests/frameworks/babel/root-import/tst2/src/js/b.js rename to javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/src/js/b.js diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst3/.babelrc.json b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/.babelrc.json similarity index 100% rename from javascript/ql/test/library-tests/frameworks/babel/root-import/tst3/.babelrc.json rename to javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/.babelrc.json diff --git a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/index.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/index.js new file mode 100644 index 00000000000..f7297a51022 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/index.js @@ -0,0 +1 @@ +import greeting from '~/b.js'; // $ MISSING: importTarget=BabelRootImport/tst3/src/b.js diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst3/src/b.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/src/b.js similarity index 100% rename from javascript/ql/test/library-tests/frameworks/babel/root-import/tst3/src/b.js rename to javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/src/b.js diff --git a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/index.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/index.js new file mode 100644 index 00000000000..fc3e863f6d1 --- /dev/null +++ b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/index.js @@ -0,0 +1,2 @@ +import g from '~/b.js'; // $ MISSING: importTarget=BabelRootImport/tst4/src/js/b.js +import f from '#/a'; // $ MISSING: importTarget=BabelRootImport/tst1/a.js diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst4/package.json b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/package.json similarity index 100% rename from javascript/ql/test/library-tests/frameworks/babel/root-import/tst4/package.json rename to javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/package.json diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst4/src/js/b.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/src/js/b.js similarity index 100% rename from javascript/ql/test/library-tests/frameworks/babel/root-import/tst4/src/js/b.js rename to javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/src/js/b.js diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/Imports.expected b/javascript/ql/test/library-tests/frameworks/babel/root-import/Imports.expected deleted file mode 100644 index ee3f8cd7aaf..00000000000 --- a/javascript/ql/test/library-tests/frameworks/babel/root-import/Imports.expected +++ /dev/null @@ -1,9 +0,0 @@ -| tst1/index.js:1:1:1:20 | import f from '~/a'; | tst1/a.js:1:1:2:0 | | -| tst1/nested/tst.js:1:1:1:20 | import f from '~/a'; | tst1/a.js:1:1:2:0 | | -| tst2/index.js:1:1:1:23 | import ... /b.js'; | tst2/src/js/b.js:1:1:2:0 | | -| tst2/index.js:2:1:2:20 | import f from '#/a'; | tst1/a.js:1:1:2:0 | | -| tst2/index.js:2:1:2:20 | import f from '#/a'; | tst1/index.js:1:1:2:0 | | -| tst3/index.js:1:1:1:30 | import ... /b.js'; | tst3/src/b.js:1:1:2:0 | | -| tst4/index.js:1:1:1:23 | import ... /b.js'; | tst4/src/js/b.js:1:1:2:0 | | -| tst4/index.js:2:1:2:20 | import f from '#/a'; | tst1/a.js:1:1:2:0 | | -| tst4/index.js:2:1:2:20 | import f from '#/a'; | tst1/index.js:1:1:2:0 | | diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/Imports.ql b/javascript/ql/test/library-tests/frameworks/babel/root-import/Imports.ql deleted file mode 100644 index 343775bedc0..00000000000 --- a/javascript/ql/test/library-tests/frameworks/babel/root-import/Imports.ql +++ /dev/null @@ -1,4 +0,0 @@ -import javascript - -from Import i -select i, i.getImportedModule() diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/index.js b/javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/index.js deleted file mode 100644 index cd74a094e53..00000000000 --- a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/index.js +++ /dev/null @@ -1 +0,0 @@ -import f from '~/a'; diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/nested/tst.js b/javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/nested/tst.js deleted file mode 100644 index cd74a094e53..00000000000 --- a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst1/nested/tst.js +++ /dev/null @@ -1 +0,0 @@ -import f from '~/a'; diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst2/index.js b/javascript/ql/test/library-tests/frameworks/babel/root-import/tst2/index.js deleted file mode 100644 index 1253ec4afd8..00000000000 --- a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst2/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import g from '~/b.js'; -import f from '#/a'; diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst3/index.js b/javascript/ql/test/library-tests/frameworks/babel/root-import/tst3/index.js deleted file mode 100644 index ef05072a9a6..00000000000 --- a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst3/index.js +++ /dev/null @@ -1 +0,0 @@ -import greeting from '~/b.js'; diff --git a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst4/index.js b/javascript/ql/test/library-tests/frameworks/babel/root-import/tst4/index.js deleted file mode 100644 index 1253ec4afd8..00000000000 --- a/javascript/ql/test/library-tests/frameworks/babel/root-import/tst4/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import g from '~/b.js'; -import f from '#/a'; From d72487496983cb8b25ef606ab7cad71212f5687a Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 28 Apr 2025 13:35:23 +0200 Subject: [PATCH 121/656] JS: Implement babel-plugin-root-import as a PathMapping --- javascript/ql/lib/semmle/javascript/frameworks/Babel.qll | 9 +++++++++ .../PathResolution/BabelRootImport/tst1/index.js | 2 +- .../PathResolution/BabelRootImport/tst1/nested/tst.js | 2 +- .../PathResolution/BabelRootImport/tst2/index.js | 4 ++-- .../PathResolution/BabelRootImport/tst3/index.js | 2 +- .../PathResolution/BabelRootImport/tst4/index.js | 4 ++-- .../ql/test/library-tests/PathResolution/test.expected | 7 +++++++ 7 files changed, 23 insertions(+), 7 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Babel.qll b/javascript/ql/lib/semmle/javascript/frameworks/Babel.qll index 240e75627cf..52315013d17 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Babel.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Babel.qll @@ -3,6 +3,7 @@ */ import javascript +private import semmle.javascript.internal.paths.PathMapping module Babel { /** @@ -202,4 +203,12 @@ module Babel { ) } } + + private class BabelPathMapping extends PathMapping, RootImportConfig { + override File getAnAffectedFile() { result = this.getConfig().getAContainerInScope() } + + override predicate hasPrefixPathMapping(string pattern, Container newContext, string newPath) { + newPath = this.getRoot(pattern) and newContext = this.getFolder() + } + } } diff --git a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/index.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/index.js index 78238f8a22c..210dcc7893f 100644 --- a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/index.js +++ b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/index.js @@ -1 +1 @@ -import f from '~/a'; // $ MISSING: importTarget=BabelRootImport/tst1/a.js +import f from '~/a'; // $ importTarget=BabelRootImport/tst1/a.js diff --git a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/nested/tst.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/nested/tst.js index 78238f8a22c..210dcc7893f 100644 --- a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/nested/tst.js +++ b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst1/nested/tst.js @@ -1 +1 @@ -import f from '~/a'; // $ MISSING: importTarget=BabelRootImport/tst1/a.js +import f from '~/a'; // $ importTarget=BabelRootImport/tst1/a.js diff --git a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/index.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/index.js index bb9ac8e5631..2c75396d24e 100644 --- a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/index.js +++ b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst2/index.js @@ -1,2 +1,2 @@ -import g from '~/b.js'; // $ MISSING: importTarget=BabelRootImport/tst2/src/js/b.js -import f from '#/a'; // $ MISSING: importTarget=BabelRootImport/tst1/a.js +import g from '~/b.js'; // $ importTarget=BabelRootImport/tst2/src/js/b.js +import f from '#/a'; // $ importTarget=BabelRootImport/tst1/a.js diff --git a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/index.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/index.js index f7297a51022..a4256149187 100644 --- a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/index.js +++ b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst3/index.js @@ -1 +1 @@ -import greeting from '~/b.js'; // $ MISSING: importTarget=BabelRootImport/tst3/src/b.js +import greeting from '~/b.js'; // $ importTarget=BabelRootImport/tst3/src/b.js diff --git a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/index.js b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/index.js index fc3e863f6d1..7208e926bd9 100644 --- a/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/index.js +++ b/javascript/ql/test/library-tests/PathResolution/BabelRootImport/tst4/index.js @@ -1,2 +1,2 @@ -import g from '~/b.js'; // $ MISSING: importTarget=BabelRootImport/tst4/src/js/b.js -import f from '#/a'; // $ MISSING: importTarget=BabelRootImport/tst1/a.js +import g from '~/b.js'; // $ importTarget=BabelRootImport/tst4/src/js/b.js +import f from '#/a'; // $ importTarget=BabelRootImport/tst1/a.js diff --git a/javascript/ql/test/library-tests/PathResolution/test.expected b/javascript/ql/test/library-tests/PathResolution/test.expected index 492aa6efd44..fb546892af1 100644 --- a/javascript/ql/test/library-tests/PathResolution/test.expected +++ b/javascript/ql/test/library-tests/PathResolution/test.expected @@ -1,3 +1,10 @@ +| BabelRootImport/tst1/index.js:1:1:1:20 | import f from '~/a'; | BabelRootImport/tst1/a.js | +| BabelRootImport/tst1/nested/tst.js:1:1:1:20 | import f from '~/a'; | BabelRootImport/tst1/a.js | +| BabelRootImport/tst2/index.js:1:1:1:23 | import ... /b.js'; | BabelRootImport/tst2/src/js/b.js | +| BabelRootImport/tst2/index.js:2:1:2:20 | import f from '#/a'; | BabelRootImport/tst1/a.js | +| BabelRootImport/tst3/index.js:1:1:1:30 | import ... /b.js'; | BabelRootImport/tst3/src/b.js | +| BabelRootImport/tst4/index.js:1:1:1:23 | import ... /b.js'; | BabelRootImport/tst4/src/js/b.js | +| BabelRootImport/tst4/index.js:2:1:2:20 | import f from '#/a'; | BabelRootImport/tst1/a.js | | BaseUrl/src/main.ts:2:1:2:26 | import ... /file"; | BaseUrl/base/lib/file.ts | | BaseUrl/src/main.ts:3:1:3:29 | import ... le.ts"; | BaseUrl/base/lib/file.ts | | BaseUrl/src/main.ts:4:1:4:29 | import ... le.js"; | BaseUrl/base/lib/file.ts | From a195d074c934d466614b7e0a0551c09cdb0078cf Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 28 Apr 2025 12:54:35 +0200 Subject: [PATCH 122/656] JS: Resolve Angular2 templateUrl with ResolveExpr instead of PathExpr --- .../semmle/javascript/frameworks/Angular2.qll | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Angular2.qll b/javascript/ql/lib/semmle/javascript/frameworks/Angular2.qll index 3441b5d9c00..9fd24c81a4a 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Angular2.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Angular2.qll @@ -9,6 +9,7 @@ private import semmle.javascript.security.dataflow.ClientSideUrlRedirectCustomiz private import semmle.javascript.DynamicPropertyAccess private import semmle.javascript.dataflow.internal.PreCallGraphStep private import semmle.javascript.ViewComponentInput +private import semmle.javascript.internal.paths.PathExprResolver /** * Provides classes for working with Angular (also known as Angular 2.x) applications. @@ -240,18 +241,15 @@ module Angular2 { class TemplateTopLevel = Templating::TemplateTopLevel; - /** The RHS of a `templateUrl` property, seen as a path expression. */ - private class TemplateUrlPath extends PathExpr { - TemplateUrlPath() { - exists(Property prop | - prop.getName() = "templateUrl" and - this = prop.getInit() - ) - } - - override string getValue() { result = this.(Expr).getStringValue() } + private predicate shouldResolveExpr(Expr e) { + exists(Property prop | + prop.getName() = "templateUrl" and + e = prop.getInit() + ) } + private module Resolver = ResolveExpr; + /** * Holds if the value of `attrib` is interpreted as an Angular expression. */ @@ -338,7 +336,7 @@ module Angular2 { */ pragma[noinline] File getTemplateFile() { - result = decorator.getOptionArgument(0, "templateUrl").asExpr().(PathExpr).resolve() + result = Resolver::resolveExpr(decorator.getOptionArgument(0, "templateUrl").asExpr()) } /** Gets an element in the HTML template of this component. */ From c293f03b9e09c7cb303c8c3ddb04a080a05922d3 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 28 Apr 2025 13:41:01 +0200 Subject: [PATCH 123/656] JS: Remove a dependency on getImportedPath() To avoid negative recursion in some upcoming changes, we want to make sure the modeling of createRequire does not depend on getImportedPath(). --- javascript/ql/lib/semmle/javascript/ES2015Modules.qll | 5 +++++ javascript/ql/lib/semmle/javascript/NodeJS.qll | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll index 378094e7c98..488c6909984 100644 --- a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll +++ b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll @@ -94,6 +94,11 @@ class ImportDeclaration extends Stmt, Import, @import_declaration { override PathExpr getImportedPath() { result = this.getChildExpr(-1) } + /** + * INTERNAL USE ONLY. DO NOT USE. + */ + string getRawImportPath() { result = this.getChildExpr(-1).getStringValue() } + /** * Gets the object literal passed as part of the `with` (or `assert`) clause in this import declaration. * diff --git a/javascript/ql/lib/semmle/javascript/NodeJS.qll b/javascript/ql/lib/semmle/javascript/NodeJS.qll index cd00e06e722..1be6ad9902f 100644 --- a/javascript/ql/lib/semmle/javascript/NodeJS.qll +++ b/javascript/ql/lib/semmle/javascript/NodeJS.qll @@ -242,7 +242,7 @@ private class RequireVariable extends Variable { private predicate moduleInFile(Module m, File f) { m.getFile() = f } private predicate isModuleModule(EarlyStageNode nd) { - exists(ImportDeclaration imp | imp.getImportedPath().getValue() = "module" | + exists(ImportDeclaration imp | imp.getRawImportPath() = "module" | nd = TDestructuredModuleImportNode(imp) or nd = TValueNode(imp.getASpecifier().(ImportNamespaceSpecifier)) @@ -268,7 +268,7 @@ private predicate isCreateRequire(EarlyStageNode nd) { ) or exists(ImportDeclaration decl, NamedImportSpecifier spec | - decl.getImportedPath().getValue() = "module" and + decl.getRawImportPath() = "module" and spec = decl.getASpecifier() and spec.getImportedName() = "createRequire" and nd = TValueNode(spec) From fe055ad6039f371fe5a2c6e54b096a2bab3085bd Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 28 Apr 2025 13:42:24 +0200 Subject: [PATCH 124/656] JS: Use PackageJsonEx instead of resolveMainModule --- .../ql/lib/semmle/javascript/PackageExports.qll | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/PackageExports.qll b/javascript/ql/lib/semmle/javascript/PackageExports.qll index ace840613e1..b4032980688 100644 --- a/javascript/ql/lib/semmle/javascript/PackageExports.qll +++ b/javascript/ql/lib/semmle/javascript/PackageExports.qll @@ -6,6 +6,7 @@ import javascript private import semmle.javascript.internal.CachedStages +private import semmle.javascript.internal.paths.PackageJsonEx /** * Gets a parameter that is a library input to a top-level package. @@ -126,19 +127,12 @@ private DataFlow::Node getAValueExportedByPackage() { // .... // })); // ``` - // Such files are not recognized as modules, so we manually use `NodeModule::resolveMainModule` to resolve the file against a `package.json` file. + // Such files are not recognized as modules, so we manually use `PackageJsonEx` to resolve the file against a `package.json` file. exists(ImmediatelyInvokedFunctionExpr func, DataFlow::ParameterNode factory, int i | factory.getName() = "factory" and func.getParameter(i) = factory.getParameter() and DataFlow::globalVarRef("define").getACall().getAnArgument() = factory.getALocalUse() and - func.getFile() = - min(int j, File f | - f = - NodeModule::resolveMainModule(any(PackageJson pack | exists(pack.getPackageName())), j, - ".") - | - f order by j - ) + func.getFile() = any(PackageJsonEx pack).getMainFileOrBestGuess() | result = func.getInvocation().getArgument(i).flow().getAFunctionValue().getAReturn() or From ed2a832a555f1001b15965de4e8b55b674a2eb6c Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 29 Apr 2025 13:22:54 +0200 Subject: [PATCH 125/656] JS: Deprecate PathExpr and related classes --- javascript/ql/examples/snippets/importfrom.ql | 2 +- javascript/ql/lib/definitions.qll | 2 +- javascript/ql/lib/semmle/javascript/AMD.qll | 28 ++++++++++------ .../lib/semmle/javascript/ES2015Modules.qll | 8 ++--- javascript/ql/lib/semmle/javascript/Expr.qll | 4 +-- javascript/ql/lib/semmle/javascript/HTML.qll | 10 ++++-- .../ql/lib/semmle/javascript/Modules.qll | 16 +++++++--- .../ql/lib/semmle/javascript/NodeJS.qll | 32 ++++++------------- .../javascript/NodeModuleResolutionImpl.qll | 20 ++++++------ javascript/ql/lib/semmle/javascript/Paths.qll | 30 ++++++++--------- .../ql/lib/semmle/javascript/TypeScript.qll | 8 ++--- .../lib/semmle/javascript/dataflow/Nodes.qll | 2 +- .../internal/InterModuleTypeInference.qll | 4 +-- .../javascript/dependencies/Dependencies.qll | 7 +++- .../frameworks/AngularJS/AngularJSCore.qll | 2 +- .../semmle/javascript/frameworks/Babel.qll | 4 +-- .../javascript/frameworks/LazyCache.qll | 4 +-- .../semmle/javascript/frameworks/React.qll | 2 +- .../lib/semmle/javascript/frameworks/Vue.qll | 4 +-- .../data/internal/ApiGraphModelsSpecific.qll | 2 +- .../internal/paths/PathExprResolver.qll | 2 +- ...APIUsedWithUntrustedDataCustomizations.qll | 2 +- .../src/Declarations/UnstableCyclicImport.ql | 2 +- .../ql/src/NodeJS/UnresolvableImport.ql | 2 +- javascript/ql/src/NodeJS/UnusedDependency.ql | 17 +++++++--- javascript/ql/test/library-tests/AMD/tests.ql | 4 +-- .../ql/test/library-tests/Modules/tests.ql | 4 +-- .../ql/test/library-tests/NodeJS/tests.ql | 2 +- .../TypeScript/ImportEquals/tests.ql | 2 +- .../RegressionTests/ImportDtsFile/test.ql | 2 +- 30 files changed, 126 insertions(+), 104 deletions(-) diff --git a/javascript/ql/examples/snippets/importfrom.ql b/javascript/ql/examples/snippets/importfrom.ql index d466136ca2f..a2efb17e169 100644 --- a/javascript/ql/examples/snippets/importfrom.ql +++ b/javascript/ql/examples/snippets/importfrom.ql @@ -11,5 +11,5 @@ import javascript from ImportDeclaration id -where id.getImportedPath().getValue() = "react" +where id.getImportedPathString() = "react" select id diff --git a/javascript/ql/lib/definitions.qll b/javascript/ql/lib/definitions.qll index 7b4806b1478..2cc9313d313 100644 --- a/javascript/ql/lib/definitions.qll +++ b/javascript/ql/lib/definitions.qll @@ -70,7 +70,7 @@ private predicate importLookup(AstNode path, Module target, string kind) { kind = "I" and ( exists(Import i | - path = i.getImportedPath() and + path = i.getImportedPathExpr() and target = i.getImportedModule() ) or diff --git a/javascript/ql/lib/semmle/javascript/AMD.qll b/javascript/ql/lib/semmle/javascript/AMD.qll index 3239dba9026..4828aff27cc 100644 --- a/javascript/ql/lib/semmle/javascript/AMD.qll +++ b/javascript/ql/lib/semmle/javascript/AMD.qll @@ -61,8 +61,14 @@ class AmdModuleDefinition extends CallExpr instanceof AmdModuleDefinition::Range result = this.getArgument(1) } + /** DEPRECATED. Use `getDependencyExpr` instead. */ + deprecated PathExpr getDependency(int i) { result = this.getDependencyExpr(i) } + + /** DEPRECATED. Use `getADependencyExpr` instead. */ + deprecated PathExpr getADependency() { result = this.getADependencyExpr() } + /** Gets the `i`th dependency of this module definition. */ - PathExpr getDependency(int i) { + Expr getDependencyExpr(int i) { exists(Expr expr | expr = this.getDependencies().getElement(i) and not isPseudoDependency(expr.getStringValue()) and @@ -71,8 +77,8 @@ class AmdModuleDefinition extends CallExpr instanceof AmdModuleDefinition::Range } /** Gets a dependency of this module definition. */ - PathExpr getADependency() { - result = this.getDependency(_) or + Expr getADependencyExpr() { + result = this.getDependencyExpr(_) or result = this.getARequireCall().getAnArgument() } @@ -233,7 +239,7 @@ private class AmdDependencyPath extends PathExprCandidate { } /** A constant path element appearing in an AMD dependency expression. */ -private class ConstantAmdDependencyPathElement extends PathExpr, ConstantString { +deprecated private class ConstantAmdDependencyPathElement extends PathExpr, ConstantString { ConstantAmdDependencyPathElement() { this = any(AmdDependencyPath amd).getAPart() } override string getValue() { result = this.getStringValue() } @@ -261,11 +267,13 @@ private predicate amdModuleTopLevel(AmdModuleDefinition def, TopLevel tl) { * An AMD dependency, viewed as an import. */ private class AmdDependencyImport extends Import { - AmdDependencyImport() { this = any(AmdModuleDefinition def).getADependency() } + AmdDependencyImport() { this = any(AmdModuleDefinition def).getADependencyExpr() } - override Module getEnclosingModule() { this = result.(AmdModule).getDefine().getADependency() } + override Module getEnclosingModule() { + this = result.(AmdModule).getDefine().getADependencyExpr() + } - override PathExpr getImportedPath() { result = this } + override Expr getImportedPathExpr() { result = this } /** * Gets a file that looks like it might be the target of this import. @@ -274,7 +282,7 @@ private class AmdDependencyImport extends Import { * adding well-known JavaScript file extensions like `.js`. */ private File guessTarget() { - exists(PathString imported, string abspath, string dirname, string basename | + exists(FilePath imported, string abspath, string dirname, string basename | this.targetCandidate(result, abspath, imported, dirname, basename) | abspath.regexpMatch(".*/\\Q" + imported + "\\E") @@ -296,9 +304,9 @@ private class AmdDependencyImport extends Import { * `dirname` and `basename` to the dirname and basename (respectively) of `imported`. */ private predicate targetCandidate( - File f, string abspath, PathString imported, string dirname, string basename + File f, string abspath, FilePath imported, string dirname, string basename ) { - imported = this.getImportedPath().getValue() and + imported = this.getImportedPathString() and f.getStem() = imported.getStem() and f.getAbsolutePath() = abspath and dirname = imported.getDirName() and diff --git a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll index 488c6909984..379403eb0ee 100644 --- a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll +++ b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll @@ -92,13 +92,13 @@ private predicate hasDefaultExport(ES2015Module mod) { class ImportDeclaration extends Stmt, Import, @import_declaration { override ES2015Module getEnclosingModule() { result = this.getTopLevel() } - override PathExpr getImportedPath() { result = this.getChildExpr(-1) } - /** * INTERNAL USE ONLY. DO NOT USE. */ string getRawImportPath() { result = this.getChildExpr(-1).getStringValue() } + override Expr getImportedPathExpr() { result = this.getChildExpr(-1) } + /** * Gets the object literal passed as part of the `with` (or `assert`) clause in this import declaration. * @@ -155,7 +155,7 @@ class ImportDeclaration extends Stmt, Import, @import_declaration { } /** A literal path expression appearing in an `import` declaration. */ -private class LiteralImportPath extends PathExpr, ConstantString { +deprecated private class LiteralImportPath extends PathExpr, ConstantString { LiteralImportPath() { exists(ImportDeclaration req | this = req.getChildExpr(-1)) } override string getValue() { result = this.getStringValue() } @@ -736,7 +736,7 @@ abstract class ReExportDeclaration extends ExportDeclaration { } /** A literal path expression appearing in a re-export declaration. */ -private class LiteralReExportPath extends PathExpr, ConstantString { +deprecated private class LiteralReExportPath extends PathExpr, ConstantString { LiteralReExportPath() { exists(ReExportDeclaration bred | this = bred.getImportedPath()) } override string getValue() { result = this.getStringValue() } diff --git a/javascript/ql/lib/semmle/javascript/Expr.qll b/javascript/ql/lib/semmle/javascript/Expr.qll index e8ec55f0174..8695c893f81 100644 --- a/javascript/ql/lib/semmle/javascript/Expr.qll +++ b/javascript/ql/lib/semmle/javascript/Expr.qll @@ -2821,7 +2821,7 @@ class DynamicImportExpr extends @dynamic_import, Expr, Import { result = this.getSource().getFirstControlFlowNode() } - override PathExpr getImportedPath() { result = this.getSource() } + override Expr getImportedPathExpr() { result = this.getSource() } /** * Gets the second "argument" to the import expression, that is, the `Y` in `import(X, Y)`. @@ -2852,7 +2852,7 @@ class DynamicImportExpr extends @dynamic_import, Expr, Import { } /** A literal path expression appearing in a dynamic import. */ -private class LiteralDynamicImportPath extends PathExpr, ConstantString { +deprecated private class LiteralDynamicImportPath extends PathExpr, ConstantString { LiteralDynamicImportPath() { exists(DynamicImportExpr di | this.getParentExpr*() = di.getSource()) } diff --git a/javascript/ql/lib/semmle/javascript/HTML.qll b/javascript/ql/lib/semmle/javascript/HTML.qll index 01ce54cef52..43b66db459f 100644 --- a/javascript/ql/lib/semmle/javascript/HTML.qll +++ b/javascript/ql/lib/semmle/javascript/HTML.qll @@ -214,7 +214,7 @@ module HTML { result = path.regexpCapture("file://(/.*)", 1) or not path.regexpMatch("(\\w+:)?//.*") and - result = this.getSourcePath().(ScriptSrcPath).resolve(this.getSearchRoot()).toString() + result = ResolveScriptSrc::resolve(this.getSearchRoot(), this.getSourcePath()).toString() ) } @@ -274,10 +274,16 @@ module HTML { ) } + private module ResolverConfig implements Folder::ResolveSig { + predicate shouldResolve(Container base, string path) { scriptSrc(path, base) } + } + + private module ResolveScriptSrc = Folder::Resolve; + /** * A path string arising from the `src` attribute of a `script` tag. */ - private class ScriptSrcPath extends PathString { + deprecated private class ScriptSrcPath extends PathString { ScriptSrcPath() { scriptSrc(this, _) } override Folder getARootFolder() { scriptSrc(this, result) } diff --git a/javascript/ql/lib/semmle/javascript/Modules.qll b/javascript/ql/lib/semmle/javascript/Modules.qll index 6dc27f980b8..1949abe4cdc 100644 --- a/javascript/ql/lib/semmle/javascript/Modules.qll +++ b/javascript/ql/lib/semmle/javascript/Modules.qll @@ -69,7 +69,7 @@ abstract class Module extends TopLevel { * This predicate is not part of the public API, it is only exposed to allow * overriding by subclasses. */ - predicate searchRoot(PathExpr path, Folder searchRoot, int priority) { + deprecated predicate searchRoot(PathExpr path, Folder searchRoot, int priority) { path.getEnclosingModule() = this and priority = 0 and exists(string v | v = path.getValue() | @@ -90,7 +90,7 @@ abstract class Module extends TopLevel { * resolves to a folder containing a main module (such as `index.js`), then * that file is the result. */ - File resolve(PathExpr path) { + deprecated File resolve(PathExpr path) { path.getEnclosingModule() = this and ( // handle the case where the import path is complete @@ -123,8 +123,14 @@ abstract class Import extends AstNode { /** Gets the module in which this import appears. */ abstract Module getEnclosingModule(); + /** DEPRECATED. Use `getImportedPathExpr` instead. */ + deprecated PathExpr getImportedPath() { result = this.getImportedPathExpr() } + /** Gets the (unresolved) path that this import refers to. */ - abstract PathExpr getImportedPath(); + abstract Expr getImportedPathExpr(); + + /** Gets the imported path as a string. */ + final string getImportedPathString() { result = this.getImportedPathExpr().getStringValue() } /** * Gets an externs module the path of this import resolves to. @@ -133,7 +139,7 @@ abstract class Import extends AstNode { * path is assumed to be a possible target of the import. */ Module resolveExternsImport() { - result.isExterns() and result.getName() = this.getImportedPath().getValue() + result.isExterns() and result.getName() = this.getImportedPathString() } /** @@ -144,7 +150,7 @@ abstract class Import extends AstNode { /** * Gets the module the path of this import resolves to. */ - File getTargetFile() { result = ImportPathResolver::resolveExpr(this.getImportedPath()) } + File getTargetFile() { result = ImportPathResolver::resolveExpr(this.getImportedPathExpr()) } /** * DEPRECATED. Use `getImportedModule()` instead. diff --git a/javascript/ql/lib/semmle/javascript/NodeJS.qll b/javascript/ql/lib/semmle/javascript/NodeJS.qll index 1be6ad9902f..175991ffa5e 100644 --- a/javascript/ql/lib/semmle/javascript/NodeJS.qll +++ b/javascript/ql/lib/semmle/javascript/NodeJS.qll @@ -146,7 +146,7 @@ class NodeModule extends Module { ) } - override predicate searchRoot(PathExpr path, Folder searchRoot, int priority) { + deprecated override predicate searchRoot(PathExpr path, Folder searchRoot, int priority) { path.getEnclosingModule() = this and exists(string pathval | pathval = path.getValue() | // paths starting with `./` or `../` are resolved relative to the importing @@ -236,11 +236,6 @@ private class RequireVariable extends Variable { } } -/** - * Holds if module `m` is in file `f`. - */ -private predicate moduleInFile(Module m, File f) { m.getFile() = f } - private predicate isModuleModule(EarlyStageNode nd) { exists(ImportDeclaration imp | imp.getRawImportPath() = "module" | nd = TDestructuredModuleImportNode(imp) @@ -328,24 +323,17 @@ private predicate isRequire(EarlyStageNode nd) { class Require extends CallExpr, Import { Require() { isRequire(TValueNode(this.getCallee())) } - override PathExpr getImportedPath() { result = this.getArgument(0) } + override Expr getImportedPathExpr() { result = this.getArgument(0) } override Module getEnclosingModule() { this = result.getAnImport() } - override Module resolveImportedPath() { - moduleInFile(result, this.load(min(int prio | moduleInFile(_, this.load(prio))))) - or - not moduleInFile(_, this.load(_)) and - result = Import.super.resolveImportedPath() - } - /** * Gets the file that is imported by this `require`. * * The result can be a JavaScript file, a JSON file or a `.node` file. * Externs files are not treated differently from other files by this predicate. */ - File getImportedFile() { result = this.load(min(int prio | exists(this.load(prio)))) } + deprecated File getImportedFile() { result = this.load(min(int prio | exists(this.load(prio)))) } /** * Gets the file that this `require` refers to (which may not be a JavaScript file), @@ -402,8 +390,8 @@ class Require extends CallExpr, Import { * predicate `tryExtensions` that handles the repeated distinction between * `.js`, `.json` and `.node`. */ - private File load(int priority) { - exists(int r | this.getEnclosingModule().searchRoot(this.getImportedPath(), _, r) | + deprecated private File load(int priority) { + exists(int r | this.getEnclosingModule().searchRoot(this.getImportedPathExpr(), _, r) | result = loadAsFile(this, r, priority - prioritiesPerCandidate() * r) or result = loadAsDirectory(this, r, @@ -415,7 +403,7 @@ class Require extends CallExpr, Import { } /** An argument to `require` or `require.resolve`, considered as a path expression. */ -private class RequirePath extends PathExprCandidate { +deprecated private class RequirePath extends PathExprCandidate { RequirePath() { this = any(Require req).getArgument(0) or @@ -428,14 +416,14 @@ private class RequirePath extends PathExprCandidate { } /** A constant path element appearing in a call to `require` or `require.resolve`. */ -private class ConstantRequirePathElement extends PathExpr, ConstantString { +deprecated private class ConstantRequirePathElement extends PathExpr, ConstantString { ConstantRequirePathElement() { this = any(RequirePath rp).getAPart() } override string getValue() { result = this.getStringValue() } } /** A `__dirname` path expression. */ -private class DirNamePath extends PathExpr, VarAccess { +deprecated private class DirNamePath extends PathExpr, VarAccess { DirNamePath() { this.getName() = "__dirname" and this.getVariable().getScope() instanceof ModuleScope @@ -445,7 +433,7 @@ private class DirNamePath extends PathExpr, VarAccess { } /** A `__filename` path expression. */ -private class FileNamePath extends PathExpr, VarAccess { +deprecated private class FileNamePath extends PathExpr, VarAccess { FileNamePath() { this.getName() = "__filename" and this.getVariable().getScope() instanceof ModuleScope @@ -458,7 +446,7 @@ private class FileNamePath extends PathExpr, VarAccess { * A path expression of the form `path.join(p, "...")` where * `p` is also a path expression. */ -private class JoinedPath extends PathExpr, @call_expr { +deprecated private class JoinedPath extends PathExpr, @call_expr { JoinedPath() { exists(MethodCallExpr call | call = this | call.getReceiver().(VarAccess).getName() = "path" and diff --git a/javascript/ql/lib/semmle/javascript/NodeModuleResolutionImpl.qll b/javascript/ql/lib/semmle/javascript/NodeModuleResolutionImpl.qll index 03b5bf93fb0..467e14aa74f 100644 --- a/javascript/ql/lib/semmle/javascript/NodeModuleResolutionImpl.qll +++ b/javascript/ql/lib/semmle/javascript/NodeModuleResolutionImpl.qll @@ -45,7 +45,7 @@ int numberOfExtensions() { result = count(getFileExtensionPriority(_)) } * Gets the resolution target with the given `priority` of `req` * when resolved from the root with priority `rootPriority`. */ -File loadAsFile(Require req, int rootPriority, int priority) { +deprecated File loadAsFile(Require req, int rootPriority, int priority) { exists(PathExpr path | path = req.getImportedPath() | result = path.resolve(rootPriority) and priority = 0 or @@ -60,7 +60,7 @@ File loadAsFile(Require req, int rootPriority, int priority) { * with the given `priority` of `req` when resolved from the root with * priority `rootPriority`. */ -File loadAsDirectory(Require req, int rootPriority, int priority) { +deprecated File loadAsDirectory(Require req, int rootPriority, int priority) { exists(Folder dir | dir = req.getImportedPath().resolve(rootPriority) | result = resolveMainModule(dir.(NpmPackage).getPackageJson(), priority, ".") or result = tryExtensions(dir, "index", priority - (numberOfExtensions() + 1)) @@ -99,7 +99,7 @@ private string getStem(string name) { * Gets a file that a main module from `pkg` exported as `mainPath` with the given `priority`. * `mainPath` is "." if it's the main module of the package. */ -private File resolveMainPath(PackageJson pkg, string mainPath, int priority) { +deprecated private File resolveMainPath(PackageJson pkg, string mainPath, int priority) { exists(PathExpr main | main = MainModulePath::of(pkg, mainPath) | result = main.resolve() and priority = 0 or @@ -132,7 +132,7 @@ private File resolveMainPath(PackageJson pkg, string mainPath, int priority) { /** * Gets the main module described by `pkg` with the given `priority`. */ -File resolveMainModule(PackageJson pkg, int priority, string exportPath) { +deprecated File resolveMainModule(PackageJson pkg, int priority, string exportPath) { result = resolveMainPath(pkg, exportPath, priority) or exportPath = "." and @@ -178,7 +178,7 @@ private string getASrcFolderName() { result = ["ts", "js", "src", "lib"] } * A JSON string in a `package.json` file specifying the path of one of the exported * modules of the package. */ -class MainModulePath extends PathExpr, @json_string { +deprecated class MainModulePath extends PathExpr, @json_string { PackageJson pkg; MainModulePath() { @@ -228,7 +228,7 @@ private string getExportRelativePath(JsonValue part) { result.matches(".%") } -module MainModulePath { +deprecated module MainModulePath { /** Gets the path to the main entry point of `pkg`. */ MainModulePath of(PackageJson pkg) { result = of(pkg, ".") } @@ -244,7 +244,7 @@ module MainModulePath { * These files are often imported directly from a client when a "main" module is not specified. * For performance reasons this only exists if there is no "main" field in the `package.json` file. */ -private class FilesPath extends PathExpr, @json_string { +deprecated private class FilesPath extends PathExpr, @json_string { PackageJson pkg; FilesPath() { @@ -263,7 +263,7 @@ private class FilesPath extends PathExpr, @json_string { } } -private module FilesPath { +deprecated private module FilesPath { FilesPath of(PackageJson pkg) { result.getPackageJson() = pkg } } @@ -271,7 +271,7 @@ private module FilesPath { * A JSON string in a `package.json` file specifying the path of the * TypeScript typings entry point. */ -class TypingsModulePathString extends PathString { +deprecated class TypingsModulePathString extends PathString { PackageJson pkg; TypingsModulePathString() { @@ -288,7 +288,7 @@ class TypingsModulePathString extends PathString { } /** Companion module to the `TypingsModulePathString` class. */ -module TypingsModulePathString { +deprecated module TypingsModulePathString { /** Get the typings path for the given `package.json` file. */ TypingsModulePathString of(PackageJson pkg) { result.getPackageJson() = pkg } } diff --git a/javascript/ql/lib/semmle/javascript/Paths.qll b/javascript/ql/lib/semmle/javascript/Paths.qll index 981e43f8966..38c24a1b8e9 100644 --- a/javascript/ql/lib/semmle/javascript/Paths.qll +++ b/javascript/ql/lib/semmle/javascript/Paths.qll @@ -9,13 +9,13 @@ private import semmle.javascript.dataflow.internal.DataFlowNode /** * Internal representation of paths as lists of components. */ -private newtype TPath = +deprecated private newtype TPath = /** A root path. */ TRootPath(string root) { root = any(Folder f | not exists(f.getParentContainer())).getAbsolutePath() } or /** A path of the form `/`. */ - TConsPath(Path parent, string component) { + deprecated TConsPath(Path parent, string component) { // make sure we can represent paths of files in snapshot exists(Folder f | f = parent.getContainer() | exists(f.getChildContainer(component))) or @@ -32,7 +32,7 @@ private newtype TPath = * Gets a textual representation of path `p` using slashes as delimiters; * the empty path is represented as the empty string `""`. */ -private string pp(TPath p) { +deprecated private string pp(TPath p) { p = TRootPath(result + "/") or exists(TPath parent, string component | p = TConsPath(parent, component) | @@ -45,7 +45,7 @@ private string pp(TPath p) { * which may (but does not have to) correspond to a file or folder included * in the snapshot. */ -class Path extends TPath { +deprecated class Path extends TPath { /** * Gets the file or folder referred to by this path, if it exists. */ @@ -60,14 +60,14 @@ class Path extends TPath { /** * The empty path, which refers to the file system root. */ -private class RootPath extends Path, TRootPath { +deprecated private class RootPath extends Path, TRootPath { override string toString() { this = TRootPath(result) } } /** * A non-empty path of the form `/`. */ -private class ConsPath extends Path, TConsPath { +deprecated private class ConsPath extends Path, TConsPath { /** Gets the parent path of this path. */ Path getParent() { this = TConsPath(result, _) } @@ -170,7 +170,7 @@ class FilePath extends string { * usually resolved relative to the module's folder, with a default * lookup path as the fallback. */ -abstract class PathString extends FilePath { +abstract deprecated class PathString extends FilePath { bindingset[this] PathString() { any() } @@ -196,7 +196,7 @@ abstract class PathString extends FilePath { * components of this path refers to when resolved relative to the * given `root` folder. */ -private Path resolveUpTo(PathString p, int n, Folder root, boolean inTS) { +deprecated private Path resolveUpTo(PathString p, int n, Folder root, boolean inTS) { n = 0 and result.getContainer() = root and root = p.getARootFolder() and inTS = false or exists(Path base, string next | next = getComponent(p, n - 1, base, root, inTS) | @@ -225,7 +225,7 @@ private Path resolveUpTo(PathString p, int n, Folder root, boolean inTS) { * Supports that the root directory might be compiled output from TypeScript. * `inTS` is true if the result is TypeScript that is compiled into the path specified by `str`. */ -private string getComponent(PathString str, int n, Path base, Folder root, boolean inTS) { +deprecated private string getComponent(PathString str, int n, Path base, Folder root, boolean inTS) { exists(boolean prevTS | base = resolveUpTo(str, n, root, prevTS) and ( @@ -248,7 +248,7 @@ private string getComponent(PathString str, int n, Path base, Folder root, boole /** * Predicates for resolving imports to compiled TypeScript. */ -private module TypeScriptOutDir { +deprecated private module TypeScriptOutDir { /** * Gets a folder of TypeScript files that is compiled to JavaScript files in `outdir` relative to a `parent`. */ @@ -340,7 +340,7 @@ private module TypeScriptOutDir { * as their highest-priority root, with default library paths as additional roots * of lower priority. */ -abstract class PathExpr extends Locatable { +abstract deprecated class PathExpr extends Locatable { /** Gets the (unresolved) path represented by this expression. */ abstract string getValue(); @@ -413,7 +413,7 @@ abstract class PathExpr extends Locatable { } /** A path string derived from a path expression. */ -private class PathExprString extends PathString { +deprecated private class PathExprString extends PathString { PathExprString() { this = any(PathExpr pe).getValue() } override Folder getARootFolder() { @@ -422,13 +422,13 @@ private class PathExprString extends PathString { } pragma[nomagic] -private EarlyStageNode getAPathExprAlias(PathExpr expr) { +deprecated private EarlyStageNode getAPathExprAlias(PathExpr expr) { DataFlow::Impl::earlyStageImmediateFlowStep(TValueNode(expr), result) or DataFlow::Impl::earlyStageImmediateFlowStep(getAPathExprAlias(expr), result) } -private class PathExprFromAlias extends PathExpr { +deprecated private class PathExprFromAlias extends PathExpr { private PathExpr other; PathExprFromAlias() { TValueNode(this) = getAPathExprAlias(other) } @@ -444,7 +444,7 @@ private class PathExprFromAlias extends PathExpr { * A path expression of the form `p + q`, where both `p` and `q` * are path expressions. */ -private class ConcatPath extends PathExpr { +deprecated private class ConcatPath extends PathExpr { ConcatPath() { exists(AddExpr add | this = add | add.getLeftOperand() instanceof PathExpr and diff --git a/javascript/ql/lib/semmle/javascript/TypeScript.qll b/javascript/ql/lib/semmle/javascript/TypeScript.qll index d8b6b63a366..4be331ed6a5 100644 --- a/javascript/ql/lib/semmle/javascript/TypeScript.qll +++ b/javascript/ql/lib/semmle/javascript/TypeScript.qll @@ -207,7 +207,7 @@ class ExternalModuleReference extends Expr, Import, @external_module_reference { /** Gets the expression specifying the module. */ Expr getExpression() { result = this.getChildExpr(0) } - override PathExpr getImportedPath() { result = this.getExpression() } + override Expr getImportedPathExpr() { result = this.getExpression() } override Module getEnclosingModule() { result = this.getTopLevel() } @@ -221,7 +221,7 @@ class ExternalModuleReference extends Expr, Import, @external_module_reference { } /** A literal path expression appearing in an external module reference. */ -private class LiteralExternalModulePath extends PathExpr, ConstantString { +deprecated private class LiteralExternalModulePath extends PathExpr, ConstantString { LiteralExternalModulePath() { exists(ExternalModuleReference emr | this.getParentExpr*() = emr.getExpression()) } @@ -743,7 +743,7 @@ class TypeAccess extends @typeaccess, TypeExpr, TypeRef { * For non-relative imports, it is the import path itself. */ private string getImportName(Import imprt) { - exists(string path | path = imprt.getImportedPath().getValue() | + exists(string path | path = imprt.getImportedPathString() | if path.regexpMatch("[./].*") then result = imprt.getImportedModule().getFile().getRelativePath() else result = path @@ -1731,7 +1731,7 @@ class TSGlobalDeclImport extends DataFlow::ModuleImportNode::Range { pkg = tt.getExpressionName() and // then, check pkg is imported as "import * as pkg from path" i.getLocal().getVariable() = pkg.getVariable() and - path = i.getImportedPath().getValue() and + path = i.getImportedPathString() and // finally, "this" needs to be a reference to gv this = DataFlow::exprNode(gv.getAnAccess()) ) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 2e231383522..7f9b375f534 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -738,7 +738,7 @@ module ModuleImportNode { DefaultRange() { exists(Import i | this = i.getImportedModuleNode() and - i.getImportedPath().getValue() = path + i.getImportedPathString() = path ) or // AMD require diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/InterModuleTypeInference.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/InterModuleTypeInference.qll index bb18ff07846..3134d76d8f1 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/InterModuleTypeInference.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/InterModuleTypeInference.qll @@ -25,7 +25,7 @@ private class AnalyzedImportSpecifier extends AnalyzedVarDef, @import_specifier override predicate isIncomplete(DataFlow::Incompleteness cause) { // mark as incomplete if the import could rely on the lookup path - mayDependOnLookupPath(id.getImportedPath().getValue()) and + mayDependOnLookupPath(id.getImportedPathString()) and cause = "import" or // mark as incomplete if we cannot fully analyze this import @@ -260,7 +260,7 @@ private class AnalyzedAmdImport extends AnalyzedPropertyRead, DataFlow::Node { Module required; AnalyzedAmdImport() { - exists(AmdModule amd, PathExpr dep | + exists(AmdModule amd, Expr dep | exists(Parameter p | amd.getDefine().dependencyParameter(dep, p) and this = DataFlow::parameterNode(p) diff --git a/javascript/ql/lib/semmle/javascript/dependencies/Dependencies.qll b/javascript/ql/lib/semmle/javascript/dependencies/Dependencies.qll index 948b8c9aff2..8ca2add4a27 100644 --- a/javascript/ql/lib/semmle/javascript/dependencies/Dependencies.qll +++ b/javascript/ql/lib/semmle/javascript/dependencies/Dependencies.qll @@ -151,6 +151,11 @@ class ExternalNpmDependency extends NpmDependency { } } +pragma[nomagic] +private string getPackagePrefix(Import i) { + result = i.getImportedPathString().(FilePath).getPackagePrefix() +} + /** * Holds if import `i` may refer to the declared dependency `dep` of package `pkg`, * where the result value is the nesting depth of the file containing `i` within `pkg`. @@ -159,7 +164,7 @@ private int importsDependency(Import i, NpmPackage pkg, NpmDependency dep) { exists(string name | dep = pkg.getPackageJson().getADependenciesObject(_).getPropValue(name) and not exists(i.getImportedModule()) and - i.getImportedPath().getComponent(0) = name and + name = getPackagePrefix(i) and i.getEnclosingModule() = pkg.getAModule() and result = distance(pkg, i.getFile()) ) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll index 1a6d11cd753..a85a0a7813c 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll @@ -32,7 +32,7 @@ pragma[nomagic] private predicate isAngularTopLevel(TopLevel tl) { exists(Import imprt | imprt.getTopLevel() = tl and - imprt.getImportedPath().getValue() = "angular" + imprt.getImportedPathString() = "angular" ) or exists(GlobalVarAccess global | diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Babel.qll b/javascript/ql/lib/semmle/javascript/frameworks/Babel.qll index 52315013d17..4b3f70b7772 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Babel.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Babel.qll @@ -139,7 +139,7 @@ module Babel { /** * An import path expression that may be transformed by `babel-plugin-root-import`. */ - private class BabelRootTransformedPathExpr extends PathExpr, Expr { + deprecated private class BabelRootTransformedPathExpr extends PathExpr, Expr { RootImportConfig plugin; string prefix; string mappedPrefix; @@ -167,7 +167,7 @@ module Babel { /** * An import path transformed by `babel-plugin-root-import`. */ - private class BabelRootTransformedPath extends PathString { + deprecated private class BabelRootTransformedPath extends PathString { BabelRootTransformedPathExpr pathExpr; BabelRootTransformedPath() { this = pathExpr.getValue() } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll b/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll index 15240ce5cc0..2c460fcc345 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll @@ -36,7 +36,7 @@ module LazyCache { override Module getEnclosingModule() { result = this.getTopLevel() } - override PathExpr getImportedPath() { result = this.getArgument(0) } + override Expr getImportedPathExpr() { result = this.getArgument(0) } private LazyCacheVariable getVariable() { result = cache } @@ -58,7 +58,7 @@ module LazyCache { } /** A constant path element appearing in a call to a lazy-cache object. */ - private class LazyCachePathExpr extends PathExpr, ConstantString { + deprecated private class LazyCachePathExpr extends PathExpr, ConstantString { LazyCachePathExpr() { this = any(LazyCacheImport rp).getArgument(0) } override string getValue() { result = this.getStringValue() } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/React.qll b/javascript/ql/lib/semmle/javascript/frameworks/React.qll index 5ac0e419e26..4d126b88829 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/React.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/React.qll @@ -733,7 +733,7 @@ private class ReactRouterSource extends ClientSideRemoteFlowSource { * Holds if `mod` transitively depends on `react-router-dom`. */ private predicate dependsOnReactRouter(Module mod) { - mod.getAnImport().getImportedPath().getValue() = "react-router-dom" + mod.getAnImport().getImportedPathString() = "react-router-dom" or dependsOnReactRouter(mod.getAnImportedModule()) } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll b/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll index faba601df52..2465ec66820 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll @@ -442,7 +442,7 @@ module Vue { override DataFlow::SourceNode getASource() { exists(Import imprt | - imprt.getImportedPath().resolve() instanceof VueFile and + imprt.getTargetFile() instanceof VueFile and result = imprt.getImportedModuleNode() ) } @@ -494,7 +494,7 @@ module Vue { // There is no explicit `new Vue()` call in .vue files, so instead get all the imports // of the .vue file. exists(Import imprt | - imprt.getImportedPath().resolve() = file and + imprt.getTargetFile() = file and result.asSource() = imprt.getImportedModuleNode() ) } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll index 1f51af3efda..ee579d2c9db 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll @@ -58,7 +58,7 @@ predicate parseTypeString(string rawType, string package, string qualifiedName) predicate isPackageUsed(string package) { package = "global" or - package = any(JS::Import imp).getImportedPath().getValue() + package = any(JS::Import imp).getImportedPathString() or any(JS::TypeName t).hasQualifiedName(package, _) or diff --git a/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll b/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll index 853939dfe5f..05b8a620717 100644 --- a/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll +++ b/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll @@ -240,7 +240,7 @@ module ResolveExpr { } private predicate isImportPathExpr(Expr e) { - e = any(Import imprt).getImportedPath() + e = any(Import imprt).getImportedPathExpr() or e = any(ReExportDeclaration decl).getImportedPath() } diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/ExternalAPIUsedWithUntrustedDataCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/ExternalAPIUsedWithUntrustedDataCustomizations.qll index 7a6575f8647..f59c7b78e36 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/ExternalAPIUsedWithUntrustedDataCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/ExternalAPIUsedWithUntrustedDataCustomizations.qll @@ -88,7 +88,7 @@ module ExternalApiUsedWithUntrustedData { not path instanceof SafeExternalApiPackage and // Exclude paths that can be resolved to a file in the project not exists(Import imprt | - imprt.getImportedPath().getValue() = path and exists(imprt.getImportedModule()) + imprt.getImportedPathString() = path and exists(imprt.getImportedModule()) ) ) or diff --git a/javascript/ql/src/Declarations/UnstableCyclicImport.ql b/javascript/ql/src/Declarations/UnstableCyclicImport.ql index 56f418c40a2..4ef4d8ca946 100644 --- a/javascript/ql/src/Declarations/UnstableCyclicImport.ql +++ b/javascript/ql/src/Declarations/UnstableCyclicImport.ql @@ -152,4 +152,4 @@ where cycleAlert(mod, import_, importedModule, access) select access, access.getName() + " is uninitialized if $@ is loaded first in the cyclic import:" + " " + repr(import_) + " => " + min(pathToModule(importedModule, mod, _)) + " => " + repr(import_) + - ".", import_.getImportedPath(), importedModule.getName() + ".", import_.getImportedPathExpr(), importedModule.getName() diff --git a/javascript/ql/src/NodeJS/UnresolvableImport.ql b/javascript/ql/src/NodeJS/UnresolvableImport.ql index 16feba14348..28c46229cf6 100644 --- a/javascript/ql/src/NodeJS/UnresolvableImport.ql +++ b/javascript/ql/src/NodeJS/UnresolvableImport.ql @@ -24,7 +24,7 @@ PackageJson getClosestPackageJson(Folder f) { from Require r, string path, string mod where - path = r.getImportedPath().getValue() and + path = r.getImportedPathString() and // the imported module is the initial segment of the path, up to // `/` or the end of the string, whichever comes first; we exclude // local paths starting with `.` or `/`, since they might refer to files diff --git a/javascript/ql/src/NodeJS/UnusedDependency.ql b/javascript/ql/src/NodeJS/UnusedDependency.ql index 45bbde37294..438f589cac9 100644 --- a/javascript/ql/src/NodeJS/UnusedDependency.ql +++ b/javascript/ql/src/NodeJS/UnusedDependency.ql @@ -23,7 +23,17 @@ predicate declaresDependency(NpmPackage pkg, string name, JsonValue dep) { /** * Gets a path expression in a module belonging to `pkg`. */ -PathExpr getAPathExpr(NpmPackage pkg) { result.getEnclosingModule() = pkg.getAModule() } +Expr getAPathExpr(NpmPackage pkg) { + exists(Import imprt | + result = imprt.getImportedPathExpr() and + pkg.getAModule() = imprt.getEnclosingModule() + ) + or + exists(ReExportDeclaration decl | + result = decl.getImportedPath() and + pkg.getAModule() = decl.getEnclosingModule() + ) +} /** * Gets a URL-valued attribute in a module or HTML file belonging to `pkg`. @@ -56,9 +66,8 @@ predicate usesDependency(NpmPackage pkg, string name) { ( // there is a path expression (e.g., in a `require` or `import`) that // references `pkg` - exists(PathExpr path | path = getAPathExpr(pkg) | - // check whether the path is `name` or starts with `name/`, ignoring a prefix that ends with '!' (example: "scriptloader!moment") - path.getValue().regexpMatch("(.*!)?\\Q" + name + "\\E(/.*)?") + exists(Expr path | path = getAPathExpr(pkg) | + path.getStringValue().(FilePath).getPackagePrefix() = name ) or // there is an HTML URL attribute that may reference `pkg` diff --git a/javascript/ql/test/library-tests/AMD/tests.ql b/javascript/ql/test/library-tests/AMD/tests.ql index 956ad6d040e..e71ae089f2d 100644 --- a/javascript/ql/test/library-tests/AMD/tests.ql +++ b/javascript/ql/test/library-tests/AMD/tests.ql @@ -18,8 +18,8 @@ query predicate amdModuleDefinition(AmdModuleDefinition mod, DataFlow::SourceNod mod.getFactoryNode() = factory } -query predicate amdModuleDependencies(AmdModuleDefinition mod, PathExpr dependency) { - dependency = mod.getADependency() +query predicate amdModuleDependencies(AmdModuleDefinition mod, Expr dependency) { + dependency = mod.getADependencyExpr() } query predicate amdModuleExportedSymbol(AmdModule m, string sym) { sym = m.getAnExportedSymbol() } diff --git a/javascript/ql/test/library-tests/Modules/tests.ql b/javascript/ql/test/library-tests/Modules/tests.ql index ca0e196f488..efe72731a7b 100644 --- a/javascript/ql/test/library-tests/Modules/tests.ql +++ b/javascript/ql/test/library-tests/Modules/tests.ql @@ -22,8 +22,8 @@ query predicate test_ImportNamespaceSpecifier(ImportNamespaceSpecifier ins) { an query predicate test_ImportSpecifiers(ImportSpecifier is, VarDecl res) { res = is.getLocal() } -query predicate test_Imports(ImportDeclaration id, PathExpr res0, int res1) { - res0 = id.getImportedPath() and res1 = count(id.getASpecifier()) +query predicate test_Imports(ImportDeclaration id, Expr res0, int res1) { + res0 = id.getImportedPathExpr() and res1 = count(id.getASpecifier()) } query predicate test_Module_exports(Module m, string name, DataFlow::Node exportValue) { diff --git a/javascript/ql/test/library-tests/NodeJS/tests.ql b/javascript/ql/test/library-tests/NodeJS/tests.ql index eca3a132d26..f5e0f58dc46 100644 --- a/javascript/ql/test/library-tests/NodeJS/tests.ql +++ b/javascript/ql/test/library-tests/NodeJS/tests.ql @@ -26,7 +26,7 @@ query predicate require(Require r) { any() } query predicate requireImport(Require r, string path, Module mod) { exists(string fullpath, string prefix | - fullpath = r.getImportedPath().getValue() and + fullpath = r.getImportedPathString() and sourceLocationPrefix(prefix) and path = fullpath.replaceAll(prefix, "") and mod = r.getImportedModule() diff --git a/javascript/ql/test/library-tests/TypeScript/ImportEquals/tests.ql b/javascript/ql/test/library-tests/TypeScript/ImportEquals/tests.ql index 839ba2c560b..5de6c99c748 100644 --- a/javascript/ql/test/library-tests/TypeScript/ImportEquals/tests.ql +++ b/javascript/ql/test/library-tests/TypeScript/ImportEquals/tests.ql @@ -5,7 +5,7 @@ query predicate dataFlowModuleImports(string name, DataFlow::SourceNode imp) { } query predicate imports(Import imprt, string path, Module mod) { - path = imprt.getImportedPath().getValue() and + path = imprt.getImportedPathString() and mod = imprt.getImportedModule() } diff --git a/javascript/ql/test/library-tests/TypeScript/RegressionTests/ImportDtsFile/test.ql b/javascript/ql/test/library-tests/TypeScript/RegressionTests/ImportDtsFile/test.ql index 3c5e8a7fd16..0c8a95e3b3b 100644 --- a/javascript/ql/test/library-tests/TypeScript/RegressionTests/ImportDtsFile/test.ql +++ b/javascript/ql/test/library-tests/TypeScript/RegressionTests/ImportDtsFile/test.ql @@ -1,4 +1,4 @@ import javascript from Import imprt -select imprt, imprt.getImportedPath().getValue(), imprt.getImportedModule() +select imprt, imprt.getImportedPathString(), imprt.getImportedModule() From 7f9020282dae18959a3ee34c1f21bdf3c744496c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 29 Apr 2025 13:16:40 +0200 Subject: [PATCH 126/656] C++: Turn header variant tests that use PCH files into integration tests These tests currently test a code path in the extractor that only exists for these tests. By turning them into integration tests, we actually use the code path that normal database creation uses. --- .../header-variant-tests/clang-pch/a.c | 2 ++ .../header-variant-tests/clang-pch/a.h | 0 .../header-variant-tests/clang-pch/b.c | 0 .../header-variant-tests/clang-pch/b.h | 0 .../header-variant-tests/clang-pch/c.c | 3 +++ .../clang-pch/clang-pch.expected | 0 .../header-variant-tests/clang-pch/clang-pch.ql | 0 .../header-variant-tests/clang-pch/d.c | 1 + .../header-variant-tests/clang-pch/d.h | 0 .../header-variant-tests/clang-pch/e.c | 3 +++ .../header-variant-tests/clang-pch/f.c | 5 +++++ .../header-variant-tests/clang-pch/g.c | 5 +++++ .../header-variant-tests/clang-pch/h.c | 4 ++++ .../header-variant-tests/clang-pch/h1.h | 0 .../header-variant-tests/clang-pch/h2.h | 0 .../header-variant-tests/clang-pch/i.c | 1 - .../header-variant-tests/clang-pch/test.py | 16 ++++++++++++++++ .../header-variant-tests/microsoft-pch/a.c | 1 + .../header-variant-tests/microsoft-pch/a.h | 0 .../header-variant-tests/microsoft-pch/b.c | 6 ++++++ .../header-variant-tests/microsoft-pch/c.c | 6 ++++++ .../microsoft-pch/microsoft-pch.expected | 0 .../microsoft-pch/microsoft-pch.ql | 0 .../header-variant-tests/microsoft-pch/test.py | 10 ++++++++++ cpp/ql/test/header-variant-tests/clang-pch/_.c | 3 --- cpp/ql/test/header-variant-tests/clang-pch/a.c | 3 --- cpp/ql/test/header-variant-tests/clang-pch/c.c | 4 ---- cpp/ql/test/header-variant-tests/clang-pch/d.c | 2 -- cpp/ql/test/header-variant-tests/clang-pch/e.c | 4 ---- cpp/ql/test/header-variant-tests/clang-pch/f.c | 6 ------ cpp/ql/test/header-variant-tests/clang-pch/g.c | 6 ------ cpp/ql/test/header-variant-tests/clang-pch/h.c | 5 ----- .../test/header-variant-tests/microsoft-pch/_.c | 3 --- .../test/header-variant-tests/microsoft-pch/a.c | 2 -- .../test/header-variant-tests/microsoft-pch/b.c | 7 ------- .../test/header-variant-tests/microsoft-pch/c.c | 7 ------- 36 files changed, 62 insertions(+), 53 deletions(-) create mode 100644 cpp/ql/integration-tests/header-variant-tests/clang-pch/a.c rename cpp/ql/{test => integration-tests}/header-variant-tests/clang-pch/a.h (100%) rename cpp/ql/{test => integration-tests}/header-variant-tests/clang-pch/b.c (100%) rename cpp/ql/{test => integration-tests}/header-variant-tests/clang-pch/b.h (100%) create mode 100644 cpp/ql/integration-tests/header-variant-tests/clang-pch/c.c rename cpp/ql/{test => integration-tests}/header-variant-tests/clang-pch/clang-pch.expected (100%) rename cpp/ql/{test => integration-tests}/header-variant-tests/clang-pch/clang-pch.ql (100%) create mode 100644 cpp/ql/integration-tests/header-variant-tests/clang-pch/d.c rename cpp/ql/{test => integration-tests}/header-variant-tests/clang-pch/d.h (100%) create mode 100644 cpp/ql/integration-tests/header-variant-tests/clang-pch/e.c create mode 100644 cpp/ql/integration-tests/header-variant-tests/clang-pch/f.c create mode 100644 cpp/ql/integration-tests/header-variant-tests/clang-pch/g.c create mode 100644 cpp/ql/integration-tests/header-variant-tests/clang-pch/h.c rename cpp/ql/{test => integration-tests}/header-variant-tests/clang-pch/h1.h (100%) rename cpp/ql/{test => integration-tests}/header-variant-tests/clang-pch/h2.h (100%) rename cpp/ql/{test => integration-tests}/header-variant-tests/clang-pch/i.c (64%) create mode 100644 cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py create mode 100644 cpp/ql/integration-tests/header-variant-tests/microsoft-pch/a.c rename cpp/ql/{test => integration-tests}/header-variant-tests/microsoft-pch/a.h (100%) create mode 100644 cpp/ql/integration-tests/header-variant-tests/microsoft-pch/b.c create mode 100644 cpp/ql/integration-tests/header-variant-tests/microsoft-pch/c.c rename cpp/ql/{test => integration-tests}/header-variant-tests/microsoft-pch/microsoft-pch.expected (100%) rename cpp/ql/{test => integration-tests}/header-variant-tests/microsoft-pch/microsoft-pch.ql (100%) create mode 100644 cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py delete mode 100644 cpp/ql/test/header-variant-tests/clang-pch/_.c delete mode 100644 cpp/ql/test/header-variant-tests/clang-pch/a.c delete mode 100644 cpp/ql/test/header-variant-tests/clang-pch/c.c delete mode 100644 cpp/ql/test/header-variant-tests/clang-pch/d.c delete mode 100644 cpp/ql/test/header-variant-tests/clang-pch/e.c delete mode 100644 cpp/ql/test/header-variant-tests/clang-pch/f.c delete mode 100644 cpp/ql/test/header-variant-tests/clang-pch/g.c delete mode 100644 cpp/ql/test/header-variant-tests/clang-pch/h.c delete mode 100644 cpp/ql/test/header-variant-tests/microsoft-pch/_.c delete mode 100644 cpp/ql/test/header-variant-tests/microsoft-pch/a.c delete mode 100644 cpp/ql/test/header-variant-tests/microsoft-pch/b.c delete mode 100644 cpp/ql/test/header-variant-tests/microsoft-pch/c.c diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/a.c b/cpp/ql/integration-tests/header-variant-tests/clang-pch/a.c new file mode 100644 index 00000000000..f80dfe40160 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/a.c @@ -0,0 +1,2 @@ +#include "a.h" +#define FOUR 4 diff --git a/cpp/ql/test/header-variant-tests/clang-pch/a.h b/cpp/ql/integration-tests/header-variant-tests/clang-pch/a.h similarity index 100% rename from cpp/ql/test/header-variant-tests/clang-pch/a.h rename to cpp/ql/integration-tests/header-variant-tests/clang-pch/a.h diff --git a/cpp/ql/test/header-variant-tests/clang-pch/b.c b/cpp/ql/integration-tests/header-variant-tests/clang-pch/b.c similarity index 100% rename from cpp/ql/test/header-variant-tests/clang-pch/b.c rename to cpp/ql/integration-tests/header-variant-tests/clang-pch/b.c diff --git a/cpp/ql/test/header-variant-tests/clang-pch/b.h b/cpp/ql/integration-tests/header-variant-tests/clang-pch/b.h similarity index 100% rename from cpp/ql/test/header-variant-tests/clang-pch/b.h rename to cpp/ql/integration-tests/header-variant-tests/clang-pch/b.h diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/c.c b/cpp/ql/integration-tests/header-variant-tests/clang-pch/c.c new file mode 100644 index 00000000000..e8c42c9c4b2 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/c.c @@ -0,0 +1,3 @@ +int main() { + return ONE + FOUR; +} diff --git a/cpp/ql/test/header-variant-tests/clang-pch/clang-pch.expected b/cpp/ql/integration-tests/header-variant-tests/clang-pch/clang-pch.expected similarity index 100% rename from cpp/ql/test/header-variant-tests/clang-pch/clang-pch.expected rename to cpp/ql/integration-tests/header-variant-tests/clang-pch/clang-pch.expected diff --git a/cpp/ql/test/header-variant-tests/clang-pch/clang-pch.ql b/cpp/ql/integration-tests/header-variant-tests/clang-pch/clang-pch.ql similarity index 100% rename from cpp/ql/test/header-variant-tests/clang-pch/clang-pch.ql rename to cpp/ql/integration-tests/header-variant-tests/clang-pch/clang-pch.ql diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/d.c b/cpp/ql/integration-tests/header-variant-tests/clang-pch/d.c new file mode 100644 index 00000000000..35e2312fd89 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/d.c @@ -0,0 +1 @@ +#import "d.h" diff --git a/cpp/ql/test/header-variant-tests/clang-pch/d.h b/cpp/ql/integration-tests/header-variant-tests/clang-pch/d.h similarity index 100% rename from cpp/ql/test/header-variant-tests/clang-pch/d.h rename to cpp/ql/integration-tests/header-variant-tests/clang-pch/d.h diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/e.c b/cpp/ql/integration-tests/header-variant-tests/clang-pch/e.c new file mode 100644 index 00000000000..571efb6f271 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/e.c @@ -0,0 +1,3 @@ +int main() { + return SEVENTEEN; +} diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/f.c b/cpp/ql/integration-tests/header-variant-tests/clang-pch/f.c new file mode 100644 index 00000000000..613824dc783 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/f.c @@ -0,0 +1,5 @@ +#if 1 +#pragma hdrstop +extern int x; +#define SEEN_F +#endif diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/g.c b/cpp/ql/integration-tests/header-variant-tests/clang-pch/g.c new file mode 100644 index 00000000000..bf105c29e95 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/g.c @@ -0,0 +1,5 @@ +#ifdef SEEN_F +static int g() { + return 20; +} +#endif diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/h.c b/cpp/ql/integration-tests/header-variant-tests/clang-pch/h.c new file mode 100644 index 00000000000..6f183a7070f --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/h.c @@ -0,0 +1,4 @@ +#include "h1.h" +#pragma hdrstop +#include "h2.h" +#define SEEN_H diff --git a/cpp/ql/test/header-variant-tests/clang-pch/h1.h b/cpp/ql/integration-tests/header-variant-tests/clang-pch/h1.h similarity index 100% rename from cpp/ql/test/header-variant-tests/clang-pch/h1.h rename to cpp/ql/integration-tests/header-variant-tests/clang-pch/h1.h diff --git a/cpp/ql/test/header-variant-tests/clang-pch/h2.h b/cpp/ql/integration-tests/header-variant-tests/clang-pch/h2.h similarity index 100% rename from cpp/ql/test/header-variant-tests/clang-pch/h2.h rename to cpp/ql/integration-tests/header-variant-tests/clang-pch/h2.h diff --git a/cpp/ql/test/header-variant-tests/clang-pch/i.c b/cpp/ql/integration-tests/header-variant-tests/clang-pch/i.c similarity index 64% rename from cpp/ql/test/header-variant-tests/clang-pch/i.c rename to cpp/ql/integration-tests/header-variant-tests/clang-pch/i.c index 05aa74b3047..1274d675000 100644 --- a/cpp/ql/test/header-variant-tests/clang-pch/i.c +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/i.c @@ -13,4 +13,3 @@ static int h2() { return 32; } #endif -// semmle-extractor-options: --clang -include-pch ${testdir}/clang-pch.testproj/h.pch diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py b/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py new file mode 100644 index 00000000000..3cf2d42f764 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py @@ -0,0 +1,16 @@ +import os + + +def test(codeql, cpp): + os.mkdir("pch") + codeql.database.create(command=[ + f'"{cpp.get_tool("extractor")}" --mimic-clang -emit-pch -o pch/a.pch a.c', + f'"{cpp.get_tool("extractor")}" --mimic-clang -include-pch pch/a.pch -Iextra_dummy_path b.c', + f'"{cpp.get_tool("extractor")}" --mimic-clang -include pch/a -Iextra_dummy_path c.c', + f'"{cpp.get_tool("extractor")}" --mimic-clang -emit-pch -o pch/d.pch d.c', + f'"{cpp.get_tool("extractor")}" --mimic-clang -include-pch pch/d.pch e.c', + f'"{cpp.get_tool("extractor")}" --mimic-clang -emit-pch -o pch/f.pch f.c', + f'"{cpp.get_tool("extractor")}" --mimic-clang -include-pch pch/f.pch g.c', + f'"{cpp.get_tool("extractor")}" --mimic-clang -emit-pch -o pch/h.pch h.c', + f'"{cpp.get_tool("extractor")}" --mimic-clang -include-pch pch/h.pch i.c', + ]) diff --git a/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/a.c b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/a.c new file mode 100644 index 00000000000..2243de1baf9 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/a.c @@ -0,0 +1 @@ +#include "a.h" diff --git a/cpp/ql/test/header-variant-tests/microsoft-pch/a.h b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/a.h similarity index 100% rename from cpp/ql/test/header-variant-tests/microsoft-pch/a.h rename to cpp/ql/integration-tests/header-variant-tests/microsoft-pch/a.h diff --git a/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/b.c b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/b.c new file mode 100644 index 00000000000..ef8f5d3ca55 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/b.c @@ -0,0 +1,6 @@ +#pragma hdrstop +#include "b.h" + +int b() { + return A; +} diff --git a/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/c.c b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/c.c new file mode 100644 index 00000000000..b270ddd6478 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/c.c @@ -0,0 +1,6 @@ +#include "d.h" +#include "c.h" + +int c() { + return A; +} diff --git a/cpp/ql/test/header-variant-tests/microsoft-pch/microsoft-pch.expected b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/microsoft-pch.expected similarity index 100% rename from cpp/ql/test/header-variant-tests/microsoft-pch/microsoft-pch.expected rename to cpp/ql/integration-tests/header-variant-tests/microsoft-pch/microsoft-pch.expected diff --git a/cpp/ql/test/header-variant-tests/microsoft-pch/microsoft-pch.ql b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/microsoft-pch.ql similarity index 100% rename from cpp/ql/test/header-variant-tests/microsoft-pch/microsoft-pch.ql rename to cpp/ql/integration-tests/header-variant-tests/microsoft-pch/microsoft-pch.ql diff --git a/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py new file mode 100644 index 00000000000..eaa0fdb8786 --- /dev/null +++ b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py @@ -0,0 +1,10 @@ +import os + + +def test(codeql, cpp): + os.mkdir("pch") + codeql.database.create(command=[ + f'"{cpp.get_tool("extractor")}" --mimic-cl /Yca.h /Fppch/a.pch a.c', + f'"{cpp.get_tool("extractor")}" --mimic-cl /Yub.h /Fppch/a.pch b.c', + f'"{cpp.get_tool("extractor")}" --mimic-cl /Yuc.h /Fppch/a.pch c.c', + ]) diff --git a/cpp/ql/test/header-variant-tests/clang-pch/_.c b/cpp/ql/test/header-variant-tests/clang-pch/_.c deleted file mode 100644 index 6186edd586f..00000000000 --- a/cpp/ql/test/header-variant-tests/clang-pch/_.c +++ /dev/null @@ -1,3 +0,0 @@ -// This file exists to ensure that the output subdirectory exists prior to -// a.c being indexed, as said directory needs to exist for the PCH file to -// be created, and will be created by running the extractor. diff --git a/cpp/ql/test/header-variant-tests/clang-pch/a.c b/cpp/ql/test/header-variant-tests/clang-pch/a.c deleted file mode 100644 index 9164cdc19a5..00000000000 --- a/cpp/ql/test/header-variant-tests/clang-pch/a.c +++ /dev/null @@ -1,3 +0,0 @@ -#include "a.h" -#define FOUR 4 -// semmle-extractor-options: --clang -emit-pch -o ${testdir}/clang-pch.testproj/a.pch diff --git a/cpp/ql/test/header-variant-tests/clang-pch/c.c b/cpp/ql/test/header-variant-tests/clang-pch/c.c deleted file mode 100644 index 0a8b9766713..00000000000 --- a/cpp/ql/test/header-variant-tests/clang-pch/c.c +++ /dev/null @@ -1,4 +0,0 @@ -int main() { - return ONE + FOUR; -} -// semmle-extractor-options: --clang -include ${testdir}/clang-pch.testproj/a -Iextra_dummy_path diff --git a/cpp/ql/test/header-variant-tests/clang-pch/d.c b/cpp/ql/test/header-variant-tests/clang-pch/d.c deleted file mode 100644 index f81af3d1b63..00000000000 --- a/cpp/ql/test/header-variant-tests/clang-pch/d.c +++ /dev/null @@ -1,2 +0,0 @@ -#import "d.h" -// semmle-extractor-options: --clang -emit-pch -o ${testdir}/clang-pch.testproj/d.pch diff --git a/cpp/ql/test/header-variant-tests/clang-pch/e.c b/cpp/ql/test/header-variant-tests/clang-pch/e.c deleted file mode 100644 index abdb5900200..00000000000 --- a/cpp/ql/test/header-variant-tests/clang-pch/e.c +++ /dev/null @@ -1,4 +0,0 @@ -int main() { - return SEVENTEEN; -} -// semmle-extractor-options: --clang -include-pch ${testdir}/clang-pch.testproj/d.pch diff --git a/cpp/ql/test/header-variant-tests/clang-pch/f.c b/cpp/ql/test/header-variant-tests/clang-pch/f.c deleted file mode 100644 index cca56931acd..00000000000 --- a/cpp/ql/test/header-variant-tests/clang-pch/f.c +++ /dev/null @@ -1,6 +0,0 @@ -#if 1 -#pragma hdrstop -extern int x; -#define SEEN_F -#endif -// semmle-extractor-options: --clang -emit-pch -o ${testdir}/clang-pch.testproj/f.pch diff --git a/cpp/ql/test/header-variant-tests/clang-pch/g.c b/cpp/ql/test/header-variant-tests/clang-pch/g.c deleted file mode 100644 index b16ca33ab36..00000000000 --- a/cpp/ql/test/header-variant-tests/clang-pch/g.c +++ /dev/null @@ -1,6 +0,0 @@ -#ifdef SEEN_F -static int g() { - return 20; -} -#endif -// semmle-extractor-options: --clang -include-pch ${testdir}/clang-pch.testproj/f.pch diff --git a/cpp/ql/test/header-variant-tests/clang-pch/h.c b/cpp/ql/test/header-variant-tests/clang-pch/h.c deleted file mode 100644 index 7ffc9b6133c..00000000000 --- a/cpp/ql/test/header-variant-tests/clang-pch/h.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "h1.h" -#pragma hdrstop -#include "h2.h" -#define SEEN_H -// semmle-extractor-options: --clang -emit-pch -o ${testdir}/clang-pch.testproj/h.pch diff --git a/cpp/ql/test/header-variant-tests/microsoft-pch/_.c b/cpp/ql/test/header-variant-tests/microsoft-pch/_.c deleted file mode 100644 index 6186edd586f..00000000000 --- a/cpp/ql/test/header-variant-tests/microsoft-pch/_.c +++ /dev/null @@ -1,3 +0,0 @@ -// This file exists to ensure that the output subdirectory exists prior to -// a.c being indexed, as said directory needs to exist for the PCH file to -// be created, and will be created by running the extractor. diff --git a/cpp/ql/test/header-variant-tests/microsoft-pch/a.c b/cpp/ql/test/header-variant-tests/microsoft-pch/a.c deleted file mode 100644 index ba41bafcaad..00000000000 --- a/cpp/ql/test/header-variant-tests/microsoft-pch/a.c +++ /dev/null @@ -1,2 +0,0 @@ -#include "a.h" -// semmle-extractor-options: --microsoft /Yca.h /Fp${testdir}/microsoft-pch.testproj/a.pch diff --git a/cpp/ql/test/header-variant-tests/microsoft-pch/b.c b/cpp/ql/test/header-variant-tests/microsoft-pch/b.c deleted file mode 100644 index b6ea5085fd1..00000000000 --- a/cpp/ql/test/header-variant-tests/microsoft-pch/b.c +++ /dev/null @@ -1,7 +0,0 @@ -#pragma hdrstop -#include "b.h" - -int b() { - return A; -} -// semmle-extractor-options: --microsoft /Yub.h /Fp${testdir}/microsoft-pch.testproj/a.pch diff --git a/cpp/ql/test/header-variant-tests/microsoft-pch/c.c b/cpp/ql/test/header-variant-tests/microsoft-pch/c.c deleted file mode 100644 index aaddbae8688..00000000000 --- a/cpp/ql/test/header-variant-tests/microsoft-pch/c.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "d.h" -#include "c.h" - -int c() { - return A; -} -// semmle-extractor-options: --microsoft /Yuc.h /Fp${testdir}/microsoft-pch.testproj/a.pch From b5c596b2ce2450e1969ca751fa3ff3ce47155bf9 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 24 Apr 2025 15:32:12 +0200 Subject: [PATCH 127/656] Shared: Split model printing of summaries and sources/sinks into separate param modules. --- .../CaptureTypeBasedSummaryModels.qll | 6 ++-- .../CaptureTypeBasedSummaryModels.qll | 6 ++-- .../internal/ModelGeneratorImpl.qll | 31 +++++++++++-------- .../modelgenerator/internal/ModelPrinting.qll | 28 ++++++++++++----- 4 files changed, 42 insertions(+), 29 deletions(-) diff --git a/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll b/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll index f7b0633ddd3..62286c27888 100644 --- a/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll +++ b/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll @@ -177,15 +177,13 @@ private predicate output(Callable callable, TypeParameter tp, string output) { delegateSink(callable, tp, output) } -private module ModelPrintingInput implements ModelPrintingSig { +private module ModelPrintingInput implements ModelPrintingSummarySig { class SummaryApi = TypeBasedFlowTargetApi; - class SourceOrSinkApi = TypeBasedFlowTargetApi; - string getProvenance() { result = "tb-generated" } } -private module Printing = ModelPrinting; +private module Printing = ModelPrintingSummary; /** * A class of callables that are relevant generating summaries for based diff --git a/java/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll b/java/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll index 36aec805319..9145a077907 100644 --- a/java/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll +++ b/java/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll @@ -284,15 +284,13 @@ private predicate output(Callable callable, TypeVariable tv, string output) { functionalSink(callable, tv, output) } -module ModelPrintingInput implements ModelPrintingSig { +module ModelPrintingInput implements ModelPrintingSummarySig { class SummaryApi = TypeBasedFlowTargetApi; - class SourceOrSinkApi = ModelGeneratorInput::SourceOrSinkTargetApi; - string getProvenance() { result = "tb-generated" } } -private module Printing = ModelPrinting; +private module Printing = ModelPrintingSummary; /** * A class of callables that are relevant generating summaries for based diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index b9592964f93..59f53c2b1c9 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -370,20 +370,27 @@ module MakeModelGenerator< * based on heuristic data flow. */ module Heuristic { - private module ModelPrintingInput implements Printing::ModelPrintingSig { + private module ModelPrintingSummaryInput implements Printing::ModelPrintingSummarySig { class SummaryApi = DataFlowSummaryTargetApi; + string getProvenance() { result = "df-generated" } + } + + module ModelPrintingSummary = Printing::ModelPrintingSummary; + + private module ModelPrintingSourceOrSinkInput implements Printing::ModelPrintingSourceOrSinkSig { class SourceOrSinkApi = SourceOrSinkTargetApi; string getProvenance() { result = "df-generated" } } - module ModelPrinting = Printing::ModelPrinting; - private string getOutput(ReturnNodeExt node) { result = PrintReturnNodeExt::getOutput(node) } + private module ModelPrintingSourceOrSink = + Printing::ModelPrintingSourceOrSink; + /** * Holds if data can flow from `node1` to `node2` either via a read or a write of an intermediate field `f`. */ @@ -419,7 +426,7 @@ module MakeModelGenerator< api = returnNodeEnclosingCallable(ret) and isOwnInstanceAccessNode(ret) ) and - result = ModelPrinting::asLiftedValueModel(api, qualifierString(), "ReturnValue") + result = ModelPrintingSummary::asLiftedValueModel(api, qualifierString(), "ReturnValue") } private int accessPathLimit0() { result = 2 } @@ -539,7 +546,7 @@ module MakeModelGenerator< input = parameterNodeAsInput(p) and output = getOutput(returnNodeExt) and input != output and - result = ModelPrinting::asLiftedTaintModel(api, input, output) + result = ModelPrintingSummary::asLiftedTaintModel(api, input, output) ) } @@ -572,7 +579,7 @@ module MakeModelGenerator< exists(captureFlow(api0)) and api0.lift() = api.lift() ) and api.isRelevant() and - result = ModelPrinting::asNeutralSummaryModel(api) + result = ModelPrintingSummary::asNeutralSummaryModel(api) } /** @@ -617,7 +624,7 @@ module MakeModelGenerator< sourceNode(source, kind) and api = getEnclosingCallable(sink) and not irrelevantSourceSinkApi(getEnclosingCallable(source), api) and - result = ModelPrinting::asSourceModel(api, getOutput(sink), kind) + result = ModelPrintingSourceOrSink::asSourceModel(api, getOutput(sink), kind) ) } @@ -663,7 +670,7 @@ module MakeModelGenerator< PropagateToSink::flow(src, sink) and sinkNode(sink, kind) and api = getEnclosingCallable(src) and - result = ModelPrinting::asSinkModel(api, asInputArgument(src), kind) + result = ModelPrintingSourceOrSink::asSinkModel(api, asInputArgument(src), kind) ) } } @@ -703,15 +710,13 @@ module MakeModelGenerator< private module PropagateContentFlow = ContentDataFlow::Global; - private module ContentModelPrintingInput implements Printing::ModelPrintingSig { + private module ContentModelPrintingInput implements Printing::ModelPrintingSummarySig { class SummaryApi = DataFlowSummaryTargetApi; - class SourceOrSinkApi = SourceOrSinkTargetApi; - string getProvenance() { result = "dfc-generated" } } - private module ContentModelPrinting = Printing::ModelPrinting; + private module ContentModelPrinting = Printing::ModelPrintingSummary; private string getContentOutput(ReturnNodeExt node) { result = PrintReturnNodeExt::getOutput(node) @@ -1075,6 +1080,6 @@ module MakeModelGenerator< ) ) and api.isRelevant() and - result = Heuristic::ModelPrinting::asNeutralSummaryModel(api) + result = Heuristic::ModelPrintingSummary::asNeutralSummaryModel(api) } } diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll index 0ab92f7032b..fc1e0113d1d 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll @@ -16,7 +16,7 @@ signature module ModelPrintingLangSig { } module ModelPrintingImpl { - signature module ModelPrintingSig { + signature module ModelPrintingSummarySig { /** * The class of APIs relevant for model generation. */ @@ -24,6 +24,16 @@ module ModelPrintingImpl { Lang::Callable lift(); } + /** + * Gets the string representation of the provenance of the models. + */ + string getProvenance(); + } + + signature module ModelPrintingSourceOrSinkSig { + /** + * The class of APIs relevant for model generation. + */ class SourceOrSinkApi extends Lang::Callable; /** @@ -32,14 +42,14 @@ module ModelPrintingImpl { string getProvenance(); } - module ModelPrinting { - /** - * Computes the first columns for MaD rows used for summaries, sources and sinks. - */ - private string asPartialModel(Lang::Callable api) { - result = strictconcat(int i | | Lang::partialModelRow(api, i), ";" order by i) + ";" - } + /** + * Computes the first columns for MaD rows used for summaries, sources and sinks. + */ + private string asPartialModel(Lang::Callable api) { + result = strictconcat(int i | | Lang::partialModelRow(api, i), ";" order by i) + ";" + } + module ModelPrintingSummary { /** * Computes the first columns for neutral MaD rows. */ @@ -106,7 +116,9 @@ module ModelPrintingImpl { preservesValue = false and result = asSummaryModel(api, input, output, "taint", lift) } + } + module ModelPrintingSourceOrSink { /** * Gets the sink model for `api` with `input` and `kind`. */ From bb6530fcf85e47c696c13f02a3b1f00652d3ff04 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 24 Apr 2025 16:12:01 +0200 Subject: [PATCH 128/656] Shared: Make the summary, source and sink model generation a parameterized module. --- .../internal/ModelGeneratorImpl.qll | 1721 +++++++++-------- 1 file changed, 893 insertions(+), 828 deletions(-) diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index 59f53c2b1c9..d981ef151fd 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -15,7 +15,7 @@ private import ModelPrinting /** * Provides language-specific model generator parameters. */ -signature module ModelGeneratorInputSig Lang> { +signature module ModelGeneratorCommonInputSig Lang> { /** * A Type. */ @@ -49,52 +49,6 @@ signature module ModelGeneratorInputSig /** Gets the enclosing callable of `node`. */ Callable getEnclosingCallable(NodeExtended node); - /** - * Gets the enclosing callable of `node`, when considered as an expression. - */ - Callable getAsExprEnclosingCallable(NodeExtended node); - - /** Gets the parameter corresponding to this node, if any. */ - Parameter asParameter(NodeExtended n); - - /** - * A class of callables that are potentially relevant for generating summary or - * neutral models. - * - * In the Standard library and 3rd party libraries it is the callables (or callables that have a - * super implementation) that can be called from outside the library itself. - */ - class SummaryTargetApi extends Callable { - /** - * Gets the callable that a model will be lifted to. - * - * The lifted callable is relevant in terms of model - * generation (this is ensured by `liftedImpl`). - */ - Callable lift(); - - /** - * Holds if `this` is relevant in terms of model generation. - */ - predicate isRelevant(); - } - - /** - * A class of callables that are potentially relevant for generating source or - * sink models. - */ - class SourceOrSinkTargetApi extends Callable; - - /** - * A class of callables that are potentially relevant for generating source models. - */ - class SourceTargetApi extends SourceOrSinkTargetApi; - - /** - * A class of callables that are potentially relevant for generating sink models. - */ - class SinkTargetApi extends SourceOrSinkTargetApi; - /** * An instance parameter node. */ @@ -113,22 +67,6 @@ signature module ModelGeneratorInputSig */ Type getUnderlyingContentType(Lang::ContentSet c); - /** - * Gets the MaD string representation of the qualifier. - */ - string qualifierString(); - - /** - * Gets the MaD string representation of the parameter `p`. - */ - string parameterAccess(Parameter p); - - /** - * Gets the MaD string representation of the parameter `p` - * when used in content flow. - */ - string parameterContentAccess(Parameter p); - /** * Gets the MaD string representation of return through parameter at position * `pos` of callable `c`. @@ -154,69 +92,26 @@ signature module ModelGeneratorInputSig predicate isOwnInstanceAccessNode(Lang::ReturnNode node); /** - * Holds if `node` is a sanitizer for sink model construction. + * Gets the MaD string representation of the parameter `p`. */ - predicate sinkModelSanitizer(Lang::Node node); + string parameterAccess(Parameter p); /** - * Holds if `source` is an api entrypoint relevant for creating sink models. + * Gets the MaD string representation of the parameter `p` + * when used in content flow. */ - predicate apiSource(Lang::Node source); + string parameterContentAccess(Parameter p); /** - * Gets the MaD input string representation of `source`. + * Gets the MaD string representation of the qualifier. */ - string getInputArgument(Lang::Node source); - - /** - * Holds if it is not relevant to generate a source model for `api`, even - * if flow is detected from a node within `source` to a sink within `api`. - */ - bindingset[sourceEnclosing, api] - predicate irrelevantSourceSinkApi(Callable sourceEnclosing, SourceTargetApi api); - - /** - * Holds if `kind` is a relevant sink kind for creating sink models. - */ - bindingset[kind] - predicate isRelevantSinkKind(string kind); - - /** - * Holds if `kind` is a relevant source kind for creating source models. - */ - bindingset[kind] - predicate isRelevantSourceKind(string kind); + string qualifierString(); /** * Holds if the the content `c` is a container. */ predicate containerContent(Lang::ContentSet c); - /** - * Holds if there is a taint step from `node1` to `node2` in content flow. - */ - predicate isAdditionalContentFlowStep(Lang::Node nodeFrom, Lang::Node nodeTo); - - /** - * Holds if the content set `c` is field like. - */ - predicate isField(Lang::ContentSet c); - - /** - * Holds if the content set `c` is callback like. - */ - predicate isCallback(Lang::ContentSet c); - - /** - * Gets the MaD synthetic name string representation for the content set `c`, if any. - */ - string getSyntheticName(Lang::ContentSet c); - - /** - * Gets the MaD string representation of the content set `c`. - */ - string printContent(Lang::ContentSet c); - /** * Gets the parameter position of the return kind, if any. */ @@ -230,22 +125,6 @@ signature module ModelGeneratorInputSig */ default string getReturnValueString(Lang::ReturnKind kind) { result = "ReturnValue" } - /** - * Holds if it is irrelevant to generate models for `api` based on data flow analysis. - * - * This serves as an extra filter for the `relevant` predicate. - */ - predicate isUninterestingForDataFlowModels(Callable api); - - /** - * Holds if it is irrelevant to generate models for `api` based on the heuristic - * (non-content) flow analysis. - * - * This serves as an extra filter for the `relevant` - * and `isUninterestingForDataFlowModels` predicates. - */ - predicate isUninterestingForHeuristicDataFlowModels(Callable api); - /** * Gets the string representation for the `i`th column in the MaD row for `api`. */ @@ -255,23 +134,14 @@ signature module ModelGeneratorInputSig * Gets the string representation for the `i`th column in the neutral MaD row for `api`. */ string partialNeutralModelRow(Callable api, int i); - - /** - * Holds if `node` is specified as a source with the given kind in a MaD flow - * model. - */ - predicate sourceNode(Lang::Node node, string kind); - - /** - * Holds if `node` is specified as a sink with the given kind in a MaD flow - * model. - */ - predicate sinkNode(Lang::Node node, string kind); } -module MakeModelGenerator< +/** + * Make a factory for constructing different model generators. + */ +module MakeModelGeneratorFactory< LocationSig Location, InputSig Lang, Tt::InputSig TaintLang, - ModelGeneratorInputSig ModelGeneratorInput> + ModelGeneratorCommonInputSig ModelGeneratorInput> { private module DataFlow { import Lang @@ -338,16 +208,6 @@ module MakeModelGenerator< } } - final private class SummaryTargetApiFinal = SummaryTargetApi; - - class DataFlowSummaryTargetApi extends SummaryTargetApiFinal { - DataFlowSummaryTargetApi() { not isUninterestingForDataFlowModels(this) } - } - - class DataFlowSourceTargetApi = SourceTargetApi; - - class DataFlowSinkTargetApi = SinkTargetApi; - /** * Holds if `c` is a relevant content kind, where the underlying type is relevant. */ @@ -365,721 +225,926 @@ module MakeModelGenerator< containerContent(c) } + private string getOutput(ReturnNodeExt node) { + result = PrintReturnNodeExt::getOutput(node) + } + /** - * Provides classes and predicates related to capturing models - * based on heuristic data flow. + * Provides language-specific summary model generator parameters. */ - module Heuristic { - private module ModelPrintingSummaryInput implements Printing::ModelPrintingSummarySig { - class SummaryApi = DataFlowSummaryTargetApi; - - string getProvenance() { result = "df-generated" } - } - - module ModelPrintingSummary = Printing::ModelPrintingSummary; - - private module ModelPrintingSourceOrSinkInput implements Printing::ModelPrintingSourceOrSinkSig { - class SourceOrSinkApi = SourceOrSinkTargetApi; - - string getProvenance() { result = "df-generated" } - } - - private string getOutput(ReturnNodeExt node) { - result = PrintReturnNodeExt::getOutput(node) - } - - private module ModelPrintingSourceOrSink = - Printing::ModelPrintingSourceOrSink; - + signature module SummaryModelGeneratorInputSig { /** - * Holds if data can flow from `node1` to `node2` either via a read or a write of an intermediate field `f`. - */ - private predicate isRelevantTaintStep(DataFlow::Node node1, DataFlow::Node node2) { - exists(DataFlow::ContentSet f | - DataFlow::readStep(node1, f, node2) and - // Partially restrict the content types used for intermediate steps. - (not exists(getUnderlyingContentType(f)) or isRelevantTypeInContent(f)) - ) - or - exists(DataFlow::ContentSet f | DataFlow::storeStep(node1, f, node2) | containerContent(f)) - } - - /** - * Gets the MaD string representation of the parameter node `p`. - */ - string parameterNodeAsInput(DataFlow::ParameterNode p) { - result = parameterAccess(asParameter(p)) - or - result = qualifierString() and p instanceof InstanceParameterNode - } - - /** - * Gets the MaD input string representation of `source`. - */ - private string asInputArgument(NodeExtended source) { result = getInputArgument(source) } - - /** - * Gets the summary model of `api`, if it follows the `fluent` programming pattern (returns `this`). - */ - private string captureQualifierFlow(DataFlowSummaryTargetApi api) { - exists(ReturnNodeExt ret | - api = returnNodeEnclosingCallable(ret) and - isOwnInstanceAccessNode(ret) - ) and - result = ModelPrintingSummary::asLiftedValueModel(api, qualifierString(), "ReturnValue") - } - - private int accessPathLimit0() { result = 2 } - - private newtype TTaintState = - TTaintRead(int n) { n in [0 .. accessPathLimit0()] } or - TTaintStore(int n) { n in [1 .. accessPathLimit0()] } - - abstract private class TaintState extends TTaintState { - abstract string toString(); - } - - /** - * A FlowState representing a tainted read. - */ - private class TaintRead extends TaintState, TTaintRead { - private int step; - - TaintRead() { this = TTaintRead(step) } - - /** - * Gets the flow state step number. - */ - int getStep() { result = step } - - override string toString() { result = "TaintRead(" + step + ")" } - } - - /** - * A FlowState representing a tainted write. - */ - private class TaintStore extends TaintState, TTaintStore { - private int step; - - TaintStore() { this = TTaintStore(step) } - - /** - * Gets the flow state step number. - */ - int getStep() { result = step } - - override string toString() { result = "TaintStore(" + step + ")" } - } - - /** - * A data flow configuration for tracking flow through APIs. - * The sources are the parameters of an API and the sinks are the return values (excluding `this`) and parameters. + * A class of callables that are potentially relevant for generating summary or + * neutral models. * - * This can be used to generate Flow summaries for APIs from parameter to return. + * In the Standard library and 3rd party libraries it is the callables (or callables that have a + * super implementation) that can be called from outside the library itself. */ - private module PropagateFlowConfig implements DataFlow::StateConfigSig { - class FlowState = TaintState; + class SummaryTargetApi extends Callable { + /** + * Gets the callable that a model will be lifted to. + * + * The lifted callable is relevant in terms of model + * generation (this is ensured by `liftedImpl`). + */ + Callable lift(); - predicate isSource(DataFlow::Node source, FlowState state) { - source instanceof DataFlow::ParameterNode and - exists(Callable c | - c = getEnclosingCallable(source) and - c instanceof DataFlowSummaryTargetApi and - not isUninterestingForHeuristicDataFlowModels(c) + /** + * Holds if `this` is relevant in terms of model generation. + */ + predicate isRelevant(); + } + + /** + * Gets the enclosing callable of `node`, when considered as an expression. + */ + Callable getAsExprEnclosingCallable(NodeExtended node); + + /** + * Gets the parameter corresponding to this node, if any. + */ + Parameter asParameter(NodeExtended n); + + /** + * Holds if there is a taint step from `node1` to `node2` in content flow. + */ + predicate isAdditionalContentFlowStep(Lang::Node nodeFrom, Lang::Node nodeTo); + + /** + * Holds if the content set `c` is field like. + */ + predicate isField(Lang::ContentSet c); + + /** + * Holds if the content set `c` is callback like. + */ + predicate isCallback(Lang::ContentSet c); + + /** + * Gets the MaD synthetic name string representation for the content set `c`, if any. + */ + string getSyntheticName(Lang::ContentSet c); + + /** + * Gets the MaD string representation of the content set `c`. + */ + string printContent(Lang::ContentSet c); + + /** + * Holds if it is irrelevant to generate models for `api` based on data flow analysis. + * + * This serves as an extra filter for the `relevant` predicate. + */ + predicate isUninterestingForDataFlowModels(Callable api); + + /** + * Holds if it is irrelevant to generate models for `api` based on the heuristic + * (non-content) flow analysis. + * + * This serves as an extra filter for the `relevant` + * and `isUninterestingForDataFlowModels` predicates. + */ + predicate isUninterestingForHeuristicDataFlowModels(Callable api); + } + + /** + * Make a summary model generator. + */ + module MakeSummaryModelGenerator { + private import SummaryModelGeneratorInput + + final private class SummaryTargetApiFinal = SummaryTargetApi; + + class DataFlowSummaryTargetApi extends SummaryTargetApiFinal { + DataFlowSummaryTargetApi() { not isUninterestingForDataFlowModels(this) } + } + + /** + * Provides classes and predicates related to capturing summary models + * based on heuristic data flow. + */ + module Heuristic { + private module ModelPrintingSummaryInput implements Printing::ModelPrintingSummarySig { + class SummaryApi = DataFlowSummaryTargetApi; + + string getProvenance() { result = "df-generated" } + } + + module ModelPrintingSummary = Printing::ModelPrintingSummary; + + /** + * Gets the MaD string representation of the parameter node `p`. + */ + string parameterNodeAsInput(DataFlow::ParameterNode p) { + result = parameterAccess(asParameter(p)) + or + result = qualifierString() and p instanceof InstanceParameterNode + } + + /** + * Gets the summary model of `api`, if it follows the `fluent` programming pattern (returns `this`). + */ + private string captureQualifierFlow(DataFlowSummaryTargetApi api) { + exists(ReturnNodeExt ret | + api = returnNodeEnclosingCallable(ret) and + isOwnInstanceAccessNode(ret) ) and - state.(TaintRead).getStep() = 0 + result = ModelPrintingSummary::asLiftedValueModel(api, qualifierString(), "ReturnValue") } - predicate isSink(DataFlow::Node sink, FlowState state) { - // Sinks are provided by `isSink/1` - none() + private int accessPathLimit0() { result = 2 } + + private newtype TTaintState = + TTaintRead(int n) { n in [0 .. accessPathLimit0()] } or + TTaintStore(int n) { n in [1 .. accessPathLimit0()] } + + abstract private class TaintState extends TTaintState { + abstract string toString(); } - predicate isSink(DataFlow::Node sink) { - sink instanceof ReturnNodeExt and - not isOwnInstanceAccessNode(sink) and - not exists(captureQualifierFlow(getAsExprEnclosingCallable(sink))) + /** + * A FlowState representing a tainted read. + */ + private class TaintRead extends TaintState, TTaintRead { + private int step; + + TaintRead() { this = TTaintRead(step) } + + /** + * Gets the flow state step number. + */ + int getStep() { result = step } + + override string toString() { result = "TaintRead(" + step + ")" } } - predicate isAdditionalFlowStep( - DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 + /** + * A FlowState representing a tainted write. + */ + private class TaintStore extends TaintState, TTaintStore { + private int step; + + TaintStore() { this = TTaintStore(step) } + + /** + * Gets the flow state step number. + */ + int getStep() { result = step } + + override string toString() { result = "TaintStore(" + step + ")" } + } + + /** + * A data flow configuration for tracking flow through APIs. + * The sources are the parameters of an API and the sinks are the return values (excluding `this`) and parameters. + * + * This can be used to generate Flow summaries for APIs from parameter to return. + */ + private module PropagateFlowConfig implements DataFlow::StateConfigSig { + class FlowState = TaintState; + + predicate isSource(DataFlow::Node source, FlowState state) { + source instanceof DataFlow::ParameterNode and + exists(Callable c | + c = getEnclosingCallable(source) and + c instanceof DataFlowSummaryTargetApi and + not isUninterestingForHeuristicDataFlowModels(c) + ) and + state.(TaintRead).getStep() = 0 + } + + predicate isSink(DataFlow::Node sink, FlowState state) { + // Sinks are provided by `isSink/1` + none() + } + + predicate isSink(DataFlow::Node sink) { + sink instanceof ReturnNodeExt and + not isOwnInstanceAccessNode(sink) and + not exists(captureQualifierFlow(getAsExprEnclosingCallable(sink))) + } + + predicate isAdditionalFlowStep( + DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 + ) { + exists(DataFlow::NodeEx n1, DataFlow::NodeEx n2, DataFlow::ContentSet c | + node1 = n1.asNode() and + node2 = n2.asNode() and + DataFlow::storeEx(n1, c.getAStoreContent(), n2, _, _) and + isRelevantContent0(c) and + ( + state1 instanceof TaintRead and state2.(TaintStore).getStep() = 1 + or + state1.(TaintStore).getStep() + 1 = state2.(TaintStore).getStep() + ) + ) + or + exists(DataFlow::ContentSet c | + DataFlow::readStep(node1, c, node2) and + isRelevantContent0(c) and + state1.(TaintRead).getStep() + 1 = state2.(TaintRead).getStep() + ) + } + + predicate isBarrier(DataFlow::Node n) { + exists(Type t | t = n.(NodeExtended).getType() and not isRelevantType(t)) + } + + DataFlow::FlowFeature getAFeature() { + result instanceof DataFlow::FeatureEqualSourceSinkCallContext + } + } + + module PropagateFlow = TaintTracking::GlobalWithState; + + /** + * Gets the summary model(s) of `api`, if there is flow from parameters to return value or parameter. + */ + string captureThroughFlow0( + DataFlowSummaryTargetApi api, DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt ) { - exists(DataFlow::NodeEx n1, DataFlow::NodeEx n2, DataFlow::ContentSet c | - node1 = n1.asNode() and - node2 = n2.asNode() and - DataFlow::storeEx(n1, c.getAStoreContent(), n2, _, _) and - isRelevantContent0(c) and - ( - state1 instanceof TaintRead and state2.(TaintStore).getStep() = 1 + exists(string input, string output | + getEnclosingCallable(p) = api and + getEnclosingCallable(returnNodeExt) = api and + input = parameterNodeAsInput(p) and + output = getOutput(returnNodeExt) and + input != output and + result = ModelPrintingSummary::asLiftedTaintModel(api, input, output) + ) + } + + /** + * Gets the summary model(s) of `api`, if there is flow from parameters to return value or parameter. + */ + private string captureThroughFlow(DataFlowSummaryTargetApi api) { + exists(DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt | + PropagateFlow::flow(p, returnNodeExt) and + result = captureThroughFlow0(api, p, returnNodeExt) + ) + } + + /** + * Gets the summary model(s) of `api`, if there is flow from parameters to the + * return value or parameter or if `api` is a fluent API. + */ + string captureFlow(DataFlowSummaryTargetApi api) { + result = captureQualifierFlow(api) or + result = captureThroughFlow(api) + } + + /** + * Gets the neutral summary model for `api`, if any. + * A neutral summary model is generated, if we are not generating + * a summary model that applies to `api`. + */ + string captureNoFlow(DataFlowSummaryTargetApi api) { + not exists(DataFlowSummaryTargetApi api0 | + exists(captureFlow(api0)) and api0.lift() = api.lift() + ) and + api.isRelevant() and + result = ModelPrintingSummary::asNeutralSummaryModel(api) + } + } + + /** + * Provides classes and predicates related to capturing summary models + * based on content data flow. + */ + module ContentSensitive { + private import MakeImplContentDataFlow as ContentDataFlow + + private module PropagateContentFlowConfig implements ContentDataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source instanceof DataFlow::ParameterNode and + getEnclosingCallable(source) instanceof DataFlowSummaryTargetApi + } + + predicate isSink(DataFlow::Node sink) { + sink instanceof ReturnNodeExt and + getEnclosingCallable(sink) instanceof DataFlowSummaryTargetApi + } + + predicate isAdditionalFlowStep = isAdditionalContentFlowStep/2; + + predicate isBarrier(DataFlow::Node n) { + exists(Type t | t = n.(NodeExtended).getType() and not isRelevantType(t)) + } + + int accessPathLimit() { result = 2 } + + predicate isRelevantContent(DataFlow::ContentSet s) { isRelevantContent0(s) } + + DataFlow::FlowFeature getAFeature() { + result instanceof DataFlow::FeatureEqualSourceSinkCallContext + } + } + + private module PropagateContentFlow = ContentDataFlow::Global; + + private module ContentModelPrintingInput implements Printing::ModelPrintingSummarySig { + class SummaryApi = DataFlowSummaryTargetApi; + + string getProvenance() { result = "dfc-generated" } + } + + private module ContentModelPrinting = + Printing::ModelPrintingSummary; + + private string getContentOutput(ReturnNodeExt node) { + result = PrintReturnNodeExt::getOutput(node) + } + + /** + * Gets the MaD string representation of the parameter `p` + * when used in content flow. + */ + private string parameterNodeAsContentInput(DataFlow::ParameterNode p) { + result = parameterContentAccess(asParameter(p)) + or + result = qualifierString() and p instanceof InstanceParameterNode + } + + private string getContent(PropagateContentFlow::AccessPath ap, int i) { + result = "." + printContent(ap.getAtIndex(i)) + } + + /** + * Gets the MaD string representation of a store step access path. + */ + private string printStoreAccessPath(PropagateContentFlow::AccessPath ap) { + result = concat(int i | | getContent(ap, i), "" order by i) + } + + /** + * Gets the MaD string representation of a read step access path. + */ + private string printReadAccessPath(PropagateContentFlow::AccessPath ap) { + result = concat(int i | | getContent(ap, i), "" order by i desc) + } + + /** + * Holds if the access path `ap` contains a field or synthetic field access. + */ + private predicate mentionsField(PropagateContentFlow::AccessPath ap) { + isField(ap.getAtIndex(_)) + } + + /** + * Holds if this access path `ap` mentions a callback. + */ + private predicate mentionsCallback(PropagateContentFlow::AccessPath ap) { + isCallback(ap.getAtIndex(_)) + } + + /** + * Holds if the access path `ap` is not a parameter or returnvalue of a callback + * stored in a field. + * + * That is, we currently don't include summaries that rely on parameters or return values + * of callbacks stored in fields. + */ + private predicate validateAccessPath(PropagateContentFlow::AccessPath ap) { + not (mentionsField(ap) and mentionsCallback(ap)) + } + + private predicate apiFlow( + DataFlowSummaryTargetApi api, DataFlow::ParameterNode p, + PropagateContentFlow::AccessPath reads, ReturnNodeExt returnNodeExt, + PropagateContentFlow::AccessPath stores, boolean preservesValue + ) { + PropagateContentFlow::flow(p, reads, returnNodeExt, stores, preservesValue) and + getEnclosingCallable(returnNodeExt) = api and + getEnclosingCallable(p) = api + } + + /** + * A class of APIs relevant for modeling using content flow. + * The following heuristic is applied: + * Content flow is only relevant for an API on a parameter, if + * #content flow from parameter <= 3 + * If an API produces more content flow on a parameter, it is likely that + * 1. Types are not sufficiently constrained on the parameter leading to a combinatorial + * explosion in dispatch and thus in the generated summaries. + * 2. It is a reasonable approximation to use the heuristic based flow + * detection instead, as reads and stores would use a significant + * part of an objects internal state. + */ + private class ContentDataFlowSummaryTargetApi extends DataFlowSummaryTargetApi { + private DataFlow::ParameterNode parameter; + + ContentDataFlowSummaryTargetApi() { + strictcount(string input, string output | + exists( + PropagateContentFlow::AccessPath reads, ReturnNodeExt returnNodeExt, + PropagateContentFlow::AccessPath stores + | + apiFlow(this, parameter, reads, returnNodeExt, stores, _) and + input = parameterNodeAsContentInput(parameter) + printReadAccessPath(reads) and + output = getContentOutput(returnNodeExt) + printStoreAccessPath(stores) + ) + ) <= 3 + } + + /** + * Gets a parameter node of `this` api, where there are less than 3 possible models, if any. + */ + DataFlow::ParameterNode getARelevantParameterNode() { result = parameter } + } + + pragma[nomagic] + private predicate apiContentFlow( + ContentDataFlowSummaryTargetApi api, DataFlow::ParameterNode p, + PropagateContentFlow::AccessPath reads, ReturnNodeExt returnNodeExt, + PropagateContentFlow::AccessPath stores, boolean preservesValue + ) { + PropagateContentFlow::flow(p, reads, returnNodeExt, stores, preservesValue) and + getEnclosingCallable(returnNodeExt) = api and + getEnclosingCallable(p) = api and + p = api.getARelevantParameterNode() + } + + /** + * Holds if any of the content sets in `path` translates into a synthetic field. + */ + private predicate hasSyntheticContent(PropagateContentFlow::AccessPath path) { + exists(getSyntheticName(path.getAtIndex(_))) + } + + private string getHashAtIndex(PropagateContentFlow::AccessPath ap, int i) { + result = getSyntheticName(ap.getAtIndex(i)) + } + + private string getReversedHash(PropagateContentFlow::AccessPath ap) { + result = strictconcat(int i | | getHashAtIndex(ap, i), "." order by i desc) + } + + private string getHash(PropagateContentFlow::AccessPath ap) { + result = strictconcat(int i | | getHashAtIndex(ap, i), "." order by i) + } + + /** + * Gets all access paths that contain the synthetic fields + * from `ap` in reverse order (if `ap` contains at least one synthetic field). + * These are the possible candidates for synthetic path continuations. + */ + private PropagateContentFlow::AccessPath getSyntheticPathCandidate( + PropagateContentFlow::AccessPath ap + ) { + getHash(ap) = getReversedHash(result) + } + + /** + * A module containing predicates for validating access paths containing content sets + * that translates into synthetic fields, when used for generated summary models. + */ + private module AccessPathSyntheticValidation { + /** + * Holds if there exists an API that has content flow from `read` (on type `t1`) + * to `store` (on type `t2`). + */ + private predicate step( + Type t1, PropagateContentFlow::AccessPath read, Type t2, + PropagateContentFlow::AccessPath store + ) { + exists(DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt | + p.(NodeExtended).getType() = t1 and + returnNodeExt.getType() = t2 and + apiContentFlow(_, p, read, returnNodeExt, store, _) + ) + } + + /** + * Holds if there exists an API that has content flow from `read` (on type `t1`) + * to `store` (on type `t2`), where `read` does not have synthetic content and `store` does. + * + * Step A -> Synth. + */ + private predicate synthPathEntry( + Type t1, PropagateContentFlow::AccessPath read, Type t2, + PropagateContentFlow::AccessPath store + ) { + not hasSyntheticContent(read) and + hasSyntheticContent(store) and + step(t1, read, t2, store) + } + + /** + * Holds if there exists an API that has content flow from `read` (on type `t1`) + * to `store` (on type `t2`), where `read` has synthetic content + * and `store` does not. + * + * Step Synth -> A. + */ + private predicate synthPathExit( + Type t1, PropagateContentFlow::AccessPath read, Type t2, + PropagateContentFlow::AccessPath store + ) { + hasSyntheticContent(read) and + not hasSyntheticContent(store) and + step(t1, read, t2, store) + } + + /** + * Holds if there exists a path of steps from `read` to an exit. + * + * read ->* Synth -> A + */ + private predicate reachesSynthExit(Type t, PropagateContentFlow::AccessPath read) { + synthPathExit(t, read, _, _) + or + hasSyntheticContent(read) and + exists(PropagateContentFlow::AccessPath mid, Type midType | + hasSyntheticContent(mid) and + step(t, read, midType, mid) and + reachesSynthExit(midType, getSyntheticPathCandidate(mid)) + ) + } + + /** + * Holds if there exists a path of steps from an entry to `store`. + * + * A -> Synth ->* store + */ + private predicate synthEntryReaches(Type t, PropagateContentFlow::AccessPath store) { + synthPathEntry(_, _, t, store) + or + hasSyntheticContent(store) and + exists(PropagateContentFlow::AccessPath mid, Type midType | + hasSyntheticContent(mid) and + step(midType, mid, t, store) and + synthEntryReaches(midType, getSyntheticPathCandidate(mid)) + ) + } + + /** + * Holds if at least one of the access paths `read` (on type `t1`) and `store` (on type `t2`) + * contain content that will be translated into a synthetic field, when being used in + * a MaD summary model, and if there is a range of APIs, such that + * when chaining their flow access paths, there exists access paths `A` and `B` where + * A ->* read -> store ->* B and where `A` and `B` do not contain content that will + * be translated into a synthetic field. + * + * This is needed because we don't want to include summaries that reads from or + * stores into an "internal" synthetic field. + * + * Example: + * Assume we have a type `t` (in this case `t1` = `t2`) with methods `getX` and + * `setX`, which gets and sets a private field `X` on `t`. + * This would lead to the following content flows + * getX : Argument[this].SyntheticField[t.X] -> ReturnValue. + * setX : Argument[0] -> Argument[this].SyntheticField[t.X] + * As the reads and stores are on synthetic fields we should only make summaries + * if both of these methods exist. + */ + pragma[nomagic] + predicate acceptReadStore( + Type t1, PropagateContentFlow::AccessPath read, Type t2, + PropagateContentFlow::AccessPath store + ) { + synthPathEntry(t1, read, t2, store) and + reachesSynthExit(t2, getSyntheticPathCandidate(store)) + or + exists(PropagateContentFlow::AccessPath store0 | + getSyntheticPathCandidate(store0) = read + | + synthEntryReaches(t1, store0) and synthPathExit(t1, read, t2, store) or - state1.(TaintStore).getStep() + 1 = state2.(TaintStore).getStep() + synthEntryReaches(t1, store0) and + step(t1, read, t2, store) and + reachesSynthExit(t2, getSyntheticPathCandidate(store)) + ) + } + } + + /** + * Holds, if the API `api` has relevant flow from `read` on `p` to `store` on `returnNodeExt`. + * Flow is considered relevant, + * 1. If `read` or `store` do not contain a content set that translates into a synthetic field. + * 2. If `read` or `store` contain a content set that translates into a synthetic field, and if + * the synthetic content is "live" on the relevant declaring type. + */ + private predicate apiRelevantContentFlow( + ContentDataFlowSummaryTargetApi api, DataFlow::ParameterNode p, + PropagateContentFlow::AccessPath read, ReturnNodeExt returnNodeExt, + PropagateContentFlow::AccessPath store, boolean preservesValue + ) { + apiContentFlow(api, p, read, returnNodeExt, store, preservesValue) and + ( + not hasSyntheticContent(read) and not hasSyntheticContent(store) + or + AccessPathSyntheticValidation::acceptReadStore(p.(NodeExtended).getType(), read, + returnNodeExt.getType(), store) + ) + } + + pragma[nomagic] + private predicate captureFlow0( + ContentDataFlowSummaryTargetApi api, string input, string output, boolean preservesValue, + boolean lift + ) { + exists( + DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt, + PropagateContentFlow::AccessPath reads, PropagateContentFlow::AccessPath stores + | + apiRelevantContentFlow(api, p, reads, returnNodeExt, stores, preservesValue) and + input = parameterNodeAsContentInput(p) + printReadAccessPath(reads) and + output = getContentOutput(returnNodeExt) + printStoreAccessPath(stores) and + input != output and + validateAccessPath(reads) and + validateAccessPath(stores) and + ( + if mentionsField(reads) or mentionsField(stores) + then lift = false and api.isRelevant() + else lift = true ) ) - or - exists(DataFlow::ContentSet c | - DataFlow::readStep(node1, c, node2) and - isRelevantContent0(c) and - state1.(TaintRead).getStep() + 1 = state2.(TaintRead).getStep() + } + + /** + * Gets the content based summary model(s) of the API `api` (if there is flow from a parameter to + * the return value or a parameter). `lift` is true, if the model should be lifted, otherwise false. + * + * Models are lifted to the best type in case the read and store access paths do not + * contain a field or synthetic field access. + */ + string captureFlow(ContentDataFlowSummaryTargetApi api, boolean lift) { + exists(string input, string output, boolean preservesValue | + captureFlow0(api, input, output, _, lift) and + preservesValue = max(boolean p | captureFlow0(api, input, output, p, lift)) and + result = ContentModelPrinting::asModel(api, input, output, preservesValue, lift) ) } - - predicate isBarrier(DataFlow::Node n) { - exists(Type t | t = n.(NodeExtended).getType() and not isRelevantType(t)) - } - - DataFlow::FlowFeature getAFeature() { - result instanceof DataFlow::FeatureEqualSourceSinkCallContext - } - } - - module PropagateFlow = TaintTracking::GlobalWithState; - - /** - * Gets the summary model(s) of `api`, if there is flow from parameters to return value or parameter. - */ - string captureThroughFlow0( - DataFlowSummaryTargetApi api, DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt - ) { - exists(string input, string output | - getEnclosingCallable(p) = api and - getEnclosingCallable(returnNodeExt) = api and - input = parameterNodeAsInput(p) and - output = getOutput(returnNodeExt) and - input != output and - result = ModelPrintingSummary::asLiftedTaintModel(api, input, output) - ) } /** - * Gets the summary model(s) of `api`, if there is flow from parameters to return value or parameter. + * Gets the summary model(s) for `api`, if any. `lift` is true if the model is lifted + * otherwise false. + * The following heuristic is applied: + * 1. If content based flow yields at lease one summary for an API, then we use that. + * 2. If content based flow does not yield any summary for an API, then we try and + * generate flow summaries using the heuristic based summary generator. */ - private string captureThroughFlow(DataFlowSummaryTargetApi api) { - exists(DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt | - PropagateFlow::flow(p, returnNodeExt) and - result = captureThroughFlow0(api, p, returnNodeExt) - ) - } - - /** - * Gets the summary model(s) of `api`, if there is flow from parameters to the - * return value or parameter or if `api` is a fluent API. - */ - string captureFlow(DataFlowSummaryTargetApi api) { - result = captureQualifierFlow(api) or - result = captureThroughFlow(api) + string captureFlow(DataFlowSummaryTargetApi api, boolean lift) { + result = ContentSensitive::captureFlow(api, lift) + or + not exists(DataFlowSummaryTargetApi api0 | + (api0 = api or api.lift() = api0) and + exists(ContentSensitive::captureFlow(api0, false)) + or + api0.lift() = api.lift() and + exists(ContentSensitive::captureFlow(api0, true)) + ) and + result = Heuristic::captureFlow(api) and + lift = true } /** * Gets the neutral summary model for `api`, if any. * A neutral summary model is generated, if we are not generating - * a summary model that applies to `api`. + * a mixed summary model that applies to `api`. */ - string captureNoFlow(DataFlowSummaryTargetApi api) { - not exists(DataFlowSummaryTargetApi api0 | - exists(captureFlow(api0)) and api0.lift() = api.lift() + string captureNeutral(DataFlowSummaryTargetApi api) { + not exists(DataFlowSummaryTargetApi api0, boolean lift | + exists(captureFlow(api0, lift)) and + ( + lift = false and + (api0 = api or api0 = api.lift()) + or + lift = true and api0.lift() = api.lift() + ) ) and api.isRelevant() and - result = ModelPrintingSummary::asNeutralSummaryModel(api) - } - - /** - * A data flow configuration used for finding new sources. - * The sources are the already known existing sources and the sinks are the API return nodes. - * - * This can be used to generate Source summaries for an API, if the API expose an already known source - * via its return (then the API itself becomes a source). - */ - module PropagateFromSourceConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - exists(string kind | - isRelevantSourceKind(kind) and - sourceNode(source, kind) - ) - } - - predicate isSink(DataFlow::Node sink) { - sink instanceof ReturnNodeExt and - getEnclosingCallable(sink) instanceof DataFlowSourceTargetApi - } - - DataFlow::FlowFeature getAFeature() { result instanceof DataFlow::FeatureHasSinkCallContext } - - predicate isBarrier(DataFlow::Node n) { - exists(Type t | t = n.(NodeExtended).getType() and not isRelevantType(t)) - } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - isRelevantTaintStep(node1, node2) - } - } - - private module PropagateFromSource = TaintTracking::Global; - - /** - * Gets the source model(s) of `api`, if there is flow from an existing known source to the return of `api`. - */ - string captureSource(DataFlowSourceTargetApi api) { - exists(NodeExtended source, ReturnNodeExt sink, string kind | - PropagateFromSource::flow(source, sink) and - sourceNode(source, kind) and - api = getEnclosingCallable(sink) and - not irrelevantSourceSinkApi(getEnclosingCallable(source), api) and - result = ModelPrintingSourceOrSink::asSourceModel(api, getOutput(sink), kind) - ) - } - - /** - * A data flow configuration used for finding new sinks. - * The sources are the parameters of the API and the fields of the enclosing type. - * - * This can be used to generate Sink summaries for APIs, if the API propagates a parameter (or enclosing type field) - * into an existing known sink (then the API itself becomes a sink). - */ - module PropagateToSinkConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - apiSource(source) and - getEnclosingCallable(source) instanceof DataFlowSinkTargetApi - } - - predicate isSink(DataFlow::Node sink) { - exists(string kind | isRelevantSinkKind(kind) and sinkNode(sink, kind)) - } - - predicate isBarrier(DataFlow::Node node) { - exists(Type t | t = node.(NodeExtended).getType() and not isRelevantType(t)) - or - sinkModelSanitizer(node) - } - - DataFlow::FlowFeature getAFeature() { - result instanceof DataFlow::FeatureHasSourceCallContext - } - - predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - isRelevantTaintStep(node1, node2) - } - } - - private module PropagateToSink = TaintTracking::Global; - - /** - * Gets the sink model(s) of `api`, if there is flow from a parameter to an existing known sink. - */ - string captureSink(DataFlowSinkTargetApi api) { - exists(NodeExtended src, NodeExtended sink, string kind | - PropagateToSink::flow(src, sink) and - sinkNode(sink, kind) and - api = getEnclosingCallable(src) and - result = ModelPrintingSourceOrSink::asSinkModel(api, asInputArgument(src), kind) - ) + result = Heuristic::ModelPrintingSummary::asNeutralSummaryModel(api) } } /** - * Provides classes and predicates related to capturing summary models - * based on content data flow. + * Holds if data can flow from `node1` to `node2` either via a read or a write of an intermediate field `f`. */ - module ContentSensitive { - private import MakeImplContentDataFlow as ContentDataFlow - - private module PropagateContentFlowConfig implements ContentDataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - source instanceof DataFlow::ParameterNode and - getEnclosingCallable(source) instanceof DataFlowSummaryTargetApi - } - - predicate isSink(DataFlow::Node sink) { - sink instanceof ReturnNodeExt and - getEnclosingCallable(sink) instanceof DataFlowSummaryTargetApi - } - - predicate isAdditionalFlowStep = isAdditionalContentFlowStep/2; - - predicate isBarrier(DataFlow::Node n) { - exists(Type t | t = n.(NodeExtended).getType() and not isRelevantType(t)) - } - - int accessPathLimit() { result = 2 } - - predicate isRelevantContent(DataFlow::ContentSet s) { isRelevantContent0(s) } - - DataFlow::FlowFeature getAFeature() { - result instanceof DataFlow::FeatureEqualSourceSinkCallContext - } - } - - private module PropagateContentFlow = ContentDataFlow::Global; - - private module ContentModelPrintingInput implements Printing::ModelPrintingSummarySig { - class SummaryApi = DataFlowSummaryTargetApi; - - string getProvenance() { result = "dfc-generated" } - } - - private module ContentModelPrinting = Printing::ModelPrintingSummary; - - private string getContentOutput(ReturnNodeExt node) { - result = PrintReturnNodeExt::getOutput(node) - } - - /** - * Gets the MaD string representation of the parameter `p` - * when used in content flow. - */ - private string parameterNodeAsContentInput(DataFlow::ParameterNode p) { - result = parameterContentAccess(asParameter(p)) - or - result = qualifierString() and p instanceof InstanceParameterNode - } - - private string getContent(PropagateContentFlow::AccessPath ap, int i) { - result = "." + printContent(ap.getAtIndex(i)) - } - - /** - * Gets the MaD string representation of a store step access path. - */ - private string printStoreAccessPath(PropagateContentFlow::AccessPath ap) { - result = concat(int i | | getContent(ap, i), "" order by i) - } - - /** - * Gets the MaD string representation of a read step access path. - */ - private string printReadAccessPath(PropagateContentFlow::AccessPath ap) { - result = concat(int i | | getContent(ap, i), "" order by i desc) - } - - /** - * Holds if the access path `ap` contains a field or synthetic field access. - */ - private predicate mentionsField(PropagateContentFlow::AccessPath ap) { - isField(ap.getAtIndex(_)) - } - - /** - * Holds if this access path `ap` mentions a callback. - */ - private predicate mentionsCallback(PropagateContentFlow::AccessPath ap) { - isCallback(ap.getAtIndex(_)) - } - - /** - * Holds if the access path `ap` is not a parameter or returnvalue of a callback - * stored in a field. - * - * That is, we currently don't include summaries that rely on parameters or return values - * of callbacks stored in fields. - */ - private predicate validateAccessPath(PropagateContentFlow::AccessPath ap) { - not (mentionsField(ap) and mentionsCallback(ap)) - } - - private predicate apiFlow( - DataFlowSummaryTargetApi api, DataFlow::ParameterNode p, - PropagateContentFlow::AccessPath reads, ReturnNodeExt returnNodeExt, - PropagateContentFlow::AccessPath stores, boolean preservesValue - ) { - PropagateContentFlow::flow(p, reads, returnNodeExt, stores, preservesValue) and - getEnclosingCallable(returnNodeExt) = api and - getEnclosingCallable(p) = api - } - - /** - * A class of APIs relevant for modeling using content flow. - * The following heuristic is applied: - * Content flow is only relevant for an API on a parameter, if - * #content flow from parameter <= 3 - * If an API produces more content flow on a parameter, it is likely that - * 1. Types are not sufficiently constrained on the parameter leading to a combinatorial - * explosion in dispatch and thus in the generated summaries. - * 2. It is a reasonable approximation to use the heuristic based flow - * detection instead, as reads and stores would use a significant - * part of an objects internal state. - */ - private class ContentDataFlowSummaryTargetApi extends DataFlowSummaryTargetApi { - private DataFlow::ParameterNode parameter; - - ContentDataFlowSummaryTargetApi() { - strictcount(string input, string output | - exists( - PropagateContentFlow::AccessPath reads, ReturnNodeExt returnNodeExt, - PropagateContentFlow::AccessPath stores - | - apiFlow(this, parameter, reads, returnNodeExt, stores, _) and - input = parameterNodeAsContentInput(parameter) + printReadAccessPath(reads) and - output = getContentOutput(returnNodeExt) + printStoreAccessPath(stores) - ) - ) <= 3 - } - - /** - * Gets a parameter node of `this` api, where there are less than 3 possible models, if any. - */ - DataFlow::ParameterNode getARelevantParameterNode() { result = parameter } - } - - pragma[nomagic] - private predicate apiContentFlow( - ContentDataFlowSummaryTargetApi api, DataFlow::ParameterNode p, - PropagateContentFlow::AccessPath reads, ReturnNodeExt returnNodeExt, - PropagateContentFlow::AccessPath stores, boolean preservesValue - ) { - PropagateContentFlow::flow(p, reads, returnNodeExt, stores, preservesValue) and - getEnclosingCallable(returnNodeExt) = api and - getEnclosingCallable(p) = api and - p = api.getARelevantParameterNode() - } - - /** - * Holds if any of the content sets in `path` translates into a synthetic field. - */ - private predicate hasSyntheticContent(PropagateContentFlow::AccessPath path) { - exists(getSyntheticName(path.getAtIndex(_))) - } - - private string getHashAtIndex(PropagateContentFlow::AccessPath ap, int i) { - result = getSyntheticName(ap.getAtIndex(i)) - } - - private string getReversedHash(PropagateContentFlow::AccessPath ap) { - result = strictconcat(int i | | getHashAtIndex(ap, i), "." order by i desc) - } - - private string getHash(PropagateContentFlow::AccessPath ap) { - result = strictconcat(int i | | getHashAtIndex(ap, i), "." order by i) - } - - /** - * Gets all access paths that contain the synthetic fields - * from `ap` in reverse order (if `ap` contains at least one synthetic field). - * These are the possible candidates for synthetic path continuations. - */ - private PropagateContentFlow::AccessPath getSyntheticPathCandidate( - PropagateContentFlow::AccessPath ap - ) { - getHash(ap) = getReversedHash(result) - } - - /** - * A module containing predicates for validating access paths containing content sets - * that translates into synthetic fields, when used for generated summary models. - */ - private module AccessPathSyntheticValidation { - /** - * Holds if there exists an API that has content flow from `read` (on type `t1`) - * to `store` (on type `t2`). - */ - private predicate step( - Type t1, PropagateContentFlow::AccessPath read, Type t2, - PropagateContentFlow::AccessPath store - ) { - exists(DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt | - p.(NodeExtended).getType() = t1 and - returnNodeExt.getType() = t2 and - apiContentFlow(_, p, read, returnNodeExt, store, _) - ) - } - - /** - * Holds if there exists an API that has content flow from `read` (on type `t1`) - * to `store` (on type `t2`), where `read` does not have synthetic content and `store` does. - * - * Step A -> Synth. - */ - private predicate synthPathEntry( - Type t1, PropagateContentFlow::AccessPath read, Type t2, - PropagateContentFlow::AccessPath store - ) { - not hasSyntheticContent(read) and - hasSyntheticContent(store) and - step(t1, read, t2, store) - } - - /** - * Holds if there exists an API that has content flow from `read` (on type `t1`) - * to `store` (on type `t2`), where `read` has synthetic content - * and `store` does not. - * - * Step Synth -> A. - */ - private predicate synthPathExit( - Type t1, PropagateContentFlow::AccessPath read, Type t2, - PropagateContentFlow::AccessPath store - ) { - hasSyntheticContent(read) and - not hasSyntheticContent(store) and - step(t1, read, t2, store) - } - - /** - * Holds if there exists a path of steps from `read` to an exit. - * - * read ->* Synth -> A - */ - private predicate reachesSynthExit(Type t, PropagateContentFlow::AccessPath read) { - synthPathExit(t, read, _, _) - or - hasSyntheticContent(read) and - exists(PropagateContentFlow::AccessPath mid, Type midType | - hasSyntheticContent(mid) and - step(t, read, midType, mid) and - reachesSynthExit(midType, getSyntheticPathCandidate(mid)) - ) - } - - /** - * Holds if there exists a path of steps from an entry to `store`. - * - * A -> Synth ->* store - */ - private predicate synthEntryReaches(Type t, PropagateContentFlow::AccessPath store) { - synthPathEntry(_, _, t, store) - or - hasSyntheticContent(store) and - exists(PropagateContentFlow::AccessPath mid, Type midType | - hasSyntheticContent(mid) and - step(midType, mid, t, store) and - synthEntryReaches(midType, getSyntheticPathCandidate(mid)) - ) - } - - /** - * Holds if at least one of the access paths `read` (on type `t1`) and `store` (on type `t2`) - * contain content that will be translated into a synthetic field, when being used in - * a MaD summary model, and if there is a range of APIs, such that - * when chaining their flow access paths, there exists access paths `A` and `B` where - * A ->* read -> store ->* B and where `A` and `B` do not contain content that will - * be translated into a synthetic field. - * - * This is needed because we don't want to include summaries that reads from or - * stores into an "internal" synthetic field. - * - * Example: - * Assume we have a type `t` (in this case `t1` = `t2`) with methods `getX` and - * `setX`, which gets and sets a private field `X` on `t`. - * This would lead to the following content flows - * getX : Argument[this].SyntheticField[t.X] -> ReturnValue. - * setX : Argument[0] -> Argument[this].SyntheticField[t.X] - * As the reads and stores are on synthetic fields we should only make summaries - * if both of these methods exist. - */ - pragma[nomagic] - predicate acceptReadStore( - Type t1, PropagateContentFlow::AccessPath read, Type t2, - PropagateContentFlow::AccessPath store - ) { - synthPathEntry(t1, read, t2, store) and - reachesSynthExit(t2, getSyntheticPathCandidate(store)) - or - exists(PropagateContentFlow::AccessPath store0 | getSyntheticPathCandidate(store0) = read | - synthEntryReaches(t1, store0) and synthPathExit(t1, read, t2, store) - or - synthEntryReaches(t1, store0) and - step(t1, read, t2, store) and - reachesSynthExit(t2, getSyntheticPathCandidate(store)) - ) - } - } - - /** - * Holds, if the API `api` has relevant flow from `read` on `p` to `store` on `returnNodeExt`. - * Flow is considered relevant, - * 1. If `read` or `store` do not contain a content set that translates into a synthetic field. - * 2. If `read` or `store` contain a content set that translates into a synthetic field, and if - * the synthetic content is "live" on the relevant declaring type. - */ - private predicate apiRelevantContentFlow( - ContentDataFlowSummaryTargetApi api, DataFlow::ParameterNode p, - PropagateContentFlow::AccessPath read, ReturnNodeExt returnNodeExt, - PropagateContentFlow::AccessPath store, boolean preservesValue - ) { - apiContentFlow(api, p, read, returnNodeExt, store, preservesValue) and - ( - not hasSyntheticContent(read) and not hasSyntheticContent(store) - or - AccessPathSyntheticValidation::acceptReadStore(p.(NodeExtended).getType(), read, - returnNodeExt.getType(), store) - ) - } - - pragma[nomagic] - private predicate captureFlow0( - ContentDataFlowSummaryTargetApi api, string input, string output, boolean preservesValue, - boolean lift - ) { - exists( - DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt, - PropagateContentFlow::AccessPath reads, PropagateContentFlow::AccessPath stores - | - apiRelevantContentFlow(api, p, reads, returnNodeExt, stores, preservesValue) and - input = parameterNodeAsContentInput(p) + printReadAccessPath(reads) and - output = getContentOutput(returnNodeExt) + printStoreAccessPath(stores) and - input != output and - validateAccessPath(reads) and - validateAccessPath(stores) and - ( - if mentionsField(reads) or mentionsField(stores) - then lift = false and api.isRelevant() - else lift = true - ) - ) - } - - /** - * Gets the content based summary model(s) of the API `api` (if there is flow from a parameter to - * the return value or a parameter). `lift` is true, if the model should be lifted, otherwise false. - * - * Models are lifted to the best type in case the read and store access paths do not - * contain a field or synthetic field access. - */ - string captureFlow(ContentDataFlowSummaryTargetApi api, boolean lift) { - exists(string input, string output, boolean preservesValue | - captureFlow0(api, input, output, _, lift) and - preservesValue = max(boolean p | captureFlow0(api, input, output, p, lift)) and - result = ContentModelPrinting::asModel(api, input, output, preservesValue, lift) - ) - } - } - - /** - * Gets the summary model(s) for `api`, if any. `lift` is true if the model is lifted - * otherwise false. - * The following heuristic is applied: - * 1. If content based flow yields at lease one summary for an API, then we use that. - * 2. If content based flow does not yield any summary for an API, then we try and - * generate flow summaries using the heuristic based summary generator. - */ - string captureFlow(DataFlowSummaryTargetApi api, boolean lift) { - result = ContentSensitive::captureFlow(api, lift) + private predicate isRelevantTaintStep(DataFlow::Node node1, DataFlow::Node node2) { + exists(DataFlow::ContentSet f | + DataFlow::readStep(node1, f, node2) and + // Partially restrict the content types used for intermediate steps. + (not exists(getUnderlyingContentType(f)) or isRelevantTypeInContent(f)) + ) or - not exists(DataFlowSummaryTargetApi api0 | - (api0 = api or api.lift() = api0) and - exists(ContentSensitive::captureFlow(api0, false)) - or - api0.lift() = api.lift() and - exists(ContentSensitive::captureFlow(api0, true)) - ) and - result = Heuristic::captureFlow(api) and - lift = true + exists(DataFlow::ContentSet f | DataFlow::storeStep(node1, f, node2) | containerContent(f)) } /** - * Gets the neutral summary model for `api`, if any. - * A neutral summary model is generated, if we are not generating - * a mixed summary model that applies to `api`. + * Provides language-specific source model generator parameters. */ - string captureNeutral(DataFlowSummaryTargetApi api) { - not exists(DataFlowSummaryTargetApi api0, boolean lift | - exists(captureFlow(api0, lift)) and - ( - lift = false and - (api0 = api or api0 = api.lift()) - or - lift = true and api0.lift() = api.lift() - ) - ) and - api.isRelevant() and - result = Heuristic::ModelPrintingSummary::asNeutralSummaryModel(api) + signature module SourceModelGeneratorInputSig { + /** + * A class of callables that are potentially relevant for generating source models. + */ + class SourceTargetApi extends Callable; + + /** + * Holds if it is not relevant to generate a source model for `api`, even + * if flow is detected from a node within `source` to a sink within `api`. + */ + bindingset[sourceEnclosing, api] + predicate irrelevantSourceSinkApi(Callable sourceEnclosing, SourceTargetApi api); + + /** + * Holds if `kind` is a relevant source kind for creating source models. + */ + bindingset[kind] + predicate isRelevantSourceKind(string kind); + + /** + * Holds if `node` is specified as a source with the given kind in a MaD flow + * model. + */ + predicate sourceNode(Lang::Node node, string kind); + } + + /** + * Provides language-specific sink model generator parameters. + */ + signature module SinkModelGeneratorInputSig { + /** + * A class of callables that are potentially relevant for generating sink models. + */ + class SinkTargetApi extends Callable; + + /** + * Gets the MaD input string representation of `source`. + */ + string getInputArgument(Lang::Node source); + + /** + * Holds if `node` is a sanitizer for sink model construction. + */ + predicate sinkModelSanitizer(Lang::Node node); + + /** + * Holds if `source` is an api entrypoint relevant for creating sink models. + */ + predicate apiSource(Lang::Node source); + + /** + * Holds if `kind` is a relevant sink kind for creating sink models. + */ + bindingset[kind] + predicate isRelevantSinkKind(string kind); + + /** + * Holds if `node` is specified as a sink with the given kind in a MaD flow + * model. + */ + predicate sinkNode(Lang::Node node, string kind); + } + + /** + * Make a source model generator. + */ + module MakeSourceModelGenerator { + private import SourceModelGeneratorInput + + class DataFlowSourceTargetApi = SourceTargetApi; + + /** + * Provides classes and predicates related to capturing source models + * based on heuristic data flow. + */ + module Heuristic { + private module ModelPrintingSourceOrSinkInput implements + Printing::ModelPrintingSourceOrSinkSig + { + class SourceOrSinkApi = DataFlowSourceTargetApi; + + string getProvenance() { result = "df-generated" } + } + + private module ModelPrintingSourceOrSink = + Printing::ModelPrintingSourceOrSink; + + /** + * A data flow configuration used for finding new sources. + * The sources are the already known existing sources and the sinks are the API return nodes. + * + * This can be used to generate Source summaries for an API, if the API expose an already known source + * via its return (then the API itself becomes a source). + */ + module PropagateFromSourceConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + exists(string kind | + isRelevantSourceKind(kind) and + sourceNode(source, kind) + ) + } + + predicate isSink(DataFlow::Node sink) { + sink instanceof ReturnNodeExt and + getEnclosingCallable(sink) instanceof DataFlowSourceTargetApi + } + + DataFlow::FlowFeature getAFeature() { + result instanceof DataFlow::FeatureHasSinkCallContext + } + + predicate isBarrier(DataFlow::Node n) { + exists(Type t | t = n.(NodeExtended).getType() and not isRelevantType(t)) + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + isRelevantTaintStep(node1, node2) + } + } + + private module PropagateFromSource = TaintTracking::Global; + + /** + * Gets the source model(s) of `api`, if there is flow from an existing known source to the return of `api`. + */ + string captureSource(DataFlowSourceTargetApi api) { + exists(NodeExtended source, ReturnNodeExt sink, string kind | + PropagateFromSource::flow(source, sink) and + sourceNode(source, kind) and + api = getEnclosingCallable(sink) and + not irrelevantSourceSinkApi(getEnclosingCallable(source), api) and + result = ModelPrintingSourceOrSink::asSourceModel(api, getOutput(sink), kind) + ) + } + } + } + + /** + * Make a sink model generator. + */ + module MakeSinkModelGenerator { + private import SinkModelGeneratorInput + + class DataFlowSinkTargetApi = SinkTargetApi; + + /** + * Provides classes and predicates related to capturing sink models + * based on heuristic data flow. + */ + module Heuristic { + private module ModelPrintingSourceOrSinkInput implements + Printing::ModelPrintingSourceOrSinkSig + { + class SourceOrSinkApi = DataFlowSinkTargetApi; + + string getProvenance() { result = "df-generated" } + } + + private module ModelPrintingSourceOrSink = + Printing::ModelPrintingSourceOrSink; + + /** + * Gets the MaD input string representation of `source`. + */ + private string asInputArgument(NodeExtended source) { result = getInputArgument(source) } + + /** + * A data flow configuration used for finding new sinks. + * The sources are the parameters of the API and the fields of the enclosing type. + * + * This can be used to generate Sink summaries for APIs, if the API propagates a parameter (or enclosing type field) + * into an existing known sink (then the API itself becomes a sink). + */ + module PropagateToSinkConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + apiSource(source) and + getEnclosingCallable(source) instanceof DataFlowSinkTargetApi + } + + predicate isSink(DataFlow::Node sink) { + exists(string kind | isRelevantSinkKind(kind) and sinkNode(sink, kind)) + } + + predicate isBarrier(DataFlow::Node node) { + exists(Type t | t = node.(NodeExtended).getType() and not isRelevantType(t)) + or + sinkModelSanitizer(node) + } + + DataFlow::FlowFeature getAFeature() { + result instanceof DataFlow::FeatureHasSourceCallContext + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + isRelevantTaintStep(node1, node2) + } + } + + private module PropagateToSink = TaintTracking::Global; + + /** + * Gets the sink model(s) of `api`, if there is flow from a parameter to an existing known sink. + */ + string captureSink(DataFlowSinkTargetApi api) { + exists(NodeExtended src, NodeExtended sink, string kind | + PropagateToSink::flow(src, sink) and + sinkNode(sink, kind) and + api = getEnclosingCallable(src) and + result = ModelPrintingSourceOrSink::asSinkModel(api, asInputArgument(src), kind) + ) + } + } } } From 0016fbfa213c4bc04d9239cab76c6233e7ac5982 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 25 Apr 2025 09:34:33 +0200 Subject: [PATCH 129/656] C#: Re-factor implementation to use the new model generator interface. --- .../CaptureContentSummaryModels.ql | 1 + .../modelgenerator/CaptureNeutralModels.ql | 1 + .../utils/modelgenerator/CaptureSinkModels.ql | 1 + .../modelgenerator/CaptureSourceModels.ql | 1 + .../modelgenerator/CaptureSummaryModels.ql | 1 + .../debug/CaptureSummaryModelsPartialPath.ql | 1 + .../debug/CaptureSummaryModelsPath.ql | 1 + .../modelgenerator/internal/CaptureModels.qll | 404 +++++++++--------- .../internal/CaptureModelsPrinting.qll | 2 +- .../CaptureTypeBasedSummaryModels.qll | 5 +- .../dataflow/CaptureContentSummaryModels.ql | 1 + .../dataflow/CaptureHeuristicSummaryModels.ql | 1 + .../dataflow/CaptureNeutralModels.ql | 1 + .../dataflow/CaptureSinkModels.ql | 1 + .../dataflow/CaptureSourceModels.ql | 1 + 15 files changed, 222 insertions(+), 201 deletions(-) diff --git a/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index 039c96a9a0b..4d56c922a39 100644 --- a/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string flow where flow = ContentSensitive::captureFlow(api, _) diff --git a/csharp/ql/src/utils/modelgenerator/CaptureNeutralModels.ql b/csharp/ql/src/utils/modelgenerator/CaptureNeutralModels.ql index 2afb0ea0284..c74240bedea 100644 --- a/csharp/ql/src/utils/modelgenerator/CaptureNeutralModels.ql +++ b/csharp/ql/src/utils/modelgenerator/CaptureNeutralModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string noflow where noflow = captureNeutral(api) diff --git a/csharp/ql/src/utils/modelgenerator/CaptureSinkModels.ql b/csharp/ql/src/utils/modelgenerator/CaptureSinkModels.ql index f4c9405c96a..f0d3294cd8a 100644 --- a/csharp/ql/src/utils/modelgenerator/CaptureSinkModels.ql +++ b/csharp/ql/src/utils/modelgenerator/CaptureSinkModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SinkModels from DataFlowSinkTargetApi api, string sink where sink = Heuristic::captureSink(api) diff --git a/csharp/ql/src/utils/modelgenerator/CaptureSourceModels.ql b/csharp/ql/src/utils/modelgenerator/CaptureSourceModels.ql index 70f853b35a9..97688d6eb42 100644 --- a/csharp/ql/src/utils/modelgenerator/CaptureSourceModels.ql +++ b/csharp/ql/src/utils/modelgenerator/CaptureSourceModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SourceModels from DataFlowSourceTargetApi api, string source where source = Heuristic::captureSource(api) diff --git a/csharp/ql/src/utils/modelgenerator/CaptureSummaryModels.ql b/csharp/ql/src/utils/modelgenerator/CaptureSummaryModels.ql index a0193397eb2..61656c200ad 100644 --- a/csharp/ql/src/utils/modelgenerator/CaptureSummaryModels.ql +++ b/csharp/ql/src/utils/modelgenerator/CaptureSummaryModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string flow where flow = captureFlow(api, _) diff --git a/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql b/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql index beb14cd8e62..60d7b42a46d 100644 --- a/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql +++ b/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql @@ -10,6 +10,7 @@ import csharp import utils.modelgenerator.internal.CaptureModels +import SummaryModels import PartialFlow::PartialPathGraph int explorationLimit() { result = 3 } diff --git a/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql b/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql index e3de78767ea..a53958ad0e6 100644 --- a/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql +++ b/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql @@ -10,6 +10,7 @@ import csharp import utils.modelgenerator.internal.CaptureModels +import SummaryModels import Heuristic import PropagateFlow::PathGraph diff --git a/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index ce83369df07..7bf8a248a6f 100644 --- a/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -15,7 +15,41 @@ private import semmle.code.csharp.frameworks.System private import semmle.code.csharp.Location private import codeql.mad.modelgenerator.internal.ModelGeneratorImpl -module ModelGeneratorInput implements ModelGeneratorInputSig { +private predicate irrelevantAccessor(CS::Accessor a) { + a.getDeclaration().(CS::Property).isReadWrite() +} + +private predicate isUninterestingForModels(Callable api) { + api.getDeclaringType().getNamespace().getFullName() = "" + or + api instanceof CS::ConversionOperator + or + api instanceof Util::MainMethod + or + api instanceof CS::Destructor + or + api instanceof CS::AnonymousFunctionExpr + or + api.(CS::Constructor).isParameterless() + or + exists(Type decl | decl = api.getDeclaringType() | + decl instanceof SystemObjectClass or + decl instanceof SystemValueTypeClass + ) + or + // Disregard properties that have both a get and a set accessor, + // which implicitly means auto implemented properties. + irrelevantAccessor(api) +} + +private predicate relevant(Callable api) { + [api.(CS::Modifiable), api.(CS::Accessor).getDeclaration()].isEffectivelyPublic() and + api.fromSource() and + api.isUnboundDeclaration() and + not isUninterestingForModels(api) +} + +module ModelGeneratorCommonInput implements ModelGeneratorCommonInputSig { class Type = CS::Type; class Parameter = CS::Parameter; @@ -24,127 +58,8 @@ module ModelGeneratorInput implements ModelGeneratorInputSig`. - */ - private predicate isHigherOrder(Callable api) { - exists(Type t | t = api.getAParameter().getType().getUnboundDeclaration() | - t instanceof SystemLinqExpressions::DelegateExtType - ) - } - - private predicate irrelevantAccessor(CS::Accessor a) { - a.getDeclaration().(CS::Property).isReadWrite() - } - - private predicate isUninterestingForModels(Callable api) { - api.getDeclaringType().getNamespace().getFullName() = "" - or - api instanceof CS::ConversionOperator - or - api instanceof Util::MainMethod - or - api instanceof CS::Destructor - or - api instanceof CS::AnonymousFunctionExpr - or - api.(CS::Constructor).isParameterless() - or - exists(Type decl | decl = api.getDeclaringType() | - decl instanceof SystemObjectClass or - decl instanceof SystemValueTypeClass - ) - or - // Disregard properties that have both a get and a set accessor, - // which implicitly means auto implemented properties. - irrelevantAccessor(api) - } - - private predicate relevant(Callable api) { - [api.(CS::Modifiable), api.(CS::Accessor).getDeclaration()].isEffectivelyPublic() and - api.fromSource() and - api.isUnboundDeclaration() and - not isUninterestingForModels(api) - } - - private Callable getARelevantOverrideeOrImplementee(Overridable m) { - m.overridesOrImplements(result) and relevant(result) - } - - /** - * Gets the super implementation of `api` if it is relevant. - * If such a super implementation does not exist, returns `api` if it is relevant. - */ - private Callable liftedImpl(Callable api) { - ( - result = getARelevantOverrideeOrImplementee(api) - or - result = api and relevant(api) - ) and - not exists(getARelevantOverrideeOrImplementee(result)) - } - - private predicate hasManualSummaryModel(Callable api) { - api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.applyManualModel()) or - api = any(FlowSummaryImpl::Public::NeutralSummaryCallable sc | sc.hasManualModel()) - } - - private predicate hasManualSourceModel(Callable api) { - api = any(ExternalFlow::SourceCallable sc | sc.hasManualModel()) or - api = any(FlowSummaryImpl::Public::NeutralSourceCallable sc | sc.hasManualModel()) - } - - private predicate hasManualSinkModel(Callable api) { - api = any(ExternalFlow::SinkCallable sc | sc.hasManualModel()) or - api = any(FlowSummaryImpl::Public::NeutralSinkCallable sc | sc.hasManualModel()) - } - - predicate isUninterestingForDataFlowModels(Callable api) { none() } - - predicate isUninterestingForHeuristicDataFlowModels(Callable api) { isHigherOrder(api) } - - class SourceOrSinkTargetApi extends Callable { - SourceOrSinkTargetApi() { relevant(this) } - } - - class SinkTargetApi extends SourceOrSinkTargetApi { - SinkTargetApi() { not hasManualSinkModel(this) } - } - - class SourceTargetApi extends SourceOrSinkTargetApi { - SourceTargetApi() { - not hasManualSourceModel(this) and - // Do not generate source models for overridable callables - // as virtual dispatch implies that too many methods - // will be considered sources. - not this.(Overridable).overridesOrImplements(_) - } - } - - class SummaryTargetApi extends Callable { - private Callable lift; - - SummaryTargetApi() { - lift = liftedImpl(this) and - not hasManualSummaryModel(lift) - } - - Callable lift() { result = lift } - - predicate isRelevant() { - relevant(this) and - not hasManualSummaryModel(this) - } - } - /** * Holds if `t` is a type that is generally used for bulk data in collection types. * Eg. char[] is roughly equivalent to string and thus a highly @@ -205,6 +120,8 @@ module ModelGeneratorInput implements ModelGeneratorInputSig { @@ -251,63 +166,94 @@ module ModelGeneratorInput implements ModelGeneratorInputSig + +module SummaryModelGeneratorInput implements SummaryModelGeneratorInputSig { + Callable getAsExprEnclosingCallable(NodeExtended node) { + result = node.asExpr().getEnclosingCallable() + } + + Parameter asParameter(NodeExtended node) { result = node.asParameter() } + + /** + * Holds if any of the parameters of `api` are `System.Func<>`. + */ + private predicate isHigherOrder(Callable api) { + exists(Type t | t = api.getAParameter().getType().getUnboundDeclaration() | + t instanceof SystemLinqExpressions::DelegateExtType + ) + } + + private Callable getARelevantOverrideeOrImplementee(Overridable m) { + m.overridesOrImplements(result) and relevant(result) + } + + /** + * Gets the super implementation of `api` if it is relevant. + * If such a super implementation does not exist, returns `api` if it is relevant. + */ + private Callable liftedImpl(Callable api) { + ( + result = getARelevantOverrideeOrImplementee(api) + or + result = api and relevant(api) + ) and + not exists(getARelevantOverrideeOrImplementee(result)) + } + + private predicate hasManualSummaryModel(Callable api) { + api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.applyManualModel()) or + api = any(FlowSummaryImpl::Public::NeutralSummaryCallable sc | sc.hasManualModel()) + } + + predicate isUninterestingForDataFlowModels(Callable api) { none() } + + predicate isUninterestingForHeuristicDataFlowModels(Callable api) { isHigherOrder(api) } + + class SummaryTargetApi extends Callable { + private Callable lift; + + SummaryTargetApi() { + lift = liftedImpl(this) and + not hasManualSummaryModel(lift) + } + + Callable lift() { result = lift } + + predicate isRelevant() { + relevant(this) and + not hasManualSummaryModel(this) + } + } + predicate isAdditionalContentFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { TaintTrackingPrivate::defaultAdditionalTaintStep(nodeFrom, nodeTo, _) and not nodeTo.asExpr() instanceof CS::ElementAccess and @@ -370,34 +316,96 @@ module ModelGeneratorInput implements ModelGeneratorInputSig +import MakeSummaryModelGenerator as SummaryModels +import MakeSourceModelGenerator as SourceModels +import MakeSinkModelGenerator as SinkModels diff --git a/csharp/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll b/csharp/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll index 97e58d439f0..52611279b27 100644 --- a/csharp/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll +++ b/csharp/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll @@ -1,6 +1,6 @@ private import csharp as CS private import codeql.mad.modelgenerator.internal.ModelPrinting -private import CaptureModels::ModelGeneratorInput as ModelGeneratorInput +private import CaptureModels::ModelGeneratorCommonInput as ModelGeneratorInput private module ModelPrintingLang implements ModelPrintingLangSig { class Callable = CS::Callable; diff --git a/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll b/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll index 62286c27888..baba462c8a2 100644 --- a/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll +++ b/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll @@ -2,7 +2,8 @@ private import csharp private import semmle.code.csharp.frameworks.system.collections.Generic as GenericCollections private import semmle.code.csharp.dataflow.internal.DataFlowPrivate private import semmle.code.csharp.frameworks.system.linq.Expressions -private import CaptureModels::ModelGeneratorInput as ModelGeneratorInput +private import CaptureModels::ModelGeneratorCommonInput as ModelGeneratorInput +private import CaptureModels::SummaryModelGeneratorInput as SummaryModelGeneratorInput private import CaptureModelsPrinting /** @@ -189,7 +190,7 @@ private module Printing = ModelPrintingSummary; * A class of callables that are relevant generating summaries for based * on the Theorems for Free approach. */ -class TypeBasedFlowTargetApi extends ModelGeneratorInput::SummaryTargetApi { +class TypeBasedFlowTargetApi extends SummaryModelGeneratorInput::SummaryTargetApi { /** * Gets the string representation of all type based summaries for `this` * inspired by the Theorems for Free approach. diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql index 0d9e4cd52d9..0c8134546d2 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql +++ b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql @@ -1,5 +1,6 @@ import csharp import utils.modelgenerator.internal.CaptureModels +import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql index 24cb66e427e..b5a3b31a035 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql +++ b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql @@ -1,5 +1,6 @@ import csharp import utils.modelgenerator.internal.CaptureModels +import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureNeutralModels.ql b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureNeutralModels.ql index d5aa685bfe3..e79cab74560 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureNeutralModels.ql +++ b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureNeutralModels.ql @@ -1,5 +1,6 @@ import csharp import utils.modelgenerator.internal.CaptureModels +import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.ql b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.ql index cc84ede4235..0cc8dd6d08d 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.ql +++ b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.ql @@ -1,5 +1,6 @@ import csharp import utils.modelgenerator.internal.CaptureModels +import SinkModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureSourceModels.ql b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureSourceModels.ql index 4c10362960a..2a54abf9b72 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureSourceModels.ql +++ b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureSourceModels.ql @@ -1,5 +1,6 @@ import csharp import utils.modelgenerator.internal.CaptureModels +import SourceModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { From 2535055de054b8fa0d92510dfa56c813efe4ae30 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 25 Apr 2025 11:36:03 +0200 Subject: [PATCH 130/656] Java: Re-factor implementation to use the new model generator interface. --- .../CaptureContentSummaryModels.ql | 1 + .../modelgenerator/CaptureNeutralModels.ql | 1 + .../utils/modelgenerator/CaptureSinkModels.ql | 1 + .../modelgenerator/CaptureSourceModels.ql | 1 + .../modelgenerator/CaptureSummaryModels.ql | 1 + .../debug/CaptureSummaryModelsPartialPath.ql | 1 + .../debug/CaptureSummaryModelsPath.ql | 1 + .../modelgenerator/internal/CaptureModels.qll | 311 +++++++++--------- .../internal/CaptureModelsPrinting.qll | 2 +- .../CaptureTypeBasedSummaryModels.qll | 5 +- .../dataflow/CaptureContentSummaryModels.ql | 1 + .../dataflow/CaptureHeuristicSummaryModels.ql | 1 + .../dataflow/CaptureNeutralModels.ql | 1 + .../dataflow/CaptureSinkModels.ql | 1 + .../dataflow/CaptureSourceModels.ql | 1 + 15 files changed, 175 insertions(+), 155 deletions(-) diff --git a/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index b1340e2c0d3..1fe70bae0b5 100644 --- a/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string flow where flow = ContentSensitive::captureFlow(api, _) diff --git a/java/ql/src/utils/modelgenerator/CaptureNeutralModels.ql b/java/ql/src/utils/modelgenerator/CaptureNeutralModels.ql index d17c11d4a7b..6008c3bfb8c 100644 --- a/java/ql/src/utils/modelgenerator/CaptureNeutralModels.ql +++ b/java/ql/src/utils/modelgenerator/CaptureNeutralModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string noflow where noflow = captureNeutral(api) diff --git a/java/ql/src/utils/modelgenerator/CaptureSinkModels.ql b/java/ql/src/utils/modelgenerator/CaptureSinkModels.ql index 7c316a02b09..7fcba8850d6 100644 --- a/java/ql/src/utils/modelgenerator/CaptureSinkModels.ql +++ b/java/ql/src/utils/modelgenerator/CaptureSinkModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SinkModels from DataFlowSinkTargetApi api, string sink where sink = Heuristic::captureSink(api) diff --git a/java/ql/src/utils/modelgenerator/CaptureSourceModels.ql b/java/ql/src/utils/modelgenerator/CaptureSourceModels.ql index 4a955d4614b..c623645820b 100644 --- a/java/ql/src/utils/modelgenerator/CaptureSourceModels.ql +++ b/java/ql/src/utils/modelgenerator/CaptureSourceModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SourceModels from DataFlowSourceTargetApi api, string source where source = Heuristic::captureSource(api) diff --git a/java/ql/src/utils/modelgenerator/CaptureSummaryModels.ql b/java/ql/src/utils/modelgenerator/CaptureSummaryModels.ql index 34b6521e7b2..3bc49c31df2 100644 --- a/java/ql/src/utils/modelgenerator/CaptureSummaryModels.ql +++ b/java/ql/src/utils/modelgenerator/CaptureSummaryModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string flow where flow = captureFlow(api, _) diff --git a/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql b/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql index 8895fdaefbb..b9dc9ea236a 100644 --- a/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql +++ b/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql @@ -11,6 +11,7 @@ import java import semmle.code.java.dataflow.DataFlow import utils.modelgenerator.internal.CaptureModels +import SummaryModels import PartialFlow::PartialPathGraph int explorationLimit() { result = 3 } diff --git a/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql b/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql index 8f6bf1c1f53..5925364800c 100644 --- a/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql +++ b/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql @@ -11,6 +11,7 @@ import java import semmle.code.java.dataflow.DataFlow import utils.modelgenerator.internal.CaptureModels +import SummaryModels import Heuristic import PropagateFlow::PathGraph diff --git a/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 9dd317b3006..cff4e97d8d3 100644 --- a/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -25,7 +25,20 @@ predicate isPrimitiveTypeUsedForBulkData(J::Type t) { t.hasName(["byte", "char", "Byte", "Character"]) } -module ModelGeneratorInput implements ModelGeneratorInputSig { +private predicate isInfrequentlyUsed(J::CompilationUnit cu) { + cu.getPackage().getName().matches("javax.swing%") or + cu.getPackage().getName().matches("java.awt%") +} + +private predicate relevant(Callable api) { + api.isPublic() and + api.getDeclaringType().isPublic() and + api.fromSource() and + not isUninterestingForModels(api) and + not isInfrequentlyUsed(api.getCompilationUnit()) +} + +module ModelGeneratorCommonInput implements ModelGeneratorCommonInputSig { class Type = J::Type; class Parameter = J::Parameter; @@ -34,96 +47,8 @@ module ModelGeneratorInput implements ModelGeneratorInputSig= 0 then result = "Argument[" + pos + "]" else result = qualifierString() - ) - or - source.asExpr() instanceof J::FieldAccess and - result = qualifierString() - } - - bindingset[kind] - predicate isRelevantSinkKind(string kind) { - not kind = "log-injection" and - not kind.matches("regex-use%") and - not kind = "file-content-store" - } - - bindingset[kind] - predicate isRelevantSourceKind(string kind) { any() } - predicate containerContent = DataFlowPrivate::containerContent/1; + string partialModelRow(Callable api, int i) { + i = 0 and qualifiedName(api, result, _) // package + or + i = 1 and qualifiedName(api, _, result) // type + or + i = 2 and result = isExtensible(api) // extensible + or + i = 3 and result = api.getName() // name + or + i = 4 and result = ExternalFlow::paramsString(api) // parameters + or + i = 5 and result = "" and exists(api) // ext + } + + string partialNeutralModelRow(Callable api, int i) { + i = 0 and qualifiedName(api, result, _) // package + or + i = 1 and qualifiedName(api, _, result) // type + or + i = 2 and result = api.getName() // name + or + i = 3 and result = ExternalFlow::paramsString(api) // parameters + } +} + +private import ModelGeneratorCommonInput +private import MakeModelGeneratorFactory + +module SummaryModelGeneratorInput implements SummaryModelGeneratorInputSig { + Callable getAsExprEnclosingCallable(NodeExtended node) { + result = node.asExpr().getEnclosingCallable() + } + + Parameter asParameter(NodeExtended node) { result = node.asParameter() } + + private J::Method getARelevantOverride(J::Method m) { + result = m.getAnOverride() and + relevant(result) and + // Other exclusions for overrides. + not m instanceof J::ToStringMethod + } + + /** + * Gets the super implementation of `m` if it is relevant. + * If such a super implementations does not exist, returns `m` if it is relevant. + */ + private J::Callable liftedImpl(J::Callable m) { + ( + result = getARelevantOverride(m) + or + result = m and relevant(m) + ) and + not exists(getARelevantOverride(result)) + } + + private predicate hasManualSummaryModel(Callable api) { + api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.applyManualModel()).asCallable() or + api = any(FlowSummaryImpl::Public::NeutralSummaryCallable sc | sc.hasManualModel()).asCallable() + } + + class SummaryTargetApi extends Callable { + private Callable lift; + + SummaryTargetApi() { + lift = liftedImpl(this) and + not hasManualSummaryModel(lift) + } + + Callable lift() { result = lift } + + predicate isRelevant() { + relevant(this) and + not hasManualSummaryModel(this) + } + } + + predicate isUninterestingForDataFlowModels(Callable api) { + api.getDeclaringType() instanceof J::Interface and not exists(api.getBody()) + } + + predicate isUninterestingForHeuristicDataFlowModels(Callable api) { none() } + predicate isAdditionalContentFlowStep(DataFlow::Node node1, DataFlow::Node node2) { TaintTracking::defaultAdditionalTaintStep(node1, node2, _) and not exists(DataFlow::Content f | @@ -287,34 +252,76 @@ module ModelGeneratorInput implements ModelGeneratorInputSig= 0 then result = "Argument[" + pos + "]" else result = qualifierString() + ) + or + source.asExpr() instanceof J::FieldAccess and + result = qualifierString() + } + + bindingset[kind] + predicate isRelevantSinkKind(string kind) { + not kind = "log-injection" and + not kind.matches("regex-use%") and + not kind = "file-content-store" + } predicate sinkNode = ExternalFlow::sinkNode/2; } -import MakeModelGenerator +import MakeSummaryModelGenerator as SummaryModels +import MakeSourceModelGenerator as SourceModels +import MakeSinkModelGenerator as SinkModels diff --git a/java/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll b/java/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll index 4b376654afb..0d26f36c690 100644 --- a/java/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll +++ b/java/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll @@ -1,6 +1,6 @@ private import java as J private import codeql.mad.modelgenerator.internal.ModelPrinting -private import CaptureModels::ModelGeneratorInput as ModelGeneratorInput +private import CaptureModels::ModelGeneratorCommonInput as ModelGeneratorInput private module ModelPrintingLang implements ModelPrintingLangSig { class Callable = J::Callable; diff --git a/java/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll b/java/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll index 9145a077907..00c8c686c2d 100644 --- a/java/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll +++ b/java/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll @@ -2,7 +2,8 @@ private import java private import semmle.code.java.Collections private import semmle.code.java.dataflow.internal.ContainerFlow private import CaptureModels as CaptureModels -private import CaptureModels::ModelGeneratorInput as ModelGeneratorInput +private import CaptureModels::ModelGeneratorCommonInput as ModelGeneratorInput +private import CaptureModels::SummaryModelGeneratorInput as SummaryModelGeneratorInput private import CaptureModelsPrinting /** @@ -296,7 +297,7 @@ private module Printing = ModelPrintingSummary; * A class of callables that are relevant generating summaries for based * on the Theorems for Free approach. */ -class TypeBasedFlowTargetApi extends ModelGeneratorInput::SummaryTargetApi { +class TypeBasedFlowTargetApi extends SummaryModelGeneratorInput::SummaryTargetApi { /** * Gets the string representation of all type based summaries for `this` * inspired by the Theorems for Free approach. diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql b/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql index 8dd23714fb7..b3d9101633b 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql @@ -1,5 +1,6 @@ import java import utils.modelgenerator.internal.CaptureModels +import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql b/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql index 45485a8009a..8d6021ab42e 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql @@ -1,5 +1,6 @@ import java import utils.modelgenerator.internal.CaptureModels +import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureNeutralModels.ql b/java/ql/test/utils/modelgenerator/dataflow/CaptureNeutralModels.ql index 3578153ddb8..ad567051922 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureNeutralModels.ql +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureNeutralModels.ql @@ -1,5 +1,6 @@ import java import utils.modelgenerator.internal.CaptureModels +import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.ql b/java/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.ql index 027670316c3..3d21b2e4f7d 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.ql +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.ql @@ -1,5 +1,6 @@ import java import utils.modelgenerator.internal.CaptureModels +import SinkModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureSourceModels.ql b/java/ql/test/utils/modelgenerator/dataflow/CaptureSourceModels.ql index d8346f0e3dc..bc95ecf3f2d 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureSourceModels.ql +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureSourceModels.ql @@ -1,5 +1,6 @@ import java import utils.modelgenerator.internal.CaptureModels +import SourceModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { From c16d913f8a586daa995449a00651427d475466c0 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 25 Apr 2025 12:49:05 +0200 Subject: [PATCH 131/656] C++: Re-factor implementation to use the new model generator interface. --- .../CaptureContentSummaryModels.ql | 1 + .../modelgenerator/CaptureNeutralModels.ql | 1 + .../utils/modelgenerator/CaptureSinkModels.ql | 4 +- .../modelgenerator/CaptureSourceModels.ql | 4 +- .../modelgenerator/CaptureSummaryModels.ql | 1 + .../modelgenerator/internal/CaptureModels.qll | 317 +++++++++--------- .../internal/CaptureModelsPrinting.qll | 2 +- .../dataflow/CaptureContentSummaryModels.ql | 1 + .../dataflow/CaptureHeuristicSummaryModels.ql | 1 + 9 files changed, 176 insertions(+), 156 deletions(-) diff --git a/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index 8dc0c3d7f6b..be0cf443431 100644 --- a/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string flow where flow = ContentSensitive::captureFlow(api, _) diff --git a/cpp/ql/src/utils/modelgenerator/CaptureNeutralModels.ql b/cpp/ql/src/utils/modelgenerator/CaptureNeutralModels.ql index e9a5ea24dec..813eece65b9 100644 --- a/cpp/ql/src/utils/modelgenerator/CaptureNeutralModels.ql +++ b/cpp/ql/src/utils/modelgenerator/CaptureNeutralModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string noflow where noflow = captureNeutral(api) diff --git a/cpp/ql/src/utils/modelgenerator/CaptureSinkModels.ql b/cpp/ql/src/utils/modelgenerator/CaptureSinkModels.ql index 5485a2645bc..1ed9b032070 100644 --- a/cpp/ql/src/utils/modelgenerator/CaptureSinkModels.ql +++ b/cpp/ql/src/utils/modelgenerator/CaptureSinkModels.ql @@ -7,8 +7,8 @@ */ import internal.CaptureModels -import Heuristic +import SinkModels from DataFlowSinkTargetApi api, string sink -where sink = captureSink(api) +where sink = Heuristic::captureSink(api) select sink order by sink diff --git a/cpp/ql/src/utils/modelgenerator/CaptureSourceModels.ql b/cpp/ql/src/utils/modelgenerator/CaptureSourceModels.ql index c2240c64688..4f86fb6b6fb 100644 --- a/cpp/ql/src/utils/modelgenerator/CaptureSourceModels.ql +++ b/cpp/ql/src/utils/modelgenerator/CaptureSourceModels.ql @@ -7,8 +7,8 @@ */ import internal.CaptureModels -import Heuristic +import SourceModels from DataFlowSourceTargetApi api, string source -where source = captureSource(api) +where source = Heuristic::captureSource(api) select source order by source diff --git a/cpp/ql/src/utils/modelgenerator/CaptureSummaryModels.ql b/cpp/ql/src/utils/modelgenerator/CaptureSummaryModels.ql index 60341abc0b5..a023afabd31 100644 --- a/cpp/ql/src/utils/modelgenerator/CaptureSummaryModels.ql +++ b/cpp/ql/src/utils/modelgenerator/CaptureSummaryModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string flow where flow = captureFlow(api, _) diff --git a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 58acfa01118..5b3beac3453 100644 --- a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -2,7 +2,7 @@ * Provides predicates related to capturing summary models of the Standard or a 3rd party library. */ -private import cpp +private import cpp as Cpp private import semmle.code.cpp.ir.IR private import semmle.code.cpp.dataflow.ExternalFlow as ExternalFlow private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon @@ -10,113 +10,67 @@ private import semmle.code.cpp.ir.dataflow.internal.DataFlowImplSpecific private import semmle.code.cpp.ir.dataflow.internal.DataFlowPrivate as DataFlowPrivate private import semmle.code.cpp.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl private import semmle.code.cpp.ir.dataflow.internal.TaintTrackingImplSpecific -private import semmle.code.cpp.dataflow.new.TaintTracking +private import semmle.code.cpp.dataflow.new.TaintTracking as Tt +private import semmle.code.cpp.dataflow.new.DataFlow as Df private import codeql.mad.modelgenerator.internal.ModelGeneratorImpl -module ModelGeneratorInput implements ModelGeneratorInputSig { +/** + * Holds if `f` is a "private" function. + * + * A "private" function does not contribute any models as it is assumed + * to be an implementation detail of some other "public" function for which + * we will generate a summary. + */ +private predicate isPrivateOrProtected(Cpp::Function f) { + f.getNamespace().getParentNamespace*().isAnonymous() + or + exists(Cpp::MemberFunction mf | mf = f | + mf.isPrivate() + or + mf.isProtected() + ) + or + f.isStatic() +} + +private predicate isUninterestingForModels(Callable api) { + // Note: This also makes all global/static-local variables + // not relevant (which is good!) + not api.(Cpp::Function).hasDefinition() + or + isPrivateOrProtected(api) + or + api instanceof Cpp::Destructor + or + api = any(Cpp::LambdaExpression lambda).getLambdaFunction() + or + api.isFromUninstantiatedTemplate(_) +} + +private predicate relevant(Callable api) { + api.fromSource() and + not isUninterestingForModels(api) +} + +module ModelGeneratorCommonInput implements ModelGeneratorCommonInputSig +{ + private module DataFlow = Df::DataFlow; + class Type = DataFlowPrivate::DataFlowType; // Note: This also includes `this` class Parameter = DataFlow::ParameterNode; - class Callable = Declaration; + class Callable = Cpp::Declaration; class NodeExtended extends DataFlow::Node { Callable getAsExprEnclosingCallable() { result = this.asExpr().getEnclosingDeclaration() } } - Parameter asParameter(NodeExtended n) { result = n } - Callable getEnclosingCallable(NodeExtended n) { result = n.getEnclosingCallable().asSourceCallable() } - Callable getAsExprEnclosingCallable(NodeExtended n) { - result = n.asExpr().getEnclosingDeclaration() - } - - /** Gets `api` if it is relevant. */ - private Callable liftedImpl(Callable api) { result = api and relevant(api) } - - private predicate hasManualSummaryModel(Callable api) { - api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.applyManualModel()) or - api = any(FlowSummaryImpl::Public::NeutralSummaryCallable sc | sc.hasManualModel()) - } - - private predicate hasManualSourceModel(Callable api) { - api = any(FlowSummaryImpl::Public::NeutralSourceCallable sc | sc.hasManualModel()) - } - - private predicate hasManualSinkModel(Callable api) { - api = any(FlowSummaryImpl::Public::NeutralSinkCallable sc | sc.hasManualModel()) - } - - /** - * Holds if `f` is a "private" function. - * - * A "private" function does not contribute any models as it is assumed - * to be an implementation detail of some other "public" function for which - * we will generate a summary. - */ - private predicate isPrivateOrProtected(Function f) { - f.getNamespace().getParentNamespace*().isAnonymous() - or - exists(MemberFunction mf | mf = f | - mf.isPrivate() - or - mf.isProtected() - ) - or - f.isStatic() - } - - private predicate isUninterestingForModels(Callable api) { - // Note: This also makes all global/static-local variables - // not relevant (which is good!) - not api.(Function).hasDefinition() - or - isPrivateOrProtected(api) - or - api instanceof Destructor - or - api = any(LambdaExpression lambda).getLambdaFunction() - or - api.isFromUninstantiatedTemplate(_) - } - - private predicate relevant(Callable api) { - api.fromSource() and - not isUninterestingForModels(api) - } - - class SummaryTargetApi extends Callable { - private Callable lift; - - SummaryTargetApi() { - lift = liftedImpl(this) and - not hasManualSummaryModel(lift) - } - - Callable lift() { result = lift } - - predicate isRelevant() { - relevant(this) and - not hasManualSummaryModel(this) - } - } - - class SourceOrSinkTargetApi extends Callable { - SourceOrSinkTargetApi() { relevant(this) } - } - - class SinkTargetApi extends SourceOrSinkTargetApi { - SinkTargetApi() { not hasManualSinkModel(this) } - } - - class SourceTargetApi extends SourceOrSinkTargetApi { - SourceTargetApi() { not hasManualSourceModel(this) } - } - class InstanceParameterNode extends DataFlow::ParameterNode { InstanceParameterNode() { DataFlowPrivate::nodeHasInstruction(this, @@ -124,7 +78,7 @@ module ModelGeneratorInput implements ModelGeneratorInputSig" @@ -166,7 +120,7 @@ module ModelGeneratorInput implements ModelGeneratorInputSig + +private module SummaryModelGeneratorInput implements SummaryModelGeneratorInputSig { + private module DataFlow = Df::DataFlow; + + Parameter asParameter(NodeExtended n) { result = n } + + Callable getAsExprEnclosingCallable(NodeExtended n) { + result = n.asExpr().getEnclosingDeclaration() + } + + private predicate hasManualSummaryModel(Callable api) { + api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.applyManualModel()) or + api = any(FlowSummaryImpl::Public::NeutralSummaryCallable sc | sc.hasManualModel()) + } + + /** Gets `api` if it is relevant. */ + private Callable liftedImpl(Callable api) { result = api and relevant(api) } + + class SummaryTargetApi extends Callable { + private Callable lift; + + SummaryTargetApi() { + lift = liftedImpl(this) and + not hasManualSummaryModel(lift) + } + + Callable lift() { result = lift } + + predicate isRelevant() { + relevant(this) and + not hasManualSummaryModel(this) + } + } + predicate isAdditionalContentFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - TaintTracking::defaultAdditionalTaintStep(node1, node2, _) and + Tt::TaintTracking::defaultAdditionalTaintStep(node1, node2, _) and not exists(DataFlow::Content f | DataFlowPrivate::readStep(node1, f, node2) and containerContent(f) ) @@ -341,7 +328,7 @@ module ModelGeneratorInput implements ModelGeneratorInputSig +import MakeSummaryModelGenerator as SummaryModels +import MakeSourceModelGenerator as SourceModels +import MakeSinkModelGenerator as SinkModels diff --git a/cpp/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll b/cpp/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll index 7841f8ed1a4..43342aa671e 100644 --- a/cpp/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll +++ b/cpp/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll @@ -1,6 +1,6 @@ private import cpp as Cpp private import codeql.mad.modelgenerator.internal.ModelPrinting -private import CaptureModels::ModelGeneratorInput as ModelGeneratorInput +private import CaptureModels::ModelGeneratorCommonInput as ModelGeneratorInput private module ModelPrintingLang implements ModelPrintingLangSig { class Callable = Cpp::Declaration; diff --git a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql index 0156eaaeb98..8196f6329cc 100644 --- a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql +++ b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql @@ -1,5 +1,6 @@ import cpp import utils.modelgenerator.internal.CaptureModels +import SummaryModels import InlineModelsAsDataTest module InlineMadTestConfig implements InlineMadTestConfigSig { diff --git a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql index 3ab1dc6c471..fc05c4fe434 100644 --- a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql +++ b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql @@ -1,5 +1,6 @@ import cpp import utils.modelgenerator.internal.CaptureModels +import SummaryModels import InlineModelsAsDataTest module InlineMadTestConfig implements InlineMadTestConfigSig { From a6b5645b139350a5527959492eeb7aa784b9cfc7 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 25 Apr 2025 13:09:13 +0200 Subject: [PATCH 132/656] Rust: Re-factor implementation to use the new model generator interface. --- .../CaptureContentSummaryModels.ql | 1 + .../modelgenerator/CaptureNeutralModels.ql | 1 + .../utils/modelgenerator/CaptureSinkModels.ql | 1 + .../modelgenerator/CaptureSourceModels.ql | 1 + .../modelgenerator/CaptureSummaryModels.ql | 1 + .../debug/CaptureSummaryModelsPartialPath.ql | 1 + .../debug/CaptureSummaryModelsPath.ql | 1 + .../modelgenerator/internal/CaptureModels.qll | 211 ++++++++++-------- .../internal/CaptureModelsPrinting.qll | 2 +- .../modelgenerator/CaptureSinkModels.ql | 1 + .../modelgenerator/CaptureSourceModels.ql | 1 + .../modelgenerator/CaptureSummaryModels.ql | 1 + 12 files changed, 124 insertions(+), 99 deletions(-) diff --git a/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index da90465197e..4b672e74da5 100644 --- a/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string flow where flow = ContentSensitive::captureFlow(api, _) diff --git a/rust/ql/src/utils/modelgenerator/CaptureNeutralModels.ql b/rust/ql/src/utils/modelgenerator/CaptureNeutralModels.ql index 8efc8a485e1..556d1624f39 100644 --- a/rust/ql/src/utils/modelgenerator/CaptureNeutralModels.ql +++ b/rust/ql/src/utils/modelgenerator/CaptureNeutralModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string noflow where noflow = Heuristic::captureNoFlow(api) diff --git a/rust/ql/src/utils/modelgenerator/CaptureSinkModels.ql b/rust/ql/src/utils/modelgenerator/CaptureSinkModels.ql index 36b1b813297..989637a867e 100644 --- a/rust/ql/src/utils/modelgenerator/CaptureSinkModels.ql +++ b/rust/ql/src/utils/modelgenerator/CaptureSinkModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SinkModels from DataFlowSinkTargetApi api, string sink where sink = Heuristic::captureSink(api) diff --git a/rust/ql/src/utils/modelgenerator/CaptureSourceModels.ql b/rust/ql/src/utils/modelgenerator/CaptureSourceModels.ql index 7086f719b2d..2ffc4894b18 100644 --- a/rust/ql/src/utils/modelgenerator/CaptureSourceModels.ql +++ b/rust/ql/src/utils/modelgenerator/CaptureSourceModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SourceModels from DataFlowSourceTargetApi api, string source where source = Heuristic::captureSource(api) diff --git a/rust/ql/src/utils/modelgenerator/CaptureSummaryModels.ql b/rust/ql/src/utils/modelgenerator/CaptureSummaryModels.ql index 8947dd01531..d0b3152c9be 100644 --- a/rust/ql/src/utils/modelgenerator/CaptureSummaryModels.ql +++ b/rust/ql/src/utils/modelgenerator/CaptureSummaryModels.ql @@ -7,6 +7,7 @@ */ import internal.CaptureModels +import SummaryModels from DataFlowSummaryTargetApi api, string flow where flow = captureFlow(api, _) diff --git a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql index eb0cd638b53..b8855b94bf2 100644 --- a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql +++ b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql @@ -10,6 +10,7 @@ private import codeql.rust.dataflow.DataFlow import utils.modelgenerator.internal.CaptureModels +import SummaryModels import PartialFlow::PartialPathGraph int explorationLimit() { result = 3 } diff --git a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql index 1ddec1ff618..ac25306ceee 100644 --- a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql +++ b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql @@ -10,6 +10,7 @@ private import codeql.rust.dataflow.DataFlow import utils.modelgenerator.internal.CaptureModels +import SummaryModels import Heuristic import PropagateFlow::PathGraph diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 237da46750b..6aeae06bbdb 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -2,7 +2,7 @@ private import codeql.util.Unit private import rust private import rust as R private import codeql.rust.dataflow.DataFlow -private import codeql.rust.dataflow.internal.DataFlowImpl +private import codeql.rust.dataflow.internal.DataFlowImpl as DataFlowImpl private import codeql.rust.dataflow.internal.Node as Node private import codeql.rust.dataflow.internal.Content private import codeql.rust.dataflow.FlowSource as FlowSource @@ -11,7 +11,25 @@ private import codeql.rust.dataflow.internal.TaintTrackingImpl private import codeql.mad.modelgenerator.internal.ModelGeneratorImpl private import codeql.rust.dataflow.internal.FlowSummaryImpl as FlowSummary -module ModelGeneratorInput implements ModelGeneratorInputSig { +private predicate relevant(Function api) { + // Only include functions that have a resolved path. + api.hasCrateOrigin() and + api.hasExtendedCanonicalPath() and + ( + // This excludes closures (these are not exported API endpoints) and + // functions without a `pub` visiblity. A function can be `pub` without + // ultimately being exported by a crate, so this is an overapproximation. + api.hasVisibility() + or + // If a method implements a public trait it is exposed through the trait. + // We overapproximate this by including all trait method implementations. + exists(Impl impl | impl.hasTrait() and impl.getAssocItemList().getAssocItem(_) = api) + ) +} + +module ModelGeneratorCommonInput implements + ModelGeneratorCommonInputSig +{ // NOTE: We are not using type information for now. class Type = Unit; @@ -23,42 +41,71 @@ module ModelGeneratorInput implements ModelGeneratorInputSig + +private module SummaryModelGeneratorInput implements SummaryModelGeneratorInputSig { class SummaryTargetApi extends Callable { private Callable lift; @@ -72,74 +119,13 @@ module ModelGeneratorInput implements ModelGeneratorInputSig +import MakeSummaryModelGenerator as SummaryModels +import MakeSourceModelGenerator as SourceModels +import MakeSinkModelGenerator as SinkModels diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll index 4c2da918f73..789113f7580 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll @@ -1,6 +1,6 @@ private import rust as R private import codeql.mad.modelgenerator.internal.ModelPrinting -private import CaptureModels::ModelGeneratorInput as ModelGeneratorInput +private import CaptureModels::ModelGeneratorCommonInput as ModelGeneratorInput private module ModelPrintingLang implements ModelPrintingLangSig { class Callable = R::Callable; diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql index 14edea3af8a..4b8041fb444 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql @@ -1,5 +1,6 @@ import rust import utils.modelgenerator.internal.CaptureModels +import SinkModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql index 66f0780448c..c535ce78704 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql @@ -1,5 +1,6 @@ import rust import utils.modelgenerator.internal.CaptureModels +import SourceModels import utils.test.InlineMadTest import codeql.rust.dataflow.internal.ModelsAsData diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql index 002689a2039..e0788253f43 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql @@ -1,5 +1,6 @@ import rust import utils.modelgenerator.internal.CaptureModels +import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { From c9d01bc6079e4e698e90c82ba1099d11a8df5881 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 25 Apr 2025 14:06:04 +0200 Subject: [PATCH 133/656] Shared: Sprinkle some predicate defaults and clean up. --- .../modelgenerator/internal/CaptureModels.qll | 16 ------ .../modelgenerator/internal/CaptureModels.qll | 10 ---- .../modelgenerator/internal/CaptureModels.qll | 7 --- .../modelgenerator/internal/CaptureModels.qll | 15 ----- .../internal/ModelGeneratorImpl.qll | 57 ++++++++----------- 5 files changed, 24 insertions(+), 81 deletions(-) diff --git a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 5b3beac3453..93abe205f1a 100644 --- a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -360,12 +360,6 @@ private module SummaryModelGeneratorInput implements SummaryModelGeneratorInputS result = "Element[" + ec.getIndirectionIndex() + "]" ) } - - predicate isUninterestingForDataFlowModels(Callable api) { none() } - - predicate isUninterestingForHeuristicDataFlowModels(Callable api) { - isUninterestingForDataFlowModels(api) - } } private module SourceModelGeneratorInput implements SourceModelGeneratorInputSig { @@ -377,11 +371,6 @@ private module SourceModelGeneratorInput implements SourceModelGeneratorInputSig SourceTargetApi() { relevant(this) and not hasManualSourceModel(this) } } - predicate irrelevantSourceSinkApi(Callable source, SourceTargetApi api) { none() } - - bindingset[kind] - predicate isRelevantSourceKind(string kind) { any() } - predicate sourceNode = ExternalFlow::sourceNode/2; } @@ -396,8 +385,6 @@ private module SinkModelGeneratorInput implements SinkModelGeneratorInputSig { SinkTargetApi() { relevant(this) and not hasManualSinkModel(this) } } - predicate sinkModelSanitizer(DataFlow::Node node) { none() } - predicate apiSource(DataFlow::Node source) { DataFlowPrivate::nodeHasOperand(source, any(DataFlow::FieldAddress fa), 1) or @@ -416,9 +403,6 @@ private module SinkModelGeneratorInput implements SinkModelGeneratorInputSig { result = qualifierString() } - bindingset[kind] - predicate isRelevantSinkKind(string kind) { any() } - predicate sinkNode = ExternalFlow::sinkNode/2; } diff --git a/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 7bf8a248a6f..b0300e4a87f 100644 --- a/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -234,8 +234,6 @@ module SummaryModelGeneratorInput implements SummaryModelGeneratorInputSig { api = any(FlowSummaryImpl::Public::NeutralSummaryCallable sc | sc.hasManualModel()) } - predicate isUninterestingForDataFlowModels(Callable api) { none() } - predicate isUninterestingForHeuristicDataFlowModels(Callable api) { isHigherOrder(api) } class SummaryTargetApi extends Callable { @@ -356,9 +354,6 @@ private module SourceModelGeneratorInput implements SourceModelGeneratorInputSig ) } - bindingset[kind] - predicate isRelevantSourceKind(string kind) { any() } - predicate sourceNode = ExternalFlow::sourceNode/2; } @@ -372,8 +367,6 @@ private module SinkModelGeneratorInput implements SinkModelGeneratorInputSig { SinkTargetApi() { relevant(this) and not hasManualSinkModel(this) } } - predicate sinkModelSanitizer(DataFlow::Node node) { none() } - private predicate isRelevantMemberAccess(DataFlow::Node node) { exists(CS::MemberAccess access | access = node.asExpr() | access.hasThisQualifier() and @@ -400,9 +393,6 @@ private module SinkModelGeneratorInput implements SinkModelGeneratorInputSig { result = qualifierString() } - bindingset[kind] - predicate isRelevantSinkKind(string kind) { any() } - predicate sinkNode = ExternalFlow::sinkNode/2; } diff --git a/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll index cff4e97d8d3..09223d23b1c 100644 --- a/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -211,8 +211,6 @@ module SummaryModelGeneratorInput implements SummaryModelGeneratorInputSig { api.getDeclaringType() instanceof J::Interface and not exists(api.getBody()) } - predicate isUninterestingForHeuristicDataFlowModels(Callable api) { none() } - predicate isAdditionalContentFlowStep(DataFlow::Node node1, DataFlow::Node node2) { TaintTracking::defaultAdditionalTaintStep(node1, node2, _) and not exists(DataFlow::Content f | @@ -264,11 +262,6 @@ private module SourceModelGeneratorInput implements SourceModelGeneratorInputSig SourceTargetApi() { relevant(this) and not hasManualSourceModel(this) } } - predicate irrelevantSourceSinkApi(Callable source, SourceTargetApi api) { none() } - - bindingset[kind] - predicate isRelevantSourceKind(string kind) { any() } - predicate sourceNode = ExternalFlow::sourceNode/2; } diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 6aeae06bbdb..99e1c527b54 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -123,10 +123,6 @@ private module SummaryModelGeneratorInput implements SummaryModelGeneratorInputS Parameter asParameter(NodeExtended node) { result = node.asParameter() } - predicate isUninterestingForDataFlowModels(Callable api) { none() } - - predicate isUninterestingForHeuristicDataFlowModels(Callable api) { none() } - predicate isAdditionalContentFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { none() } predicate isField(DataFlow::ContentSet c) { @@ -169,12 +165,6 @@ private module SourceModelGeneratorInput implements SourceModelGeneratorInputSig SourceTargetApi() { relevant(this) } } - bindingset[sourceEnclosing, api] - predicate irrelevantSourceSinkApi(Callable sourceEnclosing, SourceTargetApi api) { none() } - - bindingset[kind] - predicate isRelevantSourceKind(string kind) { any() } - predicate sourceNode(DataFlow::Node node, string kind) { FlowSource::sourceNode(node, kind) } } @@ -183,8 +173,6 @@ private module SinkModelGeneratorInput implements SinkModelGeneratorInputSig { SinkTargetApi() { relevant(this) } } - predicate sinkModelSanitizer(DataFlow::Node node) { none() } - /** * Holds if `source` is an API entrypoint, i.e., a source of input where data * can flow in to a library. This is used for creating sink models, as we @@ -197,9 +185,6 @@ private module SinkModelGeneratorInput implements SinkModelGeneratorInputSig { result = "Argument[" + source.(Node::SourceParameterNode).getPosition().toString() + "]" } - bindingset[kind] - predicate isRelevantSinkKind(string kind) { any() } - predicate sinkNode(DataFlow::Node node, string kind) { FlowSink::sinkNode(node, kind) } } diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index d981ef151fd..dabd687b52b 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -295,7 +295,7 @@ module MakeModelGeneratorFactory< * * This serves as an extra filter for the `relevant` predicate. */ - predicate isUninterestingForDataFlowModels(Callable api); + default predicate isUninterestingForDataFlowModels(Callable api) { none() } /** * Holds if it is irrelevant to generate models for `api` based on the heuristic @@ -304,7 +304,7 @@ module MakeModelGeneratorFactory< * This serves as an extra filter for the `relevant` * and `isUninterestingForDataFlowModels` predicates. */ - predicate isUninterestingForHeuristicDataFlowModels(Callable api); + default predicate isUninterestingForHeuristicDataFlowModels(Callable api) { none() } } /** @@ -940,24 +940,20 @@ module MakeModelGeneratorFactory< */ class SourceTargetApi extends Callable; - /** - * Holds if it is not relevant to generate a source model for `api`, even - * if flow is detected from a node within `source` to a sink within `api`. - */ - bindingset[sourceEnclosing, api] - predicate irrelevantSourceSinkApi(Callable sourceEnclosing, SourceTargetApi api); - - /** - * Holds if `kind` is a relevant source kind for creating source models. - */ - bindingset[kind] - predicate isRelevantSourceKind(string kind); - /** * Holds if `node` is specified as a source with the given kind in a MaD flow * model. */ predicate sourceNode(Lang::Node node, string kind); + + /** + * Holds if it is not relevant to generate a source model for `api`, even + * if flow is detected from a node within `source` to a sink within `api`. + */ + bindingset[sourceEnclosing, api] + default predicate irrelevantSourceSinkApi(Callable sourceEnclosing, SourceTargetApi api) { + none() + } } /** @@ -969,32 +965,32 @@ module MakeModelGeneratorFactory< */ class SinkTargetApi extends Callable; + /** + * Holds if `node` is specified as a sink with the given kind in a MaD flow + * model. + */ + predicate sinkNode(Lang::Node node, string kind); + /** * Gets the MaD input string representation of `source`. */ string getInputArgument(Lang::Node source); - /** - * Holds if `node` is a sanitizer for sink model construction. - */ - predicate sinkModelSanitizer(Lang::Node node); - /** * Holds if `source` is an api entrypoint relevant for creating sink models. */ predicate apiSource(Lang::Node source); + /** + * Holds if `node` is a sanitizer for sink model construction. + */ + default predicate sinkModelSanitizer(Lang::Node node) { none() } + /** * Holds if `kind` is a relevant sink kind for creating sink models. */ bindingset[kind] - predicate isRelevantSinkKind(string kind); - - /** - * Holds if `node` is specified as a sink with the given kind in a MaD flow - * model. - */ - predicate sinkNode(Lang::Node node, string kind); + default predicate isRelevantSinkKind(string kind) { any() } } /** @@ -1029,12 +1025,7 @@ module MakeModelGeneratorFactory< * via its return (then the API itself becomes a source). */ module PropagateFromSourceConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - exists(string kind | - isRelevantSourceKind(kind) and - sourceNode(source, kind) - ) - } + predicate isSource(DataFlow::Node source) { sourceNode(source, _) } predicate isSink(DataFlow::Node sink) { sink instanceof ReturnNodeExt and From e3a66811825fa6d588494ac8486ba3913685725b Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 29 Apr 2025 16:02:21 +0200 Subject: [PATCH 134/656] Add code quality suite selector --- misc/suite-helpers/code-quality-selectors.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 misc/suite-helpers/code-quality-selectors.yml diff --git a/misc/suite-helpers/code-quality-selectors.yml b/misc/suite-helpers/code-quality-selectors.yml new file mode 100644 index 00000000000..ddaf3366599 --- /dev/null +++ b/misc/suite-helpers/code-quality-selectors.yml @@ -0,0 +1,10 @@ +- description: Selectors for selecting the Code-Quality-relevant queries for a language +- include: + kind: + - problem + - path-problem + precision: + - high + - very-high + tags contain: + - quality From ea9b95790bb099fa756bbaf54e797bc0394085df Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 29 Apr 2025 16:02:46 +0200 Subject: [PATCH 135/656] Use code-quality-selectors in C# suite --- csharp/ql/src/API Abuse/FormatInvalid.ql | 1 + .../NoDisposeCallOnLocalIDisposable.ql | 1 + .../Control-Flow/ConstantCondition.ql | 1 + csharp/ql/src/Dead Code/DeadStoreOfLocal.ql | 1 + .../Collections/ContainerLengthCmpOffByOne.ql | 1 + .../Collections/ContainerSizeCmpZero.ql | 1 + .../DangerousNonShortCircuitLogic.ql | 1 + .../src/Likely Bugs/EqualityCheckOnFloats.ql | 1 + .../Likely Bugs/ReferenceEqualsOnValueTypes.ql | 1 + csharp/ql/src/Likely Bugs/SelfAssignment.ql | 1 + .../src/Likely Bugs/UncheckedCastInEquals.ql | 1 + csharp/ql/src/Performance/UseTryGetValue.ql | 4 +++- csharp/ql/src/Useless code/DefaultToString.ql | 1 + csharp/ql/src/Useless code/IntGetHashCode.ql | 1 + .../src/codeql-suites/csharp-code-quality.qls | 18 ++---------------- 15 files changed, 18 insertions(+), 17 deletions(-) diff --git a/csharp/ql/src/API Abuse/FormatInvalid.ql b/csharp/ql/src/API Abuse/FormatInvalid.ql index a2b8ef5e222..056730a577d 100644 --- a/csharp/ql/src/API Abuse/FormatInvalid.ql +++ b/csharp/ql/src/API Abuse/FormatInvalid.ql @@ -8,6 +8,7 @@ * @id cs/invalid-string-formatting * @tags reliability * maintainability + * quality */ import csharp diff --git a/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql b/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql index e5826c42342..f02b0d49b54 100644 --- a/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql +++ b/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql @@ -8,6 +8,7 @@ * @id cs/local-not-disposed * @tags efficiency * maintainability + * quality * external/cwe/cwe-404 * external/cwe/cwe-459 * external/cwe/cwe-460 diff --git a/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql b/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql index 88d938e399f..7bfdea1e906 100644 --- a/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql +++ b/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql @@ -9,6 +9,7 @@ * @id cs/constant-condition * @tags maintainability * readability + * quality * external/cwe/cwe-835 */ diff --git a/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql b/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql index 1e2eaad1aa1..5be820ee74c 100644 --- a/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql +++ b/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql @@ -6,6 +6,7 @@ * @problem.severity warning * @id cs/useless-assignment-to-local * @tags maintainability + * quality * external/cwe/cwe-563 * @precision very-high */ diff --git a/csharp/ql/src/Likely Bugs/Collections/ContainerLengthCmpOffByOne.ql b/csharp/ql/src/Likely Bugs/Collections/ContainerLengthCmpOffByOne.ql index 615f0634f16..754ed8ad773 100644 --- a/csharp/ql/src/Likely Bugs/Collections/ContainerLengthCmpOffByOne.ql +++ b/csharp/ql/src/Likely Bugs/Collections/ContainerLengthCmpOffByOne.ql @@ -9,6 +9,7 @@ * @tags reliability * correctness * logic + * quality * external/cwe/cwe-193 */ diff --git a/csharp/ql/src/Likely Bugs/Collections/ContainerSizeCmpZero.ql b/csharp/ql/src/Likely Bugs/Collections/ContainerSizeCmpZero.ql index 6ba109713ae..90f5b981e24 100644 --- a/csharp/ql/src/Likely Bugs/Collections/ContainerSizeCmpZero.ql +++ b/csharp/ql/src/Likely Bugs/Collections/ContainerSizeCmpZero.ql @@ -8,6 +8,7 @@ * @tags reliability * correctness * logic + * quality */ import csharp diff --git a/csharp/ql/src/Likely Bugs/DangerousNonShortCircuitLogic.ql b/csharp/ql/src/Likely Bugs/DangerousNonShortCircuitLogic.ql index 6091b0f79a3..f3defa47a43 100644 --- a/csharp/ql/src/Likely Bugs/DangerousNonShortCircuitLogic.ql +++ b/csharp/ql/src/Likely Bugs/DangerousNonShortCircuitLogic.ql @@ -9,6 +9,7 @@ * @tags reliability * correctness * logic + * quality * external/cwe/cwe-480 * external/cwe/cwe-691 */ diff --git a/csharp/ql/src/Likely Bugs/EqualityCheckOnFloats.ql b/csharp/ql/src/Likely Bugs/EqualityCheckOnFloats.ql index 1109201fbe1..108e6f45f94 100644 --- a/csharp/ql/src/Likely Bugs/EqualityCheckOnFloats.ql +++ b/csharp/ql/src/Likely Bugs/EqualityCheckOnFloats.ql @@ -9,6 +9,7 @@ * @id cs/equality-on-floats * @tags reliability * correctness + * quality */ import csharp diff --git a/csharp/ql/src/Likely Bugs/ReferenceEqualsOnValueTypes.ql b/csharp/ql/src/Likely Bugs/ReferenceEqualsOnValueTypes.ql index f038117aff3..de29f6109ad 100644 --- a/csharp/ql/src/Likely Bugs/ReferenceEqualsOnValueTypes.ql +++ b/csharp/ql/src/Likely Bugs/ReferenceEqualsOnValueTypes.ql @@ -7,6 +7,7 @@ * @id cs/reference-equality-on-valuetypes * @tags reliability * correctness + * quality * external/cwe/cwe-595 */ diff --git a/csharp/ql/src/Likely Bugs/SelfAssignment.ql b/csharp/ql/src/Likely Bugs/SelfAssignment.ql index dd63ba87627..e010d18292c 100644 --- a/csharp/ql/src/Likely Bugs/SelfAssignment.ql +++ b/csharp/ql/src/Likely Bugs/SelfAssignment.ql @@ -8,6 +8,7 @@ * @tags reliability * correctness * logic + * quality */ import csharp diff --git a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql index aa244147e3e..d1e2dbdf056 100644 --- a/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql +++ b/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql @@ -7,6 +7,7 @@ * @id cs/unchecked-cast-in-equals * @tags reliability * maintainability + * quality */ import csharp diff --git a/csharp/ql/src/Performance/UseTryGetValue.ql b/csharp/ql/src/Performance/UseTryGetValue.ql index 67b57e90347..c33c0d1e8d7 100644 --- a/csharp/ql/src/Performance/UseTryGetValue.ql +++ b/csharp/ql/src/Performance/UseTryGetValue.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision high * @id cs/inefficient-containskey - * @tags maintainability efficiency + * @tags maintainability + * efficiency + * quality */ import csharp diff --git a/csharp/ql/src/Useless code/DefaultToString.ql b/csharp/ql/src/Useless code/DefaultToString.ql index 544347576fe..ea33fe7874b 100644 --- a/csharp/ql/src/Useless code/DefaultToString.ql +++ b/csharp/ql/src/Useless code/DefaultToString.ql @@ -8,6 +8,7 @@ * @id cs/call-to-object-tostring * @tags reliability * maintainability + * quality */ import DefaultToStringQuery diff --git a/csharp/ql/src/Useless code/IntGetHashCode.ql b/csharp/ql/src/Useless code/IntGetHashCode.ql index 85d0f56aae0..847443d018e 100644 --- a/csharp/ql/src/Useless code/IntGetHashCode.ql +++ b/csharp/ql/src/Useless code/IntGetHashCode.ql @@ -8,6 +8,7 @@ * @id cs/useless-gethashcode-call * @tags readability * useless-code + * quality */ import csharp diff --git a/csharp/ql/src/codeql-suites/csharp-code-quality.qls b/csharp/ql/src/codeql-suites/csharp-code-quality.qls index 85bbe4db683..2074f9378cf 100644 --- a/csharp/ql/src/codeql-suites/csharp-code-quality.qls +++ b/csharp/ql/src/codeql-suites/csharp-code-quality.qls @@ -1,17 +1,3 @@ - queries: . -- include: - id: - - cs/index-out-of-bounds - - cs/test-for-negative-container-size - - cs/unchecked-cast-in-equals - - cs/reference-equality-on-valuetypes - - cs/self-assignment - - cs/inefficient-containskey - - cs/call-to-object-tostring - - cs/local-not-disposed - - cs/constant-condition - - cs/useless-gethashcode-call - - cs/non-short-circuit - - cs/useless-assignment-to-local - - cs/invalid-string-formatting - - cs/equality-on-floats +- apply: code-quality-selectors.yml + from: codeql/suite-helpers From be5de9c08019e8d03ed7e992480d96293ee083c7 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 29 Apr 2025 16:06:11 +0200 Subject: [PATCH 136/656] JS: Update test output path.resolve() and template expressions are now working. Previously they could not be resolved because Import.getImportedPath() returned a PathExpr, and these were not instances of PathExpr. --- .../test/library-tests/PathResolution/DirnameImports/main.js | 4 ++-- javascript/ql/test/library-tests/PathResolution/test.expected | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/javascript/ql/test/library-tests/PathResolution/DirnameImports/main.js b/javascript/ql/test/library-tests/PathResolution/DirnameImports/main.js index 7303809541c..154f4e47f6a 100644 --- a/javascript/ql/test/library-tests/PathResolution/DirnameImports/main.js +++ b/javascript/ql/test/library-tests/PathResolution/DirnameImports/main.js @@ -7,9 +7,9 @@ require(__dirname + '/../import-packages.ts'); // $ importTarget=import-packages require(__dirname + '/' + 'target.js'); // $ importTarget=DirnameImports/target.js require(path.join(__dirname, 'target.js')); // $ importTarget=DirnameImports/target.js -require(path.resolve(__dirname, 'target.js')); // $ MISSING: importTarget=DirnameImports/target.js +require(path.resolve(__dirname, 'target.js')); // $ importTarget=DirnameImports/target.js const subdir = 'nested'; require(__dirname + '/' + subdir + '/target.js'); // $ importTarget=DirnameImports/nested/target.js -require(`${__dirname}/target.js`); // $ MISSING: importTarget=DirnameImports/target.js +require(`${__dirname}/target.js`); // $ importTarget=DirnameImports/target.js diff --git a/javascript/ql/test/library-tests/PathResolution/test.expected b/javascript/ql/test/library-tests/PathResolution/test.expected index fb546892af1..4e1d2506e61 100644 --- a/javascript/ql/test/library-tests/PathResolution/test.expected +++ b/javascript/ql/test/library-tests/PathResolution/test.expected @@ -52,7 +52,9 @@ | DirnameImports/main.js:6:1:6:45 | require ... es.ts') | import-packages.ts | | DirnameImports/main.js:7:1:7:38 | require ... et.js') | DirnameImports/target.js | | DirnameImports/main.js:9:1:9:42 | require ... t.js')) | DirnameImports/target.js | +| DirnameImports/main.js:10:1:10:45 | require ... t.js')) | DirnameImports/target.js | | DirnameImports/main.js:13:1:13:48 | require ... et.js') | DirnameImports/nested/target.js | +| DirnameImports/main.js:15:1:15:33 | require ... et.js`) | DirnameImports/target.js | | Extended/src/main.ts:2:1:2:21 | import ... /file"; | Extended/lib/file.ts | | Extended/src/main.ts:3:1:3:24 | import ... le.ts"; | Extended/lib/file.ts | | Extended/src/main.ts:4:1:4:24 | import ... le.js"; | Extended/lib/file.ts | From 5de2c938d8f689be498e917b69525717ffe6532f Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 29 Apr 2025 11:36:44 +0200 Subject: [PATCH 137/656] JS: Rename getTargetFile to getImportedFile and remove its deprecated name clash 'getTargetFile' was originally named to avoid the clash with 'getImportedFile' from a subclass. But we now just merge the two predicates. --- .../ql/lib/semmle/javascript/Modules.qll | 4 +- .../ql/lib/semmle/javascript/NodeJS.qll | 72 ------------------- .../lib/semmle/javascript/frameworks/Vue.qll | 4 +- 3 files changed, 4 insertions(+), 76 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/Modules.qll b/javascript/ql/lib/semmle/javascript/Modules.qll index 1949abe4cdc..3ddd5132d05 100644 --- a/javascript/ql/lib/semmle/javascript/Modules.qll +++ b/javascript/ql/lib/semmle/javascript/Modules.qll @@ -145,12 +145,12 @@ abstract class Import extends AstNode { /** * Gets the module the path of this import resolves to. */ - Module resolveImportedPath() { result.getFile() = this.getTargetFile() } + Module resolveImportedPath() { result.getFile() = this.getImportedFile() } /** * Gets the module the path of this import resolves to. */ - File getTargetFile() { result = ImportPathResolver::resolveExpr(this.getImportedPathExpr()) } + File getImportedFile() { result = ImportPathResolver::resolveExpr(this.getImportedPathExpr()) } /** * DEPRECATED. Use `getImportedModule()` instead. diff --git a/javascript/ql/lib/semmle/javascript/NodeJS.qll b/javascript/ql/lib/semmle/javascript/NodeJS.qll index 175991ffa5e..7e9e2fdea90 100644 --- a/javascript/ql/lib/semmle/javascript/NodeJS.qll +++ b/javascript/ql/lib/semmle/javascript/NodeJS.qll @@ -327,78 +327,6 @@ class Require extends CallExpr, Import { override Module getEnclosingModule() { this = result.getAnImport() } - /** - * Gets the file that is imported by this `require`. - * - * The result can be a JavaScript file, a JSON file or a `.node` file. - * Externs files are not treated differently from other files by this predicate. - */ - deprecated File getImportedFile() { result = this.load(min(int prio | exists(this.load(prio)))) } - - /** - * Gets the file that this `require` refers to (which may not be a JavaScript file), - * using the root folder of priority `priority`. - * - * This predicate implements the specification of - * [`require.resolve`](https://nodejs.org/api/modules.html#modules_all_together), - * modified to allow additional JavaScript file extensions, such as `ts` and `jsx`. - * - * Module resolution order is modeled using the `priority` parameter as follows. - * - * Each candidate folder in which the path may be resolved is assigned - * a priority (this is actually done by `Module.searchRoot`, but we explain it - * here for completeness): - * - * - if the path starts with `'./'`, `'../'`, or `/`, it has a single candidate - * folder (the enclosing folder of the module for the former two, the file - * system root for the latter) of priority 0 - * - otherwise, candidate folders are folders of the form `/node_modules` - * such that `` is a (not necessarily proper) ancestor of the enclosing - * folder of the module which is not itself named `node_modules`; the priority - * of a candidate folder is the number of steps from the enclosing folder of - * the module to ``. - * - * To resolve an import of a path `p`, we consider each candidate folder `c` with - * priority `r` and resolve the import to the following files if they exist - * (in order of priority): - * - *
    - *
  • the file `c/p`; - *
  • the file `c/p.{tsx,ts,jsx,es6,es,mjs,cjs}`; - *
  • the file `c/p.js`; - *
  • the file `c/p.json`; - *
  • the file `c/p.node`; - *
  • if `c/p` is a folder: - *
      - *
    • if `c/p/package.json` exists and specifies a `main` module `m`: - *
        - *
      • the file `c/p/m`; - *
      • the file `c/p/m.{tsx,ts,jsx,es6,es,mjs,cjs}`; - *
      • the file `c/p/m.js`; - *
      • the file `c/p/m.json`; - *
      • the file `c/p/m.node`; - *
      - *
    • the file `c/p/index.{tsx,ts,jsx,es6,es,mjs,cjs}`; - *
    • the file `c/p/index.js`; - *
    • the file `c/p/index.json`; - *
    • the file `c/p/index.node`. - *
    - *
- * - * The first four steps are factored out into predicate `loadAsFile`, - * the remainder into `loadAsDirectory`; both make use of an auxiliary - * predicate `tryExtensions` that handles the repeated distinction between - * `.js`, `.json` and `.node`. - */ - deprecated private File load(int priority) { - exists(int r | this.getEnclosingModule().searchRoot(this.getImportedPathExpr(), _, r) | - result = loadAsFile(this, r, priority - prioritiesPerCandidate() * r) or - result = - loadAsDirectory(this, r, - priority - (prioritiesPerCandidate() * r + numberOfExtensions() + 1)) - ) - } - override DataFlow::Node getImportedModuleNode() { result = DataFlow::valueNode(this) } } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll b/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll index 2465ec66820..f571648294c 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Vue.qll @@ -442,7 +442,7 @@ module Vue { override DataFlow::SourceNode getASource() { exists(Import imprt | - imprt.getTargetFile() instanceof VueFile and + imprt.getImportedFile() instanceof VueFile and result = imprt.getImportedModuleNode() ) } @@ -494,7 +494,7 @@ module Vue { // There is no explicit `new Vue()` call in .vue files, so instead get all the imports // of the .vue file. exists(Import imprt | - imprt.getTargetFile() = file and + imprt.getImportedFile() = file and result.asSource() = imprt.getImportedModuleNode() ) } From 70a5ec56077fbfd3ea720222db8b60bfe8e75946 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 29 Apr 2025 11:56:21 +0200 Subject: [PATCH 138/656] JS: Add package.json files in tests relying on node_modules We don't extract node_modules folders by default so these tests aren't that relevant anymore, and we no longer follow node_modules resolution rules directly. Instead, these imports are resolved based on the monorepo support which simply requires a package.json file to exist. There is not a good enough reason to support node_modules directly, so we're accepting some minor regression in these tests. --- .../library-tests/NPM/src/node_modules/a/package.json | 4 ++++ .../node_modules/nested/node_modules/a/package.json | 5 +++++ .../NPM/src/node_modules/nested/package.json | 3 +++ javascript/ql/test/library-tests/NPM/tests.expected | 10 ++++++++++ .../UnresolvableImport/UnresolvableImport.expected | 1 - .../src/sub/node_modules/mod/package.json | 3 +++ .../query-tests/NodeJS/UnresolvableImport/src/tst.js | 4 ++-- .../NodeJS/UnusedDependency/UnusedDependency.expected | 1 + 8 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 javascript/ql/test/library-tests/NPM/src/node_modules/a/package.json create mode 100644 javascript/ql/test/library-tests/NPM/src/node_modules/nested/node_modules/a/package.json create mode 100644 javascript/ql/test/library-tests/NPM/src/node_modules/nested/package.json create mode 100644 javascript/ql/test/query-tests/NodeJS/UnresolvableImport/src/sub/node_modules/mod/package.json diff --git a/javascript/ql/test/library-tests/NPM/src/node_modules/a/package.json b/javascript/ql/test/library-tests/NPM/src/node_modules/a/package.json new file mode 100644 index 00000000000..03b4185fbe2 --- /dev/null +++ b/javascript/ql/test/library-tests/NPM/src/node_modules/a/package.json @@ -0,0 +1,4 @@ +{ + "name": "a", + "main": "index.js" +} diff --git a/javascript/ql/test/library-tests/NPM/src/node_modules/nested/node_modules/a/package.json b/javascript/ql/test/library-tests/NPM/src/node_modules/nested/node_modules/a/package.json new file mode 100644 index 00000000000..5742f54f95c --- /dev/null +++ b/javascript/ql/test/library-tests/NPM/src/node_modules/nested/node_modules/a/package.json @@ -0,0 +1,5 @@ +{ + "name": "a", + "main": "index.js", + "description": "Nested version of package A" +} diff --git a/javascript/ql/test/library-tests/NPM/src/node_modules/nested/package.json b/javascript/ql/test/library-tests/NPM/src/node_modules/nested/package.json new file mode 100644 index 00000000000..9978c83c9fc --- /dev/null +++ b/javascript/ql/test/library-tests/NPM/src/node_modules/nested/package.json @@ -0,0 +1,3 @@ +{ + "name": "nested" +} diff --git a/javascript/ql/test/library-tests/NPM/tests.expected b/javascript/ql/test/library-tests/NPM/tests.expected index a75c705be26..568bd0a7a82 100644 --- a/javascript/ql/test/library-tests/NPM/tests.expected +++ b/javascript/ql/test/library-tests/NPM/tests.expected @@ -6,6 +6,7 @@ dependencies importedFile | src/lib/tst2.js:1:1:1:13 | require("..") | src/index.js:0:0:0:0 | src/index.js | | src/node_modules/nested/tst3.js:1:1:1:29 | require ... odule') | src/node_modules/third-party-module/fancy.js:0:0:0:0 | src/node_modules/third-party-module/fancy.js | +| src/node_modules/nested/tst3.js:2:1:2:12 | require('a') | src/node_modules/a/index.js:0:0:0:0 | src/node_modules/a/index.js | | src/node_modules/nested/tst3.js:2:1:2:12 | require('a') | src/node_modules/nested/node_modules/a/index.js:0:0:0:0 | src/node_modules/nested/node_modules/a/index.js | | src/node_modules/tst2.js:1:1:1:38 | require ... cy.js') | src/node_modules/third-party-module/fancy.js:0:0:0:0 | src/node_modules/third-party-module/fancy.js | | src/test-submodule.js:1:1:1:24 | require ... odule") | src/node_modules/parent-module/main.js:0:0:0:0 | src/node_modules/parent-module/main.js | @@ -16,6 +17,7 @@ importedFile importedModule | src/lib/tst2.js:1:1:1:13 | require("..") | src/index.js:1:1:4:0 | | | src/node_modules/nested/tst3.js:1:1:1:29 | require ... odule') | src/node_modules/third-party-module/fancy.js:1:1:4:0 | | +| src/node_modules/nested/tst3.js:2:1:2:12 | require('a') | src/node_modules/a/index.js:1:1:1:25 | | | src/node_modules/nested/tst3.js:2:1:2:12 | require('a') | src/node_modules/nested/node_modules/a/index.js:1:1:1:25 | | | src/node_modules/tst2.js:1:1:1:38 | require ... cy.js') | src/node_modules/third-party-module/fancy.js:1:1:4:0 | | | src/test-submodule.js:1:1:1:24 | require ... odule") | src/node_modules/parent-module/main.js:1:1:2:0 | | @@ -29,10 +31,13 @@ modules | src | test-package | src/test-submodule.js:1:1:3:0 | | | src | test-package | src/tst2.js:1:1:1:13 | | | src | test-package | src/tst.js:1:1:2:38 | | +| src/node_modules/a | a | src/node_modules/a/index.js:1:1:1:25 | | | src/node_modules/b | b | src/node_modules/b/lib/index.js:1:1:2:0 | | | src/node_modules/b | b | src/node_modules/b/lib/util.ts:1:1:2:0 | | | src/node_modules/c | c | src/node_modules/c/src/index.js:1:1:2:0 | | | src/node_modules/d | d | src/node_modules/d/main.js:1:1:2:0 | | +| src/node_modules/nested | nested | src/node_modules/nested/tst3.js:1:1:2:13 | | +| src/node_modules/nested/node_modules/a | a | src/node_modules/nested/node_modules/a/index.js:1:1:1:25 | | | src/node_modules/parent-module | parent-module | src/node_modules/parent-module/main.js:1:1:2:0 | | | src/node_modules/parent-module | parent-module | src/node_modules/parent-module/sub-module/main.js:1:1:2:0 | | | src/node_modules/parent-module/sub-module | parent-module/sub-module | src/node_modules/parent-module/sub-module/main.js:1:1:2:0 | | @@ -41,17 +46,22 @@ npm | src/node_modules/third-party-module/package.json:1:1:5:1 | {\\n "na ... y.js"\\n} | third-party-module | 23.4.0 | | src/package.json:1:1:20:1 | {\\n "na ... "\\n }\\n} | test-package | 0.1.0 | getMainModule +| src/node_modules/a/package.json:1:1:4:1 | {\\n " ... x.js"\\n} | a | src/node_modules/a/index.js:1:1:1:25 | | | src/node_modules/b/package.json:1:1:4:1 | {\\n "na ... "lib"\\n} | b | src/node_modules/b/lib/index.js:1:1:2:0 | | | src/node_modules/c/package.json:1:1:4:1 | {\\n "na ... src/"\\n} | c | src/node_modules/c/src/index.js:1:1:2:0 | | | src/node_modules/d/package.json:1:1:4:1 | {\\n "na ... main"\\n} | d | src/node_modules/d/main.js:1:1:2:0 | | +| src/node_modules/nested/node_modules/a/package.json:1:1:5:1 | {\\n " ... ge A"\\n} | a | src/node_modules/nested/node_modules/a/index.js:1:1:1:25 | | | src/node_modules/parent-module/package.json:1:1:4:1 | {\\n "na ... n.js"\\n} | parent-module | src/node_modules/parent-module/main.js:1:1:2:0 | | | src/node_modules/parent-module/sub-module/package.json:1:1:3:1 | {\\n "ma ... n.js"\\n} | parent-module/sub-module | src/node_modules/parent-module/sub-module/main.js:1:1:2:0 | | | src/node_modules/third-party-module/package.json:1:1:5:1 | {\\n "na ... y.js"\\n} | third-party-module | src/node_modules/third-party-module/fancy.js:1:1:4:0 | | | src/package.json:1:1:20:1 | {\\n "na ... "\\n }\\n} | test-package | src/index.js:1:1:4:0 | | packageJson +| src/node_modules/a/package.json:1:1:4:1 | {\\n " ... x.js"\\n} | | src/node_modules/b/package.json:1:1:4:1 | {\\n "na ... "lib"\\n} | | src/node_modules/c/package.json:1:1:4:1 | {\\n "na ... src/"\\n} | | src/node_modules/d/package.json:1:1:4:1 | {\\n "na ... main"\\n} | +| src/node_modules/nested/node_modules/a/package.json:1:1:5:1 | {\\n " ... ge A"\\n} | +| src/node_modules/nested/package.json:1:1:3:1 | {\\n " ... sted"\\n} | | src/node_modules/parent-module/package.json:1:1:4:1 | {\\n "na ... n.js"\\n} | | src/node_modules/parent-module/sub-module/package.json:1:1:3:1 | {\\n "ma ... n.js"\\n} | | src/node_modules/third-party-module/package.json:1:1:5:1 | {\\n "na ... y.js"\\n} | diff --git a/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/UnresolvableImport.expected b/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/UnresolvableImport.expected index c2f977b8975..deb6b931aaa 100644 --- a/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/UnresolvableImport.expected +++ b/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/UnresolvableImport.expected @@ -1,3 +1,2 @@ | src/tst.js:2:1:2:16 | require('other') | Module other cannot be resolved, and is not declared as a dependency in $@. | src/package.json:1:1:15:1 | {\\n "na ... "\\n }\\n} | package.json | -| src/tst.js:7:1:7:14 | require('mod') | Module mod cannot be resolved, and is not declared as a dependency in $@. | src/package.json:1:1:15:1 | {\\n "na ... "\\n }\\n} | package.json | | src/tst.js:8:1:8:21 | require ... lared') | Module undeclared cannot be resolved, and is not declared as a dependency in $@. | src/package.json:1:1:15:1 | {\\n "na ... "\\n }\\n} | package.json | diff --git a/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/src/sub/node_modules/mod/package.json b/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/src/sub/node_modules/mod/package.json new file mode 100644 index 00000000000..235a7607a8d --- /dev/null +++ b/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/src/sub/node_modules/mod/package.json @@ -0,0 +1,3 @@ +{ + "name": "mod" +} diff --git a/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/src/tst.js b/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/src/tst.js index b5d9982bd4e..e1d19155b54 100644 --- a/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/src/tst.js +++ b/javascript/ql/test/query-tests/NodeJS/UnresolvableImport/src/tst.js @@ -4,8 +4,8 @@ require('foo'); // OK - declared as a dependency require('bar/sub'); // OK - 'bar' declared as a dependency require('./local'); // OK - local import require('/global'); // OK - global import -require('mod'); // $ Alert +require('mod'); // $ MISSING: Alert // this is resolved due to the package.json file named "mod", but Node.js would not find it require('undeclared'); // $ Alert require('jade!./template.jade'); // OK - WebPack loader require('imports?$=jquery!./m.js'); // OK - WebPack shim -require('react'); // OK - peer dependency \ No newline at end of file +require('react'); // OK - peer dependency diff --git a/javascript/ql/test/query-tests/NodeJS/UnusedDependency/UnusedDependency.expected b/javascript/ql/test/query-tests/NodeJS/UnusedDependency/UnusedDependency.expected index 766f71c0977..b5ffdcb40d8 100644 --- a/javascript/ql/test/query-tests/NodeJS/UnusedDependency/UnusedDependency.expected +++ b/javascript/ql/test/query-tests/NodeJS/UnusedDependency/UnusedDependency.expected @@ -3,5 +3,6 @@ | src/package.json:24:63:24:65 | "*" | Unused dependency 'not-really-used-in-install-script-because-of-substring'. | | src/package.json:28:28:28:30 | "*" | Unused dependency 'used-in-test-script'. | | src/package.json:29:30:29:32 | "*" | Unused dependency 'used-in-custom-script'. | +| src/package.json:30:56:30:58 | "*" | Unused dependency 'used-in-require-with-exclamation-mark-separator'. | | src/package.json:32:28:32:30 | "*" | Unused dependency 'used-in-mjs-require'. | | src/package.json:36:48:36:50 | "*" | Unused dependency 'used-in-dynamic-template-require-string'. | From b0f73f1cbd0912995211eb47bf02e4d5a09c7ef3 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 29 Apr 2025 12:52:07 +0200 Subject: [PATCH 139/656] JS: Update test output now that we import .d.ts files more liberally --- .../TypeScript/RegressionTests/ImportDtsFile/test.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/javascript/ql/test/library-tests/TypeScript/RegressionTests/ImportDtsFile/test.expected b/javascript/ql/test/library-tests/TypeScript/RegressionTests/ImportDtsFile/test.expected index fdbbf878689..d8bf886588a 100644 --- a/javascript/ql/test/library-tests/TypeScript/RegressionTests/ImportDtsFile/test.expected +++ b/javascript/ql/test/library-tests/TypeScript/RegressionTests/ImportDtsFile/test.expected @@ -1,2 +1,3 @@ | main.ts:1:1:1:52 | import ... -file"; | ./only-declaration-file | only-declaration-file.d.ts:3:1:4:0 | | +| main.ts:2:1:2:48 | import ... -file"; | ./has-javascript-file | has-javascript-file.d.ts:3:1:4:0 | | | main.ts:2:1:2:48 | import ... -file"; | ./has-javascript-file | has-javascript-file.js:1:1:2:0 | | From 425e020d6c2269bfd3db5d4260adfae38d32ab02 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 29 Apr 2025 16:09:51 +0200 Subject: [PATCH 140/656] Use code-quality-selectors in Java suite --- .../query-suite/java-code-quality.qls.expected | 1 - .../Language Abuse/TypeVariableHidesType.ql | 1 + .../Likely Bugs/Arithmetic/IntMultToLong.ql | 1 + .../Collections/WriteOnlyContainer.ql | 1 + .../Comparison/IncomparableEquals.ql | 1 + .../Comparison/InconsistentEqualsHashCode.ql | 1 + .../Comparison/MissingInstanceofInEquals.ql | 1 + .../src/Likely Bugs/Comparison/RefEqBoxed.ql | 1 + .../Likely Typos/ContradictoryTypeChecks.ql | 1 + .../Likely Typos/SuspiciousDateFormat.ql | 1 + .../Likely Bugs/Resource Leaks/CloseReader.ql | 1 + .../Likely Bugs/Resource Leaks/CloseWriter.ql | 1 + .../ql/src/codeql-suites/java-code-quality.qls | 18 ++---------------- 13 files changed, 13 insertions(+), 17 deletions(-) diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected index 0934d4cf996..4af6a4dd5db 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected @@ -1,4 +1,3 @@ -ql/java/ql/src/Language Abuse/TypeVariableHidesType.ql ql/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql ql/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql ql/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql diff --git a/java/ql/src/Language Abuse/TypeVariableHidesType.ql b/java/ql/src/Language Abuse/TypeVariableHidesType.ql index d411c3848e2..81da0e9703e 100644 --- a/java/ql/src/Language Abuse/TypeVariableHidesType.ql +++ b/java/ql/src/Language Abuse/TypeVariableHidesType.ql @@ -9,6 +9,7 @@ * @tags reliability * readability * types + * quality */ import java diff --git a/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql b/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql index 31a1d8a20a1..026096b63a7 100644 --- a/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql +++ b/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql @@ -9,6 +9,7 @@ * @tags reliability * correctness * types + * quality * external/cwe/cwe-190 * external/cwe/cwe-192 * external/cwe/cwe-197 diff --git a/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql b/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql index 8c8cb6105b3..1f4ebb3403d 100644 --- a/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql +++ b/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql @@ -7,6 +7,7 @@ * @id java/unused-container * @tags maintainability * useless-code + * quality * external/cwe/cwe-561 */ diff --git a/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql b/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql index 2326ae5dd3d..f5019373b65 100644 --- a/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql +++ b/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql @@ -8,6 +8,7 @@ * @id java/equals-on-unrelated-types * @tags reliability * correctness + * quality */ import java diff --git a/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql b/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql index b788caec0e1..2fce3397346 100644 --- a/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql +++ b/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql @@ -8,6 +8,7 @@ * @id java/inconsistent-equals-and-hashcode * @tags reliability * correctness + * quality * external/cwe/cwe-581 */ diff --git a/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql b/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql index 455ca22d6e3..413a88bb008 100644 --- a/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql +++ b/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql @@ -8,6 +8,7 @@ * @id java/unchecked-cast-in-equals * @tags reliability * correctness + * quality */ import java diff --git a/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql b/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql index b5c679f67e7..811edd9e2d7 100644 --- a/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql +++ b/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql @@ -8,6 +8,7 @@ * @id java/reference-equality-of-boxed-types * @tags reliability * correctness + * quality * external/cwe/cwe-595 */ diff --git a/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql b/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql index 9608ec93767..a8ff61f481d 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql @@ -9,6 +9,7 @@ * @id java/contradictory-type-checks * @tags correctness * logic + * quality */ import java diff --git a/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql b/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql index b39da1aa870..9e24a3b7b4e 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql @@ -6,6 +6,7 @@ * @precision high * @id java/suspicious-date-format * @tags correctness + * quality */ import java diff --git a/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql b/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql index 92da62633d8..d210581d20c 100644 --- a/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql +++ b/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql @@ -9,6 +9,7 @@ * @tags efficiency * correctness * resources + * quality * external/cwe/cwe-404 * external/cwe/cwe-772 */ diff --git a/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql b/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql index fa04de220bf..fe23286b2e0 100644 --- a/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql +++ b/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql @@ -9,6 +9,7 @@ * @tags efficiency * correctness * resources + * quality * external/cwe/cwe-404 * external/cwe/cwe-772 */ diff --git a/java/ql/src/codeql-suites/java-code-quality.qls b/java/ql/src/codeql-suites/java-code-quality.qls index 847864606ca..2074f9378cf 100644 --- a/java/ql/src/codeql-suites/java-code-quality.qls +++ b/java/ql/src/codeql-suites/java-code-quality.qls @@ -1,17 +1,3 @@ - queries: . -- include: - id: - - java/contradictory-type-checks - - java/do-not-call-finalize - - java/equals-on-unrelated-types - - java/inconsistent-equals-and-hashcode - - java/input-resource-leak - - java/integer-multiplication-cast-to-long - - java/junit5-missing-nested-annotation - - java/output-resource-leak - - java/reference-equality-of-boxed-types - - java/string-replace-all-with-non-regex - - java/suspicious-date-format - - java/type-variable-hides-type - - java/unchecked-cast-in-equals - - java/unused-container \ No newline at end of file +- apply: code-quality-selectors.yml + from: codeql/suite-helpers From a7a887c828f1c2f7cd507606e13feaf052ff97a1 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 29 Apr 2025 16:18:40 +0200 Subject: [PATCH 141/656] Rust: separate attribute macro and macro call expansions --- rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 10 ++- rust/extractor/src/translate/base.rs | 11 ++- rust/ql/.generated.list | 89 ++++++++++--------- rust/ql/.gitattributes | 35 ++++---- .../lib/codeql/rust/controlflow/CfgNodes.qll | 2 +- .../rust/controlflow/internal/CfgNodes.qll | 2 +- .../rust/controlflow/internal/Completion.qll | 2 +- .../internal/ControlFlowGraphImpl.qll | 4 +- .../internal/generated/CfgNodes.qll | 10 +++ rust/ql/lib/codeql/rust/elements/Item.qll | 2 +- .../ql/lib/codeql/rust/elements/MacroCall.qll | 1 + .../lib/codeql/rust/elements/MacroItems.qll | 10 ++- .../rust/elements/internal/AstNodeImpl.qll | 2 +- .../rust/elements/internal/MacroItemsImpl.qll | 10 ++- .../rust/elements/internal/generated/Item.qll | 15 ++-- .../elements/internal/generated/MacroCall.qll | 16 ++++ .../internal/generated/MacroItems.qll | 10 ++- .../internal/generated/ParentChild.qll | 16 +++- .../rust/elements/internal/generated/Raw.qll | 19 +++- rust/ql/lib/rust.dbscheme | 10 ++- .../rust.dbscheme | 10 ++- .../upgrade.properties | 4 +- .../attribute_macro_expansion/test.expected | 2 - .../attribute_macro_expansion/test.ql | 6 -- .../generated/.generated_tests.list | 2 +- .../extractor-tests/generated/Const/Const.ql | 18 ++-- ...Const_getAttributeMacroExpansion.expected} | 0 ...ql => Const_getAttributeMacroExpansion.ql} | 2 +- .../extractor-tests/generated/Enum/Enum.ql | 14 +-- ... Enum_getAttributeMacroExpansion.expected} | 0 ....ql => Enum_getAttributeMacroExpansion.ql} | 2 +- .../generated/ExternBlock/ExternBlock.ql | 15 ++-- ...Block_getAttributeMacroExpansion.expected} | 0 ...ExternBlock_getAttributeMacroExpansion.ql} | 2 +- .../generated/ExternCrate/ExternCrate.ql | 15 ++-- ...Crate_getAttributeMacroExpansion.expected} | 0 ...ExternCrate_getAttributeMacroExpansion.ql} | 2 +- .../generated/Function/Function.expected | 4 +- .../generated/Function/Function.ql | 16 ++-- ...ction_getAttributeMacroExpansion.expected} | 0 ...=> Function_getAttributeMacroExpansion.ql} | 2 +- .../extractor-tests/generated/Impl/Impl.ql | 16 ++-- ... Impl_getAttributeMacroExpansion.expected} | 0 ....ql => Impl_getAttributeMacroExpansion.ql} | 2 +- .../generated/MacroCall/MacroCall.expected | 2 +- .../generated/MacroCall/MacroCall.ql | 19 ++-- ...oCall_getAttributeMacroExpansion.expected} | 0 .../MacroCall_getAttributeMacroExpansion.ql | 7 ++ ... MacroCall_getMacroCallExpansion.expected} | 0 ....ql => MacroCall_getMacroCallExpansion.ql} | 2 +- .../generated/MacroDef/MacroDef.ql | 16 ++-- ...roDef_getAttributeMacroExpansion.expected} | 0 ...=> MacroDef_getAttributeMacroExpansion.ql} | 2 +- .../generated/MacroItems/gen_macro_items.rs | 10 ++- .../generated/MacroRules/MacroRules.ql | 15 ++-- ...Rules_getAttributeMacroExpansion.expected} | 0 ... MacroRules_getAttributeMacroExpansion.ql} | 2 +- .../generated/Module/Module.expected | 6 +- .../generated/Module/Module.ql | 15 ++-- ...odule_getAttributeMacroExpansion.expected} | 0 ...l => Module_getAttributeMacroExpansion.ql} | 2 +- .../generated/Static/Static.ql | 18 ++-- ...tatic_getAttributeMacroExpansion.expected} | 0 ...l => Static_getAttributeMacroExpansion.ql} | 2 +- .../generated/Struct/Struct.ql | 18 ++-- ...truct_getAttributeMacroExpansion.expected} | 0 ...l => Struct_getAttributeMacroExpansion.ql} | 2 +- .../generated/Trait/Trait.expected | 4 +- .../extractor-tests/generated/Trait/Trait.ql | 22 +++-- ...Trait_getAttributeMacroExpansion.expected} | 0 ...ql => Trait_getAttributeMacroExpansion.ql} | 2 +- .../generated/TraitAlias/TraitAlias.ql | 18 ++-- ...Alias_getAttributeMacroExpansion.expected} | 0 ... TraitAlias_getAttributeMacroExpansion.ql} | 2 +- .../generated/TypeAlias/TypeAlias.expected | 4 +- .../generated/TypeAlias/TypeAlias.ql | 21 +++-- ...Alias_getAttributeMacroExpansion.expected} | 0 ...> TypeAlias_getAttributeMacroExpansion.ql} | 2 +- .../extractor-tests/generated/Union/Union.ql | 18 ++-- ...Union_getAttributeMacroExpansion.expected} | 0 ...ql => Union_getAttributeMacroExpansion.ql} | 2 +- .../test/extractor-tests/generated/Use/Use.ql | 12 ++- .../Use_getAttributeMacroExpansion.expected | 0 ...d.ql => Use_getAttributeMacroExpansion.ql} | 2 +- .../macro_expansion.rs} | 0 .../options.yml | 0 .../macro_expansion/test.expected | 2 + .../extractor-tests/macro_expansion/test.ql | 6 ++ rust/schema/annotations.py | 19 ++-- 90 files changed, 442 insertions(+), 244 deletions(-) delete mode 100644 rust/ql/test/extractor-tests/attribute_macro_expansion/test.expected delete mode 100644 rust/ql/test/extractor-tests/attribute_macro_expansion/test.ql rename rust/ql/test/extractor-tests/generated/Const/{Const_getExpanded.expected => Const_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/Const/{Const_getExpanded.ql => Const_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/Enum/{Enum_getExpanded.expected => Enum_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/Enum/{Enum_getExpanded.ql => Enum_getAttributeMacroExpansion.ql} (76%) rename rust/ql/test/extractor-tests/generated/ExternBlock/{ExternBlock_getExpanded.expected => ExternBlock_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/ExternBlock/{ExternBlock_getExpanded.ql => ExternBlock_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/ExternCrate/{ExternCrate_getExpanded.expected => ExternCrate_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/ExternCrate/{ExternCrate_getExpanded.ql => ExternCrate_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/Function/{Function_getExpanded.expected => Function_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/Function/{Function_getExpanded.ql => Function_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/Impl/{Impl_getExpanded.expected => Impl_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/Impl/{Impl_getExpanded.ql => Impl_getAttributeMacroExpansion.ql} (76%) rename rust/ql/test/extractor-tests/generated/{MacroDef/MacroDef_getExpanded.expected => MacroCall/MacroCall_getAttributeMacroExpansion.expected} (100%) create mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql rename rust/ql/test/extractor-tests/generated/MacroCall/{MacroCall_getExpanded.expected => MacroCall_getMacroCallExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/MacroCall/{MacroCall_getExpanded.ql => MacroCall_getMacroCallExpansion.ql} (79%) rename rust/ql/test/extractor-tests/generated/{MacroRules/MacroRules_getExpanded.expected => MacroDef/MacroDef_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/MacroDef/{MacroDef_getExpanded.ql => MacroDef_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/{Module/Module_getExpanded.expected => MacroRules/MacroRules_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/MacroRules/{MacroRules_getExpanded.ql => MacroRules_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/{Static/Static_getExpanded.expected => Module/Module_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/Module/{Module_getExpanded.ql => Module_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/{Struct/Struct_getExpanded.expected => Static/Static_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/Static/{Static_getExpanded.ql => Static_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/{Trait/Trait_getExpanded.expected => Struct/Struct_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/Struct/{Struct_getExpanded.ql => Struct_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/{TraitAlias/TraitAlias_getExpanded.expected => Trait/Trait_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/Trait/{Trait_getExpanded.ql => Trait_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/{TypeAlias/TypeAlias_getExpanded.expected => TraitAlias/TraitAlias_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/TraitAlias/{TraitAlias_getExpanded.ql => TraitAlias_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/{Union/Union_getExpanded.expected => TypeAlias/TypeAlias_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/TypeAlias/{TypeAlias_getExpanded.ql => TypeAlias_getAttributeMacroExpansion.ql} (77%) rename rust/ql/test/extractor-tests/generated/{Use/Use_getExpanded.expected => Union/Union_getAttributeMacroExpansion.expected} (100%) rename rust/ql/test/extractor-tests/generated/Union/{Union_getExpanded.ql => Union_getAttributeMacroExpansion.ql} (77%) create mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.expected rename rust/ql/test/extractor-tests/generated/Use/{Use_getExpanded.ql => Use_getAttributeMacroExpansion.ql} (76%) rename rust/ql/test/extractor-tests/{attribute_macro_expansion/attr_macro_expansion.rs => macro_expansion/macro_expansion.rs} (100%) rename rust/ql/test/extractor-tests/{attribute_macro_expansion => macro_expansion}/options.yml (100%) create mode 100644 rust/ql/test/extractor-tests/macro_expansion/test.expected create mode 100644 rust/ql/test/extractor-tests/macro_expansion/test.ql diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 4888deae33c..fce8b6e8b66 100644 --- a/rust/extractor/src/generated/.generated.list +++ b/rust/extractor/src/generated/.generated.list @@ -1,2 +1,2 @@ mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 -top.rs af7f3cf5d0941e7dffd6fa4ce75ac432f433a5367a408fb944176dc1a932883b af7f3cf5d0941e7dffd6fa4ce75ac432f433a5367a408fb944176dc1a932883b +top.rs 7fa95af0d85ffc251cfcd543129baa8cb0dde9df310194f3aff1868dd66417f4 7fa95af0d85ffc251cfcd543129baa8cb0dde9df310194f3aff1868dd66417f4 diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index d1a7068848f..2a63514d1eb 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -5819,8 +5819,8 @@ pub struct Item { } impl Item { - pub fn emit_expanded(id: trap::Label, value: trap::Label, out: &mut trap::Writer) { - out.add_tuple("item_expandeds", vec![id.into(), value.into()]); + pub fn emit_attribute_macro_expansion(id: trap::Label, value: trap::Label, out: &mut trap::Writer) { + out.add_tuple("item_attribute_macro_expansions", vec![id.into(), value.into()]); } } @@ -9771,6 +9771,12 @@ impl trap::TrapEntry for MacroCall { } } +impl MacroCall { + pub fn emit_macro_call_expansion(id: trap::Label, value: trap::Label, out: &mut trap::Writer) { + out.add_tuple("macro_call_macro_call_expansions", vec![id.into(), value.into()]); + } +} + impl trap::TrapClass for MacroCall { fn class_name() -> &'static str { "MacroCall" } } diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index a8e8bc0c890..527f4e9497a 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -328,7 +328,11 @@ impl<'a> Translator<'a> { let expand_to = ra_ap_hir_expand::ExpandTo::from_call_site(mcall); let kind = expanded.kind(); if let Some(value) = self.emit_expanded_as(expand_to, expanded) { - generated::Item::emit_expanded(label.into(), value, &mut self.trap.writer); + generated::MacroCall::emit_macro_call_expansion( + label, + value, + &mut self.trap.writer, + ); } else { let range = self.text_range_for_node(mcall); self.emit_parse_error(mcall, &SyntaxError::new( @@ -655,8 +659,9 @@ impl<'a> Translator<'a> { } = semantics.expand_attr_macro(node)?; // TODO emit err? self.emit_macro_expansion_parse_errors(node, &expanded); - let expanded = self.emit_expanded_as(ExpandTo::Items, expanded)?; - generated::Item::emit_expanded(label, expanded, &mut self.trap.writer); + let macro_items = ast::MacroItems::cast(expanded)?; + let expanded = self.emit_macro_items(¯o_items)?; + generated::Item::emit_attribute_macro_expansion(label, expanded, &mut self.trap.writer); Some(()) })(); } diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index fd7c9c84bf6..d9ddca8bdd0 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -1,4 +1,4 @@ -lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 9452207ba069c4174b9e2903614380c5fb09dccd46e612d6c68ed4305b26ac70 3dbc42e9091ea12456014425df347230471da3afd5e811136a9bc58ba6e5880a +lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 016c66674aa4739c82ee92123c7ec2f1247537f4bba3b08a833714fc4a0f998f 8be64927ddce9f98f294a4243edccb1bb8f1b7b8867febcbe498e98d8083e5b4 lib/codeql/rust/elements/Abi.qll 4c973d28b6d628f5959d1f1cc793704572fd0acaae9a97dfce82ff9d73f73476 250f68350180af080f904cd34cb2af481c5c688dc93edf7365fd0ae99855e893 lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be lib/codeql/rust/elements/ArgList.qll 661f5100f5d3ef8351452d9058b663a2a5c720eea8cf11bedd628969741486a2 28e424aac01a90fb58cd6f9f83c7e4cf379eea39e636bc0ba07efc818be71c71 @@ -74,7 +74,7 @@ lib/codeql/rust/elements/Impl.qll 6407348d86e73cdb68e414f647260cb82cb90bd40860ba lib/codeql/rust/elements/ImplTraitTypeRepr.qll e2d5a3ade0a9eb7dcb7eec229a235581fe6f293d1cb66b1036f6917c01dff981 49367cada57d1873c9c9d2b752ee6191943a23724059b2674c2d7f85497cff97 lib/codeql/rust/elements/IndexExpr.qll 0e2e9f018d06ae72be0fc4ddbc019a9aacd8a06f42b4c4431760bd149e7f2290 2bcfd557abd53a48e48de7915c4f2089107c62dfb3e732a904848248dfd3727b lib/codeql/rust/elements/InferTypeRepr.qll 0a7b3e92512b2b167a8e04d650e12700dbbb8b646b10694056d622ba2501d299 e5e67b7c1124f430750f186da4642e646badcdcf66490dd328af3e64ac8da9e9 -lib/codeql/rust/elements/Item.qll b1c41dcdd51fc94248abd52e838d9ca4d6f8c41f22f7bd1fa2e357b99d237b48 b05416c85d9f2ee67dbf25d2b900c270524b626f0b389fe0c9b90543fd05d8e1 +lib/codeql/rust/elements/Item.qll e4058f50dda638385dcddfc290b52e32158fe3099958ef598ba618195a9e88bb fe1ea393641adb3576ef269ec63bc62edc6fa3d55737e422f636b6e9abfa1f2c lib/codeql/rust/elements/ItemList.qll c33e46a9ee45ccb194a0fe5b30a6ad3bcecb0f51486c94e0191a943710a17a7d 5a69c4e7712b4529681c4406d23dc1b6b9e5b3c03552688c55addab271912ed5 lib/codeql/rust/elements/Label.qll a31d41db351af7f99a55b26cdbbc7f13b4e96b660a74e2f1cc90c17ee8df8d73 689f87cb056c8a2aefe1a0bfc2486a32feb44eb3175803c61961a6aeee53d66e lib/codeql/rust/elements/LabelableExpr.qll 598be487cd051b004ab95cbbc3029100069dc9955851c492029d80f230e56f0d 92c49b3cfdaba07982f950e18a8d62dae4e96f5d9ae0d7d2f4292628361f0ddc @@ -89,10 +89,10 @@ lib/codeql/rust/elements/LiteralPat.qll daffb5f380a47543669c8cc92628b0e0de478c3a lib/codeql/rust/elements/Locatable.qll 2855efa4a469b54e0ca85daa89309a8b991cded6f3f10db361010831ba1e11d3 00c3406d14603f90abea11bf074eaf2c0b623a30e29cf6afc3a247cb58b92f0f lib/codeql/rust/elements/LoopExpr.qll ee171177650fa23eef102a9580765f4b6073a1cc41bab1ec31ad4f84ffe6c2c9 bfcf0cca4dc944270d9748a202829a38c64dfae167c0d3a4202788ceb9daf5f6 lib/codeql/rust/elements/LoopingExpr.qll 7ad7d4bbfd05adc0bb9b4ca90ff3377b8298121ca5360ffb45d5a7a1e20fe37a 964168b2045ee9bad827bba53f10a64d649b3513f2d1e3c17a1b1f11d0fc7f3a -lib/codeql/rust/elements/MacroCall.qll 16933db15c6c0dbb717ef442f751ad8f63c444f36a12f8d56b8a05a3e5f71d1b ac05cbf50e4b06f39f58817cddbeac6f804c2d1e4f60956a960d63d495e7183d +lib/codeql/rust/elements/MacroCall.qll a39a11d387355f59af3007dcbab3282e2b9e3289c1f8f4c6b96154ddb802f8c3 88d4575e462af2aa780219ba1338a790547fdfc1d267c4b84f1b929f4bc08d05 lib/codeql/rust/elements/MacroDef.qll acb39275a1a3257084314a46ad4d8477946130f57e401c70c5949ad6aafc5c5f 6a8a8db12a3ec345fede51ca36e8c6acbdce58c5144388bb94f0706416fa152a lib/codeql/rust/elements/MacroExpr.qll ea9fed13f610bab1a2c4541c994510e0cb806530b60beef0d0c36b23e3b620f0 ad11a6bbd3a229ad97a16049cc6b0f3c8740f9f75ea61bbf4eebb072db9b12d2 -lib/codeql/rust/elements/MacroItems.qll 00a5d41f7bb836d952abbd9382e42f72a9d81e65646a15a460b35ccd07a866c6 00efdb4d701b5599d76096f740da9ec157804865267b7e29bc2a214cbf03763e +lib/codeql/rust/elements/MacroItems.qll f2d80ff23634ac6bc3e96e8d73154587f9d24edb56654b5c0ae426124d2709ea f794f751b77fc50d7cc3069c93c22dd3a479182edce15c1b22c8da31d2e30a12 lib/codeql/rust/elements/MacroPat.qll dbf193b4fb544ac0b5a7dcfc31a6652de7239b6e643ff15b05868b2c142e940c 19b45c0a1eb1198e450c05d564b5d4aa0d6da29e7db84b9521eadf901e20a932 lib/codeql/rust/elements/MacroRules.qll a94535506798077043b9c1470992ac4310bf67bcce5f722080886d1b3e6d90d1 bd8e08a7171991abc85100b45267631e66d1b332caf1e5882cd17caee5cf18a3 lib/codeql/rust/elements/MacroStmts.qll 6e9a1f90231cb72b27d3ff9479e399a9fba4abd0872a5005ab2fac45d5ca9be0 d6ca3a8254fc45794a93c451a3305c9b4be033a467ad72158d40d6f675a377a0 @@ -316,7 +316,7 @@ lib/codeql/rust/elements/internal/MacroDefImpl.qll f26e787ffd43e8cb079db01eba044 lib/codeql/rust/elements/internal/MacroExprConstructor.qll b12edb21ea189a1b28d96309c69c3d08e08837621af22edd67ff9416c097d2df d35bc98e7b7b5451930214c0d93dce33a2c7b5b74f36bf99f113f53db1f19c14 lib/codeql/rust/elements/internal/MacroExprImpl.qll 92dd9f658a85ae407e055f090385f451084de59190d8a00c7e1fba453c3eced4 89d544634fecdbead2ff06a26fc8132e127dab07f38b9322fa14dc55657b9f1a lib/codeql/rust/elements/internal/MacroItemsConstructor.qll 8e9ab7ec1e0f50a22605d4e993f99a85ca8059fbb506d67bc8f5a281af367b05 2602f9db31ea0c48192c3dde3bb5625a8ed1cae4cd3408729b9e09318d5bd071 -lib/codeql/rust/elements/internal/MacroItemsImpl.qll 76fd50a1f27336e9efc6d3f73ef4d724f19627cadbaa805d1e14d2cfa4f19899 40c0e512090050b39b69128730f4f4581f51ffd3c687fb52913617bd70a144e9 +lib/codeql/rust/elements/internal/MacroItemsImpl.qll f89f46b578f27241e055acf56e8b4495da042ad37fb3e091f606413d3ac18e14 12e9f6d7196871fb3f0d53cccf19869dc44f623b4888a439a7c213dbe1e439be lib/codeql/rust/elements/internal/MacroPatConstructor.qll 24744c1bbe21c1d249a04205fb09795ae38ed106ba1423e86ccbc5e62359eaa2 4fac3f731a1ffd87c1230d561c5236bd28dcde0d1ce0dcd7d7a84ba393669d4a lib/codeql/rust/elements/internal/MacroPatImpl.qll 7470e2d88c38c7300a64986f058ba92bb22b4945438e2e0e268f180c4f267b71 c1507df74fc4c92887f3e0a4f857f54b61f174ffae5b1af6fb70f466175d658b lib/codeql/rust/elements/internal/MacroRulesConstructor.qll dc04726ad59915ec980501c4cd3b3d2ad774f454ddbf138ff5808eba6bd63dea 8d6bf20feb850c47d1176237027ef131f18c5cbb095f6ab8b3ec58cea9bce856 @@ -536,7 +536,7 @@ lib/codeql/rust/elements/internal/generated/Impl.qll 863281820a933a86e6890e31a25 lib/codeql/rust/elements/internal/generated/ImplTraitTypeRepr.qll a1bbebe97a0421f02d2f2ee6c67c7d9107f897b9ba535ec2652bbd27c35d61df ba1f404a5d39cf560e322294194285302fe84074b173e049333fb7f4e5c8b278 lib/codeql/rust/elements/internal/generated/IndexExpr.qll cf951fc40f6690e966b4dc78fa9a6221aa5c6cade44759dcb52254f799292d11 1572e71918cc4e0b7e028331b6d98c9db23100a3646cd3874d1915e06ab6211d lib/codeql/rust/elements/internal/generated/InferTypeRepr.qll dab311562be68a2fcbbe29956b0c3fc66d58348658b734e59f7d080c820093ae ca099ecf9803d3c03b183e4ba19f998e24c881c86027b25037914884ce3de20e -lib/codeql/rust/elements/internal/generated/Item.qll 24f388cf0d9a47b38b6cfb93bbe92b9f0cbd0b05e9aa0e6adc1d8056b2cd2f57 66a14e6ff2190e8eebf879b02d0a9a38467e293d6be60685a08542ca1fc34803 +lib/codeql/rust/elements/internal/generated/Item.qll 159de50e79228ed910c8b6d7755a6bde42bbf0a47491caffa77b9d8e0503fa88 e016c2e77d2d911048b31aeac62df1cce1c14b1a86449159638a2ca99b1cfa01 lib/codeql/rust/elements/internal/generated/ItemList.qll 73c8398a96d4caa47a2dc114d76c657bd3fcc59e4c63cb397ffac4a85b8cf8ab 540a13ca68d414e3727c3d53c6b1cc97687994d572bc74b3df99ecc8b7d8e791 lib/codeql/rust/elements/internal/generated/Label.qll 6630fe16e9d2de6c759ff2684f5b9950bc8566a1525c835c131ebb26f3eea63e 671143775e811fd88ec90961837a6c0ee4db96e54f42efd80c5ae2571661f108 lib/codeql/rust/elements/internal/generated/LabelableExpr.qll 896fd165b438b60d7169e8f30fa2a94946490c4d284e1bbadfec4253b909ee6c 5c6b029ea0b22cf096df2b15fe6f9384ad3e65b50b253cae7f19a2e5ffb04a58 @@ -551,10 +551,10 @@ lib/codeql/rust/elements/internal/generated/LiteralPat.qll f36b09cf39330019c111e lib/codeql/rust/elements/internal/generated/Locatable.qll c897dc1bdd4dfcb6ded83a4a93332ca3d8f421bae02493ea2a0555023071775e b32d242f8c9480dc9b53c1e13a5cb8dcfce575b0373991c082c1db460a3e37b8 lib/codeql/rust/elements/internal/generated/LoopExpr.qll db6bc87e795c9852426ec661fa2c2c54106805897408b43a67f5b82fb4657afd 1492866ccf8213469be85bbdbcae0142f4e2a39df305d4c0d664229ecd1ebdb9 lib/codeql/rust/elements/internal/generated/LoopingExpr.qll 0792c38d84b8c68114da2bbdfef32ef803b696cb0fd06e10e101756d5c46976c 111fe961fad512722006323c3f2a075fddf59bd3eb5c7afc349835fcec8eb102 -lib/codeql/rust/elements/internal/generated/MacroCall.qll 8b49d44e6aeac26dc2fc4b9ba03c482c65ebf0cba089d16f9d65e784e48ccbb0 9ecf6e278007adcbdc42ed1c10e7b1c0652b6c64738b780d256c9326afa3b393 +lib/codeql/rust/elements/internal/generated/MacroCall.qll 34845d451a0f2119f8fa096e882e3bb515f9d31a3364e17c3ea3e42c61307b50 f7bb4982ccb2e5d3a9c80e7cfc742620959de06a2446baf96dd002312b575bd6 lib/codeql/rust/elements/internal/generated/MacroDef.qll e9b3f07ba41aa12a8e0bd6ec1437b26a6c363065ce134b6d059478e96c2273a6 87470dea99da1a6afb3a19565291f9382e851ba864b50a995ac6f29589efbd70 lib/codeql/rust/elements/internal/generated/MacroExpr.qll 03a1daa41866f51e479ac20f51f8406d04e9946b24f3875e3cf75a6b172c3d35 1ae8ca0ee96bd2be32575d87c07cc999a6ff7770151b66c0e3406f9454153786 -lib/codeql/rust/elements/internal/generated/MacroItems.qll 894890f61e118b3727d03ca813ae7220a15e45195f2d1d059cb1bba6802128c8 db3854b347f8782a3ec9f9a1439da822727b66f0bd33727383184ab65dbf29ac +lib/codeql/rust/elements/internal/generated/MacroItems.qll bf10b946e9addb8dd7cef032ebc4480492ab3f9625edbabe69f41dcb81d448fe f6788fe1022e1d699056111d47e0f815eb1fa2826c3b6a6b43c0216d82d3904b lib/codeql/rust/elements/internal/generated/MacroPat.qll 26bc55459a66359ad83ed7b25284a25cdbd48a868fd1bbf7e23e18b449395c43 f16ede334becba951873e585c52a3a9873c9251e3dab9a3c1a1681f632f2079f lib/codeql/rust/elements/internal/generated/MacroRules.qll 4fbd94f22b5ee0f3e5aaae39c2b9a5e9b7bf878a1017811ca589942f6de92843 49fb69543ee867bae196febea6918e621f335afdf4d3ccbf219965b37c7537b1 lib/codeql/rust/elements/internal/generated/MacroStmts.qll cb4f3c2721a4d0c8522e51f567c675f4fc95f39bac8a2bd97e125d5553515ad2 09b5a739ccee75e6c556b34ecd6f78c7dc799029d9bc7df2e6169098d24f0ccd @@ -579,7 +579,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll c808c9d84dd7800573832b lib/codeql/rust/elements/internal/generated/ParenExpr.qll bc0731505bfe88516205ec360582a4222d2681d11342c93e15258590ddee82f2 d4bd6e0c80cf1d63746c88d4bcb3a01d4c75732e5da09e3ebd9437ced227fb60 lib/codeql/rust/elements/internal/generated/ParenPat.qll 4f168ef5d5bb87a903251cc31b2e44a759b099ec69c90af31783fbb15778c940 0e34f94a45a13396fd57d94c245dc64d1adde2ab0e22b56946f7e94c04e297fc lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 40ab5c592e7699c621787793743e33988de71ff42ca27599f5ab3ddb70e3f7d8 12c0a6eed2202ee3e892f61da3b3ce77ac3190854cdf3097e8d2be98aa3cb91d -lib/codeql/rust/elements/internal/generated/ParentChild.qll b9fe4919578ae4889e6993df712b685da3dc2d6559b2a2b34a466c604623feee 306fb39ad5d3877c8afcce14aa6be67ff099b334279bd0ce6b2012719a1e812a +lib/codeql/rust/elements/internal/generated/ParentChild.qll 23f333104e9ed2eef07f86de0d122b31f61e1c37923827c95fe2848ae14ec5d7 74d4d3c028110ea1491ebc2a707326b44e273a11c676708e46ada0a5bfc51fe9 lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll c5fa328ea60d3a3333d7c7bb3480969c1873166c7ac8ebb9d0afad7a8099d1a8 2dbbb6200d96f7db7dea4a55bdeab8d67b14d39a43e0bd54ada019f7e466f163 lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4 lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd @@ -594,7 +594,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 51d1e9e683fc79dddbff lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9 -lib/codeql/rust/elements/internal/generated/Raw.qll 6cfbf74f0635ce379cce096cdfe70c33b74c7e3a35d2e3af2e93bc06d374efee 5b20172d0662bdbcca737e94ee6ceefc58503898b9584bef372720fea0be2671 +lib/codeql/rust/elements/internal/generated/Raw.qll 03ebbfdedbc03ab7b1363cd0c806afca26c6f020a0d6d97f2622048e011c12a8 d60479d4739c53c53c63d7be15fd8ce6bf212e80ddda6746534971d867dfed1e lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 3d8c0bd296d33b91a81633f697a43269a6538df06d277262d3990d3f6880ef57 13680f39e89bcd8299c218aba396f3deec804597e6f7cb7d4a7e7c748b6faa77 @@ -736,11 +736,11 @@ test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql cbfcf test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql 68ce501516094512dd5bfed42a785474583a91312f704087cba801b02ba7b834 eacbf89d63159e7decfd84c2a1dc5c067dfce56a8157fbb52bc133e9702d266d test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql c95bc7306b2d77aa05a6501b6321e6f1e7a48b7ad422ba082635ab20014288ae fe72d44c9819b42fff49b9092a9fb2bfafde6d3b9e4967547fb5298822f30bc3 test/extractor-tests/generated/Comment/Comment.ql 5428b8417a737f88f0d55d87de45c4693d81f03686f03da11dc5369e163d977b 8948c1860cde198d49cff7c74741f554a9e89f8af97bb94de80f3c62e1e29244 -test/extractor-tests/generated/Const/Const.ql ddce26b7dc205fe37651f4b289e62c76b08a2d9e8fdaf911ad22a8fdb2a18bc9 b7c7e3c13582b6424a0afd07588e24a258eff7eb3c8587cc11b20aa054d3c727 +test/extractor-tests/generated/Const/Const.ql 6794d0056060a82258d1e832ad265e2eb276206f0224a3f0eb9221e225370066 0a6134fb5a849ce9bd1a28de783460301cafca5773bd7caa4fb1f774f81b476a test/extractor-tests/generated/Const/Const_getAttr.ql bd6296dab00065db39663db8d09fe62146838875206ff9d8595d06d6439f5043 34cb55ca6d1f44e27d82a8b624f16f9408bae2485c85da94cc76327eed168577 +test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql 82e86399d5cd72621dc8d9cd9f310d3dc7f2ecf208149dab0d202047ccbbd2f8 33df8c5b5044f49ec244e183c61c3b81fabd987f590ba6da4e18e08231343dc8 test/extractor-tests/generated/Const/Const_getBody.ql f50f79b7f42bb1043b79ec96f999fa4740c8014e6969a25812d5d023d7a5a5d8 90e5060ba9757f1021429ed4ec4913bc78747f3fc415456ef7e7fc284b8a0026 test/extractor-tests/generated/Const/Const_getCrateOrigin.ql f042bf15f9bde6c62d129601806c79951a2a131b6388e8df24b1dc5d17fe89f7 7c6decb624f087fda178f87f6609510907d2ed3877b0f36e605e2422b4b13f57 -test/extractor-tests/generated/Const/Const_getExpanded.ql b2d0dc1857413cdf0e222bda4717951239b8af663522990d3949dfc170fab6f5 a21fed32088db850950cb65128f2f946d498aaa6873720b653d4b9b2787c7d00 test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql 3300b902e1d1f9928cfe918203b87043e13460cfa5348a8c93712d2e26d61ced 71e7b80d3290f17b1c235adaca2c48ae90eb8b2cb24d4c9e6dc66559daf3824c test/extractor-tests/generated/Const/Const_getName.ql b876a1964bbb857fbe8852fb05f589fba947a494f343e8c96a1171e791aa2b5e 83655b1fbc67a4a1704439726c1138bb6784553e35b6ac16250b807e6cd0f40c test/extractor-tests/generated/Const/Const_getTypeRepr.ql 87c5deaa31014c40a035deaf149d76b3aca15c4560c93dd6f4b1ee5f76714baa f3e6b31e4877849792778d4535bd0389f3afd482a6a02f9ceb7e792e46fca83e @@ -760,10 +760,10 @@ test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.ql 39dae987 test/extractor-tests/generated/Crate/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql 513d64b564f359e1022ae6f3d6d4a8ad637f595f01f29a6c2a167d1c2e8f1f99 0c7a7af6ee1005126b9ab77b2a7732821f85f1d2d426312c98206cbbedc19bb2 test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql b20720ff0b147d55cea6f2de44d5bf297e79991eaf103938ccd7ab9d129e9656 eb8c9db2581cea00c29d7772de0b0a125be02c37092217a419f1a2b6a9711a6c -test/extractor-tests/generated/Enum/Enum.ql 31645674671eda7b72230cd20b7a2e856190c3a3244e002ab3558787ed1261d9 1f40ee305173af30b244d8e1421a3e521d446d935ece752da5a62f4e57345412 +test/extractor-tests/generated/Enum/Enum.ql eebc780aef77b87e6062724dd8ddb8f3ad33021061c95924c2c2439798ffbb87 0d19552872a2254f66a78b999a488ce2becdb0b0611b858e0bee2b119ee08eae test/extractor-tests/generated/Enum/Enum_getAttr.ql 8109ef2495f4a154e3bb408d549a16c6085e28de3aa9b40b51043af3d007afa7 868cf275a582266ffa8da556d99247bc8af0fdf3b43026c49e250cf0cac64687 +test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql 571ec6396fb7fc703b23aab651b3c6c05c9b5cd9d69a9ae8f5e36d69a18c89d3 c04025992f76bce7638728847f1ef835d3a48d3dc3368a4d3b73b778f1334618 test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql 76d32838b7800ed8e5cab895c9dbea76129f96afab949598bebec2b0cb34b7ff 226d099377c9d499cc614b45aa7e26756124d82f07b797863ad2ac6a6b2f5acb -test/extractor-tests/generated/Enum/Enum_getExpanded.ql 846117a6ee8e04f3d85dce1963bffcbd4bc9b4a95bfab6295c3c87a2f4eda50e 3a9c57fa5c8f514ec172e98126d21b12abe94a3a8a737fb50c838b47fe287ac4 test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql 001bb634adc4b20afb241bff41194bc91ba8544d1edd55958a01975e2ac428e1 c7c3fe3dc22a1887981a895a1e5262b1d0ad18f5052c67aa73094586de5212f6 test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql 2a858a07195a4b26b8c92e28519995bd6eba64889bddd126e161038f4a8d78e0 db188f238db915c67b084bc85aa0784c6a20b97b5a5f1966b3530c4c945b5527 test/extractor-tests/generated/Enum/Enum_getName.ql 32a8638534f37bfd416a6906114a3bcaf985af118a165b78f2c8fffd9f1841b8 c9ca8030622932dd6ceab7d41e05f86b923f77067b457fb7ec196fe4f4155397 @@ -772,17 +772,17 @@ test/extractor-tests/generated/Enum/Enum_getVisibility.ql 7fdae1b147d3d2ed41e055 test/extractor-tests/generated/Enum/Enum_getWhereClause.ql 00be944242a2056cd760a59a04d7a4f95910c122fe8ea6eca3efe44be1386b0c 70107b11fb72ed722afa9464acc4a90916822410d6b8bf3b670f6388a193d27d test/extractor-tests/generated/ExprStmt/ExprStmt.ql 811d3c75a93d081002ecf03f4e299c248f708e3c2708fca9e17b36708da620e5 a4477e67931ba90fd948a7ef778b18b50c8492bae32689356899e7104a6d6794 test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.ql e269bb222317afe1470eee1be822d305fc37c65bca2999da8d24a86fa9337036 088369d6c5b072192290c34c1828b1068aeedaabdae131594ca529bbb1630548 -test/extractor-tests/generated/ExternBlock/ExternBlock.ql 14da23b2b22f3d61a06103d1416ad416333945fd30b3a07b471f351f682c4e16 eaaf4ac8dc23c17d667bc804ed3b88c816c0c5a6127b76e2781faec52534426c +test/extractor-tests/generated/ExternBlock/ExternBlock.ql 237040dfe227530c23b77f4039d2a9ed5f247e1e8353dc99099b18d651428db2 49c8672faa8cc503cc12db6f694895ee90e9ab024a8597673fd4a620a39f28cf test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql 9b7c7263fcbc84e07361f5b419026a525f781836ede051412b22fb4ddb5d0c6a c3755faa7ffb69ad7d3b4c5d6c7b4d378beca2fa349ea072e3bef4401e18ec99 test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql 78ed6a2d31ccab67b02da4792e9d2c7c7084a9f20eb065d83f64cd1c0a603d1b e548d4fa8a3dc1ca4b7d7b893897537237a01242c187ac738493b9f5c4700521 +test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql 39b006e3acb71272cd0f211d37048949c41cc2cdf5bad1702ca95d7ff889f23f 2fceb9fa8375391cfe3d062f2d96160983d4cf94281e0098ab94c7f182cb008d test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql 5a2e0b546e17a998156f48f62e711c8a7b920d352516de3518dfcd0dfedde82d 1d11b8a790c943ef215784907ff2e367b13737a5d1c24ad0d869794114deaa32 -test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql 13d466cb7d6ab8d7d5a98237775518826675e7107dbd7a3879133841eacfcadc b091495c25ead5e93b7a4d64443ca8c8bfdeb699a802bd601efa0259610cf9e7 test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql 40d6ee4bcb77c2669e07cf8070cc1aadfca22a638412c8fcf35ff892f5393b0c e9782a3b580e076800a1ad013c8f43cdda5c08fee30947599c0c38c2638820d6 test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql 2c2b29bdfdc3b27173c068cbaab9946b42053aa14cf371236b4b60ff2e723370 dfc20fc8ef81cdce6f0badd664ef3914d6d49082eb942b1da3f45239b4351e2f -test/extractor-tests/generated/ExternCrate/ExternCrate.ql 3d4a4db58e34e6baa6689c801dd5c63d609549bcd9fa0c554b32042594a0bc46 63568f79c7b9ceb19c1847f5e8567aec6de5b904ef0215b57c7243fcf5e09a7a +test/extractor-tests/generated/ExternCrate/ExternCrate.ql 25721ab97d58155c7eb434dc09f458a7cb7346a81d62fae762c84ae0795da06d d8315c4cf2950d87ecf12861cf9ca1e1a5f9312939dce9d01c265b00ba8103fd test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql cbe8efdfdbe5d46b4cd28d0e9d3bffcf08f0f9a093acf12314c15b692a9e502e 67fe03af83e4460725f371920277186c13cf1ed35629bce4ed9e23dd3d986b95 +test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql 254a0be2f36e593f1473dfc4d4466a959683a4c09d8b8273f33b39f04bb41a7b a087003503a0b611de2cd02da4414bb0bbbc73ef60021376a4748e0e34a44119 test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql c0bf9ba36beb93dc27cd1c688f18b606f961b687fd7a7afd4b3fc7328373dcfb 312da595252812bd311aecb356dd80f2f7dc5ecf77bc956e6478bbe96ec72fd9 -test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql 007d4bae6dad9aa2d7db45dfc683a143d6ce1b3dd752233cdc46218e8bdab0b1 e77fe7e5128ee3673aec69aef44dc43f881a3767705866c956472e0137b86b60 test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql 88e16e2bbef466cec43ace25716e354408b5289f9054eaafe38abafd9df327e3 83a69487e16d59492d44d8c02f0baf7898c88ed5fcf67c73ed89d80f00c69fe8 test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.ql 6ce362fb4df37210ce491e2ef4e04c0899a67c7e15b746c37ef87a42b2b5d5f9 5209c8a64d5707e50771521850ff6deae20892d85a82803aad1328c2d6372d09 test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.ql 52007ef7745e7ceb394de73212c5566300eb7962d1de669136633aea0263afb2 da98779b9e82a1b985c1b1310f0d43c784e5e66716a791ac0f2a78a10702f34b @@ -822,12 +822,12 @@ test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql 27 test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.ql 634efdffaae4199aa9d95652cf081a8dc26e88224e24678845f8a67dc24ce090 d0302fee5c50403214771d5c6b896ba7c6e52be10c9bea59720ef2bb954e6f40 test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.ql 0d2140f84d0220b0c72c48c6bd272f4cfe1863d1797eddd16a6e238552a61e4d f4fe9b29697041e30764fa3dea44f125546bfb648f32c3474a1e922a4255c534 test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.ql 01ef27dd0bfab273e1ddc57ada0e079ece8a2bfd195ce413261006964b444093 acd0161f86010759417015c5b58044467a7f760f288ec4e8525458c54ae9a715 -test/extractor-tests/generated/Function/Function.ql 084e8c4a938e0eea6e2cd47b592021891cb2ad04edbec336f87f0f3faf6a7f32 200b8b17eb09f6df13b2e60869b0329b7a59e3d23a3273d17b03f6addd8ebf89 +test/extractor-tests/generated/Function/Function.ql 2efae1916e8f501668b3dbb2237cda788243fdd643683eda41b108dfdc578a90 6ec948518963985ec41b66e2b3b2b953e1da872dcd052a6d8c8f61c25bf09600 test/extractor-tests/generated/Function/Function_getAbi.ql e5c9c97de036ddd51cae5d99d41847c35c6b2eabbbd145f4467cb501edc606d8 0b81511528bd0ef9e63b19edfc3cb638d8af43eb87d018fad69d6ef8f8221454 test/extractor-tests/generated/Function/Function_getAttr.ql 44067ee11bdec8e91774ff10de0704a8c5c1b60816d587378e86bf3d82e1f660 b4bebf9441bda1f2d1e34e9261e07a7468cbabf53cf8047384f3c8b11869f04e +test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql 17a346a9e5d28af99522520d1af3852db4cae01fb3d290a65c5f84d8d039c345 36fb06b55370828d9bc379cf5fad7f383cdb6f6db6f7377660276943ab0e1ec8 test/extractor-tests/generated/Function/Function_getBody.ql cf2716a751e309deba703ee4da70e607aae767c1961d3c0ac5b6728f7791f608 3beaf4032924720cb881ef6618a3dd22316f88635c86cbc1be60e3bdad173e21 test/extractor-tests/generated/Function/Function_getCrateOrigin.ql acec761c56b386600443411cabb438d7a88f3a5e221942b31a2bf949e77c14b4 ff2387acb13eebfad614b808278f057a702ef4a844386680b8767f9bb4438461 -test/extractor-tests/generated/Function/Function_getExpanded.ql dc93cca67a3436543cd5b8e5c291cceacde523b8652f162532b274e717378293 c0c28eeb6c97690dfc82bd97e31db1a6b72c6410b98eb193270a37fc95952518 test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql 0bcdca25bb92424007cea950409d73ba681e3ffbea53e0508f1d630fccfa8bed ff28c3349f5fc007d5f144e549579bd04870973c0fabef4198edce0fba0ef421 test/extractor-tests/generated/Function/Function_getGenericParamList.ql 0b255791c153b7cb03a64f1b9ab5beccc832984251f37516e1d06ce311e71c2b d200f90d4dd6f8dfd22ce49203423715d5bef27436c56ee553097c668e71c5a1 test/extractor-tests/generated/Function/Function_getName.ql 3d9e0518075d161213485389efe0adf8a9e6352dd1c6233ef0403a9abbcc7ed1 841e644ecefff7e9a82f458bcf14d9976d6a6dbe9191755ead88374d7c086375 @@ -848,11 +848,11 @@ test/extractor-tests/generated/IfExpr/IfExpr_getAttr.ql f5872cdbb21683bed689e753 test/extractor-tests/generated/IfExpr/IfExpr_getCondition.ql 5bab301a1d53fe6ee599edfb17f9c7edb2410ec6ea7108b3f4a5f0a8d14316e3 355183b52cca9dc81591a09891dab799150370fff2034ddcbf7b1e4a7cb43482 test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql 8674cedf42fb7be513fdf6b9c3988308453ae3baf8051649832e7767b366c12f e064e5f0b8e394b080a05a7bccd57277a229c1f985aa4df37daea26aeade4603 test/extractor-tests/generated/IfExpr/IfExpr_getThen.ql 0989ddab2c231c0ee122ae805ffa0d3f0697fb7b6d9e53ee6d32b9140d4b0421 81028f9cd6b417c63091d46a8b85c3b32b1c77eea885f3f93ae12c99685bfe0a -test/extractor-tests/generated/Impl/Impl.ql a6e19421a7785408ad5ce8e6508d9f88eceb71fe6f6f4abc5795285ecc778db6 158519bed8a89b8d25921a17f488267af6be626db559bd93bbbe79f07ebfed6c +test/extractor-tests/generated/Impl/Impl.ql 3a82dc8738ad09d624be31cad86a5a387981ec927d21074ec6c9820c124dfd57 8fabe8e48396fb3ad5102539241e6b1d3d2455e4e5831a1fa2da39e4faf68a0e test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql cf875361c53c081ac967482fd3af8daf735b0bc22f21dcf0936fcf70500a001a 0ad723839fa26d30fa1cd2badd01f9453977eba81add7f0f0a0fcb3adb76b87e test/extractor-tests/generated/Impl/Impl_getAttr.ql 018bdf6d9a9724d4f497d249de7cecd8bda0ac2340bde64b9b3d7c57482e715b cd065899d92aa35aca5d53ef64eadf7bb195d9a4e8ed632378a4e8c550b850cd +test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql 526d4651f2bc703ee107f72b9940a3062777645d2421a3522429bf1d3925f6a2 c08c3d7501552987e50b28ab12a34abd539f6a395b8636167b109d9a470f195e test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql 494d5524ef7bac1286b8a465e833e98409c13f3f8155edab21d72424944f2ed9 b238ef992fce97699b14a5c45d386a2711287fd88fa44d43d18c0cdfd81ed72c -test/extractor-tests/generated/Impl/Impl_getExpanded.ql ce623514e77f67dda422566531515d839a422e75ea87a10d86ad162fa61e1469 533624938c937835a59326c086e341b7bacab32d84af132e7f3d0d17c6cd4864 test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql 3ab82fd7831d22c7ec125908abf9238a9e8562087d783c1c12c108b449c31c83 320afd5dd1cea9017dbc25cc31ebe1588d242e273d27207a5ad2578eee638f7e test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql 88d5cd8fd03cb4cc2887393ee38b2e2315eeef8c4db40a9bd94cf86b95935bdd 9c72828669ccf8f7ca39851bc36a0c426325a91fc428b49681e4bb680d6547a9 test/extractor-tests/generated/Impl/Impl_getSelfTy.ql 2962d540a174b38815d150cdd9053796251de4843b7276d051191c6a6c8ecad4 b7156cec08bd6231f7b8f621e823da0642a0eb036b05476222f259101d9d37c0 @@ -900,19 +900,20 @@ test/extractor-tests/generated/LoopExpr/LoopExpr.ql 37b320acefa3734331f87414de27 test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql d557c1a34ae8762b32702d6b50e79c25bc506275c33a896b6b94bbbe73d04c49 34846c9eefa0219f4a16e28b518b2afa23f372d0aa03b08d042c5a35375e0cd6 test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql 0b77b9d9fb5903d37bce5a2c0d6b276e6269da56fcb37b83cd931872fb88490f c7f09c526e59dcadec13ec9719980d68b8619d630caab2c26b8368b06c1f2cc0 test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql 0267f54077640f3dfeb38524577e4a1229115eeb1c839398d0c5f460c1d65129 96ec876635b8c561f7add19e57574444f630eae3df9ab9bc33ac180e61f3a7b8 -test/extractor-tests/generated/MacroCall/MacroCall.ql 989d90726edab22a69377480ce5d1a13309d9aac60e0382c2ad6d36e8c7f1df5 68ffd6e1afa0c2c17fb04f87a09baca9766421aa28acd4ef8a6d04798f4c3a57 +test/extractor-tests/generated/MacroCall/MacroCall.ql 992e338a9c1353030f4bb31cae6ae4a1b957052e28c8753bae5b6d33dbe03fe9 863fbfd712a4f9ed613abb64ecb814b0a72b9ab65c50aa0dc5279d319249ae6a test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql c22a2a29d705e85b03a6586d1eda1a2f4f99f95f7dfeb4e6908ec3188b5ad0ad 9b8d9dcc2116a123c15c520a880efab73ade20e08197c64bc3ed0c50902c4672 +test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql 60cf2c12ec7fc3b25ed2a75bb7f3da5689469a65a418ba68db0ab26d0c227967 7f71c88c67834f82ef4bda93a678a084d41e9acb86808c3257b37dfc6c2908d2 test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql 3030e87de6f773d510882ee4469146f6008898e23a4a4ccabcbaa7da1a4e765e a10fe67315eda1c59d726d538ead34f35ccffc3e121eeda74c286d49a4ce4f54 -test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.ql 757c4a4c32888e4604044c798a3180aa6d4f73381eec9bc28ba9dc71ffcbd03a 27d5edaa2c1096a24c86744aaad0f006da20d5caa28ccfd8528e7c98aa1bead1 test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql 553b810f611014ae04d76663d1393c93687df8b96bda325bd71e264e950a8be9 a0e80c3dac6a0e48c635e9f25926b6a97adabd4b3c0e3cfb6766ae160bcb4ee7 +test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.ql 1416adaedf6a11680c7261c912aa523db72d015fbfdad3a288999216050380a6 10b87d50f21ac5e1b7706fe3979cab72ecb95f51699540f2659ee161c9186138 test/extractor-tests/generated/MacroCall/MacroCall_getPath.ql 160edc6a001a2d946da6049ffb21a84b9a3756e85f9a2fb0a4d85058124b399a 1e25dd600f19ef89a99f328f86603bce12190220168387c5a88bfb9926da56d9 test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.ql 1cbf6b1ac7fa0910ff299b939743153fc00ad7e28a9a70c69a8297c6841e8238 570380c0dc4b20fe25c0499378569720a6da14bdb058e73d757e174bdd62d0c0 -test/extractor-tests/generated/MacroDef/MacroDef.ql 2b9965d72ba85d531f66e547059110e95a03315889fbb3833cce121c1ad49309 2b5b03afbce92745b1d9750a958b602ccf5e7f9f7934fb12d8b3c20dfc8d3d28 +test/extractor-tests/generated/MacroDef/MacroDef.ql 13ef4bdde6910b09cefe47f8753f092ed61db4d9f3cece0f67071b12af81991c a68091e30a38a9b42373497b79c9b4bde23ef0ab8e3a334ff73bfdde0c9895b2 test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql 61f11d6ba6ea3bd42708c4dc172be4016277c015d3560025d776e8fef447270f 331541eff1d8a835a9ecc6306f3adf234cbff96ea74b0638e482e03f3e336fd1 test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql 0a30875f7b02351a4facf454273fb124aa40c6ef8a47dfe5210072a226b03656 8e97307aef71bf93b28f787050bfaa50fe95edf6c3f5418acd07c1de64e62cc1 +test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql bd076cf1bab968a1502467652d73259d1ce0fe7f8af73bdf914e2ed1d903adf7 4673df049b36082be9a5b325f6afa7118b930bccdb5689e57ff7192b21d07345 test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql 7b350f48e6f208d9fa4725919efd439baf5e9ec4563ba9be261b7a17dacc451b 33f99a707bb89705c92195a5f86055d1f6019bcd33aafcc1942358a6ed413661 test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql 6c46366798df82ed96b8fb1efeb46bd84c2660f226ff2359af0041d5cdf004ba 8ab22599ef784dcad778d86828318699c2230c8927ae98ab0c60ac4639d6d1b5 -test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql 7f2baed8b5a2ba8a6e67cb601e7a03a7d3276673d6bd3b05f83b76058622bc2d 85241a780e2cec0be062042bcea4a3c3282f3694f6bf7faa64a51f1126b1f438 test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql d09b262b8e5558078506ec370255a63c861ca0c41ab9af3eb4f987325dadd90c cd466062c59b6a8ea2a05ddac1bf5b6d04165755f4773867774215ec5e79afa3 test/extractor-tests/generated/MacroDef/MacroDef_getName.ql 6bc8a17804f23782e98f7baf70a0a87256a639c11f92e3c80940021319868847 726f9d8249b2ca6789d37bb4248bf5dd044acc9add5c25ed62607502c8af65aa test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.ql d858ccaab381432c529bf4a621afc82ea5e4b810b463f2b1f551de79908e14e7 83a85c4f90417ab44570a862642d8f8fc9208e62ba20ca69b32d39a3190381aa @@ -922,10 +923,10 @@ test/extractor-tests/generated/MacroItems/MacroItems.ql 876b5d2a4ce7dcb599e02208 test/extractor-tests/generated/MacroItems/MacroItems_getItem.ql 53fc2db35a23b9aca6ee327d2a51202d23ddf482e6bdd92c5399b7f3a73959b1 63051c8b7a7bfbe9cc640f775e753c9a82f1eb8472989f7d3c8af94fdf26c7a0 test/extractor-tests/generated/MacroPat/MacroPat.ql d9ec72d4d6a7342ee2d9aa7e90227faa31792ca5842fe948d7fdf22597a123b7 74b0f21ef2bb6c13aae74dba1eea97451755110909a083360e2c56cfbc76fd91 test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql 398996f0d0f2aa6d3b58d80b26c7d1185b5094d455c6c5c7f075f6d414150aa6 b4662e57cac36ed0e692201f53ba46c3d0826bba99c5cc6dfcb302b44dd2154b -test/extractor-tests/generated/MacroRules/MacroRules.ql 46c125145d836fd5d781d4eda02f9f09f2d39a35350dffb982610b27e4e4936f 4068314eca12ac08ad7e90ceb8b9d935a355c2fe8c38593972484abde1ac47b4 +test/extractor-tests/generated/MacroRules/MacroRules.ql 3c88db0c2ba65a1871340a5e940b66d471477852a1e3edba59a86234b7a9c498 98778dd95d029e4801c42081238db84a39e3ed60b30932436ea0fb51eedfcda1 test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql 7de501c724e3465520cdc870c357911e7e7fce147f6fb5ed30ad37f21cf7d932 0d7754b89bcad6c012a0b43ee4e48e64dd20b608b3a7aeb4042f95eec50bb6e6 +test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql 461651a72e5f860864ed4342973a666efa5b5749b7fcb00297808352a93f86e0 8b18a507753014f9faf716061d2366f7768dee0e8ea6c04e5276729306f26ce0 test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql fccedeee10ef85be3c26f6360b867e81d4ebce3e7f9cf90ccb641c5a14e73e7d 28c38a03a7597a9f56032077102e7a19378b0f3f3a6804e6c234526d0a441997 -test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql 01746ce9f525dcf97517d121eb3d80a25a1ee7e1d550b52b3452ee6b8fd83a00 0ccb55088d949fa2cd0d0be34ea5a626c221ae1f35d56ccf2eb20c696d3c157b test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql a0098b1d945df46e546e748c2297444aaccd04a4d543ba3d94424e7f33be6d26 3bab748c7f5bbe486f30e1a1c422a421ab622f401f4f865afb003915ae47be83 test/extractor-tests/generated/MacroRules/MacroRules_getName.ql 591606e3accae8b8fb49e1218c4867a42724ac209cf99786db0e5d7ea0bf55d5 d2936ef5aa4bbf024372516dde3de578990aafb2b8675bbbf0f72e8b54eb82a8 test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql 7598d33c3d86f9ad8629219b90667b2b65e3a1e18c6b0887291df9455a319cab 69d90446743e78e851145683c17677497fe42ed02f61f2b2974e216dc6e05b01 @@ -961,10 +962,10 @@ test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.ql 13 test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.ql 77407ac956c897ff7234132de1a825f1af5cfd0b6c1fd3a30f64fe08813d56db d80719e02d19c45bd6534c89ec7255652655f5680199854a0a6552b7c7793249 test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.ql c22504665900715e8a32dd47627111e8cef4ed2646f74a8886dead15fbc85bb5 d92462cf3cb40dcd383bcaffc67d9a43e840494df9d7491339cbd09a0a73427b test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql 9e7bbb7ed60db49b45c3bdf8e01ec58de751889fc394f59ac33f9d6e98200aa1 c055d877e2ff0edc78cce6dd79c78b2881e7940889729cbb5c12e7029ddeb5a3 -test/extractor-tests/generated/Module/Module.ql 3b534dc4377a6411d75c5d1d99ad649acaebd17364af2738cbc86f5a43315028 feeedeb64c4eccba1787bff746ee8009bddead00123de98b8d5ca0b401078443 +test/extractor-tests/generated/Module/Module.ql 9e75a0f22f1f71eb473ebe73e6ffc618cbb59ea9f22b6e8bc85d3fb00b771c52 3eb5201ef046259207cb64fb123a20b01f2e742b7e4dd38400bd24743e2db1ad test/extractor-tests/generated/Module/Module_getAttr.ql b97ae3f5175a358bf02c47ec154f7c2a0bd7ca54d0561517008d59344736d5cd f199116633c183826afa9ab8e409c3bf118d8e626647dbc617ae0d40d42e5d25 +test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql 9f7c04c405d25448ed6d0e7bf1bb7fea851ea0e400db2246151dd705292ae3a8 f55d86901c7cf053cd68cb7ceb4d6b786834d2d35394079326ea992e7fbc9ce1 test/extractor-tests/generated/Module/Module_getCrateOrigin.ql ff479546bf8fe8ef3da60c9c95b7e8e523c415be61839b2fff5f44c146c4e7df b14d3c0577bd6d6e3b6e5f4b93448cdccde424e21327a2e0213715b16c064a52 -test/extractor-tests/generated/Module/Module_getExpanded.ql 03d49dd284795a59b7b5126218e1c8c7ce1cb0284c5070e2d8875e273d9d90fc fa004cf6b464afe0307c767e4dd29bbce7e1c65de61cdd714af542a8b68bbe44 test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql 55c5b633d05ddbe47d324535a337d5dfed5913ab23cdb826424ddd22009a2a53 ab9e11e334e99be0d4c8d2bd0580657211d05feeeb322fbb5400f07264219497 test/extractor-tests/generated/Module/Module_getItemList.ql 59b49af9788e9d8b5bceaeffe3c3d203038abd987880a720669117ac3db35388 9550939a0e07b11892b38ca03a0ce305d0e924c28d27f25c9acc47a819088969 test/extractor-tests/generated/Module/Module_getName.ql 7945dc007146c650cf4f5ac6e312bbd9c8b023246ff77f033a9410da29774ace 9de11a1806487d123376c6a267a332d72cd81e7d6e4baa48669e0bb28b7e352e @@ -1062,11 +1063,11 @@ test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.ql a6604f test/extractor-tests/generated/SourceFile/SourceFile.ql c30a3c2c82be3114f3857295615e2ec1e59c823f0b65ea3918be85e6b7adb921 6a5bbe96f81861c953eb89f77ea64d580f996dca5950f717dd257a0b795453e6 test/extractor-tests/generated/SourceFile/SourceFile_getAttr.ql 450404306b3d991b23c60a7bb354631d37925e74dec7cc795452fe3263dc2358 07ffcc91523fd029bd599be28fe2fc909917e22f2b95c4257d3605f54f9d7551 test/extractor-tests/generated/SourceFile/SourceFile_getItem.ql f17e44bc0c829b2aadcb6d4ab9c687c10dc8f1afbed4e5190404e574d6ab3107 1cf49a37cc32a67fdc00d16b520daf39143e1b27205c1a610e24d2fe1a464b95 -test/extractor-tests/generated/Static/Static.ql 271ef78c98c5cb8c80812a1028bb6b21b5e3ae11976ed8276b35832bf41c4798 23ab4c55836873daf500973820d2d5eaa5892925ebdc5d35e314b87997ca6ce3 +test/extractor-tests/generated/Static/Static.ql f5f71ff62984d3b337b2065b0a5bc13eed71a61bbf5869f1a1977c5e35dfdd50 630c4d30987e3ca873487f6f0cf7f498827ae0ace005005acdd573cf0e660f6e test/extractor-tests/generated/Static/Static_getAttr.ql adb0bbf55fb962c0e9d317fd815c09c88793c04f2fb78dfd62c259420c70bc68 d317429171c69c4d5d926c26e97b47f5df87cf0552338f575cd3aeea0e57d2c2 +test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql 828ba050c964781dace382e4673c232f2aa80aa4e414d371fd421c3afc2b6902 018f8b75e1779829c87299d2d8f1ab5e7fa1aaa153599da789cf29b599d78477 test/extractor-tests/generated/Static/Static_getBody.ql e735bbd421e22c67db792671f5cb78291c437621fdfd700e5ef13b5b76b3684d 9148dc9d1899cedf817258a30a274e4f2c34659140090ca2afeb1b6f2f21e52f test/extractor-tests/generated/Static/Static_getCrateOrigin.ql f24ac3dac6a6e04d3cc58ae11b09749114a89816c28b96bf6be0e96b2e20d37f e4051426c5daa7e73c1a5a9023d6e50a2b46ebf194f45befbe3dd45e64831a55 -test/extractor-tests/generated/Static/Static_getExpanded.ql 6f949494cba88f12b1657badd7d15bdd0b6aba73701674a64aac9d30cbb4907f 9ea0c4bb0100482e9ae0b03c410860f10fd88115e854b2516b61732acc634501 test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql 6ec02f7ec9cf4cb174a7cdf87921758a3e798c76171be85939614305d773b6a0 c51567dac069fc67ece0aa018ae6332187aa1145f33489093e4aee049d7cea52 test/extractor-tests/generated/Static/Static_getName.ql c7537e166d994b6f961547e8b97ab4328b78cbd038a0eb9afaae42e35f6d9cb4 bb5ae24b85cd7a8340a4ce9e9d56ec3be31558051c82257ccb84289291f38a42 test/extractor-tests/generated/Static/Static_getTypeRepr.ql 45efcf393a3c6d4eca92416d8d6c88e0d0e85a2bc017da097ae2bbbe8a271a32 374b551e2d58813203df6f475a1701c89508803693e2a4bec7afc86c2d58d60b @@ -1075,10 +1076,10 @@ test/extractor-tests/generated/StmtList/StmtList.ql 0010df0d5e30f7bed3bd5d916faf test/extractor-tests/generated/StmtList/StmtList_getAttr.ql 78d4bf65273498f04238706330b03d0b61dd03b001531f05fcb2230f24ceab64 6e02cee05c0b9f104ddea72b20097034edb76e985188b3f10f079bb03163b830 test/extractor-tests/generated/StmtList/StmtList_getStatement.ql abbc3bcf98aab395fc851d5cc58c9c8a13fe1bdd531723bec1bc1b8ddbec6614 e302a26079986fa055306a1f641533dfde36c9bc0dd7958d21e2518b59e808c2 test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql 578d7c944ef42bdb822fc6ce52fe3d49a0012cf7854cfddbb3d5117133700587 64ea407455a3b4dfbb86202e71a72b5abbff885479367b2834c0dd16d1f9d0ee -test/extractor-tests/generated/Struct/Struct.ql 13d575bd8ca4ad029d233a13a485005bc03f58221b976c7e1df7456ddc788544 fc7cbaaf44d71e66aa8170b1822895fc0d0710d0b3a4da4f1b96ed9633f0b856 +test/extractor-tests/generated/Struct/Struct.ql a4e5d3fe4f994bdf911ebed54a65d237cd5a00510337e911bd5286637bc8ea80 a335224605f3cc35635bf5fd0bebcb50800429c0a82a5aa86a37cb9f6eb3f651 test/extractor-tests/generated/Struct/Struct_getAttr.ql 028d90ddc5189b82cfc8de20f9e05d98e8a12cc185705481f91dd209f2cb1f87 760780a48c12be4581c1675c46aae054a6198196a55b6b989402cc29b7caf245 +test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql a17504527a307615d26c2c4b6c21fe9b508f5a77a741d68ca605d2e69668e385 f755d8965c10568a57ff44432a795a0a36b86007fc7470bc652d555946e19231 test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql 289622244a1333277d3b1507c5cea7c7dd29a7905774f974d8c2100cea50b35f d32941a2d08d7830b42c263ee336bf54de5240bfc22082341b4420a20a1886c7 -test/extractor-tests/generated/Struct/Struct_getExpanded.ql fc6809bfafce55b6ff1794898fcd08ac220c4b2455782c52a51de64346ed09ba 9bcb24573b63831861b55c7f93af58e19af2929acf9bb1b8da94763bbfcde013 test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql 866a5893bd0869224fb8aadd071fba35b5386183bb476f5de45c9de7ab88c583 267aedc228d69e31ca8e95dcab6bcb1aa30f9ebaea43896a55016b7d68e3c441 test/extractor-tests/generated/Struct/Struct_getFieldList.ql f45d6d5d953741e52aca67129994b80f6904b2e6b43c519d6d42c29c7b663c42 77a7d07e8462fa608efc58af97ce8f17c5369f9573f9d200191136607cb0e600 test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql cd72452713004690b77086163541fa319f8ab5faf503bb4a6a20bcaf2f790d38 4d72e891c5fac6e491d9e18b87ecf680dc423787d6b419da8f700fe1a14bc26f @@ -1122,21 +1123,21 @@ test/extractor-tests/generated/TokenTree/TokenTree.ql ba2ef197e0566640b57503579f test/extractor-tests/generated/Trait/AssocItemList.ql 0ea572b1350f87cc09ce4dc1794b392cc9ad292abb8439c106a7a1afe166868b 6e7493a3ace65c68b714e31234e149f3fc44941c3b4d125892531102b1060b2f test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.ql 8149d905f6fc6caeb51fa1ddec787d0d90f4642687461c7b1a9d4ab93a27d65d 8fb9caad7d88a89dd71e5cc8e17496afbdf33800e58179f424ef482b1b765bb1 test/extractor-tests/generated/Trait/AssocItemList_getAttr.ql 06526c4a28fd4fdce04ca15fbadc2205b13dcc2d2de24177c370d812e02540e6 79c8ce6e1f8acc1aaca498531e2c1a0e7e2c0f2459d7fc9fe485fd82263c433f -test/extractor-tests/generated/Trait/Trait.ql a7407c80d297ba0b7651ae5756483c8d81874d20af4123552d929870e9125d13 62e45d36c9791702bc9d4a26eb04f22fe713d120a8e00fe6131032b081bad9f4 +test/extractor-tests/generated/Trait/Trait.ql 064785e9389bdf9abd6e0c8728a90a399af568a24c4b18b32cf1c2be2bcbf0b8 a77e89ac31d12c00d1849cb666ebb1eecc4a612934a0d82cd82ecd4c549c9e97 test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql 05e6896f60afabf931a244e42f75ee55e09c749954a751d8895846de3121f58f def1f07d9945e8d9b45a659a285b0eb72b37509d20624c88e0a2d34abf7f0c72 test/extractor-tests/generated/Trait/Trait_getAttr.ql 9711125fa4fc0212b6357f06d1bc50df50b46168d139b649034296c64d732e21 901b6a9d04055b563f13d8742bd770c76ed1b2ccf9a7236a64de9d6d287fbd52 +test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql 7ea169336dca0fcaf961f61d811c81834ea28b17b2a01dc57a6e89f5bedc7594 d5a542f84149c0ccd32c7b4a7a19014a99aa63a493f40ea6fbebb83395b788a1 test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql d8433d63bb2c4b3befaaedc9ce862d1d7edcdf8b83b3fb5529262fab93880d20 3779f2678b3e00aac87259ecfe60903bb564aa5dbbc39adc6c98ad70117d8510 -test/extractor-tests/generated/Trait/Trait_getExpanded.ql 4a6912b74ad6cbfce27c6ffdff781271d182a91a4d781ee02b7ac35b775d681b 14c8df06c3909c9986fc238229208e87b39b238890eb5766af2185c36e3b00c9 test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql a2bd16e84f057ed8cb6aae3e2a117453a6e312705302f544a1496dbdd6fcb3e6 b4d419045430aa7acbc45f8043acf6bdacd8aff7fdda8a96c70ae6c364c9f4d1 test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql b27ff28e3aff9ec3369bbbcbee40a07a4bd8af40928c8c1cb7dd1e407a88ffee 2b48e2049df18de61ae3026f8ab4c3e9e517f411605328b37a0b71b288826925 test/extractor-tests/generated/Trait/Trait_getName.ql d4ff3374f9d6068633bd125ede188fcd3f842f739ede214327cd33c3ace37379 3dcf91c303531113b65ea5205e9b6936c5d8b45cd3ddb60cd89ca7e49f0f00c1 test/extractor-tests/generated/Trait/Trait_getTypeBoundList.ql 8a4eb898424fe476db549207d67ba520999342f708cbb89ee0713e6bbf1c050d 69d01d97d161eef86f24dd0777e510530a4db5b0c31c760a9a3a54f70d6dc144 test/extractor-tests/generated/Trait/Trait_getVisibility.ql 8f4641558effd13a96c45d902e5726ba5e78fc9f39d3a05b4c72069993c499f4 553cf299e7d60a242cf44f2a68b8349fd8666cc4ccecab5ce200ce44ad244ba9 test/extractor-tests/generated/Trait/Trait_getWhereClause.ql b34562e7f9ad9003d2ae1f3a9be1b5c141944d3236eae3402a6c73f14652e8ad 509fa3815933737e8996ea2c1540f5d7f3f7de21947b02e10597006967efc9d1 -test/extractor-tests/generated/TraitAlias/TraitAlias.ql 6ba52527c90cd067ce3a48bb5051ba94c3c108444d428244622d381c1264ba55 76acb3a91331fa55c390a1cf2fd70a35052d9019b0216f5e00271ee367607d33 +test/extractor-tests/generated/TraitAlias/TraitAlias.ql c2a36ea7bf5723b9ec1fc24050c99681d9443081386980987bcb5989230a6605 b511356fea3dee5b70fee15369855002775c016db3f292e08293d0bf4b5bd33d test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql 128c24196bfa6204fffd4154ff6acebd2d1924bb366809cdb227f33d89e185c8 56e8329e652567f19ef7d4c4933ee670a27c0afb877a0fab060a0a2031d8133e +test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql 029d261d0bdd6fe5bc30011ac72481bce9e5a6029d52fde8bd00932455703276 cad506346840304954e365743c33efed22049f0cbcbb68e21d3a95f7c2e2b301 test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql 303212122021da7f745050c5de76c756461e5c6e8f4b20e26c43aa63d821c2b6 fdbd024cbe13e34265505147c6faffd997e5c222386c3d9e719cd2a385bde51c -test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql 8767d1ffb0a9c1e84c39907d3ab5456aff146e877f7bfe905786ff636a39acd9 9467a2b63f32b84501f4aa1ce1e0fc822845a9239216b9ebf4eaf0c23d6d27f3 test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql 601b6b0e5e7e7f2926626866085d9a4a9e31dc575791e9bd0019befc0e397193 9bd325414edc35364dba570f6eecc48a8e18c4cbff37d32e920859773c586319 test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql 5a40c1760fcf5074dc9e9efa1a543fc6223f4e5d2984923355802f91edb307e4 9fd7ab65c1d6affe19f96b1037ec3fb9381e90f602dd4611bb958048710601fa test/extractor-tests/generated/TraitAlias/TraitAlias_getName.ql e91fa621774b9467ae820f3c408191ac75ad33dd73bcd417d299006a84c1a069 113e0c5dd2e3ac2ddb1fd6b099b9b5c91d5cdd4a02e62d4eb8e575096f7f4c6a @@ -1164,10 +1165,10 @@ test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOri test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.ql 150898b6e55cc74b9ddb947f136b5a7f538ee5598928c5724d80e3ddf93ae499 66e0bd7b32df8f5bbe229cc02be6a07cb9ec0fe8b444dad3f5b32282a90551ee test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql 2f99917a95a85a932f423cba5a619a51cada8e704b93c54b0a8cb5d7a1129fa1 759bd02347c898139ac7dabe207988eea125be24d3e4c2282b791ec810c16ea7 test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql 615acfcbc475b5c2ffa8e46d023fc2e19d29ee879b4949644a7f0b25c33125e6 81b037af5dcb8a0489a7a81a0ad668ca781b71d4406c123c4f1c4f558722f13e -test/extractor-tests/generated/TypeAlias/TypeAlias.ql b7c4adb8322a2032657f4417471e7001dbe8236da79af963d6ac5ddf6c4e7c8a 7504a27f32fd76520398c95abd6adeca67be5b71ff4b8abdd086eb29c0d698fc +test/extractor-tests/generated/TypeAlias/TypeAlias.ql 5cbf0b82a25a492c153b4663e5a2c0bea4b15ff53fa22ba1217edaf3bb48c6af d28e6a9eafff3fb84a6f38e3c79ad0d54cb08c7609cd43c968efd3fbc4154957 test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql ecf4b45ef4876e46252785d2e42b11207e65757cdb26e60decafd765e7b03b49 21bb4d635d3d38abd731b9ad1a2b871f8e0788f48a03e9572823abeea0ea9382 +test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql fa2f0867039866e6405a735f9251de182429d3f1fdf00a749c7cfc3e3d62a7bb 56083d34fffd07a43b5736479b4d3b191d138415759639e9dd60789fefe5cb6f test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql cd66db5b43bcb46a6cf6db8c262fd524017ef67cdb67c010af61fab303e3bc65 2aebae618448530ec537709c5381359ea98399db83eeae3be88825ebefa1829d -test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql dc797269de5b29409484577d4f2e4de9462a1001232a57c141c1e9d3f0e7ad74 d2c3d55fcdf077523ceb899d11d479db15b449b5e82eb8610cb637ae79ef74e6 test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql fe9c4132e65b54eb071b779e508e9ed0081d860df20f8d4748332b45b7215fd5 448c10c3f8f785c380ce430996af4040419d8dccfa86f75253b6af83d2c8f1c9 test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql e7e936458dce5a8c6675485a49e2769b6dbff29c112ed744c880e0fc7ae740ef e5fcf3a33d2416db6b0a73401a3cbc0cece22d0e06794e01a1645f2b3bca9306 test/extractor-tests/generated/TypeAlias/TypeAlias_getName.ql 757deb3493764677de3eb1ff7cc119a469482b7277ed01eb8aa0c38b4a8797fb 5efed24a6968544b10ff44bfac7d0432a9621bde0e53b8477563d600d4847825 @@ -1190,20 +1191,20 @@ test/extractor-tests/generated/TypeParam/TypeParam_getName.ql 9d5b6d6a9f2a5793e2 test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.ql 080a6b370ad460bf128fdfd632aa443af2ad91c3483e192ad756eb234dbfa4d8 8b048d282963f670db357f1eef9b8339f83d03adf57489a22b441d5c782aff62 test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql 4ad6ed0c803fb4f58094a55b866940b947b16259756c674200172551ee6546e0 d3270bdcc4c026325159bd2a59848eb51d96298b2bf21402ea0a83ac1ea6d291 test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql d8502be88bcd97465f387c410b5078a4709e32b2baa556a4918ea5e609c40dd7 b238dc37404254e3e7806d50a7b1453e17e71da122931331b16a55853d3a843f -test/extractor-tests/generated/Union/Union.ql ef8005f4ac5d3e6f308b3bb1a1861403674cbb1b72e6558573e9506865ae985e 88933d0f9500ce61a847fbb792fd778d77a4e7379fc353d2a9f5060773eda64f +test/extractor-tests/generated/Union/Union.ql 2795c83d4511fadf24cc66a762adbabca084bc6ac48501715f666979d2ea9ea5 7efae5209ae3ee8c73cd1c9e9e05f01b3fdda65d9a553c2ac5216351b6f15e5c test/extractor-tests/generated/Union/Union_getAttr.ql 42fa0878a6566208863b1d884baf7b68b46089827fdb1dbbfacbfccf5966a9a2 54aa94f0281ca80d1a4bdb0e2240f4384af2ab8d50f251875d1877d0964579fc +test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql ddd0133a497dc057a353b86acc8ed991fefeaefa335d8ad9fe95109a90e39e54 fcaed4287815226843157c007674b1f1405cae31856fed1113d569bab5608d9b test/extractor-tests/generated/Union/Union_getCrateOrigin.ql c218308cf17b1490550229a725542d248617661b1a5fa14e9b0e18d29c5ecc00 e0489242c8ff7aa4dbfdebcd46a5e0d9bea0aa618eb0617e76b9b6f863a2907a -test/extractor-tests/generated/Union/Union_getExpanded.ql a096814a812662a419b50aa9fd66ab2f6be9d4471df3d50351e9d0bcf061f194 51b406644ee819d74f1b80cdb3a451fa1fad6e6a65d89fa6e3dc87516d9d4292 test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql 6268ddb68c3e05906e3fc85e40635925b84e5c7290746ded9c6814d362033068 04473b3b9891012e95733463018db8da0e96659ea0b10458b33dc857c091d278 test/extractor-tests/generated/Union/Union_getGenericParamList.ql c55156ae26b766e385be7d21e67f8c3c45c29274201c93d660077fcc47e1ceee 4c4d338e17c32876ef6e51fd19cff67d125dd89c10e939dfaadbac824bef6a68 test/extractor-tests/generated/Union/Union_getName.ql 17247183e1a8c8bbb15e67120f65ca323630bddeb614fa8a48e1e74319f8ed37 e21c2a0205bc991ba86f3e508451ef31398bdf5441f6d2a3f72113aaae9e152b test/extractor-tests/generated/Union/Union_getStructFieldList.ql ae42dec53a42bcb712ec5e94a3137a5c0b7743ea3b635e44e7af8a0d59e59182 61b34bb8d6e05d9eb34ce353eef7cc07c684179bf2e3fdf9f5541e04bef41425 test/extractor-tests/generated/Union/Union_getVisibility.ql 86628736a677343d816e541ba76db02bdae3390f8367c09be3c1ff46d1ae8274 6514cdf4bfad8d9c968de290cc981be1063c0919051822cc6fdb03e8a891f123 test/extractor-tests/generated/Union/Union_getWhereClause.ql 508e68ffa87f4eca2e2f9c894d215ea76070d628a294809dc267082b9e36a359 29da765d11794441a32a5745d4cf594495a9733e28189d898f64da864817894f -test/extractor-tests/generated/Use/Use.ql 9a0a5efb8118830355fb90bc850de011ae8586c12dce92cfc8f39a870dd52100 7fd580282752a8e6a8ea9ac33ff23a950304030bc32cfbd3b9771368723fb8d6 +test/extractor-tests/generated/Use/Use.ql 1adafd3adcfbf907250ce3592599d96c64572e381937fa11d11ce6d4f35cfd7f 2671e34197df8002142b5facb5380604e807e87aa41e7f8e32dc6d1eefb695f1 test/extractor-tests/generated/Use/Use_getAttr.ql 6d43c25401398108553508aabb32ca476b3072060bb73eb07b1b60823a01f964 84e6f6953b4aa9a7472082f0a4f2df26ab1d157529ab2c661f0031603c94bb1d +test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql d02562044449f6de2c70241e0964a8dedb7d1f722c2a98ee9c96638841fa1bc5 a1db982e16b35f1a0ab4091999437a471018afd9f4f01504723aa989d49e4034 test/extractor-tests/generated/Use/Use_getCrateOrigin.ql 912ebc1089aa3390d4142a39ea73d5490eae525d1fb51654fdd05e9dd48a94b6 c59e36362016ae536421e6d517889cea0b2670818ea1f9e997796f51a9b381e2 -test/extractor-tests/generated/Use/Use_getExpanded.ql 386631ee0ee002d3d6f7f6e48c87d2bb2c4349aa3692d16730c0bc31853b11cf 50e03f47cc1099d7f2f27724ea82d3b69b85e826b66736361b0cbeceb88f88a4 test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql ccfde95c861cf4199e688b6efeeee9dab58a27cfecd520e39cc20f89143c03c9 6ff93df4134667d7cb74ae7efe102fe2db3ad4c67b4b5a0f8955f21997806f16 test/extractor-tests/generated/Use/Use_getUseTree.ql 1dfe6bb40b29fbf823d67fecfc36ba928b43f17c38227b8eedf19fa252edf3af aacdcc4cf418ef1eec267287d2af905fe73f5bcfb080ef5373d08da31c608720 test/extractor-tests/generated/Use/Use_getVisibility.ql 587f80acdd780042c48aeb347004be5e9fd9df063d263e6e4f2b660c48c53a8f 0c2c04f95838bca93dfe93fa208e1df7677797efc62b4e8052a4f9c5d20831dd diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 9fb82167e79..c9915f995e6 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -740,9 +740,9 @@ /test/extractor-tests/generated/Comment/Comment.ql linguist-generated /test/extractor-tests/generated/Const/Const.ql linguist-generated /test/extractor-tests/generated/Const/Const_getAttr.ql linguist-generated +/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Const/Const_getBody.ql linguist-generated /test/extractor-tests/generated/Const/Const_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getExpanded.ql linguist-generated /test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Const/Const_getName.ql linguist-generated /test/extractor-tests/generated/Const/Const_getTypeRepr.ql linguist-generated @@ -764,8 +764,8 @@ /test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql linguist-generated /test/extractor-tests/generated/Enum/Enum.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getAttr.ql linguist-generated +/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getExpanded.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getName.ql linguist-generated @@ -777,14 +777,14 @@ /test/extractor-tests/generated/ExternBlock/ExternBlock.ql linguist-generated /test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql linguist-generated /test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql linguist-generated +/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql linguist-generated /test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql linguist-generated +/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.ql linguist-generated @@ -827,9 +827,9 @@ /test/extractor-tests/generated/Function/Function.ql linguist-generated /test/extractor-tests/generated/Function/Function_getAbi.ql linguist-generated /test/extractor-tests/generated/Function/Function_getAttr.ql linguist-generated +/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Function/Function_getBody.ql linguist-generated /test/extractor-tests/generated/Function/Function_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getExpanded.ql linguist-generated /test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Function/Function_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Function/Function_getName.ql linguist-generated @@ -853,8 +853,8 @@ /test/extractor-tests/generated/Impl/Impl.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getAttr.ql linguist-generated +/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getExpanded.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Impl/Impl_getSelfTy.ql linguist-generated @@ -904,17 +904,18 @@ /test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql linguist-generated +/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql linguist-generated +/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall_getPath.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql linguist-generated +/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getName.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.ql linguist-generated @@ -926,8 +927,8 @@ /test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql linguist-generated +/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getName.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql linguist-generated @@ -965,8 +966,8 @@ /test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql linguist-generated /test/extractor-tests/generated/Module/Module.ql linguist-generated /test/extractor-tests/generated/Module/Module_getAttr.ql linguist-generated +/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Module/Module_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Module/Module_getExpanded.ql linguist-generated /test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Module/Module_getItemList.ql linguist-generated /test/extractor-tests/generated/Module/Module_getName.ql linguist-generated @@ -1066,9 +1067,9 @@ /test/extractor-tests/generated/SourceFile/SourceFile_getItem.ql linguist-generated /test/extractor-tests/generated/Static/Static.ql linguist-generated /test/extractor-tests/generated/Static/Static_getAttr.ql linguist-generated +/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Static/Static_getBody.ql linguist-generated /test/extractor-tests/generated/Static/Static_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Static/Static_getExpanded.ql linguist-generated /test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Static/Static_getName.ql linguist-generated /test/extractor-tests/generated/Static/Static_getTypeRepr.ql linguist-generated @@ -1079,8 +1080,8 @@ /test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql linguist-generated /test/extractor-tests/generated/Struct/Struct.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getAttr.ql linguist-generated +/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getExpanded.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getFieldList.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql linguist-generated @@ -1127,8 +1128,8 @@ /test/extractor-tests/generated/Trait/Trait.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getAttr.ql linguist-generated +/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getExpanded.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Trait/Trait_getName.ql linguist-generated @@ -1137,8 +1138,8 @@ /test/extractor-tests/generated/Trait/Trait_getWhereClause.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql linguist-generated +/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias_getName.ql linguist-generated @@ -1168,8 +1169,8 @@ /test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql linguist-generated +/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias_getName.ql linguist-generated @@ -1194,8 +1195,8 @@ /test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql linguist-generated /test/extractor-tests/generated/Union/Union.ql linguist-generated /test/extractor-tests/generated/Union/Union_getAttr.ql linguist-generated +/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Union/Union_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getExpanded.ql linguist-generated /test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Union/Union_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Union/Union_getName.ql linguist-generated @@ -1204,8 +1205,8 @@ /test/extractor-tests/generated/Union/Union_getWhereClause.ql linguist-generated /test/extractor-tests/generated/Use/Use.ql linguist-generated /test/extractor-tests/generated/Use/Use_getAttr.ql linguist-generated +/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Use/Use_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Use/Use_getExpanded.ql linguist-generated /test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Use/Use_getUseTree.ql linguist-generated /test/extractor-tests/generated/Use/Use_getVisibility.ql linguist-generated diff --git a/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll index e68f2efde5b..a118cf6b472 100644 --- a/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll @@ -217,7 +217,7 @@ final class MacroCallCfgNode extends Nodes::MacroCallCfgNode { /** Gets the CFG node for the expansion of this macro call, if it exists. */ CfgNode getExpandedNode() { - any(ChildMapping mapping).hasCfgChild(node, node.getExpanded(), this, result) + any(ChildMapping mapping).hasCfgChild(node, node.getMacroCallExpansion(), this, result) } } diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll index 2f1f710df83..e3202888511 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/CfgNodes.qll @@ -75,7 +75,7 @@ class StructPatChildMapping extends ParentAstNode, StructPat { } class MacroCallChildMapping extends ParentAstNode, MacroCall { - override predicate relevantChild(AstNode child) { child = this.getExpanded() } + override predicate relevantChild(AstNode child) { child = this.getMacroCallExpansion() } } class FormatArgsExprChildMapping extends ParentAstNode, CfgImpl::ExprTrees::FormatArgsExprTree { diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll b/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll index 1107068606f..01169ce2727 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/Completion.qll @@ -160,7 +160,7 @@ private predicate guaranteedMatchPosition(Pat pat) { parent.(OrPat).getLastPat() = pat or // for macro patterns we propagate to the expanded pattern - parent.(MacroPat).getMacroCall().getExpanded() = pat + parent.(MacroPat).getMacroCall().getMacroCallExpansion() = pat ) } diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll index 900580914e2..e13dd9ac84e 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll @@ -143,7 +143,7 @@ class LetStmtTree extends PreOrderTree, LetStmt { } class MacroCallTree extends StandardPostOrderTree, MacroCall { - override AstNode getChildNode(int i) { i = 0 and result = this.getExpanded() } + override AstNode getChildNode(int i) { i = 0 and result = this.getMacroCallExpansion() } } class MacroStmtsTree extends StandardPreOrderTree, MacroStmts { @@ -685,7 +685,7 @@ module PatternTrees { } class MacroPatTree extends PreOrderPatTree, MacroPat { - override Pat getPat(int i) { i = 0 and result = this.getMacroCall().getExpanded() } + override Pat getPat(int i) { i = 0 and result = this.getMacroCall().getMacroCallExpansion() } } class OrPatTree extends PostOrderPatTree instanceof OrPat { diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll index 8631e242e82..4f8c733caa0 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll @@ -1818,6 +1818,16 @@ module MakeCfgNodes Input> { * Holds if `getTokenTree()` exists. */ predicate hasTokenTree() { exists(this.getTokenTree()) } + + /** + * Gets the macro call expansion of this macro call, if it exists. + */ + AstNode getMacroCallExpansion() { result = node.getMacroCallExpansion() } + + /** + * Holds if `getMacroCallExpansion()` exists. + */ + predicate hasMacroCallExpansion() { exists(this.getMacroCallExpansion()) } } final private class ParentMacroExpr extends ParentAstNode, MacroExpr { diff --git a/rust/ql/lib/codeql/rust/elements/Item.qll b/rust/ql/lib/codeql/rust/elements/Item.qll index 30c11c6481e..1a8b0439695 100644 --- a/rust/ql/lib/codeql/rust/elements/Item.qll +++ b/rust/ql/lib/codeql/rust/elements/Item.qll @@ -5,7 +5,7 @@ private import internal.ItemImpl import codeql.rust.elements.Addressable -import codeql.rust.elements.AstNode +import codeql.rust.elements.MacroItems import codeql.rust.elements.Stmt /** diff --git a/rust/ql/lib/codeql/rust/elements/MacroCall.qll b/rust/ql/lib/codeql/rust/elements/MacroCall.qll index 5399f1f2a87..b0985ea3fed 100644 --- a/rust/ql/lib/codeql/rust/elements/MacroCall.qll +++ b/rust/ql/lib/codeql/rust/elements/MacroCall.qll @@ -5,6 +5,7 @@ private import internal.MacroCallImpl import codeql.rust.elements.AssocItem +import codeql.rust.elements.AstNode import codeql.rust.elements.Attr import codeql.rust.elements.ExternItem import codeql.rust.elements.Item diff --git a/rust/ql/lib/codeql/rust/elements/MacroItems.qll b/rust/ql/lib/codeql/rust/elements/MacroItems.qll index e189c0dca2e..8fdcc3945f1 100644 --- a/rust/ql/lib/codeql/rust/elements/MacroItems.qll +++ b/rust/ql/lib/codeql/rust/elements/MacroItems.qll @@ -8,10 +8,18 @@ import codeql.rust.elements.AstNode import codeql.rust.elements.Item /** - * A sequence of items generated by a `MacroCall`. For example: + * A sequence of items generated by a macro. For example: * ```rust * mod foo{ * include!("common_definitions.rs"); + * + * #[an_attribute_macro] + * fn foo() { + * println!("Hello, world!"); + * } + * + * #[derive(Debug)] + * struct Bar; * } * ``` */ diff --git a/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll index dea172a7266..f75294f3d10 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll @@ -60,7 +60,7 @@ module Impl { /** Holds if this node is inside a macro expansion. */ predicate isInMacroExpansion() { - this = any(MacroCall mc).getExpanded() + this = any(MacroCall mc).getMacroCallExpansion() or this.getParentNode().isInMacroExpansion() } diff --git a/rust/ql/lib/codeql/rust/elements/internal/MacroItemsImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/MacroItemsImpl.qll index 2ed6536fac8..0efb96554a4 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/MacroItemsImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/MacroItemsImpl.qll @@ -13,10 +13,18 @@ private import codeql.rust.elements.internal.generated.MacroItems */ module Impl { /** - * A sequence of items generated by a `MacroCall`. For example: + * A sequence of items generated by a macro. For example: * ```rust * mod foo{ * include!("common_definitions.rs"); + * + * #[an_attribute_macro] + * fn foo() { + * println!("Hello, world!"); + * } + * + * #[derive(Debug)] + * struct Bar; * } * ``` */ diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Item.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Item.qll index e93d25f86f3..eaf0607c5d9 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Item.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Item.qll @@ -7,7 +7,7 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AddressableImpl::Impl as AddressableImpl -import codeql.rust.elements.AstNode +import codeql.rust.elements.MacroItems import codeql.rust.elements.internal.StmtImpl::Impl as StmtImpl /** @@ -25,15 +25,18 @@ module Generated { */ class Item extends Synth::TItem, StmtImpl::Stmt, AddressableImpl::Addressable { /** - * Gets the expanded attribute or procedural macro call of this item, if it exists. + * Gets the attribute macro expansion of this item, if it exists. */ - AstNode getExpanded() { - result = Synth::convertAstNodeFromRaw(Synth::convertItemToRaw(this).(Raw::Item).getExpanded()) + MacroItems getAttributeMacroExpansion() { + result = + Synth::convertMacroItemsFromRaw(Synth::convertItemToRaw(this) + .(Raw::Item) + .getAttributeMacroExpansion()) } /** - * Holds if `getExpanded()` exists. + * Holds if `getAttributeMacroExpansion()` exists. */ - final predicate hasExpanded() { exists(this.getExpanded()) } + final predicate hasAttributeMacroExpansion() { exists(this.getAttributeMacroExpansion()) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroCall.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroCall.qll index 30717a1a391..6aea6ebfd8b 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroCall.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroCall.qll @@ -7,6 +7,7 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AssocItemImpl::Impl as AssocItemImpl +import codeql.rust.elements.AstNode import codeql.rust.elements.Attr import codeql.rust.elements.internal.ExternItemImpl::Impl as ExternItemImpl import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl @@ -76,5 +77,20 @@ module Generated { * Holds if `getTokenTree()` exists. */ final predicate hasTokenTree() { exists(this.getTokenTree()) } + + /** + * Gets the macro call expansion of this macro call, if it exists. + */ + AstNode getMacroCallExpansion() { + result = + Synth::convertAstNodeFromRaw(Synth::convertMacroCallToRaw(this) + .(Raw::MacroCall) + .getMacroCallExpansion()) + } + + /** + * Holds if `getMacroCallExpansion()` exists. + */ + final predicate hasMacroCallExpansion() { exists(this.getMacroCallExpansion()) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroItems.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroItems.qll index c86181ff5d5..5dc115ecba4 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroItems.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroItems.qll @@ -15,10 +15,18 @@ import codeql.rust.elements.Item */ module Generated { /** - * A sequence of items generated by a `MacroCall`. For example: + * A sequence of items generated by a macro. For example: * ```rust * mod foo{ * include!("common_definitions.rs"); + * + * #[an_attribute_macro] + * fn foo() { + * println!("Hello, world!"); + * } + * + * #[derive(Debug)] + * struct Bar; * } * ``` * INTERNAL: Do not reference the `Generated::MacroItems` class directly. diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll index d84b28f9117..413aad7e27d 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -2204,13 +2204,13 @@ private module Impl { } private Element getImmediateChildOfItem(Item e, int index, string partialPredicateCall) { - exists(int b, int bStmt, int bAddressable, int n, int nExpanded | + exists(int b, int bStmt, int bAddressable, int n, int nAttributeMacroExpansion | b = 0 and bStmt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfStmt(e, i, _)) | i) and bAddressable = bStmt + 1 + max(int i | i = -1 or exists(getImmediateChildOfAddressable(e, i, _)) | i) and n = bAddressable and - nExpanded = n + 1 and + nAttributeMacroExpansion = n + 1 and ( none() or @@ -2218,7 +2218,9 @@ private module Impl { or result = getImmediateChildOfAddressable(e, index - bStmt, partialPredicateCall) or - index = n and result = e.getExpanded() and partialPredicateCall = "Expanded()" + index = n and + result = e.getAttributeMacroExpansion() and + partialPredicateCall = "AttributeMacroExpansion()" ) ) } @@ -3498,7 +3500,8 @@ private module Impl { private Element getImmediateChildOfMacroCall(MacroCall e, int index, string partialPredicateCall) { exists( - int b, int bAssocItem, int bExternItem, int bItem, int n, int nAttr, int nPath, int nTokenTree + int b, int bAssocItem, int bExternItem, int bItem, int n, int nAttr, int nPath, + int nTokenTree, int nMacroCallExpansion | b = 0 and bAssocItem = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAssocItem(e, i, _)) | i) and @@ -3509,6 +3512,7 @@ private module Impl { nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nPath = nAttr + 1 and nTokenTree = nPath + 1 and + nMacroCallExpansion = nTokenTree + 1 and ( none() or @@ -3524,6 +3528,10 @@ private module Impl { index = nAttr and result = e.getPath() and partialPredicateCall = "Path()" or index = nPath and result = e.getTokenTree() and partialPredicateCall = "TokenTree()" + or + index = nTokenTree and + result = e.getMacroCallExpansion() and + partialPredicateCall = "MacroCallExpansion()" ) ) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index 275f143083a..e86f82854f3 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -486,10 +486,18 @@ module Raw { /** * INTERNAL: Do not use. - * A sequence of items generated by a `MacroCall`. For example: + * A sequence of items generated by a macro. For example: * ```rust * mod foo{ * include!("common_definitions.rs"); + * + * #[an_attribute_macro] + * fn foo() { + * println!("Hello, world!"); + * } + * + * #[derive(Debug)] + * struct Bar; * } * ``` */ @@ -2182,9 +2190,9 @@ module Raw { */ class Item extends @item, Stmt, Addressable { /** - * Gets the expanded attribute or procedural macro call of this item, if it exists. + * Gets the attribute macro expansion of this item, if it exists. */ - AstNode getExpanded() { item_expandeds(this, result) } + MacroItems getAttributeMacroExpansion() { item_attribute_macro_expansions(this, result) } } /** @@ -3625,6 +3633,11 @@ module Raw { * Gets the token tree of this macro call, if it exists. */ TokenTree getTokenTree() { macro_call_token_trees(this, result) } + + /** + * Gets the macro call expansion of this macro call, if it exists. + */ + AstNode getMacroCallExpansion() { macro_call_macro_call_expansions(this, result) } } /** diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index f78cb8f2ab3..7b74969ab7a 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -1960,9 +1960,9 @@ infer_type_reprs( ; #keyset[id] -item_expandeds( +item_attribute_macro_expansions( int id: @item ref, - int expanded: @ast_node ref + int attribute_macro_expansion: @macro_items ref ); @labelable_expr = @@ -3088,6 +3088,12 @@ macro_call_token_trees( int token_tree: @token_tree ref ); +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + macro_defs( unique int id: @macro_def ); diff --git a/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme index f78cb8f2ab3..7b74969ab7a 100644 --- a/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme +++ b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme @@ -1960,9 +1960,9 @@ infer_type_reprs( ; #keyset[id] -item_expandeds( +item_attribute_macro_expansions( int id: @item ref, - int expanded: @ast_node ref + int attribute_macro_expansion: @macro_items ref ); @labelable_expr = @@ -3088,6 +3088,12 @@ macro_call_token_trees( int token_tree: @token_tree ref ); +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + macro_defs( unique int id: @macro_def ); diff --git a/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties index 5834a727f49..6444d605633 100644 --- a/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties +++ b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties @@ -1,4 +1,4 @@ -description: Add `expanded` to all `@item` elements +description: Rename `expanded` to `macro_call_expansion` compatibility: backwards -item_expandeds.rel: reorder macro_call_expandeds.rel (@macro_call id, @ast_node expanded) id expanded +macro_call_macro_call_expansions.rel: reorder macro_call_expandeds.rel (@macro_call id, @ast_node expanded) id expanded macro_call_expandeds.rel: delete diff --git a/rust/ql/test/extractor-tests/attribute_macro_expansion/test.expected b/rust/ql/test/extractor-tests/attribute_macro_expansion/test.expected deleted file mode 100644 index c6815fb3828..00000000000 --- a/rust/ql/test/extractor-tests/attribute_macro_expansion/test.expected +++ /dev/null @@ -1,2 +0,0 @@ -| attr_macro_expansion.rs:1:1:2:11 | fn foo | attr_macro_expansion.rs:2:4:2:6 | Static | -| attr_macro_expansion.rs:1:1:2:11 | fn foo | attr_macro_expansion.rs:2:4:2:10 | fn foo | diff --git a/rust/ql/test/extractor-tests/attribute_macro_expansion/test.ql b/rust/ql/test/extractor-tests/attribute_macro_expansion/test.ql deleted file mode 100644 index f8d2f17b75e..00000000000 --- a/rust/ql/test/extractor-tests/attribute_macro_expansion/test.ql +++ /dev/null @@ -1,6 +0,0 @@ -import rust -import TestUtils - -from Item i, MacroItems items, Item expanded -where toBeTested(i) and i.getExpanded() = items and items.getAnItem() = expanded -select i, expanded diff --git a/rust/ql/test/extractor-tests/generated/.generated_tests.list b/rust/ql/test/extractor-tests/generated/.generated_tests.list index 56cb7ed62e1..b7f919a0107 100644 --- a/rust/ql/test/extractor-tests/generated/.generated_tests.list +++ b/rust/ql/test/extractor-tests/generated/.generated_tests.list @@ -59,7 +59,7 @@ LoopExpr/gen_loop_expr.rs 35deaf35e765db4ae3124a11284266d8f341d1ce7b700030efada0 MacroCall/gen_macro_call.rs 139ef2c69323eea1a901e260d4e2acdd00b26f013b90c9344f48c6503ce29d79 139ef2c69323eea1a901e260d4e2acdd00b26f013b90c9344f48c6503ce29d79 MacroDef/gen_macro_def.rs 17c5387fb464a60b4a4520d22b055ba35ff23e9fe431a18a33808ae02c4bbff5 17c5387fb464a60b4a4520d22b055ba35ff23e9fe431a18a33808ae02c4bbff5 MacroExpr/gen_macro_expr.rs 3c23dc88fcc4bc8f97d9364d2f367671a0a5a63d07e52237d28204b64756dcdb 3c23dc88fcc4bc8f97d9364d2f367671a0a5a63d07e52237d28204b64756dcdb -MacroItems/gen_macro_items.rs 8ef3e16b73635dc97afa3ffa4db2bb21a8f1b435176861a594b0200cc5b9b931 8ef3e16b73635dc97afa3ffa4db2bb21a8f1b435176861a594b0200cc5b9b931 +MacroItems/gen_macro_items.rs c00f8045d9a7d6562da1d0136b335b685e2ec5dbd708763faa24a752e89feda4 c00f8045d9a7d6562da1d0136b335b685e2ec5dbd708763faa24a752e89feda4 MacroPat/gen_macro_pat.rs b8041370598bd7fb26778d829a15c415c2078d69124f6af634ddeba13a114aa0 b8041370598bd7fb26778d829a15c415c2078d69124f6af634ddeba13a114aa0 MacroRules/gen_macro_rules.rs 7e03b410f4669e422d3b4328f7aafdca2e286e5d951495dd69cee0d44cb793a9 7e03b410f4669e422d3b4328f7aafdca2e286e5d951495dd69cee0d44cb793a9 MacroStmts/gen_macro_stmts.rs 2e45dcf44bf2e8404b49ce9abeee4931572693174b5d96f3fd81eb40ea8e7b4b 2e45dcf44bf2e8404b49ce9abeee4931572693174b5d96f3fd81eb40ea8e7b4b diff --git a/rust/ql/test/extractor-tests/generated/Const/Const.ql b/rust/ql/test/extractor-tests/generated/Const/Const.ql index 859bc139866..dee1c6dada4 100644 --- a/rust/ql/test/extractor-tests/generated/Const/Const.ql +++ b/rust/ql/test/extractor-tests/generated/Const/Const.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - Const x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - int getNumberOfAttrs, string hasBody, string isConst, string isDefault, string hasName, - string hasTypeRepr, string hasVisibility + Const x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasBody, string isConst, + string isDefault, string hasName, string hasTypeRepr, string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -15,7 +15,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and (if x.isConst() then isConst = "yes" else isConst = "no") and @@ -24,6 +28,6 @@ where (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, - "isConst:", isConst, "isDefault:", isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, - "hasVisibility:", hasVisibility + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasBody:", hasBody, "isConst:", isConst, "isDefault:", isDefault, "hasName:", hasName, + "hasTypeRepr:", hasTypeRepr, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql index 8f608b857bc..4056751f972 100644 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from Const x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql index 76f3c2941b0..e6639d783d2 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql @@ -3,7 +3,7 @@ import codeql.rust.elements import TestUtils from - Enum x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + Enum x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasGenericParamList, string hasName, string hasVariantList, string hasVisibility, string hasWhereClause where @@ -15,7 +15,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and @@ -23,6 +27,6 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", - hasGenericParamList, "hasName:", hasName, "hasVariantList:", hasVariantList, "hasVisibility:", - hasVisibility, "hasWhereClause:", hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, "hasVariantList:", + hasVariantList, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql similarity index 76% rename from rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql index 428223feaae..6f0623348c4 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from Enum x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql index b1fa57580a1..e7ef0f90fe9 100644 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql +++ b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql @@ -3,8 +3,9 @@ import codeql.rust.elements import TestUtils from - ExternBlock x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - string hasAbi, int getNumberOfAttrs, string hasExternItemList, string isUnsafe + ExternBlock x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, string hasAbi, int getNumberOfAttrs, string hasExternItemList, + string isUnsafe where toBeTested(x) and not x.isUnknown() and @@ -14,11 +15,15 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and (if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasExternItemList() then hasExternItemList = "yes" else hasExternItemList = "no") and if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "hasAbi:", hasAbi, "getNumberOfAttrs:", getNumberOfAttrs, - "hasExternItemList:", hasExternItemList, "isUnsafe:", isUnsafe + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasAbi:", hasAbi, "getNumberOfAttrs:", + getNumberOfAttrs, "hasExternItemList:", hasExternItemList, "isUnsafe:", isUnsafe diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.expected b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql index e7819652b38..f3b6ad363fa 100644 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from ExternBlock x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql index 03ef38925ea..cbcfd462473 100644 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql +++ b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql @@ -3,8 +3,9 @@ import codeql.rust.elements import TestUtils from - ExternCrate x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - int getNumberOfAttrs, string hasIdentifier, string hasRename, string hasVisibility + ExternCrate x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasIdentifier, string hasRename, + string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -14,11 +15,15 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and (if x.hasRename() then hasRename = "yes" else hasRename = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasIdentifier:", - hasIdentifier, "hasRename:", hasRename, "hasVisibility:", hasVisibility + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasIdentifier:", hasIdentifier, "hasRename:", hasRename, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql index 28cdb0138d9..0c7c0e8c89d 100644 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from ExternCrate x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.expected b/rust/ql/test/extractor-tests/generated/Function/Function.expected index e37c985985a..d30ef684493 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.expected +++ b/rust/ql/test/extractor-tests/generated/Function/Function.expected @@ -1,2 +1,2 @@ -| gen_function.rs:3:1:4:38 | fn foo | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | hasAbi: | no | hasBody: | yes | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | yes | hasVisibility: | no | hasWhereClause: | no | -| gen_function.rs:7:5:7:13 | fn bar | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | hasAbi: | no | hasBody: | no | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_function.rs:3:1:4:38 | fn foo | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | yes | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_function.rs:7:5:7:13 | fn bar | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | no | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | no | hasVisibility: | no | hasWhereClause: | no | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.ql b/rust/ql/test/extractor-tests/generated/Function/Function.ql index 162f8af6d75..3c368187c29 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.ql +++ b/rust/ql/test/extractor-tests/generated/Function/Function.ql @@ -4,7 +4,7 @@ import TestUtils from Function x, string hasParamList, int getNumberOfAttrs, string hasExtendedCanonicalPath, - string hasCrateOrigin, string hasExpanded, string hasAbi, string hasBody, + string hasCrateOrigin, string hasAttributeMacroExpansion, string hasAbi, string hasBody, string hasGenericParamList, string isAsync, string isConst, string isDefault, string isGen, string isUnsafe, string hasName, string hasRetType, string hasVisibility, string hasWhereClause where @@ -18,7 +18,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and (if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and @@ -33,7 +37,7 @@ where if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "hasAbi:", hasAbi, "hasBody:", hasBody, "hasGenericParamList:", - hasGenericParamList, "isAsync:", isAsync, "isConst:", isConst, "isDefault:", isDefault, "isGen:", - isGen, "isUnsafe:", isUnsafe, "hasName:", hasName, "hasRetType:", hasRetType, "hasVisibility:", - hasVisibility, "hasWhereClause:", hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasAbi:", hasAbi, "hasBody:", hasBody, + "hasGenericParamList:", hasGenericParamList, "isAsync:", isAsync, "isConst:", isConst, + "isDefault:", isDefault, "isGen:", isGen, "isUnsafe:", isUnsafe, "hasName:", hasName, + "hasRetType:", hasRetType, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql index 7a994831e7d..4bb6e2852cb 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from Function x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl.ql index cc7ffd76208..fa92053a217 100644 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl.ql +++ b/rust/ql/test/extractor-tests/generated/Impl/Impl.ql @@ -3,7 +3,7 @@ import codeql.rust.elements import TestUtils from - Impl x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + Impl x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAttributeMacroExpansion, string hasAssocItemList, int getNumberOfAttrs, string hasGenericParamList, string isConst, string isDefault, string isUnsafe, string hasSelfTy, string hasTrait, string hasVisibility, string hasWhereClause @@ -16,7 +16,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and (if x.hasAssocItemList() then hasAssocItemList = "yes" else hasAssocItemList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and @@ -28,7 +32,7 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "hasAssocItemList:", hasAssocItemList, "getNumberOfAttrs:", - getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "isConst:", isConst, "isDefault:", - isDefault, "isUnsafe:", isUnsafe, "hasSelfTy:", hasSelfTy, "hasTrait:", hasTrait, - "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasAssocItemList:", hasAssocItemList, + "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "isConst:", + isConst, "isDefault:", isDefault, "isUnsafe:", isUnsafe, "hasSelfTy:", hasSelfTy, "hasTrait:", + hasTrait, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql similarity index 76% rename from rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql index dc85f4c06fd..3496b9cebe7 100644 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from Impl x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected index b5bf260e2f4..915d6847799 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected @@ -1 +1 @@ -| gen_macro_call.rs:5:5:5:11 | todo!... | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasExpanded: | yes | getNumberOfAttrs: | 0 | hasPath: | yes | hasTokenTree: | yes | +| gen_macro_call.rs:5:5:5:11 | todo!... | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasPath: | yes | hasTokenTree: | yes | hasMacroCallExpansion: | yes | diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql index c9fa32e3c00..b9461abfcf1 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql @@ -3,8 +3,9 @@ import codeql.rust.elements import TestUtils from - MacroCall x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - int getNumberOfAttrs, string hasPath, string hasTokenTree + MacroCall x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasPath, string hasTokenTree, + string hasMacroCallExpansion where toBeTested(x) and not x.isUnknown() and @@ -14,10 +15,16 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasPath() then hasPath = "yes" else hasPath = "no") and - if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no" + (if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no") and + if x.hasMacroCallExpansion() then hasMacroCallExpansion = "yes" else hasMacroCallExpansion = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasPath:", hasPath, - "hasTokenTree:", hasTokenTree + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasPath:", hasPath, "hasTokenTree:", hasTokenTree, "hasMacroCallExpansion:", + hasMacroCallExpansion diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql new file mode 100644 index 00000000000..7931273e757 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from MacroCall x +where toBeTested(x) and not x.isUnknown() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.ql similarity index 79% rename from rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.ql index be63430c9ed..6ce5fd6e7c8 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from MacroCall x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getMacroCallExpansion() diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql index ed235d8312a..3ec25748abd 100644 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql +++ b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql @@ -3,8 +3,9 @@ import codeql.rust.elements import TestUtils from - MacroDef x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - string hasArgs, int getNumberOfAttrs, string hasBody, string hasName, string hasVisibility + MacroDef x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, string hasArgs, int getNumberOfAttrs, string hasBody, + string hasName, string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -14,12 +15,17 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and (if x.hasArgs() then hasArgs = "yes" else hasArgs = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "hasArgs:", hasArgs, "getNumberOfAttrs:", getNumberOfAttrs, - "hasBody:", hasBody, "hasName:", hasName, "hasVisibility:", hasVisibility + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasArgs:", hasArgs, + "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, "hasName:", hasName, "hasVisibility:", + hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql index cc97ad20927..be299283916 100644 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from MacroDef x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/MacroItems/gen_macro_items.rs b/rust/ql/test/extractor-tests/generated/MacroItems/gen_macro_items.rs index 08914ad0452..f7d8c9c4213 100644 --- a/rust/ql/test/extractor-tests/generated/MacroItems/gen_macro_items.rs +++ b/rust/ql/test/extractor-tests/generated/MacroItems/gen_macro_items.rs @@ -1,6 +1,14 @@ // generated by codegen, do not edit -// A sequence of items generated by a `MacroCall`. For example: +// A sequence of items generated by a macro. For example: mod foo{ include!("common_definitions.rs"); + + #[an_attribute_macro] + fn foo() { + println!("Hello, world!"); + } + + #[derive(Debug)] + struct Bar; } diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql index a04df90d75d..5e1ebacd573 100644 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql +++ b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql @@ -3,8 +3,9 @@ import codeql.rust.elements import TestUtils from - MacroRules x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - int getNumberOfAttrs, string hasName, string hasTokenTree, string hasVisibility + MacroRules x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasName, string hasTokenTree, + string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -14,11 +15,15 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasName() then hasName = "yes" else hasName = "no") and (if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasName:", hasName, - "hasTokenTree:", hasTokenTree, "hasVisibility:", hasVisibility + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasName:", hasName, "hasTokenTree:", hasTokenTree, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql index 4fdf9f94469..b7b01f36fe7 100644 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from MacroRules x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Module/Module.expected b/rust/ql/test/extractor-tests/generated/Module/Module.expected index 18f7e911fe3..9383e08f281 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module.expected +++ b/rust/ql/test/extractor-tests/generated/Module/Module.expected @@ -1,3 +1,3 @@ -| gen_module.rs:3:1:4:8 | mod foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | -| gen_module.rs:5:1:7:1 | mod bar | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | getNumberOfAttrs: | 0 | hasItemList: | yes | hasName: | yes | hasVisibility: | no | -| lib.rs:1:1:1:15 | mod gen_module | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | +| gen_module.rs:3:1:4:8 | mod foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | +| gen_module.rs:5:1:7:1 | mod bar | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasItemList: | yes | hasName: | yes | hasVisibility: | no | +| lib.rs:1:1:1:15 | mod gen_module | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | diff --git a/rust/ql/test/extractor-tests/generated/Module/Module.ql b/rust/ql/test/extractor-tests/generated/Module/Module.ql index 8cf7f20a20f..bd668e40b66 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module.ql +++ b/rust/ql/test/extractor-tests/generated/Module/Module.ql @@ -3,8 +3,9 @@ import codeql.rust.elements import TestUtils from - Module x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - int getNumberOfAttrs, string hasItemList, string hasName, string hasVisibility + Module x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasItemList, string hasName, + string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -14,11 +15,15 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasItemList() then hasItemList = "yes" else hasItemList = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasItemList:", hasItemList, - "hasName:", hasName, "hasVisibility:", hasVisibility + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasItemList:", hasItemList, "hasName:", hasName, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql index 139b6d007dd..1a7c70f63b6 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from Module x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Static/Static.ql b/rust/ql/test/extractor-tests/generated/Static/Static.ql index 84a5077826b..96a1fbd9814 100644 --- a/rust/ql/test/extractor-tests/generated/Static/Static.ql +++ b/rust/ql/test/extractor-tests/generated/Static/Static.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - Static x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - int getNumberOfAttrs, string hasBody, string isMut, string isStatic, string isUnsafe, - string hasName, string hasTypeRepr, string hasVisibility + Static x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasBody, string isMut, + string isStatic, string isUnsafe, string hasName, string hasTypeRepr, string hasVisibility where toBeTested(x) and not x.isUnknown() and @@ -15,7 +15,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and (if x.isMut() then isMut = "yes" else isMut = "no") and @@ -25,6 +29,6 @@ where (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, "isMut:", - isMut, "isStatic:", isStatic, "isUnsafe:", isUnsafe, "hasName:", hasName, "hasTypeRepr:", - hasTypeRepr, "hasVisibility:", hasVisibility + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasBody:", hasBody, "isMut:", isMut, "isStatic:", isStatic, "isUnsafe:", isUnsafe, "hasName:", + hasName, "hasTypeRepr:", hasTypeRepr, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql index 2f8c034f4c9..500484b60b3 100644 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from Static x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql index 5e9936dd07f..4471b94700c 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - Struct x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - int getNumberOfAttrs, string hasFieldList, string hasGenericParamList, string hasName, - string hasVisibility, string hasWhereClause + Struct x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasFieldList, + string hasGenericParamList, string hasName, string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,7 +15,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasFieldList() then hasFieldList = "yes" else hasFieldList = "no") and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and @@ -23,6 +27,6 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasFieldList:", hasFieldList, - "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, "hasVisibility:", hasVisibility, - "hasWhereClause:", hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasFieldList:", hasFieldList, "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, + "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql index cd9b80356c4..7673f2d669e 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from Struct x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait.expected index 33dd170e766..de921f246b4 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait.expected +++ b/rust/ql/test/extractor-tests/generated/Trait/Trait.expected @@ -1,2 +1,2 @@ -| gen_trait.rs:3:1:8:1 | trait Frobinizable | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | -| gen_trait.rs:10:1:10:57 | trait Foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasExpanded: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | yes | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | yes | hasWhereClause: | yes | +| gen_trait.rs:3:1:8:1 | trait Frobinizable | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_trait.rs:10:1:10:57 | trait Foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | yes | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | yes | hasWhereClause: | yes | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait.ql index c10c3685fc9..2e8173a21af 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait.ql +++ b/rust/ql/test/extractor-tests/generated/Trait/Trait.ql @@ -3,10 +3,10 @@ import codeql.rust.elements import TestUtils from - Trait x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - string hasAssocItemList, int getNumberOfAttrs, string hasGenericParamList, string isAuto, - string isUnsafe, string hasName, string hasTypeBoundList, string hasVisibility, - string hasWhereClause + Trait x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, string hasAssocItemList, int getNumberOfAttrs, + string hasGenericParamList, string isAuto, string isUnsafe, string hasName, + string hasTypeBoundList, string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -16,7 +16,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and (if x.hasAssocItemList() then hasAssocItemList = "yes" else hasAssocItemList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and @@ -27,7 +31,7 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "hasAssocItemList:", hasAssocItemList, "getNumberOfAttrs:", - getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "isAuto:", isAuto, "isUnsafe:", - isUnsafe, "hasName:", hasName, "hasTypeBoundList:", hasTypeBoundList, "hasVisibility:", - hasVisibility, "hasWhereClause:", hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasAssocItemList:", hasAssocItemList, + "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "isAuto:", + isAuto, "isUnsafe:", isUnsafe, "hasName:", hasName, "hasTypeBoundList:", hasTypeBoundList, + "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql index 22425676ccb..9499d03e9cc 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from Trait x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql index d01a2bf22c7..319f65e3730 100644 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql +++ b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - TraitAlias x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - int getNumberOfAttrs, string hasGenericParamList, string hasName, string hasTypeBoundList, - string hasVisibility, string hasWhereClause + TraitAlias x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasGenericParamList, + string hasName, string hasTypeBoundList, string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,7 +15,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and @@ -23,6 +27,6 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", - hasGenericParamList, "hasName:", hasName, "hasTypeBoundList:", hasTypeBoundList, "hasVisibility:", - hasVisibility, "hasWhereClause:", hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, "hasTypeBoundList:", + hasTypeBoundList, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql index 3a8abe17f82..6a0c43cfc87 100644 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from TraitAlias x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected index 9168aed43d5..8fbbae07cc3 100644 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected @@ -1,2 +1,2 @@ -| gen_type_alias.rs:4:5:5:26 | type Point | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasExpanded: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | -| gen_type_alias.rs:8:9:8:20 | type Output | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasExpanded: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | no | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_type_alias.rs:4:5:5:26 | type Point | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_type_alias.rs:8:9:8:20 | type Output | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | no | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql index 51544c36a82..dd8183b6d41 100644 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql @@ -3,9 +3,10 @@ import codeql.rust.elements import TestUtils from - TypeAlias x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - int getNumberOfAttrs, string hasGenericParamList, string isDefault, string hasName, - string hasTypeRepr, string hasTypeBoundList, string hasVisibility, string hasWhereClause + TypeAlias x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasGenericParamList, + string isDefault, string hasName, string hasTypeRepr, string hasTypeBoundList, + string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,7 +16,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.isDefault() then isDefault = "yes" else isDefault = "no") and @@ -25,7 +30,7 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", - hasGenericParamList, "isDefault:", isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, - "hasTypeBoundList:", hasTypeBoundList, "hasVisibility:", hasVisibility, "hasWhereClause:", - hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasGenericParamList:", hasGenericParamList, "isDefault:", isDefault, "hasName:", hasName, + "hasTypeRepr:", hasTypeRepr, "hasTypeBoundList:", hasTypeBoundList, "hasVisibility:", + hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql index 2a385759422..62be0d7b829 100644 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from TypeAlias x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Union/Union.ql b/rust/ql/test/extractor-tests/generated/Union/Union.ql index a5eb910d0b3..81d3ffb3adf 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union.ql +++ b/rust/ql/test/extractor-tests/generated/Union/Union.ql @@ -3,9 +3,9 @@ import codeql.rust.elements import TestUtils from - Union x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, - int getNumberOfAttrs, string hasGenericParamList, string hasName, string hasStructFieldList, - string hasVisibility, string hasWhereClause + Union x, string hasExtendedCanonicalPath, string hasCrateOrigin, + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasGenericParamList, + string hasName, string hasStructFieldList, string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -15,7 +15,11 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and @@ -23,6 +27,6 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", - hasGenericParamList, "hasName:", hasName, "hasStructFieldList:", hasStructFieldList, - "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, "hasStructFieldList:", + hasStructFieldList, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.expected rename to rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.expected diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql similarity index 77% rename from rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql index d76e97d362a..3edc4b71aa3 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from Union x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Use/Use.ql b/rust/ql/test/extractor-tests/generated/Use/Use.ql index d88546c73fe..9dbf23d628a 100644 --- a/rust/ql/test/extractor-tests/generated/Use/Use.ql +++ b/rust/ql/test/extractor-tests/generated/Use/Use.ql @@ -3,7 +3,7 @@ import codeql.rust.elements import TestUtils from - Use x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasExpanded, + Use x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasUseTree, string hasVisibility where toBeTested(x) and @@ -14,10 +14,14 @@ where else hasExtendedCanonicalPath = "no" ) and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - (if x.hasExpanded() then hasExpanded = "yes" else hasExpanded = "no") and + ( + if x.hasAttributeMacroExpansion() + then hasAttributeMacroExpansion = "yes" + else hasAttributeMacroExpansion = "no" + ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasUseTree() then hasUseTree = "yes" else hasUseTree = "no") and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasExpanded:", hasExpanded, "getNumberOfAttrs:", getNumberOfAttrs, "hasUseTree:", hasUseTree, - "hasVisibility:", hasVisibility + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, + "hasUseTree:", hasUseTree, "hasVisibility:", hasVisibility diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.ql b/rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql similarity index 76% rename from rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.ql rename to rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql index 39d2fa9f4f6..1b83be27986 100644 --- a/rust/ql/test/extractor-tests/generated/Use/Use_getExpanded.ql +++ b/rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql @@ -4,4 +4,4 @@ import TestUtils from Use x where toBeTested(x) and not x.isUnknown() -select x, x.getExpanded() +select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/attribute_macro_expansion/attr_macro_expansion.rs b/rust/ql/test/extractor-tests/macro_expansion/macro_expansion.rs similarity index 100% rename from rust/ql/test/extractor-tests/attribute_macro_expansion/attr_macro_expansion.rs rename to rust/ql/test/extractor-tests/macro_expansion/macro_expansion.rs diff --git a/rust/ql/test/extractor-tests/attribute_macro_expansion/options.yml b/rust/ql/test/extractor-tests/macro_expansion/options.yml similarity index 100% rename from rust/ql/test/extractor-tests/attribute_macro_expansion/options.yml rename to rust/ql/test/extractor-tests/macro_expansion/options.yml diff --git a/rust/ql/test/extractor-tests/macro_expansion/test.expected b/rust/ql/test/extractor-tests/macro_expansion/test.expected new file mode 100644 index 00000000000..26a02ec8252 --- /dev/null +++ b/rust/ql/test/extractor-tests/macro_expansion/test.expected @@ -0,0 +1,2 @@ +| macro_expansion.rs:1:1:2:11 | fn foo | 0 | macro_expansion.rs:2:4:2:10 | fn foo | +| macro_expansion.rs:1:1:2:11 | fn foo | 1 | macro_expansion.rs:2:4:2:6 | Static | diff --git a/rust/ql/test/extractor-tests/macro_expansion/test.ql b/rust/ql/test/extractor-tests/macro_expansion/test.ql new file mode 100644 index 00000000000..17bc7d47b1d --- /dev/null +++ b/rust/ql/test/extractor-tests/macro_expansion/test.ql @@ -0,0 +1,6 @@ +import rust +import TestUtils + +from Item i, MacroItems items, int index, Item expanded +where toBeTested(i) and i.getAttributeMacroExpansion() = items and items.getItem(index) = expanded +select i, index, expanded diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index d6289e795c4..85eb452c2ee 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -1164,7 +1164,7 @@ class _: """ -@annotate(Item) +@annotate(Item, add_bases=(Addressable,)) class _: """ A Item. For example: @@ -1172,6 +1172,7 @@ class _: todo!() ``` """ + attribute_macro_expansion: optional[MacroItems] | child | rust.detach @annotate(ItemList) @@ -1232,6 +1233,7 @@ class _: todo!() ``` """ + macro_call_expansion: optional[AstNode] | child | rust.detach @annotate(MacroDef) @@ -1258,10 +1260,18 @@ class _: @rust.doc_test_signature(None) class _: """ - A sequence of items generated by a `MacroCall`. For example: + A sequence of items generated by a macro. For example: ```rust mod foo{ include!("common_definitions.rs"); + + #[an_attribute_macro] + fn foo() { + println!("Hello, world!"); + } + + #[derive(Debug)] + struct Bar; } ``` """ @@ -1940,8 +1950,3 @@ class FormatArgument(Locatable): """ parent: Format variable: optional[FormatTemplateVariableAccess] | child - - -@annotate(Item, add_bases=(Addressable,)) -class _: - expanded: optional[AstNode] | child | rust.detach | doc("expanded attribute or procedural macro call of this item") From bb46ca7a6423669ccfe27fc35fe3af3ca8029fae Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 29 Apr 2025 16:22:37 +0200 Subject: [PATCH 142/656] Modify quality query suite selector for actions, cpp, rust and swift --- actions/ql/src/codeql-suites/actions-code-quality.qls | 4 +++- cpp/ql/src/codeql-suites/cpp-code-quality.qls | 4 +++- rust/ql/src/codeql-suites/rust-code-quality.qls | 4 +++- swift/ql/src/codeql-suites/swift-code-quality.qls | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/actions/ql/src/codeql-suites/actions-code-quality.qls b/actions/ql/src/codeql-suites/actions-code-quality.qls index 0637a088a01..2074f9378cf 100644 --- a/actions/ql/src/codeql-suites/actions-code-quality.qls +++ b/actions/ql/src/codeql-suites/actions-code-quality.qls @@ -1 +1,3 @@ -[] \ No newline at end of file +- queries: . +- apply: code-quality-selectors.yml + from: codeql/suite-helpers diff --git a/cpp/ql/src/codeql-suites/cpp-code-quality.qls b/cpp/ql/src/codeql-suites/cpp-code-quality.qls index 0637a088a01..2074f9378cf 100644 --- a/cpp/ql/src/codeql-suites/cpp-code-quality.qls +++ b/cpp/ql/src/codeql-suites/cpp-code-quality.qls @@ -1 +1,3 @@ -[] \ No newline at end of file +- queries: . +- apply: code-quality-selectors.yml + from: codeql/suite-helpers diff --git a/rust/ql/src/codeql-suites/rust-code-quality.qls b/rust/ql/src/codeql-suites/rust-code-quality.qls index 0637a088a01..2074f9378cf 100644 --- a/rust/ql/src/codeql-suites/rust-code-quality.qls +++ b/rust/ql/src/codeql-suites/rust-code-quality.qls @@ -1 +1,3 @@ -[] \ No newline at end of file +- queries: . +- apply: code-quality-selectors.yml + from: codeql/suite-helpers diff --git a/swift/ql/src/codeql-suites/swift-code-quality.qls b/swift/ql/src/codeql-suites/swift-code-quality.qls index 0637a088a01..2074f9378cf 100644 --- a/swift/ql/src/codeql-suites/swift-code-quality.qls +++ b/swift/ql/src/codeql-suites/swift-code-quality.qls @@ -1 +1,3 @@ -[] \ No newline at end of file +- queries: . +- apply: code-quality-selectors.yml + from: codeql/suite-helpers From 2515b06b2afef5c61245406401fd13dc6ed354c2 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 29 Apr 2025 16:22:57 +0200 Subject: [PATCH 143/656] Use code-quality-selectors in Go suite --- go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql | 1 + go/ql/src/InconsistentCode/MissingErrorCheck.ql | 1 + .../InconsistentCode/UnhandledCloseWritableHandle.ql | 1 + go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql | 1 + go/ql/src/RedundantCode/NegativeLengthCheck.ql | 1 + go/ql/src/RedundantCode/RedundantRecover.ql | 1 + go/ql/src/codeql-suites/go-code-quality.qls | 10 ++-------- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql b/go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql index 05a468b8517..436eb8a8fe5 100644 --- a/go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql +++ b/go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql @@ -8,6 +8,7 @@ * @tags reliability * correctness * logic + * quality * external/cwe/cwe-193 * @precision high */ diff --git a/go/ql/src/InconsistentCode/MissingErrorCheck.ql b/go/ql/src/InconsistentCode/MissingErrorCheck.ql index d2021517267..9acd7e13602 100644 --- a/go/ql/src/InconsistentCode/MissingErrorCheck.ql +++ b/go/ql/src/InconsistentCode/MissingErrorCheck.ql @@ -8,6 +8,7 @@ * @tags reliability * correctness * logic + * quality * @precision high */ diff --git a/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql b/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql index 211cf4b3985..051e4644cc7 100644 --- a/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql +++ b/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql @@ -11,6 +11,7 @@ * correctness * call * defer + * quality */ import go diff --git a/go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql b/go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql index 48df6a9297d..fac236c7f03 100644 --- a/go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql +++ b/go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql @@ -7,6 +7,7 @@ * @tags reliability * correctness * logic + * quality * @precision high */ diff --git a/go/ql/src/RedundantCode/NegativeLengthCheck.ql b/go/ql/src/RedundantCode/NegativeLengthCheck.ql index f1ae5409c2d..adac6fe78d9 100644 --- a/go/ql/src/RedundantCode/NegativeLengthCheck.ql +++ b/go/ql/src/RedundantCode/NegativeLengthCheck.ql @@ -9,6 +9,7 @@ * @precision very-high * @id go/negative-length-check * @tags correctness + * quality */ import go diff --git a/go/ql/src/RedundantCode/RedundantRecover.ql b/go/ql/src/RedundantCode/RedundantRecover.ql index d2138068515..08fc06727e5 100644 --- a/go/ql/src/RedundantCode/RedundantRecover.ql +++ b/go/ql/src/RedundantCode/RedundantRecover.ql @@ -8,6 +8,7 @@ * @id go/redundant-recover * @tags maintainability * correctness + * quality * @precision high */ diff --git a/go/ql/src/codeql-suites/go-code-quality.qls b/go/ql/src/codeql-suites/go-code-quality.qls index 84c0fe6b35b..2074f9378cf 100644 --- a/go/ql/src/codeql-suites/go-code-quality.qls +++ b/go/ql/src/codeql-suites/go-code-quality.qls @@ -1,9 +1,3 @@ - queries: . -- include: - id: - - go/unhandled-writable-file-close - - go/unexpected-nil-value - - go/negative-length-check - - go/redundant-recover - - go/missing-error-check - - go/index-out-of-bounds \ No newline at end of file +- apply: code-quality-selectors.yml + from: codeql/suite-helpers From d56c5225f6c0dc4c8df6560c0f293de24d8a2499 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 29 Apr 2025 16:23:08 +0200 Subject: [PATCH 144/656] Use code-quality-selectors in JS suite --- .../ql/src/Declarations/IneffectiveParameterType.ql | 1 + javascript/ql/src/Expressions/MissingAwait.ql | 1 + javascript/ql/src/LanguageFeatures/SpuriousArguments.ql | 1 + javascript/ql/src/RegExp/RegExpAlwaysMatches.ql | 1 + .../ql/src/codeql-suites/javascript-code-quality.qls | 9 ++------- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/javascript/ql/src/Declarations/IneffectiveParameterType.ql b/javascript/ql/src/Declarations/IneffectiveParameterType.ql index da8d610c974..18899bd0c4e 100644 --- a/javascript/ql/src/Declarations/IneffectiveParameterType.ql +++ b/javascript/ql/src/Declarations/IneffectiveParameterType.ql @@ -7,6 +7,7 @@ * @precision high * @tags correctness * typescript + * quality */ import javascript diff --git a/javascript/ql/src/Expressions/MissingAwait.ql b/javascript/ql/src/Expressions/MissingAwait.ql index 08b6c7af0bb..d97c006a7bd 100644 --- a/javascript/ql/src/Expressions/MissingAwait.ql +++ b/javascript/ql/src/Expressions/MissingAwait.ql @@ -5,6 +5,7 @@ * @problem.severity warning * @id js/missing-await * @tags correctness + * quality * @precision high */ diff --git a/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql b/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql index fd3914c9023..fd493a247a4 100644 --- a/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql +++ b/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql @@ -7,6 +7,7 @@ * @tags maintainability * correctness * language-features + * quality * external/cwe/cwe-685 * @precision very-high */ diff --git a/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql b/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql index 04756158f55..1d063534903 100644 --- a/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql +++ b/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql @@ -6,6 +6,7 @@ * @id js/regex/always-matches * @tags correctness * regular-expressions + * quality * @precision high */ diff --git a/javascript/ql/src/codeql-suites/javascript-code-quality.qls b/javascript/ql/src/codeql-suites/javascript-code-quality.qls index 5570d91c4f7..2074f9378cf 100644 --- a/javascript/ql/src/codeql-suites/javascript-code-quality.qls +++ b/javascript/ql/src/codeql-suites/javascript-code-quality.qls @@ -1,8 +1,3 @@ - queries: . -- include: - id: - - js/missing-await - - js/regex/always-matches - - js/superfluous-trailing-arguments - - js/useless-expression - - js/ineffective-parameter-type \ No newline at end of file +- apply: code-quality-selectors.yml + from: codeql/suite-helpers From fdeac95714f4db728fe64c23e53ff6b8aee4d66f Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 29 Apr 2025 16:23:22 +0200 Subject: [PATCH 145/656] Use code-quality-selectors in Python suite --- .../query-suite/python-code-quality.qls.expected | 2 ++ python/ql/src/Functions/NonCls.ql | 1 + python/ql/src/Functions/NonSelf.ql | 1 + python/ql/src/codeql-suites/python-code-quality.qls | 8 ++------ 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/python/ql/integration-tests/query-suite/python-code-quality.qls.expected b/python/ql/integration-tests/query-suite/python-code-quality.qls.expected index 47643f6a319..b81d300d024 100644 --- a/python/ql/integration-tests/query-suite/python-code-quality.qls.expected +++ b/python/ql/integration-tests/query-suite/python-code-quality.qls.expected @@ -1,4 +1,6 @@ ql/python/ql/src/Functions/NonCls.ql ql/python/ql/src/Functions/NonSelf.ql +ql/python/ql/src/Functions/ReturnConsistentTupleSizes.ql ql/python/ql/src/Functions/SignatureSpecialMethods.ql ql/python/ql/src/Resources/FileNotAlwaysClosed.ql +ql/python/ql/src/Variables/LoopVariableCapture/LoopVariableCapture.ql diff --git a/python/ql/src/Functions/NonCls.ql b/python/ql/src/Functions/NonCls.ql index d36eeb9a6ec..0808da00e0a 100644 --- a/python/ql/src/Functions/NonCls.ql +++ b/python/ql/src/Functions/NonCls.ql @@ -5,6 +5,7 @@ * @tags maintainability * readability * convention + * quality * @problem.severity recommendation * @sub-severity high * @precision high diff --git a/python/ql/src/Functions/NonSelf.ql b/python/ql/src/Functions/NonSelf.ql index cea15d3661a..35b7af9b800 100644 --- a/python/ql/src/Functions/NonSelf.ql +++ b/python/ql/src/Functions/NonSelf.ql @@ -5,6 +5,7 @@ * @tags maintainability * readability * convention + * quality * @problem.severity recommendation * @sub-severity high * @precision very-high diff --git a/python/ql/src/codeql-suites/python-code-quality.qls b/python/ql/src/codeql-suites/python-code-quality.qls index 3ada7e8eb4c..2074f9378cf 100644 --- a/python/ql/src/codeql-suites/python-code-quality.qls +++ b/python/ql/src/codeql-suites/python-code-quality.qls @@ -1,7 +1,3 @@ - queries: . -- include: - id: - - py/not-named-self - - py/not-named-cls - - py/file-not-closed - - py/special-method-wrong-signature +- apply: code-quality-selectors.yml + from: codeql/suite-helpers From e9e6d68a6ebaa4a2a9827b3c5f9fbcf50df1caca Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 29 Apr 2025 16:23:33 +0200 Subject: [PATCH 146/656] Use code-quality-selectors in Ruby suite --- .../query-suite/ruby-code-quality.qls.expected | 1 - ruby/ql/src/codeql-suites/ruby-code-quality.qls | 7 ++----- ruby/ql/src/queries/performance/DatabaseQueryInLoop.ql | 1 + ruby/ql/src/queries/variables/DeadStoreOfLocal.ql | 1 + 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ruby/ql/integration-tests/query-suite/ruby-code-quality.qls.expected b/ruby/ql/integration-tests/query-suite/ruby-code-quality.qls.expected index 94b2f19caaa..db6b7590220 100644 --- a/ruby/ql/integration-tests/query-suite/ruby-code-quality.qls.expected +++ b/ruby/ql/integration-tests/query-suite/ruby-code-quality.qls.expected @@ -1,3 +1,2 @@ ql/ruby/ql/src/queries/performance/DatabaseQueryInLoop.ql -ql/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql ql/ruby/ql/src/queries/variables/UninitializedLocal.ql diff --git a/ruby/ql/src/codeql-suites/ruby-code-quality.qls b/ruby/ql/src/codeql-suites/ruby-code-quality.qls index 2111c6979ef..2074f9378cf 100644 --- a/ruby/ql/src/codeql-suites/ruby-code-quality.qls +++ b/ruby/ql/src/codeql-suites/ruby-code-quality.qls @@ -1,6 +1,3 @@ - queries: . -- include: - id: - - rb/database-query-in-loop - - rb/useless-assignment-to-local - - rb/uninitialized-local-variable \ No newline at end of file +- apply: code-quality-selectors.yml + from: codeql/suite-helpers diff --git a/ruby/ql/src/queries/performance/DatabaseQueryInLoop.ql b/ruby/ql/src/queries/performance/DatabaseQueryInLoop.ql index b17c5ecd9ba..835fe620984 100644 --- a/ruby/ql/src/queries/performance/DatabaseQueryInLoop.ql +++ b/ruby/ql/src/queries/performance/DatabaseQueryInLoop.ql @@ -6,6 +6,7 @@ * @precision high * @id rb/database-query-in-loop * @tags performance + * quality */ import ruby diff --git a/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql b/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql index 547d7d3cd89..a7b37515d7f 100644 --- a/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql +++ b/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql @@ -6,6 +6,7 @@ * @problem.severity warning * @id rb/useless-assignment-to-local * @tags maintainability + * quality * external/cwe/cwe-563 * @precision medium */ From f6fae7ad60ad011e60ba072d9b7e68ac42fbcd42 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 30 Apr 2025 13:33:31 +0200 Subject: [PATCH 147/656] Added test cases for `cmd`, `which` and `asyncExec` --- .../test/library-tests/frameworks/Shelljs/ShellJS.expected | 1 + javascript/ql/test/library-tests/frameworks/Shelljs/tst.js | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected b/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected index 003ae3f442f..de70e7a1d0a 100644 --- a/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected +++ b/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected @@ -56,6 +56,7 @@ test_FileSystemAccess | tst.js:60:1:60:41 | shelljs ... cement) | | tst.js:61:1:61:17 | shelljs.cat(file) | test_MissingFileSystemAccess +| tst.js:65:15:65:18 | file | test_SystemCommandExecution | tst.js:14:1:14:27 | shelljs ... ts, cb) | | tst.js:60:1:60:51 | shelljs ... ec(cmd) | diff --git a/javascript/ql/test/library-tests/frameworks/Shelljs/tst.js b/javascript/ql/test/library-tests/frameworks/Shelljs/tst.js index 9e7905c9847..2bbcd51f582 100644 --- a/javascript/ql/test/library-tests/frameworks/Shelljs/tst.js +++ b/javascript/ql/test/library-tests/frameworks/Shelljs/tst.js @@ -59,3 +59,10 @@ shelljs.uniq(opts, file1, file2); shelljs.cat(file).sed(regex, replacement).exec(cmd); shelljs.cat(file).exec(cmd); + +shelljs.cmd(cmd, arg1, arg2, options); +shelljs.cmd(cmd); +shelljs.which(file); + +const shelljssync = require("async-shelljs"); +shelljssync.asyncExec(cmd, opts, cb); From 25d04f1cdd11e5bf6372924363035ac2cdb4895a Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 30 Apr 2025 13:35:17 +0200 Subject: [PATCH 148/656] Added support for `shelljs.which` --- .../ql/lib/semmle/javascript/frameworks/ShellJS.qll | 9 ++++++--- .../library-tests/frameworks/Shelljs/ShellJS.expected | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll b/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll index 9f3eeb6e0dc..91b18a1779d 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll @@ -14,7 +14,8 @@ module ShellJS { shellJSMember() .getMember([ "exec", "cd", "cp", "touch", "chmod", "pushd", "find", "ls", "ln", "mkdir", "mv", - "rm", "cat", "head", "sort", "tail", "uniq", "grep", "sed", "to", "toEnd", "echo" + "rm", "cat", "head", "sort", "tail", "uniq", "grep", "sed", "to", "toEnd", "echo", + "which", ]) .getReturn() } @@ -99,7 +100,8 @@ module ShellJS { */ private class ShellJSGenericFileAccess extends FileSystemAccess, ShellJSCall { ShellJSGenericFileAccess() { - name = ["cd", "cp", "touch", "chmod", "pushd", "find", "ls", "ln", "mkdir", "mv", "rm"] + name = + ["cd", "cp", "touch", "chmod", "pushd", "find", "ls", "ln", "mkdir", "mv", "rm", "which"] } override DataFlow::Node getAPathArgument() { result = this.getAnArgument() } @@ -111,7 +113,8 @@ module ShellJS { private class ShellJSFilenameSource extends FileNameSource, ShellJSCall { ShellJSFilenameSource() { name = "find" or - name = "ls" + name = "ls" or + name = "which" } } diff --git a/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected b/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected index de70e7a1d0a..4ca9f088bf4 100644 --- a/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected +++ b/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected @@ -55,8 +55,8 @@ test_FileSystemAccess | tst.js:60:1:60:17 | shelljs.cat(file) | | tst.js:60:1:60:41 | shelljs ... cement) | | tst.js:61:1:61:17 | shelljs.cat(file) | +| tst.js:65:1:65:19 | shelljs.which(file) | test_MissingFileSystemAccess -| tst.js:65:15:65:18 | file | test_SystemCommandExecution | tst.js:14:1:14:27 | shelljs ... ts, cb) | | tst.js:60:1:60:51 | shelljs ... ec(cmd) | @@ -67,3 +67,4 @@ test_FileNameSource | tst.js:25:1:25:22 | shelljs ... , file) | | tst.js:26:1:26:30 | shelljs ... file2) | | tst.js:27:1:27:24 | shelljs ... file2) | +| tst.js:65:1:65:19 | shelljs.which(file) | From 18cea2d6a5dec92818986f34d5730f769926ead8 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 30 Apr 2025 13:37:02 +0200 Subject: [PATCH 149/656] Added support for `shelljs.cmd` and `async-shelljs.asyncExec` --- .../semmle/javascript/frameworks/ShellJS.qll | 21 ++++++++++++++----- .../frameworks/Shelljs/ShellJS.expected | 3 +++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll b/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll index 91b18a1779d..ae0ba17941c 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll @@ -15,7 +15,7 @@ module ShellJS { .getMember([ "exec", "cd", "cp", "touch", "chmod", "pushd", "find", "ls", "ln", "mkdir", "mv", "rm", "cat", "head", "sort", "tail", "uniq", "grep", "sed", "to", "toEnd", "echo", - "which", + "which", "cmd", "asyncExec" ]) .getReturn() } @@ -154,16 +154,27 @@ module ShellJS { } /** - * A call to `shelljs.exec()` modeled as command execution. + * A call to `shelljs.exec()`, `shelljs.cmd()`, or `async-shelljs.asyncExec()` modeled as command execution. */ private class ShellJSExec extends SystemCommandExecution, ShellJSCall { - ShellJSExec() { name = "exec" } + ShellJSExec() { name = ["exec", "cmd", "asyncExec"] } - override DataFlow::Node getACommandArgument() { result = this.getArgument(0) } + override DataFlow::Node getACommandArgument() { + if name = "cmd" + then + result = this.getArgument(_) and + not ( + result = this.getLastArgument() and + exists(this.getOptionsArg()) + ) + else + // For exec/asyncExec: only first argument is command + result = this.getArgument(0) + } override predicate isShellInterpreted(DataFlow::Node arg) { arg = this.getACommandArgument() } - override predicate isSync() { none() } + override predicate isSync() { name = "cmd" } override DataFlow::Node getOptionsArg() { result = this.getLastArgument() and diff --git a/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected b/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected index 4ca9f088bf4..5c3c922a84f 100644 --- a/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected +++ b/javascript/ql/test/library-tests/frameworks/Shelljs/ShellJS.expected @@ -61,6 +61,9 @@ test_SystemCommandExecution | tst.js:14:1:14:27 | shelljs ... ts, cb) | | tst.js:60:1:60:51 | shelljs ... ec(cmd) | | tst.js:61:1:61:27 | shelljs ... ec(cmd) | +| tst.js:63:1:63:37 | shelljs ... ptions) | +| tst.js:64:1:64:16 | shelljs.cmd(cmd) | +| tst.js:68:1:68:36 | shelljs ... ts, cb) | test_FileNameSource | tst.js:15:1:15:26 | shelljs ... file2) | | tst.js:24:1:24:16 | shelljs.ls(file) | From f584d22b534801e54c6b4137042165bf60ed151c Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 30 Apr 2025 10:47:11 +0200 Subject: [PATCH 150/656] Rust: Use type inference to insert implicit borrows and derefs --- .../rust/dataflow/internal/DataFlowImpl.qll | 22 ++---------- .../codeql/rust/internal/TypeInference.qll | 26 ++++++++++++-- .../dataflow/local/DataFlowStep.expected | 35 ------------------- .../security/CWE-089/SqlInjection.expected | 12 ------- .../CaptureSummaryModels.expected | 8 ----- 5 files changed, 27 insertions(+), 76 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 4376df7caf8..b2950622440 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -11,6 +11,7 @@ private import rust private import SsaImpl as SsaImpl private import codeql.rust.controlflow.internal.Scope as Scope private import codeql.rust.internal.PathResolution +private import codeql.rust.internal.TypeInference as TypeInference private import codeql.rust.controlflow.ControlFlowGraph private import codeql.rust.controlflow.CfgNodes private import codeql.rust.dataflow.Ssa @@ -321,23 +322,6 @@ predicate lambdaCallExpr(CallExprCfgNode call, LambdaCallKind kind, ExprCfgNode exists(kind) } -/** Holds if `mc` implicitly borrows its receiver. */ -private predicate implicitBorrow(MethodCallExpr mc) { - // Determining whether an implicit borrow happens depends on the type of the - // receiever as well as the target. As a heuristic we simply check if the - // target takes `self` as a borrow and limit the approximation to cases where - // the receiver is a simple variable. - mc.getReceiver() instanceof VariableAccess and - mc.getStaticTarget().getParamList().getSelfParam().isRef() -} - -/** Holds if `mc` implicitly dereferences its receiver. */ -private predicate implicitDeref(MethodCallExpr mc) { - // Similarly to `implicitBorrow` this is an approximation. - mc.getReceiver() instanceof VariableAccess and - not mc.getStaticTarget().getParamList().getSelfParam().isRef() -} - // Defines a set of aliases needed for the `RustDataFlow` module private module Aliases { class DataFlowCallableAlias = DataFlowCallable; @@ -520,15 +504,15 @@ module RustDataFlow implements InputSig { pragma[nomagic] private predicate implicitDerefToReceiver(Node node1, ReceiverNode node2, ReferenceContent c) { + TypeInference::receiverHasImplicitDeref(node1.asExpr().getExpr()) and node1.asExpr() = node2.getReceiver() and - implicitDeref(node2.getMethodCall().getMethodCallExpr()) and exists(c) } pragma[nomagic] private predicate implicitBorrowToReceiver(Node node1, ReceiverNode node2, ReferenceContent c) { + TypeInference::receiverHasImplicitBorrow(node1.asExpr().getExpr()) and node1.asExpr() = node2.getReceiver() and - implicitBorrow(node2.getMethodCall().getMethodCallExpr()) and exists(c) } diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 2fae9ef1f5b..b999b72240b 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -690,7 +690,7 @@ private Type inferCallExprBaseType(AstNode n, TypePath path) { | if apos.isSelf() then - exists(Type receiverType | receiverType = CallExprBaseMatchingInput::inferReceiverType(n) | + exists(Type receiverType | receiverType = inferType(n) | if receiverType = TRefType() then path = path0 and @@ -840,7 +840,7 @@ private Type inferFieldExprType(AstNode n, TypePath path) { | if apos.isSelf() then - exists(Type receiverType | receiverType = FieldExprMatchingInput::inferReceiverType(n) | + exists(Type receiverType | receiverType = inferType(n) | if receiverType = TRefType() then // adjust for implicit deref @@ -895,6 +895,28 @@ cached private module Cached { private import codeql.rust.internal.CachedStages + /** Holds if `receiver` is the receiver of a method call with an implicit dereference. */ + cached + predicate receiverHasImplicitDeref(AstNode receiver) { + exists(CallExprBaseMatchingInput::Access a, CallExprBaseMatchingInput::AccessPosition apos | + apos.isSelf() and + receiver = a.getNodeAt(apos) and + inferType(receiver) = TRefType() and + CallExprBaseMatching::inferAccessType(a, apos, TypePath::nil()) != TRefType() + ) + } + + /** Holds if `receiver` is the receiver of a method call with an implicit borrow. */ + cached + predicate receiverHasImplicitBorrow(AstNode receiver) { + exists(CallExprBaseMatchingInput::Access a, CallExprBaseMatchingInput::AccessPosition apos | + apos.isSelf() and + receiver = a.getNodeAt(apos) and + CallExprBaseMatching::inferAccessType(a, apos, TypePath::nil()) = TRefType() and + inferType(receiver) != TRefType() + ) + } + pragma[inline] private Type getLookupType(AstNode n) { exists(Type t | diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index d9f17dbf4c4..6c2a7c2ba85 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -1931,33 +1931,16 @@ readStep | main.rs:221:9:221:23 | ...::Some(...) | Some | main.rs:221:22:221:22 | n | | main.rs:230:9:230:15 | Some(...) | Some | main.rs:230:14:230:14 | n | | main.rs:234:9:234:15 | Some(...) | Some | main.rs:234:14:234:14 | n | -| main.rs:241:10:241:11 | s1 | &ref | main.rs:241:10:241:11 | receiver for s1 | -| main.rs:246:10:246:11 | s1 | &ref | main.rs:246:10:246:11 | receiver for s1 | -| main.rs:249:10:249:11 | s2 | &ref | main.rs:249:10:249:11 | receiver for s2 | -| main.rs:254:10:254:11 | s1 | &ref | main.rs:254:10:254:11 | receiver for s1 | -| main.rs:257:10:257:11 | s2 | &ref | main.rs:257:10:257:11 | receiver for s2 | | main.rs:263:14:263:15 | s1 | Ok | main.rs:263:14:263:16 | TryExpr | | main.rs:263:14:263:15 | s1 | Some | main.rs:263:14:263:16 | TryExpr | | main.rs:265:10:265:11 | s2 | Ok | main.rs:265:10:265:12 | TryExpr | | main.rs:265:10:265:11 | s2 | Some | main.rs:265:10:265:12 | TryExpr | -| main.rs:271:29:271:30 | r1 | &ref | main.rs:271:29:271:30 | receiver for r1 | -| main.rs:272:29:272:30 | r1 | &ref | main.rs:272:29:272:30 | receiver for r1 | -| main.rs:273:10:273:12 | o1a | &ref | main.rs:273:10:273:12 | receiver for o1a | -| main.rs:274:10:274:12 | o1b | &ref | main.rs:274:10:274:12 | receiver for o1b | -| main.rs:277:29:277:30 | r2 | &ref | main.rs:277:29:277:30 | receiver for r2 | -| main.rs:278:29:278:30 | r2 | &ref | main.rs:278:29:278:30 | receiver for r2 | -| main.rs:279:10:279:12 | o2a | &ref | main.rs:279:10:279:12 | receiver for o2a | -| main.rs:280:10:280:12 | o2b | &ref | main.rs:280:10:280:12 | receiver for o2b | | main.rs:287:14:287:15 | s1 | Ok | main.rs:287:14:287:16 | TryExpr | | main.rs:287:14:287:15 | s1 | Some | main.rs:287:14:287:16 | TryExpr | | main.rs:288:14:288:15 | s2 | Ok | main.rs:288:14:288:16 | TryExpr | | main.rs:288:14:288:15 | s2 | Some | main.rs:288:14:288:16 | TryExpr | | main.rs:291:14:291:15 | s3 | Ok | main.rs:291:14:291:16 | TryExpr | | main.rs:291:14:291:15 | s3 | Some | main.rs:291:14:291:16 | TryExpr | -| main.rs:298:10:298:11 | s1 | &ref | main.rs:298:10:298:11 | receiver for s1 | -| main.rs:299:10:299:11 | s1 | &ref | main.rs:299:10:299:11 | receiver for s1 | -| main.rs:302:10:302:11 | s2 | &ref | main.rs:302:10:302:11 | receiver for s2 | -| main.rs:303:10:303:11 | s2 | &ref | main.rs:303:10:303:11 | receiver for s2 | | main.rs:315:9:315:25 | ...::A(...) | A | main.rs:315:24:315:24 | n | | main.rs:316:9:316:25 | ...::B(...) | B | main.rs:316:24:316:24 | n | | main.rs:319:9:319:25 | ...::A(...) | A | main.rs:319:24:319:24 | n | @@ -1997,40 +1980,22 @@ readStep | main.rs:442:9:442:20 | TuplePat | tuple.0 | main.rs:442:10:442:13 | cond | | main.rs:442:9:442:20 | TuplePat | tuple.1 | main.rs:442:16:442:19 | name | | main.rs:442:25:442:29 | names | element | main.rs:442:9:442:20 | TuplePat | -| main.rs:444:21:444:24 | name | &ref | main.rs:444:21:444:24 | receiver for name | | main.rs:444:41:444:67 | [post] \|...\| ... | captured default_name | main.rs:444:41:444:67 | [post] default_name | -| main.rs:444:44:444:55 | default_name | &ref | main.rs:444:44:444:55 | receiver for default_name | | main.rs:444:44:444:55 | this | captured default_name | main.rs:444:44:444:55 | default_name | -| main.rs:445:18:445:18 | n | &ref | main.rs:445:18:445:18 | receiver for n | -| main.rs:468:13:468:13 | a | &ref | main.rs:468:13:468:13 | receiver for a | -| main.rs:469:13:469:13 | b | &ref | main.rs:469:13:469:13 | receiver for b | -| main.rs:470:19:470:19 | b | &ref | main.rs:470:19:470:19 | receiver for b | | main.rs:481:10:481:11 | vs | element | main.rs:481:10:481:14 | vs[0] | -| main.rs:482:11:482:12 | vs | &ref | main.rs:482:11:482:12 | receiver for vs | | main.rs:482:11:482:35 | ... .unwrap() | &ref | main.rs:482:10:482:35 | * ... | -| main.rs:483:11:483:12 | vs | &ref | main.rs:483:11:483:12 | receiver for vs | | main.rs:483:11:483:35 | ... .unwrap() | &ref | main.rs:483:10:483:35 | * ... | | main.rs:485:14:485:15 | vs | element | main.rs:485:9:485:9 | v | | main.rs:488:9:488:10 | &... | &ref | main.rs:488:10:488:10 | v | -| main.rs:488:15:488:16 | vs | &ref | main.rs:488:15:488:16 | receiver for vs | | main.rs:488:15:488:23 | vs.iter() | element | main.rs:488:9:488:10 | &... | -| main.rs:492:27:492:28 | vs | &ref | main.rs:492:27:492:28 | receiver for vs | | main.rs:493:9:493:10 | &... | &ref | main.rs:493:10:493:10 | v | | main.rs:493:15:493:17 | vs2 | element | main.rs:493:9:493:10 | &... | -| main.rs:497:5:497:6 | vs | &ref | main.rs:497:5:497:6 | receiver for vs | | main.rs:497:29:497:29 | x | &ref | main.rs:497:28:497:29 | * ... | -| main.rs:498:5:498:6 | vs | &ref | main.rs:498:5:498:6 | receiver for vs | | main.rs:498:34:498:34 | x | &ref | main.rs:498:33:498:34 | * ... | -| main.rs:500:14:500:15 | vs | &ref | main.rs:500:14:500:15 | receiver for vs | | main.rs:500:14:500:27 | vs.into_iter() | element | main.rs:500:9:500:9 | v | | main.rs:506:10:506:15 | vs_mut | element | main.rs:506:10:506:18 | vs_mut[0] | -| main.rs:507:11:507:16 | vs_mut | &ref | main.rs:507:11:507:16 | receiver for vs_mut | | main.rs:507:11:507:39 | ... .unwrap() | &ref | main.rs:507:10:507:39 | * ... | -| main.rs:508:11:508:16 | vs_mut | &ref | main.rs:508:11:508:16 | receiver for vs_mut | | main.rs:508:11:508:39 | ... .unwrap() | &ref | main.rs:508:10:508:39 | * ... | | main.rs:510:9:510:14 | &mut ... | &ref | main.rs:510:14:510:14 | v | -| main.rs:510:19:510:24 | vs_mut | &ref | main.rs:510:19:510:24 | receiver for vs_mut | | main.rs:510:19:510:35 | vs_mut.iter_mut() | element | main.rs:510:9:510:14 | &mut ... | | main.rs:524:11:524:15 | c_ref | &ref | main.rs:524:10:524:15 | * ... | -| main.rs:531:10:531:10 | a | &ref | main.rs:531:10:531:10 | receiver for a | -| main.rs:537:10:537:10 | b | &ref | main.rs:537:10:537:10 | receiver for b | diff --git a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected index b5aa4a386f2..7c3c1419474 100644 --- a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected +++ b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected @@ -31,15 +31,11 @@ edges | sqlx.rs:52:32:52:87 | ...::must_use(...) | sqlx.rs:52:9:52:20 | safe_query_3 | provenance | | | sqlx.rs:52:32:52:87 | MacroExpr | sqlx.rs:52:32:52:87 | ...::format(...) | provenance | MaD:4 | | sqlx.rs:52:32:52:87 | { ... } | sqlx.rs:52:32:52:87 | ...::must_use(...) | provenance | MaD:9 | -| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:63:26:63:39 | unsafe_query_1 [&ref] | provenance | | | sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:63:26:63:48 | unsafe_query_1.as_str() | provenance | MaD:3 | -| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:74:25:74:38 | unsafe_query_1 [&ref] | provenance | | | sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:74:25:74:47 | unsafe_query_1.as_str() | provenance | MaD:3 | | sqlx.rs:53:26:53:36 | &arg_string [&ref] | sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | provenance | | | sqlx.rs:53:27:53:36 | arg_string | sqlx.rs:53:26:53:36 | &arg_string [&ref] | provenance | | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:65:30:65:43 | unsafe_query_2 [&ref] | provenance | | | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | provenance | MaD:3 | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:76:29:76:42 | unsafe_query_2 [&ref] | provenance | | | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | provenance | MaD:3 | | sqlx.rs:54:26:54:39 | &remote_string [&ref] | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | provenance | | | sqlx.rs:54:27:54:39 | remote_string | sqlx.rs:54:26:54:39 | &remote_string [&ref] | provenance | | @@ -50,10 +46,6 @@ edges | sqlx.rs:56:34:56:89 | ...::must_use(...) | sqlx.rs:56:9:56:22 | unsafe_query_4 | provenance | | | sqlx.rs:56:34:56:89 | MacroExpr | sqlx.rs:56:34:56:89 | ...::format(...) | provenance | MaD:4 | | sqlx.rs:56:34:56:89 | { ... } | sqlx.rs:56:34:56:89 | ...::must_use(...) | provenance | MaD:9 | -| sqlx.rs:63:26:63:39 | unsafe_query_1 [&ref] | sqlx.rs:63:26:63:48 | unsafe_query_1.as_str() | provenance | MaD:3 | -| sqlx.rs:65:30:65:43 | unsafe_query_2 [&ref] | sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | provenance | MaD:3 | -| sqlx.rs:74:25:74:38 | unsafe_query_1 [&ref] | sqlx.rs:74:25:74:47 | unsafe_query_1.as_str() | provenance | MaD:3 | -| sqlx.rs:76:29:76:42 | unsafe_query_2 [&ref] | sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | provenance | MaD:3 | models | 1 | Source: lang:std; crate::env::args; commandargs; ReturnValue.Element | | 2 | Source: repo:https://github.com/seanmonstar/reqwest:reqwest; crate::blocking::get; remote; ReturnValue.Field[crate::result::Result::Ok(0)] | @@ -100,15 +92,11 @@ nodes | sqlx.rs:56:34:56:89 | MacroExpr | semmle.label | MacroExpr | | sqlx.rs:56:34:56:89 | { ... } | semmle.label | { ... } | | sqlx.rs:62:26:62:46 | safe_query_3.as_str() | semmle.label | safe_query_3.as_str() | -| sqlx.rs:63:26:63:39 | unsafe_query_1 [&ref] | semmle.label | unsafe_query_1 [&ref] | | sqlx.rs:63:26:63:48 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | -| sqlx.rs:65:30:65:43 | unsafe_query_2 [&ref] | semmle.label | unsafe_query_2 [&ref] | | sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | semmle.label | unsafe_query_2.as_str() | | sqlx.rs:67:30:67:52 | unsafe_query_4.as_str() | semmle.label | unsafe_query_4.as_str() | | sqlx.rs:73:25:73:45 | safe_query_3.as_str() | semmle.label | safe_query_3.as_str() | -| sqlx.rs:74:25:74:38 | unsafe_query_1 [&ref] | semmle.label | unsafe_query_1 [&ref] | | sqlx.rs:74:25:74:47 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | -| sqlx.rs:76:29:76:42 | unsafe_query_2 [&ref] | semmle.label | unsafe_query_2 [&ref] | | sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | semmle.label | unsafe_query_2.as_str() | | sqlx.rs:78:29:78:51 | unsafe_query_4.as_str() | semmle.label | unsafe_query_4.as_str() | subpaths diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.expected b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.expected index b05e99f352b..e827c7320cc 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.expected +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.expected @@ -1,12 +1,4 @@ unexpectedModel | Unexpected summary found: repo::test;::clone;Argument[self].Field[crate::option::MyOption::MySome(0)].Reference;ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated | -| Unexpected summary found: repo::test;::from;Argument[0].Field[crate::option::MyOption::MySome(0)];ReturnValue.Field[crate::option::MyOption::MySome(0)].Reference;value;dfc-generated | | Unexpected summary found: repo::test;::cloned;Argument[self].Field[crate::option::MyOption::MySome(0)].Reference;ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated | -| Unexpected summary found: repo::test;::get_or_insert;Argument[0];Argument[self].Field[crate::option::MyOption::MySome(0)];value;dfc-generated | -| Unexpected summary found: repo::test;::get_or_insert;Argument[self].Field[crate::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated | -| Unexpected summary found: repo::test;::get_or_insert_default;Argument[self].Field[crate::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated | -| Unexpected summary found: repo::test;::get_or_insert_with;Argument[self].Field[crate::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated | -| Unexpected summary found: repo::test;::insert;Argument[self].Field[crate::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated | expectedModel -| Expected summary missing: repo::test;::take_if;Argument[self].Reference.Field[crate::option::MyOption::MySome(0)];Argument[0].Parameter[0].Reference;value;dfc-generated | -| Expected summary missing: repo::test;::take_if;Argument[self].Reference;ReturnValue;value;dfc-generated | From 6d617663662a2dd4a152dff9c2357865508b0248 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 30 Apr 2025 14:50:35 +0200 Subject: [PATCH 151/656] Added test case for `fastify.all` --- .../query-tests/Security/CWE-094/CodeInjection/fastify.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/fastify.js b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/fastify.js index e1cba0d277c..d538898f947 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/fastify.js +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/fastify.js @@ -101,3 +101,10 @@ fastify.get('/flow-through-reply', async (request, reply) => { } return { result: null }; }); + +fastify.all('/eval', async (request, reply) => { + const userInput = request.query.code; // $ MISSING: Source[js/code-injection] + const result = eval(userInput); // $ MISSING: Alert[js/code-injection] + const replyResult = eval(reply.locals.nestedCode); // $ MISSING: Alert[js/code-injection] + return { method: request.method, result }; +}); From 71f1b82a56245c63d447f5fc704add27ee02996f Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 30 Apr 2025 14:54:09 +0200 Subject: [PATCH 152/656] Added support for `fastify.all` --- .../ql/lib/semmle/javascript/frameworks/Fastify.qll | 7 +++++-- .../CWE-094/CodeInjection/CodeInjection.expected | 13 +++++++++++++ .../HeuristicSourceCodeInjection.expected | 9 +++++++++ .../Security/CWE-094/CodeInjection/fastify.js | 6 +++--- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll b/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll index cf8dd76b75e..4b53292e148 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll @@ -138,7 +138,8 @@ module Fastify { RouteSetup() { this = server(server).getAMethodCall(methodName) and - methodName = ["route", "get", "head", "post", "put", "delete", "options", "patch", "addHook"] + methodName = + ["route", "get", "head", "post", "put", "delete", "options", "patch", "addHook", "all"] } override DataFlow::SourceNode getARouteHandler() { @@ -168,7 +169,9 @@ module Fastify { override string getRelativePath() { result = this.getArgument(0).getStringValue() } - override Http::RequestMethodName getHttpMethod() { result = this.getMethodName().toUpperCase() } + override Http::RequestMethodName getHttpMethod() { + if this.getMethodName() = "all" then any() else result = this.getMethodName().toUpperCase() + } } private class AddHookRouteSetup extends Routing::RouteSetup::MethodCall instanceof RouteSetup { diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected index 9ad04af3a2c..4d54adb2724 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected @@ -57,6 +57,10 @@ | fastify.js:84:30:84:43 | reply.userCode | fastify.js:79:20:79:42 | request ... plyCode | fastify.js:84:30:84:43 | reply.userCode | This code execution depends on a $@. | fastify.js:79:20:79:42 | request ... plyCode | user-provided value | | fastify.js:99:30:99:52 | reply.l ... tedCode | fastify.js:94:29:94:41 | request.query | fastify.js:99:30:99:52 | reply.l ... tedCode | This code execution depends on a $@. | fastify.js:94:29:94:41 | request.query | user-provided value | | fastify.js:99:30:99:52 | reply.l ... tedCode | fastify.js:94:29:94:51 | request ... plyCode | fastify.js:99:30:99:52 | reply.l ... tedCode | This code execution depends on a $@. | fastify.js:94:29:94:51 | request ... plyCode | user-provided value | +| fastify.js:107:23:107:31 | userInput | fastify.js:106:21:106:33 | request.query | fastify.js:107:23:107:31 | userInput | This code execution depends on a $@. | fastify.js:106:21:106:33 | request.query | user-provided value | +| fastify.js:107:23:107:31 | userInput | fastify.js:106:21:106:38 | request.query.code | fastify.js:107:23:107:31 | userInput | This code execution depends on a $@. | fastify.js:106:21:106:38 | request.query.code | user-provided value | +| fastify.js:108:28:108:50 | reply.l ... tedCode | fastify.js:94:29:94:41 | request.query | fastify.js:108:28:108:50 | reply.l ... tedCode | This code execution depends on a $@. | fastify.js:94:29:94:41 | request.query | user-provided value | +| fastify.js:108:28:108:50 | reply.l ... tedCode | fastify.js:94:29:94:51 | request ... plyCode | fastify.js:108:28:108:50 | reply.l ... tedCode | This code execution depends on a $@. | fastify.js:94:29:94:51 | request ... plyCode | user-provided value | | module.js:9:16:9:29 | req.query.code | module.js:9:16:9:29 | req.query.code | module.js:9:16:9:29 | req.query.code | This code execution depends on a $@. | module.js:9:16:9:29 | req.query.code | user-provided value | | module.js:11:17:11:30 | req.query.code | module.js:11:17:11:30 | req.query.code | module.js:11:17:11:30 | req.query.code | This code execution depends on a $@. | module.js:11:17:11:30 | req.query.code | user-provided value | | react-native.js:8:32:8:38 | tainted | react-native.js:7:17:7:33 | req.param("code") | react-native.js:8:32:8:38 | tainted | This code execution depends on a $@. | react-native.js:7:17:7:33 | req.param("code") | user-provided value | @@ -145,6 +149,10 @@ edges | fastify.js:79:20:79:42 | request ... plyCode | fastify.js:84:30:84:43 | reply.userCode | provenance | | | fastify.js:94:29:94:41 | request.query | fastify.js:94:29:94:51 | request ... plyCode | provenance | | | fastify.js:94:29:94:51 | request ... plyCode | fastify.js:99:30:99:52 | reply.l ... tedCode | provenance | | +| fastify.js:94:29:94:51 | request ... plyCode | fastify.js:108:28:108:50 | reply.l ... tedCode | provenance | | +| fastify.js:106:9:106:38 | userInput | fastify.js:107:23:107:31 | userInput | provenance | | +| fastify.js:106:21:106:33 | request.query | fastify.js:106:9:106:38 | userInput | provenance | | +| fastify.js:106:21:106:38 | request.query.code | fastify.js:106:9:106:38 | userInput | provenance | | | react-native.js:7:7:7:33 | tainted | react-native.js:8:32:8:38 | tainted | provenance | | | react-native.js:7:7:7:33 | tainted | react-native.js:10:23:10:29 | tainted | provenance | | | react-native.js:7:17:7:33 | req.param("code") | react-native.js:7:7:7:33 | tainted | provenance | | @@ -268,6 +276,11 @@ nodes | fastify.js:94:29:94:41 | request.query | semmle.label | request.query | | fastify.js:94:29:94:51 | request ... plyCode | semmle.label | request ... plyCode | | fastify.js:99:30:99:52 | reply.l ... tedCode | semmle.label | reply.l ... tedCode | +| fastify.js:106:9:106:38 | userInput | semmle.label | userInput | +| fastify.js:106:21:106:33 | request.query | semmle.label | request.query | +| fastify.js:106:21:106:38 | request.query.code | semmle.label | request.query.code | +| fastify.js:107:23:107:31 | userInput | semmle.label | userInput | +| fastify.js:108:28:108:50 | reply.l ... tedCode | semmle.label | reply.l ... tedCode | | module.js:9:16:9:29 | req.query.code | semmle.label | req.query.code | | module.js:11:17:11:30 | req.query.code | semmle.label | req.query.code | | react-native.js:7:7:7:33 | tainted | semmle.label | tainted | diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected index aa23d7a6d5a..a1c8354ecf7 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected @@ -51,6 +51,10 @@ edges | fastify.js:79:20:79:42 | request ... plyCode | fastify.js:84:30:84:43 | reply.userCode | provenance | | | fastify.js:94:29:94:41 | request.query | fastify.js:94:29:94:51 | request ... plyCode | provenance | | | fastify.js:94:29:94:51 | request ... plyCode | fastify.js:99:30:99:52 | reply.l ... tedCode | provenance | | +| fastify.js:94:29:94:51 | request ... plyCode | fastify.js:108:28:108:50 | reply.l ... tedCode | provenance | | +| fastify.js:106:9:106:38 | userInput | fastify.js:107:23:107:31 | userInput | provenance | | +| fastify.js:106:21:106:33 | request.query | fastify.js:106:9:106:38 | userInput | provenance | | +| fastify.js:106:21:106:38 | request.query.code | fastify.js:106:9:106:38 | userInput | provenance | | | react-native.js:7:7:7:33 | tainted | react-native.js:8:32:8:38 | tainted | provenance | | | react-native.js:7:7:7:33 | tainted | react-native.js:10:23:10:29 | tainted | provenance | | | react-native.js:7:17:7:33 | req.param("code") | react-native.js:7:7:7:33 | tainted | provenance | | @@ -176,6 +180,11 @@ nodes | fastify.js:94:29:94:41 | request.query | semmle.label | request.query | | fastify.js:94:29:94:51 | request ... plyCode | semmle.label | request ... plyCode | | fastify.js:99:30:99:52 | reply.l ... tedCode | semmle.label | reply.l ... tedCode | +| fastify.js:106:9:106:38 | userInput | semmle.label | userInput | +| fastify.js:106:21:106:33 | request.query | semmle.label | request.query | +| fastify.js:106:21:106:38 | request.query.code | semmle.label | request.query.code | +| fastify.js:107:23:107:31 | userInput | semmle.label | userInput | +| fastify.js:108:28:108:50 | reply.l ... tedCode | semmle.label | reply.l ... tedCode | | module.js:9:16:9:29 | req.query.code | semmle.label | req.query.code | | module.js:11:17:11:30 | req.query.code | semmle.label | req.query.code | | react-native.js:7:7:7:33 | tainted | semmle.label | tainted | diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/fastify.js b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/fastify.js index d538898f947..05dd3f6eb46 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/fastify.js +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/fastify.js @@ -103,8 +103,8 @@ fastify.get('/flow-through-reply', async (request, reply) => { }); fastify.all('/eval', async (request, reply) => { - const userInput = request.query.code; // $ MISSING: Source[js/code-injection] - const result = eval(userInput); // $ MISSING: Alert[js/code-injection] - const replyResult = eval(reply.locals.nestedCode); // $ MISSING: Alert[js/code-injection] + const userInput = request.query.code; // $ Source[js/code-injection] + const result = eval(userInput); // $ Alert[js/code-injection] + const replyResult = eval(reply.locals.nestedCode); // $ Alert[js/code-injection] return { method: request.method, result }; }); From 9624a413e4b3a464ec68a9073516572819fc535f Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 30 Apr 2025 14:57:00 +0200 Subject: [PATCH 153/656] Added change note --- javascript/ql/lib/change-notes/2025-04-30-fastify-all.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2025-04-30-fastify-all.md diff --git a/javascript/ql/lib/change-notes/2025-04-30-fastify-all.md b/javascript/ql/lib/change-notes/2025-04-30-fastify-all.md new file mode 100644 index 00000000000..a49092f6ba4 --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-04-30-fastify-all.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Enhanced modeling of the [fastify](https://www.npmjs.com/package/fastify) framework to support the `all` route handler method. From 4f5b340278bf39aba61673cac360785068338a4a Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 30 Apr 2025 15:12:58 +0200 Subject: [PATCH 154/656] Rust: Add type inference debug predicates --- .../codeql/rust/internal/TypeInference.qll | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 2fae9ef1f5b..0f0c92306d1 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1017,3 +1017,24 @@ import Cached * Gets a type that `n` infers to, if any. */ Type inferType(AstNode n) { result = inferType(n, TypePath::nil()) } + +/** Provides predicates for debugging the type inference implementation. */ +private module Debug { + private Locatable getRelevantLocatable() { + exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | + result.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and + filepath.matches("%/tauri/src/app/plugin.rs") and + startline = 54 + ) + } + + Type debugInferType(AstNode n, TypePath path) { + n = getRelevantLocatable() and + result = inferType(n, path) + } + + Function debugResolveMethodCallExpr(MethodCallExpr mce) { + mce = getRelevantLocatable() and + result = resolveMethodCallExpr(mce) + } +} From ecd80fbc348d7564d5bf420de030b0e879bfff48 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 30 Apr 2025 15:25:01 +0200 Subject: [PATCH 155/656] Rust: fix QL compilation errors --- rust/ql/src/queries/diagnostics/UnresolvedMacroCalls.ql | 2 +- rust/ql/src/queries/summary/Stats.qll | 4 ++-- rust/ql/src/queries/telemetry/DatabaseQuality.qll | 4 ++-- rust/ql/src/queries/unusedentities/UnusedVariable.qll | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/rust/ql/src/queries/diagnostics/UnresolvedMacroCalls.ql b/rust/ql/src/queries/diagnostics/UnresolvedMacroCalls.ql index a20c5035b6a..9b04fca82f4 100644 --- a/rust/ql/src/queries/diagnostics/UnresolvedMacroCalls.ql +++ b/rust/ql/src/queries/diagnostics/UnresolvedMacroCalls.ql @@ -8,5 +8,5 @@ import rust from MacroCall mc -where not mc.hasExpanded() +where not mc.hasMacroCallExpansion() select mc, "Macro call was not resolved to a target." diff --git a/rust/ql/src/queries/summary/Stats.qll b/rust/ql/src/queries/summary/Stats.qll index 87d976b5580..8ce0126e4fd 100644 --- a/rust/ql/src/queries/summary/Stats.qll +++ b/rust/ql/src/queries/summary/Stats.qll @@ -136,9 +136,9 @@ predicate extractionStats(string key, int value) { or key = "Macro calls - total" and value = count(MacroCall mc) or - key = "Macro calls - resolved" and value = count(MacroCall mc | mc.hasExpanded()) + key = "Macro calls - resolved" and value = count(MacroCall mc | mc.hasMacroCallExpansion()) or - key = "Macro calls - unresolved" and value = count(MacroCall mc | not mc.hasExpanded()) + key = "Macro calls - unresolved" and value = count(MacroCall mc | not mc.hasMacroCallExpansion()) } /** diff --git a/rust/ql/src/queries/telemetry/DatabaseQuality.qll b/rust/ql/src/queries/telemetry/DatabaseQuality.qll index 8a9898efc40..15826fec4c4 100644 --- a/rust/ql/src/queries/telemetry/DatabaseQuality.qll +++ b/rust/ql/src/queries/telemetry/DatabaseQuality.qll @@ -30,9 +30,9 @@ module CallTargetStats implements StatsSig { } module MacroCallTargetStats implements StatsSig { - int getNumberOfOk() { result = count(MacroCall c | c.hasExpanded()) } + int getNumberOfOk() { result = count(MacroCall c | c.hasMacroCallExpansion()) } - additional predicate isNotOkCall(MacroCall c) { not c.hasExpanded() } + additional predicate isNotOkCall(MacroCall c) { not c.hasMacroCallExpansion() } int getNumberOfNotOk() { result = count(MacroCall c | isNotOkCall(c)) } diff --git a/rust/ql/src/queries/unusedentities/UnusedVariable.qll b/rust/ql/src/queries/unusedentities/UnusedVariable.qll index 2750ca1c42a..ad75415634c 100644 --- a/rust/ql/src/queries/unusedentities/UnusedVariable.qll +++ b/rust/ql/src/queries/unusedentities/UnusedVariable.qll @@ -25,7 +25,7 @@ class IncompleteCallable extends Callable { IncompleteCallable() { exists(MacroExpr me | me.getEnclosingCallable() = this and - not me.getMacroCall().hasExpanded() + not me.getMacroCall().hasMacroCallExpansion() ) } } From 2bef3c3604a3dab1b98d0d44deb578df9a1c6b24 Mon Sep 17 00:00:00 2001 From: Chad Bentz <1760475+felickz@users.noreply.github.com> Date: Wed, 30 Apr 2025 09:44:27 -0400 Subject: [PATCH 156/656] Adding comprehensive docs for customizing query --- .../CWE-829/UnpinnedActionsTag-CUSTOMIZING.md | 39 +++++++++++++++++++ .../Security/CWE-829/UnpinnedActionsTag.md | 2 + 2 files changed, 41 insertions(+) create mode 100644 actions/ql/src/Security/CWE-829/UnpinnedActionsTag-CUSTOMIZING.md diff --git a/actions/ql/src/Security/CWE-829/UnpinnedActionsTag-CUSTOMIZING.md b/actions/ql/src/Security/CWE-829/UnpinnedActionsTag-CUSTOMIZING.md new file mode 100644 index 00000000000..1e64c2751a6 --- /dev/null +++ b/actions/ql/src/Security/CWE-829/UnpinnedActionsTag-CUSTOMIZING.md @@ -0,0 +1,39 @@ + ### Configuration + + If there is an Action publisher that you trust, you can include the owner name/organization in a data extension model pack to add it to the allow list for this query. Adding owners to this list will prevent security alerts when using unpinned tags for Actions published by that owner. + + #### Example + + To allow any Action from the publisher `octodemo`, such as `octodemo/3rd-party-action`, follow these steps: + + 1. Create a data extension file `/models/trusted-owner.model.yml` with the following content: + + ```yaml + extensions: + - addsTo: + pack: codeql/actions-all + extensible: trustedActionsOwnerDataModel + data: + - ["octodemo"] + ``` + + 2. Create a model pack file `/codeql-pack.yml` with the following content: + + ```yaml + name: my-org/actions-extensions-model-pack + version: 0.0.0 + library: true + extensionTargets: + codeql/actions-all: '*' + dataExtensions: + - models/**/*.yml + ``` + + 3. Ensure that the model pack is included in your CodeQL analysis. + + By following these steps, you will add `octodemo` to the list of trusted Action publishers, and the query will no longer generate security alerts for unpinned tags from this publisher. + + ## References + - [Extending CodeQL coverage with CodeQL model packs in default setup](https://docs.github.com/en/code-security/code-scanning/managing-your-code-scanning-configuration/editing-your-configuration-of-default-setup#extending-codeql-coverage-with-codeql-model-packs-in-default-setup) + - [Creating and working with CodeQL packs](https://docs.github.com/en/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs#creating-a-codeql-model-pack) + - [Customizing library models for GitHub Actions](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-actions/) diff --git a/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.md b/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.md index f8ea2fdc82f..7b0749349a7 100644 --- a/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.md +++ b/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.md @@ -8,6 +8,8 @@ Using a tag for a 3rd party Action that is not pinned to a commit can lead to ex Pinning an action to a full length commit SHA is currently the only way to use a non-immutable action as an immutable release. Pinning to a particular SHA helps mitigate the risk of a bad actor adding a backdoor to the action's repository, as they would need to generate a SHA-1 collision for a valid Git object payload. When selecting a SHA, you should verify it is from the action's repository and not a repository fork. +See the [`UnpinnedActionsTag-CUSTOMIZING.md`](https://github.com/github/codeql/blob/main/actions/ql/src/Security/CWE-829/UnpinnedActionsTag-CUSTOMIZING.md) file in the source code for this query for information on how to extend the list of Action publishers trusted by this query. + ## Examples ### Incorrect Usage From edd18dc0521aa972fcee2a66b1aebf7fc44348a7 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 30 Apr 2025 16:23:06 +0200 Subject: [PATCH 157/656] C++: Address review comment --- .../header-variant-tests/clang-pch/test.py | 19 ++++++++++--------- .../microsoft-pch/test.py | 7 ++++--- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py b/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py index 3cf2d42f764..d7bc5fe6352 100644 --- a/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py @@ -3,14 +3,15 @@ import os def test(codeql, cpp): os.mkdir("pch") + extractor = f"{cpp.get_tool("extractor")}" codeql.database.create(command=[ - f'"{cpp.get_tool("extractor")}" --mimic-clang -emit-pch -o pch/a.pch a.c', - f'"{cpp.get_tool("extractor")}" --mimic-clang -include-pch pch/a.pch -Iextra_dummy_path b.c', - f'"{cpp.get_tool("extractor")}" --mimic-clang -include pch/a -Iextra_dummy_path c.c', - f'"{cpp.get_tool("extractor")}" --mimic-clang -emit-pch -o pch/d.pch d.c', - f'"{cpp.get_tool("extractor")}" --mimic-clang -include-pch pch/d.pch e.c', - f'"{cpp.get_tool("extractor")}" --mimic-clang -emit-pch -o pch/f.pch f.c', - f'"{cpp.get_tool("extractor")}" --mimic-clang -include-pch pch/f.pch g.c', - f'"{cpp.get_tool("extractor")}" --mimic-clang -emit-pch -o pch/h.pch h.c', - f'"{cpp.get_tool("extractor")}" --mimic-clang -include-pch pch/h.pch i.c', + f'"{extractor}" --mimic-clang -emit-pch -o pch/a.pch a.c', + f'"{extractor}" --mimic-clang -include-pch pch/a.pch -Iextra_dummy_path b.c', + f'"{extractor}" --mimic-clang -include pch/a -Iextra_dummy_path c.c', + f'"{extractor}" --mimic-clang -emit-pch -o pch/d.pch d.c', + f'"{extractor}" --mimic-clang -include-pch pch/d.pch e.c', + f'"{extractor}" --mimic-clang -emit-pch -o pch/f.pch f.c', + f'"{extractor}" --mimic-clang -include-pch pch/f.pch g.c', + f'"{extractor}" --mimic-clang -emit-pch -o pch/h.pch h.c', + f'"{extractor}" --mimic-clang -include-pch pch/h.pch i.c', ]) diff --git a/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py index eaa0fdb8786..d734f0335f1 100644 --- a/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py +++ b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py @@ -3,8 +3,9 @@ import os def test(codeql, cpp): os.mkdir("pch") + extractor = f"{cpp.get_tool("extractor")}" codeql.database.create(command=[ - f'"{cpp.get_tool("extractor")}" --mimic-cl /Yca.h /Fppch/a.pch a.c', - f'"{cpp.get_tool("extractor")}" --mimic-cl /Yub.h /Fppch/a.pch b.c', - f'"{cpp.get_tool("extractor")}" --mimic-cl /Yuc.h /Fppch/a.pch c.c', + f'"{extractor}" --mimic-cl /Yca.h /Fppch/a.pch a.c', + f'"{extractor}" --mimic-cl /Yub.h /Fppch/a.pch b.c', + f'"{extractor}" --mimic-cl /Yuc.h /Fppch/a.pch c.c', ]) From 7f24a2557dab63a2e1a241ef83c5e11a0622a28b Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Wed, 30 Apr 2025 16:28:31 +0200 Subject: [PATCH 158/656] Add modelling for JCA key gen cipher algorithm --- java/ql/lib/experimental/Quantum/JCA.qll | 83 +++++++---- java/ql/lib/experimental/Quantum/Language.qll | 35 +++-- .../Quantum/InsecureNonceSource.ql | 20 +++ .../experimental/Quantum/TestAESGCMNonce.ql | 16 +++ .../ql/src/experimental/Quantum/TestCipher.ql | 2 +- java/ql/src/experimental/Quantum/TestHash.ql | 4 +- misc/scripts/cryptography/generate_cbom.py | 10 +- .../codeql/cryptography/Model.qll | 135 ++++++++++++++---- 8 files changed, 234 insertions(+), 71 deletions(-) create mode 100644 java/ql/src/experimental/Quantum/InsecureNonceSource.ql create mode 100644 java/ql/src/experimental/Quantum/TestAESGCMNonce.ql diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 7507c9edbd5..6589cbbc9d5 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -2,7 +2,6 @@ import java import semmle.code.java.dataflow.DataFlow import semmle.code.java.dataflow.TaintTracking import semmle.code.java.controlflow.Dominance -import codeql.util.Option module JCAModel { import Language @@ -354,9 +353,11 @@ module JCAModel { else result instanceof KeyOpAlg::TUnknownKeyOperationAlgorithmType } - override string getKeySize() { + override string getKeySizeFixed() { none() // TODO: implement to handle variants such as AES-128 } + + override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { none() } } bindingset[input] @@ -394,8 +395,6 @@ module JCAModel { override Crypto::HashAlgorithmInstance getOAEPEncodingHashAlgorithm() { result = this } override Crypto::HashAlgorithmInstance getMGF1HashAlgorithm() { none() } // TODO - - override string getKeySize() { none() } } /** @@ -446,8 +445,6 @@ module JCAModel { predicate isIntermediate(); } - module MethodCallOption = Option; - /** * An generic analysis module for analyzing the `getInstance` to `initialize` to `doOperation` pattern in the JCA. * @@ -568,6 +565,14 @@ module JCAModel { GetInstanceToInitToUseFlow::flowPath(src, sink) } + GetInstance getInstantiationFromInit( + Init init, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink + ) { + src.getNode().asExpr() = result and + sink.getNode().asExpr() = init.(MethodCall).getQualifier() and + GetInstanceToInitToUseFlow::flowPath(src, sink) + } + Init getInitFromUse( Use use, GetInstanceToInitToUseFlow::PathNode src, GetInstanceToInitToUseFlow::PathNode sink ) { @@ -829,6 +834,9 @@ module JCAModel { } } + module MessageDigestFlowAnalysisImpl = + GetInstanceInitUseFlowAnalysis; + class MessageDigestGetInstanceAlgorithmValueConsumer extends HashAlgorithmValueConsumer { MessageDigestGetInstanceCall call; @@ -849,17 +857,18 @@ module JCAModel { } Expr getAlgorithmArg() { result = this.getArgument(0) } - - DigestHashOperation getDigestCall() { - DigestGetInstanceToDigestFlow::flow(DataFlow::exprNode(this), - DataFlow::exprNode(result.(DigestCall).getQualifier())) - } } class DigestCall extends MethodCall { - DigestCall() { this.getCallee().hasQualifiedName("java.security", "MessageDigest", "digest") } + DigestCall() { + this.getCallee().hasQualifiedName("java.security", "MessageDigest", ["update", "digest"]) + } Expr getDigestArtifactOutput() { result = this } + + Expr getInputArg() { result = this.getArgument(0) } + + predicate isIntermediate() { this.getMethod().getName() = "update" } } // flow config from MessageDigest.getInstance to MessageDigest.digest @@ -873,23 +882,22 @@ module JCAModel { module DigestGetInstanceToDigestFlow = DataFlow::Global; - class DigestArtifact extends Crypto::DigestArtifactInstance { - DigestArtifact() { this = any(DigestCall call).getDigestArtifactOutput() } - - override DataFlow::Node getOutputNode() { result.asExpr() = this } - } - class DigestHashOperation extends Crypto::HashOperationInstance instanceof DigestCall { - override Crypto::DigestArtifactInstance getDigestArtifact() { - result = this.(DigestCall).getDigestArtifactOutput() + DigestHashOperation() { not super.isIntermediate() } + + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { + result.asExpr() = super.getDigestArtifactOutput() } override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { - exists(MessageDigestGetInstanceCall getInstanceCall | - getInstanceCall.getDigestCall() = this and - getInstanceCall = - result.(MessageDigestGetInstanceAlgorithmValueConsumer).getInstantiationCall() - ) + MessageDigestFlowAnalysisImpl::getInstantiationFromUse(this, _, _) = + result.(MessageDigestGetInstanceAlgorithmValueConsumer).getInstantiationCall() + } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { + result.asExpr() = super.getInputArg() or + result.asExpr() = + MessageDigestFlowAnalysisImpl::getAnIntermediateUseFromFinalUse(this, _, _).getInputArg() } } @@ -997,6 +1005,7 @@ module JCAModel { or // However, for general elliptic curves, getInstance("EC") is used // and java.security.spec.ECGenParameterSpec("") is what sets the specific curve. + // If init is not specified, the default (P-) // The result of ECGenParameterSpec is passed to KeyPairGenerator.initialize // If the curve is not specified, the default is used. // We would trace the use of this inside a KeyPairGenerator.initialize @@ -1096,6 +1105,30 @@ module JCAModel { override string getKeySizeFixed() { none() } } + class KeyGeneratorCipherAlgorithm extends CipherStringLiteralAlgorithmInstance { + KeyGeneratorCipherAlgorithm() { consumer instanceof KeyGenerationAlgorithmValueConsumer } + + override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { + exists(KeyGeneratorGetInstanceCall getInstance, KeyGeneratorInitCall init | + getInstance = + this.getConsumer().(KeyGenerationAlgorithmValueConsumer).getInstantiationCall() and + getInstance = KeyGeneratorFlowAnalysisImpl::getInstantiationFromInit(init, _, _) and + init.getKeySizeArg() = result.asExpr() + ) + } + + predicate isOnlyConsumedByKeyGen() { + forall(Crypto::AlgorithmValueConsumer c | + c = this.getConsumer() and + c instanceof KeyGenerationAlgorithmValueConsumer + ) + } + + override predicate shouldHaveModeOfOperation() { this.isOnlyConsumedByKeyGen() } + + override predicate shouldHavePaddingScheme() { this.isOnlyConsumedByKeyGen() } + } + /* * Key Derivation Functions (KDFs) */ diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 1e12f6f1ac8..6f7dc88157b 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -38,7 +38,7 @@ module CryptoInput implements InputSig { predicate artifactOutputFlowsToGenericInput( DataFlow::Node artifactOutput, DataFlow::Node otherInput ) { - ArtifactUniversalFlow::flow(artifactOutput, otherInput) + ArtifactFlow::flow(artifactOutput, otherInput) } } @@ -60,7 +60,7 @@ class GenericUnreferencedParameterSource extends Crypto::GenericUnreferencedPara } override predicate flowsTo(Crypto::FlowAwareElement other) { - GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + GenericDataSourceFlow::flow(this.getOutputNode(), other.getInputNode()) } override DataFlow::Node getOutputNode() { result.asParameter() = this } @@ -76,7 +76,7 @@ class GenericLocalDataSource extends Crypto::GenericLocalDataSource { override DataFlow::Node getOutputNode() { result.asExpr() = this } override predicate flowsTo(Crypto::FlowAwareElement other) { - GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + GenericDataSourceFlow::flow(this.getOutputNode(), other.getInputNode()) } override string getAdditionalDescription() { result = this.toString() } @@ -88,7 +88,7 @@ class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { override DataFlow::Node getOutputNode() { result.asExpr() = this } override predicate flowsTo(Crypto::FlowAwareElement other) { - GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + GenericDataSourceFlow::flow(this.getOutputNode(), other.getInputNode()) } override string getAdditionalDescription() { result = this.toString() } @@ -107,7 +107,7 @@ class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceo override predicate flowsTo(Crypto::FlowAwareElement other) { // TODO: separate config to avoid blowing up data-flow analysis - GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) + GenericDataSourceFlow::flow(this.getOutputNode(), other.getInputNode()) } override string getAdditionalDescription() { result = this.toString() } @@ -122,15 +122,24 @@ abstract class RandomnessInstance extends Crypto::RandomNumberGenerationInstance } class SecureRandomnessInstance extends RandomnessInstance { + RandomDataSource source; + SecureRandomnessInstance() { - exists(RandomDataSource s | this = s.getOutput() | - s.getSourceOfRandomness() instanceof SecureRandomNumberGenerator - ) + this = source.getOutput() and + source.getSourceOfRandomness() instanceof SecureRandomNumberGenerator } + + override string getGeneratorName() { result = source.getSourceOfRandomness().getQualifiedName() } } class InsecureRandomnessInstance extends RandomnessInstance { - InsecureRandomnessInstance() { exists(InsecureRandomnessSource node | this = node.asExpr()) } + RandomDataSource source; + + InsecureRandomnessInstance() { + any(InsecureRandomnessSource src).asExpr() = this and source.getOutput() = this + } + + override string getGeneratorName() { result = source.getSourceOfRandomness().getQualifiedName() } } /** @@ -142,12 +151,12 @@ abstract class AdditionalFlowInputStep extends DataFlow::Node { final DataFlow::Node getInput() { result = this } } -module ArtifactUniversalFlow = DataFlow::Global; +module ArtifactFlow = DataFlow::Global; /** * Generic data source to node input configuration */ -module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { +module GenericDataSourceFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source = any(Crypto::GenericSourceInstance i).getOutputNode() } @@ -175,7 +184,7 @@ module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { } } -module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { +module ArtifactFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source = any(Crypto::ArtifactInstance artifact).getOutputNode() } @@ -203,7 +212,7 @@ module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { } } -module GenericDataSourceUniversalFlow = TaintTracking::Global; +module GenericDataSourceFlow = TaintTracking::Global; // Import library-specific modeling import JCA diff --git a/java/ql/src/experimental/Quantum/InsecureNonceSource.ql b/java/ql/src/experimental/Quantum/InsecureNonceSource.ql new file mode 100644 index 00000000000..9c06884328b --- /dev/null +++ b/java/ql/src/experimental/Quantum/InsecureNonceSource.ql @@ -0,0 +1,20 @@ +/** + * @name Insecure nonce at a cipher operation + * @id java/insecure-nonce + * @kind problem + * @problem.severity error + * @precision high + * @description A nonce is generated from a source that is not secure. This can lead to + * vulnerabilities such as replay attacks or key recovery. + */ + +import experimental.Quantum.Language + +predicate isInsecureNonceSource(Crypto::NonceArtifactNode n, Crypto::NodeBase src) { + src = n.getSourceNode() and + not src.asElement() instanceof SecureRandomnessInstance +} + +from Crypto::KeyOperationNode op, Crypto::NodeBase src +where isInsecureNonceSource(op.getANonce(), src) +select op, "Operation uses insecure nonce source $@", src, src.toString() diff --git a/java/ql/src/experimental/Quantum/TestAESGCMNonce.ql b/java/ql/src/experimental/Quantum/TestAESGCMNonce.ql new file mode 100644 index 00000000000..985527318ff --- /dev/null +++ b/java/ql/src/experimental/Quantum/TestAESGCMNonce.ql @@ -0,0 +1,16 @@ +/** + * @name "PQC Test" + */ + +import experimental.Quantum.Language + +class AESGCMAlgorithmNode extends Crypto::KeyOperationAlgorithmNode { + AESGCMAlgorithmNode() { + this.getAlgorithmType() = Crypto::KeyOpAlg::TSymmetricCipher(Crypto::KeyOpAlg::AES()) and + this.getModeOfOperation().getModeType() = Crypto::GCM() + } +} + +from Crypto::KeyOperationNode op, Crypto::NonceArtifactNode nonce +where op.getAKnownAlgorithm() instanceof AESGCMAlgorithmNode and nonce = op.getANonce() +select op, nonce.getSourceNode() diff --git a/java/ql/src/experimental/Quantum/TestCipher.ql b/java/ql/src/experimental/Quantum/TestCipher.ql index 6779a64f608..503d6003922 100644 --- a/java/ql/src/experimental/Quantum/TestCipher.ql +++ b/java/ql/src/experimental/Quantum/TestCipher.ql @@ -1,5 +1,5 @@ /** - * @name "PQC Test" + * @name "Key operation slice table demo query" */ import experimental.Quantum.Language diff --git a/java/ql/src/experimental/Quantum/TestHash.ql b/java/ql/src/experimental/Quantum/TestHash.ql index 96f99193cba..76ef6951a7e 100644 --- a/java/ql/src/experimental/Quantum/TestHash.ql +++ b/java/ql/src/experimental/Quantum/TestHash.ql @@ -1,9 +1,9 @@ /** - * @name TestHashOperations + * @name "Hash operation slice table demo query" */ import experimental.Quantum.Language from Crypto::HashOperationNode op, Crypto::HashAlgorithmNode alg -where alg = op.getAKnownHashAlgorithm() +where alg = op.getAKnownAlgorithm() select op, op.getDigest(), alg, alg.getRawAlgorithmName() diff --git a/misc/scripts/cryptography/generate_cbom.py b/misc/scripts/cryptography/generate_cbom.py index fa4c2cb1d02..6bd0d19712c 100644 --- a/misc/scripts/cryptography/generate_cbom.py +++ b/misc/scripts/cryptography/generate_cbom.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import os +import re import sys import argparse import subprocess @@ -86,6 +87,7 @@ def main(): parser.add_argument("-c", "--codeql", required=True, help="Path to CodeQL CLI executable.") parser.add_argument("-d", "--database", required=True, help="Path to the CodeQL database.") parser.add_argument("-q", "--query", required=True, help="Path to the .ql query file.") + parser.add_argument("--queryid", required=True, help="Query ID for the analysis.") parser.add_argument("-o", "--output", required=True, help="Output directory for analysis results.") args = parser.parse_args() @@ -94,7 +96,13 @@ def main(): run_codeql_analysis(args.codeql, args.database, args.query, args.output) # Locate DGML file - dgml_file = os.path.join(args.output, "java", "print-cbom-graph.dgml") + ALLOWED_QUERY_ID = re.compile(r'^[a-zA-Z0-9_\-]+$') + + if not ALLOWED_QUERY_ID.match(args.queryid): + print("Invalid query_id provided: '%s'. Allowed characters: letters, digits, '_', and '-'.", args.queryid) + sys.exit(1) + + dgml_file = os.path.join(args.output, "java", '{}.dgml'.format(args.queryid)) dot_file = dgml_file.replace(".dgml", ".dot") if os.path.exists(dgml_file): diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 510f334bc62..b3c104cbc5e 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -3,7 +3,6 @@ */ import codeql.util.Location -import codeql.util.Option import codeql.util.Either signature module InputSig { @@ -379,6 +378,8 @@ module CryptographyBase Input> { exists(KeyDerivationOperationInstance op | inputNode = op.getInputConsumer()) or exists(MACOperationInstance op | inputNode = op.getMessageConsumer()) + or + exists(HashOperationInstance op | inputNode = op.getInputConsumer()) ) and this = Input::dfn_to_element(inputNode) } @@ -410,16 +411,11 @@ module CryptographyBase Input> { } } - /** - * An artifact representing a hash function's digest output. - */ - abstract class DigestArtifactInstance extends OutputArtifactInstance { } - /** * An artifact representing a random number generator's output. */ abstract class RandomNumberGenerationInstance extends OutputArtifactInstance { - // TODO: input seed? + abstract string getGeneratorName(); } /** @@ -438,6 +434,17 @@ module CryptographyBase Input> { override DataFlowNode getOutputNode() { result = creator.getOutputArtifact() } } + /** + * An artifact representing the message digest output of a hash operation. + */ + final class HashOutputArtifactInstance extends OutputArtifactInstance { + HashOperationInstance creator; + + HashOutputArtifactInstance() { Input::dfn_to_element(creator.getOutputArtifact()) = this } + + override DataFlowNode getOutputNode() { result = creator.getOutputArtifact() } + } + /** * An artifact representing the shared secret generated by key agreement operations. */ @@ -489,8 +496,14 @@ module CryptographyBase Input> { // TODO: key type hint? e.g. hint: private || public KeyArtifactConsumer() { ( - exists(KeyOperationInstance op | inputNode = op.getKeyConsumer()) or + exists(KeyOperationInstance op | inputNode = op.getKeyConsumer()) + or exists(MACOperationInstance op | inputNode = op.getKeyConsumer()) + or + exists(KeyAgreementSecretGenerationOperationInstance op | + inputNode = op.getServerKeyConsumer() or + inputNode = op.getPeerKeyConsumer() + ) ) and this = Input::dfn_to_element(inputNode) } @@ -770,7 +783,22 @@ module CryptographyBase Input> { * * If the algorithm accepts a range of key sizes without a particular one specified, this predicate should be implemented as `none()`. */ - abstract string getKeySize(); + abstract string getKeySizeFixed(); + + /** + * Gets a consumer for the key size in bits specified for this algorithm variant. + */ + abstract ConsumerInputDataFlowNode getKeySizeConsumer(); + + /** + * Holds if this algorithm is expected to have a mode specified. + */ + predicate shouldHaveModeOfOperation() { any() } + + /** + * Holds if this algorithm is expected to have a padding scheme specified. + */ + predicate shouldHavePaddingScheme() { any() } } newtype TBlockCipherModeOfOperationType = @@ -904,7 +932,9 @@ module CryptographyBase Input> { } abstract class HashOperationInstance extends OperationInstance { - abstract DigestArtifactInstance getDigestArtifact(); + abstract ArtifactOutputDataFlowNode getOutputArtifact(); + + abstract ConsumerInputDataFlowNode getInputConsumer(); } abstract class HashAlgorithmInstance extends AlgorithmInstance { @@ -1151,7 +1181,7 @@ module CryptographyBase Input> { private newtype TNode = // Output artifacts (data that is not an operation or algorithm, e.g., a key) - TDigest(DigestArtifactInstance e) or + TDigest(HashOutputArtifactInstance e) or TKey(KeyArtifactInstance e) or TSharedSecret(KeyAgreementSharedSecretOutputArtifactInstance e) or // Input artifacts (synthetic nodes, used to differentiate input as entities) @@ -1442,6 +1472,15 @@ module CryptographyBase Input> { override LocatableElement asElement() { result = instance } override string getSourceNodeRelationship() { none() } // TODO: seed? + + override predicate properties(string key, string value, Location location) { + super.properties(key, value, location) + or + // [ONLY_KNOWN] + key = "Description" and + value = instance.getGeneratorName() and + location = this.getLocation() + } } /** @@ -1518,7 +1557,7 @@ module CryptographyBase Input> { * A digest artifact produced by a hash operation. */ final class DigestArtifactNode extends ArtifactNode, TDigest { - DigestArtifactInstance instance; + HashOutputArtifactInstance instance; DigestArtifactNode() { this = TDigest(instance) } @@ -1664,12 +1703,28 @@ module CryptographyBase Input> { result.asElement() = instance.getOutputArtifact().getArtifact() } + KeyArtifactNode getServerKey() { + result.asElement() = instance.getServerKeyConsumer().getConsumer() + } + + KeyArtifactNode getPeerKey() { + result.asElement() = instance.getPeerKeyConsumer().getConsumer() + } + override NodeBase getChild(string key) { result = super.getChild(key) or // [ALWAYS_KNOWN] key = "Output" and result = this.getOutput() + or + // [KNOWN_OR_UNKOWN] + key = "ServerKey" and + if exists(this.getServerKey()) then result = this.getServerKey() else result = this + or + // [KNOWN_OR_UNKOWN] + key = "PeerKey" and + if exists(this.getPeerKey()) then result = this.getPeerKey() else result = this } } @@ -2115,7 +2170,14 @@ module CryptographyBase Input> { /** * Gets the key size variant of this algorithm in bits, e.g., 128 for "AES-128". */ - string getKeySize() { result = instance.asAlg().getKeySize() } // TODO: key sizes for known algorithms + string getKeySizeFixed() { result = instance.asAlg().getKeySizeFixed() } // TODO: key sizes for known algorithms + + /** + * Gets the key size generic source node. + */ + GenericSourceNode getKeySize() { + result = instance.asAlg().getKeySizeConsumer().getConsumer().getAGenericSourceNode() + } /** * Gets the type of this key operation algorithm, e.g., "SymmetricEncryption(_)" or "" @@ -2139,17 +2201,23 @@ module CryptographyBase Input> { override NodeBase getChild(string edgeName) { result = super.getChild(edgeName) or - // [KNOWN_OR_UNKNOWN] + // [KNOWN_OR_UNKNOWN] - but only if not suppressed edgeName = "Mode" and - if exists(this.getModeOfOperation()) - then result = this.getModeOfOperation() - else result = this + ( + if exists(this.getModeOfOperation()) + then result = this.getModeOfOperation() + else result = this + ) and + instance.asAlg().shouldHaveModeOfOperation() or - // [KNOWN_OR_UNKNOWN] + // [KNOWN_OR_UNKNOWN] - but only if not suppressed edgeName = "Padding" and - if exists(this.getPaddingAlgorithm()) - then result = this.getPaddingAlgorithm() - else result = this + ( + if exists(this.getPaddingAlgorithm()) + then result = this.getPaddingAlgorithm() + else result = this + ) and + instance.asAlg().shouldHavePaddingScheme() } override predicate properties(string key, string value, Location location) { @@ -2160,14 +2228,13 @@ module CryptographyBase Input> { this.getSymmetricCipherStructure().toString() = value and location = this.getLocation() or + // [ONLY_KNOWN] + key = "KeySize" and ( - // [KNOWN_OR_UNKNOWN] - key = "KeySize" and - if exists(this.getKeySize()) - then value = this.getKeySize() - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) + value = this.getKeySizeFixed() and + location = this.getLocation() + or + node_as_property(this.getKeySize(), value, location) ) } } @@ -2191,10 +2258,16 @@ module CryptographyBase Input> { node instanceof HashAlgorithmNode } + MessageArtifactNode getInputArtifact() { + result.asElement() = instance.getInputConsumer().getConsumer() + } + /** * Gets the output digest node */ - DigestArtifactNode getDigest() { result.asElement() = instance.getDigestArtifact() } + DigestArtifactNode getDigest() { + result.asElement() = instance.getOutputArtifact().getArtifact() + } override NodeBase getChild(string key) { result = super.getChild(key) @@ -2202,6 +2275,10 @@ module CryptographyBase Input> { // [KNOWN_OR_UNKNOWN] key = "Digest" and if exists(this.getDigest()) then result = this.getDigest() else result = this + or + // [KNOWN_OR_UNKNOWN] + key = "Message" and + if exists(this.getInputArtifact()) then result = this.getInputArtifact() else result = this } } From 6ecaf6513218d6814ed5310e88e55f5b911ba9f1 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 30 Apr 2025 16:38:13 +0200 Subject: [PATCH 159/656] Rust: fix downgrade script --- .../old.dbscheme | 10 ++++++++-- .../rust.dbscheme | 0 .../upgrade.properties | 5 +++++ .../downgrade.ql | 7 ------- .../upgrade.properties | 4 ---- 5 files changed, 13 insertions(+), 13 deletions(-) rename rust/downgrades/{f78cb8f2ab3bafb0d116cd8128f0315db24aea33 => 7b74969ab7ac48b2c51700c62e5a51decca392ea}/old.dbscheme (99%) rename rust/downgrades/{f78cb8f2ab3bafb0d116cd8128f0315db24aea33 => 7b74969ab7ac48b2c51700c62e5a51decca392ea}/rust.dbscheme (100%) create mode 100644 rust/downgrades/7b74969ab7ac48b2c51700c62e5a51decca392ea/upgrade.properties delete mode 100644 rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/downgrade.ql delete mode 100644 rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/upgrade.properties diff --git a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/old.dbscheme b/rust/downgrades/7b74969ab7ac48b2c51700c62e5a51decca392ea/old.dbscheme similarity index 99% rename from rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/old.dbscheme rename to rust/downgrades/7b74969ab7ac48b2c51700c62e5a51decca392ea/old.dbscheme index f78cb8f2ab3..7b74969ab7a 100644 --- a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/old.dbscheme +++ b/rust/downgrades/7b74969ab7ac48b2c51700c62e5a51decca392ea/old.dbscheme @@ -1960,9 +1960,9 @@ infer_type_reprs( ; #keyset[id] -item_expandeds( +item_attribute_macro_expansions( int id: @item ref, - int expanded: @ast_node ref + int attribute_macro_expansion: @macro_items ref ); @labelable_expr = @@ -3088,6 +3088,12 @@ macro_call_token_trees( int token_tree: @token_tree ref ); +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + macro_defs( unique int id: @macro_def ); diff --git a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/rust.dbscheme b/rust/downgrades/7b74969ab7ac48b2c51700c62e5a51decca392ea/rust.dbscheme similarity index 100% rename from rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/rust.dbscheme rename to rust/downgrades/7b74969ab7ac48b2c51700c62e5a51decca392ea/rust.dbscheme diff --git a/rust/downgrades/7b74969ab7ac48b2c51700c62e5a51decca392ea/upgrade.properties b/rust/downgrades/7b74969ab7ac48b2c51700c62e5a51decca392ea/upgrade.properties new file mode 100644 index 00000000000..13860dac419 --- /dev/null +++ b/rust/downgrades/7b74969ab7ac48b2c51700c62e5a51decca392ea/upgrade.properties @@ -0,0 +1,5 @@ +description: Rename `macro_call_expansion` to `expanded`, and remove `attribute_macro_expansion` +compatibility: backwards +macro_call_expandeds.rel: reorder macro_call_macro_call_expansions.rel (@macro_call id, @ast_node expanded) id expanded +macro_call_macro_call_expansions.rel: delete +item_attribute_macro_expansions.rel: delete diff --git a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/downgrade.ql b/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/downgrade.ql deleted file mode 100644 index 562e773383f..00000000000 --- a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/downgrade.ql +++ /dev/null @@ -1,7 +0,0 @@ -class Element extends @element { - string toString() { none() } -} - -query predicate new_macro_call_expandeds(Element id, Element expanded) { - item_expandeds(id, expanded) and macro_calls(id) -} diff --git a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/upgrade.properties b/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/upgrade.properties deleted file mode 100644 index aa90ec62fc3..00000000000 --- a/rust/downgrades/f78cb8f2ab3bafb0d116cd8128f0315db24aea33/upgrade.properties +++ /dev/null @@ -1,4 +0,0 @@ -description: Move `expanded` back from all `@item`s to `@macro_call`s only -compatibility: backwards -item_expandeds.rel: delete -macro_call_expandeds.rel: run downgrade.ql new_macro_call_expandeds From c263d3faf93f29d691612f947482365d2e08fa14 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 30 Apr 2025 17:39:22 +0200 Subject: [PATCH 160/656] Rust: Remove predicates unused after refactor --- .../lib/codeql/rust/internal/TypeInference.qll | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index b999b72240b..f553351868b 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -662,15 +662,6 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { tAdj = t ) } - - pragma[nomagic] - additional Type inferReceiverType(AstNode n) { - exists(Access a, AccessPosition apos | - result = inferType(n) and - n = a.getNodeAt(apos) and - apos.isSelf() - ) - } } private module CallExprBaseMatching = Matching; @@ -813,15 +804,6 @@ private module FieldExprMatchingInput implements MatchingInputSig { tAdj = t ) } - - pragma[nomagic] - additional Type inferReceiverType(AstNode n) { - exists(Access a, AccessPosition apos | - result = inferType(n) and - n = a.getNodeAt(apos) and - apos.isSelf() - ) - } } private module FieldExprMatching = Matching; From c80588cda15b873c2f5c4196726104feb7c72065 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Wed, 30 Apr 2025 11:41:28 -0400 Subject: [PATCH 161/656] Adding content to KnownSymmetricCipherAlgorithmql. --- .../InventorySlices/KnownSymmetricCipherAlgorithm.ql | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql index e69de29bb2d..21949f1c8c6 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql @@ -0,0 +1,12 @@ +/** + * @name Detects known symmetric cipher algorithms + * @id java/crypto_inventory_slices/known_symmetric_cipher_algorithm + * @kind problem + */ + +import java +import experimental.Quantum.Language + +from Crypto::KeyOperationAlgorithmNode a +where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::SymmetricCipherAlgorithm +select a, "Instance of symmetric cipher algorithm " + a.getAlgorithmName() From cf614a596d965f2584bfc568a9ec3dbd370ddbf6 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 30 Apr 2025 16:43:03 +0100 Subject: [PATCH 162/656] Fix cwe tags to include leading zero --- cpp/ql/src/Security/CWE/CWE-014/MemsetMayBeDeleted.ql | 2 +- .../src/Security/CWE/CWE-020/CountUntrustedDataToExternalAPI.ql | 2 +- .../Security/CWE/CWE-020/IRCountUntrustedDataToExternalAPI.ql | 2 +- cpp/ql/src/Security/CWE/CWE-020/IRUntrustedDataToExternalAPI.ql | 2 +- cpp/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql | 2 +- .../Security/CWE/CWE-020/LateCheckOfFunctionArgument.ql | 2 +- csharp/ql/src/Configuration/PasswordInConfigurationFile.ql | 2 +- csharp/ql/src/Security Features/CWE-011/ASPNetDebug.ql | 2 +- .../ql/src/Security Features/CWE-016/ASPNetMaxRequestLength.ql | 2 +- .../src/Security Features/CWE-016/ASPNetPagesValidateRequest.ql | 2 +- .../CWE-020/ExternalAPIsUsedWithUntrustedData.ql | 2 +- csharp/ql/src/Security Features/CWE-020/RuntimeChecksBypass.ql | 2 +- .../src/Security Features/CWE-020/UntrustedDataToExternalAPI.ql | 2 +- .../CWE-248/MissingASPNETGlobalErrorHandler.ql | 2 +- go/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql | 2 +- go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.ql | 2 +- go/ql/src/Security/CWE-020/MissingRegexpAnchor.ql | 2 +- go/ql/src/Security/CWE-020/SuspiciousCharacterInRegexp.ql | 2 +- go/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql | 2 +- go/ql/src/Security/CWE-020/UntrustedDataToUnknownExternalAPI.ql | 2 +- go/ql/src/experimental/CWE-090/LDAPInjection.ql | 2 +- go/ql/src/experimental/CWE-74/DsnInjection.ql | 2 +- go/ql/src/experimental/CWE-74/DsnInjectionLocal.ql | 2 +- .../src/experimental/CWE-79/HTMLTemplateEscapingPassthrough.ql | 2 +- .../Security/CWE/CWE-020/ExternalAPIsUsedWithUntrustedData.ql | 2 +- java/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql | 2 +- java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql | 2 +- javascript/ql/src/Electron/DisablingWebSecurity.ql | 2 +- .../src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql | 2 +- .../ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql | 2 +- .../ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql | 2 +- .../CWE-020-ExternalAPIs/ExternalAPIsUsedWithUntrustedData.ql | 2 +- .../Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql | 2 +- python/ql/src/Security/CWE-020/CookieInjection.ql | 2 +- .../src/Security/CWE-020/IncompleteUrlSubstringSanitization.ql | 2 +- python/ql/src/experimental/Security/CWE-094/Js2Py.ql | 2 +- .../ql/src/experimental/template-injection/TemplateInjection.ql | 2 +- 37 files changed, 37 insertions(+), 37 deletions(-) diff --git a/cpp/ql/src/Security/CWE/CWE-014/MemsetMayBeDeleted.ql b/cpp/ql/src/Security/CWE/CWE-014/MemsetMayBeDeleted.ql index 33c31972295..3aff4e1dcc2 100644 --- a/cpp/ql/src/Security/CWE/CWE-014/MemsetMayBeDeleted.ql +++ b/cpp/ql/src/Security/CWE/CWE-014/MemsetMayBeDeleted.ql @@ -8,7 +8,7 @@ * @security-severity 7.8 * @precision high * @tags security - * external/cwe/cwe-14 + * external/cwe/cwe-014 */ import cpp diff --git a/cpp/ql/src/Security/CWE/CWE-020/CountUntrustedDataToExternalAPI.ql b/cpp/ql/src/Security/CWE/CWE-020/CountUntrustedDataToExternalAPI.ql index bebff32a5c1..80bf2b8a8b3 100644 --- a/cpp/ql/src/Security/CWE/CWE-020/CountUntrustedDataToExternalAPI.ql +++ b/cpp/ql/src/Security/CWE/CWE-020/CountUntrustedDataToExternalAPI.ql @@ -5,7 +5,7 @@ * to it. * @id cpp/count-untrusted-data-external-api * @kind table - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import cpp diff --git a/cpp/ql/src/Security/CWE/CWE-020/IRCountUntrustedDataToExternalAPI.ql b/cpp/ql/src/Security/CWE/CWE-020/IRCountUntrustedDataToExternalAPI.ql index 69911c22c6a..3bc364c4116 100644 --- a/cpp/ql/src/Security/CWE/CWE-020/IRCountUntrustedDataToExternalAPI.ql +++ b/cpp/ql/src/Security/CWE/CWE-020/IRCountUntrustedDataToExternalAPI.ql @@ -5,7 +5,7 @@ * to it. * @id cpp/count-untrusted-data-external-api-ir * @kind table - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import cpp diff --git a/cpp/ql/src/Security/CWE/CWE-020/IRUntrustedDataToExternalAPI.ql b/cpp/ql/src/Security/CWE/CWE-020/IRUntrustedDataToExternalAPI.ql index 432f47f6735..07c97ed77fd 100644 --- a/cpp/ql/src/Security/CWE/CWE-020/IRUntrustedDataToExternalAPI.ql +++ b/cpp/ql/src/Security/CWE/CWE-020/IRUntrustedDataToExternalAPI.ql @@ -6,7 +6,7 @@ * @precision low * @problem.severity error * @security-severity 7.8 - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import cpp diff --git a/cpp/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql b/cpp/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql index 1cfd0a7132f..34ea739e675 100644 --- a/cpp/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql +++ b/cpp/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql @@ -6,7 +6,7 @@ * @precision low * @problem.severity error * @security-severity 7.8 - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import cpp diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-020/LateCheckOfFunctionArgument.ql b/cpp/ql/src/experimental/Security/CWE/CWE-020/LateCheckOfFunctionArgument.ql index 07d18992db6..be53ba1fc68 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-020/LateCheckOfFunctionArgument.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-020/LateCheckOfFunctionArgument.ql @@ -10,7 +10,7 @@ * @tags correctness * security * experimental - * external/cwe/cwe-20 + * external/cwe/cwe-020 */ import cpp diff --git a/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql b/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql index c6f004789a7..a2fe7cf2290 100644 --- a/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql +++ b/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql @@ -7,7 +7,7 @@ * @precision medium * @id cs/password-in-configuration * @tags security - * external/cwe/cwe-13 + * external/cwe/cwe-013 * external/cwe/cwe-256 * external/cwe/cwe-313 */ diff --git a/csharp/ql/src/Security Features/CWE-011/ASPNetDebug.ql b/csharp/ql/src/Security Features/CWE-011/ASPNetDebug.ql index 308f3eeeac2..4e0e52352b4 100644 --- a/csharp/ql/src/Security Features/CWE-011/ASPNetDebug.ql +++ b/csharp/ql/src/Security Features/CWE-011/ASPNetDebug.ql @@ -10,7 +10,7 @@ * @tags security * maintainability * frameworks/asp.net - * external/cwe/cwe-11 + * external/cwe/cwe-011 * external/cwe/cwe-532 */ diff --git a/csharp/ql/src/Security Features/CWE-016/ASPNetMaxRequestLength.ql b/csharp/ql/src/Security Features/CWE-016/ASPNetMaxRequestLength.ql index 89bd133d59a..b9ac41e0e39 100644 --- a/csharp/ql/src/Security Features/CWE-016/ASPNetMaxRequestLength.ql +++ b/csharp/ql/src/Security Features/CWE-016/ASPNetMaxRequestLength.ql @@ -8,7 +8,7 @@ * @id cs/web/large-max-request-length * @tags security * frameworks/asp.net - * external/cwe/cwe-16 + * external/cwe/cwe-016 */ import csharp diff --git a/csharp/ql/src/Security Features/CWE-016/ASPNetPagesValidateRequest.ql b/csharp/ql/src/Security Features/CWE-016/ASPNetPagesValidateRequest.ql index 68902a0622d..3c51b7a8e2e 100644 --- a/csharp/ql/src/Security Features/CWE-016/ASPNetPagesValidateRequest.ql +++ b/csharp/ql/src/Security Features/CWE-016/ASPNetPagesValidateRequest.ql @@ -8,7 +8,7 @@ * @id cs/web/request-validation-disabled * @tags security * frameworks/asp.net - * external/cwe/cwe-16 + * external/cwe/cwe-016 */ import csharp diff --git a/csharp/ql/src/Security Features/CWE-020/ExternalAPIsUsedWithUntrustedData.ql b/csharp/ql/src/Security Features/CWE-020/ExternalAPIsUsedWithUntrustedData.ql index b07b1093ec8..8427ceb87eb 100644 --- a/csharp/ql/src/Security Features/CWE-020/ExternalAPIsUsedWithUntrustedData.ql +++ b/csharp/ql/src/Security Features/CWE-020/ExternalAPIsUsedWithUntrustedData.ql @@ -5,7 +5,7 @@ * to it. * @id cs/count-untrusted-data-external-api * @kind table - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import csharp diff --git a/csharp/ql/src/Security Features/CWE-020/RuntimeChecksBypass.ql b/csharp/ql/src/Security Features/CWE-020/RuntimeChecksBypass.ql index 6148f0f6ae9..af029459033 100644 --- a/csharp/ql/src/Security Features/CWE-020/RuntimeChecksBypass.ql +++ b/csharp/ql/src/Security Features/CWE-020/RuntimeChecksBypass.ql @@ -7,7 +7,7 @@ * @security-severity 7.8 * @precision medium * @tags security - * external/cwe/cwe-20 + * external/cwe/cwe-020 */ import semmle.code.csharp.serialization.Serialization diff --git a/csharp/ql/src/Security Features/CWE-020/UntrustedDataToExternalAPI.ql b/csharp/ql/src/Security Features/CWE-020/UntrustedDataToExternalAPI.ql index a71a2705bdd..0543f198d22 100644 --- a/csharp/ql/src/Security Features/CWE-020/UntrustedDataToExternalAPI.ql +++ b/csharp/ql/src/Security Features/CWE-020/UntrustedDataToExternalAPI.ql @@ -6,7 +6,7 @@ * @precision low * @problem.severity error * @security-severity 7.8 - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import csharp diff --git a/csharp/ql/src/Security Features/CWE-248/MissingASPNETGlobalErrorHandler.ql b/csharp/ql/src/Security Features/CWE-248/MissingASPNETGlobalErrorHandler.ql index f37d4c497de..14d73c02e1e 100644 --- a/csharp/ql/src/Security Features/CWE-248/MissingASPNETGlobalErrorHandler.ql +++ b/csharp/ql/src/Security Features/CWE-248/MissingASPNETGlobalErrorHandler.ql @@ -8,7 +8,7 @@ * @precision high * @id cs/web/missing-global-error-handler * @tags security - * external/cwe/cwe-12 + * external/cwe/cwe-012 * external/cwe/cwe-248 */ diff --git a/go/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql b/go/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql index b23cd003023..2b32d8ffecc 100644 --- a/go/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql +++ b/go/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql @@ -5,7 +5,7 @@ * to it. * @id go/count-untrusted-data-external-api * @kind table - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import go diff --git a/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.ql b/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.ql index 03018ee1c32..89954b08f99 100644 --- a/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.ql +++ b/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.ql @@ -9,7 +9,7 @@ * @id go/incomplete-hostname-regexp * @tags correctness * security - * external/cwe/cwe-20 + * external/cwe/cwe-020 */ import go diff --git a/go/ql/src/Security/CWE-020/MissingRegexpAnchor.ql b/go/ql/src/Security/CWE-020/MissingRegexpAnchor.ql index df93440ac52..a478968e58b 100644 --- a/go/ql/src/Security/CWE-020/MissingRegexpAnchor.ql +++ b/go/ql/src/Security/CWE-020/MissingRegexpAnchor.ql @@ -8,7 +8,7 @@ * @id go/regex/missing-regexp-anchor * @tags correctness * security - * external/cwe/cwe-20 + * external/cwe/cwe-020 */ import go diff --git a/go/ql/src/Security/CWE-020/SuspiciousCharacterInRegexp.ql b/go/ql/src/Security/CWE-020/SuspiciousCharacterInRegexp.ql index 81cc634346a..e58cf864490 100644 --- a/go/ql/src/Security/CWE-020/SuspiciousCharacterInRegexp.ql +++ b/go/ql/src/Security/CWE-020/SuspiciousCharacterInRegexp.ql @@ -8,7 +8,7 @@ * @id go/suspicious-character-in-regex * @tags correctness * security - * external/cwe/cwe-20 + * external/cwe/cwe-020 */ import go diff --git a/go/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql b/go/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql index 4ab22af3a45..6e8d99471ee 100644 --- a/go/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql +++ b/go/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql @@ -6,7 +6,7 @@ * @precision low * @problem.severity error * @security-severity 7.8 - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import go diff --git a/go/ql/src/Security/CWE-020/UntrustedDataToUnknownExternalAPI.ql b/go/ql/src/Security/CWE-020/UntrustedDataToUnknownExternalAPI.ql index 23945e38d46..45198047904 100644 --- a/go/ql/src/Security/CWE-020/UntrustedDataToUnknownExternalAPI.ql +++ b/go/ql/src/Security/CWE-020/UntrustedDataToUnknownExternalAPI.ql @@ -6,7 +6,7 @@ * @precision low * @problem.severity error * @security-severity 7.8 - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import go diff --git a/go/ql/src/experimental/CWE-090/LDAPInjection.ql b/go/ql/src/experimental/CWE-090/LDAPInjection.ql index 7da669aa612..6b269df20ba 100644 --- a/go/ql/src/experimental/CWE-090/LDAPInjection.ql +++ b/go/ql/src/experimental/CWE-090/LDAPInjection.ql @@ -7,7 +7,7 @@ * @id go/ldap-injection * @tags security * experimental - * external/cwe/cwe-90 + * external/cwe/cwe-090 */ import go diff --git a/go/ql/src/experimental/CWE-74/DsnInjection.ql b/go/ql/src/experimental/CWE-74/DsnInjection.ql index 2b2ee0a62e4..c8df87e296e 100644 --- a/go/ql/src/experimental/CWE-74/DsnInjection.ql +++ b/go/ql/src/experimental/CWE-74/DsnInjection.ql @@ -6,7 +6,7 @@ * @id go/dsn-injection * @tags security * experimental - * external/cwe/cwe-74 + * external/cwe/cwe-074 */ import go diff --git a/go/ql/src/experimental/CWE-74/DsnInjectionLocal.ql b/go/ql/src/experimental/CWE-74/DsnInjectionLocal.ql index 1744a25848b..d741199ac22 100644 --- a/go/ql/src/experimental/CWE-74/DsnInjectionLocal.ql +++ b/go/ql/src/experimental/CWE-74/DsnInjectionLocal.ql @@ -6,7 +6,7 @@ * @id go/dsn-injection-local * @tags security * experimental - * external/cwe/cwe-74 + * external/cwe/cwe-074 */ import go diff --git a/go/ql/src/experimental/CWE-79/HTMLTemplateEscapingPassthrough.ql b/go/ql/src/experimental/CWE-79/HTMLTemplateEscapingPassthrough.ql index 0aff713f26b..ff63f6bfbec 100644 --- a/go/ql/src/experimental/CWE-79/HTMLTemplateEscapingPassthrough.ql +++ b/go/ql/src/experimental/CWE-79/HTMLTemplateEscapingPassthrough.ql @@ -7,7 +7,7 @@ * @id go/html-template-escaping-passthrough * @tags security * experimental - * external/cwe/cwe-79 + * external/cwe/cwe-079 */ import go diff --git a/java/ql/src/Security/CWE/CWE-020/ExternalAPIsUsedWithUntrustedData.ql b/java/ql/src/Security/CWE/CWE-020/ExternalAPIsUsedWithUntrustedData.ql index 23c82397de0..ffdfcaf9f80 100644 --- a/java/ql/src/Security/CWE/CWE-020/ExternalAPIsUsedWithUntrustedData.ql +++ b/java/ql/src/Security/CWE/CWE-020/ExternalAPIsUsedWithUntrustedData.ql @@ -5,7 +5,7 @@ * to it. * @id java/count-untrusted-data-external-api * @kind table - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import java diff --git a/java/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql b/java/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql index fdbb34b2247..a75672445fb 100644 --- a/java/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql +++ b/java/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql @@ -6,7 +6,7 @@ * @precision low * @problem.severity error * @security-severity 7.8 - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import java diff --git a/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql b/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql index 7376aa51e58..fb7a40052f0 100644 --- a/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql +++ b/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql @@ -9,7 +9,7 @@ * @precision high * @id java/netty-http-request-or-response-splitting * @tags security - * external/cwe/cwe-93 + * external/cwe/cwe-093 * external/cwe/cwe-113 */ diff --git a/javascript/ql/src/Electron/DisablingWebSecurity.ql b/javascript/ql/src/Electron/DisablingWebSecurity.ql index a2b0c0a8a01..392d8fb7322 100644 --- a/javascript/ql/src/Electron/DisablingWebSecurity.ql +++ b/javascript/ql/src/Electron/DisablingWebSecurity.ql @@ -7,7 +7,7 @@ * @precision very-high * @tags security * frameworks/electron - * external/cwe/cwe-79 + * external/cwe/cwe-079 * @id js/disabling-electron-websecurity */ diff --git a/javascript/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql b/javascript/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql index 045edc172f3..9f811c85c97 100644 --- a/javascript/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql +++ b/javascript/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql @@ -5,7 +5,7 @@ * to it. * @id js/count-untrusted-data-external-api * @kind table - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import javascript diff --git a/javascript/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql b/javascript/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql index 30931a6a582..1fd1df14887 100644 --- a/javascript/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql +++ b/javascript/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql @@ -6,7 +6,7 @@ * @precision low * @problem.severity error * @security-severity 7.8 - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import javascript diff --git a/javascript/ql/src/experimental/heuristics/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql b/javascript/ql/src/experimental/heuristics/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql index 4bf06b54447..fa7f313e9e5 100644 --- a/javascript/ql/src/experimental/heuristics/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql +++ b/javascript/ql/src/experimental/heuristics/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql @@ -7,7 +7,7 @@ * @problem.severity error * @security-severity 7.8 * @tags experimental - * security external/cwe/cwe-20 + * security external/cwe/cwe-020 */ import javascript diff --git a/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIsUsedWithUntrustedData.ql b/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIsUsedWithUntrustedData.ql index ac374311ee8..a0905e6626d 100644 --- a/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIsUsedWithUntrustedData.ql +++ b/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIsUsedWithUntrustedData.ql @@ -5,7 +5,7 @@ * to it. * @id py/count-untrusted-data-external-api * @kind table - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import python diff --git a/python/ql/src/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql b/python/ql/src/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql index f5706ccc3a6..feb5b77c02a 100644 --- a/python/ql/src/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql +++ b/python/ql/src/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql @@ -6,7 +6,7 @@ * @precision low * @problem.severity error * @security-severity 7.8 - * @tags security external/cwe/cwe-20 + * @tags security external/cwe/cwe-020 */ import python diff --git a/python/ql/src/Security/CWE-020/CookieInjection.ql b/python/ql/src/Security/CWE-020/CookieInjection.ql index 0cb9c2dadbb..e0600648eac 100644 --- a/python/ql/src/Security/CWE-020/CookieInjection.ql +++ b/python/ql/src/Security/CWE-020/CookieInjection.ql @@ -7,7 +7,7 @@ * @security-severity 5.0 * @id py/cookie-injection * @tags security - * external/cwe/cwe-20 + * external/cwe/cwe-020 */ import python diff --git a/python/ql/src/Security/CWE-020/IncompleteUrlSubstringSanitization.ql b/python/ql/src/Security/CWE-020/IncompleteUrlSubstringSanitization.ql index 5ab77438d63..1dbd95d5533 100644 --- a/python/ql/src/Security/CWE-020/IncompleteUrlSubstringSanitization.ql +++ b/python/ql/src/Security/CWE-020/IncompleteUrlSubstringSanitization.ql @@ -8,7 +8,7 @@ * @id py/incomplete-url-substring-sanitization * @tags correctness * security - * external/cwe/cwe-20 + * external/cwe/cwe-020 */ import python diff --git a/python/ql/src/experimental/Security/CWE-094/Js2Py.ql b/python/ql/src/experimental/Security/CWE-094/Js2Py.ql index 2bb3fea1b32..53c919d9732 100644 --- a/python/ql/src/experimental/Security/CWE-094/Js2Py.ql +++ b/python/ql/src/experimental/Security/CWE-094/Js2Py.ql @@ -8,7 +8,7 @@ * @id py/js2py-rce * @tags security * experimental - * external/cwe/cwe-94 + * external/cwe/cwe-094 */ import python diff --git a/ruby/ql/src/experimental/template-injection/TemplateInjection.ql b/ruby/ql/src/experimental/template-injection/TemplateInjection.ql index 7ad81c34123..7ad670d6ec1 100644 --- a/ruby/ql/src/experimental/template-injection/TemplateInjection.ql +++ b/ruby/ql/src/experimental/template-injection/TemplateInjection.ql @@ -8,7 +8,7 @@ * @precision high * @id rb/server-side-template-injection * @tags security - * external/cwe/cwe-94 + * external/cwe/cwe-094 */ import codeql.ruby.DataFlow From a9132c43d0072ec2fb270aef24183349cfc5121c Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 30 Apr 2025 16:47:35 +0100 Subject: [PATCH 163/656] Fix incorrect CWE tags --- python/ql/src/Expressions/UseofInput.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/src/Expressions/UseofInput.ql b/python/ql/src/Expressions/UseofInput.ql index b7e9b6f7d9d..b5e49a65f98 100644 --- a/python/ql/src/Expressions/UseofInput.ql +++ b/python/ql/src/Expressions/UseofInput.ql @@ -4,8 +4,8 @@ * @kind problem * @tags security * correctness - * security/cwe/cwe-94 - * security/cwe/cwe-95 + * external/cwe/cwe-094 + * external/cwe/cwe-095 * @problem.severity error * @security-severity 9.8 * @sub-severity high From e9ee7134ef07de977e3caa6885fd837ebe697de7 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Tue, 29 Apr 2025 13:32:36 +0200 Subject: [PATCH 164/656] Refactor prototype reference retrieval in ClassNode and update expected test output --- .../lib/semmle/javascript/dataflow/Nodes.qll | 36 ++++++++++--------- .../CallGraphs/AnnotatedTest/Test.expected | 2 -- .../library-tests/ClassNode/tests.expected | 1 + 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 527031950ec..5f1b647f9bb 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -1233,7 +1233,7 @@ module ClassNode { private DataFlow::SourceNode getAFunctionValueWithPrototype(AbstractValue func) { exists(result.getAPropertyReference("prototype")) and result.analyze().getAValue() = pragma[only_bind_into](func) and - func instanceof AbstractFunction // the join-order goes bad if `func` has type `AbstractFunction`. + func instanceof AbstractCallable // the join-order goes bad if `func` has type `AbstractFunction`. } /** @@ -1413,22 +1413,26 @@ module ClassNode { * Only applies to function-style classes. */ DataFlow::SourceNode getAPrototypeReference() { - ( - exists(DataFlow::SourceNode base | base = getAFunctionValueWithPrototype(function) | - result = base.getAPropertyRead("prototype") - or - result = base.getAPropertySource("prototype") - ) + exists(DataFlow::SourceNode base | base = getAFunctionValueWithPrototype(function) | + result = base.getAPropertyRead("prototype") or - exists(string name | - this = AccessPath::getAnAssignmentTo(name) and - result = getAPrototypeReferenceInFile(name, this.getFile()) - ) - or - exists(ExtendCall call | - call.getDestinationOperand() = this.getAPrototypeReference() and - result = call.getASourceOperand() - ) + result = base.getAPropertySource("prototype") + ) + or + exists(string name | + this = AccessPath::getAnAssignmentTo(name) and + result = getAPrototypeReferenceInFile(name, this.getFile()) + ) + or + exists(string name, DataFlow::SourceNode root | + result = + AccessPath::getAReferenceOrAssignmentTo(root, name + ".prototype").getALocalSource() and + this = AccessPath::getAnAssignmentTo(root, name) + ) + or + exists(ExtendCall call | + call.getDestinationOperand() = this.getAPrototypeReference() and + result = call.getASourceOperand() ) } diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected index e6532c0816f..0abd563b419 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected @@ -2,8 +2,6 @@ spuriousCallee missingCallee | constructor-field.ts:40:5:40:14 | f3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | | constructor-field.ts:71:1:71:11 | bf3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | -| prototypes.js:96:5:96:15 | this.read() | prototypes.js:104:27:104:39 | function() {} | -1 | calls | -| prototypes.js:96:5:96:15 | this.read() | prototypes.js:109:27:109:39 | function() {} | -1 | calls | badAnnotation accessorCall | accessors.js:12:1:12:5 | obj.f | accessors.js:5:8:5:12 | () {} | diff --git a/javascript/ql/test/library-tests/ClassNode/tests.expected b/javascript/ql/test/library-tests/ClassNode/tests.expected index 687118ffa0b..1337e0c5694 100644 --- a/javascript/ql/test/library-tests/ClassNode/tests.expected +++ b/javascript/ql/test/library-tests/ClassNode/tests.expected @@ -15,6 +15,7 @@ getAReceiverNode | tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:4:17:4:16 | this | | tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:7:6:7:5 | this | | tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:9:10:9:9 | this | +| tst.js:3:9:3:8 | () {} | tst.js:3:9:3:8 | this | | tst.js:13:1:13:21 | class A ... ds A {} | tst.js:13:20:13:19 | this | | tst.js:15:1:15:15 | function B() {} | tst.js:15:1:15:0 | this | | tst.js:15:1:15:15 | function B() {} | tst.js:17:19:17:18 | this | From 7fec3aec95bc17be3425d40a9912797f232502d5 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Tue, 29 Apr 2025 13:43:06 +0200 Subject: [PATCH 165/656] Renamed `FunctionStyleClass` class to `StandardClassNode` --- javascript/ql/lib/semmle/javascript/ApiGraphs.qll | 2 +- javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll | 4 ++-- .../ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 974fdd7c0cb..423c0f5ed1b 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1236,7 +1236,7 @@ module API { exists(DataFlow::ClassNode cls | nd = MkClassInstance(cls) | ref = cls.getAReceiverNode() or - ref = cls.(DataFlow::ClassNode::FunctionStyleClass).getAPrototypeReference() + ref = cls.(DataFlow::ClassNode::StandardClassNode).getAPrototypeReference() ) or nd = MkUse(ref) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 5f1b647f9bb..22e8511509a 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -1240,11 +1240,11 @@ module ClassNode { * A function definition, targeted by a `new`-call or with prototype manipulation, seen as a `ClassNode` instance. * Or An ES6 class as a `ClassNode` instance. */ - class FunctionStyleClass extends Range, DataFlow::ValueNode { + class StandardClassNode extends Range, DataFlow::ValueNode { override AST::ValueNode astNode; AbstractCallable function; - FunctionStyleClass() { + StandardClassNode() { // ES6 class case astNode instanceof ClassDefinition and function.(AbstractClass).getClass() = astNode diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll index 541e3a6f3e9..44f827ddf3d 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll @@ -254,7 +254,7 @@ module CallGraph { not exists(DataFlow::ClassNode cls | node = cls.getConstructor().getReceiver() or - node = cls.(DataFlow::ClassNode::FunctionStyleClass).getAPrototypeReference() + node = cls.(DataFlow::ClassNode::StandardClassNode).getAPrototypeReference() ) } From 3423a1072ac2c39e91581f9d3d3241d185410321 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 30 Apr 2025 19:10:35 +0200 Subject: [PATCH 166/656] C++: Address review comments --- cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py | 2 +- .../header-variant-tests/microsoft-pch/test.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py b/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py index d7bc5fe6352..0a48fc3a79c 100644 --- a/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py +++ b/cpp/ql/integration-tests/header-variant-tests/clang-pch/test.py @@ -3,7 +3,7 @@ import os def test(codeql, cpp): os.mkdir("pch") - extractor = f"{cpp.get_tool("extractor")}" + extractor = cpp.get_tool("extractor") codeql.database.create(command=[ f'"{extractor}" --mimic-clang -emit-pch -o pch/a.pch a.c', f'"{extractor}" --mimic-clang -include-pch pch/a.pch -Iextra_dummy_path b.c', diff --git a/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py index d734f0335f1..89bceec397e 100644 --- a/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py +++ b/cpp/ql/integration-tests/header-variant-tests/microsoft-pch/test.py @@ -3,7 +3,7 @@ import os def test(codeql, cpp): os.mkdir("pch") - extractor = f"{cpp.get_tool("extractor")}" + extractor = cpp.get_tool("extractor") codeql.database.create(command=[ f'"{extractor}" --mimic-cl /Yca.h /Fppch/a.pch a.c', f'"{extractor}" --mimic-cl /Yub.h /Fppch/a.pch b.c', From 531f2a15a4414441ab19cdb7bc524175430529ff Mon Sep 17 00:00:00 2001 From: yoff Date: Wed, 30 Apr 2025 19:58:14 +0200 Subject: [PATCH 167/656] python: model `send_header` from `http.server` --- .../ql/lib/semmle/python/frameworks/Stdlib.qll | 16 ++++++++++++++++ .../frameworks/stdlib/http_server.py | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index 4ad671bb19a..2d4bd83a55a 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -1963,6 +1963,22 @@ module StdlibPrivate { /** Gets a reference to an instance of the `BaseHttpRequestHandler` class or any subclass. */ DataFlow::Node instance() { instance(DataFlow::TypeTracker::end()).flowsTo(result) } + /** A call to a method that writes to a response header. */ + private class HeaderWriteCall extends Http::Server::ResponseHeaderWrite::Range, + DataFlow::MethodCallNode + { + HeaderWriteCall() { this.calls(instance(), "send_header") } + + override DataFlow::Node getNameArg() { result = this.getArg(0) } + + override DataFlow::Node getValueArg() { result = this.getArg(1) } + + // TODO: These checks perhaps could be made more precise. + override predicate nameAllowsNewline() { any() } + + override predicate valueAllowsNewline() { any() } + } + private class AdditionalTaintStep extends TaintTracking::AdditionalTaintStep { override predicate step(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { nodeFrom = instance() and diff --git a/python/ql/test/library-tests/frameworks/stdlib/http_server.py b/python/ql/test/library-tests/frameworks/stdlib/http_server.py index 9110aa6a26a..8e9fd925c24 100644 --- a/python/ql/test/library-tests/frameworks/stdlib/http_server.py +++ b/python/ql/test/library-tests/frameworks/stdlib/http_server.py @@ -83,7 +83,7 @@ class MyHandler(BaseHTTPRequestHandler): def do_GET(self): # $ requestHandler # send_response will log a line to stderr self.send_response(200) - self.send_header("Content-type", "text/plain; charset=utf-8") + self.send_header("Content-type", "text/plain; charset=utf-8") # $ headerWriteNameUnsanitized="Content-type" headerWriteValueUnsanitized="text/plain; charset=utf-8" self.end_headers() self.wfile.write(b"Hello BaseHTTPRequestHandler\n") self.wfile.writelines([b"1\n", b"2\n", b"3\n"]) From cf45e771f3a1bd2b4e91f4dcfef0bda6bcb0b022 Mon Sep 17 00:00:00 2001 From: yoff Date: Wed, 30 Apr 2025 20:01:43 +0200 Subject: [PATCH 168/656] python: remove copied comment --- python/ql/lib/semmle/python/frameworks/Stdlib.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.qll b/python/ql/lib/semmle/python/frameworks/Stdlib.qll index 2d4bd83a55a..4a3c346fb01 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.qll +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.qll @@ -1973,7 +1973,6 @@ module StdlibPrivate { override DataFlow::Node getValueArg() { result = this.getArg(1) } - // TODO: These checks perhaps could be made more precise. override predicate nameAllowsNewline() { any() } override predicate valueAllowsNewline() { any() } From e63b38c515db9730258956573ad2784934ef8b54 Mon Sep 17 00:00:00 2001 From: yoff Date: Wed, 30 Apr 2025 20:05:55 +0200 Subject: [PATCH 169/656] python: add change note --- python/ql/lib/change-notes/2025-04-30-model-send-header.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 python/ql/lib/change-notes/2025-04-30-model-send-header.md diff --git a/python/ql/lib/change-notes/2025-04-30-model-send-header.md b/python/ql/lib/change-notes/2025-04-30-model-send-header.md new file mode 100644 index 00000000000..032e984bdf3 --- /dev/null +++ b/python/ql/lib/change-notes/2025-04-30-model-send-header.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added header write model for `send_header` in `http.server`. \ No newline at end of file From 723778fa82823b2355cabf90698da6392668e0cb Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 30 Apr 2025 20:31:12 +0200 Subject: [PATCH 170/656] C++: Limit flow through sinks and sources in `cpp/upcast-array-pointer-arithmetic` --- .../src/Likely Bugs/Conversion/CastArrayPointerArithmetic.ql | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cpp/ql/src/Likely Bugs/Conversion/CastArrayPointerArithmetic.ql b/cpp/ql/src/Likely Bugs/Conversion/CastArrayPointerArithmetic.ql index 7dda356353e..d1645007a32 100644 --- a/cpp/ql/src/Likely Bugs/Conversion/CastArrayPointerArithmetic.ql +++ b/cpp/ql/src/Likely Bugs/Conversion/CastArrayPointerArithmetic.ql @@ -44,6 +44,10 @@ module CastToPointerArithFlowConfig implements DataFlow::StateConfigSig { ) and getFullyConvertedType(node) = state } + + predicate isBarrierIn(DataFlow::Node node) { isSource(node, _) } + + predicate isBarrierOut(DataFlow::Node node) { isSink(node, _) } } /** From 51e70d0c3bff9ba69b40f50c6fc4267056f32f89 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 24 Apr 2025 13:04:21 +0200 Subject: [PATCH 171/656] Rust: Add Copilot generated test for `?` operator expressions --- .../test/library-tests/type-inference/main.rs | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 1972b181c83..7e8ab73d00d 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -919,6 +919,99 @@ mod borrowed_typed { } } +mod try_expressions { + use std::fmt::Debug; + + #[derive(Debug)] + struct S1; + + #[derive(Debug)] + struct S2; + + #[derive(Debug)] + enum MyResult { + MyOk(T), + MyErr(E), + } + + impl MyResult { + fn map(self, op: F) -> MyResult + where + F: FnOnce(T) -> U, + { + match self { + MyResult::MyOk(t) => MyResult::MyOk(op(t)), + MyResult::MyErr(e) => MyResult::MyErr(e), + } + } + + fn and_then(self, op: F) -> MyResult + where + F: FnOnce(T) -> MyResult, + { + match self { + MyResult::MyOk(t) => op(t), + MyResult::MyErr(e) => MyResult::MyErr(e), + } + } + } + + // For the try operator to work, we need to implement From for OtherE + impl From for S2 { + fn from(s: S1) -> S2 { + S2 + } + } + + // Simple function using ? operator with same error types + fn try_same_error() -> MyResult { + let x = MyResult::MyOk(S1)?; // $ type=x:S1 + MyResult::MyOk(x) + } + + // Function using ? operator with different error types that need conversion + fn try_convert_error() -> MyResult { + let x: MyResult = MyResult::MyOk(S1); + let y = x?; // $ type=y:S1 + MyResult::MyOk(y) + } + + // Chained ? operations + fn try_chained() -> MyResult { + let x: MyResult, S1> = MyResult::MyOk(MyResult::MyOk(S1)); + let y = x?.map(|s| s)?; // First ? returns MyResult, second ? returns S1 + MyResult::MyOk(y) + } + + // Function that uses ? with closures and complex error cases + fn try_complex(input: MyResult) -> MyResult { + let value = input?; // $ method=From::from + let mapped = MyResult::MyOk(value).and_then(|v| { + println!("{:?}", v); + MyResult::MyOk::<_, S1>(v) + })?; // $ method=From::from + MyResult::MyOk(mapped) + } + + pub fn f() { + if let MyResult::MyOk(result) = try_same_error() { + println!("{:?}", result); + } + + if let MyResult::MyOk(result) = try_convert_error() { + println!("{:?}", result); + } + + if let MyResult::MyOk(result) = try_chained() { + println!("{:?}", result); + } + + if let MyResult::MyOk(result) = try_complex(MyResult::MyOk(S1)) { + println!("{:?}", result); + } + } +} + fn main() { field_access::f(); method_impl::f(); @@ -935,4 +1028,5 @@ fn main() { trait_implicit_self_borrow::f(); implicit_self_borrow::f(); borrowed_typed::f(); + try_expressions::f(); } From 88075c4c8cdd60ad9a7db5f93f3e9741ab64a5f5 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 24 Apr 2025 13:05:14 +0200 Subject: [PATCH 172/656] Rust: Make manual tweaks to Copilot generated code --- .../test/library-tests/type-inference/main.rs | 78 +++++------------ .../type-inference/type-inference.expected | 86 ++++++++++++++++++- 2 files changed, 104 insertions(+), 60 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 7e8ab73d00d..0b93a8511a0 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -928,85 +928,51 @@ mod try_expressions { #[derive(Debug)] struct S2; - #[derive(Debug)] - enum MyResult { - MyOk(T), - MyErr(E), - } - - impl MyResult { - fn map(self, op: F) -> MyResult - where - F: FnOnce(T) -> U, - { - match self { - MyResult::MyOk(t) => MyResult::MyOk(op(t)), - MyResult::MyErr(e) => MyResult::MyErr(e), - } - } - - fn and_then(self, op: F) -> MyResult - where - F: FnOnce(T) -> MyResult, - { - match self { - MyResult::MyOk(t) => op(t), - MyResult::MyErr(e) => MyResult::MyErr(e), - } - } - } - - // For the try operator to work, we need to implement From for OtherE - impl From for S2 { - fn from(s: S1) -> S2 { - S2 - } - } - // Simple function using ? operator with same error types - fn try_same_error() -> MyResult { - let x = MyResult::MyOk(S1)?; // $ type=x:S1 - MyResult::MyOk(x) + fn try_same_error() -> Result { + let x = Result::Ok(S1)?; // $ MISSING: type=x:S1 + Result::Ok(S1) } // Function using ? operator with different error types that need conversion - fn try_convert_error() -> MyResult { - let x: MyResult = MyResult::MyOk(S1); - let y = x?; // $ type=y:S1 - MyResult::MyOk(y) + fn try_convert_error() -> Result { + let x = Result::Ok(S1); + let y = x?; // $ MISSING: type=y:S1 + Result::Ok(S1) } // Chained ? operations - fn try_chained() -> MyResult { - let x: MyResult, S1> = MyResult::MyOk(MyResult::MyOk(S1)); - let y = x?.map(|s| s)?; // First ? returns MyResult, second ? returns S1 - MyResult::MyOk(y) + fn try_chained() -> Result { + let x = Result::Ok(Result::Ok(S1)); + // First ? returns Result, second ? returns S1 + let y = x?.map(|s| s)?; // $ MISSING: method=map + Result::Ok(S1) } // Function that uses ? with closures and complex error cases - fn try_complex(input: MyResult) -> MyResult { - let value = input?; // $ method=From::from - let mapped = MyResult::MyOk(value).and_then(|v| { + fn try_complex(input: Result) -> Result { + let value = input?; + let mapped = Result::Ok(value).and_then(|v| { println!("{:?}", v); - MyResult::MyOk::<_, S1>(v) - })?; // $ method=From::from - MyResult::MyOk(mapped) + Result::Ok::<_, S1>(v) + })?; // $ method=and_then + Result::Err(S1) } pub fn f() { - if let MyResult::MyOk(result) = try_same_error() { + if let Result::Ok(result) = try_same_error() { println!("{:?}", result); } - if let MyResult::MyOk(result) = try_convert_error() { + if let Result::Ok(result) = try_convert_error() { println!("{:?}", result); } - if let MyResult::MyOk(result) = try_chained() { + if let Result::Ok(result) = try_chained() { println!("{:?}", result); } - if let MyResult::MyOk(result) = try_complex(MyResult::MyOk(S1)) { + if let Result::Ok(result) = try_complex(Result::Ok(S1)) { println!("{:?}", result); } } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index c91b3cef3dc..c9b7b349a70 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1005,7 +1005,85 @@ inferType | main.rs:918:15:918:16 | &x | | file://:0:0:0:0 | & | | main.rs:918:15:918:16 | &x | &T | main.rs:894:5:894:13 | S | | main.rs:918:16:918:16 | x | | main.rs:894:5:894:13 | S | -| main.rs:924:5:924:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:925:5:925:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:925:20:925:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:925:41:925:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:932:43:935:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:932:43:935:5 | { ... } | E | main.rs:925:5:926:14 | S1 | +| main.rs:932:43:935:5 | { ... } | T | main.rs:925:5:926:14 | S1 | +| main.rs:933:17:933:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:933:17:933:30 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:933:28:933:29 | S1 | | main.rs:925:5:926:14 | S1 | +| main.rs:934:9:934:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:934:9:934:22 | ...::Ok(...) | E | main.rs:925:5:926:14 | S1 | +| main.rs:934:9:934:22 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:934:20:934:21 | S1 | | main.rs:925:5:926:14 | S1 | +| main.rs:938:46:942:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:938:46:942:5 | { ... } | E | main.rs:928:5:929:14 | S2 | +| main.rs:938:46:942:5 | { ... } | T | main.rs:925:5:926:14 | S1 | +| main.rs:939:13:939:13 | x | | file://:0:0:0:0 | Result | +| main.rs:939:13:939:13 | x | T | main.rs:925:5:926:14 | S1 | +| main.rs:939:17:939:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:939:17:939:30 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:939:28:939:29 | S1 | | main.rs:925:5:926:14 | S1 | +| main.rs:940:17:940:17 | x | | file://:0:0:0:0 | Result | +| main.rs:940:17:940:17 | x | T | main.rs:925:5:926:14 | S1 | +| main.rs:941:9:941:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:941:9:941:22 | ...::Ok(...) | E | main.rs:928:5:929:14 | S2 | +| main.rs:941:9:941:22 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:941:20:941:21 | S1 | | main.rs:925:5:926:14 | S1 | +| main.rs:945:40:950:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:945:40:950:5 | { ... } | E | main.rs:928:5:929:14 | S2 | +| main.rs:945:40:950:5 | { ... } | T | main.rs:925:5:926:14 | S1 | +| main.rs:946:13:946:13 | x | | file://:0:0:0:0 | Result | +| main.rs:946:13:946:13 | x | T | file://:0:0:0:0 | Result | +| main.rs:946:13:946:13 | x | T.T | main.rs:925:5:926:14 | S1 | +| main.rs:946:17:946:42 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:946:17:946:42 | ...::Ok(...) | T | file://:0:0:0:0 | Result | +| main.rs:946:17:946:42 | ...::Ok(...) | T.T | main.rs:925:5:926:14 | S1 | +| main.rs:946:28:946:41 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:946:28:946:41 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:946:39:946:40 | S1 | | main.rs:925:5:926:14 | S1 | +| main.rs:948:17:948:17 | x | | file://:0:0:0:0 | Result | +| main.rs:948:17:948:17 | x | T | file://:0:0:0:0 | Result | +| main.rs:948:17:948:17 | x | T.T | main.rs:925:5:926:14 | S1 | +| main.rs:949:9:949:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:949:9:949:22 | ...::Ok(...) | E | main.rs:928:5:929:14 | S2 | +| main.rs:949:9:949:22 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:949:20:949:21 | S1 | | main.rs:925:5:926:14 | S1 | +| main.rs:953:30:953:34 | input | | file://:0:0:0:0 | Result | +| main.rs:953:30:953:34 | input | E | main.rs:925:5:926:14 | S1 | +| main.rs:953:30:953:34 | input | T | main.rs:953:20:953:27 | T | +| main.rs:953:69:960:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:953:69:960:5 | { ... } | E | main.rs:925:5:926:14 | S1 | +| main.rs:953:69:960:5 | { ... } | T | main.rs:953:20:953:27 | T | +| main.rs:954:21:954:25 | input | | file://:0:0:0:0 | Result | +| main.rs:954:21:954:25 | input | E | main.rs:925:5:926:14 | S1 | +| main.rs:954:21:954:25 | input | T | main.rs:953:20:953:27 | T | +| main.rs:955:22:955:38 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:955:22:958:10 | ... .and_then(...) | | file://:0:0:0:0 | Result | +| main.rs:955:53:958:9 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:955:53:958:9 | { ... } | E | main.rs:925:5:926:14 | S1 | +| main.rs:957:13:957:34 | ...::Ok::<...>(...) | | file://:0:0:0:0 | Result | +| main.rs:957:13:957:34 | ...::Ok::<...>(...) | E | main.rs:925:5:926:14 | S1 | +| main.rs:959:9:959:23 | ...::Err(...) | | file://:0:0:0:0 | Result | +| main.rs:959:9:959:23 | ...::Err(...) | E | main.rs:925:5:926:14 | S1 | +| main.rs:959:9:959:23 | ...::Err(...) | T | main.rs:953:20:953:27 | T | +| main.rs:959:21:959:22 | S1 | | main.rs:925:5:926:14 | S1 | +| main.rs:963:37:963:52 | try_same_error(...) | | file://:0:0:0:0 | Result | +| main.rs:963:37:963:52 | try_same_error(...) | E | main.rs:925:5:926:14 | S1 | +| main.rs:963:37:963:52 | try_same_error(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:967:37:967:55 | try_convert_error(...) | | file://:0:0:0:0 | Result | +| main.rs:967:37:967:55 | try_convert_error(...) | E | main.rs:928:5:929:14 | S2 | +| main.rs:967:37:967:55 | try_convert_error(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:971:37:971:49 | try_chained(...) | | file://:0:0:0:0 | Result | +| main.rs:971:37:971:49 | try_chained(...) | E | main.rs:928:5:929:14 | S2 | +| main.rs:971:37:971:49 | try_chained(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:975:37:975:63 | try_complex(...) | | file://:0:0:0:0 | Result | +| main.rs:975:37:975:63 | try_complex(...) | E | main.rs:925:5:926:14 | S1 | +| main.rs:975:37:975:63 | try_complex(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:975:49:975:62 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:975:49:975:62 | ...::Ok(...) | E | main.rs:925:5:926:14 | S1 | +| main.rs:975:49:975:62 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:975:60:975:61 | S1 | | main.rs:925:5:926:14 | S1 | +| main.rs:983:5:983:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:984:5:984:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:984:20:984:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:984:41:984:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | From a3c26b4bfe57958419b2d2432c9c5dbf98408637 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 24 Apr 2025 13:05:42 +0200 Subject: [PATCH 173/656] Rust: Type inference for `?` expressions --- .../lib/codeql/rust/internal/TypeInference.qll | 14 ++++++++++++++ .../PathResolutionConsistency.expected | 17 +++++++++++++++++ .../test/library-tests/type-inference/main.rs | 6 +++--- .../type-inference/type-inference.expected | 11 +++++++++++ 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 0f0c92306d1..5c5f678950a 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -6,6 +6,7 @@ private import Type private import Type as T private import TypeMention private import codeql.typeinference.internal.TypeInference +private import codeql.rust.frameworks.stdlib.Stdlib class Type = T::Type; @@ -891,6 +892,17 @@ private Type inferRefExprType(Expr e, TypePath path) { ) } +pragma[nomagic] +private Type inferTryExprType(TryExpr te, TypePath path) { + exists(TypeParam tp | + result = inferType(te.getExpr(), TypePath::cons(TTypeParamTypeParameter(tp), path)) + | + tp = any(ResultEnum r).getGenericParamList().getGenericParam(0) + or + tp = any(OptionEnum o).getGenericParamList().getGenericParam(0) + ) +} + cached private module Cached { private import codeql.rust.internal.CachedStages @@ -1008,6 +1020,8 @@ private module Cached { result = inferFieldExprType(n, path) or result = inferRefExprType(n, path) + or + result = inferTryExprType(n, path) } } diff --git a/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..c47d16d6875 --- /dev/null +++ b/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,17 @@ +multipleMethodCallTargets +| main.rs:11:5:18:5 | conn.execute(...) | file://:0:0:0:0 | fn execute | +| main.rs:11:5:18:5 | conn.execute(...) | file://:0:0:0:0 | fn execute | +| main.rs:22:5:22:37 | conn.execute(...) | file://:0:0:0:0 | fn execute | +| main.rs:22:5:22:37 | conn.execute(...) | file://:0:0:0:0 | fn execute | +| main.rs:23:5:23:38 | conn.batch_execute(...) | file://:0:0:0:0 | fn batch_execute | +| main.rs:23:5:23:38 | conn.batch_execute(...) | file://:0:0:0:0 | fn batch_execute | +| main.rs:25:5:25:32 | conn.prepare(...) | file://:0:0:0:0 | fn prepare | +| main.rs:25:5:25:32 | conn.prepare(...) | file://:0:0:0:0 | fn prepare | +| main.rs:28:5:28:35 | conn.query(...) | file://:0:0:0:0 | fn query | +| main.rs:28:5:28:35 | conn.query(...) | file://:0:0:0:0 | fn query | +| main.rs:29:5:29:39 | conn.query_one(...) | file://:0:0:0:0 | fn query_one | +| main.rs:29:5:29:39 | conn.query_one(...) | file://:0:0:0:0 | fn query_one | +| main.rs:30:5:30:39 | conn.query_opt(...) | file://:0:0:0:0 | fn query_opt | +| main.rs:30:5:30:39 | conn.query_opt(...) | file://:0:0:0:0 | fn query_opt | +| main.rs:35:17:35:67 | conn.query(...) | file://:0:0:0:0 | fn query | +| main.rs:35:17:35:67 | conn.query(...) | file://:0:0:0:0 | fn query | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 0b93a8511a0..fa16b626474 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -930,14 +930,14 @@ mod try_expressions { // Simple function using ? operator with same error types fn try_same_error() -> Result { - let x = Result::Ok(S1)?; // $ MISSING: type=x:S1 + let x = Result::Ok(S1)?; // $ type=x:S1 Result::Ok(S1) } // Function using ? operator with different error types that need conversion fn try_convert_error() -> Result { let x = Result::Ok(S1); - let y = x?; // $ MISSING: type=y:S1 + let y = x?; // $ type=y:S1 Result::Ok(S1) } @@ -945,7 +945,7 @@ mod try_expressions { fn try_chained() -> Result { let x = Result::Ok(Result::Ok(S1)); // First ? returns Result, second ? returns S1 - let y = x?.map(|s| s)?; // $ MISSING: method=map + let y = x?.map(|s| s)?; // $ method=map Result::Ok(S1) } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index c9b7b349a70..42e5d90701b 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1008,8 +1008,10 @@ inferType | main.rs:932:43:935:5 | { ... } | | file://:0:0:0:0 | Result | | main.rs:932:43:935:5 | { ... } | E | main.rs:925:5:926:14 | S1 | | main.rs:932:43:935:5 | { ... } | T | main.rs:925:5:926:14 | S1 | +| main.rs:933:13:933:13 | x | | main.rs:925:5:926:14 | S1 | | main.rs:933:17:933:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | | main.rs:933:17:933:30 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:933:17:933:31 | TryExpr | | main.rs:925:5:926:14 | S1 | | main.rs:933:28:933:29 | S1 | | main.rs:925:5:926:14 | S1 | | main.rs:934:9:934:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | | main.rs:934:9:934:22 | ...::Ok(...) | E | main.rs:925:5:926:14 | S1 | @@ -1023,8 +1025,10 @@ inferType | main.rs:939:17:939:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | | main.rs:939:17:939:30 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | | main.rs:939:28:939:29 | S1 | | main.rs:925:5:926:14 | S1 | +| main.rs:940:13:940:13 | y | | main.rs:925:5:926:14 | S1 | | main.rs:940:17:940:17 | x | | file://:0:0:0:0 | Result | | main.rs:940:17:940:17 | x | T | main.rs:925:5:926:14 | S1 | +| main.rs:940:17:940:18 | TryExpr | | main.rs:925:5:926:14 | S1 | | main.rs:941:9:941:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | | main.rs:941:9:941:22 | ...::Ok(...) | E | main.rs:928:5:929:14 | S2 | | main.rs:941:9:941:22 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | @@ -1044,6 +1048,9 @@ inferType | main.rs:948:17:948:17 | x | | file://:0:0:0:0 | Result | | main.rs:948:17:948:17 | x | T | file://:0:0:0:0 | Result | | main.rs:948:17:948:17 | x | T.T | main.rs:925:5:926:14 | S1 | +| main.rs:948:17:948:18 | TryExpr | | file://:0:0:0:0 | Result | +| main.rs:948:17:948:18 | TryExpr | T | main.rs:925:5:926:14 | S1 | +| main.rs:948:17:948:29 | ... .map(...) | | file://:0:0:0:0 | Result | | main.rs:949:9:949:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | | main.rs:949:9:949:22 | ...::Ok(...) | E | main.rs:928:5:929:14 | S2 | | main.rs:949:9:949:22 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | @@ -1054,11 +1061,15 @@ inferType | main.rs:953:69:960:5 | { ... } | | file://:0:0:0:0 | Result | | main.rs:953:69:960:5 | { ... } | E | main.rs:925:5:926:14 | S1 | | main.rs:953:69:960:5 | { ... } | T | main.rs:953:20:953:27 | T | +| main.rs:954:13:954:17 | value | | main.rs:953:20:953:27 | T | | main.rs:954:21:954:25 | input | | file://:0:0:0:0 | Result | | main.rs:954:21:954:25 | input | E | main.rs:925:5:926:14 | S1 | | main.rs:954:21:954:25 | input | T | main.rs:953:20:953:27 | T | +| main.rs:954:21:954:26 | TryExpr | | main.rs:953:20:953:27 | T | | main.rs:955:22:955:38 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:955:22:955:38 | ...::Ok(...) | T | main.rs:953:20:953:27 | T | | main.rs:955:22:958:10 | ... .and_then(...) | | file://:0:0:0:0 | Result | +| main.rs:955:33:955:37 | value | | main.rs:953:20:953:27 | T | | main.rs:955:53:958:9 | { ... } | | file://:0:0:0:0 | Result | | main.rs:955:53:958:9 | { ... } | E | main.rs:925:5:926:14 | S1 | | main.rs:957:13:957:34 | ...::Ok::<...>(...) | | file://:0:0:0:0 | Result | From 2ed48ae571c5303074bce306f0e6d9e9d78e922d Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 30 Apr 2025 20:51:27 +0200 Subject: [PATCH 174/656] C++: Update expected test results after barrier introduction --- .../CastArrayPointerArithmetic.expected | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected b/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected index 3f66b2c20b3..75e2e581664 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected @@ -3,22 +3,13 @@ edges | test.cpp:30:34:30:34 | b | test.cpp:31:2:31:2 | b | provenance | | | test.cpp:34:31:34:31 | b | test.cpp:35:2:35:2 | b | provenance | | | test.cpp:57:19:57:19 | d | test.cpp:26:29:26:29 | b | provenance | | -| test.cpp:57:19:57:19 | d | test.cpp:58:25:58:25 | d | provenance | | -| test.cpp:57:19:57:19 | d | test.cpp:59:21:59:21 | d | provenance | | | test.cpp:58:25:58:25 | d | test.cpp:30:34:30:34 | b | provenance | | -| test.cpp:58:25:58:25 | d | test.cpp:59:21:59:21 | d | provenance | | | test.cpp:59:21:59:21 | d | test.cpp:34:31:34:31 | b | provenance | | | test.cpp:74:19:74:21 | dss | test.cpp:26:29:26:29 | b | provenance | | -| test.cpp:74:19:74:21 | dss | test.cpp:75:25:75:27 | dss | provenance | | -| test.cpp:74:19:74:21 | dss | test.cpp:76:21:76:23 | dss | provenance | | | test.cpp:75:25:75:27 | dss | test.cpp:30:34:30:34 | b | provenance | | -| test.cpp:75:25:75:27 | dss | test.cpp:76:21:76:23 | dss | provenance | | | test.cpp:76:21:76:23 | dss | test.cpp:34:31:34:31 | b | provenance | | | test.cpp:86:19:86:20 | d2 | test.cpp:26:29:26:29 | b | provenance | | -| test.cpp:86:19:86:20 | d2 | test.cpp:87:25:87:26 | d2 | provenance | | -| test.cpp:86:19:86:20 | d2 | test.cpp:88:21:88:22 | d2 | provenance | | | test.cpp:87:25:87:26 | d2 | test.cpp:30:34:30:34 | b | provenance | | -| test.cpp:87:25:87:26 | d2 | test.cpp:88:21:88:22 | d2 | provenance | | | test.cpp:88:21:88:22 | d2 | test.cpp:34:31:34:31 | b | provenance | | nodes | test.cpp:26:29:26:29 | b | semmle.label | b | @@ -41,18 +32,9 @@ subpaths | test.cpp:27:2:27:2 | b | test.cpp:57:19:57:19 | d | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | | test.cpp:27:2:27:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:27:2:27:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:27:2:27:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:57:19:57:19 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | | test.cpp:31:2:31:2 | b | test.cpp:58:25:58:25 | d | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | | test.cpp:31:2:31:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | -| test.cpp:31:2:31:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | | test.cpp:31:2:31:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:31:2:31:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:57:19:57:19 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:57:19:57:19 | d | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:58:25:58:25 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:58:25:58:25 | d | this cast | | test.cpp:35:2:35:2 | b | test.cpp:59:21:59:21 | d | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:59:21:59:21 | d | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:74:19:74:21 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:74:19:74:21 | dss | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:75:25:75:27 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:75:25:75:27 | dss | this cast | | test.cpp:35:2:35:2 | b | test.cpp:76:21:76:23 | dss | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:76:21:76:23 | dss | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:86:19:86:20 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:86:19:86:20 | d2 | this cast | -| test.cpp:35:2:35:2 | b | test.cpp:87:25:87:26 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:87:25:87:26 | d2 | this cast | | test.cpp:35:2:35:2 | b | test.cpp:88:21:88:22 | d2 | test.cpp:35:2:35:2 | b | This pointer arithmetic may be done with the wrong type because of $@. | test.cpp:88:21:88:22 | d2 | this cast | From 607a1e46dae1ad4169b8ff7f76e453c3598e91c2 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 28 Apr 2025 20:02:44 +0100 Subject: [PATCH 175/656] Shared: Generate value-preserving summaries when possible. --- .../internal/ModelGeneratorImpl.qll | 195 +++++++++++++----- .../modelgenerator/internal/ModelPrinting.qll | 8 +- 2 files changed, 152 insertions(+), 51 deletions(-) diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index b9592964f93..1856908206f 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -11,6 +11,7 @@ private import codeql.dataflow.internal.ContentDataFlowImpl private import codeql.dataflow.internal.DataFlowImplCommon as DataFlowImplCommon private import codeql.util.Location private import ModelPrinting +private import codeql.util.Unit /** * Provides language-specific model generator parameters. @@ -464,14 +465,22 @@ module MakeModelGenerator< override string toString() { result = "TaintStore(" + step + ")" } } - /** - * A data flow configuration for tracking flow through APIs. - * The sources are the parameters of an API and the sinks are the return values (excluding `this`) and parameters. - * - * This can be used to generate Flow summaries for APIs from parameter to return. - */ - private module PropagateFlowConfig implements DataFlow::StateConfigSig { - class FlowState = TaintState; + private signature module PropagateFlowConfigInputSig { + class FlowState; + + FlowState initialState(); + + default predicate isAdditionalFlowStep( + DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 + ) { + none() + } + } + + private module PropagateFlowConfig + implements DataFlow::StateConfigSig + { + import PropagateFlowConfigInput predicate isSource(DataFlow::Node source, FlowState state) { source instanceof DataFlow::ParameterNode and @@ -480,7 +489,7 @@ module MakeModelGenerator< c instanceof DataFlowSummaryTargetApi and not isUninterestingForHeuristicDataFlowModels(c) ) and - state.(TaintRead).getStep() = 0 + state = initialState() } predicate isSink(DataFlow::Node sink, FlowState state) { @@ -494,6 +503,31 @@ module MakeModelGenerator< not exists(captureQualifierFlow(getAsExprEnclosingCallable(sink))) } + predicate isAdditionalFlowStep = PropagateFlowConfigInput::isAdditionalFlowStep/4; + + predicate isBarrier(DataFlow::Node n) { + exists(Type t | t = n.(NodeExtended).getType() and not isRelevantType(t)) + } + + DataFlow::FlowFeature getAFeature() { + result instanceof DataFlow::FeatureEqualSourceSinkCallContext + } + } + + /** + * A module used to construct a data flow configuration for tracking taint- + * flow through APIs. + * The sources are the parameters of an API and the sinks are the return + * values (excluding `this`) and parameters. + * + * This can be used to generate flow summaries for APIs from parameter to + * return. + */ + module PropagateFlowConfigInputTaintInput implements PropagateFlowConfigInputSig { + class FlowState = TaintState; + + FlowState initialState() { result.(TaintRead).getStep() = 0 } + predicate isAdditionalFlowStep( DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 ) { @@ -515,51 +549,107 @@ module MakeModelGenerator< state1.(TaintRead).getStep() + 1 = state2.(TaintRead).getStep() ) } - - predicate isBarrier(DataFlow::Node n) { - exists(Type t | t = n.(NodeExtended).getType() and not isRelevantType(t)) - } - - DataFlow::FlowFeature getAFeature() { - result instanceof DataFlow::FeatureEqualSourceSinkCallContext - } } - module PropagateFlow = TaintTracking::GlobalWithState; + /** + * A data flow configuration for tracking taint-flow through APIs. + * The sources are the parameters of an API and the sinks are the return + * values (excluding `this`) and parameters. + * + * This can be used to generate flow summaries for APIs from parameter to + * return. + */ + private module PropagateTaintFlowConfig = + PropagateFlowConfig; + + module PropagateTaintFlow = TaintTracking::GlobalWithState; /** - * Gets the summary model(s) of `api`, if there is flow from parameters to return value or parameter. + * A module used to construct a data flow configuration for tracking + * data flow through APIs. + * The sources are the parameters of an API and the sinks are the return + * values (excluding `this`) and parameters. + * + * This can be used to generate value-preserving flow summaries for APIs + * from parameter to return. */ - string captureThroughFlow0( + module PropagateFlowConfigInputDataFlowInput implements PropagateFlowConfigInputSig { + class FlowState = Unit; + + FlowState initialState() { any() } + } + + /** + * A data flow configuration for tracking data flow through APIs. + * The sources are the parameters of an API and the sinks are the return + * values (excluding `this`) and parameters. + * + * This can be used to generate flow summaries for APIs from parameter to + * return. + */ + private module PropagateDataFlowConfig = + PropagateFlowConfig; + + module PropagateDataFlow = DataFlow::GlobalWithState; + + /** + * Holds if there should be a summary of `api` specifying flow from `p` + * to `returnNodeExt`. + */ + predicate captureThroughFlow0( DataFlowSummaryTargetApi api, DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt ) { - exists(string input, string output | - getEnclosingCallable(p) = api and - getEnclosingCallable(returnNodeExt) = api and - input = parameterNodeAsInput(p) and - output = getOutput(returnNodeExt) and - input != output and - result = ModelPrinting::asLiftedTaintModel(api, input, output) - ) + captureThroughFlow0(api, p, _, returnNodeExt, _, _) + } + + /** + * Holds if there should be a summary of `api` specifying flow + * from `p` (with summary component `input`) to `returnNodeExt` (with + * summary component `output`). + * + * `preservesValue` is true if the summary is value-preserving, or `false` + * otherwise. + */ + private predicate captureThroughFlow0( + DataFlowSummaryTargetApi api, DataFlow::ParameterNode p, string input, + ReturnNodeExt returnNodeExt, string output, boolean preservesValue + ) { + ( + PropagateDataFlow::flow(p, returnNodeExt) and preservesValue = true + or + not PropagateDataFlow::flow(p, returnNodeExt) and + PropagateTaintFlow::flow(p, returnNodeExt) and + preservesValue = false + ) and + getEnclosingCallable(p) = api and + getEnclosingCallable(returnNodeExt) = api and + input = parameterNodeAsInput(p) and + output = getOutput(returnNodeExt) and + input != output } /** * Gets the summary model(s) of `api`, if there is flow from parameters to return value or parameter. + * + * `preservesValue` is `true` if the summary is value-preserving, and `false` otherwise. */ - private string captureThroughFlow(DataFlowSummaryTargetApi api) { - exists(DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt | - PropagateFlow::flow(p, returnNodeExt) and - result = captureThroughFlow0(api, p, returnNodeExt) + private string captureThroughFlow(DataFlowSummaryTargetApi api, boolean preservesValue) { + exists(string input, string output | + preservesValue = max(boolean b | captureThroughFlow0(api, _, input, _, output, b)) and + result = ModelPrinting::asLiftedTaintModel(api, input, output, preservesValue) ) } /** * Gets the summary model(s) of `api`, if there is flow from parameters to the * return value or parameter or if `api` is a fluent API. + * + * `preservesValue` is `true` if the summary is value-preserving, and `false` otherwise. */ - string captureFlow(DataFlowSummaryTargetApi api) { - result = captureQualifierFlow(api) or - result = captureThroughFlow(api) + string captureHeuristicFlow(DataFlowSummaryTargetApi api, boolean preservesValue) { + result = captureQualifierFlow(api) and preservesValue = true + or + result = captureThroughFlow(api, preservesValue) } /** @@ -569,7 +659,7 @@ module MakeModelGenerator< */ string captureNoFlow(DataFlowSummaryTargetApi api) { not exists(DataFlowSummaryTargetApi api0 | - exists(captureFlow(api0)) and api0.lift() = api.lift() + exists(captureFlow(api0, _)) and api0.lift() = api.lift() ) and api.isRelevant() and result = ModelPrinting::asNeutralSummaryModel(api) @@ -1024,12 +1114,13 @@ module MakeModelGenerator< /** * Gets the content based summary model(s) of the API `api` (if there is flow from a parameter to * the return value or a parameter). `lift` is true, if the model should be lifted, otherwise false. + * `preservesValue` is `true` if the summary is value-preserving, and `false` otherwise. * * Models are lifted to the best type in case the read and store access paths do not * contain a field or synthetic field access. */ - string captureFlow(ContentDataFlowSummaryTargetApi api, boolean lift) { - exists(string input, string output, boolean preservesValue | + string captureFlow(ContentDataFlowSummaryTargetApi api, boolean lift, boolean preservesValue) { + exists(string input, string output | captureFlow0(api, input, output, _, lift) and preservesValue = max(boolean p | captureFlow0(api, input, output, p, lift)) and result = ContentModelPrinting::asModel(api, input, output, preservesValue, lift) @@ -1046,17 +1137,25 @@ module MakeModelGenerator< * generate flow summaries using the heuristic based summary generator. */ string captureFlow(DataFlowSummaryTargetApi api, boolean lift) { - result = ContentSensitive::captureFlow(api, lift) - or - not exists(DataFlowSummaryTargetApi api0 | - (api0 = api or api.lift() = api0) and - exists(ContentSensitive::captureFlow(api0, false)) + exists(boolean preservesValue | + result = ContentSensitive::captureFlow(api, lift, preservesValue) or - api0.lift() = api.lift() and - exists(ContentSensitive::captureFlow(api0, true)) - ) and - result = Heuristic::captureFlow(api) and - lift = true + not exists(DataFlowSummaryTargetApi api0 | + // If the heuristic summary is value-preserving then we keep both + // summaries. However, if we can generate any content-sensitive + // summary (value-preserving or not) then we don't include any taint- + // based heuristic summary. + preservesValue = false + | + (api0 = api or api.lift() = api0) and + exists(ContentSensitive::captureFlow(api0, false, _)) + or + api0.lift() = api.lift() and + exists(ContentSensitive::captureFlow(api0, true, _)) + ) and + result = Heuristic::captureHeuristicFlow(api, preservesValue) and + lift = true + ) } /** diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll index 0ab92f7032b..0bce2ed50d1 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll @@ -86,9 +86,11 @@ module ModelPrintingImpl { /** * Gets the lifted taint summary model for `api` with `input` and `output`. */ - bindingset[input, output] - string asLiftedTaintModel(Printing::SummaryApi api, string input, string output) { - result = asModel(api, input, output, false, true) + bindingset[input, output, preservesValue] + string asLiftedTaintModel( + Printing::SummaryApi api, string input, string output, boolean preservesValue + ) { + result = asModel(api, input, output, preservesValue, true) } /** From cd4737970000ce235be368c9a2bb0fb31de2317a Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 29 Apr 2025 13:18:01 +0100 Subject: [PATCH 176/656] C#: Fixup queries and accept test changes. --- .../CaptureContentSummaryModels.ql | 2 +- .../debug/CaptureSummaryModelsPartialPath.ql | 2 +- .../debug/CaptureSummaryModelsPath.ql | 10 ++-- .../dataflow/CaptureContentSummaryModels.ql | 2 +- .../dataflow/CaptureHeuristicSummaryModels.ql | 2 +- .../modelgenerator/dataflow/Summaries.cs | 46 +++++++++---------- 6 files changed, 32 insertions(+), 32 deletions(-) diff --git a/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index 039c96a9a0b..c108029e3df 100644 --- a/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -9,5 +9,5 @@ import internal.CaptureModels from DataFlowSummaryTargetApi api, string flow -where flow = ContentSensitive::captureFlow(api, _) +where flow = ContentSensitive::captureFlow(api, _, _) select flow order by flow diff --git a/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql b/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql index beb14cd8e62..979a129e565 100644 --- a/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql +++ b/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql @@ -14,7 +14,7 @@ import PartialFlow::PartialPathGraph int explorationLimit() { result = 3 } -module PartialFlow = Heuristic::PropagateFlow::FlowExplorationFwd; +module PartialFlow = Heuristic::PropagateTaintFlow::FlowExplorationFwd; from PartialFlow::PartialPathNode source, PartialFlow::PartialPathNode sink, diff --git a/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql b/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql index e3de78767ea..9d51b60ec2e 100644 --- a/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql +++ b/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql @@ -11,15 +11,15 @@ import csharp import utils.modelgenerator.internal.CaptureModels import Heuristic -import PropagateFlow::PathGraph +import PropagateTaintFlow::PathGraph from - PropagateFlow::PathNode source, PropagateFlow::PathNode sink, DataFlowSummaryTargetApi api, - DataFlow::Node p, DataFlow::Node returnNodeExt + PropagateTaintFlow::PathNode source, PropagateTaintFlow::PathNode sink, + DataFlowSummaryTargetApi api, DataFlow::Node p, DataFlow::Node returnNodeExt where - PropagateFlow::flowPath(source, sink) and + PropagateTaintFlow::flowPath(source, sink) and p = source.getNode() and returnNodeExt = sink.getNode() and - exists(captureThroughFlow0(api, p, returnNodeExt)) + captureThroughFlow0(api, p, returnNodeExt) select sink.getNode(), source, sink, "There is flow from $@ to the $@.", source.getNode(), "parameter", sink.getNode(), "return value" diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql index 0d9e4cd52d9..fe575790af0 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql +++ b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql @@ -3,7 +3,7 @@ import utils.modelgenerator.internal.CaptureModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Callable c) { result = ContentSensitive::captureFlow(c, _) } + string getCapturedModel(Callable c) { result = ContentSensitive::captureFlow(c, _, _) } string getKind() { result = "contentbased-summary" } } diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql index 24cb66e427e..d8e71b5e720 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql +++ b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql @@ -3,7 +3,7 @@ import utils.modelgenerator.internal.CaptureModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Callable c) { result = Heuristic::captureFlow(c) } + string getCapturedModel(Callable c) { result = Heuristic::captureHeuristicFlow(c, _) } string getKind() { result = "heuristic-summary" } } diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs b/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs index f1dbc02512a..382739b348e 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs +++ b/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs @@ -19,22 +19,22 @@ public class BasicFlow return this; } - // heuristic-summary=Models;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;value;dfc-generated public string ReturnParam0(string input0, object input1) { return input0; } - // heuristic-summary=Models;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;taint;df-generated + // heuristic-summary=Models;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;value;df-generated // contentbased-summary=Models;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;value;dfc-generated public object ReturnParam1(string input0, object input1) { return input1; } - // heuristic-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;taint;df-generated - // heuristic-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;taint;df-generated + // heuristic-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;value;df-generated + // heuristic-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;value;df-generated // contentbased-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;value;dfc-generated // contentbased-summary=Models;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;value;dfc-generated public object ReturnParamMultiple(object input0, object input1) @@ -133,35 +133,35 @@ public class CollectionFlow return new List { tainted }; } - // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;taint;df-generated + // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;value;df-generated // contentbased-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0];ReturnValue;value;dfc-generated public string[] ReturnComplexTypeArray(string[] a) { return a; } - // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List);;Argument[0].Element;ReturnValue;taint;df-generated + // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List);;Argument[0].Element;ReturnValue;value;df-generated // contentbased-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List);;Argument[0];ReturnValue;value;dfc-generated public List ReturnBulkTypeList(List a) { return a; } - // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary);;Argument[0].Element;ReturnValue;taint;df-generated + // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary);;Argument[0].Element;ReturnValue;value;df-generated // contentbased-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary);;Argument[0];ReturnValue;value;dfc-generated public Dictionary ReturnComplexTypeDictionary(Dictionary a) { return a; } - // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;taint;df-generated + // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;value;df-generated // contentbased-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0];ReturnValue;value;dfc-generated public Array ReturnUntypedArray(Array a) { return a; } - // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;taint;df-generated + // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;value;df-generated // contentbased-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0];ReturnValue;value;dfc-generated public IList ReturnUntypedList(IList a) { @@ -202,7 +202,7 @@ public class IEnumerableFlow tainted = s; } - // SPURIOUS-heuristic-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;taint;df-generated + // SPURIOUS-heuristic-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;df-generated // contentbased-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;value;dfc-generated public IEnumerable ReturnIEnumerable(IEnumerable input) { @@ -256,7 +256,7 @@ public class GenericFlow return new List { tainted }; } - // heuristic-summary=Models;GenericFlow;false;ReturnGenericParam;(S);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;GenericFlow;false;ReturnGenericParam;(S);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;GenericFlow;false;ReturnGenericParam;(S);;Argument[0];ReturnValue;value;dfc-generated public S ReturnGenericParam(S input) { @@ -280,7 +280,7 @@ public class GenericFlow public abstract class BaseClassFlow { - // heuristic-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;dfc-generated public virtual object ReturnParam(object input) { @@ -290,7 +290,7 @@ public abstract class BaseClassFlow public class DerivedClass1Flow : BaseClassFlow { - // heuristic-summary=Models;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;taint;df-generated + // heuristic-summary=Models;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;value;df-generated // contentbased-summary=Models;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;value;dfc-generated public string ReturnParam1(string input0, string input1) { @@ -300,14 +300,14 @@ public class DerivedClass1Flow : BaseClassFlow public class DerivedClass2Flow : BaseClassFlow { - // heuristic-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;value;dfc-generated public override object ReturnParam(object input) { return input; } - // heuristic-summary=Models;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;value;dfc-generated public string ReturnParam0(string input0, int input1) { @@ -327,7 +327,7 @@ public class OperatorFlow } // Flow Summary. - // heuristic-summary=Models;OperatorFlow;false;op_Addition;(Models.OperatorFlow,Models.OperatorFlow);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;OperatorFlow;false;op_Addition;(Models.OperatorFlow,Models.OperatorFlow);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;OperatorFlow;false;op_Addition;(Models.OperatorFlow,Models.OperatorFlow);;Argument[0];ReturnValue;value;dfc-generated public static OperatorFlow operator +(OperatorFlow a, OperatorFlow b) { @@ -368,7 +368,7 @@ public class EqualsGetHashCodeNoFlow return boolTainted; } - // heuristic-summary=Models;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;value;dfc-generated public string Equals(string s) { @@ -606,7 +606,7 @@ public class Inheritance public class AImplBasePublic : BasePublic { - // heuristic-summary=Models;Inheritance+BasePublic;true;Id;(System.String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;Inheritance+BasePublic;true;Id;(System.String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;Inheritance+BasePublic;true;Id;(System.String);;Argument[0];ReturnValue;value;dfc-generated public override string Id(string x) { @@ -636,7 +636,7 @@ public class Inheritance public class BImpl : B { - // heuristic-summary=Models;Inheritance+IPublic1;true;Id;(System.String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;Inheritance+IPublic1;true;Id;(System.String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;Inheritance+IPublic1;true;Id;(System.String);;Argument[0];ReturnValue;value;dfc-generated public override string Id(string x) { @@ -646,7 +646,7 @@ public class Inheritance private class CImpl : C { - // heuristic-summary=Models;Inheritance+IPublic2;true;Id;(System.String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;Inheritance+IPublic2;true;Id;(System.String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;Inheritance+IPublic2;true;Id;(System.String);;Argument[0];ReturnValue;value;dfc-generated public override string Id(string x) { @@ -1035,14 +1035,14 @@ public class AvoidDuplicateLifted public class ParameterModifiers { // contentbased-summary=Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];Argument[1];value;dfc-generated - // heuristic-summary=Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];Argument[1];taint;df-generated + // heuristic-summary=Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];Argument[1];value;df-generated public void Copy(object key, out object value) { value = key; } // contentbased-summary=Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];Argument[1];value;dfc-generated - // heuristic-summary=Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];Argument[1];taint;df-generated + // heuristic-summary=Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];Argument[1];value;df-generated public void CopyToRef(object key, ref object value) { value = key; @@ -1062,7 +1062,7 @@ public class ParameterModifiers } // contentbased-summary=Models;ParameterModifiers;false;InReturn;(System.Object);;Argument[0];ReturnValue;value;dfc-generated - // heuristic-summary=Models;ParameterModifiers;false;InReturn;(System.Object);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=Models;ParameterModifiers;false;InReturn;(System.Object);;Argument[0];ReturnValue;value;df-generated public object InReturn(in object v) { return v; From 07641e48ab693478c95448e565b2807ae631e781 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 29 Apr 2025 13:18:16 +0100 Subject: [PATCH 177/656] Java: Fixup queries and accept test changes. --- .../modelgenerator/CaptureContentSummaryModels.ql | 2 +- .../debug/CaptureSummaryModelsPartialPath.ql | 2 +- .../modelgenerator/debug/CaptureSummaryModelsPath.ql | 10 +++++----- .../dataflow/CaptureContentSummaryModels.ql | 2 +- .../dataflow/CaptureHeuristicSummaryModels.ql | 2 +- .../utils/modelgenerator/dataflow/p/FinalClass.java | 2 +- .../modelgenerator/dataflow/p/ImmutablePojo.java | 2 +- .../utils/modelgenerator/dataflow/p/Inheritance.java | 12 ++++++------ .../modelgenerator/dataflow/p/InnerClasses.java | 4 ++-- .../utils/modelgenerator/dataflow/p/MultiPaths.java | 2 +- .../modelgenerator/dataflow/p/MultipleImpl2.java | 2 +- .../modelgenerator/dataflow/p/MultipleImpls.java | 2 +- .../utils/modelgenerator/dataflow/p/ParamFlow.java | 6 +++--- 13 files changed, 25 insertions(+), 25 deletions(-) diff --git a/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index b1340e2c0d3..6d209a4c50d 100644 --- a/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -9,5 +9,5 @@ import internal.CaptureModels from DataFlowSummaryTargetApi api, string flow -where flow = ContentSensitive::captureFlow(api, _) +where flow = ContentSensitive::captureFlow(api, _, _) select flow order by flow diff --git a/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql b/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql index 8895fdaefbb..16d202f2788 100644 --- a/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql +++ b/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql @@ -15,7 +15,7 @@ import PartialFlow::PartialPathGraph int explorationLimit() { result = 3 } -module PartialFlow = Heuristic::PropagateFlow::FlowExplorationFwd; +module PartialFlow = Heuristic::PropagateTaintFlow::FlowExplorationFwd; from PartialFlow::PartialPathNode source, PartialFlow::PartialPathNode sink, diff --git a/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql b/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql index 8f6bf1c1f53..57468f6ac05 100644 --- a/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql +++ b/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql @@ -12,15 +12,15 @@ import java import semmle.code.java.dataflow.DataFlow import utils.modelgenerator.internal.CaptureModels import Heuristic -import PropagateFlow::PathGraph +import PropagateTaintFlow::PathGraph from - PropagateFlow::PathNode source, PropagateFlow::PathNode sink, DataFlowSummaryTargetApi api, - DataFlow::Node p, DataFlow::Node returnNodeExt + PropagateTaintFlow::PathNode source, PropagateTaintFlow::PathNode sink, + DataFlowSummaryTargetApi api, DataFlow::Node p, DataFlow::Node returnNodeExt where - PropagateFlow::flowPath(source, sink) and + PropagateTaintFlow::flowPath(source, sink) and p = source.getNode() and returnNodeExt = sink.getNode() and - exists(captureThroughFlow0(api, p, returnNodeExt)) + captureThroughFlow0(api, p, returnNodeExt) select sink.getNode(), source, sink, "There is flow from $@ to the $@.", source.getNode(), "parameter", sink.getNode(), "return value" diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql b/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql index 8dd23714fb7..1ee494a849a 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql @@ -3,7 +3,7 @@ import utils.modelgenerator.internal.CaptureModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Callable c) { result = ContentSensitive::captureFlow(c, _) } + string getCapturedModel(Callable c) { result = ContentSensitive::captureFlow(c, _, _) } string getKind() { result = "contentbased-summary" } } diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql b/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql index 45485a8009a..6b07aa87da8 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql @@ -3,7 +3,7 @@ import utils.modelgenerator.internal.CaptureModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Callable c) { result = Heuristic::captureFlow(c) } + string getCapturedModel(Callable c) { result = Heuristic::captureHeuristicFlow(c, _) } string getKind() { result = "heuristic-summary" } } diff --git a/java/ql/test/utils/modelgenerator/dataflow/p/FinalClass.java b/java/ql/test/utils/modelgenerator/dataflow/p/FinalClass.java index 993248f9bf8..431140c5154 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/p/FinalClass.java +++ b/java/ql/test/utils/modelgenerator/dataflow/p/FinalClass.java @@ -4,7 +4,7 @@ public final class FinalClass { private static final String C = "constant"; - // heuristic-summary=p;FinalClass;false;returnsInput;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;FinalClass;false;returnsInput;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;FinalClass;false;returnsInput;(String);;Argument[0];ReturnValue;value;dfc-generated public String returnsInput(String input) { return input; diff --git a/java/ql/test/utils/modelgenerator/dataflow/p/ImmutablePojo.java b/java/ql/test/utils/modelgenerator/dataflow/p/ImmutablePojo.java index 711d49cc1fc..0f784ae859f 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/p/ImmutablePojo.java +++ b/java/ql/test/utils/modelgenerator/dataflow/p/ImmutablePojo.java @@ -24,7 +24,7 @@ public final class ImmutablePojo { return x; } - // heuristic-summary=p;ImmutablePojo;false;or;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;ImmutablePojo;false;or;(String);;Argument[0];ReturnValue;value;df-generated // heuristic-summary=p;ImmutablePojo;false;or;(String);;Argument[this];ReturnValue;taint;df-generated // contentbased-summary=p;ImmutablePojo;false;or;(String);;Argument[0];ReturnValue;value;dfc-generated // contentbased-summary=p;ImmutablePojo;false;or;(String);;Argument[this].SyntheticField[p.ImmutablePojo.value];ReturnValue;value;dfc-generated diff --git a/java/ql/test/utils/modelgenerator/dataflow/p/Inheritance.java b/java/ql/test/utils/modelgenerator/dataflow/p/Inheritance.java index 4253ee0d6ea..096c186cdc8 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/p/Inheritance.java +++ b/java/ql/test/utils/modelgenerator/dataflow/p/Inheritance.java @@ -10,7 +10,7 @@ public class Inheritance { } public class AImplBasePrivateImpl extends BasePrivate { - // heuristic-summary=p;Inheritance$AImplBasePrivateImpl;true;id;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;Inheritance$AImplBasePrivateImpl;true;id;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;Inheritance$AImplBasePrivateImpl;true;id;(String);;Argument[0];ReturnValue;value;dfc-generated @Override public String id(String s) { @@ -19,7 +19,7 @@ public class Inheritance { } public class AImplBasePublic extends BasePublic { - // heuristic-summary=p;Inheritance$BasePublic;true;id;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;Inheritance$BasePublic;true;id;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;Inheritance$BasePublic;true;id;(String);;Argument[0];ReturnValue;value;dfc-generated @Override public String id(String s) { @@ -60,7 +60,7 @@ public class Inheritance { } public class BImpl extends B { - // heuristic-summary=p;Inheritance$IPublic1;true;id;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;Inheritance$IPublic1;true;id;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;Inheritance$IPublic1;true;id;(String);;Argument[0];ReturnValue;value;dfc-generated @Override public String id(String s) { @@ -69,7 +69,7 @@ public class Inheritance { } public class CImpl extends C { - // heuristic-summary=p;Inheritance$C;true;id;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;Inheritance$C;true;id;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;Inheritance$C;true;id;(String);;Argument[0];ReturnValue;value;dfc-generated @Override public String id(String s) { @@ -78,7 +78,7 @@ public class Inheritance { } public class DImpl extends D { - // heuristic-summary=p;Inheritance$IPublic2;true;id;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;Inheritance$IPublic2;true;id;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;Inheritance$IPublic2;true;id;(String);;Argument[0];ReturnValue;value;dfc-generated @Override public String id(String s) { @@ -87,7 +87,7 @@ public class Inheritance { } public class EImpl extends E { - // heuristic-summary=p;Inheritance$EImpl;true;id;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;Inheritance$EImpl;true;id;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;Inheritance$EImpl;true;id;(String);;Argument[0];ReturnValue;value;dfc-generated @Override public String id(String s) { diff --git a/java/ql/test/utils/modelgenerator/dataflow/p/InnerClasses.java b/java/ql/test/utils/modelgenerator/dataflow/p/InnerClasses.java index 283bcfd5c6e..e0db1227b48 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/p/InnerClasses.java +++ b/java/ql/test/utils/modelgenerator/dataflow/p/InnerClasses.java @@ -9,14 +9,14 @@ public class InnerClasses { } public class CaptureMe { - // heuristic-summary=p;InnerClasses$CaptureMe;true;yesCm;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;InnerClasses$CaptureMe;true;yesCm;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;InnerClasses$CaptureMe;true;yesCm;(String);;Argument[0];ReturnValue;value;dfc-generated public String yesCm(String input) { return input; } } - // heuristic-summary=p;InnerClasses;true;yes;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;InnerClasses;true;yes;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;InnerClasses;true;yes;(String);;Argument[0];ReturnValue;value;dfc-generated public String yes(String input) { return input; diff --git a/java/ql/test/utils/modelgenerator/dataflow/p/MultiPaths.java b/java/ql/test/utils/modelgenerator/dataflow/p/MultiPaths.java index 11d2f8f76f8..fb03061eaaf 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/p/MultiPaths.java +++ b/java/ql/test/utils/modelgenerator/dataflow/p/MultiPaths.java @@ -2,7 +2,7 @@ package p; public class MultiPaths { - // heuristic-summary=p;MultiPaths;true;cond;(String,String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;MultiPaths;true;cond;(String,String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;MultiPaths;true;cond;(String,String);;Argument[0];ReturnValue;value;dfc-generated public String cond(String x, String other) { if (x == other) { diff --git a/java/ql/test/utils/modelgenerator/dataflow/p/MultipleImpl2.java b/java/ql/test/utils/modelgenerator/dataflow/p/MultipleImpl2.java index d0fd31613d6..7256e5345ba 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/p/MultipleImpl2.java +++ b/java/ql/test/utils/modelgenerator/dataflow/p/MultipleImpl2.java @@ -16,7 +16,7 @@ class MultipleImpl2 { } public class Impl2 implements IInterface { - // heuristic-summary=p;MultipleImpl2$IInterface;true;m;(Object);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;MultipleImpl2$IInterface;true;m;(Object);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;MultipleImpl2$IInterface;true;m;(Object);;Argument[0];ReturnValue;value;dfc-generated public Object m(Object value) { return value; diff --git a/java/ql/test/utils/modelgenerator/dataflow/p/MultipleImpls.java b/java/ql/test/utils/modelgenerator/dataflow/p/MultipleImpls.java index 5bdbb47fa48..60e16fbeb16 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/p/MultipleImpls.java +++ b/java/ql/test/utils/modelgenerator/dataflow/p/MultipleImpls.java @@ -9,7 +9,7 @@ public class MultipleImpls { } public static class Strat1 implements Strategy { - // heuristic-summary=p;MultipleImpls$Strategy;true;doSomething;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;MultipleImpls$Strategy;true;doSomething;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;MultipleImpls$Strategy;true;doSomething;(String);;Argument[0];ReturnValue;value;dfc-generated public String doSomething(String value) { return value; diff --git a/java/ql/test/utils/modelgenerator/dataflow/p/ParamFlow.java b/java/ql/test/utils/modelgenerator/dataflow/p/ParamFlow.java index 81b9602e557..4c9d7427d75 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/p/ParamFlow.java +++ b/java/ql/test/utils/modelgenerator/dataflow/p/ParamFlow.java @@ -7,7 +7,7 @@ import java.util.List; public class ParamFlow { - // heuristic-summary=p;ParamFlow;true;returnsInput;(String);;Argument[0];ReturnValue;taint;df-generated + // heuristic-summary=p;ParamFlow;true;returnsInput;(String);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=p;ParamFlow;true;returnsInput;(String);;Argument[0];ReturnValue;value;dfc-generated public String returnsInput(String input) { return input; @@ -18,8 +18,8 @@ public class ParamFlow { return input.length(); } - // heuristic-summary=p;ParamFlow;true;returnMultipleParameters;(String,String);;Argument[0];ReturnValue;taint;df-generated - // heuristic-summary=p;ParamFlow;true;returnMultipleParameters;(String,String);;Argument[1];ReturnValue;taint;df-generated + // heuristic-summary=p;ParamFlow;true;returnMultipleParameters;(String,String);;Argument[0];ReturnValue;value;df-generated + // heuristic-summary=p;ParamFlow;true;returnMultipleParameters;(String,String);;Argument[1];ReturnValue;value;df-generated // contentbased-summary=p;ParamFlow;true;returnMultipleParameters;(String,String);;Argument[0];ReturnValue;value;dfc-generated // contentbased-summary=p;ParamFlow;true;returnMultipleParameters;(String,String);;Argument[1];ReturnValue;value;dfc-generated public String returnMultipleParameters(String one, String two) { From 775197372c8d0055e43c7479b5e6cdd56bf122a7 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 29 Apr 2025 13:18:27 +0100 Subject: [PATCH 178/656] Rust: Fixup queries. --- .../modelgenerator/CaptureContentSummaryModels.ql | 2 +- .../debug/CaptureSummaryModelsPartialPath.ql | 2 +- .../modelgenerator/debug/CaptureSummaryModelsPath.ql | 10 +++++----- .../utils-tests/modelgenerator/CaptureSummaryModels.ql | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index da90465197e..a19a1b2398c 100644 --- a/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -9,5 +9,5 @@ import internal.CaptureModels from DataFlowSummaryTargetApi api, string flow -where flow = ContentSensitive::captureFlow(api, _) +where flow = ContentSensitive::captureFlow(api, _, _) select flow order by flow diff --git a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql index eb0cd638b53..49b8d56fdff 100644 --- a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql +++ b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql @@ -14,7 +14,7 @@ import PartialFlow::PartialPathGraph int explorationLimit() { result = 3 } -module PartialFlow = Heuristic::PropagateFlow::FlowExplorationFwd; +module PartialFlow = Heuristic::PropagateTaintFlow::FlowExplorationFwd; from PartialFlow::PartialPathNode source, PartialFlow::PartialPathNode sink, diff --git a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql index 1ddec1ff618..611faae5b41 100644 --- a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql +++ b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql @@ -11,15 +11,15 @@ private import codeql.rust.dataflow.DataFlow import utils.modelgenerator.internal.CaptureModels import Heuristic -import PropagateFlow::PathGraph +import PropagateTaintFlow::PathGraph from - PropagateFlow::PathNode source, PropagateFlow::PathNode sink, DataFlowSummaryTargetApi api, - DataFlow::Node p, DataFlow::Node returnNodeExt + PropagateTaintFlow::PathNode source, PropagateTaintFlow::PathNode sink, + DataFlowSummaryTargetApi api, DataFlow::Node p, DataFlow::Node returnNodeExt where - PropagateFlow::flowPath(source, sink) and + PropagateTaintFlow::flowPath(source, sink) and p = source.getNode() and returnNodeExt = sink.getNode() and - exists(captureThroughFlow0(api, p, returnNodeExt)) + captureThroughFlow0(api, p, returnNodeExt) select sink.getNode(), source, sink, "There is flow from $@ to the $@.", source.getNode(), "parameter", sink.getNode(), "return value" diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql index 002689a2039..2ea8bd1ce6d 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql @@ -3,7 +3,7 @@ import utils.modelgenerator.internal.CaptureModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Function f) { result = ContentSensitive::captureFlow(f, _) } + string getCapturedModel(Function f) { result = ContentSensitive::captureFlow(f, _, _) } string getKind() { result = "summary" } } From d8eafbb9e2807e237651534e1a3b82edf2536e02 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 29 Apr 2025 15:04:25 +0100 Subject: [PATCH 179/656] C++: Fixup queries and accept test changes. --- .../CaptureContentSummaryModels.ql | 2 +- .../dataflow/CaptureContentSummaryModels.ql | 2 +- .../dataflow/CaptureHeuristicSummaryModels.ql | 2 +- .../modelgenerator/dataflow/summaries.cpp | 46 +++++++++---------- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index 8dc0c3d7f6b..d49ace967ca 100644 --- a/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -9,5 +9,5 @@ import internal.CaptureModels from DataFlowSummaryTargetApi api, string flow -where flow = ContentSensitive::captureFlow(api, _) +where flow = ContentSensitive::captureFlow(api, _, _) select flow order by flow diff --git a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql index 0156eaaeb98..a73cc163198 100644 --- a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql +++ b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql @@ -3,7 +3,7 @@ import utils.modelgenerator.internal.CaptureModels import InlineModelsAsDataTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(MadRelevantFunction c) { result = ContentSensitive::captureFlow(c, _) } + string getCapturedModel(MadRelevantFunction c) { result = ContentSensitive::captureFlow(c, _, _) } string getKind() { result = "contentbased-summary" } } diff --git a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql index 3ab1dc6c471..14423e8c078 100644 --- a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql +++ b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql @@ -3,7 +3,7 @@ import utils.modelgenerator.internal.CaptureModels import InlineModelsAsDataTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(MadRelevantFunction c) { result = Heuristic::captureFlow(c) } + string getCapturedModel(MadRelevantFunction c) { result = Heuristic::captureHeuristicFlow(c, _) } string getKind() { result = "heuristic-summary" } } diff --git a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/summaries.cpp b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/summaries.cpp index 74869a69994..d4f96f67ff3 100644 --- a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/summaries.cpp +++ b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/summaries.cpp @@ -10,32 +10,32 @@ namespace Models { //No model as destructors are excluded from model generation. ~BasicFlow() = default; - //heuristic-summary=Models;BasicFlow;true;returnThis;(int *);;Argument[-1];ReturnValue[*];taint;df-generated + //heuristic-summary=Models;BasicFlow;true;returnThis;(int *);;Argument[-1];ReturnValue[*];value;df-generated //contentbased-summary=Models;BasicFlow;true;returnThis;(int *);;Argument[-1];ReturnValue[*];value;dfc-generated BasicFlow* returnThis(int* input) { return this; } - //heuristic-summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[0];ReturnValue;taint;df-generated - //heuristic-summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[*0];ReturnValue[*];taint;df-generated + //heuristic-summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[0];ReturnValue;value;df-generated + //heuristic-summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[*0];ReturnValue[*];value;df-generated //contentbased-summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[0];ReturnValue;value;dfc-generated //contentbased-summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[*0];ReturnValue[*];value;dfc-generated int* returnParam0(int* input0, int* input1) { return input0; } - //heuristic-summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[1];ReturnValue;taint;df-generated - //heuristic-summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[*1];ReturnValue[*];taint;df-generated + //heuristic-summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[1];ReturnValue;value;df-generated + //heuristic-summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[*1];ReturnValue[*];value;df-generated //contentbased-summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[1];ReturnValue;value;dfc-generated //contentbased-summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[*1];ReturnValue[*];value;dfc-generated int* returnParam1(int* input0, int* input1) { return input1; } - //heuristic-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[1];ReturnValue;taint;df-generated - //heuristic-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[*1];ReturnValue[*];taint;df-generated - //heuristic-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[2];ReturnValue;taint;df-generated - //heuristic-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[*2];ReturnValue[*];taint;df-generated + //heuristic-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[1];ReturnValue;value;df-generated + //heuristic-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[*1];ReturnValue[*];value;df-generated + //heuristic-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[2];ReturnValue;value;df-generated + //heuristic-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[*2];ReturnValue[*];value;df-generated //contentbased-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[1];ReturnValue;value;dfc-generated //contentbased-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[*1];ReturnValue[*];value;dfc-generated //contentbased-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[2];ReturnValue;value;dfc-generated @@ -46,9 +46,9 @@ namespace Models { //heuristic-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[0];Argument[*1];taint;df-generated //heuristic-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[0];ReturnValue[*];taint;df-generated - //heuristic-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[*0];ReturnValue[*];taint;df-generated - //heuristic-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[1];ReturnValue;taint;df-generated - //heuristic-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[*0];Argument[*1];taint;df-generated + //heuristic-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[*0];ReturnValue[*];value;df-generated + //heuristic-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[1];ReturnValue;value;df-generated + //heuristic-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[*0];Argument[*1];value;df-generated //contentbased-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[0];Argument[*1];taint;dfc-generated //contentbased-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[0];ReturnValue[*];taint;dfc-generated //contentbased-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[*0];ReturnValue[*];value;dfc-generated @@ -79,14 +79,14 @@ namespace Models { struct TemplatedFlow { T tainted; - //heuristic-summary=Models;TemplatedFlow;true;template_returnThis;(T);;Argument[-1];ReturnValue[*];taint;df-generated + //heuristic-summary=Models;TemplatedFlow;true;template_returnThis;(T);;Argument[-1];ReturnValue[*];value;df-generated //contentbased-summary=Models;TemplatedFlow;true;template_returnThis;(T);;Argument[-1];ReturnValue[*];value;dfc-generated TemplatedFlow* template_returnThis(T input) { return this; } - //heuristic-summary=Models;TemplatedFlow;true;template_returnParam0;(T *,T *);;Argument[0];ReturnValue;taint;df-generated - //heuristic-summary=Models;TemplatedFlow;true;template_returnParam0;(T *,T *);;Argument[*0];ReturnValue[*];taint;df-generated + //heuristic-summary=Models;TemplatedFlow;true;template_returnParam0;(T *,T *);;Argument[0];ReturnValue;value;df-generated + //heuristic-summary=Models;TemplatedFlow;true;template_returnParam0;(T *,T *);;Argument[*0];ReturnValue[*];value;df-generated //contentbased-summary=Models;TemplatedFlow;true;template_returnParam0;(T *,T *);;Argument[0];ReturnValue;value;dfc-generated //contentbased-summary=Models;TemplatedFlow;true;template_returnParam0;(T *,T *);;Argument[*0];ReturnValue[*];value;dfc-generated T* template_returnParam0(T* input0, T* input1) { @@ -105,8 +105,8 @@ namespace Models { return tainted; } - //heuristic-summary=Models;TemplatedFlow;true;templated_function;(U *,T *);;Argument[0];ReturnValue;taint;df-generated - //heuristic-summary=Models;TemplatedFlow;true;templated_function;(U *,T *);;Argument[*0];ReturnValue[*];taint;df-generated + //heuristic-summary=Models;TemplatedFlow;true;templated_function;(U *,T *);;Argument[0];ReturnValue;value;df-generated + //heuristic-summary=Models;TemplatedFlow;true;templated_function;(U *,T *);;Argument[*0];ReturnValue[*];value;df-generated //contentbased-summary=Models;TemplatedFlow;true;templated_function;(U *,T *);;Argument[0];ReturnValue;value;dfc-generated //contentbased-summary=Models;TemplatedFlow;true;templated_function;(U *,T *);;Argument[*0];ReturnValue[*];value;dfc-generated template @@ -130,7 +130,7 @@ namespace Models { } //heuristic-summary=;;true;toplevel_function;(int *);;Argument[0];ReturnValue;taint;df-generated -//heuristic-summary=;;true;toplevel_function;(int *);;Argument[*0];ReturnValue;taint;df-generated +//heuristic-summary=;;true;toplevel_function;(int *);;Argument[*0];ReturnValue;value;df-generated //heuristic-summary=;;true;toplevel_function;(int *);;Argument[0];Argument[*0];taint;df-generated //contentbased-summary=;;true;toplevel_function;(int *);;Argument[0];Argument[*0];taint;dfc-generated //contentbased-summary=;;true;toplevel_function;(int *);;Argument[0];ReturnValue;taint;dfc-generated @@ -145,13 +145,13 @@ static int static_toplevel_function(int* p) { } struct NonFinalStruct { - //heuristic-summary=;NonFinalStruct;true;public_not_final_member_function;(int);;Argument[0];ReturnValue;taint;df-generated + //heuristic-summary=;NonFinalStruct;true;public_not_final_member_function;(int);;Argument[0];ReturnValue;value;df-generated //contentbased-summary=;NonFinalStruct;true;public_not_final_member_function;(int);;Argument[0];ReturnValue;value;dfc-generated virtual int public_not_final_member_function(int x) { return x; } - //heuristic-summary=;NonFinalStruct;false;public_final_member_function;(int);;Argument[0];ReturnValue;taint;df-generated + //heuristic-summary=;NonFinalStruct;false;public_final_member_function;(int);;Argument[0];ReturnValue;value;df-generated //contentbased-summary=;NonFinalStruct;false;public_final_member_function;(int);;Argument[0];ReturnValue;value;dfc-generated virtual int public_final_member_function(int x) final { return x; @@ -171,13 +171,13 @@ protected: }; struct FinalStruct final { - //heuristic-summary=;FinalStruct;false;public_not_final_member_function_2;(int);;Argument[0];ReturnValue;taint;df-generated + //heuristic-summary=;FinalStruct;false;public_not_final_member_function_2;(int);;Argument[0];ReturnValue;value;df-generated //contentbased-summary=;FinalStruct;false;public_not_final_member_function_2;(int);;Argument[0];ReturnValue;value;dfc-generated virtual int public_not_final_member_function_2(int x) { return x; } - //heuristic-summary=;FinalStruct;false;public_final_member_function_2;(int);;Argument[0];ReturnValue;taint;df-generated + //heuristic-summary=;FinalStruct;false;public_final_member_function_2;(int);;Argument[0];ReturnValue;value;df-generated //contentbased-summary=;FinalStruct;false;public_final_member_function_2;(int);;Argument[0];ReturnValue;value;dfc-generated virtual int public_final_member_function_2(int x) final { return x; @@ -211,7 +211,7 @@ struct HasInt { //contentbased-summary=;;true;copy_struct;(HasInt *,const HasInt *);;Argument[*1];Argument[*0];value;dfc-generated //heuristic-summary=;;true;copy_struct;(HasInt *,const HasInt *);;Argument[1];Argument[*0];taint;df-generated //heuristic-summary=;;true;copy_struct;(HasInt *,const HasInt *);;Argument[1];Argument[*1];taint;df-generated -//heuristic-summary=;;true;copy_struct;(HasInt *,const HasInt *);;Argument[*1];Argument[*0];taint;df-generated +//heuristic-summary=;;true;copy_struct;(HasInt *,const HasInt *);;Argument[*1];Argument[*0];value;df-generated int copy_struct(HasInt *out, const HasInt *in) { *out = *in; return 1; From 6285c2e502aa2930d2ffb4ad2bfd3488d099aa55 Mon Sep 17 00:00:00 2001 From: Aditya Sharad Date: Wed, 30 Apr 2025 16:24:22 -0700 Subject: [PATCH 180/656] Actions: Retroactively add GA changenote This was manually added in the docs site at the time of 2.21.1 release and GA. Include the change note in the relevant places so it remains in future docs updates: - codeql/actions-queries@0.5.4 - codeql/actions-all@0.4.7 - 2.21.1 changelog --- actions/ql/lib/CHANGELOG.md | 4 +++- actions/ql/lib/change-notes/released/0.4.7.md | 4 +++- actions/ql/src/CHANGELOG.md | 4 ++++ actions/ql/src/change-notes/released/0.5.4.md | 4 ++++ .../codeql-changelog/codeql-cli-2.21.1.rst | 13 +++++++++++++ 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 0adf75f4cc0..e16567daffd 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -4,7 +4,9 @@ No user-facing changes. ## 0.4.7 -No user-facing changes. +### New Features + +* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available. ## 0.4.6 diff --git a/actions/ql/lib/change-notes/released/0.4.7.md b/actions/ql/lib/change-notes/released/0.4.7.md index e9bb7a76bcb..90e0acec41c 100644 --- a/actions/ql/lib/change-notes/released/0.4.7.md +++ b/actions/ql/lib/change-notes/released/0.4.7.md @@ -1,3 +1,5 @@ ## 0.4.7 -No user-facing changes. +### New Features + +* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available. diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index 4faccf28ebd..73cc65ebe21 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -20,6 +20,10 @@ ## 0.5.4 +### New Features + +* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available. + ### Bug Fixes * Alerts produced by the query `actions/missing-workflow-permissions` now include a minimal set of recommended permissions in the alert message, based on well-known actions seen within the workflow file. diff --git a/actions/ql/src/change-notes/released/0.5.4.md b/actions/ql/src/change-notes/released/0.5.4.md index d34090f9955..a6174ef6d1d 100644 --- a/actions/ql/src/change-notes/released/0.5.4.md +++ b/actions/ql/src/change-notes/released/0.5.4.md @@ -1,5 +1,9 @@ ## 0.5.4 +### New Features + +* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available. + ### Bug Fixes * Alerts produced by the query `actions/missing-workflow-permissions` now include a minimal set of recommended permissions in the alert message, based on well-known actions seen within the workflow file. diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst index 1c28523b18f..2a8e20d84d1 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst @@ -37,6 +37,14 @@ Bug Fixes Query Packs ----------- +New Features +~~~~~~~~~~~~ + +GitHub Actions +"""""""""""""" + +* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available. + Bug Fixes ~~~~~~~~~ @@ -123,6 +131,11 @@ Ruby New Features ~~~~~~~~~~~~ +GitHub Actions +"""""""""""""" + +* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available. + C/C++ """"" From 36199b3f06253ba0a8a79af3a679c8d78a35d2dd Mon Sep 17 00:00:00 2001 From: Aditya Sharad Date: Wed, 30 Apr 2025 16:40:36 -0700 Subject: [PATCH 181/656] Docs: Fix escaping in 2.21.0 changelog These break when the RST is processed. Escape the backslashes and consistently add inline code blocks. --- .../codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst index 7d62123a49a..aa604d702e7 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst @@ -165,7 +165,7 @@ Java/Kotlin """"""""""" * Java extraction is now able to download Maven 3.9.x if a Maven Enforcer Plugin configuration indicates it is necessary. Maven 3.8.x is still preferred if the enforcer-plugin configuration (if any) permits it. -* Added a path injection sanitizer for calls to :code:`java.lang.String.matches`, :code:`java.lang.String.replace`, and :code:`java.lang.String.replaceAll` that make sure '/', '\', '..' are not in the path. +* Added a path injection sanitizer for calls to :code:`java.lang.String.matches`, :code:`java.lang.String.replace`, and :code:`java.lang.String.replaceAll` that make sure :code:`/`, :code:`\\`, :code:`..` are not in the path. JavaScript/TypeScript """"""""""""""""""""" @@ -207,5 +207,5 @@ JavaScript/TypeScript * Intersection :code:`&&` * Subtraction :code:`--` - * :code:`\q` quoted string + * :code:`\\q` quoted string From fc7520e9e7ce9ea7ae0d618b328969b72ef52cab Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Tue, 29 Apr 2025 13:55:58 +0200 Subject: [PATCH 182/656] Added change note --- .../ql/lib/change-notes/2025-04-29-combined-es6-func.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2025-04-29-combined-es6-func.md diff --git a/javascript/ql/lib/change-notes/2025-04-29-combined-es6-func.md b/javascript/ql/lib/change-notes/2025-04-29-combined-es6-func.md new file mode 100644 index 00000000000..2303d3d8c62 --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-04-29-combined-es6-func.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Improved analysis for `ES6 classes` mixed with `function prototypes`, leading to more accurate call graph resolution. From c0917434ebc01814f443836ea74da8da506feb55 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 30 Apr 2025 11:45:00 +0200 Subject: [PATCH 183/656] Removed code duplication --- .../lib/semmle/javascript/dataflow/Nodes.qll | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 22e8511509a..52547d5f590 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -1309,8 +1309,7 @@ module ClassNode { result = method.getBody().flow() ) or - // ES6 class property in constructor - astNode instanceof ClassDefinition and + // ES6 class property or Function-style class methods via constructor kind = MemberKind::method() and exists(ThisNode receiver | receiver = this.getConstructor().getReceiver() and @@ -1324,14 +1323,6 @@ module ClassNode { proto.hasPropertyWrite(name, result) ) or - // Function-style class methods via constructor - astNode instanceof Function and - kind = MemberKind::method() and - exists(ThisNode receiver | - receiver = this.getConstructor().getReceiver() and - receiver.hasPropertyWrite(name, result) - ) - or // Function-style class accessors astNode instanceof Function and exists(PropertyAccessor accessor | @@ -1351,8 +1342,7 @@ module ClassNode { result = method.getBody().flow() ) or - // ES6 class property in constructor - astNode instanceof ClassDefinition and + // ES6 class property or Function-style class methods via constructor kind = MemberKind::method() and exists(ThisNode receiver | receiver = this.getConstructor().getReceiver() and @@ -1366,14 +1356,6 @@ module ClassNode { result = proto.getAPropertySource() ) or - // Function-style class methods via constructor - astNode instanceof Function and - kind = MemberKind::method() and - exists(ThisNode receiver | - receiver = this.getConstructor().getReceiver() and - result = receiver.getAPropertySource() - ) - or // Function-style class accessors astNode instanceof Function and exists(PropertyAccessor accessor | From 7430d0e5e0b80fcdcc27ce2183aeec00554f2dd0 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 30 Apr 2025 19:55:42 +0200 Subject: [PATCH 184/656] Added failing test with method as field --- .../CallGraphs/AnnotatedTest/Test.expected | 2 ++ .../CallGraphs/AnnotatedTest/prototypes.js | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected index 0abd563b419..de49ab45590 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected @@ -2,6 +2,8 @@ spuriousCallee missingCallee | constructor-field.ts:40:5:40:14 | f3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | | constructor-field.ts:71:1:71:11 | bf3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | +| prototypes.js:117:5:117:19 | this.tmpClass() | prototypes.js:113:1:113:22 | functio ... ss() {} | -1 | calls | +| prototypes.js:131:5:131:23 | this.tmpPrototype() | prototypes.js:127:1:127:26 | functio ... pe() {} | -1 | calls | badAnnotation accessorCall | accessors.js:12:1:12:5 | obj.f | accessors.js:5:8:5:12 | () {} | diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js index 2556e07a279..815a9e7f1e7 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/prototypes.js @@ -107,3 +107,36 @@ class Derived2 {} Derived2.prototype = Object.create(Base.prototype); /** name:Derived2.read */ Derived2.prototype.read = function() {}; + + +/** name:BanClass.tmpClass */ +function tmpClass() {} + +function callerClass() { + /** calls:BanClass.tmpClass */ + this.tmpClass(); +} +class BanClass { + constructor() { + this.tmpClass = tmpClass; + this.callerClass = callerClass; + } +} + +/** name:BanProtytpe.tmpPrototype */ +function tmpPrototype() {} + +function callerPrototype() { + /** calls:BanProtytpe.tmpPrototype */ + this.tmpPrototype(); +} + +function BanProtytpe() { + this.tmpPrototype = tmpPrototype; + this.callerPrototype = callerPrototype; +} + +function banInstantiation(){ + const instance = new BanProtytpe(); + instance.callerPrototype(); +} From 9bab59363c1a5ba1f0efad4ca402e0b977b95532 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 1 May 2025 08:15:26 +0200 Subject: [PATCH 185/656] Fix class instance method detection in constructor receiver --- javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll | 6 ++++++ .../library-tests/CallGraphs/AnnotatedTest/Test.expected | 2 -- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 52547d5f590..646d9c798cc 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -1330,6 +1330,9 @@ module ClassNode { accessor.getName() = name and result = accessor.getInit().flow() ) + or + kind = MemberKind::method() and + result = this.getConstructor().getReceiver().getAPropertySource(name) } override FunctionNode getAnInstanceMember(MemberKind kind) { @@ -1362,6 +1365,9 @@ module ClassNode { accessor = this.getAnAccessor(kind) and result = accessor.getInit().flow() ) + or + kind = MemberKind::method() and + result = this.getConstructor().getReceiver().getAPropertySource() } override FunctionNode getStaticMember(string name, MemberKind kind) { diff --git a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected index de49ab45590..0abd563b419 100644 --- a/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected +++ b/javascript/ql/test/library-tests/CallGraphs/AnnotatedTest/Test.expected @@ -2,8 +2,6 @@ spuriousCallee missingCallee | constructor-field.ts:40:5:40:14 | f3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | | constructor-field.ts:71:1:71:11 | bf3.build() | constructor-field.ts:13:3:13:12 | build() {} | -1 | calls | -| prototypes.js:117:5:117:19 | this.tmpClass() | prototypes.js:113:1:113:22 | functio ... ss() {} | -1 | calls | -| prototypes.js:131:5:131:23 | this.tmpPrototype() | prototypes.js:127:1:127:26 | functio ... pe() {} | -1 | calls | badAnnotation accessorCall | accessors.js:12:1:12:5 | obj.f | accessors.js:5:8:5:12 | () {} | From 499d224c2b1c85d0fcf083625c23c2495d44c244 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 1 May 2025 10:11:10 +0200 Subject: [PATCH 186/656] Rust: Update generated models for core and std --- .../frameworks/stdlib/lang-alloc.model.yml | 1 + .../ext/generated/rust/lang-alloc.model.yml | 320 +++- .../ext/generated/rust/lang-core.model.yml | 1346 ++++++++--------- .../generated/rust/lang-proc_macro.model.yml | 46 +- .../lib/ext/generated/rust/lang-std.model.yml | 399 ++++- .../dataflow/local/DataFlowStep.expected | 235 +-- .../dataflow/modeled/inline-flow.expected | 16 +- 7 files changed, 1368 insertions(+), 995 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-alloc.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-alloc.model.yml index effb389aecc..8d177c4e856 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-alloc.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-alloc.model.yml @@ -37,3 +37,4 @@ extensions: - ["lang:alloc", "<_ as crate::string::ToString>::to_string", "Argument[self]", "ReturnValue", "taint", "manual"] - ["lang:alloc", "::parse", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"] - ["lang:alloc", "::trim", "Argument[self]", "ReturnValue.Reference", "taint", "manual"] + - ["lang:alloc", "::from", "Argument[0]", "ReturnValue", "value", "manual"] diff --git a/rust/ql/lib/ext/generated/rust/lang-alloc.model.yml b/rust/ql/lib/ext/generated/rust/lang-alloc.model.yml index 7cd8a602f24..2b91ef42107 100644 --- a/rust/ql/lib/ext/generated/rust/lang-alloc.model.yml +++ b/rust/ql/lib/ext/generated/rust/lang-alloc.model.yml @@ -5,15 +5,22 @@ extensions: extensible: summaryModel data: - ["lang:alloc", "<&&str as crate::string::SpecToString>::spec_to_string", "Argument[self].Reference.Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "<&crate::string::String as crate::str::pattern::Pattern>::into_searcher", "Argument[0]", "ReturnValue.Field[crate::str::pattern::StrSearcher::haystack]", "value", "dfc-generated"] - - ["lang:alloc", "<&crate::string::String as crate::str::pattern::Pattern>::into_searcher", "Argument[self].Element", "ReturnValue.Field[crate::str::pattern::StrSearcher::needle]", "value", "dfc-generated"] - - ["lang:alloc", "<&str as crate::string::SpecToString>::spec_to_string", "Argument[self].Reference.Field[crate::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "<&crate::string::String as crate::str::pattern::Pattern>::as_utf8_pattern", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::str::pattern::Utf8Pattern::StringPattern(0)]", "value", "dfc-generated"] + - ["lang:alloc", "<&str as crate::string::SpecToString>::spec_to_string", "Argument[self].Reference.Field[crate::string::String::vec]", "ReturnValue.Field[crate::string::String::vec]", "value", "dfc-generated"] + - ["lang:alloc", "<&str as crate::string::SpecToString>::spec_to_string", "Argument[self].Reference.Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "<&str as crate::string::SpecToString>::spec_to_string", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "<_ as crate::borrow::ToOwned>::clone_into", "Argument[self].Reference", "Argument[0].Reference", "value", "dfc-generated"] - ["lang:alloc", "<_ as crate::borrow::ToOwned>::clone_into", "Argument[self]", "Argument[0].Reference", "value", "dfc-generated"] + - ["lang:alloc", "<_ as crate::borrow::ToOwned>::to_owned", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "<_ as crate::borrow::ToOwned>::to_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "<_ as crate::vec::spec_from_elem::SpecFromElem>::from_elem", "Argument[1]", "ReturnValue.Field[crate::vec::Vec::len]", "value", "dfc-generated"] - ["lang:alloc", "::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::clone", "Argument[self].Reference.Field[crate::borrow::Cow::Borrowed(0)]", "ReturnValue.Field[crate::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - ["lang:alloc", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::from", "Argument[0].Reference", "ReturnValue.Field[crate::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] + - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Field[crate::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Field[crate::borrow::Cow::Owned(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::add_assign", "Argument[0]", "Argument[self].Reference.Field[crate::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - ["lang:alloc", "::add_assign", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] - ["lang:alloc", "::deref", "Argument[self].Reference.Field[crate::borrow::Cow::Borrowed(0)]", "ReturnValue", "value", "dfc-generated"] @@ -21,8 +28,8 @@ extensions: - ["lang:alloc", "::to_mut", "Argument[self].Reference.Field[crate::borrow::Cow::Owned(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::borrow_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - ["lang:alloc", "::clone_from", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] - - ["lang:alloc", "::clone_from", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:alloc", "::as_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::try_from", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] @@ -31,6 +38,7 @@ extensions: - ["lang:alloc", "::deref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::deref_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::allocator", "Argument[0].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::allocator", "Argument[0].Field[crate::boxed::Box(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_mut_ptr", "Argument[0].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_ptr", "Argument[0].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::downcast", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] @@ -40,95 +48,293 @@ extensions: - ["lang:alloc", "::into_pin", "Argument[0]", "ReturnValue.Field[crate::pin::Pin::__pointer]", "value", "dfc-generated"] - ["lang:alloc", "::new_uninit_in", "Argument[0]", "ReturnValue.Field[crate::boxed::Box(1)]", "value", "dfc-generated"] - ["lang:alloc", "::new_zeroed_in", "Argument[0]", "ReturnValue.Field[crate::boxed::Box(1)]", "value", "dfc-generated"] - - ["lang:alloc", "::try_new_in", "Argument[1]", "ReturnValue.Field[crate::boxed::Box(1)]", "value", "dfc-generated"] - ["lang:alloc", "::try_new_uninit_in", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::boxed::Box(1)]", "value", "dfc-generated"] - ["lang:alloc", "::try_new_zeroed_in", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::boxed::Box(1)]", "value", "dfc-generated"] - ["lang:alloc", "::borrow", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::borrow", "Argument[self].Field[crate::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::borrow_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::borrow_mut", "Argument[self].Field[crate::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::as_mut", "Argument[self].Field[crate::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::as_ref", "Argument[self].Field[crate::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::deref", "Argument[self].Field[crate::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::deref_mut", "Argument[self].Field[crate::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::index", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::index", "Argument[self].Field[crate::bstr::ByteString(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::index_mut", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::index_mut", "Argument[self].Field[crate::bstr::ByteString(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_bytes", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::as_bytes", "Argument[self].Field[crate::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Field[crate::collections::TryReserveError::kind]", "value", "dfc-generated"] + - ["lang:alloc", "::kind", "Argument[self].Field[crate::collections::TryReserveError::kind].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::kind", "Argument[self].Field[crate::collections::TryReserveError::kind]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::kind", "Argument[self].Field[crate::collections::TryReserveError::kind]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::binary_heap::BinaryHeap::data].Reference", "ReturnValue.Field[crate::collections::binary_heap::BinaryHeap::data]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::binary_heap::BinaryHeap::data]", "ReturnValue.Field[crate::collections::binary_heap::BinaryHeap::data]", "value", "dfc-generated"] + - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Field[crate::collections::binary_heap::BinaryHeap::data]", "value", "dfc-generated"] - ["lang:alloc", "::drain_sorted", "Argument[self]", "ReturnValue.Field[crate::collections::binary_heap::DrainSorted::inner]", "value", "dfc-generated"] - ["lang:alloc", "::into_iter_sorted", "Argument[self]", "ReturnValue.Field[crate::collections::binary_heap::IntoIterSorted::inner]", "value", "dfc-generated"] - ["lang:alloc", "::peek_mut", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::collections::binary_heap::PeekMut::heap]", "value", "dfc-generated"] - ["lang:alloc", "::as_inner", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::as_into_iter", "Argument[self].Field[crate::collections::binary_heap::IntoIter::iter]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::next", "Argument[self].Field[crate::collections::binary_heap::Iter::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[crate::collections::btree::dedup_sorted_iter::DedupSortedIter::iter].Field[crate::iter::adapters::peekable::Peekable::iter]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc].Reference", "ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Field[crate::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] - ["lang:alloc", "::bulk_build_from_sorted_iter", "Argument[1]", "ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Field[crate::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] - ["lang:alloc", "::entry", "Argument[0]", "ReturnValue.Field[crate::collections::btree::map::entry::Entry::Vacant(0)].Field[crate::collections::btree::map::entry::VacantEntry::key]", "value", "dfc-generated"] - ["lang:alloc", "::extract_if", "Argument[0]", "ReturnValue.Field[crate::collections::btree::map::ExtractIf::pred]", "value", "dfc-generated"] + - ["lang:alloc", "::extract_if_inner", "Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc].Reference", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["lang:alloc", "::get_or_insert_with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["lang:alloc", "::iter", "Argument[self].Field[crate::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[crate::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["lang:alloc", "::iter_mut", "Argument[self].Field[crate::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[crate::collections::btree::map::IterMut::length]", "value", "dfc-generated"] + - ["lang:alloc", "::len", "Argument[self].Field[crate::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::lower_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::lower_bound_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::new_in", "Argument[0]", "ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Field[crate::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] + - ["lang:alloc", "::split_off", "Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc].Reference", "ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::split_off", "Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc]", "ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Reference", "value", "dfc-generated"] + - ["lang:alloc", "::split_off", "Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc]", "ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::try_insert", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::collections::btree::map::entry::OccupiedError::value]", "value", "dfc-generated"] + - ["lang:alloc", "::upper_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::upper_bound_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::clone", "Argument[self].Reference.Field[crate::collections::btree::map::Cursor::current]", "ReturnValue.Field[crate::collections::btree::map::Cursor::current]", "value", "dfc-generated"] - ["lang:alloc", "::clone", "Argument[self].Reference.Field[crate::collections::btree::map::Cursor::root]", "ReturnValue.Field[crate::collections::btree::map::Cursor::root]", "value", "dfc-generated"] + - ["lang:alloc", "::next", "Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::next", "Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::peek_next", "Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::peek_next", "Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::peek_prev", "Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::peek_prev", "Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::prev", "Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::prev", "Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::with_mutable_key", "Argument[self].Field[crate::collections::btree::map::CursorMut::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::next", "Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::next", "Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::prev", "Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::prev", "Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::remove_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::remove_prev", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::next", "Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::next", "Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::ExtractIfInner::length].Reference", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::len", "Argument[self].Field[crate::collections::btree::map::IntoIter::length]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::IntoIter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::IntoIter::length]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::iter", "Argument[self].Field[crate::collections::btree::map::IntoIter::length]", "ReturnValue.Field[crate::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::btree::map::Iter::length]", "ReturnValue.Field[crate::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::btree::map::Iter::range].Reference", "ReturnValue.Field[crate::collections::btree::map::Iter::range]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::btree::map::Iter::range]", "ReturnValue.Field[crate::collections::btree::map::Iter::range]", "value", "dfc-generated"] + - ["lang:alloc", "::len", "Argument[self].Field[crate::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::Iter::length]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::len", "Argument[self].Field[crate::collections::btree::map::IterMut::length]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::IterMut::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::IterMut::length]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::iter", "Argument[self].Field[crate::collections::btree::map::IterMut::length]", "ReturnValue.Field[crate::collections::btree::map::Iter::length]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::len", "Argument[self].Field[crate::collections::btree::map::Keys::inner].Field[crate::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::Keys::inner].Field[crate::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::Keys::inner].Field[crate::collections::btree::map::Iter::length]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::btree::map::Range::inner].Reference", "ReturnValue.Field[crate::collections::btree::map::Range::inner]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::btree::map::Range::inner]", "ReturnValue.Field[crate::collections::btree::map::Range::inner]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::len", "Argument[self].Field[crate::collections::btree::map::Values::inner].Field[crate::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::Values::inner].Field[crate::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::Values::inner].Field[crate::collections::btree::map::Iter::length]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::len", "Argument[self].Field[crate::collections::btree::map::ValuesMut::inner].Field[crate::collections::btree::map::IterMut::length]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::ValuesMut::inner].Field[crate::collections::btree::map::IterMut::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::btree::map::ValuesMut::inner].Field[crate::collections::btree::map::IterMut::length]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::and_modify", "Argument[self].Field[crate::collections::btree::map::entry::Entry::Occupied(0)]", "ReturnValue.Field[crate::collections::btree::map::entry::Entry::Occupied(0)]", "value", "dfc-generated"] - ["lang:alloc", "::and_modify", "Argument[self].Field[crate::collections::btree::map::entry::Entry::Vacant(0)]", "ReturnValue.Field[crate::collections::btree::map::entry::Entry::Vacant(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::insert_entry", "Argument[self].Field[crate::collections::btree::map::entry::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::insert_entry", "Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::alloc]", "ReturnValue.Field[crate::collections::btree::map::entry::OccupiedEntry::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::insert_entry", "Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::dormant_map]", "ReturnValue.Field[crate::collections::btree::map::entry::OccupiedEntry::dormant_map]", "value", "dfc-generated"] + - ["lang:alloc", "::into_key", "Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::key]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::key", "Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::key]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[crate::collections::btree::merge_iter::MergeIterInner::a]", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[1]", "ReturnValue.Field[crate::collections::btree::merge_iter::MergeIterInner::b]", "value", "dfc-generated"] + - ["lang:alloc", "::nexts", "Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::a].Element", "ReturnValue.Field[0].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::nexts", "Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::b].Element", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Edge(0)].Reference", "ReturnValue.Field[crate::collections::btree::navigate::LazyLeafHandle::Edge(0)]", "value", "dfc-generated"] - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Root(0)].Reference", "ReturnValue.Field[crate::collections::btree::navigate::LazyLeafHandle::Root(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::into_left_child", "Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::into_right_child", "Argument[self].Field[crate::collections::btree::node::BalancingContext::right_child]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::merge_tracking_child", "Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::merge_tracking_child_edge", "Argument[0].Field[crate::collections::btree::node::LeftOrRight::Left(0)]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::steal_left", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::merge_tracking_child_edge", "Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["lang:alloc", "::merge_tracking_parent", "Argument[self].Field[crate::collections::btree::node::BalancingContext::parent].Field[crate::collections::btree::node::Handle::node]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::steal_left", "Argument[self].Field[crate::collections::btree::node::BalancingContext::right_child]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::steal_right", "Argument[0]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::steal_right", "Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::awaken", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::cast_to_leaf_unchecked", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["lang:alloc", "::consider_for_balancing", "Argument[self]", "ReturnValue.Field[crate::collections::btree::node::BalancingContext::parent]", "value", "dfc-generated"] + - ["lang:alloc", "::descend", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::dormant", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::force", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue.Field[crate::collections::btree::node::ForceResult::Internal(0)].Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::force", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue.Field[crate::collections::btree::node::ForceResult::Leaf(0)].Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::forget_node_type", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::idx", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::into_node", "Argument[self].Field[crate::collections::btree::node::Handle::node]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::left_edge", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::left_edge", "Argument[self].Field[crate::collections::btree::node::Handle::node]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["lang:alloc", "::left_kv", "Argument[self].Field[crate::collections::btree::node::Handle::node]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::left_kv", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:alloc", "::new_edge", "Argument[0]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::new_edge", "Argument[1]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - ["lang:alloc", "::new_kv", "Argument[0]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::new_kv", "Argument[1]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::reborrow", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::reborrow", "Argument[self].Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::reborrow", "Argument[self].Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["lang:alloc", "::reborrow_mut", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue.Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::right_edge", "Argument[self].Field[crate::collections::btree::node::Handle::node]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["lang:alloc", "::right_kv", "Argument[self].Field[crate::collections::btree::node::Handle::idx]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["lang:alloc", "::right_kv", "Argument[self].Field[crate::collections::btree::node::Handle::node]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::right_kv", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::split", "Argument[self].Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::SplitResult::right].Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::split", "Argument[self].Field[crate::collections::btree::node::Handle::node]", "ReturnValue.Field[crate::collections::btree::node::SplitResult::left]", "value", "dfc-generated"] - ["lang:alloc", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::ascend", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::awaken", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::awaken", "Argument[self].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["lang:alloc", "::borrow_mut", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::borrow_mut", "Argument[self].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["lang:alloc", "::borrow_valmut", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::borrow_valmut", "Argument[self].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["lang:alloc", "::calc_split_length", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::choose_parent_kv", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::cast_to_leaf_unchecked", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::cast_to_leaf_unchecked", "Argument[self].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["lang:alloc", "::dormant", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::dormant", "Argument[self].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["lang:alloc", "::find_lower_bound_edge", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["lang:alloc", "::find_lower_bound_edge", "Argument[self]", "ReturnValue.Field[0].Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::find_upper_bound_edge", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["lang:alloc", "::find_upper_bound_edge", "Argument[self]", "ReturnValue.Field[0].Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::first_edge", "Argument[self]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::first_kv", "Argument[self]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["lang:alloc", "::force", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::forget_type", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::forget_type", "Argument[self].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["lang:alloc", "::height", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::into_dying", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::into_dying", "Argument[self].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["lang:alloc", "::last_edge", "Argument[self]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::last_kv", "Argument[self]", "ReturnValue.Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["lang:alloc", "::push_internal_level", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::push_internal_level", "Argument[self].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["lang:alloc", "::push_with_handle", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::push_with_handle", "Argument[self].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] + - ["lang:alloc", "::reborrow", "Argument[self].Field[crate::collections::btree::node::NodeRef::height]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] + - ["lang:alloc", "::reborrow", "Argument[self].Field[crate::collections::btree::node::NodeRef::node]", "ReturnValue.Field[crate::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - ["lang:alloc", "::search_node", "Argument[self]", "ReturnValue.Field[crate::collections::btree::search::SearchResult::Found(0)].Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::search_node", "Argument[self]", "ReturnValue.Field[crate::collections::btree::search::SearchResult::GoDown(0)].Field[crate::collections::btree::node::Handle::node]", "value", "dfc-generated"] - ["lang:alloc", "::search_tree_for_bifurcation", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] - ["lang:alloc", "::visit_nodes_in_order", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::forget_node_type", "Argument[self].Field[crate::collections::btree::node::SplitResult::kv]", "ReturnValue.Field[crate::collections::btree::node::SplitResult::kv]", "value", "dfc-generated"] + - ["lang:alloc", "::from_range", "Argument[0].Field[crate::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[crate::collections::btree::search::SearchBound::Excluded(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::from_range", "Argument[0].Field[crate::ops::range::Bound::Included(0)]", "ReturnValue.Field[crate::collections::btree::search::SearchBound::Included(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::btree::set::BTreeSet::map].Reference", "ReturnValue.Field[crate::collections::btree::set::BTreeSet::map]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::collections::btree::set::BTreeSet::map]", "ReturnValue.Field[crate::collections::btree::set::BTreeSet::map]", "value", "dfc-generated"] + - ["lang:alloc", "::clone_from", "Argument[0].Field[crate::collections::btree::set::BTreeSet::map]", "Argument[self].Field[crate::collections::btree::set::BTreeSet::map].Reference", "value", "dfc-generated"] + - ["lang:alloc", "::clone_from", "Argument[0].Field[crate::collections::btree::set::BTreeSet::map]", "Argument[self].Field[crate::collections::btree::set::BTreeSet::map]", "value", "dfc-generated"] - ["lang:alloc", "::difference", "Argument[0]", "ReturnValue.Field[crate::collections::btree::set::Difference::inner].Field[crate::collections::btree::set::DifferenceInner::Search::other_set]", "value", "dfc-generated"] - ["lang:alloc", "::extract_if", "Argument[0]", "ReturnValue.Field[crate::collections::btree::set::ExtractIf::pred]", "value", "dfc-generated"] - - ["lang:alloc", "::get_or_insert_with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:alloc", "::intersection", "Argument[0]", "ReturnValue.Field[crate::collections::btree::set::Intersection::inner].Field[crate::collections::btree::set::IntersectionInner::Search::large_set]", "value", "dfc-generated"] - ["lang:alloc", "::intersection", "Argument[self]", "ReturnValue.Field[crate::collections::btree::set::Intersection::inner].Field[crate::collections::btree::set::IntersectionInner::Search::large_set]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::collections::btree::set::SymmetricDifference(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::collections::btree::set::Union(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::with_mutable_key", "Argument[self].Field[crate::collections::btree::set::CursorMut::inner].Field[crate::collections::btree::map::CursorMut::inner]", "ReturnValue.Field[crate::collections::btree::set::CursorMutKey::inner]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::insert", "Argument[self].Field[crate::collections::btree::set::entry::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::clone", "Argument[self].Reference.Field[crate::collections::linked_list::Cursor::current]", "ReturnValue.Field[crate::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - ["lang:alloc", "::clone", "Argument[self].Reference.Field[crate::collections::linked_list::Cursor::index]", "ReturnValue.Field[crate::collections::linked_list::Cursor::index]", "value", "dfc-generated"] - ["lang:alloc", "::clone", "Argument[self].Reference.Field[crate::collections::linked_list::Cursor::list]", "ReturnValue.Field[crate::collections::linked_list::Cursor::list]", "value", "dfc-generated"] + - ["lang:alloc", "::as_list", "Argument[self].Field[crate::collections::linked_list::Cursor::list]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::index", "Argument[self].Field[crate::collections::linked_list::Cursor::current].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::index", "Argument[self].Field[crate::collections::linked_list::Cursor::current].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::index", "Argument[self].Field[crate::collections::linked_list::Cursor::index]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::move_next", "Argument[self].Field[crate::collections::linked_list::Cursor::list].Field[crate::collections::linked_list::LinkedList::head]", "Argument[self].Field[crate::collections::linked_list::Cursor::current]", "value", "dfc-generated"] + - ["lang:alloc", "::move_prev", "Argument[self].Field[crate::collections::linked_list::Cursor::list].Field[crate::collections::linked_list::LinkedList::tail]", "Argument[self].Field[crate::collections::linked_list::Cursor::current]", "value", "dfc-generated"] + - ["lang:alloc", "::as_cursor", "Argument[self].Field[crate::collections::linked_list::CursorMut::current]", "ReturnValue.Field[crate::collections::linked_list::Cursor::current]", "value", "dfc-generated"] + - ["lang:alloc", "::as_cursor", "Argument[self].Field[crate::collections::linked_list::CursorMut::index]", "ReturnValue.Field[crate::collections::linked_list::Cursor::index]", "value", "dfc-generated"] + - ["lang:alloc", "::as_cursor", "Argument[self].Field[crate::collections::linked_list::CursorMut::list]", "ReturnValue.Field[crate::collections::linked_list::Cursor::list]", "value", "dfc-generated"] + - ["lang:alloc", "::as_list", "Argument[self].Field[crate::collections::linked_list::CursorMut::list]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::index", "Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::index", "Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::index", "Argument[self].Field[crate::collections::linked_list::CursorMut::index]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::insert_after", "Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::len]", "Argument[self].Field[crate::collections::linked_list::CursorMut::index]", "value", "dfc-generated"] + - ["lang:alloc", "::move_next", "Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::head]", "Argument[self].Field[crate::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] + - ["lang:alloc", "::move_prev", "Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::tail]", "Argument[self].Field[crate::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] + - ["lang:alloc", "::remove_current", "Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::remove_current", "Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::remove_current_as_list", "Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::remove_current_as_list", "Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::remove_current_as_list", "Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::alloc]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::splice_after", "Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::len]", "Argument[self].Field[crate::collections::linked_list::CursorMut::index]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::linked_list::IntoIter::list].Field[crate::collections::linked_list::LinkedList::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::linked_list::IntoIter::list].Field[crate::collections::linked_list::LinkedList::len]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::linked_list::Iter::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::linked_list::Iter::len]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::linked_list::IterMut::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::linked_list::IterMut::len]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::spec_extend", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:alloc", "::append", "Argument[0].Field[crate::collections::linked_list::LinkedList::tail].Reference", "Argument[self].Field[crate::collections::linked_list::LinkedList::tail]", "value", "dfc-generated"] + - ["lang:alloc", "::append", "Argument[0].Field[crate::collections::linked_list::LinkedList::tail]", "Argument[self].Field[crate::collections::linked_list::LinkedList::tail]", "value", "dfc-generated"] + - ["lang:alloc", "::cursor_back", "Argument[self].Field[crate::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[crate::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - ["lang:alloc", "::cursor_back", "Argument[self]", "ReturnValue.Field[crate::collections::linked_list::Cursor::list]", "value", "dfc-generated"] + - ["lang:alloc", "::cursor_back_mut", "Argument[self].Field[crate::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[crate::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] - ["lang:alloc", "::cursor_back_mut", "Argument[self]", "ReturnValue.Field[crate::collections::linked_list::CursorMut::list]", "value", "dfc-generated"] + - ["lang:alloc", "::cursor_front", "Argument[self].Field[crate::collections::linked_list::LinkedList::head]", "ReturnValue.Field[crate::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - ["lang:alloc", "::cursor_front", "Argument[self]", "ReturnValue.Field[crate::collections::linked_list::Cursor::list]", "value", "dfc-generated"] + - ["lang:alloc", "::cursor_front_mut", "Argument[self].Field[crate::collections::linked_list::LinkedList::head]", "ReturnValue.Field[crate::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] - ["lang:alloc", "::cursor_front_mut", "Argument[self]", "ReturnValue.Field[crate::collections::linked_list::CursorMut::list]", "value", "dfc-generated"] - ["lang:alloc", "::extract_if", "Argument[0]", "ReturnValue.Field[crate::collections::linked_list::ExtractIf::pred]", "value", "dfc-generated"] + - ["lang:alloc", "::extract_if", "Argument[self].Field[crate::collections::linked_list::LinkedList::head]", "ReturnValue.Field[crate::collections::linked_list::ExtractIf::it]", "value", "dfc-generated"] + - ["lang:alloc", "::extract_if", "Argument[self].Field[crate::collections::linked_list::LinkedList::len]", "ReturnValue.Field[crate::collections::linked_list::ExtractIf::old_len]", "value", "dfc-generated"] - ["lang:alloc", "::extract_if", "Argument[self]", "ReturnValue.Field[crate::collections::linked_list::ExtractIf::list]", "value", "dfc-generated"] + - ["lang:alloc", "::iter", "Argument[self].Field[crate::collections::linked_list::LinkedList::head]", "ReturnValue.Field[crate::collections::linked_list::Iter::head]", "value", "dfc-generated"] + - ["lang:alloc", "::iter", "Argument[self].Field[crate::collections::linked_list::LinkedList::len]", "ReturnValue.Field[crate::collections::linked_list::Iter::len]", "value", "dfc-generated"] + - ["lang:alloc", "::iter", "Argument[self].Field[crate::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[crate::collections::linked_list::Iter::tail]", "value", "dfc-generated"] + - ["lang:alloc", "::iter_mut", "Argument[self].Field[crate::collections::linked_list::LinkedList::head]", "ReturnValue.Field[crate::collections::linked_list::IterMut::head]", "value", "dfc-generated"] + - ["lang:alloc", "::iter_mut", "Argument[self].Field[crate::collections::linked_list::LinkedList::len]", "ReturnValue.Field[crate::collections::linked_list::IterMut::len]", "value", "dfc-generated"] + - ["lang:alloc", "::iter_mut", "Argument[self].Field[crate::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[crate::collections::linked_list::IterMut::tail]", "value", "dfc-generated"] + - ["lang:alloc", "::len", "Argument[self].Field[crate::collections::linked_list::LinkedList::len]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::new_in", "Argument[0]", "ReturnValue.Field[crate::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::split_off", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::into_iter", "Argument[self]", "ReturnValue.Field[crate::collections::vec_deque::into_iter::IntoIter::inner]", "value", "dfc-generated"] + - ["lang:alloc", "::split_off", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::drain", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::retain", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] + - ["lang:alloc", "::from_contiguous_raw_parts_in", "Argument[1].Field[crate::ops::range::Range::start]", "ReturnValue.Field[crate::collections::vec_deque::VecDeque::head]", "value", "dfc-generated"] + - ["lang:alloc", "::len", "Argument[self].Field[crate::collections::vec_deque::VecDeque::len]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::retain_mut", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] + - ["lang:alloc", "::split_off", "Argument[0]", "Argument[self].Field[crate::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] + - ["lang:alloc", "::truncate", "Argument[0]", "Argument[self].Field[crate::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::vec_deque::drain::Drain::remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:alloc", "::size_hint", "Argument[self].Field[crate::collections::vec_deque::drain::Drain::remaining]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::new", "Argument[1]", "Argument[0].Field[crate::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[1]", "ReturnValue.Field[crate::collections::vec_deque::drain::Drain::idx]", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[2]", "ReturnValue.Field[crate::collections::vec_deque::drain::Drain::drain_len]", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[2]", "ReturnValue.Field[crate::collections::vec_deque::drain::Drain::remaining]", "value", "dfc-generated"] + - ["lang:alloc", "::count", "Argument[self].Field[crate::collections::vec_deque::into_iter::IntoIter::inner].Field[crate::collections::vec_deque::VecDeque::len]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::fold", "Argument[0].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::into_vecdeque", "Argument[self].Field[crate::collections::vec_deque::into_iter::IntoIter::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[crate::collections::vec_deque::into_iter::IntoIter::inner]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::try_rfold", "Argument[0].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::try_rfold", "Argument[0].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::next", "Argument[self].Field[crate::collections::vec_deque::iter::Iter::i1].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:alloc", "::try_fold", "Argument[0].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::try_fold", "Argument[0].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[crate::collections::vec_deque::iter::Iter::i1]", "value", "dfc-generated"] @@ -141,15 +347,21 @@ extensions: - ["lang:alloc", "::try_fold", "Argument[0].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[crate::collections::vec_deque::iter_mut::IterMut::i1]", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[1]", "ReturnValue.Field[crate::collections::vec_deque::iter_mut::IterMut::i2]", "value", "dfc-generated"] - - ["lang:alloc", "::into_c_string", "Argument[self].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::as_bytes_with_nul", "Argument[self].Field[crate::ffi::c_str::CString::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_c_str", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::from_vec_with_nul", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::ffi::c_str::FromVecWithNulError::bytes]", "value", "dfc-generated"] + - ["lang:alloc", "::as_bytes", "Argument[self].Field[crate::ffi::c_str::FromVecWithNulError::bytes].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::into_bytes", "Argument[self].Field[crate::ffi::c_str::FromVecWithNulError::bytes]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::source", "Argument[self].Field[crate::ffi::c_str::IntoStringError::error]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:alloc", "::into_cstring", "Argument[self].Field[crate::ffi::c_str::IntoStringError::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::utf8_error", "Argument[self].Field[crate::ffi::c_str::IntoStringError::error]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::into_vec", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::into_vec", "Argument[self].Field[crate::ffi::c_str::NulError(1)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::nul_position", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::nul_position", "Argument[self].Field[crate::ffi::c_str::NulError(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::spec_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Field[crate::pin::Pin::__pointer]", "value", "dfc-generated"] - ["lang:alloc", "::from_nonnull_in", "Argument[2]", "ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] @@ -160,8 +372,11 @@ extensions: - ["lang:alloc", "::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::try_from", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::allocator", "Argument[0].Field[crate::rc::Rc::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::downcast", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::from_raw_in", "Argument[1]", "ReturnValue.Field[crate::rc::Rc::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::downgrade", "Argument[0].Field[crate::rc::Rc::alloc].Reference", "ReturnValue.Field[crate::rc::Weak::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::downgrade", "Argument[0].Field[crate::rc::Rc::alloc]", "ReturnValue.Field[crate::rc::Weak::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::downgrade", "Argument[0].Field[crate::rc::Rc::ptr]", "ReturnValue.Field[crate::rc::Weak::ptr]", "value", "dfc-generated"] - ["lang:alloc", "::new_uninit_in", "Argument[0]", "ReturnValue.Field[crate::rc::Rc::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::new_uninit_slice_in", "Argument[1]", "ReturnValue.Field[crate::rc::Rc::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::new_zeroed_in", "Argument[0]", "ReturnValue.Field[crate::rc::Rc::alloc]", "value", "dfc-generated"] @@ -169,42 +384,54 @@ extensions: - ["lang:alloc", "::try_new_uninit_in", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::rc::Rc::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::try_new_zeroed_in", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::rc::Rc::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::try_unwrap", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::unwrap_or_clone", "Argument[0].Reference.Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::unwrap_or_clone", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::strong_ref", "Argument[self].Field[crate::rc::RcInner::strong]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::weak_ref", "Argument[self].Field[crate::rc::RcInner::weak]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::borrow_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::from_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::downgrade", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::allocator", "Argument[self].Field[crate::rc::Weak::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::from_raw_in", "Argument[1]", "ReturnValue.Field[crate::rc::Weak::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::new_in", "Argument[0]", "ReturnValue.Field[crate::rc::Weak::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::upgrade", "Argument[self].Field[crate::rc::Weak::alloc].Reference", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::rc::Rc::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::upgrade", "Argument[self].Field[crate::rc::Weak::alloc]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::rc::Rc::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::upgrade", "Argument[self].Field[crate::rc::Weak::ptr]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::rc::Rc::ptr]", "value", "dfc-generated"] + - ["lang:alloc", "::strong_ref", "Argument[self].Field[crate::rc::WeakInner::strong]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::weak_ref", "Argument[self].Field[crate::rc::WeakInner::weak]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::as_bytes", "Argument[self].Field[crate::string::FromUtf8Error::bytes].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::into_bytes", "Argument[self].Field[crate::string::FromUtf8Error::bytes]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::utf8_error", "Argument[self].Field[crate::string::FromUtf8Error::error]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::into_string", "Argument[self].Field[crate::string::IntoChars::bytes].Element", "ReturnValue.Field[crate::string::String::vec].Element", "value", "dfc-generated"] - ["lang:alloc", "::borrow", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::borrow_mut", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::string::String::vec].Reference", "ReturnValue.Field[crate::string::String::vec]", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self].Field[crate::string::String::vec]", "ReturnValue.Field[crate::string::String::vec]", "value", "dfc-generated"] - ["lang:alloc", "::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::try_from", "Argument[0].Field[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::string::FromUtf8Error::bytes]", "value", "dfc-generated"] - - ["lang:alloc", "::try_from", "Argument[0].Field[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::string::String::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::try_from", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::string::FromUtf8Error::bytes]", "value", "dfc-generated"] - - ["lang:alloc", "::try_from", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::string::String::vec]", "value", "dfc-generated"] + - ["lang:alloc", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::from_str", "Argument[0].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::from_str", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::spec_to_string", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::deref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::as_mut_vec", "Argument[self].Field[crate::string::String::vec]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::drain", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::from_raw_parts", "Argument[1]", "ReturnValue.Field[crate::string::String::vec].Field[crate::vec::Vec::len]", "value", "dfc-generated"] - ["lang:alloc", "::from_utf8", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::string::FromUtf8Error::bytes]", "value", "dfc-generated"] - ["lang:alloc", "::from_utf8", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::string::String::vec]", "value", "dfc-generated"] - ["lang:alloc", "::from_utf8_lossy_owned", "Argument[0]", "ReturnValue.Field[crate::string::String::vec]", "value", "dfc-generated"] - ["lang:alloc", "::from_utf8_unchecked", "Argument[0]", "ReturnValue.Field[crate::string::String::vec]", "value", "dfc-generated"] + - ["lang:alloc", "::into_bytes", "Argument[self].Field[crate::string::String::vec]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::try_from", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::allocator", "Argument[0].Field[crate::sync::Arc::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::downcast", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::from_raw_in", "Argument[1]", "ReturnValue.Field[crate::sync::Arc::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::downgrade", "Argument[0].Field[crate::sync::Arc::alloc].Reference", "ReturnValue.Field[crate::sync::Weak::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::downgrade", "Argument[0].Field[crate::sync::Arc::alloc]", "ReturnValue.Field[crate::sync::Weak::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::downgrade", "Argument[0].Field[crate::sync::Arc::ptr]", "ReturnValue.Field[crate::sync::Weak::ptr]", "value", "dfc-generated"] - ["lang:alloc", "::new_uninit_in", "Argument[0]", "ReturnValue.Field[crate::sync::Arc::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::new_uninit_slice_in", "Argument[1]", "ReturnValue.Field[crate::sync::Arc::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::new_zeroed_in", "Argument[0]", "ReturnValue.Field[crate::sync::Arc::alloc]", "value", "dfc-generated"] @@ -212,40 +439,55 @@ extensions: - ["lang:alloc", "::try_new_uninit_in", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::Arc::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::try_new_zeroed_in", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::Arc::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::try_unwrap", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:alloc", "::unwrap_or_clone", "Argument[0].Reference.Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::unwrap_or_clone", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::allocator", "Argument[self].Field[crate::sync::Weak::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::from_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::from_raw_in", "Argument[1]", "ReturnValue.Field[crate::sync::Weak::alloc]", "value", "dfc-generated"] - ["lang:alloc", "::new_in", "Argument[0]", "ReturnValue.Field[crate::sync::Weak::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::upgrade", "Argument[self].Field[crate::sync::Weak::alloc].Reference", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::Arc::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::upgrade", "Argument[self].Field[crate::sync::Weak::alloc]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::Arc::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::upgrade", "Argument[self].Field[crate::sync::Weak::ptr]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::Arc::ptr]", "value", "dfc-generated"] - ["lang:alloc", "::borrow", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::borrow_mut", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:alloc", "::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::drain", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::from", "Argument[0].Field[crate::bstr::ByteString(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::from", "Argument[0].Field[crate::collections::binary_heap::BinaryHeap::data]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::from", "Argument[0].Field[crate::string::String::vec]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::extract_if", "Argument[1]", "ReturnValue.Field[crate::vec::extract_if::ExtractIf::pred]", "value", "dfc-generated"] - ["lang:alloc", "::extract_if", "Argument[self]", "ReturnValue.Field[crate::vec::extract_if::ExtractIf::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::from_parts", "Argument[1]", "ReturnValue.Field[crate::vec::Vec::len]", "value", "dfc-generated"] - ["lang:alloc", "::from_parts_in", "Argument[1]", "ReturnValue.Field[crate::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::from_raw_parts", "Argument[1]", "ReturnValue.Field[crate::vec::Vec::len]", "value", "dfc-generated"] - ["lang:alloc", "::from_raw_parts_in", "Argument[1]", "ReturnValue.Field[crate::vec::Vec::len]", "value", "dfc-generated"] + - ["lang:alloc", "::len", "Argument[self].Field[crate::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::push_within_capacity", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::try_with_capacity_in", "Argument[1]", "ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] + - ["lang:alloc", "::set_len", "Argument[0]", "Argument[self].Field[crate::vec::Vec::len]", "value", "dfc-generated"] + - ["lang:alloc", "::truncate", "Argument[0]", "Argument[self].Field[crate::vec::Vec::len]", "value", "dfc-generated"] + - ["lang:alloc", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[crate::vec::extract_if::ExtractIf::vec]", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[1]", "ReturnValue.Field[crate::vec::extract_if::ExtractIf::pred]", "value", "dfc-generated"] - ["lang:alloc", "::as_inner", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::next_back", "Argument[self].Field[crate::vec::into_iter::IntoIter::end].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:alloc", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:alloc", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["lang:alloc", "::as_into_iter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:alloc", "::allocator", "Argument[self].Field[crate::vec::into_iter::IntoIter::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::forget_allocation_drop_remaining", "Argument[self].Field[crate::vec::into_iter::IntoIter::buf]", "Argument[self].Field[crate::vec::into_iter::IntoIter::ptr]", "value", "dfc-generated"] + - ["lang:alloc", "::drop", "Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::local_len]", "Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::len].Reference", "value", "dfc-generated"] + - ["lang:alloc", "::current_len", "Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::local_len]", "ReturnValue", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[0].Reference", "ReturnValue.Field[crate::vec::set_len_on_drop::SetLenOnDrop::local_len]", "value", "dfc-generated"] - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[crate::vec::set_len_on_drop::SetLenOnDrop::len]", "value", "dfc-generated"] - ["lang:alloc", "::downcast", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::spec_to_string", "Argument[self].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::spec_to_string", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "<{766}::StringError as crate::error::Error>::description", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:alloc", "::from_elem", "Argument[1]", "ReturnValue.Field[crate::vec::Vec::len]", "value", "dfc-generated"] + - ["lang:alloc", "::spec_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:alloc", "::from_elem", "Argument[1]", "ReturnValue.Field[crate::vec::Vec::len]", "value", "dfc-generated"] - ["lang:alloc", "crate::collections::btree::mem::replace", "Argument[0].Reference", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:alloc", "crate::collections::btree::mem::replace", "Argument[1].ReturnValue", "Argument[0].Reference", "value", "dfc-generated"] - ["lang:alloc", "crate::collections::btree::mem::take_mut", "Argument[0].Reference", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:alloc", "crate::collections::btree::mem::take_mut", "Argument[1].ReturnValue", "Argument[0].Reference", "value", "dfc-generated"] + - ["lang:alloc", "crate::str::convert_while_ascii", "Argument[0]", "Argument[1]", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/lang-core.model.yml b/rust/ql/lib/ext/generated/rust/lang-core.model.yml index 0bb74f5e412..734b13027cd 100644 --- a/rust/ql/lib/ext/generated/rust/lang-core.model.yml +++ b/rust/ql/lib/ext/generated/rust/lang-core.model.yml @@ -7,202 +7,13 @@ extensions: - ["lang:core", "<&_ as crate::borrow::Borrow>::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "<&_ as crate::clone::Clone>::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<&_ as crate::ops::deref::Deref>::deref", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitAnd>::bitand", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitOr>::bitor", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitAnd>::bitand", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitOr>::bitor", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "<&crate::result::Result as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f128 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f16 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "<&mut _ as crate::borrow::Borrow>::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "<&mut _ as crate::borrow::BorrowMut>::borrow_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIterator>::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -210,8 +21,6 @@ extensions: - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<&mut _ as crate::iter::traits::iterator::Iterator>::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "<&mut _ as crate::iter::traits::iterator::Iterator>::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "<&mut _ as crate::iter::traits::iterator::Iterator>::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -219,152 +28,19 @@ extensions: - ["lang:core", "<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<&mut _ as crate::ops::deref::Deref>::deref", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<&mut _ as crate::ops::deref::DerefMut>::deref_mut", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<&mut crate::result::Result as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "<&str as crate::str::pattern::Pattern>::as_utf8_pattern", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "<&str as crate::str::pattern::Pattern>::into_searcher", "Argument[0]", "ReturnValue.Field[crate::str::pattern::StrSearcher::haystack]", "value", "dfc-generated"] - ["lang:core", "<&str as crate::str::pattern::Pattern>::into_searcher", "Argument[self]", "ReturnValue.Field[crate::str::pattern::StrSearcher::needle]", "value", "dfc-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "<[_] as crate::convert::AsMut>::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<[_] as crate::convert::AsRef>::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<[_] as crate::slice::CloneFromSpec>::spec_clone_from", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "<[_] as crate::slice::SlicePattern>::as_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<[_]>::align_to", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "<[_]>::align_to_mut", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::array_windows", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_]>::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_]>::as_mut_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "<[_]>::as_mut_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "<[_]>::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_]>::as_simd", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::as_simd_mut", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "<[_]>::chunk_by", "Argument[0]", "ReturnValue.Field[crate::slice::iter::ChunkBy::predicate]", "value", "dfc-generated"] - ["lang:core", "<[_]>::chunk_by", "Argument[self]", "ReturnValue.Field[crate::slice::iter::ChunkBy::slice]", "value", "dfc-generated"] - ["lang:core", "<[_]>::chunk_by_mut", "Argument[0]", "ReturnValue.Field[crate::slice::iter::ChunkByMut::predicate]", "value", "dfc-generated"] @@ -375,10 +51,7 @@ extensions: - ["lang:core", "<[_]>::chunks_exact_mut", "Argument[0]", "ReturnValue.Field[crate::slice::iter::ChunksExactMut::chunk_size]", "value", "dfc-generated"] - ["lang:core", "<[_]>::chunks_mut", "Argument[0]", "ReturnValue.Field[crate::slice::iter::ChunksMut::chunk_size]", "value", "dfc-generated"] - ["lang:core", "<[_]>::chunks_mut", "Argument[self]", "ReturnValue.Field[crate::slice::iter::ChunksMut::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::clone_from_slice", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "<[_]>::partition_dedup", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "<[_]>::partition_dedup_by", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::partition_dedup_by_key", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "<[_]>::rchunks", "Argument[0]", "ReturnValue.Field[crate::slice::iter::RChunks::chunk_size]", "value", "dfc-generated"] - ["lang:core", "<[_]>::rchunks", "Argument[self]", "ReturnValue.Field[crate::slice::iter::RChunks::v]", "value", "dfc-generated"] - ["lang:core", "<[_]>::rchunks_exact", "Argument[0]", "ReturnValue.Field[crate::slice::iter::RChunksExact::chunk_size]", "value", "dfc-generated"] @@ -407,11 +80,8 @@ extensions: - ["lang:core", "<[crate::ascii::ascii_char::AsciiChar]>::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::assume_init_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::assume_init_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::write_clone_of_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::write_copy_of_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[u8]>::as_ascii", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "<[u8] as crate::num::dec2flt::common::ByteSlice>::parse_digits", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<[u8]>::as_ascii_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[u8]>::trim_ascii", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<[u8]>::trim_ascii_end", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<[u8]>::trim_ascii_start", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<[u8]>::utf8_chunks", "Argument[self]", "ReturnValue.Field[crate::str::lossy::Utf8Chunks::source]", "value", "dfc-generated"] @@ -419,20 +89,16 @@ extensions: - ["lang:core", "<_ as crate::async_iter::async_iter::IntoAsyncIterator>::into_async_iter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<_ as crate::borrow::Borrow>::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<_ as crate::borrow::BorrowMut>::borrow_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "<_ as crate::clone::uninit::CopySpec>::clone_one", "Argument[0].Reference", "Argument[1].Reference", "value", "dfc-generated"] - ["lang:core", "<_ as crate::clone::uninit::CopySpec>::clone_one", "Argument[0]", "Argument[1].Reference", "value", "dfc-generated"] - ["lang:core", "<_ as crate::convert::From>::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<_ as crate::future::into_future::IntoFuture>::into_future", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<_ as crate::iter::adapters::step_by::SpecRangeSetup>::setup", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<_ as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "<_ as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<_ as crate::slice::sort::shared::smallsort::StableSmallSortTypeImpl>::small_sort", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["lang:core", "<_ as crate::slice::sort::shared::smallsort::UnstableSmallSortFreezeTypeImpl>::small_sort", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["lang:core", "<_ as crate::str::pattern::MultiCharEq>::matches", "Argument[0]", "Argument[self].Reference.Parameter[0]", "value", "dfc-generated"] - ["lang:core", "<_ as crate::str::pattern::MultiCharEq>::matches", "Argument[self].Reference.ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clamp", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clamp", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clamp", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::max", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::max", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::min", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -455,121 +121,212 @@ extensions: - ["lang:core", "::as_utf8_pattern", "Argument[self].Reference", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::str::pattern::Utf8Pattern::CharPattern(0)]", "value", "dfc-generated"] - ["lang:core", "::into_searcher", "Argument[0]", "ReturnValue.Field[crate::str::pattern::CharSearcher::haystack]", "value", "dfc-generated"] - ["lang:core", "::into_searcher", "Argument[self]", "ReturnValue.Field[crate::str::pattern::CharSearcher::needle]", "value", "dfc-generated"] - - ["lang:core", "::escape_debug", "Argument[self]", "ReturnValue.Field[crate::char::EscapeDebug(0)].Field[crate::char::EscapeDebugInner::Char(0)]", "value", "dfc-generated"] - - ["lang:core", "::escape_debug_ext", "Argument[self]", "ReturnValue.Field[crate::char::EscapeDebug(0)].Field[crate::char::EscapeDebugInner::Char(0)]", "value", "dfc-generated"] - ["lang:core", "::from_digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::to_ascii_lowercase", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::to_ascii_uppercase", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::align", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::align_to", "Argument[self].Field[crate::alloc::layout::Layout::align]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::align]", "value", "dfc-generated"] + - ["lang:core", "::align_to", "Argument[self].Field[crate::alloc::layout::Layout::size]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::size]", "value", "dfc-generated"] + - ["lang:core", "::extend_packed", "Argument[self].Field[crate::alloc::layout::Layout::align]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::align]", "value", "dfc-generated"] - ["lang:core", "::from_size_align", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::size]", "value", "dfc-generated"] - ["lang:core", "::from_size_align_unchecked", "Argument[0]", "ReturnValue.Field[crate::alloc::layout::Layout::size]", "value", "dfc-generated"] + - ["lang:core", "::repeat", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::repeat_packed", "Argument[self].Field[crate::alloc::layout::Layout::align]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::align]", "value", "dfc-generated"] + - ["lang:core", "::size", "Argument[self].Field[crate::alloc::layout::Layout::size]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[crate::array::iter::IntoIter::data]", "value", "dfc-generated"] - - ["lang:core", "::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::new_unchecked", "Argument[1].Field[crate::ops::range::Range::end]", "ReturnValue.Field[crate::array::iter::IntoIter::alive].Field[crate::ops::index_range::IndexRange::end]", "value", "dfc-generated"] + - ["lang:core", "::new_unchecked", "Argument[1].Field[crate::ops::range::Range::start]", "ReturnValue.Field[crate::array::iter::IntoIter::alive].Field[crate::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - ["lang:core", "::to_char", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::try_capture", "Argument[self].Field[0].Reference", "Argument[0].Field[crate::asserting::Capture::elem].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::try_capture", "Argument[self].Field[crate::asserting::Wrapper(0)].Reference", "Argument[0].Field[crate::asserting::Capture::elem].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::borrow", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::borrow", "Argument[self].Field[crate::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::borrow_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::borrow_mut", "Argument[self].Field[crate::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::as_mut", "Argument[self].Field[crate::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::as_ref", "Argument[self].Field[crate::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::deref", "Argument[self].Field[crate::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::deref_mut", "Argument[self].Field[crate::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::index", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::index", "Argument[self].Field[crate::bstr::ByteStr(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::index_mut", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::index_mut", "Argument[self].Field[crate::bstr::ByteStr(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::index_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::as_bytes", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::as_bytes", "Argument[self].Field[crate::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::from_bytes", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_bytes_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::cell::BorrowRef::borrow]", "ReturnValue.Field[crate::cell::BorrowRef::borrow]", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::cell::Cell::value].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::as_array_of_cells", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::as_slice_of_cells", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::cell::Cell::value].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::cell::Cell::value].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::update", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::filter_map", "Argument[0].Field[crate::cell::Ref::borrow]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::cell::Ref::borrow]", "value", "dfc-generated"] - ["lang:core", "::filter_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - ["lang:core", "::filter_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::map", "Argument[0].Field[crate::cell::Ref::borrow]", "ReturnValue.Field[crate::cell::Ref::borrow]", "value", "dfc-generated"] - ["lang:core", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "::map_split", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["lang:core", "::map_split", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["lang:core", "::map_split", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::cell::RefCell::value].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::cell::RefCell::value].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::cell::RefCell::value].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["lang:core", "::filter_map", "Argument[0].Field[crate::cell::RefMut::borrow]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::cell::RefMut::borrow]", "value", "dfc-generated"] - ["lang:core", "::filter_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - ["lang:core", "::filter_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::map", "Argument[0].Field[crate::cell::RefMut::borrow]", "ReturnValue.Field[crate::cell::RefMut::borrow]", "value", "dfc-generated"] - ["lang:core", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "::map_split", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["lang:core", "::map_split", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["lang:core", "::map_split", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::cell::SyncUnsafeCell::value].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::cell::SyncUnsafeCell::value].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::cell::SyncUnsafeCell::value].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::raw_get", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::get_mut", "Argument[self].Field[crate::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::raw_get", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::replace", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_or_init", "Argument[0].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::get_or_try_init", "Argument[0].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::get_or_try_init", "Argument[0].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::get_or_try_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::cell::once::OnceCell::inner].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::set", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::try_insert", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] - - ["lang:core", "::try_insert", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::next", "Argument[self].Field[0].Field[crate::char::EscapeDebugInner::Char(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::char::EscapeDebug(0)].Field[crate::char::EscapeDebugInner::Char(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::char::decode::DecodeUtf16::iter].Element", "Argument[self].Field[crate::char::decode::DecodeUtf16::buf].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::char::decode::DecodeUtf16::iter].Element", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::unpaired_surrogate", "Argument[self].Field[crate::char::decode::DecodeUtf16Error::code]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::then", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::then", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::then_with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::then_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::cmp::Reverse(0)]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::clone_from", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::provide_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::provide_ref_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::provide_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::provide_value_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::error::Source::current]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::as_request", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::backslash", "Argument[0]", "ReturnValue.Field[crate::escape::EscapeIterInner::data].Element", "value", "dfc-generated"] - ["lang:core", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::deref", "Argument[self].Field[crate::ffi::va_list::VaList::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::deref_mut", "Argument[self].Field[crate::ffi::va_list::VaList::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::with_copy", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::as_str", "Argument[self].Field[crate::fmt::Arguments::pieces].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::new_const", "Argument[0]", "ReturnValue.Field[crate::fmt::Arguments::pieces]", "value", "dfc-generated"] - ["lang:core", "::new_v1", "Argument[0]", "ReturnValue.Field[crate::fmt::Arguments::pieces]", "value", "dfc-generated"] - ["lang:core", "::new_v1", "Argument[1]", "ReturnValue.Field[crate::fmt::Arguments::args]", "value", "dfc-generated"] - ["lang:core", "::new_v1_formatted", "Argument[0]", "ReturnValue.Field[crate::fmt::Arguments::pieces]", "value", "dfc-generated"] - ["lang:core", "::new_v1_formatted", "Argument[1]", "ReturnValue.Field[crate::fmt::Arguments::args]", "value", "dfc-generated"] - ["lang:core", "::new_v1_formatted", "Argument[2]", "ReturnValue.Field[crate::fmt::Arguments::fmt].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::align", "Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::align]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::debug_list", "Argument[self]", "ReturnValue.Field[crate::fmt::builders::DebugList::inner].Field[crate::fmt::builders::DebugInner::fmt]", "value", "dfc-generated"] - ["lang:core", "::debug_map", "Argument[self]", "ReturnValue.Field[crate::fmt::builders::DebugMap::fmt]", "value", "dfc-generated"] - ["lang:core", "::debug_set", "Argument[self]", "ReturnValue.Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::fmt]", "value", "dfc-generated"] - ["lang:core", "::debug_struct", "Argument[self]", "ReturnValue.Field[crate::fmt::builders::DebugStruct::fmt]", "value", "dfc-generated"] - ["lang:core", "::debug_tuple", "Argument[self]", "ReturnValue.Field[crate::fmt::builders::DebugTuple::fmt]", "value", "dfc-generated"] + - ["lang:core", "::fill", "Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::fill]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::flags", "Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::flags]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::fmt::Formatter::buf]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::fmt::Formatter::options]", "value", "dfc-generated"] + - ["lang:core", "::options", "Argument[self].Field[crate::fmt::Formatter::options]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::padding", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::fmt::PostPadding::padding]", "value", "dfc-generated"] + - ["lang:core", "::padding", "Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::fill]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::fmt::PostPadding::fill]", "value", "dfc-generated"] + - ["lang:core", "::precision", "Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::precision]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::width", "Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::width]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::with_options", "Argument[0]", "ReturnValue.Field[crate::fmt::Formatter::options]", "value", "dfc-generated"] + - ["lang:core", "::with_options", "Argument[self].Field[crate::fmt::Formatter::buf]", "ReturnValue.Field[crate::fmt::Formatter::buf]", "value", "dfc-generated"] + - ["lang:core", "::align", "Argument[0]", "Argument[self].Field[crate::fmt::FormattingOptions::align]", "value", "dfc-generated"] + - ["lang:core", "::align", "Argument[0]", "ReturnValue.Field[crate::fmt::FormattingOptions::align]", "value", "dfc-generated"] - ["lang:core", "::align", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::alternate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::create_formatter", "Argument[0]", "ReturnValue.Field[crate::fmt::Formatter::buf]", "value", "dfc-generated"] - ["lang:core", "::create_formatter", "Argument[self]", "ReturnValue.Field[crate::fmt::Formatter::options]", "value", "dfc-generated"] - ["lang:core", "::debug_as_hex", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::fill", "Argument[0]", "Argument[self].Field[crate::fmt::FormattingOptions::fill]", "value", "dfc-generated"] + - ["lang:core", "::fill", "Argument[0]", "ReturnValue.Field[crate::fmt::FormattingOptions::fill]", "value", "dfc-generated"] - ["lang:core", "::fill", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::flags", "Argument[0]", "Argument[self].Field[crate::fmt::FormattingOptions::flags]", "value", "dfc-generated"] + - ["lang:core", "::get_align", "Argument[self].Field[crate::fmt::FormattingOptions::align]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::get_fill", "Argument[self].Field[crate::fmt::FormattingOptions::fill]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::get_flags", "Argument[self].Field[crate::fmt::FormattingOptions::flags]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::get_precision", "Argument[self].Field[crate::fmt::FormattingOptions::precision]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::get_width", "Argument[self].Field[crate::fmt::FormattingOptions::width]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::precision", "Argument[0]", "Argument[self].Field[crate::fmt::FormattingOptions::precision]", "value", "dfc-generated"] + - ["lang:core", "::precision", "Argument[0]", "ReturnValue.Field[crate::fmt::FormattingOptions::precision]", "value", "dfc-generated"] - ["lang:core", "::precision", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::sign", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::sign_aware_zero_pad", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::width", "Argument[0]", "Argument[self].Field[crate::fmt::FormattingOptions::width]", "value", "dfc-generated"] + - ["lang:core", "::width", "Argument[0]", "ReturnValue.Field[crate::fmt::FormattingOptions::width]", "value", "dfc-generated"] - ["lang:core", "::width", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::entries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::entry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::entry_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::finish", "Argument[self].Field[crate::fmt::builders::DebugList::inner].Field[crate::fmt::builders::DebugInner::result]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::entries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::entry", "Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::entry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::finish", "Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::finish", "Argument[self].Field[crate::fmt::builders::DebugMap::result]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[crate::fmt::builders::DebugMap::result]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::key", "Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::key", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::key_with", "Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::key_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::value", "Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::value_with", "Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::value_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::entries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::entry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::entry_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::finish", "Argument[self].Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::result]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::result]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::field", "Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::field", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::field_with", "Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::field_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::finish", "Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::finish", "Argument[self].Field[crate::fmt::builders::DebugStruct::result]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[crate::fmt::builders::DebugStruct::result]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::field", "Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::field", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::field_with", "Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::field_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::finish", "Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::finish", "Argument[self].Field[crate::fmt::builders::DebugTuple::result]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[crate::fmt::builders::DebugTuple::result]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] @@ -578,6 +335,7 @@ extensions: - ["lang:core", "::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::as_usize", "Argument[self].Field[crate::fmt::rt::Argument::ty].Field[crate::fmt::rt::ArgumentType::Count(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::from_usize", "Argument[0].Reference", "ReturnValue.Field[crate::fmt::rt::Argument::ty].Field[crate::fmt::rt::ArgumentType::Count(0)]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::fmt::rt::Placeholder::position]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::fmt::rt::Placeholder::fill]", "value", "dfc-generated"] @@ -587,202 +345,202 @@ extensions: - ["lang:core", "::new", "Argument[5]", "ReturnValue.Field[crate::fmt::rt::Placeholder::width]", "value", "dfc-generated"] - ["lang:core", "::take_output", "Argument[self].Reference.Field[crate::future::join::MaybeDone::Done(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::into_inner", "Argument[self].Field[0].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::future::ready::Ready(0)].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::new_with_keys", "Argument[0]", "ReturnValue.Field[crate::hash::sip::SipHasher13::hasher].Field[crate::hash::sip::Hasher::k0]", "value", "dfc-generated"] + - ["lang:core", "::new_with_keys", "Argument[1]", "ReturnValue.Field[crate::hash::sip::SipHasher13::hasher].Field[crate::hash::sip::Hasher::k1]", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::io::borrowed_buf::BorrowedBuf::buf]", "value", "dfc-generated"] - ["lang:core", "::clear", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::init_len", "Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::init]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::len", "Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::filled]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::set_init", "Argument[0]", "Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] + - ["lang:core", "::set_init", "Argument[0]", "ReturnValue.Field[crate::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] + - ["lang:core", "::set_init", "Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::init]", "ReturnValue.Field[crate::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] - ["lang:core", "::set_init", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::unfilled", "Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::filled]", "ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::start]", "value", "dfc-generated"] - ["lang:core", "::advance", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::advance_unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::advance_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::capacity", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::ensure_init", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::reborrow", "Argument[self].Field[crate::io::borrowed_buf::BorrowedCursor::start]", "ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::start]", "value", "dfc-generated"] + - ["lang:core", "::set_init", "Argument[self].Field[crate::io::borrowed_buf::BorrowedCursor::buf].Field[crate::io::borrowed_buf::BorrowedBuf::init]", "ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::buf].Field[crate::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] - ["lang:core", "::set_init", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::written", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::into_remainder", "Argument[self].Field[crate::iter::adapters::array_chunks::ArrayChunks::remainder]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::array_chunks::ArrayChunks::iter]", "value", "dfc-generated"] - - ["lang:core", "::advance_back_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfold", "Argument[self].Field[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[self].Field[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::chain::Chain::a].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::chain::Chain::b].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next_unchecked", "Argument[self].Field[crate::iter::adapters::cloned::Cloned::it].Element", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::cloned::Cloned::it]", "value", "dfc-generated"] - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::copied::Copied::it]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::cycle::Cycle::orig]", "value", "dfc-generated"] + - ["lang:core", "::advance_by", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig].Reference", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] + - ["lang:core", "::advance_by", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig]", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter].Reference", "value", "dfc-generated"] + - ["lang:core", "::advance_by", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig]", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::try_fold", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig].Reference", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] + - ["lang:core", "::try_fold", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig]", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter].Reference", "value", "dfc-generated"] + - ["lang:core", "::try_fold", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig]", "Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] + - ["lang:core", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::__iterator_get_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::__iterator_get_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::count]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::enumerate::Enumerate::iter]", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::filter::Filter::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::filter::Filter::predicate]", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::filter_map::FilterMap::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::filter_map::FilterMap::f]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner].Reference", "ReturnValue.Field[crate::iter::adapters::flatten::FlatMap::inner]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner]", "ReturnValue.Field[crate::iter::adapters::flatten::FlatMap::inner]", "value", "dfc-generated"] + - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::into_parts", "Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner].Field[crate::iter::adapters::flatten::FlattenCompat::backiter]", "ReturnValue.Field[2]", "value", "dfc-generated"] + - ["lang:core", "::into_parts", "Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner].Field[crate::iter::adapters::flatten::FlattenCompat::frontiter]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::iter::adapters::flatten::Flatten::inner].Reference", "ReturnValue.Field[crate::iter::adapters::flatten::Flatten::inner]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::iter::adapters::flatten::Flatten::inner]", "ReturnValue.Field[crate::iter::adapters::flatten::Flatten::inner]", "value", "dfc-generated"] + - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::iter::adapters::fuse::Fuse::iter]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::fuse::Fuse::iter].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::inspect::Inspect::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::inspect::Inspect::f]", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::intersperse::Intersperse::separator].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::intersperse::Intersperse::separator]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::intersperse::Intersperse::separator]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::intersperse::IntersperseWith::separator]", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::__iterator_get_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::iter::adapters::map::Map::iter]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::map::Map::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::map::Map::f]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::map_while::MapWhile::iter].Element", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::map_while::MapWhile::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::map_while::MapWhile::predicate]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::iter::adapters::map_windows::Buffer::start]", "ReturnValue.Field[crate::iter::adapters::map_windows::Buffer::start]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::map_windows::MapWindows::f]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::try_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::last", "Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::peekable::Peekable::iter]", "value", "dfc-generated"] + - ["lang:core", "::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::peek_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::iter::adapters::rev::Rev::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::iter::adapters::rev::Rev::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::rev::Rev::iter]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::scan::Scan::iter].Element", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::scan::Scan::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::scan::Scan::state]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[crate::iter::adapters::scan::Scan::f]", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::last", "Argument[self].Field[crate::iter::adapters::skip::Skip::iter].Element", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::skip::Skip::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::iter::adapters::skip::Skip::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::iter::adapters::skip::Skip::iter].Element", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::skip::Skip::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::skip::Skip::n]", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -791,55 +549,44 @@ extensions: - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::skip_while::SkipWhile::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::skip_while::SkipWhile::predicate]", "value", "dfc-generated"] + - ["lang:core", "::spec_next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::spec_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::spec_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::spec_rfold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::spec_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::spec_try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::spec_try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::spec_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::spec_fold", "Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["lang:core", "::spec_fold", "Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Field[crate::ops::range::Range::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["lang:core", "::spec_next", "Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::spec_next", "Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Field[crate::ops::range::Range::start]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::spec_nth", "Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::spec_size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::spec_try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::spec_try_fold", "Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::spec_fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::spec_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::nth_back", "Argument[self].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::len", "Argument[self].Field[crate::iter::adapters::take::Take::n]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::take::Take::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::iter::adapters::take::Take::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self].Field[crate::iter::adapters::take::Take::n]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self].Field[crate::iter::adapters::take::Take::n]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::take::Take::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::take::Take::n]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::take_while::TakeWhile::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::adapters::take_while::TakeWhile::iter].Element", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::take_while::TakeWhile::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::take_while::TakeWhile::predicate]", "value", "dfc-generated"] @@ -851,91 +598,155 @@ extensions: - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::zip::Zip::a]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::zip::Zip::b]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::iter::adapters::zip::Zip::a]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::iter::adapters::zip::Zip::b]", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::sources::once_with::OnceWith::make].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::sources::once_with::OnceWith::make].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::iter::sources::repeat_n::RepeatN::count]", "ReturnValue.Field[crate::iter::sources::repeat_n::RepeatN::count]", "value", "dfc-generated"] - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::nth_back", "Argument[self].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::len", "Argument[self].Field[crate::iter::sources::repeat_n::RepeatN::count]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::advance_by", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::try_fold", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::deref", "Argument[self].Field[crate::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::deref_mut", "Argument[self].Field[crate::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::into_inner", "Argument[0].Field[crate::mem::manually_drop::ManuallyDrop::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] + - ["lang:core", "::take", "Argument[0].Field[crate::mem::manually_drop::ManuallyDrop::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::as_mut_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::assume_init_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::assume_init_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone_from_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::copy_from_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fill", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fill_with", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::slice_as_mut_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::slice_as_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::slice_assume_init_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::slice_assume_init_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::write", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::net::ip_addr::IpAddr::V4(0)].Field[crate::net::ip_addr::Ipv4Addr::octets]", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::net::ip_addr::IpAddr::V4(0)]", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)].Field[crate::net::ip_addr::Ipv6Addr::octets]", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)]", "value", "dfc-generated"] - - ["lang:core", "::to_canonical", "Argument[self].Field[crate::net::ip_addr::IpAddr::V6(0)].Reference", "ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)]", "value", "dfc-generated"] - ["lang:core", "::to_canonical", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets]", "value", "dfc-generated"] - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::as_octets", "Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::from_octets", "Argument[0]", "ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[3]", "ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] + - ["lang:core", "::octets", "Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::to_ipv6_compatible", "Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets].Element", "ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets].Element", "value", "dfc-generated"] + - ["lang:core", "::to_ipv6_mapped", "Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets].Element", "ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets].Element", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets]", "value", "dfc-generated"] - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::as_octets", "Argument[self].Field[crate::net::ip_addr::Ipv6Addr::octets]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::from_octets", "Argument[0]", "ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets]", "value", "dfc-generated"] + - ["lang:core", "::octets", "Argument[self].Field[crate::net::ip_addr::Ipv6Addr::octets]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::to_canonical", "Argument[self].Reference", "ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)]", "value", "dfc-generated"] + - ["lang:core", "::to_ipv4_mapped", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from", "Argument[0].Field[1]", "ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)].Field[crate::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0].Field[1]", "ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)].Field[crate::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)]", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)]", "value", "dfc-generated"] + - ["lang:core", "::new", "Argument[0].Field[crate::net::ip_addr::IpAddr::V4(0)]", "ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)].Field[crate::net::socket_addr::SocketAddrV4::ip]", "value", "dfc-generated"] + - ["lang:core", "::new", "Argument[0].Field[crate::net::ip_addr::IpAddr::V6(0)]", "ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)].Field[crate::net::socket_addr::SocketAddrV6::ip]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)].Field[crate::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)].Field[crate::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] + - ["lang:core", "::ip", "Argument[self].Field[crate::net::socket_addr::SocketAddrV4::ip]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::net::socket_addr::SocketAddrV4::ip]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] + - ["lang:core", "::port", "Argument[self].Field[crate::net::socket_addr::SocketAddrV4::port]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::set_ip", "Argument[0]", "Argument[self].Field[crate::net::socket_addr::SocketAddrV4::ip]", "value", "dfc-generated"] + - ["lang:core", "::set_port", "Argument[0]", "Argument[self].Field[crate::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] + - ["lang:core", "::flowinfo", "Argument[self].Field[crate::net::socket_addr::SocketAddrV6::flowinfo]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::ip", "Argument[self].Field[crate::net::socket_addr::SocketAddrV6::ip]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::ip]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::flowinfo]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[3]", "ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::scope_id]", "value", "dfc-generated"] + - ["lang:core", "::port", "Argument[self].Field[crate::net::socket_addr::SocketAddrV6::port]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::scope_id", "Argument[self].Field[crate::net::socket_addr::SocketAddrV6::scope_id]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::set_flowinfo", "Argument[0]", "Argument[self].Field[crate::net::socket_addr::SocketAddrV6::flowinfo]", "value", "dfc-generated"] + - ["lang:core", "::set_ip", "Argument[0]", "Argument[self].Field[crate::net::socket_addr::SocketAddrV6::ip]", "value", "dfc-generated"] + - ["lang:core", "::set_port", "Argument[0]", "Argument[self].Field[crate::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] + - ["lang:core", "::set_scope_id", "Argument[0]", "Argument[self].Field[crate::net::socket_addr::SocketAddrV6::scope_id]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::num::bignum::Big32x40::base]", "ReturnValue.Field[crate::num::bignum::Big32x40::base]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::num::bignum::Big32x40::size]", "ReturnValue.Field[crate::num::bignum::Big32x40::size]", "value", "dfc-generated"] + - ["lang:core", "::add", "Argument[0].Field[crate::num::bignum::Big32x40::size]", "Argument[self].Field[crate::num::bignum::Big32x40::size]", "value", "dfc-generated"] + - ["lang:core", "::add", "Argument[0].Field[crate::num::bignum::Big32x40::size]", "ReturnValue.Field[crate::num::bignum::Big32x40::size]", "value", "dfc-generated"] + - ["lang:core", "::add", "Argument[self].Field[crate::num::bignum::Big32x40::size]", "ReturnValue.Field[crate::num::bignum::Big32x40::size]", "value", "dfc-generated"] - ["lang:core", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::add_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::digits", "Argument[self].Field[crate::num::bignum::Big32x40::base].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::div_rem", "Argument[0].Field[crate::num::bignum::Big32x40::size]", "Argument[2].Field[crate::num::bignum::Big32x40::size]", "value", "dfc-generated"] - ["lang:core", "::div_rem_small", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::from_small", "Argument[0]", "ReturnValue.Field[crate::num::bignum::Big32x40::base].Element", "value", "dfc-generated"] - ["lang:core", "::from_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_bit", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::get_bit", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::mul_digits", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::mul_pow2", "Argument[self].Field[crate::num::bignum::Big32x40::base].Element", "ReturnValue.Field[crate::num::bignum::Big32x40::base].Element", "value", "dfc-generated"] - ["lang:core", "::mul_pow2", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::mul_pow5", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::mul_small", "Argument[self].Field[crate::num::bignum::Big32x40::size]", "ReturnValue.Field[crate::num::bignum::Big32x40::size]", "value", "dfc-generated"] - ["lang:core", "::mul_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::sub", "Argument[0].Field[crate::num::bignum::Big32x40::size]", "Argument[self].Field[crate::num::bignum::Big32x40::size]", "value", "dfc-generated"] + - ["lang:core", "::sub", "Argument[0].Field[crate::num::bignum::Big32x40::size]", "ReturnValue.Field[crate::num::bignum::Big32x40::size]", "value", "dfc-generated"] + - ["lang:core", "::sub", "Argument[self].Field[crate::num::bignum::Big32x40::size]", "ReturnValue.Field[crate::num::bignum::Big32x40::size]", "value", "dfc-generated"] - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::num::bignum::tests::Big8x3::base]", "ReturnValue.Field[crate::num::bignum::tests::Big8x3::base]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[crate::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] + - ["lang:core", "::add", "Argument[0].Field[crate::num::bignum::tests::Big8x3::size]", "Argument[self].Field[crate::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] + - ["lang:core", "::add", "Argument[0].Field[crate::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[crate::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] + - ["lang:core", "::add", "Argument[self].Field[crate::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[crate::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - ["lang:core", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::add_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::digits", "Argument[self].Field[crate::num::bignum::tests::Big8x3::base].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::div_rem", "Argument[0].Field[crate::num::bignum::tests::Big8x3::size]", "Argument[2].Field[crate::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - ["lang:core", "::div_rem_small", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::from_small", "Argument[0]", "ReturnValue.Field[crate::num::bignum::tests::Big8x3::base].Element", "value", "dfc-generated"] - ["lang:core", "::from_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_bit", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::get_bit", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::mul_digits", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::mul_pow2", "Argument[self].Field[crate::num::bignum::tests::Big8x3::base].Element", "ReturnValue.Field[crate::num::bignum::tests::Big8x3::base].Element", "value", "dfc-generated"] - ["lang:core", "::mul_pow2", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::mul_pow5", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::mul_small", "Argument[self].Field[crate::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[crate::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - ["lang:core", "::mul_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::sub", "Argument[0].Field[crate::num::bignum::tests::Big8x3::size]", "Argument[self].Field[crate::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] + - ["lang:core", "::sub", "Argument[0].Field[crate::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[crate::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] + - ["lang:core", "::sub", "Argument[self].Field[crate::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[crate::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::zero_pow2", "Argument[0]", "ReturnValue.Field[crate::num::dec2flt::common::BiasedFp::e]", "value", "dfc-generated"] + - ["lang:core", "::right_shift", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:core", "::try_add_digit", "Argument[0]", "Argument[self].Field[crate::num::dec2flt::decimal::Decimal::digits].Element", "value", "dfc-generated"] + - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::normalize", "Argument[self].Field[crate::num::diy_float::Fp::e]", "ReturnValue.Field[crate::num::diy_float::Fp::e]", "value", "dfc-generated"] + - ["lang:core", "::normalize", "Argument[self].Field[crate::num::diy_float::Fp::f]", "ReturnValue.Field[crate::num::diy_float::Fp::f]", "value", "dfc-generated"] - ["lang:core", "::normalize_to", "Argument[0]", "ReturnValue.Field[crate::num::diy_float::Fp::e]", "value", "dfc-generated"] + - ["lang:core", "::kind", "Argument[self].Field[crate::num::error::ParseIntError::kind]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::len", "Argument[self].Reference.Field[crate::num::fmt::Part::Zero(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::write", "Argument[self].Reference.Field[crate::num::fmt::Part::Zero(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::num::niche_types::I32NotAllOnes(0)]", "value", "dfc-generated"] @@ -975,18 +786,12 @@ extensions: - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::num::niche_types::UsizeNoHighBit(0)]", "value", "dfc-generated"] - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[crate::num::niche_types::UsizeNoHighBit(0)]", "value", "dfc-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::from_mut_unchecked", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self].Field[0]", "ReturnValue.Field[crate::num::saturating::Saturating(0)]", "value", "dfc-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::mul_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -999,16 +804,10 @@ extensions: - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::bitxor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs", "Argument[self].Field[0]", "ReturnValue.Field[crate::num::saturating::Saturating(0)]", "value", "dfc-generated"] - ["lang:core", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self].Field[0]", "ReturnValue.Field[crate::num::wrapping::Wrapping(0)]", "value", "dfc-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::mul_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1023,7 +822,6 @@ extensions: - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::shl_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::shr_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::abs", "Argument[self].Field[0]", "ReturnValue.Field[crate::num::wrapping::Wrapping(0)]", "value", "dfc-generated"] - ["lang:core", "::from_residual", "Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)]", "value", "dfc-generated"] - ["lang:core", "::branch", "Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "value", "dfc-generated"] - ["lang:core", "::branch", "Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] @@ -1039,48 +837,122 @@ extensions: - ["lang:core", "::map_continue", "Argument[0].ReturnValue", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - ["lang:core", "::map_continue", "Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)]", "value", "dfc-generated"] - ["lang:core", "::map_continue", "Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::ops::index_range::IndexRange::start]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::end", "Argument[self].Field[crate::ops::index_range::IndexRange::end]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[crate::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - ["lang:core", "::new_unchecked", "Argument[1]", "ReturnValue.Field[crate::ops::index_range::IndexRange::end]", "value", "dfc-generated"] + - ["lang:core", "::start", "Argument[self].Field[crate::ops::index_range::IndexRange::start]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::take_prefix", "Argument[self].Field[crate::ops::index_range::IndexRange::end]", "Argument[self].Field[crate::ops::index_range::IndexRange::start]", "value", "dfc-generated"] + - ["lang:core", "::take_prefix", "Argument[self].Field[crate::ops::index_range::IndexRange::end]", "ReturnValue.Field[crate::ops::index_range::IndexRange::end]", "value", "dfc-generated"] + - ["lang:core", "::take_prefix", "Argument[self].Field[crate::ops::index_range::IndexRange::start]", "ReturnValue.Field[crate::ops::index_range::IndexRange::start]", "value", "dfc-generated"] + - ["lang:core", "::take_suffix", "Argument[self].Field[crate::ops::index_range::IndexRange::end]", "ReturnValue.Field[crate::ops::index_range::IndexRange::end]", "value", "dfc-generated"] + - ["lang:core", "::take_suffix", "Argument[self].Field[crate::ops::index_range::IndexRange::start]", "Argument[self].Field[crate::ops::index_range::IndexRange::end]", "value", "dfc-generated"] + - ["lang:core", "::take_suffix", "Argument[self].Field[crate::ops::index_range::IndexRange::start]", "ReturnValue.Field[crate::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - ["lang:core", "::zero_to", "Argument[0]", "ReturnValue.Field[crate::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - ["lang:core", "::as_mut", "Argument[self].Reference.Field[crate::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - ["lang:core", "::as_mut", "Argument[self].Reference.Field[crate::ops::range::Bound::Included(0)]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - ["lang:core", "::as_ref", "Argument[self].Reference.Field[crate::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - ["lang:core", "::as_ref", "Argument[self].Reference.Field[crate::ops::range::Bound::Included(0)]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::cloned", "Argument[self].Field[crate::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:core", "::cloned", "Argument[self].Field[crate::ops::range::Bound::Included(0)]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::cloned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - ["lang:core", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["lang:core", "::map", "Argument[self].Field[crate::ops::range::Bound::Excluded(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::map", "Argument[self].Field[crate::ops::range::Bound::Included(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["lang:core", "::from", "Argument[0].Field[crate::range::Range::end]", "ReturnValue.Field[crate::ops::range::Range::end]", "value", "dfc-generated"] + - ["lang:core", "::from", "Argument[0].Field[crate::range::Range::start]", "ReturnValue.Field[crate::ops::range::Range::start]", "value", "dfc-generated"] + - ["lang:core", "::setup", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::spec_next", "Argument[self].Field[crate::ops::range::Range::start]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::spec_next_back", "Argument[self].Field[crate::ops::range::Range::end].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::spec_next_back", "Argument[self].Field[crate::ops::range::Range::end]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::spec_next_back", "Argument[self].Field[crate::ops::range::Range::end]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::spec_nth", "Argument[self].Field[crate::ops::range::Range::end].Reference", "Argument[self].Field[crate::ops::range::Range::start]", "value", "dfc-generated"] + - ["lang:core", "::spec_nth", "Argument[self].Field[crate::ops::range::Range::end]", "Argument[self].Field[crate::ops::range::Range::start].Reference", "value", "dfc-generated"] + - ["lang:core", "::spec_nth", "Argument[self].Field[crate::ops::range::Range::end]", "Argument[self].Field[crate::ops::range::Range::start]", "value", "dfc-generated"] + - ["lang:core", "::spec_nth_back", "Argument[self].Field[crate::ops::range::Range::end]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::spec_nth_back", "Argument[self].Field[crate::ops::range::Range::start]", "Argument[self].Field[crate::ops::range::Range::end]", "value", "dfc-generated"] + - ["lang:core", "::spec_nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::ops::range::Range::end]", "ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::ops::range::Range::start]", "ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::ops::range::Range::end]", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::ops::range::Range::end]", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::ops::range::Range::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::ops::range::Range::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::from", "Argument[0].Field[crate::range::RangeFrom::start]", "ReturnValue.Field[crate::ops::range::RangeFrom::start]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::ops::range::RangeFrom::start]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::ops::range::RangeFrom::start]", "ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::bound", "Argument[self].Field[crate::ops::range::RangeFrom::start]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::ops::range::RangeFrom::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::ops::range::RangeFrom::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - ["lang:core", "::get", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::get_mut", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::get_unchecked", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::get_unchecked_mut", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::index", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::index_mut", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::spec_next", "Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::spec_next", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::spec_next", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::spec_next_back", "Argument[self].Field[crate::ops::range::RangeInclusive::end].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::spec_next_back", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::spec_next_back", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::spec_try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::spec_try_fold", "Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["lang:core", "::spec_try_fold", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1].Reference", "value", "dfc-generated"] + - ["lang:core", "::spec_try_fold", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["lang:core", "::spec_try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::spec_try_rfold", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["lang:core", "::spec_try_rfold", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "Argument[self].Field[crate::ops::range::RangeInclusive::end].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::ops::range::RangeInclusive::end].Reference", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "ReturnValue.Field[1].Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::end", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::ops::range::RangeInclusive::end]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::ops::range::RangeInclusive::start]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::ops::range::RangeInclusive::end]", "value", "dfc-generated"] + - ["lang:core", "::start", "Argument[self].Field[crate::ops::range::RangeInclusive::start]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::ops::range::RangeTo::end]", "ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["lang:core", "::bound", "Argument[self].Field[crate::ops::range::RangeTo::end]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::ops::range::RangeTo::end]", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::ops::range::RangeTo::end]", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::ops::range::RangeToInclusive::end]", "ReturnValue.Field[1].Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::bound", "Argument[self].Field[crate::ops::range::RangeToInclusive::end]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::ops::range::RangeToInclusive::end]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::ops::range::RangeToInclusive::end]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::branch", "Argument[self].Field[0]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] + - ["lang:core", "::branch", "Argument[self].Field[crate::ops::try_trait::NeverShortCircuit(0)]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - ["lang:core", "::from_output", "Argument[0]", "ReturnValue.Field[crate::ops::try_trait::NeverShortCircuit(0)]", "value", "dfc-generated"] - ["lang:core", "::wrap_mut_1", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::wrap_mut_2", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::option::Item::opt].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::option::Item::opt]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::option::Iter::inner].Reference", "ReturnValue.Field[crate::option::Iter::inner]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::option::Iter::inner]", "ReturnValue.Field[crate::option::Iter::inner]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::option::Option::Some(0)].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::clone", "Argument[self].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0].Reference.Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::branch", "Argument[self].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - ["lang:core", "::from_output", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::and", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::and_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::and_then", "Argument[self].Field[crate::option::Option::Some(0)].Field[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::and_then", "Argument[self].Field[crate::option::Option::Some(0)].Field[crate::path::Component::Normal(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::and_then", "Argument[self].Field[crate::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::and_then", "Argument[self].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::as_mut", "Argument[self].Reference.Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["lang:core", "::as_ref", "Argument[self].Reference.Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::cloned", "Argument[self].Field[crate::option::Option::Some(0)].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::cloned", "Argument[self].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::copied", "Argument[self].Field[crate::option::Option::Some(0)].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::expect", "Argument[self].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] @@ -1098,15 +970,12 @@ extensions: - ["lang:core", "::is_none_or", "Argument[self].Field[crate::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::is_some_and", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::is_some_and", "Argument[self].Field[crate::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[self].Field[crate::option::Option::Some(0)].Field[0]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[self].Field[crate::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[self].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["lang:core", "::map", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::map", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:core", "::map", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::map_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::map_or", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::map_or", "Argument[self].Field[crate::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::map_or", "Argument[self].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::map_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::map_or_else", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::map_or_else", "Argument[self].Field[crate::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] @@ -1141,20 +1010,44 @@ extensions: - ["lang:core", "::zip_with", "Argument[0].Field[crate::option::Option::Some(0)]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - ["lang:core", "::zip_with", "Argument[1].ReturnValue", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::zip_with", "Argument[self].Field[crate::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["lang:core", "::column", "Argument[self].Field[crate::panic::location::Location::col]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::file", "Argument[self].Field[crate::panic::location::Location::file]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::internal_constructor", "Argument[0]", "ReturnValue.Field[crate::panic::location::Location::file]", "value", "dfc-generated"] - ["lang:core", "::internal_constructor", "Argument[1]", "ReturnValue.Field[crate::panic::location::Location::line]", "value", "dfc-generated"] - ["lang:core", "::internal_constructor", "Argument[2]", "ReturnValue.Field[crate::panic::location::Location::col]", "value", "dfc-generated"] + - ["lang:core", "::line", "Argument[self].Field[crate::panic::location::Location::line]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::can_unwind", "Argument[self].Field[crate::panic::panic_info::PanicInfo::can_unwind]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::force_no_backtrace", "Argument[self].Field[crate::panic::panic_info::PanicInfo::force_no_backtrace]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::location", "Argument[self].Field[crate::panic::panic_info::PanicInfo::location]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::message", "Argument[self].Field[crate::panic::panic_info::PanicInfo::message]", "ReturnValue.Field[crate::panic::panic_info::PanicMessage::message]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::panic::panic_info::PanicInfo::message]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::panic::panic_info::PanicInfo::location]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[crate::panic::panic_info::PanicInfo::can_unwind]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[3]", "ReturnValue.Field[crate::panic::panic_info::PanicInfo::force_no_backtrace]", "value", "dfc-generated"] + - ["lang:core", "::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::deref", "Argument[self].Field[crate::panic::unwind_safe::AssertUnwindSafe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::deref_mut", "Argument[self].Field[crate::panic::unwind_safe::AssertUnwindSafe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::call_once", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::deref", "Argument[self].Field[crate::pin::Pin::__pointer].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::deref_mut", "Argument[self].Field[crate::pin::Pin::__pointer].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::as_mut", "Argument[self].Field[crate::pin::Pin::__pointer].Reference", "ReturnValue.Field[crate::pin::Pin::__pointer].Reference", "value", "dfc-generated"] + - ["lang:core", "::as_ref", "Argument[self].Field[crate::pin::Pin::__pointer].Reference", "ReturnValue.Field[crate::pin::Pin::__pointer].Reference", "value", "dfc-generated"] + - ["lang:core", "::get_mut", "Argument[self].Field[crate::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::get_ref", "Argument[self].Field[crate::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::get_unchecked_mut", "Argument[self].Field[crate::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::into_inner", "Argument[0].Field[crate::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::into_inner_unchecked", "Argument[0].Field[crate::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::into_ref", "Argument[self].Field[crate::pin::Pin::__pointer]", "ReturnValue.Field[crate::pin::Pin::__pointer]", "value", "dfc-generated"] - ["lang:core", "::map_unchecked", "Argument[0].ReturnValue", "ReturnValue.Field[crate::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["lang:core", "::map_unchecked", "Argument[self].Field[crate::pin::Pin::__pointer].Reference", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - ["lang:core", "::map_unchecked_mut", "Argument[0].ReturnValue", "ReturnValue.Field[crate::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["lang:core", "::map_unchecked_mut", "Argument[self].Field[crate::pin::Pin::__pointer].Field[0]", "ReturnValue.Field[crate::pin::Pin::__pointer].Reference", "value", "dfc-generated"] + - ["lang:core", "::map_unchecked_mut", "Argument[self].Field[crate::pin::Pin::__pointer]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::pin::Pin::__pointer]", "value", "dfc-generated"] - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[crate::pin::Pin::__pointer]", "value", "dfc-generated"] + - ["lang:core", "::set", "Argument[0]", "Argument[self].Field[crate::pin::Pin::__pointer].Reference", "value", "dfc-generated"] - ["lang:core", "::static_mut", "Argument[0]", "ReturnValue.Field[crate::pin::Pin::__pointer]", "value", "dfc-generated"] - ["lang:core", "::static_ref", "Argument[0]", "ReturnValue.Field[crate::pin::Pin::__pointer]", "value", "dfc-generated"] - ["lang:core", "::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -1170,16 +1063,65 @@ extensions: - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::ptr::unique::Unique::pointer]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::as_non_null_ptr", "Argument[self].Field[crate::ptr::unique::Unique::pointer]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::from", "Argument[0].Field[crate::ops::range::Range::end]", "ReturnValue.Field[crate::range::Range::end]", "value", "dfc-generated"] + - ["lang:core", "::from", "Argument[0].Field[crate::ops::range::Range::start]", "ReturnValue.Field[crate::range::Range::start]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::range::Range::end]", "ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::range::Range::start]", "ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::range::Range::end]", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::range::Range::end]", "ReturnValue.Field[crate::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::range::Range::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::range::Range::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::from", "Argument[0].Field[crate::ops::range::RangeFrom::start]", "ReturnValue.Field[crate::range::RangeFrom::start]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::range::RangeFrom::start]", "ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::range::RangeFrom::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::range::RangeFrom::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::from", "Argument[0].Field[crate::ops::range::RangeInclusive::end]", "ReturnValue.Field[crate::range::RangeInclusive::end]", "value", "dfc-generated"] + - ["lang:core", "::from", "Argument[0].Field[crate::ops::range::RangeInclusive::start]", "ReturnValue.Field[crate::range::RangeInclusive::start]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::range::RangeInclusive::end]", "ReturnValue.Field[1].Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::into_bounds", "Argument[self].Field[crate::range::RangeInclusive::start]", "ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::range::RangeInclusive::end]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::end_bound", "Argument[self].Field[crate::range::RangeInclusive::end]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::range::RangeInclusive::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::start_bound", "Argument[self].Field[crate::range::RangeInclusive::start]", "ReturnValue.Field[crate::ops::range::Bound::Included(0)]", "value", "dfc-generated"] + - ["lang:core", "::into_slice_range", "Argument[self].Field[crate::range::RangeInclusive::start]", "ReturnValue.Field[crate::range::Range::start]", "value", "dfc-generated"] + - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::max", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::min", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::nth", "Argument[self].Field[0].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::range::iter::IterRange(0)].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::remainder", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::nth", "Argument[self].Field[0].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::range::iter::IterRangeFrom(0)].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::remainder", "Argument[self].Field[0].Field[crate::ops::range::RangeFrom::start]", "ReturnValue.Field[crate::range::RangeFrom::start]", "value", "dfc-generated"] + - ["lang:core", "::remainder", "Argument[self].Field[crate::range::iter::IterRangeFrom(0)].Field[crate::ops::range::RangeFrom::start]", "ReturnValue.Field[crate::range::RangeFrom::start]", "value", "dfc-generated"] - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[crate::result::Result::Ok(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["lang:core", "::max", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::min", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::nth", "Argument[self].Field[0].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::range::iter::IterRangeInclusive(0)].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::remainder", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::result::IntoIter::inner].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::result::IntoIter::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::result::IntoIter::inner].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::result::IntoIter::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::result::Iter::inner]", "ReturnValue.Field[crate::result::Iter::inner]", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::result::Iter::inner].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::result::Iter::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::result::Iter::inner].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::result::Iter::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::result::IterMut::inner].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::result::IterMut::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::result::IterMut::inner].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::result::IterMut::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::branch", "Argument[self].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::branch", "Argument[self].Field[crate::result::Result::Ok(0)]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - ["lang:core", "::from_output", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - ["lang:core", "::and", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::and", "Argument[self].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::and_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::and_then", "Argument[self].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::and_then", "Argument[self].Field[crate::result::Result::Ok(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::as_deref", "Argument[self].Reference.Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)].Reference", "value", "dfc-generated"] @@ -1189,6 +1131,7 @@ extensions: - ["lang:core", "::as_ref", "Argument[self].Reference.Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)].Reference", "value", "dfc-generated"] - ["lang:core", "::as_ref", "Argument[self].Reference.Field[crate::result::Result::Ok(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - ["lang:core", "::cloned", "Argument[self].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::cloned", "Argument[self].Field[crate::result::Result::Ok(0)].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - ["lang:core", "::cloned", "Argument[self].Field[crate::result::Result::Ok(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - ["lang:core", "::copied", "Argument[self].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::copied", "Argument[self].Field[crate::result::Result::Ok(0)].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] @@ -1209,6 +1152,7 @@ extensions: - ["lang:core", "::iter_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - ["lang:core", "::map_err", "Argument[0].ReturnValue", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::map_err", "Argument[self].Field[crate::result::Result::Err(0)].Field[crate::sync::mpmc::error::SendTimeoutError::Disconnected(0)]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Disconnected(0)]", "value", "dfc-generated"] - ["lang:core", "::map_err", "Argument[self].Field[crate::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::map_err", "Argument[self].Field[crate::result::Result::Ok(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - ["lang:core", "::map_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -1240,29 +1184,80 @@ extensions: - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::slice::iter::ArrayChunks::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::slice::iter::ArrayChunks::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::remainder", "Argument[self].Field[crate::slice::iter::ArrayChunks::rem]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::into_remainder", "Argument[self].Field[crate::slice::iter::ArrayChunksMut::rem]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::count", "Argument[self].Field[crate::slice::iter::ArrayWindows::num]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::last", "Argument[self].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self].Field[crate::slice::iter::ArrayWindows::num]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self].Field[crate::slice::iter::ArrayWindows::num]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::ChunkBy::slice]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::ChunkBy::predicate]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::ChunkByMut::slice]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::ChunkByMut::predicate]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::Chunks::chunk_size]", "ReturnValue.Field[crate::slice::iter::Chunks::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::Chunks::v]", "ReturnValue.Field[crate::slice::iter::Chunks::v]", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::slice::iter::Chunks::v].Element", "Argument[self].Field[crate::slice::iter::Chunks::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::slice::iter::Chunks::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::last", "Argument[self].Field[crate::slice::iter::Chunks::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::slice::iter::Chunks::v].Element", "Argument[self].Field[crate::slice::iter::Chunks::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::slice::iter::Chunks::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::Chunks::v]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::Chunks::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::ChunksExact::chunk_size]", "ReturnValue.Field[crate::slice::iter::ChunksExact::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::ChunksExact::rem]", "ReturnValue.Field[crate::slice::iter::ChunksExact::rem]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::ChunksExact::v]", "ReturnValue.Field[crate::slice::iter::ChunksExact::v]", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::slice::iter::ChunksExact::v].Element", "Argument[self].Field[crate::slice::iter::ChunksExact::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::slice::iter::ChunksExact::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::ChunksExact::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::remainder", "Argument[self].Field[crate::slice::iter::ChunksExact::rem]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_remainder", "Argument[self].Field[crate::slice::iter::ChunksExactMut::rem]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::ChunksExactMut::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::ChunksMut::v]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::ChunksMut::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::slice::iter::GenericSplitN::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self].Field[crate::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::Iter::_marker]", "ReturnValue.Field[crate::slice::iter::Iter::_marker]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::Iter::end_or_len]", "ReturnValue.Field[crate::slice::iter::Iter::end_or_len]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::Iter::ptr]", "ReturnValue.Field[crate::slice::iter::Iter::ptr]", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::RChunks::chunk_size]", "ReturnValue.Field[crate::slice::iter::RChunks::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::RChunks::v]", "ReturnValue.Field[crate::slice::iter::RChunks::v]", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::slice::iter::RChunks::v].Element", "Argument[self].Field[crate::slice::iter::RChunks::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::slice::iter::RChunks::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::last", "Argument[self].Field[crate::slice::iter::RChunks::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::slice::iter::RChunks::v].Element", "Argument[self].Field[crate::slice::iter::RChunks::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::slice::iter::RChunks::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::RChunks::v]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::RChunks::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::RChunksExact::chunk_size]", "ReturnValue.Field[crate::slice::iter::RChunksExact::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::RChunksExact::rem]", "ReturnValue.Field[crate::slice::iter::RChunksExact::rem]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::RChunksExact::v]", "ReturnValue.Field[crate::slice::iter::RChunksExact::v]", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::slice::iter::RChunksExact::v].Element", "Argument[self].Field[crate::slice::iter::RChunksExact::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::slice::iter::RChunksExact::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::RChunksExact::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::remainder", "Argument[self].Field[crate::slice::iter::RChunksExact::rem]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_remainder", "Argument[self].Field[crate::slice::iter::RChunksExactMut::rem]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::RChunksExactMut::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::RChunksMut::v]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::RChunksMut::chunk_size]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::RSplit::inner].Reference", "ReturnValue.Field[crate::slice::iter::RSplit::inner]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::RSplit::inner]", "ReturnValue.Field[crate::slice::iter::RSplit::inner]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::RSplit::inner].Field[crate::slice::iter::Split::v]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::RSplit::inner].Field[crate::slice::iter::Split::pred]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::RSplitMut::inner].Field[crate::slice::iter::SplitMut::v]", "value", "dfc-generated"] @@ -1271,27 +1266,52 @@ extensions: - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::RSplitN::inner].Field[crate::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::RSplitNMut::inner].Field[crate::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::RSplitNMut::inner].Field[crate::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::finish", "Argument[self].Field[crate::slice::iter::Split::v]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::as_slice", "Argument[self].Field[crate::slice::iter::Split::v]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::Split::v]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::Split::pred]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::slice::iter::SplitInclusive::v].Element", "Argument[self].Field[crate::slice::iter::SplitInclusive::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::slice::iter::SplitInclusive::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::slice::iter::SplitInclusive::v].Element", "Argument[self].Field[crate::slice::iter::SplitInclusive::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::slice::iter::SplitInclusive::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::SplitInclusive::v]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::SplitInclusive::pred]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::SplitInclusiveMut::v]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::SplitInclusiveMut::pred]", "value", "dfc-generated"] + - ["lang:core", "::finish", "Argument[self].Field[crate::slice::iter::SplitMut::v]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::SplitMut::v]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::SplitMut::pred]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::SplitN::inner].Field[crate::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::SplitN::inner].Field[crate::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::SplitNMut::inner].Field[crate::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::SplitNMut::inner].Field[crate::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::Windows::size]", "ReturnValue.Field[crate::slice::iter::Windows::size]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::slice::iter::Windows::v]", "ReturnValue.Field[crate::slice::iter::Windows::v]", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::slice::iter::Windows::v].Element", "Argument[self].Field[crate::slice::iter::Windows::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self].Field[crate::slice::iter::Windows::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::slice::iter::Windows::v].Element", "Argument[self].Field[crate::slice::iter::Windows::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth_back", "Argument[self].Field[crate::slice::iter::Windows::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::last", "Argument[self].Field[crate::slice::iter::Windows::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::slice::iter::Windows::v].Element", "Argument[self].Field[crate::slice::iter::Windows::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::slice::iter::Windows::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::slice::iter::Windows::v].Element", "Argument[self].Field[crate::slice::iter::Windows::v].Reference", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::slice::iter::Windows::v].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::slice::iter::Windows::v]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::slice::iter::Windows::size]", "value", "dfc-generated"] - - ["lang:core", "::call", "Argument[0].Field[0]", "ReturnValue.Field[crate::char::EscapeDebug(0)].Field[crate::char::EscapeDebugInner::Char(0)]", "value", "dfc-generated"] - - ["lang:core", "::call_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::call_once", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::call", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::call_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::call_once", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::error_len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::valid_up_to", "Argument[self].Field[crate::str::error::Utf8Error::valid_up_to]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[0].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::nth", "Argument[self].Field[crate::str::iter::Bytes(0)].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::str::iter::CharIndices::front_offset]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["lang:core", "::offset", "Argument[self].Field[crate::str::iter::CharIndices::front_offset]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self].Field[crate::str::iter::EncodeUtf16::extra]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] @@ -1299,105 +1319,121 @@ extensions: - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0].Field[0]", "ReturnValue.Field[crate::str::iter::MatchIndices(0)].Field[crate::str::iter::MatchIndicesInternal(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::MatchIndices(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::MatchIndicesInternal(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0].Field[0]", "ReturnValue.Field[crate::str::iter::Matches(0)].Field[crate::str::iter::MatchesInternal(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::Matches(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::MatchesInternal(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0].Field[0]", "ReturnValue.Field[crate::str::iter::RMatchIndices(0)].Field[crate::str::iter::MatchIndicesInternal(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::RMatchIndices(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0].Field[0]", "ReturnValue.Field[crate::str::iter::RMatches(0)].Field[crate::str::iter::MatchesInternal(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::RMatches(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::RSplit(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::RSplitN(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::RSplitTerminator(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::Split(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::SplitInclusive(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::SplitN(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::iter::SplitTerminator(0)]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::str::iter::SplitInternal::matcher].Reference", "ReturnValue.Field[crate::str::iter::SplitInternal::matcher]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::str::iter::SplitInternal::matcher]", "ReturnValue.Field[crate::str::iter::SplitInternal::matcher]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::str::iter::SplitNInternal::iter].Reference", "ReturnValue.Field[crate::str::iter::SplitNInternal::iter]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self].Field[crate::str::iter::SplitNInternal::iter]", "ReturnValue.Field[crate::str::iter::SplitNInternal::iter]", "value", "dfc-generated"] + - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::invalid", "Argument[self].Field[crate::str::lossy::Utf8Chunk::invalid]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::valid", "Argument[self].Field[crate::str::lossy::Utf8Chunk::valid]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::debug", "Argument[self].Field[crate::str::lossy::Utf8Chunks::source]", "ReturnValue.Field[crate::str::lossy::Debug(0)]", "value", "dfc-generated"] + - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next_match_back", "Argument[self].Field[crate::str::pattern::CharSearcher::finger]", "Argument[self].Field[crate::str::pattern::CharSearcher::finger_back]", "value", "dfc-generated"] + - ["lang:core", "::next_match_back", "Argument[self].Field[crate::str::pattern::CharSearcher::finger_back]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["lang:core", "::haystack", "Argument[self].Field[crate::str::pattern::CharSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::next_match", "Argument[self].Field[crate::str::pattern::CharSearcher::finger]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["lang:core", "::next_match", "Argument[self].Field[crate::str::pattern::CharSearcher::finger_back]", "Argument[self].Field[crate::str::pattern::CharSearcher::finger]", "value", "dfc-generated"] - ["lang:core", "::matching", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - ["lang:core", "::matching", "Argument[1]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - ["lang:core", "::into_searcher", "Argument[0]", "ReturnValue.Field[crate::str::pattern::MultiCharEqSearcher::haystack]", "value", "dfc-generated"] - ["lang:core", "::into_searcher", "Argument[self].Field[0]", "ReturnValue.Field[crate::str::pattern::MultiCharEqSearcher::char_eq]", "value", "dfc-generated"] + - ["lang:core", "::into_searcher", "Argument[self].Field[crate::str::pattern::MultiCharEqPattern(0)]", "ReturnValue.Field[crate::str::pattern::MultiCharEqSearcher::char_eq]", "value", "dfc-generated"] + - ["lang:core", "::haystack", "Argument[self].Field[crate::str::pattern::MultiCharEqSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::matching", "Argument[0]", "ReturnValue.Field[crate::str::pattern::SearchStep::Match(0)]", "value", "dfc-generated"] - ["lang:core", "::matching", "Argument[1]", "ReturnValue.Field[crate::str::pattern::SearchStep::Match(1)]", "value", "dfc-generated"] - ["lang:core", "::rejecting", "Argument[0]", "ReturnValue.Field[crate::str::pattern::SearchStep::Reject(0)]", "value", "dfc-generated"] - ["lang:core", "::rejecting", "Argument[1]", "ReturnValue.Field[crate::str::pattern::SearchStep::Reject(1)]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::haystack", "Argument[self].Field[crate::str::pattern::StrSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicI128::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicI128::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicI128::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicI16::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicI16::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicI16::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicI32::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicI32::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicI32::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicI64::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicI64::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicI64::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicI8::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicI8::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicI8::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicIsize::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicIsize::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicIsize::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicPtr::p].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicPtr::p].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicPtr::p].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicU128::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicU128::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicU128::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicU16::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicU16::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicU16::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicU32::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicU32::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicU32::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicU64::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicU64::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicU64::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicU8::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicU8::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicU8::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicUsize::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::atomic::AtomicUsize::v].Field[crate::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::atomic::AtomicUsize::v].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::exclusive::Exclusive::inner]", "value", "dfc-generated"] - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::get_mut", "Argument[self].Field[crate::sync::exclusive::Exclusive::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::into_inner", "Argument[self].Field[crate::sync::exclusive::Exclusive::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::exclusive::Exclusive::inner]", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[crate::task::poll::Poll::Ready(0)]", "value", "dfc-generated"] + - ["lang:core", "::branch", "Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:core", "::branch", "Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)]", "ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)].Field[crate::task::poll::Poll::Ready(0)]", "value", "dfc-generated"] + - ["lang:core", "::async_gen_ready", "Argument[0]", "ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:core", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[crate::task::poll::Poll::Ready(0)]", "value", "dfc-generated"] - ["lang:core", "::map", "Argument[self].Field[crate::task::poll::Poll::Ready(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::map_err", "Argument[0].ReturnValue", "ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] @@ -1407,33 +1443,58 @@ extensions: - ["lang:core", "::map_ok", "Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:core", "::map_ok", "Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["lang:core", "::from_waker", "Argument[0]", "ReturnValue.Field[crate::task::wake::Context::waker]", "value", "dfc-generated"] + - ["lang:core", "::local_waker", "Argument[self].Field[crate::task::wake::Context::local_waker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::waker", "Argument[self].Field[crate::task::wake::Context::waker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:core", "::build", "Argument[self].Field[crate::task::wake::ContextBuilder::ext]", "ReturnValue.Field[crate::task::wake::Context::ext].Field[crate::panic::unwind_safe::AssertUnwindSafe(0)]", "value", "dfc-generated"] - ["lang:core", "::build", "Argument[self].Field[crate::task::wake::ContextBuilder::local_waker]", "ReturnValue.Field[crate::task::wake::Context::local_waker]", "value", "dfc-generated"] - ["lang:core", "::build", "Argument[self].Field[crate::task::wake::ContextBuilder::waker]", "ReturnValue.Field[crate::task::wake::Context::waker]", "value", "dfc-generated"] - ["lang:core", "::ext", "Argument[0]", "ReturnValue.Field[crate::task::wake::ContextBuilder::ext].Field[crate::task::wake::ExtData::Some(0)]", "value", "dfc-generated"] + - ["lang:core", "::from", "Argument[0].Field[crate::task::wake::Context::local_waker]", "ReturnValue.Field[crate::task::wake::ContextBuilder::local_waker]", "value", "dfc-generated"] + - ["lang:core", "::from", "Argument[0].Field[crate::task::wake::Context::waker]", "ReturnValue.Field[crate::task::wake::ContextBuilder::waker]", "value", "dfc-generated"] - ["lang:core", "::from_waker", "Argument[0]", "ReturnValue.Field[crate::task::wake::ContextBuilder::waker]", "value", "dfc-generated"] - ["lang:core", "::local_waker", "Argument[0]", "ReturnValue.Field[crate::task::wake::ContextBuilder::local_waker]", "value", "dfc-generated"] - ["lang:core", "::waker", "Argument[0]", "ReturnValue.Field[crate::task::wake::ContextBuilder::waker]", "value", "dfc-generated"] + - ["lang:core", "::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - ["lang:core", "::clone_from", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] + - ["lang:core", "::data", "Argument[self].Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::data]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from_raw", "Argument[0]", "ReturnValue.Field[crate::task::wake::LocalWaker::waker]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::data]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::vtable]", "value", "dfc-generated"] + - ["lang:core", "::vtable", "Argument[self].Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::vtable]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::task::wake::RawWaker::data]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::task::wake::RawWaker::vtable]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::task::wake::RawWakerVTable::clone]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::task::wake::RawWakerVTable::wake]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[crate::task::wake::RawWakerVTable::wake_by_ref]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[3]", "ReturnValue.Field[crate::task::wake::RawWakerVTable::drop]", "value", "dfc-generated"] + - ["lang:core", "::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - ["lang:core", "::clone_from", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] + - ["lang:core", "::data", "Argument[self].Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::data]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from_raw", "Argument[0]", "ReturnValue.Field[crate::task::wake::Waker::waker]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::data]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::vtable]", "value", "dfc-generated"] + - ["lang:core", "::vtable", "Argument[self].Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::vtable]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::mul_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:core", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:core", "::as_micros", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::as_millis", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::as_millis_f32", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::as_millis_f64", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::as_nanos", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::as_secs", "Argument[self].Field[crate::time::Duration::secs]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::as_secs_f32", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::as_secs_f64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::checked_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::div_duration_f32", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::div_duration_f32", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::div_duration_f64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::div_duration_f64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_days", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_hours", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_micros", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1445,9 +1506,7 @@ extensions: - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[crate::time::Duration::secs]", "value", "dfc-generated"] - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[crate::time::Duration::nanos].Field[crate::num::niche_types::Nanoseconds(0)]", "value", "dfc-generated"] - ["lang:core", "::saturating_mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::downcast_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::downcast_mut_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::downcast_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::downcast_ref_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::downcast_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::downcast_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -1593,13 +1652,8 @@ extensions: - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1611,35 +1665,17 @@ extensions: - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1678,13 +1714,8 @@ extensions: - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1696,35 +1727,17 @@ extensions: - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1763,13 +1776,8 @@ extensions: - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1781,35 +1789,17 @@ extensions: - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1848,13 +1838,8 @@ extensions: - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1866,35 +1851,17 @@ extensions: - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1933,13 +1900,8 @@ extensions: - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -1951,35 +1913,17 @@ extensions: - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2018,13 +1962,8 @@ extensions: - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2036,44 +1975,27 @@ extensions: - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_abs", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::unsigned_abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::as_bytes_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::as_mut_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::as_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::ceil_char_boundary", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_utf8_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::from_utf8_unchecked_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::splitn", "Argument[0]", "ReturnValue.Field[crate::str::iter::SplitN(0)].Field[crate::str::iter::SplitNInternal::count]", "value", "dfc-generated"] - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2109,11 +2031,7 @@ extensions: - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2136,8 +2054,6 @@ extensions: - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2202,11 +2118,7 @@ extensions: - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2229,8 +2141,6 @@ extensions: - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2295,11 +2205,7 @@ extensions: - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2322,8 +2228,6 @@ extensions: - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2381,11 +2285,7 @@ extensions: - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2408,8 +2308,6 @@ extensions: - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2475,11 +2373,7 @@ extensions: - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::ascii_change_case_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2502,8 +2396,6 @@ extensions: - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2565,11 +2457,7 @@ extensions: - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2592,8 +2480,7 @@ extensions: - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "::repeat_u16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -2672,13 +2559,13 @@ extensions: - ["lang:core", "crate::mem::take", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "crate::mem::transmute_copy", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "crate::num::flt2dec::estimator::estimate_scaling_factor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::dragon::format_exact", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::dragon::format_shortest", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "crate::num::flt2dec::strategy::dragon::format_exact", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "crate::num::flt2dec::strategy::dragon::format_shortest", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "crate::num::flt2dec::strategy::dragon::mul_pow10", "Argument[0].Field[crate::num::bignum::Big32x40::base].Element", "ReturnValue.Field[crate::num::bignum::Big32x40::base].Element", "value", "dfc-generated"] + - ["lang:core", "crate::num::flt2dec::strategy::dragon::mul_pow10", "Argument[0].Field[crate::num::bignum::Big32x40::size]", "ReturnValue.Field[crate::num::bignum::Big32x40::size]", "value", "dfc-generated"] - ["lang:core", "crate::num::flt2dec::strategy::dragon::mul_pow10", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::grisu::format_exact", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::grisu::format_exact_opt", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::grisu::format_shortest", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::grisu::format_shortest_opt", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "crate::num::flt2dec::strategy::grisu::format_exact", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "crate::num::flt2dec::strategy::grisu::format_shortest", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "crate::num::flt2dec::to_exact_exp_str", "Argument[5].Element", "Argument[0].Parameter[1].Reference", "value", "dfc-generated"] - ["lang:core", "crate::num::flt2dec::to_exact_fixed_str", "Argument[4].Element", "Argument[0].Parameter[1].Reference", "value", "dfc-generated"] - ["lang:core", "crate::num::flt2dec::to_shortest_exp_str", "Argument[5]", "Argument[0].Parameter[1]", "value", "dfc-generated"] @@ -2698,13 +2585,16 @@ extensions: - ["lang:core", "crate::ptr::from_mut", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "crate::ptr::from_ref", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:core", "crate::ptr::replace", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["lang:core", "crate::ptr::replace", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - ["lang:core", "crate::ptr::with_exposed_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "crate::ptr::with_exposed_provenance_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:core", "crate::slice::index::range", "Argument[1].Field[crate::ops::range::RangeTo::end]", "ReturnValue.Field[crate::ops::range::Range::end]", "value", "dfc-generated"] + - ["lang:core", "crate::slice::index::try_range", "Argument[1].Field[crate::ops::range::RangeTo::end]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::ops::range::Range::end]", "value", "dfc-generated"] - ["lang:core", "crate::slice::sort::shared::find_existing_run", "Argument[1].ReturnValue", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:core", "crate::slice::sort::shared::pivot::choose_pivot", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["lang:core", "crate::slice::sort::shared::smallsort::sort4_stable", "Argument[0].Reference", "Argument[2].Parameter[1].Reference", "value", "dfc-generated"] + - ["lang:core", "crate::slice::sort::stable::drift::sort", "Argument[0].Element", "Argument[3].Parameter[1].Reference", "value", "dfc-generated"] + - ["lang:core", "crate::slice::sort::stable::quicksort::quicksort", "Argument[0].Element", "Argument[4].Parameter[1].Reference", "value", "dfc-generated"] + - ["lang:core", "crate::slice::sort::stable::sort", "Argument[0].Element", "Argument[1].Parameter[1].Reference", "value", "dfc-generated"] - ["lang:core", "crate::str::converts::from_utf8_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "crate::str::converts::from_utf8_unchecked_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:core", "crate::str::validations::next_code_point", "Argument[0].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::unicode::unicode_data::conversions::to_lower", "Argument[0]", "ReturnValue.Element", "value", "dfc-generated"] - - ["lang:core", "crate::unicode::unicode_data::conversions::to_upper", "Argument[0]", "ReturnValue.Element", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rust/lang-proc_macro.model.yml b/rust/ql/lib/ext/generated/rust/lang-proc_macro.model.yml index 5ff016dcf3e..8f45f5773b4 100644 --- a/rust/ql/lib/ext/generated/rust/lang-proc_macro.model.yml +++ b/rust/ql/lib/ext/generated/rust/lang-proc_macro.model.yml @@ -8,6 +8,14 @@ extensions: - ["lang:proc_macro", "<&[u8] as crate::bridge::Unmark>::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "<&[u8] as crate::bridge::rpc::DecodeMut>::decode", "Argument[0].Element", "Argument[0].Reference.Reference", "value", "dfc-generated"] - ["lang:proc_macro", "<&[u8] as crate::bridge::rpc::DecodeMut>::decode", "Argument[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:proc_macro", "<&crate::bridge::Marked as crate::bridge::Unmark>::unmark", "Argument[self].Field[crate::bridge::Marked::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:proc_macro", "<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode", "Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:proc_macro", "<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode", "Argument[1].Field[crate::bridge::server::HandleStore::SourceFile].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:proc_macro", "<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode", "Argument[1].Field[crate::bridge::server::HandleStore::TokenStream].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:proc_macro", "<&mut crate::bridge::Marked as crate::bridge::Unmark>::unmark", "Argument[self].Field[crate::bridge::Marked::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:proc_macro", "<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode", "Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:proc_macro", "<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode", "Argument[1].Field[crate::bridge::server::HandleStore::SourceFile].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:proc_macro", "<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode", "Argument[1].Field[crate::bridge::server::HandleStore::TokenStream].Element", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:proc_macro", "<&str as crate::bridge::Mark>::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "<&str as crate::bridge::Unmark>::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -16,11 +24,28 @@ extensions: - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:proc_macro", "::delimiter", "Argument[self].Field[0].Field[crate::bridge::Group::delimiter]", "ReturnValue", "value", "dfc-generated"] + - ["lang:proc_macro", "::delimiter", "Argument[self].Field[crate::Group(0)].Field[crate::bridge::Group::delimiter]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue.Field[crate::Group(0)].Field[crate::bridge::Group::delimiter]", "value", "dfc-generated"] - ["lang:proc_macro", "::new", "Argument[1].Field[0]", "ReturnValue.Field[crate::Group(0)].Field[crate::bridge::Group::stream]", "value", "dfc-generated"] + - ["lang:proc_macro", "::new", "Argument[1].Field[crate::TokenStream(0)]", "ReturnValue.Field[crate::Group(0)].Field[crate::bridge::Group::stream]", "value", "dfc-generated"] + - ["lang:proc_macro", "::stream", "Argument[self].Field[0].Field[crate::bridge::Group::stream]", "ReturnValue.Field[crate::TokenStream(0)]", "value", "dfc-generated"] + - ["lang:proc_macro", "::stream", "Argument[self].Field[crate::Group(0)].Field[crate::bridge::Group::stream]", "ReturnValue.Field[crate::TokenStream(0)]", "value", "dfc-generated"] - ["lang:proc_macro", "::new", "Argument[1].Field[0]", "ReturnValue.Field[crate::Ident(0)].Field[crate::bridge::Ident::span]", "value", "dfc-generated"] + - ["lang:proc_macro", "::new", "Argument[1].Field[crate::Span(0)]", "ReturnValue.Field[crate::Ident(0)].Field[crate::bridge::Ident::span]", "value", "dfc-generated"] - ["lang:proc_macro", "::new_raw", "Argument[1].Field[0]", "ReturnValue.Field[crate::Ident(0)].Field[crate::bridge::Ident::span]", "value", "dfc-generated"] + - ["lang:proc_macro", "::new_raw", "Argument[1].Field[crate::Span(0)]", "ReturnValue.Field[crate::Ident(0)].Field[crate::bridge::Ident::span]", "value", "dfc-generated"] + - ["lang:proc_macro", "::set_span", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:proc_macro", "::span", "Argument[self].Field[0].Field[crate::bridge::Ident::span]", "ReturnValue.Field[crate::Span(0)]", "value", "dfc-generated"] + - ["lang:proc_macro", "::span", "Argument[self].Field[crate::Ident(0)].Field[crate::bridge::Ident::span]", "ReturnValue.Field[crate::Span(0)]", "value", "dfc-generated"] + - ["lang:proc_macro", "::set_span", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:proc_macro", "::span", "Argument[self].Field[0].Field[crate::bridge::Literal::span]", "ReturnValue.Field[crate::Span(0)]", "value", "dfc-generated"] + - ["lang:proc_macro", "::span", "Argument[self].Field[crate::Literal(0)].Field[crate::bridge::Literal::span]", "ReturnValue.Field[crate::Span(0)]", "value", "dfc-generated"] + - ["lang:proc_macro", "::as_char", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:proc_macro", "::set_span", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:proc_macro", "::span", "Argument[self].Field[0].Field[crate::bridge::Punct::span]", "ReturnValue.Field[crate::Span(0)]", "value", "dfc-generated"] + - ["lang:proc_macro", "::span", "Argument[self].Field[crate::Punct(0)].Field[crate::bridge::Punct::span]", "ReturnValue.Field[crate::Span(0)]", "value", "dfc-generated"] - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::into_token_stream", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -33,15 +58,8 @@ extensions: - ["lang:proc_macro", "::from_single", "Argument[0]", "ReturnValue.Field[crate::bridge::DelimSpan::open]", "value", "dfc-generated"] - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "ReturnValue.Field[crate::bridge::LitKind::ByteStrRaw(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "ReturnValue.Field[crate::bridge::LitKind::CStrRaw(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "ReturnValue.Field[crate::bridge::LitKind::StrRaw(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "ReturnValue.Field[crate::bridge::Literal::kind].Field[crate::bridge::LitKind::ByteStrRaw(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "ReturnValue.Field[crate::bridge::Literal::kind].Field[crate::bridge::LitKind::CStrRaw(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "ReturnValue.Field[crate::bridge::Literal::kind].Field[crate::bridge::LitKind::StrRaw(0)]", "value", "dfc-generated"] - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue.Field[crate::bridge::Marked::value]", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "ReturnValue.Field[crate::bridge::Punct::ch]", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "ReturnValue.Field[crate::bridge::TokenTree::Punct(0)].Field[crate::bridge::Punct::ch]", "value", "dfc-generated"] + - ["lang:proc_macro", "::unmark", "Argument[self].Field[crate::bridge::Marked::value]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::take", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::attr", "Argument[0]", "ReturnValue.Field[crate::bridge::client::ProcMacro::Attr::name]", "value", "dfc-generated"] @@ -51,26 +69,38 @@ extensions: - ["lang:proc_macro", "::name", "Argument[self].Field[crate::bridge::client::ProcMacro::Attr::name]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::name", "Argument[self].Field[crate::bridge::client::ProcMacro::Bang::name]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::name", "Argument[self].Field[crate::bridge::client::ProcMacro::CustomDerive::trait_name]", "ReturnValue", "value", "dfc-generated"] + - ["lang:proc_macro", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:proc_macro", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::clone", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:proc_macro", "::call", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:proc_macro", "::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:proc_macro", "::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:proc_macro", "::copy", "Argument[self].Field[crate::bridge::handle::InternedStore::owned].Element", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue.Field[crate::bridge::handle::InternedStore::owned].Field[crate::bridge::handle::OwnedStore::counter]", "value", "dfc-generated"] - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue.Field[crate::bridge::handle::OwnedStore::counter]", "value", "dfc-generated"] - ["lang:proc_macro", "::as_str", "Argument[self].Field[crate::bridge::rpc::PanicMessage::StaticStr(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:proc_macro", "::as_str", "Argument[self].Field[crate::bridge::rpc::PanicMessage::String(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:proc_macro", "::dispatch", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::run_bridge_and_client", "Argument[2].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue.Field[crate::bridge::server::MaybeCrossThread::cross_thread]", "value", "dfc-generated"] - ["lang:proc_macro", "::run_bridge_and_client", "Argument[2].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::next", "Argument[self].Field[0].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:proc_macro", "::next", "Argument[self].Field[crate::diagnostic::Children(0)].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:proc_macro", "::error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:proc_macro", "::level", "Argument[self].Field[crate::diagnostic::Diagnostic::level]", "ReturnValue", "value", "dfc-generated"] + - ["lang:proc_macro", "::message", "Argument[self].Field[crate::diagnostic::Diagnostic::message]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue.Field[crate::diagnostic::Diagnostic::level]", "value", "dfc-generated"] - ["lang:proc_macro", "::note", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:proc_macro", "::set_level", "Argument[0]", "Argument[self].Field[crate::diagnostic::Diagnostic::level]", "value", "dfc-generated"] - ["lang:proc_macro", "::span_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::span_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::span_note", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::span_warning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::spanned", "Argument[1]", "ReturnValue.Field[crate::diagnostic::Diagnostic::level]", "value", "dfc-generated"] + - ["lang:proc_macro", "::spans", "Argument[self].Field[crate::diagnostic::Diagnostic::spans]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:proc_macro", "::warning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rust/lang-std.model.yml b/rust/ql/lib/ext/generated/rust/lang-std.model.yml index 4a1103eaa48..00d31391a4d 100644 --- a/rust/ql/lib/ext/generated/rust/lang-std.model.yml +++ b/rust/ql/lib/ext/generated/rust/lang-std.model.yml @@ -11,130 +11,318 @@ extensions: - ["lang:std", "<&[u8] as crate::io::Read>::read_to_end", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] - ["lang:std", "<&[u8] as crate::io::Read>::read_to_string", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] - ["lang:std", "<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] - - ["lang:std", "<&crate::collections::hash::set::HashSet as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "<&crate::collections::hash::set::HashSet as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "<&crate::collections::hash::set::HashSet as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "<&crate::io::stdio::Stdin as crate::io::Read>::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "<&crate::io::stdio::Stdin as crate::io::Read>::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "<&crate::io::stdio::Stdin as crate::io::Read>::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["lang:std", "<&crate::os::unix::net::listener::UnixListener as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue.Field[crate::os::unix::net::listener::Incoming::listener]", "value", "dfc-generated"] - ["lang:std", "<&crate::sync::mpmc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue.Field[crate::sync::mpmc::Iter::rx]", "value", "dfc-generated"] - ["lang:std", "<&crate::sync::mpsc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue.Field[crate::sync::mpsc::Iter::rx]", "value", "dfc-generated"] + - ["lang:std", "<&mut _ as crate::io::BufRead>::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "<&mut _ as crate::io::BufRead>::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["lang:std", "<&mut _ as crate::io::Read>::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "<&mut _ as crate::io::Read>::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "<&mut _ as crate::io::Read>::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "<&mut _ as crate::io::Read>::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::and_modify", "Argument[self].Field[crate::collections::hash::map::Entry::Occupied(0)]", "ReturnValue.Field[crate::collections::hash::map::Entry::Occupied(0)]", "value", "dfc-generated"] - ["lang:std", "::and_modify", "Argument[self].Field[crate::collections::hash::map::Entry::Vacant(0)]", "ReturnValue.Field[crate::collections::hash::map::Entry::Vacant(0)]", "value", "dfc-generated"] + - ["lang:std", "::insert_entry", "Argument[self].Field[crate::collections::hash::map::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::map::HashMap::base].Reference", "ReturnValue.Field[crate::collections::hash::map::HashMap::base]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::map::HashMap::base]", "ReturnValue.Field[crate::collections::hash::map::HashMap::base].Reference", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::map::HashMap::base]", "ReturnValue.Field[crate::collections::hash::map::HashMap::base]", "value", "dfc-generated"] - ["lang:std", "::raw_entry", "Argument[self]", "ReturnValue.Field[crate::collections::hash::map::RawEntryBuilder::map]", "value", "dfc-generated"] - ["lang:std", "::raw_entry_mut", "Argument[self]", "ReturnValue.Field[crate::collections::hash::map::RawEntryBuilderMut::map]", "value", "dfc-generated"] - ["lang:std", "::try_insert", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::collections::hash::map::OccupiedError::value]", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::map::Iter::base].Reference", "ReturnValue.Field[crate::collections::hash::map::Iter::base]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::map::Iter::base]", "ReturnValue.Field[crate::collections::hash::map::Iter::base].Reference", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::map::Iter::base]", "ReturnValue.Field[crate::collections::hash::map::Iter::base]", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::and_modify", "Argument[self].Field[crate::collections::hash::map::RawEntryMut::Occupied(0)]", "ReturnValue.Field[crate::collections::hash::map::RawEntryMut::Occupied(0)]", "value", "dfc-generated"] - ["lang:std", "::and_modify", "Argument[self].Field[crate::collections::hash::map::RawEntryMut::Vacant(0)]", "ReturnValue.Field[crate::collections::hash::map::RawEntryMut::Vacant(0)]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::insert", "Argument[self].Field[crate::collections::hash::set::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::HashSet::base].Reference", "ReturnValue.Field[crate::collections::hash::set::HashSet::base]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::HashSet::base]", "ReturnValue.Field[crate::collections::hash::set::HashSet::base].Reference", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::HashSet::base]", "ReturnValue.Field[crate::collections::hash::set::HashSet::base]", "value", "dfc-generated"] - ["lang:std", "::difference", "Argument[0]", "ReturnValue.Field[crate::collections::hash::set::Difference::other]", "value", "dfc-generated"] - ["lang:std", "::intersection", "Argument[0]", "ReturnValue.Field[crate::collections::hash::set::Intersection::other]", "value", "dfc-generated"] - ["lang:std", "::intersection", "Argument[self]", "ReturnValue.Field[crate::collections::hash::set::Intersection::other]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::Iter::base].Reference", "ReturnValue.Field[crate::collections::hash::set::Iter::base]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::Iter::base]", "ReturnValue.Field[crate::collections::hash::set::Iter::base].Reference", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::Iter::base]", "ReturnValue.Field[crate::collections::hash::set::Iter::base]", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::SymmetricDifference::iter].Reference", "ReturnValue.Field[crate::collections::hash::set::SymmetricDifference::iter]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::SymmetricDifference::iter]", "ReturnValue.Field[crate::collections::hash::set::SymmetricDifference::iter].Reference", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::SymmetricDifference::iter]", "ReturnValue.Field[crate::collections::hash::set::SymmetricDifference::iter]", "value", "dfc-generated"] - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::Union::iter].Reference", "ReturnValue.Field[crate::collections::hash::set::Union::iter]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::Union::iter]", "ReturnValue.Field[crate::collections::hash::set::Union::iter].Reference", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::collections::hash::set::Union::iter]", "ReturnValue.Field[crate::collections::hash::set::Union::iter]", "value", "dfc-generated"] - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[crate::error::Report::error]", "value", "dfc-generated"] + - ["lang:std", "::pretty", "Argument[0]", "Argument[self].Field[crate::error::Report::pretty]", "value", "dfc-generated"] + - ["lang:std", "::pretty", "Argument[0]", "ReturnValue.Field[crate::error::Report::pretty]", "value", "dfc-generated"] - ["lang:std", "::pretty", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::show_backtrace", "Argument[0]", "Argument[self].Field[crate::error::Report::show_backtrace]", "value", "dfc-generated"] + - ["lang:std", "::show_backtrace", "Argument[0]", "ReturnValue.Field[crate::error::Report::show_backtrace]", "value", "dfc-generated"] - ["lang:std", "::show_backtrace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::ffi::os_str::OsStr::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_encoded_bytes", "Argument[self].Field[crate::ffi::os_str::OsStr::inner].Field[crate::sys::os_str::bytes::Slice::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::display", "Argument[self]", "ReturnValue.Field[crate::ffi::os_str::Display::os_str]", "value", "dfc-generated"] - ["lang:std", "::borrow", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::from", "Argument[0].Field[crate::path::PathBuf::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::deref", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::deref_mut", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_str", "Argument[0].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["lang:std", "::into_vec", "Argument[self].Field[crate::ffi::os_str::OsString::inner].Field[crate::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::ffi::os_str::OsString::inner]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::ffi::os_str::OsString::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_os_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::from_encoded_bytes_unchecked", "Argument[0]", "ReturnValue.Field[crate::ffi::os_str::OsString::inner].Field[crate::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] + - ["lang:std", "::into_encoded_bytes", "Argument[self].Field[crate::ffi::os_str::OsString::inner].Field[crate::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_inner_mut", "Argument[self].Field[crate::fs::DirBuilder::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::recursive", "Argument[0]", "Argument[self].Field[crate::fs::DirBuilder::recursive]", "value", "dfc-generated"] + - ["lang:std", "::recursive", "Argument[0]", "ReturnValue.Field[crate::fs::DirBuilder::recursive]", "value", "dfc-generated"] - ["lang:std", "::recursive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::fs::DirEntry(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::fs::File::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::fs::File::inner]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::fs::File::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::set_created", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner_mut", "Argument[self].Field[crate::fs::FileTimes(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::set_accessed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::set_modified", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::fs::FileType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::fs::Metadata(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::fs::Metadata(0)]", "value", "dfc-generated"] - ["lang:std", "::custom_flags", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::fs::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner_mut", "Argument[self].Field[crate::fs::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::create", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::create_new", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::truncate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from_mode", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::set_mode", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:std", "::mode", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::fs::Permissions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::fs::Permissions(0)]", "value", "dfc-generated"] + - ["lang:std", "::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::get_mut", "Argument[self].Field[crate::io::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["lang:std", "::get_mut", "Argument[self].Field[crate::io::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["lang:std", "::get_ref", "Argument[self].Field[crate::io::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["lang:std", "::get_ref", "Argument[self].Field[crate::io::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::io::Chain::first]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::io::Chain::second]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["lang:std", "::advance_slices", "Argument[0].Reference.Element", "Argument[0].Reference.Reference", "value", "dfc-generated"] - ["lang:std", "::advance_slices", "Argument[0].Reference.Element", "Argument[0].Reference.Reference", "value", "dfc-generated"] + - ["lang:std", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::lower_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::upper_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::get_mut", "Argument[self].Field[crate::io::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_ref", "Argument[self].Field[crate::io::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::io::Take::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::limit", "Argument[self].Field[crate::io::Take::limit]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::set_limit", "Argument[0]", "Argument[self].Field[crate::io::Take::limit]", "value", "dfc-generated"] + - ["lang:std", "::write", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::error", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::error", "Argument[self].Field[crate::io::buffered::IntoInnerError(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::into_error", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_error", "Argument[self].Field[crate::io::buffered::IntoInnerError(1)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_parts", "Argument[self].Field[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:std", "::into_parts", "Argument[self].Field[1]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::io::buffered::IntoInnerError(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_parts", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::consume", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::get_mut", "Argument[self].Field[crate::io::buffered::bufreader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_ref", "Argument[self].Field[crate::io::buffered::bufreader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::io::buffered::bufreader::BufReader::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::io::buffered::bufreader::BufReader::inner]", "value", "dfc-generated"] + - ["lang:std", "::seek_relative", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:std", "::with_buffer", "Argument[0]", "ReturnValue.Field[crate::io::buffered::bufreader::BufReader::inner]", "value", "dfc-generated"] - ["lang:std", "::with_buffer", "Argument[1]", "ReturnValue.Field[crate::io::buffered::bufreader::BufReader::buf]", "value", "dfc-generated"] - ["lang:std", "::with_capacity", "Argument[1]", "ReturnValue.Field[crate::io::buffered::bufreader::BufReader::inner]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::io::buffered::IntoInnerError(0)]", "value", "dfc-generated"] + - ["lang:std", "::consume", "Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::filled]", "Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::pos]", "value", "dfc-generated"] + - ["lang:std", "::filled", "Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::filled]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::pos", "Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::pos]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::buffer", "Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::buffer_mut", "Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_mut", "Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_ref", "Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - ["lang:std", "::with_buffer", "Argument[0]", "ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - ["lang:std", "::with_buffer", "Argument[1]", "ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::buf]", "value", "dfc-generated"] - ["lang:std", "::with_capacity", "Argument[1]", "ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::io::buffered::bufwriter::WriterPanicked::buf]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner].Field[crate::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - ["lang:std", "::with_capacity", "Argument[1]", "ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner].Field[crate::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::io::buffered::linewritershim::LineWriterShim::buffer]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::clone_from", "Argument[0].Field[crate::io::cursor::Cursor::inner]", "Argument[self].Field[crate::io::cursor::Cursor::inner].Reference", "value", "dfc-generated"] + - ["lang:std", "::clone_from", "Argument[0].Field[crate::io::cursor::Cursor::inner]", "Argument[self].Field[crate::io::cursor::Cursor::inner]", "value", "dfc-generated"] + - ["lang:std", "::clone_from", "Argument[0].Field[crate::io::cursor::Cursor::pos]", "Argument[self].Field[crate::io::cursor::Cursor::pos]", "value", "dfc-generated"] + - ["lang:std", "::seek", "Argument[0].Field[crate::io::SeekFrom::Start(0)]", "Argument[self].Field[crate::io::cursor::Cursor::pos]", "value", "dfc-generated"] + - ["lang:std", "::seek", "Argument[0].Field[crate::io::SeekFrom::Start(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["lang:std", "::seek", "Argument[self].Field[crate::io::cursor::Cursor::pos]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["lang:std", "::stream_position", "Argument[self].Field[crate::io::cursor::Cursor::pos]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["lang:std", "::get_mut", "Argument[self].Field[crate::io::cursor::Cursor::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_ref", "Argument[self].Field[crate::io::cursor::Cursor::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::io::cursor::Cursor::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::io::cursor::Cursor::inner]", "value", "dfc-generated"] + - ["lang:std", "::position", "Argument[self].Field[crate::io::cursor::Cursor::pos]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::set_position", "Argument[0]", "Argument[self].Field[crate::io::cursor::Cursor::pos]", "value", "dfc-generated"] - ["lang:std", "::from", "Argument[0].Field[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::new_simple_message", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::from", "Argument[0].Field[crate::io::buffered::IntoInnerError(1)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::lines", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::fill_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::net::tcp::TcpListener(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::net::tcp::TcpListener(0)]", "value", "dfc-generated"] - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::net::tcp::TcpListener(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::incoming", "Argument[self]", "ReturnValue.Field[crate::net::tcp::Incoming::listener]", "value", "dfc-generated"] - ["lang:std", "::into_incoming", "Argument[self]", "ReturnValue.Field[crate::net::tcp::IntoIncoming::listener]", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::net::tcp::TcpStream(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::net::tcp::TcpStream(0)]", "value", "dfc-generated"] - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::net::tcp::TcpStream(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::net::udp::UdpSocket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::net::udp::UdpSocket(0)]", "value", "dfc-generated"] - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::net::udp::UdpSocket(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_fd", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::borrow_raw", "Argument[0]", "ReturnValue.Field[crate::os::fd::owned::BorrowedFd::fd].Field[crate::num::niche_types::I32NotAllOnes(0)]", "value", "dfc-generated"] - - ["lang:std", "::from_raw_fd", "Argument[0]", "ReturnValue.Field[crate::os::fd::owned::OwnedFd::fd].Field[crate::num::niche_types::I32NotAllOnes(0)]", "value", "dfc-generated"] - ["lang:std", "::from_parts", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::os::unix::net::addr::SocketAddr::addr]", "value", "dfc-generated"] - ["lang:std", "::from_parts", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::os::unix::net::addr::SocketAddr::len]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::os::unix::net::datagram::UnixDatagram(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::incoming", "Argument[self]", "ReturnValue.Field[crate::os::unix::net::listener::Incoming::listener]", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::os::unix::net::stream::UnixStream(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::can_unwind", "Argument[self].Field[crate::panic::PanicHookInfo::can_unwind]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::force_no_backtrace", "Argument[self].Field[crate::panic::PanicHookInfo::force_no_backtrace]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::location", "Argument[self].Field[crate::panic::PanicHookInfo::location]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::panic::PanicHookInfo::location]", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[1]", "ReturnValue.Field[crate::panic::PanicHookInfo::payload]", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[2]", "ReturnValue.Field[crate::panic::PanicHookInfo::can_unwind]", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[3]", "ReturnValue.Field[crate::panic::PanicHookInfo::force_no_backtrace]", "value", "dfc-generated"] + - ["lang:std", "::payload", "Argument[self].Field[crate::panic::PanicHookInfo::payload]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::next", "Argument[self].Field[crate::path::Ancestors::next]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_ref", "Argument[self].Field[crate::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_ref", "Argument[self].Reference.Field[crate::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_os_str", "Argument[self].Field[crate::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::next_back", "Argument[self].Field[crate::path::Components::path].Element", "Argument[self].Field[crate::path::Components::path].Reference", "value", "dfc-generated"] + - ["lang:std", "::next", "Argument[self].Field[crate::path::Components::path].Element", "Argument[self].Field[crate::path::Components::path].Reference", "value", "dfc-generated"] + - ["lang:std", "::as_ref", "Argument[self].Field[crate::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::ancestors", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::as_mut_os_str", "Argument[self].Field[crate::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_os_str", "Argument[self].Field[crate::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::display", "Argument[self].Field[crate::path::Path::inner]", "ReturnValue.Field[crate::path::Display::inner].Field[crate::ffi::os_str::Display::os_str]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::as_ref", "Argument[self].Field[crate::path::PathBuf::inner].Element", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[crate::borrow::Cow::Owned(0)].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue.Field[crate::path::PathBuf::inner]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[crate::borrow::Cow::Owned(0)].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue.Field[crate::path::PathBuf::inner]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[crate::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::from", "Argument[0].Field[crate::path::PathBuf::inner].Field[crate::path::PathBuf::inner]", "ReturnValue.Field[crate::path::PathBuf::inner]", "value", "dfc-generated"] + - ["lang:std", "::from", "Argument[0].Field[crate::path::PathBuf::inner]", "ReturnValue.Field[crate::path::PathBuf::inner]", "value", "dfc-generated"] - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[crate::path::PathBuf::inner]", "value", "dfc-generated"] - - ["lang:std", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::from_str", "Argument[0].Field[crate::path::PathBuf::inner].Field[crate::path::PathBuf::inner]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::path::PathBuf::inner]", "value", "dfc-generated"] + - ["lang:std", "::from_str", "Argument[0].Field[crate::path::PathBuf::inner]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::path::PathBuf::inner]", "value", "dfc-generated"] + - ["lang:std", "::from_str", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::path::PathBuf::inner]", "value", "dfc-generated"] + - ["lang:std", "::as_mut_os_string", "Argument[self].Field[crate::path::PathBuf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::as_path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_os_string", "Argument[self].Field[crate::path::PathBuf::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_os_str", "Argument[self].Field[crate::path::PrefixComponent::raw]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::kind", "Argument[self].Field[crate::path::PrefixComponent::parsed]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::process::Child::handle]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0].Field[0]", "ReturnValue.Field[crate::process::Child::handle]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::process::Child::handle]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::process::ChildStderr::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::process::ChildStderr::inner]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::process::ChildStderr::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::process::ChildStdin::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::process::ChildStdin::inner]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::process::ChildStdin::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::process::ChildStdout::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::process::ChildStdout::inner]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::process::ChildStdout::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::arg0", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::gid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::pre_exec", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::process_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::uid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::process::Command::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner_mut", "Argument[self].Field[crate::process::Command::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::current_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -145,32 +333,54 @@ extensions: - ["lang:std", "::stderr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::stdin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::stdout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[crate::process::ExitCode(0)].Field[crate::sys::pal::unix::process::process_common::ExitCode(0)]", "value", "dfc-generated"] - ["lang:std", "::report", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::process::ExitCode(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::process::ExitCode(0)]", "value", "dfc-generated"] - ["lang:std", "::to_i32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from_raw", "Argument[0]", "ReturnValue.Field[crate::process::ExitStatus(0)].Field[crate::sys::pal::unix::process::process_inner::ExitStatus(0)]", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::process::ExitStatus(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::process::ExitStatus(0)]", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::process::Stdio(0)]", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::barrier::Barrier::num_threads]", "value", "dfc-generated"] - ["lang:std", "::is_leader", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::is_leader", "Argument[self].Field[crate::sync::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::iter", "Argument[self]", "ReturnValue.Field[crate::sync::mpmc::Iter::rx]", "value", "dfc-generated"] - ["lang:std", "::try_iter", "Argument[self]", "ReturnValue.Field[crate::sync::mpmc::TryIter::rx]", "value", "dfc-generated"] + - ["lang:std", "::capacity", "Argument[self].Field[crate::sync::mpmc::array::Channel::cap]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::len", "Argument[self].Field[crate::sync::mpmc::array::Channel::cap]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpmc::error::SendTimeoutError::Timeout(0)]", "value", "dfc-generated"] + - ["lang:std", "::try_send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Full(0)]", "value", "dfc-generated"] - ["lang:std", "::with_capacity", "Argument[0]", "ReturnValue.Field[crate::sync::mpmc::array::Channel::cap]", "value", "dfc-generated"] - ["lang:std", "::write", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:std", "::acquire", "Argument[self].Field[crate::sync::mpmc::counter::Receiver::counter]", "ReturnValue.Field[crate::sync::mpmc::counter::Receiver::counter]", "value", "dfc-generated"] + - ["lang:std", "::acquire", "Argument[self].Field[crate::sync::mpmc::counter::Sender::counter]", "ReturnValue.Field[crate::sync::mpmc::counter::Sender::counter]", "value", "dfc-generated"] + - ["lang:std", "::from", "Argument[0].Field[crate::sync::mpsc::SendError(0)]", "ReturnValue.Field[crate::sync::mpmc::error::SendTimeoutError::Disconnected(0)]", "value", "dfc-generated"] - ["lang:std", "::write", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:std", "::hook", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::mpmc::select::Selected::Operation(0)].Field[crate::sync::mpmc::select::Operation(0)]", "value", "dfc-generated"] - ["lang:std", "::into", "Argument[self].Field[crate::sync::mpmc::select::Selected::Operation(0)].Field[crate::sync::mpmc::select::Operation(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::deref", "Argument[self].Field[crate::sync::mpmc::utils::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::deref_mut", "Argument[self].Field[crate::sync::mpmc::utils::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::mpmc::utils::CachePadded::value]", "value", "dfc-generated"] + - ["lang:std", "::send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpmc::error::SendTimeoutError::Disconnected(0)]", "value", "dfc-generated"] + - ["lang:std", "::try_send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Disconnected(0)]", "value", "dfc-generated"] + - ["lang:std", "::try_send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Full(0)]", "value", "dfc-generated"] - ["lang:std", "::write", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:std", "::iter", "Argument[self]", "ReturnValue.Field[crate::sync::mpsc::Iter::rx]", "value", "dfc-generated"] - ["lang:std", "::try_iter", "Argument[self]", "ReturnValue.Field[crate::sync::mpsc::TryIter::rx]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::sync::mpsc::Sender::inner].Reference", "ReturnValue.Field[crate::sync::mpsc::Sender::inner]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::sync::mpsc::Sender::inner]", "ReturnValue.Field[crate::sync::mpsc::Sender::inner].Reference", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::sync::mpsc::Sender::inner]", "ReturnValue.Field[crate::sync::mpsc::Sender::inner]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::sync::mpsc::SyncSender::inner].Reference", "ReturnValue.Field[crate::sync::mpsc::SyncSender::inner]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::sync::mpsc::SyncSender::inner]", "ReturnValue.Field[crate::sync::mpsc::SyncSender::inner].Reference", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::sync::mpsc::SyncSender::inner]", "ReturnValue.Field[crate::sync::mpsc::SyncSender::inner]", "value", "dfc-generated"] - ["lang:std", "::from", "Argument[0].Field[crate::sync::mpsc::SendError(0)]", "ReturnValue.Field[crate::sync::mpsc::TrySendError::Disconnected(0)]", "value", "dfc-generated"] - ["lang:std", "::set", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:std", "::try_insert", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] + - ["lang:std", "::get_mut", "Argument[self].Field[crate::sync::poison::PoisonError::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_ref", "Argument[self].Field[crate::sync::poison::PoisonError::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sync::poison::PoisonError::data]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::poison::PoisonError::data]", "value", "dfc-generated"] - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::poison::TryLockError::Poisoned(0)]", "value", "dfc-generated"] - ["lang:std", "::cause", "Argument[self].Reference.Field[crate::sync::poison::TryLockError::Poisoned(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] @@ -183,90 +393,185 @@ extensions: - ["lang:std", "::wait_while", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - ["lang:std", "::wait_while", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - ["lang:std", "::timed_out", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::timed_out", "Argument[self].Field[crate::sync::poison::condvar::WaitTimeoutResult(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::poison::mutex::Mutex::data].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sync::poison::mutex::Mutex::data].Field[crate::cell::UnsafeCell::value]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sync::poison::mutex::Mutex::data].Field[crate::cell::UnsafeCell::value]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - ["lang:std", "::lock", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::poison::mutex::Mutex::data].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - ["lang:std", "::replace", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data]", "value", "dfc-generated"] - ["lang:std", "::set", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data]", "value", "dfc-generated"] - - ["lang:std", "::try_lock", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::try_lock", "Argument[self]", "ReturnValue.Field[crate::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::is_poisoned", "Argument[self].Field[crate::sync::poison::once::OnceState::inner].Field[crate::sys::sync::once::queue::OnceState::poisoned]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sync::poison::rwlock::RwLock::data].Field[crate::cell::UnsafeCell::value]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sync::poison::rwlock::RwLock::data].Field[crate::cell::UnsafeCell::value]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] + - ["lang:std", "::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::replace", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data]", "value", "dfc-generated"] - ["lang:std", "::set", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data]", "value", "dfc-generated"] - - ["lang:std", "::try_write", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::try_write", "Argument[self]", "ReturnValue.Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - ["lang:std", "::write", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::downgrade", "Argument[0].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock].Field[crate::sync::poison::rwlock::RwLock::inner]", "ReturnValue.Field[crate::sync::poison::rwlock::RwLockReadGuard::inner_lock].Reference", "value", "dfc-generated"] - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[crate::sync::reentrant_lock::ReentrantLock::data]", "value", "dfc-generated"] + - ["lang:std", "::get_mut", "Argument[self].Field[crate::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::lock", "Argument[self]", "ReturnValue.Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock]", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::reentrant_lock::ReentrantLock::data]", "value", "dfc-generated"] - ["lang:std", "::try_lock", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock]", "value", "dfc-generated"] + - ["lang:std", "::deref", "Argument[self].Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock].Field[crate::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::port", "Argument[self].Field[crate::sys::net::connection::socket::LookupHost::port]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::sys::net::connection::socket::TcpListener::inner]", "value", "dfc-generated"] - ["lang:std", "::bind", "Argument[0].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::bind", "Argument[0].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_socket", "Argument[self].Field[crate::sys::net::connection::socket::TcpListener::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::socket", "Argument[self].Field[crate::sys::net::connection::socket::TcpListener::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::sys::net::connection::socket::TcpStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::sys::net::connection::socket::TcpStream::inner]", "value", "dfc-generated"] - ["lang:std", "::connect", "Argument[0].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::connect", "Argument[0].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_socket", "Argument[self].Field[crate::sys::net::connection::socket::TcpStream::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::socket", "Argument[self].Field[crate::sys::net::connection::socket::TcpStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::sys::net::connection::socket::UdpSocket::inner]", "value", "dfc-generated"] - ["lang:std", "::bind", "Argument[0].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::bind", "Argument[0].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::connect", "Argument[0].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::connect", "Argument[0].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_socket", "Argument[self].Field[crate::sys::net::connection::socket::UdpSocket::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::socket", "Argument[self].Field[crate::sys::net::connection::socket::UdpSocket::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::sys::net::connection::socket::unix::Socket(0)]", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::sys::net::connection::socket::unix::Socket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sys::net::connection::socket::unix::Socket(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::sys::os_str::bytes::Buf::inner].Reference", "ReturnValue.Field[crate::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] + - ["lang:std", "::clone", "Argument[self].Field[crate::sys::os_str::bytes::Buf::inner]", "ReturnValue.Field[crate::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::sys::os_str::bytes::Buf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::from_encoded_bytes_unchecked", "Argument[0]", "ReturnValue.Field[crate::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] + - ["lang:std", "::into_encoded_bytes", "Argument[self].Field[crate::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_encoded_bytes", "Argument[self].Field[crate::sys::os_str::bytes::Slice::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::sys::pal::unix::fd::FileDesc(0)]", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::sys::pal::unix::fd::FileDesc(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sys::pal::unix::fd::FileDesc(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::set_mode", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:std", "::ino", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::sys::pal::unix::fs::File(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::sys::pal::unix::fs::File(0)]", "value", "dfc-generated"] + - ["lang:std", "::as_inner_mut", "Argument[self].Field[crate::sys::pal::unix::fs::File(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sys::pal::unix::fs::File(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::sys::pal::unix::fs::FileAttr::stat]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::file_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::perm", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::sys::pal::unix::pipe::AnonPipe(0)]", "value", "dfc-generated"] + - ["lang:std", "::mode", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::set_accessed", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::accessed].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::set_created", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::created].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::set_modified", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::modified].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::append", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::append]", "value", "dfc-generated"] + - ["lang:std", "::create", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::create]", "value", "dfc-generated"] + - ["lang:std", "::create_new", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::create_new]", "value", "dfc-generated"] + - ["lang:std", "::custom_flags", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::custom_flags]", "value", "dfc-generated"] + - ["lang:std", "::mode", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["lang:std", "::read", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::read]", "value", "dfc-generated"] + - ["lang:std", "::truncate", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::truncate]", "value", "dfc-generated"] + - ["lang:std", "::write", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::write]", "value", "dfc-generated"] + - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["lang:std", "::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::sys::pal::unix::pipe::AnonPipe(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::as_file_desc", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_file_desc", "Argument[self].Field[crate::sys::pal::unix::pipe::AnonPipe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - ["lang:std", "::fd", "Argument[self].Reference.Field[crate::sys::pal::unix::process::process_common::ChildStdio::Explicit(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[crate::sys::pal::unix::process::process_common::ExitCode(0)]", "value", "dfc-generated"] + - ["lang:std", "::env_mut", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::env]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_argv", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_argv", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv].Field[crate::sys::pal::unix::process::process_common::Argv(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_closures", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::closures]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_gid", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::gid]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::get_pgroup", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::pgroup]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::get_program_cstr", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::program].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::get_program_kind", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::program_kind]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::get_uid", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::uid]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::gid", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::gid].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::pgroup", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::pgroup].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::saw_nul", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::saw_nul]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::stderr", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stderr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::stdin", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdin].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::stdout", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdout].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::uid", "Argument[0]", "Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::uid].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:std", "::as_i32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::from", "Argument[0].Field[0]", "ReturnValue.Field[crate::sys::pal::unix::process::process_common::Stdio::Fd(0)]", "value", "dfc-generated"] + - ["lang:std", "::from", "Argument[0].Field[crate::sys::pal::unix::fs::File(0)]", "ReturnValue.Field[crate::sys::pal::unix::process::process_common::Stdio::Fd(0)]", "value", "dfc-generated"] + - ["lang:std", "::from", "Argument[0].Field[crate::sys::pal::unix::pipe::AnonPipe(0)]", "ReturnValue.Field[crate::sys::pal::unix::process::process_common::Stdio::Fd(0)]", "value", "dfc-generated"] - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[crate::sys::pal::unix::process::process_inner::ExitStatus(0)]", "value", "dfc-generated"] - ["lang:std", "::into_raw", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_raw", "Argument[self].Field[crate::sys::pal::unix::process::process_inner::ExitStatus(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sys::pal::unix::process::process_inner::ExitStatus(0)]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sys::pal::unix::time::Timespec::tv_sec]", "value", "dfc-generated"] + - ["lang:std", "::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::id", "Argument[self].Field[crate::sys::pal::unix::thread::Thread::id]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::checked_sub_instant", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::checked_sub_instant", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::sub_time", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::sub_time", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::sub_timespec", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::sub_timespec", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sys::pal::unix::weak::DlsymWeak::name]", "value", "dfc-generated"] + - ["lang:std", "::get", "Argument[self].Field[crate::sys::pal::unix::weak::ExternWeak::weak_ptr]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sys::pal::unix::weak::ExternWeak::weak_ptr]", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sys::personality::dwarf::DwarfReader::ptr]", "value", "dfc-generated"] + - ["lang:std", "::is_poisoned", "Argument[self].Field[crate::sys::sync::once::queue::OnceState::poisoned]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::sys::thread_local::native::eager::Storage::val].Field[crate::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::does_clear", "Argument[self].Field[crate::sys_common::process::CommandEnv::clear]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::from_char", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::from_u32", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sys_common::wtf8::CodePoint::value]", "value", "dfc-generated"] - ["lang:std", "::from_u32_unchecked", "Argument[0]", "ReturnValue.Field[crate::sys_common::wtf8::CodePoint::value]", "value", "dfc-generated"] + - ["lang:std", "::to_lead_surrogate", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::to_trail_surrogate", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::to_u32", "Argument[self].Field[crate::sys_common::wtf8::CodePoint::value]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::next", "Argument[self].Field[crate::sys_common::wtf8::EncodeWide::extra]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:std", "::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_bytes", "Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::ascii_byte_at", "Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes].Element", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::from_bytes_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::from_bytes_unchecked", "Argument[0]", "ReturnValue.Field[crate::sys_common::wtf8::Wtf8Buf::bytes]", "value", "dfc-generated"] + - ["lang:std", "::into_bytes", "Argument[self].Field[crate::sys_common::wtf8::Wtf8Buf::bytes]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::into_string", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["lang:std", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "::name", "Argument[0]", "Argument[self].Field[crate::thread::Builder::name].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::name", "Argument[0]", "ReturnValue.Field[crate::thread::Builder::name].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:std", "::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::no_hooks", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::stack_size", "Argument[0]", "Argument[self].Field[crate::thread::Builder::stack_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["lang:std", "::stack_size", "Argument[0]", "ReturnValue.Field[crate::thread::Builder::stack_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - ["lang:std", "::stack_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[0].Field[crate::thread::JoinInner::native]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_inner", "Argument[self].Field[crate::thread::JoinHandle(0)].Field[crate::thread::JoinInner::native]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[0].Field[crate::thread::JoinInner::native]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::thread::JoinHandle(0)].Field[crate::thread::JoinInner::native]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::thread", "Argument[self].Field[0].Field[crate::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::thread", "Argument[self].Field[crate::thread::JoinHandle(0)].Field[crate::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::as_u64", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::as_u64", "Argument[self].Field[crate::thread::ThreadId(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[crate::thread::local::LocalKey::inner]", "value", "dfc-generated"] - ["lang:std", "::try_with", "Argument[0].ReturnValue", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] - ["lang:std", "::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::with_borrow", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::with_borrow_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::thread", "Argument[self].Field[0].Field[crate::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::thread", "Argument[self].Field[crate::thread::scoped::ScopedJoinHandle(0)].Field[crate::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "::as_cstr", "Argument[self].Field[crate::thread::thread_name_string::ThreadNameString::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:std", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:std", "::elapsed", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -274,7 +579,10 @@ extensions: - ["lang:std", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::time::SystemTime(0)]", "value", "dfc-generated"] - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::into_inner", "Argument[self].Field[crate::time::SystemTime(0)]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::duration", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::duration", "Argument[self].Field[crate::time::SystemTimeError(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "::copy_from", "Argument[0]", "Argument[self]", "taint", "df-generated"] - ["lang:std", "::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -290,25 +598,26 @@ extensions: - ["lang:std", "::as_raw_fd", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::from_raw_fd", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "::into_raw_fd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "<{486}::StaticStrPayload as crate::panic::PanicPayload>::as_str", "Argument[self].Field[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "<{486}::StaticStrPayload as crate::panic::PanicPayload>::get", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "<{491}::RewrapBox as crate::panic::PanicPayload>::get", "Argument[self].Field[0].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "crate::backtrace::helper::lazy_resolve", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::io::append_to_string", "Argument[1].ReturnValue.Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:std", "crate::io::append_to_string", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::io::default_read_buf", "Argument[0].ReturnValue.Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::io::default_read_buf", "Argument[0].ReturnValue.Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "crate::io::default_read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "crate::io::default_read_exact", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["lang:std", "crate::io::default_read_vectored", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "crate::io::default_write_vectored", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["lang:std", "crate::io::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "crate::io::util::repeat", "Argument[0]", "ReturnValue.Field[crate::io::util::Repeat::byte]", "value", "dfc-generated"] - ["lang:std", "crate::sync::poison::map_result", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["lang:std", "crate::sync::poison::map_result", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "crate::sync::poison::map_result", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["lang:std", "crate::sync::poison::mutex::guard_lock", "Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock].Field[crate::sync::poison::mutex::Mutex::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["lang:std", "crate::sync::poison::mutex::guard_poison", "Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock].Field[crate::sync::poison::mutex::Mutex::poison]", "ReturnValue.Reference", "value", "dfc-generated"] - ["lang:std", "crate::sys::backtrace::__rust_begin_short_backtrace", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "crate::sys::backtrace::__rust_end_short_backtrace", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "crate::sys::pal::common::small_c_string::run_path_with_cstr", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "crate::sys::pal::common::small_c_string::run_with_cstr", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["lang:std", "crate::sys::pal::unix::cvt", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["lang:std", "crate::sys::pal::unix::pipe::read2", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["lang:std", "crate::sys::pal::unix::pipe::read2", "Argument[2]", "Argument[3]", "taint", "df-generated"] - ["lang:std", "crate::sys_common::ignore_notfound", "Argument[0].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] - ["lang:std", "crate::sys_common::mul_div_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["lang:std", "crate::sys_common::mul_div_u64", "Argument[1]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 6c2a7c2ba85..85d42df2ca3 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -862,7 +862,6 @@ localStep | main.rs:577:36:577:41 | [post] MacroExpr | main.rs:577:36:577:41 | [post] ...::new(...) | storeStep | file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::::zip_with | -| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:alloc::_::::retain | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:alloc::_::::retain | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:alloc::_::::retain_mut | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:alloc::_::::retain_mut | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:core::_::::take_if | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:core::_::::take_if | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1].Reference in lang:core::_::crate::num::flt2dec::to_exact_exp_str | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1] in lang:core::_::crate::num::flt2dec::to_exact_exp_str | @@ -871,6 +870,7 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:alloc::_::crate::collections::btree::mem::replace | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:alloc::_::crate::collections::btree::mem::replace | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:alloc::_::crate::collections::btree::mem::take_mut | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:alloc::_::crate::collections::btree::mem::take_mut | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:core::_::crate::mem::replace | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::crate::mem::replace | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:core::_::crate::ptr::replace | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::crate::ptr::replace | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:core::_::crate::ptr::write | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::crate::ptr::write | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:core::_::crate::ptr::write_unaligned | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::crate::ptr::write_unaligned | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:core::_::crate::ptr::write_volatile | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::crate::ptr::write_volatile | @@ -906,11 +906,10 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:proc_macro::_::crate::bridge::client::state::set | function argument at 0 | file://:0:0:0:0 | [post] [summary param] 1 in lang:proc_macro::_::crate::bridge::client::state::set | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::filter_map | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::map_split | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::map_split | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::filter_map | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::map_split | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::map_split | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:std::_::::wait_while | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:std::_::::wait_while | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in lang:core::_::crate::slice::sort::stable::sort | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in lang:core::_::crate::slice::sort::stable::sort | | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | &ref | file://:0:0:0:0 | [post] [summary param] 1 in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in lang:std::_::crate::io::BufRead::read_until | &ref | file://:0:0:0:0 | [post] [summary param] 1 in lang:std::_::crate::io::BufRead::read_until | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::max_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::max_by | @@ -924,6 +923,8 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1].Reference in lang:core::_::crate::cmp::min_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1] in lang:core::_::crate::cmp::min_by | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1].Reference in lang:core::_::crate::cmp::minmax_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1] in lang:core::_::crate::cmp::minmax_by | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1].Reference in lang:core::_::crate::slice::sort::shared::smallsort::sort4_stable | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1] in lang:core::_::crate::slice::sort::shared::smallsort::sort4_stable | +| file://:0:0:0:0 | [summary] to write: Argument[3].Parameter[1].Reference in lang:core::_::crate::slice::sort::stable::drift::sort | &ref | file://:0:0:0:0 | [summary] to write: Argument[3].Parameter[1] in lang:core::_::crate::slice::sort::stable::drift::sort | +| file://:0:0:0:0 | [summary] to write: Argument[4].Parameter[1].Reference in lang:core::_::crate::slice::sort::stable::quicksort::quicksort | &ref | file://:0:0:0:0 | [summary] to write: Argument[4].Parameter[1] in lang:core::_::crate::slice::sort::stable::quicksort::quicksort | | file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::::for_each | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::for_each | | file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::::map | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map | | file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::for_each | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::for_each | @@ -931,7 +932,6 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::and_then | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_none_or | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_none_or | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_some_and | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_some_and | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map_or | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map_or_else | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or_else | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::zip_with | @@ -971,64 +971,56 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::cmp::minmax_by | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::cmp::minmax_by | | file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::cmp::minmax_by_key | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::cmp::minmax_by_key | | file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::iter::traits::iterator::Iterator::collect | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::collect | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::unicode::unicode_data::conversions::to_lower | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::unicode::unicode_data::conversions::to_lower | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::unicode::unicode_data::conversions::to_upper | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::unicode::unicode_data::conversions::to_upper | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::align_to | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::align_to | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::align_to_mut | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::align_to_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::as_simd | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::as_simd | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::as_simd_mut | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::as_simd_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::partition_dedup | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::partition_dedup | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::partition_dedup_by | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::partition_dedup_by | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::partition_dedup_by_key | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::partition_dedup_by_key | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::div_rem_small | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::div_rem_small | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::div_rem_small | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::div_rem_small | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::unzip | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::unzip | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_abs | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_abs | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_abs | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_abs | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_abs | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_abs | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_abs | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_abs | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_abs | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_abs | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_abs | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_abs | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::into_parts | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_parts | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::unzip | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::find_lower_bound_edge | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_lower_bound_edge | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::find_upper_bound_edge | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_upper_bound_edge | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::unzip | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::unzip | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::crate::slice::sort::shared::find_existing_run | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::slice::sort::shared::find_existing_run | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::into_parts | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_parts | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::unzip | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::then | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::then | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::then_some | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::then_some | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::get | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::get_mut | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::clone | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::from | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::from_output | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_output | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::and_then | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_mut | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_ref | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::cloned | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::cloned | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::copied | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::copied | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::map | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::zip | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::zip_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::err | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::err | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::ok | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::transpose | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::last | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::matching | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_abs | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_abs | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | @@ -1051,11 +1043,8 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::iter::traits::iterator::Iterator::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::iter::traits::iterator::Iterator::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:proc_macro::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::<{486}::StaticStrPayload as crate::panic::PanicPayload>::as_str | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<{486}::StaticStrPayload as crate::panic::PanicPayload>::as_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::map | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::zip | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::matching | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::map | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::zip | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::matching | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::transpose | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | @@ -1067,8 +1056,6 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::downcast | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downcast | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::left_kv | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::left_kv | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::right_kv | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::right_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::ascend | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::ascend | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::choose_parent_kv | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::choose_parent_kv | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_from | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_from | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::downcast | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downcast | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_unwrap | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_unwrap | @@ -1084,7 +1071,6 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::ok_or | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::ok_or_else | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or_else | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::transpose | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::clone | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::and | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::and | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::and_then | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::and_then | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_deref | @@ -1107,7 +1093,6 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_string | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_string | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::crate::io::append_to_string | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::io::append_to_string | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::crate::sys_common::ignore_notfound | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::sys_common::ignore_notfound | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::crate::thread::current::set_current | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::thread::current::set_current | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in lang:core::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::try_insert | @@ -1117,7 +1102,6 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_ref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::search_tree_for_bifurcation | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::search_tree_for_bifurcation | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::from_str | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_str | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::parse | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::align_to | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::align_to | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::array | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::array | @@ -1126,11 +1110,9 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::from_size_align | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_size_align | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::repeat | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::repeat | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::repeat_packed | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::repeat_packed | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_insert | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::try_insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::ok_or | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::ok_or_else | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or_else | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::clone | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::from_output | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_output | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_mut | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_ref | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | @@ -1167,7 +1149,6 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:std::_::::wait_timeout_while | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_while | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::try_insert | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_ref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | @@ -1203,7 +1184,6 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::<{766}::StringError as crate::error::Error>::description | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::<{766}::StringError as crate::error::Error>::description | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | @@ -1249,8 +1229,6 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_file_desc | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_file_desc | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::<{486}::StaticStrPayload as crate::panic::PanicPayload>::get | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<{486}::StaticStrPayload as crate::panic::PanicPayload>::get | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::<{491}::RewrapBox as crate::panic::PanicPayload>::get | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<{491}::RewrapBox as crate::panic::PanicPayload>::get | | main.rs:97:14:97:22 | source(...) | tuple.0 | main.rs:97:13:97:26 | TupleExpr | | main.rs:97:25:97:25 | 2 | tuple.1 | main.rs:97:13:97:26 | TupleExpr | | main.rs:103:14:103:14 | 2 | tuple.0 | main.rs:103:13:103:30 | TupleExpr | @@ -1341,11 +1319,13 @@ storeStep | main.rs:522:15:522:15 | b | &ref | main.rs:522:14:522:15 | &b | | main.rs:545:27:545:27 | 0 | Some | main.rs:545:22:545:28 | Some(...) | readStep +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::clone_from | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::allocator | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[0].Field[1] in lang:alloc::_::::allocator | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::as_mut_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_mut_ptr | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::as_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_ptr | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::into_inner | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::into_inner | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::visit_nodes_in_order | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:alloc::_::::visit_nodes_in_order | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::fold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::fold | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_rfold | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:alloc::_::::try_rfold | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_fold | @@ -1360,38 +1340,27 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::crate::collections::btree::mem::replace | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::crate::collections::btree::mem::replace | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::crate::collections::btree::mem::take_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::crate::collections::btree::mem::take_mut | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::<_ as crate::array::SpecArrayClone>::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::<_ as crate::array::SpecArrayClone>::clone | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::then | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::update | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::update | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::filter_map | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_split | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::map_split | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::filter_map | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_split | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::map_split | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::get_or_init | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::get_or_init | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::get_or_try_init | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::get_or_try_init | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::then_with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::then_with | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::with_copy | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::with_copy | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::spec_fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::and_then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::and_then | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_none_or | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_none_or | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_some_and | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_some_and | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_or_else | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::ok_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::ok_or_else | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::or_else | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::unwrap_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::unwrap_or_else | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::zip | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::and_then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::and_then | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_err_and | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_err_and | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_ok_and | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_ok_and | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map | @@ -1400,6 +1369,8 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::or_else | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::unwrap_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::unwrap_or_else | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::call | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:core::_::::call | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::clone_from | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::clone_from | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::index | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::index | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::index_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::index_mut | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::mem::copy | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::mem::copy | @@ -1411,6 +1382,9 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::ptr::read_volatile | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::ptr::read_volatile | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::ptr::replace | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::ptr::replace | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::slice::sort::shared::smallsort::sort4_stable | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::slice::sort::shared::smallsort::sort4_stable | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::slice::sort::stable::drift::sort | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:core::_::crate::slice::sort::stable::drift::sort | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::slice::sort::stable::quicksort::quicksort | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:core::_::crate::slice::sort::stable::quicksort::quicksort | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::slice::sort::stable::sort | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:core::_::crate::slice::sort::stable::sort | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::str::validations::next_code_point | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:core::_::crate::str::validations::next_code_point | | file://:0:0:0:0 | [summary param] 0 in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | | file://:0:0:0:0 | [summary param] 0 in lang:proc_macro::_::::decode | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:proc_macro::_::::decode | @@ -1420,7 +1394,6 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::advance_slices | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::advance_slices | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[0].Field[1] in lang:std::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::new | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::new | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::wait_timeout_while | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::wait_timeout_while | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::wait_while | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::wait_while | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::bind | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:std::_::::bind | @@ -1433,7 +1406,8 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::connect | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:std::_::::connect | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::try_with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::try_with | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::with | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::io::default_read_buf | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::io::default_read_buf | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::with_borrow | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::with_borrow | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::with_borrow_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::with_borrow_mut | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::io::default_read_vectored | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::io::default_read_vectored | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::io::default_write_vectored | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::io::default_write_vectored | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sys::backtrace::__rust_begin_short_backtrace | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::sys::backtrace::__rust_begin_short_backtrace | @@ -1447,72 +1421,43 @@ readStep | file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::crate::collections::btree::mem::replace | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::crate::collections::btree::mem::replace | | file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::crate::collections::btree::mem::take_mut | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::crate::collections::btree::mem::take_mut | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_try_fold | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::spec_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::spec_try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::spec_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::spec_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::spec_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::map_or | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::map_or | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::map_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::map_or_else | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::zip_with | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::zip_with | @@ -1521,11 +1466,28 @@ readStep | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::crate::array::drain::drain_array_with | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::crate::array::drain::drain_array_with | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::crate::slice::sort::shared::find_existing_run | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::crate::slice::sort::shared::find_existing_run | | file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::crate::bridge::client::state::set | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:proc_macro::_::crate::bridge::client::state::set | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:std::_::crate::io::append_to_string | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::crate::io::append_to_string | | file://:0:0:0:0 | [summary param] 1 in lang:std::_::crate::sys::pal::common::small_c_string::run_path_with_cstr | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::crate::sys::pal::common::small_c_string::run_path_with_cstr | | file://:0:0:0:0 | [summary param] 1 in lang:std::_::crate::sys::pal::common::small_c_string::run_with_cstr | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::crate::sys::pal::common::small_c_string::run_with_cstr | @@ -1535,6 +1497,8 @@ readStep | file://:0:0:0:0 | [summary param] 5 in lang:core::_::crate::num::flt2dec::to_exact_exp_str | element | file://:0:0:0:0 | [summary] read: Argument[5].Element in lang:core::_::crate::num::flt2dec::to_exact_exp_str | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::<_ as crate::borrow::ToOwned>::clone_into | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<_ as crate::borrow::ToOwned>::clone_into | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::<_ as crate::borrow::ToOwned>::to_owned | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<_ as crate::borrow::ToOwned>::to_owned | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow_mut | @@ -1553,8 +1517,6 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_bytes | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::as_bytes | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::split_off | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::split_off | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::retain | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::retain | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::retain_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::retain_mut | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_c_str | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_c_str | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_vec | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in lang:alloc::_::::into_vec | @@ -1571,10 +1533,13 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::<{766}::StringError as crate::error::Error>::description | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::<{766}::StringError as crate::error::Error>::description | | file://:0:0:0:0 | [summary param] self in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | | file://:0:0:0:0 | [summary param] self in lang:core::_::<&_ as crate::clone::Clone>::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&_ as crate::clone::Clone>::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::<&_ as crate::ops::deref::Deref>::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&_ as crate::ops::deref::Deref>::deref | +| file://:0:0:0:0 | [summary param] self in lang:core::_::<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitAnd>::bitand | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitAnd>::bitand | +| file://:0:0:0:0 | [summary param] self in lang:core::_::<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitOr>::bitor | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitOr>::bitor | +| file://:0:0:0:0 | [summary param] self in lang:core::_::<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitAnd>::bitand | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitAnd>::bitand | +| file://:0:0:0:0 | [summary param] self in lang:core::_::<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitOr>::bitor | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitOr>::bitor | | file://:0:0:0:0 | [summary param] self in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | | file://:0:0:0:0 | [summary param] self in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | | file://:0:0:0:0 | [summary param] self in lang:core::_::<&mut _ as crate::ops::deref::Deref>::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::ops::deref::Deref>::deref | @@ -1594,13 +1559,7 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:core::_::::index_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index_mut | | file://:0:0:0:0 | [summary param] self in lang:core::_::::as_bytes | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::as_bytes | | file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::rfold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::try_rfold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::try_fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::rfold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::fold | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::nth_back | | file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::nth_back | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | @@ -1623,7 +1582,6 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:core::_::::insert | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::insert | | file://:0:0:0:0 | [summary param] self in lang:core::_::::is_none_or | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_none_or | | file://:0:0:0:0 | [summary param] self in lang:core::_::::is_some_and | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_some_and | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map | | file://:0:0:0:0 | [summary param] self in lang:core::_::::map_or | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map_or | | file://:0:0:0:0 | [summary param] self in lang:core::_::::map_or_else | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map_or_else | | file://:0:0:0:0 | [summary param] self in lang:core::_::::ok_or | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::ok_or | @@ -1645,8 +1603,9 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | | file://:0:0:0:0 | [summary param] self in lang:core::_::::and | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::and | | file://:0:0:0:0 | [summary param] self in lang:core::_::::and_then | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::and_then | | file://:0:0:0:0 | [summary param] self in lang:core::_::::and_then | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::and_then | @@ -1686,11 +1645,13 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or_else | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::unwrap_or_else | | file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or_else | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::unwrap_or_else | | file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_unchecked | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::unwrap_unchecked | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::last | | file://:0:0:0:0 | [summary param] self in lang:core::_::::collect | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::collect | | file://:0:0:0:0 | [summary param] self in lang:core::_::::for_each | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::for_each | | file://:0:0:0:0 | [summary param] self in lang:core::_::::map | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::map | | file://:0:0:0:0 | [summary param] self in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::next | | file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | @@ -1714,6 +1675,8 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::nth | | file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::take | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::take | | file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::next | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::next | | file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::BufRead>::consume | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::BufRead>::consume | | file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | @@ -1735,8 +1698,6 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:std::_::::error | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in lang:std::_::::error | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_error | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in lang:std::_::::into_error | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_parts | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_parts | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_parts | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in lang:std::_::::into_parts | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | @@ -1764,97 +1725,39 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::duration | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::duration | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_raw_fd | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::as_raw_fd | -| file://:0:0:0:0 | [summary param] self in lang:std::_::<{486}::StaticStrPayload as crate::panic::PanicPayload>::as_str | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::<{486}::StaticStrPayload as crate::panic::PanicPayload>::as_str | -| file://:0:0:0:0 | [summary param] self in lang:std::_::<{486}::StaticStrPayload as crate::panic::PanicPayload>::get | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::<{486}::StaticStrPayload as crate::panic::PanicPayload>::get | -| file://:0:0:0:0 | [summary param] self in lang:std::_::<{491}::RewrapBox as crate::panic::PanicPayload>::get | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::<{491}::RewrapBox as crate::panic::PanicPayload>::get | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_mut_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::as_mut_ptr | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::as_ptr | +| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::unwrap_or_clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::unwrap_or_clone | +| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::unwrap_or_clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::unwrap_or_clone | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::from | Some | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::from | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::index | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:core::_::::index | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::index_mut | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:core::_::::index_mut | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:std::_::::advance_slices | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:std::_::::advance_slices | -| file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::get_or_init | Ok | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::get_or_init | -| file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::get_or_try_init | Ok | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::get_or_try_init | -| file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::get_or_try_init | Some | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::get_or_try_init | -| file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::io::default_read_buf | Ok | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::crate::io::default_read_buf | -| file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::io::default_read_buf | Some | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::crate::io::default_read_buf | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::spec_try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::crate::io::append_to_string | Err | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::crate::io::append_to_string | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::index | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:alloc::_::::index | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::index_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:alloc::_::::index_mut | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::index | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::index_mut | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::into_inner | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::option::Option::Some(0)] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::rfold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[0] in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[0] in lang:core::_::::fold | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:proc_macro::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::<{491}::RewrapBox as crate::panic::PanicPayload>::get | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Reference in lang:std::_::<{491}::RewrapBox as crate::panic::PanicPayload>::get | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::and_then | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::cloned | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::cloned | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::copied | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::copied | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::map | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::transpose | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::unzip | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::unzip | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::unwrap_or_else | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)].Reference in lang:core::_::::unwrap_or_else | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::cloned | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::cloned | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::copied | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::copied | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow_mut | diff --git a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected index b5e19855cfa..df5c5d04a7e 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -2,10 +2,9 @@ models | 1 | Summary: lang:core; ::clone; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue.Field[crate::option::Option::Some(0)]; value | | 2 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | | 3 | Summary: lang:core; ::zip; Argument[0].Field[crate::option::Option::Some(0)]; ReturnValue.Field[crate::option::Option::Some(0)].Field[1]; value | -| 4 | Summary: lang:core; ::clone; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue.Field[crate::result::Result::Ok(0)]; value | -| 5 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | -| 6 | Summary: lang:core; crate::ptr::read; Argument[0].Reference; ReturnValue; value | -| 7 | Summary: lang:core; crate::ptr::write; Argument[1]; Argument[0].Reference; value | +| 4 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | +| 5 | Summary: lang:core; crate::ptr::read; Argument[0].Reference; ReturnValue; value | +| 6 | Summary: lang:core; crate::ptr::write; Argument[1]; Argument[0].Reference; value | edges | main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:2 | | main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:13 | a [Some] | provenance | | @@ -16,13 +15,12 @@ edges | main.rs:14:9:14:9 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:2 | | main.rs:14:13:14:13 | a [Some] | main.rs:14:13:14:21 | a.clone() [Some] | provenance | generated | | main.rs:14:13:14:21 | a.clone() [Some] | main.rs:14:9:14:9 | b [Some] | provenance | | -| main.rs:19:9:19:9 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:5 | +| main.rs:19:9:19:9 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:4 | | main.rs:19:9:19:9 | a [Ok] | main.rs:21:13:21:13 | a [Ok] | provenance | | -| main.rs:19:9:19:9 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | MaD:4 | | main.rs:19:9:19:9 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | generated | | main.rs:19:31:19:44 | Ok(...) [Ok] | main.rs:19:9:19:9 | a [Ok] | provenance | | | main.rs:19:34:19:43 | source(...) | main.rs:19:31:19:44 | Ok(...) [Ok] | provenance | | -| main.rs:21:9:21:9 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:5 | +| main.rs:21:9:21:9 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:4 | | main.rs:21:13:21:13 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | generated | | main.rs:21:13:21:21 | a.clone() [Ok] | main.rs:21:9:21:9 | b [Ok] | provenance | | | main.rs:26:9:26:9 | a | main.rs:27:10:27:10 | a | provenance | | @@ -53,8 +51,8 @@ edges | main.rs:61:18:61:23 | TuplePat [tuple.1] | main.rs:61:22:61:22 | m | provenance | | | main.rs:61:22:61:22 | m | main.rs:63:22:63:22 | m | provenance | | | main.rs:84:29:84:29 | [post] y [&ref] | main.rs:85:33:85:33 | y [&ref] | provenance | | -| main.rs:84:32:84:41 | source(...) | main.rs:84:29:84:29 | [post] y [&ref] | provenance | MaD:7 | -| main.rs:85:33:85:33 | y [&ref] | main.rs:85:18:85:34 | ...::read(...) | provenance | MaD:6 | +| main.rs:84:32:84:41 | source(...) | main.rs:84:29:84:29 | [post] y [&ref] | provenance | MaD:6 | +| main.rs:85:33:85:33 | y [&ref] | main.rs:85:18:85:34 | ...::read(...) | provenance | MaD:5 | nodes | main.rs:12:9:12:9 | a [Some] | semmle.label | a [Some] | | main.rs:12:13:12:28 | Some(...) [Some] | semmle.label | Some(...) [Some] | From 423e2dac9132d3e0572d8fea053dbafbad87bb82 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 1 May 2025 10:54:52 +0200 Subject: [PATCH 187/656] Rust: Strenghten the modeling of the `Clone` trait --- .../codeql/rust/frameworks/stdlib/Clone.qll | 4 +--- .../codeql/rust/internal/TypeInference.qll | 4 ++-- .../dataflow/modeled/inline-flow.expected | 22 ------------------- .../library-tests/dataflow/modeled/main.rs | 4 ++-- .../CaptureSummaryModels.expected | 2 +- .../test/utils-tests/modelgenerator/option.rs | 6 ++--- 6 files changed, 9 insertions(+), 33 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Clone.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Clone.qll index 514c3781355..8d3c41c4708 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Clone.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Clone.qll @@ -18,9 +18,7 @@ final class CloneCallable extends SummarizedCallable::Range { final override predicate propagatesFlow( string input, string output, boolean preservesValue, string model ) { - // The `clone` method takes a `&self` parameter and dereferences it; - // make sure to not clone the reference itself - input = ["Argument[self].Reference", "Argument[self].WithoutReference"] and + input = "Argument[self].Reference" and output = "ReturnValue" and preservesValue = true and model = "generated" diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 8c741781c20..cb9450a84d7 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1041,8 +1041,8 @@ private module Debug { private Locatable getRelevantLocatable() { exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | result.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and - filepath.matches("%/tauri/src/app/plugin.rs") and - startline = 54 + filepath.matches("%/main.rs") and + startline = 28 ) } diff --git a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected index b5e19855cfa..198f8ab9cd8 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -10,7 +10,6 @@ edges | main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:2 | | main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:13 | a [Some] | provenance | | | main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:21 | a.clone() [Some] | provenance | MaD:1 | -| main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:21 | a.clone() [Some] | provenance | generated | | main.rs:12:13:12:28 | Some(...) [Some] | main.rs:12:9:12:9 | a [Some] | provenance | | | main.rs:12:18:12:27 | source(...) | main.rs:12:13:12:28 | Some(...) [Some] | provenance | | | main.rs:14:9:14:9 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:2 | @@ -19,29 +18,19 @@ edges | main.rs:19:9:19:9 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:5 | | main.rs:19:9:19:9 | a [Ok] | main.rs:21:13:21:13 | a [Ok] | provenance | | | main.rs:19:9:19:9 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | MaD:4 | -| main.rs:19:9:19:9 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | generated | | main.rs:19:31:19:44 | Ok(...) [Ok] | main.rs:19:9:19:9 | a [Ok] | provenance | | | main.rs:19:34:19:43 | source(...) | main.rs:19:31:19:44 | Ok(...) [Ok] | provenance | | | main.rs:21:9:21:9 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:5 | | main.rs:21:13:21:13 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | generated | | main.rs:21:13:21:21 | a.clone() [Ok] | main.rs:21:9:21:9 | b [Ok] | provenance | | | main.rs:26:9:26:9 | a | main.rs:27:10:27:10 | a | provenance | | -| main.rs:26:9:26:9 | a | main.rs:28:13:28:21 | a.clone() | provenance | generated | | main.rs:26:13:26:22 | source(...) | main.rs:26:9:26:9 | a | provenance | | -| main.rs:28:9:28:9 | b | main.rs:29:10:29:10 | b | provenance | | -| main.rs:28:13:28:21 | a.clone() | main.rs:28:9:28:9 | b | provenance | | | main.rs:41:13:41:13 | w [Wrapper] | main.rs:42:15:42:15 | w [Wrapper] | provenance | | | main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | main.rs:41:13:41:13 | w [Wrapper] | provenance | | | main.rs:41:30:41:39 | source(...) | main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | provenance | | | main.rs:42:15:42:15 | w [Wrapper] | main.rs:43:13:43:28 | Wrapper {...} [Wrapper] | provenance | | -| main.rs:42:15:42:15 | w [Wrapper] | main.rs:45:17:45:25 | w.clone() [Wrapper] | provenance | generated | | main.rs:43:13:43:28 | Wrapper {...} [Wrapper] | main.rs:43:26:43:26 | n | provenance | | | main.rs:43:26:43:26 | n | main.rs:43:38:43:38 | n | provenance | | -| main.rs:45:13:45:13 | u [Wrapper] | main.rs:46:15:46:15 | u [Wrapper] | provenance | | -| main.rs:45:17:45:25 | w.clone() [Wrapper] | main.rs:45:13:45:13 | u [Wrapper] | provenance | | -| main.rs:46:15:46:15 | u [Wrapper] | main.rs:47:13:47:28 | Wrapper {...} [Wrapper] | provenance | | -| main.rs:47:13:47:28 | Wrapper {...} [Wrapper] | main.rs:47:26:47:26 | n | provenance | | -| main.rs:47:26:47:26 | n | main.rs:47:38:47:38 | n | provenance | | | main.rs:58:13:58:13 | b [Some] | main.rs:59:23:59:23 | b [Some] | provenance | | | main.rs:58:17:58:32 | Some(...) [Some] | main.rs:58:13:58:13 | b [Some] | provenance | | | main.rs:58:22:58:31 | source(...) | main.rs:58:17:58:32 | Some(...) [Some] | provenance | | @@ -75,9 +64,6 @@ nodes | main.rs:26:9:26:9 | a | semmle.label | a | | main.rs:26:13:26:22 | source(...) | semmle.label | source(...) | | main.rs:27:10:27:10 | a | semmle.label | a | -| main.rs:28:9:28:9 | b | semmle.label | b | -| main.rs:28:13:28:21 | a.clone() | semmle.label | a.clone() | -| main.rs:29:10:29:10 | b | semmle.label | b | | main.rs:41:13:41:13 | w [Wrapper] | semmle.label | w [Wrapper] | | main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | | main.rs:41:30:41:39 | source(...) | semmle.label | source(...) | @@ -85,12 +71,6 @@ nodes | main.rs:43:13:43:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | | main.rs:43:26:43:26 | n | semmle.label | n | | main.rs:43:38:43:38 | n | semmle.label | n | -| main.rs:45:13:45:13 | u [Wrapper] | semmle.label | u [Wrapper] | -| main.rs:45:17:45:25 | w.clone() [Wrapper] | semmle.label | w.clone() [Wrapper] | -| main.rs:46:15:46:15 | u [Wrapper] | semmle.label | u [Wrapper] | -| main.rs:47:13:47:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | -| main.rs:47:26:47:26 | n | semmle.label | n | -| main.rs:47:38:47:38 | n | semmle.label | n | | main.rs:58:13:58:13 | b [Some] | semmle.label | b [Some] | | main.rs:58:17:58:32 | Some(...) [Some] | semmle.label | Some(...) [Some] | | main.rs:58:22:58:31 | source(...) | semmle.label | source(...) | @@ -114,8 +94,6 @@ testFailures | main.rs:20:10:20:19 | a.unwrap() | main.rs:19:34:19:43 | source(...) | main.rs:20:10:20:19 | a.unwrap() | $@ | main.rs:19:34:19:43 | source(...) | source(...) | | main.rs:22:10:22:19 | b.unwrap() | main.rs:19:34:19:43 | source(...) | main.rs:22:10:22:19 | b.unwrap() | $@ | main.rs:19:34:19:43 | source(...) | source(...) | | main.rs:27:10:27:10 | a | main.rs:26:13:26:22 | source(...) | main.rs:27:10:27:10 | a | $@ | main.rs:26:13:26:22 | source(...) | source(...) | -| main.rs:29:10:29:10 | b | main.rs:26:13:26:22 | source(...) | main.rs:29:10:29:10 | b | $@ | main.rs:26:13:26:22 | source(...) | source(...) | | main.rs:43:38:43:38 | n | main.rs:41:30:41:39 | source(...) | main.rs:43:38:43:38 | n | $@ | main.rs:41:30:41:39 | source(...) | source(...) | -| main.rs:47:38:47:38 | n | main.rs:41:30:41:39 | source(...) | main.rs:47:38:47:38 | n | $@ | main.rs:41:30:41:39 | source(...) | source(...) | | main.rs:63:22:63:22 | m | main.rs:58:22:58:31 | source(...) | main.rs:63:22:63:22 | m | $@ | main.rs:58:22:58:31 | source(...) | source(...) | | main.rs:85:18:85:34 | ...::read(...) | main.rs:84:32:84:41 | source(...) | main.rs:85:18:85:34 | ...::read(...) | $@ | main.rs:84:32:84:41 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/modeled/main.rs b/rust/ql/test/library-tests/dataflow/modeled/main.rs index cb955ce32bd..648ffd0a307 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/main.rs +++ b/rust/ql/test/library-tests/dataflow/modeled/main.rs @@ -26,7 +26,7 @@ fn i64_clone() { let a = source(12); sink(a); // $ hasValueFlow=12 let b = a.clone(); - sink(b); // $ hasValueFlow=12 + sink(b); // $ MISSING: hasValueFlow=12 - lack of builtins means that we cannot resolve clone call above, and hence not insert implicit borrow } mod my_clone { @@ -44,7 +44,7 @@ mod my_clone { } let u = w.clone(); match u { - Wrapper { n: n } => sink(n), // $ hasValueFlow=73 + Wrapper { n: n } => sink(n), // $ MISSING: hasValueFlow=73 - lack of expanded derives means that we cannot resolve clone call above, and hence not insert implicit borrow } } } diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.expected b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.expected index e827c7320cc..b3a3717c930 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.expected +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.expected @@ -1,4 +1,4 @@ unexpectedModel | Unexpected summary found: repo::test;::clone;Argument[self].Field[crate::option::MyOption::MySome(0)].Reference;ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated | -| Unexpected summary found: repo::test;::cloned;Argument[self].Field[crate::option::MyOption::MySome(0)].Reference;ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated | expectedModel +| Expected summary missing: repo::test;::clone;Argument[self].Reference.Field[crate::option::MyOption::MySome(0)];ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated | diff --git a/rust/ql/test/utils-tests/modelgenerator/option.rs b/rust/ql/test/utils-tests/modelgenerator/option.rs index 5e2e2391ba7..19b4a92fa37 100644 --- a/rust/ql/test/utils-tests/modelgenerator/option.rs +++ b/rust/ql/test/utils-tests/modelgenerator/option.rs @@ -414,7 +414,7 @@ impl MyOption<&T> { } } - // summary=repo::test;::cloned;Argument[self].Field[crate::option::MyOption::MySome(0)];ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated + // summary=repo::test;::cloned;Argument[self].Field[crate::option::MyOption::MySome(0)].Reference;ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated pub fn cloned(self) -> MyOption where T: Clone, @@ -438,7 +438,7 @@ impl MyOption<&mut T> { } } - // summary=repo::test;::cloned;Argument[self].Field[crate::option::MyOption::MySome(0)];ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated + // summary=repo::test;::cloned;Argument[self].Field[crate::option::MyOption::MySome(0)].Reference;ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated pub fn cloned(self) -> MyOption where T: Clone, @@ -466,7 +466,7 @@ impl Clone for MyOption where T: Clone, { - // summary=repo::test;::clone;Argument[self].Field[crate::option::MyOption::MySome(0)];ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated + // summary=repo::test;::clone;Argument[self].Reference.Field[crate::option::MyOption::MySome(0)];ReturnValue.Field[crate::option::MyOption::MySome(0)];value;dfc-generated fn clone(&self) -> Self { match self { MySome(x) => MySome(x.clone()), From 40d176a7703fd01407179668f3921e1702e48da9 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 30 Apr 2025 13:45:50 +0200 Subject: [PATCH 188/656] Added model for shelljs.env --- javascript/ql/lib/ext/shelljs.model.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 javascript/ql/lib/ext/shelljs.model.yml diff --git a/javascript/ql/lib/ext/shelljs.model.yml b/javascript/ql/lib/ext/shelljs.model.yml new file mode 100644 index 00000000000..8d2c8db645d --- /dev/null +++ b/javascript/ql/lib/ext/shelljs.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/javascript-all + extensible: sourceModel + data: + - ["shelljs", "Member[env]", "environment"] From 602500e280797acb207b4d41020fe0b36090d583 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 30 Apr 2025 13:40:52 +0200 Subject: [PATCH 189/656] Added change note --- javascript/ql/lib/change-notes/2025-04-30-shelljs.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2025-04-30-shelljs.md diff --git a/javascript/ql/lib/change-notes/2025-04-30-shelljs.md b/javascript/ql/lib/change-notes/2025-04-30-shelljs.md new file mode 100644 index 00000000000..90a5f5a2a30 --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-04-30-shelljs.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Improved modeling of the [`shelljs`](https://www.npmjs.com/package/shelljs) and [`async-shelljs`](https://www.npmjs.com/package/async-shelljs) libraries by adding support for the `which`, `cmd`, `asyncExec` and `env`. From 33d8ffa83e2866eb6c9602cbd570999bf8e83c31 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 1 May 2025 11:11:29 +0200 Subject: [PATCH 190/656] Added test cases for shelljs.env --- .../Security/CWE-078/IndirectCommandInjection/actions.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/actions.js b/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/actions.js index 02171539521..a92b7713491 100644 --- a/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/actions.js +++ b/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/actions.js @@ -12,3 +12,10 @@ function test(e) { test(process.env); // $ Source exec(getInput('data')); // $ Alert + +function test2(e) { + const shelljs = require('shelljs'); + exec('rm -rf ' + shelljs.env['SOME']); // $ MISSING: Alert + exec('rm -rf ' + shelljs.env.SOME); // $ MISSING: Alert + exec('rm -rf ' + shelljs.env); // $ MISSING: Alert +} From d4b5ef6a6659258f2d837cdcc006fd3e60a49562 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 1 May 2025 11:14:15 +0200 Subject: [PATCH 191/656] Refactor process.env handling in CleartextLogging and IndirectCommandInjection modules to use ThreatModelSource --- .../dataflow/CleartextLoggingCustomizations.qll | 2 +- .../IndirectCommandInjectionCustomizations.qll | 4 ++-- .../CWE-295/DisablingCertificateValidation.ql | 2 +- .../IndirectCommandInjection.expected | 12 ++++++++++++ .../CWE-078/IndirectCommandInjection/actions.js | 6 +++--- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/CleartextLoggingCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/CleartextLoggingCustomizations.qll index 5dca4cf1df2..dbb775f99b5 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/CleartextLoggingCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/CleartextLoggingCustomizations.qll @@ -171,7 +171,7 @@ module CleartextLogging { /** An access to the sensitive object `process.env`. */ class ProcessEnvSource extends Source { - ProcessEnvSource() { this = NodeJSLib::process().getAPropertyRead("env") } + ProcessEnvSource() { this.(ThreatModelSource).getThreatModel() = "environment" } override string describe() { result = "process environment" } } diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/IndirectCommandInjectionCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/IndirectCommandInjectionCustomizations.qll index 9dd6ab4b4a9..84c4600fbc0 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/IndirectCommandInjectionCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/IndirectCommandInjectionCustomizations.qll @@ -29,7 +29,7 @@ module IndirectCommandInjection { * A read of `process.env`, considered as a flow source for command injection. */ private class ProcessEnvAsSource extends Source { - ProcessEnvAsSource() { this = NodeJSLib::process().getAPropertyRead("env") } + ProcessEnvAsSource() { this.(ThreatModelSource).getThreatModel() = "environment" } override string describe() { result = "environment variable" } } @@ -37,7 +37,7 @@ module IndirectCommandInjection { /** Gets a data flow node referring to `process.env`. */ private DataFlow::SourceNode envObject(DataFlow::TypeTracker t) { t.start() and - result = NodeJSLib::process().getAPropertyRead("env") + result.(ThreatModelSource).getThreatModel() = "environment" or exists(DataFlow::TypeTracker t2 | result = envObject(t2).track(t2, t)) } diff --git a/javascript/ql/src/Security/CWE-295/DisablingCertificateValidation.ql b/javascript/ql/src/Security/CWE-295/DisablingCertificateValidation.ql index d9f7267d425..b5e52d7c6c7 100644 --- a/javascript/ql/src/Security/CWE-295/DisablingCertificateValidation.ql +++ b/javascript/ql/src/Security/CWE-295/DisablingCertificateValidation.ql @@ -37,7 +37,7 @@ DataFlow::ObjectLiteralNode tlsOptions() { result.flowsTo(tlsInvocation().getAnA from DataFlow::PropWrite disable where exists(DataFlow::SourceNode env | - env = NodeJSLib::process().getAPropertyRead("env") and + env.(ThreatModelSource).getThreatModel() = "environment" and disable = env.getAPropertyWrite("NODE_TLS_REJECT_UNAUTHORIZED") and disable.getRhs().mayHaveStringValue("0") ) diff --git a/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/IndirectCommandInjection.expected b/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/IndirectCommandInjection.expected index 7c732184577..9fc6f6b1bc4 100644 --- a/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/IndirectCommandInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/IndirectCommandInjection.expected @@ -2,6 +2,9 @@ | actions.js:4:6:4:29 | process ... _DATA'] | actions.js:4:6:4:16 | process.env | actions.js:4:6:4:29 | process ... _DATA'] | This command depends on an unsanitized $@. | actions.js:4:6:4:16 | process.env | environment variable | | actions.js:8:10:8:23 | e['TEST_DATA'] | actions.js:12:6:12:16 | process.env | actions.js:8:10:8:23 | e['TEST_DATA'] | This command depends on an unsanitized $@. | actions.js:12:6:12:16 | process.env | environment variable | | actions.js:14:6:14:21 | getInput('data') | actions.js:14:6:14:21 | getInput('data') | actions.js:14:6:14:21 | getInput('data') | This command depends on an unsanitized $@. | actions.js:14:6:14:21 | getInput('data') | GitHub Actions user input | +| actions.js:18:10:18:40 | 'rm -rf ... 'SOME'] | actions.js:18:22:18:32 | shelljs.env | actions.js:18:10:18:40 | 'rm -rf ... 'SOME'] | This command depends on an unsanitized $@. | actions.js:18:22:18:32 | shelljs.env | environment variable | +| actions.js:19:10:19:37 | 'rm -rf ... nv.SOME | actions.js:19:22:19:32 | shelljs.env | actions.js:19:10:19:37 | 'rm -rf ... nv.SOME | This command depends on an unsanitized $@. | actions.js:19:22:19:32 | shelljs.env | environment variable | +| actions.js:20:10:20:32 | 'rm -rf ... ljs.env | actions.js:20:22:20:32 | shelljs.env | actions.js:20:10:20:32 | 'rm -rf ... ljs.env | This command depends on an unsanitized $@. | actions.js:20:22:20:32 | shelljs.env | environment variable | | command-line-parameter-command-injection.js:4:10:4:21 | process.argv | command-line-parameter-command-injection.js:4:10:4:21 | process.argv | command-line-parameter-command-injection.js:4:10:4:21 | process.argv | This command depends on an unsanitized $@. | command-line-parameter-command-injection.js:4:10:4:21 | process.argv | command-line argument | | command-line-parameter-command-injection.js:8:10:8:36 | "cmd.sh ... argv[2] | command-line-parameter-command-injection.js:8:22:8:33 | process.argv | command-line-parameter-command-injection.js:8:10:8:36 | "cmd.sh ... argv[2] | This command depends on an unsanitized $@. | command-line-parameter-command-injection.js:8:22:8:33 | process.argv | command-line argument | | command-line-parameter-command-injection.js:11:14:11:20 | args[0] | command-line-parameter-command-injection.js:10:13:10:24 | process.argv | command-line-parameter-command-injection.js:11:14:11:20 | args[0] | This command depends on an unsanitized $@. | command-line-parameter-command-injection.js:10:13:10:24 | process.argv | command-line argument | @@ -44,6 +47,9 @@ edges | actions.js:7:15:7:15 | e | actions.js:8:10:8:10 | e | provenance | | | actions.js:8:10:8:10 | e | actions.js:8:10:8:23 | e['TEST_DATA'] | provenance | | | actions.js:12:6:12:16 | process.env | actions.js:7:15:7:15 | e | provenance | | +| actions.js:18:22:18:32 | shelljs.env | actions.js:18:10:18:40 | 'rm -rf ... 'SOME'] | provenance | | +| actions.js:19:22:19:32 | shelljs.env | actions.js:19:10:19:37 | 'rm -rf ... nv.SOME | provenance | | +| actions.js:20:22:20:32 | shelljs.env | actions.js:20:10:20:32 | 'rm -rf ... ljs.env | provenance | | | command-line-parameter-command-injection.js:8:22:8:33 | process.argv | command-line-parameter-command-injection.js:8:10:8:36 | "cmd.sh ... argv[2] | provenance | | | command-line-parameter-command-injection.js:10:6:10:33 | args | command-line-parameter-command-injection.js:11:14:11:17 | args | provenance | | | command-line-parameter-command-injection.js:10:6:10:33 | args | command-line-parameter-command-injection.js:12:26:12:29 | args | provenance | | @@ -181,6 +187,12 @@ nodes | actions.js:8:10:8:23 | e['TEST_DATA'] | semmle.label | e['TEST_DATA'] | | actions.js:12:6:12:16 | process.env | semmle.label | process.env | | actions.js:14:6:14:21 | getInput('data') | semmle.label | getInput('data') | +| actions.js:18:10:18:40 | 'rm -rf ... 'SOME'] | semmle.label | 'rm -rf ... 'SOME'] | +| actions.js:18:22:18:32 | shelljs.env | semmle.label | shelljs.env | +| actions.js:19:10:19:37 | 'rm -rf ... nv.SOME | semmle.label | 'rm -rf ... nv.SOME | +| actions.js:19:22:19:32 | shelljs.env | semmle.label | shelljs.env | +| actions.js:20:10:20:32 | 'rm -rf ... ljs.env | semmle.label | 'rm -rf ... ljs.env | +| actions.js:20:22:20:32 | shelljs.env | semmle.label | shelljs.env | | command-line-parameter-command-injection.js:4:10:4:21 | process.argv | semmle.label | process.argv | | command-line-parameter-command-injection.js:8:10:8:36 | "cmd.sh ... argv[2] | semmle.label | "cmd.sh ... argv[2] | | command-line-parameter-command-injection.js:8:22:8:33 | process.argv | semmle.label | process.argv | diff --git a/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/actions.js b/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/actions.js index a92b7713491..8fb6994a597 100644 --- a/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/actions.js +++ b/javascript/ql/test/query-tests/Security/CWE-078/IndirectCommandInjection/actions.js @@ -15,7 +15,7 @@ exec(getInput('data')); // $ Alert function test2(e) { const shelljs = require('shelljs'); - exec('rm -rf ' + shelljs.env['SOME']); // $ MISSING: Alert - exec('rm -rf ' + shelljs.env.SOME); // $ MISSING: Alert - exec('rm -rf ' + shelljs.env); // $ MISSING: Alert + exec('rm -rf ' + shelljs.env['SOME']); // $ Alert + exec('rm -rf ' + shelljs.env.SOME); // $ Alert + exec('rm -rf ' + shelljs.env); // $ Alert } From c7d764f6663635f2e17dd7621fc88a8fa7632623 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 1 May 2025 09:18:44 +0200 Subject: [PATCH 192/656] Brought back `FunctionStyleClass` marked as `deprecated` --- javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 646d9c798cc..4cceb9192ea 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -1236,6 +1236,8 @@ module ClassNode { func instanceof AbstractCallable // the join-order goes bad if `func` has type `AbstractFunction`. } + deprecated class FunctionStyleClass = StandardClassNode; + /** * A function definition, targeted by a `new`-call or with prototype manipulation, seen as a `ClassNode` instance. * Or An ES6 class as a `ClassNode` instance. From 68a9dd9f9e72b2feaade18de2dbabc742406bdeb Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 1 May 2025 11:19:41 +0200 Subject: [PATCH 193/656] Address comments --- javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll b/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll index 4b53292e148..dafc38ca857 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll @@ -169,9 +169,7 @@ module Fastify { override string getRelativePath() { result = this.getArgument(0).getStringValue() } - override Http::RequestMethodName getHttpMethod() { - if this.getMethodName() = "all" then any() else result = this.getMethodName().toUpperCase() - } + override Http::RequestMethodName getHttpMethod() { result = this.getMethodName().toUpperCase() } } private class AddHookRouteSetup extends Routing::RouteSetup::MethodCall instanceof RouteSetup { From 0863c87572a3867de8fa9a571e8ee3574f809ea1 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 1 May 2025 10:33:24 +0100 Subject: [PATCH 194/656] Add change notes --- .../src/change-notes/2025-05-01-cwe-tag-changed.md | 9 +++++++++ .../src/change-notes/2025-05-01-cwe-tag-changed.md | 12 ++++++++++++ .../src/change-notes/2025-05-01-cwe-tag-changed.md | 14 ++++++++++++++ .../src/change-notes/2025-05-01-cwe-tag-changed.md | 7 +++++++ .../src/change-notes/2025-05-01-cwe-tag-changed.md | 8 ++++++++ .../src/change-notes/2025-05-01-cwe-tag-changed.md | 10 ++++++++++ .../src/change-notes/2025-05-01-cwe-tag-changed.md | 5 +++++ 7 files changed, 65 insertions(+) create mode 100644 cpp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md create mode 100644 csharp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md create mode 100644 go/ql/src/change-notes/2025-05-01-cwe-tag-changed.md create mode 100644 java/ql/src/change-notes/2025-05-01-cwe-tag-changed.md create mode 100644 javascript/ql/src/change-notes/2025-05-01-cwe-tag-changed.md create mode 100644 python/ql/src/change-notes/2025-05-01-cwe-tag-changed.md create mode 100644 ruby/ql/src/change-notes/2025-05-01-cwe-tag-changed.md diff --git a/cpp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/cpp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md new file mode 100644 index 00000000000..daefff65c31 --- /dev/null +++ b/cpp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md @@ -0,0 +1,9 @@ +--- +category: queryMetadata +--- +* The tag `external/cwe/cwe-14` has been removed from `cpp/memset-may-be-deleted` and the tag `external/cwe/cwe-014` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cpp/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cpp/count-untrusted-data-external-api-ir` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cpp/untrusted-data-to-external-api-ir` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cpp/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cpp/late-check-of-function-argument` and the tag `external/cwe/cwe-020` has been added. diff --git a/csharp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/csharp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md new file mode 100644 index 00000000000..8b84ae3f077 --- /dev/null +++ b/csharp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md @@ -0,0 +1,12 @@ +--- +category: queryMetadata +--- + +* The tag `external/cwe/cwe-13` has been removed from `cs/password-in-configuration` and the tag `external/cwe/cwe-013` has been added. +* The tag `external/cwe/cwe-11` has been removed from `cs/web/debug-binary` and the tag `external/cwe/cwe-011` has been added. +* The tag `external/cwe/cwe-16` has been removed from `cs/web/large-max-request-length` and the tag `external/cwe/cwe-016` has been added. +* The tag `external/cwe/cwe-16` has been removed from `cs/web/request-validation-disabled` and the tag `external/cwe/cwe-016` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cs/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cs/serialization-check-bypass` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cs/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-12` has been removed from `cs/web/missing-global-error-handler` and the tag `external/cwe/cwe-012` has been added. diff --git a/go/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/go/ql/src/change-notes/2025-05-01-cwe-tag-changed.md new file mode 100644 index 00000000000..d084aeeaf48 --- /dev/null +++ b/go/ql/src/change-notes/2025-05-01-cwe-tag-changed.md @@ -0,0 +1,14 @@ +--- +category: queryMetadata +--- + +* The tag `external/cwe/cwe-20` has been removed from `go/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `go/incomplete-hostname-regexp` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `go/regex/missing-regexp-anchor` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `go/suspicious-character-in-regex` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `go/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `go/untrusted-data-to-unknown-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-90` has been removed from `go/ldap-injection` and the tag `external/cwe/cwe-090` has been added. +* The tag `external/cwe/cwe-74` has been removed from `go/dsn-injection` and the tag `external/cwe/cwe-074` has been added. +* The tag `external/cwe/cwe-74` has been removed from `go/dsn-injection-local` and the tag `external/cwe/cwe-074` has been added. +* The tag `external/cwe/cwe-79` has been removed from `go/html-template-escaping-passthrough` and the tag `external/cwe/cwe-079` has been added. diff --git a/java/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/java/ql/src/change-notes/2025-05-01-cwe-tag-changed.md new file mode 100644 index 00000000000..2bbc6a6d776 --- /dev/null +++ b/java/ql/src/change-notes/2025-05-01-cwe-tag-changed.md @@ -0,0 +1,7 @@ +--- +category: queryMetadata +--- + +* The tag `external/cwe/cwe-20` has been removed from `java/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `java/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-93` has been removed from `java/netty-http-request-or-response-splitting` and the tag `external/cwe/cwe-093` has been added. diff --git a/javascript/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/javascript/ql/src/change-notes/2025-05-01-cwe-tag-changed.md new file mode 100644 index 00000000000..01e53adf5f5 --- /dev/null +++ b/javascript/ql/src/change-notes/2025-05-01-cwe-tag-changed.md @@ -0,0 +1,8 @@ +--- +category: queryMetadata +--- + +* The tag `external/cwe/cwe-79` has been removed from `js/disabling-electron-websecurity` and the tag `external/cwe/cwe-079` has been added. +* The tag `external/cwe/cwe-20` has been removed from `js/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `js/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `js/untrusted-data-to-external-api-more-sources` and the tag `external/cwe/cwe-020` has been added. diff --git a/python/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/python/ql/src/change-notes/2025-05-01-cwe-tag-changed.md new file mode 100644 index 00000000000..0267e9a3fbb --- /dev/null +++ b/python/ql/src/change-notes/2025-05-01-cwe-tag-changed.md @@ -0,0 +1,10 @@ +--- +category: queryMetadata +--- + +* The tags `security/cwe/cwe-94` and `security/cwe/cwe-95` have been removed from `py/use-of-input` and the tags `external/cwe/cwe-094` and `external/cwe/cwe-095` have been added. +* The tag `external/cwe/cwe-20` has been removed from `py/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `py/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `py/cookie-injection` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `py/incomplete-url-substring-sanitization` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-94` has been removed from `py/js2py-rce` and the tag `external/cwe/cwe-094` has been added. diff --git a/ruby/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/ruby/ql/src/change-notes/2025-05-01-cwe-tag-changed.md new file mode 100644 index 00000000000..c8fd8d62686 --- /dev/null +++ b/ruby/ql/src/change-notes/2025-05-01-cwe-tag-changed.md @@ -0,0 +1,5 @@ +--- +category: queryMetadata +--- + +* The tag `external/cwe/cwe-94` has been removed from `rb/server-side-template-injection` and the tag `external/cwe/cwe-094` has been added. From 22407cad44bfb3880563dfb56afdca5ba4a5b755 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 28 Apr 2025 13:28:33 +0200 Subject: [PATCH 195/656] Rust: Add type inference test for non-universal impl blocks --- .../test/library-tests/type-inference/main.rs | 213 ++++++++++++++++-- 1 file changed, 191 insertions(+), 22 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index fa16b626474..61969feb204 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -130,7 +130,7 @@ mod method_non_parametric_impl { println!("{:?}", y.a); // $ fieldof=MyThing println!("{:?}", x.m1()); // $ MISSING: method=MyThing::m1 - println!("{:?}", y.m1().a); // $ MISSING: method=MyThing::m1, field=MyThing + println!("{:?}", y.m1().a); // $ MISSING: method=MyThing::m1 fieldof=MyThing let x = MyThing { a: S1 }; let y = MyThing { a: S2 }; @@ -141,15 +141,23 @@ mod method_non_parametric_impl { } mod method_non_parametric_trait_impl { - #[derive(Debug)] + #[derive(Debug, Clone, Copy)] struct MyThing { a: A, } - #[derive(Debug)] + #[derive(Debug, Clone, Copy)] + struct MyPair { + p1: P1, + p2: P2, + } + + #[derive(Debug, Clone, Copy)] struct S1; - #[derive(Debug)] + #[derive(Debug, Clone, Copy)] struct S2; + #[derive(Debug, Clone, Copy, Default)] + struct S3; trait MyTrait { fn m1(self) -> A; @@ -162,6 +170,13 @@ mod method_non_parametric_trait_impl { } } + trait MyProduct { + // MyProduct::fst + fn fst(self) -> A; + // MyProduct::snd + fn snd(self) -> B; + } + fn call_trait_m1>(x: T2) -> T1 { x.m1() // $ method=m1 } @@ -180,18 +195,170 @@ mod method_non_parametric_trait_impl { } } + // Implementation where the type parameter `TD` only occurs in the + // implemented trait and not the implementing type. + impl MyTrait for MyThing + where + TD: Default, + { + // MyThing::m1 + fn m1(self) -> TD { + TD::default() + } + } + + impl MyTrait for MyPair { + // MyTrait::m1 + fn m1(self) -> I { + self.p1 // $ fieldof=MyPair + } + } + + impl MyTrait for MyPair { + // MyTrait::m1 + fn m1(self) -> S3 { + S3 + } + } + + impl MyTrait for MyPair, S3> { + // MyTrait::m1 + fn m1(self) -> TT { + let alpha = self.p1; // $ fieldof=MyPair + alpha.a // $ fieldof=MyThing + } + } + + // This implementation only applies if the two type parameters are equal. + impl MyProduct for MyPair { + // MyPair::fst + fn fst(self) -> A { + self.p1 // $ fieldof=MyPair + } + + // MyPair::snd + fn snd(self) -> A { + self.p2 // $ fieldof=MyPair + } + } + + // This implementation swaps the type parameters. + impl MyProduct for MyPair { + // MyPair::fst + fn fst(self) -> S1 { + self.p2 // $ fieldof=MyPair + } + + // MyPair::snd + fn snd(self) -> S2 { + self.p1 // $ fieldof=MyPair + } + } + + fn get_fst>(p: P) -> V1 { + p.fst() // $ method=MyProduct::fst + } + + fn get_snd>(p: P) -> V2 { + p.snd() // $ method=MyProduct::snd + } + + fn get_snd_fst>(p: MyPair) -> V1 { + p.p2.fst() // $ fieldof=MyPair method=MyProduct::fst + } + + trait ConvertTo { + // ConvertTo::convert_to + fn convert_to(self) -> T; + } + + impl> ConvertTo for T { + // T::convert_to + fn convert_to(self) -> S1 { + self.m1() // $ method=m1 + } + } + + fn convert_to>(thing: T) -> TS { + thing.convert_to() // $ method=ConvertTo::convert_to + } + + fn type_bound_type_parameter_impl>(thing: TP) -> S1 { + // The trait bound on `TP` makes the implementation of `ConvertTo` valid + thing.convert_to() // $ MISSING: method=T::convert_to + } + pub fn f() { - let x = MyThing { a: S1 }; - let y = MyThing { a: S2 }; + let thing_s1 = MyThing { a: S1 }; + let thing_s2 = MyThing { a: S2 }; + let thing_s3 = MyThing { a: S3 }; - println!("{:?}", x.m1()); // $ MISSING: method=MyThing::m1 - println!("{:?}", y.m1().a); // $ MISSING: method=MyThing::m1, field=MyThing + // Tests for method resolution - let x = MyThing { a: S1 }; - let y = MyThing { a: S2 }; + println!("{:?}", thing_s1.m1()); // $ MISSING: method=MyThing::m1 + println!("{:?}", thing_s2.m1().a); // $ MISSING: method=MyThing::m1 fieldof=MyThing + let s3: S3 = thing_s3.m1(); // $ MISSING: method=MyThing::m1 + println!("{:?}", s3); - println!("{:?}", call_trait_m1(x)); // MISSING: type=call_trait_m1(...):S1 - println!("{:?}", call_trait_m1(y).a); // MISSING: field=MyThing + let p1 = MyPair { p1: S1, p2: S1 }; + println!("{:?}", p1.m1()); // $ MISSING: method=MyTrait::m1 + + let p2 = MyPair { p1: S1, p2: S2 }; + println!("{:?}", p2.m1()); // $ MISSING: method=MyTrait::m1 + + let p3 = MyPair { + p1: MyThing { a: S1 }, + p2: S3, + }; + println!("{:?}", p3.m1()); // $ MISSING: method=MyTrait::m1 + + // These calls go to the first implementation of `MyProduct` for `MyPair` + let a = MyPair { p1: S1, p2: S1 }; + let x = a.fst(); // $ method=MyPair::fst + println!("{:?}", x); + let y = a.snd(); // $ method=MyPair::snd + println!("{:?}", y); + + // These calls go to the last implementation of `MyProduct` for + // `MyPair`. The first implementation does not apply as the type + // parameters of the implementation enforce that the two generics must + // be equal. + let b = MyPair { p1: S2, p2: S1 }; + let x = b.fst(); // $ MISSING: method=MyPair::fst SPURIOUS: method=MyPair::fst + println!("{:?}", x); + let y = b.snd(); // $ MISSING: method=MyPair::snd SPURIOUS: method=MyPair::snd + println!("{:?}", y); + + // Tests for inference of type parameters based on trait implementations. + + let x = call_trait_m1(thing_s1); // $ MISSING: type=x:S1 + println!("{:?}", x); + let y = call_trait_m1(thing_s2); // $ MISSING: type=y:MyThing type=y.A:S2 + println!("{:?}", y.a); // $ MISSING: fieldof=MyThing + + // First implementation + let a = MyPair { p1: S1, p2: S1 }; + let x = get_fst(a); // $ type=x:S1 + println!("{:?}", x); + let y = get_snd(a); // $ type=y:S1 + println!("{:?}", y); + + // Second implementation + let b = MyPair { p1: S2, p2: S1 }; + let x = get_fst(b); // $ type=x:S1 SPURIOUS: type=x:S2 + println!("{:?}", x); + let y = get_snd(b); // $ type=y:S2 SPURIOUS: type=y:S1 + println!("{:?}", y); + + let c = MyPair { + p1: S3, + p2: MyPair { p1: S2, p2: S1 }, + }; + let x = get_snd_fst(c); // $ type=x:S1 SPURIOUS: type=x:S2 + + let thing = MyThing { a: S1 }; + let i = thing.convert_to(); // $ MISSING: type=i:S1 MISSING: method=T::convert_to + let j = convert_to(thing); // $ MISSING: type=j:S1 } } @@ -219,13 +386,13 @@ mod type_parameter_bounds { fn call_first_trait_per_bound>(x: T) { // The type parameter bound determines which method this call is resolved to. let s1 = x.method(); // $ method=SecondTrait::method - println!("{:?}", s1); + println!("{:?}", s1); // $ type=s1:I } fn call_second_trait_per_bound>(x: T) { // The type parameter bound determines which method this call is resolved to. let s2 = x.method(); // $ method=SecondTrait::method - println!("{:?}", s2); + println!("{:?}", s2); // $ type=s2:I } fn trait_bound_with_type>(x: T) { @@ -235,7 +402,7 @@ mod type_parameter_bounds { fn trait_per_bound_with_type>(x: T) { let s = x.method(); // $ method=FirstTrait::method - println!("{:?}", s); + println!("{:?}", s); // $ type=s:S1 } trait Pair { @@ -323,8 +490,10 @@ mod function_trait_bounds { a: MyThing { a: S2 }, }; - println!("{:?}", call_trait_thing_m1(x3)); - println!("{:?}", call_trait_thing_m1(y3)); + let a = call_trait_thing_m1(x3); // $ type=a:S1 + println!("{:?}", a); + let b = call_trait_thing_m1(y3); // $ type=b:S2 + println!("{:?}", b); } } @@ -584,14 +753,14 @@ mod method_supertraits { let x = MyThing { a: S1 }; let y = MyThing { a: S2 }; - println!("{:?}", x.m2()); // $ method=m2 - println!("{:?}", y.m2()); // $ method=m2 + println!("{:?}", x.m2()); // $ method=m2 type=x.m2():S1 + println!("{:?}", y.m2()); // $ method=m2 type=y.m2():S2 let x = MyThing2 { a: S1 }; let y = MyThing2 { a: S2 }; - println!("{:?}", x.m3()); // $ method=m3 - println!("{:?}", y.m3()); // $ method=m3 + println!("{:?}", x.m3()); // $ method=m3 type=x.m3():S1 + println!("{:?}", y.m3()); // $ method=m3 type=y.m3():S2 } } @@ -767,7 +936,7 @@ mod option_methods { println!("{:?}", x4); let x5 = MyOption::MySome(MyOption::::MyNone()); - println!("{:?}", x5.flatten()); // MISSING: method=flatten + println!("{:?}", x5.flatten()); // $ MISSING: method=flatten let x6 = MyOption::MySome(MyOption::::MyNone()); println!("{:?}", MyOption::>::flatten(x6)); From e45b5c557dfcd12f788781ccdb92b46323bb629a Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 28 Apr 2025 15:14:33 +0200 Subject: [PATCH 196/656] Rust: Implement type inference support for non-universal impl blocks --- .../codeql/rust/internal/PathResolution.qll | 55 - rust/ql/lib/codeql/rust/internal/Type.qll | 114 +- .../codeql/rust/internal/TypeInference.qll | 144 +- .../lib/codeql/rust/internal/TypeMention.qll | 16 + .../test/library-tests/type-inference/main.rs | 38 +- .../type-inference/type-inference.expected | 2198 ++++++++++------- .../typeinference/internal/TypeInference.qll | 481 +++- 7 files changed, 1872 insertions(+), 1174 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index 5bc45afecf1..5287c73b017 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -448,61 +448,6 @@ class ImplItemNode extends ImplOrTraitItemNode instanceof Impl { TraitItemNode resolveTraitTy() { result = resolvePath(this.getTraitPath()) } - pragma[nomagic] - private TypeRepr getASelfTyArg() { - result = - this.getSelfPath().getSegment().getGenericArgList().getAGenericArg().(TypeArg).getTypeRepr() - } - - /** - * Holds if this `impl` block is not fully parametric. That is, the implementing - * type is generic and the implementation is not parametrically polymorphic in all - * the implementing type's arguments. - * - * Examples: - * - * ```rust - * impl Foo { ... } // fully parametric - * - * impl Foo { ... } // fully parametric - * - * impl Foo { ... } // not fully parametric - * - * impl Foo> { ... } // not fully parametric - * - * impl Foo { ... } // not fully parametric - * - * impl Foo where T: Trait { ... } // not fully parametric - * ``` - */ - pragma[nomagic] - predicate isNotFullyParametric() { - exists(TypeRepr arg | arg = this.getASelfTyArg() | - not exists(resolveTypeParamPathTypeRepr(arg)) - or - resolveTypeParamPathTypeRepr(arg).hasTraitBound() - ) - } - - /** - * Holds if this `impl` block is fully parametric. Examples: - * - * ```rust - * impl Foo { ... } // fully parametric - * - * impl Foo { ... } // fully parametric - * - * impl Foo { ... } // not fully parametric - * - * impl Foo> { ... } // not fully parametric - * - * impl Foo { ... } // not fully parametric - * - * impl Foo where T: Trait { ... } // not fully parametric - * ``` - */ - predicate isFullyParametric() { not this.isNotFullyParametric() } - override AssocItemNode getAnAssocItem() { result = super.getAssocItemList().getAnAssocItem() } override string getName() { result = "(impl)" } diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/Type.qll index 9e063d21516..b50d0424a3d 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/Type.qll @@ -27,10 +27,6 @@ newtype TType = * types, such as traits and implementation blocks. */ abstract class Type extends TType { - /** Gets the method `name` belonging to this type, if any. */ - pragma[nomagic] - abstract Function getMethod(string name); - /** Gets the struct field `name` belonging to this type, if any. */ pragma[nomagic] abstract StructField getStructField(string name); @@ -45,25 +41,6 @@ abstract class Type extends TType { /** Gets a type parameter of this type. */ final TypeParameter getATypeParameter() { result = this.getTypeParameter(_) } - /** - * Gets an AST node that mentions a base type of this type, if any. - * - * Although Rust doesn't have traditional OOP-style inheritance, we model trait - * bounds and `impl` blocks as base types. Example: - * - * ```rust - * trait T1 {} - * - * trait T2 {} - * - * trait T3 : T1, T2 {} - * // ^^ `this` - * // ^^ `result` - * // ^^ `result` - * ``` - */ - abstract TypeMention getABaseTypeMention(); - /** Gets a textual representation of this type. */ abstract string toString(); @@ -73,21 +50,6 @@ abstract class Type extends TType { abstract private class StructOrEnumType extends Type { abstract ItemNode asItemNode(); - - final override Function getMethod(string name) { - result = this.asItemNode().getASuccessor(name) and - exists(ImplOrTraitItemNode impl | result = impl.getAnAssocItem() | - impl instanceof Trait - or - impl.(ImplItemNode).isFullyParametric() - ) - } - - /** Gets all of the fully parametric `impl` blocks that target this type. */ - final override ImplMention getABaseTypeMention() { - this.asItemNode() = result.resolveSelfTy() and - result.isFullyParametric() - } } /** A struct type. */ @@ -138,8 +100,6 @@ class TraitType extends Type, TTrait { TraitType() { this = TTrait(trait) } - override Function getMethod(string name) { result = trait.(ItemNode).getASuccessor(name) } - override StructField getStructField(string name) { none() } override TupleField getTupleField(int i) { none() } @@ -151,14 +111,6 @@ class TraitType extends Type, TTrait { any(AssociatedTypeTypeParameter param | param.getTrait() = trait and param.getIndex() = i) } - pragma[nomagic] - private TypeReprMention getABoundMention() { - result = trait.getTypeBoundList().getABound().getTypeRepr() - } - - /** Gets any of the trait bounds of this trait. */ - override TypeMention getABaseTypeMention() { result = this.getABoundMention() } - override string toString() { result = trait.toString() } override Location getLocation() { result = trait.getLocation() } @@ -220,8 +172,6 @@ class ImplType extends Type, TImpl { ImplType() { this = TImpl(impl) } - override Function getMethod(string name) { result = impl.(ItemNode).getASuccessor(name) } - override StructField getStructField(string name) { none() } override TupleField getTupleField(int i) { none() } @@ -230,9 +180,6 @@ class ImplType extends Type, TImpl { result = TTypeParamTypeParameter(impl.getGenericParamList().getTypeParam(i)) } - /** Get the trait implemented by this `impl` block, if any. */ - override TypeMention getABaseTypeMention() { result = impl.getTrait() } - override string toString() { result = impl.toString() } override Location getLocation() { result = impl.getLocation() } @@ -247,8 +194,6 @@ class ImplType extends Type, TImpl { class ArrayType extends Type, TArrayType { ArrayType() { this = TArrayType() } - override Function getMethod(string name) { none() } - override StructField getStructField(string name) { none() } override TupleField getTupleField(int i) { none() } @@ -257,8 +202,6 @@ class ArrayType extends Type, TArrayType { none() // todo } - override TypeMention getABaseTypeMention() { none() } - override string toString() { result = "[]" } override Location getLocation() { result instanceof EmptyLocation } @@ -273,8 +216,6 @@ class ArrayType extends Type, TArrayType { class RefType extends Type, TRefType { RefType() { this = TRefType() } - override Function getMethod(string name) { none() } - override StructField getStructField(string name) { none() } override TupleField getTupleField(int i) { none() } @@ -284,8 +225,6 @@ class RefType extends Type, TRefType { i = 0 } - override TypeMention getABaseTypeMention() { none() } - override string toString() { result = "&" } override Location getLocation() { result instanceof EmptyLocation } @@ -293,8 +232,6 @@ class RefType extends Type, TRefType { /** A type parameter. */ abstract class TypeParameter extends Type { - override TypeMention getABaseTypeMention() { none() } - override StructField getStructField(string name) { none() } override TupleField getTupleField(int i) { none() } @@ -318,19 +255,9 @@ class TypeParamTypeParameter extends TypeParameter, TTypeParamTypeParameter { TypeParam getTypeParam() { result = typeParam } - override Function getMethod(string name) { - // NOTE: If the type parameter has trait bounds, then this finds methods - // on the bounding traits. - result = typeParam.(ItemNode).getASuccessor(name) - } - override string toString() { result = typeParam.toString() } override Location getLocation() { result = typeParam.getLocation() } - - final override TypeMention getABaseTypeMention() { - result = typeParam.getTypeBoundList().getABound().getTypeRepr() - } } /** @@ -377,19 +304,13 @@ class AssociatedTypeTypeParameter extends TypeParameter, TAssociatedTypeTypePara int getIndex() { traitAliasIndex(_, result, typeAlias) } - override Function getMethod(string name) { none() } - override string toString() { result = typeAlias.getName().getText() } override Location getLocation() { result = typeAlias.getLocation() } - - override TypeMention getABaseTypeMention() { none() } } /** An implicit reference type parameter. */ class RefTypeParameter extends TypeParameter, TRefTypeParameter { - override Function getMethod(string name) { none() } - override string toString() { result = "&T" } override Location getLocation() { result instanceof EmptyLocation } @@ -409,15 +330,34 @@ class SelfTypeParameter extends TypeParameter, TSelfTypeParameter { Trait getTrait() { result = trait } - override TypeMention getABaseTypeMention() { result = trait } - - override Function getMethod(string name) { - // The `Self` type parameter is an implementation of the trait, so it has - // all the trait's methods. - result = trait.(ItemNode).getASuccessor(name) - } - override string toString() { result = "Self [" + trait.toString() + "]" } override Location getLocation() { result = trait.getLocation() } } + +/** A type abstraction. */ +abstract class TypeAbstraction extends AstNode { + abstract TypeParameter getATypeParameter(); +} + +final class ImplTypeAbstraction extends TypeAbstraction, Impl { + override TypeParamTypeParameter getATypeParameter() { + result.getTypeParam() = this.getGenericParamList().getATypeParam() + } +} + +final class TraitTypeAbstraction extends TypeAbstraction, Trait { + override TypeParamTypeParameter getATypeParameter() { + result.getTypeParam() = this.getGenericParamList().getATypeParam() + } +} + +final class TypeBoundTypeAbstraction extends TypeAbstraction, TypeBound { + override TypeParamTypeParameter getATypeParameter() { none() } +} + +final class SelfTypeBoundTypeAbstraction extends TypeAbstraction, Name { + SelfTypeBoundTypeAbstraction() { any(Trait trait).getName() = this } + + override TypeParamTypeParameter getATypeParameter() { none() } +} diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 8c741781c20..9b9bb09e160 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -19,6 +19,8 @@ private module Input1 implements InputSig1 { class TypeParameter = T::TypeParameter; + class TypeAbstraction = T::TypeAbstraction; + private newtype TTypeArgumentPosition = // method type parameters are matched by position instead of by type // parameter entity, to avoid extra recursion through method call resolution @@ -108,7 +110,45 @@ private module Input2 implements InputSig2 { class TypeMention = TM::TypeMention; - TypeMention getABaseTypeMention(Type t) { result = t.getABaseTypeMention() } + TypeMention getABaseTypeMention(Type t) { none() } + + TypeMention getTypeParameterConstraint(TypeParameter tp) { + result = tp.(TypeParamTypeParameter).getTypeParam().getTypeBoundList().getABound().getTypeRepr() + or + result = tp.(SelfTypeParameter).getTrait() + } + + predicate conditionSatisfiesConstraint( + TypeAbstraction abs, TypeMention condition, TypeMention constraint + ) { + // `impl` blocks implementing traits + exists(Impl impl | + abs = impl and + condition = impl.getSelfTy() and + constraint = impl.getTrait() + ) + or + // supertraits + exists(Trait trait | + abs = trait and + condition = trait and + constraint = trait.getTypeBoundList().getABound().getTypeRepr() + ) + or + // trait bounds on type parameters + exists(TypeParam param | + abs = param.getTypeBoundList().getABound() and + condition = param and + constraint = param.getTypeBoundList().getABound().getTypeRepr() + ) + or + // the implicit `Self` type parameter satisfies the trait + exists(SelfTypeParameterMention self | + abs = self and + condition = self and + constraint = self.getTrait() + ) + } } private module M2 = Make2; @@ -227,7 +267,7 @@ private Type getRefAdjustImplicitSelfType(SelfParam self, TypePath suffix, Type } pragma[nomagic] -private Type inferImplSelfType(Impl i, TypePath path) { +private Type resolveImplSelfType(Impl i, TypePath path) { result = i.getSelfTy().(TypeReprMention).resolveTypeAt(path) } @@ -239,7 +279,7 @@ private Type inferImplicitSelfType(SelfParam self, TypePath path) { self = f.getParamList().getSelfParam() and result = getRefAdjustImplicitSelfType(self, suffix, t, path) | - t = inferImplSelfType(i, suffix) + t = resolveImplSelfType(i, suffix) or t = TSelfTypeParameter(i) and suffix.isEmpty() ) @@ -911,36 +951,94 @@ private module Cached { ) } + pragma[nomagic] + private Type receiverRootType(Expr e) { + any(MethodCallExpr mce).getReceiver() = e and + result = inferType(e) + } + + pragma[nomagic] + private Type inferReceiverType(Expr e, TypePath path) { + exists(Type root | root = receiverRootType(e) | + // for reference types, lookup members in the type being referenced + if root = TRefType() + then result = inferType(e, TypePath::cons(TRefTypeParameter(), path)) + else result = inferType(e, path) + ) + } + + private class ReceiverExpr extends Expr { + MethodCallExpr mce; + + ReceiverExpr() { mce.getReceiver() = this } + + string getField() { result = mce.getIdentifier().getText() } + + Type resolveTypeAt(TypePath path) { result = inferReceiverType(this, path) } + } + + private module IsInstantiationOfInput implements IsInstantiationOfSig { + predicate potentialInstantiationOf(ReceiverExpr receiver, TypeAbstraction impl, TypeMention sub) { + sub.resolveType() = receiver.resolveTypeAt(TypePath::nil()) and + sub = impl.(ImplTypeAbstraction).getSelfTy().(TypeReprMention) and + exists(impl.(ImplItemNode).getASuccessor(receiver.getField())) + } + } + + bindingset[item, name] + pragma[inline_late] + private Function getMethodSuccessor(ItemNode item, string name) { + result = item.getASuccessor(name) + } + + bindingset[tp, name] + pragma[inline_late] + private Function getTypeParameterMethod(TypeParameter tp, string name) { + result = getMethodSuccessor(tp.(TypeParamTypeParameter).getTypeParam(), name) + or + result = getMethodSuccessor(tp.(SelfTypeParameter).getTrait(), name) + } + + /** + * Gets the method from an `impl` block with an implementing type that matches + * the type of `receiver` and with a name of the method call in which + * `receiver` occurs, if any. + */ + private Function getMethodFromImpl(ReceiverExpr receiver) { + exists(Impl impl | + IsInstantiationOf::isInstantiationOf(receiver, impl, + impl.(ImplTypeAbstraction).getSelfTy().(TypeReprMention)) and + result = getMethodSuccessor(impl, receiver.getField()) + ) + } + + /** Gets a method that the method call `mce` resolves to, if any. */ + cached + Function resolveMethodCallExpr(MethodCallExpr mce) { + exists(ReceiverExpr receiver | mce.getReceiver() = receiver | + // The method comes from an `impl` block targeting the type of `receiver`. + result = getMethodFromImpl(receiver) + or + // The type of `receiver` is a type parameter and the method comes from a + // trait bound on the type parameter. + result = getTypeParameterMethod(receiver.resolveTypeAt(TypePath::nil()), receiver.getField()) + ) + } + pragma[inline] - private Type getLookupType(AstNode n) { + private Type inferRootTypeDeref(AstNode n) { exists(Type t | t = inferType(n) and + // for reference types, lookup members in the type being referenced if t = TRefType() - then - // for reference types, lookup members in the type being referenced - result = inferType(n, TypePath::singleton(TRefTypeParameter())) + then result = inferType(n, TypePath::singleton(TRefTypeParameter())) else result = t ) } - pragma[nomagic] - private Type getMethodCallExprLookupType(MethodCallExpr mce, string name) { - result = getLookupType(mce.getReceiver()) and - name = mce.getIdentifier().getText() - } - - /** - * Gets a method that the method call `mce` resolves to, if any. - */ - cached - Function resolveMethodCallExpr(MethodCallExpr mce) { - exists(string name | result = getMethodCallExprLookupType(mce, name).getMethod(name)) - } - pragma[nomagic] private Type getFieldExprLookupType(FieldExpr fe, string name) { - result = getLookupType(fe.getContainer()) and - name = fe.getIdentifier().getText() + result = inferRootTypeDeref(fe.getContainer()) and name = fe.getIdentifier().getText() } /** diff --git a/rust/ql/lib/codeql/rust/internal/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/TypeMention.qll index df180e8f6cf..d12cdf8ac3e 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeMention.qll @@ -248,3 +248,19 @@ class TraitMention extends TypeMention, TraitItemNode { override Type resolveType() { result = TTrait(this) } } + +// NOTE: Since the implicit type parameter for the self type parameter never +// appears in the AST, we (somewhat arbitrarily) choose the name of a trait as a +// type mention. This works because there is a one-to-one correspondence between +// a trait and its name. +class SelfTypeParameterMention extends TypeMention, Name { + Trait trait; + + SelfTypeParameterMention() { trait.getName() = this } + + Trait getTrait() { result = trait } + + override Type resolveType() { result = TSelfTypeParameter(trait) } + + override TypeReprMention getTypeArgument(int i) { none() } +} diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 61969feb204..84518bfd610 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -129,8 +129,8 @@ mod method_non_parametric_impl { println!("{:?}", x.a); // $ fieldof=MyThing println!("{:?}", y.a); // $ fieldof=MyThing - println!("{:?}", x.m1()); // $ MISSING: method=MyThing::m1 - println!("{:?}", y.m1().a); // $ MISSING: method=MyThing::m1 fieldof=MyThing + println!("{:?}", x.m1()); // $ method=MyThing::m1 + println!("{:?}", y.m1().a); // $ method=MyThing::m1 fieldof=MyThing let x = MyThing { a: S1 }; let y = MyThing { a: S2 }; @@ -295,22 +295,22 @@ mod method_non_parametric_trait_impl { // Tests for method resolution - println!("{:?}", thing_s1.m1()); // $ MISSING: method=MyThing::m1 - println!("{:?}", thing_s2.m1().a); // $ MISSING: method=MyThing::m1 fieldof=MyThing - let s3: S3 = thing_s3.m1(); // $ MISSING: method=MyThing::m1 + println!("{:?}", thing_s1.m1()); // $ method=MyThing::m1 + println!("{:?}", thing_s2.m1().a); // $ method=MyThing::m1 fieldof=MyThing + let s3: S3 = thing_s3.m1(); // $ method=MyThing::m1 println!("{:?}", s3); let p1 = MyPair { p1: S1, p2: S1 }; - println!("{:?}", p1.m1()); // $ MISSING: method=MyTrait::m1 + println!("{:?}", p1.m1()); // $ method=MyTrait::m1 let p2 = MyPair { p1: S1, p2: S2 }; - println!("{:?}", p2.m1()); // $ MISSING: method=MyTrait::m1 + println!("{:?}", p2.m1()); // $ method=MyTrait::m1 let p3 = MyPair { p1: MyThing { a: S1 }, p2: S3, }; - println!("{:?}", p3.m1()); // $ MISSING: method=MyTrait::m1 + println!("{:?}", p3.m1()); // $ method=MyTrait::m1 // These calls go to the first implementation of `MyProduct` for `MyPair` let a = MyPair { p1: S1, p2: S1 }; @@ -324,17 +324,17 @@ mod method_non_parametric_trait_impl { // parameters of the implementation enforce that the two generics must // be equal. let b = MyPair { p1: S2, p2: S1 }; - let x = b.fst(); // $ MISSING: method=MyPair::fst SPURIOUS: method=MyPair::fst + let x = b.fst(); // $ method=MyPair::fst println!("{:?}", x); - let y = b.snd(); // $ MISSING: method=MyPair::snd SPURIOUS: method=MyPair::snd + let y = b.snd(); // $ method=MyPair::snd println!("{:?}", y); // Tests for inference of type parameters based on trait implementations. - let x = call_trait_m1(thing_s1); // $ MISSING: type=x:S1 + let x = call_trait_m1(thing_s1); // $ type=x:S1 println!("{:?}", x); - let y = call_trait_m1(thing_s2); // $ MISSING: type=y:MyThing type=y.A:S2 - println!("{:?}", y.a); // $ MISSING: fieldof=MyThing + let y = call_trait_m1(thing_s2); // $ type=y:MyThing type=y:A.S2 + println!("{:?}", y.a); // $ fieldof=MyThing // First implementation let a = MyPair { p1: S1, p2: S1 }; @@ -345,20 +345,20 @@ mod method_non_parametric_trait_impl { // Second implementation let b = MyPair { p1: S2, p2: S1 }; - let x = get_fst(b); // $ type=x:S1 SPURIOUS: type=x:S2 + let x = get_fst(b); // $ type=x:S1 println!("{:?}", x); - let y = get_snd(b); // $ type=y:S2 SPURIOUS: type=y:S1 + let y = get_snd(b); // $ type=y:S2 println!("{:?}", y); let c = MyPair { p1: S3, p2: MyPair { p1: S2, p2: S1 }, }; - let x = get_snd_fst(c); // $ type=x:S1 SPURIOUS: type=x:S2 + let x = get_snd_fst(c); // $ type=x:S1 let thing = MyThing { a: S1 }; - let i = thing.convert_to(); // $ MISSING: type=i:S1 MISSING: method=T::convert_to - let j = convert_to(thing); // $ MISSING: type=j:S1 + let i = thing.convert_to(); // $ MISSING: type=i:S1 method=T::convert_to + let j = convert_to(thing); // $ type=j:S1 } } @@ -936,7 +936,7 @@ mod option_methods { println!("{:?}", x4); let x5 = MyOption::MySome(MyOption::::MyNone()); - println!("{:?}", x5.flatten()); // $ MISSING: method=flatten + println!("{:?}", x5.flatten()); // $ method=flatten let x6 = MyOption::MySome(MyOption::::MyNone()); println!("{:?}", MyOption::>::flatten(x6)); diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 42e5d90701b..71681743f3f 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -119,8 +119,12 @@ inferType | main.rs:130:26:130:28 | y.a | | main.rs:101:5:102:14 | S2 | | main.rs:132:26:132:26 | x | | main.rs:94:5:97:5 | MyThing | | main.rs:132:26:132:26 | x | A | main.rs:99:5:100:14 | S1 | +| main.rs:132:26:132:31 | x.m1() | | main.rs:99:5:100:14 | S1 | | main.rs:133:26:133:26 | y | | main.rs:94:5:97:5 | MyThing | | main.rs:133:26:133:26 | y | A | main.rs:101:5:102:14 | S2 | +| main.rs:133:26:133:31 | y.m1() | | main.rs:94:5:97:5 | MyThing | +| main.rs:133:26:133:31 | y.m1() | A | main.rs:101:5:102:14 | S2 | +| main.rs:133:26:133:33 | ... .a | | main.rs:101:5:102:14 | S2 | | main.rs:135:13:135:13 | x | | main.rs:94:5:97:5 | MyThing | | main.rs:135:13:135:13 | x | A | main.rs:99:5:100:14 | S1 | | main.rs:135:17:135:33 | MyThing {...} | | main.rs:94:5:97:5 | MyThing | @@ -137,964 +141,1236 @@ inferType | main.rs:139:26:139:26 | y | | main.rs:94:5:97:5 | MyThing | | main.rs:139:26:139:26 | y | A | main.rs:101:5:102:14 | S2 | | main.rs:139:26:139:31 | y.m2() | | main.rs:101:5:102:14 | S2 | -| main.rs:155:15:155:18 | SelfParam | | main.rs:154:5:163:5 | Self [trait MyTrait] | -| main.rs:157:15:157:18 | SelfParam | | main.rs:154:5:163:5 | Self [trait MyTrait] | -| main.rs:160:9:162:9 | { ... } | | main.rs:154:5:163:5 | Self [trait MyTrait] | -| main.rs:161:13:161:16 | self | | main.rs:154:5:163:5 | Self [trait MyTrait] | -| main.rs:165:43:165:43 | x | | main.rs:165:26:165:40 | T2 | -| main.rs:165:56:167:5 | { ... } | | main.rs:165:22:165:23 | T1 | -| main.rs:166:9:166:9 | x | | main.rs:165:26:165:40 | T2 | -| main.rs:166:9:166:14 | x.m1() | | main.rs:165:22:165:23 | T1 | -| main.rs:171:15:171:18 | SelfParam | | main.rs:144:5:147:5 | MyThing | -| main.rs:171:15:171:18 | SelfParam | A | main.rs:149:5:150:14 | S1 | -| main.rs:171:27:173:9 | { ... } | | main.rs:149:5:150:14 | S1 | -| main.rs:172:13:172:16 | self | | main.rs:144:5:147:5 | MyThing | -| main.rs:172:13:172:16 | self | A | main.rs:149:5:150:14 | S1 | -| main.rs:172:13:172:18 | self.a | | main.rs:149:5:150:14 | S1 | -| main.rs:178:15:178:18 | SelfParam | | main.rs:144:5:147:5 | MyThing | -| main.rs:178:15:178:18 | SelfParam | A | main.rs:151:5:152:14 | S2 | -| main.rs:178:29:180:9 | { ... } | | main.rs:144:5:147:5 | MyThing | -| main.rs:178:29:180:9 | { ... } | A | main.rs:151:5:152:14 | S2 | -| main.rs:179:13:179:30 | Self {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:179:13:179:30 | Self {...} | A | main.rs:151:5:152:14 | S2 | -| main.rs:179:23:179:26 | self | | main.rs:144:5:147:5 | MyThing | -| main.rs:179:23:179:26 | self | A | main.rs:151:5:152:14 | S2 | -| main.rs:179:23:179:28 | self.a | | main.rs:151:5:152:14 | S2 | -| main.rs:184:13:184:13 | x | | main.rs:144:5:147:5 | MyThing | -| main.rs:184:13:184:13 | x | A | main.rs:149:5:150:14 | S1 | -| main.rs:184:17:184:33 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:184:17:184:33 | MyThing {...} | A | main.rs:149:5:150:14 | S1 | -| main.rs:184:30:184:31 | S1 | | main.rs:149:5:150:14 | S1 | -| main.rs:185:13:185:13 | y | | main.rs:144:5:147:5 | MyThing | -| main.rs:185:13:185:13 | y | A | main.rs:151:5:152:14 | S2 | -| main.rs:185:17:185:33 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:185:17:185:33 | MyThing {...} | A | main.rs:151:5:152:14 | S2 | -| main.rs:185:30:185:31 | S2 | | main.rs:151:5:152:14 | S2 | -| main.rs:187:26:187:26 | x | | main.rs:144:5:147:5 | MyThing | -| main.rs:187:26:187:26 | x | A | main.rs:149:5:150:14 | S1 | -| main.rs:188:26:188:26 | y | | main.rs:144:5:147:5 | MyThing | -| main.rs:188:26:188:26 | y | A | main.rs:151:5:152:14 | S2 | -| main.rs:190:13:190:13 | x | | main.rs:144:5:147:5 | MyThing | -| main.rs:190:13:190:13 | x | A | main.rs:149:5:150:14 | S1 | -| main.rs:190:17:190:33 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:190:17:190:33 | MyThing {...} | A | main.rs:149:5:150:14 | S1 | -| main.rs:190:30:190:31 | S1 | | main.rs:149:5:150:14 | S1 | -| main.rs:191:13:191:13 | y | | main.rs:144:5:147:5 | MyThing | -| main.rs:191:13:191:13 | y | A | main.rs:151:5:152:14 | S2 | -| main.rs:191:17:191:33 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:191:17:191:33 | MyThing {...} | A | main.rs:151:5:152:14 | S2 | -| main.rs:191:30:191:31 | S2 | | main.rs:151:5:152:14 | S2 | -| main.rs:193:40:193:40 | x | | main.rs:144:5:147:5 | MyThing | -| main.rs:193:40:193:40 | x | A | main.rs:149:5:150:14 | S1 | -| main.rs:194:40:194:40 | y | | main.rs:144:5:147:5 | MyThing | -| main.rs:194:40:194:40 | y | A | main.rs:151:5:152:14 | S2 | -| main.rs:211:19:211:22 | SelfParam | | main.rs:209:5:212:5 | Self [trait FirstTrait] | -| main.rs:216:19:216:22 | SelfParam | | main.rs:214:5:217:5 | Self [trait SecondTrait] | -| main.rs:219:64:219:64 | x | | main.rs:219:45:219:61 | T | -| main.rs:221:13:221:14 | s1 | | main.rs:219:35:219:42 | I | -| main.rs:221:18:221:18 | x | | main.rs:219:45:219:61 | T | -| main.rs:221:18:221:27 | x.method() | | main.rs:219:35:219:42 | I | -| main.rs:222:26:222:27 | s1 | | main.rs:219:35:219:42 | I | -| main.rs:225:65:225:65 | x | | main.rs:225:46:225:62 | T | -| main.rs:227:13:227:14 | s2 | | main.rs:225:36:225:43 | I | -| main.rs:227:18:227:18 | x | | main.rs:225:46:225:62 | T | -| main.rs:227:18:227:27 | x.method() | | main.rs:225:36:225:43 | I | -| main.rs:228:26:228:27 | s2 | | main.rs:225:36:225:43 | I | -| main.rs:231:49:231:49 | x | | main.rs:231:30:231:46 | T | -| main.rs:232:13:232:13 | s | | main.rs:201:5:202:14 | S1 | -| main.rs:232:17:232:17 | x | | main.rs:231:30:231:46 | T | -| main.rs:232:17:232:26 | x.method() | | main.rs:201:5:202:14 | S1 | -| main.rs:233:26:233:26 | s | | main.rs:201:5:202:14 | S1 | -| main.rs:236:53:236:53 | x | | main.rs:236:34:236:50 | T | -| main.rs:237:13:237:13 | s | | main.rs:201:5:202:14 | S1 | -| main.rs:237:17:237:17 | x | | main.rs:236:34:236:50 | T | -| main.rs:237:17:237:26 | x.method() | | main.rs:201:5:202:14 | S1 | -| main.rs:238:26:238:26 | s | | main.rs:201:5:202:14 | S1 | -| main.rs:242:16:242:19 | SelfParam | | main.rs:241:5:245:5 | Self [trait Pair] | -| main.rs:244:16:244:19 | SelfParam | | main.rs:241:5:245:5 | Self [trait Pair] | -| main.rs:247:58:247:58 | x | | main.rs:247:41:247:55 | T | -| main.rs:247:64:247:64 | y | | main.rs:247:41:247:55 | T | -| main.rs:249:13:249:14 | s1 | | main.rs:201:5:202:14 | S1 | -| main.rs:249:18:249:18 | x | | main.rs:247:41:247:55 | T | -| main.rs:249:18:249:24 | x.fst() | | main.rs:201:5:202:14 | S1 | -| main.rs:250:13:250:14 | s2 | | main.rs:204:5:205:14 | S2 | -| main.rs:250:18:250:18 | y | | main.rs:247:41:247:55 | T | -| main.rs:250:18:250:24 | y.snd() | | main.rs:204:5:205:14 | S2 | -| main.rs:251:32:251:33 | s1 | | main.rs:201:5:202:14 | S1 | -| main.rs:251:36:251:37 | s2 | | main.rs:204:5:205:14 | S2 | -| main.rs:254:69:254:69 | x | | main.rs:254:52:254:66 | T | -| main.rs:254:75:254:75 | y | | main.rs:254:52:254:66 | T | -| main.rs:256:13:256:14 | s1 | | main.rs:201:5:202:14 | S1 | -| main.rs:256:18:256:18 | x | | main.rs:254:52:254:66 | T | -| main.rs:256:18:256:24 | x.fst() | | main.rs:201:5:202:14 | S1 | -| main.rs:257:13:257:14 | s2 | | main.rs:254:41:254:49 | T2 | -| main.rs:257:18:257:18 | y | | main.rs:254:52:254:66 | T | -| main.rs:257:18:257:24 | y.snd() | | main.rs:254:41:254:49 | T2 | -| main.rs:258:32:258:33 | s1 | | main.rs:201:5:202:14 | S1 | -| main.rs:258:36:258:37 | s2 | | main.rs:254:41:254:49 | T2 | -| main.rs:274:15:274:18 | SelfParam | | main.rs:273:5:282:5 | Self [trait MyTrait] | -| main.rs:276:15:276:18 | SelfParam | | main.rs:273:5:282:5 | Self [trait MyTrait] | -| main.rs:279:9:281:9 | { ... } | | main.rs:273:19:273:19 | A | -| main.rs:280:13:280:16 | self | | main.rs:273:5:282:5 | Self [trait MyTrait] | -| main.rs:280:13:280:21 | self.m1() | | main.rs:273:19:273:19 | A | -| main.rs:285:43:285:43 | x | | main.rs:285:26:285:40 | T2 | -| main.rs:285:56:287:5 | { ... } | | main.rs:285:22:285:23 | T1 | -| main.rs:286:9:286:9 | x | | main.rs:285:26:285:40 | T2 | -| main.rs:286:9:286:14 | x.m1() | | main.rs:285:22:285:23 | T1 | -| main.rs:290:49:290:49 | x | | main.rs:263:5:266:5 | MyThing | -| main.rs:290:49:290:49 | x | T | main.rs:290:32:290:46 | T2 | -| main.rs:290:71:292:5 | { ... } | | main.rs:290:28:290:29 | T1 | -| main.rs:291:9:291:9 | x | | main.rs:263:5:266:5 | MyThing | -| main.rs:291:9:291:9 | x | T | main.rs:290:32:290:46 | T2 | -| main.rs:291:9:291:11 | x.a | | main.rs:290:32:290:46 | T2 | -| main.rs:291:9:291:16 | ... .m1() | | main.rs:290:28:290:29 | T1 | -| main.rs:295:15:295:18 | SelfParam | | main.rs:263:5:266:5 | MyThing | -| main.rs:295:15:295:18 | SelfParam | T | main.rs:294:10:294:10 | T | -| main.rs:295:26:297:9 | { ... } | | main.rs:294:10:294:10 | T | -| main.rs:296:13:296:16 | self | | main.rs:263:5:266:5 | MyThing | -| main.rs:296:13:296:16 | self | T | main.rs:294:10:294:10 | T | -| main.rs:296:13:296:18 | self.a | | main.rs:294:10:294:10 | T | -| main.rs:301:13:301:13 | x | | main.rs:263:5:266:5 | MyThing | -| main.rs:301:13:301:13 | x | T | main.rs:268:5:269:14 | S1 | -| main.rs:301:17:301:33 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | -| main.rs:301:17:301:33 | MyThing {...} | T | main.rs:268:5:269:14 | S1 | -| main.rs:301:30:301:31 | S1 | | main.rs:268:5:269:14 | S1 | -| main.rs:302:13:302:13 | y | | main.rs:263:5:266:5 | MyThing | -| main.rs:302:13:302:13 | y | T | main.rs:270:5:271:14 | S2 | -| main.rs:302:17:302:33 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | -| main.rs:302:17:302:33 | MyThing {...} | T | main.rs:270:5:271:14 | S2 | -| main.rs:302:30:302:31 | S2 | | main.rs:270:5:271:14 | S2 | -| main.rs:304:26:304:26 | x | | main.rs:263:5:266:5 | MyThing | -| main.rs:304:26:304:26 | x | T | main.rs:268:5:269:14 | S1 | -| main.rs:304:26:304:31 | x.m1() | | main.rs:268:5:269:14 | S1 | -| main.rs:305:26:305:26 | y | | main.rs:263:5:266:5 | MyThing | -| main.rs:305:26:305:26 | y | T | main.rs:270:5:271:14 | S2 | -| main.rs:305:26:305:31 | y.m1() | | main.rs:270:5:271:14 | S2 | -| main.rs:307:13:307:13 | x | | main.rs:263:5:266:5 | MyThing | -| main.rs:307:13:307:13 | x | T | main.rs:268:5:269:14 | S1 | -| main.rs:307:17:307:33 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | -| main.rs:307:17:307:33 | MyThing {...} | T | main.rs:268:5:269:14 | S1 | -| main.rs:307:30:307:31 | S1 | | main.rs:268:5:269:14 | S1 | -| main.rs:308:13:308:13 | y | | main.rs:263:5:266:5 | MyThing | -| main.rs:308:13:308:13 | y | T | main.rs:270:5:271:14 | S2 | -| main.rs:308:17:308:33 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | -| main.rs:308:17:308:33 | MyThing {...} | T | main.rs:270:5:271:14 | S2 | -| main.rs:308:30:308:31 | S2 | | main.rs:270:5:271:14 | S2 | -| main.rs:310:26:310:26 | x | | main.rs:263:5:266:5 | MyThing | -| main.rs:310:26:310:26 | x | T | main.rs:268:5:269:14 | S1 | -| main.rs:310:26:310:31 | x.m2() | | main.rs:268:5:269:14 | S1 | -| main.rs:311:26:311:26 | y | | main.rs:263:5:266:5 | MyThing | -| main.rs:311:26:311:26 | y | T | main.rs:270:5:271:14 | S2 | -| main.rs:311:26:311:31 | y.m2() | | main.rs:270:5:271:14 | S2 | -| main.rs:313:13:313:14 | x2 | | main.rs:263:5:266:5 | MyThing | -| main.rs:313:13:313:14 | x2 | T | main.rs:268:5:269:14 | S1 | -| main.rs:313:18:313:34 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | -| main.rs:313:18:313:34 | MyThing {...} | T | main.rs:268:5:269:14 | S1 | -| main.rs:313:31:313:32 | S1 | | main.rs:268:5:269:14 | S1 | -| main.rs:314:13:314:14 | y2 | | main.rs:263:5:266:5 | MyThing | -| main.rs:314:13:314:14 | y2 | T | main.rs:270:5:271:14 | S2 | -| main.rs:314:18:314:34 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | -| main.rs:314:18:314:34 | MyThing {...} | T | main.rs:270:5:271:14 | S2 | -| main.rs:314:31:314:32 | S2 | | main.rs:270:5:271:14 | S2 | -| main.rs:316:26:316:42 | call_trait_m1(...) | | main.rs:268:5:269:14 | S1 | -| main.rs:316:40:316:41 | x2 | | main.rs:263:5:266:5 | MyThing | -| main.rs:316:40:316:41 | x2 | T | main.rs:268:5:269:14 | S1 | -| main.rs:317:26:317:42 | call_trait_m1(...) | | main.rs:270:5:271:14 | S2 | -| main.rs:317:40:317:41 | y2 | | main.rs:263:5:266:5 | MyThing | -| main.rs:317:40:317:41 | y2 | T | main.rs:270:5:271:14 | S2 | -| main.rs:319:13:319:14 | x3 | | main.rs:263:5:266:5 | MyThing | -| main.rs:319:13:319:14 | x3 | T | main.rs:263:5:266:5 | MyThing | -| main.rs:319:13:319:14 | x3 | T.T | main.rs:268:5:269:14 | S1 | -| main.rs:319:18:321:9 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | -| main.rs:319:18:321:9 | MyThing {...} | T | main.rs:263:5:266:5 | MyThing | -| main.rs:319:18:321:9 | MyThing {...} | T.T | main.rs:268:5:269:14 | S1 | -| main.rs:320:16:320:32 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | -| main.rs:320:16:320:32 | MyThing {...} | T | main.rs:268:5:269:14 | S1 | -| main.rs:320:29:320:30 | S1 | | main.rs:268:5:269:14 | S1 | -| main.rs:322:13:322:14 | y3 | | main.rs:263:5:266:5 | MyThing | -| main.rs:322:13:322:14 | y3 | T | main.rs:263:5:266:5 | MyThing | -| main.rs:322:13:322:14 | y3 | T.T | main.rs:270:5:271:14 | S2 | -| main.rs:322:18:324:9 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | -| main.rs:322:18:324:9 | MyThing {...} | T | main.rs:263:5:266:5 | MyThing | -| main.rs:322:18:324:9 | MyThing {...} | T.T | main.rs:270:5:271:14 | S2 | -| main.rs:323:16:323:32 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | -| main.rs:323:16:323:32 | MyThing {...} | T | main.rs:270:5:271:14 | S2 | -| main.rs:323:29:323:30 | S2 | | main.rs:270:5:271:14 | S2 | -| main.rs:326:26:326:48 | call_trait_thing_m1(...) | | main.rs:268:5:269:14 | S1 | -| main.rs:326:46:326:47 | x3 | | main.rs:263:5:266:5 | MyThing | -| main.rs:326:46:326:47 | x3 | T | main.rs:263:5:266:5 | MyThing | -| main.rs:326:46:326:47 | x3 | T.T | main.rs:268:5:269:14 | S1 | -| main.rs:327:26:327:48 | call_trait_thing_m1(...) | | main.rs:270:5:271:14 | S2 | -| main.rs:327:46:327:47 | y3 | | main.rs:263:5:266:5 | MyThing | -| main.rs:327:46:327:47 | y3 | T | main.rs:263:5:266:5 | MyThing | -| main.rs:327:46:327:47 | y3 | T.T | main.rs:270:5:271:14 | S2 | -| main.rs:338:19:338:22 | SelfParam | | main.rs:332:5:335:5 | Wrapper | -| main.rs:338:19:338:22 | SelfParam | A | main.rs:337:10:337:10 | A | -| main.rs:338:30:340:9 | { ... } | | main.rs:337:10:337:10 | A | -| main.rs:339:13:339:16 | self | | main.rs:332:5:335:5 | Wrapper | -| main.rs:339:13:339:16 | self | A | main.rs:337:10:337:10 | A | -| main.rs:339:13:339:22 | self.field | | main.rs:337:10:337:10 | A | -| main.rs:347:15:347:18 | SelfParam | | main.rs:343:5:357:5 | Self [trait MyTrait] | -| main.rs:349:15:349:18 | SelfParam | | main.rs:343:5:357:5 | Self [trait MyTrait] | -| main.rs:353:9:356:9 | { ... } | | main.rs:344:9:344:28 | AssociatedType | -| main.rs:354:13:354:16 | self | | main.rs:343:5:357:5 | Self [trait MyTrait] | -| main.rs:354:13:354:21 | self.m1() | | main.rs:344:9:344:28 | AssociatedType | -| main.rs:355:13:355:43 | ...::default(...) | | main.rs:344:9:344:28 | AssociatedType | -| main.rs:363:19:363:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:363:19:363:23 | SelfParam | &T | main.rs:359:5:369:5 | Self [trait MyTraitAssoc2] | -| main.rs:363:26:363:26 | a | | main.rs:363:16:363:16 | A | -| main.rs:365:22:365:26 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:365:22:365:26 | SelfParam | &T | main.rs:359:5:369:5 | Self [trait MyTraitAssoc2] | -| main.rs:365:29:365:29 | a | | main.rs:365:19:365:19 | A | -| main.rs:365:35:365:35 | b | | main.rs:365:19:365:19 | A | -| main.rs:365:75:368:9 | { ... } | | main.rs:360:9:360:52 | GenericAssociatedType | -| main.rs:366:13:366:16 | self | | file://:0:0:0:0 | & | -| main.rs:366:13:366:16 | self | &T | main.rs:359:5:369:5 | Self [trait MyTraitAssoc2] | -| main.rs:366:13:366:23 | self.put(...) | | main.rs:360:9:360:52 | GenericAssociatedType | -| main.rs:366:22:366:22 | a | | main.rs:365:19:365:19 | A | -| main.rs:367:13:367:16 | self | | file://:0:0:0:0 | & | -| main.rs:367:13:367:16 | self | &T | main.rs:359:5:369:5 | Self [trait MyTraitAssoc2] | -| main.rs:367:13:367:23 | self.put(...) | | main.rs:360:9:360:52 | GenericAssociatedType | -| main.rs:367:22:367:22 | b | | main.rs:365:19:365:19 | A | -| main.rs:376:21:376:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:376:21:376:25 | SelfParam | &T | main.rs:371:5:381:5 | Self [trait TraitMultipleAssoc] | -| main.rs:378:20:378:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:378:20:378:24 | SelfParam | &T | main.rs:371:5:381:5 | Self [trait TraitMultipleAssoc] | -| main.rs:380:20:380:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:380:20:380:24 | SelfParam | &T | main.rs:371:5:381:5 | Self [trait TraitMultipleAssoc] | -| main.rs:396:15:396:18 | SelfParam | | main.rs:383:5:384:13 | S | -| main.rs:396:45:398:9 | { ... } | | main.rs:389:5:390:14 | AT | -| main.rs:397:13:397:14 | AT | | main.rs:389:5:390:14 | AT | -| main.rs:406:19:406:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:406:19:406:23 | SelfParam | &T | main.rs:383:5:384:13 | S | -| main.rs:406:26:406:26 | a | | main.rs:406:16:406:16 | A | -| main.rs:406:46:408:9 | { ... } | | main.rs:332:5:335:5 | Wrapper | -| main.rs:406:46:408:9 | { ... } | A | main.rs:406:16:406:16 | A | -| main.rs:407:13:407:32 | Wrapper {...} | | main.rs:332:5:335:5 | Wrapper | -| main.rs:407:13:407:32 | Wrapper {...} | A | main.rs:406:16:406:16 | A | -| main.rs:407:30:407:30 | a | | main.rs:406:16:406:16 | A | -| main.rs:415:15:415:18 | SelfParam | | main.rs:386:5:387:14 | S2 | -| main.rs:415:45:417:9 | { ... } | | main.rs:332:5:335:5 | Wrapper | -| main.rs:415:45:417:9 | { ... } | A | main.rs:386:5:387:14 | S2 | -| main.rs:416:13:416:35 | Wrapper {...} | | main.rs:332:5:335:5 | Wrapper | -| main.rs:416:13:416:35 | Wrapper {...} | A | main.rs:386:5:387:14 | S2 | -| main.rs:416:30:416:33 | self | | main.rs:386:5:387:14 | S2 | -| main.rs:422:30:424:9 | { ... } | | main.rs:332:5:335:5 | Wrapper | -| main.rs:422:30:424:9 | { ... } | A | main.rs:386:5:387:14 | S2 | -| main.rs:423:13:423:33 | Wrapper {...} | | main.rs:332:5:335:5 | Wrapper | -| main.rs:423:13:423:33 | Wrapper {...} | A | main.rs:386:5:387:14 | S2 | -| main.rs:423:30:423:31 | S2 | | main.rs:386:5:387:14 | S2 | -| main.rs:428:22:428:26 | thing | | main.rs:428:10:428:19 | T | -| main.rs:429:9:429:13 | thing | | main.rs:428:10:428:19 | T | -| main.rs:436:21:436:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:436:21:436:25 | SelfParam | &T | main.rs:389:5:390:14 | AT | -| main.rs:436:34:438:9 | { ... } | | main.rs:389:5:390:14 | AT | -| main.rs:437:13:437:14 | AT | | main.rs:389:5:390:14 | AT | -| main.rs:440:20:440:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:440:20:440:24 | SelfParam | &T | main.rs:389:5:390:14 | AT | -| main.rs:440:43:442:9 | { ... } | | main.rs:383:5:384:13 | S | -| main.rs:441:13:441:13 | S | | main.rs:383:5:384:13 | S | -| main.rs:444:20:444:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:444:20:444:24 | SelfParam | &T | main.rs:389:5:390:14 | AT | -| main.rs:444:43:446:9 | { ... } | | main.rs:386:5:387:14 | S2 | -| main.rs:445:13:445:14 | S2 | | main.rs:386:5:387:14 | S2 | -| main.rs:450:13:450:14 | x1 | | main.rs:383:5:384:13 | S | -| main.rs:450:18:450:18 | S | | main.rs:383:5:384:13 | S | -| main.rs:452:26:452:27 | x1 | | main.rs:383:5:384:13 | S | -| main.rs:452:26:452:32 | x1.m1() | | main.rs:389:5:390:14 | AT | -| main.rs:454:13:454:14 | x2 | | main.rs:383:5:384:13 | S | -| main.rs:454:18:454:18 | S | | main.rs:383:5:384:13 | S | -| main.rs:456:13:456:13 | y | | main.rs:389:5:390:14 | AT | -| main.rs:456:17:456:18 | x2 | | main.rs:383:5:384:13 | S | -| main.rs:456:17:456:23 | x2.m2() | | main.rs:389:5:390:14 | AT | -| main.rs:457:26:457:26 | y | | main.rs:389:5:390:14 | AT | -| main.rs:459:13:459:14 | x3 | | main.rs:383:5:384:13 | S | -| main.rs:459:18:459:18 | S | | main.rs:383:5:384:13 | S | -| main.rs:461:26:461:27 | x3 | | main.rs:383:5:384:13 | S | -| main.rs:461:26:461:34 | x3.put(...) | | main.rs:332:5:335:5 | Wrapper | -| main.rs:464:26:464:27 | x3 | | main.rs:383:5:384:13 | S | -| main.rs:466:20:466:20 | S | | main.rs:383:5:384:13 | S | -| main.rs:469:13:469:14 | x5 | | main.rs:386:5:387:14 | S2 | -| main.rs:469:18:469:19 | S2 | | main.rs:386:5:387:14 | S2 | -| main.rs:470:26:470:27 | x5 | | main.rs:386:5:387:14 | S2 | -| main.rs:470:26:470:32 | x5.m1() | | main.rs:332:5:335:5 | Wrapper | -| main.rs:470:26:470:32 | x5.m1() | A | main.rs:386:5:387:14 | S2 | -| main.rs:471:13:471:14 | x6 | | main.rs:386:5:387:14 | S2 | -| main.rs:471:18:471:19 | S2 | | main.rs:386:5:387:14 | S2 | -| main.rs:472:26:472:27 | x6 | | main.rs:386:5:387:14 | S2 | -| main.rs:472:26:472:32 | x6.m2() | | main.rs:332:5:335:5 | Wrapper | -| main.rs:472:26:472:32 | x6.m2() | A | main.rs:386:5:387:14 | S2 | -| main.rs:474:13:474:22 | assoc_zero | | main.rs:389:5:390:14 | AT | -| main.rs:474:26:474:27 | AT | | main.rs:389:5:390:14 | AT | -| main.rs:474:26:474:38 | AT.get_zero() | | main.rs:389:5:390:14 | AT | -| main.rs:475:13:475:21 | assoc_one | | main.rs:383:5:384:13 | S | -| main.rs:475:25:475:26 | AT | | main.rs:389:5:390:14 | AT | -| main.rs:475:25:475:36 | AT.get_one() | | main.rs:383:5:384:13 | S | -| main.rs:476:13:476:21 | assoc_two | | main.rs:386:5:387:14 | S2 | -| main.rs:476:25:476:26 | AT | | main.rs:389:5:390:14 | AT | -| main.rs:476:25:476:36 | AT.get_two() | | main.rs:386:5:387:14 | S2 | -| main.rs:493:15:493:18 | SelfParam | | main.rs:481:5:485:5 | MyEnum | -| main.rs:493:15:493:18 | SelfParam | A | main.rs:492:10:492:10 | T | -| main.rs:493:26:498:9 | { ... } | | main.rs:492:10:492:10 | T | -| main.rs:494:13:497:13 | match self { ... } | | main.rs:492:10:492:10 | T | -| main.rs:494:19:494:22 | self | | main.rs:481:5:485:5 | MyEnum | -| main.rs:494:19:494:22 | self | A | main.rs:492:10:492:10 | T | -| main.rs:495:28:495:28 | a | | main.rs:492:10:492:10 | T | -| main.rs:495:34:495:34 | a | | main.rs:492:10:492:10 | T | -| main.rs:496:30:496:30 | a | | main.rs:492:10:492:10 | T | -| main.rs:496:37:496:37 | a | | main.rs:492:10:492:10 | T | -| main.rs:502:13:502:13 | x | | main.rs:481:5:485:5 | MyEnum | -| main.rs:502:13:502:13 | x | A | main.rs:487:5:488:14 | S1 | -| main.rs:502:17:502:30 | ...::C1(...) | | main.rs:481:5:485:5 | MyEnum | -| main.rs:502:17:502:30 | ...::C1(...) | A | main.rs:487:5:488:14 | S1 | -| main.rs:502:28:502:29 | S1 | | main.rs:487:5:488:14 | S1 | -| main.rs:503:13:503:13 | y | | main.rs:481:5:485:5 | MyEnum | -| main.rs:503:13:503:13 | y | A | main.rs:489:5:490:14 | S2 | -| main.rs:503:17:503:36 | ...::C2 {...} | | main.rs:481:5:485:5 | MyEnum | -| main.rs:503:17:503:36 | ...::C2 {...} | A | main.rs:489:5:490:14 | S2 | -| main.rs:503:33:503:34 | S2 | | main.rs:489:5:490:14 | S2 | -| main.rs:505:26:505:26 | x | | main.rs:481:5:485:5 | MyEnum | -| main.rs:505:26:505:26 | x | A | main.rs:487:5:488:14 | S1 | -| main.rs:505:26:505:31 | x.m1() | | main.rs:487:5:488:14 | S1 | -| main.rs:506:26:506:26 | y | | main.rs:481:5:485:5 | MyEnum | -| main.rs:506:26:506:26 | y | A | main.rs:489:5:490:14 | S2 | -| main.rs:506:26:506:31 | y.m1() | | main.rs:489:5:490:14 | S2 | -| main.rs:528:15:528:18 | SelfParam | | main.rs:526:5:529:5 | Self [trait MyTrait1] | -| main.rs:532:15:532:18 | SelfParam | | main.rs:531:5:542:5 | Self [trait MyTrait2] | -| main.rs:535:9:541:9 | { ... } | | main.rs:531:20:531:22 | Tr2 | -| main.rs:536:13:540:13 | if ... {...} else {...} | | main.rs:531:20:531:22 | Tr2 | -| main.rs:536:26:538:13 | { ... } | | main.rs:531:20:531:22 | Tr2 | -| main.rs:537:17:537:20 | self | | main.rs:531:5:542:5 | Self [trait MyTrait2] | -| main.rs:537:17:537:25 | self.m1() | | main.rs:531:20:531:22 | Tr2 | -| main.rs:538:20:540:13 | { ... } | | main.rs:531:20:531:22 | Tr2 | -| main.rs:539:17:539:30 | ...::m1(...) | | main.rs:531:20:531:22 | Tr2 | -| main.rs:539:26:539:29 | self | | main.rs:531:5:542:5 | Self [trait MyTrait2] | -| main.rs:545:15:545:18 | SelfParam | | main.rs:544:5:555:5 | Self [trait MyTrait3] | -| main.rs:548:9:554:9 | { ... } | | main.rs:544:20:544:22 | Tr3 | -| main.rs:549:13:553:13 | if ... {...} else {...} | | main.rs:544:20:544:22 | Tr3 | -| main.rs:549:26:551:13 | { ... } | | main.rs:544:20:544:22 | Tr3 | -| main.rs:550:17:550:20 | self | | main.rs:544:5:555:5 | Self [trait MyTrait3] | -| main.rs:550:17:550:25 | self.m2() | | main.rs:511:5:514:5 | MyThing | -| main.rs:550:17:550:25 | self.m2() | A | main.rs:544:20:544:22 | Tr3 | -| main.rs:550:17:550:27 | ... .a | | main.rs:544:20:544:22 | Tr3 | -| main.rs:551:20:553:13 | { ... } | | main.rs:544:20:544:22 | Tr3 | -| main.rs:552:17:552:30 | ...::m2(...) | | main.rs:511:5:514:5 | MyThing | -| main.rs:552:17:552:30 | ...::m2(...) | A | main.rs:544:20:544:22 | Tr3 | -| main.rs:552:17:552:32 | ... .a | | main.rs:544:20:544:22 | Tr3 | -| main.rs:552:26:552:29 | self | | main.rs:544:5:555:5 | Self [trait MyTrait3] | -| main.rs:559:15:559:18 | SelfParam | | main.rs:511:5:514:5 | MyThing | -| main.rs:559:15:559:18 | SelfParam | A | main.rs:557:10:557:10 | T | -| main.rs:559:26:561:9 | { ... } | | main.rs:557:10:557:10 | T | -| main.rs:560:13:560:16 | self | | main.rs:511:5:514:5 | MyThing | -| main.rs:560:13:560:16 | self | A | main.rs:557:10:557:10 | T | -| main.rs:560:13:560:18 | self.a | | main.rs:557:10:557:10 | T | -| main.rs:568:15:568:18 | SelfParam | | main.rs:516:5:519:5 | MyThing2 | -| main.rs:568:15:568:18 | SelfParam | A | main.rs:566:10:566:10 | T | -| main.rs:568:35:570:9 | { ... } | | main.rs:511:5:514:5 | MyThing | -| main.rs:568:35:570:9 | { ... } | A | main.rs:566:10:566:10 | T | -| main.rs:569:13:569:33 | MyThing {...} | | main.rs:511:5:514:5 | MyThing | -| main.rs:569:13:569:33 | MyThing {...} | A | main.rs:566:10:566:10 | T | -| main.rs:569:26:569:29 | self | | main.rs:516:5:519:5 | MyThing2 | -| main.rs:569:26:569:29 | self | A | main.rs:566:10:566:10 | T | -| main.rs:569:26:569:31 | self.a | | main.rs:566:10:566:10 | T | -| main.rs:578:13:578:13 | x | | main.rs:511:5:514:5 | MyThing | -| main.rs:578:13:578:13 | x | A | main.rs:521:5:522:14 | S1 | -| main.rs:578:17:578:33 | MyThing {...} | | main.rs:511:5:514:5 | MyThing | -| main.rs:578:17:578:33 | MyThing {...} | A | main.rs:521:5:522:14 | S1 | -| main.rs:578:30:578:31 | S1 | | main.rs:521:5:522:14 | S1 | -| main.rs:579:13:579:13 | y | | main.rs:511:5:514:5 | MyThing | -| main.rs:579:13:579:13 | y | A | main.rs:523:5:524:14 | S2 | -| main.rs:579:17:579:33 | MyThing {...} | | main.rs:511:5:514:5 | MyThing | -| main.rs:579:17:579:33 | MyThing {...} | A | main.rs:523:5:524:14 | S2 | -| main.rs:579:30:579:31 | S2 | | main.rs:523:5:524:14 | S2 | -| main.rs:581:26:581:26 | x | | main.rs:511:5:514:5 | MyThing | -| main.rs:581:26:581:26 | x | A | main.rs:521:5:522:14 | S1 | -| main.rs:581:26:581:31 | x.m1() | | main.rs:521:5:522:14 | S1 | -| main.rs:582:26:582:26 | y | | main.rs:511:5:514:5 | MyThing | -| main.rs:582:26:582:26 | y | A | main.rs:523:5:524:14 | S2 | -| main.rs:582:26:582:31 | y.m1() | | main.rs:523:5:524:14 | S2 | -| main.rs:584:13:584:13 | x | | main.rs:511:5:514:5 | MyThing | -| main.rs:584:13:584:13 | x | A | main.rs:521:5:522:14 | S1 | -| main.rs:584:17:584:33 | MyThing {...} | | main.rs:511:5:514:5 | MyThing | -| main.rs:584:17:584:33 | MyThing {...} | A | main.rs:521:5:522:14 | S1 | -| main.rs:584:30:584:31 | S1 | | main.rs:521:5:522:14 | S1 | -| main.rs:585:13:585:13 | y | | main.rs:511:5:514:5 | MyThing | -| main.rs:585:13:585:13 | y | A | main.rs:523:5:524:14 | S2 | -| main.rs:585:17:585:33 | MyThing {...} | | main.rs:511:5:514:5 | MyThing | -| main.rs:585:17:585:33 | MyThing {...} | A | main.rs:523:5:524:14 | S2 | -| main.rs:585:30:585:31 | S2 | | main.rs:523:5:524:14 | S2 | -| main.rs:587:26:587:26 | x | | main.rs:511:5:514:5 | MyThing | -| main.rs:587:26:587:26 | x | A | main.rs:521:5:522:14 | S1 | -| main.rs:587:26:587:31 | x.m2() | | main.rs:521:5:522:14 | S1 | -| main.rs:588:26:588:26 | y | | main.rs:511:5:514:5 | MyThing | -| main.rs:588:26:588:26 | y | A | main.rs:523:5:524:14 | S2 | -| main.rs:588:26:588:31 | y.m2() | | main.rs:523:5:524:14 | S2 | -| main.rs:590:13:590:13 | x | | main.rs:516:5:519:5 | MyThing2 | -| main.rs:590:13:590:13 | x | A | main.rs:521:5:522:14 | S1 | -| main.rs:590:17:590:34 | MyThing2 {...} | | main.rs:516:5:519:5 | MyThing2 | -| main.rs:590:17:590:34 | MyThing2 {...} | A | main.rs:521:5:522:14 | S1 | -| main.rs:590:31:590:32 | S1 | | main.rs:521:5:522:14 | S1 | -| main.rs:591:13:591:13 | y | | main.rs:516:5:519:5 | MyThing2 | -| main.rs:591:13:591:13 | y | A | main.rs:523:5:524:14 | S2 | -| main.rs:591:17:591:34 | MyThing2 {...} | | main.rs:516:5:519:5 | MyThing2 | -| main.rs:591:17:591:34 | MyThing2 {...} | A | main.rs:523:5:524:14 | S2 | -| main.rs:591:31:591:32 | S2 | | main.rs:523:5:524:14 | S2 | -| main.rs:593:26:593:26 | x | | main.rs:516:5:519:5 | MyThing2 | -| main.rs:593:26:593:26 | x | A | main.rs:521:5:522:14 | S1 | -| main.rs:593:26:593:31 | x.m3() | | main.rs:521:5:522:14 | S1 | -| main.rs:594:26:594:26 | y | | main.rs:516:5:519:5 | MyThing2 | -| main.rs:594:26:594:26 | y | A | main.rs:523:5:524:14 | S2 | -| main.rs:594:26:594:31 | y.m3() | | main.rs:523:5:524:14 | S2 | -| main.rs:612:22:612:22 | x | | file://:0:0:0:0 | & | -| main.rs:612:22:612:22 | x | &T | main.rs:612:11:612:19 | T | -| main.rs:612:35:614:5 | { ... } | | file://:0:0:0:0 | & | -| main.rs:612:35:614:5 | { ... } | &T | main.rs:612:11:612:19 | T | -| main.rs:613:9:613:9 | x | | file://:0:0:0:0 | & | -| main.rs:613:9:613:9 | x | &T | main.rs:612:11:612:19 | T | -| main.rs:617:17:617:20 | SelfParam | | main.rs:602:5:603:14 | S1 | -| main.rs:617:29:619:9 | { ... } | | main.rs:605:5:606:14 | S2 | -| main.rs:618:13:618:14 | S2 | | main.rs:605:5:606:14 | S2 | -| main.rs:622:21:622:21 | x | | main.rs:622:13:622:14 | T1 | -| main.rs:625:5:627:5 | { ... } | | main.rs:622:17:622:18 | T2 | -| main.rs:626:9:626:9 | x | | main.rs:622:13:622:14 | T1 | -| main.rs:626:9:626:16 | x.into() | | main.rs:622:17:622:18 | T2 | -| main.rs:630:13:630:13 | x | | main.rs:602:5:603:14 | S1 | -| main.rs:630:17:630:18 | S1 | | main.rs:602:5:603:14 | S1 | -| main.rs:631:26:631:31 | id(...) | | file://:0:0:0:0 | & | -| main.rs:631:26:631:31 | id(...) | &T | main.rs:602:5:603:14 | S1 | -| main.rs:631:29:631:30 | &x | | file://:0:0:0:0 | & | -| main.rs:631:29:631:30 | &x | &T | main.rs:602:5:603:14 | S1 | -| main.rs:631:30:631:30 | x | | main.rs:602:5:603:14 | S1 | -| main.rs:633:13:633:13 | x | | main.rs:602:5:603:14 | S1 | -| main.rs:633:17:633:18 | S1 | | main.rs:602:5:603:14 | S1 | -| main.rs:634:26:634:37 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:634:26:634:37 | id::<...>(...) | &T | main.rs:602:5:603:14 | S1 | -| main.rs:634:35:634:36 | &x | | file://:0:0:0:0 | & | -| main.rs:634:35:634:36 | &x | &T | main.rs:602:5:603:14 | S1 | -| main.rs:634:36:634:36 | x | | main.rs:602:5:603:14 | S1 | -| main.rs:636:13:636:13 | x | | main.rs:602:5:603:14 | S1 | -| main.rs:636:17:636:18 | S1 | | main.rs:602:5:603:14 | S1 | -| main.rs:637:26:637:44 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:637:26:637:44 | id::<...>(...) | &T | main.rs:602:5:603:14 | S1 | -| main.rs:637:42:637:43 | &x | | file://:0:0:0:0 | & | -| main.rs:637:42:637:43 | &x | &T | main.rs:602:5:603:14 | S1 | -| main.rs:637:43:637:43 | x | | main.rs:602:5:603:14 | S1 | -| main.rs:639:13:639:13 | x | | main.rs:602:5:603:14 | S1 | -| main.rs:639:17:639:18 | S1 | | main.rs:602:5:603:14 | S1 | -| main.rs:640:9:640:25 | into::<...>(...) | | main.rs:605:5:606:14 | S2 | -| main.rs:640:24:640:24 | x | | main.rs:602:5:603:14 | S1 | -| main.rs:642:13:642:13 | x | | main.rs:602:5:603:14 | S1 | -| main.rs:642:17:642:18 | S1 | | main.rs:602:5:603:14 | S1 | -| main.rs:643:13:643:13 | y | | main.rs:605:5:606:14 | S2 | -| main.rs:643:21:643:27 | into(...) | | main.rs:605:5:606:14 | S2 | -| main.rs:643:26:643:26 | x | | main.rs:602:5:603:14 | S1 | -| main.rs:657:22:657:25 | SelfParam | | main.rs:648:5:654:5 | PairOption | -| main.rs:657:22:657:25 | SelfParam | Fst | main.rs:656:10:656:12 | Fst | -| main.rs:657:22:657:25 | SelfParam | Snd | main.rs:656:15:656:17 | Snd | -| main.rs:657:35:664:9 | { ... } | | main.rs:656:15:656:17 | Snd | -| main.rs:658:13:663:13 | match self { ... } | | main.rs:656:15:656:17 | Snd | -| main.rs:658:19:658:22 | self | | main.rs:648:5:654:5 | PairOption | -| main.rs:658:19:658:22 | self | Fst | main.rs:656:10:656:12 | Fst | -| main.rs:658:19:658:22 | self | Snd | main.rs:656:15:656:17 | Snd | -| main.rs:659:43:659:82 | MacroExpr | | main.rs:656:15:656:17 | Snd | -| main.rs:660:43:660:81 | MacroExpr | | main.rs:656:15:656:17 | Snd | -| main.rs:661:37:661:39 | snd | | main.rs:656:15:656:17 | Snd | -| main.rs:661:45:661:47 | snd | | main.rs:656:15:656:17 | Snd | -| main.rs:662:41:662:43 | snd | | main.rs:656:15:656:17 | Snd | -| main.rs:662:49:662:51 | snd | | main.rs:656:15:656:17 | Snd | -| main.rs:688:10:688:10 | t | | main.rs:648:5:654:5 | PairOption | -| main.rs:688:10:688:10 | t | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:688:10:688:10 | t | Snd | main.rs:648:5:654:5 | PairOption | -| main.rs:688:10:688:10 | t | Snd.Fst | main.rs:670:5:671:14 | S2 | -| main.rs:688:10:688:10 | t | Snd.Snd | main.rs:673:5:674:14 | S3 | -| main.rs:689:13:689:13 | x | | main.rs:673:5:674:14 | S3 | -| main.rs:689:17:689:17 | t | | main.rs:648:5:654:5 | PairOption | -| main.rs:689:17:689:17 | t | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:689:17:689:17 | t | Snd | main.rs:648:5:654:5 | PairOption | -| main.rs:689:17:689:17 | t | Snd.Fst | main.rs:670:5:671:14 | S2 | -| main.rs:689:17:689:17 | t | Snd.Snd | main.rs:673:5:674:14 | S3 | -| main.rs:689:17:689:29 | t.unwrapSnd() | | main.rs:648:5:654:5 | PairOption | -| main.rs:689:17:689:29 | t.unwrapSnd() | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:689:17:689:29 | t.unwrapSnd() | Snd | main.rs:673:5:674:14 | S3 | -| main.rs:689:17:689:41 | ... .unwrapSnd() | | main.rs:673:5:674:14 | S3 | -| main.rs:690:26:690:26 | x | | main.rs:673:5:674:14 | S3 | -| main.rs:695:13:695:14 | p1 | | main.rs:648:5:654:5 | PairOption | -| main.rs:695:13:695:14 | p1 | Fst | main.rs:667:5:668:14 | S1 | -| main.rs:695:13:695:14 | p1 | Snd | main.rs:670:5:671:14 | S2 | -| main.rs:695:26:695:53 | ...::PairBoth(...) | | main.rs:648:5:654:5 | PairOption | -| main.rs:695:26:695:53 | ...::PairBoth(...) | Fst | main.rs:667:5:668:14 | S1 | -| main.rs:695:26:695:53 | ...::PairBoth(...) | Snd | main.rs:670:5:671:14 | S2 | -| main.rs:695:47:695:48 | S1 | | main.rs:667:5:668:14 | S1 | -| main.rs:695:51:695:52 | S2 | | main.rs:670:5:671:14 | S2 | -| main.rs:696:26:696:27 | p1 | | main.rs:648:5:654:5 | PairOption | -| main.rs:696:26:696:27 | p1 | Fst | main.rs:667:5:668:14 | S1 | -| main.rs:696:26:696:27 | p1 | Snd | main.rs:670:5:671:14 | S2 | -| main.rs:699:13:699:14 | p2 | | main.rs:648:5:654:5 | PairOption | -| main.rs:699:13:699:14 | p2 | Fst | main.rs:667:5:668:14 | S1 | -| main.rs:699:13:699:14 | p2 | Snd | main.rs:670:5:671:14 | S2 | -| main.rs:699:26:699:47 | ...::PairNone(...) | | main.rs:648:5:654:5 | PairOption | -| main.rs:699:26:699:47 | ...::PairNone(...) | Fst | main.rs:667:5:668:14 | S1 | -| main.rs:699:26:699:47 | ...::PairNone(...) | Snd | main.rs:670:5:671:14 | S2 | -| main.rs:700:26:700:27 | p2 | | main.rs:648:5:654:5 | PairOption | -| main.rs:700:26:700:27 | p2 | Fst | main.rs:667:5:668:14 | S1 | -| main.rs:700:26:700:27 | p2 | Snd | main.rs:670:5:671:14 | S2 | -| main.rs:703:13:703:14 | p3 | | main.rs:648:5:654:5 | PairOption | -| main.rs:703:13:703:14 | p3 | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:703:13:703:14 | p3 | Snd | main.rs:673:5:674:14 | S3 | -| main.rs:703:34:703:56 | ...::PairSnd(...) | | main.rs:648:5:654:5 | PairOption | -| main.rs:703:34:703:56 | ...::PairSnd(...) | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:703:34:703:56 | ...::PairSnd(...) | Snd | main.rs:673:5:674:14 | S3 | -| main.rs:703:54:703:55 | S3 | | main.rs:673:5:674:14 | S3 | -| main.rs:704:26:704:27 | p3 | | main.rs:648:5:654:5 | PairOption | -| main.rs:704:26:704:27 | p3 | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:704:26:704:27 | p3 | Snd | main.rs:673:5:674:14 | S3 | -| main.rs:707:13:707:14 | p3 | | main.rs:648:5:654:5 | PairOption | -| main.rs:707:13:707:14 | p3 | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:707:13:707:14 | p3 | Snd | main.rs:673:5:674:14 | S3 | -| main.rs:707:35:707:56 | ...::PairNone(...) | | main.rs:648:5:654:5 | PairOption | -| main.rs:707:35:707:56 | ...::PairNone(...) | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:707:35:707:56 | ...::PairNone(...) | Snd | main.rs:673:5:674:14 | S3 | -| main.rs:708:26:708:27 | p3 | | main.rs:648:5:654:5 | PairOption | -| main.rs:708:26:708:27 | p3 | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:708:26:708:27 | p3 | Snd | main.rs:673:5:674:14 | S3 | -| main.rs:710:11:710:54 | ...::PairSnd(...) | | main.rs:648:5:654:5 | PairOption | -| main.rs:710:11:710:54 | ...::PairSnd(...) | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:710:11:710:54 | ...::PairSnd(...) | Snd | main.rs:648:5:654:5 | PairOption | -| main.rs:710:11:710:54 | ...::PairSnd(...) | Snd.Fst | main.rs:670:5:671:14 | S2 | -| main.rs:710:11:710:54 | ...::PairSnd(...) | Snd.Snd | main.rs:673:5:674:14 | S3 | -| main.rs:710:31:710:53 | ...::PairSnd(...) | | main.rs:648:5:654:5 | PairOption | -| main.rs:710:31:710:53 | ...::PairSnd(...) | Fst | main.rs:670:5:671:14 | S2 | -| main.rs:710:31:710:53 | ...::PairSnd(...) | Snd | main.rs:673:5:674:14 | S3 | -| main.rs:710:51:710:52 | S3 | | main.rs:673:5:674:14 | S3 | -| main.rs:723:16:723:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:723:16:723:24 | SelfParam | &T | main.rs:721:5:728:5 | Self [trait MyTrait] | -| main.rs:723:27:723:31 | value | | main.rs:721:19:721:19 | S | -| main.rs:725:21:725:29 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:725:21:725:29 | SelfParam | &T | main.rs:721:5:728:5 | Self [trait MyTrait] | -| main.rs:725:32:725:36 | value | | main.rs:721:19:721:19 | S | -| main.rs:726:13:726:16 | self | | file://:0:0:0:0 | & | -| main.rs:726:13:726:16 | self | &T | main.rs:721:5:728:5 | Self [trait MyTrait] | -| main.rs:726:22:726:26 | value | | main.rs:721:19:721:19 | S | -| main.rs:732:16:732:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:732:16:732:24 | SelfParam | &T | main.rs:715:5:719:5 | MyOption | -| main.rs:732:16:732:24 | SelfParam | &T.T | main.rs:730:10:730:10 | T | -| main.rs:732:27:732:31 | value | | main.rs:730:10:730:10 | T | -| main.rs:736:26:738:9 | { ... } | | main.rs:715:5:719:5 | MyOption | -| main.rs:736:26:738:9 | { ... } | T | main.rs:735:10:735:10 | T | -| main.rs:737:13:737:30 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:737:13:737:30 | ...::MyNone(...) | T | main.rs:735:10:735:10 | T | -| main.rs:742:20:742:23 | SelfParam | | main.rs:715:5:719:5 | MyOption | -| main.rs:742:20:742:23 | SelfParam | T | main.rs:715:5:719:5 | MyOption | -| main.rs:742:20:742:23 | SelfParam | T.T | main.rs:741:10:741:10 | T | -| main.rs:742:41:747:9 | { ... } | | main.rs:715:5:719:5 | MyOption | -| main.rs:742:41:747:9 | { ... } | T | main.rs:741:10:741:10 | T | -| main.rs:743:13:746:13 | match self { ... } | | main.rs:715:5:719:5 | MyOption | -| main.rs:743:13:746:13 | match self { ... } | T | main.rs:741:10:741:10 | T | -| main.rs:743:19:743:22 | self | | main.rs:715:5:719:5 | MyOption | -| main.rs:743:19:743:22 | self | T | main.rs:715:5:719:5 | MyOption | -| main.rs:743:19:743:22 | self | T.T | main.rs:741:10:741:10 | T | -| main.rs:744:39:744:56 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:744:39:744:56 | ...::MyNone(...) | T | main.rs:741:10:741:10 | T | -| main.rs:745:34:745:34 | x | | main.rs:715:5:719:5 | MyOption | -| main.rs:745:34:745:34 | x | T | main.rs:741:10:741:10 | T | -| main.rs:745:40:745:40 | x | | main.rs:715:5:719:5 | MyOption | -| main.rs:745:40:745:40 | x | T | main.rs:741:10:741:10 | T | -| main.rs:754:13:754:14 | x1 | | main.rs:715:5:719:5 | MyOption | -| main.rs:754:18:754:37 | ...::new(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:755:26:755:27 | x1 | | main.rs:715:5:719:5 | MyOption | -| main.rs:757:13:757:18 | mut x2 | | main.rs:715:5:719:5 | MyOption | -| main.rs:757:13:757:18 | mut x2 | T | main.rs:750:5:751:13 | S | -| main.rs:757:22:757:36 | ...::new(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:757:22:757:36 | ...::new(...) | T | main.rs:750:5:751:13 | S | -| main.rs:758:9:758:10 | x2 | | main.rs:715:5:719:5 | MyOption | -| main.rs:758:9:758:10 | x2 | T | main.rs:750:5:751:13 | S | -| main.rs:758:16:758:16 | S | | main.rs:750:5:751:13 | S | -| main.rs:759:26:759:27 | x2 | | main.rs:715:5:719:5 | MyOption | -| main.rs:759:26:759:27 | x2 | T | main.rs:750:5:751:13 | S | -| main.rs:761:13:761:18 | mut x3 | | main.rs:715:5:719:5 | MyOption | -| main.rs:761:22:761:36 | ...::new(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:762:9:762:10 | x3 | | main.rs:715:5:719:5 | MyOption | -| main.rs:762:21:762:21 | S | | main.rs:750:5:751:13 | S | -| main.rs:763:26:763:27 | x3 | | main.rs:715:5:719:5 | MyOption | -| main.rs:765:13:765:18 | mut x4 | | main.rs:715:5:719:5 | MyOption | -| main.rs:765:13:765:18 | mut x4 | T | main.rs:750:5:751:13 | S | -| main.rs:765:22:765:36 | ...::new(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:765:22:765:36 | ...::new(...) | T | main.rs:750:5:751:13 | S | -| main.rs:766:23:766:29 | &mut x4 | | file://:0:0:0:0 | & | -| main.rs:766:23:766:29 | &mut x4 | &T | main.rs:715:5:719:5 | MyOption | -| main.rs:766:23:766:29 | &mut x4 | &T.T | main.rs:750:5:751:13 | S | -| main.rs:766:28:766:29 | x4 | | main.rs:715:5:719:5 | MyOption | -| main.rs:766:28:766:29 | x4 | T | main.rs:750:5:751:13 | S | -| main.rs:766:32:766:32 | S | | main.rs:750:5:751:13 | S | -| main.rs:767:26:767:27 | x4 | | main.rs:715:5:719:5 | MyOption | -| main.rs:767:26:767:27 | x4 | T | main.rs:750:5:751:13 | S | -| main.rs:769:13:769:14 | x5 | | main.rs:715:5:719:5 | MyOption | -| main.rs:769:13:769:14 | x5 | T | main.rs:715:5:719:5 | MyOption | -| main.rs:769:13:769:14 | x5 | T.T | main.rs:750:5:751:13 | S | -| main.rs:769:18:769:58 | ...::MySome(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:769:18:769:58 | ...::MySome(...) | T | main.rs:715:5:719:5 | MyOption | -| main.rs:769:18:769:58 | ...::MySome(...) | T.T | main.rs:750:5:751:13 | S | -| main.rs:769:35:769:57 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:769:35:769:57 | ...::MyNone(...) | T | main.rs:750:5:751:13 | S | -| main.rs:770:26:770:27 | x5 | | main.rs:715:5:719:5 | MyOption | -| main.rs:770:26:770:27 | x5 | T | main.rs:715:5:719:5 | MyOption | -| main.rs:770:26:770:27 | x5 | T.T | main.rs:750:5:751:13 | S | -| main.rs:772:13:772:14 | x6 | | main.rs:715:5:719:5 | MyOption | -| main.rs:772:13:772:14 | x6 | T | main.rs:715:5:719:5 | MyOption | -| main.rs:772:13:772:14 | x6 | T.T | main.rs:750:5:751:13 | S | -| main.rs:772:18:772:58 | ...::MySome(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:772:18:772:58 | ...::MySome(...) | T | main.rs:715:5:719:5 | MyOption | -| main.rs:772:18:772:58 | ...::MySome(...) | T.T | main.rs:750:5:751:13 | S | -| main.rs:772:35:772:57 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:772:35:772:57 | ...::MyNone(...) | T | main.rs:750:5:751:13 | S | -| main.rs:773:26:773:61 | ...::flatten(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:773:26:773:61 | ...::flatten(...) | T | main.rs:750:5:751:13 | S | -| main.rs:773:59:773:60 | x6 | | main.rs:715:5:719:5 | MyOption | -| main.rs:773:59:773:60 | x6 | T | main.rs:715:5:719:5 | MyOption | -| main.rs:773:59:773:60 | x6 | T.T | main.rs:750:5:751:13 | S | -| main.rs:775:13:775:19 | from_if | | main.rs:715:5:719:5 | MyOption | -| main.rs:775:13:775:19 | from_if | T | main.rs:750:5:751:13 | S | -| main.rs:775:23:779:9 | if ... {...} else {...} | | main.rs:715:5:719:5 | MyOption | -| main.rs:775:23:779:9 | if ... {...} else {...} | T | main.rs:750:5:751:13 | S | -| main.rs:775:36:777:9 | { ... } | | main.rs:715:5:719:5 | MyOption | -| main.rs:775:36:777:9 | { ... } | T | main.rs:750:5:751:13 | S | -| main.rs:776:13:776:30 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:776:13:776:30 | ...::MyNone(...) | T | main.rs:750:5:751:13 | S | -| main.rs:777:16:779:9 | { ... } | | main.rs:715:5:719:5 | MyOption | -| main.rs:777:16:779:9 | { ... } | T | main.rs:750:5:751:13 | S | -| main.rs:778:13:778:31 | ...::MySome(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:778:13:778:31 | ...::MySome(...) | T | main.rs:750:5:751:13 | S | -| main.rs:778:30:778:30 | S | | main.rs:750:5:751:13 | S | -| main.rs:780:26:780:32 | from_if | | main.rs:715:5:719:5 | MyOption | -| main.rs:780:26:780:32 | from_if | T | main.rs:750:5:751:13 | S | -| main.rs:782:13:782:22 | from_match | | main.rs:715:5:719:5 | MyOption | -| main.rs:782:13:782:22 | from_match | T | main.rs:750:5:751:13 | S | -| main.rs:782:26:785:9 | match ... { ... } | | main.rs:715:5:719:5 | MyOption | -| main.rs:782:26:785:9 | match ... { ... } | T | main.rs:750:5:751:13 | S | -| main.rs:783:21:783:38 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:783:21:783:38 | ...::MyNone(...) | T | main.rs:750:5:751:13 | S | -| main.rs:784:22:784:40 | ...::MySome(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:784:22:784:40 | ...::MySome(...) | T | main.rs:750:5:751:13 | S | -| main.rs:784:39:784:39 | S | | main.rs:750:5:751:13 | S | -| main.rs:786:26:786:35 | from_match | | main.rs:715:5:719:5 | MyOption | -| main.rs:786:26:786:35 | from_match | T | main.rs:750:5:751:13 | S | -| main.rs:788:13:788:21 | from_loop | | main.rs:715:5:719:5 | MyOption | -| main.rs:788:13:788:21 | from_loop | T | main.rs:750:5:751:13 | S | -| main.rs:788:25:793:9 | loop { ... } | | main.rs:715:5:719:5 | MyOption | -| main.rs:788:25:793:9 | loop { ... } | T | main.rs:750:5:751:13 | S | -| main.rs:790:23:790:40 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:790:23:790:40 | ...::MyNone(...) | T | main.rs:750:5:751:13 | S | -| main.rs:792:19:792:37 | ...::MySome(...) | | main.rs:715:5:719:5 | MyOption | -| main.rs:792:19:792:37 | ...::MySome(...) | T | main.rs:750:5:751:13 | S | -| main.rs:792:36:792:36 | S | | main.rs:750:5:751:13 | S | -| main.rs:794:26:794:34 | from_loop | | main.rs:715:5:719:5 | MyOption | -| main.rs:794:26:794:34 | from_loop | T | main.rs:750:5:751:13 | S | -| main.rs:807:15:807:18 | SelfParam | | main.rs:800:5:801:19 | S | -| main.rs:807:15:807:18 | SelfParam | T | main.rs:806:10:806:10 | T | -| main.rs:807:26:809:9 | { ... } | | main.rs:806:10:806:10 | T | -| main.rs:808:13:808:16 | self | | main.rs:800:5:801:19 | S | -| main.rs:808:13:808:16 | self | T | main.rs:806:10:806:10 | T | -| main.rs:808:13:808:18 | self.0 | | main.rs:806:10:806:10 | T | -| main.rs:811:15:811:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:811:15:811:19 | SelfParam | &T | main.rs:800:5:801:19 | S | -| main.rs:811:15:811:19 | SelfParam | &T.T | main.rs:806:10:806:10 | T | -| main.rs:811:28:813:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:811:28:813:9 | { ... } | &T | main.rs:806:10:806:10 | T | -| main.rs:812:13:812:19 | &... | | file://:0:0:0:0 | & | -| main.rs:812:13:812:19 | &... | &T | main.rs:806:10:806:10 | T | -| main.rs:812:14:812:17 | self | | file://:0:0:0:0 | & | -| main.rs:812:14:812:17 | self | &T | main.rs:800:5:801:19 | S | -| main.rs:812:14:812:17 | self | &T.T | main.rs:806:10:806:10 | T | -| main.rs:812:14:812:19 | self.0 | | main.rs:806:10:806:10 | T | -| main.rs:815:15:815:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:815:15:815:25 | SelfParam | &T | main.rs:800:5:801:19 | S | -| main.rs:815:15:815:25 | SelfParam | &T.T | main.rs:806:10:806:10 | T | -| main.rs:815:34:817:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:815:34:817:9 | { ... } | &T | main.rs:806:10:806:10 | T | -| main.rs:816:13:816:19 | &... | | file://:0:0:0:0 | & | -| main.rs:816:13:816:19 | &... | &T | main.rs:806:10:806:10 | T | -| main.rs:816:14:816:17 | self | | file://:0:0:0:0 | & | -| main.rs:816:14:816:17 | self | &T | main.rs:800:5:801:19 | S | -| main.rs:816:14:816:17 | self | &T.T | main.rs:806:10:806:10 | T | -| main.rs:816:14:816:19 | self.0 | | main.rs:806:10:806:10 | T | -| main.rs:821:13:821:14 | x1 | | main.rs:800:5:801:19 | S | -| main.rs:821:13:821:14 | x1 | T | main.rs:803:5:804:14 | S2 | -| main.rs:821:18:821:22 | S(...) | | main.rs:800:5:801:19 | S | -| main.rs:821:18:821:22 | S(...) | T | main.rs:803:5:804:14 | S2 | -| main.rs:821:20:821:21 | S2 | | main.rs:803:5:804:14 | S2 | -| main.rs:822:26:822:27 | x1 | | main.rs:800:5:801:19 | S | -| main.rs:822:26:822:27 | x1 | T | main.rs:803:5:804:14 | S2 | -| main.rs:822:26:822:32 | x1.m1() | | main.rs:803:5:804:14 | S2 | -| main.rs:824:13:824:14 | x2 | | main.rs:800:5:801:19 | S | -| main.rs:824:13:824:14 | x2 | T | main.rs:803:5:804:14 | S2 | -| main.rs:824:18:824:22 | S(...) | | main.rs:800:5:801:19 | S | -| main.rs:824:18:824:22 | S(...) | T | main.rs:803:5:804:14 | S2 | -| main.rs:824:20:824:21 | S2 | | main.rs:803:5:804:14 | S2 | -| main.rs:826:26:826:27 | x2 | | main.rs:800:5:801:19 | S | -| main.rs:826:26:826:27 | x2 | T | main.rs:803:5:804:14 | S2 | -| main.rs:826:26:826:32 | x2.m2() | | file://:0:0:0:0 | & | -| main.rs:826:26:826:32 | x2.m2() | &T | main.rs:803:5:804:14 | S2 | -| main.rs:827:26:827:27 | x2 | | main.rs:800:5:801:19 | S | -| main.rs:827:26:827:27 | x2 | T | main.rs:803:5:804:14 | S2 | -| main.rs:827:26:827:32 | x2.m3() | | file://:0:0:0:0 | & | -| main.rs:827:26:827:32 | x2.m3() | &T | main.rs:803:5:804:14 | S2 | -| main.rs:829:13:829:14 | x3 | | main.rs:800:5:801:19 | S | -| main.rs:829:13:829:14 | x3 | T | main.rs:803:5:804:14 | S2 | -| main.rs:829:18:829:22 | S(...) | | main.rs:800:5:801:19 | S | -| main.rs:829:18:829:22 | S(...) | T | main.rs:803:5:804:14 | S2 | -| main.rs:829:20:829:21 | S2 | | main.rs:803:5:804:14 | S2 | -| main.rs:831:26:831:41 | ...::m2(...) | | file://:0:0:0:0 | & | -| main.rs:831:26:831:41 | ...::m2(...) | &T | main.rs:803:5:804:14 | S2 | -| main.rs:831:38:831:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:831:38:831:40 | &x3 | &T | main.rs:800:5:801:19 | S | -| main.rs:831:38:831:40 | &x3 | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:831:39:831:40 | x3 | | main.rs:800:5:801:19 | S | -| main.rs:831:39:831:40 | x3 | T | main.rs:803:5:804:14 | S2 | -| main.rs:832:26:832:41 | ...::m3(...) | | file://:0:0:0:0 | & | -| main.rs:832:26:832:41 | ...::m3(...) | &T | main.rs:803:5:804:14 | S2 | -| main.rs:832:38:832:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:832:38:832:40 | &x3 | &T | main.rs:800:5:801:19 | S | -| main.rs:832:38:832:40 | &x3 | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:832:39:832:40 | x3 | | main.rs:800:5:801:19 | S | -| main.rs:832:39:832:40 | x3 | T | main.rs:803:5:804:14 | S2 | -| main.rs:834:13:834:14 | x4 | | file://:0:0:0:0 | & | -| main.rs:834:13:834:14 | x4 | &T | main.rs:800:5:801:19 | S | -| main.rs:834:13:834:14 | x4 | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:834:18:834:23 | &... | | file://:0:0:0:0 | & | -| main.rs:834:18:834:23 | &... | &T | main.rs:800:5:801:19 | S | -| main.rs:834:18:834:23 | &... | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:834:19:834:23 | S(...) | | main.rs:800:5:801:19 | S | -| main.rs:834:19:834:23 | S(...) | T | main.rs:803:5:804:14 | S2 | -| main.rs:834:21:834:22 | S2 | | main.rs:803:5:804:14 | S2 | -| main.rs:836:26:836:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:836:26:836:27 | x4 | &T | main.rs:800:5:801:19 | S | -| main.rs:836:26:836:27 | x4 | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:836:26:836:32 | x4.m2() | | file://:0:0:0:0 | & | -| main.rs:836:26:836:32 | x4.m2() | &T | main.rs:803:5:804:14 | S2 | -| main.rs:837:26:837:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:837:26:837:27 | x4 | &T | main.rs:800:5:801:19 | S | -| main.rs:837:26:837:27 | x4 | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:837:26:837:32 | x4.m3() | | file://:0:0:0:0 | & | -| main.rs:837:26:837:32 | x4.m3() | &T | main.rs:803:5:804:14 | S2 | -| main.rs:839:13:839:14 | x5 | | file://:0:0:0:0 | & | -| main.rs:839:13:839:14 | x5 | &T | main.rs:800:5:801:19 | S | -| main.rs:839:13:839:14 | x5 | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:839:18:839:23 | &... | | file://:0:0:0:0 | & | -| main.rs:839:18:839:23 | &... | &T | main.rs:800:5:801:19 | S | -| main.rs:839:18:839:23 | &... | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:839:19:839:23 | S(...) | | main.rs:800:5:801:19 | S | -| main.rs:839:19:839:23 | S(...) | T | main.rs:803:5:804:14 | S2 | -| main.rs:839:21:839:22 | S2 | | main.rs:803:5:804:14 | S2 | -| main.rs:841:26:841:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:841:26:841:27 | x5 | &T | main.rs:800:5:801:19 | S | -| main.rs:841:26:841:27 | x5 | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:841:26:841:32 | x5.m1() | | main.rs:803:5:804:14 | S2 | -| main.rs:842:26:842:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:842:26:842:27 | x5 | &T | main.rs:800:5:801:19 | S | -| main.rs:842:26:842:27 | x5 | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:842:26:842:29 | x5.0 | | main.rs:803:5:804:14 | S2 | -| main.rs:844:13:844:14 | x6 | | file://:0:0:0:0 | & | -| main.rs:844:13:844:14 | x6 | &T | main.rs:800:5:801:19 | S | -| main.rs:844:13:844:14 | x6 | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:844:18:844:23 | &... | | file://:0:0:0:0 | & | -| main.rs:844:18:844:23 | &... | &T | main.rs:800:5:801:19 | S | -| main.rs:844:18:844:23 | &... | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:844:19:844:23 | S(...) | | main.rs:800:5:801:19 | S | -| main.rs:844:19:844:23 | S(...) | T | main.rs:803:5:804:14 | S2 | -| main.rs:844:21:844:22 | S2 | | main.rs:803:5:804:14 | S2 | -| main.rs:846:26:846:30 | (...) | | main.rs:800:5:801:19 | S | -| main.rs:846:26:846:30 | (...) | T | main.rs:803:5:804:14 | S2 | -| main.rs:846:26:846:35 | ... .m1() | | main.rs:803:5:804:14 | S2 | -| main.rs:846:27:846:29 | * ... | | main.rs:800:5:801:19 | S | -| main.rs:846:27:846:29 | * ... | T | main.rs:803:5:804:14 | S2 | -| main.rs:846:28:846:29 | x6 | | file://:0:0:0:0 | & | -| main.rs:846:28:846:29 | x6 | &T | main.rs:800:5:801:19 | S | -| main.rs:846:28:846:29 | x6 | &T.T | main.rs:803:5:804:14 | S2 | -| main.rs:853:16:853:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:853:16:853:20 | SelfParam | &T | main.rs:851:5:859:5 | Self [trait MyTrait] | -| main.rs:856:16:856:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:856:16:856:20 | SelfParam | &T | main.rs:851:5:859:5 | Self [trait MyTrait] | -| main.rs:856:32:858:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:856:32:858:9 | { ... } | &T | main.rs:851:5:859:5 | Self [trait MyTrait] | -| main.rs:857:13:857:16 | self | | file://:0:0:0:0 | & | -| main.rs:857:13:857:16 | self | &T | main.rs:851:5:859:5 | Self [trait MyTrait] | -| main.rs:857:13:857:22 | self.foo() | | file://:0:0:0:0 | & | -| main.rs:857:13:857:22 | self.foo() | &T | main.rs:851:5:859:5 | Self [trait MyTrait] | -| main.rs:865:16:865:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:865:16:865:20 | SelfParam | &T | main.rs:861:5:861:20 | MyStruct | -| main.rs:865:36:867:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:865:36:867:9 | { ... } | &T | main.rs:861:5:861:20 | MyStruct | -| main.rs:866:13:866:16 | self | | file://:0:0:0:0 | & | -| main.rs:866:13:866:16 | self | &T | main.rs:861:5:861:20 | MyStruct | -| main.rs:871:13:871:13 | x | | main.rs:861:5:861:20 | MyStruct | -| main.rs:871:17:871:24 | MyStruct | | main.rs:861:5:861:20 | MyStruct | -| main.rs:872:9:872:9 | x | | main.rs:861:5:861:20 | MyStruct | -| main.rs:872:9:872:15 | x.bar() | | file://:0:0:0:0 | & | -| main.rs:872:9:872:15 | x.bar() | &T | main.rs:861:5:861:20 | MyStruct | -| main.rs:882:16:882:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:882:16:882:20 | SelfParam | &T | main.rs:879:5:879:26 | MyStruct | -| main.rs:882:16:882:20 | SelfParam | &T.T | main.rs:881:10:881:10 | T | -| main.rs:882:32:884:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:882:32:884:9 | { ... } | &T | main.rs:879:5:879:26 | MyStruct | -| main.rs:882:32:884:9 | { ... } | &T.T | main.rs:881:10:881:10 | T | -| main.rs:883:13:883:16 | self | | file://:0:0:0:0 | & | -| main.rs:883:13:883:16 | self | &T | main.rs:879:5:879:26 | MyStruct | -| main.rs:883:13:883:16 | self | &T.T | main.rs:881:10:881:10 | T | -| main.rs:888:13:888:13 | x | | main.rs:879:5:879:26 | MyStruct | -| main.rs:888:13:888:13 | x | T | main.rs:877:5:877:13 | S | -| main.rs:888:17:888:27 | MyStruct(...) | | main.rs:879:5:879:26 | MyStruct | -| main.rs:888:17:888:27 | MyStruct(...) | T | main.rs:877:5:877:13 | S | -| main.rs:888:26:888:26 | S | | main.rs:877:5:877:13 | S | -| main.rs:889:9:889:9 | x | | main.rs:879:5:879:26 | MyStruct | -| main.rs:889:9:889:9 | x | T | main.rs:877:5:877:13 | S | -| main.rs:889:9:889:15 | x.foo() | | file://:0:0:0:0 | & | -| main.rs:889:9:889:15 | x.foo() | &T | main.rs:879:5:879:26 | MyStruct | -| main.rs:889:9:889:15 | x.foo() | &T.T | main.rs:877:5:877:13 | S | -| main.rs:897:15:897:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:897:15:897:19 | SelfParam | &T | main.rs:894:5:894:13 | S | -| main.rs:897:31:899:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:897:31:899:9 | { ... } | &T | main.rs:894:5:894:13 | S | -| main.rs:898:13:898:19 | &... | | file://:0:0:0:0 | & | -| main.rs:898:13:898:19 | &... | &T | main.rs:894:5:894:13 | S | -| main.rs:898:14:898:19 | &... | | file://:0:0:0:0 | & | -| main.rs:898:14:898:19 | &... | &T | main.rs:894:5:894:13 | S | -| main.rs:898:15:898:19 | &self | | file://:0:0:0:0 | & | -| main.rs:898:15:898:19 | &self | &T | main.rs:894:5:894:13 | S | -| main.rs:898:16:898:19 | self | | file://:0:0:0:0 | & | -| main.rs:898:16:898:19 | self | &T | main.rs:894:5:894:13 | S | -| main.rs:901:15:901:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:901:15:901:25 | SelfParam | &T | main.rs:894:5:894:13 | S | -| main.rs:901:37:903:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:901:37:903:9 | { ... } | &T | main.rs:894:5:894:13 | S | -| main.rs:902:13:902:19 | &... | | file://:0:0:0:0 | & | -| main.rs:902:13:902:19 | &... | &T | main.rs:894:5:894:13 | S | -| main.rs:902:14:902:19 | &... | | file://:0:0:0:0 | & | -| main.rs:902:14:902:19 | &... | &T | main.rs:894:5:894:13 | S | -| main.rs:902:15:902:19 | &self | | file://:0:0:0:0 | & | -| main.rs:902:15:902:19 | &self | &T | main.rs:894:5:894:13 | S | -| main.rs:902:16:902:19 | self | | file://:0:0:0:0 | & | -| main.rs:902:16:902:19 | self | &T | main.rs:894:5:894:13 | S | -| main.rs:905:15:905:15 | x | | file://:0:0:0:0 | & | -| main.rs:905:15:905:15 | x | &T | main.rs:894:5:894:13 | S | -| main.rs:905:34:907:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:905:34:907:9 | { ... } | &T | main.rs:894:5:894:13 | S | -| main.rs:906:13:906:13 | x | | file://:0:0:0:0 | & | -| main.rs:906:13:906:13 | x | &T | main.rs:894:5:894:13 | S | -| main.rs:909:15:909:15 | x | | file://:0:0:0:0 | & | -| main.rs:909:15:909:15 | x | &T | main.rs:894:5:894:13 | S | -| main.rs:909:34:911:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:909:34:911:9 | { ... } | &T | main.rs:894:5:894:13 | S | -| main.rs:910:13:910:16 | &... | | file://:0:0:0:0 | & | -| main.rs:910:13:910:16 | &... | &T | main.rs:894:5:894:13 | S | -| main.rs:910:14:910:16 | &... | | file://:0:0:0:0 | & | -| main.rs:910:14:910:16 | &... | &T | main.rs:894:5:894:13 | S | -| main.rs:910:15:910:16 | &x | | file://:0:0:0:0 | & | -| main.rs:910:15:910:16 | &x | &T | main.rs:894:5:894:13 | S | -| main.rs:910:16:910:16 | x | | file://:0:0:0:0 | & | -| main.rs:910:16:910:16 | x | &T | main.rs:894:5:894:13 | S | -| main.rs:915:13:915:13 | x | | main.rs:894:5:894:13 | S | -| main.rs:915:17:915:20 | S {...} | | main.rs:894:5:894:13 | S | -| main.rs:916:9:916:9 | x | | main.rs:894:5:894:13 | S | -| main.rs:916:9:916:14 | x.f1() | | file://:0:0:0:0 | & | -| main.rs:916:9:916:14 | x.f1() | &T | main.rs:894:5:894:13 | S | -| main.rs:917:9:917:9 | x | | main.rs:894:5:894:13 | S | -| main.rs:917:9:917:14 | x.f2() | | file://:0:0:0:0 | & | -| main.rs:917:9:917:14 | x.f2() | &T | main.rs:894:5:894:13 | S | -| main.rs:918:9:918:17 | ...::f3(...) | | file://:0:0:0:0 | & | -| main.rs:918:9:918:17 | ...::f3(...) | &T | main.rs:894:5:894:13 | S | -| main.rs:918:15:918:16 | &x | | file://:0:0:0:0 | & | -| main.rs:918:15:918:16 | &x | &T | main.rs:894:5:894:13 | S | -| main.rs:918:16:918:16 | x | | main.rs:894:5:894:13 | S | -| main.rs:932:43:935:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:932:43:935:5 | { ... } | E | main.rs:925:5:926:14 | S1 | -| main.rs:932:43:935:5 | { ... } | T | main.rs:925:5:926:14 | S1 | -| main.rs:933:13:933:13 | x | | main.rs:925:5:926:14 | S1 | -| main.rs:933:17:933:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:933:17:933:30 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:933:17:933:31 | TryExpr | | main.rs:925:5:926:14 | S1 | -| main.rs:933:28:933:29 | S1 | | main.rs:925:5:926:14 | S1 | -| main.rs:934:9:934:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:934:9:934:22 | ...::Ok(...) | E | main.rs:925:5:926:14 | S1 | -| main.rs:934:9:934:22 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:934:20:934:21 | S1 | | main.rs:925:5:926:14 | S1 | -| main.rs:938:46:942:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:938:46:942:5 | { ... } | E | main.rs:928:5:929:14 | S2 | -| main.rs:938:46:942:5 | { ... } | T | main.rs:925:5:926:14 | S1 | -| main.rs:939:13:939:13 | x | | file://:0:0:0:0 | Result | -| main.rs:939:13:939:13 | x | T | main.rs:925:5:926:14 | S1 | -| main.rs:939:17:939:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:939:17:939:30 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:939:28:939:29 | S1 | | main.rs:925:5:926:14 | S1 | -| main.rs:940:13:940:13 | y | | main.rs:925:5:926:14 | S1 | -| main.rs:940:17:940:17 | x | | file://:0:0:0:0 | Result | -| main.rs:940:17:940:17 | x | T | main.rs:925:5:926:14 | S1 | -| main.rs:940:17:940:18 | TryExpr | | main.rs:925:5:926:14 | S1 | -| main.rs:941:9:941:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:941:9:941:22 | ...::Ok(...) | E | main.rs:928:5:929:14 | S2 | -| main.rs:941:9:941:22 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:941:20:941:21 | S1 | | main.rs:925:5:926:14 | S1 | -| main.rs:945:40:950:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:945:40:950:5 | { ... } | E | main.rs:928:5:929:14 | S2 | -| main.rs:945:40:950:5 | { ... } | T | main.rs:925:5:926:14 | S1 | -| main.rs:946:13:946:13 | x | | file://:0:0:0:0 | Result | -| main.rs:946:13:946:13 | x | T | file://:0:0:0:0 | Result | -| main.rs:946:13:946:13 | x | T.T | main.rs:925:5:926:14 | S1 | -| main.rs:946:17:946:42 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:946:17:946:42 | ...::Ok(...) | T | file://:0:0:0:0 | Result | -| main.rs:946:17:946:42 | ...::Ok(...) | T.T | main.rs:925:5:926:14 | S1 | -| main.rs:946:28:946:41 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:946:28:946:41 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:946:39:946:40 | S1 | | main.rs:925:5:926:14 | S1 | -| main.rs:948:17:948:17 | x | | file://:0:0:0:0 | Result | -| main.rs:948:17:948:17 | x | T | file://:0:0:0:0 | Result | -| main.rs:948:17:948:17 | x | T.T | main.rs:925:5:926:14 | S1 | -| main.rs:948:17:948:18 | TryExpr | | file://:0:0:0:0 | Result | -| main.rs:948:17:948:18 | TryExpr | T | main.rs:925:5:926:14 | S1 | -| main.rs:948:17:948:29 | ... .map(...) | | file://:0:0:0:0 | Result | -| main.rs:949:9:949:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:949:9:949:22 | ...::Ok(...) | E | main.rs:928:5:929:14 | S2 | -| main.rs:949:9:949:22 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:949:20:949:21 | S1 | | main.rs:925:5:926:14 | S1 | -| main.rs:953:30:953:34 | input | | file://:0:0:0:0 | Result | -| main.rs:953:30:953:34 | input | E | main.rs:925:5:926:14 | S1 | -| main.rs:953:30:953:34 | input | T | main.rs:953:20:953:27 | T | -| main.rs:953:69:960:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:953:69:960:5 | { ... } | E | main.rs:925:5:926:14 | S1 | -| main.rs:953:69:960:5 | { ... } | T | main.rs:953:20:953:27 | T | -| main.rs:954:13:954:17 | value | | main.rs:953:20:953:27 | T | -| main.rs:954:21:954:25 | input | | file://:0:0:0:0 | Result | -| main.rs:954:21:954:25 | input | E | main.rs:925:5:926:14 | S1 | -| main.rs:954:21:954:25 | input | T | main.rs:953:20:953:27 | T | -| main.rs:954:21:954:26 | TryExpr | | main.rs:953:20:953:27 | T | -| main.rs:955:22:955:38 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:955:22:955:38 | ...::Ok(...) | T | main.rs:953:20:953:27 | T | -| main.rs:955:22:958:10 | ... .and_then(...) | | file://:0:0:0:0 | Result | -| main.rs:955:33:955:37 | value | | main.rs:953:20:953:27 | T | -| main.rs:955:53:958:9 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:955:53:958:9 | { ... } | E | main.rs:925:5:926:14 | S1 | -| main.rs:957:13:957:34 | ...::Ok::<...>(...) | | file://:0:0:0:0 | Result | -| main.rs:957:13:957:34 | ...::Ok::<...>(...) | E | main.rs:925:5:926:14 | S1 | -| main.rs:959:9:959:23 | ...::Err(...) | | file://:0:0:0:0 | Result | -| main.rs:959:9:959:23 | ...::Err(...) | E | main.rs:925:5:926:14 | S1 | -| main.rs:959:9:959:23 | ...::Err(...) | T | main.rs:953:20:953:27 | T | -| main.rs:959:21:959:22 | S1 | | main.rs:925:5:926:14 | S1 | -| main.rs:963:37:963:52 | try_same_error(...) | | file://:0:0:0:0 | Result | -| main.rs:963:37:963:52 | try_same_error(...) | E | main.rs:925:5:926:14 | S1 | -| main.rs:963:37:963:52 | try_same_error(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:967:37:967:55 | try_convert_error(...) | | file://:0:0:0:0 | Result | -| main.rs:967:37:967:55 | try_convert_error(...) | E | main.rs:928:5:929:14 | S2 | -| main.rs:967:37:967:55 | try_convert_error(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:971:37:971:49 | try_chained(...) | | file://:0:0:0:0 | Result | -| main.rs:971:37:971:49 | try_chained(...) | E | main.rs:928:5:929:14 | S2 | -| main.rs:971:37:971:49 | try_chained(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:975:37:975:63 | try_complex(...) | | file://:0:0:0:0 | Result | -| main.rs:975:37:975:63 | try_complex(...) | E | main.rs:925:5:926:14 | S1 | -| main.rs:975:37:975:63 | try_complex(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:975:49:975:62 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:975:49:975:62 | ...::Ok(...) | E | main.rs:925:5:926:14 | S1 | -| main.rs:975:49:975:62 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | -| main.rs:975:60:975:61 | S1 | | main.rs:925:5:926:14 | S1 | -| main.rs:983:5:983:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:984:5:984:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:984:20:984:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:984:41:984:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:163:15:163:18 | SelfParam | | main.rs:162:5:171:5 | Self [trait MyTrait] | +| main.rs:165:15:165:18 | SelfParam | | main.rs:162:5:171:5 | Self [trait MyTrait] | +| main.rs:168:9:170:9 | { ... } | | main.rs:162:5:171:5 | Self [trait MyTrait] | +| main.rs:169:13:169:16 | self | | main.rs:162:5:171:5 | Self [trait MyTrait] | +| main.rs:175:16:175:19 | SelfParam | | main.rs:173:5:178:5 | Self [trait MyProduct] | +| main.rs:177:16:177:19 | SelfParam | | main.rs:173:5:178:5 | Self [trait MyProduct] | +| main.rs:180:43:180:43 | x | | main.rs:180:26:180:40 | T2 | +| main.rs:180:56:182:5 | { ... } | | main.rs:180:22:180:23 | T1 | +| main.rs:181:9:181:9 | x | | main.rs:180:26:180:40 | T2 | +| main.rs:181:9:181:14 | x.m1() | | main.rs:180:22:180:23 | T1 | +| main.rs:186:15:186:18 | SelfParam | | main.rs:144:5:147:5 | MyThing | +| main.rs:186:15:186:18 | SelfParam | A | main.rs:155:5:156:14 | S1 | +| main.rs:186:27:188:9 | { ... } | | main.rs:155:5:156:14 | S1 | +| main.rs:187:13:187:16 | self | | main.rs:144:5:147:5 | MyThing | +| main.rs:187:13:187:16 | self | A | main.rs:155:5:156:14 | S1 | +| main.rs:187:13:187:18 | self.a | | main.rs:155:5:156:14 | S1 | +| main.rs:193:15:193:18 | SelfParam | | main.rs:144:5:147:5 | MyThing | +| main.rs:193:15:193:18 | SelfParam | A | main.rs:157:5:158:14 | S2 | +| main.rs:193:29:195:9 | { ... } | | main.rs:144:5:147:5 | MyThing | +| main.rs:193:29:195:9 | { ... } | A | main.rs:157:5:158:14 | S2 | +| main.rs:194:13:194:30 | Self {...} | | main.rs:144:5:147:5 | MyThing | +| main.rs:194:13:194:30 | Self {...} | A | main.rs:157:5:158:14 | S2 | +| main.rs:194:23:194:26 | self | | main.rs:144:5:147:5 | MyThing | +| main.rs:194:23:194:26 | self | A | main.rs:157:5:158:14 | S2 | +| main.rs:194:23:194:28 | self.a | | main.rs:157:5:158:14 | S2 | +| main.rs:205:15:205:18 | SelfParam | | main.rs:144:5:147:5 | MyThing | +| main.rs:205:15:205:18 | SelfParam | A | main.rs:159:5:160:14 | S3 | +| main.rs:205:27:207:9 | { ... } | | main.rs:200:10:200:11 | TD | +| main.rs:206:13:206:25 | ...::default(...) | | main.rs:200:10:200:11 | TD | +| main.rs:212:15:212:18 | SelfParam | | main.rs:149:5:153:5 | MyPair | +| main.rs:212:15:212:18 | SelfParam | P1 | main.rs:210:10:210:10 | I | +| main.rs:212:15:212:18 | SelfParam | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:212:26:214:9 | { ... } | | main.rs:210:10:210:10 | I | +| main.rs:213:13:213:16 | self | | main.rs:149:5:153:5 | MyPair | +| main.rs:213:13:213:16 | self | P1 | main.rs:210:10:210:10 | I | +| main.rs:213:13:213:16 | self | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:213:13:213:19 | self.p1 | | main.rs:210:10:210:10 | I | +| main.rs:219:15:219:18 | SelfParam | | main.rs:149:5:153:5 | MyPair | +| main.rs:219:15:219:18 | SelfParam | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:219:15:219:18 | SelfParam | P2 | main.rs:157:5:158:14 | S2 | +| main.rs:219:27:221:9 | { ... } | | main.rs:159:5:160:14 | S3 | +| main.rs:220:13:220:14 | S3 | | main.rs:159:5:160:14 | S3 | +| main.rs:226:15:226:18 | SelfParam | | main.rs:149:5:153:5 | MyPair | +| main.rs:226:15:226:18 | SelfParam | P1 | main.rs:144:5:147:5 | MyThing | +| main.rs:226:15:226:18 | SelfParam | P1.A | main.rs:224:10:224:11 | TT | +| main.rs:226:15:226:18 | SelfParam | P2 | main.rs:159:5:160:14 | S3 | +| main.rs:226:27:229:9 | { ... } | | main.rs:224:10:224:11 | TT | +| main.rs:227:17:227:21 | alpha | | main.rs:144:5:147:5 | MyThing | +| main.rs:227:17:227:21 | alpha | A | main.rs:224:10:224:11 | TT | +| main.rs:227:25:227:28 | self | | main.rs:149:5:153:5 | MyPair | +| main.rs:227:25:227:28 | self | P1 | main.rs:144:5:147:5 | MyThing | +| main.rs:227:25:227:28 | self | P1.A | main.rs:224:10:224:11 | TT | +| main.rs:227:25:227:28 | self | P2 | main.rs:159:5:160:14 | S3 | +| main.rs:227:25:227:31 | self.p1 | | main.rs:144:5:147:5 | MyThing | +| main.rs:227:25:227:31 | self.p1 | A | main.rs:224:10:224:11 | TT | +| main.rs:228:13:228:17 | alpha | | main.rs:144:5:147:5 | MyThing | +| main.rs:228:13:228:17 | alpha | A | main.rs:224:10:224:11 | TT | +| main.rs:228:13:228:19 | alpha.a | | main.rs:224:10:224:11 | TT | +| main.rs:235:16:235:19 | SelfParam | | main.rs:149:5:153:5 | MyPair | +| main.rs:235:16:235:19 | SelfParam | P1 | main.rs:233:10:233:10 | A | +| main.rs:235:16:235:19 | SelfParam | P2 | main.rs:233:10:233:10 | A | +| main.rs:235:27:237:9 | { ... } | | main.rs:233:10:233:10 | A | +| main.rs:236:13:236:16 | self | | main.rs:149:5:153:5 | MyPair | +| main.rs:236:13:236:16 | self | P1 | main.rs:233:10:233:10 | A | +| main.rs:236:13:236:16 | self | P2 | main.rs:233:10:233:10 | A | +| main.rs:236:13:236:19 | self.p1 | | main.rs:233:10:233:10 | A | +| main.rs:240:16:240:19 | SelfParam | | main.rs:149:5:153:5 | MyPair | +| main.rs:240:16:240:19 | SelfParam | P1 | main.rs:233:10:233:10 | A | +| main.rs:240:16:240:19 | SelfParam | P2 | main.rs:233:10:233:10 | A | +| main.rs:240:27:242:9 | { ... } | | main.rs:233:10:233:10 | A | +| main.rs:241:13:241:16 | self | | main.rs:149:5:153:5 | MyPair | +| main.rs:241:13:241:16 | self | P1 | main.rs:233:10:233:10 | A | +| main.rs:241:13:241:16 | self | P2 | main.rs:233:10:233:10 | A | +| main.rs:241:13:241:19 | self.p2 | | main.rs:233:10:233:10 | A | +| main.rs:248:16:248:19 | SelfParam | | main.rs:149:5:153:5 | MyPair | +| main.rs:248:16:248:19 | SelfParam | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:248:16:248:19 | SelfParam | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:248:28:250:9 | { ... } | | main.rs:155:5:156:14 | S1 | +| main.rs:249:13:249:16 | self | | main.rs:149:5:153:5 | MyPair | +| main.rs:249:13:249:16 | self | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:249:13:249:16 | self | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:249:13:249:19 | self.p2 | | main.rs:155:5:156:14 | S1 | +| main.rs:253:16:253:19 | SelfParam | | main.rs:149:5:153:5 | MyPair | +| main.rs:253:16:253:19 | SelfParam | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:253:16:253:19 | SelfParam | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:253:28:255:9 | { ... } | | main.rs:157:5:158:14 | S2 | +| main.rs:254:13:254:16 | self | | main.rs:149:5:153:5 | MyPair | +| main.rs:254:13:254:16 | self | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:254:13:254:16 | self | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:254:13:254:19 | self.p1 | | main.rs:157:5:158:14 | S2 | +| main.rs:258:46:258:46 | p | | main.rs:258:24:258:43 | P | +| main.rs:258:58:260:5 | { ... } | | main.rs:258:16:258:17 | V1 | +| main.rs:259:9:259:9 | p | | main.rs:258:24:258:43 | P | +| main.rs:259:9:259:15 | p.fst() | | main.rs:258:16:258:17 | V1 | +| main.rs:262:46:262:46 | p | | main.rs:262:24:262:43 | P | +| main.rs:262:58:264:5 | { ... } | | main.rs:262:20:262:21 | V2 | +| main.rs:263:9:263:9 | p | | main.rs:262:24:262:43 | P | +| main.rs:263:9:263:15 | p.snd() | | main.rs:262:20:262:21 | V2 | +| main.rs:266:54:266:54 | p | | main.rs:149:5:153:5 | MyPair | +| main.rs:266:54:266:54 | p | P1 | main.rs:266:20:266:21 | V0 | +| main.rs:266:54:266:54 | p | P2 | main.rs:266:32:266:51 | P | +| main.rs:266:78:268:5 | { ... } | | main.rs:266:24:266:25 | V1 | +| main.rs:267:9:267:9 | p | | main.rs:149:5:153:5 | MyPair | +| main.rs:267:9:267:9 | p | P1 | main.rs:266:20:266:21 | V0 | +| main.rs:267:9:267:9 | p | P2 | main.rs:266:32:266:51 | P | +| main.rs:267:9:267:12 | p.p2 | | main.rs:266:32:266:51 | P | +| main.rs:267:9:267:18 | ... .fst() | | main.rs:266:24:266:25 | V1 | +| main.rs:272:23:272:26 | SelfParam | | main.rs:270:5:273:5 | Self [trait ConvertTo] | +| main.rs:277:23:277:26 | SelfParam | | main.rs:275:10:275:23 | T | +| main.rs:277:35:279:9 | { ... } | | main.rs:155:5:156:14 | S1 | +| main.rs:278:13:278:16 | self | | main.rs:275:10:275:23 | T | +| main.rs:278:13:278:21 | self.m1() | | main.rs:155:5:156:14 | S1 | +| main.rs:282:41:282:45 | thing | | main.rs:282:23:282:38 | T | +| main.rs:282:57:284:5 | { ... } | | main.rs:282:19:282:20 | TS | +| main.rs:283:9:283:13 | thing | | main.rs:282:23:282:38 | T | +| main.rs:283:9:283:26 | thing.convert_to() | | main.rs:282:19:282:20 | TS | +| main.rs:286:56:286:60 | thing | | main.rs:286:39:286:53 | TP | +| main.rs:286:73:289:5 | { ... } | | main.rs:155:5:156:14 | S1 | +| main.rs:288:9:288:13 | thing | | main.rs:286:39:286:53 | TP | +| main.rs:288:9:288:26 | thing.convert_to() | | main.rs:155:5:156:14 | S1 | +| main.rs:292:13:292:20 | thing_s1 | | main.rs:144:5:147:5 | MyThing | +| main.rs:292:13:292:20 | thing_s1 | A | main.rs:155:5:156:14 | S1 | +| main.rs:292:24:292:40 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | +| main.rs:292:24:292:40 | MyThing {...} | A | main.rs:155:5:156:14 | S1 | +| main.rs:292:37:292:38 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:293:13:293:20 | thing_s2 | | main.rs:144:5:147:5 | MyThing | +| main.rs:293:13:293:20 | thing_s2 | A | main.rs:157:5:158:14 | S2 | +| main.rs:293:24:293:40 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | +| main.rs:293:24:293:40 | MyThing {...} | A | main.rs:157:5:158:14 | S2 | +| main.rs:293:37:293:38 | S2 | | main.rs:157:5:158:14 | S2 | +| main.rs:294:13:294:20 | thing_s3 | | main.rs:144:5:147:5 | MyThing | +| main.rs:294:13:294:20 | thing_s3 | A | main.rs:159:5:160:14 | S3 | +| main.rs:294:24:294:40 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | +| main.rs:294:24:294:40 | MyThing {...} | A | main.rs:159:5:160:14 | S3 | +| main.rs:294:37:294:38 | S3 | | main.rs:159:5:160:14 | S3 | +| main.rs:298:26:298:33 | thing_s1 | | main.rs:144:5:147:5 | MyThing | +| main.rs:298:26:298:33 | thing_s1 | A | main.rs:155:5:156:14 | S1 | +| main.rs:298:26:298:38 | thing_s1.m1() | | main.rs:155:5:156:14 | S1 | +| main.rs:299:26:299:33 | thing_s2 | | main.rs:144:5:147:5 | MyThing | +| main.rs:299:26:299:33 | thing_s2 | A | main.rs:157:5:158:14 | S2 | +| main.rs:299:26:299:38 | thing_s2.m1() | | main.rs:144:5:147:5 | MyThing | +| main.rs:299:26:299:38 | thing_s2.m1() | A | main.rs:157:5:158:14 | S2 | +| main.rs:299:26:299:40 | ... .a | | main.rs:157:5:158:14 | S2 | +| main.rs:300:13:300:14 | s3 | | main.rs:159:5:160:14 | S3 | +| main.rs:300:22:300:29 | thing_s3 | | main.rs:144:5:147:5 | MyThing | +| main.rs:300:22:300:29 | thing_s3 | A | main.rs:159:5:160:14 | S3 | +| main.rs:300:22:300:34 | thing_s3.m1() | | main.rs:159:5:160:14 | S3 | +| main.rs:301:26:301:27 | s3 | | main.rs:159:5:160:14 | S3 | +| main.rs:303:13:303:14 | p1 | | main.rs:149:5:153:5 | MyPair | +| main.rs:303:13:303:14 | p1 | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:303:13:303:14 | p1 | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:303:18:303:42 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | +| main.rs:303:18:303:42 | MyPair {...} | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:303:18:303:42 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:303:31:303:32 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:303:39:303:40 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:304:26:304:27 | p1 | | main.rs:149:5:153:5 | MyPair | +| main.rs:304:26:304:27 | p1 | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:304:26:304:27 | p1 | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:304:26:304:32 | p1.m1() | | main.rs:155:5:156:14 | S1 | +| main.rs:306:13:306:14 | p2 | | main.rs:149:5:153:5 | MyPair | +| main.rs:306:13:306:14 | p2 | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:306:13:306:14 | p2 | P2 | main.rs:157:5:158:14 | S2 | +| main.rs:306:18:306:42 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | +| main.rs:306:18:306:42 | MyPair {...} | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:306:18:306:42 | MyPair {...} | P2 | main.rs:157:5:158:14 | S2 | +| main.rs:306:31:306:32 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:306:39:306:40 | S2 | | main.rs:157:5:158:14 | S2 | +| main.rs:307:26:307:27 | p2 | | main.rs:149:5:153:5 | MyPair | +| main.rs:307:26:307:27 | p2 | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:307:26:307:27 | p2 | P2 | main.rs:157:5:158:14 | S2 | +| main.rs:307:26:307:32 | p2.m1() | | main.rs:159:5:160:14 | S3 | +| main.rs:309:13:309:14 | p3 | | main.rs:149:5:153:5 | MyPair | +| main.rs:309:13:309:14 | p3 | P1 | main.rs:144:5:147:5 | MyThing | +| main.rs:309:13:309:14 | p3 | P1.A | main.rs:155:5:156:14 | S1 | +| main.rs:309:13:309:14 | p3 | P2 | main.rs:159:5:160:14 | S3 | +| main.rs:309:18:312:9 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | +| main.rs:309:18:312:9 | MyPair {...} | P1 | main.rs:144:5:147:5 | MyThing | +| main.rs:309:18:312:9 | MyPair {...} | P1.A | main.rs:155:5:156:14 | S1 | +| main.rs:309:18:312:9 | MyPair {...} | P2 | main.rs:159:5:160:14 | S3 | +| main.rs:310:17:310:33 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | +| main.rs:310:17:310:33 | MyThing {...} | A | main.rs:155:5:156:14 | S1 | +| main.rs:310:30:310:31 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:311:17:311:18 | S3 | | main.rs:159:5:160:14 | S3 | +| main.rs:313:26:313:27 | p3 | | main.rs:149:5:153:5 | MyPair | +| main.rs:313:26:313:27 | p3 | P1 | main.rs:144:5:147:5 | MyThing | +| main.rs:313:26:313:27 | p3 | P1.A | main.rs:155:5:156:14 | S1 | +| main.rs:313:26:313:27 | p3 | P2 | main.rs:159:5:160:14 | S3 | +| main.rs:313:26:313:32 | p3.m1() | | main.rs:155:5:156:14 | S1 | +| main.rs:316:13:316:13 | a | | main.rs:149:5:153:5 | MyPair | +| main.rs:316:13:316:13 | a | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:316:13:316:13 | a | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:316:17:316:41 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | +| main.rs:316:17:316:41 | MyPair {...} | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:316:17:316:41 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:316:30:316:31 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:316:38:316:39 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:317:13:317:13 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:317:17:317:17 | a | | main.rs:149:5:153:5 | MyPair | +| main.rs:317:17:317:17 | a | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:317:17:317:17 | a | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:317:17:317:23 | a.fst() | | main.rs:155:5:156:14 | S1 | +| main.rs:318:26:318:26 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:319:13:319:13 | y | | main.rs:155:5:156:14 | S1 | +| main.rs:319:17:319:17 | a | | main.rs:149:5:153:5 | MyPair | +| main.rs:319:17:319:17 | a | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:319:17:319:17 | a | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:319:17:319:23 | a.snd() | | main.rs:155:5:156:14 | S1 | +| main.rs:320:26:320:26 | y | | main.rs:155:5:156:14 | S1 | +| main.rs:326:13:326:13 | b | | main.rs:149:5:153:5 | MyPair | +| main.rs:326:13:326:13 | b | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:326:13:326:13 | b | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:326:17:326:41 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | +| main.rs:326:17:326:41 | MyPair {...} | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:326:17:326:41 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:326:30:326:31 | S2 | | main.rs:157:5:158:14 | S2 | +| main.rs:326:38:326:39 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:327:13:327:13 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:327:17:327:17 | b | | main.rs:149:5:153:5 | MyPair | +| main.rs:327:17:327:17 | b | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:327:17:327:17 | b | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:327:17:327:23 | b.fst() | | main.rs:155:5:156:14 | S1 | +| main.rs:328:26:328:26 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:329:13:329:13 | y | | main.rs:157:5:158:14 | S2 | +| main.rs:329:17:329:17 | b | | main.rs:149:5:153:5 | MyPair | +| main.rs:329:17:329:17 | b | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:329:17:329:17 | b | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:329:17:329:23 | b.snd() | | main.rs:157:5:158:14 | S2 | +| main.rs:330:26:330:26 | y | | main.rs:157:5:158:14 | S2 | +| main.rs:334:13:334:13 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:334:17:334:39 | call_trait_m1(...) | | main.rs:155:5:156:14 | S1 | +| main.rs:334:31:334:38 | thing_s1 | | main.rs:144:5:147:5 | MyThing | +| main.rs:334:31:334:38 | thing_s1 | A | main.rs:155:5:156:14 | S1 | +| main.rs:335:26:335:26 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:336:13:336:13 | y | | main.rs:144:5:147:5 | MyThing | +| main.rs:336:13:336:13 | y | A | main.rs:157:5:158:14 | S2 | +| main.rs:336:17:336:39 | call_trait_m1(...) | | main.rs:144:5:147:5 | MyThing | +| main.rs:336:17:336:39 | call_trait_m1(...) | A | main.rs:157:5:158:14 | S2 | +| main.rs:336:31:336:38 | thing_s2 | | main.rs:144:5:147:5 | MyThing | +| main.rs:336:31:336:38 | thing_s2 | A | main.rs:157:5:158:14 | S2 | +| main.rs:337:26:337:26 | y | | main.rs:144:5:147:5 | MyThing | +| main.rs:337:26:337:26 | y | A | main.rs:157:5:158:14 | S2 | +| main.rs:337:26:337:28 | y.a | | main.rs:157:5:158:14 | S2 | +| main.rs:340:13:340:13 | a | | main.rs:149:5:153:5 | MyPair | +| main.rs:340:13:340:13 | a | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:340:13:340:13 | a | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:340:17:340:41 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | +| main.rs:340:17:340:41 | MyPair {...} | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:340:17:340:41 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:340:30:340:31 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:340:38:340:39 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:341:13:341:13 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:341:17:341:26 | get_fst(...) | | main.rs:155:5:156:14 | S1 | +| main.rs:341:25:341:25 | a | | main.rs:149:5:153:5 | MyPair | +| main.rs:341:25:341:25 | a | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:341:25:341:25 | a | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:342:26:342:26 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:343:13:343:13 | y | | main.rs:155:5:156:14 | S1 | +| main.rs:343:17:343:26 | get_snd(...) | | main.rs:155:5:156:14 | S1 | +| main.rs:343:25:343:25 | a | | main.rs:149:5:153:5 | MyPair | +| main.rs:343:25:343:25 | a | P1 | main.rs:155:5:156:14 | S1 | +| main.rs:343:25:343:25 | a | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:344:26:344:26 | y | | main.rs:155:5:156:14 | S1 | +| main.rs:347:13:347:13 | b | | main.rs:149:5:153:5 | MyPair | +| main.rs:347:13:347:13 | b | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:347:13:347:13 | b | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:347:17:347:41 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | +| main.rs:347:17:347:41 | MyPair {...} | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:347:17:347:41 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:347:30:347:31 | S2 | | main.rs:157:5:158:14 | S2 | +| main.rs:347:38:347:39 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:348:13:348:13 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:348:17:348:26 | get_fst(...) | | main.rs:155:5:156:14 | S1 | +| main.rs:348:25:348:25 | b | | main.rs:149:5:153:5 | MyPair | +| main.rs:348:25:348:25 | b | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:348:25:348:25 | b | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:349:26:349:26 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:350:13:350:13 | y | | main.rs:157:5:158:14 | S2 | +| main.rs:350:17:350:26 | get_snd(...) | | main.rs:157:5:158:14 | S2 | +| main.rs:350:25:350:25 | b | | main.rs:149:5:153:5 | MyPair | +| main.rs:350:25:350:25 | b | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:350:25:350:25 | b | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:351:26:351:26 | y | | main.rs:157:5:158:14 | S2 | +| main.rs:353:13:353:13 | c | | main.rs:149:5:153:5 | MyPair | +| main.rs:353:13:353:13 | c | P1 | main.rs:159:5:160:14 | S3 | +| main.rs:353:13:353:13 | c | P2 | main.rs:149:5:153:5 | MyPair | +| main.rs:353:13:353:13 | c | P2.P1 | main.rs:157:5:158:14 | S2 | +| main.rs:353:13:353:13 | c | P2.P2 | main.rs:155:5:156:14 | S1 | +| main.rs:353:17:356:9 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | +| main.rs:353:17:356:9 | MyPair {...} | P1 | main.rs:159:5:160:14 | S3 | +| main.rs:353:17:356:9 | MyPair {...} | P2 | main.rs:149:5:153:5 | MyPair | +| main.rs:353:17:356:9 | MyPair {...} | P2.P1 | main.rs:157:5:158:14 | S2 | +| main.rs:353:17:356:9 | MyPair {...} | P2.P2 | main.rs:155:5:156:14 | S1 | +| main.rs:354:17:354:18 | S3 | | main.rs:159:5:160:14 | S3 | +| main.rs:355:17:355:41 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | +| main.rs:355:17:355:41 | MyPair {...} | P1 | main.rs:157:5:158:14 | S2 | +| main.rs:355:17:355:41 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:355:30:355:31 | S2 | | main.rs:157:5:158:14 | S2 | +| main.rs:355:38:355:39 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:357:13:357:13 | x | | main.rs:155:5:156:14 | S1 | +| main.rs:357:17:357:30 | get_snd_fst(...) | | main.rs:155:5:156:14 | S1 | +| main.rs:357:29:357:29 | c | | main.rs:149:5:153:5 | MyPair | +| main.rs:357:29:357:29 | c | P1 | main.rs:159:5:160:14 | S3 | +| main.rs:357:29:357:29 | c | P2 | main.rs:149:5:153:5 | MyPair | +| main.rs:357:29:357:29 | c | P2.P1 | main.rs:157:5:158:14 | S2 | +| main.rs:357:29:357:29 | c | P2.P2 | main.rs:155:5:156:14 | S1 | +| main.rs:359:13:359:17 | thing | | main.rs:144:5:147:5 | MyThing | +| main.rs:359:13:359:17 | thing | A | main.rs:155:5:156:14 | S1 | +| main.rs:359:21:359:37 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | +| main.rs:359:21:359:37 | MyThing {...} | A | main.rs:155:5:156:14 | S1 | +| main.rs:359:34:359:35 | S1 | | main.rs:155:5:156:14 | S1 | +| main.rs:360:17:360:21 | thing | | main.rs:144:5:147:5 | MyThing | +| main.rs:360:17:360:21 | thing | A | main.rs:155:5:156:14 | S1 | +| main.rs:361:13:361:13 | j | | main.rs:155:5:156:14 | S1 | +| main.rs:361:17:361:33 | convert_to(...) | | main.rs:155:5:156:14 | S1 | +| main.rs:361:28:361:32 | thing | | main.rs:144:5:147:5 | MyThing | +| main.rs:361:28:361:32 | thing | A | main.rs:155:5:156:14 | S1 | +| main.rs:378:19:378:22 | SelfParam | | main.rs:376:5:379:5 | Self [trait FirstTrait] | +| main.rs:383:19:383:22 | SelfParam | | main.rs:381:5:384:5 | Self [trait SecondTrait] | +| main.rs:386:64:386:64 | x | | main.rs:386:45:386:61 | T | +| main.rs:388:13:388:14 | s1 | | main.rs:386:35:386:42 | I | +| main.rs:388:18:388:18 | x | | main.rs:386:45:386:61 | T | +| main.rs:388:18:388:27 | x.method() | | main.rs:386:35:386:42 | I | +| main.rs:389:26:389:27 | s1 | | main.rs:386:35:386:42 | I | +| main.rs:392:65:392:65 | x | | main.rs:392:46:392:62 | T | +| main.rs:394:13:394:14 | s2 | | main.rs:392:36:392:43 | I | +| main.rs:394:18:394:18 | x | | main.rs:392:46:392:62 | T | +| main.rs:394:18:394:27 | x.method() | | main.rs:392:36:392:43 | I | +| main.rs:395:26:395:27 | s2 | | main.rs:392:36:392:43 | I | +| main.rs:398:49:398:49 | x | | main.rs:398:30:398:46 | T | +| main.rs:399:13:399:13 | s | | main.rs:368:5:369:14 | S1 | +| main.rs:399:17:399:17 | x | | main.rs:398:30:398:46 | T | +| main.rs:399:17:399:26 | x.method() | | main.rs:368:5:369:14 | S1 | +| main.rs:400:26:400:26 | s | | main.rs:368:5:369:14 | S1 | +| main.rs:403:53:403:53 | x | | main.rs:403:34:403:50 | T | +| main.rs:404:13:404:13 | s | | main.rs:368:5:369:14 | S1 | +| main.rs:404:17:404:17 | x | | main.rs:403:34:403:50 | T | +| main.rs:404:17:404:26 | x.method() | | main.rs:368:5:369:14 | S1 | +| main.rs:405:26:405:26 | s | | main.rs:368:5:369:14 | S1 | +| main.rs:409:16:409:19 | SelfParam | | main.rs:408:5:412:5 | Self [trait Pair] | +| main.rs:411:16:411:19 | SelfParam | | main.rs:408:5:412:5 | Self [trait Pair] | +| main.rs:414:58:414:58 | x | | main.rs:414:41:414:55 | T | +| main.rs:414:64:414:64 | y | | main.rs:414:41:414:55 | T | +| main.rs:416:13:416:14 | s1 | | main.rs:368:5:369:14 | S1 | +| main.rs:416:18:416:18 | x | | main.rs:414:41:414:55 | T | +| main.rs:416:18:416:24 | x.fst() | | main.rs:368:5:369:14 | S1 | +| main.rs:417:13:417:14 | s2 | | main.rs:371:5:372:14 | S2 | +| main.rs:417:18:417:18 | y | | main.rs:414:41:414:55 | T | +| main.rs:417:18:417:24 | y.snd() | | main.rs:371:5:372:14 | S2 | +| main.rs:418:32:418:33 | s1 | | main.rs:368:5:369:14 | S1 | +| main.rs:418:36:418:37 | s2 | | main.rs:371:5:372:14 | S2 | +| main.rs:421:69:421:69 | x | | main.rs:421:52:421:66 | T | +| main.rs:421:75:421:75 | y | | main.rs:421:52:421:66 | T | +| main.rs:423:13:423:14 | s1 | | main.rs:368:5:369:14 | S1 | +| main.rs:423:18:423:18 | x | | main.rs:421:52:421:66 | T | +| main.rs:423:18:423:24 | x.fst() | | main.rs:368:5:369:14 | S1 | +| main.rs:424:13:424:14 | s2 | | main.rs:421:41:421:49 | T2 | +| main.rs:424:18:424:18 | y | | main.rs:421:52:421:66 | T | +| main.rs:424:18:424:24 | y.snd() | | main.rs:421:41:421:49 | T2 | +| main.rs:425:32:425:33 | s1 | | main.rs:368:5:369:14 | S1 | +| main.rs:425:36:425:37 | s2 | | main.rs:421:41:421:49 | T2 | +| main.rs:441:15:441:18 | SelfParam | | main.rs:440:5:449:5 | Self [trait MyTrait] | +| main.rs:443:15:443:18 | SelfParam | | main.rs:440:5:449:5 | Self [trait MyTrait] | +| main.rs:446:9:448:9 | { ... } | | main.rs:440:19:440:19 | A | +| main.rs:447:13:447:16 | self | | main.rs:440:5:449:5 | Self [trait MyTrait] | +| main.rs:447:13:447:21 | self.m1() | | main.rs:440:19:440:19 | A | +| main.rs:452:43:452:43 | x | | main.rs:452:26:452:40 | T2 | +| main.rs:452:56:454:5 | { ... } | | main.rs:452:22:452:23 | T1 | +| main.rs:453:9:453:9 | x | | main.rs:452:26:452:40 | T2 | +| main.rs:453:9:453:14 | x.m1() | | main.rs:452:22:452:23 | T1 | +| main.rs:457:49:457:49 | x | | main.rs:430:5:433:5 | MyThing | +| main.rs:457:49:457:49 | x | T | main.rs:457:32:457:46 | T2 | +| main.rs:457:71:459:5 | { ... } | | main.rs:457:28:457:29 | T1 | +| main.rs:458:9:458:9 | x | | main.rs:430:5:433:5 | MyThing | +| main.rs:458:9:458:9 | x | T | main.rs:457:32:457:46 | T2 | +| main.rs:458:9:458:11 | x.a | | main.rs:457:32:457:46 | T2 | +| main.rs:458:9:458:16 | ... .m1() | | main.rs:457:28:457:29 | T1 | +| main.rs:462:15:462:18 | SelfParam | | main.rs:430:5:433:5 | MyThing | +| main.rs:462:15:462:18 | SelfParam | T | main.rs:461:10:461:10 | T | +| main.rs:462:26:464:9 | { ... } | | main.rs:461:10:461:10 | T | +| main.rs:463:13:463:16 | self | | main.rs:430:5:433:5 | MyThing | +| main.rs:463:13:463:16 | self | T | main.rs:461:10:461:10 | T | +| main.rs:463:13:463:18 | self.a | | main.rs:461:10:461:10 | T | +| main.rs:468:13:468:13 | x | | main.rs:430:5:433:5 | MyThing | +| main.rs:468:13:468:13 | x | T | main.rs:435:5:436:14 | S1 | +| main.rs:468:17:468:33 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | +| main.rs:468:17:468:33 | MyThing {...} | T | main.rs:435:5:436:14 | S1 | +| main.rs:468:30:468:31 | S1 | | main.rs:435:5:436:14 | S1 | +| main.rs:469:13:469:13 | y | | main.rs:430:5:433:5 | MyThing | +| main.rs:469:13:469:13 | y | T | main.rs:437:5:438:14 | S2 | +| main.rs:469:17:469:33 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | +| main.rs:469:17:469:33 | MyThing {...} | T | main.rs:437:5:438:14 | S2 | +| main.rs:469:30:469:31 | S2 | | main.rs:437:5:438:14 | S2 | +| main.rs:471:26:471:26 | x | | main.rs:430:5:433:5 | MyThing | +| main.rs:471:26:471:26 | x | T | main.rs:435:5:436:14 | S1 | +| main.rs:471:26:471:31 | x.m1() | | main.rs:435:5:436:14 | S1 | +| main.rs:472:26:472:26 | y | | main.rs:430:5:433:5 | MyThing | +| main.rs:472:26:472:26 | y | T | main.rs:437:5:438:14 | S2 | +| main.rs:472:26:472:31 | y.m1() | | main.rs:437:5:438:14 | S2 | +| main.rs:474:13:474:13 | x | | main.rs:430:5:433:5 | MyThing | +| main.rs:474:13:474:13 | x | T | main.rs:435:5:436:14 | S1 | +| main.rs:474:17:474:33 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | +| main.rs:474:17:474:33 | MyThing {...} | T | main.rs:435:5:436:14 | S1 | +| main.rs:474:30:474:31 | S1 | | main.rs:435:5:436:14 | S1 | +| main.rs:475:13:475:13 | y | | main.rs:430:5:433:5 | MyThing | +| main.rs:475:13:475:13 | y | T | main.rs:437:5:438:14 | S2 | +| main.rs:475:17:475:33 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | +| main.rs:475:17:475:33 | MyThing {...} | T | main.rs:437:5:438:14 | S2 | +| main.rs:475:30:475:31 | S2 | | main.rs:437:5:438:14 | S2 | +| main.rs:477:26:477:26 | x | | main.rs:430:5:433:5 | MyThing | +| main.rs:477:26:477:26 | x | T | main.rs:435:5:436:14 | S1 | +| main.rs:477:26:477:31 | x.m2() | | main.rs:435:5:436:14 | S1 | +| main.rs:478:26:478:26 | y | | main.rs:430:5:433:5 | MyThing | +| main.rs:478:26:478:26 | y | T | main.rs:437:5:438:14 | S2 | +| main.rs:478:26:478:31 | y.m2() | | main.rs:437:5:438:14 | S2 | +| main.rs:480:13:480:14 | x2 | | main.rs:430:5:433:5 | MyThing | +| main.rs:480:13:480:14 | x2 | T | main.rs:435:5:436:14 | S1 | +| main.rs:480:18:480:34 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | +| main.rs:480:18:480:34 | MyThing {...} | T | main.rs:435:5:436:14 | S1 | +| main.rs:480:31:480:32 | S1 | | main.rs:435:5:436:14 | S1 | +| main.rs:481:13:481:14 | y2 | | main.rs:430:5:433:5 | MyThing | +| main.rs:481:13:481:14 | y2 | T | main.rs:437:5:438:14 | S2 | +| main.rs:481:18:481:34 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | +| main.rs:481:18:481:34 | MyThing {...} | T | main.rs:437:5:438:14 | S2 | +| main.rs:481:31:481:32 | S2 | | main.rs:437:5:438:14 | S2 | +| main.rs:483:26:483:42 | call_trait_m1(...) | | main.rs:435:5:436:14 | S1 | +| main.rs:483:40:483:41 | x2 | | main.rs:430:5:433:5 | MyThing | +| main.rs:483:40:483:41 | x2 | T | main.rs:435:5:436:14 | S1 | +| main.rs:484:26:484:42 | call_trait_m1(...) | | main.rs:437:5:438:14 | S2 | +| main.rs:484:40:484:41 | y2 | | main.rs:430:5:433:5 | MyThing | +| main.rs:484:40:484:41 | y2 | T | main.rs:437:5:438:14 | S2 | +| main.rs:486:13:486:14 | x3 | | main.rs:430:5:433:5 | MyThing | +| main.rs:486:13:486:14 | x3 | T | main.rs:430:5:433:5 | MyThing | +| main.rs:486:13:486:14 | x3 | T.T | main.rs:435:5:436:14 | S1 | +| main.rs:486:18:488:9 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | +| main.rs:486:18:488:9 | MyThing {...} | T | main.rs:430:5:433:5 | MyThing | +| main.rs:486:18:488:9 | MyThing {...} | T.T | main.rs:435:5:436:14 | S1 | +| main.rs:487:16:487:32 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | +| main.rs:487:16:487:32 | MyThing {...} | T | main.rs:435:5:436:14 | S1 | +| main.rs:487:29:487:30 | S1 | | main.rs:435:5:436:14 | S1 | +| main.rs:489:13:489:14 | y3 | | main.rs:430:5:433:5 | MyThing | +| main.rs:489:13:489:14 | y3 | T | main.rs:430:5:433:5 | MyThing | +| main.rs:489:13:489:14 | y3 | T.T | main.rs:437:5:438:14 | S2 | +| main.rs:489:18:491:9 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | +| main.rs:489:18:491:9 | MyThing {...} | T | main.rs:430:5:433:5 | MyThing | +| main.rs:489:18:491:9 | MyThing {...} | T.T | main.rs:437:5:438:14 | S2 | +| main.rs:490:16:490:32 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | +| main.rs:490:16:490:32 | MyThing {...} | T | main.rs:437:5:438:14 | S2 | +| main.rs:490:29:490:30 | S2 | | main.rs:437:5:438:14 | S2 | +| main.rs:493:13:493:13 | a | | main.rs:435:5:436:14 | S1 | +| main.rs:493:17:493:39 | call_trait_thing_m1(...) | | main.rs:435:5:436:14 | S1 | +| main.rs:493:37:493:38 | x3 | | main.rs:430:5:433:5 | MyThing | +| main.rs:493:37:493:38 | x3 | T | main.rs:430:5:433:5 | MyThing | +| main.rs:493:37:493:38 | x3 | T.T | main.rs:435:5:436:14 | S1 | +| main.rs:494:26:494:26 | a | | main.rs:435:5:436:14 | S1 | +| main.rs:495:13:495:13 | b | | main.rs:437:5:438:14 | S2 | +| main.rs:495:17:495:39 | call_trait_thing_m1(...) | | main.rs:437:5:438:14 | S2 | +| main.rs:495:37:495:38 | y3 | | main.rs:430:5:433:5 | MyThing | +| main.rs:495:37:495:38 | y3 | T | main.rs:430:5:433:5 | MyThing | +| main.rs:495:37:495:38 | y3 | T.T | main.rs:437:5:438:14 | S2 | +| main.rs:496:26:496:26 | b | | main.rs:437:5:438:14 | S2 | +| main.rs:507:19:507:22 | SelfParam | | main.rs:501:5:504:5 | Wrapper | +| main.rs:507:19:507:22 | SelfParam | A | main.rs:506:10:506:10 | A | +| main.rs:507:30:509:9 | { ... } | | main.rs:506:10:506:10 | A | +| main.rs:508:13:508:16 | self | | main.rs:501:5:504:5 | Wrapper | +| main.rs:508:13:508:16 | self | A | main.rs:506:10:506:10 | A | +| main.rs:508:13:508:22 | self.field | | main.rs:506:10:506:10 | A | +| main.rs:516:15:516:18 | SelfParam | | main.rs:512:5:526:5 | Self [trait MyTrait] | +| main.rs:518:15:518:18 | SelfParam | | main.rs:512:5:526:5 | Self [trait MyTrait] | +| main.rs:522:9:525:9 | { ... } | | main.rs:513:9:513:28 | AssociatedType | +| main.rs:523:13:523:16 | self | | main.rs:512:5:526:5 | Self [trait MyTrait] | +| main.rs:523:13:523:21 | self.m1() | | main.rs:513:9:513:28 | AssociatedType | +| main.rs:524:13:524:43 | ...::default(...) | | main.rs:513:9:513:28 | AssociatedType | +| main.rs:532:19:532:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:532:19:532:23 | SelfParam | &T | main.rs:528:5:538:5 | Self [trait MyTraitAssoc2] | +| main.rs:532:26:532:26 | a | | main.rs:532:16:532:16 | A | +| main.rs:534:22:534:26 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:534:22:534:26 | SelfParam | &T | main.rs:528:5:538:5 | Self [trait MyTraitAssoc2] | +| main.rs:534:29:534:29 | a | | main.rs:534:19:534:19 | A | +| main.rs:534:35:534:35 | b | | main.rs:534:19:534:19 | A | +| main.rs:534:75:537:9 | { ... } | | main.rs:529:9:529:52 | GenericAssociatedType | +| main.rs:535:13:535:16 | self | | file://:0:0:0:0 | & | +| main.rs:535:13:535:16 | self | &T | main.rs:528:5:538:5 | Self [trait MyTraitAssoc2] | +| main.rs:535:13:535:23 | self.put(...) | | main.rs:529:9:529:52 | GenericAssociatedType | +| main.rs:535:22:535:22 | a | | main.rs:534:19:534:19 | A | +| main.rs:536:13:536:16 | self | | file://:0:0:0:0 | & | +| main.rs:536:13:536:16 | self | &T | main.rs:528:5:538:5 | Self [trait MyTraitAssoc2] | +| main.rs:536:13:536:23 | self.put(...) | | main.rs:529:9:529:52 | GenericAssociatedType | +| main.rs:536:22:536:22 | b | | main.rs:534:19:534:19 | A | +| main.rs:545:21:545:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:545:21:545:25 | SelfParam | &T | main.rs:540:5:550:5 | Self [trait TraitMultipleAssoc] | +| main.rs:547:20:547:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:547:20:547:24 | SelfParam | &T | main.rs:540:5:550:5 | Self [trait TraitMultipleAssoc] | +| main.rs:549:20:549:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:549:20:549:24 | SelfParam | &T | main.rs:540:5:550:5 | Self [trait TraitMultipleAssoc] | +| main.rs:565:15:565:18 | SelfParam | | main.rs:552:5:553:13 | S | +| main.rs:565:45:567:9 | { ... } | | main.rs:558:5:559:14 | AT | +| main.rs:566:13:566:14 | AT | | main.rs:558:5:559:14 | AT | +| main.rs:575:19:575:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:575:19:575:23 | SelfParam | &T | main.rs:552:5:553:13 | S | +| main.rs:575:26:575:26 | a | | main.rs:575:16:575:16 | A | +| main.rs:575:46:577:9 | { ... } | | main.rs:501:5:504:5 | Wrapper | +| main.rs:575:46:577:9 | { ... } | A | main.rs:575:16:575:16 | A | +| main.rs:576:13:576:32 | Wrapper {...} | | main.rs:501:5:504:5 | Wrapper | +| main.rs:576:13:576:32 | Wrapper {...} | A | main.rs:575:16:575:16 | A | +| main.rs:576:30:576:30 | a | | main.rs:575:16:575:16 | A | +| main.rs:584:15:584:18 | SelfParam | | main.rs:555:5:556:14 | S2 | +| main.rs:584:45:586:9 | { ... } | | main.rs:501:5:504:5 | Wrapper | +| main.rs:584:45:586:9 | { ... } | A | main.rs:555:5:556:14 | S2 | +| main.rs:585:13:585:35 | Wrapper {...} | | main.rs:501:5:504:5 | Wrapper | +| main.rs:585:13:585:35 | Wrapper {...} | A | main.rs:555:5:556:14 | S2 | +| main.rs:585:30:585:33 | self | | main.rs:555:5:556:14 | S2 | +| main.rs:591:30:593:9 | { ... } | | main.rs:501:5:504:5 | Wrapper | +| main.rs:591:30:593:9 | { ... } | A | main.rs:555:5:556:14 | S2 | +| main.rs:592:13:592:33 | Wrapper {...} | | main.rs:501:5:504:5 | Wrapper | +| main.rs:592:13:592:33 | Wrapper {...} | A | main.rs:555:5:556:14 | S2 | +| main.rs:592:30:592:31 | S2 | | main.rs:555:5:556:14 | S2 | +| main.rs:597:22:597:26 | thing | | main.rs:597:10:597:19 | T | +| main.rs:598:9:598:13 | thing | | main.rs:597:10:597:19 | T | +| main.rs:605:21:605:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:605:21:605:25 | SelfParam | &T | main.rs:558:5:559:14 | AT | +| main.rs:605:34:607:9 | { ... } | | main.rs:558:5:559:14 | AT | +| main.rs:606:13:606:14 | AT | | main.rs:558:5:559:14 | AT | +| main.rs:609:20:609:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:609:20:609:24 | SelfParam | &T | main.rs:558:5:559:14 | AT | +| main.rs:609:43:611:9 | { ... } | | main.rs:552:5:553:13 | S | +| main.rs:610:13:610:13 | S | | main.rs:552:5:553:13 | S | +| main.rs:613:20:613:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:613:20:613:24 | SelfParam | &T | main.rs:558:5:559:14 | AT | +| main.rs:613:43:615:9 | { ... } | | main.rs:555:5:556:14 | S2 | +| main.rs:614:13:614:14 | S2 | | main.rs:555:5:556:14 | S2 | +| main.rs:619:13:619:14 | x1 | | main.rs:552:5:553:13 | S | +| main.rs:619:18:619:18 | S | | main.rs:552:5:553:13 | S | +| main.rs:621:26:621:27 | x1 | | main.rs:552:5:553:13 | S | +| main.rs:621:26:621:32 | x1.m1() | | main.rs:558:5:559:14 | AT | +| main.rs:623:13:623:14 | x2 | | main.rs:552:5:553:13 | S | +| main.rs:623:18:623:18 | S | | main.rs:552:5:553:13 | S | +| main.rs:625:13:625:13 | y | | main.rs:558:5:559:14 | AT | +| main.rs:625:17:625:18 | x2 | | main.rs:552:5:553:13 | S | +| main.rs:625:17:625:23 | x2.m2() | | main.rs:558:5:559:14 | AT | +| main.rs:626:26:626:26 | y | | main.rs:558:5:559:14 | AT | +| main.rs:628:13:628:14 | x3 | | main.rs:552:5:553:13 | S | +| main.rs:628:18:628:18 | S | | main.rs:552:5:553:13 | S | +| main.rs:630:26:630:27 | x3 | | main.rs:552:5:553:13 | S | +| main.rs:630:26:630:34 | x3.put(...) | | main.rs:501:5:504:5 | Wrapper | +| main.rs:633:26:633:27 | x3 | | main.rs:552:5:553:13 | S | +| main.rs:635:20:635:20 | S | | main.rs:552:5:553:13 | S | +| main.rs:638:13:638:14 | x5 | | main.rs:555:5:556:14 | S2 | +| main.rs:638:18:638:19 | S2 | | main.rs:555:5:556:14 | S2 | +| main.rs:639:26:639:27 | x5 | | main.rs:555:5:556:14 | S2 | +| main.rs:639:26:639:32 | x5.m1() | | main.rs:501:5:504:5 | Wrapper | +| main.rs:639:26:639:32 | x5.m1() | A | main.rs:555:5:556:14 | S2 | +| main.rs:640:13:640:14 | x6 | | main.rs:555:5:556:14 | S2 | +| main.rs:640:18:640:19 | S2 | | main.rs:555:5:556:14 | S2 | +| main.rs:641:26:641:27 | x6 | | main.rs:555:5:556:14 | S2 | +| main.rs:641:26:641:32 | x6.m2() | | main.rs:501:5:504:5 | Wrapper | +| main.rs:641:26:641:32 | x6.m2() | A | main.rs:555:5:556:14 | S2 | +| main.rs:643:13:643:22 | assoc_zero | | main.rs:558:5:559:14 | AT | +| main.rs:643:26:643:27 | AT | | main.rs:558:5:559:14 | AT | +| main.rs:643:26:643:38 | AT.get_zero() | | main.rs:558:5:559:14 | AT | +| main.rs:644:13:644:21 | assoc_one | | main.rs:552:5:553:13 | S | +| main.rs:644:25:644:26 | AT | | main.rs:558:5:559:14 | AT | +| main.rs:644:25:644:36 | AT.get_one() | | main.rs:552:5:553:13 | S | +| main.rs:645:13:645:21 | assoc_two | | main.rs:555:5:556:14 | S2 | +| main.rs:645:25:645:26 | AT | | main.rs:558:5:559:14 | AT | +| main.rs:645:25:645:36 | AT.get_two() | | main.rs:555:5:556:14 | S2 | +| main.rs:662:15:662:18 | SelfParam | | main.rs:650:5:654:5 | MyEnum | +| main.rs:662:15:662:18 | SelfParam | A | main.rs:661:10:661:10 | T | +| main.rs:662:26:667:9 | { ... } | | main.rs:661:10:661:10 | T | +| main.rs:663:13:666:13 | match self { ... } | | main.rs:661:10:661:10 | T | +| main.rs:663:19:663:22 | self | | main.rs:650:5:654:5 | MyEnum | +| main.rs:663:19:663:22 | self | A | main.rs:661:10:661:10 | T | +| main.rs:664:28:664:28 | a | | main.rs:661:10:661:10 | T | +| main.rs:664:34:664:34 | a | | main.rs:661:10:661:10 | T | +| main.rs:665:30:665:30 | a | | main.rs:661:10:661:10 | T | +| main.rs:665:37:665:37 | a | | main.rs:661:10:661:10 | T | +| main.rs:671:13:671:13 | x | | main.rs:650:5:654:5 | MyEnum | +| main.rs:671:13:671:13 | x | A | main.rs:656:5:657:14 | S1 | +| main.rs:671:17:671:30 | ...::C1(...) | | main.rs:650:5:654:5 | MyEnum | +| main.rs:671:17:671:30 | ...::C1(...) | A | main.rs:656:5:657:14 | S1 | +| main.rs:671:28:671:29 | S1 | | main.rs:656:5:657:14 | S1 | +| main.rs:672:13:672:13 | y | | main.rs:650:5:654:5 | MyEnum | +| main.rs:672:13:672:13 | y | A | main.rs:658:5:659:14 | S2 | +| main.rs:672:17:672:36 | ...::C2 {...} | | main.rs:650:5:654:5 | MyEnum | +| main.rs:672:17:672:36 | ...::C2 {...} | A | main.rs:658:5:659:14 | S2 | +| main.rs:672:33:672:34 | S2 | | main.rs:658:5:659:14 | S2 | +| main.rs:674:26:674:26 | x | | main.rs:650:5:654:5 | MyEnum | +| main.rs:674:26:674:26 | x | A | main.rs:656:5:657:14 | S1 | +| main.rs:674:26:674:31 | x.m1() | | main.rs:656:5:657:14 | S1 | +| main.rs:675:26:675:26 | y | | main.rs:650:5:654:5 | MyEnum | +| main.rs:675:26:675:26 | y | A | main.rs:658:5:659:14 | S2 | +| main.rs:675:26:675:31 | y.m1() | | main.rs:658:5:659:14 | S2 | +| main.rs:697:15:697:18 | SelfParam | | main.rs:695:5:698:5 | Self [trait MyTrait1] | +| main.rs:701:15:701:18 | SelfParam | | main.rs:700:5:711:5 | Self [trait MyTrait2] | +| main.rs:704:9:710:9 | { ... } | | main.rs:700:20:700:22 | Tr2 | +| main.rs:705:13:709:13 | if ... {...} else {...} | | main.rs:700:20:700:22 | Tr2 | +| main.rs:705:26:707:13 | { ... } | | main.rs:700:20:700:22 | Tr2 | +| main.rs:706:17:706:20 | self | | main.rs:700:5:711:5 | Self [trait MyTrait2] | +| main.rs:706:17:706:25 | self.m1() | | main.rs:700:20:700:22 | Tr2 | +| main.rs:707:20:709:13 | { ... } | | main.rs:700:20:700:22 | Tr2 | +| main.rs:708:17:708:30 | ...::m1(...) | | main.rs:700:20:700:22 | Tr2 | +| main.rs:708:26:708:29 | self | | main.rs:700:5:711:5 | Self [trait MyTrait2] | +| main.rs:714:15:714:18 | SelfParam | | main.rs:713:5:724:5 | Self [trait MyTrait3] | +| main.rs:717:9:723:9 | { ... } | | main.rs:713:20:713:22 | Tr3 | +| main.rs:718:13:722:13 | if ... {...} else {...} | | main.rs:713:20:713:22 | Tr3 | +| main.rs:718:26:720:13 | { ... } | | main.rs:713:20:713:22 | Tr3 | +| main.rs:719:17:719:20 | self | | main.rs:713:5:724:5 | Self [trait MyTrait3] | +| main.rs:719:17:719:25 | self.m2() | | main.rs:680:5:683:5 | MyThing | +| main.rs:719:17:719:25 | self.m2() | A | main.rs:713:20:713:22 | Tr3 | +| main.rs:719:17:719:27 | ... .a | | main.rs:713:20:713:22 | Tr3 | +| main.rs:720:20:722:13 | { ... } | | main.rs:713:20:713:22 | Tr3 | +| main.rs:721:17:721:30 | ...::m2(...) | | main.rs:680:5:683:5 | MyThing | +| main.rs:721:17:721:30 | ...::m2(...) | A | main.rs:713:20:713:22 | Tr3 | +| main.rs:721:17:721:32 | ... .a | | main.rs:713:20:713:22 | Tr3 | +| main.rs:721:26:721:29 | self | | main.rs:713:5:724:5 | Self [trait MyTrait3] | +| main.rs:728:15:728:18 | SelfParam | | main.rs:680:5:683:5 | MyThing | +| main.rs:728:15:728:18 | SelfParam | A | main.rs:726:10:726:10 | T | +| main.rs:728:26:730:9 | { ... } | | main.rs:726:10:726:10 | T | +| main.rs:729:13:729:16 | self | | main.rs:680:5:683:5 | MyThing | +| main.rs:729:13:729:16 | self | A | main.rs:726:10:726:10 | T | +| main.rs:729:13:729:18 | self.a | | main.rs:726:10:726:10 | T | +| main.rs:737:15:737:18 | SelfParam | | main.rs:685:5:688:5 | MyThing2 | +| main.rs:737:15:737:18 | SelfParam | A | main.rs:735:10:735:10 | T | +| main.rs:737:35:739:9 | { ... } | | main.rs:680:5:683:5 | MyThing | +| main.rs:737:35:739:9 | { ... } | A | main.rs:735:10:735:10 | T | +| main.rs:738:13:738:33 | MyThing {...} | | main.rs:680:5:683:5 | MyThing | +| main.rs:738:13:738:33 | MyThing {...} | A | main.rs:735:10:735:10 | T | +| main.rs:738:26:738:29 | self | | main.rs:685:5:688:5 | MyThing2 | +| main.rs:738:26:738:29 | self | A | main.rs:735:10:735:10 | T | +| main.rs:738:26:738:31 | self.a | | main.rs:735:10:735:10 | T | +| main.rs:747:13:747:13 | x | | main.rs:680:5:683:5 | MyThing | +| main.rs:747:13:747:13 | x | A | main.rs:690:5:691:14 | S1 | +| main.rs:747:17:747:33 | MyThing {...} | | main.rs:680:5:683:5 | MyThing | +| main.rs:747:17:747:33 | MyThing {...} | A | main.rs:690:5:691:14 | S1 | +| main.rs:747:30:747:31 | S1 | | main.rs:690:5:691:14 | S1 | +| main.rs:748:13:748:13 | y | | main.rs:680:5:683:5 | MyThing | +| main.rs:748:13:748:13 | y | A | main.rs:692:5:693:14 | S2 | +| main.rs:748:17:748:33 | MyThing {...} | | main.rs:680:5:683:5 | MyThing | +| main.rs:748:17:748:33 | MyThing {...} | A | main.rs:692:5:693:14 | S2 | +| main.rs:748:30:748:31 | S2 | | main.rs:692:5:693:14 | S2 | +| main.rs:750:26:750:26 | x | | main.rs:680:5:683:5 | MyThing | +| main.rs:750:26:750:26 | x | A | main.rs:690:5:691:14 | S1 | +| main.rs:750:26:750:31 | x.m1() | | main.rs:690:5:691:14 | S1 | +| main.rs:751:26:751:26 | y | | main.rs:680:5:683:5 | MyThing | +| main.rs:751:26:751:26 | y | A | main.rs:692:5:693:14 | S2 | +| main.rs:751:26:751:31 | y.m1() | | main.rs:692:5:693:14 | S2 | +| main.rs:753:13:753:13 | x | | main.rs:680:5:683:5 | MyThing | +| main.rs:753:13:753:13 | x | A | main.rs:690:5:691:14 | S1 | +| main.rs:753:17:753:33 | MyThing {...} | | main.rs:680:5:683:5 | MyThing | +| main.rs:753:17:753:33 | MyThing {...} | A | main.rs:690:5:691:14 | S1 | +| main.rs:753:30:753:31 | S1 | | main.rs:690:5:691:14 | S1 | +| main.rs:754:13:754:13 | y | | main.rs:680:5:683:5 | MyThing | +| main.rs:754:13:754:13 | y | A | main.rs:692:5:693:14 | S2 | +| main.rs:754:17:754:33 | MyThing {...} | | main.rs:680:5:683:5 | MyThing | +| main.rs:754:17:754:33 | MyThing {...} | A | main.rs:692:5:693:14 | S2 | +| main.rs:754:30:754:31 | S2 | | main.rs:692:5:693:14 | S2 | +| main.rs:756:26:756:26 | x | | main.rs:680:5:683:5 | MyThing | +| main.rs:756:26:756:26 | x | A | main.rs:690:5:691:14 | S1 | +| main.rs:756:26:756:31 | x.m2() | | main.rs:690:5:691:14 | S1 | +| main.rs:757:26:757:26 | y | | main.rs:680:5:683:5 | MyThing | +| main.rs:757:26:757:26 | y | A | main.rs:692:5:693:14 | S2 | +| main.rs:757:26:757:31 | y.m2() | | main.rs:692:5:693:14 | S2 | +| main.rs:759:13:759:13 | x | | main.rs:685:5:688:5 | MyThing2 | +| main.rs:759:13:759:13 | x | A | main.rs:690:5:691:14 | S1 | +| main.rs:759:17:759:34 | MyThing2 {...} | | main.rs:685:5:688:5 | MyThing2 | +| main.rs:759:17:759:34 | MyThing2 {...} | A | main.rs:690:5:691:14 | S1 | +| main.rs:759:31:759:32 | S1 | | main.rs:690:5:691:14 | S1 | +| main.rs:760:13:760:13 | y | | main.rs:685:5:688:5 | MyThing2 | +| main.rs:760:13:760:13 | y | A | main.rs:692:5:693:14 | S2 | +| main.rs:760:17:760:34 | MyThing2 {...} | | main.rs:685:5:688:5 | MyThing2 | +| main.rs:760:17:760:34 | MyThing2 {...} | A | main.rs:692:5:693:14 | S2 | +| main.rs:760:31:760:32 | S2 | | main.rs:692:5:693:14 | S2 | +| main.rs:762:26:762:26 | x | | main.rs:685:5:688:5 | MyThing2 | +| main.rs:762:26:762:26 | x | A | main.rs:690:5:691:14 | S1 | +| main.rs:762:26:762:31 | x.m3() | | main.rs:690:5:691:14 | S1 | +| main.rs:763:26:763:26 | y | | main.rs:685:5:688:5 | MyThing2 | +| main.rs:763:26:763:26 | y | A | main.rs:692:5:693:14 | S2 | +| main.rs:763:26:763:31 | y.m3() | | main.rs:692:5:693:14 | S2 | +| main.rs:781:22:781:22 | x | | file://:0:0:0:0 | & | +| main.rs:781:22:781:22 | x | &T | main.rs:781:11:781:19 | T | +| main.rs:781:35:783:5 | { ... } | | file://:0:0:0:0 | & | +| main.rs:781:35:783:5 | { ... } | &T | main.rs:781:11:781:19 | T | +| main.rs:782:9:782:9 | x | | file://:0:0:0:0 | & | +| main.rs:782:9:782:9 | x | &T | main.rs:781:11:781:19 | T | +| main.rs:786:17:786:20 | SelfParam | | main.rs:771:5:772:14 | S1 | +| main.rs:786:29:788:9 | { ... } | | main.rs:774:5:775:14 | S2 | +| main.rs:787:13:787:14 | S2 | | main.rs:774:5:775:14 | S2 | +| main.rs:791:21:791:21 | x | | main.rs:791:13:791:14 | T1 | +| main.rs:794:5:796:5 | { ... } | | main.rs:791:17:791:18 | T2 | +| main.rs:795:9:795:9 | x | | main.rs:791:13:791:14 | T1 | +| main.rs:795:9:795:16 | x.into() | | main.rs:791:17:791:18 | T2 | +| main.rs:799:13:799:13 | x | | main.rs:771:5:772:14 | S1 | +| main.rs:799:17:799:18 | S1 | | main.rs:771:5:772:14 | S1 | +| main.rs:800:26:800:31 | id(...) | | file://:0:0:0:0 | & | +| main.rs:800:26:800:31 | id(...) | &T | main.rs:771:5:772:14 | S1 | +| main.rs:800:29:800:30 | &x | | file://:0:0:0:0 | & | +| main.rs:800:29:800:30 | &x | &T | main.rs:771:5:772:14 | S1 | +| main.rs:800:30:800:30 | x | | main.rs:771:5:772:14 | S1 | +| main.rs:802:13:802:13 | x | | main.rs:771:5:772:14 | S1 | +| main.rs:802:17:802:18 | S1 | | main.rs:771:5:772:14 | S1 | +| main.rs:803:26:803:37 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:803:26:803:37 | id::<...>(...) | &T | main.rs:771:5:772:14 | S1 | +| main.rs:803:35:803:36 | &x | | file://:0:0:0:0 | & | +| main.rs:803:35:803:36 | &x | &T | main.rs:771:5:772:14 | S1 | +| main.rs:803:36:803:36 | x | | main.rs:771:5:772:14 | S1 | +| main.rs:805:13:805:13 | x | | main.rs:771:5:772:14 | S1 | +| main.rs:805:17:805:18 | S1 | | main.rs:771:5:772:14 | S1 | +| main.rs:806:26:806:44 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:806:26:806:44 | id::<...>(...) | &T | main.rs:771:5:772:14 | S1 | +| main.rs:806:42:806:43 | &x | | file://:0:0:0:0 | & | +| main.rs:806:42:806:43 | &x | &T | main.rs:771:5:772:14 | S1 | +| main.rs:806:43:806:43 | x | | main.rs:771:5:772:14 | S1 | +| main.rs:808:13:808:13 | x | | main.rs:771:5:772:14 | S1 | +| main.rs:808:17:808:18 | S1 | | main.rs:771:5:772:14 | S1 | +| main.rs:809:9:809:25 | into::<...>(...) | | main.rs:774:5:775:14 | S2 | +| main.rs:809:24:809:24 | x | | main.rs:771:5:772:14 | S1 | +| main.rs:811:13:811:13 | x | | main.rs:771:5:772:14 | S1 | +| main.rs:811:17:811:18 | S1 | | main.rs:771:5:772:14 | S1 | +| main.rs:812:13:812:13 | y | | main.rs:774:5:775:14 | S2 | +| main.rs:812:21:812:27 | into(...) | | main.rs:774:5:775:14 | S2 | +| main.rs:812:26:812:26 | x | | main.rs:771:5:772:14 | S1 | +| main.rs:826:22:826:25 | SelfParam | | main.rs:817:5:823:5 | PairOption | +| main.rs:826:22:826:25 | SelfParam | Fst | main.rs:825:10:825:12 | Fst | +| main.rs:826:22:826:25 | SelfParam | Snd | main.rs:825:15:825:17 | Snd | +| main.rs:826:35:833:9 | { ... } | | main.rs:825:15:825:17 | Snd | +| main.rs:827:13:832:13 | match self { ... } | | main.rs:825:15:825:17 | Snd | +| main.rs:827:19:827:22 | self | | main.rs:817:5:823:5 | PairOption | +| main.rs:827:19:827:22 | self | Fst | main.rs:825:10:825:12 | Fst | +| main.rs:827:19:827:22 | self | Snd | main.rs:825:15:825:17 | Snd | +| main.rs:828:43:828:82 | MacroExpr | | main.rs:825:15:825:17 | Snd | +| main.rs:829:43:829:81 | MacroExpr | | main.rs:825:15:825:17 | Snd | +| main.rs:830:37:830:39 | snd | | main.rs:825:15:825:17 | Snd | +| main.rs:830:45:830:47 | snd | | main.rs:825:15:825:17 | Snd | +| main.rs:831:41:831:43 | snd | | main.rs:825:15:825:17 | Snd | +| main.rs:831:49:831:51 | snd | | main.rs:825:15:825:17 | Snd | +| main.rs:857:10:857:10 | t | | main.rs:817:5:823:5 | PairOption | +| main.rs:857:10:857:10 | t | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:857:10:857:10 | t | Snd | main.rs:817:5:823:5 | PairOption | +| main.rs:857:10:857:10 | t | Snd.Fst | main.rs:839:5:840:14 | S2 | +| main.rs:857:10:857:10 | t | Snd.Snd | main.rs:842:5:843:14 | S3 | +| main.rs:858:13:858:13 | x | | main.rs:842:5:843:14 | S3 | +| main.rs:858:17:858:17 | t | | main.rs:817:5:823:5 | PairOption | +| main.rs:858:17:858:17 | t | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:858:17:858:17 | t | Snd | main.rs:817:5:823:5 | PairOption | +| main.rs:858:17:858:17 | t | Snd.Fst | main.rs:839:5:840:14 | S2 | +| main.rs:858:17:858:17 | t | Snd.Snd | main.rs:842:5:843:14 | S3 | +| main.rs:858:17:858:29 | t.unwrapSnd() | | main.rs:817:5:823:5 | PairOption | +| main.rs:858:17:858:29 | t.unwrapSnd() | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:858:17:858:29 | t.unwrapSnd() | Snd | main.rs:842:5:843:14 | S3 | +| main.rs:858:17:858:41 | ... .unwrapSnd() | | main.rs:842:5:843:14 | S3 | +| main.rs:859:26:859:26 | x | | main.rs:842:5:843:14 | S3 | +| main.rs:864:13:864:14 | p1 | | main.rs:817:5:823:5 | PairOption | +| main.rs:864:13:864:14 | p1 | Fst | main.rs:836:5:837:14 | S1 | +| main.rs:864:13:864:14 | p1 | Snd | main.rs:839:5:840:14 | S2 | +| main.rs:864:26:864:53 | ...::PairBoth(...) | | main.rs:817:5:823:5 | PairOption | +| main.rs:864:26:864:53 | ...::PairBoth(...) | Fst | main.rs:836:5:837:14 | S1 | +| main.rs:864:26:864:53 | ...::PairBoth(...) | Snd | main.rs:839:5:840:14 | S2 | +| main.rs:864:47:864:48 | S1 | | main.rs:836:5:837:14 | S1 | +| main.rs:864:51:864:52 | S2 | | main.rs:839:5:840:14 | S2 | +| main.rs:865:26:865:27 | p1 | | main.rs:817:5:823:5 | PairOption | +| main.rs:865:26:865:27 | p1 | Fst | main.rs:836:5:837:14 | S1 | +| main.rs:865:26:865:27 | p1 | Snd | main.rs:839:5:840:14 | S2 | +| main.rs:868:13:868:14 | p2 | | main.rs:817:5:823:5 | PairOption | +| main.rs:868:13:868:14 | p2 | Fst | main.rs:836:5:837:14 | S1 | +| main.rs:868:13:868:14 | p2 | Snd | main.rs:839:5:840:14 | S2 | +| main.rs:868:26:868:47 | ...::PairNone(...) | | main.rs:817:5:823:5 | PairOption | +| main.rs:868:26:868:47 | ...::PairNone(...) | Fst | main.rs:836:5:837:14 | S1 | +| main.rs:868:26:868:47 | ...::PairNone(...) | Snd | main.rs:839:5:840:14 | S2 | +| main.rs:869:26:869:27 | p2 | | main.rs:817:5:823:5 | PairOption | +| main.rs:869:26:869:27 | p2 | Fst | main.rs:836:5:837:14 | S1 | +| main.rs:869:26:869:27 | p2 | Snd | main.rs:839:5:840:14 | S2 | +| main.rs:872:13:872:14 | p3 | | main.rs:817:5:823:5 | PairOption | +| main.rs:872:13:872:14 | p3 | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:872:13:872:14 | p3 | Snd | main.rs:842:5:843:14 | S3 | +| main.rs:872:34:872:56 | ...::PairSnd(...) | | main.rs:817:5:823:5 | PairOption | +| main.rs:872:34:872:56 | ...::PairSnd(...) | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:872:34:872:56 | ...::PairSnd(...) | Snd | main.rs:842:5:843:14 | S3 | +| main.rs:872:54:872:55 | S3 | | main.rs:842:5:843:14 | S3 | +| main.rs:873:26:873:27 | p3 | | main.rs:817:5:823:5 | PairOption | +| main.rs:873:26:873:27 | p3 | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:873:26:873:27 | p3 | Snd | main.rs:842:5:843:14 | S3 | +| main.rs:876:13:876:14 | p3 | | main.rs:817:5:823:5 | PairOption | +| main.rs:876:13:876:14 | p3 | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:876:13:876:14 | p3 | Snd | main.rs:842:5:843:14 | S3 | +| main.rs:876:35:876:56 | ...::PairNone(...) | | main.rs:817:5:823:5 | PairOption | +| main.rs:876:35:876:56 | ...::PairNone(...) | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:876:35:876:56 | ...::PairNone(...) | Snd | main.rs:842:5:843:14 | S3 | +| main.rs:877:26:877:27 | p3 | | main.rs:817:5:823:5 | PairOption | +| main.rs:877:26:877:27 | p3 | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:877:26:877:27 | p3 | Snd | main.rs:842:5:843:14 | S3 | +| main.rs:879:11:879:54 | ...::PairSnd(...) | | main.rs:817:5:823:5 | PairOption | +| main.rs:879:11:879:54 | ...::PairSnd(...) | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:879:11:879:54 | ...::PairSnd(...) | Snd | main.rs:817:5:823:5 | PairOption | +| main.rs:879:11:879:54 | ...::PairSnd(...) | Snd.Fst | main.rs:839:5:840:14 | S2 | +| main.rs:879:11:879:54 | ...::PairSnd(...) | Snd.Snd | main.rs:842:5:843:14 | S3 | +| main.rs:879:31:879:53 | ...::PairSnd(...) | | main.rs:817:5:823:5 | PairOption | +| main.rs:879:31:879:53 | ...::PairSnd(...) | Fst | main.rs:839:5:840:14 | S2 | +| main.rs:879:31:879:53 | ...::PairSnd(...) | Snd | main.rs:842:5:843:14 | S3 | +| main.rs:879:51:879:52 | S3 | | main.rs:842:5:843:14 | S3 | +| main.rs:892:16:892:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:892:16:892:24 | SelfParam | &T | main.rs:890:5:897:5 | Self [trait MyTrait] | +| main.rs:892:27:892:31 | value | | main.rs:890:19:890:19 | S | +| main.rs:894:21:894:29 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:894:21:894:29 | SelfParam | &T | main.rs:890:5:897:5 | Self [trait MyTrait] | +| main.rs:894:32:894:36 | value | | main.rs:890:19:890:19 | S | +| main.rs:895:13:895:16 | self | | file://:0:0:0:0 | & | +| main.rs:895:13:895:16 | self | &T | main.rs:890:5:897:5 | Self [trait MyTrait] | +| main.rs:895:22:895:26 | value | | main.rs:890:19:890:19 | S | +| main.rs:901:16:901:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:901:16:901:24 | SelfParam | &T | main.rs:884:5:888:5 | MyOption | +| main.rs:901:16:901:24 | SelfParam | &T.T | main.rs:899:10:899:10 | T | +| main.rs:901:27:901:31 | value | | main.rs:899:10:899:10 | T | +| main.rs:905:26:907:9 | { ... } | | main.rs:884:5:888:5 | MyOption | +| main.rs:905:26:907:9 | { ... } | T | main.rs:904:10:904:10 | T | +| main.rs:906:13:906:30 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:906:13:906:30 | ...::MyNone(...) | T | main.rs:904:10:904:10 | T | +| main.rs:911:20:911:23 | SelfParam | | main.rs:884:5:888:5 | MyOption | +| main.rs:911:20:911:23 | SelfParam | T | main.rs:884:5:888:5 | MyOption | +| main.rs:911:20:911:23 | SelfParam | T.T | main.rs:910:10:910:10 | T | +| main.rs:911:41:916:9 | { ... } | | main.rs:884:5:888:5 | MyOption | +| main.rs:911:41:916:9 | { ... } | T | main.rs:910:10:910:10 | T | +| main.rs:912:13:915:13 | match self { ... } | | main.rs:884:5:888:5 | MyOption | +| main.rs:912:13:915:13 | match self { ... } | T | main.rs:910:10:910:10 | T | +| main.rs:912:19:912:22 | self | | main.rs:884:5:888:5 | MyOption | +| main.rs:912:19:912:22 | self | T | main.rs:884:5:888:5 | MyOption | +| main.rs:912:19:912:22 | self | T.T | main.rs:910:10:910:10 | T | +| main.rs:913:39:913:56 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:913:39:913:56 | ...::MyNone(...) | T | main.rs:910:10:910:10 | T | +| main.rs:914:34:914:34 | x | | main.rs:884:5:888:5 | MyOption | +| main.rs:914:34:914:34 | x | T | main.rs:910:10:910:10 | T | +| main.rs:914:40:914:40 | x | | main.rs:884:5:888:5 | MyOption | +| main.rs:914:40:914:40 | x | T | main.rs:910:10:910:10 | T | +| main.rs:923:13:923:14 | x1 | | main.rs:884:5:888:5 | MyOption | +| main.rs:923:18:923:37 | ...::new(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:924:26:924:27 | x1 | | main.rs:884:5:888:5 | MyOption | +| main.rs:926:13:926:18 | mut x2 | | main.rs:884:5:888:5 | MyOption | +| main.rs:926:13:926:18 | mut x2 | T | main.rs:919:5:920:13 | S | +| main.rs:926:22:926:36 | ...::new(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:926:22:926:36 | ...::new(...) | T | main.rs:919:5:920:13 | S | +| main.rs:927:9:927:10 | x2 | | main.rs:884:5:888:5 | MyOption | +| main.rs:927:9:927:10 | x2 | T | main.rs:919:5:920:13 | S | +| main.rs:927:16:927:16 | S | | main.rs:919:5:920:13 | S | +| main.rs:928:26:928:27 | x2 | | main.rs:884:5:888:5 | MyOption | +| main.rs:928:26:928:27 | x2 | T | main.rs:919:5:920:13 | S | +| main.rs:930:13:930:18 | mut x3 | | main.rs:884:5:888:5 | MyOption | +| main.rs:930:22:930:36 | ...::new(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:931:9:931:10 | x3 | | main.rs:884:5:888:5 | MyOption | +| main.rs:931:21:931:21 | S | | main.rs:919:5:920:13 | S | +| main.rs:932:26:932:27 | x3 | | main.rs:884:5:888:5 | MyOption | +| main.rs:934:13:934:18 | mut x4 | | main.rs:884:5:888:5 | MyOption | +| main.rs:934:13:934:18 | mut x4 | T | main.rs:919:5:920:13 | S | +| main.rs:934:22:934:36 | ...::new(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:934:22:934:36 | ...::new(...) | T | main.rs:919:5:920:13 | S | +| main.rs:935:23:935:29 | &mut x4 | | file://:0:0:0:0 | & | +| main.rs:935:23:935:29 | &mut x4 | &T | main.rs:884:5:888:5 | MyOption | +| main.rs:935:23:935:29 | &mut x4 | &T.T | main.rs:919:5:920:13 | S | +| main.rs:935:28:935:29 | x4 | | main.rs:884:5:888:5 | MyOption | +| main.rs:935:28:935:29 | x4 | T | main.rs:919:5:920:13 | S | +| main.rs:935:32:935:32 | S | | main.rs:919:5:920:13 | S | +| main.rs:936:26:936:27 | x4 | | main.rs:884:5:888:5 | MyOption | +| main.rs:936:26:936:27 | x4 | T | main.rs:919:5:920:13 | S | +| main.rs:938:13:938:14 | x5 | | main.rs:884:5:888:5 | MyOption | +| main.rs:938:13:938:14 | x5 | T | main.rs:884:5:888:5 | MyOption | +| main.rs:938:13:938:14 | x5 | T.T | main.rs:919:5:920:13 | S | +| main.rs:938:18:938:58 | ...::MySome(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:938:18:938:58 | ...::MySome(...) | T | main.rs:884:5:888:5 | MyOption | +| main.rs:938:18:938:58 | ...::MySome(...) | T.T | main.rs:919:5:920:13 | S | +| main.rs:938:35:938:57 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:938:35:938:57 | ...::MyNone(...) | T | main.rs:919:5:920:13 | S | +| main.rs:939:26:939:27 | x5 | | main.rs:884:5:888:5 | MyOption | +| main.rs:939:26:939:27 | x5 | T | main.rs:884:5:888:5 | MyOption | +| main.rs:939:26:939:27 | x5 | T.T | main.rs:919:5:920:13 | S | +| main.rs:939:26:939:37 | x5.flatten() | | main.rs:884:5:888:5 | MyOption | +| main.rs:939:26:939:37 | x5.flatten() | T | main.rs:919:5:920:13 | S | +| main.rs:941:13:941:14 | x6 | | main.rs:884:5:888:5 | MyOption | +| main.rs:941:13:941:14 | x6 | T | main.rs:884:5:888:5 | MyOption | +| main.rs:941:13:941:14 | x6 | T.T | main.rs:919:5:920:13 | S | +| main.rs:941:18:941:58 | ...::MySome(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:941:18:941:58 | ...::MySome(...) | T | main.rs:884:5:888:5 | MyOption | +| main.rs:941:18:941:58 | ...::MySome(...) | T.T | main.rs:919:5:920:13 | S | +| main.rs:941:35:941:57 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:941:35:941:57 | ...::MyNone(...) | T | main.rs:919:5:920:13 | S | +| main.rs:942:26:942:61 | ...::flatten(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:942:26:942:61 | ...::flatten(...) | T | main.rs:919:5:920:13 | S | +| main.rs:942:59:942:60 | x6 | | main.rs:884:5:888:5 | MyOption | +| main.rs:942:59:942:60 | x6 | T | main.rs:884:5:888:5 | MyOption | +| main.rs:942:59:942:60 | x6 | T.T | main.rs:919:5:920:13 | S | +| main.rs:944:13:944:19 | from_if | | main.rs:884:5:888:5 | MyOption | +| main.rs:944:13:944:19 | from_if | T | main.rs:919:5:920:13 | S | +| main.rs:944:23:948:9 | if ... {...} else {...} | | main.rs:884:5:888:5 | MyOption | +| main.rs:944:23:948:9 | if ... {...} else {...} | T | main.rs:919:5:920:13 | S | +| main.rs:944:36:946:9 | { ... } | | main.rs:884:5:888:5 | MyOption | +| main.rs:944:36:946:9 | { ... } | T | main.rs:919:5:920:13 | S | +| main.rs:945:13:945:30 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:945:13:945:30 | ...::MyNone(...) | T | main.rs:919:5:920:13 | S | +| main.rs:946:16:948:9 | { ... } | | main.rs:884:5:888:5 | MyOption | +| main.rs:946:16:948:9 | { ... } | T | main.rs:919:5:920:13 | S | +| main.rs:947:13:947:31 | ...::MySome(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:947:13:947:31 | ...::MySome(...) | T | main.rs:919:5:920:13 | S | +| main.rs:947:30:947:30 | S | | main.rs:919:5:920:13 | S | +| main.rs:949:26:949:32 | from_if | | main.rs:884:5:888:5 | MyOption | +| main.rs:949:26:949:32 | from_if | T | main.rs:919:5:920:13 | S | +| main.rs:951:13:951:22 | from_match | | main.rs:884:5:888:5 | MyOption | +| main.rs:951:13:951:22 | from_match | T | main.rs:919:5:920:13 | S | +| main.rs:951:26:954:9 | match ... { ... } | | main.rs:884:5:888:5 | MyOption | +| main.rs:951:26:954:9 | match ... { ... } | T | main.rs:919:5:920:13 | S | +| main.rs:952:21:952:38 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:952:21:952:38 | ...::MyNone(...) | T | main.rs:919:5:920:13 | S | +| main.rs:953:22:953:40 | ...::MySome(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:953:22:953:40 | ...::MySome(...) | T | main.rs:919:5:920:13 | S | +| main.rs:953:39:953:39 | S | | main.rs:919:5:920:13 | S | +| main.rs:955:26:955:35 | from_match | | main.rs:884:5:888:5 | MyOption | +| main.rs:955:26:955:35 | from_match | T | main.rs:919:5:920:13 | S | +| main.rs:957:13:957:21 | from_loop | | main.rs:884:5:888:5 | MyOption | +| main.rs:957:13:957:21 | from_loop | T | main.rs:919:5:920:13 | S | +| main.rs:957:25:962:9 | loop { ... } | | main.rs:884:5:888:5 | MyOption | +| main.rs:957:25:962:9 | loop { ... } | T | main.rs:919:5:920:13 | S | +| main.rs:959:23:959:40 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:959:23:959:40 | ...::MyNone(...) | T | main.rs:919:5:920:13 | S | +| main.rs:961:19:961:37 | ...::MySome(...) | | main.rs:884:5:888:5 | MyOption | +| main.rs:961:19:961:37 | ...::MySome(...) | T | main.rs:919:5:920:13 | S | +| main.rs:961:36:961:36 | S | | main.rs:919:5:920:13 | S | +| main.rs:963:26:963:34 | from_loop | | main.rs:884:5:888:5 | MyOption | +| main.rs:963:26:963:34 | from_loop | T | main.rs:919:5:920:13 | S | +| main.rs:976:15:976:18 | SelfParam | | main.rs:969:5:970:19 | S | +| main.rs:976:15:976:18 | SelfParam | T | main.rs:975:10:975:10 | T | +| main.rs:976:26:978:9 | { ... } | | main.rs:975:10:975:10 | T | +| main.rs:977:13:977:16 | self | | main.rs:969:5:970:19 | S | +| main.rs:977:13:977:16 | self | T | main.rs:975:10:975:10 | T | +| main.rs:977:13:977:18 | self.0 | | main.rs:975:10:975:10 | T | +| main.rs:980:15:980:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:980:15:980:19 | SelfParam | &T | main.rs:969:5:970:19 | S | +| main.rs:980:15:980:19 | SelfParam | &T.T | main.rs:975:10:975:10 | T | +| main.rs:980:28:982:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:980:28:982:9 | { ... } | &T | main.rs:975:10:975:10 | T | +| main.rs:981:13:981:19 | &... | | file://:0:0:0:0 | & | +| main.rs:981:13:981:19 | &... | &T | main.rs:975:10:975:10 | T | +| main.rs:981:14:981:17 | self | | file://:0:0:0:0 | & | +| main.rs:981:14:981:17 | self | &T | main.rs:969:5:970:19 | S | +| main.rs:981:14:981:17 | self | &T.T | main.rs:975:10:975:10 | T | +| main.rs:981:14:981:19 | self.0 | | main.rs:975:10:975:10 | T | +| main.rs:984:15:984:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:984:15:984:25 | SelfParam | &T | main.rs:969:5:970:19 | S | +| main.rs:984:15:984:25 | SelfParam | &T.T | main.rs:975:10:975:10 | T | +| main.rs:984:34:986:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:984:34:986:9 | { ... } | &T | main.rs:975:10:975:10 | T | +| main.rs:985:13:985:19 | &... | | file://:0:0:0:0 | & | +| main.rs:985:13:985:19 | &... | &T | main.rs:975:10:975:10 | T | +| main.rs:985:14:985:17 | self | | file://:0:0:0:0 | & | +| main.rs:985:14:985:17 | self | &T | main.rs:969:5:970:19 | S | +| main.rs:985:14:985:17 | self | &T.T | main.rs:975:10:975:10 | T | +| main.rs:985:14:985:19 | self.0 | | main.rs:975:10:975:10 | T | +| main.rs:990:13:990:14 | x1 | | main.rs:969:5:970:19 | S | +| main.rs:990:13:990:14 | x1 | T | main.rs:972:5:973:14 | S2 | +| main.rs:990:18:990:22 | S(...) | | main.rs:969:5:970:19 | S | +| main.rs:990:18:990:22 | S(...) | T | main.rs:972:5:973:14 | S2 | +| main.rs:990:20:990:21 | S2 | | main.rs:972:5:973:14 | S2 | +| main.rs:991:26:991:27 | x1 | | main.rs:969:5:970:19 | S | +| main.rs:991:26:991:27 | x1 | T | main.rs:972:5:973:14 | S2 | +| main.rs:991:26:991:32 | x1.m1() | | main.rs:972:5:973:14 | S2 | +| main.rs:993:13:993:14 | x2 | | main.rs:969:5:970:19 | S | +| main.rs:993:13:993:14 | x2 | T | main.rs:972:5:973:14 | S2 | +| main.rs:993:18:993:22 | S(...) | | main.rs:969:5:970:19 | S | +| main.rs:993:18:993:22 | S(...) | T | main.rs:972:5:973:14 | S2 | +| main.rs:993:20:993:21 | S2 | | main.rs:972:5:973:14 | S2 | +| main.rs:995:26:995:27 | x2 | | main.rs:969:5:970:19 | S | +| main.rs:995:26:995:27 | x2 | T | main.rs:972:5:973:14 | S2 | +| main.rs:995:26:995:32 | x2.m2() | | file://:0:0:0:0 | & | +| main.rs:995:26:995:32 | x2.m2() | &T | main.rs:972:5:973:14 | S2 | +| main.rs:996:26:996:27 | x2 | | main.rs:969:5:970:19 | S | +| main.rs:996:26:996:27 | x2 | T | main.rs:972:5:973:14 | S2 | +| main.rs:996:26:996:32 | x2.m3() | | file://:0:0:0:0 | & | +| main.rs:996:26:996:32 | x2.m3() | &T | main.rs:972:5:973:14 | S2 | +| main.rs:998:13:998:14 | x3 | | main.rs:969:5:970:19 | S | +| main.rs:998:13:998:14 | x3 | T | main.rs:972:5:973:14 | S2 | +| main.rs:998:18:998:22 | S(...) | | main.rs:969:5:970:19 | S | +| main.rs:998:18:998:22 | S(...) | T | main.rs:972:5:973:14 | S2 | +| main.rs:998:20:998:21 | S2 | | main.rs:972:5:973:14 | S2 | +| main.rs:1000:26:1000:41 | ...::m2(...) | | file://:0:0:0:0 | & | +| main.rs:1000:26:1000:41 | ...::m2(...) | &T | main.rs:972:5:973:14 | S2 | +| main.rs:1000:38:1000:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1000:38:1000:40 | &x3 | &T | main.rs:969:5:970:19 | S | +| main.rs:1000:38:1000:40 | &x3 | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1000:39:1000:40 | x3 | | main.rs:969:5:970:19 | S | +| main.rs:1000:39:1000:40 | x3 | T | main.rs:972:5:973:14 | S2 | +| main.rs:1001:26:1001:41 | ...::m3(...) | | file://:0:0:0:0 | & | +| main.rs:1001:26:1001:41 | ...::m3(...) | &T | main.rs:972:5:973:14 | S2 | +| main.rs:1001:38:1001:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1001:38:1001:40 | &x3 | &T | main.rs:969:5:970:19 | S | +| main.rs:1001:38:1001:40 | &x3 | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1001:39:1001:40 | x3 | | main.rs:969:5:970:19 | S | +| main.rs:1001:39:1001:40 | x3 | T | main.rs:972:5:973:14 | S2 | +| main.rs:1003:13:1003:14 | x4 | | file://:0:0:0:0 | & | +| main.rs:1003:13:1003:14 | x4 | &T | main.rs:969:5:970:19 | S | +| main.rs:1003:13:1003:14 | x4 | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1003:18:1003:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1003:18:1003:23 | &... | &T | main.rs:969:5:970:19 | S | +| main.rs:1003:18:1003:23 | &... | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1003:19:1003:23 | S(...) | | main.rs:969:5:970:19 | S | +| main.rs:1003:19:1003:23 | S(...) | T | main.rs:972:5:973:14 | S2 | +| main.rs:1003:21:1003:22 | S2 | | main.rs:972:5:973:14 | S2 | +| main.rs:1005:26:1005:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1005:26:1005:27 | x4 | &T | main.rs:969:5:970:19 | S | +| main.rs:1005:26:1005:27 | x4 | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1005:26:1005:32 | x4.m2() | | file://:0:0:0:0 | & | +| main.rs:1005:26:1005:32 | x4.m2() | &T | main.rs:972:5:973:14 | S2 | +| main.rs:1006:26:1006:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1006:26:1006:27 | x4 | &T | main.rs:969:5:970:19 | S | +| main.rs:1006:26:1006:27 | x4 | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1006:26:1006:32 | x4.m3() | | file://:0:0:0:0 | & | +| main.rs:1006:26:1006:32 | x4.m3() | &T | main.rs:972:5:973:14 | S2 | +| main.rs:1008:13:1008:14 | x5 | | file://:0:0:0:0 | & | +| main.rs:1008:13:1008:14 | x5 | &T | main.rs:969:5:970:19 | S | +| main.rs:1008:13:1008:14 | x5 | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1008:18:1008:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1008:18:1008:23 | &... | &T | main.rs:969:5:970:19 | S | +| main.rs:1008:18:1008:23 | &... | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1008:19:1008:23 | S(...) | | main.rs:969:5:970:19 | S | +| main.rs:1008:19:1008:23 | S(...) | T | main.rs:972:5:973:14 | S2 | +| main.rs:1008:21:1008:22 | S2 | | main.rs:972:5:973:14 | S2 | +| main.rs:1010:26:1010:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1010:26:1010:27 | x5 | &T | main.rs:969:5:970:19 | S | +| main.rs:1010:26:1010:27 | x5 | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1010:26:1010:32 | x5.m1() | | main.rs:972:5:973:14 | S2 | +| main.rs:1011:26:1011:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1011:26:1011:27 | x5 | &T | main.rs:969:5:970:19 | S | +| main.rs:1011:26:1011:27 | x5 | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1011:26:1011:29 | x5.0 | | main.rs:972:5:973:14 | S2 | +| main.rs:1013:13:1013:14 | x6 | | file://:0:0:0:0 | & | +| main.rs:1013:13:1013:14 | x6 | &T | main.rs:969:5:970:19 | S | +| main.rs:1013:13:1013:14 | x6 | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1013:18:1013:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1013:18:1013:23 | &... | &T | main.rs:969:5:970:19 | S | +| main.rs:1013:18:1013:23 | &... | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1013:19:1013:23 | S(...) | | main.rs:969:5:970:19 | S | +| main.rs:1013:19:1013:23 | S(...) | T | main.rs:972:5:973:14 | S2 | +| main.rs:1013:21:1013:22 | S2 | | main.rs:972:5:973:14 | S2 | +| main.rs:1015:26:1015:30 | (...) | | main.rs:969:5:970:19 | S | +| main.rs:1015:26:1015:30 | (...) | T | main.rs:972:5:973:14 | S2 | +| main.rs:1015:26:1015:35 | ... .m1() | | main.rs:972:5:973:14 | S2 | +| main.rs:1015:27:1015:29 | * ... | | main.rs:969:5:970:19 | S | +| main.rs:1015:27:1015:29 | * ... | T | main.rs:972:5:973:14 | S2 | +| main.rs:1015:28:1015:29 | x6 | | file://:0:0:0:0 | & | +| main.rs:1015:28:1015:29 | x6 | &T | main.rs:969:5:970:19 | S | +| main.rs:1015:28:1015:29 | x6 | &T.T | main.rs:972:5:973:14 | S2 | +| main.rs:1022:16:1022:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1022:16:1022:20 | SelfParam | &T | main.rs:1020:5:1028:5 | Self [trait MyTrait] | +| main.rs:1025:16:1025:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1025:16:1025:20 | SelfParam | &T | main.rs:1020:5:1028:5 | Self [trait MyTrait] | +| main.rs:1025:32:1027:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1025:32:1027:9 | { ... } | &T | main.rs:1020:5:1028:5 | Self [trait MyTrait] | +| main.rs:1026:13:1026:16 | self | | file://:0:0:0:0 | & | +| main.rs:1026:13:1026:16 | self | &T | main.rs:1020:5:1028:5 | Self [trait MyTrait] | +| main.rs:1026:13:1026:22 | self.foo() | | file://:0:0:0:0 | & | +| main.rs:1026:13:1026:22 | self.foo() | &T | main.rs:1020:5:1028:5 | Self [trait MyTrait] | +| main.rs:1034:16:1034:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1034:16:1034:20 | SelfParam | &T | main.rs:1030:5:1030:20 | MyStruct | +| main.rs:1034:36:1036:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1034:36:1036:9 | { ... } | &T | main.rs:1030:5:1030:20 | MyStruct | +| main.rs:1035:13:1035:16 | self | | file://:0:0:0:0 | & | +| main.rs:1035:13:1035:16 | self | &T | main.rs:1030:5:1030:20 | MyStruct | +| main.rs:1040:13:1040:13 | x | | main.rs:1030:5:1030:20 | MyStruct | +| main.rs:1040:17:1040:24 | MyStruct | | main.rs:1030:5:1030:20 | MyStruct | +| main.rs:1041:9:1041:9 | x | | main.rs:1030:5:1030:20 | MyStruct | +| main.rs:1041:9:1041:15 | x.bar() | | file://:0:0:0:0 | & | +| main.rs:1041:9:1041:15 | x.bar() | &T | main.rs:1030:5:1030:20 | MyStruct | +| main.rs:1051:16:1051:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1051:16:1051:20 | SelfParam | &T | main.rs:1048:5:1048:26 | MyStruct | +| main.rs:1051:16:1051:20 | SelfParam | &T.T | main.rs:1050:10:1050:10 | T | +| main.rs:1051:32:1053:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1051:32:1053:9 | { ... } | &T | main.rs:1048:5:1048:26 | MyStruct | +| main.rs:1051:32:1053:9 | { ... } | &T.T | main.rs:1050:10:1050:10 | T | +| main.rs:1052:13:1052:16 | self | | file://:0:0:0:0 | & | +| main.rs:1052:13:1052:16 | self | &T | main.rs:1048:5:1048:26 | MyStruct | +| main.rs:1052:13:1052:16 | self | &T.T | main.rs:1050:10:1050:10 | T | +| main.rs:1057:13:1057:13 | x | | main.rs:1048:5:1048:26 | MyStruct | +| main.rs:1057:13:1057:13 | x | T | main.rs:1046:5:1046:13 | S | +| main.rs:1057:17:1057:27 | MyStruct(...) | | main.rs:1048:5:1048:26 | MyStruct | +| main.rs:1057:17:1057:27 | MyStruct(...) | T | main.rs:1046:5:1046:13 | S | +| main.rs:1057:26:1057:26 | S | | main.rs:1046:5:1046:13 | S | +| main.rs:1058:9:1058:9 | x | | main.rs:1048:5:1048:26 | MyStruct | +| main.rs:1058:9:1058:9 | x | T | main.rs:1046:5:1046:13 | S | +| main.rs:1058:9:1058:15 | x.foo() | | file://:0:0:0:0 | & | +| main.rs:1058:9:1058:15 | x.foo() | &T | main.rs:1048:5:1048:26 | MyStruct | +| main.rs:1058:9:1058:15 | x.foo() | &T.T | main.rs:1046:5:1046:13 | S | +| main.rs:1066:15:1066:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1066:15:1066:19 | SelfParam | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1066:31:1068:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1066:31:1068:9 | { ... } | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1067:13:1067:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1067:13:1067:19 | &... | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1067:14:1067:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1067:14:1067:19 | &... | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1067:15:1067:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1067:15:1067:19 | &self | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1067:16:1067:19 | self | | file://:0:0:0:0 | & | +| main.rs:1067:16:1067:19 | self | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1070:15:1070:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1070:15:1070:25 | SelfParam | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1070:37:1072:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1070:37:1072:9 | { ... } | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1071:13:1071:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1071:13:1071:19 | &... | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1071:14:1071:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1071:14:1071:19 | &... | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1071:15:1071:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1071:15:1071:19 | &self | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1071:16:1071:19 | self | | file://:0:0:0:0 | & | +| main.rs:1071:16:1071:19 | self | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1074:15:1074:15 | x | | file://:0:0:0:0 | & | +| main.rs:1074:15:1074:15 | x | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1074:34:1076:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1074:34:1076:9 | { ... } | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1075:13:1075:13 | x | | file://:0:0:0:0 | & | +| main.rs:1075:13:1075:13 | x | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1078:15:1078:15 | x | | file://:0:0:0:0 | & | +| main.rs:1078:15:1078:15 | x | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1078:34:1080:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1078:34:1080:9 | { ... } | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1079:13:1079:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1079:13:1079:16 | &... | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1079:14:1079:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1079:14:1079:16 | &... | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1079:15:1079:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1079:15:1079:16 | &x | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1079:16:1079:16 | x | | file://:0:0:0:0 | & | +| main.rs:1079:16:1079:16 | x | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1084:13:1084:13 | x | | main.rs:1063:5:1063:13 | S | +| main.rs:1084:17:1084:20 | S {...} | | main.rs:1063:5:1063:13 | S | +| main.rs:1085:9:1085:9 | x | | main.rs:1063:5:1063:13 | S | +| main.rs:1085:9:1085:14 | x.f1() | | file://:0:0:0:0 | & | +| main.rs:1085:9:1085:14 | x.f1() | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1086:9:1086:9 | x | | main.rs:1063:5:1063:13 | S | +| main.rs:1086:9:1086:14 | x.f2() | | file://:0:0:0:0 | & | +| main.rs:1086:9:1086:14 | x.f2() | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1087:9:1087:17 | ...::f3(...) | | file://:0:0:0:0 | & | +| main.rs:1087:9:1087:17 | ...::f3(...) | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1087:15:1087:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1087:15:1087:16 | &x | &T | main.rs:1063:5:1063:13 | S | +| main.rs:1087:16:1087:16 | x | | main.rs:1063:5:1063:13 | S | +| main.rs:1101:43:1104:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1101:43:1104:5 | { ... } | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1101:43:1104:5 | { ... } | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1102:13:1102:13 | x | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1102:17:1102:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1102:17:1102:30 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1102:17:1102:31 | TryExpr | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1102:28:1102:29 | S1 | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1103:9:1103:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1103:9:1103:22 | ...::Ok(...) | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1103:9:1103:22 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1103:20:1103:21 | S1 | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1107:46:1111:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1107:46:1111:5 | { ... } | E | main.rs:1097:5:1098:14 | S2 | +| main.rs:1107:46:1111:5 | { ... } | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1108:13:1108:13 | x | | file://:0:0:0:0 | Result | +| main.rs:1108:13:1108:13 | x | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1108:17:1108:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1108:17:1108:30 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1108:28:1108:29 | S1 | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1109:13:1109:13 | y | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1109:17:1109:17 | x | | file://:0:0:0:0 | Result | +| main.rs:1109:17:1109:17 | x | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1109:17:1109:18 | TryExpr | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1110:9:1110:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1110:9:1110:22 | ...::Ok(...) | E | main.rs:1097:5:1098:14 | S2 | +| main.rs:1110:9:1110:22 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1110:20:1110:21 | S1 | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1114:40:1119:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1114:40:1119:5 | { ... } | E | main.rs:1097:5:1098:14 | S2 | +| main.rs:1114:40:1119:5 | { ... } | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1115:13:1115:13 | x | | file://:0:0:0:0 | Result | +| main.rs:1115:13:1115:13 | x | T | file://:0:0:0:0 | Result | +| main.rs:1115:13:1115:13 | x | T.T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1115:17:1115:42 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1115:17:1115:42 | ...::Ok(...) | T | file://:0:0:0:0 | Result | +| main.rs:1115:17:1115:42 | ...::Ok(...) | T.T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1115:28:1115:41 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1115:28:1115:41 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1115:39:1115:40 | S1 | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1117:17:1117:17 | x | | file://:0:0:0:0 | Result | +| main.rs:1117:17:1117:17 | x | T | file://:0:0:0:0 | Result | +| main.rs:1117:17:1117:17 | x | T.T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1117:17:1117:18 | TryExpr | | file://:0:0:0:0 | Result | +| main.rs:1117:17:1117:18 | TryExpr | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1117:17:1117:29 | ... .map(...) | | file://:0:0:0:0 | Result | +| main.rs:1118:9:1118:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1118:9:1118:22 | ...::Ok(...) | E | main.rs:1097:5:1098:14 | S2 | +| main.rs:1118:9:1118:22 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1118:20:1118:21 | S1 | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1122:30:1122:34 | input | | file://:0:0:0:0 | Result | +| main.rs:1122:30:1122:34 | input | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1122:30:1122:34 | input | T | main.rs:1122:20:1122:27 | T | +| main.rs:1122:69:1129:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1122:69:1129:5 | { ... } | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1122:69:1129:5 | { ... } | T | main.rs:1122:20:1122:27 | T | +| main.rs:1123:13:1123:17 | value | | main.rs:1122:20:1122:27 | T | +| main.rs:1123:21:1123:25 | input | | file://:0:0:0:0 | Result | +| main.rs:1123:21:1123:25 | input | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1123:21:1123:25 | input | T | main.rs:1122:20:1122:27 | T | +| main.rs:1123:21:1123:26 | TryExpr | | main.rs:1122:20:1122:27 | T | +| main.rs:1124:22:1124:38 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1124:22:1124:38 | ...::Ok(...) | T | main.rs:1122:20:1122:27 | T | +| main.rs:1124:22:1127:10 | ... .and_then(...) | | file://:0:0:0:0 | Result | +| main.rs:1124:33:1124:37 | value | | main.rs:1122:20:1122:27 | T | +| main.rs:1124:53:1127:9 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1124:53:1127:9 | { ... } | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1126:13:1126:34 | ...::Ok::<...>(...) | | file://:0:0:0:0 | Result | +| main.rs:1126:13:1126:34 | ...::Ok::<...>(...) | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1128:9:1128:23 | ...::Err(...) | | file://:0:0:0:0 | Result | +| main.rs:1128:9:1128:23 | ...::Err(...) | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1128:9:1128:23 | ...::Err(...) | T | main.rs:1122:20:1122:27 | T | +| main.rs:1128:21:1128:22 | S1 | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1132:37:1132:52 | try_same_error(...) | | file://:0:0:0:0 | Result | +| main.rs:1132:37:1132:52 | try_same_error(...) | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1132:37:1132:52 | try_same_error(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1136:37:1136:55 | try_convert_error(...) | | file://:0:0:0:0 | Result | +| main.rs:1136:37:1136:55 | try_convert_error(...) | E | main.rs:1097:5:1098:14 | S2 | +| main.rs:1136:37:1136:55 | try_convert_error(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1140:37:1140:49 | try_chained(...) | | file://:0:0:0:0 | Result | +| main.rs:1140:37:1140:49 | try_chained(...) | E | main.rs:1097:5:1098:14 | S2 | +| main.rs:1140:37:1140:49 | try_chained(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1144:37:1144:63 | try_complex(...) | | file://:0:0:0:0 | Result | +| main.rs:1144:37:1144:63 | try_complex(...) | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1144:37:1144:63 | try_complex(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1144:49:1144:62 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1144:49:1144:62 | ...::Ok(...) | E | main.rs:1094:5:1095:14 | S1 | +| main.rs:1144:49:1144:62 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | +| main.rs:1144:60:1144:61 | S1 | | main.rs:1094:5:1095:14 | S1 | +| main.rs:1152:5:1152:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1153:5:1153:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1153:20:1153:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1153:41:1153:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index c8eabda8872..7e89671da54 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -32,6 +32,33 @@ signature module InputSig1 { /** A type parameter. */ class TypeParameter extends Type; + /** + * A type abstraction. I.e., a place in the program where type variables are + * introduced. + * + * Example in C#: + * ```csharp + * class C : D { } + * // ^^^^^^ a type abstraction + * ``` + * + * Example in Rust: + * ```rust + * impl Foo { } + * // ^^^^^^ a type abstraction + * ``` + */ + class TypeAbstraction { + /** Gets a type parameter introduced by this abstraction. */ + TypeParameter getATypeParameter(); + + /** Gets a textual representation of this type abstraction. */ + string toString(); + + /** Gets the location of this type abstraction. */ + Location getLocation(); + } + /** * Gets the unique identifier of type parameter `tp`. * @@ -91,11 +118,9 @@ module Make1 Input1> { predicate getRank = getTypeParameterId/1; } - private int getTypeParameterRank(TypeParameter tp) { - tp = DenseRank::denseRank(result) - } + int getRank(TypeParameter tp) { tp = DenseRank::denseRank(result) } - string encode(TypeParameter tp) { result = getTypeParameterRank(tp).toString() } + string encode(TypeParameter tp) { result = getRank(tp).toString() } bindingset[s] TypeParameter decode(string s) { encode(result) = s } @@ -212,6 +237,17 @@ module Make1 Input1> { TypePath cons(TypeParameter tp, TypePath suffix) { result = singleton(tp).append(suffix) } } + /** A class that represents a type tree. */ + signature class TypeTreeSig { + Type resolveTypeAt(TypePath path); + + /** Gets a textual representation of this type abstraction. */ + string toString(); + + /** Gets the location of this type abstraction. */ + Location getLocation(); + } + /** Provides the input to `Make2`. */ signature module InputSig2 { /** A type mention, for example a type annotation in a local variable declaration. */ @@ -253,6 +289,62 @@ module Make1 Input1> { * ``` */ TypeMention getABaseTypeMention(Type t); + + /** + * Gets a type constraint on the type parameter `tp`, if any. All + * instantiations of the type parameter must satisfy the constraint. + * + * For example, in + * ```csharp + * class GenericClass : IComparable> + * // ^ `tp` + * where T : IComparable { } + * // ^^^^^^^^^^^^^^ `result` + * ``` + * the type parameter `T` has the constraint `IComparable`. + */ + TypeMention getTypeParameterConstraint(TypeParameter tp); + + /** + * Holds if + * - `abs` is a type abstraction that introduces type variables that are + * free in `condition` and `constraint`, + * - and for every instantiation of the type parameters the resulting + * `condition` satisifies the constraint given by `constraint`. + * + * Example in C#: + * ```csharp + * class C : IComparable> { } + * // ^^^ `abs` + * // ^^^^ `condition` + * // ^^^^^^^^^^^^^^^^^ `constraint` + * ``` + * + * Example in Rust: + * ```rust + * impl Trait for Type { } + * // ^^^ `abs` ^^^^^^^^^^^^^^^ `condition` + * // ^^^^^^^^^^^^^ `constraint` + * ``` + * + * Note that the type parameters in `abs` significantly change the meaning + * of type parameters that occur in `condition`. For instance, in the Rust + * example + * ```rust + * fn foo() { } + * ``` + * we have that the type parameter `T` satisfies the constraint `Trait`. But, + * only that specific `T` satisfy the constraint. Hence we would not have + * `T` in `abs`. On the other hand, in the Rust example + * ```rust + * impl Trait for T { } + * ``` + * the constraint `Trait` is in fact satisfied for all types, and we would + * have `T` in `abs` to make it free in the condition. + */ + predicate conditionSatisfiesConstraint( + TypeAbstraction abs, TypeMention condition, TypeMention constraint + ); } module Make2 { @@ -265,8 +357,239 @@ module Make1 Input1> { result = tm.resolveTypeAt(TypePath::nil()) } + signature module IsInstantiationOfSig { + /** + * Holds if `abs` is a type abstraction under which `tm` occurs and if + * `app` is potentially the result of applying the abstraction to type + * some type argument. + */ + predicate potentialInstantiationOf(App app, TypeAbstraction abs, TypeMention tm); + } + + module IsInstantiationOf Input> { + private import Input + + /** Gets the `i`th path in `tm` per some arbitrary order. */ + private TypePath getNthPath(TypeMention tm, int i) { + result = rank[i + 1](TypePath path | exists(tm.resolveTypeAt(path)) | path) + } + + /** + * Holds if `app` is a possible instantiation of `tm` at `path`. That is + * the type at `path` in `tm` is either a type parameter or equal to the + * type at the same path in `app`. + */ + bindingset[app, abs, tm, path] + private predicate satisfiesConcreteTypeAt( + App app, TypeAbstraction abs, TypeMention tm, TypePath path + ) { + exists(Type t | + tm.resolveTypeAt(path) = t and + if t = abs.getATypeParameter() then any() else app.resolveTypeAt(path) = t + ) + } + + private predicate satisfiesConcreteTypesFromIndex( + App app, TypeAbstraction abs, TypeMention tm, int i + ) { + potentialInstantiationOf(app, abs, tm) and + satisfiesConcreteTypeAt(app, abs, tm, getNthPath(tm, i)) and + // Recurse unless we are at the first path + if i = 0 then any() else satisfiesConcreteTypesFromIndex(app, abs, tm, i - 1) + } + + pragma[inline] + private predicate satisfiesConcreteTypes(App app, TypeAbstraction abs, TypeMention tm) { + satisfiesConcreteTypesFromIndex(app, abs, tm, max(int i | exists(getNthPath(tm, i)))) + } + + private TypeParameter getNthTypeParameter(TypeAbstraction abs, int i) { + result = + rank[i + 1](TypeParameter tp | + tp = abs.getATypeParameter() + | + tp order by TypeParameter::getRank(tp) + ) + } + + /** + * Gets the path to the `i`th occurrence of `tp` within `tm` per some + * arbitrary order, if any. + */ + private TypePath getNthTypeParameterPath(TypeMention tm, TypeParameter tp, int i) { + result = rank[i + 1](TypePath path | tp = tm.resolveTypeAt(path) | path) + } + + private predicate typeParametersEqualFromIndex( + App app, TypeAbstraction abs, TypeMention tm, TypeParameter tp, int i + ) { + potentialInstantiationOf(app, abs, tm) and + exists(TypePath path, TypePath nextPath | + path = getNthTypeParameterPath(tm, tp, i) and + nextPath = getNthTypeParameterPath(tm, tp, i - 1) and + app.resolveTypeAt(path) = app.resolveTypeAt(nextPath) and + if i = 1 then any() else typeParametersEqualFromIndex(app, abs, tm, tp, i - 1) + ) + } + + private predicate typeParametersEqual( + App app, TypeAbstraction abs, TypeMention tm, TypeParameter tp + ) { + potentialInstantiationOf(app, abs, tm) and + tp = getNthTypeParameter(abs, _) and + ( + not exists(getNthTypeParameterPath(tm, tp, _)) + or + exists(int n | n = max(int i | exists(getNthTypeParameterPath(tm, tp, i))) | + // If the largest index is 0, then there are no equalities to check as + // the type parameter only occurs once. + if n = 0 then any() else typeParametersEqualFromIndex(app, abs, tm, tp, n) + ) + ) + } + + /** Holds if all the concrete types in `tm` also occur in `app`. */ + private predicate typeParametersHaveEqualInstantiationFromIndex( + App app, TypeAbstraction abs, TypeMention tm, int i + ) { + exists(TypeParameter tp | tp = getNthTypeParameter(abs, i) | + typeParametersEqual(app, abs, tm, tp) and + if i = 0 + then any() + else typeParametersHaveEqualInstantiationFromIndex(app, abs, tm, i - 1) + ) + } + + /** All the places where the same type parameter occurs in `tm` are equal in `app. */ + pragma[inline] + private predicate typeParametersHaveEqualInstantiation( + App app, TypeAbstraction abs, TypeMention tm + ) { + potentialInstantiationOf(app, abs, tm) and + ( + not exists(getNthTypeParameter(abs, _)) + or + exists(int n | n = max(int i | exists(getNthTypeParameter(abs, i))) | + typeParametersHaveEqualInstantiationFromIndex(app, abs, tm, n) + ) + ) + } + + /** + * Holds if `app` is a possible instantiation of `tm`. That is, by making + * appropriate substitutions for the free type parameters in `tm` given by + * `abs`, it is possible to obtain `app`. + * + * For instance, if `A` and `B` are free type parameters we have: + * - `Pair` is an instantiation of `A` + * - `Pair` is an instantiation of `Pair` + * - `Pair` is an instantiation of `Pair` + * - `Pair` is _not_ an instantiation of `Pair` + * - `Pair` is _not_ an instantiation of `Pair` + */ + predicate isInstantiationOf(App app, TypeAbstraction abs, TypeMention tm) { + potentialInstantiationOf(app, abs, tm) and + satisfiesConcreteTypes(app, abs, tm) and + typeParametersHaveEqualInstantiation(app, abs, tm) + } + } + /** Provides logic related to base types. */ private module BaseTypes { + /** + * Holds if, when `tm1` is considered an instantiation of `tm2`, then at + * the type parameter `tp` is has the type `t` at `path`. + * + * For instance, if the type `Map>` is considered an + * instantion of `Map` then it has the type `int` at `K` and the + * type `List` at `V`. + */ + bindingset[tm1, tm2] + predicate instantiatesWith( + TypeMention tm1, TypeMention tm2, TypeParameter tp, TypePath path, Type t + ) { + exists(TypePath prefix | + tm2.resolveTypeAt(prefix) = tp and t = tm1.resolveTypeAt(prefix.append(path)) + ) + } + + module IsInstantiationOfInput implements IsInstantiationOfSig { + pragma[nomagic] + private predicate typeCondition(Type type, TypeAbstraction abs, TypeMention lhs) { + conditionSatisfiesConstraint(abs, lhs, _) and type = resolveTypeMentionRoot(lhs) + } + + pragma[nomagic] + private predicate typeConstraint(Type type, TypeMention rhs) { + conditionSatisfiesConstraint(_, _, rhs) and type = resolveTypeMentionRoot(rhs) + } + + predicate potentialInstantiationOf( + TypeMention condition, TypeAbstraction abs, TypeMention constraint + ) { + exists(Type type | + typeConstraint(type, condition) and typeCondition(type, abs, constraint) + ) + } + } + + // The type mention `condition` satisfies `constraint` with the type `t` at the path `path`. + predicate conditionSatisfiesConstraintTypeAt( + TypeAbstraction abs, TypeMention condition, TypeMention constraint, TypePath path, Type t + ) { + // base case + conditionSatisfiesConstraint(abs, condition, constraint) and + constraint.resolveTypeAt(path) = t + or + // recursive case + exists(TypeAbstraction midAbs, TypeMention midSup, TypeMention midSub | + conditionSatisfiesConstraint(abs, condition, midSup) and + // NOTE: `midAbs` describe the free type variables in `midSub`, hence + // we use that for instantiation check. + IsInstantiationOf::isInstantiationOf(midSup, midAbs, + midSub) and + ( + conditionSatisfiesConstraintTypeAt(midAbs, midSub, constraint, path, t) and + not t = abs.getATypeParameter() + or + exists(TypePath prefix, TypePath suffix, TypeParameter tp | + tp = abs.getATypeParameter() and + conditionSatisfiesConstraintTypeAt(midAbs, midSub, constraint, prefix, tp) and + instantiatesWith(midSup, midSub, tp, suffix, t) and + path = prefix.append(suffix) + ) + ) + ) + } + + /** + * Holds if its possible for a type with `conditionRoot` at the root to + * satisfy a constraint with `constraintRoot` at the root through `abs`, + * `condition`, and `constraint`. + */ + predicate rootTypesSatisfaction( + Type conditionRoot, Type constraintRoot, TypeAbstraction abs, TypeMention condition, + TypeMention constraint + ) { + conditionSatisfiesConstraintTypeAt(abs, condition, constraint, _, _) and + conditionRoot = resolveTypeMentionRoot(condition) and + constraintRoot = resolveTypeMentionRoot(constraint) + } + + /** + * Gets the number of ways in which it is possible for a type with + * `conditionRoot` at the root to satisfy a constraint with + * `constraintRoot` at the root. + */ + int countConstraintImplementations(Type conditionRoot, Type constraintRoot) { + result = + strictcount(TypeAbstraction abs, TypeMention tm, TypeMention constraint | + rootTypesSatisfaction(conditionRoot, constraintRoot, abs, tm, constraint) + | + constraint + ) + } + /** * Holds if `baseMention` is a (transitive) base type mention of `sub`, * and `t` is mentioned (implicitly) at `path` inside `baseMention`. For @@ -528,24 +851,19 @@ module Make1 Input1> { * Holds if inferring types at `a` might depend on the type at `path` of * `apos` having `base` as a transitive base type. */ - private predicate relevantAccess(Access a, AccessPosition apos, TypePath path, Type base) { + private predicate relevantAccess(Access a, AccessPosition apos, Type base) { exists(Declaration target, DeclarationPosition dpos | adjustedAccessType(a, apos, target, _, _) and - accessDeclarationPositionMatch(apos, dpos) - | - path.isEmpty() and declarationBaseType(target, dpos, base, _, _) - or - typeParameterConstraintHasTypeParameter(target, dpos, path, _, base, _, _) + accessDeclarationPositionMatch(apos, dpos) and + declarationBaseType(target, dpos, base, _, _) ) } pragma[nomagic] - private Type inferTypeAt( - Access a, AccessPosition apos, TypePath prefix, TypeParameter tp, TypePath suffix - ) { - relevantAccess(a, apos, prefix, _) and + private Type inferTypeAt(Access a, AccessPosition apos, TypeParameter tp, TypePath suffix) { + relevantAccess(a, apos, _) and exists(TypePath path0 | - result = a.getInferredType(apos, prefix.append(path0)) and + result = a.getInferredType(apos, path0) and path0.isCons(tp, suffix) ) } @@ -581,24 +899,128 @@ module Make1 Input1> { * `Base>` | `"T2.T1"` | ``C`1`` * `Base>` | `"T2.T1.T1"` | `int` */ - pragma[nomagic] predicate hasBaseTypeMention( - Access a, AccessPosition apos, TypePath pathToSub, TypeMention baseMention, TypePath path, - Type t + Access a, AccessPosition apos, TypeMention baseMention, TypePath path, Type t ) { - relevantAccess(a, apos, pathToSub, resolveTypeMentionRoot(baseMention)) and - exists(Type sub | sub = a.getInferredType(apos, pathToSub) | + relevantAccess(a, apos, resolveTypeMentionRoot(baseMention)) and + exists(Type sub | sub = a.getInferredType(apos, TypePath::nil()) | baseTypeMentionHasNonTypeParameterAt(sub, baseMention, path, t) or exists(TypePath prefix, TypePath suffix, TypeParameter tp | baseTypeMentionHasTypeParameterAt(sub, baseMention, prefix, tp) and - t = inferTypeAt(a, apos, pathToSub, tp, suffix) and + t = inferTypeAt(a, apos, tp, suffix) and path = prefix.append(suffix) ) ) } } + private module AccessConstraint { + private newtype TTRelevantAccess = + TRelevantAccess(Access a, AccessPosition apos, TypePath path, Type constraint) { + exists(DeclarationPosition dpos | + accessDeclarationPositionMatch(apos, dpos) and + typeParameterConstraintHasTypeParameter(a.getTarget(), dpos, path, _, constraint, _, _) + ) + } + + /** + * If the access `a` for `apos` and `path` has the inferred root type + * `type` and type inference requires it to satisfy the constraint + * `constraint`. + */ + private class RelevantAccess extends TTRelevantAccess { + Access a; + AccessPosition apos; + TypePath path; + Type constraint0; + + RelevantAccess() { this = TRelevantAccess(a, apos, path, constraint0) } + + Type resolveTypeAt(TypePath suffix) { + a.getInferredType(apos, path.append(suffix)) = result + } + + /** Holds if this relevant access has the type `type` and should satisfy `constraint`. */ + predicate hasTypeConstraint(Type type, Type constraint) { + type = a.getInferredType(apos, path) and + constraint = constraint0 + } + + string toString() { + result = a.toString() + ", " + apos.toString() + ", " + path.toString() + } + + Location getLocation() { result = a.getLocation() } + } + + private module IsInstantiationOfInput implements IsInstantiationOfSig { + predicate potentialInstantiationOf( + RelevantAccess at, TypeAbstraction abs, TypeMention cond + ) { + exists(Type constraint, Type type | + at.hasTypeConstraint(type, constraint) and + rootTypesSatisfaction(type, constraint, abs, cond, _) and + // We only need to check instantiations where there are multiple candidates. + countConstraintImplementations(type, constraint) > 1 + ) + } + } + + /** + * Holds if `at` satisfies `constraint` through `abs`, `sub`, and `constraintMention`. + */ + private predicate hasConstraintMention( + RelevantAccess at, TypeAbstraction abs, TypeMention sub, TypeMention constraintMention + ) { + exists(Type type, Type constraint | at.hasTypeConstraint(type, constraint) | + not exists(countConstraintImplementations(type, constraint)) and + conditionSatisfiesConstraintTypeAt(abs, sub, constraintMention, _, _) and + resolveTypeMentionRoot(sub) = abs.getATypeParameter() and + constraint = resolveTypeMentionRoot(constraintMention) + or + countConstraintImplementations(type, constraint) > 0 and + rootTypesSatisfaction(type, constraint, abs, sub, constraintMention) and + // When there are multiple ways the type could implement the + // constraint we need to find the right implementation, which is the + // one where the type instantiates the precondition. + if countConstraintImplementations(type, constraint) > 1 + then + IsInstantiationOf::isInstantiationOf(at, abs, + sub) + else any() + ) + } + + /** + * Holds if the type at `a`, `apos`, and `path` satisfies the constraint + * `constraint` with the type `t` at `path`. + */ + pragma[nomagic] + predicate satisfiesConstraintTypeMention( + Access a, AccessPosition apos, TypePath prefix, Type constraint, TypePath path, Type t + ) { + exists( + RelevantAccess at, TypeAbstraction abs, TypeMention sub, Type t0, TypePath prefix0, + TypeMention constraintMention + | + at = TRelevantAccess(a, apos, prefix, constraint) and + hasConstraintMention(at, abs, sub, constraintMention) and + conditionSatisfiesConstraintTypeAt(abs, sub, constraintMention, prefix0, t0) and + ( + not t0 = abs.getATypeParameter() and t = t0 and path = prefix0 + or + t0 = abs.getATypeParameter() and + exists(TypePath path3, TypePath suffix | + sub.resolveTypeAt(path3) = t0 and + at.resolveTypeAt(path3.append(suffix)) = t and + path = prefix0.append(suffix) + ) + ) + ) + } + } + /** * Holds if the type of `a` at `apos` has the base type `base`, and when * viewed as an element of that type has the type `t` at `path`. @@ -608,7 +1030,7 @@ module Make1 Input1> { Access a, AccessPosition apos, Type base, TypePath path, Type t ) { exists(TypeMention tm | - AccessBaseType::hasBaseTypeMention(a, apos, TypePath::nil(), tm, path, t) and + AccessBaseType::hasBaseTypeMention(a, apos, tm, path, t) and base = resolveTypeMentionRoot(tm) ) } @@ -712,7 +1134,7 @@ module Make1 Input1> { tp1 != tp2 and tp1 = target.getDeclaredType(dpos, path1) and exists(TypeMention tm | - tm = getABaseTypeMention(tp1) and + tm = getTypeParameterConstraint(tp1) and tm.resolveTypeAt(path2) = tp2 and constraint = resolveTypeMentionRoot(tm) ) @@ -725,13 +1147,14 @@ module Make1 Input1> { not exists(getTypeArgument(a, target, tp, _)) and target = a.getTarget() and exists( - TypeMention base, AccessPosition apos, DeclarationPosition dpos, TypePath pathToTp, + Type constraint, AccessPosition apos, DeclarationPosition dpos, TypePath pathToTp, TypePath pathToTp2 | accessDeclarationPositionMatch(apos, dpos) and - typeParameterConstraintHasTypeParameter(target, dpos, pathToTp2, _, - resolveTypeMentionRoot(base), pathToTp, tp) and - AccessBaseType::hasBaseTypeMention(a, apos, pathToTp2, base, pathToTp.append(path), t) + typeParameterConstraintHasTypeParameter(target, dpos, pathToTp2, _, constraint, pathToTp, + tp) and + AccessConstraint::satisfiesConstraintTypeMention(a, apos, pathToTp2, constraint, + pathToTp.append(path), t) ) } @@ -749,7 +1172,7 @@ module Make1 Input1> { // We can infer the type of `tp` by going up the type hiearchy baseTypeMatch(a, target, path, t, tp) or - // We can infer the type of `tp` by a type bound + // We can infer the type of `tp` by a type constraint typeConstraintBaseTypeMatch(a, target, path, t, tp) } @@ -811,7 +1234,7 @@ module Make1 Input1> { } } - /** Provides consitency checks. */ + /** Provides consistency checks. */ module Consistency { query predicate missingTypeParameterId(TypeParameter tp) { not exists(getTypeParameterId(tp)) From 4513106a354f331be2174fe151b438558f798098 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 29 Apr 2025 13:22:41 +0200 Subject: [PATCH 197/656] Rust: Add type inference test for inherent implementation shadowing trait implementation --- .../PathResolutionConsistency.expected | 5 + .../test/library-tests/type-inference/main.rs | 41 + .../type-inference/type-inference.expected | 1852 +++++++++-------- 3 files changed, 982 insertions(+), 916 deletions(-) create mode 100644 rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..a16a01ba2e9 --- /dev/null +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,5 @@ +multipleMethodCallTargets +| main.rs:401:26:401:42 | x.common_method() | main.rs:376:9:379:9 | fn common_method | +| main.rs:401:26:401:42 | x.common_method() | main.rs:388:9:391:9 | fn common_method | +| main.rs:402:26:402:44 | x.common_method_2() | main.rs:381:9:384:9 | fn common_method_2 | +| main.rs:402:26:402:44 | x.common_method_2() | main.rs:393:9:396:9 | fn common_method_2 | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 84518bfd610..bdaa7f94e51 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -362,6 +362,47 @@ mod method_non_parametric_trait_impl { } } +mod impl_overlap { + #[derive(Debug, Clone, Copy)] + struct S1; + + trait OverlappingTrait { + fn common_method(self) -> S1; + + fn common_method_2(self, s1: S1) -> S1; + } + + impl OverlappingTrait for S1 { + // ::common_method + fn common_method(self) -> S1 { + panic!("not called"); + } + + // ::common_method_2 + fn common_method_2(self, s1: S1) -> S1 { + panic!("not called"); + } + } + + impl S1 { + // S1::common_method + fn common_method(self) -> S1 { + self + } + + // S1::common_method_2 + fn common_method_2(self) -> S1 { + self + } + } + + pub fn f() { + let x = S1; + println!("{:?}", x.common_method()); // $ method=S1::common_method SPURIOUS: method=::common_method + println!("{:?}", x.common_method_2()); // $ method=S1::common_method_2 SPURIOUS: method=::common_method_2 + } +} + mod type_parameter_bounds { use std::fmt::Debug; diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 71681743f3f..c2625e0c98e 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -458,919 +458,939 @@ inferType | main.rs:361:17:361:33 | convert_to(...) | | main.rs:155:5:156:14 | S1 | | main.rs:361:28:361:32 | thing | | main.rs:144:5:147:5 | MyThing | | main.rs:361:28:361:32 | thing | A | main.rs:155:5:156:14 | S1 | -| main.rs:378:19:378:22 | SelfParam | | main.rs:376:5:379:5 | Self [trait FirstTrait] | -| main.rs:383:19:383:22 | SelfParam | | main.rs:381:5:384:5 | Self [trait SecondTrait] | -| main.rs:386:64:386:64 | x | | main.rs:386:45:386:61 | T | -| main.rs:388:13:388:14 | s1 | | main.rs:386:35:386:42 | I | -| main.rs:388:18:388:18 | x | | main.rs:386:45:386:61 | T | -| main.rs:388:18:388:27 | x.method() | | main.rs:386:35:386:42 | I | -| main.rs:389:26:389:27 | s1 | | main.rs:386:35:386:42 | I | -| main.rs:392:65:392:65 | x | | main.rs:392:46:392:62 | T | -| main.rs:394:13:394:14 | s2 | | main.rs:392:36:392:43 | I | -| main.rs:394:18:394:18 | x | | main.rs:392:46:392:62 | T | -| main.rs:394:18:394:27 | x.method() | | main.rs:392:36:392:43 | I | -| main.rs:395:26:395:27 | s2 | | main.rs:392:36:392:43 | I | -| main.rs:398:49:398:49 | x | | main.rs:398:30:398:46 | T | -| main.rs:399:13:399:13 | s | | main.rs:368:5:369:14 | S1 | -| main.rs:399:17:399:17 | x | | main.rs:398:30:398:46 | T | -| main.rs:399:17:399:26 | x.method() | | main.rs:368:5:369:14 | S1 | -| main.rs:400:26:400:26 | s | | main.rs:368:5:369:14 | S1 | -| main.rs:403:53:403:53 | x | | main.rs:403:34:403:50 | T | -| main.rs:404:13:404:13 | s | | main.rs:368:5:369:14 | S1 | -| main.rs:404:17:404:17 | x | | main.rs:403:34:403:50 | T | -| main.rs:404:17:404:26 | x.method() | | main.rs:368:5:369:14 | S1 | -| main.rs:405:26:405:26 | s | | main.rs:368:5:369:14 | S1 | -| main.rs:409:16:409:19 | SelfParam | | main.rs:408:5:412:5 | Self [trait Pair] | -| main.rs:411:16:411:19 | SelfParam | | main.rs:408:5:412:5 | Self [trait Pair] | -| main.rs:414:58:414:58 | x | | main.rs:414:41:414:55 | T | -| main.rs:414:64:414:64 | y | | main.rs:414:41:414:55 | T | -| main.rs:416:13:416:14 | s1 | | main.rs:368:5:369:14 | S1 | -| main.rs:416:18:416:18 | x | | main.rs:414:41:414:55 | T | -| main.rs:416:18:416:24 | x.fst() | | main.rs:368:5:369:14 | S1 | -| main.rs:417:13:417:14 | s2 | | main.rs:371:5:372:14 | S2 | -| main.rs:417:18:417:18 | y | | main.rs:414:41:414:55 | T | -| main.rs:417:18:417:24 | y.snd() | | main.rs:371:5:372:14 | S2 | -| main.rs:418:32:418:33 | s1 | | main.rs:368:5:369:14 | S1 | -| main.rs:418:36:418:37 | s2 | | main.rs:371:5:372:14 | S2 | -| main.rs:421:69:421:69 | x | | main.rs:421:52:421:66 | T | -| main.rs:421:75:421:75 | y | | main.rs:421:52:421:66 | T | -| main.rs:423:13:423:14 | s1 | | main.rs:368:5:369:14 | S1 | -| main.rs:423:18:423:18 | x | | main.rs:421:52:421:66 | T | -| main.rs:423:18:423:24 | x.fst() | | main.rs:368:5:369:14 | S1 | -| main.rs:424:13:424:14 | s2 | | main.rs:421:41:421:49 | T2 | -| main.rs:424:18:424:18 | y | | main.rs:421:52:421:66 | T | -| main.rs:424:18:424:24 | y.snd() | | main.rs:421:41:421:49 | T2 | -| main.rs:425:32:425:33 | s1 | | main.rs:368:5:369:14 | S1 | -| main.rs:425:36:425:37 | s2 | | main.rs:421:41:421:49 | T2 | -| main.rs:441:15:441:18 | SelfParam | | main.rs:440:5:449:5 | Self [trait MyTrait] | -| main.rs:443:15:443:18 | SelfParam | | main.rs:440:5:449:5 | Self [trait MyTrait] | -| main.rs:446:9:448:9 | { ... } | | main.rs:440:19:440:19 | A | -| main.rs:447:13:447:16 | self | | main.rs:440:5:449:5 | Self [trait MyTrait] | -| main.rs:447:13:447:21 | self.m1() | | main.rs:440:19:440:19 | A | -| main.rs:452:43:452:43 | x | | main.rs:452:26:452:40 | T2 | -| main.rs:452:56:454:5 | { ... } | | main.rs:452:22:452:23 | T1 | -| main.rs:453:9:453:9 | x | | main.rs:452:26:452:40 | T2 | -| main.rs:453:9:453:14 | x.m1() | | main.rs:452:22:452:23 | T1 | -| main.rs:457:49:457:49 | x | | main.rs:430:5:433:5 | MyThing | -| main.rs:457:49:457:49 | x | T | main.rs:457:32:457:46 | T2 | -| main.rs:457:71:459:5 | { ... } | | main.rs:457:28:457:29 | T1 | -| main.rs:458:9:458:9 | x | | main.rs:430:5:433:5 | MyThing | -| main.rs:458:9:458:9 | x | T | main.rs:457:32:457:46 | T2 | -| main.rs:458:9:458:11 | x.a | | main.rs:457:32:457:46 | T2 | -| main.rs:458:9:458:16 | ... .m1() | | main.rs:457:28:457:29 | T1 | -| main.rs:462:15:462:18 | SelfParam | | main.rs:430:5:433:5 | MyThing | -| main.rs:462:15:462:18 | SelfParam | T | main.rs:461:10:461:10 | T | -| main.rs:462:26:464:9 | { ... } | | main.rs:461:10:461:10 | T | -| main.rs:463:13:463:16 | self | | main.rs:430:5:433:5 | MyThing | -| main.rs:463:13:463:16 | self | T | main.rs:461:10:461:10 | T | -| main.rs:463:13:463:18 | self.a | | main.rs:461:10:461:10 | T | -| main.rs:468:13:468:13 | x | | main.rs:430:5:433:5 | MyThing | -| main.rs:468:13:468:13 | x | T | main.rs:435:5:436:14 | S1 | -| main.rs:468:17:468:33 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | -| main.rs:468:17:468:33 | MyThing {...} | T | main.rs:435:5:436:14 | S1 | -| main.rs:468:30:468:31 | S1 | | main.rs:435:5:436:14 | S1 | -| main.rs:469:13:469:13 | y | | main.rs:430:5:433:5 | MyThing | -| main.rs:469:13:469:13 | y | T | main.rs:437:5:438:14 | S2 | -| main.rs:469:17:469:33 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | -| main.rs:469:17:469:33 | MyThing {...} | T | main.rs:437:5:438:14 | S2 | -| main.rs:469:30:469:31 | S2 | | main.rs:437:5:438:14 | S2 | -| main.rs:471:26:471:26 | x | | main.rs:430:5:433:5 | MyThing | -| main.rs:471:26:471:26 | x | T | main.rs:435:5:436:14 | S1 | -| main.rs:471:26:471:31 | x.m1() | | main.rs:435:5:436:14 | S1 | -| main.rs:472:26:472:26 | y | | main.rs:430:5:433:5 | MyThing | -| main.rs:472:26:472:26 | y | T | main.rs:437:5:438:14 | S2 | -| main.rs:472:26:472:31 | y.m1() | | main.rs:437:5:438:14 | S2 | -| main.rs:474:13:474:13 | x | | main.rs:430:5:433:5 | MyThing | -| main.rs:474:13:474:13 | x | T | main.rs:435:5:436:14 | S1 | -| main.rs:474:17:474:33 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | -| main.rs:474:17:474:33 | MyThing {...} | T | main.rs:435:5:436:14 | S1 | -| main.rs:474:30:474:31 | S1 | | main.rs:435:5:436:14 | S1 | -| main.rs:475:13:475:13 | y | | main.rs:430:5:433:5 | MyThing | -| main.rs:475:13:475:13 | y | T | main.rs:437:5:438:14 | S2 | -| main.rs:475:17:475:33 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | -| main.rs:475:17:475:33 | MyThing {...} | T | main.rs:437:5:438:14 | S2 | -| main.rs:475:30:475:31 | S2 | | main.rs:437:5:438:14 | S2 | -| main.rs:477:26:477:26 | x | | main.rs:430:5:433:5 | MyThing | -| main.rs:477:26:477:26 | x | T | main.rs:435:5:436:14 | S1 | -| main.rs:477:26:477:31 | x.m2() | | main.rs:435:5:436:14 | S1 | -| main.rs:478:26:478:26 | y | | main.rs:430:5:433:5 | MyThing | -| main.rs:478:26:478:26 | y | T | main.rs:437:5:438:14 | S2 | -| main.rs:478:26:478:31 | y.m2() | | main.rs:437:5:438:14 | S2 | -| main.rs:480:13:480:14 | x2 | | main.rs:430:5:433:5 | MyThing | -| main.rs:480:13:480:14 | x2 | T | main.rs:435:5:436:14 | S1 | -| main.rs:480:18:480:34 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | -| main.rs:480:18:480:34 | MyThing {...} | T | main.rs:435:5:436:14 | S1 | -| main.rs:480:31:480:32 | S1 | | main.rs:435:5:436:14 | S1 | -| main.rs:481:13:481:14 | y2 | | main.rs:430:5:433:5 | MyThing | -| main.rs:481:13:481:14 | y2 | T | main.rs:437:5:438:14 | S2 | -| main.rs:481:18:481:34 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | -| main.rs:481:18:481:34 | MyThing {...} | T | main.rs:437:5:438:14 | S2 | -| main.rs:481:31:481:32 | S2 | | main.rs:437:5:438:14 | S2 | -| main.rs:483:26:483:42 | call_trait_m1(...) | | main.rs:435:5:436:14 | S1 | -| main.rs:483:40:483:41 | x2 | | main.rs:430:5:433:5 | MyThing | -| main.rs:483:40:483:41 | x2 | T | main.rs:435:5:436:14 | S1 | -| main.rs:484:26:484:42 | call_trait_m1(...) | | main.rs:437:5:438:14 | S2 | -| main.rs:484:40:484:41 | y2 | | main.rs:430:5:433:5 | MyThing | -| main.rs:484:40:484:41 | y2 | T | main.rs:437:5:438:14 | S2 | -| main.rs:486:13:486:14 | x3 | | main.rs:430:5:433:5 | MyThing | -| main.rs:486:13:486:14 | x3 | T | main.rs:430:5:433:5 | MyThing | -| main.rs:486:13:486:14 | x3 | T.T | main.rs:435:5:436:14 | S1 | -| main.rs:486:18:488:9 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | -| main.rs:486:18:488:9 | MyThing {...} | T | main.rs:430:5:433:5 | MyThing | -| main.rs:486:18:488:9 | MyThing {...} | T.T | main.rs:435:5:436:14 | S1 | -| main.rs:487:16:487:32 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | -| main.rs:487:16:487:32 | MyThing {...} | T | main.rs:435:5:436:14 | S1 | -| main.rs:487:29:487:30 | S1 | | main.rs:435:5:436:14 | S1 | -| main.rs:489:13:489:14 | y3 | | main.rs:430:5:433:5 | MyThing | -| main.rs:489:13:489:14 | y3 | T | main.rs:430:5:433:5 | MyThing | -| main.rs:489:13:489:14 | y3 | T.T | main.rs:437:5:438:14 | S2 | -| main.rs:489:18:491:9 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | -| main.rs:489:18:491:9 | MyThing {...} | T | main.rs:430:5:433:5 | MyThing | -| main.rs:489:18:491:9 | MyThing {...} | T.T | main.rs:437:5:438:14 | S2 | -| main.rs:490:16:490:32 | MyThing {...} | | main.rs:430:5:433:5 | MyThing | -| main.rs:490:16:490:32 | MyThing {...} | T | main.rs:437:5:438:14 | S2 | -| main.rs:490:29:490:30 | S2 | | main.rs:437:5:438:14 | S2 | -| main.rs:493:13:493:13 | a | | main.rs:435:5:436:14 | S1 | -| main.rs:493:17:493:39 | call_trait_thing_m1(...) | | main.rs:435:5:436:14 | S1 | -| main.rs:493:37:493:38 | x3 | | main.rs:430:5:433:5 | MyThing | -| main.rs:493:37:493:38 | x3 | T | main.rs:430:5:433:5 | MyThing | -| main.rs:493:37:493:38 | x3 | T.T | main.rs:435:5:436:14 | S1 | -| main.rs:494:26:494:26 | a | | main.rs:435:5:436:14 | S1 | -| main.rs:495:13:495:13 | b | | main.rs:437:5:438:14 | S2 | -| main.rs:495:17:495:39 | call_trait_thing_m1(...) | | main.rs:437:5:438:14 | S2 | -| main.rs:495:37:495:38 | y3 | | main.rs:430:5:433:5 | MyThing | -| main.rs:495:37:495:38 | y3 | T | main.rs:430:5:433:5 | MyThing | -| main.rs:495:37:495:38 | y3 | T.T | main.rs:437:5:438:14 | S2 | -| main.rs:496:26:496:26 | b | | main.rs:437:5:438:14 | S2 | -| main.rs:507:19:507:22 | SelfParam | | main.rs:501:5:504:5 | Wrapper | -| main.rs:507:19:507:22 | SelfParam | A | main.rs:506:10:506:10 | A | -| main.rs:507:30:509:9 | { ... } | | main.rs:506:10:506:10 | A | -| main.rs:508:13:508:16 | self | | main.rs:501:5:504:5 | Wrapper | -| main.rs:508:13:508:16 | self | A | main.rs:506:10:506:10 | A | -| main.rs:508:13:508:22 | self.field | | main.rs:506:10:506:10 | A | -| main.rs:516:15:516:18 | SelfParam | | main.rs:512:5:526:5 | Self [trait MyTrait] | -| main.rs:518:15:518:18 | SelfParam | | main.rs:512:5:526:5 | Self [trait MyTrait] | -| main.rs:522:9:525:9 | { ... } | | main.rs:513:9:513:28 | AssociatedType | -| main.rs:523:13:523:16 | self | | main.rs:512:5:526:5 | Self [trait MyTrait] | -| main.rs:523:13:523:21 | self.m1() | | main.rs:513:9:513:28 | AssociatedType | -| main.rs:524:13:524:43 | ...::default(...) | | main.rs:513:9:513:28 | AssociatedType | -| main.rs:532:19:532:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:532:19:532:23 | SelfParam | &T | main.rs:528:5:538:5 | Self [trait MyTraitAssoc2] | -| main.rs:532:26:532:26 | a | | main.rs:532:16:532:16 | A | -| main.rs:534:22:534:26 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:534:22:534:26 | SelfParam | &T | main.rs:528:5:538:5 | Self [trait MyTraitAssoc2] | -| main.rs:534:29:534:29 | a | | main.rs:534:19:534:19 | A | -| main.rs:534:35:534:35 | b | | main.rs:534:19:534:19 | A | -| main.rs:534:75:537:9 | { ... } | | main.rs:529:9:529:52 | GenericAssociatedType | -| main.rs:535:13:535:16 | self | | file://:0:0:0:0 | & | -| main.rs:535:13:535:16 | self | &T | main.rs:528:5:538:5 | Self [trait MyTraitAssoc2] | -| main.rs:535:13:535:23 | self.put(...) | | main.rs:529:9:529:52 | GenericAssociatedType | -| main.rs:535:22:535:22 | a | | main.rs:534:19:534:19 | A | -| main.rs:536:13:536:16 | self | | file://:0:0:0:0 | & | -| main.rs:536:13:536:16 | self | &T | main.rs:528:5:538:5 | Self [trait MyTraitAssoc2] | -| main.rs:536:13:536:23 | self.put(...) | | main.rs:529:9:529:52 | GenericAssociatedType | -| main.rs:536:22:536:22 | b | | main.rs:534:19:534:19 | A | -| main.rs:545:21:545:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:545:21:545:25 | SelfParam | &T | main.rs:540:5:550:5 | Self [trait TraitMultipleAssoc] | -| main.rs:547:20:547:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:547:20:547:24 | SelfParam | &T | main.rs:540:5:550:5 | Self [trait TraitMultipleAssoc] | -| main.rs:549:20:549:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:549:20:549:24 | SelfParam | &T | main.rs:540:5:550:5 | Self [trait TraitMultipleAssoc] | -| main.rs:565:15:565:18 | SelfParam | | main.rs:552:5:553:13 | S | -| main.rs:565:45:567:9 | { ... } | | main.rs:558:5:559:14 | AT | -| main.rs:566:13:566:14 | AT | | main.rs:558:5:559:14 | AT | -| main.rs:575:19:575:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:575:19:575:23 | SelfParam | &T | main.rs:552:5:553:13 | S | -| main.rs:575:26:575:26 | a | | main.rs:575:16:575:16 | A | -| main.rs:575:46:577:9 | { ... } | | main.rs:501:5:504:5 | Wrapper | -| main.rs:575:46:577:9 | { ... } | A | main.rs:575:16:575:16 | A | -| main.rs:576:13:576:32 | Wrapper {...} | | main.rs:501:5:504:5 | Wrapper | -| main.rs:576:13:576:32 | Wrapper {...} | A | main.rs:575:16:575:16 | A | -| main.rs:576:30:576:30 | a | | main.rs:575:16:575:16 | A | -| main.rs:584:15:584:18 | SelfParam | | main.rs:555:5:556:14 | S2 | -| main.rs:584:45:586:9 | { ... } | | main.rs:501:5:504:5 | Wrapper | -| main.rs:584:45:586:9 | { ... } | A | main.rs:555:5:556:14 | S2 | -| main.rs:585:13:585:35 | Wrapper {...} | | main.rs:501:5:504:5 | Wrapper | -| main.rs:585:13:585:35 | Wrapper {...} | A | main.rs:555:5:556:14 | S2 | -| main.rs:585:30:585:33 | self | | main.rs:555:5:556:14 | S2 | -| main.rs:591:30:593:9 | { ... } | | main.rs:501:5:504:5 | Wrapper | -| main.rs:591:30:593:9 | { ... } | A | main.rs:555:5:556:14 | S2 | -| main.rs:592:13:592:33 | Wrapper {...} | | main.rs:501:5:504:5 | Wrapper | -| main.rs:592:13:592:33 | Wrapper {...} | A | main.rs:555:5:556:14 | S2 | -| main.rs:592:30:592:31 | S2 | | main.rs:555:5:556:14 | S2 | -| main.rs:597:22:597:26 | thing | | main.rs:597:10:597:19 | T | -| main.rs:598:9:598:13 | thing | | main.rs:597:10:597:19 | T | -| main.rs:605:21:605:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:605:21:605:25 | SelfParam | &T | main.rs:558:5:559:14 | AT | -| main.rs:605:34:607:9 | { ... } | | main.rs:558:5:559:14 | AT | -| main.rs:606:13:606:14 | AT | | main.rs:558:5:559:14 | AT | -| main.rs:609:20:609:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:609:20:609:24 | SelfParam | &T | main.rs:558:5:559:14 | AT | -| main.rs:609:43:611:9 | { ... } | | main.rs:552:5:553:13 | S | -| main.rs:610:13:610:13 | S | | main.rs:552:5:553:13 | S | -| main.rs:613:20:613:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:613:20:613:24 | SelfParam | &T | main.rs:558:5:559:14 | AT | -| main.rs:613:43:615:9 | { ... } | | main.rs:555:5:556:14 | S2 | -| main.rs:614:13:614:14 | S2 | | main.rs:555:5:556:14 | S2 | -| main.rs:619:13:619:14 | x1 | | main.rs:552:5:553:13 | S | -| main.rs:619:18:619:18 | S | | main.rs:552:5:553:13 | S | -| main.rs:621:26:621:27 | x1 | | main.rs:552:5:553:13 | S | -| main.rs:621:26:621:32 | x1.m1() | | main.rs:558:5:559:14 | AT | -| main.rs:623:13:623:14 | x2 | | main.rs:552:5:553:13 | S | -| main.rs:623:18:623:18 | S | | main.rs:552:5:553:13 | S | -| main.rs:625:13:625:13 | y | | main.rs:558:5:559:14 | AT | -| main.rs:625:17:625:18 | x2 | | main.rs:552:5:553:13 | S | -| main.rs:625:17:625:23 | x2.m2() | | main.rs:558:5:559:14 | AT | -| main.rs:626:26:626:26 | y | | main.rs:558:5:559:14 | AT | -| main.rs:628:13:628:14 | x3 | | main.rs:552:5:553:13 | S | -| main.rs:628:18:628:18 | S | | main.rs:552:5:553:13 | S | -| main.rs:630:26:630:27 | x3 | | main.rs:552:5:553:13 | S | -| main.rs:630:26:630:34 | x3.put(...) | | main.rs:501:5:504:5 | Wrapper | -| main.rs:633:26:633:27 | x3 | | main.rs:552:5:553:13 | S | -| main.rs:635:20:635:20 | S | | main.rs:552:5:553:13 | S | -| main.rs:638:13:638:14 | x5 | | main.rs:555:5:556:14 | S2 | -| main.rs:638:18:638:19 | S2 | | main.rs:555:5:556:14 | S2 | -| main.rs:639:26:639:27 | x5 | | main.rs:555:5:556:14 | S2 | -| main.rs:639:26:639:32 | x5.m1() | | main.rs:501:5:504:5 | Wrapper | -| main.rs:639:26:639:32 | x5.m1() | A | main.rs:555:5:556:14 | S2 | -| main.rs:640:13:640:14 | x6 | | main.rs:555:5:556:14 | S2 | -| main.rs:640:18:640:19 | S2 | | main.rs:555:5:556:14 | S2 | -| main.rs:641:26:641:27 | x6 | | main.rs:555:5:556:14 | S2 | -| main.rs:641:26:641:32 | x6.m2() | | main.rs:501:5:504:5 | Wrapper | -| main.rs:641:26:641:32 | x6.m2() | A | main.rs:555:5:556:14 | S2 | -| main.rs:643:13:643:22 | assoc_zero | | main.rs:558:5:559:14 | AT | -| main.rs:643:26:643:27 | AT | | main.rs:558:5:559:14 | AT | -| main.rs:643:26:643:38 | AT.get_zero() | | main.rs:558:5:559:14 | AT | -| main.rs:644:13:644:21 | assoc_one | | main.rs:552:5:553:13 | S | -| main.rs:644:25:644:26 | AT | | main.rs:558:5:559:14 | AT | -| main.rs:644:25:644:36 | AT.get_one() | | main.rs:552:5:553:13 | S | -| main.rs:645:13:645:21 | assoc_two | | main.rs:555:5:556:14 | S2 | -| main.rs:645:25:645:26 | AT | | main.rs:558:5:559:14 | AT | -| main.rs:645:25:645:36 | AT.get_two() | | main.rs:555:5:556:14 | S2 | -| main.rs:662:15:662:18 | SelfParam | | main.rs:650:5:654:5 | MyEnum | -| main.rs:662:15:662:18 | SelfParam | A | main.rs:661:10:661:10 | T | -| main.rs:662:26:667:9 | { ... } | | main.rs:661:10:661:10 | T | -| main.rs:663:13:666:13 | match self { ... } | | main.rs:661:10:661:10 | T | -| main.rs:663:19:663:22 | self | | main.rs:650:5:654:5 | MyEnum | -| main.rs:663:19:663:22 | self | A | main.rs:661:10:661:10 | T | -| main.rs:664:28:664:28 | a | | main.rs:661:10:661:10 | T | -| main.rs:664:34:664:34 | a | | main.rs:661:10:661:10 | T | -| main.rs:665:30:665:30 | a | | main.rs:661:10:661:10 | T | -| main.rs:665:37:665:37 | a | | main.rs:661:10:661:10 | T | -| main.rs:671:13:671:13 | x | | main.rs:650:5:654:5 | MyEnum | -| main.rs:671:13:671:13 | x | A | main.rs:656:5:657:14 | S1 | -| main.rs:671:17:671:30 | ...::C1(...) | | main.rs:650:5:654:5 | MyEnum | -| main.rs:671:17:671:30 | ...::C1(...) | A | main.rs:656:5:657:14 | S1 | -| main.rs:671:28:671:29 | S1 | | main.rs:656:5:657:14 | S1 | -| main.rs:672:13:672:13 | y | | main.rs:650:5:654:5 | MyEnum | -| main.rs:672:13:672:13 | y | A | main.rs:658:5:659:14 | S2 | -| main.rs:672:17:672:36 | ...::C2 {...} | | main.rs:650:5:654:5 | MyEnum | -| main.rs:672:17:672:36 | ...::C2 {...} | A | main.rs:658:5:659:14 | S2 | -| main.rs:672:33:672:34 | S2 | | main.rs:658:5:659:14 | S2 | -| main.rs:674:26:674:26 | x | | main.rs:650:5:654:5 | MyEnum | -| main.rs:674:26:674:26 | x | A | main.rs:656:5:657:14 | S1 | -| main.rs:674:26:674:31 | x.m1() | | main.rs:656:5:657:14 | S1 | -| main.rs:675:26:675:26 | y | | main.rs:650:5:654:5 | MyEnum | -| main.rs:675:26:675:26 | y | A | main.rs:658:5:659:14 | S2 | -| main.rs:675:26:675:31 | y.m1() | | main.rs:658:5:659:14 | S2 | -| main.rs:697:15:697:18 | SelfParam | | main.rs:695:5:698:5 | Self [trait MyTrait1] | -| main.rs:701:15:701:18 | SelfParam | | main.rs:700:5:711:5 | Self [trait MyTrait2] | -| main.rs:704:9:710:9 | { ... } | | main.rs:700:20:700:22 | Tr2 | -| main.rs:705:13:709:13 | if ... {...} else {...} | | main.rs:700:20:700:22 | Tr2 | -| main.rs:705:26:707:13 | { ... } | | main.rs:700:20:700:22 | Tr2 | -| main.rs:706:17:706:20 | self | | main.rs:700:5:711:5 | Self [trait MyTrait2] | -| main.rs:706:17:706:25 | self.m1() | | main.rs:700:20:700:22 | Tr2 | -| main.rs:707:20:709:13 | { ... } | | main.rs:700:20:700:22 | Tr2 | -| main.rs:708:17:708:30 | ...::m1(...) | | main.rs:700:20:700:22 | Tr2 | -| main.rs:708:26:708:29 | self | | main.rs:700:5:711:5 | Self [trait MyTrait2] | -| main.rs:714:15:714:18 | SelfParam | | main.rs:713:5:724:5 | Self [trait MyTrait3] | -| main.rs:717:9:723:9 | { ... } | | main.rs:713:20:713:22 | Tr3 | -| main.rs:718:13:722:13 | if ... {...} else {...} | | main.rs:713:20:713:22 | Tr3 | -| main.rs:718:26:720:13 | { ... } | | main.rs:713:20:713:22 | Tr3 | -| main.rs:719:17:719:20 | self | | main.rs:713:5:724:5 | Self [trait MyTrait3] | -| main.rs:719:17:719:25 | self.m2() | | main.rs:680:5:683:5 | MyThing | -| main.rs:719:17:719:25 | self.m2() | A | main.rs:713:20:713:22 | Tr3 | -| main.rs:719:17:719:27 | ... .a | | main.rs:713:20:713:22 | Tr3 | -| main.rs:720:20:722:13 | { ... } | | main.rs:713:20:713:22 | Tr3 | -| main.rs:721:17:721:30 | ...::m2(...) | | main.rs:680:5:683:5 | MyThing | -| main.rs:721:17:721:30 | ...::m2(...) | A | main.rs:713:20:713:22 | Tr3 | -| main.rs:721:17:721:32 | ... .a | | main.rs:713:20:713:22 | Tr3 | -| main.rs:721:26:721:29 | self | | main.rs:713:5:724:5 | Self [trait MyTrait3] | -| main.rs:728:15:728:18 | SelfParam | | main.rs:680:5:683:5 | MyThing | -| main.rs:728:15:728:18 | SelfParam | A | main.rs:726:10:726:10 | T | -| main.rs:728:26:730:9 | { ... } | | main.rs:726:10:726:10 | T | -| main.rs:729:13:729:16 | self | | main.rs:680:5:683:5 | MyThing | -| main.rs:729:13:729:16 | self | A | main.rs:726:10:726:10 | T | -| main.rs:729:13:729:18 | self.a | | main.rs:726:10:726:10 | T | -| main.rs:737:15:737:18 | SelfParam | | main.rs:685:5:688:5 | MyThing2 | -| main.rs:737:15:737:18 | SelfParam | A | main.rs:735:10:735:10 | T | -| main.rs:737:35:739:9 | { ... } | | main.rs:680:5:683:5 | MyThing | -| main.rs:737:35:739:9 | { ... } | A | main.rs:735:10:735:10 | T | -| main.rs:738:13:738:33 | MyThing {...} | | main.rs:680:5:683:5 | MyThing | -| main.rs:738:13:738:33 | MyThing {...} | A | main.rs:735:10:735:10 | T | -| main.rs:738:26:738:29 | self | | main.rs:685:5:688:5 | MyThing2 | -| main.rs:738:26:738:29 | self | A | main.rs:735:10:735:10 | T | -| main.rs:738:26:738:31 | self.a | | main.rs:735:10:735:10 | T | -| main.rs:747:13:747:13 | x | | main.rs:680:5:683:5 | MyThing | -| main.rs:747:13:747:13 | x | A | main.rs:690:5:691:14 | S1 | -| main.rs:747:17:747:33 | MyThing {...} | | main.rs:680:5:683:5 | MyThing | -| main.rs:747:17:747:33 | MyThing {...} | A | main.rs:690:5:691:14 | S1 | -| main.rs:747:30:747:31 | S1 | | main.rs:690:5:691:14 | S1 | -| main.rs:748:13:748:13 | y | | main.rs:680:5:683:5 | MyThing | -| main.rs:748:13:748:13 | y | A | main.rs:692:5:693:14 | S2 | -| main.rs:748:17:748:33 | MyThing {...} | | main.rs:680:5:683:5 | MyThing | -| main.rs:748:17:748:33 | MyThing {...} | A | main.rs:692:5:693:14 | S2 | -| main.rs:748:30:748:31 | S2 | | main.rs:692:5:693:14 | S2 | -| main.rs:750:26:750:26 | x | | main.rs:680:5:683:5 | MyThing | -| main.rs:750:26:750:26 | x | A | main.rs:690:5:691:14 | S1 | -| main.rs:750:26:750:31 | x.m1() | | main.rs:690:5:691:14 | S1 | -| main.rs:751:26:751:26 | y | | main.rs:680:5:683:5 | MyThing | -| main.rs:751:26:751:26 | y | A | main.rs:692:5:693:14 | S2 | -| main.rs:751:26:751:31 | y.m1() | | main.rs:692:5:693:14 | S2 | -| main.rs:753:13:753:13 | x | | main.rs:680:5:683:5 | MyThing | -| main.rs:753:13:753:13 | x | A | main.rs:690:5:691:14 | S1 | -| main.rs:753:17:753:33 | MyThing {...} | | main.rs:680:5:683:5 | MyThing | -| main.rs:753:17:753:33 | MyThing {...} | A | main.rs:690:5:691:14 | S1 | -| main.rs:753:30:753:31 | S1 | | main.rs:690:5:691:14 | S1 | -| main.rs:754:13:754:13 | y | | main.rs:680:5:683:5 | MyThing | -| main.rs:754:13:754:13 | y | A | main.rs:692:5:693:14 | S2 | -| main.rs:754:17:754:33 | MyThing {...} | | main.rs:680:5:683:5 | MyThing | -| main.rs:754:17:754:33 | MyThing {...} | A | main.rs:692:5:693:14 | S2 | -| main.rs:754:30:754:31 | S2 | | main.rs:692:5:693:14 | S2 | -| main.rs:756:26:756:26 | x | | main.rs:680:5:683:5 | MyThing | -| main.rs:756:26:756:26 | x | A | main.rs:690:5:691:14 | S1 | -| main.rs:756:26:756:31 | x.m2() | | main.rs:690:5:691:14 | S1 | -| main.rs:757:26:757:26 | y | | main.rs:680:5:683:5 | MyThing | -| main.rs:757:26:757:26 | y | A | main.rs:692:5:693:14 | S2 | -| main.rs:757:26:757:31 | y.m2() | | main.rs:692:5:693:14 | S2 | -| main.rs:759:13:759:13 | x | | main.rs:685:5:688:5 | MyThing2 | -| main.rs:759:13:759:13 | x | A | main.rs:690:5:691:14 | S1 | -| main.rs:759:17:759:34 | MyThing2 {...} | | main.rs:685:5:688:5 | MyThing2 | -| main.rs:759:17:759:34 | MyThing2 {...} | A | main.rs:690:5:691:14 | S1 | -| main.rs:759:31:759:32 | S1 | | main.rs:690:5:691:14 | S1 | -| main.rs:760:13:760:13 | y | | main.rs:685:5:688:5 | MyThing2 | -| main.rs:760:13:760:13 | y | A | main.rs:692:5:693:14 | S2 | -| main.rs:760:17:760:34 | MyThing2 {...} | | main.rs:685:5:688:5 | MyThing2 | -| main.rs:760:17:760:34 | MyThing2 {...} | A | main.rs:692:5:693:14 | S2 | -| main.rs:760:31:760:32 | S2 | | main.rs:692:5:693:14 | S2 | -| main.rs:762:26:762:26 | x | | main.rs:685:5:688:5 | MyThing2 | -| main.rs:762:26:762:26 | x | A | main.rs:690:5:691:14 | S1 | -| main.rs:762:26:762:31 | x.m3() | | main.rs:690:5:691:14 | S1 | -| main.rs:763:26:763:26 | y | | main.rs:685:5:688:5 | MyThing2 | -| main.rs:763:26:763:26 | y | A | main.rs:692:5:693:14 | S2 | -| main.rs:763:26:763:31 | y.m3() | | main.rs:692:5:693:14 | S2 | -| main.rs:781:22:781:22 | x | | file://:0:0:0:0 | & | -| main.rs:781:22:781:22 | x | &T | main.rs:781:11:781:19 | T | -| main.rs:781:35:783:5 | { ... } | | file://:0:0:0:0 | & | -| main.rs:781:35:783:5 | { ... } | &T | main.rs:781:11:781:19 | T | -| main.rs:782:9:782:9 | x | | file://:0:0:0:0 | & | -| main.rs:782:9:782:9 | x | &T | main.rs:781:11:781:19 | T | -| main.rs:786:17:786:20 | SelfParam | | main.rs:771:5:772:14 | S1 | -| main.rs:786:29:788:9 | { ... } | | main.rs:774:5:775:14 | S2 | -| main.rs:787:13:787:14 | S2 | | main.rs:774:5:775:14 | S2 | -| main.rs:791:21:791:21 | x | | main.rs:791:13:791:14 | T1 | -| main.rs:794:5:796:5 | { ... } | | main.rs:791:17:791:18 | T2 | -| main.rs:795:9:795:9 | x | | main.rs:791:13:791:14 | T1 | -| main.rs:795:9:795:16 | x.into() | | main.rs:791:17:791:18 | T2 | -| main.rs:799:13:799:13 | x | | main.rs:771:5:772:14 | S1 | -| main.rs:799:17:799:18 | S1 | | main.rs:771:5:772:14 | S1 | -| main.rs:800:26:800:31 | id(...) | | file://:0:0:0:0 | & | -| main.rs:800:26:800:31 | id(...) | &T | main.rs:771:5:772:14 | S1 | -| main.rs:800:29:800:30 | &x | | file://:0:0:0:0 | & | -| main.rs:800:29:800:30 | &x | &T | main.rs:771:5:772:14 | S1 | -| main.rs:800:30:800:30 | x | | main.rs:771:5:772:14 | S1 | -| main.rs:802:13:802:13 | x | | main.rs:771:5:772:14 | S1 | -| main.rs:802:17:802:18 | S1 | | main.rs:771:5:772:14 | S1 | -| main.rs:803:26:803:37 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:803:26:803:37 | id::<...>(...) | &T | main.rs:771:5:772:14 | S1 | -| main.rs:803:35:803:36 | &x | | file://:0:0:0:0 | & | -| main.rs:803:35:803:36 | &x | &T | main.rs:771:5:772:14 | S1 | -| main.rs:803:36:803:36 | x | | main.rs:771:5:772:14 | S1 | -| main.rs:805:13:805:13 | x | | main.rs:771:5:772:14 | S1 | -| main.rs:805:17:805:18 | S1 | | main.rs:771:5:772:14 | S1 | -| main.rs:806:26:806:44 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:806:26:806:44 | id::<...>(...) | &T | main.rs:771:5:772:14 | S1 | -| main.rs:806:42:806:43 | &x | | file://:0:0:0:0 | & | -| main.rs:806:42:806:43 | &x | &T | main.rs:771:5:772:14 | S1 | -| main.rs:806:43:806:43 | x | | main.rs:771:5:772:14 | S1 | -| main.rs:808:13:808:13 | x | | main.rs:771:5:772:14 | S1 | -| main.rs:808:17:808:18 | S1 | | main.rs:771:5:772:14 | S1 | -| main.rs:809:9:809:25 | into::<...>(...) | | main.rs:774:5:775:14 | S2 | -| main.rs:809:24:809:24 | x | | main.rs:771:5:772:14 | S1 | -| main.rs:811:13:811:13 | x | | main.rs:771:5:772:14 | S1 | -| main.rs:811:17:811:18 | S1 | | main.rs:771:5:772:14 | S1 | -| main.rs:812:13:812:13 | y | | main.rs:774:5:775:14 | S2 | -| main.rs:812:21:812:27 | into(...) | | main.rs:774:5:775:14 | S2 | -| main.rs:812:26:812:26 | x | | main.rs:771:5:772:14 | S1 | -| main.rs:826:22:826:25 | SelfParam | | main.rs:817:5:823:5 | PairOption | -| main.rs:826:22:826:25 | SelfParam | Fst | main.rs:825:10:825:12 | Fst | -| main.rs:826:22:826:25 | SelfParam | Snd | main.rs:825:15:825:17 | Snd | -| main.rs:826:35:833:9 | { ... } | | main.rs:825:15:825:17 | Snd | -| main.rs:827:13:832:13 | match self { ... } | | main.rs:825:15:825:17 | Snd | -| main.rs:827:19:827:22 | self | | main.rs:817:5:823:5 | PairOption | -| main.rs:827:19:827:22 | self | Fst | main.rs:825:10:825:12 | Fst | -| main.rs:827:19:827:22 | self | Snd | main.rs:825:15:825:17 | Snd | -| main.rs:828:43:828:82 | MacroExpr | | main.rs:825:15:825:17 | Snd | -| main.rs:829:43:829:81 | MacroExpr | | main.rs:825:15:825:17 | Snd | -| main.rs:830:37:830:39 | snd | | main.rs:825:15:825:17 | Snd | -| main.rs:830:45:830:47 | snd | | main.rs:825:15:825:17 | Snd | -| main.rs:831:41:831:43 | snd | | main.rs:825:15:825:17 | Snd | -| main.rs:831:49:831:51 | snd | | main.rs:825:15:825:17 | Snd | -| main.rs:857:10:857:10 | t | | main.rs:817:5:823:5 | PairOption | -| main.rs:857:10:857:10 | t | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:857:10:857:10 | t | Snd | main.rs:817:5:823:5 | PairOption | -| main.rs:857:10:857:10 | t | Snd.Fst | main.rs:839:5:840:14 | S2 | -| main.rs:857:10:857:10 | t | Snd.Snd | main.rs:842:5:843:14 | S3 | -| main.rs:858:13:858:13 | x | | main.rs:842:5:843:14 | S3 | -| main.rs:858:17:858:17 | t | | main.rs:817:5:823:5 | PairOption | -| main.rs:858:17:858:17 | t | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:858:17:858:17 | t | Snd | main.rs:817:5:823:5 | PairOption | -| main.rs:858:17:858:17 | t | Snd.Fst | main.rs:839:5:840:14 | S2 | -| main.rs:858:17:858:17 | t | Snd.Snd | main.rs:842:5:843:14 | S3 | -| main.rs:858:17:858:29 | t.unwrapSnd() | | main.rs:817:5:823:5 | PairOption | -| main.rs:858:17:858:29 | t.unwrapSnd() | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:858:17:858:29 | t.unwrapSnd() | Snd | main.rs:842:5:843:14 | S3 | -| main.rs:858:17:858:41 | ... .unwrapSnd() | | main.rs:842:5:843:14 | S3 | -| main.rs:859:26:859:26 | x | | main.rs:842:5:843:14 | S3 | -| main.rs:864:13:864:14 | p1 | | main.rs:817:5:823:5 | PairOption | -| main.rs:864:13:864:14 | p1 | Fst | main.rs:836:5:837:14 | S1 | -| main.rs:864:13:864:14 | p1 | Snd | main.rs:839:5:840:14 | S2 | -| main.rs:864:26:864:53 | ...::PairBoth(...) | | main.rs:817:5:823:5 | PairOption | -| main.rs:864:26:864:53 | ...::PairBoth(...) | Fst | main.rs:836:5:837:14 | S1 | -| main.rs:864:26:864:53 | ...::PairBoth(...) | Snd | main.rs:839:5:840:14 | S2 | -| main.rs:864:47:864:48 | S1 | | main.rs:836:5:837:14 | S1 | -| main.rs:864:51:864:52 | S2 | | main.rs:839:5:840:14 | S2 | -| main.rs:865:26:865:27 | p1 | | main.rs:817:5:823:5 | PairOption | -| main.rs:865:26:865:27 | p1 | Fst | main.rs:836:5:837:14 | S1 | -| main.rs:865:26:865:27 | p1 | Snd | main.rs:839:5:840:14 | S2 | -| main.rs:868:13:868:14 | p2 | | main.rs:817:5:823:5 | PairOption | -| main.rs:868:13:868:14 | p2 | Fst | main.rs:836:5:837:14 | S1 | -| main.rs:868:13:868:14 | p2 | Snd | main.rs:839:5:840:14 | S2 | -| main.rs:868:26:868:47 | ...::PairNone(...) | | main.rs:817:5:823:5 | PairOption | -| main.rs:868:26:868:47 | ...::PairNone(...) | Fst | main.rs:836:5:837:14 | S1 | -| main.rs:868:26:868:47 | ...::PairNone(...) | Snd | main.rs:839:5:840:14 | S2 | -| main.rs:869:26:869:27 | p2 | | main.rs:817:5:823:5 | PairOption | -| main.rs:869:26:869:27 | p2 | Fst | main.rs:836:5:837:14 | S1 | -| main.rs:869:26:869:27 | p2 | Snd | main.rs:839:5:840:14 | S2 | -| main.rs:872:13:872:14 | p3 | | main.rs:817:5:823:5 | PairOption | -| main.rs:872:13:872:14 | p3 | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:872:13:872:14 | p3 | Snd | main.rs:842:5:843:14 | S3 | -| main.rs:872:34:872:56 | ...::PairSnd(...) | | main.rs:817:5:823:5 | PairOption | -| main.rs:872:34:872:56 | ...::PairSnd(...) | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:872:34:872:56 | ...::PairSnd(...) | Snd | main.rs:842:5:843:14 | S3 | -| main.rs:872:54:872:55 | S3 | | main.rs:842:5:843:14 | S3 | -| main.rs:873:26:873:27 | p3 | | main.rs:817:5:823:5 | PairOption | -| main.rs:873:26:873:27 | p3 | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:873:26:873:27 | p3 | Snd | main.rs:842:5:843:14 | S3 | -| main.rs:876:13:876:14 | p3 | | main.rs:817:5:823:5 | PairOption | -| main.rs:876:13:876:14 | p3 | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:876:13:876:14 | p3 | Snd | main.rs:842:5:843:14 | S3 | -| main.rs:876:35:876:56 | ...::PairNone(...) | | main.rs:817:5:823:5 | PairOption | -| main.rs:876:35:876:56 | ...::PairNone(...) | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:876:35:876:56 | ...::PairNone(...) | Snd | main.rs:842:5:843:14 | S3 | -| main.rs:877:26:877:27 | p3 | | main.rs:817:5:823:5 | PairOption | -| main.rs:877:26:877:27 | p3 | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:877:26:877:27 | p3 | Snd | main.rs:842:5:843:14 | S3 | -| main.rs:879:11:879:54 | ...::PairSnd(...) | | main.rs:817:5:823:5 | PairOption | -| main.rs:879:11:879:54 | ...::PairSnd(...) | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:879:11:879:54 | ...::PairSnd(...) | Snd | main.rs:817:5:823:5 | PairOption | -| main.rs:879:11:879:54 | ...::PairSnd(...) | Snd.Fst | main.rs:839:5:840:14 | S2 | -| main.rs:879:11:879:54 | ...::PairSnd(...) | Snd.Snd | main.rs:842:5:843:14 | S3 | -| main.rs:879:31:879:53 | ...::PairSnd(...) | | main.rs:817:5:823:5 | PairOption | -| main.rs:879:31:879:53 | ...::PairSnd(...) | Fst | main.rs:839:5:840:14 | S2 | -| main.rs:879:31:879:53 | ...::PairSnd(...) | Snd | main.rs:842:5:843:14 | S3 | -| main.rs:879:51:879:52 | S3 | | main.rs:842:5:843:14 | S3 | -| main.rs:892:16:892:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:892:16:892:24 | SelfParam | &T | main.rs:890:5:897:5 | Self [trait MyTrait] | -| main.rs:892:27:892:31 | value | | main.rs:890:19:890:19 | S | -| main.rs:894:21:894:29 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:894:21:894:29 | SelfParam | &T | main.rs:890:5:897:5 | Self [trait MyTrait] | -| main.rs:894:32:894:36 | value | | main.rs:890:19:890:19 | S | -| main.rs:895:13:895:16 | self | | file://:0:0:0:0 | & | -| main.rs:895:13:895:16 | self | &T | main.rs:890:5:897:5 | Self [trait MyTrait] | -| main.rs:895:22:895:26 | value | | main.rs:890:19:890:19 | S | -| main.rs:901:16:901:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:901:16:901:24 | SelfParam | &T | main.rs:884:5:888:5 | MyOption | -| main.rs:901:16:901:24 | SelfParam | &T.T | main.rs:899:10:899:10 | T | -| main.rs:901:27:901:31 | value | | main.rs:899:10:899:10 | T | -| main.rs:905:26:907:9 | { ... } | | main.rs:884:5:888:5 | MyOption | -| main.rs:905:26:907:9 | { ... } | T | main.rs:904:10:904:10 | T | -| main.rs:906:13:906:30 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:906:13:906:30 | ...::MyNone(...) | T | main.rs:904:10:904:10 | T | -| main.rs:911:20:911:23 | SelfParam | | main.rs:884:5:888:5 | MyOption | -| main.rs:911:20:911:23 | SelfParam | T | main.rs:884:5:888:5 | MyOption | -| main.rs:911:20:911:23 | SelfParam | T.T | main.rs:910:10:910:10 | T | -| main.rs:911:41:916:9 | { ... } | | main.rs:884:5:888:5 | MyOption | -| main.rs:911:41:916:9 | { ... } | T | main.rs:910:10:910:10 | T | -| main.rs:912:13:915:13 | match self { ... } | | main.rs:884:5:888:5 | MyOption | -| main.rs:912:13:915:13 | match self { ... } | T | main.rs:910:10:910:10 | T | -| main.rs:912:19:912:22 | self | | main.rs:884:5:888:5 | MyOption | -| main.rs:912:19:912:22 | self | T | main.rs:884:5:888:5 | MyOption | -| main.rs:912:19:912:22 | self | T.T | main.rs:910:10:910:10 | T | -| main.rs:913:39:913:56 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:913:39:913:56 | ...::MyNone(...) | T | main.rs:910:10:910:10 | T | -| main.rs:914:34:914:34 | x | | main.rs:884:5:888:5 | MyOption | -| main.rs:914:34:914:34 | x | T | main.rs:910:10:910:10 | T | -| main.rs:914:40:914:40 | x | | main.rs:884:5:888:5 | MyOption | -| main.rs:914:40:914:40 | x | T | main.rs:910:10:910:10 | T | -| main.rs:923:13:923:14 | x1 | | main.rs:884:5:888:5 | MyOption | -| main.rs:923:18:923:37 | ...::new(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:924:26:924:27 | x1 | | main.rs:884:5:888:5 | MyOption | -| main.rs:926:13:926:18 | mut x2 | | main.rs:884:5:888:5 | MyOption | -| main.rs:926:13:926:18 | mut x2 | T | main.rs:919:5:920:13 | S | -| main.rs:926:22:926:36 | ...::new(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:926:22:926:36 | ...::new(...) | T | main.rs:919:5:920:13 | S | -| main.rs:927:9:927:10 | x2 | | main.rs:884:5:888:5 | MyOption | -| main.rs:927:9:927:10 | x2 | T | main.rs:919:5:920:13 | S | -| main.rs:927:16:927:16 | S | | main.rs:919:5:920:13 | S | -| main.rs:928:26:928:27 | x2 | | main.rs:884:5:888:5 | MyOption | -| main.rs:928:26:928:27 | x2 | T | main.rs:919:5:920:13 | S | -| main.rs:930:13:930:18 | mut x3 | | main.rs:884:5:888:5 | MyOption | -| main.rs:930:22:930:36 | ...::new(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:931:9:931:10 | x3 | | main.rs:884:5:888:5 | MyOption | -| main.rs:931:21:931:21 | S | | main.rs:919:5:920:13 | S | -| main.rs:932:26:932:27 | x3 | | main.rs:884:5:888:5 | MyOption | -| main.rs:934:13:934:18 | mut x4 | | main.rs:884:5:888:5 | MyOption | -| main.rs:934:13:934:18 | mut x4 | T | main.rs:919:5:920:13 | S | -| main.rs:934:22:934:36 | ...::new(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:934:22:934:36 | ...::new(...) | T | main.rs:919:5:920:13 | S | -| main.rs:935:23:935:29 | &mut x4 | | file://:0:0:0:0 | & | -| main.rs:935:23:935:29 | &mut x4 | &T | main.rs:884:5:888:5 | MyOption | -| main.rs:935:23:935:29 | &mut x4 | &T.T | main.rs:919:5:920:13 | S | -| main.rs:935:28:935:29 | x4 | | main.rs:884:5:888:5 | MyOption | -| main.rs:935:28:935:29 | x4 | T | main.rs:919:5:920:13 | S | -| main.rs:935:32:935:32 | S | | main.rs:919:5:920:13 | S | -| main.rs:936:26:936:27 | x4 | | main.rs:884:5:888:5 | MyOption | -| main.rs:936:26:936:27 | x4 | T | main.rs:919:5:920:13 | S | -| main.rs:938:13:938:14 | x5 | | main.rs:884:5:888:5 | MyOption | -| main.rs:938:13:938:14 | x5 | T | main.rs:884:5:888:5 | MyOption | -| main.rs:938:13:938:14 | x5 | T.T | main.rs:919:5:920:13 | S | -| main.rs:938:18:938:58 | ...::MySome(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:938:18:938:58 | ...::MySome(...) | T | main.rs:884:5:888:5 | MyOption | -| main.rs:938:18:938:58 | ...::MySome(...) | T.T | main.rs:919:5:920:13 | S | -| main.rs:938:35:938:57 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:938:35:938:57 | ...::MyNone(...) | T | main.rs:919:5:920:13 | S | -| main.rs:939:26:939:27 | x5 | | main.rs:884:5:888:5 | MyOption | -| main.rs:939:26:939:27 | x5 | T | main.rs:884:5:888:5 | MyOption | -| main.rs:939:26:939:27 | x5 | T.T | main.rs:919:5:920:13 | S | -| main.rs:939:26:939:37 | x5.flatten() | | main.rs:884:5:888:5 | MyOption | -| main.rs:939:26:939:37 | x5.flatten() | T | main.rs:919:5:920:13 | S | -| main.rs:941:13:941:14 | x6 | | main.rs:884:5:888:5 | MyOption | -| main.rs:941:13:941:14 | x6 | T | main.rs:884:5:888:5 | MyOption | -| main.rs:941:13:941:14 | x6 | T.T | main.rs:919:5:920:13 | S | -| main.rs:941:18:941:58 | ...::MySome(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:941:18:941:58 | ...::MySome(...) | T | main.rs:884:5:888:5 | MyOption | -| main.rs:941:18:941:58 | ...::MySome(...) | T.T | main.rs:919:5:920:13 | S | -| main.rs:941:35:941:57 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:941:35:941:57 | ...::MyNone(...) | T | main.rs:919:5:920:13 | S | -| main.rs:942:26:942:61 | ...::flatten(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:942:26:942:61 | ...::flatten(...) | T | main.rs:919:5:920:13 | S | -| main.rs:942:59:942:60 | x6 | | main.rs:884:5:888:5 | MyOption | -| main.rs:942:59:942:60 | x6 | T | main.rs:884:5:888:5 | MyOption | -| main.rs:942:59:942:60 | x6 | T.T | main.rs:919:5:920:13 | S | -| main.rs:944:13:944:19 | from_if | | main.rs:884:5:888:5 | MyOption | -| main.rs:944:13:944:19 | from_if | T | main.rs:919:5:920:13 | S | -| main.rs:944:23:948:9 | if ... {...} else {...} | | main.rs:884:5:888:5 | MyOption | -| main.rs:944:23:948:9 | if ... {...} else {...} | T | main.rs:919:5:920:13 | S | -| main.rs:944:36:946:9 | { ... } | | main.rs:884:5:888:5 | MyOption | -| main.rs:944:36:946:9 | { ... } | T | main.rs:919:5:920:13 | S | -| main.rs:945:13:945:30 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:945:13:945:30 | ...::MyNone(...) | T | main.rs:919:5:920:13 | S | -| main.rs:946:16:948:9 | { ... } | | main.rs:884:5:888:5 | MyOption | -| main.rs:946:16:948:9 | { ... } | T | main.rs:919:5:920:13 | S | -| main.rs:947:13:947:31 | ...::MySome(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:947:13:947:31 | ...::MySome(...) | T | main.rs:919:5:920:13 | S | -| main.rs:947:30:947:30 | S | | main.rs:919:5:920:13 | S | -| main.rs:949:26:949:32 | from_if | | main.rs:884:5:888:5 | MyOption | -| main.rs:949:26:949:32 | from_if | T | main.rs:919:5:920:13 | S | -| main.rs:951:13:951:22 | from_match | | main.rs:884:5:888:5 | MyOption | -| main.rs:951:13:951:22 | from_match | T | main.rs:919:5:920:13 | S | -| main.rs:951:26:954:9 | match ... { ... } | | main.rs:884:5:888:5 | MyOption | -| main.rs:951:26:954:9 | match ... { ... } | T | main.rs:919:5:920:13 | S | -| main.rs:952:21:952:38 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:952:21:952:38 | ...::MyNone(...) | T | main.rs:919:5:920:13 | S | -| main.rs:953:22:953:40 | ...::MySome(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:953:22:953:40 | ...::MySome(...) | T | main.rs:919:5:920:13 | S | -| main.rs:953:39:953:39 | S | | main.rs:919:5:920:13 | S | -| main.rs:955:26:955:35 | from_match | | main.rs:884:5:888:5 | MyOption | -| main.rs:955:26:955:35 | from_match | T | main.rs:919:5:920:13 | S | -| main.rs:957:13:957:21 | from_loop | | main.rs:884:5:888:5 | MyOption | -| main.rs:957:13:957:21 | from_loop | T | main.rs:919:5:920:13 | S | -| main.rs:957:25:962:9 | loop { ... } | | main.rs:884:5:888:5 | MyOption | -| main.rs:957:25:962:9 | loop { ... } | T | main.rs:919:5:920:13 | S | -| main.rs:959:23:959:40 | ...::MyNone(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:959:23:959:40 | ...::MyNone(...) | T | main.rs:919:5:920:13 | S | -| main.rs:961:19:961:37 | ...::MySome(...) | | main.rs:884:5:888:5 | MyOption | -| main.rs:961:19:961:37 | ...::MySome(...) | T | main.rs:919:5:920:13 | S | -| main.rs:961:36:961:36 | S | | main.rs:919:5:920:13 | S | -| main.rs:963:26:963:34 | from_loop | | main.rs:884:5:888:5 | MyOption | -| main.rs:963:26:963:34 | from_loop | T | main.rs:919:5:920:13 | S | -| main.rs:976:15:976:18 | SelfParam | | main.rs:969:5:970:19 | S | -| main.rs:976:15:976:18 | SelfParam | T | main.rs:975:10:975:10 | T | -| main.rs:976:26:978:9 | { ... } | | main.rs:975:10:975:10 | T | -| main.rs:977:13:977:16 | self | | main.rs:969:5:970:19 | S | -| main.rs:977:13:977:16 | self | T | main.rs:975:10:975:10 | T | -| main.rs:977:13:977:18 | self.0 | | main.rs:975:10:975:10 | T | -| main.rs:980:15:980:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:980:15:980:19 | SelfParam | &T | main.rs:969:5:970:19 | S | -| main.rs:980:15:980:19 | SelfParam | &T.T | main.rs:975:10:975:10 | T | -| main.rs:980:28:982:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:980:28:982:9 | { ... } | &T | main.rs:975:10:975:10 | T | -| main.rs:981:13:981:19 | &... | | file://:0:0:0:0 | & | -| main.rs:981:13:981:19 | &... | &T | main.rs:975:10:975:10 | T | -| main.rs:981:14:981:17 | self | | file://:0:0:0:0 | & | -| main.rs:981:14:981:17 | self | &T | main.rs:969:5:970:19 | S | -| main.rs:981:14:981:17 | self | &T.T | main.rs:975:10:975:10 | T | -| main.rs:981:14:981:19 | self.0 | | main.rs:975:10:975:10 | T | -| main.rs:984:15:984:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:984:15:984:25 | SelfParam | &T | main.rs:969:5:970:19 | S | -| main.rs:984:15:984:25 | SelfParam | &T.T | main.rs:975:10:975:10 | T | -| main.rs:984:34:986:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:984:34:986:9 | { ... } | &T | main.rs:975:10:975:10 | T | -| main.rs:985:13:985:19 | &... | | file://:0:0:0:0 | & | -| main.rs:985:13:985:19 | &... | &T | main.rs:975:10:975:10 | T | -| main.rs:985:14:985:17 | self | | file://:0:0:0:0 | & | -| main.rs:985:14:985:17 | self | &T | main.rs:969:5:970:19 | S | -| main.rs:985:14:985:17 | self | &T.T | main.rs:975:10:975:10 | T | -| main.rs:985:14:985:19 | self.0 | | main.rs:975:10:975:10 | T | -| main.rs:990:13:990:14 | x1 | | main.rs:969:5:970:19 | S | -| main.rs:990:13:990:14 | x1 | T | main.rs:972:5:973:14 | S2 | -| main.rs:990:18:990:22 | S(...) | | main.rs:969:5:970:19 | S | -| main.rs:990:18:990:22 | S(...) | T | main.rs:972:5:973:14 | S2 | -| main.rs:990:20:990:21 | S2 | | main.rs:972:5:973:14 | S2 | -| main.rs:991:26:991:27 | x1 | | main.rs:969:5:970:19 | S | -| main.rs:991:26:991:27 | x1 | T | main.rs:972:5:973:14 | S2 | -| main.rs:991:26:991:32 | x1.m1() | | main.rs:972:5:973:14 | S2 | -| main.rs:993:13:993:14 | x2 | | main.rs:969:5:970:19 | S | -| main.rs:993:13:993:14 | x2 | T | main.rs:972:5:973:14 | S2 | -| main.rs:993:18:993:22 | S(...) | | main.rs:969:5:970:19 | S | -| main.rs:993:18:993:22 | S(...) | T | main.rs:972:5:973:14 | S2 | -| main.rs:993:20:993:21 | S2 | | main.rs:972:5:973:14 | S2 | -| main.rs:995:26:995:27 | x2 | | main.rs:969:5:970:19 | S | -| main.rs:995:26:995:27 | x2 | T | main.rs:972:5:973:14 | S2 | -| main.rs:995:26:995:32 | x2.m2() | | file://:0:0:0:0 | & | -| main.rs:995:26:995:32 | x2.m2() | &T | main.rs:972:5:973:14 | S2 | -| main.rs:996:26:996:27 | x2 | | main.rs:969:5:970:19 | S | -| main.rs:996:26:996:27 | x2 | T | main.rs:972:5:973:14 | S2 | -| main.rs:996:26:996:32 | x2.m3() | | file://:0:0:0:0 | & | -| main.rs:996:26:996:32 | x2.m3() | &T | main.rs:972:5:973:14 | S2 | -| main.rs:998:13:998:14 | x3 | | main.rs:969:5:970:19 | S | -| main.rs:998:13:998:14 | x3 | T | main.rs:972:5:973:14 | S2 | -| main.rs:998:18:998:22 | S(...) | | main.rs:969:5:970:19 | S | -| main.rs:998:18:998:22 | S(...) | T | main.rs:972:5:973:14 | S2 | -| main.rs:998:20:998:21 | S2 | | main.rs:972:5:973:14 | S2 | -| main.rs:1000:26:1000:41 | ...::m2(...) | | file://:0:0:0:0 | & | -| main.rs:1000:26:1000:41 | ...::m2(...) | &T | main.rs:972:5:973:14 | S2 | -| main.rs:1000:38:1000:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1000:38:1000:40 | &x3 | &T | main.rs:969:5:970:19 | S | -| main.rs:1000:38:1000:40 | &x3 | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1000:39:1000:40 | x3 | | main.rs:969:5:970:19 | S | -| main.rs:1000:39:1000:40 | x3 | T | main.rs:972:5:973:14 | S2 | -| main.rs:1001:26:1001:41 | ...::m3(...) | | file://:0:0:0:0 | & | -| main.rs:1001:26:1001:41 | ...::m3(...) | &T | main.rs:972:5:973:14 | S2 | -| main.rs:1001:38:1001:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1001:38:1001:40 | &x3 | &T | main.rs:969:5:970:19 | S | -| main.rs:1001:38:1001:40 | &x3 | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1001:39:1001:40 | x3 | | main.rs:969:5:970:19 | S | -| main.rs:1001:39:1001:40 | x3 | T | main.rs:972:5:973:14 | S2 | -| main.rs:1003:13:1003:14 | x4 | | file://:0:0:0:0 | & | -| main.rs:1003:13:1003:14 | x4 | &T | main.rs:969:5:970:19 | S | -| main.rs:1003:13:1003:14 | x4 | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1003:18:1003:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1003:18:1003:23 | &... | &T | main.rs:969:5:970:19 | S | -| main.rs:1003:18:1003:23 | &... | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1003:19:1003:23 | S(...) | | main.rs:969:5:970:19 | S | -| main.rs:1003:19:1003:23 | S(...) | T | main.rs:972:5:973:14 | S2 | -| main.rs:1003:21:1003:22 | S2 | | main.rs:972:5:973:14 | S2 | -| main.rs:1005:26:1005:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1005:26:1005:27 | x4 | &T | main.rs:969:5:970:19 | S | -| main.rs:1005:26:1005:27 | x4 | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1005:26:1005:32 | x4.m2() | | file://:0:0:0:0 | & | -| main.rs:1005:26:1005:32 | x4.m2() | &T | main.rs:972:5:973:14 | S2 | -| main.rs:1006:26:1006:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1006:26:1006:27 | x4 | &T | main.rs:969:5:970:19 | S | -| main.rs:1006:26:1006:27 | x4 | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1006:26:1006:32 | x4.m3() | | file://:0:0:0:0 | & | -| main.rs:1006:26:1006:32 | x4.m3() | &T | main.rs:972:5:973:14 | S2 | -| main.rs:1008:13:1008:14 | x5 | | file://:0:0:0:0 | & | -| main.rs:1008:13:1008:14 | x5 | &T | main.rs:969:5:970:19 | S | -| main.rs:1008:13:1008:14 | x5 | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1008:18:1008:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1008:18:1008:23 | &... | &T | main.rs:969:5:970:19 | S | -| main.rs:1008:18:1008:23 | &... | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1008:19:1008:23 | S(...) | | main.rs:969:5:970:19 | S | -| main.rs:1008:19:1008:23 | S(...) | T | main.rs:972:5:973:14 | S2 | -| main.rs:1008:21:1008:22 | S2 | | main.rs:972:5:973:14 | S2 | -| main.rs:1010:26:1010:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1010:26:1010:27 | x5 | &T | main.rs:969:5:970:19 | S | -| main.rs:1010:26:1010:27 | x5 | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1010:26:1010:32 | x5.m1() | | main.rs:972:5:973:14 | S2 | -| main.rs:1011:26:1011:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1011:26:1011:27 | x5 | &T | main.rs:969:5:970:19 | S | -| main.rs:1011:26:1011:27 | x5 | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1011:26:1011:29 | x5.0 | | main.rs:972:5:973:14 | S2 | -| main.rs:1013:13:1013:14 | x6 | | file://:0:0:0:0 | & | -| main.rs:1013:13:1013:14 | x6 | &T | main.rs:969:5:970:19 | S | -| main.rs:1013:13:1013:14 | x6 | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1013:18:1013:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1013:18:1013:23 | &... | &T | main.rs:969:5:970:19 | S | -| main.rs:1013:18:1013:23 | &... | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1013:19:1013:23 | S(...) | | main.rs:969:5:970:19 | S | -| main.rs:1013:19:1013:23 | S(...) | T | main.rs:972:5:973:14 | S2 | -| main.rs:1013:21:1013:22 | S2 | | main.rs:972:5:973:14 | S2 | -| main.rs:1015:26:1015:30 | (...) | | main.rs:969:5:970:19 | S | -| main.rs:1015:26:1015:30 | (...) | T | main.rs:972:5:973:14 | S2 | -| main.rs:1015:26:1015:35 | ... .m1() | | main.rs:972:5:973:14 | S2 | -| main.rs:1015:27:1015:29 | * ... | | main.rs:969:5:970:19 | S | -| main.rs:1015:27:1015:29 | * ... | T | main.rs:972:5:973:14 | S2 | -| main.rs:1015:28:1015:29 | x6 | | file://:0:0:0:0 | & | -| main.rs:1015:28:1015:29 | x6 | &T | main.rs:969:5:970:19 | S | -| main.rs:1015:28:1015:29 | x6 | &T.T | main.rs:972:5:973:14 | S2 | -| main.rs:1022:16:1022:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1022:16:1022:20 | SelfParam | &T | main.rs:1020:5:1028:5 | Self [trait MyTrait] | -| main.rs:1025:16:1025:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1025:16:1025:20 | SelfParam | &T | main.rs:1020:5:1028:5 | Self [trait MyTrait] | -| main.rs:1025:32:1027:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1025:32:1027:9 | { ... } | &T | main.rs:1020:5:1028:5 | Self [trait MyTrait] | -| main.rs:1026:13:1026:16 | self | | file://:0:0:0:0 | & | -| main.rs:1026:13:1026:16 | self | &T | main.rs:1020:5:1028:5 | Self [trait MyTrait] | -| main.rs:1026:13:1026:22 | self.foo() | | file://:0:0:0:0 | & | -| main.rs:1026:13:1026:22 | self.foo() | &T | main.rs:1020:5:1028:5 | Self [trait MyTrait] | -| main.rs:1034:16:1034:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1034:16:1034:20 | SelfParam | &T | main.rs:1030:5:1030:20 | MyStruct | -| main.rs:1034:36:1036:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1034:36:1036:9 | { ... } | &T | main.rs:1030:5:1030:20 | MyStruct | -| main.rs:1035:13:1035:16 | self | | file://:0:0:0:0 | & | -| main.rs:1035:13:1035:16 | self | &T | main.rs:1030:5:1030:20 | MyStruct | -| main.rs:1040:13:1040:13 | x | | main.rs:1030:5:1030:20 | MyStruct | -| main.rs:1040:17:1040:24 | MyStruct | | main.rs:1030:5:1030:20 | MyStruct | -| main.rs:1041:9:1041:9 | x | | main.rs:1030:5:1030:20 | MyStruct | -| main.rs:1041:9:1041:15 | x.bar() | | file://:0:0:0:0 | & | -| main.rs:1041:9:1041:15 | x.bar() | &T | main.rs:1030:5:1030:20 | MyStruct | -| main.rs:1051:16:1051:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1051:16:1051:20 | SelfParam | &T | main.rs:1048:5:1048:26 | MyStruct | -| main.rs:1051:16:1051:20 | SelfParam | &T.T | main.rs:1050:10:1050:10 | T | -| main.rs:1051:32:1053:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1051:32:1053:9 | { ... } | &T | main.rs:1048:5:1048:26 | MyStruct | -| main.rs:1051:32:1053:9 | { ... } | &T.T | main.rs:1050:10:1050:10 | T | -| main.rs:1052:13:1052:16 | self | | file://:0:0:0:0 | & | -| main.rs:1052:13:1052:16 | self | &T | main.rs:1048:5:1048:26 | MyStruct | -| main.rs:1052:13:1052:16 | self | &T.T | main.rs:1050:10:1050:10 | T | -| main.rs:1057:13:1057:13 | x | | main.rs:1048:5:1048:26 | MyStruct | -| main.rs:1057:13:1057:13 | x | T | main.rs:1046:5:1046:13 | S | -| main.rs:1057:17:1057:27 | MyStruct(...) | | main.rs:1048:5:1048:26 | MyStruct | -| main.rs:1057:17:1057:27 | MyStruct(...) | T | main.rs:1046:5:1046:13 | S | -| main.rs:1057:26:1057:26 | S | | main.rs:1046:5:1046:13 | S | -| main.rs:1058:9:1058:9 | x | | main.rs:1048:5:1048:26 | MyStruct | -| main.rs:1058:9:1058:9 | x | T | main.rs:1046:5:1046:13 | S | -| main.rs:1058:9:1058:15 | x.foo() | | file://:0:0:0:0 | & | -| main.rs:1058:9:1058:15 | x.foo() | &T | main.rs:1048:5:1048:26 | MyStruct | -| main.rs:1058:9:1058:15 | x.foo() | &T.T | main.rs:1046:5:1046:13 | S | -| main.rs:1066:15:1066:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1066:15:1066:19 | SelfParam | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1066:31:1068:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1066:31:1068:9 | { ... } | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1067:13:1067:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1067:13:1067:19 | &... | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1067:14:1067:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1067:14:1067:19 | &... | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1067:15:1067:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1067:15:1067:19 | &self | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1067:16:1067:19 | self | | file://:0:0:0:0 | & | -| main.rs:1067:16:1067:19 | self | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1070:15:1070:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1070:15:1070:25 | SelfParam | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1070:37:1072:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1070:37:1072:9 | { ... } | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1071:13:1071:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1071:13:1071:19 | &... | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1071:14:1071:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1071:14:1071:19 | &... | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1071:15:1071:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1071:15:1071:19 | &self | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1071:16:1071:19 | self | | file://:0:0:0:0 | & | -| main.rs:1071:16:1071:19 | self | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1074:15:1074:15 | x | | file://:0:0:0:0 | & | -| main.rs:1074:15:1074:15 | x | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1074:34:1076:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1074:34:1076:9 | { ... } | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1075:13:1075:13 | x | | file://:0:0:0:0 | & | -| main.rs:1075:13:1075:13 | x | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1078:15:1078:15 | x | | file://:0:0:0:0 | & | -| main.rs:1078:15:1078:15 | x | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1078:34:1080:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1078:34:1080:9 | { ... } | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1079:13:1079:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1079:13:1079:16 | &... | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1079:14:1079:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1079:14:1079:16 | &... | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1079:15:1079:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1079:15:1079:16 | &x | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1079:16:1079:16 | x | | file://:0:0:0:0 | & | -| main.rs:1079:16:1079:16 | x | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1084:13:1084:13 | x | | main.rs:1063:5:1063:13 | S | -| main.rs:1084:17:1084:20 | S {...} | | main.rs:1063:5:1063:13 | S | -| main.rs:1085:9:1085:9 | x | | main.rs:1063:5:1063:13 | S | -| main.rs:1085:9:1085:14 | x.f1() | | file://:0:0:0:0 | & | -| main.rs:1085:9:1085:14 | x.f1() | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1086:9:1086:9 | x | | main.rs:1063:5:1063:13 | S | -| main.rs:1086:9:1086:14 | x.f2() | | file://:0:0:0:0 | & | -| main.rs:1086:9:1086:14 | x.f2() | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1087:9:1087:17 | ...::f3(...) | | file://:0:0:0:0 | & | -| main.rs:1087:9:1087:17 | ...::f3(...) | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1087:15:1087:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1087:15:1087:16 | &x | &T | main.rs:1063:5:1063:13 | S | -| main.rs:1087:16:1087:16 | x | | main.rs:1063:5:1063:13 | S | -| main.rs:1101:43:1104:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:1101:43:1104:5 | { ... } | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1101:43:1104:5 | { ... } | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1102:13:1102:13 | x | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1102:17:1102:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1102:17:1102:30 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1102:17:1102:31 | TryExpr | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1102:28:1102:29 | S1 | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1103:9:1103:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1103:9:1103:22 | ...::Ok(...) | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1103:9:1103:22 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1103:20:1103:21 | S1 | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1107:46:1111:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:1107:46:1111:5 | { ... } | E | main.rs:1097:5:1098:14 | S2 | -| main.rs:1107:46:1111:5 | { ... } | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1108:13:1108:13 | x | | file://:0:0:0:0 | Result | -| main.rs:1108:13:1108:13 | x | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1108:17:1108:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1108:17:1108:30 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1108:28:1108:29 | S1 | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1109:13:1109:13 | y | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1109:17:1109:17 | x | | file://:0:0:0:0 | Result | -| main.rs:1109:17:1109:17 | x | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1109:17:1109:18 | TryExpr | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1110:9:1110:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1110:9:1110:22 | ...::Ok(...) | E | main.rs:1097:5:1098:14 | S2 | -| main.rs:1110:9:1110:22 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1110:20:1110:21 | S1 | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1114:40:1119:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:1114:40:1119:5 | { ... } | E | main.rs:1097:5:1098:14 | S2 | -| main.rs:1114:40:1119:5 | { ... } | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1115:13:1115:13 | x | | file://:0:0:0:0 | Result | -| main.rs:1115:13:1115:13 | x | T | file://:0:0:0:0 | Result | -| main.rs:1115:13:1115:13 | x | T.T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1115:17:1115:42 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1115:17:1115:42 | ...::Ok(...) | T | file://:0:0:0:0 | Result | -| main.rs:1115:17:1115:42 | ...::Ok(...) | T.T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1115:28:1115:41 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1115:28:1115:41 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1115:39:1115:40 | S1 | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1117:17:1117:17 | x | | file://:0:0:0:0 | Result | -| main.rs:1117:17:1117:17 | x | T | file://:0:0:0:0 | Result | -| main.rs:1117:17:1117:17 | x | T.T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1117:17:1117:18 | TryExpr | | file://:0:0:0:0 | Result | -| main.rs:1117:17:1117:18 | TryExpr | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1117:17:1117:29 | ... .map(...) | | file://:0:0:0:0 | Result | -| main.rs:1118:9:1118:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1118:9:1118:22 | ...::Ok(...) | E | main.rs:1097:5:1098:14 | S2 | -| main.rs:1118:9:1118:22 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1118:20:1118:21 | S1 | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1122:30:1122:34 | input | | file://:0:0:0:0 | Result | -| main.rs:1122:30:1122:34 | input | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1122:30:1122:34 | input | T | main.rs:1122:20:1122:27 | T | -| main.rs:1122:69:1129:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:1122:69:1129:5 | { ... } | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1122:69:1129:5 | { ... } | T | main.rs:1122:20:1122:27 | T | -| main.rs:1123:13:1123:17 | value | | main.rs:1122:20:1122:27 | T | -| main.rs:1123:21:1123:25 | input | | file://:0:0:0:0 | Result | -| main.rs:1123:21:1123:25 | input | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1123:21:1123:25 | input | T | main.rs:1122:20:1122:27 | T | -| main.rs:1123:21:1123:26 | TryExpr | | main.rs:1122:20:1122:27 | T | -| main.rs:1124:22:1124:38 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1124:22:1124:38 | ...::Ok(...) | T | main.rs:1122:20:1122:27 | T | -| main.rs:1124:22:1127:10 | ... .and_then(...) | | file://:0:0:0:0 | Result | -| main.rs:1124:33:1124:37 | value | | main.rs:1122:20:1122:27 | T | -| main.rs:1124:53:1127:9 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:1124:53:1127:9 | { ... } | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1126:13:1126:34 | ...::Ok::<...>(...) | | file://:0:0:0:0 | Result | -| main.rs:1126:13:1126:34 | ...::Ok::<...>(...) | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1128:9:1128:23 | ...::Err(...) | | file://:0:0:0:0 | Result | -| main.rs:1128:9:1128:23 | ...::Err(...) | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1128:9:1128:23 | ...::Err(...) | T | main.rs:1122:20:1122:27 | T | -| main.rs:1128:21:1128:22 | S1 | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1132:37:1132:52 | try_same_error(...) | | file://:0:0:0:0 | Result | -| main.rs:1132:37:1132:52 | try_same_error(...) | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1132:37:1132:52 | try_same_error(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1136:37:1136:55 | try_convert_error(...) | | file://:0:0:0:0 | Result | -| main.rs:1136:37:1136:55 | try_convert_error(...) | E | main.rs:1097:5:1098:14 | S2 | -| main.rs:1136:37:1136:55 | try_convert_error(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1140:37:1140:49 | try_chained(...) | | file://:0:0:0:0 | Result | -| main.rs:1140:37:1140:49 | try_chained(...) | E | main.rs:1097:5:1098:14 | S2 | -| main.rs:1140:37:1140:49 | try_chained(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1144:37:1144:63 | try_complex(...) | | file://:0:0:0:0 | Result | -| main.rs:1144:37:1144:63 | try_complex(...) | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1144:37:1144:63 | try_complex(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1144:49:1144:62 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1144:49:1144:62 | ...::Ok(...) | E | main.rs:1094:5:1095:14 | S1 | -| main.rs:1144:49:1144:62 | ...::Ok(...) | T | main.rs:1094:5:1095:14 | S1 | -| main.rs:1144:60:1144:61 | S1 | | main.rs:1094:5:1095:14 | S1 | -| main.rs:1152:5:1152:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1153:5:1153:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1153:20:1153:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:1153:41:1153:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:370:26:370:29 | SelfParam | | main.rs:369:5:373:5 | Self [trait OverlappingTrait] | +| main.rs:372:28:372:31 | SelfParam | | main.rs:369:5:373:5 | Self [trait OverlappingTrait] | +| main.rs:372:34:372:35 | s1 | | main.rs:366:5:367:14 | S1 | +| main.rs:377:26:377:29 | SelfParam | | main.rs:366:5:367:14 | S1 | +| main.rs:377:38:379:9 | { ... } | | main.rs:366:5:367:14 | S1 | +| main.rs:382:28:382:31 | SelfParam | | main.rs:366:5:367:14 | S1 | +| main.rs:382:34:382:35 | s1 | | main.rs:366:5:367:14 | S1 | +| main.rs:382:48:384:9 | { ... } | | main.rs:366:5:367:14 | S1 | +| main.rs:389:26:389:29 | SelfParam | | main.rs:366:5:367:14 | S1 | +| main.rs:389:38:391:9 | { ... } | | main.rs:366:5:367:14 | S1 | +| main.rs:390:13:390:16 | self | | main.rs:366:5:367:14 | S1 | +| main.rs:394:28:394:31 | SelfParam | | main.rs:366:5:367:14 | S1 | +| main.rs:394:40:396:9 | { ... } | | main.rs:366:5:367:14 | S1 | +| main.rs:395:13:395:16 | self | | main.rs:366:5:367:14 | S1 | +| main.rs:400:13:400:13 | x | | main.rs:366:5:367:14 | S1 | +| main.rs:400:17:400:18 | S1 | | main.rs:366:5:367:14 | S1 | +| main.rs:401:26:401:26 | x | | main.rs:366:5:367:14 | S1 | +| main.rs:401:26:401:42 | x.common_method() | | main.rs:366:5:367:14 | S1 | +| main.rs:402:26:402:26 | x | | main.rs:366:5:367:14 | S1 | +| main.rs:402:26:402:44 | x.common_method_2() | | main.rs:366:5:367:14 | S1 | +| main.rs:419:19:419:22 | SelfParam | | main.rs:417:5:420:5 | Self [trait FirstTrait] | +| main.rs:424:19:424:22 | SelfParam | | main.rs:422:5:425:5 | Self [trait SecondTrait] | +| main.rs:427:64:427:64 | x | | main.rs:427:45:427:61 | T | +| main.rs:429:13:429:14 | s1 | | main.rs:427:35:427:42 | I | +| main.rs:429:18:429:18 | x | | main.rs:427:45:427:61 | T | +| main.rs:429:18:429:27 | x.method() | | main.rs:427:35:427:42 | I | +| main.rs:430:26:430:27 | s1 | | main.rs:427:35:427:42 | I | +| main.rs:433:65:433:65 | x | | main.rs:433:46:433:62 | T | +| main.rs:435:13:435:14 | s2 | | main.rs:433:36:433:43 | I | +| main.rs:435:18:435:18 | x | | main.rs:433:46:433:62 | T | +| main.rs:435:18:435:27 | x.method() | | main.rs:433:36:433:43 | I | +| main.rs:436:26:436:27 | s2 | | main.rs:433:36:433:43 | I | +| main.rs:439:49:439:49 | x | | main.rs:439:30:439:46 | T | +| main.rs:440:13:440:13 | s | | main.rs:409:5:410:14 | S1 | +| main.rs:440:17:440:17 | x | | main.rs:439:30:439:46 | T | +| main.rs:440:17:440:26 | x.method() | | main.rs:409:5:410:14 | S1 | +| main.rs:441:26:441:26 | s | | main.rs:409:5:410:14 | S1 | +| main.rs:444:53:444:53 | x | | main.rs:444:34:444:50 | T | +| main.rs:445:13:445:13 | s | | main.rs:409:5:410:14 | S1 | +| main.rs:445:17:445:17 | x | | main.rs:444:34:444:50 | T | +| main.rs:445:17:445:26 | x.method() | | main.rs:409:5:410:14 | S1 | +| main.rs:446:26:446:26 | s | | main.rs:409:5:410:14 | S1 | +| main.rs:450:16:450:19 | SelfParam | | main.rs:449:5:453:5 | Self [trait Pair] | +| main.rs:452:16:452:19 | SelfParam | | main.rs:449:5:453:5 | Self [trait Pair] | +| main.rs:455:58:455:58 | x | | main.rs:455:41:455:55 | T | +| main.rs:455:64:455:64 | y | | main.rs:455:41:455:55 | T | +| main.rs:457:13:457:14 | s1 | | main.rs:409:5:410:14 | S1 | +| main.rs:457:18:457:18 | x | | main.rs:455:41:455:55 | T | +| main.rs:457:18:457:24 | x.fst() | | main.rs:409:5:410:14 | S1 | +| main.rs:458:13:458:14 | s2 | | main.rs:412:5:413:14 | S2 | +| main.rs:458:18:458:18 | y | | main.rs:455:41:455:55 | T | +| main.rs:458:18:458:24 | y.snd() | | main.rs:412:5:413:14 | S2 | +| main.rs:459:32:459:33 | s1 | | main.rs:409:5:410:14 | S1 | +| main.rs:459:36:459:37 | s2 | | main.rs:412:5:413:14 | S2 | +| main.rs:462:69:462:69 | x | | main.rs:462:52:462:66 | T | +| main.rs:462:75:462:75 | y | | main.rs:462:52:462:66 | T | +| main.rs:464:13:464:14 | s1 | | main.rs:409:5:410:14 | S1 | +| main.rs:464:18:464:18 | x | | main.rs:462:52:462:66 | T | +| main.rs:464:18:464:24 | x.fst() | | main.rs:409:5:410:14 | S1 | +| main.rs:465:13:465:14 | s2 | | main.rs:462:41:462:49 | T2 | +| main.rs:465:18:465:18 | y | | main.rs:462:52:462:66 | T | +| main.rs:465:18:465:24 | y.snd() | | main.rs:462:41:462:49 | T2 | +| main.rs:466:32:466:33 | s1 | | main.rs:409:5:410:14 | S1 | +| main.rs:466:36:466:37 | s2 | | main.rs:462:41:462:49 | T2 | +| main.rs:482:15:482:18 | SelfParam | | main.rs:481:5:490:5 | Self [trait MyTrait] | +| main.rs:484:15:484:18 | SelfParam | | main.rs:481:5:490:5 | Self [trait MyTrait] | +| main.rs:487:9:489:9 | { ... } | | main.rs:481:19:481:19 | A | +| main.rs:488:13:488:16 | self | | main.rs:481:5:490:5 | Self [trait MyTrait] | +| main.rs:488:13:488:21 | self.m1() | | main.rs:481:19:481:19 | A | +| main.rs:493:43:493:43 | x | | main.rs:493:26:493:40 | T2 | +| main.rs:493:56:495:5 | { ... } | | main.rs:493:22:493:23 | T1 | +| main.rs:494:9:494:9 | x | | main.rs:493:26:493:40 | T2 | +| main.rs:494:9:494:14 | x.m1() | | main.rs:493:22:493:23 | T1 | +| main.rs:498:49:498:49 | x | | main.rs:471:5:474:5 | MyThing | +| main.rs:498:49:498:49 | x | T | main.rs:498:32:498:46 | T2 | +| main.rs:498:71:500:5 | { ... } | | main.rs:498:28:498:29 | T1 | +| main.rs:499:9:499:9 | x | | main.rs:471:5:474:5 | MyThing | +| main.rs:499:9:499:9 | x | T | main.rs:498:32:498:46 | T2 | +| main.rs:499:9:499:11 | x.a | | main.rs:498:32:498:46 | T2 | +| main.rs:499:9:499:16 | ... .m1() | | main.rs:498:28:498:29 | T1 | +| main.rs:503:15:503:18 | SelfParam | | main.rs:471:5:474:5 | MyThing | +| main.rs:503:15:503:18 | SelfParam | T | main.rs:502:10:502:10 | T | +| main.rs:503:26:505:9 | { ... } | | main.rs:502:10:502:10 | T | +| main.rs:504:13:504:16 | self | | main.rs:471:5:474:5 | MyThing | +| main.rs:504:13:504:16 | self | T | main.rs:502:10:502:10 | T | +| main.rs:504:13:504:18 | self.a | | main.rs:502:10:502:10 | T | +| main.rs:509:13:509:13 | x | | main.rs:471:5:474:5 | MyThing | +| main.rs:509:13:509:13 | x | T | main.rs:476:5:477:14 | S1 | +| main.rs:509:17:509:33 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | +| main.rs:509:17:509:33 | MyThing {...} | T | main.rs:476:5:477:14 | S1 | +| main.rs:509:30:509:31 | S1 | | main.rs:476:5:477:14 | S1 | +| main.rs:510:13:510:13 | y | | main.rs:471:5:474:5 | MyThing | +| main.rs:510:13:510:13 | y | T | main.rs:478:5:479:14 | S2 | +| main.rs:510:17:510:33 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | +| main.rs:510:17:510:33 | MyThing {...} | T | main.rs:478:5:479:14 | S2 | +| main.rs:510:30:510:31 | S2 | | main.rs:478:5:479:14 | S2 | +| main.rs:512:26:512:26 | x | | main.rs:471:5:474:5 | MyThing | +| main.rs:512:26:512:26 | x | T | main.rs:476:5:477:14 | S1 | +| main.rs:512:26:512:31 | x.m1() | | main.rs:476:5:477:14 | S1 | +| main.rs:513:26:513:26 | y | | main.rs:471:5:474:5 | MyThing | +| main.rs:513:26:513:26 | y | T | main.rs:478:5:479:14 | S2 | +| main.rs:513:26:513:31 | y.m1() | | main.rs:478:5:479:14 | S2 | +| main.rs:515:13:515:13 | x | | main.rs:471:5:474:5 | MyThing | +| main.rs:515:13:515:13 | x | T | main.rs:476:5:477:14 | S1 | +| main.rs:515:17:515:33 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | +| main.rs:515:17:515:33 | MyThing {...} | T | main.rs:476:5:477:14 | S1 | +| main.rs:515:30:515:31 | S1 | | main.rs:476:5:477:14 | S1 | +| main.rs:516:13:516:13 | y | | main.rs:471:5:474:5 | MyThing | +| main.rs:516:13:516:13 | y | T | main.rs:478:5:479:14 | S2 | +| main.rs:516:17:516:33 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | +| main.rs:516:17:516:33 | MyThing {...} | T | main.rs:478:5:479:14 | S2 | +| main.rs:516:30:516:31 | S2 | | main.rs:478:5:479:14 | S2 | +| main.rs:518:26:518:26 | x | | main.rs:471:5:474:5 | MyThing | +| main.rs:518:26:518:26 | x | T | main.rs:476:5:477:14 | S1 | +| main.rs:518:26:518:31 | x.m2() | | main.rs:476:5:477:14 | S1 | +| main.rs:519:26:519:26 | y | | main.rs:471:5:474:5 | MyThing | +| main.rs:519:26:519:26 | y | T | main.rs:478:5:479:14 | S2 | +| main.rs:519:26:519:31 | y.m2() | | main.rs:478:5:479:14 | S2 | +| main.rs:521:13:521:14 | x2 | | main.rs:471:5:474:5 | MyThing | +| main.rs:521:13:521:14 | x2 | T | main.rs:476:5:477:14 | S1 | +| main.rs:521:18:521:34 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | +| main.rs:521:18:521:34 | MyThing {...} | T | main.rs:476:5:477:14 | S1 | +| main.rs:521:31:521:32 | S1 | | main.rs:476:5:477:14 | S1 | +| main.rs:522:13:522:14 | y2 | | main.rs:471:5:474:5 | MyThing | +| main.rs:522:13:522:14 | y2 | T | main.rs:478:5:479:14 | S2 | +| main.rs:522:18:522:34 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | +| main.rs:522:18:522:34 | MyThing {...} | T | main.rs:478:5:479:14 | S2 | +| main.rs:522:31:522:32 | S2 | | main.rs:478:5:479:14 | S2 | +| main.rs:524:26:524:42 | call_trait_m1(...) | | main.rs:476:5:477:14 | S1 | +| main.rs:524:40:524:41 | x2 | | main.rs:471:5:474:5 | MyThing | +| main.rs:524:40:524:41 | x2 | T | main.rs:476:5:477:14 | S1 | +| main.rs:525:26:525:42 | call_trait_m1(...) | | main.rs:478:5:479:14 | S2 | +| main.rs:525:40:525:41 | y2 | | main.rs:471:5:474:5 | MyThing | +| main.rs:525:40:525:41 | y2 | T | main.rs:478:5:479:14 | S2 | +| main.rs:527:13:527:14 | x3 | | main.rs:471:5:474:5 | MyThing | +| main.rs:527:13:527:14 | x3 | T | main.rs:471:5:474:5 | MyThing | +| main.rs:527:13:527:14 | x3 | T.T | main.rs:476:5:477:14 | S1 | +| main.rs:527:18:529:9 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | +| main.rs:527:18:529:9 | MyThing {...} | T | main.rs:471:5:474:5 | MyThing | +| main.rs:527:18:529:9 | MyThing {...} | T.T | main.rs:476:5:477:14 | S1 | +| main.rs:528:16:528:32 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | +| main.rs:528:16:528:32 | MyThing {...} | T | main.rs:476:5:477:14 | S1 | +| main.rs:528:29:528:30 | S1 | | main.rs:476:5:477:14 | S1 | +| main.rs:530:13:530:14 | y3 | | main.rs:471:5:474:5 | MyThing | +| main.rs:530:13:530:14 | y3 | T | main.rs:471:5:474:5 | MyThing | +| main.rs:530:13:530:14 | y3 | T.T | main.rs:478:5:479:14 | S2 | +| main.rs:530:18:532:9 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | +| main.rs:530:18:532:9 | MyThing {...} | T | main.rs:471:5:474:5 | MyThing | +| main.rs:530:18:532:9 | MyThing {...} | T.T | main.rs:478:5:479:14 | S2 | +| main.rs:531:16:531:32 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | +| main.rs:531:16:531:32 | MyThing {...} | T | main.rs:478:5:479:14 | S2 | +| main.rs:531:29:531:30 | S2 | | main.rs:478:5:479:14 | S2 | +| main.rs:534:13:534:13 | a | | main.rs:476:5:477:14 | S1 | +| main.rs:534:17:534:39 | call_trait_thing_m1(...) | | main.rs:476:5:477:14 | S1 | +| main.rs:534:37:534:38 | x3 | | main.rs:471:5:474:5 | MyThing | +| main.rs:534:37:534:38 | x3 | T | main.rs:471:5:474:5 | MyThing | +| main.rs:534:37:534:38 | x3 | T.T | main.rs:476:5:477:14 | S1 | +| main.rs:535:26:535:26 | a | | main.rs:476:5:477:14 | S1 | +| main.rs:536:13:536:13 | b | | main.rs:478:5:479:14 | S2 | +| main.rs:536:17:536:39 | call_trait_thing_m1(...) | | main.rs:478:5:479:14 | S2 | +| main.rs:536:37:536:38 | y3 | | main.rs:471:5:474:5 | MyThing | +| main.rs:536:37:536:38 | y3 | T | main.rs:471:5:474:5 | MyThing | +| main.rs:536:37:536:38 | y3 | T.T | main.rs:478:5:479:14 | S2 | +| main.rs:537:26:537:26 | b | | main.rs:478:5:479:14 | S2 | +| main.rs:548:19:548:22 | SelfParam | | main.rs:542:5:545:5 | Wrapper | +| main.rs:548:19:548:22 | SelfParam | A | main.rs:547:10:547:10 | A | +| main.rs:548:30:550:9 | { ... } | | main.rs:547:10:547:10 | A | +| main.rs:549:13:549:16 | self | | main.rs:542:5:545:5 | Wrapper | +| main.rs:549:13:549:16 | self | A | main.rs:547:10:547:10 | A | +| main.rs:549:13:549:22 | self.field | | main.rs:547:10:547:10 | A | +| main.rs:557:15:557:18 | SelfParam | | main.rs:553:5:567:5 | Self [trait MyTrait] | +| main.rs:559:15:559:18 | SelfParam | | main.rs:553:5:567:5 | Self [trait MyTrait] | +| main.rs:563:9:566:9 | { ... } | | main.rs:554:9:554:28 | AssociatedType | +| main.rs:564:13:564:16 | self | | main.rs:553:5:567:5 | Self [trait MyTrait] | +| main.rs:564:13:564:21 | self.m1() | | main.rs:554:9:554:28 | AssociatedType | +| main.rs:565:13:565:43 | ...::default(...) | | main.rs:554:9:554:28 | AssociatedType | +| main.rs:573:19:573:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:573:19:573:23 | SelfParam | &T | main.rs:569:5:579:5 | Self [trait MyTraitAssoc2] | +| main.rs:573:26:573:26 | a | | main.rs:573:16:573:16 | A | +| main.rs:575:22:575:26 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:575:22:575:26 | SelfParam | &T | main.rs:569:5:579:5 | Self [trait MyTraitAssoc2] | +| main.rs:575:29:575:29 | a | | main.rs:575:19:575:19 | A | +| main.rs:575:35:575:35 | b | | main.rs:575:19:575:19 | A | +| main.rs:575:75:578:9 | { ... } | | main.rs:570:9:570:52 | GenericAssociatedType | +| main.rs:576:13:576:16 | self | | file://:0:0:0:0 | & | +| main.rs:576:13:576:16 | self | &T | main.rs:569:5:579:5 | Self [trait MyTraitAssoc2] | +| main.rs:576:13:576:23 | self.put(...) | | main.rs:570:9:570:52 | GenericAssociatedType | +| main.rs:576:22:576:22 | a | | main.rs:575:19:575:19 | A | +| main.rs:577:13:577:16 | self | | file://:0:0:0:0 | & | +| main.rs:577:13:577:16 | self | &T | main.rs:569:5:579:5 | Self [trait MyTraitAssoc2] | +| main.rs:577:13:577:23 | self.put(...) | | main.rs:570:9:570:52 | GenericAssociatedType | +| main.rs:577:22:577:22 | b | | main.rs:575:19:575:19 | A | +| main.rs:586:21:586:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:586:21:586:25 | SelfParam | &T | main.rs:581:5:591:5 | Self [trait TraitMultipleAssoc] | +| main.rs:588:20:588:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:588:20:588:24 | SelfParam | &T | main.rs:581:5:591:5 | Self [trait TraitMultipleAssoc] | +| main.rs:590:20:590:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:590:20:590:24 | SelfParam | &T | main.rs:581:5:591:5 | Self [trait TraitMultipleAssoc] | +| main.rs:606:15:606:18 | SelfParam | | main.rs:593:5:594:13 | S | +| main.rs:606:45:608:9 | { ... } | | main.rs:599:5:600:14 | AT | +| main.rs:607:13:607:14 | AT | | main.rs:599:5:600:14 | AT | +| main.rs:616:19:616:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:616:19:616:23 | SelfParam | &T | main.rs:593:5:594:13 | S | +| main.rs:616:26:616:26 | a | | main.rs:616:16:616:16 | A | +| main.rs:616:46:618:9 | { ... } | | main.rs:542:5:545:5 | Wrapper | +| main.rs:616:46:618:9 | { ... } | A | main.rs:616:16:616:16 | A | +| main.rs:617:13:617:32 | Wrapper {...} | | main.rs:542:5:545:5 | Wrapper | +| main.rs:617:13:617:32 | Wrapper {...} | A | main.rs:616:16:616:16 | A | +| main.rs:617:30:617:30 | a | | main.rs:616:16:616:16 | A | +| main.rs:625:15:625:18 | SelfParam | | main.rs:596:5:597:14 | S2 | +| main.rs:625:45:627:9 | { ... } | | main.rs:542:5:545:5 | Wrapper | +| main.rs:625:45:627:9 | { ... } | A | main.rs:596:5:597:14 | S2 | +| main.rs:626:13:626:35 | Wrapper {...} | | main.rs:542:5:545:5 | Wrapper | +| main.rs:626:13:626:35 | Wrapper {...} | A | main.rs:596:5:597:14 | S2 | +| main.rs:626:30:626:33 | self | | main.rs:596:5:597:14 | S2 | +| main.rs:632:30:634:9 | { ... } | | main.rs:542:5:545:5 | Wrapper | +| main.rs:632:30:634:9 | { ... } | A | main.rs:596:5:597:14 | S2 | +| main.rs:633:13:633:33 | Wrapper {...} | | main.rs:542:5:545:5 | Wrapper | +| main.rs:633:13:633:33 | Wrapper {...} | A | main.rs:596:5:597:14 | S2 | +| main.rs:633:30:633:31 | S2 | | main.rs:596:5:597:14 | S2 | +| main.rs:638:22:638:26 | thing | | main.rs:638:10:638:19 | T | +| main.rs:639:9:639:13 | thing | | main.rs:638:10:638:19 | T | +| main.rs:646:21:646:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:646:21:646:25 | SelfParam | &T | main.rs:599:5:600:14 | AT | +| main.rs:646:34:648:9 | { ... } | | main.rs:599:5:600:14 | AT | +| main.rs:647:13:647:14 | AT | | main.rs:599:5:600:14 | AT | +| main.rs:650:20:650:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:650:20:650:24 | SelfParam | &T | main.rs:599:5:600:14 | AT | +| main.rs:650:43:652:9 | { ... } | | main.rs:593:5:594:13 | S | +| main.rs:651:13:651:13 | S | | main.rs:593:5:594:13 | S | +| main.rs:654:20:654:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:654:20:654:24 | SelfParam | &T | main.rs:599:5:600:14 | AT | +| main.rs:654:43:656:9 | { ... } | | main.rs:596:5:597:14 | S2 | +| main.rs:655:13:655:14 | S2 | | main.rs:596:5:597:14 | S2 | +| main.rs:660:13:660:14 | x1 | | main.rs:593:5:594:13 | S | +| main.rs:660:18:660:18 | S | | main.rs:593:5:594:13 | S | +| main.rs:662:26:662:27 | x1 | | main.rs:593:5:594:13 | S | +| main.rs:662:26:662:32 | x1.m1() | | main.rs:599:5:600:14 | AT | +| main.rs:664:13:664:14 | x2 | | main.rs:593:5:594:13 | S | +| main.rs:664:18:664:18 | S | | main.rs:593:5:594:13 | S | +| main.rs:666:13:666:13 | y | | main.rs:599:5:600:14 | AT | +| main.rs:666:17:666:18 | x2 | | main.rs:593:5:594:13 | S | +| main.rs:666:17:666:23 | x2.m2() | | main.rs:599:5:600:14 | AT | +| main.rs:667:26:667:26 | y | | main.rs:599:5:600:14 | AT | +| main.rs:669:13:669:14 | x3 | | main.rs:593:5:594:13 | S | +| main.rs:669:18:669:18 | S | | main.rs:593:5:594:13 | S | +| main.rs:671:26:671:27 | x3 | | main.rs:593:5:594:13 | S | +| main.rs:671:26:671:34 | x3.put(...) | | main.rs:542:5:545:5 | Wrapper | +| main.rs:674:26:674:27 | x3 | | main.rs:593:5:594:13 | S | +| main.rs:676:20:676:20 | S | | main.rs:593:5:594:13 | S | +| main.rs:679:13:679:14 | x5 | | main.rs:596:5:597:14 | S2 | +| main.rs:679:18:679:19 | S2 | | main.rs:596:5:597:14 | S2 | +| main.rs:680:26:680:27 | x5 | | main.rs:596:5:597:14 | S2 | +| main.rs:680:26:680:32 | x5.m1() | | main.rs:542:5:545:5 | Wrapper | +| main.rs:680:26:680:32 | x5.m1() | A | main.rs:596:5:597:14 | S2 | +| main.rs:681:13:681:14 | x6 | | main.rs:596:5:597:14 | S2 | +| main.rs:681:18:681:19 | S2 | | main.rs:596:5:597:14 | S2 | +| main.rs:682:26:682:27 | x6 | | main.rs:596:5:597:14 | S2 | +| main.rs:682:26:682:32 | x6.m2() | | main.rs:542:5:545:5 | Wrapper | +| main.rs:682:26:682:32 | x6.m2() | A | main.rs:596:5:597:14 | S2 | +| main.rs:684:13:684:22 | assoc_zero | | main.rs:599:5:600:14 | AT | +| main.rs:684:26:684:27 | AT | | main.rs:599:5:600:14 | AT | +| main.rs:684:26:684:38 | AT.get_zero() | | main.rs:599:5:600:14 | AT | +| main.rs:685:13:685:21 | assoc_one | | main.rs:593:5:594:13 | S | +| main.rs:685:25:685:26 | AT | | main.rs:599:5:600:14 | AT | +| main.rs:685:25:685:36 | AT.get_one() | | main.rs:593:5:594:13 | S | +| main.rs:686:13:686:21 | assoc_two | | main.rs:596:5:597:14 | S2 | +| main.rs:686:25:686:26 | AT | | main.rs:599:5:600:14 | AT | +| main.rs:686:25:686:36 | AT.get_two() | | main.rs:596:5:597:14 | S2 | +| main.rs:703:15:703:18 | SelfParam | | main.rs:691:5:695:5 | MyEnum | +| main.rs:703:15:703:18 | SelfParam | A | main.rs:702:10:702:10 | T | +| main.rs:703:26:708:9 | { ... } | | main.rs:702:10:702:10 | T | +| main.rs:704:13:707:13 | match self { ... } | | main.rs:702:10:702:10 | T | +| main.rs:704:19:704:22 | self | | main.rs:691:5:695:5 | MyEnum | +| main.rs:704:19:704:22 | self | A | main.rs:702:10:702:10 | T | +| main.rs:705:28:705:28 | a | | main.rs:702:10:702:10 | T | +| main.rs:705:34:705:34 | a | | main.rs:702:10:702:10 | T | +| main.rs:706:30:706:30 | a | | main.rs:702:10:702:10 | T | +| main.rs:706:37:706:37 | a | | main.rs:702:10:702:10 | T | +| main.rs:712:13:712:13 | x | | main.rs:691:5:695:5 | MyEnum | +| main.rs:712:13:712:13 | x | A | main.rs:697:5:698:14 | S1 | +| main.rs:712:17:712:30 | ...::C1(...) | | main.rs:691:5:695:5 | MyEnum | +| main.rs:712:17:712:30 | ...::C1(...) | A | main.rs:697:5:698:14 | S1 | +| main.rs:712:28:712:29 | S1 | | main.rs:697:5:698:14 | S1 | +| main.rs:713:13:713:13 | y | | main.rs:691:5:695:5 | MyEnum | +| main.rs:713:13:713:13 | y | A | main.rs:699:5:700:14 | S2 | +| main.rs:713:17:713:36 | ...::C2 {...} | | main.rs:691:5:695:5 | MyEnum | +| main.rs:713:17:713:36 | ...::C2 {...} | A | main.rs:699:5:700:14 | S2 | +| main.rs:713:33:713:34 | S2 | | main.rs:699:5:700:14 | S2 | +| main.rs:715:26:715:26 | x | | main.rs:691:5:695:5 | MyEnum | +| main.rs:715:26:715:26 | x | A | main.rs:697:5:698:14 | S1 | +| main.rs:715:26:715:31 | x.m1() | | main.rs:697:5:698:14 | S1 | +| main.rs:716:26:716:26 | y | | main.rs:691:5:695:5 | MyEnum | +| main.rs:716:26:716:26 | y | A | main.rs:699:5:700:14 | S2 | +| main.rs:716:26:716:31 | y.m1() | | main.rs:699:5:700:14 | S2 | +| main.rs:738:15:738:18 | SelfParam | | main.rs:736:5:739:5 | Self [trait MyTrait1] | +| main.rs:742:15:742:18 | SelfParam | | main.rs:741:5:752:5 | Self [trait MyTrait2] | +| main.rs:745:9:751:9 | { ... } | | main.rs:741:20:741:22 | Tr2 | +| main.rs:746:13:750:13 | if ... {...} else {...} | | main.rs:741:20:741:22 | Tr2 | +| main.rs:746:26:748:13 | { ... } | | main.rs:741:20:741:22 | Tr2 | +| main.rs:747:17:747:20 | self | | main.rs:741:5:752:5 | Self [trait MyTrait2] | +| main.rs:747:17:747:25 | self.m1() | | main.rs:741:20:741:22 | Tr2 | +| main.rs:748:20:750:13 | { ... } | | main.rs:741:20:741:22 | Tr2 | +| main.rs:749:17:749:30 | ...::m1(...) | | main.rs:741:20:741:22 | Tr2 | +| main.rs:749:26:749:29 | self | | main.rs:741:5:752:5 | Self [trait MyTrait2] | +| main.rs:755:15:755:18 | SelfParam | | main.rs:754:5:765:5 | Self [trait MyTrait3] | +| main.rs:758:9:764:9 | { ... } | | main.rs:754:20:754:22 | Tr3 | +| main.rs:759:13:763:13 | if ... {...} else {...} | | main.rs:754:20:754:22 | Tr3 | +| main.rs:759:26:761:13 | { ... } | | main.rs:754:20:754:22 | Tr3 | +| main.rs:760:17:760:20 | self | | main.rs:754:5:765:5 | Self [trait MyTrait3] | +| main.rs:760:17:760:25 | self.m2() | | main.rs:721:5:724:5 | MyThing | +| main.rs:760:17:760:25 | self.m2() | A | main.rs:754:20:754:22 | Tr3 | +| main.rs:760:17:760:27 | ... .a | | main.rs:754:20:754:22 | Tr3 | +| main.rs:761:20:763:13 | { ... } | | main.rs:754:20:754:22 | Tr3 | +| main.rs:762:17:762:30 | ...::m2(...) | | main.rs:721:5:724:5 | MyThing | +| main.rs:762:17:762:30 | ...::m2(...) | A | main.rs:754:20:754:22 | Tr3 | +| main.rs:762:17:762:32 | ... .a | | main.rs:754:20:754:22 | Tr3 | +| main.rs:762:26:762:29 | self | | main.rs:754:5:765:5 | Self [trait MyTrait3] | +| main.rs:769:15:769:18 | SelfParam | | main.rs:721:5:724:5 | MyThing | +| main.rs:769:15:769:18 | SelfParam | A | main.rs:767:10:767:10 | T | +| main.rs:769:26:771:9 | { ... } | | main.rs:767:10:767:10 | T | +| main.rs:770:13:770:16 | self | | main.rs:721:5:724:5 | MyThing | +| main.rs:770:13:770:16 | self | A | main.rs:767:10:767:10 | T | +| main.rs:770:13:770:18 | self.a | | main.rs:767:10:767:10 | T | +| main.rs:778:15:778:18 | SelfParam | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:778:15:778:18 | SelfParam | A | main.rs:776:10:776:10 | T | +| main.rs:778:35:780:9 | { ... } | | main.rs:721:5:724:5 | MyThing | +| main.rs:778:35:780:9 | { ... } | A | main.rs:776:10:776:10 | T | +| main.rs:779:13:779:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | +| main.rs:779:13:779:33 | MyThing {...} | A | main.rs:776:10:776:10 | T | +| main.rs:779:26:779:29 | self | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:779:26:779:29 | self | A | main.rs:776:10:776:10 | T | +| main.rs:779:26:779:31 | self.a | | main.rs:776:10:776:10 | T | +| main.rs:788:13:788:13 | x | | main.rs:721:5:724:5 | MyThing | +| main.rs:788:13:788:13 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:788:17:788:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | +| main.rs:788:17:788:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | +| main.rs:788:30:788:31 | S1 | | main.rs:731:5:732:14 | S1 | +| main.rs:789:13:789:13 | y | | main.rs:721:5:724:5 | MyThing | +| main.rs:789:13:789:13 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:789:17:789:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | +| main.rs:789:17:789:33 | MyThing {...} | A | main.rs:733:5:734:14 | S2 | +| main.rs:789:30:789:31 | S2 | | main.rs:733:5:734:14 | S2 | +| main.rs:791:26:791:26 | x | | main.rs:721:5:724:5 | MyThing | +| main.rs:791:26:791:26 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:791:26:791:31 | x.m1() | | main.rs:731:5:732:14 | S1 | +| main.rs:792:26:792:26 | y | | main.rs:721:5:724:5 | MyThing | +| main.rs:792:26:792:26 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:792:26:792:31 | y.m1() | | main.rs:733:5:734:14 | S2 | +| main.rs:794:13:794:13 | x | | main.rs:721:5:724:5 | MyThing | +| main.rs:794:13:794:13 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:794:17:794:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | +| main.rs:794:17:794:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | +| main.rs:794:30:794:31 | S1 | | main.rs:731:5:732:14 | S1 | +| main.rs:795:13:795:13 | y | | main.rs:721:5:724:5 | MyThing | +| main.rs:795:13:795:13 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:795:17:795:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | +| main.rs:795:17:795:33 | MyThing {...} | A | main.rs:733:5:734:14 | S2 | +| main.rs:795:30:795:31 | S2 | | main.rs:733:5:734:14 | S2 | +| main.rs:797:26:797:26 | x | | main.rs:721:5:724:5 | MyThing | +| main.rs:797:26:797:26 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:797:26:797:31 | x.m2() | | main.rs:731:5:732:14 | S1 | +| main.rs:798:26:798:26 | y | | main.rs:721:5:724:5 | MyThing | +| main.rs:798:26:798:26 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:798:26:798:31 | y.m2() | | main.rs:733:5:734:14 | S2 | +| main.rs:800:13:800:13 | x | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:800:13:800:13 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:800:17:800:34 | MyThing2 {...} | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:800:17:800:34 | MyThing2 {...} | A | main.rs:731:5:732:14 | S1 | +| main.rs:800:31:800:32 | S1 | | main.rs:731:5:732:14 | S1 | +| main.rs:801:13:801:13 | y | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:801:13:801:13 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:801:17:801:34 | MyThing2 {...} | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:801:17:801:34 | MyThing2 {...} | A | main.rs:733:5:734:14 | S2 | +| main.rs:801:31:801:32 | S2 | | main.rs:733:5:734:14 | S2 | +| main.rs:803:26:803:26 | x | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:803:26:803:26 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:803:26:803:31 | x.m3() | | main.rs:731:5:732:14 | S1 | +| main.rs:804:26:804:26 | y | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:804:26:804:26 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:804:26:804:31 | y.m3() | | main.rs:733:5:734:14 | S2 | +| main.rs:822:22:822:22 | x | | file://:0:0:0:0 | & | +| main.rs:822:22:822:22 | x | &T | main.rs:822:11:822:19 | T | +| main.rs:822:35:824:5 | { ... } | | file://:0:0:0:0 | & | +| main.rs:822:35:824:5 | { ... } | &T | main.rs:822:11:822:19 | T | +| main.rs:823:9:823:9 | x | | file://:0:0:0:0 | & | +| main.rs:823:9:823:9 | x | &T | main.rs:822:11:822:19 | T | +| main.rs:827:17:827:20 | SelfParam | | main.rs:812:5:813:14 | S1 | +| main.rs:827:29:829:9 | { ... } | | main.rs:815:5:816:14 | S2 | +| main.rs:828:13:828:14 | S2 | | main.rs:815:5:816:14 | S2 | +| main.rs:832:21:832:21 | x | | main.rs:832:13:832:14 | T1 | +| main.rs:835:5:837:5 | { ... } | | main.rs:832:17:832:18 | T2 | +| main.rs:836:9:836:9 | x | | main.rs:832:13:832:14 | T1 | +| main.rs:836:9:836:16 | x.into() | | main.rs:832:17:832:18 | T2 | +| main.rs:840:13:840:13 | x | | main.rs:812:5:813:14 | S1 | +| main.rs:840:17:840:18 | S1 | | main.rs:812:5:813:14 | S1 | +| main.rs:841:26:841:31 | id(...) | | file://:0:0:0:0 | & | +| main.rs:841:26:841:31 | id(...) | &T | main.rs:812:5:813:14 | S1 | +| main.rs:841:29:841:30 | &x | | file://:0:0:0:0 | & | +| main.rs:841:29:841:30 | &x | &T | main.rs:812:5:813:14 | S1 | +| main.rs:841:30:841:30 | x | | main.rs:812:5:813:14 | S1 | +| main.rs:843:13:843:13 | x | | main.rs:812:5:813:14 | S1 | +| main.rs:843:17:843:18 | S1 | | main.rs:812:5:813:14 | S1 | +| main.rs:844:26:844:37 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:844:26:844:37 | id::<...>(...) | &T | main.rs:812:5:813:14 | S1 | +| main.rs:844:35:844:36 | &x | | file://:0:0:0:0 | & | +| main.rs:844:35:844:36 | &x | &T | main.rs:812:5:813:14 | S1 | +| main.rs:844:36:844:36 | x | | main.rs:812:5:813:14 | S1 | +| main.rs:846:13:846:13 | x | | main.rs:812:5:813:14 | S1 | +| main.rs:846:17:846:18 | S1 | | main.rs:812:5:813:14 | S1 | +| main.rs:847:26:847:44 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:847:26:847:44 | id::<...>(...) | &T | main.rs:812:5:813:14 | S1 | +| main.rs:847:42:847:43 | &x | | file://:0:0:0:0 | & | +| main.rs:847:42:847:43 | &x | &T | main.rs:812:5:813:14 | S1 | +| main.rs:847:43:847:43 | x | | main.rs:812:5:813:14 | S1 | +| main.rs:849:13:849:13 | x | | main.rs:812:5:813:14 | S1 | +| main.rs:849:17:849:18 | S1 | | main.rs:812:5:813:14 | S1 | +| main.rs:850:9:850:25 | into::<...>(...) | | main.rs:815:5:816:14 | S2 | +| main.rs:850:24:850:24 | x | | main.rs:812:5:813:14 | S1 | +| main.rs:852:13:852:13 | x | | main.rs:812:5:813:14 | S1 | +| main.rs:852:17:852:18 | S1 | | main.rs:812:5:813:14 | S1 | +| main.rs:853:13:853:13 | y | | main.rs:815:5:816:14 | S2 | +| main.rs:853:21:853:27 | into(...) | | main.rs:815:5:816:14 | S2 | +| main.rs:853:26:853:26 | x | | main.rs:812:5:813:14 | S1 | +| main.rs:867:22:867:25 | SelfParam | | main.rs:858:5:864:5 | PairOption | +| main.rs:867:22:867:25 | SelfParam | Fst | main.rs:866:10:866:12 | Fst | +| main.rs:867:22:867:25 | SelfParam | Snd | main.rs:866:15:866:17 | Snd | +| main.rs:867:35:874:9 | { ... } | | main.rs:866:15:866:17 | Snd | +| main.rs:868:13:873:13 | match self { ... } | | main.rs:866:15:866:17 | Snd | +| main.rs:868:19:868:22 | self | | main.rs:858:5:864:5 | PairOption | +| main.rs:868:19:868:22 | self | Fst | main.rs:866:10:866:12 | Fst | +| main.rs:868:19:868:22 | self | Snd | main.rs:866:15:866:17 | Snd | +| main.rs:869:43:869:82 | MacroExpr | | main.rs:866:15:866:17 | Snd | +| main.rs:870:43:870:81 | MacroExpr | | main.rs:866:15:866:17 | Snd | +| main.rs:871:37:871:39 | snd | | main.rs:866:15:866:17 | Snd | +| main.rs:871:45:871:47 | snd | | main.rs:866:15:866:17 | Snd | +| main.rs:872:41:872:43 | snd | | main.rs:866:15:866:17 | Snd | +| main.rs:872:49:872:51 | snd | | main.rs:866:15:866:17 | Snd | +| main.rs:898:10:898:10 | t | | main.rs:858:5:864:5 | PairOption | +| main.rs:898:10:898:10 | t | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:898:10:898:10 | t | Snd | main.rs:858:5:864:5 | PairOption | +| main.rs:898:10:898:10 | t | Snd.Fst | main.rs:880:5:881:14 | S2 | +| main.rs:898:10:898:10 | t | Snd.Snd | main.rs:883:5:884:14 | S3 | +| main.rs:899:13:899:13 | x | | main.rs:883:5:884:14 | S3 | +| main.rs:899:17:899:17 | t | | main.rs:858:5:864:5 | PairOption | +| main.rs:899:17:899:17 | t | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:899:17:899:17 | t | Snd | main.rs:858:5:864:5 | PairOption | +| main.rs:899:17:899:17 | t | Snd.Fst | main.rs:880:5:881:14 | S2 | +| main.rs:899:17:899:17 | t | Snd.Snd | main.rs:883:5:884:14 | S3 | +| main.rs:899:17:899:29 | t.unwrapSnd() | | main.rs:858:5:864:5 | PairOption | +| main.rs:899:17:899:29 | t.unwrapSnd() | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:899:17:899:29 | t.unwrapSnd() | Snd | main.rs:883:5:884:14 | S3 | +| main.rs:899:17:899:41 | ... .unwrapSnd() | | main.rs:883:5:884:14 | S3 | +| main.rs:900:26:900:26 | x | | main.rs:883:5:884:14 | S3 | +| main.rs:905:13:905:14 | p1 | | main.rs:858:5:864:5 | PairOption | +| main.rs:905:13:905:14 | p1 | Fst | main.rs:877:5:878:14 | S1 | +| main.rs:905:13:905:14 | p1 | Snd | main.rs:880:5:881:14 | S2 | +| main.rs:905:26:905:53 | ...::PairBoth(...) | | main.rs:858:5:864:5 | PairOption | +| main.rs:905:26:905:53 | ...::PairBoth(...) | Fst | main.rs:877:5:878:14 | S1 | +| main.rs:905:26:905:53 | ...::PairBoth(...) | Snd | main.rs:880:5:881:14 | S2 | +| main.rs:905:47:905:48 | S1 | | main.rs:877:5:878:14 | S1 | +| main.rs:905:51:905:52 | S2 | | main.rs:880:5:881:14 | S2 | +| main.rs:906:26:906:27 | p1 | | main.rs:858:5:864:5 | PairOption | +| main.rs:906:26:906:27 | p1 | Fst | main.rs:877:5:878:14 | S1 | +| main.rs:906:26:906:27 | p1 | Snd | main.rs:880:5:881:14 | S2 | +| main.rs:909:13:909:14 | p2 | | main.rs:858:5:864:5 | PairOption | +| main.rs:909:13:909:14 | p2 | Fst | main.rs:877:5:878:14 | S1 | +| main.rs:909:13:909:14 | p2 | Snd | main.rs:880:5:881:14 | S2 | +| main.rs:909:26:909:47 | ...::PairNone(...) | | main.rs:858:5:864:5 | PairOption | +| main.rs:909:26:909:47 | ...::PairNone(...) | Fst | main.rs:877:5:878:14 | S1 | +| main.rs:909:26:909:47 | ...::PairNone(...) | Snd | main.rs:880:5:881:14 | S2 | +| main.rs:910:26:910:27 | p2 | | main.rs:858:5:864:5 | PairOption | +| main.rs:910:26:910:27 | p2 | Fst | main.rs:877:5:878:14 | S1 | +| main.rs:910:26:910:27 | p2 | Snd | main.rs:880:5:881:14 | S2 | +| main.rs:913:13:913:14 | p3 | | main.rs:858:5:864:5 | PairOption | +| main.rs:913:13:913:14 | p3 | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:913:13:913:14 | p3 | Snd | main.rs:883:5:884:14 | S3 | +| main.rs:913:34:913:56 | ...::PairSnd(...) | | main.rs:858:5:864:5 | PairOption | +| main.rs:913:34:913:56 | ...::PairSnd(...) | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:913:34:913:56 | ...::PairSnd(...) | Snd | main.rs:883:5:884:14 | S3 | +| main.rs:913:54:913:55 | S3 | | main.rs:883:5:884:14 | S3 | +| main.rs:914:26:914:27 | p3 | | main.rs:858:5:864:5 | PairOption | +| main.rs:914:26:914:27 | p3 | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:914:26:914:27 | p3 | Snd | main.rs:883:5:884:14 | S3 | +| main.rs:917:13:917:14 | p3 | | main.rs:858:5:864:5 | PairOption | +| main.rs:917:13:917:14 | p3 | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:917:13:917:14 | p3 | Snd | main.rs:883:5:884:14 | S3 | +| main.rs:917:35:917:56 | ...::PairNone(...) | | main.rs:858:5:864:5 | PairOption | +| main.rs:917:35:917:56 | ...::PairNone(...) | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:917:35:917:56 | ...::PairNone(...) | Snd | main.rs:883:5:884:14 | S3 | +| main.rs:918:26:918:27 | p3 | | main.rs:858:5:864:5 | PairOption | +| main.rs:918:26:918:27 | p3 | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:918:26:918:27 | p3 | Snd | main.rs:883:5:884:14 | S3 | +| main.rs:920:11:920:54 | ...::PairSnd(...) | | main.rs:858:5:864:5 | PairOption | +| main.rs:920:11:920:54 | ...::PairSnd(...) | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:920:11:920:54 | ...::PairSnd(...) | Snd | main.rs:858:5:864:5 | PairOption | +| main.rs:920:11:920:54 | ...::PairSnd(...) | Snd.Fst | main.rs:880:5:881:14 | S2 | +| main.rs:920:11:920:54 | ...::PairSnd(...) | Snd.Snd | main.rs:883:5:884:14 | S3 | +| main.rs:920:31:920:53 | ...::PairSnd(...) | | main.rs:858:5:864:5 | PairOption | +| main.rs:920:31:920:53 | ...::PairSnd(...) | Fst | main.rs:880:5:881:14 | S2 | +| main.rs:920:31:920:53 | ...::PairSnd(...) | Snd | main.rs:883:5:884:14 | S3 | +| main.rs:920:51:920:52 | S3 | | main.rs:883:5:884:14 | S3 | +| main.rs:933:16:933:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:933:16:933:24 | SelfParam | &T | main.rs:931:5:938:5 | Self [trait MyTrait] | +| main.rs:933:27:933:31 | value | | main.rs:931:19:931:19 | S | +| main.rs:935:21:935:29 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:935:21:935:29 | SelfParam | &T | main.rs:931:5:938:5 | Self [trait MyTrait] | +| main.rs:935:32:935:36 | value | | main.rs:931:19:931:19 | S | +| main.rs:936:13:936:16 | self | | file://:0:0:0:0 | & | +| main.rs:936:13:936:16 | self | &T | main.rs:931:5:938:5 | Self [trait MyTrait] | +| main.rs:936:22:936:26 | value | | main.rs:931:19:931:19 | S | +| main.rs:942:16:942:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:942:16:942:24 | SelfParam | &T | main.rs:925:5:929:5 | MyOption | +| main.rs:942:16:942:24 | SelfParam | &T.T | main.rs:940:10:940:10 | T | +| main.rs:942:27:942:31 | value | | main.rs:940:10:940:10 | T | +| main.rs:946:26:948:9 | { ... } | | main.rs:925:5:929:5 | MyOption | +| main.rs:946:26:948:9 | { ... } | T | main.rs:945:10:945:10 | T | +| main.rs:947:13:947:30 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:947:13:947:30 | ...::MyNone(...) | T | main.rs:945:10:945:10 | T | +| main.rs:952:20:952:23 | SelfParam | | main.rs:925:5:929:5 | MyOption | +| main.rs:952:20:952:23 | SelfParam | T | main.rs:925:5:929:5 | MyOption | +| main.rs:952:20:952:23 | SelfParam | T.T | main.rs:951:10:951:10 | T | +| main.rs:952:41:957:9 | { ... } | | main.rs:925:5:929:5 | MyOption | +| main.rs:952:41:957:9 | { ... } | T | main.rs:951:10:951:10 | T | +| main.rs:953:13:956:13 | match self { ... } | | main.rs:925:5:929:5 | MyOption | +| main.rs:953:13:956:13 | match self { ... } | T | main.rs:951:10:951:10 | T | +| main.rs:953:19:953:22 | self | | main.rs:925:5:929:5 | MyOption | +| main.rs:953:19:953:22 | self | T | main.rs:925:5:929:5 | MyOption | +| main.rs:953:19:953:22 | self | T.T | main.rs:951:10:951:10 | T | +| main.rs:954:39:954:56 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:954:39:954:56 | ...::MyNone(...) | T | main.rs:951:10:951:10 | T | +| main.rs:955:34:955:34 | x | | main.rs:925:5:929:5 | MyOption | +| main.rs:955:34:955:34 | x | T | main.rs:951:10:951:10 | T | +| main.rs:955:40:955:40 | x | | main.rs:925:5:929:5 | MyOption | +| main.rs:955:40:955:40 | x | T | main.rs:951:10:951:10 | T | +| main.rs:964:13:964:14 | x1 | | main.rs:925:5:929:5 | MyOption | +| main.rs:964:18:964:37 | ...::new(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:965:26:965:27 | x1 | | main.rs:925:5:929:5 | MyOption | +| main.rs:967:13:967:18 | mut x2 | | main.rs:925:5:929:5 | MyOption | +| main.rs:967:13:967:18 | mut x2 | T | main.rs:960:5:961:13 | S | +| main.rs:967:22:967:36 | ...::new(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:967:22:967:36 | ...::new(...) | T | main.rs:960:5:961:13 | S | +| main.rs:968:9:968:10 | x2 | | main.rs:925:5:929:5 | MyOption | +| main.rs:968:9:968:10 | x2 | T | main.rs:960:5:961:13 | S | +| main.rs:968:16:968:16 | S | | main.rs:960:5:961:13 | S | +| main.rs:969:26:969:27 | x2 | | main.rs:925:5:929:5 | MyOption | +| main.rs:969:26:969:27 | x2 | T | main.rs:960:5:961:13 | S | +| main.rs:971:13:971:18 | mut x3 | | main.rs:925:5:929:5 | MyOption | +| main.rs:971:22:971:36 | ...::new(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:972:9:972:10 | x3 | | main.rs:925:5:929:5 | MyOption | +| main.rs:972:21:972:21 | S | | main.rs:960:5:961:13 | S | +| main.rs:973:26:973:27 | x3 | | main.rs:925:5:929:5 | MyOption | +| main.rs:975:13:975:18 | mut x4 | | main.rs:925:5:929:5 | MyOption | +| main.rs:975:13:975:18 | mut x4 | T | main.rs:960:5:961:13 | S | +| main.rs:975:22:975:36 | ...::new(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:975:22:975:36 | ...::new(...) | T | main.rs:960:5:961:13 | S | +| main.rs:976:23:976:29 | &mut x4 | | file://:0:0:0:0 | & | +| main.rs:976:23:976:29 | &mut x4 | &T | main.rs:925:5:929:5 | MyOption | +| main.rs:976:23:976:29 | &mut x4 | &T.T | main.rs:960:5:961:13 | S | +| main.rs:976:28:976:29 | x4 | | main.rs:925:5:929:5 | MyOption | +| main.rs:976:28:976:29 | x4 | T | main.rs:960:5:961:13 | S | +| main.rs:976:32:976:32 | S | | main.rs:960:5:961:13 | S | +| main.rs:977:26:977:27 | x4 | | main.rs:925:5:929:5 | MyOption | +| main.rs:977:26:977:27 | x4 | T | main.rs:960:5:961:13 | S | +| main.rs:979:13:979:14 | x5 | | main.rs:925:5:929:5 | MyOption | +| main.rs:979:13:979:14 | x5 | T | main.rs:925:5:929:5 | MyOption | +| main.rs:979:13:979:14 | x5 | T.T | main.rs:960:5:961:13 | S | +| main.rs:979:18:979:58 | ...::MySome(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:979:18:979:58 | ...::MySome(...) | T | main.rs:925:5:929:5 | MyOption | +| main.rs:979:18:979:58 | ...::MySome(...) | T.T | main.rs:960:5:961:13 | S | +| main.rs:979:35:979:57 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:979:35:979:57 | ...::MyNone(...) | T | main.rs:960:5:961:13 | S | +| main.rs:980:26:980:27 | x5 | | main.rs:925:5:929:5 | MyOption | +| main.rs:980:26:980:27 | x5 | T | main.rs:925:5:929:5 | MyOption | +| main.rs:980:26:980:27 | x5 | T.T | main.rs:960:5:961:13 | S | +| main.rs:980:26:980:37 | x5.flatten() | | main.rs:925:5:929:5 | MyOption | +| main.rs:980:26:980:37 | x5.flatten() | T | main.rs:960:5:961:13 | S | +| main.rs:982:13:982:14 | x6 | | main.rs:925:5:929:5 | MyOption | +| main.rs:982:13:982:14 | x6 | T | main.rs:925:5:929:5 | MyOption | +| main.rs:982:13:982:14 | x6 | T.T | main.rs:960:5:961:13 | S | +| main.rs:982:18:982:58 | ...::MySome(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:982:18:982:58 | ...::MySome(...) | T | main.rs:925:5:929:5 | MyOption | +| main.rs:982:18:982:58 | ...::MySome(...) | T.T | main.rs:960:5:961:13 | S | +| main.rs:982:35:982:57 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:982:35:982:57 | ...::MyNone(...) | T | main.rs:960:5:961:13 | S | +| main.rs:983:26:983:61 | ...::flatten(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:983:26:983:61 | ...::flatten(...) | T | main.rs:960:5:961:13 | S | +| main.rs:983:59:983:60 | x6 | | main.rs:925:5:929:5 | MyOption | +| main.rs:983:59:983:60 | x6 | T | main.rs:925:5:929:5 | MyOption | +| main.rs:983:59:983:60 | x6 | T.T | main.rs:960:5:961:13 | S | +| main.rs:985:13:985:19 | from_if | | main.rs:925:5:929:5 | MyOption | +| main.rs:985:13:985:19 | from_if | T | main.rs:960:5:961:13 | S | +| main.rs:985:23:989:9 | if ... {...} else {...} | | main.rs:925:5:929:5 | MyOption | +| main.rs:985:23:989:9 | if ... {...} else {...} | T | main.rs:960:5:961:13 | S | +| main.rs:985:36:987:9 | { ... } | | main.rs:925:5:929:5 | MyOption | +| main.rs:985:36:987:9 | { ... } | T | main.rs:960:5:961:13 | S | +| main.rs:986:13:986:30 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:986:13:986:30 | ...::MyNone(...) | T | main.rs:960:5:961:13 | S | +| main.rs:987:16:989:9 | { ... } | | main.rs:925:5:929:5 | MyOption | +| main.rs:987:16:989:9 | { ... } | T | main.rs:960:5:961:13 | S | +| main.rs:988:13:988:31 | ...::MySome(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:988:13:988:31 | ...::MySome(...) | T | main.rs:960:5:961:13 | S | +| main.rs:988:30:988:30 | S | | main.rs:960:5:961:13 | S | +| main.rs:990:26:990:32 | from_if | | main.rs:925:5:929:5 | MyOption | +| main.rs:990:26:990:32 | from_if | T | main.rs:960:5:961:13 | S | +| main.rs:992:13:992:22 | from_match | | main.rs:925:5:929:5 | MyOption | +| main.rs:992:13:992:22 | from_match | T | main.rs:960:5:961:13 | S | +| main.rs:992:26:995:9 | match ... { ... } | | main.rs:925:5:929:5 | MyOption | +| main.rs:992:26:995:9 | match ... { ... } | T | main.rs:960:5:961:13 | S | +| main.rs:993:21:993:38 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:993:21:993:38 | ...::MyNone(...) | T | main.rs:960:5:961:13 | S | +| main.rs:994:22:994:40 | ...::MySome(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:994:22:994:40 | ...::MySome(...) | T | main.rs:960:5:961:13 | S | +| main.rs:994:39:994:39 | S | | main.rs:960:5:961:13 | S | +| main.rs:996:26:996:35 | from_match | | main.rs:925:5:929:5 | MyOption | +| main.rs:996:26:996:35 | from_match | T | main.rs:960:5:961:13 | S | +| main.rs:998:13:998:21 | from_loop | | main.rs:925:5:929:5 | MyOption | +| main.rs:998:13:998:21 | from_loop | T | main.rs:960:5:961:13 | S | +| main.rs:998:25:1003:9 | loop { ... } | | main.rs:925:5:929:5 | MyOption | +| main.rs:998:25:1003:9 | loop { ... } | T | main.rs:960:5:961:13 | S | +| main.rs:1000:23:1000:40 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:1000:23:1000:40 | ...::MyNone(...) | T | main.rs:960:5:961:13 | S | +| main.rs:1002:19:1002:37 | ...::MySome(...) | | main.rs:925:5:929:5 | MyOption | +| main.rs:1002:19:1002:37 | ...::MySome(...) | T | main.rs:960:5:961:13 | S | +| main.rs:1002:36:1002:36 | S | | main.rs:960:5:961:13 | S | +| main.rs:1004:26:1004:34 | from_loop | | main.rs:925:5:929:5 | MyOption | +| main.rs:1004:26:1004:34 | from_loop | T | main.rs:960:5:961:13 | S | +| main.rs:1017:15:1017:18 | SelfParam | | main.rs:1010:5:1011:19 | S | +| main.rs:1017:15:1017:18 | SelfParam | T | main.rs:1016:10:1016:10 | T | +| main.rs:1017:26:1019:9 | { ... } | | main.rs:1016:10:1016:10 | T | +| main.rs:1018:13:1018:16 | self | | main.rs:1010:5:1011:19 | S | +| main.rs:1018:13:1018:16 | self | T | main.rs:1016:10:1016:10 | T | +| main.rs:1018:13:1018:18 | self.0 | | main.rs:1016:10:1016:10 | T | +| main.rs:1021:15:1021:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1021:15:1021:19 | SelfParam | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1021:15:1021:19 | SelfParam | &T.T | main.rs:1016:10:1016:10 | T | +| main.rs:1021:28:1023:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1021:28:1023:9 | { ... } | &T | main.rs:1016:10:1016:10 | T | +| main.rs:1022:13:1022:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1022:13:1022:19 | &... | &T | main.rs:1016:10:1016:10 | T | +| main.rs:1022:14:1022:17 | self | | file://:0:0:0:0 | & | +| main.rs:1022:14:1022:17 | self | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1022:14:1022:17 | self | &T.T | main.rs:1016:10:1016:10 | T | +| main.rs:1022:14:1022:19 | self.0 | | main.rs:1016:10:1016:10 | T | +| main.rs:1025:15:1025:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1025:15:1025:25 | SelfParam | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1025:15:1025:25 | SelfParam | &T.T | main.rs:1016:10:1016:10 | T | +| main.rs:1025:34:1027:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1025:34:1027:9 | { ... } | &T | main.rs:1016:10:1016:10 | T | +| main.rs:1026:13:1026:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1026:13:1026:19 | &... | &T | main.rs:1016:10:1016:10 | T | +| main.rs:1026:14:1026:17 | self | | file://:0:0:0:0 | & | +| main.rs:1026:14:1026:17 | self | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1026:14:1026:17 | self | &T.T | main.rs:1016:10:1016:10 | T | +| main.rs:1026:14:1026:19 | self.0 | | main.rs:1016:10:1016:10 | T | +| main.rs:1031:13:1031:14 | x1 | | main.rs:1010:5:1011:19 | S | +| main.rs:1031:13:1031:14 | x1 | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1031:18:1031:22 | S(...) | | main.rs:1010:5:1011:19 | S | +| main.rs:1031:18:1031:22 | S(...) | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1031:20:1031:21 | S2 | | main.rs:1013:5:1014:14 | S2 | +| main.rs:1032:26:1032:27 | x1 | | main.rs:1010:5:1011:19 | S | +| main.rs:1032:26:1032:27 | x1 | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1032:26:1032:32 | x1.m1() | | main.rs:1013:5:1014:14 | S2 | +| main.rs:1034:13:1034:14 | x2 | | main.rs:1010:5:1011:19 | S | +| main.rs:1034:13:1034:14 | x2 | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1034:18:1034:22 | S(...) | | main.rs:1010:5:1011:19 | S | +| main.rs:1034:18:1034:22 | S(...) | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1034:20:1034:21 | S2 | | main.rs:1013:5:1014:14 | S2 | +| main.rs:1036:26:1036:27 | x2 | | main.rs:1010:5:1011:19 | S | +| main.rs:1036:26:1036:27 | x2 | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1036:26:1036:32 | x2.m2() | | file://:0:0:0:0 | & | +| main.rs:1036:26:1036:32 | x2.m2() | &T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1037:26:1037:27 | x2 | | main.rs:1010:5:1011:19 | S | +| main.rs:1037:26:1037:27 | x2 | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1037:26:1037:32 | x2.m3() | | file://:0:0:0:0 | & | +| main.rs:1037:26:1037:32 | x2.m3() | &T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1039:13:1039:14 | x3 | | main.rs:1010:5:1011:19 | S | +| main.rs:1039:13:1039:14 | x3 | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1039:18:1039:22 | S(...) | | main.rs:1010:5:1011:19 | S | +| main.rs:1039:18:1039:22 | S(...) | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1039:20:1039:21 | S2 | | main.rs:1013:5:1014:14 | S2 | +| main.rs:1041:26:1041:41 | ...::m2(...) | | file://:0:0:0:0 | & | +| main.rs:1041:26:1041:41 | ...::m2(...) | &T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1041:38:1041:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1041:38:1041:40 | &x3 | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1041:38:1041:40 | &x3 | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1041:39:1041:40 | x3 | | main.rs:1010:5:1011:19 | S | +| main.rs:1041:39:1041:40 | x3 | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1042:26:1042:41 | ...::m3(...) | | file://:0:0:0:0 | & | +| main.rs:1042:26:1042:41 | ...::m3(...) | &T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1042:38:1042:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1042:38:1042:40 | &x3 | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1042:38:1042:40 | &x3 | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1042:39:1042:40 | x3 | | main.rs:1010:5:1011:19 | S | +| main.rs:1042:39:1042:40 | x3 | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1044:13:1044:14 | x4 | | file://:0:0:0:0 | & | +| main.rs:1044:13:1044:14 | x4 | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1044:13:1044:14 | x4 | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1044:18:1044:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1044:18:1044:23 | &... | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1044:18:1044:23 | &... | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1044:19:1044:23 | S(...) | | main.rs:1010:5:1011:19 | S | +| main.rs:1044:19:1044:23 | S(...) | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1044:21:1044:22 | S2 | | main.rs:1013:5:1014:14 | S2 | +| main.rs:1046:26:1046:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1046:26:1046:27 | x4 | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1046:26:1046:27 | x4 | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1046:26:1046:32 | x4.m2() | | file://:0:0:0:0 | & | +| main.rs:1046:26:1046:32 | x4.m2() | &T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1047:26:1047:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1047:26:1047:27 | x4 | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1047:26:1047:27 | x4 | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1047:26:1047:32 | x4.m3() | | file://:0:0:0:0 | & | +| main.rs:1047:26:1047:32 | x4.m3() | &T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1049:13:1049:14 | x5 | | file://:0:0:0:0 | & | +| main.rs:1049:13:1049:14 | x5 | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1049:13:1049:14 | x5 | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1049:18:1049:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1049:18:1049:23 | &... | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1049:18:1049:23 | &... | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1049:19:1049:23 | S(...) | | main.rs:1010:5:1011:19 | S | +| main.rs:1049:19:1049:23 | S(...) | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1049:21:1049:22 | S2 | | main.rs:1013:5:1014:14 | S2 | +| main.rs:1051:26:1051:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1051:26:1051:27 | x5 | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1051:26:1051:27 | x5 | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1051:26:1051:32 | x5.m1() | | main.rs:1013:5:1014:14 | S2 | +| main.rs:1052:26:1052:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1052:26:1052:27 | x5 | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1052:26:1052:27 | x5 | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1052:26:1052:29 | x5.0 | | main.rs:1013:5:1014:14 | S2 | +| main.rs:1054:13:1054:14 | x6 | | file://:0:0:0:0 | & | +| main.rs:1054:13:1054:14 | x6 | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1054:13:1054:14 | x6 | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1054:18:1054:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1054:18:1054:23 | &... | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1054:18:1054:23 | &... | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1054:19:1054:23 | S(...) | | main.rs:1010:5:1011:19 | S | +| main.rs:1054:19:1054:23 | S(...) | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1054:21:1054:22 | S2 | | main.rs:1013:5:1014:14 | S2 | +| main.rs:1056:26:1056:30 | (...) | | main.rs:1010:5:1011:19 | S | +| main.rs:1056:26:1056:30 | (...) | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1056:26:1056:35 | ... .m1() | | main.rs:1013:5:1014:14 | S2 | +| main.rs:1056:27:1056:29 | * ... | | main.rs:1010:5:1011:19 | S | +| main.rs:1056:27:1056:29 | * ... | T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1056:28:1056:29 | x6 | | file://:0:0:0:0 | & | +| main.rs:1056:28:1056:29 | x6 | &T | main.rs:1010:5:1011:19 | S | +| main.rs:1056:28:1056:29 | x6 | &T.T | main.rs:1013:5:1014:14 | S2 | +| main.rs:1063:16:1063:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1063:16:1063:20 | SelfParam | &T | main.rs:1061:5:1069:5 | Self [trait MyTrait] | +| main.rs:1066:16:1066:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1066:16:1066:20 | SelfParam | &T | main.rs:1061:5:1069:5 | Self [trait MyTrait] | +| main.rs:1066:32:1068:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1066:32:1068:9 | { ... } | &T | main.rs:1061:5:1069:5 | Self [trait MyTrait] | +| main.rs:1067:13:1067:16 | self | | file://:0:0:0:0 | & | +| main.rs:1067:13:1067:16 | self | &T | main.rs:1061:5:1069:5 | Self [trait MyTrait] | +| main.rs:1067:13:1067:22 | self.foo() | | file://:0:0:0:0 | & | +| main.rs:1067:13:1067:22 | self.foo() | &T | main.rs:1061:5:1069:5 | Self [trait MyTrait] | +| main.rs:1075:16:1075:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1075:16:1075:20 | SelfParam | &T | main.rs:1071:5:1071:20 | MyStruct | +| main.rs:1075:36:1077:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1075:36:1077:9 | { ... } | &T | main.rs:1071:5:1071:20 | MyStruct | +| main.rs:1076:13:1076:16 | self | | file://:0:0:0:0 | & | +| main.rs:1076:13:1076:16 | self | &T | main.rs:1071:5:1071:20 | MyStruct | +| main.rs:1081:13:1081:13 | x | | main.rs:1071:5:1071:20 | MyStruct | +| main.rs:1081:17:1081:24 | MyStruct | | main.rs:1071:5:1071:20 | MyStruct | +| main.rs:1082:9:1082:9 | x | | main.rs:1071:5:1071:20 | MyStruct | +| main.rs:1082:9:1082:15 | x.bar() | | file://:0:0:0:0 | & | +| main.rs:1082:9:1082:15 | x.bar() | &T | main.rs:1071:5:1071:20 | MyStruct | +| main.rs:1092:16:1092:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1092:16:1092:20 | SelfParam | &T | main.rs:1089:5:1089:26 | MyStruct | +| main.rs:1092:16:1092:20 | SelfParam | &T.T | main.rs:1091:10:1091:10 | T | +| main.rs:1092:32:1094:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1092:32:1094:9 | { ... } | &T | main.rs:1089:5:1089:26 | MyStruct | +| main.rs:1092:32:1094:9 | { ... } | &T.T | main.rs:1091:10:1091:10 | T | +| main.rs:1093:13:1093:16 | self | | file://:0:0:0:0 | & | +| main.rs:1093:13:1093:16 | self | &T | main.rs:1089:5:1089:26 | MyStruct | +| main.rs:1093:13:1093:16 | self | &T.T | main.rs:1091:10:1091:10 | T | +| main.rs:1098:13:1098:13 | x | | main.rs:1089:5:1089:26 | MyStruct | +| main.rs:1098:13:1098:13 | x | T | main.rs:1087:5:1087:13 | S | +| main.rs:1098:17:1098:27 | MyStruct(...) | | main.rs:1089:5:1089:26 | MyStruct | +| main.rs:1098:17:1098:27 | MyStruct(...) | T | main.rs:1087:5:1087:13 | S | +| main.rs:1098:26:1098:26 | S | | main.rs:1087:5:1087:13 | S | +| main.rs:1099:9:1099:9 | x | | main.rs:1089:5:1089:26 | MyStruct | +| main.rs:1099:9:1099:9 | x | T | main.rs:1087:5:1087:13 | S | +| main.rs:1099:9:1099:15 | x.foo() | | file://:0:0:0:0 | & | +| main.rs:1099:9:1099:15 | x.foo() | &T | main.rs:1089:5:1089:26 | MyStruct | +| main.rs:1099:9:1099:15 | x.foo() | &T.T | main.rs:1087:5:1087:13 | S | +| main.rs:1107:15:1107:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1107:15:1107:19 | SelfParam | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1107:31:1109:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1107:31:1109:9 | { ... } | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1108:13:1108:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1108:13:1108:19 | &... | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1108:14:1108:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1108:14:1108:19 | &... | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1108:15:1108:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1108:15:1108:19 | &self | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1108:16:1108:19 | self | | file://:0:0:0:0 | & | +| main.rs:1108:16:1108:19 | self | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1111:15:1111:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1111:15:1111:25 | SelfParam | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1111:37:1113:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1111:37:1113:9 | { ... } | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1112:13:1112:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1112:13:1112:19 | &... | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1112:14:1112:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1112:14:1112:19 | &... | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1112:15:1112:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1112:15:1112:19 | &self | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1112:16:1112:19 | self | | file://:0:0:0:0 | & | +| main.rs:1112:16:1112:19 | self | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1115:15:1115:15 | x | | file://:0:0:0:0 | & | +| main.rs:1115:15:1115:15 | x | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1115:34:1117:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1115:34:1117:9 | { ... } | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1116:13:1116:13 | x | | file://:0:0:0:0 | & | +| main.rs:1116:13:1116:13 | x | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1119:15:1119:15 | x | | file://:0:0:0:0 | & | +| main.rs:1119:15:1119:15 | x | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1119:34:1121:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1119:34:1121:9 | { ... } | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1120:13:1120:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1120:13:1120:16 | &... | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1120:14:1120:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1120:14:1120:16 | &... | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1120:15:1120:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1120:15:1120:16 | &x | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1120:16:1120:16 | x | | file://:0:0:0:0 | & | +| main.rs:1120:16:1120:16 | x | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1125:13:1125:13 | x | | main.rs:1104:5:1104:13 | S | +| main.rs:1125:17:1125:20 | S {...} | | main.rs:1104:5:1104:13 | S | +| main.rs:1126:9:1126:9 | x | | main.rs:1104:5:1104:13 | S | +| main.rs:1126:9:1126:14 | x.f1() | | file://:0:0:0:0 | & | +| main.rs:1126:9:1126:14 | x.f1() | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1127:9:1127:9 | x | | main.rs:1104:5:1104:13 | S | +| main.rs:1127:9:1127:14 | x.f2() | | file://:0:0:0:0 | & | +| main.rs:1127:9:1127:14 | x.f2() | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1128:9:1128:17 | ...::f3(...) | | file://:0:0:0:0 | & | +| main.rs:1128:9:1128:17 | ...::f3(...) | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1128:15:1128:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1128:15:1128:16 | &x | &T | main.rs:1104:5:1104:13 | S | +| main.rs:1128:16:1128:16 | x | | main.rs:1104:5:1104:13 | S | +| main.rs:1142:43:1145:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1142:43:1145:5 | { ... } | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1142:43:1145:5 | { ... } | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1143:13:1143:13 | x | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1143:17:1143:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1143:17:1143:30 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1143:17:1143:31 | TryExpr | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1143:28:1143:29 | S1 | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1144:9:1144:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1144:9:1144:22 | ...::Ok(...) | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1144:9:1144:22 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1144:20:1144:21 | S1 | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1148:46:1152:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1148:46:1152:5 | { ... } | E | main.rs:1138:5:1139:14 | S2 | +| main.rs:1148:46:1152:5 | { ... } | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1149:13:1149:13 | x | | file://:0:0:0:0 | Result | +| main.rs:1149:13:1149:13 | x | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1149:17:1149:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1149:17:1149:30 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1149:28:1149:29 | S1 | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1150:13:1150:13 | y | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1150:17:1150:17 | x | | file://:0:0:0:0 | Result | +| main.rs:1150:17:1150:17 | x | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1150:17:1150:18 | TryExpr | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1151:9:1151:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1151:9:1151:22 | ...::Ok(...) | E | main.rs:1138:5:1139:14 | S2 | +| main.rs:1151:9:1151:22 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1151:20:1151:21 | S1 | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1155:40:1160:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1155:40:1160:5 | { ... } | E | main.rs:1138:5:1139:14 | S2 | +| main.rs:1155:40:1160:5 | { ... } | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1156:13:1156:13 | x | | file://:0:0:0:0 | Result | +| main.rs:1156:13:1156:13 | x | T | file://:0:0:0:0 | Result | +| main.rs:1156:13:1156:13 | x | T.T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1156:17:1156:42 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1156:17:1156:42 | ...::Ok(...) | T | file://:0:0:0:0 | Result | +| main.rs:1156:17:1156:42 | ...::Ok(...) | T.T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1156:28:1156:41 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1156:28:1156:41 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1156:39:1156:40 | S1 | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1158:17:1158:17 | x | | file://:0:0:0:0 | Result | +| main.rs:1158:17:1158:17 | x | T | file://:0:0:0:0 | Result | +| main.rs:1158:17:1158:17 | x | T.T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1158:17:1158:18 | TryExpr | | file://:0:0:0:0 | Result | +| main.rs:1158:17:1158:18 | TryExpr | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1158:17:1158:29 | ... .map(...) | | file://:0:0:0:0 | Result | +| main.rs:1159:9:1159:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1159:9:1159:22 | ...::Ok(...) | E | main.rs:1138:5:1139:14 | S2 | +| main.rs:1159:9:1159:22 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1159:20:1159:21 | S1 | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1163:30:1163:34 | input | | file://:0:0:0:0 | Result | +| main.rs:1163:30:1163:34 | input | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1163:30:1163:34 | input | T | main.rs:1163:20:1163:27 | T | +| main.rs:1163:69:1170:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1163:69:1170:5 | { ... } | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1163:69:1170:5 | { ... } | T | main.rs:1163:20:1163:27 | T | +| main.rs:1164:13:1164:17 | value | | main.rs:1163:20:1163:27 | T | +| main.rs:1164:21:1164:25 | input | | file://:0:0:0:0 | Result | +| main.rs:1164:21:1164:25 | input | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1164:21:1164:25 | input | T | main.rs:1163:20:1163:27 | T | +| main.rs:1164:21:1164:26 | TryExpr | | main.rs:1163:20:1163:27 | T | +| main.rs:1165:22:1165:38 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1165:22:1165:38 | ...::Ok(...) | T | main.rs:1163:20:1163:27 | T | +| main.rs:1165:22:1168:10 | ... .and_then(...) | | file://:0:0:0:0 | Result | +| main.rs:1165:33:1165:37 | value | | main.rs:1163:20:1163:27 | T | +| main.rs:1165:53:1168:9 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1165:53:1168:9 | { ... } | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1167:13:1167:34 | ...::Ok::<...>(...) | | file://:0:0:0:0 | Result | +| main.rs:1167:13:1167:34 | ...::Ok::<...>(...) | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1169:9:1169:23 | ...::Err(...) | | file://:0:0:0:0 | Result | +| main.rs:1169:9:1169:23 | ...::Err(...) | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1169:9:1169:23 | ...::Err(...) | T | main.rs:1163:20:1163:27 | T | +| main.rs:1169:21:1169:22 | S1 | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1173:37:1173:52 | try_same_error(...) | | file://:0:0:0:0 | Result | +| main.rs:1173:37:1173:52 | try_same_error(...) | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1173:37:1173:52 | try_same_error(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1177:37:1177:55 | try_convert_error(...) | | file://:0:0:0:0 | Result | +| main.rs:1177:37:1177:55 | try_convert_error(...) | E | main.rs:1138:5:1139:14 | S2 | +| main.rs:1177:37:1177:55 | try_convert_error(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1181:37:1181:49 | try_chained(...) | | file://:0:0:0:0 | Result | +| main.rs:1181:37:1181:49 | try_chained(...) | E | main.rs:1138:5:1139:14 | S2 | +| main.rs:1181:37:1181:49 | try_chained(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1185:37:1185:63 | try_complex(...) | | file://:0:0:0:0 | Result | +| main.rs:1185:37:1185:63 | try_complex(...) | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1185:37:1185:63 | try_complex(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1185:49:1185:62 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1185:49:1185:62 | ...::Ok(...) | E | main.rs:1135:5:1136:14 | S1 | +| main.rs:1185:49:1185:62 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | +| main.rs:1185:60:1185:61 | S1 | | main.rs:1135:5:1136:14 | S1 | +| main.rs:1193:5:1193:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1194:5:1194:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1194:20:1194:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1194:41:1194:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | From 3ee89899d97083770502b2e7c0fa70f07aecf321 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 29 Apr 2025 13:26:55 +0200 Subject: [PATCH 198/656] Rust: Handle inherent implementations shadowing trait implementations --- .../elements/internal/MethodCallExprImpl.qll | 28 +++++++++++++------ .../codeql/rust/internal/TypeInference.qll | 19 +++++++++++-- .../PathResolutionConsistency.expected | 5 ---- .../test/library-tests/type-inference/main.rs | 2 +- 4 files changed, 37 insertions(+), 17 deletions(-) delete mode 100644 rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll index fb7bcfbdaa4..8db2bb81dff 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll @@ -14,7 +14,13 @@ private import codeql.rust.internal.TypeInference * be referenced directly. */ module Impl { - private predicate isImplFunction(Function f) { f = any(ImplItemNode impl).getAnAssocItem() } + private predicate isInherentImplFunction(Function f) { + f = any(Impl impl | not impl.hasTrait()).(ImplItemNode).getAnAssocItem() + } + + private predicate isTraitImplFunction(Function f) { + f = any(Impl impl | impl.hasTrait()).(ImplItemNode).getAnAssocItem() + } // the following QLdoc is generated: if you need to edit it, do it in the schema file /** @@ -28,16 +34,22 @@ module Impl { override Function getStaticTarget() { result = resolveMethodCallExpr(this) and ( - // prioritize `impl` methods first - isImplFunction(result) + // prioritize inherent implementation methods first + isInherentImplFunction(result) or - not isImplFunction(resolveMethodCallExpr(this)) and + not isInherentImplFunction(resolveMethodCallExpr(this)) and ( - // then trait methods with default implementations - result.hasBody() + // then trait implementation methods + isTraitImplFunction(result) or - // and finally trait methods without default implementations - not resolveMethodCallExpr(this).hasBody() + not isTraitImplFunction(resolveMethodCallExpr(this)) and + ( + // then trait methods with default implementations + result.hasBody() + or + // and finally trait methods without default implementations + not resolveMethodCallExpr(this).hasBody() + ) ) ) } diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 9b9bb09e160..595a038884d 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -974,14 +974,27 @@ private module Cached { string getField() { result = mce.getIdentifier().getText() } + int getNumberOfArgs() { result = mce.getArgList().getNumberOfArgs() } + Type resolveTypeAt(TypePath path) { result = inferReceiverType(this, path) } } + /** Holds if a method for `type` with the name `name` and the arity `arity` exists in `impl`. */ + pragma[nomagic] + private predicate methodCandidate(Type type, string name, int arity, Impl impl) { + type = impl.(ImplTypeAbstraction).getSelfTy().(TypeReprMention).resolveType() and + exists(Function f | + f = impl.(ImplItemNode).getASuccessor(name) and + f.getParamList().hasSelfParam() and + arity = f.getParamList().getNumberOfParams() + ) + } + private module IsInstantiationOfInput implements IsInstantiationOfSig { predicate potentialInstantiationOf(ReceiverExpr receiver, TypeAbstraction impl, TypeMention sub) { - sub.resolveType() = receiver.resolveTypeAt(TypePath::nil()) and - sub = impl.(ImplTypeAbstraction).getSelfTy().(TypeReprMention) and - exists(impl.(ImplItemNode).getASuccessor(receiver.getField())) + methodCandidate(receiver.resolveTypeAt(TypePath::nil()), receiver.getField(), + receiver.getNumberOfArgs(), impl) and + sub = impl.(ImplTypeAbstraction).getSelfTy() } } diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index a16a01ba2e9..00000000000 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,5 +0,0 @@ -multipleMethodCallTargets -| main.rs:401:26:401:42 | x.common_method() | main.rs:376:9:379:9 | fn common_method | -| main.rs:401:26:401:42 | x.common_method() | main.rs:388:9:391:9 | fn common_method | -| main.rs:402:26:402:44 | x.common_method_2() | main.rs:381:9:384:9 | fn common_method_2 | -| main.rs:402:26:402:44 | x.common_method_2() | main.rs:393:9:396:9 | fn common_method_2 | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index bdaa7f94e51..30a9b60c864 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -399,7 +399,7 @@ mod impl_overlap { pub fn f() { let x = S1; println!("{:?}", x.common_method()); // $ method=S1::common_method SPURIOUS: method=::common_method - println!("{:?}", x.common_method_2()); // $ method=S1::common_method_2 SPURIOUS: method=::common_method_2 + println!("{:?}", x.common_method_2()); // $ method=S1::common_method_2 } } From ecead2cafd37f0e5fb628064d7e73c02e6c9014c Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 1 May 2025 09:07:58 +0200 Subject: [PATCH 199/656] Rust: Workaround for method existing both as source and as dependency --- .../rust/elements/internal/MethodCallExprImpl.qll | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll index 8db2bb81dff..cebfaf6d5ba 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll @@ -31,8 +31,9 @@ module Impl { * ``` */ class MethodCallExpr extends Generated::MethodCallExpr { - override Function getStaticTarget() { + private Function getStaticTargetFrom(boolean fromSource) { result = resolveMethodCallExpr(this) and + (if result.fromSource() then fromSource = true else fromSource = false) and ( // prioritize inherent implementation methods first isInherentImplFunction(result) @@ -54,6 +55,13 @@ module Impl { ) } + override Function getStaticTarget() { + result = this.getStaticTargetFrom(true) + or + not exists(this.getStaticTargetFrom(true)) and + result = this.getStaticTargetFrom(false) + } + private string toStringPart(int index) { index = 0 and result = this.getReceiver().toAbbreviatedString() From a545361a55df710372264dac4b2218ce40c40d4a Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 29 Apr 2025 14:00:45 +0200 Subject: [PATCH 200/656] Rust: Accept test changes --- .../PathResolutionConsistency.expected | 3 --- .../PathResolutionConsistency.expected | 3 --- .../PathResolutionConsistency.expected | 17 ----------------- .../test/library-tests/path-resolution/main.rs | 4 ++-- .../PathResolutionConsistency.expected | 13 ------------- 5 files changed, 2 insertions(+), 38 deletions(-) delete mode 100644 rust/ql/test/extractor-tests/canonical_path/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/extractor-tests/canonical_path_disabled/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/test/extractor-tests/canonical_path/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/extractor-tests/canonical_path/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index fbc771e8851..00000000000 --- a/rust/ql/test/extractor-tests/canonical_path/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -multipleMethodCallTargets -| regular.rs:29:5:29:9 | s.g() | anonymous.rs:15:9:15:22 | fn g | -| regular.rs:29:5:29:9 | s.g() | regular.rs:13:5:13:18 | fn g | diff --git a/rust/ql/test/extractor-tests/canonical_path_disabled/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/extractor-tests/canonical_path_disabled/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 849d19acbf0..00000000000 --- a/rust/ql/test/extractor-tests/canonical_path_disabled/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -multipleMethodCallTargets -| regular.rs:32:5:32:9 | s.g() | anonymous.rs:18:9:18:22 | fn g | -| regular.rs:32:5:32:9 | s.g() | regular.rs:16:5:16:18 | fn g | diff --git a/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index c47d16d6875..00000000000 --- a/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,17 +0,0 @@ -multipleMethodCallTargets -| main.rs:11:5:18:5 | conn.execute(...) | file://:0:0:0:0 | fn execute | -| main.rs:11:5:18:5 | conn.execute(...) | file://:0:0:0:0 | fn execute | -| main.rs:22:5:22:37 | conn.execute(...) | file://:0:0:0:0 | fn execute | -| main.rs:22:5:22:37 | conn.execute(...) | file://:0:0:0:0 | fn execute | -| main.rs:23:5:23:38 | conn.batch_execute(...) | file://:0:0:0:0 | fn batch_execute | -| main.rs:23:5:23:38 | conn.batch_execute(...) | file://:0:0:0:0 | fn batch_execute | -| main.rs:25:5:25:32 | conn.prepare(...) | file://:0:0:0:0 | fn prepare | -| main.rs:25:5:25:32 | conn.prepare(...) | file://:0:0:0:0 | fn prepare | -| main.rs:28:5:28:35 | conn.query(...) | file://:0:0:0:0 | fn query | -| main.rs:28:5:28:35 | conn.query(...) | file://:0:0:0:0 | fn query | -| main.rs:29:5:29:39 | conn.query_one(...) | file://:0:0:0:0 | fn query_one | -| main.rs:29:5:29:39 | conn.query_one(...) | file://:0:0:0:0 | fn query_one | -| main.rs:30:5:30:39 | conn.query_opt(...) | file://:0:0:0:0 | fn query_opt | -| main.rs:30:5:30:39 | conn.query_opt(...) | file://:0:0:0:0 | fn query_opt | -| main.rs:35:17:35:67 | conn.query(...) | file://:0:0:0:0 | fn query | -| main.rs:35:17:35:67 | conn.query(...) | file://:0:0:0:0 | fn query | diff --git a/rust/ql/test/library-tests/path-resolution/main.rs b/rust/ql/test/library-tests/path-resolution/main.rs index 1179f2f7b58..eb0ef06f6e9 100644 --- a/rust/ql/test/library-tests/path-resolution/main.rs +++ b/rust/ql/test/library-tests/path-resolution/main.rs @@ -606,8 +606,8 @@ mod m24 { let impl_obj = Implementor; // $ item=I118 let generic = GenericStruct { data: impl_obj }; // $ item=I115 - generic.call_trait_a(); // $ MISSING: item=I116 - generic.call_both(); // $ MISSING: item=I117 + generic.call_trait_a(); // $ item=I116 + generic.call_both(); // $ item=I117 // Access through where clause type parameter constraint GenericStruct::::call_trait_a(&generic); // $ item=I116 item=I118 diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 9567c4ea517..00000000000 --- a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,13 +0,0 @@ -multipleMethodCallTargets -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | From 0325f368fe27045757d8bb55e18879a2ac88f379 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 1 May 2025 13:57:14 +0200 Subject: [PATCH 201/656] Added test case for `hdbcli` --- .../frameworks/hdbcli/ConceptsTest.expected | 0 .../test/library-tests/frameworks/hdbcli/ConceptsTest.ql | 2 ++ python/ql/test/library-tests/frameworks/hdbcli/pep249.py | 9 +++++++++ 3 files changed, 11 insertions(+) create mode 100644 python/ql/test/library-tests/frameworks/hdbcli/ConceptsTest.expected create mode 100644 python/ql/test/library-tests/frameworks/hdbcli/ConceptsTest.ql create mode 100644 python/ql/test/library-tests/frameworks/hdbcli/pep249.py diff --git a/python/ql/test/library-tests/frameworks/hdbcli/ConceptsTest.expected b/python/ql/test/library-tests/frameworks/hdbcli/ConceptsTest.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/python/ql/test/library-tests/frameworks/hdbcli/ConceptsTest.ql b/python/ql/test/library-tests/frameworks/hdbcli/ConceptsTest.ql new file mode 100644 index 00000000000..b557a0bccb6 --- /dev/null +++ b/python/ql/test/library-tests/frameworks/hdbcli/ConceptsTest.ql @@ -0,0 +1,2 @@ +import python +import experimental.meta.ConceptsTest diff --git a/python/ql/test/library-tests/frameworks/hdbcli/pep249.py b/python/ql/test/library-tests/frameworks/hdbcli/pep249.py new file mode 100644 index 00000000000..35c6e6d87e4 --- /dev/null +++ b/python/ql/test/library-tests/frameworks/hdbcli/pep249.py @@ -0,0 +1,9 @@ +from hdbcli import dbapi + +conn = dbapi.connect(address="hostname", port=300, user="username", password="password") +cursor = conn.cursor() + +cursor.execute("some sql", (42,)) # $ MISSING: getSql="some sql" +cursor.executemany("some sql", (42,)) # $ MISSING: getSql="some sql" + +cursor.close() From 950812b463bcc7dae9af5f0bceb4cbc6c22acd90 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 11:44:24 +0100 Subject: [PATCH 202/656] Rust: Add further source tests for tcp streams. --- .../dataflow/sources/TaintSources.expected | 2 +- .../library-tests/dataflow/sources/test.rs | 102 ++++++++++++++++-- 2 files changed, 96 insertions(+), 8 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index 5ae527c9ff7..ce929fd29f0 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -46,4 +46,4 @@ | test.rs:470:21:470:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:471:21:471:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:479:21:479:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:657:16:657:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| test.rs:739:16:739:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 71643f750ad..5a292c999d9 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -626,7 +626,7 @@ async fn test_std_tcpstream(case: i64) -> std::io::Result<()> { // Result<(), Bo use tokio::io::AsyncWriteExt; -async fn test_tokio_tcpstream() -> std::io::Result<()> { +async fn test_tokio_tcpstream(case: i64) -> std::io::Result<()> { // using tokio::io to fetch a web page let address = "example.com:80"; @@ -637,18 +637,100 @@ async fn test_tokio_tcpstream() -> std::io::Result<()> { // send request tokio_stream.write_all(b"GET / HTTP/1.1\nHost:example.com\n\n").await?; + if case == 1 { + // peek response + let mut buffer1 = vec![0; 2 * 1024]; + let _ = tokio_stream.peek(&mut buffer1).await?; // $ MISSING: Alert[rust/summary/taint-sources] + + // read response + let mut buffer2 = vec![0; 2 * 1024]; + let n2 = tokio_stream.read(&mut buffer2).await?; // $ MISSING: Alert[rust/summary/taint-sources] + + println!("buffer1 = {:?}", buffer1); + sink(&buffer1); // $ MISSING: hasTaintFlow + sink(buffer1[0]); // $ MISSING: hasTaintFlow + + println!("buffer2 = {:?}", buffer2); + sink(&buffer2); // $ MISSING: hasTaintFlow + sink(buffer2[0]); // $ MISSING: hasTaintFlow + + let buffer_string = String::from_utf8_lossy(&buffer2[..n2]); + println!("string = {}", buffer_string); + sink(buffer_string); // $ MISSING: hasTaintFlow + } else if case == 2 { + let mut buffer = [0; 2 * 1024]; + loop { + match tokio_stream.try_read(&mut buffer) { + Ok(0) => { + println!("end"); + break; + } + Ok(_n) => { + println!("buffer = {:?}", buffer); + sink(&buffer); // $ MISSING: hasTaintFlow + break; // (or we could wait for more data) + } + Err(ref e) if e.kind() == std::io::ErrorKind::WouldBlock => { + // wait... + continue; + } + Err(e) => { + println!("error: {}", e); + break; + } + } + } + } else { + let mut buffer = Vec::new(); + loop { + match tokio_stream.try_read_buf(&mut buffer) { + Ok(0) => { + println!("end"); + break; + } + Ok(_n) => { + println!("buffer = {:?}", buffer); + sink(&buffer); // $ MISSING: hasTaintFlow + break; // (or we could wait for more data) + } + Err(ref e) if e.kind() == std::io::ErrorKind::WouldBlock => { + // wait... + continue; + } + Err(e) => { + println!("error: {}", e); + break; + } + } + } + } + + Ok(()) +} + +async fn test_std_to_tokio_tcpstream() -> std::io::Result<()> { + // using tokio::io to fetch a web page + let address = "example.com:80"; + + // create the connection + println!("connecting to {}...", address); + let std_stream = std::net::TcpStream::connect(address)?; + + // convert to tokio stream + std_stream.set_nonblocking(true)?; + let mut tokio_stream = tokio::net::TcpStream::from_std(std_stream)?; + + // send request + tokio_stream.write_all(b"GET / HTTP/1.1\nHost:example.com\n\n").await?; + // read response let mut buffer = vec![0; 32 * 1024]; - let n = tokio_stream.read(&mut buffer).await?; // $ MISSING: Alert[rust/summary/taint-sources] + let _n = tokio_stream.read(&mut buffer).await?; // $ MISSING: Alert[rust/summary/taint-sources] println!("data = {:?}", buffer); sink(&buffer); // $ MISSING: hasTaintFlow sink(buffer[0]); // $ MISSING: hasTaintFlow - let buffer_string = String::from_utf8_lossy(&buffer[..n]); - println!("string = {}", buffer_string); - sink(buffer_string); // $ MISSING: hasTaintFlow - Ok(()) } @@ -714,7 +796,13 @@ async fn main() -> Result<(), Box> { } println!("test_tokio_tcpstream..."); - match futures::executor::block_on(test_tokio_tcpstream()) { + match futures::executor::block_on(test_tokio_tcpstream(case)) { + Ok(_) => println!("complete"), + Err(e) => println!("error: {}", e), + } + + println!("test_std_to_tokio_tcpstream..."); + match futures::executor::block_on(test_std_to_tokio_tcpstream()) { Ok(_) => println!("complete"), Err(e) => println!("error: {}", e), } From b2339ef0d90550df936188dbceaad3a97414bc37 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 16:25:21 +0100 Subject: [PATCH 203/656] Rust: Add some alternative sinks. --- .../dataflow/sources/TaintSources.expected | 54 +++++++++---------- .../library-tests/dataflow/sources/test.rs | 6 ++- 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index ce929fd29f0..05ae13cb2ce 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -20,30 +20,30 @@ | test.rs:74:26:74:37 | ...::get | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:77:26:77:37 | ...::get | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:80:24:80:35 | ...::get | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:112:31:112:42 | send_request | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:119:31:119:42 | send_request | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:209:22:209:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:215:22:215:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:221:22:221:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:227:22:227:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:233:9:233:22 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:237:17:237:30 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:244:50:244:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:250:46:250:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:257:50:257:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:264:50:264:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:271:56:271:69 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:278:46:278:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:285:46:285:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:291:46:291:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | -| test.rs:403:31:403:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:408:31:408:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:413:22:413:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:419:22:419:25 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:420:27:420:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:426:22:426:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:436:20:436:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:470:21:470:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:471:21:471:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:479:21:479:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:739:16:739:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| test.rs:113:31:113:42 | send_request | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:120:31:120:42 | send_request | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:210:22:210:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:216:22:216:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:222:22:222:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:228:22:228:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:234:9:234:22 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:238:17:238:30 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:245:50:245:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:251:46:251:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:258:50:258:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:265:50:265:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:272:56:272:69 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:280:46:280:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:287:46:287:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:293:46:293:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:407:31:407:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:412:31:412:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:417:22:417:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:423:22:423:25 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:424:27:424:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:430:22:430:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:440:20:440:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:474:21:474:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:475:21:475:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:483:21:483:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:743:16:743:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 5a292c999d9..0345871a8e3 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -78,6 +78,7 @@ async fn test_reqwest() -> Result<(), reqwest::Error> { sink(remote_string6); // $ MISSING: hasTaintFlow let mut request1 = reqwest::get("example.com").await?; // $ Alert[rust/summary/taint-sources] + sink(request1.chunk().await?.unwrap()); // $ MISSING: hasTaintFlow while let Some(chunk) = request1.chunk().await? { sink(chunk); // $ MISSING: hasTaintFlow } @@ -269,6 +270,7 @@ fn test_io_stdin() -> std::io::Result<()> { { let mut reader_split = std::io::BufReader::new(std::io::stdin()).split(b','); // $ Alert[rust/summary/taint-sources] + sink(reader_split.next().unwrap().unwrap()); // $ MISSING: hasTaintFlow while let Some(chunk) = reader_split.next() { sink(chunk.unwrap()); // $ MISSING: hasTaintFlow } @@ -380,6 +382,7 @@ async fn test_tokio_stdin() -> Result<(), Box> { { let mut reader_split = tokio::io::BufReader::new(tokio::io::stdin()).split(b','); // $ MISSING: Alert[rust/summary/taint-sources] + sink(reader_split.next_segment().await?.unwrap()); // $ MISSING: hasTaintFlow while let Some(chunk) = reader_split.next_segment().await? { sink(chunk); // $ MISSING: hasTaintFlow } @@ -388,8 +391,9 @@ async fn test_tokio_stdin() -> Result<(), Box> { { let reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] let mut lines = reader.lines(); + sink(lines.next_line().await?.unwrap()); // $ MISSING: hasTaintFlow while let Some(line) = lines.next_line().await? { - sink(line); // $ hasTai + sink(line); // $ MISSING: hasTaintFlow } } From 627496df094bcc2d36b01cbdb7bd1b8bab3ed15c Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 17:46:13 +0100 Subject: [PATCH 204/656] Rust: Add source tests for tokio (fs). --- .../dataflow/sources/TaintSources.expected | 10 ++--- .../library-tests/dataflow/sources/test.rs | 38 +++++++++++++++++++ 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index 05ae13cb2ce..c64e6a369a5 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -42,8 +42,8 @@ | test.rs:423:22:423:25 | path | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:424:27:424:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:430:22:430:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:440:20:440:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:474:21:474:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:475:21:475:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:483:21:483:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:743:16:743:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| test.rs:472:20:472:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:506:21:506:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:507:21:507:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:515:21:515:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:775:16:775:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 0345871a8e3..e8d8d65a3a7 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -434,6 +434,38 @@ fn test_fs() -> Result<(), Box> { Ok(()) } +async fn test_tokio_fs() -> Result<(), Box> { + { + let buffer: Vec = tokio::fs::read("file.bin").await?; // $ MISSING: Alert[rust/summary/taint-sources] + sink(buffer); // $ MISSING: hasTaintFlow="file.bin" + } + + { + let buffer: Vec = tokio::fs::read("file.bin").await?; // $ MISSING: Alert[rust/summary/taint-sources] + sink(buffer); // $ MISSING: hasTaintFlow="file.bin" + } + + { + let buffer = tokio::fs::read_to_string("file.txt").await?; // $ MISSING: Alert[rust/summary/taint-sources] + sink(buffer); // $ MISSING: hasTaintFlow="file.txt" + } + + let mut read_dir = tokio::fs::read_dir("directory").await?; + for entry in read_dir.next_entry().await? { + let path = entry.path(); // $ MISSING: Alert[rust/summary/taint-sources] + let file_name = entry.file_name(); // $ MISSING: Alert[rust/summary/taint-sources] + sink(path); // $ MISSING: hasTaintFlow + sink(file_name); // $ MISSING: hasTaintFlow + } + + { + let target = tokio::fs::read_link("symlink.txt").await?; // $ MISSING: Alert[rust/summary/taint-sources] + sink(target); // $ MISSING: hasTaintFlow="symlink.txt" + } + + Ok(()) +} + fn test_io_file() -> std::io::Result<()> { // --- file --- @@ -781,6 +813,12 @@ async fn main() -> Result<(), Box> { Err(e) => println!("error: {}", e), } + println!("test_tokio_fs..."); + match futures::executor::block_on(test_tokio_fs()) { + Ok(_) => println!("complete"), + Err(e) => println!("error: {}", e), + } + println!("test_io_file..."); match test_io_file() { Ok(_) => println!("complete"), From 7439b0c50486ccee104b97e7efefc29c4c383de9 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 14:52:10 +0100 Subject: [PATCH 205/656] Rust: Add models for tokio (io). --- .../codeql/rust/frameworks/tokio/io.model.yml | 48 ++++++++++++++++ .../dataflow/sources/TaintSources.expected | 12 ++++ .../library-tests/dataflow/sources/test.rs | 56 +++++++++---------- 3 files changed, 88 insertions(+), 28 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/frameworks/tokio/io.model.yml diff --git a/rust/ql/lib/codeql/rust/frameworks/tokio/io.model.yml b/rust/ql/lib/codeql/rust/frameworks/tokio/io.model.yml new file mode 100644 index 00000000000..ab0e88a9d61 --- /dev/null +++ b/rust/ql/lib/codeql/rust/frameworks/tokio/io.model.yml @@ -0,0 +1,48 @@ +extensions: + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::stdin::stdin", "ReturnValue", "stdin", "manual"] + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_buf_read_ext::AsyncBufReadExt::fill_buf", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::buffer", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_to_string", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_to_end", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_exact", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_line", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_until", "Argument[self]", "Argument[1].Reference", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_buf_read_ext::AsyncBufReadExt::split", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::next_segment", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_buf_read_ext::AsyncBufReadExt::lines", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::next_line", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_buf", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_u8", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_u8_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_u16", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_u16_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_u32", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_u32_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_u64", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_u64_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_u128", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_u128_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_i8", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_i8_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_i16", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_i16_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_i32", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_i32_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_i64", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_i64_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_i128", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_i128_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_f32", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_f32_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_f64", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_f64_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index c64e6a369a5..1f7357f7e03 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -36,6 +36,18 @@ | test.rs:280:46:280:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | | test.rs:287:46:287:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | | test.rs:293:46:293:59 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:308:25:308:40 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:315:25:315:40 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:322:25:322:40 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:329:25:329:40 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:336:25:336:40 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:348:25:348:40 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:357:52:357:67 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:363:48:363:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:370:52:370:67 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:377:52:377:67 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:384:58:384:73 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | +| test.rs:392:48:392:63 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | | test.rs:407:31:407:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:412:31:412:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:417:22:417:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index e8d8d65a3a7..2c87a05a474 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -305,93 +305,93 @@ async fn test_tokio_stdin() -> Result<(), Box> { // --- async reading from stdin --- { - let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut stdin = tokio::io::stdin(); // $ Alert[rust/summary/taint-sources] let mut buffer = [0u8; 100]; let _bytes = stdin.read(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow } { - let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut stdin = tokio::io::stdin(); // $ Alert[rust/summary/taint-sources] let mut buffer = Vec::::new(); let _bytes = stdin.read_to_end(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow } { - let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut stdin = tokio::io::stdin(); // $ Alert[rust/summary/taint-sources] let mut buffer = String::new(); let _bytes = stdin.read_to_string(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow } { - let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut stdin = tokio::io::stdin(); // $ Alert[rust/summary/taint-sources] let mut buffer = [0; 100]; stdin.read_exact(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow } { - let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut stdin = tokio::io::stdin(); // $ Alert[rust/summary/taint-sources] let v1 = stdin.read_u8().await?; let v2 = stdin.read_i16().await?; let v3 = stdin.read_f32().await?; let v4 = stdin.read_i64_le().await?; - sink(v1); // $ MISSING: hasTaintFlow - sink(v2); // $ MISSING: hasTaintFlow - sink(v3); // $ MISSING: hasTaintFlow - sink(v4); // $ MISSING: hasTaintFlow + sink(v1); // $ hasTaintFlow + sink(v2); // $ hasTaintFlow + sink(v3); // $ hasTaintFlow + sink(v4); // $ hasTaintFlow } { - let mut stdin = tokio::io::stdin(); // $ MISSING: Alert[rust/summary/taint-sources] + let mut stdin = tokio::io::stdin(); // $ Alert[rust/summary/taint-sources] let mut buffer = bytes::BytesMut::new(); stdin.read_buf(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow } // --- async reading from stdin (BufReader) --- { - let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] + let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ Alert[rust/summary/taint-sources] let data = reader.fill_buf().await?; - sink(&data); // $ MISSING: hasTaintFlow + sink(&data); // $ hasTaintFlow } { - let reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] + let reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ Alert[rust/summary/taint-sources] let data = reader.buffer(); - sink(&data); // $ MISSING: hasTaintFlow + sink(&data); // $ hasTaintFlow } { let mut buffer = String::new(); - let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] + let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ Alert[rust/summary/taint-sources] reader.read_line(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow } { let mut buffer = Vec::::new(); - let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] + let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ Alert[rust/summary/taint-sources] reader.read_until(b',', &mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow - sink(buffer[0]); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow + sink(buffer[0]); // $ hasTaintFlow } { - let mut reader_split = tokio::io::BufReader::new(tokio::io::stdin()).split(b','); // $ MISSING: Alert[rust/summary/taint-sources] - sink(reader_split.next_segment().await?.unwrap()); // $ MISSING: hasTaintFlow + let mut reader_split = tokio::io::BufReader::new(tokio::io::stdin()).split(b','); // $ Alert[rust/summary/taint-sources] + sink(reader_split.next_segment().await?.unwrap()); // $ hasTaintFlow while let Some(chunk) = reader_split.next_segment().await? { sink(chunk); // $ MISSING: hasTaintFlow } } { - let reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ MISSING: Alert[rust/summary/taint-sources] + let reader = tokio::io::BufReader::new(tokio::io::stdin()); // $ Alert[rust/summary/taint-sources] let mut lines = reader.lines(); - sink(lines.next_line().await?.unwrap()); // $ MISSING: hasTaintFlow + sink(lines.next_line().await?.unwrap()); // $ hasTaintFlow while let Some(line) = lines.next_line().await? { sink(line); // $ MISSING: hasTaintFlow } From f4ae2110190b472f7fb631317707fc8b14197a2b Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 14:54:59 +0100 Subject: [PATCH 206/656] Rust: Add models for tokio (fs). --- .../codeql/rust/frameworks/tokio/fs.model.yml | 11 ++++ .../codeql/rust/frameworks/tokio/io.model.yml | 3 ++ .../dataflow/sources/TaintSources.expected | 10 ++++ .../library-tests/dataflow/sources/test.rs | 54 +++++++++---------- 4 files changed, 51 insertions(+), 27 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/frameworks/tokio/fs.model.yml diff --git a/rust/ql/lib/codeql/rust/frameworks/tokio/fs.model.yml b/rust/ql/lib/codeql/rust/frameworks/tokio/fs.model.yml new file mode 100644 index 00000000000..caa108de2b5 --- /dev/null +++ b/rust/ql/lib/codeql/rust/frameworks/tokio/fs.model.yml @@ -0,0 +1,11 @@ +extensions: + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::fs::read::read", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "file", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::fs::read_to_string::read_to_string", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "file", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::fs::read_link::read_link", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "file", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::path", "ReturnValue", "file", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::file_name", "ReturnValue", "file", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::open", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "file", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/tokio/io.model.yml b/rust/ql/lib/codeql/rust/frameworks/tokio/io.model.yml index ab0e88a9d61..ecfcb1b241b 100644 --- a/rust/ql/lib/codeql/rust/frameworks/tokio/io.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/tokio/io.model.yml @@ -46,3 +46,6 @@ extensions: - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_f32_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_f64", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read_f64_le", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::chain", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::chain", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::take", "Argument[self]", "ReturnValue", "taint", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index 1f7357f7e03..88377ddf823 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -54,8 +54,18 @@ | test.rs:423:22:423:25 | path | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:424:27:424:35 | file_name | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:430:22:430:34 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:439:31:439:45 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:444:31:444:45 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:449:22:449:46 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:455:26:455:29 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:456:31:456:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:462:22:462:41 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:472:20:472:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:506:21:506:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:507:21:507:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:515:21:515:39 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:527:20:527:40 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:574:21:574:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:575:21:575:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:583:21:583:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:775:16:775:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 2c87a05a474..3d511531c3b 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -436,31 +436,31 @@ fn test_fs() -> Result<(), Box> { async fn test_tokio_fs() -> Result<(), Box> { { - let buffer: Vec = tokio::fs::read("file.bin").await?; // $ MISSING: Alert[rust/summary/taint-sources] - sink(buffer); // $ MISSING: hasTaintFlow="file.bin" + let buffer: Vec = tokio::fs::read("file.bin").await?; // $ Alert[rust/summary/taint-sources] + sink(buffer); // $ hasTaintFlow="file.bin" } { - let buffer: Vec = tokio::fs::read("file.bin").await?; // $ MISSING: Alert[rust/summary/taint-sources] - sink(buffer); // $ MISSING: hasTaintFlow="file.bin" + let buffer: Vec = tokio::fs::read("file.bin").await?; // $ Alert[rust/summary/taint-sources] + sink(buffer); // $ hasTaintFlow="file.bin" } { - let buffer = tokio::fs::read_to_string("file.txt").await?; // $ MISSING: Alert[rust/summary/taint-sources] - sink(buffer); // $ MISSING: hasTaintFlow="file.txt" + let buffer = tokio::fs::read_to_string("file.txt").await?; // $ Alert[rust/summary/taint-sources] + sink(buffer); // $ hasTaintFlow="file.txt" } let mut read_dir = tokio::fs::read_dir("directory").await?; for entry in read_dir.next_entry().await? { - let path = entry.path(); // $ MISSING: Alert[rust/summary/taint-sources] - let file_name = entry.file_name(); // $ MISSING: Alert[rust/summary/taint-sources] - sink(path); // $ MISSING: hasTaintFlow - sink(file_name); // $ MISSING: hasTaintFlow + let path = entry.path(); // $ Alert[rust/summary/taint-sources] + let file_name = entry.file_name(); // $ Alert[rust/summary/taint-sources] + sink(path); // $ hasTaintFlow + sink(file_name); // $ hasTaintFlow } { - let target = tokio::fs::read_link("symlink.txt").await?; // $ MISSING: Alert[rust/summary/taint-sources] - sink(target); // $ MISSING: hasTaintFlow="symlink.txt" + let target = tokio::fs::read_link("symlink.txt").await?; // $ Alert[rust/summary/taint-sources] + sink(target); // $ hasTaintFlow="symlink.txt" } Ok(()) @@ -524,30 +524,30 @@ fn test_io_file() -> std::io::Result<()> { async fn test_tokio_file() -> std::io::Result<()> { // --- file --- - let mut file = tokio::fs::File::open("file.txt").await?; // $ MISSING: Alert[rust/summary/taint-sources] + let mut file = tokio::fs::File::open("file.txt").await?; // $ Alert[rust/summary/taint-sources] { let mut buffer = [0u8; 100]; let _bytes = file.read(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" + sink(&buffer); // $ hasTaintFlow="file.txt" } { let mut buffer = Vec::::new(); let _bytes = file.read_to_end(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" + sink(&buffer); // $ hasTaintFlow="file.txt" } { let mut buffer = String::new(); let _bytes = file.read_to_string(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" + sink(&buffer); // $ hasTaintFlow="file.txt" } { let mut buffer = [0; 100]; file.read_exact(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" + sink(&buffer); // $ hasTaintFlow="file.txt" } { @@ -555,35 +555,35 @@ async fn test_tokio_file() -> std::io::Result<()> { let v2 = file.read_i16().await?; let v3 = file.read_f32().await?; let v4 = file.read_i64_le().await?; - sink(v1); // $ MISSING: hasTaintFlow - sink(v2); // $ MISSING: hasTaintFlow - sink(v3); // $ MISSING: hasTaintFlow - sink(v4); // $ MISSING: hasTaintFlow + sink(v1); // $ hasTaintFlow="file.txt" + sink(v2); // $ hasTaintFlow="file.txt" + sink(v3); // $ hasTaintFlow="file.txt" + sink(v4); // $ hasTaintFlow="file.txt" } { let mut buffer = bytes::BytesMut::new(); file.read_buf(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow="file.txt" } // --- misc operations --- { let mut buffer = String::new(); - let file1 = tokio::fs::File::open("file.txt").await?; // $ MISSING: Alert[rust/summary/taint-sources] - let file2 = tokio::fs::File::open("another_file.txt").await?; // $ MISSING: [rust/summary/taint-sources] + let file1 = tokio::fs::File::open("file.txt").await?; // $ Alert[rust/summary/taint-sources] + let file2 = tokio::fs::File::open("another_file.txt").await?; // $ Alert[rust/summary/taint-sources] let mut reader = file1.chain(file2); reader.read_to_string(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" hasTaintFlow="another_file.txt" + sink(&buffer); // $ hasTaintFlow="file.txt" hasTaintFlow="another_file.txt" } { let mut buffer = String::new(); - let file1 = tokio::fs::File::open("file.txt").await?; // $ MISSING: Alert[rust/summary/taint-sources] + let file1 = tokio::fs::File::open("file.txt").await?; // $ Alert[rust/summary/taint-sources] let mut reader = file1.take(100); reader.read_to_string(&mut buffer).await?; - sink(&buffer); // $ MISSING: hasTaintFlow="file.txt" + sink(&buffer); // $ hasTaintFlow="file.txt" } Ok(()) From 3104dba09e1bb2cabdc74ad2fd82c105c4652961 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 18:23:42 +0100 Subject: [PATCH 207/656] Rust: Fix some shortcomings in our models of Reqwest. --- .../ql/lib/codeql/rust/frameworks/reqwest.model.yml | 13 ++++++++----- rust/ql/test/library-tests/dataflow/sources/test.rs | 8 ++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/reqwest.model.yml b/rust/ql/lib/codeql/rust/frameworks/reqwest.model.yml index 3be832c8e7f..f954d4ce7cc 100644 --- a/rust/ql/lib/codeql/rust/frameworks/reqwest.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/reqwest.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/rust-all extensible: sourceModel data: - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::get", "ReturnValue.Field[crate::result::Result::Ok(0)]", "remote", "manual"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::get", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "remote", "manual"] - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::blocking::get", "ReturnValue.Field[crate::result::Result::Ok(0)]", "remote", "manual"] - addsTo: pack: codeql/rust-all @@ -15,10 +15,13 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::text", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::text_with_charset", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::bytes", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::chunk", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)]", "taint", "manual"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::text", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::text_with_charset", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::bytes", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::chunk", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)]", "taint", "manual"] - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::text", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"] - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::text_with_charset", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"] - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::bytes", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::text", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::bytes", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::chunk", "Argument[self]", "ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)]", "taint", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 3d511531c3b..8e87cf8e5cc 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -72,15 +72,15 @@ async fn test_reqwest() -> Result<(), reqwest::Error> { sink(remote_string4); // $ hasTaintFlow="example.com" let remote_string5 = reqwest::get("example.com").await?.text().await?; // $ Alert[rust/summary/taint-sources] - sink(remote_string5); // $ MISSING: hasTaintFlow + sink(remote_string5); // $ hasTaintFlow="example.com" let remote_string6 = reqwest::get("example.com").await?.bytes().await?; // $ Alert[rust/summary/taint-sources] - sink(remote_string6); // $ MISSING: hasTaintFlow + sink(remote_string6); // $ hasTaintFlow="example.com" let mut request1 = reqwest::get("example.com").await?; // $ Alert[rust/summary/taint-sources] - sink(request1.chunk().await?.unwrap()); // $ MISSING: hasTaintFlow + sink(request1.chunk().await?.unwrap()); // $ hasTaintFlow="example.com" while let Some(chunk) = request1.chunk().await? { - sink(chunk); // $ MISSING: hasTaintFlow + sink(chunk); // $ MISSING: hasTaintFlow="example.com" } Ok(()) From 038b8b5344fc9303071b9160c47a61e4ab677781 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 18:30:25 +0100 Subject: [PATCH 208/656] Rust: Add a missing model for std::io. --- rust/ql/lib/codeql/rust/frameworks/stdlib/io.model.yml | 1 + rust/ql/test/library-tests/dataflow/sources/test.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/io.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/io.model.yml index 3cdbb911b5b..e6b75aeb8d3 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/io.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/io.model.yml @@ -36,3 +36,4 @@ extensions: - ["lang:std", "crate::io::Read::chain", "Argument[0]", "ReturnValue", "taint", "manual"] - ["lang:std", "crate::io::Read::take", "Argument[self]", "ReturnValue", "taint", "manual"] - ["lang:std", "::lock", "Argument[self]", "ReturnValue", "taint", "manual"] + - ["lang:std", "::next", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Ok(0)]", "taint", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 8e87cf8e5cc..8c4808605b4 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -270,7 +270,7 @@ fn test_io_stdin() -> std::io::Result<()> { { let mut reader_split = std::io::BufReader::new(std::io::stdin()).split(b','); // $ Alert[rust/summary/taint-sources] - sink(reader_split.next().unwrap().unwrap()); // $ MISSING: hasTaintFlow + sink(reader_split.next().unwrap().unwrap()); // $ hasTaintFlow while let Some(chunk) = reader_split.next() { sink(chunk.unwrap()); // $ MISSING: hasTaintFlow } From e1fc0ca051d43b46aef2fd1adeeb3a5b3c25ed33 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 1 May 2025 14:01:33 +0200 Subject: [PATCH 209/656] Added implementation `hdbcli` as part of `PEP249::PEP249ModuleApiNode` --- python/ql/lib/semmle/python/Frameworks.qll | 1 + .../lib/semmle/python/frameworks/Hdbcli.qll | 24 +++++++++++++++++++ .../library-tests/frameworks/hdbcli/pep249.py | 4 ++-- 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 python/ql/lib/semmle/python/frameworks/Hdbcli.qll diff --git a/python/ql/lib/semmle/python/Frameworks.qll b/python/ql/lib/semmle/python/Frameworks.qll index e6af222a615..955385141f7 100644 --- a/python/ql/lib/semmle/python/Frameworks.qll +++ b/python/ql/lib/semmle/python/Frameworks.qll @@ -35,6 +35,7 @@ private import semmle.python.frameworks.FlaskAdmin private import semmle.python.frameworks.FlaskSqlAlchemy private import semmle.python.frameworks.Genshi private import semmle.python.frameworks.Gradio +private import semmle.python.frameworks.Hdbcli private import semmle.python.frameworks.Httpx private import semmle.python.frameworks.Idna private import semmle.python.frameworks.Invoke diff --git a/python/ql/lib/semmle/python/frameworks/Hdbcli.qll b/python/ql/lib/semmle/python/frameworks/Hdbcli.qll new file mode 100644 index 00000000000..6b91519ae63 --- /dev/null +++ b/python/ql/lib/semmle/python/frameworks/Hdbcli.qll @@ -0,0 +1,24 @@ +/** + * Provides classes modeling security-relevant aspects of the `hdbcli` PyPI package. + * See https://pypi.org/project/hdbcli/ + */ + +private import python +private import semmle.python.dataflow.new.RemoteFlowSources +private import semmle.python.Concepts +private import semmle.python.ApiGraphs +private import semmle.python.frameworks.PEP249 + +/** + * Provides models for the `hdbcli` PyPI package. + * See https://pypi.org/project/hdbcli/ + */ +private module Hdbcli { + /** + * A model of `hdbcli` as a module that implements PEP 249, providing ways to execute SQL statements + * against a database. + */ + class HdbcliPEP249 extends PEP249::PEP249ModuleApiNode { + HdbcliPEP249() { this = API::moduleImport("hdbcli").getMember("dbapi") } + } +} diff --git a/python/ql/test/library-tests/frameworks/hdbcli/pep249.py b/python/ql/test/library-tests/frameworks/hdbcli/pep249.py index 35c6e6d87e4..713f15cb6d4 100644 --- a/python/ql/test/library-tests/frameworks/hdbcli/pep249.py +++ b/python/ql/test/library-tests/frameworks/hdbcli/pep249.py @@ -3,7 +3,7 @@ from hdbcli import dbapi conn = dbapi.connect(address="hostname", port=300, user="username", password="password") cursor = conn.cursor() -cursor.execute("some sql", (42,)) # $ MISSING: getSql="some sql" -cursor.executemany("some sql", (42,)) # $ MISSING: getSql="some sql" +cursor.execute("some sql", (42,)) # $ getSql="some sql" +cursor.executemany("some sql", (42,)) # $ getSql="some sql" cursor.close() From da7c0931b8aead3a235008d0b5ca2ad88b2a941e Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 1 May 2025 14:08:54 +0200 Subject: [PATCH 210/656] Added `hdbcli` to be part of `supported-framework` as well as change note --- docs/codeql/reusables/supported-frameworks.rst | 1 + python/ql/lib/change-notes/2025-05-01-hdbcli.md | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 python/ql/lib/change-notes/2025-05-01-hdbcli.md diff --git a/docs/codeql/reusables/supported-frameworks.rst b/docs/codeql/reusables/supported-frameworks.rst index 402a3b9ee3d..07a5e509fec 100644 --- a/docs/codeql/reusables/supported-frameworks.rst +++ b/docs/codeql/reusables/supported-frameworks.rst @@ -254,6 +254,7 @@ and the CodeQL library pack ``codeql/python-all`` (`changelog Date: Wed, 30 Apr 2025 13:21:56 +0200 Subject: [PATCH 211/656] Rust: extract declarations of builtin types --- rust/BUILD.bazel | 1 + rust/extractor/src/main.rs | 36 +++++++++++++++++++++++---------- rust/tools/builtins/BUILD.bazel | 8 ++++++++ rust/tools/builtins/types.rs | 25 +++++++++++++++++++++++ 4 files changed, 59 insertions(+), 11 deletions(-) create mode 100644 rust/tools/builtins/BUILD.bazel create mode 100644 rust/tools/builtins/types.rs diff --git a/rust/BUILD.bazel b/rust/BUILD.bazel index 9cdc89dd52f..6536a4b6fd9 100644 --- a/rust/BUILD.bazel +++ b/rust/BUILD.bazel @@ -36,6 +36,7 @@ pkg_filegroup( srcs = [ ":tools-arch", "//rust/tools", + "//rust/tools/builtins", ], prefix = "tools", ) diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index 0ec1769f1d1..b983a3217a3 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -17,6 +17,7 @@ use std::{ collections::HashMap, path::{Path, PathBuf}, }; +use std::{env, fs}; use tracing::{error, info, warn}; use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::util::SubscriberInitExt; @@ -77,17 +78,19 @@ impl<'a> Extractor<'a> { } let no_location = (LineCol { line: 0, col: 0 }, LineCol { line: 0, col: 0 }); if let Err(reason) = semantics_info { - let message = format!("semantic analyzer unavailable ({reason})"); - let full_message = format!( - "{message}: macro expansion, call graph, and type inference will be skipped." - ); - translator.emit_diagnostic( - trap::DiagnosticSeverity::Warning, - "semantics".to_owned(), - message, - full_message, - no_location, - ); + if !reason.is_empty() { + let message = format!("semantic analyzer unavailable ({reason})"); + let full_message = format!( + "{message}: macro expansion, call graph, and type inference will be skipped." + ); + translator.emit_diagnostic( + trap::DiagnosticSeverity::Warning, + "semantics".to_owned(), + message, + full_message, + no_location, + ); + } } translator.emit_source_file(ast); translator.trap.commit().unwrap_or_else(|err| { @@ -276,5 +279,16 @@ fn main() -> anyhow::Result<()> { } } } + let builtins_dir = env::var("CODEQL_EXTRACTOR_RUST_ROOT") + .map(|path| Path::new(&path).join("tools").join("builtins"))?; + let builtins = fs::read_dir(builtins_dir).context("failed to read builtins directory")?; + for entry in builtins { + let entry = entry.context("failed to read builtins directory")?; + let path = entry.path(); + if path.extension().is_some_and(|ext| ext == "rs") { + extractor.extract_without_semantics(&path, ""); + } + } + extractor.emit_extraction_diagnostics(start, &cfg) } diff --git a/rust/tools/builtins/BUILD.bazel b/rust/tools/builtins/BUILD.bazel new file mode 100644 index 00000000000..2c7da705dd2 --- /dev/null +++ b/rust/tools/builtins/BUILD.bazel @@ -0,0 +1,8 @@ +load("//misc/bazel:pkg.bzl", "codeql_pkg_files") + +codeql_pkg_files( + name = "builtins", + srcs = glob(["*.rs"]), + prefix = "builtins", + visibility = ["//rust:__subpackages__"], +) diff --git a/rust/tools/builtins/types.rs b/rust/tools/builtins/types.rs new file mode 100644 index 00000000000..91989b5262b --- /dev/null +++ b/rust/tools/builtins/types.rs @@ -0,0 +1,25 @@ +// The Language Prelude: https://doc.rust-lang.org/reference/names/preludes.html#language-prelude + +// Type namespace +// Boolean type +pub struct bool; +// Textual types +pub struct char; +pub struct str; +// Integer types +pub struct i8; +pub struct i16; +pub struct i32; +pub struct i64; +pub struct i128; +pub struct u8; +pub struct u16; +pub struct u32; +pub struct u64; +pub struct u128; +// Machine-dependent integer types +pub struct usize; +pub struct isize; +// floating-point types +pub struct f32; +pub struct f64; From ca5f8b0c1d1872d6a9b38d91139a1e6b82659385 Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 1 May 2025 15:17:07 +0200 Subject: [PATCH 212/656] JS: Move some code into ModelsAsData.qll --- .../frameworks/data/ModelsAsData.qll | 45 ++++++++++++++++++- .../data/internal/ApiGraphModelsSpecific.qll | 45 ------------------- 2 files changed, 44 insertions(+), 46 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll index 856a61276a0..9f143a9713a 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll @@ -45,12 +45,55 @@ private class ThreatModelSourceFromDataExtension extends ThreatModelSource::Rang } } +/** + * Holds if `path` is an input or output spec for a summary with the given `base` node. + */ +pragma[nomagic] +private predicate relevantInputOutputPath(API::InvokeNode base, AccessPath inputOrOutput) { + exists(string type, string input, string output, string path | + ModelOutput::resolvedSummaryBase(type, path, base) and + ModelOutput::relevantSummaryModel(type, path, input, output, _, _) and + inputOrOutput = [input, output] + ) +} + +/** + * Gets the API node for the first `n` tokens of the given input/output path, evaluated relative to `baseNode`. + */ +private API::Node getNodeFromInputOutputPath(API::InvokeNode baseNode, AccessPath path, int n) { + relevantInputOutputPath(baseNode, path) and + ( + n = 1 and + result = Shared::getSuccessorFromInvoke(baseNode, path.getToken(0)) + or + result = + Shared::getSuccessorFromNode(getNodeFromInputOutputPath(baseNode, path, n - 1), + path.getToken(n - 1)) + ) +} + +/** + * Gets the API node for the given input/output path, evaluated relative to `baseNode`. + */ +private API::Node getNodeFromInputOutputPath(API::InvokeNode baseNode, AccessPath path) { + result = getNodeFromInputOutputPath(baseNode, path, path.getNumToken()) +} + +private predicate summaryStep(API::Node pred, API::Node succ, string kind) { + exists(string type, string path, API::InvokeNode base, AccessPath input, AccessPath output | + ModelOutput::relevantSummaryModel(type, path, input, output, kind, _) and + ModelOutput::resolvedSummaryBase(type, path, base) and + pred = getNodeFromInputOutputPath(base, input) and + succ = getNodeFromInputOutputPath(base, output) + ) +} + /** * Like `ModelOutput::summaryStep` but with API nodes mapped to data-flow nodes. */ private predicate summaryStepNodes(DataFlow::Node pred, DataFlow::Node succ, string kind) { exists(API::Node predNode, API::Node succNode | - Specific::summaryStep(predNode, succNode, kind) and + summaryStep(predNode, succNode, kind) and pred = predNode.asSink() and succ = succNode.asSource() ) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll index 1f51af3efda..473dfe46527 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll @@ -272,51 +272,6 @@ predicate invocationMatchesExtraCallSiteFilter(API::InvokeNode invoke, AccessPat ) } -/** - * Holds if `path` is an input or output spec for a summary with the given `base` node. - */ -pragma[nomagic] -private predicate relevantInputOutputPath(API::InvokeNode base, AccessPath inputOrOutput) { - exists(string type, string input, string output, string path | - ModelOutput::relevantSummaryModel(type, path, input, output, _, _) and - ModelOutput::resolvedSummaryBase(type, path, base) and - inputOrOutput = [input, output] - ) -} - -/** - * Gets the API node for the first `n` tokens of the given input/output path, evaluated relative to `baseNode`. - */ -private API::Node getNodeFromInputOutputPath(API::InvokeNode baseNode, AccessPath path, int n) { - relevantInputOutputPath(baseNode, path) and - ( - n = 1 and - result = getSuccessorFromInvoke(baseNode, path.getToken(0)) - or - result = - getSuccessorFromNode(getNodeFromInputOutputPath(baseNode, path, n - 1), path.getToken(n - 1)) - ) -} - -/** - * Gets the API node for the given input/output path, evaluated relative to `baseNode`. - */ -private API::Node getNodeFromInputOutputPath(API::InvokeNode baseNode, AccessPath path) { - result = getNodeFromInputOutputPath(baseNode, path, path.getNumToken()) -} - -/** - * Holds if a CSV summary contributed the step `pred -> succ` of the given `kind`. - */ -predicate summaryStep(API::Node pred, API::Node succ, string kind) { - exists(string type, string path, API::InvokeNode base, AccessPath input, AccessPath output | - ModelOutput::relevantSummaryModel(type, path, input, output, kind, _) and - ModelOutput::resolvedSummaryBase(type, path, base) and - pred = getNodeFromInputOutputPath(base, input) and - succ = getNodeFromInputOutputPath(base, output) - ) -} - class InvokeNode = API::InvokeNode; /** Gets an `InvokeNode` corresponding to an invocation of `node`. */ From 8e8efedb42ddd87de4519b34f47d77b238aa3577 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 30 Apr 2025 17:10:33 +0200 Subject: [PATCH 213/656] Rust: adjust integration tests and expected output --- .../hello-project/diagnostics.expected | 2 +- .../hello-project/steps.cargo.expected | 2 ++ .../integration-tests/hello-project/steps.ql | 25 ++++++++++++++++++- .../hello-project/steps.rust-project.expected | 2 ++ .../hello-project/summary.expected | 2 +- .../diagnostics.cargo.expected | 2 +- .../diagnostics.rust-project.expected | 2 +- .../hello-workspace/steps.cargo.expected | 2 ++ .../hello-workspace/steps.ql | 25 ++++++++++++++++++- .../steps.rust-project.expected | 2 ++ .../hello-workspace/summary.cargo.expected | 2 +- .../summary.rust-project.expected | 2 +- .../workspace-with-glob/steps.expected | 2 ++ .../workspace-with-glob/steps.ql | 25 ++++++++++++++++++- 14 files changed, 88 insertions(+), 9 deletions(-) diff --git a/rust/ql/integration-tests/hello-project/diagnostics.expected b/rust/ql/integration-tests/hello-project/diagnostics.expected index 146d8514488..f45877f26d0 100644 --- a/rust/ql/integration-tests/hello-project/diagnostics.expected +++ b/rust/ql/integration-tests/hello-project/diagnostics.expected @@ -30,7 +30,7 @@ "pretty": "__REDACTED__" } }, - "numberOfFiles": 5, + "numberOfFiles": 6, "numberOfManifests": 1 }, "severity": "note", diff --git a/rust/ql/integration-tests/hello-project/steps.cargo.expected b/rust/ql/integration-tests/hello-project/steps.cargo.expected index 4deec0653da..ca256c4f856 100644 --- a/rust/ql/integration-tests/hello-project/steps.cargo.expected +++ b/rust/ql/integration-tests/hello-project/steps.cargo.expected @@ -1,4 +1,6 @@ | Cargo.toml:0:0:0:0 | LoadManifest(Cargo.toml) | +| file:///types.rs:0:0:0:0 | Extract(/types.rs) | +| file:///types.rs:0:0:0:0 | Parse(/types.rs) | | file://:0:0:0:0 | CrateGraph | | file://:0:0:0:0 | FindManifests | | src/directory_module/mod.rs:0:0:0:0 | Extract(src/directory_module/mod.rs) | diff --git a/rust/ql/integration-tests/hello-project/steps.ql b/rust/ql/integration-tests/hello-project/steps.ql index 17358a1c100..fe45fc4b6dc 100644 --- a/rust/ql/integration-tests/hello-project/steps.ql +++ b/rust/ql/integration-tests/hello-project/steps.ql @@ -1,4 +1,27 @@ import codeql.rust.elements.internal.ExtractorStep -from ExtractorStep step +private class Step instanceof ExtractorStep { + string toString() { + result = super.getAction() + "(" + this.getFilePath() + ")" + or + not super.hasFile() and result = super.getAction() + } + + private string getFilePath() { + exists(File file | file = super.getFile() | + exists(file.getRelativePath()) and result = file.getAbsolutePath() + or + not exists(file.getRelativePath()) and result = "/" + file.getBaseName() + ) + } + + predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ) { + super.hasLocationInfo(_, startline, startcolumn, endline, endcolumn) and + filepath = this.getFilePath() + } +} + +from Step step select step diff --git a/rust/ql/integration-tests/hello-project/steps.rust-project.expected b/rust/ql/integration-tests/hello-project/steps.rust-project.expected index fa790e6cd7f..165a770e1cb 100644 --- a/rust/ql/integration-tests/hello-project/steps.rust-project.expected +++ b/rust/ql/integration-tests/hello-project/steps.rust-project.expected @@ -1,3 +1,5 @@ +| file:///types.rs:0:0:0:0 | Extract(/types.rs) | +| file:///types.rs:0:0:0:0 | Parse(/types.rs) | | file://:0:0:0:0 | CrateGraph | | file://:0:0:0:0 | FindManifests | | rust-project.json:0:0:0:0 | LoadManifest(rust-project.json) | diff --git a/rust/ql/integration-tests/hello-project/summary.expected b/rust/ql/integration-tests/hello-project/summary.expected index 1f343b197c0..15ee83de7ad 100644 --- a/rust/ql/integration-tests/hello-project/summary.expected +++ b/rust/ql/integration-tests/hello-project/summary.expected @@ -9,7 +9,7 @@ | Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | -| Lines of code extracted | 6 | +| Lines of code extracted | 23 | | Lines of user code extracted | 6 | | Macro calls - resolved | 2 | | Macro calls - total | 2 | diff --git a/rust/ql/integration-tests/hello-workspace/diagnostics.cargo.expected b/rust/ql/integration-tests/hello-workspace/diagnostics.cargo.expected index 9429dada005..146d8514488 100644 --- a/rust/ql/integration-tests/hello-workspace/diagnostics.cargo.expected +++ b/rust/ql/integration-tests/hello-workspace/diagnostics.cargo.expected @@ -30,7 +30,7 @@ "pretty": "__REDACTED__" } }, - "numberOfFiles": 4, + "numberOfFiles": 5, "numberOfManifests": 1 }, "severity": "note", diff --git a/rust/ql/integration-tests/hello-workspace/diagnostics.rust-project.expected b/rust/ql/integration-tests/hello-workspace/diagnostics.rust-project.expected index 9429dada005..146d8514488 100644 --- a/rust/ql/integration-tests/hello-workspace/diagnostics.rust-project.expected +++ b/rust/ql/integration-tests/hello-workspace/diagnostics.rust-project.expected @@ -30,7 +30,7 @@ "pretty": "__REDACTED__" } }, - "numberOfFiles": 4, + "numberOfFiles": 5, "numberOfManifests": 1 }, "severity": "note", diff --git a/rust/ql/integration-tests/hello-workspace/steps.cargo.expected b/rust/ql/integration-tests/hello-workspace/steps.cargo.expected index 32a3b111024..03c81ea6fb7 100644 --- a/rust/ql/integration-tests/hello-workspace/steps.cargo.expected +++ b/rust/ql/integration-tests/hello-workspace/steps.cargo.expected @@ -5,6 +5,8 @@ | exe/src/main.rs:0:0:0:0 | Extract(exe/src/main.rs) | | exe/src/main.rs:0:0:0:0 | LoadSource(exe/src/main.rs) | | exe/src/main.rs:0:0:0:0 | Parse(exe/src/main.rs) | +| file:///types.rs:0:0:0:0 | Extract(/types.rs) | +| file:///types.rs:0:0:0:0 | Parse(/types.rs) | | file://:0:0:0:0 | CrateGraph | | file://:0:0:0:0 | FindManifests | | lib/src/a_module/mod.rs:0:0:0:0 | Extract(lib/src/a_module/mod.rs) | diff --git a/rust/ql/integration-tests/hello-workspace/steps.ql b/rust/ql/integration-tests/hello-workspace/steps.ql index 17358a1c100..fe45fc4b6dc 100644 --- a/rust/ql/integration-tests/hello-workspace/steps.ql +++ b/rust/ql/integration-tests/hello-workspace/steps.ql @@ -1,4 +1,27 @@ import codeql.rust.elements.internal.ExtractorStep -from ExtractorStep step +private class Step instanceof ExtractorStep { + string toString() { + result = super.getAction() + "(" + this.getFilePath() + ")" + or + not super.hasFile() and result = super.getAction() + } + + private string getFilePath() { + exists(File file | file = super.getFile() | + exists(file.getRelativePath()) and result = file.getAbsolutePath() + or + not exists(file.getRelativePath()) and result = "/" + file.getBaseName() + ) + } + + predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ) { + super.hasLocationInfo(_, startline, startcolumn, endline, endcolumn) and + filepath = this.getFilePath() + } +} + +from Step step select step diff --git a/rust/ql/integration-tests/hello-workspace/steps.rust-project.expected b/rust/ql/integration-tests/hello-workspace/steps.rust-project.expected index e9a65e0c7be..0cf90cf71e0 100644 --- a/rust/ql/integration-tests/hello-workspace/steps.rust-project.expected +++ b/rust/ql/integration-tests/hello-workspace/steps.rust-project.expected @@ -4,6 +4,8 @@ | exe/src/main.rs:0:0:0:0 | Extract(exe/src/main.rs) | | exe/src/main.rs:0:0:0:0 | LoadSource(exe/src/main.rs) | | exe/src/main.rs:0:0:0:0 | Parse(exe/src/main.rs) | +| file:///types.rs:0:0:0:0 | Extract(/types.rs) | +| file:///types.rs:0:0:0:0 | Parse(/types.rs) | | file://:0:0:0:0 | CrateGraph | | file://:0:0:0:0 | FindManifests | | lib/src/a_module/mod.rs:0:0:0:0 | Extract(lib/src/a_module/mod.rs) | diff --git a/rust/ql/integration-tests/hello-workspace/summary.cargo.expected b/rust/ql/integration-tests/hello-workspace/summary.cargo.expected index 5912f7d69ba..c845417a624 100644 --- a/rust/ql/integration-tests/hello-workspace/summary.cargo.expected +++ b/rust/ql/integration-tests/hello-workspace/summary.cargo.expected @@ -9,7 +9,7 @@ | Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | -| Lines of code extracted | 9 | +| Lines of code extracted | 26 | | Lines of user code extracted | 9 | | Macro calls - resolved | 2 | | Macro calls - total | 2 | diff --git a/rust/ql/integration-tests/hello-workspace/summary.rust-project.expected b/rust/ql/integration-tests/hello-workspace/summary.rust-project.expected index 5912f7d69ba..c845417a624 100644 --- a/rust/ql/integration-tests/hello-workspace/summary.rust-project.expected +++ b/rust/ql/integration-tests/hello-workspace/summary.rust-project.expected @@ -9,7 +9,7 @@ | Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | -| Lines of code extracted | 9 | +| Lines of code extracted | 26 | | Lines of user code extracted | 9 | | Macro calls - resolved | 2 | | Macro calls - total | 2 | diff --git a/rust/ql/integration-tests/workspace-with-glob/steps.expected b/rust/ql/integration-tests/workspace-with-glob/steps.expected index 4b0e6ed828b..0ee55e79623 100644 --- a/rust/ql/integration-tests/workspace-with-glob/steps.expected +++ b/rust/ql/integration-tests/workspace-with-glob/steps.expected @@ -1,6 +1,8 @@ | Cargo.toml:0:0:0:0 | LoadManifest(Cargo.toml) | | exe/src/main.rs:0:0:0:0 | Extract(exe/src/main.rs) | | exe/src/main.rs:0:0:0:0 | Parse(exe/src/main.rs) | +| file:///types.rs:0:0:0:0 | Extract(/types.rs) | +| file:///types.rs:0:0:0:0 | Parse(/types.rs) | | file://:0:0:0:0 | CrateGraph | | file://:0:0:0:0 | FindManifests | | lib/src/lib.rs:0:0:0:0 | Extract(lib/src/lib.rs) | diff --git a/rust/ql/integration-tests/workspace-with-glob/steps.ql b/rust/ql/integration-tests/workspace-with-glob/steps.ql index 17358a1c100..fe45fc4b6dc 100644 --- a/rust/ql/integration-tests/workspace-with-glob/steps.ql +++ b/rust/ql/integration-tests/workspace-with-glob/steps.ql @@ -1,4 +1,27 @@ import codeql.rust.elements.internal.ExtractorStep -from ExtractorStep step +private class Step instanceof ExtractorStep { + string toString() { + result = super.getAction() + "(" + this.getFilePath() + ")" + or + not super.hasFile() and result = super.getAction() + } + + private string getFilePath() { + exists(File file | file = super.getFile() | + exists(file.getRelativePath()) and result = file.getAbsolutePath() + or + not exists(file.getRelativePath()) and result = "/" + file.getBaseName() + ) + } + + predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ) { + super.hasLocationInfo(_, startline, startcolumn, endline, endcolumn) and + filepath = this.getFilePath() + } +} + +from Step step select step From 0fc1ae272e8d08ab90b9d62b277c9772cc79d76e Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 1 May 2025 15:22:12 +0200 Subject: [PATCH 214/656] DataFlow: expose from FlowSummaries whether a summary is supported --- .../dataflow/internal/FlowSummaryImpl.qll | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 7fa38a327f1..9e6c4ff8b81 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -530,6 +530,85 @@ module Make< } } + private predicate isNonLocalSummaryComponent(SummaryComponent c) { + c instanceof TArgumentSummaryComponent or + c instanceof TParameterSummaryComponent or + c instanceof TReturnSummaryComponent + } + + private predicate isLocalSummaryComponent(SummaryComponent c) { + not isNonLocalSummaryComponent(c) + } + + /** + * Holds if `s` is a valid input stack, in the sense that we generate data flow graph + * that faithfully represents this flow, and lambda-tracking can be expected to track + * lambdas to the relevant callbacks in practice. + */ + private predicate isSupportedInputStack(SummaryComponentStack s) { + // Argument[n].* + s.length() = 1 and + s.head() instanceof TArgumentSummaryComponent + or + // Argument[n].ReturnValue.* + s.length() = 2 and + s.head() instanceof TReturnSummaryComponent and + s.tail().head() instanceof TArgumentSummaryComponent + or + // Argument[n].Parameter[n].Content.* + s.length() = 3 and + s.head() instanceof TContentSummaryComponent and + s.tail().head() instanceof TParameterSummaryComponent and + s.drop(2).head() instanceof TArgumentSummaryComponent + or + isSupportedInputStack(s.tail()) and + isLocalSummaryComponent(s.head()) + } + + /** Like `isSupportedInputStack` but for output stacks. */ + private predicate isSupportedOutputStack(SummaryComponentStack s) { + // ReturnValue.* + s.length() = 1 and + s.head() instanceof TReturnSummaryComponent + or + // Argument[n].Content.* + s.length() = 2 and + s.head() instanceof TContentSummaryComponent and + s.tail().head() instanceof TArgumentSummaryComponent + or + // Argument[n].Parameter[n].* + s.length() = 2 and + s.head() instanceof TParameterSummaryComponent and + s.tail().head() instanceof TArgumentSummaryComponent + or + isSupportedOutputStack(s.tail()) and + isLocalSummaryComponent(s.head()) + } + + /** + * Holds if `callable` has an unsupported flow `input -> output`. + * + * `whichOne` indicates if the `input` or `output` contains the unsupported sequence. + */ + predicate unsupportedCallable( + SummarizedCallableImpl callable, SummaryComponentStack input, SummaryComponentStack output, + string whichOne + ) { + callable.propagatesFlow(input, output, _, _) and + ( + not isSupportedInputStack(input) and whichOne = "input" + or + not isSupportedOutputStack(output) and whichOne = "output" + ) + } + + /** + * Holds if `callable` has an unsupported flow. + */ + predicate unsupportedCallable(SummarizedCallableImpl callable) { + unsupportedCallable(callable, _, _, _) + } + private predicate summarySpec(string spec) { exists(SummarizedCallable c | c.propagatesFlow(spec, _, _, _) From a44bdf3be231dcfc083279ca0e49ddbede93debe Mon Sep 17 00:00:00 2001 From: Asger F Date: Thu, 1 May 2025 15:22:38 +0200 Subject: [PATCH 215/656] JS: Generate summaries from summaryModel, and only generate steps as a fallback --- .../dataflow/internal/FlowSummaryPrivate.qll | 4 ++ .../frameworks/data/ModelsAsData.qll | 40 +++++++++++++++++++ .../TripleDot/underscore.string.js | 8 ++-- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll index 0f25c694f61..31f5f16bbfb 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll @@ -264,3 +264,7 @@ module Stage { cached predicate backref() { optionalStep(_, _, _) } } + +predicate unsupportedCallable = Private::unsupportedCallable/1; + +predicate unsupportedCallable = Private::unsupportedCallable/4; diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll index 9f143a9713a..0e19e84b666 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll @@ -19,6 +19,7 @@ private import javascript private import internal.ApiGraphModels as Shared private import internal.ApiGraphModelsSpecific as Specific +private import semmle.javascript.dataflow.internal.FlowSummaryPrivate private import semmle.javascript.endpoints.EndpointNaming as EndpointNaming import Shared::ModelInput as ModelInput import Shared::ModelOutput as ModelOutput @@ -45,12 +46,50 @@ private class ThreatModelSourceFromDataExtension extends ThreatModelSource::Rang } } +private class SummarizedCallableFromModel extends DataFlow::SummarizedCallable { + string type; + string path; + + SummarizedCallableFromModel() { + ModelOutput::relevantSummaryModel(type, path, _, _, _, _) and + this = type + ";" + path + } + + override DataFlow::InvokeNode getACall() { ModelOutput::resolvedSummaryBase(type, path, result) } + + override predicate propagatesFlow( + string input, string output, boolean preservesValue, string model + ) { + exists(string kind | ModelOutput::relevantSummaryModel(type, path, input, output, kind, model) | + kind = "value" and + preservesValue = true + or + kind = "taint" and + preservesValue = false + ) + } + + predicate hasTypeAndPath(string type_, string path_) { type = type_ and path = path_ } + + predicate isUnsupportedByFlowSummaries() { unsupportedCallable(this) } +} + +private predicate shouldInduceStepsFromSummary(string type, string path) { + exists(SummarizedCallableFromModel callable | + callable.isUnsupportedByFlowSummaries() and + callable.hasTypeAndPath(type, path) + ) +} + /** * Holds if `path` is an input or output spec for a summary with the given `base` node. */ pragma[nomagic] private predicate relevantInputOutputPath(API::InvokeNode base, AccessPath inputOrOutput) { exists(string type, string input, string output, string path | + // If the summary for 'callable' could not be handled as a flow summary, we need to evaluate + // its inputs and outputs to a set of nodes, so we can generate steps instead. + shouldInduceStepsFromSummary(type, path) and ModelOutput::resolvedSummaryBase(type, path, base) and ModelOutput::relevantSummaryModel(type, path, input, output, _, _) and inputOrOutput = [input, output] @@ -81,6 +120,7 @@ private API::Node getNodeFromInputOutputPath(API::InvokeNode baseNode, AccessPat private predicate summaryStep(API::Node pred, API::Node succ, string kind) { exists(string type, string path, API::InvokeNode base, AccessPath input, AccessPath output | + shouldInduceStepsFromSummary(type, path) and ModelOutput::relevantSummaryModel(type, path, input, output, kind, _) and ModelOutput::resolvedSummaryBase(type, path, base) and pred = getNodeFromInputOutputPath(base, input) and diff --git a/javascript/ql/test/library-tests/TripleDot/underscore.string.js b/javascript/ql/test/library-tests/TripleDot/underscore.string.js index 07f186343ce..dd904cd78c3 100644 --- a/javascript/ql/test/library-tests/TripleDot/underscore.string.js +++ b/javascript/ql/test/library-tests/TripleDot/underscore.string.js @@ -39,7 +39,7 @@ function strToStr() { } function strToArray() { - sink(s.chop(source("s1"), 3)); // $ MISSING: hasTaintFlow=s1 + sink(s.chop(source("s1"), 3)); // $ hasTaintFlow=s1 sink(s.chars(source("s2"))[0]); // $ hasTaintFlow=s2 sink(s.words(source("s3"))[0]); // $ hasTaintFlow=s3 sink(s.lines(source("s7"))[0]); // $ hasTaintFlow=s7 @@ -97,7 +97,7 @@ function multiSource() { function chaining() { sink(s(source("s1")) - .slugify().capitalize().decapitalize().clean().cleanDiacritics() + .slugify().capitalize().decapitalize().clean().cleanDiacritics() .swapCase().escapeHTML().unescapeHTML().wrap().dedent() .reverse().pred().succ().titleize().camelize().classify() .underscored().dasherize().humanize().trim().ltrim().rtrim() @@ -119,8 +119,8 @@ function chaining() { .q(source("s17")).ljust(10, source("s18")) .rjust(10, source("s19"))); // $ hasTaintFlow=s16 hasTaintFlow=s17 hasTaintFlow=s18 hasTaintFlow=s19 - sink(s(source("s20")).tap(function(value) { - return value + source("s21"); + sink(s(source("s20")).tap(function(value) { + return value + source("s21"); }).value()); // $ hasTaintFlow=s20 hasTaintFlow=s21 } From e26311645296f2f0b8d0800a9386961380adffa4 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 24 Apr 2025 18:58:21 +0100 Subject: [PATCH 216/656] Rust: Model std::net and tokio::net. --- .../rust/frameworks/stdlib/net.model.yml | 16 +++++++++ .../rust/frameworks/tokio/net.model.yml | 14 ++++++++ .../dataflow/sources/TaintSources.expected | 5 +++ .../library-tests/dataflow/sources/test.rs | 36 +++++++++---------- 4 files changed, 53 insertions(+), 18 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml create mode 100644 rust/ql/lib/codeql/rust/frameworks/tokio/net.model.yml diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml new file mode 100644 index 00000000000..c088c11e7b6 --- /dev/null +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/net.model.yml @@ -0,0 +1,16 @@ +extensions: + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["lang:std", "::connect", "ReturnValue.Field[crate::result::Result::Ok(0)]", "remote", "manual"] + - ["lang:std", "::connect_timeout", "ReturnValue.Field[crate::result::Result::Ok(0)]", "remote", "manual"] + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["lang:std", "::try_clone", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"] + - ["lang:std", "::read", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["lang:std", "::read_to_string", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["lang:std", "::read_exact", "Argument[self]", "Argument[0].Reference", "taint", "manual"] diff --git a/rust/ql/lib/codeql/rust/frameworks/tokio/net.model.yml b/rust/ql/lib/codeql/rust/frameworks/tokio/net.model.yml new file mode 100644 index 00000000000..8c9d278818b --- /dev/null +++ b/rust/ql/lib/codeql/rust/frameworks/tokio/net.model.yml @@ -0,0 +1,14 @@ +extensions: + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::connect", "ReturnValue.Future.Field[crate::result::Result::Ok(0)]", "remote", "manual"] + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::peek", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::async_read_ext::AsyncReadExt::read", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_read", "Argument[self]", "Argument[0].Reference", "taint", "manual"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_read_buf", "Argument[self]", "Argument[0].Reference", "taint", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index 88377ddf823..1fd8944790a 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -20,6 +20,7 @@ | test.rs:74:26:74:37 | ...::get | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:77:26:77:37 | ...::get | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:80:24:80:35 | ...::get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:99:18:99:47 | ...::connect | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:113:31:113:42 | send_request | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:120:31:120:42 | send_request | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:210:22:210:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | @@ -68,4 +69,8 @@ | test.rs:574:21:574:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:575:21:575:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:583:21:583:41 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:600:26:600:53 | ...::connect | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:619:26:619:61 | ...::connect_timeout | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:671:28:671:57 | ...::connect | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:753:22:753:49 | ...::connect | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:775:16:775:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 8c4808605b4..066f83a6474 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -96,7 +96,7 @@ async fn test_hyper_http(case: i64) -> Result<(), Box> { // create the connection println!("connecting to {}...", address); - let stream = tokio::net::TcpStream::connect(address).await?; + let stream = tokio::net::TcpStream::connect(address).await?; // $ Alert[rust/summary/taint-sources] let io = hyper_util::rt::TokioIo::new(stream); let (mut sender, conn) = hyper::client::conn::http1::handshake(io).await?; @@ -597,18 +597,18 @@ async fn test_std_tcpstream(case: i64) -> std::io::Result<()> { // Result<(), Bo if case == 1 { // create the connection - let mut stream = std::net::TcpStream::connect(address)?; + let mut stream = std::net::TcpStream::connect(address)?; // $ Alert[rust/summary/taint-sources] // send request let _ = stream.write_all(b"GET / HTTP/1.1\nHost:example.com\n\n"); // read response let mut buffer = vec![0; 32 * 1024]; - let _ = stream.read(&mut buffer); // $ MISSING: Alert[rust/summary/taint-sources] + let _ = stream.read(&mut buffer); println!("data = {:?}", buffer); - sink(&buffer); // $ MISSING: hasTaintFlow - sink(buffer[0]); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow=address + sink(buffer[0]); // $ hasTaintFlow=address let buffer_string = String::from_utf8_lossy(&buffer); println!("string = {}", buffer_string); @@ -616,7 +616,7 @@ async fn test_std_tcpstream(case: i64) -> std::io::Result<()> { // Result<(), Bo } else { // create the connection let sock_addr = address.to_socket_addrs().unwrap().next().unwrap(); - let mut stream = std::net::TcpStream::connect_timeout(&sock_addr, std::time::Duration::new(1, 0))?; + let mut stream = std::net::TcpStream::connect_timeout(&sock_addr, std::time::Duration::new(1, 0))?; // $ Alert[rust/summary/taint-sources] // send request let _ = stream.write_all(b"GET / HTTP/1.1\nHost:example.com\n\n"); @@ -627,14 +627,14 @@ async fn test_std_tcpstream(case: i64) -> std::io::Result<()> { // Result<(), Bo let mut reader = std::io::BufReader::new(stream).take(256); let mut line = String::new(); loop { - match reader.read_line(&mut line) { // $ MISSING: Alert[rust/summary/taint-sources] + match reader.read_line(&mut line) { Ok(0) => { println!("end"); break; } Ok(_n) => { println!("line = {}", line); - sink(&line); // $ MISSING: hasTaintFlow + sink(&line); // $ hasTaintFlow=&sock_addr line.clear(); } Err(e) => { @@ -668,7 +668,7 @@ async fn test_tokio_tcpstream(case: i64) -> std::io::Result<()> { // create the connection println!("connecting to {}...", address); - let mut tokio_stream = tokio::net::TcpStream::connect(address).await?; + let mut tokio_stream = tokio::net::TcpStream::connect(address).await?; // $ Alert[rust/summary/taint-sources] // send request tokio_stream.write_all(b"GET / HTTP/1.1\nHost:example.com\n\n").await?; @@ -676,19 +676,19 @@ async fn test_tokio_tcpstream(case: i64) -> std::io::Result<()> { if case == 1 { // peek response let mut buffer1 = vec![0; 2 * 1024]; - let _ = tokio_stream.peek(&mut buffer1).await?; // $ MISSING: Alert[rust/summary/taint-sources] + let _ = tokio_stream.peek(&mut buffer1).await?; // read response let mut buffer2 = vec![0; 2 * 1024]; - let n2 = tokio_stream.read(&mut buffer2).await?; // $ MISSING: Alert[rust/summary/taint-sources] + let n2 = tokio_stream.read(&mut buffer2).await?; println!("buffer1 = {:?}", buffer1); - sink(&buffer1); // $ MISSING: hasTaintFlow - sink(buffer1[0]); // $ MISSING: hasTaintFlow + sink(&buffer1); // $ hasTaintFlow=address + sink(buffer1[0]); // $ hasTaintFlow=address println!("buffer2 = {:?}", buffer2); - sink(&buffer2); // $ MISSING: hasTaintFlow - sink(buffer2[0]); // $ MISSING: hasTaintFlow + sink(&buffer2); // $ hasTaintFlow=address + sink(buffer2[0]); // $ hasTaintFlow=address let buffer_string = String::from_utf8_lossy(&buffer2[..n2]); println!("string = {}", buffer_string); @@ -703,7 +703,7 @@ async fn test_tokio_tcpstream(case: i64) -> std::io::Result<()> { } Ok(_n) => { println!("buffer = {:?}", buffer); - sink(&buffer); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow=address break; // (or we could wait for more data) } Err(ref e) if e.kind() == std::io::ErrorKind::WouldBlock => { @@ -726,7 +726,7 @@ async fn test_tokio_tcpstream(case: i64) -> std::io::Result<()> { } Ok(_n) => { println!("buffer = {:?}", buffer); - sink(&buffer); // $ MISSING: hasTaintFlow + sink(&buffer); // $ hasTaintFlow=address break; // (or we could wait for more data) } Err(ref e) if e.kind() == std::io::ErrorKind::WouldBlock => { @@ -750,7 +750,7 @@ async fn test_std_to_tokio_tcpstream() -> std::io::Result<()> { // create the connection println!("connecting to {}...", address); - let std_stream = std::net::TcpStream::connect(address)?; + let std_stream = std::net::TcpStream::connect(address)?; // $ Alert[rust/summary/taint-sources] // convert to tokio stream std_stream.set_nonblocking(true)?; From 3789c46791d3e1db484ca2fb5a2b6f38d42630ba Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 1 May 2025 15:40:32 +0100 Subject: [PATCH 217/656] Rust: Remove stray comment, accept changes to another test. --- .../dataflow/local/DataFlowStep.expected | 94 ++++++++++++++++++- .../library-tests/dataflow/sources/test.rs | 2 +- 2 files changed, 90 insertions(+), 6 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index d9f17dbf4c4..a28d5f7c20c 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -892,11 +892,24 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_exact | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_to_string | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_exact | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_to_end | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_to_string | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::BufRead::read_line | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::BufRead::read_line | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read_exact | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read_to_end | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read_to_string | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::peek | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::peek | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_read | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_read_buf | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_read_buf | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_line | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_line | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_buf | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_buf | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_exact | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_to_end | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_to_string | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:proc_macro::_::::decode | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::::decode | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:proc_macro::_::::decode | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::::decode | @@ -913,6 +926,7 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:std::_::::wait_while | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:std::_::::wait_while | | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | &ref | file://:0:0:0:0 | [post] [summary param] 1 in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in lang:std::_::crate::io::BufRead::read_until | &ref | file://:0:0:0:0 | [post] [summary param] 1 in lang:std::_::crate::io::BufRead::read_until | +| file://:0:0:0:0 | [summary] to write: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_until | &ref | file://:0:0:0:0 | [post] [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_until | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::max_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::max_by | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::max_by_key | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::max_by_key | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::min_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::min_by | @@ -1051,6 +1065,7 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::iter::traits::iterator::Iterator::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::iter::traits::iterator::Iterator::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:proc_macro::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::<{486}::StaticStrPayload as crate::panic::PanicPayload>::as_str | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<{486}::StaticStrPayload as crate::panic::PanicPayload>::as_str | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::map | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::zip | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | @@ -1060,6 +1075,7 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::matching | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::transpose | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Ok(0)] in lang:std::_::::next | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::from | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::from | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_ref | @@ -1143,6 +1159,7 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::parse | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::fill_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::fill_buf | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::try_clone | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_clone | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::canonicalize | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::canonicalize | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait_timeout | @@ -1154,10 +1171,6 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/servo/rust-url:url::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/servo/rust-url:url::_::::parse | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:alloc::_::::search_tree_for_bifurcation | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::search_tree_for_bifurcation | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:core::_::::extend | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::extend | @@ -1166,10 +1179,81 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:std::_::::wait_timeout_ms | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_ms | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:std::_::::wait_timeout_while | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_while | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::try_insert | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::try_insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::fill_buf | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::fill_buf | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::fill_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::fill_buf | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128_le | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index 066f83a6474..e2cea47b95b 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -591,7 +591,7 @@ async fn test_tokio_file() -> std::io::Result<()> { use std::net::ToSocketAddrs; -async fn test_std_tcpstream(case: i64) -> std::io::Result<()> { // Result<(), Box> +async fn test_std_tcpstream(case: i64) -> std::io::Result<()> { // using std::net to fetch a web page let address = "example.com:80"; From 73fa381dbcc96975611249e09cfeec6435836a2e Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 30 Apr 2025 19:49:47 +0200 Subject: [PATCH 218/656] Rust: Remove visibility check in path resolution --- .../codeql/rust/internal/PathResolution.qll | 93 ++++++------------- .../dataflow/modeled/inline-flow.expected | 15 +++ .../library-tests/dataflow/modeled/main.rs | 2 +- .../PathResolutionConsistency.expected | 41 ++++++++ 4 files changed, 87 insertions(+), 64 deletions(-) create mode 100644 rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index 5bc45afecf1..d1878ce3dae 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -87,11 +87,6 @@ abstract class ItemNode extends Locatable { /** Gets the `i`th type parameter of this item, if any. */ abstract TypeParam getTypeParam(int i); - /** Holds if this item is declared as `pub`. */ - bindingset[this] - pragma[inline_late] - predicate isPublic() { exists(this.getVisibility()) } - /** Gets an element that has this item as immediately enclosing item. */ pragma[nomagic] Element getADescendant() { @@ -207,6 +202,11 @@ abstract class ItemNode extends Locatable { result.(CrateItemNode).isPotentialDollarCrateTarget() } + pragma[nomagic] + private predicate hasSourceFunction(string name) { + this.getASuccessorFull(name).(Function).fromSource() + } + /** Gets a successor named `name` of this item, if any. */ pragma[nomagic] ItemNode getASuccessor(string name) { @@ -219,7 +219,7 @@ abstract class ItemNode extends Locatable { or not result instanceof Function or - not this.getASuccessorFull(name).(Function).fromSource() + not this.hasSourceFunction(name) ) } @@ -266,8 +266,6 @@ private class SourceFileItemNode extends ModuleLikeNode, SourceFile { override Visibility getVisibility() { none() } - override predicate isPublic() { any() } - override TypeParam getTypeParam(int i) { none() } } @@ -330,8 +328,6 @@ class CrateItemNode extends ItemNode instanceof Crate { override Visibility getVisibility() { none() } - override predicate isPublic() { any() } - override TypeParam getTypeParam(int i) { none() } } @@ -436,7 +432,7 @@ abstract class ImplOrTraitItemNode extends ItemNode { pragma[nomagic] private TypeParamItemNode resolveTypeParamPathTypeRepr(PathTypeRepr ptr) { - result = resolvePath(ptr.getPath()) + result = resolvePathFull(ptr.getPath()) } class ImplItemNode extends ImplOrTraitItemNode instanceof Impl { @@ -444,9 +440,9 @@ class ImplItemNode extends ImplOrTraitItemNode instanceof Impl { Path getTraitPath() { result = super.getTrait().(PathTypeRepr).getPath() } - ItemNode resolveSelfTy() { result = resolvePath(this.getSelfPath()) } + ItemNode resolveSelfTy() { result = resolvePathFull(this.getSelfPath()) } - TraitItemNode resolveTraitTy() { result = resolvePath(this.getTraitPath()) } + TraitItemNode resolveTraitTy() { result = resolvePathFull(this.getTraitPath()) } pragma[nomagic] private TypeRepr getASelfTyArg() { @@ -560,7 +556,7 @@ class TraitItemNode extends ImplOrTraitItemNode instanceof Trait { } pragma[nomagic] - ItemNode resolveABound() { result = resolvePath(this.getABoundPath()) } + ItemNode resolveABound() { result = resolvePathFull(this.getABoundPath()) } override AssocItemNode getAnAssocItem() { result = super.getAssocItemList().getAnAssocItem() } @@ -634,7 +630,7 @@ class TypeParamItemNode extends ItemNode instanceof TypeParam { } pragma[nomagic] - ItemNode resolveABound() { result = resolvePath(this.getABoundPath()) } + ItemNode resolveABound() { result = resolvePathFull(this.getABoundPath()) } /** * Holds if this type parameter has a trait bound. Examples: @@ -897,12 +893,6 @@ class RelevantPath extends Path { this.getQualifier().(RelevantPath).isCratePath("$crate", _) and this.getText() = name } - - // TODO: Remove once the crate graph extractor generates publicly visible paths - predicate requiresExtractorWorkaround() { - not this.fromSource() and - this = any(RelevantPath p).getQualifier() - } } private predicate isModule(ItemNode m) { m instanceof Module } @@ -1056,8 +1046,14 @@ private predicate pathUsesNamespace(Path p, Namespace n) { ) } +/** + * Gets the item that `path` resolves to, if any. + * + * Whenever `path` can resolve to both a function in source code and in library + * code, both are included + */ pragma[nomagic] -private ItemNode resolvePath1(RelevantPath path) { +private ItemNode resolvePathFull(RelevantPath path) { exists(Namespace ns | result = resolvePath0(path, ns) | pathUsesNamespace(path, ns) or @@ -1067,58 +1063,29 @@ private ItemNode resolvePath1(RelevantPath path) { } pragma[nomagic] -private ItemNode resolvePathPrivate( - RelevantPath path, ModuleLikeNode itemParent, ModuleLikeNode pathParent -) { - not path.requiresExtractorWorkaround() and - result = resolvePath1(path) and - itemParent = result.getImmediateParentModule() and - not result.isPublic() and - ( - pathParent.getADescendant() = path - or - pathParent = any(ItemNode mid | path = mid.getADescendant()).getImmediateParentModule() - ) -} - -pragma[nomagic] -private predicate isItemParent(ModuleLikeNode itemParent) { - exists(resolvePathPrivate(_, itemParent, _)) -} - -/** - * Gets a module that has access to private items defined inside `itemParent`. - * - * According to [The Rust Reference][1] this is either `itemParent` itself or any - * descendant of `itemParent`. - * - * [1]: https://doc.rust-lang.org/reference/visibility-and-privacy.html#r-vis.access - */ -pragma[nomagic] -private ModuleLikeNode getAPrivateVisibleModule(ModuleLikeNode itemParent) { - isItemParent(itemParent) and - result.getImmediateParentModule*() = itemParent +private predicate resolvesSourceFunction(RelevantPath path) { + resolvePathFull(path).(Function).fromSource() } /** Gets the item that `path` resolves to, if any. */ cached ItemNode resolvePath(RelevantPath path) { - result = resolvePath1(path) and + result = resolvePathFull(path) and ( - result.isPublic() + // when a function exists in both source code and in library code, it is because + // we also extracted the source code as library code, and hence we only want + // the function from source code + result.fromSource() or - path.requiresExtractorWorkaround() - ) - or - exists(ModuleLikeNode itemParent, ModuleLikeNode pathParent | - result = resolvePathPrivate(path, itemParent, pathParent) and - pathParent = getAPrivateVisibleModule(itemParent) + not result instanceof Function + or + not resolvesSourceFunction(path) ) } pragma[nomagic] private ItemNode resolvePathQualifier(RelevantPath path, string name) { - result = resolvePath(path.getQualifier()) and + result = resolvePathFull(path.getQualifier()) and name = path.getText() } @@ -1164,7 +1131,7 @@ private ItemNode resolveUseTreeListItemQualifier( pragma[nomagic] private ItemNode resolveUseTreeListItem(Use use, UseTree tree) { tree = use.getUseTree() and - result = resolvePath(tree.getPath()) + result = resolvePathFull(tree.getPath()) or result = resolveUseTreeListItem(use, tree, tree.getPath()) } diff --git a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected index 198f8ab9cd8..9ff1be3b3c5 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -29,8 +29,15 @@ edges | main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | main.rs:41:13:41:13 | w [Wrapper] | provenance | | | main.rs:41:30:41:39 | source(...) | main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | provenance | | | main.rs:42:15:42:15 | w [Wrapper] | main.rs:43:13:43:28 | Wrapper {...} [Wrapper] | provenance | | +| main.rs:42:15:42:15 | w [Wrapper] | main.rs:45:17:45:17 | w [Wrapper] | provenance | | | main.rs:43:13:43:28 | Wrapper {...} [Wrapper] | main.rs:43:26:43:26 | n | provenance | | | main.rs:43:26:43:26 | n | main.rs:43:38:43:38 | n | provenance | | +| main.rs:45:13:45:13 | u [Wrapper] | main.rs:46:15:46:15 | u [Wrapper] | provenance | | +| main.rs:45:17:45:17 | w [Wrapper] | main.rs:45:17:45:25 | w.clone() [Wrapper] | provenance | generated | +| main.rs:45:17:45:25 | w.clone() [Wrapper] | main.rs:45:13:45:13 | u [Wrapper] | provenance | | +| main.rs:46:15:46:15 | u [Wrapper] | main.rs:47:13:47:28 | Wrapper {...} [Wrapper] | provenance | | +| main.rs:47:13:47:28 | Wrapper {...} [Wrapper] | main.rs:47:26:47:26 | n | provenance | | +| main.rs:47:26:47:26 | n | main.rs:47:38:47:38 | n | provenance | | | main.rs:58:13:58:13 | b [Some] | main.rs:59:23:59:23 | b [Some] | provenance | | | main.rs:58:17:58:32 | Some(...) [Some] | main.rs:58:13:58:13 | b [Some] | provenance | | | main.rs:58:22:58:31 | source(...) | main.rs:58:17:58:32 | Some(...) [Some] | provenance | | @@ -71,6 +78,13 @@ nodes | main.rs:43:13:43:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | | main.rs:43:26:43:26 | n | semmle.label | n | | main.rs:43:38:43:38 | n | semmle.label | n | +| main.rs:45:13:45:13 | u [Wrapper] | semmle.label | u [Wrapper] | +| main.rs:45:17:45:17 | w [Wrapper] | semmle.label | w [Wrapper] | +| main.rs:45:17:45:25 | w.clone() [Wrapper] | semmle.label | w.clone() [Wrapper] | +| main.rs:46:15:46:15 | u [Wrapper] | semmle.label | u [Wrapper] | +| main.rs:47:13:47:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | +| main.rs:47:26:47:26 | n | semmle.label | n | +| main.rs:47:38:47:38 | n | semmle.label | n | | main.rs:58:13:58:13 | b [Some] | semmle.label | b [Some] | | main.rs:58:17:58:32 | Some(...) [Some] | semmle.label | Some(...) [Some] | | main.rs:58:22:58:31 | source(...) | semmle.label | source(...) | @@ -95,5 +109,6 @@ testFailures | main.rs:22:10:22:19 | b.unwrap() | main.rs:19:34:19:43 | source(...) | main.rs:22:10:22:19 | b.unwrap() | $@ | main.rs:19:34:19:43 | source(...) | source(...) | | main.rs:27:10:27:10 | a | main.rs:26:13:26:22 | source(...) | main.rs:27:10:27:10 | a | $@ | main.rs:26:13:26:22 | source(...) | source(...) | | main.rs:43:38:43:38 | n | main.rs:41:30:41:39 | source(...) | main.rs:43:38:43:38 | n | $@ | main.rs:41:30:41:39 | source(...) | source(...) | +| main.rs:47:38:47:38 | n | main.rs:41:30:41:39 | source(...) | main.rs:47:38:47:38 | n | $@ | main.rs:41:30:41:39 | source(...) | source(...) | | main.rs:63:22:63:22 | m | main.rs:58:22:58:31 | source(...) | main.rs:63:22:63:22 | m | $@ | main.rs:58:22:58:31 | source(...) | source(...) | | main.rs:85:18:85:34 | ...::read(...) | main.rs:84:32:84:41 | source(...) | main.rs:85:18:85:34 | ...::read(...) | $@ | main.rs:84:32:84:41 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/modeled/main.rs b/rust/ql/test/library-tests/dataflow/modeled/main.rs index 648ffd0a307..3ce3e0ecae0 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/main.rs +++ b/rust/ql/test/library-tests/dataflow/modeled/main.rs @@ -44,7 +44,7 @@ mod my_clone { } let u = w.clone(); match u { - Wrapper { n: n } => sink(n), // $ MISSING: hasValueFlow=73 - lack of expanded derives means that we cannot resolve clone call above, and hence not insert implicit borrow + Wrapper { n: n } => sink(n), // $ hasValueFlow=73 } } } diff --git a/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..03a2899da09 --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,41 @@ +multiplePathResolutions +| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | +| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | From bd3155ef0c698de8e35dcb6cdb8f545981d81f10 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 1 May 2025 16:42:13 +0100 Subject: [PATCH 219/656] Rust: Promote rust/uncontrolled-allocation-size to warning. --- .../src/queries/security/CWE-770/UncontrolledAllocationSize.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/src/queries/security/CWE-770/UncontrolledAllocationSize.ql b/rust/ql/src/queries/security/CWE-770/UncontrolledAllocationSize.ql index c4125774315..3d25ede3187 100644 --- a/rust/ql/src/queries/security/CWE-770/UncontrolledAllocationSize.ql +++ b/rust/ql/src/queries/security/CWE-770/UncontrolledAllocationSize.ql @@ -4,7 +4,7 @@ * arbitrary amounts of memory being allocated, leading to a crash or a * denial-of-service (DoS) attack. * @kind path-problem - * @problem.severity recommendation + * @problem.severity warning * @security-severity 7.5 * @precision high * @id rust/uncontrolled-allocation-size From c9ce6c0fb608501043e8130932cec64797c445cb Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 1 May 2025 16:42:41 +0100 Subject: [PATCH 220/656] Rust: Demote rust/cleartext-logging to warning. --- rust/ql/src/queries/security/CWE-312/CleartextLogging.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/src/queries/security/CWE-312/CleartextLogging.ql b/rust/ql/src/queries/security/CWE-312/CleartextLogging.ql index 75bd47e76dc..c2a1dcc747f 100644 --- a/rust/ql/src/queries/security/CWE-312/CleartextLogging.ql +++ b/rust/ql/src/queries/security/CWE-312/CleartextLogging.ql @@ -3,7 +3,7 @@ * @description Logging sensitive information in plaintext can * expose it to an attacker. * @kind path-problem - * @problem.severity error + * @problem.severity warning * @security-severity 7.5 * @precision high * @id rust/cleartext-logging From 93f8cea8845783adbac926b459989ba93107537d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 9 Apr 2025 15:44:54 +0100 Subject: [PATCH 221/656] Rust: Add + clean up some QLDoc. --- .../rust/elements/AssignmentOperation.qll | 18 ++++++++++++------ .../codeql/rust/elements/LogicalOperation.qll | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/AssignmentOperation.qll b/rust/ql/lib/codeql/rust/elements/AssignmentOperation.qll index 368e5738c19..a3ca1722b57 100644 --- a/rust/ql/lib/codeql/rust/elements/AssignmentOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/AssignmentOperation.qll @@ -1,16 +1,23 @@ -/** Provides classes for assignment operations. */ +/** + * Provides classes for assignment operations. + */ private import rust private import codeql.rust.elements.internal.BinaryExprImpl -/** An assignment operation. */ +/** + * An assignment operation, for example: + * ```rust + * x = y; + * x += y; + * ``` + */ abstract private class AssignmentOperationImpl extends Impl::BinaryExpr { } final class AssignmentOperation = AssignmentOperationImpl; /** - * An assignment expression, for example - * + * An assignment expression, for example: * ```rust * x = y; * ``` @@ -22,8 +29,7 @@ final class AssignmentExpr extends AssignmentOperationImpl { } /** - * A compound assignment expression, for example - * + * A compound assignment expression, for example: * ```rust * x += y; * ``` diff --git a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll index fdbfb5d4613..ab9aa6ef0fd 100644 --- a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll @@ -2,30 +2,48 @@ private import codeql.rust.elements.Expr private import codeql.rust.elements.BinaryExpr private import codeql.rust.elements.PrefixExpr +/** + * A logical operation, such as `&&`, `||` or `!`. + */ abstract private class LogicalOperationImpl extends Expr { abstract Expr getAnOperand(); } final class LogicalOperation = LogicalOperationImpl; +/** + * A binary logical operation, such as `&&` or `||`. + */ abstract private class BinaryLogicalOperationImpl extends BinaryExpr, LogicalOperationImpl { override Expr getAnOperand() { result = [this.getLhs(), this.getRhs()] } } final class BinaryLogicalOperation = BinaryLogicalOperationImpl; +/** + * The logical and operation, `&&`. + */ final class LogicalAndExpr extends BinaryLogicalOperationImpl, BinaryExpr { LogicalAndExpr() { this.getOperatorName() = "&&" } } +/** + * The logical or operation, `||`. + */ final class LogicalOrExpr extends BinaryLogicalOperationImpl { LogicalOrExpr() { this.getOperatorName() = "||" } } +/** + * A unary logical operation, such as `!`. + */ abstract private class UnaryLogicalOperationImpl extends PrefixExpr, LogicalOperationImpl { } final class UnaryLogicalOperation = UnaryLogicalOperationImpl; +/** + * A logical not operation, `!`. + */ final class LogicalNotExpr extends UnaryLogicalOperationImpl { LogicalNotExpr() { this.getOperatorName() = "!" } From c430a36b4cfe73ba9c86a33c7c5a59ffcce8d693 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 1 May 2025 12:17:58 +0200 Subject: [PATCH 222/656] Refactored merge `StandardClassNode` into `ClassNode` --- .../ql/lib/semmle/javascript/ApiGraphs.qll | 2 +- .../lib/semmle/javascript/dataflow/Nodes.qll | 520 +++++++++--------- .../dataflow/internal/CallGraphs.qll | 2 +- 3 files changed, 252 insertions(+), 272 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll index 423c0f5ed1b..af167608662 100644 --- a/javascript/ql/lib/semmle/javascript/ApiGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/ApiGraphs.qll @@ -1236,7 +1236,7 @@ module API { exists(DataFlow::ClassNode cls | nd = MkClassInstance(cls) | ref = cls.getAReceiverNode() or - ref = cls.(DataFlow::ClassNode::StandardClassNode).getAPrototypeReference() + ref = cls.(DataFlow::ClassNode).getAPrototypeReference() ) or nd = MkUse(ref) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 4cceb9192ea..aab89e7baa3 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -861,21 +861,60 @@ module MemberKind { * * Additional patterns can be recognized as class nodes, by extending `DataFlow::ClassNode::Range`. */ -class ClassNode extends DataFlow::SourceNode instanceof ClassNode::Range { +class ClassNode extends DataFlow::ValueNode, DataFlow::SourceNode { + override AST::ValueNode astNode; + AbstractCallable function; + + ClassNode() { + // ES6 class case + astNode instanceof ClassDefinition and + function.(AbstractClass).getClass() = astNode + or + // Function-style class case + astNode instanceof Function and + function.getFunction() = astNode and + ( + exists(getAFunctionValueWithPrototype(function)) + or + function = any(NewNode new).getCalleeNode().analyze().getAValue() + or + exists(string name | this = AccessPath::getAnAssignmentTo(name) | + exists(getAPrototypeReferenceInFile(name, this.getFile())) + or + exists(getAnInstantiationInFile(name, this.getFile())) + ) + ) + } + /** * Gets the unqualified name of the class, if it has one or one can be determined from the context. */ - string getName() { result = super.getName() } + string getName() { + astNode instanceof ClassDefinition and result = astNode.(ClassDefinition).getName() + or + astNode instanceof Function and result = astNode.(Function).getName() + } /** * Gets a description of the class. */ - string describe() { result = super.describe() } + string describe() { + astNode instanceof ClassDefinition and result = astNode.(ClassDefinition).describe() + or + astNode instanceof Function and result = astNode.(Function).describe() + } /** * Gets the constructor function of this class. */ - FunctionNode getConstructor() { result = super.getConstructor() } + FunctionNode getConstructor() { + // For ES6 classes + astNode instanceof ClassDefinition and + result = astNode.(ClassDefinition).getConstructor().getBody().flow() + or + // For function-style classes + astNode instanceof Function and result = this + } /** * Gets an instance method declared in this class, with the given name, if any. @@ -883,7 +922,7 @@ class ClassNode extends DataFlow::SourceNode instanceof ClassNode::Range { * Does not include methods from superclasses. */ FunctionNode getInstanceMethod(string name) { - result = super.getInstanceMember(name, MemberKind::method()) + result = this.getInstanceMember(name, MemberKind::method()) } /** @@ -893,7 +932,7 @@ class ClassNode extends DataFlow::SourceNode instanceof ClassNode::Range { * * Does not include methods from superclasses. */ - FunctionNode getAnInstanceMethod() { result = super.getAnInstanceMember(MemberKind::method()) } + FunctionNode getAnInstanceMethod() { result = this.getAnInstanceMember(MemberKind::method()) } /** * Gets the instance method, getter, or setter with the given name and kind. @@ -901,7 +940,43 @@ class ClassNode extends DataFlow::SourceNode instanceof ClassNode::Range { * Does not include members from superclasses. */ FunctionNode getInstanceMember(string name, MemberKind kind) { - result = super.getInstanceMember(name, kind) + // ES6 class methods + exists(MethodDeclaration method | + astNode instanceof ClassDefinition and + method = astNode.(ClassDefinition).getMethod(name) and + not method.isStatic() and + kind = MemberKind::of(method) and + result = method.getBody().flow() + ) + or + // ES6 class property or Function-style class methods via constructor + kind = MemberKind::method() and + exists(ThisNode receiver | + receiver = this.getConstructor().getReceiver() and + receiver.hasPropertyWrite(name, result) + ) + or + // Function-style class methods via prototype + kind = MemberKind::method() and + exists(DataFlow::SourceNode proto | + proto = this.getAPrototypeReference() and + proto.hasPropertyWrite(name, result) + ) + or + // Function-style class accessors + astNode instanceof Function and + exists(PropertyAccessor accessor | + accessor = this.getAnAccessor(kind) and + accessor.getName() = name and + result = accessor.getInit().flow() + ) + or + kind = MemberKind::method() and + result = + [ + this.getConstructor().getReceiver().getAPropertySource(name), + this.getAPrototypeReference().getAPropertySource(name) + ] } /** @@ -909,20 +984,66 @@ class ClassNode extends DataFlow::SourceNode instanceof ClassNode::Range { * * Does not include members from superclasses. */ - FunctionNode getAnInstanceMember(MemberKind kind) { result = super.getAnInstanceMember(kind) } + FunctionNode getAnInstanceMember(MemberKind kind) { + // ES6 class methods + exists(MethodDeclaration method | + astNode instanceof ClassDefinition and + method = astNode.(ClassDefinition).getAMethod() and + not method.isStatic() and + kind = MemberKind::of(method) and + result = method.getBody().flow() + ) + or + // ES6 class property or Function-style class methods via constructor + kind = MemberKind::method() and + exists(ThisNode receiver | + receiver = this.getConstructor().getReceiver() and + result = receiver.getAPropertySource() + ) + or + // Function-style class methods via prototype + kind = MemberKind::method() and + exists(DataFlow::SourceNode proto | + proto = this.getAPrototypeReference() and + result = proto.getAPropertySource() + ) + or + // Function-style class accessors + astNode instanceof Function and + exists(PropertyAccessor accessor | + accessor = this.getAnAccessor(kind) and + result = accessor.getInit().flow() + ) + or + kind = MemberKind::method() and + result = + [ + this.getConstructor().getReceiver().getAPropertySource(), + this.getAPrototypeReference().getAPropertySource() + ] + } /** * Gets an instance method, getter, or setter declared in this class. * * Does not include members from superclasses. */ - FunctionNode getAnInstanceMember() { result = super.getAnInstanceMember(_) } + FunctionNode getAnInstanceMember() { result = this.getAnInstanceMember(_) } /** * Gets the static method, getter, or setter declared in this class with the given name and kind. */ FunctionNode getStaticMember(string name, MemberKind kind) { - result = super.getStaticMember(name, kind) + exists(MethodDeclaration method | + astNode instanceof ClassDefinition and + method = astNode.(ClassDefinition).getMethod(name) and + method.isStatic() and + kind = MemberKind::of(method) and + result = method.getBody().flow() + ) + or + kind.isMethod() and + result = this.getAPropertySource(name) } /** @@ -935,7 +1056,18 @@ class ClassNode extends DataFlow::SourceNode instanceof ClassNode::Range { /** * Gets a static method, getter, or setter declared in this class with the given kind. */ - FunctionNode getAStaticMember(MemberKind kind) { result = super.getAStaticMember(kind) } + FunctionNode getAStaticMember(MemberKind kind) { + exists(MethodDeclaration method | + astNode instanceof ClassDefinition and + method = astNode.(ClassDefinition).getAMethod() and + method.isStatic() and + kind = MemberKind::of(method) and + result = method.getBody().flow() + ) + or + kind.isMethod() and + result = this.getAPropertySource() + } /** * Gets a static method declared in this class. @@ -944,10 +1076,79 @@ class ClassNode extends DataFlow::SourceNode instanceof ClassNode::Range { */ FunctionNode getAStaticMethod() { result = this.getAStaticMember(MemberKind::method()) } + /** + * Gets a reference to the prototype of this class. + * Only applies to function-style classes. + */ + DataFlow::SourceNode getAPrototypeReference() { + exists(DataFlow::SourceNode base | base = getAFunctionValueWithPrototype(function) | + result = base.getAPropertyRead("prototype") + or + result = base.getAPropertySource("prototype") + ) + or + exists(string name | + this = AccessPath::getAnAssignmentTo(name) and + result = getAPrototypeReferenceInFile(name, this.getFile()) + ) + or + exists(string name, DataFlow::SourceNode root | + result = AccessPath::getAReferenceOrAssignmentTo(root, name + ".prototype").getALocalSource() and + this = AccessPath::getAnAssignmentTo(root, name) + ) + or + exists(ExtendCall call | + call.getDestinationOperand() = this.getAPrototypeReference() and + result = call.getASourceOperand() + ) + } + + private PropertyAccessor getAnAccessor(MemberKind kind) { + // Only applies to function-style classes + astNode instanceof Function and + result.getObjectExpr() = this.getAPrototypeReference().asExpr() and + ( + kind = MemberKind::getter() and + result instanceof PropertyGetter + or + kind = MemberKind::setter() and + result instanceof PropertySetter + ) + } + /** * Gets a dataflow node that refers to the superclass of this class. */ - DataFlow::Node getASuperClassNode() { result = super.getASuperClassNode() } + DataFlow::Node getASuperClassNode() { + // ES6 class superclass + astNode instanceof ClassDefinition and + result = astNode.(ClassDefinition).getSuperClass().flow() + or + ( + // C.prototype = Object.create(D.prototype) + exists(DataFlow::InvokeNode objectCreate, DataFlow::PropRead superProto | + this.getAPropertySource("prototype") = objectCreate and + objectCreate = DataFlow::globalVarRef("Object").getAMemberCall("create") and + superProto.flowsTo(objectCreate.getArgument(0)) and + superProto.getPropertyName() = "prototype" and + result = superProto.getBase() + ) + or + // C.prototype = new D() + exists(DataFlow::NewNode newCall | + this.getAPropertySource("prototype") = newCall and + result = newCall.getCalleeNode() + ) + or + // util.inherits(C, D); + exists(DataFlow::CallNode inheritsCall | + inheritsCall = DataFlow::moduleMember("util", "inherits").getACall() + | + this = inheritsCall.getArgument(0).getALocalSource() and + result = inheritsCall.getArgument(1) + ) + ) + } /** * Gets a direct super class of this class. @@ -1136,13 +1337,47 @@ class ClassNode extends DataFlow::SourceNode instanceof ClassNode::Range { * Gets the type annotation for the field `fieldName`, if any. */ TypeAnnotation getFieldTypeAnnotation(string fieldName) { - result = super.getFieldTypeAnnotation(fieldName) + exists(FieldDeclaration field | + field.getDeclaringClass() = astNode and + fieldName = field.getName() and + result = field.getTypeAnnotation() + ) } /** * Gets a decorator applied to this class. */ - DataFlow::Node getADecorator() { result = super.getADecorator() } + DataFlow::Node getADecorator() { + astNode instanceof ClassDefinition and + result = astNode.(ClassDefinition).getADecorator().getExpression().flow() + } +} + +/** + * Helper predicate to get a prototype reference in a file. + */ +private DataFlow::PropRef getAPrototypeReferenceInFile(string name, File f) { + result.getBase() = AccessPath::getAReferenceOrAssignmentTo(name) and + result.getPropertyName() = "prototype" and + result.getFile() = f +} + +/** + * Helper predicate to get an instantiation in a file. + */ +private DataFlow::NewNode getAnInstantiationInFile(string name, File f) { + result = AccessPath::getAReferenceTo(name).(DataFlow::LocalSourceNode).getAnInstantiation() and + result.getFile() = f +} + +/** + * Gets a reference to the function `func`, where there exists a read/write of the "prototype" property on that reference. + */ +pragma[noinline] +private DataFlow::SourceNode getAFunctionValueWithPrototype(AbstractValue func) { + exists(result.getAPropertyReference("prototype")) and + result.analyze().getAValue() = pragma[only_bind_into](func) and + func instanceof AbstractCallable // the join-order goes bad if `func` has type `AbstractFunction`. } module ClassNode { @@ -1214,262 +1449,7 @@ module ClassNode { DataFlow::Node getADecorator() { none() } } - private DataFlow::PropRef getAPrototypeReferenceInFile(string name, File f) { - result.getBase() = AccessPath::getAReferenceOrAssignmentTo(name) and - result.getPropertyName() = "prototype" and - result.getFile() = f - } - - pragma[nomagic] - private DataFlow::NewNode getAnInstantiationInFile(string name, File f) { - result = AccessPath::getAReferenceTo(name).(DataFlow::LocalSourceNode).getAnInstantiation() and - result.getFile() = f - } - - /** - * Gets a reference to the function `func`, where there exists a read/write of the "prototype" property on that reference. - */ - pragma[noinline] - private DataFlow::SourceNode getAFunctionValueWithPrototype(AbstractValue func) { - exists(result.getAPropertyReference("prototype")) and - result.analyze().getAValue() = pragma[only_bind_into](func) and - func instanceof AbstractCallable // the join-order goes bad if `func` has type `AbstractFunction`. - } - - deprecated class FunctionStyleClass = StandardClassNode; - - /** - * A function definition, targeted by a `new`-call or with prototype manipulation, seen as a `ClassNode` instance. - * Or An ES6 class as a `ClassNode` instance. - */ - class StandardClassNode extends Range, DataFlow::ValueNode { - override AST::ValueNode astNode; - AbstractCallable function; - - StandardClassNode() { - // ES6 class case - astNode instanceof ClassDefinition and - function.(AbstractClass).getClass() = astNode - or - // Function-style class case - astNode instanceof Function and - function.getFunction() = astNode and - ( - exists(getAFunctionValueWithPrototype(function)) - or - function = any(NewNode new).getCalleeNode().analyze().getAValue() - or - exists(string name | this = AccessPath::getAnAssignmentTo(name) | - exists(getAPrototypeReferenceInFile(name, this.getFile())) - or - exists(getAnInstantiationInFile(name, this.getFile())) - ) - ) - } - - override string getName() { - astNode instanceof ClassDefinition and result = astNode.(ClassDefinition).getName() - or - astNode instanceof Function and result = astNode.(Function).getName() - } - - override string describe() { - astNode instanceof ClassDefinition and result = astNode.(ClassDefinition).describe() - or - astNode instanceof Function and result = astNode.(Function).describe() - } - - override FunctionNode getConstructor() { - // For ES6 classes - astNode instanceof ClassDefinition and - result = astNode.(ClassDefinition).getConstructor().getBody().flow() - or - // For function-style classes - astNode instanceof Function and result = this - } - - private PropertyAccessor getAnAccessor(MemberKind kind) { - // Only applies to function-style classes - astNode instanceof Function and - result.getObjectExpr() = this.getAPrototypeReference().asExpr() and - ( - kind = MemberKind::getter() and - result instanceof PropertyGetter - or - kind = MemberKind::setter() and - result instanceof PropertySetter - ) - } - - override FunctionNode getInstanceMember(string name, MemberKind kind) { - // ES6 class methods - exists(MethodDeclaration method | - astNode instanceof ClassDefinition and - method = astNode.(ClassDefinition).getMethod(name) and - not method.isStatic() and - kind = MemberKind::of(method) and - result = method.getBody().flow() - ) - or - // ES6 class property or Function-style class methods via constructor - kind = MemberKind::method() and - exists(ThisNode receiver | - receiver = this.getConstructor().getReceiver() and - receiver.hasPropertyWrite(name, result) - ) - or - // Function-style class methods via prototype - kind = MemberKind::method() and - exists(DataFlow::SourceNode proto | - proto = this.getAPrototypeReference() and - proto.hasPropertyWrite(name, result) - ) - or - // Function-style class accessors - astNode instanceof Function and - exists(PropertyAccessor accessor | - accessor = this.getAnAccessor(kind) and - accessor.getName() = name and - result = accessor.getInit().flow() - ) - or - kind = MemberKind::method() and - result = this.getConstructor().getReceiver().getAPropertySource(name) - } - - override FunctionNode getAnInstanceMember(MemberKind kind) { - // ES6 class methods - exists(MethodDeclaration method | - astNode instanceof ClassDefinition and - method = astNode.(ClassDefinition).getAMethod() and - not method.isStatic() and - kind = MemberKind::of(method) and - result = method.getBody().flow() - ) - or - // ES6 class property or Function-style class methods via constructor - kind = MemberKind::method() and - exists(ThisNode receiver | - receiver = this.getConstructor().getReceiver() and - result = receiver.getAPropertySource() - ) - or - // Function-style class methods via prototype - kind = MemberKind::method() and - exists(DataFlow::SourceNode proto | - proto = this.getAPrototypeReference() and - result = proto.getAPropertySource() - ) - or - // Function-style class accessors - astNode instanceof Function and - exists(PropertyAccessor accessor | - accessor = this.getAnAccessor(kind) and - result = accessor.getInit().flow() - ) - or - kind = MemberKind::method() and - result = this.getConstructor().getReceiver().getAPropertySource() - } - - override FunctionNode getStaticMember(string name, MemberKind kind) { - exists(MethodDeclaration method | - astNode instanceof ClassDefinition and - method = astNode.(ClassDefinition).getMethod(name) and - method.isStatic() and - kind = MemberKind::of(method) and - result = method.getBody().flow() - ) - or - kind.isMethod() and - result = this.getAPropertySource(name) - } - - override FunctionNode getAStaticMember(MemberKind kind) { - exists(MethodDeclaration method | - astNode instanceof ClassDefinition and - method = astNode.(ClassDefinition).getAMethod() and - method.isStatic() and - kind = MemberKind::of(method) and - result = method.getBody().flow() - ) - or - kind.isMethod() and - result = this.getAPropertySource() - } - - /** - * Gets a reference to the prototype of this class. - * Only applies to function-style classes. - */ - DataFlow::SourceNode getAPrototypeReference() { - exists(DataFlow::SourceNode base | base = getAFunctionValueWithPrototype(function) | - result = base.getAPropertyRead("prototype") - or - result = base.getAPropertySource("prototype") - ) - or - exists(string name | - this = AccessPath::getAnAssignmentTo(name) and - result = getAPrototypeReferenceInFile(name, this.getFile()) - ) - or - exists(string name, DataFlow::SourceNode root | - result = - AccessPath::getAReferenceOrAssignmentTo(root, name + ".prototype").getALocalSource() and - this = AccessPath::getAnAssignmentTo(root, name) - ) - or - exists(ExtendCall call | - call.getDestinationOperand() = this.getAPrototypeReference() and - result = call.getASourceOperand() - ) - } - - override DataFlow::Node getASuperClassNode() { - // ES6 class superclass - astNode instanceof ClassDefinition and - result = astNode.(ClassDefinition).getSuperClass().flow() - or - ( - // C.prototype = Object.create(D.prototype) - exists(DataFlow::InvokeNode objectCreate, DataFlow::PropRead superProto | - this.getAPropertySource("prototype") = objectCreate and - objectCreate = DataFlow::globalVarRef("Object").getAMemberCall("create") and - superProto.flowsTo(objectCreate.getArgument(0)) and - superProto.getPropertyName() = "prototype" and - result = superProto.getBase() - ) - or - // C.prototype = new D() - exists(DataFlow::NewNode newCall | - this.getAPropertySource("prototype") = newCall and - result = newCall.getCalleeNode() - ) - or - // util.inherits(C, D); - exists(DataFlow::CallNode inheritsCall | - inheritsCall = DataFlow::moduleMember("util", "inherits").getACall() - | - this = inheritsCall.getArgument(0).getALocalSource() and - result = inheritsCall.getArgument(1) - ) - ) - } - - override TypeAnnotation getFieldTypeAnnotation(string fieldName) { - exists(FieldDeclaration field | - field.getDeclaringClass() = astNode and - fieldName = field.getName() and - result = field.getTypeAnnotation() - ) - } - - override DataFlow::Node getADecorator() { - astNode instanceof ClassDefinition and - result = astNode.(ClassDefinition).getADecorator().getExpression().flow() - } - } + deprecated class FunctionStyleClass = ClassNode; } /** diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll index 44f827ddf3d..cc4c883381e 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/CallGraphs.qll @@ -254,7 +254,7 @@ module CallGraph { not exists(DataFlow::ClassNode cls | node = cls.getConstructor().getReceiver() or - node = cls.(DataFlow::ClassNode::StandardClassNode).getAPrototypeReference() + node = cls.(DataFlow::ClassNode).getAPrototypeReference() ) } From d3aa2a130c4be6716325f3ccaa58cd5c477ffb37 Mon Sep 17 00:00:00 2001 From: Chad Bentz <1760475+felickz@users.noreply.github.com> Date: Thu, 1 May 2025 19:37:26 +0000 Subject: [PATCH 223/656] Moved guidance to RST --- .../CWE-829/UnpinnedActionsTag-CUSTOMIZING.md | 39 ------------------ .../Security/CWE-829/UnpinnedActionsTag.md | 2 - ...customizing-library-models-for-actions.rst | 41 ++++++++++++++++++- 3 files changed, 40 insertions(+), 42 deletions(-) delete mode 100644 actions/ql/src/Security/CWE-829/UnpinnedActionsTag-CUSTOMIZING.md diff --git a/actions/ql/src/Security/CWE-829/UnpinnedActionsTag-CUSTOMIZING.md b/actions/ql/src/Security/CWE-829/UnpinnedActionsTag-CUSTOMIZING.md deleted file mode 100644 index 1e64c2751a6..00000000000 --- a/actions/ql/src/Security/CWE-829/UnpinnedActionsTag-CUSTOMIZING.md +++ /dev/null @@ -1,39 +0,0 @@ - ### Configuration - - If there is an Action publisher that you trust, you can include the owner name/organization in a data extension model pack to add it to the allow list for this query. Adding owners to this list will prevent security alerts when using unpinned tags for Actions published by that owner. - - #### Example - - To allow any Action from the publisher `octodemo`, such as `octodemo/3rd-party-action`, follow these steps: - - 1. Create a data extension file `/models/trusted-owner.model.yml` with the following content: - - ```yaml - extensions: - - addsTo: - pack: codeql/actions-all - extensible: trustedActionsOwnerDataModel - data: - - ["octodemo"] - ``` - - 2. Create a model pack file `/codeql-pack.yml` with the following content: - - ```yaml - name: my-org/actions-extensions-model-pack - version: 0.0.0 - library: true - extensionTargets: - codeql/actions-all: '*' - dataExtensions: - - models/**/*.yml - ``` - - 3. Ensure that the model pack is included in your CodeQL analysis. - - By following these steps, you will add `octodemo` to the list of trusted Action publishers, and the query will no longer generate security alerts for unpinned tags from this publisher. - - ## References - - [Extending CodeQL coverage with CodeQL model packs in default setup](https://docs.github.com/en/code-security/code-scanning/managing-your-code-scanning-configuration/editing-your-configuration-of-default-setup#extending-codeql-coverage-with-codeql-model-packs-in-default-setup) - - [Creating and working with CodeQL packs](https://docs.github.com/en/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs#creating-a-codeql-model-pack) - - [Customizing library models for GitHub Actions](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-actions/) diff --git a/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.md b/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.md index 7b0749349a7..f8ea2fdc82f 100644 --- a/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.md +++ b/actions/ql/src/Security/CWE-829/UnpinnedActionsTag.md @@ -8,8 +8,6 @@ Using a tag for a 3rd party Action that is not pinned to a commit can lead to ex Pinning an action to a full length commit SHA is currently the only way to use a non-immutable action as an immutable release. Pinning to a particular SHA helps mitigate the risk of a bad actor adding a backdoor to the action's repository, as they would need to generate a SHA-1 collision for a valid Git object payload. When selecting a SHA, you should verify it is from the action's repository and not a repository fork. -See the [`UnpinnedActionsTag-CUSTOMIZING.md`](https://github.com/github/codeql/blob/main/actions/ql/src/Security/CWE-829/UnpinnedActionsTag-CUSTOMIZING.md) file in the source code for this query for information on how to extend the list of Action publishers trusted by this query. - ## Examples ### Incorrect Usage diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst index 5676a77cf86..2bf452b5a90 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst @@ -43,4 +43,43 @@ Customizing Actions-specific analysis: - **untrustedGhCommandDataModel**\(cmd_regex, flag) - **untrustedGitCommandDataModel**\(cmd_regex, flag) - **vulnerableActionsDataModel**\(action, vulnerable_version, vulnerable_sha, fixed_version) -- **workflowDataModel**\(path, trigger, job, secrets_source, permissions, runner) \ No newline at end of file +- **workflowDataModel**\(path, trigger, job, secrets_source, permissions, runner) + +Examples of custom model definitions +------------------------------------ + +The examples in this section are taken from the standard CodeQL Actions query pack published by GitHub. They demonstrate how to add tuples to extend extensible predicates that are used by the standard queries. + +Example: Extend the trusted Actions publishers for the ``actions/unpinned-tag`` query +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If there is an Action publisher that you trust, you can include the owner name/organization in a data extension model pack to add it to the allow list for this query. Adding owners to this list will prevent security alerts when using unpinned tags for Actions published by that owner. + +To allow any Action from the publisher ``octodemo``, such as ``octodemo/3rd-party-action``, follow these steps: + +1. Create a data extension file ``/models/trusted-owner.model.yml`` with the following content: + + .. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/actions-all + extensible: trustedActionsOwnerDataModel + data: + - ["octodemo"] + +2. Create a model pack file ``/codeql-pack.yml`` with the following content: + + .. code-block:: yaml + + name: my-org/actions-extensions-model-pack + version: 0.0.0 + library: true + extensionTargets: + codeql/actions-all: '*' + dataExtensions: + - models/**/*.yml + +3. Ensure that the model pack is included in your CodeQL analysis. + +By following these steps, you will add ``octodemo`` to the list of trusted Action publishers, and the query will no longer generate security alerts for unpinned tags from this publisher. For more information, see `Extending CodeQL coverage with CodeQL model packs in default setup `_ and `Creating and working with CodeQL packs `_. From 778f46d5be80ff1657da988c5a041fb5b74e06c3 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Thu, 1 May 2025 22:21:48 +0200 Subject: [PATCH 224/656] Rust: adjust unit tests and expected output --- rust/ql/test/TestUtils.qll | 6 +++++- rust/ql/test/query-tests/diagnostics/LinesOfCode.expected | 2 +- .../query-tests/diagnostics/SummaryStatsReduced.expected | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/rust/ql/test/TestUtils.qll b/rust/ql/test/TestUtils.qll index ce494ff5a60..dc75d109a33 100644 --- a/rust/ql/test/TestUtils.qll +++ b/rust/ql/test/TestUtils.qll @@ -1,6 +1,6 @@ private import rust -predicate toBeTested(Element e) { not e instanceof CrateElement } +predicate toBeTested(Element e) { not e instanceof CrateElement and not e instanceof Builtin } class CrateElement extends Element { CrateElement() { @@ -9,3 +9,7 @@ class CrateElement extends Element { any(Crate c).getModule() = this.(AstNode).getParentNode*() } } + +class Builtin extends AstNode { + Builtin() { this.getFile().getAbsolutePath().matches("%/builtins/%.rs") } +} diff --git a/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected b/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected index 5fa7b20e01b..76e48043d0d 100644 --- a/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected +++ b/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected @@ -1 +1 @@ -| 60 | +| 77 | diff --git a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected index ed21d9772fc..793ed90a482 100644 --- a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected +++ b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected @@ -9,7 +9,7 @@ | Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | -| Lines of code extracted | 60 | +| Lines of code extracted | 77 | | Lines of user code extracted | 60 | | Macro calls - resolved | 8 | | Macro calls - total | 9 | From 16fc8c3d9e46143d2872dcb91b7aa0bd01f5bbef Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 2 May 2025 11:09:19 +0200 Subject: [PATCH 225/656] JS: Benign test updates --- .../library-tests/frameworks/data/test.expected | 17 +++++++++++++++++ .../CWE-079/ReflectedXss/ReflectedXss.expected | 6 +++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/javascript/ql/test/library-tests/frameworks/data/test.expected b/javascript/ql/test/library-tests/frameworks/data/test.expected index 0bc1b6b6ee0..875b0189d61 100644 --- a/javascript/ql/test/library-tests/frameworks/data/test.expected +++ b/javascript/ql/test/library-tests/frameworks/data/test.expected @@ -1,4 +1,21 @@ legacyDataFlowDifference +| test.js:5:30:5:37 | source() | test.js:5:8:5:38 | testlib ... urce()) | only flow with NEW data flow library | +| test.js:6:22:6:29 | source() | test.js:6:8:6:30 | preserv ... urce()) | only flow with NEW data flow library | +| test.js:7:41:7:48 | source() | test.js:7:8:7:49 | require ... urce()) | only flow with NEW data flow library | +| test.js:11:38:11:45 | source() | test.js:11:8:11:55 | testlib ... , 1, 1) | only flow with NEW data flow library | +| test.js:13:44:13:51 | source() | test.js:13:8:13:55 | testlib ... e(), 1) | only flow with NEW data flow library | +| test.js:17:47:17:54 | source() | test.js:17:8:17:61 | testlib ... , 1, 1) | only flow with NEW data flow library | +| test.js:18:50:18:57 | source() | test.js:18:8:18:61 | testlib ... e(), 1) | only flow with NEW data flow library | +| test.js:19:53:19:60 | source() | test.js:19:8:19:61 | testlib ... urce()) | only flow with NEW data flow library | +| test.js:21:34:21:41 | source() | test.js:21:8:21:51 | testlib ... , 1, 1) | only flow with NEW data flow library | +| test.js:22:37:22:44 | source() | test.js:22:8:22:51 | testlib ... , 1, 1) | only flow with NEW data flow library | +| test.js:23:40:23:47 | source() | test.js:23:8:23:51 | testlib ... e(), 1) | only flow with NEW data flow library | +| test.js:24:43:24:50 | source() | test.js:24:8:24:51 | testlib ... urce()) | only flow with NEW data flow library | +| test.js:31:29:31:36 | source() | test.js:32:10:32:10 | y | only flow with NEW data flow library | +| test.js:37:29:37:36 | source() | test.js:38:10:38:10 | y | only flow with NEW data flow library | +| test.js:43:29:43:36 | source() | test.js:44:10:44:10 | y | only flow with NEW data flow library | +| test.js:47:33:47:40 | source() | test.js:49:10:49:13 | this | only flow with NEW data flow library | +| test.js:102:16:102:34 | testlib.getSource() | test.js:104:8:104:24 | source.continue() | only flow with NEW data flow library | consistencyIssue taintFlow | guardedRouteHandler.js:6:10:6:28 | req.injectedReqData | guardedRouteHandler.js:6:10:6:28 | req.injectedReqData | diff --git a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected index 5681ae99aa8..09874ecef10 100644 --- a/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected +++ b/javascript/ql/test/query-tests/Security/CWE-079/ReflectedXss/ReflectedXss.expected @@ -78,7 +78,9 @@ edges | ReflectedXss.js:22:19:22:26 | req.body | ReflectedXss.js:22:12:22:27 | marked(req.body) | provenance | | | ReflectedXss.js:29:7:32:4 | mytable | ReflectedXss.js:33:12:33:18 | mytable | provenance | | | ReflectedXss.js:29:17:32:4 | table([ ... ce\\n ]) | ReflectedXss.js:29:7:32:4 | mytable | provenance | | -| ReflectedXss.js:31:14:31:21 | req.body | ReflectedXss.js:29:17:32:4 | table([ ... ce\\n ]) | provenance | | +| ReflectedXss.js:29:23:32:3 | [\\n [ ... rce\\n ] [1, 1] | ReflectedXss.js:29:17:32:4 | table([ ... ce\\n ]) | provenance | | +| ReflectedXss.js:31:5:31:22 | ['body', req.body] [1] | ReflectedXss.js:29:23:32:3 | [\\n [ ... rce\\n ] [1, 1] | provenance | | +| ReflectedXss.js:31:14:31:21 | req.body | ReflectedXss.js:31:5:31:22 | ['body', req.body] [1] | provenance | | | ReflectedXss.js:41:31:41:38 | req.body | ReflectedXss.js:41:12:41:39 | convert ... q.body) | provenance | | | ReflectedXss.js:63:14:63:21 | req.body | ReflectedXss.js:63:39:63:42 | file | provenance | | | ReflectedXss.js:63:39:63:42 | file | ReflectedXss.js:64:16:64:19 | file | provenance | | @@ -253,6 +255,8 @@ nodes | ReflectedXss.js:28:12:28:19 | req.body | semmle.label | req.body | | ReflectedXss.js:29:7:32:4 | mytable | semmle.label | mytable | | ReflectedXss.js:29:17:32:4 | table([ ... ce\\n ]) | semmle.label | table([ ... ce\\n ]) | +| ReflectedXss.js:29:23:32:3 | [\\n [ ... rce\\n ] [1, 1] | semmle.label | [\\n [ ... rce\\n ] [1, 1] | +| ReflectedXss.js:31:5:31:22 | ['body', req.body] [1] | semmle.label | ['body', req.body] [1] | | ReflectedXss.js:31:14:31:21 | req.body | semmle.label | req.body | | ReflectedXss.js:33:12:33:18 | mytable | semmle.label | mytable | | ReflectedXss.js:40:12:40:19 | req.body | semmle.label | req.body | From f64e86fe2e661d88b892c483e7d8fe7015d39c9b Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 9 Apr 2025 20:55:34 +0100 Subject: [PATCH 226/656] Rust: Add a library test for Operations. --- .../operations/Operations.expected | 0 .../library-tests/operations/Operations.ql | 30 ++++++++++ rust/ql/test/library-tests/operations/test.rs | 57 +++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 rust/ql/test/library-tests/operations/Operations.expected create mode 100644 rust/ql/test/library-tests/operations/Operations.ql create mode 100644 rust/ql/test/library-tests/operations/test.rs diff --git a/rust/ql/test/library-tests/operations/Operations.expected b/rust/ql/test/library-tests/operations/Operations.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql new file mode 100644 index 00000000000..7605aa9e719 --- /dev/null +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -0,0 +1,30 @@ +import rust +import utils.test.InlineExpectationsTest + +string describe(Expr op) { + op instanceof PrefixExpr and result = "PrefixExpr" + or + op instanceof BinaryExpr and result = "BinaryExpr" + or + op instanceof AssignmentOperation and result = "AssignmentOperation" + or + op instanceof LogicalOperation and result = "LogicalOperation" + or + op instanceof RefExpr and result = "RefExpr" +} + +module OperationsTest implements TestSig { + string getARelevantTag() { result = describe(_) } + + predicate hasActualResult(Location location, string element, string tag, string value) { + exists(Expr op | + location = op.getLocation() and + location.getFile().getBaseName() != "" and + element = op.toString() and + tag = describe(op) and + value = "" + ) + } +} + +import MakeTest diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs new file mode 100644 index 00000000000..84152bd7072 --- /dev/null +++ b/rust/ql/test/library-tests/operations/test.rs @@ -0,0 +1,57 @@ + +// --- tests --- + +fn test_operations( + y: i32, a: bool, b: bool, + ptr: &i32, res: Result) -> Result<(), ()> +{ + let mut x: i32; + + // simple assignment + x = y; // $ AssignmentOperation BinaryExpr + + // comparison operations + x == y; // $ BinaryExpr + x != y; // $ BinaryExpr + x < y; // $ BinaryExpr + x <= y; // $ BinaryExpr + x > y; // $ BinaryExpr + x >= y; // $ BinaryExpr + + // arithmetic operations + x + y; // $ BinaryExpr + x - y; // $ BinaryExpr + x * y; // $ BinaryExpr + x / y; // $ BinaryExpr + x % y; // $ BinaryExpr + x += y; // $ AssignmentOperation BinaryExpr + x -= y; // $ AssignmentOperation BinaryExpr + x *= y; // $ AssignmentOperation BinaryExpr + x /= y; // $ AssignmentOperation BinaryExpr + x %= y; // $ AssignmentOperation BinaryExpr + -x; // $ PrefixExpr + + // logical operations + a && b; // $ BinaryExpr LogicalOperation + a || b; // $ BinaryExpr LogicalOperation + !a; // $ PrefixExpr LogicalOperation + + // bitwise operations + x & y; // $ BinaryExpr + x | y; // $ BinaryExpr + x ^ y; // $ BinaryExpr + x << y; // $ BinaryExpr + x >> y; // $ BinaryExpr + x &= y; // $ AssignmentOperation BinaryExpr + x |= y; // $ AssignmentOperation BinaryExpr + x ^= y; // $ AssignmentOperation BinaryExpr + x <<= y; // $ AssignmentOperation BinaryExpr + x >>= y; // $ AssignmentOperation BinaryExpr + + // miscellaneous expressions that might be operations + *ptr; // $ PrefixExpr + &x; // $ RefExpr + res?; + + return Ok(()); +} From f3e0cfd947ab686185be16c5b029326c2ba8f665 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 2 May 2025 12:41:29 +0200 Subject: [PATCH 227/656] Apply suggestions from code review Co-authored-by: Erik Krogh Kristensen --- javascript/ql/lib/semmle/javascript/TSConfig.qll | 2 +- .../ql/lib/semmle/javascript/internal/paths/PackageJsonEx.qll | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/TSConfig.qll b/javascript/ql/lib/semmle/javascript/TSConfig.qll index b38fa1d1dc9..c10177e5fe2 100644 --- a/javascript/ql/lib/semmle/javascript/TSConfig.qll +++ b/javascript/ql/lib/semmle/javascript/TSConfig.qll @@ -141,7 +141,7 @@ class TSConfig extends JsonObject { } /** - * Holds if this has an exact path mapping from `pattern` to `newPath`. + * Holds if this has an exact path mapping (i.e. no wildcards) from `pattern` to `newPath`. * * For example, `"paths": { "@": "./src/index.ts" }` maps the `@` path to `./src/index.ts`. * diff --git a/javascript/ql/lib/semmle/javascript/internal/paths/PackageJsonEx.qll b/javascript/ql/lib/semmle/javascript/internal/paths/PackageJsonEx.qll index 4e2a51aaf7d..5f4a6eb930e 100644 --- a/javascript/ql/lib/semmle/javascript/internal/paths/PackageJsonEx.qll +++ b/javascript/ql/lib/semmle/javascript/internal/paths/PackageJsonEx.qll @@ -2,7 +2,7 @@ private import javascript private import semmle.javascript.internal.paths.JSPaths /** - * Extension of `PackageJson` with some internal path-resolution predicates. + * A `package.json` file. The class is an extension of the `PackageJson` class with some internal path-resolution predicates. */ class PackageJsonEx extends PackageJson { private JsonValue getAPartOfExportsSection(string pattern) { From c6d95ceeb011f3ba0b0cd6ec9ee5e3e0cc14f212 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 2 May 2025 13:21:10 +0200 Subject: [PATCH 228/656] Shared: Remove the language-specific model generator scripts --- .github/workflows/mad_modelDiff.yml | 2 +- .../utils/modelgenerator/GenerateFlowModel.py | 15 ----- .../2025-05-02-mad-generator-renamed.md | 8 +++ .../utils/modelgenerator/GenerateFlowModel.py | 15 ----- .../2025-05-02-mad-generator-renamed.md | 8 +++ .../utils/modelgenerator/GenerateFlowModel.py | 15 ----- .../utils/modelgenerator/RegenerateModels.py | 4 +- ...generate_flow_model.py => generate_mad.py} | 59 +++++++++++-------- .../utils/modelgenerator/GenerateFlowModel.py | 15 ----- 9 files changed, 54 insertions(+), 87 deletions(-) delete mode 100644 cpp/ql/src/utils/modelgenerator/GenerateFlowModel.py create mode 100644 csharp/ql/src/change-notes/2025-05-02-mad-generator-renamed.md delete mode 100755 csharp/ql/src/utils/modelgenerator/GenerateFlowModel.py create mode 100644 java/ql/src/change-notes/2025-05-02-mad-generator-renamed.md delete mode 100755 java/ql/src/utils/modelgenerator/GenerateFlowModel.py rename misc/scripts/models-as-data/{generate_flow_model.py => generate_mad.py} (86%) delete mode 100644 rust/ql/src/utils/modelgenerator/GenerateFlowModel.py diff --git a/.github/workflows/mad_modelDiff.yml b/.github/workflows/mad_modelDiff.yml index 3d98e74f0fb..b0e4a20f2b8 100644 --- a/.github/workflows/mad_modelDiff.yml +++ b/.github/workflows/mad_modelDiff.yml @@ -68,7 +68,7 @@ jobs: DATABASE=$2 cd codeql-$QL_VARIANT SHORTNAME=`basename $DATABASE` - python java/ql/src/utils/modelgenerator/GenerateFlowModel.py --with-summaries --with-sinks $DATABASE $SHORTNAME/$QL_VARIANT + python misc/scripts/models-as-data/generate_mad.py --language java --with-summaries --with-sinks $DATABASE $SHORTNAME/$QL_VARIANT mkdir -p $MODELS/$SHORTNAME mv java/ql/lib/ext/generated/$SHORTNAME/$QL_VARIANT $MODELS/$SHORTNAME cd .. diff --git a/cpp/ql/src/utils/modelgenerator/GenerateFlowModel.py b/cpp/ql/src/utils/modelgenerator/GenerateFlowModel.py deleted file mode 100644 index 38bbaad118b..00000000000 --- a/cpp/ql/src/utils/modelgenerator/GenerateFlowModel.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/python3 - -import sys -import os.path -import subprocess - -# Add Model as Data script directory to sys.path. -gitroot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip() -madpath = os.path.join(gitroot, "misc/scripts/models-as-data/") -sys.path.append(madpath) - -import generate_flow_model as model - -language = "cpp" -model.Generator.make(language).run() diff --git a/csharp/ql/src/change-notes/2025-05-02-mad-generator-renamed.md b/csharp/ql/src/change-notes/2025-05-02-mad-generator-renamed.md new file mode 100644 index 00000000000..824b37180a1 --- /dev/null +++ b/csharp/ql/src/change-notes/2025-05-02-mad-generator-renamed.md @@ -0,0 +1,8 @@ +--- +category: minorAnalysis +--- +* Changes to the MaD model generation infrastructure: + * The `csharp/ql/src/utils/modelgenerator/GenerateFlowModel.py` script has + been removed. The `/misc/scripts/models-as-data/generate_mad.py` script now + supports being called directly and should be used instead. The script + requires a `--language` argument but otherwise functions identically. diff --git a/csharp/ql/src/utils/modelgenerator/GenerateFlowModel.py b/csharp/ql/src/utils/modelgenerator/GenerateFlowModel.py deleted file mode 100755 index ebc7ea1be78..00000000000 --- a/csharp/ql/src/utils/modelgenerator/GenerateFlowModel.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/python3 - -import sys -import os.path -import subprocess - -# Add Model as Data script directory to sys.path. -gitroot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip() -madpath = os.path.join(gitroot, "misc/scripts/models-as-data/") -sys.path.append(madpath) - -import generate_flow_model as model - -language = "csharp" -model.Generator.make(language).run() \ No newline at end of file diff --git a/java/ql/src/change-notes/2025-05-02-mad-generator-renamed.md b/java/ql/src/change-notes/2025-05-02-mad-generator-renamed.md new file mode 100644 index 00000000000..0a2d9e797fc --- /dev/null +++ b/java/ql/src/change-notes/2025-05-02-mad-generator-renamed.md @@ -0,0 +1,8 @@ +--- +category: minorAnalysis +--- +* Changes to the MaD model generation infrastructure: + * The `java/ql/src/utils/modelgenerator/GenerateFlowModel.py` script has + been removed. The `/misc/scripts/models-as-data/generate_mad.py` script now + supports being called directly and should be used instead. The script + requires a `--language` argument but otherwise functions identically. diff --git a/java/ql/src/utils/modelgenerator/GenerateFlowModel.py b/java/ql/src/utils/modelgenerator/GenerateFlowModel.py deleted file mode 100755 index 44b40a4d34a..00000000000 --- a/java/ql/src/utils/modelgenerator/GenerateFlowModel.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/python3 - -import sys -import os.path -import subprocess - -# Add Model as Data script directory to sys.path. -gitroot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip() -madpath = os.path.join(gitroot, "misc/scripts/models-as-data/") -sys.path.append(madpath) - -import generate_flow_model as model - -language = "java" -model.Generator.make(language).run() \ No newline at end of file diff --git a/java/ql/src/utils/modelgenerator/RegenerateModels.py b/java/ql/src/utils/modelgenerator/RegenerateModels.py index 1f7df71776b..0c38f41c069 100755 --- a/java/ql/src/utils/modelgenerator/RegenerateModels.py +++ b/java/ql/src/utils/modelgenerator/RegenerateModels.py @@ -35,8 +35,8 @@ def regenerateModel(lgtmSlug, extractedDb): sys.exit(1) modelFile = lgtmSlugToModelFile[lgtmSlug] codeQlRoot = findGitRoot() - subprocess.check_call([codeQlRoot + "/java/ql/src/utils/modelgenerator/GenerateFlowModel.py", - "--with-summaries", "--with-sinks", "--with-neutrals", + subprocess.check_call([codeQlRoot + "/misc/scripts/models-as-data/generate_mad.py", + "--language", "java", "--with-summaries", "--with-sinks", "--with-neutrals", extractedDb, modelFile]) print("Regenerated " + modelFile) shutil.rmtree(tmpDir) diff --git a/misc/scripts/models-as-data/generate_flow_model.py b/misc/scripts/models-as-data/generate_mad.py similarity index 86% rename from misc/scripts/models-as-data/generate_flow_model.py rename to misc/scripts/models-as-data/generate_mad.py index 1d108015fa0..60674ed54ed 100755 --- a/misc/scripts/models-as-data/generate_flow_model.py +++ b/misc/scripts/models-as-data/generate_mad.py @@ -1,10 +1,8 @@ #!/usr/bin/python3 import helpers -import json import os import os.path -import shlex import subprocess import sys import tempfile @@ -27,24 +25,13 @@ def parseData(data): return rows -class Generator: - def __init__ (self, language): - self.language = language - self.generateSinks = False - self.generateSources = False - self.generateSummaries = False - self.generateNeutrals = False - self.generateTypeBasedSummaries = False - self.dryRun = False - self.dirname = "modelgenerator" - - def printHelp(self): - print(f"""Usage: -python3 GenerateFlowModel.py [DIR] [--with-sinks] [--with-sources] [--with-summaries] [--with-neutrals] [--with-typebased-summaries] [--dry-run] +def printHelp(): + print(f"""Usage: +python3 generate_mad.py [DIR] --language LANGUAGE [--with-sinks] [--with-sources] [--with-summaries] [--with-neutrals] [--with-typebased-summaries] [--dry-run] This generates summary, source, sink and neutral models for the code in the database. -The files will be placed in `{self.language}/ql/lib/ext/generated/DIR` +The files will be placed in `LANGUAGE/ql/lib/ext/generated/DIR` Which models are generated is controlled by the flags: --with-sinks @@ -57,14 +44,25 @@ If none of these flags are specified, all models are generated except for the ty --dry-run: Only run the queries, but don't write to file. Example invocations: -$ python3 GenerateFlowModel.py /tmp/dbs/my_library_db -$ python3 GenerateFlowModel.py /tmp/dbs/my_library_db --with-sinks -$ python3 GenerateFlowModel.py /tmp/dbs/my_library_db --with-sinks my_directory +$ python3 generate_mad.py /tmp/dbs/my_library_db +$ python3 generate_mad.py /tmp/dbs/my_library_db --with-sinks +$ python3 generate_mad.py /tmp/dbs/my_library_db --with-sinks my_directory Requirements: `codeql` should appear on your path. """) +class Generator: + def __init__(self, language): + self.language = language + self.generateSinks = False + self.generateSources = False + self.generateSummaries = False + self.generateNeutrals = False + self.generateTypeBasedSummaries = False + self.dryRun = False + self.dirname = "modelgenerator" + def setenvironment(self, database, folder): self.codeQlRoot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip() @@ -76,12 +74,22 @@ Requirements: `codeql` should appear on your path. @staticmethod - def make(language): - generator = Generator(language) + def make(): + '''Create a generator instance based on command line arguments.''' if any(s == "--help" for s in sys.argv): - generator.printHelp() + printHelp() sys.exit(0) + if "--language" in sys.argv: + language = sys.argv[sys.argv.index("--language") + 1] + sys.argv.remove("--language") + sys.argv.remove(language) + else: + print("Error: Language not specified. Use --language .") + sys.exit(0) + + generator = Generator(language=language) + if "--with-sinks" in sys.argv: sys.argv.remove("--with-sinks") generator.generateSinks = True @@ -115,7 +123,7 @@ Requirements: `codeql` should appear on your path. n = len(sys.argv) if n < 2: - generator.printHelp() + printHelp() sys.exit(1) elif n == 2: generator.setenvironment(sys.argv[1], "") @@ -204,3 +212,6 @@ extensions: if self.generateTypeBasedSummaries: self.save(typeBasedContent, ".typebased.model.yml") + +if __name__ == '__main__': + Generator.make().run() \ No newline at end of file diff --git a/rust/ql/src/utils/modelgenerator/GenerateFlowModel.py b/rust/ql/src/utils/modelgenerator/GenerateFlowModel.py deleted file mode 100644 index 008b82501ff..00000000000 --- a/rust/ql/src/utils/modelgenerator/GenerateFlowModel.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/python3 - -import sys -import os.path -import subprocess - -# Add Model as Data script directory to sys.path. -gitroot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip() -madpath = os.path.join(gitroot, "misc/scripts/models-as-data/") -sys.path.append(madpath) - -import generate_flow_model as model - -language = "rust" -model.Generator.make(language).run() From 5c9218fe5a392ceacebdb4a71733e51dd99ce2a1 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 2 May 2025 13:03:29 +0200 Subject: [PATCH 229/656] JS: Add comment about 'path' heuristic --- .../lib/semmle/javascript/internal/paths/PathConcatenation.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/javascript/ql/lib/semmle/javascript/internal/paths/PathConcatenation.qll b/javascript/ql/lib/semmle/javascript/internal/paths/PathConcatenation.qll index 448c7e55e01..ad5552ce78c 100644 --- a/javascript/ql/lib/semmle/javascript/internal/paths/PathConcatenation.qll +++ b/javascript/ql/lib/semmle/javascript/internal/paths/PathConcatenation.qll @@ -25,6 +25,7 @@ private class TemplateConcatenation extends PathConcatenation, TemplateLiteral { private class JoinCallConcatenation extends PathConcatenation, CallExpr { JoinCallConcatenation() { + // Heuristic recognition of path.join and path.resolve since we can't rely on SourceNode at this stage. this.getReceiver().(VarAccess).getName() = "path" and this.getCalleeName() = ["join", "resolve"] } From 1f308ee47ab015800f64500c8edae6b6a22f9114 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 2 May 2025 13:05:37 +0200 Subject: [PATCH 230/656] JS: Explain use of monotonicAggregates --- .../ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll b/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll index 05b8a620717..63ffd955477 100644 --- a/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll +++ b/javascript/ql/lib/semmle/javascript/internal/paths/PathExprResolver.qll @@ -65,6 +65,7 @@ module ResolveExpr { or exists(PathConcatenation join | node = TValueNode(join) and + // Note: 'monotonicAggregates' above lets us use recursion in the last clause of this aggregate result = strictconcat(int n, EarlyStageNode child, string sep | child = TValueNode(join.getOperand(n)) and sep = join.getSeparator() From 871e93d9fe2309d757bc6d19484fb491c9b31b64 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 2 May 2025 13:39:46 +0200 Subject: [PATCH 231/656] Update javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll Co-authored-by: Asger F --- javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll b/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll index ae0ba17941c..fc0e366df4b 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll @@ -163,10 +163,7 @@ module ShellJS { if name = "cmd" then result = this.getArgument(_) and - not ( - result = this.getLastArgument() and - exists(this.getOptionsArg()) - ) + not result = this.getOptionsArg() else // For exec/asyncExec: only first argument is command result = this.getArgument(0) From 82736ea62157b2e13c981938e266084af9b64274 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 2 May 2025 13:43:00 +0200 Subject: [PATCH 232/656] Rust: add diagnostics about item expansion not working properly --- rust/extractor/src/translate/base.rs | 35 +++++++++++++++++++--------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 527f4e9497a..476c02b3adf 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -159,21 +159,24 @@ impl<'a> Translator<'a> { Some(node.syntax().text_range()) } } - pub fn emit_location(&mut self, label: Label, node: &impl ast::AstNode) { - if let Some((start, end)) = self - .text_range_for_node(node) + + fn location_for_node(&mut self, node: &impl ast::AstNode) -> (LineCol, LineCol) { + self.text_range_for_node(node) .and_then(|r| self.location(r)) - { - self.trap.emit_location(self.label, label, start, end) - } else { - self.emit_diagnostic( + .unwrap_or(UNKNOWN_LOCATION) + } + + pub fn emit_location(&mut self, label: Label, node: &impl ast::AstNode) { + match self.location_for_node(node) { + UNKNOWN_LOCATION => self.emit_diagnostic( DiagnosticSeverity::Debug, "locations".to_owned(), "missing location for AstNode".to_owned(), "missing location for AstNode".to_owned(), UNKNOWN_LOCATION, - ); - } + ), + (start, end) => self.trap.emit_location(self.label, label, start, end), + }; } pub fn emit_location_token( &mut self, @@ -657,9 +660,19 @@ impl<'a> Translator<'a> { let ExpandResult { value: expanded, .. } = semantics.expand_attr_macro(node)?; - // TODO emit err? self.emit_macro_expansion_parse_errors(node, &expanded); - let macro_items = ast::MacroItems::cast(expanded)?; + let macro_items = ast::MacroItems::cast(expanded).or_else(|| { + let message = "attribute macro expansion cannot be cast to MacroItems".to_owned(); + let location = self.location_for_node(node); + self.emit_diagnostic( + DiagnosticSeverity::Warning, + "item_expansion".to_owned(), + message.clone(), + message, + location, + ); + None + })?; let expanded = self.emit_macro_items(¯o_items)?; generated::Item::emit_attribute_macro_expansion(label, expanded, &mut self.trap.writer); Some(()) From b8be1bcee89b55de8bee6a1066ac8315816df539 Mon Sep 17 00:00:00 2001 From: Asger F Date: Fri, 2 May 2025 10:31:18 +0200 Subject: [PATCH 233/656] JS: Avoid duplication with constructor body --- javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll | 1 + javascript/ql/test/library-tests/ClassNode/tests.expected | 1 - javascript/ql/test/library-tests/Classes/tests.expected | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index aab89e7baa3..353d50eea1e 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -872,6 +872,7 @@ class ClassNode extends DataFlow::ValueNode, DataFlow::SourceNode { or // Function-style class case astNode instanceof Function and + not astNode = any(ClassDefinition cls).getConstructor().getBody() and function.getFunction() = astNode and ( exists(getAFunctionValueWithPrototype(function)) diff --git a/javascript/ql/test/library-tests/ClassNode/tests.expected b/javascript/ql/test/library-tests/ClassNode/tests.expected index 1337e0c5694..687118ffa0b 100644 --- a/javascript/ql/test/library-tests/ClassNode/tests.expected +++ b/javascript/ql/test/library-tests/ClassNode/tests.expected @@ -15,7 +15,6 @@ getAReceiverNode | tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:4:17:4:16 | this | | tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:7:6:7:5 | this | | tst.js:3:1:10:1 | class A ... () {}\\n} | tst.js:9:10:9:9 | this | -| tst.js:3:9:3:8 | () {} | tst.js:3:9:3:8 | this | | tst.js:13:1:13:21 | class A ... ds A {} | tst.js:13:20:13:19 | this | | tst.js:15:1:15:15 | function B() {} | tst.js:15:1:15:0 | this | | tst.js:15:1:15:15 | function B() {} | tst.js:17:19:17:18 | this | diff --git a/javascript/ql/test/library-tests/Classes/tests.expected b/javascript/ql/test/library-tests/Classes/tests.expected index 460614e02e1..aadd449349c 100644 --- a/javascript/ql/test/library-tests/Classes/tests.expected +++ b/javascript/ql/test/library-tests/Classes/tests.expected @@ -194,7 +194,6 @@ test_ConstructorDefinitions | tst.js:11:9:11:8 | constructor() {} | test_ClassNodeConstructor | dataflow.js:4:2:13:2 | class F ... \\n\\t\\t}\\n\\t} | dataflow.js:4:12:4:11 | () {} | -| dataflow.js:4:12:4:11 | () {} | dataflow.js:4:12:4:11 | () {} | | fields.js:1:1:4:1 | class C ... = 42\\n} | fields.js:1:9:1:8 | () {} | | points.js:1:1:18:1 | class P ... ;\\n }\\n} | points.js:2:14:5:3 | (x, y) ... y;\\n } | | points.js:20:1:33:1 | class C ... ;\\n }\\n} | points.js:21:14:24:3 | (x, y, ... c;\\n } | From 30694c11d61cb159193b3e4c4f96c77a55c9fde4 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 2 May 2025 11:12:06 +0200 Subject: [PATCH 234/656] Removed code duplication --- .../lib/semmle/javascript/dataflow/Nodes.qll | 28 ------------------- 1 file changed, 28 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index 353d50eea1e..f0d31df2a8f 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -950,20 +950,6 @@ class ClassNode extends DataFlow::ValueNode, DataFlow::SourceNode { result = method.getBody().flow() ) or - // ES6 class property or Function-style class methods via constructor - kind = MemberKind::method() and - exists(ThisNode receiver | - receiver = this.getConstructor().getReceiver() and - receiver.hasPropertyWrite(name, result) - ) - or - // Function-style class methods via prototype - kind = MemberKind::method() and - exists(DataFlow::SourceNode proto | - proto = this.getAPrototypeReference() and - proto.hasPropertyWrite(name, result) - ) - or // Function-style class accessors astNode instanceof Function and exists(PropertyAccessor accessor | @@ -995,20 +981,6 @@ class ClassNode extends DataFlow::ValueNode, DataFlow::SourceNode { result = method.getBody().flow() ) or - // ES6 class property or Function-style class methods via constructor - kind = MemberKind::method() and - exists(ThisNode receiver | - receiver = this.getConstructor().getReceiver() and - result = receiver.getAPropertySource() - ) - or - // Function-style class methods via prototype - kind = MemberKind::method() and - exists(DataFlow::SourceNode proto | - proto = this.getAPrototypeReference() and - result = proto.getAPropertySource() - ) - or // Function-style class accessors astNode instanceof Function and exists(PropertyAccessor accessor | From 0c1b379ac1df511b01987732ed221e425833f948 Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 29 Apr 2025 15:12:38 +0000 Subject: [PATCH 235/656] Python: Extract files in hidden dirs by default Changes the default behaviour of the Python extractor so files inside hidden directories are extracted by default. Also adds an extractor option, `skip_hidden_directories`, which can be set to `true` in order to revert to the old behaviour. Finally, I made the logic surrounding what is logged in various cases a bit more obvious. Technically this changes the behaviour of the extractor (in that hidden excluded files will now be logged as `(excluded)`, but I think this makes more sense anyway. --- python/codeql-extractor.yml | 7 +++++++ python/extractor/semmle/traverser.py | 16 ++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/python/codeql-extractor.yml b/python/codeql-extractor.yml index 97a9e1f2cf2..2bd1a9c0aa7 100644 --- a/python/codeql-extractor.yml +++ b/python/codeql-extractor.yml @@ -44,3 +44,10 @@ options: Use this setting with caution, the Python extractor requires Python 3 to run. type: string pattern: "^(py|python|python3)$" + skip_hidden_directories: + title: Controls whether hidden directories are skipped during extraction. + description: > + By default, CodeQL will extract all Python files, including ones located in hidden directories. By setting this option to true, these hidden directories will be skipped instead. + Accepted values are true and false. + type: string + pattern: "^(true|false)$" diff --git a/python/extractor/semmle/traverser.py b/python/extractor/semmle/traverser.py index ad8bd38ae73..0945d8ace4b 100644 --- a/python/extractor/semmle/traverser.py +++ b/python/extractor/semmle/traverser.py @@ -83,11 +83,10 @@ class Traverser(object): self.logger.debug("Ignoring %s (symlink)", fullpath) continue if isdir(fullpath): - if fullpath in self.exclude_paths or is_hidden(fullpath): - if is_hidden(fullpath): - self.logger.debug("Ignoring %s (hidden)", fullpath) - else: - self.logger.debug("Ignoring %s (excluded)", fullpath) + if fullpath in self.exclude_paths: + self.logger.debug("Ignoring %s (excluded)", fullpath) + elif is_hidden(fullpath): + self.logger.debug("Ignoring %s (hidden)", fullpath) else: empty = True for item in self._treewalk(fullpath): @@ -101,7 +100,12 @@ class Traverser(object): self.logger.debug("Ignoring %s (filter)", fullpath) -if os.name== 'nt': +if os.environ.get("CODEQL_EXTRACTOR_PYTHON_OPTION_SKIP_HIDDEN_DIRECTORIES", "false") == "false": + + def is_hidden(path): + return False + +elif os.name== 'nt': import ctypes def is_hidden(path): From 97d2ed8b3ba6c6a75f36abb2a4fd8cd3e33f6a5b Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 30 Apr 2025 12:16:04 +0200 Subject: [PATCH 236/656] Swift: Support `UnsafeCastExpr` --- swift/extractor/infra/SwiftTagTraits.h | 2 +- swift/ql/.generated.list | 14 ++++++---- swift/ql/.gitattributes | 4 +++ swift/ql/lib/codeql/swift/elements.qll | 1 + .../swift/elements/expr/UnsafeCastExpr.qll | 12 +++++++++ .../internal/UnsafeCastExprConstructor.qll | 14 ++++++++++ .../expr/internal/UnsafeCastExprImpl.qll | 19 ++++++++++++++ .../codeql/swift/generated/ParentChild.qll | 19 ++++++++++++++ swift/ql/lib/codeql/swift/generated/Raw.qll | 8 ++++++ swift/ql/lib/codeql/swift/generated/Synth.qll | 22 +++++++++++++++- .../swift/generated/SynthConstructors.qll | 1 + .../swift/generated/expr/UnsafeCastExpr.qll | 26 +++++++++++++++++++ swift/ql/lib/swift.dbscheme | 5 ++++ .../ImplicitConversionExpr.expected | 2 ++ .../ImplicitConversionExpr_getType.expected | 2 ++ .../implicit_conversions.swift | 11 ++++++++ swift/schema.py | 6 +++++ 17 files changed, 161 insertions(+), 7 deletions(-) create mode 100644 swift/ql/lib/codeql/swift/elements/expr/UnsafeCastExpr.qll create mode 100644 swift/ql/lib/codeql/swift/elements/expr/internal/UnsafeCastExprConstructor.qll create mode 100644 swift/ql/lib/codeql/swift/elements/expr/internal/UnsafeCastExprImpl.qll create mode 100644 swift/ql/lib/codeql/swift/generated/expr/UnsafeCastExpr.qll diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index b95cec8d7d9..3bc1c511fa1 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -177,7 +177,7 @@ MAP(swift::Expr, ExprTag) MAP(swift::ABISafeConversionExpr, AbiSafeConversionExprTag) // different acronym convention MAP(swift::ActorIsolationErasureExpr, ActorIsolationErasureExprTag) MAP(swift::UnreachableExpr, UnreachableExprTag) - MAP(swift::UnsafeCastExpr, void) // TODO swift 6.1 + MAP(swift::UnsafeCastExpr, UnsafeCastExprTag) MAP(swift::ExplicitCastExpr, ExplicitCastExprTag) MAP(swift::CheckedCastExpr, CheckedCastExprTag) MAP(swift::ForcedCheckedCastExpr, ForcedCheckedCastExprTag) diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index 04ed47ffe92..11c2d5d450d 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -240,6 +240,7 @@ lib/codeql/swift/elements/expr/UnresolvedMemberExpr.qll 14bc154493999d866a3265d6 lib/codeql/swift/elements/expr/UnresolvedPatternExpr.qll f27ef68f5bbb2d957513efdd43fb9c77987d4f7850b050d40faf5e0ab23cf9cd d9bad310caf43eb82ca294fcb43f1aaa4046ddc8ff9d6c46f65c9a6f798d30af lib/codeql/swift/elements/expr/UnresolvedSpecializeExpr.qll 9e1b27d90419e757480d0ae369bec1f159de3c28ddf760cdf24dd30b0ec6fcf9 1aeab5e10b1c3f081c5c3ca5bd807bfc38726a7b21b7201e0a9f997572935c73 lib/codeql/swift/elements/expr/UnresolvedTypeConversionExpr.qll e259a187d70ea6b6007ebdd3659aa7e1947b2dc606642ccda27309ff74ffc3db c6a85856f82e74ed5597e381a5e4c27927eb4f01c7b588b1f4277dfb0e977521 +lib/codeql/swift/elements/expr/UnsafeCastExpr.qll 09c18a43f66432340b3212cb1933e096faf3825fa0a9abb30f7be11f170b6f97 93f35d500d67b71ed52d508ca9f7236c671f5b68a0ce6a0ee6a1a03d2b5db290 lib/codeql/swift/elements/expr/VarargExpansionExpr.qll c7d7574caaac88fd73e69e82a84ca924e078eece0fd85a476b4a831e23b425f9 27213c88f864b7f8fd73edf8951e04a5ae7a57140a387df7c03dc1544ced723b lib/codeql/swift/elements/expr/internal/AbiSafeConversionExprConstructor.qll de9d2daf68b754e783374d017116606c8cd0710dbf8989d3606939e977dc672c 63c5ddb9da56da2c9637d7a0a6d9d069f745b4c095b07c9494a0b3a7e11be95b lib/codeql/swift/elements/expr/internal/AbiSafeConversionExprImpl.qll 6b2c51a5a5dd17044c6f5510048a9a2187aac9d35a70541faa9400406e35bc1e 448c23eec2ef44bd90e6c1636e3e881ca3447198eb68b8261412f42c4995b766 @@ -425,6 +426,8 @@ lib/codeql/swift/elements/expr/internal/UnresolvedSpecializeExprConstructor.qll lib/codeql/swift/elements/expr/internal/UnresolvedSpecializeExprImpl.qll b1dc437410aa4a509ffc92cc0f63509e7bf698a52d79fc44a06230f185f22a97 a994738135b4118fadeb1a00c976772f777e7eeb4ecc0ab55e00676e0e1d507d lib/codeql/swift/elements/expr/internal/UnresolvedTypeConversionExprConstructor.qll 2d5a737ac25f4657d7fbc3be8ae927a44c01262e56fe49c161e73a7c015072b2 db3f463afb834181d618e8cc3773f0b174f17a0b29674cc8b1c3f5845c1317f9 lib/codeql/swift/elements/expr/internal/UnresolvedTypeConversionExprImpl.qll 3511bf1bea3e3cee95c0793e40000493537076d76f235bfe91866e1e0caf97ab b97de4c795e873acee89d9b87d8c58b14e05f0c09e3a0385a479638adcf32966 +lib/codeql/swift/elements/expr/internal/UnsafeCastExprConstructor.qll f8771eb8f677003fc62a2f78dcdffc46ee5510001428dde58a7e9d82746b6f97 f20eb160de27d9413a3b5d7ace406fe5f6912ad5720db85d8a12c48c71e42b35 +lib/codeql/swift/elements/expr/internal/UnsafeCastExprImpl.qll 787104ce97d702c0c3efa81a0f8416584f35c454d3b2ffe7bd0917861589612b 50496a0f3f3a9e3d5a2e6cbcd5eb16b634cf3fd5e0878bdf017678243dbfd8a0 lib/codeql/swift/elements/expr/internal/VarargExpansionExprConstructor.qll 917701083da11fce895c53d5f3e0a52b8e3142e9aacdf1d8536a4216ef377b16 b72ca103ced9cbb45f2ef9387387b8aaf3134e358ae5a03fa3ea242896954c81 lib/codeql/swift/elements/internal/AvailabilityInfoConstructor.qll 89c731f266122a3434b88dfd573d68c50b5c4fa5e13c2443c54f78e682190d1e 86beb6f684e08b6f557b7d67bc164113e9f5270c09bbe95fbd81c558d77f7f84 lib/codeql/swift/elements/internal/AvailabilitySpecImpl.qll 9ac9285e731938747c574c3f270aaead323656162bd34a6630c1babfaaf25a6a 900b2e638639f427506b2d0eb2806b6ee119ea63ea4ce44758e0c36f2ce915ac @@ -704,7 +707,7 @@ lib/codeql/swift/elements/type/internal/UnresolvedTypeImpl.qll ee1499dd568753898 lib/codeql/swift/elements/type/internal/VariadicSequenceTypeConstructor.qll fc74a5a2a2effa28ef24509b20ee4373d97cf6e8c71840121bb031c6adedf584 c9b2effc1d01c13c5e6a74a111122fa79a2f6554dda3cb016d68ba397e566ec4 lib/codeql/swift/elements/type/internal/WeakStorageTypeConstructor.qll 5fdce3716aba6318522174a2c455a63480970222ae81c732fb19c6dd3ae2d271 60ea79d6943e129deba0deccb566cf9d73f78398b0f7f0212674d91287d6b2ae lib/codeql/swift/elements/type/internal/WeakStorageTypeImpl.qll 74f79b458f3204ec2519bd654de21bc4fb6b76816bd8ca01990fe897563a1383 34e1810f74cecda5b580ed050438ae1d914b97a36b8f4e2de1c25254c0cac633 -lib/codeql/swift/elements.qll 9648ab501b413dc327513d9ed1d6e620a9eab6096e1130dc7e78cd6a2b6b549b 9648ab501b413dc327513d9ed1d6e620a9eab6096e1130dc7e78cd6a2b6b549b +lib/codeql/swift/elements.qll 24dc5e00db9aa90fbabc9d2b20b7e3ed9e1cdbc826dbda89f332a83b19054f53 24dc5e00db9aa90fbabc9d2b20b7e3ed9e1cdbc826dbda89f332a83b19054f53 lib/codeql/swift/generated/AstNode.qll 6fb80e9b230a1e3ae8193af40744f253d5cc81dc4239156924e5ab606c491efc e5c28418e9a38bde08f323a3986a199620189fc4a8a4dc8f670610a5d3d65b99 lib/codeql/swift/generated/AvailabilityInfo.qll e3a5274c43e72ff124b6988fd8be0c83a41b89337e11104150dd0ca7f51d8a11 889563791ca8d9758dbbccf64a0731c4bdbf721cad32bc6cd723f1072b6aa1de lib/codeql/swift/generated/AvailabilitySpec.qll bc64d5c690c4d18800f0a48cc76a6a9ee4f832041343666da2d8df2aae04ed7e d03bf874293ac0ab09c025f75c0f392473d47bebe3223143adcc13882a366119 @@ -721,12 +724,12 @@ lib/codeql/swift/generated/Locatable.qll 1d37fa20de71c0b9986bfd7a7c0cb82ab7bf3fd lib/codeql/swift/generated/Location.qll 5e20316c3e480ddfe632b7e88e016c19f10a67df1f6ae9c8f128755a6907d6f5 5a0af2d070bcb2ed53d6d0282bf9c60dc64c2dce89c21fdd485e9c7893c1c8fa lib/codeql/swift/generated/MacroRole.qll facf907e75490d69cd401c491215e4719324d751f40ea46c86ccf24cf3663c1f 969d8d4b44e3f1a9c193a152a4d83a303e56d2dbb871fc920c47a33f699cf018 lib/codeql/swift/generated/OtherAvailabilitySpec.qll d9feaa2a71acff3184ca389045b0a49d09156210df0e034923d715b432ad594b 046737621a8bcf69bf805afb0cff476bd15259f12f0d77fce3206dd01b31518f -lib/codeql/swift/generated/ParentChild.qll 7c9537f74a4c5a02622ce28c3de4b0ce02a7027d2e9aea9a860ece6a1e2ec340 49c1993b2a96df66903bffde78d63d8f4c68b2d604c419b20d88b63406366156 +lib/codeql/swift/generated/ParentChild.qll df9d71a00c137e89dd6a0caab75fea672fdf769ca60975d455aea85f2cb0e911 2a3495960938e3512cc10031b4c70b102c5ef8478528216fa27545b5ad37b9d7 lib/codeql/swift/generated/PlatformVersionAvailabilitySpec.qll dc17b49a90a18a8f7607adf2433bc8f0c194fa3e803aa3822f809d4d4fbd6793 be48ea9f8ae17354c8508aaed24337a9e57ce01f288fece3dcecd99776cabcec lib/codeql/swift/generated/PureSynthConstructors.qll bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 -lib/codeql/swift/generated/Raw.qll 6012194c54f8992401dffc0916b5790cdf581f18ac7b884379362dc807a52706 f9538fdfb326b715fdbc47e9e8b310df684d5a34519f751a65b3a4a75e430ce9 -lib/codeql/swift/generated/Synth.qll a14dddab40979df82d30b2d73407fe0058a803ed6e1a882cd9a6ae5ffd240526 0879d2476a42123b46eee216d4ea03523e0c04fe0b68d9a68e0046253edb1bc9 -lib/codeql/swift/generated/SynthConstructors.qll f64121911e082aa15478eb8779025cee96e97503724c02aff31741e65a894a4b f64121911e082aa15478eb8779025cee96e97503724c02aff31741e65a894a4b +lib/codeql/swift/generated/Raw.qll 105d8abf7a4e7ffa9a421e17ca8eccf348a7fcfcc77b3a92e7e49750f0020284 271868257e2f48b743fc473ef3817611c3b112542a04f6e993fc4dfe34055b07 +lib/codeql/swift/generated/Synth.qll b1ef500787c05001ff7ddd6bdb3a5812ddc0ffa815906ae2e1c3f3a2416034ea 70f264bff132ece154200e81144f52377a7c65bd200c6aefd17d283bb29b9868 +lib/codeql/swift/generated/SynthConstructors.qll 2b242b849125bae5a0d19f19265882151a19120d43cc5b51398a5d5b520facaa 2b242b849125bae5a0d19f19265882151a19120d43cc5b51398a5d5b520facaa lib/codeql/swift/generated/UnknownFile.qll 247ddf2ebb49ce5ed4bf7bf91a969ddff37de6c78d43d8affccaf7eb586e06f2 452b29f0465ef45e978ef8b647b75e5a2a1e53f2a568fc003bc8f52f73b3fa4d lib/codeql/swift/generated/UnknownLocation.qll d871000b4f53ffca4f67ea23ca5626e5dcce125d62a4d4b9969e08cc974af6fc b05971d7774e60790362fb810fb7086314f40a2de747b8cb1bc823ec6494a4dd lib/codeql/swift/generated/UnspecifiedElement.qll d9ad4ba1ffff90cc465e8ba0dea8c4e8ba67dce5529b53b63ab6dc8e13c85e67 025218e1fee8ee382b63ad38009dfec73dc604d2ba80b9ad956c7c96eeed7022 @@ -906,6 +909,7 @@ lib/codeql/swift/generated/expr/UnresolvedMemberExpr.qll 64a64c105b9b8b7bc0e1619 lib/codeql/swift/generated/expr/UnresolvedPatternExpr.qll f197e1f19aa3b7641df8e9a7fcfe9f474282aadcb31172db8d76d2eb2449f7e1 5490ad6989b86f4f62657553e67d468bcbf60c1091bdac7fe0948bf6a22731fb lib/codeql/swift/generated/expr/UnresolvedSpecializeExpr.qll 5b6d9a88439442624051af347514b0a9fd5e932a440979778cf4072f71317770 a8f10642376f9ffa7f7cc73ca81e1a1f5905778a2752f20360f8a84f333dbfdd lib/codeql/swift/generated/expr/UnresolvedTypeConversionExpr.qll f30db08dbb5fce2bf6149238f608c62b51079c3694ed80d15ddcbecb2af75346 71b60e93c67f7b66468400ce9cc8714c9ead1bacaa7ce27e9df94542b41318f9 +lib/codeql/swift/generated/expr/UnsafeCastExpr.qll ec430464e1b6253dfcf0d17c08a01efae318b3f0c8beb7c977209504ccc2cc4f 48d5a80c96dfa71e091be2ce13ab7123997a37f8bcbaa6bde070493286f6b7f0 lib/codeql/swift/generated/expr/VarargExpansionExpr.qll 3f382a545ef79ef5cd7eadf397f01524769d5fa0ee6410f1d92ff6b9985a99ff ffe8d0caec0226a13599de646f9e0c5f0e1af3c2b7ed480b327f2d51850e9e32 lib/codeql/swift/generated/pattern/AnyPattern.qll af808c11b81a388f7d35bd98b6abf0fef45a1e1ec850cad16abb754c97c4da82 5c6cb800d4f026792a49fb84a3404f0797e599425bc54f474e3df6a948c18cfe lib/codeql/swift/generated/pattern/BindingPattern.qll ec7a78c6f2c2e56494d87c8865da2028cc65875edc516fdbdbde8f2fc80a28e7 df9988a745548d8920a78c0aca6692b24e6dad19251420208d050ee4eb39eee3 diff --git a/swift/ql/.gitattributes b/swift/ql/.gitattributes index 32c1865ff30..22fb1d0111b 100644 --- a/swift/ql/.gitattributes +++ b/swift/ql/.gitattributes @@ -242,6 +242,7 @@ /lib/codeql/swift/elements/expr/UnresolvedPatternExpr.qll linguist-generated /lib/codeql/swift/elements/expr/UnresolvedSpecializeExpr.qll linguist-generated /lib/codeql/swift/elements/expr/UnresolvedTypeConversionExpr.qll linguist-generated +/lib/codeql/swift/elements/expr/UnsafeCastExpr.qll linguist-generated /lib/codeql/swift/elements/expr/VarargExpansionExpr.qll linguist-generated /lib/codeql/swift/elements/expr/internal/AbiSafeConversionExprConstructor.qll linguist-generated /lib/codeql/swift/elements/expr/internal/AbiSafeConversionExprImpl.qll linguist-generated @@ -427,6 +428,8 @@ /lib/codeql/swift/elements/expr/internal/UnresolvedSpecializeExprImpl.qll linguist-generated /lib/codeql/swift/elements/expr/internal/UnresolvedTypeConversionExprConstructor.qll linguist-generated /lib/codeql/swift/elements/expr/internal/UnresolvedTypeConversionExprImpl.qll linguist-generated +/lib/codeql/swift/elements/expr/internal/UnsafeCastExprConstructor.qll linguist-generated +/lib/codeql/swift/elements/expr/internal/UnsafeCastExprImpl.qll linguist-generated /lib/codeql/swift/elements/expr/internal/VarargExpansionExprConstructor.qll linguist-generated /lib/codeql/swift/elements/internal/AvailabilityInfoConstructor.qll linguist-generated /lib/codeql/swift/elements/internal/AvailabilitySpecImpl.qll linguist-generated @@ -908,6 +911,7 @@ /lib/codeql/swift/generated/expr/UnresolvedPatternExpr.qll linguist-generated /lib/codeql/swift/generated/expr/UnresolvedSpecializeExpr.qll linguist-generated /lib/codeql/swift/generated/expr/UnresolvedTypeConversionExpr.qll linguist-generated +/lib/codeql/swift/generated/expr/UnsafeCastExpr.qll linguist-generated /lib/codeql/swift/generated/expr/VarargExpansionExpr.qll linguist-generated /lib/codeql/swift/generated/pattern/AnyPattern.qll linguist-generated /lib/codeql/swift/generated/pattern/BindingPattern.qll linguist-generated diff --git a/swift/ql/lib/codeql/swift/elements.qll b/swift/ql/lib/codeql/swift/elements.qll index 53d630d9f19..a8d352e0ead 100644 --- a/swift/ql/lib/codeql/swift/elements.qll +++ b/swift/ql/lib/codeql/swift/elements.qll @@ -195,6 +195,7 @@ import codeql.swift.elements.expr.UnresolvedMemberExpr import codeql.swift.elements.expr.UnresolvedPatternExpr import codeql.swift.elements.expr.UnresolvedSpecializeExpr import codeql.swift.elements.expr.UnresolvedTypeConversionExpr +import codeql.swift.elements.expr.UnsafeCastExpr import codeql.swift.elements.expr.VarargExpansionExpr import codeql.swift.elements.pattern.AnyPattern import codeql.swift.elements.pattern.BindingPattern diff --git a/swift/ql/lib/codeql/swift/elements/expr/UnsafeCastExpr.qll b/swift/ql/lib/codeql/swift/elements/expr/UnsafeCastExpr.qll new file mode 100644 index 00000000000..162e5d08589 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/expr/UnsafeCastExpr.qll @@ -0,0 +1,12 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the public class `UnsafeCastExpr`. + */ + +private import internal.UnsafeCastExprImpl +import codeql.swift.elements.expr.ImplicitConversionExpr + +/** + * A conversion that performs an unsafe bitcast. + */ +final class UnsafeCastExpr = Impl::UnsafeCastExpr; diff --git a/swift/ql/lib/codeql/swift/elements/expr/internal/UnsafeCastExprConstructor.qll b/swift/ql/lib/codeql/swift/elements/expr/internal/UnsafeCastExprConstructor.qll new file mode 100644 index 00000000000..892f3400380 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/expr/internal/UnsafeCastExprConstructor.qll @@ -0,0 +1,14 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +/** + * This module defines the hook used internally to tweak the characteristic predicate of + * `UnsafeCastExpr` synthesized instances. + * INTERNAL: Do not use. + */ + +private import codeql.swift.generated.Raw + +/** + * The characteristic predicate of `UnsafeCastExpr` synthesized instances. + * INTERNAL: Do not use. + */ +predicate constructUnsafeCastExpr(Raw::UnsafeCastExpr id) { any() } diff --git a/swift/ql/lib/codeql/swift/elements/expr/internal/UnsafeCastExprImpl.qll b/swift/ql/lib/codeql/swift/elements/expr/internal/UnsafeCastExprImpl.qll new file mode 100644 index 00000000000..89a010f5752 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/expr/internal/UnsafeCastExprImpl.qll @@ -0,0 +1,19 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +/** + * This module provides a hand-modifiable wrapper around the generated class `UnsafeCastExpr`. + * + * INTERNAL: Do not use. + */ + +private import codeql.swift.generated.expr.UnsafeCastExpr + +/** + * INTERNAL: This module contains the customizable definition of `UnsafeCastExpr` and should not + * be referenced directly. + */ +module Impl { + /** + * A conversion that performs an unsafe bitcast. + */ + class UnsafeCastExpr extends Generated::UnsafeCastExpr { } +} diff --git a/swift/ql/lib/codeql/swift/generated/ParentChild.qll b/swift/ql/lib/codeql/swift/generated/ParentChild.qll index 2925620f24f..30801ade8d5 100644 --- a/swift/ql/lib/codeql/swift/generated/ParentChild.qll +++ b/swift/ql/lib/codeql/swift/generated/ParentChild.qll @@ -3169,6 +3169,23 @@ private module Impl { ) } + private Element getImmediateChildOfUnsafeCastExpr( + UnsafeCastExpr e, int index, string partialPredicateCall + ) { + exists(int b, int bImplicitConversionExpr, int n | + b = 0 and + bImplicitConversionExpr = + b + 1 + + max(int i | i = -1 or exists(getImmediateChildOfImplicitConversionExpr(e, i, _)) | i) and + n = bImplicitConversionExpr and + ( + none() + or + result = getImmediateChildOfImplicitConversionExpr(e, index - b, partialPredicateCall) + ) + ) + } + private Element getImmediateChildOfBooleanLiteralExpr( BooleanLiteralExpr e, int index, string partialPredicateCall ) { @@ -5493,6 +5510,8 @@ private module Impl { or result = getImmediateChildOfUnresolvedTypeConversionExpr(e, index, partialAccessor) or + result = getImmediateChildOfUnsafeCastExpr(e, index, partialAccessor) + or result = getImmediateChildOfBooleanLiteralExpr(e, index, partialAccessor) or result = getImmediateChildOfConditionalCheckedCastExpr(e, index, partialAccessor) diff --git a/swift/ql/lib/codeql/swift/generated/Raw.qll b/swift/ql/lib/codeql/swift/generated/Raw.qll index c59c831a1ee..0ebc95d2084 100644 --- a/swift/ql/lib/codeql/swift/generated/Raw.qll +++ b/swift/ql/lib/codeql/swift/generated/Raw.qll @@ -2488,6 +2488,14 @@ module Raw { override string toString() { result = "UnresolvedTypeConversionExpr" } } + /** + * INTERNAL: Do not use. + * A conversion that performs an unsafe bitcast. + */ + class UnsafeCastExpr extends @unsafe_cast_expr, ImplicitConversionExpr { + override string toString() { result = "UnsafeCastExpr" } + } + /** * INTERNAL: Do not use. */ diff --git a/swift/ql/lib/codeql/swift/generated/Synth.qll b/swift/ql/lib/codeql/swift/generated/Synth.qll index ce6eca080af..83a94b96505 100644 --- a/swift/ql/lib/codeql/swift/generated/Synth.qll +++ b/swift/ql/lib/codeql/swift/generated/Synth.qll @@ -716,6 +716,10 @@ module Synth { TUnresolvedTypeConversionExpr(Raw::UnresolvedTypeConversionExpr id) { constructUnresolvedTypeConversionExpr(id) } or + /** + * INTERNAL: Do not use. + */ + TUnsafeCastExpr(Raw::UnsafeCastExpr id) { constructUnsafeCastExpr(id) } or /** * INTERNAL: Do not use. */ @@ -1288,7 +1292,7 @@ module Synth { TLinearToDifferentiableFunctionExpr or TLoadExpr or TMetatypeConversionExpr or TPointerToPointerExpr or TProtocolMetatypeToObjectExpr or TStringToPointerExpr or TUnderlyingToOpaqueExpr or TUnevaluatedInstanceExpr or TUnreachableExpr or - TUnresolvedTypeConversionExpr; + TUnresolvedTypeConversionExpr or TUnsafeCastExpr; /** * INTERNAL: Do not use. @@ -2561,6 +2565,12 @@ module Synth { result = TUnresolvedTypeConversionExpr(e) } + /** + * INTERNAL: Do not use. + * Converts a raw element to a synthesized `TUnsafeCastExpr`, if possible. + */ + TUnsafeCastExpr convertUnsafeCastExprFromRaw(Raw::Element e) { result = TUnsafeCastExpr(e) } + /** * INTERNAL: Do not use. * Converts a raw element to a synthesized `TVarargExpansionExpr`, if possible. @@ -3765,6 +3775,8 @@ module Synth { result = convertUnreachableExprFromRaw(e) or result = convertUnresolvedTypeConversionExprFromRaw(e) + or + result = convertUnsafeCastExprFromRaw(e) } /** @@ -5269,6 +5281,12 @@ module Synth { e = TUnresolvedTypeConversionExpr(result) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TUnsafeCastExpr` to a raw DB element, if possible. + */ + Raw::Element convertUnsafeCastExprToRaw(TUnsafeCastExpr e) { e = TUnsafeCastExpr(result) } + /** * INTERNAL: Do not use. * Converts a synthesized `TVarargExpansionExpr` to a raw DB element, if possible. @@ -6473,6 +6491,8 @@ module Synth { result = convertUnreachableExprToRaw(e) or result = convertUnresolvedTypeConversionExprToRaw(e) + or + result = convertUnsafeCastExprToRaw(e) } /** diff --git a/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll b/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll index 1da3dcbc013..474420586ca 100644 --- a/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll +++ b/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll @@ -162,6 +162,7 @@ import codeql.swift.elements.expr.internal.UnresolvedMemberExprConstructor import codeql.swift.elements.expr.internal.UnresolvedPatternExprConstructor import codeql.swift.elements.expr.internal.UnresolvedSpecializeExprConstructor import codeql.swift.elements.expr.internal.UnresolvedTypeConversionExprConstructor +import codeql.swift.elements.expr.internal.UnsafeCastExprConstructor import codeql.swift.elements.expr.internal.VarargExpansionExprConstructor import codeql.swift.elements.pattern.internal.AnyPatternConstructor import codeql.swift.elements.pattern.internal.BindingPatternConstructor diff --git a/swift/ql/lib/codeql/swift/generated/expr/UnsafeCastExpr.qll b/swift/ql/lib/codeql/swift/generated/expr/UnsafeCastExpr.qll new file mode 100644 index 00000000000..d21ba383f14 --- /dev/null +++ b/swift/ql/lib/codeql/swift/generated/expr/UnsafeCastExpr.qll @@ -0,0 +1,26 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the generated definition of `UnsafeCastExpr`. + * INTERNAL: Do not import directly. + */ + +private import codeql.swift.generated.Synth +private import codeql.swift.generated.Raw +import codeql.swift.elements.expr.internal.ImplicitConversionExprImpl::Impl as ImplicitConversionExprImpl + +/** + * INTERNAL: This module contains the fully generated definition of `UnsafeCastExpr` and should not + * be referenced directly. + */ +module Generated { + /** + * A conversion that performs an unsafe bitcast. + * INTERNAL: Do not reference the `Generated::UnsafeCastExpr` class directly. + * Use the subclass `UnsafeCastExpr`, where the following predicates are available. + */ + class UnsafeCastExpr extends Synth::TUnsafeCastExpr, + ImplicitConversionExprImpl::ImplicitConversionExpr + { + override string getAPrimaryQlClass() { result = "UnsafeCastExpr" } + } +} diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 4dd3d5ca8a8..3d88fb615e8 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -1067,6 +1067,7 @@ if_exprs( //dir=expr | @unevaluated_instance_expr | @unreachable_expr | @unresolved_type_conversion_expr +| @unsafe_cast_expr ; #keyset[id] @@ -1656,6 +1657,10 @@ unresolved_type_conversion_exprs( //dir=expr unique int id: @unresolved_type_conversion_expr ); +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + boolean_literal_exprs( //dir=expr unique int id: @boolean_literal_expr, boolean value: boolean ref diff --git a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected index 9baeaf41241..ac122e39f9f 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected @@ -3,3 +3,5 @@ | implicit_conversions.swift:5:25:5:25 | (any Equatable) ... | ErasureExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:5:25:5:25 | 42 | | implicit_conversions.swift:12:3:12:5 | (@lvalue (() -> Void)?) ... | AbiSafeConversionExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:12:3:12:5 | .b | | implicit_conversions.swift:12:9:12:10 | ((() -> Void)?) ... | InjectIntoOptionalExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:12:9:12:10 | { ... } | +| implicit_conversions.swift:24:3:24:5 | (Array) ... | UnsafeCastExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | +| implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | LoadExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:24:3:24:5 | .a | diff --git a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.expected index e57454212df..8254ef3cc8a 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.expected +++ b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.expected @@ -3,3 +3,5 @@ | implicit_conversions.swift:5:25:5:25 | (any Equatable) ... | any Equatable | | implicit_conversions.swift:12:3:12:5 | (@lvalue (() -> Void)?) ... | @lvalue (() -> Void)? | | implicit_conversions.swift:12:9:12:10 | ((() -> Void)?) ... | (() -> Void)? | +| implicit_conversions.swift:24:3:24:5 | (Array) ... | Array | +| implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | [any Sendable] | diff --git a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/implicit_conversions.swift b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/implicit_conversions.swift index 6bd2b4b3fb1..24f0a6cff19 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/implicit_conversions.swift +++ b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/implicit_conversions.swift @@ -12,3 +12,14 @@ func g(_ a: A) { a.b = {} } +class B { + @preconcurrency var a: [any Sendable] = [] +} + +extension Array where Element == Any { + func h() {} +} + +func i(b: B) { + b.a.h() +} diff --git a/swift/schema.py b/swift/schema.py index 78750ae2baa..4e11bc7a33d 100644 --- a/swift/schema.py +++ b/swift/schema.py @@ -1463,3 +1463,9 @@ class UnreachableExpr(ImplicitConversionExpr): """ A conversion from the uninhabited type to any other type. It's never evaluated. """ + + +class UnsafeCastExpr(ImplicitConversionExpr): + """ + A conversion that performs an unsafe bitcast. + """ From c74fca929a277c4097e6daf9575ef59294b319d4 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 1 May 2025 15:49:56 +0200 Subject: [PATCH 237/656] Swift: Support `TypeValueExpr` and `IntegerType` --- swift/extractor/infra/SwiftTagTraits.h | 4 +- swift/extractor/mangler/SwiftMangler.cpp | 3 ++ .../extractor/translators/ExprTranslator.cpp | 6 +++ swift/extractor/translators/ExprTranslator.h | 1 + .../extractor/translators/TypeTranslator.cpp | 6 +++ swift/extractor/translators/TypeTranslator.h | 1 + swift/ql/.generated.list | 21 ++++++-- swift/ql/.gitattributes | 11 ++++ swift/ql/lib/codeql/swift/elements.qll | 2 + .../swift/elements/expr/TypeValueExpr.qll | 10 ++++ .../internal/TypeValueExprConstructor.qll | 14 +++++ .../expr/internal/TypeValueExprImpl.qll | 16 ++++++ .../swift/elements/type/IntegerType.qll | 9 ++++ .../type/internal/IntegerTypeConstructor.qll | 14 +++++ .../type/internal/IntegerTypeImpl.qll | 16 ++++++ .../codeql/swift/generated/ParentChild.qll | 37 +++++++++++++ swift/ql/lib/codeql/swift/generated/Raw.qll | 24 +++++++++ swift/ql/lib/codeql/swift/generated/Synth.qll | 52 ++++++++++++++++--- .../swift/generated/SynthConstructors.qll | 2 + .../swift/generated/expr/TypeValueExpr.qll | 34 ++++++++++++ .../swift/generated/type/IntegerType.qll | 30 +++++++++++ swift/ql/lib/swift.dbscheme | 12 +++++ swift/ql/test/TestUtils.qll | 2 + .../expr/TypeValueExpr/TypeValueExpr.expected | 2 + .../expr/TypeValueExpr/TypeValueExpr.ql | 11 ++++ .../TypeValueExpr_getType.expected | 2 + .../TypeValueExpr/TypeValueExpr_getType.ql | 7 +++ .../expr/TypeValueExpr/type_value_exprs.swift | 8 +++ .../type/IntegerType/IntegerType.expected | 2 + .../generated/type/IntegerType/IntegerType.ql | 12 +++++ .../type/IntegerType/integer_type.swift | 9 ++++ swift/schema.py | 6 +++ 32 files changed, 373 insertions(+), 13 deletions(-) create mode 100644 swift/ql/lib/codeql/swift/elements/expr/TypeValueExpr.qll create mode 100644 swift/ql/lib/codeql/swift/elements/expr/internal/TypeValueExprConstructor.qll create mode 100644 swift/ql/lib/codeql/swift/elements/expr/internal/TypeValueExprImpl.qll create mode 100644 swift/ql/lib/codeql/swift/elements/type/IntegerType.qll create mode 100644 swift/ql/lib/codeql/swift/elements/type/internal/IntegerTypeConstructor.qll create mode 100644 swift/ql/lib/codeql/swift/elements/type/internal/IntegerTypeImpl.qll create mode 100644 swift/ql/lib/codeql/swift/generated/expr/TypeValueExpr.qll create mode 100644 swift/ql/lib/codeql/swift/generated/type/IntegerType.qll create mode 100644 swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.expected create mode 100644 swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql create mode 100644 swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/type_value_exprs.swift create mode 100644 swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected create mode 100644 swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.ql create mode 100644 swift/ql/test/extractor-tests/generated/type/IntegerType/integer_type.swift diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index 3bc1c511fa1..285f48cc940 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -205,7 +205,7 @@ MAP(swift::Expr, ExprTag) MAP(swift::SingleValueStmtExpr, SingleValueStmtExprTag) MAP(swift::ExtractFunctionIsolationExpr, ExtractFunctionIsolationExprTag) MAP(swift::CurrentContextIsolationExpr, CurrentContextIsolationExprTag) - MAP(swift::TypeValueExpr, void) // TODO swift 6.1 + MAP(swift::TypeValueExpr, TypeValueExprTag) MAP(swift::Decl, DeclTag) MAP(swift::ValueDecl, ValueDeclTag) MAP(swift::TypeDecl, TypeDeclTag) @@ -339,7 +339,7 @@ MAP(swift::TypeBase, TypeTag) MAP(swift::PackElementType, PackElementTypeTag) MAP(swift::TypeVariableType, void) // created during type checking and only used for constraint checking MAP(swift::ErrorUnionType, void) // created during type checking and only used for constraint checking - MAP(swift::IntegerType, void) // TODO swift 6.1 + MAP(swift::IntegerType, IntegerTypeTag) MAP(swift::SugarType, SugarTypeTag) MAP(swift::TypeAliasType, TypeAliasTypeTag) MAP(swift::SyntaxSugarType, SyntaxSugarTypeTag) diff --git a/swift/extractor/mangler/SwiftMangler.cpp b/swift/extractor/mangler/SwiftMangler.cpp index 6357a58beca..7e1f1f0bfe8 100644 --- a/swift/extractor/mangler/SwiftMangler.cpp +++ b/swift/extractor/mangler/SwiftMangler.cpp @@ -285,6 +285,9 @@ SwiftMangledName SwiftMangler::visitGenericTypeParamType(const swift::GenericTyp if (type->isParameterPack()) { ret << "each_"; } + if (type->isValue()) { + ret << "val_"; + } if (auto decl = type->getDecl()) { ret << fetch(decl); } else { diff --git a/swift/extractor/translators/ExprTranslator.cpp b/swift/extractor/translators/ExprTranslator.cpp index 0f7d5d0c915..30cca659a8c 100644 --- a/swift/extractor/translators/ExprTranslator.cpp +++ b/swift/extractor/translators/ExprTranslator.cpp @@ -689,4 +689,10 @@ codeql::CurrentContextIsolationExpr ExprTranslator::translateCurrentContextIsola return entry; } +codeql::TypeValueExpr ExprTranslator::translateTypeValueExpr(const swift::TypeValueExpr& expr) { + auto entry = createExprEntry(expr); + entry.type_repr = dispatcher.fetchLabel(expr.getParamTypeRepr()); + return entry; +} + } // namespace codeql diff --git a/swift/extractor/translators/ExprTranslator.h b/swift/extractor/translators/ExprTranslator.h index ff3db137b3b..525f1fda6c1 100644 --- a/swift/extractor/translators/ExprTranslator.h +++ b/swift/extractor/translators/ExprTranslator.h @@ -129,6 +129,7 @@ class ExprTranslator : public AstTranslatorBase { const swift::ExtractFunctionIsolationExpr& expr); codeql::CurrentContextIsolationExpr translateCurrentContextIsolationExpr( const swift::CurrentContextIsolationExpr& expr); + codeql::TypeValueExpr translateTypeValueExpr(const swift::TypeValueExpr& expr); private: void fillClosureExpr(const swift::AbstractClosureExpr& expr, codeql::ClosureExpr& entry); diff --git a/swift/extractor/translators/TypeTranslator.cpp b/swift/extractor/translators/TypeTranslator.cpp index 3404bb7d95a..cd471449827 100644 --- a/swift/extractor/translators/TypeTranslator.cpp +++ b/swift/extractor/translators/TypeTranslator.cpp @@ -297,4 +297,10 @@ codeql::PackExpansionType TypeTranslator::translatePackExpansionType( return entry; } +codeql::IntegerType TypeTranslator::translateIntegerType(const swift::IntegerType& type) { + auto entry = createTypeEntry(type); + entry.value = type.getDigitsText(); + return entry; +} + } // namespace codeql diff --git a/swift/extractor/translators/TypeTranslator.h b/swift/extractor/translators/TypeTranslator.h index 02eb24632f4..404f7214bea 100644 --- a/swift/extractor/translators/TypeTranslator.h +++ b/swift/extractor/translators/TypeTranslator.h @@ -82,6 +82,7 @@ class TypeTranslator : public TypeTranslatorBase { codeql::PackType translatePackType(const swift::PackType& type); codeql::PackElementType translatePackElementType(const swift::PackElementType& type); codeql::PackExpansionType translatePackExpansionType(const swift::PackExpansionType& type); + codeql::IntegerType translateIntegerType(const swift::IntegerType& type); private: void fillType(const swift::TypeBase& type, codeql::Type& entry); diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index 11c2d5d450d..fcec2a9fbe2 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -230,6 +230,7 @@ lib/codeql/swift/elements/expr/TryExpr.qll 524d52e85f893ed735463f2ac8ebff1c37ce1 lib/codeql/swift/elements/expr/TupleElementExpr.qll 32bd4e870958e0fe8a06626618379d5d081e6b6d1d2da35954ff8c6e1cac5891 1036d0a774f16dfdfe223181bf86a7fb3e5a65495f13a584af4419c769b5ca93 lib/codeql/swift/elements/expr/TupleExpr.qll 11efe0f2737b561a392bbd684c7c1cc2e29bed3273597e64933608d8a4e3a736 f02537adb1271e4b84c44eb001ccb7b7c70f13fc13908354fd4361ed3720d06b lib/codeql/swift/elements/expr/TypeExpr.qll c3f7272b77aadd8a4a0e5c7e3876bba6bba45343415c8ce96de26e1e898d11c0 91cd440b768e4d9aa60a165ddb62ecdcad85eb4a676ab0d60ca8777e753bffc7 +lib/codeql/swift/elements/expr/TypeValueExpr.qll 8a8d061b091594b758fb7d0b708337b639b7d76b1f63bd860e3e4466f268ba3f 7722a6668b3e382e32ef0cc5bbb8c79c7de9a618c8822957e5f48b45770d0af3 lib/codeql/swift/elements/expr/UnderlyingToOpaqueExpr.qll f319daff97d13a5cacf2efcd1f2b77e58ec9b9a30413ddb30cc0333197cbef9f 9c6a97a66a452a6167b26f48b0f31a42e2c528fcd30e76c9f4dd146f6609b5d3 lib/codeql/swift/elements/expr/UnevaluatedInstanceExpr.qll 7eca15f753e81d99a275ca1d29986d5209d8ffea4034746945227fedc1b74c38 714c9a7a09f525187f53a4c9599a141a32ec6071c405c2a425dc2cfb6f2457e6 lib/codeql/swift/elements/expr/UnreachableExpr.qll 930822d66d99422603725161f55fec7b861ef33aa8fe57afbdbea2a68a764fcb e8005f5ac66a97e614f3792e8053b0fb6d6bb1f99bc1d0f7d0d0b41e703efe9c @@ -408,6 +409,8 @@ lib/codeql/swift/elements/expr/internal/TryExprConstructor.qll 594b8505862487212 lib/codeql/swift/elements/expr/internal/TupleElementExprConstructor.qll e9d0f5b77adcdfad3e4f3aad8674dd86b86d81bc4aca534a6a30172364d5ce81 ccac3b0ae4ebc028a9cb58f6f71a07330fb235180109c1f72ddbb10992af976c lib/codeql/swift/elements/expr/internal/TupleExprConstructor.qll 14c402dd2c9dc350270d406c8d71b4a46080fd321a60b49e7eb73f46dc371d07 165527b92b2302e098002cf888254a8f4af208cd3aa8f441c740b59ac50ddc15 lib/codeql/swift/elements/expr/internal/TypeExprConstructor.qll 8e23bd56763001fa82b9642c36c54785fd0a544c8eb9175fd12fd5b8053a039c 3388ed62f69e5d45a5d6753400cae3532b1da915186b9bf5d0d29c9cb0e71e8c +lib/codeql/swift/elements/expr/internal/TypeValueExprConstructor.qll dd3b0f5a05a758fce4cdbd4665077b18afd1a76079b5c99ca8be18b1dc2fcced b8b3a648919cbc98b6ad8d973a4e5745cc03026dafeeba2614e6995630e18d6a +lib/codeql/swift/elements/expr/internal/TypeValueExprImpl.qll fe6ba98379db2f664ea34457f8b808881eaf2639b659f1accf52ca2642e5ec02 86df96c256cc924e108241fffe4bd152c61171bc012b13f10d6bbd308df12446 lib/codeql/swift/elements/expr/internal/UnderlyingToOpaqueExprConstructor.qll 8b763964bdda1af1971fa737980780d7a1b57afe37cafc6edc594bedd767725f 0485956adfc2e9a31aeeef1c8ed1d53781967445e3ea0f76c843fd48e33f021a lib/codeql/swift/elements/expr/internal/UnderlyingToOpaqueExprImpl.qll cf2637b44a96fce2d8e618469692305181490a28f3b2698b6f9db2d58e7c474d 9b062defb7c19e217bea6e5bd65ccf28e1ff25fb1e784405eb92406806a3349c lib/codeql/swift/elements/expr/internal/UnevaluatedInstanceExprConstructor.qll 4560f4737cb47512b8348fd2a37599227df4a05bfad84873f6666d121a524e0a b49bfdfa550330bab087c5a6b7a3885fd22360e557adf984ce7a35534d882510 @@ -557,6 +560,7 @@ lib/codeql/swift/elements/type/FunctionType.qll 1a64eb24e8baa74ef2a8e4451f97442a lib/codeql/swift/elements/type/GenericFunctionType.qll 8df1db2785c4e6b88f9af13eb7ba473f91459f57d19c4d706847ac6e3a02d64a 186efec4c23c372f9d9f7038d4b5a36f9c3184564e5b6899d2e467864977dd89 lib/codeql/swift/elements/type/GenericTypeParamType.qll d75c865295501f7efe27399ce93b30f6a4a217ed207e7227a5d9870cf536ad5f 1a764963700b872c8ea7afd586abbc0dadda68366555baefa6737d87b701a73f lib/codeql/swift/elements/type/InOutType.qll 3ff69b884d2604f66290b188892f1d9d4321bf77a20bcda2ce5cb69e565b0cfb 3cd2b06bc606d84b1d73b8fcd2aea4d49aed0c8b98902b44dd6f19d298db7f9d +lib/codeql/swift/elements/type/IntegerType.qll 118acea4a849506aeddd5df92e9f134bf611f8c08cb44e18dc56259df1c98e5f 6801c067c63e310f28fed70a7c1ed87d08be6b7070a7ec677517a93b6eab0c3f lib/codeql/swift/elements/type/LValueType.qll e1e53b1467f7b4ff77a812ae9cd8ce151cfc21443a4da14319aee390c081775c 42f5a39fb2c1e5dad3fef6db56430c6063cb04b1ba9c1f2b9c68356aef6aef1c lib/codeql/swift/elements/type/LocalArchetypeType.qll 449ff6d721a70a0f8f7a8e1604471513af1523bad6efcc49820154e4d42a426b 1121b807f15d442b708bb614b684ad3d0581c787bae4a16999b8dd7da5103ab6 lib/codeql/swift/elements/type/MetatypeType.qll 9a0b15d97d67edfd68221903c65d1537ffd9270630b751528e3c97c504ab9472 aeb2263f4d49f71f529b467f4505605f42be5f48ae52c44b9041eea69fb4e3eb @@ -655,6 +659,8 @@ lib/codeql/swift/elements/type/internal/GenericTypeParamTypeConstructor.qll b126 lib/codeql/swift/elements/type/internal/GenericTypeParamTypeImpl.qll efca259897a044fc967341a9fdb39497fc5e9bcb0b4ba33fa76cb926b98b3eb7 aaa621c691813a2f70f4071e3592d7760cef319904209770442ca0d0583f65a1 lib/codeql/swift/elements/type/internal/InOutTypeConstructor.qll 40550fd07551bc7c1692e08f1cb0692defca613c3c6403719efc5998eb1f1bfd 775f16224a455e336da239a179f84581b345803b9576aca119aeb3eef583d739 lib/codeql/swift/elements/type/internal/InOutTypeImpl.qll 28fc2931a424f551107b0ee49663d5d5307146c725353c5e484f0dd289f93dc0 ff12e91e30ee53bb8acdcf9e31261b6b1b0ae966babb4eacacb344c22aa1cb6e +lib/codeql/swift/elements/type/internal/IntegerTypeConstructor.qll 39e33225066f7162309f888723f81893703ee0daba68f192e3277f922060160b 08903e4d0bc8889761d016d6b6c4b7f1bd061a08c97e2a151b59cc0400ea2199 +lib/codeql/swift/elements/type/internal/IntegerTypeImpl.qll ba8e6e972dcea4dbe937083c819c5fd9eb49ba4b6176e040ce65d36a95fe31bd 88064b52d9430b67edd62ed37426f5adc8f6d80722370340d147b0a4ca90f70c lib/codeql/swift/elements/type/internal/LValueTypeConstructor.qll e3ab6ebb6191a2553bd4a483067acf7131862bc7235af2da74c35e2250300da8 cfa65d0f22416408ee1e5e5af440166fe5f5b39ae9bf1b9ae92bd9f9f2954b76 lib/codeql/swift/elements/type/internal/LocalArchetypeTypeImpl.qll 8170baafe8e2845a3f7f11894244c6b1cfbeadf7d3c86de676fe17deec68494c e72508db440afe58c2da26529c362f1f7eeb6f360424f62c7f6cd841c4a6f3bd lib/codeql/swift/elements/type/internal/MetatypeTypeConstructor.qll 7011a1307524477b7e3b43e2efb2ebcbdc7fec258455c95d3c2525cb8857bf3c b56938e2d9cd814b2fa3de569f091f42e716b399e73e024e405eb211f65a944c @@ -707,7 +713,7 @@ lib/codeql/swift/elements/type/internal/UnresolvedTypeImpl.qll ee1499dd568753898 lib/codeql/swift/elements/type/internal/VariadicSequenceTypeConstructor.qll fc74a5a2a2effa28ef24509b20ee4373d97cf6e8c71840121bb031c6adedf584 c9b2effc1d01c13c5e6a74a111122fa79a2f6554dda3cb016d68ba397e566ec4 lib/codeql/swift/elements/type/internal/WeakStorageTypeConstructor.qll 5fdce3716aba6318522174a2c455a63480970222ae81c732fb19c6dd3ae2d271 60ea79d6943e129deba0deccb566cf9d73f78398b0f7f0212674d91287d6b2ae lib/codeql/swift/elements/type/internal/WeakStorageTypeImpl.qll 74f79b458f3204ec2519bd654de21bc4fb6b76816bd8ca01990fe897563a1383 34e1810f74cecda5b580ed050438ae1d914b97a36b8f4e2de1c25254c0cac633 -lib/codeql/swift/elements.qll 24dc5e00db9aa90fbabc9d2b20b7e3ed9e1cdbc826dbda89f332a83b19054f53 24dc5e00db9aa90fbabc9d2b20b7e3ed9e1cdbc826dbda89f332a83b19054f53 +lib/codeql/swift/elements.qll 67832d269392e0c8226bd03918be9b3e4cf11213e54dd3acfe153dd8f8cd33c7 67832d269392e0c8226bd03918be9b3e4cf11213e54dd3acfe153dd8f8cd33c7 lib/codeql/swift/generated/AstNode.qll 6fb80e9b230a1e3ae8193af40744f253d5cc81dc4239156924e5ab606c491efc e5c28418e9a38bde08f323a3986a199620189fc4a8a4dc8f670610a5d3d65b99 lib/codeql/swift/generated/AvailabilityInfo.qll e3a5274c43e72ff124b6988fd8be0c83a41b89337e11104150dd0ca7f51d8a11 889563791ca8d9758dbbccf64a0731c4bdbf721cad32bc6cd723f1072b6aa1de lib/codeql/swift/generated/AvailabilitySpec.qll bc64d5c690c4d18800f0a48cc76a6a9ee4f832041343666da2d8df2aae04ed7e d03bf874293ac0ab09c025f75c0f392473d47bebe3223143adcc13882a366119 @@ -724,12 +730,12 @@ lib/codeql/swift/generated/Locatable.qll 1d37fa20de71c0b9986bfd7a7c0cb82ab7bf3fd lib/codeql/swift/generated/Location.qll 5e20316c3e480ddfe632b7e88e016c19f10a67df1f6ae9c8f128755a6907d6f5 5a0af2d070bcb2ed53d6d0282bf9c60dc64c2dce89c21fdd485e9c7893c1c8fa lib/codeql/swift/generated/MacroRole.qll facf907e75490d69cd401c491215e4719324d751f40ea46c86ccf24cf3663c1f 969d8d4b44e3f1a9c193a152a4d83a303e56d2dbb871fc920c47a33f699cf018 lib/codeql/swift/generated/OtherAvailabilitySpec.qll d9feaa2a71acff3184ca389045b0a49d09156210df0e034923d715b432ad594b 046737621a8bcf69bf805afb0cff476bd15259f12f0d77fce3206dd01b31518f -lib/codeql/swift/generated/ParentChild.qll df9d71a00c137e89dd6a0caab75fea672fdf769ca60975d455aea85f2cb0e911 2a3495960938e3512cc10031b4c70b102c5ef8478528216fa27545b5ad37b9d7 +lib/codeql/swift/generated/ParentChild.qll 3b7e2e04c92f395f446fbf2dcf62f97a1b066523a5feb90c1cede9a1e644d4e4 58b8a96626a061b11ea0783b0356467358ef80bc9148666f78d6b64a0457a899 lib/codeql/swift/generated/PlatformVersionAvailabilitySpec.qll dc17b49a90a18a8f7607adf2433bc8f0c194fa3e803aa3822f809d4d4fbd6793 be48ea9f8ae17354c8508aaed24337a9e57ce01f288fece3dcecd99776cabcec lib/codeql/swift/generated/PureSynthConstructors.qll bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 -lib/codeql/swift/generated/Raw.qll 105d8abf7a4e7ffa9a421e17ca8eccf348a7fcfcc77b3a92e7e49750f0020284 271868257e2f48b743fc473ef3817611c3b112542a04f6e993fc4dfe34055b07 -lib/codeql/swift/generated/Synth.qll b1ef500787c05001ff7ddd6bdb3a5812ddc0ffa815906ae2e1c3f3a2416034ea 70f264bff132ece154200e81144f52377a7c65bd200c6aefd17d283bb29b9868 -lib/codeql/swift/generated/SynthConstructors.qll 2b242b849125bae5a0d19f19265882151a19120d43cc5b51398a5d5b520facaa 2b242b849125bae5a0d19f19265882151a19120d43cc5b51398a5d5b520facaa +lib/codeql/swift/generated/Raw.qll ca16e576312f595283994e8b02a32693826712c76c471f7969271dc09361d13e 3d86c741064a075810e1e92d2c3bdc2a77755b9142904dee95709117af3c29a1 +lib/codeql/swift/generated/Synth.qll a8462dd9e84e0059f6ca4d9c9f42ac75d0d3fd7b65702e1409c583a89665f18c 051e02492cba3ddda863cd80507a49884d73d57c834f00f6d3547e2143c48dbe +lib/codeql/swift/generated/SynthConstructors.qll 9dc761332663708d16ee6303930557858ea56049ce2dbac4b14f995e6c02977d 9dc761332663708d16ee6303930557858ea56049ce2dbac4b14f995e6c02977d lib/codeql/swift/generated/UnknownFile.qll 247ddf2ebb49ce5ed4bf7bf91a969ddff37de6c78d43d8affccaf7eb586e06f2 452b29f0465ef45e978ef8b647b75e5a2a1e53f2a568fc003bc8f52f73b3fa4d lib/codeql/swift/generated/UnknownLocation.qll d871000b4f53ffca4f67ea23ca5626e5dcce125d62a4d4b9969e08cc974af6fc b05971d7774e60790362fb810fb7086314f40a2de747b8cb1bc823ec6494a4dd lib/codeql/swift/generated/UnspecifiedElement.qll d9ad4ba1ffff90cc465e8ba0dea8c4e8ba67dce5529b53b63ab6dc8e13c85e67 025218e1fee8ee382b63ad38009dfec73dc604d2ba80b9ad956c7c96eeed7022 @@ -899,6 +905,7 @@ lib/codeql/swift/generated/expr/TryExpr.qll 92b670b206df8b75d703c35dec2594802334 lib/codeql/swift/generated/expr/TupleElementExpr.qll 1528226a5615b821fa40127b425a7ffe2004d58b7511ba4e7313449c37e3d552 dcb5bef0a132257c6ca67d2d459ee1e420e0fa36fd8da56aac07af7c27b95a6e lib/codeql/swift/generated/expr/TupleExpr.qll 860dde65c440ffa74648c663126194182c430c1520d5ce1a6766b81edf16dfd8 669091d441977fb730d3dcbfc6018e5fc013b6c2d27a0877c244431a6ffbb7a8 lib/codeql/swift/generated/expr/TypeExpr.qll 1f38f463b11b9f10878dab7266f05f455a0802e6d7464d81d4c05855d41adc64 b3c3f6b61b466be86a8cc0cea18d85b7a23b1f8dcf876ef2a050ef69778df32b +lib/codeql/swift/generated/expr/TypeValueExpr.qll 7c3ed4ddda248999ebe88c436a1967978efdbde7a4f0b73c1b74d350d59b4d26 e631045cc6943f59ba8732a77fa1ff23f2eddc767722be83160f31a9a65e26bd lib/codeql/swift/generated/expr/UnderlyingToOpaqueExpr.qll 3d68175d73056e6f5afea5040ad2f9a8447adf078c490bb06769008857ee2ca7 f0ec8f0bf7271289b8be32038e60c2b1053d6563354c8bced53a42fef6292152 lib/codeql/swift/generated/expr/UnevaluatedInstanceExpr.qll bac438970bc12eef2ace318b97d37ef58ab7a9c2c43c3f4515780f65cdc5de70 11810cdd753c744f3ee274fce889d272c3c94b6087c124cdd09e99188eb3f926 lib/codeql/swift/generated/expr/UnreachableExpr.qll ab17ea1f01eb1b22b1012b57582b170936244c98f42374e0e21b9d468db9249c 93a2a3685a9f8d4eab06cf700bc6465915e29b49249a14fe6aa68d1af96c86ca @@ -986,6 +993,7 @@ lib/codeql/swift/generated/type/FunctionType.qll 739192b77787905a66d9c9970dc077c lib/codeql/swift/generated/type/GenericFunctionType.qll 50743701a62cad6f2cbe8b331a45bd3b18f3154b860720355b831735fd2208b4 481b28aee3e473a74a66628acd2050cfee9807ebad8c8a0646783e3942b89297 lib/codeql/swift/generated/type/GenericTypeParamType.qll f266dffcd2f87f8411b796b97faa671a7bb5e6dd0aa67d3bfc9bbc06a47f1a3b 0e1625a7d2447faf75ec4c716ed1d5219b82ba8720450bc77d279e9854599758 lib/codeql/swift/generated/type/InOutType.qll 809a3bb1c5eec066416c2fce85df9116e7402a368c7e955abe6a01c7673cbdf4 7c614fa92e624890f3a83e7a7f3464f8a94f45b60beeb77f9295850567522ba7 +lib/codeql/swift/generated/type/IntegerType.qll f2040268ae94c41f27a659c09c55360b20000d40440cb9513409a95379b3b37f 4397d31da9bad9e5167d6dc6cb7f26071bb80e00538bd8f55e7fc53e45e8bd32 lib/codeql/swift/generated/type/LValueType.qll 4a6422f21bd21b841d841cad9f7c01ce7eeb9ba6b5d1fa004fa44dc008eaa432 8914e356e0475f0f3b81c681295fa7a833fae2e24c491d8d6e552ad897be4184 lib/codeql/swift/generated/type/LocalArchetypeType.qll de4f291bab61ccb699609f39682cbe29936da3c8be51e9a5620b0bce384bc852 152a74964a40daa7419de15d646ee8b62d137a8a5d7c5d0b002d81d1fdf12c47 lib/codeql/swift/generated/type/MetatypeType.qll bef10ef14aa44b8ef86e5dfe38061df202b9a8d3fb27d671c4b71b51dbe48d1d fd43f29906ef16b3488a74d33fe76ec34e4b8afe6fdfd88036ee1e8305036ca7 @@ -1232,6 +1240,8 @@ test/extractor-tests/generated/expr/TryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb test/extractor-tests/generated/expr/TupleElementExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/TupleExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/TypeExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d +test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql 93ebaff4938dd18f3626533cbf23094c4d7eac7ce84325b743f78dd36d8831e5 c3bc6b6f7a18ca5a32084207fac2468f6306b81cd6a7af1ecf117b1a37147266 +test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql da07880497965cf7f7e28fb3c3a8e8223368685fdacb62d7e562757f01fd521c 9be644216f6adf12adf102ecfac5b3820c2fe7916a86586744ae71d1c11d9704 test/extractor-tests/generated/expr/VarargExpansionExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/pattern/AnyPattern/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/pattern/BindingPattern/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1295,6 +1305,7 @@ test/extractor-tests/generated/type/FunctionType/MISSING_SOURCE.txt 35fb32ea5393 test/extractor-tests/generated/type/GenericFunctionType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/GenericTypeParamType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/InOutType/InOutType.ql a3591003defc284ba9c1c8492ccea5f46ff1de2d86a2240da3a501598d236f8e 4915db95b101c199dcf194e8b974a3c7c94f8ac1d4d9dbf6144822beb4ec0b66 +test/extractor-tests/generated/type/IntegerType/IntegerType.ql 7c911b67a801d8a4f0fe695c66318f6a08278b632adacb58bb10578474a43d49 9590080054ad1280eecb97d2f5265de8c2d2eeca03af24654cac5e2818240e85 test/extractor-tests/generated/type/LValueType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/MetatypeType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/ModuleType/ModuleType.ql a65f7a166068b3bc622864b4b7464a25e41cd8a02f2bdce214ae59475acb9893 89a165e1c0f5b1de549d6c73e893cbc520832d534f801ba5d9144ac2ae3a9b8a diff --git a/swift/ql/.gitattributes b/swift/ql/.gitattributes index 22fb1d0111b..2d8114e910c 100644 --- a/swift/ql/.gitattributes +++ b/swift/ql/.gitattributes @@ -232,6 +232,7 @@ /lib/codeql/swift/elements/expr/TupleElementExpr.qll linguist-generated /lib/codeql/swift/elements/expr/TupleExpr.qll linguist-generated /lib/codeql/swift/elements/expr/TypeExpr.qll linguist-generated +/lib/codeql/swift/elements/expr/TypeValueExpr.qll linguist-generated /lib/codeql/swift/elements/expr/UnderlyingToOpaqueExpr.qll linguist-generated /lib/codeql/swift/elements/expr/UnevaluatedInstanceExpr.qll linguist-generated /lib/codeql/swift/elements/expr/UnreachableExpr.qll linguist-generated @@ -410,6 +411,8 @@ /lib/codeql/swift/elements/expr/internal/TupleElementExprConstructor.qll linguist-generated /lib/codeql/swift/elements/expr/internal/TupleExprConstructor.qll linguist-generated /lib/codeql/swift/elements/expr/internal/TypeExprConstructor.qll linguist-generated +/lib/codeql/swift/elements/expr/internal/TypeValueExprConstructor.qll linguist-generated +/lib/codeql/swift/elements/expr/internal/TypeValueExprImpl.qll linguist-generated /lib/codeql/swift/elements/expr/internal/UnderlyingToOpaqueExprConstructor.qll linguist-generated /lib/codeql/swift/elements/expr/internal/UnderlyingToOpaqueExprImpl.qll linguist-generated /lib/codeql/swift/elements/expr/internal/UnevaluatedInstanceExprConstructor.qll linguist-generated @@ -559,6 +562,7 @@ /lib/codeql/swift/elements/type/GenericFunctionType.qll linguist-generated /lib/codeql/swift/elements/type/GenericTypeParamType.qll linguist-generated /lib/codeql/swift/elements/type/InOutType.qll linguist-generated +/lib/codeql/swift/elements/type/IntegerType.qll linguist-generated /lib/codeql/swift/elements/type/LValueType.qll linguist-generated /lib/codeql/swift/elements/type/LocalArchetypeType.qll linguist-generated /lib/codeql/swift/elements/type/MetatypeType.qll linguist-generated @@ -657,6 +661,8 @@ /lib/codeql/swift/elements/type/internal/GenericTypeParamTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/InOutTypeConstructor.qll linguist-generated /lib/codeql/swift/elements/type/internal/InOutTypeImpl.qll linguist-generated +/lib/codeql/swift/elements/type/internal/IntegerTypeConstructor.qll linguist-generated +/lib/codeql/swift/elements/type/internal/IntegerTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/LValueTypeConstructor.qll linguist-generated /lib/codeql/swift/elements/type/internal/LocalArchetypeTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/MetatypeTypeConstructor.qll linguist-generated @@ -901,6 +907,7 @@ /lib/codeql/swift/generated/expr/TupleElementExpr.qll linguist-generated /lib/codeql/swift/generated/expr/TupleExpr.qll linguist-generated /lib/codeql/swift/generated/expr/TypeExpr.qll linguist-generated +/lib/codeql/swift/generated/expr/TypeValueExpr.qll linguist-generated /lib/codeql/swift/generated/expr/UnderlyingToOpaqueExpr.qll linguist-generated /lib/codeql/swift/generated/expr/UnevaluatedInstanceExpr.qll linguist-generated /lib/codeql/swift/generated/expr/UnreachableExpr.qll linguist-generated @@ -988,6 +995,7 @@ /lib/codeql/swift/generated/type/GenericFunctionType.qll linguist-generated /lib/codeql/swift/generated/type/GenericTypeParamType.qll linguist-generated /lib/codeql/swift/generated/type/InOutType.qll linguist-generated +/lib/codeql/swift/generated/type/IntegerType.qll linguist-generated /lib/codeql/swift/generated/type/LValueType.qll linguist-generated /lib/codeql/swift/generated/type/LocalArchetypeType.qll linguist-generated /lib/codeql/swift/generated/type/MetatypeType.qll linguist-generated @@ -1234,6 +1242,8 @@ /test/extractor-tests/generated/expr/TupleElementExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/TupleExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/TypeExpr/MISSING_SOURCE.txt linguist-generated +/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql linguist-generated +/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/VarargExpansionExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/pattern/AnyPattern/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/pattern/BindingPattern/MISSING_SOURCE.txt linguist-generated @@ -1297,6 +1307,7 @@ /test/extractor-tests/generated/type/GenericFunctionType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/GenericTypeParamType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/InOutType/InOutType.ql linguist-generated +/test/extractor-tests/generated/type/IntegerType/IntegerType.ql linguist-generated /test/extractor-tests/generated/type/LValueType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/MetatypeType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/ModuleType/ModuleType.ql linguist-generated diff --git a/swift/ql/lib/codeql/swift/elements.qll b/swift/ql/lib/codeql/swift/elements.qll index a8d352e0ead..f840aa9df51 100644 --- a/swift/ql/lib/codeql/swift/elements.qll +++ b/swift/ql/lib/codeql/swift/elements.qll @@ -185,6 +185,7 @@ import codeql.swift.elements.expr.TryExpr import codeql.swift.elements.expr.TupleElementExpr import codeql.swift.elements.expr.TupleExpr import codeql.swift.elements.expr.TypeExpr +import codeql.swift.elements.expr.TypeValueExpr import codeql.swift.elements.expr.UnderlyingToOpaqueExpr import codeql.swift.elements.expr.UnevaluatedInstanceExpr import codeql.swift.elements.expr.UnreachableExpr @@ -272,6 +273,7 @@ import codeql.swift.elements.type.FunctionType import codeql.swift.elements.type.GenericFunctionType import codeql.swift.elements.type.GenericTypeParamType import codeql.swift.elements.type.InOutType +import codeql.swift.elements.type.IntegerType import codeql.swift.elements.type.LValueType import codeql.swift.elements.type.LocalArchetypeType import codeql.swift.elements.type.MetatypeType diff --git a/swift/ql/lib/codeql/swift/elements/expr/TypeValueExpr.qll b/swift/ql/lib/codeql/swift/elements/expr/TypeValueExpr.qll new file mode 100644 index 00000000000..7f48b7a80b5 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/expr/TypeValueExpr.qll @@ -0,0 +1,10 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the public class `TypeValueExpr`. + */ + +private import internal.TypeValueExprImpl +import codeql.swift.elements.expr.Expr +import codeql.swift.elements.type.TypeRepr + +final class TypeValueExpr = Impl::TypeValueExpr; diff --git a/swift/ql/lib/codeql/swift/elements/expr/internal/TypeValueExprConstructor.qll b/swift/ql/lib/codeql/swift/elements/expr/internal/TypeValueExprConstructor.qll new file mode 100644 index 00000000000..de997a791b4 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/expr/internal/TypeValueExprConstructor.qll @@ -0,0 +1,14 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +/** + * This module defines the hook used internally to tweak the characteristic predicate of + * `TypeValueExpr` synthesized instances. + * INTERNAL: Do not use. + */ + +private import codeql.swift.generated.Raw + +/** + * The characteristic predicate of `TypeValueExpr` synthesized instances. + * INTERNAL: Do not use. + */ +predicate constructTypeValueExpr(Raw::TypeValueExpr id) { any() } diff --git a/swift/ql/lib/codeql/swift/elements/expr/internal/TypeValueExprImpl.qll b/swift/ql/lib/codeql/swift/elements/expr/internal/TypeValueExprImpl.qll new file mode 100644 index 00000000000..4fd16c6693f --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/expr/internal/TypeValueExprImpl.qll @@ -0,0 +1,16 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +/** + * This module provides a hand-modifiable wrapper around the generated class `TypeValueExpr`. + * + * INTERNAL: Do not use. + */ + +private import codeql.swift.generated.expr.TypeValueExpr + +/** + * INTERNAL: This module contains the customizable definition of `TypeValueExpr` and should not + * be referenced directly. + */ +module Impl { + class TypeValueExpr extends Generated::TypeValueExpr { } +} diff --git a/swift/ql/lib/codeql/swift/elements/type/IntegerType.qll b/swift/ql/lib/codeql/swift/elements/type/IntegerType.qll new file mode 100644 index 00000000000..8d1df2b4769 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/IntegerType.qll @@ -0,0 +1,9 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the public class `IntegerType`. + */ + +private import internal.IntegerTypeImpl +import codeql.swift.elements.type.Type + +final class IntegerType = Impl::IntegerType; diff --git a/swift/ql/lib/codeql/swift/elements/type/internal/IntegerTypeConstructor.qll b/swift/ql/lib/codeql/swift/elements/type/internal/IntegerTypeConstructor.qll new file mode 100644 index 00000000000..b9190352b5d --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/internal/IntegerTypeConstructor.qll @@ -0,0 +1,14 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +/** + * This module defines the hook used internally to tweak the characteristic predicate of + * `IntegerType` synthesized instances. + * INTERNAL: Do not use. + */ + +private import codeql.swift.generated.Raw + +/** + * The characteristic predicate of `IntegerType` synthesized instances. + * INTERNAL: Do not use. + */ +predicate constructIntegerType(Raw::IntegerType id) { any() } diff --git a/swift/ql/lib/codeql/swift/elements/type/internal/IntegerTypeImpl.qll b/swift/ql/lib/codeql/swift/elements/type/internal/IntegerTypeImpl.qll new file mode 100644 index 00000000000..9eeb9798fc6 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/internal/IntegerTypeImpl.qll @@ -0,0 +1,16 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +/** + * This module provides a hand-modifiable wrapper around the generated class `IntegerType`. + * + * INTERNAL: Do not use. + */ + +private import codeql.swift.generated.type.IntegerType + +/** + * INTERNAL: This module contains the customizable definition of `IntegerType` and should not + * be referenced directly. + */ +module Impl { + class IntegerType extends Generated::IntegerType { } +} diff --git a/swift/ql/lib/codeql/swift/generated/ParentChild.qll b/swift/ql/lib/codeql/swift/generated/ParentChild.qll index 30801ade8d5..8ab3348f470 100644 --- a/swift/ql/lib/codeql/swift/generated/ParentChild.qll +++ b/swift/ql/lib/codeql/swift/generated/ParentChild.qll @@ -2009,6 +2009,24 @@ private module Impl { ) } + private Element getImmediateChildOfTypeValueExpr( + TypeValueExpr e, int index, string partialPredicateCall + ) { + exists(int b, int bExpr, int n, int nTypeRepr | + b = 0 and + bExpr = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfExpr(e, i, _)) | i) and + n = bExpr and + nTypeRepr = n + 1 and + ( + none() + or + result = getImmediateChildOfExpr(e, index - b, partialPredicateCall) + or + index = n and result = e.getTypeRepr() and partialPredicateCall = "TypeRepr()" + ) + ) + } + private Element getImmediateChildOfUnresolvedDeclRefExpr( UnresolvedDeclRefExpr e, int index, string partialPredicateCall ) { @@ -4277,6 +4295,21 @@ private module Impl { ) } + private Element getImmediateChildOfIntegerType( + IntegerType e, int index, string partialPredicateCall + ) { + exists(int b, int bType, int n | + b = 0 and + bType = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfType(e, i, _)) | i) and + n = bType and + ( + none() + or + result = getImmediateChildOfType(e, index - b, partialPredicateCall) + ) + ) + } + private Element getImmediateChildOfLValueType(LValueType e, int index, string partialPredicateCall) { exists(int b, int bType, int n | b = 0 and @@ -5382,6 +5415,8 @@ private module Impl { or result = getImmediateChildOfTypeExpr(e, index, partialAccessor) or + result = getImmediateChildOfTypeValueExpr(e, index, partialAccessor) + or result = getImmediateChildOfUnresolvedDeclRefExpr(e, index, partialAccessor) or result = getImmediateChildOfUnresolvedDotExpr(e, index, partialAccessor) @@ -5618,6 +5653,8 @@ private module Impl { or result = getImmediateChildOfInOutType(e, index, partialAccessor) or + result = getImmediateChildOfIntegerType(e, index, partialAccessor) + or result = getImmediateChildOfLValueType(e, index, partialAccessor) or result = getImmediateChildOfModuleType(e, index, partialAccessor) diff --git a/swift/ql/lib/codeql/swift/generated/Raw.qll b/swift/ql/lib/codeql/swift/generated/Raw.qll index 0ebc95d2084..88ba766fc86 100644 --- a/swift/ql/lib/codeql/swift/generated/Raw.qll +++ b/swift/ql/lib/codeql/swift/generated/Raw.qll @@ -1853,6 +1853,18 @@ module Raw { TypeRepr getTypeRepr() { type_expr_type_reprs(this, result) } } + /** + * INTERNAL: Do not use. + */ + class TypeValueExpr extends @type_value_expr, Expr { + override string toString() { result = "TypeValueExpr" } + + /** + * Gets the type representation of this type value expression. + */ + TypeRepr getTypeRepr() { type_value_exprs(this, result) } + } + /** * INTERNAL: Do not use. */ @@ -3323,6 +3335,18 @@ module Raw { Type getObjectType() { in_out_types(this, result) } } + /** + * INTERNAL: Do not use. + */ + class IntegerType extends @integer_type, Type { + override string toString() { result = "IntegerType" } + + /** + * Gets the value of this integer type. + */ + string getValue() { integer_types(this, result) } + } + /** * INTERNAL: Do not use. */ diff --git a/swift/ql/lib/codeql/swift/generated/Synth.qll b/swift/ql/lib/codeql/swift/generated/Synth.qll index 83a94b96505..7eecd52e626 100644 --- a/swift/ql/lib/codeql/swift/generated/Synth.qll +++ b/swift/ql/lib/codeql/swift/generated/Synth.qll @@ -668,6 +668,10 @@ module Synth { * INTERNAL: Do not use. */ TTypeExpr(Raw::TypeExpr id) { constructTypeExpr(id) } or + /** + * INTERNAL: Do not use. + */ + TTypeValueExpr(Raw::TypeValueExpr id) { constructTypeValueExpr(id) } or /** * INTERNAL: Do not use. */ @@ -994,6 +998,10 @@ module Synth { * INTERNAL: Do not use. */ TInOutType(Raw::InOutType id) { constructInOutType(id) } or + /** + * INTERNAL: Do not use. + */ + TIntegerType(Raw::IntegerType id) { constructIntegerType(id) } or /** * INTERNAL: Do not use. */ @@ -1266,9 +1274,9 @@ module Synth { TOptionalEvaluationExpr or TOtherInitializerRefExpr or TOverloadedDeclRefExpr or TPackElementExpr or TPackExpansionExpr or TPropertyWrapperValuePlaceholderExpr or TRebindSelfInInitializerExpr or TSequenceExpr or TSingleValueStmtExpr or TSuperRefExpr or - TTapExpr or TTupleElementExpr or TTupleExpr or TTypeExpr or TUnresolvedDeclRefExpr or - TUnresolvedDotExpr or TUnresolvedMemberExpr or TUnresolvedPatternExpr or - TUnresolvedSpecializeExpr or TVarargExpansionExpr; + TTapExpr or TTupleElementExpr or TTupleExpr or TTypeExpr or TTypeValueExpr or + TUnresolvedDeclRefExpr or TUnresolvedDotExpr or TUnresolvedMemberExpr or + TUnresolvedPatternExpr or TUnresolvedSpecializeExpr or TVarargExpansionExpr; /** * INTERNAL: Do not use. @@ -1426,9 +1434,9 @@ module Synth { class TType = TAnyFunctionType or TAnyGenericType or TAnyMetatypeType or TBuiltinType or TDependentMemberType or TDynamicSelfType or TErrorType or TExistentialType or TInOutType or - TLValueType or TModuleType or TPackElementType or TPackExpansionType or TPackType or - TParameterizedProtocolType or TProtocolCompositionType or TReferenceStorageType or - TSubstitutableType or TSugarType or TTupleType or TUnresolvedType; + TIntegerType or TLValueType or TModuleType or TPackElementType or TPackExpansionType or + TPackType or TParameterizedProtocolType or TProtocolCompositionType or + TReferenceStorageType or TSubstitutableType or TSugarType or TTupleType or TUnresolvedType; /** * INTERNAL: Do not use. @@ -2487,6 +2495,12 @@ module Synth { */ TTypeExpr convertTypeExprFromRaw(Raw::Element e) { result = TTypeExpr(e) } + /** + * INTERNAL: Do not use. + * Converts a raw element to a synthesized `TTypeValueExpr`, if possible. + */ + TTypeValueExpr convertTypeValueExprFromRaw(Raw::Element e) { result = TTypeValueExpr(e) } + /** * INTERNAL: Do not use. * Converts a raw element to a synthesized `TUnderlyingToOpaqueExpr`, if possible. @@ -3003,6 +3017,12 @@ module Synth { */ TInOutType convertInOutTypeFromRaw(Raw::Element e) { result = TInOutType(e) } + /** + * INTERNAL: Do not use. + * Converts a raw element to a synthesized `TIntegerType`, if possible. + */ + TIntegerType convertIntegerTypeFromRaw(Raw::Element e) { result = TIntegerType(e) } + /** * INTERNAL: Do not use. * Converts a raw element to a synthesized `TLValueType`, if possible. @@ -3674,6 +3694,8 @@ module Synth { or result = convertTypeExprFromRaw(e) or + result = convertTypeValueExprFromRaw(e) + or result = convertUnresolvedDeclRefExprFromRaw(e) or result = convertUnresolvedDotExprFromRaw(e) @@ -4116,6 +4138,8 @@ module Synth { or result = convertInOutTypeFromRaw(e) or + result = convertIntegerTypeFromRaw(e) + or result = convertLValueTypeFromRaw(e) or result = convertModuleTypeFromRaw(e) @@ -5203,6 +5227,12 @@ module Synth { */ Raw::Element convertTypeExprToRaw(TTypeExpr e) { e = TTypeExpr(result) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TTypeValueExpr` to a raw DB element, if possible. + */ + Raw::Element convertTypeValueExprToRaw(TTypeValueExpr e) { e = TTypeValueExpr(result) } + /** * INTERNAL: Do not use. * Converts a synthesized `TUnderlyingToOpaqueExpr` to a raw DB element, if possible. @@ -5719,6 +5749,12 @@ module Synth { */ Raw::Element convertInOutTypeToRaw(TInOutType e) { e = TInOutType(result) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TIntegerType` to a raw DB element, if possible. + */ + Raw::Element convertIntegerTypeToRaw(TIntegerType e) { e = TIntegerType(result) } + /** * INTERNAL: Do not use. * Converts a synthesized `TLValueType` to a raw DB element, if possible. @@ -6390,6 +6426,8 @@ module Synth { or result = convertTypeExprToRaw(e) or + result = convertTypeValueExprToRaw(e) + or result = convertUnresolvedDeclRefExprToRaw(e) or result = convertUnresolvedDotExprToRaw(e) @@ -6832,6 +6870,8 @@ module Synth { or result = convertInOutTypeToRaw(e) or + result = convertIntegerTypeToRaw(e) + or result = convertLValueTypeToRaw(e) or result = convertModuleTypeToRaw(e) diff --git a/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll b/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll index 474420586ca..a9225a1b0ce 100644 --- a/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll +++ b/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll @@ -152,6 +152,7 @@ import codeql.swift.elements.expr.internal.TryExprConstructor import codeql.swift.elements.expr.internal.TupleElementExprConstructor import codeql.swift.elements.expr.internal.TupleExprConstructor import codeql.swift.elements.expr.internal.TypeExprConstructor +import codeql.swift.elements.expr.internal.TypeValueExprConstructor import codeql.swift.elements.expr.internal.UnderlyingToOpaqueExprConstructor import codeql.swift.elements.expr.internal.UnevaluatedInstanceExprConstructor import codeql.swift.elements.expr.internal.UnreachableExprConstructor @@ -228,6 +229,7 @@ import codeql.swift.elements.type.internal.FunctionTypeConstructor import codeql.swift.elements.type.internal.GenericFunctionTypeConstructor import codeql.swift.elements.type.internal.GenericTypeParamTypeConstructor import codeql.swift.elements.type.internal.InOutTypeConstructor +import codeql.swift.elements.type.internal.IntegerTypeConstructor import codeql.swift.elements.type.internal.LValueTypeConstructor import codeql.swift.elements.type.internal.MetatypeTypeConstructor import codeql.swift.elements.type.internal.ModuleTypeConstructor diff --git a/swift/ql/lib/codeql/swift/generated/expr/TypeValueExpr.qll b/swift/ql/lib/codeql/swift/generated/expr/TypeValueExpr.qll new file mode 100644 index 00000000000..602b0db2375 --- /dev/null +++ b/swift/ql/lib/codeql/swift/generated/expr/TypeValueExpr.qll @@ -0,0 +1,34 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the generated definition of `TypeValueExpr`. + * INTERNAL: Do not import directly. + */ + +private import codeql.swift.generated.Synth +private import codeql.swift.generated.Raw +import codeql.swift.elements.expr.internal.ExprImpl::Impl as ExprImpl +import codeql.swift.elements.type.TypeRepr + +/** + * INTERNAL: This module contains the fully generated definition of `TypeValueExpr` and should not + * be referenced directly. + */ +module Generated { + /** + * INTERNAL: Do not reference the `Generated::TypeValueExpr` class directly. + * Use the subclass `TypeValueExpr`, where the following predicates are available. + */ + class TypeValueExpr extends Synth::TTypeValueExpr, ExprImpl::Expr { + override string getAPrimaryQlClass() { result = "TypeValueExpr" } + + /** + * Gets the type representation of this type value expression. + */ + TypeRepr getTypeRepr() { + result = + Synth::convertTypeReprFromRaw(Synth::convertTypeValueExprToRaw(this) + .(Raw::TypeValueExpr) + .getTypeRepr()) + } + } +} diff --git a/swift/ql/lib/codeql/swift/generated/type/IntegerType.qll b/swift/ql/lib/codeql/swift/generated/type/IntegerType.qll new file mode 100644 index 00000000000..655d4b1fc19 --- /dev/null +++ b/swift/ql/lib/codeql/swift/generated/type/IntegerType.qll @@ -0,0 +1,30 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the generated definition of `IntegerType`. + * INTERNAL: Do not import directly. + */ + +private import codeql.swift.generated.Synth +private import codeql.swift.generated.Raw +import codeql.swift.elements.type.internal.TypeImpl::Impl as TypeImpl + +/** + * INTERNAL: This module contains the fully generated definition of `IntegerType` and should not + * be referenced directly. + */ +module Generated { + /** + * INTERNAL: Do not reference the `Generated::IntegerType` class directly. + * Use the subclass `IntegerType`, where the following predicates are available. + */ + class IntegerType extends Synth::TIntegerType, TypeImpl::Type { + override string getAPrimaryQlClass() { result = "IntegerType" } + + /** + * Gets the value of this integer type. + */ + string getValue() { + result = Synth::convertIntegerTypeToRaw(this).(Raw::IntegerType).getValue() + } + } +} diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 3d88fb615e8..4295ec72e82 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -819,6 +819,7 @@ arguments( //dir=expr | @tuple_element_expr | @tuple_expr | @type_expr +| @type_value_expr | @unresolved_decl_ref_expr | @unresolved_dot_expr | @unresolved_member_expr @@ -1281,6 +1282,11 @@ type_expr_type_reprs( //dir=expr int type_repr: @type_repr_or_none ref ); +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + unresolved_decl_ref_exprs( //dir=expr unique int id: @unresolved_decl_ref_expr ); @@ -2132,6 +2138,7 @@ while_stmts( //dir=stmt | @error_type | @existential_type | @in_out_type +| @integer_type | @l_value_type | @module_type | @pack_element_type @@ -2247,6 +2254,11 @@ in_out_types( //dir=type int object_type: @type_or_none ref ); +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + l_value_types( //dir=type unique int id: @l_value_type, int object_type: @type_or_none ref diff --git a/swift/ql/test/TestUtils.qll b/swift/ql/test/TestUtils.qll index 9b5429f8ba9..3cc64e753b3 100644 --- a/swift/ql/test/TestUtils.qll +++ b/swift/ql/test/TestUtils.qll @@ -9,6 +9,8 @@ predicate toBeTested(Element e) { e instanceof File and (exists(e.(File).getRelativePath()) or e instanceof UnknownFile) or + e instanceof IntegerType + or e instanceof ParameterizedProtocolType or e instanceof PackType diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected new file mode 100644 index 00000000000..fa57faafb19 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected @@ -0,0 +1,2 @@ +| type_value_exprs.swift:4:13:4:13 | TypeValueExpr | hasType: | yes | getTypeRepr: | type_value_exprs.swift:4:13:4:13 | (no string representation) | +| type_value_exprs.swift:5:13:5:13 | TypeValueExpr | hasType: | yes | getTypeRepr: | type_value_exprs.swift:5:13:5:13 | (no string representation) | diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql new file mode 100644 index 00000000000..d434781d152 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql @@ -0,0 +1,11 @@ +// generated by codegen/codegen.py, do not edit +import codeql.swift.elements +import TestUtils + +from TypeValueExpr x, string hasType, TypeRepr getTypeRepr +where + toBeTested(x) and + not x.isUnknown() and + (if x.hasType() then hasType = "yes" else hasType = "no") and + getTypeRepr = x.getTypeRepr() +select x, "hasType:", hasType, "getTypeRepr:", getTypeRepr diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.expected new file mode 100644 index 00000000000..43e48141790 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.expected @@ -0,0 +1,2 @@ +| type_value_exprs.swift:4:13:4:13 | TypeValueExpr | Int | +| type_value_exprs.swift:5:13:5:13 | TypeValueExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql new file mode 100644 index 00000000000..3c08a5c76d4 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql @@ -0,0 +1,7 @@ +// generated by codegen/codegen.py, do not edit +import codeql.swift.elements +import TestUtils + +from TypeValueExpr x +where toBeTested(x) and not x.isUnknown() +select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/type_value_exprs.swift b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/type_value_exprs.swift new file mode 100644 index 00000000000..d9ac932879c --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/type_value_exprs.swift @@ -0,0 +1,8 @@ +//codeql-extractor-options: -enable-experimental-feature ValueGenerics -disable-availability-checking + +struct A { + var x = N; + var y = N; +} + +func f(with a : A<128>) {} diff --git a/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected b/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected new file mode 100644 index 00000000000..7fba23db8bd --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected @@ -0,0 +1,2 @@ +| 128 | getName: | 128 | getCanonicalType: | 128 | getValue: | 128 | +| 256 | getName: | 256 | getCanonicalType: | 256 | getValue: | 256 | diff --git a/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.ql b/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.ql new file mode 100644 index 00000000000..dea3771c7c5 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.ql @@ -0,0 +1,12 @@ +// generated by codegen/codegen.py, do not edit +import codeql.swift.elements +import TestUtils + +from IntegerType x, string getName, Type getCanonicalType, string getValue +where + toBeTested(x) and + not x.isUnknown() and + getName = x.getName() and + getCanonicalType = x.getCanonicalType() and + getValue = x.getValue() +select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getValue:", getValue diff --git a/swift/ql/test/extractor-tests/generated/type/IntegerType/integer_type.swift b/swift/ql/test/extractor-tests/generated/type/IntegerType/integer_type.swift new file mode 100644 index 00000000000..ce2127e600d --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/IntegerType/integer_type.swift @@ -0,0 +1,9 @@ +//codeql-extractor-options: -enable-experimental-feature ValueGenerics -disable-availability-checking + +struct A { + var x = N; +} + +func f(with a : A<128>) {} + +func g(with a : A<256>) {} diff --git a/swift/schema.py b/swift/schema.py index 4e11bc7a33d..917f5a3a30c 100644 --- a/swift/schema.py +++ b/swift/schema.py @@ -1469,3 +1469,9 @@ class UnsafeCastExpr(ImplicitConversionExpr): """ A conversion that performs an unsafe bitcast. """ + +class TypeValueExpr(Expr): + type_repr: TypeRepr | child + +class IntegerType(Type): + value: string From 98384bf4c2084a1faefcb199379ff5be89572aad Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 2 May 2025 14:32:04 +0200 Subject: [PATCH 238/656] Swift: Support `BuiltinFixedArrayType` --- swift/extractor/infra/SwiftTagTraits.h | 4 +-- swift/ql/.generated.list | 14 ++++++---- swift/ql/.gitattributes | 4 +++ swift/ql/lib/codeql/swift/elements.qll | 1 + .../elements/type/BuiltinFixedArrayType.qll | 12 ++++++++ .../BuiltinFixedArrayTypeConstructor.qll | 14 ++++++++++ .../internal/BuiltinFixedArrayTypeImpl.qll | 19 +++++++++++++ .../codeql/swift/generated/ParentChild.qll | 18 ++++++++++++ swift/ql/lib/codeql/swift/generated/Raw.qll | 8 ++++++ swift/ql/lib/codeql/swift/generated/Synth.qll | 28 +++++++++++++++++-- .../swift/generated/SynthConstructors.qll | 1 + .../generated/type/BuiltinFixedArrayType.qll | 24 ++++++++++++++++ swift/ql/lib/swift.dbscheme | 5 ++++ .../type/BuiltinType/BuiltinType.expected | 3 ++ .../type/BuiltinType/fixed_array.swift | 9 ++++++ swift/schema.py | 6 ++++ 16 files changed, 161 insertions(+), 9 deletions(-) create mode 100644 swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll create mode 100644 swift/ql/lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeConstructor.qll create mode 100644 swift/ql/lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeImpl.qll create mode 100644 swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll create mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinType/fixed_array.swift diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index 285f48cc940..b204c06ff0b 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -285,8 +285,8 @@ MAP(swift::TypeBase, TypeTag) MAP(swift::BuiltinVectorType, BuiltinVectorTypeTag) MAP(swift::BuiltinPackIndexType, void) // SIL type, cannot really appear in the frontend run MAP(swift::BuiltinNonDefaultDistributedActorStorageType, void) // Does not appear in AST/SIL, only used during IRGen - MAP(swift::BuiltinFixedArrayType, void) // TODO swift 6.1 - MAP(swift::BuiltinUnboundGenericType, void) // TODO swift 6.1 + MAP(swift::BuiltinFixedArrayType, BuiltinFixedArrayTypeTag) + MAP(swift::BuiltinUnboundGenericType, void) // Only used during type resolution MAP(swift::TupleType, TupleTypeTag) MAP(swift::ReferenceStorageType, ReferenceStorageTypeTag) MAP(swift::WeakStorageType, WeakStorageTypeTag) diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index fcec2a9fbe2..f693ce9e9fc 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -537,6 +537,7 @@ lib/codeql/swift/elements/type/BoundGenericType.qll 089e5e8d09c62a23d575dcab68cd lib/codeql/swift/elements/type/BuiltinBridgeObjectType.qll b0064e09b53efe801b0bf950ff00698a84e2f714e853e4859ed5f3246025a1bd aa14b6ae2ec510c4ddd2cc073bf971809536ab8fd8763fd05bd171b0bbe83860 lib/codeql/swift/elements/type/BuiltinDefaultActorStorageType.qll e867a9d0b2c61b7eb61f5143c78e31f8d98d3245d79e0e3281d4c172175f496b 265e87f2e37ca968af572cc619294d1ee91dd66ebb0d1bb1ba9ab7159de52f0b lib/codeql/swift/elements/type/BuiltinExecutorType.qll 2b141553bbc02a00d97579ba9d0e38fa0978d40ce954b0caf64826aa259dbc08 a81465fd0e87ad5b8e418d8f21c337b3e96388a3b92b3332f0d6b0ff7663e5c7 +lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll 24a57f15a53070e6308841cd5dac4d55059e84d9fb18a77eec1130647dcdc97c 9f4167ef5190cbeee71abd068bdb0a280b690a16349cd408244d4cf9edfb357a lib/codeql/swift/elements/type/BuiltinFloatType.qll 81f49325077b75cea682904ddab24d1b2fdc5c93b0b28830c08e866d5c9307a7 e26a348d66e3824ccd92729624ce2b2ebc82a844aa47035e0a963a62b08b772d lib/codeql/swift/elements/type/BuiltinIntegerLiteralType.qll 34ee35733cf26f90d799a79f8a2362b199ea2ecb6ba83eb5678dda9eb3ed255f e33fdb27d3c22d441277b66ba74136cb88e1da25a2146391b258c68f7fbf5dd3 lib/codeql/swift/elements/type/BuiltinIntegerType.qll b931e79a40fb379a8de377ae4ea1c85befb7b07dbfe913f0ea7f5adf5514b217 5d7e6f21284b8c5ff70773bb64f896a40541c9064bfdd336798ccfda4cb4fb9e @@ -615,6 +616,8 @@ lib/codeql/swift/elements/type/internal/BuiltinDefaultActorStorageTypeConstructo lib/codeql/swift/elements/type/internal/BuiltinDefaultActorStorageTypeImpl.qll 1bf51a54fa58bbf89aaecbf631e44f7be014594c2a595e51c8ac54e790b3c05d a715240732615d22623a70b09c6c4d48d7b1d93dd0dc5a30d207136b3b4c4efc lib/codeql/swift/elements/type/internal/BuiltinExecutorTypeConstructor.qll 2f9aea7e019b4c696294660a89b94d254b6d7bbd5b6d54991a1fc2e3306fed50 28c28b2d2a05a0e415e1b56f743d66b7f5e6a1aa2e6087d8a2743b7e34a602c4 lib/codeql/swift/elements/type/internal/BuiltinExecutorTypeImpl.qll 0a5f8edd92f68cf8a8f0036f52f454f0279771d3bef5e748e61f1f3eaeb51758 92624449d217fe69c6c9e40488039c59306db5f22066ff245ba7d4957a705043 +lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeConstructor.qll 0d5af4926703f1c8989c2f8960885e769efe86e0b623e843b788242499771565 2449589a1c1d5748d7ead874cc1dc98ffb49a065a0dc8963f741f66845785a74 +lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeImpl.qll 6b69ba8b271646bcd699e338f41c186f3e4e7d401830918407e392312b2f0ad1 ecaca3d762264423094f7c2cb63e33b5d72d970946766eec33d984fa977950b4 lib/codeql/swift/elements/type/internal/BuiltinFloatTypeConstructor.qll f1dab7b9d36213e57083a6effec1b2d859553831394c0e746c592c96a20db6de cceeaa864cfc84511b3cdad6a88d44fc14ea1c8e38db72b0854c3f217a3f9c44 lib/codeql/swift/elements/type/internal/BuiltinFloatTypeImpl.qll 1dc7f7817c4a238751875b0cee98d060a1ea975a22fd90ceef0f9874b85824d6 d98f743c28174fb3294f0ff60232600a4fc80aeefe72e5cc15bb56e09880ec1e lib/codeql/swift/elements/type/internal/BuiltinIntegerLiteralTypeConstructor.qll 3885775f78e18286aa8dc99ab5b6f386a278b34b47f93da28d67faac918e6087 93be2ad0b7235bab613b74582bc1de0ca8b2a4da7a387d09a9b8ef9b38095534 @@ -713,7 +716,7 @@ lib/codeql/swift/elements/type/internal/UnresolvedTypeImpl.qll ee1499dd568753898 lib/codeql/swift/elements/type/internal/VariadicSequenceTypeConstructor.qll fc74a5a2a2effa28ef24509b20ee4373d97cf6e8c71840121bb031c6adedf584 c9b2effc1d01c13c5e6a74a111122fa79a2f6554dda3cb016d68ba397e566ec4 lib/codeql/swift/elements/type/internal/WeakStorageTypeConstructor.qll 5fdce3716aba6318522174a2c455a63480970222ae81c732fb19c6dd3ae2d271 60ea79d6943e129deba0deccb566cf9d73f78398b0f7f0212674d91287d6b2ae lib/codeql/swift/elements/type/internal/WeakStorageTypeImpl.qll 74f79b458f3204ec2519bd654de21bc4fb6b76816bd8ca01990fe897563a1383 34e1810f74cecda5b580ed050438ae1d914b97a36b8f4e2de1c25254c0cac633 -lib/codeql/swift/elements.qll 67832d269392e0c8226bd03918be9b3e4cf11213e54dd3acfe153dd8f8cd33c7 67832d269392e0c8226bd03918be9b3e4cf11213e54dd3acfe153dd8f8cd33c7 +lib/codeql/swift/elements.qll 2c093130866888903f5a97cc41072ad94c795d296fca6492d6db481b1ca39d94 2c093130866888903f5a97cc41072ad94c795d296fca6492d6db481b1ca39d94 lib/codeql/swift/generated/AstNode.qll 6fb80e9b230a1e3ae8193af40744f253d5cc81dc4239156924e5ab606c491efc e5c28418e9a38bde08f323a3986a199620189fc4a8a4dc8f670610a5d3d65b99 lib/codeql/swift/generated/AvailabilityInfo.qll e3a5274c43e72ff124b6988fd8be0c83a41b89337e11104150dd0ca7f51d8a11 889563791ca8d9758dbbccf64a0731c4bdbf721cad32bc6cd723f1072b6aa1de lib/codeql/swift/generated/AvailabilitySpec.qll bc64d5c690c4d18800f0a48cc76a6a9ee4f832041343666da2d8df2aae04ed7e d03bf874293ac0ab09c025f75c0f392473d47bebe3223143adcc13882a366119 @@ -730,12 +733,12 @@ lib/codeql/swift/generated/Locatable.qll 1d37fa20de71c0b9986bfd7a7c0cb82ab7bf3fd lib/codeql/swift/generated/Location.qll 5e20316c3e480ddfe632b7e88e016c19f10a67df1f6ae9c8f128755a6907d6f5 5a0af2d070bcb2ed53d6d0282bf9c60dc64c2dce89c21fdd485e9c7893c1c8fa lib/codeql/swift/generated/MacroRole.qll facf907e75490d69cd401c491215e4719324d751f40ea46c86ccf24cf3663c1f 969d8d4b44e3f1a9c193a152a4d83a303e56d2dbb871fc920c47a33f699cf018 lib/codeql/swift/generated/OtherAvailabilitySpec.qll d9feaa2a71acff3184ca389045b0a49d09156210df0e034923d715b432ad594b 046737621a8bcf69bf805afb0cff476bd15259f12f0d77fce3206dd01b31518f -lib/codeql/swift/generated/ParentChild.qll 3b7e2e04c92f395f446fbf2dcf62f97a1b066523a5feb90c1cede9a1e644d4e4 58b8a96626a061b11ea0783b0356467358ef80bc9148666f78d6b64a0457a899 +lib/codeql/swift/generated/ParentChild.qll d66e5c28e93a3085fbae0ada238a96577ad21fd64a37ce967032bf5df8bdfb1d 2d440ad9c0304f658d54c6c53a8b1db1d3e032ee5522b51c46116413d0cf5dbb lib/codeql/swift/generated/PlatformVersionAvailabilitySpec.qll dc17b49a90a18a8f7607adf2433bc8f0c194fa3e803aa3822f809d4d4fbd6793 be48ea9f8ae17354c8508aaed24337a9e57ce01f288fece3dcecd99776cabcec lib/codeql/swift/generated/PureSynthConstructors.qll bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 -lib/codeql/swift/generated/Raw.qll ca16e576312f595283994e8b02a32693826712c76c471f7969271dc09361d13e 3d86c741064a075810e1e92d2c3bdc2a77755b9142904dee95709117af3c29a1 -lib/codeql/swift/generated/Synth.qll a8462dd9e84e0059f6ca4d9c9f42ac75d0d3fd7b65702e1409c583a89665f18c 051e02492cba3ddda863cd80507a49884d73d57c834f00f6d3547e2143c48dbe -lib/codeql/swift/generated/SynthConstructors.qll 9dc761332663708d16ee6303930557858ea56049ce2dbac4b14f995e6c02977d 9dc761332663708d16ee6303930557858ea56049ce2dbac4b14f995e6c02977d +lib/codeql/swift/generated/Raw.qll 96d5f8778f25cd396b5cc56c38dce597c5a9a5c2b1e9ed8b9a4d2eca89e49323 d65072b5c508dad1dd813e19f7431087d8bfc0e5d85aa3d19beffbcbbec585ec +lib/codeql/swift/generated/Synth.qll 2b0f1a8911c1981ff50b78331bdd1f3f6023ad87a4ae3a92088901f493bb62c0 bc94ca1d86033e04b0999da84b61955ea1d8f4ac2379be527802512a42a16964 +lib/codeql/swift/generated/SynthConstructors.qll d30b83f9d8d310414bb1261af386b70502df48159d06579bb2610e18ef546c3d d30b83f9d8d310414bb1261af386b70502df48159d06579bb2610e18ef546c3d lib/codeql/swift/generated/UnknownFile.qll 247ddf2ebb49ce5ed4bf7bf91a969ddff37de6c78d43d8affccaf7eb586e06f2 452b29f0465ef45e978ef8b647b75e5a2a1e53f2a568fc003bc8f52f73b3fa4d lib/codeql/swift/generated/UnknownLocation.qll d871000b4f53ffca4f67ea23ca5626e5dcce125d62a4d4b9969e08cc974af6fc b05971d7774e60790362fb810fb7086314f40a2de747b8cb1bc823ec6494a4dd lib/codeql/swift/generated/UnspecifiedElement.qll d9ad4ba1ffff90cc465e8ba0dea8c4e8ba67dce5529b53b63ab6dc8e13c85e67 025218e1fee8ee382b63ad38009dfec73dc604d2ba80b9ad956c7c96eeed7022 @@ -970,6 +973,7 @@ lib/codeql/swift/generated/type/BoundGenericType.qll 5e7a2210b766437ca301f9675f7 lib/codeql/swift/generated/type/BuiltinBridgeObjectType.qll 97f30768a8788ec4547ce8a8f06fdd165286177e3819bf2e6590b9479f5bada4 ea3161c34d1d18783b38deac43c73048e4510015307d93f77cd95c149e988846 lib/codeql/swift/generated/type/BuiltinDefaultActorStorageType.qll 10e49de9a8bc3e67285c111f7869c8baceb70e478661d5557ebc8c86f41b4aec 1a0ce85eb325f666fbc2ac49c6f994efd552de6f2105e0a7ba9a10e39f3d1591 lib/codeql/swift/generated/type/BuiltinExecutorType.qll 8f58d4d413910aded894bfa9b54748adfc2b78f4ee271ac6db5f5b0214f36a66 69da70d76146155529b7b2426b3a459abe318f887240aac1aed5719fda5f386a +lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll 9bd26596da9137b07324222c9ed39ec0781e44673314fba96a0c7cf16f65cc7d cc2d40961b070a89f3350ab95b92ae33372277e499d7b2a9ea34721cc1fe1923 lib/codeql/swift/generated/type/BuiltinFloatType.qll 6306a806107bba052fe0b1335c8c4d4391cdb6aa5f42f14c70743113928c4c36 3265d571630c0437e5d81ba20a0b6112b7e88ee3ffca737557186001cf8aa04a lib/codeql/swift/generated/type/BuiltinIntegerLiteralType.qll 3f49aac9b81c440b902a658294cf95aff5cb79b0d6cee8b1abd8a08ad45c7966 6c184dcf5d9376f193f07fe4722ea7cab51f1dfdef4d72c3042842d73cca31fe lib/codeql/swift/generated/type/BuiltinIntegerType.qll 3cfcbc4ebea6051d1f6dedcf098888c72c02bf697cebb52a0060c1885bea61f0 1c78df7a184e3615024d6e361b88dd619828a0aa7d342564610a95b02cc67d1e diff --git a/swift/ql/.gitattributes b/swift/ql/.gitattributes index 2d8114e910c..761b2efeb7c 100644 --- a/swift/ql/.gitattributes +++ b/swift/ql/.gitattributes @@ -539,6 +539,7 @@ /lib/codeql/swift/elements/type/BuiltinBridgeObjectType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinDefaultActorStorageType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinExecutorType.qll linguist-generated +/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinFloatType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinIntegerLiteralType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinIntegerType.qll linguist-generated @@ -617,6 +618,8 @@ /lib/codeql/swift/elements/type/internal/BuiltinDefaultActorStorageTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinExecutorTypeConstructor.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinExecutorTypeImpl.qll linguist-generated +/lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeConstructor.qll linguist-generated +/lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinFloatTypeConstructor.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinFloatTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinIntegerLiteralTypeConstructor.qll linguist-generated @@ -972,6 +975,7 @@ /lib/codeql/swift/generated/type/BuiltinBridgeObjectType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinDefaultActorStorageType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinExecutorType.qll linguist-generated +/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinFloatType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinIntegerLiteralType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinIntegerType.qll linguist-generated diff --git a/swift/ql/lib/codeql/swift/elements.qll b/swift/ql/lib/codeql/swift/elements.qll index f840aa9df51..2551a7ece9b 100644 --- a/swift/ql/lib/codeql/swift/elements.qll +++ b/swift/ql/lib/codeql/swift/elements.qll @@ -250,6 +250,7 @@ import codeql.swift.elements.type.BoundGenericType import codeql.swift.elements.type.BuiltinBridgeObjectType import codeql.swift.elements.type.BuiltinDefaultActorStorageType import codeql.swift.elements.type.BuiltinExecutorType +import codeql.swift.elements.type.BuiltinFixedArrayType import codeql.swift.elements.type.BuiltinFloatType import codeql.swift.elements.type.BuiltinIntegerLiteralType import codeql.swift.elements.type.BuiltinIntegerType diff --git a/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll b/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll new file mode 100644 index 00000000000..bf523a0a785 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll @@ -0,0 +1,12 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the public class `BuiltinFixedArrayType`. + */ + +private import internal.BuiltinFixedArrayTypeImpl +import codeql.swift.elements.type.BuiltinType + +/** + * A builtin type representing N values stored contiguously. + */ +final class BuiltinFixedArrayType = Impl::BuiltinFixedArrayType; diff --git a/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeConstructor.qll b/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeConstructor.qll new file mode 100644 index 00000000000..51c78ebf215 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeConstructor.qll @@ -0,0 +1,14 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +/** + * This module defines the hook used internally to tweak the characteristic predicate of + * `BuiltinFixedArrayType` synthesized instances. + * INTERNAL: Do not use. + */ + +private import codeql.swift.generated.Raw + +/** + * The characteristic predicate of `BuiltinFixedArrayType` synthesized instances. + * INTERNAL: Do not use. + */ +predicate constructBuiltinFixedArrayType(Raw::BuiltinFixedArrayType id) { any() } diff --git a/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeImpl.qll b/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeImpl.qll new file mode 100644 index 00000000000..ff157961c40 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeImpl.qll @@ -0,0 +1,19 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +/** + * This module provides a hand-modifiable wrapper around the generated class `BuiltinFixedArrayType`. + * + * INTERNAL: Do not use. + */ + +private import codeql.swift.generated.type.BuiltinFixedArrayType + +/** + * INTERNAL: This module contains the customizable definition of `BuiltinFixedArrayType` and should not + * be referenced directly. + */ +module Impl { + /** + * A builtin type representing N values stored contiguously. + */ + class BuiltinFixedArrayType extends Generated::BuiltinFixedArrayType { } +} diff --git a/swift/ql/lib/codeql/swift/generated/ParentChild.qll b/swift/ql/lib/codeql/swift/generated/ParentChild.qll index 8ab3348f470..49ffc37a473 100644 --- a/swift/ql/lib/codeql/swift/generated/ParentChild.qll +++ b/swift/ql/lib/codeql/swift/generated/ParentChild.qll @@ -4564,6 +4564,22 @@ private module Impl { ) } + private Element getImmediateChildOfBuiltinFixedArrayType( + BuiltinFixedArrayType e, int index, string partialPredicateCall + ) { + exists(int b, int bBuiltinType, int n | + b = 0 and + bBuiltinType = + b + 1 + max(int i | i = -1 or exists(getImmediateChildOfBuiltinType(e, i, _)) | i) and + n = bBuiltinType and + ( + none() + or + result = getImmediateChildOfBuiltinType(e, index - b, partialPredicateCall) + ) + ) + } + private Element getImmediateChildOfBuiltinFloatType( BuiltinFloatType e, int index, string partialPredicateCall ) { @@ -5679,6 +5695,8 @@ private module Impl { or result = getImmediateChildOfBuiltinExecutorType(e, index, partialAccessor) or + result = getImmediateChildOfBuiltinFixedArrayType(e, index, partialAccessor) + or result = getImmediateChildOfBuiltinFloatType(e, index, partialAccessor) or result = getImmediateChildOfBuiltinJobType(e, index, partialAccessor) diff --git a/swift/ql/lib/codeql/swift/generated/Raw.qll b/swift/ql/lib/codeql/swift/generated/Raw.qll index 88ba766fc86..a2779b148e9 100644 --- a/swift/ql/lib/codeql/swift/generated/Raw.qll +++ b/swift/ql/lib/codeql/swift/generated/Raw.qll @@ -3546,6 +3546,14 @@ module Raw { override string toString() { result = "BuiltinExecutorType" } } + /** + * INTERNAL: Do not use. + * A builtin type representing N values stored contiguously. + */ + class BuiltinFixedArrayType extends @builtin_fixed_array_type, BuiltinType { + override string toString() { result = "BuiltinFixedArrayType" } + } + /** * INTERNAL: Do not use. */ diff --git a/swift/ql/lib/codeql/swift/generated/Synth.qll b/swift/ql/lib/codeql/swift/generated/Synth.qll index 7eecd52e626..09f52604bb9 100644 --- a/swift/ql/lib/codeql/swift/generated/Synth.qll +++ b/swift/ql/lib/codeql/swift/generated/Synth.qll @@ -900,6 +900,10 @@ module Synth { * INTERNAL: Do not use. */ TBuiltinExecutorType(Raw::BuiltinExecutorType id) { constructBuiltinExecutorType(id) } or + /** + * INTERNAL: Do not use. + */ + TBuiltinFixedArrayType(Raw::BuiltinFixedArrayType id) { constructBuiltinFixedArrayType(id) } or /** * INTERNAL: Do not use. */ @@ -1389,8 +1393,8 @@ module Synth { */ class TBuiltinType = TAnyBuiltinIntegerType or TBuiltinBridgeObjectType or TBuiltinDefaultActorStorageType or - TBuiltinExecutorType or TBuiltinFloatType or TBuiltinJobType or TBuiltinNativeObjectType or - TBuiltinRawPointerType or TBuiltinRawUnsafeContinuationType or + TBuiltinExecutorType or TBuiltinFixedArrayType or TBuiltinFloatType or TBuiltinJobType or + TBuiltinNativeObjectType or TBuiltinRawPointerType or TBuiltinRawUnsafeContinuationType or TBuiltinUnsafeValueBufferType or TBuiltinVectorType; /** @@ -2861,6 +2865,14 @@ module Synth { result = TBuiltinExecutorType(e) } + /** + * INTERNAL: Do not use. + * Converts a raw element to a synthesized `TBuiltinFixedArrayType`, if possible. + */ + TBuiltinFixedArrayType convertBuiltinFixedArrayTypeFromRaw(Raw::Element e) { + result = TBuiltinFixedArrayType(e) + } + /** * INTERNAL: Do not use. * Converts a raw element to a synthesized `TBuiltinFloatType`, if possible. @@ -4022,6 +4034,8 @@ module Synth { or result = convertBuiltinExecutorTypeFromRaw(e) or + result = convertBuiltinFixedArrayTypeFromRaw(e) + or result = convertBuiltinFloatTypeFromRaw(e) or result = convertBuiltinJobTypeFromRaw(e) @@ -5593,6 +5607,14 @@ module Synth { e = TBuiltinExecutorType(result) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TBuiltinFixedArrayType` to a raw DB element, if possible. + */ + Raw::Element convertBuiltinFixedArrayTypeToRaw(TBuiltinFixedArrayType e) { + e = TBuiltinFixedArrayType(result) + } + /** * INTERNAL: Do not use. * Converts a synthesized `TBuiltinFloatType` to a raw DB element, if possible. @@ -6754,6 +6776,8 @@ module Synth { or result = convertBuiltinExecutorTypeToRaw(e) or + result = convertBuiltinFixedArrayTypeToRaw(e) + or result = convertBuiltinFloatTypeToRaw(e) or result = convertBuiltinJobTypeToRaw(e) diff --git a/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll b/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll index a9225a1b0ce..8ffefd96281 100644 --- a/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll +++ b/swift/ql/lib/codeql/swift/generated/SynthConstructors.qll @@ -207,6 +207,7 @@ import codeql.swift.elements.type.internal.BoundGenericStructTypeConstructor import codeql.swift.elements.type.internal.BuiltinBridgeObjectTypeConstructor import codeql.swift.elements.type.internal.BuiltinDefaultActorStorageTypeConstructor import codeql.swift.elements.type.internal.BuiltinExecutorTypeConstructor +import codeql.swift.elements.type.internal.BuiltinFixedArrayTypeConstructor import codeql.swift.elements.type.internal.BuiltinFloatTypeConstructor import codeql.swift.elements.type.internal.BuiltinIntegerLiteralTypeConstructor import codeql.swift.elements.type.internal.BuiltinIntegerTypeConstructor diff --git a/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll b/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll new file mode 100644 index 00000000000..b61533168b7 --- /dev/null +++ b/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll @@ -0,0 +1,24 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the generated definition of `BuiltinFixedArrayType`. + * INTERNAL: Do not import directly. + */ + +private import codeql.swift.generated.Synth +private import codeql.swift.generated.Raw +import codeql.swift.elements.type.internal.BuiltinTypeImpl::Impl as BuiltinTypeImpl + +/** + * INTERNAL: This module contains the fully generated definition of `BuiltinFixedArrayType` and should not + * be referenced directly. + */ +module Generated { + /** + * A builtin type representing N values stored contiguously. + * INTERNAL: Do not reference the `Generated::BuiltinFixedArrayType` class directly. + * Use the subclass `BuiltinFixedArrayType`, where the following predicates are available. + */ + class BuiltinFixedArrayType extends Synth::TBuiltinFixedArrayType, BuiltinTypeImpl::BuiltinType { + override string getAPrimaryQlClass() { result = "BuiltinFixedArrayType" } + } +} diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 4295ec72e82..987ab0bc091 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -2220,6 +2220,7 @@ any_generic_type_parents( //dir=type | @builtin_bridge_object_type | @builtin_default_actor_storage_type | @builtin_executor_type +| @builtin_fixed_array_type | @builtin_float_type | @builtin_job_type | @builtin_native_object_type @@ -2402,6 +2403,10 @@ builtin_executor_types( //dir=type unique int id: @builtin_executor_type ); +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + builtin_float_types( //dir=type unique int id: @builtin_float_type ); diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected index 27e4e6f0868..1b64e9f4a22 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected @@ -2,6 +2,9 @@ | Builtin.Executor | BuiltinExecutorType | getName: | Executor | getCanonicalType: | Builtin.Executor | | Builtin.FPIEEE32 | BuiltinFloatType | getName: | FPIEEE32 | getCanonicalType: | Builtin.FPIEEE32 | | Builtin.FPIEEE64 | BuiltinFloatType | getName: | FPIEEE64 | getCanonicalType: | Builtin.FPIEEE64 | +| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | +| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | | Builtin.IntLiteral | BuiltinIntegerLiteralType | getName: | IntLiteral | getCanonicalType: | Builtin.IntLiteral | | Builtin.Job | BuiltinJobType | getName: | Job | getCanonicalType: | Builtin.Job | | Builtin.NativeObject | BuiltinNativeObjectType | getName: | NativeObject | getCanonicalType: | Builtin.NativeObject | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/fixed_array.swift b/swift/ql/test/extractor-tests/generated/type/BuiltinType/fixed_array.swift new file mode 100644 index 00000000000..ab422992106 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/fixed_array.swift @@ -0,0 +1,9 @@ +//codeql-extractor-options: -enable-experimental-feature BuiltinModule -enable-experimental-feature ValueGenerics -disable-availability-checking + +import Builtin + +struct A { + var x: Builtin.FixedArray +} + +func f(x: Builtin.FixedArray<4, Int>) {} diff --git a/swift/schema.py b/swift/schema.py index 917f5a3a30c..fc923d0c6a3 100644 --- a/swift/schema.py +++ b/swift/schema.py @@ -1475,3 +1475,9 @@ class TypeValueExpr(Expr): class IntegerType(Type): value: string + +class BuiltinFixedArrayType(BuiltinType): + """ + A builtin type representing N values stored contiguously. + """ + pass From 54f0eed2c67e96568896fc0728867bbebf0e21b2 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 2 May 2025 13:54:58 +0100 Subject: [PATCH 239/656] Shared: Rename 'asLiftedTaintModel' to 'asLiftedModel'. --- .../codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll | 2 +- shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index 0c9e4349dfa..34ea0dae6e6 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -562,7 +562,7 @@ module MakeModelGeneratorFactory< private string captureThroughFlow(DataFlowSummaryTargetApi api, boolean preservesValue) { exists(string input, string output | preservesValue = max(boolean b | captureThroughFlow0(api, _, input, _, output, b)) and - result = ModelPrintingSummary::asLiftedTaintModel(api, input, output, preservesValue) + result = ModelPrintingSummary::asLiftedModel(api, input, output, preservesValue) ) } diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll index 23bca7e930b..d4fbd9062b6 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelPrinting.qll @@ -97,7 +97,7 @@ module ModelPrintingImpl { * Gets the lifted taint summary model for `api` with `input` and `output`. */ bindingset[input, output, preservesValue] - string asLiftedTaintModel( + string asLiftedModel( Printing::SummaryApi api, string input, string output, boolean preservesValue ) { result = asModel(api, input, output, preservesValue, true) From 4d2f2b89e76a4ef97e4d9a989e0df78cd0b14442 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 2 May 2025 14:02:41 +0100 Subject: [PATCH 240/656] Shared/Java/C#/Rust/C++: Rename 'captureHeuristicFlow' to 'captureFlow'. --- .../dataflow/CaptureHeuristicSummaryModels.ql | 2 +- .../modelgenerator/debug/CaptureSummaryModelsPath.ql | 9 ++++----- .../dataflow/CaptureHeuristicSummaryModels.ql | 2 +- .../modelgenerator/debug/CaptureSummaryModelsPath.ql | 9 ++++----- .../dataflow/CaptureHeuristicSummaryModels.ql | 2 +- .../modelgenerator/debug/CaptureSummaryModelsPath.ql | 9 ++++----- .../mad/modelgenerator/internal/ModelGeneratorImpl.qll | 4 ++-- 7 files changed, 17 insertions(+), 20 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql index 6c35b568f96..ec9cb3400df 100644 --- a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql +++ b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql @@ -4,7 +4,7 @@ import SummaryModels import InlineModelsAsDataTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(MadRelevantFunction c) { result = Heuristic::captureHeuristicFlow(c, _) } + string getCapturedModel(MadRelevantFunction c) { result = Heuristic::captureFlow(c, _) } string getKind() { result = "heuristic-summary" } } diff --git a/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql b/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql index fa7921d9b63..096aea1790e 100644 --- a/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql +++ b/csharp/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql @@ -11,16 +11,15 @@ import csharp import utils.modelgenerator.internal.CaptureModels import SummaryModels -import Heuristic -import PropagateTaintFlow::PathGraph +import Heuristic::PropagateTaintFlow::PathGraph from - PropagateTaintFlow::PathNode source, PropagateTaintFlow::PathNode sink, + Heuristic::PropagateTaintFlow::PathNode source, Heuristic::PropagateTaintFlow::PathNode sink, DataFlowSummaryTargetApi api, DataFlow::Node p, DataFlow::Node returnNodeExt where - PropagateTaintFlow::flowPath(source, sink) and + Heuristic::PropagateTaintFlow::flowPath(source, sink) and p = source.getNode() and returnNodeExt = sink.getNode() and - captureThroughFlow0(api, p, returnNodeExt) + Heuristic::captureThroughFlow0(api, p, returnNodeExt) select sink.getNode(), source, sink, "There is flow from $@ to the $@.", source.getNode(), "parameter", sink.getNode(), "return value" diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql index c21a53dd844..cf52ff8cf25 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql +++ b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql @@ -4,7 +4,7 @@ import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Callable c) { result = Heuristic::captureHeuristicFlow(c, _) } + string getCapturedModel(Callable c) { result = Heuristic::captureFlow(c, _) } string getKind() { result = "heuristic-summary" } } diff --git a/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql b/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql index d4f3c49e14e..20559f00cbf 100644 --- a/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql +++ b/java/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql @@ -12,16 +12,15 @@ import java import semmle.code.java.dataflow.DataFlow import utils.modelgenerator.internal.CaptureModels import SummaryModels -import Heuristic -import PropagateTaintFlow::PathGraph +import Heuristic::PropagateTaintFlow::PathGraph from - PropagateTaintFlow::PathNode source, PropagateTaintFlow::PathNode sink, + Heuristic::PropagateTaintFlow::PathNode source, Heuristic::PropagateTaintFlow::PathNode sink, DataFlowSummaryTargetApi api, DataFlow::Node p, DataFlow::Node returnNodeExt where - PropagateTaintFlow::flowPath(source, sink) and + Heuristic::PropagateTaintFlow::flowPath(source, sink) and p = source.getNode() and returnNodeExt = sink.getNode() and - captureThroughFlow0(api, p, returnNodeExt) + Heuristic::captureThroughFlow0(api, p, returnNodeExt) select sink.getNode(), source, sink, "There is flow from $@ to the $@.", source.getNode(), "parameter", sink.getNode(), "return value" diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql b/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql index 7b40492d35a..ae1b25a2814 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureHeuristicSummaryModels.ql @@ -4,7 +4,7 @@ import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Callable c) { result = Heuristic::captureHeuristicFlow(c, _) } + string getCapturedModel(Callable c) { result = Heuristic::captureFlow(c, _) } string getKind() { result = "heuristic-summary" } } diff --git a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql index 8ae02ce1d69..7c7a54aea51 100644 --- a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql +++ b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPath.ql @@ -11,16 +11,15 @@ private import codeql.rust.dataflow.DataFlow import utils.modelgenerator.internal.CaptureModels import SummaryModels -import Heuristic -import PropagateTaintFlow::PathGraph +import Heuristic::PropagateTaintFlow::PathGraph from - PropagateTaintFlow::PathNode source, PropagateTaintFlow::PathNode sink, + Heuristic::PropagateTaintFlow::PathNode source, Heuristic::PropagateTaintFlow::PathNode sink, DataFlowSummaryTargetApi api, DataFlow::Node p, DataFlow::Node returnNodeExt where - PropagateTaintFlow::flowPath(source, sink) and + Heuristic::PropagateTaintFlow::flowPath(source, sink) and p = source.getNode() and returnNodeExt = sink.getNode() and - captureThroughFlow0(api, p, returnNodeExt) + Heuristic::captureThroughFlow0(api, p, returnNodeExt) select sink.getNode(), source, sink, "There is flow from $@ to the $@.", source.getNode(), "parameter", sink.getNode(), "return value" diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index 34ea0dae6e6..1eed895cc87 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -572,7 +572,7 @@ module MakeModelGeneratorFactory< * * `preservesValue` is `true` if the summary is value-preserving, and `false` otherwise. */ - string captureHeuristicFlow(DataFlowSummaryTargetApi api, boolean preservesValue) { + string captureFlow(DataFlowSummaryTargetApi api, boolean preservesValue) { result = captureQualifierFlow(api) and preservesValue = true or result = captureThroughFlow(api, preservesValue) @@ -988,7 +988,7 @@ module MakeModelGeneratorFactory< api0.lift() = api.lift() and exists(ContentSensitive::captureFlow(api0, true, _)) ) and - result = Heuristic::captureHeuristicFlow(api, preservesValue) and + result = Heuristic::captureFlow(api, preservesValue) and lift = true ) } From 674800748befb0d0362a50bf16aa316d4032e139 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 2 May 2025 15:24:31 +0200 Subject: [PATCH 241/656] Rust: fix location emission --- rust/extractor/src/translate/base.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 476c02b3adf..d0e99e8a5b4 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -160,22 +160,21 @@ impl<'a> Translator<'a> { } } - fn location_for_node(&mut self, node: &impl ast::AstNode) -> (LineCol, LineCol) { + fn location_for_node(&mut self, node: &impl ast::AstNode) -> Option<(LineCol, LineCol)> { self.text_range_for_node(node) .and_then(|r| self.location(r)) - .unwrap_or(UNKNOWN_LOCATION) } pub fn emit_location(&mut self, label: Label, node: &impl ast::AstNode) { match self.location_for_node(node) { - UNKNOWN_LOCATION => self.emit_diagnostic( + None => self.emit_diagnostic( DiagnosticSeverity::Debug, "locations".to_owned(), "missing location for AstNode".to_owned(), "missing location for AstNode".to_owned(), UNKNOWN_LOCATION, ), - (start, end) => self.trap.emit_location(self.label, label, start, end), + Some((start, end)) => self.trap.emit_location(self.label, label, start, end), }; } pub fn emit_location_token( @@ -669,7 +668,7 @@ impl<'a> Translator<'a> { "item_expansion".to_owned(), message.clone(), message, - location, + location.unwrap_or(UNKNOWN_LOCATION), ); None })?; From 95ac458d2a992f7dc5a9e045964a0126a14113bc Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 2 May 2025 15:00:33 +0200 Subject: [PATCH 242/656] Swift: Add upgrade and downgrade scripts --- .../downgrade.ql | 50 + .../old.dbscheme | 2832 +++++++++++++++++ .../swift.dbscheme | 2810 ++++++++++++++++ .../upgrade.properties | 13 + .../old.dbscheme | 2810 ++++++++++++++++ .../swift.dbscheme | 2832 +++++++++++++++++ .../upgrade.properties | 2 + 7 files changed, 11349 insertions(+) create mode 100644 swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/downgrade.ql create mode 100644 swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/old.dbscheme create mode 100644 swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/swift.dbscheme create mode 100644 swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/upgrade.properties create mode 100644 swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/old.dbscheme create mode 100644 swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/swift.dbscheme create mode 100644 swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/upgrade.properties diff --git a/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/downgrade.ql b/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/downgrade.ql new file mode 100644 index 00000000000..ee11b5a8654 --- /dev/null +++ b/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/downgrade.ql @@ -0,0 +1,50 @@ +class Element extends @element { + string toString() { none() } +} + +predicate removedClass(Element e, string name, Element child) { + type_value_exprs(e, child) and + name = "TypeValueExpr" + or + unsafe_cast_exprs(e) and + name = "UnsafeCastExpr" and + implicit_conversion_exprs(e, child) +} + +predicate removedClass(Element e, string name) { + integer_types(e, _) and + name = "IntegerType" + or + builtin_fixed_array_types(e) and + name = "BuiltinFixedArrayType" + or + removedClass(e, name, _) +} + +query predicate new_unspecified_elements(Element e, string property, string error) { + unspecified_elements(e, property, error) + or + exists(string name | + removedClass(e, name) and + property = "" and + error = name + " nodes removed during database downgrade. Please update your CodeQL code." + ) +} + +query predicate new_unspecified_element_children(Element e, int index, Element child) { + unspecified_element_children(e, index, child) + or + removedClass(e, _, child) and index = 0 +} + +query predicate new_implicit_conversion_exprs(Element e, Element child) { + implicit_conversion_exprs(e, child) and not removedClass(e, _) +} + +query predicate new_expr_types(Element e, Element type) { + expr_types(e, type) and not removedClass(e, _) +} + +query predicate new_types(Element e, string name, Element canonicalType) { + types(e, name, canonicalType) and not removedClass(e, _) +} diff --git a/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/old.dbscheme b/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/old.dbscheme new file mode 100644 index 00000000000..987ab0bc091 --- /dev/null +++ b/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/old.dbscheme @@ -0,0 +1,2832 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +@availability_spec = + @other_availability_spec +| @platform_version_availability_spec +; + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +other_availability_specs( + unique int id: @other_availability_spec +); + +platform_version_availability_specs( + unique int id: @platform_version_availability_spec, + string platform: string ref, + string version: string ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_fixed_array_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @opened_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +opened_archetype_types( //dir=type + unique int id: @opened_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/swift.dbscheme b/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/swift.dbscheme new file mode 100644 index 00000000000..4dd3d5ca8a8 --- /dev/null +++ b/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/swift.dbscheme @@ -0,0 +1,2810 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +@availability_spec = + @other_availability_spec +| @platform_version_availability_spec +; + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +other_availability_specs( + unique int id: @other_availability_spec +); + +platform_version_availability_specs( + unique int id: @platform_version_availability_spec, + string platform: string ref, + string version: string ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @opened_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +opened_archetype_types( //dir=type + unique int id: @opened_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/upgrade.properties b/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/upgrade.properties new file mode 100644 index 00000000000..5817523dc52 --- /dev/null +++ b/swift/downgrades/987ab0bc0911f8c88449210e21d2ee80ebcb488a/upgrade.properties @@ -0,0 +1,13 @@ +description: Add `UnsafeCastExpr`, `TypeValueExpr`, `IntegerType`, and `BuiltinFixedArrayType`. +compatibility: backwards + +builtin_fixed_array_types.rel: delete +integer_types.rel: delete +type_value_exprs.rel: delete +unsafe_cast_exprs.rel: delete + +unspecified_elements.rel: run downgrade.ql new_unspecified_elements +unspecified_element_children.rel: run downgrade.ql new_unspecified_element_children +implicit_conversion_exprs.rel: run downgrade.ql new_implicit_conversion_exprs +expr_types.rel: run downgrade.ql new_expr_types +types.rel: run downgrade.ql new_types diff --git a/swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/old.dbscheme b/swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/old.dbscheme new file mode 100644 index 00000000000..4dd3d5ca8a8 --- /dev/null +++ b/swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/old.dbscheme @@ -0,0 +1,2810 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +@availability_spec = + @other_availability_spec +| @platform_version_availability_spec +; + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +other_availability_specs( + unique int id: @other_availability_spec +); + +platform_version_availability_specs( + unique int id: @platform_version_availability_spec, + string platform: string ref, + string version: string ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @opened_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +opened_archetype_types( //dir=type + unique int id: @opened_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/swift.dbscheme b/swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/swift.dbscheme new file mode 100644 index 00000000000..987ab0bc091 --- /dev/null +++ b/swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/swift.dbscheme @@ -0,0 +1,2832 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +@availability_spec = + @other_availability_spec +| @platform_version_availability_spec +; + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +other_availability_specs( + unique int id: @other_availability_spec +); + +platform_version_availability_specs( + unique int id: @platform_version_availability_spec, + string platform: string ref, + string version: string ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_fixed_array_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @opened_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +opened_archetype_types( //dir=type + unique int id: @opened_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/upgrade.properties b/swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/upgrade.properties new file mode 100644 index 00000000000..2beb5c2591d --- /dev/null +++ b/swift/ql/lib/upgrades/4dd3d5ca8a89952485b3e3b2141b6bb8c22cf945/upgrade.properties @@ -0,0 +1,2 @@ +description: Add `UnsafeCastExpr`, `TypeValueExpr`, `IntegerType`, and `BuiltinFixedArrayType`. +compatibility: full From 4ca98ba816af1facfe9f6743a95fadbd38cec97f Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 18 Apr 2025 09:05:30 +0200 Subject: [PATCH 243/656] Rust: test with format! macro in a block --- .../PathResolutionConsistency.expected | 24 ++++---- .../security/CWE-089/SqlInjection.expected | 57 +++++++------------ .../test/query-tests/security/CWE-089/sqlx.rs | 6 +- 3 files changed, 38 insertions(+), 49 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected index 9567c4ea517..857bfe31380 100644 --- a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected @@ -1,13 +1,13 @@ multipleMethodCallTargets -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | diff --git a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected index 7c3c1419474..e56e7e3ca36 100644 --- a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected +++ b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected @@ -1,12 +1,10 @@ #select -| sqlx.rs:62:26:62:46 | safe_query_3.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:62:26:62:46 | safe_query_3.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | -| sqlx.rs:63:26:63:48 | unsafe_query_1.as_str() | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:63:26:63:48 | unsafe_query_1.as_str() | This query depends on a $@. | sqlx.rs:47:22:47:35 | ...::args | user-provided value | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | -| sqlx.rs:67:30:67:52 | unsafe_query_4.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:67:30:67:52 | unsafe_query_4.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | -| sqlx.rs:73:25:73:45 | safe_query_3.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:73:25:73:45 | safe_query_3.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | -| sqlx.rs:74:25:74:47 | unsafe_query_1.as_str() | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:74:25:74:47 | unsafe_query_1.as_str() | This query depends on a $@. | sqlx.rs:47:22:47:35 | ...::args | user-provided value | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | -| sqlx.rs:78:29:78:51 | unsafe_query_4.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:78:29:78:51 | unsafe_query_4.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | +| sqlx.rs:66:26:66:46 | safe_query_3.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:66:26:66:46 | safe_query_3.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | +| sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | This query depends on a $@. | sqlx.rs:47:22:47:35 | ...::args | user-provided value | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | +| sqlx.rs:77:25:77:45 | safe_query_3.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:77:25:77:45 | safe_query_3.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | +| sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | This query depends on a $@. | sqlx.rs:47:22:47:35 | ...::args | user-provided value | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | edges | sqlx.rs:47:9:47:18 | arg_string | sqlx.rs:53:27:53:36 | arg_string | provenance | | | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:47:22:47:37 | ...::args(...) [element] | provenance | Src:MaD:1 | @@ -15,7 +13,6 @@ edges | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | sqlx.rs:47:9:47:18 | arg_string | provenance | | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | provenance | MaD:8 | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:54:27:54:39 | remote_string | provenance | | -| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:56:34:56:89 | MacroExpr | provenance | | | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | provenance | Src:MaD:2 | | sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | sqlx.rs:48:25:48:78 | ... .unwrap() | provenance | MaD:6 | | sqlx.rs:48:25:48:78 | ... .unwrap() | sqlx.rs:48:25:48:85 | ... .text() [Ok] | provenance | MaD:11 | @@ -24,28 +21,21 @@ edges | sqlx.rs:49:9:49:21 | remote_number | sqlx.rs:52:32:52:87 | MacroExpr | provenance | | | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | sqlx.rs:49:25:49:65 | ... .unwrap_or(...) | provenance | MaD:7 | | sqlx.rs:49:25:49:65 | ... .unwrap_or(...) | sqlx.rs:49:9:49:21 | remote_number | provenance | | -| sqlx.rs:52:9:52:20 | safe_query_3 | sqlx.rs:62:26:62:46 | safe_query_3.as_str() | provenance | MaD:3 | -| sqlx.rs:52:9:52:20 | safe_query_3 | sqlx.rs:73:25:73:45 | safe_query_3.as_str() | provenance | MaD:3 | +| sqlx.rs:52:9:52:20 | safe_query_3 | sqlx.rs:66:26:66:46 | safe_query_3.as_str() | provenance | MaD:3 | +| sqlx.rs:52:9:52:20 | safe_query_3 | sqlx.rs:77:25:77:45 | safe_query_3.as_str() | provenance | MaD:3 | | sqlx.rs:52:24:52:88 | res | sqlx.rs:52:32:52:87 | { ... } | provenance | | | sqlx.rs:52:32:52:87 | ...::format(...) | sqlx.rs:52:24:52:88 | res | provenance | | | sqlx.rs:52:32:52:87 | ...::must_use(...) | sqlx.rs:52:9:52:20 | safe_query_3 | provenance | | | sqlx.rs:52:32:52:87 | MacroExpr | sqlx.rs:52:32:52:87 | ...::format(...) | provenance | MaD:4 | | sqlx.rs:52:32:52:87 | { ... } | sqlx.rs:52:32:52:87 | ...::must_use(...) | provenance | MaD:9 | -| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:63:26:63:48 | unsafe_query_1.as_str() | provenance | MaD:3 | -| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:74:25:74:47 | unsafe_query_1.as_str() | provenance | MaD:3 | +| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | provenance | MaD:3 | +| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | provenance | MaD:3 | | sqlx.rs:53:26:53:36 | &arg_string [&ref] | sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | provenance | | | sqlx.rs:53:27:53:36 | arg_string | sqlx.rs:53:26:53:36 | &arg_string [&ref] | provenance | | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | provenance | MaD:3 | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | provenance | MaD:3 | +| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | provenance | MaD:3 | +| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | provenance | MaD:3 | | sqlx.rs:54:26:54:39 | &remote_string [&ref] | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | provenance | | | sqlx.rs:54:27:54:39 | remote_string | sqlx.rs:54:26:54:39 | &remote_string [&ref] | provenance | | -| sqlx.rs:56:9:56:22 | unsafe_query_4 | sqlx.rs:67:30:67:52 | unsafe_query_4.as_str() | provenance | MaD:3 | -| sqlx.rs:56:9:56:22 | unsafe_query_4 | sqlx.rs:78:29:78:51 | unsafe_query_4.as_str() | provenance | MaD:3 | -| sqlx.rs:56:26:56:90 | res | sqlx.rs:56:34:56:89 | { ... } | provenance | | -| sqlx.rs:56:34:56:89 | ...::format(...) | sqlx.rs:56:26:56:90 | res | provenance | | -| sqlx.rs:56:34:56:89 | ...::must_use(...) | sqlx.rs:56:9:56:22 | unsafe_query_4 | provenance | | -| sqlx.rs:56:34:56:89 | MacroExpr | sqlx.rs:56:34:56:89 | ...::format(...) | provenance | MaD:4 | -| sqlx.rs:56:34:56:89 | { ... } | sqlx.rs:56:34:56:89 | ...::must_use(...) | provenance | MaD:9 | models | 1 | Source: lang:std; crate::env::args; commandargs; ReturnValue.Element | | 2 | Source: repo:https://github.com/seanmonstar/reqwest:reqwest; crate::blocking::get; remote; ReturnValue.Field[crate::result::Result::Ok(0)] | @@ -85,18 +75,13 @@ nodes | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | semmle.label | unsafe_query_2 [&ref] | | sqlx.rs:54:26:54:39 | &remote_string [&ref] | semmle.label | &remote_string [&ref] | | sqlx.rs:54:27:54:39 | remote_string | semmle.label | remote_string | -| sqlx.rs:56:9:56:22 | unsafe_query_4 | semmle.label | unsafe_query_4 | -| sqlx.rs:56:26:56:90 | res | semmle.label | res | -| sqlx.rs:56:34:56:89 | ...::format(...) | semmle.label | ...::format(...) | -| sqlx.rs:56:34:56:89 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| sqlx.rs:56:34:56:89 | MacroExpr | semmle.label | MacroExpr | -| sqlx.rs:56:34:56:89 | { ... } | semmle.label | { ... } | -| sqlx.rs:62:26:62:46 | safe_query_3.as_str() | semmle.label | safe_query_3.as_str() | -| sqlx.rs:63:26:63:48 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | -| sqlx.rs:65:30:65:52 | unsafe_query_2.as_str() | semmle.label | unsafe_query_2.as_str() | -| sqlx.rs:67:30:67:52 | unsafe_query_4.as_str() | semmle.label | unsafe_query_4.as_str() | -| sqlx.rs:73:25:73:45 | safe_query_3.as_str() | semmle.label | safe_query_3.as_str() | -| sqlx.rs:74:25:74:47 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | -| sqlx.rs:76:29:76:51 | unsafe_query_2.as_str() | semmle.label | unsafe_query_2.as_str() | -| sqlx.rs:78:29:78:51 | unsafe_query_4.as_str() | semmle.label | unsafe_query_4.as_str() | +| sqlx.rs:66:26:66:46 | safe_query_3.as_str() | semmle.label | safe_query_3.as_str() | +| sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | semmle.label | unsafe_query_2.as_str() | +| sqlx.rs:77:25:77:45 | safe_query_3.as_str() | semmle.label | safe_query_3.as_str() | +| sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | semmle.label | unsafe_query_2.as_str() | subpaths +testFailures +| sqlx.rs:71:63:71:109 | //... | Missing result: Alert[rust/sql-injection]=remote1 | +| sqlx.rs:82:77:82:123 | //... | Missing result: Alert[rust/sql-injection]=remote1 | diff --git a/rust/ql/test/query-tests/security/CWE-089/sqlx.rs b/rust/ql/test/query-tests/security/CWE-089/sqlx.rs index f051cf49e08..3de58350f20 100644 --- a/rust/ql/test/query-tests/security/CWE-089/sqlx.rs +++ b/rust/ql/test/query-tests/security/CWE-089/sqlx.rs @@ -53,7 +53,11 @@ async fn test_sqlx_mysql(url: &str, enable_remote: bool) -> Result<(), sqlx::Err let unsafe_query_1 = &arg_string; let unsafe_query_2 = &remote_string; let unsafe_query_3 = String::from("SELECT * FROM people WHERE firstname='") + &remote_string + "'"; - let unsafe_query_4 = format!("SELECT * FROM people WHERE firstname='{remote_string}'"); + let unsafe_query_4 = if remote_string == "*" { + "SELECT * FROM people".to_string() + } else { + format!("SELECT * FROM people WHERE firstname='{remote_string}'") + }; let prepared_query_1 = String::from("SELECT * FROM people WHERE firstname=?"); // (prepared arguments are safe) // direct execution From 9ca6706550db248a35a10a3f278b0b779d1dd9b7 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Thu, 17 Apr 2025 18:57:26 +0200 Subject: [PATCH 244/656] Rust: make MacroStmts a CFG Expr --- rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 117 ++++++++++-------- rust/ql/.generated.list | 12 +- .../internal/ControlFlowGraphImpl.qll | 2 +- .../internal/generated/CfgNodes.qll | 64 ++++++++++ .../lib/codeql/rust/elements/MacroStmts.qll | 1 - .../internal/generated/MacroStmts.qll | 4 +- .../internal/generated/ParentChild.qll | 44 +++---- .../rust/elements/internal/generated/Raw.qll | 46 +++---- .../elements/internal/generated/Synth.qll | 30 ++--- rust/ql/lib/rust.dbscheme | 36 +++--- .../controlflow/BasicBlocks.expected | 8 +- .../library-tests/controlflow/Cfg.expected | 58 ++++----- .../dataflow/local/DataFlowStep.expected | 3 + .../test/library-tests/variables/Cfg.expected | 24 ++-- rust/schema/annotations.py | 6 +- 16 files changed, 267 insertions(+), 190 deletions(-) diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 82b6665615b..158f55acad5 100644 --- a/rust/extractor/src/generated/.generated.list +++ b/rust/extractor/src/generated/.generated.list @@ -1,2 +1,2 @@ mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 -top.rs 060225ccbae440eef117e2ef0a82f3deba29e6ba2d35f00281f9c0e6a945e692 060225ccbae440eef117e2ef0a82f3deba29e6ba2d35f00281f9c0e6a945e692 +top.rs f7c07bc5a6ad3e1a3af05d16b5b448509f9f8403a510bfca1db42348d3c7038b f7c07bc5a6ad3e1a3af05d16b5b448509f9f8403a510bfca1db42348d3c7038b diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index caeeb7552a7..a79bfc7bd0a 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -1515,60 +1515,6 @@ impl From> for trap::Label { } } -#[derive(Debug)] -pub struct MacroStmts { - pub id: trap::TrapId, - pub expr: Option>, - pub statements: Vec>, -} - -impl trap::TrapEntry for MacroStmts { - fn extract_id(&mut self) -> trap::TrapId { - std::mem::replace(&mut self.id, trap::TrapId::Star) - } - - fn emit(self, id: trap::Label, out: &mut trap::Writer) { - out.add_tuple("macro_stmts", vec![id.into()]); - if let Some(v) = self.expr { - out.add_tuple("macro_stmts_exprs", vec![id.into(), v.into()]); - } - for (i, v) in self.statements.into_iter().enumerate() { - out.add_tuple("macro_stmts_statements", vec![id.into(), i.into(), v.into()]); - } - } -} - -impl trap::TrapClass for MacroStmts { - fn class_name() -> &'static str { "MacroStmts" } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of AstNode - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of Locatable - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of Element - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct MatchArm { pub id: trap::TrapId, @@ -6479,6 +6425,69 @@ impl From> for trap::Label { } } +#[derive(Debug)] +pub struct MacroStmts { + pub id: trap::TrapId, + pub expr: Option>, + pub statements: Vec>, +} + +impl trap::TrapEntry for MacroStmts { + fn extract_id(&mut self) -> trap::TrapId { + std::mem::replace(&mut self.id, trap::TrapId::Star) + } + + fn emit(self, id: trap::Label, out: &mut trap::Writer) { + out.add_tuple("macro_stmts", vec![id.into()]); + if let Some(v) = self.expr { + out.add_tuple("macro_stmts_exprs", vec![id.into(), v.into()]); + } + for (i, v) in self.statements.into_iter().enumerate() { + out.add_tuple("macro_stmts_statements", vec![id.into(), i.into(), v.into()]); + } + } +} + +impl trap::TrapClass for MacroStmts { + fn class_name() -> &'static str { "MacroStmts" } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of Expr + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of AstNode + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of Locatable + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of Element + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + #[derive(Debug)] pub struct MacroTypeRepr { pub id: trap::TrapId, diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 0ff3e721e23..bc447c524e8 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -1,4 +1,4 @@ -lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll d1cc3cfc9ae558b1cb473e3bfca66e5c424445b98ce343eb6f3050321fe4f8a0 8d00e385230b45360bc6281af01e0f674c58117593fd1b3cb7eb0c8a45517542 +lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 08d3062aa600c5dceba897f067b1142a382b7a342acc9f7e7548b0b9df0dab36 b9bc250dbd89e95bf8fd12eacfa725ad1b50ac644599da6100cff33adfb8a18e lib/codeql/rust/elements/Abi.qll 4c973d28b6d628f5959d1f1cc793704572fd0acaae9a97dfce82ff9d73f73476 250f68350180af080f904cd34cb2af481c5c688dc93edf7365fd0ae99855e893 lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be lib/codeql/rust/elements/ArgList.qll 661f5100f5d3ef8351452d9058b663a2a5c720eea8cf11bedd628969741486a2 28e424aac01a90fb58cd6f9f83c7e4cf379eea39e636bc0ba07efc818be71c71 @@ -95,7 +95,7 @@ lib/codeql/rust/elements/MacroExpr.qll ea9fed13f610bab1a2c4541c994510e0cb806530b lib/codeql/rust/elements/MacroItems.qll 00a5d41f7bb836d952abbd9382e42f72a9d81e65646a15a460b35ccd07a866c6 00efdb4d701b5599d76096f740da9ec157804865267b7e29bc2a214cbf03763e lib/codeql/rust/elements/MacroPat.qll dbf193b4fb544ac0b5a7dcfc31a6652de7239b6e643ff15b05868b2c142e940c 19b45c0a1eb1198e450c05d564b5d4aa0d6da29e7db84b9521eadf901e20a932 lib/codeql/rust/elements/MacroRules.qll a94535506798077043b9c1470992ac4310bf67bcce5f722080886d1b3e6d90d1 bd8e08a7171991abc85100b45267631e66d1b332caf1e5882cd17caee5cf18a3 -lib/codeql/rust/elements/MacroStmts.qll 6e9a1f90231cb72b27d3ff9479e399a9fba4abd0872a5005ab2fac45d5ca9be0 d6ca3a8254fc45794a93c451a3305c9b4be033a467ad72158d40d6f675a377a0 +lib/codeql/rust/elements/MacroStmts.qll 02c4e34d266d4564ea0433a3d6186402db516dc2dd9017d7c769a76300c2286d f4517fb9fea2ea64d4f2c1998a6899d2452878000ed6f8f31c5106ef0fb6783a lib/codeql/rust/elements/MacroTypeRepr.qll 92fa5f6d20cce8fa3f2b4b823a8a77fdb7c11f2c2b12b8f900828c3a54eca334 51289f2622d1bb58d9a093255da2c05084a0b184f02e69e2526ec7fefdfdfd75 lib/codeql/rust/elements/MatchArm.qll c39fd6cc0da24b1ff8d1e42835bcfee7695ad13580e3c7c50acd7c881b1cd894 62a31d2bd125e6aaebefc406e541a641271d3c497a377959f94dd4735b2bfbf8 lib/codeql/rust/elements/MatchArmList.qll e6c48fd7419d88e996b82eb45e4aa2686dfd079b283b02be7710192fb2cb93a0 0ec63a0ca56f5f7f80093fd3e77b198b74c6289e67be55dc6a4deb610753c7bd @@ -557,7 +557,7 @@ lib/codeql/rust/elements/internal/generated/MacroExpr.qll 03a1daa41866f51e479ac2 lib/codeql/rust/elements/internal/generated/MacroItems.qll 894890f61e118b3727d03ca813ae7220a15e45195f2d1d059cb1bba6802128c8 db3854b347f8782a3ec9f9a1439da822727b66f0bd33727383184ab65dbf29ac lib/codeql/rust/elements/internal/generated/MacroPat.qll 26bc55459a66359ad83ed7b25284a25cdbd48a868fd1bbf7e23e18b449395c43 f16ede334becba951873e585c52a3a9873c9251e3dab9a3c1a1681f632f2079f lib/codeql/rust/elements/internal/generated/MacroRules.qll 4fbd94f22b5ee0f3e5aaae39c2b9a5e9b7bf878a1017811ca589942f6de92843 49fb69543ee867bae196febea6918e621f335afdf4d3ccbf219965b37c7537b1 -lib/codeql/rust/elements/internal/generated/MacroStmts.qll cb4f3c2721a4d0c8522e51f567c675f4fc95f39bac8a2bd97e125d5553515ad2 09b5a739ccee75e6c556b34ecd6f78c7dc799029d9bc7df2e6169098d24f0ccd +lib/codeql/rust/elements/internal/generated/MacroStmts.qll d19f8b925d3b926c94e3d17c71aa4500899ec3cdd22c7e3428444e7e8e70bf97 69e64fc2089d6109de012956d1e9ddd86d468bb132e9b562efc06f359b00b0e7 lib/codeql/rust/elements/internal/generated/MacroTypeRepr.qll 4242e253fa36ee3f7d9d0677811ff5bc4ecfb02c76d768446a6a6dcd38061f68 a676632f3bb83142a0838601ae2a582d5c32d7939e4261eb8fccf3962bb06cb2 lib/codeql/rust/elements/internal/generated/MatchArm.qll f8c4c955c50f8398159c492d9d0a74f7b71e9510fcb8a3aab1d06e0f7e15b263 713939c7ef77ca73d95788096163c26213ab49f34ed41c6f4bc09a1ef9607b0d lib/codeql/rust/elements/internal/generated/MatchArmList.qll 13362680c037fe83fef4653562cc10a4429078316b5ec7c47b076336cf4aca2e 41c674293c13eceaca62134ae0c6778541f6a5201cbc5c146f0ba01b898dc267 @@ -579,7 +579,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll c808c9d84dd7800573832b lib/codeql/rust/elements/internal/generated/ParenExpr.qll bc0731505bfe88516205ec360582a4222d2681d11342c93e15258590ddee82f2 d4bd6e0c80cf1d63746c88d4bcb3a01d4c75732e5da09e3ebd9437ced227fb60 lib/codeql/rust/elements/internal/generated/ParenPat.qll 4f168ef5d5bb87a903251cc31b2e44a759b099ec69c90af31783fbb15778c940 0e34f94a45a13396fd57d94c245dc64d1adde2ab0e22b56946f7e94c04e297fc lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 40ab5c592e7699c621787793743e33988de71ff42ca27599f5ab3ddb70e3f7d8 12c0a6eed2202ee3e892f61da3b3ce77ac3190854cdf3097e8d2be98aa3cb91d -lib/codeql/rust/elements/internal/generated/ParentChild.qll d1770632e8d0c649ebcbcab9cbc653531ecf521bbf5d891941db8c0927ae6796 fb40a76aff319ec5f7dae9a05da083b337887b0918b3702641b39342213ddf6f +lib/codeql/rust/elements/internal/generated/ParentChild.qll 27c4e9351e8dcf0290a5959b634c15398196b312e75f7ef4716e7c56090a90aa 99b4716d995792105d1a20300f8710d3ae26ca59f3a0db076114509d8bdab85e lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll c5fa328ea60d3a3333d7c7bb3480969c1873166c7ac8ebb9d0afad7a8099d1a8 2dbbb6200d96f7db7dea4a55bdeab8d67b14d39a43e0bd54ada019f7e466f163 lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4 lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd @@ -594,7 +594,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 51d1e9e683fc79dddbff lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9 -lib/codeql/rust/elements/internal/generated/Raw.qll 6e33d9fa21ee3287a0ebc27856a09f4fdc4d587b5a31ff1c4337106de7ca1a2e eece38e6accb6b9d8838fd05edd7cbaf6f7ee37190adbef2b023ad91064d1622 +lib/codeql/rust/elements/internal/generated/Raw.qll 8aaa20dd4d49220f3eff2ac64f7a8d34f343d198b59785a06922c3642322e056 3d14ea25f0ad20af1bfb1b8e3e0e5fba9f1a1f764132c0d42972e08893ebd31b lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 3d8c0bd296d33b91a81633f697a43269a6538df06d277262d3990d3f6880ef57 13680f39e89bcd8299c218aba396f3deec804597e6f7cb7d4a7e7c748b6faa77 @@ -620,7 +620,7 @@ lib/codeql/rust/elements/internal/generated/StructFieldList.qll 8911a44217d091b0 lib/codeql/rust/elements/internal/generated/StructPat.qll c76fa005c2fd0448a8803233e1e8818c4123301eb66ac5cf69d0b9eaafc61e98 6e0dffccdce24bca20e87d5ba0f0995c9a1ae8983283e71e7dbfcf6fffc67a58 lib/codeql/rust/elements/internal/generated/StructPatField.qll 5b5c7302dbc4a902ca8e69ff31875c867e295a16a626ba3cef29cd0aa248f179 4e192a0df79947f5cb0d47fdbbba7986137a6a40a1be92ae119873e2fad67edf lib/codeql/rust/elements/internal/generated/StructPatFieldList.qll e34c003e660ba059ba81bb73b3c8d21bd2a47d0251569c46277dc9ccf2947b0a 85113f35ba5f6b9e01ad4072246a4de1ac0e4528348ac564868e96f34a3e09e2 -lib/codeql/rust/elements/internal/generated/Synth.qll 409b9ae5c78f47f271eb05a9eb7043df6cd6ca35ce381843714667f1f2dfdf9a aa4d5082abccd7cd47a493447eea79b0a3ff81439c333f05087030e76f0fa8e5 +lib/codeql/rust/elements/internal/generated/Synth.qll e35b960eeea21a70c94bd81001357fd18b1ecccef0a7b514e2a64e9091db21a2 319b9fa102d87d93d2157cd0fe7b5934d0892185e740d98b50c44cc5e99a4cd6 lib/codeql/rust/elements/internal/generated/SynthConstructors.qll fe007cf6eab5f0cf89ea1ea91e1f9b23e0fcf0f2872f52ef352584503f90aa29 fe007cf6eab5f0cf89ea1ea91e1f9b23e0fcf0f2872f52ef352584503f90aa29 lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b lib/codeql/rust/elements/internal/generated/TokenTree.qll 8577c2b097c1be2f0f7daa5acfcf146f78674a424d99563e08a84dd3e6d91b46 d2f30764e84dbfc0a6a5d3d8a5f935cd432413688cb32da9c94e420fbc10665c diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll index 900580914e2..298d7e49438 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll @@ -146,7 +146,7 @@ class MacroCallTree extends StandardPostOrderTree, MacroCall { override AstNode getChildNode(int i) { i = 0 and result = this.getExpanded() } } -class MacroStmtsTree extends StandardPreOrderTree, MacroStmts { +class MacroStmtsTree extends StandardPostOrderTree, MacroStmts { override AstNode getChildNode(int i) { result = this.getStatement(i) or diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll index 12ef6847b82..34ccb8d2381 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll @@ -1900,6 +1900,58 @@ module MakeCfgNodes Input> { predicate hasMacroCall() { exists(this.getMacroCall()) } } + final private class ParentMacroStmts extends ParentAstNode, MacroStmts { + override predicate relevantChild(AstNode child) { + none() + or + child = this.getExpr() + } + } + + /** + * A sequence of statements generated by a `MacroCall`. For example: + * ```rust + * fn main() { + * println!("Hello, world!"); // This macro expands into a list of statements + * } + * ``` + */ + final class MacroStmtsCfgNode extends CfgNodeFinal, ExprCfgNode { + private MacroStmts node; + + MacroStmtsCfgNode() { node = this.getAstNode() } + + /** Gets the underlying `MacroStmts`. */ + MacroStmts getMacroStmts() { result = node } + + /** + * Gets the expression of this macro statements, if it exists. + */ + ExprCfgNode getExpr() { + any(ChildMapping mapping).hasCfgChild(node, node.getExpr(), this, result) + } + + /** + * Holds if `getExpr()` exists. + */ + predicate hasExpr() { exists(this.getExpr()) } + + /** + * Gets the `index`th statement of this macro statements (0-based). + */ + Stmt getStatement(int index) { result = node.getStatement(index) } + + /** + * Gets any of the statements of this macro statements. + */ + Stmt getAStatement() { result = this.getStatement(_) } + + /** + * Gets the number of statements of this macro statements. + */ + int getNumberOfStatements() { result = count(int i | exists(this.getStatement(i))) } + } + final private class ParentMatchExpr extends ParentAstNode, MatchExpr { override predicate relevantChild(AstNode child) { none() @@ -3723,6 +3775,18 @@ module MakeCfgNodes Input> { cfgNode ) or + pred = "getExpr" and + parent = + any(Nodes::MacroStmtsCfgNode cfgNode, MacroStmts astNode | + astNode = cfgNode.getMacroStmts() and + child = getDesugared(astNode.getExpr()) and + i = -1 and + hasCfgNode(child) and + not child = cfgNode.getExpr().getAstNode() + | + cfgNode + ) + or pred = "getScrutinee" and parent = any(Nodes::MatchExprCfgNode cfgNode, MatchExpr astNode | diff --git a/rust/ql/lib/codeql/rust/elements/MacroStmts.qll b/rust/ql/lib/codeql/rust/elements/MacroStmts.qll index 77416d93699..9ef0c12b35f 100644 --- a/rust/ql/lib/codeql/rust/elements/MacroStmts.qll +++ b/rust/ql/lib/codeql/rust/elements/MacroStmts.qll @@ -4,7 +4,6 @@ */ private import internal.MacroStmtsImpl -import codeql.rust.elements.AstNode import codeql.rust.elements.Expr import codeql.rust.elements.Stmt diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroStmts.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroStmts.qll index e80debcb27d..636e0d1ea09 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroStmts.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroStmts.qll @@ -6,8 +6,8 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.internal.AstNodeImpl::Impl as AstNodeImpl import codeql.rust.elements.Expr +import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl import codeql.rust.elements.Stmt /** @@ -25,7 +25,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::MacroStmts` class directly. * Use the subclass `MacroStmts`, where the following predicates are available. */ - class MacroStmts extends Synth::TMacroStmts, AstNodeImpl::AstNode { + class MacroStmts extends Synth::TMacroStmts, ExprImpl::Expr { override string getAPrimaryQlClass() { result = "MacroStmts" } /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll index 4268ef3f840..57e18e373b8 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -616,26 +616,6 @@ private module Impl { ) } - private Element getImmediateChildOfMacroStmts(MacroStmts e, int index, string partialPredicateCall) { - exists(int b, int bAstNode, int n, int nExpr, int nStatement | - b = 0 and - bAstNode = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAstNode(e, i, _)) | i) and - n = bAstNode and - nExpr = n + 1 and - nStatement = nExpr + 1 + max(int i | i = -1 or exists(e.getStatement(i)) | i) and - ( - none() - or - result = getImmediateChildOfAstNode(e, index - b, partialPredicateCall) - or - index = n and result = e.getExpr() and partialPredicateCall = "Expr()" - or - result = e.getStatement(index - nExpr) and - partialPredicateCall = "Statement(" + (index - nExpr).toString() + ")" - ) - ) - } - private Element getImmediateChildOfMatchArm(MatchArm e, int index, string partialPredicateCall) { exists(int b, int bAstNode, int n, int nAttr, int nExpr, int nGuard, int nPat | b = 0 and @@ -2420,6 +2400,26 @@ private module Impl { ) } + private Element getImmediateChildOfMacroStmts(MacroStmts e, int index, string partialPredicateCall) { + exists(int b, int bExpr, int n, int nExpr, int nStatement | + b = 0 and + bExpr = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfExpr(e, i, _)) | i) and + n = bExpr and + nExpr = n + 1 and + nStatement = nExpr + 1 + max(int i | i = -1 or exists(e.getStatement(i)) | i) and + ( + none() + or + result = getImmediateChildOfExpr(e, index - b, partialPredicateCall) + or + index = n and result = e.getExpr() and partialPredicateCall = "Expr()" + or + result = e.getStatement(index - nExpr) and + partialPredicateCall = "Statement(" + (index - nExpr).toString() + ")" + ) + ) + } + private Element getImmediateChildOfMacroTypeRepr( MacroTypeRepr e, int index, string partialPredicateCall ) { @@ -4156,8 +4156,6 @@ private module Impl { or result = getImmediateChildOfMacroItems(e, index, partialAccessor) or - result = getImmediateChildOfMacroStmts(e, index, partialAccessor) - or result = getImmediateChildOfMatchArm(e, index, partialAccessor) or result = getImmediateChildOfMatchArmList(e, index, partialAccessor) @@ -4304,6 +4302,8 @@ private module Impl { or result = getImmediateChildOfMacroPat(e, index, partialAccessor) or + result = getImmediateChildOfMacroStmts(e, index, partialAccessor) + or result = getImmediateChildOfMacroTypeRepr(e, index, partialAccessor) or result = getImmediateChildOfMatchExpr(e, index, partialAccessor) diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index 3bd57ae9862..b1e26574de1 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -502,29 +502,6 @@ module Raw { Item getItem(int index) { macro_items_items(this, index, result) } } - /** - * INTERNAL: Do not use. - * A sequence of statements generated by a `MacroCall`. For example: - * ```rust - * fn main() { - * println!("Hello, world!"); // This macro expands into a list of statements - * } - * ``` - */ - class MacroStmts extends @macro_stmts, AstNode { - override string toString() { result = "MacroStmts" } - - /** - * Gets the expression of this macro statements, if it exists. - */ - Expr getExpr() { macro_stmts_exprs(this, result) } - - /** - * Gets the `index`th statement of this macro statements (0-based). - */ - Stmt getStatement(int index) { macro_stmts_statements(this, index, result) } - } - /** * INTERNAL: Do not use. * A match arm. For example: @@ -2401,6 +2378,29 @@ module Raw { MacroCall getMacroCall() { macro_pat_macro_calls(this, result) } } + /** + * INTERNAL: Do not use. + * A sequence of statements generated by a `MacroCall`. For example: + * ```rust + * fn main() { + * println!("Hello, world!"); // This macro expands into a list of statements + * } + * ``` + */ + class MacroStmts extends @macro_stmts, Expr { + override string toString() { result = "MacroStmts" } + + /** + * Gets the expression of this macro statements, if it exists. + */ + Expr getExpr() { macro_stmts_exprs(this, result) } + + /** + * Gets the `index`th statement of this macro statements (0-based). + */ + Stmt getStatement(int index) { macro_stmts_statements(this, index, result) } + } + /** * INTERNAL: Do not use. * A MacroTypeRepr. For example: diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll index 6d7c69fde13..abc696eb51e 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll @@ -716,14 +716,14 @@ module Synth { TAsmOption or TAsmPiece or TAsmRegSpec or TAssocItem or TAssocItemList or TAttr or TCallable or TClosureBinder or TExpr or TExternItem or TExternItemList or TFieldList or TFormatArgsArg or TGenericArg or TGenericArgList or TGenericParam or TGenericParamList or - TItemList or TLabel or TLetElse or TMacroItems or TMacroStmts or TMatchArm or - TMatchArmList or TMatchGuard or TMeta or TName or TParamBase or TParamList or - TParenthesizedArgList or TPat or TPath or TPathSegment or TRename or TResolvable or - TRetTypeRepr or TReturnTypeSyntax or TSourceFile or TStmt or TStmtList or - TStructExprField or TStructExprFieldList or TStructField or TStructPatField or - TStructPatFieldList or TToken or TTokenTree or TTupleField or TTypeBound or - TTypeBoundList or TTypeRepr or TUseBoundGenericArg or TUseBoundGenericArgs or TUseTree or - TUseTreeList or TVariantDef or TVariantList or TVisibility or TWhereClause or TWherePred; + TItemList or TLabel or TLetElse or TMacroItems or TMatchArm or TMatchArmList or + TMatchGuard or TMeta or TName or TParamBase or TParamList or TParenthesizedArgList or + TPat or TPath or TPathSegment or TRename or TResolvable or TRetTypeRepr or + TReturnTypeSyntax or TSourceFile or TStmt or TStmtList or TStructExprField or + TStructExprFieldList or TStructField or TStructPatField or TStructPatFieldList or TToken or + TTokenTree or TTupleField or TTypeBound or TTypeBoundList or TTypeRepr or + TUseBoundGenericArg or TUseBoundGenericArgs or TUseTree or TUseTreeList or TVariantDef or + TVariantList or TVisibility or TWhereClause or TWherePred; /** * INTERNAL: Do not use. @@ -742,9 +742,9 @@ module Synth { TArrayExpr or TArrayExprInternal or TAsmExpr or TAwaitExpr or TBecomeExpr or TBinaryExpr or TBreakExpr or TCallExprBase or TCastExpr or TClosureExpr or TContinueExpr or TFieldExpr or TFormatArgsExpr or TIfExpr or TIndexExpr or TLabelableExpr or TLetExpr or TLiteralExpr or - TMacroExpr or TMatchExpr or TOffsetOfExpr or TParenExpr or TPathExprBase or TPrefixExpr or - TRangeExpr or TRefExpr or TReturnExpr or TStructExpr or TTryExpr or TTupleExpr or - TUnderscoreExpr or TYeetExpr or TYieldExpr; + TMacroExpr or TMacroStmts or TMatchExpr or TOffsetOfExpr or TParenExpr or TPathExprBase or + TPrefixExpr or TRangeExpr or TRefExpr or TReturnExpr or TStructExpr or TTryExpr or + TTupleExpr or TUnderscoreExpr or TYeetExpr or TYieldExpr; /** * INTERNAL: Do not use. @@ -1973,8 +1973,6 @@ module Synth { or result = convertMacroItemsFromRaw(e) or - result = convertMacroStmtsFromRaw(e) - or result = convertMatchArmFromRaw(e) or result = convertMatchArmListFromRaw(e) @@ -2129,6 +2127,8 @@ module Synth { or result = convertMacroExprFromRaw(e) or + result = convertMacroStmtsFromRaw(e) + or result = convertMatchExprFromRaw(e) or result = convertOffsetOfExprFromRaw(e) @@ -3573,8 +3573,6 @@ module Synth { or result = convertMacroItemsToRaw(e) or - result = convertMacroStmtsToRaw(e) - or result = convertMatchArmToRaw(e) or result = convertMatchArmListToRaw(e) @@ -3729,6 +3727,8 @@ module Synth { or result = convertMacroExprToRaw(e) or + result = convertMacroStmtsToRaw(e) + or result = convertMatchExprToRaw(e) or result = convertOffsetOfExprToRaw(e) diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index e8707b675dc..48a13c5eec3 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -182,7 +182,6 @@ named_crates( | @label | @let_else | @macro_items -| @macro_stmts | @match_arm | @match_arm_list | @match_guard @@ -439,6 +438,7 @@ closure_binder_generic_param_lists( | @let_expr | @literal_expr | @macro_expr +| @macro_stmts | @match_expr | @offset_of_expr | @paren_expr @@ -585,23 +585,6 @@ macro_items_items( int item: @item ref ); -macro_stmts( - unique int id: @macro_stmts -); - -#keyset[id] -macro_stmts_exprs( - int id: @macro_stmts ref, - int expr: @expr ref -); - -#keyset[id, index] -macro_stmts_statements( - int id: @macro_stmts ref, - int index: int ref, - int statement: @stmt ref -); - match_arms( unique int id: @match_arm ); @@ -2118,6 +2101,23 @@ macro_pat_macro_calls( int macro_call: @macro_call ref ); +macro_stmts( + unique int id: @macro_stmts +); + +#keyset[id] +macro_stmts_exprs( + int id: @macro_stmts ref, + int expr: @expr ref +); + +#keyset[id, index] +macro_stmts_statements( + int id: @macro_stmts ref, + int index: int ref, + int statement: @stmt ref +); + macro_type_reprs( unique int id: @macro_type_repr ); diff --git a/rust/ql/test/library-tests/controlflow/BasicBlocks.expected b/rust/ql/test/library-tests/controlflow/BasicBlocks.expected index d5d978b9f52..2b87a4996b1 100644 --- a/rust/ql/test/library-tests/controlflow/BasicBlocks.expected +++ b/rust/ql/test/library-tests/controlflow/BasicBlocks.expected @@ -560,9 +560,9 @@ dominates | test.rs:355:13:355:22 | Err(...) | test.rs:355:13:355:22 | Err(...) | | test.rs:362:5:365:5 | enter fn test_let_match | test.rs:362:5:365:5 | enter fn test_let_match | | test.rs:362:5:365:5 | enter fn test_let_match | test.rs:363:18:363:18 | n | -| test.rs:362:5:365:5 | enter fn test_let_match | test.rs:363:39:363:53 | MacroStmts | +| test.rs:362:5:365:5 | enter fn test_let_match | test.rs:363:39:363:53 | ExprStmt | | test.rs:363:18:363:18 | n | test.rs:363:18:363:18 | n | -| test.rs:363:39:363:53 | MacroStmts | test.rs:363:39:363:53 | MacroStmts | +| test.rs:363:39:363:53 | ExprStmt | test.rs:363:39:363:53 | ExprStmt | | test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:367:5:373:5 | enter fn test_let_with_return | | test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | | test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:369:18:369:20 | ret | @@ -1258,7 +1258,7 @@ postDominance | test.rs:362:5:365:5 | enter fn test_let_match | test.rs:362:5:365:5 | enter fn test_let_match | | test.rs:363:18:363:18 | n | test.rs:362:5:365:5 | enter fn test_let_match | | test.rs:363:18:363:18 | n | test.rs:363:18:363:18 | n | -| test.rs:363:39:363:53 | MacroStmts | test.rs:363:39:363:53 | MacroStmts | +| test.rs:363:39:363:53 | ExprStmt | test.rs:363:39:363:53 | ExprStmt | | test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:367:5:373:5 | enter fn test_let_with_return | | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | enter fn test_let_with_return | | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | @@ -1629,7 +1629,7 @@ immediateDominator | test.rs:354:16:354:20 | value | test.rs:352:5:357:5 | enter fn test_match_with_no_arms | | test.rs:355:13:355:22 | Err(...) | test.rs:352:5:357:5 | enter fn test_match_with_no_arms | | test.rs:363:18:363:18 | n | test.rs:362:5:365:5 | enter fn test_let_match | -| test.rs:363:39:363:53 | MacroStmts | test.rs:362:5:365:5 | enter fn test_let_match | +| test.rs:363:39:363:53 | ExprStmt | test.rs:362:5:365:5 | enter fn test_let_match | | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | enter fn test_let_with_return | | test.rs:369:18:369:20 | ret | test.rs:367:5:373:5 | enter fn test_let_with_return | | test.rs:370:13:370:16 | None | test.rs:367:5:373:5 | enter fn test_let_with_return | diff --git a/rust/ql/test/library-tests/controlflow/Cfg.expected b/rust/ql/test/library-tests/controlflow/Cfg.expected index 1705b88e3d7..0b79e26e95a 100644 --- a/rust/ql/test/library-tests/controlflow/Cfg.expected +++ b/rust/ql/test/library-tests/controlflow/Cfg.expected @@ -391,40 +391,40 @@ edges | test.rs:171:17:171:29 | ...::_print | test.rs:171:26:171:28 | "1\\n" | | | test.rs:171:17:171:29 | MacroExpr | test.rs:170:22:172:13 | { ... } | | | test.rs:171:17:171:29 | println!... | test.rs:171:17:171:29 | MacroExpr | | -| test.rs:171:17:171:30 | ExprStmt | test.rs:171:26:171:28 | MacroStmts | | +| test.rs:171:17:171:30 | ExprStmt | test.rs:171:26:171:28 | ExprStmt | | | test.rs:171:26:171:28 | "1\\n" | test.rs:171:26:171:28 | FormatArgsExpr | | | test.rs:171:26:171:28 | ...::_print(...) | test.rs:171:26:171:28 | { ... } | | | test.rs:171:26:171:28 | ...::format_args_nl!... | test.rs:171:26:171:28 | MacroExpr | | | test.rs:171:26:171:28 | ExprStmt | test.rs:171:17:171:29 | ...::_print | | | test.rs:171:26:171:28 | FormatArgsExpr | test.rs:171:26:171:28 | ...::format_args_nl!... | | | test.rs:171:26:171:28 | MacroExpr | test.rs:171:26:171:28 | ...::_print(...) | | -| test.rs:171:26:171:28 | MacroStmts | test.rs:171:26:171:28 | ExprStmt | | -| test.rs:171:26:171:28 | { ... } | test.rs:171:17:171:29 | println!... | | +| test.rs:171:26:171:28 | MacroStmts | test.rs:171:17:171:29 | println!... | | +| test.rs:171:26:171:28 | { ... } | test.rs:171:26:171:28 | MacroStmts | | | test.rs:172:20:174:13 | { ... } | test.rs:170:13:174:13 | if cond2 {...} else {...} | | | test.rs:173:17:173:29 | ...::_print | test.rs:173:26:173:28 | "2\\n" | | | test.rs:173:17:173:29 | MacroExpr | test.rs:172:20:174:13 | { ... } | | | test.rs:173:17:173:29 | println!... | test.rs:173:17:173:29 | MacroExpr | | -| test.rs:173:17:173:30 | ExprStmt | test.rs:173:26:173:28 | MacroStmts | | +| test.rs:173:17:173:30 | ExprStmt | test.rs:173:26:173:28 | ExprStmt | | | test.rs:173:26:173:28 | "2\\n" | test.rs:173:26:173:28 | FormatArgsExpr | | | test.rs:173:26:173:28 | ...::_print(...) | test.rs:173:26:173:28 | { ... } | | | test.rs:173:26:173:28 | ...::format_args_nl!... | test.rs:173:26:173:28 | MacroExpr | | | test.rs:173:26:173:28 | ExprStmt | test.rs:173:17:173:29 | ...::_print | | | test.rs:173:26:173:28 | FormatArgsExpr | test.rs:173:26:173:28 | ...::format_args_nl!... | | | test.rs:173:26:173:28 | MacroExpr | test.rs:173:26:173:28 | ...::_print(...) | | -| test.rs:173:26:173:28 | MacroStmts | test.rs:173:26:173:28 | ExprStmt | | -| test.rs:173:26:173:28 | { ... } | test.rs:173:17:173:29 | println!... | | +| test.rs:173:26:173:28 | MacroStmts | test.rs:173:17:173:29 | println!... | | +| test.rs:173:26:173:28 | { ... } | test.rs:173:26:173:28 | MacroStmts | | | test.rs:175:13:175:25 | ...::_print | test.rs:175:22:175:24 | "3\\n" | | | test.rs:175:13:175:25 | MacroExpr | test.rs:169:18:176:9 | { ... } | | | test.rs:175:13:175:25 | println!... | test.rs:175:13:175:25 | MacroExpr | | -| test.rs:175:13:175:26 | ExprStmt | test.rs:175:22:175:24 | MacroStmts | | +| test.rs:175:13:175:26 | ExprStmt | test.rs:175:22:175:24 | ExprStmt | | | test.rs:175:22:175:24 | "3\\n" | test.rs:175:22:175:24 | FormatArgsExpr | | | test.rs:175:22:175:24 | ...::_print(...) | test.rs:175:22:175:24 | { ... } | | | test.rs:175:22:175:24 | ...::format_args_nl!... | test.rs:175:22:175:24 | MacroExpr | | | test.rs:175:22:175:24 | ExprStmt | test.rs:175:13:175:25 | ...::_print | | | test.rs:175:22:175:24 | FormatArgsExpr | test.rs:175:22:175:24 | ...::format_args_nl!... | | | test.rs:175:22:175:24 | MacroExpr | test.rs:175:22:175:24 | ...::_print(...) | | -| test.rs:175:22:175:24 | MacroStmts | test.rs:175:22:175:24 | ExprStmt | | -| test.rs:175:22:175:24 | { ... } | test.rs:175:13:175:25 | println!... | | +| test.rs:175:22:175:24 | MacroStmts | test.rs:175:13:175:25 | println!... | | +| test.rs:175:22:175:24 | { ... } | test.rs:175:22:175:24 | MacroStmts | | | test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:179:29:179:29 | a | | | test.rs:179:5:188:5 | exit fn test_nested_if_match (normal) | test.rs:179:5:188:5 | exit fn test_nested_if_match | | | test.rs:179:29:179:29 | a | test.rs:179:29:179:29 | a | | @@ -889,7 +889,7 @@ edges | test.rs:362:46:365:5 | { ... } | test.rs:362:5:365:5 | exit fn test_let_match (normal) | | | test.rs:363:9:363:57 | let ... = a else {...} | test.rs:363:23:363:23 | a | | | test.rs:363:13:363:19 | Some(...) | test.rs:363:18:363:18 | n | match | -| test.rs:363:13:363:19 | Some(...) | test.rs:363:39:363:53 | MacroStmts | no-match | +| test.rs:363:13:363:19 | Some(...) | test.rs:363:39:363:53 | ExprStmt | no-match | | test.rs:363:18:363:18 | n | test.rs:363:18:363:18 | n | | | test.rs:363:18:363:18 | n | test.rs:364:9:364:9 | n | match | | test.rs:363:23:363:23 | a | test.rs:363:13:363:19 | Some(...) | | @@ -902,11 +902,11 @@ edges | test.rs:363:39:363:53 | ...::panic_fmt(...) | test.rs:363:39:363:53 | { ... } | | | test.rs:363:39:363:53 | ExprStmt | test.rs:363:32:363:54 | ...::panic_fmt | | | test.rs:363:39:363:53 | FormatArgsExpr | test.rs:363:39:363:53 | ...::const_format_args!... | | -| test.rs:363:39:363:53 | MacroExpr | test.rs:363:32:363:54 | panic!... | | | test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | ...::panic_fmt(...) | | -| test.rs:363:39:363:53 | MacroStmts | test.rs:363:39:363:53 | ExprStmt | | -| test.rs:363:39:363:53 | MacroStmts | test.rs:363:39:363:53 | MacroStmts | | -| test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | ...::panic_2021!... | | +| test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | MacroStmts | | +| test.rs:363:39:363:53 | MacroStmts | test.rs:363:32:363:54 | panic!... | | +| test.rs:363:39:363:53 | MacroStmts | test.rs:363:39:363:53 | ...::panic_2021!... | | +| test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | MacroStmts | | | test.rs:364:9:364:9 | n | test.rs:362:46:365:5 | { ... } | | | test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:367:29:367:29 | m | | | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | exit fn test_let_with_return | | @@ -1183,15 +1183,15 @@ edges | test.rs:495:9:495:33 | ...::_print | test.rs:495:18:495:32 | "hello, world!\\n" | | | test.rs:495:9:495:33 | MacroExpr | test.rs:494:26:496:5 | { ... } | | | test.rs:495:9:495:33 | println!... | test.rs:495:9:495:33 | MacroExpr | | -| test.rs:495:9:495:34 | ExprStmt | test.rs:495:18:495:32 | MacroStmts | | +| test.rs:495:9:495:34 | ExprStmt | test.rs:495:18:495:32 | ExprStmt | | | test.rs:495:18:495:32 | "hello, world!\\n" | test.rs:495:18:495:32 | FormatArgsExpr | | | test.rs:495:18:495:32 | ...::_print(...) | test.rs:495:18:495:32 | { ... } | | | test.rs:495:18:495:32 | ...::format_args_nl!... | test.rs:495:18:495:32 | MacroExpr | | | test.rs:495:18:495:32 | ExprStmt | test.rs:495:9:495:33 | ...::_print | | | test.rs:495:18:495:32 | FormatArgsExpr | test.rs:495:18:495:32 | ...::format_args_nl!... | | | test.rs:495:18:495:32 | MacroExpr | test.rs:495:18:495:32 | ...::_print(...) | | -| test.rs:495:18:495:32 | MacroStmts | test.rs:495:18:495:32 | ExprStmt | | -| test.rs:495:18:495:32 | { ... } | test.rs:495:9:495:33 | println!... | | +| test.rs:495:18:495:32 | MacroStmts | test.rs:495:9:495:33 | println!... | | +| test.rs:495:18:495:32 | { ... } | test.rs:495:18:495:32 | MacroStmts | | | test.rs:498:5:517:5 | enter fn async_block | test.rs:498:26:498:26 | b | | | test.rs:498:5:517:5 | exit fn async_block (normal) | test.rs:498:5:517:5 | exit fn async_block | | | test.rs:498:26:498:26 | b | test.rs:498:26:498:26 | b | | @@ -1207,15 +1207,15 @@ edges | test.rs:500:13:500:41 | ...::_print | test.rs:500:22:500:40 | "godbye, everyone!\\n" | | | test.rs:500:13:500:41 | MacroExpr | test.rs:499:26:501:9 | exit { ... } (normal) | | | test.rs:500:13:500:41 | println!... | test.rs:500:13:500:41 | MacroExpr | | -| test.rs:500:13:500:42 | ExprStmt | test.rs:500:22:500:40 | MacroStmts | | +| test.rs:500:13:500:42 | ExprStmt | test.rs:500:22:500:40 | ExprStmt | | | test.rs:500:22:500:40 | "godbye, everyone!\\n" | test.rs:500:22:500:40 | FormatArgsExpr | | | test.rs:500:22:500:40 | ...::_print(...) | test.rs:500:22:500:40 | { ... } | | | test.rs:500:22:500:40 | ...::format_args_nl!... | test.rs:500:22:500:40 | MacroExpr | | | test.rs:500:22:500:40 | ExprStmt | test.rs:500:13:500:41 | ...::_print | | | test.rs:500:22:500:40 | FormatArgsExpr | test.rs:500:22:500:40 | ...::format_args_nl!... | | | test.rs:500:22:500:40 | MacroExpr | test.rs:500:22:500:40 | ...::_print(...) | | -| test.rs:500:22:500:40 | MacroStmts | test.rs:500:22:500:40 | ExprStmt | | -| test.rs:500:22:500:40 | { ... } | test.rs:500:13:500:41 | println!... | | +| test.rs:500:22:500:40 | MacroStmts | test.rs:500:13:500:41 | println!... | | +| test.rs:500:22:500:40 | { ... } | test.rs:500:22:500:40 | MacroStmts | | | test.rs:502:9:504:10 | let ... = ... | test.rs:502:31:504:9 | { ... } | | | test.rs:502:13:502:27 | say_how_are_you | test.rs:502:13:502:27 | say_how_are_you | | | test.rs:502:13:502:27 | say_how_are_you | test.rs:505:9:505:28 | let ... = ... | match | @@ -1225,15 +1225,15 @@ edges | test.rs:503:13:503:36 | ...::_print | test.rs:503:22:503:35 | "how are you?\\n" | | | test.rs:503:13:503:36 | MacroExpr | test.rs:502:31:504:9 | exit { ... } (normal) | | | test.rs:503:13:503:36 | println!... | test.rs:503:13:503:36 | MacroExpr | | -| test.rs:503:13:503:37 | ExprStmt | test.rs:503:22:503:35 | MacroStmts | | +| test.rs:503:13:503:37 | ExprStmt | test.rs:503:22:503:35 | ExprStmt | | | test.rs:503:22:503:35 | "how are you?\\n" | test.rs:503:22:503:35 | FormatArgsExpr | | | test.rs:503:22:503:35 | ...::_print(...) | test.rs:503:22:503:35 | { ... } | | | test.rs:503:22:503:35 | ...::format_args_nl!... | test.rs:503:22:503:35 | MacroExpr | | | test.rs:503:22:503:35 | ExprStmt | test.rs:503:13:503:36 | ...::_print | | | test.rs:503:22:503:35 | FormatArgsExpr | test.rs:503:22:503:35 | ...::format_args_nl!... | | | test.rs:503:22:503:35 | MacroExpr | test.rs:503:22:503:35 | ...::_print(...) | | -| test.rs:503:22:503:35 | MacroStmts | test.rs:503:22:503:35 | ExprStmt | | -| test.rs:503:22:503:35 | { ... } | test.rs:503:13:503:36 | println!... | | +| test.rs:503:22:503:35 | MacroStmts | test.rs:503:13:503:36 | println!... | | +| test.rs:503:22:503:35 | { ... } | test.rs:503:22:503:35 | MacroStmts | | | test.rs:505:9:505:28 | let ... = ... | test.rs:505:20:505:27 | { ... } | | | test.rs:505:13:505:16 | noop | test.rs:505:13:505:16 | noop | | | test.rs:505:13:505:16 | noop | test.rs:506:9:506:26 | ExprStmt | match | @@ -1290,30 +1290,30 @@ edges | test.rs:533:13:533:49 | ...::panic_2021!... | test.rs:533:13:533:49 | MacroExpr | | | test.rs:533:13:533:49 | ...::panic_explicit | test.rs:533:13:533:49 | ...::panic_explicit(...) | | | test.rs:533:13:533:49 | ...::panic_explicit(...) | test.rs:533:13:533:49 | { ... } | | -| test.rs:533:13:533:49 | ExprStmt | test.rs:533:13:533:49 | MacroStmts | | +| test.rs:533:13:533:49 | ExprStmt | test.rs:533:13:533:49 | fn panic_cold_explicit | | | test.rs:533:13:533:49 | ExprStmt | test.rs:533:13:533:49 | panic_cold_explicit | | | test.rs:533:13:533:49 | MacroExpr | test.rs:532:9:534:9 | { ... } | | | test.rs:533:13:533:49 | MacroExpr | test.rs:533:13:533:49 | { ... } | | -| test.rs:533:13:533:49 | MacroStmts | test.rs:533:13:533:49 | fn panic_cold_explicit | | +| test.rs:533:13:533:49 | MacroStmts | test.rs:533:13:533:49 | ...::panic_2021!... | | | test.rs:533:13:533:49 | assert!... | test.rs:533:13:533:49 | MacroExpr | | | test.rs:533:13:533:49 | enter fn panic_cold_explicit | test.rs:533:13:533:49 | ...::panic_explicit | | | test.rs:533:13:533:49 | exit fn panic_cold_explicit (normal) | test.rs:533:13:533:49 | exit fn panic_cold_explicit | | | test.rs:533:13:533:49 | fn panic_cold_explicit | test.rs:533:13:533:49 | ExprStmt | | | test.rs:533:13:533:49 | panic_cold_explicit | test.rs:533:13:533:49 | panic_cold_explicit(...) | | | test.rs:533:13:533:49 | panic_cold_explicit(...) | test.rs:533:13:533:49 | { ... } | | -| test.rs:533:13:533:49 | { ... } | test.rs:533:13:533:49 | ...::panic_2021!... | | +| test.rs:533:13:533:49 | { ... } | test.rs:533:13:533:49 | MacroStmts | | | test.rs:533:13:533:49 | { ... } | test.rs:533:13:533:49 | exit fn panic_cold_explicit (normal) | | | test.rs:533:13:533:49 | { ... } | test.rs:533:21:533:48 | if ... {...} | | -| test.rs:533:13:533:50 | ExprStmt | test.rs:533:21:533:48 | MacroStmts | | +| test.rs:533:13:533:50 | ExprStmt | test.rs:533:21:533:42 | ...::size_of::<...> | | | test.rs:533:21:533:42 | ...::size_of::<...> | test.rs:533:21:533:44 | ...::size_of::<...>(...) | | | test.rs:533:21:533:44 | ...::size_of::<...>(...) | test.rs:533:48:533:48 | 0 | | | test.rs:533:21:533:48 | ... > ... | test.rs:533:21:533:48 | [boolean(false)] ! ... | true | | test.rs:533:21:533:48 | ... > ... | test.rs:533:21:533:48 | [boolean(true)] ! ... | false | -| test.rs:533:21:533:48 | MacroStmts | test.rs:533:21:533:42 | ...::size_of::<...> | | +| test.rs:533:21:533:48 | MacroStmts | test.rs:533:13:533:49 | assert!... | | | test.rs:533:21:533:48 | [boolean(false)] ! ... | test.rs:533:21:533:48 | if ... {...} | false | | test.rs:533:21:533:48 | [boolean(true)] ! ... | test.rs:533:13:533:49 | ExprStmt | true | | test.rs:533:21:533:48 | if ... {...} | test.rs:533:21:533:48 | { ... } | | -| test.rs:533:21:533:48 | { ... } | test.rs:533:13:533:49 | assert!... | | +| test.rs:533:21:533:48 | { ... } | test.rs:533:21:533:48 | MacroStmts | | | test.rs:533:48:533:48 | 0 | test.rs:533:21:533:48 | ... > ... | | | test.rs:536:9:536:10 | 42 | test.rs:529:41:537:5 | { ... } | | | test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:540:9:540:30 | Const | | diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 6c2a7c2ba85..a03453383b0 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -10,12 +10,14 @@ localStep | main.rs:6:9:6:9 | s | main.rs:6:9:6:9 | s | | main.rs:6:9:6:14 | ...: i64 | main.rs:6:9:6:9 | s | | main.rs:7:14:7:20 | FormatArgsExpr | main.rs:7:14:7:20 | MacroExpr | +| main.rs:7:14:7:20 | MacroStmts | main.rs:7:5:7:21 | MacroExpr | | main.rs:7:14:7:20 | [post] MacroExpr | main.rs:7:14:7:20 | [post] FormatArgsExpr | | main.rs:10:13:10:14 | [SSA] sr | main.rs:11:20:11:21 | sr | | main.rs:10:13:10:14 | sr | main.rs:10:13:10:14 | [SSA] sr | | main.rs:10:13:10:14 | sr | main.rs:10:13:10:14 | sr | | main.rs:10:13:10:20 | ...: ... | main.rs:10:13:10:14 | sr | | main.rs:11:14:11:21 | FormatArgsExpr | main.rs:11:14:11:21 | MacroExpr | +| main.rs:11:14:11:21 | MacroStmts | main.rs:11:5:11:22 | MacroExpr | | main.rs:11:14:11:21 | [post] MacroExpr | main.rs:11:14:11:21 | [post] FormatArgsExpr | | main.rs:22:9:22:9 | [SSA] s | main.rs:23:10:23:10 | s | | main.rs:22:9:22:9 | s | main.rs:22:9:22:9 | [SSA] s | @@ -680,6 +682,7 @@ localStep | main.rs:462:16:462:16 | s | main.rs:462:16:462:16 | s | | main.rs:462:16:462:24 | ...: String | main.rs:462:16:462:16 | s | | main.rs:463:14:463:20 | FormatArgsExpr | main.rs:463:14:463:20 | MacroExpr | +| main.rs:463:14:463:20 | MacroStmts | main.rs:463:5:463:21 | MacroExpr | | main.rs:463:14:463:20 | [post] MacroExpr | main.rs:463:14:463:20 | [post] FormatArgsExpr | | main.rs:467:9:467:9 | [SSA] a | main.rs:468:13:468:13 | a | | main.rs:467:9:467:9 | a | main.rs:467:9:467:9 | [SSA] a | diff --git a/rust/ql/test/library-tests/variables/Cfg.expected b/rust/ql/test/library-tests/variables/Cfg.expected index 2f3d9927710..2c04ca30410 100644 --- a/rust/ql/test/library-tests/variables/Cfg.expected +++ b/rust/ql/test/library-tests/variables/Cfg.expected @@ -8,15 +8,15 @@ edges | main.rs:4:5:4:21 | ...::_print | main.rs:4:14:4:17 | "{}\\n" | | | main.rs:4:5:4:21 | MacroExpr | main.rs:3:23:5:1 | { ... } | | | main.rs:4:5:4:21 | println!... | main.rs:4:5:4:21 | MacroExpr | | -| main.rs:4:5:4:22 | ExprStmt | main.rs:4:14:4:20 | MacroStmts | | +| main.rs:4:5:4:22 | ExprStmt | main.rs:4:14:4:20 | ExprStmt | | | main.rs:4:14:4:17 | "{}\\n" | main.rs:4:20:4:20 | s | | | main.rs:4:14:4:20 | ...::_print(...) | main.rs:4:14:4:20 | { ... } | | | main.rs:4:14:4:20 | ...::format_args_nl!... | main.rs:4:14:4:20 | MacroExpr | | | main.rs:4:14:4:20 | ExprStmt | main.rs:4:5:4:21 | ...::_print | | | main.rs:4:14:4:20 | FormatArgsExpr | main.rs:4:14:4:20 | ...::format_args_nl!... | | | main.rs:4:14:4:20 | MacroExpr | main.rs:4:14:4:20 | ...::_print(...) | | -| main.rs:4:14:4:20 | MacroStmts | main.rs:4:14:4:20 | ExprStmt | | -| main.rs:4:14:4:20 | { ... } | main.rs:4:5:4:21 | println!... | | +| main.rs:4:14:4:20 | MacroStmts | main.rs:4:5:4:21 | println!... | | +| main.rs:4:14:4:20 | { ... } | main.rs:4:14:4:20 | MacroStmts | | | main.rs:4:20:4:20 | s | main.rs:4:14:4:20 | FormatArgsExpr | | | main.rs:7:1:9:1 | enter fn print_i64 | main.rs:7:14:7:14 | i | | | main.rs:7:1:9:1 | exit fn print_i64 (normal) | main.rs:7:1:9:1 | exit fn print_i64 | | @@ -27,15 +27,15 @@ edges | main.rs:8:5:8:21 | ...::_print | main.rs:8:14:8:17 | "{}\\n" | | | main.rs:8:5:8:21 | MacroExpr | main.rs:7:22:9:1 | { ... } | | | main.rs:8:5:8:21 | println!... | main.rs:8:5:8:21 | MacroExpr | | -| main.rs:8:5:8:22 | ExprStmt | main.rs:8:14:8:20 | MacroStmts | | +| main.rs:8:5:8:22 | ExprStmt | main.rs:8:14:8:20 | ExprStmt | | | main.rs:8:14:8:17 | "{}\\n" | main.rs:8:20:8:20 | i | | | main.rs:8:14:8:20 | ...::_print(...) | main.rs:8:14:8:20 | { ... } | | | main.rs:8:14:8:20 | ...::format_args_nl!... | main.rs:8:14:8:20 | MacroExpr | | | main.rs:8:14:8:20 | ExprStmt | main.rs:8:5:8:21 | ...::_print | | | main.rs:8:14:8:20 | FormatArgsExpr | main.rs:8:14:8:20 | ...::format_args_nl!... | | | main.rs:8:14:8:20 | MacroExpr | main.rs:8:14:8:20 | ...::_print(...) | | -| main.rs:8:14:8:20 | MacroStmts | main.rs:8:14:8:20 | ExprStmt | | -| main.rs:8:14:8:20 | { ... } | main.rs:8:5:8:21 | println!... | | +| main.rs:8:14:8:20 | MacroStmts | main.rs:8:5:8:21 | println!... | | +| main.rs:8:14:8:20 | { ... } | main.rs:8:14:8:20 | MacroStmts | | | main.rs:8:20:8:20 | i | main.rs:8:14:8:20 | FormatArgsExpr | | | main.rs:11:1:13:1 | enter fn print_i64_ref | main.rs:11:18:11:18 | i | | | main.rs:11:1:13:1 | exit fn print_i64_ref (normal) | main.rs:11:1:13:1 | exit fn print_i64_ref | | @@ -234,7 +234,7 @@ edges | main.rs:93:19:99:1 | { ... } | main.rs:93:1:99:1 | exit fn let_pattern4 (normal) | | | main.rs:94:5:97:10 | let ... = ... else {...} | main.rs:94:34:94:37 | Some | | | main.rs:94:9:94:16 | Some(...) | main.rs:94:14:94:15 | x5 | match | -| main.rs:94:9:94:16 | Some(...) | main.rs:96:13:96:19 | MacroStmts | no-match | +| main.rs:94:9:94:16 | Some(...) | main.rs:96:13:96:19 | ...::panic | no-match | | main.rs:94:14:94:15 | x5 | main.rs:94:14:94:15 | x5 | | | main.rs:94:14:94:15 | x5 | main.rs:98:5:98:18 | ExprStmt | match | | main.rs:94:34:94:37 | Some | main.rs:94:39:94:42 | "x5" | | @@ -242,9 +242,9 @@ edges | main.rs:94:39:94:42 | "x5" | main.rs:94:34:94:43 | Some(...) | | | main.rs:96:13:96:19 | "not yet implemented" | main.rs:96:13:96:19 | ...::panic(...) | | | main.rs:96:13:96:19 | ...::panic | main.rs:96:13:96:19 | "not yet implemented" | | -| main.rs:96:13:96:19 | ...::panic(...) | main.rs:96:13:96:19 | todo!... | | +| main.rs:96:13:96:19 | ...::panic(...) | main.rs:96:13:96:19 | MacroStmts | | | main.rs:96:13:96:19 | MacroExpr | main.rs:95:14:97:9 | { ... } | | -| main.rs:96:13:96:19 | MacroStmts | main.rs:96:13:96:19 | ...::panic | | +| main.rs:96:13:96:19 | MacroStmts | main.rs:96:13:96:19 | todo!... | | | main.rs:96:13:96:19 | todo!... | main.rs:96:13:96:19 | MacroExpr | | | main.rs:98:5:98:13 | print_str | main.rs:98:15:98:16 | x5 | | | main.rs:98:5:98:17 | print_str(...) | main.rs:93:19:99:1 | { ... } | | @@ -417,7 +417,7 @@ edges | main.rs:175:30:175:31 | 10 | main.rs:178:9:178:29 | ...::Hello {...} | no-match | | main.rs:175:30:175:36 | RangePat | main.rs:175:30:175:31 | 10 | match | | main.rs:175:35:175:36 | 12 | main.rs:175:35:175:36 | 12 | | -| main.rs:175:35:175:36 | 12 | main.rs:176:22:176:51 | MacroStmts | match | +| main.rs:175:35:175:36 | 12 | main.rs:176:22:176:51 | ExprStmt | match | | main.rs:175:35:175:36 | 12 | main.rs:178:9:178:29 | ...::Hello {...} | no-match | | main.rs:175:43:177:9 | { ... } | main.rs:171:5:180:5 | match msg { ... } | | | main.rs:176:13:176:52 | ...::_print | main.rs:176:22:176:51 | "Found an id in another range\\... | | @@ -429,8 +429,8 @@ edges | main.rs:176:22:176:51 | ExprStmt | main.rs:176:13:176:52 | ...::_print | | | main.rs:176:22:176:51 | FormatArgsExpr | main.rs:176:22:176:51 | ...::format_args_nl!... | | | main.rs:176:22:176:51 | MacroExpr | main.rs:176:22:176:51 | ...::_print(...) | | -| main.rs:176:22:176:51 | MacroStmts | main.rs:176:22:176:51 | ExprStmt | | -| main.rs:176:22:176:51 | { ... } | main.rs:176:13:176:52 | println!... | | +| main.rs:176:22:176:51 | MacroStmts | main.rs:176:13:176:52 | println!... | | +| main.rs:176:22:176:51 | { ... } | main.rs:176:22:176:51 | MacroStmts | | | main.rs:178:9:178:29 | ...::Hello {...} | main.rs:178:26:178:27 | id | match | | main.rs:178:26:178:27 | id | main.rs:178:26:178:27 | id | | | main.rs:178:26:178:27 | id | main.rs:179:13:179:21 | print_i64 | match | diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index a5c3ff56651..f783e72e619 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -87,7 +87,8 @@ class _: foo::bar; ``` """ - segment: _ | ql.db_table_name("path_segments_") | doc("last segment of this path") + segment: _ | ql.db_table_name("path_segments_") | doc( + "last segment of this path") @annotate(GenericArgList) @@ -1288,7 +1289,7 @@ class _: """ -@annotate(MacroStmts) +@annotate(MacroStmts, replace_bases={AstNode: Expr}, cfg=True) @rust.doc_test_signature(None) class _: """ @@ -1447,6 +1448,7 @@ class _: type_repr: optional["TypeRepr"] | child | rust.detach trait_type_repr: optional["PathTypeRepr"] | child | rust.detach + @annotate(PathTypeRepr) @qltest.test_with(Path) class _: From 869af58c9d2e246ce728cbaf45ea6feb10b7d571 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Thu, 17 Apr 2025 18:58:05 +0200 Subject: [PATCH 245/656] Rust: add flow step for MacroStmts --- .../rust/dataflow/internal/DataFlowImpl.qll | 1 + .../dataflow/local/DataFlowStep.expected | 3 +++ .../security/CWE-089/SqlInjection.expected | 21 ++++++++++++++++--- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index b2950622440..f750fed0455 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -203,6 +203,7 @@ private ExprCfgNode getALastEvalNode(ExprCfgNode e) { result = e.(ReturnExprCfgNode).getExpr() or result = e.(BreakExprCfgNode).getExpr() or result = e.(BlockExprCfgNode).getTailExpr() or + result = e.(MacroStmtsCfgNode).getExpr() or result = e.(MatchExprCfgNode).getArmExpr(_) or result = e.(MacroExprCfgNode).getMacroCall().(MacroCallCfgNode).getExpandedNode() or result.(BreakExprCfgNode).getTarget() = e diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index a03453383b0..123e8801649 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -12,6 +12,7 @@ localStep | main.rs:7:14:7:20 | FormatArgsExpr | main.rs:7:14:7:20 | MacroExpr | | main.rs:7:14:7:20 | MacroStmts | main.rs:7:5:7:21 | MacroExpr | | main.rs:7:14:7:20 | [post] MacroExpr | main.rs:7:14:7:20 | [post] FormatArgsExpr | +| main.rs:7:14:7:20 | { ... } | main.rs:7:14:7:20 | MacroStmts | | main.rs:10:13:10:14 | [SSA] sr | main.rs:11:20:11:21 | sr | | main.rs:10:13:10:14 | sr | main.rs:10:13:10:14 | [SSA] sr | | main.rs:10:13:10:14 | sr | main.rs:10:13:10:14 | sr | @@ -19,6 +20,7 @@ localStep | main.rs:11:14:11:21 | FormatArgsExpr | main.rs:11:14:11:21 | MacroExpr | | main.rs:11:14:11:21 | MacroStmts | main.rs:11:5:11:22 | MacroExpr | | main.rs:11:14:11:21 | [post] MacroExpr | main.rs:11:14:11:21 | [post] FormatArgsExpr | +| main.rs:11:14:11:21 | { ... } | main.rs:11:14:11:21 | MacroStmts | | main.rs:22:9:22:9 | [SSA] s | main.rs:23:10:23:10 | s | | main.rs:22:9:22:9 | s | main.rs:22:9:22:9 | [SSA] s | | main.rs:22:9:22:9 | s | main.rs:22:9:22:9 | s | @@ -684,6 +686,7 @@ localStep | main.rs:463:14:463:20 | FormatArgsExpr | main.rs:463:14:463:20 | MacroExpr | | main.rs:463:14:463:20 | MacroStmts | main.rs:463:5:463:21 | MacroExpr | | main.rs:463:14:463:20 | [post] MacroExpr | main.rs:463:14:463:20 | [post] FormatArgsExpr | +| main.rs:463:14:463:20 | { ... } | main.rs:463:14:463:20 | MacroStmts | | main.rs:467:9:467:9 | [SSA] a | main.rs:468:13:468:13 | a | | main.rs:467:9:467:9 | a | main.rs:467:9:467:9 | [SSA] a | | main.rs:467:9:467:9 | a | main.rs:467:9:467:9 | a | diff --git a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected index e56e7e3ca36..176556b658c 100644 --- a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected +++ b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected @@ -2,9 +2,11 @@ | sqlx.rs:66:26:66:46 | safe_query_3.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:66:26:66:46 | safe_query_3.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | This query depends on a $@. | sqlx.rs:47:22:47:35 | ...::args | user-provided value | | sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | +| sqlx.rs:71:30:71:52 | unsafe_query_4.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:71:30:71:52 | unsafe_query_4.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | | sqlx.rs:77:25:77:45 | safe_query_3.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:77:25:77:45 | safe_query_3.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | This query depends on a $@. | sqlx.rs:47:22:47:35 | ...::args | user-provided value | | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | +| sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | edges | sqlx.rs:47:9:47:18 | arg_string | sqlx.rs:53:27:53:36 | arg_string | provenance | | | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:47:22:47:37 | ...::args(...) [element] | provenance | Src:MaD:1 | @@ -13,6 +15,7 @@ edges | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | sqlx.rs:47:9:47:18 | arg_string | provenance | | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:49:25:49:52 | remote_string.parse() [Ok] | provenance | MaD:8 | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:54:27:54:39 | remote_string | provenance | | +| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:59:17:59:72 | MacroExpr | provenance | | | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | provenance | Src:MaD:2 | | sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | sqlx.rs:48:25:48:78 | ... .unwrap() | provenance | MaD:6 | | sqlx.rs:48:25:48:78 | ... .unwrap() | sqlx.rs:48:25:48:85 | ... .text() [Ok] | provenance | MaD:11 | @@ -36,6 +39,13 @@ edges | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | provenance | MaD:3 | | sqlx.rs:54:26:54:39 | &remote_string [&ref] | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | provenance | | | sqlx.rs:54:27:54:39 | remote_string | sqlx.rs:54:26:54:39 | &remote_string [&ref] | provenance | | +| sqlx.rs:56:9:56:22 | unsafe_query_4 | sqlx.rs:71:30:71:52 | unsafe_query_4.as_str() | provenance | MaD:3 | +| sqlx.rs:56:9:56:22 | unsafe_query_4 | sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | provenance | MaD:3 | +| sqlx.rs:59:9:59:73 | res | sqlx.rs:59:17:59:72 | { ... } | provenance | | +| sqlx.rs:59:17:59:72 | ...::format(...) | sqlx.rs:59:9:59:73 | res | provenance | | +| sqlx.rs:59:17:59:72 | ...::must_use(...) | sqlx.rs:56:9:56:22 | unsafe_query_4 | provenance | | +| sqlx.rs:59:17:59:72 | MacroExpr | sqlx.rs:59:17:59:72 | ...::format(...) | provenance | MaD:4 | +| sqlx.rs:59:17:59:72 | { ... } | sqlx.rs:59:17:59:72 | ...::must_use(...) | provenance | MaD:9 | models | 1 | Source: lang:std; crate::env::args; commandargs; ReturnValue.Element | | 2 | Source: repo:https://github.com/seanmonstar/reqwest:reqwest; crate::blocking::get; remote; ReturnValue.Field[crate::result::Result::Ok(0)] | @@ -75,13 +85,18 @@ nodes | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | semmle.label | unsafe_query_2 [&ref] | | sqlx.rs:54:26:54:39 | &remote_string [&ref] | semmle.label | &remote_string [&ref] | | sqlx.rs:54:27:54:39 | remote_string | semmle.label | remote_string | +| sqlx.rs:56:9:56:22 | unsafe_query_4 | semmle.label | unsafe_query_4 | +| sqlx.rs:59:9:59:73 | res | semmle.label | res | +| sqlx.rs:59:17:59:72 | ...::format(...) | semmle.label | ...::format(...) | +| sqlx.rs:59:17:59:72 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| sqlx.rs:59:17:59:72 | MacroExpr | semmle.label | MacroExpr | +| sqlx.rs:59:17:59:72 | { ... } | semmle.label | { ... } | | sqlx.rs:66:26:66:46 | safe_query_3.as_str() | semmle.label | safe_query_3.as_str() | | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | | sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | semmle.label | unsafe_query_2.as_str() | +| sqlx.rs:71:30:71:52 | unsafe_query_4.as_str() | semmle.label | unsafe_query_4.as_str() | | sqlx.rs:77:25:77:45 | safe_query_3.as_str() | semmle.label | safe_query_3.as_str() | | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | semmle.label | unsafe_query_2.as_str() | +| sqlx.rs:82:29:82:51 | unsafe_query_4.as_str() | semmle.label | unsafe_query_4.as_str() | subpaths -testFailures -| sqlx.rs:71:63:71:109 | //... | Missing result: Alert[rust/sql-injection]=remote1 | -| sqlx.rs:82:77:82:123 | //... | Missing result: Alert[rust/sql-injection]=remote1 | From bc35599f1ad0d85cedb4bb263557e2a6dcaf1ddd Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 2 May 2025 14:47:59 +0200 Subject: [PATCH 246/656] Rust: rename MacroStmts to MacroBlockExpr --- rust/ast-generator/src/main.rs | 2 + rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 126 ++++++++--------- rust/extractor/src/translate/generated.rs | 10 +- rust/ql/.generated.list | 26 ++-- rust/ql/.gitattributes | 14 +- .../internal/ControlFlowGraphImpl.qll | 6 +- .../internal/generated/CfgNodes.qll | 128 +++++++++--------- .../rust/dataflow/internal/DataFlowImpl.qll | 2 +- rust/ql/lib/codeql/rust/elements.qll | 2 +- .../{MacroStmts.qll => MacroBlockExpr.qll} | 6 +- ...ctor.qll => MacroBlockExprConstructor.qll} | 6 +- ...roStmtsImpl.qll => MacroBlockExprImpl.qll} | 8 +- .../internal/generated/MacroBlockExpr.qll | 66 +++++++++ .../internal/generated/MacroStmts.qll | 64 --------- .../internal/generated/ParentChild.qll | 46 ++++--- .../rust/elements/internal/generated/Raw.qll | 46 +++---- .../elements/internal/generated/Synth.qll | 46 +++---- .../internal/generated/SynthConstructors.qll | 2 +- rust/ql/lib/rust.dbscheme | 36 ++--- .../generated/.generated_tests.list | 2 +- .../extractor-tests/generated/.gitattributes | 2 +- .../MacroBlockExpr/MacroBlockExpr.expected | 1 + .../MacroBlockExpr/MacroBlockExpr.ql | 11 ++ .../MacroBlockExpr_getStatement.expected} | 0 .../MacroBlockExpr_getStatement.ql} | 2 +- .../MacroBlockExpr_getTailExpr.expected | 1 + .../MacroBlockExpr_getTailExpr.ql} | 4 +- .../gen_macro_block_expr.rs} | 0 .../MacroCall/MacroCall_getExpanded.expected | 2 +- .../generated/MacroStmts/MacroStmts.expected | 1 - .../generated/MacroStmts/MacroStmts.ql | 11 -- .../MacroStmts/MacroStmts_getExpr.expected | 1 - .../library-tests/controlflow/Cfg.expected | 40 +++--- .../dataflow/local/DataFlowStep.expected | 12 +- .../test/library-tests/variables/Cfg.expected | 16 +-- rust/schema/annotations.py | 2 +- rust/schema/ast.py | 4 +- 38 files changed, 381 insertions(+), 375 deletions(-) rename rust/ql/lib/codeql/rust/elements/{MacroStmts.qll => MacroBlockExpr.qll} (66%) rename rust/ql/lib/codeql/rust/elements/internal/{MacroStmtsConstructor.qll => MacroBlockExprConstructor.qll} (60%) rename rust/ql/lib/codeql/rust/elements/internal/{MacroStmtsImpl.qll => MacroBlockExprImpl.qll} (72%) create mode 100644 rust/ql/lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll delete mode 100644 rust/ql/lib/codeql/rust/elements/internal/generated/MacroStmts.qll create mode 100644 rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected create mode 100644 rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql rename rust/ql/test/extractor-tests/generated/{MacroStmts/MacroStmts_getStatement.expected => MacroBlockExpr/MacroBlockExpr_getStatement.expected} (100%) rename rust/ql/test/extractor-tests/generated/{MacroStmts/MacroStmts_getStatement.ql => MacroBlockExpr/MacroBlockExpr_getStatement.ql} (83%) create mode 100644 rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.expected rename rust/ql/test/extractor-tests/generated/{MacroStmts/MacroStmts_getExpr.ql => MacroBlockExpr/MacroBlockExpr_getTailExpr.ql} (72%) rename rust/ql/test/extractor-tests/generated/{MacroStmts/gen_macro_stmts.rs => MacroBlockExpr/gen_macro_block_expr.rs} (100%) delete mode 100644 rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getExpr.expected diff --git a/rust/ast-generator/src/main.rs b/rust/ast-generator/src/main.rs index 8b8d7f5c593..3f1613573df 100644 --- a/rust/ast-generator/src/main.rs +++ b/rust/ast-generator/src/main.rs @@ -23,6 +23,7 @@ fn class_name(type_name: &str) -> String { "Literal" => "LiteralExpr".to_owned(), "ArrayExpr" => "ArrayExprInternal".to_owned(), "AsmOptions" => "AsmOptionsList".to_owned(), + "MacroStmts" => "MacroBlockExpr".to_owned(), _ if type_name.starts_with("Record") => type_name.replacen("Record", "Struct", 1), _ if type_name.ends_with("Type") => format!("{}Repr", type_name), _ => type_name.to_owned(), @@ -36,6 +37,7 @@ fn property_name(type_name: &str, field_name: &str) -> String { ("MatchExpr", "expr") => "scrutinee", ("Variant", "expr") => "discriminant", ("FieldExpr", "expr") => "container", + ("MacroBlockExpr", "expr") => "tail_expr", (_, "name_ref") => "identifier", (_, "then_branch") => "then", (_, "else_branch") => "else_", diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 158f55acad5..fdaed238b03 100644 --- a/rust/extractor/src/generated/.generated.list +++ b/rust/extractor/src/generated/.generated.list @@ -1,2 +1,2 @@ mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 -top.rs f7c07bc5a6ad3e1a3af05d16b5b448509f9f8403a510bfca1db42348d3c7038b f7c07bc5a6ad3e1a3af05d16b5b448509f9f8403a510bfca1db42348d3c7038b +top.rs 47c9cc0e39e81a89bf62497e7b3e45c9cd585c425aaac7fc5d07113e8ef9861d 47c9cc0e39e81a89bf62497e7b3e45c9cd585c425aaac7fc5d07113e8ef9861d diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index a79bfc7bd0a..91fe945df62 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -6307,6 +6307,69 @@ impl From> for trap::Label { } } +#[derive(Debug)] +pub struct MacroBlockExpr { + pub id: trap::TrapId, + pub tail_expr: Option>, + pub statements: Vec>, +} + +impl trap::TrapEntry for MacroBlockExpr { + fn extract_id(&mut self) -> trap::TrapId { + std::mem::replace(&mut self.id, trap::TrapId::Star) + } + + fn emit(self, id: trap::Label, out: &mut trap::Writer) { + out.add_tuple("macro_block_exprs", vec![id.into()]); + if let Some(v) = self.tail_expr { + out.add_tuple("macro_block_expr_tail_exprs", vec![id.into(), v.into()]); + } + for (i, v) in self.statements.into_iter().enumerate() { + out.add_tuple("macro_block_expr_statements", vec![id.into(), i.into(), v.into()]); + } + } +} + +impl trap::TrapClass for MacroBlockExpr { + fn class_name() -> &'static str { "MacroBlockExpr" } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme MacroBlockExpr is a subclass of Expr + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme MacroBlockExpr is a subclass of AstNode + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme MacroBlockExpr is a subclass of Locatable + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme MacroBlockExpr is a subclass of Element + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + #[derive(Debug)] pub struct MacroExpr { pub id: trap::TrapId, @@ -6425,69 +6488,6 @@ impl From> for trap::Label { } } -#[derive(Debug)] -pub struct MacroStmts { - pub id: trap::TrapId, - pub expr: Option>, - pub statements: Vec>, -} - -impl trap::TrapEntry for MacroStmts { - fn extract_id(&mut self) -> trap::TrapId { - std::mem::replace(&mut self.id, trap::TrapId::Star) - } - - fn emit(self, id: trap::Label, out: &mut trap::Writer) { - out.add_tuple("macro_stmts", vec![id.into()]); - if let Some(v) = self.expr { - out.add_tuple("macro_stmts_exprs", vec![id.into(), v.into()]); - } - for (i, v) in self.statements.into_iter().enumerate() { - out.add_tuple("macro_stmts_statements", vec![id.into(), i.into(), v.into()]); - } - } -} - -impl trap::TrapClass for MacroStmts { - fn class_name() -> &'static str { "MacroStmts" } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of Expr - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of AstNode - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of Locatable - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme MacroStmts is a subclass of Element - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct MacroTypeRepr { pub id: trap::TrapId, diff --git a/rust/extractor/src/translate/generated.rs b/rust/extractor/src/translate/generated.rs index 32b9c2367a6..8628b3e30f3 100644 --- a/rust/extractor/src/translate/generated.rs +++ b/rust/extractor/src/translate/generated.rs @@ -1365,16 +1365,16 @@ impl Translator<'_> { Some(label) } - pub(crate) fn emit_macro_stmts(&mut self, node: ast::MacroStmts) -> Option> { - let expr = node.expr().and_then(|x| self.emit_expr(x)); + pub(crate) fn emit_macro_stmts(&mut self, node: ast::MacroStmts) -> Option> { + let tail_expr = node.expr().and_then(|x| self.emit_expr(x)); let statements = node.statements().filter_map(|x| self.emit_stmt(x)).collect(); - let label = self.trap.emit(generated::MacroStmts { + let label = self.trap.emit(generated::MacroBlockExpr { id: TrapId::Star, - expr, + tail_expr, statements, }); self.emit_location(label, &node); - emit_detached!(MacroStmts, self, node, label); + emit_detached!(MacroBlockExpr, self, node, label); self.emit_tokens(&node, label.into(), node.syntax().children_with_tokens()); Some(label) } diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index bc447c524e8..6983e823256 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -1,4 +1,4 @@ -lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 08d3062aa600c5dceba897f067b1142a382b7a342acc9f7e7548b0b9df0dab36 b9bc250dbd89e95bf8fd12eacfa725ad1b50ac644599da6100cff33adfb8a18e +lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 3ec9d072adb1abd802800a104716c6896f1874fd1967cbdf55a94644d6203e71 30b03b44f858e00f3688dccaa0804306242d6fcdb077c18a94c601af32c6c703 lib/codeql/rust/elements/Abi.qll 4c973d28b6d628f5959d1f1cc793704572fd0acaae9a97dfce82ff9d73f73476 250f68350180af080f904cd34cb2af481c5c688dc93edf7365fd0ae99855e893 lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be lib/codeql/rust/elements/ArgList.qll 661f5100f5d3ef8351452d9058b663a2a5c720eea8cf11bedd628969741486a2 28e424aac01a90fb58cd6f9f83c7e4cf379eea39e636bc0ba07efc818be71c71 @@ -89,13 +89,13 @@ lib/codeql/rust/elements/LiteralPat.qll daffb5f380a47543669c8cc92628b0e0de478c3a lib/codeql/rust/elements/Locatable.qll 2855efa4a469b54e0ca85daa89309a8b991cded6f3f10db361010831ba1e11d3 00c3406d14603f90abea11bf074eaf2c0b623a30e29cf6afc3a247cb58b92f0f lib/codeql/rust/elements/LoopExpr.qll ee171177650fa23eef102a9580765f4b6073a1cc41bab1ec31ad4f84ffe6c2c9 bfcf0cca4dc944270d9748a202829a38c64dfae167c0d3a4202788ceb9daf5f6 lib/codeql/rust/elements/LoopingExpr.qll 7ad7d4bbfd05adc0bb9b4ca90ff3377b8298121ca5360ffb45d5a7a1e20fe37a 964168b2045ee9bad827bba53f10a64d649b3513f2d1e3c17a1b1f11d0fc7f3a +lib/codeql/rust/elements/MacroBlockExpr.qll fb81f067a142053b122e2875a15719565024cfb09326faf12e0f1017307deb58 3ee94ef7e56bd07a8f9304869b0a7b69971b02abbee46d0bebcacb4031760282 lib/codeql/rust/elements/MacroCall.qll a39a11d387355f59af3007dcbab3282e2b9e3289c1f8f4c6b96154ddb802f8c3 88d4575e462af2aa780219ba1338a790547fdfc1d267c4b84f1b929f4bc08d05 lib/codeql/rust/elements/MacroDef.qll acb39275a1a3257084314a46ad4d8477946130f57e401c70c5949ad6aafc5c5f 6a8a8db12a3ec345fede51ca36e8c6acbdce58c5144388bb94f0706416fa152a lib/codeql/rust/elements/MacroExpr.qll ea9fed13f610bab1a2c4541c994510e0cb806530b60beef0d0c36b23e3b620f0 ad11a6bbd3a229ad97a16049cc6b0f3c8740f9f75ea61bbf4eebb072db9b12d2 lib/codeql/rust/elements/MacroItems.qll 00a5d41f7bb836d952abbd9382e42f72a9d81e65646a15a460b35ccd07a866c6 00efdb4d701b5599d76096f740da9ec157804865267b7e29bc2a214cbf03763e lib/codeql/rust/elements/MacroPat.qll dbf193b4fb544ac0b5a7dcfc31a6652de7239b6e643ff15b05868b2c142e940c 19b45c0a1eb1198e450c05d564b5d4aa0d6da29e7db84b9521eadf901e20a932 lib/codeql/rust/elements/MacroRules.qll a94535506798077043b9c1470992ac4310bf67bcce5f722080886d1b3e6d90d1 bd8e08a7171991abc85100b45267631e66d1b332caf1e5882cd17caee5cf18a3 -lib/codeql/rust/elements/MacroStmts.qll 02c4e34d266d4564ea0433a3d6186402db516dc2dd9017d7c769a76300c2286d f4517fb9fea2ea64d4f2c1998a6899d2452878000ed6f8f31c5106ef0fb6783a lib/codeql/rust/elements/MacroTypeRepr.qll 92fa5f6d20cce8fa3f2b4b823a8a77fdb7c11f2c2b12b8f900828c3a54eca334 51289f2622d1bb58d9a093255da2c05084a0b184f02e69e2526ec7fefdfdfd75 lib/codeql/rust/elements/MatchArm.qll c39fd6cc0da24b1ff8d1e42835bcfee7695ad13580e3c7c50acd7c881b1cd894 62a31d2bd125e6aaebefc406e541a641271d3c497a377959f94dd4735b2bfbf8 lib/codeql/rust/elements/MatchArmList.qll e6c48fd7419d88e996b82eb45e4aa2686dfd079b283b02be7710192fb2cb93a0 0ec63a0ca56f5f7f80093fd3e77b198b74c6289e67be55dc6a4deb610753c7bd @@ -310,6 +310,8 @@ lib/codeql/rust/elements/internal/LiteralExprConstructor.qll 8ea3569bd50704ce7d5 lib/codeql/rust/elements/internal/LiteralPatConstructor.qll b660cb428a0cba0b713fc7b07d5d2921de4a2f65a805535fb6387684c40620de 2dbc9fbc56e9de53d24265d6b13738ef5b9ced33cc3c4c1c270e04dc2fc1330f lib/codeql/rust/elements/internal/LoopExprConstructor.qll 45f3f8f7441fcab6adc58831421679ee07bac68ac0417f3cbc90c97426cc805b f7ab3361b4a11e898126378ea277d76949466946762cd6cb5e9e9b4bb9860420 lib/codeql/rust/elements/internal/LoopingExprImpl.qll 17885c1bcf7b5a3f9c7bbad3d4d55e24372af0dedd5e7fc0efcfc0a8b2cdad70 104dc45ca399b9f6e8227ad561679f728d60170398a52b31fc90cb2a2dd3c33c +lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll 90097c0d2c94083e997396e01cf24349af5eb1788060368dc21ae8cd8ce90d93 e067904a734356e38fbadbc4277629c5987adce6d8f7737f7458ac07e9b264af +lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll f7a8dd1dcde2355353e17d06bb197e2d6e321ea64a39760a074d1887e68d63d6 8d429be9b6aa9f711e050b6b07f35637de22e8635a559e06dd9153a8b7947274 lib/codeql/rust/elements/internal/MacroCallConstructor.qll 707fee4fba1fd632cd00128f493e8919eaaea552ad653af4c1b7a138e362907d b49e7e36bf9306199f2326af042740ff858871b5c79f6aeddf3d5037044dbf1f lib/codeql/rust/elements/internal/MacroDefConstructor.qll 382a3bdf46905d112ee491620cc94f87d584d72f49e01eb1483f749e4709c055 eb61b90d8d8d655c2b00ff576ae20c8da9709eeef754212bc64d8e1558ad05ce lib/codeql/rust/elements/internal/MacroDefImpl.qll f26e787ffd43e8cb079db01eba04412dbf32c338938acf1bc09a2f094bbdfdfe 044f43bc94fe4b6df22afae32e9f039d1d0d9e85ad9f24b6388be71211c37ce5 @@ -321,8 +323,6 @@ lib/codeql/rust/elements/internal/MacroPatConstructor.qll 24744c1bbe21c1d249a042 lib/codeql/rust/elements/internal/MacroPatImpl.qll 7470e2d88c38c7300a64986f058ba92bb22b4945438e2e0e268f180c4f267b71 c1507df74fc4c92887f3e0a4f857f54b61f174ffae5b1af6fb70f466175d658b lib/codeql/rust/elements/internal/MacroRulesConstructor.qll dc04726ad59915ec980501c4cd3b3d2ad774f454ddbf138ff5808eba6bd63dea 8d6bf20feb850c47d1176237027ef131f18c5cbb095f6ab8b3ec58cea9bce856 lib/codeql/rust/elements/internal/MacroRulesImpl.qll 10c03adfb63ee7a4348ff5cffc6ef5300a531b048f28811a51e940b053e69f68 2498bd64aeaea9849c086abeaa6c248e4ce41b4436155f4bd4840965976d5d54 -lib/codeql/rust/elements/internal/MacroStmtsConstructor.qll c293815cd69c002ba6de1db6018672654420f3f8bdd143f9d0c620adddd2be02 d376f8f07661a8cad1b10039076fd7fca353dcacf3ca40ed6507b8c874e849ca -lib/codeql/rust/elements/internal/MacroStmtsImpl.qll 27faff9da93ad7f22a6236c73ebb4d4631161cf4ec1b82958cdf79c85aa2087c 7e2863eaf50d4b285b9240f2c5ff9497cfb4393c8528a0738d725d00f1a78406 lib/codeql/rust/elements/internal/MacroTypeReprConstructor.qll cf8a3bdcd41dda1452200993206593e957825b406b357fc89c6286cb282347ac a82279485416567428ab7bff7b8da7a3d1233fb1cfcdb1b22932ff13bd8c8ec9 lib/codeql/rust/elements/internal/MacroTypeReprImpl.qll 8044498e426597c767308b0bd8894402f7b30f334c71970d7a09dae5e25dd74d c0d566147777f562055727ebfc255e81dfb87ee724782a5a0ceb02f57597c7a0 lib/codeql/rust/elements/internal/MatchArmConstructor.qll b41c1d5822d54127ce376ef62c6a5fa60e11697319fc7d9c9c54fd313d784a93 96cca80e5684e5893c0e9c0dff365ef8ad9e15ff648c9969ba42d91f95abea05 @@ -551,13 +551,13 @@ lib/codeql/rust/elements/internal/generated/LiteralPat.qll f36b09cf39330019c111e lib/codeql/rust/elements/internal/generated/Locatable.qll c897dc1bdd4dfcb6ded83a4a93332ca3d8f421bae02493ea2a0555023071775e b32d242f8c9480dc9b53c1e13a5cb8dcfce575b0373991c082c1db460a3e37b8 lib/codeql/rust/elements/internal/generated/LoopExpr.qll db6bc87e795c9852426ec661fa2c2c54106805897408b43a67f5b82fb4657afd 1492866ccf8213469be85bbdbcae0142f4e2a39df305d4c0d664229ecd1ebdb9 lib/codeql/rust/elements/internal/generated/LoopingExpr.qll 0792c38d84b8c68114da2bbdfef32ef803b696cb0fd06e10e101756d5c46976c 111fe961fad512722006323c3f2a075fddf59bd3eb5c7afc349835fcec8eb102 +lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll 778376cdfa4caaa9df0b9c21bda5ff0f1037b730aa43efb9fb0a08998ef3999b 6df39efe7823ce590ef6f4bdfa60957ba067205a77d94ac089b2c6a7f6b7b561 lib/codeql/rust/elements/internal/generated/MacroCall.qll fc8988696493992cc4fdce8c0e5610c54ee92ea52ebb05262338f8b612353f50 188a2d7a484bd402a521787371e64f6e00e928306c8d437e6b19bf890a7aa14e lib/codeql/rust/elements/internal/generated/MacroDef.qll e9b3f07ba41aa12a8e0bd6ec1437b26a6c363065ce134b6d059478e96c2273a6 87470dea99da1a6afb3a19565291f9382e851ba864b50a995ac6f29589efbd70 lib/codeql/rust/elements/internal/generated/MacroExpr.qll 03a1daa41866f51e479ac20f51f8406d04e9946b24f3875e3cf75a6b172c3d35 1ae8ca0ee96bd2be32575d87c07cc999a6ff7770151b66c0e3406f9454153786 lib/codeql/rust/elements/internal/generated/MacroItems.qll 894890f61e118b3727d03ca813ae7220a15e45195f2d1d059cb1bba6802128c8 db3854b347f8782a3ec9f9a1439da822727b66f0bd33727383184ab65dbf29ac lib/codeql/rust/elements/internal/generated/MacroPat.qll 26bc55459a66359ad83ed7b25284a25cdbd48a868fd1bbf7e23e18b449395c43 f16ede334becba951873e585c52a3a9873c9251e3dab9a3c1a1681f632f2079f lib/codeql/rust/elements/internal/generated/MacroRules.qll 4fbd94f22b5ee0f3e5aaae39c2b9a5e9b7bf878a1017811ca589942f6de92843 49fb69543ee867bae196febea6918e621f335afdf4d3ccbf219965b37c7537b1 -lib/codeql/rust/elements/internal/generated/MacroStmts.qll d19f8b925d3b926c94e3d17c71aa4500899ec3cdd22c7e3428444e7e8e70bf97 69e64fc2089d6109de012956d1e9ddd86d468bb132e9b562efc06f359b00b0e7 lib/codeql/rust/elements/internal/generated/MacroTypeRepr.qll 4242e253fa36ee3f7d9d0677811ff5bc4ecfb02c76d768446a6a6dcd38061f68 a676632f3bb83142a0838601ae2a582d5c32d7939e4261eb8fccf3962bb06cb2 lib/codeql/rust/elements/internal/generated/MatchArm.qll f8c4c955c50f8398159c492d9d0a74f7b71e9510fcb8a3aab1d06e0f7e15b263 713939c7ef77ca73d95788096163c26213ab49f34ed41c6f4bc09a1ef9607b0d lib/codeql/rust/elements/internal/generated/MatchArmList.qll 13362680c037fe83fef4653562cc10a4429078316b5ec7c47b076336cf4aca2e 41c674293c13eceaca62134ae0c6778541f6a5201cbc5c146f0ba01b898dc267 @@ -579,7 +579,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll c808c9d84dd7800573832b lib/codeql/rust/elements/internal/generated/ParenExpr.qll bc0731505bfe88516205ec360582a4222d2681d11342c93e15258590ddee82f2 d4bd6e0c80cf1d63746c88d4bcb3a01d4c75732e5da09e3ebd9437ced227fb60 lib/codeql/rust/elements/internal/generated/ParenPat.qll 4f168ef5d5bb87a903251cc31b2e44a759b099ec69c90af31783fbb15778c940 0e34f94a45a13396fd57d94c245dc64d1adde2ab0e22b56946f7e94c04e297fc lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 40ab5c592e7699c621787793743e33988de71ff42ca27599f5ab3ddb70e3f7d8 12c0a6eed2202ee3e892f61da3b3ce77ac3190854cdf3097e8d2be98aa3cb91d -lib/codeql/rust/elements/internal/generated/ParentChild.qll 27c4e9351e8dcf0290a5959b634c15398196b312e75f7ef4716e7c56090a90aa 99b4716d995792105d1a20300f8710d3ae26ca59f3a0db076114509d8bdab85e +lib/codeql/rust/elements/internal/generated/ParentChild.qll abf6697a61edbb76320e68eda5e26ddda6ea1f514c83648183901d751619982c a253318e802b6129fff63123a050fff93a79f9075c130d393ad13995d08f38f7 lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll c5fa328ea60d3a3333d7c7bb3480969c1873166c7ac8ebb9d0afad7a8099d1a8 2dbbb6200d96f7db7dea4a55bdeab8d67b14d39a43e0bd54ada019f7e466f163 lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4 lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd @@ -594,7 +594,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 51d1e9e683fc79dddbff lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9 -lib/codeql/rust/elements/internal/generated/Raw.qll 8aaa20dd4d49220f3eff2ac64f7a8d34f343d198b59785a06922c3642322e056 3d14ea25f0ad20af1bfb1b8e3e0e5fba9f1a1f764132c0d42972e08893ebd31b +lib/codeql/rust/elements/internal/generated/Raw.qll 2fb3828c97d078d37084ce791c698bc56c81fe73e134a319089d65ec55ceb138 0234a0a5fdd741d78238dbae1ce0d841d8473b8f396fee986b6ce2b69f2abe17 lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 3d8c0bd296d33b91a81633f697a43269a6538df06d277262d3990d3f6880ef57 13680f39e89bcd8299c218aba396f3deec804597e6f7cb7d4a7e7c748b6faa77 @@ -620,8 +620,8 @@ lib/codeql/rust/elements/internal/generated/StructFieldList.qll 8911a44217d091b0 lib/codeql/rust/elements/internal/generated/StructPat.qll c76fa005c2fd0448a8803233e1e8818c4123301eb66ac5cf69d0b9eaafc61e98 6e0dffccdce24bca20e87d5ba0f0995c9a1ae8983283e71e7dbfcf6fffc67a58 lib/codeql/rust/elements/internal/generated/StructPatField.qll 5b5c7302dbc4a902ca8e69ff31875c867e295a16a626ba3cef29cd0aa248f179 4e192a0df79947f5cb0d47fdbbba7986137a6a40a1be92ae119873e2fad67edf lib/codeql/rust/elements/internal/generated/StructPatFieldList.qll e34c003e660ba059ba81bb73b3c8d21bd2a47d0251569c46277dc9ccf2947b0a 85113f35ba5f6b9e01ad4072246a4de1ac0e4528348ac564868e96f34a3e09e2 -lib/codeql/rust/elements/internal/generated/Synth.qll e35b960eeea21a70c94bd81001357fd18b1ecccef0a7b514e2a64e9091db21a2 319b9fa102d87d93d2157cd0fe7b5934d0892185e740d98b50c44cc5e99a4cd6 -lib/codeql/rust/elements/internal/generated/SynthConstructors.qll fe007cf6eab5f0cf89ea1ea91e1f9b23e0fcf0f2872f52ef352584503f90aa29 fe007cf6eab5f0cf89ea1ea91e1f9b23e0fcf0f2872f52ef352584503f90aa29 +lib/codeql/rust/elements/internal/generated/Synth.qll eb248f4e57985ec8eabf9ed5cfb8ba8f5ebd6ca17fb712c992811bced0e342d4 bbcbdba484d3b977a0d6b9158c5fa506f59ced2ad3ae8239d536bf826bfb7e31 +lib/codeql/rust/elements/internal/generated/SynthConstructors.qll bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b lib/codeql/rust/elements/internal/generated/TokenTree.qll 8577c2b097c1be2f0f7daa5acfcf146f78674a424d99563e08a84dd3e6d91b46 d2f30764e84dbfc0a6a5d3d8a5f935cd432413688cb32da9c94e420fbc10665c lib/codeql/rust/elements/internal/generated/Trait.qll 8fa41b50fa0f68333534f2b66bb4ec8e103ff09ac8fa5c2cc64bc04beafec205 ce1c9aa6d0e2f05d28aab8e1165c3b9fb8e24681ade0cf6a9df2e8617abeae7e @@ -658,7 +658,7 @@ lib/codeql/rust/elements/internal/generated/WhileExpr.qll 7edf1f23fbf953a2baabcd lib/codeql/rust/elements/internal/generated/WildcardPat.qll d74b70b57a0a66bfae017a329352a5b27a6b9e73dd5521d627f680e810c6c59e 4b913b548ba27ff3c82fcd32cf996ff329cb57d176d3bebd0fcef394486ea499 lib/codeql/rust/elements/internal/generated/YeetExpr.qll cac328200872a35337b4bcb15c851afb4743f82c080f9738d295571eb01d7392 94af734eea08129b587fed849b643e7572800e8330c0b57d727d41abda47930b lib/codeql/rust/elements/internal/generated/YieldExpr.qll 37e5f0c1e373a22bbc53d8b7f2c0e1f476e5be5080b8437c5e964f4e83fad79a 4a9a68643401637bf48e5c2b2f74a6bf0ddcb4ff76f6bffb61d436b685621e85 -lib/codeql/rust/elements.qll 05fb894d008a9c0478d03fb1639ffc57516b67d9de7f7309331279512f630b4a 05fb894d008a9c0478d03fb1639ffc57516b67d9de7f7309331279512f630b4a +lib/codeql/rust/elements.qll da721d51bc659921998521579df5bff6172d9079d8e243c2b65a5b9eb441b52e da721d51bc659921998521579df5bff6172d9079d8e243c2b65a5b9eb441b52e test/extractor-tests/generated/Abi/Abi.ql 7f6e7dc4af86eca3ebdc79b10373988cd0871bd78b51997d3cffd969105e5fdd 2f936b6ca005c6157c755121584410c03e4a3949c23bee302fbe05ee10ce118f test/extractor-tests/generated/Abi/Abi_getAbiString.ql a496762fcec5a0887b87023bbf93e9b650f02e20113e25c44d6e4281ae8f5335 14109c7ce11ba25e3cd6e7f1b3fcb4cb00622f2a4eac91bfe43145c5f366bc52 test/extractor-tests/generated/ArgList/ArgList.ql e412927756e72165d0e7c5c9bd3fca89d08197bbf760db8fb7683c64bb2229bc 043dba8506946fbb87753e22c387987d7eded6ddb963aa067f9e60ef9024d684 @@ -894,6 +894,9 @@ test/extractor-tests/generated/LoopExpr/LoopExpr.ql 37b320acefa3734331f87414de27 test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql d557c1a34ae8762b32702d6b50e79c25bc506275c33a896b6b94bbbe73d04c49 34846c9eefa0219f4a16e28b518b2afa23f372d0aa03b08d042c5a35375e0cd6 test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql 0b77b9d9fb5903d37bce5a2c0d6b276e6269da56fcb37b83cd931872fb88490f c7f09c526e59dcadec13ec9719980d68b8619d630caab2c26b8368b06c1f2cc0 test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql 0267f54077640f3dfeb38524577e4a1229115eeb1c839398d0c5f460c1d65129 96ec876635b8c561f7add19e57574444f630eae3df9ab9bc33ac180e61f3a7b8 +test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql 03144a5448de91801037f3c1e6d29a230e18f9c077c718e5c3801a31cf593977 9a035e3f119b0e0c88fc4c775a032220a01680fbea2cc7f8e98180205b9bb8da +test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql 415a762768df2c850d21742daab5e53cd248dc3dc9652414b99737f1d5c5824b bdd2ba6c004ada34f26dac3bbc7abcd5fe250c77a97faa7fd71fb54a0dd4743a +test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql 8f6604c09e85da1a19b0f87340cebeb1cdf4e94b208305c7393082d88cf0b032 5081d9db5b38454fad1daad2f8972661bd2fb4cce2c815a560a15f8a7b9cfcee test/extractor-tests/generated/MacroCall/MacroCall.ql f41552ce4c8132db854132e445aa0c8df514bfd375aa71cc9ed0ae838b7df9f1 442ecbe1481084bb072c6f8cf0eb595b7ad371587e8708610a10f2cc718535f7 test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql c22a2a29d705e85b03a6586d1eda1a2f4f99f95f7dfeb4e6908ec3188b5ad0ad 9b8d9dcc2116a123c15c520a880efab73ade20e08197c64bc3ed0c50902c4672 test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql 3030e87de6f773d510882ee4469146f6008898e23a4a4ccabcbaa7da1a4e765e a10fe67315eda1c59d726d538ead34f35ccffc3e121eeda74c286d49a4ce4f54 @@ -922,9 +925,6 @@ test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql test/extractor-tests/generated/MacroRules/MacroRules_getName.ql 591606e3accae8b8fb49e1218c4867a42724ac209cf99786db0e5d7ea0bf55d5 d2936ef5aa4bbf024372516dde3de578990aafb2b8675bbbf0f72e8b54eb82a8 test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql 7598d33c3d86f9ad8629219b90667b2b65e3a1e18c6b0887291df9455a319cab 69d90446743e78e851145683c17677497fe42ed02f61f2b2974e216dc6e05b01 test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.ql 5306cc85f470d21ebcbe6e98436334b0bf5ba819a0ae186569ba7e88c31636c6 fcbf5c54e5a904767a6f4d37d853072aa0040738e622c49c9a02dec8739d6587 -test/extractor-tests/generated/MacroStmts/MacroStmts.ql 991042263ba99acef0972697ce79132e5650b27bf53be2f975a0da1f29940fd8 64c44e65b3c5d3de5f9532b4ff7ce54b39442b37f63da8b10d789b9b52b85a9e -test/extractor-tests/generated/MacroStmts/MacroStmts_getExpr.ql 5717f20376600e7bf5e471beae1a7c0084f235f0931f8b3f25d2de94ebb86f8b e4685fd9d45b078a6402c285eed3a15cc4550f6656c8bc5e7e274a88d1c7e9b3 -test/extractor-tests/generated/MacroStmts/MacroStmts_getStatement.ql 8958b2212776f487869c29314e7d28f5871f5c3dde62fd9d6f87fb9e94204498 6804f5d4c0c5909689bdcdd5b8ec11ca7a8c0399b47695f66d2f99e39561565a test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql 49c0dbf587f84023025f90d73d54f5320993f4db7dcc90e21eda53fc0b4d1f57 0a0712171db935c549a9cfddb6721c2c188c584a67be85409ffc3facf6c9a935 test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.ql cae14884e549c74be4b600a264eb236993d7b8ddd86589a9116ee2ba18f181e1 1d4ae2d8ed9ce0d7635a2ae447b41a328e59e97c6df7827ee7d5cf62343e86e1 test/extractor-tests/generated/MatchArm/MatchArm.ql 512aa404c94ba40b859564f07e9dffe6a5e687fafb039556e9145f4f3742981c 529f96e38cede8a26054f8981d4ba1d189c17d14d0f92d622eb20acd8f3d7e5d diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 382565f3b86..dec3580d68c 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -91,13 +91,13 @@ /lib/codeql/rust/elements/Locatable.qll linguist-generated /lib/codeql/rust/elements/LoopExpr.qll linguist-generated /lib/codeql/rust/elements/LoopingExpr.qll linguist-generated +/lib/codeql/rust/elements/MacroBlockExpr.qll linguist-generated /lib/codeql/rust/elements/MacroCall.qll linguist-generated /lib/codeql/rust/elements/MacroDef.qll linguist-generated /lib/codeql/rust/elements/MacroExpr.qll linguist-generated /lib/codeql/rust/elements/MacroItems.qll linguist-generated /lib/codeql/rust/elements/MacroPat.qll linguist-generated /lib/codeql/rust/elements/MacroRules.qll linguist-generated -/lib/codeql/rust/elements/MacroStmts.qll linguist-generated /lib/codeql/rust/elements/MacroTypeRepr.qll linguist-generated /lib/codeql/rust/elements/MatchArm.qll linguist-generated /lib/codeql/rust/elements/MatchArmList.qll linguist-generated @@ -312,6 +312,8 @@ /lib/codeql/rust/elements/internal/LiteralPatConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/LoopExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/LoopingExprImpl.qll linguist-generated +/lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll linguist-generated +/lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll linguist-generated /lib/codeql/rust/elements/internal/MacroCallConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/MacroDefConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/MacroDefImpl.qll linguist-generated @@ -323,8 +325,6 @@ /lib/codeql/rust/elements/internal/MacroPatImpl.qll linguist-generated /lib/codeql/rust/elements/internal/MacroRulesConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/MacroRulesImpl.qll linguist-generated -/lib/codeql/rust/elements/internal/MacroStmtsConstructor.qll linguist-generated -/lib/codeql/rust/elements/internal/MacroStmtsImpl.qll linguist-generated /lib/codeql/rust/elements/internal/MacroTypeReprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/MacroTypeReprImpl.qll linguist-generated /lib/codeql/rust/elements/internal/MatchArmConstructor.qll linguist-generated @@ -553,13 +553,13 @@ /lib/codeql/rust/elements/internal/generated/Locatable.qll linguist-generated /lib/codeql/rust/elements/internal/generated/LoopExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/LoopingExpr.qll linguist-generated +/lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MacroCall.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MacroDef.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MacroExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MacroItems.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MacroPat.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MacroRules.qll linguist-generated -/lib/codeql/rust/elements/internal/generated/MacroStmts.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MacroTypeRepr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MatchArm.qll linguist-generated /lib/codeql/rust/elements/internal/generated/MatchArmList.qll linguist-generated @@ -896,6 +896,9 @@ /test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql linguist-generated /test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql linguist-generated /test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql linguist-generated +/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql linguist-generated +/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql linguist-generated +/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql linguist-generated @@ -924,9 +927,6 @@ /test/extractor-tests/generated/MacroRules/MacroRules_getName.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.ql linguist-generated -/test/extractor-tests/generated/MacroStmts/MacroStmts.ql linguist-generated -/test/extractor-tests/generated/MacroStmts/MacroStmts_getExpr.ql linguist-generated -/test/extractor-tests/generated/MacroStmts/MacroStmts_getStatement.ql linguist-generated /test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql linguist-generated /test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.ql linguist-generated /test/extractor-tests/generated/MatchArm/MatchArm.ql linguist-generated diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll index 298d7e49438..943e6ed020d 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/ControlFlowGraphImpl.qll @@ -107,7 +107,7 @@ class FormatTemplateVariableAccessTree extends LeafTree, FormatTemplateVariableA class ItemTree extends LeafTree, Item { ItemTree() { not this instanceof MacroCall and - this = [any(StmtList s).getAStatement(), any(MacroStmts s).getAStatement()] + this = [any(StmtList s).getAStatement(), any(MacroBlockExpr s).getAStatement()] } } @@ -146,12 +146,12 @@ class MacroCallTree extends StandardPostOrderTree, MacroCall { override AstNode getChildNode(int i) { i = 0 and result = this.getExpanded() } } -class MacroStmtsTree extends StandardPostOrderTree, MacroStmts { +class MacroBlockExprTree extends StandardPostOrderTree, MacroBlockExpr { override AstNode getChildNode(int i) { result = this.getStatement(i) or i = this.getNumberOfStatements() and - result = this.getExpr() + result = this.getTailExpr() } } diff --git a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll index 34ccb8d2381..f3cf52dab76 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll @@ -1766,6 +1766,58 @@ module MakeCfgNodes Input> { predicate hasLoopBody() { exists(this.getLoopBody()) } } + final private class ParentMacroBlockExpr extends ParentAstNode, MacroBlockExpr { + override predicate relevantChild(AstNode child) { + none() + or + child = this.getTailExpr() + } + } + + /** + * A sequence of statements generated by a `MacroCall`. For example: + * ```rust + * fn main() { + * println!("Hello, world!"); // This macro expands into a list of statements + * } + * ``` + */ + final class MacroBlockExprCfgNode extends CfgNodeFinal, ExprCfgNode { + private MacroBlockExpr node; + + MacroBlockExprCfgNode() { node = this.getAstNode() } + + /** Gets the underlying `MacroBlockExpr`. */ + MacroBlockExpr getMacroBlockExpr() { result = node } + + /** + * Gets the tail expression of this macro block expression, if it exists. + */ + ExprCfgNode getTailExpr() { + any(ChildMapping mapping).hasCfgChild(node, node.getTailExpr(), this, result) + } + + /** + * Holds if `getTailExpr()` exists. + */ + predicate hasTailExpr() { exists(this.getTailExpr()) } + + /** + * Gets the `index`th statement of this macro block expression (0-based). + */ + Stmt getStatement(int index) { result = node.getStatement(index) } + + /** + * Gets any of the statements of this macro block expression. + */ + Stmt getAStatement() { result = this.getStatement(_) } + + /** + * Gets the number of statements of this macro block expression. + */ + int getNumberOfStatements() { result = count(int i | exists(this.getStatement(i))) } + } + final private class ParentMacroCall extends ParentAstNode, MacroCall { override predicate relevantChild(AstNode child) { none() } } @@ -1900,58 +1952,6 @@ module MakeCfgNodes Input> { predicate hasMacroCall() { exists(this.getMacroCall()) } } - final private class ParentMacroStmts extends ParentAstNode, MacroStmts { - override predicate relevantChild(AstNode child) { - none() - or - child = this.getExpr() - } - } - - /** - * A sequence of statements generated by a `MacroCall`. For example: - * ```rust - * fn main() { - * println!("Hello, world!"); // This macro expands into a list of statements - * } - * ``` - */ - final class MacroStmtsCfgNode extends CfgNodeFinal, ExprCfgNode { - private MacroStmts node; - - MacroStmtsCfgNode() { node = this.getAstNode() } - - /** Gets the underlying `MacroStmts`. */ - MacroStmts getMacroStmts() { result = node } - - /** - * Gets the expression of this macro statements, if it exists. - */ - ExprCfgNode getExpr() { - any(ChildMapping mapping).hasCfgChild(node, node.getExpr(), this, result) - } - - /** - * Holds if `getExpr()` exists. - */ - predicate hasExpr() { exists(this.getExpr()) } - - /** - * Gets the `index`th statement of this macro statements (0-based). - */ - Stmt getStatement(int index) { result = node.getStatement(index) } - - /** - * Gets any of the statements of this macro statements. - */ - Stmt getAStatement() { result = this.getStatement(_) } - - /** - * Gets the number of statements of this macro statements. - */ - int getNumberOfStatements() { result = count(int i | exists(this.getStatement(i))) } - } - final private class ParentMatchExpr extends ParentAstNode, MatchExpr { override predicate relevantChild(AstNode child) { none() @@ -3751,6 +3751,18 @@ module MakeCfgNodes Input> { cfgNode ) or + pred = "getTailExpr" and + parent = + any(Nodes::MacroBlockExprCfgNode cfgNode, MacroBlockExpr astNode | + astNode = cfgNode.getMacroBlockExpr() and + child = getDesugared(astNode.getTailExpr()) and + i = -1 and + hasCfgNode(child) and + not child = cfgNode.getTailExpr().getAstNode() + | + cfgNode + ) + or pred = "getMacroCall" and parent = any(Nodes::MacroExprCfgNode cfgNode, MacroExpr astNode | @@ -3775,18 +3787,6 @@ module MakeCfgNodes Input> { cfgNode ) or - pred = "getExpr" and - parent = - any(Nodes::MacroStmtsCfgNode cfgNode, MacroStmts astNode | - astNode = cfgNode.getMacroStmts() and - child = getDesugared(astNode.getExpr()) and - i = -1 and - hasCfgNode(child) and - not child = cfgNode.getExpr().getAstNode() - | - cfgNode - ) - or pred = "getScrutinee" and parent = any(Nodes::MatchExprCfgNode cfgNode, MatchExpr astNode | diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index f750fed0455..8aa6c921eef 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -203,7 +203,7 @@ private ExprCfgNode getALastEvalNode(ExprCfgNode e) { result = e.(ReturnExprCfgNode).getExpr() or result = e.(BreakExprCfgNode).getExpr() or result = e.(BlockExprCfgNode).getTailExpr() or - result = e.(MacroStmtsCfgNode).getExpr() or + result = e.(MacroBlockExprCfgNode).getTailExpr() or result = e.(MatchExprCfgNode).getArmExpr(_) or result = e.(MacroExprCfgNode).getMacroCall().(MacroCallCfgNode).getExpandedNode() or result.(BreakExprCfgNode).getTarget() = e diff --git a/rust/ql/lib/codeql/rust/elements.qll b/rust/ql/lib/codeql/rust/elements.qll index 21c254b5d67..4456cb4b44a 100644 --- a/rust/ql/lib/codeql/rust/elements.qll +++ b/rust/ql/lib/codeql/rust/elements.qll @@ -94,13 +94,13 @@ import codeql.rust.elements.LiteralPat import codeql.rust.elements.Locatable import codeql.rust.elements.LoopExpr import codeql.rust.elements.LoopingExpr +import codeql.rust.elements.MacroBlockExpr import codeql.rust.elements.MacroCall import codeql.rust.elements.MacroDef import codeql.rust.elements.MacroExpr import codeql.rust.elements.MacroItems import codeql.rust.elements.MacroPat import codeql.rust.elements.MacroRules -import codeql.rust.elements.MacroStmts import codeql.rust.elements.MacroTypeRepr import codeql.rust.elements.MatchArm import codeql.rust.elements.MatchArmList diff --git a/rust/ql/lib/codeql/rust/elements/MacroStmts.qll b/rust/ql/lib/codeql/rust/elements/MacroBlockExpr.qll similarity index 66% rename from rust/ql/lib/codeql/rust/elements/MacroStmts.qll rename to rust/ql/lib/codeql/rust/elements/MacroBlockExpr.qll index 9ef0c12b35f..8fcd2119a0a 100644 --- a/rust/ql/lib/codeql/rust/elements/MacroStmts.qll +++ b/rust/ql/lib/codeql/rust/elements/MacroBlockExpr.qll @@ -1,9 +1,9 @@ // generated by codegen, do not edit /** - * This module provides the public class `MacroStmts`. + * This module provides the public class `MacroBlockExpr`. */ -private import internal.MacroStmtsImpl +private import internal.MacroBlockExprImpl import codeql.rust.elements.Expr import codeql.rust.elements.Stmt @@ -15,4 +15,4 @@ import codeql.rust.elements.Stmt * } * ``` */ -final class MacroStmts = Impl::MacroStmts; +final class MacroBlockExpr = Impl::MacroBlockExpr; diff --git a/rust/ql/lib/codeql/rust/elements/internal/MacroStmtsConstructor.qll b/rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll similarity index 60% rename from rust/ql/lib/codeql/rust/elements/internal/MacroStmtsConstructor.qll rename to rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll index 6f588955125..0bb4936209a 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/MacroStmtsConstructor.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprConstructor.qll @@ -1,14 +1,14 @@ // generated by codegen, remove this comment if you wish to edit this file /** * This module defines the hook used internally to tweak the characteristic predicate of - * `MacroStmts` synthesized instances. + * `MacroBlockExpr` synthesized instances. * INTERNAL: Do not use. */ private import codeql.rust.elements.internal.generated.Raw /** - * The characteristic predicate of `MacroStmts` synthesized instances. + * The characteristic predicate of `MacroBlockExpr` synthesized instances. * INTERNAL: Do not use. */ -predicate constructMacroStmts(Raw::MacroStmts id) { any() } +predicate constructMacroBlockExpr(Raw::MacroBlockExpr id) { any() } diff --git a/rust/ql/lib/codeql/rust/elements/internal/MacroStmtsImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll similarity index 72% rename from rust/ql/lib/codeql/rust/elements/internal/MacroStmtsImpl.qll rename to rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll index 8ec38e3c526..60030dd6f27 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/MacroStmtsImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/MacroBlockExprImpl.qll @@ -1,14 +1,14 @@ // generated by codegen, remove this comment if you wish to edit this file /** - * This module provides a hand-modifiable wrapper around the generated class `MacroStmts`. + * This module provides a hand-modifiable wrapper around the generated class `MacroBlockExpr`. * * INTERNAL: Do not use. */ -private import codeql.rust.elements.internal.generated.MacroStmts +private import codeql.rust.elements.internal.generated.MacroBlockExpr /** - * INTERNAL: This module contains the customizable definition of `MacroStmts` and should not + * INTERNAL: This module contains the customizable definition of `MacroBlockExpr` and should not * be referenced directly. */ module Impl { @@ -20,5 +20,5 @@ module Impl { * } * ``` */ - class MacroStmts extends Generated::MacroStmts { } + class MacroBlockExpr extends Generated::MacroBlockExpr { } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll new file mode 100644 index 00000000000..3dd6411e20e --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroBlockExpr.qll @@ -0,0 +1,66 @@ +// generated by codegen, do not edit +/** + * This module provides the generated definition of `MacroBlockExpr`. + * INTERNAL: Do not import directly. + */ + +private import codeql.rust.elements.internal.generated.Synth +private import codeql.rust.elements.internal.generated.Raw +import codeql.rust.elements.Expr +import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl +import codeql.rust.elements.Stmt + +/** + * INTERNAL: This module contains the fully generated definition of `MacroBlockExpr` and should not + * be referenced directly. + */ +module Generated { + /** + * A sequence of statements generated by a `MacroCall`. For example: + * ```rust + * fn main() { + * println!("Hello, world!"); // This macro expands into a list of statements + * } + * ``` + * INTERNAL: Do not reference the `Generated::MacroBlockExpr` class directly. + * Use the subclass `MacroBlockExpr`, where the following predicates are available. + */ + class MacroBlockExpr extends Synth::TMacroBlockExpr, ExprImpl::Expr { + override string getAPrimaryQlClass() { result = "MacroBlockExpr" } + + /** + * Gets the tail expression of this macro block expression, if it exists. + */ + Expr getTailExpr() { + result = + Synth::convertExprFromRaw(Synth::convertMacroBlockExprToRaw(this) + .(Raw::MacroBlockExpr) + .getTailExpr()) + } + + /** + * Holds if `getTailExpr()` exists. + */ + final predicate hasTailExpr() { exists(this.getTailExpr()) } + + /** + * Gets the `index`th statement of this macro block expression (0-based). + */ + Stmt getStatement(int index) { + result = + Synth::convertStmtFromRaw(Synth::convertMacroBlockExprToRaw(this) + .(Raw::MacroBlockExpr) + .getStatement(index)) + } + + /** + * Gets any of the statements of this macro block expression. + */ + final Stmt getAStatement() { result = this.getStatement(_) } + + /** + * Gets the number of statements of this macro block expression. + */ + final int getNumberOfStatements() { result = count(int i | exists(this.getStatement(i))) } + } +} diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroStmts.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/MacroStmts.qll deleted file mode 100644 index 636e0d1ea09..00000000000 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/MacroStmts.qll +++ /dev/null @@ -1,64 +0,0 @@ -// generated by codegen, do not edit -/** - * This module provides the generated definition of `MacroStmts`. - * INTERNAL: Do not import directly. - */ - -private import codeql.rust.elements.internal.generated.Synth -private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.Expr -import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl -import codeql.rust.elements.Stmt - -/** - * INTERNAL: This module contains the fully generated definition of `MacroStmts` and should not - * be referenced directly. - */ -module Generated { - /** - * A sequence of statements generated by a `MacroCall`. For example: - * ```rust - * fn main() { - * println!("Hello, world!"); // This macro expands into a list of statements - * } - * ``` - * INTERNAL: Do not reference the `Generated::MacroStmts` class directly. - * Use the subclass `MacroStmts`, where the following predicates are available. - */ - class MacroStmts extends Synth::TMacroStmts, ExprImpl::Expr { - override string getAPrimaryQlClass() { result = "MacroStmts" } - - /** - * Gets the expression of this macro statements, if it exists. - */ - Expr getExpr() { - result = - Synth::convertExprFromRaw(Synth::convertMacroStmtsToRaw(this).(Raw::MacroStmts).getExpr()) - } - - /** - * Holds if `getExpr()` exists. - */ - final predicate hasExpr() { exists(this.getExpr()) } - - /** - * Gets the `index`th statement of this macro statements (0-based). - */ - Stmt getStatement(int index) { - result = - Synth::convertStmtFromRaw(Synth::convertMacroStmtsToRaw(this) - .(Raw::MacroStmts) - .getStatement(index)) - } - - /** - * Gets any of the statements of this macro statements. - */ - final Stmt getAStatement() { result = this.getStatement(_) } - - /** - * Gets the number of statements of this macro statements. - */ - final int getNumberOfStatements() { result = count(int i | exists(this.getStatement(i))) } - } -} diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll index 57e18e373b8..6bea3762de1 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -2368,6 +2368,28 @@ private module Impl { ) } + private Element getImmediateChildOfMacroBlockExpr( + MacroBlockExpr e, int index, string partialPredicateCall + ) { + exists(int b, int bExpr, int n, int nTailExpr, int nStatement | + b = 0 and + bExpr = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfExpr(e, i, _)) | i) and + n = bExpr and + nTailExpr = n + 1 and + nStatement = nTailExpr + 1 + max(int i | i = -1 or exists(e.getStatement(i)) | i) and + ( + none() + or + result = getImmediateChildOfExpr(e, index - b, partialPredicateCall) + or + index = n and result = e.getTailExpr() and partialPredicateCall = "TailExpr()" + or + result = e.getStatement(index - nTailExpr) and + partialPredicateCall = "Statement(" + (index - nTailExpr).toString() + ")" + ) + ) + } + private Element getImmediateChildOfMacroExpr(MacroExpr e, int index, string partialPredicateCall) { exists(int b, int bExpr, int n, int nMacroCall | b = 0 and @@ -2400,26 +2422,6 @@ private module Impl { ) } - private Element getImmediateChildOfMacroStmts(MacroStmts e, int index, string partialPredicateCall) { - exists(int b, int bExpr, int n, int nExpr, int nStatement | - b = 0 and - bExpr = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfExpr(e, i, _)) | i) and - n = bExpr and - nExpr = n + 1 and - nStatement = nExpr + 1 + max(int i | i = -1 or exists(e.getStatement(i)) | i) and - ( - none() - or - result = getImmediateChildOfExpr(e, index - b, partialPredicateCall) - or - index = n and result = e.getExpr() and partialPredicateCall = "Expr()" - or - result = e.getStatement(index - nExpr) and - partialPredicateCall = "Statement(" + (index - nExpr).toString() + ")" - ) - ) - } - private Element getImmediateChildOfMacroTypeRepr( MacroTypeRepr e, int index, string partialPredicateCall ) { @@ -4298,12 +4300,12 @@ private module Impl { or result = getImmediateChildOfLiteralPat(e, index, partialAccessor) or + result = getImmediateChildOfMacroBlockExpr(e, index, partialAccessor) + or result = getImmediateChildOfMacroExpr(e, index, partialAccessor) or result = getImmediateChildOfMacroPat(e, index, partialAccessor) or - result = getImmediateChildOfMacroStmts(e, index, partialAccessor) - or result = getImmediateChildOfMacroTypeRepr(e, index, partialAccessor) or result = getImmediateChildOfMatchExpr(e, index, partialAccessor) diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index b1e26574de1..0869ec4de5a 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -2346,6 +2346,29 @@ module Raw { LiteralExpr getLiteral() { literal_pat_literals(this, result) } } + /** + * INTERNAL: Do not use. + * A sequence of statements generated by a `MacroCall`. For example: + * ```rust + * fn main() { + * println!("Hello, world!"); // This macro expands into a list of statements + * } + * ``` + */ + class MacroBlockExpr extends @macro_block_expr, Expr { + override string toString() { result = "MacroBlockExpr" } + + /** + * Gets the tail expression of this macro block expression, if it exists. + */ + Expr getTailExpr() { macro_block_expr_tail_exprs(this, result) } + + /** + * Gets the `index`th statement of this macro block expression (0-based). + */ + Stmt getStatement(int index) { macro_block_expr_statements(this, index, result) } + } + /** * INTERNAL: Do not use. * A MacroExpr. For example: @@ -2378,29 +2401,6 @@ module Raw { MacroCall getMacroCall() { macro_pat_macro_calls(this, result) } } - /** - * INTERNAL: Do not use. - * A sequence of statements generated by a `MacroCall`. For example: - * ```rust - * fn main() { - * println!("Hello, world!"); // This macro expands into a list of statements - * } - * ``` - */ - class MacroStmts extends @macro_stmts, Expr { - override string toString() { result = "MacroStmts" } - - /** - * Gets the expression of this macro statements, if it exists. - */ - Expr getExpr() { macro_stmts_exprs(this, result) } - - /** - * Gets the `index`th statement of this macro statements (0-based). - */ - Stmt getStatement(int index) { macro_stmts_statements(this, index, result) } - } - /** * INTERNAL: Do not use. * A MacroTypeRepr. For example: diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll index abc696eb51e..04588e2861e 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll @@ -318,6 +318,10 @@ module Synth { * INTERNAL: Do not use. */ TLoopExpr(Raw::LoopExpr id) { constructLoopExpr(id) } or + /** + * INTERNAL: Do not use. + */ + TMacroBlockExpr(Raw::MacroBlockExpr id) { constructMacroBlockExpr(id) } or /** * INTERNAL: Do not use. */ @@ -342,10 +346,6 @@ module Synth { * INTERNAL: Do not use. */ TMacroRules(Raw::MacroRules id) { constructMacroRules(id) } or - /** - * INTERNAL: Do not use. - */ - TMacroStmts(Raw::MacroStmts id) { constructMacroStmts(id) } or /** * INTERNAL: Do not use. */ @@ -742,9 +742,9 @@ module Synth { TArrayExpr or TArrayExprInternal or TAsmExpr or TAwaitExpr or TBecomeExpr or TBinaryExpr or TBreakExpr or TCallExprBase or TCastExpr or TClosureExpr or TContinueExpr or TFieldExpr or TFormatArgsExpr or TIfExpr or TIndexExpr or TLabelableExpr or TLetExpr or TLiteralExpr or - TMacroExpr or TMacroStmts or TMatchExpr or TOffsetOfExpr or TParenExpr or TPathExprBase or - TPrefixExpr or TRangeExpr or TRefExpr or TReturnExpr or TStructExpr or TTryExpr or - TTupleExpr or TUnderscoreExpr or TYeetExpr or TYieldExpr; + TMacroBlockExpr or TMacroExpr or TMatchExpr or TOffsetOfExpr or TParenExpr or + TPathExprBase or TPrefixExpr or TRangeExpr or TRefExpr or TReturnExpr or TStructExpr or + TTryExpr or TTupleExpr or TUnderscoreExpr or TYeetExpr or TYieldExpr; /** * INTERNAL: Do not use. @@ -1300,6 +1300,12 @@ module Synth { */ TLoopExpr convertLoopExprFromRaw(Raw::Element e) { result = TLoopExpr(e) } + /** + * INTERNAL: Do not use. + * Converts a raw element to a synthesized `TMacroBlockExpr`, if possible. + */ + TMacroBlockExpr convertMacroBlockExprFromRaw(Raw::Element e) { result = TMacroBlockExpr(e) } + /** * INTERNAL: Do not use. * Converts a raw element to a synthesized `TMacroCall`, if possible. @@ -1336,12 +1342,6 @@ module Synth { */ TMacroRules convertMacroRulesFromRaw(Raw::Element e) { result = TMacroRules(e) } - /** - * INTERNAL: Do not use. - * Converts a raw element to a synthesized `TMacroStmts`, if possible. - */ - TMacroStmts convertMacroStmtsFromRaw(Raw::Element e) { result = TMacroStmts(e) } - /** * INTERNAL: Do not use. * Converts a raw element to a synthesized `TMacroTypeRepr`, if possible. @@ -2125,9 +2125,9 @@ module Synth { or result = convertLiteralExprFromRaw(e) or - result = convertMacroExprFromRaw(e) + result = convertMacroBlockExprFromRaw(e) or - result = convertMacroStmtsFromRaw(e) + result = convertMacroExprFromRaw(e) or result = convertMatchExprFromRaw(e) or @@ -2900,6 +2900,12 @@ module Synth { */ Raw::Element convertLoopExprToRaw(TLoopExpr e) { e = TLoopExpr(result) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TMacroBlockExpr` to a raw DB element, if possible. + */ + Raw::Element convertMacroBlockExprToRaw(TMacroBlockExpr e) { e = TMacroBlockExpr(result) } + /** * INTERNAL: Do not use. * Converts a synthesized `TMacroCall` to a raw DB element, if possible. @@ -2936,12 +2942,6 @@ module Synth { */ Raw::Element convertMacroRulesToRaw(TMacroRules e) { e = TMacroRules(result) } - /** - * INTERNAL: Do not use. - * Converts a synthesized `TMacroStmts` to a raw DB element, if possible. - */ - Raw::Element convertMacroStmtsToRaw(TMacroStmts e) { e = TMacroStmts(result) } - /** * INTERNAL: Do not use. * Converts a synthesized `TMacroTypeRepr` to a raw DB element, if possible. @@ -3725,9 +3725,9 @@ module Synth { or result = convertLiteralExprToRaw(e) or - result = convertMacroExprToRaw(e) + result = convertMacroBlockExprToRaw(e) or - result = convertMacroStmtsToRaw(e) + result = convertMacroExprToRaw(e) or result = convertMatchExprToRaw(e) or diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll index 9be635b767e..e6ff3af4715 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/SynthConstructors.qll @@ -77,13 +77,13 @@ import codeql.rust.elements.internal.LifetimeParamConstructor import codeql.rust.elements.internal.LiteralExprConstructor import codeql.rust.elements.internal.LiteralPatConstructor import codeql.rust.elements.internal.LoopExprConstructor +import codeql.rust.elements.internal.MacroBlockExprConstructor import codeql.rust.elements.internal.MacroCallConstructor import codeql.rust.elements.internal.MacroDefConstructor import codeql.rust.elements.internal.MacroExprConstructor import codeql.rust.elements.internal.MacroItemsConstructor import codeql.rust.elements.internal.MacroPatConstructor import codeql.rust.elements.internal.MacroRulesConstructor -import codeql.rust.elements.internal.MacroStmtsConstructor import codeql.rust.elements.internal.MacroTypeReprConstructor import codeql.rust.elements.internal.MatchArmConstructor import codeql.rust.elements.internal.MatchArmListConstructor diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index 48a13c5eec3..58bc96172f5 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -437,8 +437,8 @@ closure_binder_generic_param_lists( | @labelable_expr | @let_expr | @literal_expr +| @macro_block_expr | @macro_expr -| @macro_stmts | @match_expr | @offset_of_expr | @paren_expr @@ -2081,6 +2081,23 @@ literal_pat_literals( int literal: @literal_expr ref ); +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + macro_exprs( unique int id: @macro_expr ); @@ -2101,23 +2118,6 @@ macro_pat_macro_calls( int macro_call: @macro_call ref ); -macro_stmts( - unique int id: @macro_stmts -); - -#keyset[id] -macro_stmts_exprs( - int id: @macro_stmts ref, - int expr: @expr ref -); - -#keyset[id, index] -macro_stmts_statements( - int id: @macro_stmts ref, - int index: int ref, - int statement: @stmt ref -); - macro_type_reprs( unique int id: @macro_type_repr ); diff --git a/rust/ql/test/extractor-tests/generated/.generated_tests.list b/rust/ql/test/extractor-tests/generated/.generated_tests.list index 56cb7ed62e1..13778503766 100644 --- a/rust/ql/test/extractor-tests/generated/.generated_tests.list +++ b/rust/ql/test/extractor-tests/generated/.generated_tests.list @@ -56,13 +56,13 @@ LifetimeParam/gen_lifetime_param.rs 2caed50ce48360681271e4e89fde0d6d9076ebb9cd9c LiteralExpr/gen_literal_expr.rs 2db01ad390e5c0c63a957c043230a462cb4cc25715eea6ede15d43c55d35976d 2db01ad390e5c0c63a957c043230a462cb4cc25715eea6ede15d43c55d35976d LiteralPat/gen_literal_pat.rs a471b481b6989001817a3988696f445d9a4dea784e543c346536dacbee1e96f3 a471b481b6989001817a3988696f445d9a4dea784e543c346536dacbee1e96f3 LoopExpr/gen_loop_expr.rs 35deaf35e765db4ae3124a11284266d8f341d1ce7b700030efada0dda8878619 35deaf35e765db4ae3124a11284266d8f341d1ce7b700030efada0dda8878619 +MacroBlockExpr/gen_macro_block_expr.rs 2e45dcf44bf2e8404b49ce9abeee4931572693174b5d96f3fd81eb40ea8e7b4b 2e45dcf44bf2e8404b49ce9abeee4931572693174b5d96f3fd81eb40ea8e7b4b MacroCall/gen_macro_call.rs 139ef2c69323eea1a901e260d4e2acdd00b26f013b90c9344f48c6503ce29d79 139ef2c69323eea1a901e260d4e2acdd00b26f013b90c9344f48c6503ce29d79 MacroDef/gen_macro_def.rs 17c5387fb464a60b4a4520d22b055ba35ff23e9fe431a18a33808ae02c4bbff5 17c5387fb464a60b4a4520d22b055ba35ff23e9fe431a18a33808ae02c4bbff5 MacroExpr/gen_macro_expr.rs 3c23dc88fcc4bc8f97d9364d2f367671a0a5a63d07e52237d28204b64756dcdb 3c23dc88fcc4bc8f97d9364d2f367671a0a5a63d07e52237d28204b64756dcdb MacroItems/gen_macro_items.rs 8ef3e16b73635dc97afa3ffa4db2bb21a8f1b435176861a594b0200cc5b9b931 8ef3e16b73635dc97afa3ffa4db2bb21a8f1b435176861a594b0200cc5b9b931 MacroPat/gen_macro_pat.rs b8041370598bd7fb26778d829a15c415c2078d69124f6af634ddeba13a114aa0 b8041370598bd7fb26778d829a15c415c2078d69124f6af634ddeba13a114aa0 MacroRules/gen_macro_rules.rs 7e03b410f4669e422d3b4328f7aafdca2e286e5d951495dd69cee0d44cb793a9 7e03b410f4669e422d3b4328f7aafdca2e286e5d951495dd69cee0d44cb793a9 -MacroStmts/gen_macro_stmts.rs 2e45dcf44bf2e8404b49ce9abeee4931572693174b5d96f3fd81eb40ea8e7b4b 2e45dcf44bf2e8404b49ce9abeee4931572693174b5d96f3fd81eb40ea8e7b4b MacroTypeRepr/gen_macro_type_repr.rs 03c15f1fd5af63821e49a125d236704c63889fe20a32f03f3ecf3e29b1cad9df 03c15f1fd5af63821e49a125d236704c63889fe20a32f03f3ecf3e29b1cad9df MatchArm/gen_match_arm.rs ac75b4836a103e2755bd47a1ee1b74af6eb8349adc4ebedaaa27b3ea3ae41aa5 ac75b4836a103e2755bd47a1ee1b74af6eb8349adc4ebedaaa27b3ea3ae41aa5 MatchArmList/gen_match_arm_list.rs dbf36444d371421a2b8768a188660dd45ed3b823fb1c56b90c1ba77f177d23d6 dbf36444d371421a2b8768a188660dd45ed3b823fb1c56b90c1ba77f177d23d6 diff --git a/rust/ql/test/extractor-tests/generated/.gitattributes b/rust/ql/test/extractor-tests/generated/.gitattributes index 133c01c05cd..9452518fe36 100644 --- a/rust/ql/test/extractor-tests/generated/.gitattributes +++ b/rust/ql/test/extractor-tests/generated/.gitattributes @@ -58,13 +58,13 @@ /LiteralExpr/gen_literal_expr.rs linguist-generated /LiteralPat/gen_literal_pat.rs linguist-generated /LoopExpr/gen_loop_expr.rs linguist-generated +/MacroBlockExpr/gen_macro_block_expr.rs linguist-generated /MacroCall/gen_macro_call.rs linguist-generated /MacroDef/gen_macro_def.rs linguist-generated /MacroExpr/gen_macro_expr.rs linguist-generated /MacroItems/gen_macro_items.rs linguist-generated /MacroPat/gen_macro_pat.rs linguist-generated /MacroRules/gen_macro_rules.rs linguist-generated -/MacroStmts/gen_macro_stmts.rs linguist-generated /MacroTypeRepr/gen_macro_type_repr.rs linguist-generated /MatchArm/gen_match_arm.rs linguist-generated /MatchArmList/gen_match_arm_list.rs linguist-generated diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected new file mode 100644 index 00000000000..4bf0740b930 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected @@ -0,0 +1 @@ +| gen_macro_block_expr.rs:5:14:5:28 | MacroBlockExpr | hasTailExpr: | yes | getNumberOfStatements: | 0 | diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql new file mode 100644 index 00000000000..c003ca232f1 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql @@ -0,0 +1,11 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from MacroBlockExpr x, string hasTailExpr, int getNumberOfStatements +where + toBeTested(x) and + not x.isUnknown() and + (if x.hasTailExpr() then hasTailExpr = "yes" else hasTailExpr = "no") and + getNumberOfStatements = x.getNumberOfStatements() +select x, "hasTailExpr:", hasTailExpr, "getNumberOfStatements:", getNumberOfStatements diff --git a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getStatement.expected b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.expected similarity index 100% rename from rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getStatement.expected rename to rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.expected diff --git a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getStatement.ql b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql similarity index 83% rename from rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getStatement.ql rename to rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql index 0d0743de096..a5d58c0e32d 100644 --- a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getStatement.ql +++ b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql @@ -2,6 +2,6 @@ import codeql.rust.elements import TestUtils -from MacroStmts x, int index +from MacroBlockExpr x, int index where toBeTested(x) and not x.isUnknown() select x, index, x.getStatement(index) diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.expected b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.expected new file mode 100644 index 00000000000..ed7fbf364cf --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.expected @@ -0,0 +1 @@ +| gen_macro_block_expr.rs:5:14:5:28 | MacroBlockExpr | gen_macro_block_expr.rs:5:14:5:28 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getExpr.ql b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql similarity index 72% rename from rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getExpr.ql rename to rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql index f03854ddb14..4fdb10bc351 100644 --- a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql @@ -2,6 +2,6 @@ import codeql.rust.elements import TestUtils -from MacroStmts x +from MacroBlockExpr x where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() +select x, x.getTailExpr() diff --git a/rust/ql/test/extractor-tests/generated/MacroStmts/gen_macro_stmts.rs b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/gen_macro_block_expr.rs similarity index 100% rename from rust/ql/test/extractor-tests/generated/MacroStmts/gen_macro_stmts.rs rename to rust/ql/test/extractor-tests/generated/MacroBlockExpr/gen_macro_block_expr.rs diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.expected index 1b60df41f79..f4bb40db46b 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.expected +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExpanded.expected @@ -1 +1 @@ -| gen_macro_call.rs:5:5:5:11 | todo!... | gen_macro_call.rs:5:5:5:11 | MacroStmts | +| gen_macro_call.rs:5:5:5:11 | todo!... | gen_macro_call.rs:5:5:5:11 | MacroBlockExpr | diff --git a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts.expected b/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts.expected deleted file mode 100644 index e74a5e4e857..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_stmts.rs:5:14:5:28 | MacroStmts | hasExpr: | yes | getNumberOfStatements: | 0 | diff --git a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts.ql b/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts.ql deleted file mode 100644 index 189e280605c..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts.ql +++ /dev/null @@ -1,11 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroStmts x, string hasExpr, int getNumberOfStatements -where - toBeTested(x) and - not x.isUnknown() and - (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and - getNumberOfStatements = x.getNumberOfStatements() -select x, "hasExpr:", hasExpr, "getNumberOfStatements:", getNumberOfStatements diff --git a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getExpr.expected b/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getExpr.expected deleted file mode 100644 index d1390595304..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroStmts/MacroStmts_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_stmts.rs:5:14:5:28 | MacroStmts | gen_macro_stmts.rs:5:14:5:28 | { ... } | diff --git a/rust/ql/test/library-tests/controlflow/Cfg.expected b/rust/ql/test/library-tests/controlflow/Cfg.expected index 0b79e26e95a..b51f42537d1 100644 --- a/rust/ql/test/library-tests/controlflow/Cfg.expected +++ b/rust/ql/test/library-tests/controlflow/Cfg.expected @@ -397,9 +397,9 @@ edges | test.rs:171:26:171:28 | ...::format_args_nl!... | test.rs:171:26:171:28 | MacroExpr | | | test.rs:171:26:171:28 | ExprStmt | test.rs:171:17:171:29 | ...::_print | | | test.rs:171:26:171:28 | FormatArgsExpr | test.rs:171:26:171:28 | ...::format_args_nl!... | | +| test.rs:171:26:171:28 | MacroBlockExpr | test.rs:171:17:171:29 | println!... | | | test.rs:171:26:171:28 | MacroExpr | test.rs:171:26:171:28 | ...::_print(...) | | -| test.rs:171:26:171:28 | MacroStmts | test.rs:171:17:171:29 | println!... | | -| test.rs:171:26:171:28 | { ... } | test.rs:171:26:171:28 | MacroStmts | | +| test.rs:171:26:171:28 | { ... } | test.rs:171:26:171:28 | MacroBlockExpr | | | test.rs:172:20:174:13 | { ... } | test.rs:170:13:174:13 | if cond2 {...} else {...} | | | test.rs:173:17:173:29 | ...::_print | test.rs:173:26:173:28 | "2\\n" | | | test.rs:173:17:173:29 | MacroExpr | test.rs:172:20:174:13 | { ... } | | @@ -410,9 +410,9 @@ edges | test.rs:173:26:173:28 | ...::format_args_nl!... | test.rs:173:26:173:28 | MacroExpr | | | test.rs:173:26:173:28 | ExprStmt | test.rs:173:17:173:29 | ...::_print | | | test.rs:173:26:173:28 | FormatArgsExpr | test.rs:173:26:173:28 | ...::format_args_nl!... | | +| test.rs:173:26:173:28 | MacroBlockExpr | test.rs:173:17:173:29 | println!... | | | test.rs:173:26:173:28 | MacroExpr | test.rs:173:26:173:28 | ...::_print(...) | | -| test.rs:173:26:173:28 | MacroStmts | test.rs:173:17:173:29 | println!... | | -| test.rs:173:26:173:28 | { ... } | test.rs:173:26:173:28 | MacroStmts | | +| test.rs:173:26:173:28 | { ... } | test.rs:173:26:173:28 | MacroBlockExpr | | | test.rs:175:13:175:25 | ...::_print | test.rs:175:22:175:24 | "3\\n" | | | test.rs:175:13:175:25 | MacroExpr | test.rs:169:18:176:9 | { ... } | | | test.rs:175:13:175:25 | println!... | test.rs:175:13:175:25 | MacroExpr | | @@ -422,9 +422,9 @@ edges | test.rs:175:22:175:24 | ...::format_args_nl!... | test.rs:175:22:175:24 | MacroExpr | | | test.rs:175:22:175:24 | ExprStmt | test.rs:175:13:175:25 | ...::_print | | | test.rs:175:22:175:24 | FormatArgsExpr | test.rs:175:22:175:24 | ...::format_args_nl!... | | +| test.rs:175:22:175:24 | MacroBlockExpr | test.rs:175:13:175:25 | println!... | | | test.rs:175:22:175:24 | MacroExpr | test.rs:175:22:175:24 | ...::_print(...) | | -| test.rs:175:22:175:24 | MacroStmts | test.rs:175:13:175:25 | println!... | | -| test.rs:175:22:175:24 | { ... } | test.rs:175:22:175:24 | MacroStmts | | +| test.rs:175:22:175:24 | { ... } | test.rs:175:22:175:24 | MacroBlockExpr | | | test.rs:179:5:188:5 | enter fn test_nested_if_match | test.rs:179:29:179:29 | a | | | test.rs:179:5:188:5 | exit fn test_nested_if_match (normal) | test.rs:179:5:188:5 | exit fn test_nested_if_match | | | test.rs:179:29:179:29 | a | test.rs:179:29:179:29 | a | | @@ -902,11 +902,11 @@ edges | test.rs:363:39:363:53 | ...::panic_fmt(...) | test.rs:363:39:363:53 | { ... } | | | test.rs:363:39:363:53 | ExprStmt | test.rs:363:32:363:54 | ...::panic_fmt | | | test.rs:363:39:363:53 | FormatArgsExpr | test.rs:363:39:363:53 | ...::const_format_args!... | | +| test.rs:363:39:363:53 | MacroBlockExpr | test.rs:363:32:363:54 | panic!... | | +| test.rs:363:39:363:53 | MacroBlockExpr | test.rs:363:39:363:53 | ...::panic_2021!... | | | test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | ...::panic_fmt(...) | | -| test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | MacroStmts | | -| test.rs:363:39:363:53 | MacroStmts | test.rs:363:32:363:54 | panic!... | | -| test.rs:363:39:363:53 | MacroStmts | test.rs:363:39:363:53 | ...::panic_2021!... | | -| test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | MacroStmts | | +| test.rs:363:39:363:53 | MacroExpr | test.rs:363:39:363:53 | MacroBlockExpr | | +| test.rs:363:39:363:53 | { ... } | test.rs:363:39:363:53 | MacroBlockExpr | | | test.rs:364:9:364:9 | n | test.rs:362:46:365:5 | { ... } | | | test.rs:367:5:373:5 | enter fn test_let_with_return | test.rs:367:29:367:29 | m | | | test.rs:367:5:373:5 | exit fn test_let_with_return (normal) | test.rs:367:5:373:5 | exit fn test_let_with_return | | @@ -1189,9 +1189,9 @@ edges | test.rs:495:18:495:32 | ...::format_args_nl!... | test.rs:495:18:495:32 | MacroExpr | | | test.rs:495:18:495:32 | ExprStmt | test.rs:495:9:495:33 | ...::_print | | | test.rs:495:18:495:32 | FormatArgsExpr | test.rs:495:18:495:32 | ...::format_args_nl!... | | +| test.rs:495:18:495:32 | MacroBlockExpr | test.rs:495:9:495:33 | println!... | | | test.rs:495:18:495:32 | MacroExpr | test.rs:495:18:495:32 | ...::_print(...) | | -| test.rs:495:18:495:32 | MacroStmts | test.rs:495:9:495:33 | println!... | | -| test.rs:495:18:495:32 | { ... } | test.rs:495:18:495:32 | MacroStmts | | +| test.rs:495:18:495:32 | { ... } | test.rs:495:18:495:32 | MacroBlockExpr | | | test.rs:498:5:517:5 | enter fn async_block | test.rs:498:26:498:26 | b | | | test.rs:498:5:517:5 | exit fn async_block (normal) | test.rs:498:5:517:5 | exit fn async_block | | | test.rs:498:26:498:26 | b | test.rs:498:26:498:26 | b | | @@ -1213,9 +1213,9 @@ edges | test.rs:500:22:500:40 | ...::format_args_nl!... | test.rs:500:22:500:40 | MacroExpr | | | test.rs:500:22:500:40 | ExprStmt | test.rs:500:13:500:41 | ...::_print | | | test.rs:500:22:500:40 | FormatArgsExpr | test.rs:500:22:500:40 | ...::format_args_nl!... | | +| test.rs:500:22:500:40 | MacroBlockExpr | test.rs:500:13:500:41 | println!... | | | test.rs:500:22:500:40 | MacroExpr | test.rs:500:22:500:40 | ...::_print(...) | | -| test.rs:500:22:500:40 | MacroStmts | test.rs:500:13:500:41 | println!... | | -| test.rs:500:22:500:40 | { ... } | test.rs:500:22:500:40 | MacroStmts | | +| test.rs:500:22:500:40 | { ... } | test.rs:500:22:500:40 | MacroBlockExpr | | | test.rs:502:9:504:10 | let ... = ... | test.rs:502:31:504:9 | { ... } | | | test.rs:502:13:502:27 | say_how_are_you | test.rs:502:13:502:27 | say_how_are_you | | | test.rs:502:13:502:27 | say_how_are_you | test.rs:505:9:505:28 | let ... = ... | match | @@ -1231,9 +1231,9 @@ edges | test.rs:503:22:503:35 | ...::format_args_nl!... | test.rs:503:22:503:35 | MacroExpr | | | test.rs:503:22:503:35 | ExprStmt | test.rs:503:13:503:36 | ...::_print | | | test.rs:503:22:503:35 | FormatArgsExpr | test.rs:503:22:503:35 | ...::format_args_nl!... | | +| test.rs:503:22:503:35 | MacroBlockExpr | test.rs:503:13:503:36 | println!... | | | test.rs:503:22:503:35 | MacroExpr | test.rs:503:22:503:35 | ...::_print(...) | | -| test.rs:503:22:503:35 | MacroStmts | test.rs:503:13:503:36 | println!... | | -| test.rs:503:22:503:35 | { ... } | test.rs:503:22:503:35 | MacroStmts | | +| test.rs:503:22:503:35 | { ... } | test.rs:503:22:503:35 | MacroBlockExpr | | | test.rs:505:9:505:28 | let ... = ... | test.rs:505:20:505:27 | { ... } | | | test.rs:505:13:505:16 | noop | test.rs:505:13:505:16 | noop | | | test.rs:505:13:505:16 | noop | test.rs:506:9:506:26 | ExprStmt | match | @@ -1292,16 +1292,16 @@ edges | test.rs:533:13:533:49 | ...::panic_explicit(...) | test.rs:533:13:533:49 | { ... } | | | test.rs:533:13:533:49 | ExprStmt | test.rs:533:13:533:49 | fn panic_cold_explicit | | | test.rs:533:13:533:49 | ExprStmt | test.rs:533:13:533:49 | panic_cold_explicit | | +| test.rs:533:13:533:49 | MacroBlockExpr | test.rs:533:13:533:49 | ...::panic_2021!... | | | test.rs:533:13:533:49 | MacroExpr | test.rs:532:9:534:9 | { ... } | | | test.rs:533:13:533:49 | MacroExpr | test.rs:533:13:533:49 | { ... } | | -| test.rs:533:13:533:49 | MacroStmts | test.rs:533:13:533:49 | ...::panic_2021!... | | | test.rs:533:13:533:49 | assert!... | test.rs:533:13:533:49 | MacroExpr | | | test.rs:533:13:533:49 | enter fn panic_cold_explicit | test.rs:533:13:533:49 | ...::panic_explicit | | | test.rs:533:13:533:49 | exit fn panic_cold_explicit (normal) | test.rs:533:13:533:49 | exit fn panic_cold_explicit | | | test.rs:533:13:533:49 | fn panic_cold_explicit | test.rs:533:13:533:49 | ExprStmt | | | test.rs:533:13:533:49 | panic_cold_explicit | test.rs:533:13:533:49 | panic_cold_explicit(...) | | | test.rs:533:13:533:49 | panic_cold_explicit(...) | test.rs:533:13:533:49 | { ... } | | -| test.rs:533:13:533:49 | { ... } | test.rs:533:13:533:49 | MacroStmts | | +| test.rs:533:13:533:49 | { ... } | test.rs:533:13:533:49 | MacroBlockExpr | | | test.rs:533:13:533:49 | { ... } | test.rs:533:13:533:49 | exit fn panic_cold_explicit (normal) | | | test.rs:533:13:533:49 | { ... } | test.rs:533:21:533:48 | if ... {...} | | | test.rs:533:13:533:50 | ExprStmt | test.rs:533:21:533:42 | ...::size_of::<...> | | @@ -1309,11 +1309,11 @@ edges | test.rs:533:21:533:44 | ...::size_of::<...>(...) | test.rs:533:48:533:48 | 0 | | | test.rs:533:21:533:48 | ... > ... | test.rs:533:21:533:48 | [boolean(false)] ! ... | true | | test.rs:533:21:533:48 | ... > ... | test.rs:533:21:533:48 | [boolean(true)] ! ... | false | -| test.rs:533:21:533:48 | MacroStmts | test.rs:533:13:533:49 | assert!... | | +| test.rs:533:21:533:48 | MacroBlockExpr | test.rs:533:13:533:49 | assert!... | | | test.rs:533:21:533:48 | [boolean(false)] ! ... | test.rs:533:21:533:48 | if ... {...} | false | | test.rs:533:21:533:48 | [boolean(true)] ! ... | test.rs:533:13:533:49 | ExprStmt | true | | test.rs:533:21:533:48 | if ... {...} | test.rs:533:21:533:48 | { ... } | | -| test.rs:533:21:533:48 | { ... } | test.rs:533:21:533:48 | MacroStmts | | +| test.rs:533:21:533:48 | { ... } | test.rs:533:21:533:48 | MacroBlockExpr | | | test.rs:533:48:533:48 | 0 | test.rs:533:21:533:48 | ... > ... | | | test.rs:536:9:536:10 | 42 | test.rs:529:41:537:5 | { ... } | | | test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:540:9:540:30 | Const | | diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 123e8801649..0cd59e28115 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -10,17 +10,17 @@ localStep | main.rs:6:9:6:9 | s | main.rs:6:9:6:9 | s | | main.rs:6:9:6:14 | ...: i64 | main.rs:6:9:6:9 | s | | main.rs:7:14:7:20 | FormatArgsExpr | main.rs:7:14:7:20 | MacroExpr | -| main.rs:7:14:7:20 | MacroStmts | main.rs:7:5:7:21 | MacroExpr | +| main.rs:7:14:7:20 | MacroBlockExpr | main.rs:7:5:7:21 | MacroExpr | | main.rs:7:14:7:20 | [post] MacroExpr | main.rs:7:14:7:20 | [post] FormatArgsExpr | -| main.rs:7:14:7:20 | { ... } | main.rs:7:14:7:20 | MacroStmts | +| main.rs:7:14:7:20 | { ... } | main.rs:7:14:7:20 | MacroBlockExpr | | main.rs:10:13:10:14 | [SSA] sr | main.rs:11:20:11:21 | sr | | main.rs:10:13:10:14 | sr | main.rs:10:13:10:14 | [SSA] sr | | main.rs:10:13:10:14 | sr | main.rs:10:13:10:14 | sr | | main.rs:10:13:10:20 | ...: ... | main.rs:10:13:10:14 | sr | | main.rs:11:14:11:21 | FormatArgsExpr | main.rs:11:14:11:21 | MacroExpr | -| main.rs:11:14:11:21 | MacroStmts | main.rs:11:5:11:22 | MacroExpr | +| main.rs:11:14:11:21 | MacroBlockExpr | main.rs:11:5:11:22 | MacroExpr | | main.rs:11:14:11:21 | [post] MacroExpr | main.rs:11:14:11:21 | [post] FormatArgsExpr | -| main.rs:11:14:11:21 | { ... } | main.rs:11:14:11:21 | MacroStmts | +| main.rs:11:14:11:21 | { ... } | main.rs:11:14:11:21 | MacroBlockExpr | | main.rs:22:9:22:9 | [SSA] s | main.rs:23:10:23:10 | s | | main.rs:22:9:22:9 | s | main.rs:22:9:22:9 | [SSA] s | | main.rs:22:9:22:9 | s | main.rs:22:9:22:9 | s | @@ -684,9 +684,9 @@ localStep | main.rs:462:16:462:16 | s | main.rs:462:16:462:16 | s | | main.rs:462:16:462:24 | ...: String | main.rs:462:16:462:16 | s | | main.rs:463:14:463:20 | FormatArgsExpr | main.rs:463:14:463:20 | MacroExpr | -| main.rs:463:14:463:20 | MacroStmts | main.rs:463:5:463:21 | MacroExpr | +| main.rs:463:14:463:20 | MacroBlockExpr | main.rs:463:5:463:21 | MacroExpr | | main.rs:463:14:463:20 | [post] MacroExpr | main.rs:463:14:463:20 | [post] FormatArgsExpr | -| main.rs:463:14:463:20 | { ... } | main.rs:463:14:463:20 | MacroStmts | +| main.rs:463:14:463:20 | { ... } | main.rs:463:14:463:20 | MacroBlockExpr | | main.rs:467:9:467:9 | [SSA] a | main.rs:468:13:468:13 | a | | main.rs:467:9:467:9 | a | main.rs:467:9:467:9 | [SSA] a | | main.rs:467:9:467:9 | a | main.rs:467:9:467:9 | a | diff --git a/rust/ql/test/library-tests/variables/Cfg.expected b/rust/ql/test/library-tests/variables/Cfg.expected index 2c04ca30410..f2a80077bfc 100644 --- a/rust/ql/test/library-tests/variables/Cfg.expected +++ b/rust/ql/test/library-tests/variables/Cfg.expected @@ -14,9 +14,9 @@ edges | main.rs:4:14:4:20 | ...::format_args_nl!... | main.rs:4:14:4:20 | MacroExpr | | | main.rs:4:14:4:20 | ExprStmt | main.rs:4:5:4:21 | ...::_print | | | main.rs:4:14:4:20 | FormatArgsExpr | main.rs:4:14:4:20 | ...::format_args_nl!... | | +| main.rs:4:14:4:20 | MacroBlockExpr | main.rs:4:5:4:21 | println!... | | | main.rs:4:14:4:20 | MacroExpr | main.rs:4:14:4:20 | ...::_print(...) | | -| main.rs:4:14:4:20 | MacroStmts | main.rs:4:5:4:21 | println!... | | -| main.rs:4:14:4:20 | { ... } | main.rs:4:14:4:20 | MacroStmts | | +| main.rs:4:14:4:20 | { ... } | main.rs:4:14:4:20 | MacroBlockExpr | | | main.rs:4:20:4:20 | s | main.rs:4:14:4:20 | FormatArgsExpr | | | main.rs:7:1:9:1 | enter fn print_i64 | main.rs:7:14:7:14 | i | | | main.rs:7:1:9:1 | exit fn print_i64 (normal) | main.rs:7:1:9:1 | exit fn print_i64 | | @@ -33,9 +33,9 @@ edges | main.rs:8:14:8:20 | ...::format_args_nl!... | main.rs:8:14:8:20 | MacroExpr | | | main.rs:8:14:8:20 | ExprStmt | main.rs:8:5:8:21 | ...::_print | | | main.rs:8:14:8:20 | FormatArgsExpr | main.rs:8:14:8:20 | ...::format_args_nl!... | | +| main.rs:8:14:8:20 | MacroBlockExpr | main.rs:8:5:8:21 | println!... | | | main.rs:8:14:8:20 | MacroExpr | main.rs:8:14:8:20 | ...::_print(...) | | -| main.rs:8:14:8:20 | MacroStmts | main.rs:8:5:8:21 | println!... | | -| main.rs:8:14:8:20 | { ... } | main.rs:8:14:8:20 | MacroStmts | | +| main.rs:8:14:8:20 | { ... } | main.rs:8:14:8:20 | MacroBlockExpr | | | main.rs:8:20:8:20 | i | main.rs:8:14:8:20 | FormatArgsExpr | | | main.rs:11:1:13:1 | enter fn print_i64_ref | main.rs:11:18:11:18 | i | | | main.rs:11:1:13:1 | exit fn print_i64_ref (normal) | main.rs:11:1:13:1 | exit fn print_i64_ref | | @@ -242,9 +242,9 @@ edges | main.rs:94:39:94:42 | "x5" | main.rs:94:34:94:43 | Some(...) | | | main.rs:96:13:96:19 | "not yet implemented" | main.rs:96:13:96:19 | ...::panic(...) | | | main.rs:96:13:96:19 | ...::panic | main.rs:96:13:96:19 | "not yet implemented" | | -| main.rs:96:13:96:19 | ...::panic(...) | main.rs:96:13:96:19 | MacroStmts | | +| main.rs:96:13:96:19 | ...::panic(...) | main.rs:96:13:96:19 | MacroBlockExpr | | +| main.rs:96:13:96:19 | MacroBlockExpr | main.rs:96:13:96:19 | todo!... | | | main.rs:96:13:96:19 | MacroExpr | main.rs:95:14:97:9 | { ... } | | -| main.rs:96:13:96:19 | MacroStmts | main.rs:96:13:96:19 | todo!... | | | main.rs:96:13:96:19 | todo!... | main.rs:96:13:96:19 | MacroExpr | | | main.rs:98:5:98:13 | print_str | main.rs:98:15:98:16 | x5 | | | main.rs:98:5:98:17 | print_str(...) | main.rs:93:19:99:1 | { ... } | | @@ -428,9 +428,9 @@ edges | main.rs:176:22:176:51 | ...::format_args_nl!... | main.rs:176:22:176:51 | MacroExpr | | | main.rs:176:22:176:51 | ExprStmt | main.rs:176:13:176:52 | ...::_print | | | main.rs:176:22:176:51 | FormatArgsExpr | main.rs:176:22:176:51 | ...::format_args_nl!... | | +| main.rs:176:22:176:51 | MacroBlockExpr | main.rs:176:13:176:52 | println!... | | | main.rs:176:22:176:51 | MacroExpr | main.rs:176:22:176:51 | ...::_print(...) | | -| main.rs:176:22:176:51 | MacroStmts | main.rs:176:13:176:52 | println!... | | -| main.rs:176:22:176:51 | { ... } | main.rs:176:22:176:51 | MacroStmts | | +| main.rs:176:22:176:51 | { ... } | main.rs:176:22:176:51 | MacroBlockExpr | | | main.rs:178:9:178:29 | ...::Hello {...} | main.rs:178:26:178:27 | id | match | | main.rs:178:26:178:27 | id | main.rs:178:26:178:27 | id | | | main.rs:178:26:178:27 | id | main.rs:179:13:179:21 | print_i64 | match | diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index f783e72e619..6eb463746ec 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -1289,7 +1289,7 @@ class _: """ -@annotate(MacroStmts, replace_bases={AstNode: Expr}, cfg=True) +@annotate(MacroBlockExpr, replace_bases={AstNode: Expr}, cfg=True) @rust.doc_test_signature(None) class _: """ diff --git a/rust/schema/ast.py b/rust/schema/ast.py index dabe1be807a..17fb872bb8e 100644 --- a/rust/schema/ast.py +++ b/rust/schema/ast.py @@ -397,8 +397,8 @@ class MacroRules(Item, ): token_tree: optional["TokenTree"] | child visibility: optional["Visibility"] | child -class MacroStmts(AstNode, ): - expr: optional["Expr"] | child +class MacroBlockExpr(AstNode, ): + tail_expr: optional["Expr"] | child statements: list["Stmt"] | child class MacroTypeRepr(TypeRepr, ): From 605f2bff9ccf53b35751a371436d2ee62329b56e Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 2 May 2025 12:42:23 +0000 Subject: [PATCH 247/656] Python: Add integration test --- .../hidden-files/query-default.expected | 5 ++++ .../hidden-files/query-skipped.expected | 4 ++++ .../hidden-files/query.ql | 3 +++ .../.hidden_dir/visible_file_in_hidden_dir.py | 0 .../hidden-files/repo_dir/.hidden_file.py | 0 .../hidden-files/repo_dir/foo.py | 1 + .../cli-integration-test/hidden-files/test.sh | 24 +++++++++++++++++++ 7 files changed, 37 insertions(+) create mode 100644 python/extractor/cli-integration-test/hidden-files/query-default.expected create mode 100644 python/extractor/cli-integration-test/hidden-files/query-skipped.expected create mode 100644 python/extractor/cli-integration-test/hidden-files/query.ql create mode 100644 python/extractor/cli-integration-test/hidden-files/repo_dir/.hidden_dir/visible_file_in_hidden_dir.py create mode 100644 python/extractor/cli-integration-test/hidden-files/repo_dir/.hidden_file.py create mode 100644 python/extractor/cli-integration-test/hidden-files/repo_dir/foo.py create mode 100755 python/extractor/cli-integration-test/hidden-files/test.sh diff --git a/python/extractor/cli-integration-test/hidden-files/query-default.expected b/python/extractor/cli-integration-test/hidden-files/query-default.expected new file mode 100644 index 00000000000..cc92af624b3 --- /dev/null +++ b/python/extractor/cli-integration-test/hidden-files/query-default.expected @@ -0,0 +1,5 @@ +| name | ++-------------------------------+ +| .hidden_file.py | +| foo.py | +| visible_file_in_hidden_dir.py | diff --git a/python/extractor/cli-integration-test/hidden-files/query-skipped.expected b/python/extractor/cli-integration-test/hidden-files/query-skipped.expected new file mode 100644 index 00000000000..688dbe00d57 --- /dev/null +++ b/python/extractor/cli-integration-test/hidden-files/query-skipped.expected @@ -0,0 +1,4 @@ +| name | ++-----------------+ +| .hidden_file.py | +| foo.py | diff --git a/python/extractor/cli-integration-test/hidden-files/query.ql b/python/extractor/cli-integration-test/hidden-files/query.ql new file mode 100644 index 00000000000..3b1b3c03849 --- /dev/null +++ b/python/extractor/cli-integration-test/hidden-files/query.ql @@ -0,0 +1,3 @@ +import python + +select any(File f).getShortName() as name order by name diff --git a/python/extractor/cli-integration-test/hidden-files/repo_dir/.hidden_dir/visible_file_in_hidden_dir.py b/python/extractor/cli-integration-test/hidden-files/repo_dir/.hidden_dir/visible_file_in_hidden_dir.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/python/extractor/cli-integration-test/hidden-files/repo_dir/.hidden_file.py b/python/extractor/cli-integration-test/hidden-files/repo_dir/.hidden_file.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/python/extractor/cli-integration-test/hidden-files/repo_dir/foo.py b/python/extractor/cli-integration-test/hidden-files/repo_dir/foo.py new file mode 100644 index 00000000000..517b47df53c --- /dev/null +++ b/python/extractor/cli-integration-test/hidden-files/repo_dir/foo.py @@ -0,0 +1 @@ +print(42) diff --git a/python/extractor/cli-integration-test/hidden-files/test.sh b/python/extractor/cli-integration-test/hidden-files/test.sh new file mode 100755 index 00000000000..77cb12664af --- /dev/null +++ b/python/extractor/cli-integration-test/hidden-files/test.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -Eeuo pipefail # see https://vaneyckt.io/posts/safer_bash_scripts_with_set_euxo_pipefail/ + +set -x + +CODEQL=${CODEQL:-codeql} + +SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +cd "$SCRIPTDIR" + +rm -rf db db-skipped + +# Test 1: Default behavior should be to extract files in hidden directories +$CODEQL database create db --language python --source-root repo_dir/ +$CODEQL query run --database db query.ql > query-default.actual +diff query-default.expected query-default.actual + +# Test 2: Setting the relevant extractor option to true skips files in hidden directories +$CODEQL database create db-skipped --language python --source-root repo_dir/ --extractor-option python.skip_hidden_directories=true +$CODEQL query run --database db-skipped query.ql > query-skipped.actual +diff query-skipped.expected query-skipped.actual + +rm -rf db db-skipped From 67d04d5477065a59f2bc0f706b5af4366b08293b Mon Sep 17 00:00:00 2001 From: Taus Date: Wed, 30 Apr 2025 12:38:31 +0000 Subject: [PATCH 248/656] Python: Add change note --- .../2025-04-30-extract-hidden-files-by-default.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md diff --git a/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md b/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md new file mode 100644 index 00000000000..96372513499 --- /dev/null +++ b/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- + +- The Python extractor now extracts files in hidden directories by default. A new extractor option, `skip_hidden_directories` has been added as well. Setting it to `true` will make the extractor revert to the old behavior. From 2ded42c285151dfceb62597e5e767bfae0586f1c Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 2 May 2025 13:29:52 +0000 Subject: [PATCH 249/656] Python: Update extractor tests --- python/ql/test/2/extractor-tests/hidden/test.expected | 2 ++ python/ql/test/extractor-tests/filter-option/Test.expected | 1 + 2 files changed, 3 insertions(+) diff --git a/python/ql/test/2/extractor-tests/hidden/test.expected b/python/ql/test/2/extractor-tests/hidden/test.expected index ca72363d8f0..21bd0dfb2dd 100644 --- a/python/ql/test/2/extractor-tests/hidden/test.expected +++ b/python/ql/test/2/extractor-tests/hidden/test.expected @@ -1,3 +1,5 @@ +| .hidden/inner/test.py | +| .hidden/module.py | | folder/module.py | | package | | package/__init__.py | diff --git a/python/ql/test/extractor-tests/filter-option/Test.expected b/python/ql/test/extractor-tests/filter-option/Test.expected index 7ade39a5998..56b1e36c2a9 100644 --- a/python/ql/test/extractor-tests/filter-option/Test.expected +++ b/python/ql/test/extractor-tests/filter-option/Test.expected @@ -3,3 +3,4 @@ | Module foo.bar | | Module foo.include_test | | Package foo | +| Script hidden_foo.py | From 5c4ca64264239e34f737f9622f3ca1b4affe29a1 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 2 May 2025 16:29:42 +0200 Subject: [PATCH 250/656] Swift: Add change note --- swift/ql/lib/change-notes/2025-05-02-new-entities.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/lib/change-notes/2025-05-02-new-entities.md diff --git a/swift/ql/lib/change-notes/2025-05-02-new-entities.md b/swift/ql/lib/change-notes/2025-05-02-new-entities.md new file mode 100644 index 00000000000..55472b08ff8 --- /dev/null +++ b/swift/ql/lib/change-notes/2025-05-02-new-entities.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added AST nodes `UnsafeCastExpr`, `TypeValueExpr`, `IntegerType`, and `BuiltinFixedArrayType` that correspond to new nodes added by Swift 6.1. From 6bf50d8f86df8621c8f33cac110e167ac9b2f95c Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 2 May 2025 15:09:06 +0200 Subject: [PATCH 251/656] Rust: add upgrade/downgrade scripts --- .../old.dbscheme | 3606 +++++++++++++++++ .../rust.dbscheme | 3606 +++++++++++++++++ .../upgrade.properties | 9 + .../old.dbscheme | 3606 +++++++++++++++++ .../rust.dbscheme | 3606 +++++++++++++++++ .../upgrade.properties | 9 + 6 files changed, 14442 insertions(+) create mode 100644 rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/old.dbscheme create mode 100644 rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/rust.dbscheme create mode 100644 rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/upgrade.properties create mode 100644 rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/old.dbscheme create mode 100644 rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme create mode 100644 rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties diff --git a/rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/old.dbscheme b/rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/old.dbscheme new file mode 100644 index 00000000000..58bc96172f5 --- /dev/null +++ b/rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/old.dbscheme @@ -0,0 +1,3606 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id] +crate_modules( + int id: @crate ref, + int module: @module ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_expandeds( + int id: @macro_call ref, + int expanded: @ast_node ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/rust.dbscheme b/rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/rust.dbscheme new file mode 100644 index 00000000000..e8707b675dc --- /dev/null +++ b/rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/rust.dbscheme @@ -0,0 +1,3606 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @macro_stmts +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id] +crate_modules( + int id: @crate ref, + int module: @module ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +macro_stmts( + unique int id: @macro_stmts +); + +#keyset[id] +macro_stmts_exprs( + int id: @macro_stmts ref, + int expr: @expr ref +); + +#keyset[id, index] +macro_stmts_statements( + int id: @macro_stmts ref, + int index: int ref, + int statement: @stmt ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_expandeds( + int id: @macro_call ref, + int expanded: @ast_node ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/upgrade.properties b/rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/upgrade.properties new file mode 100644 index 00000000000..61d3e02cd8a --- /dev/null +++ b/rust/downgrades/58bc96172f5a76faffc04004933865aa3c3b3e62/upgrade.properties @@ -0,0 +1,9 @@ +description: Rename MacroBlockExpr to MacroStmts +compatibility: full + +macro_stmts.rel: reorder macro_block_exprs(@macro_block_expr id) id +macro_stmts_exprs.rel: reorder macro_block_expr_tail_exprs(@macro_block_expr id, @expr tail_expr) id tail_expr +macro_stmts_statements.rel: reorder macro_block_expr_statements(@macro_block_expr id, int index, @stmt statement) id index statement +macro_block_exprs.rel: delete +macro_block_expr_tail_exprs.rel: delete +macro_block_expr_statements.rel: delete \ No newline at end of file diff --git a/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/old.dbscheme b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/old.dbscheme new file mode 100644 index 00000000000..e8707b675dc --- /dev/null +++ b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/old.dbscheme @@ -0,0 +1,3606 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @macro_stmts +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id] +crate_modules( + int id: @crate ref, + int module: @module ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +macro_stmts( + unique int id: @macro_stmts +); + +#keyset[id] +macro_stmts_exprs( + int id: @macro_stmts ref, + int expr: @expr ref +); + +#keyset[id, index] +macro_stmts_statements( + int id: @macro_stmts ref, + int index: int ref, + int statement: @stmt ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_expandeds( + int id: @macro_call ref, + int expanded: @ast_node ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme new file mode 100644 index 00000000000..58bc96172f5 --- /dev/null +++ b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/rust.dbscheme @@ -0,0 +1,3606 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id] +crate_modules( + int id: @crate ref, + int module: @module ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_expandeds( + int id: @macro_call ref, + int expanded: @ast_node ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties new file mode 100644 index 00000000000..5e11ce73174 --- /dev/null +++ b/rust/ql/lib/upgrades/e8707b675dc574aca9863eabcc09ac76f15bb9c2/upgrade.properties @@ -0,0 +1,9 @@ +description: Rename MacroStmts to MacroBlockExpr +compatibility: full + +macro_block_exprs.rel: reorder macro_stmts(@macro_stmts id) id +macro_block_expr_tail_exprs.rel: reorder macro_stmts_exprs(@macro_stmts id, @expr expr) id expr +macro_block_expr_statements.rel: reorder macro_stmts_statements(@macro_stmts id, int index, @stmt statement) id index statement +macro_stmts.rel: delete +macro_stmts_exprs.rel: delete +macro_stmts_statements.rel: delete From 060d5152c470bbe09de81c4186cc542398193b13 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 9 Apr 2025 16:02:54 +0100 Subject: [PATCH 252/656] Rust: Add an Operation class above LogicalOperation, AssignmentOperation etc. --- .../codeql/rust/elements/LogicalOperation.qll | 3 +- .../ql/lib/codeql/rust/elements/Operation.qll | 19 ++++++ .../rust/elements/internal/BinaryExprImpl.qll | 3 +- .../rust/elements/internal/PrefixExprImpl.qll | 3 +- rust/ql/lib/rust.qll | 1 + .../library-tests/operations/Operations.ql | 2 + rust/ql/test/library-tests/operations/test.rs | 64 +++++++++---------- 7 files changed, 60 insertions(+), 35 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/elements/Operation.qll diff --git a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll index ab9aa6ef0fd..7638bea15fd 100644 --- a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll @@ -1,11 +1,12 @@ private import codeql.rust.elements.Expr private import codeql.rust.elements.BinaryExpr private import codeql.rust.elements.PrefixExpr +private import codeql.rust.elements.Operation /** * A logical operation, such as `&&`, `||` or `!`. */ -abstract private class LogicalOperationImpl extends Expr { +abstract private class LogicalOperationImpl extends Operation { abstract Expr getAnOperand(); } diff --git a/rust/ql/lib/codeql/rust/elements/Operation.qll b/rust/ql/lib/codeql/rust/elements/Operation.qll new file mode 100644 index 00000000000..a1915f837fd --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/Operation.qll @@ -0,0 +1,19 @@ +/** + * Provides classes for operations. + */ + +private import rust +private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl + +/** + * INTERNAL: This module contains the customizable definition of `Operation` and should not + * be referenced directly. + */ +module OperationImpl { + /** + * An operation, for example `&&`, `+=`, `!` or `*`. + */ + abstract class Operation extends ExprImpl::Expr { } +} + +final class Operation = OperationImpl::Operation; diff --git a/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll index 6aac95fcace..bb7106cf6e9 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll @@ -5,6 +5,7 @@ */ private import codeql.rust.elements.internal.generated.BinaryExpr +private import codeql.rust.elements.Operation::OperationImpl as OperationImpl /** * INTERNAL: This module contains the customizable definition of `BinaryExpr` and should not @@ -22,7 +23,7 @@ module Impl { * x += y; * ``` */ - class BinaryExpr extends Generated::BinaryExpr { + class BinaryExpr extends Generated::BinaryExpr, OperationImpl::Operation { override string toStringImpl() { result = "... " + this.getOperatorName() + " ..." } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll index bf77c7b88ea..2008be60660 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll @@ -5,6 +5,7 @@ */ private import codeql.rust.elements.internal.generated.PrefixExpr +private import codeql.rust.elements.Operation::OperationImpl as OperationImpl /** * INTERNAL: This module contains the customizable definition of `PrefixExpr` and should not @@ -20,7 +21,7 @@ module Impl { * let z = *ptr; * ``` */ - class PrefixExpr extends Generated::PrefixExpr { + class PrefixExpr extends Generated::PrefixExpr, OperationImpl::Operation { override string toStringImpl() { result = this.getOperatorName() + " ..." } } } diff --git a/rust/ql/lib/rust.qll b/rust/ql/lib/rust.qll index ff97a37b5d1..f09f49b30bb 100644 --- a/rust/ql/lib/rust.qll +++ b/rust/ql/lib/rust.qll @@ -3,6 +3,7 @@ import codeql.rust.elements import codeql.Locations import codeql.files.FileSystem +import codeql.rust.elements.Operation import codeql.rust.elements.AssignmentOperation import codeql.rust.elements.LogicalOperation import codeql.rust.elements.AsyncBlockExpr diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql index 7605aa9e719..1609d4b5d22 100644 --- a/rust/ql/test/library-tests/operations/Operations.ql +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -2,6 +2,8 @@ import rust import utils.test.InlineExpectationsTest string describe(Expr op) { + op instanceof Operation and result = "Operation" + or op instanceof PrefixExpr and result = "PrefixExpr" or op instanceof BinaryExpr and result = "BinaryExpr" diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs index 84152bd7072..7ec3d8a3eef 100644 --- a/rust/ql/test/library-tests/operations/test.rs +++ b/rust/ql/test/library-tests/operations/test.rs @@ -8,48 +8,48 @@ fn test_operations( let mut x: i32; // simple assignment - x = y; // $ AssignmentOperation BinaryExpr + x = y; // $ Operation AssignmentOperation BinaryExpr // comparison operations - x == y; // $ BinaryExpr - x != y; // $ BinaryExpr - x < y; // $ BinaryExpr - x <= y; // $ BinaryExpr - x > y; // $ BinaryExpr - x >= y; // $ BinaryExpr + x == y; // $ Operation BinaryExpr + x != y; // $ Operation BinaryExpr + x < y; // $ Operation BinaryExpr + x <= y; // $ Operation BinaryExpr + x > y; // $ Operation BinaryExpr + x >= y; // $ Operation BinaryExpr // arithmetic operations - x + y; // $ BinaryExpr - x - y; // $ BinaryExpr - x * y; // $ BinaryExpr - x / y; // $ BinaryExpr - x % y; // $ BinaryExpr - x += y; // $ AssignmentOperation BinaryExpr - x -= y; // $ AssignmentOperation BinaryExpr - x *= y; // $ AssignmentOperation BinaryExpr - x /= y; // $ AssignmentOperation BinaryExpr - x %= y; // $ AssignmentOperation BinaryExpr - -x; // $ PrefixExpr + x + y; // $ Operation BinaryExpr + x - y; // $ Operation BinaryExpr + x * y; // $ Operation BinaryExpr + x / y; // $ Operation BinaryExpr + x % y; // $ Operation BinaryExpr + x += y; // $ Operation AssignmentOperation BinaryExpr + x -= y; // $ Operation AssignmentOperation BinaryExpr + x *= y; // $ Operation AssignmentOperation BinaryExpr + x /= y; // $ Operation AssignmentOperation BinaryExpr + x %= y; // $ Operation AssignmentOperation BinaryExpr + -x; // $ Operation PrefixExpr // logical operations - a && b; // $ BinaryExpr LogicalOperation - a || b; // $ BinaryExpr LogicalOperation - !a; // $ PrefixExpr LogicalOperation + a && b; // $ Operation BinaryExpr LogicalOperation + a || b; // $ Operation BinaryExpr LogicalOperation + !a; // $ Operation PrefixExpr LogicalOperation // bitwise operations - x & y; // $ BinaryExpr - x | y; // $ BinaryExpr - x ^ y; // $ BinaryExpr - x << y; // $ BinaryExpr - x >> y; // $ BinaryExpr - x &= y; // $ AssignmentOperation BinaryExpr - x |= y; // $ AssignmentOperation BinaryExpr - x ^= y; // $ AssignmentOperation BinaryExpr - x <<= y; // $ AssignmentOperation BinaryExpr - x >>= y; // $ AssignmentOperation BinaryExpr + x & y; // $ Operation BinaryExpr + x | y; // $ Operation BinaryExpr + x ^ y; // $ Operation BinaryExpr + x << y; // $ Operation BinaryExpr + x >> y; // $ Operation BinaryExpr + x &= y; // $ Operation AssignmentOperation BinaryExpr + x |= y; // $ Operation AssignmentOperation BinaryExpr + x ^= y; // $ Operation AssignmentOperation BinaryExpr + x <<= y; // $ Operation AssignmentOperation BinaryExpr + x >>= y; // $ Operation AssignmentOperation BinaryExpr // miscellaneous expressions that might be operations - *ptr; // $ PrefixExpr + *ptr; // $ Operation PrefixExpr &x; // $ RefExpr res?; From be2017621fce954873af3fd47c8eba1a5531bc94 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 2 May 2025 12:36:31 +0100 Subject: [PATCH 253/656] Rust: Unify getAnOperand() methods into Operation. --- .../codeql/rust/elements/LogicalOperation.qll | 4 -- .../ql/lib/codeql/rust/elements/Operation.qll | 9 ++- .../rust/elements/internal/BinaryExprImpl.qll | 2 + .../rust/elements/internal/PrefixExprImpl.qll | 2 + .../library-tests/operations/Operations.ql | 12 +++- rust/ql/test/library-tests/operations/test.rs | 64 +++++++++---------- 6 files changed, 52 insertions(+), 41 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll index 7638bea15fd..40a3c4a4e26 100644 --- a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll @@ -7,7 +7,6 @@ private import codeql.rust.elements.Operation * A logical operation, such as `&&`, `||` or `!`. */ abstract private class LogicalOperationImpl extends Operation { - abstract Expr getAnOperand(); } final class LogicalOperation = LogicalOperationImpl; @@ -16,7 +15,6 @@ final class LogicalOperation = LogicalOperationImpl; * A binary logical operation, such as `&&` or `||`. */ abstract private class BinaryLogicalOperationImpl extends BinaryExpr, LogicalOperationImpl { - override Expr getAnOperand() { result = [this.getLhs(), this.getRhs()] } } final class BinaryLogicalOperation = BinaryLogicalOperationImpl; @@ -47,6 +45,4 @@ final class UnaryLogicalOperation = UnaryLogicalOperationImpl; */ final class LogicalNotExpr extends UnaryLogicalOperationImpl { LogicalNotExpr() { this.getOperatorName() = "!" } - - override Expr getAnOperand() { result = this.getExpr() } } diff --git a/rust/ql/lib/codeql/rust/elements/Operation.qll b/rust/ql/lib/codeql/rust/elements/Operation.qll index a1915f837fd..6564e912743 100644 --- a/rust/ql/lib/codeql/rust/elements/Operation.qll +++ b/rust/ql/lib/codeql/rust/elements/Operation.qll @@ -10,10 +10,15 @@ private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl * be referenced directly. */ module OperationImpl { + /** + * An operation, for example `&&`, `+=`, `!` or `*`. + */ + abstract class Operation extends ExprImpl::Expr { /** - * An operation, for example `&&`, `+=`, `!` or `*`. + * Gets an operand of this operation. */ - abstract class Operation extends ExprImpl::Expr { } + abstract Expr getAnOperand(); + } } final class Operation = OperationImpl::Operation; diff --git a/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll index bb7106cf6e9..7793fc5808c 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll @@ -25,5 +25,7 @@ module Impl { */ class BinaryExpr extends Generated::BinaryExpr, OperationImpl::Operation { override string toStringImpl() { result = "... " + this.getOperatorName() + " ..." } + + override Expr getAnOperand() { result = [this.getLhs(), this.getRhs()] } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll index 2008be60660..782f0addf64 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll @@ -23,5 +23,7 @@ module Impl { */ class PrefixExpr extends Generated::PrefixExpr, OperationImpl::Operation { override string toStringImpl() { result = this.getOperatorName() + " ..." } + + override Expr getAnOperand() { result = this.getExpr() } } } diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql index 1609d4b5d22..5829b5b360f 100644 --- a/rust/ql/test/library-tests/operations/Operations.ql +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -16,15 +16,21 @@ string describe(Expr op) { } module OperationsTest implements TestSig { - string getARelevantTag() { result = describe(_) } + string getARelevantTag() { result = describe(_) or result = "Operands" } predicate hasActualResult(Location location, string element, string tag, string value) { exists(Expr op | location = op.getLocation() and location.getFile().getBaseName() != "" and element = op.toString() and - tag = describe(op) and - value = "" + ( + tag = describe(op) and + value = "" + or + op instanceof Operation and + tag = "Operands" and + value = count(op.(Operation).getAnOperand()).toString() + ) ) } } diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs index 7ec3d8a3eef..1e8da17c2e4 100644 --- a/rust/ql/test/library-tests/operations/test.rs +++ b/rust/ql/test/library-tests/operations/test.rs @@ -8,48 +8,48 @@ fn test_operations( let mut x: i32; // simple assignment - x = y; // $ Operation AssignmentOperation BinaryExpr + x = y; // $ Operation Operands=2 AssignmentOperation BinaryExpr // comparison operations - x == y; // $ Operation BinaryExpr - x != y; // $ Operation BinaryExpr - x < y; // $ Operation BinaryExpr - x <= y; // $ Operation BinaryExpr - x > y; // $ Operation BinaryExpr - x >= y; // $ Operation BinaryExpr + x == y; // $ Operation Operands=2 BinaryExpr + x != y; // $ Operation Operands=2 BinaryExpr + x < y; // $ Operation Operands=2 BinaryExpr + x <= y; // $ Operation Operands=2 BinaryExpr + x > y; // $ Operation Operands=2 BinaryExpr + x >= y; // $ Operation Operands=2 BinaryExpr // arithmetic operations - x + y; // $ Operation BinaryExpr - x - y; // $ Operation BinaryExpr - x * y; // $ Operation BinaryExpr - x / y; // $ Operation BinaryExpr - x % y; // $ Operation BinaryExpr - x += y; // $ Operation AssignmentOperation BinaryExpr - x -= y; // $ Operation AssignmentOperation BinaryExpr - x *= y; // $ Operation AssignmentOperation BinaryExpr - x /= y; // $ Operation AssignmentOperation BinaryExpr - x %= y; // $ Operation AssignmentOperation BinaryExpr - -x; // $ Operation PrefixExpr + x + y; // $ Operation Operands=2 BinaryExpr + x - y; // $ Operation Operands=2 BinaryExpr + x * y; // $ Operation Operands=2 BinaryExpr + x / y; // $ Operation Operands=2 BinaryExpr + x % y; // $ Operation Operands=2 BinaryExpr + x += y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + x -= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + x *= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + x /= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + x %= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + -x; // $ Operation Operands=1 PrefixExpr // logical operations - a && b; // $ Operation BinaryExpr LogicalOperation - a || b; // $ Operation BinaryExpr LogicalOperation - !a; // $ Operation PrefixExpr LogicalOperation + a && b; // $ Operation Operands=2 BinaryExpr LogicalOperation + a || b; // $ Operation Operands=2 BinaryExpr LogicalOperation + !a; // $ Operation Operands=1 PrefixExpr LogicalOperation // bitwise operations - x & y; // $ Operation BinaryExpr - x | y; // $ Operation BinaryExpr - x ^ y; // $ Operation BinaryExpr - x << y; // $ Operation BinaryExpr - x >> y; // $ Operation BinaryExpr - x &= y; // $ Operation AssignmentOperation BinaryExpr - x |= y; // $ Operation AssignmentOperation BinaryExpr - x ^= y; // $ Operation AssignmentOperation BinaryExpr - x <<= y; // $ Operation AssignmentOperation BinaryExpr - x >>= y; // $ Operation AssignmentOperation BinaryExpr + x & y; // $ Operation Operands=2 BinaryExpr + x | y; // $ Operation Operands=2 BinaryExpr + x ^ y; // $ Operation Operands=2 BinaryExpr + x << y; // $ Operation Operands=2 BinaryExpr + x >> y; // $ Operation Operands=2 BinaryExpr + x &= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + x |= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + x ^= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + x <<= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + x >>= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr // miscellaneous expressions that might be operations - *ptr; // $ Operation PrefixExpr + *ptr; // $ Operation Operands=1 PrefixExpr &x; // $ RefExpr res?; From dc1b4fcf7aa2c603e9412e9a1ea98b444c53574f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 2 May 2025 12:50:47 +0100 Subject: [PATCH 254/656] Rust: Unify getOperatorName() methods into Operation. --- .../ql/lib/codeql/rust/elements/Operation.qll | 5 ++ .../rust/elements/internal/BinaryExprImpl.qll | 2 + .../rust/elements/internal/PrefixExprImpl.qll | 2 + .../library-tests/operations/Operations.ql | 5 +- rust/ql/test/library-tests/operations/test.rs | 64 +++++++++---------- 5 files changed, 45 insertions(+), 33 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/Operation.qll b/rust/ql/lib/codeql/rust/elements/Operation.qll index 6564e912743..26486686cb2 100644 --- a/rust/ql/lib/codeql/rust/elements/Operation.qll +++ b/rust/ql/lib/codeql/rust/elements/Operation.qll @@ -14,6 +14,11 @@ module OperationImpl { * An operation, for example `&&`, `+=`, `!` or `*`. */ abstract class Operation extends ExprImpl::Expr { + /** + * Gets the operator name of this operation, if it exists. + */ + abstract string getOperatorName(); + /** * Gets an operand of this operation. */ diff --git a/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll index 7793fc5808c..42ac0521db3 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll @@ -26,6 +26,8 @@ module Impl { class BinaryExpr extends Generated::BinaryExpr, OperationImpl::Operation { override string toStringImpl() { result = "... " + this.getOperatorName() + " ..." } + override string getOperatorName() { result = Generated::BinaryExpr.super.getOperatorName() } + override Expr getAnOperand() { result = [this.getLhs(), this.getRhs()] } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll index 782f0addf64..56cc43babd0 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll @@ -24,6 +24,8 @@ module Impl { class PrefixExpr extends Generated::PrefixExpr, OperationImpl::Operation { override string toStringImpl() { result = this.getOperatorName() + " ..." } + override string getOperatorName() { result = Generated::PrefixExpr.super.getOperatorName() } + override Expr getAnOperand() { result = this.getExpr() } } } diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql index 5829b5b360f..cbb81bdcb02 100644 --- a/rust/ql/test/library-tests/operations/Operations.ql +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -16,7 +16,7 @@ string describe(Expr op) { } module OperationsTest implements TestSig { - string getARelevantTag() { result = describe(_) or result = "Operands" } + string getARelevantTag() { result = describe(_) or result = ["Op", "Operands"] } predicate hasActualResult(Location location, string element, string tag, string value) { exists(Expr op | @@ -27,6 +27,9 @@ module OperationsTest implements TestSig { tag = describe(op) and value = "" or + tag = "Op" and + value = op.(Operation).getOperatorName() + or op instanceof Operation and tag = "Operands" and value = count(op.(Operation).getAnOperand()).toString() diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs index 1e8da17c2e4..f82a9501fef 100644 --- a/rust/ql/test/library-tests/operations/test.rs +++ b/rust/ql/test/library-tests/operations/test.rs @@ -8,48 +8,48 @@ fn test_operations( let mut x: i32; // simple assignment - x = y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + x = y; // $ Operation Op== Operands=2 AssignmentOperation BinaryExpr // comparison operations - x == y; // $ Operation Operands=2 BinaryExpr - x != y; // $ Operation Operands=2 BinaryExpr - x < y; // $ Operation Operands=2 BinaryExpr - x <= y; // $ Operation Operands=2 BinaryExpr - x > y; // $ Operation Operands=2 BinaryExpr - x >= y; // $ Operation Operands=2 BinaryExpr + x == y; // $ Operation Op=== Operands=2 BinaryExpr + x != y; // $ Operation Op=!= Operands=2 BinaryExpr + x < y; // $ Operation Op=< Operands=2 BinaryExpr + x <= y; // $ Operation Op=<= Operands=2 BinaryExpr + x > y; // $ Operation Op=> Operands=2 BinaryExpr + x >= y; // $ Operation Op=>= Operands=2 BinaryExpr // arithmetic operations - x + y; // $ Operation Operands=2 BinaryExpr - x - y; // $ Operation Operands=2 BinaryExpr - x * y; // $ Operation Operands=2 BinaryExpr - x / y; // $ Operation Operands=2 BinaryExpr - x % y; // $ Operation Operands=2 BinaryExpr - x += y; // $ Operation Operands=2 AssignmentOperation BinaryExpr - x -= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr - x *= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr - x /= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr - x %= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr - -x; // $ Operation Operands=1 PrefixExpr + x + y; // $ Operation Op=+ Operands=2 BinaryExpr + x - y; // $ Operation Op=- Operands=2 BinaryExpr + x * y; // $ Operation Op=* Operands=2 BinaryExpr + x / y; // $ Operation Op=/ Operands=2 BinaryExpr + x % y; // $ Operation Op=% Operands=2 BinaryExpr + x += y; // $ Operation Op=+= Operands=2 AssignmentOperation BinaryExpr + x -= y; // $ Operation Op=-= Operands=2 AssignmentOperation BinaryExpr + x *= y; // $ Operation Op=*= Operands=2 AssignmentOperation BinaryExpr + x /= y; // $ Operation Op=/= Operands=2 AssignmentOperation BinaryExpr + x %= y; // $ Operation Op=%= Operands=2 AssignmentOperation BinaryExpr + -x; // $ Operation Op=- Operands=1 PrefixExpr // logical operations - a && b; // $ Operation Operands=2 BinaryExpr LogicalOperation - a || b; // $ Operation Operands=2 BinaryExpr LogicalOperation - !a; // $ Operation Operands=1 PrefixExpr LogicalOperation + a && b; // $ Operation Op=&& Operands=2 BinaryExpr LogicalOperation + a || b; // $ Operation Op=|| Operands=2 BinaryExpr LogicalOperation + !a; // $ Operation Op=! Operands=1 PrefixExpr LogicalOperation // bitwise operations - x & y; // $ Operation Operands=2 BinaryExpr - x | y; // $ Operation Operands=2 BinaryExpr - x ^ y; // $ Operation Operands=2 BinaryExpr - x << y; // $ Operation Operands=2 BinaryExpr - x >> y; // $ Operation Operands=2 BinaryExpr - x &= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr - x |= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr - x ^= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr - x <<= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr - x >>= y; // $ Operation Operands=2 AssignmentOperation BinaryExpr + x & y; // $ Operation Op=& Operands=2 BinaryExpr + x | y; // $ Operation Op=| Operands=2 BinaryExpr + x ^ y; // $ Operation Op=^ Operands=2 BinaryExpr + x << y; // $ Operation Op=<< Operands=2 BinaryExpr + x >> y; // $ Operation Op=>> Operands=2 BinaryExpr + x &= y; // $ Operation Op=&= Operands=2 AssignmentOperation BinaryExpr + x |= y; // $ Operation Op=|= Operands=2 AssignmentOperation BinaryExpr + x ^= y; // $ Operation Op=^= Operands=2 AssignmentOperation BinaryExpr + x <<= y; // $ Operation Op=<<= Operands=2 AssignmentOperation BinaryExpr + x >>= y; // $ Operation Op=>>= Operands=2 AssignmentOperation BinaryExpr // miscellaneous expressions that might be operations - *ptr; // $ Operation Operands=1 PrefixExpr + *ptr; // $ Operation Op=* Operands=1 PrefixExpr &x; // $ RefExpr res?; From 37bc2bf5b30e24a1302aad10476d4614b96c595c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 2 May 2025 16:51:15 +0100 Subject: [PATCH 255/656] Shared: Deduplicate flow summaries. --- .../internal/ModelGeneratorImpl.qll | 83 ++++++++++++------- 1 file changed, 52 insertions(+), 31 deletions(-) diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index 1eed895cc87..6623373b281 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -345,12 +345,14 @@ module MakeModelGeneratorFactory< /** * Gets the summary model of `api`, if it follows the `fluent` programming pattern (returns `this`). */ - private string captureQualifierFlow(DataFlowSummaryTargetApi api) { + private string captureQualifierFlow(DataFlowSummaryTargetApi api, string input, string output) { exists(ReturnNodeExt ret | api = returnNodeEnclosingCallable(ret) and isOwnInstanceAccessNode(ret) ) and - result = ModelPrintingSummary::asLiftedValueModel(api, qualifierString(), "ReturnValue") + input = qualifierString() and + output = "ReturnValue" and + result = ModelPrintingSummary::asLiftedValueModel(api, input, output) } private int accessPathLimit0() { result = 2 } @@ -430,7 +432,7 @@ module MakeModelGeneratorFactory< predicate isSink(DataFlow::Node sink) { sink instanceof ReturnNodeExt and not isOwnInstanceAccessNode(sink) and - not exists(captureQualifierFlow(getAsExprEnclosingCallable(sink))) + not exists(captureQualifierFlow(getAsExprEnclosingCallable(sink), _, _)) } predicate isAdditionalFlowStep = PropagateFlowConfigInput::isAdditionalFlowStep/4; @@ -559,11 +561,24 @@ module MakeModelGeneratorFactory< * * `preservesValue` is `true` if the summary is value-preserving, and `false` otherwise. */ - private string captureThroughFlow(DataFlowSummaryTargetApi api, boolean preservesValue) { - exists(string input, string output | - preservesValue = max(boolean b | captureThroughFlow0(api, _, input, _, output, b)) and - result = ModelPrintingSummary::asLiftedModel(api, input, output, preservesValue) - ) + private string captureThroughFlow( + DataFlowSummaryTargetApi api, string input, string output, boolean preservesValue + ) { + preservesValue = max(boolean b | captureThroughFlow0(api, _, input, _, output, b)) and + result = ModelPrintingSummary::asLiftedModel(api, input, output, preservesValue) + } + + /** + * Gets the summary model(s) of `api`, if there is flow `input` to + * `output`. `preservesValue` is `true` if the summary is value- + * preserving, and `false` otherwise. + */ + string captureFlow( + DataFlowSummaryTargetApi api, string input, string output, boolean preservesValue + ) { + result = captureQualifierFlow(api, input, output) and preservesValue = true + or + result = captureThroughFlow(api, input, output, preservesValue) } /** @@ -573,9 +588,7 @@ module MakeModelGeneratorFactory< * `preservesValue` is `true` if the summary is value-preserving, and `false` otherwise. */ string captureFlow(DataFlowSummaryTargetApi api, boolean preservesValue) { - result = captureQualifierFlow(api) and preservesValue = true - or - result = captureThroughFlow(api, preservesValue) + result = captureFlow(api, _, _, preservesValue) } /** @@ -947,19 +960,20 @@ module MakeModelGeneratorFactory< } /** - * Gets the content based summary model(s) of the API `api` (if there is flow from a parameter to - * the return value or a parameter). `lift` is true, if the model should be lifted, otherwise false. + * Gets the content based summary model(s) of the API `api` (if there is flow from `input` to + * `output`). `lift` is true, if the model should be lifted, otherwise false. * `preservesValue` is `true` if the summary is value-preserving, and `false` otherwise. * * Models are lifted to the best type in case the read and store access paths do not * contain a field or synthetic field access. */ - string captureFlow(ContentDataFlowSummaryTargetApi api, boolean lift, boolean preservesValue) { - exists(string input, string output | - captureFlow0(api, input, output, _, lift) and - preservesValue = max(boolean p | captureFlow0(api, input, output, p, lift)) and - result = ContentModelPrinting::asModel(api, input, output, preservesValue, lift) - ) + string captureFlow( + ContentDataFlowSummaryTargetApi api, string input, string output, boolean lift, + boolean preservesValue + ) { + captureFlow0(api, input, output, _, lift) and + preservesValue = max(boolean p | captureFlow0(api, input, output, p, lift)) and + result = ContentModelPrinting::asModel(api, input, output, preservesValue, lift) } } @@ -972,23 +986,30 @@ module MakeModelGeneratorFactory< * generate flow summaries using the heuristic based summary generator. */ string captureFlow(DataFlowSummaryTargetApi api, boolean lift) { - exists(boolean preservesValue | - result = ContentSensitive::captureFlow(api, lift, preservesValue) - or - not exists(DataFlowSummaryTargetApi api0 | - // If the heuristic summary is value-preserving then we keep both - // summaries. However, if we can generate any content-sensitive - // summary (value-preserving or not) then we don't include any taint- - // based heuristic summary. - preservesValue = false + result = ContentSensitive::captureFlow(api, _, _, lift, _) + or + exists(boolean preservesValue, string input, string output | + not exists( + DataFlowSummaryTargetApi api0, string input0, string output0, boolean preservesValue0 + | + // If the heuristic summary is taint-based, and we can generate a content-sensitive + // summary that is value-preserving then we omit generating any heuristic summary. + preservesValue = false and + preservesValue0 = true + or + // However, if they're both value-preserving (or both taint-based) then we only + // generate a heuristic summary if we didn't generate a content-sensitive summary. + preservesValue = preservesValue0 and + input0 = input and + output0 = output | (api0 = api or api.lift() = api0) and - exists(ContentSensitive::captureFlow(api0, false, _)) + exists(ContentSensitive::captureFlow(api0, input0, output0, false, preservesValue0)) or api0.lift() = api.lift() and - exists(ContentSensitive::captureFlow(api0, true, _)) + exists(ContentSensitive::captureFlow(api0, input0, output0, true, preservesValue0)) ) and - result = Heuristic::captureFlow(api, preservesValue) and + result = Heuristic::captureFlow(api, input, output, preservesValue) and lift = true ) } From bce5f2539f7c2bdf6feaef9810188dc133cb8416 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 2 May 2025 16:52:05 +0100 Subject: [PATCH 256/656] C++/C#/Java/Rust: Fixup tests. --- .../src/utils/modelgenerator/CaptureContentSummaryModels.ql | 2 +- .../modelgenerator/dataflow/CaptureContentSummaryModels.ql | 4 +++- .../src/utils/modelgenerator/CaptureContentSummaryModels.ql | 2 +- .../modelgenerator/dataflow/CaptureContentSummaryModels.ql | 2 +- .../src/utils/modelgenerator/CaptureContentSummaryModels.ql | 2 +- .../modelgenerator/dataflow/CaptureContentSummaryModels.ql | 2 +- .../src/utils/modelgenerator/CaptureContentSummaryModels.ql | 2 +- .../test/utils-tests/modelgenerator/CaptureSummaryModels.ql | 2 +- 8 files changed, 10 insertions(+), 8 deletions(-) diff --git a/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index c9ded748466..a15a584e13d 100644 --- a/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/cpp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -10,5 +10,5 @@ import internal.CaptureModels import SummaryModels from DataFlowSummaryTargetApi api, string flow -where flow = ContentSensitive::captureFlow(api, _, _) +where flow = ContentSensitive::captureFlow(api, _, _, _, _) select flow order by flow diff --git a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql index a7d6e0ad4ec..37990554258 100644 --- a/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql +++ b/cpp/ql/test/library-tests/dataflow/modelgenerator/dataflow/CaptureContentSummaryModels.ql @@ -4,7 +4,9 @@ import SummaryModels import InlineModelsAsDataTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(MadRelevantFunction c) { result = ContentSensitive::captureFlow(c, _, _) } + string getCapturedModel(MadRelevantFunction c) { + result = ContentSensitive::captureFlow(c, _, _, _, _) + } string getKind() { result = "contentbased-summary" } } diff --git a/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index cc36c15d6ad..6030960a1a7 100644 --- a/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/csharp/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -10,5 +10,5 @@ import internal.CaptureModels import SummaryModels from DataFlowSummaryTargetApi api, string flow -where flow = ContentSensitive::captureFlow(api, _, _) +where flow = ContentSensitive::captureFlow(api, _, _, _, _) select flow order by flow diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql index 7a385bc70ac..a52b96b0232 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql +++ b/csharp/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql @@ -4,7 +4,7 @@ import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Callable c) { result = ContentSensitive::captureFlow(c, _, _) } + string getCapturedModel(Callable c) { result = ContentSensitive::captureFlow(c, _, _, _, _) } string getKind() { result = "contentbased-summary" } } diff --git a/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index 3eec61cc8d4..39e8cd9a0a4 100644 --- a/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/java/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -10,5 +10,5 @@ import internal.CaptureModels import SummaryModels from DataFlowSummaryTargetApi api, string flow -where flow = ContentSensitive::captureFlow(api, _, _) +where flow = ContentSensitive::captureFlow(api, _, _, _, _) select flow order by flow diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql b/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql index 1954bc8cd96..aecabe42901 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureContentSummaryModels.ql @@ -4,7 +4,7 @@ import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Callable c) { result = ContentSensitive::captureFlow(c, _, _) } + string getCapturedModel(Callable c) { result = ContentSensitive::captureFlow(c, _, _, _, _) } string getKind() { result = "contentbased-summary" } } diff --git a/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql b/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql index e88efe80b8e..9dd63e06ea7 100644 --- a/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql +++ b/rust/ql/src/utils/modelgenerator/CaptureContentSummaryModels.ql @@ -10,5 +10,5 @@ import internal.CaptureModels import SummaryModels from DataFlowSummaryTargetApi api, string flow -where flow = ContentSensitive::captureFlow(api, _, _) +where flow = ContentSensitive::captureFlow(api, _, _, _, _) select flow order by flow diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql index c68b3b18b8c..fe5e532394b 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql @@ -4,7 +4,7 @@ import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Function f) { result = ContentSensitive::captureFlow(f, _, _) } + string getCapturedModel(Function f) { result = ContentSensitive::captureFlow(f, _, _, _, _) } string getKind() { result = "summary" } } From 09dc7fc5c4a012cecebc090135c6ede65c89bd4d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 2 May 2025 16:58:43 +0100 Subject: [PATCH 257/656] Rust: Autoformat. --- rust/ql/lib/codeql/rust/elements/LogicalOperation.qll | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll index 40a3c4a4e26..72cc4ffdf57 100644 --- a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll @@ -6,16 +6,14 @@ private import codeql.rust.elements.Operation /** * A logical operation, such as `&&`, `||` or `!`. */ -abstract private class LogicalOperationImpl extends Operation { -} +abstract private class LogicalOperationImpl extends Operation { } final class LogicalOperation = LogicalOperationImpl; /** * A binary logical operation, such as `&&` or `||`. */ -abstract private class BinaryLogicalOperationImpl extends BinaryExpr, LogicalOperationImpl { -} +abstract private class BinaryLogicalOperationImpl extends BinaryExpr, LogicalOperationImpl { } final class BinaryLogicalOperation = BinaryLogicalOperationImpl; From 566b3dd8d909af9c6cfb3866d0f9c773d54176c2 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 2 May 2025 17:13:14 +0100 Subject: [PATCH 258/656] Rust: Update code scanning queries list. --- .../query-suite/rust-code-scanning.qls.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/rust/ql/integration-tests/query-suite/rust-code-scanning.qls.expected b/rust/ql/integration-tests/query-suite/rust-code-scanning.qls.expected index 0e619031ed5..b3683f02d92 100644 --- a/rust/ql/integration-tests/query-suite/rust-code-scanning.qls.expected +++ b/rust/ql/integration-tests/query-suite/rust-code-scanning.qls.expected @@ -14,6 +14,7 @@ ql/rust/ql/src/queries/security/CWE-311/CleartextTransmission.ql ql/rust/ql/src/queries/security/CWE-312/CleartextLogging.ql ql/rust/ql/src/queries/security/CWE-327/BrokenCryptoAlgorithm.ql ql/rust/ql/src/queries/security/CWE-328/WeakSensitiveDataHashing.ql +ql/rust/ql/src/queries/security/CWE-770/UncontrolledAllocationSize.ql ql/rust/ql/src/queries/security/CWE-825/AccessInvalidPointer.ql ql/rust/ql/src/queries/summary/LinesOfCode.ql ql/rust/ql/src/queries/summary/LinesOfUserCode.ql From 16ed8476ce7a7c2cb5032d5c5e563b8d70b9c50d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 2 May 2025 17:24:13 +0100 Subject: [PATCH 259/656] Rust: Use the new 'quality' tag. --- rust/ql/src/queries/unusedentities/UnreachableCode.ql | 1 + rust/ql/src/queries/unusedentities/UnusedValue.ql | 1 + rust/ql/src/queries/unusedentities/UnusedVariable.ql | 1 + 3 files changed, 3 insertions(+) diff --git a/rust/ql/src/queries/unusedentities/UnreachableCode.ql b/rust/ql/src/queries/unusedentities/UnreachableCode.ql index aa49c30ce5a..15a45c6f4b5 100644 --- a/rust/ql/src/queries/unusedentities/UnreachableCode.ql +++ b/rust/ql/src/queries/unusedentities/UnreachableCode.ql @@ -6,6 +6,7 @@ * @precision medium * @id rust/dead-code * @tags maintainability + * quality */ import rust diff --git a/rust/ql/src/queries/unusedentities/UnusedValue.ql b/rust/ql/src/queries/unusedentities/UnusedValue.ql index 1b0a498afe5..11e29d475e4 100644 --- a/rust/ql/src/queries/unusedentities/UnusedValue.ql +++ b/rust/ql/src/queries/unusedentities/UnusedValue.ql @@ -6,6 +6,7 @@ * @precision medium * @id rust/unused-value * @tags maintainability + * quality */ import rust diff --git a/rust/ql/src/queries/unusedentities/UnusedVariable.ql b/rust/ql/src/queries/unusedentities/UnusedVariable.ql index 388c98d07b6..398551a84a7 100644 --- a/rust/ql/src/queries/unusedentities/UnusedVariable.ql +++ b/rust/ql/src/queries/unusedentities/UnusedVariable.ql @@ -6,6 +6,7 @@ * @precision high * @id rust/unused-variable * @tags maintainability + * quality */ import rust From f59ef58c1f3640a251e714de4160ca6f7912178e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 2 May 2025 17:47:48 +0100 Subject: [PATCH 260/656] Rust: Update query suite list. --- .../query-suite/rust-code-quality.qls.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/integration-tests/query-suite/rust-code-quality.qls.expected b/rust/ql/integration-tests/query-suite/rust-code-quality.qls.expected index 8b137891791..94c62ec81ae 100644 --- a/rust/ql/integration-tests/query-suite/rust-code-quality.qls.expected +++ b/rust/ql/integration-tests/query-suite/rust-code-quality.qls.expected @@ -1 +1 @@ - +ql/rust/ql/src/queries/unusedentities/UnusedVariable.ql From 5694f029de96449cffc8160e48ac9eb5113b744b Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 2 May 2025 14:03:50 -0400 Subject: [PATCH 261/656] Misc. cleanup --- cpp/ql/lib/experimental/Quantum/Language.qll | 112 ++++---- .../experimental/Quantum/OpenSSL/CtxFlow.qll | 8 +- .../experimental/Quantum/OpenSSL/OpenSSL.qll | 271 +----------------- 3 files changed, 65 insertions(+), 326 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index 0d0caf7f49b..7e1857cc68a 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -1,6 +1,7 @@ private import codeql.cryptography.Model import semmle.code.cpp.ir.IR import semmle.code.cpp.security.FlowSources as FlowSources +import semmle.code.cpp.dataflow.new.DataFlow private import cpp as Lang module CryptoInput implements InputSig { @@ -15,25 +16,59 @@ module CryptoInput implements InputSig { result = node.asParameter() or result = node.asVariable() } + + string locationToFileBaseNameAndLineNumberString(Location location) { + result = location.getFile().getBaseName() + ":" + location.getStartLine() + } + + predicate artifactOutputFlowsToGenericInput( + DataFlow::Node artifactOutput, DataFlow::Node otherInput + ) { + ArtifactFlow::flow(artifactOutput, otherInput) + } } module Crypto = CryptographyBase; -/** - * Artifact output to node input configuration - */ -abstract class AdditionalFlowInputStep extends DataFlow::Node { - abstract DataFlow::Node getOutput(); - - final DataFlow::Node getInput() { result = this } -} - -/** - * Generic data source to node input configuration - */ -module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { +module ArtifactFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { - source = any(Crypto::GenericDataSourceInstance i).getOutputNode() + source = any(Crypto::ArtifactInstance artifact).getOutputNode() + } + + predicate isSink(DataFlow::Node sink) { + sink = any(Crypto::FlowAwareElement other).getInputNode() + } + + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + } +} + +module ArtifactFlow = DataFlow::Global; + +/** + * Artifact output to node input configuration + */ +abstract class AdditionalFlowInputStep extends DataFlow::Node { + abstract DataFlow::Node getOutput(); + + final DataFlow::Node getInput() { result = this } +} + +/** + * Generic data source to node input configuration + */ +module GenericDataSourceFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::GenericSourceInstance i).getOutputNode() } predicate isSink(DataFlow::Node sink) { @@ -53,41 +88,6 @@ module GenericDataSourceUniversalFlowConfig implements DataFlow::ConfigSig { } } -// // // TODO: I think this will be inefficient, no? -// // class ConstantDataSource extends Crypto::GenericConstantOrAllocationSource instanceof Literal { -// // override DataFlow::Node getOutputNode() { -// // result.asExpr() = this -// // } -// // override predicate flowsTo(Crypto::FlowAwareElement other) { -// // // TODO: separate config to avoid blowing up data-flow analysis -// // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) -// // } -// // override string getAdditionalDescription() { result = this.toString() } -// // } -// /** -// * Definitions of various generic data sources -// */ -// // final class DefaultFlowSource = SourceNode; -// // final class DefaultRemoteFlowSource = RemoteFlowSource; -// // class GenericLocalDataSource extends Crypto::GenericLocalDataSource { -// // GenericLocalDataSource() { -// // any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this -// // } -// // override DataFlow::Node getOutputNode() { result.asExpr() = this } -// // override predicate flowsTo(Crypto::FlowAwareElement other) { -// // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) -// // } -// // override string getAdditionalDescription() { result = this.toString() } -// // } -// // class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { -// // GenericRemoteDataSource() { any(DefaultRemoteFlowSource src).asExpr() = this } -// // override DataFlow::Node getOutputNode() { result.asExpr() = this } -// // override predicate flowsTo(Crypto::FlowAwareElement other) { -// // GenericDataSourceUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) -// // } -// // override string getAdditionalDescription() { result = this.toString() } -// // } -// module GenericDataSourceUniversalFlow = DataFlow::Global; module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source = any(Crypto::ArtifactInstance artifact).getOutputNode() @@ -112,10 +112,12 @@ module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { module ArtifactUniversalFlow = DataFlow::Global; -abstract class CipherOutputArtifact extends Crypto::KeyOperationOutputArtifactInstance { - override predicate flowsTo(Crypto::FlowAwareElement other) { - ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) - } -} - +// abstract class CipherOutputArtifact extends Crypto::KeyOperationOutputArtifactInstance { +// override predicate flowsTo(Crypto::FlowAwareElement other) { +// ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) +// } +// } +// // final override predicate flowsTo(FlowAwareElement other) { +// // Input::artifactOutputFlowsToGenericInput(this.getOutputNode(), other.getInputNode()) +// // } import OpenSSL.OpenSSL diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll index c07902022d8..88e4a1c378b 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll @@ -1,9 +1,11 @@ +//TODO: model as data on open APIs should be able to get common flows, and obviate some of this +// e.g., copy/dup calls, need to ingest those models for openSSL and refactor. /** * In OpenSSL, flow between 'context' parameters is often used to * store state/config of how an operation will eventually be performed. * Tracing algorithms and configurations to operations therefore - * requires tracing context parameters for many OpenSSL apis. - * + * requires tracing context parameters for many OpenSSL apis. + * * This library provides a dataflow analysis to track context parameters * between any two functions accepting openssl context parameters. * The dataflow takes into consideration flowing through duplication and copy calls @@ -88,7 +90,7 @@ module OpenSSLCTXArgumentFlowConfig implements DataFlow::ConfigSig { module OpenSSLCTXArgumentFlow = DataFlow::Global; -predicate ctxFlowsTo(CTXPointerArgument source, CTXPointerArgument sink) { +predicate ctxArgFlowsToCtxArg(CTXPointerArgument source, CTXPointerArgument sink) { exists(DataFlow::Node a, DataFlow::Node b | OpenSSLCTXArgumentFlow::flow(a, b) and a.asExpr() = source and diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll index 1f9fb9a54ba..6b28c4ee8e4 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll @@ -3,272 +3,7 @@ import semmle.code.cpp.dataflow.new.DataFlow module OpenSSLModel { import experimental.Quantum.Language - import experimental.Quantum.OpenSSL.AlgorithmInstances.Instances - import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.AlgorithmValueConsumers - import experimental.Quantum.OpenSSL.Operations.Operations - // import experimental.Quantum.OpenSSL.EVPCipherOperation - // import experimental.Quantum.OpenSSL.EVPHashOperation - // import experimental.Quantum.OpenSSL.EVPCipherAlgorithmSource - // import experimental.Quantum.OpenSSL.EVPHashAlgorithmSource - // import experimental.Quantum.OpenSSL.Random - // // Imports the additional algorithm flow step for OpenSSL - // import experimental.Quantum.OpenSSL.OpenSSLAlgorithmGetter - // // TODO: trace CTX from init variants to the context arg of EVP update calls - // //https://docs.openssl.org/master/man3/EVP_EncryptInit/#synopsis - // abstract class EVP_Cipher_Init_Call extends Call { - // Expr getContextArg() { result = this.getArgument(0) } - // abstract Expr getKeyArg(); - // abstract Expr getIVArg(); - // abstract Crypto::CipherOperationSubtype getCipherOperationSubtype(); - // } - // abstract class EVP_Cipher_EX_Init_Call extends EVP_Cipher_Init_Call { - // override Expr getKeyArg() { result = this.getArgument(3) } - // override Expr getIVArg() { result = this.getArgument(4) } - // } - // abstract class EVP_Cipher_EX2_Init_Call extends EVP_Cipher_Init_Call { - // override Expr getKeyArg() { result = this.getArgument(2) } - // override Expr getIVArg() { result = this.getArgument(3) } - // } - // abstract class EVP_Cipher_Operation_Call extends Crypto::CipherOperationInstance instanceof Call { - // Expr getContextArg() { result = this.(Call).getArgument(0) } - // abstract Expr getInputArg(); - // Expr getOutputArg() { result = this.(Call).getArgument(1) } - // abstract Expr getInitCall(); - // } - // abstract class EVP_Update_Call extends EVP_Cipher_Operation_Call { - // override Expr getInputArg() { result = this.(Call).getArgument(3) } - // } - // abstract class EVP_Final_Call extends EVP_Cipher_Operation_Call{ - // override Expr getInputArg() { none() } - // } - // class EVP_Cipher_Call extends EVP_Cipher_Operation_Call{ - // // TODO/QUESTION: what is the better way to do this? - // EVP_Cipher_Call() { this.(Call).getTarget().getName() = "EVP_Cipher" } - // override Expr getInputArg() { result = this.(Call).getArgument(2) } - // override Expr getOutputArg() { result = this.(Call).getArgument(1) } - // override Crypto::CipherOperationSubtype getCipherOperationSubtype(){ - // result instanceof Crypto::EncryptionSubtype - // } - // override Expr getInitCall(){ - // //TODO: - // none() - // } - // override Crypto::NonceArtifactConsumer getNonceConsumer(){ - // none() - // } - // override Crypto::CipherInputConsumer getInputConsumer(){ - // none() - // } - // override Crypto::CipherOutputArtifactInstance getOutputArtifact(){ - // none() - // } - // override Crypto::AlgorithmConsumer getAlgorithmConsumer(){ - // none() - // } - // } - //TODO: what about EVP_CIpher - // class EVP_EncryptUpdateCall extends Crypto::CipherOperationInstance instanceof Call { - // // NICK QUESTION: is there a better way to tie this to openssl? - // EVP_EncryptUpdateCall() { this.getTarget().getName() = "EVP_EncryptUpdate" } - // Expr getContextArg() { result = super.getArgument(0) } - // Expr getInputArg() { result = super.getArgument(3) } - // Expr getOutputArg() { result = super.getArgument(1) } - // override Crypto::CipherOperationSubtype getCipherOperationSubtype(){ - // result instanceof Crypto::EncryptionSubtype - // } - // override Crypto::NonceArtifactConsumer getNonceConsumer(){ - // none() - // } - // override Crypto::CipherInputConsumer getInputConsumer(){ - // none() - // } - // override Crypto::CipherOutputArtifactInstance getOutputArtifact(){ - // none() - // } - // override Crypto::AlgorithmConsumer getAlgorithmConsumer(){ - // none() - // } - // } - //EVP_EncryptUpdate - // /** - // * Hash function references in OpenSSL. - // */ - // predicate hash_ref_type_mapping_known(string name, Crypto::THashType algo) { - // // `ma` name has an LN_ or SN_ prefix, which we want to ignore - // // capture any name after the _ prefix using regex matching - // name = ["sha1", "sha160"] and algo instanceof Crypto::SHA1 - // or - // name = ["sha224", "sha256", "sha384", "sha512"] and algo instanceof Crypto::SHA2 - // or - // name = ["sha3-224", "sha3-256", "sha3-384", "sha3-512"] and algo instanceof Crypto::SHA3 - // or - // name = "md2" and algo instanceof Crypto::MD2 - // or - // name = "md4" and algo instanceof Crypto::MD4 - // or - // name = "md5" and algo instanceof Crypto::MD5 - // or - // name = "ripemd160" and algo instanceof Crypto::RIPEMD160 - // or - // name = "whirlpool" and algo instanceof Crypto::WHIRLPOOL - // } - // predicate hash_ref_type_mapping(FunctionCallOrMacroAccess ref, string name, Crypto::THashType algo) { - // name = ref.getTargetName().regexpCapture("(?:SN_|LN_|EVP_)([a-z0-9]+)", 1) and - // hash_ref_type_mapping_known(name, algo) - // } - // class FunctionCallOrMacroAccess extends Element { - // FunctionCallOrMacroAccess() { this instanceof FunctionCall or this instanceof MacroAccess } - // string getTargetName() { - // result = this.(FunctionCall).getTarget().getName() - // or - // result = this.(MacroAccess).getMacroName() - // } - // } - // class HashAlgorithmCallOrMacro extends Crypto::HashAlgorithmInstance instanceof FunctionCallOrMacroAccess - // { - // HashAlgorithmCallOrMacro() { hash_ref_type_mapping(this, _, _) } - // string getTargetName() { result = this.(FunctionCallOrMacroAccess).getTargetName() } - // } - // class HashAlgorithm extends Crypto::HashAlgorithm { - // HashAlgorithmCallOrMacro instance; - // HashAlgorithm() { this = Crypto::THashAlgorithm(instance) } - // override string getSHA2OrSHA3DigestSize(Location location) { - // ( - // this.getHashType() instanceof Crypto::SHA2 or - // this.getHashType() instanceof Crypto::SHA3 - // ) and - // exists(string name | - // hash_ref_type_mapping(instance, name, this.getHashType()) and - // result = name.regexpFind("\\d{3}", 0, _) and - // location = instance.getLocation() - // ) - // } - // override string getRawAlgorithmName() { result = instance.getTargetName() } - // override Crypto::THashType getHashType() { hash_ref_type_mapping(instance, _, result) } - // Element getInstance() { result = instance } - // override Location getLocation() { result = instance.getLocation() } - // } - // /** - // * Data-flow configuration for key derivation algorithm flow to EVP_KDF_derive. - // */ - // module AlgorithmToEVPKeyDeriveConfig implements DataFlow::ConfigSig { - // predicate isSource(DataFlow::Node source) { - // source.asExpr() = any(KeyDerivationAlgorithm a).getInstance() - // } - // predicate isSink(DataFlow::Node sink) { - // exists(EVP_KDF_derive kdo | - // sink.asExpr() = kdo.getCall().getAlgorithmArg() - // or - // sink.asExpr() = kdo.getCall().getContextArg() // via `EVP_KDF_CTX_set_params` - // ) - // } - // predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - // none() // TODO - // } - // } - // module AlgorithmToEVPKeyDeriveFlow = DataFlow::Global; - // predicate algorithm_to_EVP_KDF_derive(KeyDerivationAlgorithm algo, EVP_KDF_derive derive) { - // none() - // } - // /** - // * Key derivation operation (e.g., `EVP_KDF_derive`) - // */ - // class EVP_KDF_derive_FunctionCall extends Crypto::KeyDerivationOperationInstance instanceof FunctionCall - // { - // EVP_KDF_derive_FunctionCall() { this.getTarget().getName() = "EVP_KDF_derive" } - // Expr getAlgorithmArg() { result = super.getArgument(3) } - // Expr getContextArg() { result = super.getArgument(0) } - // } - // class EVP_KDF_derive extends Crypto::KeyDerivationOperation { - // EVP_KDF_derive_FunctionCall instance; - // EVP_KDF_derive() { this = Crypto::TKeyDerivationOperation(instance) } - // override Crypto::Algorithm getAlgorithm() { algorithm_to_EVP_KDF_derive(result, this) } - // EVP_KDF_derive_FunctionCall getCall() { result = instance } - // } - // /** - // * Key derivation algorithm nodes - // */ - // abstract class KeyDerivationAlgorithm extends Crypto::KeyDerivationAlgorithm { - // abstract Expr getInstance(); - // } - // /** - // * `EVP_KDF_fetch` returns a key derivation algorithm. - // */ - // class EVP_KDF_fetch_Call extends FunctionCall { - // EVP_KDF_fetch_Call() { this.getTarget().getName() = "EVP_KDF_fetch" } - // Expr getAlgorithmArg() { result = this.getArgument(1) } - // } - // class EVP_KDF_fetch_AlgorithmArg extends Crypto::KeyDerivationAlgorithmInstance instanceof Expr { - // EVP_KDF_fetch_AlgorithmArg() { exists(EVP_KDF_fetch_Call call | this = call.getAlgorithmArg()) } - // } - // predicate kdf_names(string algo) { algo = ["HKDF", "PKCS12KDF", "PBKDF2"] } - // class KDFAlgorithmStringLiteral extends StringLiteral { - // KDFAlgorithmStringLiteral() { kdf_names(this.getValue().toUpperCase()) } - // } - // private module AlgorithmStringToFetchConfig implements DataFlow::ConfigSig { - // predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KDFAlgorithmStringLiteral } - // predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof EVP_KDF_fetch_AlgorithmArg } - // } - // module AlgorithmStringToFetchFlow = DataFlow::Global; - // predicate algorithmStringToKDFFetchArgFlow( - // string name, KDFAlgorithmStringLiteral origin, EVP_KDF_fetch_AlgorithmArg arg - // ) { - // origin.getValue().toUpperCase() = name and - // AlgorithmStringToFetchFlow::flow(DataFlow::exprNode(origin), DataFlow::exprNode(arg)) - // } - // /** - // * HKDF key derivation algorithm. - // */ - // class HKDF extends KeyDerivationAlgorithm, Crypto::HKDF { - // KDFAlgorithmStringLiteral origin; - // EVP_KDF_fetch_AlgorithmArg instance; - // HKDF() { - // this = Crypto::TKeyDerivationAlgorithm(instance) and - // algorithmStringToKDFFetchArgFlow("HKDF", origin, instance) - // } - // override string getRawAlgorithmName() { result = origin.getValue() } - // override Crypto::HashAlgorithm getHashAlgorithm() { none() } - // override Crypto::LocatableElement getOrigin(string name) { - // result = origin and name = origin.toString() - // } - // override Expr getInstance() { result = origin } - // } - // /** - // * PBKDF2 key derivation algorithm. - // */ - // class PBKDF2 extends KeyDerivationAlgorithm, Crypto::PBKDF2 { - // KDFAlgorithmStringLiteral origin; - // EVP_KDF_fetch_AlgorithmArg instance; - // PBKDF2() { - // this = Crypto::TKeyDerivationAlgorithm(instance) and - // algorithmStringToKDFFetchArgFlow("PBKDF2", origin, instance) - // } - // override string getRawAlgorithmName() { result = origin.getValue() } - // override string getIterationCount(Location location) { none() } // TODO - // override string getKeyLength(Location location) { none() } // TODO - // override Crypto::HashAlgorithm getHashAlgorithm() { none() } // TODO - // override Crypto::LocatableElement getOrigin(string name) { - // result = origin and name = origin.toString() - // } - // override Expr getInstance() { result = instance } - // } - // /** - // * PKCS12KDF key derivation algorithm. - // */ - // class PKCS12KDF extends KeyDerivationAlgorithm, Crypto::PKCS12KDF { - // KDFAlgorithmStringLiteral origin; - // EVP_KDF_fetch_AlgorithmArg instance; - // PKCS12KDF() { - // this = Crypto::TKeyDerivationAlgorithm(instance) and - // algorithmStringToKDFFetchArgFlow("PKCS12KDF", origin, instance) - // } - // override string getRawAlgorithmName() { result = origin.getValue() } - // override string getIterationCount(Location location) { none() } // TODO - // override string getIDByte(Location location) { none() } // TODO - // override Crypto::HashAlgorithm getHashAlgorithm() { none() } // TODO - // override Crypto::LocatableElement getOrigin(string name) { - // result = origin and name = origin.toString() - // } - // override Expr getInstance() { result = instance } - // } + import experimental.Quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances + import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers + import experimental.Quantum.OpenSSL.Operations.OpenSSLOperations } From c08525ad81b4bd600661e002bc1624fbc2024d66 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 2 May 2025 14:07:13 -0400 Subject: [PATCH 262/656] Additional cleanup --- cpp/ql/lib/experimental/Quantum/Language.qll | 8 -------- 1 file changed, 8 deletions(-) diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index 7e1857cc68a..2d076a1323c 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -112,12 +112,4 @@ module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { module ArtifactUniversalFlow = DataFlow::Global; -// abstract class CipherOutputArtifact extends Crypto::KeyOperationOutputArtifactInstance { -// override predicate flowsTo(Crypto::FlowAwareElement other) { -// ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) -// } -// } -// // final override predicate flowsTo(FlowAwareElement other) { -// // Input::artifactOutputFlowsToGenericInput(this.getOutputNode(), other.getInputNode()) -// // } import OpenSSL.OpenSSL From 7481de75cbe4d0fa0180e32d1eeddae6a41415e8 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 2 May 2025 14:07:38 -0400 Subject: [PATCH 263/656] Updating the model to infer implicit cipher key sizes. --- .../codeql/cryptography/Model.qll | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index a7938b1d1ce..8fcc304e9ef 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -582,6 +582,28 @@ module CryptographyBase Input> { } } + predicate fixedImplicitCipherKeySize(TAlgorithm type, int size) { + type = TSymmetricCipher(DES()) and size = 56 + or + type = TSymmetricCipher(DESX()) and size = 184 + or + type = TSymmetricCipher(DoubleDES()) and size = 112 + or + type = TSymmetricCipher(TripleDES()) and size = 168 + or + type = TSymmetricCipher(CHACHA20()) and size = 256 + or + type = TSymmetricCipher(IDEA()) and size = 128 + or + type = TSymmetricCipher(KUZNYECHIK()) and size = 256 + or + type = TSymmetricCipher(MAGMA()) and size = 256 + or + type = TSymmetricCipher(SM4()) and size = 128 + or + type = TSymmetricCipher(SEED()) and size = 128 + } + bindingset[type] predicate symmetric_cipher_to_name_and_structure( TSymmetricCipherType type, string name, CipherStructureType s @@ -790,6 +812,10 @@ module CryptographyBase Input> { * If a specific key size is unknown, this predicate should be implemented as `none()`. * * If the algorithm accepts a range of key sizes without a particular one specified, this predicate should be implemented as `none()`. + * + * NOTE: if the algorithm has a single key size, the implicit key size does not need to be modeled. + * This will be automatically inferred and applied at the node level. + * See `fixedImplicitCipherKeySize`. */ abstract string getKeySizeFixed(); @@ -2178,7 +2204,14 @@ module CryptographyBase Input> { /** * Gets the key size variant of this algorithm in bits, e.g., 128 for "AES-128". */ - string getKeySizeFixed() { result = instance.asAlg().getKeySizeFixed() } // TODO: key sizes for known algorithms + string getKeySizeFixed() { + result = instance.asAlg().getKeySizeFixed() + or + exists(int size | + KeyOpAlg::fixedImplicitCipherKeySize(instance.asAlg().getAlgorithmType(), size) and + result = size.toString() + ) + } /** * Gets the key size generic source node. From 09d473674b060b748cfb0e1b65e4c6bd526169a0 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 2 May 2025 14:10:38 -0400 Subject: [PATCH 264/656] Working refactor for cipher, padding, block mode. Still haven't completed connecting padding to algorithm instances if through a set padding interface. --- .../AlgorithmInstances/AlgToAVCFlow.qll | 170 ++++++++ .../BlockAlgorithmInstance.qll | 76 ++++ .../CipherAlgorithmInstance.qll | 129 ++++++ .../KnownAlgorithmConstants.qll} | 401 ++++++++++++------ .../OpenSSLAlgorithmInstanceBase.qll | 6 + .../OpenSSLAlgorithmInstances.qll | 4 + .../PaddingAlgorithmInstance.qll | 167 ++++++++ .../CipherAlgorithmValueConsumer.qll | 39 ++ .../DirectAlgorithmValueConsumer.qll | 36 ++ .../OpenSSLAlgorithmValueConsumerBase.qll | 9 + .../OpenSSLAlgorithmValueConsumers.qll | 4 + .../PaddingAlgorithmValueConsumer.qll | 36 ++ .../Operations/EVPCipherInitializer.qll | 123 ++++++ .../OpenSSL/Operations/EVPCipherOperation.qll | 114 +++++ .../Operations/OpenSSLOperationBase.qll | 21 + .../OpenSSL/Operations/OpenSSLOperations.qll | 1 + 16 files changed, 1205 insertions(+), 131 deletions(-) create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll rename cpp/ql/lib/experimental/Quantum/OpenSSL/{OpenSSLKnownAlgorithmConstants.qll => AlgorithmInstances/KnownAlgorithmConstants.qll} (90%) create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherInitializer.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperationBase.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperations.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll new file mode 100644 index 00000000000..25cdea6accf --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll @@ -0,0 +1,170 @@ +import cpp +import semmle.code.cpp.dataflow.new.DataFlow +import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers // import all known alg value consummers + +/** + * Traces 'known algorithms' to AVCs, specifically + * algorithms that are in the set of known algorithm constants. + * Padding-specific consumers exist that have their own values that + * overlap with the known algorithm constants. + * Padding consumers (specific padding consumers) are excluded from the set of sinks. + */ +module KnownOpenSSLAlgorithmToAlgorithmValueConsumerConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source.asExpr() instanceof KnownOpenSSLAlgorithmConstant + } + + predicate isSink(DataFlow::Node sink) { + exists(OpenSSLAlgorithmValueConsumer c | + c.getInputNode() = sink and + not c instanceof PaddingAlgorithmValueConsumer + ) + } + + predicate isBarrier(DataFlow::Node node) { + // False positive reducer, don't flow out through argv + exists(VariableAccess va, Variable v | + v.getAnAccess() = va and va = node.asExpr() + or + va = node.asIndirectExpr() + | + v.getName().matches("%argv") + ) + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + knownPassThroughStep(node1, node2) + } +} + +module KnownOpenSSLAlgorithmToAlgorithmValueConsumerFlow = + DataFlow::Global; + +module RSAPaddingAlgorithmToPaddingAlgorithmValueConsumerConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source.asExpr() instanceof KnownOpenSSLAlgorithmConstant + } + + predicate isSink(DataFlow::Node sink) { + exists(PaddingAlgorithmValueConsumer c | c.getInputNode() = sink) + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + knownPassThroughStep(node1, node2) + } +} + +module RSAPaddingAlgorithmToPaddingAlgorithmValueConsumerFlow = + DataFlow::Global; + +class OpenSSLAlgorithmAdditionalFlowStep extends AdditionalFlowInputStep { + OpenSSLAlgorithmAdditionalFlowStep() { exists(AlgorithmPassthroughCall c | c.getInNode() = this) } + + override DataFlow::Node getOutput() { + exists(AlgorithmPassthroughCall c | c.getInNode() = this and c.getOutNode() = result) + } +} + +abstract class AlgorithmPassthroughCall extends Call { + abstract DataFlow::Node getInNode(); + + abstract DataFlow::Node getOutNode(); +} + +class CopyAndDupAlgorithmPassthroughCall extends AlgorithmPassthroughCall { + DataFlow::Node inNode; + DataFlow::Node outNode; + + CopyAndDupAlgorithmPassthroughCall() { + // Flow out through any return or other argument of the same type + // Assume flow in and out is asIndirectExpr or asDefinitingArgument since a pointer is assumed + // to be involved + // NOTE: not attempting to detect openssl specific copy/dup functions, but anything suspected to be copy/dup + this.getTarget().getName().toLowerCase().matches(["%_dup%", "%_copy%"]) and + exists(Expr inArg, Type t | + inArg = this.getAnArgument() and t = inArg.getUnspecifiedType().stripType() + | + inNode.asIndirectExpr() = inArg and + ( + // Case 1: flow through another argument as an out arg of the same type + exists(Expr outArg | + outArg = this.getAnArgument() and + outArg != inArg and + outArg.getUnspecifiedType().stripType() = t + | + outNode.asDefiningArgument() = outArg + ) + or + // Case 2: flow through the return value if the result is the same as the intput type + exists(Expr outArg | outArg = this and outArg.getUnspecifiedType().stripType() = t | + outNode.asIndirectExpr() = outArg + ) + ) + ) + } + + override DataFlow::Node getInNode() { result = inNode } + + override DataFlow::Node getOutNode() { result = outNode } +} + +class NIDToPointerPassthroughCall extends AlgorithmPassthroughCall { + DataFlow::Node inNode; + DataFlow::Node outNode; + + NIDToPointerPassthroughCall() { + this.getTarget().getName() in ["OBJ_nid2obj", "OBJ_nid2ln", "OBJ_nid2sn"] and + inNode.asExpr() = this.getArgument(0) and + outNode.asExpr() = this + //outNode.asIndirectExpr() = this + } + + override DataFlow::Node getInNode() { result = inNode } + + override DataFlow::Node getOutNode() { result = outNode } +} + +class PointerToPointerPassthroughCall extends AlgorithmPassthroughCall { + DataFlow::Node inNode; + DataFlow::Node outNode; + + PointerToPointerPassthroughCall() { + this.getTarget().getName() = "OBJ_txt2obj" and + inNode.asIndirectExpr() = this.getArgument(0) and + outNode.asIndirectExpr() = this + or + //outNode.asExpr() = this + this.getTarget().getName() in ["OBJ_obj2txt", "i2t_ASN1_OBJECT"] and + inNode.asIndirectExpr() = this.getArgument(2) and + outNode.asDefiningArgument() = this.getArgument(0) + } + + override DataFlow::Node getInNode() { result = inNode } + + override DataFlow::Node getOutNode() { result = outNode } +} + +class PointerToNIDPassthroughCall extends AlgorithmPassthroughCall { + DataFlow::Node inNode; + DataFlow::Node outNode; + + PointerToNIDPassthroughCall() { + this.getTarget().getName() in ["OBJ_obj2nid", "OBJ_ln2nid", "OBJ_sn2nid", "OBJ_txt2nid"] and + ( + inNode.asIndirectExpr() = this.getArgument(0) + or + inNode.asExpr() = this.getArgument(0) + ) and + outNode.asExpr() = this + } + + override DataFlow::Node getInNode() { result = inNode } + + override DataFlow::Node getOutNode() { result = outNode } +} + +// TODO: pkeys pass through EVP_PKEY_CTX_new and any similar variant +predicate knownPassThroughStep(DataFlow::Node node1, DataFlow::Node node2) { + exists(AlgorithmPassthroughCall c | c.getInNode() = node1 and c.getOutNode() = node2) +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll new file mode 100644 index 00000000000..1e17c64f34c --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll @@ -0,0 +1,76 @@ +import cpp +import experimental.Quantum.Language +import OpenSSLAlgorithmInstanceBase +import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer +import AlgToAVCFlow + +/** + * Given a `KnownOpenSSLBlockModeAlgorithmConstant`, converts this to a block family type. + * Does not bind if there is know mapping (no mapping to 'unknown' or 'other'). + */ +predicate knownOpenSSLConstantToBlockModeFamilyType( + KnownOpenSSLBlockModeAlgorithmConstant e, Crypto::TBlockCipherModeOfOperationType type +) { + exists(string name | + name = e.getNormalizedName() and + ( + name.matches("CBC") and type instanceof Crypto::CBC + or + name.matches("CFB%") and type instanceof Crypto::CFB + or + name.matches("CTR") and type instanceof Crypto::CTR + or + name.matches("GCM") and type instanceof Crypto::GCM + or + name.matches("OFB") and type instanceof Crypto::OFB + or + name.matches("XTS") and type instanceof Crypto::XTS + or + name.matches("CCM") and type instanceof Crypto::CCM + or + name.matches("GCM") and type instanceof Crypto::GCM + or + name.matches("CCM") and type instanceof Crypto::CCM + or + name.matches("ECB") and type instanceof Crypto::ECB + ) + ) +} + +class KnownOpenSSLBlockModeConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, + Crypto::ModeOfOperationAlgorithmInstance instanceof KnownOpenSSLBlockModeAlgorithmConstant +{ + OpenSSLAlgorithmValueConsumer getterCall; + + KnownOpenSSLBlockModeConstantAlgorithmInstance() { + // Two possibilities: + // 1) The source is a literal and flows to a getter, then we know we have an instance + // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that + // Possibility 1: + this instanceof Literal and + exists(DataFlow::Node src, DataFlow::Node sink | + // Sink is an argument to a CipherGetterCall + sink = getterCall.(OpenSSLAlgorithmValueConsumer).getInputNode() and + // Source is `this` + src.asExpr() = this and + // This traces to a getter + KnownOpenSSLAlgorithmToAlgorithmValueConsumerFlow::flow(src, sink) + ) + or + // Possibility 2: + this instanceof DirectAlgorithmValueConsumer and getterCall = this + } + + override Crypto::TBlockCipherModeOfOperationType getModeType() { + knownOpenSSLConstantToBlockModeFamilyType(this, result) + or + not knownOpenSSLConstantToBlockModeFamilyType(this, _) and result = Crypto::OtherMode() + } + + // NOTE: I'm not going to attempt to parse out the mode specific part, so returning + // the same as the raw name for now. + override string getRawModeAlgorithmName() { result = this.(Literal).getValue().toString() } + + override OpenSSLAlgorithmValueConsumer getAVC() { result = getterCall } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll new file mode 100644 index 00000000000..03f2643d46d --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll @@ -0,0 +1,129 @@ +import cpp +import experimental.Quantum.Language +import KnownAlgorithmConstants +import Crypto::KeyOpAlg as KeyOpAlg +import OpenSSLAlgorithmInstanceBase +import PaddingAlgorithmInstance +import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +import AlgToAVCFlow +import BlockAlgorithmInstance + +/** + * Given a `KnownOpenSSLCipherAlgorithmConstant`, converts this to a cipher family type. + * Does not bind if there is know mapping (no mapping to 'unknown' or 'other'). + */ +predicate knownOpenSSLConstantToCipherFamilyType( + KnownOpenSSLCipherAlgorithmConstant e, Crypto::KeyOpAlg::TAlgorithm type +) { + exists(string name | + name = e.getNormalizedName() and + ( + name.matches("AES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::AES()) + or + name.matches("ARIA%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::ARIA()) + or + name.matches("BLOWFISH%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::BLOWFISH()) + or + name.matches("BF%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::BLOWFISH()) + or + name.matches("CAMELLIA%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::CAMELLIA()) + or + name.matches("CHACHA20%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::CHACHA20()) + or + name.matches("CAST5%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::CAST5()) + or + name.matches("2DES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DoubleDES()) + or + name.matches("3DES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::TripleDES()) + or + name.matches("DES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DES()) + or + name.matches("DESX%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DESX()) + or + name.matches("GOST%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::GOST()) + or + name.matches("IDEA%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::IDEA()) + or + name.matches("KUZNYECHIK%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::KUZNYECHIK()) + or + name.matches("MAGMA%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::MAGMA()) + or + name.matches("RC2%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC2()) + or + name.matches("RC4%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC4()) + or + name.matches("RC5%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC5()) + or + name.matches("RSA%") and type = KeyOpAlg::TAsymmetricCipher(KeyOpAlg::RSA()) + or + name.matches("SEED%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::SEED()) + or + name.matches("SM4%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::SM4()) + ) + ) +} + +class KnownOpenSSLCipherConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, + Crypto::KeyOperationAlgorithmInstance instanceof KnownOpenSSLCipherAlgorithmConstant +{ + //OpenSSLAlgorithmInstance, + OpenSSLAlgorithmValueConsumer getterCall; + + KnownOpenSSLCipherConstantAlgorithmInstance() { + ( + // Two possibilities: + // 1) The source is a literal and flows to a getter, then we know we have an instance + // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that + // Possibility 1: + this instanceof Literal and + exists(DataFlow::Node src, DataFlow::Node sink | + // Sink is an argument to a CipherGetterCall + sink = getterCall.(OpenSSLAlgorithmValueConsumer).getInputNode() and + // Source is `this` + src.asExpr() = this and + // This traces to a getter + KnownOpenSSLAlgorithmToAlgorithmValueConsumerFlow::flow(src, sink) + ) + or + // Possibility 2: + this instanceof DirectAlgorithmValueConsumer and getterCall = this + ) + } + + override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { + // if there is a block mode associated with the same element, then that's the block mode + // note, if none are associated, we may need to parse if the cipher is a block cipher + // to determine if this is an unknown vs not relevant. + result = this + } + + override Crypto::PaddingAlgorithmInstance getPaddingAlgorithm() { + //TODO: the padding is either self, or it flows through getter ctx to a set padding call + // like EVP_PKEY_CTX_set_rsa_padding + result = this + // or trace through getter ctx to set padding + } + + override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } + + override string getKeySizeFixed() { + exists(int keySize | + this.(KnownOpenSSLCipherAlgorithmConstant).getExplicitKeySize() = keySize and + result = keySize.toString() + ) + } + + override Crypto::KeyOpAlg::Algorithm getAlgorithmType() { + knownOpenSSLConstantToCipherFamilyType(this, result) + or + not knownOpenSSLConstantToCipherFamilyType(this, _) and + result = Crypto::KeyOpAlg::TUnknownKeyOperationAlgorithmType() + } + + override OpenSSLAlgorithmValueConsumer getAVC() { result = getterCall } + + override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { + // TODO: trace to any key size initializer, symmetric and asymmetric + none() + } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll similarity index 90% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll rename to cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index 0d328e287f6..80bd6b422da 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLKnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -1,5 +1,5 @@ import cpp -import LibraryDetector +import experimental.Quantum.OpenSSL.LibraryDetector class KnownOpenSSLAlgorithmConstant extends Expr { string normalizedName; @@ -16,6 +16,28 @@ class KnownOpenSSLAlgorithmConstant extends Expr { string getAlgType() { result = algType } } +class KnownOpenSSLCipherAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { + KnownOpenSSLCipherAlgorithmConstant() { + this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("%encryption") + } + + int getExplicitKeySize() { + result = this.getNormalizedName().regexpCapture(".*-(\\d*)", 1).toInt() + } +} + +class KnownOpenSSLPaddingAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { + KnownOpenSSLPaddingAlgorithmConstant() { + this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("%padding") + } +} + +class KnownOpenSSLBlockModeAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { + KnownOpenSSLBlockModeAlgorithmConstant() { + this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("block_mode") + } +} + /** * Resolves a call to a 'direct algorithm getter', e.g., EVP_MD5() * This approach to fetching algorithms was used in OpenSSL 1.0.2. @@ -222,9 +244,9 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "gost2001" and nid = 811 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" or - name = "gost2012_256" and nid = 979 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + name = "gost2012_256" and nid = 979 and normalized = "GOST" and algType = "HASH" // TODO: Verify algorithm type or - name = "gost2012_512" and nid = 980 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" + name = "gost2012_512" and nid = 980 and normalized = "GOST" and algType = "HASH" // TODO: Verify algorithm type or name = "ed25519" and nid = 1087 and normalized = "ED25519" and algType = "ELLIPTIC_CURVE" or @@ -276,159 +298,222 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "sm3" and nid = 1143 and normalized = "SM3" and algType = "HASH" or - name = "aes-128-cbc" and nid = 419 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-cbc" and nid = 419 and normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-cbc" and nid = 419 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aes-128-ecb" and nid = 418 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-ecb" and nid = 418 and normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-ecb" and nid = 418 and normalized = "ECB" and algType = "BLOCK_MODE" or - name = "aes-192-cbc" and nid = 423 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-cbc" and nid = 423 and normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-cbc" and nid = 423 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aes-192-ecb" and nid = 422 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-ecb" and nid = 422 and normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-ecb" and nid = 422 and normalized = "ECB" and algType = "BLOCK_MODE" or - name = "aes-256-cbc" and nid = 427 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-cbc" and nid = 427 and normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-cbc" and nid = 427 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aes-256-ecb" and nid = 426 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-ecb" and nid = 426 and normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-ecb" and nid = 426 and normalized = "ECB" and algType = "BLOCK_MODE" or name = "aria-128-cbc" and nid = 1066 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aria-128-cbc" and nid = 1066 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-cbc" and + nid = 1066 and + normalized = "ARIA-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-cfb" and nid = 1067 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aria-128-cfb" and nid = 1067 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-cfb" and + nid = 1067 and + normalized = "ARIA-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-ctr" and nid = 1069 and normalized = "CTR" and algType = "BLOCK_MODE" or - name = "aria-128-ctr" and nid = 1069 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-ctr" and + nid = 1069 and + normalized = "ARIA-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-ecb" and nid = 1065 and normalized = "ECB" and algType = "BLOCK_MODE" or - name = "aria-128-ecb" and nid = 1065 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-ecb" and + nid = 1065 and + normalized = "ARIA-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-ofb" and nid = 1068 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "aria-128-ofb" and nid = 1068 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-ofb" and + nid = 1068 and + normalized = "ARIA-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-cfb1" and nid = 1080 and normalized = "CFB1" and algType = "BLOCK_MODE" or - name = "aria-128-cfb1" and nid = 1080 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-cfb1" and + nid = 1080 and + normalized = "ARIA-128" and + algType = "SYMMETRIC_ENCRYPTION" or - name = "aria-128-cfb8" and nid = 1083 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-cfb8" and + nid = 1083 and + normalized = "ARIA-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-cfb8" and nid = 1083 and normalized = "CFB8" and algType = "BLOCK_MODE" or name = "aria-192-cbc" and nid = 1071 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aria-192-cbc" and nid = 1071 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-cbc" and + nid = 1071 and + normalized = "ARIA-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-cfb" and nid = 1072 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aria-192-cfb" and nid = 1072 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-cfb" and + nid = 1072 and + normalized = "ARIA-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-ctr" and nid = 1074 and normalized = "CTR" and algType = "BLOCK_MODE" or - name = "aria-192-ctr" and nid = 1074 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-ctr" and + nid = 1074 and + normalized = "ARIA-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-ecb" and nid = 1070 and normalized = "ECB" and algType = "BLOCK_MODE" or - name = "aria-192-ecb" and nid = 1070 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-ecb" and + nid = 1070 and + normalized = "ARIA-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-ofb" and nid = 1073 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "aria-192-ofb" and nid = 1073 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-ofb" and + nid = 1073 and + normalized = "ARIA-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-cfb1" and nid = 1081 and normalized = "CFB1" and algType = "BLOCK_MODE" or - name = "aria-192-cfb1" and nid = 1081 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-cfb1" and + nid = 1081 and + normalized = "ARIA-192" and + algType = "SYMMETRIC_ENCRYPTION" or - name = "aria-192-cfb8" and nid = 1084 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-cfb8" and + nid = 1084 and + normalized = "ARIA-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-cfb8" and nid = 1084 and normalized = "CFB8" and algType = "BLOCK_MODE" or name = "aria-256-cbc" and nid = 1076 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aria-256-cbc" and nid = 1076 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-cbc" and + nid = 1076 and + normalized = "ARIA-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-cfb" and nid = 1077 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aria-256-cfb" and nid = 1077 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-cfb" and + nid = 1077 and + normalized = "ARIA-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-ctr" and nid = 1079 and normalized = "CTR" and algType = "BLOCK_MODE" or - name = "aria-256-ctr" and nid = 1079 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-ctr" and + nid = 1079 and + normalized = "ARIA-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-ecb" and nid = 1075 and normalized = "ECB" and algType = "BLOCK_MODE" or - name = "aria-256-ecb" and nid = 1075 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-ecb" and + nid = 1075 and + normalized = "ARIA-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-ofb" and nid = 1078 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "aria-256-ofb" and nid = 1078 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-ofb" and + nid = 1078 and + normalized = "ARIA-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-cfb1" and nid = 1082 and normalized = "CFB1" and algType = "BLOCK_MODE" or - name = "aria-256-cfb1" and nid = 1082 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-cfb1" and + nid = 1082 and + normalized = "ARIA-256" and + algType = "SYMMETRIC_ENCRYPTION" or - name = "aria-256-cfb8" and nid = 1085 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-cfb8" and + nid = 1085 and + normalized = "ARIA-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-cfb8" and nid = 1085 and normalized = "CFB8" and algType = "BLOCK_MODE" or name = "camellia-128-cbc" and nid = 751 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-128-cbc" and nid = 751 and normalized = "CBC" and algType = "BLOCK_MODE" or name = "camellia-128-ecb" and nid = 754 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-128-ecb" and nid = 754 and normalized = "ECB" and algType = "BLOCK_MODE" or name = "camellia-192-cbc" and nid = 752 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-192-cbc" and nid = 752 and normalized = "CBC" and algType = "BLOCK_MODE" or name = "camellia-192-ecb" and nid = 755 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-192-ecb" and nid = 755 and normalized = "ECB" and algType = "BLOCK_MODE" or name = "camellia-256-cbc" and nid = 753 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-256-cbc" and nid = 753 and normalized = "CBC" and algType = "BLOCK_MODE" or name = "camellia-256-ecb" and nid = 756 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-256-ecb" and nid = 756 and normalized = "ECB" and algType = "BLOCK_MODE" or name = "rc4" and nid = 5 and normalized = "RC4" and algType = "SYMMETRIC_ENCRYPTION" or - name = "rc4-40" and nid = 97 and normalized = "RC4" and algType = "SYMMETRIC_ENCRYPTION" + name = "rc4-40" and nid = 97 and normalized = "RC4-40" and algType = "SYMMETRIC_ENCRYPTION" or name = "des-ecb" and nid = 29 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" or @@ -510,7 +595,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "seed-ofb" and nid = 778 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "rc2-cbc" and nid = 37 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + name = "rc2-cbc" and nid = 37 and normalized = "RC2-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "rc2-cbc" and nid = 37 and normalized = "CBC" and algType = "BLOCK_MODE" or @@ -526,11 +611,11 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "rc2-ofb" and nid = 40 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "rc2-64-cbc" and nid = 166 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + name = "rc2-64-cbc" and nid = 166 and normalized = "RC2-64" and algType = "SYMMETRIC_ENCRYPTION" or name = "rc2-64-cbc" and nid = 166 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "rc2-40-cbc" and nid = 98 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + name = "rc2-40-cbc" and nid = 98 and normalized = "RC2-40" and algType = "SYMMETRIC_ENCRYPTION" or name = "rc2-40-cbc" and nid = 98 and normalized = "CBC" and algType = "BLOCK_MODE" or @@ -586,7 +671,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "sm4-ctr" and nid = 1139 and normalized = "CTR" and algType = "BLOCK_MODE" or - name = "aes-128-gcm" and nid = 895 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-gcm" and nid = 895 and normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-gcm" and nid = 895 and normalized = "GCM" and algType = "BLOCK_MODE" or @@ -604,32 +689,32 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "id-aes128-wrap" and nid = 788 and - normalized = "AES128" and + normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes192-wrap" and nid = 789 and - normalized = "AES192" and + normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes256-wrap" and nid = 790 and - normalized = "AES256" and + normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes128-wrap-pad" and nid = 897 and - normalized = "AES128" and + normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes192-wrap-pad" and nid = 900 and - normalized = "AES192" and + normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes256-wrap-pad" and nid = 903 and - normalized = "AES256" and + normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "chacha20" and nid = 1019 and normalized = "CHACHA20" and algType = "SYMMETRIC_ENCRYPTION" @@ -738,7 +823,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "pkcs5" and nid = 187 and normalized = "PKCS5" and algType = "KEY_DERIVATION" or - name = "aes-256-gcm" and nid = 901 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-gcm" and nid = 901 and normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-gcm" and nid = 901 and normalized = "GCM" and algType = "BLOCK_MODE" or @@ -775,53 +860,71 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "id-alg-dh-sig-hmac-sha1" and nid = 325 and normalized = "SHA1" and algType = "HASH" or - name = "aes-128-ofb" and nid = 420 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-ofb" and nid = 420 and normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-ofb" and nid = 420 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "aes-128-cfb" and nid = 421 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-cfb" and nid = 421 and normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-cfb" and nid = 421 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aes-192-ofb" and nid = 424 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-ofb" and nid = 424 and normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-ofb" and nid = 424 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "aes-192-cfb" and nid = 425 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-cfb" and nid = 425 and normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-cfb" and nid = 425 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aes-256-ofb" and nid = 428 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-ofb" and nid = 428 and normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-ofb" and nid = 428 and normalized = "OFB" and algType = "BLOCK_MODE" or - name = "aes-256-cfb" and nid = 429 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-cfb" and nid = 429 and normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-cfb" and nid = 429 and normalized = "CFB" and algType = "BLOCK_MODE" or name = "des-cdmf" and nid = 643 and normalized = "DES" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aes-128-cfb1" and nid = 650 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-cfb1" and + nid = 650 and + normalized = "AES-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-cfb1" and nid = 650 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aes-192-cfb1" and nid = 651 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-cfb1" and + nid = 651 and + normalized = "AES-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-cfb1" and nid = 651 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aes-256-cfb1" and nid = 652 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-cfb1" and + nid = 652 and + normalized = "AES-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-cfb1" and nid = 652 and normalized = "CFB" and algType = "BLOCK_MODE" or - name = "aes-128-cfb8" and nid = 653 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-cfb8" and + nid = 653 and + normalized = "AES-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-cfb8" and nid = 653 and normalized = "CFB8" and algType = "BLOCK_MODE" or - name = "aes-192-cfb8" and nid = 654 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-cfb8" and + nid = 654 and + normalized = "AES-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-cfb8" and nid = 654 and normalized = "CFB8" and algType = "BLOCK_MODE" or - name = "aes-256-cfb8" and nid = 655 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-cfb8" and + nid = 655 and + normalized = "AES-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-cfb8" and nid = 655 and normalized = "CFB8" and algType = "BLOCK_MODE" or @@ -851,84 +954,84 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "camellia-128-cfb" and nid = 757 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-128-cfb" and nid = 757 and normalized = "CFB" and algType = "BLOCK_MODE" or name = "camellia-192-cfb" and nid = 758 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-192-cfb" and nid = 758 and normalized = "CFB" and algType = "BLOCK_MODE" or name = "camellia-256-cfb" and nid = 759 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-256-cfb" and nid = 759 and normalized = "CFB" and algType = "BLOCK_MODE" or name = "camellia-128-cfb1" and nid = 760 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-128-cfb1" and nid = 760 and normalized = "CFB" and algType = "BLOCK_MODE" or name = "camellia-192-cfb1" and nid = 761 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-192-cfb1" and nid = 761 and normalized = "CFB" and algType = "BLOCK_MODE" or name = "camellia-256-cfb1" and nid = 762 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-256-cfb1" and nid = 762 and normalized = "CFB" and algType = "BLOCK_MODE" or name = "camellia-128-cfb8" and nid = 763 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-128-cfb8" and nid = 763 and normalized = "CFB8" and algType = "BLOCK_MODE" or name = "camellia-192-cfb8" and nid = 764 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-192-cfb8" and nid = 764 and normalized = "CFB8" and algType = "BLOCK_MODE" or name = "camellia-256-cfb8" and nid = 765 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-256-cfb8" and nid = 765 and normalized = "CFB8" and algType = "BLOCK_MODE" or name = "camellia-128-ofb" and nid = 766 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-128-ofb" and nid = 766 and normalized = "OFB" and algType = "BLOCK_MODE" or name = "camellia-192-ofb" and nid = 767 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-192-ofb" and nid = 767 and normalized = "OFB" and algType = "BLOCK_MODE" or name = "camellia-256-ofb" and nid = 768 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-256-ofb" and nid = 768 and normalized = "OFB" and algType = "BLOCK_MODE" @@ -956,56 +1059,56 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "gost2001cc" and nid = 851 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aes-128-ccm" and nid = 896 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-ccm" and nid = 896 and normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-ccm" and nid = 896 and normalized = "CCM" and algType = "BLOCK_MODE" or - name = "aes-192-gcm" and nid = 898 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-gcm" and nid = 898 and normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-gcm" and nid = 898 and normalized = "GCM" and algType = "BLOCK_MODE" or - name = "aes-192-ccm" and nid = 899 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-ccm" and nid = 899 and normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-ccm" and nid = 899 and normalized = "CCM" and algType = "BLOCK_MODE" or - name = "aes-256-ccm" and nid = 902 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-ccm" and nid = 902 and normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-ccm" and nid = 902 and normalized = "CCM" and algType = "BLOCK_MODE" or - name = "aes-128-ctr" and nid = 904 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-ctr" and nid = 904 and normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-ctr" and nid = 904 and normalized = "CTR" and algType = "BLOCK_MODE" or - name = "aes-192-ctr" and nid = 905 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-ctr" and nid = 905 and normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-ctr" and nid = 905 and normalized = "CTR" and algType = "BLOCK_MODE" or - name = "aes-256-ctr" and nid = 906 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-ctr" and nid = 906 and normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-ctr" and nid = 906 and normalized = "CTR" and algType = "BLOCK_MODE" or name = "id-camellia128-wrap" and nid = 907 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-camellia192-wrap" and nid = 908 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-camellia256-wrap" and nid = 909 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "mgf1" and nid = 911 and normalized = "MGF1" and algType = "HASH" or - name = "aes-128-xts" and nid = 913 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-xts" and nid = 913 and normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-xts" and nid = 913 and normalized = "XTS" and algType = "BLOCK_MODE" or - name = "aes-256-xts" and nid = 914 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-xts" and nid = 914 and normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-xts" and nid = 914 and normalized = "XTS" and algType = "BLOCK_MODE" or @@ -1017,7 +1120,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aes-128-cbc-hmac-sha1" and nid = 916 and - normalized = "AES128" and + normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-cbc-hmac-sha1" and nid = 916 and normalized = "CBC" and algType = "BLOCK_MODE" @@ -1026,14 +1129,14 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aes-192-cbc-hmac-sha1" and nid = 917 and - normalized = "AES192" and + normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-cbc-hmac-sha1" and nid = 917 and normalized = "CBC" and algType = "BLOCK_MODE" or name = "aes-256-cbc-hmac-sha1" and nid = 918 and - normalized = "AES256" and + normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-cbc-hmac-sha1" and nid = 918 and normalized = "CBC" and algType = "BLOCK_MODE" @@ -1042,7 +1145,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aes-128-cbc-hmac-sha256" and nid = 948 and - normalized = "AES128" and + normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-cbc-hmac-sha256" and nid = 948 and normalized = "CBC" and algType = "BLOCK_MODE" @@ -1051,7 +1154,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aes-192-cbc-hmac-sha256" and nid = 949 and - normalized = "AES192" and + normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-cbc-hmac-sha256" and nid = 949 and normalized = "CBC" and algType = "BLOCK_MODE" @@ -1060,93 +1163,93 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aes-256-cbc-hmac-sha256" and nid = 950 and - normalized = "AES256" and + normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-cbc-hmac-sha256" and nid = 950 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aes-128-ocb" and nid = 958 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-ocb" and nid = 958 and normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aes-192-ocb" and nid = 959 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-ocb" and nid = 959 and normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aes-256-ocb" and nid = 960 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-ocb" and nid = 960 and normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-128-gcm" and nid = 961 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-128-gcm" and nid = 961 and normalized = "GCM" and algType = "BLOCK_MODE" or name = "camellia-128-ccm" and nid = 962 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-128-ccm" and nid = 962 and normalized = "CCM" and algType = "BLOCK_MODE" or name = "camellia-128-ctr" and nid = 963 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-128-ctr" and nid = 963 and normalized = "CTR" and algType = "BLOCK_MODE" or name = "camellia-128-cmac" and nid = 964 and - normalized = "CAMELLIA128" and + normalized = "CAMELLIA-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-192-gcm" and nid = 965 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-192-gcm" and nid = 965 and normalized = "GCM" and algType = "BLOCK_MODE" or name = "camellia-192-ccm" and nid = 966 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-192-ccm" and nid = 966 and normalized = "CCM" and algType = "BLOCK_MODE" or name = "camellia-192-ctr" and nid = 967 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-192-ctr" and nid = 967 and normalized = "CTR" and algType = "BLOCK_MODE" or name = "camellia-192-cmac" and nid = 968 and - normalized = "CAMELLIA192" and + normalized = "CAMELLIA-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-256-gcm" and nid = 969 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-256-gcm" and nid = 969 and normalized = "GCM" and algType = "BLOCK_MODE" or name = "camellia-256-ccm" and nid = 970 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-256-ccm" and nid = 970 and normalized = "CCM" and algType = "BLOCK_MODE" or name = "camellia-256-ctr" and nid = 971 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "camellia-256-ctr" and nid = 971 and normalized = "CTR" and algType = "BLOCK_MODE" or name = "camellia-256-cmac" and nid = 972 and - normalized = "CAMELLIA256" and + normalized = "CAMELLIA-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-scrypt" and nid = 973 and normalized = "SCRYPT" and algType = "KEY_DERIVATION" @@ -1386,27 +1489,45 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aria-128-ccm" and nid = 1120 and normalized = "CCM" and algType = "BLOCK_MODE" or - name = "aria-128-ccm" and nid = 1120 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-ccm" and + nid = 1120 and + normalized = "ARIA-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-ccm" and nid = 1121 and normalized = "CCM" and algType = "BLOCK_MODE" or - name = "aria-192-ccm" and nid = 1121 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-ccm" and + nid = 1121 and + normalized = "ARIA-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-ccm" and nid = 1122 and normalized = "CCM" and algType = "BLOCK_MODE" or - name = "aria-256-ccm" and nid = 1122 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-ccm" and + nid = 1122 and + normalized = "ARIA-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-128-gcm" and nid = 1123 and normalized = "GCM" and algType = "BLOCK_MODE" or - name = "aria-128-gcm" and nid = 1123 and normalized = "ARIA128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-128-gcm" and + nid = 1123 and + normalized = "ARIA-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-192-gcm" and nid = 1124 and normalized = "GCM" and algType = "BLOCK_MODE" or - name = "aria-192-gcm" and nid = 1124 and normalized = "ARIA192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-192-gcm" and + nid = 1124 and + normalized = "ARIA-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aria-256-gcm" and nid = 1125 and normalized = "GCM" and algType = "BLOCK_MODE" or - name = "aria-256-gcm" and nid = 1125 and normalized = "ARIA256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aria-256-gcm" and + nid = 1125 and + normalized = "ARIA-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "sm4-cfb1" and nid = 1136 and normalized = "SM4" and algType = "SYMMETRIC_ENCRYPTION" or @@ -1505,15 +1626,24 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "magma-mac" and nid = 1192 and normalized = "MAGMA" and algType = "SYMMETRIC_ENCRYPTION" or - name = "aes-128-siv" and nid = 1198 and normalized = "AES128" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-128-siv" and + nid = 1198 and + normalized = "AES-128" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aes-128-siv" and nid = 1198 and normalized = "SIV" and algType = "BLOCK_MODE" or - name = "aes-192-siv" and nid = 1199 and normalized = "AES192" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-192-siv" and + nid = 1199 and + normalized = "AES-192" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aes-192-siv" and nid = 1199 and normalized = "SIV" and algType = "BLOCK_MODE" or - name = "aes-256-siv" and nid = 1200 and normalized = "AES256" and algType = "SYMMETRIC_ENCRYPTION" + name = "aes-256-siv" and + nid = 1200 and + normalized = "AES-256" and + algType = "SYMMETRIC_ENCRYPTION" or name = "aes-256-siv" and nid = 1200 and normalized = "SIV" and algType = "BLOCK_MODE" or @@ -2000,42 +2130,42 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "id-aes128-ccm" and nid = 896 and - normalized = "AES128" and + normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes128-ccm" and nid = 896 and normalized = "CCM" and algType = "BLOCK_MODE" or name = "id-aes128-gcm" and nid = 895 and - normalized = "AES128" and + normalized = "AES-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes128-gcm" and nid = 895 and normalized = "GCM" and algType = "BLOCK_MODE" or name = "id-aes192-ccm" and nid = 899 and - normalized = "AES192" and + normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes192-ccm" and nid = 899 and normalized = "CCM" and algType = "BLOCK_MODE" or name = "id-aes192-gcm" and nid = 898 and - normalized = "AES192" and + normalized = "AES-192" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes192-gcm" and nid = 898 and normalized = "GCM" and algType = "BLOCK_MODE" or name = "id-aes256-ccm" and nid = 902 and - normalized = "AES256" and + normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes256-ccm" and nid = 902 and normalized = "CCM" and algType = "BLOCK_MODE" or name = "id-aes256-gcm" and nid = 901 and - normalized = "AES256" and + normalized = "AES-256" and algType = "SYMMETRIC_ENCRYPTION" or name = "id-aes256-gcm" and nid = 901 and normalized = "GCM" and algType = "BLOCK_MODE" @@ -2407,27 +2537,36 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "pbe-sha1-rc2-128" and nid = 148 and - normalized = "RC2" and + normalized = "RC2-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "pbe-sha1-rc2-40" and nid = 149 and normalized = "SHA1" and algType = "HASH" or - name = "pbe-sha1-rc2-40" and nid = 149 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + name = "pbe-sha1-rc2-40" and + nid = 149 and + normalized = "RC2-40" and + algType = "SYMMETRIC_ENCRYPTION" or name = "pbe-sha1-rc2-64" and nid = 68 and normalized = "SHA1" and algType = "HASH" or - name = "pbe-sha1-rc2-64" and nid = 68 and normalized = "RC2" and algType = "SYMMETRIC_ENCRYPTION" + name = "pbe-sha1-rc2-64" and + nid = 68 and + normalized = "RC2-64" and + algType = "SYMMETRIC_ENCRYPTION" or name = "pbe-sha1-rc4-128" and nid = 144 and normalized = "SHA1" and algType = "HASH" or name = "pbe-sha1-rc4-128" and nid = 144 and - normalized = "RC4" and + normalized = "RC4-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "pbe-sha1-rc4-40" and nid = 145 and normalized = "SHA1" and algType = "HASH" or - name = "pbe-sha1-rc4-40" and nid = 145 and normalized = "RC4" and algType = "SYMMETRIC_ENCRYPTION" + name = "pbe-sha1-rc4-40" and + nid = 145 and + normalized = "RC4-40" and + algType = "SYMMETRIC_ENCRYPTION" or name = "pbewithmd2anddes-cbc" and nid = 9 and @@ -2478,7 +2617,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "pbewithsha1and128bitrc2-cbc" and nid = 148 and - normalized = "RC2" and + normalized = "RC2-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "pbewithsha1and128bitrc2-cbc" and @@ -2490,7 +2629,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "pbewithsha1and128bitrc4" and nid = 144 and - normalized = "RC4" and + normalized = "RC4-128" and algType = "SYMMETRIC_ENCRYPTION" or name = "pbewithsha1and2-keytripledes-cbc" and @@ -2505,7 +2644,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "pbewithsha1and2-keytripledes-cbc" and nid = 147 and - normalized = "TRIPLEDES" and + normalized = "3DES" and algType = "SYMMETRIC_ENCRYPTION" or name = "pbewithsha1and3-keytripledes-cbc" and @@ -2520,14 +2659,14 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "pbewithsha1and3-keytripledes-cbc" and nid = 146 and - normalized = "TRIPLEDES" and + normalized = "3DES" and algType = "SYMMETRIC_ENCRYPTION" or name = "pbewithsha1and40bitrc2-cbc" and nid = 149 and normalized = "SHA1" and algType = "HASH" or name = "pbewithsha1and40bitrc2-cbc" and nid = 149 and - normalized = "RC2" and + normalized = "RC2-40" and algType = "SYMMETRIC_ENCRYPTION" or name = "pbewithsha1and40bitrc2-cbc" and @@ -2539,7 +2678,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "pbewithsha1and40bitrc4" and nid = 145 and - normalized = "RC4" and + normalized = "RC4-40" and algType = "SYMMETRIC_ENCRYPTION" or name = "pbewithsha1anddes-cbc" and nid = 170 and normalized = "SHA1" and algType = "HASH" diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll new file mode 100644 index 00000000000..6a206773bfb --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll @@ -0,0 +1,6 @@ +import experimental.Quantum.Language +import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase + +abstract class OpenSSLAlgorithmInstance extends Crypto::AlgorithmInstance { + abstract OpenSSLAlgorithmValueConsumer getAVC(); +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll new file mode 100644 index 00000000000..2a3f136f117 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll @@ -0,0 +1,4 @@ +import OpenSSLAlgorithmInstanceBase +import CipherAlgorithmInstance +import PaddingAlgorithmInstance +import BlockAlgorithmInstance diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll new file mode 100644 index 00000000000..219289c7da0 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll @@ -0,0 +1,167 @@ +import cpp +import experimental.Quantum.Language +import OpenSSLAlgorithmInstanceBase +import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import AlgToAVCFlow +import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer + +/** + * Given a `KnownOpenSSLPaddingAlgorithmConstant`, converts this to a padding family type. + * Does not bind if there is know mapping (no mapping to 'unknown' or 'other'). + */ +predicate knownOpenSSLConstantToPaddingFamilyType( + KnownOpenSSLPaddingAlgorithmConstant e, Crypto::TPaddingType type +) { + exists(string name | + name = e.getNormalizedName() and + ( + name.matches("OAEP") and type = Crypto::OAEP() + or + name.matches("PSS") and type = Crypto::PSS() + or + name.matches("PKCS7") and type = Crypto::PKCS7() + or + name.matches("PKCS1V15") and type = Crypto::PKCS1_v1_5() + ) + ) +} + +//abstract class OpenSSLPaddingAlgorithmInstance extends OpenSSLAlgorithmInstance, Crypto::PaddingAlgorithmInstance{} +// TODO: need to alter this to include known padding constants which don't have the +// same mechanics as those with known nids +class KnownOpenSSLPaddingConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, + Crypto::PaddingAlgorithmInstance instanceof Expr +{ + OpenSSLAlgorithmValueConsumer getterCall; + boolean isPaddingSpecificConsumer; + + KnownOpenSSLPaddingConstantAlgorithmInstance() { + // three possibilities: + // 1) The source is a 'typical' literal and flows to a getter, then we know we have an instance + // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that + // 3) the source is a padding-specific literal flowing to a padding-specific consumer + // Possibility 1: + this instanceof Literal and + this instanceof KnownOpenSSLPaddingAlgorithmConstant and + exists(DataFlow::Node src, DataFlow::Node sink | + // Sink is an argument to a CipherGetterCall + sink = getterCall.(OpenSSLAlgorithmValueConsumer).getInputNode() and + // Source is `this` + src.asExpr() = this and + // This traces to a getter + KnownOpenSSLAlgorithmToAlgorithmValueConsumerFlow::flow(src, sink) and + isPaddingSpecificConsumer = false + ) + or + // Possibility 2: + this instanceof DirectAlgorithmValueConsumer and + getterCall = this and + this instanceof KnownOpenSSLPaddingAlgorithmConstant and + isPaddingSpecificConsumer = false + or + // Possibility 3: + // from rsa.h in openssl: + // # define RSA_PKCS1_PADDING 1 + // # define RSA_NO_PADDING 3 + // # define RSA_PKCS1_OAEP_PADDING 4 + // # define RSA_X931_PADDING 5 + // /* EVP_PKEY_ only */ + // # define RSA_PKCS1_PSS_PADDING 6 + // # define RSA_PKCS1_WITH_TLS_PADDING 7 + // /* internal RSA_ only */ + // # define RSA_PKCS1_NO_IMPLICIT_REJECT_PADDING 8 + this instanceof Literal and + this.getValue().toInt() in [0, 1, 3, 4, 5, 6, 7, 8] and + exists(DataFlow::Node src, DataFlow::Node sink | + // Sink is an argument to a CipherGetterCall + sink = getterCall.(OpenSSLAlgorithmValueConsumer).getInputNode() and + // Source is `this` + src.asExpr() = this and + // This traces to a padding-specific consumer + RSAPaddingAlgorithmToPaddingAlgorithmValueConsumerFlow::flow(src, sink) + ) and + isPaddingSpecificConsumer = true + } + + override string getRawPaddingAlgorithmName() { result = this.(Literal).getValue().toString() } + + override OpenSSLAlgorithmValueConsumer getAVC() { result = getterCall } + + override Crypto::TPaddingType getPaddingType() { + isPaddingSpecificConsumer = true and + ( + if this.(Literal).getValue().toInt() in [1, 7, 8] + then result = Crypto::PKCS1_v1_5() + else + if this.(Literal).getValue().toInt() = 3 + then result = Crypto::NoPadding() + else + if this.(Literal).getValue().toInt() = 4 + then result = Crypto::OAEP() + else + if this.(Literal).getValue().toInt() = 5 + then result = Crypto::ANSI_X9_23() + else + if this.(Literal).getValue().toInt() = 6 + then result = Crypto::PSS() + else result = Crypto::OtherPadding() + ) + or + isPaddingSpecificConsumer = false and + knownOpenSSLConstantToPaddingFamilyType(this, result) + } +} + +// // Values used for EVP_PKEY_CTX_set_rsa_padding, these are +// // not the same as 'typical' constants found in the set of known algorithm constants +// // they do not have an NID +// // TODO: what about setting the padding directly? +// class KnownRSAPaddingConstant extends OpenSSLPaddingAlgorithmInstance, Crypto::PaddingAlgorithmInstance instanceof Literal +// { +// KnownRSAPaddingConstant() { +// // from rsa.h in openssl: +// // # define RSA_PKCS1_PADDING 1 +// // # define RSA_NO_PADDING 3 +// // # define RSA_PKCS1_OAEP_PADDING 4 +// // # define RSA_X931_PADDING 5 +// // /* EVP_PKEY_ only */ +// // # define RSA_PKCS1_PSS_PADDING 6 +// // # define RSA_PKCS1_WITH_TLS_PADDING 7 +// // /* internal RSA_ only */ +// // # define RSA_PKCS1_NO_IMPLICIT_REJECT_PADDING 8 +// this instanceof Literal and +// this.getValue().toInt() in [0, 1, 3, 4, 5, 6, 7, 8] +// // TODO: trace to padding-specific consumers +// RSAPaddingAlgorithmToPaddingAlgorithmValueConsumerFlow +// } +// override string getRawPaddingAlgorithmName() { result = this.(Literal).getValue().toString() } +// override Crypto::TPaddingType getPaddingType() { +// if this.(Literal).getValue().toInt() in [1, 6, 7, 8] +// then result = Crypto::PKCS1_v1_5() +// else +// if this.(Literal).getValue().toInt() = 3 +// then result = Crypto::NoPadding() +// else +// if this.(Literal).getValue().toInt() = 4 +// then result = Crypto::OAEP() +// else +// if this.(Literal).getValue().toInt() = 5 +// then result = Crypto::ANSI_X9_23() +// else result = Crypto::OtherPadding() +// } +// } +class OAEPPaddingAlgorithmInstance extends Crypto::OAEPPaddingAlgorithmInstance, + KnownOpenSSLPaddingConstantAlgorithmInstance +{ + OAEPPaddingAlgorithmInstance() { + this.(Crypto::PaddingAlgorithmInstance).getPaddingType() = Crypto::OAEP() + } + + override Crypto::HashAlgorithmInstance getOAEPEncodingHashAlgorithm() { + none() //TODO + } + + override Crypto::HashAlgorithmInstance getMGF1HashAlgorithm() { + none() //TODO + } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll new file mode 100644 index 00000000000..19777bc06d1 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll @@ -0,0 +1,39 @@ +import cpp +import experimental.Quantum.Language +import experimental.Quantum.OpenSSL.LibraryDetector +import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.Quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase +import OpenSSLAlgorithmValueConsumerBase + +abstract class CipherAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } + +// https://www.openssl.org/docs/manmaster/man3/EVP_CIPHER_fetch.html +class EVPCipherAlgorithmValueConsumer extends CipherAlgorithmValueConsumer { + DataFlow::Node valueArgNode; + DataFlow::Node resultNode; + + EVPCipherAlgorithmValueConsumer() { + resultNode.asExpr() = this and + isPossibleOpenSSLFunction(this.(Call).getTarget()) and + ( + this.(Call).getTarget().getName() in [ + "EVP_get_cipherbyname", "EVP_get_cipherbyobj", "EVP_get_cipherbynid" + ] and + valueArgNode.asExpr() = this.(Call).getArgument(0) + or + this.(Call).getTarget().getName() in ["EVP_CIPHER_fetch", "EVP_ASYM_CIPHER_fetch"] and + valueArgNode.asExpr() = this.(Call).getArgument(1) + ) + } + + override DataFlow::Node getResultNode() { result = resultNode } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result = valueArgNode } + + // override DataFlow::Node getInputNode() { result = valueArgNode } + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + exists(OpenSSLAlgorithmInstance i | i.getAVC() = this and result = i) + //TODO: As a potential alternative, for OpenSSL only, add a generic source node for literals and only create flow (flowsTo) to + // OpenSSL AVCs... the unknown literal sources would have to be any literals not in the known set. + } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll new file mode 100644 index 00000000000..cebe7a86a12 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll @@ -0,0 +1,36 @@ +import cpp +import experimental.Quantum.Language +import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase + +// TODO: can self referential to itself, which is also an algorithm (Known algorithm) +/** + * Cases like EVP_MD5(), + * there is no input, rather it directly gets an algorithm + * and returns it. + */ +class DirectAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { + DataFlow::Node resultNode; + Expr resultExpr; + + DirectAlgorithmValueConsumer() { + this instanceof KnownOpenSSLAlgorithmConstant and + this instanceof Call and + resultExpr = this and + resultNode.asExpr() = resultExpr + } + + /** + * These cases take in no explicit value (the value is implicit) + */ + override Crypto::ConsumerInputDataFlowNode getInputNode() { none() } + + override DataFlow::Node getResultNode() { result = resultNode } + + // override DataFlow::Node getOutputNode() { result = resultNode } + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + // Note: algorithm source definitions enforces that + // this class will be a known algorithm source + result = this + } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll new file mode 100644 index 00000000000..dddcf14c713 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll @@ -0,0 +1,9 @@ +import experimental.Quantum.Language +import semmle.code.cpp.dataflow.new.DataFlow + +abstract class OpenSSLAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer instanceof Call { + /** + * Returns the node representing the resulting algorithm + */ + abstract DataFlow::Node getResultNode(); +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll new file mode 100644 index 00000000000..46021269d71 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll @@ -0,0 +1,4 @@ +import OpenSSLAlgorithmValueConsumerBase +import CipherAlgorithmValueConsumer +import DirectAlgorithmValueConsumer +import PaddingAlgorithmValueConsumer diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll new file mode 100644 index 00000000000..009b22cf1b8 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll @@ -0,0 +1,36 @@ +import cpp +import experimental.Quantum.Language +import experimental.Quantum.OpenSSL.LibraryDetector +import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.Quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase +import OpenSSLAlgorithmValueConsumerBase + +abstract class PaddingAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } + +// https://docs.openssl.org/master/man7/EVP_ASYM_CIPHER-RSA/#rsa-asymmetric-cipher-parameters +// TODO: need to handle setting padding through EVP_PKEY_CTX_set_params, where modes like "OSSL_PKEY_RSA_PAD_MODE_OAEP" +// are set. +class EVP_PKEY_CTX_set_rsa_padding_AlgorithmValueConsumer extends PaddingAlgorithmValueConsumer { + DataFlow::Node valueArgNode; + DataFlow::Node resultNode; + + EVP_PKEY_CTX_set_rsa_padding_AlgorithmValueConsumer() { + resultNode.asExpr() = this and + isPossibleOpenSSLFunction(this.(Call).getTarget()) and + ( + this.(Call).getTarget().getName() in ["EVP_PKEY_CTX_set_rsa_padding"] and + valueArgNode.asExpr() = this.(Call).getArgument(1) + ) + } + + override DataFlow::Node getResultNode() { result = resultNode } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result = valueArgNode } + + // override DataFlow::Node getInputNode() { result = valueArgNode } + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + exists(OpenSSLAlgorithmInstance i | i.getAVC() = this and result = i) + //TODO: As a potential alternative, for OpenSSL only, add a generic source node for literals and only create flow (flowsTo) to + // OpenSSL AVCs... the unknown literal sources would have to be any literals not in the known set. + } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherInitializer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherInitializer.qll new file mode 100644 index 00000000000..584fd18a64c --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherInitializer.qll @@ -0,0 +1,123 @@ +/** + * see: https://docs.openssl.org/master/man3/EVP_EncryptInit/ + * Models cipher initialization for EVP cipher operations. + */ + +import experimental.Quantum.Language +import experimental.Quantum.OpenSSL.CtxFlow as CTXFlow + +module EncValToInitEncArgConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr().getValue().toInt() in [0, 1] } + + predicate isSink(DataFlow::Node sink) { + exists(EVP_Cipher_Inititalizer initCall | sink.asExpr() = initCall.getOperataionSubtypeArg()) + } +} + +module EncValToInitEncArgFlow = DataFlow::Global; + +int getEncConfigValue(Expr e) { + exists(EVP_Cipher_Inititalizer initCall | e = initCall.getOperataionSubtypeArg()) and + exists(DataFlow::Node a, DataFlow::Node b | + EncValToInitEncArgFlow::flow(a, b) and b.asExpr() = e and result = a.asExpr().getValue().toInt() + ) +} + +bindingset[i] +Crypto::KeyOperationSubtype intToCipherOperationSubtype(int i) { + if i = 0 + then result instanceof Crypto::TEncryptMode + else + if i = 1 + then result instanceof Crypto::TDecryptMode + else result instanceof Crypto::TUnknownKeyOperationMode +} + +// TODO: need to add key consumer +abstract class EVP_Cipher_Inititalizer extends Call { + Expr getContextArg() { result = this.(Call).getArgument(0) } + + Expr getAlgorithmArg() { result = this.(Call).getArgument(1) } + + abstract Expr getKeyArg(); + + abstract Expr getIVArg(); + + // abstract Crypto::CipherOperationSubtype getCipherOperationSubtype(); + abstract Expr getOperataionSubtypeArg(); + + Crypto::KeyOperationSubtype getCipherOperationSubtype() { + if this.(Call).getTarget().getName().toLowerCase().matches("%encrypt%") + then result instanceof Crypto::TEncryptMode + else + if this.(Call).getTarget().getName().toLowerCase().matches("%decrypt%") + then result instanceof Crypto::TDecryptMode + else + if exists(getEncConfigValue(this.getOperataionSubtypeArg())) + then result = intToCipherOperationSubtype(getEncConfigValue(this.getOperataionSubtypeArg())) + else result instanceof Crypto::TUnknownKeyOperationMode + } +} + +abstract class EVP_EX_Initializer extends EVP_Cipher_Inititalizer { + override Expr getKeyArg() { result = this.(Call).getArgument(3) } + + override Expr getIVArg() { result = this.(Call).getArgument(4) } +} + +abstract class EVP_EX2_Initializer extends EVP_Cipher_Inititalizer { + override Expr getKeyArg() { result = this.(Call).getArgument(2) } + + override Expr getIVArg() { result = this.(Call).getArgument(3) } +} + +class EVP_Cipher_EX_Init_Call extends EVP_EX_Initializer { + EVP_Cipher_EX_Init_Call() { + this.(Call).getTarget().getName() in [ + "EVP_EncryptInit_ex", "EVP_DecryptInit_ex", "EVP_CipherInit_ex" + ] + } + + override Expr getOperataionSubtypeArg() { + this.(Call).getTarget().getName().toLowerCase().matches("%cipherinit%") and + result = this.(Call).getArgument(5) + } +} + +class EVP_Cipher_EX2_or_Simple_Init_Call extends EVP_EX2_Initializer { + EVP_Cipher_EX2_or_Simple_Init_Call() { + this.(Call).getTarget().getName() in [ + "EVP_EncryptInit_ex2", "EVP_DecryptInit_ex2", "EVP_CipherInit_ex2", "EVP_EncryptInit", + "EVP_DecryptInit", "EVP_CipherInit" + ] + } + + override Expr getOperataionSubtypeArg() { + this.(Call).getTarget().getName().toLowerCase().matches("%cipherinit%") and + result = this.(Call).getArgument(4) + } +} + +class EVP_CipherInit_SKEY_Call extends EVP_EX2_Initializer { + EVP_CipherInit_SKEY_Call() { this.(Call).getTarget().getName() in ["EVP_CipherInit_SKEY"] } + + override Expr getOperataionSubtypeArg() { result = this.(Call).getArgument(5) } +} + +class EVPCipherInitializerAlgorithmArgument extends Expr { + EVPCipherInitializerAlgorithmArgument() { + exists(EVP_Cipher_Inititalizer initCall | this = initCall.getAlgorithmArg()) + } +} + +class EVPCipherInitializerKeyArgument extends Expr { + EVPCipherInitializerKeyArgument() { + exists(EVP_Cipher_Inititalizer initCall | this = initCall.getKeyArg()) + } +} + +class EVPCipherInitializerIVArgument extends Expr { + EVPCipherInitializerIVArgument() { + exists(EVP_Cipher_Inititalizer initCall | this = initCall.getIVArg()) + } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll new file mode 100644 index 00000000000..56288e6acb7 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll @@ -0,0 +1,114 @@ +import experimental.Quantum.Language +import experimental.Quantum.OpenSSL.CtxFlow as CTXFlow +import EVPCipherInitializer +import OpenSSLOperationBase +import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers + +// import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.AlgorithmValueConsumers +// import OpenSSLOperation +module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + exists(OpenSSLAlgorithmValueConsumer c | c.getResultNode() = source) + } + + predicate isSink(DataFlow::Node sink) { + exists(EVP_Cipher_Operation c | c.getInitCall().getAlgorithmArg() = sink.asExpr()) + } +} + +module AlgGetterToAlgConsumerFlow = DataFlow::Global; + +// class EVPCipherOutput extends CipherOutputArtifact { +// EVPCipherOutput() { exists(EVP_Cipher_Operation op | op.getOutputArg() = this) } +// override DataFlow::Node getOutputNode() { result.asDefiningArgument() = this } +// } +// +/** + * see: https://docs.openssl.org/master/man3/EVP_EncryptInit/#synopsis + * Base configuration for all EVP cipher operations. + * NOTE: cannot extend instance of OpenSSLOperation, as we need to override + * elements of OpenSSLOperation (i.e., we are creating an instance) + */ +abstract class EVP_Cipher_Operation extends OpenSSLOperation, Crypto::KeyOperationInstance { + Expr getContextArg() { result = this.(Call).getArgument(0) } + + override Expr getOutputArg() { result = this.(Call).getArgument(1) } + + override Crypto::KeyOperationSubtype getKeyOperationSubtype() { + result instanceof Crypto::TEncryptMode and + this.(Call).getTarget().getName().toLowerCase().matches("%encrypt%") + or + result instanceof Crypto::TDecryptMode and + this.(Call).getTarget().getName().toLowerCase().matches("%decrypt%") + or + result = this.getInitCall().getCipherOperationSubtype() and + this.(Call).getTarget().getName().toLowerCase().matches("%cipher%") + } + + EVP_Cipher_Inititalizer getInitCall() { + CTXFlow::ctxArgFlowsToCtxArg(result.getContextArg(), this.getContextArg()) + } + + override Crypto::ConsumerInputDataFlowNode getNonceConsumer() { + this.getInitCall().getIVArg() = result.asExpr() + } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { result = this.getInputNode() } + + override Crypto::ConsumerInputDataFlowNode getKeyConsumer() { + this.getInitCall().getKeyArg() = result.asExpr() + } + + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { result = this.getOutputNode() } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + AlgGetterToAlgConsumerFlow::flow(result.(OpenSSLAlgorithmValueConsumer).getResultNode(), + DataFlow::exprNode(this.getInitCall().getAlgorithmArg())) + } +} + +// abstract class EVP_Update_Call extends EVP_Cipher_Operation { } +abstract class EVP_Final_Call extends EVP_Cipher_Operation { + override Expr getInputArg() { none() } +} + +// TODO: only model Final (model final as operation and model update but not as an operation) +// Updates are multiple input consumers (most important) +// PUNT assuming update doesn't ouput, otherwise it outputs arifacts, but is not an operation +class EVP_Cipher_Call extends EVP_Cipher_Operation { + EVP_Cipher_Call() { this.(Call).getTarget().getName() = "EVP_Cipher" } + + override Expr getInputArg() { result = this.(Call).getArgument(2) } +} + +// class EVP_Encrypt_Decrypt_or_Cipher_Update_Call extends EVP_Update_Call { +// EVP_Encrypt_Decrypt_or_Cipher_Update_Call() { +// this.(Call).getTarget().getName() in [ +// "EVP_EncryptUpdate", "EVP_DecryptUpdate", "EVP_CipherUpdate" +// ] +// } +// override Expr getInputArg() { result = this.(Call).getArgument(3) } +// } +class EVP_Encrypt_Decrypt_or_Cipher_Final_Call extends EVP_Final_Call { + EVP_Encrypt_Decrypt_or_Cipher_Final_Call() { + this.(Call).getTarget().getName() in [ + "EVP_EncryptFinal_ex", "EVP_DecryptFinal_ex", "EVP_CipherFinal_ex", "EVP_EncryptFinal", + "EVP_DecryptFinal", "EVP_CipherFinal" + ] + } +} + +class EVP_PKEY_Operation extends EVP_Cipher_Operation { + EVP_PKEY_Operation() { + this.(Call).getTarget().getName() in ["EVP_PKEY_decrypt", "EVP_PKEY_encrypt"] + } + + override Expr getInputArg() { result = this.(Call).getArgument(3) } + // TODO: how PKEY is initialized is different that symmetric cipher + // Consider making an entirely new class for this and specializing + // the get init call +} + +class EVPCipherInputArgument extends Expr { + EVPCipherInputArgument() { exists(EVP_Cipher_Operation op | op.getInputArg() = this) } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperationBase.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperationBase.qll new file mode 100644 index 00000000000..851d7a4b7e9 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperationBase.qll @@ -0,0 +1,21 @@ +import experimental.Quantum.Language + +abstract class OpenSSLOperation extends Crypto::OperationInstance instanceof Call { + abstract Expr getInputArg(); + + /** + * Can be an argument of a call or a return value of a function. + */ + abstract Expr getOutputArg(); + + DataFlow::Node getInputNode() { + // Assumed to be default to asExpr + result.asExpr() = this.getInputArg() + } + + DataFlow::Node getOutputNode() { + if exists(Call c | c.getAnArgument() = this) + then result.asDefiningArgument() = this + else result.asExpr() = this + } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperations.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperations.qll new file mode 100644 index 00000000000..76a60b064e5 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperations.qll @@ -0,0 +1 @@ +import EVPCipherOperation From 94632931ba08b3cac96882de1d1e2aa315ffd69d Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 2 May 2025 14:11:10 -0400 Subject: [PATCH 265/656] Clean up --- .../OpenSSL/OpenSSLAlgorithmGetter.qll | 495 ------------------ 1 file changed, 495 deletions(-) delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll deleted file mode 100644 index b436f3b412a..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSLAlgorithmGetter.qll +++ /dev/null @@ -1,495 +0,0 @@ - -// import cpp -// import semmle.code.cpp.dataflow.new.DataFlow -// import LibraryDetector -// import OpenSSLKnownAlgorithmConstants -// import experimental.Quantum.Language -// class OpenSSLAlgorithmAdditionalFlowStep extends AdditionalFlowInputStep { -// OpenSSLAlgorithmAdditionalFlowStep() { exists(AlgorithmPassthroughCall c | c.getInNode() = this) } -// override DataFlow::Node getOutput() { -// exists(AlgorithmPassthroughCall c | c.getInNode() = this and c.getOutNode() = result) -// } -// } -// module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { -// predicate isSource(DataFlow::Node source) { -// exists(OpenSSLAlgorithmGetterCall c | c.getResultNode() = source) -// } -// predicate isSink(DataFlow::Node sink) { -// exists(Crypto::AlgorithmConsumer c | c.getInputNode() = sink) -// } -// } -// module AlgGetterToAlgConsumerFlow = DataFlow::Global; -// abstract class AlgorithmPassthroughCall extends Call { -// abstract DataFlow::Node getInNode(); -// abstract DataFlow::Node getOutNode(); -// } -// class CopyAndDupAlgorithmPassthroughCall extends AlgorithmPassthroughCall { -// DataFlow::Node inNode; -// DataFlow::Node outNode; -// CopyAndDupAlgorithmPassthroughCall() { -// // Flow out through any return or other argument of the same type -// // Assume flow in and out is asIndirectExpr or asDefinitingArgument since a pointer is assumed -// // to be involved -// // NOTE: not attempting to detect openssl specific copy/dup functions, but anything suspected to be copy/dup -// this.getTarget().getName().toLowerCase().matches(["%_dup%", "%_copy%"]) and -// exists(Expr inArg, Type t | -// inArg = this.getAnArgument() and t = inArg.getUnspecifiedType().stripType() -// | -// inNode.asIndirectExpr() = inArg and -// ( -// // Case 1: flow through another argument as an out arg of the same type -// exists(Expr outArg | -// outArg = this.getAnArgument() and -// outArg != inArg and -// outArg.getUnspecifiedType().stripType() = t -// | -// outNode.asDefiningArgument() = outArg -// ) -// or -// // Case 2: flow through the return value if the result is the same as the intput type -// exists(Expr outArg | outArg = this and outArg.getUnspecifiedType().stripType() = t | -// outNode.asIndirectExpr() = outArg -// ) -// ) -// ) -// } -// override DataFlow::Node getInNode() { result = inNode } -// override DataFlow::Node getOutNode() { result = outNode } -// } -// class NIDToPointerPassthroughCall extends AlgorithmPassthroughCall { -// DataFlow::Node inNode; -// DataFlow::Node outNode; -// NIDToPointerPassthroughCall() { -// this.getTarget().getName() in ["OBJ_nid2obj", "OBJ_nid2ln", "OBJ_nid2sn"] and -// inNode.asExpr() = this.getArgument(0) and -// outNode.asExpr() = this -// //outNode.asIndirectExpr() = this -// } -// override DataFlow::Node getInNode() { result = inNode } -// override DataFlow::Node getOutNode() { result = outNode } -// } -// class PointerToPointerPassthroughCall extends AlgorithmPassthroughCall { -// DataFlow::Node inNode; -// DataFlow::Node outNode; -// PointerToPointerPassthroughCall() { -// this.getTarget().getName() = "OBJ_txt2obj" and -// inNode.asIndirectExpr() = this.getArgument(0) and -// outNode.asIndirectExpr() = this -// or -// //outNode.asExpr() = this -// this.getTarget().getName() in ["OBJ_obj2txt", "i2t_ASN1_OBJECT"] and -// inNode.asIndirectExpr() = this.getArgument(2) and -// outNode.asDefiningArgument() = this.getArgument(0) -// } -// override DataFlow::Node getInNode() { result = inNode } -// override DataFlow::Node getOutNode() { result = outNode } -// } -// class PointerToNIDPassthroughCall extends AlgorithmPassthroughCall { -// DataFlow::Node inNode; -// DataFlow::Node outNode; -// PointerToNIDPassthroughCall() { -// this.getTarget().getName() in ["OBJ_obj2nid", "OBJ_ln2nid", "OBJ_sn2nid", "OBJ_txt2nid"] and -// ( -// inNode.asIndirectExpr() = this.getArgument(0) -// or -// inNode.asExpr() = this.getArgument(0) -// ) and -// outNode.asExpr() = this -// } -// override DataFlow::Node getInNode() { result = inNode } -// override DataFlow::Node getOutNode() { result = outNode } -// } -// predicate knownPassThroughStep(DataFlow::Node node1, DataFlow::Node node2) { -// exists(AlgorithmPassthroughCall c | c.getInNode() = node1 and c.getOutNode() = node2) -// } -// abstract class OpenSSLAlgorithmGetterCall extends Call { -// abstract DataFlow::Node getValueArgNode(); -// abstract DataFlow::Node getResultNode(); -// abstract Expr getValueArgExpr(); -// abstract Expr getResultExpr(); -// } -// module KnownOpenSSLAlgorithmToAlgorithmGetterConfig implements DataFlow::ConfigSig { -// predicate isSource(DataFlow::Node source) { -// source.asExpr() instanceof KnownOpenSSLAlgorithmConstant -// } -// predicate isSink(DataFlow::Node sink) { -// exists(OpenSSLAlgorithmGetterCall c | c.getValueArgNode() = sink) -// } -// predicate isBarrier(DataFlow::Node node) { -// // False positive reducer, don't flow out through argv -// exists(VariableAccess va, Variable v | -// v.getAnAccess() = va and va = node.asExpr() -// or -// va = node.asIndirectExpr() -// | -// v.getName().matches("%argv") -// ) -// } -// predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { -// knownPassThroughStep(node1, node2) -// } -// } -// module KnownOpenSSLAlgorithmToAlgorithmGetterFlow = -// DataFlow::Global; -// /** -// * Cases like EVP_MD5(), -// * there is no input, rather it directly gets an algorithm -// * and returns it. -// */ -// class DirectGetterCall extends OpenSSLAlgorithmGetterCall { -// DataFlow::Node resultNode; -// Expr resultExpr; -// DirectGetterCall() { -// this instanceof KnownOpenSSLAlgorithmConstant and -// this instanceof Call and -// resultExpr = this and -// resultNode.asExpr() = resultExpr -// } -// override DataFlow::Node getValueArgNode() { none() } -// override DataFlow::Node getResultNode() { result = resultNode } -// override Expr getValueArgExpr() { none() } -// override Expr getResultExpr() { result = resultExpr } -// } -// // https://www.openssl.org/docs/manmaster/man3/EVP_CIPHER_fetch.html -// class EVPCipherGetterCall extends OpenSSLAlgorithmGetterCall { -// DataFlow::Node valueArgNode; -// DataFlow::Node resultNode; -// Expr valueArgExpr; -// Expr resultExpr; -// EVPCipherGetterCall() { -// resultExpr = this and -// resultNode.asExpr() = this and -// isPossibleOpenSSLFunction(this.getTarget()) and -// ( -// this.getTarget().getName() in ["EVP_get_cipherbyname", "EVP_get_cipherbyobj"] and -// valueArgExpr = this.getArgument(0) and -// valueArgNode.asExpr() = valueArgExpr -// or -// this.getTarget().getName() = "EVP_CIPHER_fetch" and -// valueArgExpr = this.getArgument(1) and -// valueArgNode.asExpr() = valueArgExpr -// or -// this.getTarget().getName() = "EVP_get_cipherbynid" and -// valueArgExpr = this.getArgument(0) and -// valueArgNode.asExpr() = valueArgExpr -// ) -// } -// override DataFlow::Node getValueArgNode() { result = valueArgNode } -// override DataFlow::Node getResultNode() { result = resultNode } -// override Expr getValueArgExpr() { result = valueArgExpr } -// override Expr getResultExpr() { result = resultExpr } -// } -// class EVPAsymCipherGetterCall extends OpenSSLAlgorithmGetterCall { -// DataFlow::Node valueArgNode; -// DataFlow::Node resultNode; -// Expr valueArgExpr; -// Expr resultExpr; -// EVPAsymCipherGetterCall() { -// isPossibleOpenSSLFunction(this.getTarget()) and -// resultExpr = this and -// resultNode.asExpr() = this and -// this.getTarget().getName() = "EVP_ASYM_CIPHER_fetch" and -// valueArgExpr = this.getArgument(1) and -// valueArgNode.asExpr() = valueArgExpr -// } -// override DataFlow::Node getValueArgNode() { result = valueArgNode } -// override DataFlow::Node getResultNode() { result = resultNode } -// override Expr getValueArgExpr() { result = valueArgExpr } -// override Expr getResultExpr() { result = resultExpr } -// } -// class EVPDigestGetterCall extends OpenSSLAlgorithmGetterCall { -// DataFlow::Node valueArgNode; -// DataFlow::Node resultNode; -// Expr valueArgExpr; -// Expr resultExpr; -// EVPDigestGetterCall() { -// resultExpr = this and -// resultNode.asExpr() = this and -// isPossibleOpenSSLFunction(this.getTarget()) and -// ( -// this.getTarget().getName() in [ -// "EVP_get_digestbyname", "EVP_get_digestbyobj", "EVP_get_digestbynid" -// ] and -// valueArgExpr = this.getArgument(0) and -// valueArgNode.asExpr() = valueArgExpr -// or -// this.getTarget().getName() = "EVP_MD_fetch" and -// valueArgExpr = this.getArgument(1) and -// valueArgNode.asExpr() = valueArgExpr -// ) -// } -// override DataFlow::Node getValueArgNode() { result = valueArgNode } -// override DataFlow::Node getResultNode() { result = resultNode } -// override Expr getValueArgExpr() { result = valueArgExpr } -// override Expr getResultExpr() { result = resultExpr } -// } -// class EVPKDFFetch extends OpenSSLAlgorithmGetterCall { -// DataFlow::Node valueArgNode; -// DataFlow::Node resultNode; -// Expr valueArgExpr; -// Expr resultExpr; -// EVPKDFFetch() { -// resultExpr = this and -// resultNode.asExpr() = this and -// isPossibleOpenSSLFunction(this.getTarget()) and -// this.getTarget().getName() in ["EVP_KDF_fetch"] and -// valueArgExpr = this.getArgument(1) and -// valueArgNode.asExpr() = valueArgExpr -// } -// override DataFlow::Node getValueArgNode() { result = valueArgNode } -// override DataFlow::Node getResultNode() { result = resultNode } -// override Expr getValueArgExpr() { result = valueArgExpr } -// override Expr getResultExpr() { result = resultExpr } -// } -// // /** -// // * Predicates/classes for identifying algorithm sinks. -// // * An Algorithm Sink is a function that takes an algorithm as an argument. -// // * In particular, any function that takes in an algorithm that until the call -// // * the algorithm is not definitely known to be an algorithm (e.g., an integer used as an identifier to fetch an algorithm) -// // */ -// // //TODO: enforce a hierarchy of AlgorithmSinkArgument, e.g., so I can get all Asymmetric SinkArguments that includes all the strictly RSA etc. -// // import cpp -// // // import experimental.cryptography.utils.OpenSSL.LibraryFunction -// // // import experimental.cryptography.CryptoAlgorithmNames -// // predicate isAlgorithmSink(AlgorithmSinkArgument arg, string algType) { arg.algType() = algType } -// // abstract class AlgorithmSinkArgument extends Expr { -// // AlgorithmSinkArgument() { -// // exists(Call c | c.getAnArgument() = this and openSSLLibraryFunc(c.getTarget())) -// // } -// // /** -// // * Gets the function call in which the argument exists -// // */ -// // Call getSinkCall() { result.getAnArgument() = this } -// // abstract string algType(); -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EVP_CIPHER_fetch.html -// // predicate cipherAlgorithmSink(string funcName, int argInd) { -// // funcName in ["EVP_get_cipherbyname", "EVP_get_cipherbynid", "EVP_get_cipherbyobj"] and argInd = 0 -// // or -// // funcName = "EVP_CIPHER_fetch" and argInd = 1 -// // } -// // class CipherAlgorithmSink extends AlgorithmSinkArgument { -// // CipherAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // cipherAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = getSymmetricEncryptionType() } -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EVP_MAC_fetch -// // predicate macAlgorithmSink(string funcName, int argInd) { -// // (funcName = "EVP_MAC_fetch" and argInd = 1) -// // } -// // class MACAlgorithmSink extends AlgorithmSinkArgument { -// // MACAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // macAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = "TBD" } -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EVP_MD_fetch -// // predicate messageDigestAlgorithmSink(string funcName, int argInd) { -// // funcName in ["EVP_get_digestbyname", "EVP_get_digestbynid", "EVP_get_digestbyobj"] and argInd = 0 -// // or -// // funcName = "EVP_MD_fetch" and argInd = 1 -// // } -// // class MessageDigestAlgorithmSink extends AlgorithmSinkArgument { -// // MessageDigestAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // messageDigestAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = getHashType() } -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EVP_KEYEXCH_fetch -// // // https://www.openssl.org/docs/manmaster/man3/EVP_KEM_fetch -// // predicate keyExchangeAlgorithmSink(string funcName, int argInd) { -// // funcName = "EVP_KEYEXCH_fetch" and argInd = 1 -// // or -// // funcName = "EVP_KEM_fetch" and argInd = 1 -// // } -// // class KeyExchangeAlgorithmSink extends AlgorithmSinkArgument { -// // KeyExchangeAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // keyExchangeAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = getKeyExchangeType() } -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EVP_KEYMGMT_fetch -// // predicate keyManagementAlgorithmSink(string funcName, int argInd) { -// // funcName = "EVP_KEYMGMT_fetch" and argInd = 1 -// // } -// // class KeyManagementAlgorithmSink extends AlgorithmSinkArgument { -// // KeyManagementAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // keyManagementAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = "TBD" } -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EVP_KDF -// // predicate keyDerivationAlgorithmSink(string funcName, int argInd) { -// // funcName = "EVP_KDF_fetch" and argInd = 1 -// // } -// // class KeyDerivationAlgorithmSink extends AlgorithmSinkArgument { -// // KeyDerivationAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // keyDerivationAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = getKeyDerivationType() } -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EVP_ASYM_CIPHER_fetch -// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_new_id -// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_new_CMAC_key.html -// // predicate asymmetricCipherAlgorithmSink(string funcName, int argInd) { -// // funcName = "EVP_ASYM_CIPHER_fetch" and argInd = 1 -// // or -// // funcName = "EVP_PKEY_new_CMAC_key" and argInd = 3 -// // // NOTE: other cases are handled by AsymmetricAlgorithmSink -// // } -// // class AsymmetricCipherAlgorithmSink extends AlgorithmSinkArgument { -// // AsymmetricCipherAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // asymmetricCipherAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = "ASYMMETRIC_ENCRYPTION" } -// // } -// // class AsymmetricCipherAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { -// // AsymmetricCipherAlgorithmSink_EVP_PKEY_Q_keygen() { -// // exists(Call c, string funcName | -// // funcName = c.getTarget().getName() and -// // this = c.getArgument(3) -// // | -// // funcName = "EVP_PKEY_Q_keygen" and -// // c.getArgument(3).getType().getUnderlyingType() instanceof IntegralType -// // ) -// // } -// // override string algType() { result = "ASYMMETRIC_ENCRYPTION" } -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EVP_RAND_fetch -// // predicate randomAlgorithmSink(string funcName, int argInd) { -// // funcName = "EVP_RAND_fetch" and argInd = 1 -// // } -// // class RandomAlgorithmSink extends AlgorithmSinkArgument { -// // RandomAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // randomAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = "TBD" } -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EVP_SIGNATURE_fetch -// // predicate signatureAlgorithmSink(string funcName, int argInd) { -// // funcName = "EVP_SIGNATURE_fetch" and argInd = 1 -// // } -// // class SignatureAlgorithmSink extends AlgorithmSinkArgument { -// // SignatureAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // signatureAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = getSignatureType() } -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EC_KEY_new_by_curve_name.html -// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.html -// // predicate ellipticCurveAlgorithmSink(string funcName, int argInd) { -// // funcName in ["EC_KEY_new_by_curve_name", "EVP_EC_gen"] and argInd = 0 -// // or -// // funcName = "EC_KEY_new_by_curve_name_ex" and argInd = 2 -// // or -// // funcName in ["EVP_PKEY_CTX_set_ec_paramgen_curve_nid"] and argInd = 1 -// // } -// // class EllipticCurveAlgorithmSink extends AlgorithmSinkArgument { -// // EllipticCurveAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // ellipticCurveAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = getEllipticCurveType() } -// // } -// // /** -// // * Special cased to address the fact that arg index 3 (zero offset based) is the curve name. -// // * ASSUMPTION: if the arg ind 3 is a char* assume it is an elliptic curve -// // */ -// // class EllipticCurveAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { -// // EllipticCurveAlgorithmSink_EVP_PKEY_Q_keygen() { -// // exists(Call c, string funcName | -// // funcName = c.getTarget().getName() and -// // this = c.getArgument(3) -// // | -// // funcName = "EVP_PKEY_Q_keygen" and -// // c.getArgument(3).getType().getUnderlyingType() instanceof PointerType and -// // c.getArgument(3).getType().getUnderlyingType().stripType() instanceof CharType -// // ) -// // } -// // override string algType() { result = getEllipticCurveType() } -// // } -// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_new_id.html -// // // https://www.openssl.org/docs/man1.1.1/man3/EVP_PKEY_new_raw_private_key.html -// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_new.html -// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_ctrl.html -// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_Q_keygen.html -// // // https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_CTX_ctrl.html -// // predicate asymmetricAlgorithmSink(string funcName, int argInd) { -// // funcName = "EVP_PKEY_CTX_new_id" and argInd = 0 -// // or -// // funcName = "EVP_PKEY_CTX_new_from_name" and argInd = 1 -// // or -// // funcName in [ -// // "EVP_PKEY_new_raw_private_key", "EVP_PKEY_new_raw_public_key", "EVP_PKEY_new_mac_key" -// // ] and -// // argInd = 0 -// // or -// // funcName in ["EVP_PKEY_new_raw_private_key_ex", "EVP_PKEY_new_raw_public_key_ex"] and argInd = 1 -// // or -// // // special casing this as arg index 3 must be specified depending on if RSA or ECC, and otherwise not specified for other algs -// // // funcName = "EVP_PKEY_Q_keygen" and argInd = 2 -// // funcName in ["EVP_PKEY_CTX_ctrl", "EVP_PKEY_CTX_set_group_name"] and argInd = 1 -// // // TODO consider void cases EVP_PKEY_new -// // } -// // class AsymmetricAlgorithmSink extends AlgorithmSinkArgument { -// // AsymmetricAlgorithmSink() { -// // exists(Call c, string funcName, int argInd | -// // funcName = c.getTarget().getName() and this = c.getArgument(argInd) -// // | -// // asymmetricAlgorithmSink(funcName, argInd) -// // ) -// // } -// // override string algType() { result = getAsymmetricType() } -// // } -// // class AsymmetricAlgorithmSink_EVP_PKEY_Q_keygen extends AlgorithmSinkArgument { -// // AsymmetricAlgorithmSink_EVP_PKEY_Q_keygen() { -// // exists(Call c, string funcName | -// // funcName = c.getTarget().getName() and -// // this = c.getArgument(2) -// // | -// // funcName = "EVP_PKEY_Q_keygen" and -// // not exists(c.getArgument(3)) -// // ) -// // } -// // override string algType() { result = getAsymmetricType() } -// // } From 2511f521616ce428a9e5ddcab55467caf50a0bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 1 May 2025 11:26:42 -0400 Subject: [PATCH 266/656] Ruby printAst: fix order for synth children of real parents Real parents can have synthesized children, so always assigning index 0 leads to nondeterminism in graph output. --- ruby/ql/lib/codeql/ruby/printAst.qll | 20 +++++++++++--------- ruby/ql/test/library-tests/ast/Ast.expected | 16 ++++++++-------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/printAst.qll b/ruby/ql/lib/codeql/ruby/printAst.qll index c15b717610a..e87b9bc43ec 100644 --- a/ruby/ql/lib/codeql/ruby/printAst.qll +++ b/ruby/ql/lib/codeql/ruby/printAst.qll @@ -121,15 +121,17 @@ class PrintRegularAstNode extends PrintAstNode, TPrintRegularAstNode { } private int getSynthAstNodeIndex() { - this.parentIsSynthesized() and - exists(AstNode parent | - shouldPrintAstEdge(parent, _, astNode) and - parent.isSynthesized() and - synthChild(parent, result, astNode) - ) - or - not this.parentIsSynthesized() and - result = 0 + if + exists(AstNode parent | + shouldPrintAstEdge(parent, _, astNode) and + synthChild(parent, _, astNode) + ) + then + exists(AstNode parent | + shouldPrintAstEdge(parent, _, astNode) and + synthChild(parent, result, astNode) + ) + else result = 0 } override int getOrder() { diff --git a/ruby/ql/test/library-tests/ast/Ast.expected b/ruby/ql/test/library-tests/ast/Ast.expected index 294edfdab1e..5d8cefb01ab 100644 --- a/ruby/ql/test/library-tests/ast/Ast.expected +++ b/ruby/ql/test/library-tests/ast/Ast.expected @@ -915,8 +915,8 @@ control/cases.rb: # 56| getValue: [IntegerLiteral] 5 # 56| getKey: [SymbolLiteral] :b # 56| getComponent: [StringTextComponent] b -# 56| getValue: [LocalVariableAccess] b # 56| getRestVariableAccess: [LocalVariableAccess] map +# 56| getValue: [LocalVariableAccess] b # 57| getBranch: [InClause] in ... then ... # 57| getPattern: [HashPattern] { ..., ** } # 57| getKey: [SymbolLiteral] :a @@ -1006,8 +1006,8 @@ control/cases.rb: # 75| getValue: [IntegerLiteral] 5 # 75| getKey: [SymbolLiteral] :b # 75| getComponent: [StringTextComponent] b -# 75| getValue: [LocalVariableAccess] b # 75| getRestVariableAccess: [LocalVariableAccess] map +# 75| getValue: [LocalVariableAccess] b # 76| getBranch: [InClause] in ... then ... # 76| getPattern: [HashPattern] { ..., ** } # 76| getKey: [SymbolLiteral] :a @@ -1209,8 +1209,8 @@ control/cases.rb: # 141| getValue: [IntegerLiteral] 1 # 141| getKey: [SymbolLiteral] :a # 141| getComponent: [StringTextComponent] a -# 141| getValue: [LocalVariableAccess] a # 141| getRestVariableAccess: [LocalVariableAccess] rest +# 141| getValue: [LocalVariableAccess] a # 142| getBranch: [InClause] in ... then ... # 142| getPattern: [HashPattern] { ..., ** } # 142| getClass: [ConstantReadAccess] Foo @@ -3185,14 +3185,14 @@ params/params.rb: # 106| getParameter: [HashSplatParameter] **kwargs # 106| getDefiningAccess: [LocalVariableAccess] kwargs # 107| getStmt: [SuperCall] super call to m -# 107| getArgument: [HashSplatExpr] ** ... -# 107| getAnOperand/getOperand/getReceiver: [LocalVariableAccess] kwargs +# 107| getArgument: [LocalVariableAccess] y +# 107| getArgument: [SplatExpr] * ... +# 107| getAnOperand/getOperand/getReceiver: [LocalVariableAccess] rest # 107| getArgument: [Pair] Pair # 107| getKey: [SymbolLiteral] k # 107| getValue: [LocalVariableAccess] k -# 107| getArgument: [SplatExpr] * ... -# 107| getAnOperand/getOperand/getReceiver: [LocalVariableAccess] rest -# 107| getArgument: [LocalVariableAccess] y +# 107| getArgument: [HashSplatExpr] ** ... +# 107| getAnOperand/getOperand/getReceiver: [LocalVariableAccess] kwargs # 111| getStmt: [MethodCall] call to m # 111| getReceiver: [MethodCall] call to new # 111| getReceiver: [ConstantReadAccess] Sub From b95092ef1c8179386947202b6920e33de7796a55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 2 May 2025 12:33:21 -0400 Subject: [PATCH 267/656] Ruby printAst: order by start line and column before synth index This counteracts the movement of synth children away from the node from which they take their location, following the decision to take the index of synth children of real parents into account. --- ruby/ql/lib/codeql/ruby/printAst.qll | 4 ++-- ruby/ql/test/library-tests/ast/Ast.expected | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/printAst.qll b/ruby/ql/lib/codeql/ruby/printAst.qll index e87b9bc43ec..707fa20effd 100644 --- a/ruby/ql/lib/codeql/ruby/printAst.qll +++ b/ruby/ql/lib/codeql/ruby/printAst.qll @@ -142,8 +142,8 @@ class PrintRegularAstNode extends PrintAstNode, TPrintRegularAstNode { | p order by - f.getBaseName(), f.getAbsolutePath(), l.getStartLine(), p.getSynthAstNodeIndex(), - l.getStartColumn(), l.getEndLine(), l.getEndColumn() + f.getBaseName(), f.getAbsolutePath(), l.getStartLine(), l.getStartColumn(), + p.getSynthAstNodeIndex(), l.getEndLine(), l.getEndColumn() ) } diff --git a/ruby/ql/test/library-tests/ast/Ast.expected b/ruby/ql/test/library-tests/ast/Ast.expected index 5d8cefb01ab..6263cb8919b 100644 --- a/ruby/ql/test/library-tests/ast/Ast.expected +++ b/ruby/ql/test/library-tests/ast/Ast.expected @@ -915,8 +915,8 @@ control/cases.rb: # 56| getValue: [IntegerLiteral] 5 # 56| getKey: [SymbolLiteral] :b # 56| getComponent: [StringTextComponent] b -# 56| getRestVariableAccess: [LocalVariableAccess] map # 56| getValue: [LocalVariableAccess] b +# 56| getRestVariableAccess: [LocalVariableAccess] map # 57| getBranch: [InClause] in ... then ... # 57| getPattern: [HashPattern] { ..., ** } # 57| getKey: [SymbolLiteral] :a @@ -1006,8 +1006,8 @@ control/cases.rb: # 75| getValue: [IntegerLiteral] 5 # 75| getKey: [SymbolLiteral] :b # 75| getComponent: [StringTextComponent] b -# 75| getRestVariableAccess: [LocalVariableAccess] map # 75| getValue: [LocalVariableAccess] b +# 75| getRestVariableAccess: [LocalVariableAccess] map # 76| getBranch: [InClause] in ... then ... # 76| getPattern: [HashPattern] { ..., ** } # 76| getKey: [SymbolLiteral] :a @@ -1209,8 +1209,8 @@ control/cases.rb: # 141| getValue: [IntegerLiteral] 1 # 141| getKey: [SymbolLiteral] :a # 141| getComponent: [StringTextComponent] a -# 141| getRestVariableAccess: [LocalVariableAccess] rest # 141| getValue: [LocalVariableAccess] a +# 141| getRestVariableAccess: [LocalVariableAccess] rest # 142| getBranch: [InClause] in ... then ... # 142| getPattern: [HashPattern] { ..., ** } # 142| getClass: [ConstantReadAccess] Foo From 83a619a53287f9fb474515da7007d50db9acdec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 2 May 2025 12:59:17 -0400 Subject: [PATCH 268/656] Ruby printAst: order by line, synth index in synth parent, column, synth index in real parent This prevents a bunch of unrelated movements in AstDesugar.ql --- ruby/ql/lib/codeql/ruby/printAst.qll | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/printAst.qll b/ruby/ql/lib/codeql/ruby/printAst.qll index 707fa20effd..947f8de06ef 100644 --- a/ruby/ql/lib/codeql/ruby/printAst.qll +++ b/ruby/ql/lib/codeql/ruby/printAst.qll @@ -134,6 +134,10 @@ class PrintRegularAstNode extends PrintAstNode, TPrintRegularAstNode { else result = 0 } + private int getSynthAstNodeIndexForSynthParent() { + if this.parentIsSynthesized() then result = this.getSynthAstNodeIndex() else result = 0 + } + override int getOrder() { this = rank[result](PrintRegularAstNode p, Location l, File f | @@ -142,8 +146,9 @@ class PrintRegularAstNode extends PrintAstNode, TPrintRegularAstNode { | p order by - f.getBaseName(), f.getAbsolutePath(), l.getStartLine(), l.getStartColumn(), - p.getSynthAstNodeIndex(), l.getEndLine(), l.getEndColumn() + f.getBaseName(), f.getAbsolutePath(), l.getStartLine(), + p.getSynthAstNodeIndexForSynthParent(), l.getStartColumn(), p.getSynthAstNodeIndex(), + l.getEndLine(), l.getEndColumn() ) } From e9d5515c3baeb8e7ac1d9178a219adca7c9a80d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 2 May 2025 15:32:31 -0400 Subject: [PATCH 269/656] Add change note --- .../lib/change-notes/2025-05-02-ruby-printast-order-fix.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ruby/ql/lib/change-notes/2025-05-02-ruby-printast-order-fix.md diff --git a/ruby/ql/lib/change-notes/2025-05-02-ruby-printast-order-fix.md b/ruby/ql/lib/change-notes/2025-05-02-ruby-printast-order-fix.md new file mode 100644 index 00000000000..b71b60c22b3 --- /dev/null +++ b/ruby/ql/lib/change-notes/2025-05-02-ruby-printast-order-fix.md @@ -0,0 +1,6 @@ +--- +category: fix +--- +### Bug Fixes + +* The Ruby printAst.qll library now orders AST nodes slightly differently: child nodes that do not literally appear in the source code, but whose parent nodes do, are assigned a deterministic order based on a combination of source location and logical order within the parent. This fixes the non-deterministic ordering that sometimes occurred depending on evaluation order. The effect may also be visible in downstream uses of the printAst library, such as the AST view in the VSCode extension. From 0a0be41527ac3cbbdfa09d2ccb1722ed840b9696 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 2 May 2025 16:33:52 -0400 Subject: [PATCH 270/656] Intermediate progress towards getting hashing upgraded. Still need to handle the final and update mechanics, matching the JCA. Similarly need to update cipher to follow the JCA for update/final as well. --- .../OpenSSLAlgorithmInstances.qll | 1 + .../OpenSSLAlgorithmValueConsumers.qll | 1 + .../Quantum/OpenSSL/EVPCipherConsumers.qll | 25 ------ .../OpenSSL/EVPHashAlgorithmSource.qll | 81 ------------------ .../Quantum/OpenSSL/EVPHashConsumers.qll | 30 ------- .../Quantum/OpenSSL/EVPHashInitializer.qll | 25 ------ .../Quantum/OpenSSL/EVPHashOperation.qll | 83 ------------------- .../OpenSSL/Operations/EVPCipherOperation.qll | 10 ++- .../OpenSSL/Operations/OpenSSLOperations.qll | 2 + java/ql/lib/experimental/Quantum/JCA.qll | 6 +- .../codeql/cryptography/Model.qll | 27 +++++- 11 files changed, 37 insertions(+), 254 deletions(-) delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashInitializer.qll delete mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll index 2a3f136f117..7a77a4c3e13 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll @@ -2,3 +2,4 @@ import OpenSSLAlgorithmInstanceBase import CipherAlgorithmInstance import PaddingAlgorithmInstance import BlockAlgorithmInstance +import HashAlgorithmInstance diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll index 46021269d71..0638595afb8 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll @@ -2,3 +2,4 @@ import OpenSSLAlgorithmValueConsumerBase import CipherAlgorithmValueConsumer import DirectAlgorithmValueConsumer import PaddingAlgorithmValueConsumer +import HashAlgorithmValueConsumer diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll deleted file mode 100644 index e2f5bc0e838..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPCipherConsumers.qll +++ /dev/null @@ -1,25 +0,0 @@ -import EVPCipherInitializer -import EVPCipherOperation -import EVPCipherAlgorithmSource - -class EVP_Cipher_Initializer_Algorithm_Consumer extends Crypto::AlgorithmConsumer instanceof EVPCipherInitializerAlgorithmArgument -{ - override DataFlow::Node getInputNode() { result.asExpr() = this } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - result.(KnownOpenSSLCipherConstantAlgorithmInstance).getConsumer() = this - } -} - -// //TODO: need a key consumer -// class EVP_Initializer_Key_Consumer extends Crypto::KeyConsumer instanceof EVP_Cipher_Inititalizer isntanceof InitializerKeyArgument{ -// } -class EVP_Cipher_Initializer_IV_Consumer extends Crypto::NonceArtifactConsumer instanceof EVPCipherInitializerIVArgument -{ - override DataFlow::Node getInputNode() { result.asExpr() = this } -} - -class EVP_Cipher_Input_Consumer extends Crypto::CipherInputConsumer instanceof EVPCipherInputArgument -{ - override DataFlow::Node getInputNode() { result.asExpr() = this } -} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll deleted file mode 100644 index d269658c8aa..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashAlgorithmSource.qll +++ /dev/null @@ -1,81 +0,0 @@ -import cpp -import experimental.Quantum.Language -import OpenSSLAlgorithmGetter - -predicate knownOpenSSLConstantToHashFamilyType(KnownOpenSSLAlgorithmConstant e, Crypto::THashType type) { - exists(string name | e.getAlgType().toLowerCase().matches("hash") | - name = e.getNormalizedName() and - ( - name.matches("BLAKE2B") and type instanceof Crypto::BLAKE2B - or - name.matches("BLAKE2S") and type instanceof Crypto::BLAKE2S - or - name.matches("GOST%") and type instanceof Crypto::GOSTHash - or - name.matches("MD2") and type instanceof Crypto::MD2 - or - name.matches("MD4") and type instanceof Crypto::MD4 - or - name.matches("MD5") and type instanceof Crypto::MD5 - or - name.matches("MDC2") and type instanceof Crypto::MDC2 - or - name.matches("POLY1305") and type instanceof Crypto::POLY1305 - or - name.matches(["SHA", "SHA1"]) and type instanceof Crypto::SHA1 - or - name.matches("SHA+%") and not name.matches(["SHA1", "SHA3-"]) and type instanceof Crypto::SHA2 - or - name.matches("SHA3-%") and type instanceof Crypto::SHA3 - or - name.matches(["SHAKE"]) and type instanceof Crypto::SHAKE - or - name.matches("SM3") and type instanceof Crypto::SM3 - or - name.matches("RIPEMD160") and type instanceof Crypto::RIPEMD160 - or - name.matches("WHIRLPOOL") and type instanceof Crypto::WHIRLPOOL - ) - ) -} - -class KnownOpenSSLHashConstantAlgorithmInstance extends Crypto::HashAlgorithmInstance instanceof KnownOpenSSLAlgorithmConstant -{ - OpenSSLAlgorithmGetterCall getterCall; - - KnownOpenSSLHashConstantAlgorithmInstance() { - // Not just any known value, but specifically a known hash - this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("hash") and - ( - // Two possibilities: - // 1) The source is a literal and flows to a getter, then we know we have an instance - // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that - // Possibility 1: - this instanceof Literal and - exists(DataFlow::Node src, DataFlow::Node sink | - // Sink is an argument to a CipherGetterCall - sink = getterCall.(OpenSSLAlgorithmGetterCall).getValueArgNode() and - // Source is `this` - src.asExpr() = this and - // This traces to a getter - KnownOpenSSLAlgorithmToAlgorithmGetterFlow::flow(src, sink) - ) - or - // Possibility 2: - this instanceof DirectGetterCall and getterCall = this - ) - } - - Crypto::AlgorithmConsumer getConsumer() { - AlgGetterToAlgConsumerFlow::flow(getterCall.getResultNode(), DataFlow::exprNode(result)) - } - - override Crypto::THashType getHashFamily() { - knownOpenSSLConstantToHashFamilyType(this, result) or - not knownOpenSSLConstantToHashFamilyType(this, _) and result = Crypto::OtherHashType() - } - - override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } - - // override int getHashSize() { none() } //TODO -} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll deleted file mode 100644 index 82bf331546f..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashConsumers.qll +++ /dev/null @@ -1,30 +0,0 @@ -import EVPHashInitializer -import EVPHashOperation -import EVPHashAlgorithmSource - -class EVP_Digest_Initializer_Algorithm_Consumer extends Crypto::AlgorithmValueConsumer instanceof EVPDigestInitializerAlgorithmArgument -{ - override DataFlow::Node getInputNode() { result.asExpr() = this } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this - } -} - -class EVP_Q_Digest_Algorithm_Consumer extends Crypto::AlgorithmValueConsumer instanceof EVP_Q_Digest_Algorithm_Argument -{ - override DataFlow::Node getInputNode() { result.asExpr() = this } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this - } -} - -class EVP_Digest_Algorithm_Consumer extends Crypto::AlgorithmValueConsumer instanceof EVP_Digest_Algorithm_Argument -{ - override DataFlow::Node getInputNode() { result.asExpr() = this } - - override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { - result.(KnownOpenSSLHashConstantAlgorithmInstance).getConsumer() = this - } -} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashInitializer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashInitializer.qll deleted file mode 100644 index 16a9234d68c..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashInitializer.qll +++ /dev/null @@ -1,25 +0,0 @@ -import cpp - -abstract class EVP_Hash_Inititalizer extends Call { - Expr getContextArg() { result = this.(Call).getArgument(0) } - - abstract Expr getAlgorithmArg(); -} - -class EVP_DigestInit_Variant_Calls extends EVP_Hash_Inititalizer { - EVP_DigestInit_Variant_Calls() { - this.(Call).getTarget().getName() in [ - "EVP_DigestInit", "EVP_DigestInit_ex", "EVP_DigestInit_ex2" - ] - } - - override Expr getAlgorithmArg() { result = this.(Call).getArgument(1) } - -} - - -class EVPDigestInitializerAlgorithmArgument extends Expr { - EVPDigestInitializerAlgorithmArgument() { - exists(EVP_Hash_Inititalizer initCall | this = initCall.getAlgorithmArg()) - } -} \ No newline at end of file diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll deleted file mode 100644 index 7db90c4eccc..00000000000 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/EVPHashOperation.qll +++ /dev/null @@ -1,83 +0,0 @@ -import experimental.Quantum.Language -import CtxFlow as CTXFlow -import LibraryDetector -import EVPHashInitializer -import EVPHashConsumers - -abstract class EVP_Hash_Operation extends Crypto::HashOperationInstance instanceof Call { - Expr getContextArg() { result = this.(Call).getArgument(0) } - - EVP_Hash_Inititalizer getInitCall() { - CTXFlow::ctxFlowsTo(result.getContextArg(), this.getContextArg()) - } -} - -//https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis -class EVP_Q_Digest_Operation extends EVP_Hash_Operation { - EVP_Q_Digest_Operation() { - this.(Call).getTarget().getName() = "EVP_Q_digest" and - isPossibleOpenSSLFunction(this.(Call).getTarget()) - } - - override Crypto::AlgorithmConsumer getAlgorithmConsumer() { this.(Call).getArgument(1) = result } - - override EVP_Hash_Inititalizer getInitCall() { - // This variant of digest does not use an init - // and even if it were used, the init would be ignored/undefined - none() - } -} - -class EVP_Q_Digest_Algorithm_Argument extends Expr { - EVP_Q_Digest_Algorithm_Argument() { - exists(EVP_Q_Digest_Operation op | this = op.(Call).getArgument(1)) - } -} - -class EVP_Digest_Operation extends EVP_Hash_Operation { - EVP_Digest_Operation() { - this.(Call).getTarget().getName() = "EVP_Digest" and - isPossibleOpenSSLFunction(this.(Call).getTarget()) - } - - // There is no context argument for this function - override Expr getContextArg() { none() } - - override Crypto::AlgorithmConsumer getAlgorithmConsumer() { this.(Call).getArgument(4) = result } - - override EVP_Hash_Inititalizer getInitCall() { - // This variant of digest does not use an init - // and even if it were used, the init would be ignored/undefined - none() - } -} - -class EVP_Digest_Algorithm_Argument extends Expr { - EVP_Digest_Algorithm_Argument() { - exists(EVP_Digest_Operation op | this = op.(Call).getArgument(4)) - } -} - -class EVP_DigestUpdate_Operation extends EVP_Hash_Operation { - EVP_DigestUpdate_Operation() { - this.(Call).getTarget().getName() = "EVP_DigestUpdate" and - isPossibleOpenSSLFunction(this.(Call).getTarget()) - } - - override Crypto::AlgorithmConsumer getAlgorithmConsumer() { - this.getInitCall().getAlgorithmArg() = result - } -} - -class EVP_DigestFinal_Variants_Operation extends EVP_Hash_Operation { - EVP_DigestFinal_Variants_Operation() { - this.(Call).getTarget().getName() in [ - "EVP_DigestFinal", "EVP_DigestFinal_ex", "EVP_DigestFinalXOF" - ] and - isPossibleOpenSSLFunction(this.(Call).getTarget()) - } - - override Crypto::AlgorithmConsumer getAlgorithmConsumer() { - this.getInitCall().getAlgorithmArg() = result - } -} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll index 56288e6acb7..ae05798ea1f 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll @@ -4,9 +4,7 @@ import EVPCipherInitializer import OpenSSLOperationBase import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers -// import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.AlgorithmValueConsumers -// import OpenSSLOperation -module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { +private module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { exists(OpenSSLAlgorithmValueConsumer c | c.getResultNode() = source) } @@ -16,8 +14,10 @@ module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { } } -module AlgGetterToAlgConsumerFlow = DataFlow::Global; +private module AlgGetterToAlgConsumerFlow = DataFlow::Global; +// import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.AlgorithmValueConsumers +// import OpenSSLOperation // class EVPCipherOutput extends CipherOutputArtifact { // EVPCipherOutput() { exists(EVP_Cipher_Operation op | op.getOutputArg() = this) } // override DataFlow::Node getOutputNode() { result.asDefiningArgument() = this } @@ -81,6 +81,8 @@ class EVP_Cipher_Call extends EVP_Cipher_Operation { override Expr getInputArg() { result = this.(Call).getArgument(2) } } +// ******* TODO NEED to model UPDATE but not as the coree operation, rather a step towards final, +// see the JCA // class EVP_Encrypt_Decrypt_or_Cipher_Update_Call extends EVP_Update_Call { // EVP_Encrypt_Decrypt_or_Cipher_Update_Call() { // this.(Call).getTarget().getName() in [ diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperations.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperations.qll index 76a60b064e5..819e964878c 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperations.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperations.qll @@ -1 +1,3 @@ +import OpenSSLOperationBase import EVPCipherOperation +import EVPHashOperation diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/Quantum/JCA.qll index 6589cbbc9d5..ceca0e45464 100644 --- a/java/ql/lib/experimental/Quantum/JCA.qll +++ b/java/ql/lib/experimental/Quantum/JCA.qll @@ -386,7 +386,7 @@ module JCAModel { override Crypto::THashType getHashFamily() { result = hash_name_to_type_known(hashName, _) } - override int getDigestLength() { exists(hash_name_to_type_known(hashName, result)) } + override int getFixedDigestLength() { exists(hash_name_to_type_known(hashName, result)) } } class OAEPPaddingAlgorithmInstance extends Crypto::OAEPPaddingAlgorithmInstance, @@ -829,7 +829,7 @@ module JCAModel { result = hash_name_to_type_known(this.getRawHashAlgorithmName(), _) } - override int getDigestLength() { + override int getFixedDigestLength() { exists(hash_name_to_type_known(this.getRawHashAlgorithmName(), result)) } } @@ -1237,7 +1237,7 @@ module JCAModel { result = hash_name_to_type_known(this.getRawHashAlgorithmName(), _) } - override int getDigestLength() { + override int getFixedDigestLength() { exists(hash_name_to_type_known(this.getRawHashAlgorithmName(), result)) } diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/cryptography/codeql/cryptography/Model.qll index 8fcc304e9ef..69a4fd75acf 100644 --- a/shared/cryptography/codeql/cryptography/Model.qll +++ b/shared/cryptography/codeql/cryptography/Model.qll @@ -983,9 +983,27 @@ module CryptographyBase Input> { abstract string getRawHashAlgorithmName(); /** - * Gets the length of the hash digest in bits. + * Gets the length of the hash digest in bits if it is not an implicit size + * and is not fixed by the algorithm. + * For example, SHA-256 has a fixed length of 256 bits. + * SHA-1 should not be modled with digest length as it is always 160 bits. + * Fixed length digests are modeled with `fixedImplicitDigestLength` and + * are used at the node level. */ - abstract int getDigestLength(); + abstract int getFixedDigestLength(); + } + + predicate fixedImplicitDigestLength(THashType type, int digestLength) { + type instanceof SHA1 and digestLength = 160 + or + type instanceof MD5 and + digestLength = 128 + or + type instanceof RIPEMD160 and + digestLength = 160 + or + type instanceof WHIRLPOOL and + digestLength = 512 // TODO: verify } abstract private class KeyCreationOperationInstance extends OperationInstance { @@ -2398,7 +2416,10 @@ module CryptographyBase Input> { override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashFamily(), result) } - int getDigestLength() { result = instance.asAlg().getDigestLength() } + int getDigestLength() { + result = instance.asAlg().getFixedDigestLength() or + fixedImplicitDigestLength(instance.asAlg().getHashFamily(), result) + } final override predicate properties(string key, string value, Location location) { super.properties(key, value, location) From 4042081539ac17b7a163f7a24ae76e907b0066d6 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 2 May 2025 16:35:27 -0400 Subject: [PATCH 271/656] Missing files, should have been part of last commit. --- .../CipherAlgorithmInstance.qll | 35 ++-- .../HashAlgorithmInstance.qll | 83 +++++++++ .../KnownAlgorithmConstants.qll | 160 +++++++++++------- .../HashAlgorithmValueConsumer.qll | 35 ++++ .../OpenSSL/Operations/EVPHashInitializer.qll | 17 ++ .../OpenSSL/Operations/EVPHashOperation.qll | 117 +++++++++++++ 6 files changed, 365 insertions(+), 82 deletions(-) create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashInitializer.qll create mode 100644 cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashOperation.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll index 03f2643d46d..0dd948c9fae 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll @@ -66,28 +66,25 @@ predicate knownOpenSSLConstantToCipherFamilyType( class KnownOpenSSLCipherConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, Crypto::KeyOperationAlgorithmInstance instanceof KnownOpenSSLCipherAlgorithmConstant { - //OpenSSLAlgorithmInstance, OpenSSLAlgorithmValueConsumer getterCall; KnownOpenSSLCipherConstantAlgorithmInstance() { - ( - // Two possibilities: - // 1) The source is a literal and flows to a getter, then we know we have an instance - // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that - // Possibility 1: - this instanceof Literal and - exists(DataFlow::Node src, DataFlow::Node sink | - // Sink is an argument to a CipherGetterCall - sink = getterCall.(OpenSSLAlgorithmValueConsumer).getInputNode() and - // Source is `this` - src.asExpr() = this and - // This traces to a getter - KnownOpenSSLAlgorithmToAlgorithmValueConsumerFlow::flow(src, sink) - ) - or - // Possibility 2: - this instanceof DirectAlgorithmValueConsumer and getterCall = this + // Two possibilities: + // 1) The source is a literal and flows to a getter, then we know we have an instance + // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that + // Possibility 1: + this instanceof Literal and + exists(DataFlow::Node src, DataFlow::Node sink | + // Sink is an argument to a CipherGetterCall + sink = getterCall.(OpenSSLAlgorithmValueConsumer).getInputNode() and + // Source is `this` + src.asExpr() = this and + // This traces to a getter + KnownOpenSSLAlgorithmToAlgorithmValueConsumerFlow::flow(src, sink) ) + or + // Possibility 2: + this instanceof DirectAlgorithmValueConsumer and getterCall = this } override Crypto::ModeOfOperationAlgorithmInstance getModeOfOperationAlgorithm() { @@ -101,7 +98,7 @@ class KnownOpenSSLCipherConstantAlgorithmInstance extends OpenSSLAlgorithmInstan //TODO: the padding is either self, or it flows through getter ctx to a set padding call // like EVP_PKEY_CTX_set_rsa_padding result = this - // or trace through getter ctx to set padding + // TODO or trace through getter ctx to set padding } override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll new file mode 100644 index 00000000000..4b412da9b55 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll @@ -0,0 +1,83 @@ +import cpp +import experimental.Quantum.Language +import KnownAlgorithmConstants +import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +import AlgToAVCFlow + +predicate knownOpenSSLConstantToHashFamilyType( + KnownOpenSSLHashAlgorithmConstant e, Crypto::THashType type +) { + exists(string name | + name = e.getNormalizedName() and + ( + name.matches("BLAKE2B") and type instanceof Crypto::BLAKE2B + or + name.matches("BLAKE2S") and type instanceof Crypto::BLAKE2S + or + name.matches("GOST%") and type instanceof Crypto::GOSTHash + or + name.matches("MD2") and type instanceof Crypto::MD2 + or + name.matches("MD4") and type instanceof Crypto::MD4 + or + name.matches("MD5") and type instanceof Crypto::MD5 + or + name.matches("MDC2") and type instanceof Crypto::MDC2 + or + name.matches("POLY1305") and type instanceof Crypto::POLY1305 + or + name.matches(["SHA", "SHA1"]) and type instanceof Crypto::SHA1 + or + name.matches("SHA+%") and not name.matches(["SHA1", "SHA3-"]) and type instanceof Crypto::SHA2 + or + name.matches("SHA3-%") and type instanceof Crypto::SHA3 + or + name.matches(["SHAKE"]) and type instanceof Crypto::SHAKE + or + name.matches("SM3") and type instanceof Crypto::SM3 + or + name.matches("RIPEMD160") and type instanceof Crypto::RIPEMD160 + or + name.matches("WHIRLPOOL") and type instanceof Crypto::WHIRLPOOL + ) + ) +} + +class KnownOpenSSLHashConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, + Crypto::HashAlgorithmInstance instanceof KnownOpenSSLHashAlgorithmConstant +{ + OpenSSLAlgorithmValueConsumer getterCall; + + KnownOpenSSLHashConstantAlgorithmInstance() { + // Two possibilities: + // 1) The source is a literal and flows to a getter, then we know we have an instance + // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that + // Possibility 1: + this instanceof Literal and + exists(DataFlow::Node src, DataFlow::Node sink | + // Sink is an argument to a CipherGetterCall + sink = getterCall.(OpenSSLAlgorithmValueConsumer).getInputNode() and + // Source is `this` + src.asExpr() = this and + // This traces to a getter + KnownOpenSSLAlgorithmToAlgorithmValueConsumerFlow::flow(src, sink) + ) + or + // Possibility 2: + this instanceof DirectAlgorithmValueConsumer and getterCall = this + } + + override OpenSSLAlgorithmValueConsumer getAVC() { result = getterCall } + + override Crypto::THashType getHashFamily() { + knownOpenSSLConstantToHashFamilyType(this, result) + or + not knownOpenSSLConstantToHashFamilyType(this, _) and result = Crypto::OtherHashType() + } + + override string getRawHashAlgorithmName() { result = this.(Literal).getValue().toString() } + + override int getFixedDigestLength() { + this.(KnownOpenSSLHashAlgorithmConstant).getExplicitDigestLength() = result + } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index 80bd6b422da..a0f0107d0ac 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -1,40 +1,69 @@ import cpp import experimental.Quantum.OpenSSL.LibraryDetector +predicate resolveAlgorithmFromExpr(Expr e, string normalizedName, string algType) { + resolveAlgorithmFromCall(e, normalizedName, algType) + or + resolveAlgorithmFromLiteral(e, normalizedName, algType) +} + class KnownOpenSSLAlgorithmConstant extends Expr { - string normalizedName; - string algType; + KnownOpenSSLAlgorithmConstant() { resolveAlgorithmFromExpr(this, _, _) } - KnownOpenSSLAlgorithmConstant() { - resolveAlgorithmFromCall(this, normalizedName, algType) - or - resolveAlgorithmFromLiteral(this, normalizedName, algType) - } + string getNormalizedName() { resolveAlgorithmFromExpr(this, result, _) } - string getNormalizedName() { result = normalizedName } - - string getAlgType() { result = algType } + string getAlgType() { resolveAlgorithmFromExpr(this, _, result) } } class KnownOpenSSLCipherAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { + string algType; + KnownOpenSSLCipherAlgorithmConstant() { - this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("%encryption") + resolveAlgorithmFromExpr(this, _, algType) and + algType.toLowerCase().matches("%encryption") } int getExplicitKeySize() { - result = this.getNormalizedName().regexpCapture(".*-(\\d*)", 1).toInt() + exists(string name | + name = this.getNormalizedName() and + resolveAlgorithmFromExpr(this, name, algType) and + result = name.regexpCapture(".*-(\\d*)", 1).toInt() + ) } } class KnownOpenSSLPaddingAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { + string algType; + KnownOpenSSLPaddingAlgorithmConstant() { - this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("%padding") + resolveAlgorithmFromExpr(this, _, algType) and + algType.toLowerCase().matches("%padding") } } class KnownOpenSSLBlockModeAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { + string algType; + KnownOpenSSLBlockModeAlgorithmConstant() { - this.(KnownOpenSSLAlgorithmConstant).getAlgType().toLowerCase().matches("block_mode") + resolveAlgorithmFromExpr(this, _, algType) and + algType.toLowerCase().matches("%block_mode") + } +} + +class KnownOpenSSLHashAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { + string algType; + + KnownOpenSSLHashAlgorithmConstant() { + resolveAlgorithmFromExpr(this, _, algType) and + algType.toLowerCase().matches("%hash") + } + + int getExplicitDigestLength() { + exists(string name | + name = this.getNormalizedName() and + resolveAlgorithmFromExpr(this, name, "HASH") and + result = name.regexpCapture(".*-(\\d*)$", 1).toInt() + ) } } @@ -224,6 +253,11 @@ predicate defaultAliases(string target, string alias) { alias = "ssl3-sha1" and target = "sha1" } +predicate tbd(string normalized, string algType) { + knownOpenSSLAlgorithmLiteral(_, _, normalized, algType) and + algType = "HASH" +} + /** * Enumeration of all known crypto algorithms for openSSL * `name` is all lower case (caller's must ensure they pass in lower case) @@ -244,9 +278,9 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "gost2001" and nid = 811 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" or - name = "gost2012_256" and nid = 979 and normalized = "GOST" and algType = "HASH" // TODO: Verify algorithm type + name = "gost2012_256" and nid = 979 and normalized = "GOST" and algType = "ELLIPTIC_CURVE" // TODO: Verify algorithm type or - name = "gost2012_512" and nid = 980 and normalized = "GOST" and algType = "HASH" // TODO: Verify algorithm type + name = "gost2012_512" and nid = 980 and normalized = "GOST" and algType = "ELLIPTIC_CURVE" // TODO: Verify algorithm type or name = "ed25519" and nid = 1087 and normalized = "ED25519" and algType = "ELLIPTIC_CURVE" or @@ -266,17 +300,17 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "md5" and nid = 4 and normalized = "MD5" and algType = "HASH" or - name = "sha224" and nid = 675 and normalized = "SHA224" and algType = "HASH" + name = "sha224" and nid = 675 and normalized = "SHA-224" and algType = "HASH" or - name = "sha256" and nid = 672 and normalized = "SHA256" and algType = "HASH" + name = "sha256" and nid = 672 and normalized = "SHA-256" and algType = "HASH" or - name = "sha384" and nid = 673 and normalized = "SHA384" and algType = "HASH" + name = "sha384" and nid = 673 and normalized = "SHA-384" and algType = "HASH" or - name = "sha512" and nid = 674 and normalized = "SHA512" and algType = "HASH" + name = "sha512" and nid = 674 and normalized = "SHA-512" and algType = "HASH" or - name = "sha512-224" and nid = 1094 and normalized = "SHA512224" and algType = "HASH" + name = "sha512-224" and nid = 1094 and normalized = "SHA-512-224" and algType = "HASH" or - name = "sha512-256" and nid = 1095 and normalized = "SHA512256" and algType = "HASH" + name = "sha512-256" and nid = 1095 and normalized = "SHA-512-256" and algType = "HASH" or name = "sha3-224" and nid = 1096 and normalized = "SHA3-224" and algType = "HASH" or @@ -286,9 +320,9 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "sha3-512" and nid = 1099 and normalized = "SHA3-512" and algType = "HASH" or - name = "shake128" and nid = 1100 and normalized = "SHAKE128" and algType = "HASH" + name = "shake128" and nid = 1100 and normalized = "SHAKE-128" and algType = "HASH" or - name = "shake256" and nid = 1101 and normalized = "SHAKE256" and algType = "HASH" + name = "shake256" and nid = 1101 and normalized = "SHAKE-256" and algType = "HASH" or name = "mdc2" and nid = 95 and normalized = "MDC2" and algType = "HASH" or @@ -1141,7 +1175,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aes-256-cbc-hmac-sha1" and nid = 918 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aes-128-cbc-hmac-sha256" and nid = 948 and normalized = "SHA256" and algType = "HASH" + name = "aes-128-cbc-hmac-sha256" and nid = 948 and normalized = "SHA-256" and algType = "HASH" or name = "aes-128-cbc-hmac-sha256" and nid = 948 and @@ -1150,7 +1184,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aes-128-cbc-hmac-sha256" and nid = 948 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aes-192-cbc-hmac-sha256" and nid = 949 and normalized = "SHA256" and algType = "HASH" + name = "aes-192-cbc-hmac-sha256" and nid = 949 and normalized = "SHA-256" and algType = "HASH" or name = "aes-192-cbc-hmac-sha256" and nid = 949 and @@ -1159,7 +1193,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "aes-192-cbc-hmac-sha256" and nid = 949 and normalized = "CBC" and algType = "BLOCK_MODE" or - name = "aes-256-cbc-hmac-sha256" and nid = 950 and normalized = "SHA256" and algType = "HASH" + name = "aes-256-cbc-hmac-sha256" and nid = 950 and normalized = "SHA-256" and algType = "HASH" or name = "aes-256-cbc-hmac-sha256" and nid = 950 and @@ -1389,11 +1423,11 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "id-dsa-with-sha384" and nid = 1106 and normalized = "DSA" and algType = "SIGNATURE" or - name = "id-dsa-with-sha384" and nid = 1106 and normalized = "SHA384" and algType = "HASH" + name = "id-dsa-with-sha384" and nid = 1106 and normalized = "SHA-384" and algType = "HASH" or name = "id-dsa-with-sha512" and nid = 1107 and normalized = "DSA" and algType = "SIGNATURE" or - name = "id-dsa-with-sha512" and nid = 1107 and normalized = "SHA512" and algType = "HASH" + name = "id-dsa-with-sha512" and nid = 1107 and normalized = "SHA-512" and algType = "HASH" or name = "id-dsa-with-sha3-224" and nid = 1108 and normalized = "DSA" and algType = "SIGNATURE" or @@ -1773,22 +1807,22 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "dhsinglepass-cofactordh-sha224kdf-scheme" and nid = 942 and - normalized = "SHA224" and + normalized = "SHA-224" and algType = "HASH" or name = "dhsinglepass-cofactordh-sha256kdf-scheme" and nid = 943 and - normalized = "SHA256" and + normalized = "SHA-256" and algType = "HASH" or name = "dhsinglepass-cofactordh-sha384kdf-scheme" and nid = 944 and - normalized = "SHA384" and + normalized = "SHA-384" and algType = "HASH" or name = "dhsinglepass-cofactordh-sha512kdf-scheme" and nid = 945 and - normalized = "SHA512" and + normalized = "SHA-512" and algType = "HASH" or name = "dhsinglepass-stddh-sha1kdf-scheme" and @@ -1798,22 +1832,22 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "dhsinglepass-stddh-sha224kdf-scheme" and nid = 937 and - normalized = "SHA224" and + normalized = "SHA-224" and algType = "HASH" or name = "dhsinglepass-stddh-sha256kdf-scheme" and nid = 938 and - normalized = "SHA256" and + normalized = "SHA-256" and algType = "HASH" or name = "dhsinglepass-stddh-sha384kdf-scheme" and nid = 939 and - normalized = "SHA384" and + normalized = "SHA-384" and algType = "HASH" or name = "dhsinglepass-stddh-sha512kdf-scheme" and nid = 940 and - normalized = "SHA512" and + normalized = "SHA-512" and algType = "HASH" or name = "dsa-old" and nid = 67 and normalized = "DSA" and algType = "SIGNATURE" @@ -1832,9 +1866,9 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "dsa_with_sha224" and nid = 802 and normalized = "DSA" and algType = "SIGNATURE" or - name = "dsa_with_sha224" and nid = 802 and normalized = "SHA224" and algType = "HASH" + name = "dsa_with_sha224" and nid = 802 and normalized = "SHA-224" and algType = "HASH" or - name = "dsa_with_sha256" and nid = 803 and normalized = "SHA256" and algType = "HASH" + name = "dsa_with_sha256" and nid = 803 and normalized = "SHA-256" and algType = "HASH" or name = "dsa_with_sha256" and nid = 803 and normalized = "DSA" and algType = "SIGNATURE" or @@ -1856,11 +1890,11 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "dsa_with_sha384" and nid = 1106 and normalized = "DSA" and algType = "SIGNATURE" or - name = "dsa_with_sha384" and nid = 1106 and normalized = "SHA384" and algType = "HASH" + name = "dsa_with_sha384" and nid = 1106 and normalized = "SHA-384" and algType = "HASH" or name = "dsa_with_sha512" and nid = 1107 and normalized = "DSA" and algType = "SIGNATURE" or - name = "dsa_with_sha512" and nid = 1107 and normalized = "SHA512" and algType = "HASH" + name = "dsa_with_sha512" and nid = 1107 and normalized = "SHA-512" and algType = "HASH" or name = "dsaencryption" and nid = 116 and normalized = "DSA" and algType = "SIGNATURE" or @@ -1906,19 +1940,19 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "ecdsa-with-sha1" and nid = 416 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "ecdsa-with-sha224" and nid = 793 and normalized = "SHA224" and algType = "HASH" + name = "ecdsa-with-sha224" and nid = 793 and normalized = "SHA-224" and algType = "HASH" or name = "ecdsa-with-sha224" and nid = 793 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "ecdsa-with-sha256" and nid = 794 and normalized = "SHA256" and algType = "HASH" + name = "ecdsa-with-sha256" and nid = 794 and normalized = "SHA-256" and algType = "HASH" or name = "ecdsa-with-sha256" and nid = 794 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "ecdsa-with-sha384" and nid = 795 and normalized = "SHA384" and algType = "HASH" + name = "ecdsa-with-sha384" and nid = 795 and normalized = "SHA-384" and algType = "HASH" or name = "ecdsa-with-sha384" and nid = 795 and normalized = "ECDSA" and algType = "SIGNATURE" or - name = "ecdsa-with-sha512" and nid = 796 and normalized = "SHA512" and algType = "HASH" + name = "ecdsa-with-sha512" and nid = 796 and normalized = "SHA-512" and algType = "HASH" or name = "ecdsa-with-sha512" and nid = 796 and normalized = "ECDSA" and algType = "SIGNATURE" or @@ -2114,17 +2148,17 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "hmacwithsha1" and nid = 163 and normalized = "SHA1" and algType = "HASH" or - name = "hmacwithsha224" and nid = 798 and normalized = "SHA224" and algType = "HASH" + name = "hmacwithsha224" and nid = 798 and normalized = "SHA-224" and algType = "HASH" or - name = "hmacwithsha256" and nid = 799 and normalized = "SHA256" and algType = "HASH" + name = "hmacwithsha256" and nid = 799 and normalized = "SHA-256" and algType = "HASH" or - name = "hmacwithsha384" and nid = 800 and normalized = "SHA384" and algType = "HASH" + name = "hmacwithsha384" and nid = 800 and normalized = "SHA-384" and algType = "HASH" or - name = "hmacwithsha512" and nid = 801 and normalized = "SHA512" and algType = "HASH" + name = "hmacwithsha512" and nid = 801 and normalized = "SHA-512" and algType = "HASH" or - name = "hmacwithsha512-224" and nid = 1193 and normalized = "SHA512224" and algType = "HASH" + name = "hmacwithsha512-224" and nid = 1193 and normalized = "SHA-512-224" and algType = "HASH" or - name = "hmacwithsha512-256" and nid = 1194 and normalized = "SHA512256" and algType = "HASH" + name = "hmacwithsha512-256" and nid = 1194 and normalized = "SHA-512-256" and algType = "HASH" or name = "hmacwithsm3" and nid = 1281 and normalized = "SM3" and algType = "HASH" or @@ -2765,11 +2799,11 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "rsa-sha224" and nid = 671 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsa-sha224" and nid = 671 and normalized = "SHA224" and algType = "HASH" + name = "rsa-sha224" and nid = 671 and normalized = "SHA-224" and algType = "HASH" or name = "rsa-sha256" and nid = 668 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsa-sha256" and nid = 668 and normalized = "SHA256" and algType = "HASH" + name = "rsa-sha256" and nid = 668 and normalized = "SHA-256" and algType = "HASH" or name = "rsa-sha3-224" and nid = 1116 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or @@ -2789,25 +2823,25 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "rsa-sha384" and nid = 669 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsa-sha384" and nid = 669 and normalized = "SHA384" and algType = "HASH" + name = "rsa-sha384" and nid = 669 and normalized = "SHA-384" and algType = "HASH" or name = "rsa-sha512" and nid = 670 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsa-sha512" and nid = 670 and normalized = "SHA512" and algType = "HASH" + name = "rsa-sha512" and nid = 670 and normalized = "SHA-512" and algType = "HASH" or name = "rsa-sha512/224" and nid = 1145 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsa-sha512/224" and nid = 1145 and normalized = "SHA512224" and algType = "HASH" + name = "rsa-sha512/224" and nid = 1145 and normalized = "SHA-512-224" and algType = "HASH" or name = "rsa-sha512/256" and nid = 1146 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "rsa-sha512/256" and nid = 1146 and normalized = "SHA512256" and algType = "HASH" + name = "rsa-sha512/256" and nid = 1146 and normalized = "SHA-512-256" and algType = "HASH" or name = "rsa-sm3" and nid = 1144 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or @@ -2859,21 +2893,21 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "sha224withrsaencryption" and nid = 671 and normalized = "SHA224" and algType = "HASH" + name = "sha224withrsaencryption" and nid = 671 and normalized = "SHA-224" and algType = "HASH" or name = "sha256withrsaencryption" and nid = 668 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "sha256withrsaencryption" and nid = 668 and normalized = "SHA256" and algType = "HASH" + name = "sha256withrsaencryption" and nid = 668 and normalized = "SHA-256" and algType = "HASH" or name = "sha384withrsaencryption" and nid = 669 and normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "sha384withrsaencryption" and nid = 669 and normalized = "SHA384" and algType = "HASH" + name = "sha384withrsaencryption" and nid = 669 and normalized = "SHA-384" and algType = "HASH" or name = "sha512-224withrsaencryption" and nid = 1145 and @@ -2882,7 +2916,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "sha512-224withrsaencryption" and nid = 1145 and - normalized = "SHA512224" and + normalized = "SHA-512-224" and algType = "HASH" or name = "sha512-256withrsaencryption" and @@ -2892,7 +2926,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "sha512-256withrsaencryption" and nid = 1146 and - normalized = "SHA512256" and + normalized = "SHA-512-256" and algType = "HASH" or name = "sha512withrsaencryption" and @@ -2900,7 +2934,7 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, normalized = "RSA" and algType = "ASYMMETRIC_ENCRYPTION" or - name = "sha512withrsaencryption" and nid = 670 and normalized = "SHA512" and algType = "HASH" + name = "sha512withrsaencryption" and nid = 670 and normalized = "SHA-512" and algType = "HASH" or name = "shawithrsaencryption" and nid = 42 and diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll new file mode 100644 index 00000000000..753bb356e7a --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll @@ -0,0 +1,35 @@ +// import EVPHashInitializer +// import EVPHashOperation +// import EVPHashAlgorithmSource +import cpp +import experimental.Quantum.Language +import semmle.code.cpp.dataflow.new.DataFlow +import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +import experimental.Quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances +import experimental.Quantum.OpenSSL.LibraryDetector + +abstract class HashAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } + +/** + * EVP_Q_Digest directly consumes algorithm constant values + */ +class EVP_Q_Digest_Algorithm_Consumer extends OpenSSLAlgorithmValueConsumer { + EVP_Q_Digest_Algorithm_Consumer() { + isPossibleOpenSSLFunction(this.(Call).getTarget()) and + this.(Call).getTarget().getName() = "EVP_Q_digest" + } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { + result.asExpr() = this.(Call).getArgument(1) + } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + exists(OpenSSLAlgorithmInstance i | i.getAVC() = this and result = i) + } + + override DataFlow::Node getResultNode() { + // EVP_Q_Digest directly consumes the algorithm constant value and performs the operation, there is no + // algorithm result + none() + } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashInitializer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashInitializer.qll new file mode 100644 index 00000000000..cd0dac94001 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashInitializer.qll @@ -0,0 +1,17 @@ +import cpp + +abstract class EVP_Hash_Inititalizer extends Call { + Expr getContextArg() { result = this.(Call).getArgument(0) } + + abstract Expr getAlgorithmArg(); +} + +class EVP_DigestInit_Variant_Calls extends EVP_Hash_Inititalizer { + EVP_DigestInit_Variant_Calls() { + this.(Call).getTarget().getName() in [ + "EVP_DigestInit", "EVP_DigestInit_ex", "EVP_DigestInit_ex2" + ] + } + + override Expr getAlgorithmArg() { result = this.(Call).getArgument(1) } +} diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashOperation.qll new file mode 100644 index 00000000000..b7771e240a4 --- /dev/null +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashOperation.qll @@ -0,0 +1,117 @@ +/** + * https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis + */ + +import experimental.Quantum.Language +import experimental.Quantum.OpenSSL.CtxFlow as CTXFlow +import experimental.Quantum.OpenSSL.LibraryDetector +import OpenSSLOperationBase +import EVPHashInitializer +import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers + +// import EVPHashConsumers +abstract class EVP_Hash_Operation extends OpenSSLOperation, Crypto::HashOperationInstance { + Expr getContextArg() { result = this.(Call).getArgument(0) } + + EVP_Hash_Inititalizer getInitCall() { + CTXFlow::ctxArgFlowsToCtxArg(result.getContextArg(), this.getContextArg()) + } +} + +private module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + exists(OpenSSLAlgorithmValueConsumer c | c.getResultNode() = source) + } + + predicate isSink(DataFlow::Node sink) { + exists(EVP_Hash_Operation c | c.getInitCall().getAlgorithmArg() = sink.asExpr()) + } +} + +private module AlgGetterToAlgConsumerFlow = DataFlow::Global; + +//https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis +class EVP_Q_Digest_Operation extends EVP_Hash_Operation { + EVP_Q_Digest_Operation() { + this.(Call).getTarget().getName() = "EVP_Q_digest" and + isPossibleOpenSSLFunction(this.(Call).getTarget()) + } + + //override Crypto::AlgorithmConsumer getAlgorithmConsumer() { } + override EVP_Hash_Inititalizer getInitCall() { + // This variant of digest does not use an init + // and even if it were used, the init would be ignored/undefined + none() + } + + override Expr getOutputArg() { result = this.(Call).getArgument(5) } + + override Expr getInputArg() { result = this.(Call).getArgument(3) } + + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { result = this.getOutputNode() } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { result = this.getInputNode() } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + // The operation is a direct algorithm consumer + // NOTE: the operation itself is already modeld as a value consumer, so we can + // simply return 'this', see modeled hash algorithm consuers for EVP_Q_Digest + this = result + } +} + +class EVP_Digest_Operation extends EVP_Hash_Operation { + EVP_Digest_Operation() { + this.(Call).getTarget().getName() = "EVP_Digest" and + isPossibleOpenSSLFunction(this.(Call).getTarget()) + } + + // There is no context argument for this function + override Expr getContextArg() { none() } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + AlgGetterToAlgConsumerFlow::flow(result.(OpenSSLAlgorithmValueConsumer).getResultNode(), + DataFlow::exprNode(this.(Call).getArgument(4))) + } + + override EVP_Hash_Inititalizer getInitCall() { + // This variant of digest does not use an init + // and even if it were used, the init would be ignored/undefined + none() + } + + override Expr getOutputArg() { result = this.(Call).getArgument(2) } + + override Expr getInputArg() { result = this.(Call).getArgument(0) } + + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { result = this.getOutputNode() } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { result = this.getInputNode() } +} +// // override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { +// // AlgGetterToAlgConsumerFlow::flow(result.(OpenSSLAlgorithmValueConsumer).getResultNode(), +// // DataFlow::exprNode(this.getInitCall().getAlgorithmArg())) +// // } +// // ***** TODO *** complete modelinlg for hash operations, but have consideration for terminal and non-terminal (non intermedaite) steps +// // see the JCA. May need to update the cipher operations similarly +// // ALSO SEE cipher for how we currently model initialization of the algorithm through an init call +// class EVP_DigestUpdate_Operation extends EVP_Hash_Operation { +// EVP_DigestUpdate_Operation() { +// this.(Call).getTarget().getName() = "EVP_DigestUpdate" and +// isPossibleOpenSSLFunction(this.(Call).getTarget()) +// } +// override Crypto::AlgorithmConsumer getAlgorithmConsumer() { +// this.getInitCall().getAlgorithmArg() = result +// } +// } +// class EVP_DigestFinal_Variants_Operation extends EVP_Hash_Operation { +// EVP_DigestFinal_Variants_Operation() { +// this.(Call).getTarget().getName() in [ +// "EVP_DigestFinal", "EVP_DigestFinal_ex", "EVP_DigestFinalXOF" +// ] and +// isPossibleOpenSSLFunction(this.(Call).getTarget()) +// } +// override Crypto::AlgorithmConsumer getAlgorithmConsumer() { +// this.getInitCall().getAlgorithmArg() = result +// } +// } From d600eb42cf10f56705688bceb2806386f6179ff1 Mon Sep 17 00:00:00 2001 From: Sid Gawri Date: Fri, 2 May 2025 17:25:02 -0400 Subject: [PATCH 272/656] add new stubs --- csharp/ql/test/experimental/CWE-918/options | 1 + .../CookieHttpOnlyFalseSystemWeb/options | 1 + .../ConfigEmpty/options | 1 + .../ConfigFalse/options | 1 + .../HttpCookiesTrue/options | 1 + .../CWE-614/RequireSSLFalseSystemWeb/options | 1 + .../RequireSSLSystemWeb/ConfigEmpty/options | 1 + .../RequireSSLSystemWeb/ConfigFalse/options | 1 + .../RequireSSLSystemWeb/FormsTrue/options | 1 + .../HttpCookiesTrue/options | 1 + .../Security Features/CWE-020/options | 1 + .../CWE-022/TaintedPath/options | 1 + .../CWE-079/StoredXSS/options | 1 + .../Security Features/CWE-090/options | 1 + .../CWE-091/XMLInjection/options | 1 + .../Security Features/CWE-094/options | 1 + .../Security Features/CWE-099/options | 1 + .../Security Features/CWE-112/options | 1 + .../CWE-114/AssemblyPathInjection/options | 1 + .../Security Features/CWE-134/options | 1 + .../CWE-201/ExposureInTransmittedData/options | 1 + .../Security Features/CWE-209/options | 1 + .../WebConfigOff/options | 1 + .../WebConfigOffButGlobal/options | 1 + .../WebFormsTests/options | 1 + .../Security Features/CWE-312/options | 1 + .../Security Features/CWE-352/global/options | 1 + .../Security Features/CWE-352/missing/options | 1 + .../Security Features/CWE-359/options | 1 + .../Security Features/CWE-384/options | 1 + .../CodeAddedHeader/options | 1 + .../MissingXFrameOptions/NoHeader/options | 1 + .../WebConfigAddedHeader/options | 1 + .../CWE-502/UnsafeDeserialization/options | 1 + .../options | 1 + .../options | 1 + .../CWE-539/PersistentCookie/options | 1 + .../CWE-614/RequireSSL/AddedInCode/options | 1 + .../CWE-639/WebFormsTests/options | 1 + .../Security Features/CWE-643/options | 1 + .../Security Features/CWE-730/ReDoS/options | 1 + .../CWE-730/ReDoSGlobalTimeout/options | 1 + .../CWE-730/RegexInjection/options | 1 + .../Security Features/CWE-807/options | 1 + .../Security Features/CWE-838/options | 1 + .../Telemetry/SupportedExternalApis/options | 1 + .../Telemetry/SupportedExternalSinks/options | 1 + csharp/ql/test/resources/stubs/System.Net.cs | 16 +++++ csharp/ql/test/resources/stubs/System.Web.cs | 59 ++++++++++++++++++- 49 files changed, 121 insertions(+), 1 deletion(-) diff --git a/csharp/ql/test/experimental/CWE-918/options b/csharp/ql/test/experimental/CWE-918/options index 09b08bf4d27..914a0be40c9 100644 --- a/csharp/ql/test/experimental/CWE-918/options +++ b/csharp/ql/test/experimental/CWE-918/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../resources/stubs/System.Web.cs \ No newline at end of file diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseSystemWeb/options b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseSystemWeb/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseSystemWeb/options +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseSystemWeb/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigEmpty/options b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigEmpty/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigEmpty/options +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigEmpty/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigFalse/options b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigFalse/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigFalse/options +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigFalse/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/HttpCookiesTrue/options b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/HttpCookiesTrue/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/HttpCookiesTrue/options +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/HttpCookiesTrue/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseSystemWeb/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseSystemWeb/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseSystemWeb/options +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseSystemWeb/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigEmpty/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigEmpty/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigEmpty/options +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigEmpty/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigFalse/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigFalse/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigFalse/options +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigFalse/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/FormsTrue/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/FormsTrue/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/FormsTrue/options +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/FormsTrue/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/HttpCookiesTrue/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/HttpCookiesTrue/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/HttpCookiesTrue/options +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/HttpCookiesTrue/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-020/options b/csharp/ql/test/query-tests/Security Features/CWE-020/options index 96b0b028bdd..0ce0c6870b7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-020/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-020/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/options b/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/options b/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/options index c5b4a958655..ebbb0432489 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-090/options b/csharp/ql/test/query-tests/Security Features/CWE-090/options index 20a0480c8e2..ba17ecb5638 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-090/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-090/options @@ -1,4 +1,5 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.DirectoryServices.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/options b/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-094/options b/csharp/ql/test/query-tests/Security Features/CWE-094/options index cce2f114af6..ce5d6db635a 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-094/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-094/options @@ -1,5 +1,6 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/Microsoft.CSharp.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-099/options b/csharp/ql/test/query-tests/Security Features/CWE-099/options index 7404a7573b2..595b1a2bac0 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-099/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-099/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-112/options b/csharp/ql/test/query-tests/Security Features/CWE-112/options index 96b0b028bdd..0ce0c6870b7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-112/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-112/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/options b/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-134/options b/csharp/ql/test/query-tests/Security Features/CWE-134/options index ab08ee323e2..aff430e13cc 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-134/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-134/options @@ -1,4 +1,5 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/options b/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/options index c5b4a958655..ebbb0432489 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-209/options b/csharp/ql/test/query-tests/Security Features/CWE-209/options index 96b0b028bdd..0ce0c6870b7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-209/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-209/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOff/options b/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOff/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOff/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOff/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOffButGlobal/options b/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOffButGlobal/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOffButGlobal/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOffButGlobal/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/WebFormsTests/options b/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/WebFormsTests/options index fb93d69d6b4..d43edf41c56 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/WebFormsTests/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/WebFormsTests/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs \ No newline at end of file diff --git a/csharp/ql/test/query-tests/Security Features/CWE-312/options b/csharp/ql/test/query-tests/Security Features/CWE-312/options index ab08ee323e2..aff430e13cc 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-312/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-312/options @@ -1,4 +1,5 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-352/global/options b/csharp/ql/test/query-tests/Security Features/CWE-352/global/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-352/global/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-352/global/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-352/missing/options b/csharp/ql/test/query-tests/Security Features/CWE-352/missing/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-352/missing/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-352/missing/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-359/options b/csharp/ql/test/query-tests/Security Features/CWE-359/options index ab08ee323e2..aff430e13cc 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-359/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-359/options @@ -1,4 +1,5 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-384/options b/csharp/ql/test/query-tests/Security Features/CWE-384/options index 96b0b028bdd..0ce0c6870b7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-384/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-384/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/CodeAddedHeader/options b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/CodeAddedHeader/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/CodeAddedHeader/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/CodeAddedHeader/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/NoHeader/options b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/NoHeader/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/NoHeader/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/NoHeader/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeader/options b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeader/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeader/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeader/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/options b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/options b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options index 750b4e67189..62b643d45cb 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-539/PersistentCookie/options b/csharp/ql/test/query-tests/Security Features/CWE-539/PersistentCookie/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-539/PersistentCookie/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-539/PersistentCookie/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-614/RequireSSL/AddedInCode/options b/csharp/ql/test/query-tests/Security Features/CWE-614/RequireSSL/AddedInCode/options index 9d05f9bf06d..dbb615bf06c 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-614/RequireSSL/AddedInCode/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-614/RequireSSL/AddedInCode/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options index a5d7077ef37..1fcc7e1cf48 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs \ No newline at end of file diff --git a/csharp/ql/test/query-tests/Security Features/CWE-643/options b/csharp/ql/test/query-tests/Security Features/CWE-643/options index 7404a7573b2..595b1a2bac0 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-643/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-643/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/options b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/options b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/options b/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/options index 9290f65d5b2..daca5d73f55 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-807/options b/csharp/ql/test/query-tests/Security Features/CWE-807/options index 96b0b028bdd..0ce0c6870b7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-807/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-807/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-838/options b/csharp/ql/test/query-tests/Security Features/CWE-838/options index 5e2b8b8284e..0af89500401 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-838/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-838/options @@ -1,4 +1,5 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs ${testdir}/../../../resources/stubs/System.Windows.cs diff --git a/csharp/ql/test/query-tests/Telemetry/SupportedExternalApis/options b/csharp/ql/test/query-tests/Telemetry/SupportedExternalApis/options index 96b0b028bdd..0ce0c6870b7 100644 --- a/csharp/ql/test/query-tests/Telemetry/SupportedExternalApis/options +++ b/csharp/ql/test/query-tests/Telemetry/SupportedExternalApis/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Telemetry/SupportedExternalSinks/options b/csharp/ql/test/query-tests/Telemetry/SupportedExternalSinks/options index 96b0b028bdd..0ce0c6870b7 100644 --- a/csharp/ql/test/query-tests/Telemetry/SupportedExternalSinks/options +++ b/csharp/ql/test/query-tests/Telemetry/SupportedExternalSinks/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/resources/stubs/System.Net.cs b/csharp/ql/test/resources/stubs/System.Net.cs index 939c70c792e..d0f03f3af55 100644 --- a/csharp/ql/test/resources/stubs/System.Net.cs +++ b/csharp/ql/test/resources/stubs/System.Net.cs @@ -49,6 +49,22 @@ namespace System.Net.Http { public StringContent(string s) { } } + + public class HttpResponseMessage : IDisposable + { + public HttpResponseMessage() { } + public HttpResponseMessage(HttpStatusCode statusCode) { } + + + public Version Version { get; set; } + public HttpContent Content { get; set; } + public HttpStatusCode StatusCode { get; set; } + public HttpResponseHeaders Headers { get; } + public HttpRequestMessage RequestMessage { get; set; } + public bool IsSuccessStatusCode { get; } + } + + } namespace System.Net.Mail diff --git a/csharp/ql/test/resources/stubs/System.Web.cs b/csharp/ql/test/resources/stubs/System.Web.cs index d1942c07dc1..56f51208e54 100644 --- a/csharp/ql/test/resources/stubs/System.Web.cs +++ b/csharp/ql/test/resources/stubs/System.Web.cs @@ -19,6 +19,15 @@ namespace System.Web public class HttpResponseBase { public void Write(object obj) { } + public virtual void AppendHeader(string name, string value) { } + public virtual void Redirect(string url) { } + public virtual void RedirectPermanent(string url) { } + public virtual int StatusCode { get; set; } + public virtual void AddHeader(string name, string value) { } + public virtual void End() { } + public virtual string RedirectLocation { get; set; } + public virtual NameValueCollection Headers => null; + } public class HttpContextBase @@ -55,7 +64,15 @@ namespace System.Web.Http { public class ApiController { + public Microsoft.AspNetCore.Http.HttpContext Context => null; + public virtual Microsoft.AspNetCore.Mvc.RedirectResult Redirect(Uri location) => null; + public virtual Microsoft.AspNetCore.Mvc.RedirectResult Redirect(string location) => null; + public virtual ResponseMessageResult ResponseMessage(System.Net.Http.HttpResponseMessage response) => null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues) => null; + public Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; set; } } + + public class ResponseMessageResult { } } namespace System.Web.Mvc @@ -63,14 +80,35 @@ namespace System.Web.Mvc public class Controller { public ViewResult View() => null; + public HttpRequestBase Request => null; + public HttpResponseBase Response => null; + protected internal virtual RedirectResult RedirectPermanent(string url) => null; + protected internal RedirectToRouteResult RedirectToRoute(string routeName) => null; + public UrlHelper Url { get; set; } + protected internal virtual RedirectResult Redirect(string url) => null; } public class MvcHtmlString : HtmlString { public MvcHtmlString(string s) : base(s) { } } + + public class RoutePrefixAttribute : Attribute + { + public virtual string Prefix { get; private set; } + public RoutePrefixAttribute(string prefix) { } + } + + public sealed class RouteAttribute : Attribute + { + + public RouteAttribute(string template) { } + } + + public class RedirectToRouteResult : ActionResult { } } + namespace System.Web.UI { public class Control @@ -81,6 +119,7 @@ namespace System.Web.UI { public System.Security.Principal.IPrincipal User { get; } public System.Web.HttpRequest Request { get; } + public HttpResponse Response => null; } interface IPostBackDataHandler @@ -153,6 +192,7 @@ namespace System.Web public UnvalidatedRequestValues Unvalidated { get; } public string RawUrl { get; set; } public HttpCookieCollection Cookies => null; + public bool IsAuthenticated { get; set; } } public class HttpRequestWrapper : System.Web.HttpRequestBase @@ -169,6 +209,13 @@ namespace System.Web public void AddHeader(string name, string value) { } public void Redirect(string url) { } public void AppendHeader(string name, string value) { } + public void End() { } + public string RedirectLocation { get; set; } + public int StatusCode { get; set; } + public void RedirectPermanent(string url) { } + public virtual NameValueCollection Headers { get; set; } + + } public class HttpContext : IServiceProvider @@ -177,6 +224,7 @@ namespace System.Web public HttpResponse Response => null; public SessionState.HttpSessionState Session => null; public HttpServerUtility Server => null; + public static HttpContext Current => null; } public class HttpCookie @@ -301,6 +349,15 @@ namespace System.Web.Mvc public UrlHelper(Routing.RequestContext requestContext) { } public virtual bool IsLocalUrl(string url) => false; } + + public class RedirectResult : ActionResult + { + public bool Permanent { get; set; } + public string Url => null; + + public RedirectResult(string url) : this(url, permanent: false) { } + public RedirectResult(string url, bool permanent) { } + } } namespace System.Web.Routing @@ -390,7 +447,7 @@ namespace System.Web.Script.Serialization public JavaScriptSerializer() => throw null; public JavaScriptSerializer(System.Web.Script.Serialization.JavaScriptTypeResolver resolver) => throw null; public object DeserializeObject(string input) => throw null; - public T Deserialize (string input) => throw null; + public T Deserialize(string input) => throw null; public object Deserialize(string input, Type targetType) => throw null; } From c7026c03dfb090b5f3b1f740c2a8235ef5b2ef50 Mon Sep 17 00:00:00 2001 From: Florin Coada Date: Mon, 5 May 2025 11:13:42 -0400 Subject: [PATCH 273/656] Update changelogs for CodeQL CLI 2.21.2 and adjust query reporting for unversioned immutable actions --- .../codeql-changelog/codeql-cli-2.21.2.rst | 122 ++++++++++++++++++ .../codeql-changelog/index.rst | 1 + 2 files changed, 123 insertions(+) create mode 100644 docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst new file mode 100644 index 00000000000..8d9c20cfbb5 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst @@ -0,0 +1,122 @@ +.. _codeql-cli-2.21.2: + +========================== +CodeQL 2.21.2 (2025-05-01) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.21.2 runs a total of 452 security queries when configured with the Default suite (covering 168 CWE). The Extended suite enables an additional 136 queries (covering 35 more CWE). + +CodeQL CLI +---------- + +Bug Fixes +~~~~~~~~~ + +* :code:`codeql generate log-summary` now correctly includes :code:`dependencies` maps in predicate events for :code:`COMPUTED_EXTENSIONAL` predicates. + +Query Packs +----------- + +Bug Fixes +~~~~~~~~~ + +GitHub Actions +"""""""""""""" + +* Assigned a :code:`security-severity` to the query :code:`actions/excessive-secrets-exposure`. + +Breaking Changes +~~~~~~~~~~~~~~~~ + +GitHub Actions +"""""""""""""" + +* The following queries have been removed from the :code:`security-and-quality` suite. + They are not intended to produce user-facing alerts describing vulnerabilities. + Any existing alerts for these queries will be closed automatically. + + * :code:`actions/composite-action-sinks` + * :code:`actions/composite-action-sources` + * :code:`actions/composite-action-summaries` + * :code:`actions/reusable-workflow-sinks` (renamed from :code:`actions/reusable-wokflow-sinks`) + * :code:`actions/reusable-workflow-sources` + * :code:`actions/reusable-workflow-summaries` + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* Changes to the MaD model generation infrastructure: + + * Changed the query :code:`cs/utils/modelgenerator/summary-models` to use the implementation from :code:`cs/utils/modelgenerator/mixed-summary-models`. + * Removed the now-redundant :code:`cs/utils/modelgenerator/mixed-summary-models` query. + * A similar replacement was made for :code:`cs/utils/modelgenerator/neutral-models`. That is, if :code:`GenerateFlowModel.py` is provided with :code:`--with-summaries`, combined/mixed models are now generated instead of heuristic models (and similar for :code:`--with-neutrals`). + +* Improved detection of authorization checks in the :code:`cs/web/missing-function-level-access-control` query. The query now recognizes authorization attributes inherited from base classes and interfaces. +* The precision of the query :code:`cs/invalid-string-formatting` has been improved. More methods and more overloads of existing format like methods are taken into account by the query. + +Java/Kotlin +""""""""""" + +* Changes to the MaD model generation infrastructure: + + * Changed the query :code:`java/utils/modelgenerator/summary-models` to use the implementation from :code:`java/utils/modelgenerator/mixed-summary-models`. + * Removed the now-redundant :code:`java/utils/modelgenerator/mixed-summary-models` query. + * A similar replacement was made for :code:`java/utils/modelgenerator/neutral-models`. That is, if :code:`GenerateFlowModel.py` is provided with :code:`--with-summaries`, combined/mixed models are now generated instead of heuristic models (and similar for :code:`--with-neutrals`). + +Rust +"""" + +* Changes to the MaD model generation infrastructure: + + * Changed the query :code:`rust/utils/modelgenerator/summary-models` to use the implementation from :code:`rust/utils/modelgenerator/mixed-summary-models`. + * Removed the now-redundant :code:`rust/utils/modelgenerator/mixed-summary-models` query. + * A similar replacement was made for :code:`rust/utils/modelgenerator/neutral-models`. That is, if :code:`GenerateFlowModel.py` is provided with :code:`--with-summaries`, combined/mixed models are now generated instead of heuristic models (and similar for :code:`--with-neutrals`). + +Language Libraries +------------------ + +Major Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Swift +""""" + +* Upgraded to allow analysis of Swift 6.1. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* Improved autobuilder logic for detecting whether a project references a SDK (and should be built using :code:`dotnet`). + +Swift +""""" + +* Added AST nodes :code:`ActorIsolationErasureExpr`, :code:`CurrentContextIsolationExpr`, + :code:`ExtracFunctionIsolationExpr` and :code:`UnreachableExpr` that correspond to new nodes added by Swift 6.0. + +New Features +~~~~~~~~~~~~ + +C/C++ +""""" + +* New classes :code:`TypeofType`, :code:`TypeofExprType`, and :code:`TypeofTypeType` were introduced, which represent the C23 :code:`typeof` and :code:`typeof_unqual` operators. The :code:`TypeofExprType` class represents the variant taking an expression as its argument. The :code:`TypeofTypeType` class represents the variant taking a type as its argument. +* A new class :code:`IntrinsicTransformedType` was introduced, which represents the type transforming intrinsics supported by clang, gcc, and MSVC. +* Introduced :code:`hasDesignator()` predicates to distinguish between designated and positional initializations for both struct/union fields and array elements. +* Added the :code:`isVla()` predicate to the :code:`ArrayType` class. This allows queries to identify variable-length arrays (VLAs). diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index 137185c94db..92781448af8 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/index.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/index.rst @@ -11,6 +11,7 @@ A list of queries for each suite and language `is available here Date: Mon, 5 May 2025 11:30:15 -0400 Subject: [PATCH 274/656] Update codeql-cli-2.21.2.rst --- .../codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst index 8d9c20cfbb5..636cf2fe63d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst @@ -108,7 +108,7 @@ Swift """"" * Added AST nodes :code:`ActorIsolationErasureExpr`, :code:`CurrentContextIsolationExpr`, - :code:`ExtracFunctionIsolationExpr` and :code:`UnreachableExpr` that correspond to new nodes added by Swift 6.0. + :code:`ExtractFunctionIsolationExpr` and :code:`UnreachableExpr` that correspond to new nodes added by Swift 6.0. New Features ~~~~~~~~~~~~ From 06cfa9a89cd63fbde5df3fdba735975ddd5aa2e3 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 5 May 2025 15:21:50 -0400 Subject: [PATCH 275/656] Rust: Address format fixes suggested in review --- .../codeql/rust/internal/TypeInference.qll | 10 +++- .../typeinference/internal/TypeInference.qll | 52 +++++++++++++------ 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 595a038884d..8d7dffefd76 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -990,12 +990,20 @@ private module Cached { ) } - private module IsInstantiationOfInput implements IsInstantiationOfSig { + private module IsInstantiationOfInput implements IsInstantiationOfInputSig { + pragma[nomagic] predicate potentialInstantiationOf(ReceiverExpr receiver, TypeAbstraction impl, TypeMention sub) { methodCandidate(receiver.resolveTypeAt(TypePath::nil()), receiver.getField(), receiver.getNumberOfArgs(), impl) and sub = impl.(ImplTypeAbstraction).getSelfTy() } + + predicate relevantTypeMention(TypeMention sub) { + exists(TypeAbstraction impl | + methodCandidate(_, _, _, impl) and + sub = impl.(ImplTypeAbstraction).getSelfTy() + ) + } } bindingset[item, name] diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 7e89671da54..5eabeb6c6f0 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -238,7 +238,7 @@ module Make1 Input1> { } /** A class that represents a type tree. */ - signature class TypeTreeSig { + private signature class TypeTreeSig { Type resolveTypeAt(TypePath path); /** Gets a textual representation of this type abstraction. */ @@ -357,21 +357,38 @@ module Make1 Input1> { result = tm.resolveTypeAt(TypePath::nil()) } - signature module IsInstantiationOfSig { + signature module IsInstantiationOfInputSig { /** * Holds if `abs` is a type abstraction under which `tm` occurs and if * `app` is potentially the result of applying the abstraction to type * some type argument. */ predicate potentialInstantiationOf(App app, TypeAbstraction abs, TypeMention tm); + + /** + * Holds if `constraint` might occur as the third argument of + * `potentialInstantiationOf`. Defaults to simply projecting the third + * argument of `potentialInstantiationOf`. + */ + default predicate relevantTypeMention(TypeMention tm) { potentialInstantiationOf(_, _, tm) } } - module IsInstantiationOf Input> { + /** + * Provides functionality for determining if a type is a possible + * instantiation of a type mention containing type parameters. + */ + module IsInstantiationOf Input> { private import Input /** Gets the `i`th path in `tm` per some arbitrary order. */ + pragma[nomagic] private TypePath getNthPath(TypeMention tm, int i) { - result = rank[i + 1](TypePath path | exists(tm.resolveTypeAt(path)) | path) + result = + rank[i + 1](TypePath path | + exists(tm.resolveTypeAt(path)) and relevantTypeMention(tm) + | + path + ) } /** @@ -389,6 +406,7 @@ module Make1 Input1> { ) } + pragma[nomagic] private predicate satisfiesConcreteTypesFromIndex( App app, TypeAbstraction abs, TypeMention tm, int i ) { @@ -398,7 +416,7 @@ module Make1 Input1> { if i = 0 then any() else satisfiesConcreteTypesFromIndex(app, abs, tm, i - 1) } - pragma[inline] + pragma[nomagic] private predicate satisfiesConcreteTypes(App app, TypeAbstraction abs, TypeMention tm) { satisfiesConcreteTypesFromIndex(app, abs, tm, max(int i | exists(getNthPath(tm, i)))) } @@ -417,18 +435,19 @@ module Make1 Input1> { * arbitrary order, if any. */ private TypePath getNthTypeParameterPath(TypeMention tm, TypeParameter tp, int i) { - result = rank[i + 1](TypePath path | tp = tm.resolveTypeAt(path) | path) + result = + rank[i + 1](TypePath path | tp = tm.resolveTypeAt(path) and relevantTypeMention(tm) | path) } + pragma[nomagic] private predicate typeParametersEqualFromIndex( - App app, TypeAbstraction abs, TypeMention tm, TypeParameter tp, int i + App app, TypeAbstraction abs, TypeMention tm, TypeParameter tp, Type t, int i ) { potentialInstantiationOf(app, abs, tm) and - exists(TypePath path, TypePath nextPath | + exists(TypePath path | path = getNthTypeParameterPath(tm, tp, i) and - nextPath = getNthTypeParameterPath(tm, tp, i - 1) and - app.resolveTypeAt(path) = app.resolveTypeAt(nextPath) and - if i = 1 then any() else typeParametersEqualFromIndex(app, abs, tm, tp, i - 1) + t = app.resolveTypeAt(path) and + if i = 0 then any() else typeParametersEqualFromIndex(app, abs, tm, tp, t, i - 1) ) } @@ -443,7 +462,7 @@ module Make1 Input1> { exists(int n | n = max(int i | exists(getNthTypeParameterPath(tm, tp, i))) | // If the largest index is 0, then there are no equalities to check as // the type parameter only occurs once. - if n = 0 then any() else typeParametersEqualFromIndex(app, abs, tm, tp, n) + if n = 0 then any() else typeParametersEqualFromIndex(app, abs, tm, tp, _, n) ) ) } @@ -488,7 +507,6 @@ module Make1 Input1> { * - `Pair` is _not_ an instantiation of `Pair` */ predicate isInstantiationOf(App app, TypeAbstraction abs, TypeMention tm) { - potentialInstantiationOf(app, abs, tm) and satisfiesConcreteTypes(app, abs, tm) and typeParametersHaveEqualInstantiation(app, abs, tm) } @@ -513,7 +531,7 @@ module Make1 Input1> { ) } - module IsInstantiationOfInput implements IsInstantiationOfSig { + module IsInstantiationOfInput implements IsInstantiationOfInputSig { pragma[nomagic] private predicate typeCondition(Type type, TypeAbstraction abs, TypeMention lhs) { conditionSatisfiesConstraint(abs, lhs, _) and type = resolveTypeMentionRoot(lhs) @@ -954,7 +972,7 @@ module Make1 Input1> { Location getLocation() { result = a.getLocation() } } - private module IsInstantiationOfInput implements IsInstantiationOfSig { + private module IsInstantiationOfInput implements IsInstantiationOfInputSig { predicate potentialInstantiationOf( RelevantAccess at, TypeAbstraction abs, TypeMention cond ) { @@ -965,6 +983,10 @@ module Make1 Input1> { countConstraintImplementations(type, constraint) > 1 ) } + + predicate relevantTypeMention(TypeMention constraint) { + rootTypesSatisfaction(_, _, _, constraint, _) + } } /** From 7231f53b6ee98780cd6626ab5a3e6855e8767d93 Mon Sep 17 00:00:00 2001 From: Sid Gawri Date: Mon, 5 May 2025 21:59:37 -0400 Subject: [PATCH 276/656] revert system.net stubs --- csharp/ql/test/resources/stubs/System.Net.cs | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/csharp/ql/test/resources/stubs/System.Net.cs b/csharp/ql/test/resources/stubs/System.Net.cs index d0f03f3af55..49ad43b1d39 100644 --- a/csharp/ql/test/resources/stubs/System.Net.cs +++ b/csharp/ql/test/resources/stubs/System.Net.cs @@ -50,21 +50,6 @@ namespace System.Net.Http public StringContent(string s) { } } - public class HttpResponseMessage : IDisposable - { - public HttpResponseMessage() { } - public HttpResponseMessage(HttpStatusCode statusCode) { } - - - public Version Version { get; set; } - public HttpContent Content { get; set; } - public HttpStatusCode StatusCode { get; set; } - public HttpResponseHeaders Headers { get; } - public HttpRequestMessage RequestMessage { get; set; } - public bool IsSuccessStatusCode { get; } - } - - } namespace System.Net.Mail From 824271a84a2c872a366a27f2956648373c072946 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 03:58:02 +0000 Subject: [PATCH 277/656] Bump golang.org/x/tools Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/tools](https://github.com/golang/tools). Updates `golang.org/x/tools` from 0.32.0 to 0.33.0 - [Release notes](https://github.com/golang/tools/releases) - [Commits](https://github.com/golang/tools/compare/v0.32.0...v0.33.0) --- updated-dependencies: - dependency-name: golang.org/x/tools dependency-version: 0.33.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: extractor-dependencies ... Signed-off-by: dependabot[bot] --- go/extractor/go.mod | 4 ++-- go/extractor/go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go/extractor/go.mod b/go/extractor/go.mod index 737af893993..cfdc82cbd2b 100644 --- a/go/extractor/go.mod +++ b/go/extractor/go.mod @@ -10,7 +10,7 @@ toolchain go1.24.0 // bazel mod tidy require ( golang.org/x/mod v0.24.0 - golang.org/x/tools v0.32.0 + golang.org/x/tools v0.33.0 ) -require golang.org/x/sync v0.13.0 // indirect +require golang.org/x/sync v0.14.0 // indirect diff --git a/go/extractor/go.sum b/go/extractor/go.sum index 0fbc8831fb3..3341c6aa4dd 100644 --- a/go/extractor/go.sum +++ b/go/extractor/go.sum @@ -2,7 +2,7 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= -golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= From 228c45aaf893e04a5d8704dce371def49cb87413 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Mon, 5 May 2025 17:42:55 +0100 Subject: [PATCH 278/656] Look through aliases when identifying method receivers --- go/extractor/trap/labels.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/go/extractor/trap/labels.go b/go/extractor/trap/labels.go index 79ac9192e02..2822da61ff1 100644 --- a/go/extractor/trap/labels.go +++ b/go/extractor/trap/labels.go @@ -169,11 +169,12 @@ func (l *Labeler) ScopedObjectID(object types.Object, getTypeLabel func() Label) // findMethodWithGivenReceiver finds a method with `object` as its receiver, if one exists func findMethodWithGivenReceiver(object types.Object) *types.Func { - meth := findMethodOnTypeWithGivenReceiver(object.Type(), object) + unaliasedType := types.Unalias(object.Type()) + meth := findMethodOnTypeWithGivenReceiver(unaliasedType, object) if meth != nil { return meth } - if pointerType, ok := object.Type().(*types.Pointer); ok { + if pointerType, ok := unaliasedType.(*types.Pointer); ok { meth = findMethodOnTypeWithGivenReceiver(pointerType.Elem(), object) } return meth From c781f98bdcb76558a25802c82c27ed66889976f3 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Mon, 5 May 2025 16:13:25 +0100 Subject: [PATCH 279/656] (unrelated tidy up) `resolveTypeAlias` not needed `types.Unalias` already does the same thing --- go/extractor/extractor.go | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/go/extractor/extractor.go b/go/extractor/extractor.go index f687f54c977..c4544390753 100644 --- a/go/extractor/extractor.go +++ b/go/extractor/extractor.go @@ -1582,18 +1582,10 @@ func isAlias(tp types.Type) bool { return ok } -// If the given type is a type alias, this function resolves it to its underlying type. -func resolveTypeAlias(tp types.Type) types.Type { - if isAlias(tp) { - return types.Unalias(tp) // tp.Underlying() - } - return tp -} - // extractType extracts type information for `tp` and returns its associated label; // types are only extracted once, so the second time `extractType` is invoked it simply returns the label func extractType(tw *trap.Writer, tp types.Type) trap.Label { - tp = resolveTypeAlias(tp) + tp = types.Unalias(tp) lbl, exists := getTypeLabel(tw, tp) if !exists { var kind int @@ -1771,7 +1763,7 @@ func extractType(tw *trap.Writer, tp types.Type) trap.Label { // is constructed from their globally unique ID. This prevents cyclic type keys // since type recursion in Go always goes through defined types. func getTypeLabel(tw *trap.Writer, tp types.Type) (trap.Label, bool) { - tp = resolveTypeAlias(tp) + tp = types.Unalias(tp) lbl, exists := tw.Labeler.TypeLabels[tp] if !exists { switch tp := tp.(type) { From 310c02f1fb67c8d025e7abe6d88c77d055e90811 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 6 May 2025 23:02:52 +0100 Subject: [PATCH 280/656] Rust: Add a dataflow sources test for the Poem web fraemework. --- .../dataflow/sources/TaintSources.expected | 5 ++ .../dataflow/sources/options.yml | 2 + .../dataflow/sources/web_frameworks.rs | 81 +++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index ba7eeae0008..7a5fd2d000f 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -47,3 +47,8 @@ | test.rs:369:25:369:43 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:377:22:377:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | | test.rs:386:16:386:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| web_frameworks.rs:13:31:13:31 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:22:31:22:36 | TuplePat | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:44:31:44:45 | MyStruct {...} | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:52:31:52:32 | ms | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:61:15:61:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/options.yml b/rust/ql/test/library-tests/dataflow/sources/options.yml index 9b4565f1e1a..d351460c8a7 100644 --- a/rust/ql/test/library-tests/dataflow/sources/options.yml +++ b/rust/ql/test/library-tests/dataflow/sources/options.yml @@ -7,3 +7,5 @@ qltest_dependencies: - http = { version = "1.2.0" } - tokio = { version = "1.43.0", features = ["full"] } - futures = { version = "0.3" } + - poem = { version = "3.1.10" } + - serde = { version = "1.0.219" } diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs new file mode 100644 index 00000000000..2fd067a0583 --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs @@ -0,0 +1,81 @@ +#![allow(deprecated)] + +fn sink(_: T) { } + +// --- tests --- + +mod poem_test { + use poem::{get, handler, web::Path, web::Query, Route, Server, listener::TcpListener}; + use serde::Deserialize; + use crate::web_frameworks::sink; + + #[handler] + fn my_poem_handler_1(Path(a): Path) -> String { // $ Alert[rust/summary/taint-sources] + sink(a.as_str()); // $ MISSING: hasTaintFlow + sink(a.as_bytes()); // $ MISSING: hasTaintFlow + sink(a); // $ MISSING: hasTaintFlow + + "".to_string() + } + + #[handler] + fn my_poem_handler_2(Path((a, b)): Path<(String, String)>) -> String { // $ Alert[rust/summary/taint-sources] + sink(a); // $ MISSING: hasTaintFlow + sink(b); // $ MISSING: hasTaintFlow + + "".to_string() + } + + #[handler] + fn my_poem_handler_3(path: Path<(String, String)>) -> String { // $ MISSING: Alert[rust/summary/taint-sources] + sink(&path.0); // $ MISSING: hasTaintFlow + sink(&path.1); // $ MISSING: hasTaintFlow + + "".to_string() + } + + #[derive(Deserialize)] + struct MyStruct { + a: String, + b: String, + } + + #[handler] + fn my_poem_handler_4(Path(MyStruct {a, b}): Path) -> String { // $ Alert[rust/summary/taint-sources] + sink(a); // $ MISSING: hasTaintFlow + sink(b); // $ MISSING: hasTaintFlow + + "".to_string() + } + + #[handler] + fn my_poem_handler_5(Path(ms): Path) -> String { // $ Alert[rust/summary/taint-sources] + sink(ms.a); // $ MISSING: hasTaintFlow + sink(ms.b); // $ MISSING: hasTaintFlow + + "".to_string() + } + + #[handler] + fn my_poem_handler_6( + Query(a): Query, // $ Alert[rust/summary/taint-sources] + ) -> String { + sink(a); // $ MISSING: hasTaintFlow + + "".to_string() + } + + async fn test_poem() { + let app = Route::new() + .at("/1/:a", get(my_poem_handler_1)) + .at("/2/:a/:b", get(my_poem_handler_2)) + .at("/3/:a/:b", get(my_poem_handler_3)) + .at("/4/:a/:b", get(my_poem_handler_4)) + .at("/4/:a/:b", get(my_poem_handler_5)) + .at("/5/:a/", get(my_poem_handler_6)); + + _ = Server::new(TcpListener::bind("0.0.0.0:3000")).run(app).await.unwrap(); + + // ... + } +} From e56519d959e9f966e2f11d6273669d5b14a82b46 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 6 May 2025 23:30:42 +0100 Subject: [PATCH 281/656] Rust: Add a dataflow sources test for the Actix web fraemework. --- .../dataflow/sources/options.yml | 1 + .../dataflow/sources/web_frameworks.rs | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/rust/ql/test/library-tests/dataflow/sources/options.yml b/rust/ql/test/library-tests/dataflow/sources/options.yml index d351460c8a7..1f1dbdec49d 100644 --- a/rust/ql/test/library-tests/dataflow/sources/options.yml +++ b/rust/ql/test/library-tests/dataflow/sources/options.yml @@ -9,3 +9,4 @@ qltest_dependencies: - futures = { version = "0.3" } - poem = { version = "3.1.10" } - serde = { version = "1.0.219" } + - actix-web = { version = "4.10.2" } diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs index 2fd067a0583..0f27d57639b 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs @@ -79,3 +79,50 @@ mod poem_test { // ... } } + +mod actix_test { + use actix_web::{get, web, App, HttpServer}; + use crate::web_frameworks::sink; + + async fn my_actix_handler_1(path: web::Path) -> String { // $ MISSING: Alert[rust/summary/taint-sources] + let a = path.into_inner(); + sink(a.as_str()); // $ MISSING: hasTaintFlow + sink(a.as_bytes()); // $ MISSING: hasTaintFlow + sink(a); // $ MISSING: hasTaintFlow + + "".to_string() + } + + async fn my_actix_handler_2(path: web::Path<(String, String)>) -> String { // $ MISSING: Alert[rust/summary/taint-sources] + let (a, b) = path.into_inner(); + + sink(a); // $ MISSING: hasTaintFlow + sink(b); // $ MISSING: hasTaintFlow + + "".to_string() + } + + async fn my_actix_handler_3(web::Query(a): web::Query) -> String { // $ MISSING: Alert[rust/summary/taint-sources] + sink(a); // $ MISSING: hasTaintFlow + + "".to_string() + } + + #[get("/4/{a}")] + async fn my_actix_handler_4(path: web::Path) -> String { // $ MISSING: Alert[rust/summary/taint-sources] + let a = path.into_inner(); + sink(a); // $ MISSING: hasTaintFlow + + "".to_string() + } + + async fn test_actix() { + let app = App::new() + .route("/1/{a}", web::get().to(my_actix_handler_1)) + .route("/2/{a}/{b}", web::get().to(my_actix_handler_2)) + .route("/3/{a}", web::get().to(my_actix_handler_3)) + .service(my_actix_handler_4); + + // ... + } +} From 49ff96746525a81caddb53d73d41602b09a98e26 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 7 May 2025 09:24:47 +0100 Subject: [PATCH 282/656] Rust: Add a dataflow sources test for the Axum web fraemework. --- .../dataflow/sources/options.yml | 2 + .../dataflow/sources/web_frameworks.rs | 71 +++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/rust/ql/test/library-tests/dataflow/sources/options.yml b/rust/ql/test/library-tests/dataflow/sources/options.yml index 1f1dbdec49d..5b3ef166b15 100644 --- a/rust/ql/test/library-tests/dataflow/sources/options.yml +++ b/rust/ql/test/library-tests/dataflow/sources/options.yml @@ -10,3 +10,5 @@ qltest_dependencies: - poem = { version = "3.1.10" } - serde = { version = "1.0.219" } - actix-web = { version = "4.10.2" } + - axum = { version = "0.8.4" } + - serde_json = { version = "1.0.140" } diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs index 0f27d57639b..395010e7ef7 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs @@ -126,3 +126,74 @@ mod actix_test { // ... } } + +mod axum_test { + use axum::Router; + use axum::routing::get; + use axum::extract::{Path, Query, Request, Json}; + use std::collections::HashMap; + use crate::web_frameworks::sink; + + async fn my_axum_handler_1(Path(a): Path) -> &'static str { // $ MISSING: Alert[rust/summary/taint-sources] + sink(a.as_str()); // $ MISSING: hasTaintFlow + sink(a.as_bytes()); // $ MISSING: hasTaintFlow + sink(a); // $ MISSING: hasTaintFlow + + "" + } + + async fn my_axum_handler_2(Path((a, b)): Path<(String, String)>) -> &'static str { // $ MISSING: Alert[rust/summary/taint-sources] + sink(a); // $ MISSING: hasTaintFlow + sink(b); // $ MISSING: hasTaintFlow + + "" + } + + async fn my_axum_handler_3(Query(params): Query>) -> &'static str { // $ MISSING: Alert[rust/summary/taint-sources] + for (key, value) in params { + sink(key); // $ MISSING: hasTaintFlow + sink(value); // $ MISSING: hasTaintFlow + } + + "" + } + + async fn my_axum_handler_4(request: Request) -> &'static str { // $ MISSING: Alert[rust/summary/taint-sources] + sink(request.body()); // $ MISSING: hasTaintFlow + request.headers().get("header").unwrap(); // $ MISSING: hasTaintFlow + sink(request.into_body()); // $ MISSING: hasTaintFlow + + "" + } + + async fn my_axum_handler_5(Json(payload): Json) -> &'static str { // $ MISSING: Alert[rust/summary/taint-sources] + sink(payload.as_str()); // $ MISSING: hasTaintFlow + sink(payload); // $ MISSING: hasTaintFlow + + "" + } + + async fn my_axum_handler_6(body: String) -> &'static str { // $ MISSING: Alert[rust/summary/taint-sources] + sink(body); // $ MISSING: hasTaintFlow + + "" + } + + async fn my_axum_handler_7(body: String) -> &'static str { // $ MISSING: Alert[rust/summary/taint-sources] + sink(body); // $ MISSING: hasTaintFlow + + "" + } + + async fn test_axum() { + let app = Router::<()>::new() + .route("/foo/{a}", get(my_axum_handler_1)) + .route("/bar/{a}/{b}", get(my_axum_handler_2)) + .route("/1/:a", get(my_axum_handler_3)) + .route("/2/:a", get(my_axum_handler_4)) + .route("/3/:a", get(my_axum_handler_5)) + .route("/4/:a", get(my_axum_handler_6).get(my_axum_handler_7)); + + // ... + } +} From 19f86fd67f5bdcf9846117d5d932277e419f7aad Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 7 May 2025 10:45:27 +0100 Subject: [PATCH 283/656] Rust: Address confusing / typo'd paths. --- .../dataflow/sources/web_frameworks.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs index 395010e7ef7..e3ab61274d2 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs @@ -71,8 +71,8 @@ mod poem_test { .at("/2/:a/:b", get(my_poem_handler_2)) .at("/3/:a/:b", get(my_poem_handler_3)) .at("/4/:a/:b", get(my_poem_handler_4)) - .at("/4/:a/:b", get(my_poem_handler_5)) - .at("/5/:a/", get(my_poem_handler_6)); + .at("/5/:a/:b", get(my_poem_handler_5)) + .at("/6/:a/", get(my_poem_handler_6)); _ = Server::new(TcpListener::bind("0.0.0.0:3000")).run(app).await.unwrap(); @@ -187,12 +187,12 @@ mod axum_test { async fn test_axum() { let app = Router::<()>::new() - .route("/foo/{a}", get(my_axum_handler_1)) - .route("/bar/{a}/{b}", get(my_axum_handler_2)) - .route("/1/:a", get(my_axum_handler_3)) - .route("/2/:a", get(my_axum_handler_4)) - .route("/3/:a", get(my_axum_handler_5)) - .route("/4/:a", get(my_axum_handler_6).get(my_axum_handler_7)); + .route("/1/{a}", get(my_axum_handler_1)) + .route("/2/{a}/{b}", get(my_axum_handler_2)) + .route("/3/:a", get(my_axum_handler_3)) + .route("/4/:a", get(my_axum_handler_4)) + .route("/5/:a", get(my_axum_handler_5)) + .route("/67/:a", get(my_axum_handler_6).get(my_axum_handler_7)); // ... } From 56670c66f14d5b8e324baf1b661d3ee4292b9481 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 00:26:13 +0200 Subject: [PATCH 284/656] Revert Python changes and delete implementation --- python/ql/lib/experimental/Quantum/Base.qll | 250 ------------------ .../ql/lib/experimental/Quantum/Language.qll | 12 - .../experimental/Quantum/PycaCryptography.qll | 55 ---- python/ql/lib/semmle/python/Files.qll | 37 --- 4 files changed, 354 deletions(-) delete mode 100644 python/ql/lib/experimental/Quantum/Base.qll delete mode 100644 python/ql/lib/experimental/Quantum/Language.qll delete mode 100644 python/ql/lib/experimental/Quantum/PycaCryptography.qll diff --git a/python/ql/lib/experimental/Quantum/Base.qll b/python/ql/lib/experimental/Quantum/Base.qll deleted file mode 100644 index 9be24ca6efa..00000000000 --- a/python/ql/lib/experimental/Quantum/Base.qll +++ /dev/null @@ -1,250 +0,0 @@ -/** - * A language-independent library for reasoning about cryptography. - */ - -import codeql.util.Location -import codeql.util.Option - -signature module InputSig { - class LocatableElement { - Location getLocation(); - } - - class UnknownLocation instanceof Location; -} - -module CryptographyBase Input> { - final class LocatableElement = Input::LocatableElement; - - final class UnknownLocation = Input::UnknownLocation; - - final class UnknownPropertyValue extends string { - UnknownPropertyValue() { this = "" } - } - - abstract class NodeBase instanceof LocatableElement { - /** - * Returns a string representation of this node, usually the name of the operation/algorithm/property. - */ - abstract string toString(); - - /** - * Returns the location of this node in the code. - */ - Location getLocation() { result = super.getLocation() } - - /** - * Gets the origin of this node, e.g., a string literal in source describing it. - */ - LocatableElement getOrigin(string value) { none() } - - /** - * Returns the child of this node with the given edge name. - * - * This predicate is used by derived classes to construct the graph of cryptographic operations. - */ - NodeBase getChild(string edgeName) { none() } - - /** - * Defines properties of this node by name and either a value or location or both. - * - * This predicate is used by derived classes to construct the graph of cryptographic operations. - */ - predicate properties(string key, string value, Location location) { - key = "origin" and location = this.getOrigin(value).getLocation() - } - - /** - * Returns the parent of this node. - */ - final NodeBase getAParent() { result.getChild(_) = this } - } - - class Asset = NodeBase; - - /** - * A cryptographic operation, such as hashing or encryption. - */ - abstract class Operation extends Asset { - /** - * Gets the algorithm associated with this operation. - */ - abstract Algorithm getAlgorithm(); - - /** - * Gets the name of this operation, e.g., "hash" or "encrypt". - */ - abstract string getOperationName(); - - final override string toString() { result = this.getOperationName() } - - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) - or - edgeName = "uses" and - if exists(this.getAlgorithm()) then result = this.getAlgorithm() else result = this - } - } - - abstract class Algorithm extends Asset { - /** - * Gets the name of this algorithm, e.g., "AES" or "SHA". - */ - abstract string getAlgorithmName(); - - /** - * Gets the raw name of this algorithm from source (no parsing or formatting) - */ - abstract string getRawAlgorithmName(); - - final override string toString() { result = this.getAlgorithmName() } - } - - /** - * A hashing operation that processes data to generate a hash value. - * This operation takes an input message of arbitrary content and length and produces a fixed-size - * hash value as the output using a specified hashing algorithm. - */ - abstract class HashOperation extends Operation { - abstract override HashAlgorithm getAlgorithm(); - - override string getOperationName() { result = "HASH" } - } - - // Rule: no newtype representing a type of algorithm should be modelled with multiple interfaces - // - // Example: HKDF and PKCS12KDF are both key derivation algorithms. - // However, PKCS12KDF also has a property: the iteration count. - // - // If we have HKDF and PKCS12KDF under TKeyDerivationType, - // someone modelling a library might try to make a generic identification of both of those algorithms. - // - // They will therefore not use the specialized type for PKCS12KDF, - // meaning "from PKCS12KDF algo select algo" will have no results. - // - newtype THashType = - // We're saying by this that all of these have an identical interface / properties / edges - MD5() or - SHA1() or - SHA256() or - SHA512() or - OtherHashType() - - /** - * A hashing algorithm that transforms variable-length input into a fixed-size hash value. - */ - abstract class HashAlgorithm extends Algorithm { - final predicate hashTypeToNameMapping(THashType type, string name) { - type instanceof MD5 and name = "MD5" - or - type instanceof SHA1 and name = "SHA-1" - or - type instanceof SHA256 and name = "SHA-256" - or - type instanceof SHA512 and name = "SHA-512" - or - type instanceof OtherHashType and name = this.getRawAlgorithmName() - } - - abstract THashType getHashType(); - - override string getAlgorithmName() { this.hashTypeToNameMapping(this.getHashType(), result) } - - } - - /** - * An operation that derives one or more keys from an input value. - */ - abstract class KeyDerivationOperation extends Operation { - override string getOperationName() { result = "KEY_DERIVATION" } - } - - /** - * An algorithm that derives one or more keys from an input value. - */ - abstract class KeyDerivationAlgorithm extends Algorithm { - abstract override string getAlgorithmName(); - } - - /** - * HKDF key derivation function - */ - abstract class HKDF extends KeyDerivationAlgorithm { - final override string getAlgorithmName() { result = "HKDF" } - - abstract HashAlgorithm getHashAlgorithm(); - - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) - or - edgeName = "digest" and result = this.getHashAlgorithm() - } - } - - /** - * PKCS #12 key derivation function - */ - abstract class PKCS12KDF extends KeyDerivationAlgorithm { - final override string getAlgorithmName() { result = "PKCS12KDF" } - - abstract HashAlgorithm getHashAlgorithm(); - - override NodeBase getChild(string edgeName) { - result = super.getChild(edgeName) - or - edgeName = "digest" and result = this.getHashAlgorithm() - } - } - - newtype TEllipticCurveFamilyType = - // We're saying by this that all of these have an identical interface / properties / edges - NIST() or - SEC() or - NUMS() or - PRIME() or - BRAINPOOL() or - CURVE25519() or - CURVE448() or - C2() or - SM2() or - ES() or - OtherEllipticCurveFamilyType() - - - /** - * Elliptic curve algorithm - */ - abstract class EllipticCurve extends Algorithm { - - - abstract string getKeySize(Location location); - - abstract TEllipticCurveFamilyType getCurveFamilyType(); - - override predicate properties(string key, string value, Location location) { - super.properties(key, value, location) - or - key = "key_size" and - if exists(this.getKeySize(location)) - then value = this.getKeySize(location) - else ( - value instanceof UnknownPropertyValue and location instanceof UnknownLocation - ) - // other properties, like field type are possible, but not modeled until considered necessary - } - - override string getAlgorithmName() { result = this.getRawAlgorithmName().toUpperCase()} - - /** - * Mandating that for Elliptic Curves specifically, users are responsible - * for providing as the 'raw' name, the official name of the algorithm. - * Casing doesn't matter, we will enforce further naming restrictions on - * `getAlgorithmName` by default. - * Rationale: elliptic curve names can have a lot of variation in their components - * (e.g., "secp256r1" vs "P-256"), trying to produce generalized set of properties - * is possible to capture all cases, but such modeling is likely not necessary. - * if all properties need to be captured, we can reassess how names are generated. - */ - override abstract string getRawAlgorithmName(); - } -} diff --git a/python/ql/lib/experimental/Quantum/Language.qll b/python/ql/lib/experimental/Quantum/Language.qll deleted file mode 100644 index 9abf3e7fa7e..00000000000 --- a/python/ql/lib/experimental/Quantum/Language.qll +++ /dev/null @@ -1,12 +0,0 @@ -private import Base -private import python as Lang - -module CryptoInput implements InputSig { - class LocatableElement = Lang::Expr; - - class UnknownLocation = Lang::UnknownDefaultLocation; -} - -module Crypto = CryptographyBase; - -import PycaCryptography diff --git a/python/ql/lib/experimental/Quantum/PycaCryptography.qll b/python/ql/lib/experimental/Quantum/PycaCryptography.qll deleted file mode 100644 index 802ad23cf9d..00000000000 --- a/python/ql/lib/experimental/Quantum/PycaCryptography.qll +++ /dev/null @@ -1,55 +0,0 @@ -import python -import semmle.python.ApiGraphs - -module PycaCryptographyModule { - import Language - - /** - * Gets a predefined curve class constructor call from - * `cryptography.hazmat.primitives.asymmetric.ec` - * https://cryptography.io/en/latest/hazmat/primitives/asymmetric/ec/#elliptic-curves - */ - DataFlow::Node predefinedCurveClass(string rawName, string curveName, Crypto::TEllipticCurveFamilyType family, int keySize) { - // getACall since the typical case is to construct the curve with initialization values, - // not to pass the mode uninitialized - result = - API::moduleImport("cryptography") - .getMember("hazmat") - .getMember("primitives") - .getMember("asymmetric") - .getMember("ec") - .getMember(rawName) - .getACall() - and - curveName = rawName.toUpperCase() - and - curveName.matches("SEC%") and family instanceof Crypto::SEC - and - curveName.matches("BRAINPOOL%") and family instanceof Crypto::BRAINPOOL - and - // Enumerating all key sizes known in the API - // TODO: should we dynamically extract them through a regex? - keySize in [160, 163, 192, 224, 233, 256, 283, 320, 384, 409, 512, 571] - and - curveName.matches("%" + keySize + "%") - } - - - class EllipticCurve extends Crypto::EllipticCurve instanceof Expr{ - int keySize; - string rawName; - string curveName; - Crypto::TEllipticCurveFamilyType family; - EllipticCurve() { - this = predefinedCurveClass(rawName, curveName, family, keySize).asExpr() - } - - override string getRawAlgorithmName() { result = rawName } - override string getAlgorithmName() { result = curveName } - Crypto::TEllipticCurveFamilyType getFamily() { result = family } - - override string getKeySize(Location location) { - location = this and - result = keySize.toString() } - } -} diff --git a/python/ql/lib/semmle/python/Files.qll b/python/ql/lib/semmle/python/Files.qll index 67f21ad0b24..2da0dd61f88 100644 --- a/python/ql/lib/semmle/python/Files.qll +++ b/python/ql/lib/semmle/python/Files.qll @@ -368,40 +368,3 @@ class EncodingError extends SyntaxError { override string toString() { result = "Encoding Error" } } - - - -/** - * A dummy location which is used when something doesn't have a location in - * the source code but needs to have a `Location` associated with it. There - * may be several distinct kinds of unknown locations. For example: one for - * expressions, one for statements and one for other program elements. - */ -class UnknownLocation extends Location { - UnknownLocation() { this.getFile().getAbsolutePath() = "" } -} - -/** - * A dummy location which is used when something doesn't have a location in - * the source code but needs to have a `Location` associated with it. - */ -class UnknownDefaultLocation extends UnknownLocation { - UnknownDefaultLocation() { locations_default(this, _, 0, 0, 0, 0) } -} - -/** - * A dummy location which is used when an expression doesn't have a - * location in the source code but needs to have a `Location` associated - * with it. - */ -class UnknownExprLocation extends UnknownLocation { - UnknownExprLocation() { locations_default(this, _, 0, 0, 0, 0) } -} - -/** - * A dummy location which is used when a statement doesn't have a location - * in the source code but needs to have a `Location` associated with it. - */ -class UnknownStmtLocation extends UnknownLocation { - UnknownStmtLocation() { locations_default(this, _, 0, 0, 0, 0) } -} From 314f1ff93f75b87a323a3e62358209fbec4fa49b Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 00:28:32 +0200 Subject: [PATCH 285/656] Refactor Java directory structure --- .../Quantum/{InventoryFilters => Analysis}/ArtifactReuse.qll | 0 .../experimental/Quantum/{ => Analysis}/InsecureNonceSource.ql | 0 .../{InventoryFilters => Analysis}/KnownWeakKDFIterationCount.ql | 0 .../Quantum/{InventoryFilters => Analysis}/ReusedNonce.ql | 0 .../{InventoryFilters => Analysis}/UnknownKDFIterationCount.ql | 0 java/ql/src/experimental/Quantum/{ => Examples}/BrokenCrypto.ql | 0 .../Quantum/{ => Examples}/InsecureOrUnknownNonceAtOperation.ql | 0 .../ql/src/experimental/Quantum/{ => Examples}/TestAESGCMNonce.ql | 0 java/ql/src/experimental/Quantum/{ => Examples}/TestCipher.ql | 0 java/ql/src/experimental/Quantum/{ => Examples}/TestCipherKey.ql | 0 java/ql/src/experimental/Quantum/{ => Examples}/TestHash.ql | 0 11 files changed, 0 insertions(+), 0 deletions(-) rename java/ql/src/experimental/Quantum/{InventoryFilters => Analysis}/ArtifactReuse.qll (100%) rename java/ql/src/experimental/Quantum/{ => Analysis}/InsecureNonceSource.ql (100%) rename java/ql/src/experimental/Quantum/{InventoryFilters => Analysis}/KnownWeakKDFIterationCount.ql (100%) rename java/ql/src/experimental/Quantum/{InventoryFilters => Analysis}/ReusedNonce.ql (100%) rename java/ql/src/experimental/Quantum/{InventoryFilters => Analysis}/UnknownKDFIterationCount.ql (100%) rename java/ql/src/experimental/Quantum/{ => Examples}/BrokenCrypto.ql (100%) rename java/ql/src/experimental/Quantum/{ => Examples}/InsecureOrUnknownNonceAtOperation.ql (100%) rename java/ql/src/experimental/Quantum/{ => Examples}/TestAESGCMNonce.ql (100%) rename java/ql/src/experimental/Quantum/{ => Examples}/TestCipher.ql (100%) rename java/ql/src/experimental/Quantum/{ => Examples}/TestCipherKey.ql (100%) rename java/ql/src/experimental/Quantum/{ => Examples}/TestHash.ql (100%) diff --git a/java/ql/src/experimental/Quantum/InventoryFilters/ArtifactReuse.qll b/java/ql/src/experimental/Quantum/Analysis/ArtifactReuse.qll similarity index 100% rename from java/ql/src/experimental/Quantum/InventoryFilters/ArtifactReuse.qll rename to java/ql/src/experimental/Quantum/Analysis/ArtifactReuse.qll diff --git a/java/ql/src/experimental/Quantum/InsecureNonceSource.ql b/java/ql/src/experimental/Quantum/Analysis/InsecureNonceSource.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InsecureNonceSource.ql rename to java/ql/src/experimental/Quantum/Analysis/InsecureNonceSource.ql diff --git a/java/ql/src/experimental/Quantum/InventoryFilters/KnownWeakKDFIterationCount.ql b/java/ql/src/experimental/Quantum/Analysis/KnownWeakKDFIterationCount.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventoryFilters/KnownWeakKDFIterationCount.ql rename to java/ql/src/experimental/Quantum/Analysis/KnownWeakKDFIterationCount.ql diff --git a/java/ql/src/experimental/Quantum/InventoryFilters/ReusedNonce.ql b/java/ql/src/experimental/Quantum/Analysis/ReusedNonce.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventoryFilters/ReusedNonce.ql rename to java/ql/src/experimental/Quantum/Analysis/ReusedNonce.ql diff --git a/java/ql/src/experimental/Quantum/InventoryFilters/UnknownKDFIterationCount.ql b/java/ql/src/experimental/Quantum/Analysis/UnknownKDFIterationCount.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventoryFilters/UnknownKDFIterationCount.ql rename to java/ql/src/experimental/Quantum/Analysis/UnknownKDFIterationCount.ql diff --git a/java/ql/src/experimental/Quantum/BrokenCrypto.ql b/java/ql/src/experimental/Quantum/Examples/BrokenCrypto.ql similarity index 100% rename from java/ql/src/experimental/Quantum/BrokenCrypto.ql rename to java/ql/src/experimental/Quantum/Examples/BrokenCrypto.ql diff --git a/java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql b/java/ql/src/experimental/Quantum/Examples/InsecureOrUnknownNonceAtOperation.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InsecureOrUnknownNonceAtOperation.ql rename to java/ql/src/experimental/Quantum/Examples/InsecureOrUnknownNonceAtOperation.ql diff --git a/java/ql/src/experimental/Quantum/TestAESGCMNonce.ql b/java/ql/src/experimental/Quantum/Examples/TestAESGCMNonce.ql similarity index 100% rename from java/ql/src/experimental/Quantum/TestAESGCMNonce.ql rename to java/ql/src/experimental/Quantum/Examples/TestAESGCMNonce.ql diff --git a/java/ql/src/experimental/Quantum/TestCipher.ql b/java/ql/src/experimental/Quantum/Examples/TestCipher.ql similarity index 100% rename from java/ql/src/experimental/Quantum/TestCipher.ql rename to java/ql/src/experimental/Quantum/Examples/TestCipher.ql diff --git a/java/ql/src/experimental/Quantum/TestCipherKey.ql b/java/ql/src/experimental/Quantum/Examples/TestCipherKey.ql similarity index 100% rename from java/ql/src/experimental/Quantum/TestCipherKey.ql rename to java/ql/src/experimental/Quantum/Examples/TestCipherKey.ql diff --git a/java/ql/src/experimental/Quantum/TestHash.ql b/java/ql/src/experimental/Quantum/Examples/TestHash.ql similarity index 100% rename from java/ql/src/experimental/Quantum/TestHash.ql rename to java/ql/src/experimental/Quantum/Examples/TestHash.ql From c19291be8872ffa1ae559079c968d86fd75939d2 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 01:38:53 +0200 Subject: [PATCH 286/656] Refactor 'cryptography' and 'Quantum' to 'quantum' --- cpp/ql/lib/experimental/Quantum/Language.qll | 4 +- .../AlgorithmInstances/AlgToAVCFlow.qll | 4 +- .../BlockAlgorithmInstance.qll | 6 +- .../CipherAlgorithmInstance.qll | 4 +- .../HashAlgorithmInstance.qll | 4 +- .../KnownAlgorithmConstants.qll | 2 +- .../OpenSSLAlgorithmInstanceBase.qll | 4 +- .../PaddingAlgorithmInstance.qll | 6 +- .../CipherAlgorithmValueConsumer.qll | 8 +- .../DirectAlgorithmValueConsumer.qll | 6 +- .../HashAlgorithmValueConsumer.qll | 8 +- .../OpenSSLAlgorithmValueConsumerBase.qll | 2 +- .../PaddingAlgorithmValueConsumer.qll | 8 +- .../experimental/Quantum/OpenSSL/OpenSSL.qll | 8 +- .../Operations/EVPCipherInitializer.qll | 4 +- .../OpenSSL/Operations/EVPCipherOperation.qll | 8 +- .../OpenSSL/Operations/EVPHashOperation.qll | 8 +- .../Operations/OpenSSLOperationBase.qll | 2 +- .../experimental/Quantum/OpenSSL/Random.qll | 7 +- cpp/ql/lib/qlpack.yml | 2 +- .../experimental/Quantum/PrintCBOMGraph.ql | 2 +- java/ql/lib/experimental/Quantum/Language.qll | 2 +- java/ql/lib/qlpack.yml | 2 +- .../Quantum/Analysis/ArtifactReuse.qll | 2 +- .../Quantum/Analysis/InsecureNonceSource.ql | 2 +- .../Analysis/KnownWeakKDFIterationCount.ql | 2 +- .../Analysis/UnknownKDFIterationCount.ql | 2 +- .../Quantum/Examples/BrokenCrypto.ql | 102 +++++++++--------- .../InsecureOrUnknownNonceAtOperation.ql | 2 +- .../Quantum/Examples/TestAESGCMNonce.ql | 2 +- .../Quantum/Examples/TestCipher.ql | 2 +- .../Quantum/Examples/TestCipherKey.ql | 2 +- .../experimental/Quantum/Examples/TestHash.ql | 2 +- .../KnownAsymmetricAlgorithm.ql | 2 +- .../KnownAsymmetricCipherAlgorithm.ql | 2 +- .../KnownAsymmetricOperationAlgorithm.ql | 2 +- .../InventorySlices/KnownCipherAlgorithm.ql | 2 +- .../KnownEllipticCurveAlgorithm.ql | 2 +- .../InventorySlices/KnownHashingAlgorithm.ql | 2 +- .../InventorySlices/KnownHashingOperation.ql | 2 +- .../KnownHashingOperationAlgorithm.ql | 2 +- .../KnownKeyDerivationAlgorithm.ql | 2 +- .../KnownKeyDerivationOperation.ql | 2 +- .../KnownKeyDerivationOperationAlgorithm.ql | 5 +- .../KnownSymmetricCipherAlgorithm.ql | 2 +- .../LikelyCryptoAPIFunction.ql | 2 +- .../UnknownOperationAlgorithm.ql | 2 +- .../experimental/Quantum/PrintCBOMGraph.ql | 2 +- .../codeql/quantum}/Model.qll | 0 .../{cryptography => experimental}/qlpack.yml | 2 +- 50 files changed, 130 insertions(+), 136 deletions(-) rename shared/{cryptography/codeql/cryptography => experimental/codeql/quantum}/Model.qll (100%) rename shared/{cryptography => experimental}/qlpack.yml (64%) diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index 2d076a1323c..c3e2e3ad55f 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -1,6 +1,4 @@ -private import codeql.cryptography.Model -import semmle.code.cpp.ir.IR -import semmle.code.cpp.security.FlowSources as FlowSources +import codeql.quantum.Model import semmle.code.cpp.dataflow.new.DataFlow private import cpp as Lang diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll index 25cdea6accf..72c3ffcfad4 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll @@ -1,7 +1,7 @@ import cpp import semmle.code.cpp.dataflow.new.DataFlow -import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers // import all known alg value consummers +import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers /** * Traces 'known algorithms' to AVCs, specifically diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll index 1e17c64f34c..2566c1188a6 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll @@ -1,8 +1,8 @@ import cpp -import experimental.Quantum.Language +import experimental.quantum.Language import OpenSSLAlgorithmInstanceBase -import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer +import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer import AlgToAVCFlow /** diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll index 0dd948c9fae..7483572848e 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll @@ -1,10 +1,10 @@ import cpp -import experimental.Quantum.Language +import experimental.quantum.Language import KnownAlgorithmConstants import Crypto::KeyOpAlg as KeyOpAlg import OpenSSLAlgorithmInstanceBase import PaddingAlgorithmInstance -import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers import AlgToAVCFlow import BlockAlgorithmInstance diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll index 4b412da9b55..985e36dbdd7 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll @@ -1,7 +1,7 @@ import cpp -import experimental.Quantum.Language +import experimental.quantum.Language import KnownAlgorithmConstants -import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers import AlgToAVCFlow predicate knownOpenSSLConstantToHashFamilyType( diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index a0f0107d0ac..77caf0bb378 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -1,5 +1,5 @@ import cpp -import experimental.Quantum.OpenSSL.LibraryDetector +import experimental.quantum.OpenSSL.LibraryDetector predicate resolveAlgorithmFromExpr(Expr e, string normalizedName, string algType) { resolveAlgorithmFromCall(e, normalizedName, algType) diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll index 6a206773bfb..dc49c139cf0 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll @@ -1,5 +1,5 @@ -import experimental.Quantum.Language -import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +import experimental.quantum.Language +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase abstract class OpenSSLAlgorithmInstance extends Crypto::AlgorithmInstance { abstract OpenSSLAlgorithmValueConsumer getAVC(); diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll index 219289c7da0..4fb4d081869 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll @@ -1,9 +1,9 @@ import cpp -import experimental.Quantum.Language +import experimental.quantum.Language import OpenSSLAlgorithmInstanceBase -import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants import AlgToAVCFlow -import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer /** * Given a `KnownOpenSSLPaddingAlgorithmConstant`, converts this to a padding family type. diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll index 19777bc06d1..8fa65860b60 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll @@ -1,8 +1,8 @@ import cpp -import experimental.Quantum.Language -import experimental.Quantum.OpenSSL.LibraryDetector -import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.Quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase +import experimental.quantum.Language +import experimental.quantum.OpenSSL.LibraryDetector +import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase import OpenSSLAlgorithmValueConsumerBase abstract class CipherAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll index cebe7a86a12..ffc9a7c3991 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll @@ -1,7 +1,7 @@ import cpp -import experimental.Quantum.Language -import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +import experimental.quantum.Language +import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase // TODO: can self referential to itself, which is also an algorithm (Known algorithm) /** diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll index 753bb356e7a..b041b986754 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll @@ -2,11 +2,11 @@ // import EVPHashOperation // import EVPHashAlgorithmSource import cpp -import experimental.Quantum.Language +import experimental.quantum.Language import semmle.code.cpp.dataflow.new.DataFlow -import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase -import experimental.Quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances -import experimental.Quantum.OpenSSL.LibraryDetector +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances +import experimental.quantum.OpenSSL.LibraryDetector abstract class HashAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll index dddcf14c713..3f6e2bd4dc8 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll @@ -1,4 +1,4 @@ -import experimental.Quantum.Language +import experimental.quantum.Language import semmle.code.cpp.dataflow.new.DataFlow abstract class OpenSSLAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer instanceof Call { diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll index 009b22cf1b8..3f7ce20d6b3 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll @@ -1,8 +1,8 @@ import cpp -import experimental.Quantum.Language -import experimental.Quantum.OpenSSL.LibraryDetector -import experimental.Quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.Quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase +import experimental.quantum.Language +import experimental.quantum.OpenSSL.LibraryDetector +import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase import OpenSSLAlgorithmValueConsumerBase abstract class PaddingAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll index 6b28c4ee8e4..f53812093c4 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll @@ -2,8 +2,8 @@ import cpp import semmle.code.cpp.dataflow.new.DataFlow module OpenSSLModel { - import experimental.Quantum.Language - import experimental.Quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances - import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers - import experimental.Quantum.OpenSSL.Operations.OpenSSLOperations + import experimental.quantum.Language + import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances + import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers + import experimental.quantum.OpenSSL.Operations.OpenSSLOperations } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherInitializer.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherInitializer.qll index 584fd18a64c..fdf60ef757e 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherInitializer.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherInitializer.qll @@ -3,8 +3,8 @@ * Models cipher initialization for EVP cipher operations. */ -import experimental.Quantum.Language -import experimental.Quantum.OpenSSL.CtxFlow as CTXFlow +import experimental.quantum.Language +import experimental.quantum.OpenSSL.CtxFlow as CTXFlow module EncValToInitEncArgConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr().getValue().toInt() in [0, 1] } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll index ae05798ea1f..45c7d41b029 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll @@ -1,8 +1,8 @@ -import experimental.Quantum.Language -import experimental.Quantum.OpenSSL.CtxFlow as CTXFlow +import experimental.quantum.Language +import experimental.quantum.OpenSSL.CtxFlow as CTXFlow import EVPCipherInitializer import OpenSSLOperationBase -import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers private module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { @@ -16,7 +16,7 @@ private module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { private module AlgGetterToAlgConsumerFlow = DataFlow::Global; -// import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.AlgorithmValueConsumers +// import experimental.quantum.OpenSSL.AlgorithmValueConsumers.AlgorithmValueConsumers // import OpenSSLOperation // class EVPCipherOutput extends CipherOutputArtifact { // EVPCipherOutput() { exists(EVP_Cipher_Operation op | op.getOutputArg() = this) } diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashOperation.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashOperation.qll index b7771e240a4..45776b6668b 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashOperation.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashOperation.qll @@ -2,12 +2,12 @@ * https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis */ -import experimental.Quantum.Language -import experimental.Quantum.OpenSSL.CtxFlow as CTXFlow -import experimental.Quantum.OpenSSL.LibraryDetector +import experimental.quantum.Language +import experimental.quantum.OpenSSL.CtxFlow as CTXFlow +import experimental.quantum.OpenSSL.LibraryDetector import OpenSSLOperationBase import EVPHashInitializer -import experimental.Quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers // import EVPHashConsumers abstract class EVP_Hash_Operation extends OpenSSLOperation, Crypto::HashOperationInstance { diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperationBase.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperationBase.qll index 851d7a4b7e9..4798f5650a9 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperationBase.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperationBase.qll @@ -1,4 +1,4 @@ -import experimental.Quantum.Language +import experimental.quantum.Language abstract class OpenSSLOperation extends Crypto::OperationInstance instanceof Call { abstract Expr getInputArg(); diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Random.qll b/cpp/ql/lib/experimental/Quantum/OpenSSL/Random.qll index eceff874874..e599ed82169 100644 --- a/cpp/ql/lib/experimental/Quantum/OpenSSL/Random.qll +++ b/cpp/ql/lib/experimental/Quantum/OpenSSL/Random.qll @@ -1,6 +1,5 @@ import cpp -private import experimental.Quantum.Language -private import codeql.cryptography.Model +private import experimental.quantum.Language private import LibraryDetector private import semmle.code.cpp.dataflow.new.DataFlow @@ -15,7 +14,5 @@ class OpenSSLRandomNumberGeneratorInstance extends Crypto::RandomNumberGeneratio result.asDefiningArgument() = this.(Call).getArgument(0) } - override predicate flowsTo(Crypto::FlowAwareElement other) { - ArtifactUniversalFlow::flow(this.getOutputNode(), other.getInputNode()) - } + override string getGeneratorName() { result = this.(Call).getTarget().getName() } } diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 6bb19968c82..335360caeb2 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -6,8 +6,8 @@ extractor: cpp library: true upgrades: upgrades dependencies: - codeql/cryptography: ${workspace} codeql/dataflow: ${workspace} + codeql/experimental: ${workspace} codeql/mad: ${workspace} codeql/rangeanalysis: ${workspace} codeql/ssa: ${workspace} diff --git a/cpp/ql/src/experimental/Quantum/PrintCBOMGraph.ql b/cpp/ql/src/experimental/Quantum/PrintCBOMGraph.ql index d9658105aeb..f741e3c9f94 100644 --- a/cpp/ql/src/experimental/Quantum/PrintCBOMGraph.ql +++ b/cpp/ql/src/experimental/Quantum/PrintCBOMGraph.ql @@ -6,7 +6,7 @@ * @id cpp/print-cbom-graph */ -import experimental.Quantum.Language +import experimental.quantum.Language query predicate nodes(Crypto::NodeBase node, string key, string value) { Crypto::nodes_graph_impl(node, key, value) diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 6f7dc88157b..572d5716e02 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -1,4 +1,4 @@ -private import codeql.cryptography.Model +private import codeql.quantum.Model private import java as Language private import semmle.code.java.security.InsecureRandomnessQuery private import semmle.code.java.security.RandomQuery diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 52fa4620b46..036218757a8 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -6,8 +6,8 @@ extractor: java library: true upgrades: upgrades dependencies: - codeql/cryptography: ${workspace} codeql/dataflow: ${workspace} + codeql/experimental: ${workspace} codeql/mad: ${workspace} codeql/rangeanalysis: ${workspace} codeql/regex: ${workspace} diff --git a/java/ql/src/experimental/Quantum/Analysis/ArtifactReuse.qll b/java/ql/src/experimental/Quantum/Analysis/ArtifactReuse.qll index de283f89775..88598e61589 100644 --- a/java/ql/src/experimental/Quantum/Analysis/ArtifactReuse.qll +++ b/java/ql/src/experimental/Quantum/Analysis/ArtifactReuse.qll @@ -1,6 +1,6 @@ import java import semmle.code.java.dataflow.DataFlow -import experimental.Quantum.Language +import experimental.quantum.Language /** * Flow from any function that appears to return a value diff --git a/java/ql/src/experimental/Quantum/Analysis/InsecureNonceSource.ql b/java/ql/src/experimental/Quantum/Analysis/InsecureNonceSource.ql index 9c06884328b..b2c6f919d5f 100644 --- a/java/ql/src/experimental/Quantum/Analysis/InsecureNonceSource.ql +++ b/java/ql/src/experimental/Quantum/Analysis/InsecureNonceSource.ql @@ -8,7 +8,7 @@ * vulnerabilities such as replay attacks or key recovery. */ -import experimental.Quantum.Language +import experimental.quantum.Language predicate isInsecureNonceSource(Crypto::NonceArtifactNode n, Crypto::NodeBase src) { src = n.getSourceNode() and diff --git a/java/ql/src/experimental/Quantum/Analysis/KnownWeakKDFIterationCount.ql b/java/ql/src/experimental/Quantum/Analysis/KnownWeakKDFIterationCount.ql index 439295f74e3..701f3064e92 100644 --- a/java/ql/src/experimental/Quantum/Analysis/KnownWeakKDFIterationCount.ql +++ b/java/ql/src/experimental/Quantum/Analysis/KnownWeakKDFIterationCount.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::KeyDerivationOperationNode op, Literal l where diff --git a/java/ql/src/experimental/Quantum/Analysis/UnknownKDFIterationCount.ql b/java/ql/src/experimental/Quantum/Analysis/UnknownKDFIterationCount.ql index 0c91e66d52b..4ce404f01b0 100644 --- a/java/ql/src/experimental/Quantum/Analysis/UnknownKDFIterationCount.ql +++ b/java/ql/src/experimental/Quantum/Analysis/UnknownKDFIterationCount.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::KeyDerivationOperationNode op, Element e, string msg where diff --git a/java/ql/src/experimental/Quantum/Examples/BrokenCrypto.ql b/java/ql/src/experimental/Quantum/Examples/BrokenCrypto.ql index 020ac1b8925..b4e9de9ac94 100644 --- a/java/ql/src/experimental/Quantum/Examples/BrokenCrypto.ql +++ b/java/ql/src/experimental/Quantum/Examples/BrokenCrypto.ql @@ -1,58 +1,55 @@ /** -* @name Use of a broken or risky cryptographic algorithm -* @description Using broken or weak cryptographic algorithms can allow an attacker to compromise security. -* @kind problem -* @problem.severity warning -* @security-severity 7.5 -* @precision high -* @id java/weak-cryptographic-algorithm-new-model -* @tags security -* external/cwe/cwe-327 -* external/cwe/cwe-328 -*/ - - + * @name Use of a broken or risky cryptographic algorithm + * @description Using broken or weak cryptographic algorithms can allow an attacker to compromise security. + * @kind problem + * @problem.severity warning + * @security-severity 7.5 + * @precision high + * @id java/weak-cryptographic-algorithm-new-model + * @tags security + * external/cwe/cwe-327 + * external/cwe/cwe-328 + */ //THIS QUERY IS A REPLICA OF: https://github.com/github/codeql/blob/main/java/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.ql //but uses the **NEW MODELLING** -import experimental.Quantum.Language - +import experimental.quantum.Language /** * Gets the name of an algorithm that is known to be insecure. */ string getAnInsecureAlgorithmName() { - result = - [ - "DES", "RC2", "RC4", "RC5", - // ARCFOUR is a variant of RC4 - "ARCFOUR", - // Encryption mode ECB like AES/ECB/NoPadding is vulnerable to replay and other attacks - "ECB", - // CBC mode of operation with PKCS#5 or PKCS#7 padding is vulnerable to padding oracle attacks - "AES/CBC/PKCS[57]Padding" - ] - } - - private string rankedInsecureAlgorithm(int i) { - result = rank[i](string s | s = getAnInsecureAlgorithmName()) - } - - private string insecureAlgorithmString(int i) { - i = 1 and result = rankedInsecureAlgorithm(i) - or - result = rankedInsecureAlgorithm(i) + "|" + insecureAlgorithmString(i - 1) - } - - /** - * Gets the regular expression used for matching strings that look like they - * contain an algorithm that is known to be insecure. - */ - string getInsecureAlgorithmRegex() { - result = algorithmRegex(insecureAlgorithmString(max(int i | exists(rankedInsecureAlgorithm(i))))) - } + result = + [ + "DES", "RC2", "RC4", "RC5", + // ARCFOUR is a variant of RC4 + "ARCFOUR", + // Encryption mode ECB like AES/ECB/NoPadding is vulnerable to replay and other attacks + "ECB", + // CBC mode of operation with PKCS#5 or PKCS#7 padding is vulnerable to padding oracle attacks + "AES/CBC/PKCS[57]Padding" + ] +} - bindingset[algorithmString] +private string rankedInsecureAlgorithm(int i) { + result = rank[i](string s | s = getAnInsecureAlgorithmName()) +} + +private string insecureAlgorithmString(int i) { + i = 1 and result = rankedInsecureAlgorithm(i) + or + result = rankedInsecureAlgorithm(i) + "|" + insecureAlgorithmString(i - 1) +} + +/** + * Gets the regular expression used for matching strings that look like they + * contain an algorithm that is known to be insecure. + */ +string getInsecureAlgorithmRegex() { + result = algorithmRegex(insecureAlgorithmString(max(int i | exists(rankedInsecureAlgorithm(i))))) +} + +bindingset[algorithmString] private string algorithmRegex(string algorithmString) { // Algorithms usually appear in names surrounded by characters that are not // alphabetical characters in the same case. This handles the upper and lower @@ -67,11 +64,12 @@ private string algorithmRegex(string algorithmString) { "((^|.*[A-Z]{2}|.*[^a-zA-Z])(" + algorithmString.toLowerCase() + ")([^a-z].*|$))" } -from Crypto::Algorithm alg -where alg.getAlgorithmName().regexpMatch(getInsecureAlgorithmRegex()) and -// Exclude RSA/ECB/.* ciphers. -not alg.getAlgorithmName().regexpMatch("RSA/ECB.*") and -// Exclude German and French sentences. -not alg.getAlgorithmName().regexpMatch(".*\\p{IsLowercase} des \\p{IsLetter}.*") +from Crypto::Algorithm alg +where + alg.getAlgorithmName().regexpMatch(getInsecureAlgorithmRegex()) and + // Exclude RSA/ECB/.* ciphers. + not alg.getAlgorithmName().regexpMatch("RSA/ECB.*") and + // Exclude German and French sentences. + not alg.getAlgorithmName().regexpMatch(".*\\p{IsLowercase} des \\p{IsLetter}.*") select alg, "Cryptographic algorithm $@ is weak and should not be used.", alg, -alg.getAlgorithmName() + alg.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/Examples/InsecureOrUnknownNonceAtOperation.ql b/java/ql/src/experimental/Quantum/Examples/InsecureOrUnknownNonceAtOperation.ql index a9eb70076a0..fc2387fda37 100644 --- a/java/ql/src/experimental/Quantum/Examples/InsecureOrUnknownNonceAtOperation.ql +++ b/java/ql/src/experimental/Quantum/Examples/InsecureOrUnknownNonceAtOperation.ql @@ -4,7 +4,7 @@ * @kind problem */ -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::NonceArtifactNode n, Crypto::KeyOperationNode op, Crypto::FlowAwareElement src, string msg diff --git a/java/ql/src/experimental/Quantum/Examples/TestAESGCMNonce.ql b/java/ql/src/experimental/Quantum/Examples/TestAESGCMNonce.ql index 985527318ff..096cfa82216 100644 --- a/java/ql/src/experimental/Quantum/Examples/TestAESGCMNonce.ql +++ b/java/ql/src/experimental/Quantum/Examples/TestAESGCMNonce.ql @@ -2,7 +2,7 @@ * @name "PQC Test" */ -import experimental.Quantum.Language +import experimental.quantum.Language class AESGCMAlgorithmNode extends Crypto::KeyOperationAlgorithmNode { AESGCMAlgorithmNode() { diff --git a/java/ql/src/experimental/Quantum/Examples/TestCipher.ql b/java/ql/src/experimental/Quantum/Examples/TestCipher.ql index 503d6003922..2b1d6ebcf06 100644 --- a/java/ql/src/experimental/Quantum/Examples/TestCipher.ql +++ b/java/ql/src/experimental/Quantum/Examples/TestCipher.ql @@ -2,7 +2,7 @@ * @name "Key operation slice table demo query" */ -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::KeyOperationNode op, Crypto::KeyOperationAlgorithmNode a, diff --git a/java/ql/src/experimental/Quantum/Examples/TestCipherKey.ql b/java/ql/src/experimental/Quantum/Examples/TestCipherKey.ql index c489320528d..9408aac7e3b 100644 --- a/java/ql/src/experimental/Quantum/Examples/TestCipherKey.ql +++ b/java/ql/src/experimental/Quantum/Examples/TestCipherKey.ql @@ -2,7 +2,7 @@ * @name "PQC Test" */ -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::KeyOperationNode op, Crypto::CipherAlgorithmNode a, Crypto::KeyArtifactNode k where diff --git a/java/ql/src/experimental/Quantum/Examples/TestHash.ql b/java/ql/src/experimental/Quantum/Examples/TestHash.ql index 76ef6951a7e..b319c95a62b 100644 --- a/java/ql/src/experimental/Quantum/Examples/TestHash.ql +++ b/java/ql/src/experimental/Quantum/Examples/TestHash.ql @@ -2,7 +2,7 @@ * @name "Hash operation slice table demo query" */ -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::HashOperationNode op, Crypto::HashAlgorithmNode alg where alg = op.getAKnownAlgorithm() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricAlgorithm.ql index 1e5a7c5bced..7ae2a0f0888 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricAlgorithm.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::AlgorithmNode a where Crypto::isKnownAsymmetricAlgorithm(a) diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql index 962a6b72015..c7242ed11c5 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::KeyOperationAlgorithmNode a where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::AsymmetricCipherAlgorithm diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql index 0900401b80d..a14a0dfbaba 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::OperationNode op, Crypto::AlgorithmNode a where a = op.getAKnownAlgorithm() and Crypto::isKnownAsymmetricAlgorithm(a) diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownCipherAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownCipherAlgorithm.ql index 4096fe16d29..f126c3d9ae1 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownCipherAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownCipherAlgorithm.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language // TODO: should there be a cipher algorithm node? from Crypto::KeyOperationAlgorithmNode a diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql index 048bcd8182c..c3f69d91cb7 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::EllipticCurveNode a select a, "Instance of elliptic curve algorithm " + a.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingAlgorithm.ql index 632872725e7..ed24b62364d 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingAlgorithm.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::HashAlgorithmNode a select a, "Instance of hashing algorithm " + a.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperation.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperation.ql index b3556393173..23fc6235e80 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperation.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperation.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::HashOperationNode op select op, "Known hashing operation" diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperationAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperationAlgorithm.ql index ce0f4d37d4d..8af3c09dd10 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperationAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperationAlgorithm.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::OperationNode op, Crypto::HashAlgorithmNode a where a = op.getAKnownAlgorithm() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql index 584ffef0bbf..e0970353a98 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::KeyDerivationAlgorithmNode alg select alg, "Known key derivation algorithm " + alg.getAlgorithmName() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperation.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperation.ql index 8c77b2aa984..240a4ea3fc5 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperation.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperation.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::KeyDerivationOperationNode op select op, "Known key derivation operation" diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql index cf9a4e96f4d..9afbd7d7f2f 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql @@ -1,11 +1,12 @@ /** * @name Detects operations where the algorithm applied is a known key derivation algorithm - * @id java/crypto_inventory_slices/operation_with_known_key_derivation_algorithm + * @id java/cryptography-inventory-slices/operation-known-key-derivation-algorithm + * @description This query identifies operations that utilize a known key derivation algorithm. * @kind problem */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::OperationNode op, Crypto::KeyDerivationAlgorithmNode a where a = op.getAKnownAlgorithm() diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql index 21949f1c8c6..d8467305df9 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::KeyOperationAlgorithmNode a where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::SymmetricCipherAlgorithm diff --git a/java/ql/src/experimental/Quantum/InventorySlices/LikelyCryptoAPIFunction.ql b/java/ql/src/experimental/Quantum/InventorySlices/LikelyCryptoAPIFunction.ql index 0076c478dec..d02524a7df3 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/LikelyCryptoAPIFunction.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/LikelyCryptoAPIFunction.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language from Callable f, Parameter p, Crypto::OperationNode op where diff --git a/java/ql/src/experimental/Quantum/InventorySlices/UnknownOperationAlgorithm.ql b/java/ql/src/experimental/Quantum/InventorySlices/UnknownOperationAlgorithm.ql index 61a27c75dac..7559579d863 100644 --- a/java/ql/src/experimental/Quantum/InventorySlices/UnknownOperationAlgorithm.ql +++ b/java/ql/src/experimental/Quantum/InventorySlices/UnknownOperationAlgorithm.ql @@ -5,7 +5,7 @@ */ import java -import experimental.Quantum.Language +import experimental.quantum.Language //TODO: can we have an unknown node concept? from Crypto::OperationNode op, Element e, string msg diff --git a/java/ql/src/experimental/Quantum/PrintCBOMGraph.ql b/java/ql/src/experimental/Quantum/PrintCBOMGraph.ql index 063cda564b6..bc79d5d4ce6 100644 --- a/java/ql/src/experimental/Quantum/PrintCBOMGraph.ql +++ b/java/ql/src/experimental/Quantum/PrintCBOMGraph.ql @@ -6,7 +6,7 @@ * @id java/print-cbom-graph */ -import experimental.Quantum.Language +import experimental.quantum.Language query predicate nodes(Crypto::NodeBase node, string key, string value) { Crypto::nodes_graph_impl(node, key, value) diff --git a/shared/cryptography/codeql/cryptography/Model.qll b/shared/experimental/codeql/quantum/Model.qll similarity index 100% rename from shared/cryptography/codeql/cryptography/Model.qll rename to shared/experimental/codeql/quantum/Model.qll diff --git a/shared/cryptography/qlpack.yml b/shared/experimental/qlpack.yml similarity index 64% rename from shared/cryptography/qlpack.yml rename to shared/experimental/qlpack.yml index 768c64a0704..2976c56ba49 100644 --- a/shared/cryptography/qlpack.yml +++ b/shared/experimental/qlpack.yml @@ -1,4 +1,4 @@ -name: codeql/cryptography +name: codeql/experimental version: 0.0.0-dev groups: shared library: true From ac72abd3a69d69d37701c0622f837460a2a115ed Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 02:35:09 +0200 Subject: [PATCH 287/656] Refactor directory structure (shared experimental) --- cpp/ql/lib/experimental/Quantum/Language.qll | 2 +- cpp/ql/src/experimental/Quantum/Test2.ql | 2 +- java/ql/lib/experimental/Quantum/Language.qll | 2 +- shared/experimental/codeql/{ => experimental}/quantum/Model.qll | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename shared/experimental/codeql/{ => experimental}/quantum/Model.qll (100%) diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/Quantum/Language.qll index c3e2e3ad55f..176db9736ad 100644 --- a/cpp/ql/lib/experimental/Quantum/Language.qll +++ b/cpp/ql/lib/experimental/Quantum/Language.qll @@ -1,4 +1,4 @@ -import codeql.quantum.Model +import codeql.experimental.quantum.Model import semmle.code.cpp.dataflow.new.DataFlow private import cpp as Lang diff --git a/cpp/ql/src/experimental/Quantum/Test2.ql b/cpp/ql/src/experimental/Quantum/Test2.ql index 3f48f156a43..98a35d2a9e9 100644 --- a/cpp/ql/src/experimental/Quantum/Test2.ql +++ b/cpp/ql/src/experimental/Quantum/Test2.ql @@ -2,7 +2,7 @@ * @name "PQC Test" */ -import experimental.Quantum.Language +import experimental.quantum.Language from Crypto::NodeBase node select node diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/Quantum/Language.qll index 572d5716e02..eaf63aa5be2 100644 --- a/java/ql/lib/experimental/Quantum/Language.qll +++ b/java/ql/lib/experimental/Quantum/Language.qll @@ -1,4 +1,4 @@ -private import codeql.quantum.Model +private import codeql.experimental.quantum.Model private import java as Language private import semmle.code.java.security.InsecureRandomnessQuery private import semmle.code.java.security.RandomQuery diff --git a/shared/experimental/codeql/quantum/Model.qll b/shared/experimental/codeql/experimental/quantum/Model.qll similarity index 100% rename from shared/experimental/codeql/quantum/Model.qll rename to shared/experimental/codeql/experimental/quantum/Model.qll From 7339dd0077664ae41728488667df1f7368eef996 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 02:39:40 +0200 Subject: [PATCH 288/656] Rename "Quantum" to "quantum" in dir structure --- cpp/ql/lib/experimental/{Quantum => quantum}/Language.qll | 0 .../OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll | 0 .../OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll | 0 .../OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll | 0 .../OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll | 0 .../OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll | 0 .../OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll | 0 .../OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll | 0 .../OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll | 0 .../AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll | 0 .../AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll | 0 .../AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll | 0 .../AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll | 0 .../AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll | 0 .../AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll | 0 cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/CtxFlow.qll | 0 .../experimental/{Quantum => quantum}/OpenSSL/LibraryDetector.qll | 0 cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/OpenSSL.qll | 0 .../OpenSSL/Operations/EVPCipherInitializer.qll | 0 .../OpenSSL/Operations/EVPCipherOperation.qll | 0 .../OpenSSL/Operations/EVPHashInitializer.qll | 0 .../{Quantum => quantum}/OpenSSL/Operations/EVPHashOperation.qll | 0 .../OpenSSL/Operations/OpenSSLOperationBase.qll | 0 .../{Quantum => quantum}/OpenSSL/Operations/OpenSSLOperations.qll | 0 cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/Random.qll | 0 cpp/ql/src/experimental/{Quantum => quantum}/PrintCBOMGraph.ql | 0 cpp/ql/src/experimental/{Quantum => quantum}/Test2.ql | 0 java/ql/lib/experimental/{Quantum => quantum}/JCA.qll | 0 java/ql/lib/experimental/{Quantum => quantum}/Language.qll | 0 .../experimental/{Quantum => quantum}/Analysis/ArtifactReuse.qll | 0 .../{Quantum => quantum}/Analysis/InsecureNonceSource.ql | 0 .../{Quantum => quantum}/Analysis/KnownWeakKDFIterationCount.ql | 0 .../src/experimental/{Quantum => quantum}/Analysis/ReusedNonce.ql | 0 .../{Quantum => quantum}/Analysis/UnknownKDFIterationCount.ql | 0 .../experimental/{Quantum => quantum}/Examples/BrokenCrypto.ql | 0 .../Examples/InsecureOrUnknownNonceAtOperation.ql | 0 .../experimental/{Quantum => quantum}/Examples/TestAESGCMNonce.ql | 0 .../src/experimental/{Quantum => quantum}/Examples/TestCipher.ql | 0 .../experimental/{Quantum => quantum}/Examples/TestCipherKey.ql | 0 .../ql/src/experimental/{Quantum => quantum}/Examples/TestHash.ql | 0 .../InventorySlices/KnownAsymmetricAlgorithm.ql | 0 .../InventorySlices/KnownAsymmetricCipherAlgorithm.ql | 0 .../InventorySlices/KnownAsymmetricOperationAlgorithm.ql | 0 .../{Quantum => quantum}/InventorySlices/KnownCipherAlgorithm.ql | 0 .../InventorySlices/KnownEllipticCurveAlgorithm.ql | 0 .../{Quantum => quantum}/InventorySlices/KnownHashingAlgorithm.ql | 0 .../{Quantum => quantum}/InventorySlices/KnownHashingOperation.ql | 0 .../InventorySlices/KnownHashingOperationAlgorithm.ql | 0 .../InventorySlices/KnownKeyDerivationAlgorithm.ql | 0 .../InventorySlices/KnownKeyDerivationOperation.ql | 0 .../InventorySlices/KnownKeyDerivationOperationAlgorithm.ql | 0 .../InventorySlices/KnownSymmetricCipherAlgorithm.ql | 0 .../InventorySlices/LikelyCryptoAPIFunction.ql | 0 .../InventorySlices/UnknownOperationAlgorithm.ql | 0 java/ql/src/experimental/{Quantum => quantum}/PrintCBOMGraph.ql | 0 55 files changed, 0 insertions(+), 0 deletions(-) rename cpp/ql/lib/experimental/{Quantum => quantum}/Language.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/CtxFlow.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/LibraryDetector.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/OpenSSL.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/Operations/EVPCipherInitializer.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/Operations/EVPCipherOperation.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/Operations/EVPHashInitializer.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/Operations/EVPHashOperation.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/Operations/OpenSSLOperationBase.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/Operations/OpenSSLOperations.qll (100%) rename cpp/ql/lib/experimental/{Quantum => quantum}/OpenSSL/Random.qll (100%) rename cpp/ql/src/experimental/{Quantum => quantum}/PrintCBOMGraph.ql (100%) rename cpp/ql/src/experimental/{Quantum => quantum}/Test2.ql (100%) rename java/ql/lib/experimental/{Quantum => quantum}/JCA.qll (100%) rename java/ql/lib/experimental/{Quantum => quantum}/Language.qll (100%) rename java/ql/src/experimental/{Quantum => quantum}/Analysis/ArtifactReuse.qll (100%) rename java/ql/src/experimental/{Quantum => quantum}/Analysis/InsecureNonceSource.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/Analysis/KnownWeakKDFIterationCount.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/Analysis/ReusedNonce.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/Analysis/UnknownKDFIterationCount.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/Examples/BrokenCrypto.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/Examples/InsecureOrUnknownNonceAtOperation.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/Examples/TestAESGCMNonce.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/Examples/TestCipher.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/Examples/TestCipherKey.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/Examples/TestHash.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownAsymmetricAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownAsymmetricCipherAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownAsymmetricOperationAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownCipherAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownEllipticCurveAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownHashingAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownHashingOperation.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownHashingOperationAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownKeyDerivationAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownKeyDerivationOperation.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/KnownSymmetricCipherAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/LikelyCryptoAPIFunction.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/InventorySlices/UnknownOperationAlgorithm.ql (100%) rename java/ql/src/experimental/{Quantum => quantum}/PrintCBOMGraph.ql (100%) diff --git a/cpp/ql/lib/experimental/Quantum/Language.qll b/cpp/ql/lib/experimental/quantum/Language.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/Language.qll rename to cpp/ql/lib/experimental/quantum/Language.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/CtxFlow.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/LibraryDetector.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/LibraryDetector.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/LibraryDetector.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/LibraryDetector.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/OpenSSL.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherInitializer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherInitializer.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPCipherOperation.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashInitializer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashInitializer.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashInitializer.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashInitializer.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/EVPHashOperation.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperationBase.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperationBase.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperationBase.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperationBase.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperations.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperations.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/Operations/OpenSSLOperations.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperations.qll diff --git a/cpp/ql/lib/experimental/Quantum/OpenSSL/Random.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Random.qll similarity index 100% rename from cpp/ql/lib/experimental/Quantum/OpenSSL/Random.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/Random.qll diff --git a/cpp/ql/src/experimental/Quantum/PrintCBOMGraph.ql b/cpp/ql/src/experimental/quantum/PrintCBOMGraph.ql similarity index 100% rename from cpp/ql/src/experimental/Quantum/PrintCBOMGraph.ql rename to cpp/ql/src/experimental/quantum/PrintCBOMGraph.ql diff --git a/cpp/ql/src/experimental/Quantum/Test2.ql b/cpp/ql/src/experimental/quantum/Test2.ql similarity index 100% rename from cpp/ql/src/experimental/Quantum/Test2.ql rename to cpp/ql/src/experimental/quantum/Test2.ql diff --git a/java/ql/lib/experimental/Quantum/JCA.qll b/java/ql/lib/experimental/quantum/JCA.qll similarity index 100% rename from java/ql/lib/experimental/Quantum/JCA.qll rename to java/ql/lib/experimental/quantum/JCA.qll diff --git a/java/ql/lib/experimental/Quantum/Language.qll b/java/ql/lib/experimental/quantum/Language.qll similarity index 100% rename from java/ql/lib/experimental/Quantum/Language.qll rename to java/ql/lib/experimental/quantum/Language.qll diff --git a/java/ql/src/experimental/Quantum/Analysis/ArtifactReuse.qll b/java/ql/src/experimental/quantum/Analysis/ArtifactReuse.qll similarity index 100% rename from java/ql/src/experimental/Quantum/Analysis/ArtifactReuse.qll rename to java/ql/src/experimental/quantum/Analysis/ArtifactReuse.qll diff --git a/java/ql/src/experimental/Quantum/Analysis/InsecureNonceSource.ql b/java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql similarity index 100% rename from java/ql/src/experimental/Quantum/Analysis/InsecureNonceSource.ql rename to java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql diff --git a/java/ql/src/experimental/Quantum/Analysis/KnownWeakKDFIterationCount.ql b/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql similarity index 100% rename from java/ql/src/experimental/Quantum/Analysis/KnownWeakKDFIterationCount.ql rename to java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql diff --git a/java/ql/src/experimental/Quantum/Analysis/ReusedNonce.ql b/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql similarity index 100% rename from java/ql/src/experimental/Quantum/Analysis/ReusedNonce.ql rename to java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql diff --git a/java/ql/src/experimental/Quantum/Analysis/UnknownKDFIterationCount.ql b/java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql similarity index 100% rename from java/ql/src/experimental/Quantum/Analysis/UnknownKDFIterationCount.ql rename to java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql diff --git a/java/ql/src/experimental/Quantum/Examples/BrokenCrypto.ql b/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql similarity index 100% rename from java/ql/src/experimental/Quantum/Examples/BrokenCrypto.ql rename to java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql diff --git a/java/ql/src/experimental/Quantum/Examples/InsecureOrUnknownNonceAtOperation.ql b/java/ql/src/experimental/quantum/Examples/InsecureOrUnknownNonceAtOperation.ql similarity index 100% rename from java/ql/src/experimental/Quantum/Examples/InsecureOrUnknownNonceAtOperation.ql rename to java/ql/src/experimental/quantum/Examples/InsecureOrUnknownNonceAtOperation.ql diff --git a/java/ql/src/experimental/Quantum/Examples/TestAESGCMNonce.ql b/java/ql/src/experimental/quantum/Examples/TestAESGCMNonce.ql similarity index 100% rename from java/ql/src/experimental/Quantum/Examples/TestAESGCMNonce.ql rename to java/ql/src/experimental/quantum/Examples/TestAESGCMNonce.ql diff --git a/java/ql/src/experimental/Quantum/Examples/TestCipher.ql b/java/ql/src/experimental/quantum/Examples/TestCipher.ql similarity index 100% rename from java/ql/src/experimental/Quantum/Examples/TestCipher.ql rename to java/ql/src/experimental/quantum/Examples/TestCipher.ql diff --git a/java/ql/src/experimental/Quantum/Examples/TestCipherKey.ql b/java/ql/src/experimental/quantum/Examples/TestCipherKey.ql similarity index 100% rename from java/ql/src/experimental/Quantum/Examples/TestCipherKey.ql rename to java/ql/src/experimental/quantum/Examples/TestCipherKey.ql diff --git a/java/ql/src/experimental/Quantum/Examples/TestHash.ql b/java/ql/src/experimental/quantum/Examples/TestHash.ql similarity index 100% rename from java/ql/src/experimental/Quantum/Examples/TestHash.ql rename to java/ql/src/experimental/quantum/Examples/TestHash.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownCipherAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownHashingAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperation.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperation.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownHashingOperationAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperation.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperation.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/LikelyCryptoAPIFunction.ql b/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/LikelyCryptoAPIFunction.ql rename to java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql diff --git a/java/ql/src/experimental/Quantum/InventorySlices/UnknownOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql similarity index 100% rename from java/ql/src/experimental/Quantum/InventorySlices/UnknownOperationAlgorithm.ql rename to java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql diff --git a/java/ql/src/experimental/Quantum/PrintCBOMGraph.ql b/java/ql/src/experimental/quantum/PrintCBOMGraph.ql similarity index 100% rename from java/ql/src/experimental/Quantum/PrintCBOMGraph.ql rename to java/ql/src/experimental/quantum/PrintCBOMGraph.ql From 0066f74d3fe7f31665f78ae43faaf5b6a20d12c8 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 02:40:56 +0200 Subject: [PATCH 289/656] Delete development scripts --- misc/scripts/cryptography/cbom.sh | 8 -- misc/scripts/cryptography/generate_cbom.py | 117 --------------------- 2 files changed, 125 deletions(-) delete mode 100755 misc/scripts/cryptography/cbom.sh delete mode 100644 misc/scripts/cryptography/generate_cbom.py diff --git a/misc/scripts/cryptography/cbom.sh b/misc/scripts/cryptography/cbom.sh deleted file mode 100755 index ef558ccf432..00000000000 --- a/misc/scripts/cryptography/cbom.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -CODEQL_PATH="/Users/nicolaswill/.local/share/gh/extensions/gh-codeql/dist/release/v2.20.4/codeql" -DATABASE_PATH="/Users/nicolaswill/pqc/gpt-crypto-test-cases/gpt_ai_gen_jca_test_cases_db" -QUERY_FILE="/Users/nicolaswill/pqc/codeql/java/ql/src/experimental/Quantum/PrintCBOMGraph.ql" -OUTPUT_DIR="graph_output" - -python3 generate_cbom.py -c "$CODEQL_PATH" -d "$DATABASE_PATH" -q "$QUERY_FILE" -o "$OUTPUT_DIR" diff --git a/misc/scripts/cryptography/generate_cbom.py b/misc/scripts/cryptography/generate_cbom.py deleted file mode 100644 index 6bd0d19712c..00000000000 --- a/misc/scripts/cryptography/generate_cbom.py +++ /dev/null @@ -1,117 +0,0 @@ -#!/usr/bin/env python3 - -import os -import re -import sys -import argparse -import subprocess -import xml.etree.ElementTree as ET - -def run_codeql_analysis(codeql_path, database_path, query_path, output_dir): - """Runs the CodeQL analysis and generates a DGML file.""" - os.makedirs(output_dir, exist_ok=True) - command = [ - codeql_path, "database", "analyze", database_path, query_path, - "--rerun", "--format=dgml", "--output", output_dir - ] - - print(f"Running CodeQL analysis: {' '.join(command)}") - result = subprocess.run(command, capture_output=True, text=True) - - if result.returncode == 0: - print("Analysis completed successfully.") - else: - print("Analysis failed.") - print(result.stderr) - sys.exit(1) - - return result.returncode - - -def convert_dgml_to_dot(dgml_file, dot_file): - """Converts the DGML file to DOT format using the exact original implementation.""" - print(f"Processing DGML file: {dgml_file}") - - # Read source DGML - with open(dgml_file, "r", encoding="utf-8") as f: - xml_content = f.read() - - root = ET.fromstring(xml_content) - - # Form dot element sequence - body_l = ["digraph cbom {", - "node [shape=box];" - ] - - # Process nodes - for node in root.find("{http://schemas.microsoft.com/vs/2009/dgml}Nodes"): - att = node.attrib - node_id = att['Id'] - label_parts = [] - for key, value in att.items(): - if key == 'Id': - continue - elif key == 'Label': - label_parts.append(value) - else: - label_parts.append(f"{key}={value}") - label = "\\n".join(label_parts) - # Escape forward slashes and double quotes - label = label.replace("/", "\\/") - label = label.replace("\"", "\\\"") - prop_l = [f'label="{label}"'] - node_s = f'nd_{node_id} [{", ".join(prop_l)}];' - body_l.append(node_s) - - # Process edges - for edge in root.find("{http://schemas.microsoft.com/vs/2009/dgml}Links"): - att = edge.attrib - edge_label = att.get("Label", "") - edge_label = edge_label.replace("/", "\\/") - edge_label = edge_label.replace("\"", "\\\"") - edge_s = 'nd_{} -> nd_{} [label="{}"];'.format( - att["Source"], att["Target"], edge_label) - body_l.append(edge_s) - - body_l.append("}") - - # Write DOT output - with open(dot_file, "w", encoding="utf-8") as f: - f.write("\n".join(body_l)) - - print(f"DGML file successfully converted to DOT format: {dot_file}") - - -def main(): - parser = argparse.ArgumentParser(description="Run CodeQL analysis and convert DGML to DOT.") - parser.add_argument("-c", "--codeql", required=True, help="Path to CodeQL CLI executable.") - parser.add_argument("-d", "--database", required=True, help="Path to the CodeQL database.") - parser.add_argument("-q", "--query", required=True, help="Path to the .ql query file.") - parser.add_argument("--queryid", required=True, help="Query ID for the analysis.") - parser.add_argument("-o", "--output", required=True, help="Output directory for analysis results.") - - args = parser.parse_args() - - # Run CodeQL analysis - run_codeql_analysis(args.codeql, args.database, args.query, args.output) - - # Locate DGML file - ALLOWED_QUERY_ID = re.compile(r'^[a-zA-Z0-9_\-]+$') - - if not ALLOWED_QUERY_ID.match(args.queryid): - print("Invalid query_id provided: '%s'. Allowed characters: letters, digits, '_', and '-'.", args.queryid) - sys.exit(1) - - dgml_file = os.path.join(args.output, "java", '{}.dgml'.format(args.queryid)) - dot_file = dgml_file.replace(".dgml", ".dot") - - if os.path.exists(dgml_file): - # Convert DGML to DOT - convert_dgml_to_dot(dgml_file, dot_file) - else: - print(f"No DGML file found in {args.output}.") - sys.exit(1) - - -if __name__ == "__main__": - main() From a7ebe4a51a249774a0d5a48ae671a240de2e5e5f Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 02:43:29 +0200 Subject: [PATCH 290/656] Fix typo in asymmetric inventory slice query id --- .../quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql index c7242ed11c5..b903e152a29 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql @@ -1,6 +1,6 @@ /** * @name Detects known asymmetric cipher algorithms - * @id java/crypto_inventory_slices/known_symmetric_cipher_algorithm + * @id java/crypto_inventory_slices/known_asymmetric_cipher_algorithm * @kind problem */ From e956d041dc9cc405df5cc67ddf839157e14d76ab Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 02:51:53 +0200 Subject: [PATCH 291/656] Format LibraryDetector.qll --- .../lib/experimental/quantum/OpenSSL/LibraryDetector.qll | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/LibraryDetector.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/LibraryDetector.qll index 3cd359ce58b..5ff02cd9519 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/LibraryDetector.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/LibraryDetector.qll @@ -1,10 +1,7 @@ import cpp predicate isPossibleOpenSSLFunction(Function f) { - isPossibleOpenSSLLocation(f.getADeclarationLocation()) - } - -predicate isPossibleOpenSSLLocation(Location l){ - l.toString().toLowerCase().matches("%openssl%") + isPossibleOpenSSLLocation(f.getADeclarationLocation()) } - \ No newline at end of file + +predicate isPossibleOpenSSLLocation(Location l) { l.toString().toLowerCase().matches("%openssl%") } From 1d8a57e7da529e38708480d4bc0684723ff1443f Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 02:56:52 +0200 Subject: [PATCH 292/656] Fix EVP Cipher class, predicate, and comment typos --- .../Operations/EVPCipherInitializer.qll | 28 +++++++++---------- .../OpenSSL/Operations/EVPCipherOperation.qll | 6 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll index fdf60ef757e..3e8607ef8ec 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll @@ -10,14 +10,14 @@ module EncValToInitEncArgConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr().getValue().toInt() in [0, 1] } predicate isSink(DataFlow::Node sink) { - exists(EVP_Cipher_Inititalizer initCall | sink.asExpr() = initCall.getOperataionSubtypeArg()) + exists(EVP_Cipher_Initializer initCall | sink.asExpr() = initCall.getOperationSubtypeArg()) } } module EncValToInitEncArgFlow = DataFlow::Global; int getEncConfigValue(Expr e) { - exists(EVP_Cipher_Inititalizer initCall | e = initCall.getOperataionSubtypeArg()) and + exists(EVP_Cipher_Initializer initCall | e = initCall.getOperationSubtypeArg()) and exists(DataFlow::Node a, DataFlow::Node b | EncValToInitEncArgFlow::flow(a, b) and b.asExpr() = e and result = a.asExpr().getValue().toInt() ) @@ -34,7 +34,7 @@ Crypto::KeyOperationSubtype intToCipherOperationSubtype(int i) { } // TODO: need to add key consumer -abstract class EVP_Cipher_Inititalizer extends Call { +abstract class EVP_Cipher_Initializer extends Call { Expr getContextArg() { result = this.(Call).getArgument(0) } Expr getAlgorithmArg() { result = this.(Call).getArgument(1) } @@ -44,7 +44,7 @@ abstract class EVP_Cipher_Inititalizer extends Call { abstract Expr getIVArg(); // abstract Crypto::CipherOperationSubtype getCipherOperationSubtype(); - abstract Expr getOperataionSubtypeArg(); + abstract Expr getOperationSubtypeArg(); Crypto::KeyOperationSubtype getCipherOperationSubtype() { if this.(Call).getTarget().getName().toLowerCase().matches("%encrypt%") @@ -53,19 +53,19 @@ abstract class EVP_Cipher_Inititalizer extends Call { if this.(Call).getTarget().getName().toLowerCase().matches("%decrypt%") then result instanceof Crypto::TDecryptMode else - if exists(getEncConfigValue(this.getOperataionSubtypeArg())) - then result = intToCipherOperationSubtype(getEncConfigValue(this.getOperataionSubtypeArg())) + if exists(getEncConfigValue(this.getOperationSubtypeArg())) + then result = intToCipherOperationSubtype(getEncConfigValue(this.getOperationSubtypeArg())) else result instanceof Crypto::TUnknownKeyOperationMode } } -abstract class EVP_EX_Initializer extends EVP_Cipher_Inititalizer { +abstract class EVP_EX_Initializer extends EVP_Cipher_Initializer { override Expr getKeyArg() { result = this.(Call).getArgument(3) } override Expr getIVArg() { result = this.(Call).getArgument(4) } } -abstract class EVP_EX2_Initializer extends EVP_Cipher_Inititalizer { +abstract class EVP_EX2_Initializer extends EVP_Cipher_Initializer { override Expr getKeyArg() { result = this.(Call).getArgument(2) } override Expr getIVArg() { result = this.(Call).getArgument(3) } @@ -78,7 +78,7 @@ class EVP_Cipher_EX_Init_Call extends EVP_EX_Initializer { ] } - override Expr getOperataionSubtypeArg() { + override Expr getOperationSubtypeArg() { this.(Call).getTarget().getName().toLowerCase().matches("%cipherinit%") and result = this.(Call).getArgument(5) } @@ -92,7 +92,7 @@ class EVP_Cipher_EX2_or_Simple_Init_Call extends EVP_EX2_Initializer { ] } - override Expr getOperataionSubtypeArg() { + override Expr getOperationSubtypeArg() { this.(Call).getTarget().getName().toLowerCase().matches("%cipherinit%") and result = this.(Call).getArgument(4) } @@ -101,23 +101,23 @@ class EVP_Cipher_EX2_or_Simple_Init_Call extends EVP_EX2_Initializer { class EVP_CipherInit_SKEY_Call extends EVP_EX2_Initializer { EVP_CipherInit_SKEY_Call() { this.(Call).getTarget().getName() in ["EVP_CipherInit_SKEY"] } - override Expr getOperataionSubtypeArg() { result = this.(Call).getArgument(5) } + override Expr getOperationSubtypeArg() { result = this.(Call).getArgument(5) } } class EVPCipherInitializerAlgorithmArgument extends Expr { EVPCipherInitializerAlgorithmArgument() { - exists(EVP_Cipher_Inititalizer initCall | this = initCall.getAlgorithmArg()) + exists(EVP_Cipher_Initializer initCall | this = initCall.getAlgorithmArg()) } } class EVPCipherInitializerKeyArgument extends Expr { EVPCipherInitializerKeyArgument() { - exists(EVP_Cipher_Inititalizer initCall | this = initCall.getKeyArg()) + exists(EVP_Cipher_Initializer initCall | this = initCall.getKeyArg()) } } class EVPCipherInitializerIVArgument extends Expr { EVPCipherInitializerIVArgument() { - exists(EVP_Cipher_Inititalizer initCall | this = initCall.getIVArg()) + exists(EVP_Cipher_Initializer initCall | this = initCall.getIVArg()) } } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll index 45c7d41b029..b544079579a 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll @@ -45,7 +45,7 @@ abstract class EVP_Cipher_Operation extends OpenSSLOperation, Crypto::KeyOperati this.(Call).getTarget().getName().toLowerCase().matches("%cipher%") } - EVP_Cipher_Inititalizer getInitCall() { + EVP_Cipher_Initializer getInitCall() { CTXFlow::ctxArgFlowsToCtxArg(result.getContextArg(), this.getContextArg()) } @@ -74,14 +74,14 @@ abstract class EVP_Final_Call extends EVP_Cipher_Operation { // TODO: only model Final (model final as operation and model update but not as an operation) // Updates are multiple input consumers (most important) -// PUNT assuming update doesn't ouput, otherwise it outputs arifacts, but is not an operation +// TODO: assuming update doesn't ouput, otherwise it outputs artifacts, but is not an operation class EVP_Cipher_Call extends EVP_Cipher_Operation { EVP_Cipher_Call() { this.(Call).getTarget().getName() = "EVP_Cipher" } override Expr getInputArg() { result = this.(Call).getArgument(2) } } -// ******* TODO NEED to model UPDATE but not as the coree operation, rather a step towards final, +// ******* TODO: model UPDATE but not as the core operation, rather a step towards final // see the JCA // class EVP_Encrypt_Decrypt_or_Cipher_Update_Call extends EVP_Update_Call { // EVP_Encrypt_Decrypt_or_Cipher_Update_Call() { From 1135fbe950b146bca576d7921b528a1c3ec68c20 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 02:58:43 +0200 Subject: [PATCH 293/656] Fix EVP_Hash_Initializer typo --- .../quantum/OpenSSL/Operations/EVPHashInitializer.qll | 4 ++-- .../quantum/OpenSSL/Operations/EVPHashOperation.qll | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashInitializer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashInitializer.qll index cd0dac94001..46d414ece6c 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashInitializer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashInitializer.qll @@ -1,12 +1,12 @@ import cpp -abstract class EVP_Hash_Inititalizer extends Call { +abstract class EVP_Hash_Initializer extends Call { Expr getContextArg() { result = this.(Call).getArgument(0) } abstract Expr getAlgorithmArg(); } -class EVP_DigestInit_Variant_Calls extends EVP_Hash_Inititalizer { +class EVP_DigestInit_Variant_Calls extends EVP_Hash_Initializer { EVP_DigestInit_Variant_Calls() { this.(Call).getTarget().getName() in [ "EVP_DigestInit", "EVP_DigestInit_ex", "EVP_DigestInit_ex2" diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll index 45776b6668b..a187b62a7bd 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll @@ -13,7 +13,7 @@ import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValu abstract class EVP_Hash_Operation extends OpenSSLOperation, Crypto::HashOperationInstance { Expr getContextArg() { result = this.(Call).getArgument(0) } - EVP_Hash_Inititalizer getInitCall() { + EVP_Hash_Initializer getInitCall() { CTXFlow::ctxArgFlowsToCtxArg(result.getContextArg(), this.getContextArg()) } } @@ -38,7 +38,7 @@ class EVP_Q_Digest_Operation extends EVP_Hash_Operation { } //override Crypto::AlgorithmConsumer getAlgorithmConsumer() { } - override EVP_Hash_Inititalizer getInitCall() { + override EVP_Hash_Initializer getInitCall() { // This variant of digest does not use an init // and even if it were used, the init would be ignored/undefined none() @@ -74,7 +74,7 @@ class EVP_Digest_Operation extends EVP_Hash_Operation { DataFlow::exprNode(this.(Call).getArgument(4))) } - override EVP_Hash_Inititalizer getInitCall() { + override EVP_Hash_Initializer getInitCall() { // This variant of digest does not use an init // and even if it were used, the init would be ignored/undefined none() From 0c6e124b01a34c9ee6b286e174ae999a3d58e136 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 03:02:59 +0200 Subject: [PATCH 294/656] Delete development test query --- cpp/ql/src/experimental/quantum/Test2.ql | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 cpp/ql/src/experimental/quantum/Test2.ql diff --git a/cpp/ql/src/experimental/quantum/Test2.ql b/cpp/ql/src/experimental/quantum/Test2.ql deleted file mode 100644 index 98a35d2a9e9..00000000000 --- a/cpp/ql/src/experimental/quantum/Test2.ql +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @name "PQC Test" - */ - -import experimental.quantum.Language - -from Crypto::NodeBase node -select node From 986c8e1aecbdc52aeca368d93c3958643ab99431 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 03:24:04 +0200 Subject: [PATCH 295/656] Change Java inventory slices to @kind table --- .../InsecureOrUnknownNonceAtOperation.ql | 70 ------------------- .../quantum/Examples/TestCipherKey.ql | 17 ----- .../KnownAsymmetricAlgorithm.ql | 2 +- .../KnownAsymmetricCipherAlgorithm.ql | 2 +- .../KnownAsymmetricOperationAlgorithm.ql | 2 +- .../InventorySlices/KnownCipherAlgorithm.ql | 2 +- .../KnownEllipticCurveAlgorithm.ql | 2 +- .../InventorySlices/KnownHashingAlgorithm.ql | 2 +- .../InventorySlices/KnownHashingOperation.ql | 2 +- .../KnownHashingOperationAlgorithm.ql | 2 +- .../KnownKeyDerivationAlgorithm.ql | 2 +- .../KnownKeyDerivationOperation.ql | 2 +- .../KnownKeyDerivationOperationAlgorithm.ql | 5 +- .../KnownSymmetricCipherAlgorithm.ql | 2 +- .../LikelyCryptoAPIFunction.ql | 2 +- .../UnknownOperationAlgorithm.ql | 2 +- 16 files changed, 15 insertions(+), 103 deletions(-) delete mode 100644 java/ql/src/experimental/quantum/Examples/InsecureOrUnknownNonceAtOperation.ql delete mode 100644 java/ql/src/experimental/quantum/Examples/TestCipherKey.ql diff --git a/java/ql/src/experimental/quantum/Examples/InsecureOrUnknownNonceAtOperation.ql b/java/ql/src/experimental/quantum/Examples/InsecureOrUnknownNonceAtOperation.ql deleted file mode 100644 index fc2387fda37..00000000000 --- a/java/ql/src/experimental/quantum/Examples/InsecureOrUnknownNonceAtOperation.ql +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @name Insecure or unknown nonce source at a cipher operation - * @id java/insecure-or-unknown-nonce-at-operation - * @kind problem - */ - -import experimental.quantum.Language - -from - Crypto::NonceArtifactNode n, Crypto::KeyOperationNode op, Crypto::FlowAwareElement src, string msg -where - op.getANonce() = n and - // Only encryption mode is relevant for insecure nonces, consder any 'unknown' subtype - // as possibly encryption. - ( - op.getKeyOperationSubtype() instanceof Crypto::EncryptionSubtype - or - op.getKeyOperationSubtype() instanceof Crypto::WrapSubtype - or - op.getKeyOperationSubtype() instanceof Crypto::UnwrapSubtype - ) and - ( - // Known sources cases that are not secure - src = n.getSourceElement() and - not src instanceof SecureRandomnessInstance and - msg = "Operation uses insecure nonce source $@" - or - // Totally unknown sources (unmodeled input sources) - not exists(n.getSourceElement()) and - msg = "Operation uses unknown nonce source" and - src = n.asElement() - ) -select n, msg, src, src.toString() -// variant using instances, does not yield the same results -// from Crypto::NonceArtifactConsumer n, Crypto::CipherOperationInstance op, Crypto::FlowAwareElement src, string msg -// where -// op.getNonceConsumer() = n and -// TODO: only perform the query on encryption -// ( -// // Known sources cases that are not secure -// src = n.getAKnownArtifactSource()and -// not src instanceof SecureRandomnessInstance and -// msg = "Operation uses insecure nonce source $@" -// or -// // Totally unknown sources (unmodeled input sources) -// // When this occurs set src to n, just to bind it, but the output message will not report any source -// not exists(n.getAKnownArtifactSource()) and msg = "Operation uses unknown nonce source" and src = n -// ) -// select n, msg, src, src.toString() -// NOTE: this will find all unknowns too, constants, and allocations, without needing to model them -// which is kinda nice, but accidental, since getSourceElement is not modeled for everything -// If users want to find constants or unallocated, they need to model those sources, and output the -// getSourceElement -// QUESTION: why isn't the source element a node? -// NOTE: when not all sources are modeled, if one source is secure, even if others do exist, you -// will see the nonce and operation are secure, regardless of potentially insecure IV sources -// resulting in False Negatives -// NOTE: need to have a query where the op has no Nonce -// // Ideal query -// from Crypto::NonceNode n, Crypto::CipherOperationNode op -// where -// n = op.getANonce() and -// // n = op.getAnUnknownNonce() -// not n.asElement() instanceof SecureRandomSource -// select op, "Operation uses insecure nonce source @", n, n.toString() -// from Crypto::Nonce n, Crypto::ArtifactLocatableElement nonceSrc -// where -// n.() = nonceSrc and -// not nonceSrc instanceof SecureRandomnessInstance -// select n, nonceSrc diff --git a/java/ql/src/experimental/quantum/Examples/TestCipherKey.ql b/java/ql/src/experimental/quantum/Examples/TestCipherKey.ql deleted file mode 100644 index 9408aac7e3b..00000000000 --- a/java/ql/src/experimental/quantum/Examples/TestCipherKey.ql +++ /dev/null @@ -1,17 +0,0 @@ -/** - * @name "PQC Test" - */ - -import experimental.quantum.Language - -from Crypto::KeyOperationNode op, Crypto::CipherAlgorithmNode a, Crypto::KeyArtifactNode k -where - a = op.getAKnownCipherAlgorithm() and - k = op.getAKey() -select op, op.getKeyOperationSubtype(), a, a.getRawAlgorithmName(), k, k.getSourceNode() -/* - * from Crypto::CipherOperationNode op - * where op.getLocation().getFile().getBaseName() = "AsymmetricEncryptionMacHybridCryptosystem.java" - * select op, op.getAKey().getSourceNode() - */ - diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql index 7ae2a0f0888..918be510b6c 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Detects known asymmetric algorithms * @id java/crypto_inventory_slices/known_asymmetric_algorithm - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql index b903e152a29..b40910b10f4 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Detects known asymmetric cipher algorithms * @id java/crypto_inventory_slices/known_asymmetric_cipher_algorithm - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql index a14a0dfbaba..b3e0097ec4c 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Detects operations where the algorithm applied is a known asymmetric algorithms * @id java/crypto_inventory_slices/known_asymmetric_operation_algorithm - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql index f126c3d9ae1..de80f2a6d1a 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Detects known cipher algorithms * @id java/crypto_inventory_slices/known_cipher_algorithm - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql index c3f69d91cb7..dd204bfd54e 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Detects known elliptic curve algorithms * @id java/crypto_inventory_slices/known_elliptic_curve_algorithm - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql index ed24b62364d..26762543740 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Detects algorithms that are known hashing algorithms * @id java/crypto_inventory_slices/known_hashing_algorithm - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql index 23fc6235e80..2edfa6190ea 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql @@ -1,7 +1,7 @@ /** * @name Detects uses of hashing operations (operations exlicitly for hashing only, irrespective of the algorithm used) * @id java/crypto_inventory_slices/known_hashing_operation - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql index 8af3c09dd10..6ee2ce9ac4d 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Detects operations where the algorithm applied is a known hashing algorithm * @id java/crypto_inventory_slices/operation_with_known_hashing_algorithm - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql index e0970353a98..28de1170d27 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Detects known key derivation algorithms * @id java/crypto_inventory_slices/known_key_derivation_algorithm - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql index 240a4ea3fc5..c0ee9c88b2b 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql @@ -1,7 +1,7 @@ /** * @name Detects uses of key derivation operations (operations exlicitly for key derivation only, irrespective of the algorithm used) * @id java/crypto_inventory_slices/known_key_derivation_operation - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql index 9afbd7d7f2f..db27630cafa 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql @@ -1,8 +1,7 @@ /** * @name Detects operations where the algorithm applied is a known key derivation algorithm - * @id java/cryptography-inventory-slices/operation-known-key-derivation-algorithm - * @description This query identifies operations that utilize a known key derivation algorithm. - * @kind problem + * @id java/crypto_inventory_slices/operation_known_key_derivation_algorithm + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql index d8467305df9..6c5f9c63677 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Detects known symmetric cipher algorithms * @id java/crypto_inventory_slices/known_symmetric_cipher_algorithm - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql b/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql index d02524a7df3..cb16064667a 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql @@ -1,7 +1,7 @@ /** * @name Detects functions that take in crypto configuration parameters but calls are not detected in source. * @id java/crypto_inventory_slices/likely_crypto_api_function - * @kind problem + * @kind table */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql index 7559579d863..962e8945e81 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Detects operations where the algorithm applied is unknown * @id java/crypto_inventory_slices/unknown_operation_algorithm - * @kind problem + * @kind table */ import java From b558e844ffa902b6ab7b665c902ca3e1bbdaed1c Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 03:56:20 +0200 Subject: [PATCH 296/656] Update slice query metadata and output tables --- .../InventorySlices/KnownAsymmetricAlgorithm.ql | 9 ++++++--- .../InventorySlices/KnownAsymmetricCipherAlgorithm.ql | 9 ++++++--- .../KnownAsymmetricOperationAlgorithm.ql | 9 ++++++--- .../quantum/InventorySlices/KnownCipherAlgorithm.ql | 9 ++++++--- .../InventorySlices/KnownEllipticCurveAlgorithm.ql | 9 ++++++--- .../quantum/InventorySlices/KnownHashingAlgorithm.ql | 9 ++++++--- .../quantum/InventorySlices/KnownHashingOperation.ql | 9 ++++++--- .../InventorySlices/KnownHashingOperationAlgorithm.ql | 9 ++++++--- .../InventorySlices/KnownKeyDerivationAlgorithm.ql | 9 ++++++--- .../InventorySlices/KnownKeyDerivationOperation.ql | 9 ++++++--- .../KnownKeyDerivationOperationAlgorithm.ql | 9 ++++++--- .../InventorySlices/KnownSymmetricCipherAlgorithm.ql | 9 ++++++--- .../quantum/InventorySlices/LikelyCryptoAPIFunction.ql | 10 +++++++--- .../InventorySlices/UnknownOperationAlgorithm.ql | 10 +++++++--- 14 files changed, 86 insertions(+), 42 deletions(-) diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql index 918be510b6c..a74da7d1acc 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql @@ -1,7 +1,10 @@ /** - * @name Detects known asymmetric algorithms - * @id java/crypto_inventory_slices/known_asymmetric_algorithm + * @name Operations using known asymmetric cipher algorithms (slice) + * @description Outputs operations where the algorithm used is a known asymmetric cipher algorithm. + * @id java/quantum/slices/known-asymmetric-cipher-algorithm * @kind table + * @tags quantum + * experimental */ import java @@ -9,4 +12,4 @@ import experimental.quantum.Language from Crypto::AlgorithmNode a where Crypto::isKnownAsymmetricAlgorithm(a) -select a, "Instance of asymmetric algorithm " + a.getAlgorithmName() +select a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql index b40910b10f4..69643d92cd2 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql @@ -1,7 +1,10 @@ /** - * @name Detects known asymmetric cipher algorithms - * @id java/crypto_inventory_slices/known_asymmetric_cipher_algorithm + * @name Known asymmetric cipher algorithms (slice) + * @description Outputs known asymmetric cipher algorithms. + * @id java/quantum/slices/known-asymmetric-cipher-algorithm * @kind table + * @tags quantum + * experimental */ import java @@ -9,4 +12,4 @@ import experimental.quantum.Language from Crypto::KeyOperationAlgorithmNode a where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::AsymmetricCipherAlgorithm -select a, "Instance of asymmetric cipher algorithm " + a.getAlgorithmName() +select a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql index b3e0097ec4c..224ee1161fb 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql @@ -1,7 +1,10 @@ /** - * @name Detects operations where the algorithm applied is a known asymmetric algorithms - * @id java/crypto_inventory_slices/known_asymmetric_operation_algorithm + * @name Operations using known asymmetric algorithms (slice) + * @description Outputs operations where the algorithm used is a known asymmetric algorithm. + * @id java/quantum/slices/known-asymmetric-operation-algorithm * @kind table + * @tags quantum + * experimental */ import java @@ -9,4 +12,4 @@ import experimental.quantum.Language from Crypto::OperationNode op, Crypto::AlgorithmNode a where a = op.getAKnownAlgorithm() and Crypto::isKnownAsymmetricAlgorithm(a) -select op, "Operation using asymmetric algorithm $@", a, a.getAlgorithmName() +select op, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql index de80f2a6d1a..da3371a59b3 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql @@ -1,7 +1,10 @@ /** - * @name Detects known cipher algorithms - * @id java/crypto_inventory_slices/known_cipher_algorithm + * @name Known cipher algorithms (slice) + * @description Outputs known cipher algorithms. + * @id java/quantum/slices/known-cipher-algorithm * @kind table + * @tags quantum + * experimental */ import java @@ -12,4 +15,4 @@ from Crypto::KeyOperationAlgorithmNode a where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::AsymmetricCipherAlgorithm or a.getAlgorithmType() instanceof Crypto::KeyOpAlg::SymmetricCipherAlgorithm -select a, "Instance of cipher algorithm " + a.getAlgorithmName() +select a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql index dd204bfd54e..ca72e2de251 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql @@ -1,11 +1,14 @@ /** - * @name Detects known elliptic curve algorithms - * @id java/crypto_inventory_slices/known_elliptic_curve_algorithm + * @name Known elliptic curve algorithms (slice) + * @description Outputs known elliptic curve algorithms. + * @id java/quantum/slices/known-elliptic-curve-algorithm * @kind table + * @tags quantum + * experimental */ import java import experimental.quantum.Language from Crypto::EllipticCurveNode a -select a, "Instance of elliptic curve algorithm " + a.getAlgorithmName() +select a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql index 26762543740..042f3b3dc91 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql @@ -1,11 +1,14 @@ /** - * @name Detects algorithms that are known hashing algorithms - * @id java/crypto_inventory_slices/known_hashing_algorithm + * @name Known hashing algorithms (slice) + * @description Outputs known hashing algorithms. + * @id java/quantum/slices/known-hashing-algorithm * @kind table + * @tags quantum + * experimental */ import java import experimental.quantum.Language from Crypto::HashAlgorithmNode a -select a, "Instance of hashing algorithm " + a.getAlgorithmName() +select a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql index 2edfa6190ea..b004fae7fbb 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql @@ -1,11 +1,14 @@ /** - * @name Detects uses of hashing operations (operations exlicitly for hashing only, irrespective of the algorithm used) - * @id java/crypto_inventory_slices/known_hashing_operation + * @name Known hashing operations (slice) + * @description Outputs known hashing operations. + * @id java/quantum/slices/known-hashing-operation * @kind table + * @tags quantum + * experimental */ import java import experimental.quantum.Language from Crypto::HashOperationNode op -select op, "Known hashing operation" +select op diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql index 6ee2ce9ac4d..38d197bb7dd 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql @@ -1,7 +1,10 @@ /** - * @name Detects operations where the algorithm applied is a known hashing algorithm - * @id java/crypto_inventory_slices/operation_with_known_hashing_algorithm + * @name Operations using known hashing algorithms (slice) + * @description Outputs operations where the algorithm used is a known hashing algorithm. + * @id java/quantum/slices/operation-with-known-hashing-algorithm * @kind table + * @tags quantum + * experimental */ import java @@ -9,4 +12,4 @@ import experimental.quantum.Language from Crypto::OperationNode op, Crypto::HashAlgorithmNode a where a = op.getAKnownAlgorithm() -select op, "Operation using hashing algorithm $@", a, a.getAlgorithmName() +select op, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql index 28de1170d27..5a9744c966b 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql @@ -1,11 +1,14 @@ /** - * @name Detects known key derivation algorithms - * @id java/crypto_inventory_slices/known_key_derivation_algorithm + * @name Known key derivation algorithms (slice) + * @description Outputs known key derivation algorithms. + * @id java/quantum/slices/known-key-derivation-algorithm * @kind table + * @tags quantum + * experimental */ import java import experimental.quantum.Language from Crypto::KeyDerivationAlgorithmNode alg -select alg, "Known key derivation algorithm " + alg.getAlgorithmName() +select alg, alg.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql index c0ee9c88b2b..95623ec7a1e 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql @@ -1,11 +1,14 @@ /** - * @name Detects uses of key derivation operations (operations exlicitly for key derivation only, irrespective of the algorithm used) - * @id java/crypto_inventory_slices/known_key_derivation_operation + * @name Known key derivation operations (slice) + * @description Outputs known key derivation operations. + * @id java/quantum/slices/known-key-derivation-operation * @kind table + * @tags quantum + * experimental */ import java import experimental.quantum.Language from Crypto::KeyDerivationOperationNode op -select op, "Known key derivation operation" +select op diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql index db27630cafa..efbfd9ed865 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql @@ -1,7 +1,10 @@ /** - * @name Detects operations where the algorithm applied is a known key derivation algorithm - * @id java/crypto_inventory_slices/operation_known_key_derivation_algorithm + * @name Operations using known key derivation algorithms (slice) + * @description Outputs operations where the algorithm used is a known key derivation algorithm. + * @id java/quantum/slices/operation-with-known-kdf-algorithm * @kind table + * @tags quantum + * experimental */ import java @@ -9,4 +12,4 @@ import experimental.quantum.Language from Crypto::OperationNode op, Crypto::KeyDerivationAlgorithmNode a where a = op.getAKnownAlgorithm() -select op, "Operation using key derivation algorithm $@", a, a.getAlgorithmName() +select op, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql index 6c5f9c63677..e4a8d3ff867 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql @@ -1,7 +1,10 @@ /** - * @name Detects known symmetric cipher algorithms - * @id java/crypto_inventory_slices/known_symmetric_cipher_algorithm + * @name Known symmetric cipher algorithms (slice) + * @description Outputs known symmetric cipher algorithms. + * @id java/quantum/slices/known-symmetric-cipher-algorithm * @kind table + * @tags quantum + * experimental */ import java @@ -9,4 +12,4 @@ import experimental.quantum.Language from Crypto::KeyOperationAlgorithmNode a where a.getAlgorithmType() instanceof Crypto::KeyOpAlg::SymmetricCipherAlgorithm -select a, "Instance of symmetric cipher algorithm " + a.getAlgorithmName() +select a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql b/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql index cb16064667a..2b81cf22dba 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql @@ -1,7 +1,11 @@ /** - * @name Detects functions that take in crypto configuration parameters but calls are not detected in source. - * @id java/crypto_inventory_slices/likely_crypto_api_function - * @kind table + * @name Likely crypto API function + * @description Detects functions that take in crypto configuration parameters but calls are not detected in source. + * @id java/quantum/slices/likely-crypto-api-function + * @kind problem + * @severity info + * @tags quantum + * experimental */ import java diff --git a/java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql index 962e8945e81..8469924a850 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql @@ -1,7 +1,11 @@ /** - * @name Detects operations where the algorithm applied is unknown - * @id java/crypto_inventory_slices/unknown_operation_algorithm - * @kind table + * @name Operations with unknown algorithm + * @description Outputs operations where the algorithm applied is unknown + * @id java/quantum/slices/operation-with-unknown-algorithm + * @kind problem + * @severity info + * @tags quantum + * experimental */ import java From b8c3b43cc478d5fc7ff38cc85d6ba30d468fedf6 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 03:58:06 +0200 Subject: [PATCH 297/656] Fix KnownAsymmetricAlgorithm query id --- .../quantum/InventorySlices/KnownAsymmetricAlgorithm.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql index a74da7d1acc..b4d0b908bbe 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql @@ -1,7 +1,7 @@ /** * @name Operations using known asymmetric cipher algorithms (slice) * @description Outputs operations where the algorithm used is a known asymmetric cipher algorithm. - * @id java/quantum/slices/known-asymmetric-cipher-algorithm + * @id java/quantum/slices/known-asymmetric-algorithm * @kind table * @tags quantum * experimental From e03f57da9b956b6e2953edaeaef55ca4a95d7f8c Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 04:03:10 +0200 Subject: [PATCH 298/656] Update type name in experimental BrokenCrypto.ql --- java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql b/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql index b4e9de9ac94..7291ea554a5 100644 --- a/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql +++ b/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql @@ -64,7 +64,7 @@ private string algorithmRegex(string algorithmString) { "((^|.*[A-Z]{2}|.*[^a-zA-Z])(" + algorithmString.toLowerCase() + ")([^a-z].*|$))" } -from Crypto::Algorithm alg +from Crypto::AlgorithmNode alg where alg.getAlgorithmName().regexpMatch(getInsecureAlgorithmRegex()) and // Exclude RSA/ECB/.* ciphers. From a57f4a1022e7d72c92afcfdc92cdcdc0adc8ba55 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 04:13:57 +0200 Subject: [PATCH 299/656] Update Java analysis query metadata --- .../experimental/quantum/Analysis/InsecureNonceSource.ql | 8 +++++--- .../quantum/Analysis/KnownWeakKDFIterationCount.ql | 9 +++++++-- java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql | 9 +++++++-- .../quantum/Analysis/UnknownKDFIterationCount.ql | 9 +++++++-- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql b/java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql index b2c6f919d5f..f00621d4d2b 100644 --- a/java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql +++ b/java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql @@ -1,11 +1,13 @@ /** * @name Insecure nonce at a cipher operation - * @id java/insecure-nonce + * @id java/quantum/insecure-nonce + * @description A nonce is generated from a source that is not secure. This can lead to + * vulnerabilities such as replay attacks or key recovery. * @kind problem * @problem.severity error * @precision high - * @description A nonce is generated from a source that is not secure. This can lead to - * vulnerabilities such as replay attacks or key recovery. + * @tags quantum + * experimental */ import experimental.quantum.Language diff --git a/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql b/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql index 701f3064e92..d8d9d125070 100644 --- a/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql +++ b/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql @@ -1,7 +1,12 @@ /** - * @name Detects known weak KDf iteration counts (less than 100k and the count is statically known) - * @id java/crypto_inventory_filters/known_weak_kdf_iteration_count + * @name Weak known key derivation function iteration count + * @description Detects key derivation operations with a known weak iteration count. + * @id java/quantum/weak-kdf-iteration-count * @kind problem + * @precision high + * @severity problem + * @tags quantum + * experimental */ import java diff --git a/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql b/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql index d8adccace55..b7b7c27ec6b 100644 --- a/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql +++ b/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql @@ -1,7 +1,12 @@ /** - * @name Detects reuse of the same nonce in multiple operations - * @id java/crypto_inventory_filter/nonce_reuse + * @name Reuse of cryptographic nonce + * @description Reuse of nonce in cryptographic operations can lead to vulnerabilities. + * @id java/quantum/reused-nonce * @kind problem + * @precision medium + * @severity problem + * @tags quantum + * experimental */ import java diff --git a/java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql b/java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql index 4ce404f01b0..21bca11cc1a 100644 --- a/java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql +++ b/java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql @@ -1,7 +1,12 @@ /** - * @name Detects unknown KDf iteration counts - * @id java/crypto_inventory_filters/unknown_kdf_iteration_count + * @name Unknown key derivation function iteration count + * @description Detects key derivation operations with an unknown iteration count. + * @id java/quantum/unknown-kdf-iteration-count * @kind problem + * @precision medium + * @severity warning + * @tags quantum + * experimental */ import java From 529128cbdec2bc02f2afaf8be3c635ffe1e50278 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 04:20:49 +0200 Subject: [PATCH 300/656] Add problem.severity for java analysis queries --- .../experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql | 2 +- java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql b/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql index d8d9d125070..2dd5b0b006b 100644 --- a/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql +++ b/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql @@ -3,8 +3,8 @@ * @description Detects key derivation operations with a known weak iteration count. * @id java/quantum/weak-kdf-iteration-count * @kind problem + * @problem.severity error * @precision high - * @severity problem * @tags quantum * experimental */ diff --git a/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql b/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql index b7b7c27ec6b..ed2872bb67e 100644 --- a/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql +++ b/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql @@ -3,8 +3,8 @@ * @description Reuse of nonce in cryptographic operations can lead to vulnerabilities. * @id java/quantum/reused-nonce * @kind problem + * @problem.severity error * @precision medium - * @severity problem * @tags quantum * experimental */ From c6077947a71c53815535f249f2ff5e0d20708cb9 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Thu, 8 May 2025 16:10:28 +0200 Subject: [PATCH 301/656] Update cpp and java not_included_in_qls.expected --- .../query-suite/not_included_in_qls.expected | 1 + .../query-suite/not_included_in_qls.expected | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/cpp/ql/integration-tests/query-suite/not_included_in_qls.expected b/cpp/ql/integration-tests/query-suite/not_included_in_qls.expected index 68b8c8b0ab4..20ffa7c40c0 100644 --- a/cpp/ql/integration-tests/query-suite/not_included_in_qls.expected +++ b/cpp/ql/integration-tests/query-suite/not_included_in_qls.expected @@ -299,6 +299,7 @@ ql/cpp/ql/src/experimental/cryptography/inventory/new_models/SigningAlgorithms.q ql/cpp/ql/src/experimental/cryptography/inventory/new_models/SymmetricEncryptionAlgorithms.ql ql/cpp/ql/src/experimental/cryptography/inventory/new_models/SymmetricPaddingAlgorithms.ql ql/cpp/ql/src/experimental/cryptography/inventory/new_models/UnknownAsymmetricKeyGeneration.ql +ql/cpp/ql/src/experimental/quantum/PrintCBOMGraph.ql ql/cpp/ql/src/external/examples/filters/BumpMetricBy10.ql ql/cpp/ql/src/external/examples/filters/EditDefectMessage.ql ql/cpp/ql/src/external/examples/filters/ExcludeGeneratedCode.ql diff --git a/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected b/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected index f6e89eede03..0fbc365c134 100644 --- a/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected +++ b/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected @@ -253,6 +253,29 @@ ql/java/ql/src/experimental/Security/CWE/CWE-665/InsecureRmiJmxEnvironmentConfig ql/java/ql/src/experimental/Security/CWE/CWE-755/NFEAndroidDoS.ql ql/java/ql/src/experimental/Security/CWE/CWE-759/HashWithoutSalt.ql ql/java/ql/src/experimental/Security/CWE/CWE-939/IncorrectURLVerification.ql +ql/java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql +ql/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql +ql/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql +ql/java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql +ql/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql +ql/java/ql/src/experimental/quantum/Examples/TestAESGCMNonce.ql +ql/java/ql/src/experimental/quantum/Examples/TestCipher.ql +ql/java/ql/src/experimental/quantum/Examples/TestHash.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownCipherAlgorithm.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownEllipticCurveAlgorithm.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownHashingAlgorithm.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperation.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownHashingOperationAlgorithm.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationAlgorithm.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperation.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownKeyDerivationOperationAlgorithm.ql +ql/java/ql/src/experimental/quantum/InventorySlices/KnownSymmetricCipherAlgorithm.ql +ql/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql +ql/java/ql/src/experimental/quantum/InventorySlices/UnknownOperationAlgorithm.ql +ql/java/ql/src/experimental/quantum/PrintCBOMGraph.ql ql/java/ql/src/external/DuplicateAnonymous.ql ql/java/ql/src/external/DuplicateBlock.ql ql/java/ql/src/external/DuplicateMethod.ql From 64371688d7fd70eddc0076806efb14bfe5a7e2c8 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 8 May 2025 10:16:09 -0400 Subject: [PATCH 302/656] Shared: Fix QLDoc to make QL4QL happy. --- .../codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index 6623373b281..331bcbc8b65 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -344,6 +344,8 @@ module MakeModelGeneratorFactory< /** * Gets the summary model of `api`, if it follows the `fluent` programming pattern (returns `this`). + * + * The strings `input` and `output` represent the qualifier and the return value, respectively. */ private string captureQualifierFlow(DataFlowSummaryTargetApi api, string input, string output) { exists(ReturnNodeExt ret | From 87218cb6d70ef54d9639d2afaddb1abf1ae7cffe Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 8 May 2025 11:59:10 +0100 Subject: [PATCH 303/656] Rust: Test more examples of sensitive data. --- .../test/library-tests/sensitivedata/test.rs | 117 +++++++++++++++++- 1 file changed, 111 insertions(+), 6 deletions(-) diff --git a/rust/ql/test/library-tests/sensitivedata/test.rs b/rust/ql/test/library-tests/sensitivedata/test.rs index ff5496fb736..f42c82edd8c 100644 --- a/rust/ql/test/library-tests/sensitivedata/test.rs +++ b/rust/ql/test/library-tests/sensitivedata/test.rs @@ -10,6 +10,7 @@ struct MyStruct { password: String, password_file_path: String, password_enabled: String, + mfa: String, } impl MyStruct { @@ -22,8 +23,8 @@ fn get_password() -> String { get_string() } fn test_passwords( password: &str, pass_word: &str, passwd: &str, my_password: &str, password_str: &str, - pass_phrase: &str, passphrase: &str, passPhrase: &str, - auth_key: &str, authkey: &str, authKey: &str, authentication_key: &str, authenticationkey: &str, authenticationKey: &str, + pass_phrase: &str, passphrase: &str, passPhrase: &str, backup_code: &str, + auth_key: &str, authkey: &str, authKey: &str, authentication_key: &str, authenticationkey: &str, authenticationKey: &str, oauth: &str, harmless: &str, encrypted_password: &str, password_hash: &str, ms: &MyStruct ) { @@ -36,6 +37,7 @@ fn test_passwords( sink(pass_phrase); // $ sensitive=password sink(passphrase); // $ sensitive=password sink(passPhrase); // $ sensitive=password + sink(backup_code); // $ MISSING: sensitive=password sink(auth_key); // $ sensitive=password sink(authkey); // $ sensitive=password @@ -43,14 +45,19 @@ fn test_passwords( sink(authentication_key); // $ sensitive=password sink(authenticationkey); // $ sensitive=password sink(authenticationKey); // $ sensitive=password + sink(oauth); // $ MISSING: sensitive=password sink(ms); // $ MISSING: sensitive=password sink(ms.password.as_str()); // $ MISSING: sensitive=password + sink(ms.mfa.as_str()); // $ MISSING: sensitive=password sink(get_password()); // $ sensitive=password let password2 = get_string(); sink(password2); // $ sensitive=password + let qry = "password=abc"; + sink(qry); // $ MISSING: sensitive=password + // not passwords sink(harmless); sink(encrypted_password); @@ -115,32 +122,98 @@ fn test_credentials( sink(get_next_token()); } +struct MacAddr { + values: [u8;12], +} + +struct DeviceInfo { + api_key: String, + deviceApiToken: String, + finger_print: String, + ip_address: String, + macaddr12: [u8;12], + mac_addr: MacAddr, + networkMacAddress: String, +} + +impl DeviceInfo { + fn test_device_info(&self, other: &DeviceInfo) { + // private device info + sink(&self.api_key); // $ MISSING: sensitive=id + sink(&other.api_key); // $ MISSING: sensitive=id + sink(&self.deviceApiToken); // $ MISSING: sensitive=id + sink(&self.finger_print); // $ MISSING: sensitive=id + sink(&self.ip_address); // $ MISSING: sensitive=id + sink(self.macaddr12); // $ MISSING: sensitive=id + sink(&self.mac_addr); // $ MISSING: sensitive=id + sink(self.mac_addr.values); // $ MISSING: sensitive=id + sink(self.mac_addr.values[0]); // $ MISSING: sensitive=id + sink(&self.networkMacAddress); // $ MISSING: sensitive=id + } +} + struct Financials { harmless: String, my_bank_account_number: String, credit_card_no: String, credit_rating: i32, - user_ccn: String + user_ccn: String, + cvv: String, + beneficiary: String, + routing_number: u64, + routingNumberText: String, + iban: String, + iBAN: String, +} + +enum Gender { + Male, + Female, +} + +struct SSN { + data: u128, +} + +impl SSN { + fn get_data(&self) -> u128 { + return self.data; + } } struct MyPrivateInfo { mobile_phone_num: String, contact_email: String, contact_e_mail_2: String, - my_ssn: String, - birthday: String, emergency_contact: String, + my_ssn: String, + ssn: SSN, + birthday: String, name_of_employer: String, + gender: Gender, + genderString: String, + + patient_id: u64, + linkedPatientId: u64, + patient_record: String, medical_notes: Vec, + confidentialMessage: String, + latitude: f64, longitude: Option, financials: Financials } +enum ContactDetails { + HomePhoneNumber(String), + MobileNumber(String), + Email(String), +} + fn test_private_info( - info: &MyPrivateInfo + info: &MyPrivateInfo, details: &ContactDetails, ) { // private info sink(info.mobile_phone_num.as_str()); // $ MISSING: sensitive=private @@ -148,15 +221,33 @@ fn test_private_info( sink(info.contact_email.as_str()); // $ MISSING: sensitive=private sink(info.contact_e_mail_2.as_str()); // $ MISSING: sensitive=private sink(info.my_ssn.as_str()); // $ MISSING: sensitive=private + sink(&info.ssn); // $ MISSING: sensitive=private + sink(info.ssn.data); // $ MISSING: sensitive=private + sink(info.ssn.get_data()); // $ MISSING: sensitive=private sink(info.birthday.as_str()); // $ MISSING: sensitive=private sink(info.emergency_contact.as_str()); // $ MISSING: sensitive=private sink(info.name_of_employer.as_str()); // $ MISSING: sensitive=private + sink(&info.gender); // $ MISSING: sensitive=private + sink(info.genderString.as_str()); // $ MISSING: sensitive=private + let sex = "Male"; + let gender = Gender::Female; + let a = Gender::Female; + sink(sex); // $ MISSING: sensitive=private + sink(gender); // $ MISSING: sensitive=private + sink(a); // $ MISSING: sensitive=private + + sink(info.patient_id); // $ MISSING: sensitive=private + sink(info.linkedPatientId); // $ MISSING: sensitive=private + sink(info.patient_record.as_str()); // $ MISSING: sensitive=private + sink(info.patient_record.trim()); // $ MISSING: sensitive=private sink(&info.medical_notes); // $ MISSING: sensitive=private sink(info.medical_notes[0].as_str()); // $ MISSING: sensitive=private for n in info.medical_notes.iter() { sink(n.as_str()); // $ MISSING: sensitive=private } + sink(info.confidentialMessage.as_str()); // $ MISSING: sensitive=private + sink(info.confidentialMessage.to_lowercase()); // $ MISSING: sensitive=private sink(info.latitude); // $ MISSING: sensitive=private let x = info.longitude.unwrap(); @@ -166,7 +257,21 @@ fn test_private_info( sink(info.financials.credit_card_no.as_str()); // $ MISSING: sensitive=private sink(info.financials.credit_rating); // $ MISSING: sensitive=private sink(info.financials.user_ccn.as_str()); // $ MISSING: sensitive=private + sink(info.financials.cvv.as_str()); // $ MISSING: sensitive=private + sink(info.financials.beneficiary.as_str()); // $ MISSING: sensitive=private + sink(info.financials.routing_number); // $ MISSING: sensitive=private + sink(info.financials.routingNumberText.as_str()); // $ MISSING: sensitive=private + sink(info.financials.iban.as_str()); // $ MISSING: sensitive=private + sink(info.financials.iBAN.as_str()); // $ MISSING: sensitive=private + + sink(ContactDetails::HomePhoneNumber("123".to_string())); // $ MISSING: sensitive=private + sink(ContactDetails::MobileNumber("123".to_string())); // $ MISSING: sensitive=private + sink(ContactDetails::Email("a@b".to_string())); // $ MISSING: sensitive=private + if let ContactDetails::MobileNumber(num) = details { + sink(num.as_str()); // $ MISSING: sensitive=private + } // not private info + sink(info.financials.harmless.as_str()); } From 8825eefea6afe25f046016cbda2751112eb8cef0 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 8 May 2025 16:00:46 +0100 Subject: [PATCH 304/656] Rust: More counterexamples for sensitive data as well. --- .../test/library-tests/sensitivedata/test.rs | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/rust/ql/test/library-tests/sensitivedata/test.rs b/rust/ql/test/library-tests/sensitivedata/test.rs index f42c82edd8c..4718a2b451e 100644 --- a/rust/ql/test/library-tests/sensitivedata/test.rs +++ b/rust/ql/test/library-tests/sensitivedata/test.rs @@ -11,6 +11,7 @@ struct MyStruct { password_file_path: String, password_enabled: String, mfa: String, + numfailed: String, } impl MyStruct { @@ -25,10 +26,11 @@ fn test_passwords( password: &str, pass_word: &str, passwd: &str, my_password: &str, password_str: &str, pass_phrase: &str, passphrase: &str, passPhrase: &str, backup_code: &str, auth_key: &str, authkey: &str, authKey: &str, authentication_key: &str, authenticationkey: &str, authenticationKey: &str, oauth: &str, - harmless: &str, encrypted_password: &str, password_hash: &str, + harmless: &str, encrypted_password: &str, password_hash: &str, passwordFile: &str, ms: &MyStruct ) { // passwords + sink(password); // $ sensitive=password sink(pass_word); // $ MISSING: sensitive=password sink(passwd); // $ sensitive=password @@ -59,13 +61,16 @@ fn test_passwords( sink(qry); // $ MISSING: sensitive=password // not passwords + sink(harmless); sink(encrypted_password); sink(password_hash); + sink(passwordFile); // $ SPURIOUS: sensitive=password sink(ms.harmless.as_str()); sink(ms.password_file_path.as_str()); sink(ms.password_enabled.as_str()); + sink(ms.numfailed.as_str()); sink(get_string()); let harmless2 = get_string(); @@ -82,10 +87,11 @@ fn get_next_token() -> String { get_string() } fn test_credentials( account_key: &str, accnt_key: &str, license_key: &str, secret_key: &str, is_secret: bool, num_accounts: i64, username: String, user_name: String, userid: i64, user_id: i64, my_user_id_64: i64, unique_id: i64, uid: i64, - sessionkey: &[u64; 4], session_key: &[u64; 4], hashkey: &[u64; 4], hash_key: &[u64; 4], + sessionkey: &[u64; 4], session_key: &[u64; 4], hashkey: &[u64; 4], hash_key: &[u64; 4], sessionkeypath: &[u64; 4], account_key_path: &[u64; 4], ms: &MyStruct ) { // credentials + sink(account_key); // $ sensitive=id sink(accnt_key); // $ sensitive=id sink(license_key); // $ MISSING: sensitive=secret @@ -108,12 +114,15 @@ fn test_credentials( sink(get_secret_token()); // $ sensitive=secret // not (necessarily) credentials + sink(is_secret); sink(num_accounts); // $ SPURIOUS: sensitive=id sink(unique_id); sink(uid); // $ SPURIOUS: sensitive=id sink(hashkey); sink(hash_key); + sink(sessionkeypath); // $ SPURIOUS: sensitive=id + sink(account_key_path); // $ SPURIOUS: sensitive=id sink(ms.get_certificate_url()); // $ SPURIOUS: sensitive=certificate sink(ms.get_certificate_file()); // $ SPURIOUS: sensitive=certificate @@ -134,11 +143,17 @@ struct DeviceInfo { macaddr12: [u8;12], mac_addr: MacAddr, networkMacAddress: String, + + // not private device info + macro_value: bool, + mac_command: u32, + skip_address: String, } impl DeviceInfo { fn test_device_info(&self, other: &DeviceInfo) { // private device info + sink(&self.api_key); // $ MISSING: sensitive=id sink(&other.api_key); // $ MISSING: sensitive=id sink(&self.deviceApiToken); // $ MISSING: sensitive=id @@ -149,6 +164,12 @@ impl DeviceInfo { sink(self.mac_addr.values); // $ MISSING: sensitive=id sink(self.mac_addr.values[0]); // $ MISSING: sensitive=id sink(&self.networkMacAddress); // $ MISSING: sensitive=id + + // not private device info + + sink(self.macro_value); + sink(self.mac_command); + sink(&self.skip_address); } } @@ -164,6 +185,12 @@ struct Financials { routingNumberText: String, iban: String, iBAN: String, + + num_accounts: i32, + total_accounts: i32, + accounting: i32, + unaccounted: bool, + multiband: bool, } enum Gender { @@ -210,12 +237,14 @@ enum ContactDetails { HomePhoneNumber(String), MobileNumber(String), Email(String), + FavouriteColor(String), } fn test_private_info( info: &MyPrivateInfo, details: &ContactDetails, ) { // private info + sink(info.mobile_phone_num.as_str()); // $ MISSING: sensitive=private sink(info.mobile_phone_num.to_string()); // $ MISSING: sensitive=private sink(info.contact_email.as_str()); // $ MISSING: sensitive=private @@ -273,5 +302,15 @@ fn test_private_info( // not private info + let modulesEx = 1; + sink(modulesEx); + sink(info.financials.harmless.as_str()); + sink(info.financials.num_accounts); + sink(info.financials.total_accounts); + sink(info.financials.accounting); + sink(info.financials.unaccounted); + sink(info.financials.multiband); + + sink(ContactDetails::FavouriteColor("blue".to_string())); } From a537197691fba15f07676187151f2d6bd63b1da7 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 9 May 2025 10:39:53 +0100 Subject: [PATCH 305/656] Rust: Understand sensitive field access expressions. --- .../codeql/rust/security/SensitiveData.qll | 19 ++++++++- .../test/library-tests/sensitivedata/test.rs | 42 +++++++++---------- 2 files changed, 39 insertions(+), 22 deletions(-) diff --git a/rust/ql/lib/codeql/rust/security/SensitiveData.qll b/rust/ql/lib/codeql/rust/security/SensitiveData.qll index 5a5f5a6dec0..698fa83197d 100644 --- a/rust/ql/lib/codeql/rust/security/SensitiveData.qll +++ b/rust/ql/lib/codeql/rust/security/SensitiveData.qll @@ -67,7 +67,7 @@ private class SensitiveDataVariable extends Variable { } /** - * A variable access data flow node that might produce sensitive data. + * A variable access data flow node that might be sensitive data. */ private class SensitiveVariableAccess extends SensitiveData { SensitiveDataClassification classification; @@ -84,3 +84,20 @@ private class SensitiveVariableAccess extends SensitiveData { override SensitiveDataClassification getClassification() { result = classification } } + +/** + * A field access data flow node that might be sensitive data. + */ +private class SensitiveFieldAccess extends SensitiveData { + SensitiveDataClassification classification; + + SensitiveFieldAccess() { + HeuristicNames::nameIndicatesSensitiveData(this.asExpr() + .getAstNode() + .(FieldExpr) + .getIdentifier() + .getText(), classification) + } + + override SensitiveDataClassification getClassification() { result = classification } +} diff --git a/rust/ql/test/library-tests/sensitivedata/test.rs b/rust/ql/test/library-tests/sensitivedata/test.rs index 4718a2b451e..42fb2f0693b 100644 --- a/rust/ql/test/library-tests/sensitivedata/test.rs +++ b/rust/ql/test/library-tests/sensitivedata/test.rs @@ -50,7 +50,7 @@ fn test_passwords( sink(oauth); // $ MISSING: sensitive=password sink(ms); // $ MISSING: sensitive=password - sink(ms.password.as_str()); // $ MISSING: sensitive=password + sink(ms.password.as_str()); // $ sensitive=password sink(ms.mfa.as_str()); // $ MISSING: sensitive=password sink(get_password()); // $ sensitive=password @@ -68,8 +68,8 @@ fn test_passwords( sink(passwordFile); // $ SPURIOUS: sensitive=password sink(ms.harmless.as_str()); - sink(ms.password_file_path.as_str()); - sink(ms.password_enabled.as_str()); + sink(ms.password_file_path.as_str()); // $ SPURIOUS: sensitive=password + sink(ms.password_enabled.as_str()); // $ SPURIOUS: sensitive=password sink(ms.numfailed.as_str()); sink(get_string()); @@ -245,17 +245,17 @@ fn test_private_info( ) { // private info - sink(info.mobile_phone_num.as_str()); // $ MISSING: sensitive=private - sink(info.mobile_phone_num.to_string()); // $ MISSING: sensitive=private + sink(info.mobile_phone_num.as_str()); // $ sensitive=private + sink(info.mobile_phone_num.to_string()); // $ sensitive=private sink(info.contact_email.as_str()); // $ MISSING: sensitive=private sink(info.contact_e_mail_2.as_str()); // $ MISSING: sensitive=private - sink(info.my_ssn.as_str()); // $ MISSING: sensitive=private - sink(&info.ssn); // $ MISSING: sensitive=private + sink(info.my_ssn.as_str()); // $ sensitive=private + sink(&info.ssn); // $ sensitive=private sink(info.ssn.data); // $ MISSING: sensitive=private sink(info.ssn.get_data()); // $ MISSING: sensitive=private - sink(info.birthday.as_str()); // $ MISSING: sensitive=private - sink(info.emergency_contact.as_str()); // $ MISSING: sensitive=private - sink(info.name_of_employer.as_str()); // $ MISSING: sensitive=private + sink(info.birthday.as_str()); // $ sensitive=private + sink(info.emergency_contact.as_str()); // $ sensitive=private + sink(info.name_of_employer.as_str()); // $ sensitive=private sink(&info.gender); // $ MISSING: sensitive=private sink(info.genderString.as_str()); // $ MISSING: sensitive=private @@ -270,22 +270,22 @@ fn test_private_info( sink(info.linkedPatientId); // $ MISSING: sensitive=private sink(info.patient_record.as_str()); // $ MISSING: sensitive=private sink(info.patient_record.trim()); // $ MISSING: sensitive=private - sink(&info.medical_notes); // $ MISSING: sensitive=private - sink(info.medical_notes[0].as_str()); // $ MISSING: sensitive=private + sink(&info.medical_notes); // $ sensitive=private + sink(info.medical_notes[0].as_str()); // $ sensitive=private for n in info.medical_notes.iter() { sink(n.as_str()); // $ MISSING: sensitive=private } sink(info.confidentialMessage.as_str()); // $ MISSING: sensitive=private sink(info.confidentialMessage.to_lowercase()); // $ MISSING: sensitive=private - sink(info.latitude); // $ MISSING: sensitive=private + sink(info.latitude); // $ sensitive=private let x = info.longitude.unwrap(); sink(x); // $ MISSING: sensitive=private - sink(info.financials.my_bank_account_number.as_str()); // $ MISSING: sensitive=private - sink(info.financials.credit_card_no.as_str()); // $ MISSING: sensitive=private - sink(info.financials.credit_rating); // $ MISSING: sensitive=private - sink(info.financials.user_ccn.as_str()); // $ MISSING: sensitive=private + sink(info.financials.my_bank_account_number.as_str()); // $ sensitive=private SPURIOUS: sensitive=id + sink(info.financials.credit_card_no.as_str()); // $ sensitive=private + sink(info.financials.credit_rating); // $ sensitive=private + sink(info.financials.user_ccn.as_str()); // $ sensitive=private sink(info.financials.cvv.as_str()); // $ MISSING: sensitive=private sink(info.financials.beneficiary.as_str()); // $ MISSING: sensitive=private sink(info.financials.routing_number); // $ MISSING: sensitive=private @@ -306,10 +306,10 @@ fn test_private_info( sink(modulesEx); sink(info.financials.harmless.as_str()); - sink(info.financials.num_accounts); - sink(info.financials.total_accounts); - sink(info.financials.accounting); - sink(info.financials.unaccounted); + sink(info.financials.num_accounts); // $ SPURIOUS: sensitive=id + sink(info.financials.total_accounts); // $ SPURIOUS: sensitive=id + sink(info.financials.accounting); // $ SPURIOUS: sensitive=id + sink(info.financials.unaccounted); // $ SPURIOUS: sensitive=id sink(info.financials.multiband); sink(ContactDetails::FavouriteColor("blue".to_string())); From 0f36e1d625cbd6e57f8c6060327ff76cc8331bff Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 9 May 2025 11:26:23 +0100 Subject: [PATCH 306/656] Rust: Understand sensitive qualifier expressions. --- rust/ql/lib/codeql/rust/security/SensitiveData.qll | 8 +++----- rust/ql/test/library-tests/sensitivedata/test.rs | 8 ++++---- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/rust/ql/lib/codeql/rust/security/SensitiveData.qll b/rust/ql/lib/codeql/rust/security/SensitiveData.qll index 698fa83197d..5a384feabc2 100644 --- a/rust/ql/lib/codeql/rust/security/SensitiveData.qll +++ b/rust/ql/lib/codeql/rust/security/SensitiveData.qll @@ -92,11 +92,9 @@ private class SensitiveFieldAccess extends SensitiveData { SensitiveDataClassification classification; SensitiveFieldAccess() { - HeuristicNames::nameIndicatesSensitiveData(this.asExpr() - .getAstNode() - .(FieldExpr) - .getIdentifier() - .getText(), classification) + exists(FieldExpr fe | fe.getParentNode*() = this.asExpr().getAstNode() | + HeuristicNames::nameIndicatesSensitiveData(fe.getIdentifier().getText(), classification) + ) } override SensitiveDataClassification getClassification() { result = classification } diff --git a/rust/ql/test/library-tests/sensitivedata/test.rs b/rust/ql/test/library-tests/sensitivedata/test.rs index 42fb2f0693b..e1d07f16d47 100644 --- a/rust/ql/test/library-tests/sensitivedata/test.rs +++ b/rust/ql/test/library-tests/sensitivedata/test.rs @@ -251,8 +251,8 @@ fn test_private_info( sink(info.contact_e_mail_2.as_str()); // $ MISSING: sensitive=private sink(info.my_ssn.as_str()); // $ sensitive=private sink(&info.ssn); // $ sensitive=private - sink(info.ssn.data); // $ MISSING: sensitive=private - sink(info.ssn.get_data()); // $ MISSING: sensitive=private + sink(info.ssn.data); // $ sensitive=private + sink(info.ssn.get_data()); // $ sensitive=private sink(info.birthday.as_str()); // $ sensitive=private sink(info.emergency_contact.as_str()); // $ sensitive=private sink(info.name_of_employer.as_str()); // $ sensitive=private @@ -273,14 +273,14 @@ fn test_private_info( sink(&info.medical_notes); // $ sensitive=private sink(info.medical_notes[0].as_str()); // $ sensitive=private for n in info.medical_notes.iter() { - sink(n.as_str()); // $ MISSING: sensitive=private + sink(n.as_str()); // $ sensitive=private } sink(info.confidentialMessage.as_str()); // $ MISSING: sensitive=private sink(info.confidentialMessage.to_lowercase()); // $ MISSING: sensitive=private sink(info.latitude); // $ sensitive=private let x = info.longitude.unwrap(); - sink(x); // $ MISSING: sensitive=private + sink(x); // $ sensitive=private sink(info.financials.my_bank_account_number.as_str()); // $ sensitive=private SPURIOUS: sensitive=id sink(info.financials.credit_card_no.as_str()); // $ sensitive=private From 5f5d6f679a71ce695059720d39c7af196fcf9482 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 9 May 2025 11:58:51 +0100 Subject: [PATCH 307/656] Rust: Understand sensitive enum variants calls. --- .../codeql/rust/security/SensitiveData.qll | 31 +++++++++++++++++-- .../test/library-tests/sensitivedata/test.rs | 4 +-- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/rust/ql/lib/codeql/rust/security/SensitiveData.qll b/rust/ql/lib/codeql/rust/security/SensitiveData.qll index 5a384feabc2..1a7571a912e 100644 --- a/rust/ql/lib/codeql/rust/security/SensitiveData.qll +++ b/rust/ql/lib/codeql/rust/security/SensitiveData.qll @@ -37,10 +37,10 @@ private class SensitiveDataFunction extends Function { /** * A function call data flow node that might produce sensitive data. */ -private class SensitiveDataCall extends SensitiveData { +private class SensitiveDataFunctionCall extends SensitiveData { SensitiveDataClassification classification; - SensitiveDataCall() { + SensitiveDataFunctionCall() { classification = this.asExpr() .getAstNode() @@ -53,6 +53,33 @@ private class SensitiveDataCall extends SensitiveData { override SensitiveDataClassification getClassification() { result = classification } } +/** + * An enum variant that might produce sensitive data. + */ +private class SensitiveDataVariant extends Variant { + SensitiveDataClassification classification; + + SensitiveDataVariant() { + HeuristicNames::nameIndicatesSensitiveData(this.getName().getText(), classification) + } + + SensitiveDataClassification getClassification() { result = classification } +} + +/** + * An enum variant call data flow node that might produce sensitive data. + */ +private class SensitiveDataVariantCall extends SensitiveData { + SensitiveDataClassification classification; + + SensitiveDataVariantCall() { + classification = + this.asExpr().getAstNode().(CallExpr).getVariant().(SensitiveDataVariant).getClassification() + } + + override SensitiveDataClassification getClassification() { result = classification } +} + /** * A variable that might contain sensitive data. */ diff --git a/rust/ql/test/library-tests/sensitivedata/test.rs b/rust/ql/test/library-tests/sensitivedata/test.rs index e1d07f16d47..c4f4a57b8de 100644 --- a/rust/ql/test/library-tests/sensitivedata/test.rs +++ b/rust/ql/test/library-tests/sensitivedata/test.rs @@ -293,8 +293,8 @@ fn test_private_info( sink(info.financials.iban.as_str()); // $ MISSING: sensitive=private sink(info.financials.iBAN.as_str()); // $ MISSING: sensitive=private - sink(ContactDetails::HomePhoneNumber("123".to_string())); // $ MISSING: sensitive=private - sink(ContactDetails::MobileNumber("123".to_string())); // $ MISSING: sensitive=private + sink(ContactDetails::HomePhoneNumber("123".to_string())); // $ sensitive=private + sink(ContactDetails::MobileNumber("123".to_string())); // $ sensitive=private sink(ContactDetails::Email("a@b".to_string())); // $ MISSING: sensitive=private if let ContactDetails::MobileNumber(num) = details { sink(num.as_str()); // $ MISSING: sensitive=private From cd59ce5b0493df7eb5804627fcf1845ad58f3533 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Fri, 9 May 2025 14:36:12 +0200 Subject: [PATCH 308/656] Rename shared pack to quantum from experimental --- cpp/ql/lib/experimental/quantum/Language.qll | 12 ++++++------ cpp/ql/lib/qlpack.yml | 2 +- java/ql/lib/experimental/quantum/Language.qll | 2 +- java/ql/lib/qlpack.yml | 2 +- .../codeql/quantum/experimental}/Model.qll | 0 shared/{experimental => quantum}/qlpack.yml | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) rename shared/{experimental/codeql/experimental/quantum => quantum/codeql/quantum/experimental}/Model.qll (100%) rename shared/{experimental => quantum}/qlpack.yml (64%) diff --git a/cpp/ql/lib/experimental/quantum/Language.qll b/cpp/ql/lib/experimental/quantum/Language.qll index 176db9736ad..db9737cf152 100644 --- a/cpp/ql/lib/experimental/quantum/Language.qll +++ b/cpp/ql/lib/experimental/quantum/Language.qll @@ -1,13 +1,13 @@ -import codeql.experimental.quantum.Model +private import cpp as Language import semmle.code.cpp.dataflow.new.DataFlow -private import cpp as Lang +import codeql.quantum.experimental.Model -module CryptoInput implements InputSig { +module CryptoInput implements InputSig { class DataFlowNode = DataFlow::Node; - class LocatableElement = Lang::Locatable; + class LocatableElement = Language::Locatable; - class UnknownLocation = Lang::UnknownDefaultLocation; + class UnknownLocation = Language::UnknownDefaultLocation; LocatableElement dfn_to_element(DataFlow::Node node) { result = node.asExpr() or @@ -26,7 +26,7 @@ module CryptoInput implements InputSig { } } -module Crypto = CryptographyBase; +module Crypto = CryptographyBase; module ArtifactFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 335360caeb2..b7bf768c3f2 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -7,8 +7,8 @@ library: true upgrades: upgrades dependencies: codeql/dataflow: ${workspace} - codeql/experimental: ${workspace} codeql/mad: ${workspace} + codeql/quantum: ${workspace} codeql/rangeanalysis: ${workspace} codeql/ssa: ${workspace} codeql/typeflow: ${workspace} diff --git a/java/ql/lib/experimental/quantum/Language.qll b/java/ql/lib/experimental/quantum/Language.qll index eaf63aa5be2..8e00f34f02b 100644 --- a/java/ql/lib/experimental/quantum/Language.qll +++ b/java/ql/lib/experimental/quantum/Language.qll @@ -1,9 +1,9 @@ -private import codeql.experimental.quantum.Model private import java as Language private import semmle.code.java.security.InsecureRandomnessQuery private import semmle.code.java.security.RandomQuery private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.dataflow.FlowSources +private import codeql.quantum.experimental.Model private class UnknownLocation extends Language::Location { UnknownLocation() { this.getFile().getAbsolutePath() = "" } diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 036218757a8..eeaa063e473 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -7,8 +7,8 @@ library: true upgrades: upgrades dependencies: codeql/dataflow: ${workspace} - codeql/experimental: ${workspace} codeql/mad: ${workspace} + codeql/quantum: ${workspace} codeql/rangeanalysis: ${workspace} codeql/regex: ${workspace} codeql/threat-models: ${workspace} diff --git a/shared/experimental/codeql/experimental/quantum/Model.qll b/shared/quantum/codeql/quantum/experimental/Model.qll similarity index 100% rename from shared/experimental/codeql/experimental/quantum/Model.qll rename to shared/quantum/codeql/quantum/experimental/Model.qll diff --git a/shared/experimental/qlpack.yml b/shared/quantum/qlpack.yml similarity index 64% rename from shared/experimental/qlpack.yml rename to shared/quantum/qlpack.yml index 2976c56ba49..8e34c19c112 100644 --- a/shared/experimental/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,4 +1,4 @@ -name: codeql/experimental +name: codeql/quantum version: 0.0.0-dev groups: shared library: true From fbf3d7c195d38c3c07f114a302b44aced009eaf3 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Fri, 9 May 2025 14:36:55 +0200 Subject: [PATCH 309/656] Update CODEOWNERS to specify shared pack directory --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/CODEOWNERS b/CODEOWNERS index 318d9f2c6de..96aa46df949 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -17,6 +17,7 @@ # Experimental CodeQL cryptography **/experimental/quantum/ @github/ps-codeql +/shared/quantum/ @github/ps-codeql # CodeQL tools and associated docs /docs/codeql/codeql-cli/ @github/codeql-cli-reviewers From d02d5c5baf435e73b9bc7fada768631831ec6cba Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 9 May 2025 14:33:26 +0100 Subject: [PATCH 310/656] Rust: Update cleartext logging test with new found results. --- .../security/CWE-312/CleartextLogging.expected | 8 ++++++++ rust/ql/test/query-tests/security/CWE-312/test_logging.rs | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected index 61218e9c908..19efc0e1971 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected @@ -28,6 +28,8 @@ | test_logging.rs:100:5:100:19 | ...::log | test_logging.rs:99:38:99:45 | password | test_logging.rs:100:5:100:19 | ...::log | This operation writes $@ to a log file. | test_logging.rs:99:38:99:45 | password | password | | test_logging.rs:118:5:118:42 | ...::log | test_logging.rs:118:28:118:41 | get_password(...) | test_logging.rs:118:5:118:42 | ...::log | This operation writes $@ to a log file. | test_logging.rs:118:28:118:41 | get_password(...) | get_password(...) | | test_logging.rs:131:5:131:32 | ...::log | test_logging.rs:129:25:129:32 | password | test_logging.rs:131:5:131:32 | ...::log | This operation writes $@ to a log file. | test_logging.rs:129:25:129:32 | password | password | +| test_logging.rs:138:5:138:38 | ...::log | test_logging.rs:138:11:138:37 | MacroExpr | test_logging.rs:138:5:138:38 | ...::log | This operation writes $@ to a log file. | test_logging.rs:138:11:138:37 | MacroExpr | MacroExpr | +| test_logging.rs:145:5:145:38 | ...::log | test_logging.rs:145:11:145:37 | MacroExpr | test_logging.rs:145:5:145:38 | ...::log | This operation writes $@ to a log file. | test_logging.rs:145:11:145:37 | MacroExpr | MacroExpr | | test_logging.rs:152:5:152:38 | ...::_print | test_logging.rs:152:30:152:37 | password | test_logging.rs:152:5:152:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:152:30:152:37 | password | password | | test_logging.rs:153:5:153:38 | ...::_print | test_logging.rs:153:30:153:37 | password | test_logging.rs:153:5:153:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:153:30:153:37 | password | password | | test_logging.rs:154:5:154:39 | ...::_eprint | test_logging.rs:154:31:154:38 | password | test_logging.rs:154:5:154:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:154:31:154:38 | password | password | @@ -148,6 +150,8 @@ edges | test_logging.rs:131:12:131:31 | MacroExpr | test_logging.rs:131:5:131:32 | ...::log | provenance | MaD:9 Sink:MaD:9 | | test_logging.rs:131:28:131:29 | t1 [tuple.1] | test_logging.rs:131:28:131:31 | t1.1 | provenance | | | test_logging.rs:131:28:131:31 | t1.1 | test_logging.rs:131:12:131:31 | MacroExpr | provenance | | +| test_logging.rs:138:11:138:37 | MacroExpr | test_logging.rs:138:5:138:38 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:145:11:145:37 | MacroExpr | test_logging.rs:145:5:145:38 | ...::log | provenance | MaD:9 Sink:MaD:9 | | test_logging.rs:152:12:152:37 | MacroExpr | test_logging.rs:152:5:152:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | | test_logging.rs:152:30:152:37 | password | test_logging.rs:152:12:152:37 | MacroExpr | provenance | | | test_logging.rs:153:14:153:37 | MacroExpr | test_logging.rs:153:5:153:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | @@ -352,6 +356,10 @@ nodes | test_logging.rs:131:12:131:31 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:131:28:131:29 | t1 [tuple.1] | semmle.label | t1 [tuple.1] | | test_logging.rs:131:28:131:31 | t1.1 | semmle.label | t1.1 | +| test_logging.rs:138:5:138:38 | ...::log | semmle.label | ...::log | +| test_logging.rs:138:11:138:37 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:145:5:145:38 | ...::log | semmle.label | ...::log | +| test_logging.rs:145:11:145:37 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:152:5:152:38 | ...::_print | semmle.label | ...::_print | | test_logging.rs:152:12:152:37 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:152:30:152:37 | password | semmle.label | password | diff --git a/rust/ql/test/query-tests/security/CWE-312/test_logging.rs b/rust/ql/test/query-tests/security/CWE-312/test_logging.rs index 970a9caf0ee..8606d2f9b22 100644 --- a/rust/ql/test/query-tests/security/CWE-312/test_logging.rs +++ b/rust/ql/test/query-tests/security/CWE-312/test_logging.rs @@ -135,14 +135,14 @@ fn test_log(harmless: String, password: String, encrypted_password: String) { // logging from a struct let s1 = MyStruct1 { harmless: "foo".to_string(), password: "123456".to_string() }; // $ MISSING: Source=s1 warn!("message = {}", s1.harmless); - warn!("message = {}", s1.password); // $ MISSING: Alert[rust/cleartext-logging] + warn!("message = {}", s1.password); // $ Alert[rust/cleartext-logging] warn!("message = {}", s1); // $ MISSING: Alert[rust/cleartext-logging]=s1 warn!("message = {:?}", s1); // $ MISSING: Alert[rust/cleartext-logging]=s1 warn!("message = {:#?}", s1); // $ MISSING: Alert[rust/cleartext-logging]=s1 let s2 = MyStruct2 { harmless: "foo".to_string(), password: "123456".to_string() }; // $ MISSING: Source=s2 warn!("message = {}", s2.harmless); - warn!("message = {}", s2.password); // $ MISSING: Alert[rust/cleartext-logging] + warn!("message = {}", s2.password); // $ Alert[rust/cleartext-logging] warn!("message = {}", s2); // (this implementation does not output the password field) warn!("message = {:?}", s2); // $ MISSING: Alert[rust/cleartext-logging]=s2 warn!("message = {:#?}", s2); // $ MISSING: Alert[rust/cleartext-logging]=s2 From 48b95f3a4e2288bbd8bb07b241a80b715ed35463 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 9 May 2025 17:01:26 +0100 Subject: [PATCH 311/656] Rust: Move OperationImpl to internal/OperationImpl.qll. --- .../ql/lib/codeql/rust/elements/Operation.qll | 23 +-------------- .../rust/elements/internal/OperationImpl.qll | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 22 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll diff --git a/rust/ql/lib/codeql/rust/elements/Operation.qll b/rust/ql/lib/codeql/rust/elements/Operation.qll index 26486686cb2..b3615bddb33 100644 --- a/rust/ql/lib/codeql/rust/elements/Operation.qll +++ b/rust/ql/lib/codeql/rust/elements/Operation.qll @@ -2,28 +2,7 @@ * Provides classes for operations. */ -private import rust +import internal.OperationImpl private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl -/** - * INTERNAL: This module contains the customizable definition of `Operation` and should not - * be referenced directly. - */ -module OperationImpl { - /** - * An operation, for example `&&`, `+=`, `!` or `*`. - */ - abstract class Operation extends ExprImpl::Expr { - /** - * Gets the operator name of this operation, if it exists. - */ - abstract string getOperatorName(); - - /** - * Gets an operand of this operation. - */ - abstract Expr getAnOperand(); - } -} - final class Operation = OperationImpl::Operation; diff --git a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll new file mode 100644 index 00000000000..7b2d1a9d62e --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll @@ -0,0 +1,29 @@ +/** + * Provides classes for operations. + * + * INTERNAL: Do not use. + */ + +private import rust +private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl + +/** + * INTERNAL: This module contains the customizable definition of `Operation` and should not + * be referenced directly. + */ +module OperationImpl { + /** + * An operation, for example `&&`, `+=`, `!` or `*`. + */ + abstract class Operation extends ExprImpl::Expr { + /** + * Gets the operator name of this operation, if it exists. + */ + abstract string getOperatorName(); + + /** + * Gets an operand of this operation. + */ + abstract Expr getAnOperand(); + } +} From 4e3ac93f70b19c7a7f96e6ea7f124a0642e0b44d Mon Sep 17 00:00:00 2001 From: Sid Gawri Date: Fri, 9 May 2025 16:24:42 -0400 Subject: [PATCH 312/656] fix unit tests part 2 --- csharp/ql/test/library-tests/asp/basic/options | 4 ++++ .../test/library-tests/dataflow/flowsources/remote/options | 3 ++- csharp/ql/test/library-tests/dataflow/global/options | 3 ++- csharp/ql/test/query-tests/Security Features/CWE-611/options | 5 ++++- csharp/ql/test/utils/modelgenerator/dataflow/options | 3 ++- 5 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 csharp/ql/test/library-tests/asp/basic/options diff --git a/csharp/ql/test/library-tests/asp/basic/options b/csharp/ql/test/library-tests/asp/basic/options new file mode 100644 index 00000000000..8b0f1661e63 --- /dev/null +++ b/csharp/ql/test/library-tests/asp/basic/options @@ -0,0 +1,4 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj +semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs \ No newline at end of file diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/remote/options b/csharp/ql/test/library-tests/dataflow/flowsources/remote/options index 9290f65d5b2..1fcc7e1cf48 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/remote/options +++ b/csharp/ql/test/library-tests/dataflow/flowsources/remote/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj +semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs \ No newline at end of file diff --git a/csharp/ql/test/library-tests/dataflow/global/options b/csharp/ql/test/library-tests/dataflow/global/options index a2859a6265b..8b0f1661e63 100644 --- a/csharp/ql/test/library-tests/dataflow/global/options +++ b/csharp/ql/test/library-tests/dataflow/global/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs \ No newline at end of file diff --git a/csharp/ql/test/query-tests/Security Features/CWE-611/options b/csharp/ql/test/query-tests/Security Features/CWE-611/options index d449cb3057f..8b0f1661e63 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-611/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-611/options @@ -1 +1,4 @@ -semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs /r:System.Collections.Specialized.dll /r:System.Xml.ReaderWriter.dll /r:System.Private.Xml.dll /r:System.Runtime.Extensions.dll +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj +semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs \ No newline at end of file diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/options b/csharp/ql/test/utils/modelgenerator/dataflow/options index 96b0b028bdd..8b0f1661e63 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/options +++ b/csharp/ql/test/utils/modelgenerator/dataflow/options @@ -1,3 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj +semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs \ No newline at end of file From 8fab235d666c3de13897f88ec5b4464d120e9a42 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 12 May 2025 09:41:49 +0200 Subject: [PATCH 313/656] DataFlow: Fix typo in a comment --- shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 9e6c4ff8b81..794fd340bcf 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -541,7 +541,7 @@ module Make< } /** - * Holds if `s` is a valid input stack, in the sense that we generate data flow graph + * Holds if `s` is a valid input stack, in the sense that we generate a data flow graph * that faithfully represents this flow, and lambda-tracking can be expected to track * lambdas to the relevant callbacks in practice. */ From 891b2b8335cd2b785b987ded03d4ae37378410e2 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 12 May 2025 09:42:45 +0200 Subject: [PATCH 314/656] DataFlow: Support a bare Argument[n] as a valid output stack --- .../codeql/dataflow/internal/FlowSummaryImpl.qll | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 794fd340bcf..95d29153f47 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -565,8 +565,7 @@ module Make< isLocalSummaryComponent(s.head()) } - /** Like `isSupportedInputStack` but for output stacks. */ - private predicate isSupportedOutputStack(SummaryComponentStack s) { + private predicate isSupportedOutputStack1(SummaryComponentStack s) { // ReturnValue.* s.length() = 1 and s.head() instanceof TReturnSummaryComponent @@ -581,10 +580,19 @@ module Make< s.head() instanceof TParameterSummaryComponent and s.tail().head() instanceof TArgumentSummaryComponent or - isSupportedOutputStack(s.tail()) and + isSupportedOutputStack1(s.tail()) and isLocalSummaryComponent(s.head()) } + /** Like `isSupportedInputStack` but for output stacks. */ + private predicate isSupportedOutputStack(SummaryComponentStack s) { + isSupportedOutputStack1(s) + or + // `Argument[n]` not followed by anything. Needs to be outside the recursion. + s.length() = 1 and + s.head() instanceof TArgumentSummaryComponent + } + /** * Holds if `callable` has an unsupported flow `input -> output`. * From 0cf60c4e2d8bc4712b8412d36fd090d87df00888 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 7 May 2025 15:29:58 -0400 Subject: [PATCH 315/656] Rust: Address comments on documentation --- .../elements/internal/MethodCallExprImpl.qll | 2 + .../codeql/rust/internal/TypeInference.qll | 17 +++++++ .../typeinference/internal/TypeInference.qll | 48 +++++++++++++------ 3 files changed, 53 insertions(+), 14 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll index cebfaf6d5ba..4996da37d90 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll @@ -56,6 +56,8 @@ module Impl { } override Function getStaticTarget() { + // Functions in source code also gets extracted as library code, due to + // this duplication we prioritize functions from source code. result = this.getStaticTargetFrom(true) or not exists(this.getStaticTargetFrom(true)) and diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 8d7dffefd76..4701df8069b 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -19,6 +19,16 @@ private module Input1 implements InputSig1 { class TypeParameter = T::TypeParameter; + /** + * A type abstraction. I.e., a place in the program where type variables are + * introduced. + * + * Example: + * ```rust + * impl Foo { } + * // ^^^^^^ a type abstraction + * ``` + */ class TypeAbstraction = T::TypeAbstraction; private newtype TTypeArgumentPosition = @@ -118,6 +128,13 @@ private module Input2 implements InputSig2 { result = tp.(SelfTypeParameter).getTrait() } + /** + * Use the constraint mechanism in the shared type inference library to + * support traits. In Rust `constraint` is always a trait. + * + * See the documentation of `conditionSatisfiesConstraint` in the shared type + * inference module for more information. + */ predicate conditionSatisfiesConstraint( TypeAbstraction abs, TypeMention condition, TypeMention constraint ) { diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 5eabeb6c6f0..b3cb99abcc5 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -327,20 +327,25 @@ module Make1 Input1> { * // ^^^^^^^^^^^^^ `constraint` * ``` * - * Note that the type parameters in `abs` significantly change the meaning - * of type parameters that occur in `condition`. For instance, in the Rust - * example - * ```rust - * fn foo() { } - * ``` - * we have that the type parameter `T` satisfies the constraint `Trait`. But, - * only that specific `T` satisfy the constraint. Hence we would not have - * `T` in `abs`. On the other hand, in the Rust example + * To see how `abs` change the meaning of the type parameters that occur in + * `condition`, consider the following examples in Rust: * ```rust * impl Trait for T { } + * // ^^^ `abs` ^ `condition` + * // ^^^^^ `constraint` * ``` - * the constraint `Trait` is in fact satisfied for all types, and we would - * have `T` in `abs` to make it free in the condition. + * Here the meaning is "for all type parameters `T` it is the case that `T` + * implements `Trait`". On the other hand, in + * ```rust + * fn foo() { } + * // ^ `condition` + * // ^^^^^ `constraint` + * ``` + * the meaning is "`T` implements `Trait`" where the constraint is only + * valid for the specific `T`. Note that `condition` and `condition` are + * identical in the two examples. To encode the difference, `abs` in the + * first example should contain `T` whereas in the seconds example `abs` + * should be empty. */ predicate conditionSatisfiesConstraint( TypeAbstraction abs, TypeMention condition, TypeMention constraint @@ -359,9 +364,24 @@ module Make1 Input1> { signature module IsInstantiationOfInputSig { /** - * Holds if `abs` is a type abstraction under which `tm` occurs and if - * `app` is potentially the result of applying the abstraction to type - * some type argument. + * Holds if `abs` is a type abstraction, `tm` occurs under `abs`, and + * `app` is potentially an application/instantiation of `abs`. + * + * For example: + * ```rust + * impl Foo { + * // ^^^ `abs` + * // ^^^^^^^^^ `tm` + * fn bar(self) { ... } + * } + * // ... + * foo.bar(); + * // ^^^ `app` + * ``` + * Here `abs` introduces the type parameter `A` and `tm` occurs under + * `abs` (i.e., `A` is bound in `tm` by `abs`). On the last line, + * accessing the `bar` method of `foo` potentially instantiates the `impl` + * block with a type argument for `A`. */ predicate potentialInstantiationOf(App app, TypeAbstraction abs, TypeMention tm); From 7bd1612b694a70f673f50f2192e021092cec898a Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 12 May 2025 12:47:48 +0200 Subject: [PATCH 316/656] Rust: Use getStaticTarget in type inference test This fixes a test failure where duplicated functions from extraction caused a bunch of spurious results to pop up --- rust/ql/test/library-tests/type-inference/main.rs | 2 +- rust/ql/test/library-tests/type-inference/type-inference.ql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 30a9b60c864..f6c879f24b6 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -398,7 +398,7 @@ mod impl_overlap { pub fn f() { let x = S1; - println!("{:?}", x.common_method()); // $ method=S1::common_method SPURIOUS: method=::common_method + println!("{:?}", x.common_method()); // $ method=S1::common_method println!("{:?}", x.common_method_2()); // $ method=S1::common_method_2 } } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.ql b/rust/ql/test/library-tests/type-inference/type-inference.ql index 2652699558f..83ff92ed60d 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.ql +++ b/rust/ql/test/library-tests/type-inference/type-inference.ql @@ -24,7 +24,7 @@ module ResolveTest implements TestSig { location = source.getLocation() and element = source.toString() | - target = resolveMethodCallExpr(source) and + target = source.(MethodCallExpr).getStaticTarget() and functionHasValue(target, value) and tag = "method" or From 0a3275e0b3fb80ac50cbb4b89934bd37387fdec1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 11:50:57 +0100 Subject: [PATCH 317/656] Rust: One more test case. --- rust/ql/test/library-tests/sensitivedata/test.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rust/ql/test/library-tests/sensitivedata/test.rs b/rust/ql/test/library-tests/sensitivedata/test.rs index c4f4a57b8de..02ac0bdfff3 100644 --- a/rust/ql/test/library-tests/sensitivedata/test.rs +++ b/rust/ql/test/library-tests/sensitivedata/test.rs @@ -26,6 +26,7 @@ fn test_passwords( password: &str, pass_word: &str, passwd: &str, my_password: &str, password_str: &str, pass_phrase: &str, passphrase: &str, passPhrase: &str, backup_code: &str, auth_key: &str, authkey: &str, authKey: &str, authentication_key: &str, authenticationkey: &str, authenticationKey: &str, oauth: &str, + one_time_code: &str, harmless: &str, encrypted_password: &str, password_hash: &str, passwordFile: &str, ms: &MyStruct ) { @@ -48,6 +49,7 @@ fn test_passwords( sink(authenticationkey); // $ sensitive=password sink(authenticationKey); // $ sensitive=password sink(oauth); // $ MISSING: sensitive=password + sink(one_time_code); // $ MISSING: sensitive=password sink(ms); // $ MISSING: sensitive=password sink(ms.password.as_str()); // $ sensitive=password From b907cfe468de58cd90c46d66c19e9f2fe8862bcb Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 12:30:50 +0100 Subject: [PATCH 318/656] Rust: Add a few more test cases involving 'map'. --- .../test/library-tests/sensitivedata/test.rs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/rust/ql/test/library-tests/sensitivedata/test.rs b/rust/ql/test/library-tests/sensitivedata/test.rs index 02ac0bdfff3..f74de9f5bf8 100644 --- a/rust/ql/test/library-tests/sensitivedata/test.rs +++ b/rust/ql/test/library-tests/sensitivedata/test.rs @@ -242,6 +242,10 @@ enum ContactDetails { FavouriteColor(String), } +struct ContactDetails2 { + home_phone_number: String, +} + fn test_private_info( info: &MyPrivateInfo, details: &ContactDetails, ) { @@ -298,9 +302,34 @@ fn test_private_info( sink(ContactDetails::HomePhoneNumber("123".to_string())); // $ sensitive=private sink(ContactDetails::MobileNumber("123".to_string())); // $ sensitive=private sink(ContactDetails::Email("a@b".to_string())); // $ MISSING: sensitive=private + + let numbers = [1, 2, 3]; + if let ContactDetails::MobileNumber(num) = details { sink(num.as_str()); // $ MISSING: sensitive=private } + let contacts = numbers.map(|number| + { + let contact = ContactDetails::MobileNumber(number.to_string()); + sink(&contact); // $ sensitive=private + contact + } + ); + sink(&contacts[0]); // $ MISSING: sensitive=private + if let ContactDetails::HomePhoneNumber(num) = &contacts[0] { + sink(num.as_str()); // $ MISSING: sensitive=private + } + + let contacts2 = numbers.map(|number| + { + let contact = ContactDetails2 { + home_phone_number: number.to_string(), + }; + sink(&contact.home_phone_number); // $ sensitive=private + contact + } + ); + sink(&contacts2[0].home_phone_number); // $ sensitive=private // not private info From ac5ec06736b002cca4fd1ad271188d2d1128d640 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 12:47:31 +0100 Subject: [PATCH 319/656] Rust: Constrain SensitiveFieldAccess to avoid including unwanted parents. --- rust/ql/lib/codeql/rust/security/SensitiveData.qll | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/security/SensitiveData.qll b/rust/ql/lib/codeql/rust/security/SensitiveData.qll index 1a7571a912e..43282ed7d93 100644 --- a/rust/ql/lib/codeql/rust/security/SensitiveData.qll +++ b/rust/ql/lib/codeql/rust/security/SensitiveData.qll @@ -112,6 +112,10 @@ private class SensitiveVariableAccess extends SensitiveData { override SensitiveDataClassification getClassification() { result = classification } } +Expr fieldExprParentField(FieldExpr fe) { + result = fe.getParentNode() +} + /** * A field access data flow node that might be sensitive data. */ @@ -119,7 +123,7 @@ private class SensitiveFieldAccess extends SensitiveData { SensitiveDataClassification classification; SensitiveFieldAccess() { - exists(FieldExpr fe | fe.getParentNode*() = this.asExpr().getAstNode() | + exists(FieldExpr fe | fieldExprParentField*(fe) = this.asExpr().getAstNode() | HeuristicNames::nameIndicatesSensitiveData(fe.getIdentifier().getText(), classification) ) } From 682f59fc11a1374ca0fd5fc3b7c3e0c50a0f9324 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 12:49:58 +0100 Subject: [PATCH 320/656] Rust: Make helper predicate private + autoformat. --- rust/ql/lib/codeql/rust/security/SensitiveData.qll | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/security/SensitiveData.qll b/rust/ql/lib/codeql/rust/security/SensitiveData.qll index 43282ed7d93..3dcc48a799a 100644 --- a/rust/ql/lib/codeql/rust/security/SensitiveData.qll +++ b/rust/ql/lib/codeql/rust/security/SensitiveData.qll @@ -112,9 +112,7 @@ private class SensitiveVariableAccess extends SensitiveData { override SensitiveDataClassification getClassification() { result = classification } } -Expr fieldExprParentField(FieldExpr fe) { - result = fe.getParentNode() -} +private Expr fieldExprParentField(FieldExpr fe) { result = fe.getParentNode() } /** * A field access data flow node that might be sensitive data. From ab3f62eed171480c5b92b92bd959eeb2630c118c Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Mon, 12 May 2025 14:34:16 +0200 Subject: [PATCH 321/656] Add missing tags to PrintCBOMGraph.ql queries --- cpp/ql/src/experimental/quantum/PrintCBOMGraph.ql | 2 ++ java/ql/src/experimental/quantum/PrintCBOMGraph.ql | 2 ++ 2 files changed, 4 insertions(+) diff --git a/cpp/ql/src/experimental/quantum/PrintCBOMGraph.ql b/cpp/ql/src/experimental/quantum/PrintCBOMGraph.ql index f741e3c9f94..32979da1065 100644 --- a/cpp/ql/src/experimental/quantum/PrintCBOMGraph.ql +++ b/cpp/ql/src/experimental/quantum/PrintCBOMGraph.ql @@ -4,6 +4,8 @@ * This query only supports DGML output, as CodeQL DOT output omits properties. * @kind graph * @id cpp/print-cbom-graph + * @tags quantum + * experimental */ import experimental.quantum.Language diff --git a/java/ql/src/experimental/quantum/PrintCBOMGraph.ql b/java/ql/src/experimental/quantum/PrintCBOMGraph.ql index bc79d5d4ce6..f9c59432846 100644 --- a/java/ql/src/experimental/quantum/PrintCBOMGraph.ql +++ b/java/ql/src/experimental/quantum/PrintCBOMGraph.ql @@ -4,6 +4,8 @@ * This query only supports DGML output, as CodeQL DOT output omits properties. * @kind graph * @id java/print-cbom-graph + * @tags quantum + * experimental */ import experimental.quantum.Language From 8f36624171dd2dca388e5707451c4e5a53d03f24 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Mon, 12 May 2025 14:37:44 +0200 Subject: [PATCH 322/656] Add AsymmetricAlgorithmNode, refactor and address feedback --- java/ql/lib/experimental/quantum/Language.qll | 32 +++--- .../KnownAsymmetricAlgorithm.ql | 3 +- .../KnownAsymmetricOperationAlgorithm.ql | 4 +- .../LikelyCryptoAPIFunction.ql | 2 +- .../codeql/quantum/experimental/Model.qll | 101 +++++++++++------- 5 files changed, 83 insertions(+), 59 deletions(-) diff --git a/java/ql/lib/experimental/quantum/Language.qll b/java/ql/lib/experimental/quantum/Language.qll index 8e00f34f02b..864ca6dd931 100644 --- a/java/ql/lib/experimental/quantum/Language.qll +++ b/java/ql/lib/experimental/quantum/Language.qll @@ -42,19 +42,15 @@ module CryptoInput implements InputSig { } } -/** - * Instantiate the model - */ +// Instantiate the `CryptographyBase` module module Crypto = CryptographyBase; -/** - * Definitions of various generic data sources - */ +// Definitions of various generic sources final class DefaultFlowSource = SourceNode; final class DefaultRemoteFlowSource = RemoteFlowSource; -class GenericUnreferencedParameterSource extends Crypto::GenericUnreferencedParameterSource { +private class GenericUnreferencedParameterSource extends Crypto::GenericUnreferencedParameterSource { GenericUnreferencedParameterSource() { exists(Parameter p | this = p and not exists(p.getAnArgument())) } @@ -68,7 +64,7 @@ class GenericUnreferencedParameterSource extends Crypto::GenericUnreferencedPara override string getAdditionalDescription() { result = this.toString() } } -class GenericLocalDataSource extends Crypto::GenericLocalDataSource { +private class GenericLocalDataSource extends Crypto::GenericLocalDataSource { GenericLocalDataSource() { any(DefaultFlowSource src | not src instanceof DefaultRemoteFlowSource).asExpr() = this } @@ -82,7 +78,7 @@ class GenericLocalDataSource extends Crypto::GenericLocalDataSource { override string getAdditionalDescription() { result = this.toString() } } -class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { +private class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { GenericRemoteDataSource() { any(DefaultRemoteFlowSource src).asExpr() = this } override DataFlow::Node getOutputNode() { result.asExpr() = this } @@ -94,7 +90,7 @@ class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { override string getAdditionalDescription() { result = this.toString() } } -class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceof Literal { +private class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceof Literal { ConstantDataSource() { // TODO: this is an API specific workaround for JCA, as 'EC' is a constant that may be used // where typical algorithms are specified, but EC specifically means set up a @@ -114,14 +110,14 @@ class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceo } /** - * Random number generation, where each instance is modelled as the expression + * An instance of random number generation, modelled as the expression * tied to an output node (i.e., the result of the source of randomness) */ abstract class RandomnessInstance extends Crypto::RandomNumberGenerationInstance { override DataFlow::Node getOutputNode() { result.asExpr() = this } } -class SecureRandomnessInstance extends RandomnessInstance { +private class SecureRandomnessInstance extends RandomnessInstance { RandomDataSource source; SecureRandomnessInstance() { @@ -132,7 +128,7 @@ class SecureRandomnessInstance extends RandomnessInstance { override string getGeneratorName() { result = source.getSourceOfRandomness().getQualifiedName() } } -class InsecureRandomnessInstance extends RandomnessInstance { +private class InsecureRandomnessInstance extends RandomnessInstance { RandomDataSource source; InsecureRandomnessInstance() { @@ -143,7 +139,11 @@ class InsecureRandomnessInstance extends RandomnessInstance { } /** - * Artifact output to node input configuration + * An additional flow step in generic data-flow configurations. + * Where a step is an edge between nodes `n1` and `n2`, + * `this` = `n1` and `getOutput()` = `n2`. + * + * FOR INTERNAL MODELING USE ONLY. */ abstract class AdditionalFlowInputStep extends DataFlow::Node { abstract DataFlow::Node getOutput(); @@ -151,8 +151,6 @@ abstract class AdditionalFlowInputStep extends DataFlow::Node { final DataFlow::Node getInput() { result = this } } -module ArtifactFlow = DataFlow::Global; - /** * Generic data source to node input configuration */ @@ -214,5 +212,7 @@ module ArtifactFlowConfig implements DataFlow::ConfigSig { module GenericDataSourceFlow = TaintTracking::Global; +module ArtifactFlow = DataFlow::Global; + // Import library-specific modeling import JCA diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql index b4d0b908bbe..e796cc9e109 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql @@ -10,6 +10,5 @@ import java import experimental.quantum.Language -from Crypto::AlgorithmNode a -where Crypto::isKnownAsymmetricAlgorithm(a) +from Crypto::AsymmetricAlgorithmNode a select a, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql index 224ee1161fb..98a8aa38a03 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql @@ -10,6 +10,6 @@ import java import experimental.quantum.Language -from Crypto::OperationNode op, Crypto::AlgorithmNode a -where a = op.getAKnownAlgorithm() and Crypto::isKnownAsymmetricAlgorithm(a) +from Crypto::OperationNode op, Crypto::AsymmetricAlgorithmNode a +where a = op.getAKnownAlgorithm() select op, a.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql b/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql index 2b81cf22dba..14148354d0f 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/LikelyCryptoAPIFunction.ql @@ -1,6 +1,6 @@ /** * @name Likely crypto API function - * @description Detects functions that take in crypto configuration parameters but calls are not detected in source. + * @description Outputs functions that take in crypto configuration parameters but calls are not detected in source. * @id java/quantum/slices/likely-crypto-api-function * @kind problem * @severity info diff --git a/shared/quantum/codeql/quantum/experimental/Model.qll b/shared/quantum/codeql/quantum/experimental/Model.qll index 69a4fd75acf..54691c306bd 100644 --- a/shared/quantum/codeql/quantum/experimental/Model.qll +++ b/shared/quantum/codeql/quantum/experimental/Model.qll @@ -3,7 +3,6 @@ */ import codeql.util.Location -import codeql.util.Either signature module InputSig { class LocatableElement { @@ -36,10 +35,20 @@ module CryptographyBase Input> { final class DataFlowNode = Input::DataFlowNode; + /** + * A `ConsumerInputDataFlowNode` is a `DataFlowNode` that represents a consumer of data. + * + * This class is equivalent to `DataFlowNode` but facilitates binding to a `ConsumerElement`. + */ class ConsumerInputDataFlowNode extends DataFlowNode { ConsumerElement getConsumer() { result.getInputNode() = this } } + /** + * An `ArtifactOutputDataFlowNode` is a `DataFlowNode` that represents the source of a created artifact. + * + * This class is equivalent to `DataFlowNode` but facilitates binding to an `OutputArtifactInstance`. + */ class ArtifactOutputDataFlowNode extends DataFlowNode { OutputArtifactInstance getArtifact() { result.getOutputNode() = this } } @@ -51,19 +60,17 @@ module CryptographyBase Input> { bindingset[root] private string getPropertyAsGraphString(NodeBase node, string key, Location root) { result = - strictconcat(any(string value, Location location, string parsed | - node.properties(key, value, location) and - ( - if location = root or location instanceof UnknownLocation - then parsed = value - else - parsed = - "(" + value + "," + Input::locationToFileBaseNameAndLineNumberString(location) + - ")" - ) - | - parsed - ), "," + strictconcat(string value, Location location, string parsed | + node.properties(key, value, location) and + ( + if location = root or location instanceof UnknownLocation + then parsed = value + else + parsed = + "(" + value + "," + Input::locationToFileBaseNameAndLineNumberString(location) + ")" + ) + | + parsed, "," ) } @@ -154,7 +161,7 @@ module CryptographyBase Input> { * CROSS PRODUCT WARNING: Modeling any *other* element that is a `FlowAwareElement` to the same * instance in the database will result in every `FlowAwareElement` sharing the output flow. */ - abstract class KnownElement extends LocatableElement { + abstract private class KnownElement extends LocatableElement { final ConsumerElement getAConsumer() { result.getAKnownSource() = this } } @@ -297,6 +304,23 @@ module CryptographyBase Input> { final override ConsumerInputDataFlowNode getInputNode() { result = input } } + /** + * An `AlgorithmValueConsumer` (_AVC_) is an element that consumes a value specifying an algorithm. + * + * Example 1: + * `arg0` of `set_algorithm` (`x`) is the AVC for the `ctx.encrypt()` operation. + * ```cpp + * x = "RSA"; + * ctx.set_algorithm(x); + * ctx.encrypt(); + * ``` + * + * Example 2: + * `encrypt_with_rsa` is concurrently an an operation, an AVC, and an algorithm. + * ```cpp + * `encrypt_with_rsa();` + * ``` + */ abstract class AlgorithmValueConsumer extends ConsumerElement { /** * DO NOT USE. @@ -324,8 +348,8 @@ module CryptographyBase Input> { * to the artifact it receives, thereby becoming the definitive contextual source for that artifact. * * Architectural Implications: - * * By directly coupling a consumer with the node that receives an artifact, - * the data flow is fully transparent with the consumer itself serving only as a transparent node. + * * By directly coupling a consumer with the node that receives an artifact, no modeling considerations have to be made + * to provide an interface for identifying the source via the consumer data-flow mechanisms. * * An artifact's properties (such as being a nonce) are not necessarily inherent; they are determined by the context in which the artifact is consumed. * The consumer node is therefore essential in defining these properties for inputs. * * This approach reduces ambiguity by avoiding separate notions of "artifact source" and "consumer", as the node itself encapsulates both roles. @@ -347,7 +371,7 @@ module CryptographyBase Input> { * A `NonceArtifactConsumer` is always the `NonceArtifactInstance` itself, since data only becomes (i.e., is determined to be) * a `NonceArtifactInstance` when it is consumed in a context that expects a nonce (e.g., an argument expecting nonce data). * - * In this case, the artifact (nonce) is fully defined by the context in which it is consumed, and the consumer embodies + * In this case, the artifact (nonce) is fully defined by the context in which it is consumed, and the consumer embodies * that identity without the need for additional differentiation. Without the context a consumer provides, that data could * otherwise be any other type of artifact or even simply random data. * @@ -604,7 +628,6 @@ module CryptographyBase Input> { type = TSymmetricCipher(SEED()) and size = 128 } - bindingset[type] predicate symmetric_cipher_to_name_and_structure( TSymmetricCipherType type, string name, CipherStructureType s ) { @@ -651,7 +674,6 @@ module CryptographyBase Input> { s = UnknownCipherStructureType() } - bindingset[type] predicate type_to_name(Algorithm type, string name) { // Symmetric cipher algorithm symmetric_cipher_to_name_and_structure(type.(SymmetricCipherAlgorithm).getType(), name, _) @@ -1551,6 +1573,20 @@ module CryptographyBase Input> { string toString() { result = super.getAlgorithmName() } } + /** + * The subset of algorithm nodes that are known asymmetric algorithm. + * + * Note: This is not an independent top-level node type. + */ + class AsymmetricAlgorithmNode extends TKeyCreationCandidateAlgorithm instanceof AlgorithmNode { + AsymmetricAlgorithmNode() { + this instanceof EllipticCurveNode or + this.(KeyOperationAlgorithmNode).isAsymmetric() + } + + string toString() { result = super.getAlgorithmName() } + } + /** * A cryptographic key, such as a symmetric key or asymmetric key pair. */ @@ -1709,7 +1745,6 @@ module CryptographyBase Input> { TMACType getMACType() { result = instance.asAlg().getMACType() } - bindingset[type] final private predicate macToNameMapping(TMACType type, string name) { type instanceof THMAC and name = "HMAC" @@ -2102,7 +2137,6 @@ module CryptographyBase Input> { */ TBlockCipherModeOfOperationType getModeType() { result = instance.getModeType() } - bindingset[type] final private predicate modeToNameMapping(TBlockCipherModeOfOperationType type, string name) { type = ECB() and name = "ECB" or @@ -2148,7 +2182,6 @@ module CryptographyBase Input> { TPaddingType getPaddingType() { result = instance.getPaddingType() } - bindingset[type] final private predicate paddingToNameMapping(TPaddingType type, string name) { type = ANSI_X9_23() and name = "ANSI_X9_23" or @@ -2454,9 +2487,9 @@ module CryptographyBase Input> { // ALL BRAINPOOL CURVES keySize in [160, 192, 224, 256, 320, 384, 512] and ( - curveName = "BRAINPOOLP" + keySize.toString() + "R1" + curveName = "BRAINPOOLP" + keySize + "R1" or - curveName = "BRAINPOOLP" + keySize.toString() + "T1" + curveName = "BRAINPOOLP" + keySize + "T1" ) } @@ -2464,8 +2497,8 @@ module CryptographyBase Input> { // ALL SEC CURVES keySize in [112, 113, 128, 131, 160, 163, 192, 193, 224, 233, 239, 256, 283, 384, 409, 521, 571] and exists(string suff | suff in ["R1", "R2", "K1"] | - curveName = "SECT" + keySize.toString() + suff or - curveName = "SECP" + keySize.toString() + suff + curveName = "SECT" + keySize + suff or + curveName = "SECP" + keySize + suff ) } @@ -2475,22 +2508,20 @@ module CryptographyBase Input> { exists(string pre, string suff | pre in ["PNB", "ONB", "TNB"] and suff in ["V1", "V2", "V3", "V4", "V5", "W1", "R1"] | - curveName = "C2" + pre + keySize.toString() + suff + curveName = "C2" + pre + keySize + suff ) } private predicate isPrimeCurve(string curveName, int keySize) { // ALL PRIME CURVES keySize in [192, 239, 256] and - exists(string suff | suff in ["V1", "V2", "V3"] | - curveName = "PRIME" + keySize.toString() + suff - ) + exists(string suff | suff in ["V1", "V2", "V3"] | curveName = "PRIME" + keySize + suff) } private predicate isNumsCurve(string curveName, int keySize) { // ALL NUMS CURVES keySize in [256, 384, 512] and - exists(string suff | suff = "T1" | curveName = "NUMSP" + keySize.toString() + suff) + exists(string suff | suff = "T1" | curveName = "NUMSP" + keySize + suff) } /** @@ -2587,10 +2618,4 @@ module CryptographyBase Input> { location = this.getLocation() } } - - predicate isKnownAsymmetricAlgorithm(AlgorithmNode node) { - node instanceof EllipticCurveNode - or - node instanceof KeyOperationAlgorithmNode and node.(KeyOperationAlgorithmNode).isAsymmetric() - } } From c66ec6333327b3430a02e166dce5fec7e5a40f88 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Mon, 12 May 2025 14:48:58 +0200 Subject: [PATCH 323/656] Fix query compilation errors --- java/ql/lib/experimental/quantum/Language.qll | 4 ++-- .../quantum/InventorySlices/KnownAsymmetricAlgorithm.ql | 2 +- .../InventorySlices/KnownAsymmetricOperationAlgorithm.ql | 2 +- shared/quantum/codeql/quantum/experimental/Model.qll | 4 +++- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/java/ql/lib/experimental/quantum/Language.qll b/java/ql/lib/experimental/quantum/Language.qll index 864ca6dd931..59164901c10 100644 --- a/java/ql/lib/experimental/quantum/Language.qll +++ b/java/ql/lib/experimental/quantum/Language.qll @@ -117,7 +117,7 @@ abstract class RandomnessInstance extends Crypto::RandomNumberGenerationInstance override DataFlow::Node getOutputNode() { result.asExpr() = this } } -private class SecureRandomnessInstance extends RandomnessInstance { +class SecureRandomnessInstance extends RandomnessInstance { RandomDataSource source; SecureRandomnessInstance() { @@ -128,7 +128,7 @@ private class SecureRandomnessInstance extends RandomnessInstance { override string getGeneratorName() { result = source.getSourceOfRandomness().getQualifiedName() } } -private class InsecureRandomnessInstance extends RandomnessInstance { +class InsecureRandomnessInstance extends RandomnessInstance { RandomDataSource source; InsecureRandomnessInstance() { diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql index e796cc9e109..dbdc832c70b 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql @@ -11,4 +11,4 @@ import java import experimental.quantum.Language from Crypto::AsymmetricAlgorithmNode a -select a, a.getAlgorithmName() +select a, a.asAlgorithmNode().getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql index 98a8aa38a03..060b7df99a9 100644 --- a/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql +++ b/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql @@ -12,4 +12,4 @@ import experimental.quantum.Language from Crypto::OperationNode op, Crypto::AsymmetricAlgorithmNode a where a = op.getAKnownAlgorithm() -select op, a.getAlgorithmName() +select op, a.asAlgorithmNode().getAlgorithmName() diff --git a/shared/quantum/codeql/quantum/experimental/Model.qll b/shared/quantum/codeql/quantum/experimental/Model.qll index 54691c306bd..1a192e84778 100644 --- a/shared/quantum/codeql/quantum/experimental/Model.qll +++ b/shared/quantum/codeql/quantum/experimental/Model.qll @@ -1584,7 +1584,9 @@ module CryptographyBase Input> { this.(KeyOperationAlgorithmNode).isAsymmetric() } - string toString() { result = super.getAlgorithmName() } + string toString() { result = super.toString() } + + AlgorithmNode asAlgorithmNode() { result = this } } /** From 5334e907170ec18ef4b2a538dea4dbf55d8d3a47 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Mon, 12 May 2025 14:58:04 +0200 Subject: [PATCH 324/656] Make FlowAwareElement private --- shared/quantum/codeql/quantum/experimental/Model.qll | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/shared/quantum/codeql/quantum/experimental/Model.qll b/shared/quantum/codeql/quantum/experimental/Model.qll index 1a192e84778..a87aee2e69c 100644 --- a/shared/quantum/codeql/quantum/experimental/Model.qll +++ b/shared/quantum/codeql/quantum/experimental/Model.qll @@ -130,7 +130,7 @@ module CryptographyBase Input> { /** * An element that is flow-aware, i.e., it has an input and output node implicitly used for data flow analysis. */ - abstract class FlowAwareElement extends LocatableElement { + abstract private class FlowAwareElementImpl extends LocatableElement { /** * Gets the output node for this element, which should usually be the same as `this`. */ @@ -155,6 +155,8 @@ module CryptographyBase Input> { abstract predicate flowsTo(FlowAwareElement other); } + final class FlowAwareElement = FlowAwareElementImpl; + /** * An element that represents a _known_ cryptographic asset with a determinable value OR an artifact. * @@ -187,7 +189,7 @@ module CryptographyBase Input> { * 1. A value (e.g., a string or integer literal) *or* * 1. An input for which a value cannot be determined (e.g., `argv`, file system reads, and web request headers) */ - abstract class GenericSourceInstance extends FlowAwareElement { + abstract class GenericSourceInstance extends FlowAwareElementImpl { final override ConsumerInputDataFlowNode getInputNode() { none() } abstract string getInternalType(); @@ -257,7 +259,7 @@ module CryptographyBase Input> { * * A consumer can consume multiple instances and types of assets at once, e.g., both a `PaddingAlgorithm` and `CipherAlgorithm`. */ - abstract private class ConsumerElement extends FlowAwareElement { + abstract private class ConsumerElement extends FlowAwareElementImpl { abstract KnownElement getAKnownSource(); override predicate flowsTo(FlowAwareElement other) { none() } @@ -337,7 +339,7 @@ module CryptographyBase Input> { /** * An element that represents a _known_ cryptographic artifact. */ - abstract class ArtifactInstance extends KnownElement, FlowAwareElement { + abstract class ArtifactInstance extends KnownElement, FlowAwareElementImpl { abstract predicate isConsumerArtifact(); // whether this is an input artifact defined by its consumer } From c16be43f15bdb8b5f72a851686703ca6230012c3 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 10 Apr 2025 14:13:45 +0200 Subject: [PATCH 325/656] C#: Convert cs/uncontrolled-format-string tests to use test inline expectations. --- .../CWE-134/ConsoleUncontrolledFormatString.cs | 4 ++-- .../Security Features/CWE-134/UncontrolledFormatString.cs | 8 ++++---- .../CWE-134/UncontrolledFormatString.qlref | 4 +++- .../CWE-134/UncontrolledFormatStringBad.cs | 4 ++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/csharp/ql/test/query-tests/Security Features/CWE-134/ConsoleUncontrolledFormatString.cs b/csharp/ql/test/query-tests/Security Features/CWE-134/ConsoleUncontrolledFormatString.cs index c9d4440cf78..c7d8c38a71b 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-134/ConsoleUncontrolledFormatString.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-134/ConsoleUncontrolledFormatString.cs @@ -5,9 +5,9 @@ public class Program { public static void Main() { - var format = Console.ReadLine(); + var format = Console.ReadLine(); // $ Source // BAD: Uncontrolled format string. - var x = string.Format(format, 1, 2); + var x = string.Format(format, 1, 2); // $ Alert } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.cs b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.cs index 37da55bec76..531d4ade884 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.cs @@ -6,13 +6,13 @@ public class TaintedPathHandler : IHttpHandler { public void ProcessRequest(HttpContext ctx) { - String path = ctx.Request.QueryString["page"]; + String path = ctx.Request.QueryString["page"]; // $ Source // BAD: Uncontrolled format string. - String.Format(path, "Do not do this"); + String.Format(path, "Do not do this"); // $ Alert // BAD: Using an IFormatProvider. - String.Format((IFormatProvider)null, path, "Do not do this"); + String.Format((IFormatProvider)null, path, "Do not do this"); // $ Alert // GOOD: Not the format string. String.Format("Do not do this", path); @@ -29,6 +29,6 @@ public class TaintedPathHandler : IHttpHandler void OnButtonClicked() { // BAD: Uncontrolled format string. - String.Format(box1.Text, "Do not do this"); + String.Format(box1.Text, "Do not do this"); // $ Alert } } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.qlref b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.qlref index 88de17860f9..10aa9e825cd 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.qlref +++ b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.qlref @@ -1,2 +1,4 @@ query: Security Features/CWE-134/UncontrolledFormatString.ql -postprocess: utils/test/PrettyPrintModels.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatStringBad.cs b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatStringBad.cs index dc0c689eefa..aeb252b18a7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatStringBad.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatStringBad.cs @@ -6,9 +6,9 @@ public class HttpHandler : IHttpHandler public void ProcessRequest(HttpContext ctx) { - string format = ctx.Request.QueryString["nameformat"]; + string format = ctx.Request.QueryString["nameformat"]; // $ Source // BAD: Uncontrolled format string. - FormattedName = string.Format(format, Surname, Forenames); + FormattedName = string.Format(format, Surname, Forenames); // $ Alert } } From 3838a7b0d67713c38ecd70361cf97482afdc2d88 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 10 Apr 2025 14:18:14 +0200 Subject: [PATCH 326/656] C#: Add a testcase for CompositeFormat.Parse for cs/uncontrolled-format-string. --- .../CWE-134/UncontrolledFormatString.cs | 4 +++ .../CWE-134/UncontrolledFormatString.expected | 30 ++++++++++--------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.cs b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.cs index 531d4ade884..814167b15d9 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.cs @@ -1,4 +1,5 @@ using System; +using System.Text; using System.IO; using System.Web; @@ -22,6 +23,9 @@ public class TaintedPathHandler : IHttpHandler // GOOD: Not a formatting call Console.WriteLine(path); + + // BAD: Uncontrolled format string. + CompositeFormat.Parse(path); // $ Alert } System.Windows.Forms.TextBox box1; diff --git a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected index 6c70f8450b2..63c093f5c34 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected @@ -1,17 +1,17 @@ #select | ConsoleUncontrolledFormatString.cs:11:31:11:36 | access to local variable format | ConsoleUncontrolledFormatString.cs:8:22:8:39 | call to method ReadLine : String | ConsoleUncontrolledFormatString.cs:11:31:11:36 | access to local variable format | This format string depends on $@. | ConsoleUncontrolledFormatString.cs:8:22:8:39 | call to method ReadLine | thisread from stdin | -| UncontrolledFormatString.cs:12:23:12:26 | access to local variable path | UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:12:23:12:26 | access to local variable path | This format string depends on $@. | UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString | thisASP.NET query string | -| UncontrolledFormatString.cs:15:46:15:49 | access to local variable path | UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:15:46:15:49 | access to local variable path | This format string depends on $@. | UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString | thisASP.NET query string | -| UncontrolledFormatString.cs:32:23:32:31 | access to property Text | UncontrolledFormatString.cs:32:23:32:31 | access to property Text | UncontrolledFormatString.cs:32:23:32:31 | access to property Text | This format string depends on $@. | UncontrolledFormatString.cs:32:23:32:31 | access to property Text | thisTextBox text | +| UncontrolledFormatString.cs:13:23:13:26 | access to local variable path | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:13:23:13:26 | access to local variable path | This format string depends on $@. | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString | thisASP.NET query string | +| UncontrolledFormatString.cs:16:46:16:49 | access to local variable path | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:16:46:16:49 | access to local variable path | This format string depends on $@. | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString | thisASP.NET query string | +| UncontrolledFormatString.cs:36:23:36:31 | access to property Text | UncontrolledFormatString.cs:36:23:36:31 | access to property Text | UncontrolledFormatString.cs:36:23:36:31 | access to property Text | This format string depends on $@. | UncontrolledFormatString.cs:36:23:36:31 | access to property Text | thisTextBox text | | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString : NameValueCollection | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | This format string depends on $@. | UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString | thisASP.NET query string | edges | ConsoleUncontrolledFormatString.cs:8:13:8:18 | access to local variable format : String | ConsoleUncontrolledFormatString.cs:11:31:11:36 | access to local variable format | provenance | | | ConsoleUncontrolledFormatString.cs:8:22:8:39 | call to method ReadLine : String | ConsoleUncontrolledFormatString.cs:8:13:8:18 | access to local variable format : String | provenance | Src:MaD:1 | -| UncontrolledFormatString.cs:9:16:9:19 | access to local variable path : String | UncontrolledFormatString.cs:12:23:12:26 | access to local variable path | provenance | | -| UncontrolledFormatString.cs:9:16:9:19 | access to local variable path : String | UncontrolledFormatString.cs:15:46:15:49 | access to local variable path | provenance | | -| UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:9:16:9:19 | access to local variable path : String | provenance | | -| UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:9:23:9:53 | access to indexer : String | provenance | MaD:2 | -| UncontrolledFormatString.cs:9:23:9:53 | access to indexer : String | UncontrolledFormatString.cs:9:16:9:19 | access to local variable path : String | provenance | | +| UncontrolledFormatString.cs:10:16:10:19 | access to local variable path : String | UncontrolledFormatString.cs:13:23:13:26 | access to local variable path | provenance | | +| UncontrolledFormatString.cs:10:16:10:19 | access to local variable path : String | UncontrolledFormatString.cs:16:46:16:49 | access to local variable path | provenance | | +| UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:10:16:10:19 | access to local variable path : String | provenance | | +| UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:10:23:10:53 | access to indexer : String | provenance | MaD:2 | +| UncontrolledFormatString.cs:10:23:10:53 | access to indexer : String | UncontrolledFormatString.cs:10:16:10:19 | access to local variable path : String | provenance | | | UncontrolledFormatStringBad.cs:9:16:9:21 | access to local variable format : String | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | provenance | | | UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString : NameValueCollection | UncontrolledFormatStringBad.cs:9:16:9:21 | access to local variable format : String | provenance | | | UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString : NameValueCollection | UncontrolledFormatStringBad.cs:9:25:9:61 | access to indexer : String | provenance | MaD:2 | @@ -23,14 +23,16 @@ nodes | ConsoleUncontrolledFormatString.cs:8:13:8:18 | access to local variable format : String | semmle.label | access to local variable format : String | | ConsoleUncontrolledFormatString.cs:8:22:8:39 | call to method ReadLine : String | semmle.label | call to method ReadLine : String | | ConsoleUncontrolledFormatString.cs:11:31:11:36 | access to local variable format | semmle.label | access to local variable format | -| UncontrolledFormatString.cs:9:16:9:19 | access to local variable path : String | semmle.label | access to local variable path : String | -| UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | -| UncontrolledFormatString.cs:9:23:9:53 | access to indexer : String | semmle.label | access to indexer : String | -| UncontrolledFormatString.cs:12:23:12:26 | access to local variable path | semmle.label | access to local variable path | -| UncontrolledFormatString.cs:15:46:15:49 | access to local variable path | semmle.label | access to local variable path | -| UncontrolledFormatString.cs:32:23:32:31 | access to property Text | semmle.label | access to property Text | +| UncontrolledFormatString.cs:10:16:10:19 | access to local variable path : String | semmle.label | access to local variable path : String | +| UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | +| UncontrolledFormatString.cs:10:23:10:53 | access to indexer : String | semmle.label | access to indexer : String | +| UncontrolledFormatString.cs:13:23:13:26 | access to local variable path | semmle.label | access to local variable path | +| UncontrolledFormatString.cs:16:46:16:49 | access to local variable path | semmle.label | access to local variable path | +| UncontrolledFormatString.cs:36:23:36:31 | access to property Text | semmle.label | access to property Text | | UncontrolledFormatStringBad.cs:9:16:9:21 | access to local variable format : String | semmle.label | access to local variable format : String | | UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | UncontrolledFormatStringBad.cs:9:25:9:61 | access to indexer : String | semmle.label | access to indexer : String | | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | semmle.label | access to local variable format | subpaths +testFailures +| UncontrolledFormatString.cs:28:38:28:47 | // ... | Missing result: Alert | From 133e8d48977f189e31e11ef14a398988fc001775 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 10 Apr 2025 14:19:19 +0200 Subject: [PATCH 327/656] C#: Include CompositeFormat.Parse as Format like method. --- .../semmle/code/csharp/frameworks/Format.qll | 28 +++++++++++++++++++ csharp/ql/src/API Abuse/FormatInvalid.ql | 16 ----------- .../CWE-134/UncontrolledFormatString.ql | 2 +- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll index cf61a5d75aa..f2fd292693d 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll @@ -289,3 +289,31 @@ class FormatCall extends MethodCall { result = this.getArgument(this.getFirstArgument() + index) } } + +/** + * A method call to a method that parses a format string, for example a call + * to `string.Format()`. + */ +abstract private class FormatStringParseCallImpl extends MethodCall { + /** + * Gets the expression used as the format string. + */ + abstract Expr getFormatExpr(); +} + +final class FormatStringParseCall = FormatStringParseCallImpl; + +private class OrdinaryFormatCall extends FormatStringParseCallImpl instanceof FormatCall { + override Expr getFormatExpr() { result = FormatCall.super.getFormatExpr() } +} + +/** + * A method call to `System.Text.CompositeFormat.Parse`. + */ +class ParseFormatStringCall extends FormatStringParseCallImpl { + ParseFormatStringCall() { + this.getTarget() = any(SystemTextCompositeFormatClass x).getParseMethod() + } + + override Expr getFormatExpr() { result = this.getArgument(0) } +} diff --git a/csharp/ql/src/API Abuse/FormatInvalid.ql b/csharp/ql/src/API Abuse/FormatInvalid.ql index 056730a577d..2bcd15612ee 100644 --- a/csharp/ql/src/API Abuse/FormatInvalid.ql +++ b/csharp/ql/src/API Abuse/FormatInvalid.ql @@ -16,22 +16,6 @@ import semmle.code.csharp.frameworks.system.Text import semmle.code.csharp.frameworks.Format import FormatFlow::PathGraph -abstract class FormatStringParseCall extends MethodCall { - abstract Expr getFormatExpr(); -} - -class OrdinaryFormatCall extends FormatStringParseCall instanceof FormatCall { - override Expr getFormatExpr() { result = FormatCall.super.getFormatExpr() } -} - -class ParseFormatStringCall extends FormatStringParseCall { - ParseFormatStringCall() { - this.getTarget() = any(SystemTextCompositeFormatClass x).getParseMethod() - } - - override Expr getFormatExpr() { result = this.getArgument(0) } -} - module FormatInvalidConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node n) { n.asExpr() instanceof StringLiteral } diff --git a/csharp/ql/src/Security Features/CWE-134/UncontrolledFormatString.ql b/csharp/ql/src/Security Features/CWE-134/UncontrolledFormatString.ql index a027170dc37..b99839226c5 100644 --- a/csharp/ql/src/Security Features/CWE-134/UncontrolledFormatString.ql +++ b/csharp/ql/src/Security Features/CWE-134/UncontrolledFormatString.ql @@ -20,7 +20,7 @@ module FormatStringConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof ActiveThreatModelSource } predicate isSink(DataFlow::Node sink) { - sink.asExpr() = any(FormatCall call | call.hasInsertions()).getFormatExpr() + sink.asExpr() = any(FormatStringParseCall call).getFormatExpr() } } From c96003f2651de5a192ea4b783cda0486e868ddb1 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 10 Apr 2025 14:20:24 +0200 Subject: [PATCH 328/656] C#: Update test expected output. --- .../CWE-134/UncontrolledFormatString.expected | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected index 63c093f5c34..fa6aa70abf7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected @@ -2,6 +2,7 @@ | ConsoleUncontrolledFormatString.cs:11:31:11:36 | access to local variable format | ConsoleUncontrolledFormatString.cs:8:22:8:39 | call to method ReadLine : String | ConsoleUncontrolledFormatString.cs:11:31:11:36 | access to local variable format | This format string depends on $@. | ConsoleUncontrolledFormatString.cs:8:22:8:39 | call to method ReadLine | thisread from stdin | | UncontrolledFormatString.cs:13:23:13:26 | access to local variable path | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:13:23:13:26 | access to local variable path | This format string depends on $@. | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString | thisASP.NET query string | | UncontrolledFormatString.cs:16:46:16:49 | access to local variable path | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:16:46:16:49 | access to local variable path | This format string depends on $@. | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString | thisASP.NET query string | +| UncontrolledFormatString.cs:28:31:28:34 | access to local variable path | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:28:31:28:34 | access to local variable path | This format string depends on $@. | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString | thisASP.NET query string | | UncontrolledFormatString.cs:36:23:36:31 | access to property Text | UncontrolledFormatString.cs:36:23:36:31 | access to property Text | UncontrolledFormatString.cs:36:23:36:31 | access to property Text | This format string depends on $@. | UncontrolledFormatString.cs:36:23:36:31 | access to property Text | thisTextBox text | | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString : NameValueCollection | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | This format string depends on $@. | UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString | thisASP.NET query string | edges @@ -9,6 +10,7 @@ edges | ConsoleUncontrolledFormatString.cs:8:22:8:39 | call to method ReadLine : String | ConsoleUncontrolledFormatString.cs:8:13:8:18 | access to local variable format : String | provenance | Src:MaD:1 | | UncontrolledFormatString.cs:10:16:10:19 | access to local variable path : String | UncontrolledFormatString.cs:13:23:13:26 | access to local variable path | provenance | | | UncontrolledFormatString.cs:10:16:10:19 | access to local variable path : String | UncontrolledFormatString.cs:16:46:16:49 | access to local variable path | provenance | | +| UncontrolledFormatString.cs:10:16:10:19 | access to local variable path : String | UncontrolledFormatString.cs:28:31:28:34 | access to local variable path | provenance | | | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:10:16:10:19 | access to local variable path : String | provenance | | | UncontrolledFormatString.cs:10:23:10:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:10:23:10:53 | access to indexer : String | provenance | MaD:2 | | UncontrolledFormatString.cs:10:23:10:53 | access to indexer : String | UncontrolledFormatString.cs:10:16:10:19 | access to local variable path : String | provenance | | @@ -28,11 +30,10 @@ nodes | UncontrolledFormatString.cs:10:23:10:53 | access to indexer : String | semmle.label | access to indexer : String | | UncontrolledFormatString.cs:13:23:13:26 | access to local variable path | semmle.label | access to local variable path | | UncontrolledFormatString.cs:16:46:16:49 | access to local variable path | semmle.label | access to local variable path | +| UncontrolledFormatString.cs:28:31:28:34 | access to local variable path | semmle.label | access to local variable path | | UncontrolledFormatString.cs:36:23:36:31 | access to property Text | semmle.label | access to property Text | | UncontrolledFormatStringBad.cs:9:16:9:21 | access to local variable format : String | semmle.label | access to local variable format : String | | UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | UncontrolledFormatStringBad.cs:9:25:9:61 | access to indexer : String | semmle.label | access to indexer : String | | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | semmle.label | access to local variable format | subpaths -testFailures -| UncontrolledFormatString.cs:28:38:28:47 | // ... | Missing result: Alert | From 6cc3c820b4b11be9e53ceda731bb189b82e5a94f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 10 Apr 2025 14:25:56 +0200 Subject: [PATCH 329/656] C#: Add change note. --- .../src/change-notes/2025-04-10-uncontrolled-format-string.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/src/change-notes/2025-04-10-uncontrolled-format-string.md diff --git a/csharp/ql/src/change-notes/2025-04-10-uncontrolled-format-string.md b/csharp/ql/src/change-notes/2025-04-10-uncontrolled-format-string.md new file mode 100644 index 00000000000..184f84b5176 --- /dev/null +++ b/csharp/ql/src/change-notes/2025-04-10-uncontrolled-format-string.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The precision of the query `cs/uncontrolled-format-string` has been improved. Calls to `System.Text.CompositeFormat.Parse` are now considered a format like method call. From a7ddfe2e89548584f678559129fc564d8e49d3b9 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 12 May 2025 16:06:02 +0200 Subject: [PATCH 330/656] C#: Address review comments. --- .../semmle/code/csharp/frameworks/Format.qll | 34 ++++++++----------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll index f2fd292693d..b00459c64b0 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/Format.qll @@ -233,15 +233,28 @@ class InvalidFormatString extends StringLiteral { } } +/** + * A method call to a method that parses a format string, for example a call + * to `string.Format()`. + */ +abstract private class FormatStringParseCallImpl extends MethodCall { + /** + * Gets the expression used as the format string. + */ + abstract Expr getFormatExpr(); +} + +final class FormatStringParseCall = FormatStringParseCallImpl; + /** * A method call to a method that formats a string, for example a call * to `string.Format()`. */ -class FormatCall extends MethodCall { +class FormatCall extends FormatStringParseCallImpl { FormatCall() { this.getTarget() instanceof FormatMethod } /** Gets the expression used as the format string. */ - Expr getFormatExpr() { result = this.getArgument(this.getFormatArgument()) } + override Expr getFormatExpr() { result = this.getArgument(this.getFormatArgument()) } /** Gets the argument number containing the format string. */ int getFormatArgument() { result = this.getTarget().(FormatMethod).getFormatArgument() } @@ -290,23 +303,6 @@ class FormatCall extends MethodCall { } } -/** - * A method call to a method that parses a format string, for example a call - * to `string.Format()`. - */ -abstract private class FormatStringParseCallImpl extends MethodCall { - /** - * Gets the expression used as the format string. - */ - abstract Expr getFormatExpr(); -} - -final class FormatStringParseCall = FormatStringParseCallImpl; - -private class OrdinaryFormatCall extends FormatStringParseCallImpl instanceof FormatCall { - override Expr getFormatExpr() { result = FormatCall.super.getFormatExpr() } -} - /** * A method call to `System.Text.CompositeFormat.Parse`. */ From 08fcf6114fcae46e1044f614b61370f263a5f43f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 16:01:52 +0100 Subject: [PATCH 331/656] Apply suggestions from code review Co-authored-by: Simon Friis Vindum --- .../ql/test/library-tests/dataflow/sources/web_frameworks.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs index e3ab61274d2..ec742c71459 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs @@ -1,4 +1,3 @@ -#![allow(deprecated)] fn sink(_: T) { } @@ -7,7 +6,7 @@ fn sink(_: T) { } mod poem_test { use poem::{get, handler, web::Path, web::Query, Route, Server, listener::TcpListener}; use serde::Deserialize; - use crate::web_frameworks::sink; + use super::sink; #[handler] fn my_poem_handler_1(Path(a): Path) -> String { // $ Alert[rust/summary/taint-sources] @@ -74,7 +73,7 @@ mod poem_test { .at("/5/:a/:b", get(my_poem_handler_5)) .at("/6/:a/", get(my_poem_handler_6)); - _ = Server::new(TcpListener::bind("0.0.0.0:3000")).run(app).await.unwrap(); + Server::new(TcpListener::bind("0.0.0.0:3000")).run(app).await.unwrap(); // ... } From bf8cdffffad96160043d9c3f67fd22070d31391c Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 16:06:33 +0100 Subject: [PATCH 332/656] Update rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs Co-authored-by: Simon Friis Vindum --- rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs index ec742c71459..2e4ac22257f 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs @@ -80,7 +80,7 @@ mod poem_test { } mod actix_test { - use actix_web::{get, web, App, HttpServer}; + use actix_web::{get, web, App}; use crate::web_frameworks::sink; async fn my_actix_handler_1(path: web::Path) -> String { // $ MISSING: Alert[rust/summary/taint-sources] From 402a84f755082a046259d9d852999c3abd3e2c88 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 16:17:26 +0100 Subject: [PATCH 333/656] Update rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs Co-authored-by: Simon Friis Vindum --- rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs index 2e4ac22257f..a6949c569c0 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs @@ -81,7 +81,7 @@ mod poem_test { mod actix_test { use actix_web::{get, web, App}; - use crate::web_frameworks::sink; + use super::sink; async fn my_actix_handler_1(path: web::Path) -> String { // $ MISSING: Alert[rust/summary/taint-sources] let a = path.into_inner(); From 7c98fa87dae9c004ac32cca0c14b5669d9fe28cc Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 16:18:16 +0100 Subject: [PATCH 334/656] Rust: One more bit of cleanup. --- .../dataflow/sources/TaintSources.expected | 10 +++++----- .../library-tests/dataflow/sources/web_frameworks.rs | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index 7a5fd2d000f..11d0df45d59 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -47,8 +47,8 @@ | test.rs:369:25:369:43 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:377:22:377:35 | ...::stdin | Flow source 'StdInSource' of type stdin (DEFAULT). | | test.rs:386:16:386:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | -| web_frameworks.rs:13:31:13:31 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | -| web_frameworks.rs:22:31:22:36 | TuplePat | Flow source 'RemoteSource' of type remote (DEFAULT). | -| web_frameworks.rs:44:31:44:45 | MyStruct {...} | Flow source 'RemoteSource' of type remote (DEFAULT). | -| web_frameworks.rs:52:31:52:32 | ms | Flow source 'RemoteSource' of type remote (DEFAULT). | -| web_frameworks.rs:61:15:61:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:12:31:12:31 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:21:31:21:36 | TuplePat | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:43:31:43:45 | MyStruct {...} | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:51:31:51:32 | ms | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:60:15:60:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs index a6949c569c0..6bfee08a3d2 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs @@ -131,7 +131,7 @@ mod axum_test { use axum::routing::get; use axum::extract::{Path, Query, Request, Json}; use std::collections::HashMap; - use crate::web_frameworks::sink; + use super::sink; async fn my_axum_handler_1(Path(a): Path) -> &'static str { // $ MISSING: Alert[rust/summary/taint-sources] sink(a.as_str()); // $ MISSING: hasTaintFlow From 9160036e416a82158d88e5ae10bbd04077965efd Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 16:45:41 +0100 Subject: [PATCH 335/656] Rust: Rename OperationImpl -> Impl. --- rust/ql/lib/codeql/rust/elements/Operation.qll | 2 +- rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/Operation.qll b/rust/ql/lib/codeql/rust/elements/Operation.qll index b3615bddb33..dad24e980ed 100644 --- a/rust/ql/lib/codeql/rust/elements/Operation.qll +++ b/rust/ql/lib/codeql/rust/elements/Operation.qll @@ -2,7 +2,7 @@ * Provides classes for operations. */ -import internal.OperationImpl +import internal.OperationImpl::Impl as OperationImpl private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl final class Operation = OperationImpl::Operation; diff --git a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll index 7b2d1a9d62e..deffd72086d 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll @@ -11,7 +11,7 @@ private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl * INTERNAL: This module contains the customizable definition of `Operation` and should not * be referenced directly. */ -module OperationImpl { +module Impl { /** * An operation, for example `&&`, `+=`, `!` or `*`. */ From a2944cdb61c6af07b7ccd57745c6211648b08d10 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 16:48:06 +0100 Subject: [PATCH 336/656] Rust: Make usage of Impl more consistent with other Impl modules. --- rust/ql/lib/codeql/rust/elements/Operation.qll | 4 ++-- rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll | 2 +- rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/Operation.qll b/rust/ql/lib/codeql/rust/elements/Operation.qll index dad24e980ed..035e4ce81f2 100644 --- a/rust/ql/lib/codeql/rust/elements/Operation.qll +++ b/rust/ql/lib/codeql/rust/elements/Operation.qll @@ -2,7 +2,7 @@ * Provides classes for operations. */ -import internal.OperationImpl::Impl as OperationImpl +private import internal.OperationImpl private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl -final class Operation = OperationImpl::Operation; +final class Operation = Impl::Operation; diff --git a/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll index 42ac0521db3..966d6493637 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/BinaryExprImpl.qll @@ -5,7 +5,7 @@ */ private import codeql.rust.elements.internal.generated.BinaryExpr -private import codeql.rust.elements.Operation::OperationImpl as OperationImpl +private import codeql.rust.elements.internal.OperationImpl::Impl as OperationImpl /** * INTERNAL: This module contains the customizable definition of `BinaryExpr` and should not diff --git a/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll index 56cc43babd0..75e2969fabc 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/PrefixExprImpl.qll @@ -5,7 +5,7 @@ */ private import codeql.rust.elements.internal.generated.PrefixExpr -private import codeql.rust.elements.Operation::OperationImpl as OperationImpl +private import codeql.rust.elements.internal.OperationImpl::Impl as OperationImpl /** * INTERNAL: This module contains the customizable definition of `PrefixExpr` and should not From f04d6fd8c827d585dfc4e543193e86b6240bb635 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 12 May 2025 17:45:00 +0100 Subject: [PATCH 337/656] Rust: Accept minor test changes for the cleartext logging query. --- .../security/CWE-312/CleartextLogging.expected | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected index 19efc0e1971..dc304a699e5 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected @@ -28,8 +28,8 @@ | test_logging.rs:100:5:100:19 | ...::log | test_logging.rs:99:38:99:45 | password | test_logging.rs:100:5:100:19 | ...::log | This operation writes $@ to a log file. | test_logging.rs:99:38:99:45 | password | password | | test_logging.rs:118:5:118:42 | ...::log | test_logging.rs:118:28:118:41 | get_password(...) | test_logging.rs:118:5:118:42 | ...::log | This operation writes $@ to a log file. | test_logging.rs:118:28:118:41 | get_password(...) | get_password(...) | | test_logging.rs:131:5:131:32 | ...::log | test_logging.rs:129:25:129:32 | password | test_logging.rs:131:5:131:32 | ...::log | This operation writes $@ to a log file. | test_logging.rs:129:25:129:32 | password | password | -| test_logging.rs:138:5:138:38 | ...::log | test_logging.rs:138:11:138:37 | MacroExpr | test_logging.rs:138:5:138:38 | ...::log | This operation writes $@ to a log file. | test_logging.rs:138:11:138:37 | MacroExpr | MacroExpr | -| test_logging.rs:145:5:145:38 | ...::log | test_logging.rs:145:11:145:37 | MacroExpr | test_logging.rs:145:5:145:38 | ...::log | This operation writes $@ to a log file. | test_logging.rs:145:11:145:37 | MacroExpr | MacroExpr | +| test_logging.rs:138:5:138:38 | ...::log | test_logging.rs:138:27:138:37 | s1.password | test_logging.rs:138:5:138:38 | ...::log | This operation writes $@ to a log file. | test_logging.rs:138:27:138:37 | s1.password | s1.password | +| test_logging.rs:145:5:145:38 | ...::log | test_logging.rs:145:27:145:37 | s2.password | test_logging.rs:145:5:145:38 | ...::log | This operation writes $@ to a log file. | test_logging.rs:145:27:145:37 | s2.password | s2.password | | test_logging.rs:152:5:152:38 | ...::_print | test_logging.rs:152:30:152:37 | password | test_logging.rs:152:5:152:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:152:30:152:37 | password | password | | test_logging.rs:153:5:153:38 | ...::_print | test_logging.rs:153:30:153:37 | password | test_logging.rs:153:5:153:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:153:30:153:37 | password | password | | test_logging.rs:154:5:154:39 | ...::_eprint | test_logging.rs:154:31:154:38 | password | test_logging.rs:154:5:154:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:154:31:154:38 | password | password | @@ -151,7 +151,9 @@ edges | test_logging.rs:131:28:131:29 | t1 [tuple.1] | test_logging.rs:131:28:131:31 | t1.1 | provenance | | | test_logging.rs:131:28:131:31 | t1.1 | test_logging.rs:131:12:131:31 | MacroExpr | provenance | | | test_logging.rs:138:11:138:37 | MacroExpr | test_logging.rs:138:5:138:38 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:138:27:138:37 | s1.password | test_logging.rs:138:11:138:37 | MacroExpr | provenance | | | test_logging.rs:145:11:145:37 | MacroExpr | test_logging.rs:145:5:145:38 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:145:27:145:37 | s2.password | test_logging.rs:145:11:145:37 | MacroExpr | provenance | | | test_logging.rs:152:12:152:37 | MacroExpr | test_logging.rs:152:5:152:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | | test_logging.rs:152:30:152:37 | password | test_logging.rs:152:12:152:37 | MacroExpr | provenance | | | test_logging.rs:153:14:153:37 | MacroExpr | test_logging.rs:153:5:153:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | @@ -358,8 +360,10 @@ nodes | test_logging.rs:131:28:131:31 | t1.1 | semmle.label | t1.1 | | test_logging.rs:138:5:138:38 | ...::log | semmle.label | ...::log | | test_logging.rs:138:11:138:37 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:138:27:138:37 | s1.password | semmle.label | s1.password | | test_logging.rs:145:5:145:38 | ...::log | semmle.label | ...::log | | test_logging.rs:145:11:145:37 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:145:27:145:37 | s2.password | semmle.label | s2.password | | test_logging.rs:152:5:152:38 | ...::_print | semmle.label | ...::_print | | test_logging.rs:152:12:152:37 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:152:30:152:37 | password | semmle.label | password | From cd01bd0e0747584f1074f55e94dbdbf2ffe76998 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 12 May 2025 20:19:47 +0200 Subject: [PATCH 338/656] Rust: Add `LiteralExpr` sub classes --- .../codeql/rust/elements/LiteralExprExt.qll | 15 ++ .../elements/internal/LiteralExprImpl.qll | 187 ++++++++++++++++++ rust/ql/lib/rust.qll | 1 + .../extractor-tests/literal/literal.expected | 42 ++++ .../test/extractor-tests/literal/literal.ql | 13 ++ .../test/extractor-tests/literal/literal.rs | 65 ++++++ 6 files changed, 323 insertions(+) create mode 100644 rust/ql/lib/codeql/rust/elements/LiteralExprExt.qll create mode 100644 rust/ql/test/extractor-tests/literal/literal.expected create mode 100644 rust/ql/test/extractor-tests/literal/literal.ql create mode 100644 rust/ql/test/extractor-tests/literal/literal.rs diff --git a/rust/ql/lib/codeql/rust/elements/LiteralExprExt.qll b/rust/ql/lib/codeql/rust/elements/LiteralExprExt.qll new file mode 100644 index 00000000000..e86d45c7112 --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/LiteralExprExt.qll @@ -0,0 +1,15 @@ +/** Provides sub classes of literal expressions. */ + +private import internal.LiteralExprImpl + +final class CharLiteralExpr = Impl::CharLiteralExpr; + +final class StringLiteralExpr = Impl::StringLiteralExpr; + +final class NumberLiteralExpr = Impl::NumberLiteralExpr; + +final class IntegerLiteralExpr = Impl::IntegerLiteralExpr; + +final class FloatLiteralExpr = Impl::FloatLiteralExpr; + +final class BooleanLiteralExpr = Impl::BooleanLiteralExpr; diff --git a/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll index 6a8d02d9380..c424ff5471d 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll @@ -42,4 +42,191 @@ module Impl { ) } } + + /** + * A [character literal][1]. For example: + * + * ```rust + * 'x'; + * ``` + * + * [1]: https://doc.rust-lang.org/reference/tokens.html#character-literals + */ + class CharLiteralExpr extends LiteralExpr { + CharLiteralExpr() { + // todo: proper implementation + this.getTextValue().regexpMatch("'.*'") + } + + override string getAPrimaryQlClass() { result = "CharLiteralExpr" } + } + + /** + * A [string literal][1]. For example: + * + * ```rust + * "Hello, world!"; + * ``` + * + * [1]: https://doc.rust-lang.org/reference/tokens.html#string-literals + */ + class StringLiteralExpr extends LiteralExpr { + StringLiteralExpr() { + // todo: proper implementation + this.getTextValue().regexpMatch("r?#*\".*\"#*") + } + + override string getAPrimaryQlClass() { result = "StringLiteralExpr" } + } + + /** + * A number literal. + */ + abstract class NumberLiteralExpr extends LiteralExpr { } + + // https://doc.rust-lang.org/reference/tokens.html#integer-literals + private module IntegerLiteralRegexs { + bindingset[s] + string paren(string s) { result = "(" + s + ")" } + + string integerLiteral() { + result = + paren(paren(decLiteral()) + "|" + paren(binLiteral()) + "|" + paren(octLiteral()) + "|" + + paren(hexLiteral())) + paren(suffix()) + "?" + } + + private string suffix() { result = "u8|i8|u16|i16|u32|i32|u64|i64|u128|i128|usize|isize" } + + string decLiteral() { result = decDigit() + "(" + decDigit() + "|_)*" } + + string binLiteral() { + result = "0b(" + binDigit() + "|_)*" + binDigit() + "(" + binDigit() + "|_)*" + } + + string octLiteral() { + result = "0o(" + octDigit() + "|_)*" + octDigit() + "(" + octDigit() + "|_)*" + } + + string hexLiteral() { + result = "0x(" + hexDigit() + "|_)*" + hexDigit() + "(" + hexDigit() + "|_)*" + } + + string decDigit() { result = "[0-9]" } + + string binDigit() { result = "[01]" } + + string octDigit() { result = "[0-7]" } + + string hexDigit() { result = "[0-9a-fA-F]" } + } + + /** + * An [integer literal][1]. For example: + * + * ```rust + * 42; + * ``` + * + * [1]: https://doc.rust-lang.org/reference/tokens.html#integer-literals + */ + class IntegerLiteralExpr extends NumberLiteralExpr { + IntegerLiteralExpr() { this.getTextValue().regexpMatch(IntegerLiteralRegexs::integerLiteral()) } + + /** + * Get the suffix of this integer literal, if any. + * + * For example, `42u8` has the suffix `u8`. + */ + string getSuffix() { + exists(string s, string reg, int last | + s = this.getTextValue() and + reg = IntegerLiteralRegexs::integerLiteral() and + last = strictcount(reg.indexOf("(")) and + result = s.regexpCapture(reg, last) + ) + } + + override string getAPrimaryQlClass() { result = "IntegerLiteralExpr" } + } + + // https://doc.rust-lang.org/reference/tokens.html#floating-point-literals + private module FloatLiteralRegexs { + private import IntegerLiteralRegexs + + string floatLiteral() { + result = + paren(decLiteral() + "\\.") + "|" + paren(floatLiteralSuffix1()) + "|" + + paren(floatLiteralSuffix2()) + } + + string floatLiteralSuffix1() { + result = decLiteral() + "\\." + decLiteral() + paren(suffix()) + "?" + } + + string floatLiteralSuffix2() { + result = + decLiteral() + paren("\\." + decLiteral()) + "?" + paren(exponent()) + paren(suffix()) + "?" + } + + string integerSuffixLiteral() { + result = + paren(paren(decLiteral()) + "|" + paren(binLiteral()) + "|" + paren(octLiteral()) + "|" + + paren(hexLiteral())) + paren(suffix()) + } + + private string suffix() { result = "f32|f64" } + + string exponent() { + result = "(e|E)(\\+|-)?(" + decDigit() + "|_)*" + decDigit() + "(" + decDigit() + "|_)*" + } + } + + /** + * A [floating-point literal][1]. For example: + * + * ```rust + * 42.0; + * ``` + * + * [1]: https://doc.rust-lang.org/reference/tokens.html#floating-point-literals + */ + class FloatLiteralExpr extends NumberLiteralExpr { + FloatLiteralExpr() { + this.getTextValue() + .regexpMatch([ + FloatLiteralRegexs::floatLiteral(), FloatLiteralRegexs::integerSuffixLiteral() + ]) and + // E.g. `0x01_f32` is an integer, not a float + not this instanceof IntegerLiteralExpr + } + + /** + * Get the suffix of this floating-point literal, if any. + * + * For example, `42.0f32` has the suffix `f32`. + */ + string getSuffix() { + exists(string s, string reg, int last | + s = this.getTextValue() and + reg = + [ + FloatLiteralRegexs::floatLiteralSuffix1(), FloatLiteralRegexs::floatLiteralSuffix2(), + FloatLiteralRegexs::integerSuffixLiteral() + ] and + last = strictcount(reg.indexOf("(")) and + result = s.regexpCapture(reg, last) + ) + } + + override string getAPrimaryQlClass() { result = "FloatLiteralExpr" } + } + + /** + * A Boolean literal. Either `true` or `false`. + */ + class BooleanLiteralExpr extends LiteralExpr { + BooleanLiteralExpr() { this.getTextValue() = ["false", "true"] } + + override string getAPrimaryQlClass() { result = "BooleanLiteralExpr" } + } } diff --git a/rust/ql/lib/rust.qll b/rust/ql/lib/rust.qll index ff97a37b5d1..b64f37533aa 100644 --- a/rust/ql/lib/rust.qll +++ b/rust/ql/lib/rust.qll @@ -4,6 +4,7 @@ import codeql.rust.elements import codeql.Locations import codeql.files.FileSystem import codeql.rust.elements.AssignmentOperation +import codeql.rust.elements.LiteralExprExt import codeql.rust.elements.LogicalOperation import codeql.rust.elements.AsyncBlockExpr import codeql.rust.elements.Variable diff --git a/rust/ql/test/extractor-tests/literal/literal.expected b/rust/ql/test/extractor-tests/literal/literal.expected new file mode 100644 index 00000000000..55d1ac11013 --- /dev/null +++ b/rust/ql/test/extractor-tests/literal/literal.expected @@ -0,0 +1,42 @@ +charLiteral +| literal.rs:2:5:2:7 | 'a' | +| literal.rs:3:5:3:7 | 'b' | +stringLiteral +| literal.rs:8:5:8:9 | "foo" | +| literal.rs:9:5:9:10 | r"foo" | +| literal.rs:10:5:10:13 | "\\"foo\\"" | +| literal.rs:11:5:11:14 | r#""foo""# | +| literal.rs:13:5:13:18 | "foo #\\"# bar" | +| literal.rs:14:5:14:22 | r##"foo #"# bar"## | +| literal.rs:16:5:16:10 | "\\x52" | +| literal.rs:17:5:17:7 | "R" | +| literal.rs:18:5:18:8 | r"R" | +| literal.rs:19:5:19:11 | "\\\\x52" | +| literal.rs:20:5:20:11 | r"\\x52" | +integerLiteral +| literal.rs:25:5:25:7 | 123 | | +| literal.rs:26:5:26:10 | 123i32 | i32 | +| literal.rs:27:5:27:10 | 123u32 | u32 | +| literal.rs:28:5:28:11 | 123_u32 | u32 | +| literal.rs:30:5:30:8 | 0xff | | +| literal.rs:31:5:31:11 | 0xff_u8 | u8 | +| literal.rs:32:5:32:12 | 0x01_f32 | | +| literal.rs:33:5:33:11 | 0x01_e3 | | +| literal.rs:35:5:35:8 | 0o70 | | +| literal.rs:36:5:36:12 | 0o70_i16 | i16 | +| literal.rs:38:5:38:25 | 0b1111_1111_1001_0000 | | +| literal.rs:39:5:39:28 | 0b1111_1111_1001_0000i64 | i64 | +| literal.rs:40:5:40:15 | 0b________1 | | +| literal.rs:42:5:42:10 | 0usize | usize | +| literal.rs:45:5:46:10 | 128_i8 | i8 | +| literal.rs:47:5:48:10 | 256_u8 | u8 | +floatLiteral +| literal.rs:53:5:53:8 | 5f32 | f32 | +| literal.rs:55:5:55:12 | 123.0f64 | f64 | +| literal.rs:56:5:56:10 | 0.1f64 | f64 | +| literal.rs:57:5:57:10 | 0.1f32 | f32 | +| literal.rs:58:5:58:14 | 12E+99_f64 | f64 | +| literal.rs:59:18:59:19 | 2. | | +booleanLiteral +| literal.rs:63:5:63:8 | true | +| literal.rs:64:5:64:9 | false | diff --git a/rust/ql/test/extractor-tests/literal/literal.ql b/rust/ql/test/extractor-tests/literal/literal.ql new file mode 100644 index 00000000000..3585ad2f5b9 --- /dev/null +++ b/rust/ql/test/extractor-tests/literal/literal.ql @@ -0,0 +1,13 @@ +import rust + +query predicate charLiteral(CharLiteralExpr e) { any() } + +query predicate stringLiteral(StringLiteralExpr e) { any() } + +query predicate integerLiteral(IntegerLiteralExpr e, string suffix) { + suffix = concat(e.getSuffix()) +} + +query predicate floatLiteral(FloatLiteralExpr e, string suffix) { suffix = concat(e.getSuffix()) } + +query predicate booleanLiteral(BooleanLiteralExpr e) { any() } diff --git a/rust/ql/test/extractor-tests/literal/literal.rs b/rust/ql/test/extractor-tests/literal/literal.rs new file mode 100644 index 00000000000..74503f2a24e --- /dev/null +++ b/rust/ql/test/extractor-tests/literal/literal.rs @@ -0,0 +1,65 @@ +fn char_literals() { + 'a'; + 'b'; +} + +fn string_literals() { + // from https://doc.rust-lang.org/reference/tokens.html#string-literals + "foo"; + r"foo"; // foo + "\"foo\""; + r#""foo""#; // "foo" + + "foo #\"# bar"; + r##"foo #"# bar"##; // foo #"# bar + + "\x52"; + "R"; + r"R"; // R + "\\x52"; + r"\x52"; // \x52 +} + +fn integer_literals() { + // from https://doc.rust-lang.org/reference/tokens.html#integer-literals + 123; + 123i32; + 123u32; + 123_u32; + + 0xff; + 0xff_u8; + 0x01_f32; // integer 7986, not floating-point 1.0 + 0x01_e3; // integer 483, not floating-point 1000.0 + + 0o70; + 0o70_i16; + + 0b1111_1111_1001_0000; + 0b1111_1111_1001_0000i64; + 0b________1; + + 0usize; + + // These are too big for their type, but are accepted as literal expressions. + #[allow(overflowing_literals)] + 128_i8; + #[allow(overflowing_literals)] + 256_u8; +} + +fn float_literals() { + // This is an integer literal, accepted as a floating-point literal expression. + 5f32; + + 123.0f64; + 0.1f64; + 0.1f32; + 12E+99_f64; + let x: f64 = 2.; +} + +fn boolean_literals() { + true; + false; +} From e51cb478af4f8a8bca580592a7fb800a87ee83c4 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 12 May 2025 19:43:19 +0100 Subject: [PATCH 339/656] C++: Expose 'MemoryLocation0'. --- .../cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll | 2 +- .../cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll index acb17006fef..b5937815dab 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll @@ -235,7 +235,7 @@ private newtype TMemoryLocation = * * Some of these memory locations will be filtered out for performance reasons before being passed to SSA construction. */ -abstract private class MemoryLocation0 extends TMemoryLocation { +abstract class MemoryLocation0 extends TMemoryLocation { final string toString() { if this.isMayAccess() then result = "?" + this.toStringInternal() diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll index 8bee2bf86a7..b3922bb2bd4 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll @@ -73,6 +73,8 @@ class MemoryLocation extends TMemoryLocation { final predicate canReuseSsa() { canReuseSsaForVariable(var) } } +class MemoryLocation0 = MemoryLocation; + predicate canReuseSsaForOldResult(Instruction instr) { none() } abstract class VariableGroup extends Unit { From f1b4e05579f3cc497058902839b773395844af7d Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 12 May 2025 19:45:19 +0100 Subject: [PATCH 340/656] C++: Expose 'isBusyDef'. --- .../ir/implementation/aliased_ssa/internal/AliasedSSA.qll | 2 +- .../ir/implementation/unaliased_ssa/internal/SimpleSSA.qll | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll index b5937815dab..522cd393081 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll @@ -874,7 +874,7 @@ private int numberOfOverlappingUses(MemoryLocation0 def) { * Holds if `def` is a busy definition. That is, it has a large number of * overlapping uses. */ -private predicate isBusyDef(MemoryLocation0 def) { numberOfOverlappingUses(def) > 1024 } +predicate isBusyDef(MemoryLocation0 def) { numberOfOverlappingUses(def) > 1024 } /** Holds if `use` is a use that overlaps with a busy definition. */ private predicate useOverlapWithBusyDef(MemoryLocation0 use) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll index b3922bb2bd4..39283d07b54 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll @@ -143,3 +143,9 @@ int getStartBitOffset(MemoryLocation location) { none() } /** Gets the end bit offset of a `MemoryLocation`, if any. */ int getEndBitOffset(MemoryLocation location) { none() } + +/** + * Holds if `def` is a busy definition. That is, it has a large number of + * overlapping uses. + */ +predicate isBusyDef(MemoryLocation def) { none() } From a50167812d046a3a7026c0aaddb9e927a32ec4ee Mon Sep 17 00:00:00 2001 From: yoff Date: Mon, 12 May 2025 20:53:04 +0200 Subject: [PATCH 341/656] ruby: adjust precision of `rb/useless-assignment-to-local` from `medium` to `high` --- .../query-suite/ruby-code-quality.qls.expected | 1 + ...25-05-12-rb-useless-assignment-to-local-precision-high.md | 5 +++++ ruby/ql/src/queries/variables/DeadStoreOfLocal.ql | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 ruby/ql/src/change-notes/2025-05-12-rb-useless-assignment-to-local-precision-high.md diff --git a/ruby/ql/integration-tests/query-suite/ruby-code-quality.qls.expected b/ruby/ql/integration-tests/query-suite/ruby-code-quality.qls.expected index db6b7590220..94b2f19caaa 100644 --- a/ruby/ql/integration-tests/query-suite/ruby-code-quality.qls.expected +++ b/ruby/ql/integration-tests/query-suite/ruby-code-quality.qls.expected @@ -1,2 +1,3 @@ ql/ruby/ql/src/queries/performance/DatabaseQueryInLoop.ql +ql/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql ql/ruby/ql/src/queries/variables/UninitializedLocal.ql diff --git a/ruby/ql/src/change-notes/2025-05-12-rb-useless-assignment-to-local-precision-high.md b/ruby/ql/src/change-notes/2025-05-12-rb-useless-assignment-to-local-precision-high.md new file mode 100644 index 00000000000..c62510ba5ba --- /dev/null +++ b/ruby/ql/src/change-notes/2025-05-12-rb-useless-assignment-to-local-precision-high.md @@ -0,0 +1,5 @@ +--- +category: queryMetadata +--- + +* The precision of `rb/useless-assignment-to-local` has been adjusted from `medium` to `high`. diff --git a/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql b/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql index a7b37515d7f..808ce42dd85 100644 --- a/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql +++ b/ruby/ql/src/queries/variables/DeadStoreOfLocal.ql @@ -8,7 +8,7 @@ * @tags maintainability * quality * external/cwe/cwe-563 - * @precision medium + * @precision high */ import codeql.ruby.AST From ffd6b2677c5a6af5af06da8eca02c3ac4371f6fb Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 12 May 2025 11:09:34 +0200 Subject: [PATCH 342/656] C#: Cleanup test options files. --- csharp/ql/test/experimental/CWE-918/options | 3 +-- .../CWE-1004/CookieHttpOnlyFalseSystemWeb/options | 1 - .../CookieWithoutHttpOnlySystemWeb/ConfigEmpty/options | 1 - .../CookieWithoutHttpOnlySystemWeb/ConfigFalse/options | 1 - .../CookieWithoutHttpOnlySystemWeb/HttpCookiesTrue/options | 1 - .../CWE-614/RequireSSLFalseSystemWeb/options | 1 - .../CWE-614/RequireSSLSystemWeb/ConfigEmpty/options | 1 - .../CWE-614/RequireSSLSystemWeb/ConfigFalse/options | 1 - .../CWE-614/RequireSSLSystemWeb/FormsTrue/options | 1 - .../CWE-614/RequireSSLSystemWeb/HttpCookiesTrue/options | 1 - .../ql/test/library-tests/dataflow/flowsources/remote/options | 4 ++-- csharp/ql/test/library-tests/dataflow/global/options | 3 +-- csharp/ql/test/query-tests/Security Features/CWE-020/options | 1 - .../query-tests/Security Features/CWE-022/TaintedPath/options | 1 - .../query-tests/Security Features/CWE-079/StoredXSS/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-090/options | 1 - .../Security Features/CWE-091/XMLInjection/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-094/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-099/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-112/options | 1 - .../Security Features/CWE-114/AssemblyPathInjection/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-117/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-134/options | 1 - .../CWE-201/ExposureInTransmittedData/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-209/options | 1 - .../MissingASPNETGlobalErrorHandler/WebConfigOff/options | 1 - .../WebConfigOffButGlobal/options | 1 - .../CWE-285/MissingAccessControl/WebFormsTests/options | 3 +-- csharp/ql/test/query-tests/Security Features/CWE-312/options | 1 - .../test/query-tests/Security Features/CWE-352/global/options | 1 - .../query-tests/Security Features/CWE-352/missing/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-359/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-384/options | 1 - .../CWE-451/MissingXFrameOptions/CodeAddedHeader/options | 1 - .../CWE-451/MissingXFrameOptions/NoHeader/options | 1 - .../CWE-451/MissingXFrameOptions/WebConfigAddedHeader/options | 1 - .../Security Features/CWE-502/UnsafeDeserialization/options | 1 - .../CWE-502/UnsafeDeserializationUntrustedInput/options | 1 - .../UnsafeDeserializationUntrustedInputNewtonsoftJson/options | 1 - .../Security Features/CWE-539/PersistentCookie/options | 1 - .../query-tests/Security Features/CWE-601/UrlRedirect/options | 1 - .../Security Features/CWE-614/RequireSSL/AddedInCode/options | 1 - .../Security Features/CWE-639/WebFormsTests/options | 3 +-- csharp/ql/test/query-tests/Security Features/CWE-643/options | 1 - .../test/query-tests/Security Features/CWE-730/ReDoS/options | 1 - .../Security Features/CWE-730/ReDoSGlobalTimeout/options | 1 - .../Security Features/CWE-730/RegexInjection/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-807/options | 1 - csharp/ql/test/query-tests/Security Features/CWE-838/options | 1 - .../test/query-tests/Telemetry/SupportedExternalApis/options | 1 - .../test/query-tests/Telemetry/SupportedExternalSinks/options | 1 - csharp/ql/test/utils/modelgenerator/dataflow/options | 3 +-- 52 files changed, 7 insertions(+), 58 deletions(-) diff --git a/csharp/ql/test/experimental/CWE-918/options b/csharp/ql/test/experimental/CWE-918/options index 914a0be40c9..f81b977ac98 100644 --- a/csharp/ql/test/experimental/CWE-918/options +++ b/csharp/ql/test/experimental/CWE-918/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj -semmle-extractor-options: ${testdir}/../../resources/stubs/System.Web.cs \ No newline at end of file +semmle-extractor-options: ${testdir}/../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseSystemWeb/options b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseSystemWeb/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseSystemWeb/options +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieHttpOnlyFalseSystemWeb/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigEmpty/options b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigEmpty/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigEmpty/options +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigEmpty/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigFalse/options b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigFalse/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigFalse/options +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/ConfigFalse/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/HttpCookiesTrue/options b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/HttpCookiesTrue/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/HttpCookiesTrue/options +++ b/csharp/ql/test/experimental/Security Features/CWE-1004/CookieWithoutHttpOnlySystemWeb/HttpCookiesTrue/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseSystemWeb/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseSystemWeb/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseSystemWeb/options +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLFalseSystemWeb/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigEmpty/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigEmpty/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigEmpty/options +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigEmpty/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigFalse/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigFalse/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigFalse/options +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/ConfigFalse/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/FormsTrue/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/FormsTrue/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/FormsTrue/options +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/FormsTrue/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/HttpCookiesTrue/options b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/HttpCookiesTrue/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/HttpCookiesTrue/options +++ b/csharp/ql/test/experimental/Security Features/CWE-614/RequireSSLSystemWeb/HttpCookiesTrue/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/library-tests/dataflow/flowsources/remote/options b/csharp/ql/test/library-tests/dataflow/flowsources/remote/options index 1fcc7e1cf48..63ce15b2b4f 100644 --- a/csharp/ql/test/library-tests/dataflow/flowsources/remote/options +++ b/csharp/ql/test/library-tests/dataflow/flowsources/remote/options @@ -1,4 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj -semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs \ No newline at end of file +semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs +semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.Http.cs diff --git a/csharp/ql/test/library-tests/dataflow/global/options b/csharp/ql/test/library-tests/dataflow/global/options index 8b0f1661e63..96b0b028bdd 100644 --- a/csharp/ql/test/library-tests/dataflow/global/options +++ b/csharp/ql/test/library-tests/dataflow/global/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj -semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs \ No newline at end of file +semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-020/options b/csharp/ql/test/query-tests/Security Features/CWE-020/options index 0ce0c6870b7..96b0b028bdd 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-020/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-020/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/options b/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/options b/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/options index ebbb0432489..c5b4a958655 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-090/options b/csharp/ql/test/query-tests/Security Features/CWE-090/options index ba17ecb5638..20a0480c8e2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-090/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-090/options @@ -1,5 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.DirectoryServices.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/options b/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-094/options b/csharp/ql/test/query-tests/Security Features/CWE-094/options index ce5d6db635a..cce2f114af6 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-094/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-094/options @@ -1,6 +1,5 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/Microsoft.CSharp.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-099/options b/csharp/ql/test/query-tests/Security Features/CWE-099/options index 595b1a2bac0..7404a7573b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-099/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-099/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-112/options b/csharp/ql/test/query-tests/Security Features/CWE-112/options index 0ce0c6870b7..96b0b028bdd 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-112/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-112/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/options b/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-117/options b/csharp/ql/test/query-tests/Security Features/CWE-117/options index cffffd06410..5dfd0afb374 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-117/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-117/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj semmle-extractor-options: --load-sources-from-project:../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-134/options b/csharp/ql/test/query-tests/Security Features/CWE-134/options index aff430e13cc..ab08ee323e2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-134/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-134/options @@ -1,5 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/options b/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/options index ebbb0432489..c5b4a958655 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-209/options b/csharp/ql/test/query-tests/Security Features/CWE-209/options index 0ce0c6870b7..96b0b028bdd 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-209/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-209/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOff/options b/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOff/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOff/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOff/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOffButGlobal/options b/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOffButGlobal/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOffButGlobal/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-248/MissingASPNETGlobalErrorHandler/WebConfigOffButGlobal/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/WebFormsTests/options b/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/WebFormsTests/options index d43edf41c56..9d05f9bf06d 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/WebFormsTests/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/WebFormsTests/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj -semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs \ No newline at end of file +semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-312/options b/csharp/ql/test/query-tests/Security Features/CWE-312/options index aff430e13cc..ab08ee323e2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-312/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-312/options @@ -1,5 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-352/global/options b/csharp/ql/test/query-tests/Security Features/CWE-352/global/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-352/global/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-352/global/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-352/missing/options b/csharp/ql/test/query-tests/Security Features/CWE-352/missing/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-352/missing/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-352/missing/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-359/options b/csharp/ql/test/query-tests/Security Features/CWE-359/options index aff430e13cc..ab08ee323e2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-359/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-359/options @@ -1,5 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-384/options b/csharp/ql/test/query-tests/Security Features/CWE-384/options index 0ce0c6870b7..96b0b028bdd 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-384/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-384/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/CodeAddedHeader/options b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/CodeAddedHeader/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/CodeAddedHeader/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/CodeAddedHeader/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/NoHeader/options b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/NoHeader/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/NoHeader/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/NoHeader/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeader/options b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeader/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeader/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeader/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/options b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserialization/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/options b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options index 62b643d45cb..750b4e67189 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-539/PersistentCookie/options b/csharp/ql/test/query-tests/Security Features/CWE-539/PersistentCookie/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-539/PersistentCookie/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-539/PersistentCookie/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/options b/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/options index daca5d73f55..7553ab79ad3 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-614/RequireSSL/AddedInCode/options b/csharp/ql/test/query-tests/Security Features/CWE-614/RequireSSL/AddedInCode/options index dbb615bf06c..9d05f9bf06d 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-614/RequireSSL/AddedInCode/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-614/RequireSSL/AddedInCode/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options index 1fcc7e1cf48..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/WebFormsTests/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj -semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs \ No newline at end of file +semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-643/options b/csharp/ql/test/query-tests/Security Features/CWE-643/options index 595b1a2bac0..7404a7573b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-643/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-643/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/options b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/options b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/options b/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/options index daca5d73f55..9290f65d5b2 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-807/options b/csharp/ql/test/query-tests/Security Features/CWE-807/options index 0ce0c6870b7..96b0b028bdd 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-807/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-807/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-838/options b/csharp/ql/test/query-tests/Security Features/CWE-838/options index 0af89500401..5e2b8b8284e 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-838/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-838/options @@ -1,5 +1,4 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs ${testdir}/../../../resources/stubs/System.Windows.cs diff --git a/csharp/ql/test/query-tests/Telemetry/SupportedExternalApis/options b/csharp/ql/test/query-tests/Telemetry/SupportedExternalApis/options index 0ce0c6870b7..96b0b028bdd 100644 --- a/csharp/ql/test/query-tests/Telemetry/SupportedExternalApis/options +++ b/csharp/ql/test/query-tests/Telemetry/SupportedExternalApis/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/Telemetry/SupportedExternalSinks/options b/csharp/ql/test/query-tests/Telemetry/SupportedExternalSinks/options index 0ce0c6870b7..96b0b028bdd 100644 --- a/csharp/ql/test/query-tests/Telemetry/SupportedExternalSinks/options +++ b/csharp/ql/test/query-tests/Telemetry/SupportedExternalSinks/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/options b/csharp/ql/test/utils/modelgenerator/dataflow/options index 8b0f1661e63..96b0b028bdd 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/options +++ b/csharp/ql/test/utils/modelgenerator/dataflow/options @@ -1,4 +1,3 @@ semmle-extractor-options: /nostdlib /noconfig semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj -semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs \ No newline at end of file +semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs From 82cf472f8aea8a21363587f1dbad897fc3c903ee Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 12 May 2025 09:11:51 +0200 Subject: [PATCH 343/656] C#: Fix ASP tests. --- csharp/ql/test/library-tests/asp/basic/Test.cs | 2 +- csharp/ql/test/library-tests/asp/basic/options | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 csharp/ql/test/library-tests/asp/basic/options diff --git a/csharp/ql/test/library-tests/asp/basic/Test.cs b/csharp/ql/test/library-tests/asp/basic/Test.cs index 607e4d6d0e2..64185aa2c15 100644 --- a/csharp/ql/test/library-tests/asp/basic/Test.cs +++ b/csharp/ql/test/library-tests/asp/basic/Test.cs @@ -1,5 +1,5 @@ // semmle-extractor-options: /nostdlib /noconfig -// semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +// semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj // semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs using System; diff --git a/csharp/ql/test/library-tests/asp/basic/options b/csharp/ql/test/library-tests/asp/basic/options deleted file mode 100644 index 8b0f1661e63..00000000000 --- a/csharp/ql/test/library-tests/asp/basic/options +++ /dev/null @@ -1,4 +0,0 @@ -semmle-extractor-options: /nostdlib /noconfig -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj -semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs \ No newline at end of file From 60d26e522e15156a8144fb0739b8fdd145aea6a3 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 12 May 2025 11:09:34 +0200 Subject: [PATCH 344/656] C#: Cleanup test options files. --- csharp/ql/test/library-tests/asp/basic/Test.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/test/library-tests/asp/basic/Test.cs b/csharp/ql/test/library-tests/asp/basic/Test.cs index 64185aa2c15..607e4d6d0e2 100644 --- a/csharp/ql/test/library-tests/asp/basic/Test.cs +++ b/csharp/ql/test/library-tests/asp/basic/Test.cs @@ -1,5 +1,5 @@ // semmle-extractor-options: /nostdlib /noconfig -// semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj +// semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj // semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs using System; From 05dc9b6d34d9c4b46e42ee21ecbe26b930e1549c Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 12 May 2025 10:20:12 +0200 Subject: [PATCH 345/656] C#: Remove dependency to ASP.NET in the System.Web.cs stub file. --- .../query-tests/Security Features/CWE-611/options | 6 ++---- csharp/ql/test/resources/stubs/System.Web.Http.cs | 14 ++++++++++++++ csharp/ql/test/resources/stubs/System.Web.cs | 15 --------------- 3 files changed, 16 insertions(+), 19 deletions(-) create mode 100644 csharp/ql/test/resources/stubs/System.Web.Http.cs diff --git a/csharp/ql/test/query-tests/Security Features/CWE-611/options b/csharp/ql/test/query-tests/Security Features/CWE-611/options index 8b0f1661e63..ea31b8476dd 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-611/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-611/options @@ -1,4 +1,2 @@ -semmle-extractor-options: /nostdlib /noconfig -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj -semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj -semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs \ No newline at end of file +semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Web.cs +semmle-extractor-options: /r:System.Collections.Specialized.dll /r:System.Xml.ReaderWriter.dll /r:System.Private.Xml.dll /r:System.Runtime.Extensions.dll diff --git a/csharp/ql/test/resources/stubs/System.Web.Http.cs b/csharp/ql/test/resources/stubs/System.Web.Http.cs new file mode 100644 index 00000000000..7cb6d36c74d --- /dev/null +++ b/csharp/ql/test/resources/stubs/System.Web.Http.cs @@ -0,0 +1,14 @@ +namespace System.Web.Http +{ + public class ApiController + { + public Microsoft.AspNetCore.Http.HttpContext Context => null; + public virtual Microsoft.AspNetCore.Mvc.RedirectResult Redirect(Uri location) => null; + public virtual Microsoft.AspNetCore.Mvc.RedirectResult Redirect(string location) => null; + public virtual ResponseMessageResult ResponseMessage(System.Net.Http.HttpResponseMessage response) => null; + public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues) => null; + public Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; set; } + } + + public class ResponseMessageResult { } +} diff --git a/csharp/ql/test/resources/stubs/System.Web.cs b/csharp/ql/test/resources/stubs/System.Web.cs index 56f51208e54..f0572742f88 100644 --- a/csharp/ql/test/resources/stubs/System.Web.cs +++ b/csharp/ql/test/resources/stubs/System.Web.cs @@ -60,21 +60,6 @@ namespace System.Web } } -namespace System.Web.Http -{ - public class ApiController - { - public Microsoft.AspNetCore.Http.HttpContext Context => null; - public virtual Microsoft.AspNetCore.Mvc.RedirectResult Redirect(Uri location) => null; - public virtual Microsoft.AspNetCore.Mvc.RedirectResult Redirect(string location) => null; - public virtual ResponseMessageResult ResponseMessage(System.Net.Http.HttpResponseMessage response) => null; - public virtual Microsoft.AspNetCore.Mvc.RedirectToRouteResult RedirectToRoute(string routeName, object routeValues) => null; - public Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; set; } - } - - public class ResponseMessageResult { } -} - namespace System.Web.Mvc { public class Controller From 5faaa4f0f36c7c38dda30587b16c6d5959ea935e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 12 May 2025 11:09:34 +0200 Subject: [PATCH 346/656] C#: Cleanup test options files. From 14bdc1ab22e9f0997325bbed4ca641e6819d5945 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 13 May 2025 09:31:50 +0200 Subject: [PATCH 347/656] Shared: Minor tweaks to model generator script Co-authored-by: Michael Nebel --- misc/scripts/models-as-data/generate_mad.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/scripts/models-as-data/generate_mad.py b/misc/scripts/models-as-data/generate_mad.py index 60674ed54ed..a5f8ffc8fa0 100755 --- a/misc/scripts/models-as-data/generate_mad.py +++ b/misc/scripts/models-as-data/generate_mad.py @@ -75,7 +75,7 @@ class Generator: @staticmethod def make(): - '''Create a generator instance based on command line arguments.''' + # Create a generator instance based on command line arguments. if any(s == "--help" for s in sys.argv): printHelp() sys.exit(0) @@ -85,7 +85,7 @@ class Generator: sys.argv.remove("--language") sys.argv.remove(language) else: - print("Error: Language not specified. Use --language .") + printHelp() sys.exit(0) generator = Generator(language=language) From 014e7dc4bc693ec5c0bc38851c001a69f98c9e20 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 13 May 2025 09:50:07 +0200 Subject: [PATCH 348/656] Shared: Remove change note for internal MaD generator --- .../src/change-notes/2025-05-02-mad-generator-renamed.md | 8 -------- .../src/change-notes/2025-05-02-mad-generator-renamed.md | 8 -------- 2 files changed, 16 deletions(-) delete mode 100644 csharp/ql/src/change-notes/2025-05-02-mad-generator-renamed.md delete mode 100644 java/ql/src/change-notes/2025-05-02-mad-generator-renamed.md diff --git a/csharp/ql/src/change-notes/2025-05-02-mad-generator-renamed.md b/csharp/ql/src/change-notes/2025-05-02-mad-generator-renamed.md deleted file mode 100644 index 824b37180a1..00000000000 --- a/csharp/ql/src/change-notes/2025-05-02-mad-generator-renamed.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -category: minorAnalysis ---- -* Changes to the MaD model generation infrastructure: - * The `csharp/ql/src/utils/modelgenerator/GenerateFlowModel.py` script has - been removed. The `/misc/scripts/models-as-data/generate_mad.py` script now - supports being called directly and should be used instead. The script - requires a `--language` argument but otherwise functions identically. diff --git a/java/ql/src/change-notes/2025-05-02-mad-generator-renamed.md b/java/ql/src/change-notes/2025-05-02-mad-generator-renamed.md deleted file mode 100644 index 0a2d9e797fc..00000000000 --- a/java/ql/src/change-notes/2025-05-02-mad-generator-renamed.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -category: minorAnalysis ---- -* Changes to the MaD model generation infrastructure: - * The `java/ql/src/utils/modelgenerator/GenerateFlowModel.py` script has - been removed. The `/misc/scripts/models-as-data/generate_mad.py` script now - supports being called directly and should be used instead. The script - requires a `--language` argument but otherwise functions identically. From b3dc7a21b38f3fc408492329c652e7b502feeb98 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 13 May 2025 09:06:25 +0100 Subject: [PATCH 349/656] Apply suggestions from code review Co-authored-by: Simon Friis Vindum --- rust/ql/lib/codeql/rust/elements/LogicalOperation.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll index 72cc4ffdf57..eaf1ff06b7d 100644 --- a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll @@ -18,14 +18,14 @@ abstract private class BinaryLogicalOperationImpl extends BinaryExpr, LogicalOpe final class BinaryLogicalOperation = BinaryLogicalOperationImpl; /** - * The logical and operation, `&&`. + * The logical "and" operation, `&&`. */ final class LogicalAndExpr extends BinaryLogicalOperationImpl, BinaryExpr { LogicalAndExpr() { this.getOperatorName() = "&&" } } /** - * The logical or operation, `||`. + * The logical "or" operation, `||`. */ final class LogicalOrExpr extends BinaryLogicalOperationImpl { LogicalOrExpr() { this.getOperatorName() = "||" } @@ -39,7 +39,7 @@ abstract private class UnaryLogicalOperationImpl extends PrefixExpr, LogicalOper final class UnaryLogicalOperation = UnaryLogicalOperationImpl; /** - * A logical not operation, `!`. + * A logical "not" operation, `!`. */ final class LogicalNotExpr extends UnaryLogicalOperationImpl { LogicalNotExpr() { this.getOperatorName() = "!" } From 510df38da2476708271777dc17ad5bd52068f14c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 12 May 2025 19:46:50 +0100 Subject: [PATCH 350/656] C++: Add an 'hasIncompleteSsa' predicate to check whether a function has correctly modelled SSA information. --- .../cpp/ir/implementation/aliased_ssa/IRFunction.qll | 8 ++++++++ .../aliased_ssa/internal/SSAConstruction.qll | 12 ++++++++++++ .../code/cpp/ir/implementation/raw/IRFunction.qll | 8 ++++++++ .../implementation/raw/internal/IRConstruction.qll | 2 ++ .../ir/implementation/unaliased_ssa/IRFunction.qll | 8 ++++++++ .../unaliased_ssa/internal/SSAConstruction.qll | 12 ++++++++++++ 6 files changed, 50 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRFunction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRFunction.qll index 354ba41e3d1..7fa08f57a00 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRFunction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRFunction.qll @@ -58,4 +58,12 @@ class IRFunction extends IRFunctionBase { * Gets all blocks in this function. */ final IRBlock getABlock() { result.getEnclosingIRFunction() = this } + + /** + * Holds if this function may have incomplete def-use information. + * + * Def-use information may be omitted for a function when it is too expensive + * to compute. + */ + final predicate hasIncompleteSsa() { Construction::hasIncompleteSsa(this) } } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll index e0a6594e740..d7df2d40abe 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll @@ -1319,6 +1319,18 @@ predicate canReuseSsaForMemoryResult(Instruction instruction) { // We don't support reusing SSA for any location that could create a `Chi` instruction. } +/** + * Holds if the def-use information for `f` may have been omitted because it + * was too expensive to compute. This happens if one of the memory allocations + * in `f` is a busy definition (i.e., it has many different overlapping uses). + */ +predicate hasIncompleteSsa(IRFunction f) { + exists(Alias::MemoryLocation0 defLocation | + Alias::isBusyDef(defLocation) and + defLocation.getIRFunction() = f + ) +} + /** * Expose some of the internal predicates to PrintSSA.qll. We do this by publicly importing those modules in the * `DebugSsa` module, which is then imported by PrintSSA. diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRFunction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRFunction.qll index 354ba41e3d1..7fa08f57a00 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRFunction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRFunction.qll @@ -58,4 +58,12 @@ class IRFunction extends IRFunctionBase { * Gets all blocks in this function. */ final IRBlock getABlock() { result.getEnclosingIRFunction() = this } + + /** + * Holds if this function may have incomplete def-use information. + * + * Def-use information may be omitted for a function when it is too expensive + * to compute. + */ + final predicate hasIncompleteSsa() { Construction::hasIncompleteSsa(this) } } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/IRConstruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/IRConstruction.qll index 5e2461ba8b7..594e37b668d 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/IRConstruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/IRConstruction.qll @@ -220,6 +220,8 @@ Instruction getMemoryOperandDefinition( none() } +predicate hasIncompleteSsa(IRFunction f) { none() } + /** * Holds if the operand totally overlaps with its definition and consumes the * bit range `[startBitOffset, endBitOffset)`. diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRFunction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRFunction.qll index 354ba41e3d1..7fa08f57a00 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRFunction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRFunction.qll @@ -58,4 +58,12 @@ class IRFunction extends IRFunctionBase { * Gets all blocks in this function. */ final IRBlock getABlock() { result.getEnclosingIRFunction() = this } + + /** + * Holds if this function may have incomplete def-use information. + * + * Def-use information may be omitted for a function when it is too expensive + * to compute. + */ + final predicate hasIncompleteSsa() { Construction::hasIncompleteSsa(this) } } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll index e0a6594e740..d7df2d40abe 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll @@ -1319,6 +1319,18 @@ predicate canReuseSsaForMemoryResult(Instruction instruction) { // We don't support reusing SSA for any location that could create a `Chi` instruction. } +/** + * Holds if the def-use information for `f` may have been omitted because it + * was too expensive to compute. This happens if one of the memory allocations + * in `f` is a busy definition (i.e., it has many different overlapping uses). + */ +predicate hasIncompleteSsa(IRFunction f) { + exists(Alias::MemoryLocation0 defLocation | + Alias::isBusyDef(defLocation) and + defLocation.getIRFunction() = f + ) +} + /** * Expose some of the internal predicates to PrintSSA.qll. We do this by publicly importing those modules in the * `DebugSsa` module, which is then imported by PrintSSA. From 9d2eb3d9b83bba10b6f8c690513c8f0f8fe197a8 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Mon, 12 May 2025 19:47:47 +0100 Subject: [PATCH 351/656] C++: Filter out instructions with incomplete SSA in range analysis. --- .../new/internal/semantic/SemanticExprSpecific.qll | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExprSpecific.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExprSpecific.qll index 1b36ae2efc5..1b83ae959d2 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExprSpecific.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExprSpecific.qll @@ -112,7 +112,14 @@ module SemanticExprConfig { } /** Holds if no range analysis should be performed on the phi edges in `f`. */ - private predicate excludeFunction(Cpp::Function f) { count(f.getEntryPoint()) > 1 } + private predicate excludeFunction(Cpp::Function f) { + count(f.getEntryPoint()) > 1 + or + exists(IR::IRFunction irFunction | + irFunction.getFunction() = f and + irFunction.hasIncompleteSsa() + ) + } SemType getUnknownExprType(Expr expr) { result = getSemanticType(expr.getResultIRType()) } From c3c18bdbd288a39fba09dcacda44d6cb4a8ced2a Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 13 May 2025 11:28:25 +0100 Subject: [PATCH 352/656] C++: Add change note. --- .../change-notes/2025-05-13-range-analysis-infinite-loop.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2025-05-13-range-analysis-infinite-loop.md diff --git a/cpp/ql/lib/change-notes/2025-05-13-range-analysis-infinite-loop.md b/cpp/ql/lib/change-notes/2025-05-13-range-analysis-infinite-loop.md new file mode 100644 index 00000000000..7452e024d53 --- /dev/null +++ b/cpp/ql/lib/change-notes/2025-05-13-range-analysis-infinite-loop.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Fixed an infinite loop in `semmle.code.cpp.rangeanalysis.new.RangeAnalysis` when computing ranges in very large and complex function bodies. \ No newline at end of file From 3449a34018ea651bec9ea42b2f95a614e6e3a42f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 May 2025 14:20:06 +0200 Subject: [PATCH 353/656] C#: Address review comments. --- .../src/change-notes/2025-04-10-uncontrolled-format-string.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/ql/src/change-notes/2025-04-10-uncontrolled-format-string.md b/csharp/ql/src/change-notes/2025-04-10-uncontrolled-format-string.md index 184f84b5176..ed9805f6ece 100644 --- a/csharp/ql/src/change-notes/2025-04-10-uncontrolled-format-string.md +++ b/csharp/ql/src/change-notes/2025-04-10-uncontrolled-format-string.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* The precision of the query `cs/uncontrolled-format-string` has been improved. Calls to `System.Text.CompositeFormat.Parse` are now considered a format like method call. +* The precision of the query `cs/uncontrolled-format-string` has been improved (false negative reduction). Calls to `System.Text.CompositeFormat.Parse` are now considered a format like method call. From 7494eac35c4050563903d4426c10844fc28e7919 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 May 2025 12:47:49 +0200 Subject: [PATCH 354/656] Address review comments --- .../elements/internal/LiteralExprImpl.qll | 39 +++++----- .../extractor-tests/literal/literal.expected | 73 ++++++++++--------- .../test/extractor-tests/literal/literal.rs | 3 + 3 files changed, 58 insertions(+), 57 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll index c424ff5471d..2a2a754e889 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll @@ -53,10 +53,7 @@ module Impl { * [1]: https://doc.rust-lang.org/reference/tokens.html#character-literals */ class CharLiteralExpr extends LiteralExpr { - CharLiteralExpr() { - // todo: proper implementation - this.getTextValue().regexpMatch("'.*'") - } + CharLiteralExpr() { this.getTextValue().regexpMatch("'.*'") } override string getAPrimaryQlClass() { result = "CharLiteralExpr" } } @@ -71,10 +68,7 @@ module Impl { * [1]: https://doc.rust-lang.org/reference/tokens.html#string-literals */ class StringLiteralExpr extends LiteralExpr { - StringLiteralExpr() { - // todo: proper implementation - this.getTextValue().regexpMatch("r?#*\".*\"#*") - } + StringLiteralExpr() { this.getTextValue().regexpMatch("r?#*\".*\"#*") } override string getAPrimaryQlClass() { result = "StringLiteralExpr" } } @@ -138,11 +132,10 @@ module Impl { * For example, `42u8` has the suffix `u8`. */ string getSuffix() { - exists(string s, string reg, int last | + exists(string s, string reg | s = this.getTextValue() and reg = IntegerLiteralRegexs::integerLiteral() and - last = strictcount(reg.indexOf("(")) and - result = s.regexpCapture(reg, last) + result = s.regexpCapture(reg, 13) ) } @@ -193,9 +186,8 @@ module Impl { class FloatLiteralExpr extends NumberLiteralExpr { FloatLiteralExpr() { this.getTextValue() - .regexpMatch([ - FloatLiteralRegexs::floatLiteral(), FloatLiteralRegexs::integerSuffixLiteral() - ]) and + .regexpMatch(IntegerLiteralRegexs::paren(FloatLiteralRegexs::floatLiteral()) + "|" + + IntegerLiteralRegexs::paren(FloatLiteralRegexs::integerSuffixLiteral())) and // E.g. `0x01_f32` is an integer, not a float not this instanceof IntegerLiteralExpr } @@ -206,15 +198,18 @@ module Impl { * For example, `42.0f32` has the suffix `f32`. */ string getSuffix() { - exists(string s, string reg, int last | + exists(string s, string reg, int group | + reg = FloatLiteralRegexs::floatLiteralSuffix1() and + group = 3 + or + reg = FloatLiteralRegexs::floatLiteralSuffix2() and + group = 9 + or + reg = FloatLiteralRegexs::integerSuffixLiteral() and + group = 13 + | s = this.getTextValue() and - reg = - [ - FloatLiteralRegexs::floatLiteralSuffix1(), FloatLiteralRegexs::floatLiteralSuffix2(), - FloatLiteralRegexs::integerSuffixLiteral() - ] and - last = strictcount(reg.indexOf("(")) and - result = s.regexpCapture(reg, last) + result = s.regexpCapture(reg, group) ) } diff --git a/rust/ql/test/extractor-tests/literal/literal.expected b/rust/ql/test/extractor-tests/literal/literal.expected index 55d1ac11013..d229d968467 100644 --- a/rust/ql/test/extractor-tests/literal/literal.expected +++ b/rust/ql/test/extractor-tests/literal/literal.expected @@ -1,42 +1,45 @@ charLiteral | literal.rs:2:5:2:7 | 'a' | | literal.rs:3:5:3:7 | 'b' | +| literal.rs:4:5:4:8 | '\\'' | +| literal.rs:5:5:5:8 | '\\n' | +| literal.rs:6:5:6:15 | '\\u{1F600}' | stringLiteral -| literal.rs:8:5:8:9 | "foo" | -| literal.rs:9:5:9:10 | r"foo" | -| literal.rs:10:5:10:13 | "\\"foo\\"" | -| literal.rs:11:5:11:14 | r#""foo""# | -| literal.rs:13:5:13:18 | "foo #\\"# bar" | -| literal.rs:14:5:14:22 | r##"foo #"# bar"## | -| literal.rs:16:5:16:10 | "\\x52" | -| literal.rs:17:5:17:7 | "R" | -| literal.rs:18:5:18:8 | r"R" | -| literal.rs:19:5:19:11 | "\\\\x52" | -| literal.rs:20:5:20:11 | r"\\x52" | +| literal.rs:11:5:11:9 | "foo" | +| literal.rs:12:5:12:10 | r"foo" | +| literal.rs:13:5:13:13 | "\\"foo\\"" | +| literal.rs:14:5:14:14 | r#""foo""# | +| literal.rs:16:5:16:18 | "foo #\\"# bar" | +| literal.rs:17:5:17:22 | r##"foo #"# bar"## | +| literal.rs:19:5:19:10 | "\\x52" | +| literal.rs:20:5:20:7 | "R" | +| literal.rs:21:5:21:8 | r"R" | +| literal.rs:22:5:22:11 | "\\\\x52" | +| literal.rs:23:5:23:11 | r"\\x52" | integerLiteral -| literal.rs:25:5:25:7 | 123 | | -| literal.rs:26:5:26:10 | 123i32 | i32 | -| literal.rs:27:5:27:10 | 123u32 | u32 | -| literal.rs:28:5:28:11 | 123_u32 | u32 | -| literal.rs:30:5:30:8 | 0xff | | -| literal.rs:31:5:31:11 | 0xff_u8 | u8 | -| literal.rs:32:5:32:12 | 0x01_f32 | | -| literal.rs:33:5:33:11 | 0x01_e3 | | -| literal.rs:35:5:35:8 | 0o70 | | -| literal.rs:36:5:36:12 | 0o70_i16 | i16 | -| literal.rs:38:5:38:25 | 0b1111_1111_1001_0000 | | -| literal.rs:39:5:39:28 | 0b1111_1111_1001_0000i64 | i64 | -| literal.rs:40:5:40:15 | 0b________1 | | -| literal.rs:42:5:42:10 | 0usize | usize | -| literal.rs:45:5:46:10 | 128_i8 | i8 | -| literal.rs:47:5:48:10 | 256_u8 | u8 | +| literal.rs:28:5:28:7 | 123 | | +| literal.rs:29:5:29:10 | 123i32 | i32 | +| literal.rs:30:5:30:10 | 123u32 | u32 | +| literal.rs:31:5:31:11 | 123_u32 | u32 | +| literal.rs:33:5:33:8 | 0xff | | +| literal.rs:34:5:34:11 | 0xff_u8 | u8 | +| literal.rs:35:5:35:12 | 0x01_f32 | | +| literal.rs:36:5:36:11 | 0x01_e3 | | +| literal.rs:38:5:38:8 | 0o70 | | +| literal.rs:39:5:39:12 | 0o70_i16 | i16 | +| literal.rs:41:5:41:25 | 0b1111_1111_1001_0000 | | +| literal.rs:42:5:42:28 | 0b1111_1111_1001_0000i64 | i64 | +| literal.rs:43:5:43:15 | 0b________1 | | +| literal.rs:45:5:45:10 | 0usize | usize | +| literal.rs:48:5:49:10 | 128_i8 | i8 | +| literal.rs:50:5:51:10 | 256_u8 | u8 | floatLiteral -| literal.rs:53:5:53:8 | 5f32 | f32 | -| literal.rs:55:5:55:12 | 123.0f64 | f64 | -| literal.rs:56:5:56:10 | 0.1f64 | f64 | -| literal.rs:57:5:57:10 | 0.1f32 | f32 | -| literal.rs:58:5:58:14 | 12E+99_f64 | f64 | -| literal.rs:59:18:59:19 | 2. | | +| literal.rs:56:5:56:8 | 5f32 | f32 | +| literal.rs:58:5:58:12 | 123.0f64 | f64 | +| literal.rs:59:5:59:10 | 0.1f64 | f64 | +| literal.rs:60:5:60:10 | 0.1f32 | f32 | +| literal.rs:61:5:61:14 | 12E+99_f64 | f64 | +| literal.rs:62:18:62:19 | 2. | | booleanLiteral -| literal.rs:63:5:63:8 | true | -| literal.rs:64:5:64:9 | false | +| literal.rs:66:5:66:8 | true | +| literal.rs:67:5:67:9 | false | diff --git a/rust/ql/test/extractor-tests/literal/literal.rs b/rust/ql/test/extractor-tests/literal/literal.rs index 74503f2a24e..ea4ccdece63 100644 --- a/rust/ql/test/extractor-tests/literal/literal.rs +++ b/rust/ql/test/extractor-tests/literal/literal.rs @@ -1,6 +1,9 @@ fn char_literals() { 'a'; 'b'; + '\''; + '\n'; + '\u{1F600}'; } fn string_literals() { From 0836f0b413126532825744034cf5e46a80604da6 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 13 May 2025 13:41:15 +0100 Subject: [PATCH 355/656] C++: Cache and fix join order in 'hasIncompleteSsa'. --- .../aliased_ssa/internal/SSAConstruction.qll | 26 ++++++++++--------- .../internal/SSAConstruction.qll | 26 ++++++++++--------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll index d7df2d40abe..1a1eb6a1876 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll @@ -731,6 +731,20 @@ private module Cached { or instruction = getChi(result.(UninitializedGroupInstruction)) } + + /** + * Holds if the def-use information for `f` may have been omitted because it + * was too expensive to compute. This happens if one of the memory allocations + * in `f` is a busy definition (i.e., it has many different overlapping uses). + */ + pragma[nomagic] + cached + predicate hasIncompleteSsa(IRFunction f) { + exists(Alias::MemoryLocation0 defLocation | + Alias::isBusyDef(pragma[only_bind_into](defLocation)) and + defLocation.getIRFunction() = f + ) + } } private Instruction getNewInstruction(OldInstruction instr) { getOldInstruction(result) = instr } @@ -1319,18 +1333,6 @@ predicate canReuseSsaForMemoryResult(Instruction instruction) { // We don't support reusing SSA for any location that could create a `Chi` instruction. } -/** - * Holds if the def-use information for `f` may have been omitted because it - * was too expensive to compute. This happens if one of the memory allocations - * in `f` is a busy definition (i.e., it has many different overlapping uses). - */ -predicate hasIncompleteSsa(IRFunction f) { - exists(Alias::MemoryLocation0 defLocation | - Alias::isBusyDef(defLocation) and - defLocation.getIRFunction() = f - ) -} - /** * Expose some of the internal predicates to PrintSSA.qll. We do this by publicly importing those modules in the * `DebugSsa` module, which is then imported by PrintSSA. diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll index d7df2d40abe..1a1eb6a1876 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll @@ -731,6 +731,20 @@ private module Cached { or instruction = getChi(result.(UninitializedGroupInstruction)) } + + /** + * Holds if the def-use information for `f` may have been omitted because it + * was too expensive to compute. This happens if one of the memory allocations + * in `f` is a busy definition (i.e., it has many different overlapping uses). + */ + pragma[nomagic] + cached + predicate hasIncompleteSsa(IRFunction f) { + exists(Alias::MemoryLocation0 defLocation | + Alias::isBusyDef(pragma[only_bind_into](defLocation)) and + defLocation.getIRFunction() = f + ) + } } private Instruction getNewInstruction(OldInstruction instr) { getOldInstruction(result) = instr } @@ -1319,18 +1333,6 @@ predicate canReuseSsaForMemoryResult(Instruction instruction) { // We don't support reusing SSA for any location that could create a `Chi` instruction. } -/** - * Holds if the def-use information for `f` may have been omitted because it - * was too expensive to compute. This happens if one of the memory allocations - * in `f` is a busy definition (i.e., it has many different overlapping uses). - */ -predicate hasIncompleteSsa(IRFunction f) { - exists(Alias::MemoryLocation0 defLocation | - Alias::isBusyDef(defLocation) and - defLocation.getIRFunction() = f - ) -} - /** * Expose some of the internal predicates to PrintSSA.qll. We do this by publicly importing those modules in the * `DebugSsa` module, which is then imported by PrintSSA. From 6c9f248fdb45b61cbeee00a7555febe3f5c97bc7 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 May 2025 10:56:43 +0200 Subject: [PATCH 356/656] Shared: Avoid generating taint based heuristic summaries when a content sensitive summary can be generated. --- .../modelgenerator/internal/ModelGeneratorImpl.qll | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index 331bcbc8b65..1c5b534181d 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -995,13 +995,13 @@ module MakeModelGeneratorFactory< DataFlowSummaryTargetApi api0, string input0, string output0, boolean preservesValue0 | // If the heuristic summary is taint-based, and we can generate a content-sensitive - // summary that is value-preserving then we omit generating any heuristic summary. - preservesValue = false and - preservesValue0 = true + // summary then we omit generating the heuristic summary. + preservesValue = false or - // However, if they're both value-preserving (or both taint-based) then we only - // generate a heuristic summary if we didn't generate a content-sensitive summary. - preservesValue = preservesValue0 and + // If they're both value-preserving then we only generate a heuristic summary if + // we didn't generate a content-sensitive summary on the same input/output pair. + preservesValue = true and + preservesValue0 = true and input0 = input and output0 = output | From a94cffa27ef8e9b3e80cfe7f1003516da2f5a260 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 May 2025 13:00:28 +0200 Subject: [PATCH 357/656] Shared: Adjust the printing of heuristic value summaries (and fix a minor issue with output printing in captureSink). --- .../internal/ModelGeneratorImpl.qll | 63 ++++++++++--------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll index 1c5b534181d..829bf267c22 100644 --- a/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll +++ b/shared/mad/codeql/mad/modelgenerator/internal/ModelGeneratorImpl.qll @@ -73,14 +73,14 @@ signature module ModelGeneratorCommonInputSig::getOutput(node) + private string getApproximateOutput(ReturnNodeExt node) { + result = PrintReturnNodeExt::getOutput(node) + } + + private string getExactOutput(ReturnNodeExt node) { + result = PrintReturnNodeExt::getOutput(node) } /** @@ -320,6 +324,16 @@ module MakeModelGeneratorFactory< DataFlowSummaryTargetApi() { not isUninterestingForDataFlowModels(this) } } + /** + * Gets the MaD string representation of the parameter `p` + * when used in exact flow. + */ + private string parameterNodeAsExactInput(DataFlow::ParameterNode p) { + result = parameterExactAccess(asParameter(p)) + or + result = qualifierString() and p instanceof InstanceParameterNode + } + /** * Provides classes and predicates related to capturing summary models * based on heuristic data flow. @@ -336,8 +350,8 @@ module MakeModelGeneratorFactory< /** * Gets the MaD string representation of the parameter node `p`. */ - string parameterNodeAsInput(DataFlow::ParameterNode p) { - result = parameterAccess(asParameter(p)) + private string parameterNodeAsApproximateInput(DataFlow::ParameterNode p) { + result = parameterApproximateAccess(asParameter(p)) or result = qualifierString() and p instanceof InstanceParameterNode } @@ -545,16 +559,19 @@ module MakeModelGeneratorFactory< ReturnNodeExt returnNodeExt, string output, boolean preservesValue ) { ( - PropagateDataFlow::flow(p, returnNodeExt) and preservesValue = true + PropagateDataFlow::flow(p, returnNodeExt) and + input = parameterNodeAsExactInput(p) and + output = getExactOutput(returnNodeExt) and + preservesValue = true or not PropagateDataFlow::flow(p, returnNodeExt) and PropagateTaintFlow::flow(p, returnNodeExt) and + input = parameterNodeAsApproximateInput(p) and + output = getApproximateOutput(returnNodeExt) and preservesValue = false ) and getEnclosingCallable(p) = api and getEnclosingCallable(returnNodeExt) = api and - input = parameterNodeAsInput(p) and - output = getOutput(returnNodeExt) and input != output } @@ -651,20 +668,6 @@ module MakeModelGeneratorFactory< private module ContentModelPrinting = Printing::ModelPrintingSummary; - private string getContentOutput(ReturnNodeExt node) { - result = PrintReturnNodeExt::getOutput(node) - } - - /** - * Gets the MaD string representation of the parameter `p` - * when used in content flow. - */ - private string parameterNodeAsContentInput(DataFlow::ParameterNode p) { - result = parameterContentAccess(asParameter(p)) - or - result = qualifierString() and p instanceof InstanceParameterNode - } - private string getContent(PropagateContentFlow::AccessPath ap, int i) { result = "." + printContent(ap.getAtIndex(i)) } @@ -740,8 +743,8 @@ module MakeModelGeneratorFactory< PropagateContentFlow::AccessPath stores | apiFlow(this, parameter, reads, returnNodeExt, stores, _) and - input = parameterNodeAsContentInput(parameter) + printReadAccessPath(reads) and - output = getContentOutput(returnNodeExt) + printStoreAccessPath(stores) + input = parameterNodeAsExactInput(parameter) + printReadAccessPath(reads) and + output = getExactOutput(returnNodeExt) + printStoreAccessPath(stores) ) ) <= 3 } @@ -948,8 +951,8 @@ module MakeModelGeneratorFactory< PropagateContentFlow::AccessPath reads, PropagateContentFlow::AccessPath stores | apiRelevantContentFlow(api, p, reads, returnNodeExt, stores, preservesValue) and - input = parameterNodeAsContentInput(p) + printReadAccessPath(reads) and - output = getContentOutput(returnNodeExt) + printStoreAccessPath(stores) and + input = parameterNodeAsExactInput(p) + printReadAccessPath(reads) and + output = getExactOutput(returnNodeExt) + printStoreAccessPath(stores) and input != output and validateAccessPath(reads) and validateAccessPath(stores) and @@ -1174,7 +1177,7 @@ module MakeModelGeneratorFactory< sourceNode(source, kind) and api = getEnclosingCallable(sink) and not irrelevantSourceSinkApi(getEnclosingCallable(source), api) and - result = ModelPrintingSourceOrSink::asSourceModel(api, getOutput(sink), kind) + result = ModelPrintingSourceOrSink::asSourceModel(api, getExactOutput(sink), kind) ) } } From 09dc3c88b3ec26d743fdd08dc1de3edcb7f44bd7 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 May 2025 13:08:02 +0200 Subject: [PATCH 358/656] C#: Update model generator implementation and test expected output. --- .../utils/modelgenerator/internal/CaptureModels.qll | 12 ++++++------ .../internal/CaptureTypeBasedSummaryModels.qll | 2 +- .../test/utils/modelgenerator/dataflow/Summaries.cs | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index b0300e4a87f..db3d72bd27b 100644 --- a/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -124,13 +124,13 @@ module ModelGeneratorCommonInput implements ModelGeneratorCommonInputSig::paramReturnNodeAsOutput(c, pos) + string paramReturnNodeAsApproximateOutput(CS::Callable c, ParameterPosition pos) { + result = ParamReturnNodeAsOutput::paramReturnNodeAsOutput(c, pos) } bindingset[c] - string paramReturnNodeAsContentOutput(Callable c, ParameterPosition pos) { - result = ParamReturnNodeAsOutput::paramReturnNodeAsOutput(c, pos) + string paramReturnNodeAsExactOutput(Callable c, ParameterPosition pos) { + result = ParamReturnNodeAsOutput::paramReturnNodeAsOutput(c, pos) } ParameterPosition getReturnKindParamPosition(ReturnKind kind) { diff --git a/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll b/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll index baba462c8a2..84cb0db45da 100644 --- a/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll +++ b/csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll @@ -39,7 +39,7 @@ private predicate localTypeParameter(Callable callable, TypeParameter tp) { */ private predicate parameter(Callable callable, string input, TypeParameter tp) { exists(Parameter p | - input = ModelGeneratorInput::parameterAccess(p) and + input = ModelGeneratorInput::parameterApproximateAccess(p) and p = callable.getAParameter() and ( // Parameter of type tp diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs b/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs index 382739b348e..b59513504d9 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs +++ b/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs @@ -133,35 +133,35 @@ public class CollectionFlow return new List { tainted }; } - // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;value;df-generated + // heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0];ReturnValue;value;dfc-generated public string[] ReturnComplexTypeArray(string[] a) { return a; } - // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List);;Argument[0].Element;ReturnValue;value;df-generated + // heuristic-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List);;Argument[0];ReturnValue;value;dfc-generated public List ReturnBulkTypeList(List a) { return a; } - // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary);;Argument[0].Element;ReturnValue;value;df-generated + // heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary);;Argument[0];ReturnValue;value;dfc-generated public Dictionary ReturnComplexTypeDictionary(Dictionary a) { return a; } - // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;value;df-generated + // heuristic-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0];ReturnValue;value;dfc-generated public Array ReturnUntypedArray(Array a) { return a; } - // SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;value;df-generated + // heuristic-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0];ReturnValue;value;dfc-generated public IList ReturnUntypedList(IList a) { @@ -202,7 +202,7 @@ public class IEnumerableFlow tainted = s; } - // SPURIOUS-heuristic-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable);;Argument[0].Element;ReturnValue;value;df-generated + // heuristic-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;value;df-generated // contentbased-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable);;Argument[0];ReturnValue;value;dfc-generated public IEnumerable ReturnIEnumerable(IEnumerable input) { From ee83ca91255b775e4047d95cb315077cb8c21c4d Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 May 2025 13:28:01 +0200 Subject: [PATCH 359/656] Java: Update model generator implementation and test expected output. --- .../utils/modelgenerator/internal/CaptureModels.qll | 12 ++++++------ .../utils/modelgenerator/dataflow/p/Sources.java | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 09223d23b1c..aa68a433291 100644 --- a/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -92,7 +92,7 @@ module ModelGeneratorCommonInput implements ModelGeneratorCommonInputSig otherStreams) throws IOException { From 6712cce1d7b72564d59c2155802d0d05f6e538e0 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 May 2025 13:35:56 +0200 Subject: [PATCH 360/656] Rust: Update model generator implementation. --- .../utils/modelgenerator/internal/CaptureModels.qll | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 99e1c527b54..f9b4eee664d 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -54,26 +54,26 @@ module ModelGeneratorCommonInput implements string qualifierString() { result = "Argument[self]" } - string parameterAccess(R::ParamBase p) { + string parameterExactAccess(R::ParamBase p) { result = "Argument[" + any(DataFlowImpl::ParameterPosition pos | p = pos.getParameterIn(_)).toString() + "]" } - string parameterContentAccess(R::ParamBase p) { result = parameterAccess(p) } + string parameterApproximateAccess(R::ParamBase p) { result = parameterExactAccess(p) } class InstanceParameterNode extends DataFlow::ParameterNode { InstanceParameterNode() { this.asParameter() instanceof SelfParam } } bindingset[c] - string paramReturnNodeAsOutput(Callable c, DataFlowImpl::ParameterPosition pos) { - result = paramReturnNodeAsContentOutput(c, pos) + string paramReturnNodeAsApproximateOutput(Callable c, DataFlowImpl::ParameterPosition pos) { + result = paramReturnNodeAsExactOutput(c, pos) } bindingset[c] - string paramReturnNodeAsContentOutput(Callable c, DataFlowImpl::ParameterPosition pos) { - result = parameterContentAccess(c.getParamList().getParam(pos.getPosition())) + string paramReturnNodeAsExactOutput(Callable c, DataFlowImpl::ParameterPosition pos) { + result = parameterExactAccess(c.getParamList().getParam(pos.getPosition())) or pos.isSelf() and result = qualifierString() } From fcecc5a3af70205e749d3d92560d530cd6bf924f Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 May 2025 13:44:12 +0200 Subject: [PATCH 361/656] Cpp: Update model generator implementation. --- .../utils/modelgenerator/internal/CaptureModels.qll | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 93abe205f1a..b86b2400fcc 100644 --- a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -189,15 +189,15 @@ module ModelGeneratorCommonInput implements ModelGeneratorCommonInputSig Date: Tue, 13 May 2025 14:46:29 +0200 Subject: [PATCH 362/656] C#: Add cs/call-to-gc to the code quality suite. --- csharp/ql/src/API Abuse/CallToGCCollect.ql | 1 + 1 file changed, 1 insertion(+) diff --git a/csharp/ql/src/API Abuse/CallToGCCollect.ql b/csharp/ql/src/API Abuse/CallToGCCollect.ql index 6a42c4e71f6..1757336d32a 100644 --- a/csharp/ql/src/API Abuse/CallToGCCollect.ql +++ b/csharp/ql/src/API Abuse/CallToGCCollect.ql @@ -7,6 +7,7 @@ * @id cs/call-to-gc * @tags efficiency * maintainability + * quality */ import csharp From b8f85b3f29c02716924b1cfa51e56efd26a35559 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 May 2025 14:50:23 +0200 Subject: [PATCH 363/656] C#: Update integration test expected output. --- .../posix/query-suite/csharp-code-quality.qls.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected index dc3791621c3..d1b40bd013e 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected @@ -1,3 +1,4 @@ +ql/csharp/ql/src/API Abuse/CallToGCCollect.ql ql/csharp/ql/src/API Abuse/FormatInvalid.ql ql/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql ql/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql From ae54c62001603dd9e4ec3e85d92251877e11c552 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 May 2025 15:06:43 +0200 Subject: [PATCH 364/656] Simplify using non-capturing groups --- .../elements/internal/LiteralExprImpl.qll | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll index 2a2a754e889..f848663a99b 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll @@ -81,28 +81,28 @@ module Impl { // https://doc.rust-lang.org/reference/tokens.html#integer-literals private module IntegerLiteralRegexs { bindingset[s] - string paren(string s) { result = "(" + s + ")" } + string paren(string s) { result = "(?:" + s + ")" } string integerLiteral() { result = paren(paren(decLiteral()) + "|" + paren(binLiteral()) + "|" + paren(octLiteral()) + "|" + - paren(hexLiteral())) + paren(suffix()) + "?" + paren(hexLiteral())) + "(" + suffix() + ")?" } private string suffix() { result = "u8|i8|u16|i16|u32|i32|u64|i64|u128|i128|usize|isize" } - string decLiteral() { result = decDigit() + "(" + decDigit() + "|_)*" } + string decLiteral() { result = decDigit() + "(?:" + decDigit() + "|_)*" } string binLiteral() { - result = "0b(" + binDigit() + "|_)*" + binDigit() + "(" + binDigit() + "|_)*" + result = "0b(?:" + binDigit() + "|_)*" + binDigit() + "(?:" + binDigit() + "|_)*" } string octLiteral() { - result = "0o(" + octDigit() + "|_)*" + octDigit() + "(" + octDigit() + "|_)*" + result = "0o(?:" + octDigit() + "|_)*" + octDigit() + "(?:" + octDigit() + "|_)*" } string hexLiteral() { - result = "0x(" + hexDigit() + "|_)*" + hexDigit() + "(" + hexDigit() + "|_)*" + result = "0x(?:" + hexDigit() + "|_)*" + hexDigit() + "(?:" + hexDigit() + "|_)*" } string decDigit() { result = "[0-9]" } @@ -135,7 +135,7 @@ module Impl { exists(string s, string reg | s = this.getTextValue() and reg = IntegerLiteralRegexs::integerLiteral() and - result = s.regexpCapture(reg, 13) + result = s.regexpCapture(reg, 1) ) } @@ -153,24 +153,25 @@ module Impl { } string floatLiteralSuffix1() { - result = decLiteral() + "\\." + decLiteral() + paren(suffix()) + "?" + result = decLiteral() + "\\." + decLiteral() + "(" + suffix() + ")?" } string floatLiteralSuffix2() { result = - decLiteral() + paren("\\." + decLiteral()) + "?" + paren(exponent()) + paren(suffix()) + "?" + decLiteral() + paren("\\." + decLiteral()) + "?" + paren(exponent()) + "(" + suffix() + ")?" } string integerSuffixLiteral() { result = paren(paren(decLiteral()) + "|" + paren(binLiteral()) + "|" + paren(octLiteral()) + "|" + - paren(hexLiteral())) + paren(suffix()) + paren(hexLiteral())) + "(" + suffix() + ")" } private string suffix() { result = "f32|f64" } string exponent() { - result = "(e|E)(\\+|-)?(" + decDigit() + "|_)*" + decDigit() + "(" + decDigit() + "|_)*" + result = + "(?:e|E)(?:\\+|-)?(?:" + decDigit() + "|_)*" + decDigit() + "(?:" + decDigit() + "|_)*" } } @@ -198,18 +199,13 @@ module Impl { * For example, `42.0f32` has the suffix `f32`. */ string getSuffix() { - exists(string s, string reg, int group | - reg = FloatLiteralRegexs::floatLiteralSuffix1() and - group = 3 - or - reg = FloatLiteralRegexs::floatLiteralSuffix2() and - group = 9 - or - reg = FloatLiteralRegexs::integerSuffixLiteral() and - group = 13 - | + exists(string s, string reg | + reg = + IntegerLiteralRegexs::paren(FloatLiteralRegexs::floatLiteralSuffix1()) + "|" + + IntegerLiteralRegexs::paren(FloatLiteralRegexs::floatLiteralSuffix2()) + "|" + + IntegerLiteralRegexs::paren(FloatLiteralRegexs::integerSuffixLiteral()) and s = this.getTextValue() and - result = s.regexpCapture(reg, group) + result = s.regexpCapture(reg, [1, 2, 3]) ) } From 73bae1627bd671a8674c53091a7463fe2de2fe66 Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 13 May 2025 15:08:01 +0200 Subject: [PATCH 365/656] ruby: test for DeadStore and captured variables --- .../DeadStoreOfLocal.expected | 1 + .../DeadStoreOfLocal/DeadStoreOfLocal.rb | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.expected b/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.expected index 572308ee51e..2ec0fe7cc0d 100644 --- a/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.expected +++ b/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.expected @@ -1 +1,2 @@ | DeadStoreOfLocal.rb:2:5:2:5 | y | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.rb:2:5:2:5 | y | y | +| DeadStoreOfLocal.rb:61:17:61:17 | x | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.rb:56:17:56:17 | x | x | diff --git a/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb b/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb index 7f3252a58fd..ccd6ba1bdd2 100644 --- a/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb +++ b/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb @@ -33,4 +33,34 @@ class Sub < Sup y = 3 # OK - the call to `super` sees the value of `y`` super end +end + +def do_twice + yield + yield +end + +def get_done_twice x + do_twice do + print x + x += 1 # OK - the block is executed twice + end +end + +def retry_once + yield +rescue + yield +end + +def get_retried x + retry_once do + print x + if x < 1 + begin + x += 1 #$ SPURIOUS: Alert + raise StandardError + end + end + end end \ No newline at end of file From 774b1820c24499896c03e58a1ef0c35f7e00314c Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 13 May 2025 15:11:00 +0200 Subject: [PATCH 366/656] ruby: also insert `capturedExitRead`-nodes by exceptional exits --- ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll | 1 - .../variables/DeadStoreOfLocal/DeadStoreOfLocal.expected | 1 - .../query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll index 3c1da6f3013..b4ba8e3ffad 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll @@ -106,7 +106,6 @@ private predicate writesCapturedVariable(Cfg::BasicBlock bb, LocalVariable v) { * at index `i` in exit block `bb`. */ private predicate capturedExitRead(Cfg::AnnotatedExitBasicBlock bb, int i, LocalVariable v) { - bb.isNormal() and writesCapturedVariable(bb.getAPredecessor*(), v) and i = bb.length() } diff --git a/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.expected b/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.expected index 2ec0fe7cc0d..572308ee51e 100644 --- a/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.expected +++ b/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.expected @@ -1,2 +1 @@ | DeadStoreOfLocal.rb:2:5:2:5 | y | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.rb:2:5:2:5 | y | y | -| DeadStoreOfLocal.rb:61:17:61:17 | x | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.rb:56:17:56:17 | x | x | diff --git a/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb b/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb index ccd6ba1bdd2..b9ac29f1f25 100644 --- a/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb +++ b/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb @@ -58,7 +58,7 @@ def get_retried x print x if x < 1 begin - x += 1 #$ SPURIOUS: Alert + x += 1 #$ OK - the block may be executed again raise StandardError end end From f255fc2fd593dcd08e21062829384688690b297c Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 13 May 2025 14:21:28 +0100 Subject: [PATCH 367/656] C++: Drive-by join order fix. Before: ``` Evaluated relational algebra for predicate SsaInternals::getDefImpl/1#1ed4f567@65628fbv with tuple counts: 4935102 ~5% {4} r1 = SCAN `SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f` OUTPUT In.2, In.3, In.0, In.1 104274503 ~1% {3} | JOIN WITH `SsaInternals::DefImpl.hasIndexInBlock/2#dispred#30a6c29f_120#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.3, Lhs.2 4921319 ~2% {2} | JOIN WITH `SsaInternals::DefImpl.getSourceVariable/0#dispred#72437659` ON FIRST 2 OUTPUT Lhs.2, Lhs.0 return r1 ``` After: ``` Evaluated relational algebra for predicate SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f_1230#join_rhs@b280fb5h with tuple counts: 4935102 ~3% {4} r1 = SCAN `SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f` OUTPUT In.1, In.2, In.3, In.0 return r1 Evaluated relational algebra for predicate SsaInternals::DefImpl.hasIndexInBlock/3#dispred#31d295aa_1230#join_rhs@2be655s4 with tuple counts: 5634706 ~1% {4} r1 = SCAN `SsaInternals::DefImpl.hasIndexInBlock/3#dispred#31d295aa` OUTPUT In.1, In.2, In.3, In.0 return r1 Evaluated relational algebra for predicate SsaInternals::getDefImpl/1#1ed4f567@8afa36uu with tuple counts: 4921319 ~2% {2} r1 = JOIN `SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f_1230#join_rhs` WITH `SsaInternals::DefImpl.hasIndexInBlock/3#dispred#31d295aa_1230#join_rhs` ON FIRST 3 OUTPUT Lhs.3, Rhs.3 return r1 ``` --- .../code/cpp/ir/dataflow/internal/DataFlowPrivate.qll | 4 ++-- .../code/cpp/ir/dataflow/internal/SsaInternals.qll | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll index 39975d8883c..e517a75edf9 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll @@ -1567,7 +1567,7 @@ private int countNumberOfBranchesUsingParameter(SwitchInstruction switch, Parame | exists(Ssa::UseImpl use | use.hasIndexInBlock(useblock, _, sv)) or - exists(Ssa::DefImpl def | def.hasIndexInBlock(useblock, _, sv)) + exists(Ssa::DefImpl def | def.hasIndexInBlock(sv, useblock, _)) ) ) ) @@ -1814,7 +1814,7 @@ module IteratorFlow { */ private predicate isIteratorWrite(Instruction write, Operand address) { exists(Ssa::DefImpl writeDef, IRBlock bb, int i | - writeDef.hasIndexInBlock(bb, i, _) and + writeDef.hasIndexInBlock(_, bb, i) and bb.getInstruction(i) = write and address = writeDef.getAddressOperand() ) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll index 51829f13df5..bea6b68d511 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll @@ -191,7 +191,7 @@ abstract class DefImpl extends TDefImpl { * Holds if this definition (or use) has index `index` in block `block`, * and is a definition (or use) of the variable `sv` */ - final predicate hasIndexInBlock(IRBlock block, int index, SourceVariable sv) { + final predicate hasIndexInBlock(SourceVariable sv, IRBlock block, int index) { this.hasIndexInBlock(block, index) and sv = this.getSourceVariable() } @@ -891,12 +891,12 @@ private module SsaInput implements SsaImplCommon::InputSig { predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) { DataFlowImplCommon::forceCachingInSameStage() and ( - exists(DefImpl def | def.hasIndexInBlock(bb, i, v) | + exists(DefImpl def | def.hasIndexInBlock(v, bb, i) | if def.isCertain() then certain = true else certain = false ) or exists(GlobalDefImpl global | - global.hasIndexInBlock(bb, i, v) and + global.hasIndexInBlock(v, bb, i) and certain = true ) ) @@ -934,10 +934,11 @@ module SsaCached { } /** Gets the `DefImpl` corresponding to `def`. */ +pragma[nomagic] private DefImpl getDefImpl(SsaImpl::Definition def) { exists(SourceVariable sv, IRBlock bb, int i | def.definesAt(sv, bb, i) and - result.hasIndexInBlock(bb, i, sv) + result.hasIndexInBlock(sv, bb, i) ) } From 08aad903462040ae251b715dad6f2c187d9d0c59 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 25 Apr 2025 14:55:15 +0100 Subject: [PATCH 368/656] Add 2.2.0-Beta1 deps --- java/kotlin-extractor/deps/kotlin-compiler-2.2.0-Beta1.jar | 3 +++ .../deps/kotlin-compiler-embeddable-2.2.0-Beta1.jar | 3 +++ java/kotlin-extractor/deps/kotlin-stdlib-2.2.0-Beta1.jar | 3 +++ 3 files changed, 9 insertions(+) create mode 100644 java/kotlin-extractor/deps/kotlin-compiler-2.2.0-Beta1.jar create mode 100644 java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.0-Beta1.jar create mode 100644 java/kotlin-extractor/deps/kotlin-stdlib-2.2.0-Beta1.jar diff --git a/java/kotlin-extractor/deps/kotlin-compiler-2.2.0-Beta1.jar b/java/kotlin-extractor/deps/kotlin-compiler-2.2.0-Beta1.jar new file mode 100644 index 00000000000..616f8fa2701 --- /dev/null +++ b/java/kotlin-extractor/deps/kotlin-compiler-2.2.0-Beta1.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cabb8d9f7621865fb0300773bd0cb6dcd91412d0026342c6aacdf23bdb7cf0b +size 57574890 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.0-Beta1.jar b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.0-Beta1.jar new file mode 100644 index 00000000000..65c3079c09c --- /dev/null +++ b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.2.0-Beta1.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:046daac99684ac0fbe3f8c9780651192fb23061a27b72f1e948c25d160d7b147 +size 56134176 diff --git a/java/kotlin-extractor/deps/kotlin-stdlib-2.2.0-Beta1.jar b/java/kotlin-extractor/deps/kotlin-stdlib-2.2.0-Beta1.jar new file mode 100644 index 00000000000..bd02764d8d8 --- /dev/null +++ b/java/kotlin-extractor/deps/kotlin-stdlib-2.2.0-Beta1.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51aefa2b8d09b2d32cd65056a0f1485556447c764574115981474fa9716a124a +size 1730638 From abea647bb1a6b984ef0c586ec26fda92e6b12274 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 25 Apr 2025 17:18:09 +0200 Subject: [PATCH 369/656] Bazel: update `rules_kotlin` to 2.1.3 --- MODULE.bazel | 2 +- .../rules_kotlin/2.1.3-codeql.1/MODULE.bazel | 35 +++++++++++++++++++ .../codeql_add_language_version_option.patch | 32 +++++++++++++++++ .../patches/codeql_do_not_emit_jdeps.patch | 16 +++++++++ .../rules_kotlin/2.1.3-codeql.1/source.json | 9 +++++ .../modules/rules_kotlin/metadata.json | 1 + 6 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/MODULE.bazel create mode 100644 misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_add_language_version_option.patch create mode 100644 misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_do_not_emit_jdeps.patch create mode 100644 misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/source.json diff --git a/MODULE.bazel b/MODULE.bazel index ae00bca4390..7e8e36b5309 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -24,7 +24,7 @@ bazel_dep(name = "bazel_skylib", version = "1.7.1") bazel_dep(name = "abseil-cpp", version = "20240116.1", repo_name = "absl") bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json") bazel_dep(name = "fmt", version = "10.0.0") -bazel_dep(name = "rules_kotlin", version = "2.0.0-codeql.1") +bazel_dep(name = "rules_kotlin", version = "2.1.3-codeql.1") bazel_dep(name = "gazelle", version = "0.40.0") bazel_dep(name = "rules_dotnet", version = "0.17.4") bazel_dep(name = "googletest", version = "1.14.0.bcr.1") diff --git a/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/MODULE.bazel b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/MODULE.bazel new file mode 100644 index 00000000000..41bef52cf9f --- /dev/null +++ b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/MODULE.bazel @@ -0,0 +1,35 @@ +module( + name = "rules_kotlin", + version = "2.1.3-codeql.1", + compatibility_level = 1, + repo_name = "rules_kotlin", +) + +bazel_dep(name = "platforms", version = "0.0.11") +bazel_dep(name = "bazel_skylib", version = "1.7.1") +bazel_dep(name = "rules_java", version = "7.2.0") +bazel_dep(name = "rules_python", version = "0.23.1") +bazel_dep(name = "rules_cc", version = "0.0.8") +bazel_dep(name = "rules_android", version = "0.1.1") + +rules_kotlin_extensions = use_extension( + "//src/main/starlark/core/repositories:bzlmod_setup.bzl", + "rules_kotlin_extensions", +) +use_repo( + rules_kotlin_extensions, + "com_github_google_ksp", + "com_github_jetbrains_kotlin", + "com_github_pinterest_ktlint", + "kotlinx_serialization_core_jvm", + "kotlinx_serialization_json", + "kotlinx_serialization_json_jvm", +) + +register_toolchains("//kotlin/internal:default_toolchain") + +# TODO(bencodes) We should be able to remove this once rules_android has rolled out official Bzlmod support +remote_android_extensions = use_extension("@bazel_tools//tools/android:android_extensions.bzl", "remote_android_tools_extensions") +use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools") + +bazel_dep(name = "rules_proto", version = "5.3.0-21.7") diff --git a/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_add_language_version_option.patch b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_add_language_version_option.patch new file mode 100644 index 00000000000..b0bf85d4fae --- /dev/null +++ b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_add_language_version_option.patch @@ -0,0 +1,32 @@ +diff --git a/src/main/starlark/core/options/opts.kotlinc.bzl b/src/main/starlark/core/options/opts.kotlinc.bzl +index 76df826..ef2d6ca 100644 +--- a/src/main/starlark/core/options/opts.kotlinc.bzl ++++ b/src/main/starlark/core/options/opts.kotlinc.bzl +@@ -33,6 +33,11 @@ def _map_jdk_release_to_flag(version): + return None + return ["-Xjdk-release=%s" % version] + ++def _map_language_version_to_flag(version): ++ if not version: ++ return None ++ return ["-language-version=%s" % version, "-api-version=%s" % version] ++ + _KOPTS_ALL = { + "warn": struct( + args = dict( +@@ -429,6 +434,15 @@ _KOPTS_ALL = { + value_to_flag = None, + map_value_to_flag = _map_jdk_release_to_flag, + ), ++ "language_version": struct( ++ args = dict( ++ default = "1.9", ++ doc = "-language-version", ++ ), ++ type = attr.string, ++ value_to_flag = None, ++ map_value_to_flag = _map_language_version_to_flag, ++ ), + } + + def _merge(key, rule_defined): diff --git a/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_do_not_emit_jdeps.patch b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_do_not_emit_jdeps.patch new file mode 100644 index 00000000000..380c837d06a --- /dev/null +++ b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/patches/codeql_do_not_emit_jdeps.patch @@ -0,0 +1,16 @@ +Emitting jdeps is broken for the 2.0.0 kotlin extractor, and we don't need those files. +Patching it here rather than passing `--@rules_kotlin//kotlin/settings:jvm_emit_jdeps=false` +allows us to not have to specify that option (and therefore pull in `rules_kotlin`) in `semmle-code`. +diff --git a/kotlin/settings/BUILD.bazel b/kotlin/settings/BUILD.bazel +index 2c93c11..f352b80 100644 +--- a/kotlin/settings/BUILD.bazel ++++ b/kotlin/settings/BUILD.bazel +@@ -25,7 +25,7 @@ release_archive( + # Flag that controls the emission of jdeps files during kotlin jvm compilation. + bool_flag( + name = "jvm_emit_jdeps", +- build_setting_default = True, # Upstream default behavior ++ build_setting_default = False, + visibility = ["//visibility:public"], + ) + diff --git a/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/source.json b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/source.json new file mode 100644 index 00000000000..8abac8eb4bd --- /dev/null +++ b/misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/source.json @@ -0,0 +1,9 @@ +{ + "integrity": "sha256-4USKVrJGJAeyaI3qht9cN1s2oJkb1HjC3dlMlxaBJeI=", + "url": "https://github.com/bazelbuild/rules_kotlin/releases/download/v2.1.3/rules_kotlin-v2.1.3.tar.gz", + "patches": { + "codeql_do_not_emit_jdeps.patch": "sha256-1ir4Aio1SICxnj1wafQ0GefT/m7bwn2n+SQwq19V3A8=", + "codeql_add_language_version_option.patch": "sha256-F7RthnrO6kJlCNcQ76L1Utqll2OwyeFZ/HmT82NwgB4=" + }, + "patch_strip": 1 +} diff --git a/misc/bazel/registry/modules/rules_kotlin/metadata.json b/misc/bazel/registry/modules/rules_kotlin/metadata.json index ac259b2e729..3e11b7df820 100644 --- a/misc/bazel/registry/modules/rules_kotlin/metadata.json +++ b/misc/bazel/registry/modules/rules_kotlin/metadata.json @@ -21,6 +21,7 @@ "github:bazelbuild/rules_kotlin" ], "versions": [ + "2.1.3-codeql.1", "2.0.0-codeql.1" ], "yanked_versions": {} From 163a403065d31132b7fe5a0b5ad46e75c826b1da Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Fri, 25 Apr 2025 16:35:14 +0100 Subject: [PATCH 370/656] Add Kotlin 2.2.0-Beta1; drop Kotlin 1.5 --- MODULE.bazel | 15 +++------------ java/kotlin-extractor/versions.bzl | 5 +---- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 7e8e36b5309..49ea49975bb 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -193,10 +193,6 @@ use_repo( kotlin_extractor_deps, "codeql_kotlin_defaults", "codeql_kotlin_embeddable", - "kotlin-compiler-1.5.0", - "kotlin-compiler-1.5.10", - "kotlin-compiler-1.5.20", - "kotlin-compiler-1.5.30", "kotlin-compiler-1.6.0", "kotlin-compiler-1.6.20", "kotlin-compiler-1.7.0", @@ -208,10 +204,7 @@ use_repo( "kotlin-compiler-2.0.20-Beta2", "kotlin-compiler-2.1.0-Beta1", "kotlin-compiler-2.1.20-Beta1", - "kotlin-compiler-embeddable-1.5.0", - "kotlin-compiler-embeddable-1.5.10", - "kotlin-compiler-embeddable-1.5.20", - "kotlin-compiler-embeddable-1.5.30", + "kotlin-compiler-2.2.0-Beta1", "kotlin-compiler-embeddable-1.6.0", "kotlin-compiler-embeddable-1.6.20", "kotlin-compiler-embeddable-1.7.0", @@ -223,10 +216,7 @@ use_repo( "kotlin-compiler-embeddable-2.0.20-Beta2", "kotlin-compiler-embeddable-2.1.0-Beta1", "kotlin-compiler-embeddable-2.1.20-Beta1", - "kotlin-stdlib-1.5.0", - "kotlin-stdlib-1.5.10", - "kotlin-stdlib-1.5.20", - "kotlin-stdlib-1.5.30", + "kotlin-compiler-embeddable-2.2.0-Beta1", "kotlin-stdlib-1.6.0", "kotlin-stdlib-1.6.20", "kotlin-stdlib-1.7.0", @@ -238,6 +228,7 @@ use_repo( "kotlin-stdlib-2.0.20-Beta2", "kotlin-stdlib-2.1.0-Beta1", "kotlin-stdlib-2.1.20-Beta1", + "kotlin-stdlib-2.2.0-Beta1", ) go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk") diff --git a/java/kotlin-extractor/versions.bzl b/java/kotlin-extractor/versions.bzl index c48f98ae363..e389bfd9514 100644 --- a/java/kotlin-extractor/versions.bzl +++ b/java/kotlin-extractor/versions.bzl @@ -1,9 +1,5 @@ # when updating this list, `bazel mod tidy` should be run from `codeql` to update `MODULE.bazel` VERSIONS = [ - "1.5.0", - "1.5.10", - "1.5.20", - "1.5.30", "1.6.0", "1.6.20", "1.7.0", @@ -15,6 +11,7 @@ VERSIONS = [ "2.0.20-Beta2", "2.1.0-Beta1", "2.1.20-Beta1", + "2.2.0-Beta1", ] def _version_to_tuple(v): From 24feb5166153a7209d5e0d756c7e1826f27cafe6 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 14:21:52 +0100 Subject: [PATCH 371/656] Fix Gradle config --- java/kotlin-extractor/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/kotlin-extractor/build.gradle b/java/kotlin-extractor/build.gradle index 57229642a92..eebdf150eb7 100644 --- a/java/kotlin-extractor/build.gradle +++ b/java/kotlin-extractor/build.gradle @@ -55,7 +55,7 @@ sourceSets { } jar { - archiveName = "${OUTPUT_JAR_NAME}" + archiveBaseName = "${OUTPUT_JAR_NAME}" } task getHomeDir { From a36fc30d442195830a3b2da4d4a4ac271dabf32d Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 14:23:19 +0100 Subject: [PATCH 372/656] Fix build for Kotlin 2.2.0 --- .../src/main/kotlin/KotlinFileExtractor.kt | 16 ++-------------- .../src/main/kotlin/KotlinUsesExtractor.kt | 2 +- .../src/main/kotlin/comments/CommentExtractor.kt | 8 +++++++- .../src/main/kotlin/utils/IrVisitorLookup.kt | 4 ++-- .../utils/versions/v_1_5_0/IrLazyFunction.kt | 3 +++ .../kotlin/utils/versions/v_1_5_0/IrVisitor.kt | 4 ++++ .../utils/versions/v_1_5_0/getJvmDefaultMode.kt | 7 +++++++ .../utils/versions/v_1_5_0/isDispatchReceiver.kt | 6 ++++++ .../v_1_5_0/parameterIndexExcludingReceivers.kt | 5 +++++ .../v_1_9_0-Beta/CommentExtractorLighterAST.kt | 3 +-- .../versions/v_2_2_0-Beta1/IrLazyFunction.kt | 3 +++ .../utils/versions/v_2_2_0-Beta1/IrVisitor.kt | 4 ++++ ...tParameterDeclarationWithWrappedDescriptor.kt | 7 +++++++ .../versions/v_2_2_0-Beta1/getJvmDefaultMode.kt | 7 +++++++ .../versions/v_2_2_0-Beta1/isDispatchReceiver.kt | 6 ++++++ .../parameterIndexExcludingReceivers.kt | 10 ++++++++++ 16 files changed, 75 insertions(+), 20 deletions(-) create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrLazyFunction.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrVisitor.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getJvmDefaultMode.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/isDispatchReceiver.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/parameterIndexExcludingReceivers.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrLazyFunction.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrVisitor.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/createImplicitParameterDeclarationWithWrappedDescriptor.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/getJvmDefaultMode.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/isDispatchReceiver.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/parameterIndexExcludingReceivers.kt diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index f1f4131002b..ab3d3f69e91 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.backend.js.utils.realOverrideTarget import org.jetbrains.kotlin.ir.builders.declarations.* import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyFunction import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.* import org.jetbrains.kotlin.ir.symbols.* @@ -1619,9 +1618,7 @@ open class KotlinFileExtractor( // (NB. kotlinc's actual implementation strategy is different -- it makes an inner class // called InterfaceWithDefault$DefaultImpls and stores the default methods // there to allow default method usage in Java < 8, but this is hopefully niche. - !jvmDefaultModeEnabledIsEnabled( - pluginContext.languageVersionSettings - .getFlag(JvmAnalysisFlags.jvmDefaultMode)) && + !jvmDefaultModeEnabledIsEnabled(getJvmDefaultMode(pluginContext.languageVersionSettings)) && f.parentClassOrNull.let { it != null && it.origin != IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB && @@ -6011,11 +6008,7 @@ open class KotlinFileExtractor( is IrGetValue -> { val exprParent = parent.expr(e, callable) val owner = e.symbol.owner - if ( - owner is IrValueParameter && - owner.index == -1 && - !owner.isExtensionReceiver() - ) { + if (owner is IrValueParameter && isDispatchReceiver(owner)) { extractThisAccess(e, owner.parent, exprParent, callable) } else { val isAnnotationClassParameter = @@ -6966,11 +6959,6 @@ open class KotlinFileExtractor( } } - private fun IrValueParameter.isExtensionReceiver(): Boolean { - val parentFun = parent as? IrFunction ?: return false - return parentFun.extensionReceiverParameter == this - } - private open inner class GeneratedClassHelper( protected val locId: Label, protected val ids: GeneratedClassLabels diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index a401d017a02..56deb81da01 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -2136,7 +2136,7 @@ open class KotlinUsesExtractor( } val parentId = parent ?: overriddenParentAttributes?.id ?: useDeclarationParentOf(vp, false) - val idxBase = overriddenParentAttributes?.valueParameters?.indexOf(vp) ?: vp.index + val idxBase = overriddenParentAttributes?.valueParameters?.indexOf(vp) ?: parameterIndexExcludingReceivers(vp) val idxOffset = if ( declarationParent is IrFunction && diff --git a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt index 0c6308acd99..322cffc87f3 100644 --- a/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/comments/CommentExtractor.kt @@ -2,12 +2,18 @@ package com.github.codeql.comments import com.github.codeql.* import com.github.codeql.utils.isLocalFunction +import com.github.codeql.utils.versions.isDispatchReceiver import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.util.parentClassOrNull +private fun IrValueParameter.isExtensionReceiver(): Boolean { + val parentFun = parent as? IrFunction ?: return false + return parentFun.extensionReceiverParameter == this +} + open class CommentExtractor( protected val fileExtractor: KotlinFileExtractor, protected val file: IrFile, @@ -19,7 +25,7 @@ open class CommentExtractor( protected fun getLabel(element: IrElement): Label? { if (element == file) return fileLabel - if (element is IrValueParameter && element.index == -1) { + if (element is IrValueParameter && (isDispatchReceiver(element) || element.isExtensionReceiver())) { // Don't attribute comments to the implicit `this` parameter of a function. return null } diff --git a/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt b/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt index 2ac55ee7ede..fff09c0da28 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/IrVisitorLookup.kt @@ -1,17 +1,17 @@ package com.github.codeql.utils +import com.github.codeql.utils.versions.IrVisitor import com.intellij.psi.PsiElement import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrDeclaration import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.util.isFakeOverride -import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrVisitorLookup( private val psi2Ir: Psi2IrFacade, private val psi: PsiElement, private val file: IrFile -) : IrElementVisitor> { +) : IrVisitor>() { private val location = psi.getLocation() override fun visitElement(element: IrElement, data: MutableCollection): Unit { diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrLazyFunction.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrLazyFunction.kt new file mode 100644 index 00000000000..e74d4f0426a --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrLazyFunction.kt @@ -0,0 +1,3 @@ +package com.github.codeql.utils.versions + +typealias IrLazyFunction = org.jetbrains.kotlin.ir.declarations.lazy.IrLazyFunction \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrVisitor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrVisitor.kt new file mode 100644 index 00000000000..4c5b074c480 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/IrVisitor.kt @@ -0,0 +1,4 @@ +package com.github.codeql.utils.versions + +abstract class IrVisitor : org.jetbrains.kotlin.ir.visitors.IrElementVisitor +abstract class IrVisitorVoid : org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getJvmDefaultMode.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getJvmDefaultMode.kt new file mode 100644 index 00000000000..e42c7c9c816 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/getJvmDefaultMode.kt @@ -0,0 +1,7 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.config.JvmAnalysisFlags +import org.jetbrains.kotlin.config.LanguageVersionSettings + +fun getJvmDefaultMode(lvs: LanguageVersionSettings) = + lvs.getFlag(JvmAnalysisFlags.jvmDefaultMode) diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/isDispatchReceiver.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/isDispatchReceiver.kt new file mode 100644 index 00000000000..2aeac8aafe7 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/isDispatchReceiver.kt @@ -0,0 +1,6 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.declarations.IrFunction +import org.jetbrains.kotlin.ir.declarations.IrValueParameter + +fun isDispatchReceiver(p: IrValueParameter) = p.index == -1 && p != (p.parent as? IrFunction)?.extensionReceiverParameter \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/parameterIndexExcludingReceivers.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/parameterIndexExcludingReceivers.kt new file mode 100644 index 00000000000..cfcad9ec69a --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/parameterIndexExcludingReceivers.kt @@ -0,0 +1,5 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.declarations.IrValueParameter + +fun parameterIndexExcludingReceivers(vp: IrValueParameter) = vp.index diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt index ecaa5e23287..af9276d43ca 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/CommentExtractorLighterAST.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.util.SYNTHETIC_OFFSET -import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.ir.visitors.acceptVoid import org.jetbrains.kotlin.kdoc.lexer.KDocTokens @@ -43,7 +42,7 @@ class CommentExtractorLighterAST( val kDocOwners = mutableMapOf>() val visitor = - object : IrElementVisitorVoid { + object : IrVisitorVoid() { override fun visitElement(element: IrElement) { val metadata = (element as? IrMetadataSourceOwner)?.metadata val sourceElement = (metadata as? FirMetadataSource)?.fir?.source diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrLazyFunction.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrLazyFunction.kt new file mode 100644 index 00000000000..6a445959f1e --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrLazyFunction.kt @@ -0,0 +1,3 @@ +package com.github.codeql.utils.versions + +typealias IrLazyFunction = org.jetbrains.kotlin.psi2ir.lazy.IrLazyFunction \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrVisitor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrVisitor.kt new file mode 100644 index 00000000000..45c5948d8fe --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/IrVisitor.kt @@ -0,0 +1,4 @@ +package com.github.codeql.utils.versions + +typealias IrVisitor = org.jetbrains.kotlin.ir.visitors.IrVisitor +typealias IrVisitorVoid = org.jetbrains.kotlin.ir.visitors.IrVisitorVoid \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/createImplicitParameterDeclarationWithWrappedDescriptor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/createImplicitParameterDeclarationWithWrappedDescriptor.kt new file mode 100644 index 00000000000..d6ebeb42c51 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/createImplicitParameterDeclarationWithWrappedDescriptor.kt @@ -0,0 +1,7 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.declarations.IrClass +import org.jetbrains.kotlin.ir.util.createThisReceiverParameter + +fun IrClass.createImplicitParameterDeclarationWithWrappedDescriptor() = + this.createThisReceiverParameter() diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/getJvmDefaultMode.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/getJvmDefaultMode.kt new file mode 100644 index 00000000000..06a5de34de2 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/getJvmDefaultMode.kt @@ -0,0 +1,7 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.config.LanguageVersionSettings +import org.jetbrains.kotlin.config.jvmDefaultMode + +fun getJvmDefaultMode(lvs: LanguageVersionSettings) = + lvs.jvmDefaultMode diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/isDispatchReceiver.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/isDispatchReceiver.kt new file mode 100644 index 00000000000..49323e54d92 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/isDispatchReceiver.kt @@ -0,0 +1,6 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.ir.declarations.IrParameterKind + +fun isDispatchReceiver(p: IrValueParameter) = p.kind == IrParameterKind.DispatchReceiver \ No newline at end of file diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/parameterIndexExcludingReceivers.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/parameterIndexExcludingReceivers.kt new file mode 100644 index 00000000000..c50e4dadaf5 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/parameterIndexExcludingReceivers.kt @@ -0,0 +1,10 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.ir.declarations.IrFunction +import org.jetbrains.kotlin.ir.declarations.IrValueParameter + +fun parameterIndexExcludingReceivers(vp: IrValueParameter): Int { + val offset = + (vp.parent as? IrFunction)?.let { (if (it.extensionReceiverParameter != null) 1 else 0) + (if (it.dispatchReceiverParameter != null) 1 else 0) } ?: 0 + return vp.indexInParameters - offset +} From 4cb1e7840f8c48539134a5e6e6ef28098d8cc557 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 14:32:05 +0100 Subject: [PATCH 373/656] Update Kotlin doc table --- docs/codeql/reusables/supported-versions-compilers.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index bb2d4a7416a..7e17d0cd97f 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -21,7 +21,7 @@ Java,"Java 7 to 24 [6]_","javac (OpenJDK and Oracle JDK), Eclipse compiler for Java (ECJ) [7]_",``.java`` - Kotlin,"Kotlin 1.5.0 to 2.1.2\ *x*","kotlinc",``.kt`` + Kotlin,"Kotlin 1.6.0 to 2.2.0\ *x*","kotlinc",``.kt`` JavaScript,ECMAScript 2022 or lower,Not applicable,"``.js``, ``.jsx``, ``.mjs``, ``.es``, ``.es6``, ``.htm``, ``.html``, ``.xhtm``, ``.xhtml``, ``.vue``, ``.hbs``, ``.ejs``, ``.njk``, ``.json``, ``.yaml``, ``.yml``, ``.raml``, ``.xml`` [8]_" Python [9]_,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13",Not applicable,``.py`` Ruby [10]_,"up to 3.3",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``" From 2ad5e20e799b2684bc22ceb00cd818d7f99b487b Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 14:34:38 +0100 Subject: [PATCH 374/656] Change note --- java/ql/lib/change-notes/2025-04-28-kotlin-220.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2025-04-28-kotlin-220.md diff --git a/java/ql/lib/change-notes/2025-04-28-kotlin-220.md b/java/ql/lib/change-notes/2025-04-28-kotlin-220.md new file mode 100644 index 00000000000..c0c257a2f07 --- /dev/null +++ b/java/ql/lib/change-notes/2025-04-28-kotlin-220.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Kotlin versions up to 2.2.0\ *x* are now supported. Support for the Kotlin 1.5.x series is dropped (so the minimum Kotlin version is now 1.6.0). From 3f23212d4e36989fc1a00c981665e28e7dde2fa1 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 14:35:05 +0100 Subject: [PATCH 375/656] Update test expectation --- .../diagnostics/kotlin-version-too-new/diagnostics.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected b/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected index 9a2cbdc1ab0..39e1f6e6b98 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected @@ -1,5 +1,5 @@ { - "markdownMessage": "The Kotlin version installed (`999.999.999`) is too recent for this version of CodeQL. Install a version lower than 2.1.30.", + "markdownMessage": "The Kotlin version installed (`999.999.999`) is too recent for this version of CodeQL. Install a version lower than 2.2.10.", "severity": "error", "source": { "extractorName": "java", From 0d21fa51f28a39a93add5a3e4bed3946f5e13a53 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Mon, 28 Apr 2025 16:17:07 +0100 Subject: [PATCH 376/656] Change default version --- java/kotlin-extractor/dev/wrapper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/kotlin-extractor/dev/wrapper.py b/java/kotlin-extractor/dev/wrapper.py index f51db289269..f95a89352fc 100755 --- a/java/kotlin-extractor/dev/wrapper.py +++ b/java/kotlin-extractor/dev/wrapper.py @@ -27,7 +27,7 @@ import shutil import io import os -DEFAULT_VERSION = "2.0.0" +DEFAULT_VERSION = "2.2.0-Beta1" def options(): From 29d369f22fcec0e841f3e22c89224ae24473927a Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 11:22:54 +0100 Subject: [PATCH 377/656] Don't try to decode a class from a .java file --- java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt b/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt index 5a06de67c04..a18dd06247f 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt @@ -90,7 +90,11 @@ fun getIrClassVirtualFile(irClass: IrClass): VirtualFile? { } } is VirtualFileBasedSourceElement -> { - return cSource.virtualFile + if (cSource.virtualFile.name.endsWith(".class")) { + // At least lately, despite VirtualFileBasedSourceElement being constructed on a BinaryJavaClass, + // this can be a .java source file. + return cSource.virtualFile + } } is KotlinJvmBinarySourceElement -> { val binaryClass = cSource.binaryClass From 34e0a7b23a3b20e2f4b89f980ff91475a374e40e Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 13:51:07 +0100 Subject: [PATCH 378/656] Bump Kotlin version to keep integration test working --- .../kotlin/all-platforms/gradle_groovy_app/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle b/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle index 16aad9297b0..8ef1009376c 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle +++ b/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle @@ -8,7 +8,7 @@ plugins { // Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin. - id 'org.jetbrains.kotlin.jvm' version '1.5.31' + id 'org.jetbrains.kotlin.jvm' version '1.6.0' // Apply the application plugin to add support for building a CLI application in Java. id 'application' From 1afe67ab136ceb817e531a1e0d82557c53c00b69 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 13:51:28 +0100 Subject: [PATCH 379/656] Accept Kotlin 2.1.20 test changes These are mainly small changes in how source-locations are ascribed to synthetic expressions, plus three real changes: - The comment extractor is performing better presumably due to improvements in the underlying representation - *= /= and %= operations are once again extracted correctly; presumably their origin information has been fixed - Reference to a static final Java field can lead to more constant propagation than before The last one might be a minor nuisance to someone trying to find references to such a field. --- .../annotation_classes/classes.expected | 4 +- .../annotations/jvmName/test.expected | 4 +- .../arrays/arrayAccesses.expected | 27 +- .../library-tests/classes/PrintAst.expected | 48 +- .../classes/genericExprTypes.expected | 14 +- .../library-tests/comments/comments.expected | 5 +- .../library-tests/exprs/PrintAst.expected | 852 +++++++++--------- .../library-tests/exprs/binop.expected | 3 - .../exprs/delegatedProperties.expected | 22 +- .../library-tests/exprs/exprs.expected | 330 ++++--- .../library-tests/exprs/funcExprs.expected | 6 +- .../exprs_typeaccess/PrintAst.expected | 3 +- .../generic-instance-methods/test.expected | 20 +- .../test.expected | 8 +- .../internal-public-alias/test.expected | 6 +- .../jvmstatic-annotation/test.expected | 12 +- .../library-tests/methods/exprs.expected | 24 +- .../library-tests/methods/methods.expected | 8 +- .../library-tests/methods/parameters.expected | 4 +- .../modifiers/modifiers.expected | 20 +- .../private-anonymous-types/test.expected | 8 +- .../properties/properties.expected | 32 +- .../reflection/reflection.expected | 18 +- .../variables/variableAccesses.expected | 6 +- .../variables/variables.expected | 4 +- 25 files changed, 737 insertions(+), 751 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected b/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected index cf47ffc15bd..d42e6cf854c 100644 --- a/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected +++ b/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected @@ -32,8 +32,8 @@ annotations | def.kt:41:5:41:12 | Annot0k | def.kt:41:5:42:19 | Z | def.kt:5:1:21:60 | Annot0k | | def.kt:45:1:45:8 | Annot0k | def.kt:45:1:51:1 | fn | def.kt:5:1:21:60 | Annot0k | | def.kt:46:21:46:28 | Annot0k | def.kt:46:21:46:39 | a | def.kt:5:1:21:60 | Annot0k | -| def.kt:54:1:54:12 | Annot0k | def.kt:53:1:57:23 | getP | def.kt:5:1:21:60 | Annot0k | -| def.kt:55:1:55:12 | Annot0k | def.kt:53:1:57:23 | setP | def.kt:5:1:21:60 | Annot0k | +| def.kt:54:1:54:12 | Annot0k | def.kt:53:1:57:19 | getP | def.kt:5:1:21:60 | Annot0k | +| def.kt:55:1:55:12 | Annot0k | def.kt:53:1:57:19 | setP | def.kt:5:1:21:60 | Annot0k | | def.kt:56:1:56:14 | Annot0k | def.kt:53:1:57:23 | p | def.kt:5:1:21:60 | Annot0k | | def.kt:59:5:59:21 | Annot0k | def.kt:59:5:59:28 | | def.kt:5:1:21:60 | Annot0k | | use.java:10:5:10:21 | Annot0j | use.java:14:18:14:18 | Z | Annot0j.java:1:19:1:25 | Annot0j | diff --git a/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected b/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected index a3313a519ca..c56618efda8 100644 --- a/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected +++ b/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected @@ -1,8 +1,8 @@ | Test.java:2:17:2:17 | m | m | m | | test.kt:3:9:4:18 | getX_prop | getX_prop | getX | | test.kt:6:5:6:19 | getX | getX | getX | -| test.kt:8:5:10:19 | changeY | changeY | setY | -| test.kt:8:5:10:19 | y | y | getY | +| test.kt:8:5:10:14 | changeY | changeY | setY | +| test.kt:8:5:10:14 | y | y | getY | | test.kt:12:5:13:15 | method | method | fn | | test.kt:17:5:17:14 | p | p | p | | test.kt:18:5:18:32 | w | w | q | diff --git a/java/ql/test-kotlin2/library-tests/arrays/arrayAccesses.expected b/java/ql/test-kotlin2/library-tests/arrays/arrayAccesses.expected index 2decb2b876b..6217a2650e2 100644 --- a/java/ql/test-kotlin2/library-tests/arrays/arrayAccesses.expected +++ b/java/ql/test-kotlin2/library-tests/arrays/arrayAccesses.expected @@ -1,12 +1,21 @@ -| arrayGetsSets.kt:12:11:12:15 | ...[...] | arrayGetsSets.kt:12:3:12:15 | set(...) | int | arrayGetsSets.kt:12:11:12:12 | a1 | arrayGetsSets.kt:12:14:12:14 | 0 | -| arrayGetsSets.kt:13:11:13:15 | ...[...] | arrayGetsSets.kt:13:3:13:15 | set(...) | short | arrayGetsSets.kt:13:11:13:12 | a2 | arrayGetsSets.kt:13:14:13:14 | 0 | -| arrayGetsSets.kt:14:11:14:15 | ...[...] | arrayGetsSets.kt:14:3:14:15 | set(...) | byte | arrayGetsSets.kt:14:11:14:12 | a3 | arrayGetsSets.kt:14:14:14:14 | 0 | -| arrayGetsSets.kt:15:11:15:15 | ...[...] | arrayGetsSets.kt:15:3:15:15 | set(...) | long | arrayGetsSets.kt:15:11:15:12 | a4 | arrayGetsSets.kt:15:14:15:14 | 0 | -| arrayGetsSets.kt:16:11:16:15 | ...[...] | arrayGetsSets.kt:16:3:16:15 | set(...) | float | arrayGetsSets.kt:16:11:16:12 | a5 | arrayGetsSets.kt:16:14:16:14 | 0 | -| arrayGetsSets.kt:17:11:17:15 | ...[...] | arrayGetsSets.kt:17:3:17:15 | set(...) | double | arrayGetsSets.kt:17:11:17:12 | a6 | arrayGetsSets.kt:17:14:17:14 | 0 | -| arrayGetsSets.kt:18:11:18:15 | ...[...] | arrayGetsSets.kt:18:3:18:15 | set(...) | boolean | arrayGetsSets.kt:18:11:18:12 | a7 | arrayGetsSets.kt:18:14:18:14 | 0 | -| arrayGetsSets.kt:19:11:19:15 | ...[...] | arrayGetsSets.kt:19:3:19:15 | set(...) | char | arrayGetsSets.kt:19:11:19:12 | a8 | arrayGetsSets.kt:19:14:19:14 | 0 | -| arrayGetsSets.kt:20:11:20:15 | ...[...] | arrayGetsSets.kt:20:3:20:15 | set(...) | Object | arrayGetsSets.kt:20:11:20:12 | a9 | arrayGetsSets.kt:20:14:20:14 | 0 | +| arrayGetsSets.kt:12:3:12:15 | ...[...] | arrayGetsSets.kt:12:3:12:15 | ...=... | int[] | arrayGetsSets.kt:12:3:12:4 | a1 | arrayGetsSets.kt:12:6:12:6 | 0 | +| arrayGetsSets.kt:12:11:12:15 | ...[...] | arrayGetsSets.kt:12:3:12:15 | ...=... | int | arrayGetsSets.kt:12:11:12:12 | a1 | arrayGetsSets.kt:12:14:12:14 | 0 | +| arrayGetsSets.kt:13:3:13:15 | ...[...] | arrayGetsSets.kt:13:3:13:15 | ...=... | short[] | arrayGetsSets.kt:13:3:13:4 | a2 | arrayGetsSets.kt:13:6:13:6 | 0 | +| arrayGetsSets.kt:13:11:13:15 | ...[...] | arrayGetsSets.kt:13:3:13:15 | ...=... | short | arrayGetsSets.kt:13:11:13:12 | a2 | arrayGetsSets.kt:13:14:13:14 | 0 | +| arrayGetsSets.kt:14:3:14:15 | ...[...] | arrayGetsSets.kt:14:3:14:15 | ...=... | byte[] | arrayGetsSets.kt:14:3:14:4 | a3 | arrayGetsSets.kt:14:6:14:6 | 0 | +| arrayGetsSets.kt:14:11:14:15 | ...[...] | arrayGetsSets.kt:14:3:14:15 | ...=... | byte | arrayGetsSets.kt:14:11:14:12 | a3 | arrayGetsSets.kt:14:14:14:14 | 0 | +| arrayGetsSets.kt:15:3:15:15 | ...[...] | arrayGetsSets.kt:15:3:15:15 | ...=... | long[] | arrayGetsSets.kt:15:3:15:4 | a4 | arrayGetsSets.kt:15:6:15:6 | 0 | +| arrayGetsSets.kt:15:11:15:15 | ...[...] | arrayGetsSets.kt:15:3:15:15 | ...=... | long | arrayGetsSets.kt:15:11:15:12 | a4 | arrayGetsSets.kt:15:14:15:14 | 0 | +| arrayGetsSets.kt:16:3:16:15 | ...[...] | arrayGetsSets.kt:16:3:16:15 | ...=... | float[] | arrayGetsSets.kt:16:3:16:4 | a5 | arrayGetsSets.kt:16:6:16:6 | 0 | +| arrayGetsSets.kt:16:11:16:15 | ...[...] | arrayGetsSets.kt:16:3:16:15 | ...=... | float | arrayGetsSets.kt:16:11:16:12 | a5 | arrayGetsSets.kt:16:14:16:14 | 0 | +| arrayGetsSets.kt:17:3:17:15 | ...[...] | arrayGetsSets.kt:17:3:17:15 | ...=... | double[] | arrayGetsSets.kt:17:3:17:4 | a6 | arrayGetsSets.kt:17:6:17:6 | 0 | +| arrayGetsSets.kt:17:11:17:15 | ...[...] | arrayGetsSets.kt:17:3:17:15 | ...=... | double | arrayGetsSets.kt:17:11:17:12 | a6 | arrayGetsSets.kt:17:14:17:14 | 0 | +| arrayGetsSets.kt:18:3:18:15 | ...[...] | arrayGetsSets.kt:18:3:18:15 | ...=... | boolean[] | arrayGetsSets.kt:18:3:18:4 | a7 | arrayGetsSets.kt:18:6:18:6 | 0 | +| arrayGetsSets.kt:18:11:18:15 | ...[...] | arrayGetsSets.kt:18:3:18:15 | ...=... | boolean | arrayGetsSets.kt:18:11:18:12 | a7 | arrayGetsSets.kt:18:14:18:14 | 0 | +| arrayGetsSets.kt:19:3:19:15 | ...[...] | arrayGetsSets.kt:19:3:19:15 | ...=... | char[] | arrayGetsSets.kt:19:3:19:4 | a8 | arrayGetsSets.kt:19:6:19:6 | 0 | +| arrayGetsSets.kt:19:11:19:15 | ...[...] | arrayGetsSets.kt:19:3:19:15 | ...=... | char | arrayGetsSets.kt:19:11:19:12 | a8 | arrayGetsSets.kt:19:14:19:14 | 0 | +| arrayGetsSets.kt:20:3:20:15 | ...[...] | arrayGetsSets.kt:20:3:20:15 | ...=... | Object[] | arrayGetsSets.kt:20:3:20:4 | a9 | arrayGetsSets.kt:20:6:20:6 | 0 | +| arrayGetsSets.kt:20:11:20:15 | ...[...] | arrayGetsSets.kt:20:3:20:15 | ...=... | Object | arrayGetsSets.kt:20:11:20:12 | a9 | arrayGetsSets.kt:20:14:20:14 | 0 | | arrayGetsSets.kt:32:3:32:12 | ...[...] | arrayGetsSets.kt:32:3:32:12 | ...+=... | int | arrayGetsSets.kt:32:3:32:4 | a1 | arrayGetsSets.kt:32:6:32:6 | 0 | | arrayGetsSets.kt:38:3:38:13 | ...[...] | arrayGetsSets.kt:38:3:38:13 | .../=... | long | arrayGetsSets.kt:38:3:38:4 | a4 | arrayGetsSets.kt:38:6:38:6 | 0 | | arrayGetsSets.kt:39:3:39:13 | ...[...] | arrayGetsSets.kt:39:3:39:13 | ...-=... | float | arrayGetsSets.kt:39:3:39:4 | a5 | arrayGetsSets.kt:39:6:39:6 | 0 | diff --git a/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected b/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected index f98dba8f6cb..4abfda92799 100644 --- a/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/classes/PrintAst.expected @@ -882,20 +882,16 @@ localClassField.kt: # 2| 0: [WhenExpr] when ... # 2| 0: [WhenBranch] ... -> ... # 2| 0: [BooleanLiteral] true -# 2| 1: [ExprStmt] ; -# 2| 0: [ImplicitCoercionToUnitExpr] -# 2| 0: [TypeAccess] Unit -# 2| 1: [StmtExpr] -# 2| 0: [BlockStmt] { ... } -# 3| 0: [LocalTypeDeclStmt] class ... -# 3| 0: [LocalClass] L -# 3| 1: [Constructor] L -# 3| 5: [BlockStmt] { ... } -# 3| 0: [SuperConstructorInvocationStmt] super(...) -# 3| 1: [BlockStmt] { ... } -# 4| 1: [ExprStmt] ; -# 4| 0: [ClassInstanceExpr] new L(...) -# 4| -3: [TypeAccess] L +# 2| 1: [BlockStmt] { ... } +# 3| 0: [LocalTypeDeclStmt] class ... +# 3| 0: [LocalClass] L +# 3| 1: [Constructor] L +# 3| 5: [BlockStmt] { ... } +# 3| 0: [SuperConstructorInvocationStmt] super(...) +# 3| 1: [BlockStmt] { ... } +# 4| 1: [ExprStmt] ; +# 4| 0: [ClassInstanceExpr] new L(...) +# 4| -3: [TypeAccess] L # 5| 1: [WhenBranch] ... -> ... # 5| 0: [BooleanLiteral] true # 5| 1: [BlockStmt] { ... } @@ -910,20 +906,16 @@ localClassField.kt: # 7| 0: [WhenExpr] when ... # 7| 0: [WhenBranch] ... -> ... # 7| 0: [BooleanLiteral] true -# 7| 1: [ExprStmt] ; -# 7| 0: [ImplicitCoercionToUnitExpr] -# 7| 0: [TypeAccess] Unit -# 7| 1: [StmtExpr] -# 7| 0: [BlockStmt] { ... } -# 8| 0: [LocalTypeDeclStmt] class ... -# 8| 0: [LocalClass] L -# 8| 1: [Constructor] L -# 8| 5: [BlockStmt] { ... } -# 8| 0: [SuperConstructorInvocationStmt] super(...) -# 8| 1: [BlockStmt] { ... } -# 9| 1: [ExprStmt] ; -# 9| 0: [ClassInstanceExpr] new L(...) -# 9| -3: [TypeAccess] L +# 7| 1: [BlockStmt] { ... } +# 8| 0: [LocalTypeDeclStmt] class ... +# 8| 0: [LocalClass] L +# 8| 1: [Constructor] L +# 8| 5: [BlockStmt] { ... } +# 8| 0: [SuperConstructorInvocationStmt] super(...) +# 8| 1: [BlockStmt] { ... } +# 9| 1: [ExprStmt] ; +# 9| 0: [ClassInstanceExpr] new L(...) +# 9| -3: [TypeAccess] L # 10| 1: [WhenBranch] ... -> ... # 10| 0: [BooleanLiteral] true # 10| 1: [BlockStmt] { ... } diff --git a/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected b/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected index a61d001d270..2f7075c7e8e 100644 --- a/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected +++ b/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected @@ -6,23 +6,23 @@ | generic_anonymous.kt:1:26:1:33 | t | T | | generic_anonymous.kt:1:26:1:33 | this | Generic | | generic_anonymous.kt:1:26:1:33 | this.t | T | +| generic_anonymous.kt:3:3:3:15 | T | T | +| generic_anonymous.kt:3:3:3:15 | new Object(...) { ... } | new Object(...) { ... } | +| generic_anonymous.kt:3:3:3:15 | this | Generic | +| generic_anonymous.kt:3:3:3:15 | this.x | new Object(...) { ... } | | generic_anonymous.kt:3:3:5:3 | ...=... | new Object(...) { ... } | | generic_anonymous.kt:3:3:5:3 | T | T | -| generic_anonymous.kt:3:3:5:3 | T | T | | generic_anonymous.kt:3:3:5:3 | new Object(...) { ... } | new Object(...) { ... } | -| generic_anonymous.kt:3:3:5:3 | new Object(...) { ... } | new Object(...) { ... } | -| generic_anonymous.kt:3:3:5:3 | this | Generic | -| generic_anonymous.kt:3:3:5:3 | this.x | new Object(...) { ... } | | generic_anonymous.kt:3:3:5:3 | x | new Object(...) { ... } | | generic_anonymous.kt:3:19:5:3 | | new Object(...) { ... } | | generic_anonymous.kt:3:19:5:3 | Object | Object | | generic_anonymous.kt:3:19:5:3 | new (...) | new Object(...) { ... } | +| generic_anonymous.kt:4:7:4:16 | T | T | +| generic_anonymous.kt:4:7:4:16 | this | new Object(...) { ... } | +| generic_anonymous.kt:4:7:4:16 | this.member | T | | generic_anonymous.kt:4:7:4:20 | ...=... | T | | generic_anonymous.kt:4:7:4:20 | T | T | -| generic_anonymous.kt:4:7:4:20 | T | T | | generic_anonymous.kt:4:7:4:20 | member | T | -| generic_anonymous.kt:4:7:4:20 | this | new Object(...) { ... } | -| generic_anonymous.kt:4:7:4:20 | this.member | T | | generic_anonymous.kt:4:20:4:20 | Generic | Generic | | generic_anonymous.kt:4:20:4:20 | Generic.this | Generic | | generic_anonymous.kt:4:20:4:20 | getT(...) | T | diff --git a/java/ql/test-kotlin2/library-tests/comments/comments.expected b/java/ql/test-kotlin2/library-tests/comments/comments.expected index 5acdeffb4b3..77a5ce16470 100644 --- a/java/ql/test-kotlin2/library-tests/comments/comments.expected +++ b/java/ql/test-kotlin2/library-tests/comments/comments.expected @@ -18,13 +18,15 @@ comments commentOwners | comments.kt:1:1:1:36 | /** Kdoc owned by CompilationUnit */ | comments.kt:0:0:0:0 | comments | | comments.kt:4:1:11:3 | /**\n * A group of *members*.\n *\n * This class has no useful logic; it's just a documentation example.\n *\n * @property name the name of this group.\n * @constructor Creates an empty group.\n */ | comments.kt:12:1:31:1 | Group | -| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:5:17:46 | getMembers$private | +| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:5:17:23 | getMembers$private | | comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:5:17:46 | members | | comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:5:17:46 | members | | comments.kt:19:5:22:7 | /**\n * Adds a [member] to this group.\n * @return the new size of the group.\n */ | comments.kt:23:5:26:5 | add | +| comments.kt:48:1:50:3 | /**\n * A type alias comment\n */ | comments.kt:51:1:51:24 | MyType | | comments.kt:61:5:63:7 | /**\n * A prop comment\n */ | comments.kt:64:5:68:17 | prop | | comments.kt:65:9:67:11 | /**\n * An accessor comment\n */ | comments.kt:68:9:68:17 | getProp | | comments.kt:79:9:81:11 | /**\n * A local function comment\n */ | comments.kt:82:9:82:24 | localFn | +| comments.kt:88:10:90:11 | /**\n * An anonymous object comment\n */ | comments.kt:87:15:92:5 | | | comments.kt:88:10:90:11 | /**\n * An anonymous object comment\n */ | comments.kt:87:15:92:5 | new X(...) { ... } | commentNoOwners | comments.kt:24:9:24:25 | // A line comment | @@ -32,7 +34,6 @@ commentNoOwners | comments.kt:35:5:35:34 | /** Medium is in the middle */ | | comments.kt:37:5:37:23 | /** This is high */ | | comments.kt:42:5:44:7 | /**\n * A variable.\n */ | -| comments.kt:48:1:50:3 | /**\n * A type alias comment\n */ | | comments.kt:54:5:56:7 | /**\n * An init block comment\n */ | | comments.kt:71:9:73:11 | /**\n * An anonymous function comment\n */ | commentSections diff --git a/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected b/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected index f408cad8288..6a4ac3cab31 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected @@ -21,7 +21,54 @@ delegatedProperties.kt: # 60| 0: [VarAccess] DelegatedPropertiesKt.topLevelInt # 60| -1: [TypeAccess] DelegatedPropertiesKt # 60| 1: [VarAccess] -# 87| 5: [ExtensionMethod] setExtDelegated +# 87| 5: [ExtensionMethod] getExtDelegated +# 87| 3: [TypeAccess] int +#-----| 4: (Parameters) +# 87| 0: [Parameter] +# 87| 0: [TypeAccess] MyClass +# 87| 5: [BlockStmt] { ... } +# 87| 0: [ReturnStmt] return ... +# 87| 0: [MethodCall] getValue(...) +# 87| -2: [TypeAccess] Integer +# 87| -1: [TypeAccess] PropertyReferenceDelegatesKt +# 87| 0: [VarAccess] DelegatedPropertiesKt.extDelegated$delegateMyClass +# 87| -1: [TypeAccess] DelegatedPropertiesKt +# 87| 1: [ExtensionReceiverAccess] this +# 87| 2: [PropertyRefExpr] ...::... +# 87| -4: [AnonymousClass] new KMutableProperty1(...) { ... } +# 87| 1: [Constructor] +# 87| 5: [BlockStmt] { ... } +# 87| 0: [SuperConstructorInvocationStmt] super(...) +# 87| 2: [Method] get +#-----| 4: (Parameters) +# 87| 0: [Parameter] a0 +# 87| 5: [BlockStmt] { ... } +# 87| 0: [ReturnStmt] return ... +# 87| 0: [MethodCall] getExtDelegated(...) +# 87| -1: [TypeAccess] DelegatedPropertiesKt +# 87| 0: [VarAccess] a0 +# 87| 3: [Method] invoke +#-----| 4: (Parameters) +# 87| 0: [Parameter] a0 +# 87| 5: [BlockStmt] { ... } +# 87| 0: [ReturnStmt] return ... +# 87| 0: [MethodCall] get(...) +# 87| -1: [ThisAccess] this +# 87| 0: [VarAccess] a0 +# 87| 4: [Method] set +#-----| 4: (Parameters) +# 87| 0: [Parameter] a0 +# 87| 1: [Parameter] a1 +# 87| 5: [BlockStmt] { ... } +# 87| 0: [ReturnStmt] return ... +# 87| 0: [MethodCall] setExtDelegated(...) +# 87| -1: [TypeAccess] DelegatedPropertiesKt +# 87| 0: [VarAccess] a0 +# 87| 1: [VarAccess] a1 +# 87| -3: [TypeAccess] KMutableProperty1 +# 87| 0: [TypeAccess] MyClass +# 87| 1: [TypeAccess] Integer +# 87| 6: [ExtensionMethod] setExtDelegated # 87| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 87| 0: [Parameter] @@ -71,7 +118,7 @@ delegatedProperties.kt: # 87| 0: [TypeAccess] MyClass # 87| 1: [TypeAccess] Integer # 87| 3: [VarAccess] -# 87| 6: [FieldDeclaration] KMutableProperty0 extDelegated$delegateMyClass; +# 87| 7: [FieldDeclaration] KMutableProperty0 extDelegated$delegateMyClass; # 87| -1: [TypeAccess] KMutableProperty0 # 87| 0: [TypeAccess] Integer # 87| 0: [PropertyRefExpr] ...::... @@ -99,53 +146,6 @@ delegatedProperties.kt: # 87| 0: [VarAccess] a0 # 87| -3: [TypeAccess] KMutableProperty0 # 87| 0: [TypeAccess] Integer -# 87| 7: [ExtensionMethod] getExtDelegated -# 87| 3: [TypeAccess] int -#-----| 4: (Parameters) -# 87| 0: [Parameter] -# 87| 0: [TypeAccess] MyClass -# 87| 5: [BlockStmt] { ... } -# 87| 0: [ReturnStmt] return ... -# 87| 0: [MethodCall] getValue(...) -# 87| -2: [TypeAccess] Integer -# 87| -1: [TypeAccess] PropertyReferenceDelegatesKt -# 87| 0: [VarAccess] DelegatedPropertiesKt.extDelegated$delegateMyClass -# 87| -1: [TypeAccess] DelegatedPropertiesKt -# 87| 1: [ExtensionReceiverAccess] this -# 87| 2: [PropertyRefExpr] ...::... -# 87| -4: [AnonymousClass] new KMutableProperty1(...) { ... } -# 87| 1: [Constructor] -# 87| 5: [BlockStmt] { ... } -# 87| 0: [SuperConstructorInvocationStmt] super(...) -# 87| 2: [Method] get -#-----| 4: (Parameters) -# 87| 0: [Parameter] a0 -# 87| 5: [BlockStmt] { ... } -# 87| 0: [ReturnStmt] return ... -# 87| 0: [MethodCall] getExtDelegated(...) -# 87| -1: [TypeAccess] DelegatedPropertiesKt -# 87| 0: [VarAccess] a0 -# 87| 3: [Method] invoke -#-----| 4: (Parameters) -# 87| 0: [Parameter] a0 -# 87| 5: [BlockStmt] { ... } -# 87| 0: [ReturnStmt] return ... -# 87| 0: [MethodCall] get(...) -# 87| -1: [ThisAccess] this -# 87| 0: [VarAccess] a0 -# 87| 4: [Method] set -#-----| 4: (Parameters) -# 87| 0: [Parameter] a0 -# 87| 1: [Parameter] a1 -# 87| 5: [BlockStmt] { ... } -# 87| 0: [ReturnStmt] return ... -# 87| 0: [MethodCall] setExtDelegated(...) -# 87| -1: [TypeAccess] DelegatedPropertiesKt -# 87| 0: [VarAccess] a0 -# 87| 1: [VarAccess] a1 -# 87| -3: [TypeAccess] KMutableProperty1 -# 87| 0: [TypeAccess] MyClass -# 87| 1: [TypeAccess] Integer # 4| 2: [Class] ClassProp1 # 4| 1: [Constructor] ClassProp1 # 4| 5: [BlockStmt] { ... } @@ -637,7 +637,47 @@ delegatedProperties.kt: # 39| -1: [ThisAccess] this # 39| -3: [TypeAccess] KProperty0 # 39| 0: [TypeAccess] Integer -# 42| 3: [Method] setVarResource0 +# 42| 3: [Method] getVarResource0 +# 42| 3: [TypeAccess] int +# 42| 5: [BlockStmt] { ... } +# 42| 0: [ReturnStmt] return ... +# 42| 0: [MethodCall] getValue(...) +# 42| -1: [VarAccess] this.varResource0$delegate +# 42| -1: [ThisAccess] this +# 42| 0: [ThisAccess] this +# 42| 1: [PropertyRefExpr] ...::... +# 42| -4: [AnonymousClass] new KMutableProperty1(...) { ... } +# 42| 1: [Constructor] +# 42| 5: [BlockStmt] { ... } +# 42| 0: [SuperConstructorInvocationStmt] super(...) +# 42| 2: [Method] get +#-----| 4: (Parameters) +# 42| 0: [Parameter] a0 +# 42| 5: [BlockStmt] { ... } +# 42| 0: [ReturnStmt] return ... +# 42| 0: [MethodCall] getVarResource0(...) +# 42| -1: [VarAccess] a0 +# 42| 3: [Method] invoke +#-----| 4: (Parameters) +# 42| 0: [Parameter] a0 +# 42| 5: [BlockStmt] { ... } +# 42| 0: [ReturnStmt] return ... +# 42| 0: [MethodCall] get(...) +# 42| -1: [ThisAccess] this +# 42| 0: [VarAccess] a0 +# 42| 4: [Method] set +#-----| 4: (Parameters) +# 42| 0: [Parameter] a0 +# 42| 1: [Parameter] a1 +# 42| 5: [BlockStmt] { ... } +# 42| 0: [ReturnStmt] return ... +# 42| 0: [MethodCall] setVarResource0(...) +# 42| -1: [VarAccess] a0 +# 42| 0: [VarAccess] a1 +# 42| -3: [TypeAccess] KMutableProperty1 +# 42| 0: [TypeAccess] Owner +# 42| 1: [TypeAccess] Integer +# 42| 4: [Method] setVarResource0 # 42| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 42| 0: [Parameter] @@ -681,50 +721,10 @@ delegatedProperties.kt: # 42| 0: [TypeAccess] Owner # 42| 1: [TypeAccess] Integer # 42| 2: [VarAccess] -# 42| 4: [FieldDeclaration] ResourceDelegate varResource0$delegate; +# 42| 5: [FieldDeclaration] ResourceDelegate varResource0$delegate; # 42| -1: [TypeAccess] ResourceDelegate # 42| 0: [ClassInstanceExpr] new ResourceDelegate(...) # 42| -3: [TypeAccess] ResourceDelegate -# 42| 5: [Method] getVarResource0 -# 42| 3: [TypeAccess] int -# 42| 5: [BlockStmt] { ... } -# 42| 0: [ReturnStmt] return ... -# 42| 0: [MethodCall] getValue(...) -# 42| -1: [VarAccess] this.varResource0$delegate -# 42| -1: [ThisAccess] this -# 42| 0: [ThisAccess] this -# 42| 1: [PropertyRefExpr] ...::... -# 42| -4: [AnonymousClass] new KMutableProperty1(...) { ... } -# 42| 1: [Constructor] -# 42| 5: [BlockStmt] { ... } -# 42| 0: [SuperConstructorInvocationStmt] super(...) -# 42| 2: [Method] get -#-----| 4: (Parameters) -# 42| 0: [Parameter] a0 -# 42| 5: [BlockStmt] { ... } -# 42| 0: [ReturnStmt] return ... -# 42| 0: [MethodCall] getVarResource0(...) -# 42| -1: [VarAccess] a0 -# 42| 3: [Method] invoke -#-----| 4: (Parameters) -# 42| 0: [Parameter] a0 -# 42| 5: [BlockStmt] { ... } -# 42| 0: [ReturnStmt] return ... -# 42| 0: [MethodCall] get(...) -# 42| -1: [ThisAccess] this -# 42| 0: [VarAccess] a0 -# 42| 4: [Method] set -#-----| 4: (Parameters) -# 42| 0: [Parameter] a0 -# 42| 1: [Parameter] a1 -# 42| 5: [BlockStmt] { ... } -# 42| 0: [ReturnStmt] return ... -# 42| 0: [MethodCall] setVarResource0(...) -# 42| -1: [VarAccess] a0 -# 42| 0: [VarAccess] a1 -# 42| -3: [TypeAccess] KMutableProperty1 -# 42| 0: [TypeAccess] Owner -# 42| 1: [TypeAccess] Integer # 45| 5: [Class] ResourceDelegate # 45| 1: [Constructor] ResourceDelegate # 45| 5: [BlockStmt] { ... } @@ -882,7 +882,49 @@ delegatedProperties.kt: # 65| 0: [ReturnStmt] return ... # 65| 0: [VarAccess] this.anotherClassInstance # 65| -1: [ThisAccess] this -# 66| 7: [Method] setDelegatedToMember1 +# 66| 7: [Method] getDelegatedToMember1 +# 66| 3: [TypeAccess] int +# 66| 5: [BlockStmt] { ... } +# 66| 0: [ReturnStmt] return ... +# 66| 0: [MethodCall] getValue(...) +# 66| -2: [TypeAccess] Integer +# 66| -1: [TypeAccess] PropertyReferenceDelegatesKt +# 66| 0: [VarAccess] this.delegatedToMember1$delegate +# 66| -1: [ThisAccess] this +# 66| 1: [ThisAccess] this +# 66| 2: [PropertyRefExpr] ...::... +# 66| -4: [AnonymousClass] new KMutableProperty1(...) { ... } +# 66| 1: [Constructor] +# 66| 5: [BlockStmt] { ... } +# 66| 0: [SuperConstructorInvocationStmt] super(...) +# 66| 2: [Method] get +#-----| 4: (Parameters) +# 66| 0: [Parameter] a0 +# 66| 5: [BlockStmt] { ... } +# 66| 0: [ReturnStmt] return ... +# 66| 0: [MethodCall] getDelegatedToMember1(...) +# 66| -1: [VarAccess] a0 +# 66| 3: [Method] invoke +#-----| 4: (Parameters) +# 66| 0: [Parameter] a0 +# 66| 5: [BlockStmt] { ... } +# 66| 0: [ReturnStmt] return ... +# 66| 0: [MethodCall] get(...) +# 66| -1: [ThisAccess] this +# 66| 0: [VarAccess] a0 +# 66| 4: [Method] set +#-----| 4: (Parameters) +# 66| 0: [Parameter] a0 +# 66| 1: [Parameter] a1 +# 66| 5: [BlockStmt] { ... } +# 66| 0: [ReturnStmt] return ... +# 66| 0: [MethodCall] setDelegatedToMember1(...) +# 66| -1: [VarAccess] a0 +# 66| 0: [VarAccess] a1 +# 66| -3: [TypeAccess] KMutableProperty1 +# 66| 0: [TypeAccess] MyClass +# 66| 1: [TypeAccess] Integer +# 66| 8: [Method] setDelegatedToMember1 # 66| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 66| 0: [Parameter] @@ -928,7 +970,7 @@ delegatedProperties.kt: # 66| 0: [TypeAccess] MyClass # 66| 1: [TypeAccess] Integer # 66| 3: [VarAccess] -# 66| 8: [FieldDeclaration] KMutableProperty0 delegatedToMember1$delegate; +# 66| 9: [FieldDeclaration] KMutableProperty0 delegatedToMember1$delegate; # 66| -1: [TypeAccess] KMutableProperty0 # 66| 0: [TypeAccess] Integer # 66| 0: [PropertyRefExpr] ...::... @@ -969,49 +1011,50 @@ delegatedProperties.kt: # 66| 0: [TypeAccess] Integer # 66| 0: [ThisAccess] MyClass.this # 66| 0: [TypeAccess] MyClass -# 66| 9: [Method] getDelegatedToMember1 -# 66| 3: [TypeAccess] int -# 66| 5: [BlockStmt] { ... } -# 66| 0: [ReturnStmt] return ... -# 66| 0: [MethodCall] getValue(...) -# 66| -2: [TypeAccess] Integer -# 66| -1: [TypeAccess] PropertyReferenceDelegatesKt -# 66| 0: [VarAccess] this.delegatedToMember1$delegate -# 66| -1: [ThisAccess] this -# 66| 1: [ThisAccess] this -# 66| 2: [PropertyRefExpr] ...::... -# 66| -4: [AnonymousClass] new KMutableProperty1(...) { ... } -# 66| 1: [Constructor] -# 66| 5: [BlockStmt] { ... } -# 66| 0: [SuperConstructorInvocationStmt] super(...) -# 66| 2: [Method] get +# 67| 10: [Method] getDelegatedToMember2 +# 67| 3: [TypeAccess] int +# 67| 5: [BlockStmt] { ... } +# 67| 0: [ReturnStmt] return ... +# 67| 0: [MethodCall] getValue(...) +# 67| -3: [TypeAccess] Integer +# 67| -2: [TypeAccess] MyClass +# 67| -1: [TypeAccess] PropertyReferenceDelegatesKt +# 67| 0: [VarAccess] this.delegatedToMember2$delegate +# 67| -1: [ThisAccess] this +# 67| 1: [ThisAccess] this +# 67| 2: [PropertyRefExpr] ...::... +# 67| -4: [AnonymousClass] new KMutableProperty1(...) { ... } +# 67| 1: [Constructor] +# 67| 5: [BlockStmt] { ... } +# 67| 0: [SuperConstructorInvocationStmt] super(...) +# 67| 2: [Method] get #-----| 4: (Parameters) -# 66| 0: [Parameter] a0 -# 66| 5: [BlockStmt] { ... } -# 66| 0: [ReturnStmt] return ... -# 66| 0: [MethodCall] getDelegatedToMember1(...) -# 66| -1: [VarAccess] a0 -# 66| 3: [Method] invoke +# 67| 0: [Parameter] a0 +# 67| 5: [BlockStmt] { ... } +# 67| 0: [ReturnStmt] return ... +# 67| 0: [MethodCall] getDelegatedToMember2(...) +# 67| -1: [VarAccess] a0 +# 67| 3: [Method] invoke #-----| 4: (Parameters) -# 66| 0: [Parameter] a0 -# 66| 5: [BlockStmt] { ... } -# 66| 0: [ReturnStmt] return ... -# 66| 0: [MethodCall] get(...) -# 66| -1: [ThisAccess] this -# 66| 0: [VarAccess] a0 -# 66| 4: [Method] set +# 67| 0: [Parameter] a0 +# 67| 5: [BlockStmt] { ... } +# 67| 0: [ReturnStmt] return ... +# 67| 0: [MethodCall] get(...) +# 67| -1: [ThisAccess] this +# 67| 0: [VarAccess] a0 +# 67| 4: [Method] set #-----| 4: (Parameters) -# 66| 0: [Parameter] a0 -# 66| 1: [Parameter] a1 -# 66| 5: [BlockStmt] { ... } -# 66| 0: [ReturnStmt] return ... -# 66| 0: [MethodCall] setDelegatedToMember1(...) -# 66| -1: [VarAccess] a0 -# 66| 0: [VarAccess] a1 -# 66| -3: [TypeAccess] KMutableProperty1 -# 66| 0: [TypeAccess] MyClass -# 66| 1: [TypeAccess] Integer -# 67| 10: [Method] setDelegatedToMember2 +# 67| 0: [Parameter] a0 +# 67| 1: [Parameter] a1 +# 67| 5: [BlockStmt] { ... } +# 67| 0: [ReturnStmt] return ... +# 67| 0: [MethodCall] setDelegatedToMember2(...) +# 67| -1: [VarAccess] a0 +# 67| 0: [VarAccess] a1 +# 67| -3: [TypeAccess] KMutableProperty1 +# 67| 0: [TypeAccess] MyClass +# 67| 1: [TypeAccess] Integer +# 67| 11: [Method] setDelegatedToMember2 # 67| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 67| 0: [Parameter] @@ -1058,7 +1101,7 @@ delegatedProperties.kt: # 67| 0: [TypeAccess] MyClass # 67| 1: [TypeAccess] Integer # 67| 3: [VarAccess] -# 67| 11: [FieldDeclaration] KMutableProperty1 delegatedToMember2$delegate; +# 67| 12: [FieldDeclaration] KMutableProperty1 delegatedToMember2$delegate; # 67| -1: [TypeAccess] KMutableProperty1 # 67| 0: [TypeAccess] MyClass # 67| 1: [TypeAccess] Integer @@ -1094,50 +1137,49 @@ delegatedProperties.kt: # 67| -3: [TypeAccess] KMutableProperty1 # 67| 0: [TypeAccess] MyClass # 67| 1: [TypeAccess] Integer -# 67| 12: [Method] getDelegatedToMember2 -# 67| 3: [TypeAccess] int -# 67| 5: [BlockStmt] { ... } -# 67| 0: [ReturnStmt] return ... -# 67| 0: [MethodCall] getValue(...) -# 67| -3: [TypeAccess] Integer -# 67| -2: [TypeAccess] MyClass -# 67| -1: [TypeAccess] PropertyReferenceDelegatesKt -# 67| 0: [VarAccess] this.delegatedToMember2$delegate -# 67| -1: [ThisAccess] this -# 67| 1: [ThisAccess] this -# 67| 2: [PropertyRefExpr] ...::... -# 67| -4: [AnonymousClass] new KMutableProperty1(...) { ... } -# 67| 1: [Constructor] -# 67| 5: [BlockStmt] { ... } -# 67| 0: [SuperConstructorInvocationStmt] super(...) -# 67| 2: [Method] get +# 69| 13: [Method] getDelegatedToExtMember1 +# 69| 3: [TypeAccess] int +# 69| 5: [BlockStmt] { ... } +# 69| 0: [ReturnStmt] return ... +# 69| 0: [MethodCall] getValue(...) +# 69| -2: [TypeAccess] Integer +# 69| -1: [TypeAccess] PropertyReferenceDelegatesKt +# 69| 0: [VarAccess] this.delegatedToExtMember1$delegate +# 69| -1: [ThisAccess] this +# 69| 1: [ThisAccess] this +# 69| 2: [PropertyRefExpr] ...::... +# 69| -4: [AnonymousClass] new KMutableProperty1(...) { ... } +# 69| 1: [Constructor] +# 69| 5: [BlockStmt] { ... } +# 69| 0: [SuperConstructorInvocationStmt] super(...) +# 69| 2: [Method] get #-----| 4: (Parameters) -# 67| 0: [Parameter] a0 -# 67| 5: [BlockStmt] { ... } -# 67| 0: [ReturnStmt] return ... -# 67| 0: [MethodCall] getDelegatedToMember2(...) -# 67| -1: [VarAccess] a0 -# 67| 3: [Method] invoke +# 69| 0: [Parameter] a0 +# 69| 5: [BlockStmt] { ... } +# 69| 0: [ReturnStmt] return ... +# 69| 0: [MethodCall] getDelegatedToExtMember1(...) +# 69| -1: [VarAccess] a0 +# 69| 3: [Method] invoke #-----| 4: (Parameters) -# 67| 0: [Parameter] a0 -# 67| 5: [BlockStmt] { ... } -# 67| 0: [ReturnStmt] return ... -# 67| 0: [MethodCall] get(...) -# 67| -1: [ThisAccess] this -# 67| 0: [VarAccess] a0 -# 67| 4: [Method] set +# 69| 0: [Parameter] a0 +# 69| 5: [BlockStmt] { ... } +# 69| 0: [ReturnStmt] return ... +# 69| 0: [MethodCall] get(...) +# 69| -1: [ThisAccess] this +# 69| 0: [VarAccess] a0 +# 69| 4: [Method] set #-----| 4: (Parameters) -# 67| 0: [Parameter] a0 -# 67| 1: [Parameter] a1 -# 67| 5: [BlockStmt] { ... } -# 67| 0: [ReturnStmt] return ... -# 67| 0: [MethodCall] setDelegatedToMember2(...) -# 67| -1: [VarAccess] a0 -# 67| 0: [VarAccess] a1 -# 67| -3: [TypeAccess] KMutableProperty1 -# 67| 0: [TypeAccess] MyClass -# 67| 1: [TypeAccess] Integer -# 69| 13: [Method] setDelegatedToExtMember1 +# 69| 0: [Parameter] a0 +# 69| 1: [Parameter] a1 +# 69| 5: [BlockStmt] { ... } +# 69| 0: [ReturnStmt] return ... +# 69| 0: [MethodCall] setDelegatedToExtMember1(...) +# 69| -1: [VarAccess] a0 +# 69| 0: [VarAccess] a1 +# 69| -3: [TypeAccess] KMutableProperty1 +# 69| 0: [TypeAccess] MyClass +# 69| 1: [TypeAccess] Integer +# 69| 14: [Method] setDelegatedToExtMember1 # 69| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 69| 0: [Parameter] @@ -1183,7 +1225,7 @@ delegatedProperties.kt: # 69| 0: [TypeAccess] MyClass # 69| 1: [TypeAccess] Integer # 69| 3: [VarAccess] -# 69| 14: [FieldDeclaration] KMutableProperty0 delegatedToExtMember1$delegate; +# 69| 15: [FieldDeclaration] KMutableProperty0 delegatedToExtMember1$delegate; # 69| -1: [TypeAccess] KMutableProperty0 # 69| 0: [TypeAccess] Integer # 69| 0: [PropertyRefExpr] ...::... @@ -1226,49 +1268,50 @@ delegatedProperties.kt: # 69| 0: [TypeAccess] Integer # 69| 0: [ThisAccess] MyClass.this # 69| 0: [TypeAccess] MyClass -# 69| 15: [Method] getDelegatedToExtMember1 -# 69| 3: [TypeAccess] int -# 69| 5: [BlockStmt] { ... } -# 69| 0: [ReturnStmt] return ... -# 69| 0: [MethodCall] getValue(...) -# 69| -2: [TypeAccess] Integer -# 69| -1: [TypeAccess] PropertyReferenceDelegatesKt -# 69| 0: [VarAccess] this.delegatedToExtMember1$delegate -# 69| -1: [ThisAccess] this -# 69| 1: [ThisAccess] this -# 69| 2: [PropertyRefExpr] ...::... -# 69| -4: [AnonymousClass] new KMutableProperty1(...) { ... } -# 69| 1: [Constructor] -# 69| 5: [BlockStmt] { ... } -# 69| 0: [SuperConstructorInvocationStmt] super(...) -# 69| 2: [Method] get +# 70| 16: [Method] getDelegatedToExtMember2 +# 70| 3: [TypeAccess] int +# 70| 5: [BlockStmt] { ... } +# 70| 0: [ReturnStmt] return ... +# 70| 0: [MethodCall] getValue(...) +# 70| -3: [TypeAccess] Integer +# 70| -2: [TypeAccess] MyClass +# 70| -1: [TypeAccess] PropertyReferenceDelegatesKt +# 70| 0: [VarAccess] this.delegatedToExtMember2$delegate +# 70| -1: [ThisAccess] this +# 70| 1: [ThisAccess] this +# 70| 2: [PropertyRefExpr] ...::... +# 70| -4: [AnonymousClass] new KMutableProperty1(...) { ... } +# 70| 1: [Constructor] +# 70| 5: [BlockStmt] { ... } +# 70| 0: [SuperConstructorInvocationStmt] super(...) +# 70| 2: [Method] get #-----| 4: (Parameters) -# 69| 0: [Parameter] a0 -# 69| 5: [BlockStmt] { ... } -# 69| 0: [ReturnStmt] return ... -# 69| 0: [MethodCall] getDelegatedToExtMember1(...) -# 69| -1: [VarAccess] a0 -# 69| 3: [Method] invoke +# 70| 0: [Parameter] a0 +# 70| 5: [BlockStmt] { ... } +# 70| 0: [ReturnStmt] return ... +# 70| 0: [MethodCall] getDelegatedToExtMember2(...) +# 70| -1: [VarAccess] a0 +# 70| 3: [Method] invoke #-----| 4: (Parameters) -# 69| 0: [Parameter] a0 -# 69| 5: [BlockStmt] { ... } -# 69| 0: [ReturnStmt] return ... -# 69| 0: [MethodCall] get(...) -# 69| -1: [ThisAccess] this -# 69| 0: [VarAccess] a0 -# 69| 4: [Method] set +# 70| 0: [Parameter] a0 +# 70| 5: [BlockStmt] { ... } +# 70| 0: [ReturnStmt] return ... +# 70| 0: [MethodCall] get(...) +# 70| -1: [ThisAccess] this +# 70| 0: [VarAccess] a0 +# 70| 4: [Method] set #-----| 4: (Parameters) -# 69| 0: [Parameter] a0 -# 69| 1: [Parameter] a1 -# 69| 5: [BlockStmt] { ... } -# 69| 0: [ReturnStmt] return ... -# 69| 0: [MethodCall] setDelegatedToExtMember1(...) -# 69| -1: [VarAccess] a0 -# 69| 0: [VarAccess] a1 -# 69| -3: [TypeAccess] KMutableProperty1 -# 69| 0: [TypeAccess] MyClass -# 69| 1: [TypeAccess] Integer -# 70| 16: [Method] setDelegatedToExtMember2 +# 70| 0: [Parameter] a0 +# 70| 1: [Parameter] a1 +# 70| 5: [BlockStmt] { ... } +# 70| 0: [ReturnStmt] return ... +# 70| 0: [MethodCall] setDelegatedToExtMember2(...) +# 70| -1: [VarAccess] a0 +# 70| 0: [VarAccess] a1 +# 70| -3: [TypeAccess] KMutableProperty1 +# 70| 0: [TypeAccess] MyClass +# 70| 1: [TypeAccess] Integer +# 70| 17: [Method] setDelegatedToExtMember2 # 70| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 70| 0: [Parameter] @@ -1315,7 +1358,7 @@ delegatedProperties.kt: # 70| 0: [TypeAccess] MyClass # 70| 1: [TypeAccess] Integer # 70| 3: [VarAccess] -# 70| 17: [FieldDeclaration] KMutableProperty1 delegatedToExtMember2$delegate; +# 70| 18: [FieldDeclaration] KMutableProperty1 delegatedToExtMember2$delegate; # 70| -1: [TypeAccess] KMutableProperty1 # 70| 0: [TypeAccess] MyClass # 70| 1: [TypeAccess] Integer @@ -1353,82 +1396,7 @@ delegatedProperties.kt: # 70| -3: [TypeAccess] KMutableProperty1 # 70| 0: [TypeAccess] MyClass # 70| 1: [TypeAccess] Integer -# 70| 18: [Method] getDelegatedToExtMember2 -# 70| 3: [TypeAccess] int -# 70| 5: [BlockStmt] { ... } -# 70| 0: [ReturnStmt] return ... -# 70| 0: [MethodCall] getValue(...) -# 70| -3: [TypeAccess] Integer -# 70| -2: [TypeAccess] MyClass -# 70| -1: [TypeAccess] PropertyReferenceDelegatesKt -# 70| 0: [VarAccess] this.delegatedToExtMember2$delegate -# 70| -1: [ThisAccess] this -# 70| 1: [ThisAccess] this -# 70| 2: [PropertyRefExpr] ...::... -# 70| -4: [AnonymousClass] new KMutableProperty1(...) { ... } -# 70| 1: [Constructor] -# 70| 5: [BlockStmt] { ... } -# 70| 0: [SuperConstructorInvocationStmt] super(...) -# 70| 2: [Method] get -#-----| 4: (Parameters) -# 70| 0: [Parameter] a0 -# 70| 5: [BlockStmt] { ... } -# 70| 0: [ReturnStmt] return ... -# 70| 0: [MethodCall] getDelegatedToExtMember2(...) -# 70| -1: [VarAccess] a0 -# 70| 3: [Method] invoke -#-----| 4: (Parameters) -# 70| 0: [Parameter] a0 -# 70| 5: [BlockStmt] { ... } -# 70| 0: [ReturnStmt] return ... -# 70| 0: [MethodCall] get(...) -# 70| -1: [ThisAccess] this -# 70| 0: [VarAccess] a0 -# 70| 4: [Method] set -#-----| 4: (Parameters) -# 70| 0: [Parameter] a0 -# 70| 1: [Parameter] a1 -# 70| 5: [BlockStmt] { ... } -# 70| 0: [ReturnStmt] return ... -# 70| 0: [MethodCall] setDelegatedToExtMember2(...) -# 70| -1: [VarAccess] a0 -# 70| 0: [VarAccess] a1 -# 70| -3: [TypeAccess] KMutableProperty1 -# 70| 0: [TypeAccess] MyClass -# 70| 1: [TypeAccess] Integer -# 72| 19: [FieldDeclaration] KProperty0 delegatedToBaseClass1$delegate; -# 72| -1: [TypeAccess] KProperty0 -# 72| 0: [TypeAccess] Integer -# 72| 0: [PropertyRefExpr] ...::... -# 72| -4: [AnonymousClass] new KProperty0(...) { ... } -# 72| 1: [Constructor] -#-----| 4: (Parameters) -# 72| 0: [Parameter] -# 72| 5: [BlockStmt] { ... } -# 72| 0: [SuperConstructorInvocationStmt] super(...) -# 72| 1: [ExprStmt] ; -# 72| 0: [AssignExpr] ...=... -# 72| 0: [VarAccess] this. -# 72| -1: [ThisAccess] this -# 72| 1: [VarAccess] -# 72| 2: [FieldDeclaration] MyClass ; -# 72| -1: [TypeAccess] MyClass -# 72| 3: [Method] get -# 72| 5: [BlockStmt] { ... } -# 72| 0: [ReturnStmt] return ... -# 72| 0: [MethodCall] getBaseClassInt(...) -# 72| -1: [VarAccess] this. -# 72| -1: [ThisAccess] this -# 72| 4: [Method] invoke -# 72| 5: [BlockStmt] { ... } -# 72| 0: [ReturnStmt] return ... -# 72| 0: [MethodCall] get(...) -# 72| -1: [ThisAccess] this -# 72| -3: [TypeAccess] KProperty0 -# 72| 0: [TypeAccess] Integer -# 72| 0: [ThisAccess] MyClass.this -# 72| 0: [TypeAccess] MyClass -# 72| 20: [Method] getDelegatedToBaseClass1 +# 72| 19: [Method] getDelegatedToBaseClass1 # 72| 3: [TypeAccess] int # 72| 5: [BlockStmt] { ... } # 72| 0: [ReturnStmt] return ... @@ -1461,34 +1429,39 @@ delegatedProperties.kt: # 72| -3: [TypeAccess] KProperty1 # 72| 0: [TypeAccess] MyClass # 72| 1: [TypeAccess] Integer -# 73| 21: [FieldDeclaration] KProperty1 delegatedToBaseClass2$delegate; -# 73| -1: [TypeAccess] KProperty1 -# 73| 0: [TypeAccess] Base -# 73| 1: [TypeAccess] Integer -# 73| 0: [PropertyRefExpr] ...::... -# 73| -4: [AnonymousClass] new KProperty1(...) { ... } -# 73| 1: [Constructor] -# 73| 5: [BlockStmt] { ... } -# 73| 0: [SuperConstructorInvocationStmt] super(...) -# 73| 2: [Method] get +# 72| 20: [FieldDeclaration] KProperty0 delegatedToBaseClass1$delegate; +# 72| -1: [TypeAccess] KProperty0 +# 72| 0: [TypeAccess] Integer +# 72| 0: [PropertyRefExpr] ...::... +# 72| -4: [AnonymousClass] new KProperty0(...) { ... } +# 72| 1: [Constructor] #-----| 4: (Parameters) -# 73| 0: [Parameter] a0 -# 73| 5: [BlockStmt] { ... } -# 73| 0: [ReturnStmt] return ... -# 73| 0: [MethodCall] getBaseClassInt(...) -# 73| -1: [VarAccess] a0 -# 73| 3: [Method] invoke -#-----| 4: (Parameters) -# 73| 0: [Parameter] a0 -# 73| 5: [BlockStmt] { ... } -# 73| 0: [ReturnStmt] return ... -# 73| 0: [MethodCall] get(...) -# 73| -1: [ThisAccess] this -# 73| 0: [VarAccess] a0 -# 73| -3: [TypeAccess] KProperty1 -# 73| 0: [TypeAccess] Base -# 73| 1: [TypeAccess] Integer -# 73| 22: [Method] getDelegatedToBaseClass2 +# 72| 0: [Parameter] +# 72| 5: [BlockStmt] { ... } +# 72| 0: [SuperConstructorInvocationStmt] super(...) +# 72| 1: [ExprStmt] ; +# 72| 0: [AssignExpr] ...=... +# 72| 0: [VarAccess] this. +# 72| -1: [ThisAccess] this +# 72| 1: [VarAccess] +# 72| 2: [FieldDeclaration] MyClass ; +# 72| -1: [TypeAccess] MyClass +# 72| 3: [Method] get +# 72| 5: [BlockStmt] { ... } +# 72| 0: [ReturnStmt] return ... +# 72| 0: [MethodCall] getBaseClassInt(...) +# 72| -1: [VarAccess] this. +# 72| -1: [ThisAccess] this +# 72| 4: [Method] invoke +# 72| 5: [BlockStmt] { ... } +# 72| 0: [ReturnStmt] return ... +# 72| 0: [MethodCall] get(...) +# 72| -1: [ThisAccess] this +# 72| -3: [TypeAccess] KProperty0 +# 72| 0: [TypeAccess] Integer +# 72| 0: [ThisAccess] MyClass.this +# 72| 0: [TypeAccess] MyClass +# 73| 21: [Method] getDelegatedToBaseClass2 # 73| 3: [TypeAccess] int # 73| 5: [BlockStmt] { ... } # 73| 0: [ReturnStmt] return ... @@ -1522,40 +1495,34 @@ delegatedProperties.kt: # 73| -3: [TypeAccess] KProperty1 # 73| 0: [TypeAccess] MyClass # 73| 1: [TypeAccess] Integer -# 75| 23: [FieldDeclaration] KProperty0 delegatedToAnotherClass1$delegate; -# 75| -1: [TypeAccess] KProperty0 -# 75| 0: [TypeAccess] Integer -# 75| 0: [PropertyRefExpr] ...::... -# 75| -4: [AnonymousClass] new KProperty0(...) { ... } -# 75| 1: [Constructor] +# 73| 22: [FieldDeclaration] KProperty1 delegatedToBaseClass2$delegate; +# 73| -1: [TypeAccess] KProperty1 +# 73| 0: [TypeAccess] Base +# 73| 1: [TypeAccess] Integer +# 73| 0: [PropertyRefExpr] ...::... +# 73| -4: [AnonymousClass] new KProperty1(...) { ... } +# 73| 1: [Constructor] +# 73| 5: [BlockStmt] { ... } +# 73| 0: [SuperConstructorInvocationStmt] super(...) +# 73| 2: [Method] get #-----| 4: (Parameters) -# 75| 0: [Parameter] -# 75| 5: [BlockStmt] { ... } -# 75| 0: [SuperConstructorInvocationStmt] super(...) -# 75| 1: [ExprStmt] ; -# 75| 0: [AssignExpr] ...=... -# 75| 0: [VarAccess] this. -# 75| -1: [ThisAccess] this -# 75| 1: [VarAccess] -# 75| 2: [FieldDeclaration] ClassWithDelegate ; -# 75| -1: [TypeAccess] ClassWithDelegate -# 75| 3: [Method] get -# 75| 5: [BlockStmt] { ... } -# 75| 0: [ReturnStmt] return ... -# 75| 0: [MethodCall] getAnotherClassInt(...) -# 75| -1: [VarAccess] this. -# 75| -1: [ThisAccess] this -# 75| 4: [Method] invoke -# 75| 5: [BlockStmt] { ... } -# 75| 0: [ReturnStmt] return ... -# 75| 0: [MethodCall] get(...) -# 75| -1: [ThisAccess] this -# 75| -3: [TypeAccess] KProperty0 -# 75| 0: [TypeAccess] Integer -# 75| 0: [MethodCall] getAnotherClassInstance(...) -# 75| -1: [ThisAccess] MyClass.this -# 75| 0: [TypeAccess] MyClass -# 75| 24: [Method] getDelegatedToAnotherClass1 +# 73| 0: [Parameter] a0 +# 73| 5: [BlockStmt] { ... } +# 73| 0: [ReturnStmt] return ... +# 73| 0: [MethodCall] getBaseClassInt(...) +# 73| -1: [VarAccess] a0 +# 73| 3: [Method] invoke +#-----| 4: (Parameters) +# 73| 0: [Parameter] a0 +# 73| 5: [BlockStmt] { ... } +# 73| 0: [ReturnStmt] return ... +# 73| 0: [MethodCall] get(...) +# 73| -1: [ThisAccess] this +# 73| 0: [VarAccess] a0 +# 73| -3: [TypeAccess] KProperty1 +# 73| 0: [TypeAccess] Base +# 73| 1: [TypeAccess] Integer +# 75| 23: [Method] getDelegatedToAnotherClass1 # 75| 3: [TypeAccess] int # 75| 5: [BlockStmt] { ... } # 75| 0: [ReturnStmt] return ... @@ -1588,7 +1555,82 @@ delegatedProperties.kt: # 75| -3: [TypeAccess] KProperty1 # 75| 0: [TypeAccess] MyClass # 75| 1: [TypeAccess] Integer -# 77| 25: [Method] setDelegatedToTopLevel +# 75| 24: [FieldDeclaration] KProperty0 delegatedToAnotherClass1$delegate; +# 75| -1: [TypeAccess] KProperty0 +# 75| 0: [TypeAccess] Integer +# 75| 0: [PropertyRefExpr] ...::... +# 75| -4: [AnonymousClass] new KProperty0(...) { ... } +# 75| 1: [Constructor] +#-----| 4: (Parameters) +# 75| 0: [Parameter] +# 75| 5: [BlockStmt] { ... } +# 75| 0: [SuperConstructorInvocationStmt] super(...) +# 75| 1: [ExprStmt] ; +# 75| 0: [AssignExpr] ...=... +# 75| 0: [VarAccess] this. +# 75| -1: [ThisAccess] this +# 75| 1: [VarAccess] +# 75| 2: [FieldDeclaration] ClassWithDelegate ; +# 75| -1: [TypeAccess] ClassWithDelegate +# 75| 3: [Method] get +# 75| 5: [BlockStmt] { ... } +# 75| 0: [ReturnStmt] return ... +# 75| 0: [MethodCall] getAnotherClassInt(...) +# 75| -1: [VarAccess] this. +# 75| -1: [ThisAccess] this +# 75| 4: [Method] invoke +# 75| 5: [BlockStmt] { ... } +# 75| 0: [ReturnStmt] return ... +# 75| 0: [MethodCall] get(...) +# 75| -1: [ThisAccess] this +# 75| -3: [TypeAccess] KProperty0 +# 75| 0: [TypeAccess] Integer +# 75| 0: [MethodCall] getAnotherClassInstance(...) +# 75| -1: [ThisAccess] MyClass.this +# 75| 0: [TypeAccess] MyClass +# 77| 25: [Method] getDelegatedToTopLevel +# 77| 3: [TypeAccess] int +# 77| 5: [BlockStmt] { ... } +# 77| 0: [ReturnStmt] return ... +# 77| 0: [MethodCall] getValue(...) +# 77| -2: [TypeAccess] Integer +# 77| -1: [TypeAccess] PropertyReferenceDelegatesKt +# 77| 0: [VarAccess] this.delegatedToTopLevel$delegate +# 77| -1: [ThisAccess] this +# 77| 1: [ThisAccess] this +# 77| 2: [PropertyRefExpr] ...::... +# 77| -4: [AnonymousClass] new KMutableProperty1(...) { ... } +# 77| 1: [Constructor] +# 77| 5: [BlockStmt] { ... } +# 77| 0: [SuperConstructorInvocationStmt] super(...) +# 77| 2: [Method] get +#-----| 4: (Parameters) +# 77| 0: [Parameter] a0 +# 77| 5: [BlockStmt] { ... } +# 77| 0: [ReturnStmt] return ... +# 77| 0: [MethodCall] getDelegatedToTopLevel(...) +# 77| -1: [VarAccess] a0 +# 77| 3: [Method] invoke +#-----| 4: (Parameters) +# 77| 0: [Parameter] a0 +# 77| 5: [BlockStmt] { ... } +# 77| 0: [ReturnStmt] return ... +# 77| 0: [MethodCall] get(...) +# 77| -1: [ThisAccess] this +# 77| 0: [VarAccess] a0 +# 77| 4: [Method] set +#-----| 4: (Parameters) +# 77| 0: [Parameter] a0 +# 77| 1: [Parameter] a1 +# 77| 5: [BlockStmt] { ... } +# 77| 0: [ReturnStmt] return ... +# 77| 0: [MethodCall] setDelegatedToTopLevel(...) +# 77| -1: [VarAccess] a0 +# 77| 0: [VarAccess] a1 +# 77| -3: [TypeAccess] KMutableProperty1 +# 77| 0: [TypeAccess] MyClass +# 77| 1: [TypeAccess] Integer +# 77| 26: [Method] setDelegatedToTopLevel # 77| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 77| 0: [Parameter] @@ -1634,7 +1676,7 @@ delegatedProperties.kt: # 77| 0: [TypeAccess] MyClass # 77| 1: [TypeAccess] Integer # 77| 3: [VarAccess] -# 77| 26: [FieldDeclaration] KMutableProperty0 delegatedToTopLevel$delegate; +# 77| 27: [FieldDeclaration] KMutableProperty0 delegatedToTopLevel$delegate; # 77| -1: [TypeAccess] KMutableProperty0 # 77| 0: [TypeAccess] Integer # 77| 0: [PropertyRefExpr] ...::... @@ -1662,68 +1704,7 @@ delegatedProperties.kt: # 77| 0: [VarAccess] a0 # 77| -3: [TypeAccess] KMutableProperty0 # 77| 0: [TypeAccess] Integer -# 77| 27: [Method] getDelegatedToTopLevel -# 77| 3: [TypeAccess] int -# 77| 5: [BlockStmt] { ... } -# 77| 0: [ReturnStmt] return ... -# 77| 0: [MethodCall] getValue(...) -# 77| -2: [TypeAccess] Integer -# 77| -1: [TypeAccess] PropertyReferenceDelegatesKt -# 77| 0: [VarAccess] this.delegatedToTopLevel$delegate -# 77| -1: [ThisAccess] this -# 77| 1: [ThisAccess] this -# 77| 2: [PropertyRefExpr] ...::... -# 77| -4: [AnonymousClass] new KMutableProperty1(...) { ... } -# 77| 1: [Constructor] -# 77| 5: [BlockStmt] { ... } -# 77| 0: [SuperConstructorInvocationStmt] super(...) -# 77| 2: [Method] get -#-----| 4: (Parameters) -# 77| 0: [Parameter] a0 -# 77| 5: [BlockStmt] { ... } -# 77| 0: [ReturnStmt] return ... -# 77| 0: [MethodCall] getDelegatedToTopLevel(...) -# 77| -1: [VarAccess] a0 -# 77| 3: [Method] invoke -#-----| 4: (Parameters) -# 77| 0: [Parameter] a0 -# 77| 5: [BlockStmt] { ... } -# 77| 0: [ReturnStmt] return ... -# 77| 0: [MethodCall] get(...) -# 77| -1: [ThisAccess] this -# 77| 0: [VarAccess] a0 -# 77| 4: [Method] set -#-----| 4: (Parameters) -# 77| 0: [Parameter] a0 -# 77| 1: [Parameter] a1 -# 77| 5: [BlockStmt] { ... } -# 77| 0: [ReturnStmt] return ... -# 77| 0: [MethodCall] setDelegatedToTopLevel(...) -# 77| -1: [VarAccess] a0 -# 77| 0: [VarAccess] a1 -# 77| -3: [TypeAccess] KMutableProperty1 -# 77| 0: [TypeAccess] MyClass -# 77| 1: [TypeAccess] Integer -# 79| 28: [FieldDeclaration] KProperty0 max$delegate; -# 79| -1: [TypeAccess] KProperty0 -# 79| 0: [TypeAccess] Integer -# 79| 0: [PropertyRefExpr] ...::... -# 79| -4: [AnonymousClass] new KProperty0(...) { ... } -# 79| 1: [Constructor] -# 79| 5: [BlockStmt] { ... } -# 79| 0: [SuperConstructorInvocationStmt] super(...) -# 79| 2: [Method] get -# 79| 5: [BlockStmt] { ... } -# 79| 0: [ReturnStmt] return ... -# 79| 0: [VarAccess] MAX_VALUE -# 79| 3: [Method] invoke -# 79| 5: [BlockStmt] { ... } -# 79| 0: [ReturnStmt] return ... -# 79| 0: [MethodCall] get(...) -# 79| -1: [ThisAccess] this -# 79| -3: [TypeAccess] KProperty0 -# 79| 0: [TypeAccess] Integer -# 79| 29: [Method] getMax +# 79| 28: [Method] getMax # 79| 3: [TypeAccess] int # 79| 5: [BlockStmt] { ... } # 79| 0: [ReturnStmt] return ... @@ -1756,6 +1737,25 @@ delegatedProperties.kt: # 79| -3: [TypeAccess] KProperty1 # 79| 0: [TypeAccess] MyClass # 79| 1: [TypeAccess] Integer +# 79| 29: [FieldDeclaration] KProperty0 max$delegate; +# 79| -1: [TypeAccess] KProperty0 +# 79| 0: [TypeAccess] Integer +# 79| 0: [PropertyRefExpr] ...::... +# 79| -4: [AnonymousClass] new KProperty0(...) { ... } +# 79| 1: [Constructor] +# 79| 5: [BlockStmt] { ... } +# 79| 0: [SuperConstructorInvocationStmt] super(...) +# 79| 2: [Method] get +# 79| 5: [BlockStmt] { ... } +# 79| 0: [ReturnStmt] return ... +# 79| 0: [VarAccess] MAX_VALUE +# 79| 3: [Method] invoke +# 79| 5: [BlockStmt] { ... } +# 79| 0: [ReturnStmt] return ... +# 79| 0: [MethodCall] get(...) +# 79| -1: [ThisAccess] this +# 79| -3: [TypeAccess] KProperty0 +# 79| 0: [TypeAccess] Integer # 81| 30: [Method] fn # 81| 3: [TypeAccess] Unit # 81| 5: [BlockStmt] { ... } @@ -2848,23 +2848,17 @@ exprs.kt: # 271| 0: [VarAccess] updated # 271| 1: [IntegerLiteral] 1 # 272| 3: [ExprStmt] ; -# 272| 0: [AssignExpr] ...=... +# 272| 0: [AssignMulExpr] ...*=... # 272| 0: [VarAccess] updated -# 272| 1: [MulExpr] ... * ... -# 272| 0: [VarAccess] updated -# 272| 1: [IntegerLiteral] 1 +# 272| 1: [IntegerLiteral] 1 # 273| 4: [ExprStmt] ; -# 273| 0: [AssignExpr] ...=... +# 273| 0: [AssignDivExpr] .../=... # 273| 0: [VarAccess] updated -# 273| 1: [DivExpr] ... / ... -# 273| 0: [VarAccess] updated -# 273| 1: [IntegerLiteral] 1 +# 273| 1: [IntegerLiteral] 1 # 274| 5: [ExprStmt] ; -# 274| 0: [AssignExpr] ...=... +# 274| 0: [AssignRemExpr] ...%=... # 274| 0: [VarAccess] updated -# 274| 1: [RemExpr] ... % ... -# 274| 0: [VarAccess] updated -# 274| 1: [IntegerLiteral] 1 +# 274| 1: [IntegerLiteral] 1 # 278| 12: [Method] getEnumValues #-----| 2: (Generic Parameters) # 278| 0: [TypeVariable] T diff --git a/java/ql/test-kotlin2/library-tests/exprs/binop.expected b/java/ql/test-kotlin2/library-tests/exprs/binop.expected index fc252e90fe3..83dad7f94b5 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/binop.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/binop.expected @@ -123,9 +123,6 @@ | exprs.kt:261:11:261:17 | ... * ... | exprs.kt:261:11:261:12 | lx | exprs.kt:261:16:261:17 | ly | | exprs.kt:262:11:262:17 | ... * ... | exprs.kt:262:11:262:12 | dx | exprs.kt:262:16:262:17 | dy | | exprs.kt:263:11:263:17 | ... * ... | exprs.kt:263:11:263:12 | fx | exprs.kt:263:16:263:17 | fy | -| exprs.kt:272:3:272:14 | ... * ... | exprs.kt:272:3:272:9 | updated | exprs.kt:272:14:272:14 | 1 | -| exprs.kt:273:3:273:14 | ... / ... | exprs.kt:273:3:273:9 | updated | exprs.kt:273:14:273:14 | 1 | -| exprs.kt:274:3:274:14 | ... % ... | exprs.kt:274:3:274:9 | updated | exprs.kt:274:14:274:14 | 1 | | funcExprs.kt:32:35:32:42 | ... + ... | funcExprs.kt:32:35:32:38 | this | funcExprs.kt:32:42:32:42 | a | | localFunctionCalls.kt:5:25:5:29 | ... + ... | localFunctionCalls.kt:5:25:5:25 | i | localFunctionCalls.kt:5:29:5:29 | x | | samConversion.kt:2:33:2:38 | ... % ... | samConversion.kt:2:33:2:34 | it | samConversion.kt:2:38:2:38 | 2 | diff --git a/java/ql/test-kotlin2/library-tests/exprs/delegatedProperties.expected b/java/ql/test-kotlin2/library-tests/exprs/delegatedProperties.expected index a530d0ee560..c62d740a644 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/delegatedProperties.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/delegatedProperties.expected @@ -43,18 +43,18 @@ delegatedPropertyGetters | delegatedProperties.kt:33:9:33:76 | readOnly | delegatedProperties.kt:33:9:33:76 | | | delegatedProperties.kt:34:9:34:48 | readWrite | delegatedProperties.kt:34:9:34:48 | | | delegatedProperties.kt:39:9:39:51 | varResource2 | delegatedProperties.kt:39:9:39:51 | | -| delegatedProperties.kt:42:5:42:47 | varResource0 | delegatedProperties.kt:42:30:42:47 | getVarResource0 | -| delegatedProperties.kt:66:5:66:50 | delegatedToMember1 | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | -| delegatedProperties.kt:67:5:67:53 | delegatedToMember2 | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | -| delegatedProperties.kt:69:5:69:56 | delegatedToExtMember1 | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | -| delegatedProperties.kt:70:5:70:59 | delegatedToExtMember2 | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | -| delegatedProperties.kt:72:5:72:56 | delegatedToBaseClass1 | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | -| delegatedProperties.kt:73:5:73:56 | delegatedToBaseClass2 | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | -| delegatedProperties.kt:75:5:75:78 | delegatedToAnotherClass1 | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | -| delegatedProperties.kt:77:5:77:49 | delegatedToTopLevel | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | -| delegatedProperties.kt:79:5:79:38 | max | delegatedProperties.kt:79:21:79:38 | getMax | +| delegatedProperties.kt:42:5:42:47 | varResource0 | delegatedProperties.kt:42:5:42:47 | getVarResource0 | +| delegatedProperties.kt:66:5:66:50 | delegatedToMember1 | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | +| delegatedProperties.kt:67:5:67:53 | delegatedToMember2 | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | +| delegatedProperties.kt:69:5:69:56 | delegatedToExtMember1 | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | +| delegatedProperties.kt:70:5:70:59 | delegatedToExtMember2 | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | +| delegatedProperties.kt:72:5:72:56 | delegatedToBaseClass1 | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | +| delegatedProperties.kt:73:5:73:56 | delegatedToBaseClass2 | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | +| delegatedProperties.kt:75:5:75:78 | delegatedToAnotherClass1 | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | +| delegatedProperties.kt:77:5:77:49 | delegatedToTopLevel | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | +| delegatedProperties.kt:79:5:79:38 | max | delegatedProperties.kt:79:5:79:38 | getMax | | delegatedProperties.kt:82:9:82:54 | delegatedToMember3 | delegatedProperties.kt:82:9:82:54 | | -| delegatedProperties.kt:87:1:87:46 | extDelegated | delegatedProperties.kt:87:34:87:46 | getExtDelegated | +| delegatedProperties.kt:87:1:87:46 | extDelegated | delegatedProperties.kt:87:1:87:46 | getExtDelegated | delegatedPropertySetters | delegatedProperties.kt:19:9:19:51 | varResource1 | delegatedProperties.kt:19:9:19:51 | | | delegatedProperties.kt:34:9:34:48 | readWrite | delegatedProperties.kt:34:9:34:48 | | diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index 40ef48d8916..0acb9c22143 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -52,6 +52,7 @@ | delegatedProperties.kt:18:12:18:33 | String | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:19:9:19:51 | Unit | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:19:9:19:51 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:19:9:19:51 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:19:9:19:51 | varResource1$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:9:19:51 | | PropertyRefExpr | | delegatedProperties.kt:19:34:19:51 | ...::... | delegatedProperties.kt:19:9:19:51 | | PropertyRefExpr | @@ -74,7 +75,6 @@ | delegatedProperties.kt:19:34:19:51 | get(...) | delegatedProperties.kt:19:34:19:51 | invoke | MethodCall | | delegatedProperties.kt:19:34:19:51 | get(...) | delegatedProperties.kt:19:34:19:51 | invoke | MethodCall | | delegatedProperties.kt:19:34:19:51 | getValue(...) | delegatedProperties.kt:19:9:19:51 | | MethodCall | -| delegatedProperties.kt:19:34:19:51 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | get | ClassInstanceExpr | | delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | get | ClassInstanceExpr | | delegatedProperties.kt:19:34:19:51 | new (...) | delegatedProperties.kt:19:34:19:51 | set | ClassInstanceExpr | @@ -116,18 +116,18 @@ | delegatedProperties.kt:25:64:31:9 | | delegatedProperties.kt:25:9:31:9 | resourceDelegate | StmtExpr | | delegatedProperties.kt:25:64:31:9 | ReadWriteProperty | delegatedProperties.kt:25:9:31:9 | resourceDelegate | TypeAccess | | delegatedProperties.kt:25:64:31:9 | new (...) | delegatedProperties.kt:25:9:31:9 | resourceDelegate | ClassInstanceExpr | +| delegatedProperties.kt:26:13:26:24 | ...=... | delegatedProperties.kt:26:13:26:24 | setCurValue | AssignExpr | +| delegatedProperties.kt:26:13:26:24 | | delegatedProperties.kt:26:13:26:24 | setCurValue | VarAccess | +| delegatedProperties.kt:26:13:26:24 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:26:13:26:24 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:26:13:26:24 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:26:13:26:24 | this | delegatedProperties.kt:26:13:26:24 | getCurValue | ThisAccess | +| delegatedProperties.kt:26:13:26:24 | this | delegatedProperties.kt:26:13:26:24 | setCurValue | ThisAccess | +| delegatedProperties.kt:26:13:26:24 | this.curValue | delegatedProperties.kt:26:13:26:24 | getCurValue | VarAccess | +| delegatedProperties.kt:26:13:26:24 | this.curValue | delegatedProperties.kt:26:13:26:24 | setCurValue | VarAccess | | delegatedProperties.kt:26:13:26:28 | ...=... | delegatedProperties.kt:25:64:31:9 | | KtInitializerAssignExpr | -| delegatedProperties.kt:26:13:26:28 | ...=... | delegatedProperties.kt:26:13:26:28 | setCurValue | AssignExpr | -| delegatedProperties.kt:26:13:26:28 | | delegatedProperties.kt:26:13:26:28 | setCurValue | VarAccess | -| delegatedProperties.kt:26:13:26:28 | Unit | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:26:13:26:28 | curValue | delegatedProperties.kt:25:64:31:9 | | VarAccess | | delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:26:13:26:28 | this | delegatedProperties.kt:26:13:26:28 | getCurValue | ThisAccess | -| delegatedProperties.kt:26:13:26:28 | this | delegatedProperties.kt:26:13:26:28 | setCurValue | ThisAccess | -| delegatedProperties.kt:26:13:26:28 | this.curValue | delegatedProperties.kt:26:13:26:28 | getCurValue | VarAccess | -| delegatedProperties.kt:26:13:26:28 | this.curValue | delegatedProperties.kt:26:13:26:28 | setCurValue | VarAccess | | delegatedProperties.kt:26:28:26:28 | 0 | delegatedProperties.kt:25:64:31:9 | | IntegerLiteral | | delegatedProperties.kt:27:13:27:88 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:27:35:27:47 | Object | file://:0:0:0:0 | | TypeAccess | @@ -160,6 +160,7 @@ | delegatedProperties.kt:33:30:33:47 | this | delegatedProperties.kt:33:30:33:47 | invoke | ThisAccess | | delegatedProperties.kt:34:9:34:48 | Unit | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:34:9:34:48 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:34:9:34:48 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:34:9:34:48 | readWrite$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:9:34:48 | | PropertyRefExpr | | delegatedProperties.kt:34:31:34:48 | ...::... | delegatedProperties.kt:34:9:34:48 | | PropertyRefExpr | @@ -182,7 +183,6 @@ | delegatedProperties.kt:34:31:34:48 | get(...) | delegatedProperties.kt:34:31:34:48 | invoke | MethodCall | | delegatedProperties.kt:34:31:34:48 | get(...) | delegatedProperties.kt:34:31:34:48 | invoke | MethodCall | | delegatedProperties.kt:34:31:34:48 | getValue(...) | delegatedProperties.kt:34:9:34:48 | | MethodCall | -| delegatedProperties.kt:34:31:34:48 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:18:5:40:5 | fn | ClassInstanceExpr | | delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:34:31:34:48 | get | ClassInstanceExpr | | delegatedProperties.kt:34:31:34:48 | new (...) | delegatedProperties.kt:34:31:34:48 | get | ClassInstanceExpr | @@ -225,16 +225,18 @@ | delegatedProperties.kt:39:34:39:51 | this | delegatedProperties.kt:39:34:39:51 | invoke | ThisAccess | | delegatedProperties.kt:39:34:39:51 | varResource2$delegate | delegatedProperties.kt:39:9:39:51 | | VarAccess | | delegatedProperties.kt:42:5:42:47 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:42:5:42:47 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:42:5:42:47 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | ...::... | delegatedProperties.kt:42:5:42:47 | getVarResource0 | PropertyRefExpr | | delegatedProperties.kt:42:30:42:47 | ...::... | delegatedProperties.kt:42:5:42:47 | setVarResource0 | PropertyRefExpr | -| delegatedProperties.kt:42:30:42:47 | ...::... | delegatedProperties.kt:42:30:42:47 | getVarResource0 | PropertyRefExpr | | delegatedProperties.kt:42:30:42:47 | ...=... | delegatedProperties.kt:17:1:43:1 | Owner | KtInitializerAssignExpr | | delegatedProperties.kt:42:30:42:47 | | delegatedProperties.kt:42:5:42:47 | setVarResource0 | VarAccess | +| delegatedProperties.kt:42:30:42:47 | Integer | delegatedProperties.kt:42:5:42:47 | getVarResource0 | TypeAccess | | delegatedProperties.kt:42:30:42:47 | Integer | delegatedProperties.kt:42:5:42:47 | setVarResource0 | TypeAccess | -| delegatedProperties.kt:42:30:42:47 | Integer | delegatedProperties.kt:42:30:42:47 | getVarResource0 | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | KMutableProperty1 | delegatedProperties.kt:42:5:42:47 | getVarResource0 | TypeAccess | | delegatedProperties.kt:42:30:42:47 | KMutableProperty1 | delegatedProperties.kt:42:5:42:47 | setVarResource0 | TypeAccess | -| delegatedProperties.kt:42:30:42:47 | KMutableProperty1 | delegatedProperties.kt:42:30:42:47 | getVarResource0 | TypeAccess | +| delegatedProperties.kt:42:30:42:47 | Owner | delegatedProperties.kt:42:5:42:47 | getVarResource0 | TypeAccess | | delegatedProperties.kt:42:30:42:47 | Owner | delegatedProperties.kt:42:5:42:47 | setVarResource0 | TypeAccess | -| delegatedProperties.kt:42:30:42:47 | Owner | delegatedProperties.kt:42:30:42:47 | getVarResource0 | TypeAccess | | delegatedProperties.kt:42:30:42:47 | ResourceDelegate | delegatedProperties.kt:17:1:43:1 | Owner | TypeAccess | | delegatedProperties.kt:42:30:42:47 | ResourceDelegate | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:42:30:42:47 | a0 | delegatedProperties.kt:42:30:42:47 | get | VarAccess | @@ -247,23 +249,21 @@ | delegatedProperties.kt:42:30:42:47 | a1 | delegatedProperties.kt:42:30:42:47 | set | VarAccess | | delegatedProperties.kt:42:30:42:47 | get(...) | delegatedProperties.kt:42:30:42:47 | invoke | MethodCall | | delegatedProperties.kt:42:30:42:47 | get(...) | delegatedProperties.kt:42:30:42:47 | invoke | MethodCall | -| delegatedProperties.kt:42:30:42:47 | getValue(...) | delegatedProperties.kt:42:30:42:47 | getVarResource0 | MethodCall | +| delegatedProperties.kt:42:30:42:47 | getValue(...) | delegatedProperties.kt:42:5:42:47 | getVarResource0 | MethodCall | | delegatedProperties.kt:42:30:42:47 | getVarResource0(...) | delegatedProperties.kt:42:30:42:47 | get | MethodCall | | delegatedProperties.kt:42:30:42:47 | getVarResource0(...) | delegatedProperties.kt:42:30:42:47 | get | MethodCall | -| delegatedProperties.kt:42:30:42:47 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:42:30:42:47 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:42:30:42:47 | new ResourceDelegate(...) | delegatedProperties.kt:17:1:43:1 | Owner | ClassInstanceExpr | | delegatedProperties.kt:42:30:42:47 | setValue(...) | delegatedProperties.kt:42:5:42:47 | setVarResource0 | MethodCall | | delegatedProperties.kt:42:30:42:47 | setVarResource0(...) | delegatedProperties.kt:42:30:42:47 | set | MethodCall | | delegatedProperties.kt:42:30:42:47 | setVarResource0(...) | delegatedProperties.kt:42:30:42:47 | set | MethodCall | +| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:5:42:47 | getVarResource0 | ThisAccess | +| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:5:42:47 | getVarResource0 | ThisAccess | | delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:5:42:47 | setVarResource0 | ThisAccess | | delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:5:42:47 | setVarResource0 | ThisAccess | -| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | getVarResource0 | ThisAccess | -| delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | getVarResource0 | ThisAccess | | delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | invoke | ThisAccess | | delegatedProperties.kt:42:30:42:47 | this | delegatedProperties.kt:42:30:42:47 | invoke | ThisAccess | +| delegatedProperties.kt:42:30:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:5:42:47 | getVarResource0 | VarAccess | | delegatedProperties.kt:42:30:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:5:42:47 | setVarResource0 | VarAccess | -| delegatedProperties.kt:42:30:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:30:42:47 | getVarResource0 | VarAccess | | delegatedProperties.kt:42:30:42:47 | varResource0$delegate | delegatedProperties.kt:17:1:43:1 | Owner | VarAccess | | delegatedProperties.kt:46:5:48:5 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:46:27:46:41 | Owner | file://:0:0:0:0 | | TypeAccess | @@ -281,18 +281,18 @@ | delegatedProperties.kt:54:51:54:68 | KProperty | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:56:16:56:33 | ResourceDelegate | delegatedProperties.kt:54:5:57:5 | provideDelegate | TypeAccess | | delegatedProperties.kt:56:16:56:33 | new ResourceDelegate(...) | delegatedProperties.kt:54:5:57:5 | provideDelegate | ClassInstanceExpr | +| delegatedProperties.kt:60:1:60:20 | ...=... | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | AssignExpr | +| delegatedProperties.kt:60:1:60:20 | | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | VarAccess | +| delegatedProperties.kt:60:1:60:20 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:20 | getTopLevelInt | TypeAccess | +| delegatedProperties.kt:60:1:60:20 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | TypeAccess | +| delegatedProperties.kt:60:1:60:20 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:20 | getTopLevelInt | VarAccess | +| delegatedProperties.kt:60:1:60:20 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | VarAccess | +| delegatedProperties.kt:60:1:60:20 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:60:1:60:20 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:60:1:60:20 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:0:0:0:0 | | KtInitializerAssignExpr | -| delegatedProperties.kt:60:1:60:24 | ...=... | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | AssignExpr | -| delegatedProperties.kt:60:1:60:24 | | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | VarAccess | | delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:24 | getTopLevelInt | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | TypeAccess | | delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:0:0:0:0 | | VarAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:24 | getTopLevelInt | VarAccess | -| delegatedProperties.kt:60:1:60:24 | DelegatedPropertiesKt.topLevelInt | delegatedProperties.kt:60:1:60:24 | setTopLevelInt | VarAccess | -| delegatedProperties.kt:60:1:60:24 | Unit | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:60:1:60:24 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:60:24:60:24 | 0 | delegatedProperties.kt:0:0:0:0 | | IntegerLiteral | | delegatedProperties.kt:62:25:62:48 | ...=... | delegatedProperties.kt:62:24:62:49 | ClassWithDelegate | KtInitializerAssignExpr | @@ -335,30 +335,32 @@ | delegatedProperties.kt:65:35:65:77 | this.anotherClassInstance | delegatedProperties.kt:65:35:65:77 | getAnotherClassInstance | VarAccess | | delegatedProperties.kt:65:87:65:95 | memberInt | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | | delegatedProperties.kt:66:5:66:50 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:66:5:66:50 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:66:5:66:50 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:66:36:66:39 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:66:36:66:39 | MyClass.this | delegatedProperties.kt:65:14:65:78 | MyClass | ThisAccess | | delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | +| delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | PropertyRefExpr | | delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | PropertyRefExpr | -| delegatedProperties.kt:66:36:66:50 | ...::... | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | PropertyRefExpr | | delegatedProperties.kt:66:36:66:50 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | | delegatedProperties.kt:66:36:66:50 | ...=... | delegatedProperties.kt:66:36:66:50 | | AssignExpr | | delegatedProperties.kt:66:36:66:50 | | delegatedProperties.kt:66:36:66:50 | | VarAccess | | delegatedProperties.kt:66:36:66:50 | | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | VarAccess | | delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | TypeAccess | | delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess | | delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:36:66:50 | Integer | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess | | delegatedProperties.kt:66:36:66:50 | Integer | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:66:36:66:50 | KMutableProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:66:36:66:50 | KMutableProperty0 | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | KMutableProperty1 | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | TypeAccess | | delegatedProperties.kt:66:36:66:50 | KMutableProperty1 | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:36:66:50 | KMutableProperty1 | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | MyClass | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | TypeAccess | | delegatedProperties.kt:66:36:66:50 | MyClass | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:36:66:50 | MyClass | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess | | delegatedProperties.kt:66:36:66:50 | MyClass | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | TypeAccess | | delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | TypeAccess | -| delegatedProperties.kt:66:36:66:50 | PropertyReferenceDelegatesKt | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | TypeAccess | | delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | get | VarAccess | | delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | get | VarAccess | | delegatedProperties.kt:66:36:66:50 | a0 | delegatedProperties.kt:66:36:66:50 | invoke | VarAccess | @@ -375,19 +377,17 @@ | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | get | MethodCall | | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | get | MethodCall | | delegatedProperties.kt:66:36:66:50 | getMemberInt(...) | delegatedProperties.kt:66:36:66:50 | get | MethodCall | -| delegatedProperties.kt:66:36:66:50 | getValue(...) | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | MethodCall | -| delegatedProperties.kt:66:36:66:50 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:66:36:66:50 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:66:36:66:50 | getValue(...) | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | MethodCall | | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | set | MethodCall | | delegatedProperties.kt:66:36:66:50 | setDelegatedToMember1(...) | delegatedProperties.kt:66:36:66:50 | set | MethodCall | | delegatedProperties.kt:66:36:66:50 | setMemberInt(...) | delegatedProperties.kt:66:36:66:50 | set | MethodCall | | delegatedProperties.kt:66:36:66:50 | setValue(...) | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | MethodCall | +| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | ThisAccess | +| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | ThisAccess | | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | ThisAccess | | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | ThisAccess | | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | | ThisAccess | | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | get | ThisAccess | -| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | ThisAccess | -| delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | ThisAccess | | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | invoke | ThisAccess | | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | invoke | ThisAccess | | delegatedProperties.kt:66:36:66:50 | this | delegatedProperties.kt:66:36:66:50 | invoke | ThisAccess | @@ -395,32 +395,34 @@ | delegatedProperties.kt:66:36:66:50 | this. | delegatedProperties.kt:66:36:66:50 | | VarAccess | | delegatedProperties.kt:66:36:66:50 | this. | delegatedProperties.kt:66:36:66:50 | get | VarAccess | | delegatedProperties.kt:66:36:66:50 | this. | delegatedProperties.kt:66:36:66:50 | set | VarAccess | +| delegatedProperties.kt:66:36:66:50 | this.delegatedToMember1$delegate | delegatedProperties.kt:66:5:66:50 | getDelegatedToMember1 | VarAccess | | delegatedProperties.kt:66:36:66:50 | this.delegatedToMember1$delegate | delegatedProperties.kt:66:5:66:50 | setDelegatedToMember1 | VarAccess | -| delegatedProperties.kt:66:36:66:50 | this.delegatedToMember1$delegate | delegatedProperties.kt:66:36:66:50 | getDelegatedToMember1 | VarAccess | | delegatedProperties.kt:67:5:67:53 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:67:5:67:53 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:67:5:67:53 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | +| delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | PropertyRefExpr | | delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | PropertyRefExpr | -| delegatedProperties.kt:67:36:67:53 | ...::... | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | PropertyRefExpr | | delegatedProperties.kt:67:36:67:53 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | | delegatedProperties.kt:67:36:67:53 | | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | VarAccess | | delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:36:67:53 | Integer | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | Integer | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:67:36:67:53 | KMutableProperty1 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | KMutableProperty1 | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | KMutableProperty1 | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:36:67:53 | KMutableProperty1 | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | KMutableProperty1 | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:36:67:53 | MyClass | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | MyClass | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | TypeAccess | -| delegatedProperties.kt:67:36:67:53 | PropertyReferenceDelegatesKt | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | TypeAccess | | delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | get | VarAccess | | delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | get | VarAccess | | delegatedProperties.kt:67:36:67:53 | a0 | delegatedProperties.kt:67:36:67:53 | get | VarAccess | @@ -440,28 +442,28 @@ | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | get | MethodCall | | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | get | MethodCall | | delegatedProperties.kt:67:36:67:53 | getMemberInt(...) | delegatedProperties.kt:67:36:67:53 | get | MethodCall | -| delegatedProperties.kt:67:36:67:53 | getValue(...) | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | MethodCall | -| delegatedProperties.kt:67:36:67:53 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:67:36:67:53 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:67:36:67:53 | getValue(...) | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | MethodCall | | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | set | MethodCall | | delegatedProperties.kt:67:36:67:53 | setDelegatedToMember2(...) | delegatedProperties.kt:67:36:67:53 | set | MethodCall | | delegatedProperties.kt:67:36:67:53 | setMemberInt(...) | delegatedProperties.kt:67:36:67:53 | set | MethodCall | | delegatedProperties.kt:67:36:67:53 | setValue(...) | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | MethodCall | +| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | ThisAccess | +| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | ThisAccess | | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | ThisAccess | | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | ThisAccess | -| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | ThisAccess | -| delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | ThisAccess | | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess | | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess | | delegatedProperties.kt:67:36:67:53 | this | delegatedProperties.kt:67:36:67:53 | invoke | ThisAccess | +| delegatedProperties.kt:67:36:67:53 | this.delegatedToMember2$delegate | delegatedProperties.kt:67:5:67:53 | getDelegatedToMember2 | VarAccess | | delegatedProperties.kt:67:36:67:53 | this.delegatedToMember2$delegate | delegatedProperties.kt:67:5:67:53 | setDelegatedToMember2 | VarAccess | -| delegatedProperties.kt:67:36:67:53 | this.delegatedToMember2$delegate | delegatedProperties.kt:67:36:67:53 | getDelegatedToMember2 | VarAccess | | delegatedProperties.kt:69:5:69:56 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:69:5:69:56 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:69:5:69:56 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:69:39:69:42 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:69:39:69:42 | MyClass.this | delegatedProperties.kt:65:14:65:78 | MyClass | ThisAccess | | delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | +| delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | PropertyRefExpr | | delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | PropertyRefExpr | -| delegatedProperties.kt:69:39:69:56 | ...::... | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | PropertyRefExpr | | delegatedProperties.kt:69:39:69:56 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | | delegatedProperties.kt:69:39:69:56 | ...=... | delegatedProperties.kt:69:39:69:56 | | AssignExpr | | delegatedProperties.kt:69:39:69:56 | | delegatedProperties.kt:69:39:69:56 | | VarAccess | @@ -469,20 +471,20 @@ | delegatedProperties.kt:69:39:69:56 | DelegatedPropertiesKt | delegatedProperties.kt:69:39:69:56 | get | TypeAccess | | delegatedProperties.kt:69:39:69:56 | DelegatedPropertiesKt | delegatedProperties.kt:69:39:69:56 | set | TypeAccess | | delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | TypeAccess | | delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess | | delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:39:69:56 | Integer | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess | | delegatedProperties.kt:69:39:69:56 | Integer | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:69:39:69:56 | KMutableProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:69:39:69:56 | KMutableProperty0 | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | KMutableProperty1 | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | TypeAccess | | delegatedProperties.kt:69:39:69:56 | KMutableProperty1 | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:39:69:56 | KMutableProperty1 | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | MyClass | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | TypeAccess | | delegatedProperties.kt:69:39:69:56 | MyClass | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:39:69:56 | MyClass | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess | | delegatedProperties.kt:69:39:69:56 | MyClass | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | TypeAccess | | delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | TypeAccess | -| delegatedProperties.kt:69:39:69:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | TypeAccess | | delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | get | VarAccess | | delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | get | VarAccess | | delegatedProperties.kt:69:39:69:56 | a0 | delegatedProperties.kt:69:39:69:56 | invoke | VarAccess | @@ -499,19 +501,17 @@ | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | get | MethodCall | | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | get | MethodCall | | delegatedProperties.kt:69:39:69:56 | getExtDelegated(...) | delegatedProperties.kt:69:39:69:56 | get | MethodCall | -| delegatedProperties.kt:69:39:69:56 | getValue(...) | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | MethodCall | -| delegatedProperties.kt:69:39:69:56 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:69:39:69:56 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:69:39:69:56 | getValue(...) | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | MethodCall | | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | set | MethodCall | | delegatedProperties.kt:69:39:69:56 | setDelegatedToExtMember1(...) | delegatedProperties.kt:69:39:69:56 | set | MethodCall | | delegatedProperties.kt:69:39:69:56 | setExtDelegated(...) | delegatedProperties.kt:69:39:69:56 | set | MethodCall | | delegatedProperties.kt:69:39:69:56 | setValue(...) | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | MethodCall | +| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | ThisAccess | +| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | ThisAccess | | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | ThisAccess | | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | ThisAccess | | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | | ThisAccess | | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | get | ThisAccess | -| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | ThisAccess | -| delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | ThisAccess | | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | invoke | ThisAccess | | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | invoke | ThisAccess | | delegatedProperties.kt:69:39:69:56 | this | delegatedProperties.kt:69:39:69:56 | invoke | ThisAccess | @@ -519,34 +519,36 @@ | delegatedProperties.kt:69:39:69:56 | this. | delegatedProperties.kt:69:39:69:56 | | VarAccess | | delegatedProperties.kt:69:39:69:56 | this. | delegatedProperties.kt:69:39:69:56 | get | VarAccess | | delegatedProperties.kt:69:39:69:56 | this. | delegatedProperties.kt:69:39:69:56 | set | VarAccess | +| delegatedProperties.kt:69:39:69:56 | this.delegatedToExtMember1$delegate | delegatedProperties.kt:69:5:69:56 | getDelegatedToExtMember1 | VarAccess | | delegatedProperties.kt:69:39:69:56 | this.delegatedToExtMember1$delegate | delegatedProperties.kt:69:5:69:56 | setDelegatedToExtMember1 | VarAccess | -| delegatedProperties.kt:69:39:69:56 | this.delegatedToExtMember1$delegate | delegatedProperties.kt:69:39:69:56 | getDelegatedToExtMember1 | VarAccess | | delegatedProperties.kt:70:5:70:59 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:70:5:70:59 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:70:5:70:59 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | +| delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | PropertyRefExpr | | delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | PropertyRefExpr | -| delegatedProperties.kt:70:39:70:59 | ...::... | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | PropertyRefExpr | | delegatedProperties.kt:70:39:70:59 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | | delegatedProperties.kt:70:39:70:59 | | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | VarAccess | | delegatedProperties.kt:70:39:70:59 | DelegatedPropertiesKt | delegatedProperties.kt:70:39:70:59 | get | TypeAccess | | delegatedProperties.kt:70:39:70:59 | DelegatedPropertiesKt | delegatedProperties.kt:70:39:70:59 | set | TypeAccess | | delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:39:70:59 | Integer | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | Integer | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:70:39:70:59 | KMutableProperty1 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | KMutableProperty1 | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | KMutableProperty1 | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:39:70:59 | KMutableProperty1 | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | KMutableProperty1 | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:39:70:59 | MyClass | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | MyClass | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | TypeAccess | -| delegatedProperties.kt:70:39:70:59 | PropertyReferenceDelegatesKt | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | TypeAccess | | delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | get | VarAccess | | delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | get | VarAccess | | delegatedProperties.kt:70:39:70:59 | a0 | delegatedProperties.kt:70:39:70:59 | get | VarAccess | @@ -566,39 +568,38 @@ | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | get | MethodCall | | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | get | MethodCall | | delegatedProperties.kt:70:39:70:59 | getExtDelegated(...) | delegatedProperties.kt:70:39:70:59 | get | MethodCall | -| delegatedProperties.kt:70:39:70:59 | getValue(...) | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | MethodCall | -| delegatedProperties.kt:70:39:70:59 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:70:39:70:59 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:70:39:70:59 | getValue(...) | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | MethodCall | | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | set | MethodCall | | delegatedProperties.kt:70:39:70:59 | setDelegatedToExtMember2(...) | delegatedProperties.kt:70:39:70:59 | set | MethodCall | | delegatedProperties.kt:70:39:70:59 | setExtDelegated(...) | delegatedProperties.kt:70:39:70:59 | set | MethodCall | | delegatedProperties.kt:70:39:70:59 | setValue(...) | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | MethodCall | +| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | ThisAccess | +| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | ThisAccess | | delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | ThisAccess | | delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | ThisAccess | -| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | ThisAccess | -| delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | ThisAccess | | delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | invoke | ThisAccess | | delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | invoke | ThisAccess | | delegatedProperties.kt:70:39:70:59 | this | delegatedProperties.kt:70:39:70:59 | invoke | ThisAccess | +| delegatedProperties.kt:70:39:70:59 | this.delegatedToExtMember2$delegate | delegatedProperties.kt:70:5:70:59 | getDelegatedToExtMember2 | VarAccess | | delegatedProperties.kt:70:39:70:59 | this.delegatedToExtMember2$delegate | delegatedProperties.kt:70:5:70:59 | setDelegatedToExtMember2 | VarAccess | -| delegatedProperties.kt:70:39:70:59 | this.delegatedToExtMember2$delegate | delegatedProperties.kt:70:39:70:59 | getDelegatedToExtMember2 | VarAccess | +| delegatedProperties.kt:72:5:72:56 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:72:39:72:42 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:72:39:72:42 | MyClass.this | delegatedProperties.kt:65:14:65:78 | MyClass | ThisAccess | | delegatedProperties.kt:72:39:72:56 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | -| delegatedProperties.kt:72:39:72:56 | ...::... | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | PropertyRefExpr | +| delegatedProperties.kt:72:39:72:56 | ...::... | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | PropertyRefExpr | | delegatedProperties.kt:72:39:72:56 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | | delegatedProperties.kt:72:39:72:56 | ...=... | delegatedProperties.kt:72:39:72:56 | | AssignExpr | | delegatedProperties.kt:72:39:72:56 | | delegatedProperties.kt:72:39:72:56 | | VarAccess | | delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | -| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | TypeAccess | -| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | TypeAccess | +| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | TypeAccess | +| delegatedProperties.kt:72:39:72:56 | Integer | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | TypeAccess | | delegatedProperties.kt:72:39:72:56 | Integer | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:72:39:72:56 | KProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:72:39:72:56 | KProperty0 | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:72:39:72:56 | KProperty1 | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | TypeAccess | -| delegatedProperties.kt:72:39:72:56 | MyClass | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | TypeAccess | +| delegatedProperties.kt:72:39:72:56 | KProperty1 | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | TypeAccess | +| delegatedProperties.kt:72:39:72:56 | MyClass | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | TypeAccess | | delegatedProperties.kt:72:39:72:56 | MyClass | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:72:39:72:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | TypeAccess | +| delegatedProperties.kt:72:39:72:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | TypeAccess | | delegatedProperties.kt:72:39:72:56 | a0 | delegatedProperties.kt:72:39:72:56 | get | VarAccess | | delegatedProperties.kt:72:39:72:56 | a0 | delegatedProperties.kt:72:39:72:56 | invoke | VarAccess | | delegatedProperties.kt:72:39:72:56 | delegatedToBaseClass1$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | @@ -606,32 +607,32 @@ | delegatedProperties.kt:72:39:72:56 | get(...) | delegatedProperties.kt:72:39:72:56 | invoke | MethodCall | | delegatedProperties.kt:72:39:72:56 | getBaseClassInt(...) | delegatedProperties.kt:72:39:72:56 | get | MethodCall | | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1(...) | delegatedProperties.kt:72:39:72:56 | get | MethodCall | -| delegatedProperties.kt:72:39:72:56 | getValue(...) | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | MethodCall | -| delegatedProperties.kt:72:39:72:56 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:72:39:72:56 | getValue(...) | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | MethodCall | +| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | ThisAccess | +| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | ThisAccess | | delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | | ThisAccess | | delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | get | ThisAccess | -| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | ThisAccess | -| delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | ThisAccess | | delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | invoke | ThisAccess | | delegatedProperties.kt:72:39:72:56 | this | delegatedProperties.kt:72:39:72:56 | invoke | ThisAccess | | delegatedProperties.kt:72:39:72:56 | this. | delegatedProperties.kt:72:39:72:56 | | VarAccess | | delegatedProperties.kt:72:39:72:56 | this. | delegatedProperties.kt:72:39:72:56 | get | VarAccess | -| delegatedProperties.kt:72:39:72:56 | this.delegatedToBaseClass1$delegate | delegatedProperties.kt:72:39:72:56 | getDelegatedToBaseClass1 | VarAccess | +| delegatedProperties.kt:72:39:72:56 | this.delegatedToBaseClass1$delegate | delegatedProperties.kt:72:5:72:56 | getDelegatedToBaseClass1 | VarAccess | +| delegatedProperties.kt:73:5:73:56 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:73:39:73:56 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | -| delegatedProperties.kt:73:39:73:56 | ...::... | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | PropertyRefExpr | +| delegatedProperties.kt:73:39:73:56 | ...::... | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | PropertyRefExpr | | delegatedProperties.kt:73:39:73:56 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | | delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | -| delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | Base | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess | | delegatedProperties.kt:73:39:73:56 | Base | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | -| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | -| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | Integer | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess | | delegatedProperties.kt:73:39:73:56 | Integer | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:73:39:73:56 | KProperty1 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:73:39:73:56 | KProperty1 | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:73:39:73:56 | KProperty1 | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | -| delegatedProperties.kt:73:39:73:56 | MyClass | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | -| delegatedProperties.kt:73:39:73:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | KProperty1 | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | MyClass | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess | +| delegatedProperties.kt:73:39:73:56 | PropertyReferenceDelegatesKt | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | TypeAccess | | delegatedProperties.kt:73:39:73:56 | a0 | delegatedProperties.kt:73:39:73:56 | get | VarAccess | | delegatedProperties.kt:73:39:73:56 | a0 | delegatedProperties.kt:73:39:73:56 | get | VarAccess | | delegatedProperties.kt:73:39:73:56 | a0 | delegatedProperties.kt:73:39:73:56 | invoke | VarAccess | @@ -641,31 +642,31 @@ | delegatedProperties.kt:73:39:73:56 | get(...) | delegatedProperties.kt:73:39:73:56 | invoke | MethodCall | | delegatedProperties.kt:73:39:73:56 | getBaseClassInt(...) | delegatedProperties.kt:73:39:73:56 | get | MethodCall | | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2(...) | delegatedProperties.kt:73:39:73:56 | get | MethodCall | -| delegatedProperties.kt:73:39:73:56 | getValue(...) | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | MethodCall | -| delegatedProperties.kt:73:39:73:56 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | ThisAccess | -| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | ThisAccess | +| delegatedProperties.kt:73:39:73:56 | getValue(...) | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | MethodCall | +| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | ThisAccess | +| delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | ThisAccess | | delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | invoke | ThisAccess | | delegatedProperties.kt:73:39:73:56 | this | delegatedProperties.kt:73:39:73:56 | invoke | ThisAccess | -| delegatedProperties.kt:73:39:73:56 | this.delegatedToBaseClass2$delegate | delegatedProperties.kt:73:39:73:56 | getDelegatedToBaseClass2 | VarAccess | +| delegatedProperties.kt:73:39:73:56 | this.delegatedToBaseClass2$delegate | delegatedProperties.kt:73:5:73:56 | getDelegatedToBaseClass2 | VarAccess | +| delegatedProperties.kt:75:5:75:78 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:75:42:75:61 | MyClass | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:75:42:75:61 | MyClass.this | delegatedProperties.kt:65:14:65:78 | MyClass | ThisAccess | | delegatedProperties.kt:75:42:75:61 | getAnotherClassInstance(...) | delegatedProperties.kt:65:14:65:78 | MyClass | MethodCall | | delegatedProperties.kt:75:42:75:78 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | -| delegatedProperties.kt:75:42:75:78 | ...::... | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | PropertyRefExpr | +| delegatedProperties.kt:75:42:75:78 | ...::... | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | PropertyRefExpr | | delegatedProperties.kt:75:42:75:78 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | | delegatedProperties.kt:75:42:75:78 | ...=... | delegatedProperties.kt:75:42:75:78 | | AssignExpr | | delegatedProperties.kt:75:42:75:78 | | delegatedProperties.kt:75:42:75:78 | | VarAccess | | delegatedProperties.kt:75:42:75:78 | ClassWithDelegate | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | -| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | TypeAccess | -| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | TypeAccess | +| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | TypeAccess | +| delegatedProperties.kt:75:42:75:78 | Integer | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | TypeAccess | | delegatedProperties.kt:75:42:75:78 | Integer | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:75:42:75:78 | KProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:75:42:75:78 | KProperty0 | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:75:42:75:78 | KProperty1 | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | TypeAccess | -| delegatedProperties.kt:75:42:75:78 | MyClass | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | TypeAccess | -| delegatedProperties.kt:75:42:75:78 | PropertyReferenceDelegatesKt | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | TypeAccess | +| delegatedProperties.kt:75:42:75:78 | KProperty1 | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | TypeAccess | +| delegatedProperties.kt:75:42:75:78 | MyClass | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | TypeAccess | +| delegatedProperties.kt:75:42:75:78 | PropertyReferenceDelegatesKt | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | TypeAccess | | delegatedProperties.kt:75:42:75:78 | a0 | delegatedProperties.kt:75:42:75:78 | get | VarAccess | | delegatedProperties.kt:75:42:75:78 | a0 | delegatedProperties.kt:75:42:75:78 | invoke | VarAccess | | delegatedProperties.kt:75:42:75:78 | delegatedToAnotherClass1$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | @@ -673,39 +674,40 @@ | delegatedProperties.kt:75:42:75:78 | get(...) | delegatedProperties.kt:75:42:75:78 | invoke | MethodCall | | delegatedProperties.kt:75:42:75:78 | getAnotherClassInt(...) | delegatedProperties.kt:75:42:75:78 | get | MethodCall | | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1(...) | delegatedProperties.kt:75:42:75:78 | get | MethodCall | -| delegatedProperties.kt:75:42:75:78 | getValue(...) | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | MethodCall | -| delegatedProperties.kt:75:42:75:78 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:75:42:75:78 | getValue(...) | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | MethodCall | +| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | ThisAccess | +| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | ThisAccess | | delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | | ThisAccess | | delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | get | ThisAccess | -| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | ThisAccess | -| delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | ThisAccess | | delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | invoke | ThisAccess | | delegatedProperties.kt:75:42:75:78 | this | delegatedProperties.kt:75:42:75:78 | invoke | ThisAccess | | delegatedProperties.kt:75:42:75:78 | this. | delegatedProperties.kt:75:42:75:78 | | VarAccess | | delegatedProperties.kt:75:42:75:78 | this. | delegatedProperties.kt:75:42:75:78 | get | VarAccess | -| delegatedProperties.kt:75:42:75:78 | this.delegatedToAnotherClass1$delegate | delegatedProperties.kt:75:42:75:78 | getDelegatedToAnotherClass1 | VarAccess | +| delegatedProperties.kt:75:42:75:78 | this.delegatedToAnotherClass1$delegate | delegatedProperties.kt:75:5:75:78 | getDelegatedToAnotherClass1 | VarAccess | | delegatedProperties.kt:77:5:77:49 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:77:5:77:49 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:77:5:77:49 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:77:37:77:49 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | +| delegatedProperties.kt:77:37:77:49 | ...::... | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | PropertyRefExpr | | delegatedProperties.kt:77:37:77:49 | ...::... | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | PropertyRefExpr | -| delegatedProperties.kt:77:37:77:49 | ...::... | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | PropertyRefExpr | | delegatedProperties.kt:77:37:77:49 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | | delegatedProperties.kt:77:37:77:49 | | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | VarAccess | | delegatedProperties.kt:77:37:77:49 | DelegatedPropertiesKt | delegatedProperties.kt:77:37:77:49 | get | TypeAccess | | delegatedProperties.kt:77:37:77:49 | DelegatedPropertiesKt | delegatedProperties.kt:77:37:77:49 | set | TypeAccess | | delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | +| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess | +| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess | | delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess | | delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess | -| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | TypeAccess | -| delegatedProperties.kt:77:37:77:49 | Integer | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | TypeAccess | | delegatedProperties.kt:77:37:77:49 | Integer | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:77:37:77:49 | KMutableProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:77:37:77:49 | KMutableProperty0 | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:77:37:77:49 | KMutableProperty1 | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess | | delegatedProperties.kt:77:37:77:49 | KMutableProperty1 | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess | -| delegatedProperties.kt:77:37:77:49 | KMutableProperty1 | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | TypeAccess | +| delegatedProperties.kt:77:37:77:49 | MyClass | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess | | delegatedProperties.kt:77:37:77:49 | MyClass | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess | -| delegatedProperties.kt:77:37:77:49 | MyClass | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | TypeAccess | +| delegatedProperties.kt:77:37:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | TypeAccess | | delegatedProperties.kt:77:37:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | TypeAccess | -| delegatedProperties.kt:77:37:77:49 | PropertyReferenceDelegatesKt | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | TypeAccess | | delegatedProperties.kt:77:37:77:49 | a0 | delegatedProperties.kt:77:37:77:49 | get | VarAccess | | delegatedProperties.kt:77:37:77:49 | a0 | delegatedProperties.kt:77:37:77:49 | get | VarAccess | | delegatedProperties.kt:77:37:77:49 | a0 | delegatedProperties.kt:77:37:77:49 | invoke | VarAccess | @@ -722,52 +724,51 @@ | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel(...) | delegatedProperties.kt:77:37:77:49 | get | MethodCall | | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel(...) | delegatedProperties.kt:77:37:77:49 | get | MethodCall | | delegatedProperties.kt:77:37:77:49 | getTopLevelInt(...) | delegatedProperties.kt:77:37:77:49 | get | MethodCall | -| delegatedProperties.kt:77:37:77:49 | getValue(...) | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | MethodCall | -| delegatedProperties.kt:77:37:77:49 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:77:37:77:49 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:77:37:77:49 | getValue(...) | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | MethodCall | | delegatedProperties.kt:77:37:77:49 | setDelegatedToTopLevel(...) | delegatedProperties.kt:77:37:77:49 | set | MethodCall | | delegatedProperties.kt:77:37:77:49 | setDelegatedToTopLevel(...) | delegatedProperties.kt:77:37:77:49 | set | MethodCall | | delegatedProperties.kt:77:37:77:49 | setTopLevelInt(...) | delegatedProperties.kt:77:37:77:49 | set | MethodCall | | delegatedProperties.kt:77:37:77:49 | setValue(...) | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | MethodCall | +| delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | ThisAccess | +| delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | ThisAccess | | delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | ThisAccess | | delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | ThisAccess | -| delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | ThisAccess | -| delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | ThisAccess | | delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | invoke | ThisAccess | | delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | invoke | ThisAccess | | delegatedProperties.kt:77:37:77:49 | this | delegatedProperties.kt:77:37:77:49 | invoke | ThisAccess | +| delegatedProperties.kt:77:37:77:49 | this.delegatedToTopLevel$delegate | delegatedProperties.kt:77:5:77:49 | getDelegatedToTopLevel | VarAccess | | delegatedProperties.kt:77:37:77:49 | this.delegatedToTopLevel$delegate | delegatedProperties.kt:77:5:77:49 | setDelegatedToTopLevel | VarAccess | -| delegatedProperties.kt:77:37:77:49 | this.delegatedToTopLevel$delegate | delegatedProperties.kt:77:37:77:49 | getDelegatedToTopLevel | VarAccess | +| delegatedProperties.kt:79:5:79:38 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:79:21:79:38 | ...::... | delegatedProperties.kt:65:14:65:78 | MyClass | PropertyRefExpr | -| delegatedProperties.kt:79:21:79:38 | ...::... | delegatedProperties.kt:79:21:79:38 | getMax | PropertyRefExpr | +| delegatedProperties.kt:79:21:79:38 | ...::... | delegatedProperties.kt:79:5:79:38 | getMax | PropertyRefExpr | | delegatedProperties.kt:79:21:79:38 | ...=... | delegatedProperties.kt:65:14:65:78 | MyClass | KtInitializerAssignExpr | | delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | -| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess | -| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess | +| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:79:5:79:38 | getMax | TypeAccess | +| delegatedProperties.kt:79:21:79:38 | Integer | delegatedProperties.kt:79:5:79:38 | getMax | TypeAccess | | delegatedProperties.kt:79:21:79:38 | Integer | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:79:21:79:38 | KProperty0 | delegatedProperties.kt:65:14:65:78 | MyClass | TypeAccess | | delegatedProperties.kt:79:21:79:38 | KProperty0 | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:79:21:79:38 | KProperty1 | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess | +| delegatedProperties.kt:79:21:79:38 | KProperty1 | delegatedProperties.kt:79:5:79:38 | getMax | TypeAccess | | delegatedProperties.kt:79:21:79:38 | MAX_VALUE | delegatedProperties.kt:79:21:79:38 | get | VarAccess | -| delegatedProperties.kt:79:21:79:38 | MyClass | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess | -| delegatedProperties.kt:79:21:79:38 | PropertyReferenceDelegatesKt | delegatedProperties.kt:79:21:79:38 | getMax | TypeAccess | +| delegatedProperties.kt:79:21:79:38 | MyClass | delegatedProperties.kt:79:5:79:38 | getMax | TypeAccess | +| delegatedProperties.kt:79:21:79:38 | PropertyReferenceDelegatesKt | delegatedProperties.kt:79:5:79:38 | getMax | TypeAccess | | delegatedProperties.kt:79:21:79:38 | a0 | delegatedProperties.kt:79:21:79:38 | get | VarAccess | | delegatedProperties.kt:79:21:79:38 | a0 | delegatedProperties.kt:79:21:79:38 | invoke | VarAccess | | delegatedProperties.kt:79:21:79:38 | get(...) | delegatedProperties.kt:79:21:79:38 | invoke | MethodCall | | delegatedProperties.kt:79:21:79:38 | get(...) | delegatedProperties.kt:79:21:79:38 | invoke | MethodCall | | delegatedProperties.kt:79:21:79:38 | getMax(...) | delegatedProperties.kt:79:21:79:38 | get | MethodCall | -| delegatedProperties.kt:79:21:79:38 | getValue(...) | delegatedProperties.kt:79:21:79:38 | getMax | MethodCall | -| delegatedProperties.kt:79:21:79:38 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:79:21:79:38 | getValue(...) | delegatedProperties.kt:79:5:79:38 | getMax | MethodCall | | delegatedProperties.kt:79:21:79:38 | max$delegate | delegatedProperties.kt:65:14:65:78 | MyClass | VarAccess | -| delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | getMax | ThisAccess | -| delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | getMax | ThisAccess | +| delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:5:79:38 | getMax | ThisAccess | +| delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:5:79:38 | getMax | ThisAccess | | delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | invoke | ThisAccess | | delegatedProperties.kt:79:21:79:38 | this | delegatedProperties.kt:79:21:79:38 | invoke | ThisAccess | -| delegatedProperties.kt:79:21:79:38 | this.max$delegate | delegatedProperties.kt:79:21:79:38 | getMax | VarAccess | +| delegatedProperties.kt:79:21:79:38 | this.max$delegate | delegatedProperties.kt:79:5:79:38 | getMax | VarAccess | | delegatedProperties.kt:81:5:84:5 | Unit | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:82:9:82:54 | Unit | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:82:9:82:54 | delegatedToMember3$delegate | delegatedProperties.kt:81:5:84:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:82:9:82:54 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:82:9:82:54 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:82:40:82:43 | this | delegatedProperties.kt:81:5:84:5 | fn | ThisAccess | | delegatedProperties.kt:82:40:82:54 | ...::... | delegatedProperties.kt:81:5:84:5 | fn | PropertyRefExpr | | delegatedProperties.kt:82:40:82:54 | ...::... | delegatedProperties.kt:82:9:82:54 | | PropertyRefExpr | @@ -804,7 +805,6 @@ | delegatedProperties.kt:82:40:82:54 | get(...) | delegatedProperties.kt:82:40:82:54 | invoke | MethodCall | | delegatedProperties.kt:82:40:82:54 | getMemberInt(...) | delegatedProperties.kt:82:40:82:54 | get | MethodCall | | delegatedProperties.kt:82:40:82:54 | getValue(...) | delegatedProperties.kt:82:9:82:54 | | MethodCall | -| delegatedProperties.kt:82:40:82:54 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:82:40:82:54 | new (...) | delegatedProperties.kt:82:40:82:54 | get | ClassInstanceExpr | | delegatedProperties.kt:82:40:82:54 | new (...) | delegatedProperties.kt:82:40:82:54 | get | ClassInstanceExpr | | delegatedProperties.kt:82:40:82:54 | new (...) | delegatedProperties.kt:82:40:82:54 | set | ClassInstanceExpr | @@ -823,39 +823,41 @@ | delegatedProperties.kt:83:9:83:12 | fn(...) | delegatedProperties.kt:81:5:84:5 | fn | MethodCall | | delegatedProperties.kt:83:9:83:12 | this | delegatedProperties.kt:81:5:84:5 | fn | ThisAccess | | delegatedProperties.kt:87:1:87:46 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:87:1:87:46 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:87:1:87:46 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:87:5:87:11 | MyClass | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:87:5:87:11 | MyClass | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:0:0:0:0 | | PropertyRefExpr | +| delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:87:1:87:46 | getExtDelegated | PropertyRefExpr | | delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:87:1:87:46 | setExtDelegated | PropertyRefExpr | -| delegatedProperties.kt:87:34:87:46 | ...::... | delegatedProperties.kt:87:34:87:46 | getExtDelegated | PropertyRefExpr | | delegatedProperties.kt:87:34:87:46 | ...=... | delegatedProperties.kt:0:0:0:0 | | KtInitializerAssignExpr | | delegatedProperties.kt:87:34:87:46 | | delegatedProperties.kt:87:1:87:46 | setExtDelegated | VarAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | get | TypeAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | get | TypeAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | get | TypeAccess | -| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | set | TypeAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | set | TypeAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt | delegatedProperties.kt:87:34:87:46 | set | TypeAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:0:0:0:0 | | VarAccess | +| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:87:1:87:46 | getExtDelegated | VarAccess | | delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:87:1:87:46 | setExtDelegated | VarAccess | -| delegatedProperties.kt:87:34:87:46 | DelegatedPropertiesKt.extDelegated$delegateMyClass | delegatedProperties.kt:87:34:87:46 | getExtDelegated | VarAccess | | delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess | +| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess | -| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess | -| delegatedProperties.kt:87:34:87:46 | Integer | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | Integer | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:87:34:87:46 | KMutableProperty0 | delegatedProperties.kt:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:87:34:87:46 | KMutableProperty0 | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:87:34:87:46 | KMutableProperty1 | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | KMutableProperty1 | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess | -| delegatedProperties.kt:87:34:87:46 | KMutableProperty1 | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess | +| delegatedProperties.kt:87:34:87:46 | MyClass | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | MyClass | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess | -| delegatedProperties.kt:87:34:87:46 | MyClass | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess | +| delegatedProperties.kt:87:34:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:1:87:46 | getExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:1:87:46 | setExtDelegated | TypeAccess | -| delegatedProperties.kt:87:34:87:46 | PropertyReferenceDelegatesKt | delegatedProperties.kt:87:34:87:46 | getExtDelegated | TypeAccess | | delegatedProperties.kt:87:34:87:46 | a0 | delegatedProperties.kt:87:34:87:46 | get | VarAccess | | delegatedProperties.kt:87:34:87:46 | a0 | delegatedProperties.kt:87:34:87:46 | get | VarAccess | | delegatedProperties.kt:87:34:87:46 | a0 | delegatedProperties.kt:87:34:87:46 | invoke | VarAccess | @@ -871,15 +873,13 @@ | delegatedProperties.kt:87:34:87:46 | getExtDelegated(...) | delegatedProperties.kt:87:34:87:46 | get | MethodCall | | delegatedProperties.kt:87:34:87:46 | getExtDelegated(...) | delegatedProperties.kt:87:34:87:46 | get | MethodCall | | delegatedProperties.kt:87:34:87:46 | getTopLevelInt(...) | delegatedProperties.kt:87:34:87:46 | get | MethodCall | -| delegatedProperties.kt:87:34:87:46 | getValue(...) | delegatedProperties.kt:87:34:87:46 | getExtDelegated | MethodCall | -| delegatedProperties.kt:87:34:87:46 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:87:34:87:46 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:87:34:87:46 | getValue(...) | delegatedProperties.kt:87:1:87:46 | getExtDelegated | MethodCall | | delegatedProperties.kt:87:34:87:46 | setExtDelegated(...) | delegatedProperties.kt:87:34:87:46 | set | MethodCall | | delegatedProperties.kt:87:34:87:46 | setExtDelegated(...) | delegatedProperties.kt:87:34:87:46 | set | MethodCall | | delegatedProperties.kt:87:34:87:46 | setTopLevelInt(...) | delegatedProperties.kt:87:34:87:46 | set | MethodCall | | delegatedProperties.kt:87:34:87:46 | setValue(...) | delegatedProperties.kt:87:1:87:46 | setExtDelegated | MethodCall | +| delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:1:87:46 | getExtDelegated | ExtensionReceiverAccess | | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:1:87:46 | setExtDelegated | ExtensionReceiverAccess | -| delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | getExtDelegated | ExtensionReceiverAccess | | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess | | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess | | delegatedProperties.kt:87:34:87:46 | this | delegatedProperties.kt:87:34:87:46 | invoke | ThisAccess | @@ -1541,12 +1541,12 @@ | exprs.kt:186:5:186:27 | green | exprs.kt:184:1:187:1 | enums | LocalVariableDeclExpr | | exprs.kt:186:23:186:27 | Color | exprs.kt:184:1:187:1 | enums | TypeAccess | | exprs.kt:186:23:186:27 | Color.GREEN | exprs.kt:184:1:187:1 | enums | VarAccess | +| exprs.kt:192:5:192:10 | int | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:192:5:192:10 | this | exprs.kt:192:5:192:10 | getA1 | ThisAccess | +| exprs.kt:192:5:192:10 | this.a1 | exprs.kt:192:5:192:10 | getA1 | VarAccess | | exprs.kt:192:5:192:14 | ...=... | exprs.kt:191:1:199:1 | Class1 | KtInitializerAssignExpr | | exprs.kt:192:5:192:14 | a1 | exprs.kt:191:1:199:1 | Class1 | VarAccess | | exprs.kt:192:5:192:14 | int | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:192:5:192:14 | int | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:192:5:192:14 | this | exprs.kt:192:5:192:14 | getA1 | ThisAccess | -| exprs.kt:192:5:192:14 | this.a1 | exprs.kt:192:5:192:14 | getA1 | VarAccess | | exprs.kt:192:14:192:14 | 1 | exprs.kt:191:1:199:1 | Class1 | IntegerLiteral | | exprs.kt:193:5:198:5 | Object | file://:0:0:0:0 | | TypeAccess | | exprs.kt:194:9:194:18 | a2 | exprs.kt:193:5:198:5 | getObject | LocalVariableDeclExpr | @@ -1554,12 +1554,12 @@ | exprs.kt:195:16:197:9 | | exprs.kt:193:5:198:5 | getObject | StmtExpr | | exprs.kt:195:16:197:9 | Interface1 | exprs.kt:193:5:198:5 | getObject | TypeAccess | | exprs.kt:195:16:197:9 | new (...) | exprs.kt:193:5:198:5 | getObject | ClassInstanceExpr | +| exprs.kt:196:13:196:26 | String | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:196:13:196:26 | this | exprs.kt:196:13:196:26 | getA3 | ThisAccess | +| exprs.kt:196:13:196:26 | this.a3 | exprs.kt:196:13:196:26 | getA3 | VarAccess | | exprs.kt:196:13:196:49 | ...=... | exprs.kt:195:16:197:9 | | KtInitializerAssignExpr | | exprs.kt:196:13:196:49 | String | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:196:13:196:49 | String | file://:0:0:0:0 | | TypeAccess | | exprs.kt:196:13:196:49 | a3 | exprs.kt:195:16:197:9 | | VarAccess | -| exprs.kt:196:13:196:49 | this | exprs.kt:196:13:196:49 | getA3 | ThisAccess | -| exprs.kt:196:13:196:49 | this.a3 | exprs.kt:196:13:196:49 | getA3 | VarAccess | | exprs.kt:196:31:196:32 | getA1(...) | exprs.kt:195:16:197:9 | | MethodCall | | exprs.kt:196:31:196:32 | this | exprs.kt:195:16:197:9 | | ThisAccess | | exprs.kt:196:31:196:37 | ... + ... | exprs.kt:195:16:197:9 | | AddExpr | @@ -1745,19 +1745,13 @@ | exprs.kt:271:3:271:14 | ...-=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignSubExpr | | exprs.kt:271:3:271:14 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess | | exprs.kt:271:14:271:14 | 1 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral | -| exprs.kt:272:3:272:9 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess | -| exprs.kt:272:3:272:14 | ... * ... | exprs.kt:267:1:276:1 | inPlaceOperators | MulExpr | -| exprs.kt:272:3:272:14 | ...=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignExpr | +| exprs.kt:272:3:272:14 | ...*=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignMulExpr | | exprs.kt:272:3:272:14 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess | | exprs.kt:272:14:272:14 | 1 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral | -| exprs.kt:273:3:273:9 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess | -| exprs.kt:273:3:273:14 | ... / ... | exprs.kt:267:1:276:1 | inPlaceOperators | DivExpr | -| exprs.kt:273:3:273:14 | ...=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignExpr | +| exprs.kt:273:3:273:14 | .../=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignDivExpr | | exprs.kt:273:3:273:14 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess | | exprs.kt:273:14:273:14 | 1 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral | -| exprs.kt:274:3:274:9 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess | -| exprs.kt:274:3:274:14 | ... % ... | exprs.kt:267:1:276:1 | inPlaceOperators | RemExpr | -| exprs.kt:274:3:274:14 | ...=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignExpr | +| exprs.kt:274:3:274:14 | ...%=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignRemExpr | | exprs.kt:274:3:274:14 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess | | exprs.kt:274:14:274:14 | 1 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral | | exprs.kt:278:1:278:66 | T | file://:0:0:0:0 | | TypeAccess | @@ -4297,11 +4291,11 @@ | samConversion.kt:59:5:59:15 | fn1(...) | samConversion.kt:57:1:60:1 | test | MethodCall | | samConversion.kt:59:12:59:12 | 1 | samConversion.kt:57:1:60:1 | test | IntegerLiteral | | samConversion.kt:59:14:59:14 | 2 | samConversion.kt:57:1:60:1 | test | IntegerLiteral | +| samConversion.kt:63:5:63:9 | int | file://:0:0:0:0 | | TypeAccess | +| samConversion.kt:63:5:63:9 | this | samConversion.kt:63:5:63:9 | getX | ThisAccess | +| samConversion.kt:63:5:63:9 | this.x | samConversion.kt:63:5:63:9 | getX | VarAccess | | samConversion.kt:63:5:63:13 | ...=... | samConversion.kt:62:1:64:1 | PropertyRefsTest | KtInitializerAssignExpr | | samConversion.kt:63:5:63:13 | int | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:63:5:63:13 | int | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:63:5:63:13 | this | samConversion.kt:63:5:63:13 | getX | ThisAccess | -| samConversion.kt:63:5:63:13 | this.x | samConversion.kt:63:5:63:13 | getX | VarAccess | | samConversion.kt:63:5:63:13 | x | samConversion.kt:62:1:64:1 | PropertyRefsTest | VarAccess | | samConversion.kt:63:13:63:13 | 1 | samConversion.kt:62:1:64:1 | PropertyRefsTest | IntegerLiteral | | samConversion.kt:67:5:67:37 | int | file://:0:0:0:0 | | TypeAccess | diff --git a/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected b/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected index 1328047196c..94ef616bff8 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected @@ -86,8 +86,8 @@ anon_class_member_modifiers | delegatedProperties.kt:19:34:19:51 | new KMutableProperty0(...) { ... } | delegatedProperties.kt:19:34:19:51 | set | override, public | | delegatedProperties.kt:23:29:23:31 | new KProperty0(...) { ... } | delegatedProperties.kt:23:29:23:31 | get | override, public | | delegatedProperties.kt:23:29:23:31 | new KProperty0(...) { ... } | delegatedProperties.kt:23:29:23:31 | invoke | override, public | -| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:28 | getCurValue | final, public | -| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:28 | setCurValue | final, public | +| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:24 | getCurValue | final, public | +| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:24 | setCurValue | final, public | | delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:27:13:27:88 | getValue | override, public | | delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:28:13:30:13 | setValue | override, public | | delegatedProperties.kt:33:30:33:47 | new KProperty0(...) { ... } | delegatedProperties.kt:33:30:33:47 | get | override, public | @@ -187,7 +187,7 @@ anon_class_member_modifiers | delegatedProperties.kt:87:34:87:46 | new KMutableProperty1(...) { ... } | delegatedProperties.kt:87:34:87:46 | invoke | override, public | | delegatedProperties.kt:87:34:87:46 | new KMutableProperty1(...) { ... } | delegatedProperties.kt:87:34:87:46 | set | override, public | | delegatedProperties.kt:87:34:87:46 | new KMutableProperty1(...) { ... } | delegatedProperties.kt:87:34:87:46 | set | override, public | -| exprs.kt:195:16:197:9 | new Interface1(...) { ... } | exprs.kt:196:13:196:49 | getA3 | final, public | +| exprs.kt:195:16:197:9 | new Interface1(...) { ... } | exprs.kt:196:13:196:26 | getA3 | final, public | | funcExprs.kt:22:26:22:33 | new Function0(...) { ... } | funcExprs.kt:22:26:22:33 | invoke | final, override, public | | funcExprs.kt:23:26:23:33 | new Function0(...) { ... } | funcExprs.kt:23:26:23:33 | invoke | final, override, public | | funcExprs.kt:24:26:24:33 | new Function0(...) { ... } | funcExprs.kt:24:26:24:33 | invoke | final, override, public | diff --git a/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected b/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected index e3bd90271e6..a9cce8a012f 100644 --- a/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/exprs_typeaccess/PrintAst.expected @@ -71,8 +71,7 @@ A.kt: # 19| 0: [VarAccess] Enu.A # 19| -1: [TypeAccess] Enu # 20| 2: [ReturnStmt] return ... -# 20| 0: [VarAccess] B.x -# 20| -1: [TypeAccess] B +# 20| 0: [IntegerLiteral] 5 # 23| 11: [Class] Enu # 23| 2: [Constructor] Enu # 23| 5: [BlockStmt] { ... } diff --git a/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected b/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected index d4a8aa109e8..2a6682ec3d8 100644 --- a/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected +++ b/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected @@ -6,8 +6,8 @@ calls | Test.java:26:5:26:35 | setter(...) | Test.java:16:22:16:25 | user | Test.java:14:14:14:17 | Test | Generic2.class:0:0:0:0 | setter | Generic2.class:0:0:0:0 | Generic2 | | Test.java:27:5:27:24 | getter(...) | Test.java:16:22:16:25 | user | Test.java:14:14:14:17 | Test | Generic2.class:0:0:0:0 | getter | Generic2.class:0:0:0:0 | Generic2 | | test.kt:5:32:5:46 | identity(...) | test.kt:5:3:5:46 | identity2 | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | test.kt:1:1:13:1 | Generic | -| test.kt:7:21:7:26 | getStored(...) | test.kt:7:3:7:26 | getter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | test.kt:1:1:13:1 | Generic | -| test.kt:8:26:8:39 | setStored(...) | test.kt:8:3:8:41 | setter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | test.kt:1:1:13:1 | Generic | +| test.kt:7:21:7:26 | getStored(...) | test.kt:7:3:7:26 | getter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | test.kt:1:1:13:1 | Generic | +| test.kt:8:26:8:39 | setStored(...) | test.kt:8:3:8:41 | setter | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | test.kt:1:1:13:1 | Generic | | test.kt:11:44:11:70 | privateid(...) | test.kt:11:3:11:70 | callPrivateId | test.kt:1:1:13:1 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | | test.kt:18:3:18:35 | identity(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | | test.kt:19:3:19:36 | identity2(...) | test.kt:15:1:28:1 | user | test.kt:0:0:0:0 | TestKt | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | @@ -53,30 +53,30 @@ refTypes | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter | setter(java.lang.Object) | T | void | Test.java:1:7:1:14 | Generic2 | Test.java:10:8:10:13 | setter | | Test.java:14:14:14:17 | Test | Test.java:16:22:16:25 | user | user() | No parameters | void | Test.java:14:14:14:17 | Test | Test.java:16:22:16:25 | user | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic | String | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | getter() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | identity(java.lang.Void) | Void | String | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | identity2(java.lang.Void) | Void | String | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.Void) | Void | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.Void) | Void | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | setter(java.lang.Void) | Void | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic | String | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | Object | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | Object | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | getter() | No parameters | Object | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | identity(java.lang.String) | String | Object | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | identity2(java.lang.String) | String | Object | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | setter(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | callPrivateId | callPrivateId(Generic) | Generic | String | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getStored | getStored() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | getter() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | identity(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | identity2(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | privateid(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:10:3:10:41 | privateid | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | setter(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter | | test.kt:0:0:0:0 | TestKt | test.kt:15:1:28:1 | user | user() | No parameters | void | test.kt:0:0:0:0 | TestKt | test.kt:15:1:28:1 | user | -| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | getStored() | No parameters | T | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | getStored | -| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | setStored(java.lang.Object) | T | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:19 | setStored | +| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | getStored() | No parameters | T | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | getStored | +| test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | setStored(java.lang.Object) | T | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | identity2(java.lang.Object) | T | T | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | identity(java.lang.Object) | T | T | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | getter() | No parameters | T | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | diff --git a/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected b/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected index d64054af2f7..fbc7f2519f6 100644 --- a/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected +++ b/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected @@ -12,12 +12,12 @@ | Test.java:13:7:13:10 | User | Test.java:13:7:13:10 | User | | Test.java:13:7:13:10 | User | Test.java:15:22:15:25 | test | | Test.kt:1:1:8:1 | TestKt | Test.kt:1:1:8:1 | TestKt | +| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:15 | getField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:15 | setField | | Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | field | -| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | getField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | setField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:25 | getRawField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:18 | getRawField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:18 | setRawField | | Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:25 | rawField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:25 | setRawField | | Test.kt:1:1:8:1 | TestKt | Test.kt:6:3:6:22 | method | | Test.kt:10:1:10:20 | FieldUsedKt | Test.kt:10:1:10:20 | FieldUsedKt | | Test.kt:11:1:11:23 | RawFieldUsedKt | Test.kt:11:1:11:23 | RawFieldUsedKt | diff --git a/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected b/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected index a436af62303..09dae53df72 100644 --- a/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected +++ b/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected @@ -1,6 +1,6 @@ | User.java:3:21:3:24 | test | -| test.kt:3:3:3:30 | getInternalVal$main | +| test.kt:3:3:3:26 | getInternalVal$main | | test.kt:6:3:6:36 | getInternalVal | -| test.kt:8:3:8:30 | getInternalVar$main | -| test.kt:8:3:8:30 | setInternalVar$main | +| test.kt:8:3:8:26 | getInternalVar$main | +| test.kt:8:3:8:26 | setInternalVar$main | | test.kt:10:3:10:32 | internalFun$main | diff --git a/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected b/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected index 6ce063785ea..71e45333654 100644 --- a/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected +++ b/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected @@ -4,14 +4,14 @@ staticMembers | test.kt:9:1:29:1 | HasCompanion | test.kt:11:3:27:3 | Companion | Class | | test.kt:9:1:29:1 | HasCompanion | test.kt:11:3:27:3 | Companion | Field | | test.kt:9:1:29:1 | HasCompanion | test.kt:13:5:13:71 | staticMethod | Method | -| test.kt:9:1:29:1 | HasCompanion | test.kt:16:5:16:43 | getStaticProp | Method | -| test.kt:9:1:29:1 | HasCompanion | test.kt:16:5:16:43 | setStaticProp | Method | +| test.kt:9:1:29:1 | HasCompanion | test.kt:16:5:16:37 | getStaticProp | Method | +| test.kt:9:1:29:1 | HasCompanion | test.kt:16:5:16:37 | setStaticProp | Method | | test.kt:9:1:29:1 | HasCompanion | test.kt:20:7:20:45 | getPropWithStaticGetter | Method | | test.kt:9:1:29:1 | HasCompanion | test.kt:25:7:25:60 | setPropWithStaticSetter | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:31:1:47:1 | INSTANCE | Field | | test.kt:31:1:47:1 | NonCompanion | test.kt:33:3:33:69 | staticMethod | Method | -| test.kt:31:1:47:1 | NonCompanion | test.kt:36:3:36:41 | getStaticProp | Method | -| test.kt:31:1:47:1 | NonCompanion | test.kt:36:3:36:41 | setStaticProp | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:36:3:36:35 | getStaticProp | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:36:3:36:35 | setStaticProp | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:40:5:40:43 | getPropWithStaticGetter | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:45:5:45:58 | setPropWithStaticSetter | Method | #select @@ -28,8 +28,8 @@ staticMembers | test.kt:11:3:27:3 | Companion | test.kt:13:5:13:71 | staticMethod(...) | test.kt:13:5:13:71 | HasCompanion.Companion | instance | | test.kt:11:3:27:3 | Companion | test.kt:13:54:13:71 | nonStaticMethod(...) | test.kt:13:54:13:71 | this | instance | | test.kt:11:3:27:3 | Companion | test.kt:14:46:14:60 | staticMethod(...) | test.kt:14:46:14:60 | this | instance | -| test.kt:11:3:27:3 | Companion | test.kt:16:5:16:43 | getStaticProp(...) | test.kt:16:5:16:43 | HasCompanion.Companion | instance | -| test.kt:11:3:27:3 | Companion | test.kt:16:5:16:43 | setStaticProp(...) | test.kt:16:5:16:43 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:16:5:16:37 | getStaticProp(...) | test.kt:16:5:16:37 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:16:5:16:37 | setStaticProp(...) | test.kt:16:5:16:37 | HasCompanion.Companion | instance | | test.kt:11:3:27:3 | Companion | test.kt:20:7:20:45 | getPropWithStaticGetter(...) | test.kt:20:7:20:45 | HasCompanion.Companion | instance | | test.kt:11:3:27:3 | Companion | test.kt:20:26:20:45 | getPropWithStaticSetter(...) | test.kt:20:26:20:45 | this | instance | | test.kt:11:3:27:3 | Companion | test.kt:21:24:21:47 | setPropWithStaticSetter(...) | test.kt:21:24:21:47 | this | instance | diff --git a/java/ql/test-kotlin2/library-tests/methods/exprs.expected b/java/ql/test-kotlin2/library-tests/methods/exprs.expected index 4d7a0a6e85a..041ef562dfb 100644 --- a/java/ql/test-kotlin2/library-tests/methods/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/methods/exprs.expected @@ -1,15 +1,15 @@ -| clinit.kt:3:1:3:24 | ...=... | AssignExpr | +| clinit.kt:3:1:3:20 | ...=... | AssignExpr | +| clinit.kt:3:1:3:20 | | VarAccess | +| clinit.kt:3:1:3:20 | ClinitKt | TypeAccess | +| clinit.kt:3:1:3:20 | ClinitKt | TypeAccess | +| clinit.kt:3:1:3:20 | ClinitKt.topLevelInt | VarAccess | +| clinit.kt:3:1:3:20 | ClinitKt.topLevelInt | VarAccess | +| clinit.kt:3:1:3:20 | Unit | TypeAccess | +| clinit.kt:3:1:3:20 | int | TypeAccess | +| clinit.kt:3:1:3:20 | int | TypeAccess | | clinit.kt:3:1:3:24 | ...=... | KtInitializerAssignExpr | -| clinit.kt:3:1:3:24 | | VarAccess | -| clinit.kt:3:1:3:24 | ClinitKt | TypeAccess | -| clinit.kt:3:1:3:24 | ClinitKt | TypeAccess | | clinit.kt:3:1:3:24 | ClinitKt | TypeAccess | | clinit.kt:3:1:3:24 | ClinitKt.topLevelInt | VarAccess | -| clinit.kt:3:1:3:24 | ClinitKt.topLevelInt | VarAccess | -| clinit.kt:3:1:3:24 | ClinitKt.topLevelInt | VarAccess | -| clinit.kt:3:1:3:24 | Unit | TypeAccess | -| clinit.kt:3:1:3:24 | int | TypeAccess | -| clinit.kt:3:1:3:24 | int | TypeAccess | | clinit.kt:3:1:3:24 | int | TypeAccess | | clinit.kt:3:24:3:24 | 0 | IntegerLiteral | | dataClass.kt:0:0:0:0 | 0 | IntegerLiteral | @@ -132,6 +132,7 @@ | dataClass.kt:1:34:1:46 | this.y | VarAccess | | dataClass.kt:1:34:1:46 | y | VarAccess | | dataClass.kt:1:34:1:46 | y | VarAccess | +| delegates.kt:4:5:6:5 | int | TypeAccess | | delegates.kt:4:21:6:5 | ...::... | PropertyRefExpr | | delegates.kt:4:21:6:5 | ...=... | KtInitializerAssignExpr | | delegates.kt:4:21:6:5 | Integer | TypeAccess | @@ -148,7 +149,6 @@ | delegates.kt:4:21:6:5 | get(...) | MethodCall | | delegates.kt:4:21:6:5 | getLazyProp(...) | MethodCall | | delegates.kt:4:21:6:5 | getValue(...) | MethodCall | -| delegates.kt:4:21:6:5 | int | TypeAccess | | delegates.kt:4:21:6:5 | lazy(...) | MethodCall | | delegates.kt:4:21:6:5 | lazyProp$delegate | VarAccess | | delegates.kt:4:21:6:5 | this | ThisAccess | @@ -160,6 +160,8 @@ | delegates.kt:4:26:6:5 | Integer | TypeAccess | | delegates.kt:4:26:6:5 | int | TypeAccess | | delegates.kt:5:9:5:9 | 5 | IntegerLiteral | +| delegates.kt:8:5:11:5 | String | TypeAccess | +| delegates.kt:8:5:11:5 | String | TypeAccess | | delegates.kt:8:5:11:5 | Unit | TypeAccess | | delegates.kt:8:35:8:43 | INSTANCE | VarAccess | | delegates.kt:8:35:11:5 | ...::... | PropertyRefExpr | @@ -176,8 +178,6 @@ | delegates.kt:8:35:11:5 | String | TypeAccess | | delegates.kt:8:35:11:5 | String | TypeAccess | | delegates.kt:8:35:11:5 | String | TypeAccess | -| delegates.kt:8:35:11:5 | String | TypeAccess | -| delegates.kt:8:35:11:5 | String | TypeAccess | | delegates.kt:8:35:11:5 | a0 | VarAccess | | delegates.kt:8:35:11:5 | a0 | VarAccess | | delegates.kt:8:35:11:5 | a0 | VarAccess | diff --git a/java/ql/test-kotlin2/library-tests/methods/methods.expected b/java/ql/test-kotlin2/library-tests/methods/methods.expected index 330c5b2f919..79f674e4d7c 100644 --- a/java/ql/test-kotlin2/library-tests/methods/methods.expected +++ b/java/ql/test-kotlin2/library-tests/methods/methods.expected @@ -1,7 +1,7 @@ methods | clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:0:0:0:0 | | () | static | Compiler generated | -| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:24 | getTopLevelInt | getTopLevelInt() | final, public, static | Compiler generated | -| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:24 | setTopLevelInt | setTopLevelInt(int) | final, public, static | Compiler generated | +| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:20 | getTopLevelInt | getTopLevelInt() | final, public, static | Compiler generated | +| clinit.kt:0:0:0:0 | ClinitKt | clinit.kt:3:1:3:20 | setTopLevelInt | setTopLevelInt(int) | final, public, static | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | component1 | component1() | final, public | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | component2 | component2() | final, public | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:0:0:0:0 | copy | copy(int,java.lang.String) | final, public | Compiler generated | @@ -12,9 +12,9 @@ methods | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:22:1:31 | getX | getX() | final, public | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:34:1:46 | getY | getY() | final, public | Compiler generated | | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:34:1:46 | setY | setY(java.lang.String) | final, public | Compiler generated | -| delegates.kt:3:1:12:1 | MyClass | delegates.kt:4:21:6:5 | getLazyProp | getLazyProp() | final, public | Compiler generated | +| delegates.kt:3:1:12:1 | MyClass | delegates.kt:4:5:6:5 | getLazyProp | getLazyProp() | final, public | Compiler generated | +| delegates.kt:3:1:12:1 | MyClass | delegates.kt:8:5:11:5 | getObservableProp | getObservableProp() | final, public | Compiler generated | | delegates.kt:3:1:12:1 | MyClass | delegates.kt:8:5:11:5 | setObservableProp | setObservableProp(java.lang.String) | final, public | Compiler generated | -| delegates.kt:3:1:12:1 | MyClass | delegates.kt:8:35:11:5 | getObservableProp | getObservableProp() | final, public | Compiler generated | | delegates.kt:4:21:6:5 | new KProperty1(...) { ... } | delegates.kt:4:21:6:5 | get | get(MyClass) | override, public | | | delegates.kt:4:21:6:5 | new KProperty1(...) { ... } | delegates.kt:4:21:6:5 | invoke | invoke(MyClass) | override, public | | | delegates.kt:4:26:6:5 | new Function0(...) { ... } | delegates.kt:4:26:6:5 | invoke | invoke() | final, override, public | | diff --git a/java/ql/test-kotlin2/library-tests/methods/parameters.expected b/java/ql/test-kotlin2/library-tests/methods/parameters.expected index 76538cae775..f0c4ad71946 100644 --- a/java/ql/test-kotlin2/library-tests/methods/parameters.expected +++ b/java/ql/test-kotlin2/library-tests/methods/parameters.expected @@ -1,4 +1,4 @@ -| clinit.kt:3:1:3:24 | setTopLevelInt | clinit.kt:3:1:3:24 | | 0 | +| clinit.kt:3:1:3:20 | setTopLevelInt | clinit.kt:3:1:3:20 | | 0 | | dataClass.kt:0:0:0:0 | copy | dataClass.kt:0:0:0:0 | x | 0 | | dataClass.kt:0:0:0:0 | copy | dataClass.kt:0:0:0:0 | y | 1 | | dataClass.kt:0:0:0:0 | copy$default | dataClass.kt:0:0:0:0 | p0 | 0 | @@ -10,7 +10,7 @@ | dataClass.kt:1:34:1:46 | setY | dataClass.kt:1:34:1:46 | | 0 | | delegates.kt:4:21:6:5 | get | delegates.kt:4:21:6:5 | a0 | 0 | | delegates.kt:4:21:6:5 | invoke | delegates.kt:4:21:6:5 | a0 | 0 | -| delegates.kt:8:5:11:5 | setObservableProp | delegates.kt:8:35:11:5 | | 0 | +| delegates.kt:8:5:11:5 | setObservableProp | delegates.kt:8:5:11:5 | | 0 | | delegates.kt:8:35:11:5 | get | delegates.kt:8:35:11:5 | a0 | 0 | | delegates.kt:8:35:11:5 | get | delegates.kt:8:35:11:5 | a0 | 0 | | delegates.kt:8:35:11:5 | invoke | delegates.kt:8:35:11:5 | a0 | 0 | diff --git a/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected b/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected index 329e9e10399..6bc77b34a0a 100644 --- a/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected +++ b/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected @@ -1,33 +1,33 @@ | modifiers.kt:1:1:29:1 | X | Class | public | | modifiers.kt:1:1:29:1 | X | Constructor | public | +| modifiers.kt:2:5:2:17 | getA$private | Method | final | +| modifiers.kt:2:5:2:17 | getA$private | Method | private | | modifiers.kt:2:5:2:21 | a | Field | final | | modifiers.kt:2:5:2:21 | a | Field | private | | modifiers.kt:2:5:2:21 | a | Property | private | -| modifiers.kt:2:5:2:21 | getA$private | Method | final | -| modifiers.kt:2:5:2:21 | getA$private | Method | private | +| modifiers.kt:3:5:3:19 | getB | Method | final | +| modifiers.kt:3:5:3:19 | getB | Method | protected | | modifiers.kt:3:5:3:23 | b | Field | final | | modifiers.kt:3:5:3:23 | b | Field | private | | modifiers.kt:3:5:3:23 | b | Property | protected | -| modifiers.kt:3:5:3:23 | getB | Method | final | -| modifiers.kt:3:5:3:23 | getB | Method | protected | +| modifiers.kt:4:5:4:18 | getC$main | Method | final | +| modifiers.kt:4:5:4:18 | getC$main | Method | internal | | modifiers.kt:4:5:4:22 | c | Field | final | | modifiers.kt:4:5:4:22 | c | Field | private | | modifiers.kt:4:5:4:22 | c | Property | internal | -| modifiers.kt:4:5:4:22 | getC$main | Method | final | -| modifiers.kt:4:5:4:22 | getC$main | Method | internal | +| modifiers.kt:5:5:5:9 | getD | Method | final | +| modifiers.kt:5:5:5:9 | getD | Method | public | | modifiers.kt:5:5:5:34 | d | Field | final | | modifiers.kt:5:5:5:34 | d | Field | private | | modifiers.kt:5:5:5:34 | d | Property | public | -| modifiers.kt:5:5:5:34 | getD | Method | final | -| modifiers.kt:5:5:5:34 | getD | Method | public | | modifiers.kt:7:5:9:5 | Nested | Class | final | | modifiers.kt:7:5:9:5 | Nested | Class | protected | | modifiers.kt:7:5:9:5 | Nested | Constructor | public | +| modifiers.kt:8:9:8:25 | getE | Method | final | +| modifiers.kt:8:9:8:25 | getE | Method | public | | modifiers.kt:8:9:8:29 | e | Field | final | | modifiers.kt:8:9:8:29 | e | Field | private | | modifiers.kt:8:9:8:29 | e | Property | public | -| modifiers.kt:8:9:8:29 | getE | Method | final | -| modifiers.kt:8:9:8:29 | getE | Method | public | | modifiers.kt:11:5:15:5 | fn1 | Method | final | | modifiers.kt:11:5:15:5 | fn1 | Method | public | | modifiers.kt:12:16:14:9 | | Constructor | public | diff --git a/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected b/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected index 6eff637457e..fa622bab6ff 100644 --- a/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected +++ b/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected @@ -17,16 +17,16 @@ | test.kt:0:0:0:0 | TestKt | test.kt:24:1:24:38 | user | | test.kt:1:1:5:1 | If | test.kt:3:3:3:11 | getX | | test.kt:7:1:22:1 | A | test.kt:7:16:7:21 | A | +| test.kt:7:1:22:1 | A | test.kt:9:3:9:14 | getAnonType | | test.kt:7:1:22:1 | A | test.kt:9:3:11:3 | anonType | -| test.kt:7:1:22:1 | A | test.kt:9:3:11:3 | getAnonType | -| test.kt:7:1:22:1 | A | test.kt:13:3:15:3 | getPrivateAnonType$private | +| test.kt:7:1:22:1 | A | test.kt:13:3:13:29 | getPrivateAnonType$private | | test.kt:7:1:22:1 | A | test.kt:13:3:15:3 | privateAnonType | | test.kt:7:1:22:1 | A | test.kt:17:3:20:3 | privateUser | | test.kt:9:18:11:3 | new If(...) { ... } | test.kt:9:18:11:3 | | -| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:5:10:22 | getX | +| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:5:10:18 | getX | | test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:5:10:22 | x | | test.kt:13:33:15:3 | new If(...) { ... } | test.kt:13:33:15:3 | | -| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:5:14:22 | getX | +| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:5:14:18 | getX | | test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:5:14:22 | x | enclosingTypes | file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A | diff --git a/java/ql/test-kotlin2/library-tests/properties/properties.expected b/java/ql/test-kotlin2/library-tests/properties/properties.expected index 3f11ff28185..6e2d867153c 100644 --- a/java/ql/test-kotlin2/library-tests/properties/properties.expected +++ b/java/ql/test-kotlin2/library-tests/properties/properties.expected @@ -1,33 +1,33 @@ #select | properties.kt:2:27:2:50 | constructorProp | properties.kt:2:27:2:50 | getConstructorProp | file://:0:0:0:0 | | properties.kt:2:27:2:50 | constructorProp | public | | properties.kt:2:53:2:83 | mutableConstructorProp | properties.kt:2:53:2:83 | getMutableConstructorProp | properties.kt:2:53:2:83 | setMutableConstructorProp | properties.kt:2:53:2:83 | mutableConstructorProp | public | -| properties.kt:3:5:3:25 | modifiableInt | properties.kt:3:5:3:25 | getModifiableInt | properties.kt:3:5:3:25 | setModifiableInt | properties.kt:3:5:3:25 | modifiableInt | public | -| properties.kt:4:5:4:24 | immutableInt | properties.kt:4:5:4:24 | getImmutableInt | file://:0:0:0:0 | | properties.kt:4:5:4:24 | immutableInt | public | -| properties.kt:5:5:5:26 | typedProp | properties.kt:5:5:5:26 | getTypedProp | file://:0:0:0:0 | | properties.kt:5:5:5:26 | typedProp | public | +| properties.kt:3:5:3:25 | modifiableInt | properties.kt:3:5:3:21 | getModifiableInt | properties.kt:3:5:3:21 | setModifiableInt | properties.kt:3:5:3:25 | modifiableInt | public | +| properties.kt:4:5:4:24 | immutableInt | properties.kt:4:5:4:20 | getImmutableInt | file://:0:0:0:0 | | properties.kt:4:5:4:24 | immutableInt | public | +| properties.kt:5:5:5:26 | typedProp | properties.kt:5:5:5:22 | getTypedProp | file://:0:0:0:0 | | properties.kt:5:5:5:26 | typedProp | public | | properties.kt:6:5:6:38 | abstractTypeProp | properties.kt:6:5:6:38 | getAbstractTypeProp | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:7:5:7:30 | initialisedInInit | properties.kt:7:5:7:30 | getInitialisedInInit | file://:0:0:0:0 | | properties.kt:7:5:7:30 | initialisedInInit | public | -| properties.kt:11:5:11:40 | useConstructorArg | properties.kt:11:5:11:40 | getUseConstructorArg | file://:0:0:0:0 | | properties.kt:11:5:11:40 | useConstructorArg | public | +| properties.kt:11:5:11:40 | useConstructorArg | properties.kt:11:5:11:25 | getUseConstructorArg | file://:0:0:0:0 | | properties.kt:11:5:11:40 | useConstructorArg | public | | properties.kt:12:5:13:21 | five | properties.kt:13:13:13:21 | getFive | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:14:5:15:21 | six | properties.kt:15:13:15:21 | getSix | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:16:5:18:40 | getSet | properties.kt:17:13:17:33 | getGetSet | properties.kt:18:13:18:40 | setGetSet | file://:0:0:0:0 | | public | | properties.kt:19:5:20:15 | defaultGetter | properties.kt:20:13:20:15 | getDefaultGetter | file://:0:0:0:0 | | properties.kt:19:5:20:15 | defaultGetter | public | -| properties.kt:21:5:22:15 | varDefaultGetter | properties.kt:22:13:22:15 | getVarDefaultGetter | properties.kt:21:5:22:15 | setVarDefaultGetter | properties.kt:21:5:22:15 | varDefaultGetter | public | -| properties.kt:23:5:24:15 | varDefaultSetter | properties.kt:23:5:24:15 | getVarDefaultSetter | properties.kt:24:13:24:15 | setVarDefaultSetter | properties.kt:23:5:24:15 | varDefaultSetter | public | +| properties.kt:21:5:22:15 | varDefaultGetter | properties.kt:22:13:22:15 | getVarDefaultGetter | properties.kt:21:5:21:24 | setVarDefaultGetter | properties.kt:21:5:22:15 | varDefaultGetter | public | +| properties.kt:23:5:24:15 | varDefaultSetter | properties.kt:23:5:23:24 | getVarDefaultSetter | properties.kt:24:13:24:15 | setVarDefaultSetter | properties.kt:23:5:24:15 | varDefaultSetter | public | | properties.kt:25:5:27:15 | varDefaultGetterSetter | properties.kt:26:13:26:15 | getVarDefaultGetterSetter | properties.kt:27:13:27:15 | setVarDefaultGetterSetter | properties.kt:25:5:27:15 | varDefaultGetterSetter | public | -| properties.kt:28:5:29:22 | overrideGetter | properties.kt:29:13:29:22 | getOverrideGetter | properties.kt:28:5:29:22 | setOverrideGetter | properties.kt:28:5:29:22 | overrideGetter | public | -| properties.kt:30:5:31:29 | overrideGetterUseField | properties.kt:31:13:31:29 | getOverrideGetterUseField | properties.kt:30:5:31:29 | setOverrideGetterUseField | properties.kt:30:5:31:29 | overrideGetterUseField | public | +| properties.kt:28:5:29:22 | overrideGetter | properties.kt:29:13:29:22 | getOverrideGetter | properties.kt:28:5:28:22 | setOverrideGetter | properties.kt:28:5:29:22 | overrideGetter | public | +| properties.kt:30:5:31:29 | overrideGetterUseField | properties.kt:31:13:31:29 | getOverrideGetterUseField | properties.kt:30:5:30:30 | setOverrideGetterUseField | properties.kt:30:5:31:29 | overrideGetterUseField | public | | properties.kt:32:5:33:29 | useField | properties.kt:33:13:33:29 | getUseField | file://:0:0:0:0 | | properties.kt:32:5:33:29 | useField | public | | properties.kt:34:5:34:36 | lateInitVar | properties.kt:34:5:34:36 | getLateInitVar | properties.kt:34:5:34:36 | setLateInitVar | properties.kt:34:5:34:36 | lateInitVar | lateinit, public | -| properties.kt:35:5:35:32 | privateProp | properties.kt:35:5:35:32 | getPrivateProp$private | file://:0:0:0:0 | | properties.kt:35:5:35:32 | privateProp | private | -| properties.kt:36:5:36:36 | protectedProp | properties.kt:36:5:36:36 | getProtectedProp | file://:0:0:0:0 | | properties.kt:36:5:36:36 | protectedProp | protected | -| properties.kt:37:5:37:30 | publicProp | properties.kt:37:5:37:30 | getPublicProp | file://:0:0:0:0 | | properties.kt:37:5:37:30 | publicProp | public | -| properties.kt:38:5:38:34 | internalProp | properties.kt:38:5:38:34 | getInternalProp$main | file://:0:0:0:0 | | properties.kt:38:5:38:34 | internalProp | internal | -| properties.kt:67:1:67:23 | constVal | properties.kt:67:1:67:23 | getConstVal | file://:0:0:0:0 | | properties.kt:67:1:67:23 | constVal | public | -| properties.kt:70:5:70:16 | prop | properties.kt:70:5:70:16 | getProp | file://:0:0:0:0 | | properties.kt:70:5:70:16 | prop | public | +| properties.kt:35:5:35:32 | privateProp | properties.kt:35:5:35:27 | getPrivateProp$private | file://:0:0:0:0 | | properties.kt:35:5:35:32 | privateProp | private | +| properties.kt:36:5:36:36 | protectedProp | properties.kt:36:5:36:31 | getProtectedProp | file://:0:0:0:0 | | properties.kt:36:5:36:36 | protectedProp | protected | +| properties.kt:37:5:37:30 | publicProp | properties.kt:37:5:37:25 | getPublicProp | file://:0:0:0:0 | | properties.kt:37:5:37:30 | publicProp | public | +| properties.kt:38:5:38:34 | internalProp | properties.kt:38:5:38:29 | getInternalProp$main | file://:0:0:0:0 | | properties.kt:38:5:38:34 | internalProp | internal | +| properties.kt:67:1:67:23 | constVal | properties.kt:67:1:67:18 | getConstVal | file://:0:0:0:0 | | properties.kt:67:1:67:23 | constVal | public | +| properties.kt:70:5:70:16 | prop | properties.kt:70:5:70:12 | getProp | file://:0:0:0:0 | | properties.kt:70:5:70:16 | prop | public | | properties.kt:78:1:79:13 | x | properties.kt:79:5:79:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:80:1:81:13 | x | properties.kt:81:5:81:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | -| properties.kt:84:5:84:29 | data | properties.kt:84:5:84:29 | getData$private | properties.kt:84:5:84:29 | setData$private | properties.kt:84:5:84:29 | data | private | -| properties.kt:92:5:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:5:93:18 | setData$private | properties.kt:92:5:93:18 | data | private | +| properties.kt:84:5:84:29 | data | properties.kt:84:5:84:25 | getData$private | properties.kt:84:5:84:25 | setData$private | properties.kt:84:5:84:29 | data | private | +| properties.kt:92:5:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:5:92:25 | setData$private | properties.kt:92:5:93:18 | data | private | fieldDeclarations | properties.kt:2:27:2:50 | int constructorProp; | properties.kt:2:27:2:50 | constructorProp | 0 | | properties.kt:2:53:2:83 | int mutableConstructorProp; | properties.kt:2:53:2:83 | mutableConstructorProp | 0 | diff --git a/java/ql/test-kotlin2/library-tests/reflection/reflection.expected b/java/ql/test-kotlin2/library-tests/reflection/reflection.expected index 92b20bcae77..4074866da65 100644 --- a/java/ql/test-kotlin2/library-tests/reflection/reflection.expected +++ b/java/ql/test-kotlin2/library-tests/reflection/reflection.expected @@ -59,10 +59,10 @@ functionReferences | reflection.kt:154:33:154:61 | ...::... | reflection.kt:154:33:154:61 | invoke | reflection.kt:154:33:154:61 | extTakesOptionalParam | | reflection.kt:162:25:162:45 | ...::... | reflection.kt:162:25:162:45 | invoke | reflection.kt:162:25:162:45 | | propertyGetReferences -| reflection.kt:10:38:10:42 | ...::... | reflection.kt:10:38:10:42 | get | reflection.kt:33:9:33:23 | getP0 | -| reflection.kt:15:35:15:41 | ...::... | reflection.kt:15:35:15:41 | get | reflection.kt:33:9:33:23 | getP0 | -| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | get | reflection.kt:34:9:34:23 | getP1 | -| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | get | reflection.kt:34:9:34:23 | getP1 | +| reflection.kt:10:38:10:42 | ...::... | reflection.kt:10:38:10:42 | get | reflection.kt:33:9:33:19 | getP0 | +| reflection.kt:15:35:15:41 | ...::... | reflection.kt:15:35:15:41 | get | reflection.kt:33:9:33:19 | getP0 | +| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | get | reflection.kt:34:9:34:19 | getP1 | +| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | get | reflection.kt:34:9:34:19 | getP1 | | reflection.kt:50:13:50:28 | ...::... | reflection.kt:50:13:50:28 | get | reflection.kt:47:5:47:28 | getLastChar | | reflection.kt:51:13:51:28 | ...::... | reflection.kt:51:13:51:28 | get | reflection.kt:47:5:47:28 | getLastChar | | reflection.kt:67:17:67:32 | ...::... | reflection.kt:67:17:67:32 | get | file:///Class1$Generic.class:0:0:0:0 | getP2 | @@ -73,8 +73,8 @@ propertyFieldReferences | reflection.kt:71:17:71:34 | ...::... | reflection.kt:71:17:71:34 | get | file:///modules/java.base/java/lang/Integer.class:0:0:0:0 | MAX_VALUE | | reflection.kt:72:17:72:35 | ...::... | reflection.kt:72:17:72:35 | get | file:///modules/java.desktop/java/awt/Rectangle.class:0:0:0:0 | height | propertySetReferences -| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | set | reflection.kt:34:9:34:23 | setP1 | -| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | set | reflection.kt:34:9:34:23 | setP1 | +| reflection.kt:17:45:17:49 | ...::... | reflection.kt:17:45:17:49 | set | reflection.kt:34:9:34:19 | setP1 | +| reflection.kt:22:42:22:48 | ...::... | reflection.kt:22:42:22:48 | set | reflection.kt:34:9:34:19 | setP1 | | reflection.kt:67:17:67:32 | ...::... | reflection.kt:67:17:67:32 | set | file:///Class1$Generic.class:0:0:0:0 | setP2 | | reflection.kt:68:17:68:34 | ...::... | reflection.kt:68:17:68:34 | set | file:///Class1$Generic.class:0:0:0:0 | setP2 | | reflection.kt:109:17:109:27 | ...::... | reflection.kt:109:17:109:27 | set | reflection.kt:105:18:105:31 | setProp1 | @@ -346,9 +346,9 @@ compGenerated | reflection.kt:21:44:21:50 | new Function2(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:22:42:22:48 | new KMutableProperty0(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:24:46:24:64 | new Function1,Boolean>(...) { ... } | The class around a local function, a lambda, or a function reference | -| reflection.kt:33:9:33:23 | getP0 | Default property accessor | -| reflection.kt:34:9:34:23 | getP1 | Default property accessor | -| reflection.kt:34:9:34:23 | setP1 | Default property accessor | +| reflection.kt:33:9:33:19 | getP0 | Default property accessor | +| reflection.kt:34:9:34:19 | getP1 | Default property accessor | +| reflection.kt:34:9:34:19 | setP1 | Default property accessor | | reflection.kt:50:13:50:28 | new KProperty1(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:51:13:51:28 | new KProperty0(...) { ... } | The class around a local function, a lambda, or a function reference | | reflection.kt:60:17:60:32 | new Function2,Integer,String>(...) { ... } | The class around a local function, a lambda, or a function reference | diff --git a/java/ql/test-kotlin2/library-tests/variables/variableAccesses.expected b/java/ql/test-kotlin2/library-tests/variables/variableAccesses.expected index 5c3960f19b3..360be0d0fe5 100644 --- a/java/ql/test-kotlin2/library-tests/variables/variableAccesses.expected +++ b/java/ql/test-kotlin2/library-tests/variables/variableAccesses.expected @@ -1,11 +1,11 @@ varAcc +| variables.kt:3:5:3:17 | this.prop | | variables.kt:3:5:3:21 | prop | -| variables.kt:3:5:3:21 | this.prop | | variables.kt:7:17:7:22 | local1 | | variables.kt:9:17:9:22 | local2 | | variables.kt:10:22:10:26 | param | | variables.kt:11:17:11:22 | local3 | -| variables.kt:15:1:15:21 | VariablesKt.topLevel | +| variables.kt:15:1:15:17 | VariablesKt.topLevel | | variables.kt:15:1:15:21 | VariablesKt.topLevel | | variables.kt:21:11:21:18 | o | | variables.kt:21:11:21:18 | o | @@ -20,7 +20,7 @@ extensionReceiverAcc | variables.kt:32:9:32:12 | this | | variables.kt:33:9:33:12 | this | instAcc -| variables.kt:3:5:3:21 | this | +| variables.kt:3:5:3:17 | this | | variables.kt:21:11:21:18 | this | | variables.kt:26:9:26:9 | this | | variables.kt:26:9:26:15 | this | diff --git a/java/ql/test-kotlin2/library-tests/variables/variables.expected b/java/ql/test-kotlin2/library-tests/variables/variables.expected index 0022c22ed8b..1f562ccceac 100644 --- a/java/ql/test-kotlin2/library-tests/variables/variables.expected +++ b/java/ql/test-kotlin2/library-tests/variables/variables.expected @@ -13,8 +13,8 @@ isFinal | variables.kt:8:9:8:26 | int local2 | non-final | | variables.kt:10:9:10:26 | int local3 | final | compileTimeConstant +| variables.kt:3:5:3:17 | this.prop | | variables.kt:3:5:3:21 | prop | -| variables.kt:3:5:3:21 | this.prop | | variables.kt:7:17:7:22 | local1 | -| variables.kt:15:1:15:21 | VariablesKt.topLevel | +| variables.kt:15:1:15:17 | VariablesKt.topLevel | | variables.kt:15:1:15:21 | VariablesKt.topLevel | From 0d34837eaffcbc8606efcaf6ad41dd5390d9ac3c Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 13:59:57 +0100 Subject: [PATCH 380/656] Bump unit tests to use latest stable Kotlin --- java/kotlin-extractor/dev/wrapper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/kotlin-extractor/dev/wrapper.py b/java/kotlin-extractor/dev/wrapper.py index f95a89352fc..08969528c92 100755 --- a/java/kotlin-extractor/dev/wrapper.py +++ b/java/kotlin-extractor/dev/wrapper.py @@ -27,7 +27,7 @@ import shutil import io import os -DEFAULT_VERSION = "2.2.0-Beta1" +DEFAULT_VERSION = "2.1.20" def options(): From fc1fd263dfedd3376bd3afaabcb9066908eae2d9 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 16:04:47 +0100 Subject: [PATCH 381/656] Fix plugin test to work with Kotlin 2.1.20 --- .../kotlin/linux/custom_plugin/plugin/Plugin.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/Plugin.kt b/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/Plugin.kt index f45b4804393..422d84deedb 100644 --- a/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/Plugin.kt +++ b/java/ql/integration-tests/kotlin/linux/custom_plugin/plugin/Plugin.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl +import org.jetbrains.kotlin.ir.expressions.impl.fromSymbolOwner import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl import org.jetbrains.kotlin.ir.symbols.IrClassSymbol From 27222499d41f2f7ef3799ddad34e0735c2351cd0 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 16:19:53 +0100 Subject: [PATCH 382/656] Update test expectation --- .../test-kotlin2/library-tests/numlines/callable.expected | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/ql/test-kotlin2/library-tests/numlines/callable.expected b/java/ql/test-kotlin2/library-tests/numlines/callable.expected index 52f3a4f2cbe..ca6371ce23e 100644 --- a/java/ql/test-kotlin2/library-tests/numlines/callable.expected +++ b/java/ql/test-kotlin2/library-tests/numlines/callable.expected @@ -1,6 +1,6 @@ | test.kt:2:1:4:1 | foo | 3 | 3 | 0 | -| test.kt:8:1:8:9 | getX | 1 | 1 | 0 | -| test.kt:18:1:18:17 | getY | 5 | 1 | 4 | +| test.kt:8:1:8:5 | getX | 1 | 1 | 0 | +| test.kt:18:1:18:5 | getY | 5 | 1 | 4 | | test.kt:20:1:26:1 | Foo | 7 | 6 | 1 | | test.kt:21:5:24:5 | bar | 4 | 3 | 1 | -| test.kt:25:5:25:21 | getSomeField | 1 | 1 | 0 | +| test.kt:25:5:25:17 | getSomeField | 1 | 1 | 0 | From a2836f5aabf764c6e6dde769f497d8686a82c11b Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 29 Apr 2025 16:21:45 +0100 Subject: [PATCH 383/656] Adjust integration test expectations --- .../all-platforms/private_property_accessors/test.expected | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/ql/integration-tests/kotlin/all-platforms/private_property_accessors/test.expected b/java/ql/integration-tests/kotlin/all-platforms/private_property_accessors/test.expected index 903b49c91f6..5c22734fee5 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/private_property_accessors/test.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/private_property_accessors/test.expected @@ -1,6 +1,6 @@ -| hasprops.kt:3:3:3:25 | getAccessorsPublic | -| hasprops.kt:3:3:3:25 | setAccessorsPublic | -| hasprops.kt:5:3:6:15 | getSetterPrivate | +| hasprops.kt:3:3:3:21 | getAccessorsPublic | +| hasprops.kt:3:3:3:21 | setAccessorsPublic | +| hasprops.kt:5:3:5:19 | getSetterPrivate | | hasprops.kt:6:5:6:15 | setSetterPrivate$private | | usesprops.kt:1:1:9:1 | user | | usesprops.kt:3:3:3:58 | useGetters | From d37787c4aefdb87c0d7cb6a060a18f903abce661 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 12 May 2025 20:29:39 +0200 Subject: [PATCH 384/656] Rust: Add type inference tests for literals --- rust/ql/test/library-tests/type-inference/main.rs | 15 +++++++++++++++ .../type-inference/type-inference.expected | 8 ++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index fa16b626474..1f49ba47cc0 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -978,6 +978,20 @@ mod try_expressions { } } +mod builtins { + pub fn f() { + let x: i32 = 1; // $ MISSING: type=x:i32 + let y = 2; // $ MISSING: type=y:i32 + let z = x + y; // $ MISSING: type=z:i32 + let z = x.abs(); // $ MISSING: method=abs $ MISSING: type=z:i32 + 'c'; + "Hello"; + 123.0f64; + true; + false; + } +} + fn main() { field_access::f(); method_impl::f(); @@ -995,4 +1009,5 @@ fn main() { implicit_self_borrow::f(); borrowed_typed::f(); try_expressions::f(); + builtins::f(); } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 42e5d90701b..f5a7893d414 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1094,7 +1094,7 @@ inferType | main.rs:975:49:975:62 | ...::Ok(...) | E | main.rs:925:5:926:14 | S1 | | main.rs:975:49:975:62 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | | main.rs:975:60:975:61 | S1 | | main.rs:925:5:926:14 | S1 | -| main.rs:983:5:983:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:984:5:984:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:984:20:984:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:984:41:984:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:997:5:997:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:998:5:998:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:998:20:998:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:998:41:998:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | From c70fd6a58c6ce77391c37d6ded39416381d32c9d Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 13 May 2025 16:18:33 +0200 Subject: [PATCH 385/656] ruby: add change note --- .../2025-05-13-captured-variables-live-more-often.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ruby/ql/lib/change-notes/2025-05-13-captured-variables-live-more-often.md diff --git a/ruby/ql/lib/change-notes/2025-05-13-captured-variables-live-more-often.md b/ruby/ql/lib/change-notes/2025-05-13-captured-variables-live-more-often.md new file mode 100644 index 00000000000..94ccaefa0f0 --- /dev/null +++ b/ruby/ql/lib/change-notes/2025-05-13-captured-variables-live-more-often.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Captured variables are currently considered live when the capturing function exists normally. Now they are also considered live when the capturing function exits via an exception. \ No newline at end of file From b06491125e717856d50d282e2ff6e3aa382328ed Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 13 May 2025 15:48:29 +0100 Subject: [PATCH 386/656] Expand test for Extract Tuple Instruction --- go/ql/test/library-tests/semmle/go/IR/test.expected | 12 ++++++------ go/ql/test/library-tests/semmle/go/IR/test.ql | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/go/ql/test/library-tests/semmle/go/IR/test.expected b/go/ql/test/library-tests/semmle/go/IR/test.expected index df2f83e3393..ce3decd7059 100644 --- a/go/ql/test/library-tests/semmle/go/IR/test.expected +++ b/go/ql/test/library-tests/semmle/go/IR/test.expected @@ -1,6 +1,6 @@ -| test.go:9:2:9:16 | ... := ...[0] | file://:0:0:0:0 | bool | -| test.go:9:2:9:16 | ... := ...[1] | file://:0:0:0:0 | bool | -| test.go:15:2:15:20 | ... := ...[0] | file://:0:0:0:0 | string | -| test.go:15:2:15:20 | ... := ...[1] | file://:0:0:0:0 | bool | -| test.go:21:2:21:22 | ... := ...[0] | file://:0:0:0:0 | string | -| test.go:21:2:21:22 | ... := ...[1] | file://:0:0:0:0 | bool | +| test.go:9:2:9:16 | ... := ...[0] | test.go:9:13:9:16 | <-... | 0 | file://:0:0:0:0 | bool | +| test.go:9:2:9:16 | ... := ...[1] | test.go:9:13:9:16 | <-... | 1 | file://:0:0:0:0 | bool | +| test.go:15:2:15:20 | ... := ...[0] | test.go:15:13:15:20 | index expression | 0 | file://:0:0:0:0 | string | +| test.go:15:2:15:20 | ... := ...[1] | test.go:15:13:15:20 | index expression | 1 | file://:0:0:0:0 | bool | +| test.go:21:2:21:22 | ... := ...[0] | test.go:21:13:21:22 | type assertion | 0 | file://:0:0:0:0 | string | +| test.go:21:2:21:22 | ... := ...[1] | test.go:21:13:21:22 | type assertion | 1 | file://:0:0:0:0 | bool | diff --git a/go/ql/test/library-tests/semmle/go/IR/test.ql b/go/ql/test/library-tests/semmle/go/IR/test.ql index 1644bd5b2ef..2c4fa43eac0 100644 --- a/go/ql/test/library-tests/semmle/go/IR/test.ql +++ b/go/ql/test/library-tests/semmle/go/IR/test.ql @@ -1,4 +1,5 @@ import go -from IR::ExtractTupleElementInstruction extract -select extract, extract.getResultType() +from IR::ExtractTupleElementInstruction extract, IR::Instruction base, int idx, Type resultType +where extract.extractsElement(base, idx) and resultType = extract.getResultType() +select extract, base, idx, resultType From 7da1ade83501145fd55bd5b90d9de1dff0951e21 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 13 May 2025 15:54:05 +0100 Subject: [PATCH 387/656] Add tests for extracting tuples in `f(g(...))` --- go/ql/test/library-tests/semmle/go/IR/test.expected | 4 ++++ go/ql/test/library-tests/semmle/go/IR/test.go | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/go/ql/test/library-tests/semmle/go/IR/test.expected b/go/ql/test/library-tests/semmle/go/IR/test.expected index ce3decd7059..c42cdaa9932 100644 --- a/go/ql/test/library-tests/semmle/go/IR/test.expected +++ b/go/ql/test/library-tests/semmle/go/IR/test.expected @@ -4,3 +4,7 @@ | test.go:15:2:15:20 | ... := ...[1] | test.go:15:13:15:20 | index expression | 1 | file://:0:0:0:0 | bool | | test.go:21:2:21:22 | ... := ...[0] | test.go:21:13:21:22 | type assertion | 0 | file://:0:0:0:0 | string | | test.go:21:2:21:22 | ... := ...[1] | test.go:21:13:21:22 | type assertion | 1 | file://:0:0:0:0 | bool | +| test.go:29:2:29:7 | call to f[0] | test.go:29:4:29:6 | call to g | 0 | file://:0:0:0:0 | int | +| test.go:29:2:29:7 | call to f[1] | test.go:29:4:29:6 | call to g | 1 | file://:0:0:0:0 | int | +| test.go:33:2:33:7 | call to f[0] | test.go:33:4:33:6 | call to v | 0 | file://:0:0:0:0 | int | +| test.go:33:2:33:7 | call to f[1] | test.go:33:4:33:6 | call to v | 1 | file://:0:0:0:0 | int | diff --git a/go/ql/test/library-tests/semmle/go/IR/test.go b/go/ql/test/library-tests/semmle/go/IR/test.go index de0d567dc3a..d048632b95b 100644 --- a/go/ql/test/library-tests/semmle/go/IR/test.go +++ b/go/ql/test/library-tests/semmle/go/IR/test.go @@ -21,3 +21,14 @@ func testTypeAssert() { got, ok := i.(string) fmt.Printf("%v %v", got, ok) } + +func f(x, y int) {} +func g() (int, int) { return 0, 0 } + +func testNestedFunctionCalls() { + f(g()) + + // Edge case: when we call a function from a variable, `getTarget()` is not defined + v := g + f(v()) +} From 933e01b3d4de4d1adb7d263f219cf67ecfd0d3d5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 13 May 2025 15:55:20 +0100 Subject: [PATCH 388/656] Remove redundant code The case of a CallExpr is actually covered by the next disjunct. Note that the CallExpr case had a subtle bug: `c.getTarget()` is not defined when we are calling a variable. Better to use `c.getCalleeType()`. But in this case we can just delete the code. --- go/ql/lib/semmle/go/controlflow/IR.qll | 4 ---- 1 file changed, 4 deletions(-) diff --git a/go/ql/lib/semmle/go/controlflow/IR.qll b/go/ql/lib/semmle/go/controlflow/IR.qll index 6c7a0c682b5..1a56dfcf2dc 100644 --- a/go/ql/lib/semmle/go/controlflow/IR.qll +++ b/go/ql/lib/semmle/go/controlflow/IR.qll @@ -718,10 +718,6 @@ module IR { predicate extractsElement(Instruction base, int idx) { base = this.getBase() and idx = i } override Type getResultType() { - exists(CallExpr c | this.getBase() = evalExprInstruction(c) | - result = c.getTarget().getResultType(i) - ) - or exists(Expr e | this.getBase() = evalExprInstruction(e) | result = e.getType().(TupleType).getComponentType(pragma[only_bind_into](i)) ) From 3fcd46ec6c5346eed0de4594ace2b9efa1710de3 Mon Sep 17 00:00:00 2001 From: yoff Date: Tue, 13 May 2025 16:57:32 +0200 Subject: [PATCH 389/656] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../2025-05-13-captured-variables-live-more-often.md | 2 +- .../query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby/ql/lib/change-notes/2025-05-13-captured-variables-live-more-often.md b/ruby/ql/lib/change-notes/2025-05-13-captured-variables-live-more-often.md index 94ccaefa0f0..3a0878e6553 100644 --- a/ruby/ql/lib/change-notes/2025-05-13-captured-variables-live-more-often.md +++ b/ruby/ql/lib/change-notes/2025-05-13-captured-variables-live-more-often.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Captured variables are currently considered live when the capturing function exists normally. Now they are also considered live when the capturing function exits via an exception. \ No newline at end of file +* Captured variables are currently considered live when the capturing function exits normally. Now they are also considered live when the capturing function exits via an exception. \ No newline at end of file diff --git a/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb b/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb index b9ac29f1f25..ae40573c5c1 100644 --- a/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb +++ b/ruby/ql/test/query-tests/variables/DeadStoreOfLocal/DeadStoreOfLocal.rb @@ -58,7 +58,7 @@ def get_retried x print x if x < 1 begin - x += 1 #$ OK - the block may be executed again + x += 1 # OK - the block may be executed again raise StandardError end end From 3001d0bd1c36792f865632d034d10695644f5d0a Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 28 Apr 2025 10:22:11 +0200 Subject: [PATCH 390/656] Bazel: remove `2.0.0` `rules_kotlin` patching --- .../rules_kotlin/2.0.0-codeql.1/MODULE.bazel | 35 ------------------- .../codeql_add_language_version_option.patch | 34 ------------------ .../patches/codeql_do_not_emit_jdeps.patch | 16 --------- .../rules_kotlin/2.0.0-codeql.1/source.json | 9 ----- .../modules/rules_kotlin/metadata.json | 3 +- 5 files changed, 1 insertion(+), 96 deletions(-) delete mode 100644 misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/MODULE.bazel delete mode 100644 misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_add_language_version_option.patch delete mode 100644 misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_do_not_emit_jdeps.patch delete mode 100644 misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/source.json diff --git a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/MODULE.bazel b/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/MODULE.bazel deleted file mode 100644 index 6c11301e234..00000000000 --- a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/MODULE.bazel +++ /dev/null @@ -1,35 +0,0 @@ -module( - name = "rules_kotlin", - version = "2.0.0-codeql.1", - compatibility_level = 1, - repo_name = "rules_kotlin", -) - -bazel_dep(name = "platforms", version = "0.0.10") -bazel_dep(name = "bazel_skylib", version = "1.7.1") -bazel_dep(name = "rules_java", version = "7.2.0") -bazel_dep(name = "rules_python", version = "0.23.1") -bazel_dep(name = "rules_cc", version = "0.0.8") -bazel_dep(name = "rules_android", version = "0.1.1") - -rules_kotlin_extensions = use_extension( - "//src/main/starlark/core/repositories:bzlmod_setup.bzl", - "rules_kotlin_extensions", -) -use_repo( - rules_kotlin_extensions, - "com_github_google_ksp", - "com_github_jetbrains_kotlin", - "com_github_pinterest_ktlint", - "kotlinx_serialization_core_jvm", - "kotlinx_serialization_json", - "kotlinx_serialization_json_jvm", -) - -register_toolchains("//kotlin/internal:default_toolchain") - -# TODO(bencodes) We should be able to remove this once rules_android has rolled out official Bzlmod support -remote_android_extensions = use_extension("@bazel_tools//tools/android:android_extensions.bzl", "remote_android_tools_extensions") -use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools") - -bazel_dep(name = "rules_proto", version = "5.3.0-21.7") diff --git a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_add_language_version_option.patch b/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_add_language_version_option.patch deleted file mode 100644 index d5716daba07..00000000000 --- a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_add_language_version_option.patch +++ /dev/null @@ -1,34 +0,0 @@ -We need to build different extractor variants with different -language-version options, which is not allowed -in current kotlin_rules -diff --git a/src/main/starlark/core/options/opts.kotlinc.bzl b/src/main/starlark/core/options/opts.kotlinc.bzl -index 5e1461b..b93e6aa 100644 ---- a/src/main/starlark/core/options/opts.kotlinc.bzl -+++ b/src/main/starlark/core/options/opts.kotlinc.bzl -@@ -33,6 +33,11 @@ def _map_jdk_release_to_flag(version): - return None - return ["-Xjdk-release=%s" % version] - -+def _map_language_version_to_flag(version): -+ if not version: -+ return None -+ return ["-language-version=%s" % version, "-api-version=%s" % version] -+ - _KOPTS_ALL = { - "warn": struct( - args = dict( -@@ -417,6 +422,15 @@ _KOPTS_ALL = { - value_to_flag = None, - map_value_to_flag = _map_jdk_release_to_flag, - ), -+ "language_version": struct( -+ args = dict( -+ default = "1.9", -+ doc = "-language-version", -+ ), -+ type = attr.string, -+ value_to_flag = None, -+ map_value_to_flag = _map_language_version_to_flag, -+ ), - } - - # Filters out options that are not available in current compiler release \ No newline at end of file diff --git a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_do_not_emit_jdeps.patch b/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_do_not_emit_jdeps.patch deleted file mode 100644 index 380c837d06a..00000000000 --- a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/patches/codeql_do_not_emit_jdeps.patch +++ /dev/null @@ -1,16 +0,0 @@ -Emitting jdeps is broken for the 2.0.0 kotlin extractor, and we don't need those files. -Patching it here rather than passing `--@rules_kotlin//kotlin/settings:jvm_emit_jdeps=false` -allows us to not have to specify that option (and therefore pull in `rules_kotlin`) in `semmle-code`. -diff --git a/kotlin/settings/BUILD.bazel b/kotlin/settings/BUILD.bazel -index 2c93c11..f352b80 100644 ---- a/kotlin/settings/BUILD.bazel -+++ b/kotlin/settings/BUILD.bazel -@@ -25,7 +25,7 @@ release_archive( - # Flag that controls the emission of jdeps files during kotlin jvm compilation. - bool_flag( - name = "jvm_emit_jdeps", -- build_setting_default = True, # Upstream default behavior -+ build_setting_default = False, - visibility = ["//visibility:public"], - ) - diff --git a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/source.json b/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/source.json deleted file mode 100644 index 96d828e3455..00000000000 --- a/misc/bazel/registry/modules/rules_kotlin/2.0.0-codeql.1/source.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "integrity": "sha256-2JcjzJ67t72y66yhr30jg+B0YVZDz5ejZrdYp2t9xEM=", - "url": "https://github.com/bazelbuild/rules_kotlin/releases/download/v2.0.0/rules_kotlin-v2.0.0.tar.gz", - "patches": { - "codeql_do_not_emit_jdeps.patch": "sha256-1ir4Aio1SICxnj1wafQ0GefT/m7bwn2n+SQwq19V3A8=", - "codeql_add_language_version_option.patch": "sha256-t8Fm0bYZ4Q4vTqcoXZjyK4WPEoAafjE4whJLNnrnRbg=" - }, - "patch_strip": 1 -} diff --git a/misc/bazel/registry/modules/rules_kotlin/metadata.json b/misc/bazel/registry/modules/rules_kotlin/metadata.json index 3e11b7df820..dace87c72d1 100644 --- a/misc/bazel/registry/modules/rules_kotlin/metadata.json +++ b/misc/bazel/registry/modules/rules_kotlin/metadata.json @@ -21,8 +21,7 @@ "github:bazelbuild/rules_kotlin" ], "versions": [ - "2.1.3-codeql.1", - "2.0.0-codeql.1" + "2.1.3-codeql.1" ], "yanked_versions": {} } From fecad025ded53cfb8be6cc92506549029ae64a12 Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Tue, 13 May 2025 18:10:21 +0100 Subject: [PATCH 391/656] Fix handling of X/jvm-default intermediate modes such as 'compatibility', the new default as of 2.2.0 --- .../src/main/kotlin/KotlinFileExtractor.kt | 4 ++-- .../kotlin/utils/versions/v_1_5_0/JvmDefaultModeEnabled.kt | 7 ------- .../versions/v_1_5_0/JvmDefaultModeIsNoCompatibility.kt | 7 +++++++ .../utils/versions/v_2_0_0-RC1/JvmDefaultModeEnabled.kt | 7 ------- .../v_2_0_0-RC1/JvmDefaultModeIsNoCompatibility.kt | 7 +++++++ .../v_2_2_0-Beta1/JvmDefaultModeIsNoCompatibility.kt | 7 +++++++ 6 files changed, 23 insertions(+), 16 deletions(-) delete mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeEnabled.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeIsNoCompatibility.kt delete mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeEnabled.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeIsNoCompatibility.kt create mode 100644 java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/JvmDefaultModeIsNoCompatibility.kt diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index ab3d3f69e91..690372d67f5 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -1608,7 +1608,7 @@ open class KotlinFileExtractor( cls.origin != IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB private fun needsInterfaceForwarder(f: IrFunction) = - // jvmDefaultModeEnabledIsEnabled means that -Xjvm-default=all or all-compatibility was + // jvmDefaultModeIsNoCompatibility means that -Xjvm-default=all or =no-compatibility was // used, in which case real Java default interfaces are used, and we don't need to do // anything. // Otherwise, for a Kotlin-defined method inheriting a Kotlin-defined default, we need to @@ -1618,7 +1618,7 @@ open class KotlinFileExtractor( // (NB. kotlinc's actual implementation strategy is different -- it makes an inner class // called InterfaceWithDefault$DefaultImpls and stores the default methods // there to allow default method usage in Java < 8, but this is hopefully niche. - !jvmDefaultModeEnabledIsEnabled(getJvmDefaultMode(pluginContext.languageVersionSettings)) && + !jvmDefaultModeIsNoCompatibility(getJvmDefaultMode(pluginContext.languageVersionSettings)) && f.parentClassOrNull.let { it != null && it.origin != IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB && diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeEnabled.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeEnabled.kt deleted file mode 100644 index cd849652613..00000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeEnabled.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.config.JvmDefaultMode - -fun jvmDefaultModeEnabledIsEnabled(jdm: JvmDefaultMode): Boolean { - return jdm.forAllMethodsWithBody -} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeIsNoCompatibility.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeIsNoCompatibility.kt new file mode 100644 index 00000000000..feda11b0cc0 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_5_0/JvmDefaultModeIsNoCompatibility.kt @@ -0,0 +1,7 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.config.JvmDefaultMode + +fun jvmDefaultModeIsNoCompatibility(jdm: JvmDefaultMode): Boolean { + return jdm == JvmDefaultMode.ALL_INCOMPATIBLE +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeEnabled.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeEnabled.kt deleted file mode 100644 index 10a936ed909..00000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeEnabled.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.config.JvmDefaultMode - -fun jvmDefaultModeEnabledIsEnabled(jdm: JvmDefaultMode): Boolean { - return jdm.isEnabled -} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeIsNoCompatibility.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeIsNoCompatibility.kt new file mode 100644 index 00000000000..7f66c341b01 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_0_0-RC1/JvmDefaultModeIsNoCompatibility.kt @@ -0,0 +1,7 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.config.JvmDefaultMode + +fun jvmDefaultModeIsNoCompatibility(jdm: JvmDefaultMode): Boolean { + return jdm == JvmDefaultMode.ALL +} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/JvmDefaultModeIsNoCompatibility.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/JvmDefaultModeIsNoCompatibility.kt new file mode 100644 index 00000000000..52eac237808 --- /dev/null +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_2_0-Beta1/JvmDefaultModeIsNoCompatibility.kt @@ -0,0 +1,7 @@ +package com.github.codeql.utils.versions + +import org.jetbrains.kotlin.config.JvmDefaultMode + +fun jvmDefaultModeIsNoCompatibility(jdm: JvmDefaultMode): Boolean { + return jdm == JvmDefaultMode.NO_COMPATIBILITY +} From 9db38bcb2387b9db83a7e2420da1341d14e129ef Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 May 2025 21:22:45 +0200 Subject: [PATCH 392/656] Rust: Update path resolution tests --- .../library-tests/path-resolution/main.rs | 12 +- .../test/library-tests/path-resolution/my.rs | 6 +- .../path-resolution/path-resolution.expected | 510 +++++++++--------- 3 files changed, 266 insertions(+), 262 deletions(-) diff --git a/rust/ql/test/library-tests/path-resolution/main.rs b/rust/ql/test/library-tests/path-resolution/main.rs index 1179f2f7b58..be467ac4745 100644 --- a/rust/ql/test/library-tests/path-resolution/main.rs +++ b/rust/ql/test/library-tests/path-resolution/main.rs @@ -75,7 +75,7 @@ fn i() { { struct Foo { - x: i32, + x: i32, // $ MISSING: item=i32 } // I30 let _ = Foo { x: 0 }; // $ item=I30 @@ -121,9 +121,13 @@ mod m6 { mod m7 { pub enum MyEnum { - A(i32), // I42 - B { x: i32 }, // I43 - C, // I44 + A( + i32, // $ MISSING: item=i32 + ), // I42 + B { + x: i32, // $ MISSING: item=i32 + }, // I43 + C, // I44 } // I41 #[rustfmt::skip] diff --git a/rust/ql/test/library-tests/path-resolution/my.rs b/rust/ql/test/library-tests/path-resolution/my.rs index 8a94c169f6f..8daf4135178 100644 --- a/rust/ql/test/library-tests/path-resolution/my.rs +++ b/rust/ql/test/library-tests/path-resolution/my.rs @@ -25,9 +25,9 @@ type Result< >; // my::Result fn int_div( - x: i32, // - y: i32, -) -> Result // $ item=my::Result + x: i32, // $ MISSING: item=i32 + y: i32, // $ MISSING: item=i32 +) -> Result // $ item=my::Result $ MISSING: item=i32 { if y == 0 { return Err("Div by zero".to_string()); diff --git a/rust/ql/test/library-tests/path-resolution/path-resolution.expected b/rust/ql/test/library-tests/path-resolution/path-resolution.expected index 90af94e91d0..2fa13563dc1 100644 --- a/rust/ql/test/library-tests/path-resolution/path-resolution.expected +++ b/rust/ql/test/library-tests/path-resolution/path-resolution.expected @@ -9,26 +9,26 @@ mod | main.rs:39:1:46:1 | mod m4 | | main.rs:103:1:107:1 | mod m5 | | main.rs:109:1:120:1 | mod m6 | -| main.rs:122:1:137:1 | mod m7 | -| main.rs:139:1:193:1 | mod m8 | -| main.rs:195:1:203:1 | mod m9 | -| main.rs:205:1:224:1 | mod m10 | -| main.rs:226:1:263:1 | mod m11 | -| main.rs:236:5:236:12 | mod f | -| main.rs:265:1:277:1 | mod m12 | -| main.rs:279:1:292:1 | mod m13 | -| main.rs:283:5:291:5 | mod m14 | -| main.rs:294:1:348:1 | mod m15 | -| main.rs:350:1:442:1 | mod m16 | -| main.rs:444:1:474:1 | mod m17 | -| main.rs:476:1:494:1 | mod m18 | -| main.rs:481:5:493:5 | mod m19 | -| main.rs:486:9:492:9 | mod m20 | -| main.rs:496:1:521:1 | mod m21 | -| main.rs:497:5:503:5 | mod m22 | -| main.rs:505:5:520:5 | mod m33 | -| main.rs:523:1:548:1 | mod m23 | -| main.rs:550:1:618:1 | mod m24 | +| main.rs:122:1:141:1 | mod m7 | +| main.rs:143:1:197:1 | mod m8 | +| main.rs:199:1:207:1 | mod m9 | +| main.rs:209:1:228:1 | mod m10 | +| main.rs:230:1:267:1 | mod m11 | +| main.rs:240:5:240:12 | mod f | +| main.rs:269:1:281:1 | mod m12 | +| main.rs:283:1:296:1 | mod m13 | +| main.rs:287:5:295:5 | mod m14 | +| main.rs:298:1:352:1 | mod m15 | +| main.rs:354:1:446:1 | mod m16 | +| main.rs:448:1:478:1 | mod m17 | +| main.rs:480:1:498:1 | mod m18 | +| main.rs:485:5:497:5 | mod m19 | +| main.rs:490:9:496:9 | mod m20 | +| main.rs:500:1:525:1 | mod m21 | +| main.rs:501:5:507:5 | mod m22 | +| main.rs:509:5:524:5 | mod m33 | +| main.rs:527:1:552:1 | mod m23 | +| main.rs:554:1:622:1 | mod m24 | | my2/mod.rs:1:1:1:16 | mod nested2 | | my2/mod.rs:12:1:12:12 | mod my3 | | my2/mod.rs:14:1:15:10 | mod mymod | @@ -62,7 +62,7 @@ resolvePath | main.rs:30:17:30:21 | super | main.rs:18:5:36:5 | mod m2 | | main.rs:30:17:30:24 | ...::f | main.rs:19:9:21:9 | fn f | | main.rs:33:17:33:17 | f | main.rs:19:9:21:9 | fn f | -| main.rs:40:9:40:13 | super | main.rs:1:1:649:2 | SourceFile | +| main.rs:40:9:40:13 | super | main.rs:1:1:653:2 | SourceFile | | main.rs:40:9:40:17 | ...::m1 | main.rs:13:1:37:1 | mod m1 | | main.rs:40:9:40:21 | ...::m2 | main.rs:18:5:36:5 | mod m2 | | main.rs:40:9:40:24 | ...::g | main.rs:23:9:27:9 | fn g | @@ -74,7 +74,7 @@ resolvePath | main.rs:61:17:61:19 | Foo | main.rs:59:9:59:21 | struct Foo | | main.rs:64:13:64:15 | Foo | main.rs:53:5:53:17 | struct Foo | | main.rs:66:5:66:5 | f | main.rs:55:5:62:5 | fn f | -| main.rs:68:5:68:8 | self | main.rs:1:1:649:2 | SourceFile | +| main.rs:68:5:68:8 | self | main.rs:1:1:653:2 | SourceFile | | main.rs:68:5:68:11 | ...::i | main.rs:71:1:83:1 | fn i | | main.rs:74:13:74:15 | Foo | main.rs:48:1:48:13 | struct Foo | | main.rs:81:17:81:19 | Foo | main.rs:77:9:79:9 | struct Foo | @@ -88,241 +88,241 @@ resolvePath | main.rs:87:57:87:66 | ...::g | my2/nested2.rs:7:9:9:9 | fn g | | main.rs:87:80:87:86 | nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 | | main.rs:100:5:100:22 | f_defined_in_macro | main.rs:99:18:99:42 | fn f_defined_in_macro | -| main.rs:117:13:117:17 | super | main.rs:1:1:649:2 | SourceFile | +| main.rs:117:13:117:17 | super | main.rs:1:1:653:2 | SourceFile | | main.rs:117:13:117:21 | ...::m5 | main.rs:103:1:107:1 | mod m5 | | main.rs:118:9:118:9 | f | main.rs:104:5:106:5 | fn f | | main.rs:118:9:118:9 | f | main.rs:110:5:112:5 | fn f | -| main.rs:130:19:130:24 | MyEnum | main.rs:123:5:127:5 | enum MyEnum | -| main.rs:133:17:133:22 | MyEnum | main.rs:123:5:127:5 | enum MyEnum | -| main.rs:133:17:133:25 | ...::A | main.rs:124:9:124:14 | A | -| main.rs:134:17:134:22 | MyEnum | main.rs:123:5:127:5 | enum MyEnum | -| main.rs:134:17:134:25 | ...::B | main.rs:124:23:125:20 | B | -| main.rs:135:9:135:14 | MyEnum | main.rs:123:5:127:5 | enum MyEnum | -| main.rs:135:9:135:17 | ...::C | main.rs:125:23:126:9 | C | -| main.rs:145:13:145:13 | f | main.rs:152:5:154:5 | fn f | -| main.rs:146:13:146:16 | Self | main.rs:140:5:148:5 | trait MyTrait | -| main.rs:146:13:146:19 | ...::f | main.rs:141:9:141:20 | fn f | -| main.rs:157:10:157:16 | MyTrait | main.rs:140:5:148:5 | trait MyTrait | -| main.rs:157:22:157:29 | MyStruct | main.rs:150:5:150:22 | struct MyStruct | -| main.rs:160:13:160:13 | f | main.rs:152:5:154:5 | fn f | -| main.rs:161:13:161:16 | Self | main.rs:156:5:167:5 | impl MyTrait for MyStruct { ... } | -| main.rs:161:13:161:19 | ...::g | main.rs:164:9:166:9 | fn g | -| main.rs:170:10:170:17 | MyStruct | main.rs:150:5:150:22 | struct MyStruct | -| main.rs:173:13:173:13 | f | main.rs:152:5:154:5 | fn f | -| main.rs:179:17:179:24 | MyStruct | main.rs:150:5:150:22 | struct MyStruct | -| main.rs:180:9:180:15 | MyTrait | main.rs:140:5:148:5 | trait MyTrait | -| main.rs:180:9:180:18 | ...::f | main.rs:141:9:141:20 | fn f | -| main.rs:181:9:181:16 | MyStruct | main.rs:150:5:150:22 | struct MyStruct | -| main.rs:181:9:181:19 | ...::f | main.rs:157:33:162:9 | fn f | -| main.rs:182:10:182:17 | MyStruct | main.rs:150:5:150:22 | struct MyStruct | -| main.rs:183:10:183:16 | MyTrait | main.rs:140:5:148:5 | trait MyTrait | -| main.rs:186:17:186:24 | MyStruct | main.rs:150:5:150:22 | struct MyStruct | -| main.rs:188:17:188:24 | MyStruct | main.rs:150:5:150:22 | struct MyStruct | -| main.rs:190:9:190:16 | MyStruct | main.rs:150:5:150:22 | struct MyStruct | -| main.rs:190:9:190:19 | ...::h | main.rs:170:21:174:9 | fn h | -| main.rs:199:19:199:22 | self | main.rs:195:1:203:1 | mod m9 | -| main.rs:199:19:199:32 | ...::MyStruct | main.rs:196:5:196:26 | struct MyStruct | -| main.rs:201:9:201:12 | self | main.rs:195:1:203:1 | mod m9 | -| main.rs:201:9:201:22 | ...::MyStruct | main.rs:196:5:196:26 | struct MyStruct | -| main.rs:211:12:211:12 | T | main.rs:208:7:208:7 | T | -| main.rs:216:12:216:12 | T | main.rs:215:14:215:14 | T | -| main.rs:218:7:220:7 | MyStruct::<...> | main.rs:206:5:212:5 | struct MyStruct | -| main.rs:219:9:219:9 | T | main.rs:215:14:215:14 | T | -| main.rs:222:9:222:16 | MyStruct | main.rs:206:5:212:5 | struct MyStruct | -| main.rs:232:17:232:19 | Foo | main.rs:227:5:227:21 | struct Foo | -| main.rs:233:9:233:11 | Foo | main.rs:229:5:229:15 | fn Foo | -| main.rs:242:9:242:11 | Bar | main.rs:238:5:240:5 | enum Bar | -| main.rs:242:9:242:19 | ...::FooBar | main.rs:239:9:239:17 | FooBar | -| main.rs:247:13:247:15 | Foo | main.rs:227:5:227:21 | struct Foo | -| main.rs:248:17:248:22 | FooBar | main.rs:239:9:239:17 | FooBar | -| main.rs:249:17:249:22 | FooBar | main.rs:244:5:244:18 | fn FooBar | -| main.rs:257:9:257:9 | E | main.rs:252:15:255:5 | enum E | -| main.rs:257:9:257:12 | ...::C | main.rs:254:9:254:9 | C | -| main.rs:260:17:260:17 | S | main.rs:252:5:252:13 | struct S | -| main.rs:261:17:261:17 | C | main.rs:254:9:254:9 | C | -| main.rs:274:16:274:16 | T | main.rs:268:7:268:7 | T | -| main.rs:275:14:275:17 | Self | main.rs:266:5:276:5 | trait MyParamTrait | -| main.rs:275:14:275:33 | ...::AssociatedType | main.rs:270:9:270:28 | type AssociatedType | -| main.rs:284:13:284:17 | crate | main.rs:0:0:0:0 | Crate(main@0.0.1) | -| main.rs:284:13:284:22 | ...::m13 | main.rs:279:1:292:1 | mod m13 | -| main.rs:284:13:284:25 | ...::f | main.rs:280:5:280:17 | fn f | -| main.rs:284:13:284:25 | ...::f | main.rs:280:19:281:19 | struct f | -| main.rs:287:17:287:17 | f | main.rs:280:19:281:19 | struct f | -| main.rs:288:21:288:21 | f | main.rs:280:19:281:19 | struct f | -| main.rs:289:13:289:13 | f | main.rs:280:5:280:17 | fn f | -| main.rs:303:9:303:14 | Trait1 | main.rs:295:5:299:5 | trait Trait1 | -| main.rs:306:13:306:16 | Self | main.rs:301:5:309:5 | trait Trait2 | -| main.rs:306:13:306:19 | ...::g | main.rs:298:9:298:20 | fn g | -| main.rs:314:10:314:15 | Trait1 | main.rs:295:5:299:5 | trait Trait1 | -| main.rs:315:11:315:11 | S | main.rs:311:5:311:13 | struct S | -| main.rs:318:13:318:16 | Self | main.rs:313:5:325:5 | impl Trait1 for S { ... } | -| main.rs:318:13:318:19 | ...::g | main.rs:322:9:324:9 | fn g | -| main.rs:328:10:328:15 | Trait2 | main.rs:301:5:309:5 | trait Trait2 | -| main.rs:329:11:329:11 | S | main.rs:311:5:311:13 | struct S | -| main.rs:338:17:338:17 | S | main.rs:311:5:311:13 | struct S | -| main.rs:339:10:339:10 | S | main.rs:311:5:311:13 | struct S | -| main.rs:340:14:340:19 | Trait1 | main.rs:295:5:299:5 | trait Trait1 | -| main.rs:342:10:342:10 | S | main.rs:311:5:311:13 | struct S | -| main.rs:343:14:343:19 | Trait2 | main.rs:301:5:309:5 | trait Trait2 | -| main.rs:345:9:345:9 | S | main.rs:311:5:311:13 | struct S | -| main.rs:345:9:345:12 | ...::g | main.rs:322:9:324:9 | fn g | -| main.rs:355:24:355:24 | T | main.rs:353:7:353:7 | T | -| main.rs:357:24:357:24 | T | main.rs:353:7:353:7 | T | -| main.rs:360:24:360:24 | T | main.rs:353:7:353:7 | T | -| main.rs:361:13:361:16 | Self | main.rs:351:5:367:5 | trait Trait1 | -| main.rs:361:13:361:19 | ...::g | main.rs:357:9:358:9 | fn g | -| main.rs:365:18:365:18 | T | main.rs:353:7:353:7 | T | -| main.rs:373:9:375:9 | Trait1::<...> | main.rs:351:5:367:5 | trait Trait1 | -| main.rs:374:11:374:11 | T | main.rs:371:7:371:7 | T | -| main.rs:376:24:376:24 | T | main.rs:371:7:371:7 | T | -| main.rs:378:13:378:16 | Self | main.rs:369:5:382:5 | trait Trait2 | -| main.rs:378:13:378:19 | ...::g | main.rs:357:9:358:9 | fn g | -| main.rs:380:13:380:16 | Self | main.rs:369:5:382:5 | trait Trait2 | -| main.rs:380:13:380:19 | ...::c | main.rs:365:9:366:9 | Const | -| main.rs:387:10:389:5 | Trait1::<...> | main.rs:351:5:367:5 | trait Trait1 | -| main.rs:388:7:388:7 | S | main.rs:384:5:384:13 | struct S | -| main.rs:390:11:390:11 | S | main.rs:384:5:384:13 | struct S | -| main.rs:391:24:391:24 | S | main.rs:384:5:384:13 | struct S | -| main.rs:393:13:393:16 | Self | main.rs:386:5:404:5 | impl Trait1::<...> for S { ... } | -| main.rs:393:13:393:19 | ...::g | main.rs:397:9:400:9 | fn g | -| main.rs:397:24:397:24 | S | main.rs:384:5:384:13 | struct S | -| main.rs:399:13:399:16 | Self | main.rs:386:5:404:5 | impl Trait1::<...> for S { ... } | -| main.rs:399:13:399:19 | ...::c | main.rs:402:9:403:9 | Const | -| main.rs:402:18:402:18 | S | main.rs:384:5:384:13 | struct S | -| main.rs:402:22:402:22 | S | main.rs:384:5:384:13 | struct S | -| main.rs:407:10:409:5 | Trait2::<...> | main.rs:369:5:382:5 | trait Trait2 | -| main.rs:408:7:408:7 | S | main.rs:384:5:384:13 | struct S | -| main.rs:410:11:410:11 | S | main.rs:384:5:384:13 | struct S | -| main.rs:411:24:411:24 | S | main.rs:384:5:384:13 | struct S | -| main.rs:413:13:413:16 | Self | main.rs:406:5:415:5 | impl Trait2::<...> for S { ... } | -| main.rs:420:17:420:17 | S | main.rs:384:5:384:13 | struct S | -| main.rs:421:10:421:10 | S | main.rs:384:5:384:13 | struct S | -| main.rs:422:14:424:11 | Trait1::<...> | main.rs:351:5:367:5 | trait Trait1 | -| main.rs:423:13:423:13 | S | main.rs:384:5:384:13 | struct S | -| main.rs:426:10:426:10 | S | main.rs:384:5:384:13 | struct S | -| main.rs:427:14:429:11 | Trait2::<...> | main.rs:369:5:382:5 | trait Trait2 | -| main.rs:428:13:428:13 | S | main.rs:384:5:384:13 | struct S | -| main.rs:431:9:431:9 | S | main.rs:384:5:384:13 | struct S | -| main.rs:431:9:431:12 | ...::g | main.rs:397:9:400:9 | fn g | -| main.rs:433:9:433:9 | S | main.rs:384:5:384:13 | struct S | -| main.rs:433:9:433:12 | ...::h | main.rs:360:9:363:9 | fn h | -| main.rs:435:9:435:9 | S | main.rs:384:5:384:13 | struct S | -| main.rs:435:9:435:12 | ...::c | main.rs:402:9:403:9 | Const | -| main.rs:436:10:436:10 | S | main.rs:384:5:384:13 | struct S | -| main.rs:437:14:439:11 | Trait1::<...> | main.rs:351:5:367:5 | trait Trait1 | -| main.rs:438:13:438:13 | S | main.rs:384:5:384:13 | struct S | -| main.rs:452:10:452:16 | MyTrait | main.rs:445:5:447:5 | trait MyTrait | -| main.rs:453:9:453:9 | S | main.rs:449:5:449:13 | struct S | -| main.rs:461:7:461:13 | MyTrait | main.rs:445:5:447:5 | trait MyTrait | -| main.rs:462:10:462:10 | T | main.rs:460:10:460:10 | T | -| main.rs:464:9:464:9 | T | main.rs:460:10:460:10 | T | -| main.rs:464:9:464:12 | ...::f | main.rs:446:9:446:20 | fn f | -| main.rs:465:9:465:15 | MyTrait | main.rs:445:5:447:5 | trait MyTrait | -| main.rs:465:9:465:18 | ...::f | main.rs:446:9:446:20 | fn f | -| main.rs:470:9:470:9 | g | main.rs:459:5:466:5 | fn g | -| main.rs:471:11:471:11 | S | main.rs:449:5:449:13 | struct S | -| main.rs:489:17:489:21 | super | main.rs:481:5:493:5 | mod m19 | -| main.rs:489:17:489:24 | ...::f | main.rs:482:9:484:9 | fn f | -| main.rs:490:17:490:21 | super | main.rs:481:5:493:5 | mod m19 | -| main.rs:490:17:490:28 | ...::super | main.rs:476:1:494:1 | mod m18 | -| main.rs:490:17:490:31 | ...::f | main.rs:477:5:479:5 | fn f | -| main.rs:507:13:507:17 | super | main.rs:496:1:521:1 | mod m21 | -| main.rs:507:13:507:22 | ...::m22 | main.rs:497:5:503:5 | mod m22 | -| main.rs:507:13:507:30 | ...::MyEnum | main.rs:498:9:500:9 | enum MyEnum | -| main.rs:508:13:508:16 | self | main.rs:498:9:500:9 | enum MyEnum | -| main.rs:512:13:512:17 | super | main.rs:496:1:521:1 | mod m21 | -| main.rs:512:13:512:22 | ...::m22 | main.rs:497:5:503:5 | mod m22 | -| main.rs:512:13:512:32 | ...::MyStruct | main.rs:502:9:502:28 | struct MyStruct | -| main.rs:513:13:513:16 | self | main.rs:502:9:502:28 | struct MyStruct | -| main.rs:517:21:517:26 | MyEnum | main.rs:498:9:500:9 | enum MyEnum | -| main.rs:517:21:517:29 | ...::A | main.rs:499:13:499:13 | A | -| main.rs:518:21:518:28 | MyStruct | main.rs:502:9:502:28 | struct MyStruct | -| main.rs:534:10:536:5 | Trait1::<...> | main.rs:524:5:529:5 | trait Trait1 | -| main.rs:535:7:535:10 | Self | main.rs:531:5:531:13 | struct S | -| main.rs:537:11:537:11 | S | main.rs:531:5:531:13 | struct S | -| main.rs:545:17:545:17 | S | main.rs:531:5:531:13 | struct S | -| main.rs:561:15:561:15 | T | main.rs:560:26:560:26 | T | -| main.rs:566:9:566:24 | GenericStruct::<...> | main.rs:559:5:562:5 | struct GenericStruct | -| main.rs:566:23:566:23 | T | main.rs:565:10:565:10 | T | -| main.rs:568:9:568:9 | T | main.rs:565:10:565:10 | T | -| main.rs:568:12:568:17 | TraitA | main.rs:551:5:553:5 | trait TraitA | -| main.rs:577:9:577:24 | GenericStruct::<...> | main.rs:559:5:562:5 | struct GenericStruct | -| main.rs:577:23:577:23 | T | main.rs:576:10:576:10 | T | -| main.rs:579:9:579:9 | T | main.rs:576:10:576:10 | T | -| main.rs:579:12:579:17 | TraitB | main.rs:555:5:557:5 | trait TraitB | -| main.rs:580:9:580:9 | T | main.rs:576:10:576:10 | T | -| main.rs:580:12:580:17 | TraitA | main.rs:551:5:553:5 | trait TraitA | -| main.rs:591:10:591:15 | TraitA | main.rs:551:5:553:5 | trait TraitA | -| main.rs:591:21:591:31 | Implementor | main.rs:588:5:588:23 | struct Implementor | -| main.rs:598:10:598:15 | TraitB | main.rs:555:5:557:5 | trait TraitB | -| main.rs:598:21:598:31 | Implementor | main.rs:588:5:588:23 | struct Implementor | -| main.rs:606:24:606:34 | Implementor | main.rs:588:5:588:23 | struct Implementor | -| main.rs:607:23:607:35 | GenericStruct | main.rs:559:5:562:5 | struct GenericStruct | -| main.rs:613:9:613:36 | GenericStruct::<...> | main.rs:559:5:562:5 | struct GenericStruct | -| main.rs:613:9:613:50 | ...::call_trait_a | main.rs:570:9:572:9 | fn call_trait_a | -| main.rs:613:25:613:35 | Implementor | main.rs:588:5:588:23 | struct Implementor | -| main.rs:616:9:616:36 | GenericStruct::<...> | main.rs:559:5:562:5 | struct GenericStruct | -| main.rs:616:9:616:47 | ...::call_both | main.rs:582:9:585:9 | fn call_both | -| main.rs:616:25:616:35 | Implementor | main.rs:588:5:588:23 | struct Implementor | -| main.rs:621:5:621:6 | my | main.rs:1:1:1:7 | mod my | -| main.rs:621:5:621:14 | ...::nested | my.rs:1:1:1:15 | mod nested | -| main.rs:621:5:621:23 | ...::nested1 | my/nested.rs:1:1:17:1 | mod nested1 | -| main.rs:621:5:621:32 | ...::nested2 | my/nested.rs:2:5:11:5 | mod nested2 | -| main.rs:621:5:621:35 | ...::f | my/nested.rs:3:9:5:9 | fn f | -| main.rs:622:5:622:6 | my | main.rs:1:1:1:7 | mod my | -| main.rs:622:5:622:9 | ...::f | my.rs:5:1:7:1 | fn f | -| main.rs:623:5:623:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 | -| main.rs:623:5:623:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 | -| main.rs:623:5:623:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 | -| main.rs:623:5:623:32 | ...::f | my2/nested2.rs:3:9:5:9 | fn f | -| main.rs:624:5:624:5 | f | my2/nested2.rs:3:9:5:9 | fn f | -| main.rs:625:5:625:5 | g | my2/nested2.rs:7:9:9:9 | fn g | -| main.rs:626:5:626:9 | crate | main.rs:0:0:0:0 | Crate(main@0.0.1) | -| main.rs:626:5:626:12 | ...::h | main.rs:50:1:69:1 | fn h | -| main.rs:627:5:627:6 | m1 | main.rs:13:1:37:1 | mod m1 | -| main.rs:627:5:627:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 | -| main.rs:627:5:627:13 | ...::g | main.rs:23:9:27:9 | fn g | -| main.rs:628:5:628:6 | m1 | main.rs:13:1:37:1 | mod m1 | -| main.rs:628:5:628:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 | -| main.rs:628:5:628:14 | ...::m3 | main.rs:29:9:35:9 | mod m3 | -| main.rs:628:5:628:17 | ...::h | main.rs:30:27:34:13 | fn h | -| main.rs:629:5:629:6 | m4 | main.rs:39:1:46:1 | mod m4 | -| main.rs:629:5:629:9 | ...::i | main.rs:42:5:45:5 | fn i | -| main.rs:630:5:630:5 | h | main.rs:50:1:69:1 | fn h | -| main.rs:631:5:631:11 | f_alias | my2/nested2.rs:3:9:5:9 | fn f | -| main.rs:632:5:632:11 | g_alias | my2/nested2.rs:7:9:9:9 | fn g | -| main.rs:633:5:633:5 | j | main.rs:97:1:101:1 | fn j | -| main.rs:634:5:634:6 | m6 | main.rs:109:1:120:1 | mod m6 | -| main.rs:634:5:634:9 | ...::g | main.rs:114:5:119:5 | fn g | -| main.rs:635:5:635:6 | m7 | main.rs:122:1:137:1 | mod m7 | -| main.rs:635:5:635:9 | ...::f | main.rs:129:5:136:5 | fn f | -| main.rs:636:5:636:6 | m8 | main.rs:139:1:193:1 | mod m8 | -| main.rs:636:5:636:9 | ...::g | main.rs:177:5:192:5 | fn g | -| main.rs:637:5:637:6 | m9 | main.rs:195:1:203:1 | mod m9 | -| main.rs:637:5:637:9 | ...::f | main.rs:198:5:202:5 | fn f | -| main.rs:638:5:638:7 | m11 | main.rs:226:1:263:1 | mod m11 | -| main.rs:638:5:638:10 | ...::f | main.rs:231:5:234:5 | fn f | -| main.rs:639:5:639:7 | m15 | main.rs:294:1:348:1 | mod m15 | -| main.rs:639:5:639:10 | ...::f | main.rs:335:5:347:5 | fn f | -| main.rs:640:5:640:7 | m16 | main.rs:350:1:442:1 | mod m16 | -| main.rs:640:5:640:10 | ...::f | main.rs:417:5:441:5 | fn f | -| main.rs:641:5:641:7 | m17 | main.rs:444:1:474:1 | mod m17 | -| main.rs:641:5:641:10 | ...::f | main.rs:468:5:473:5 | fn f | -| main.rs:642:5:642:11 | nested6 | my2/nested2.rs:14:5:18:5 | mod nested6 | -| main.rs:642:5:642:14 | ...::f | my2/nested2.rs:15:9:17:9 | fn f | -| main.rs:643:5:643:11 | nested8 | my2/nested2.rs:22:5:26:5 | mod nested8 | -| main.rs:643:5:643:14 | ...::f | my2/nested2.rs:23:9:25:9 | fn f | -| main.rs:644:5:644:7 | my3 | my2/mod.rs:12:1:12:12 | mod my3 | -| main.rs:644:5:644:10 | ...::f | my2/my3/mod.rs:1:1:5:1 | fn f | -| main.rs:645:5:645:12 | nested_f | my/my4/my5/mod.rs:1:1:3:1 | fn f | -| main.rs:646:5:646:7 | m18 | main.rs:476:1:494:1 | mod m18 | -| main.rs:646:5:646:12 | ...::m19 | main.rs:481:5:493:5 | mod m19 | -| main.rs:646:5:646:17 | ...::m20 | main.rs:486:9:492:9 | mod m20 | -| main.rs:646:5:646:20 | ...::g | main.rs:487:13:491:13 | fn g | -| main.rs:647:5:647:7 | m23 | main.rs:523:1:548:1 | mod m23 | -| main.rs:647:5:647:10 | ...::f | main.rs:543:5:547:5 | fn f | -| main.rs:648:5:648:7 | m24 | main.rs:550:1:618:1 | mod m24 | -| main.rs:648:5:648:10 | ...::f | main.rs:604:5:617:5 | fn f | +| main.rs:134:19:134:24 | MyEnum | main.rs:123:5:131:5 | enum MyEnum | +| main.rs:137:17:137:22 | MyEnum | main.rs:123:5:131:5 | enum MyEnum | +| main.rs:137:17:137:25 | ...::A | main.rs:124:9:126:9 | A | +| main.rs:138:17:138:22 | MyEnum | main.rs:123:5:131:5 | enum MyEnum | +| main.rs:138:17:138:25 | ...::B | main.rs:126:12:129:9 | B | +| main.rs:139:9:139:14 | MyEnum | main.rs:123:5:131:5 | enum MyEnum | +| main.rs:139:9:139:17 | ...::C | main.rs:129:12:130:9 | C | +| main.rs:149:13:149:13 | f | main.rs:156:5:158:5 | fn f | +| main.rs:150:13:150:16 | Self | main.rs:144:5:152:5 | trait MyTrait | +| main.rs:150:13:150:19 | ...::f | main.rs:145:9:145:20 | fn f | +| main.rs:161:10:161:16 | MyTrait | main.rs:144:5:152:5 | trait MyTrait | +| main.rs:161:22:161:29 | MyStruct | main.rs:154:5:154:22 | struct MyStruct | +| main.rs:164:13:164:13 | f | main.rs:156:5:158:5 | fn f | +| main.rs:165:13:165:16 | Self | main.rs:160:5:171:5 | impl MyTrait for MyStruct { ... } | +| main.rs:165:13:165:19 | ...::g | main.rs:168:9:170:9 | fn g | +| main.rs:174:10:174:17 | MyStruct | main.rs:154:5:154:22 | struct MyStruct | +| main.rs:177:13:177:13 | f | main.rs:156:5:158:5 | fn f | +| main.rs:183:17:183:24 | MyStruct | main.rs:154:5:154:22 | struct MyStruct | +| main.rs:184:9:184:15 | MyTrait | main.rs:144:5:152:5 | trait MyTrait | +| main.rs:184:9:184:18 | ...::f | main.rs:145:9:145:20 | fn f | +| main.rs:185:9:185:16 | MyStruct | main.rs:154:5:154:22 | struct MyStruct | +| main.rs:185:9:185:19 | ...::f | main.rs:161:33:166:9 | fn f | +| main.rs:186:10:186:17 | MyStruct | main.rs:154:5:154:22 | struct MyStruct | +| main.rs:187:10:187:16 | MyTrait | main.rs:144:5:152:5 | trait MyTrait | +| main.rs:190:17:190:24 | MyStruct | main.rs:154:5:154:22 | struct MyStruct | +| main.rs:192:17:192:24 | MyStruct | main.rs:154:5:154:22 | struct MyStruct | +| main.rs:194:9:194:16 | MyStruct | main.rs:154:5:154:22 | struct MyStruct | +| main.rs:194:9:194:19 | ...::h | main.rs:174:21:178:9 | fn h | +| main.rs:203:19:203:22 | self | main.rs:199:1:207:1 | mod m9 | +| main.rs:203:19:203:32 | ...::MyStruct | main.rs:200:5:200:26 | struct MyStruct | +| main.rs:205:9:205:12 | self | main.rs:199:1:207:1 | mod m9 | +| main.rs:205:9:205:22 | ...::MyStruct | main.rs:200:5:200:26 | struct MyStruct | +| main.rs:215:12:215:12 | T | main.rs:212:7:212:7 | T | +| main.rs:220:12:220:12 | T | main.rs:219:14:219:14 | T | +| main.rs:222:7:224:7 | MyStruct::<...> | main.rs:210:5:216:5 | struct MyStruct | +| main.rs:223:9:223:9 | T | main.rs:219:14:219:14 | T | +| main.rs:226:9:226:16 | MyStruct | main.rs:210:5:216:5 | struct MyStruct | +| main.rs:236:17:236:19 | Foo | main.rs:231:5:231:21 | struct Foo | +| main.rs:237:9:237:11 | Foo | main.rs:233:5:233:15 | fn Foo | +| main.rs:246:9:246:11 | Bar | main.rs:242:5:244:5 | enum Bar | +| main.rs:246:9:246:19 | ...::FooBar | main.rs:243:9:243:17 | FooBar | +| main.rs:251:13:251:15 | Foo | main.rs:231:5:231:21 | struct Foo | +| main.rs:252:17:252:22 | FooBar | main.rs:243:9:243:17 | FooBar | +| main.rs:253:17:253:22 | FooBar | main.rs:248:5:248:18 | fn FooBar | +| main.rs:261:9:261:9 | E | main.rs:256:15:259:5 | enum E | +| main.rs:261:9:261:12 | ...::C | main.rs:258:9:258:9 | C | +| main.rs:264:17:264:17 | S | main.rs:256:5:256:13 | struct S | +| main.rs:265:17:265:17 | C | main.rs:258:9:258:9 | C | +| main.rs:278:16:278:16 | T | main.rs:272:7:272:7 | T | +| main.rs:279:14:279:17 | Self | main.rs:270:5:280:5 | trait MyParamTrait | +| main.rs:279:14:279:33 | ...::AssociatedType | main.rs:274:9:274:28 | type AssociatedType | +| main.rs:288:13:288:17 | crate | main.rs:0:0:0:0 | Crate(main@0.0.1) | +| main.rs:288:13:288:22 | ...::m13 | main.rs:283:1:296:1 | mod m13 | +| main.rs:288:13:288:25 | ...::f | main.rs:284:5:284:17 | fn f | +| main.rs:288:13:288:25 | ...::f | main.rs:284:19:285:19 | struct f | +| main.rs:291:17:291:17 | f | main.rs:284:19:285:19 | struct f | +| main.rs:292:21:292:21 | f | main.rs:284:19:285:19 | struct f | +| main.rs:293:13:293:13 | f | main.rs:284:5:284:17 | fn f | +| main.rs:307:9:307:14 | Trait1 | main.rs:299:5:303:5 | trait Trait1 | +| main.rs:310:13:310:16 | Self | main.rs:305:5:313:5 | trait Trait2 | +| main.rs:310:13:310:19 | ...::g | main.rs:302:9:302:20 | fn g | +| main.rs:318:10:318:15 | Trait1 | main.rs:299:5:303:5 | trait Trait1 | +| main.rs:319:11:319:11 | S | main.rs:315:5:315:13 | struct S | +| main.rs:322:13:322:16 | Self | main.rs:317:5:329:5 | impl Trait1 for S { ... } | +| main.rs:322:13:322:19 | ...::g | main.rs:326:9:328:9 | fn g | +| main.rs:332:10:332:15 | Trait2 | main.rs:305:5:313:5 | trait Trait2 | +| main.rs:333:11:333:11 | S | main.rs:315:5:315:13 | struct S | +| main.rs:342:17:342:17 | S | main.rs:315:5:315:13 | struct S | +| main.rs:343:10:343:10 | S | main.rs:315:5:315:13 | struct S | +| main.rs:344:14:344:19 | Trait1 | main.rs:299:5:303:5 | trait Trait1 | +| main.rs:346:10:346:10 | S | main.rs:315:5:315:13 | struct S | +| main.rs:347:14:347:19 | Trait2 | main.rs:305:5:313:5 | trait Trait2 | +| main.rs:349:9:349:9 | S | main.rs:315:5:315:13 | struct S | +| main.rs:349:9:349:12 | ...::g | main.rs:326:9:328:9 | fn g | +| main.rs:359:24:359:24 | T | main.rs:357:7:357:7 | T | +| main.rs:361:24:361:24 | T | main.rs:357:7:357:7 | T | +| main.rs:364:24:364:24 | T | main.rs:357:7:357:7 | T | +| main.rs:365:13:365:16 | Self | main.rs:355:5:371:5 | trait Trait1 | +| main.rs:365:13:365:19 | ...::g | main.rs:361:9:362:9 | fn g | +| main.rs:369:18:369:18 | T | main.rs:357:7:357:7 | T | +| main.rs:377:9:379:9 | Trait1::<...> | main.rs:355:5:371:5 | trait Trait1 | +| main.rs:378:11:378:11 | T | main.rs:375:7:375:7 | T | +| main.rs:380:24:380:24 | T | main.rs:375:7:375:7 | T | +| main.rs:382:13:382:16 | Self | main.rs:373:5:386:5 | trait Trait2 | +| main.rs:382:13:382:19 | ...::g | main.rs:361:9:362:9 | fn g | +| main.rs:384:13:384:16 | Self | main.rs:373:5:386:5 | trait Trait2 | +| main.rs:384:13:384:19 | ...::c | main.rs:369:9:370:9 | Const | +| main.rs:391:10:393:5 | Trait1::<...> | main.rs:355:5:371:5 | trait Trait1 | +| main.rs:392:7:392:7 | S | main.rs:388:5:388:13 | struct S | +| main.rs:394:11:394:11 | S | main.rs:388:5:388:13 | struct S | +| main.rs:395:24:395:24 | S | main.rs:388:5:388:13 | struct S | +| main.rs:397:13:397:16 | Self | main.rs:390:5:408:5 | impl Trait1::<...> for S { ... } | +| main.rs:397:13:397:19 | ...::g | main.rs:401:9:404:9 | fn g | +| main.rs:401:24:401:24 | S | main.rs:388:5:388:13 | struct S | +| main.rs:403:13:403:16 | Self | main.rs:390:5:408:5 | impl Trait1::<...> for S { ... } | +| main.rs:403:13:403:19 | ...::c | main.rs:406:9:407:9 | Const | +| main.rs:406:18:406:18 | S | main.rs:388:5:388:13 | struct S | +| main.rs:406:22:406:22 | S | main.rs:388:5:388:13 | struct S | +| main.rs:411:10:413:5 | Trait2::<...> | main.rs:373:5:386:5 | trait Trait2 | +| main.rs:412:7:412:7 | S | main.rs:388:5:388:13 | struct S | +| main.rs:414:11:414:11 | S | main.rs:388:5:388:13 | struct S | +| main.rs:415:24:415:24 | S | main.rs:388:5:388:13 | struct S | +| main.rs:417:13:417:16 | Self | main.rs:410:5:419:5 | impl Trait2::<...> for S { ... } | +| main.rs:424:17:424:17 | S | main.rs:388:5:388:13 | struct S | +| main.rs:425:10:425:10 | S | main.rs:388:5:388:13 | struct S | +| main.rs:426:14:428:11 | Trait1::<...> | main.rs:355:5:371:5 | trait Trait1 | +| main.rs:427:13:427:13 | S | main.rs:388:5:388:13 | struct S | +| main.rs:430:10:430:10 | S | main.rs:388:5:388:13 | struct S | +| main.rs:431:14:433:11 | Trait2::<...> | main.rs:373:5:386:5 | trait Trait2 | +| main.rs:432:13:432:13 | S | main.rs:388:5:388:13 | struct S | +| main.rs:435:9:435:9 | S | main.rs:388:5:388:13 | struct S | +| main.rs:435:9:435:12 | ...::g | main.rs:401:9:404:9 | fn g | +| main.rs:437:9:437:9 | S | main.rs:388:5:388:13 | struct S | +| main.rs:437:9:437:12 | ...::h | main.rs:364:9:367:9 | fn h | +| main.rs:439:9:439:9 | S | main.rs:388:5:388:13 | struct S | +| main.rs:439:9:439:12 | ...::c | main.rs:406:9:407:9 | Const | +| main.rs:440:10:440:10 | S | main.rs:388:5:388:13 | struct S | +| main.rs:441:14:443:11 | Trait1::<...> | main.rs:355:5:371:5 | trait Trait1 | +| main.rs:442:13:442:13 | S | main.rs:388:5:388:13 | struct S | +| main.rs:456:10:456:16 | MyTrait | main.rs:449:5:451:5 | trait MyTrait | +| main.rs:457:9:457:9 | S | main.rs:453:5:453:13 | struct S | +| main.rs:465:7:465:13 | MyTrait | main.rs:449:5:451:5 | trait MyTrait | +| main.rs:466:10:466:10 | T | main.rs:464:10:464:10 | T | +| main.rs:468:9:468:9 | T | main.rs:464:10:464:10 | T | +| main.rs:468:9:468:12 | ...::f | main.rs:450:9:450:20 | fn f | +| main.rs:469:9:469:15 | MyTrait | main.rs:449:5:451:5 | trait MyTrait | +| main.rs:469:9:469:18 | ...::f | main.rs:450:9:450:20 | fn f | +| main.rs:474:9:474:9 | g | main.rs:463:5:470:5 | fn g | +| main.rs:475:11:475:11 | S | main.rs:453:5:453:13 | struct S | +| main.rs:493:17:493:21 | super | main.rs:485:5:497:5 | mod m19 | +| main.rs:493:17:493:24 | ...::f | main.rs:486:9:488:9 | fn f | +| main.rs:494:17:494:21 | super | main.rs:485:5:497:5 | mod m19 | +| main.rs:494:17:494:28 | ...::super | main.rs:480:1:498:1 | mod m18 | +| main.rs:494:17:494:31 | ...::f | main.rs:481:5:483:5 | fn f | +| main.rs:511:13:511:17 | super | main.rs:500:1:525:1 | mod m21 | +| main.rs:511:13:511:22 | ...::m22 | main.rs:501:5:507:5 | mod m22 | +| main.rs:511:13:511:30 | ...::MyEnum | main.rs:502:9:504:9 | enum MyEnum | +| main.rs:512:13:512:16 | self | main.rs:502:9:504:9 | enum MyEnum | +| main.rs:516:13:516:17 | super | main.rs:500:1:525:1 | mod m21 | +| main.rs:516:13:516:22 | ...::m22 | main.rs:501:5:507:5 | mod m22 | +| main.rs:516:13:516:32 | ...::MyStruct | main.rs:506:9:506:28 | struct MyStruct | +| main.rs:517:13:517:16 | self | main.rs:506:9:506:28 | struct MyStruct | +| main.rs:521:21:521:26 | MyEnum | main.rs:502:9:504:9 | enum MyEnum | +| main.rs:521:21:521:29 | ...::A | main.rs:503:13:503:13 | A | +| main.rs:522:21:522:28 | MyStruct | main.rs:506:9:506:28 | struct MyStruct | +| main.rs:538:10:540:5 | Trait1::<...> | main.rs:528:5:533:5 | trait Trait1 | +| main.rs:539:7:539:10 | Self | main.rs:535:5:535:13 | struct S | +| main.rs:541:11:541:11 | S | main.rs:535:5:535:13 | struct S | +| main.rs:549:17:549:17 | S | main.rs:535:5:535:13 | struct S | +| main.rs:565:15:565:15 | T | main.rs:564:26:564:26 | T | +| main.rs:570:9:570:24 | GenericStruct::<...> | main.rs:563:5:566:5 | struct GenericStruct | +| main.rs:570:23:570:23 | T | main.rs:569:10:569:10 | T | +| main.rs:572:9:572:9 | T | main.rs:569:10:569:10 | T | +| main.rs:572:12:572:17 | TraitA | main.rs:555:5:557:5 | trait TraitA | +| main.rs:581:9:581:24 | GenericStruct::<...> | main.rs:563:5:566:5 | struct GenericStruct | +| main.rs:581:23:581:23 | T | main.rs:580:10:580:10 | T | +| main.rs:583:9:583:9 | T | main.rs:580:10:580:10 | T | +| main.rs:583:12:583:17 | TraitB | main.rs:559:5:561:5 | trait TraitB | +| main.rs:584:9:584:9 | T | main.rs:580:10:580:10 | T | +| main.rs:584:12:584:17 | TraitA | main.rs:555:5:557:5 | trait TraitA | +| main.rs:595:10:595:15 | TraitA | main.rs:555:5:557:5 | trait TraitA | +| main.rs:595:21:595:31 | Implementor | main.rs:592:5:592:23 | struct Implementor | +| main.rs:602:10:602:15 | TraitB | main.rs:559:5:561:5 | trait TraitB | +| main.rs:602:21:602:31 | Implementor | main.rs:592:5:592:23 | struct Implementor | +| main.rs:610:24:610:34 | Implementor | main.rs:592:5:592:23 | struct Implementor | +| main.rs:611:23:611:35 | GenericStruct | main.rs:563:5:566:5 | struct GenericStruct | +| main.rs:617:9:617:36 | GenericStruct::<...> | main.rs:563:5:566:5 | struct GenericStruct | +| main.rs:617:9:617:50 | ...::call_trait_a | main.rs:574:9:576:9 | fn call_trait_a | +| main.rs:617:25:617:35 | Implementor | main.rs:592:5:592:23 | struct Implementor | +| main.rs:620:9:620:36 | GenericStruct::<...> | main.rs:563:5:566:5 | struct GenericStruct | +| main.rs:620:9:620:47 | ...::call_both | main.rs:586:9:589:9 | fn call_both | +| main.rs:620:25:620:35 | Implementor | main.rs:592:5:592:23 | struct Implementor | +| main.rs:625:5:625:6 | my | main.rs:1:1:1:7 | mod my | +| main.rs:625:5:625:14 | ...::nested | my.rs:1:1:1:15 | mod nested | +| main.rs:625:5:625:23 | ...::nested1 | my/nested.rs:1:1:17:1 | mod nested1 | +| main.rs:625:5:625:32 | ...::nested2 | my/nested.rs:2:5:11:5 | mod nested2 | +| main.rs:625:5:625:35 | ...::f | my/nested.rs:3:9:5:9 | fn f | +| main.rs:626:5:626:6 | my | main.rs:1:1:1:7 | mod my | +| main.rs:626:5:626:9 | ...::f | my.rs:5:1:7:1 | fn f | +| main.rs:627:5:627:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 | +| main.rs:627:5:627:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 | +| main.rs:627:5:627:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 | +| main.rs:627:5:627:32 | ...::f | my2/nested2.rs:3:9:5:9 | fn f | +| main.rs:628:5:628:5 | f | my2/nested2.rs:3:9:5:9 | fn f | +| main.rs:629:5:629:5 | g | my2/nested2.rs:7:9:9:9 | fn g | +| main.rs:630:5:630:9 | crate | main.rs:0:0:0:0 | Crate(main@0.0.1) | +| main.rs:630:5:630:12 | ...::h | main.rs:50:1:69:1 | fn h | +| main.rs:631:5:631:6 | m1 | main.rs:13:1:37:1 | mod m1 | +| main.rs:631:5:631:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 | +| main.rs:631:5:631:13 | ...::g | main.rs:23:9:27:9 | fn g | +| main.rs:632:5:632:6 | m1 | main.rs:13:1:37:1 | mod m1 | +| main.rs:632:5:632:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 | +| main.rs:632:5:632:14 | ...::m3 | main.rs:29:9:35:9 | mod m3 | +| main.rs:632:5:632:17 | ...::h | main.rs:30:27:34:13 | fn h | +| main.rs:633:5:633:6 | m4 | main.rs:39:1:46:1 | mod m4 | +| main.rs:633:5:633:9 | ...::i | main.rs:42:5:45:5 | fn i | +| main.rs:634:5:634:5 | h | main.rs:50:1:69:1 | fn h | +| main.rs:635:5:635:11 | f_alias | my2/nested2.rs:3:9:5:9 | fn f | +| main.rs:636:5:636:11 | g_alias | my2/nested2.rs:7:9:9:9 | fn g | +| main.rs:637:5:637:5 | j | main.rs:97:1:101:1 | fn j | +| main.rs:638:5:638:6 | m6 | main.rs:109:1:120:1 | mod m6 | +| main.rs:638:5:638:9 | ...::g | main.rs:114:5:119:5 | fn g | +| main.rs:639:5:639:6 | m7 | main.rs:122:1:141:1 | mod m7 | +| main.rs:639:5:639:9 | ...::f | main.rs:133:5:140:5 | fn f | +| main.rs:640:5:640:6 | m8 | main.rs:143:1:197:1 | mod m8 | +| main.rs:640:5:640:9 | ...::g | main.rs:181:5:196:5 | fn g | +| main.rs:641:5:641:6 | m9 | main.rs:199:1:207:1 | mod m9 | +| main.rs:641:5:641:9 | ...::f | main.rs:202:5:206:5 | fn f | +| main.rs:642:5:642:7 | m11 | main.rs:230:1:267:1 | mod m11 | +| main.rs:642:5:642:10 | ...::f | main.rs:235:5:238:5 | fn f | +| main.rs:643:5:643:7 | m15 | main.rs:298:1:352:1 | mod m15 | +| main.rs:643:5:643:10 | ...::f | main.rs:339:5:351:5 | fn f | +| main.rs:644:5:644:7 | m16 | main.rs:354:1:446:1 | mod m16 | +| main.rs:644:5:644:10 | ...::f | main.rs:421:5:445:5 | fn f | +| main.rs:645:5:645:7 | m17 | main.rs:448:1:478:1 | mod m17 | +| main.rs:645:5:645:10 | ...::f | main.rs:472:5:477:5 | fn f | +| main.rs:646:5:646:11 | nested6 | my2/nested2.rs:14:5:18:5 | mod nested6 | +| main.rs:646:5:646:14 | ...::f | my2/nested2.rs:15:9:17:9 | fn f | +| main.rs:647:5:647:11 | nested8 | my2/nested2.rs:22:5:26:5 | mod nested8 | +| main.rs:647:5:647:14 | ...::f | my2/nested2.rs:23:9:25:9 | fn f | +| main.rs:648:5:648:7 | my3 | my2/mod.rs:12:1:12:12 | mod my3 | +| main.rs:648:5:648:10 | ...::f | my2/my3/mod.rs:1:1:5:1 | fn f | +| main.rs:649:5:649:12 | nested_f | my/my4/my5/mod.rs:1:1:3:1 | fn f | +| main.rs:650:5:650:7 | m18 | main.rs:480:1:498:1 | mod m18 | +| main.rs:650:5:650:12 | ...::m19 | main.rs:485:5:497:5 | mod m19 | +| main.rs:650:5:650:17 | ...::m20 | main.rs:490:9:496:9 | mod m20 | +| main.rs:650:5:650:20 | ...::g | main.rs:491:13:495:13 | fn g | +| main.rs:651:5:651:7 | m23 | main.rs:527:1:552:1 | mod m23 | +| main.rs:651:5:651:10 | ...::f | main.rs:547:5:551:5 | fn f | +| main.rs:652:5:652:7 | m24 | main.rs:554:1:622:1 | mod m24 | +| main.rs:652:5:652:10 | ...::f | main.rs:608:5:621:5 | fn f | | my2/mod.rs:5:5:5:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 | | my2/mod.rs:5:5:5:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 | | my2/mod.rs:5:5:5:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 | @@ -338,7 +338,7 @@ resolvePath | my2/my3/mod.rs:3:5:3:5 | g | my2/mod.rs:3:1:6:1 | fn g | | my2/my3/mod.rs:4:5:4:5 | h | main.rs:50:1:69:1 | fn h | | my2/my3/mod.rs:7:5:7:9 | super | my2/mod.rs:1:1:17:30 | SourceFile | -| my2/my3/mod.rs:7:5:7:16 | ...::super | main.rs:1:1:649:2 | SourceFile | +| my2/my3/mod.rs:7:5:7:16 | ...::super | main.rs:1:1:653:2 | SourceFile | | my2/my3/mod.rs:7:5:7:19 | ...::h | main.rs:50:1:69:1 | fn h | | my2/my3/mod.rs:8:5:8:9 | super | my2/mod.rs:1:1:17:30 | SourceFile | | my2/my3/mod.rs:8:5:8:12 | ...::g | my2/mod.rs:3:1:6:1 | fn g | From a02bf182c56fcc1027c3e8e9acce19f3a0846087 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 13 May 2025 21:22:38 +0200 Subject: [PATCH 393/656] Rust: Type inference and path resolution for builtins --- .../codeql/rust/frameworks/stdlib/Bultins.qll | 117 ++++++++++++++++++ .../codeql/rust/internal/PathResolution.qll | 17 +++ .../codeql/rust/internal/TypeInference.qll | 38 ++++++ .../PathResolutionConsistency.expected | 15 +++ .../dataflow/modeled/inline-flow.expected | 19 ++- .../library-tests/dataflow/modeled/main.rs | 2 +- .../library-tests/path-resolution/main.rs | 6 +- .../test/library-tests/path-resolution/my.rs | 6 +- .../path-resolution/path-resolution.expected | 6 + .../path-resolution/path-resolution.ql | 10 +- .../test/library-tests/type-inference/main.rs | 6 +- .../type-inference/type-inference.expected | 117 ++++++++++++++++++ .../type-inference/type-inference.ql | 15 ++- .../PathResolutionConsistency.expected | 9 ++ 14 files changed, 365 insertions(+), 18 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/frameworks/stdlib/Bultins.qll create mode 100644 rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Bultins.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Bultins.qll new file mode 100644 index 00000000000..0449d55205a --- /dev/null +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Bultins.qll @@ -0,0 +1,117 @@ +/** + * Provides classes for builtins. + */ + +private import rust + +/** The folder containing builtins. */ +class BuiltinsFolder extends Folder { + BuiltinsFolder() { + this.getBaseName() = "builtins" and + this.getParentContainer().getBaseName() = "tools" + } +} + +private class BuiltinsTypesFile extends File { + BuiltinsTypesFile() { + this.getBaseName() = "types.rs" and + this.getParentContainer() instanceof BuiltinsFolder + } +} + +/** + * A builtin type, such as `bool` and `i32`. + * + * Builtin types are represented as structs. + */ +class BuiltinType extends Struct { + BuiltinType() { this.getFile() instanceof BuiltinsTypesFile } + + /** Gets the name of this type. */ + string getName() { result = super.getName().getText() } +} + +/** The builtin `bool` type. */ +class Bool extends BuiltinType { + Bool() { this.getName() = "bool" } +} + +/** The builtin `char` type. */ +class Char extends BuiltinType { + Char() { this.getName() = "char" } +} + +/** The builtin `str` type. */ +class Str extends BuiltinType { + Str() { this.getName() = "str" } +} + +/** The builtin `i8` type. */ +class I8 extends BuiltinType { + I8() { this.getName() = "i8" } +} + +/** The builtin `i16` type. */ +class I16 extends BuiltinType { + I16() { this.getName() = "i16" } +} + +/** The builtin `i32` type. */ +class I32 extends BuiltinType { + I32() { this.getName() = "i32" } +} + +/** The builtin `i64` type. */ +class I64 extends BuiltinType { + I64() { this.getName() = "i64" } +} + +/** The builtin `i128` type. */ +class I128 extends BuiltinType { + I128() { this.getName() = "i128" } +} + +/** The builtin `u8` type. */ +class U8 extends BuiltinType { + U8() { this.getName() = "u8" } +} + +/** The builtin `u16` type. */ +class U16 extends BuiltinType { + U16() { this.getName() = "u16" } +} + +/** The builtin `u32` type. */ +class U32 extends BuiltinType { + U32() { this.getName() = "u32" } +} + +/** The builtin `u64` type. */ +class U64 extends BuiltinType { + U64() { this.getName() = "u64" } +} + +/** The builtin `u128` type. */ +class U128 extends BuiltinType { + U128() { this.getName() = "u128" } +} + +/** The builtin `usize` type. */ +class USize extends BuiltinType { + USize() { this.getName() = "usize" } +} + +/** The builtin `isize` type. */ +class ISize extends BuiltinType { + ISize() { this.getName() = "isize" } +} + +/** The builtin `f32` type. */ +class F32 extends BuiltinType { + F32() { this.getName() = "f32" } +} + +/** The builtin `f64` type. */ +class F64 extends BuiltinType { + F64() { this.getName() = "f64" } +} diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index d1878ce3dae..e3e51ee3271 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -180,6 +180,8 @@ abstract class ItemNode extends Locatable { or preludeEdge(this, name, result) and not declares(this, _, name) or + builtinEdge(this, name, result) + or name = "super" and if this instanceof Module or this instanceof SourceFile then result = this.getImmediateParentModule() @@ -1184,6 +1186,21 @@ private predicate preludeEdge(SourceFile f, string name, ItemNode i) { ) } +private import codeql.rust.frameworks.stdlib.Bultins as Builtins + +pragma[nomagic] +private predicate builtinEdge(ModuleLikeNode m, string name, ItemNode i) { + ( + m instanceof SourceFile + or + m = any(CrateItemNode c).getModuleNode() + ) and + exists(SourceFileItemNode builtins | + builtins.getFile().getParentContainer() instanceof Builtins::BuiltinsFolder and + i = builtins.getASuccessorRec(name) + ) +} + /** Provides predicates for debugging the path resolution implementation. */ private module Debug { private Locatable getRelevantLocatable() { diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index cb9450a84d7..36d97b5c331 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -885,6 +885,41 @@ private Type inferTryExprType(TryExpr te, TypePath path) { ) } +private import codeql.rust.frameworks.stdlib.Bultins as Builtins + +pragma[nomagic] +StructType getBuiltinType(string name) { + result = TStruct(any(Builtins::BuiltinType t | name = t.getName())) +} + +pragma[nomagic] +private StructType inferLiteralType(LiteralExpr le) { + le instanceof CharLiteralExpr and + result = TStruct(any(Builtins::Char t)) + or + le instanceof StringLiteralExpr and + result = TStruct(any(Builtins::Str t)) + or + le = + any(IntegerLiteralExpr n | + not exists(n.getSuffix()) and + result = getBuiltinType("i32") + or + result = getBuiltinType(n.getSuffix()) + ) + or + le = + any(FloatLiteralExpr n | + not exists(n.getSuffix()) and + result = getBuiltinType("f32") + or + result = getBuiltinType(n.getSuffix()) + ) + or + le instanceof BooleanLiteralExpr and + result = TStruct(any(Builtins::Bool t)) +} + cached private module Cached { private import codeql.rust.internal.CachedStages @@ -1026,6 +1061,9 @@ private module Cached { result = inferRefExprType(n, path) or result = inferTryExprType(n, path) + or + result = inferLiteralType(n) and + path.isEmpty() } } diff --git a/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..b9ee72e892b --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,15 @@ +multiplePathResolutions +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | diff --git a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected index 1b8bc315c7a..b7afe9dae35 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -3,8 +3,9 @@ models | 2 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | | 3 | Summary: lang:core; ::zip; Argument[0].Field[crate::option::Option::Some(0)]; ReturnValue.Field[crate::option::Option::Some(0)].Field[1]; value | | 4 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | -| 5 | Summary: lang:core; crate::ptr::read; Argument[0].Reference; ReturnValue; value | -| 6 | Summary: lang:core; crate::ptr::write; Argument[1]; Argument[0].Reference; value | +| 5 | Summary: lang:core; ::clone; Argument[self].Reference; ReturnValue; value | +| 6 | Summary: lang:core; crate::ptr::read; Argument[0].Reference; ReturnValue; value | +| 7 | Summary: lang:core; crate::ptr::write; Argument[1]; Argument[0].Reference; value | edges | main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:2 | | main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:13 | a [Some] | provenance | | @@ -22,7 +23,12 @@ edges | main.rs:21:13:21:13 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | generated | | main.rs:21:13:21:21 | a.clone() [Ok] | main.rs:21:9:21:9 | b [Ok] | provenance | | | main.rs:26:9:26:9 | a | main.rs:27:10:27:10 | a | provenance | | +| main.rs:26:9:26:9 | a | main.rs:28:13:28:13 | a | provenance | | | main.rs:26:13:26:22 | source(...) | main.rs:26:9:26:9 | a | provenance | | +| main.rs:28:9:28:9 | b | main.rs:29:10:29:10 | b | provenance | | +| main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:5 | +| main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | generated | +| main.rs:28:13:28:21 | a.clone() | main.rs:28:9:28:9 | b | provenance | | | main.rs:41:13:41:13 | w [Wrapper] | main.rs:42:15:42:15 | w [Wrapper] | provenance | | | main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | main.rs:41:13:41:13 | w [Wrapper] | provenance | | | main.rs:41:30:41:39 | source(...) | main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | provenance | | @@ -47,8 +53,8 @@ edges | main.rs:61:18:61:23 | TuplePat [tuple.1] | main.rs:61:22:61:22 | m | provenance | | | main.rs:61:22:61:22 | m | main.rs:63:22:63:22 | m | provenance | | | main.rs:84:29:84:29 | [post] y [&ref] | main.rs:85:33:85:33 | y [&ref] | provenance | | -| main.rs:84:32:84:41 | source(...) | main.rs:84:29:84:29 | [post] y [&ref] | provenance | MaD:6 | -| main.rs:85:33:85:33 | y [&ref] | main.rs:85:18:85:34 | ...::read(...) | provenance | MaD:5 | +| main.rs:84:32:84:41 | source(...) | main.rs:84:29:84:29 | [post] y [&ref] | provenance | MaD:7 | +| main.rs:85:33:85:33 | y [&ref] | main.rs:85:18:85:34 | ...::read(...) | provenance | MaD:6 | nodes | main.rs:12:9:12:9 | a [Some] | semmle.label | a [Some] | | main.rs:12:13:12:28 | Some(...) [Some] | semmle.label | Some(...) [Some] | @@ -69,6 +75,10 @@ nodes | main.rs:26:9:26:9 | a | semmle.label | a | | main.rs:26:13:26:22 | source(...) | semmle.label | source(...) | | main.rs:27:10:27:10 | a | semmle.label | a | +| main.rs:28:9:28:9 | b | semmle.label | b | +| main.rs:28:13:28:13 | a | semmle.label | a | +| main.rs:28:13:28:21 | a.clone() | semmle.label | a.clone() | +| main.rs:29:10:29:10 | b | semmle.label | b | | main.rs:41:13:41:13 | w [Wrapper] | semmle.label | w [Wrapper] | | main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | | main.rs:41:30:41:39 | source(...) | semmle.label | source(...) | @@ -106,6 +116,7 @@ testFailures | main.rs:20:10:20:19 | a.unwrap() | main.rs:19:34:19:43 | source(...) | main.rs:20:10:20:19 | a.unwrap() | $@ | main.rs:19:34:19:43 | source(...) | source(...) | | main.rs:22:10:22:19 | b.unwrap() | main.rs:19:34:19:43 | source(...) | main.rs:22:10:22:19 | b.unwrap() | $@ | main.rs:19:34:19:43 | source(...) | source(...) | | main.rs:27:10:27:10 | a | main.rs:26:13:26:22 | source(...) | main.rs:27:10:27:10 | a | $@ | main.rs:26:13:26:22 | source(...) | source(...) | +| main.rs:29:10:29:10 | b | main.rs:26:13:26:22 | source(...) | main.rs:29:10:29:10 | b | $@ | main.rs:26:13:26:22 | source(...) | source(...) | | main.rs:43:38:43:38 | n | main.rs:41:30:41:39 | source(...) | main.rs:43:38:43:38 | n | $@ | main.rs:41:30:41:39 | source(...) | source(...) | | main.rs:47:38:47:38 | n | main.rs:41:30:41:39 | source(...) | main.rs:47:38:47:38 | n | $@ | main.rs:41:30:41:39 | source(...) | source(...) | | main.rs:63:22:63:22 | m | main.rs:58:22:58:31 | source(...) | main.rs:63:22:63:22 | m | $@ | main.rs:58:22:58:31 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/modeled/main.rs b/rust/ql/test/library-tests/dataflow/modeled/main.rs index 3ce3e0ecae0..cb955ce32bd 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/main.rs +++ b/rust/ql/test/library-tests/dataflow/modeled/main.rs @@ -26,7 +26,7 @@ fn i64_clone() { let a = source(12); sink(a); // $ hasValueFlow=12 let b = a.clone(); - sink(b); // $ MISSING: hasValueFlow=12 - lack of builtins means that we cannot resolve clone call above, and hence not insert implicit borrow + sink(b); // $ hasValueFlow=12 } mod my_clone { diff --git a/rust/ql/test/library-tests/path-resolution/main.rs b/rust/ql/test/library-tests/path-resolution/main.rs index be467ac4745..1c239d3d4ec 100644 --- a/rust/ql/test/library-tests/path-resolution/main.rs +++ b/rust/ql/test/library-tests/path-resolution/main.rs @@ -75,7 +75,7 @@ fn i() { { struct Foo { - x: i32, // $ MISSING: item=i32 + x: i32, // $ item=i32 } // I30 let _ = Foo { x: 0 }; // $ item=I30 @@ -122,10 +122,10 @@ mod m6 { mod m7 { pub enum MyEnum { A( - i32, // $ MISSING: item=i32 + i32, // $ item=i32 ), // I42 B { - x: i32, // $ MISSING: item=i32 + x: i32, // $ item=i32 }, // I43 C, // I44 } // I41 diff --git a/rust/ql/test/library-tests/path-resolution/my.rs b/rust/ql/test/library-tests/path-resolution/my.rs index 8daf4135178..29856d613c2 100644 --- a/rust/ql/test/library-tests/path-resolution/my.rs +++ b/rust/ql/test/library-tests/path-resolution/my.rs @@ -25,9 +25,9 @@ type Result< >; // my::Result fn int_div( - x: i32, // $ MISSING: item=i32 - y: i32, // $ MISSING: item=i32 -) -> Result // $ item=my::Result $ MISSING: item=i32 + x: i32, // $ item=i32 + y: i32, // $ item=i32 +) -> Result // $ item=my::Result $ item=i32 { if y == 0 { return Err("Div by zero".to_string()); diff --git a/rust/ql/test/library-tests/path-resolution/path-resolution.expected b/rust/ql/test/library-tests/path-resolution/path-resolution.expected index 2fa13563dc1..264e8757d51 100644 --- a/rust/ql/test/library-tests/path-resolution/path-resolution.expected +++ b/rust/ql/test/library-tests/path-resolution/path-resolution.expected @@ -77,6 +77,7 @@ resolvePath | main.rs:68:5:68:8 | self | main.rs:1:1:653:2 | SourceFile | | main.rs:68:5:68:11 | ...::i | main.rs:71:1:83:1 | fn i | | main.rs:74:13:74:15 | Foo | main.rs:48:1:48:13 | struct Foo | +| main.rs:78:16:78:18 | i32 | file:///BUILTINS/types.rs:12:1:12:15 | struct i32 | | main.rs:81:17:81:19 | Foo | main.rs:77:9:79:9 | struct Foo | | main.rs:85:5:85:7 | my2 | main.rs:7:1:7:8 | mod my2 | | main.rs:85:5:85:16 | ...::nested2 | my2/mod.rs:1:1:1:16 | mod nested2 | @@ -92,6 +93,8 @@ resolvePath | main.rs:117:13:117:21 | ...::m5 | main.rs:103:1:107:1 | mod m5 | | main.rs:118:9:118:9 | f | main.rs:104:5:106:5 | fn f | | main.rs:118:9:118:9 | f | main.rs:110:5:112:5 | fn f | +| main.rs:125:13:125:15 | i32 | file:///BUILTINS/types.rs:12:1:12:15 | struct i32 | +| main.rs:128:16:128:18 | i32 | file:///BUILTINS/types.rs:12:1:12:15 | struct i32 | | main.rs:134:19:134:24 | MyEnum | main.rs:123:5:131:5 | enum MyEnum | | main.rs:137:17:137:22 | MyEnum | main.rs:123:5:131:5 | enum MyEnum | | main.rs:137:17:137:25 | ...::A | main.rs:124:9:126:9 | A | @@ -352,7 +355,10 @@ resolvePath | my.rs:22:5:22:17 | ...::result | file://:0:0:0:0 | mod result | | my.rs:22:5:25:1 | ...::Result::<...> | file://:0:0:0:0 | enum Result | | my.rs:23:5:23:5 | T | my.rs:21:5:21:5 | T | +| my.rs:28:8:28:10 | i32 | file:///BUILTINS/types.rs:12:1:12:15 | struct i32 | +| my.rs:29:8:29:10 | i32 | file:///BUILTINS/types.rs:12:1:12:15 | struct i32 | | my.rs:30:6:30:16 | Result::<...> | my.rs:20:1:25:2 | type Result<...> | +| my.rs:30:13:30:15 | i32 | file:///BUILTINS/types.rs:12:1:12:15 | struct i32 | | my.rs:33:16:33:18 | Err | file://:0:0:0:0 | Err | | my.rs:35:5:35:6 | Ok | file://:0:0:0:0 | Ok | | my/nested.rs:9:13:9:13 | f | my/nested.rs:3:9:5:9 | fn f | diff --git a/rust/ql/test/library-tests/path-resolution/path-resolution.ql b/rust/ql/test/library-tests/path-resolution/path-resolution.ql index bd522597a2e..88ea10c0eba 100644 --- a/rust/ql/test/library-tests/path-resolution/path-resolution.ql +++ b/rust/ql/test/library-tests/path-resolution/path-resolution.ql @@ -5,13 +5,17 @@ import TestUtils query predicate mod(Module m) { toBeTested(m) } -class ItemNodeLoc extends Locatable instanceof ItemNode { +final private class ItemNodeFinal = ItemNode; + +class ItemNodeLoc extends ItemNodeFinal { predicate hasLocationInfo( string filepath, int startline, int startcolumn, int endline, int endcolumn ) { exists(string file | - super.getLocation().hasLocationInfo(file, startline, startcolumn, endline, endcolumn) and - filepath = file.regexpReplaceAll("^/.*/.rustup/toolchains/[^/]+/", "/RUSTUP_HOME/toolchain/") + this.getLocation().hasLocationInfo(file, startline, startcolumn, endline, endcolumn) and + filepath = + file.regexpReplaceAll("^/.*/.rustup/toolchains/[^/]+/", "/RUSTUP_HOME/toolchain/") + .regexpReplaceAll("^/.*/tools/builtins/", "/BUILTINS/") ) } } diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 1f49ba47cc0..69004d7291d 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -980,10 +980,10 @@ mod try_expressions { mod builtins { pub fn f() { - let x: i32 = 1; // $ MISSING: type=x:i32 - let y = 2; // $ MISSING: type=y:i32 + let x: i32 = 1; // $ type=x:i32 + let y = 2; // $ type=y:i32 let z = x + y; // $ MISSING: type=z:i32 - let z = x.abs(); // $ MISSING: method=abs $ MISSING: type=z:i32 + let z = x.abs(); // $ method=abs $ type=z:i32 'c'; "Hello"; 123.0f64; diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index f5a7893d414..45dccfb1857 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -6,6 +6,7 @@ inferType | main.rs:26:13:26:13 | x | | main.rs:5:5:8:5 | MyThing | | main.rs:26:17:26:32 | MyThing {...} | | main.rs:5:5:8:5 | MyThing | | main.rs:26:30:26:30 | S | | main.rs:2:5:3:13 | S | +| main.rs:27:18:27:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:27:26:27:26 | x | | main.rs:5:5:8:5 | MyThing | | main.rs:27:26:27:28 | x.a | | main.rs:2:5:3:13 | S | | main.rs:32:13:32:13 | x | | main.rs:16:5:19:5 | GenericThing | @@ -13,6 +14,7 @@ inferType | main.rs:32:17:32:42 | GenericThing::<...> {...} | | main.rs:16:5:19:5 | GenericThing | | main.rs:32:17:32:42 | GenericThing::<...> {...} | A | main.rs:2:5:3:13 | S | | main.rs:32:40:32:40 | S | | main.rs:2:5:3:13 | S | +| main.rs:33:18:33:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:33:26:33:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:33:26:33:26 | x | A | main.rs:2:5:3:13 | S | | main.rs:33:26:33:28 | x.a | | main.rs:2:5:3:13 | S | @@ -21,6 +23,7 @@ inferType | main.rs:36:17:36:37 | GenericThing {...} | | main.rs:16:5:19:5 | GenericThing | | main.rs:36:17:36:37 | GenericThing {...} | A | main.rs:2:5:3:13 | S | | main.rs:36:35:36:35 | S | | main.rs:2:5:3:13 | S | +| main.rs:37:18:37:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:37:26:37:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:37:26:37:26 | x | A | main.rs:2:5:3:13 | S | | main.rs:37:26:37:28 | x.a | | main.rs:2:5:3:13 | S | @@ -28,6 +31,7 @@ inferType | main.rs:41:17:43:9 | OptionS {...} | | main.rs:21:5:23:5 | OptionS | | main.rs:42:16:42:33 | ...::MyNone(...) | | main.rs:10:5:14:5 | MyOption | | main.rs:42:16:42:33 | ...::MyNone(...) | T | main.rs:2:5:3:13 | S | +| main.rs:44:18:44:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:44:26:44:26 | x | | main.rs:21:5:23:5 | OptionS | | main.rs:44:26:44:28 | x.a | | main.rs:10:5:14:5 | MyOption | | main.rs:44:26:44:28 | x.a | T | main.rs:2:5:3:13 | S | @@ -39,6 +43,7 @@ inferType | main.rs:47:17:49:9 | GenericThing::<...> {...} | A.T | main.rs:2:5:3:13 | S | | main.rs:48:16:48:33 | ...::MyNone(...) | | main.rs:10:5:14:5 | MyOption | | main.rs:48:16:48:33 | ...::MyNone(...) | T | main.rs:2:5:3:13 | S | +| main.rs:50:18:50:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:50:26:50:26 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:50:26:50:26 | x | A | main.rs:10:5:14:5 | MyOption | | main.rs:50:26:50:26 | x | A.T | main.rs:2:5:3:13 | S | @@ -59,6 +64,7 @@ inferType | main.rs:56:30:56:30 | x | A.T | main.rs:2:5:3:13 | S | | main.rs:56:30:56:32 | x.a | | main.rs:10:5:14:5 | MyOption | | main.rs:56:30:56:32 | x.a | T | main.rs:2:5:3:13 | S | +| main.rs:57:18:57:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:57:26:57:26 | a | | main.rs:10:5:14:5 | MyOption | | main.rs:57:26:57:26 | a | T | main.rs:2:5:3:13 | S | | main.rs:70:19:70:22 | SelfParam | | main.rs:67:5:67:21 | Foo | @@ -68,6 +74,7 @@ inferType | main.rs:74:32:76:9 | { ... } | | main.rs:67:5:67:21 | Foo | | main.rs:75:13:75:16 | self | | main.rs:67:5:67:21 | Foo | | main.rs:79:23:84:5 | { ... } | | main.rs:67:5:67:21 | Foo | +| main.rs:80:18:80:33 | "main.rs::m1::f\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:81:13:81:13 | x | | main.rs:67:5:67:21 | Foo | | main.rs:81:17:81:22 | Foo {...} | | main.rs:67:5:67:21 | Foo | | main.rs:82:13:82:13 | y | | main.rs:67:5:67:21 | Foo | @@ -76,6 +83,7 @@ inferType | main.rs:86:14:86:14 | x | | main.rs:67:5:67:21 | Foo | | main.rs:86:22:86:22 | y | | main.rs:67:5:67:21 | Foo | | main.rs:86:37:90:5 | { ... } | | main.rs:67:5:67:21 | Foo | +| main.rs:87:18:87:33 | "main.rs::m1::g\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:88:9:88:9 | x | | main.rs:67:5:67:21 | Foo | | main.rs:88:9:88:14 | x.m1() | | main.rs:67:5:67:21 | Foo | | main.rs:89:9:89:9 | y | | main.rs:67:5:67:21 | Foo | @@ -111,14 +119,18 @@ inferType | main.rs:126:17:126:33 | MyThing {...} | | main.rs:94:5:97:5 | MyThing | | main.rs:126:17:126:33 | MyThing {...} | A | main.rs:101:5:102:14 | S2 | | main.rs:126:30:126:31 | S2 | | main.rs:101:5:102:14 | S2 | +| main.rs:129:18:129:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:129:26:129:26 | x | | main.rs:94:5:97:5 | MyThing | | main.rs:129:26:129:26 | x | A | main.rs:99:5:100:14 | S1 | | main.rs:129:26:129:28 | x.a | | main.rs:99:5:100:14 | S1 | +| main.rs:130:18:130:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:130:26:130:26 | y | | main.rs:94:5:97:5 | MyThing | | main.rs:130:26:130:26 | y | A | main.rs:101:5:102:14 | S2 | | main.rs:130:26:130:28 | y.a | | main.rs:101:5:102:14 | S2 | +| main.rs:132:18:132:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:132:26:132:26 | x | | main.rs:94:5:97:5 | MyThing | | main.rs:132:26:132:26 | x | A | main.rs:99:5:100:14 | S1 | +| main.rs:133:18:133:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:133:26:133:26 | y | | main.rs:94:5:97:5 | MyThing | | main.rs:133:26:133:26 | y | A | main.rs:101:5:102:14 | S2 | | main.rs:135:13:135:13 | x | | main.rs:94:5:97:5 | MyThing | @@ -131,9 +143,11 @@ inferType | main.rs:136:17:136:33 | MyThing {...} | | main.rs:94:5:97:5 | MyThing | | main.rs:136:17:136:33 | MyThing {...} | A | main.rs:101:5:102:14 | S2 | | main.rs:136:30:136:31 | S2 | | main.rs:101:5:102:14 | S2 | +| main.rs:138:18:138:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:138:26:138:26 | x | | main.rs:94:5:97:5 | MyThing | | main.rs:138:26:138:26 | x | A | main.rs:99:5:100:14 | S1 | | main.rs:138:26:138:31 | x.m2() | | main.rs:99:5:100:14 | S1 | +| main.rs:139:18:139:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:139:26:139:26 | y | | main.rs:94:5:97:5 | MyThing | | main.rs:139:26:139:26 | y | A | main.rs:101:5:102:14 | S2 | | main.rs:139:26:139:31 | y.m2() | | main.rs:101:5:102:14 | S2 | @@ -170,8 +184,10 @@ inferType | main.rs:185:17:185:33 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | | main.rs:185:17:185:33 | MyThing {...} | A | main.rs:151:5:152:14 | S2 | | main.rs:185:30:185:31 | S2 | | main.rs:151:5:152:14 | S2 | +| main.rs:187:18:187:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:187:26:187:26 | x | | main.rs:144:5:147:5 | MyThing | | main.rs:187:26:187:26 | x | A | main.rs:149:5:150:14 | S1 | +| main.rs:188:18:188:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:188:26:188:26 | y | | main.rs:144:5:147:5 | MyThing | | main.rs:188:26:188:26 | y | A | main.rs:151:5:152:14 | S2 | | main.rs:190:13:190:13 | x | | main.rs:144:5:147:5 | MyThing | @@ -184,8 +200,10 @@ inferType | main.rs:191:17:191:33 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | | main.rs:191:17:191:33 | MyThing {...} | A | main.rs:151:5:152:14 | S2 | | main.rs:191:30:191:31 | S2 | | main.rs:151:5:152:14 | S2 | +| main.rs:193:18:193:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:193:40:193:40 | x | | main.rs:144:5:147:5 | MyThing | | main.rs:193:40:193:40 | x | A | main.rs:149:5:150:14 | S1 | +| main.rs:194:18:194:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:194:40:194:40 | y | | main.rs:144:5:147:5 | MyThing | | main.rs:194:40:194:40 | y | A | main.rs:151:5:152:14 | S2 | | main.rs:211:19:211:22 | SelfParam | | main.rs:209:5:212:5 | Self [trait FirstTrait] | @@ -194,21 +212,25 @@ inferType | main.rs:221:13:221:14 | s1 | | main.rs:219:35:219:42 | I | | main.rs:221:18:221:18 | x | | main.rs:219:45:219:61 | T | | main.rs:221:18:221:27 | x.method() | | main.rs:219:35:219:42 | I | +| main.rs:222:18:222:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:222:26:222:27 | s1 | | main.rs:219:35:219:42 | I | | main.rs:225:65:225:65 | x | | main.rs:225:46:225:62 | T | | main.rs:227:13:227:14 | s2 | | main.rs:225:36:225:43 | I | | main.rs:227:18:227:18 | x | | main.rs:225:46:225:62 | T | | main.rs:227:18:227:27 | x.method() | | main.rs:225:36:225:43 | I | +| main.rs:228:18:228:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:228:26:228:27 | s2 | | main.rs:225:36:225:43 | I | | main.rs:231:49:231:49 | x | | main.rs:231:30:231:46 | T | | main.rs:232:13:232:13 | s | | main.rs:201:5:202:14 | S1 | | main.rs:232:17:232:17 | x | | main.rs:231:30:231:46 | T | | main.rs:232:17:232:26 | x.method() | | main.rs:201:5:202:14 | S1 | +| main.rs:233:18:233:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:233:26:233:26 | s | | main.rs:201:5:202:14 | S1 | | main.rs:236:53:236:53 | x | | main.rs:236:34:236:50 | T | | main.rs:237:13:237:13 | s | | main.rs:201:5:202:14 | S1 | | main.rs:237:17:237:17 | x | | main.rs:236:34:236:50 | T | | main.rs:237:17:237:26 | x.method() | | main.rs:201:5:202:14 | S1 | +| main.rs:238:18:238:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:238:26:238:26 | s | | main.rs:201:5:202:14 | S1 | | main.rs:242:16:242:19 | SelfParam | | main.rs:241:5:245:5 | Self [trait Pair] | | main.rs:244:16:244:19 | SelfParam | | main.rs:241:5:245:5 | Self [trait Pair] | @@ -220,6 +242,7 @@ inferType | main.rs:250:13:250:14 | s2 | | main.rs:204:5:205:14 | S2 | | main.rs:250:18:250:18 | y | | main.rs:247:41:247:55 | T | | main.rs:250:18:250:24 | y.snd() | | main.rs:204:5:205:14 | S2 | +| main.rs:251:18:251:29 | "{:?}, {:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:251:32:251:33 | s1 | | main.rs:201:5:202:14 | S1 | | main.rs:251:36:251:37 | s2 | | main.rs:204:5:205:14 | S2 | | main.rs:254:69:254:69 | x | | main.rs:254:52:254:66 | T | @@ -230,6 +253,7 @@ inferType | main.rs:257:13:257:14 | s2 | | main.rs:254:41:254:49 | T2 | | main.rs:257:18:257:18 | y | | main.rs:254:52:254:66 | T | | main.rs:257:18:257:24 | y.snd() | | main.rs:254:41:254:49 | T2 | +| main.rs:258:18:258:29 | "{:?}, {:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:258:32:258:33 | s1 | | main.rs:201:5:202:14 | S1 | | main.rs:258:36:258:37 | s2 | | main.rs:254:41:254:49 | T2 | | main.rs:274:15:274:18 | SelfParam | | main.rs:273:5:282:5 | Self [trait MyTrait] | @@ -264,9 +288,11 @@ inferType | main.rs:302:17:302:33 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | | main.rs:302:17:302:33 | MyThing {...} | T | main.rs:270:5:271:14 | S2 | | main.rs:302:30:302:31 | S2 | | main.rs:270:5:271:14 | S2 | +| main.rs:304:18:304:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:304:26:304:26 | x | | main.rs:263:5:266:5 | MyThing | | main.rs:304:26:304:26 | x | T | main.rs:268:5:269:14 | S1 | | main.rs:304:26:304:31 | x.m1() | | main.rs:268:5:269:14 | S1 | +| main.rs:305:18:305:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:305:26:305:26 | y | | main.rs:263:5:266:5 | MyThing | | main.rs:305:26:305:26 | y | T | main.rs:270:5:271:14 | S2 | | main.rs:305:26:305:31 | y.m1() | | main.rs:270:5:271:14 | S2 | @@ -280,9 +306,11 @@ inferType | main.rs:308:17:308:33 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | | main.rs:308:17:308:33 | MyThing {...} | T | main.rs:270:5:271:14 | S2 | | main.rs:308:30:308:31 | S2 | | main.rs:270:5:271:14 | S2 | +| main.rs:310:18:310:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:310:26:310:26 | x | | main.rs:263:5:266:5 | MyThing | | main.rs:310:26:310:26 | x | T | main.rs:268:5:269:14 | S1 | | main.rs:310:26:310:31 | x.m2() | | main.rs:268:5:269:14 | S1 | +| main.rs:311:18:311:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:311:26:311:26 | y | | main.rs:263:5:266:5 | MyThing | | main.rs:311:26:311:26 | y | T | main.rs:270:5:271:14 | S2 | | main.rs:311:26:311:31 | y.m2() | | main.rs:270:5:271:14 | S2 | @@ -296,9 +324,11 @@ inferType | main.rs:314:18:314:34 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | | main.rs:314:18:314:34 | MyThing {...} | T | main.rs:270:5:271:14 | S2 | | main.rs:314:31:314:32 | S2 | | main.rs:270:5:271:14 | S2 | +| main.rs:316:18:316:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:316:26:316:42 | call_trait_m1(...) | | main.rs:268:5:269:14 | S1 | | main.rs:316:40:316:41 | x2 | | main.rs:263:5:266:5 | MyThing | | main.rs:316:40:316:41 | x2 | T | main.rs:268:5:269:14 | S1 | +| main.rs:317:18:317:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:317:26:317:42 | call_trait_m1(...) | | main.rs:270:5:271:14 | S2 | | main.rs:317:40:317:41 | y2 | | main.rs:263:5:266:5 | MyThing | | main.rs:317:40:317:41 | y2 | T | main.rs:270:5:271:14 | S2 | @@ -320,10 +350,12 @@ inferType | main.rs:323:16:323:32 | MyThing {...} | | main.rs:263:5:266:5 | MyThing | | main.rs:323:16:323:32 | MyThing {...} | T | main.rs:270:5:271:14 | S2 | | main.rs:323:29:323:30 | S2 | | main.rs:270:5:271:14 | S2 | +| main.rs:326:18:326:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:326:26:326:48 | call_trait_thing_m1(...) | | main.rs:268:5:269:14 | S1 | | main.rs:326:46:326:47 | x3 | | main.rs:263:5:266:5 | MyThing | | main.rs:326:46:326:47 | x3 | T | main.rs:263:5:266:5 | MyThing | | main.rs:326:46:326:47 | x3 | T.T | main.rs:268:5:269:14 | S1 | +| main.rs:327:18:327:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:327:26:327:48 | call_trait_thing_m1(...) | | main.rs:270:5:271:14 | S2 | | main.rs:327:46:327:47 | y3 | | main.rs:263:5:266:5 | MyThing | | main.rs:327:46:327:47 | y3 | T | main.rs:263:5:266:5 | MyThing | @@ -400,6 +432,7 @@ inferType | main.rs:445:13:445:14 | S2 | | main.rs:386:5:387:14 | S2 | | main.rs:450:13:450:14 | x1 | | main.rs:383:5:384:13 | S | | main.rs:450:18:450:18 | S | | main.rs:383:5:384:13 | S | +| main.rs:452:18:452:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:452:26:452:27 | x1 | | main.rs:383:5:384:13 | S | | main.rs:452:26:452:32 | x1.m1() | | main.rs:389:5:390:14 | AT | | main.rs:454:13:454:14 | x2 | | main.rs:383:5:384:13 | S | @@ -407,20 +440,31 @@ inferType | main.rs:456:13:456:13 | y | | main.rs:389:5:390:14 | AT | | main.rs:456:17:456:18 | x2 | | main.rs:383:5:384:13 | S | | main.rs:456:17:456:23 | x2.m2() | | main.rs:389:5:390:14 | AT | +| main.rs:457:18:457:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:457:26:457:26 | y | | main.rs:389:5:390:14 | AT | | main.rs:459:13:459:14 | x3 | | main.rs:383:5:384:13 | S | | main.rs:459:18:459:18 | S | | main.rs:383:5:384:13 | S | +| main.rs:461:18:461:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:461:26:461:27 | x3 | | main.rs:383:5:384:13 | S | | main.rs:461:26:461:34 | x3.put(...) | | main.rs:332:5:335:5 | Wrapper | +| main.rs:461:26:461:34 | x3.put(...) | A | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:461:26:461:43 | ... .unwrap() | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:461:33:461:33 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:464:18:464:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:464:26:464:27 | x3 | | main.rs:383:5:384:13 | S | +| main.rs:464:36:464:36 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:464:39:464:39 | 3 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | | main.rs:466:20:466:20 | S | | main.rs:383:5:384:13 | S | +| main.rs:467:18:467:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:469:13:469:14 | x5 | | main.rs:386:5:387:14 | S2 | | main.rs:469:18:469:19 | S2 | | main.rs:386:5:387:14 | S2 | +| main.rs:470:18:470:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:470:26:470:27 | x5 | | main.rs:386:5:387:14 | S2 | | main.rs:470:26:470:32 | x5.m1() | | main.rs:332:5:335:5 | Wrapper | | main.rs:470:26:470:32 | x5.m1() | A | main.rs:386:5:387:14 | S2 | | main.rs:471:13:471:14 | x6 | | main.rs:386:5:387:14 | S2 | | main.rs:471:18:471:19 | S2 | | main.rs:386:5:387:14 | S2 | +| main.rs:472:18:472:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:472:26:472:27 | x6 | | main.rs:386:5:387:14 | S2 | | main.rs:472:26:472:32 | x6.m2() | | main.rs:332:5:335:5 | Wrapper | | main.rs:472:26:472:32 | x6.m2() | A | main.rs:386:5:387:14 | S2 | @@ -453,9 +497,11 @@ inferType | main.rs:503:17:503:36 | ...::C2 {...} | | main.rs:481:5:485:5 | MyEnum | | main.rs:503:17:503:36 | ...::C2 {...} | A | main.rs:489:5:490:14 | S2 | | main.rs:503:33:503:34 | S2 | | main.rs:489:5:490:14 | S2 | +| main.rs:505:18:505:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:505:26:505:26 | x | | main.rs:481:5:485:5 | MyEnum | | main.rs:505:26:505:26 | x | A | main.rs:487:5:488:14 | S1 | | main.rs:505:26:505:31 | x.m1() | | main.rs:487:5:488:14 | S1 | +| main.rs:506:18:506:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:506:26:506:26 | y | | main.rs:481:5:485:5 | MyEnum | | main.rs:506:26:506:26 | y | A | main.rs:489:5:490:14 | S2 | | main.rs:506:26:506:31 | y.m1() | | main.rs:489:5:490:14 | S2 | @@ -463,6 +509,9 @@ inferType | main.rs:532:15:532:18 | SelfParam | | main.rs:531:5:542:5 | Self [trait MyTrait2] | | main.rs:535:9:541:9 | { ... } | | main.rs:531:20:531:22 | Tr2 | | main.rs:536:13:540:13 | if ... {...} else {...} | | main.rs:531:20:531:22 | Tr2 | +| main.rs:536:16:536:16 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:536:20:536:20 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:536:24:536:24 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | | main.rs:536:26:538:13 | { ... } | | main.rs:531:20:531:22 | Tr2 | | main.rs:537:17:537:20 | self | | main.rs:531:5:542:5 | Self [trait MyTrait2] | | main.rs:537:17:537:25 | self.m1() | | main.rs:531:20:531:22 | Tr2 | @@ -472,6 +521,9 @@ inferType | main.rs:545:15:545:18 | SelfParam | | main.rs:544:5:555:5 | Self [trait MyTrait3] | | main.rs:548:9:554:9 | { ... } | | main.rs:544:20:544:22 | Tr3 | | main.rs:549:13:553:13 | if ... {...} else {...} | | main.rs:544:20:544:22 | Tr3 | +| main.rs:549:16:549:16 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:549:20:549:20 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:549:24:549:24 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | | main.rs:549:26:551:13 | { ... } | | main.rs:544:20:544:22 | Tr3 | | main.rs:550:17:550:20 | self | | main.rs:544:5:555:5 | Self [trait MyTrait3] | | main.rs:550:17:550:25 | self.m2() | | main.rs:511:5:514:5 | MyThing | @@ -507,9 +559,11 @@ inferType | main.rs:579:17:579:33 | MyThing {...} | | main.rs:511:5:514:5 | MyThing | | main.rs:579:17:579:33 | MyThing {...} | A | main.rs:523:5:524:14 | S2 | | main.rs:579:30:579:31 | S2 | | main.rs:523:5:524:14 | S2 | +| main.rs:581:18:581:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:581:26:581:26 | x | | main.rs:511:5:514:5 | MyThing | | main.rs:581:26:581:26 | x | A | main.rs:521:5:522:14 | S1 | | main.rs:581:26:581:31 | x.m1() | | main.rs:521:5:522:14 | S1 | +| main.rs:582:18:582:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:582:26:582:26 | y | | main.rs:511:5:514:5 | MyThing | | main.rs:582:26:582:26 | y | A | main.rs:523:5:524:14 | S2 | | main.rs:582:26:582:31 | y.m1() | | main.rs:523:5:524:14 | S2 | @@ -523,9 +577,11 @@ inferType | main.rs:585:17:585:33 | MyThing {...} | | main.rs:511:5:514:5 | MyThing | | main.rs:585:17:585:33 | MyThing {...} | A | main.rs:523:5:524:14 | S2 | | main.rs:585:30:585:31 | S2 | | main.rs:523:5:524:14 | S2 | +| main.rs:587:18:587:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:587:26:587:26 | x | | main.rs:511:5:514:5 | MyThing | | main.rs:587:26:587:26 | x | A | main.rs:521:5:522:14 | S1 | | main.rs:587:26:587:31 | x.m2() | | main.rs:521:5:522:14 | S1 | +| main.rs:588:18:588:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:588:26:588:26 | y | | main.rs:511:5:514:5 | MyThing | | main.rs:588:26:588:26 | y | A | main.rs:523:5:524:14 | S2 | | main.rs:588:26:588:31 | y.m2() | | main.rs:523:5:524:14 | S2 | @@ -539,9 +595,11 @@ inferType | main.rs:591:17:591:34 | MyThing2 {...} | | main.rs:516:5:519:5 | MyThing2 | | main.rs:591:17:591:34 | MyThing2 {...} | A | main.rs:523:5:524:14 | S2 | | main.rs:591:31:591:32 | S2 | | main.rs:523:5:524:14 | S2 | +| main.rs:593:18:593:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:593:26:593:26 | x | | main.rs:516:5:519:5 | MyThing2 | | main.rs:593:26:593:26 | x | A | main.rs:521:5:522:14 | S1 | | main.rs:593:26:593:31 | x.m3() | | main.rs:521:5:522:14 | S1 | +| main.rs:594:18:594:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:594:26:594:26 | y | | main.rs:516:5:519:5 | MyThing2 | | main.rs:594:26:594:26 | y | A | main.rs:523:5:524:14 | S2 | | main.rs:594:26:594:31 | y.m3() | | main.rs:523:5:524:14 | S2 | @@ -560,6 +618,7 @@ inferType | main.rs:626:9:626:16 | x.into() | | main.rs:622:17:622:18 | T2 | | main.rs:630:13:630:13 | x | | main.rs:602:5:603:14 | S1 | | main.rs:630:17:630:18 | S1 | | main.rs:602:5:603:14 | S1 | +| main.rs:631:18:631:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:631:26:631:31 | id(...) | | file://:0:0:0:0 | & | | main.rs:631:26:631:31 | id(...) | &T | main.rs:602:5:603:14 | S1 | | main.rs:631:29:631:30 | &x | | file://:0:0:0:0 | & | @@ -567,6 +626,7 @@ inferType | main.rs:631:30:631:30 | x | | main.rs:602:5:603:14 | S1 | | main.rs:633:13:633:13 | x | | main.rs:602:5:603:14 | S1 | | main.rs:633:17:633:18 | S1 | | main.rs:602:5:603:14 | S1 | +| main.rs:634:18:634:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:634:26:634:37 | id::<...>(...) | | file://:0:0:0:0 | & | | main.rs:634:26:634:37 | id::<...>(...) | &T | main.rs:602:5:603:14 | S1 | | main.rs:634:35:634:36 | &x | | file://:0:0:0:0 | & | @@ -574,6 +634,7 @@ inferType | main.rs:634:36:634:36 | x | | main.rs:602:5:603:14 | S1 | | main.rs:636:13:636:13 | x | | main.rs:602:5:603:14 | S1 | | main.rs:636:17:636:18 | S1 | | main.rs:602:5:603:14 | S1 | +| main.rs:637:18:637:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:637:26:637:44 | id::<...>(...) | | file://:0:0:0:0 | & | | main.rs:637:26:637:44 | id::<...>(...) | &T | main.rs:602:5:603:14 | S1 | | main.rs:637:42:637:43 | &x | | file://:0:0:0:0 | & | @@ -597,7 +658,9 @@ inferType | main.rs:658:19:658:22 | self | Fst | main.rs:656:10:656:12 | Fst | | main.rs:658:19:658:22 | self | Snd | main.rs:656:15:656:17 | Snd | | main.rs:659:43:659:82 | MacroExpr | | main.rs:656:15:656:17 | Snd | +| main.rs:659:50:659:81 | "PairNone has no second elemen... | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:660:43:660:81 | MacroExpr | | main.rs:656:15:656:17 | Snd | +| main.rs:660:50:660:80 | "PairFst has no second element... | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:661:37:661:39 | snd | | main.rs:656:15:656:17 | Snd | | main.rs:661:45:661:47 | snd | | main.rs:656:15:656:17 | Snd | | main.rs:662:41:662:43 | snd | | main.rs:656:15:656:17 | Snd | @@ -617,6 +680,7 @@ inferType | main.rs:689:17:689:29 | t.unwrapSnd() | Fst | main.rs:670:5:671:14 | S2 | | main.rs:689:17:689:29 | t.unwrapSnd() | Snd | main.rs:673:5:674:14 | S3 | | main.rs:689:17:689:41 | ... .unwrapSnd() | | main.rs:673:5:674:14 | S3 | +| main.rs:690:18:690:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:690:26:690:26 | x | | main.rs:673:5:674:14 | S3 | | main.rs:695:13:695:14 | p1 | | main.rs:648:5:654:5 | PairOption | | main.rs:695:13:695:14 | p1 | Fst | main.rs:667:5:668:14 | S1 | @@ -626,6 +690,7 @@ inferType | main.rs:695:26:695:53 | ...::PairBoth(...) | Snd | main.rs:670:5:671:14 | S2 | | main.rs:695:47:695:48 | S1 | | main.rs:667:5:668:14 | S1 | | main.rs:695:51:695:52 | S2 | | main.rs:670:5:671:14 | S2 | +| main.rs:696:18:696:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:696:26:696:27 | p1 | | main.rs:648:5:654:5 | PairOption | | main.rs:696:26:696:27 | p1 | Fst | main.rs:667:5:668:14 | S1 | | main.rs:696:26:696:27 | p1 | Snd | main.rs:670:5:671:14 | S2 | @@ -635,6 +700,7 @@ inferType | main.rs:699:26:699:47 | ...::PairNone(...) | | main.rs:648:5:654:5 | PairOption | | main.rs:699:26:699:47 | ...::PairNone(...) | Fst | main.rs:667:5:668:14 | S1 | | main.rs:699:26:699:47 | ...::PairNone(...) | Snd | main.rs:670:5:671:14 | S2 | +| main.rs:700:18:700:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:700:26:700:27 | p2 | | main.rs:648:5:654:5 | PairOption | | main.rs:700:26:700:27 | p2 | Fst | main.rs:667:5:668:14 | S1 | | main.rs:700:26:700:27 | p2 | Snd | main.rs:670:5:671:14 | S2 | @@ -645,6 +711,7 @@ inferType | main.rs:703:34:703:56 | ...::PairSnd(...) | Fst | main.rs:670:5:671:14 | S2 | | main.rs:703:34:703:56 | ...::PairSnd(...) | Snd | main.rs:673:5:674:14 | S3 | | main.rs:703:54:703:55 | S3 | | main.rs:673:5:674:14 | S3 | +| main.rs:704:18:704:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:704:26:704:27 | p3 | | main.rs:648:5:654:5 | PairOption | | main.rs:704:26:704:27 | p3 | Fst | main.rs:670:5:671:14 | S2 | | main.rs:704:26:704:27 | p3 | Snd | main.rs:673:5:674:14 | S3 | @@ -654,6 +721,7 @@ inferType | main.rs:707:35:707:56 | ...::PairNone(...) | | main.rs:648:5:654:5 | PairOption | | main.rs:707:35:707:56 | ...::PairNone(...) | Fst | main.rs:670:5:671:14 | S2 | | main.rs:707:35:707:56 | ...::PairNone(...) | Snd | main.rs:673:5:674:14 | S3 | +| main.rs:708:18:708:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:708:26:708:27 | p3 | | main.rs:648:5:654:5 | PairOption | | main.rs:708:26:708:27 | p3 | Fst | main.rs:670:5:671:14 | S2 | | main.rs:708:26:708:27 | p3 | Snd | main.rs:673:5:674:14 | S3 | @@ -701,6 +769,7 @@ inferType | main.rs:745:40:745:40 | x | T | main.rs:741:10:741:10 | T | | main.rs:754:13:754:14 | x1 | | main.rs:715:5:719:5 | MyOption | | main.rs:754:18:754:37 | ...::new(...) | | main.rs:715:5:719:5 | MyOption | +| main.rs:755:18:755:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:755:26:755:27 | x1 | | main.rs:715:5:719:5 | MyOption | | main.rs:757:13:757:18 | mut x2 | | main.rs:715:5:719:5 | MyOption | | main.rs:757:13:757:18 | mut x2 | T | main.rs:750:5:751:13 | S | @@ -709,12 +778,14 @@ inferType | main.rs:758:9:758:10 | x2 | | main.rs:715:5:719:5 | MyOption | | main.rs:758:9:758:10 | x2 | T | main.rs:750:5:751:13 | S | | main.rs:758:16:758:16 | S | | main.rs:750:5:751:13 | S | +| main.rs:759:18:759:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:759:26:759:27 | x2 | | main.rs:715:5:719:5 | MyOption | | main.rs:759:26:759:27 | x2 | T | main.rs:750:5:751:13 | S | | main.rs:761:13:761:18 | mut x3 | | main.rs:715:5:719:5 | MyOption | | main.rs:761:22:761:36 | ...::new(...) | | main.rs:715:5:719:5 | MyOption | | main.rs:762:9:762:10 | x3 | | main.rs:715:5:719:5 | MyOption | | main.rs:762:21:762:21 | S | | main.rs:750:5:751:13 | S | +| main.rs:763:18:763:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:763:26:763:27 | x3 | | main.rs:715:5:719:5 | MyOption | | main.rs:765:13:765:18 | mut x4 | | main.rs:715:5:719:5 | MyOption | | main.rs:765:13:765:18 | mut x4 | T | main.rs:750:5:751:13 | S | @@ -726,6 +797,7 @@ inferType | main.rs:766:28:766:29 | x4 | | main.rs:715:5:719:5 | MyOption | | main.rs:766:28:766:29 | x4 | T | main.rs:750:5:751:13 | S | | main.rs:766:32:766:32 | S | | main.rs:750:5:751:13 | S | +| main.rs:767:18:767:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:767:26:767:27 | x4 | | main.rs:715:5:719:5 | MyOption | | main.rs:767:26:767:27 | x4 | T | main.rs:750:5:751:13 | S | | main.rs:769:13:769:14 | x5 | | main.rs:715:5:719:5 | MyOption | @@ -736,6 +808,7 @@ inferType | main.rs:769:18:769:58 | ...::MySome(...) | T.T | main.rs:750:5:751:13 | S | | main.rs:769:35:769:57 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | | main.rs:769:35:769:57 | ...::MyNone(...) | T | main.rs:750:5:751:13 | S | +| main.rs:770:18:770:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:770:26:770:27 | x5 | | main.rs:715:5:719:5 | MyOption | | main.rs:770:26:770:27 | x5 | T | main.rs:715:5:719:5 | MyOption | | main.rs:770:26:770:27 | x5 | T.T | main.rs:750:5:751:13 | S | @@ -747,6 +820,7 @@ inferType | main.rs:772:18:772:58 | ...::MySome(...) | T.T | main.rs:750:5:751:13 | S | | main.rs:772:35:772:57 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | | main.rs:772:35:772:57 | ...::MyNone(...) | T | main.rs:750:5:751:13 | S | +| main.rs:773:18:773:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:773:26:773:61 | ...::flatten(...) | | main.rs:715:5:719:5 | MyOption | | main.rs:773:26:773:61 | ...::flatten(...) | T | main.rs:750:5:751:13 | S | | main.rs:773:59:773:60 | x6 | | main.rs:715:5:719:5 | MyOption | @@ -756,6 +830,9 @@ inferType | main.rs:775:13:775:19 | from_if | T | main.rs:750:5:751:13 | S | | main.rs:775:23:779:9 | if ... {...} else {...} | | main.rs:715:5:719:5 | MyOption | | main.rs:775:23:779:9 | if ... {...} else {...} | T | main.rs:750:5:751:13 | S | +| main.rs:775:26:775:26 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:775:30:775:30 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:775:34:775:34 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | | main.rs:775:36:777:9 | { ... } | | main.rs:715:5:719:5 | MyOption | | main.rs:775:36:777:9 | { ... } | T | main.rs:750:5:751:13 | S | | main.rs:776:13:776:30 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | @@ -765,28 +842,39 @@ inferType | main.rs:778:13:778:31 | ...::MySome(...) | | main.rs:715:5:719:5 | MyOption | | main.rs:778:13:778:31 | ...::MySome(...) | T | main.rs:750:5:751:13 | S | | main.rs:778:30:778:30 | S | | main.rs:750:5:751:13 | S | +| main.rs:780:18:780:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:780:26:780:32 | from_if | | main.rs:715:5:719:5 | MyOption | | main.rs:780:26:780:32 | from_if | T | main.rs:750:5:751:13 | S | | main.rs:782:13:782:22 | from_match | | main.rs:715:5:719:5 | MyOption | | main.rs:782:13:782:22 | from_match | T | main.rs:750:5:751:13 | S | | main.rs:782:26:785:9 | match ... { ... } | | main.rs:715:5:719:5 | MyOption | | main.rs:782:26:785:9 | match ... { ... } | T | main.rs:750:5:751:13 | S | +| main.rs:782:32:782:32 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:782:36:782:36 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:782:40:782:40 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:783:13:783:16 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:783:21:783:38 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | | main.rs:783:21:783:38 | ...::MyNone(...) | T | main.rs:750:5:751:13 | S | +| main.rs:784:13:784:17 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:784:22:784:40 | ...::MySome(...) | | main.rs:715:5:719:5 | MyOption | | main.rs:784:22:784:40 | ...::MySome(...) | T | main.rs:750:5:751:13 | S | | main.rs:784:39:784:39 | S | | main.rs:750:5:751:13 | S | +| main.rs:786:18:786:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:786:26:786:35 | from_match | | main.rs:715:5:719:5 | MyOption | | main.rs:786:26:786:35 | from_match | T | main.rs:750:5:751:13 | S | | main.rs:788:13:788:21 | from_loop | | main.rs:715:5:719:5 | MyOption | | main.rs:788:13:788:21 | from_loop | T | main.rs:750:5:751:13 | S | | main.rs:788:25:793:9 | loop { ... } | | main.rs:715:5:719:5 | MyOption | | main.rs:788:25:793:9 | loop { ... } | T | main.rs:750:5:751:13 | S | +| main.rs:789:16:789:16 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:789:20:789:20 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:789:24:789:24 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | | main.rs:790:23:790:40 | ...::MyNone(...) | | main.rs:715:5:719:5 | MyOption | | main.rs:790:23:790:40 | ...::MyNone(...) | T | main.rs:750:5:751:13 | S | | main.rs:792:19:792:37 | ...::MySome(...) | | main.rs:715:5:719:5 | MyOption | | main.rs:792:19:792:37 | ...::MySome(...) | T | main.rs:750:5:751:13 | S | | main.rs:792:36:792:36 | S | | main.rs:750:5:751:13 | S | +| main.rs:794:18:794:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:794:26:794:34 | from_loop | | main.rs:715:5:719:5 | MyOption | | main.rs:794:26:794:34 | from_loop | T | main.rs:750:5:751:13 | S | | main.rs:807:15:807:18 | SelfParam | | main.rs:800:5:801:19 | S | @@ -822,6 +910,7 @@ inferType | main.rs:821:18:821:22 | S(...) | | main.rs:800:5:801:19 | S | | main.rs:821:18:821:22 | S(...) | T | main.rs:803:5:804:14 | S2 | | main.rs:821:20:821:21 | S2 | | main.rs:803:5:804:14 | S2 | +| main.rs:822:18:822:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:822:26:822:27 | x1 | | main.rs:800:5:801:19 | S | | main.rs:822:26:822:27 | x1 | T | main.rs:803:5:804:14 | S2 | | main.rs:822:26:822:32 | x1.m1() | | main.rs:803:5:804:14 | S2 | @@ -830,10 +919,12 @@ inferType | main.rs:824:18:824:22 | S(...) | | main.rs:800:5:801:19 | S | | main.rs:824:18:824:22 | S(...) | T | main.rs:803:5:804:14 | S2 | | main.rs:824:20:824:21 | S2 | | main.rs:803:5:804:14 | S2 | +| main.rs:826:18:826:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:826:26:826:27 | x2 | | main.rs:800:5:801:19 | S | | main.rs:826:26:826:27 | x2 | T | main.rs:803:5:804:14 | S2 | | main.rs:826:26:826:32 | x2.m2() | | file://:0:0:0:0 | & | | main.rs:826:26:826:32 | x2.m2() | &T | main.rs:803:5:804:14 | S2 | +| main.rs:827:18:827:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:827:26:827:27 | x2 | | main.rs:800:5:801:19 | S | | main.rs:827:26:827:27 | x2 | T | main.rs:803:5:804:14 | S2 | | main.rs:827:26:827:32 | x2.m3() | | file://:0:0:0:0 | & | @@ -843,6 +934,7 @@ inferType | main.rs:829:18:829:22 | S(...) | | main.rs:800:5:801:19 | S | | main.rs:829:18:829:22 | S(...) | T | main.rs:803:5:804:14 | S2 | | main.rs:829:20:829:21 | S2 | | main.rs:803:5:804:14 | S2 | +| main.rs:831:18:831:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:831:26:831:41 | ...::m2(...) | | file://:0:0:0:0 | & | | main.rs:831:26:831:41 | ...::m2(...) | &T | main.rs:803:5:804:14 | S2 | | main.rs:831:38:831:40 | &x3 | | file://:0:0:0:0 | & | @@ -850,6 +942,7 @@ inferType | main.rs:831:38:831:40 | &x3 | &T.T | main.rs:803:5:804:14 | S2 | | main.rs:831:39:831:40 | x3 | | main.rs:800:5:801:19 | S | | main.rs:831:39:831:40 | x3 | T | main.rs:803:5:804:14 | S2 | +| main.rs:832:18:832:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:832:26:832:41 | ...::m3(...) | | file://:0:0:0:0 | & | | main.rs:832:26:832:41 | ...::m3(...) | &T | main.rs:803:5:804:14 | S2 | | main.rs:832:38:832:40 | &x3 | | file://:0:0:0:0 | & | @@ -866,11 +959,13 @@ inferType | main.rs:834:19:834:23 | S(...) | | main.rs:800:5:801:19 | S | | main.rs:834:19:834:23 | S(...) | T | main.rs:803:5:804:14 | S2 | | main.rs:834:21:834:22 | S2 | | main.rs:803:5:804:14 | S2 | +| main.rs:836:18:836:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:836:26:836:27 | x4 | | file://:0:0:0:0 | & | | main.rs:836:26:836:27 | x4 | &T | main.rs:800:5:801:19 | S | | main.rs:836:26:836:27 | x4 | &T.T | main.rs:803:5:804:14 | S2 | | main.rs:836:26:836:32 | x4.m2() | | file://:0:0:0:0 | & | | main.rs:836:26:836:32 | x4.m2() | &T | main.rs:803:5:804:14 | S2 | +| main.rs:837:18:837:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:837:26:837:27 | x4 | | file://:0:0:0:0 | & | | main.rs:837:26:837:27 | x4 | &T | main.rs:800:5:801:19 | S | | main.rs:837:26:837:27 | x4 | &T.T | main.rs:803:5:804:14 | S2 | @@ -885,10 +980,12 @@ inferType | main.rs:839:19:839:23 | S(...) | | main.rs:800:5:801:19 | S | | main.rs:839:19:839:23 | S(...) | T | main.rs:803:5:804:14 | S2 | | main.rs:839:21:839:22 | S2 | | main.rs:803:5:804:14 | S2 | +| main.rs:841:18:841:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:841:26:841:27 | x5 | | file://:0:0:0:0 | & | | main.rs:841:26:841:27 | x5 | &T | main.rs:800:5:801:19 | S | | main.rs:841:26:841:27 | x5 | &T.T | main.rs:803:5:804:14 | S2 | | main.rs:841:26:841:32 | x5.m1() | | main.rs:803:5:804:14 | S2 | +| main.rs:842:18:842:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:842:26:842:27 | x5 | | file://:0:0:0:0 | & | | main.rs:842:26:842:27 | x5 | &T | main.rs:800:5:801:19 | S | | main.rs:842:26:842:27 | x5 | &T.T | main.rs:803:5:804:14 | S2 | @@ -902,6 +999,7 @@ inferType | main.rs:844:19:844:23 | S(...) | | main.rs:800:5:801:19 | S | | main.rs:844:19:844:23 | S(...) | T | main.rs:803:5:804:14 | S2 | | main.rs:844:21:844:22 | S2 | | main.rs:803:5:804:14 | S2 | +| main.rs:846:18:846:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:846:26:846:30 | (...) | | main.rs:800:5:801:19 | S | | main.rs:846:26:846:30 | (...) | T | main.rs:803:5:804:14 | S2 | | main.rs:846:26:846:35 | ... .m1() | | main.rs:803:5:804:14 | S2 | @@ -1072,6 +1170,7 @@ inferType | main.rs:955:33:955:37 | value | | main.rs:953:20:953:27 | T | | main.rs:955:53:958:9 | { ... } | | file://:0:0:0:0 | Result | | main.rs:955:53:958:9 | { ... } | E | main.rs:925:5:926:14 | S1 | +| main.rs:956:22:956:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:957:13:957:34 | ...::Ok::<...>(...) | | file://:0:0:0:0 | Result | | main.rs:957:13:957:34 | ...::Ok::<...>(...) | E | main.rs:925:5:926:14 | S1 | | main.rs:959:9:959:23 | ...::Err(...) | | file://:0:0:0:0 | Result | @@ -1081,12 +1180,15 @@ inferType | main.rs:963:37:963:52 | try_same_error(...) | | file://:0:0:0:0 | Result | | main.rs:963:37:963:52 | try_same_error(...) | E | main.rs:925:5:926:14 | S1 | | main.rs:963:37:963:52 | try_same_error(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:964:22:964:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:967:37:967:55 | try_convert_error(...) | | file://:0:0:0:0 | Result | | main.rs:967:37:967:55 | try_convert_error(...) | E | main.rs:928:5:929:14 | S2 | | main.rs:967:37:967:55 | try_convert_error(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:968:22:968:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:971:37:971:49 | try_chained(...) | | file://:0:0:0:0 | Result | | main.rs:971:37:971:49 | try_chained(...) | E | main.rs:928:5:929:14 | S2 | | main.rs:971:37:971:49 | try_chained(...) | T | main.rs:925:5:926:14 | S1 | +| main.rs:972:22:972:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | | main.rs:975:37:975:63 | try_complex(...) | | file://:0:0:0:0 | Result | | main.rs:975:37:975:63 | try_complex(...) | E | main.rs:925:5:926:14 | S1 | | main.rs:975:37:975:63 | try_complex(...) | T | main.rs:925:5:926:14 | S1 | @@ -1094,6 +1196,21 @@ inferType | main.rs:975:49:975:62 | ...::Ok(...) | E | main.rs:925:5:926:14 | S1 | | main.rs:975:49:975:62 | ...::Ok(...) | T | main.rs:925:5:926:14 | S1 | | main.rs:975:60:975:61 | S1 | | main.rs:925:5:926:14 | S1 | +| main.rs:976:22:976:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:983:13:983:13 | x | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:983:22:983:22 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:984:13:984:13 | y | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:984:17:984:17 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:985:17:985:17 | x | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:985:21:985:21 | y | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:986:13:986:13 | z | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:986:17:986:17 | x | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:986:17:986:23 | x.abs() | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:987:9:987:11 | 'c' | | file:///BUILTINS/types.rs:6:1:7:16 | char | +| main.rs:988:9:988:15 | "Hello" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:989:9:989:16 | 123.0f64 | | file:///BUILTINS/types.rs:25:1:25:15 | f64 | +| main.rs:990:9:990:12 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:991:9:991:13 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:997:5:997:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | | main.rs:998:5:998:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | | main.rs:998:20:998:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | diff --git a/rust/ql/test/library-tests/type-inference/type-inference.ql b/rust/ql/test/library-tests/type-inference/type-inference.ql index 2652699558f..be0f8a4cbc3 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.ql +++ b/rust/ql/test/library-tests/type-inference/type-inference.ql @@ -3,7 +3,20 @@ import utils.test.InlineExpectationsTest import codeql.rust.internal.TypeInference as TypeInference import TypeInference -query predicate inferType(AstNode n, TypePath path, Type t) { +final private class TypeFinal = Type; + +class TypeLoc extends TypeFinal { + predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ) { + exists(string file | + this.getLocation().hasLocationInfo(file, startline, startcolumn, endline, endcolumn) and + filepath = file.regexpReplaceAll("^/.*/tools/builtins/", "/BUILTINS/") + ) + } +} + +query predicate inferType(AstNode n, TypePath path, TypeLoc t) { t = TypeInference::inferType(n, path) and n.fromSource() } diff --git a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..e4c5c7393e4 --- /dev/null +++ b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,9 @@ +multipleMethodCallTargets +| main.rs:374:5:374:27 | ... .add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:374:5:374:27 | ... .add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:374:5:374:27 | ... .add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:374:5:374:27 | ... .add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:459:9:459:23 | z.add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:459:9:459:23 | z.add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:459:9:459:23 | z.add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:459:9:459:23 | z.add_assign(...) | file://:0:0:0:0 | fn add_assign | From 2de4a01c86e3fe1dcfc11287f0a99a21eb9087fd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 13 May 2025 21:14:27 +0000 Subject: [PATCH 394/656] Release preparation for version 2.21.3 --- actions/ql/lib/CHANGELOG.md | 4 ++++ actions/ql/lib/change-notes/released/0.4.9.md | 3 +++ actions/ql/lib/codeql-pack.release.yml | 2 +- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/CHANGELOG.md | 4 ++++ actions/ql/src/change-notes/released/0.6.1.md | 3 +++ actions/ql/src/codeql-pack.release.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/CHANGELOG.md | 6 ++++++ .../4.3.1.md} | 9 +++++---- cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 11 +++++++++++ .../1.4.0.md} | 7 ++++--- cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++++ .../lib/change-notes/released/1.7.40.md | 3 +++ .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++++ .../src/change-notes/released/1.7.40.md | 3 +++ .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 4 ++++ csharp/ql/lib/change-notes/released/5.1.6.md | 3 +++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 17 +++++++++++++++++ .../2025-04-28-equality-on-floats-precision.md | 4 ---- .../1.2.0.md} | 10 +++++++--- csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.23.md | 3 +++ .../consistency-queries/codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 4 ++++ go/ql/lib/change-notes/released/4.2.5.md | 3 +++ go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 15 +++++++++++++++ .../1.2.0.md} | 6 +++--- go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 6 ++++++ .../7.2.0.md} | 7 ++++--- java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 8 ++++++++ .../1.5.0.md} | 6 +++--- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 8 ++++++++ .../change-notes/2025-04-14-fastify-addhook.md | 4 ---- .../lib/change-notes/2025-04-30-fastify-all.md | 4 ---- .../ql/lib/change-notes/2025-04-30-shelljs.md | 4 ---- .../ql/lib/change-notes/released/2.6.3.md | 7 +++++++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 14 ++++++++++++++ .../src/change-notes/2025-04-30-promise-all.md | 5 ----- .../1.6.0.md} | 11 ++++++++--- javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.23.md | 3 +++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 7 +++++++ .../2025-04-30-model-send-header.md | 4 ---- python/ql/lib/change-notes/2025-05-01-hdbcli.md | 4 ---- python/ql/lib/change-notes/released/4.0.7.md | 6 ++++++ python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 11 +++++++++++ .../1.5.0.md} | 6 +++--- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 4 ++++ ruby/ql/lib/change-notes/released/4.1.6.md | 3 +++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 7 +++++++ ...seless-assignment-to-local-precision-high.md | 5 ----- .../1.3.0.md} | 7 ++++--- ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/CHANGELOG.md | 4 ++++ rust/ql/lib/change-notes/released/0.1.8.md | 3 +++ rust/ql/lib/codeql-pack.release.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/CHANGELOG.md | 4 ++++ rust/ql/src/change-notes/released/0.1.8.md | 3 +++ rust/ql/src/codeql-pack.release.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ .../controlflow/change-notes/released/2.0.7.md | 3 +++ shared/controlflow/codeql-pack.release.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/CHANGELOG.md | 4 ++++ shared/dataflow/change-notes/released/2.0.7.md | 3 +++ shared/dataflow/codeql-pack.release.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/CHANGELOG.md | 4 ++++ shared/mad/change-notes/released/1.0.23.md | 3 +++ shared/mad/codeql-pack.release.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/CHANGELOG.md | 3 +++ shared/quantum/change-notes/released/0.0.1.md | 3 +++ shared/quantum/codeql-pack.release.yml | 2 ++ shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.23.md | 3 +++ shared/rangeanalysis/codeql-pack.release.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++++ shared/regex/change-notes/released/1.0.23.md | 3 +++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++++ shared/ssa/change-notes/released/1.1.2.md | 3 +++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.23.md | 3 +++ shared/threat-models/codeql-pack.release.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++++ shared/tutorial/change-notes/released/1.0.23.md | 3 +++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/CHANGELOG.md | 4 ++++ shared/typeflow/change-notes/released/1.0.23.md | 3 +++ shared/typeflow/codeql-pack.release.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/CHANGELOG.md | 4 ++++ .../change-notes/released/0.0.4.md | 3 +++ shared/typeinference/codeql-pack.release.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ .../typetracking/change-notes/released/2.0.7.md | 3 +++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++++ shared/typos/change-notes/released/1.0.23.md | 3 +++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++++ shared/util/change-notes/released/2.0.10.md | 3 +++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/CHANGELOG.md | 4 ++++ shared/xml/change-notes/released/1.0.23.md | 3 +++ shared/xml/codeql-pack.release.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/CHANGELOG.md | 4 ++++ shared/yaml/change-notes/released/1.0.23.md | 3 +++ shared/yaml/codeql-pack.release.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/CHANGELOG.md | 6 ++++++ .../4.3.0.md} | 7 ++++--- swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 4 ++++ swift/ql/src/change-notes/released/1.1.3.md | 3 +++ swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 168 files changed, 450 insertions(+), 144 deletions(-) create mode 100644 actions/ql/lib/change-notes/released/0.4.9.md create mode 100644 actions/ql/src/change-notes/released/0.6.1.md rename cpp/ql/lib/change-notes/{2025-05-13-range-analysis-infinite-loop.md => released/4.3.1.md} (76%) rename cpp/ql/src/change-notes/{2025-05-01-cwe-tag-changed.md => released/1.4.0.md} (95%) create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.40.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.40.md create mode 100644 csharp/ql/lib/change-notes/released/5.1.6.md delete mode 100644 csharp/ql/src/change-notes/2025-04-28-equality-on-floats-precision.md rename csharp/ql/src/change-notes/{2025-05-01-cwe-tag-changed.md => released/1.2.0.md} (87%) create mode 100644 go/ql/consistency-queries/change-notes/released/1.0.23.md create mode 100644 go/ql/lib/change-notes/released/4.2.5.md rename go/ql/src/change-notes/{2025-05-01-cwe-tag-changed.md => released/1.2.0.md} (97%) rename java/ql/lib/change-notes/{2025-04-28-kotlin-220.md => released/7.2.0.md} (84%) rename java/ql/src/change-notes/{2025-05-01-cwe-tag-changed.md => released/1.5.0.md} (92%) delete mode 100644 javascript/ql/lib/change-notes/2025-04-14-fastify-addhook.md delete mode 100644 javascript/ql/lib/change-notes/2025-04-30-fastify-all.md delete mode 100644 javascript/ql/lib/change-notes/2025-04-30-shelljs.md create mode 100644 javascript/ql/lib/change-notes/released/2.6.3.md delete mode 100644 javascript/ql/src/change-notes/2025-04-30-promise-all.md rename javascript/ql/src/change-notes/{2025-05-01-cwe-tag-changed.md => released/1.6.0.md} (71%) create mode 100644 misc/suite-helpers/change-notes/released/1.0.23.md delete mode 100644 python/ql/lib/change-notes/2025-04-30-model-send-header.md delete mode 100644 python/ql/lib/change-notes/2025-05-01-hdbcli.md create mode 100644 python/ql/lib/change-notes/released/4.0.7.md rename python/ql/src/change-notes/{2025-05-01-cwe-tag-changed.md => released/1.5.0.md} (95%) create mode 100644 ruby/ql/lib/change-notes/released/4.1.6.md delete mode 100644 ruby/ql/src/change-notes/2025-05-12-rb-useless-assignment-to-local-precision-high.md rename ruby/ql/src/change-notes/{2025-05-01-cwe-tag-changed.md => released/1.3.0.md} (51%) create mode 100644 rust/ql/lib/change-notes/released/0.1.8.md create mode 100644 rust/ql/src/change-notes/released/0.1.8.md create mode 100644 shared/controlflow/change-notes/released/2.0.7.md create mode 100644 shared/dataflow/change-notes/released/2.0.7.md create mode 100644 shared/mad/change-notes/released/1.0.23.md create mode 100644 shared/quantum/CHANGELOG.md create mode 100644 shared/quantum/change-notes/released/0.0.1.md create mode 100644 shared/quantum/codeql-pack.release.yml create mode 100644 shared/rangeanalysis/change-notes/released/1.0.23.md create mode 100644 shared/regex/change-notes/released/1.0.23.md create mode 100644 shared/ssa/change-notes/released/1.1.2.md create mode 100644 shared/threat-models/change-notes/released/1.0.23.md create mode 100644 shared/tutorial/change-notes/released/1.0.23.md create mode 100644 shared/typeflow/change-notes/released/1.0.23.md create mode 100644 shared/typeinference/change-notes/released/0.0.4.md create mode 100644 shared/typetracking/change-notes/released/2.0.7.md create mode 100644 shared/typos/change-notes/released/1.0.23.md create mode 100644 shared/util/change-notes/released/2.0.10.md create mode 100644 shared/xml/change-notes/released/1.0.23.md create mode 100644 shared/yaml/change-notes/released/1.0.23.md rename swift/ql/lib/change-notes/{2025-05-02-new-entities.md => released/4.3.0.md} (83%) create mode 100644 swift/ql/src/change-notes/released/1.1.3.md diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index e16567daffd..16262bfaa84 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.9 + +No user-facing changes. + ## 0.4.8 No user-facing changes. diff --git a/actions/ql/lib/change-notes/released/0.4.9.md b/actions/ql/lib/change-notes/released/0.4.9.md new file mode 100644 index 00000000000..4666ef266e5 --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.9.md @@ -0,0 +1,3 @@ +## 0.4.9 + +No user-facing changes. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 3c75bfd1a47..c898a5bfdcd 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.8 +lastReleaseVersion: 0.4.9 diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 81973859a2b..78262551e5b 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.9-dev +version: 0.4.9 library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index 73cc65ebe21..5779691947e 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.1 + +No user-facing changes. + ## 0.6.0 ### Breaking Changes diff --git a/actions/ql/src/change-notes/released/0.6.1.md b/actions/ql/src/change-notes/released/0.6.1.md new file mode 100644 index 00000000000..6008e49b8e7 --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.1.md @@ -0,0 +1,3 @@ +## 0.6.1 + +No user-facing changes. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index a3f820f884d..80fb0899f64 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.0 +lastReleaseVersion: 0.6.1 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 942c10d3bcf..a8bdbd232a2 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.1-dev +version: 0.6.1 library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index c66e7d7cd55..4ad53d108e2 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 4.3.1 + +### Bug Fixes + +* Fixed an infinite loop in `semmle.code.cpp.rangeanalysis.new.RangeAnalysis` when computing ranges in very large and complex function bodies. + ## 4.3.0 ### New Features diff --git a/cpp/ql/lib/change-notes/2025-05-13-range-analysis-infinite-loop.md b/cpp/ql/lib/change-notes/released/4.3.1.md similarity index 76% rename from cpp/ql/lib/change-notes/2025-05-13-range-analysis-infinite-loop.md rename to cpp/ql/lib/change-notes/released/4.3.1.md index 7452e024d53..641abc97e45 100644 --- a/cpp/ql/lib/change-notes/2025-05-13-range-analysis-infinite-loop.md +++ b/cpp/ql/lib/change-notes/released/4.3.1.md @@ -1,4 +1,5 @@ ---- -category: fix ---- -* Fixed an infinite loop in `semmle.code.cpp.rangeanalysis.new.RangeAnalysis` when computing ranges in very large and complex function bodies. \ No newline at end of file +## 4.3.1 + +### Bug Fixes + +* Fixed an infinite loop in `semmle.code.cpp.rangeanalysis.new.RangeAnalysis` when computing ranges in very large and complex function bodies. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index c46c103a0bd..70ac3707fcd 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.3.0 +lastReleaseVersion: 4.3.1 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index b7bf768c3f2..ebc158065aa 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 4.3.1-dev +version: 4.3.1 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index daad17e0168..f9880ce5764 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.4.0 + +### Query Metadata Changes + +* The tag `external/cwe/cwe-14` has been removed from `cpp/memset-may-be-deleted` and the tag `external/cwe/cwe-014` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cpp/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cpp/count-untrusted-data-external-api-ir` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cpp/untrusted-data-to-external-api-ir` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cpp/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cpp/late-check-of-function-argument` and the tag `external/cwe/cwe-020` has been added. + ## 1.3.9 No user-facing changes. diff --git a/cpp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/cpp/ql/src/change-notes/released/1.4.0.md similarity index 95% rename from cpp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md rename to cpp/ql/src/change-notes/released/1.4.0.md index daefff65c31..59eee09b261 100644 --- a/cpp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md +++ b/cpp/ql/src/change-notes/released/1.4.0.md @@ -1,6 +1,7 @@ ---- -category: queryMetadata ---- +## 1.4.0 + +### Query Metadata Changes + * The tag `external/cwe/cwe-14` has been removed from `cpp/memset-may-be-deleted` and the tag `external/cwe/cwe-014` has been added. * The tag `external/cwe/cwe-20` has been removed from `cpp/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. * The tag `external/cwe/cwe-20` has been removed from `cpp/count-untrusted-data-external-api-ir` and the tag `external/cwe/cwe-020` has been added. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 5ce113f4464..b8b2e97d508 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.3.9 +lastReleaseVersion: 1.4.0 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index b911fdb2193..4a85abdeb48 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.3.10-dev +version: 1.4.0 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index d4414a3f145..f177ccf403e 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.40 + +No user-facing changes. + ## 1.7.39 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.40.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.40.md new file mode 100644 index 00000000000..e7dc874b123 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.40.md @@ -0,0 +1,3 @@ +## 1.7.40 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index aba29884184..47c67a0a4d3 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.39 +lastReleaseVersion: 1.7.40 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index e39ac3a9763..cce389c2963 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.40-dev +version: 1.7.40 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index d4414a3f145..f177ccf403e 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.40 + +No user-facing changes. + ## 1.7.39 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.40.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.40.md new file mode 100644 index 00000000000..e7dc874b123 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.40.md @@ -0,0 +1,3 @@ +## 1.7.40 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index aba29884184..47c67a0a4d3 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.39 +lastReleaseVersion: 1.7.40 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index bc910490374..978778f73a5 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.40-dev +version: 1.7.40 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 11a9350f81a..47503fa222e 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.1.6 + +No user-facing changes. + ## 5.1.5 ### Minor Analysis Improvements diff --git a/csharp/ql/lib/change-notes/released/5.1.6.md b/csharp/ql/lib/change-notes/released/5.1.6.md new file mode 100644 index 00000000000..74ba63bd37a --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.1.6.md @@ -0,0 +1,3 @@ +## 5.1.6 + +No user-facing changes. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index fee02733251..5ddeeed69fc 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.5 +lastReleaseVersion: 5.1.6 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 632931bcd7e..312ef102b8f 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.1.6-dev +version: 5.1.6 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index cc2b6173a25..a73c77f224f 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,20 @@ +## 1.2.0 + +### Query Metadata Changes + +* The tag `external/cwe/cwe-13` has been removed from `cs/password-in-configuration` and the tag `external/cwe/cwe-013` has been added. +* The tag `external/cwe/cwe-11` has been removed from `cs/web/debug-binary` and the tag `external/cwe/cwe-011` has been added. +* The tag `external/cwe/cwe-16` has been removed from `cs/web/large-max-request-length` and the tag `external/cwe/cwe-016` has been added. +* The tag `external/cwe/cwe-16` has been removed from `cs/web/request-validation-disabled` and the tag `external/cwe/cwe-016` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cs/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cs/serialization-check-bypass` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `cs/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-12` has been removed from `cs/web/missing-global-error-handler` and the tag `external/cwe/cwe-012` has been added. + +### Minor Analysis Improvements + +* Changed the precision of the `cs/equality-on-floats` query from medium to high. + ## 1.1.2 ### Minor Analysis Improvements diff --git a/csharp/ql/src/change-notes/2025-04-28-equality-on-floats-precision.md b/csharp/ql/src/change-notes/2025-04-28-equality-on-floats-precision.md deleted file mode 100644 index a990d236eec..00000000000 --- a/csharp/ql/src/change-notes/2025-04-28-equality-on-floats-precision.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Changed the precision of the `cs/equality-on-floats` query from medium to high. diff --git a/csharp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/csharp/ql/src/change-notes/released/1.2.0.md similarity index 87% rename from csharp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md rename to csharp/ql/src/change-notes/released/1.2.0.md index 8b84ae3f077..71c430a766a 100644 --- a/csharp/ql/src/change-notes/2025-05-01-cwe-tag-changed.md +++ b/csharp/ql/src/change-notes/released/1.2.0.md @@ -1,6 +1,6 @@ ---- -category: queryMetadata ---- +## 1.2.0 + +### Query Metadata Changes * The tag `external/cwe/cwe-13` has been removed from `cs/password-in-configuration` and the tag `external/cwe/cwe-013` has been added. * The tag `external/cwe/cwe-11` has been removed from `cs/web/debug-binary` and the tag `external/cwe/cwe-011` has been added. @@ -10,3 +10,7 @@ category: queryMetadata * The tag `external/cwe/cwe-20` has been removed from `cs/serialization-check-bypass` and the tag `external/cwe/cwe-020` has been added. * The tag `external/cwe/cwe-20` has been removed from `cs/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. * The tag `external/cwe/cwe-12` has been removed from `cs/web/missing-global-error-handler` and the tag `external/cwe/cwe-012` has been added. + +### Minor Analysis Improvements + +* Changed the precision of the `cs/equality-on-floats` query from medium to high. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 53ab127707f..75430e73d1c 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.1.2 +lastReleaseVersion: 1.2.0 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 664f83f6980..74065d9e9d3 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.1.3-dev +version: 1.2.0 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index b09bc81cffe..c3254e1caad 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.23.md b/go/ql/consistency-queries/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/go/ql/consistency-queries/codeql-pack.release.yml b/go/ql/consistency-queries/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index e09a33e17f5..029a8ee5a21 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.23-dev +version: 1.0.23 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 0bf8614edd6..9eb5ef69ebc 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.2.5 + +No user-facing changes. + ## 4.2.4 No user-facing changes. diff --git a/go/ql/lib/change-notes/released/4.2.5.md b/go/ql/lib/change-notes/released/4.2.5.md new file mode 100644 index 00000000000..a6a2063506a --- /dev/null +++ b/go/ql/lib/change-notes/released/4.2.5.md @@ -0,0 +1,3 @@ +## 4.2.5 + +No user-facing changes. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index e0c6f96cfe8..1821397188e 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.2.4 +lastReleaseVersion: 4.2.5 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 8367d8c5dee..6effb4ee589 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 4.2.5-dev +version: 4.2.5 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index b871d911dd1..a90fa7b7034 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,18 @@ +## 1.2.0 + +### Query Metadata Changes + +* The tag `external/cwe/cwe-20` has been removed from `go/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `go/incomplete-hostname-regexp` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `go/regex/missing-regexp-anchor` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `go/suspicious-character-in-regex` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `go/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `go/untrusted-data-to-unknown-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-90` has been removed from `go/ldap-injection` and the tag `external/cwe/cwe-090` has been added. +* The tag `external/cwe/cwe-74` has been removed from `go/dsn-injection` and the tag `external/cwe/cwe-074` has been added. +* The tag `external/cwe/cwe-74` has been removed from `go/dsn-injection-local` and the tag `external/cwe/cwe-074` has been added. +* The tag `external/cwe/cwe-79` has been removed from `go/html-template-escaping-passthrough` and the tag `external/cwe/cwe-079` has been added. + ## 1.1.13 No user-facing changes. diff --git a/go/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/go/ql/src/change-notes/released/1.2.0.md similarity index 97% rename from go/ql/src/change-notes/2025-05-01-cwe-tag-changed.md rename to go/ql/src/change-notes/released/1.2.0.md index d084aeeaf48..288536c1b83 100644 --- a/go/ql/src/change-notes/2025-05-01-cwe-tag-changed.md +++ b/go/ql/src/change-notes/released/1.2.0.md @@ -1,6 +1,6 @@ ---- -category: queryMetadata ---- +## 1.2.0 + +### Query Metadata Changes * The tag `external/cwe/cwe-20` has been removed from `go/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. * The tag `external/cwe/cwe-20` has been removed from `go/incomplete-hostname-regexp` and the tag `external/cwe/cwe-020` has been added. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 09a80be68d1..75430e73d1c 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.1.13 +lastReleaseVersion: 1.2.0 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 2cd2db24385..69f168f17ee 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.1.14-dev +version: 1.2.0 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index b9c10d311fd..01832478c5b 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.2.0 + +### New Features + +* Kotlin versions up to 2.2.0\ *x* are now supported. Support for the Kotlin 1.5.x series is dropped (so the minimum Kotlin version is now 1.6.0). + ## 7.1.4 No user-facing changes. diff --git a/java/ql/lib/change-notes/2025-04-28-kotlin-220.md b/java/ql/lib/change-notes/released/7.2.0.md similarity index 84% rename from java/ql/lib/change-notes/2025-04-28-kotlin-220.md rename to java/ql/lib/change-notes/released/7.2.0.md index c0c257a2f07..7714e3eeb32 100644 --- a/java/ql/lib/change-notes/2025-04-28-kotlin-220.md +++ b/java/ql/lib/change-notes/released/7.2.0.md @@ -1,4 +1,5 @@ ---- -category: feature ---- +## 7.2.0 + +### New Features + * Kotlin versions up to 2.2.0\ *x* are now supported. Support for the Kotlin 1.5.x series is dropped (so the minimum Kotlin version is now 1.6.0). diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index de842046cc3..fda9ea165fc 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.1.4 +lastReleaseVersion: 7.2.0 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index eeaa063e473..345cd2806ea 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.1.5-dev +version: 7.2.0 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 8b8ac750e68..286ed1123af 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.5.0 + +### Query Metadata Changes + +* The tag `external/cwe/cwe-20` has been removed from `java/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `java/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-93` has been removed from `java/netty-http-request-or-response-splitting` and the tag `external/cwe/cwe-093` has been added. + ## 1.4.2 ### Minor Analysis Improvements diff --git a/java/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/java/ql/src/change-notes/released/1.5.0.md similarity index 92% rename from java/ql/src/change-notes/2025-05-01-cwe-tag-changed.md rename to java/ql/src/change-notes/released/1.5.0.md index 2bbc6a6d776..d2c14f76e86 100644 --- a/java/ql/src/change-notes/2025-05-01-cwe-tag-changed.md +++ b/java/ql/src/change-notes/released/1.5.0.md @@ -1,6 +1,6 @@ ---- -category: queryMetadata ---- +## 1.5.0 + +### Query Metadata Changes * The tag `external/cwe/cwe-20` has been removed from `java/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. * The tag `external/cwe/cwe-20` has been removed from `java/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index a76cacdf799..639f80c4341 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.2 +lastReleaseVersion: 1.5.0 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index d077b42e443..eb187075e82 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.4.3-dev +version: 1.5.0 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 48488450afa..2d7716b8393 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.6.3 + +### Minor Analysis Improvements + +* Enhanced modeling of the [fastify](https://www.npmjs.com/package/fastify) framework to support the `all` route handler method. +* Improved modeling of the [`shelljs`](https://www.npmjs.com/package/shelljs) and [`async-shelljs`](https://www.npmjs.com/package/async-shelljs) libraries by adding support for the `which`, `cmd`, `asyncExec` and `env`. +* Added support for the `fastify` `addHook` method. + ## 2.6.2 No user-facing changes. diff --git a/javascript/ql/lib/change-notes/2025-04-14-fastify-addhook.md b/javascript/ql/lib/change-notes/2025-04-14-fastify-addhook.md deleted file mode 100644 index a9e754bd56e..00000000000 --- a/javascript/ql/lib/change-notes/2025-04-14-fastify-addhook.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added support for the `fastify` `addHook` method. diff --git a/javascript/ql/lib/change-notes/2025-04-30-fastify-all.md b/javascript/ql/lib/change-notes/2025-04-30-fastify-all.md deleted file mode 100644 index a49092f6ba4..00000000000 --- a/javascript/ql/lib/change-notes/2025-04-30-fastify-all.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Enhanced modeling of the [fastify](https://www.npmjs.com/package/fastify) framework to support the `all` route handler method. diff --git a/javascript/ql/lib/change-notes/2025-04-30-shelljs.md b/javascript/ql/lib/change-notes/2025-04-30-shelljs.md deleted file mode 100644 index 90a5f5a2a30..00000000000 --- a/javascript/ql/lib/change-notes/2025-04-30-shelljs.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Improved modeling of the [`shelljs`](https://www.npmjs.com/package/shelljs) and [`async-shelljs`](https://www.npmjs.com/package/async-shelljs) libraries by adding support for the `which`, `cmd`, `asyncExec` and `env`. diff --git a/javascript/ql/lib/change-notes/released/2.6.3.md b/javascript/ql/lib/change-notes/released/2.6.3.md new file mode 100644 index 00000000000..19185b6f9c6 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.3.md @@ -0,0 +1,7 @@ +## 2.6.3 + +### Minor Analysis Improvements + +* Enhanced modeling of the [fastify](https://www.npmjs.com/package/fastify) framework to support the `all` route handler method. +* Improved modeling of the [`shelljs`](https://www.npmjs.com/package/shelljs) and [`async-shelljs`](https://www.npmjs.com/package/async-shelljs) libraries by adding support for the `which`, `cmd`, `asyncExec` and `env`. +* Added support for the `fastify` `addHook` method. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index cca069203ce..e2457adb03c 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.2 +lastReleaseVersion: 2.6.3 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 36814d31928..9a212edfbd4 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.3-dev +version: 2.6.3 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index dc7c6ebc2f8..bd5cb345793 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,17 @@ +## 1.6.0 + +### Query Metadata Changes + +* The tag `external/cwe/cwe-79` has been removed from `js/disabling-electron-websecurity` and the tag `external/cwe/cwe-079` has been added. +* The tag `external/cwe/cwe-20` has been removed from `js/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `js/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `js/untrusted-data-to-external-api-more-sources` and the tag `external/cwe/cwe-020` has been added. + +### Minor Analysis Improvements + +* Type information is now propagated more precisely through `Promise.all()` calls, + leading to more resolved calls and more sources and sinks being detected. + ## 1.5.4 No user-facing changes. diff --git a/javascript/ql/src/change-notes/2025-04-30-promise-all.md b/javascript/ql/src/change-notes/2025-04-30-promise-all.md deleted file mode 100644 index a50e31ea01d..00000000000 --- a/javascript/ql/src/change-notes/2025-04-30-promise-all.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* Type information is now propagated more precisely through `Promise.all()` calls, - leading to more resolved calls and more sources and sinks being detected. diff --git a/javascript/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/javascript/ql/src/change-notes/released/1.6.0.md similarity index 71% rename from javascript/ql/src/change-notes/2025-05-01-cwe-tag-changed.md rename to javascript/ql/src/change-notes/released/1.6.0.md index 01e53adf5f5..b24554c85c9 100644 --- a/javascript/ql/src/change-notes/2025-05-01-cwe-tag-changed.md +++ b/javascript/ql/src/change-notes/released/1.6.0.md @@ -1,8 +1,13 @@ ---- -category: queryMetadata ---- +## 1.6.0 + +### Query Metadata Changes * The tag `external/cwe/cwe-79` has been removed from `js/disabling-electron-websecurity` and the tag `external/cwe/cwe-079` has been added. * The tag `external/cwe/cwe-20` has been removed from `js/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. * The tag `external/cwe/cwe-20` has been removed from `js/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. * The tag `external/cwe/cwe-20` has been removed from `js/untrusted-data-to-external-api-more-sources` and the tag `external/cwe/cwe-020` has been added. + +### Minor Analysis Improvements + +* Type information is now propagated more precisely through `Promise.all()` calls, + leading to more resolved calls and more sources and sinks being detected. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index c216828ee1c..c4f0b07d533 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.4 +lastReleaseVersion: 1.6.0 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 288baf974d3..24a0a1ab109 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 1.5.5-dev +version: 1.6.0 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index b7891e5bb95..d65ced8b4c7 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.23.md b/misc/suite-helpers/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 06c89edc772..93018dd3c94 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.23-dev +version: 1.0.23 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 3d8ab0011ca..33813cf94e4 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,10 @@ +## 4.0.7 + +### Minor Analysis Improvements + +* Added modeling for the `hdbcli` PyPI package as a database library implementing PEP 249. +* Added header write model for `send_header` in `http.server`. + ## 4.0.6 No user-facing changes. diff --git a/python/ql/lib/change-notes/2025-04-30-model-send-header.md b/python/ql/lib/change-notes/2025-04-30-model-send-header.md deleted file mode 100644 index 032e984bdf3..00000000000 --- a/python/ql/lib/change-notes/2025-04-30-model-send-header.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added header write model for `send_header` in `http.server`. \ No newline at end of file diff --git a/python/ql/lib/change-notes/2025-05-01-hdbcli.md b/python/ql/lib/change-notes/2025-05-01-hdbcli.md deleted file mode 100644 index 5b9afe4618b..00000000000 --- a/python/ql/lib/change-notes/2025-05-01-hdbcli.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added modeling for the `hdbcli` PyPI package as a database library implementing PEP 249. diff --git a/python/ql/lib/change-notes/released/4.0.7.md b/python/ql/lib/change-notes/released/4.0.7.md new file mode 100644 index 00000000000..5f5120e027e --- /dev/null +++ b/python/ql/lib/change-notes/released/4.0.7.md @@ -0,0 +1,6 @@ +## 4.0.7 + +### Minor Analysis Improvements + +* Added modeling for the `hdbcli` PyPI package as a database library implementing PEP 249. +* Added header write model for `send_header` in `http.server`. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 3b3376d94e4..bf65f0dc10b 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.0.6 +lastReleaseVersion: 4.0.7 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 78eec8158e8..85ce51edc48 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 4.0.7-dev +version: 4.0.7 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index aa0908119da..c449304f0da 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.5.0 + +### Query Metadata Changes + +* The tags `security/cwe/cwe-94` and `security/cwe/cwe-95` have been removed from `py/use-of-input` and the tags `external/cwe/cwe-094` and `external/cwe/cwe-095` have been added. +* The tag `external/cwe/cwe-20` has been removed from `py/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `py/untrusted-data-to-external-api` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `py/cookie-injection` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-20` has been removed from `py/incomplete-url-substring-sanitization` and the tag `external/cwe/cwe-020` has been added. +* The tag `external/cwe/cwe-94` has been removed from `py/js2py-rce` and the tag `external/cwe/cwe-094` has been added. + ## 1.4.8 No user-facing changes. diff --git a/python/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/python/ql/src/change-notes/released/1.5.0.md similarity index 95% rename from python/ql/src/change-notes/2025-05-01-cwe-tag-changed.md rename to python/ql/src/change-notes/released/1.5.0.md index 0267e9a3fbb..e9fa8ad818d 100644 --- a/python/ql/src/change-notes/2025-05-01-cwe-tag-changed.md +++ b/python/ql/src/change-notes/released/1.5.0.md @@ -1,6 +1,6 @@ ---- -category: queryMetadata ---- +## 1.5.0 + +### Query Metadata Changes * The tags `security/cwe/cwe-94` and `security/cwe/cwe-95` have been removed from `py/use-of-input` and the tags `external/cwe/cwe-094` and `external/cwe/cwe-095` have been added. * The tag `external/cwe/cwe-20` has been removed from `py/count-untrusted-data-external-api` and the tag `external/cwe/cwe-020` has been added. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 16e6425ae7e..639f80c4341 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.8 +lastReleaseVersion: 1.5.0 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index a1c976dfdfa..24b80a87e2e 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.4.9-dev +version: 1.5.0 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 43ab8e8fdac..f9858668d93 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.1.6 + +No user-facing changes. + ## 4.1.5 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/released/4.1.6.md b/ruby/ql/lib/change-notes/released/4.1.6.md new file mode 100644 index 00000000000..142f6a39b07 --- /dev/null +++ b/ruby/ql/lib/change-notes/released/4.1.6.md @@ -0,0 +1,3 @@ +## 4.1.6 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 3b4af49b03c..8b32e3bae01 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.1.5 +lastReleaseVersion: 4.1.6 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index bb7cfb00c9b..571ca22b15f 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 4.1.6-dev +version: 4.1.6 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index a44233266fb..0a3ce10b979 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 1.3.0 + +### Query Metadata Changes + +* The precision of `rb/useless-assignment-to-local` has been adjusted from `medium` to `high`. +* The tag `external/cwe/cwe-94` has been removed from `rb/server-side-template-injection` and the tag `external/cwe/cwe-094` has been added. + ## 1.2.1 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2025-05-12-rb-useless-assignment-to-local-precision-high.md b/ruby/ql/src/change-notes/2025-05-12-rb-useless-assignment-to-local-precision-high.md deleted file mode 100644 index c62510ba5ba..00000000000 --- a/ruby/ql/src/change-notes/2025-05-12-rb-useless-assignment-to-local-precision-high.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: queryMetadata ---- - -* The precision of `rb/useless-assignment-to-local` has been adjusted from `medium` to `high`. diff --git a/ruby/ql/src/change-notes/2025-05-01-cwe-tag-changed.md b/ruby/ql/src/change-notes/released/1.3.0.md similarity index 51% rename from ruby/ql/src/change-notes/2025-05-01-cwe-tag-changed.md rename to ruby/ql/src/change-notes/released/1.3.0.md index c8fd8d62686..5b2538735d0 100644 --- a/ruby/ql/src/change-notes/2025-05-01-cwe-tag-changed.md +++ b/ruby/ql/src/change-notes/released/1.3.0.md @@ -1,5 +1,6 @@ ---- -category: queryMetadata ---- +## 1.3.0 +### Query Metadata Changes + +* The precision of `rb/useless-assignment-to-local` has been adjusted from `medium` to `high`. * The tag `external/cwe/cwe-94` has been removed from `rb/server-side-template-injection` and the tag `external/cwe/cwe-094` has been added. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 73dd403938c..ec16350ed6f 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.2.1 +lastReleaseVersion: 1.3.0 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index b2f8b36fc8a..c7a15040863 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.2.2-dev +version: 1.3.0 groups: - ruby - queries diff --git a/rust/ql/lib/CHANGELOG.md b/rust/ql/lib/CHANGELOG.md index 6c0dda8457a..3000a1098cc 100644 --- a/rust/ql/lib/CHANGELOG.md +++ b/rust/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.8 + +No user-facing changes. + ## 0.1.7 No user-facing changes. diff --git a/rust/ql/lib/change-notes/released/0.1.8.md b/rust/ql/lib/change-notes/released/0.1.8.md new file mode 100644 index 00000000000..5b20b52baf1 --- /dev/null +++ b/rust/ql/lib/change-notes/released/0.1.8.md @@ -0,0 +1,3 @@ +## 0.1.8 + +No user-facing changes. diff --git a/rust/ql/lib/codeql-pack.release.yml b/rust/ql/lib/codeql-pack.release.yml index 949d4c64c66..3136ea4a1cc 100644 --- a/rust/ql/lib/codeql-pack.release.yml +++ b/rust/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.7 +lastReleaseVersion: 0.1.8 diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 9b7b15b43fa..7660d75b460 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.1.8-dev +version: 0.1.8 groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/CHANGELOG.md b/rust/ql/src/CHANGELOG.md index cc9fb2bcf68..a7c23fbfd30 100644 --- a/rust/ql/src/CHANGELOG.md +++ b/rust/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.8 + +No user-facing changes. + ## 0.1.7 ### Minor Analysis Improvements diff --git a/rust/ql/src/change-notes/released/0.1.8.md b/rust/ql/src/change-notes/released/0.1.8.md new file mode 100644 index 00000000000..5b20b52baf1 --- /dev/null +++ b/rust/ql/src/change-notes/released/0.1.8.md @@ -0,0 +1,3 @@ +## 0.1.8 + +No user-facing changes. diff --git a/rust/ql/src/codeql-pack.release.yml b/rust/ql/src/codeql-pack.release.yml index 949d4c64c66..3136ea4a1cc 100644 --- a/rust/ql/src/codeql-pack.release.yml +++ b/rust/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.7 +lastReleaseVersion: 0.1.8 diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index b1a919d02eb..75845fd10e1 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.8-dev +version: 0.1.8 groups: - rust - queries diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index d69921efe23..1aab9a2eeba 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.7 + +No user-facing changes. + ## 2.0.6 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.7.md b/shared/controlflow/change-notes/released/2.0.7.md new file mode 100644 index 00000000000..4eb1353458c --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.7.md @@ -0,0 +1,3 @@ +## 2.0.7 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index fbbc03c7642..08d5e959449 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.6 +lastReleaseVersion: 2.0.7 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 70edae6befd..7a8528bcf06 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.7-dev +version: 2.0.7 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index e07fdc75a97..36d289f7f04 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.7 + +No user-facing changes. + ## 2.0.6 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.0.7.md b/shared/dataflow/change-notes/released/2.0.7.md new file mode 100644 index 00000000000..4eb1353458c --- /dev/null +++ b/shared/dataflow/change-notes/released/2.0.7.md @@ -0,0 +1,3 @@ +## 2.0.7 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index fbbc03c7642..08d5e959449 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.6 +lastReleaseVersion: 2.0.7 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index de4dfb3dfe0..30e12f19456 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.7-dev +version: 2.0.7 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index cb5108afd2c..5efa3ce9aec 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.23.md b/shared/mad/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/shared/mad/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index d1e4d3fd45e..96556fa674b 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.23-dev +version: 1.0.23 groups: shared library: true dependencies: diff --git a/shared/quantum/CHANGELOG.md b/shared/quantum/CHANGELOG.md new file mode 100644 index 00000000000..59b60bad0f3 --- /dev/null +++ b/shared/quantum/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.0.1 + +No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.1.md b/shared/quantum/change-notes/released/0.0.1.md new file mode 100644 index 00000000000..59b60bad0f3 --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.1.md @@ -0,0 +1,3 @@ +## 0.0.1 + +No user-facing changes. diff --git a/shared/quantum/codeql-pack.release.yml b/shared/quantum/codeql-pack.release.yml new file mode 100644 index 00000000000..c6933410b71 --- /dev/null +++ b/shared/quantum/codeql-pack.release.yml @@ -0,0 +1,2 @@ +--- +lastReleaseVersion: 0.0.1 diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 8e34c19c112..87daa7dc97d 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.0-dev +version: 0.0.1 groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index ed8f8e1eab3..75bb80c6db7 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.23.md b/shared/rangeanalysis/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index ccb83d38929..e3025d78522 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.23-dev +version: 1.0.23 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index 49ac9b18d4b..59bbd8cf93b 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.23.md b/shared/regex/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/shared/regex/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 763f7edc743..02983bb3ce5 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.23-dev +version: 1.0.23 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 58ac1a04d04..509445eb6b1 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.1.2 + +No user-facing changes. + ## 1.1.1 No user-facing changes. diff --git a/shared/ssa/change-notes/released/1.1.2.md b/shared/ssa/change-notes/released/1.1.2.md new file mode 100644 index 00000000000..ce8d2c1a4f3 --- /dev/null +++ b/shared/ssa/change-notes/released/1.1.2.md @@ -0,0 +1,3 @@ +## 1.1.2 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 1a19084be3f..53ab127707f 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.1.1 +lastReleaseVersion: 1.1.2 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 2010bbe1e12..f6a6ce66075 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 1.1.2-dev +version: 1.1.2 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index b09bc81cffe..c3254e1caad 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.23.md b/shared/threat-models/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 7b0cad6d5f9..3231707ef49 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.23-dev +version: 1.0.23 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 1da44a270de..247d9be86a5 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.23.md b/shared/tutorial/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 3ae10d7b4a1..4102bfeb2f1 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.23-dev +version: 1.0.23 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index 3b08c24e221..cad6ded5224 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.23.md b/shared/typeflow/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index 85f2c86741d..485648dde5b 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.23-dev +version: 1.0.23 groups: shared library: true dependencies: diff --git a/shared/typeinference/CHANGELOG.md b/shared/typeinference/CHANGELOG.md index d7831747b12..4ffbff1e0c4 100644 --- a/shared/typeinference/CHANGELOG.md +++ b/shared/typeinference/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.4 + +No user-facing changes. + ## 0.0.3 No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.4.md b/shared/typeinference/change-notes/released/0.0.4.md new file mode 100644 index 00000000000..eefe286a4d8 --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.4.md @@ -0,0 +1,3 @@ +## 0.0.4 + +No user-facing changes. diff --git a/shared/typeinference/codeql-pack.release.yml b/shared/typeinference/codeql-pack.release.yml index a24b693d1e7..ec411a674bc 100644 --- a/shared/typeinference/codeql-pack.release.yml +++ b/shared/typeinference/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.3 +lastReleaseVersion: 0.0.4 diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index d949e23fe0f..4c3dc975ca2 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.4-dev +version: 0.0.4 groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 507a195aff8..16294923597 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.7 + +No user-facing changes. + ## 2.0.6 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.7.md b/shared/typetracking/change-notes/released/2.0.7.md new file mode 100644 index 00000000000..4eb1353458c --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.7.md @@ -0,0 +1,3 @@ +## 2.0.7 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index fbbc03c7642..08d5e959449 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.6 +lastReleaseVersion: 2.0.7 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 924fd143829..afcebca713b 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.7-dev +version: 2.0.7 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 9500437aa07..c7ff1a773da 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.23.md b/shared/typos/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/shared/typos/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 21912e1efdf..15579110177 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.23-dev +version: 1.0.23 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 8a71bf4f263..f6f7838bc2e 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.10 + +No user-facing changes. + ## 2.0.9 No user-facing changes. diff --git a/shared/util/change-notes/released/2.0.10.md b/shared/util/change-notes/released/2.0.10.md new file mode 100644 index 00000000000..37310f107aa --- /dev/null +++ b/shared/util/change-notes/released/2.0.10.md @@ -0,0 +1,3 @@ +## 2.0.10 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index ce305265e33..96ea0220a69 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.9 +lastReleaseVersion: 2.0.10 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index e14572c562a..6187f53a9c5 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.10-dev +version: 2.0.10 groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index 95a60e498bf..bdb83dc8830 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.23.md b/shared/xml/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/shared/xml/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index bfac4d91841..2555d030028 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.23-dev +version: 1.0.23 groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index edddaed1fdd..28ca258e0d5 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.23 + +No user-facing changes. + ## 1.0.22 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.23.md b/shared/yaml/change-notes/released/1.0.23.md new file mode 100644 index 00000000000..8480f179393 --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.23.md @@ -0,0 +1,3 @@ +## 1.0.23 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index 27d922b5ea6..0f96ba41d16 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.22 +lastReleaseVersion: 1.0.23 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 7aed9bae5e9..f1cb000d740 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.23-dev +version: 1.0.23 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index 7409680a2e1..36f0bc8e5fd 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 4.3.0 + +### New Features + +* Added AST nodes `UnsafeCastExpr`, `TypeValueExpr`, `IntegerType`, and `BuiltinFixedArrayType` that correspond to new nodes added by Swift 6.1. + ## 4.2.0 ### Major Analysis Improvements diff --git a/swift/ql/lib/change-notes/2025-05-02-new-entities.md b/swift/ql/lib/change-notes/released/4.3.0.md similarity index 83% rename from swift/ql/lib/change-notes/2025-05-02-new-entities.md rename to swift/ql/lib/change-notes/released/4.3.0.md index 55472b08ff8..499b7c8e9a3 100644 --- a/swift/ql/lib/change-notes/2025-05-02-new-entities.md +++ b/swift/ql/lib/change-notes/released/4.3.0.md @@ -1,4 +1,5 @@ ---- -category: feature ---- +## 4.3.0 + +### New Features + * Added AST nodes `UnsafeCastExpr`, `TypeValueExpr`, `IntegerType`, and `BuiltinFixedArrayType` that correspond to new nodes added by Swift 6.1. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 9fc6933b429..c46c103a0bd 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.2.0 +lastReleaseVersion: 4.3.0 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 667ce5588c8..baa74b0a388 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 4.2.1-dev +version: 4.3.0 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index 993a2252ae4..7910cf095ce 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.1.3 + +No user-facing changes. + ## 1.1.2 No user-facing changes. diff --git a/swift/ql/src/change-notes/released/1.1.3.md b/swift/ql/src/change-notes/released/1.1.3.md new file mode 100644 index 00000000000..e8f1701bd62 --- /dev/null +++ b/swift/ql/src/change-notes/released/1.1.3.md @@ -0,0 +1,3 @@ +## 1.1.3 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 53ab127707f..35e710ab1bf 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.1.2 +lastReleaseVersion: 1.1.3 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 482affb8e16..513b7054ed1 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.1.3-dev +version: 1.1.3 groups: - swift - queries From 5f9dd75d7d3e33766f1cbf8d981d8b6296221c67 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 13 May 2025 21:49:43 +0000 Subject: [PATCH 395/656] Post-release preparation for codeql-cli-2.21.3 --- actions/ql/lib/qlpack.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/controlflow/qlpack.yml | 2 +- shared/dataflow/qlpack.yml | 2 +- shared/mad/qlpack.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/qlpack.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/threat-models/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 2 +- shared/xml/qlpack.yml | 2 +- shared/yaml/qlpack.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 40 files changed, 40 insertions(+), 40 deletions(-) diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 78262551e5b..6e9a94292d0 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.9 +version: 0.4.10-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index a8bdbd232a2..49f4f30f7da 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.1 +version: 0.6.2-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index ebc158065aa..e15623e2ddb 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 4.3.1 +version: 4.3.2-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 4a85abdeb48..07c7cb32249 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.4.0 +version: 1.4.1-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index cce389c2963..6c3519f4785 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.40 +version: 1.7.41-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 978778f73a5..1cfbcb1f030 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.40 +version: 1.7.41-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 312ef102b8f..3cfd3861377 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.1.6 +version: 5.1.7-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 74065d9e9d3..7f4043b2c07 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.2.0 +version: 1.2.1-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 029a8ee5a21..7c8b4515264 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.23 +version: 1.0.24-dev groups: - go - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 6effb4ee589..3451f49c2dc 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 4.2.5 +version: 4.2.6-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 69f168f17ee..032ac335902 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.2.0 +version: 1.2.1-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 345cd2806ea..d34620678ba 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.2.0 +version: 7.2.1-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index eb187075e82..be53e6c8c0b 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.5.0 +version: 1.5.1-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 9a212edfbd4..87fb92c5baf 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.3 +version: 2.6.4-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 24a0a1ab109..515ea8a3abd 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 1.6.0 +version: 1.6.1-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 93018dd3c94..fa44a270665 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.23 +version: 1.0.24-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 85ce51edc48..c98ee1e15d4 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 4.0.7 +version: 4.0.8-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 24b80a87e2e..6e181439ee0 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.5.0 +version: 1.5.1-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 571ca22b15f..2548f8c1074 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 4.1.6 +version: 4.1.7-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index c7a15040863..ed987a47454 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.3.0 +version: 1.3.1-dev groups: - ruby - queries diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 7660d75b460..ce213d8ebba 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.1.8 +version: 0.1.9-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 75845fd10e1..3ce216f0a2d 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.8 +version: 0.1.9-dev groups: - rust - queries diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 7a8528bcf06..83f9b6f67a4 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.7 +version: 2.0.8-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 30e12f19456..3c70d1d8c2d 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.7 +version: 2.0.8-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 96556fa674b..8cbab3cbcd6 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.23 +version: 1.0.24-dev groups: shared library: true dependencies: diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 87daa7dc97d..4abda024832 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.1 +version: 0.0.2-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index e3025d78522..d551bb79db4 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.23 +version: 1.0.24-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 02983bb3ce5..41c9b1ba043 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.23 +version: 1.0.24-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index f6a6ce66075..fe5fa023a96 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 1.1.2 +version: 1.1.3-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 3231707ef49..a86c29ceba3 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.23 +version: 1.0.24-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 4102bfeb2f1..a0aa1a8b3ae 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.23 +version: 1.0.24-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index 485648dde5b..123e7a98891 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.23 +version: 1.0.24-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 4c3dc975ca2..bbfe2ad6615 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.4 +version: 0.0.5-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index afcebca713b..eef6fe52e66 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.7 +version: 2.0.8-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 15579110177..93833e02e66 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.23 +version: 1.0.24-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 6187f53a9c5..e4cfbd97b6e 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.10 +version: 2.0.11-dev groups: shared library: true dependencies: null diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 2555d030028..73910c05517 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.23 +version: 1.0.24-dev groups: shared library: true dependencies: diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index f1cb000d740..dabb1a33505 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.23 +version: 1.0.24-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index baa74b0a388..ebc4b83f267 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 4.3.0 +version: 4.3.1-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 513b7054ed1..7f727988f7c 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.1.3 +version: 1.1.4-dev groups: - swift - queries From f5438390d5b025d8ab0fce5c3b2d342bd8b6f2dc Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 14 May 2025 10:01:44 +0200 Subject: [PATCH 396/656] Rust: enhance macro expansion testing --- rust/ql/integration-tests/.gitignore | 1 + .../macro-expansion/Cargo.lock | 53 ++++++ .../macro-expansion/Cargo.toml | 11 ++ .../macro-expansion/diagnostics.expected | 47 ++++++ .../macro-expansion/macros/Cargo.toml | 11 ++ .../macro-expansion/macros/src/lib.rs | 18 ++ .../macro-expansion/source_archive.expected | 2 + .../macro-expansion/src/lib.rs | 11 ++ .../macro-expansion/test.expected | 11 ++ .../integration-tests/macro-expansion/test.ql | 5 + .../macro-expansion/test_macro_expansion.py | 2 + .../macro_expansion/PrintAst.expected | 155 ++++++++++++++++++ .../macro_expansion/PrintAst.qlref | 1 + .../macro_expansion/macro_expansion.rs | 6 + rust/ql/test/utils/PrintAst.expected | 0 rust/ql/test/utils/PrintAst.ql | 15 ++ 16 files changed, 349 insertions(+) create mode 100644 rust/ql/integration-tests/.gitignore create mode 100644 rust/ql/integration-tests/macro-expansion/Cargo.lock create mode 100644 rust/ql/integration-tests/macro-expansion/Cargo.toml create mode 100644 rust/ql/integration-tests/macro-expansion/diagnostics.expected create mode 100644 rust/ql/integration-tests/macro-expansion/macros/Cargo.toml create mode 100644 rust/ql/integration-tests/macro-expansion/macros/src/lib.rs create mode 100644 rust/ql/integration-tests/macro-expansion/source_archive.expected create mode 100644 rust/ql/integration-tests/macro-expansion/src/lib.rs create mode 100644 rust/ql/integration-tests/macro-expansion/test.expected create mode 100644 rust/ql/integration-tests/macro-expansion/test.ql create mode 100644 rust/ql/integration-tests/macro-expansion/test_macro_expansion.py create mode 100644 rust/ql/test/extractor-tests/macro_expansion/PrintAst.expected create mode 100644 rust/ql/test/extractor-tests/macro_expansion/PrintAst.qlref create mode 100644 rust/ql/test/utils/PrintAst.expected create mode 100644 rust/ql/test/utils/PrintAst.ql diff --git a/rust/ql/integration-tests/.gitignore b/rust/ql/integration-tests/.gitignore new file mode 100644 index 00000000000..2f7896d1d13 --- /dev/null +++ b/rust/ql/integration-tests/.gitignore @@ -0,0 +1 @@ +target/ diff --git a/rust/ql/integration-tests/macro-expansion/Cargo.lock b/rust/ql/integration-tests/macro-expansion/Cargo.lock new file mode 100644 index 00000000000..976dc5e7def --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/Cargo.lock @@ -0,0 +1,53 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "macro_expansion" +version = "0.1.0" +dependencies = [ + "macros", +] + +[[package]] +name = "macros" +version = "0.1.0" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "syn" +version = "2.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" diff --git a/rust/ql/integration-tests/macro-expansion/Cargo.toml b/rust/ql/integration-tests/macro-expansion/Cargo.toml new file mode 100644 index 00000000000..b7ce204e07f --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] +members = ["macros"] +resolver = "2" + +[package] +name = "macro_expansion" +version = "0.1.0" +edition = "2024" + +[dependencies] +macros = { path = "macros" } diff --git a/rust/ql/integration-tests/macro-expansion/diagnostics.expected b/rust/ql/integration-tests/macro-expansion/diagnostics.expected new file mode 100644 index 00000000000..74e11aa9f2b --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/diagnostics.expected @@ -0,0 +1,47 @@ +{ + "attributes": { + "durations": { + "crateGraph": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, + "extract": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, + "findManifests": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, + "loadManifest": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, + "loadSource": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, + "parse": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, + "total": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + } + }, + "numberOfFiles": 3, + "numberOfManifests": 1 + }, + "severity": "note", + "source": { + "extractorName": "rust", + "id": "rust/extractor/telemetry", + "name": "telemetry" + }, + "visibility": { + "cliSummaryTable": false, + "statusPage": false, + "telemetry": true + } +} diff --git a/rust/ql/integration-tests/macro-expansion/macros/Cargo.toml b/rust/ql/integration-tests/macro-expansion/macros/Cargo.toml new file mode 100644 index 00000000000..a503d3fb903 --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/macros/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "macros" +version = "0.1.0" +edition = "2024" + +[lib] +proc-macro = true + +[dependencies] +quote = "1.0.40" +syn = { version = "2.0.100", features = ["full"] } diff --git a/rust/ql/integration-tests/macro-expansion/macros/src/lib.rs b/rust/ql/integration-tests/macro-expansion/macros/src/lib.rs new file mode 100644 index 00000000000..8d1f3be0e4e --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/macros/src/lib.rs @@ -0,0 +1,18 @@ +use proc_macro::TokenStream; +use quote::quote; + +#[proc_macro_attribute] +pub fn repeat(attr: TokenStream, item: TokenStream) -> TokenStream { + let number = syn::parse_macro_input!(attr as syn::LitInt).base10_parse::().unwrap(); + let ast = syn::parse_macro_input!(item as syn::ItemFn); + let items = (0..number) + .map(|i| { + let mut new_ast = ast.clone(); + new_ast.sig.ident = syn::Ident::new(&format!("{}_{}", ast.sig.ident, i), ast.sig.ident.span()); + new_ast + }) + .collect::>(); + quote! { + #(#items)* + }.into() +} diff --git a/rust/ql/integration-tests/macro-expansion/source_archive.expected b/rust/ql/integration-tests/macro-expansion/source_archive.expected new file mode 100644 index 00000000000..ec61af6032b --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/source_archive.expected @@ -0,0 +1,2 @@ +macros/src/lib.rs +src/lib.rs diff --git a/rust/ql/integration-tests/macro-expansion/src/lib.rs b/rust/ql/integration-tests/macro-expansion/src/lib.rs new file mode 100644 index 00000000000..6d2d6037e5d --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/src/lib.rs @@ -0,0 +1,11 @@ +use macros::repeat; + +#[repeat(3)] +fn foo() {} + +#[repeat(2)] +#[repeat(3)] +fn bar() {} + +#[repeat(0)] +fn baz() {} diff --git a/rust/ql/integration-tests/macro-expansion/test.expected b/rust/ql/integration-tests/macro-expansion/test.expected new file mode 100644 index 00000000000..1247930bd22 --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/test.expected @@ -0,0 +1,11 @@ +| src/lib.rs:3:1:4:11 | fn foo | 0 | src/lib.rs:4:1:4:10 | fn foo_0 | +| src/lib.rs:3:1:4:11 | fn foo | 1 | src/lib.rs:4:1:4:10 | fn foo_1 | +| src/lib.rs:3:1:4:11 | fn foo | 2 | src/lib.rs:4:1:4:10 | fn foo_2 | +| src/lib.rs:6:1:8:11 | fn bar | 0 | src/lib.rs:7:1:8:10 | fn bar_0 | +| src/lib.rs:6:1:8:11 | fn bar | 1 | src/lib.rs:7:1:8:10 | fn bar_1 | +| src/lib.rs:7:1:8:10 | fn bar_0 | 0 | src/lib.rs:8:1:8:10 | fn bar_0_0 | +| src/lib.rs:7:1:8:10 | fn bar_0 | 1 | src/lib.rs:8:1:8:10 | fn bar_0_1 | +| src/lib.rs:7:1:8:10 | fn bar_0 | 2 | src/lib.rs:8:1:8:10 | fn bar_0_2 | +| src/lib.rs:7:1:8:10 | fn bar_1 | 0 | src/lib.rs:8:1:8:10 | fn bar_1_0 | +| src/lib.rs:7:1:8:10 | fn bar_1 | 1 | src/lib.rs:8:1:8:10 | fn bar_1_1 | +| src/lib.rs:7:1:8:10 | fn bar_1 | 2 | src/lib.rs:8:1:8:10 | fn bar_1_2 | diff --git a/rust/ql/integration-tests/macro-expansion/test.ql b/rust/ql/integration-tests/macro-expansion/test.ql new file mode 100644 index 00000000000..f3f49cbf5c7 --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/test.ql @@ -0,0 +1,5 @@ +import rust + +from Item i, MacroItems items, int index, Item expanded +where i.getAttributeMacroExpansion() = items and items.getItem(index) = expanded +select i, index, expanded diff --git a/rust/ql/integration-tests/macro-expansion/test_macro_expansion.py b/rust/ql/integration-tests/macro-expansion/test_macro_expansion.py new file mode 100644 index 00000000000..0d20cc2e27d --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/test_macro_expansion.py @@ -0,0 +1,2 @@ +def test_macro_expansion(codeql, rust, check_source_archive, rust_check_diagnostics): + codeql.database.create() diff --git a/rust/ql/test/extractor-tests/macro_expansion/PrintAst.expected b/rust/ql/test/extractor-tests/macro_expansion/PrintAst.expected new file mode 100644 index 00000000000..43410dfcd8e --- /dev/null +++ b/rust/ql/test/extractor-tests/macro_expansion/PrintAst.expected @@ -0,0 +1,155 @@ +lib.rs: +# 1| [SourceFile] SourceFile +# 1| getItem(0): [Module] mod macro_expansion +# 1| getName(): [Name] macro_expansion +macro_expansion.rs: +# 1| [SourceFile] SourceFile +# 1| getItem(0): [Function] fn foo +# 2| getAttributeMacroExpansion(): [MacroItems] MacroItems +# 2| getItem(0): [Function] fn foo +# 1| getParamList(): [ParamList] ParamList +# 1| getAbi(): [Abi] Abi +# 2| getBody(): [BlockExpr] { ... } +# 2| getStmtList(): [StmtList] StmtList +# 2| getName(): [Name] foo +# 2| getItem(1): [Static] Static +# 1| getAttr(0): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] used +# 1| getSegment(): [PathSegment] used +# 1| getIdentifier(): [NameRef] used +# 1| getAttr(1): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] allow +# 1| getSegment(): [PathSegment] allow +# 1| getIdentifier(): [NameRef] allow +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(2): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] doc +# 1| getSegment(): [PathSegment] doc +# 1| getIdentifier(): [NameRef] doc +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(3): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] cfg_attr +# 1| getSegment(): [PathSegment] cfg_attr +# 1| getIdentifier(): [NameRef] cfg_attr +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(4): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] cfg_attr +# 1| getSegment(): [PathSegment] cfg_attr +# 1| getIdentifier(): [NameRef] cfg_attr +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(5): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] cfg_attr +# 1| getSegment(): [PathSegment] cfg_attr +# 1| getIdentifier(): [NameRef] cfg_attr +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(6): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] cfg_attr +# 1| getSegment(): [PathSegment] cfg_attr +# 1| getIdentifier(): [NameRef] cfg_attr +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(7): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] cfg_attr +# 1| getSegment(): [PathSegment] cfg_attr +# 1| getIdentifier(): [NameRef] cfg_attr +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(8): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] cfg_attr +# 1| getSegment(): [PathSegment] cfg_attr +# 1| getIdentifier(): [NameRef] cfg_attr +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(9): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] cfg_attr +# 1| getSegment(): [PathSegment] cfg_attr +# 1| getIdentifier(): [NameRef] cfg_attr +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(10): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] cfg_attr +# 1| getSegment(): [PathSegment] cfg_attr +# 1| getIdentifier(): [NameRef] cfg_attr +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(11): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] cfg_attr +# 1| getSegment(): [PathSegment] cfg_attr +# 1| getIdentifier(): [NameRef] cfg_attr +# 1| getTokenTree(): [TokenTree] TokenTree +# 2| getBody(): [BlockExpr] { ... } +# 2| getStmtList(): [StmtList] StmtList +# 2| getStatement(0): [Function] fn foo___rust_ctor___ctor +# 1| getParamList(): [ParamList] ParamList +# 1| getAttr(0): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] allow +# 1| getSegment(): [PathSegment] allow +# 1| getIdentifier(): [NameRef] allow +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAttr(1): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] cfg_attr +# 1| getSegment(): [PathSegment] cfg_attr +# 1| getIdentifier(): [NameRef] cfg_attr +# 1| getTokenTree(): [TokenTree] TokenTree +# 1| getAbi(): [Abi] Abi +# 2| getBody(): [BlockExpr] { ... } +# 2| getStmtList(): [StmtList] StmtList +# 2| getStatement(0): [ExprStmt] ExprStmt +# 2| getExpr(): [CallExpr] foo(...) +# 1| getArgList(): [ArgList] ArgList +# 2| getFunction(): [PathExpr] foo +# 2| getPath(): [Path] foo +# 2| getSegment(): [PathSegment] foo +# 2| getIdentifier(): [NameRef] foo +# 1| getTailExpr(): [LiteralExpr] 0 +# 1| getName(): [Name] foo___rust_ctor___ctor +# 1| getRetType(): [RetTypeRepr] RetTypeRepr +# 1| getTypeRepr(): [PathTypeRepr] usize +# 1| getPath(): [Path] usize +# 1| getSegment(): [PathSegment] usize +# 1| getIdentifier(): [NameRef] usize +# 1| getTailExpr(): [PathExpr] foo___rust_ctor___ctor +# 1| getPath(): [Path] foo___rust_ctor___ctor +# 1| getSegment(): [PathSegment] foo___rust_ctor___ctor +# 1| getIdentifier(): [NameRef] foo___rust_ctor___ctor +# 1| getName(): [Name] foo___rust_ctor___ctor +# 1| getTypeRepr(): [FnPtrTypeRepr] FnPtrTypeRepr +# 1| getAbi(): [Abi] Abi +# 1| getParamList(): [ParamList] ParamList +# 1| getRetType(): [RetTypeRepr] RetTypeRepr +# 1| getTypeRepr(): [PathTypeRepr] usize +# 1| getPath(): [Path] usize +# 1| getSegment(): [PathSegment] usize +# 1| getIdentifier(): [NameRef] usize +# 2| getParamList(): [ParamList] ParamList +# 1| getAttr(0): [Attr] Attr +# 1| getMeta(): [Meta] Meta +# 1| getPath(): [Path] ...::ctor +# 1| getQualifier(): [Path] ctor +# 1| getSegment(): [PathSegment] ctor +# 1| getIdentifier(): [NameRef] ctor +# 1| getSegment(): [PathSegment] ctor +# 1| getIdentifier(): [NameRef] ctor +# 2| getBody(): [BlockExpr] { ... } +# 2| getStmtList(): [StmtList] StmtList +# 2| getName(): [Name] foo +# 4| getItem(1): [Function] fn bar +# 5| getParamList(): [ParamList] ParamList +# 4| getAttr(0): [Attr] Attr +# 4| getMeta(): [Meta] Meta +# 4| getPath(): [Path] cfg +# 4| getSegment(): [PathSegment] cfg +# 4| getIdentifier(): [NameRef] cfg +# 4| getTokenTree(): [TokenTree] TokenTree +# 5| getBody(): [BlockExpr] { ... } +# 5| getStmtList(): [StmtList] StmtList +# 5| getName(): [Name] bar diff --git a/rust/ql/test/extractor-tests/macro_expansion/PrintAst.qlref b/rust/ql/test/extractor-tests/macro_expansion/PrintAst.qlref new file mode 100644 index 00000000000..ee3c14c56f1 --- /dev/null +++ b/rust/ql/test/extractor-tests/macro_expansion/PrintAst.qlref @@ -0,0 +1 @@ +utils/PrintAst.ql diff --git a/rust/ql/test/extractor-tests/macro_expansion/macro_expansion.rs b/rust/ql/test/extractor-tests/macro_expansion/macro_expansion.rs index 8ccaa6276c6..1825f1056e3 100644 --- a/rust/ql/test/extractor-tests/macro_expansion/macro_expansion.rs +++ b/rust/ql/test/extractor-tests/macro_expansion/macro_expansion.rs @@ -1,2 +1,8 @@ #[ctor::ctor] fn foo() {} + +#[cfg(any(linux, not(linux)))] +fn bar() {} + +#[cfg(all(linux, not(linux)))] +fn baz() {} diff --git a/rust/ql/test/utils/PrintAst.expected b/rust/ql/test/utils/PrintAst.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/utils/PrintAst.ql b/rust/ql/test/utils/PrintAst.ql new file mode 100644 index 00000000000..299b092d51f --- /dev/null +++ b/rust/ql/test/utils/PrintAst.ql @@ -0,0 +1,15 @@ +/** + * @name Print AST + * @description Outputs a representation of a file's Abstract Syntax Tree + * @id rust/test/print-ast + * @kind graph + */ + +import rust +import codeql.rust.printast.PrintAst +import codeql.rust.elements.internal.generated.ParentChild +import TestUtils + +predicate shouldPrint(Locatable e) { toBeTested(e) } + +import PrintAst From 08b950eeebc9f0def142c3fd4289a28150987fac Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 May 2025 13:53:12 +0200 Subject: [PATCH 397/656] C#: Update .NET 9 Runtime generated models. --- .../ILLink.Shared.DataFlow.model.yml | 4 +- .../generated/Internal.TypeSystem.model.yml | 17 ++-- ...crosoft.Extensions.Configuration.model.yml | 4 +- .../ext/generated/Mono.Linker.Steps.model.yml | 4 +- .../lib/ext/generated/Mono.Linker.model.yml | 2 +- .../System.Collections.Frozen.model.yml | 4 +- .../System.Collections.Generic.model.yml | 8 +- .../System.Collections.Immutable.model.yml | 87 ++++++++++--------- ...m.ComponentModel.DataAnnotations.model.yml | 28 ++---- .../generated/System.ComponentModel.model.yml | 12 +-- .../System.Composition.Hosting.Core.model.yml | 2 +- .../generated/System.Composition.model.yml | 19 ++-- .../ext/generated/System.Data.Odbc.model.yml | 2 +- .../generated/System.Globalization.model.yml | 2 +- .../System.Linq.Expressions.model.yml | 24 ++--- .../lib/ext/generated/System.Linq.model.yml | 2 +- .../ql/lib/ext/generated/System.Net.model.yml | 2 +- .../ext/generated/System.Reflection.model.yml | 4 +- .../System.Runtime.CompilerServices.model.yml | 2 +- .../System.ServiceModel.Syndication.model.yml | 1 + .../System.Text.RegularExpressions.model.yml | 2 +- .../System.Threading.Tasks.model.yml | 22 ++--- .../ext/generated/System.Xml.Linq.model.yml | 12 ++- .../generated/System.Xml.Resolvers.model.yml | 1 + .../ext/generated/System.Xml.Schema.model.yml | 13 +-- .../ext/generated/System.Xml.XPath.model.yml | 3 +- .../System.Xml.Xsl.Runtime.model.yml | 9 +- .../ql/lib/ext/generated/System.Xml.model.yml | 14 +-- csharp/ql/lib/ext/generated/System.model.yml | 18 +--- 29 files changed, 161 insertions(+), 163 deletions(-) diff --git a/csharp/ql/lib/ext/generated/ILLink.Shared.DataFlow.model.yml b/csharp/ql/lib/ext/generated/ILLink.Shared.DataFlow.model.yml index d29f75b86f1..1d8ce809cda 100644 --- a/csharp/ql/lib/ext/generated/ILLink.Shared.DataFlow.model.yml +++ b/csharp/ql/lib/ext/generated/ILLink.Shared.DataFlow.model.yml @@ -28,8 +28,8 @@ extensions: - ["ILLink.Shared.DataFlow", "ValueSet", False, "DeepCopy", "()", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["ILLink.Shared.DataFlow", "ValueSet", False, "GetKnownValues", "()", "", "Argument[this].SyntheticField[ILLink.Shared.DataFlow.ValueSet`1._values]", "ReturnValue.SyntheticField[ILLink.Shared.DataFlow.ValueSet`1+Enumerable._values]", "value", "dfc-generated"] - ["ILLink.Shared.DataFlow", "ValueSet", False, "ValueSet", "(TValue)", "", "Argument[0]", "Argument[this].SyntheticField[ILLink.Shared.DataFlow.ValueSet`1._values]", "value", "dfc-generated"] - - ["ILLink.Shared.DataFlow", "ValueSetLattice", False, "Meet", "(ILLink.Shared.DataFlow.ValueSet,ILLink.Shared.DataFlow.ValueSet)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["ILLink.Shared.DataFlow", "ValueSetLattice", False, "Meet", "(ILLink.Shared.DataFlow.ValueSet,ILLink.Shared.DataFlow.ValueSet)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["ILLink.Shared.DataFlow", "ValueSetLattice", False, "Meet", "(ILLink.Shared.DataFlow.ValueSet,ILLink.Shared.DataFlow.ValueSet)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["ILLink.Shared.DataFlow", "ValueSetLattice", False, "Meet", "(ILLink.Shared.DataFlow.ValueSet,ILLink.Shared.DataFlow.ValueSet)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] - addsTo: pack: codeql/csharp-all extensible: neutralModel diff --git a/csharp/ql/lib/ext/generated/Internal.TypeSystem.model.yml b/csharp/ql/lib/ext/generated/Internal.TypeSystem.model.yml index e6b9fb39e71..7c878511a80 100644 --- a/csharp/ql/lib/ext/generated/Internal.TypeSystem.model.yml +++ b/csharp/ql/lib/ext/generated/Internal.TypeSystem.model.yml @@ -13,7 +13,7 @@ extensions: - ["Internal.TypeSystem", "CanonBaseType", False, "get_Context", "()", "", "Argument[this].SyntheticField[Internal.TypeSystem.CanonBaseType._context]", "ReturnValue", "value", "dfc-generated"] - ["Internal.TypeSystem", "CanonBaseType", True, "get_MetadataBaseType", "()", "", "Argument[this].Property[Internal.TypeSystem.MetadataType.BaseType]", "ReturnValue", "value", "dfc-generated"] - ["Internal.TypeSystem", "CanonBaseType", True, "get_Module", "()", "", "Argument[this].SyntheticField[Internal.TypeSystem.CanonBaseType._context].Property[Internal.TypeSystem.TypeSystemContext.SystemModule]", "ReturnValue", "value", "dfc-generated"] - - ["Internal.TypeSystem", "ConstructedTypeRewritingHelpers", False, "ReplaceTypesInConstructionOfMethod", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeDesc[],Internal.TypeSystem.TypeDesc[])", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["Internal.TypeSystem", "ConstructedTypeRewritingHelpers", False, "ReplaceTypesInConstructionOfMethod", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeDesc[],Internal.TypeSystem.TypeDesc[])", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["Internal.TypeSystem", "ConstructedTypeRewritingHelpers", False, "ReplaceTypesInConstructionOfMethod", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeDesc[],Internal.TypeSystem.TypeDesc[])", "", "Argument[2].Element", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "ConstructedTypeRewritingHelpers", False, "ReplaceTypesInConstructionOfType", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc[],Internal.TypeSystem.TypeDesc[])", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["Internal.TypeSystem", "ConstructedTypeRewritingHelpers", False, "ReplaceTypesInConstructionOfType", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeDesc[],Internal.TypeSystem.TypeDesc[])", "", "Argument[2].Element", "ReturnValue", "value", "dfc-generated"] @@ -108,7 +108,7 @@ extensions: - ["Internal.TypeSystem", "MetadataTypeSystemContext", True, "SetSystemModule", "(Internal.TypeSystem.ModuleDesc)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["Internal.TypeSystem", "MetadataVirtualMethodAlgorithm", False, "EnumAllVirtualSlots", "(Internal.TypeSystem.MetadataType)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "MetadataVirtualMethodAlgorithm", False, "FindSlotDefiningMethodForVirtualMethod", "(Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["Internal.TypeSystem", "MetadataVirtualMethodAlgorithm", False, "ResolveVariantInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MetadataType,Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "Argument[2]", "taint", "df-generated"] + - ["Internal.TypeSystem", "MetadataVirtualMethodAlgorithm", False, "ResolveVariantInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MetadataType,Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "Argument[2]", "value", "df-generated"] - ["Internal.TypeSystem", "MetadataVirtualMethodAlgorithm", False, "ResolveVariantInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MetadataType,Internal.TypeSystem.MethodDesc)", "", "Argument[1]", "Argument[2]", "taint", "df-generated"] - ["Internal.TypeSystem", "MetadataVirtualMethodAlgorithm", False, "ResolveVariantInterfaceMethodToVirtualMethodOnType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MetadataType)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "MethodDelegator", False, "MethodDelegator", "(Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "Argument[this].Field[Internal.TypeSystem.MethodDelegator._wrappedMethod]", "value", "dfc-generated"] @@ -133,6 +133,7 @@ extensions: - ["Internal.TypeSystem", "MethodSignature+SignatureEnumerator", False, "get_Current", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "MethodSignature", False, "ApplySubstitution", "(Internal.TypeSystem.Instantiation)", "", "Argument[0].SyntheticField[Internal.TypeSystem.Instantiation._genericParameters].Element", "ReturnValue.SyntheticField[Internal.TypeSystem.MethodSignature._parameters].Element", "value", "dfc-generated"] - ["Internal.TypeSystem", "MethodSignature", False, "ApplySubstitution", "(Internal.TypeSystem.Instantiation)", "", "Argument[0].SyntheticField[Internal.TypeSystem.Instantiation._genericParameters].Element", "ReturnValue.SyntheticField[Internal.TypeSystem.MethodSignature._returnType]", "value", "dfc-generated"] + - ["Internal.TypeSystem", "MethodSignature", False, "ApplySubstitution", "(Internal.TypeSystem.Instantiation)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["Internal.TypeSystem", "MethodSignature", False, "GetEmbeddedSignatureData", "()", "", "Argument[this].SyntheticField[Internal.TypeSystem.MethodSignature._embeddedSignatureData].Element", "ReturnValue.Element", "value", "dfc-generated"] - ["Internal.TypeSystem", "MethodSignature", False, "GetEmbeddedSignatureData", "(System.ReadOnlySpan)", "", "Argument[this].SyntheticField[Internal.TypeSystem.MethodSignature._embeddedSignatureData].Element", "ReturnValue.Element", "value", "dfc-generated"] - ["Internal.TypeSystem", "MethodSignature", False, "GetEnumerator", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] @@ -183,7 +184,7 @@ extensions: - ["Internal.TypeSystem", "ResolutionFailure", False, "GetTypeLoadResolutionFailure", "(System.String,System.String,System.String)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "RuntimeDeterminedCanonicalizationAlgorithm", False, "ConvertInstantiationToCanonForm", "(Internal.TypeSystem.Instantiation,Internal.TypeSystem.CanonicalFormKind,System.Boolean)", "", "Argument[0].SyntheticField[Internal.TypeSystem.Instantiation._genericParameters].Element", "ReturnValue.SyntheticField[Internal.TypeSystem.Instantiation._genericParameters].Element", "value", "dfc-generated"] - ["Internal.TypeSystem", "RuntimeDeterminedCanonicalizationAlgorithm", False, "ConvertInstantiationToCanonForm", "(Internal.TypeSystem.Instantiation,Internal.TypeSystem.CanonicalFormKind,System.Boolean)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["Internal.TypeSystem", "RuntimeDeterminedCanonicalizationAlgorithm", False, "ConvertToCanon", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.CanonicalFormKind)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["Internal.TypeSystem", "RuntimeDeterminedCanonicalizationAlgorithm", False, "ConvertToCanon", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.CanonicalFormKind)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["Internal.TypeSystem", "RuntimeDeterminedType", False, "GetNonRuntimeDeterminedTypeFromRuntimeDeterminedSubtypeViaSubstitution", "(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation)", "", "Argument[0].SyntheticField[Internal.TypeSystem.Instantiation._genericParameters].Element", "ReturnValue", "value", "dfc-generated"] - ["Internal.TypeSystem", "RuntimeDeterminedType", False, "GetNonRuntimeDeterminedTypeFromRuntimeDeterminedSubtypeViaSubstitution", "(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation)", "", "Argument[1].SyntheticField[Internal.TypeSystem.Instantiation._genericParameters].Element", "ReturnValue", "value", "dfc-generated"] - ["Internal.TypeSystem", "RuntimeDeterminedType", False, "RuntimeDeterminedType", "(Internal.TypeSystem.DefType,Internal.TypeSystem.GenericParameterDesc)", "", "Argument[0]", "Argument[this].SyntheticField[Internal.TypeSystem.RuntimeDeterminedType._rawCanonType]", "value", "dfc-generated"] @@ -199,8 +200,8 @@ extensions: - ["Internal.TypeSystem", "SimpleArrayOfTRuntimeInterfacesAlgorithm", False, "SimpleArrayOfTRuntimeInterfacesAlgorithm", "(Internal.TypeSystem.ModuleDesc)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["Internal.TypeSystem", "StandardCanonicalizationAlgorithm", False, "ConvertInstantiationToCanonForm", "(Internal.TypeSystem.Instantiation,Internal.TypeSystem.CanonicalFormKind,System.Boolean)", "", "Argument[0].SyntheticField[Internal.TypeSystem.Instantiation._genericParameters].Element", "ReturnValue.SyntheticField[Internal.TypeSystem.Instantiation._genericParameters].Element", "value", "dfc-generated"] - ["Internal.TypeSystem", "StandardCanonicalizationAlgorithm", False, "ConvertInstantiationToCanonForm", "(Internal.TypeSystem.Instantiation,Internal.TypeSystem.CanonicalFormKind,System.Boolean)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["Internal.TypeSystem", "StandardCanonicalizationAlgorithm", False, "ConvertToCanon", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.CanonicalFormKind)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["Internal.TypeSystem", "TypeDesc", False, "ConvertToCanonForm", "(Internal.TypeSystem.CanonicalFormKind)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["Internal.TypeSystem", "StandardCanonicalizationAlgorithm", False, "ConvertToCanon", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.CanonicalFormKind)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["Internal.TypeSystem", "TypeDesc", False, "ConvertToCanonForm", "(Internal.TypeSystem.CanonicalFormKind)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["Internal.TypeSystem", "TypeDesc", False, "GetMethod", "(System.String,Internal.TypeSystem.MethodSignature)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "TypeDesc", False, "get_RuntimeInterfaces", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "TypeDesc", True, "ConvertToCanonFormImpl", "(Internal.TypeSystem.CanonicalFormKind)", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] @@ -260,7 +261,7 @@ extensions: - ["Internal.TypeSystem", "TypeSystemException", False, "get_Arguments", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "TypeSystemHelpers", False, "EnumAllVirtualSlots", "(Internal.TypeSystem.TypeDesc)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "TypeSystemHelpers", False, "FindMethodOnTypeWithMatchingTypicalMethod", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["Internal.TypeSystem", "TypeSystemHelpers", False, "FindMethodOnTypeWithMatchingTypicalMethod", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["Internal.TypeSystem", "TypeSystemHelpers", False, "FindMethodOnTypeWithMatchingTypicalMethod", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] - ["Internal.TypeSystem", "TypeSystemHelpers", False, "FindVirtualFunctionTargetMethodOnObjectType", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "TypeSystemHelpers", False, "GetAllMethods", "(Internal.TypeSystem.TypeDesc)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "TypeSystemHelpers", False, "GetAllVirtualMethods", "(Internal.TypeSystem.TypeDesc)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -276,7 +277,7 @@ extensions: - ["Internal.TypeSystem", "TypeSystemHelpers", False, "ResolveInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[1]", "Argument[2]", "value", "dfc-generated"] - ["Internal.TypeSystem", "TypeSystemHelpers", False, "ResolveInterfaceMethodToVirtualMethodOnType", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "TypeSystemHelpers", False, "ResolveVariantInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["Internal.TypeSystem", "TypeSystemHelpers", False, "ResolveVariantInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["Internal.TypeSystem", "TypeSystemHelpers", False, "ResolveVariantInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[1]", "Argument[2]", "value", "df-generated"] - ["Internal.TypeSystem", "TypeSystemHelpers", False, "ResolveVariantInterfaceMethodToVirtualMethodOnType", "(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "TypeWithRepeatedFields", False, "TypeWithRepeatedFields", "(Internal.TypeSystem.MetadataType)", "", "Argument[0]", "Argument[this].SyntheticField[Internal.TypeSystem.TypeWithRepeatedFields.MetadataType]", "value", "dfc-generated"] - ["Internal.TypeSystem", "TypeWithRepeatedFields", False, "get_ContainingType", "()", "", "Argument[this].SyntheticField[Internal.TypeSystem.TypeWithRepeatedFields.MetadataType].Property[Internal.TypeSystem.MetadataType.ContainingType]", "ReturnValue", "value", "dfc-generated"] @@ -289,7 +290,7 @@ extensions: - ["Internal.TypeSystem", "VirtualMethodAlgorithm", True, "FindVirtualFunctionTargetMethodOnObjectType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeDesc)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["Internal.TypeSystem", "VirtualMethodAlgorithm", True, "ResolveInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "Argument[2]", "value", "dfc-generated"] - ["Internal.TypeSystem", "VirtualMethodAlgorithm", True, "ResolveInterfaceMethodToVirtualMethodOnType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeDesc)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["Internal.TypeSystem", "VirtualMethodAlgorithm", True, "ResolveVariantInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "Argument[2]", "taint", "df-generated"] + - ["Internal.TypeSystem", "VirtualMethodAlgorithm", True, "ResolveVariantInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[0]", "Argument[2]", "value", "df-generated"] - ["Internal.TypeSystem", "VirtualMethodAlgorithm", True, "ResolveVariantInterfaceMethodToDefaultImplementationOnType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeDesc,Internal.TypeSystem.MethodDesc)", "", "Argument[1]", "Argument[2]", "taint", "df-generated"] - ["Internal.TypeSystem", "VirtualMethodAlgorithm", True, "ResolveVariantInterfaceMethodToVirtualMethodOnType", "(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeDesc)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - addsTo: diff --git a/csharp/ql/lib/ext/generated/Microsoft.Extensions.Configuration.model.yml b/csharp/ql/lib/ext/generated/Microsoft.Extensions.Configuration.model.yml index 0dddff60e78..8ff9e323ec4 100644 --- a/csharp/ql/lib/ext/generated/Microsoft.Extensions.Configuration.model.yml +++ b/csharp/ql/lib/ext/generated/Microsoft.Extensions.Configuration.model.yml @@ -9,8 +9,8 @@ extensions: - ["Microsoft.Extensions.Configuration", "ChainedConfigurationProvider", False, "ChainedConfigurationProvider", "(Microsoft.Extensions.Configuration.ChainedConfigurationSource)", "", "Argument[0].Property[Microsoft.Extensions.Configuration.ChainedConfigurationSource.Configuration]", "Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ChainedConfigurationProvider._config]", "value", "dfc-generated"] - ["Microsoft.Extensions.Configuration", "ChainedConfigurationProvider", False, "TryGet", "(System.String,System.String)", "", "Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ChainedConfigurationProvider._config]", "Argument[1]", "taint", "dfc-generated"] - ["Microsoft.Extensions.Configuration", "ChainedConfigurationProvider", False, "get_Configuration", "()", "", "Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ChainedConfigurationProvider._config]", "ReturnValue", "value", "dfc-generated"] - - ["Microsoft.Extensions.Configuration", "ConfigurationBinder", False, "Get", "(Microsoft.Extensions.Configuration.IConfiguration,System.Type)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["Microsoft.Extensions.Configuration", "ConfigurationBinder", False, "Get", "(Microsoft.Extensions.Configuration.IConfiguration)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["Microsoft.Extensions.Configuration", "ConfigurationBinder", False, "Get", "(Microsoft.Extensions.Configuration.IConfiguration,System.Type)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["Microsoft.Extensions.Configuration", "ConfigurationBinder", False, "Get", "(Microsoft.Extensions.Configuration.IConfiguration)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["Microsoft.Extensions.Configuration", "ConfigurationBinder", False, "GetValue", "(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object)", "", "Argument[3]", "ReturnValue", "value", "dfc-generated"] - ["Microsoft.Extensions.Configuration", "ConfigurationBinder", False, "GetValue", "(Microsoft.Extensions.Configuration.IConfiguration,System.String,T)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] - ["Microsoft.Extensions.Configuration", "ConfigurationBuilder", False, "Add", "(Microsoft.Extensions.Configuration.IConfigurationSource)", "", "Argument[0]", "Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationBuilder._sources].Element", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/Mono.Linker.Steps.model.yml b/csharp/ql/lib/ext/generated/Mono.Linker.Steps.model.yml index 0e6f2465ec0..1a63b255a4a 100644 --- a/csharp/ql/lib/ext/generated/Mono.Linker.Steps.model.yml +++ b/csharp/ql/lib/ext/generated/Mono.Linker.Steps.model.yml @@ -54,11 +54,11 @@ extensions: - ["Mono.Linker.Steps", "MarkStep", True, "MarkInstruction", "(Mono.Cecil.Cil.Instruction,Mono.Cecil.MethodDefinition,System.Boolean,Mono.Linker.MessageOrigin)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["Mono.Linker.Steps", "MarkStep", True, "MarkInterfaceImplementation", "(Mono.Cecil.InterfaceImplementation,Mono.Linker.MessageOrigin,System.Nullable)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["Mono.Linker.Steps", "MarkStep", True, "MarkMethod", "(Mono.Cecil.MethodReference,Mono.Linker.DependencyInfo,Mono.Linker.MessageOrigin)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["Mono.Linker.Steps", "MarkStep", True, "MarkMethod", "(Mono.Cecil.MethodReference,Mono.Linker.DependencyInfo,Mono.Linker.MessageOrigin)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["Mono.Linker.Steps", "MarkStep", True, "MarkMethod", "(Mono.Cecil.MethodReference,Mono.Linker.DependencyInfo,Mono.Linker.MessageOrigin)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["Mono.Linker.Steps", "MarkStep", True, "MarkRequirementsForInstantiatedTypes", "(Mono.Cecil.TypeDefinition)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["Mono.Linker.Steps", "MarkStep", True, "MarkSecurityAttribute", "(Mono.Cecil.SecurityAttribute,Mono.Linker.DependencyInfo,Mono.Linker.MessageOrigin)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["Mono.Linker.Steps", "MarkStep", True, "MarkType", "(Mono.Cecil.TypeReference,Mono.Linker.DependencyInfo,Mono.Linker.MessageOrigin)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["Mono.Linker.Steps", "MarkStep", True, "MarkType", "(Mono.Cecil.TypeReference,Mono.Linker.DependencyInfo,Mono.Linker.MessageOrigin)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["Mono.Linker.Steps", "MarkStep", True, "MarkType", "(Mono.Cecil.TypeReference,Mono.Linker.DependencyInfo,Mono.Linker.MessageOrigin)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["Mono.Linker.Steps", "MarkStep", True, "MarkTypeVisibleToReflection", "(Mono.Cecil.TypeReference,Mono.Linker.DependencyInfo,Mono.Linker.MessageOrigin)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["Mono.Linker.Steps", "MarkStep", True, "MarkUserDependency", "(Mono.Cecil.IMemberDefinition,Mono.Cecil.CustomAttribute,Mono.Linker.MessageOrigin)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["Mono.Linker.Steps", "MarkStep", True, "Process", "(Mono.Linker.LinkContext)", "", "Argument[0]", "Argument[this].SyntheticField[Mono.Linker.Steps.MarkStep._context]", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/Mono.Linker.model.yml b/csharp/ql/lib/ext/generated/Mono.Linker.model.yml index f48ad4aa411..862d9b749e1 100644 --- a/csharp/ql/lib/ext/generated/Mono.Linker.model.yml +++ b/csharp/ql/lib/ext/generated/Mono.Linker.model.yml @@ -157,7 +157,7 @@ extensions: - ["Mono.Linker", "UnconditionalSuppressMessageAttributeState+Suppression", False, "Suppression", "(Mono.Linker.SuppressMessageInfo,Mono.Cecil.CustomAttribute,Mono.Cecil.ICustomAttributeProvider)", "", "Argument[1]", "Argument[this].Property[Mono.Linker.UnconditionalSuppressMessageAttributeState+Suppression.OriginAttribute]", "value", "dfc-generated"] - ["Mono.Linker", "UnconditionalSuppressMessageAttributeState+Suppression", False, "Suppression", "(Mono.Linker.SuppressMessageInfo,Mono.Cecil.CustomAttribute,Mono.Cecil.ICustomAttributeProvider)", "", "Argument[2]", "Argument[this].Property[Mono.Linker.UnconditionalSuppressMessageAttributeState+Suppression.Provider]", "value", "dfc-generated"] - ["Mono.Linker", "UnconditionalSuppressMessageAttributeState", False, "GatherSuppressions", "(Mono.Cecil.ICustomAttributeProvider)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["Mono.Linker", "UnconditionalSuppressMessageAttributeState", False, "GetModuleFromProvider", "(Mono.Cecil.ICustomAttributeProvider)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["Mono.Linker", "UnconditionalSuppressMessageAttributeState", False, "GetModuleFromProvider", "(Mono.Cecil.ICustomAttributeProvider)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["Mono.Linker", "UnconditionalSuppressMessageAttributeState", False, "IsSuppressed", "(System.Int32,Mono.Linker.MessageOrigin,Mono.Linker.SuppressMessageInfo)", "", "Argument[1]", "Argument[this]", "taint", "df-generated"] - ["Mono.Linker", "UnconditionalSuppressMessageAttributeState", False, "UnconditionalSuppressMessageAttributeState", "(Mono.Linker.LinkContext)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["Mono.Linker", "UnintializedContextFactory", True, "CreateAnnotationStore", "(Mono.Linker.LinkContext)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Collections.Frozen.model.yml b/csharp/ql/lib/ext/generated/System.Collections.Frozen.model.yml index ae675a172a8..840c179210d 100644 --- a/csharp/ql/lib/ext/generated/System.Collections.Frozen.model.yml +++ b/csharp/ql/lib/ext/generated/System.Collections.Frozen.model.yml @@ -4,7 +4,7 @@ extensions: pack: codeql/csharp-all extensible: summaryModel data: - - ["System.Collections.Frozen", "FrozenDictionary", False, "ToFrozenDictionary", "(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Frozen", "FrozenDictionary", False, "ToFrozenDictionary", "(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Frozen", "FrozenDictionary+AlternateLookup", False, "ContainsKey", "(TAlternateKey)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Frozen", "FrozenDictionary+AlternateLookup", False, "TryGetValue", "(TAlternateKey,TValue)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Frozen", "FrozenDictionary+AlternateLookup", False, "get_Item", "(TAlternateKey)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] @@ -16,7 +16,7 @@ extensions: - ["System.Collections.Frozen", "FrozenDictionary", False, "get_Values", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Frozen", "FrozenSet", False, "Create", "(System.Collections.Generic.IEqualityComparer,System.ReadOnlySpan)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Frozen", "FrozenSet", False, "Create", "(System.ReadOnlySpan)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Frozen", "FrozenSet", False, "ToFrozenSet", "(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Frozen", "FrozenSet", False, "ToFrozenSet", "(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Frozen", "FrozenSet+AlternateLookup", False, "Contains", "(TAlternate)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Frozen", "FrozenSet+AlternateLookup", False, "TryGetValue", "(TAlternate,T)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Frozen", "FrozenSet+AlternateLookup", False, "TryGetValue", "(TAlternate,T)", "", "Argument[this]", "Argument[1]", "taint", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Collections.Generic.model.yml b/csharp/ql/lib/ext/generated/System.Collections.Generic.model.yml index 325945f5904..f889bb823d1 100644 --- a/csharp/ql/lib/ext/generated/System.Collections.Generic.model.yml +++ b/csharp/ql/lib/ext/generated/System.Collections.Generic.model.yml @@ -47,8 +47,12 @@ extensions: - ["System.Collections.Generic", "KeyValuePair", False, "get_Value", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Generic", "LinkedList+Enumerator", False, "get_Current", "()", "", "Argument[this].Property[System.Collections.Generic.LinkedList`1+Enumerator.Current]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Generic", "LinkedList+Enumerator", False, "get_Current", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Generic", "LinkedList", False, "AddAfter", "(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode)", "", "Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "Argument[1].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "value", "dfc-generated"] - ["System.Collections.Generic", "LinkedList", False, "AddAfter", "(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode)", "", "Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next]", "Argument[1].SyntheticField[System.Collections.Generic.LinkedListNode`1.next]", "value", "dfc-generated"] + - ["System.Collections.Generic", "LinkedList", False, "AddAfter", "(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode)", "", "Argument[1]", "Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "value", "dfc-generated"] + - ["System.Collections.Generic", "LinkedList", False, "AddAfter", "(System.Collections.Generic.LinkedListNode,T)", "", "Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "ReturnValue.SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "value", "dfc-generated"] - ["System.Collections.Generic", "LinkedList", False, "AddAfter", "(System.Collections.Generic.LinkedListNode,T)", "", "Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next]", "ReturnValue.SyntheticField[System.Collections.Generic.LinkedListNode`1.next]", "value", "dfc-generated"] + - ["System.Collections.Generic", "LinkedList", False, "AddBefore", "(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode)", "", "Argument[1]", "Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "value", "dfc-generated"] - ["System.Collections.Generic", "LinkedList", False, "AddBefore", "(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode)", "", "Argument[1]", "Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head]", "value", "dfc-generated"] - ["System.Collections.Generic", "LinkedList", False, "AddBefore", "(System.Collections.Generic.LinkedListNode,T)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Generic", "LinkedList", False, "AddBefore", "(System.Collections.Generic.LinkedListNode,T)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -60,6 +64,7 @@ extensions: - ["System.Collections.Generic", "LinkedList", False, "AddFirst", "(T)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Generic", "LinkedList", False, "AddFirst", "(T)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Generic", "LinkedList", False, "AddFirst", "(T)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Generic", "LinkedList", False, "AddLast", "(System.Collections.Generic.LinkedListNode)", "", "Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "value", "dfc-generated"] - ["System.Collections.Generic", "LinkedList", False, "AddLast", "(System.Collections.Generic.LinkedListNode)", "", "Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head]", "Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next]", "value", "dfc-generated"] - ["System.Collections.Generic", "LinkedList", False, "AddLast", "(T)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Generic", "LinkedList", False, "AddLast", "(T)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -67,8 +72,9 @@ extensions: - ["System.Collections.Generic", "LinkedList", False, "LinkedList", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Generic", "LinkedList", False, "LinkedList", "(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Generic", "LinkedList", False, "Remove", "(System.Collections.Generic.LinkedListNode)", "", "Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next]", "Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head]", "value", "dfc-generated"] + - ["System.Collections.Generic", "LinkedList", False, "Remove", "(System.Collections.Generic.LinkedListNode)", "", "Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "value", "dfc-generated"] - ["System.Collections.Generic", "LinkedList", False, "get_First", "()", "", "Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head]", "ReturnValue", "value", "dfc-generated"] - - ["System.Collections.Generic", "LinkedList", False, "get_Last", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Generic", "LinkedList", False, "get_Last", "()", "", "Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Generic", "LinkedListNode", False, "LinkedListNode", "(T)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Generic", "LinkedListNode", False, "get_List", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Generic", "LinkedListNode", False, "get_Next", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Collections.Immutable.model.yml b/csharp/ql/lib/ext/generated/System.Collections.Immutable.model.yml index c2b0ddb02cd..a381e522298 100644 --- a/csharp/ql/lib/ext/generated/System.Collections.Immutable.model.yml +++ b/csharp/ql/lib/ext/generated/System.Collections.Immutable.model.yml @@ -106,10 +106,10 @@ extensions: - ["System.Collections.Immutable", "ImmutableArray", False, "Slice", "(System.Int32,System.Int32)", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableArray", False, "Sort", "()", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableArray", False, "Sort", "(System.Collections.Generic.IComparer)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableArray", False, "Sort", "(System.Collections.Generic.IComparer)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableArray", False, "Sort", "(System.Collections.Generic.IComparer)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableArray", False, "Sort", "(System.Comparison)", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableArray", False, "Sort", "(System.Int32,System.Int32,System.Collections.Generic.IComparer)", "", "Argument[this]", "Argument[2]", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableArray", False, "Sort", "(System.Int32,System.Int32,System.Collections.Generic.IComparer)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableArray", False, "Sort", "(System.Int32,System.Int32,System.Collections.Generic.IComparer)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableArray", False, "ToBuilder", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableArray", False, "get_Item", "(System.Int32)", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableDictionary", False, "Create", "(System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -146,13 +146,14 @@ extensions: - ["System.Collections.Immutable", "ImmutableDictionary+Enumerator", False, "get_Current", "()", "", "Argument[this].Property[System.Collections.Immutable.ImmutableDictionary`2+Enumerator.Current]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableDictionary+Enumerator", False, "get_Current", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableDictionary", False, "Clear", "()", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - - ["System.Collections.Immutable", "ImmutableDictionary", False, "Remove", "(TKey)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableDictionary", False, "RemoveRange", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableDictionary", False, "SetItem", "(TKey,TValue)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableDictionary", False, "SetItems", "(System.Collections.Generic.IEnumerable>)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableDictionary", False, "Remove", "(TKey)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableDictionary", False, "RemoveRange", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableDictionary", False, "SetItem", "(TKey,TValue)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableDictionary", False, "SetItems", "(System.Collections.Generic.IEnumerable>)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableDictionary", False, "ToBuilder", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableDictionary", False, "TryGetKey", "(TKey,TKey)", "", "Argument[0]", "Argument[1]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableDictionary", False, "WithComparers", "(System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer]", "value", "dfc-generated"] + - ["System.Collections.Immutable", "ImmutableDictionary", False, "WithComparers", "(System.Collections.Generic.IEqualityComparer)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableDictionary", False, "WithComparers", "(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableDictionary", False, "WithComparers", "(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[1]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._valueComparer]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableDictionary", False, "WithComparers", "(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] @@ -172,13 +173,14 @@ extensions: - ["System.Collections.Immutable", "ImmutableHashSet+Builder", False, "TryGetValue", "(T,T)", "", "Argument[0]", "Argument[1]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableHashSet+Enumerator", False, "get_Current", "()", "", "Argument[this].Property[System.Collections.Immutable.ImmutableHashSet`1+Enumerator.Current]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableHashSet+Enumerator", False, "get_Current", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableHashSet", False, "Except", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableHashSet", False, "Except", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableHashSet", False, "Intersect", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - - ["System.Collections.Immutable", "ImmutableHashSet", False, "Remove", "(T)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableHashSet", False, "Remove", "(T)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableHashSet", False, "SymmetricExcept", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableHashSet", False, "ToBuilder", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableHashSet", False, "TryGetValue", "(T,T)", "", "Argument[0]", "Argument[1]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableHashSet", False, "Union", "(System.Collections.Generic.IEnumerable)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["System.Collections.Immutable", "ImmutableHashSet", False, "Union", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableHashSet", False, "WithComparer", "(System.Collections.Generic.IEqualityComparer)", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableHashSet", False, "get_KeyComparer", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableInterlocked", False, "AddOrUpdate", "(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func)", "", "Argument[1]", "Argument[2].Parameter[0]", "value", "dfc-generated"] @@ -199,17 +201,17 @@ extensions: - ["System.Collections.Immutable", "ImmutableList", False, "Create", "(System.ReadOnlySpan)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Create", "(T)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Create", "(T[])", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "CreateRange", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "CreateRange", "(System.Collections.Generic.IEnumerable)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "IndexOf", "(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer)", "", "Argument[0].Element", "Argument[2]", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "IndexOf", "(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer)", "", "Argument[1]", "Argument[2]", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "LastIndexOf", "(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer)", "", "Argument[0].Element", "Argument[2]", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "LastIndexOf", "(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer)", "", "Argument[1]", "Argument[2]", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "Remove", "(System.Collections.Immutable.IImmutableList,T)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "RemoveRange", "(System.Collections.Immutable.IImmutableList,System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(System.Collections.Immutable.IImmutableList,T,T)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "Remove", "(System.Collections.Immutable.IImmutableList,T)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "RemoveRange", "(System.Collections.Immutable.IImmutableList,System.Collections.Generic.IEnumerable)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(System.Collections.Immutable.IImmutableList,T,T)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(System.Collections.Immutable.IImmutableList,T,T)", "", "Argument[2]", "Argument[0].Element", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(System.Collections.Immutable.IImmutableList,T,T)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "ToImmutableList", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "ToImmutableList", "(System.Collections.Generic.IEnumerable)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableList+Builder", False, "BinarySearch", "(System.Int32,System.Int32,T,System.Collections.Generic.IComparer)", "", "Argument[2]", "Argument[3]", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList+Builder", False, "BinarySearch", "(System.Int32,System.Int32,T,System.Collections.Generic.IComparer)", "", "Argument[this]", "Argument[3]", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList+Builder", False, "BinarySearch", "(T,System.Collections.Generic.IComparer)", "", "Argument[0]", "Argument[1]", "taint", "df-generated"] @@ -232,24 +234,23 @@ extensions: - ["System.Collections.Immutable", "ImmutableList", False, "ForEach", "(System.Action)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "IndexOf", "(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "Argument[3]", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "LastIndexOf", "(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "Argument[3]", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "Remove", "(T)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "Remove", "(T)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Remove", "(T,System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "Remove", "(T,System.Collections.Generic.IEqualityComparer)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "RemoveAt", "(System.Int32)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "RemoveRange", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "RemoveRange", "(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "Remove", "(T,System.Collections.Generic.IEqualityComparer)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "RemoveAt", "(System.Int32)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "RemoveRange", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "RemoveRange", "(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "RemoveRange", "(System.Int32,System.Int32)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "RemoveRange", "(System.Int32,System.Int32)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(T,T)", "", "Argument[1]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(T,T)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(T,T)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(T,T)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(T,T,System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "Argument[2]", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(T,T,System.Collections.Generic.IEqualityComparer)", "", "Argument[1]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(T,T,System.Collections.Generic.IEqualityComparer)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(T,T,System.Collections.Generic.IEqualityComparer)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "Replace", "(T,T,System.Collections.Generic.IEqualityComparer)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "SetItem", "(System.Int32,T)", "", "Argument[1]", "Argument[this]", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "SetItem", "(System.Int32,T)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableList", False, "SetItem", "(System.Int32,T)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableList", False, "SetItem", "(System.Int32,T)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Sort", "()", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Sort", "(System.Collections.Generic.IComparer)", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableList", False, "Sort", "(System.Comparison)", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] @@ -274,15 +275,15 @@ extensions: - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateBuilder", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateBuilder", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateRange", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateRange", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>)", "", "Argument[1].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateRange", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateRange", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateRange", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateRange", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>)", "", "Argument[2].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateRange", "(System.Collections.Generic.IEnumerable>)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToImmutableSortedDictionary", "(System.Collections.Generic.IEnumerable>)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToImmutableSortedDictionary", "(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateRange", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "CreateRange", "(System.Collections.Generic.IEnumerable>)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToImmutableSortedDictionary", "(System.Collections.Generic.IEnumerable>)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToImmutableSortedDictionary", "(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToImmutableSortedDictionary", "(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToImmutableSortedDictionary", "(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToImmutableSortedDictionary", "(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToImmutableSortedDictionary", "(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToImmutableSortedDictionary", "(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToImmutableSortedDictionary", "(System.Collections.Generic.IEnumerable,System.Func,System.Func)", "", "Argument[0].Element", "Argument[1].Parameter[0]", "value", "dfc-generated"] @@ -303,17 +304,20 @@ extensions: - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "Clear", "()", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "Clear", "()", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "Clear", "()", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "Remove", "(TKey)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "RemoveRange", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "Remove", "(TKey)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "RemoveRange", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "SetItem", "(TKey,TValue)", "", "Argument[0]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key]", "value", "dfc-generated"] - - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "SetItems", "(System.Collections.Generic.IEnumerable>)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "SetItems", "(System.Collections.Generic.IEnumerable>)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "SetItem", "(TKey,TValue)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "SetItems", "(System.Collections.Generic.IEnumerable>)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "SetItems", "(System.Collections.Generic.IEnumerable>)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "ToBuilder", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "TryGetKey", "(TKey,TKey)", "", "Argument[0]", "Argument[1]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "TryGetKey", "(TKey,TKey)", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key]", "Argument[1]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "WithComparers", "(System.Collections.Generic.IComparer)", "", "Argument[0]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer]", "value", "dfc-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "WithComparers", "(System.Collections.Generic.IComparer)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "WithComparers", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[0]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "WithComparers", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[1]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer]", "value", "dfc-generated"] + - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "WithComparers", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "get_KeyComparer", "()", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedDictionary", False, "get_ValueComparer", "()", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Create", "(System.Collections.Generic.IComparer)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -328,10 +332,10 @@ extensions: - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Create", "(T[])", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "CreateBuilder", "(System.Collections.Generic.IComparer)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "CreateRange", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedSet", False, "CreateRange", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable)", "", "Argument[1].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedSet", False, "CreateRange", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedSet", False, "ToImmutableSortedSet", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedSet", False, "ToImmutableSortedSet", "(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedSet", False, "CreateRange", "(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedSet", False, "CreateRange", "(System.Collections.Generic.IEnumerable)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedSet", False, "ToImmutableSortedSet", "(System.Collections.Generic.IEnumerable)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedSet", False, "ToImmutableSortedSet", "(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "ToImmutableSortedSet", "(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet+Builder", False, "IntersectWith", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Builder._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet+Builder", False, "SymmetricExceptWith", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Builder._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key]", "value", "dfc-generated"] @@ -344,18 +348,19 @@ extensions: - ["System.Collections.Immutable", "ImmutableSortedSet+Enumerator", False, "get_Current", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Clear", "()", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Clear", "()", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Except", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Intersect", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Remove", "(T)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Except", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Intersect", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Remove", "(T)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "SymmetricExcept", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "Argument[this].Element", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "SymmetricExcept", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key]", "value", "dfc-generated"] + - ["System.Collections.Immutable", "ImmutableSortedSet", False, "SymmetricExcept", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "ToBuilder", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "TryGetValue", "(T,T)", "", "Argument[0]", "Argument[1]", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "TryGetValue", "(T,T)", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key]", "Argument[1]", "value", "dfc-generated"] - - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Union", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Union", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Union", "(System.Collections.Generic.IEnumerable)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "Union", "(System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "WithComparer", "(System.Collections.Generic.IComparer)", "", "Argument[0]", "ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer]", "value", "dfc-generated"] + - ["System.Collections.Immutable", "ImmutableSortedSet", False, "WithComparer", "(System.Collections.Generic.IComparer)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "get_KeyComparer", "()", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "get_Max", "()", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key]", "ReturnValue", "value", "dfc-generated"] - ["System.Collections.Immutable", "ImmutableSortedSet", False, "get_Min", "()", "", "Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key]", "ReturnValue", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/System.ComponentModel.DataAnnotations.model.yml b/csharp/ql/lib/ext/generated/System.ComponentModel.DataAnnotations.model.yml index 0f0a170673b..8e33abdec25 100644 --- a/csharp/ql/lib/ext/generated/System.ComponentModel.DataAnnotations.model.yml +++ b/csharp/ql/lib/ext/generated/System.ComponentModel.DataAnnotations.model.yml @@ -47,10 +47,15 @@ extensions: - ["System.ComponentModel.DataAnnotations", "UIHintAttribute", False, "get_ControlParameters", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.ComponentModel.DataAnnotations", "UIHintAttribute", False, "get_PresentationLayer", "()", "", "Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.PresentationLayer]", "ReturnValue", "value", "dfc-generated"] - ["System.ComponentModel.DataAnnotations", "UIHintAttribute", False, "get_UIHint", "()", "", "Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.UIHint]", "ReturnValue", "value", "dfc-generated"] + - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", False, "GetValidationResult", "(System.Object,System.ComponentModel.DataAnnotations.ValidationContext)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] + - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", False, "Validate", "(System.Object,System.ComponentModel.DataAnnotations.ValidationContext)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] + - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", False, "Validate", "(System.Object,System.String)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", False, "ValidationAttribute", "(System.Func)", "", "Argument[0]", "Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.ValidationAttribute._errorMessageResourceAccessor]", "value", "dfc-generated"] - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", False, "get_ErrorMessageString", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", True, "FormatErrorMessage", "(System.String)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", True, "FormatErrorMessage", "(System.String)", "", "Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString]", "ReturnValue", "taint", "dfc-generated"] + - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", True, "IsValid", "(System.Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] + - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", True, "IsValid", "(System.Object,System.ComponentModel.DataAnnotations.ValidationContext)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.ComponentModel.DataAnnotations", "ValidationContext", False, "InitializeServiceProvider", "(System.Func)", "", "Argument[0]", "Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.ValidationContext._serviceProvider]", "value", "dfc-generated"] - ["System.ComponentModel.DataAnnotations", "ValidationContext", False, "ValidationContext", "(System.Object,System.IServiceProvider,System.Collections.Generic.IDictionary)", "", "Argument[0]", "Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationContext.ObjectInstance]", "value", "dfc-generated"] - ["System.ComponentModel.DataAnnotations", "ValidationContext", False, "get_Items", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] @@ -66,26 +71,20 @@ extensions: pack: codeql/csharp-all extensible: neutralModel data: - - ["System.ComponentModel.DataAnnotations", "AllowedValuesAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "AllowedValuesAttribute", "get_Values", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "AssociatedMetadataTypeTypeDescriptionProvider", "AssociatedMetadataTypeTypeDescriptionProvider", "(System.Type)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "AssociatedMetadataTypeTypeDescriptionProvider", "AssociatedMetadataTypeTypeDescriptionProvider", "(System.Type,System.Type)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "AssociationAttribute", "get_Name", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "AssociationAttribute", "get_OtherKey", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "AssociationAttribute", "get_ThisKey", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "Base64StringAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "CompareAttribute", "get_OtherProperty", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "CompareAttribute", "get_RequiresValidationContext", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "CreditCardAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "CustomValidationAttribute", "IsValid", "(System.Object,System.ComponentModel.DataAnnotations.ValidationContext)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "CustomValidationAttribute", "get_Method", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "CustomValidationAttribute", "get_RequiresValidationContext", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "CustomValidationAttribute", "get_ValidatorType", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "DataTypeAttribute", "DataTypeAttribute", "(System.ComponentModel.DataAnnotations.DataType)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "DataTypeAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "DataTypeAttribute", "get_CustomDataType", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "DataTypeAttribute", "get_DataType", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "DeniedValuesAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "DeniedValuesAttribute", "get_Values", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "DisplayColumnAttribute", "DisplayColumnAttribute", "(System.String)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "DisplayColumnAttribute", "DisplayColumnAttribute", "(System.String,System.String)", "summary", "df-generated"] @@ -94,52 +93,35 @@ extensions: - ["System.ComponentModel.DataAnnotations", "DisplayColumnAttribute", "get_SortDescending", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "EditableAttribute", "EditableAttribute", "(System.Boolean)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "EditableAttribute", "get_AllowEdit", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "EmailAddressAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "EnumDataTypeAttribute", "EnumDataTypeAttribute", "(System.Type)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "EnumDataTypeAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "EnumDataTypeAttribute", "get_EnumType", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "FileExtensionsAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "FilterUIHintAttribute", "Equals", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "FilterUIHintAttribute", "FilterUIHintAttribute", "(System.String)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "FilterUIHintAttribute", "FilterUIHintAttribute", "(System.String,System.String)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "FilterUIHintAttribute", "GetHashCode", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "IValidatableObject", "Validate", "(System.ComponentModel.DataAnnotations.ValidationContext)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "LengthAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "LengthAttribute", "LengthAttribute", "(System.Int32,System.Int32)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "LengthAttribute", "get_MaximumLength", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "LengthAttribute", "get_MinimumLength", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "MaxLengthAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "MaxLengthAttribute", "MaxLengthAttribute", "(System.Int32)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "MaxLengthAttribute", "get_Length", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "MetadataTypeAttribute", "MetadataTypeAttribute", "(System.Type)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "MetadataTypeAttribute", "get_MetadataClassType", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "MinLengthAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "MinLengthAttribute", "MinLengthAttribute", "(System.Int32)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "MinLengthAttribute", "get_Length", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "PhoneAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "RangeAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "RangeAttribute", "RangeAttribute", "(System.Double,System.Double)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "RangeAttribute", "RangeAttribute", "(System.Int32,System.Int32)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "RangeAttribute", "get_OperandType", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "RegularExpressionAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "RegularExpressionAttribute", "get_MatchTimeout", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "RegularExpressionAttribute", "get_Pattern", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "RequiredAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "ScaffoldColumnAttribute", "ScaffoldColumnAttribute", "(System.Boolean)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "ScaffoldColumnAttribute", "get_Scaffold", "()", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "StringLengthAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "StringLengthAttribute", "StringLengthAttribute", "(System.Int32)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "StringLengthAttribute", "get_MaximumLength", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "UIHintAttribute", "Equals", "(System.Object)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "UIHintAttribute", "GetHashCode", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "UIHintAttribute", "UIHintAttribute", "(System.String)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "UIHintAttribute", "UIHintAttribute", "(System.String,System.String)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "UrlAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", "GetValidationResult", "(System.Object,System.ComponentModel.DataAnnotations.ValidationContext)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", "IsValid", "(System.Object)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", "IsValid", "(System.Object,System.ComponentModel.DataAnnotations.ValidationContext)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", "Validate", "(System.Object,System.ComponentModel.DataAnnotations.ValidationContext)", "summary", "df-generated"] - - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", "Validate", "(System.Object,System.String)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", "ValidationAttribute", "(System.String)", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "ValidationAttribute", "get_RequiresValidationContext", "()", "summary", "df-generated"] - ["System.ComponentModel.DataAnnotations", "ValidationContext", "ValidationContext", "(System.Object)", "summary", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.ComponentModel.model.yml b/csharp/ql/lib/ext/generated/System.ComponentModel.model.yml index 59baa48911d..0cbe069a76e 100644 --- a/csharp/ql/lib/ext/generated/System.ComponentModel.model.yml +++ b/csharp/ql/lib/ext/generated/System.ComponentModel.model.yml @@ -195,16 +195,17 @@ extensions: - ["System.ComponentModel", "TypeConverter", False, "ConvertFromString", "(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.String)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] - ["System.ComponentModel", "TypeConverter", False, "ConvertFromString", "(System.ComponentModel.ITypeDescriptorContext,System.String)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["System.ComponentModel", "TypeConverter", False, "ConvertFromString", "(System.String)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["System.ComponentModel", "TypeConverter", False, "ConvertTo", "(System.Object,System.Type)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.ComponentModel", "TypeConverter", False, "ConvertTo", "(System.Object,System.Type)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.ComponentModel", "TypeConverter", False, "ConvertTo", "(System.Object,System.Type)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.ComponentModel", "TypeConverter", False, "ConvertToInvariantString", "(System.ComponentModel.ITypeDescriptorContext,System.Object)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["System.ComponentModel", "TypeConverter", False, "ConvertToInvariantString", "(System.ComponentModel.ITypeDescriptorContext,System.Object)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] - ["System.ComponentModel", "TypeConverter", False, "ConvertToInvariantString", "(System.ComponentModel.ITypeDescriptorContext,System.Object)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.ComponentModel", "TypeConverter", False, "ConvertToInvariantString", "(System.Object)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.ComponentModel", "TypeConverter", False, "ConvertToInvariantString", "(System.Object)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.ComponentModel", "TypeConverter", False, "ConvertToInvariantString", "(System.Object)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.ComponentModel", "TypeConverter", False, "ConvertToString", "(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)", "", "Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator]", "ReturnValue", "taint", "dfc-generated"] - - ["System.ComponentModel", "TypeConverter", False, "ConvertToString", "(System.ComponentModel.ITypeDescriptorContext,System.Object)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["System.ComponentModel", "TypeConverter", False, "ConvertToString", "(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["System.ComponentModel", "TypeConverter", False, "ConvertToString", "(System.ComponentModel.ITypeDescriptorContext,System.Object)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] - ["System.ComponentModel", "TypeConverter", False, "ConvertToString", "(System.ComponentModel.ITypeDescriptorContext,System.Object)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.ComponentModel", "TypeConverter", False, "ConvertToString", "(System.Object)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.ComponentModel", "TypeConverter", False, "ConvertToString", "(System.Object)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.ComponentModel", "TypeConverter", False, "ConvertToString", "(System.Object)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.ComponentModel", "TypeConverter", False, "GetProperties", "(System.ComponentModel.ITypeDescriptorContext,System.Object)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["System.ComponentModel", "TypeConverter", False, "GetProperties", "(System.Object)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -215,6 +216,7 @@ extensions: - ["System.ComponentModel", "TypeConverter", True, "ConvertFrom", "(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] - ["System.ComponentModel", "TypeConverter", True, "ConvertTo", "(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)", "", "Argument[2].Element", "ReturnValue", "taint", "dfc-generated"] - ["System.ComponentModel", "TypeConverter", True, "ConvertTo", "(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["System.ComponentModel", "TypeConverter", True, "ConvertTo", "(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] - ["System.ComponentModel", "TypeConverter", True, "GetProperties", "(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[])", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["System.ComponentModel", "TypeConverter", True, "GetStandardValues", "(System.ComponentModel.ITypeDescriptorContext)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.ComponentModel", "TypeConverterAttribute", False, "TypeConverterAttribute", "(System.String)", "", "Argument[0]", "Argument[this].Property[System.ComponentModel.TypeConverterAttribute.ConverterTypeName]", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Composition.Hosting.Core.model.yml b/csharp/ql/lib/ext/generated/System.Composition.Hosting.Core.model.yml index 06563c58f57..84581c913cb 100644 --- a/csharp/ql/lib/ext/generated/System.Composition.Hosting.Core.model.yml +++ b/csharp/ql/lib/ext/generated/System.Composition.Hosting.Core.model.yml @@ -47,7 +47,7 @@ extensions: - ["System.Composition.Hosting.Core", "ExportDescriptorProvider", True, "GetExportDescriptors", "(System.Composition.Hosting.Core.CompositionContract,System.Composition.Hosting.Core.DependencyAccessor)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Composition.Hosting.Core", "ExportDescriptorProvider", True, "GetExportDescriptors", "(System.Composition.Hosting.Core.CompositionContract,System.Composition.Hosting.Core.DependencyAccessor)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Composition.Hosting.Core", "LifetimeContext", False, "AddBoundInstance", "(System.IDisposable)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Composition.Hosting.Core", "LifetimeContext", False, "FindContextWithin", "(System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Composition.Hosting.Core", "LifetimeContext", False, "FindContextWithin", "(System.String)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Composition.Hosting.Core", "LifetimeContext", False, "GetOrCreate", "(System.Int32,System.Composition.Hosting.Core.CompositionOperation,System.Composition.Hosting.Core.CompositeActivator)", "", "Argument[1]", "Argument[2].Parameter[1]", "value", "dfc-generated"] - ["System.Composition.Hosting.Core", "LifetimeContext", False, "GetOrCreate", "(System.Int32,System.Composition.Hosting.Core.CompositionOperation,System.Composition.Hosting.Core.CompositeActivator)", "", "Argument[2].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["System.Composition.Hosting.Core", "LifetimeContext", False, "GetOrCreate", "(System.Int32,System.Composition.Hosting.Core.CompositionOperation,System.Composition.Hosting.Core.CompositeActivator)", "", "Argument[this]", "Argument[2].Parameter[0]", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Composition.model.yml b/csharp/ql/lib/ext/generated/System.Composition.model.yml index a9f25ed2b81..609189a7f3b 100644 --- a/csharp/ql/lib/ext/generated/System.Composition.model.yml +++ b/csharp/ql/lib/ext/generated/System.Composition.model.yml @@ -4,20 +4,21 @@ extensions: pack: codeql/csharp-all extensible: summaryModel data: - - ["System.Composition", "CompositionContext", False, "GetExport", "(System.Composition.Hosting.Core.CompositionContract)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Composition", "CompositionContext", False, "GetExport", "(System.Type)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Composition", "CompositionContext", False, "GetExport", "(System.Type,System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Composition", "CompositionContext", False, "GetExport", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Composition", "CompositionContext", False, "GetExport", "(System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Composition", "CompositionContext", False, "GetExport", "(System.Composition.Hosting.Core.CompositionContract)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Composition", "CompositionContext", False, "GetExport", "(System.Type)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Composition", "CompositionContext", False, "GetExport", "(System.Type,System.String)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Composition", "CompositionContext", False, "GetExport", "()", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Composition", "CompositionContext", False, "GetExport", "(System.String)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Composition", "CompositionContext", False, "GetExports", "(System.Type)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Composition", "CompositionContext", False, "GetExports", "(System.Type,System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Composition", "CompositionContext", False, "GetExports", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Composition", "CompositionContext", False, "GetExports", "(System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Composition", "CompositionContext", False, "TryGetExport", "(System.Type,System.Object)", "", "Argument[this]", "Argument[1]", "taint", "df-generated"] - - ["System.Composition", "CompositionContext", False, "TryGetExport", "(System.Type,System.String,System.Object)", "", "Argument[this]", "Argument[2]", "taint", "df-generated"] - - ["System.Composition", "CompositionContext", False, "TryGetExport", "(System.String,TExport)", "", "Argument[this]", "Argument[1]", "taint", "df-generated"] - - ["System.Composition", "CompositionContext", False, "TryGetExport", "(TExport)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] + - ["System.Composition", "CompositionContext", False, "TryGetExport", "(System.Type,System.Object)", "", "Argument[this]", "Argument[1]", "value", "df-generated"] + - ["System.Composition", "CompositionContext", False, "TryGetExport", "(System.Type,System.String,System.Object)", "", "Argument[this]", "Argument[2]", "value", "df-generated"] + - ["System.Composition", "CompositionContext", False, "TryGetExport", "(System.String,TExport)", "", "Argument[this]", "Argument[1]", "value", "df-generated"] + - ["System.Composition", "CompositionContext", False, "TryGetExport", "(TExport)", "", "Argument[this]", "Argument[0]", "value", "df-generated"] - ["System.Composition", "CompositionContext", True, "TryGetExport", "(System.Composition.Hosting.Core.CompositionContract,System.Object)", "", "Argument[this]", "Argument[1]", "taint", "df-generated"] + - ["System.Composition", "CompositionContext", True, "TryGetExport", "(System.Composition.Hosting.Core.CompositionContract,System.Object)", "", "Argument[this]", "Argument[1]", "value", "df-generated"] - ["System.Composition", "Export", False, "Export", "(T,System.Action)", "", "Argument[0]", "Argument[this].Property[System.Composition.Export`1.Value]", "value", "dfc-generated"] - ["System.Composition", "ExportAttribute", False, "ExportAttribute", "(System.String,System.Type)", "", "Argument[0]", "Argument[this].Property[System.Composition.ExportAttribute.ContractName]", "value", "dfc-generated"] - ["System.Composition", "ExportFactory", False, "ExportFactory", "(System.Func>,TMetadata)", "", "Argument[1]", "Argument[this].Property[System.Composition.ExportFactory`2.Metadata]", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Data.Odbc.model.yml b/csharp/ql/lib/ext/generated/System.Data.Odbc.model.yml index 2467fde764c..84dfc60ba31 100644 --- a/csharp/ql/lib/ext/generated/System.Data.Odbc.model.yml +++ b/csharp/ql/lib/ext/generated/System.Data.Odbc.model.yml @@ -49,7 +49,7 @@ extensions: - ["System.Data.Odbc", "OdbcParameter", False, "ToString", "()", "", "Argument[this].Property[System.Data.Odbc.OdbcParameter.ParameterName]", "ReturnValue", "value", "dfc-generated"] - ["System.Data.Odbc", "OdbcParameter", False, "ToString", "()", "", "Argument[this].SyntheticField[System.Data.Odbc.OdbcParameter._parameterName]", "ReturnValue", "value", "dfc-generated"] - ["System.Data.Odbc", "OdbcParameterCollection", False, "Add", "(System.Data.Odbc.OdbcParameter)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Data.Odbc", "OdbcParameterCollection", False, "Add", "(System.Data.Odbc.OdbcParameter)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Data.Odbc", "OdbcParameterCollection", False, "Add", "(System.Data.Odbc.OdbcParameter)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Data.Odbc", "OdbcParameterCollection", False, "Add", "(System.Data.Odbc.OdbcParameter)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - ["System.Data.Odbc", "OdbcParameterCollection", False, "Add", "(System.Data.Odbc.OdbcParameter)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Data.Odbc", "OdbcParameterCollection", False, "Add", "(System.String,System.Data.Odbc.OdbcType)", "", "Argument[0]", "ReturnValue.SyntheticField[System.Data.Odbc.OdbcParameter._parameterName]", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Globalization.model.yml b/csharp/ql/lib/ext/generated/System.Globalization.model.yml index 67a30e078d3..d2215ceef1a 100644 --- a/csharp/ql/lib/ext/generated/System.Globalization.model.yml +++ b/csharp/ql/lib/ext/generated/System.Globalization.model.yml @@ -17,7 +17,7 @@ extensions: - ["System.Globalization", "CultureInfo", False, "GetCultureInfo", "(System.String,System.String)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Globalization", "CultureInfo", False, "GetCultureInfo", "(System.String,System.String)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["System.Globalization", "CultureInfo", False, "GetCultureInfoByIetfLanguageTag", "(System.String)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["System.Globalization", "CultureInfo", False, "ReadOnly", "(System.Globalization.CultureInfo)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Globalization", "CultureInfo", False, "ReadOnly", "(System.Globalization.CultureInfo)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Globalization", "CultureInfo", False, "ToString", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Globalization", "CultureInfo", False, "get_IetfLanguageTag", "()", "", "Argument[this].Property[System.Globalization.CultureInfo.Name]", "ReturnValue", "value", "dfc-generated"] - ["System.Globalization", "CultureInfo", True, "get_Calendar", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Linq.Expressions.model.yml b/csharp/ql/lib/ext/generated/System.Linq.Expressions.model.yml index df2a8608eb3..207afa4d38a 100644 --- a/csharp/ql/lib/ext/generated/System.Linq.Expressions.model.yml +++ b/csharp/ql/lib/ext/generated/System.Linq.Expressions.model.yml @@ -408,24 +408,24 @@ extensions: - ["System.Linq.Expressions", "Expression", True, "Accept", "(System.Linq.Expressions.ExpressionVisitor)", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "Expression", True, "Reduce", "()", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "Expression", True, "VisitChildren", "(System.Linq.Expressions.ExpressionVisitor)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - - ["System.Linq.Expressions", "Expression", True, "VisitChildren", "(System.Linq.Expressions.ExpressionVisitor)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "Expression", True, "VisitChildren", "(System.Linq.Expressions.ExpressionVisitor)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "Expression", False, "Update", "(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable)", "", "Argument[1].Element", "ReturnValue", "taint", "df-generated"] - ["System.Linq.Expressions", "Expression", False, "Update", "(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", False, "Visit", "(System.Collections.ObjectModel.ReadOnlyCollection)", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", False, "Visit", "(System.Collections.ObjectModel.ReadOnlyCollection)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", False, "Visit", "(System.Collections.ObjectModel.ReadOnlyCollection)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", False, "Visit", "(System.Collections.ObjectModel.ReadOnlyCollection,System.Func)", "", "Argument[0].Element", "Argument[1].Parameter[0]", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", False, "Visit", "(System.Collections.ObjectModel.ReadOnlyCollection,System.Func)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", False, "VisitAndConvert", "(System.Collections.ObjectModel.ReadOnlyCollection,System.String)", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", False, "VisitAndConvert", "(System.Collections.ObjectModel.ReadOnlyCollection,System.String)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", False, "VisitAndConvert", "(System.Collections.ObjectModel.ReadOnlyCollection,System.String)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", False, "VisitAndConvert", "(T,System.String)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", False, "VisitAndConvert", "(T,System.String)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", False, "VisitAndConvert", "(T,System.String)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "Visit", "(System.Linq.Expressions.Expression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitBinary", "(System.Linq.Expressions.BinaryExpression)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitBinary", "(System.Linq.Expressions.BinaryExpression)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitBinary", "(System.Linq.Expressions.BinaryExpression)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitBlock", "(System.Linq.Expressions.BlockExpression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitCatchBlock", "(System.Linq.Expressions.CatchBlock)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitConditional", "(System.Linq.Expressions.ConditionalExpression)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitConditional", "(System.Linq.Expressions.ConditionalExpression)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitConditional", "(System.Linq.Expressions.ConditionalExpression)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitConstant", "(System.Linq.Expressions.ConstantExpression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitDebugInfo", "(System.Linq.Expressions.DebugInfoExpression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitDefault", "(System.Linq.Expressions.DefaultExpression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -433,22 +433,22 @@ extensions: - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitElementInit", "(System.Linq.Expressions.ElementInit)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitExtension", "(System.Linq.Expressions.Expression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitGoto", "(System.Linq.Expressions.GotoExpression)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitGoto", "(System.Linq.Expressions.GotoExpression)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitGoto", "(System.Linq.Expressions.GotoExpression)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitIndex", "(System.Linq.Expressions.IndexExpression)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitIndex", "(System.Linq.Expressions.IndexExpression)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitIndex", "(System.Linq.Expressions.IndexExpression)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitInvocation", "(System.Linq.Expressions.InvocationExpression)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitInvocation", "(System.Linq.Expressions.InvocationExpression)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitInvocation", "(System.Linq.Expressions.InvocationExpression)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitLabel", "(System.Linq.Expressions.LabelExpression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitLabelTarget", "(System.Linq.Expressions.LabelTarget)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitLambda", "(System.Linq.Expressions.Expression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitListInit", "(System.Linq.Expressions.ListInitExpression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitLoop", "(System.Linq.Expressions.LoopExpression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMember", "(System.Linq.Expressions.MemberExpression)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMember", "(System.Linq.Expressions.MemberExpression)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMember", "(System.Linq.Expressions.MemberExpression)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMemberAssignment", "(System.Linq.Expressions.MemberAssignment)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMemberAssignment", "(System.Linq.Expressions.MemberAssignment)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMemberAssignment", "(System.Linq.Expressions.MemberAssignment)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMemberBinding", "(System.Linq.Expressions.MemberBinding)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMemberBinding", "(System.Linq.Expressions.MemberBinding)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMemberBinding", "(System.Linq.Expressions.MemberBinding)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMemberInit", "(System.Linq.Expressions.MemberInitExpression)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMemberListBinding", "(System.Linq.Expressions.MemberListBinding)", "", "Argument[0].Property[System.Linq.Expressions.MemberListBinding.Initializers]", "ReturnValue.Property[System.Linq.Expressions.MemberListBinding.Initializers]", "value", "dfc-generated"] - ["System.Linq.Expressions", "ExpressionVisitor", True, "VisitMemberListBinding", "(System.Linq.Expressions.MemberListBinding)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Linq.model.yml b/csharp/ql/lib/ext/generated/System.Linq.model.yml index 5df8d2ebac4..7f25e207836 100644 --- a/csharp/ql/lib/ext/generated/System.Linq.model.yml +++ b/csharp/ql/lib/ext/generated/System.Linq.model.yml @@ -157,7 +157,7 @@ extensions: - ["System.Linq", "Enumerable", False, "SingleOrDefault", "(System.Collections.Generic.IEnumerable,System.Func,TSource)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] - ["System.Linq", "Enumerable", False, "SingleOrDefault", "(System.Collections.Generic.IEnumerable,TSource)", "", "Argument[0].Element", "ReturnValue", "value", "dfc-generated"] - ["System.Linq", "Enumerable", False, "SingleOrDefault", "(System.Collections.Generic.IEnumerable,TSource)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["System.Linq", "Enumerable", False, "SkipLast", "(System.Collections.Generic.IEnumerable,System.Int32)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Linq", "Enumerable", False, "SkipLast", "(System.Collections.Generic.IEnumerable,System.Int32)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Linq", "Enumerable", False, "Take", "(System.Collections.Generic.IEnumerable,System.Range)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - ["System.Linq", "Enumerable", False, "TakeLast", "(System.Collections.Generic.IEnumerable,System.Int32)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - ["System.Linq", "Enumerable", False, "ToDictionary", "(System.Collections.Generic.IEnumerable>)", "", "Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]", "ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key]", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Net.model.yml b/csharp/ql/lib/ext/generated/System.Net.model.yml index a3a4da217a1..d21f1e15fb9 100644 --- a/csharp/ql/lib/ext/generated/System.Net.model.yml +++ b/csharp/ql/lib/ext/generated/System.Net.model.yml @@ -47,6 +47,7 @@ extensions: - ["System.Net", "HttpListenerRequest", False, "get_ProtocolVersion", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Net", "HttpListenerRequest", False, "get_RawUrl", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Net", "HttpListenerRequest", False, "get_Url", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Net", "HttpListenerRequest", False, "get_UrlReferrer", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Net", "HttpListenerRequest", False, "get_UserAgent", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Net", "HttpListenerRequest", False, "get_UserHostName", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Net", "HttpListenerResponse", False, "AppendCookie", "(System.Net.Cookie)", "", "Argument[0]", "Argument[this].Property[System.Net.HttpListenerResponse.Cookies].Element", "value", "dfc-generated"] @@ -292,7 +293,6 @@ extensions: - ["System.Net", "HttpListenerRequest", "get_RequestTraceIdentifier", "()", "summary", "df-generated"] - ["System.Net", "HttpListenerRequest", "get_ServiceName", "()", "summary", "df-generated"] - ["System.Net", "HttpListenerRequest", "get_TransportContext", "()", "summary", "df-generated"] - - ["System.Net", "HttpListenerRequest", "get_UrlReferrer", "()", "summary", "df-generated"] - ["System.Net", "HttpListenerRequest", "get_UserHostAddress", "()", "summary", "df-generated"] - ["System.Net", "HttpListenerRequest", "get_UserLanguages", "()", "summary", "df-generated"] - ["System.Net", "HttpListenerResponse", "Abort", "()", "summary", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Reflection.model.yml b/csharp/ql/lib/ext/generated/System.Reflection.model.yml index 6758f9e29f0..d743a534927 100644 --- a/csharp/ql/lib/ext/generated/System.Reflection.model.yml +++ b/csharp/ql/lib/ext/generated/System.Reflection.model.yml @@ -123,7 +123,7 @@ extensions: - ["System.Reflection", "MethodInfo", True, "get_ReturnParameter", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Reflection", "MethodInfo", True, "get_ReturnType", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Reflection", "MethodInfo", True, "get_ReturnTypeCustomAttributes", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Reflection", "MethodInfoExtensions", False, "GetBaseDefinition", "(System.Reflection.MethodInfo)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Reflection", "MethodInfoExtensions", False, "GetBaseDefinition", "(System.Reflection.MethodInfo)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Reflection", "MethodInvoker", False, "Invoke", "(System.Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Reflection", "MethodInvoker", False, "Invoke", "(System.Object)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Reflection", "MethodInvoker", False, "Invoke", "(System.Object,System.Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] @@ -204,7 +204,7 @@ extensions: - ["System.Reflection", "ReflectionContext", True, "MapType", "(System.Reflection.TypeInfo)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Reflection", "ReflectionTypeLoadException", False, "get_Message", "()", "", "Argument[this].Property[System.Exception.Message]", "ReturnValue", "value", "dfc-generated"] - ["System.Reflection", "RuntimeReflectionExtensions", False, "GetMethodInfo", "(System.Delegate)", "", "Argument[0].Property[System.Delegate.Method]", "ReturnValue", "value", "dfc-generated"] - - ["System.Reflection", "RuntimeReflectionExtensions", False, "GetRuntimeBaseDefinition", "(System.Reflection.MethodInfo)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Reflection", "RuntimeReflectionExtensions", False, "GetRuntimeBaseDefinition", "(System.Reflection.MethodInfo)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Reflection", "RuntimeReflectionExtensions", False, "GetRuntimeInterfaceMap", "(System.Reflection.TypeInfo,System.Type)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Reflection", "TypeInfo", True, "AsType", "()", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Reflection", "TypeInfo", True, "GetDeclaredEvent", "(System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Runtime.CompilerServices.model.yml b/csharp/ql/lib/ext/generated/System.Runtime.CompilerServices.model.yml index 2134ee1b6c1..d6cbb9f2b72 100644 --- a/csharp/ql/lib/ext/generated/System.Runtime.CompilerServices.model.yml +++ b/csharp/ql/lib/ext/generated/System.Runtime.CompilerServices.model.yml @@ -67,7 +67,7 @@ extensions: - ["System.Runtime.CompilerServices", "RuntimeOps", False, "ExpandoTrySetValue", "(System.Dynamic.ExpandoObject,System.Object,System.Int32,System.Object,System.String,System.Boolean)", "", "Argument[3]", "ReturnValue", "value", "dfc-generated"] - ["System.Runtime.CompilerServices", "RuntimeOps", False, "MergeRuntimeVariables", "(System.Runtime.CompilerServices.IRuntimeVariables,System.Runtime.CompilerServices.IRuntimeVariables,System.Int32[])", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Runtime.CompilerServices", "RuntimeOps", False, "MergeRuntimeVariables", "(System.Runtime.CompilerServices.IRuntimeVariables,System.Runtime.CompilerServices.IRuntimeVariables,System.Int32[])", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["System.Runtime.CompilerServices", "RuntimeOps", False, "Quote", "(System.Linq.Expressions.Expression,System.Object,System.Object[])", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Runtime.CompilerServices", "RuntimeOps", False, "Quote", "(System.Linq.Expressions.Expression,System.Object,System.Object[])", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Runtime.CompilerServices", "RuntimeWrappedException", False, "RuntimeWrappedException", "(System.Object)", "", "Argument[0]", "Argument[this].SyntheticField[System.Runtime.CompilerServices.RuntimeWrappedException._wrappedException]", "value", "dfc-generated"] - ["System.Runtime.CompilerServices", "RuntimeWrappedException", False, "get_WrappedException", "()", "", "Argument[this].SyntheticField[System.Runtime.CompilerServices.RuntimeWrappedException._wrappedException]", "ReturnValue", "value", "dfc-generated"] - ["System.Runtime.CompilerServices", "StrongBox", False, "StrongBox", "(T)", "", "Argument[0]", "Argument[this].Field[System.Runtime.CompilerServices.StrongBox`1.Value]", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/System.ServiceModel.Syndication.model.yml b/csharp/ql/lib/ext/generated/System.ServiceModel.Syndication.model.yml index 0c9697edaa8..ff97c65c48f 100644 --- a/csharp/ql/lib/ext/generated/System.ServiceModel.Syndication.model.yml +++ b/csharp/ql/lib/ext/generated/System.ServiceModel.Syndication.model.yml @@ -76,6 +76,7 @@ extensions: - ["System.ServiceModel.Syndication", "SyndicationFeedFormatter", True, "ReadFrom", "(System.Xml.XmlReader)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.ServiceModel.Syndication", "SyndicationFeedFormatter", True, "SetFeed", "(System.ServiceModel.Syndication.SyndicationFeed)", "", "Argument[0]", "Argument[this].SyntheticField[System.ServiceModel.Syndication.SyndicationFeedFormatter._feed]", "value", "dfc-generated"] - ["System.ServiceModel.Syndication", "SyndicationItem", False, "AddPermalink", "(System.Uri)", "", "Argument[0].Property[System.Uri.AbsoluteUri]", "Argument[this].Property[System.ServiceModel.Syndication.SyndicationItem.Id]", "value", "dfc-generated"] + - ["System.ServiceModel.Syndication", "SyndicationItem", False, "AddPermalink", "(System.Uri)", "", "Argument[0]", "Argument[this].Property[System.ServiceModel.Syndication.SyndicationItem.Id]", "taint", "dfc-generated"] - ["System.ServiceModel.Syndication", "SyndicationItem", False, "SyndicationItem", "(System.ServiceModel.Syndication.SyndicationItem)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.ServiceModel.Syndication", "SyndicationItem", False, "SyndicationItem", "(System.String,System.ServiceModel.Syndication.SyndicationContent,System.Uri,System.String,System.DateTimeOffset)", "", "Argument[1]", "Argument[this].Property[System.ServiceModel.Syndication.SyndicationItem.Content]", "value", "dfc-generated"] - ["System.ServiceModel.Syndication", "SyndicationItem", False, "SyndicationItem", "(System.String,System.ServiceModel.Syndication.SyndicationContent,System.Uri,System.String,System.DateTimeOffset)", "", "Argument[3]", "Argument[this].Property[System.ServiceModel.Syndication.SyndicationItem.Id]", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Text.RegularExpressions.model.yml b/csharp/ql/lib/ext/generated/System.Text.RegularExpressions.model.yml index 83ab228ce7c..b51a6406d81 100644 --- a/csharp/ql/lib/ext/generated/System.Text.RegularExpressions.model.yml +++ b/csharp/ql/lib/ext/generated/System.Text.RegularExpressions.model.yml @@ -12,7 +12,7 @@ extensions: - ["System.Text.RegularExpressions", "GroupCollection", False, "TryGetValue", "(System.String,System.Text.RegularExpressions.Group)", "", "Argument[this].Element", "Argument[1]", "value", "dfc-generated"] - ["System.Text.RegularExpressions", "GroupCollection", False, "get_Keys", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Text.RegularExpressions", "GroupCollection", False, "get_Values", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Text.RegularExpressions", "Match", False, "NextMatch", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Text.RegularExpressions", "Match", False, "NextMatch", "()", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Text.RegularExpressions", "Match", False, "Synchronized", "(System.Text.RegularExpressions.Match)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Text.RegularExpressions", "Regex+ValueMatchEnumerator", False, "GetEnumerator", "()", "", "Argument[this]", "ReturnValue", "value", "dfc-generated"] - ["System.Text.RegularExpressions", "Regex+ValueMatchEnumerator", False, "get_Current", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Threading.Tasks.model.yml b/csharp/ql/lib/ext/generated/System.Threading.Tasks.model.yml index 81a2c7cfbb4..ec75fcd1785 100644 --- a/csharp/ql/lib/ext/generated/System.Threading.Tasks.model.yml +++ b/csharp/ql/lib/ext/generated/System.Threading.Tasks.model.yml @@ -17,13 +17,13 @@ extensions: - ["System.Threading.Tasks", "Task", False, "FromCanceled", "(System.Threading.CancellationToken)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Threading.Tasks", "Task", False, "GetAwaiter", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.Threading.CancellationToken)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.Threading.CancellationToken)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.TimeProvider)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.TimeProvider)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Threading.Tasks", "Task", False, "WhenAny", "(System.Collections.Generic.IEnumerable)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] - ["System.Threading.Tasks", "Task", False, "WhenAny", "(System.ReadOnlySpan)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Threading.Tasks", "Task", False, "WhenAny", "(System.Threading.Tasks.Task,System.Threading.Tasks.Task)", "", "Argument[0]", "ReturnValue.Property[System.Threading.Tasks.Task`1.Result]", "value", "dfc-generated"] @@ -33,11 +33,11 @@ extensions: - ["System.Threading.Tasks", "Task", False, "WhenEach", "(System.Threading.Tasks.Task[])", "", "Argument[0].Element", "ReturnValue.Element", "value", "dfc-generated"] - ["System.Threading.Tasks", "Task", False, "get_AsyncState", "()", "", "Argument[this].SyntheticField[System.Threading.Tasks.Task.m_stateObject]", "ReturnValue", "value", "dfc-generated"] - ["System.Threading.Tasks", "Task", False, "ConfigureAwait", "(System.Threading.Tasks.ConfigureAwaitOptions)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.TimeProvider)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.TimeProvider)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] + - ["System.Threading.Tasks", "Task", False, "WaitAsync", "(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Threading.Tasks", "TaskAsyncEnumerableExtensions", False, "ConfigureAwait", "(System.IAsyncDisposable,System.Boolean)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Threading.Tasks", "TaskAsyncEnumerableExtensions", False, "ConfigureAwait", "(System.Collections.Generic.IAsyncEnumerable,System.Boolean)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Threading.Tasks", "TaskAsyncEnumerableExtensions", False, "ToBlockingEnumerable", "(System.Collections.Generic.IAsyncEnumerable,System.Threading.CancellationToken)", "", "Argument[0].Property[System.Collections.Generic.IAsyncEnumerator`1.Current]", "ReturnValue.Element", "value", "dfc-generated"] @@ -166,7 +166,7 @@ extensions: - ["System.Threading.Tasks", "ValueTask", False, "AsTask", "()", "", "Argument[this].SyntheticField[System.Threading.Tasks.ValueTask`1._result]", "ReturnValue.Property[System.Threading.Tasks.Task`1.Result]", "value", "dfc-generated"] - ["System.Threading.Tasks", "ValueTask", False, "ConfigureAwait", "(System.Boolean)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Threading.Tasks", "ValueTask", False, "GetAwaiter", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Threading.Tasks", "ValueTask", False, "Preserve", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Threading.Tasks", "ValueTask", False, "Preserve", "()", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Threading.Tasks", "ValueTask", False, "ToString", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Threading.Tasks", "ValueTask", False, "ValueTask", "(System.Threading.Tasks.Sources.IValueTaskSource,System.Int16)", "", "Argument[0]", "Argument[this].SyntheticField[System.Threading.Tasks.ValueTask`1._obj]", "value", "dfc-generated"] - ["System.Threading.Tasks", "ValueTask", False, "ValueTask", "(System.Threading.Tasks.Task)", "", "Argument[0]", "Argument[this].SyntheticField[System.Threading.Tasks.ValueTask`1._obj]", "value", "dfc-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Xml.Linq.model.yml b/csharp/ql/lib/ext/generated/System.Xml.Linq.model.yml index 664da0ce88a..c894e3eb5f6 100644 --- a/csharp/ql/lib/ext/generated/System.Xml.Linq.model.yml +++ b/csharp/ql/lib/ext/generated/System.Xml.Linq.model.yml @@ -32,7 +32,9 @@ extensions: - ["System.Xml.Linq", "XContainer", False, "Add", "(System.Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.Linq", "XContainer", False, "Add", "(System.Object)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - ["System.Xml.Linq", "XContainer", False, "Add", "(System.Object[])", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] + - ["System.Xml.Linq", "XContainer", False, "Add", "(System.Object[])", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml.Linq", "XContainer", False, "AddFirst", "(System.Object)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] + - ["System.Xml.Linq", "XContainer", False, "AddFirst", "(System.Object[])", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml.Linq", "XContainer", False, "DescendantNodes", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Linq", "XContainer", False, "Descendants", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Linq", "XContainer", False, "Descendants", "(System.Xml.Linq.XName)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] @@ -43,6 +45,7 @@ extensions: - ["System.Xml.Linq", "XContainer", False, "ReplaceNodes", "(System.Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.Linq", "XContainer", False, "ReplaceNodes", "(System.Object)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - ["System.Xml.Linq", "XContainer", False, "ReplaceNodes", "(System.Object[])", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] + - ["System.Xml.Linq", "XContainer", False, "ReplaceNodes", "(System.Object[])", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml.Linq", "XContainer", False, "get_FirstNode", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Linq", "XContainer", False, "get_LastNode", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Linq", "XDeclaration", False, "ToString", "()", "", "Argument[this].SyntheticField[System.Xml.Linq.XDeclaration._encoding]", "ReturnValue", "taint", "dfc-generated"] @@ -96,9 +99,11 @@ extensions: - ["System.Xml.Linq", "XElement", False, "ReplaceAll", "(System.Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.Linq", "XElement", False, "ReplaceAll", "(System.Object)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - ["System.Xml.Linq", "XElement", False, "ReplaceAll", "(System.Object[])", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] + - ["System.Xml.Linq", "XElement", False, "ReplaceAll", "(System.Object[])", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml.Linq", "XElement", False, "ReplaceAttributes", "(System.Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.Linq", "XElement", False, "ReplaceAttributes", "(System.Object)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - ["System.Xml.Linq", "XElement", False, "ReplaceAttributes", "(System.Object[])", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] + - ["System.Xml.Linq", "XElement", False, "ReplaceAttributes", "(System.Object[])", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml.Linq", "XElement", False, "SetAttributeValue", "(System.Xml.Linq.XName,System.Object)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.Linq", "XElement", False, "SetAttributeValue", "(System.Xml.Linq.XName,System.Object)", "", "Argument[1]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.Linq", "XElement", False, "SetElementValue", "(System.Xml.Linq.XName,System.Object)", "", "Argument[1]", "Argument[this]", "taint", "df-generated"] @@ -120,7 +125,9 @@ extensions: - ["System.Xml.Linq", "XNamespace", False, "get_NamespaceName", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Linq", "XNamespace", False, "op_Addition", "(System.Xml.Linq.XNamespace,System.String)", "", "Argument[0]", "ReturnValue.SyntheticField[System.Xml.Linq.XName._ns]", "value", "dfc-generated"] - ["System.Xml.Linq", "XNode", False, "AddAfterSelf", "(System.Object)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] + - ["System.Xml.Linq", "XNode", False, "AddAfterSelf", "(System.Object[])", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml.Linq", "XNode", False, "AddBeforeSelf", "(System.Object)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] + - ["System.Xml.Linq", "XNode", False, "AddBeforeSelf", "(System.Object[])", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml.Linq", "XNode", False, "Ancestors", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Linq", "XNode", False, "Ancestors", "(System.Xml.Linq.XName)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Linq", "XNode", False, "CreateReader", "(System.Xml.Linq.ReaderOptions)", "", "Argument[this]", "ReturnValue.SyntheticField[System.Xml.Linq.XNodeReader._source]", "value", "dfc-generated"] @@ -130,6 +137,7 @@ extensions: - ["System.Xml.Linq", "XNode", False, "ReadFrom", "(System.Xml.XmlReader)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Linq", "XNode", False, "ReadFromAsync", "(System.Xml.XmlReader,System.Threading.CancellationToken)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Linq", "XNode", False, "ReplaceWith", "(System.Object)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] + - ["System.Xml.Linq", "XNode", False, "ReplaceWith", "(System.Object[])", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml.Linq", "XNode", False, "get_NextNode", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Linq", "XNode", True, "WriteTo", "(System.Xml.XmlWriter)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - ["System.Xml.Linq", "XNode", True, "WriteToAsync", "(System.Xml.XmlWriter,System.Threading.CancellationToken)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] @@ -170,7 +178,6 @@ extensions: - ["System.Xml.Linq", "XCData", "XCData", "(System.Xml.Linq.XCData)", "summary", "df-generated"] - ["System.Xml.Linq", "XCData", "get_NodeType", "()", "summary", "df-generated"] - ["System.Xml.Linq", "XComment", "get_NodeType", "()", "summary", "df-generated"] - - ["System.Xml.Linq", "XContainer", "AddFirst", "(System.Object[])", "summary", "df-generated"] - ["System.Xml.Linq", "XContainer", "CreateWriter", "()", "summary", "df-generated"] - ["System.Xml.Linq", "XContainer", "RemoveNodes", "()", "summary", "df-generated"] - ["System.Xml.Linq", "XDocument", "LoadAsync", "(System.IO.Stream,System.Xml.Linq.LoadOptions,System.Threading.CancellationToken)", "summary", "df-generated"] @@ -226,8 +233,6 @@ extensions: - ["System.Xml.Linq", "XNamespace", "get_Xmlns", "()", "summary", "df-generated"] - ["System.Xml.Linq", "XNamespace", "op_Equality", "(System.Xml.Linq.XNamespace,System.Xml.Linq.XNamespace)", "summary", "df-generated"] - ["System.Xml.Linq", "XNamespace", "op_Inequality", "(System.Xml.Linq.XNamespace,System.Xml.Linq.XNamespace)", "summary", "df-generated"] - - ["System.Xml.Linq", "XNode", "AddAfterSelf", "(System.Object[])", "summary", "df-generated"] - - ["System.Xml.Linq", "XNode", "AddBeforeSelf", "(System.Object[])", "summary", "df-generated"] - ["System.Xml.Linq", "XNode", "CompareDocumentOrder", "(System.Xml.Linq.XNode,System.Xml.Linq.XNode)", "summary", "df-generated"] - ["System.Xml.Linq", "XNode", "CreateReader", "()", "summary", "df-generated"] - ["System.Xml.Linq", "XNode", "DeepEquals", "(System.Xml.Linq.XNode,System.Xml.Linq.XNode)", "summary", "df-generated"] @@ -237,7 +242,6 @@ extensions: - ["System.Xml.Linq", "XNode", "IsBefore", "(System.Xml.Linq.XNode)", "summary", "df-generated"] - ["System.Xml.Linq", "XNode", "NodesBeforeSelf", "()", "summary", "df-generated"] - ["System.Xml.Linq", "XNode", "Remove", "()", "summary", "df-generated"] - - ["System.Xml.Linq", "XNode", "ReplaceWith", "(System.Object[])", "summary", "df-generated"] - ["System.Xml.Linq", "XNode", "ToString", "()", "summary", "df-generated"] - ["System.Xml.Linq", "XNode", "ToString", "(System.Xml.Linq.SaveOptions)", "summary", "df-generated"] - ["System.Xml.Linq", "XNode", "get_DocumentOrderComparer", "()", "summary", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Xml.Resolvers.model.yml b/csharp/ql/lib/ext/generated/System.Xml.Resolvers.model.yml index cedc13ddbb9..39b763ee7b6 100644 --- a/csharp/ql/lib/ext/generated/System.Xml.Resolvers.model.yml +++ b/csharp/ql/lib/ext/generated/System.Xml.Resolvers.model.yml @@ -8,6 +8,7 @@ extensions: - ["System.Xml.Resolvers", "XmlPreloadedResolver", False, "get_PreloadedUris", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Resolvers", "XmlPreloadedResolver", True, "GetEntity", "(System.Uri,System.String,System.Type)", "", "Argument[0].Property[System.Uri.LocalPath]", "ReturnValue", "taint", "dfc-generated"] - ["System.Xml.Resolvers", "XmlPreloadedResolver", True, "GetEntityAsync", "(System.Uri,System.String,System.Type)", "", "Argument[0].Property[System.Uri.LocalPath]", "ReturnValue.Property[System.Threading.Tasks.Task`1.Result]", "taint", "dfc-generated"] + - ["System.Xml.Resolvers", "XmlPreloadedResolver", True, "GetEntityAsync", "(System.Uri,System.String,System.Type)", "", "Argument[0]", "ReturnValue.Property[System.Threading.Tasks.Task`1.Result]", "taint", "dfc-generated"] - addsTo: pack: codeql/csharp-all extensible: neutralModel diff --git a/csharp/ql/lib/ext/generated/System.Xml.Schema.model.yml b/csharp/ql/lib/ext/generated/System.Xml.Schema.model.yml index 98ddebacb8c..c923c9ce24f 100644 --- a/csharp/ql/lib/ext/generated/System.Xml.Schema.model.yml +++ b/csharp/ql/lib/ext/generated/System.Xml.Schema.model.yml @@ -36,14 +36,15 @@ extensions: - ["System.Xml.Schema", "XmlSchemaComplexContentRestriction", False, "get_Attributes", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaComplexType", False, "get_AttributeWildcard", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaComplexType", False, "get_ContentTypeParticle", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ChangeType", "(System.Object,System.Type)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ChangeType", "(System.Object,System.Type)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ChangeType", "(System.Object,System.Type)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ChangeType", "(System.Object,System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ChangeType", "(System.Object,System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ChangeType", "(System.Object,System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ChangeType", "(System.Object,System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ChangeType", "(System.Object,System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ParseValue", "(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver)", "", "Argument[0]", "Argument[2]", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ParseValue", "(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ParseValue", "(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ParseValue", "(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaDatatype", True, "ParseValue", "(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaElement", False, "get_ElementSchemaType", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] @@ -80,12 +81,12 @@ extensions: - ["System.Xml.Schema", "XmlSchemaSet", False, "Add", "(System.String,System.Xml.XmlReader)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaSet", False, "Add", "(System.String,System.Xml.XmlReader)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaSet", False, "Add", "(System.Xml.Schema.XmlSchema)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Xml.Schema", "XmlSchemaSet", False, "Add", "(System.Xml.Schema.XmlSchema)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.Schema", "XmlSchemaSet", False, "Add", "(System.Xml.Schema.XmlSchema)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml.Schema", "XmlSchemaSet", False, "Add", "(System.Xml.Schema.XmlSchemaSet)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaSet", False, "CopyTo", "(System.Xml.Schema.XmlSchema[],System.Int32)", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaSet", False, "Remove", "(System.Xml.Schema.XmlSchema)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Xml.Schema", "XmlSchemaSet", False, "Reprocess", "(System.Xml.Schema.XmlSchema)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Xml.Schema", "XmlSchemaSet", False, "Reprocess", "(System.Xml.Schema.XmlSchema)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.Schema", "XmlSchemaSet", False, "Reprocess", "(System.Xml.Schema.XmlSchema)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml.Schema", "XmlSchemaSet", False, "Schemas", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaSet", False, "Schemas", "(System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaSet", False, "XmlSchemaSet", "(System.Xml.XmlNameTable)", "", "Argument[0]", "Argument[this].SyntheticField[System.Xml.Schema.XmlSchemaSet._nameTable]", "value", "dfc-generated"] @@ -109,7 +110,7 @@ extensions: - ["System.Xml.Schema", "XmlSchemaValidator", False, "Initialize", "(System.Xml.Schema.XmlSchemaObject)", "", "Argument[0]", "Argument[this].SyntheticField[System.Xml.Schema.XmlSchemaValidator._partialValidationType]", "value", "dfc-generated"] - ["System.Xml.Schema", "XmlSchemaValidator", False, "SkipToEndElement", "(System.Xml.Schema.XmlSchemaInfo)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateAttribute", "(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo)", "", "Argument[2]", "Argument[this]", "taint", "df-generated"] - - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateAttribute", "(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateAttribute", "(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateAttribute", "(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateElement", "(System.String,System.String,System.Xml.Schema.XmlSchemaInfo)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateElement", "(System.String,System.String,System.Xml.Schema.XmlSchemaInfo)", "", "Argument[1]", "Argument[this]", "taint", "df-generated"] @@ -121,7 +122,7 @@ extensions: - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateEndElement", "(System.Xml.Schema.XmlSchemaInfo)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateEndElement", "(System.Xml.Schema.XmlSchemaInfo,System.Object)", "", "Argument[1]", "Argument[0]", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateEndElement", "(System.Xml.Schema.XmlSchemaInfo,System.Object)", "", "Argument[1]", "Argument[this]", "taint", "df-generated"] - - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateEndElement", "(System.Xml.Schema.XmlSchemaInfo,System.Object)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateEndElement", "(System.Xml.Schema.XmlSchemaInfo,System.Object)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateEndElement", "(System.Xml.Schema.XmlSchemaInfo,System.Object)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaValidator", False, "ValidateEndElement", "(System.Xml.Schema.XmlSchemaInfo,System.Object)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Schema", "XmlSchemaValidator", False, "XmlSchemaValidator", "(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,System.Xml.Schema.XmlSchemaValidationFlags)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Xml.XPath.model.yml b/csharp/ql/lib/ext/generated/System.Xml.XPath.model.yml index 713f0d5c0f6..1a57b599d18 100644 --- a/csharp/ql/lib/ext/generated/System.Xml.XPath.model.yml +++ b/csharp/ql/lib/ext/generated/System.Xml.XPath.model.yml @@ -8,6 +8,7 @@ extensions: - ["System.Xml.XPath", "Extensions", False, "CreateNavigator", "(System.Xml.Linq.XNode,System.Xml.XmlNameTable)", "", "Argument[0]", "ReturnValue.SyntheticField[System.Xml.XPath.XNodeNavigator._source]", "value", "dfc-generated"] - ["System.Xml.XPath", "Extensions", False, "CreateNavigator", "(System.Xml.Linq.XNode,System.Xml.XmlNameTable)", "", "Argument[1]", "ReturnValue.SyntheticField[System.Xml.XPath.XNodeNavigator._nameTable]", "value", "dfc-generated"] - ["System.Xml.XPath", "IXPathNavigable", True, "CreateNavigator", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.XPath", "IXPathNavigable", True, "CreateNavigator", "()", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Xml.XPath", "XDocumentExtensions", False, "ToXPathNavigable", "(System.Xml.Linq.XNode)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.XPath", "XPathDocument", False, "XPathDocument", "(System.Xml.XmlReader,System.Xml.XmlSpace)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.XPath", "XPathException", True, "get_Message", "()", "", "Argument[this].Property[System.Exception.Message]", "ReturnValue", "value", "dfc-generated"] @@ -17,7 +18,7 @@ extensions: - ["System.Xml.XPath", "XPathExpression", True, "SetContext", "(System.Xml.IXmlNamespaceResolver)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.XPath", "XPathExpression", True, "SetContext", "(System.Xml.XmlNamespaceManager)", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] - ["System.Xml.XPath", "XPathExpression", True, "get_Expression", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System.Xml.XPath", "XPathItem", True, "ValueAs", "(System.Type)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.XPath", "XPathItem", True, "ValueAs", "(System.Type)", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System.Xml.XPath", "XPathItem", True, "ValueAs", "(System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.XPath", "XPathItem", True, "ValueAs", "(System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[this]", "Argument[1]", "taint", "df-generated"] - ["System.Xml.XPath", "XPathItem", True, "ValueAs", "(System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Xml.Xsl.Runtime.model.yml b/csharp/ql/lib/ext/generated/System.Xml.Xsl.Runtime.model.yml index b27cc848761..ba89318d165 100644 --- a/csharp/ql/lib/ext/generated/System.Xml.Xsl.Runtime.model.yml +++ b/csharp/ql/lib/ext/generated/System.Xml.Xsl.Runtime.model.yml @@ -123,13 +123,14 @@ extensions: - ["System.Xml.Xsl.Runtime", "XmlQueryOutput", False, "WriteStartNamespace", "(System.String)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryOutput", False, "WriteStartProcessingInstruction", "(System.String)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryOutput", False, "XsltCopyOf", "(System.Xml.XPath.XPathNavigator)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "ChangeTypeXsltArgument", "(System.Int32,System.Object,System.Type)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "ChangeTypeXsltResult", "(System.Int32,System.Object)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "ChangeTypeXsltArgument", "(System.Int32,System.Object,System.Type)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "ChangeTypeXsltResult", "(System.Int32,System.Object)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "DebugGetGlobalNames", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "DebugGetGlobalValue", "(System.String)", "", "Argument[this].SyntheticField[System.Xml.Xsl.Runtime.XmlQueryRuntime._globalValues].Element", "ReturnValue", "value", "dfc-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "DebugGetXsltValue", "(System.Collections.IList)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "DebugGetXsltValue", "(System.Collections.IList)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "DebugSetGlobalValue", "(System.String,System.Object)", "", "Argument[1]", "Argument[this].SyntheticField[System.Xml.Xsl.Runtime.XmlQueryRuntime._globalValues].Element", "value", "dfc-generated"] - - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "DocOrderDistinct", "(System.Collections.Generic.IList)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "DocOrderDistinct", "(System.Collections.Generic.IList)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "EndRtfConstruction", "(System.Xml.Xsl.Runtime.XmlQueryOutput)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "EndRtfConstruction", "(System.Xml.Xsl.Runtime.XmlQueryOutput)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "EndSequenceConstruction", "(System.Xml.Xsl.Runtime.XmlQueryOutput)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] @@ -142,6 +143,7 @@ extensions: - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "ParseTagName", "(System.String,System.Int32)", "", "Argument[0]", "ReturnValue.Property[System.Xml.XmlQualifiedName.Name]", "value", "dfc-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "ParseTagName", "(System.String,System.String)", "", "Argument[0]", "ReturnValue.Property[System.Xml.XmlQualifiedName.Name]", "value", "dfc-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "ParseTagName", "(System.String,System.String)", "", "Argument[1]", "ReturnValue.Property[System.Xml.XmlQualifiedName.Namespace]", "value", "dfc-generated"] + - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "SetGlobalValue", "(System.Int32,System.Object)", "", "Argument[1]", "Argument[this].SyntheticField[System.Xml.Xsl.Runtime.XmlQueryRuntime._globalValues].Element", "value", "dfc-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "StartRtfConstruction", "(System.String,System.Xml.Xsl.Runtime.XmlQueryOutput)", "", "Argument[0]", "Argument[1]", "taint", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "StartRtfConstruction", "(System.String,System.Xml.Xsl.Runtime.XmlQueryOutput)", "", "Argument[this]", "Argument[1]", "taint", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", False, "StartSequenceConstruction", "(System.Xml.Xsl.Runtime.XmlQueryOutput)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] @@ -321,7 +323,6 @@ extensions: - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", "MatchesXmlType", "(System.Xml.XPath.XPathItem,System.Xml.Schema.XmlTypeCode)", "summary", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", "OnCurrentNodeChanged", "(System.Xml.XPath.XPathNavigator)", "summary", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", "SendMessage", "(System.String)", "summary", "df-generated"] - - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", "SetGlobalValue", "(System.Int32,System.Object)", "summary", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", "ThrowException", "(System.String)", "summary", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQueryRuntime", "get_XsltFunctions", "()", "summary", "df-generated"] - ["System.Xml.Xsl.Runtime", "XmlQuerySequence", "Clear", "()", "summary", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.Xml.model.yml b/csharp/ql/lib/ext/generated/System.Xml.model.yml index 60dfe819232..884ac93a916 100644 --- a/csharp/ql/lib/ext/generated/System.Xml.model.yml +++ b/csharp/ql/lib/ext/generated/System.Xml.model.yml @@ -260,6 +260,7 @@ extensions: - ["System.Xml", "XmlNamespaceManager", True, "get_NameTable", "()", "", "Argument[this].SyntheticField[System.Xml.XmlNamespaceManager._nameTable]", "ReturnValue", "value", "dfc-generated"] - ["System.Xml", "XmlNode", True, "AppendChild", "(System.Xml.XmlNode)", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "AppendChild", "(System.Xml.XmlNode)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Xml", "XmlNode", True, "AppendChild", "(System.Xml.XmlNode)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml", "XmlNode", True, "AppendChild", "(System.Xml.XmlNode)", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "AppendChild", "(System.Xml.XmlNode)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "Clone", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] @@ -269,6 +270,7 @@ extensions: - ["System.Xml", "XmlNode", True, "InsertAfter", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[0].Element", "Argument[1].Element", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertAfter", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertAfter", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Xml", "XmlNode", True, "InsertAfter", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertAfter", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[1].Element", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertAfter", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[1].Element", "Argument[this]", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertAfter", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[1].Element", "ReturnValue", "taint", "df-generated"] @@ -277,20 +279,21 @@ extensions: - ["System.Xml", "XmlNode", True, "InsertBefore", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[0].Element", "Argument[1].Element", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertBefore", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertBefore", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Xml", "XmlNode", True, "InsertBefore", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertBefore", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[1].Element", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertBefore", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[1].Element", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertBefore", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertBefore", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[this]", "Argument[1].Element", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "InsertBefore", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "PrependChild", "(System.Xml.XmlNode)", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] - - ["System.Xml", "XmlNode", True, "PrependChild", "(System.Xml.XmlNode)", "", "Argument[0].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Xml", "XmlNode", True, "PrependChild", "(System.Xml.XmlNode)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml", "XmlNode", True, "PrependChild", "(System.Xml.XmlNode)", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "PrependChild", "(System.Xml.XmlNode)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "RemoveChild", "(System.Xml.XmlNode)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Xml", "XmlNode", True, "ReplaceChild", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[0].Element", "Argument[this]", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "ReplaceChild", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[1].Element", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "ReplaceChild", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[1].Element", "Argument[this]", "taint", "df-generated"] - - ["System.Xml", "XmlNode", True, "ReplaceChild", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[1].Element", "ReturnValue", "taint", "df-generated"] + - ["System.Xml", "XmlNode", True, "ReplaceChild", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] - ["System.Xml", "XmlNode", True, "ReplaceChild", "(System.Xml.XmlNode,System.Xml.XmlNode)", "", "Argument[this]", "Argument[0].Element", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "WriteContentTo", "(System.Xml.XmlWriter)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] - ["System.Xml", "XmlNode", True, "WriteTo", "(System.Xml.XmlWriter)", "", "Argument[this]", "Argument[0]", "taint", "df-generated"] @@ -386,13 +389,14 @@ extensions: - ["System.Xml", "XmlReader", True, "get_Value", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlReader", True, "get_XmlLang", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlReaderSettings", False, "set_XmlResolver", "(System.Xml.XmlResolver)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - - ["System.Xml", "XmlResolver", True, "GetEntity", "(System.Uri,System.String,System.Type)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml", "XmlResolver", True, "GetEntity", "(System.Uri,System.String,System.Type)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - ["System.Xml", "XmlResolver", True, "GetEntityAsync", "(System.Uri,System.String,System.Type)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlResolver", True, "ResolveUri", "(System.Uri,System.String)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["System.Xml", "XmlResolver", True, "ResolveUri", "(System.Uri,System.String)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] - ["System.Xml", "XmlResolver", True, "set_Credentials", "(System.Net.ICredentials)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml", "XmlSecureResolver", True, "GetEntity", "(System.Uri,System.String,System.Type)", "", "Argument[0].Property[System.Uri.LocalPath]", "ReturnValue", "taint", "dfc-generated"] - ["System.Xml", "XmlSecureResolver", True, "GetEntityAsync", "(System.Uri,System.String,System.Type)", "", "Argument[0].Property[System.Uri.LocalPath]", "ReturnValue.Property[System.Threading.Tasks.Task`1.Result]", "taint", "dfc-generated"] + - ["System.Xml", "XmlSecureResolver", True, "GetEntityAsync", "(System.Uri,System.String,System.Type)", "", "Argument[0]", "ReturnValue.Property[System.Threading.Tasks.Task`1.Result]", "taint", "dfc-generated"] - ["System.Xml", "XmlText", True, "SplitText", "(System.Int32)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlTextReader", False, "GetRemainder", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.IO.Stream,System.Xml.XmlNodeType,System.Xml.XmlParserContext)", "", "Argument[2]", "Argument[this]", "taint", "df-generated"] @@ -445,8 +449,8 @@ extensions: - ["System.Xml", "XmlWriter", False, "Create", "(System.Text.StringBuilder)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlWriter", False, "Create", "(System.Text.StringBuilder,System.Xml.XmlWriterSettings)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlWriter", False, "Create", "(System.Text.StringBuilder,System.Xml.XmlWriterSettings)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["System.Xml", "XmlWriter", False, "Create", "(System.Xml.XmlWriter)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["System.Xml", "XmlWriter", False, "Create", "(System.Xml.XmlWriter,System.Xml.XmlWriterSettings)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["System.Xml", "XmlWriter", False, "Create", "(System.Xml.XmlWriter)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["System.Xml", "XmlWriter", False, "Create", "(System.Xml.XmlWriter,System.Xml.XmlWriterSettings)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System.Xml", "XmlWriter", False, "Create", "(System.Xml.XmlWriter,System.Xml.XmlWriterSettings)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] - ["System.Xml", "XmlWriter", False, "WriteAttributeString", "(System.String,System.String)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System.Xml", "XmlWriter", False, "WriteAttributeString", "(System.String,System.String)", "", "Argument[1]", "Argument[this]", "taint", "df-generated"] diff --git a/csharp/ql/lib/ext/generated/System.model.yml b/csharp/ql/lib/ext/generated/System.model.yml index 7265d33e299..76de1acd16c 100644 --- a/csharp/ql/lib/ext/generated/System.model.yml +++ b/csharp/ql/lib/ext/generated/System.model.yml @@ -45,6 +45,7 @@ extensions: - ["System", "ArraySegment", False, "Slice", "(System.Int32,System.Int32)", "", "Argument[this].SyntheticField[System.ArraySegment`1._array]", "ReturnValue.SyntheticField[System.ArraySegment`1._array]", "value", "dfc-generated"] - ["System", "ArraySegment", False, "get_Array", "()", "", "Argument[this].SyntheticField[System.ArraySegment`1._array]", "ReturnValue", "value", "dfc-generated"] - ["System", "ArraySegment", False, "get_Item", "(System.Int32)", "", "Argument[this].SyntheticField[System.ArraySegment`1._array].Element", "ReturnValue", "value", "dfc-generated"] + - ["System", "ArraySegment", False, "set_Item", "(System.Int32,T)", "", "Argument[1]", "Argument[this].SyntheticField[System.ArraySegment`1._array].Element", "value", "dfc-generated"] - ["System", "Attribute", True, "get_TypeId", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System", "BadImageFormatException", False, "BadImageFormatException", "(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", "", "Argument[0].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element", "Argument[this].SyntheticField[System.BadImageFormatException._fileName]", "value", "dfc-generated"] - ["System", "BadImageFormatException", False, "BadImageFormatException", "(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", "", "Argument[0].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element", "Argument[this].SyntheticField[System.BadImageFormatException._fusionLog]", "value", "dfc-generated"] @@ -94,7 +95,7 @@ extensions: - ["System", "Exception", False, "Exception", "(System.String,System.Exception)", "", "Argument[1]", "Argument[this].SyntheticField[System.Exception._innerException]", "value", "dfc-generated"] - ["System", "Exception", False, "ToString", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System", "Exception", False, "get_InnerException", "()", "", "Argument[this].SyntheticField[System.Exception._innerException]", "ReturnValue", "value", "dfc-generated"] - - ["System", "Exception", True, "GetBaseException", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] + - ["System", "Exception", True, "GetBaseException", "()", "", "Argument[this]", "ReturnValue", "value", "df-generated"] - ["System", "Exception", True, "get_Message", "()", "", "Argument[this].SyntheticField[System.Exception._message]", "ReturnValue", "value", "dfc-generated"] - ["System", "Exception", True, "get_StackTrace", "()", "", "Argument[this].SyntheticField[System.Exception._remoteStackTraceString]", "ReturnValue", "value", "dfc-generated"] - ["System", "FormattableString", False, "CurrentCulture", "(System.FormattableString)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -717,28 +718,17 @@ extensions: - ["System", "Uri", False, "GetComponents", "(System.UriComponents,System.UriFormat)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System", "Uri", False, "GetLeftPart", "(System.UriPartial)", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System", "Uri", False, "MakeRelative", "(System.Uri)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["System", "Uri", False, "MakeRelativeUri", "(System.Uri)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["System", "Uri", False, "ToString", "(System.String,System.IFormatProvider)", "", "Argument[this].SyntheticField[System.Uri._string]", "ReturnValue", "value", "dfc-generated"] - - ["System", "Uri", False, "TryCreate", "(System.String,System.UriCreationOptions,System.Uri)", "", "Argument[0]", "Argument[2].SyntheticField[System.Uri._string]", "value", "dfc-generated"] - - ["System", "Uri", False, "TryCreate", "(System.String,System.UriKind,System.Uri)", "", "Argument[0]", "Argument[2].SyntheticField[System.Uri._string]", "value", "dfc-generated"] - - ["System", "Uri", False, "TryCreate", "(System.Uri,System.String,System.Uri)", "", "Argument[1]", "Argument[2].SyntheticField[System.Uri._string]", "value", "dfc-generated"] - - ["System", "Uri", False, "TryCreate", "(System.Uri,System.Uri,System.Uri)", "", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["System", "Uri", False, "TryCreate", "(System.Uri,System.Uri,System.Uri)", "", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - ["System", "Uri", False, "MakeRelativeUri", "(System.Uri)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - ["System", "Uri", False, "TryEscapeDataString", "(System.ReadOnlySpan,System.Span,System.Int32)", "", "Argument[0].Element", "Argument[1].Element", "value", "dfc-generated"] - ["System", "Uri", False, "TryUnescapeDataString", "(System.ReadOnlySpan,System.Span,System.Int32)", "", "Argument[0].Element", "Argument[1].Element", "value", "dfc-generated"] - ["System", "Uri", False, "UnescapeDataString", "(System.ReadOnlySpan)", "", "Argument[0].Element", "ReturnValue", "taint", "dfc-generated"] - ["System", "Uri", False, "UnescapeDataString", "(System.String)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["System", "Uri", False, "Uri", "(System.String,System.UriCreationOptions)", "", "Argument[0]", "Argument[this].SyntheticField[System.Uri._string]", "value", "dfc-generated"] - - ["System", "Uri", False, "Uri", "(System.Uri,System.String)", "", "Argument[1]", "Argument[this].SyntheticField[System.Uri._string]", "value", "dfc-generated"] - - ["System", "Uri", False, "Uri", "(System.Uri,System.String,System.Boolean)", "", "Argument[1]", "Argument[this].SyntheticField[System.Uri._string]", "value", "dfc-generated"] - ["System", "Uri", False, "Uri", "(System.Uri,System.Uri)", "", "Argument[0]", "Argument[this]", "taint", "df-generated"] - ["System", "Uri", False, "Uri", "(System.Uri,System.Uri)", "", "Argument[1]", "Argument[this]", "taint", "df-generated"] - ["System", "Uri", False, "get_AbsolutePath", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System", "Uri", False, "get_Authority", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System", "Uri", False, "get_DnsSafeHost", "()", "", "Argument[this].Property[System.Uri.IdnHost]", "ReturnValue", "value", "dfc-generated"] - ["System", "Uri", False, "get_Host", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System", "Uri", False, "get_IdnHost", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - - ["System", "Uri", False, "get_LocalPath", "()", "", "Argument[this].SyntheticField[System.Uri._string]", "ReturnValue", "value", "dfc-generated"] - ["System", "Uri", False, "get_Scheme", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System", "Uri", False, "get_UserInfo", "()", "", "Argument[this]", "ReturnValue", "taint", "df-generated"] - ["System", "UriParser", False, "Register", "(System.UriParser,System.String,System.Int32)", "", "Argument[1]", "Argument[0]", "taint", "df-generated"] @@ -1031,7 +1021,6 @@ extensions: - ["System", "ArraySegment", "get_Offset", "()", "summary", "df-generated"] - ["System", "ArraySegment", "op_Equality", "(System.ArraySegment,System.ArraySegment)", "summary", "df-generated"] - ["System", "ArraySegment", "op_Inequality", "(System.ArraySegment,System.ArraySegment)", "summary", "df-generated"] - - ["System", "ArraySegment", "set_Item", "(System.Int32,T)", "summary", "df-generated"] - ["System", "ArrayTypeMismatchException", "ArrayTypeMismatchException", "(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", "summary", "df-generated"] - ["System", "ArrayTypeMismatchException", "ArrayTypeMismatchException", "(System.String)", "summary", "df-generated"] - ["System", "ArrayTypeMismatchException", "ArrayTypeMismatchException", "(System.String,System.Exception)", "summary", "df-generated"] @@ -5373,7 +5362,6 @@ extensions: - ["System", "Uri", "TryFormat", "(System.Span,System.Int32,System.ReadOnlySpan,System.IFormatProvider)", "summary", "df-generated"] - ["System", "Uri", "Unescape", "(System.String)", "summary", "df-generated"] - ["System", "Uri", "Uri", "(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)", "summary", "df-generated"] - - ["System", "Uri", "get_AbsoluteUri", "()", "summary", "df-generated"] - ["System", "Uri", "get_Fragment", "()", "summary", "df-generated"] - ["System", "Uri", "get_HostNameType", "()", "summary", "df-generated"] - ["System", "Uri", "get_IsAbsoluteUri", "()", "summary", "df-generated"] From 8603d76e2abe7050e24521db8ffa78ae04228b52 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Tue, 13 May 2025 14:15:10 +0200 Subject: [PATCH 398/656] C#: Update flowsummaries expected test file. --- .../dataflow/library/FlowSummaries.expected | 485 +++++++++++++----- .../library/FlowSummariesFiltered.expected | 418 +++++++++++---- 2 files changed, 670 insertions(+), 233 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index 21fcfa594e6..c3eb0402922 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -1553,6 +1553,7 @@ summary | Microsoft.AspNetCore.Mvc;MvcViewOptions;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.AspNetCore.Mvc;RemoteAttributeBase;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | Microsoft.AspNetCore.Mvc;RemoteAttributeBase;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| Microsoft.AspNetCore.Mvc;RemoteAttributeBase;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;AddBasePolicy;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;AddBasePolicy;(System.Action,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.OutputCaching;OutputCacheOptions;AddPolicy;(System.String,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -1882,9 +1883,9 @@ summary | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[],System.Collections.Generic.IDictionary);Argument[2];Argument[0];taint;manual | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[],System.Collections.Generic.IDictionary);Argument[2];ReturnValue;taint;manual | | Microsoft.Extensions.Configuration;ConfigurationBinder;Bind;(Microsoft.Extensions.Configuration.IConfiguration,System.Object,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);Argument[0];ReturnValue;value;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);Argument[3];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);Argument[2];ReturnValue;value;dfc-generated | @@ -6740,7 +6741,7 @@ summary | System.Collections.Concurrent;Partitioner;Create;(System.Collections.Generic.IEnumerable,System.Collections.Concurrent.EnumerablePartitionerOptions);Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Concurrent;Partitioner;Create;(System.Collections.Generic.IList,System.Boolean);Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Concurrent;Partitioner;Create;(TSource[],System.Boolean);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Frozen;FrozenDictionary;ToFrozenDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Frozen;FrozenDictionary;ToFrozenDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;value;df-generated | | System.Collections.Frozen;FrozenDictionary;ToFrozenDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Frozen;FrozenDictionary;ToFrozenDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Frozen;FrozenDictionary;ToFrozenDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -6777,7 +6778,7 @@ summary | System.Collections.Frozen;FrozenDictionary;set_Item;(TKey,TValue);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Frozen;FrozenSet;Create;(System.Collections.Generic.IEqualityComparer,System.ReadOnlySpan);Argument[1];ReturnValue;taint;df-generated | | System.Collections.Frozen;FrozenSet;Create;(System.ReadOnlySpan);Argument[0];ReturnValue;taint;df-generated | -| System.Collections.Frozen;FrozenSet;ToFrozenSet;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Frozen;FrozenSet;ToFrozenSet;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;value;df-generated | | System.Collections.Frozen;FrozenSet+AlternateLookup;Contains;(TAlternate);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenSet+AlternateLookup;TryGetValue;(TAlternate,T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenSet+AlternateLookup;TryGetValue;(TAlternate,T);Argument[this];Argument[1];taint;df-generated | @@ -6924,8 +6925,12 @@ summary | System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;LinkedList;Add;(T);Argument[0];Argument[this].Element;value;manual | +| System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];Argument[1].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];Argument[1].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];value;dfc-generated | +| System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[1];Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | +| System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,T);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];ReturnValue.SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,T);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];ReturnValue.SyntheticField[System.Collections.Generic.LinkedListNode`1.next];value;dfc-generated | +| System.Collections.Generic;LinkedList;AddBefore;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[1];Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;AddBefore;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[1];Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head];value;dfc-generated | | System.Collections.Generic;LinkedList;AddBefore;(System.Collections.Generic.LinkedListNode,T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;AddBefore;(System.Collections.Generic.LinkedListNode,T);Argument[0];ReturnValue;taint;df-generated | @@ -6937,6 +6942,7 @@ summary | System.Collections.Generic;LinkedList;AddFirst;(T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;AddFirst;(T);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Generic;LinkedList;AddFirst;(T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Generic;LinkedList;AddLast;(System.Collections.Generic.LinkedListNode);Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;AddLast;(System.Collections.Generic.LinkedListNode);Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head];Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];value;dfc-generated | | System.Collections.Generic;LinkedList;AddLast;(T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;AddLast;(T);Argument[0];ReturnValue;taint;df-generated | @@ -6953,8 +6959,9 @@ summary | System.Collections.Generic;LinkedList;LinkedList;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;LinkedList;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;Remove;(System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head];value;dfc-generated | +| System.Collections.Generic;LinkedList;Remove;(System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;get_First;();Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head];ReturnValue;value;dfc-generated | -| System.Collections.Generic;LinkedList;get_Last;();Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Generic;LinkedList;get_Last;();Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];ReturnValue;value;dfc-generated | | System.Collections.Generic;LinkedList;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Generic;LinkedListNode;LinkedListNode;(T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;LinkedListNode;get_List;();Argument[this];ReturnValue;taint;df-generated | @@ -7446,13 +7453,13 @@ summary | System.Collections.Immutable;ImmutableArray;Slice;(System.Int32,System.Int32);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Collections.Generic.IComparer);Argument[this];Argument[0];taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Sort;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray;Sort;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[this];ReturnValue;value;hq-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);Argument[this];Argument[2];taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableArray;ToBuilder;();Argument[this].Element;ReturnValue.Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableArray;get_Item;(System.Int32);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;ReturnValue;value;dfc-generated | @@ -7565,13 +7572,16 @@ summary | System.Collections.Immutable;ImmutableDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Immutable;ImmutableDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableDictionary`2+Enumerator.Current];value;manual | -| System.Collections.Immutable;ImmutableDictionary;Remove;(TKey);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableDictionary;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableDictionary;Remove;(TKey);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableDictionary;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableDictionary;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;TryGetKey;(TKey,TKey);Argument[0];Argument[1];value;dfc-generated | +| System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;dfc-generated | +| System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._valueComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | @@ -7613,16 +7623,19 @@ summary | System.Collections.Immutable;ImmutableHashSet;Clear;();Argument[this].WithoutElement;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableHashSet;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableHashSet;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Immutable;ImmutableHashSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableHashSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Immutable;ImmutableHashSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableHashSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableHashSet`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableHashSet;Intersect;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableHashSet;Remove;(T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableHashSet;Remove;(T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableHashSet;TryGetValue;(T,T);Argument[0];Argument[1];value;dfc-generated | +| System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;dfc-generated | +| System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;WithComparer;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;get_KeyComparer;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableHashSet;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | @@ -7674,17 +7687,17 @@ summary | System.Collections.Immutable;ImmutableList;Create;(System.ReadOnlySpan);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList;Create;(T);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList;Create;(T[]);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;CreateRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;CreateRange;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;IndexOf;(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableList;IndexOf;(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableList;LastIndexOf;(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableList;LastIndexOf;(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[2];taint;df-generated | -| System.Collections.Immutable;ImmutableList;Remove;(System.Collections.Immutable.IImmutableList,T);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Immutable.IImmutableList,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;Replace;(System.Collections.Immutable.IImmutableList,T,T);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;Remove;(System.Collections.Immutable.IImmutableList,T);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Immutable.IImmutableList,System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableList;Replace;(System.Collections.Immutable.IImmutableList,T,T);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(System.Collections.Immutable.IImmutableList,T,T);Argument[2];Argument[0].Element;taint;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(System.Collections.Immutable.IImmutableList,T,T);Argument[2];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;ToImmutableList;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;ToImmutableList;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList+Builder;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList+Builder;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList+Builder;AddRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;manual | @@ -7783,27 +7796,26 @@ summary | System.Collections.Immutable;ImmutableList;Insert;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);Argument[1].Element;Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList;LastIndexOf;(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[3];taint;df-generated | -| System.Collections.Immutable;ImmutableList;Remove;(T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;Remove;(T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[1];taint;df-generated | -| System.Collections.Immutable;ImmutableList;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList;RemoveAt;(System.Int32);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;RemoveAt;(System.Int32);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Int32,System.Int32);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Int32,System.Int32);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(T,T);Argument[1];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(T,T);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;Replace;(T,T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;Replace;(T,T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Reverse;();Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableList;Reverse;(System.Int32,System.Int32);Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableList;SetItem;(System.Int32,T);Argument[1];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableList;SetItem;(System.Int32,T);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;SetItem;(System.Int32,T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;SetItem;(System.Int32,T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Sort;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | @@ -7840,15 +7852,15 @@ summary | System.Collections.Immutable;ImmutableSortedDictionary;CreateBuilder;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;CreateBuilder;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);Argument[1].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);Argument[1];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);Argument[2];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | @@ -7931,17 +7943,27 @@ summary | System.Collections.Immutable;ImmutableSortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator.Current];value;manual | -| System.Collections.Immutable;ImmutableSortedDictionary;Remove;(TKey);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;Remove;(TKey);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;TryGetKey;(TKey,TKey);Argument[0];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;TryGetKey;(TKey,TKey);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];Argument[1];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;get_Item;(System.Object);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;get_Item;(TKey);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;get_KeyComparer;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];ReturnValue;value;dfc-generated | @@ -7965,10 +7987,10 @@ summary | System.Collections.Immutable;ImmutableSortedSet;Create;(T[]);Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet;CreateBuilder;(System.Collections.Generic.IComparer);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;CreateRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;ToImmutableSortedSet;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;ToImmutableSortedSet;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);Argument[1];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;CreateRange;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;ToImmutableSortedSet;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;ToImmutableSortedSet;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;ToImmutableSortedSet;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet+Builder;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet+Builder;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -7998,24 +8020,30 @@ summary | System.Collections.Immutable;ImmutableSortedSet;Clear;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Immutable;ImmutableSortedSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet;Insert;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet;Insert;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | -| System.Collections.Immutable;ImmutableSortedSet;Intersect;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;Remove;(T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;Intersect;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;Remove;(T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;Reverse;();Argument[this].Element;ReturnValue.Element;value;manual | +| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet;TryGetValue;(T,T);Argument[0];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;TryGetValue;(T,T);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];Argument[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableSortedSet;get_KeyComparer;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;get_Max;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];ReturnValue;value;dfc-generated | @@ -8447,6 +8475,7 @@ summary | System.ComponentModel.DataAnnotations.Schema;InversePropertyAttribute;InversePropertyAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.Schema.InversePropertyAttribute.Property];value;dfc-generated | | System.ComponentModel.DataAnnotations.Schema;TableAttribute;TableAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.Schema.TableAttribute.Name];value;dfc-generated | | System.ComponentModel.DataAnnotations;AllowedValuesAttribute;AllowedValuesAttribute;(System.Object[]);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.AllowedValuesAttribute.Values];value;dfc-generated | +| System.ComponentModel.DataAnnotations;AllowedValuesAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;AssociatedMetadataTypeTypeDescriptionProvider;GetTypeDescriptor;(System.Type,System.Object);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;AssociatedMetadataTypeTypeDescriptionProvider;GetTypeDescriptor;(System.Type,System.Object);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;AssociationAttribute;AssociationAttribute;(System.String,System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.AssociationAttribute.Name];value;dfc-generated | @@ -8454,16 +8483,24 @@ summary | System.ComponentModel.DataAnnotations;AssociationAttribute;AssociationAttribute;(System.String,System.String,System.String);Argument[2];Argument[this].Property[System.ComponentModel.DataAnnotations.AssociationAttribute.OtherKey];value;dfc-generated | | System.ComponentModel.DataAnnotations;AssociationAttribute;get_OtherKeyMembers;();Argument[this].Property[System.ComponentModel.DataAnnotations.AssociationAttribute.OtherKey];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel.DataAnnotations;AssociationAttribute;get_ThisKeyMembers;();Argument[this].Property[System.ComponentModel.DataAnnotations.AssociationAttribute.ThisKey];ReturnValue.Element;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;Base64StringAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;CompareAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];value;dfc-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;dfc-generated | +| System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherPropertyDisplayName];value;df-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherPropertyDisplayName];value;dfc-generated | +| System.ComponentModel.DataAnnotations;CreditCardAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;CustomValidationAttribute;CustomValidationAttribute;(System.Type,System.String);Argument[1];Argument[this].Property[System.ComponentModel.DataAnnotations.CustomValidationAttribute.Method];value;dfc-generated | | System.ComponentModel.DataAnnotations;CustomValidationAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;CustomValidationAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;CustomValidationAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;DataTypeAttribute;DataTypeAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.DataTypeAttribute.CustomDataType];value;dfc-generated | | System.ComponentModel.DataAnnotations;DataTypeAttribute;GetDataTypeName;();Argument[this].Property[System.ComponentModel.DataAnnotations.DataTypeAttribute.CustomDataType];ReturnValue;value;dfc-generated | +| System.ComponentModel.DataAnnotations;DataTypeAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;DeniedValuesAttribute;DeniedValuesAttribute;(System.Object[]);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.DeniedValuesAttribute.Values];value;dfc-generated | +| System.ComponentModel.DataAnnotations;DeniedValuesAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;DisplayAttribute;GetAutoGenerateField;();Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;DisplayAttribute;GetAutoGenerateFilter;();Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;DisplayAttribute;GetDescription;();Argument[this];ReturnValue;taint;df-generated | @@ -8475,8 +8512,11 @@ summary | System.ComponentModel.DataAnnotations;DisplayColumnAttribute;DisplayColumnAttribute;(System.String,System.String,System.Boolean);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.DisplayColumnAttribute.DisplayColumn];value;dfc-generated | | System.ComponentModel.DataAnnotations;DisplayColumnAttribute;DisplayColumnAttribute;(System.String,System.String,System.Boolean);Argument[1];Argument[this].Property[System.ComponentModel.DataAnnotations.DisplayColumnAttribute.SortColumn];value;dfc-generated | | System.ComponentModel.DataAnnotations;DisplayFormatAttribute;GetNullDisplayText;();Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel.DataAnnotations;EmailAddressAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;EnumDataTypeAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;FileExtensionsAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;FileExtensionsAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;FileExtensionsAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;FilterUIHintAttribute;(System.String,System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.FilterUIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.UIHint];value;dfc-generated | | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;FilterUIHintAttribute;(System.String,System.String,System.Object[]);Argument[1];Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.FilterUIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.PresentationLayer];value;dfc-generated | | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;get_ControlParameters;();Argument[this];ReturnValue;taint;df-generated | @@ -8484,27 +8524,41 @@ summary | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;get_PresentationLayer;();Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.FilterUIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.PresentationLayer];ReturnValue;value;dfc-generated | | System.ComponentModel.DataAnnotations;LengthAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;LengthAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;LengthAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;MaxLengthAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;MaxLengthAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;MaxLengthAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;MinLengthAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;MinLengthAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;MinLengthAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;PhoneAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;RangeAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;RangeAttribute;(System.Type,System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.DataAnnotations.RangeAttribute.Minimum];value;dfc-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;RangeAttribute;(System.Type,System.String,System.String);Argument[2];Argument[this].Property[System.ComponentModel.DataAnnotations.RangeAttribute.Maximum];value;dfc-generated | | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.RegularExpressionAttribute.Pattern];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;RegularExpressionAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;RegularExpressionAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.RegularExpressionAttribute.Pattern];value;dfc-generated | +| System.ComponentModel.DataAnnotations;RequiredAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;StringLengthAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;StringLengthAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;StringLengthAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;UIHintAttribute;(System.String,System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.UIHint];value;dfc-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;UIHintAttribute;(System.String,System.String,System.Object[]);Argument[1];Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.PresentationLayer];value;dfc-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;get_ControlParameters;();Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;get_PresentationLayer;();Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.PresentationLayer];ReturnValue;value;dfc-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;get_UIHint;();Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.UIHint];ReturnValue;value;dfc-generated | +| System.ComponentModel.DataAnnotations;UrlAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;GetValidationResult;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;Validate;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;Validate;(System.Object,System.String);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;ValidationAttribute;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;ValidationAttribute;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;ValidationAttribute;(System.Func);Argument[0];Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.ValidationAttribute._errorMessageResourceAccessor];value;dfc-generated | @@ -8667,8 +8721,12 @@ summary | System.ComponentModel;AmbientValueAttribute;AmbientValueAttribute;(System.String);Argument[0];Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];value;dfc-generated | | System.ComponentModel;AmbientValueAttribute;AmbientValueAttribute;(System.Type,System.String);Argument[1];Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];value;dfc-generated | | System.ComponentModel;AmbientValueAttribute;get_Value;();Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];ReturnValue;value;dfc-generated | +| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ArrayConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;AsyncCompletedEventArgs;AsyncCompletedEventArgs;(System.Exception,System.Boolean,System.Object);Argument[0];Argument[this].Property[System.ComponentModel.AsyncCompletedEventArgs.Error];value;dfc-generated | | System.ComponentModel;AsyncCompletedEventArgs;AsyncCompletedEventArgs;(System.Exception,System.Boolean,System.Object);Argument[2];Argument[this].Property[System.ComponentModel.AsyncCompletedEventArgs.UserState];value;dfc-generated | @@ -8698,8 +8756,12 @@ summary | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;BindingList;ApplySort;(System.ComponentModel.PropertyDescriptor,System.ComponentModel.ListSortDirection);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;BindingList;Find;(System.ComponentModel.PropertyDescriptor,System.Object);Argument[this].Element;ReturnValue;value;manual | | System.ComponentModel;BindingList;InsertItem;(System.Int32,T);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | @@ -8721,11 +8783,19 @@ summary | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CollectionChangeEventHandler;BeginInvoke;(System.Object,System.ComponentModel.CollectionChangeEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CollectionConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;ComplexBindingPropertiesAttribute;ComplexBindingPropertiesAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.ComplexBindingPropertiesAttribute.DataSource];value;dfc-generated | | System.ComponentModel;ComplexBindingPropertiesAttribute;ComplexBindingPropertiesAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.ComplexBindingPropertiesAttribute.DataSource];value;dfc-generated | @@ -8749,8 +8819,12 @@ summary | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CultureInfoConverter;GetCultureName;(System.Globalization.CultureInfo);Argument[0].Property[System.Globalization.CultureInfo.Name];ReturnValue;value;dfc-generated | | System.ComponentModel;CultureInfoConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;CustomTypeDescriptor;CustomTypeDescriptor;(System.ComponentModel.ICustomTypeDescriptor);Argument[0];Argument[this].SyntheticField[System.ComponentModel.CustomTypeDescriptor._parent];value;dfc-generated | @@ -8762,20 +8836,36 @@ summary | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DefaultBindingPropertyAttribute;DefaultBindingPropertyAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultBindingPropertyAttribute.Name];value;dfc-generated | | System.ComponentModel;DefaultEventAttribute;DefaultEventAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultEventAttribute.Name];value;dfc-generated | | System.ComponentModel;DefaultPropertyAttribute;DefaultPropertyAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultPropertyAttribute.Name];value;dfc-generated | @@ -8821,8 +8911,12 @@ summary | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;df-generated | | System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;dfc-generated | | System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | @@ -8856,8 +8950,12 @@ summary | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;HandledEventHandler;BeginInvoke;(System.Object,System.ComponentModel.HandledEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;IBindingList;ApplySort;(System.ComponentModel.PropertyDescriptor,System.ComponentModel.ListSortDirection);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;IBindingList;Find;(System.ComponentModel.PropertyDescriptor,System.Object);Argument[this].Element;ReturnValue;value;manual | @@ -8952,8 +9050,12 @@ summary | System.ComponentModel;MemberDescriptor;get_Attributes;();Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;MemberDescriptor;get_DisplayName;();Argument[this].SyntheticField[System.ComponentModel.MemberDescriptor._displayName];ReturnValue;value;dfc-generated | | System.ComponentModel;MemberDescriptor;get_Name;();Argument[this].SyntheticField[System.ComponentModel.MemberDescriptor._name];ReturnValue;value;dfc-generated | +| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;MultilineStringConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;NestedContainer;CreateSite;(System.ComponentModel.IComponent,System.String);Argument[1];ReturnValue.SyntheticField[System.ComponentModel.NestedContainer+Site._name];value;dfc-generated | | System.ComponentModel;NestedContainer;CreateSite;(System.ComponentModel.IComponent,System.String);Argument[this];ReturnValue.SyntheticField[System.ComponentModel.Container+Site.Container];value;dfc-generated | @@ -8964,9 +9066,14 @@ summary | System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;NullableConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;ProgressChangedEventArgs;ProgressChangedEventArgs;(System.Int32,System.Object);Argument[1];Argument[this].SyntheticField[System.ComponentModel.ProgressChangedEventArgs._userState];value;dfc-generated | @@ -9044,8 +9151,12 @@ summary | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ReferenceConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;RefreshEventArgs;RefreshEventArgs;(System.Object);Argument[0];Argument[this].Property[System.ComponentModel.RefreshEventArgs.ComponentChanged];value;dfc-generated | | System.ComponentModel;RefreshEventHandler;BeginInvoke;(System.ComponentModel.RefreshEventArgs,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -9059,13 +9170,21 @@ summary | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ToolboxItemAttribute;ToolboxItemAttribute;(System.String);Argument[0];Argument[this].SyntheticField[System.ComponentModel.ToolboxItemAttribute._toolboxItemTypeName];value;dfc-generated | | System.ComponentModel;ToolboxItemAttribute;get_ToolboxItemTypeName;();Argument[this].SyntheticField[System.ComponentModel.ToolboxItemAttribute._toolboxItemTypeName];ReturnValue;value;dfc-generated | | System.ComponentModel;ToolboxItemFilterAttribute;ToString;();Argument[this].Property[System.ComponentModel.ToolboxItemFilterAttribute.FilterString];ReturnValue;taint;dfc-generated | @@ -9087,18 +9206,25 @@ summary | System.ComponentModel;TypeConverter;ConvertFromString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.String);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertFromString;(System.ComponentModel.ITypeDescriptorContext,System.String);Argument[1];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertFromString;(System.String);Argument[0];ReturnValue;value;dfc-generated | +| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.ComponentModel;TypeConverter;ConvertTo;(System.Object,System.Type);Argument[0];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;TypeConverter;ConvertTo;(System.Object,System.Type);Argument[0];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.Object,System.Type);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.Object);Argument[0];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.Object);Argument[0];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.Object);Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;TypeConverter;ConvertToString;(System.Object);Argument[0];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertToString;(System.Object);Argument[0];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.Object);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | @@ -9132,15 +9258,23 @@ summary | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeListConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;TypeListConverter;(System.Type[]);Argument[0].Element;Argument[this];taint;df-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;WarningException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;df-generated | | System.ComponentModel;WarningException;WarningException;(System.String,System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.WarningException.HelpUrl];value;dfc-generated | | System.ComponentModel;WarningException;WarningException;(System.String,System.String,System.String);Argument[2];Argument[this].Property[System.ComponentModel.WarningException.HelpTopic];value;dfc-generated | @@ -9248,8 +9382,12 @@ summary | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;df-generated | | System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;df-generated | @@ -9451,8 +9589,12 @@ summary | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;IApplicationSettingsProvider;GetPreviousVersion;(System.Configuration.SettingsContext,System.Configuration.SettingsProperty);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;IConfigurationSectionHandler;Create;(System.Object,System.Object,System.Xml.XmlNode);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Configuration;IdnElement;get_Properties;();Argument[this];ReturnValue;taint;df-generated | @@ -9464,13 +9606,21 @@ summary | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;IntegerValidator;Validate;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Configuration;IntegerValidatorAttribute;get_ValidatorInstance;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;IriParsingElement;get_Properties;();Argument[this];ReturnValue;taint;df-generated | @@ -9620,23 +9770,39 @@ summary | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanValidator;TimeSpanValidator;(System.TimeSpan,System.TimeSpan,System.Boolean,System.Int64);Argument[0];Argument[this];taint;df-generated | | System.Configuration;TimeSpanValidator;TimeSpanValidator;(System.TimeSpan,System.TimeSpan,System.Boolean,System.Int64);Argument[1];Argument[this];taint;df-generated | | System.Configuration;TimeSpanValidator;Validate;(System.Object);Argument[0];Argument[this];taint;df-generated | @@ -9644,8 +9810,12 @@ summary | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;UriSection;get_Idn;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;UriSection;get_IriParsing;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;UriSection;get_Properties;();Argument[this];ReturnValue;taint;df-generated | @@ -9654,8 +9824,12 @@ summary | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Data.Common;DBDataPermission;Copy;();Argument[this];ReturnValue;value;dfc-generated | | System.Data.Common;DBDataPermission;Intersect;(System.Security.IPermission);Argument[0];ReturnValue;value;dfc-generated | | System.Data.Common;DBDataPermission;Union;(System.Security.IPermission);Argument[this];ReturnValue;taint;df-generated | @@ -11392,8 +11566,12 @@ summary | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing.Printing;PageSettings;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Drawing.Printing;PrintDocument;add_BeginPrint;(System.Drawing.Printing.PrintEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing.Printing;PrintDocument;add_EndPrint;(System.Drawing.Printing.PrintEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -11431,9 +11609,14 @@ summary | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ColorConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.Drawing;ColorTranslator;ToHtml;(System.Drawing.Color);Argument[0].Property[System.Drawing.Color.Name];ReturnValue;value;dfc-generated | | System.Drawing;ColorTranslator;ToHtml;(System.Drawing.Color);Argument[0].SyntheticField[System.Drawing.Color.name];ReturnValue;value;dfc-generated | @@ -11450,8 +11633,12 @@ summary | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;FontConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;Graphics+DrawImageAbort;BeginInvoke;(System.IntPtr,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Drawing;Graphics+EnumerateMetafileProc;BeginInvoke;(System.Drawing.Imaging.EmfPlusRecordType,System.Int32,System.Int32,System.IntPtr,System.Drawing.Imaging.PlayRecordCallback,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | @@ -11506,8 +11693,12 @@ summary | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;Image+GetThumbnailImageAbort;BeginInvoke;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing;Image;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Drawing;Image;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;df-generated | @@ -11517,45 +11708,73 @@ summary | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ImageConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ImageFormatConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.Drawing;Pen;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;PointConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;Rectangle;Inflate;(System.Drawing.Rectangle,System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;RectangleConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;RectangleF;Inflate;(System.Drawing.RectangleF,System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;SizeConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;SizeFConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;SolidBrush;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Drawing;StringFormat;Clone;();Argument[this];ReturnValue;value;dfc-generated | @@ -11659,7 +11878,7 @@ summary | System.Globalization;CultureInfo;GetCultureInfo;(System.String,System.String);Argument[1];ReturnValue;taint;df-generated | | System.Globalization;CultureInfo;GetCultureInfoByIetfLanguageTag;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Globalization;CultureInfo;GetFormat;(System.Type);Argument[this];ReturnValue;value;dfc-generated | -| System.Globalization;CultureInfo;ReadOnly;(System.Globalization.CultureInfo);Argument[0];ReturnValue;taint;df-generated | +| System.Globalization;CultureInfo;ReadOnly;(System.Globalization.CultureInfo);Argument[0];ReturnValue;value;df-generated | | System.Globalization;CultureInfo;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Globalization;CultureInfo;get_Calendar;();Argument[this];ReturnValue;taint;df-generated | | System.Globalization;CultureInfo;get_DisplayName;();Argument[this];ReturnValue;taint;df-generated | @@ -12920,12 +13139,12 @@ summary | System.Linq.Expressions;Expression;Unbox;(System.Linq.Expressions.Expression,System.Type);Argument[0];ReturnValue.Property[System.Linq.Expressions.UnaryExpression.Operand];value;dfc-generated | | System.Linq.Expressions;Expression;Variable;(System.Type,System.String);Argument[1];ReturnValue.Property[System.Linq.Expressions.ParameterExpression.Name];value;dfc-generated | | System.Linq.Expressions;Expression;VisitChildren;(System.Linq.Expressions.ExpressionVisitor);Argument[this];Argument[0];taint;df-generated | -| System.Linq.Expressions;Expression;VisitChildren;(System.Linq.Expressions.ExpressionVisitor);Argument[this];ReturnValue;taint;df-generated | +| System.Linq.Expressions;Expression;VisitChildren;(System.Linq.Expressions.ExpressionVisitor);Argument[this];ReturnValue;value;df-generated | | System.Linq.Expressions;Expression;Accept;(System.Linq.Expressions.ExpressionVisitor);Argument[this];ReturnValue;value;dfc-generated | | System.Linq.Expressions;Expression;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue;taint;df-generated | | System.Linq.Expressions;Expression;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);Argument[0].Element;Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Linq.Expressions.Expression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | @@ -12934,15 +13153,15 @@ summary | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);Argument[0].Element;Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(T,System.String);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(T,System.String);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(T,System.String);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitBinary;(System.Linq.Expressions.BinaryExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitBinary;(System.Linq.Expressions.BinaryExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitBinary;(System.Linq.Expressions.BinaryExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitBlock;(System.Linq.Expressions.BlockExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitCatchBlock;(System.Linq.Expressions.CatchBlock);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitConditional;(System.Linq.Expressions.ConditionalExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitConditional;(System.Linq.Expressions.ConditionalExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitConditional;(System.Linq.Expressions.ConditionalExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitConstant;(System.Linq.Expressions.ConstantExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitDebugInfo;(System.Linq.Expressions.DebugInfoExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitDefault;(System.Linq.Expressions.DefaultExpression);Argument[0];ReturnValue;value;dfc-generated | @@ -12950,22 +13169,22 @@ summary | System.Linq.Expressions;ExpressionVisitor;VisitElementInit;(System.Linq.Expressions.ElementInit);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitExtension;(System.Linq.Expressions.Expression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitGoto;(System.Linq.Expressions.GotoExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitGoto;(System.Linq.Expressions.GotoExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitGoto;(System.Linq.Expressions.GotoExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitIndex;(System.Linq.Expressions.IndexExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitIndex;(System.Linq.Expressions.IndexExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitIndex;(System.Linq.Expressions.IndexExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitInvocation;(System.Linq.Expressions.InvocationExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitInvocation;(System.Linq.Expressions.InvocationExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitInvocation;(System.Linq.Expressions.InvocationExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitLabel;(System.Linq.Expressions.LabelExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitLabelTarget;(System.Linq.Expressions.LabelTarget);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitLambda;(System.Linq.Expressions.Expression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitListInit;(System.Linq.Expressions.ListInitExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitLoop;(System.Linq.Expressions.LoopExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMember;(System.Linq.Expressions.MemberExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitMember;(System.Linq.Expressions.MemberExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitMember;(System.Linq.Expressions.MemberExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMemberAssignment;(System.Linq.Expressions.MemberAssignment);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitMemberAssignment;(System.Linq.Expressions.MemberAssignment);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitMemberAssignment;(System.Linq.Expressions.MemberAssignment);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMemberBinding;(System.Linq.Expressions.MemberBinding);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitMemberBinding;(System.Linq.Expressions.MemberBinding);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitMemberBinding;(System.Linq.Expressions.MemberBinding);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMemberInit;(System.Linq.Expressions.MemberInitExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMemberListBinding;(System.Linq.Expressions.MemberListBinding);Argument[0].Property[System.Linq.Expressions.MemberListBinding.Initializers];ReturnValue.Property[System.Linq.Expressions.MemberListBinding.Initializers];value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMemberListBinding;(System.Linq.Expressions.MemberListBinding);Argument[0];ReturnValue;value;dfc-generated | @@ -13447,7 +13666,7 @@ summary | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Skip;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SkipLast;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Linq;Enumerable;SkipLast;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0];ReturnValue;value;df-generated | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | @@ -15283,6 +15502,7 @@ summary | System.Net;HttpListenerRequest;get_ProtocolVersion;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;get_RawUrl;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;get_Url;();Argument[this];ReturnValue;taint;df-generated | +| System.Net;HttpListenerRequest;get_UrlReferrer;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;get_UserAgent;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;get_UserHostName;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerResponse;AppendCookie;(System.Net.Cookie);Argument[0];Argument[this].Property[System.Net.HttpListenerResponse.Cookies].Element;value;dfc-generated | @@ -16480,7 +16700,7 @@ summary | System.Reflection;MethodInfo;get_ReturnParameter;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection;MethodInfo;get_ReturnType;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection;MethodInfo;get_ReturnTypeCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection;MethodInfoExtensions;GetBaseDefinition;(System.Reflection.MethodInfo);Argument[0];ReturnValue;taint;df-generated | +| System.Reflection;MethodInfoExtensions;GetBaseDefinition;(System.Reflection.MethodInfo);Argument[0];ReturnValue;value;df-generated | | System.Reflection;MethodInvoker;Invoke;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Reflection;MethodInvoker;Invoke;(System.Object);Argument[this];ReturnValue;taint;df-generated | | System.Reflection;MethodInvoker;Invoke;(System.Object,System.Object);Argument[0];Argument[this];taint;df-generated | @@ -16571,7 +16791,7 @@ summary | System.Reflection;ReflectionTypeLoadException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | | System.Reflection;ReflectionTypeLoadException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Reflection;RuntimeReflectionExtensions;GetMethodInfo;(System.Delegate);Argument[0].Property[System.Delegate.Method];ReturnValue;value;dfc-generated | -| System.Reflection;RuntimeReflectionExtensions;GetRuntimeBaseDefinition;(System.Reflection.MethodInfo);Argument[0];ReturnValue;taint;df-generated | +| System.Reflection;RuntimeReflectionExtensions;GetRuntimeBaseDefinition;(System.Reflection.MethodInfo);Argument[0];ReturnValue;value;df-generated | | System.Reflection;RuntimeReflectionExtensions;GetRuntimeInterfaceMap;(System.Reflection.TypeInfo,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Reflection;StrongNameKeyPair;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;df-generated | | System.Reflection;TypeDelegator;GetConstructorImpl;(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]);Argument[this];ReturnValue;taint;df-generated | @@ -17123,8 +17343,12 @@ summary | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;ToString;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customServiceNames].Element;ReturnValue;taint;dfc-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;get_CustomChannelBinding;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customChannelBinding];ReturnValue;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;get_CustomServiceNames;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customServiceNames];ReturnValue;value;dfc-generated | +| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.Collections.IEnumerable);Argument[0].Element;ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.Collections.IEnumerable);Argument[0].Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.String);Argument[0];ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | @@ -18109,7 +18333,7 @@ summary | System.Text.RegularExpressions;GroupCollection;get_Values;();Argument[this];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;GroupCollection;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Text.RegularExpressions;GroupCollection;set_Item;(System.Int32,System.Text.RegularExpressions.Group);Argument[1];Argument[this].Element;value;manual | -| System.Text.RegularExpressions;Match;NextMatch;();Argument[this];ReturnValue;taint;df-generated | +| System.Text.RegularExpressions;Match;NextMatch;();Argument[this];ReturnValue;value;df-generated | | System.Text.RegularExpressions;Match;Synchronized;(System.Text.RegularExpressions.Match);Argument[0];ReturnValue;value;dfc-generated | | System.Text.RegularExpressions;MatchCollection;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | | System.Text.RegularExpressions;MatchCollection;Add;(System.Text.RegularExpressions.Match);Argument[0];Argument[this].Element;value;manual | @@ -18833,13 +19057,13 @@ summary | System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[0];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan);Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider);Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[2];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;WhenAll;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Threading.Tasks.Task`1.Result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result].Element;value;manual | | System.Threading.Tasks;Task;WhenAll;(System.ReadOnlySpan>);Argument[0].Element.Property[System.Threading.Tasks.Task`1.Result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result].Element;value;manual | | System.Threading.Tasks;Task;WhenAll;(System.Threading.Tasks.Task[]);Argument[0].Element.Property[System.Threading.Tasks.Task`1.Result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result].Element;value;manual | @@ -18943,11 +19167,11 @@ summary | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | -| System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;get_Result;();Argument[this];ReturnValue;taint;manual | | System.Threading.Tasks;TaskAsyncEnumerableExtensions;ConfigureAwait;(System.IAsyncDisposable,System.Boolean);Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskAsyncEnumerableExtensions;ConfigureAwait;(System.Collections.Generic.IAsyncEnumerable,System.Boolean);Argument[0];ReturnValue;taint;df-generated | @@ -19427,7 +19651,7 @@ summary | System.Threading.Tasks;ValueTask;AsTask;();Argument[this].SyntheticField[System.Threading.Tasks.ValueTask`1._result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | | System.Threading.Tasks;ValueTask;ConfigureAwait;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ValueTask;GetAwaiter;();Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;ValueTask;Preserve;();Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;ValueTask;Preserve;();Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;ValueTask;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ValueTask;ValueTask;(System.Threading.Tasks.Sources.IValueTaskSource,System.Int16);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.ValueTask`1._obj];value;dfc-generated | | System.Threading.Tasks;ValueTask;ValueTask;(System.Threading.Tasks.Task);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.ValueTask`1._obj];value;dfc-generated | @@ -19682,7 +19906,9 @@ summary | System.Xml.Linq;XContainer;Add;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XContainer;Add;(System.Object);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XContainer;Add;(System.Object[]);Argument[0].Element;Argument[this];taint;df-generated | +| System.Xml.Linq;XContainer;Add;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XContainer;AddFirst;(System.Object);Argument[this];Argument[0];taint;df-generated | +| System.Xml.Linq;XContainer;AddFirst;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XContainer;DescendantNodes;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XContainer;Descendants;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XContainer;Descendants;(System.Xml.Linq.XName);Argument[this];ReturnValue;taint;df-generated | @@ -19693,6 +19919,7 @@ summary | System.Xml.Linq;XContainer;ReplaceNodes;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XContainer;ReplaceNodes;(System.Object);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XContainer;ReplaceNodes;(System.Object[]);Argument[0].Element;Argument[this];taint;df-generated | +| System.Xml.Linq;XContainer;ReplaceNodes;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XContainer;get_FirstNode;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XContainer;get_LastNode;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XDeclaration;ToString;();Argument[this].SyntheticField[System.Xml.Linq.XDeclaration._encoding];ReturnValue;taint;dfc-generated | @@ -19751,9 +19978,11 @@ summary | System.Xml.Linq;XElement;ReplaceAll;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XElement;ReplaceAll;(System.Object);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XElement;ReplaceAll;(System.Object[]);Argument[0].Element;Argument[this];taint;df-generated | +| System.Xml.Linq;XElement;ReplaceAll;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XElement;ReplaceAttributes;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XElement;ReplaceAttributes;(System.Object);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XElement;ReplaceAttributes;(System.Object[]);Argument[0].Element;Argument[this];taint;df-generated | +| System.Xml.Linq;XElement;ReplaceAttributes;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XElement;SetAttributeValue;(System.Xml.Linq.XName,System.Object);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XElement;SetAttributeValue;(System.Xml.Linq.XName,System.Object);Argument[1];Argument[this];taint;df-generated | | System.Xml.Linq;XElement;SetElementValue;(System.Xml.Linq.XName,System.Object);Argument[1];Argument[this];taint;df-generated | @@ -19779,7 +20008,9 @@ summary | System.Xml.Linq;XNamespace;get_NamespaceName;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XNamespace;op_Addition;(System.Xml.Linq.XNamespace,System.String);Argument[0];ReturnValue.SyntheticField[System.Xml.Linq.XName._ns];value;dfc-generated | | System.Xml.Linq;XNode;AddAfterSelf;(System.Object);Argument[this];Argument[0];taint;df-generated | +| System.Xml.Linq;XNode;AddAfterSelf;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XNode;AddBeforeSelf;(System.Object);Argument[this];Argument[0];taint;df-generated | +| System.Xml.Linq;XNode;AddBeforeSelf;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XNode;Ancestors;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XNode;Ancestors;(System.Xml.Linq.XName);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XNode;CreateReader;(System.Xml.Linq.ReaderOptions);Argument[this];ReturnValue.SyntheticField[System.Xml.Linq.XNodeReader._source];value;dfc-generated | @@ -19789,6 +20020,7 @@ summary | System.Xml.Linq;XNode;ReadFrom;(System.Xml.XmlReader);Argument[0];ReturnValue;taint;df-generated | | System.Xml.Linq;XNode;ReadFromAsync;(System.Xml.XmlReader,System.Threading.CancellationToken);Argument[0];ReturnValue;taint;df-generated | | System.Xml.Linq;XNode;ReplaceWith;(System.Object);Argument[this];Argument[0];taint;df-generated | +| System.Xml.Linq;XNode;ReplaceWith;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XNode;WriteTo;(System.Xml.XmlWriter);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XNode;WriteToAsync;(System.Xml.XmlWriter,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XNode;get_NextNode;();Argument[this];ReturnValue;taint;df-generated | @@ -19825,12 +20057,12 @@ summary | System.Xml.Linq;XText;WriteToAsync;(System.Xml.XmlWriter,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XText;XText;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XText;XText;(System.Xml.Linq.XText);Argument[0];Argument[this];taint;df-generated | -| System.Xml.Resolvers;XmlPreloadedResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | -| System.Xml.Resolvers;XmlPreloadedResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | +| System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | +| System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | | System.Xml.Resolvers;XmlPreloadedResolver;ResolveUri;(System.Uri,System.String);Argument[0];ReturnValue;value;dfc-generated | @@ -19903,14 +20135,15 @@ summary | System.Xml.Schema;XmlSchemaComplexContentRestriction;get_Attributes;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaComplexType;get_AttributeWildcard;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaComplexType;get_ContentTypeParticle;();Argument[this];ReturnValue;taint;df-generated | -| System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type);Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type);Argument[0];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type,System.Xml.IXmlNamespaceResolver);Argument[0];Argument[2];taint;df-generated | -| System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type,System.Xml.IXmlNamespaceResolver);Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type,System.Xml.IXmlNamespaceResolver);Argument[0];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type,System.Xml.IXmlNamespaceResolver);Argument[2];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ParseValue;(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver);Argument[0];Argument[2];taint;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ParseValue;(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver);Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaDatatype;ParseValue;(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver);Argument[0];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ParseValue;(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver);Argument[2];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ParseValue;(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaElement;get_ElementSchemaType;();Argument[this];ReturnValue;taint;df-generated | @@ -19963,12 +20196,12 @@ summary | System.Xml.Schema;XmlSchemaSet;Add;(System.String,System.Xml.XmlReader);Argument[1];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;Add;(System.String,System.Xml.XmlReader);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;Add;(System.Xml.Schema.XmlSchema);Argument[0];Argument[this];taint;df-generated | -| System.Xml.Schema;XmlSchemaSet;Add;(System.Xml.Schema.XmlSchema);Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaSet;Add;(System.Xml.Schema.XmlSchema);Argument[0];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaSet;Add;(System.Xml.Schema.XmlSchemaSet);Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaSet;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;Remove;(System.Xml.Schema.XmlSchema);Argument[0];ReturnValue;value;dfc-generated | | System.Xml.Schema;XmlSchemaSet;Reprocess;(System.Xml.Schema.XmlSchema);Argument[0];Argument[this];taint;df-generated | -| System.Xml.Schema;XmlSchemaSet;Reprocess;(System.Xml.Schema.XmlSchema);Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaSet;Reprocess;(System.Xml.Schema.XmlSchema);Argument[0];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaSet;Schemas;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;Schemas;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;XmlSchemaSet;(System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.Schema.XmlSchemaSet._nameTable];value;dfc-generated | @@ -19995,7 +20228,7 @@ summary | System.Xml.Schema;XmlSchemaValidator;Initialize;(System.Xml.Schema.XmlSchemaObject);Argument[0];Argument[this].SyntheticField[System.Xml.Schema.XmlSchemaValidator._partialValidationType];value;dfc-generated | | System.Xml.Schema;XmlSchemaValidator;SkipToEndElement;(System.Xml.Schema.XmlSchemaInfo);Argument[this];Argument[0];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);Argument[2];Argument[this];taint;df-generated | -| System.Xml.Schema;XmlSchemaValidator;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);Argument[2];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);Argument[2];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateAttribute;(System.String,System.String,System.Xml.Schema.XmlValueGetter,System.Xml.Schema.XmlSchemaInfo);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateElement;(System.String,System.String,System.Xml.Schema.XmlSchemaInfo);Argument[0];Argument[this];taint;df-generated | @@ -20008,7 +20241,7 @@ summary | System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[1];Argument[0];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[1];Argument[this];taint;df-generated | -| System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[1];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[1];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[this];Argument[0];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateText;(System.Xml.Schema.XmlValueGetter);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -20382,8 +20615,10 @@ summary | System.Xml.XPath;Extensions;CreateNavigator;(System.Xml.Linq.XNode,System.Xml.XmlNameTable);Argument[0];ReturnValue.SyntheticField[System.Xml.XPath.XNodeNavigator._source];value;dfc-generated | | System.Xml.XPath;Extensions;CreateNavigator;(System.Xml.Linq.XNode,System.Xml.XmlNameTable);Argument[1];ReturnValue.SyntheticField[System.Xml.XPath.XNodeNavigator._nameTable];value;dfc-generated | | System.Xml.XPath;IXPathNavigable;CreateNavigator;();Argument[this];ReturnValue;taint;df-generated | +| System.Xml.XPath;IXPathNavigable;CreateNavigator;();Argument[this];ReturnValue;value;df-generated | | System.Xml.XPath;XDocumentExtensions;ToXPathNavigable;(System.Xml.Linq.XNode);Argument[0];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathDocument;CreateNavigator;();Argument[this];ReturnValue;taint;df-generated | +| System.Xml.XPath;XPathDocument;CreateNavigator;();Argument[this];ReturnValue;value;df-generated | | System.Xml.XPath;XPathDocument;XPathDocument;(System.Xml.XmlReader,System.Xml.XmlSpace);Argument[0];Argument[this];taint;df-generated | | System.Xml.XPath;XPathException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;df-generated | | System.Xml.XPath;XPathException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | @@ -20394,7 +20629,7 @@ summary | System.Xml.XPath;XPathExpression;SetContext;(System.Xml.IXmlNamespaceResolver);Argument[0];Argument[this];taint;df-generated | | System.Xml.XPath;XPathExpression;SetContext;(System.Xml.XmlNamespaceManager);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml.XPath;XPathExpression;get_Expression;();Argument[this];ReturnValue;taint;df-generated | -| System.Xml.XPath;XPathItem;ValueAs;(System.Type);Argument[this];ReturnValue;taint;df-generated | +| System.Xml.XPath;XPathItem;ValueAs;(System.Type);Argument[this];ReturnValue;value;df-generated | | System.Xml.XPath;XPathItem;ValueAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathItem;ValueAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];Argument[1];taint;df-generated | | System.Xml.XPath;XPathItem;ValueAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated | @@ -20408,6 +20643,7 @@ summary | System.Xml.XPath;XPathNavigator;Compile;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;CreateAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;CreateNavigator;();Argument[this];ReturnValue;taint;df-generated | +| System.Xml.XPath;XPathNavigator;CreateNavigator;();Argument[this];ReturnValue;value;df-generated | | System.Xml.XPath;XPathNavigator;Evaluate;(System.Xml.XPath.XPathExpression);Argument[0];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;Evaluate;(System.Xml.XPath.XPathExpression,System.Xml.XPath.XPathNodeIterator);Argument[0];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;Evaluate;(System.Xml.XPath.XPathExpression,System.Xml.XPath.XPathNodeIterator);Argument[1].Element;ReturnValue;taint;df-generated | @@ -20510,12 +20746,14 @@ summary | System.Xml;UniqueId;UniqueId;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlAttribute;AppendChild;(System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlAttribute;AppendChild;(System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlAttribute;AppendChild;(System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlAttribute;AppendChild;(System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlAttribute;AppendChild;(System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlAttribute;CloneNode;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlAttribute;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[1].Element;taint;df-generated | | System.Xml;XmlAttribute;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlAttribute;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlAttribute;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlAttribute;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Xml;XmlAttribute;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[this];taint;df-generated | | System.Xml;XmlAttribute;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;ReturnValue;taint;df-generated | @@ -20524,20 +20762,21 @@ summary | System.Xml;XmlAttribute;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[1].Element;taint;df-generated | | System.Xml;XmlAttribute;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlAttribute;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlAttribute;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlAttribute;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Xml;XmlAttribute;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;ReturnValue;taint;df-generated | | System.Xml;XmlAttribute;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlAttribute;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];Argument[1].Element;taint;df-generated | | System.Xml;XmlAttribute;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlAttribute;PrependChild;(System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | -| System.Xml;XmlAttribute;PrependChild;(System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlAttribute;PrependChild;(System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlAttribute;PrependChild;(System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlAttribute;PrependChild;(System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlAttribute;RemoveChild;(System.Xml.XmlNode);Argument[0];ReturnValue;value;dfc-generated | | System.Xml;XmlAttribute;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlAttribute;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Xml;XmlAttribute;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[this];taint;df-generated | -| System.Xml;XmlAttribute;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlAttribute;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1];ReturnValue;value;df-generated | | System.Xml;XmlAttribute;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlAttribute;WriteContentTo;(System.Xml.XmlWriter);Argument[this];Argument[0];taint;df-generated | | System.Xml;XmlAttribute;WriteTo;(System.Xml.XmlWriter);Argument[this];Argument[0];taint;df-generated | @@ -20773,6 +21012,7 @@ summary | System.Xml;XmlDocument;CreateElement;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDocument;CreateEntityReference;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDocument;CreateNavigator;();Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlDocument;CreateNavigator;();Argument[this];ReturnValue;value;df-generated | | System.Xml;XmlDocument;CreateNavigator;(System.Xml.XmlNode);Argument[this];ReturnValue.SyntheticField[System.Xml.DocumentXPathNavigator._document];value;dfc-generated | | System.Xml;XmlDocument;CreateNode;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;df-generated | | System.Xml;XmlDocument;CreateNode;(System.String,System.String,System.String);Argument[2];ReturnValue;taint;df-generated | @@ -20940,6 +21180,7 @@ summary | System.Xml;XmlNamespaceManager;get_NameTable;();Argument[this].SyntheticField[System.Xml.XmlNamespaceManager._nameTable];ReturnValue;value;dfc-generated | | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;Clone;();Argument[this];ReturnValue;taint;df-generated | @@ -20948,12 +21189,14 @@ summary | System.Xml;XmlNode;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Xml;XmlNode;CloneNode;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;CreateNavigator;();Argument[this];ReturnValue;taint;df-generated | +| System.Xml;XmlNode;CreateNavigator;();Argument[this];ReturnValue;value;df-generated | | System.Xml;XmlNode;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Xml;XmlNode;GetNamespaceOfPrefix;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;GetPrefixOfNamespace;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[1].Element;taint;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[this];taint;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;ReturnValue;taint;df-generated | @@ -20962,20 +21205,21 @@ summary | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[1].Element;taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;ReturnValue;taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];Argument[1].Element;taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;PrependChild;(System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | -| System.Xml;XmlNode;PrependChild;(System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlNode;PrependChild;(System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlNode;PrependChild;(System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;PrependChild;(System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;RemoveChild;(System.Xml.XmlNode);Argument[0];ReturnValue;value;dfc-generated | | System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[this];taint;df-generated | -| System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1];ReturnValue;value;df-generated | | System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;SelectNodes;(System.String);Argument[this];ReturnValue;taint;manual | | System.Xml;XmlNode;SelectNodes;(System.String,System.Xml.XmlNamespaceManager);Argument[this];ReturnValue;taint;manual | @@ -21155,17 +21399,17 @@ summary | System.Xml;XmlReaderSettings;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlReaderSettings;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlReaderSettings;set_XmlResolver;(System.Xml.XmlResolver);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | +| System.Xml;XmlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | | System.Xml;XmlResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlResolver;ResolveUri;(System.Uri,System.String);Argument[0];ReturnValue;value;dfc-generated | | System.Xml;XmlResolver;ResolveUri;(System.Uri,System.String);Argument[1];ReturnValue;taint;dfc-generated | | System.Xml;XmlResolver;set_Credentials;(System.Net.ICredentials);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlSecureResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;df-generated | | System.Xml;XmlSecureResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | -| System.Xml;XmlSecureResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlSecureResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | | System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | +| System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | +| System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | | System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | | System.Xml;XmlSecureResolver;ResolveUri;(System.Uri,System.String);Argument[0];ReturnValue;value;dfc-generated | @@ -21294,9 +21538,7 @@ summary | System.Xml;XmlTextWriter;XmlTextWriter;(System.IO.TextWriter);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlTextWriter;get_BaseStream;();Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter].Property[System.IO.StreamWriter.BaseStream];ReturnValue;value;dfc-generated | | System.Xml;XmlTextWriter;get_XmlLang;();Argument[this];ReturnValue;taint;df-generated | -| System.Xml;XmlUrlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;df-generated | | System.Xml;XmlUrlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | -| System.Xml;XmlUrlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlUrlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | | System.Xml;XmlUrlResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlUrlResolver;ResolveUri;(System.Uri,System.String);Argument[0];ReturnValue;value;dfc-generated | @@ -21357,8 +21599,8 @@ summary | System.Xml;XmlWriter;Create;(System.Text.StringBuilder);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlWriter;Create;(System.Text.StringBuilder,System.Xml.XmlWriterSettings);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlWriter;Create;(System.Text.StringBuilder,System.Xml.XmlWriterSettings);Argument[1];ReturnValue;taint;df-generated | -| System.Xml;XmlWriter;Create;(System.Xml.XmlWriter);Argument[0];ReturnValue;taint;df-generated | -| System.Xml;XmlWriter;Create;(System.Xml.XmlWriter,System.Xml.XmlWriterSettings);Argument[0];ReturnValue;taint;df-generated | +| System.Xml;XmlWriter;Create;(System.Xml.XmlWriter);Argument[0];ReturnValue;value;df-generated | +| System.Xml;XmlWriter;Create;(System.Xml.XmlWriter,System.Xml.XmlWriterSettings);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlWriter;Create;(System.Xml.XmlWriter,System.Xml.XmlWriterSettings);Argument[1];ReturnValue;taint;df-generated | | System.Xml;XmlWriter;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlWriter;LookupPrefix;(System.String);Argument[this];ReturnValue;taint;df-generated | @@ -21447,7 +21689,7 @@ summary | System;Action;BeginInvoke;(T,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;AggregateException;AggregateException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;Argument[this].SyntheticField[System.AggregateException._innerExceptions];value;dfc-generated | | System;AggregateException;AggregateException;(System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;value;dfc-generated | -| System;AggregateException;GetBaseException;();Argument[this];ReturnValue;taint;df-generated | +| System;AggregateException;GetBaseException;();Argument[this];ReturnValue;value;df-generated | | System;AggregateException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;df-generated | | System;AggregateException;Handle;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;AggregateException;Handle;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -21587,6 +21829,7 @@ summary | System;ArraySegment;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System;ArraySegment;get_Item;(System.Int32);Argument[this].SyntheticField[System.ArraySegment`1._array].Element;ReturnValue;value;dfc-generated | | System;ArraySegment;set_Item;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | +| System;ArraySegment;set_Item;(System.Int32,T);Argument[1];Argument[this].SyntheticField[System.ArraySegment`1._array].Element;value;dfc-generated | | System;AssemblyLoadEventHandler;BeginInvoke;(System.Object,System.AssemblyLoadEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;AsyncCallback;BeginInvoke;(System.IAsyncResult,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Attribute;get_TypeId;();Argument[this];ReturnValue;taint;df-generated | @@ -22067,7 +22310,7 @@ summary | System;Exception;Exception;(System.String);Argument[0];Argument[this].SyntheticField[System.Exception._message];value;dfc-generated | | System;Exception;Exception;(System.String,System.Exception);Argument[0];Argument[this].SyntheticField[System.Exception._message];value;dfc-generated | | System;Exception;Exception;(System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.Exception._innerException];value;dfc-generated | -| System;Exception;GetBaseException;();Argument[this];ReturnValue;taint;df-generated | +| System;Exception;GetBaseException;();Argument[this];ReturnValue;value;df-generated | | System;Exception;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;df-generated | | System;Exception;ToString;();Argument[this];ReturnValue;taint;df-generated | | System;Exception;add_SerializeObjectState;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -23303,9 +23546,8 @@ summary | System;Uri;GetLeftPart;(System.UriPartial);Argument[this];ReturnValue;taint;df-generated | | System;Uri;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;df-generated | | System;Uri;MakeRelative;(System.Uri);Argument[0];ReturnValue;taint;df-generated | -| System;Uri;MakeRelativeUri;(System.Uri);Argument[0];ReturnValue;taint;df-generated | +| System;Uri;MakeRelativeUri;(System.Uri);Argument[0];ReturnValue;value;df-generated | | System;Uri;ToString;();Argument[this];ReturnValue;taint;manual | -| System;Uri;ToString;(System.String,System.IFormatProvider);Argument[this].SyntheticField[System.Uri._string];ReturnValue;value;dfc-generated | | System;Uri;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;Uri;TryCreate;(System.String,System.UriCreationOptions,System.Uri);Argument[0];Argument[2];taint;manual | | System;Uri;TryCreate;(System.String,System.UriKind,System.Uri);Argument[0];Argument[2];taint;manual | @@ -23392,9 +23634,14 @@ summary | System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Property[System.Uri.OriginalString];ReturnValue;value;df-generated | | System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Property[System.Uri.OriginalString];ReturnValue;value;dfc-generated | +| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[0];ReturnValue.Field[System.ValueTuple`8.Item1];value;manual | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[1];ReturnValue.Field[System.ValueTuple`8.Item2];value;manual | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[2];ReturnValue.Field[System.ValueTuple`8.Item3];value;manual | @@ -23678,7 +23925,6 @@ neutral | Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;get_Count;();summary;df-generated | | Microsoft.AspNetCore.Mvc.ViewFeatures;ViewDataDictionary;get_IsReadOnly;();summary;df-generated | | Microsoft.AspNetCore.Mvc;Controller;Dispose;();summary;df-generated | -| Microsoft.AspNetCore.Mvc;RemoteAttributeBase;IsValid;(System.Object);summary;df-generated | | Microsoft.AspNetCore.Razor.TagHelpers;NullHtmlEncoder;FindFirstCharacterToEncode;(System.Char*,System.Int32);summary;df-generated | | Microsoft.AspNetCore.Razor.TagHelpers;NullHtmlEncoder;TryEncodeUnicodeScalar;(System.Int32,System.Char*,System.Int32,System.Int32);summary;df-generated | | Microsoft.AspNetCore.Razor.TagHelpers;NullHtmlEncoder;WillEncode;(System.Int32);summary;df-generated | @@ -27596,26 +27842,19 @@ neutral | System.ComponentModel.DataAnnotations.Schema;IndexAttribute;GetHashCode;();summary;df-generated | | System.ComponentModel.DataAnnotations.Schema;InversePropertyAttribute;get_Property;();summary;df-generated | | System.ComponentModel.DataAnnotations.Schema;TableAttribute;get_Name;();summary;df-generated | -| System.ComponentModel.DataAnnotations;AllowedValuesAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;AllowedValuesAttribute;get_Values;();summary;df-generated | | System.ComponentModel.DataAnnotations;AssociatedMetadataTypeTypeDescriptionProvider;AssociatedMetadataTypeTypeDescriptionProvider;(System.Type);summary;df-generated | | System.ComponentModel.DataAnnotations;AssociatedMetadataTypeTypeDescriptionProvider;AssociatedMetadataTypeTypeDescriptionProvider;(System.Type,System.Type);summary;df-generated | | System.ComponentModel.DataAnnotations;AssociationAttribute;get_Name;();summary;df-generated | | System.ComponentModel.DataAnnotations;AssociationAttribute;get_OtherKey;();summary;df-generated | | System.ComponentModel.DataAnnotations;AssociationAttribute;get_ThisKey;();summary;df-generated | -| System.ComponentModel.DataAnnotations;Base64StringAttribute;IsValid;(System.Object);summary;df-generated | -| System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);summary;df-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;get_OtherProperty;();summary;df-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;get_RequiresValidationContext;();summary;df-generated | -| System.ComponentModel.DataAnnotations;CreditCardAttribute;IsValid;(System.Object);summary;df-generated | -| System.ComponentModel.DataAnnotations;CustomValidationAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);summary;df-generated | | System.ComponentModel.DataAnnotations;CustomValidationAttribute;get_Method;();summary;df-generated | | System.ComponentModel.DataAnnotations;CustomValidationAttribute;get_ValidatorType;();summary;df-generated | | System.ComponentModel.DataAnnotations;DataTypeAttribute;DataTypeAttribute;(System.ComponentModel.DataAnnotations.DataType);summary;df-generated | -| System.ComponentModel.DataAnnotations;DataTypeAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;DataTypeAttribute;get_CustomDataType;();summary;df-generated | | System.ComponentModel.DataAnnotations;DataTypeAttribute;get_DataType;();summary;df-generated | -| System.ComponentModel.DataAnnotations;DeniedValuesAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;DeniedValuesAttribute;get_Values;();summary;df-generated | | System.ComponentModel.DataAnnotations;DisplayColumnAttribute;DisplayColumnAttribute;(System.String);summary;df-generated | | System.ComponentModel.DataAnnotations;DisplayColumnAttribute;DisplayColumnAttribute;(System.String,System.String);summary;df-generated | @@ -27624,52 +27863,35 @@ neutral | System.ComponentModel.DataAnnotations;DisplayColumnAttribute;get_SortDescending;();summary;df-generated | | System.ComponentModel.DataAnnotations;EditableAttribute;EditableAttribute;(System.Boolean);summary;df-generated | | System.ComponentModel.DataAnnotations;EditableAttribute;get_AllowEdit;();summary;df-generated | -| System.ComponentModel.DataAnnotations;EmailAddressAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;EnumDataTypeAttribute;EnumDataTypeAttribute;(System.Type);summary;df-generated | -| System.ComponentModel.DataAnnotations;EnumDataTypeAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;EnumDataTypeAttribute;get_EnumType;();summary;df-generated | -| System.ComponentModel.DataAnnotations;FileExtensionsAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;Equals;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;FilterUIHintAttribute;(System.String);summary;df-generated | | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;FilterUIHintAttribute;(System.String,System.String);summary;df-generated | | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;GetHashCode;();summary;df-generated | | System.ComponentModel.DataAnnotations;IValidatableObject;Validate;(System.ComponentModel.DataAnnotations.ValidationContext);summary;df-generated | -| System.ComponentModel.DataAnnotations;LengthAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;LengthAttribute;LengthAttribute;(System.Int32,System.Int32);summary;df-generated | | System.ComponentModel.DataAnnotations;LengthAttribute;get_MaximumLength;();summary;df-generated | | System.ComponentModel.DataAnnotations;LengthAttribute;get_MinimumLength;();summary;df-generated | -| System.ComponentModel.DataAnnotations;MaxLengthAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;MaxLengthAttribute;MaxLengthAttribute;(System.Int32);summary;df-generated | | System.ComponentModel.DataAnnotations;MaxLengthAttribute;get_Length;();summary;df-generated | | System.ComponentModel.DataAnnotations;MetadataTypeAttribute;MetadataTypeAttribute;(System.Type);summary;df-generated | | System.ComponentModel.DataAnnotations;MetadataTypeAttribute;get_MetadataClassType;();summary;df-generated | -| System.ComponentModel.DataAnnotations;MinLengthAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;MinLengthAttribute;MinLengthAttribute;(System.Int32);summary;df-generated | | System.ComponentModel.DataAnnotations;MinLengthAttribute;get_Length;();summary;df-generated | -| System.ComponentModel.DataAnnotations;PhoneAttribute;IsValid;(System.Object);summary;df-generated | -| System.ComponentModel.DataAnnotations;RangeAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;RangeAttribute;(System.Double,System.Double);summary;df-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;RangeAttribute;(System.Int32,System.Int32);summary;df-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;get_OperandType;();summary;df-generated | -| System.ComponentModel.DataAnnotations;RegularExpressionAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;get_MatchTimeout;();summary;df-generated | | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;get_Pattern;();summary;df-generated | -| System.ComponentModel.DataAnnotations;RequiredAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;ScaffoldColumnAttribute;ScaffoldColumnAttribute;(System.Boolean);summary;df-generated | | System.ComponentModel.DataAnnotations;ScaffoldColumnAttribute;get_Scaffold;();summary;df-generated | -| System.ComponentModel.DataAnnotations;StringLengthAttribute;IsValid;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;StringLengthAttribute;StringLengthAttribute;(System.Int32);summary;df-generated | | System.ComponentModel.DataAnnotations;StringLengthAttribute;get_MaximumLength;();summary;df-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;Equals;(System.Object);summary;df-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;GetHashCode;();summary;df-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;UIHintAttribute;(System.String);summary;df-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;UIHintAttribute;(System.String,System.String);summary;df-generated | -| System.ComponentModel.DataAnnotations;UrlAttribute;IsValid;(System.Object);summary;df-generated | -| System.ComponentModel.DataAnnotations;ValidationAttribute;GetValidationResult;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);summary;df-generated | -| System.ComponentModel.DataAnnotations;ValidationAttribute;IsValid;(System.Object);summary;df-generated | -| System.ComponentModel.DataAnnotations;ValidationAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);summary;df-generated | -| System.ComponentModel.DataAnnotations;ValidationAttribute;Validate;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);summary;df-generated | -| System.ComponentModel.DataAnnotations;ValidationAttribute;Validate;(System.Object,System.String);summary;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;ValidationAttribute;(System.String);summary;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;get_RequiresValidationContext;();summary;df-generated | | System.ComponentModel.DataAnnotations;ValidationContext;ValidationContext;(System.Object);summary;df-generated | @@ -36096,7 +36318,6 @@ neutral | System.Net;HttpListenerRequest;get_RequestTraceIdentifier;();summary;df-generated | | System.Net;HttpListenerRequest;get_ServiceName;();summary;df-generated | | System.Net;HttpListenerRequest;get_TransportContext;();summary;df-generated | -| System.Net;HttpListenerRequest;get_UrlReferrer;();summary;df-generated | | System.Net;HttpListenerRequest;get_UserHostAddress;();summary;df-generated | | System.Net;HttpListenerRequest;get_UserLanguages;();summary;df-generated | | System.Net;HttpListenerResponse;Abort;();summary;df-generated | @@ -55640,7 +55861,6 @@ neutral | System.Xml.Linq;XCData;XCData;(System.Xml.Linq.XCData);summary;df-generated | | System.Xml.Linq;XCData;get_NodeType;();summary;df-generated | | System.Xml.Linq;XComment;get_NodeType;();summary;df-generated | -| System.Xml.Linq;XContainer;AddFirst;(System.Object[]);summary;df-generated | | System.Xml.Linq;XContainer;CreateWriter;();summary;df-generated | | System.Xml.Linq;XContainer;RemoveNodes;();summary;df-generated | | System.Xml.Linq;XDocument;LoadAsync;(System.IO.Stream,System.Xml.Linq.LoadOptions,System.Threading.CancellationToken);summary;df-generated | @@ -55696,8 +55916,6 @@ neutral | System.Xml.Linq;XNamespace;get_Xmlns;();summary;df-generated | | System.Xml.Linq;XNamespace;op_Equality;(System.Xml.Linq.XNamespace,System.Xml.Linq.XNamespace);summary;df-generated | | System.Xml.Linq;XNamespace;op_Inequality;(System.Xml.Linq.XNamespace,System.Xml.Linq.XNamespace);summary;df-generated | -| System.Xml.Linq;XNode;AddAfterSelf;(System.Object[]);summary;df-generated | -| System.Xml.Linq;XNode;AddBeforeSelf;(System.Object[]);summary;df-generated | | System.Xml.Linq;XNode;CompareDocumentOrder;(System.Xml.Linq.XNode,System.Xml.Linq.XNode);summary;df-generated | | System.Xml.Linq;XNode;CreateReader;();summary;df-generated | | System.Xml.Linq;XNode;DeepEquals;(System.Xml.Linq.XNode,System.Xml.Linq.XNode);summary;df-generated | @@ -55707,7 +55925,6 @@ neutral | System.Xml.Linq;XNode;IsBefore;(System.Xml.Linq.XNode);summary;df-generated | | System.Xml.Linq;XNode;NodesBeforeSelf;();summary;df-generated | | System.Xml.Linq;XNode;Remove;();summary;df-generated | -| System.Xml.Linq;XNode;ReplaceWith;(System.Object[]);summary;df-generated | | System.Xml.Linq;XNode;ToString;();summary;df-generated | | System.Xml.Linq;XNode;ToString;(System.Xml.Linq.SaveOptions);summary;df-generated | | System.Xml.Linq;XNode;get_DocumentOrderComparer;();summary;df-generated | @@ -57014,7 +57231,6 @@ neutral | System;ArraySegment;get_Offset;();summary;df-generated | | System;ArraySegment;op_Equality;(System.ArraySegment,System.ArraySegment);summary;df-generated | | System;ArraySegment;op_Inequality;(System.ArraySegment,System.ArraySegment);summary;df-generated | -| System;ArraySegment;set_Item;(System.Int32,T);summary;df-generated | | System;ArrayTypeMismatchException;ArrayTypeMismatchException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);summary;df-generated | | System;ArrayTypeMismatchException;ArrayTypeMismatchException;(System.String);summary;df-generated | | System;ArrayTypeMismatchException;ArrayTypeMismatchException;(System.String,System.Exception);summary;df-generated | @@ -61345,7 +61561,6 @@ neutral | System;Uri;TryFormat;(System.Span,System.Int32,System.ReadOnlySpan,System.IFormatProvider);summary;df-generated | | System;Uri;Unescape;(System.String);summary;df-generated | | System;Uri;Uri;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);summary;df-generated | -| System;Uri;get_AbsoluteUri;();summary;df-generated | | System;Uri;get_Fragment;();summary;df-generated | | System;Uri;get_HostNameType;();summary;df-generated | | System;Uri;get_IsAbsoluteUri;();summary;df-generated | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected index 08b3588b494..8c0a26ee403 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -789,9 +789,9 @@ | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[],System.Collections.Generic.IDictionary);Argument[2];Argument[0];taint;manual | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[],System.Collections.Generic.IDictionary);Argument[2];ReturnValue;taint;manual | | Microsoft.Extensions.Configuration;ConfigurationBinder;Bind;(Microsoft.Extensions.Configuration.IConfiguration,System.Object,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);Argument[0];ReturnValue;value;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;taint;df-generated | +| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);Argument[3];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);Argument[2];ReturnValue;value;dfc-generated | @@ -5058,7 +5058,7 @@ | System.Collections.Concurrent;Partitioner;Create;(System.Collections.Generic.IEnumerable,System.Collections.Concurrent.EnumerablePartitionerOptions);Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Concurrent;Partitioner;Create;(System.Collections.Generic.IList,System.Boolean);Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Concurrent;Partitioner;Create;(TSource[],System.Boolean);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Frozen;FrozenDictionary;ToFrozenDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Frozen;FrozenDictionary;ToFrozenDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;value;df-generated | | System.Collections.Frozen;FrozenDictionary;ToFrozenDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Frozen;FrozenDictionary;ToFrozenDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Frozen;FrozenDictionary;ToFrozenDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -5075,7 +5075,7 @@ | System.Collections.Frozen;FrozenDictionary;get_Values;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Frozen;FrozenSet;Create;(System.Collections.Generic.IEqualityComparer,System.ReadOnlySpan);Argument[1];ReturnValue;taint;df-generated | | System.Collections.Frozen;FrozenSet;Create;(System.ReadOnlySpan);Argument[0];ReturnValue;taint;df-generated | -| System.Collections.Frozen;FrozenSet;ToFrozenSet;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Frozen;FrozenSet;ToFrozenSet;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;value;df-generated | | System.Collections.Frozen;FrozenSet+AlternateLookup;Contains;(TAlternate);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenSet+AlternateLookup;TryGetValue;(TAlternate,T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenSet+AlternateLookup;TryGetValue;(TAlternate,T);Argument[this];Argument[1];taint;df-generated | @@ -5167,8 +5167,12 @@ | System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.LinkedList`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | +| System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];Argument[1].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];Argument[1].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];value;dfc-generated | +| System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[1];Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | +| System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,T);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];ReturnValue.SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,T);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];ReturnValue.SyntheticField[System.Collections.Generic.LinkedListNode`1.next];value;dfc-generated | +| System.Collections.Generic;LinkedList;AddBefore;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[1];Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;AddBefore;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[1];Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head];value;dfc-generated | | System.Collections.Generic;LinkedList;AddBefore;(System.Collections.Generic.LinkedListNode,T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;AddBefore;(System.Collections.Generic.LinkedListNode,T);Argument[0];ReturnValue;taint;df-generated | @@ -5180,6 +5184,7 @@ | System.Collections.Generic;LinkedList;AddFirst;(T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;AddFirst;(T);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Generic;LinkedList;AddFirst;(T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Generic;LinkedList;AddLast;(System.Collections.Generic.LinkedListNode);Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;AddLast;(System.Collections.Generic.LinkedListNode);Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head];Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];value;dfc-generated | | System.Collections.Generic;LinkedList;AddLast;(T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;AddLast;(T);Argument[0];ReturnValue;taint;df-generated | @@ -5190,8 +5195,9 @@ | System.Collections.Generic;LinkedList;LinkedList;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;LinkedList;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;Remove;(System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head];value;dfc-generated | +| System.Collections.Generic;LinkedList;Remove;(System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;get_First;();Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head];ReturnValue;value;dfc-generated | -| System.Collections.Generic;LinkedList;get_Last;();Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Generic;LinkedList;get_Last;();Argument[this].SyntheticField[System.Collections.Generic.LinkedList`1.head].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];ReturnValue;value;dfc-generated | | System.Collections.Generic;LinkedListNode;LinkedListNode;(T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;LinkedListNode;get_List;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;LinkedListNode;get_Next;();Argument[this];ReturnValue;taint;df-generated | @@ -5511,13 +5517,13 @@ | System.Collections.Immutable;ImmutableArray;Slice;(System.Int32,System.Int32);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Collections.Generic.IComparer);Argument[this];Argument[0];taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Sort;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray;Sort;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[this];ReturnValue;value;hq-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);Argument[this];Argument[2];taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableArray;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableArray;ToBuilder;();Argument[this].Element;ReturnValue.Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;get_Item;(System.Int32);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;Create;(System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;taint;df-generated | @@ -5600,13 +5606,16 @@ | System.Collections.Immutable;ImmutableDictionary;AddRange;(System.Collections.Generic.IEnumerable>);Argument[0].Element;Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableDictionary;Clear;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableDictionary`2+Enumerator.Current];value;manual | -| System.Collections.Immutable;ImmutableDictionary;Remove;(TKey);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableDictionary;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableDictionary;Remove;(TKey);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableDictionary;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableDictionary;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;TryGetKey;(TKey,TKey);Argument[0];Argument[1];value;dfc-generated | +| System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;dfc-generated | +| System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._valueComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | @@ -5634,14 +5643,17 @@ | System.Collections.Immutable;ImmutableHashSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableHashSet;Clear;();Argument[this].WithoutElement;ReturnValue;value;manual | -| System.Collections.Immutable;ImmutableHashSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableHashSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableHashSet`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableHashSet;Intersect;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableHashSet;Remove;(T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableHashSet;Remove;(T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableHashSet;TryGetValue;(T,T);Argument[0];Argument[1];value;dfc-generated | +| System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;dfc-generated | +| System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;WithComparer;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;get_KeyComparer;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;dfc-generated | @@ -5692,17 +5704,17 @@ | System.Collections.Immutable;ImmutableList;Create;(System.ReadOnlySpan);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList;Create;(T);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList;Create;(T[]);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;CreateRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;CreateRange;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;IndexOf;(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableList;IndexOf;(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableList;LastIndexOf;(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableList;LastIndexOf;(System.Collections.Immutable.IImmutableList,T,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[2];taint;df-generated | -| System.Collections.Immutable;ImmutableList;Remove;(System.Collections.Immutable.IImmutableList,T);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Immutable.IImmutableList,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;Replace;(System.Collections.Immutable.IImmutableList,T,T);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;Remove;(System.Collections.Immutable.IImmutableList,T);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Immutable.IImmutableList,System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableList;Replace;(System.Collections.Immutable.IImmutableList,T,T);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(System.Collections.Immutable.IImmutableList,T,T);Argument[2];Argument[0].Element;taint;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(System.Collections.Immutable.IImmutableList,T,T);Argument[2];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;ToImmutableList;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;ToImmutableList;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList+Builder;AddRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList+Builder;BinarySearch;(System.Int32,System.Int32,T,System.Collections.Generic.IComparer);Argument[2];Argument[3];taint;df-generated | | System.Collections.Immutable;ImmutableList+Builder;BinarySearch;(System.Int32,System.Int32,T,System.Collections.Generic.IComparer);Argument[this];Argument[3];taint;df-generated | @@ -5780,27 +5792,26 @@ | System.Collections.Immutable;ImmutableList;Insert;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);Argument[1].Element;Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList;LastIndexOf;(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[3];taint;df-generated | -| System.Collections.Immutable;ImmutableList;Remove;(T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;Remove;(T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[1];taint;df-generated | -| System.Collections.Immutable;ImmutableList;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList;RemoveAt;(System.Int32);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;RemoveAt;(System.Int32);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Int32,System.Int32);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;RemoveRange;(System.Int32,System.Int32);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(T,T);Argument[1];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(T,T);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;Replace;(T,T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;Replace;(T,T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableList;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Reverse;();Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableList;Reverse;(System.Int32,System.Int32);Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableList;SetItem;(System.Int32,T);Argument[1];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableList;SetItem;(System.Int32,T);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList;SetItem;(System.Int32,T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableList;SetItem;(System.Int32,T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Sort;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | @@ -5831,15 +5842,15 @@ | System.Collections.Immutable;ImmutableSortedDictionary;CreateBuilder;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;CreateBuilder;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);Argument[1].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable>);Argument[1];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEnumerable>);Argument[2];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;CreateRange;(System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | @@ -5896,17 +5907,27 @@ | System.Collections.Immutable;ImmutableSortedDictionary;Clear;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;Clear;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator.Current];value;manual | -| System.Collections.Immutable;ImmutableSortedDictionary;Remove;(TKey);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;Remove;(TKey);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;TryGetKey;(TKey,TKey);Argument[0];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;TryGetKey;(TKey,TKey);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];Argument[1];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;get_Item;(TKey);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;get_KeyComparer;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;get_Keys;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element;value;manual | @@ -5924,10 +5945,10 @@ | System.Collections.Immutable;ImmutableSortedSet;Create;(T[]);Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet;CreateBuilder;(System.Collections.Generic.IComparer);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;CreateRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;ToImmutableSortedSet;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;ToImmutableSortedSet;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;CreateRange;(System.Collections.Generic.IComparer,System.Collections.Generic.IEnumerable);Argument[1];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;CreateRange;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;ToImmutableSortedSet;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;ToImmutableSortedSet;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;ToImmutableSortedSet;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet+Builder;IntersectWith;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Builder._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;dfc-generated | @@ -5945,20 +5966,26 @@ | System.Collections.Immutable;ImmutableSortedSet;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet;Clear;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;Clear;();Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet`1+Enumerator.Current];value;manual | -| System.Collections.Immutable;ImmutableSortedSet;Intersect;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;Remove;(T);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;Intersect;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;Remove;(T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;Reverse;();Argument[this].Element;ReturnValue.Element;value;manual | +| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet;TryGetValue;(T,T);Argument[0];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;TryGetValue;(T,T);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];Argument[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;dfc-generated | +| System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | +| System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableSortedSet;get_KeyComparer;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;get_Max;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];ReturnValue;value;dfc-generated | @@ -6198,6 +6225,7 @@ | System.ComponentModel.DataAnnotations;AssociationAttribute;get_OtherKeyMembers;();Argument[this].Property[System.ComponentModel.DataAnnotations.AssociationAttribute.OtherKey];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel.DataAnnotations;AssociationAttribute;get_ThisKeyMembers;();Argument[this].Property[System.ComponentModel.DataAnnotations.AssociationAttribute.ThisKey];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;CompareAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];value;dfc-generated | +| System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherPropertyDisplayName];value;df-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherPropertyDisplayName];value;dfc-generated | | System.ComponentModel.DataAnnotations;CustomValidationAttribute;CustomValidationAttribute;(System.Type,System.String);Argument[1];Argument[this].Property[System.ComponentModel.DataAnnotations.CustomValidationAttribute.Method];value;dfc-generated | | System.ComponentModel.DataAnnotations;DataTypeAttribute;DataTypeAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.DataTypeAttribute.CustomDataType];value;dfc-generated | @@ -6230,6 +6258,11 @@ | System.ComponentModel.DataAnnotations;UIHintAttribute;get_UIHint;();Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.UIHint];ReturnValue;value;dfc-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;GetValidationResult;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;Validate;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;df-generated | +| System.ComponentModel.DataAnnotations;ValidationAttribute;Validate;(System.Object,System.String);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;ValidationAttribute;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;ValidationAttribute;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.DataAnnotations;ValidationAttribute;ValidationAttribute;(System.Func);Argument[0];Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.ValidationAttribute._errorMessageResourceAccessor];value;dfc-generated | @@ -6376,8 +6409,12 @@ | System.ComponentModel;AmbientValueAttribute;AmbientValueAttribute;(System.String);Argument[0];Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];value;dfc-generated | | System.ComponentModel;AmbientValueAttribute;AmbientValueAttribute;(System.Type,System.String);Argument[1];Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];value;dfc-generated | | System.ComponentModel;AmbientValueAttribute;get_Value;();Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];ReturnValue;value;dfc-generated | +| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ArrayConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;AsyncCompletedEventArgs;AsyncCompletedEventArgs;(System.Exception,System.Boolean,System.Object);Argument[0];Argument[this].Property[System.ComponentModel.AsyncCompletedEventArgs.Error];value;dfc-generated | | System.ComponentModel;AsyncCompletedEventArgs;AsyncCompletedEventArgs;(System.Exception,System.Boolean,System.Object);Argument[2];Argument[this].Property[System.ComponentModel.AsyncCompletedEventArgs.UserState];value;dfc-generated | @@ -6405,8 +6442,12 @@ | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;BindingList;InsertItem;(System.Int32,T);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | | System.ComponentModel;BindingList;OnAddingNew;(System.ComponentModel.AddingNewEventArgs);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;BindingList;OnListChanged;(System.ComponentModel.ListChangedEventArgs);Argument[0];Argument[this];taint;df-generated | @@ -6424,11 +6465,19 @@ | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CollectionChangeEventHandler;BeginInvoke;(System.Object,System.ComponentModel.CollectionChangeEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | +| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CollectionConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;ComplexBindingPropertiesAttribute;ComplexBindingPropertiesAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.ComplexBindingPropertiesAttribute.DataSource];value;dfc-generated | | System.ComponentModel;ComplexBindingPropertiesAttribute;ComplexBindingPropertiesAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.ComplexBindingPropertiesAttribute.DataSource];value;dfc-generated | @@ -6446,8 +6495,12 @@ | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CultureInfoConverter;GetCultureName;(System.Globalization.CultureInfo);Argument[0].Property[System.Globalization.CultureInfo.Name];ReturnValue;value;dfc-generated | | System.ComponentModel;CultureInfoConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;CustomTypeDescriptor;CustomTypeDescriptor;(System.ComponentModel.ICustomTypeDescriptor);Argument[0];Argument[this].SyntheticField[System.ComponentModel.CustomTypeDescriptor._parent];value;dfc-generated | @@ -6455,20 +6508,36 @@ | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DefaultBindingPropertyAttribute;DefaultBindingPropertyAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultBindingPropertyAttribute.Name];value;dfc-generated | | System.ComponentModel;DefaultEventAttribute;DefaultEventAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultEventAttribute.Name];value;dfc-generated | | System.ComponentModel;DefaultPropertyAttribute;DefaultPropertyAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultPropertyAttribute.Name];value;dfc-generated | @@ -6508,8 +6577,12 @@ | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;df-generated | | System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;dfc-generated | | System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | @@ -6538,8 +6611,12 @@ | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;HandledEventHandler;BeginInvoke;(System.Object,System.ComponentModel.HandledEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;IBindingList;ApplySort;(System.ComponentModel.PropertyDescriptor,System.ComponentModel.ListSortDirection);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;IBindingList;Find;(System.ComponentModel.PropertyDescriptor,System.Object);Argument[this].Element;ReturnValue;value;manual | @@ -6617,8 +6694,12 @@ | System.ComponentModel;MemberDescriptor;get_Attributes;();Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;MemberDescriptor;get_DisplayName;();Argument[this].SyntheticField[System.ComponentModel.MemberDescriptor._displayName];ReturnValue;value;dfc-generated | | System.ComponentModel;MemberDescriptor;get_Name;();Argument[this].SyntheticField[System.ComponentModel.MemberDescriptor._name];ReturnValue;value;dfc-generated | +| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;MultilineStringConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;NestedContainer;CreateSite;(System.ComponentModel.IComponent,System.String);Argument[1];ReturnValue.SyntheticField[System.ComponentModel.NestedContainer+Site._name];value;dfc-generated | | System.ComponentModel;NestedContainer;CreateSite;(System.ComponentModel.IComponent,System.String);Argument[this];ReturnValue.SyntheticField[System.ComponentModel.Container+Site.Container];value;dfc-generated | @@ -6629,9 +6710,14 @@ | System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;NullableConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;ProgressChangedEventArgs;ProgressChangedEventArgs;(System.Int32,System.Object);Argument[1];Argument[this].SyntheticField[System.ComponentModel.ProgressChangedEventArgs._userState];value;dfc-generated | @@ -6693,8 +6779,12 @@ | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ReferenceConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;RefreshEventArgs;RefreshEventArgs;(System.Object);Argument[0];Argument[this].Property[System.ComponentModel.RefreshEventArgs.ComponentChanged];value;dfc-generated | | System.ComponentModel;RefreshEventHandler;BeginInvoke;(System.ComponentModel.RefreshEventArgs,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -6708,13 +6798,21 @@ | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ToolboxItemAttribute;ToolboxItemAttribute;(System.String);Argument[0];Argument[this].SyntheticField[System.ComponentModel.ToolboxItemAttribute._toolboxItemTypeName];value;dfc-generated | | System.ComponentModel;ToolboxItemAttribute;get_ToolboxItemTypeName;();Argument[this].SyntheticField[System.ComponentModel.ToolboxItemAttribute._toolboxItemTypeName];ReturnValue;value;dfc-generated | | System.ComponentModel;ToolboxItemFilterAttribute;ToString;();Argument[this].Property[System.ComponentModel.ToolboxItemFilterAttribute.FilterString];ReturnValue;taint;dfc-generated | @@ -6731,18 +6829,25 @@ | System.ComponentModel;TypeConverter;ConvertFromString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.String);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertFromString;(System.ComponentModel.ITypeDescriptorContext,System.String);Argument[1];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertFromString;(System.String);Argument[0];ReturnValue;value;dfc-generated | +| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.ComponentModel;TypeConverter;ConvertTo;(System.Object,System.Type);Argument[0];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;TypeConverter;ConvertTo;(System.Object,System.Type);Argument[0];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.Object,System.Type);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.Object);Argument[0];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.Object);Argument[0];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.Object);Argument[this];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;TypeConverter;ConvertToString;(System.Object);Argument[0];ReturnValue;taint;df-generated | +| System.ComponentModel;TypeConverter;ConvertToString;(System.Object);Argument[0];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.Object);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | @@ -6776,15 +6881,23 @@ | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeListConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;TypeListConverter;(System.Type[]);Argument[0].Element;Argument[this];taint;df-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;WarningException;WarningException;(System.String,System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.WarningException.HelpUrl];value;dfc-generated | | System.ComponentModel;WarningException;WarningException;(System.String,System.String,System.String);Argument[2];Argument[this].Property[System.ComponentModel.WarningException.HelpTopic];value;dfc-generated | | System.Configuration.Internal;IConfigErrorInfo;get_Filename;();Argument[this];ReturnValue;taint;df-generated | @@ -6861,8 +6974,12 @@ | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;df-generated | | System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;df-generated | @@ -7027,20 +7144,32 @@ | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;IApplicationSettingsProvider;GetPreviousVersion;(System.Configuration.SettingsContext,System.Configuration.SettingsProperty);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;IConfigurationSectionHandler;Create;(System.Object,System.Object,System.Xml.XmlNode);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;IntegerValidatorAttribute;get_ValidatorInstance;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;Add;(System.Configuration.KeyValueConfigurationElement);Argument[this];Argument[0];taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -7142,31 +7271,51 @@ | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanValidator;TimeSpanValidator;(System.TimeSpan,System.TimeSpan,System.Boolean,System.Int64);Argument[0];Argument[this];taint;df-generated | | System.Configuration;TimeSpanValidator;TimeSpanValidator;(System.TimeSpan,System.TimeSpan,System.Boolean,System.Int64);Argument[1];Argument[this];taint;df-generated | | System.Configuration;TimeSpanValidatorAttribute;get_ValidatorInstance;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;UriSection;get_Idn;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;UriSection;get_IriParsing;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;UriSection;get_SchemeSettings;();Argument[this];ReturnValue;taint;df-generated | @@ -7174,8 +7323,12 @@ | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Data.Common;DataAdapter;FillSchema;(System.Data.DataSet,System.Data.SchemaType,System.String,System.Data.IDataReader);Argument[0];ReturnValue;taint;df-generated | | System.Data.Common;DataAdapter;FillSchema;(System.Data.DataSet,System.Data.SchemaType,System.String,System.Data.IDataReader);Argument[this];ReturnValue;taint;df-generated | | System.Data.Common;DataAdapter;FillSchema;(System.Data.DataTable,System.Data.SchemaType,System.Data.IDataReader);Argument[0];ReturnValue.Element;value;dfc-generated | @@ -8467,8 +8620,12 @@ | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing.Printing;PrintDocument;add_BeginPrint;(System.Drawing.Printing.PrintEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing.Printing;PrintDocument;add_EndPrint;(System.Drawing.Printing.PrintEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing.Printing;PrintDocument;add_PrintPage;(System.Drawing.Printing.PrintPageEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -8487,9 +8644,14 @@ | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ColorConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.Drawing;ColorTranslator;ToHtml;(System.Drawing.Color);Argument[0].Property[System.Drawing.Color.Name];ReturnValue;value;dfc-generated | | System.Drawing;ColorTranslator;ToHtml;(System.Drawing.Color);Argument[0].SyntheticField[System.Drawing.Color.name];ReturnValue;value;dfc-generated | @@ -8504,8 +8666,12 @@ | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;FontConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;Graphics+DrawImageAbort;BeginInvoke;(System.IntPtr,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Drawing;Graphics+EnumerateMetafileProc;BeginInvoke;(System.Drawing.Imaging.EmfPlusRecordType,System.Int32,System.Int32,System.IntPtr,System.Drawing.Imaging.PlayRecordCallback,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | @@ -8558,8 +8724,12 @@ | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;Image+GetThumbnailImageAbort;BeginInvoke;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing;Image;GetThumbnailImage;(System.Int32,System.Int32,System.Drawing.Image+GetThumbnailImageAbort,System.IntPtr);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Drawing;ImageAnimator;Animate;(System.Drawing.Image,System.EventHandler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -8567,44 +8737,72 @@ | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ImageConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ImageFormatConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;PointConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;Rectangle;Inflate;(System.Drawing.Rectangle,System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;RectangleConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;RectangleF;Inflate;(System.Drawing.RectangleF,System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;SizeConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | +| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;SizeFConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Dynamic;BinaryOperationBinder;FallbackBinaryOperation;(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject);Argument[2];ReturnValue;value;dfc-generated | | System.Dynamic;BindingRestrictions;Combine;(System.Collections.Generic.IList);Argument[0].Element;ReturnValue;taint;df-generated | @@ -8686,7 +8884,7 @@ | System.Globalization;CultureInfo;GetCultureInfo;(System.String,System.String);Argument[0];ReturnValue;taint;df-generated | | System.Globalization;CultureInfo;GetCultureInfo;(System.String,System.String);Argument[1];ReturnValue;taint;df-generated | | System.Globalization;CultureInfo;GetCultureInfoByIetfLanguageTag;(System.String);Argument[0];ReturnValue;taint;df-generated | -| System.Globalization;CultureInfo;ReadOnly;(System.Globalization.CultureInfo);Argument[0];ReturnValue;taint;df-generated | +| System.Globalization;CultureInfo;ReadOnly;(System.Globalization.CultureInfo);Argument[0];ReturnValue;value;df-generated | | System.Globalization;CultureInfo;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Globalization;CultureInfo;get_Calendar;();Argument[this];ReturnValue;taint;df-generated | | System.Globalization;CultureInfo;get_DisplayName;();Argument[this];ReturnValue;taint;df-generated | @@ -9637,11 +9835,11 @@ | System.Linq.Expressions;Expression;Unbox;(System.Linq.Expressions.Expression,System.Type);Argument[0];ReturnValue.Property[System.Linq.Expressions.UnaryExpression.Operand];value;dfc-generated | | System.Linq.Expressions;Expression;Variable;(System.Type,System.String);Argument[1];ReturnValue.Property[System.Linq.Expressions.ParameterExpression.Name];value;dfc-generated | | System.Linq.Expressions;Expression;VisitChildren;(System.Linq.Expressions.ExpressionVisitor);Argument[this];Argument[0];taint;df-generated | -| System.Linq.Expressions;Expression;VisitChildren;(System.Linq.Expressions.ExpressionVisitor);Argument[this];ReturnValue;taint;df-generated | +| System.Linq.Expressions;Expression;VisitChildren;(System.Linq.Expressions.ExpressionVisitor);Argument[this];ReturnValue;value;df-generated | | System.Linq.Expressions;Expression;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue;taint;df-generated | | System.Linq.Expressions;Expression;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);Argument[0].Element;Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Linq.Expressions.Expression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | @@ -9650,15 +9848,15 @@ | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);Argument[0].Element;Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(T,System.String);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(T,System.String);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(T,System.String);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitBinary;(System.Linq.Expressions.BinaryExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitBinary;(System.Linq.Expressions.BinaryExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitBinary;(System.Linq.Expressions.BinaryExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitBlock;(System.Linq.Expressions.BlockExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitCatchBlock;(System.Linq.Expressions.CatchBlock);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitConditional;(System.Linq.Expressions.ConditionalExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitConditional;(System.Linq.Expressions.ConditionalExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitConditional;(System.Linq.Expressions.ConditionalExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitConstant;(System.Linq.Expressions.ConstantExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitDebugInfo;(System.Linq.Expressions.DebugInfoExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitDefault;(System.Linq.Expressions.DefaultExpression);Argument[0];ReturnValue;value;dfc-generated | @@ -9666,22 +9864,22 @@ | System.Linq.Expressions;ExpressionVisitor;VisitElementInit;(System.Linq.Expressions.ElementInit);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitExtension;(System.Linq.Expressions.Expression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitGoto;(System.Linq.Expressions.GotoExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitGoto;(System.Linq.Expressions.GotoExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitGoto;(System.Linq.Expressions.GotoExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitIndex;(System.Linq.Expressions.IndexExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitIndex;(System.Linq.Expressions.IndexExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitIndex;(System.Linq.Expressions.IndexExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitInvocation;(System.Linq.Expressions.InvocationExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitInvocation;(System.Linq.Expressions.InvocationExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitInvocation;(System.Linq.Expressions.InvocationExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitLabel;(System.Linq.Expressions.LabelExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitLabelTarget;(System.Linq.Expressions.LabelTarget);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitLambda;(System.Linq.Expressions.Expression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitListInit;(System.Linq.Expressions.ListInitExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitLoop;(System.Linq.Expressions.LoopExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMember;(System.Linq.Expressions.MemberExpression);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitMember;(System.Linq.Expressions.MemberExpression);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitMember;(System.Linq.Expressions.MemberExpression);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMemberAssignment;(System.Linq.Expressions.MemberAssignment);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitMemberAssignment;(System.Linq.Expressions.MemberAssignment);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitMemberAssignment;(System.Linq.Expressions.MemberAssignment);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMemberBinding;(System.Linq.Expressions.MemberBinding);Argument[0];Argument[this];taint;df-generated | -| System.Linq.Expressions;ExpressionVisitor;VisitMemberBinding;(System.Linq.Expressions.MemberBinding);Argument[0];ReturnValue;taint;df-generated | +| System.Linq.Expressions;ExpressionVisitor;VisitMemberBinding;(System.Linq.Expressions.MemberBinding);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMemberInit;(System.Linq.Expressions.MemberInitExpression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMemberListBinding;(System.Linq.Expressions.MemberListBinding);Argument[0].Property[System.Linq.Expressions.MemberListBinding.Initializers];ReturnValue.Property[System.Linq.Expressions.MemberListBinding.Initializers];value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;VisitMemberListBinding;(System.Linq.Expressions.MemberListBinding);Argument[0];ReturnValue;value;dfc-generated | @@ -10137,7 +10335,7 @@ | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Skip;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SkipLast;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Linq;Enumerable;SkipLast;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0];ReturnValue;value;df-generated | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | @@ -11698,6 +11896,7 @@ | System.Net;HttpListenerRequest;get_ProtocolVersion;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;get_RawUrl;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;get_Url;();Argument[this];ReturnValue;taint;df-generated | +| System.Net;HttpListenerRequest;get_UrlReferrer;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;get_UserAgent;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerRequest;get_UserHostName;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListenerResponse;AppendCookie;(System.Net.Cookie);Argument[0];Argument[this].Property[System.Net.HttpListenerResponse.Cookies].Element;value;dfc-generated | @@ -12545,7 +12744,7 @@ | System.Reflection;MethodInfo;get_ReturnParameter;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection;MethodInfo;get_ReturnType;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection;MethodInfo;get_ReturnTypeCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection;MethodInfoExtensions;GetBaseDefinition;(System.Reflection.MethodInfo);Argument[0];ReturnValue;taint;df-generated | +| System.Reflection;MethodInfoExtensions;GetBaseDefinition;(System.Reflection.MethodInfo);Argument[0];ReturnValue;value;df-generated | | System.Reflection;MethodInvoker;Invoke;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Reflection;MethodInvoker;Invoke;(System.Object);Argument[this];ReturnValue;taint;df-generated | | System.Reflection;MethodInvoker;Invoke;(System.Object,System.Object);Argument[0];Argument[this];taint;df-generated | @@ -12631,7 +12830,7 @@ | System.Reflection;ReflectionTypeLoadException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | | System.Reflection;ReflectionTypeLoadException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Reflection;RuntimeReflectionExtensions;GetMethodInfo;(System.Delegate);Argument[0].Property[System.Delegate.Method];ReturnValue;value;dfc-generated | -| System.Reflection;RuntimeReflectionExtensions;GetRuntimeBaseDefinition;(System.Reflection.MethodInfo);Argument[0];ReturnValue;taint;df-generated | +| System.Reflection;RuntimeReflectionExtensions;GetRuntimeBaseDefinition;(System.Reflection.MethodInfo);Argument[0];ReturnValue;value;df-generated | | System.Reflection;RuntimeReflectionExtensions;GetRuntimeInterfaceMap;(System.Reflection.TypeInfo,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Reflection;TypeFilter;BeginInvoke;(System.Type,System.Object,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Reflection;TypeInfo;AsType;();Argument[this];ReturnValue;value;dfc-generated | @@ -13080,8 +13279,12 @@ | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;ToString;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customServiceNames].Element;ReturnValue;taint;dfc-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;get_CustomChannelBinding;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customChannelBinding];ReturnValue;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;get_CustomServiceNames;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customServiceNames];ReturnValue;value;dfc-generated | +| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.Collections.IEnumerable);Argument[0].Element;ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.Collections.IEnumerable);Argument[0].Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.String);Argument[0];ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | @@ -13733,7 +13936,7 @@ | System.Text.RegularExpressions;GroupCollection;get_Item;(System.String);Argument[this].Element;ReturnValue;value;manual | | System.Text.RegularExpressions;GroupCollection;get_Keys;();Argument[this];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;GroupCollection;get_Values;();Argument[this];ReturnValue;taint;df-generated | -| System.Text.RegularExpressions;Match;NextMatch;();Argument[this];ReturnValue;taint;df-generated | +| System.Text.RegularExpressions;Match;NextMatch;();Argument[this];ReturnValue;value;df-generated | | System.Text.RegularExpressions;Match;Synchronized;(System.Text.RegularExpressions.Match);Argument[0];ReturnValue;value;dfc-generated | | System.Text.RegularExpressions;MatchCollection;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System.Text.RegularExpressions;MatchEvaluator;BeginInvoke;(System.Text.RegularExpressions.Match,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -14356,13 +14559,13 @@ | System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[0];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan);Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider);Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[2];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;WhenAll;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Threading.Tasks.Task`1.Result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result].Element;value;manual | | System.Threading.Tasks;Task;WhenAll;(System.ReadOnlySpan>);Argument[0].Element.Property[System.Threading.Tasks.Task`1.Result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result].Element;value;manual | | System.Threading.Tasks;Task;WhenAll;(System.Threading.Tasks.Task[]);Argument[0].Element.Property[System.Threading.Tasks.Task`1.Result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result].Element;value;manual | @@ -14463,11 +14666,11 @@ | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | -| System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider);Argument[this];ReturnValue;value;df-generated | +| System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;get_Result;();Argument[this];ReturnValue;taint;manual | | System.Threading.Tasks;TaskAsyncEnumerableExtensions;ConfigureAwait;(System.IAsyncDisposable,System.Boolean);Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks;TaskAsyncEnumerableExtensions;ConfigureAwait;(System.Collections.Generic.IAsyncEnumerable,System.Boolean);Argument[0];ReturnValue;taint;df-generated | @@ -14947,7 +15150,7 @@ | System.Threading.Tasks;ValueTask;AsTask;();Argument[this].SyntheticField[System.Threading.Tasks.ValueTask`1._result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | | System.Threading.Tasks;ValueTask;ConfigureAwait;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ValueTask;GetAwaiter;();Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;ValueTask;Preserve;();Argument[this];ReturnValue;taint;df-generated | +| System.Threading.Tasks;ValueTask;Preserve;();Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;ValueTask;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;ValueTask;ValueTask;(System.Threading.Tasks.Sources.IValueTaskSource,System.Int16);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.ValueTask`1._obj];value;dfc-generated | | System.Threading.Tasks;ValueTask;ValueTask;(System.Threading.Tasks.Task);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.ValueTask`1._obj];value;dfc-generated | @@ -15181,7 +15384,9 @@ | System.Xml.Linq;XContainer;Add;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XContainer;Add;(System.Object);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XContainer;Add;(System.Object[]);Argument[0].Element;Argument[this];taint;df-generated | +| System.Xml.Linq;XContainer;Add;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XContainer;AddFirst;(System.Object);Argument[this];Argument[0];taint;df-generated | +| System.Xml.Linq;XContainer;AddFirst;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XContainer;DescendantNodes;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XContainer;Descendants;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XContainer;Descendants;(System.Xml.Linq.XName);Argument[this];ReturnValue;taint;df-generated | @@ -15192,6 +15397,7 @@ | System.Xml.Linq;XContainer;ReplaceNodes;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XContainer;ReplaceNodes;(System.Object);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XContainer;ReplaceNodes;(System.Object[]);Argument[0].Element;Argument[this];taint;df-generated | +| System.Xml.Linq;XContainer;ReplaceNodes;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XContainer;get_FirstNode;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XContainer;get_LastNode;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XDeclaration;ToString;();Argument[this].SyntheticField[System.Xml.Linq.XDeclaration._encoding];ReturnValue;taint;dfc-generated | @@ -15245,9 +15451,11 @@ | System.Xml.Linq;XElement;ReplaceAll;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XElement;ReplaceAll;(System.Object);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XElement;ReplaceAll;(System.Object[]);Argument[0].Element;Argument[this];taint;df-generated | +| System.Xml.Linq;XElement;ReplaceAll;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XElement;ReplaceAttributes;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XElement;ReplaceAttributes;(System.Object);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XElement;ReplaceAttributes;(System.Object[]);Argument[0].Element;Argument[this];taint;df-generated | +| System.Xml.Linq;XElement;ReplaceAttributes;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XElement;SetAttributeValue;(System.Xml.Linq.XName,System.Object);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XElement;SetAttributeValue;(System.Xml.Linq.XName,System.Object);Argument[1];Argument[this];taint;df-generated | | System.Xml.Linq;XElement;SetElementValue;(System.Xml.Linq.XName,System.Object);Argument[1];Argument[this];taint;df-generated | @@ -15269,7 +15477,9 @@ | System.Xml.Linq;XNamespace;get_NamespaceName;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XNamespace;op_Addition;(System.Xml.Linq.XNamespace,System.String);Argument[0];ReturnValue.SyntheticField[System.Xml.Linq.XName._ns];value;dfc-generated | | System.Xml.Linq;XNode;AddAfterSelf;(System.Object);Argument[this];Argument[0];taint;df-generated | +| System.Xml.Linq;XNode;AddAfterSelf;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XNode;AddBeforeSelf;(System.Object);Argument[this];Argument[0];taint;df-generated | +| System.Xml.Linq;XNode;AddBeforeSelf;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XNode;Ancestors;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XNode;Ancestors;(System.Xml.Linq.XName);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Linq;XNode;CreateReader;(System.Xml.Linq.ReaderOptions);Argument[this];ReturnValue.SyntheticField[System.Xml.Linq.XNodeReader._source];value;dfc-generated | @@ -15279,6 +15489,7 @@ | System.Xml.Linq;XNode;ReadFrom;(System.Xml.XmlReader);Argument[0];ReturnValue;taint;df-generated | | System.Xml.Linq;XNode;ReadFromAsync;(System.Xml.XmlReader,System.Threading.CancellationToken);Argument[0];ReturnValue;taint;df-generated | | System.Xml.Linq;XNode;ReplaceWith;(System.Object);Argument[this];Argument[0];taint;df-generated | +| System.Xml.Linq;XNode;ReplaceWith;(System.Object[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Linq;XNode;WriteTo;(System.Xml.XmlWriter);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XNode;WriteToAsync;(System.Xml.XmlWriter,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | | System.Xml.Linq;XNode;get_NextNode;();Argument[this];ReturnValue;taint;df-generated | @@ -15308,10 +15519,11 @@ | System.Xml.Linq;XStreamingElement;XStreamingElement;(System.Xml.Linq.XName,System.Object[]);Argument[1].Element;Argument[this];taint;df-generated | | System.Xml.Linq;XText;XText;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml.Linq;XText;XText;(System.Xml.Linq.XText);Argument[0];Argument[this];taint;df-generated | -| System.Xml.Resolvers;XmlPreloadedResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | +| System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | +| System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | | System.Xml.Resolvers;XmlPreloadedResolver;XmlPreloadedResolver;(System.Xml.XmlResolver,System.Xml.Resolvers.XmlKnownDtds,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[this];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;get_PreloadedUris;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;Extensions;GetSchemaInfo;(System.Xml.Linq.XAttribute);Argument[0];ReturnValue;taint;df-generated | @@ -15365,14 +15577,15 @@ | System.Xml.Schema;XmlSchemaComplexContentRestriction;get_Attributes;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaComplexType;get_AttributeWildcard;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaComplexType;get_ContentTypeParticle;();Argument[this];ReturnValue;taint;df-generated | -| System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type);Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type);Argument[0];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type,System.Xml.IXmlNamespaceResolver);Argument[0];Argument[2];taint;df-generated | -| System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type,System.Xml.IXmlNamespaceResolver);Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type,System.Xml.IXmlNamespaceResolver);Argument[0];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type,System.Xml.IXmlNamespaceResolver);Argument[2];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ChangeType;(System.Object,System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ParseValue;(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver);Argument[0];Argument[2];taint;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ParseValue;(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver);Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaDatatype;ParseValue;(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver);Argument[0];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ParseValue;(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver);Argument[2];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaDatatype;ParseValue;(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaElement;get_ElementSchemaType;();Argument[this];ReturnValue;taint;df-generated | @@ -15416,12 +15629,12 @@ | System.Xml.Schema;XmlSchemaSet;Add;(System.String,System.Xml.XmlReader);Argument[1];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;Add;(System.String,System.Xml.XmlReader);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;Add;(System.Xml.Schema.XmlSchema);Argument[0];Argument[this];taint;df-generated | -| System.Xml.Schema;XmlSchemaSet;Add;(System.Xml.Schema.XmlSchema);Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaSet;Add;(System.Xml.Schema.XmlSchema);Argument[0];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaSet;Add;(System.Xml.Schema.XmlSchemaSet);Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaSet;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;Remove;(System.Xml.Schema.XmlSchema);Argument[0];ReturnValue;value;dfc-generated | | System.Xml.Schema;XmlSchemaSet;Reprocess;(System.Xml.Schema.XmlSchema);Argument[0];Argument[this];taint;df-generated | -| System.Xml.Schema;XmlSchemaSet;Reprocess;(System.Xml.Schema.XmlSchema);Argument[0];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaSet;Reprocess;(System.Xml.Schema.XmlSchema);Argument[0];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaSet;Schemas;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;Schemas;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaSet;XmlSchemaSet;(System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.Schema.XmlSchemaSet._nameTable];value;dfc-generated | @@ -15447,7 +15660,7 @@ | System.Xml.Schema;XmlSchemaValidator;Initialize;(System.Xml.Schema.XmlSchemaObject);Argument[0];Argument[this].SyntheticField[System.Xml.Schema.XmlSchemaValidator._partialValidationType];value;dfc-generated | | System.Xml.Schema;XmlSchemaValidator;SkipToEndElement;(System.Xml.Schema.XmlSchemaInfo);Argument[this];Argument[0];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);Argument[2];Argument[this];taint;df-generated | -| System.Xml.Schema;XmlSchemaValidator;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);Argument[2];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);Argument[2];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateAttribute;(System.String,System.String,System.String,System.Xml.Schema.XmlSchemaInfo);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateAttribute;(System.String,System.String,System.Xml.Schema.XmlValueGetter,System.Xml.Schema.XmlSchemaInfo);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateElement;(System.String,System.String,System.Xml.Schema.XmlSchemaInfo);Argument[0];Argument[this];taint;df-generated | @@ -15460,7 +15673,7 @@ | System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[1];Argument[0];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[1];Argument[this];taint;df-generated | -| System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[1];ReturnValue;taint;df-generated | +| System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[1];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[this];Argument[0];taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateEndElement;(System.Xml.Schema.XmlSchemaInfo,System.Object);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaValidator;ValidateText;(System.Xml.Schema.XmlValueGetter);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -15829,6 +16042,7 @@ | System.Xml.XPath;Extensions;CreateNavigator;(System.Xml.Linq.XNode,System.Xml.XmlNameTable);Argument[0];ReturnValue.SyntheticField[System.Xml.XPath.XNodeNavigator._source];value;dfc-generated | | System.Xml.XPath;Extensions;CreateNavigator;(System.Xml.Linq.XNode,System.Xml.XmlNameTable);Argument[1];ReturnValue.SyntheticField[System.Xml.XPath.XNodeNavigator._nameTable];value;dfc-generated | | System.Xml.XPath;IXPathNavigable;CreateNavigator;();Argument[this];ReturnValue;taint;df-generated | +| System.Xml.XPath;IXPathNavigable;CreateNavigator;();Argument[this];ReturnValue;value;df-generated | | System.Xml.XPath;XDocumentExtensions;ToXPathNavigable;(System.Xml.Linq.XNode);Argument[0];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathDocument;XPathDocument;(System.Xml.XmlReader,System.Xml.XmlSpace);Argument[0];Argument[this];taint;df-generated | | System.Xml.XPath;XPathException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | @@ -15839,7 +16053,7 @@ | System.Xml.XPath;XPathExpression;SetContext;(System.Xml.IXmlNamespaceResolver);Argument[0];Argument[this];taint;df-generated | | System.Xml.XPath;XPathExpression;SetContext;(System.Xml.XmlNamespaceManager);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml.XPath;XPathExpression;get_Expression;();Argument[this];ReturnValue;taint;df-generated | -| System.Xml.XPath;XPathItem;ValueAs;(System.Type);Argument[this];ReturnValue;taint;df-generated | +| System.Xml.XPath;XPathItem;ValueAs;(System.Type);Argument[this];ReturnValue;value;df-generated | | System.Xml.XPath;XPathItem;ValueAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathItem;ValueAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];Argument[1];taint;df-generated | | System.Xml.XPath;XPathItem;ValueAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated | @@ -16211,6 +16425,7 @@ | System.Xml;XmlNamespaceManager;get_NameTable;();Argument[this].SyntheticField[System.Xml.XmlNamespaceManager._nameTable];ReturnValue;value;dfc-generated | | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;Clone;();Argument[this];ReturnValue;taint;df-generated | @@ -16222,6 +16437,7 @@ | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[1].Element;taint;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[this];taint;df-generated | | System.Xml;XmlNode;InsertAfter;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;ReturnValue;taint;df-generated | @@ -16230,20 +16446,21 @@ | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[1].Element;taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;ReturnValue;taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];Argument[1].Element;taint;df-generated | | System.Xml;XmlNode;InsertBefore;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;PrependChild;(System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | -| System.Xml;XmlNode;PrependChild;(System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlNode;PrependChild;(System.Xml.XmlNode);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlNode;PrependChild;(System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;PrependChild;(System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;RemoveChild;(System.Xml.XmlNode);Argument[0];ReturnValue;value;dfc-generated | | System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;Argument[this];taint;df-generated | -| System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1].Element;ReturnValue;taint;df-generated | +| System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[1];ReturnValue;value;df-generated | | System.Xml;XmlNode;ReplaceChild;(System.Xml.XmlNode,System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;SelectNodes;(System.String);Argument[this];ReturnValue;taint;manual | | System.Xml;XmlNode;SelectNodes;(System.String,System.Xml.XmlNamespaceManager);Argument[this];ReturnValue;taint;manual | @@ -16382,15 +16599,16 @@ | System.Xml;XmlReaderSettings;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlReaderSettings;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml;XmlReaderSettings;set_XmlResolver;(System.Xml.XmlResolver);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | +| System.Xml;XmlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | | System.Xml;XmlResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlResolver;ResolveUri;(System.Uri,System.String);Argument[0];ReturnValue;value;dfc-generated | | System.Xml;XmlResolver;ResolveUri;(System.Uri,System.String);Argument[1];ReturnValue;taint;dfc-generated | | System.Xml;XmlResolver;set_Credentials;(System.Net.ICredentials);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlSecureResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;df-generated | | System.Xml;XmlSecureResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | | System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | +| System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | +| System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | | System.Xml;XmlText;SplitText;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlTextReader;GetRemainder;();Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlTextReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;df-generated | @@ -16435,7 +16653,6 @@ | System.Xml;XmlTextWriter;XmlTextWriter;(System.IO.Stream,System.Text.Encoding);Argument[1];Argument[this];taint;df-generated | | System.Xml;XmlTextWriter;XmlTextWriter;(System.IO.TextWriter);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlTextWriter;get_BaseStream;();Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter].Property[System.IO.StreamWriter.BaseStream];ReturnValue;value;dfc-generated | -| System.Xml;XmlUrlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;df-generated | | System.Xml;XmlUrlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | | System.Xml;XmlUrlResolver;set_Proxy;(System.Net.IWebProxy);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlValidatingReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;df-generated | @@ -16462,8 +16679,8 @@ | System.Xml;XmlWriter;Create;(System.Text.StringBuilder);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlWriter;Create;(System.Text.StringBuilder,System.Xml.XmlWriterSettings);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlWriter;Create;(System.Text.StringBuilder,System.Xml.XmlWriterSettings);Argument[1];ReturnValue;taint;df-generated | -| System.Xml;XmlWriter;Create;(System.Xml.XmlWriter);Argument[0];ReturnValue;taint;df-generated | -| System.Xml;XmlWriter;Create;(System.Xml.XmlWriter,System.Xml.XmlWriterSettings);Argument[0];ReturnValue;taint;df-generated | +| System.Xml;XmlWriter;Create;(System.Xml.XmlWriter);Argument[0];ReturnValue;value;df-generated | +| System.Xml;XmlWriter;Create;(System.Xml.XmlWriter,System.Xml.XmlWriterSettings);Argument[0];ReturnValue;value;df-generated | | System.Xml;XmlWriter;Create;(System.Xml.XmlWriter,System.Xml.XmlWriterSettings);Argument[1];ReturnValue;taint;df-generated | | System.Xml;XmlWriter;LookupPrefix;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlWriter;WriteAttributeString;(System.String,System.String);Argument[0];Argument[this];taint;df-generated | @@ -16551,7 +16768,7 @@ | System;Action;BeginInvoke;(T,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;AggregateException;AggregateException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;Argument[this].SyntheticField[System.AggregateException._innerExceptions];value;dfc-generated | | System;AggregateException;AggregateException;(System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;value;dfc-generated | -| System;AggregateException;GetBaseException;();Argument[this];ReturnValue;taint;df-generated | +| System;AggregateException;GetBaseException;();Argument[this];ReturnValue;value;df-generated | | System;AggregateException;Handle;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;AggregateException;Handle;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;AggregateException;Handle;(System.Func);Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;Argument[0].Parameter[0];value;dfc-generated | @@ -16669,6 +16886,7 @@ | System;ArraySegment;Slice;(System.Int32,System.Int32);Argument[this].SyntheticField[System.ArraySegment`1._array];ReturnValue.SyntheticField[System.ArraySegment`1._array];value;dfc-generated | | System;ArraySegment;get_Array;();Argument[this].SyntheticField[System.ArraySegment`1._array];ReturnValue;value;dfc-generated | | System;ArraySegment;get_Item;(System.Int32);Argument[this].SyntheticField[System.ArraySegment`1._array].Element;ReturnValue;value;dfc-generated | +| System;ArraySegment;set_Item;(System.Int32,T);Argument[1];Argument[this].SyntheticField[System.ArraySegment`1._array].Element;value;dfc-generated | | System;AssemblyLoadEventHandler;BeginInvoke;(System.Object,System.AssemblyLoadEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;AsyncCallback;BeginInvoke;(System.IAsyncResult,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Attribute;get_TypeId;();Argument[this];ReturnValue;taint;df-generated | @@ -17043,7 +17261,7 @@ | System;Exception;Exception;(System.String);Argument[0];Argument[this].SyntheticField[System.Exception._message];value;dfc-generated | | System;Exception;Exception;(System.String,System.Exception);Argument[0];Argument[this].SyntheticField[System.Exception._message];value;dfc-generated | | System;Exception;Exception;(System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.Exception._innerException];value;dfc-generated | -| System;Exception;GetBaseException;();Argument[this];ReturnValue;taint;df-generated | +| System;Exception;GetBaseException;();Argument[this];ReturnValue;value;df-generated | | System;Exception;ToString;();Argument[this];ReturnValue;taint;df-generated | | System;Exception;add_SerializeObjectState;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Exception;get_InnerException;();Argument[this].SyntheticField[System.Exception._innerException];ReturnValue;value;dfc-generated | @@ -17961,9 +18179,8 @@ | System;Uri;GetComponents;(System.UriComponents,System.UriFormat);Argument[this];ReturnValue;taint;df-generated | | System;Uri;GetLeftPart;(System.UriPartial);Argument[this];ReturnValue;taint;df-generated | | System;Uri;MakeRelative;(System.Uri);Argument[0];ReturnValue;taint;df-generated | -| System;Uri;MakeRelativeUri;(System.Uri);Argument[0];ReturnValue;taint;df-generated | +| System;Uri;MakeRelativeUri;(System.Uri);Argument[0];ReturnValue;value;df-generated | | System;Uri;ToString;();Argument[this];ReturnValue;taint;manual | -| System;Uri;ToString;(System.String,System.IFormatProvider);Argument[this].SyntheticField[System.Uri._string];ReturnValue;value;dfc-generated | | System;Uri;TryCreate;(System.String,System.UriCreationOptions,System.Uri);Argument[0];Argument[2];taint;manual | | System;Uri;TryCreate;(System.String,System.UriKind,System.Uri);Argument[0];Argument[2];taint;manual | | System;Uri;TryCreate;(System.Uri,System.String,System.Uri);Argument[0];Argument[2];taint;manual | @@ -18048,9 +18265,14 @@ | System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | +| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | +| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Property[System.Uri.OriginalString];ReturnValue;value;df-generated | | System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Property[System.Uri.OriginalString];ReturnValue;value;dfc-generated | +| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | +| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | +| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[0];ReturnValue.Field[System.ValueTuple`8.Item1];value;manual | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[1];ReturnValue.Field[System.ValueTuple`8.Item2];value;manual | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[2];ReturnValue.Field[System.ValueTuple`8.Item3];value;manual | From f9559060f1f3d264714ab07bfacfce37ddcdd931 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 14 May 2025 10:37:28 +0200 Subject: [PATCH 399/656] C#: Add change note. --- csharp/ql/lib/change-notes/2025-05-14-dotnet-models.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/lib/change-notes/2025-05-14-dotnet-models.md diff --git a/csharp/ql/lib/change-notes/2025-05-14-dotnet-models.md b/csharp/ql/lib/change-notes/2025-05-14-dotnet-models.md new file mode 100644 index 00000000000..c45cce85982 --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-05-14-dotnet-models.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The generated Models as Data (MaD) models for .NET 9 Runtime have been updated and are now more precise (due to a recent model generator improvement). From 2388dd06d40ededdca21b88d96619c198bb1426e Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 14 May 2025 11:16:44 +0200 Subject: [PATCH 400/656] Swift: add new `TypeValueExpr` to CFG --- .../internal/ControlFlowGraphImpl.qll | 4 + .../ql/test/library-tests/ast/Errors.expected | 2 + .../test/library-tests/ast/Missing.expected | 2 + .../test/library-tests/ast/PrintAst.expected | 140 ++++++++++++++---- swift/ql/test/library-tests/ast/cfg.swift | 15 +- .../controlflow/graph/Cfg.expected | 112 ++++++++++---- .../library-tests/controlflow/graph/cfg.swift | 15 +- swift/tools/qltest.sh | 4 +- 8 files changed, 228 insertions(+), 66 deletions(-) diff --git a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll index 3d2b33e8890..b610ff0b0f3 100644 --- a/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll +++ b/swift/ql/lib/codeql/swift/controlflow/internal/ControlFlowGraphImpl.qll @@ -1884,6 +1884,10 @@ module Exprs { } } + private class TypeValueTree extends AstLeafTree { + override TypeValueExpr ast; + } + module Conversions { class ConversionOrIdentity = Synth::TIdentityExpr or Synth::TExplicitCastExpr or Synth::TImplicitConversionExpr or diff --git a/swift/ql/test/library-tests/ast/Errors.expected b/swift/ql/test/library-tests/ast/Errors.expected index e69de29bb2d..e6ccf071851 100644 --- a/swift/ql/test/library-tests/ast/Errors.expected +++ b/swift/ql/test/library-tests/ast/Errors.expected @@ -0,0 +1,2 @@ +| cfg.swift:591:13:591:13 | missing type from TypeRepr | UnspecifiedElement | +| cfg.swift:595:13:595:13 | missing type from TypeRepr | UnspecifiedElement | diff --git a/swift/ql/test/library-tests/ast/Missing.expected b/swift/ql/test/library-tests/ast/Missing.expected index e69de29bb2d..1966db9b890 100644 --- a/swift/ql/test/library-tests/ast/Missing.expected +++ b/swift/ql/test/library-tests/ast/Missing.expected @@ -0,0 +1,2 @@ +| cfg.swift:591:13:591:13 | missing type from TypeRepr | +| cfg.swift:595:13:595:13 | missing type from TypeRepr | diff --git a/swift/ql/test/library-tests/ast/PrintAst.expected b/swift/ql/test/library-tests/ast/PrintAst.expected index f3f0aa1cfd2..248401ac814 100644 --- a/swift/ql/test/library-tests/ast/PrintAst.expected +++ b/swift/ql/test/library-tests/ast/PrintAst.expected @@ -521,15 +521,15 @@ cfg.swift: # 113| Type = Int # 114| getVariable(4): [ConcreteVarDecl] n4 # 114| Type = Int -# 116| getVariable(5): [ConcreteVarDecl] n5 +# 115| getVariable(5): [ConcreteVarDecl] n5 +# 115| Type = Int +# 116| getVariable(6): [ConcreteVarDecl] n6 # 116| Type = Int -# 117| getVariable(6): [ConcreteVarDecl] n6 -# 117| Type = Int -# 118| getVariable(7): [ConcreteVarDecl] n7 +# 118| getVariable(7): [ConcreteVarDecl] n8 # 118| Type = Int -# 119| getVariable(8): [ConcreteVarDecl] n8 -# 119| Type = Int -# 121| getVariable(9): [ConcreteVarDecl] n9 +# 120| getVariable(8): [ConcreteVarDecl] n9 +# 120| Type = Int +# 121| getVariable(9): [ConcreteVarDecl] n7 # 121| Type = Int # 122| getVariable(10): [ConcreteVarDecl] n10 # 122| Type = Int @@ -584,33 +584,33 @@ cfg.swift: # 114| getBase().getFullyConverted(): [DotSelfExpr] .self # 114| getMethodRef(): [DeclRefExpr] getMyInt() # 114| getPattern(0): [NamedPattern] n4 -# 116| getElement(5): [PatternBindingDecl] var ... = ... +# 115| getElement(5): [PatternBindingDecl] var ... = ... +# 115| getInit(0): [MemberRefExpr] .myInt +# 115| getBase(): [DeclRefExpr] param +# 115| getPattern(0): [NamedPattern] n5 +# 116| getElement(6): [PatternBindingDecl] var ... = ... # 116| getInit(0): [MemberRefExpr] .myInt # 116| getBase(): [DeclRefExpr] param -# 116| getPattern(0): [NamedPattern] n5 -# 117| getElement(6): [PatternBindingDecl] var ... = ... -# 117| getInit(0): [MemberRefExpr] .myInt -# 117| getBase(): [DeclRefExpr] param -# 117| getBase().getFullyConverted(): [DotSelfExpr] .self -# 117| getPattern(0): [NamedPattern] n6 +# 116| getBase().getFullyConverted(): [DotSelfExpr] .self +# 116| getPattern(0): [NamedPattern] n6 # 118| getElement(7): [PatternBindingDecl] var ... = ... # 118| getInit(0): [CallExpr] call to getMyInt() # 118| getFunction(): [MethodLookupExpr] .getMyInt() # 118| getBase(): [DeclRefExpr] param +# 118| getBase().getFullyConverted(): [DotSelfExpr] .self # 118| getMethodRef(): [DeclRefExpr] getMyInt() -# 118| getPattern(0): [NamedPattern] n7 -# 119| getElement(8): [PatternBindingDecl] var ... = ... -# 119| getInit(0): [CallExpr] call to getMyInt() -# 119| getFunction(): [MethodLookupExpr] .getMyInt() -# 119| getBase(): [DeclRefExpr] param -# 119| getBase().getFullyConverted(): [DotSelfExpr] .self -# 119| getMethodRef(): [DeclRefExpr] getMyInt() -# 119| getPattern(0): [NamedPattern] n8 +# 118| getPattern(0): [NamedPattern] n8 +# 120| getElement(8): [PatternBindingDecl] var ... = ... +# 120| getInit(0): [MemberRefExpr] .myInt +# 120| getBase(): [DeclRefExpr] inoutParam +# 120| getBase().getFullyConverted(): [LoadExpr] (C) ... +# 120| getPattern(0): [NamedPattern] n9 # 121| getElement(9): [PatternBindingDecl] var ... = ... -# 121| getInit(0): [MemberRefExpr] .myInt -# 121| getBase(): [DeclRefExpr] inoutParam -# 121| getBase().getFullyConverted(): [LoadExpr] (C) ... -# 121| getPattern(0): [NamedPattern] n9 +# 121| getInit(0): [CallExpr] call to getMyInt() +# 121| getFunction(): [MethodLookupExpr] .getMyInt() +# 121| getBase(): [DeclRefExpr] param +# 121| getMethodRef(): [DeclRefExpr] getMyInt() +# 121| getPattern(0): [NamedPattern] n7 # 122| getElement(10): [PatternBindingDecl] var ... = ... # 122| getInit(0): [MemberRefExpr] .myInt # 122| getBase(): [DeclRefExpr] inoutParam @@ -3307,11 +3307,13 @@ cfg.swift: # 533| getBase().getFullyConverted(): [LoadExpr] (AsyncStream) ... #-----| getMethodRef(): [DeclRefExpr] makeAsyncIterator() # 533| getPattern(0): [NamedPattern] $i$generator -# 533| getNextCall(): [CallExpr] call to next() -# 533| getFunction(): [MethodLookupExpr] .next() +# 533| getNextCall(): [CallExpr] call to next(isolation:) +# 533| getFunction(): [MethodLookupExpr] .next(isolation:) # 533| getBase(): [DeclRefExpr] $i$generator # 533| getBase().getFullyConverted(): [InOutExpr] &... -#-----| getMethodRef(): [DeclRefExpr] next() +#-----| getMethodRef(): [DeclRefExpr] next(isolation:) +# 533| getArgument(0): [Argument] isolation: CurrentContextIsolationExpr +# 533| getExpr(): [CurrentContextIsolationExpr] CurrentContextIsolationExpr # 533| getNextCall().getFullyConverted(): [AwaitExpr] await ... # 533| getBody(): [BraceStmt] { ... } # 534| getElement(0): [CallExpr] call to print(_:separator:terminator:) @@ -3326,6 +3328,7 @@ cfg.swift: # 534| getArgument(2): [Argument] terminator: default terminator # 534| getExpr(): [DefaultArgumentExpr] default terminator # 525| [NilLiteralExpr] nil +# 533| [NilLiteralExpr] nil # 538| [NamedFunction] testNilCoalescing(x:) # 538| InterfaceType = (Int?) -> Int # 538| getParam(0): [ParamDecl] x @@ -3543,6 +3546,85 @@ cfg.swift: # 582| Type = Int # 587| [Comment] // --- # 587| +# 589| [Comment] //codeql-extractor-options: -enable-experimental-feature ValueGenerics -disable-availability-checking +# 589| +# 590| [StructDecl] ValueGenericsStruct +# 590| getGenericTypeParam(0): [GenericTypeParamDecl] N +# 591| getMember(0): [PatternBindingDecl] var ... = ... +# 591| getInit(0): [TypeValueExpr] TypeValueExpr +# 591| getTypeRepr(): (no string representation) +# 591| getPattern(0): [NamedPattern] x +# 591| getMember(1): [ConcreteVarDecl] x +# 591| Type = Int +# 591| getAccessor(0): [Accessor] get +# 591| InterfaceType = (ValueGenericsStruct) -> () -> Int +# 591| getSelfParam(): [ParamDecl] self +# 591| Type = ValueGenericsStruct +# 591| getBody(): [BraceStmt] { ... } +#-----| getElement(0): [ReturnStmt] return ... +#-----| getResult(): [MemberRefExpr] .x +#-----| getBase(): [DeclRefExpr] self +# 591| getAccessor(1): [Accessor] set +# 591| InterfaceType = (inout ValueGenericsStruct) -> (Int) -> () +# 591| getSelfParam(): [ParamDecl] self +# 591| Type = ValueGenericsStruct +# 591| getParam(0): [ParamDecl] value +# 591| Type = Int +# 591| getBody(): [BraceStmt] { ... } +#-----| getElement(0): [AssignExpr] ... = ... +#-----| getDest(): [MemberRefExpr] .x +#-----| getBase(): [DeclRefExpr] self +#-----| getSource(): [DeclRefExpr] value +# 591| getAccessor(2): [Accessor] _modify +# 591| InterfaceType = (inout ValueGenericsStruct) -> () -> () +# 591| getSelfParam(): [ParamDecl] self +# 591| Type = ValueGenericsStruct +# 591| getBody(): [BraceStmt] { ... } +# 591| getElement(0): [YieldStmt] yield ... +#-----| getResult(0): [MemberRefExpr] .x +#-----| getBase(): [DeclRefExpr] self +#-----| getResult(0).getFullyConverted(): [InOutExpr] &... +# 590| getMember(2): [Initializer] ValueGenericsStruct.init(x:) +# 590| InterfaceType = (ValueGenericsStruct.Type) -> (Int) -> ValueGenericsStruct +# 590| getSelfParam(): [ParamDecl] self +# 590| Type = ValueGenericsStruct +# 590| getParam(0): [ParamDecl] x +# 590| Type = Int +# 590| getMember(3): [Initializer] ValueGenericsStruct.init() +# 590| InterfaceType = (ValueGenericsStruct.Type) -> () -> ValueGenericsStruct +# 590| getSelfParam(): [ParamDecl] self +# 590| Type = ValueGenericsStruct +# 590| getBody(): [BraceStmt] { ... } +# 590| getElement(0): [ReturnStmt] return +# 591| [UnspecifiedElement] missing type from TypeRepr +# 594| [NamedFunction] valueGenericsFn(_:) +# 594| InterfaceType = (ValueGenericsStruct) -> () +# 594| getGenericTypeParam(0): [GenericTypeParamDecl] N +# 594| getParam(0): [ParamDecl] value +# 594| Type = ValueGenericsStruct +# 594| getBody(): [BraceStmt] { ... } +# 595| getVariable(0): [ConcreteVarDecl] x +# 595| Type = Int +# 595| getElement(0): [PatternBindingDecl] var ... = ... +# 595| getInit(0): [TypeValueExpr] TypeValueExpr +# 595| getTypeRepr(): (no string representation) +# 595| getPattern(0): [NamedPattern] x +# 596| getElement(1): [CallExpr] call to print(_:separator:terminator:) +# 596| getFunction(): [DeclRefExpr] print(_:separator:terminator:) +# 596| getArgument(0): [Argument] : [...] +# 596| getExpr(): [VarargExpansionExpr] [...] +# 596| getSubExpr(): [ArrayExpr] [...] +# 596| getElement(0): [DeclRefExpr] x +# 596| getElement(0).getFullyConverted(): [ErasureExpr] (Any) ... +# 596| getSubExpr(): [LoadExpr] (Int) ... +# 596| getArgument(1): [Argument] separator: default separator +# 596| getExpr(): [DefaultArgumentExpr] default separator +# 596| getArgument(2): [Argument] terminator: default terminator +# 596| getExpr(): [DefaultArgumentExpr] default terminator +# 597| getElement(2): [AssignExpr] ... = ... +# 597| getDest(): [DiscardAssignmentExpr] _ +# 597| getSource(): [DeclRefExpr] value +# 595| [UnspecifiedElement] missing type from TypeRepr declarations.swift: # 1| [StructDecl] Foo # 2| getMember(0): [PatternBindingDecl] var ... = ... diff --git a/swift/ql/test/library-tests/ast/cfg.swift b/swift/ql/test/library-tests/ast/cfg.swift index 09090fc70ba..b26ac41693c 100644 --- a/swift/ql/test/library-tests/ast/cfg.swift +++ b/swift/ql/test/library-tests/ast/cfg.swift @@ -112,13 +112,13 @@ func testMemberRef(param : C, inoutParam : inout C, opt : C?) { let n2 = c.self.myInt let n3 = c.getMyInt() let n4 = c.self.getMyInt() - let n5 = param.myInt let n6 = param.self.myInt - let n7 = param.getMyInt() + let n8 = param.self.getMyInt() let n9 = inoutParam.myInt + let n7 = param.getMyInt() let n10 = inoutParam.self.myInt let n11 = inoutParam.getMyInt() let n12 = inoutParam.self.getMyInt() @@ -585,3 +585,14 @@ func singleStmtExpr(_ x: Int) { let b = if (x < 42) { 1 } else { 2 } } // --- + +//codeql-extractor-options: -enable-experimental-feature ValueGenerics -disable-availability-checking +struct ValueGenericsStruct { + var x = N; +} + +func valueGenericsFn(_ value: ValueGenericsStruct) { + var x = N; + print(x); + _ = value; +} diff --git a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected index 41f64f27d71..06d3ffbbc11 100644 --- a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -354,37 +354,37 @@ | cfg.swift:113:12:113:12 | c | cfg.swift:113:12:113:23 | call to getMyInt() | | | cfg.swift:113:12:113:14 | .getMyInt() | cfg.swift:113:12:113:12 | c | | | cfg.swift:113:12:113:23 | call to getMyInt() | cfg.swift:113:3:113:23 | var ... = ... | | -| cfg.swift:114:3:114:28 | var ... = ... | cfg.swift:116:7:116:7 | n5 | | +| cfg.swift:114:3:114:28 | var ... = ... | cfg.swift:115:7:115:7 | n5 | | | cfg.swift:114:7:114:7 | n4 | cfg.swift:114:12:114:19 | .getMyInt() | match | | cfg.swift:114:12:114:12 | c | cfg.swift:114:12:114:14 | .self | | | cfg.swift:114:12:114:14 | .self | cfg.swift:114:12:114:28 | call to getMyInt() | | | cfg.swift:114:12:114:19 | .getMyInt() | cfg.swift:114:12:114:12 | c | | | cfg.swift:114:12:114:28 | call to getMyInt() | cfg.swift:114:3:114:28 | var ... = ... | | -| cfg.swift:116:3:116:18 | var ... = ... | cfg.swift:117:7:117:7 | n6 | | -| cfg.swift:116:7:116:7 | n5 | cfg.swift:116:12:116:12 | param | match | -| cfg.swift:116:12:116:12 | param | cfg.swift:116:12:116:18 | getter for .myInt | | -| cfg.swift:116:12:116:18 | getter for .myInt | cfg.swift:116:3:116:18 | var ... = ... | | -| cfg.swift:117:3:117:23 | var ... = ... | cfg.swift:118:7:118:7 | n7 | | -| cfg.swift:117:7:117:7 | n6 | cfg.swift:117:12:117:12 | param | match | -| cfg.swift:117:12:117:12 | param | cfg.swift:117:12:117:18 | .self | | -| cfg.swift:117:12:117:18 | .self | cfg.swift:117:12:117:23 | getter for .myInt | | -| cfg.swift:117:12:117:23 | getter for .myInt | cfg.swift:117:3:117:23 | var ... = ... | | -| cfg.swift:118:3:118:27 | var ... = ... | cfg.swift:119:7:119:7 | n8 | | -| cfg.swift:118:7:118:7 | n7 | cfg.swift:118:12:118:18 | .getMyInt() | match | -| cfg.swift:118:12:118:12 | param | cfg.swift:118:12:118:27 | call to getMyInt() | | -| cfg.swift:118:12:118:18 | .getMyInt() | cfg.swift:118:12:118:12 | param | | -| cfg.swift:118:12:118:27 | call to getMyInt() | cfg.swift:118:3:118:27 | var ... = ... | | -| cfg.swift:119:3:119:32 | var ... = ... | cfg.swift:121:7:121:7 | n9 | | -| cfg.swift:119:7:119:7 | n8 | cfg.swift:119:12:119:23 | .getMyInt() | match | -| cfg.swift:119:12:119:12 | param | cfg.swift:119:12:119:18 | .self | | -| cfg.swift:119:12:119:18 | .self | cfg.swift:119:12:119:32 | call to getMyInt() | | -| cfg.swift:119:12:119:23 | .getMyInt() | cfg.swift:119:12:119:12 | param | | -| cfg.swift:119:12:119:32 | call to getMyInt() | cfg.swift:119:3:119:32 | var ... = ... | | -| cfg.swift:121:3:121:23 | var ... = ... | cfg.swift:122:7:122:7 | n10 | | -| cfg.swift:121:7:121:7 | n9 | cfg.swift:121:12:121:12 | inoutParam | match | -| cfg.swift:121:12:121:12 | (C) ... | cfg.swift:121:12:121:23 | getter for .myInt | | -| cfg.swift:121:12:121:12 | inoutParam | cfg.swift:121:12:121:12 | (C) ... | | -| cfg.swift:121:12:121:23 | getter for .myInt | cfg.swift:121:3:121:23 | var ... = ... | | +| cfg.swift:115:3:115:18 | var ... = ... | cfg.swift:116:7:116:7 | n6 | | +| cfg.swift:115:7:115:7 | n5 | cfg.swift:115:12:115:12 | param | match | +| cfg.swift:115:12:115:12 | param | cfg.swift:115:12:115:18 | getter for .myInt | | +| cfg.swift:115:12:115:18 | getter for .myInt | cfg.swift:115:3:115:18 | var ... = ... | | +| cfg.swift:116:3:116:23 | var ... = ... | cfg.swift:118:7:118:7 | n8 | | +| cfg.swift:116:7:116:7 | n6 | cfg.swift:116:12:116:12 | param | match | +| cfg.swift:116:12:116:12 | param | cfg.swift:116:12:116:18 | .self | | +| cfg.swift:116:12:116:18 | .self | cfg.swift:116:12:116:23 | getter for .myInt | | +| cfg.swift:116:12:116:23 | getter for .myInt | cfg.swift:116:3:116:23 | var ... = ... | | +| cfg.swift:118:3:118:32 | var ... = ... | cfg.swift:120:7:120:7 | n9 | | +| cfg.swift:118:7:118:7 | n8 | cfg.swift:118:12:118:23 | .getMyInt() | match | +| cfg.swift:118:12:118:12 | param | cfg.swift:118:12:118:18 | .self | | +| cfg.swift:118:12:118:18 | .self | cfg.swift:118:12:118:32 | call to getMyInt() | | +| cfg.swift:118:12:118:23 | .getMyInt() | cfg.swift:118:12:118:12 | param | | +| cfg.swift:118:12:118:32 | call to getMyInt() | cfg.swift:118:3:118:32 | var ... = ... | | +| cfg.swift:120:3:120:23 | var ... = ... | cfg.swift:121:7:121:7 | n7 | | +| cfg.swift:120:7:120:7 | n9 | cfg.swift:120:12:120:12 | inoutParam | match | +| cfg.swift:120:12:120:12 | (C) ... | cfg.swift:120:12:120:23 | getter for .myInt | | +| cfg.swift:120:12:120:12 | inoutParam | cfg.swift:120:12:120:12 | (C) ... | | +| cfg.swift:120:12:120:23 | getter for .myInt | cfg.swift:120:3:120:23 | var ... = ... | | +| cfg.swift:121:3:121:27 | var ... = ... | cfg.swift:122:7:122:7 | n10 | | +| cfg.swift:121:7:121:7 | n7 | cfg.swift:121:12:121:18 | .getMyInt() | match | +| cfg.swift:121:12:121:12 | param | cfg.swift:121:12:121:27 | call to getMyInt() | | +| cfg.swift:121:12:121:18 | .getMyInt() | cfg.swift:121:12:121:12 | param | | +| cfg.swift:121:12:121:27 | call to getMyInt() | cfg.swift:121:3:121:27 | var ... = ... | | | cfg.swift:122:3:122:29 | var ... = ... | cfg.swift:123:7:123:7 | n11 | | | cfg.swift:122:7:122:7 | n10 | cfg.swift:122:13:122:13 | inoutParam | match | | cfg.swift:122:13:122:13 | inoutParam | cfg.swift:122:13:122:24 | .self | | @@ -2035,10 +2035,12 @@ | cfg.swift:529:17:529:30 | .finish() | cfg.swift:529:17:529:17 | continuation | | | cfg.swift:529:17:529:37 | call to finish() | cfg.swift:525:27:530:13 | exit { ... } (normal) | | | cfg.swift:533:5:533:5 | $i$generator | cfg.swift:533:5:533:5 | &... | | -| cfg.swift:533:5:533:5 | &... | cfg.swift:533:5:533:5 | call to next() | | -| cfg.swift:533:5:533:5 | .next() | cfg.swift:533:5:533:5 | $i$generator | | +| cfg.swift:533:5:533:5 | &... | cfg.swift:533:5:533:5 | nil | | +| cfg.swift:533:5:533:5 | .next(isolation:) | cfg.swift:533:5:533:5 | $i$generator | | +| cfg.swift:533:5:533:5 | CurrentContextIsolationExpr | cfg.swift:533:5:533:5 | call to next(isolation:) | | | cfg.swift:533:5:533:5 | await ... | cfg.swift:533:5:535:5 | for ... in ... { ... } | | -| cfg.swift:533:5:533:5 | call to next() | cfg.swift:533:5:533:5 | await ... | | +| cfg.swift:533:5:533:5 | call to next(isolation:) | cfg.swift:533:5:533:5 | await ... | | +| cfg.swift:533:5:533:5 | nil | cfg.swift:533:5:533:5 | CurrentContextIsolationExpr | | | cfg.swift:533:5:535:5 | for ... in ... { ... } | cfg.swift:522:1:536:1 | exit testAsyncFor() (normal) | empty | | cfg.swift:533:5:535:5 | for ... in ... { ... } | cfg.swift:533:19:533:19 | i | non-empty | | cfg.swift:533:19:533:19 | i | cfg.swift:534:9:534:9 | print(_:separator:terminator:) | match | @@ -2048,7 +2050,7 @@ | cfg.swift:533:24:533:24 | call to makeAsyncIterator() | file://:0:0:0:0 | var ... = ... | | | cfg.swift:533:24:533:24 | stream | cfg.swift:533:24:533:24 | (AsyncStream) ... | | | cfg.swift:534:9:534:9 | print(_:separator:terminator:) | cfg.swift:534:15:534:15 | i | | -| cfg.swift:534:9:534:16 | call to print(_:separator:terminator:) | cfg.swift:533:5:533:5 | .next() | | +| cfg.swift:534:9:534:16 | call to print(_:separator:terminator:) | cfg.swift:533:5:533:5 | .next(isolation:) | | | cfg.swift:534:14:534:14 | default separator | cfg.swift:534:14:534:14 | default terminator | | | cfg.swift:534:14:534:14 | default terminator | cfg.swift:534:9:534:16 | call to print(_:separator:terminator:) | | | cfg.swift:534:15:534:15 | (Any) ... | cfg.swift:534:15:534:15 | [...] | | @@ -2220,6 +2222,44 @@ | cfg.swift:585:25:585:25 | ThenStmt | cfg.swift:585:11:585:38 | SingleValueStmtExpr | | | cfg.swift:585:36:585:36 | 2 | cfg.swift:585:36:585:36 | ThenStmt | | | cfg.swift:585:36:585:36 | ThenStmt | cfg.swift:585:11:585:38 | SingleValueStmtExpr | | +| cfg.swift:590:8:590:8 | ValueGenericsStruct.init() | cfg.swift:590:8:590:8 | self | | +| cfg.swift:590:8:590:8 | enter ValueGenericsStruct.init() | cfg.swift:590:8:590:8 | ValueGenericsStruct.init() | | +| cfg.swift:590:8:590:8 | exit ValueGenericsStruct.init() (normal) | cfg.swift:590:8:590:8 | exit ValueGenericsStruct.init() | | +| cfg.swift:590:8:590:8 | return | cfg.swift:590:8:590:8 | exit ValueGenericsStruct.init() (normal) | return | +| cfg.swift:590:8:590:8 | self | cfg.swift:590:8:590:8 | return | | +| cfg.swift:591:9:591:9 | _modify | cfg.swift:591:9:591:9 | self | | +| cfg.swift:591:9:591:9 | enter _modify | cfg.swift:591:9:591:9 | _modify | | +| cfg.swift:591:9:591:9 | enter get | cfg.swift:591:9:591:9 | get | | +| cfg.swift:591:9:591:9 | enter set | cfg.swift:591:9:591:9 | set | | +| cfg.swift:591:9:591:9 | exit _modify (normal) | cfg.swift:591:9:591:9 | exit _modify | | +| cfg.swift:591:9:591:9 | exit get (normal) | cfg.swift:591:9:591:9 | exit get | | +| cfg.swift:591:9:591:9 | exit set (normal) | cfg.swift:591:9:591:9 | exit set | | +| cfg.swift:591:9:591:9 | get | cfg.swift:591:9:591:9 | self | | +| cfg.swift:591:9:591:9 | self | cfg.swift:591:9:591:9 | value | | +| cfg.swift:591:9:591:9 | self | file://:0:0:0:0 | self | | +| cfg.swift:591:9:591:9 | self | file://:0:0:0:0 | self | | +| cfg.swift:591:9:591:9 | set | cfg.swift:591:9:591:9 | self | | +| cfg.swift:591:9:591:9 | value | file://:0:0:0:0 | self | | +| cfg.swift:591:9:591:9 | yield ... | cfg.swift:591:9:591:9 | exit _modify (normal) | | +| cfg.swift:594:1:598:1 | enter valueGenericsFn(_:) | cfg.swift:594:1:598:1 | valueGenericsFn(_:) | | +| cfg.swift:594:1:598:1 | exit valueGenericsFn(_:) (normal) | cfg.swift:594:1:598:1 | exit valueGenericsFn(_:) | | +| cfg.swift:594:1:598:1 | valueGenericsFn(_:) | cfg.swift:594:34:594:64 | value | | +| cfg.swift:594:34:594:64 | value | cfg.swift:595:9:595:9 | x | | +| cfg.swift:595:5:595:13 | var ... = ... | cfg.swift:596:5:596:5 | print(_:separator:terminator:) | | +| cfg.swift:595:9:595:9 | x | cfg.swift:595:13:595:13 | TypeValueExpr | match | +| cfg.swift:595:13:595:13 | TypeValueExpr | cfg.swift:595:5:595:13 | var ... = ... | | +| cfg.swift:596:5:596:5 | print(_:separator:terminator:) | cfg.swift:596:11:596:11 | x | | +| cfg.swift:596:5:596:12 | call to print(_:separator:terminator:) | cfg.swift:597:5:597:5 | _ | | +| cfg.swift:596:10:596:10 | default separator | cfg.swift:596:10:596:10 | default terminator | | +| cfg.swift:596:10:596:10 | default terminator | cfg.swift:596:5:596:12 | call to print(_:separator:terminator:) | | +| cfg.swift:596:11:596:11 | (Any) ... | cfg.swift:596:11:596:11 | [...] | | +| cfg.swift:596:11:596:11 | (Int) ... | cfg.swift:596:11:596:11 | (Any) ... | | +| cfg.swift:596:11:596:11 | [...] | cfg.swift:596:10:596:10 | default separator | | +| cfg.swift:596:11:596:11 | [...] | cfg.swift:596:11:596:11 | [...] | | +| cfg.swift:596:11:596:11 | x | cfg.swift:596:11:596:11 | (Int) ... | | +| cfg.swift:597:5:597:5 | _ | cfg.swift:597:9:597:9 | value | | +| cfg.swift:597:5:597:9 | ... = ... | cfg.swift:594:1:598:1 | exit valueGenericsFn(_:) (normal) | | +| cfg.swift:597:9:597:9 | value | cfg.swift:597:5:597:9 | ... = ... | | | file://:0:0:0:0 | ... = ... | cfg.swift:394:7:394:7 | exit set (normal) | | | file://:0:0:0:0 | ... = ... | cfg.swift:410:9:410:9 | exit set (normal) | | | file://:0:0:0:0 | ... = ... | cfg.swift:417:9:417:9 | exit set (normal) | | @@ -2227,6 +2267,7 @@ | file://:0:0:0:0 | ... = ... | cfg.swift:450:7:450:7 | exit set (normal) | | | file://:0:0:0:0 | ... = ... | cfg.swift:451:7:451:7 | exit set (normal) | | | file://:0:0:0:0 | ... = ... | cfg.swift:452:7:452:7 | exit set (normal) | | +| file://:0:0:0:0 | ... = ... | cfg.swift:591:9:591:9 | exit set (normal) | | | file://:0:0:0:0 | &... | cfg.swift:394:7:394:7 | yield ... | | | file://:0:0:0:0 | &... | cfg.swift:410:9:410:9 | yield ... | | | file://:0:0:0:0 | &... | cfg.swift:417:9:417:9 | yield ... | | @@ -2234,6 +2275,7 @@ | file://:0:0:0:0 | &... | cfg.swift:450:7:450:7 | yield ... | | | file://:0:0:0:0 | &... | cfg.swift:451:7:451:7 | yield ... | | | file://:0:0:0:0 | &... | cfg.swift:452:7:452:7 | yield ... | | +| file://:0:0:0:0 | &... | cfg.swift:591:9:591:9 | yield ... | | | file://:0:0:0:0 | .b | file://:0:0:0:0 | return ... | | | file://:0:0:0:0 | .b | file://:0:0:0:0 | value | | | file://:0:0:0:0 | .bs | file://:0:0:0:0 | return ... | | @@ -2247,6 +2289,8 @@ | file://:0:0:0:0 | .x | file://:0:0:0:0 | return ... | | | file://:0:0:0:0 | .x | file://:0:0:0:0 | return ... | | | file://:0:0:0:0 | .x | file://:0:0:0:0 | return ... | | +| file://:0:0:0:0 | .x | file://:0:0:0:0 | return ... | | +| file://:0:0:0:0 | .x | file://:0:0:0:0 | value | | | file://:0:0:0:0 | .x | file://:0:0:0:0 | value | | | file://:0:0:0:0 | .x | file://:0:0:0:0 | value | | | file://:0:0:0:0 | .x | file://:0:0:0:0 | value | | @@ -2258,6 +2302,7 @@ | file://:0:0:0:0 | getter for .x | file://:0:0:0:0 | &... | | | file://:0:0:0:0 | getter for .x | file://:0:0:0:0 | &... | | | file://:0:0:0:0 | getter for .x | file://:0:0:0:0 | &... | | +| file://:0:0:0:0 | getter for .x | file://:0:0:0:0 | &... | | | file://:0:0:0:0 | n | cfg.swift:377:7:377:7 | _unimplementedInitializer(className:initName:file:line:column:) | | | file://:0:0:0:0 | return | cfg.swift:377:19:377:19 | exit Derived.init(n:) (normal) | return | | file://:0:0:0:0 | return ... | cfg.swift:99:7:99:7 | exit get (normal) | return | @@ -2269,6 +2314,7 @@ | file://:0:0:0:0 | return ... | cfg.swift:450:7:450:7 | exit get (normal) | return | | file://:0:0:0:0 | return ... | cfg.swift:451:7:451:7 | exit get (normal) | return | | file://:0:0:0:0 | return ... | cfg.swift:452:7:452:7 | exit get (normal) | return | +| file://:0:0:0:0 | return ... | cfg.swift:591:9:591:9 | exit get (normal) | return | | file://:0:0:0:0 | self | file://:0:0:0:0 | .b | | | file://:0:0:0:0 | self | file://:0:0:0:0 | .b | | | file://:0:0:0:0 | self | file://:0:0:0:0 | .bs | | @@ -2285,6 +2331,8 @@ | file://:0:0:0:0 | self | file://:0:0:0:0 | .x | | | file://:0:0:0:0 | self | file://:0:0:0:0 | .x | | | file://:0:0:0:0 | self | file://:0:0:0:0 | .x | | +| file://:0:0:0:0 | self | file://:0:0:0:0 | .x | | +| file://:0:0:0:0 | self | file://:0:0:0:0 | .x | | | file://:0:0:0:0 | self | file://:0:0:0:0 | getter for .b | | | file://:0:0:0:0 | self | file://:0:0:0:0 | getter for .bs | | | file://:0:0:0:0 | self | file://:0:0:0:0 | getter for .field | | @@ -2292,6 +2340,8 @@ | file://:0:0:0:0 | self | file://:0:0:0:0 | getter for .x | | | file://:0:0:0:0 | self | file://:0:0:0:0 | getter for .x | | | file://:0:0:0:0 | self | file://:0:0:0:0 | getter for .x | | +| file://:0:0:0:0 | self | file://:0:0:0:0 | getter for .x | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | | file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | | file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | | file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | @@ -2301,4 +2351,4 @@ | file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | | file://:0:0:0:0 | var ... = ... | cfg.swift:138:3:138:3 | .next() | | | file://:0:0:0:0 | var ... = ... | cfg.swift:526:17:526:17 | .next() | | -| file://:0:0:0:0 | var ... = ... | cfg.swift:533:5:533:5 | .next() | | +| file://:0:0:0:0 | var ... = ... | cfg.swift:533:5:533:5 | .next(isolation:) | | diff --git a/swift/ql/test/library-tests/controlflow/graph/cfg.swift b/swift/ql/test/library-tests/controlflow/graph/cfg.swift index 09090fc70ba..b26ac41693c 100644 --- a/swift/ql/test/library-tests/controlflow/graph/cfg.swift +++ b/swift/ql/test/library-tests/controlflow/graph/cfg.swift @@ -112,13 +112,13 @@ func testMemberRef(param : C, inoutParam : inout C, opt : C?) { let n2 = c.self.myInt let n3 = c.getMyInt() let n4 = c.self.getMyInt() - let n5 = param.myInt let n6 = param.self.myInt - let n7 = param.getMyInt() + let n8 = param.self.getMyInt() let n9 = inoutParam.myInt + let n7 = param.getMyInt() let n10 = inoutParam.self.myInt let n11 = inoutParam.getMyInt() let n12 = inoutParam.self.getMyInt() @@ -585,3 +585,14 @@ func singleStmtExpr(_ x: Int) { let b = if (x < 42) { 1 } else { 2 } } // --- + +//codeql-extractor-options: -enable-experimental-feature ValueGenerics -disable-availability-checking +struct ValueGenericsStruct { + var x = N; +} + +func valueGenericsFn(_ value: ValueGenericsStruct) { + var x = N; + print(x); + _ = value; +} diff --git a/swift/tools/qltest.sh b/swift/tools/qltest.sh index ba5fb779d28..c7c694f3fab 100755 --- a/swift/tools/qltest.sh +++ b/swift/tools/qltest.sh @@ -10,10 +10,10 @@ export CODEQL_EXTRACTOR_SWIFT_LOG_LEVELS=${CODEQL_EXTRACTOR_SWIFT_LOG_LEVELS:-ou for src in *.swift; do env=() opts=(-resource-dir "$RESOURCE_DIR" -c -primary-file "$src") - opts+=($(sed -n '1 s=//codeql-extractor-options:==p' $src)) + opts+=($(sed -n 's=//codeql-extractor-options:==p' $src)) expected_status=$(sed -n 's=//codeql-extractor-expected-status:[[:space:]]*==p' $src) expected_status=${expected_status:-0} - env+=($(sed -n '1 s=//codeql-extractor-env:==p' $src)) + env+=($(sed -n 's=//codeql-extractor-env:==p' $src)) echo >> $QLTEST_LOG env "${env[@]}" "$EXTRACTOR" "${opts[@]}" >> $QLTEST_LOG 2>&1 actual_status=$? From 4709eacbf8fc6d7bce5df874c758bf486931697d Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 14 May 2025 11:37:03 +0200 Subject: [PATCH 401/656] Swift: add change note --- swift/ql/lib/change-notes/2025-05-14-type_value_expr_cfg.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 swift/ql/lib/change-notes/2025-05-14-type_value_expr_cfg.md diff --git a/swift/ql/lib/change-notes/2025-05-14-type_value_expr_cfg.md b/swift/ql/lib/change-notes/2025-05-14-type_value_expr_cfg.md new file mode 100644 index 00000000000..aa3282d3326 --- /dev/null +++ b/swift/ql/lib/change-notes/2025-05-14-type_value_expr_cfg.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* `TypeValueExpr` experimental AST leaf is now implemented in the control flow library From 3d38d77d635365bdf14d43f8bd6917b6a031f93e Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 14 May 2025 11:41:17 +0200 Subject: [PATCH 402/656] Rust: accept dummy test output --- rust/ql/test/utils/PrintAst.expected | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rust/ql/test/utils/PrintAst.expected b/rust/ql/test/utils/PrintAst.expected index e69de29bb2d..8c584755b35 100644 --- a/rust/ql/test/utils/PrintAst.expected +++ b/rust/ql/test/utils/PrintAst.expected @@ -0,0 +1,2 @@ +lib.rs: +# 1| [SourceFile] SourceFile From 96bd9a96e563a1526d9fe25d9eecb24d50addcd8 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 14 May 2025 13:36:52 +0200 Subject: [PATCH 403/656] C++: Add test case for IR edge case --- .../ir/no-function-calls/PrintAST.expected | 36 ++++++++++++++++++ .../ir/no-function-calls/PrintAST.ql | 11 ++++++ .../ir/no-function-calls/PrintConfig.qll | 24 ++++++++++++ .../ir/no-function-calls/aliased_ir.expected | 37 +++++++++++++++++++ .../ir/no-function-calls/aliased_ir.ql | 11 ++++++ .../ir/no-function-calls/test.cpp | 13 +++++++ 6 files changed, 132 insertions(+) create mode 100644 cpp/ql/test/library-tests/ir/no-function-calls/PrintAST.expected create mode 100644 cpp/ql/test/library-tests/ir/no-function-calls/PrintAST.ql create mode 100644 cpp/ql/test/library-tests/ir/no-function-calls/PrintConfig.qll create mode 100644 cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.expected create mode 100644 cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.ql create mode 100644 cpp/ql/test/library-tests/ir/no-function-calls/test.cpp diff --git a/cpp/ql/test/library-tests/ir/no-function-calls/PrintAST.expected b/cpp/ql/test/library-tests/ir/no-function-calls/PrintAST.expected new file mode 100644 index 00000000000..7f15878cf20 --- /dev/null +++ b/cpp/ql/test/library-tests/ir/no-function-calls/PrintAST.expected @@ -0,0 +1,36 @@ +#-----| [CopyAssignmentOperator] __va_list_tag& __va_list_tag::operator=(__va_list_tag const&) +#-----| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [LValueReferenceType] const __va_list_tag & +#-----| [MoveAssignmentOperator] __va_list_tag& __va_list_tag::operator=(__va_list_tag&&) +#-----| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [RValueReferenceType] __va_list_tag && +#-----| [Operator,TopLevelFunction] void operator delete(void*) +#-----| : +#-----| getParameter(0): [Parameter] (unnamed parameter 0) +#-----| Type = [VoidPointerType] void * +test.cpp: +# 5| [TopLevelFunction] void foo(int*) +# 5| : +# 5| getParameter(0): [Parameter] x +# 5| Type = [IntPointerType] int * +# 5| getEntryPoint(): [BlockStmt] { ... } +# 6| getStmt(0): [ExprStmt] ExprStmt +# 6| getExpr(): [DeleteExpr] delete +# 6| Type = [VoidType] void +# 6| ValueCategory = prvalue +# 6| getExprWithReuse(): [VariableAccess] x +# 6| Type = [IntPointerType] int * +# 6| ValueCategory = prvalue(load) +# 7| getStmt(1): [ReturnStmt] return ... +# 9| [TopLevelFunction] void bar() +# 9| : +# 11| [TopLevelFunction] void jazz() +# 11| : +# 11| getEntryPoint(): [BlockStmt] { ... } +# 12| getStmt(0): [ExprStmt] ExprStmt +# 12| getExpr(): [FunctionCall] call to bar +# 12| Type = [VoidType] void +# 12| ValueCategory = prvalue +# 13| getStmt(1): [ReturnStmt] return ... diff --git a/cpp/ql/test/library-tests/ir/no-function-calls/PrintAST.ql b/cpp/ql/test/library-tests/ir/no-function-calls/PrintAST.ql new file mode 100644 index 00000000000..03321d9e491 --- /dev/null +++ b/cpp/ql/test/library-tests/ir/no-function-calls/PrintAST.ql @@ -0,0 +1,11 @@ +/** + * @kind graph + */ + +private import cpp +private import semmle.code.cpp.PrintAST +private import PrintConfig + +private class PrintConfig extends PrintAstConfiguration { + override predicate shouldPrintDeclaration(Declaration decl) { shouldDumpDeclaration(decl) } +} diff --git a/cpp/ql/test/library-tests/ir/no-function-calls/PrintConfig.qll b/cpp/ql/test/library-tests/ir/no-function-calls/PrintConfig.qll new file mode 100644 index 00000000000..aa23cf423ad --- /dev/null +++ b/cpp/ql/test/library-tests/ir/no-function-calls/PrintConfig.qll @@ -0,0 +1,24 @@ +private import cpp + +/** + * Holds if the specified location is in standard headers. + */ +predicate locationIsInStandardHeaders(Location loc) { + loc.getFile().getAbsolutePath().regexpMatch(".*/include/[^/]+") +} + +/** + * Holds if the AST or IR for the specified declaration should be printed in the test output. + * + * This predicate excludes declarations defined in standard headers. + */ +predicate shouldDumpDeclaration(Declaration decl) { + not locationIsInStandardHeaders(decl.getLocation()) and + ( + decl instanceof Function + or + decl.(GlobalOrNamespaceVariable).hasInitializer() + or + decl.(StaticLocalVariable).hasInitializer() + ) +} diff --git a/cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.expected b/cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.expected new file mode 100644 index 00000000000..1cb0fbf77c9 --- /dev/null +++ b/cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.expected @@ -0,0 +1,37 @@ +test.cpp: +# 5| void foo(int*) +# 5| Block 0 +# 5| v5_1(void) = EnterFunction : +# 5| m5_2(unknown) = AliasedDefinition : +# 5| m5_3(unknown) = InitializeNonLocal : +# 5| m5_4(unknown) = Chi : total:m5_2, partial:m5_3 +# 5| r5_5(glval) = VariableAddress[x] : +# 5| m5_6(int *) = InitializeParameter[x] : &:r5_5 +# 5| r5_7(int *) = Load[x] : &:r5_5, m5_6 +# 5| m5_8(unknown) = InitializeIndirection[x] : &:r5_7 +# 6| r6_1(glval) = FunctionAddress[operator delete] : +# 6| r6_2(glval) = VariableAddress[x] : +# 6| r6_3(int *) = Load[x] : &:r6_2, m5_6 +# 6| v6_4(void) = Call[operator delete] : func:r6_1 +# 6| m6_5(unknown) = ^CallSideEffect : ~m5_4 +# 6| m6_6(unknown) = Chi : total:m5_4, partial:m6_5 +# 7| v7_1(void) = NoOp : +# 5| v5_9(void) = ReturnIndirection[x] : &:r5_7, m5_8 +# 5| v5_10(void) = ReturnVoid : +# 5| v5_11(void) = AliasedUse : ~m6_6 +# 5| v5_12(void) = ExitFunction : + +# 11| void jazz() +# 11| Block 0 +# 11| v11_1(void) = EnterFunction : +# 11| m11_2(unknown) = AliasedDefinition : +# 11| m11_3(unknown) = InitializeNonLocal : +# 11| m11_4(unknown) = Chi : total:m11_2, partial:m11_3 +# 12| r12_1(glval) = FunctionAddress[bar] : +# 12| v12_2(void) = Call[bar] : func:r12_1 +# 12| m12_3(unknown) = ^CallSideEffect : ~m11_4 +# 12| m12_4(unknown) = Chi : total:m11_4, partial:m12_3 +# 13| v13_1(void) = NoOp : +# 11| v11_5(void) = ReturnVoid : +# 11| v11_6(void) = AliasedUse : ~m12_4 +# 11| v11_7(void) = ExitFunction : diff --git a/cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.ql b/cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.ql new file mode 100644 index 00000000000..0488fd09dbe --- /dev/null +++ b/cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.ql @@ -0,0 +1,11 @@ +/** + * @kind graph + */ + +private import cpp +private import semmle.code.cpp.ir.implementation.aliased_ssa.PrintIR +private import PrintConfig + +private class PrintConfig extends PrintIRConfiguration { + override predicate shouldPrintDeclaration(Declaration decl) { shouldDumpDeclaration(decl) } +} diff --git a/cpp/ql/test/library-tests/ir/no-function-calls/test.cpp b/cpp/ql/test/library-tests/ir/no-function-calls/test.cpp new file mode 100644 index 00000000000..a892ba41ba2 --- /dev/null +++ b/cpp/ql/test/library-tests/ir/no-function-calls/test.cpp @@ -0,0 +1,13 @@ +// Test for edge case, where we have a database without any function calls or +// where none of the function calls have any arguments, but where we do have +// a delete expression. + +void foo(int* x) { + delete x; +} + +void bar(); + +void jazz() { + bar(); +} From 401281331ff960a91f85e2945068b44cc244e6f6 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 14 May 2025 13:44:29 +0200 Subject: [PATCH 404/656] C++: Fix IR edge case where there are no function calls taking an argument --- .../semmle/code/cpp/ir/internal/IRCppLanguage.qll | 7 ++++++- .../ir/no-function-calls/aliased_ir.expected | 15 ++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll b/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll index 681e2838ffb..28bbd40f8bf 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/internal/IRCppLanguage.qll @@ -67,8 +67,13 @@ class Class = Cpp::Class; // Used for inheritance conversions predicate hasCaseEdge(string minValue, string maxValue) { hasCaseEdge(_, minValue, maxValue) } predicate hasPositionalArgIndex(int argIndex) { - exists(Cpp::FunctionCall call | exists(call.getArgument(argIndex))) or + exists(Cpp::FunctionCall call | exists(call.getArgument(argIndex))) + or exists(Cpp::BuiltInOperation op | exists(op.getChild(argIndex))) + or + // Ensure we are always able to output the argument of a call to the delete operator. + exists(Cpp::DeleteExpr d) and + argIndex = 0 } predicate hasAsmOperandIndex(int operandIndex) { diff --git a/cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.expected b/cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.expected index 1cb0fbf77c9..6b1c7a76a62 100644 --- a/cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/no-function-calls/aliased_ir.expected @@ -9,17 +9,18 @@ test.cpp: # 5| m5_6(int *) = InitializeParameter[x] : &:r5_5 # 5| r5_7(int *) = Load[x] : &:r5_5, m5_6 # 5| m5_8(unknown) = InitializeIndirection[x] : &:r5_7 +# 5| m5_9(unknown) = Chi : total:m5_4, partial:m5_8 # 6| r6_1(glval) = FunctionAddress[operator delete] : # 6| r6_2(glval) = VariableAddress[x] : # 6| r6_3(int *) = Load[x] : &:r6_2, m5_6 -# 6| v6_4(void) = Call[operator delete] : func:r6_1 -# 6| m6_5(unknown) = ^CallSideEffect : ~m5_4 -# 6| m6_6(unknown) = Chi : total:m5_4, partial:m6_5 +# 6| v6_4(void) = Call[operator delete] : func:r6_1, 0:r6_3 +# 6| m6_5(unknown) = ^CallSideEffect : ~m5_9 +# 6| m6_6(unknown) = Chi : total:m5_9, partial:m6_5 # 7| v7_1(void) = NoOp : -# 5| v5_9(void) = ReturnIndirection[x] : &:r5_7, m5_8 -# 5| v5_10(void) = ReturnVoid : -# 5| v5_11(void) = AliasedUse : ~m6_6 -# 5| v5_12(void) = ExitFunction : +# 5| v5_10(void) = ReturnIndirection[x] : &:r5_7, ~m6_6 +# 5| v5_11(void) = ReturnVoid : +# 5| v5_12(void) = AliasedUse : ~m6_6 +# 5| v5_13(void) = ExitFunction : # 11| void jazz() # 11| Block 0 From 96bdfbf76b7b6485839a864cb564bee8b6272b77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Wed, 14 May 2025 15:36:45 +0200 Subject: [PATCH 405/656] Fix inefficient pattern: if-exists -> exists-or-not-exists --- ruby/ql/lib/codeql/ruby/printAst.qll | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/printAst.qll b/ruby/ql/lib/codeql/ruby/printAst.qll index 947f8de06ef..97c7119eae2 100644 --- a/ruby/ql/lib/codeql/ruby/printAst.qll +++ b/ruby/ql/lib/codeql/ruby/printAst.qll @@ -121,17 +121,16 @@ class PrintRegularAstNode extends PrintAstNode, TPrintRegularAstNode { } private int getSynthAstNodeIndex() { - if - exists(AstNode parent | - shouldPrintAstEdge(parent, _, astNode) and - synthChild(parent, _, astNode) - ) - then - exists(AstNode parent | - shouldPrintAstEdge(parent, _, astNode) and - synthChild(parent, result, astNode) - ) - else result = 0 + exists(AstNode parent | + shouldPrintAstEdge(parent, _, astNode) and + synthChild(parent, result, astNode) + ) + or + not exists(AstNode parent | + shouldPrintAstEdge(parent, _, astNode) and + synthChild(parent, _, astNode) + ) and + result = 0 } private int getSynthAstNodeIndexForSynthParent() { From 1a1c9b4ea4413cd87cb301a4088102d746d154b0 Mon Sep 17 00:00:00 2001 From: Neil Mendum Date: Wed, 14 May 2025 17:28:54 +0100 Subject: [PATCH 406/656] actions: add some missing permissions --- actions/ql/lib/ext/config/actions_permissions.yml | 13 +++++++++---- ...5-05-14-minimal-permission-for-add-to-project.md | 4 ++++ .../Security/CWE-275/.github/workflows/perms10.yml | 10 ++++++++++ .../Security/CWE-275/.github/workflows/perms8.yml | 10 ++++++++++ .../Security/CWE-275/.github/workflows/perms9.yml | 10 ++++++++++ .../CWE-275/MissingActionsPermissions.expected | 3 +++ 6 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 actions/ql/src/change-notes/2025-05-14-minimal-permission-for-add-to-project.md create mode 100644 actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms10.yml create mode 100644 actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms8.yml create mode 100644 actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms9.yml diff --git a/actions/ql/lib/ext/config/actions_permissions.yml b/actions/ql/lib/ext/config/actions_permissions.yml index 6e0081973de..b2862794383 100644 --- a/actions/ql/lib/ext/config/actions_permissions.yml +++ b/actions/ql/lib/ext/config/actions_permissions.yml @@ -22,16 +22,21 @@ extensions: - ["actions/stale", "pull-requests: write"] - ["actions/attest-build-provenance", "id-token: write"] - ["actions/attest-build-provenance", "attestations: write"] + - ["actions/deploy-pages", "pages: write"] + - ["actions/deploy-pages", "id-token: write"] + - ["actions/delete-package-versions", "packages: write"] - ["actions/jekyll-build-pages", "contents: read"] - ["actions/jekyll-build-pages", "pages: write"] - ["actions/jekyll-build-pages", "id-token: write"] - ["actions/publish-action", "contents: write"] - - ["actions/versions-package-tools", "contents: read"] + - ["actions/versions-package-tools", "contents: read"] - ["actions/versions-package-tools", "actions: read"] - - ["actions/reusable-workflows", "contents: read"] + - ["actions/reusable-workflows", "contents: read"] - ["actions/reusable-workflows", "actions: read"] + - ["actions/ai-inference", "contents: read"] + - ["actions/ai-inference", "models: read"] # TODO: Add permissions for actions/download-artifact # TODO: Add permissions for actions/upload-artifact + # No permissions needed for actions/upload-pages-artifact # TODO: Add permissions for actions/cache - - + # No permissions needed for actions/configure-pages diff --git a/actions/ql/src/change-notes/2025-05-14-minimal-permission-for-add-to-project.md b/actions/ql/src/change-notes/2025-05-14-minimal-permission-for-add-to-project.md new file mode 100644 index 00000000000..8d6c87fe7a7 --- /dev/null +++ b/actions/ql/src/change-notes/2025-05-14-minimal-permission-for-add-to-project.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `actions/missing-workflow-permissions` is now aware of the minimal permissions needed for the actions `deploy-pages`, `delete-package-versions`, `ai-inference`. This should lead to better alert messages and better fix suggestions. diff --git a/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms10.yml b/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms10.yml new file mode 100644 index 00000000000..6530bd5f08e --- /dev/null +++ b/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms10.yml @@ -0,0 +1,10 @@ +on: + workflow_call: + workflow_dispatch: + +jobs: + build: + name: Build and test + runs-on: ubuntu-latest + steps: + - uses: actions/ai-inference diff --git a/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms8.yml b/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms8.yml new file mode 100644 index 00000000000..1a10bd6a7d6 --- /dev/null +++ b/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms8.yml @@ -0,0 +1,10 @@ +on: + workflow_call: + workflow_dispatch: + +jobs: + build: + name: Build and test + runs-on: ubuntu-latest + steps: + - uses: actions/deploy-pages diff --git a/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms9.yml b/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms9.yml new file mode 100644 index 00000000000..b6ae16bf9e2 --- /dev/null +++ b/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms9.yml @@ -0,0 +1,10 @@ +on: + workflow_call: + workflow_dispatch: + +jobs: + build: + name: Build and test + runs-on: ubuntu-latest + steps: + - uses: actions/delete-package-versions diff --git a/actions/ql/test/query-tests/Security/CWE-275/MissingActionsPermissions.expected b/actions/ql/test/query-tests/Security/CWE-275/MissingActionsPermissions.expected index 1a3c36c78ca..52a045e0de2 100644 --- a/actions/ql/test/query-tests/Security/CWE-275/MissingActionsPermissions.expected +++ b/actions/ql/test/query-tests/Security/CWE-275/MissingActionsPermissions.expected @@ -3,3 +3,6 @@ | .github/workflows/perms5.yml:7:5:10:32 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read} | | .github/workflows/perms6.yml:7:5:11:39 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read, id-token: write, pages: write} | | .github/workflows/perms7.yml:7:5:10:38 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {} | +| .github/workflows/perms8.yml:7:5:10:33 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {id-token: write, pages: write} | +| .github/workflows/perms9.yml:7:5:10:44 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {packages: write} | +| .github/workflows/perms10.yml:7:5:10:33 | Job: build | Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read, models: read} | From 9d37597461dc58e67765a6cb5557e853c28741e4 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 14 May 2025 20:50:40 +0200 Subject: [PATCH 407/656] Address review comments --- .../elements/internal/LiteralExprImpl.qll | 23 ++++---- .../codeql/rust/frameworks/stdlib/Bultins.qll | 8 +-- .../codeql/rust/internal/TypeInference.qll | 53 +++++++++---------- .../test/library-tests/type-inference/main.rs | 10 ++-- .../type-inference/type-inference.expected | 15 ++++-- 5 files changed, 53 insertions(+), 56 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll index f848663a99b..a836a4c4075 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/LiteralExprImpl.qll @@ -76,7 +76,14 @@ module Impl { /** * A number literal. */ - abstract class NumberLiteralExpr extends LiteralExpr { } + abstract class NumberLiteralExpr extends LiteralExpr { + /** + * Get the suffix of this number literal, if any. + * + * For example, `42u8` has the suffix `u8`. + */ + abstract string getSuffix(); + } // https://doc.rust-lang.org/reference/tokens.html#integer-literals private module IntegerLiteralRegexs { @@ -126,12 +133,7 @@ module Impl { class IntegerLiteralExpr extends NumberLiteralExpr { IntegerLiteralExpr() { this.getTextValue().regexpMatch(IntegerLiteralRegexs::integerLiteral()) } - /** - * Get the suffix of this integer literal, if any. - * - * For example, `42u8` has the suffix `u8`. - */ - string getSuffix() { + override string getSuffix() { exists(string s, string reg | s = this.getTextValue() and reg = IntegerLiteralRegexs::integerLiteral() and @@ -193,12 +195,7 @@ module Impl { not this instanceof IntegerLiteralExpr } - /** - * Get the suffix of this floating-point literal, if any. - * - * For example, `42.0f32` has the suffix `f32`. - */ - string getSuffix() { + override string getSuffix() { exists(string s, string reg | reg = IntegerLiteralRegexs::paren(FloatLiteralRegexs::floatLiteralSuffix1()) + "|" + diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Bultins.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Bultins.qll index 0449d55205a..0c4999bba5e 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Bultins.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Bultins.qll @@ -97,13 +97,13 @@ class U128 extends BuiltinType { } /** The builtin `usize` type. */ -class USize extends BuiltinType { - USize() { this.getName() = "usize" } +class Usize extends BuiltinType { + Usize() { this.getName() = "usize" } } /** The builtin `isize` type. */ -class ISize extends BuiltinType { - ISize() { this.getName() = "isize" } +class Isize extends BuiltinType { + Isize() { this.getName() = "isize" } } /** The builtin `f32` type. */ diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 36d97b5c331..0a3cac3b34f 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -887,37 +887,32 @@ private Type inferTryExprType(TryExpr te, TypePath path) { private import codeql.rust.frameworks.stdlib.Bultins as Builtins -pragma[nomagic] -StructType getBuiltinType(string name) { - result = TStruct(any(Builtins::BuiltinType t | name = t.getName())) -} - pragma[nomagic] private StructType inferLiteralType(LiteralExpr le) { - le instanceof CharLiteralExpr and - result = TStruct(any(Builtins::Char t)) - or - le instanceof StringLiteralExpr and - result = TStruct(any(Builtins::Str t)) - or - le = - any(IntegerLiteralExpr n | - not exists(n.getSuffix()) and - result = getBuiltinType("i32") - or - result = getBuiltinType(n.getSuffix()) - ) - or - le = - any(FloatLiteralExpr n | - not exists(n.getSuffix()) and - result = getBuiltinType("f32") - or - result = getBuiltinType(n.getSuffix()) - ) - or - le instanceof BooleanLiteralExpr and - result = TStruct(any(Builtins::Bool t)) + exists(Builtins::BuiltinType t | result = TStruct(t) | + le instanceof CharLiteralExpr and + t instanceof Builtins::Char + or + le instanceof StringLiteralExpr and + t instanceof Builtins::Str + or + le = + any(NumberLiteralExpr ne | + t.getName() = ne.getSuffix() + or + not exists(ne.getSuffix()) and + ( + ne instanceof IntegerLiteralExpr and + t instanceof Builtins::I32 + or + ne instanceof FloatLiteralExpr and + t instanceof Builtins::F64 + ) + ) + or + le instanceof BooleanLiteralExpr and + t instanceof Builtins::Bool + ) } cached diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 69004d7291d..c8f91884f4e 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -984,11 +984,11 @@ mod builtins { let y = 2; // $ type=y:i32 let z = x + y; // $ MISSING: type=z:i32 let z = x.abs(); // $ method=abs $ type=z:i32 - 'c'; - "Hello"; - 123.0f64; - true; - false; + let c = 'c'; // $ type=c:char + let hello = "Hello"; // $ type=hello:str + let f = 123.0f64; // $ type=f:f64 + let t = true; // $ type=t:bool + let f = false; // $ type=f:bool } } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 45dccfb1857..b2c8c621b08 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1206,11 +1206,16 @@ inferType | main.rs:986:13:986:13 | z | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | | main.rs:986:17:986:17 | x | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | | main.rs:986:17:986:23 | x.abs() | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:987:9:987:11 | 'c' | | file:///BUILTINS/types.rs:6:1:7:16 | char | -| main.rs:988:9:988:15 | "Hello" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:989:9:989:16 | 123.0f64 | | file:///BUILTINS/types.rs:25:1:25:15 | f64 | -| main.rs:990:9:990:12 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:991:9:991:13 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:987:13:987:13 | c | | file:///BUILTINS/types.rs:6:1:7:16 | char | +| main.rs:987:17:987:19 | 'c' | | file:///BUILTINS/types.rs:6:1:7:16 | char | +| main.rs:988:13:988:17 | hello | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:988:21:988:27 | "Hello" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:989:13:989:13 | f | | file:///BUILTINS/types.rs:25:1:25:15 | f64 | +| main.rs:989:17:989:24 | 123.0f64 | | file:///BUILTINS/types.rs:25:1:25:15 | f64 | +| main.rs:990:13:990:13 | t | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:990:17:990:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:991:13:991:13 | f | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:991:17:991:21 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:997:5:997:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | | main.rs:998:5:998:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | | main.rs:998:20:998:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | From 2c5d85e1865f14e73af327f5dbfdb1139b232f03 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 15 May 2025 13:35:08 +0200 Subject: [PATCH 408/656] C#: Convert cs/gethashcode-is-not-defined to inline expectations tests. --- .../Likely Bugs/HashedButNoHash/HashedButNoHash.cs | 5 +++-- .../Likely Bugs/HashedButNoHash/HashedButNoHash.expected | 2 +- .../Likely Bugs/HashedButNoHash/HashedButNoHash.qlref | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.cs b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.cs index 1c088acfce2..7a69efca444 100644 --- a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.cs +++ b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.cs @@ -6,9 +6,10 @@ public class Test public void M() { var h = new Hashtable(); - h.Add(this, null); // BAD + h.Add(this, null); // $ Alert + var d = new Dictionary(); - d.Add(this, false); // BAD + d.Add(this, false); // $ Alert } public override bool Equals(object other) diff --git a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected index 139f62dfe5b..cde53dcd247 100644 --- a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected +++ b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected @@ -1,2 +1,2 @@ | HashedButNoHash.cs:9:15:9:18 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | -| HashedButNoHash.cs:11:15:11:18 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:12:15:12:18 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | diff --git a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.qlref b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.qlref index 611db7b8e0d..2686c9c06e8 100644 --- a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.qlref +++ b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.qlref @@ -1 +1,3 @@ -Likely Bugs/HashedButNoHash.ql \ No newline at end of file +query: Likely Bugs/HashedButNoHash.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql + From 4b2d323cb6028209e48faf9bc484f7cf2e6e3a13 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 15 May 2025 13:44:12 +0200 Subject: [PATCH 409/656] C#: Add some more test cases. --- .../HashedButNoHash/HashedButNoHash.cs | 17 +++++++++++++++++ .../HashedButNoHash/HashedButNoHash.expected | 16 +++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.cs b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.cs index 7a69efca444..6ddd7fb037d 100644 --- a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.cs +++ b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.cs @@ -7,9 +7,26 @@ public class Test { var h = new Hashtable(); h.Add(this, null); // $ Alert + h.Contains(this); // $ Alert + h.ContainsKey(this); // $ Alert + h[this] = null; // $ Alert + h.Remove(this); // $ Alert + + var l = new List(); + l.Add(this); // Good var d = new Dictionary(); d.Add(this, false); // $ Alert + d.ContainsKey(this); // $ Alert + d[this] = false; // $ Alert + d.Remove(this); // $ Alert + d.TryAdd(this, false); // $ Alert + d.TryGetValue(this, out bool _); // $ Alert + + var hs = new HashSet(); + hs.Add(this); // $ Alert + hs.Contains(this); // $ Alert + hs.Remove(this); // $ Alert } public override bool Equals(object other) diff --git a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected index cde53dcd247..2e6e3cba4ba 100644 --- a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected +++ b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected @@ -1,2 +1,16 @@ +#select | HashedButNoHash.cs:9:15:9:18 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | -| HashedButNoHash.cs:12:15:12:18 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:11:23:11:26 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:19:15:19:18 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:20:23:20:26 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +testFailures +| HashedButNoHash.cs:10:27:10:36 | // ... | Missing result: Alert | +| HashedButNoHash.cs:12:25:12:34 | // ... | Missing result: Alert | +| HashedButNoHash.cs:13:25:13:34 | // ... | Missing result: Alert | +| HashedButNoHash.cs:21:26:21:35 | // ... | Missing result: Alert | +| HashedButNoHash.cs:22:25:22:34 | // ... | Missing result: Alert | +| HashedButNoHash.cs:23:32:23:41 | // ... | Missing result: Alert | +| HashedButNoHash.cs:24:42:24:51 | // ... | Missing result: Alert | +| HashedButNoHash.cs:27:23:27:32 | // ... | Missing result: Alert | +| HashedButNoHash.cs:28:28:28:37 | // ... | Missing result: Alert | +| HashedButNoHash.cs:29:26:29:35 | // ... | Missing result: Alert | From 72d3814e08624d051493391532c5089453ce546e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 15 May 2025 14:03:22 +0200 Subject: [PATCH 410/656] C#: Include dictionary indexers and more methods in cs/gethashcode-is-not-defined. --- .../frameworks/system/collections/Generic.qll | 17 ++++++++ csharp/ql/src/Likely Bugs/HashedButNoHash.ql | 40 ++++++++++++++----- 2 files changed, 47 insertions(+), 10 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Generic.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Generic.qll index 24c1277af02..35b23ffc18e 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Generic.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/collections/Generic.qll @@ -159,6 +159,15 @@ class SystemCollectionsGenericIDictionaryInterface extends SystemCollectionsGene } } +/** The ``System.Collections.Generic.IReadOnlyDictionary`2`` interface. */ +class SystemCollectionsGenericIReadOnlyDictionaryInterface extends SystemCollectionsGenericUnboundGenericInterface +{ + SystemCollectionsGenericIReadOnlyDictionaryInterface() { + this.hasName("IReadOnlyDictionary`2") and + this.getNumberOfTypeParameters() = 2 + } +} + /** The ``System.Collections.Generic.IReadOnlyCollection`1`` interface. */ class SystemCollectionsGenericIReadOnlyCollectionTInterface extends SystemCollectionsGenericUnboundGenericInterface { @@ -176,3 +185,11 @@ class SystemCollectionsGenericIReadOnlyListTInterface extends SystemCollectionsG this.getNumberOfTypeParameters() = 1 } } + +/** The ``System.Collections.Generic.HashSet`1`` class. */ +class SystemCollectionsGenericHashSetClass extends SystemCollectionsGenericUnboundGenericClass { + SystemCollectionsGenericHashSetClass() { + this.hasName("HashSet`1") and + this.getNumberOfTypeParameters() = 1 + } +} diff --git a/csharp/ql/src/Likely Bugs/HashedButNoHash.ql b/csharp/ql/src/Likely Bugs/HashedButNoHash.ql index 195c0e3a056..9948def013c 100644 --- a/csharp/ql/src/Likely Bugs/HashedButNoHash.ql +++ b/csharp/ql/src/Likely Bugs/HashedButNoHash.ql @@ -11,24 +11,44 @@ import csharp import semmle.code.csharp.frameworks.System +import semmle.code.csharp.frameworks.system.Collections +import semmle.code.csharp.frameworks.system.collections.Generic -predicate dictionary(ConstructedType constructed) { - exists(UnboundGenericType dict | - dict.hasFullyQualifiedName("System.Collections.Generic", "Dictionary`2") and - constructed = dict.getAConstructedGeneric() +/** + * Holds if `t` is a dictionary type. + */ +predicate dictionary(ValueOrRefType t) { + exists(Type base | base = t.getABaseType*().getUnboundDeclaration() | + base instanceof SystemCollectionsGenericIDictionaryInterface or + base instanceof SystemCollectionsGenericIReadOnlyDictionaryInterface or + base instanceof SystemCollectionsIDictionaryInterface ) } -predicate hashtable(Class c) { c.hasFullyQualifiedName("System.Collections", "Hashtable") } +/** + * Holds if `c` is a hashset type. + */ +predicate hashSet(ValueOrRefType t) { + t.getABaseType*().getUnboundDeclaration() instanceof SystemCollectionsGenericHashSetClass +} -predicate hashstructure(Type t) { hashtable(t) or dictionary(t) } +predicate hashStructure(Type t) { dictionary(t) or hashSet(t) } -predicate hashAdd(Expr e) { +/** + * Holds if the expression `e` relies on `GetHashCode()` implementation. + * That is, if the call assumes that `e1.Equals(e2)` implies `e1.GetHashCode() == e2.GetHashCode()`. + */ +predicate usesHashing(Expr e) { exists(MethodCall mc, string name | - (name = "Add" or name = "ContainsKey") and + name = ["Add", "Contains", "ContainsKey", "Remove", "TryAdd", "TryGetValue"] and mc.getArgument(0) = e and mc.getTarget().hasName(name) and - hashstructure(mc.getTarget().getDeclaringType()) + hashStructure(mc.getTarget().getDeclaringType()) + ) + or + exists(IndexerCall ic | + ic.getArgument(0) = e and + dictionary(ic.getTarget().getDeclaringType()) ) } @@ -46,7 +66,7 @@ predicate hashCall(Expr e) { from Expr e, Type t where - (hashAdd(e) or hashCall(e)) and + (usesHashing(e) or hashCall(e)) and e.getType() = t and eqWithoutHash(t) select e, From 3080dfafb6bfbbc3f3b08c389d88aebf4317a5f6 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 15 May 2025 14:04:40 +0200 Subject: [PATCH 411/656] C#: Update test expected output. --- .../HashedButNoHash/HashedButNoHash.expected | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected index 2e6e3cba4ba..ad5ab000c7d 100644 --- a/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected +++ b/csharp/ql/test/query-tests/Likely Bugs/HashedButNoHash/HashedButNoHash.expected @@ -1,16 +1,14 @@ -#select | HashedButNoHash.cs:9:15:9:18 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:10:20:10:23 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | | HashedButNoHash.cs:11:23:11:26 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:12:11:12:14 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:13:18:13:21 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | | HashedButNoHash.cs:19:15:19:18 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | | HashedButNoHash.cs:20:23:20:26 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | -testFailures -| HashedButNoHash.cs:10:27:10:36 | // ... | Missing result: Alert | -| HashedButNoHash.cs:12:25:12:34 | // ... | Missing result: Alert | -| HashedButNoHash.cs:13:25:13:34 | // ... | Missing result: Alert | -| HashedButNoHash.cs:21:26:21:35 | // ... | Missing result: Alert | -| HashedButNoHash.cs:22:25:22:34 | // ... | Missing result: Alert | -| HashedButNoHash.cs:23:32:23:41 | // ... | Missing result: Alert | -| HashedButNoHash.cs:24:42:24:51 | // ... | Missing result: Alert | -| HashedButNoHash.cs:27:23:27:32 | // ... | Missing result: Alert | -| HashedButNoHash.cs:28:28:28:37 | // ... | Missing result: Alert | -| HashedButNoHash.cs:29:26:29:35 | // ... | Missing result: Alert | +| HashedButNoHash.cs:21:11:21:14 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:22:18:22:21 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:23:18:23:21 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:24:23:24:26 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:27:16:27:19 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:28:21:28:24 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | +| HashedButNoHash.cs:29:19:29:22 | this access | This expression is hashed, but type 'Test' only defines Equals(...) not GetHashCode(). | From 4d7901573ac17ea9d6b6bc7db8b1abab5a2cb5c6 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 15 May 2025 14:07:50 +0200 Subject: [PATCH 412/656] C#: Add change note. --- .../src/change-notes/2025-05-15-gethashcode-is-not-defined.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/src/change-notes/2025-05-15-gethashcode-is-not-defined.md diff --git a/csharp/ql/src/change-notes/2025-05-15-gethashcode-is-not-defined.md b/csharp/ql/src/change-notes/2025-05-15-gethashcode-is-not-defined.md new file mode 100644 index 00000000000..2d8c5c1c56e --- /dev/null +++ b/csharp/ql/src/change-notes/2025-05-15-gethashcode-is-not-defined.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The precision of the query `cs/gethashcode-is-not-defined` has been improved (false negative reduction). Calls to more methods (and indexers) that rely on the invariant `e1.Equals(e2)` implies `e1.GetHashCode() == e2.GetHashCode()` are taken into account. From e80c3b5c0b7140b6df8c6991ce068d6e7a1d5b31 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 May 2025 13:24:32 +0100 Subject: [PATCH 413/656] C++: Exclude tests (by matching paths) in model generation. --- cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index b86b2400fcc..c30e2cc8f57 100644 --- a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -45,6 +45,13 @@ private predicate isUninterestingForModels(Callable api) { api = any(Cpp::LambdaExpression lambda).getLambdaFunction() or api.isFromUninstantiatedTemplate(_) + or + // Exclude functions in test directories (but not the ones in the CodeQL test directory) + exists(Cpp::File f | + f = api.getFile() and + f.getAbsolutePath().matches("%test%") and + not f.getAbsolutePath().matches("%test/library-tests/dataflow/modelgenerator/dataflow/%") + ) } private predicate relevant(Callable api) { From c6df9505c0589499f0027e718cb2d0c60278eeda Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 May 2025 15:05:17 +0100 Subject: [PATCH 414/656] C++: Add tests to exercise the upcoming behavior of function dispatch when there are model-generated summaries AND source definitions. --- .../dataflow/external-models/flow.expected | 75 ++++++++++++++----- .../dataflow/external-models/flow.ext.yml | 5 +- .../dataflow/external-models/sinks.expected | 11 ++- .../dataflow/external-models/sources.expected | 2 +- .../dataflow/external-models/steps.expected | 7 +- .../dataflow/external-models/steps.ext.yml | 5 +- .../dataflow/external-models/test.cpp | 27 ++++++- 7 files changed, 104 insertions(+), 28 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index 3a87f947742..2b2f0dcdf0c 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -10,14 +10,32 @@ edges | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:103:29:103:39 | *send_buffer | provenance | Sink:MaD:6 | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | provenance | | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | MaD:10 | -| test.cpp:4:5:4:11 | [summary param] 0 in ymlStep | test.cpp:4:5:4:11 | [summary] to write: ReturnValue in ymlStep | provenance | MaD:969 | -| test.cpp:7:10:7:18 | call to ymlSource | test.cpp:7:10:7:18 | call to ymlSource | provenance | Src:MaD:967 | -| test.cpp:7:10:7:18 | call to ymlSource | test.cpp:11:10:11:10 | x | provenance | Sink:MaD:968 | -| test.cpp:7:10:7:18 | call to ymlSource | test.cpp:13:18:13:18 | x | provenance | | -| test.cpp:13:10:13:16 | call to ymlStep | test.cpp:13:10:13:16 | call to ymlStep | provenance | | -| test.cpp:13:10:13:16 | call to ymlStep | test.cpp:15:10:15:10 | y | provenance | Sink:MaD:968 | -| test.cpp:13:18:13:18 | x | test.cpp:4:5:4:11 | [summary param] 0 in ymlStep | provenance | | -| test.cpp:13:18:13:18 | x | test.cpp:13:10:13:16 | call to ymlStep | provenance | MaD:969 | +| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:969 | +| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:970 | +| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:971 | +| test.cpp:7:5:7:30 | [summary param] 0 in ymlStepGenerated_with_body | test.cpp:7:5:7:30 | [summary] to write: ReturnValue in ymlStepGenerated_with_body | provenance | MaD:972 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:967 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:968 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:17:24:17:24 | x | provenance | | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:21:27:21:27 | x | provenance | | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:25:35:25:35 | x | provenance | | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:35:38:35:38 | x | provenance | | +| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | | +| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:968 | +| test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | provenance | | +| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:969 | +| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | | +| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:968 | +| test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | provenance | | +| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:970 | +| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | | +| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:968 | +| test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | provenance | | +| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:971 | +| test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | provenance | | +| test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | test.cpp:36:10:36:11 | z3 | provenance | Sink:MaD:968 | +| test.cpp:35:38:35:38 | x | test.cpp:7:5:7:30 | [summary param] 0 in ymlStepGenerated_with_body | provenance | | +| test.cpp:35:38:35:38 | x | test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | provenance | MaD:972 | nodes | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | semmle.label | [summary param] *0 in buffer | | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | semmle.label | [summary] to write: ReturnValue in buffer | @@ -31,15 +49,36 @@ nodes | asio_streams.cpp:100:64:100:71 | *send_str | semmle.label | *send_str | | asio_streams.cpp:101:7:101:17 | send_buffer | semmle.label | send_buffer | | asio_streams.cpp:103:29:103:39 | *send_buffer | semmle.label | *send_buffer | -| test.cpp:4:5:4:11 | [summary param] 0 in ymlStep | semmle.label | [summary param] 0 in ymlStep | -| test.cpp:4:5:4:11 | [summary] to write: ReturnValue in ymlStep | semmle.label | [summary] to write: ReturnValue in ymlStep | -| test.cpp:7:10:7:18 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:7:10:7:18 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:11:10:11:10 | x | semmle.label | x | -| test.cpp:13:10:13:16 | call to ymlStep | semmle.label | call to ymlStep | -| test.cpp:13:10:13:16 | call to ymlStep | semmle.label | call to ymlStep | -| test.cpp:13:18:13:18 | x | semmle.label | x | -| test.cpp:15:10:15:10 | y | semmle.label | y | +| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | semmle.label | [summary param] 0 in ymlStepManual | +| test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | semmle.label | [summary] to write: ReturnValue in ymlStepManual | +| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | semmle.label | [summary param] 0 in ymlStepGenerated | +| test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | semmle.label | [summary] to write: ReturnValue in ymlStepGenerated | +| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | semmle.label | [summary param] 0 in ymlStepManual_with_body | +| test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | semmle.label | [summary] to write: ReturnValue in ymlStepManual_with_body | +| test.cpp:7:5:7:30 | [summary param] 0 in ymlStepGenerated_with_body | semmle.label | [summary param] 0 in ymlStepGenerated_with_body | +| test.cpp:7:5:7:30 | [summary] to write: ReturnValue in ymlStepGenerated_with_body | semmle.label | [summary] to write: ReturnValue in ymlStepGenerated_with_body | +| test.cpp:10:10:10:18 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:10:10:10:18 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:14:10:14:10 | x | semmle.label | x | +| test.cpp:17:10:17:22 | call to ymlStepManual | semmle.label | call to ymlStepManual | +| test.cpp:17:10:17:22 | call to ymlStepManual | semmle.label | call to ymlStepManual | +| test.cpp:17:24:17:24 | x | semmle.label | x | +| test.cpp:18:10:18:10 | y | semmle.label | y | +| test.cpp:21:10:21:25 | call to ymlStepGenerated | semmle.label | call to ymlStepGenerated | +| test.cpp:21:10:21:25 | call to ymlStepGenerated | semmle.label | call to ymlStepGenerated | +| test.cpp:21:27:21:27 | x | semmle.label | x | +| test.cpp:22:10:22:10 | z | semmle.label | z | +| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | semmle.label | call to ymlStepManual_with_body | +| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | semmle.label | call to ymlStepManual_with_body | +| test.cpp:25:35:25:35 | x | semmle.label | x | +| test.cpp:26:10:26:11 | y2 | semmle.label | y2 | +| test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | semmle.label | call to ymlStepGenerated_with_body | +| test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | semmle.label | call to ymlStepGenerated_with_body | +| test.cpp:35:38:35:38 | x | semmle.label | x | +| test.cpp:36:10:36:11 | z3 | semmle.label | z3 | subpaths | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | asio_streams.cpp:100:44:100:62 | call to buffer | -| test.cpp:13:18:13:18 | x | test.cpp:4:5:4:11 | [summary param] 0 in ymlStep | test.cpp:4:5:4:11 | [summary] to write: ReturnValue in ymlStep | test.cpp:13:10:13:16 | call to ymlStep | +| test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | +| test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | +| test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | +| test.cpp:35:38:35:38 | x | test.cpp:7:5:7:30 | [summary param] 0 in ymlStepGenerated_with_body | test.cpp:7:5:7:30 | [summary] to write: ReturnValue in ymlStepGenerated_with_body | test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.ext.yml b/cpp/ql/test/library-tests/dataflow/external-models/flow.ext.yml index 42ca51bc424..12dbf7d4cd2 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.ext.yml +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.ext.yml @@ -13,4 +13,7 @@ extensions: pack: codeql/cpp-all extensible: summaryModel data: # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance - - ["", "", False, "ymlStep", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] \ No newline at end of file + - ["", "", False, "ymlStepManual", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", False, "ymlStepGenerated", "", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", False, "ymlStepManual_with_body", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", False, "ymlStepGenerated_with_body", "", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/external-models/sinks.expected b/cpp/ql/test/library-tests/dataflow/external-models/sinks.expected index 392c0bc03c1..2c2338a7dcc 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sinks.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sinks.expected @@ -1,5 +1,10 @@ | asio_streams.cpp:93:29:93:39 | *recv_buffer | remote-sink | | asio_streams.cpp:103:29:103:39 | *send_buffer | remote-sink | -| test.cpp:9:10:9:10 | 0 | test-sink | -| test.cpp:11:10:11:10 | x | test-sink | -| test.cpp:15:10:15:10 | y | test-sink | +| test.cpp:12:10:12:10 | 0 | test-sink | +| test.cpp:14:10:14:10 | x | test-sink | +| test.cpp:18:10:18:10 | y | test-sink | +| test.cpp:22:10:22:10 | z | test-sink | +| test.cpp:26:10:26:11 | y2 | test-sink | +| test.cpp:29:10:29:11 | y3 | test-sink | +| test.cpp:33:10:33:11 | z2 | test-sink | +| test.cpp:36:10:36:11 | z3 | test-sink | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected index aa85e74fc03..3e71025e7ff 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected @@ -1,2 +1,2 @@ | asio_streams.cpp:87:34:87:44 | read_until output argument | remote | -| test.cpp:7:10:7:18 | call to ymlSource | local | +| test.cpp:10:10:10:18 | call to ymlSource | local | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/steps.expected b/cpp/ql/test/library-tests/dataflow/external-models/steps.expected index 2bc7fb6b49a..aab2691cda1 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/steps.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/steps.expected @@ -1,2 +1,7 @@ | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | -| test.cpp:13:18:13:18 | x | test.cpp:13:10:13:16 | call to ymlStep | +| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | +| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | +| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | +| test.cpp:28:35:28:35 | 0 | test.cpp:28:11:28:33 | call to ymlStepManual_with_body | +| test.cpp:32:38:32:38 | 0 | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | +| test.cpp:35:38:35:38 | x | test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/steps.ext.yml b/cpp/ql/test/library-tests/dataflow/external-models/steps.ext.yml index c8a195b7aa6..da9448b8e8f 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/steps.ext.yml +++ b/cpp/ql/test/library-tests/dataflow/external-models/steps.ext.yml @@ -3,4 +3,7 @@ extensions: pack: codeql/cpp-all extensible: summaryModel data: # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance - - ["", "", False, "ymlStep", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", False, "ymlStepManual", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", False, "ymlStepGenerated", "", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", False, "ymlStepManual_with_body", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["", "", False, "ymlStepGenerated_with_body", "", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] diff --git a/cpp/ql/test/library-tests/dataflow/external-models/test.cpp b/cpp/ql/test/library-tests/dataflow/external-models/test.cpp index aa50f6715f2..b443b368b01 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/test.cpp @@ -1,7 +1,10 @@ int ymlSource(); void ymlSink(int value); -int ymlStep(int value); +int ymlStepManual(int value); +int ymlStepGenerated(int value); +int ymlStepManual_with_body(int value1, int value2) { return value2; } +int ymlStepGenerated_with_body(int value, int value2) { return value2; } void test() { int x = ymlSource(); @@ -10,7 +13,25 @@ void test() { ymlSink(x); // $ ir - int y = ymlStep(x); - + // ymlStepManual is manually modeled so we should always use the model + int y = ymlStepManual(x); ymlSink(y); // $ ir + + // ymlStepGenerated is modeled by the model generator so we should use the model only if there is no body + int z = ymlStepGenerated(x); + ymlSink(z); // $ ir + + // ymlStepManual_with_body is manually modeled so we should always use the model + int y2 = ymlStepManual_with_body(x, 0); + ymlSink(y2); // $ ir + + int y3 = ymlStepManual_with_body(0, x); + ymlSink(y3); // clean + + // ymlStepGenerated_with_body is modeled by the model generator so we should use the model only if there is no body + int z2 = ymlStepGenerated_with_body(0, x); + ymlSink(z2); // $ MISSING: ir + + int z3 = ymlStepGenerated_with_body(x, 0); + ymlSink(z3); // $ SPURIOUS: ir } From 69a1a87aa40a70ecbd4351aa14b4e26e3fe96225 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 May 2025 15:25:29 +0100 Subject: [PATCH 415/656] C++: Update semantics of picking the static call target in dataflow. --- .../ir/dataflow/internal/DataFlowPrivate.qll | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll index e517a75edf9..f0a0fd7cdb3 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll @@ -1164,15 +1164,27 @@ class DataFlowCall extends TDataFlowCall { Function getStaticCallSourceTarget() { none() } /** - * Gets the target of this call. If a summarized callable exists for the - * target this is chosen, and otherwise the callable is the implementation - * from the source code. + * Gets the target of this call. We use the following strategy for deciding + * between the source callable and a summarized callable: + * - If there is a manual summary then we always use the manual summary. + * - If there is a source callable and we only have generated summaries + * we use the source callable. + * - If there is no source callable then we use the summary regardless of + * whether is it manual or generated. */ - DataFlowCallable getStaticCallTarget() { + final DataFlowCallable getStaticCallTarget() { exists(Function target | target = this.getStaticCallSourceTarget() | - not exists(TSummarizedCallable(target)) and + // Don't use the source callable if there is a manual model for the + // target + not exists(SummarizedCallable sc | + sc.asSummarizedCallable() = target and + sc.asSummarizedCallable().applyManualModel() + ) and result.asSourceCallable() = target or + // When there is no function body, or when we have a manual model then + // we dispatch to the summary. + (not target.hasDefinition() or result.asSummarizedCallable().applyManualModel()) and result.asSummarizedCallable() = target ) } From e75dcd27f505b50e2bec14bec09f29a17c7b40af Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 May 2025 15:28:13 +0100 Subject: [PATCH 416/656] C++: Accept test changes. --- .../dataflow/external-models/flow.expected | 28 ++++++++++--------- .../dataflow/external-models/test.cpp | 4 +-- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index 2b2f0dcdf0c..66709332e61 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -13,13 +13,14 @@ edges | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:969 | | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:970 | | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:971 | -| test.cpp:7:5:7:30 | [summary param] 0 in ymlStepGenerated_with_body | test.cpp:7:5:7:30 | [summary] to write: ReturnValue in ymlStepGenerated_with_body | provenance | MaD:972 | +| test.cpp:7:47:7:52 | value2 | test.cpp:7:64:7:69 | value2 | provenance | | +| test.cpp:7:64:7:69 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:967 | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:968 | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:17:24:17:24 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:21:27:21:27 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:25:35:25:35 | x | provenance | | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:35:38:35:38 | x | provenance | | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:32:41:32:41 | x | provenance | | | test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | | | test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:968 | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | provenance | | @@ -32,10 +33,10 @@ edges | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:968 | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | provenance | | | test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:971 | -| test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | provenance | | -| test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | test.cpp:36:10:36:11 | z3 | provenance | Sink:MaD:968 | -| test.cpp:35:38:35:38 | x | test.cpp:7:5:7:30 | [summary param] 0 in ymlStepGenerated_with_body | provenance | | -| test.cpp:35:38:35:38 | x | test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | provenance | MaD:972 | +| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | +| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:968 | +| test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | provenance | | +| test.cpp:32:41:32:41 | x | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | nodes | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | semmle.label | [summary param] *0 in buffer | | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | semmle.label | [summary] to write: ReturnValue in buffer | @@ -55,8 +56,9 @@ nodes | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | semmle.label | [summary] to write: ReturnValue in ymlStepGenerated | | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | semmle.label | [summary param] 0 in ymlStepManual_with_body | | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | semmle.label | [summary] to write: ReturnValue in ymlStepManual_with_body | -| test.cpp:7:5:7:30 | [summary param] 0 in ymlStepGenerated_with_body | semmle.label | [summary param] 0 in ymlStepGenerated_with_body | -| test.cpp:7:5:7:30 | [summary] to write: ReturnValue in ymlStepGenerated_with_body | semmle.label | [summary] to write: ReturnValue in ymlStepGenerated_with_body | +| test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | semmle.label | *ymlStepGenerated_with_body | +| test.cpp:7:47:7:52 | value2 | semmle.label | value2 | +| test.cpp:7:64:7:69 | value2 | semmle.label | value2 | | test.cpp:10:10:10:18 | call to ymlSource | semmle.label | call to ymlSource | | test.cpp:10:10:10:18 | call to ymlSource | semmle.label | call to ymlSource | | test.cpp:14:10:14:10 | x | semmle.label | x | @@ -72,13 +74,13 @@ nodes | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | semmle.label | call to ymlStepManual_with_body | | test.cpp:25:35:25:35 | x | semmle.label | x | | test.cpp:26:10:26:11 | y2 | semmle.label | y2 | -| test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | semmle.label | call to ymlStepGenerated_with_body | -| test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | semmle.label | call to ymlStepGenerated_with_body | -| test.cpp:35:38:35:38 | x | semmle.label | x | -| test.cpp:36:10:36:11 | z3 | semmle.label | z3 | +| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | semmle.label | call to ymlStepGenerated_with_body | +| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | semmle.label | call to ymlStepGenerated_with_body | +| test.cpp:32:41:32:41 | x | semmle.label | x | +| test.cpp:33:10:33:11 | z2 | semmle.label | z2 | subpaths | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | asio_streams.cpp:100:44:100:62 | call to buffer | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | -| test.cpp:35:38:35:38 | x | test.cpp:7:5:7:30 | [summary param] 0 in ymlStepGenerated_with_body | test.cpp:7:5:7:30 | [summary] to write: ReturnValue in ymlStepGenerated_with_body | test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | +| test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/test.cpp b/cpp/ql/test/library-tests/dataflow/external-models/test.cpp index b443b368b01..a0b12004074 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/test.cpp @@ -30,8 +30,8 @@ void test() { // ymlStepGenerated_with_body is modeled by the model generator so we should use the model only if there is no body int z2 = ymlStepGenerated_with_body(0, x); - ymlSink(z2); // $ MISSING: ir + ymlSink(z2); // $ ir int z3 = ymlStepGenerated_with_body(x, 0); - ymlSink(z3); // $ SPURIOUS: ir + ymlSink(z3); // clean } From 61719cf448963fbd3baad8bebb4da33bb9e3a354 Mon Sep 17 00:00:00 2001 From: Taus Date: Thu, 15 May 2025 14:48:06 +0000 Subject: [PATCH 417/656] Python: Fix a bug in glob conversion If you have a filter like `**/foo/**` set in the `paths-ignore` bit of your config file, then currently the following happens: - First, the CodeQL CLI observes that this string ends in `/**` and strips off the `**` leaving `**/foo/` - Then the Python extractor strips off leading and trailing `/` characters and proceeds to convert `**/foo` into a regex that is matched against files to (potentially) extract. The trouble with this is that it leaves us unable to distinguish between, say, a file `foo.py` and a file `foo/bar.py`. In other words, we have lost the ability to exclude only the _folder_ `foo` and not any files that happen to start with `foo`. To fix this, we instead make a note of whether the glob ends in a forward slash or not, and adjust the regex correspondingly. --- python/extractor/semmle/path_filters.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/python/extractor/semmle/path_filters.py b/python/extractor/semmle/path_filters.py index cb1a4d9b8bc..1684b0b8fe2 100644 --- a/python/extractor/semmle/path_filters.py +++ b/python/extractor/semmle/path_filters.py @@ -41,6 +41,9 @@ def glob_part_to_regex(glob, add_sep): def glob_to_regex(glob, prefix=""): '''Convert entire glob to a compiled regex''' + # When the glob ends in `/`, we need to remember this so that we don't accidentally add an + # extra separator to the final regex. + end_sep = "" if glob.endswith("/") else SEP glob = glob.strip().strip("/") parts = glob.split("/") #Trailing '**' is redundant, so strip it off. @@ -53,7 +56,7 @@ def glob_to_regex(glob, prefix=""): # something like `C:\\folder\\subfolder\\` and without escaping the # backslash-path-separators will get interpreted as regex escapes (which might be # invalid sequences, causing the extractor to crash) - full_pattern = escape(prefix) + ''.join(parts) + "(?:" + SEP + ".*|$)" + full_pattern = escape(prefix) + ''.join(parts) + "(?:" + end_sep + ".*|$)" return re.compile(full_pattern) def filter_from_pattern(pattern, prev_filter, prefix): From 98388be25c9203e51c1635de2abf91a577fd7c18 Mon Sep 17 00:00:00 2001 From: Taus Date: Thu, 15 May 2025 14:49:17 +0000 Subject: [PATCH 418/656] Python: Remove special casing of hidden files If it is necessary to exclude hidden files, then adding ``` paths-ignore: ['**/.*/**'] ``` to the relevant config file is recommended instead. --- python/extractor/semmle/traverser.py | 45 +++++----------------------- 1 file changed, 8 insertions(+), 37 deletions(-) diff --git a/python/extractor/semmle/traverser.py b/python/extractor/semmle/traverser.py index 0945d8ace4b..4e316a075f7 100644 --- a/python/extractor/semmle/traverser.py +++ b/python/extractor/semmle/traverser.py @@ -85,48 +85,19 @@ class Traverser(object): if isdir(fullpath): if fullpath in self.exclude_paths: self.logger.debug("Ignoring %s (excluded)", fullpath) - elif is_hidden(fullpath): - self.logger.debug("Ignoring %s (hidden)", fullpath) - else: - empty = True - for item in self._treewalk(fullpath): - yield item - empty = False - if not empty: - yield fullpath + continue + + empty = True + for item in self._treewalk(fullpath): + yield item + empty = False + if not empty: + yield fullpath elif self.filter(fullpath): yield fullpath else: self.logger.debug("Ignoring %s (filter)", fullpath) - -if os.environ.get("CODEQL_EXTRACTOR_PYTHON_OPTION_SKIP_HIDDEN_DIRECTORIES", "false") == "false": - - def is_hidden(path): - return False - -elif os.name== 'nt': - import ctypes - - def is_hidden(path): - #Magical windows code - try: - attrs = ctypes.windll.kernel32.GetFileAttributesW(str(path)) - if attrs == -1: - return False - if attrs&2: - return True - except Exception: - #Not sure what to log here, probably best to carry on. - pass - return os.path.basename(path).startswith(".") - -else: - - def is_hidden(path): - return os.path.basename(path).startswith(".") - - def exclude_filter_from_options(options): if options.exclude_package: choices = '|'.join(mod.replace('.', r'\.') for mod in options.exclude_package) From 96558b53b89fb8a72d087db5d55b6ce64848953d Mon Sep 17 00:00:00 2001 From: Taus Date: Thu, 15 May 2025 14:53:15 +0000 Subject: [PATCH 419/656] Python: Update test The second test case now sets the `paths-ignore` setting in the config file in order to skip files in hidden directories. --- python/extractor/cli-integration-test/hidden-files/config.yml | 3 +++ .../cli-integration-test/hidden-files/query-default.expected | 1 + .../.hidden_dir/internal_non_hidden/another_non_hidden.py | 0 python/extractor/cli-integration-test/hidden-files/test.sh | 4 ++-- 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 python/extractor/cli-integration-test/hidden-files/config.yml create mode 100644 python/extractor/cli-integration-test/hidden-files/repo_dir/.hidden_dir/internal_non_hidden/another_non_hidden.py diff --git a/python/extractor/cli-integration-test/hidden-files/config.yml b/python/extractor/cli-integration-test/hidden-files/config.yml new file mode 100644 index 00000000000..69d94597d95 --- /dev/null +++ b/python/extractor/cli-integration-test/hidden-files/config.yml @@ -0,0 +1,3 @@ +name: Test Config +paths-ignore: + - "**/.*/**" diff --git a/python/extractor/cli-integration-test/hidden-files/query-default.expected b/python/extractor/cli-integration-test/hidden-files/query-default.expected index cc92af624b3..72d34a1ab0b 100644 --- a/python/extractor/cli-integration-test/hidden-files/query-default.expected +++ b/python/extractor/cli-integration-test/hidden-files/query-default.expected @@ -1,5 +1,6 @@ | name | +-------------------------------+ | .hidden_file.py | +| another_non_hidden.py | | foo.py | | visible_file_in_hidden_dir.py | diff --git a/python/extractor/cli-integration-test/hidden-files/repo_dir/.hidden_dir/internal_non_hidden/another_non_hidden.py b/python/extractor/cli-integration-test/hidden-files/repo_dir/.hidden_dir/internal_non_hidden/another_non_hidden.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/python/extractor/cli-integration-test/hidden-files/test.sh b/python/extractor/cli-integration-test/hidden-files/test.sh index 77cb12664af..45485985adb 100755 --- a/python/extractor/cli-integration-test/hidden-files/test.sh +++ b/python/extractor/cli-integration-test/hidden-files/test.sh @@ -16,8 +16,8 @@ $CODEQL database create db --language python --source-root repo_dir/ $CODEQL query run --database db query.ql > query-default.actual diff query-default.expected query-default.actual -# Test 2: Setting the relevant extractor option to true skips files in hidden directories -$CODEQL database create db-skipped --language python --source-root repo_dir/ --extractor-option python.skip_hidden_directories=true +# Test 2: The default behavior can be overridden by setting `paths-ignore` in the config file +$CODEQL database create db-skipped --language python --source-root repo_dir/ --codescanning-config=config.yml $CODEQL query run --database db-skipped query.ql > query-skipped.actual diff query-skipped.expected query-skipped.actual From 72ae633a64e8b62da1981c44fcd0bcb8501b84e6 Mon Sep 17 00:00:00 2001 From: Taus Date: Thu, 15 May 2025 14:58:32 +0000 Subject: [PATCH 420/656] Python: Update change note and extractor config Removes the previously added extractor option and updates the change note to explain how to use `paths-ignore` to exclude files in hidden directories. --- python/codeql-extractor.yml | 7 ------- .../2025-04-30-extract-hidden-files-by-default.md | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/python/codeql-extractor.yml b/python/codeql-extractor.yml index 2bd1a9c0aa7..97a9e1f2cf2 100644 --- a/python/codeql-extractor.yml +++ b/python/codeql-extractor.yml @@ -44,10 +44,3 @@ options: Use this setting with caution, the Python extractor requires Python 3 to run. type: string pattern: "^(py|python|python3)$" - skip_hidden_directories: - title: Controls whether hidden directories are skipped during extraction. - description: > - By default, CodeQL will extract all Python files, including ones located in hidden directories. By setting this option to true, these hidden directories will be skipped instead. - Accepted values are true and false. - type: string - pattern: "^(true|false)$" diff --git a/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md b/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md index 96372513499..32b272215af 100644 --- a/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md +++ b/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md @@ -2,4 +2,4 @@ category: minorAnalysis --- -- The Python extractor now extracts files in hidden directories by default. A new extractor option, `skip_hidden_directories` has been added as well. Setting it to `true` will make the extractor revert to the old behavior. +- The Python extractor now extracts files in hidden directories by default. If you would like to skip hidden files, add `paths-ignore: ["**/.*/**"]` to your [Code Scanning config](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#specifying-directories-to-scan). When using the CodeQL CLI for extraction, specify the configuration (creating the configuration file if necessary) using the `--codescanning-config` option. From c8cca126a18cc9b7573f650118a0d033f136c84e Mon Sep 17 00:00:00 2001 From: Taus Date: Thu, 15 May 2025 14:59:33 +0000 Subject: [PATCH 421/656] Python: Bump extractor version --- python/extractor/semmle/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/extractor/semmle/util.py b/python/extractor/semmle/util.py index e0720a86312..56f7889ae23 100644 --- a/python/extractor/semmle/util.py +++ b/python/extractor/semmle/util.py @@ -10,7 +10,7 @@ from io import BytesIO #Semantic version of extractor. #Update this if any changes are made -VERSION = "7.1.2" +VERSION = "7.1.3" PY_EXTENSIONS = ".py", ".pyw" From 2158eaa34c568f148672ca4dbf11dbb39599227b Mon Sep 17 00:00:00 2001 From: Taus Date: Thu, 15 May 2025 15:34:11 +0000 Subject: [PATCH 422/656] Python: Fix a bug in glob regex creation The previous version was tested on a version of the code where we had temporarily removed the `glob.strip("/")` bit, and so the bug didn't trigger then. We now correctly remember if the glob ends in `/`, and add an extra part in that case. This way, if the path ends with multiple slashes, they effectively get consolidated into a single one, which results in the correct semantics. --- python/extractor/semmle/path_filters.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/python/extractor/semmle/path_filters.py b/python/extractor/semmle/path_filters.py index 1684b0b8fe2..908ec4c0ee0 100644 --- a/python/extractor/semmle/path_filters.py +++ b/python/extractor/semmle/path_filters.py @@ -51,6 +51,11 @@ def glob_to_regex(glob, prefix=""): parts = parts[:-1] if not parts: return ".*" + # The `glob.strip("/")` call above will have removed all trailing slashes, but if there was at + # least one trailing slash, we want there to be an extra part, so we add it explicitly here in + # that case, using the emptyness of `end_sep` as a proxy. + if end_sep == "": + parts += [""] parts = [ glob_part_to_regex(escape(p), True) for p in parts[:-1] ] + [ glob_part_to_regex(escape(parts[-1]), False) ] # we need to escape the prefix, specifically because on windows the prefix will be # something like `C:\\folder\\subfolder\\` and without escaping the From 0f2107572207762458abcc6a2981f3caf70db0c2 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 14 May 2025 17:59:01 +0100 Subject: [PATCH 423/656] C++: Add a test that demonstrate missing asExpr for aggregate literals. --- .../test/library-tests/dataflow/asExpr/test.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp b/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp index ae712740144..5835abb297d 100644 --- a/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp @@ -21,3 +21,20 @@ A& get_ref(); void test2() { take_ref(get_ref()); // $ asExpr="call to get_ref" asIndirectExpr="call to get_ref" } + +struct S { + int a; + int b; +}; + +void test_aggregate_literal() { + S s1 = {1, 2}; // $ asExpr=1 asExpr=2 + const S s2 = {3, 4}; // $ asExpr=3 asExpr=4 + S s3 = (S){5, 6}; // $ asExpr=5 asExpr=6 + const S s4 = (S){7, 8}; // $ asExpr=7 asExpr=8 + + S s5 = {.a = 1, .b = 2}; // $ asExpr=1 asExpr=2 + + int xs[] = {1, 2, 3}; // $ asExpr=1 asExpr=2 asExpr=3 + const int ys[] = {[0] = 4, [1] = 5, [0] = 6}; // $ asExpr=4 asExpr=5 asExpr=6 +} \ No newline at end of file From 783560cff65c909175f7f3458c3ea0af16333823 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 May 2025 16:45:10 +0100 Subject: [PATCH 424/656] C++: Add a subclass of PostUpdateNodes and ensure that 'node.asExpr() instanceof ClassAggregateLiteral' holds for this new node subclass. --- .../cpp/ir/dataflow/internal/ExprNodes.qll | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll index c2b89a67f69..146967fa653 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll @@ -264,6 +264,41 @@ private module Cached { e = getConvertedResultExpression(node.asInstruction(), n) } + /** + * The IR doesn't have an instruction `i` for which this holds: + * ``` + * i.getUnconvertedResultExpression() instanceof ClassAggregateLiteral + * ``` + * and thus we don't automaticallt get a dataflow node for which: + * ``` + * node.asExpr() instanceof ClassAggregateLiteral + * ``` + * This is because the IR represents a `ClassAggregateLiteral` as a sequence + * of field writes. To work around this we map `asExpr` on the + * `PostUpdateNode` for the last field write to the class aggregate literal. + */ + private class ClassAggregateInitializerPostUpdateNode extends PostFieldUpdateNode { + ClassAggregateLiteral aggr; + + ClassAggregateInitializerPostUpdateNode() { + exists(Node node1, FieldContent fc, int position, StoreInstruction store | + store.getSourceValue().getUnconvertedResultExpression() = + aggr.getFieldExpr(fc.getField(), position) and + node1.asInstruction() = store and + // This is the last field write from the aggregate initialization. + not exists(aggr.getFieldExpr(_, position + 1)) and + storeStep(node1, fc, this) + ) + } + + ClassAggregateLiteral getClassAggregateLiteral() { result = aggr } + } + + private predicate exprNodeShouldBePostUpdateNode(Node node, Expr e, int n) { + node.(ClassAggregateInitializerPostUpdateNode).getClassAggregateLiteral() = e and + n = 0 + } + /** Holds if `node` should be an `IndirectInstruction` that maps `node.asIndirectExpr()` to `e`. */ private predicate indirectExprNodeShouldBeIndirectInstruction( IndirectInstruction node, Expr e, int n, int indirectionIndex @@ -294,7 +329,8 @@ private module Cached { exprNodeShouldBeInstruction(_, e, n) or exprNodeShouldBeOperand(_, e, n) or exprNodeShouldBeIndirectOutNode(_, e, n) or - exprNodeShouldBeIndirectOperand(_, e, n) + exprNodeShouldBeIndirectOperand(_, e, n) or + exprNodeShouldBePostUpdateNode(_, e, n) } private class InstructionExprNode extends ExprNodeBase, InstructionNode { @@ -442,6 +478,12 @@ private module Cached { final override Expr getConvertedExpr(int n) { exprNodeShouldBeIndirectOperand(this, result, n) } } + private class PostUpdateExprNode extends ExprNodeBase instanceof PostUpdateNode { + PostUpdateExprNode() { exprNodeShouldBePostUpdateNode(this, _, _) } + + final override Expr getConvertedExpr(int n) { exprNodeShouldBePostUpdateNode(this, result, n) } + } + /** * An expression, viewed as a node in a data flow graph. */ From c3c6bb6e607387430049a269e1d51434b8d99420 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 May 2025 16:45:23 +0100 Subject: [PATCH 425/656] C++: Accept test changes. --- cpp/ql/test/library-tests/dataflow/asExpr/test.cpp | 14 +++++++------- .../dataflow/dataflow-tests/localFlow-ir.expected | 2 +- .../dataflow/fields/ir-path-flow.expected | 12 ++++++------ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp b/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp index 5835abb297d..c81b86aa8ae 100644 --- a/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp @@ -28,13 +28,13 @@ struct S { }; void test_aggregate_literal() { - S s1 = {1, 2}; // $ asExpr=1 asExpr=2 - const S s2 = {3, 4}; // $ asExpr=3 asExpr=4 - S s3 = (S){5, 6}; // $ asExpr=5 asExpr=6 - const S s4 = (S){7, 8}; // $ asExpr=7 asExpr=8 + S s1 = {1, 2}; // $ asExpr=1 asExpr=2 asExpr={...} + const S s2 = {3, 4}; // $ asExpr=3 asExpr=4 asExpr={...} + S s3 = (S){5, 6}; // $ asExpr=5 asExpr=6 asExpr={...} + const S s4 = (S){7, 8}; // $ asExpr=7 asExpr=8 asExpr={...} - S s5 = {.a = 1, .b = 2}; // $ asExpr=1 asExpr=2 + S s5 = {.a = 1, .b = 2}; // $ asExpr=1 asExpr=2 asExpr={...} - int xs[] = {1, 2, 3}; // $ asExpr=1 asExpr=2 asExpr=3 - const int ys[] = {[0] = 4, [1] = 5, [0] = 6}; // $ asExpr=4 asExpr=5 asExpr=6 + int xs[] = {1, 2, 3}; // $ asExpr=1 asExpr=2 asExpr=3 MISSING: asExpr={...} + const int ys[] = {[0] = 4, [1] = 5, [0] = 6}; // $ asExpr=4 asExpr=5 asExpr=6 MISSING: asExpr={...} } \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/localFlow-ir.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/localFlow-ir.expected index 513c23e3c6e..f41def01315 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/localFlow-ir.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/localFlow-ir.expected @@ -17,7 +17,6 @@ | example.c:17:11:17:16 | *definition of coords | example.c:17:11:17:16 | *definition of coords | | example.c:17:11:17:16 | *definition of coords | example.c:17:11:17:16 | *definition of coords | | example.c:17:11:17:16 | *definition of coords | example.c:24:13:24:18 | *coords | -| example.c:17:11:17:16 | *definition of coords [post update] | example.c:17:11:17:16 | *definition of coords | | example.c:17:11:17:16 | *definition of coords [post update] | example.c:24:13:24:18 | *coords | | example.c:17:11:17:16 | definition of coords | example.c:17:11:17:16 | *definition of coords | | example.c:17:11:17:16 | definition of coords | example.c:17:11:17:16 | definition of coords | @@ -27,6 +26,7 @@ | example.c:17:11:17:16 | definition of coords | example.c:24:13:24:18 | coords | | example.c:17:11:17:16 | definition of coords [post update] | example.c:17:11:17:16 | definition of coords | | example.c:17:11:17:16 | definition of coords [post update] | example.c:24:13:24:18 | coords | +| example.c:17:11:17:16 | {...} | example.c:17:11:17:16 | *definition of coords | | example.c:17:19:17:22 | {...} | example.c:17:19:17:22 | {...} | | example.c:17:21:17:21 | 0 | example.c:17:21:17:21 | 0 | | example.c:19:6:19:6 | *b | example.c:15:37:15:37 | *b | diff --git a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected index 43725bb4524..6852a5dd3cd 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected @@ -863,12 +863,12 @@ edges | struct_init.c:24:10:24:12 | absink output argument [a] | struct_init.c:28:5:28:7 | *& ... [a] | provenance | | | struct_init.c:26:16:26:20 | *definition of outer [nestedAB, a] | struct_init.c:31:8:31:12 | *outer [nestedAB, a] | provenance | | | struct_init.c:26:16:26:20 | *definition of outer [nestedAB, a] | struct_init.c:36:11:36:15 | *outer [nestedAB, a] | provenance | | -| struct_init.c:26:16:26:20 | *definition of outer [post update] [*pointerAB, a] | struct_init.c:33:8:33:12 | *outer [*pointerAB, a] | provenance | | | struct_init.c:26:16:26:20 | *definition of outer [post update] [nestedAB, a] | struct_init.c:26:16:26:20 | *definition of outer [nestedAB, a] | provenance | | +| struct_init.c:26:16:26:20 | {...} [*pointerAB, a] | struct_init.c:33:8:33:12 | *outer [*pointerAB, a] | provenance | | | struct_init.c:26:23:29:3 | *{...} [post update] [a] | struct_init.c:26:16:26:20 | *definition of outer [post update] [nestedAB, a] | provenance | | | struct_init.c:27:7:27:16 | call to user_input | struct_init.c:26:23:29:3 | *{...} [post update] [a] | provenance | | | struct_init.c:27:7:27:16 | call to user_input | struct_init.c:27:7:27:16 | call to user_input | provenance | | -| struct_init.c:28:5:28:7 | *& ... [a] | struct_init.c:26:16:26:20 | *definition of outer [post update] [*pointerAB, a] | provenance | | +| struct_init.c:28:5:28:7 | *& ... [a] | struct_init.c:26:16:26:20 | {...} [*pointerAB, a] | provenance | | | struct_init.c:31:8:31:12 | *outer [nestedAB, a] | struct_init.c:31:14:31:21 | *nestedAB [a] | provenance | | | struct_init.c:31:14:31:21 | *nestedAB [a] | struct_init.c:31:23:31:23 | a | provenance | | | struct_init.c:33:8:33:12 | *outer [*pointerAB, a] | struct_init.c:33:14:33:22 | *pointerAB [a] | provenance | | @@ -879,8 +879,8 @@ edges | struct_init.c:40:13:40:14 | *definition of ab [post update] [a] | struct_init.c:40:13:40:14 | *definition of ab [a] | provenance | | | struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:13:40:14 | *definition of ab [post update] [a] | provenance | | | struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:20:40:29 | call to user_input | provenance | | -| struct_init.c:41:16:41:20 | *definition of outer [post update] [*pointerAB, a] | struct_init.c:46:10:46:14 | *outer [*pointerAB, a] | provenance | | -| struct_init.c:43:5:43:7 | *& ... [a] | struct_init.c:41:16:41:20 | *definition of outer [post update] [*pointerAB, a] | provenance | | +| struct_init.c:41:16:41:20 | {...} [*pointerAB, a] | struct_init.c:46:10:46:14 | *outer [*pointerAB, a] | provenance | | +| struct_init.c:43:5:43:7 | *& ... [a] | struct_init.c:41:16:41:20 | {...} [*pointerAB, a] | provenance | | | struct_init.c:46:10:46:14 | *outer [*pointerAB, a] | struct_init.c:46:16:46:24 | *pointerAB [a] | provenance | | | struct_init.c:46:16:46:24 | *pointerAB [a] | struct_init.c:14:24:14:25 | *ab [a] | provenance | | nodes @@ -1773,8 +1773,8 @@ nodes | struct_init.c:24:10:24:12 | *& ... [a] | semmle.label | *& ... [a] | | struct_init.c:24:10:24:12 | absink output argument [a] | semmle.label | absink output argument [a] | | struct_init.c:26:16:26:20 | *definition of outer [nestedAB, a] | semmle.label | *definition of outer [nestedAB, a] | -| struct_init.c:26:16:26:20 | *definition of outer [post update] [*pointerAB, a] | semmle.label | *definition of outer [post update] [*pointerAB, a] | | struct_init.c:26:16:26:20 | *definition of outer [post update] [nestedAB, a] | semmle.label | *definition of outer [post update] [nestedAB, a] | +| struct_init.c:26:16:26:20 | {...} [*pointerAB, a] | semmle.label | {...} [*pointerAB, a] | | struct_init.c:26:23:29:3 | *{...} [post update] [a] | semmle.label | *{...} [post update] [a] | | struct_init.c:27:7:27:16 | call to user_input | semmle.label | call to user_input | | struct_init.c:27:7:27:16 | call to user_input | semmle.label | call to user_input | @@ -1791,7 +1791,7 @@ nodes | struct_init.c:40:13:40:14 | *definition of ab [post update] [a] | semmle.label | *definition of ab [post update] [a] | | struct_init.c:40:20:40:29 | call to user_input | semmle.label | call to user_input | | struct_init.c:40:20:40:29 | call to user_input | semmle.label | call to user_input | -| struct_init.c:41:16:41:20 | *definition of outer [post update] [*pointerAB, a] | semmle.label | *definition of outer [post update] [*pointerAB, a] | +| struct_init.c:41:16:41:20 | {...} [*pointerAB, a] | semmle.label | {...} [*pointerAB, a] | | struct_init.c:43:5:43:7 | *& ... [a] | semmle.label | *& ... [a] | | struct_init.c:46:10:46:14 | *outer [*pointerAB, a] | semmle.label | *outer [*pointerAB, a] | | struct_init.c:46:16:46:24 | *pointerAB [a] | semmle.label | *pointerAB [a] | From f731d0e630d9cfe9fc1773e41c88f6394d2e61ec Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 May 2025 17:39:51 +0100 Subject: [PATCH 426/656] C++: Add change note. --- .../lib/change-notes/2025-05-15-class-aggregate-literals.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2025-05-15-class-aggregate-literals.md diff --git a/cpp/ql/lib/change-notes/2025-05-15-class-aggregate-literals.md b/cpp/ql/lib/change-notes/2025-05-15-class-aggregate-literals.md new file mode 100644 index 00000000000..ea821d7d48d --- /dev/null +++ b/cpp/ql/lib/change-notes/2025-05-15-class-aggregate-literals.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Fixed a problem where `asExpr()` on `DataFlow::Node` would never return `ClassAggregateLiteral`s. \ No newline at end of file From d31ddad832d8a451b3937a9a83103c9f8586e0f2 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Thu, 15 May 2025 18:04:57 +0100 Subject: [PATCH 427/656] C++: Small refactoring. --- .../code/cpp/ir/dataflow/internal/DataFlowPrivate.qll | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll index f0a0fd7cdb3..073d7a4bbc9 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll @@ -1143,6 +1143,10 @@ private newtype TDataFlowCall = FlowSummaryImpl::Private::summaryCallbackRange(c, receiver) } +private predicate summarizedCallableIsManual(SummarizedCallable sc) { + sc.asSummarizedCallable().applyManualModel() +} + /** * A function call relevant for data flow. This includes calls from source * code and calls inside library callables with a flow summary. @@ -1178,13 +1182,13 @@ class DataFlowCall extends TDataFlowCall { // target not exists(SummarizedCallable sc | sc.asSummarizedCallable() = target and - sc.asSummarizedCallable().applyManualModel() + summarizedCallableIsManual(sc) ) and result.asSourceCallable() = target or // When there is no function body, or when we have a manual model then // we dispatch to the summary. - (not target.hasDefinition() or result.asSummarizedCallable().applyManualModel()) and + (not target.hasDefinition() or summarizedCallableIsManual(result)) and result.asSummarizedCallable() = target ) } From 8521becbd57d51abd00869a399b057c4871ec2e2 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 15 May 2025 20:40:41 +0200 Subject: [PATCH 428/656] Rust: Fix semantic merge conflict --- rust/ql/test/extractor-tests/macro_expansion/PrintAst.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/test/extractor-tests/macro_expansion/PrintAst.expected b/rust/ql/test/extractor-tests/macro_expansion/PrintAst.expected index 43410dfcd8e..3881faafeac 100644 --- a/rust/ql/test/extractor-tests/macro_expansion/PrintAst.expected +++ b/rust/ql/test/extractor-tests/macro_expansion/PrintAst.expected @@ -110,7 +110,7 @@ macro_expansion.rs: # 2| getPath(): [Path] foo # 2| getSegment(): [PathSegment] foo # 2| getIdentifier(): [NameRef] foo -# 1| getTailExpr(): [LiteralExpr] 0 +# 1| getTailExpr(): [IntegerLiteralExpr] 0 # 1| getName(): [Name] foo___rust_ctor___ctor # 1| getRetType(): [RetTypeRepr] RetTypeRepr # 1| getTypeRepr(): [PathTypeRepr] usize From e11ab0f125458f76567329733fbb010c75bf2419 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 16 May 2025 12:06:25 +0100 Subject: [PATCH 429/656] Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll index 146967fa653..5514bd80eee 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll @@ -269,7 +269,7 @@ private module Cached { * ``` * i.getUnconvertedResultExpression() instanceof ClassAggregateLiteral * ``` - * and thus we don't automaticallt get a dataflow node for which: + * and thus we don't automatically get a dataflow node for which: * ``` * node.asExpr() instanceof ClassAggregateLiteral * ``` From d66c12b7a928f515218b3b15bfbf977447e63b00 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 15 May 2025 15:19:55 +0200 Subject: [PATCH 430/656] Rust: Add MaD bulk generation script --- .gitignore | 1 + Cargo.toml | 1 + .../models-as-data/rust_bulk_generate_mad.py | 335 ++++++++++++++++++ 3 files changed, 337 insertions(+) create mode 100644 misc/scripts/models-as-data/rust_bulk_generate_mad.py diff --git a/.gitignore b/.gitignore index f621d5ed048..bbb60c3eccd 100644 --- a/.gitignore +++ b/.gitignore @@ -62,6 +62,7 @@ node_modules/ # Temporary folders for working with generated models .model-temp +/mad-generation-build # bazel-built in-tree extractor packs /*/extractor-pack diff --git a/Cargo.toml b/Cargo.toml index d7406677248..38487d3b858 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ members = [ "rust/ast-generator", "rust/autobuild", ] +exclude = ["mad-generation-build"] [patch.crates-io] # patch for build script bug preventing bazel build diff --git a/misc/scripts/models-as-data/rust_bulk_generate_mad.py b/misc/scripts/models-as-data/rust_bulk_generate_mad.py new file mode 100644 index 00000000000..76d67b1fba1 --- /dev/null +++ b/misc/scripts/models-as-data/rust_bulk_generate_mad.py @@ -0,0 +1,335 @@ +""" +Experimental script for bulk generation of MaD models based on a list of projects. + +Currently the script only targets Rust. +""" + +import os.path +import subprocess +import sys +from typing import NotRequired, TypedDict, List +from concurrent.futures import ThreadPoolExecutor, as_completed +import time + +import generate_mad as mad + +gitroot = ( + subprocess.check_output(["git", "rev-parse", "--show-toplevel"]) + .decode("utf-8") + .strip() +) +build_dir = os.path.join(gitroot, "mad-generation-build") + + +def path_to_mad_directory(language: str, name: str) -> str: + return os.path.join(gitroot, f"{language}/ql/lib/ext/generated/{name}") + + +# A project to generate models for +class Project(TypedDict): + """ + Type definition for Rust projects to model. + + Attributes: + name: The name of the project + git_repo: URL to the git repository + git_tag: Optional Git tag to check out + """ + + name: str + git_repo: str + git_tag: NotRequired[str] + + +# List of Rust projects to generate models for. +projects: List[Project] = [ + { + "name": "libc", + "git_repo": "https://github.com/rust-lang/libc", + "git_tag": "0.2.172", + }, + { + "name": "log", + "git_repo": "https://github.com/rust-lang/log", + "git_tag": "0.4.27", + }, + { + "name": "memchr", + "git_repo": "https://github.com/BurntSushi/memchr", + "git_tag": "2.7.4", + }, + { + "name": "once_cell", + "git_repo": "https://github.com/matklad/once_cell", + "git_tag": "v1.21.3", + }, + { + "name": "rand", + "git_repo": "https://github.com/rust-random/rand", + "git_tag": "0.9.1", + }, + { + "name": "smallvec", + "git_repo": "https://github.com/servo/rust-smallvec", + "git_tag": "v1.15.0", + }, + { + "name": "serde", + "git_repo": "https://github.com/serde-rs/serde", + "git_tag": "v1.0.219", + }, + { + "name": "tokio", + "git_repo": "https://github.com/tokio-rs/tokio", + "git_tag": "tokio-1.45.0", + }, + { + "name": "reqwest", + "git_repo": "https://github.com/seanmonstar/reqwest", + "git_tag": "v0.12.15", + }, + { + "name": "rocket", + "git_repo": "https://github.com/SergioBenitez/Rocket", + "git_tag": "v0.5.1", + }, + { + "name": "actix-web", + "git_repo": "https://github.com/actix/actix-web", + "git_tag": "web-v4.11.0", + }, + { + "name": "hyper", + "git_repo": "https://github.com/hyperium/hyper", + "git_tag": "v1.6.0", + }, + { + "name": "clap", + "git_repo": "https://github.com/clap-rs/clap", + "git_tag": "v4.5.38", + }, +] + + +def clone_project(project: Project) -> str: + """ + Shallow clone a project into the build directory. + + Args: + project: A dictionary containing project information with 'name', 'git_repo', and optional 'git_tag' keys. + + Returns: + The path to the cloned project directory. + """ + name = project["name"] + repo_url = project["git_repo"] + git_tag = project.get("git_tag") + + # Determine target directory + target_dir = os.path.join(build_dir, name) + + # Clone only if directory doesn't already exist + if not os.path.exists(target_dir): + if git_tag: + print(f"Cloning {name} from {repo_url} at tag {git_tag}") + else: + print(f"Cloning {name} from {repo_url}") + + subprocess.check_call( + [ + "git", + "clone", + "--quiet", + "--depth", + "1", # Shallow clone + *( + ["--branch", git_tag] if git_tag else [] + ), # Add branch if tag is provided + repo_url, + target_dir, + ] + ) + print(f"Completed cloning {name}") + else: + print(f"Skipping cloning {name} as it already exists at {target_dir}") + + return target_dir + + +def clone_projects(projects: List[Project]) -> List[tuple[Project, str]]: + """ + Clone all projects in parallel. + + Args: + projects: List of projects to clone + + Returns: + List of (project, project_dir) pairs in the same order as the input projects + """ + start_time = time.time() + max_workers = min(8, len(projects)) # Use at most 8 threads + project_dirs_map = {} # Map to store results by project name + + with ThreadPoolExecutor(max_workers=max_workers) as executor: + # Start cloning tasks and keep track of them + future_to_project = { + executor.submit(clone_project, project): project for project in projects + } + + # Process results as they complete + for future in as_completed(future_to_project): + project = future_to_project[future] + try: + project_dir = future.result() + project_dirs_map[project["name"]] = (project, project_dir) + except Exception as e: + print(f"ERROR: Failed to clone {project['name']}: {e}") + + if len(project_dirs_map) != len(projects): + failed_projects = [ + project["name"] + for project in projects + if project["name"] not in project_dirs_map + ] + print( + f"ERROR: Only {len(project_dirs_map)} out of {len(projects)} projects were cloned successfully. Failed projects: {', '.join(failed_projects)}" + ) + sys.exit(1) + + project_dirs = [project_dirs_map[project["name"]] for project in projects] + + clone_time = time.time() - start_time + print(f"Cloning completed in {clone_time:.2f} seconds") + return project_dirs + + +def build_database(project: Project, project_dir: str) -> str | None: + """ + Build a CodeQL database for a project. + + Args: + project: A dictionary containing project information with 'name' and 'git_repo' keys. + project_dir: The directory containing the project source code. + + Returns: + The path to the created database directory. + """ + name = project["name"] + + # Create database directory path + database_dir = os.path.join(build_dir, f"{name}-db") + + # Only build the database if it doesn't already exist + if not os.path.exists(database_dir): + print(f"Building CodeQL database for {name}...") + try: + subprocess.check_call( + [ + "codeql", + "database", + "create", + "--language=rust", + "--source-root=" + project_dir, + "--overwrite", + "-O", + "cargo_features='*'", + "--", + database_dir, + ] + ) + print(f"Successfully created database at {database_dir}") + except subprocess.CalledProcessError as e: + print(f"Failed to create database for {name}: {e}") + return None + else: + print( + f"Skipping database creation for {name} as it already exists at {database_dir}" + ) + + return database_dir + + +def generate_models(project: Project, database_dir: str) -> None: + """ + Generate models for a project. + + Args: + project: A dictionary containing project information with 'name' and 'git_repo' keys. + project_dir: The directory containing the project source code. + """ + name = project["name"] + + generator = mad.Generator("rust") + generator.generateSinks = True + generator.generateSources = True + generator.generateSummaries = True + generator.setenvironment(database=database_dir, folder=name) + generator.run() + + +def main() -> None: + """ + Process all projects in three distinct phases: + 1. Clone projects (in parallel) + 2. Build databases for projects + 3. Generate models for successful database builds + """ + + # Create build directory if it doesn't exist + if not os.path.exists(build_dir): + os.makedirs(build_dir) + + # Check if any of the MaD directories contain working directory changes in git + for project in projects: + mad_dir = path_to_mad_directory("rust", project["name"]) + if os.path.exists(mad_dir): + git_status_output = subprocess.check_output( + ["git", "status", "-s", mad_dir], text=True + ).strip() + if git_status_output: + print( + f"""ERROR: Working directory changes detected in {mad_dir}. + +Before generating new models, the existing models are deleted. + +To avoid loss of data, please commit your changes.""" + ) + sys.exit(1) + + # Phase 1: Clone projects in parallel + print("=== Phase 1: Cloning projects ===") + project_dirs = clone_projects(projects) + + # Phase 2: Build databases for all projects + print("\n=== Phase 2: Building databases ===") + database_results = [ + (project, build_database(project, project_dir)) + for project, project_dir in project_dirs + ] + + # Phase 3: Generate models for all projects + print("\n=== Phase 3: Generating models ===") + + failed_builds = [ + project["name"] for project, db_dir in database_results if db_dir is None + ] + if failed_builds: + print( + f"ERROR: {len(failed_builds)} database builds failed: {', '.join(failed_builds)}" + ) + sys.exit(1) + + # Delete the MaD directory for each project + for project, database_dir in database_results: + mad_dir = path_to_mad_directory("rust", project["name"]) + if os.path.exists(mad_dir): + print(f"Deleting existing MaD directory at {mad_dir}") + subprocess.check_call(["rm", "-rf", mad_dir]) + + for project, database_dir in database_results: + if database_dir is not None: + generate_models(project, database_dir) + + +if __name__ == "__main__": + main() From 9ee3e4cdf3a5f0ee5df1fe81e7ec8b5af2abf6d0 Mon Sep 17 00:00:00 2001 From: Taus Date: Fri, 16 May 2025 13:50:22 +0200 Subject: [PATCH 431/656] Python: Update change note Co-authored-by: yoff --- .../change-notes/2025-04-30-extract-hidden-files-by-default.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md b/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md index 32b272215af..fcbb0a209ce 100644 --- a/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md +++ b/python/ql/lib/change-notes/2025-04-30-extract-hidden-files-by-default.md @@ -2,4 +2,4 @@ category: minorAnalysis --- -- The Python extractor now extracts files in hidden directories by default. If you would like to skip hidden files, add `paths-ignore: ["**/.*/**"]` to your [Code Scanning config](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#specifying-directories-to-scan). When using the CodeQL CLI for extraction, specify the configuration (creating the configuration file if necessary) using the `--codescanning-config` option. +- The Python extractor now extracts files in hidden directories by default. If you would like to skip files in hidden directories, add `paths-ignore: ["**/.*/**"]` to your [Code Scanning config](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#specifying-directories-to-scan). If you would like to skip all hidden files, you can use `paths-ignore: ["**/.*"]`. When using the CodeQL CLI for extraction, specify the configuration (creating the configuration file if necessary) using the `--codescanning-config` option. From fb8b79edbf6f9f5bdd36e6ff2d5bf62a40f21383 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 15 May 2025 15:22:32 +0200 Subject: [PATCH 432/656] Rust: Skip model generation for functions with semicolon in canonical path --- .../src/utils/modelgenerator/internal/CaptureModels.qll | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll index f9b4eee664d..58f90cc33a0 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -15,9 +15,15 @@ private predicate relevant(Function api) { // Only include functions that have a resolved path. api.hasCrateOrigin() and api.hasExtendedCanonicalPath() and + // A canonical path can contain `;` as the syntax for array types use `;`. For + // instance `<[Foo; 1] as Bar>::baz`. This does not work with the shared model + // generator and it is not clear if this will also be the case when we move to + // QL created canoonical paths, so for now we just exclude functions with + // `;`s. + not exists(api.getExtendedCanonicalPath().indexOf(";")) and ( // This excludes closures (these are not exported API endpoints) and - // functions without a `pub` visiblity. A function can be `pub` without + // functions without a `pub` visibility. A function can be `pub` without // ultimately being exported by a crate, so this is an overapproximation. api.hasVisibility() or From 41e76e20b536fae2d69743d4d4d723af014df04e Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 16 May 2025 13:36:56 +0200 Subject: [PATCH 433/656] Rust: Add models auto-generated in bulk --- ....com-actix-actix-web-actix-files.model.yml | 58 ++ ...-actix-actix-web-actix-http-test.model.yml | 40 + ...b.com-actix-actix-web-actix-http.model.yml | 227 ++++++ ...-actix-actix-web-actix-multipart.model.yml | 43 + ...com-actix-actix-web-actix-router.model.yml | 35 + ...b.com-actix-actix-web-actix-test.model.yml | 60 ++ ...actix-actix-web-actix-web-actors.model.yml | 21 + ...ctix-actix-web-actix-web-codegen.model.yml | 25 + ...ub.com-actix-actix-web-actix-web.model.yml | 385 +++++++++ ...s-github.com-actix-actix-web-awc.model.yml | 226 ++++++ ...tps-github.com-clap-rs-clap-clap.model.yml | 17 + ...thub.com-clap-rs-clap-clap_bench.model.yml | 10 + ...ub.com-clap-rs-clap-clap_builder.model.yml | 394 +++++++++ ...b.com-clap-rs-clap-clap_complete.model.yml | 78 ++ ...ap-rs-clap-clap_complete_nushell.model.yml | 13 + ...hub.com-clap-rs-clap-clap_derive.model.yml | 55 ++ ...github.com-clap-rs-clap-clap_lex.model.yml | 11 + ...hub.com-clap-rs-clap-clap_mangen.model.yml | 19 + ...-github.com-hyperium-hyper-hyper.model.yml | 254 ++++++ ...hub.com-rust-lang-libc-libc-test.model.yml | 19 + ...s-github.com-rust-lang-libc-libc.model.yml | 28 + ...tps-github.com-rust-lang-log-log.model.yml | 59 ++ ...hub.com-BurntSushi-memchr-memchr.model.yml | 168 ++++ .../generated/memchr/repo-shared.model.yml | 27 + ....com-matklad-once_cell-once_cell.model.yml | 21 + .../ext/generated/rand/repo-benches.model.yml | 9 + ...github.com-rust-random-rand-rand.model.yml | 63 ++ ...com-rust-random-rand-rand_chacha.model.yml | 16 + ...b.com-rust-random-rand-rand_core.model.yml | 15 + ...ub.com-rust-random-rand-rand_pcg.model.yml | 10 + ....com-seanmonstar-reqwest-reqwest.model.yml | 378 ++++++++- ...ps-github.com-rwf2-Rocket-rocket.model.yml | 481 +++++++++++ ...b.com-rwf2-Rocket-rocket_codegen.model.yml | 62 ++ ...thub.com-rwf2-Rocket-rocket_http.model.yml | 215 +++++ ...contrib-db_pools-rocket_db_pools.model.yml | 14 + ...n_templates-rocket_dyn_templates.model.yml | 22 + ...nc_db_pools-rocket_sync_db_pools.model.yml | 10 + ...t-tree-v0.5-contrib-ws-rocket_ws.model.yml | 12 + .../generated/rocket/repo-pastebin.model.yml | 8 + .../ext/generated/rocket/repo-tls.model.yml | 7 + .../ext/generated/rocket/repo-todo.model.yml | 7 + ...-github.com-serde-rs-serde-serde.model.yml | 207 +++++ ....com-serde-rs-serde-serde_derive.model.yml | 79 ++ .../serde/repo-serde_test_suite.model.yml | 33 + ...com-servo-rust-smallvec-smallvec.model.yml | 42 + .../generated/tokio/repo-benches.model.yml | 7 + ....com-tokio-rs-tokio-tokio-macros.model.yml | 10 + ....com-tokio-rs-tokio-tokio-stream.model.yml | 90 +++ ...ub.com-tokio-rs-tokio-tokio-test.model.yml | 24 + ...ub.com-tokio-rs-tokio-tokio-util.model.yml | 206 +++++ ...-github.com-tokio-rs-tokio-tokio.model.yml | 752 ++++++++++++++++++ .../dataflow/local/DataFlowStep.expected | 498 ++++++++++++ 52 files changed, 5568 insertions(+), 2 deletions(-) create mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-files.model.yml create mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http-test.model.yml create mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http.model.yml create mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-multipart.model.yml create mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-router.model.yml create mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-test.model.yml create mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-actors.model.yml create mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-codegen.model.yml create mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web.model.yml create mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-awc.model.yml create mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap.model.yml create mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_bench.model.yml create mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_builder.model.yml create mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete.model.yml create mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete_nushell.model.yml create mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_derive.model.yml create mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_lex.model.yml create mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_mangen.model.yml create mode 100644 rust/ql/lib/ext/generated/hyper/repo-https-github.com-hyperium-hyper-hyper.model.yml create mode 100644 rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc-test.model.yml create mode 100644 rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc.model.yml create mode 100644 rust/ql/lib/ext/generated/log/repo-https-github.com-rust-lang-log-log.model.yml create mode 100644 rust/ql/lib/ext/generated/memchr/repo-https-github.com-BurntSushi-memchr-memchr.model.yml create mode 100644 rust/ql/lib/ext/generated/memchr/repo-shared.model.yml create mode 100644 rust/ql/lib/ext/generated/once_cell/repo-https-github.com-matklad-once_cell-once_cell.model.yml create mode 100644 rust/ql/lib/ext/generated/rand/repo-benches.model.yml create mode 100644 rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand.model.yml create mode 100644 rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_chacha.model.yml create mode 100644 rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_core.model.yml create mode 100644 rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_pcg.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_codegen.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_http.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-db_pools-rocket_db_pools.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-dyn_templates-rocket_dyn_templates.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-sync_db_pools-rocket_sync_db_pools.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-ws-rocket_ws.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket/repo-pastebin.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket/repo-tls.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket/repo-todo.model.yml create mode 100644 rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde.model.yml create mode 100644 rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde_derive.model.yml create mode 100644 rust/ql/lib/ext/generated/serde/repo-serde_test_suite.model.yml create mode 100644 rust/ql/lib/ext/generated/smallvec/repo-https-github.com-servo-rust-smallvec-smallvec.model.yml create mode 100644 rust/ql/lib/ext/generated/tokio/repo-benches.model.yml create mode 100644 rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-macros.model.yml create mode 100644 rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-stream.model.yml create mode 100644 rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-test.model.yml create mode 100644 rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-util.model.yml create mode 100644 rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio.model.yml diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-files.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-files.model.yml new file mode 100644 index 00000000000..ed7c81cde18 --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-files.model.yml @@ -0,0 +1,58 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/actix/actix-web:actix-files", "::new", "Argument[0]", "ReturnValue.Field[crate::directory::Directory::base]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::new", "Argument[1]", "ReturnValue.Field[crate::directory::Directory::path]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::default_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::disable_content_disposition", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::files_listing_renderer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::index_file", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::method_guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::mime_override", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::path_filter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::prefer_utf8", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::redirect_to_slash_directory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::show_files_listing", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::use_etag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::use_guards", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::use_hidden_files", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::use_last_modified", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::content_disposition", "Argument[self].Field[crate::named::NamedFile::content_disposition]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::content_encoding", "Argument[self].Field[crate::named::NamedFile::encoding]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::content_type", "Argument[self].Field[crate::named::NamedFile::content_type]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::disable_content_disposition", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::etag", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::file", "Argument[self].Field[crate::named::NamedFile::file]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::from_file", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::named::NamedFile::file]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::last_modified", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::metadata", "Argument[self].Field[crate::named::NamedFile::md]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::modified", "Argument[self].Field[crate::named::NamedFile::modified]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::path", "Argument[self].Field[crate::named::NamedFile::path]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::path", "Argument[self].Field[crate::named::NamedFile::path]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::prefer_utf8", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_disposition", "Argument[0]", "Argument[self].Field[crate::named::NamedFile::content_disposition]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_disposition", "Argument[0]", "ReturnValue.Field[crate::named::NamedFile::content_disposition]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_disposition", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_encoding", "Argument[0]", "Argument[self].Field[crate::named::NamedFile::encoding].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_encoding", "Argument[0]", "ReturnValue.Field[crate::named::NamedFile::encoding].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_encoding", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_type", "Argument[0]", "Argument[self].Field[crate::named::NamedFile::content_type]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_type", "Argument[0]", "ReturnValue.Field[crate::named::NamedFile::content_type]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_status_code", "Argument[0]", "Argument[self].Field[crate::named::NamedFile::status_code]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_status_code", "Argument[0]", "ReturnValue.Field[crate::named::NamedFile::status_code]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::set_status_code", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::use_etag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::use_last_modified", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "::deref", "Argument[self].Field[crate::service::FilesService(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "crate::chunked::new_chunked_read", "Argument[0]", "ReturnValue.Field[crate::chunked::ChunkedReadFile::size]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "crate::chunked::new_chunked_read", "Argument[1]", "ReturnValue.Field[crate::chunked::ChunkedReadFile::offset]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "crate::directory::directory_listing", "Argument[1].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-files", "crate::encoding::equiv_utf8_text", "Argument[0]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http-test.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http-test.model.yml new file mode 100644 index 00000000000..e76569692ab --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http-test.model.yml @@ -0,0 +1,40 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::addr", "Argument[self].Field[crate::TestServer::addr]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::delete", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::delete", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::get", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::get", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::head", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::head", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::options", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::options", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::patch", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::patch", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::post", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::post", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::put", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::put", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::request", "Argument[0]", "ReturnValue.Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::request", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::request", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::sdelete", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::sdelete", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::sget", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::sget", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::shead", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::shead", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::soptions", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::soptions", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::spatch", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::spatch", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::spost", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::spost", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::sput", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::sput", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::surl", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http-test", "::url", "Argument[0]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http.model.yml new file mode 100644 index 00000000000..f1e7d73e129 --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http.model.yml @@ -0,0 +1,227 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/actix/actix-web:actix-http", "<&crate::header::value::HeaderValue as crate::header::into_value::TryIntoHeaderValue>::try_into_value", "Argument[self].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "<&str as crate::header::into_value::TryIntoHeaderValue>::try_into_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from_io", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::body::body_stream::BodyStream::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::boxed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::try_into_bytes", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::body::message_body::MessageBodyMapErr::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[1]", "ReturnValue.Field[crate::body::message_body::MessageBodyMapErr::mapper].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::size", "Argument[self].Field[crate::body::sized_stream::SizedStream::size]", "ReturnValue.Field[crate::body::size::BodySize::Sized(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::body::sized_stream::SizedStream::size]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[1]", "ReturnValue.Field[crate::body::sized_stream::SizedStream::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::client_disconnect_timeout", "Argument[0]", "Argument[self].Field[crate::builder::HttpServiceBuilder::client_disconnect_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::client_disconnect_timeout", "Argument[0]", "ReturnValue.Field[crate::builder::HttpServiceBuilder::client_disconnect_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::client_disconnect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::client_request_timeout", "Argument[0]", "Argument[self].Field[crate::builder::HttpServiceBuilder::client_request_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::client_request_timeout", "Argument[0]", "ReturnValue.Field[crate::builder::HttpServiceBuilder::client_request_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::client_request_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::local_addr", "Argument[0]", "Argument[self].Field[crate::builder::HttpServiceBuilder::local_addr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::local_addr", "Argument[0]", "ReturnValue.Field[crate::builder::HttpServiceBuilder::local_addr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::local_addr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::secure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::upgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::try_into_bytes", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from_headers", "Argument[0]", "ReturnValue.Field[crate::encoding::decoder::Decoder::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::encoding::decoder::Decoder::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::try_into_bytes", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::response", "Argument[2]", "ReturnValue.Field[crate::encoding::encoder::Encoder::body].Field[crate::encoding::encoder::EncoderBody::Stream::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::try_into_bytes", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[crate::encoding::encoder::EncoderError::Io(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[crate::error::DispatchError::H2(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[crate::error::DispatchError::Io(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[crate::error::DispatchError::Parse(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::with_cause", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::error::ParseError::Io(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::error::ParseError::Uri(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::error::ParseError::Utf8(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::error::PayloadError::Http2Payload(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::error::PayloadError::Incomplete(0)].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::error::PayloadError::Incomplete(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[crate::error::PayloadError::Http2Payload(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[crate::error::PayloadError::Incomplete(0)].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[crate::error::PayloadError::Io(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::finish", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::finish", "Argument[self].Field[crate::extensions::NoOpHasher(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::write_u64", "Argument[0]", "Argument[self].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::write_u64", "Argument[0]", "Argument[self].Field[crate::extensions::NoOpHasher(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::h1::Message::Item(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::chunk", "Argument[self].Field[crate::h1::Message::Chunk(0)].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::message", "Argument[self].Field[crate::h1::Message::Item(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::into_payload_codec", "Argument[self].Field[crate::h1::client::ClientCodec::inner]", "ReturnValue.Field[crate::h1::client::ClientPayloadCodec::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::h1::client::ClientCodec::inner].Field[crate::h1::client::ClientCodecInner::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::into_message_codec", "Argument[self].Field[crate::h1::client::ClientPayloadCodec::inner]", "ReturnValue.Field[crate::h1::client::ClientCodec::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::config", "Argument[self].Field[crate::h1::codec::Codec::config]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::h1::codec::Codec::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::length", "Argument[0]", "ReturnValue.Field[crate::h1::decoder::PayloadDecoder::kind].Field[crate::h1::decoder::Kind::Length(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::chunk", "Argument[self].Field[crate::h1::decoder::PayloadItem::Chunk(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::unwrap", "Argument[self].Field[crate::h1::decoder::PayloadType::Payload(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::encode", "Argument[self].Field[crate::h1::encoder::TransferEncoding::kind].Field[crate::h1::encoder::TransferEncodingKind::Chunked(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::length", "Argument[0]", "ReturnValue.Field[crate::h1::encoder::TransferEncoding::kind].Field[crate::h1::encoder::TransferEncodingKind::Length(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::expect", "Argument[0]", "ReturnValue.Field[crate::h1::service::H1Service::expect]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "Argument[self].Field[crate::h1::service::H1Service::on_connect_ext]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "ReturnValue.Field[crate::h1::service::H1Service::on_connect_ext]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::upgrade", "Argument[0]", "ReturnValue.Field[crate::h1::service::H1Service::upgrade]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::with_config", "Argument[0]", "ReturnValue.Field[crate::h1::service::H1Service::cfg]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::h1::utils::SendResponse::framed].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[1].Field[crate::responses::response::Response::body]", "ReturnValue.Field[crate::h1::utils::SendResponse::body].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::h2::Payload::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::h2::dispatcher::Dispatcher::connection]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[1]", "ReturnValue.Field[crate::h2::dispatcher::Dispatcher::flow]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[2]", "ReturnValue.Field[crate::h2::dispatcher::Dispatcher::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[3]", "ReturnValue.Field[crate::h2::dispatcher::Dispatcher::peer_addr]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "Argument[self].Field[crate::h2::service::H2Service::on_connect_ext]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "ReturnValue.Field[crate::h2::service::H2Service::on_connect_ext]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::with_config", "Argument[0]", "ReturnValue.Field[crate::h2::service::H2Service::cfg]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::call", "Argument[0].Field[1]", "ReturnValue.Field[crate::h2::service::H2ServiceHandlerResponse::state].Field[crate::h2::service::State::Handshake(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::next", "Argument[self].Field[crate::header::map::Removed::inner].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::deref", "Argument[self].Field[crate::header::map::Value::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::header::shared::http_date::HttpDate(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::max", "Argument[0]", "ReturnValue.Field[crate::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::min", "Argument[0]", "ReturnValue.Field[crate::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[1]", "ReturnValue.Field[crate::header::shared::quality_item::QualityItem::quality]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::zero", "Argument[0]", "ReturnValue.Field[crate::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::try_into_value", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[crate::option::Option::Some(0)].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::keep_alive::KeepAlive::Timeout(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::keep_alive::KeepAlive::Timeout(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::keep_alive::KeepAlive::Timeout(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::duration", "Argument[self].Field[crate::keep_alive::KeepAlive::Timeout(0)].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::normalize", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::payload::Payload::H1::payload]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::payload::Payload::H2::payload].Field[crate::h2::Payload::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::payload::Payload::H2::payload]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::payload::Payload::Stream::payload]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::take", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::with_pool", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::headers", "Argument[self].Field[crate::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::headers_mut", "Argument[self].Field[crate::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::as_ref", "Argument[self].Field[crate::requests::head::RequestHeadType::Owned(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::requests::head::RequestHeadType::Owned(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::headers", "Argument[self].Field[crate::requests::head::RequestHeadType::Owned(0)].Field[crate::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::requests::request::Request::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::headers_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::take_payload", "Argument[self].Field[crate::requests::request::Request::payload]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::head", "Argument[self].Field[crate::requests::request::Request::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::head_mut", "Argument[self].Field[crate::requests::request::Request::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::into_parts", "Argument[self].Field[crate::requests::request::Request::head]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::into_parts", "Argument[self].Field[crate::requests::request::Request::payload]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::method", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::payload", "Argument[self].Field[crate::requests::request::Request::payload]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::replace_payload", "Argument[0]", "ReturnValue.Field[0].Field[crate::requests::request::Request::payload]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::take_conn_data", "Argument[self].Field[crate::requests::request::Request::conn_data].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::take_conn_data", "Argument[self].Field[crate::requests::request::Request::conn_data]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::take_payload", "Argument[self].Field[crate::requests::request::Request::payload]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::uri", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::with_payload", "Argument[0]", "ReturnValue.Field[crate::requests::request::Request::payload]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[crate::responses::response::Response::head]", "ReturnValue.Field[crate::responses::builder::ResponseBuilder::head].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::message_body", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::message_body", "Argument[self].Field[crate::responses::builder::ResponseBuilder::head].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::no_chunking", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::reason", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::take", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::upgrade", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::deref", "Argument[self].Field[crate::responses::head::BoxedResponseHead::head].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::deref_mut", "Argument[self].Field[crate::responses::head::BoxedResponseHead::head].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::headers_mut", "Argument[self].Field[crate::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::headers", "Argument[self].Field[crate::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::headers_mut", "Argument[self].Field[crate::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::responses::head::ResponseHead::status]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::reason", "Argument[self].Field[crate::responses::head::ResponseHead::reason].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Reference", "ReturnValue.Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::status", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::body", "Argument[self].Field[crate::responses::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::drop_body", "Argument[self].Field[crate::responses::response::Response::extensions]", "ReturnValue.Field[crate::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::drop_body", "Argument[self].Field[crate::responses::response::Response::head]", "ReturnValue.Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::head", "Argument[self].Field[crate::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::head_mut", "Argument[self].Field[crate::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::into_body", "Argument[self].Field[crate::responses::response::Response::body]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::into_parts", "Argument[self].Field[crate::responses::response::Response::body]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::into_parts", "Argument[self].Field[crate::responses::response::Response::extensions]", "ReturnValue.Field[0].Field[crate::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::into_parts", "Argument[self].Field[crate::responses::response::Response::head]", "ReturnValue.Field[0].Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::map_body", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::map_body", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::map_body", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::map_into_boxed_body", "Argument[self].Field[crate::responses::response::Response::extensions]", "ReturnValue.Field[crate::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::map_into_boxed_body", "Argument[self].Field[crate::responses::response::Response::head]", "ReturnValue.Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::replace_body", "Argument[0]", "ReturnValue.Field[0].Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::replace_body", "Argument[self].Field[crate::responses::response::Response::body]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::replace_body", "Argument[self].Field[crate::responses::response::Response::extensions]", "ReturnValue.Field[0].Field[crate::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::replace_body", "Argument[self].Field[crate::responses::response::Response::head]", "ReturnValue.Field[0].Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::set_body", "Argument[0]", "ReturnValue.Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::set_body", "Argument[self].Field[crate::responses::response::Response::extensions]", "ReturnValue.Field[crate::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::set_body", "Argument[self].Field[crate::responses::response::Response::head]", "ReturnValue.Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::with_body", "Argument[1]", "ReturnValue.Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::expect", "Argument[0]", "ReturnValue.Field[crate::service::HttpService::expect]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "Argument[self].Field[crate::service::HttpService::on_connect_ext]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "ReturnValue.Field[crate::service::HttpService::on_connect_ext]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::upgrade", "Argument[0]", "ReturnValue.Field[crate::service::HttpService::upgrade]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::with_config", "Argument[0]", "ReturnValue.Field[crate::service::HttpService::cfg]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::service::HttpServiceHandler::cfg]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[4]", "ReturnValue.Field[crate::service::HttpServiceHandler::on_connect_ext]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::handshake_timeout", "Argument[0]", "ReturnValue.Field[crate::service::TlsAcceptorConfig::handshake_timeout].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::clone", "Argument[self].Field[crate::test::TestBuffer::err].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::test::TestBuffer::err].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::clone", "Argument[self].Field[crate::test::TestBuffer::err].Reference", "ReturnValue.Field[crate::test::TestBuffer::err]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::clone", "Argument[self].Field[crate::test::TestBuffer::err]", "ReturnValue.Field[crate::test::TestBuffer::err]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::set_payload", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::take", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::uri", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[crate::header::shared::http_date::HttpDate(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::decode", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::client_mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::max_size", "Argument[0]", "Argument[self].Field[crate::ws::codec::Codec::max_size]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::max_size", "Argument[0]", "ReturnValue.Field[crate::ws::codec::Codec::max_size]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::max_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::with", "Argument[0]", "ReturnValue.Field[crate::ws::dispatcher::Dispatcher::inner].Field[crate::ws::dispatcher::inner::Dispatcher::framed]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::framed", "Argument[self].Field[crate::ws::dispatcher::inner::Dispatcher::framed]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::framed_mut", "Argument[self].Field[crate::ws::dispatcher::inner::Dispatcher::framed]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[crate::ws::dispatcher::inner::Dispatcher::framed]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::service", "Argument[self].Field[crate::ws::dispatcher::inner::Dispatcher::service]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::service_mut", "Argument[self].Field[crate::ws::dispatcher::inner::Dispatcher::service]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::tx", "Argument[self].Field[crate::ws::dispatcher::inner::Dispatcher::tx].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::tx", "Argument[self].Field[crate::ws::dispatcher::inner::Dispatcher::tx]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::with_rx", "Argument[0]", "ReturnValue.Field[crate::ws::dispatcher::inner::Dispatcher::framed]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::with_rx", "Argument[2]", "ReturnValue.Field[crate::ws::dispatcher::inner::Dispatcher::rx]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::ws::dispatcher::inner::DispatcherError::Service(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::parse", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::ws::proto::CloseCode::Other(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[0]", "ReturnValue.Field[crate::ws::proto::CloseReason::code]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[crate::ws::proto::CloseReason::code]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[crate::ws::proto::CloseCode::Other(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/actix/actix-web:actix-http", "::call", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-http", "crate::ws::proto::hash_key", "Argument[0]", "hasher-input", "df-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-multipart.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-multipart.model.yml new file mode 100644 index 00000000000..f5be3177f5b --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-multipart.model.yml @@ -0,0 +1,43 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::content_disposition", "Argument[self].Field[crate::field::Field::content_disposition].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::content_type", "Argument[self].Field[crate::field::Field::content_type].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::headers", "Argument[self].Field[crate::field::Field::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::name", "Argument[self].Field[crate::field::Field::content_disposition].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[0]", "ReturnValue.Field[crate::field::Field::content_type]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[1]", "ReturnValue.Field[crate::field::Field::content_disposition]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[2].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::field::Field::form_field_name]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[3]", "ReturnValue.Field[crate::field::Field::headers]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[4]", "ReturnValue.Field[crate::field::Field::safety]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[5]", "ReturnValue.Field[crate::field::Field::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::field::InnerField::boundary]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[0]", "ReturnValue.Field[crate::form::Limits::total_limit_remaining]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[1]", "ReturnValue.Field[crate::form::Limits::memory_limit_remaining]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[crate::form::MultipartForm(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::memory_limit", "Argument[0]", "Argument[self].Field[crate::form::MultipartFormConfig::memory_limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::memory_limit", "Argument[0]", "ReturnValue.Field[crate::form::MultipartFormConfig::memory_limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::memory_limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::total_limit", "Argument[0]", "Argument[self].Field[crate::form::MultipartFormConfig::total_limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::total_limit", "Argument[0]", "ReturnValue.Field[crate::form::MultipartFormConfig::total_limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::total_limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[crate::form::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[0]", "Argument[self].Field[crate::form::json::JsonConfig::validate_content_type]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[0]", "ReturnValue.Field[crate::form::json::JsonConfig::validate_content_type]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::directory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[crate::form::text::Text(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[0]", "Argument[self].Field[crate::form::text::TextConfig::validate_content_type]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[0]", "ReturnValue.Field[crate::form::text::TextConfig::validate_content_type]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-multipart", "::clone", "Argument[self].Field[crate::safety::Safety::clean].Reference", "ReturnValue.Field[crate::safety::Safety::clean]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-router.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-router.model.yml new file mode 100644 index 00000000000..7f2f1a6c17e --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-router.model.yml @@ -0,0 +1,35 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/actix/actix-web:actix-router", "<&str as crate::resource_path::ResourcePath>::path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "<_ as crate::resource_path::Resource>::resource_path", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::patterns", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::new", "Argument[0]", "ReturnValue.Field[crate::de::PathDeserializer::path]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::resource_path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::get_mut", "Argument[self].Field[crate::path::Path::path]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::get_ref", "Argument[self].Field[crate::path::Path::path]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::iter", "Argument[self]", "ReturnValue.Field[crate::path::PathIter::params]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::new", "Argument[0]", "ReturnValue.Field[crate::path::Path::path]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::set", "Argument[0]", "Argument[self].Field[crate::path::Path::path]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::patterns", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::capture_match_info_fn", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::id", "Argument[self].Field[crate::resource::ResourceDef::id]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::is_prefix", "Argument[self].Field[crate::resource::ResourceDef::is_prefix]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::join", "Argument[0].Field[crate::resource::ResourceDef::is_prefix]", "ReturnValue.Field[crate::resource::ResourceDef::is_prefix]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::pattern", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::pattern_iter", "Argument[self].Field[crate::resource::ResourceDef::patterns]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::set_id", "Argument[0]", "Argument[self].Field[crate::resource::ResourceDef::id]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::finish", "Argument[self].Field[crate::router::RouterBuilder::routes]", "ReturnValue.Field[crate::router::Router::routes]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::patterns", "Argument[self].Reference", "ReturnValue.Field[crate::pattern::Patterns::Single(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::path", "Argument[self].Field[crate::url::Url::path].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::new", "Argument[0]", "ReturnValue.Field[crate::url::Url::uri]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::new_with_quoter", "Argument[0]", "ReturnValue.Field[crate::url::Url::uri]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::path", "Argument[self].Field[crate::url::Url::path].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::update", "Argument[0].Reference", "Argument[self].Field[crate::url::Url::uri]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::update_with_quoter", "Argument[0].Reference", "Argument[self].Field[crate::url::Url::uri]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-router", "::uri", "Argument[self].Field[crate::url::Url::uri]", "ReturnValue.Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-test.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-test.model.yml new file mode 100644 index 00000000000..092daa5214e --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-test.model.yml @@ -0,0 +1,60 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/actix/actix-web:actix-test", "::addr", "Argument[self].Field[crate::TestServer::addr]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::delete", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::delete", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::get", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::get", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::head", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::head", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::options", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::options", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::patch", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::patch", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::post", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::post", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::put", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::put", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::request", "Argument[0]", "ReturnValue.Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::request", "Argument[self].Field[crate::TestServer::client].Field[0]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::request", "Argument[self].Field[crate::TestServer::client].Field[crate::client::Client(0)]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::url", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::url", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::client_request_timeout", "Argument[0]", "Argument[self].Field[crate::TestServerConfig::client_request_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::client_request_timeout", "Argument[0]", "ReturnValue.Field[crate::TestServerConfig::client_request_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::client_request_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::disable_redirects", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::h1", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::h2", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::listen_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::openssl", "Argument[0]", "Argument[self].Field[crate::TestServerConfig::stream].Field[crate::StreamType::Openssl(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::openssl", "Argument[0]", "ReturnValue.Field[crate::TestServerConfig::stream].Field[crate::StreamType::Openssl(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::openssl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::port", "Argument[0]", "Argument[self].Field[crate::TestServerConfig::port]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::port", "Argument[0]", "ReturnValue.Field[crate::TestServerConfig::port]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::port", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls", "Argument[0]", "Argument[self].Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls020(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls", "Argument[0]", "ReturnValue.Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls020(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_021", "Argument[0]", "Argument[self].Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls021(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_021", "Argument[0]", "ReturnValue.Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls021(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_021", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_20", "Argument[0]", "Argument[self].Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls020(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_20", "Argument[0]", "ReturnValue.Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls020(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_20", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_21", "Argument[0]", "Argument[self].Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls021(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_21", "Argument[0]", "ReturnValue.Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls021(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_21", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_22", "Argument[0]", "Argument[self].Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls022(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_22", "Argument[0]", "ReturnValue.Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls022(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_22", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_23", "Argument[0]", "Argument[self].Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls023(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_23", "Argument[0]", "ReturnValue.Field[crate::TestServerConfig::stream].Field[crate::StreamType::Rustls023(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_23", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::workers", "Argument[0]", "Argument[self].Field[crate::TestServerConfig::workers]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::workers", "Argument[0]", "ReturnValue.Field[crate::TestServerConfig::workers]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-test", "::workers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-actors.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-actors.model.yml new file mode 100644 index 00000000000..6c1bd84c988 --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-actors.model.yml @@ -0,0 +1,21 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::parts", "Argument[self].Field[crate::context::HttpContext::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::parts", "Argument[self].Field[crate::ws::WebsocketContext::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::with_codec", "Argument[2]", "ReturnValue.Field[crate::ws::WebsocketContextFut::encoder]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::codec", "Argument[0]", "Argument[self].Field[crate::ws::WsResponseBuilder::codec].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::codec", "Argument[0]", "ReturnValue.Field[crate::ws::WsResponseBuilder::codec].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::codec", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::frame_size", "Argument[0]", "Argument[self].Field[crate::ws::WsResponseBuilder::frame_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::frame_size", "Argument[0]", "ReturnValue.Field[crate::ws::WsResponseBuilder::frame_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::new", "Argument[0]", "ReturnValue.Field[crate::ws::WsResponseBuilder::actor]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::new", "Argument[1]", "ReturnValue.Field[crate::ws::WsResponseBuilder::req]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::new", "Argument[2]", "ReturnValue.Field[crate::ws::WsResponseBuilder::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::protocols", "Argument[0]", "Argument[self].Field[crate::ws::WsResponseBuilder::protocols].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::protocols", "Argument[0]", "ReturnValue.Field[crate::ws::WsResponseBuilder::protocols].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::protocols", "Argument[self]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-codegen.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-codegen.model.yml new file mode 100644 index 00000000000..da04e3d3bf0 --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-codegen.model.yml @@ -0,0 +1,25 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "::try_from", "Argument[0].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::route::MethodTypeExt::Custom(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "::new", "Argument[0].Field[crate::route::RouteArgs::path]", "ReturnValue.Field[crate::route::Args::path]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "::new", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::route::Route::ast]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "::new", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::route::Route::name]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::connect", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::delete", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::get", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::head", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::options", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::patch", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::post", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::put", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::route::with_method", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::route::with_methods", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::route", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::routes", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::scope::with_scope", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::scope", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::trace", "Argument[1]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web.model.yml new file mode 100644 index 00000000000..71d89fea272 --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web.model.yml @@ -0,0 +1,385 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/actix/actix-web:actix-web", "<_ as crate::guard::Guard>::check", "Argument[0]", "Argument[self].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "<_ as crate::guard::Guard>::check", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "<_ as crate::handler::Handler>::call", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_factory", "Argument[self].Field[crate::app::App::default]", "ReturnValue.Field[crate::app_service::AppInit::default]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_factory", "Argument[self].Field[crate::app::App::endpoint]", "ReturnValue.Field[crate::app_service::AppInit::endpoint]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_factory", "Argument[self].Field[crate::app::App::factory_ref]", "ReturnValue.Field[crate::app_service::AppInit::factory_ref]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::data_factory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::external_resource", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap_fn", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::app_service::AppEntry::factory]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::config", "Argument[self].Field[crate::app_service::AppInitServiceState::config]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::pool", "Argument[self].Field[crate::app_service::AppInitServiceState::pool]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::rmap", "Argument[self].Field[crate::app_service::AppInitServiceState::rmap]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::__priv_test_new", "Argument[0]", "ReturnValue.Field[crate::config::AppConfig::secure]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::__priv_test_new", "Argument[1]", "ReturnValue.Field[crate::config::AppConfig::host]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::__priv_test_new", "Argument[2]", "ReturnValue.Field[crate::config::AppConfig::addr]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::host", "Argument[self].Field[crate::config::AppConfig::host]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::local_addr", "Argument[self].Field[crate::config::AppConfig::addr]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::config::AppConfig::secure]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[crate::config::AppConfig::host]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[2]", "ReturnValue.Field[crate::config::AppConfig::addr]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::secure", "Argument[self].Field[crate::config::AppConfig::secure]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::clone_config", "Argument[self].Field[crate::config::AppService::config].Reference", "ReturnValue.Field[crate::config::AppService::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::clone_config", "Argument[self].Field[crate::config::AppService::config]", "ReturnValue.Field[crate::config::AppService::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::config", "Argument[self].Field[crate::config::AppService::config]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_services", "Argument[self].Field[crate::config::AppService::config]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_services", "Argument[self].Field[crate::config::AppService::services]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::is_root", "Argument[self].Field[crate::config::AppService::root]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::config::AppService::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[crate::config::AppService::default]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::configure", "Argument[self]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::external_resource", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue.Field[crate::data::Data(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[crate::data::Data(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[crate::data::Data(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0].Field[crate::types::either::EitherExtractError::Bytes(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue.Field[crate::error::error::Error::cause]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::status_code", "Argument[self].Field[crate::error::internal::InternalError::status].Field[crate::error::internal::InternalErrorType::Status(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from_response", "Argument[0]", "ReturnValue.Field[crate::error::internal::InternalError::cause]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::error::internal::InternalError::cause]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[crate::error::internal::InternalError::status].Field[crate::error::internal::InternalErrorType::Status(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::and", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::or", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::check", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::check", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::match_star_star", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::guard::acceptable::Acceptable::mime]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::scheme", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::preference", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::as_filename", "Argument[self].Field[crate::http::header::content_disposition::DispositionParam::Filename(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::as_filename_ext", "Argument[self].Field[crate::http::header::content_disposition::DispositionParam::FilenameExt(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::as_name", "Argument[self].Field[crate::http::header::content_disposition::DispositionParam::Name(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::as_unknown", "Argument[self].Field[crate::http::header::content_disposition::DispositionParam::Unknown(1)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::as_unknown_ext", "Argument[self].Field[crate::http::header::content_disposition::DispositionParam::UnknownExt(1)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue.Field[crate::http::header::content_length::ContentLength(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[crate::http::header::content_length::ContentLength(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::http::header::entity::EntityTag::weak]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[crate::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new_strong", "Argument[0]", "ReturnValue.Field[crate::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new_weak", "Argument[0]", "ReturnValue.Field[crate::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::strong", "Argument[0]", "ReturnValue.Field[crate::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::tag", "Argument[self].Field[crate::http::header::entity::EntityTag::tag]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::weak", "Argument[0]", "ReturnValue.Field[crate::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_item", "Argument[self].Field[crate::http::header::preference::Preference::Specific(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::item", "Argument[self].Field[crate::http::header::preference::Preference::Specific(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::to_satisfiable_range", "Argument[self].Reference.Field[crate::http::header::range::ByteRangeSpec::From(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::to_satisfiable_range", "Argument[self].Reference.Field[crate::http::header::range::ByteRangeSpec::FromTo(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::to_satisfiable_range", "Argument[self].Reference.Field[crate::http::header::range::ByteRangeSpec::FromTo(1)]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::host", "Argument[self].Field[crate::info::ConnectionInfo::host]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::scheme", "Argument[self].Field[crate::info::ConnectionInfo::scheme]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[crate::info::PeerAddr(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::middleware::compat::Compat::transform]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::middleware::condition::Condition::enable]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[crate::middleware::condition::Condition::transformer]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::add_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::custom_request_replace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::custom_response_replace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::exclude", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::exclude_regex", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::log_level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::log_target", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::permanent", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::see_other", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::temporary", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::using_status_code", "Argument[0]", "Argument[self].Field[crate::redirect::Redirect::status_code]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::using_status_code", "Argument[0]", "ReturnValue.Field[crate::redirect::Redirect::status_code]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::using_status_code", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::with_capacity", "Argument[0]", "ReturnValue.Field[crate::request::HttpRequestPool::cap]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[crate::request_data::ReqData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[crate::request_data::ReqData(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::add_guards", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::to", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap_fn", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::no_chunking", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::reason", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::set_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::take", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::upgrade", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::add_cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::response::customize_responder::CustomizeResponder::inner].Field[crate::response::customize_responder::CustomizeResponderInner::responder]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::with_status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0].Field[crate::service::ServiceResponse::response]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue.Field[crate::response::response::HttpResponse::res]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::drop_body", "Argument[self].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::drop_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::extensions]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::drop_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::error", "Argument[self].Field[crate::response::response::HttpResponse::error].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::head", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::head_mut", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::body]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[0].Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::body]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_body", "Argument[0].ReturnValue", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_boxed_body", "Argument[self].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_boxed_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::extensions]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_boxed_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_left_body", "Argument[self].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_left_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::extensions]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_left_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_right_body", "Argument[self].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_right_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::extensions]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_right_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::set_body", "Argument[0]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::set_body", "Argument[self].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::set_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::extensions]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::set_body", "Argument[self].Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::with_body", "Argument[1]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0].Field[crate::response::response::HttpResponse::res]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self].Field[crate::service::ServiceResponse::response]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self]", "ReturnValue.Field[crate::response::response::HttpResponse::res]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::match_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::match_pattern", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::rmap::ResourceMap::pattern]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::to", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap", "Argument[self].Field[crate::route::Route::guards]", "ReturnValue.Field[crate::route::Route::guards]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap_fn", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::backlog", "Argument[0]", "Argument[self].Field[crate::server::HttpServer::backlog]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::backlog", "Argument[0]", "ReturnValue.Field[crate::server::HttpServer::backlog]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::backlog", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::bind", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_auto_h2c", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_openssl", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_rustls", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_rustls_021", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_rustls_0_22", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_rustls_0_23", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_uds", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::client_disconnect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::client_request_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::disable_signals", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::listen", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::listen_auto_h2c", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::listen_uds", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::max_connection_rate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::max_connections", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::server::HttpServer::factory]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::on_connect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::server_hostname", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::shutdown_signal", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::shutdown_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::system_exit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::tls_handshake_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::worker_max_blocking_threads", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::workers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::service::ServiceFactoryWrapper::factory].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::take_payload", "Argument[self].Field[crate::service::ServiceRequest::payload].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::take_payload", "Argument[self].Field[crate::service::ServiceRequest::payload]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::error_response", "Argument[self].Field[crate::service::ServiceRequest::req]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from_parts", "Argument[0]", "ReturnValue.Field[crate::service::ServiceRequest::req]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from_parts", "Argument[1]", "ReturnValue.Field[crate::service::ServiceRequest::payload]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from_request", "Argument[0]", "ReturnValue.Field[crate::service::ServiceRequest::req]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::guard_ctx", "Argument[self]", "ReturnValue.Field[crate::guard::GuardContext::req]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[crate::service::ServiceRequest::payload]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[crate::service::ServiceRequest::req]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_response", "Argument[self].Field[crate::service::ServiceRequest::req]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::service::ServiceRequest::req]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[crate::service::ServiceRequest::payload]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::parts", "Argument[self].Field[crate::service::ServiceRequest::payload]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::parts", "Argument[self].Field[crate::service::ServiceRequest::req]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::parts_mut", "Argument[self].Field[crate::service::ServiceRequest::payload]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::parts_mut", "Argument[self].Field[crate::service::ServiceRequest::req]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::request", "Argument[self].Field[crate::service::ServiceRequest::req]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::set_payload", "Argument[0]", "Argument[self].Field[crate::service::ServiceRequest::payload]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_body", "Argument[self].Field[crate::service::ServiceResponse::request]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_body", "Argument[self].Field[crate::service::ServiceResponse::response].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[crate::service::ServiceResponse::response].Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::error_response", "Argument[self].Field[crate::service::ServiceResponse::request]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from_err", "Argument[1]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[crate::service::ServiceResponse::request]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[crate::service::ServiceResponse::response]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_response", "Argument[0]", "ReturnValue.Field[crate::service::ServiceResponse::response]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_response", "Argument[self].Field[crate::service::ServiceResponse::request]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_body", "Argument[self].Field[crate::service::ServiceResponse::request]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_body", "Argument[self].Field[crate::service::ServiceResponse::response].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[crate::service::ServiceResponse::response].Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_boxed_body", "Argument[self].Field[crate::service::ServiceResponse::request]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_boxed_body", "Argument[self].Field[crate::service::ServiceResponse::response].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[crate::service::ServiceResponse::response].Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_left_body", "Argument[self].Field[crate::service::ServiceResponse::request]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_left_body", "Argument[self].Field[crate::service::ServiceResponse::response].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[crate::service::ServiceResponse::response].Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_right_body", "Argument[self].Field[crate::service::ServiceResponse::request]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_right_body", "Argument[self].Field[crate::service::ServiceResponse::response].Field[crate::response::response::HttpResponse::error]", "ReturnValue.Field[crate::service::ServiceResponse::response].Field[crate::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[crate::service::ServiceResponse::response]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::request", "Argument[self].Field[crate::service::ServiceResponse::request]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::response", "Argument[self].Field[crate::service::ServiceResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::response_mut", "Argument[self].Field[crate::service::ServiceResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::finish", "Argument[self].Field[crate::service::WebService::guards]", "ReturnValue.Field[crate::service::WebServiceImpl::guards]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::finish", "Argument[self].Field[crate::service::WebService::name]", "ReturnValue.Field[crate::service::WebServiceImpl::name]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::finish", "Argument[self].Field[crate::service::WebService::rdef]", "ReturnValue.Field[crate::service::WebServiceImpl::rdef]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::param", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::peer_addr", "Argument[0]", "Argument[self].Field[crate::test::test_request::TestRequest::peer_addr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::peer_addr", "Argument[0]", "ReturnValue.Field[crate::test::test_request::TestRequest::peer_addr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::peer_addr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::rmap", "Argument[0]", "Argument[self].Field[crate::test::test_request::TestRequest::rmap]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::rmap", "Argument[0]", "ReturnValue.Field[crate::test::test_request::TestRequest::rmap]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::rmap", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::set_form", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::set_json", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::set_payload", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::uri", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::as_mut", "Argument[self].Field[crate::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::as_ref", "Argument[self].Field[crate::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[crate::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[crate::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from_request", "Argument[0].Reference", "ReturnValue.Field[crate::types::either::EitherExtractFut::req]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::unwrap_left", "Argument[self].Field[crate::types::either::Either::Left(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::unwrap_right", "Argument[self].Field[crate::types::either::Either::Right(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from_request", "Argument[0].Reference", "ReturnValue.Field[crate::types::form::FormExtractFut::req]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[crate::types::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[crate::types::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[crate::types::form::Form(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[crate::types::form::FormConfig::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[crate::types::form::FormConfig::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[crate::types::form::UrlEncoded::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[crate::types::form::UrlEncoded::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[crate::types::header::Header(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[crate::types::header::Header(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[crate::types::header::Header(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self].Field[0]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self].Field[crate::types::html::Html(0)]", "ReturnValue.Field[crate::response::response::HttpResponse::res].Field[crate::responses::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from_request", "Argument[0].Reference", "ReturnValue.Field[crate::types::json::JsonExtractFut::req].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[crate::types::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[crate::types::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[crate::types::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[crate::types::json::JsonBody::Body::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::content_type_required", "Argument[0]", "Argument[self].Field[crate::types::json::JsonConfig::content_type_required]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::content_type_required", "Argument[0]", "ReturnValue.Field[crate::types::json::JsonConfig::content_type_required]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::content_type_required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[crate::types::json::JsonConfig::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[crate::types::json::JsonConfig::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[crate::types::path::Path(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[crate::types::payload::HttpMessageBody::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[crate::types::payload::HttpMessageBody::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[crate::types::payload::Payload(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[crate::types::payload::PayloadConfig::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[crate::types::payload::PayloadConfig::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::mimetype", "Argument[0]", "Argument[self].Field[crate::types::payload::PayloadConfig::mimetype].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::mimetype", "Argument[0]", "ReturnValue.Field[crate::types::payload::PayloadConfig::mimetype].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::mimetype", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[crate::types::payload::PayloadConfig::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[crate::types::query::Query(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[crate::types::query::Query(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[crate::types::query::Query(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[crate::types::readlines::Readlines::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[crate::types::readlines::Readlines::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::downcast_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::downcast_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::downcast_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::downcast_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0].Field[crate::http::header::content_length::ContentLength(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "crate::guard::Method", "Argument[0]", "ReturnValue.Field[crate::guard::MethodGuard(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "crate::guard::fn_guard", "Argument[0]", "ReturnValue.Field[crate::guard::FnGuard(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "crate::web::scope", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new_strong", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new_weak", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::strong", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::weak", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::custom_request_replace", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::custom_response_replace", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-awc.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-awc.model.yml new file mode 100644 index 00000000000..30828f012fa --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-awc.model.yml @@ -0,0 +1,226 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/actix/actix-web:awc", "::add_default_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::connector", "Argument[0]", "ReturnValue.Field[crate::builder::ClientBuilder::connector]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::disable_redirects", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::disable_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[0]", "Argument[self].Field[crate::builder::ClientBuilder::conn_window_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[0]", "ReturnValue.Field[crate::builder::ClientBuilder::conn_window_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[0]", "Argument[self].Field[crate::builder::ClientBuilder::stream_window_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[0]", "ReturnValue.Field[crate::builder::ClientBuilder::stream_window_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::local_address", "Argument[0]", "Argument[self].Field[crate::builder::ClientBuilder::local_address].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::local_address", "Argument[0]", "ReturnValue.Field[crate::builder::ClientBuilder::local_address].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_http_version", "Argument[0]", "Argument[self].Field[crate::builder::ClientBuilder::max_http_version].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_http_version", "Argument[0]", "ReturnValue.Field[crate::builder::ClientBuilder::max_http_version].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_http_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_redirects", "Argument[0]", "Argument[self].Field[crate::builder::ClientBuilder::max_redirects]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_redirects", "Argument[0]", "ReturnValue.Field[crate::builder::ClientBuilder::max_redirects]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_redirects", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::no_default_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "Argument[self].Field[crate::builder::ClientBuilder::timeout].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "ReturnValue.Field[crate::builder::ClientBuilder::timeout].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::wrap", "Argument[0]", "ReturnValue.Field[crate::builder::ClientBuilder::middleware].Field[crate::middleware::NestTransform::parent]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::delete", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::head", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::options", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::patch", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::post", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::put", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::request", "Argument[0]", "ReturnValue.Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::request_from", "Argument[1].Field[crate::requests::head::RequestHead::method].Reference", "ReturnValue.Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::request_from", "Argument[1].Field[crate::requests::head::RequestHead::method]", "ReturnValue.Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::ws", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::no_disconnect_timeout", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[crate::client::connection::H2ConnectionInner::sender]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::conn_keep_alive", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::conn_keep_alive]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::conn_keep_alive", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::conn_keep_alive]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::conn_keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::conn_lifetime", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::conn_lifetime]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::conn_lifetime", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::conn_lifetime]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::conn_lifetime", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::connector", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::connector]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::connector", "Argument[self].Field[crate::client::connector::Connector::config]", "ReturnValue.Field[crate::client::connector::Connector::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::connector", "Argument[self].Field[crate::client::connector::Connector::tls]", "ReturnValue.Field[crate::client::connector::Connector::tls]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::disconnect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::handshake_timeout", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::handshake_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::handshake_timeout", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::handshake_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::handshake_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::conn_window_size]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::conn_window_size]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::stream_window_size]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::stream_window_size]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::limit", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::limit", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_http_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::openssl", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::openssl", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::openssl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Rustls020(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Rustls020(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls_021", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Rustls021(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls_021", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Rustls021(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls_021", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_22", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Rustls022(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_22", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Rustls022(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_22", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_23", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Rustls023(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_23", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Rustls023(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_23", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::ssl", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::ssl", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::tls].Field[crate::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::ssl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "Argument[self].Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "ReturnValue.Field[crate::client::connector::Connector::config].Field[crate::client::config::ConnectorConfig::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[self].Field[crate::client::connector::TlsConnectorService::timeout]", "ReturnValue.Field[crate::client::connector::TlsConnectorFuture::TcpConnect::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[self].Field[crate::client::connector::TlsConnectorService::tls_service].Reference", "ReturnValue.Field[crate::client::connector::TlsConnectorFuture::TcpConnect::tls_service].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[self].Field[crate::client::connector::TlsConnectorService::tls_service]", "ReturnValue.Field[crate::client::connector::TlsConnectorFuture::TcpConnect::tls_service].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0]", "ReturnValue.Field[crate::client::error::ConnectError::Io(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0]", "ReturnValue.Field[crate::client::error::ConnectError::Resolver(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0].Field[crate::sender::PrepForSendingError::Http(0)]", "ReturnValue.Field[crate::client::error::FreezeRequestError::Http(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0].Field[crate::sender::PrepForSendingError::Url(0)]", "ReturnValue.Field[crate::client::error::FreezeRequestError::Url(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0].Field[crate::client::error::FreezeRequestError::Custom(0)]", "ReturnValue.Field[crate::client::error::SendRequestError::Custom(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0].Field[crate::client::error::FreezeRequestError::Custom(1)]", "ReturnValue.Field[crate::client::error::SendRequestError::Custom(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0].Field[crate::sender::PrepForSendingError::Http(0)]", "ReturnValue.Field[crate::client::error::SendRequestError::Http(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0].Field[crate::sender::PrepForSendingError::Url(0)]", "ReturnValue.Field[crate::client::error::SendRequestError::Url(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[crate::client::pool::ConnectionPool::connector]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::deref", "Argument[self].Field[crate::client::pool::ConnectionPoolInner(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0]", "ReturnValue.Field[crate::client::pool::Key::authority]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::into_client_response", "Argument[self].Field[crate::connect::ConnectResponse::Client(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::into_tunnel_response", "Argument[self].Field[crate::connect::ConnectResponse::Tunnel(0)]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::into_tunnel_response", "Argument[self].Field[crate::connect::ConnectResponse::Tunnel(1)]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[0]", "ReturnValue.Field[crate::connect::ConnectRequestFuture::Connection::req].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[crate::connect::DefaultConnector::connector]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::extra_header", "Argument[self].Reference", "ReturnValue.Field[crate::frozen::FrozenSendBuilder::req]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::extra_headers", "Argument[0]", "ReturnValue.Field[crate::frozen::FrozenSendBuilder::extra_headers]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::extra_headers", "Argument[self].Reference", "ReturnValue.Field[crate::frozen::FrozenSendBuilder::req]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send", "Argument[self].Field[crate::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_body", "Argument[self].Field[crate::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_form", "Argument[self].Field[crate::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_json", "Argument[self].Field[crate::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_stream", "Argument[self].Field[crate::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::extra_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[crate::frozen::FrozenSendBuilder::req]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[crate::frozen::FrozenSendBuilder::extra_headers]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send", "Argument[self].Field[crate::frozen::FrozenSendBuilder::req].Field[crate::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_body", "Argument[self].Field[crate::frozen::FrozenSendBuilder::req].Field[crate::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_form", "Argument[self].Field[crate::frozen::FrozenSendBuilder::req].Field[crate::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_json", "Argument[self].Field[crate::frozen::FrozenSendBuilder::req].Field[crate::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_stream", "Argument[self].Field[crate::frozen::FrozenSendBuilder::req].Field[crate::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[crate::middleware::NestTransform::child]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[crate::middleware::NestTransform::parent]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new_transform", "Argument[self].Field[crate::middleware::redirect::Redirect::max_redirect_times]", "ReturnValue.Field[crate::middleware::redirect::RedirectService::max_redirect_times]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_redirect_times", "Argument[0]", "Argument[self].Field[crate::middleware::redirect::Redirect::max_redirect_times]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_redirect_times", "Argument[0]", "ReturnValue.Field[crate::middleware::redirect::Redirect::max_redirect_times]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_redirect_times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[0].Field[crate::connect::ConnectRequest::Client(1)].Field[crate::any_body::AnyBody::Bytes::body]", "ReturnValue.Field[crate::middleware::redirect::RedirectServiceFuture::Client::body].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[0].Field[crate::connect::ConnectRequest::Client(2)]", "ReturnValue.Field[crate::middleware::redirect::RedirectServiceFuture::Client::addr]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[self].Field[crate::middleware::redirect::RedirectService::max_redirect_times]", "ReturnValue.Field[crate::middleware::redirect::RedirectServiceFuture::Client::max_redirect_times]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[0]", "Argument[self].Field[crate::request::ClientRequest::addr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[0]", "ReturnValue.Field[crate::request::ClientRequest::addr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::camel_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::content_length", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::get_method", "Argument[self].Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::method]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::get_peer_addr", "Argument[self].Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::peer_addr]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::get_uri", "Argument[self].Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::uri]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::get_version", "Argument[self].Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::version]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::headers", "Argument[self].Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::headers_mut", "Argument[self].Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::insert_header_if_none", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::method", "Argument[0]", "Argument[self].Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::method", "Argument[0]", "ReturnValue.Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[2]", "ReturnValue.Field[crate::request::ClientRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::no_decompress", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::query", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "Argument[self].Field[crate::request::ClientRequest::timeout].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "ReturnValue.Field[crate::request::ClientRequest::timeout].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::uri", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[0]", "Argument[self].Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::version]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[0]", "ReturnValue.Field[crate::request::ClientRequest::head].Field[crate::requests::head::RequestHead::version]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0].Field[crate::responses::response::ClientResponse::timeout]", "ReturnValue.Field[crate::responses::json_body::JsonBody::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[crate::responses::read_body::ReadBody::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[crate::responses::read_body::ReadBody::limit]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::headers", "Argument[self].Field[crate::responses::response::ClientResponse::head].Field[crate::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::take_payload", "Argument[self].Field[crate::responses::response::ClientResponse::payload]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::_timeout", "Argument[0]", "Argument[self].Field[crate::responses::response::ClientResponse::timeout].Field[crate::responses::ResponseTimeout::Disabled(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::_timeout", "Argument[0]", "ReturnValue.Field[crate::responses::response::ClientResponse::timeout].Field[crate::responses::ResponseTimeout::Disabled(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::body", "Argument[self].Field[crate::responses::response::ClientResponse::timeout]", "ReturnValue.Field[crate::responses::response_body::ResponseBody::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::head", "Argument[self].Field[crate::responses::response::ClientResponse::head]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::json", "Argument[self].Field[crate::responses::response::ClientResponse::timeout]", "ReturnValue.Field[crate::responses::json_body::JsonBody::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::map_body", "Argument[0].ReturnValue", "ReturnValue.Field[crate::responses::response::ClientResponse::payload]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[crate::responses::response::ClientResponse::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[crate::responses::response::ClientResponse::payload]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::status", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0].Field[crate::responses::response::ClientResponse::timeout]", "ReturnValue.Field[crate::responses::response_body::ResponseBody::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send", "Argument[1]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_body", "Argument[1]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_form", "Argument[1]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_json", "Argument[1]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::send_stream", "Argument[1]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0]", "ReturnValue.Field[crate::sender::SendClientRequest::Err(0)].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[crate::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::finish", "Argument[self].Field[crate::test::TestResponse::head]", "ReturnValue.Field[crate::responses::response::ClientResponse::head]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::set_payload", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[0]", "Argument[self].Field[crate::test::TestResponse::head].Field[crate::responses::head::ResponseHead::version]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[0]", "ReturnValue.Field[crate::test::TestResponse::head].Field[crate::responses::head::ResponseHead::version]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[0]", "Argument[self].Field[crate::ws::WebsocketsRequest::addr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[0]", "ReturnValue.Field[crate::ws::WebsocketsRequest::addr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_frame_size", "Argument[0]", "Argument[self].Field[crate::ws::WebsocketsRequest::max_size]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_frame_size", "Argument[0]", "ReturnValue.Field[crate::ws::WebsocketsRequest::max_size]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[crate::ws::WebsocketsRequest::config]", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::origin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::protocols", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::server_mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::set_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/actix/actix-web:awc", "::set_header_if_none", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/actix/actix-web:awc", "crate::client::h2proto::send_request", "Argument[1]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap.model.yml new file mode 100644 index 00000000000..f6539d8bde1 --- /dev/null +++ b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap.model.yml @@ -0,0 +1,17 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/clap-rs/clap:clap", "::augment_args", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap", "::augment_args_for_update", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap", "::augment_subcommands", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap", "::augment_subcommands_for_update", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/clap-rs/clap:clap", "::from_matches", "Argument[0]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_bench.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_bench.model.yml new file mode 100644 index 00000000000..8daf130e9ea --- /dev/null +++ b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_bench.model.yml @@ -0,0 +1,10 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_bench", "::args", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_bench", "::args", "Argument[self].Field[crate::Args(1)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_bench", "::name", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_bench", "::name", "Argument[self].Field[crate::Args(0)]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_builder.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_builder.model.yml new file mode 100644 index 00000000000..a26bc4c1a0b --- /dev/null +++ b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_builder.model.yml @@ -0,0 +1,394 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_builder", "<_ as crate::builder::value_parser::TypedValueParser>::parse_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self]", "ReturnValue.Field[crate::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self]", "ReturnValue.Field[crate::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::action", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_hyphen_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_negative_numbers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::conflicts_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::conflicts_with_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_missing_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_missing_value_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_missing_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_missing_values_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value_if", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value_if_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value_ifs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value_ifs_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_values_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::env", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::env_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::exclusive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_action", "Argument[self].Field[crate::builder::arg::Arg::action].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_default_values", "Argument[self].Field[crate::builder::arg::Arg::default_vals]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_display_order", "Argument[self].Field[crate::builder::arg::Arg::disp_ord].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_env", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_help", "Argument[self].Field[crate::builder::arg::Arg::help].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_id", "Argument[self].Field[crate::builder::arg::Arg::id]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_index", "Argument[self].Field[crate::builder::arg::Arg::index]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_long_help", "Argument[self].Field[crate::builder::arg::Arg::long_help].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_num_args", "Argument[self].Field[crate::builder::arg::Arg::num_vals]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_short", "Argument[self].Field[crate::builder::arg::Arg::short]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_value_delimiter", "Argument[self].Field[crate::builder::arg::Arg::val_delim]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_value_names", "Argument[self].Field[crate::builder::arg::Arg::val_names]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_value_terminator", "Argument[self].Field[crate::builder::arg::Arg::terminator].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::global", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::help_heading", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_default_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_env", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_env_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_possible_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_short_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::ignore_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::last", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_line_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::num_args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::number_of_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::overrides_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::overrides_with_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::raw", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::require_equals", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_if_eq", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_if_eq_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_if_eq_any", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_unless_present", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_unless_present_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_unless_present_any", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires_if", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires_ifs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::trailing_var_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unset_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::use_value_delimiter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_delimiter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_hint", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_names", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_parser", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_terminator", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_short_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_short_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::conflicts_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::conflicts_with_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_id", "Argument[self].Field[crate::builder::arg_group::ArgGroup::id]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::is_multiple", "Argument[self].Field[crate::builder::arg_group::ArgGroup::multiple]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::is_required_set", "Argument[self].Field[crate::builder::arg_group::ArgGroup::required]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::multiple", "Argument[0]", "Argument[self].Field[crate::builder::arg_group::ArgGroup::multiple]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::multiple", "Argument[0]", "ReturnValue.Field[crate::builder::arg_group::ArgGroup::multiple]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::multiple", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[0]", "Argument[self].Field[crate::builder::arg_group::ArgGroup::required]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[0]", "ReturnValue.Field[crate::builder::arg_group::ArgGroup::required]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::about", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::after_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::after_long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_external_subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_hyphen_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_missing_positional", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_negative_numbers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::arg_required_else_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::args_conflicts_with_subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::args_override_self", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::author", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::before_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::before_long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::bin_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::color", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::defer", "Argument[0]", "Argument[self].Field[crate::builder::command::Command::deferred].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::defer", "Argument[0]", "ReturnValue.Field[crate::builder::command::Command::deferred].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::defer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::disable_colored_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::disable_help_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::disable_help_subcommand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::disable_version_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::display_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::dont_collapse_args_in_usage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::dont_delimit_trailing_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::external_subcommand_value_parser", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::flatten_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_about", "Argument[self].Field[crate::builder::command::Command::about].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_after_help", "Argument[self].Field[crate::builder::command::Command::after_help].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_after_long_help", "Argument[self].Field[crate::builder::command::Command::after_long_help].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_before_help", "Argument[self].Field[crate::builder::command::Command::before_help].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_before_long_help", "Argument[self].Field[crate::builder::command::Command::before_long_help].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_display_order", "Argument[self].Field[crate::builder::command::Command::disp_ord].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_external_subcommand_value_parser", "Argument[self].Field[crate::builder::command::Command::external_value_parser].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_help_template", "Argument[self].Field[crate::builder::command::Command::template].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_keymap", "Argument[self].Field[crate::builder::command::Command::args]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_long_about", "Argument[self].Field[crate::builder::command::Command::long_about].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_override_help", "Argument[self].Field[crate::builder::command::Command::help_str].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_override_usage", "Argument[self].Field[crate::builder::command::Command::usage_str].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_short_flag", "Argument[self].Field[crate::builder::command::Command::short_flag]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::global_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::help_expected", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::help_template", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_possible_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::ignore_errors", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::infer_long_args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::infer_subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_about", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_help_exists", "Argument[self].Field[crate::builder::command::Command::long_help_exists]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::max_term_width", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::multicall", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::mut_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::mut_args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::mut_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::mut_subcommand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_help_heading", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_line_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::no_binary_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::override_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::override_usage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::propagate_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::styles", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_help_heading", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_negates_reqs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_precedence_over_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_value_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::term_width", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::trailing_var_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unset_global_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unset_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_long_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_long_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_short_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_short_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_help", "Argument[self].Field[crate::builder::possible_value::PossibleValue::help].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide", "Argument[0]", "Argument[self].Field[crate::builder::possible_value::PossibleValue::hide]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide", "Argument[0]", "ReturnValue.Field[crate::builder::possible_value::PossibleValue::hide]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::is_hide_set", "Argument[self].Field[crate::builder::possible_value::PossibleValue::hide]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::end_bound", "Argument[self].Field[crate::builder::range::ValueRange::end_inclusive]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::start_bound", "Argument[self].Field[crate::builder::range::ValueRange::start_inclusive]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::max_values", "Argument[self].Field[crate::builder::range::ValueRange::end_inclusive]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::min_values", "Argument[self].Field[crate::builder::range::ValueRange::start_inclusive]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::num_values", "Argument[self].Field[crate::builder::range::ValueRange::start_inclusive]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::raw", "Argument[0]", "ReturnValue.Field[crate::builder::range::ValueRange::start_inclusive]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::raw", "Argument[1]", "ReturnValue.Field[crate::builder::range::ValueRange::end_inclusive]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Field[crate::util::id::Id(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_inner", "Argument[self].Field[crate::builder::str::Str::name]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference.Reference", "ReturnValue.Field[crate::builder::styled_str::StyledStr(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue.Field[crate::builder::styled_str::StyledStr(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0]", "ReturnValue.Field[crate::builder::styled_str::StyledStr(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::ansi", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::ansi", "Argument[self].Field[crate::builder::styled_str::StyledStr(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::as_styled_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::as_styled_str", "Argument[self].Field[crate::builder::styled_str::StyledStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::error", "Argument[0]", "Argument[self].Field[crate::builder::styling::Styles::error]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::error", "Argument[0]", "ReturnValue.Field[crate::builder::styling::Styles::error]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_error", "Argument[self].Field[crate::builder::styling::Styles::error]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_header", "Argument[self].Field[crate::builder::styling::Styles::header]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_invalid", "Argument[self].Field[crate::builder::styling::Styles::invalid]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_literal", "Argument[self].Field[crate::builder::styling::Styles::literal]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_placeholder", "Argument[self].Field[crate::builder::styling::Styles::placeholder]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_usage", "Argument[self].Field[crate::builder::styling::Styles::usage]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_valid", "Argument[self].Field[crate::builder::styling::Styles::valid]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::header", "Argument[0]", "Argument[self].Field[crate::builder::styling::Styles::header]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::header", "Argument[0]", "ReturnValue.Field[crate::builder::styling::Styles::header]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::invalid", "Argument[0]", "Argument[self].Field[crate::builder::styling::Styles::invalid]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::invalid", "Argument[0]", "ReturnValue.Field[crate::builder::styling::Styles::invalid]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::invalid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::literal", "Argument[0]", "Argument[self].Field[crate::builder::styling::Styles::literal]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::literal", "Argument[0]", "ReturnValue.Field[crate::builder::styling::Styles::literal]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::literal", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::placeholder", "Argument[0]", "Argument[self].Field[crate::builder::styling::Styles::placeholder]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::placeholder", "Argument[0]", "ReturnValue.Field[crate::builder::styling::Styles::placeholder]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::placeholder", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::usage", "Argument[0]", "Argument[self].Field[crate::builder::styling::Styles::usage]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::usage", "Argument[0]", "ReturnValue.Field[crate::builder::styling::Styles::usage]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::usage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::valid", "Argument[0]", "Argument[self].Field[crate::builder::styling::Styles::valid]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::valid", "Argument[0]", "ReturnValue.Field[crate::builder::styling::Styles::valid]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::valid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self]", "ReturnValue.Field[crate::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::range", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::range", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::and_suggest", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Field[crate::builder::value_parser::_AnonymousValueParser(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::apply", "Argument[self].Field[crate::error::Error::inner]", "ReturnValue.Field[crate::error::Error::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::extend_context_unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::insert_context_unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_color", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_colored_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_help_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_message", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_source", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_styles", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_by_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[crate::output::fmt::Colorizer::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[1]", "ReturnValue.Field[crate::output::fmt::Colorizer::color_when]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::with_content", "Argument[0]", "Argument[self].Field[crate::output::fmt::Colorizer::content]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::with_content", "Argument[0]", "ReturnValue.Field[crate::output::fmt::Colorizer::content]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::with_content", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[crate::output::help_template::AutoHelp::template].Field[crate::output::help_template::HelpTemplate::writer]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[1]", "ReturnValue.Field[crate::output::help_template::AutoHelp::template].Field[crate::output::help_template::HelpTemplate::cmd]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[2]", "ReturnValue.Field[crate::output::help_template::AutoHelp::template].Field[crate::output::help_template::HelpTemplate::usage]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[3]", "ReturnValue.Field[crate::output::help_template::AutoHelp::template].Field[crate::output::help_template::HelpTemplate::use_long]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[crate::output::help_template::HelpTemplate::writer]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[1]", "ReturnValue.Field[crate::output::help_template::HelpTemplate::cmd]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[2]", "ReturnValue.Field[crate::output::help_template::HelpTemplate::usage]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[3]", "ReturnValue.Field[crate::output::help_template::HelpTemplate::use_long]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[crate::output::textwrap::wrap_algorithms::LineWrapper::hard_width]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::wrap", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[crate::output::usage::Usage::cmd]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[0]", "Argument[self].Field[crate::output::usage::Usage::required].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[0]", "ReturnValue.Field[crate::output::usage::Usage::required].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::deref", "Argument[self].Field[crate::parser::arg_matcher::ArgMatcher::matches]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_inner", "Argument[self].Field[crate::parser::arg_matcher::ArgMatcher::matches]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::pending_arg_id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::take_pending", "Argument[self].Field[crate::parser::arg_matcher::ArgMatcher::pending].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::take_pending", "Argument[self].Field[crate::parser::arg_matcher::ArgMatcher::pending]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unwrap", "Argument[1].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_subcommand", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[crate::parser::matches::arg_matches::GroupedValues::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[crate::parser::matches::arg_matches::GroupedValues::len]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self].Field[crate::parser::matches::arg_matches::IdsRef::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[crate::parser::matches::arg_matches::Indices::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[crate::parser::matches::arg_matches::Indices::len]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[crate::parser::matches::arg_matches::RawValues::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[crate::parser::matches::arg_matches::RawValues::len]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[crate::parser::matches::arg_matches::Values::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[crate::parser::matches::arg_matches::Values::len]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[crate::parser::matches::arg_matches::ValuesRef::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[crate::parser::matches::arg_matches::ValuesRef::len]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::infer_type_id", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::infer_type_id", "Argument[self].Field[crate::parser::matches::matched_arg::MatchedArg::type_id].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_vals", "Argument[self].Field[crate::parser::matches::matched_arg::MatchedArg::vals]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_source", "Argument[0]", "Argument[self].Field[crate::parser::matches::matched_arg::MatchedArg::source].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::source", "Argument[self].Field[crate::parser::matches::matched_arg::MatchedArg::source]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::type_id", "Argument[self].Field[crate::parser::matches::matched_arg::MatchedArg::type_id]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_matches_with", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[crate::parser::parser::Parser::cmd]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[crate::parser::validator::Validator::cmd]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::type_id", "Argument[self].Field[crate::util::any_value::AnyValue::id]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::entry", "Argument[0]", "ReturnValue.Field[crate::util::flat_map::Entry::Vacant(0)].Field[crate::util::flat_map::VacantEntry::key]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::entry", "Argument[self]", "ReturnValue.Field[crate::util::flat_map::Entry::Occupied(0)].Field[crate::util::flat_map::OccupiedEntry::v]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::entry", "Argument[self]", "ReturnValue.Field[crate::util::flat_map::Entry::Vacant(0)].Field[crate::util::flat_map::VacantEntry::v]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get", "Argument[self].Field[crate::util::flat_map::FlatMap::values].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_mut", "Argument[self].Field[crate::util::flat_map::FlatMap::values].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::insert", "Argument[1]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self].Field[crate::util::flat_map::Iter::keys].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self].Field[crate::util::flat_map::Iter::values].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::as_internal_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::as_internal_str", "Argument[self].Field[crate::util::id::Id(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self]", "ReturnValue.Field[crate::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::_panic_on_missing_help", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::range", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::range", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unwrap", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unwrap", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::contains_id", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_count", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_flag", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_many", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_occurrences", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_one", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_raw", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_raw_occurrences", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_many", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_occurrences", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_one", "Argument[0]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete.model.yml new file mode 100644 index 00000000000..b9a0f77c4ed --- /dev/null +++ b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete.model.yml @@ -0,0 +1,78 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_complete", "<_ as crate::engine::custom::ValueCandidates>::candidates", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "<_ as crate::engine::custom::ValueCompleter>::complete", "Argument[0]", "Argument[self].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "<_ as crate::engine::custom::ValueCompleter>::complete", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::add_prefix", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::display_order", "Argument[0]", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::display_order]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::display_order", "Argument[0]", "ReturnValue.Field[crate::engine::candidate::CompletionCandidate::display_order]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::get_display_order", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::display_order]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::get_help", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::help].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::get_id", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::id].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::get_tag", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::tag].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::get_value", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::help", "Argument[0]", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::help]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::help", "Argument[0]", "ReturnValue.Field[crate::engine::candidate::CompletionCandidate::help]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::hide", "Argument[0]", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::hidden]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::hide", "Argument[0]", "ReturnValue.Field[crate::engine::candidate::CompletionCandidate::hidden]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::id", "Argument[0]", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::id]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::id", "Argument[0]", "ReturnValue.Field[crate::engine::candidate::CompletionCandidate::id]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::is_hide_set", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::hidden]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::tag", "Argument[0]", "Argument[self].Field[crate::engine::candidate::CompletionCandidate::tag]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::tag", "Argument[0]", "ReturnValue.Field[crate::engine::candidate::CompletionCandidate::tag]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::tag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::current_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::filter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::stdio", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::bin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::completer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::shells", "Argument[0]", "Argument[self].Field[crate::env::CompleteEnv::shells]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::shells", "Argument[0]", "ReturnValue.Field[crate::env::CompleteEnv::shells]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::shells", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::var", "Argument[0]", "Argument[self].Field[crate::env::CompleteEnv::var]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::var", "Argument[0]", "ReturnValue.Field[crate::env::CompleteEnv::var]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::with_factory", "Argument[0]", "ReturnValue.Field[crate::env::CompleteEnv::factory]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::aot::generator::utils::find_subcommand_with_path", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::custom::complete_path", "Argument[1]", "Argument[2]", "taint", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "path-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "path-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "path-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "path-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "path-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::complete::complete", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::complete::complete", "Argument[2]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::complete::complete", "Argument[3]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::complete::complete", "Argument[3]", "path-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::custom::complete_path", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::custom::complete_path", "Argument[1]", "path-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete_nushell.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete_nushell.model.yml new file mode 100644 index 00000000000..0317e38cc51 --- /dev/null +++ b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete_nushell.model.yml @@ -0,0 +1,13 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_complete_nushell", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_complete_nushell", "crate::has_command", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_complete_nushell", "crate::register_example", "Argument[0]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_derive.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_derive.model.yml new file mode 100644 index 00000000000..4397f956fcf --- /dev/null +++ b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_derive.model.yml @@ -0,0 +1,55 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::lit_str_or_abort", "Argument[self].Field[crate::attr::ClapAttr::value].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::value_or_abort", "Argument[self].Field[crate::attr::ClapAttr::value].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::action", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::action", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::cased_name", "Argument[self].Field[crate::item::Item::name].Field[crate::item::Name::Assigned(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::casing", "Argument[self].Field[crate::item::Item::casing]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::env_casing", "Argument[self].Field[crate::item::Item::env_casing]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_args_field", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::item::Item::casing]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_args_field", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::item::Item::env_casing]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_args_struct", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::item::Item::name]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_subcommand_enum", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::item::Item::name]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_subcommand_variant", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::item::Item::casing]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_subcommand_variant", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::item::Item::env_casing]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_value_enum", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::item::Item::name]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_value_enum_variant", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::item::Item::casing]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_value_enum_variant", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::item::Item::env_casing]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::group_id", "Argument[self].Field[crate::item::Item::group_id]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::id", "Argument[self].Field[crate::item::Item::name]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::is_positional", "Argument[self].Field[crate::item::Item::is_positional]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::kind", "Argument[self].Field[crate::item::Item::kind].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::kind", "Argument[self].Field[crate::item::Item::kind]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::skip_group", "Argument[self].Field[crate::item::Item::skip_group]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::value_name", "Argument[self].Field[crate::item::Item::name].Field[crate::item::Name::Assigned(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::value_parser", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::value_parser", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::args", "Argument[self].Field[crate::item::Method::args]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::new", "Argument[0]", "ReturnValue.Field[crate::item::Method::name]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::new", "Argument[1]", "ReturnValue.Field[crate::item::Method::args]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::translate", "Argument[self].Field[crate::item::Name::Assigned(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from", "Argument[0].Field[crate::utils::spanned::Sp::span]", "ReturnValue.Field[crate::utils::spanned::Sp::span]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::deref", "Argument[self].Field[crate::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::deref_mut", "Argument[self].Field[crate::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::get", "Argument[self].Field[crate::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::new", "Argument[0]", "ReturnValue.Field[crate::utils::spanned::Sp::val]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::new", "Argument[1]", "ReturnValue.Field[crate::utils::spanned::Sp::span]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "::span", "Argument[self].Field[crate::utils::spanned::Sp::span]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::args::derive_args", "Argument[0].Reference", "ReturnValue.Field[crate::item::Item::group_id].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::args::derive_args", "Argument[0]", "ReturnValue.Field[crate::item::Item::group_id].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::args::derive_args", "Argument[0]", "ReturnValue.Field[crate::item::Item::name].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::parser::derive_parser", "Argument[0].Reference", "ReturnValue.Field[crate::item::Item::group_id].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::parser::derive_parser", "Argument[0]", "ReturnValue.Field[crate::item::Item::group_id].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::subcommand::derive_subcommand", "Argument[0].Reference", "ReturnValue.Field[crate::item::Item::group_id].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::subcommand::derive_subcommand", "Argument[0]", "ReturnValue.Field[crate::item::Item::group_id].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::subcommand::derive_subcommand", "Argument[0]", "ReturnValue.Field[crate::item::Item::name].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::value_enum::derive_value_enum", "Argument[0].Reference", "ReturnValue.Field[crate::item::Item::group_id].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::value_enum::derive_value_enum", "Argument[0]", "ReturnValue.Field[crate::item::Item::group_id].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::derives::value_enum::derive_value_enum", "Argument[0]", "ReturnValue.Field[crate::item::Item::name].Field[crate::item::Name::Derived(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::utils::ty::inner_type", "Argument[0]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_lex.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_lex.model.yml new file mode 100644 index 00000000000..5ccc93d09cc --- /dev/null +++ b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_lex.model.yml @@ -0,0 +1,11 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_lex", "::to_value", "Argument[self].Field[crate::ParsedArg::inner]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_lex", "::to_value_os", "Argument[self].Field[crate::ParsedArg::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_lex", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_lex", "::split", "Argument[0]", "ReturnValue.Field[crate::ext::Split::needle]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_lex", "::split", "Argument[self]", "ReturnValue.Field[crate::ext::Split::haystack].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_mangen.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_mangen.model.yml new file mode 100644 index 00000000000..6829efe4972 --- /dev/null +++ b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_mangen.model.yml @@ -0,0 +1,19 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::date", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::generate_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::get_filename", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::manual", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::new", "Argument[0]", "ReturnValue.Field[crate::Man::cmd]", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::section", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::source", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::title", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::generate_to", "Argument[self]", "path-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/hyper/repo-https-github.com-hyperium-hyper-hyper.model.yml b/rust/ql/lib/ext/generated/hyper/repo-https-github.com-hyperium-hyper-hyper.model.yml new file mode 100644 index 00000000000..3e30d66ced4 --- /dev/null +++ b/rust/ql/lib/ext/generated/hyper/repo-https-github.com-hyperium-hyper-hyper.model.yml @@ -0,0 +1,254 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/hyperium/hyper:hyper", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::as_ffi_mut", "Argument[self].Field[crate::body::incoming::Incoming::kind].Field[crate::body::incoming::Kind::Ffi(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::h2", "Argument[0]", "ReturnValue.Field[crate::body::incoming::Incoming::kind].Field[crate::body::incoming::Kind::H2::recv]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::h2", "Argument[1]", "ReturnValue.Field[crate::body::incoming::Incoming::kind].Field[crate::body::incoming::Kind::H2::content_length]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::h2", "Argument[2]", "ReturnValue.Field[crate::body::incoming::Incoming::kind].Field[crate::body::incoming::Kind::H2::ping]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0].Field[crate::option::Option::Some(0)].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::checked_new", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::body::length::DecodedLength(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::danger_len", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::danger_len", "Argument[self].Field[crate::body::length::DecodedLength(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::into_opt", "Argument[self].Field[crate::body::length::DecodedLength(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::body::length::DecodedLength(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0].Field[crate::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::allow_obsolete_multiline_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::allow_spaces_after_header_name_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::handshake", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::handshake", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::http09_responses", "Argument[0]", "Argument[self].Field[crate::client::conn::http1::Builder::h09_responses]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::http09_responses", "Argument[0]", "ReturnValue.Field[crate::client::conn::http1::Builder::h09_responses]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::http09_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::ignore_invalid_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_buf_size", "Argument[0]", "Argument[self].Field[crate::client::conn::http1::Builder::h1_max_buf_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_buf_size", "Argument[0]", "ReturnValue.Field[crate::client::conn::http1::Builder::h1_max_buf_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[0]", "Argument[self].Field[crate::client::conn::http1::Builder::h1_max_headers].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[0]", "ReturnValue.Field[crate::client::conn::http1::Builder::h1_max_headers].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[0]", "Argument[self].Field[crate::client::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[0]", "ReturnValue.Field[crate::client::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_order", "Argument[0]", "Argument[self].Field[crate::client::conn::http1::Builder::h1_preserve_header_order]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_order", "Argument[0]", "ReturnValue.Field[crate::client::conn::http1::Builder::h1_preserve_header_order]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::read_buf_exact_size", "Argument[0]", "Argument[self].Field[crate::client::conn::http1::Builder::h1_read_buf_exact_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::read_buf_exact_size", "Argument[0]", "ReturnValue.Field[crate::client::conn::http1::Builder::h1_read_buf_exact_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::read_buf_exact_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[0]", "Argument[self].Field[crate::client::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[0]", "ReturnValue.Field[crate::client::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[0]", "Argument[self].Field[crate::client::conn::http1::Builder::h1_writev].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[0]", "ReturnValue.Field[crate::client::conn::http1::Builder::h1_writev].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::with_upgrades", "Argument[self]", "ReturnValue.Field[crate::client::conn::http1::upgrades::UpgradeableConnection::inner].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::send_request", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::try_send_request", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::adaptive_window", "Argument[0]", "Argument[self].Field[crate::client::conn::http2::Builder::h2_builder].Field[crate::proto::h2::client::Config::adaptive_window]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::adaptive_window", "Argument[0]", "ReturnValue.Field[crate::client::conn::http2::Builder::h2_builder].Field[crate::proto::h2::client::Config::adaptive_window]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::handshake", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::handshake", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::header_table_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::initial_max_send_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_timeout", "Argument[0]", "Argument[self].Field[crate::client::conn::http2::Builder::h2_builder].Field[crate::proto::h2::client::Config::keep_alive_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_timeout", "Argument[0]", "ReturnValue.Field[crate::client::conn::http2::Builder::h2_builder].Field[crate::proto::h2::client::Config::keep_alive_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_while_idle", "Argument[0]", "Argument[self].Field[crate::client::conn::http2::Builder::h2_builder].Field[crate::proto::h2::client::Config::keep_alive_while_idle]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_while_idle", "Argument[0]", "ReturnValue.Field[crate::client::conn::http2::Builder::h2_builder].Field[crate::proto::h2::client::Config::keep_alive_while_idle]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_while_idle", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_concurrent_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_concurrent_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_header_list_size", "Argument[0]", "Argument[self].Field[crate::client::conn::http2::Builder::h2_builder].Field[crate::proto::h2::client::Config::max_header_list_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_header_list_size", "Argument[0]", "ReturnValue.Field[crate::client::conn::http2::Builder::h2_builder].Field[crate::proto::h2::client::Config::max_header_list_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_pending_accept_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_send_buf_size", "Argument[0]", "Argument[self].Field[crate::client::conn::http2::Builder::h2_builder].Field[crate::proto::h2::client::Config::max_send_buffer_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_send_buf_size", "Argument[0]", "ReturnValue.Field[crate::client::conn::http2::Builder::h2_builder].Field[crate::proto::h2::client::Config::max_send_buffer_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_send_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::client::conn::http2::Builder::exec]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::timer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::try_send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::unbound", "Argument[self].Field[crate::client::dispatch::Sender::inner]", "ReturnValue.Field[crate::client::dispatch::UnboundedSender::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::into_error", "Argument[self].Field[crate::client::dispatch::TrySendError::error]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::take_message", "Argument[self].Field[crate::client::dispatch::TrySendError::message].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::take_message", "Argument[self].Field[crate::client::dispatch::TrySendError::message]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::common::io::compat::Compat(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[crate::common::io::rewind::Rewind::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[crate::common::io::rewind::Rewind::pre].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::common::io::rewind::Rewind::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new_buffered", "Argument[0]", "ReturnValue.Field[crate::common::io::rewind::Rewind::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new_buffered", "Argument[1]", "ReturnValue.Field[crate::common::io::rewind::Rewind::pre].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::rewind", "Argument[0]", "Argument[self].Field[crate::common::io::rewind::Rewind::pre].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::check", "Argument[0].Field[crate::common::time::Dur::Configured(0)].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::check", "Argument[0].Field[crate::common::time::Dur::Default(0)].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::from_inner", "Argument[0]", "ReturnValue.Field[crate::ext::Protocol::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[crate::ext::Protocol::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::as_ref", "Argument[self].Field[crate::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::as_bytes", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::as_bytes", "Argument[self].Field[crate::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::wrap", "Argument[0]", "ReturnValue.Field[crate::ffi::http_types::hyper_response(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::proto::h1::conn::Conn::io].Field[crate::proto::h1::io::Buffered::io]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::pending_upgrade", "Argument[self].Field[crate::proto::h1::conn::Conn::state].Field[crate::proto::h1::conn::State::upgrade]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::set_h1_parser_config", "Argument[0]", "Argument[self].Field[crate::proto::h1::conn::Conn::state].Field[crate::proto::h1::conn::State::h1_parser_config]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::set_timer", "Argument[0]", "Argument[self].Field[crate::proto::h1::conn::Conn::state].Field[crate::proto::h1::conn::State::timer]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::wants_read_again", "Argument[self].Field[crate::proto::h1::conn::Conn::state].Field[crate::proto::h1::conn::State::notify_read]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::chunked", "Argument[0]", "ReturnValue.Field[crate::proto::h1::decode::Decoder::kind].Field[crate::proto::h1::decode::Kind::Chunked::h1_max_headers]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::chunked", "Argument[1]", "ReturnValue.Field[crate::proto::h1::decode::Decoder::kind].Field[crate::proto::h1::decode::Kind::Chunked::h1_max_header_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::length", "Argument[0]", "ReturnValue.Field[crate::proto::h1::decode::Decoder::kind].Field[crate::proto::h1::decode::Kind::Length(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[1]", "ReturnValue.Field[crate::proto::h1::decode::Decoder::kind].Field[crate::proto::h1::decode::Kind::Chunked::h1_max_headers]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[2]", "ReturnValue.Field[crate::proto::h1::decode::Decoder::kind].Field[crate::proto::h1::decode::Kind::Chunked::h1_max_header_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::recv_msg", "Argument[0].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::proto::h1::dispatch::Client::rx]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[crate::proto::h1::dispatch::Dispatcher::dispatch]", "ReturnValue.Field[2]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::proto::h1::dispatch::Dispatcher::dispatch]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[1]", "ReturnValue.Field[crate::proto::h1::dispatch::Dispatcher::conn]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::recv_msg", "Argument[0].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::recv_msg", "Argument[0].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::into_service", "Argument[self].Field[crate::proto::h1::dispatch::Server::service]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::proto::h1::dispatch::Server::service]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::chunk", "Argument[self].Field[crate::proto::h1::encode::ChunkSize::bytes].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0]", "ReturnValue.Field[crate::proto::h1::encode::EncodedBuf::kind].Field[crate::proto::h1::encode::BufKind::Chunked(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0]", "ReturnValue.Field[crate::proto::h1::encode::EncodedBuf::kind].Field[crate::proto::h1::encode::BufKind::Exact(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0]", "ReturnValue.Field[crate::proto::h1::encode::EncodedBuf::kind].Field[crate::proto::h1::encode::BufKind::Limited(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::encode", "Argument[0]", "ReturnValue.Field[crate::proto::h1::encode::EncodedBuf::kind].Field[crate::proto::h1::encode::BufKind::Exact(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::encode_and_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::end", "Argument[self].Field[crate::proto::h1::encode::Encoder::kind].Field[crate::proto::h1::encode::Kind::Length(0)]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::proto::h1::encode::NotEof(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::into_chunked_with_trailing_fields", "Argument[self].Field[crate::proto::h1::encode::Encoder::is_last]", "ReturnValue.Field[crate::proto::h1::encode::Encoder::is_last]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::into_chunked_with_trailing_fields", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::is_last", "Argument[self].Field[crate::proto::h1::encode::Encoder::is_last]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::length", "Argument[0]", "ReturnValue.Field[crate::proto::h1::encode::Encoder::kind].Field[crate::proto::h1::encode::Kind::Length(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::set_last", "Argument[0]", "Argument[self].Field[crate::proto::h1::encode::Encoder::is_last]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::set_last", "Argument[0]", "ReturnValue.Field[crate::proto::h1::encode::Encoder::is_last]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::set_last", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[crate::proto::h1::io::Buffered::io]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::io_mut", "Argument[self].Field[crate::proto::h1::io::Buffered::io]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::is_read_blocked", "Argument[self].Field[crate::proto::h1::io::Buffered::read_blocked]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::proto::h1::io::Buffered::io]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::read_buf_mut", "Argument[self].Field[crate::proto::h1::io::Buffered::read_buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::set_flush_pipeline", "Argument[0]", "Argument[self].Field[crate::proto::h1::io::Buffered::flush_pipeline]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::set_max_buf_size", "Argument[0]", "Argument[self].Field[crate::proto::h1::io::Buffered::read_buf_strategy].Field[crate::proto::h1::io::ReadStrategy::Adaptive::max]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::set_max_buf_size", "Argument[0]", "Argument[self].Field[crate::proto::h1::io::Buffered::write_buf].Field[crate::proto::h1::io::WriteBuf::max_buf_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::set_read_buf_exact_size", "Argument[0]", "Argument[self].Field[crate::proto::h1::io::Buffered::read_buf_strategy].Field[crate::proto::h1::io::ReadStrategy::Exact(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::write_buf", "Argument[self].Field[crate::proto::h1::io::Buffered::write_buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::proto::h1::io::Cursor::bytes]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::is_terminated", "Argument[self].Field[crate::proto::h2::client::ConnMapErr::is_terminated]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::for_stream", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[1]", "ReturnValue.Field[crate::proto::h2::server::Server::service]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[2].Field[crate::proto::h2::server::Config::date_header]", "ReturnValue.Field[crate::proto::h2::server::Server::date_header]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[3]", "ReturnValue.Field[crate::proto::h2::server::Server::exec]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[4]", "ReturnValue.Field[crate::proto::h2::server::Server::timer]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::init_len", "Argument[self].Field[crate::rt::io::ReadBuf::init]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::len", "Argument[self].Field[crate::rt::io::ReadBuf::filled]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::uninit", "Argument[0]", "ReturnValue.Field[crate::rt::io::ReadBuf::raw]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::as_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::auto_date_header", "Argument[0]", "Argument[self].Field[crate::server::conn::http1::Builder::date_header]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::auto_date_header", "Argument[0]", "ReturnValue.Field[crate::server::conn::http1::Builder::date_header]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::auto_date_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::half_close", "Argument[0]", "Argument[self].Field[crate::server::conn::http1::Builder::h1_half_close]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::half_close", "Argument[0]", "ReturnValue.Field[crate::server::conn::http1::Builder::h1_half_close]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::half_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::header_read_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::ignore_invalid_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive", "Argument[0]", "Argument[self].Field[crate::server::conn::http1::Builder::h1_keep_alive]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive", "Argument[0]", "ReturnValue.Field[crate::server::conn::http1::Builder::h1_keep_alive]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_buf_size", "Argument[0]", "Argument[self].Field[crate::server::conn::http1::Builder::max_buf_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_buf_size", "Argument[0]", "ReturnValue.Field[crate::server::conn::http1::Builder::max_buf_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[0]", "Argument[self].Field[crate::server::conn::http1::Builder::h1_max_headers].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[0]", "ReturnValue.Field[crate::server::conn::http1::Builder::h1_max_headers].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::pipeline_flush", "Argument[0]", "Argument[self].Field[crate::server::conn::http1::Builder::pipeline_flush]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::pipeline_flush", "Argument[0]", "ReturnValue.Field[crate::server::conn::http1::Builder::pipeline_flush]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::pipeline_flush", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[0]", "Argument[self].Field[crate::server::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[0]", "ReturnValue.Field[crate::server::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::timer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[0]", "Argument[self].Field[crate::server::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[0]", "ReturnValue.Field[crate::server::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[0]", "Argument[self].Field[crate::server::conn::http1::Builder::h1_writev].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[0]", "ReturnValue.Field[crate::server::conn::http1::Builder::h1_writev].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::with_upgrades", "Argument[self]", "ReturnValue.Field[crate::server::conn::http1::UpgradeableConnection::inner].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::adaptive_window", "Argument[0]", "Argument[self].Field[crate::server::conn::http2::Builder::h2_builder].Field[crate::proto::h2::server::Config::adaptive_window]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::adaptive_window", "Argument[0]", "ReturnValue.Field[crate::server::conn::http2::Builder::h2_builder].Field[crate::proto::h2::server::Config::adaptive_window]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::auto_date_header", "Argument[0]", "Argument[self].Field[crate::server::conn::http2::Builder::h2_builder].Field[crate::proto::h2::server::Config::date_header]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::auto_date_header", "Argument[0]", "ReturnValue.Field[crate::server::conn::http2::Builder::h2_builder].Field[crate::proto::h2::server::Config::date_header]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::auto_date_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::enable_connect_protocol", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_timeout", "Argument[0]", "Argument[self].Field[crate::server::conn::http2::Builder::h2_builder].Field[crate::proto::h2::server::Config::keep_alive_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_timeout", "Argument[0]", "ReturnValue.Field[crate::server::conn::http2::Builder::h2_builder].Field[crate::proto::h2::server::Config::keep_alive_timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_concurrent_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_header_list_size", "Argument[0]", "Argument[self].Field[crate::server::conn::http2::Builder::h2_builder].Field[crate::proto::h2::server::Config::max_header_list_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_header_list_size", "Argument[0]", "ReturnValue.Field[crate::server::conn::http2::Builder::h2_builder].Field[crate::proto::h2::server::Config::max_header_list_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_local_error_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_pending_accept_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_send_buf_size", "Argument[0]", "Argument[self].Field[crate::server::conn::http2::Builder::h2_builder].Field[crate::proto::h2::server::Config::max_send_buffer_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_send_buf_size", "Argument[0]", "ReturnValue.Field[crate::server::conn::http2::Builder::h2_builder].Field[crate::proto::h2::server::Config::max_send_buffer_size]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::max_send_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::server::conn::http2::Builder::exec]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::serve_connection", "Argument[1]", "ReturnValue.Field[crate::server::conn::http2::Connection::conn].Field[crate::proto::h2::server::Server::service]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::serve_connection", "Argument[self].Field[crate::server::conn::http2::Builder::exec].Reference", "ReturnValue.Field[crate::server::conn::http2::Connection::conn].Field[crate::proto::h2::server::Server::exec]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::serve_connection", "Argument[self].Field[crate::server::conn::http2::Builder::timer].Reference", "ReturnValue.Field[crate::server::conn::http2::Connection::conn].Field[crate::proto::h2::server::Server::timer]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::serve_connection", "Argument[self].Field[crate::server::conn::http2::Builder::timer]", "ReturnValue.Field[crate::server::conn::http2::Connection::conn].Field[crate::proto::h2::server::Server::timer]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::timer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::clone", "Argument[self].Field[crate::service::util::ServiceFn::f].Reference", "ReturnValue.Field[crate::service::util::ServiceFn::f]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::clone", "Argument[self].Field[crate::service::util::ServiceFn::f]", "ReturnValue.Field[crate::service::util::ServiceFn::f]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::call", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::inner", "Argument[self].Field[crate::support::tokiort::TokioIo::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::support::tokiort::TokioIo::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[crate::support::trailers::StreamBodyWithTrailers::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::set_trailers", "Argument[0]", "Argument[self].Field[crate::support::trailers::StreamBodyWithTrailers::trailers].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::with_trailers", "Argument[0]", "ReturnValue.Field[crate::support::trailers::StreamBodyWithTrailers::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::with_trailers", "Argument[1]", "ReturnValue.Field[crate::support::trailers::StreamBodyWithTrailers::trailers].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "crate::proto::h2::client::handshake", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::proto::h2::client::ClientTask::req_rx]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "crate::proto::h2::client::handshake", "Argument[3]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::proto::h2::client::ClientTask::executor]", "value", "dfc-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "crate::proto::h2::ping::channel", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "crate::service::util::service_fn", "Argument[0]", "ReturnValue.Field[crate::service::util::ServiceFn::f]", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/hyperium/hyper:hyper", "::check", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::poll_read_body", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::write_body", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::write_body_and_end", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::write_trailers", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::encode", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "::encode", "Argument[0]", "log-injection", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["repo:https://github.com/hyperium/hyper:hyper", "crate::ffi::body::hyper_buf_bytes", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "crate::ffi::http_types::hyper_response_reason_phrase", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "crate::ffi::hyper_version", "ReturnValue", "pointer-invalidate", "df-generated"] + - ["repo:https://github.com/hyperium/hyper:hyper", "crate::ffi::task::hyper_executor_new", "ReturnValue", "pointer-invalidate", "df-generated"] diff --git a/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc-test.model.yml b/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc-test.model.yml new file mode 100644 index 00000000000..09c7a61c4f7 --- /dev/null +++ b/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc-test.model.yml @@ -0,0 +1,19 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rust-lang/libc:libc-test", "::check_file", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc-test", "::reset_state", "Argument[self].Field[crate::style::StyleChecker::errors]", "Argument[self].Reference.Field[crate::style::StyleChecker::errors]", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/rust-lang/libc:libc-test", "::check_file", "Argument[0]", "path-injection", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["repo:https://github.com/rust-lang/libc:libc-test", "::check_file", "ReturnValue", "file", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc-test", "::finalize", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc.model.yml b/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc.model.yml new file mode 100644 index 00000000000..e8dc059dd9d --- /dev/null +++ b/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc.model.yml @@ -0,0 +1,28 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rust-lang/libc:libc", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "::si_addr", "Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_addr]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "::si_pid", "Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_pid]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "::si_status", "Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_status]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "::si_uid", "Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_uid]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::QCMD", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::QCMD", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::WEXITSTATUS", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::WTERMSIG", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::apple::CMSG_LEN", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::apple::CMSG_NXTHDR", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::apple::CMSG_SPACE", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::apple::VM_MAKE_TAG", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::apple::WSTOPSIG", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::apple::_WSTATUS", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::apple::major", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::apple::makedev", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::apple::makedev", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::bsd::apple::minor", "Argument[0]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/log/repo-https-github.com-rust-lang-log-log.model.yml b/rust/ql/lib/ext/generated/log/repo-https-github.com-rust-lang-log-log.model.yml new file mode 100644 index 00000000000..a894c71018f --- /dev/null +++ b/rust/ql/lib/ext/generated/log/repo-https-github.com-rust-lang-log-log.model.yml @@ -0,0 +1,59 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[self].Field[crate::Metadata::level]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[self].Field[crate::Metadata::target]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::build", "Argument[self].Field[crate::MetadataBuilder::metadata].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::build", "Argument[self].Field[crate::MetadataBuilder::metadata]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[0]", "Argument[self].Field[crate::MetadataBuilder::metadata].Field[crate::Metadata::level]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[0]", "ReturnValue.Field[crate::MetadataBuilder::metadata].Field[crate::Metadata::level]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[0]", "Argument[self].Field[crate::MetadataBuilder::metadata].Field[crate::Metadata::target]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[0]", "ReturnValue.Field[crate::MetadataBuilder::metadata].Field[crate::Metadata::target]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::args", "Argument[self].Field[crate::Record::args]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::file", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::key_values", "Argument[self].Field[crate::Record::key_values].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::key_values", "Argument[self].Field[crate::Record::key_values].Field[crate::KeyValues(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[self].Field[crate::Record::metadata].Field[crate::Metadata::level]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::line", "Argument[self].Field[crate::Record::line]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::metadata", "Argument[self].Field[crate::Record::metadata]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::module_path", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[self].Field[crate::Record::metadata].Field[crate::Metadata::target]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::to_builder", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::args", "Argument[0]", "Argument[self].Field[crate::RecordBuilder::record].Field[crate::Record::args]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::args", "Argument[0]", "ReturnValue.Field[crate::RecordBuilder::record].Field[crate::Record::args]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::build", "Argument[self].Field[crate::RecordBuilder::record].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::build", "Argument[self].Field[crate::RecordBuilder::record]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::file", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::file_static", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::key_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::line", "Argument[0]", "Argument[self].Field[crate::RecordBuilder::record].Field[crate::Record::line]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::line", "Argument[0]", "ReturnValue.Field[crate::RecordBuilder::record].Field[crate::Record::line]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::line", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::metadata", "Argument[0]", "Argument[self].Field[crate::RecordBuilder::record].Field[crate::Record::metadata]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::metadata", "Argument[0]", "ReturnValue.Field[crate::RecordBuilder::record].Field[crate::Record::metadata]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::metadata", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::module_path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::module_path_static", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::to_key", "Argument[self]", "ReturnValue.Field[crate::kv::key::Key::key]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::from_value", "Argument[0]", "ReturnValue.Field[crate::kv::error::Error::inner].Field[crate::kv::error::Inner::Value(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::into_value", "Argument[self].Field[crate::kv::error::Error::inner].Field[crate::kv::error::Inner::Value(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::msg", "Argument[0]", "ReturnValue.Field[crate::kv::error::Error::inner].Field[crate::kv::error::Inner::Msg(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::borrow", "Argument[self].Field[crate::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::as_ref", "Argument[self].Field[crate::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::from", "Argument[0]", "ReturnValue.Field[crate::kv::key::Key::key]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::to_key", "Argument[self].Field[crate::kv::key::Key::key]", "ReturnValue.Field[crate::kv::key::Key::key]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::as_str", "Argument[self].Field[crate::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::from_str", "Argument[0]", "ReturnValue.Field[crate::kv::key::Key::key]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::to_borrowed_str", "Argument[self].Field[crate::kv::key::Key::key]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::to_value", "Argument[self].Field[crate::kv::value::Value::inner].Reference", "ReturnValue.Field[crate::kv::value::Value::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::to_value", "Argument[self].Field[crate::kv::value::Value::inner]", "ReturnValue.Field[crate::kv::value::Value::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::to_key", "Argument[self]", "ReturnValue.Field[crate::kv::key::Key::key]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-lang/log:log", "::to_key", "Argument[self]", "ReturnValue.Field[crate::kv::key::Key::key]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/memchr/repo-https-github.com-BurntSushi-memchr-memchr.model.yml b/rust/ql/lib/ext/generated/memchr/repo-https-github.com-BurntSushi-memchr-memchr.model.yml new file mode 100644 index 00000000000..62617b2b033 --- /dev/null +++ b/rust/ql/lib/ext/generated/memchr/repo-https-github.com-BurntSushi-memchr-memchr.model.yml @@ -0,0 +1,168 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[crate::arch::aarch64::neon::memchr::OneIter::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[crate::arch::aarch64::neon::memchr::One(0)].Field[crate::arch::generic::memchr::One::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[crate::arch::aarch64::neon::memchr::OneIter::it].Field[crate::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[crate::arch::aarch64::neon::memchr::ThreeIter::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[crate::arch::aarch64::neon::memchr::Three(0)].Field[crate::arch::generic::memchr::Three::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[1]", "ReturnValue.Field[crate::arch::aarch64::neon::memchr::Three(0)].Field[crate::arch::generic::memchr::Three::s2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[2]", "ReturnValue.Field[crate::arch::aarch64::neon::memchr::Three(0)].Field[crate::arch::generic::memchr::Three::s3]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[crate::arch::aarch64::neon::memchr::ThreeIter::it].Field[crate::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[crate::arch::aarch64::neon::memchr::TwoIter::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[crate::arch::aarch64::neon::memchr::Two(0)].Field[crate::arch::generic::memchr::Two::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[1]", "ReturnValue.Field[crate::arch::aarch64::neon::memchr::Two(0)].Field[crate::arch::generic::memchr::Two::s2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[crate::arch::aarch64::neon::memchr::TwoIter::it].Field[crate::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[crate::arch::all::memchr::OneIter::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::arch::all::memchr::One::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::memchr::One::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[crate::arch::all::memchr::OneIter::it].Field[crate::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[crate::arch::all::memchr::ThreeIter::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::arch::all::memchr::Three::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[crate::arch::all::memchr::Three::s2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[2]", "ReturnValue.Field[crate::arch::all::memchr::Three::s3]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::memchr::Three::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[1]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::memchr::Three::s2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[2]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::memchr::Three::s3]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[crate::arch::all::memchr::ThreeIter::it].Field[crate::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[crate::arch::all::memchr::TwoIter::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::arch::all::memchr::Two::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[crate::arch::all::memchr::Two::s2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::memchr::Two::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[1]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::memchr::Two::s2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[crate::arch::all::memchr::TwoIter::it].Field[crate::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::packedpair::Finder::byte1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::packedpair::Finder::byte2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::pair", "Argument[self].Field[crate::arch::all::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::with_pair", "Argument[0].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::packedpair::Finder::byte1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::with_pair", "Argument[0].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::packedpair::Finder::byte2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::with_pair", "Argument[1]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::packedpair::Finder::pair]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::index1", "Argument[self].Field[crate::arch::all::packedpair::Pair::index1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::index2", "Argument[self].Field[crate::arch::all::packedpair::Pair::index2]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::with_indices", "Argument[1]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::packedpair::Pair::index1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::with_indices", "Argument[2]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::arch::all::packedpair::Pair::index2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::count", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::count", "Argument[self].Field[crate::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::count", "Argument[self].Field[crate::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[crate::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[crate::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[crate::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next_back", "Argument[self].Field[crate::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next_back", "Argument[self].Field[crate::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle1", "Argument[self].Field[crate::arch::generic::memchr::One::s1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::arch::generic::memchr::One::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle1", "Argument[self].Field[crate::arch::generic::memchr::Three::s1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle2", "Argument[self].Field[crate::arch::generic::memchr::Three::s2]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle3", "Argument[self].Field[crate::arch::generic::memchr::Three::s3]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::arch::generic::memchr::Three::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[crate::arch::generic::memchr::Three::s2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[2]", "ReturnValue.Field[crate::arch::generic::memchr::Three::s3]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle1", "Argument[self].Field[crate::arch::generic::memchr::Two::s1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle2", "Argument[self].Field[crate::arch::generic::memchr::Two::s2]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::arch::generic::memchr::Two::s1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[crate::arch::generic::memchr::Two::s2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::min_haystack_len", "Argument[self].Field[crate::arch::generic::packedpair::Finder::min_haystack_len]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[crate::arch::generic::packedpair::Finder::pair]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::pair", "Argument[self].Field[crate::arch::generic::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[0].Field[crate::cow::Imp::Owned(0)]", "ReturnValue.Field[crate::cow::CowBytes(0)].Field[crate::cow::Imp::Owned(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[crate::cow::CowBytes(0)].Field[crate::cow::Imp::Owned(0)]", "ReturnValue.Field[crate::cow::CowBytes(0)].Field[crate::cow::Imp::Owned(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::memchr::Memchr2::needle1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[crate::memchr::Memchr2::needle2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::memchr::Memchr3::needle1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[crate::memchr::Memchr3::needle2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[2]", "ReturnValue.Field[crate::memchr::Memchr3::needle3]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::memchr::Memchr::needle1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::memmem::FindIter::haystack]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[crate::memmem::FindIter::finder]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[crate::memmem::FindRevIter::finder].Field[crate::memmem::FinderRev::searcher]", "ReturnValue.Field[crate::memmem::FindRevIter::finder].Field[crate::memmem::FinderRev::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[crate::memmem::FindRevIter::haystack]", "ReturnValue.Field[crate::memmem::FindRevIter::haystack]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[crate::memmem::FindRevIter::pos]", "ReturnValue.Field[crate::memmem::FindRevIter::pos]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::memmem::FindRevIter::haystack]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[crate::memmem::FindRevIter::finder]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::as_ref", "Argument[self].Field[crate::memmem::Finder::searcher].Reference", "ReturnValue.Field[crate::memmem::Finder::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::as_ref", "Argument[self].Field[crate::memmem::Finder::searcher]", "ReturnValue.Field[crate::memmem::Finder::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_iter", "Argument[0]", "ReturnValue.Field[crate::memmem::FindIter::haystack]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_iter", "Argument[self].Field[crate::memmem::Finder::searcher].Reference", "ReturnValue.Field[crate::memmem::FindIter::finder].Field[crate::memmem::Finder::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_iter", "Argument[self].Field[crate::memmem::Finder::searcher]", "ReturnValue.Field[crate::memmem::FindIter::finder].Field[crate::memmem::Finder::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[crate::memmem::Finder::searcher].Reference", "ReturnValue.Field[crate::memmem::Finder::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[crate::memmem::Finder::searcher]", "ReturnValue.Field[crate::memmem::Finder::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::prefilter", "Argument[0]", "Argument[self].Field[crate::memmem::FinderBuilder::prefilter]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::prefilter", "Argument[0]", "ReturnValue.Field[crate::memmem::FinderBuilder::prefilter]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::prefilter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::as_ref", "Argument[self].Field[crate::memmem::FinderRev::searcher].Reference", "ReturnValue.Field[crate::memmem::FinderRev::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::as_ref", "Argument[self].Field[crate::memmem::FinderRev::searcher]", "ReturnValue.Field[crate::memmem::FinderRev::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[crate::memmem::FinderRev::searcher].Reference", "ReturnValue.Field[crate::memmem::FinderRev::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[crate::memmem::FinderRev::searcher]", "ReturnValue.Field[crate::memmem::FinderRev::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::rfind_iter", "Argument[0]", "ReturnValue.Field[crate::memmem::FindRevIter::haystack]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::rfind_iter", "Argument[self].Field[crate::memmem::FinderRev::searcher].Reference", "ReturnValue.Field[crate::memmem::FindRevIter::finder].Field[crate::memmem::FinderRev::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::rfind_iter", "Argument[self].Field[crate::memmem::FinderRev::searcher]", "ReturnValue.Field[crate::memmem::FindRevIter::finder].Field[crate::memmem::FinderRev::searcher]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[1]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[2]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0].Element", "ReturnValue.Field[crate::memmem::searcher::SearcherRev::kind].Field[crate::memmem::searcher::SearcherRevKind::OneByte::needle]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[crate::tests::memchr::Runner::needle_len]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::fwd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::fwd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::rev", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::all_zeros_except_least_significant", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::and", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::and", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::clear_least_significant_bit", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::or", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::or", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::all_zeros_except_least_significant", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::and", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::and", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::clear_least_significant_bit", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::or", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::or", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::to_char", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::count_byte_by_byte", "Argument[0].Reference", "Argument[2].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::fwd_byte_by_byte", "Argument[0].Reference", "Argument[2].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::fwd_byte_by_byte", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::search_slice_with_raw", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::search_slice_with_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::search_slice_with_raw", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr2_iter", "Argument[0]", "ReturnValue.Field[crate::memchr::Memchr2::needle1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr2_iter", "Argument[1]", "ReturnValue.Field[crate::memchr::Memchr2::needle2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr3_iter", "Argument[0]", "ReturnValue.Field[crate::memchr::Memchr3::needle1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr3_iter", "Argument[1]", "ReturnValue.Field[crate::memchr::Memchr3::needle2]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr3_iter", "Argument[2]", "ReturnValue.Field[crate::memchr::Memchr3::needle3]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr_iter", "Argument[0]", "ReturnValue.Field[crate::memchr::Memchr::needle1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memmem::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memmem::find_iter", "Argument[0]", "ReturnValue.Field[crate::memmem::FindIter::haystack]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memmem::rfind_iter", "Argument[0]", "ReturnValue.Field[crate::memmem::FindRevIter::haystack]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::prefix_is_substring", "Argument[0].Element", "Argument[1].Parameter[1].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::prefix_is_substring", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::same_as_naive", "Argument[1]", "Argument[3].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::same_as_naive", "Argument[2]", "Argument[3].Parameter[1]", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::suffix_is_substring", "Argument[0].Element", "Argument[1].Parameter[1].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::suffix_is_substring", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_prefilter", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/memchr/repo-shared.model.yml b/rust/ql/lib/ext/generated/memchr/repo-shared.model.yml new file mode 100644 index 00000000000..792aa942c4d --- /dev/null +++ b/rust/ql/lib/ext/generated/memchr/repo-shared.model.yml @@ -0,0 +1,27 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo::shared", "::one_needle", "Argument[self].Field[crate::Benchmark::needles].Element", "ReturnValue.Field[crate::result::Result::Ok(0)].Reference", "value", "dfc-generated"] + - ["repo::shared", "::one_needle_byte", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo::shared", "::three_needle_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo::shared", "::two_needle_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo::shared", "crate::count_memchr2", "Argument[0]", "Argument[3].Parameter[0]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memchr2", "Argument[1]", "Argument[3].Parameter[1]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memchr2", "Argument[2]", "Argument[3].Parameter[2]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memchr3", "Argument[0]", "Argument[4].Parameter[0]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memchr3", "Argument[1]", "Argument[4].Parameter[1]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memchr3", "Argument[2]", "Argument[4].Parameter[2]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memchr3", "Argument[3]", "Argument[4].Parameter[3]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memchr", "Argument[0]", "Argument[2].Parameter[0]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memchr", "Argument[1]", "Argument[2].Parameter[1]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memmem", "Argument[0]", "Argument[2].Parameter[0]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memmem", "Argument[1]", "Argument[2].Parameter[1]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memmem_str", "Argument[0]", "Argument[2].Parameter[0]", "value", "dfc-generated"] + - ["repo::shared", "crate::count_memmem_str", "Argument[1]", "Argument[2].Parameter[1]", "value", "dfc-generated"] + - ["repo::shared", "crate::run", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo::shared", "crate::run_and_count", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo::shared", "crate::run_and_count", "Argument[2]", "Argument[1]", "taint", "df-generated"] + - ["repo::shared", "crate::run_and_count", "Argument[2]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/once_cell/repo-https-github.com-matklad-once_cell-once_cell.model.yml b/rust/ql/lib/ext/generated/once_cell/repo-https-github.com-matklad-once_cell-once_cell.model.yml new file mode 100644 index 00000000000..deaaf890d15 --- /dev/null +++ b/rust/ql/lib/ext/generated/once_cell/repo-https-github.com-matklad-once_cell-once_cell.model.yml @@ -0,0 +1,21 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_try_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::set", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::try_insert", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::set", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::try_insert", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/matklad/once_cell:once_cell", "::try_insert", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rand/repo-benches.model.yml b/rust/ql/lib/ext/generated/rand/repo-benches.model.yml new file mode 100644 index 00000000000..a16a29a127f --- /dev/null +++ b/rust/ql/lib/ext/generated/rand/repo-benches.model.yml @@ -0,0 +1,9 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo::benches", "::next", "Argument[self].Field[crate::UnhintedIterator::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo::benches", "::next", "Argument[self].Field[crate::WindowHintedIterator::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo::benches", "::size_hint", "Argument[self].Field[crate::WindowHintedIterator::window_size]", "ReturnValue.Field[0]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand.model.yml b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand.model.yml new file mode 100644 index 00000000000..682e2545713 --- /dev/null +++ b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand.model.yml @@ -0,0 +1,63 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rust-random/rand:rand", "<&_ as crate::distr::uniform::SampleBorrow>::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "<_ as crate::distr::uniform::SampleBorrow>::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::any", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::replace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::from_ratio", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::from_ratio", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::p", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::sample", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::distr::slice::Choose::slice]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::num_choices", "Argument[self].Field[crate::distr::slice::Choose::num_choices]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::sample", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::total_weight", "Argument[self].Field[crate::distr::weighted::weighted_index::WeightedIndex::total_weight].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::total_weight", "Argument[self].Field[crate::distr::weighted::weighted_index::WeightedIndex::total_weight]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::update_weights", "Argument[self].Field[crate::distr::weighted::weighted_index::WeightedIndex::total_weight].Reference", "Argument[self].Field[crate::distr::weighted::weighted_index::WeightedIndex::total_weight]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::weight", "Argument[self].Field[crate::distr::weighted::weighted_index::WeightedIndex::total_weight].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::weight", "Argument[self].Field[crate::distr::weighted::weighted_index::WeightedIndex::total_weight]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::weights", "Argument[self]", "ReturnValue.Field[crate::distr::weighted::weighted_index::WeightedIndexIter::weighted_index]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::clone", "Argument[self].Field[crate::distr::weighted::weighted_index::WeightedIndexIter::index]", "ReturnValue.Field[crate::distr::weighted::weighted_index::WeightedIndexIter::index]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::clone", "Argument[self].Field[crate::distr::weighted::weighted_index::WeightedIndexIter::weighted_index]", "ReturnValue.Field[crate::distr::weighted::weighted_index::WeightedIndexIter::weighted_index]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::next_u32", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::next_u64", "Argument[self].Field[crate::rngs::mock::StepRng::v]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[0]", "ReturnValue.Field[crate::rngs::mock::StepRng::v]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[1]", "ReturnValue.Field[crate::rngs::mock::StepRng::a]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[1]", "ReturnValue.Field[crate::rngs::reseeding::ReseedingCore::reseeder]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[0]", "ReturnValue.Field[crate::seq::coin_flipper::CoinFlipper::rng]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[0]", "ReturnValue.Field[crate::seq::increasing_uniform::IncreasingUniform::rng]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[1]", "ReturnValue.Field[crate::seq::increasing_uniform::IncreasingUniform::n]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::next_index", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::from", "Argument[0]", "ReturnValue.Field[crate::seq::index_::IndexVec::U32(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::from", "Argument[0]", "ReturnValue.Field[crate::seq::index_::IndexVec::U64(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self].Field[crate::seq::iterator::test::ChunkHintedIterator::chunk_size]", "Argument[self].Field[crate::seq::iterator::test::ChunkHintedIterator::chunk_remaining]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self].Field[crate::seq::iterator::test::ChunkHintedIterator::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::size_hint", "Argument[self].Field[crate::seq::iterator::test::ChunkHintedIterator::chunk_remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self].Field[crate::seq::iterator::test::UnhintedIterator::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self].Field[crate::seq::iterator::test::WindowHintedIterator::iter].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::size_hint", "Argument[self].Field[crate::seq::iterator::test::WindowHintedIterator::window_size]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::extract_lane", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::replace", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::cast_from_int", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::extract_lane", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::replace", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::cast_from_int", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_chacha.model.yml b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_chacha.model.yml new file mode 100644 index 00000000000..456b8c7e3e7 --- /dev/null +++ b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_chacha.model.yml @@ -0,0 +1,16 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rust-random/rand:rand_chacha", "::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_chacha", "::as_mut", "Argument[self].Field[crate::chacha::Array64(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_chacha", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_chacha", "::as_ref", "Argument[self].Field[crate::chacha::Array64(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue.Field[crate::chacha::ChaCha12Rng::rng].Field[crate::block::BlockRng::core]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue.Field[crate::chacha::ChaCha20Rng::rng].Field[crate::block::BlockRng::core]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue.Field[crate::chacha::ChaCha8Rng::rng].Field[crate::block::BlockRng::core]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_chacha", "crate::guts::diagonalize", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_chacha", "crate::guts::round", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_chacha", "crate::guts::undiagonalize", "Argument[0]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_core.model.yml b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_core.model.yml new file mode 100644 index 00000000000..013eb600dc6 --- /dev/null +++ b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_core.model.yml @@ -0,0 +1,15 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rust-random/rand:rand_core", "::re", "Argument[self].Field[0]", "ReturnValue.Field[crate::UnwrapMut(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_core", "::re", "Argument[self].Field[crate::UnwrapMut(0)]", "ReturnValue.Field[crate::UnwrapMut(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_core", "::next_u32", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand_core", "::generate_and_set", "Argument[0]", "Argument[self].Field[crate::block::BlockRng64::index]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_core", "::index", "Argument[self].Field[crate::block::BlockRng64::index]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_core", "::new", "Argument[0]", "ReturnValue.Field[crate::block::BlockRng64::core]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_core", "::generate_and_set", "Argument[0]", "Argument[self].Field[crate::block::BlockRng::index]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_core", "::index", "Argument[self].Field[crate::block::BlockRng::index]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_core", "::new", "Argument[0]", "ReturnValue.Field[crate::block::BlockRng::core]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_pcg.model.yml b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_pcg.model.yml new file mode 100644 index 00000000000..054d5e8ca16 --- /dev/null +++ b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_pcg.model.yml @@ -0,0 +1,10 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rust-random/rand:rand_pcg", "::new", "Argument[0]", "ReturnValue.Field[crate::pcg128::Lcg128Xsl64::state]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_pcg", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rust-random/rand:rand_pcg", "::new", "Argument[0]", "ReturnValue.Field[crate::pcg128cm::Lcg128CmDxsm64::state]", "value", "dfc-generated"] + - ["repo:https://github.com/rust-random/rand:rand_pcg", "::new", "Argument[0]", "ReturnValue.Field[crate::pcg64::Lcg64Xsh32::state]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/reqwest/repo-https-github.com-seanmonstar-reqwest-reqwest.model.yml b/rust/ql/lib/ext/generated/reqwest/repo-https-github.com-seanmonstar-reqwest-reqwest.model.yml index 53f2675a0c0..7355d362c71 100644 --- a/rust/ql/lib/ext/generated/reqwest/repo-https-github.com-seanmonstar-reqwest-reqwest.model.yml +++ b/rust/ql/lib/ext/generated/reqwest/repo-https-github.com-seanmonstar-reqwest-reqwest.model.yml @@ -1,5 +1,374 @@ # THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "<&str as crate::into_url::IntoUrlSealed>::as_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "<&str as crate::into_url::IntoUrlSealed>::into_url", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_url", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from", "Argument[0]", "ReturnValue.Field[crate::async_impl::body::Body::inner].Field[crate::async_impl::body::Inner::Reusable(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_stream", "Argument[self]", "ReturnValue.Field[crate::async_impl::body::DataStream(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::reusable", "Argument[0]", "ReturnValue.Field[crate::async_impl::body::Body::inner].Field[crate::async_impl::body::Inner::Reusable(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::try_reuse", "Argument[self].Field[crate::async_impl::body::Body::inner].Field[crate::async_impl::body::Inner::Reusable(0)]", "ReturnValue.Field[0].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::try_reuse", "Argument[self]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::delete", "Argument[self].Reference", "ReturnValue.Field[crate::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::get", "Argument[self].Reference", "ReturnValue.Field[crate::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::head", "Argument[self].Reference", "ReturnValue.Field[crate::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::patch", "Argument[self].Reference", "ReturnValue.Field[crate::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::post", "Argument[self].Reference", "ReturnValue.Field[crate::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::put", "Argument[self].Reference", "ReturnValue.Field[crate::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::request", "Argument[self].Reference", "ReturnValue.Field[crate::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_crl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_crls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_root_certificate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::brotli", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::nodelay]", "ReturnValue.Field[crate::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_info]", "ReturnValue.Field[crate::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connection_verbose", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::connection_verbose]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connection_verbose", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::connection_verbose]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connection_verbose", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connector_layer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::cookie_provider", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::cookie_store", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::danger_accept_invalid_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::danger_accept_invalid_hostnames", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::default_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::deflate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::dns_resolver", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::gzip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::hickory_dns", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::hickory_dns", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::hickory_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http09_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_obsolete_multiline_headers_in_responses", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::http1_allow_obsolete_multiline_headers_in_responses]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_obsolete_multiline_headers_in_responses", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::http1_allow_obsolete_multiline_headers_in_responses]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_obsolete_multiline_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_spaces_after_header_name_in_responses", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::http1_allow_spaces_after_header_name_in_responses]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_spaces_after_header_name_in_responses", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::http1_allow_spaces_after_header_name_in_responses]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_spaces_after_header_name_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_ignore_invalid_headers_in_responses", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::http1_ignore_invalid_headers_in_responses]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_ignore_invalid_headers_in_responses", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::http1_ignore_invalid_headers_in_responses]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_ignore_invalid_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_adaptive_window", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::http2_adaptive_window]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_adaptive_window", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::http2_adaptive_window]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_keep_alive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_keep_alive_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_keep_alive_while_idle", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::http2_keep_alive_while_idle]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_keep_alive_while_idle", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::http2_keep_alive_while_idle]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_keep_alive_while_idle", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_conn_receive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_max_idle_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_send_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_stream_receive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::https_only", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::https_only]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::https_only", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::https_only]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::https_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::max_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::min_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_idle_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_max_idle_per_host", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::pool_max_idle_per_host]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_max_idle_per_host", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::pool_max_idle_per_host]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_max_idle_per_host", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::read_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::redirect", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::redirect_policy]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::redirect", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::redirect_policy]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::redirect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::referer", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::referer]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::referer", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::referer]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::referer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve_to_addrs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_keepalive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_nodelay", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::nodelay]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_nodelay", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::nodelay]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_nodelay", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_native_certs", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_built_in_certs_native]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_native_certs", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_built_in_certs_native]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_native_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_root_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_webpki_certs", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_built_in_certs_webpki]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_webpki_certs", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_built_in_certs_webpki]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_webpki_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_early_data", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_enable_early_data]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_early_data", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_enable_early_data]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_early_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_info", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_info]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_info", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_info]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_info", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_sni", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_sni]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_sni", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::tls_sni]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_sni", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::trust_dns", "Argument[0]", "Argument[self].Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::trust_dns", "Argument[0]", "ReturnValue.Field[crate::async_impl::client::ClientBuilder::config].Field[crate::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::trust_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_native_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_preconfigured_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_rustls_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::user_agent", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::zstd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::detect", "Argument[1]", "ReturnValue.Field[crate::async_impl::decoder::Decoder::inner].Field[crate::async_impl::decoder::Inner::PlainText(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_stream", "Argument[self]", "ReturnValue.Field[crate::async_impl::decoder::IoStream(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::async_impl::h3_client::H3Client::connector]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::async_impl::h3_client::connect::H3Connector::resolver]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_connection", "Argument[2]", "ReturnValue.Field[crate::async_impl::h3_client::pool::PoolClient::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::async_impl::h3_client::pool::PoolClient::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::async_impl::h3_client::pool::PoolConnection::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[crate::async_impl::h3_client::pool::PoolConnection::close_rx]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool", "Argument[self].Field[crate::async_impl::h3_client::pool::PoolConnection::client].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool", "Argument[self].Field[crate::async_impl::h3_client::pool::PoolConnection::client]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::boundary", "Argument[self].Field[crate::async_impl::multipart::FormParts::boundary]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::part", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::percent_encode_attr_chars", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::percent_encode_noop", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::percent_encode_path_segment", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::metadata", "Argument[self].Field[crate::async_impl::multipart::Part::meta]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::value_len", "Argument[self].Field[crate::async_impl::multipart::Part::body_length]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::mime_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::stream_with_length", "Argument[1]", "ReturnValue.Field[crate::async_impl::multipart::Part::body_length].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::file_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::fmt_fields", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::mime", "Argument[0]", "Argument[self].Field[crate::async_impl::multipart::PartMetadata::mime].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::mime", "Argument[0]", "ReturnValue.Field[crate::async_impl::multipart::PartMetadata::mime].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::mime", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::body", "Argument[self].Field[crate::async_impl::request::Request::body].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::body_mut", "Argument[self].Field[crate::async_impl::request::Request::body]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self].Field[crate::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers_mut", "Argument[self].Field[crate::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::method", "Argument[self].Field[crate::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::method_mut", "Argument[self].Field[crate::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::async_impl::request::Request::method]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[crate::async_impl::request::Request::url]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pieces", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout", "Argument[self].Field[crate::async_impl::request::Request::timeout].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout_mut", "Argument[self].Field[crate::async_impl::request::Request::timeout]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::try_clone", "Argument[self].Field[crate::async_impl::request::Request::method]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::async_impl::request::Request::method]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::try_clone", "Argument[self].Field[crate::async_impl::request::Request::url]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::async_impl::request::Request::url]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url", "Argument[self].Field[crate::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url_mut", "Argument[self].Field[crate::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version", "Argument[self].Field[crate::async_impl::request::Request::version]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version_mut", "Argument[self].Field[crate::async_impl::request::Request::version]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build", "Argument[self].Field[crate::async_impl::request::RequestBuilder::request]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build_split", "Argument[self].Field[crate::async_impl::request::RequestBuilder::client]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build_split", "Argument[self].Field[crate::async_impl::request::RequestBuilder::request]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::fetch_mode_no_cors", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::form", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_parts", "Argument[0]", "ReturnValue.Field[crate::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::json", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[crate::async_impl::request::RequestBuilder::request]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::query", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::try_clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::error_for_status", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::error_for_status_ref", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url", "Argument[self].Field[crate::async_impl::response::Response::url]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::background_threadpool::BackgroundProcessor::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::layer", "Argument[0]", "ReturnValue.Field[crate::background_threadpool::BackgroundProcessor::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::background_threadpool::BackgroundResponseFuture::rx]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from", "Argument[0]", "ReturnValue.Field[crate::blocking::body::Body::kind].Field[crate::blocking::body::Kind::Bytes(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_async", "Argument[self].Field[crate::blocking::body::Body::kind].Field[crate::blocking::body::Kind::Reader(1)]", "ReturnValue.Field[2]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_reader", "Argument[self].Field[crate::blocking::body::Body::kind].Field[crate::blocking::body::Kind::Reader(0)]", "ReturnValue.Field[crate::blocking::body::Reader::Reader(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::len", "Argument[self].Field[crate::blocking::body::Body::kind].Field[crate::blocking::body::Kind::Reader(1)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::delete", "Argument[self].Reference", "ReturnValue.Field[crate::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::get", "Argument[self].Reference", "ReturnValue.Field[crate::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::head", "Argument[self].Reference", "ReturnValue.Field[crate::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::patch", "Argument[self].Reference", "ReturnValue.Field[crate::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::post", "Argument[self].Reference", "ReturnValue.Field[crate::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::put", "Argument[self].Reference", "ReturnValue.Field[crate::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::request", "Argument[self].Reference", "ReturnValue.Field[crate::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from", "Argument[0]", "ReturnValue.Field[crate::blocking::client::ClientBuilder::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_crl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_crls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_root_certificate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::brotli", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connection_verbose", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connector_layer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::cookie_provider", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::cookie_store", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::danger_accept_invalid_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::danger_accept_invalid_hostnames", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::default_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::deflate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::dns_resolver", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::gzip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::hickory_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http09_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_obsolete_multiline_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_spaces_after_header_name_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_ignore_invalid_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::https_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::max_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::min_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_brotli", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_deflate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_gzip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_hickory_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_trust_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_zstd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_idle_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_max_idle_per_host", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::redirect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::referer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve_to_addrs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_keepalive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_nodelay", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_native_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_root_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_webpki_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_info", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_sni", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::trust_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_native_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_preconfigured_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_rustls_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::user_agent", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::zstd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_reader", "Argument[self]", "ReturnValue.Field[crate::blocking::multipart::Reader::form]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::reader", "Argument[self]", "ReturnValue.Field[crate::blocking::multipart::Reader::form]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::metadata", "Argument[self].Field[crate::blocking::multipart::Part::meta]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::file_name", "Argument[self].Field[crate::blocking::multipart::Part::value]", "ReturnValue.Field[crate::blocking::multipart::Part::value]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self].Field[crate::blocking::multipart::Part::value]", "ReturnValue.Field[crate::blocking::multipart::Part::value]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::mime_str", "Argument[self].Field[crate::blocking::multipart::Part::value]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::blocking::multipart::Part::value]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::body", "Argument[self].Field[crate::blocking::request::Request::body].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::body_mut", "Argument[self].Field[crate::blocking::request::Request::body]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self].Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers_mut", "Argument[self].Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_async", "Argument[self].Field[crate::blocking::request::Request::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::method", "Argument[self].Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::method_mut", "Argument[self].Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::method]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::url]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout_mut", "Argument[self].Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::timeout]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url", "Argument[self].Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url_mut", "Argument[self].Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version", "Argument[self].Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::version]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version_mut", "Argument[self].Field[crate::blocking::request::Request::inner].Field[crate::async_impl::request::Request::version]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build", "Argument[self].Field[crate::blocking::request::RequestBuilder::request]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build_split", "Argument[self].Field[crate::blocking::request::RequestBuilder::client]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build_split", "Argument[self].Field[crate::blocking::request::RequestBuilder::request]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::form", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_parts", "Argument[0]", "ReturnValue.Field[crate::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::json", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::multipart", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[crate::blocking::request::RequestBuilder::request]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::query", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::send", "Argument[self].Field[crate::blocking::request::RequestBuilder::request].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::send", "Argument[self].Field[crate::blocking::request::RequestBuilder::request].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::try_clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::blocking::response::Response::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[crate::blocking::response::Response::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[2]", "ReturnValue.Field[crate::blocking::response::Response::_thread_handle]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url", "Argument[self].Field[crate::blocking::response::Response::inner].Field[crate::async_impl::response::Response::url]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[0]", "ReturnValue.Field[crate::connect::ConnectorBuilder::inner].Field[crate::connect::Inner::DefaultTls(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[1]", "ReturnValue.Field[crate::connect::ConnectorBuilder::inner].Field[crate::connect::Inner::DefaultTls(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[2]", "ReturnValue.Field[crate::connect::ConnectorBuilder::proxies]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[3]", "ReturnValue.Field[crate::connect::ConnectorBuilder::user_agent]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[5]", "ReturnValue.Field[crate::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[6]", "ReturnValue.Field[crate::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_default_tls", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::connect::ConnectorBuilder::proxies]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_default_tls", "Argument[3]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::connect::ConnectorBuilder::user_agent]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_default_tls", "Argument[5]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_default_tls", "Argument[6]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_rustls_tls", "Argument[0]", "ReturnValue.Field[crate::connect::ConnectorBuilder::inner].Field[crate::connect::Inner::RustlsTls::http]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_rustls_tls", "Argument[2]", "ReturnValue.Field[crate::connect::ConnectorBuilder::proxies]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_rustls_tls", "Argument[3]", "ReturnValue.Field[crate::connect::ConnectorBuilder::user_agent]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_rustls_tls", "Argument[5]", "ReturnValue.Field[crate::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_rustls_tls", "Argument[6]", "ReturnValue.Field[crate::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::set_timeout", "Argument[0]", "Argument[self].Field[crate::connect::ConnectorBuilder::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::set_verbose", "Argument[0]", "Argument[self].Field[crate::connect::ConnectorBuilder::verbose].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::set_verbose", "Argument[0]", "Argument[self].Field[crate::connect::ConnectorBuilder::verbose].Field[crate::connect::verbose::Wrapper(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::source", "Argument[self].Field[0]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::source", "Argument[self].Field[crate::dns::hickory::HickoryDnsSystemConfError(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::dns::resolve::DnsResolverWithOverrides::dns_resolver]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::dns::resolve::DynResolver::resolver]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_url", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::without_url", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::custom_http_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::intercept", "Argument[self].Field[crate::proxy::Proxy::intercept].Field[crate::proxy::Intercept::All(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::intercept", "Argument[self].Field[crate::proxy::Proxy::intercept].Field[crate::proxy::Intercept::Http(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::intercept", "Argument[self].Field[crate::proxy::Proxy::intercept].Field[crate::proxy::Intercept::Https(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_proxy", "Argument[0]", "Argument[self].Field[crate::proxy::Proxy::no_proxy]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_proxy", "Argument[0]", "ReturnValue.Field[crate::proxy::Proxy::no_proxy]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_proxy_scheme", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::previous", "Argument[self].Field[crate::redirect::Attempt::previous]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::status", "Argument[self].Field[crate::redirect::Attempt::status]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url", "Argument[self].Field[crate::redirect::Attempt::next]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::limited", "Argument[0]", "ReturnValue.Field[crate::redirect::Policy::inner].Field[crate::redirect::PolicyKind::Limit(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::as_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::support::delay_layer::Delay::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[crate::support::delay_layer::Delay::delay]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::layer", "Argument[0]", "ReturnValue.Field[crate::support::delay_layer::Delay::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::layer", "Argument[self].Field[crate::support::delay_layer::DelayLayer::delay]", "ReturnValue.Field[crate::support::delay_layer::Delay::delay]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::support::delay_layer::DelayLayer::delay]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::support::delay_layer::ResponseFuture::response]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[crate::support::delay_layer::ResponseFuture::sleep]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::addr", "Argument[self].Field[crate::support::delay_server::Server::addr]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_addr", "Argument[0]", "Argument[self].Field[crate::support::server::Http3::addr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_addr", "Argument[0]", "ReturnValue.Field[crate::support::server::Http3::addr].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_addr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::addr", "Argument[self].Field[crate::support::server::Server::addr]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::as_rustls_crl", "Argument[self].Field[crate::tls::CertificateRevocationList::inner].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::as_rustls_crl", "Argument[self].Field[crate::tls::CertificateRevocationList::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::clone", "Argument[self].Field[crate::tls::ClientCert::Pem::certs].Reference", "ReturnValue.Field[crate::tls::ClientCert::Pem::certs]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[crate::tls::IgnoreHostname::roots]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[crate::tls::IgnoreHostname::signature_algorithms]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::peer_certificate", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::async_impl::body::total_timeout", "Argument[0]", "ReturnValue.Field[crate::async_impl::body::TotalTimeoutBody::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::async_impl::body::total_timeout", "Argument[1]", "ReturnValue.Field[crate::async_impl::body::TotalTimeoutBody::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::async_impl::body::with_read_timeout", "Argument[0]", "ReturnValue.Field[crate::async_impl::body::ReadTimeoutBody::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::async_impl::body::with_read_timeout", "Argument[1]", "ReturnValue.Field[crate::async_impl::body::ReadTimeoutBody::timeout]", "value", "dfc-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::error::cast_to_internal_error", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - addsTo: pack: codeql/rust-all extensible: sinkModel @@ -16,8 +385,13 @@ extensions: - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::patch", "Argument[0]", "transmission", "df-generated"] - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::post", "Argument[0]", "transmission", "df-generated"] - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::put", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::call", "Argument[0]", "log-injection", "df-generated"] - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::call", "Argument[0]", "log-injection", "df-generated"] - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::blocking::get", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::blocking::wait::timeout", "Argument[1]", "log-injection", "df-generated"] - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::get", "Argument[0]", "transmission", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::file", "ReturnValue", "file", "df-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::file", "ReturnValue", "file", "df-generated"] + - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_env", "ReturnValue", "environment", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket.model.yml new file mode 100644 index 00000000000..76cd9d7618e --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket.model.yml @@ -0,0 +1,481 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rwf2/Rocket:rocket", "<&str as crate::request::from_param::FromParam>::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::catcher::handler::Handler>::handle", "Argument[0]", "Argument[self].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::catcher::handler::Handler>::handle", "Argument[1]", "Argument[self].Parameter[1]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::catcher::handler::Handler>::handle", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::ext::StreamExt>::join", "Argument[0]", "ReturnValue.Field[crate::ext::Join::b]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::ext::StreamExt>::join", "Argument[self]", "ReturnValue.Field[crate::ext::Join::a]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::form::from_form::FromForm>::init", "Argument[0]", "ReturnValue.Field[crate::form::from_form_field::FromFieldContext::opts]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::form::from_form::FromForm>::push_value", "Argument[1].Field[crate::form::field::ValueField::value]", "Argument[0].Field[crate::form::from_form_field::FromFieldContext::field_value].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::route::handler::Handler>::handle", "Argument[0]", "Argument[self].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::route::handler::Handler>::handle", "Argument[1]", "Argument[self].Parameter[1]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::route::handler::Handler>::handle", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::info", "Argument[self].Field[0]", "ReturnValue.Field[crate::fairing::info_kind::Info::kind]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::info", "Argument[self].Field[crate::Singleton(0)]", "ReturnValue.Field[crate::fairing::info_kind::Info::kind]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_base", "Argument[self].Field[crate::catcher::catcher::Catcher::base]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_base", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::init", "Argument[0]", "ReturnValue.Field[crate::form::from_form::MapContext::opts]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::init", "Argument[0]", "ReturnValue.Field[crate::form::from_form::MapContext::opts]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::profile", "Argument[self].Field[crate::config::config::Config::profile].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::profile", "Argument[self].Field[crate::config::config::Config::profile]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ca_certs", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::mandatory", "Argument[0]", "Argument[self].Field[crate::config::tls::MutualTls::mandatory]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::mandatory", "Argument[0]", "ReturnValue.Field[crate::config::tls::MutualTls::mandatory]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::mandatory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::certs", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::key", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::mutual", "Argument[self].Field[crate::config::tls::TlsConfig::mutual].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::prefer_server_cipher_order", "Argument[self].Field[crate::config::tls::TlsConfig::prefer_server_cipher_order]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::to_native_config", "Argument[self].Field[crate::config::tls::TlsConfig::prefer_server_cipher_order]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::tls::listener::Config::prefer_server_order]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_ciphers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_mutual", "Argument[0]", "Argument[self].Field[crate::config::tls::TlsConfig::mutual].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_mutual", "Argument[0]", "ReturnValue.Field[crate::config::tls::TlsConfig::mutual].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_mutual", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_preferred_server_cipher_order", "Argument[0]", "Argument[self].Field[crate::config::tls::TlsConfig::prefer_server_cipher_order]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_preferred_server_cipher_order", "Argument[0]", "ReturnValue.Field[crate::config::tls::TlsConfig::prefer_server_cipher_order]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_preferred_server_cipher_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self].Field[crate::cookies::CookieJar::config]", "ReturnValue.Field[crate::cookies::CookieJar::config]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self].Field[crate::cookies::CookieJar::jar].Reference", "ReturnValue.Field[crate::cookies::CookieJar::jar]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::cookies::CookieJar::jar]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[1]", "ReturnValue.Field[crate::cookies::CookieJar::config]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::cookies::CookieJar::config]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::data::capped::Capped::value]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0].Field[crate::form::field::ValueField::value]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::data::capped::Capped::value]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::data::capped::Capped::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[crate::data::capped::Capped::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::complete", "Argument[0]", "ReturnValue.Field[crate::data::capped::Capped::value]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[crate::data::capped::Capped::value]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::is_complete", "Argument[self].Field[crate::data::capped::Capped::n].Field[crate::data::capped::N::complete]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[crate::data::capped::Capped::value]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[self].Field[crate::data::capped::Capped::n]", "ReturnValue.Field[crate::data::capped::Capped::n]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[self].Field[crate::data::capped::Capped::value]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::data::capped::Capped::value]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[crate::data::capped::Capped::n]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::data::capped::N::written]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::local", "Argument[0]", "ReturnValue.Field[crate::data::data::Data::buffer]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::peek", "Argument[self].Field[crate::data::data::Data::buffer].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::peek_complete", "Argument[self].Field[crate::data::data::Data::is_complete]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::data::data_stream::StreamReader::inner].Field[crate::data::data_stream::StreamKind::Body(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::data::data_stream::StreamReader::inner].Field[crate::data::data_stream::StreamKind::Multipart(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::data::io_stream::IoStream::kind].Field[crate::data::io_stream::IoStreamKind::Upgraded(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::error::Error::kind]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::kind", "Argument[self].Field[crate::error::Error::kind]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::error::Error::kind]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::shutdown", "Argument[0]", "ReturnValue.Field[crate::error::Error::kind].Field[crate::error::ErrorKind::Shutdown(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::io", "Argument[self].Field[crate::ext::CancellableIo::io].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[crate::ext::CancellableIo::io].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[2]", "ReturnValue.Field[crate::ext::CancellableIo::grace]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[3]", "ReturnValue.Field[crate::ext::CancellableIo::mercy]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::ext::CancellableListener::trigger]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[crate::ext::CancellableListener::listener]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::get_ref", "Argument[self].Field[crate::ext::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::get_ref", "Argument[self].Field[crate::ext::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::ext::Chain::first]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[crate::ext::Chain::second]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::ext::Join::a]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[crate::ext::Join::b]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::info", "Argument[self].Field[crate::fairing::ad_hoc::AdHoc::name]", "ReturnValue.Field[crate::fairing::info_kind::Info::name]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_ignite", "Argument[0]", "ReturnValue.Field[crate::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_liftoff", "Argument[0]", "ReturnValue.Field[crate::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_request", "Argument[0]", "ReturnValue.Field[crate::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_response", "Argument[0]", "ReturnValue.Field[crate::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_shutdown", "Argument[0]", "ReturnValue.Field[crate::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::try_on_ignite", "Argument[0]", "ReturnValue.Field[crate::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::audit", "Argument[self].Field[crate::fairing::fairings::Fairings::failures]", "ReturnValue.Field[crate::result::Result::Err(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::handle_ignite", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_error", "Argument[0].Field[crate::form::error::Error::kind].Field[crate::form::error::ErrorKind::Custom(0)]", "Argument[self].Field[crate::form::context::Context::status]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::status", "Argument[self].Field[crate::form::context::Context::status]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::finalize", "Argument[0].Field[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::form::context::Contextual::context]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::form::error::Error::kind]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::set_entity", "Argument[0]", "Argument[self].Field[crate::form::error::Error::entity]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::status", "Argument[self].Field[crate::form::error::Error::kind].Field[crate::form::error::ErrorKind::Custom(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_entity", "Argument[0]", "Argument[self].Field[crate::form::error::Error::entity]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_entity", "Argument[0]", "ReturnValue.Field[crate::form::error::Error::entity]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_entity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[0]", "ReturnValue.Field[crate::form::error::ErrorKind::Custom(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[0]", "ReturnValue.Field[crate::form::error::ErrorKind::InvalidLength::min]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[0]", "ReturnValue.Field[crate::form::error::ErrorKind::OutOfRange::start]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[1]", "ReturnValue.Field[crate::form::error::ErrorKind::Custom(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[1]", "ReturnValue.Field[crate::form::error::ErrorKind::InvalidLength::max]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[1]", "ReturnValue.Field[crate::form::error::ErrorKind::OutOfRange::end]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::form::error::ErrorKind::Custom(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::form::error::Errors(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::form::error::Errors(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[crate::form::error::Errors(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::shift", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[1]", "ReturnValue.Field[crate::form::field::ValueField::value]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue.Field[crate::form::field::ValueField::value]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::shift", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::form::form::Form(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::form::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[crate::form::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[crate::form::form::Form(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::form::lenient::Lenient(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::form::lenient::Lenient(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[crate::form::lenient::Lenient(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[crate::form::lenient::Lenient(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[0].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::form::name::buf::NameBuf::left]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[0]", "ReturnValue.Field[crate::form::name::buf::NameBuf::left].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[1]", "ReturnValue.Field[crate::form::name::buf::NameBuf::right]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[crate::form::name::view::NameView::name].Element", "ReturnValue.Field[crate::form::name::buf::NameBuf::left].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::form::name::buf::NameBuf::left]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::form::name::key::Key(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_str", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::form::name::name::Name(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_str", "Argument[self].Field[crate::form::name::name::Name(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::borrow", "Argument[self].Field[crate::form::name::view::NameView::name].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_name", "Argument[self].Field[crate::form::name::view::NameView::name].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::parent", "Argument[self].Field[crate::form::name::view::NameView::name].Element", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::shift", "Argument[self].Field[crate::form::name::view::NameView::end]", "Argument[self].Reference.Field[crate::form::name::view::NameView::start]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::shift", "Argument[self].Field[crate::form::name::view::NameView::name]", "Argument[self].Reference.Field[crate::form::name::view::NameView::name]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::source", "Argument[self].Field[crate::form::name::view::NameView::name]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::next", "Argument[self].Field[crate::form::parser::RawStrParser::source].Element", "Argument[self].Field[crate::form::parser::RawStrParser::source].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::form::parser::RawStrParser::buffer]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[crate::form::parser::RawStrParser::source]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::form::strict::Strict(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::form::strict::Strict(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[crate::form::strict::Strict(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[crate::form::strict::Strict(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[crate::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::file", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::file", "Argument[self].Field[crate::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::file_mut", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::file_mut", "Argument[self].Field[crate::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::path", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::take_file", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::take_file", "Argument[self].Field[crate::fs::named_file::NamedFile(1)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[crate::fs::server::FileServer::options]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::rank", "Argument[0]", "Argument[self].Field[crate::fs::server::FileServer::rank]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::rank", "Argument[0]", "ReturnValue.Field[crate::fs::server::FileServer::rank]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::rank", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::len", "Argument[self].Field[crate::fs::temp_file::TempFile::File::len].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::len", "Argument[self].Field[crate::fs::temp_file::TempFile::File::len].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::open", "Argument[self].Field[crate::fs::temp_file::TempFile::Buffered::content].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::path", "Argument[self].Field[crate::fs::temp_file::TempFile::File::path]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::raw_name", "Argument[self].Reference.Field[crate::fs::temp_file::TempFile::File::file_name]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_new", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::local::asynchronous::client::Client::tracked]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_rocket", "Argument[self].Field[crate::local::asynchronous::client::Client::rocket]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_with_raw_cookies", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_with_raw_cookies_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_body_mut", "Argument[self].Field[crate::local::asynchronous::request::LocalRequest::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_request", "Argument[self].Field[crate::local::asynchronous::request::LocalRequest::request]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_request_mut", "Argument[self].Field[crate::local::asynchronous::request::LocalRequest::request]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookies", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::local::asynchronous::request::LocalRequest::client]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::private_cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::remote", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_cookies", "Argument[self].Field[crate::local::asynchronous::response::LocalResponse::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_response", "Argument[self].Field[crate::local::asynchronous::response::LocalResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_test", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_with_raw_cookies", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::inner", "Argument[self].Field[crate::local::blocking::client::Client::inner].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookies", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::local::blocking::request::LocalRequest::client]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::private_cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::remote", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::_cookies", "Argument[self].Field[crate::local::blocking::response::LocalResponse::inner].Field[crate::local::asynchronous::response::LocalResponse::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[0]", "ReturnValue.Field[crate::outcome::Outcome::Error(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[self].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::outcome::Outcome::Success(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[0]", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[self].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::outcome::Outcome::Success(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::and_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::and_then", "Argument[self].Field[crate::outcome::Outcome::Error(0)]", "ReturnValue.Field[crate::outcome::Outcome::Error(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::and_then", "Argument[self].Field[crate::outcome::Outcome::Forward(0)]", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::and_then", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_mut", "Argument[self].Reference.Field[crate::outcome::Outcome::Error(0)]", "ReturnValue.Field[crate::outcome::Outcome::Error(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_mut", "Argument[self].Reference.Field[crate::outcome::Outcome::Forward(0)]", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_mut", "Argument[self].Reference.Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::outcome::Outcome::Success(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_ref", "Argument[self].Reference.Field[crate::outcome::Outcome::Error(0)]", "ReturnValue.Field[crate::outcome::Outcome::Error(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_ref", "Argument[self].Reference.Field[crate::outcome::Outcome::Forward(0)]", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_ref", "Argument[self].Reference.Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::outcome::Outcome::Success(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::error_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::error_then", "Argument[self].Field[crate::outcome::Outcome::Error(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::error_then", "Argument[self].Field[crate::outcome::Outcome::Forward(0)]", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::error_then", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::outcome::Outcome::Success(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::expect", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::failed", "Argument[self].Field[crate::outcome::Outcome::Error(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::forward_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::forward_then", "Argument[self].Field[crate::outcome::Outcome::Error(0)]", "ReturnValue.Field[crate::outcome::Outcome::Error(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::forward_then", "Argument[self].Field[crate::outcome::Outcome::Forward(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::forward_then", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::outcome::Outcome::Success(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::forwarded", "Argument[self].Field[crate::outcome::Outcome::Forward(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::log_display", "Argument[self]", "ReturnValue.Field[crate::outcome::Display(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[crate::outcome::Outcome::Success(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[self].Field[crate::outcome::Outcome::Error(0)]", "ReturnValue.Field[crate::outcome::Outcome::Error(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[self].Field[crate::outcome::Outcome::Forward(0)]", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_error", "Argument[0].ReturnValue", "ReturnValue.Field[crate::outcome::Outcome::Error(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_error", "Argument[self].Field[crate::outcome::Outcome::Error(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_error", "Argument[self].Field[crate::outcome::Outcome::Forward(0)]", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_error", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::outcome::Outcome::Success(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_forward", "Argument[0].ReturnValue", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_forward", "Argument[self].Field[crate::outcome::Outcome::Error(0)]", "ReturnValue.Field[crate::outcome::Outcome::Error(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_forward", "Argument[self].Field[crate::outcome::Outcome::Forward(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_forward", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::outcome::Outcome::Success(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_error", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_error", "Argument[self].Field[crate::outcome::Outcome::Error(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_error", "Argument[self].Field[crate::outcome::Outcome::Forward(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_error", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_forward", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_forward", "Argument[self].Field[crate::outcome::Outcome::Error(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_forward", "Argument[self].Field[crate::outcome::Outcome::Forward(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_forward", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::succeeded", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::success_or", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::success_or", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::success_or_else", "Argument[0].ReturnValue", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::success_or_else", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::unwrap", "Argument[self].Field[crate::outcome::Outcome::Success(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_state_ref", "Argument[self]", "ReturnValue.Field[crate::phase::StateRef::Build(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_state", "Argument[self]", "ReturnValue.Field[crate::phase::State::Build(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_state_ref", "Argument[self]", "ReturnValue.Field[crate::phase::StateRef::Ignite(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_state", "Argument[self]", "ReturnValue.Field[crate::phase::State::Ignite(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_state_ref", "Argument[self]", "ReturnValue.Field[crate::phase::StateRef::Orbit(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_state", "Argument[self]", "ReturnValue.Field[crate::phase::State::Orbit(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::client_ip", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookies", "Argument[self].Field[crate::request::request::Request::state].Field[crate::request::request::RequestState::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookies_mut", "Argument[self].Field[crate::request::request::Request::state].Field[crate::request::request::RequestState::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::headers", "Argument[self].Field[crate::request::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::request::request::Request::state].Field[crate::request::request::RequestState::rocket]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[2]", "ReturnValue.Field[crate::request::request::Request::uri]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::remote", "Argument[self].Field[crate::request::request::Request::connection].Field[crate::request::request::ConnectionMeta::remote]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::rocket", "Argument[self].Field[crate::request::request::Request::state].Field[crate::request::request::RequestState::rocket]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::set_uri", "Argument[0]", "Argument[self].Field[crate::request::request::Request::uri]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::uri", "Argument[self].Field[crate::request::request::Request::uri]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::max_chunk_size", "Argument[self].Field[crate::response::body::Body::max_chunk]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::preset_size", "Argument[self].Field[crate::response::body::Body::size]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::set_max_chunk_size", "Argument[0]", "Argument[self].Field[crate::response::body::Body::max_chunk]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::take", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_sized", "Argument[1]", "ReturnValue.Field[crate::response::body::Body::size]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::response::debug::Debug(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::error", "Argument[0]", "ReturnValue.Field[crate::response::flash::Flash::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[crate::response::flash::Flash::kind]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[crate::response::flash::Flash::message]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::kind", "Argument[self].Field[crate::response::flash::Flash::kind]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::message", "Argument[self].Field[crate::response::flash::Flash::message]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::response::flash::Flash::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::success", "Argument[0]", "ReturnValue.Field[crate::response::flash::Flash::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::warning", "Argument[0]", "ReturnValue.Field[crate::response::flash::Flash::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::finalize", "Argument[self].Field[crate::response::response::Builder::response]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::header_adjoin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::join", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::max_chunk_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::merge", "Argument[0].Field[crate::response::response::Response::body]", "Argument[self].Field[crate::response::response::Builder::response].Field[crate::response::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::merge", "Argument[0].Field[crate::response::response::Response::body]", "ReturnValue.Field[crate::response::response::Builder::response].Field[crate::response::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::merge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::response::response::Builder::response]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok", "Argument[self].Field[crate::response::response::Builder::response]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::raw_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::raw_header_adjoin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::sized_body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::streamed_body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::upgrade", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::body", "Argument[self].Field[crate::response::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::body_mut", "Argument[self].Field[crate::response::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::build_from", "Argument[0]", "ReturnValue.Field[crate::response::response::Builder::response]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::headers", "Argument[self].Field[crate::response::response::Response::headers]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::join", "Argument[0].Field[crate::response::response::Response::body]", "Argument[self].Field[crate::response::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::join", "Argument[0].Field[crate::response::response::Response::status]", "Argument[self].Field[crate::response::response::Response::status]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::merge", "Argument[0].Field[crate::response::response::Response::body]", "Argument[self].Field[crate::response::response::Response::body]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::set_status", "Argument[0]", "Argument[self].Field[crate::response::response::Response::status].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::status", "Argument[self].Field[crate::response::response::Response::status].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::tagged_body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::response::stream::bytes::ByteStream(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::response::stream::one::One(0)].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::poll_next", "Argument[self].Field[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::response::stream::reader::ReaderStream::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::event", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::retry", "Argument[0]", "ReturnValue.Field[crate::response::stream::sse::Event::retry].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_comment", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_retry", "Argument[0]", "Argument[self].Field[crate::response::stream::sse::Event::retry].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_retry", "Argument[0]", "ReturnValue.Field[crate::response::stream::sse::Event::retry].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_retry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::response::stream::sse::EventStream::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::heartbeat", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::response::stream::text::TextStream(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[0]", "ReturnValue.Field[crate::outcome::Outcome::Error(0)].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[self].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::outcome::Outcome::Error(0)].Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[self].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::outcome::Outcome::Error(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[self].Field[crate::result::Result::Ok(0)]", "ReturnValue.Field[crate::outcome::Outcome::Success(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[0].Field[0]", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[0].Field[1]", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)].Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[0]", "ReturnValue.Field[crate::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[self].Field[crate::result::Result::Ok(0)]", "ReturnValue.Field[crate::outcome::Outcome::Success(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::rkt::Rocket(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::rkt::Rocket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[crate::rkt::Rocket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::attach", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::default_tcp_http_server", "Argument[self]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::manage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[crate::route::route::StaticInfo::format]", "ReturnValue.Field[crate::route::route::Route::format]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[crate::route::route::StaticInfo::method]", "ReturnValue.Field[crate::route::route::Route::method]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[crate::route::route::StaticInfo::rank].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::route::route::Route::rank]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_base", "Argument[self].Field[crate::route::route::Route::uri].Field[crate::route::uri::RouteUri::base]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_base", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[crate::route::route::Route::method]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::ranked", "Argument[1]", "ReturnValue.Field[crate::route::route::Route::method]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::route::uri::RouteUri::origin]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_str", "Argument[self].Field[crate::route::uri::RouteUri::source]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::default_rank", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::serde::json::Json(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::serde::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[crate::serde::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_uri_param", "Argument[0]", "ReturnValue.Field[crate::serde::json::Json(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[crate::serde::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[crate::serde::msgpack::MsgPack(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::serde::msgpack::MsgPack(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[crate::serde::msgpack::MsgPack(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[crate::serde::msgpack::MsgPack(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::allow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::block", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::disable", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::enable", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::state::State(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::inner", "Argument[self].Field[crate::state::State(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::respond_to", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self].Field[crate::trip_wire::TripWire::state].Reference", "ReturnValue.Field[crate::trip_wire::TripWire::state]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[crate::trip_wire::TripWire::state]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_segments", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::finalize", "Argument[0].Field[crate::form::from_form::VecContext::errors]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::finalize", "Argument[0].Field[crate::form::from_form::VecContext::items]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::init", "Argument[0]", "ReturnValue.Field[crate::form::from_form::VecContext::opts]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "crate::catcher::catcher::default_handler", "Argument[0]", "ReturnValue.Field[crate::response::response::Response::status].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "crate::form::validate::try_with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "crate::form::validate::with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "crate::prepend", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/rwf2/Rocket:rocket", "::signal_stream", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::expect", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::dispatch", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::handle_error", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::matches", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket", "::respond_to", "Argument[self]", "log-injection", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["repo:https://github.com/rwf2/Rocket:rocket", "::to_native_config", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_codegen.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_codegen.model.yml new file mode 100644 index 00000000000..3c08a3aa283 --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_codegen.model.yml @@ -0,0 +1,62 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::with_span", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from_uri_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[crate::attribute::param::Dynamic::name]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::attribute::param::parse::Error::segment]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::attribute::param::parse::Error::source]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[1]", "ReturnValue.Field[crate::attribute::param::Parameter::Static(0)].Field[crate::name::Name::span]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::attribute::param::parse::Error::span]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[crate::attribute::param::Guard::source]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[0]", "ReturnValue.Field[crate::attribute::param::Guard::source]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[1]", "ReturnValue.Field[crate::attribute::param::Guard::fn_ident]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[2]", "ReturnValue.Field[crate::attribute::param::Guard::ty]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::dynamic", "Argument[self].Field[crate::attribute::param::Parameter::Dynamic(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::dynamic_mut", "Argument[self].Field[crate::attribute::param::Parameter::Dynamic(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::guard", "Argument[self].Field[crate::attribute::param::Parameter::Guard(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::ignored", "Argument[self].Field[crate::attribute::param::Parameter::Ignored(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::attribute::param::parse::Error::segment]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::attribute::param::parse::Error::source]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::attribute::param::parse::Error::span]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::static", "Argument[self].Field[crate::attribute::param::Parameter::Static(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::take_dynamic", "Argument[self].Field[crate::attribute::param::Parameter::Dynamic(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[0]", "ReturnValue.Field[crate::attribute::param::parse::Error::segment]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[0]", "ReturnValue.Field[crate::attribute::param::parse::Error::source]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[1]", "ReturnValue.Field[crate::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[1]", "ReturnValue.Field[crate::attribute::param::parse::Error::span]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[2]", "ReturnValue.Field[crate::attribute::param::parse::Error::kind]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::source", "Argument[0]", "Argument[self].Field[crate::attribute::param::parse::Error::source]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::source", "Argument[0]", "ReturnValue.Field[crate::attribute::param::parse::Error::source]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::source", "Argument[1]", "Argument[self].Field[crate::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::source", "Argument[1]", "ReturnValue.Field[crate::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::source", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::attribute::route::parse::Route::attr]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::attribute::route::parse::Route::handler]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::upgrade_dynamic", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::attribute::param::Guard::source]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::upgrade_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[crate::attribute::route::parse::RouteUri::origin]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::as_expr", "Argument[self].Field[crate::bang::uri_parsing::ArgExpr::Expr(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::unwrap_expr", "Argument[self].Field[crate::bang::uri_parsing::ArgExpr::Expr(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[crate::bang::uri_parsing::UriLit(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[crate::derive::form_field::FieldName::Cased(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[crate::derive::form_field::FieldName::Uncased(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::respanned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::as_ref", "Argument[self].Field[crate::name::Name::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[crate::name::Name::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::as_str", "Argument[self].Field[crate::name::Name::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[1]", "ReturnValue.Field[crate::name::Name::span]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::span", "Argument[self].Field[crate::name::Name::span]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[0]", "ReturnValue.Field[crate::proc_macro_ext::Diagnostics(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::head_err_or", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[crate::proc_macro_ext::StringLit(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[crate::syn_ext::Child::ty]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::ty", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "crate::derive::form_field::first_duplicate", "Argument[0].Element", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_http.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_http.model.yml new file mode 100644 index 00000000000..c987027c185 --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_http.model.yml @@ -0,0 +1,215 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "<&[u8] as crate::uri::fmt::from_uri_param::FromUriParam>::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "<&crate::path::Path as crate::uri::fmt::from_uri_param::FromUriParam>::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "<&str as crate::uri::fmt::from_uri_param::FromUriParam>::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "<_ as crate::ext::IntoCollection>::mapped", "Argument[self]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::header::accept::QMediaType(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[crate::header::accept::QMediaType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::media_type", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::media_type", "Argument[self].Field[crate::header::accept::QMediaType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::weight", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::weight", "Argument[self].Field[crate::header::accept::QMediaType(1)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::weight_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::weight_or", "Argument[self].Field[1].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::weight_or", "Argument[self].Field[crate::header::accept::QMediaType(1)].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::header::content_type::ContentType(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[crate::header::content_type::ContentType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::media_type", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::media_type", "Argument[self].Field[crate::header::content_type::ContentType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_params", "Argument[self].Field[0]", "ReturnValue.Field[crate::header::content_type::ContentType(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_params", "Argument[self].Field[crate::header::content_type::ContentType(0)]", "ReturnValue.Field[crate::header::content_type::ContentType(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::name", "Argument[self].Field[crate::header::header::Header::name]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::value", "Argument[self].Field[crate::header::header::Header::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::const_new", "Argument[2]", "ReturnValue.Field[crate::header::media_type::MediaType::params].Field[crate::header::media_type::MediaParams::Static(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::known_source", "Argument[self].Field[crate::header::media_type::MediaType::source].Field[crate::header::media_type::Source::Known(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new_known", "Argument[0]", "ReturnValue.Field[crate::header::media_type::MediaType::source].Field[crate::header::media_type::Source::Known(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new_known", "Argument[3]", "ReturnValue.Field[crate::header::media_type::MediaType::params].Field[crate::header::media_type::MediaParams::Static(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_params", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::header::media_type::Source::Custom(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[0]", "ReturnValue.Field[crate::listener::Incoming::listener]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::nodelay", "Argument[0]", "Argument[self].Field[crate::listener::Incoming::nodelay]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::nodelay", "Argument[0]", "ReturnValue.Field[crate::listener::Incoming::nodelay]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::nodelay", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::sleep_on_errors", "Argument[0]", "Argument[self].Field[crate::listener::Incoming::sleep_on_errors]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::sleep_on_errors", "Argument[0]", "ReturnValue.Field[crate::listener::Incoming::sleep_on_errors]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::sleep_on_errors", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::clone", "Argument[self].Reference.Field[crate::parse::indexed::Indexed::Concrete(0)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Concrete(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::clone", "Argument[self].Reference.Field[crate::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::clone", "Argument[self].Reference.Field[crate::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::parse::indexed::Indexed::Concrete(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self].Field[crate::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self].Field[crate::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::add", "Argument[0].Field[crate::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::add", "Argument[self].Field[crate::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::coerce", "Argument[self].Field[crate::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::coerce", "Argument[self].Field[crate::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::coerce_lifetime", "Argument[self].Field[crate::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::coerce_lifetime", "Argument[self].Field[crate::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[crate::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_cow_source", "Argument[self].Reference.Field[crate::parse::indexed::Indexed::Concrete(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_source", "Argument[0].Field[crate::option::Option::Some(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_source", "Argument[self].Reference.Field[crate::parse::indexed::Indexed::Concrete(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::indices", "Argument[self].Field[crate::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::indices", "Argument[self].Field[crate::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_concrete", "Argument[self].Field[crate::parse::indexed::Indexed::Concrete(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self].Field[crate::parse::uri::error::Error::index]", "ReturnValue.Field[crate::parse::uri::error::Error::index]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::index", "Argument[self].Field[crate::parse::uri::error::Error::index]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::borrow", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::borrow", "Argument[self].Field[crate::raw_str::RawStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::to_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ref", "Argument[self].Field[crate::raw_str::RawStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_str", "Argument[self].Field[crate::raw_str::RawStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::split_at_byte", "Argument[self].Element", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::split_at_byte", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::raw_str::RawStrBuf(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_string", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_string", "Argument[self].Field[crate::raw_str::RawStrBuf(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[0]", "ReturnValue.Field[crate::status::Status::code]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::visit_i64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::visit_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::peer_address", "Argument[self].Field[crate::tls::listener::TlsStream::remote]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::peer_certificates", "Argument[self].Field[crate::tls::listener::TlsStream::certs].Reference", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::peer_certificates", "Argument[self].Field[crate::tls::listener::TlsStream::certs]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[crate::tls::mtls::Certificate::x509]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_bytes", "Argument[self].Field[crate::tls::mtls::Certificate::data].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::has_serial", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::tls::mtls::Error::Incomplete(0)].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::tls::mtls::Error::Parse(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[crate::tls::mtls::Name(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::try_from", "Argument[0].Field[crate::uri::uri::Uri::Absolute(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::prepend", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::authority", "Argument[self].Field[crate::uri::absolute::Absolute::authority].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::const_new", "Argument[1]", "ReturnValue.Field[crate::uri::absolute::Absolute::authority]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_normalized", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[crate::uri::absolute::Absolute::path]", "ReturnValue.Field[crate::uri::path_query::Path::data].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[crate::uri::absolute::Absolute::source]", "ReturnValue.Field[crate::uri::path_query::Path::source].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[2]", "ReturnValue.Field[crate::uri::absolute::Absolute::authority]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::set_authority", "Argument[0]", "Argument[self].Field[crate::uri::absolute::Absolute::authority].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_authority", "Argument[0]", "Argument[self].Field[crate::uri::absolute::Absolute::authority].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_authority", "Argument[0]", "ReturnValue.Field[crate::uri::absolute::Absolute::authority].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_authority", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::try_from", "Argument[0].Field[crate::uri::uri::Uri::Asterisk(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::try_from", "Argument[0].Field[crate::uri::uri::Uri::Authority(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::const_new", "Argument[2]", "ReturnValue.Field[crate::uri::authority::Authority::port]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::port", "Argument[self].Field[crate::uri::authority::Authority::port]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[3]", "ReturnValue.Field[crate::uri::authority::Authority::port]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::user_info", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[0]", "ReturnValue.Field[crate::uri::fmt::formatter::Formatter::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self].Field[crate::uri::fmt::formatter::PrefixedRouteUri(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self].Field[crate::uri::fmt::formatter::SuffixedRouteUri(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::uri::host::Host(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[0]", "ReturnValue.Field[crate::uri::host::Host(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::port", "Argument[self].Field[0].Field[crate::uri::authority::Authority::port]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::port", "Argument[self].Field[crate::uri::host::Host(0)].Field[crate::uri::authority::Authority::port]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::to_absolute", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::to_authority", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::try_from", "Argument[0].Field[crate::uri::uri::Uri::Origin(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_normalized", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::map_path", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[crate::uri::origin::Origin::path]", "ReturnValue.Field[crate::uri::path_query::Path::data].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[crate::uri::origin::Origin::source]", "ReturnValue.Field[crate::uri::path_query::Path::source].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0].Field[crate::uri::origin::Origin::path]", "ReturnValue.Field[crate::uri::reference::Reference::path]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0].Field[crate::uri::origin::Origin::query]", "ReturnValue.Field[crate::uri::reference::Reference::query]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0].Field[crate::uri::origin::Origin::source]", "ReturnValue.Field[crate::uri::reference::Reference::source]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::uri::reference::Reference::authority].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::try_from", "Argument[0].Field[crate::uri::uri::Uri::Reference(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::prepend", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::authority", "Argument[self].Field[crate::uri::reference::Reference::authority].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::const_new", "Argument[1]", "ReturnValue.Field[crate::uri::reference::Reference::authority]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fragment", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_normalized", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[crate::uri::reference::Reference::path]", "ReturnValue.Field[crate::uri::path_query::Path::data].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[crate::uri::reference::Reference::source]", "ReturnValue.Field[crate::uri::path_query::Path::source].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[2]", "ReturnValue.Field[crate::uri::reference::Reference::authority]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::scheme", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_query_fragment_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[0]", "ReturnValue.Field[crate::uri::segments::Segments::source]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[1]", "ReturnValue.Field[crate::uri::segments::Segments::segments]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::skip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::uri::uri::Uri::Absolute(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::uri::uri::Uri::Asterisk(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::uri::uri::Uri::Authority(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::uri::uri::Uri::Origin(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[crate::uri::uri::Uri::Reference(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self].Field[crate::uri::uri::Uri::Asterisk(0)]", "ReturnValue.Field[crate::uri::uri::Uri::Asterisk(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::absolute", "Argument[self].Field[crate::uri::uri::Uri::Absolute(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::authority", "Argument[self].Field[crate::uri::uri::Uri::Authority(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::origin", "Argument[self].Field[crate::uri::uri::Uri::Origin(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::reference", "Argument[self].Field[crate::uri::uri::Uri::Reference(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "crate::parse::uri::parser::complete", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket:rocket_http", "crate::parse::uri::scheme_from_str", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-db_pools-rocket_db_pools.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-db_pools-rocket_db_pools.model.yml new file mode 100644 index 00000000000..64aa3ccb425 --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-db_pools-rocket_db_pools.model.yml @@ -0,0 +1,14 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::deref", "Argument[self].Field[crate::database::Connection(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::deref_mut", "Argument[self].Field[crate::database::Connection(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::into_inner", "Argument[self].Field[crate::database::Connection(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::info", "Argument[self].Field[0].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::fairing::info_kind::Info::name]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::info", "Argument[self].Field[crate::database::Initializer(0)].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::fairing::info_kind::Info::name]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-dyn_templates-rocket_dyn_templates.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-dyn_templates-rocket_dyn_templates.model.yml new file mode 100644 index 00000000000..bfd8737a5e3 --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-dyn_templates-rocket_dyn_templates.model.yml @@ -0,0 +1,22 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::context", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::context", "Argument[self].Field[crate::context::manager::ContextManager(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::new", "Argument[0]", "ReturnValue.Field[crate::context::manager::ContextManager(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::finalize", "Argument[self].Field[crate::template::Template::value].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::render", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::render", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::init", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::render", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::respond_to", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::finalize", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::finalize", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::render", "Argument[0]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-sync_db_pools-rocket_sync_db_pools.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-sync_db_pools-rocket_sync_db_pools.model.yml new file mode 100644 index 00000000000..552ca54324b --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-sync_db_pools-rocket_sync_db_pools.model.yml @@ -0,0 +1,10 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/sync_db_pools:rocket_sync_db_pools", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/sync_db_pools:rocket_sync_db_pools", "::fairing", "Argument[0]", "ReturnValue.Field[crate::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/sync_db_pools:rocket_sync_db_pools", "::from", "Argument[0]", "ReturnValue.Field[crate::error::Error::Config(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/sync_db_pools:rocket_sync_db_pools", "::from", "Argument[0]", "ReturnValue.Field[crate::error::Error::Pool(0)]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-ws-rocket_ws.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-ws-rocket_ws.model.yml new file mode 100644 index 00000000000..66aadb9919b --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-ws-rocket_ws.model.yml @@ -0,0 +1,12 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::accept_key", "Argument[self].Field[crate::websocket::WebSocket::key]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::channel", "Argument[self]", "ReturnValue.Field[crate::websocket::Channel::ws]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::config", "Argument[0]", "Argument[self].Field[crate::websocket::WebSocket::config]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::config", "Argument[0]", "ReturnValue.Field[crate::websocket::WebSocket::config]", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::config", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::stream", "Argument[self]", "ReturnValue.Field[crate::websocket::MessageStream::ws]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-pastebin.model.yml b/rust/ql/lib/ext/generated/rocket/repo-pastebin.model.yml new file mode 100644 index 00000000000..9fb36c03703 --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket/repo-pastebin.model.yml @@ -0,0 +1,8 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo::pastebin", "::from_param", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo::pastebin", "::file_path", "Argument[self]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-tls.model.yml b/rust/ql/lib/ext/generated/rocket/repo-tls.model.yml new file mode 100644 index 00000000000..f2bb481b1af --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket/repo-tls.model.yml @@ -0,0 +1,7 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo::tls", "::try_launch", "Argument[self].Field[crate::redirector::Redirector::port]", "Argument[0].Field[crate::config::config::Config::port]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-todo.model.yml b/rust/ql/lib/ext/generated/rocket/repo-todo.model.yml new file mode 100644 index 00000000000..29ade2ffc34 --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket/repo-todo.model.yml @@ -0,0 +1,7 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo::todo", "::raw", "Argument[1]", "ReturnValue.Field[crate::Context::flash]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde.model.yml b/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde.model.yml new file mode 100644 index 00000000000..68cd535dce3 --- /dev/null +++ b/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde.model.yml @@ -0,0 +1,207 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/serde-rs/serde:serde", "<&[u8] as crate::__private::de::IdentifierDeserializer>::from", "Argument[self]", "ReturnValue.Field[crate::de::value::BytesDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "<&[u8] as crate::de::IntoDeserializer>::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::BytesDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "<&crate::__private::de::content::Content as crate::de::IntoDeserializer>::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::__private::de::content::ContentRefDeserializer::content]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "<&str as crate::__private::de::IdentifierDeserializer>::from", "Argument[self]", "ReturnValue.Field[crate::__private::de::StrDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "<&str as crate::de::IntoDeserializer>::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::StrDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::BoolDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::CharDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::from", "Argument[self].Field[0]", "ReturnValue.Field[crate::__private::de::BorrowedStrDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::from", "Argument[self].Field[0]", "ReturnValue.Field[crate::de::value::BorrowedBytesDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::from", "Argument[self].Field[crate::__private::de::Borrowed(0)]", "ReturnValue.Field[crate::__private::de::BorrowedStrDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::from", "Argument[self].Field[crate::__private::de::Borrowed(0)]", "ReturnValue.Field[crate::de::value::BorrowedBytesDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::__private::de::content::ContentDeserializer::content]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::as_str", "Argument[self].Reference.Field[crate::__private::de::content::Content::Str(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::as_str", "Argument[self].Reference.Field[crate::__private::de::content::Content::String(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::__deserialize_content", "Argument[self].Field[crate::__private::de::content::ContentDeserializer::content]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::__private::de::content::ContentDeserializer::content]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::__deserialize_content", "Argument[self].Field[crate::__private::de::content::ContentRefDeserializer::content].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::__private::de::content::ContentRefDeserializer::content]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_bool", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::Bool(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_borrowed_bytes", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::Bytes(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_borrowed_str", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::Str(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_byte_buf", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::ByteBuf(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_char", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::Char(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_f32", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::F32(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_f64", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::F64(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_i16", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::I16(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_i32", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::I32(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_i64", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::I64(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_i8", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::I8(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::String(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_u16", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::U16(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_u32", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::U32(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_u64", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::U64(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_u8", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::de::content::Content::U8(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::__private::de::content::EnumDeserializer::variant]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[crate::__private::de::content::EnumDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::__private::de::content::InternallyTaggedUnitVisitor::type_name]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[crate::__private::de::content::InternallyTaggedUnitVisitor::variant_name]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::__private::de::content::TaggedContentVisitor::tag_name]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[crate::__private::de::content::TaggedContentVisitor::expecting]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::__private::de::content::UntaggedUnitVisitor::type_name]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[crate::__private::de::content::UntaggedUnitVisitor::variant_name]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_map", "Argument[self].Field[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::FlatMapSerializeMap(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_map", "Argument[self].Field[crate::__private::ser::FlatMapSerializer(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::FlatMapSerializeMap(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_struct", "Argument[self].Field[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::FlatMapSerializeStruct(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_struct", "Argument[self].Field[crate::__private::ser::FlatMapSerializer(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::FlatMapSerializeStruct(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_struct_variant", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::FlatMapSerializeStructVariantAsMapValue::name]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_struct_variant", "Argument[self].Field[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::FlatMapSerializeStructVariantAsMapValue::map]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_struct_variant", "Argument[self].Field[crate::__private::ser::FlatMapSerializer(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::FlatMapSerializeStructVariantAsMapValue::map]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_tuple_variant", "Argument[self].Field[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::FlatMapSerializeTupleVariantAsMapValue::map]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_tuple_variant", "Argument[self].Field[crate::__private::ser::FlatMapSerializer(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::FlatMapSerializeTupleVariantAsMapValue::map]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_struct_variant", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::SerializeStructVariantAsMapValue::name]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_tuple_variant", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::SerializeTupleVariantAsMapValue::name]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_bool", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::Bool(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_char", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::Char(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_f32", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::F32(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_f64", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::F64(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_i16", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::I16(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_i32", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::I32(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_i64", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::I64(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_i8", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::I8(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_newtype_struct", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::NewtypeStruct(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_newtype_variant", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::NewtypeVariant(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_newtype_variant", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::NewtypeVariant(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_newtype_variant", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::NewtypeVariant(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_u16", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::U16(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_u32", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::U32(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_u64", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::U64(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_u8", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::U8(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_unit_struct", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::UnitStruct(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_unit_variant", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::UnitVariant(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_unit_variant", "Argument[1]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::UnitVariant(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_unit_variant", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::UnitVariant(2)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[crate::__private::ser::content::SerializeMap::entries]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::Map(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[crate::__private::ser::content::SerializeSeq::elements]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::Seq(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[crate::__private::ser::content::SerializeStruct::fields]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::Struct(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[crate::__private::ser::content::SerializeStruct::name]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::Struct(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::__private::ser::content::SerializeStructVariantAsMapValue::map]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[crate::__private::ser::content::SerializeStructVariantAsMapValue::name]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[crate::__private::ser::content::SerializeTuple::elements]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::Tuple(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[crate::__private::ser::content::SerializeTupleStruct::fields]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::TupleStruct(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[crate::__private::ser::content::SerializeTupleStruct::name]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::__private::ser::content::Content::TupleStruct(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::__private::ser::content::SerializeTupleVariantAsMapValue::map]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[crate::__private::ser::content::SerializeTupleVariantAsMapValue::name]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_bool", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_borrowed_bytes", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_borrowed_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_char", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_borrowed_str", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0]", "Argument[self].Field[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0]", "Argument[self].Field[crate::de::impls::StringInPlaceVisitor(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::BoolDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::BorrowedBytesDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::BorrowedStrDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::BytesDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::CharDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Field[crate::de::value::CowStrDeserializer::value].Reference", "ReturnValue.Field[crate::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::EnumAccessDeserializer::access]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::description", "Argument[self].Field[crate::de::value::Error::err]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::F32Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::F64Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::I128Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::I16Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::I32Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::I64Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::I8Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::IsizeDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::MapAccessDeserializer::map]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::deserialize_any", "Argument[self].Field[crate::de::value::NeverDeserializer::never]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::SeqAccessDeserializer::seq]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::StrDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Field[crate::de::value::StringDeserializer::value].Reference", "ReturnValue.Field[crate::de::value::StringDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::StringDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::U128Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::U16Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::U32Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::U64Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::U8Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::de::value::UsizeDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[crate::format::Buf::bytes]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::StringDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::F32Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::F64Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::I128Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::I16Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::I32Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::I64Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::I8Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::IsizeDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::U128Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::U16Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::U32Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::U64Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::U8Deserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[crate::de::value::UsizeDeserializer::value]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "crate::__private::ser::constrain", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "crate::de::size_hint::cautious", "Argument[0].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "crate::de::value::private::map_as_enum", "Argument[0]", "ReturnValue.Field[crate::de::value::private::MapAsEnum::map]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde", "crate::de::value::private::unit_only", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde_derive.model.yml b/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde_derive.model.yml new file mode 100644 index 00000000000..f60417ee9fb --- /dev/null +++ b/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde_derive.model.yml @@ -0,0 +1,79 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::as_ref", "Argument[self].Field[crate::fragment::Fragment::Block(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::as_ref", "Argument[self].Field[crate::fragment::Fragment::Expr(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_ast", "Argument[1].Reference", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::internals::ast::Container::ident]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_ast", "Argument[1]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::internals::ast::Container::ident]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_ast", "Argument[1]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::internals::ast::Container::original]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::get", "Argument[self].Field[crate::internals::attr::Attr::value]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::custom_serde_path", "Argument[self].Field[crate::internals::attr::Container::serde_path].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::de_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::default", "Argument[self].Field[crate::internals::attr::Container::default]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::deny_unknown_fields", "Argument[self].Field[crate::internals::attr::Container::deny_unknown_fields]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::expecting", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::identifier", "Argument[self].Field[crate::internals::attr::Container::identifier]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::is_packed", "Argument[self].Field[crate::internals::attr::Container::is_packed]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::name", "Argument[self].Field[crate::internals::attr::Container::name]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::non_exhaustive", "Argument[self].Field[crate::internals::attr::Container::non_exhaustive]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::remote", "Argument[self].Field[crate::internals::attr::Container::remote].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::rename_all_fields_rules", "Argument[self].Field[crate::internals::attr::Container::rename_all_fields_rules]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::rename_all_rules", "Argument[self].Field[crate::internals::attr::Container::rename_all_rules]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::ser_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::tag", "Argument[self].Field[crate::internals::attr::Container::tag]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::transparent", "Argument[self].Field[crate::internals::attr::Container::transparent]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::type_from", "Argument[self].Field[crate::internals::attr::Container::type_from].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::type_into", "Argument[self].Field[crate::internals::attr::Container::type_into].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::type_try_from", "Argument[self].Field[crate::internals::attr::Container::type_try_from].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::aliases", "Argument[self].Field[crate::internals::attr::Field::name].Field[crate::internals::name::MultiName::deserialize_aliases]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::borrowed_lifetimes", "Argument[self].Field[crate::internals::attr::Field::borrowed_lifetimes]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::de_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::default", "Argument[self].Field[crate::internals::attr::Field::default]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::deserialize_with", "Argument[self].Field[crate::internals::attr::Field::deserialize_with].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::flatten", "Argument[self].Field[crate::internals::attr::Field::flatten]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::getter", "Argument[self].Field[crate::internals::attr::Field::getter].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::name", "Argument[self].Field[crate::internals::attr::Field::name]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::ser_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::serialize_with", "Argument[self].Field[crate::internals::attr::Field::serialize_with].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::skip_deserializing", "Argument[self].Field[crate::internals::attr::Field::skip_deserializing]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::skip_serializing", "Argument[self].Field[crate::internals::attr::Field::skip_serializing]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::skip_serializing_if", "Argument[self].Field[crate::internals::attr::Field::skip_serializing_if].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::transparent", "Argument[self].Field[crate::internals::attr::Field::transparent]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[0].Field[crate::internals::attr::RenameAllRules::deserialize]", "ReturnValue.Field[crate::internals::attr::RenameAllRules::deserialize]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[0].Field[crate::internals::attr::RenameAllRules::serialize]", "ReturnValue.Field[crate::internals::attr::RenameAllRules::serialize]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[self].Field[crate::internals::attr::RenameAllRules::deserialize]", "ReturnValue.Field[crate::internals::attr::RenameAllRules::deserialize]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[self].Field[crate::internals::attr::RenameAllRules::serialize]", "ReturnValue.Field[crate::internals::attr::RenameAllRules::serialize]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::aliases", "Argument[self].Field[crate::internals::attr::Variant::name].Field[crate::internals::name::MultiName::deserialize_aliases]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::de_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::deserialize_with", "Argument[self].Field[crate::internals::attr::Variant::deserialize_with].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::name", "Argument[self].Field[crate::internals::attr::Variant::name]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::other", "Argument[self].Field[crate::internals::attr::Variant::other]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::rename_all_rules", "Argument[self].Field[crate::internals::attr::Variant::rename_all_rules]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::ser_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::serialize_with", "Argument[self].Field[crate::internals::attr::Variant::serialize_with].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::skip_deserializing", "Argument[self].Field[crate::internals::attr::Variant::skip_deserializing]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::skip_serializing", "Argument[self].Field[crate::internals::attr::Variant::skip_serializing]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::untagged", "Argument[self].Field[crate::internals::attr::Variant::untagged]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::get", "Argument[self].Field[crate::internals::attr::VecAttr::values]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::apply_to_variant", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_str", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::internals::case::ParseError::unknown]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::deserialize_aliases", "Argument[self].Field[crate::internals::name::MultiName::deserialize_aliases]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::deserialize_name", "Argument[self].Field[crate::internals::name::MultiName::deserialize]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_attrs", "Argument[0].Reference", "ReturnValue.Field[crate::internals::name::MultiName::serialize]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_attrs", "Argument[0]", "ReturnValue.Field[crate::internals::name::MultiName::deserialize]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_attrs", "Argument[0]", "ReturnValue.Field[crate::internals::name::MultiName::serialize]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_attrs", "Argument[1].Field[crate::internals::attr::Attr::value].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::internals::name::MultiName::serialize]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_attrs", "Argument[2].Field[crate::internals::attr::Attr::value].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::internals::name::MultiName::deserialize]", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::serialize_name", "Argument[self].Field[crate::internals::name::MultiName::serialize]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::bound::with_bound", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::bound::with_self_bound", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::bound::with_where_predicates", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::bound::with_where_predicates_from_fields", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::bound::with_where_predicates_from_variants", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::internals::ungroup", "Argument[0]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/serde/repo-serde_test_suite.model.yml b/rust/ql/lib/ext/generated/serde/repo-serde_test_suite.model.yml new file mode 100644 index 00000000000..103fc5f1533 --- /dev/null +++ b/rust/ql/lib/ext/generated/serde/repo-serde_test_suite.model.yml @@ -0,0 +1,33 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo::serde_test_suite", "::variant_seed", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[1]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::visit_byte_buf", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::from", "Argument[0].Field[0]", "ReturnValue.Field[crate::remote::NewtypePriv(0)]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::from", "Argument[0].Field[crate::NewtypePrivDef(0)]", "ReturnValue.Field[crate::remote::NewtypePriv(0)]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::get", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::get", "Argument[self].Field[crate::remote::NewtypePriv(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::new", "Argument[0]", "ReturnValue.Field[crate::remote::NewtypePriv(0)]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::from", "Argument[0].Field[0]", "ReturnValue.Field[crate::remote::PrimitivePriv(0)]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::from", "Argument[0].Field[crate::PrimitivePrivDef(0)]", "ReturnValue.Field[crate::remote::PrimitivePriv(0)]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::get", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::get", "Argument[self].Field[crate::remote::PrimitivePriv(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::new", "Argument[0]", "ReturnValue.Field[crate::remote::PrimitivePriv(0)]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::from", "Argument[0].Field[crate::StructGenericWithGetterDef::value]", "ReturnValue.Field[crate::remote::StructGeneric::value]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::get_value", "Argument[self].Field[crate::remote::StructGeneric::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::from", "Argument[0].Field[crate::StructPrivDef::a]", "ReturnValue.Field[crate::remote::StructPriv::a]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::from", "Argument[0].Field[crate::StructPrivDef::b]", "ReturnValue.Field[crate::remote::StructPriv::b]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::a", "Argument[self].Field[crate::remote::StructPriv::a]", "ReturnValue", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::b", "Argument[self].Field[crate::remote::StructPriv::b]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::new", "Argument[0]", "ReturnValue.Field[crate::remote::StructPriv::a]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::new", "Argument[1]", "ReturnValue.Field[crate::remote::StructPriv::b]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo::serde_test_suite", "::first", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::first", "Argument[self].Field[crate::remote::TuplePriv(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::new", "Argument[0]", "ReturnValue.Field[crate::remote::TuplePriv(0)]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::new", "Argument[1]", "ReturnValue.Field[crate::remote::TuplePriv(1)]", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::second", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo::serde_test_suite", "::second", "Argument[self].Field[crate::remote::TuplePriv(1)]", "ReturnValue.Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/smallvec/repo-https-github.com-servo-rust-smallvec-smallvec.model.yml b/rust/ql/lib/ext/generated/smallvec/repo-https-github.com-servo-rust-smallvec-smallvec.model.yml new file mode 100644 index 00000000000..d0ca9a01761 --- /dev/null +++ b/rust/ql/lib/ext/generated/smallvec/repo-https-github.com-servo-rust-smallvec-smallvec.model.yml @@ -0,0 +1,42 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::drop", "Argument[self].Field[crate::SetLenOnDrop::local_len]", "Argument[self].Field[crate::SetLenOnDrop::len].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::borrow_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::index_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::as_mut_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::as_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::drain", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::drain_filter", "Argument[0]", "ReturnValue.Field[crate::DrainFilter::pred]", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::drain_filter", "Argument[self]", "ReturnValue.Field[crate::DrainFilter::vec]", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::from_buf_and_len", "Argument[1]", "ReturnValue.Field[crate::SmallVec::capacity]", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::from_buf_and_len_unchecked", "Argument[1]", "ReturnValue.Field[crate::SmallVec::capacity]", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::from_const_with_len_unchecked", "Argument[1]", "ReturnValue.Field[crate::SmallVec::capacity]", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::from_raw_parts", "Argument[2]", "ReturnValue.Field[crate::SmallVec::capacity]", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::into_inner", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::retain", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::try_grow", "Argument[0]", "Argument[self].Field[crate::SmallVec::capacity]", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::next", "Argument[self].Field[crate::tests::MockHintIter::x].Element", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::size_hint", "Argument[self].Field[crate::tests::MockHintIter::hint]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::size_hint", "Argument[self].Field[crate::tests::insert_many_panic::BadIter::hint]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::into_inner", "Argument[self]", "pointer-access", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::drop", "Argument[self]", "pointer-invalidate", "df-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-benches.model.yml b/rust/ql/lib/ext/generated/tokio/repo-benches.model.yml new file mode 100644 index 00000000000..d371cb1ae58 --- /dev/null +++ b/rust/ql/lib/ext/generated/tokio/repo-benches.model.yml @@ -0,0 +1,7 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo::benches", "::poll_read", "Argument[1]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-macros.model.yml b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-macros.model.yml new file mode 100644 index 00000000000..d75cefcd1eb --- /dev/null +++ b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-macros.model.yml @@ -0,0 +1,10 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio-macros", "crate::entry::main", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-macros", "crate::entry::test", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-macros", "crate::select::clean_pattern_macro", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-macros", "crate::select_priv_clean_pattern", "Argument[0]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-stream.model.yml b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-stream.model.yml new file mode 100644 index 00000000000..76217f9951f --- /dev/null +++ b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-stream.model.yml @@ -0,0 +1,90 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::extend", "Argument[2].Field[crate::result::Result::Err(0)]", "Argument[1].Reference.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::stream_close::StreamNotifyClose::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_close::StreamNotifyClose::inner].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::all::AllFuture::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::all::AllFuture::f]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::any::AnyFuture::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::any::AnyFuture::f]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::chain::Chain::b]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::chunks_timeout::ChunksTimeout::cap]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[2]", "ReturnValue.Field[crate::stream_ext::chunks_timeout::ChunksTimeout::duration]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::collect::Collect::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::filter::Filter::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::filter::Filter::f]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::filter_map::FilterMap::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::filter_map::FilterMap::f]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::fold::FoldFuture::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::fold::FoldFuture::acc].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[2]", "ReturnValue.Field[crate::stream_ext::fold::FoldFuture::f]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::fuse::Fuse::stream].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::map::Map::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::map::Map::f]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::map_while::MapWhile::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::map_while::MapWhile::f]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::next::Next::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::peek", "Argument[self].Field[crate::stream_ext::peekable::Peekable::peek].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::skip::Skip::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::skip::Skip::remaining]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::skip_while::SkipWhile::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::skip_while::SkipWhile::predicate].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::size_hint", "Argument[self].Field[crate::stream_ext::take::Take::remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::size_hint", "Argument[self].Field[crate::stream_ext::take::Take::remaining]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::take::Take::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::take::Take::remaining]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::take_while::TakeWhile::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::take_while::TakeWhile::predicate]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::then::Then::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::then::Then::f]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::get_mut", "Argument[self].Field[crate::stream_ext::throttle::Throttle::stream]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::get_ref", "Argument[self].Field[crate::stream_ext::throttle::Throttle::stream]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::stream_ext::throttle::Throttle::stream]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::timeout::Timeout::duration]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[crate::stream_ext::timeout_repeating::TimeoutRepeating::interval]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::stream_ext::try_next::TryNext::inner].Field[crate::stream_ext::next::Next::stream]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::finalize", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::finalize", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[crate::wrappers::interval::IntervalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[crate::wrappers::interval::IntervalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::wrappers::interval::IntervalStream::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::wrappers::interval::IntervalStream::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[crate::wrappers::lines::LinesStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[crate::wrappers::lines::LinesStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::wrappers::lines::LinesStream::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::wrappers::lines::LinesStream::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[crate::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[crate::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::wrappers::mpsc_bounded::ReceiverStream::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[crate::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[crate::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[crate::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[crate::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::wrappers::read_dir::ReadDirStream::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[crate::wrappers::signal_unix::SignalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[crate::wrappers::signal_unix::SignalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::wrappers::signal_unix::SignalStream::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::wrappers::signal_unix::SignalStream::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[crate::wrappers::split::SplitStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[crate::wrappers::split::SplitStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::wrappers::split::SplitStream::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::wrappers::split::SplitStream::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[crate::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[crate::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::wrappers::tcp_listener::TcpListenerStream::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[crate::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[crate::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[crate::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[crate::wrappers::unix_listener::UnixListenerStream::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "crate::stream_ext::throttle::throttle", "Argument[0]", "ReturnValue.Field[crate::stream_ext::throttle::Throttle::duration]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "crate::stream_ext::throttle::throttle", "Argument[1]", "ReturnValue.Field[crate::stream_ext::throttle::Throttle::stream]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-test.model.yml b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-test.model.yml new file mode 100644 index 00000000000..cff2c622acf --- /dev/null +++ b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-test.model.yml @@ -0,0 +1,24 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::build", "Argument[self].Field[crate::io::Builder::actions].Reference", "ReturnValue.Field[crate::io::Mock::inner].Field[crate::io::Inner::actions]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::build", "Argument[self].Field[crate::io::Builder::name].Reference", "ReturnValue.Field[crate::io::Mock::inner].Field[crate::io::Inner::name]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::read_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::wait", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::write_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::read_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::write_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::build", "Argument[self].Field[crate::stream_mock::StreamMockBuilder::actions]", "ReturnValue.Field[crate::stream_mock::StreamMock::actions]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::next", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::wait", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::deref", "Argument[self].Field[crate::task::Spawn::future]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::deref_mut", "Argument[self].Field[crate::task::Spawn::future]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::enter", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-util.model.yml b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-util.model.yml new file mode 100644 index 00000000000..db6e6afc944 --- /dev/null +++ b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-util.model.yml @@ -0,0 +1,206 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0]", "ReturnValue.Field[crate::Op::Data(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_length", "Argument[self].Field[crate::codec::any_delimiter_codec::AnyDelimiterCodec::max_length]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::codec::any_delimiter_codec::AnyDelimiterCodec::seek_delimiters]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[crate::codec::any_delimiter_codec::AnyDelimiterCodec::sequence_writer]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_with_max_length", "Argument[2]", "ReturnValue.Field[crate::codec::any_delimiter_codec::AnyDelimiterCodec::max_length]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0]", "ReturnValue.Field[crate::codec::any_delimiter_codec::AnyDelimiterCodecError::Io(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::codec", "Argument[self].Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::codec_mut", "Argument[self].Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from_parts", "Argument[0].Field[crate::codec::framed::FramedParts::codec]", "ReturnValue.Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from_parts", "Argument[0].Field[crate::codec::framed::FramedParts::io]", "ReturnValue.Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_parts", "Argument[self].Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Field[crate::codec::framed::FramedParts::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_parts", "Argument[self].Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[crate::codec::framed::FramedParts::io]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_codec", "Argument[0].ReturnValue", "ReturnValue.Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_codec", "Argument[self].Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_codec", "Argument[self].Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[0]", "ReturnValue.Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[1]", "ReturnValue.Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::codec::framed::FramedParts::io]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[crate::codec::framed::FramedParts::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::borrow", "Argument[self].Field[crate::codec::framed_impl::RWFrames::read]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::borrow", "Argument[self].Field[crate::codec::framed_impl::RWFrames::write]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::borrow_mut", "Argument[self].Field[crate::codec::framed_impl::RWFrames::read]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::borrow_mut", "Argument[self].Field[crate::codec::framed_impl::RWFrames::write]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0]", "ReturnValue.Field[crate::codec::framed_impl::ReadFrame::buffer]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0]", "ReturnValue.Field[crate::codec::framed_impl::WriteFrame::buffer]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::decoder", "Argument[self].Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::decoder_mut", "Argument[self].Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_decoder", "Argument[0].ReturnValue", "ReturnValue.Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_decoder", "Argument[self].Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_decoder", "Argument[self].Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_decoder", "Argument[self].Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::state]", "ReturnValue.Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::state]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[0]", "ReturnValue.Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[1]", "ReturnValue.Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::encoder", "Argument[self].Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::encoder_mut", "Argument[self].Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_encoder", "Argument[0].ReturnValue", "ReturnValue.Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_encoder", "Argument[self].Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_encoder", "Argument[self].Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_encoder", "Argument[self].Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::state]", "ReturnValue.Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::state]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::big_endian", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_adjustment", "Argument[0]", "Argument[self].Field[crate::codec::length_delimited::Builder::length_adjustment]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_adjustment", "Argument[0]", "ReturnValue.Field[crate::codec::length_delimited::Builder::length_adjustment]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_adjustment", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_length", "Argument[0]", "Argument[self].Field[crate::codec::length_delimited::Builder::length_field_len]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_length", "Argument[0]", "ReturnValue.Field[crate::codec::length_delimited::Builder::length_field_len]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_length", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_offset", "Argument[0]", "Argument[self].Field[crate::codec::length_delimited::Builder::length_field_offset]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_offset", "Argument[0]", "ReturnValue.Field[crate::codec::length_delimited::Builder::length_field_offset]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_offset", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::little_endian", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_frame_length", "Argument[0]", "Argument[self].Field[crate::codec::length_delimited::Builder::max_frame_len]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_frame_length", "Argument[0]", "ReturnValue.Field[crate::codec::length_delimited::Builder::max_frame_len]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_frame_length", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::native_endian", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_codec", "Argument[self].Reference", "ReturnValue.Field[crate::codec::length_delimited::LengthDelimitedCodec::builder]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_framed", "Argument[0]", "ReturnValue.Field[crate::codec::framed::Framed::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_read", "Argument[0]", "ReturnValue.Field[crate::codec::framed_read::FramedRead::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_write", "Argument[0]", "ReturnValue.Field[crate::codec::framed_write::FramedWrite::inner].Field[crate::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::num_skip", "Argument[0]", "Argument[self].Field[crate::codec::length_delimited::Builder::num_skip].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::num_skip", "Argument[0]", "ReturnValue.Field[crate::codec::length_delimited::Builder::num_skip].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::num_skip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_frame_length", "Argument[self].Field[crate::codec::length_delimited::LengthDelimitedCodec::builder].Field[crate::codec::length_delimited::Builder::max_frame_len]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::set_max_frame_length", "Argument[0]", "Argument[self].Field[crate::codec::length_delimited::LengthDelimitedCodec::builder].Field[crate::codec::length_delimited::Builder::max_frame_len]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_length", "Argument[self].Field[crate::codec::lines_codec::LinesCodec::max_length]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_with_max_length", "Argument[0]", "ReturnValue.Field[crate::codec::lines_codec::LinesCodec::max_length]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0]", "ReturnValue.Field[crate::codec::lines_codec::LinesCodecError::Io(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[crate::compat::Compat::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[crate::compat::Compat::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::compat::Compat::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::handle", "Argument[self].Field[crate::context::TokioContext::handle]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::context::TokioContext::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::context::TokioContext::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[crate::context::TokioContext::handle]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[crate::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[crate::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::io::copy_to_bytes::CopyToBytes::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::io::inspect::InspectReader::reader]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::io::inspect::InspectReader::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[crate::io::inspect::InspectReader::f]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::io::inspect::InspectWriter::writer]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::io::inspect::InspectWriter::writer]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[crate::io::inspect::InspectWriter::f]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::io::reader_stream::ReaderStream::reader].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[0]", "ReturnValue.Field[crate::io::reader_stream::ReaderStream::reader].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[1]", "ReturnValue.Field[crate::io::reader_stream::ReaderStream::capacity]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[crate::io::sink_writer::SinkWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[crate::io::sink_writer::SinkWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::io::sink_writer::SinkWriter::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::io::sink_writer::SinkWriter::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[crate::io::stream_reader::StreamReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[crate::io::stream_reader::StreamReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::io::stream_reader::StreamReader::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner_with_chunk", "Argument[self].Field[crate::io::stream_reader::StreamReader::chunk]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner_with_chunk", "Argument[self].Field[crate::io::stream_reader::StreamReader::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::io::stream_reader::StreamReader::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::as_mut", "Argument[self].Field[crate::io::sync_bridge::SyncIoBridge::src]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::as_ref", "Argument[self].Field[crate::io::sync_bridge::SyncIoBridge::src]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::io::sync_bridge::SyncIoBridge::src]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::io::sync_bridge::SyncIoBridge::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_with_handle", "Argument[0]", "ReturnValue.Field[crate::io::sync_bridge::SyncIoBridge::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_with_handle", "Argument[1]", "ReturnValue.Field[crate::io::sync_bridge::SyncIoBridge::rt]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::wrap", "Argument[0]", "ReturnValue.Field[crate::context::TokioContext::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::wrap", "Argument[self].Field[crate::runtime::runtime::Runtime::handle]", "ReturnValue.Field[crate::context::TokioContext::handle]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[crate::sync::cancellation_token::CancellationToken::inner].Reference", "ReturnValue.Field[crate::sync::cancellation_token::CancellationToken::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::cancelled", "Argument[self]", "ReturnValue.Field[crate::sync::cancellation_token::WaitForCancellationFuture::cancellation_token]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::cancelled_owned", "Argument[self]", "ReturnValue.Field[crate::sync::cancellation_token::WaitForCancellationFutureOwned::cancellation_token]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::drop_guard", "Argument[self]", "ReturnValue.Field[crate::sync::cancellation_token::guard::DropGuard::inner].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::disarm", "Argument[self].Field[crate::sync::cancellation_token::guard::DropGuard::inner].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::notified", "Argument[self].Field[crate::sync::cancellation_token::tree_node::TreeNode::waker]", "ReturnValue.Field[crate::sync::notify::Notified::notify].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::notified", "Argument[self].Field[crate::sync::cancellation_token::tree_node::TreeNode::waker]", "ReturnValue.Field[crate::sync::notify::Notified::notify]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::sync::mpsc::PollSendError(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[crate::sync::mpsc::PollSender::sender].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::sync::mpsc::PollSender::sender].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[crate::sync::mpsc::PollSender::sender].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::sync::mpsc::PollSender::state].Field[crate::sync::mpsc::State::Idle(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::abort_send", "Argument[self].Field[crate::sync::mpsc::PollSender::sender].Field[crate::option::Option::Some(0)]", "Argument[self].Field[crate::sync::mpsc::PollSender::state].Field[crate::sync::mpsc::State::Idle(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[crate::sync::mpsc::PollSender::sender].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0].Reference", "ReturnValue.Field[crate::sync::mpsc::PollSender::sender].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::mpsc::PollSender::sender].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::mpsc::PollSender::state].Field[crate::sync::mpsc::State::Idle(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[crate::sync::poll_semaphore::PollSemaphore::semaphore].Reference", "ReturnValue.Field[crate::sync::poll_semaphore::PollSemaphore::semaphore]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::as_ref", "Argument[self].Field[crate::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone_inner", "Argument[self].Field[crate::sync::poll_semaphore::PollSemaphore::semaphore].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::poll_semaphore::PollSemaphore::semaphore]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::try_set", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::as_ref", "Argument[self].Field[crate::task::abort_on_drop::AbortOnDropHandle(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::abort_handle", "Argument[self].Field[0].Field[crate::runtime::task::join::JoinHandle::raw]", "ReturnValue.Field[crate::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::abort_handle", "Argument[self].Field[crate::task::abort_on_drop::AbortOnDropHandle(0)].Field[crate::runtime::task::join::JoinHandle::raw]", "ReturnValue.Field[crate::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[crate::task::task_tracker::TaskTracker::inner].Reference", "ReturnValue.Field[crate::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::token", "Argument[self].Field[crate::task::task_tracker::TaskTracker::inner].Reference", "ReturnValue.Field[crate::task::task_tracker::TaskTrackerToken::task_tracker].Field[crate::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::token", "Argument[self].Reference", "ReturnValue.Field[crate::task::task_tracker::TaskTrackerToken::task_tracker]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::track_future", "Argument[0]", "ReturnValue.Field[crate::task::task_tracker::TrackedFuture::future]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::track_future", "Argument[self].Reference", "ReturnValue.Field[crate::task::task_tracker::TrackedFuture::token].Field[crate::task::task_tracker::TaskTrackerToken::task_tracker]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[crate::task::task_tracker::TaskTrackerToken::task_tracker].Reference", "ReturnValue.Field[crate::task::task_tracker::TaskTrackerToken::task_tracker]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[crate::task::task_tracker::TaskTrackerToken::task_tracker]", "ReturnValue.Field[crate::task::task_tracker::TaskTrackerToken::task_tracker]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::task_tracker", "Argument[self].Field[crate::task::task_tracker::TaskTrackerToken::task_tracker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::deadline", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::peek", "Argument[self].Field[crate::time::delay_queue::DelayQueue::expired].Field[crate::time::delay_queue::Stack::head]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_expired", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::remove", "Argument[0].Field[crate::time::delay_queue::Key::index]", "ReturnValue.Field[crate::time::delay_queue::Expired::key].Field[crate::time::delay_queue::Key::index]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::try_remove", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::deadline", "Argument[self].Field[crate::time::delay_queue::Expired::deadline]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[crate::time::delay_queue::Expired::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[crate::time::delay_queue::Expired::data]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::time::delay_queue::Expired::data]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::key", "Argument[self].Field[crate::time::delay_queue::Expired::key]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0].Field[crate::time::delay_queue::KeyInternal::index]", "ReturnValue.Field[crate::time::delay_queue::Key::index]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::time::delay_queue::Key::index]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0].Field[crate::time::delay_queue::Key::index]", "ReturnValue.Field[crate::time::delay_queue::KeyInternal::index]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::time::delay_queue::KeyInternal::index]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::index", "Argument[self].Field[crate::time::delay_queue::SlabStorage::inner].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::index_mut", "Argument[self].Field[crate::time::delay_queue::SlabStorage::inner].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::peek", "Argument[self].Field[crate::time::delay_queue::Stack::head]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::push", "Argument[0]", "Argument[self].Field[crate::time::delay_queue::Stack::head].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::elapsed", "Argument[self].Field[crate::time::wheel::Wheel::elapsed]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::insert", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::time::wheel::level::Level::level]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::next_expiration", "Argument[self].Field[crate::time::wheel::level::Level::level]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::time::wheel::level::Expiration::level]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::codec", "Argument[self].Field[crate::udp::frame::UdpFramed::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::codec_mut", "Argument[self].Field[crate::udp::frame::UdpFramed::codec]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[crate::udp::frame::UdpFramed::socket]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[crate::udp::frame::UdpFramed::socket]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[crate::udp::frame::UdpFramed::socket]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[crate::udp::frame::UdpFramed::socket]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[crate::udp::frame::UdpFramed::codec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::read_buffer", "Argument[self].Field[crate::udp::frame::UdpFramed::rd]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::read_buffer_mut", "Argument[self].Field[crate::udp::frame::UdpFramed::rd]", "ReturnValue.Reference", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::write", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_write", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::index", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::index_mut", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::remove", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::next_expiration", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::next_expiration", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio.model.yml b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio.model.yml new file mode 100644 index 00000000000..6790d9d9711 --- /dev/null +++ b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio.model.yml @@ -0,0 +1,752 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&[u8] as crate::io::async_buf_read::AsyncBufRead>::poll_fill_buf", "Argument[self].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&crate::task::wake::Waker as crate::sync::task::atomic_waker::WakerRef>::into_waker", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&mut crate::runtime::scheduler::inject::synced::Synced as crate::runtime::scheduler::lock::Lock>::lock", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_write_vectored", "Argument[self].Field[crate::MockWriter::vectored]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::TempFifo::path]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::TempFifo::path]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mode", "Argument[0]", "Argument[self].Field[crate::fs::dir_builder::DirBuilder::mode].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mode", "Argument[0]", "ReturnValue.Field[crate::fs::dir_builder::DirBuilder::mode].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::recursive", "Argument[0]", "Argument[self].Field[crate::fs::dir_builder::DirBuilder::recursive]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::recursive", "Argument[0]", "ReturnValue.Field[crate::fs::dir_builder::DirBuilder::recursive]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::recursive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set_max_buf_size", "Argument[0]", "Argument[self].Field[crate::fs::file::File::max_buf_size]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_into_std", "Argument[self].Field[crate::fs::file::File::std]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::fs::file::File::std]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_into_std", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[crate::fs::open_options::OpenOptions(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_inner_mut", "Argument[self].Field[crate::fs::open_options::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::create", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::create_new", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::custom_flags", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::truncate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_inner", "Argument[self].Field[crate::fs::read_dir::DirEntry::std]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[crate::io::async_fd::AsyncFd::inner].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[crate::io::async_fd::AsyncFd::inner].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::ready", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::io::async_fd::AsyncFdReadyGuard::async_fd]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::ready_mut", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io_mut", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_new", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::io::async_fd::AsyncFdTryNewError::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_new_with_handle_and_interest", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::io::async_fd::AsyncFdTryNewError::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_with_interest", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::io::async_fd::AsyncFdTryNewError::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[crate::io::async_fd::AsyncFdReadyGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[0].ReturnValue", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[self].Field[crate::io::async_fd::AsyncFdReadyGuard::async_fd]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[crate::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[crate::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[0].ReturnValue", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[self].Field[crate::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::source", "Argument[self].Field[crate::io::async_fd::AsyncFdTryNewError::cause]", "ReturnValue.Field[crate::option::Option::Some(0)].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_parts", "Argument[self].Field[crate::io::async_fd::AsyncFdTryNewError::cause]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_parts", "Argument[self].Field[crate::io::async_fd::AsyncFdTryNewError::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::blocking::Blocking::inner].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bytes", "Argument[self].Field[crate::io::blocking::Buf::buf].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::copy_from", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::copy_from_bufs", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::copy_to", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::copy_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[crate::io::async_fd::AsyncFdTryNewError::cause]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[crate::runtime::blocking::pool::SpawnError::NoThreads(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::io::join::Join::reader]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::io::join::Join::writer]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reader", "Argument[self].Field[crate::io::join::Join::reader]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reader_mut", "Argument[self].Field[crate::io::join::Join::reader]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::writer", "Argument[self].Field[crate::io::join::Join::writer]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::writer_mut", "Argument[self].Field[crate::io::join::Join::writer]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::io::poll_evented::PollEvented::io].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::io::poll_evented::PollEvented::io].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_with_interest_and_handle", "Argument[2]", "ReturnValue.Field[crate::runtime::io::registration::Registration::handle]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::registration", "Argument[self].Field[crate::io::poll_evented::PollEvented::registration]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::advance_mut", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::remaining_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::assume_init", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::initialize_unfilled_to", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::inner_mut", "Argument[self].Field[crate::io::read_buf::ReadBuf::buf]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set_filled", "Argument[0]", "Argument[self].Field[crate::io::read_buf::ReadBuf::filled]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::take", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unfilled_mut", "Argument[self].Field[crate::io::read_buf::ReadBuf::buf].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::uninit", "Argument[0]", "ReturnValue.Field[crate::io::read_buf::ReadBuf::buf]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_usize", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_usize", "Argument[self].Field[crate::io::ready::Ready(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_usize", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::intersection", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::stdio_common::SplitByUtf8BoundaryIfWindows::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::buffer", "Argument[self].Field[crate::io::util::buf_reader::BufReader::buf].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[crate::io::util::buf_reader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[crate::io::util::buf_reader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::io::util::buf_reader::BufReader::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::buf_reader::BufReader::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_capacity", "Argument[1]", "ReturnValue.Field[crate::io::util::buf_reader::BufReader::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[crate::io::util::buf_stream::BufStream::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::buffer", "Argument[self].Field[crate::io::util::buf_writer::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[crate::io::util::buf_writer::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[crate::io::util::buf_writer::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::io::util::buf_writer::BufWriter::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::buf_writer::BufWriter::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_capacity", "Argument[1]", "ReturnValue.Field[crate::io::util::buf_writer::BufWriter::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[crate::io::util::chain::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[crate::io::util::chain::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[crate::io::util::chain::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[crate::io::util::chain::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::io::util::chain::Chain::first]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::io::util::chain::Chain::second]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_copy", "Argument[self].Field[crate::io::util::copy::CopyBuffer::amt]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[crate::io::util::lines::Lines::reader]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[crate::io::util::lines::Lines::reader]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::io::util::lines::Lines::reader]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_unsplit", "Argument[0]", "ReturnValue.Field[crate::io::util::mem::SimplexStream::max_buf_size]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadF32::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadF32Le::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadF64::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadF64Le::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadI128::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadI128Le::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadI16::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadI16Le::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadI32::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadI32Le::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadI64::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadI64Le::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadI8::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadU128::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadU128Le::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadU16::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadU16Le::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadU32::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadU32Le::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadU64::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadU64Le::src]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::read_int::ReadU8::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[crate::io::util::take::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[crate::io::util::take::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::io::util::take::Take::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::limit", "Argument[self].Field[crate::io::util::take::Take::limit_]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set_limit", "Argument[0]", "Argument[self].Field[crate::io::util::take::Take::limit_]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::apply_read_buf", "Argument[0].Field[crate::io::util::vec_with_initialized::ReadBufParts::initialized]", "Argument[self].Field[crate::io::util::vec_with_initialized::VecWithInitialized::num_initialized]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::vec_with_initialized::VecWithInitialized::vec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::take", "Argument[self].Field[crate::io::util::vec_with_initialized::VecWithInitialized::vec]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteF32::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteF32Le::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteF64::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteF64Le::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteI128::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteI128Le::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteI16::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteI16Le::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteI32::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteI32Le::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteI64::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteI64Le::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteI8::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[crate::io::util::write_int::WriteI8::byte]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteU128::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteU128Le::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteU16::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteU16Le::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteU32::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteU32Le::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteU64::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteU64Le::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::util::write_int::WriteU8::dst]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[crate::io::util::write_int::WriteU8::byte]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::loom::std::barrier::Barrier::num_threads]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_leader", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_leader", "Argument[self].Field[crate::loom::std::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::wait", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::wait_timeout", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::poll_evented::PollEvented::io].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::net::tcp::split::ReadHalf(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::net::tcp::split::WriteHalf(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::net::tcp::split_owned::OwnedReadHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::tcp::split_owned::ReuniteError(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::tcp::split_owned::ReuniteError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::net::tcp::split_owned::OwnedWriteHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::tcp::split_owned::ReuniteError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::tcp::split_owned::ReuniteError(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::poll_evented::PollEvented::io].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::split", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::poll_evented::PollEvented::io].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unchecked", "Argument[0]", "Argument[self].Field[crate::net::unix::pipe::OpenOptions::unchecked]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unchecked", "Argument[0]", "ReturnValue.Field[crate::net::unix::pipe::OpenOptions::unchecked]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[crate::net::unix::socketaddr::SocketAddr(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::net::unix::split::ReadHalf(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::net::unix::split::WriteHalf(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::net::unix::split_owned::OwnedReadHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::unix::split_owned::ReuniteError(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::unix::split_owned::ReuniteError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::net::unix::split_owned::OwnedWriteHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::unix::split_owned::ReuniteError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::unix::split_owned::ReuniteError(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::io::poll_evented::PollEvented::io].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::split", "Argument[self]", "ReturnValue.Field[0].Field[crate::net::unix::split::ReadHalf(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::split", "Argument[self]", "ReturnValue.Field[1].Field[crate::net::unix::split::WriteHalf(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::gid", "Argument[self].Field[crate::net::unix::ucred::UCred::gid]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pid", "Argument[self].Field[crate::net::unix::ucred::UCred::pid]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::uid", "Argument[self].Field[crate::net::unix::ucred::UCred::uid]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[crate::net::unix::socketaddr::SocketAddr(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[crate::process::Command::std]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::arg0", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_std", "Argument[self].Field[crate::process::Command::std]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_std_mut", "Argument[self].Field[crate::process::Command::std]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::current_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::env", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::env_clear", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::env_remove", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::envs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_kill_on_drop", "Argument[self].Field[crate::process::Command::kill_on_drop]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::gid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_std", "Argument[self].Field[crate::process::Command::std]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::kill_on_drop", "Argument[0]", "Argument[self].Field[crate::process::Command::kill_on_drop]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::kill_on_drop", "Argument[0]", "ReturnValue.Field[crate::process::Command::kill_on_drop]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::kill_on_drop", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pre_exec", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::process_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::stderr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::stdin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::stdout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::uid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::inner_mut", "Argument[self].Field[crate::process::imp::reap::Reaper::inner].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::process::imp::reap::Reaper::inner].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[crate::process::imp::reap::Reaper::orphan_queue]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[2]", "ReturnValue.Field[crate::process::imp::reap::Reaper::signal]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_wait", "Argument[self].Field[crate::process::imp::reap::test::MockWait::status]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::spawner", "Argument[self].Field[crate::runtime::blocking::pool::BlockingPool::spawner]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::runtime::blocking::pool::Task::task]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[crate::runtime::blocking::pool::Task::mandatory]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::hooks", "Argument[self].Field[crate::runtime::blocking::schedule::BlockingSchedule::hooks].Field[crate::runtime::task::TaskHarnessScheduleHooks::task_terminate_callback]", "ReturnValue.Field[crate::runtime::task::TaskHarnessScheduleHooks::task_terminate_callback]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0].Reference", "ReturnValue.Field[crate::runtime::blocking::schedule::BlockingSchedule::handle]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::runtime::blocking::task::BlockingTask::func].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::enable_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::enable_io", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::enable_time", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::event_interval", "Argument[0]", "Argument[self].Field[crate::runtime::builder::Builder::event_interval]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::event_interval", "Argument[0]", "ReturnValue.Field[crate::runtime::builder::Builder::event_interval]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::event_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::global_queue_interval", "Argument[0]", "Argument[self].Field[crate::runtime::builder::Builder::global_queue_interval].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::global_queue_interval", "Argument[0]", "ReturnValue.Field[crate::runtime::builder::Builder::global_queue_interval].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::global_queue_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_blocking_threads", "Argument[0]", "Argument[self].Field[crate::runtime::builder::Builder::max_blocking_threads]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_blocking_threads", "Argument[0]", "ReturnValue.Field[crate::runtime::builder::Builder::max_blocking_threads]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_blocking_threads", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_io_events_per_tick", "Argument[0]", "Argument[self].Field[crate::runtime::builder::Builder::nevents]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_io_events_per_tick", "Argument[0]", "ReturnValue.Field[crate::runtime::builder::Builder::nevents]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_io_events_per_tick", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::runtime::builder::Builder::kind]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[crate::runtime::builder::Builder::event_interval]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::on_thread_park", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::on_thread_start", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::on_thread_stop", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::on_thread_unpark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::start_paused", "Argument[0]", "Argument[self].Field[crate::runtime::builder::Builder::start_paused]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::start_paused", "Argument[0]", "ReturnValue.Field[crate::runtime::builder::Builder::start_paused]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::start_paused", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_keep_alive", "Argument[0]", "Argument[self].Field[crate::runtime::builder::Builder::keep_alive].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_keep_alive", "Argument[0]", "ReturnValue.Field[crate::runtime::builder::Builder::keep_alive].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_name_fn", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_stack_size", "Argument[0]", "Argument[self].Field[crate::runtime::builder::Builder::thread_stack_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_stack_size", "Argument[0]", "ReturnValue.Field[crate::runtime::builder::Builder::thread_stack_size].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_stack_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::worker_threads", "Argument[0]", "Argument[self].Field[crate::runtime::builder::Builder::worker_threads].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::worker_threads", "Argument[0]", "ReturnValue.Field[crate::runtime::builder::Builder::worker_threads].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::worker_threads", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[crate::runtime::driver::IoHandle::Enabled(0)]", "ReturnValue.Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::metrics", "Argument[self].Reference", "ReturnValue.Field[crate::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::consume_signal_ready", "Argument[self].Field[crate::runtime::io::driver::Driver::signal_ready]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_ready", "Argument[0]", "ReturnValue.Field[crate::runtime::io::driver::ReadyEvent::ready]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_ready", "Argument[self].Field[crate::runtime::io::driver::ReadyEvent::is_shutdown]", "ReturnValue.Field[crate::runtime::io::driver::ReadyEvent::is_shutdown]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_ready", "Argument[self].Field[crate::runtime::io::driver::ReadyEvent::tick]", "ReturnValue.Field[crate::runtime::io::driver::ReadyEvent::tick]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_with_interest_and_handle", "Argument[2]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::runtime::io::registration::Registration::handle]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_write_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_shutdown", "Argument[0].Field[crate::runtime::io::registration_set::Synced::is_shutdown]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unpark", "Argument[self].Field[crate::runtime::park::ParkThread::inner].Reference", "ReturnValue.Field[crate::runtime::park::UnparkThread::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::runtime::process::Driver::park]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_parts", "Argument[0]", "ReturnValue.Field[crate::runtime::runtime::Runtime::scheduler]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_parts", "Argument[1]", "ReturnValue.Field[crate::runtime::runtime::Runtime::handle]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_parts", "Argument[2]", "ReturnValue.Field[crate::runtime::runtime::Runtime::blocking_pool]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::handle", "Argument[self].Field[crate::runtime::runtime::Runtime::handle]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::metrics", "Argument[self].Field[crate::runtime::runtime::Runtime::handle].Reference", "ReturnValue.Field[crate::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::metrics", "Argument[self].Field[crate::runtime::runtime::Runtime::handle]", "ReturnValue.Field[crate::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::expect_current_thread", "Argument[self].Field[crate::runtime::scheduler::Context::CurrentThread(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::expect_multi_thread", "Argument[self].Field[crate::runtime::scheduler::Context::MultiThread(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_current_thread", "Argument[self].Field[crate::runtime::scheduler::Handle::CurrentThread(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::worker_metrics", "Argument[self].Field[crate::runtime::scheduler::current_thread::Handle::shared].Field[crate::runtime::scheduler::current_thread::Shared::worker_metrics]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self].Field[crate::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::size_hint", "Argument[self].Field[crate::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::size_hint", "Argument[self].Field[crate::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::runtime::scheduler::inject::pop::Pop::len]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[crate::runtime::scheduler::inject::pop::Pop::synced]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_closed", "Argument[0].Field[crate::runtime::scheduler::inject::synced::Synced::is_closed]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[0].Field[crate::runtime::scheduler::inject::synced::Synced::head].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[0].Field[crate::runtime::scheduler::inject::synced::Synced::head].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_n", "Argument[0]", "ReturnValue.Field[crate::runtime::scheduler::inject::pop::Pop::synced]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_n", "Argument[1]", "ReturnValue.Field[crate::runtime::scheduler::inject::pop::Pop::len]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[self].Field[crate::runtime::scheduler::inject::synced::Synced::head].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[self].Field[crate::runtime::scheduler::inject::synced::Synced::head].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::trace_core", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::worker_metrics", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[0].Field[crate::runtime::scheduler::multi_thread::idle::Idle::num_workers]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[crate::runtime::scheduler::multi_thread::idle::State(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unpark", "Argument[self].Field[crate::runtime::scheduler::multi_thread::park::Parker::inner].Reference", "ReturnValue.Field[crate::runtime::scheduler::multi_thread::park::Unparker::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[0].Reference", "ReturnValue.Field[crate::runtime::scheduler::multi_thread::queue::Steal(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::runtime::scheduler::multi_thread::queue::Steal(0)].Reference", "ReturnValue.Field[crate::runtime::scheduler::multi_thread::queue::Steal(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::runtime::signal::Driver::io]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue.Field[crate::runtime::task::Notified(0)].Field[crate::runtime::task::Task::raw]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_raw", "Argument[self].Field[0].Field[crate::runtime::task::Task::raw]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_raw", "Argument[self].Field[crate::runtime::task::Notified(0)].Field[crate::runtime::task::Task::raw]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Field[crate::runtime::task::Task::raw].Field[crate::runtime::task::raw::RawTask::ptr]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue.Field[crate::runtime::task::Task::raw].Field[crate::runtime::task::raw::RawTask::ptr]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::cancelled", "Argument[0]", "ReturnValue.Field[crate::runtime::task::error::JoinError::id]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::id", "Argument[self].Field[crate::runtime::task::error::JoinError::id]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::panic", "Argument[0]", "ReturnValue.Field[crate::runtime::task::error::JoinError::id]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_into_panic", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::abort_handle", "Argument[self].Field[crate::runtime::task::join::JoinHandle::raw]", "ReturnValue.Field[crate::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::runtime::task::join::JoinHandle::raw]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::assert_owner", "Argument[0].Field[0]", "ReturnValue.Field[crate::runtime::task::LocalNotified::task]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::assert_owner", "Argument[0].Field[crate::runtime::task::Notified(0)]", "ReturnValue.Field[crate::runtime::task::LocalNotified::task]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::assert_owner", "Argument[0].Field[0]", "ReturnValue.Field[crate::runtime::task::LocalNotified::task]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::assert_owner", "Argument[0].Field[crate::runtime::task::Notified(0)]", "ReturnValue.Field[crate::runtime::task::LocalNotified::task]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue.Field[crate::runtime::task::raw::RawTask::ptr]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::header_ptr", "Argument[self].Field[crate::runtime::task::raw::RawTask::ptr]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::ref_count", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::runtime::task::waker::WakerRef::waker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_config", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::id", "Argument[self].Field[crate::runtime::task_hooks::TaskMeta::id]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[0].Field[crate::runtime::time::Driver::park]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deadline", "Argument[self].Field[crate::runtime::time::entry::TimerEntry::deadline]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::runtime::time::entry::TimerEntry::driver]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[crate::runtime::time::entry::TimerEntry::deadline]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Field[crate::runtime::time::entry::TimerHandle::inner]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue.Field[crate::runtime::time::entry::TimerHandle::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::handle", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::time_source", "Argument[self].Field[crate::runtime::time::handle::Handle::time_source]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::start_time", "Argument[self].Field[crate::runtime::time::source::TimeSource::start_time]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::tick_to_duration", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::elapsed", "Argument[self].Field[crate::runtime::time::wheel::Wheel::elapsed]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::insert", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::next_expiration_time", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll", "Argument[0]", "Argument[self].Field[crate::runtime::time::wheel::Wheel::elapsed]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_at", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::runtime::time::wheel::level::Level::level]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::next_expiration", "Argument[self].Field[crate::runtime::time::wheel::level::Level::level]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::runtime::time::wheel::level::Expiration::level]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::take_slot", "Argument[self].Field[crate::runtime::time::wheel::level::Level::slot].Element", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::signal::registry::Globals::extra]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::storage", "Argument[self].Field[crate::signal::registry::Globals::registry].Field[crate::signal::registry::Registry::storage]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_set", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw_value", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw_value", "Argument[self].Field[crate::signal::unix::SignalKind(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::support::io_vec::IoBufs(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::advance", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::support::io_vec::IoBufs(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::barrier::Barrier::n]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_leader", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_leader", "Argument[self].Field[crate::sync::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire", "Argument[0]", "ReturnValue.Field[crate::sync::batch_semaphore::Acquire::num_permits]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire", "Argument[self]", "ReturnValue.Field[crate::sync::batch_semaphore::Acquire::semaphore]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::forget_permits", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::resubscribe", "Argument[self].Field[crate::sync::broadcast::Receiver::shared].Reference", "ReturnValue.Field[crate::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::sync::broadcast::Sender::shared].Reference", "ReturnValue.Field[crate::sync::broadcast::Sender::shared]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::downgrade", "Argument[self].Field[crate::sync::broadcast::Sender::shared].Reference", "ReturnValue.Field[crate::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::broadcast::error::SendError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::subscribe", "Argument[self].Field[crate::sync::broadcast::Sender::shared].Reference", "ReturnValue.Field[crate::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::sync::broadcast::WeakSender::shared].Reference", "ReturnValue.Field[crate::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::upgrade", "Argument[self].Field[crate::sync::broadcast::WeakSender::shared].Reference", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::broadcast::Sender::shared]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::release", "Argument[self].Field[crate::sync::mpsc::bounded::OwnedPermit::chan].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send", "Argument[self].Field[crate::sync::mpsc::bounded::OwnedPermit::chan].Field[crate::option::Option::Some(0)]", "ReturnValue.Field[crate::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::next", "Argument[self].Field[crate::sync::mpsc::bounded::PermitIterator::chan]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::mpsc::bounded::Permit::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::size_hint", "Argument[self].Field[crate::sync::mpsc::bounded::PermitIterator::n]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::size_hint", "Argument[self].Field[crate::sync::mpsc::bounded::PermitIterator::n]", "ReturnValue.Field[1].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::mpsc::bounded::Receiver::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::sync::mpsc::bounded::Sender::chan].Reference", "ReturnValue.Field[crate::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::sync::mpsc::bounded::Sender::chan]", "ReturnValue.Field[crate::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reserve", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reserve_many", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::mpsc::bounded::PermitIterator::n]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::error::SendError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send_timeout", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::error::SendTimeoutError::Closed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send_timeout", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::error::SendTimeoutError::Timeout(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_reserve", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_reserve_many", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::mpsc::bounded::PermitIterator::n]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_reserve_owned", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_reserve_owned", "Argument[self]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::error::TrySendError::Full(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::error::TrySendError::Full(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::sync::mpsc::bounded::WeakSender::chan].Reference", "ReturnValue.Field[crate::sync::mpsc::bounded::WeakSender::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::upgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::sync::mpsc::chan::Tx::inner].Reference", "ReturnValue.Field[crate::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::downgrade", "Argument[self].Field[crate::sync::mpsc::chan::Tx::inner].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::upgrade", "Argument[0]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::sync::mpsc::error::SendTimeoutError::Closed(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::sync::mpsc::error::SendTimeoutError::Timeout(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[0]", "ReturnValue.Field[crate::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[crate::sync::mpsc::error::SendError(0)]", "ReturnValue.Field[crate::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::sync::mpsc::error::TrySendError::Closed(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::sync::mpsc::error::TrySendError::Full(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::mpsc::unbounded::UnboundedReceiver::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::sync::mpsc::unbounded::UnboundedSender::chan].Reference", "ReturnValue.Field[crate::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::sync::mpsc::unbounded::UnboundedSender::chan]", "ReturnValue.Field[crate::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::error::SendError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::sync::mpsc::unbounded::WeakUnboundedSender::chan].Reference", "ReturnValue.Field[crate::sync::mpsc::unbounded::WeakUnboundedSender::chan]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::upgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::sync::mutex::MappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[crate::sync::mutex::MappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_lock", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::mutex::MutexGuard::lock]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_lock_owned", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::mutex::OwnedMutexGuard::lock]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mutex", "Argument[0].Field[crate::sync::mutex::MutexGuard::lock]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::sync::mutex::OwnedMappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[crate::sync::mutex::OwnedMappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mutex", "Argument[0].Field[crate::sync::mutex::OwnedMutexGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::notified", "Argument[self]", "ReturnValue.Field[crate::sync::notify::Notified::notify]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::once_cell::SetError::AlreadyInitializedError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::once_cell::SetError::InitializingError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::const_with_max_readers", "Argument[1]", "ReturnValue.Field[crate::sync::rwlock::RwLock::mr]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_read_owned", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::rwlock::owned_read_guard::OwnedRwLockReadGuard::lock]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_write", "Argument[self].Field[crate::sync::rwlock::RwLock::mr]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::rwlock::write_guard::RwLockWriteGuard::permits_acquired]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_write_owned", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::lock]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_max_readers", "Argument[1]", "ReturnValue.Field[crate::sync::rwlock::RwLock::mr]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::sync::rwlock::owned_read_guard::OwnedRwLockReadGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::rwlock", "Argument[0].Field[crate::sync::rwlock::owned_read_guard::OwnedRwLockReadGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[crate::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_mapped", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::rwlock", "Argument[0].Field[crate::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_downgrade_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::sync::rwlock::owned_write_guard_mapped::OwnedRwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[crate::sync::rwlock::owned_write_guard_mapped::OwnedRwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::rwlock", "Argument[0].Field[crate::sync::rwlock::owned_write_guard_mapped::OwnedRwLockMappedWriteGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::sync::rwlock::read_guard::RwLockReadGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::sync::rwlock::write_guard::RwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[crate::sync::rwlock::write_guard::RwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_mapped", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_downgrade_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::sync::rwlock::write_guard_mapped::RwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[crate::sync::rwlock::write_guard_mapped::RwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::num_permits", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::semaphore", "Argument[self].Field[crate::sync::semaphore::OwnedSemaphorePermit::sem]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::split", "Argument[self].Field[crate::sync::semaphore::OwnedSemaphorePermit::sem].Reference", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire_many", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::SemaphorePermit::permits]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire_many", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire_many_owned", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::OwnedSemaphorePermit::permits]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire_many_owned", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire_owned", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::forget_permits", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire_many", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::SemaphorePermit::permits]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire_many", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire_many_owned", "Argument[0]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::OwnedSemaphorePermit::permits]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire_many_owned", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire_owned", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::num_permits", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::split", "Argument[self].Field[crate::sync::semaphore::SemaphorePermit::sem]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::has_changed", "Argument[self].Field[crate::sync::watch::Ref::has_changed]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[crate::sync::watch::Sender::shared].Reference", "ReturnValue.Field[crate::sync::watch::Sender::shared]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::watch::error::SendError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send_replace", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::subscribe", "Argument[self].Field[crate::sync::watch::Sender::shared].Reference", "ReturnValue.Field[crate::sync::watch::Receiver::shared]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self].Field[crate::task::join_set::JoinSet::inner].Field[crate::util::idle_notified_set::IdleNotifiedSet::length]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_join_next", "Argument[self].Field[crate::task::join_set::JoinSet::inner]", "ReturnValue.Field[crate::util::idle_notified_set::EntryInOneOfTheLists::set].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_join_next", "Argument[self].Field[crate::task::join_set::JoinSet::inner]", "ReturnValue.Field[crate::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_join_next_with_id", "Argument[self].Field[crate::task::join_set::JoinSet::inner]", "ReturnValue.Field[crate::util::idle_notified_set::EntryInOneOfTheLists::set].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_join_next_with_id", "Argument[self].Field[crate::task::join_set::JoinSet::inner]", "ReturnValue.Field[crate::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::scope", "Argument[0]", "ReturnValue.Field[crate::task::task_local::TaskLocalFuture::slot].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::scope", "Argument[1]", "ReturnValue.Field[crate::task::task_local::TaskLocalFuture::future].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::scope", "Argument[self]", "ReturnValue.Field[crate::task::task_local::TaskLocalFuture::local]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::sync_scope", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_with", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_waker", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[crate::time::instant::Instant::std]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[crate::time::error::Error(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[crate::time::instant::Instant::std]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_std", "Argument[0]", "ReturnValue.Field[crate::time::instant::Instant::std]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_std", "Argument[self].Field[crate::time::instant::Instant::std]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::missed_tick_behavior", "Argument[self].Field[crate::time::interval::Interval::missed_tick_behavior]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::period", "Argument[self].Field[crate::time::interval::Interval::period]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set_missed_tick_behavior", "Argument[0]", "Argument[self].Field[crate::time::interval::Interval::missed_tick_behavior]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deadline", "Argument[self].Field[crate::time::sleep::Sleep::entry].Field[crate::runtime::time::entry::TimerEntry::deadline]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_timeout", "Argument[0]", "ReturnValue.Field[crate::time::sleep::Sleep::entry].Field[crate::runtime::time::entry::TimerEntry::deadline]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[crate::time::timeout::Timeout::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[crate::time::timeout::Timeout::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::time::timeout::Timeout::value]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_with_delay", "Argument[0]", "ReturnValue.Field[crate::time::timeout::Timeout::value]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_with_delay", "Argument[1]", "ReturnValue.Field[crate::time::timeout::Timeout::delay]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pack", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pack", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pack", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unpack", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unpack", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::util::cacheline::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[crate::util::cacheline::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::util::cacheline::CachePadded::value]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::insert_idle", "Argument[self]", "ReturnValue.Field[crate::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self].Field[crate::util::idle_notified_set::IdleNotifiedSet::length]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_notified", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_pop_notified", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drain_filter", "Argument[0]", "ReturnValue.Field[crate::util::linked_list::DrainFilter::filter]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drain_filter", "Argument[self].Field[crate::util::linked_list::LinkedList::head]", "ReturnValue.Field[crate::util::linked_list::DrainFilter::curr]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drain_filter", "Argument[self]", "ReturnValue.Field[crate::util::linked_list::DrainFilter::list]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::last", "Argument[self].Field[crate::util::linked_list::LinkedList::tail].Field[crate::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_back", "Argument[self].Field[crate::util::linked_list::LinkedList::tail].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_back", "Argument[self].Field[crate::util::linked_list::LinkedList::tail].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_front", "Argument[self].Field[crate::util::linked_list::LinkedList::head].Field[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_front", "Argument[self].Field[crate::util::linked_list::LinkedList::head].Field[crate::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::expose_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_exposed_addr", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_seed", "Argument[0].Field[crate::util::rand::RngSeed::r]", "ReturnValue.Field[crate::util::rand::FastRand::two]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_seed", "Argument[0].Field[crate::util::rand::RngSeed::s]", "ReturnValue.Field[crate::util::rand::FastRand::one]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::replace_seed", "Argument[0].Field[crate::util::rand::RngSeed::r]", "Argument[self].Field[crate::util::rand::FastRand::two]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::replace_seed", "Argument[0].Field[crate::util::rand::RngSeed::s]", "Argument[self].Field[crate::util::rand::FastRand::one]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::replace_seed", "Argument[self].Field[crate::util::rand::FastRand::one]", "ReturnValue.Field[crate::util::rand::RngSeed::s]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::replace_seed", "Argument[self].Field[crate::util::rand::FastRand::two]", "ReturnValue.Field[crate::util::rand::RngSeed::r]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::lock_shard", "Argument[self].Field[crate::util::sharded_list::ShardedList::added]", "ReturnValue.Field[crate::util::sharded_list::ShardGuard::added].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::lock_shard", "Argument[self].Field[crate::util::sharded_list::ShardedList::count]", "ReturnValue.Field[crate::util::sharded_list::ShardGuard::count].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::shard_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[crate::util::sync_wrapper::SyncWrapper::value]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[crate::util::sync_wrapper::SyncWrapper::value]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_lock", "Argument[self]", "ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::util::try_lock::LockGuard::lock]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[crate::util::wake::WakerRef::waker]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[crate::signal::unix::SignalKind(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[crate::runtime::scheduler::multi_thread::idle::State(0)]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::join::join", "Argument[0]", "ReturnValue.Field[crate::io::join::Join::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::join::join", "Argument[1]", "ReturnValue.Field[crate::io::join::Join::writer]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::seek::seek", "Argument[0]", "ReturnValue.Field[crate::io::seek::Seek::seek]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::seek::seek", "Argument[1]", "ReturnValue.Field[crate::io::seek::Seek::pos].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::chain::chain", "Argument[0]", "ReturnValue.Field[crate::io::util::chain::Chain::first]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::chain::chain", "Argument[1]", "ReturnValue.Field[crate::io::util::chain::Chain::second]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::fill_buf::fill_buf", "Argument[0]", "ReturnValue.Field[crate::io::util::fill_buf::FillBuf::reader].Field[crate::option::Option::Some(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::flush::flush", "Argument[0]", "ReturnValue.Field[crate::io::util::flush::Flush::a]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::lines::lines", "Argument[0]", "ReturnValue.Field[crate::io::util::lines::Lines::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read::read", "Argument[0]", "ReturnValue.Field[crate::io::util::read::Read::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read::read", "Argument[1]", "ReturnValue.Field[crate::io::util::read::Read::buf]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_buf::read_buf", "Argument[0]", "ReturnValue.Field[crate::io::util::read_buf::ReadBuf::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_buf::read_buf", "Argument[1]", "ReturnValue.Field[crate::io::util::read_buf::ReadBuf::buf]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_exact::read_exact", "Argument[0]", "ReturnValue.Field[crate::io::util::read_exact::ReadExact::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_line::finish_string_read", "Argument[0].Field[crate::result::Result::Err(0)]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_line::finish_string_read", "Argument[0].Field[crate::result::Result::Ok(0)]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_line::finish_string_read", "Argument[1].Field[crate::result::Result::Ok(0)]", "Argument[3].Reference", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_line::read_line", "Argument[0]", "ReturnValue.Field[crate::io::util::read_line::ReadLine::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_line::read_line", "Argument[1]", "ReturnValue.Field[crate::io::util::read_line::ReadLine::output]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_line::read_line_internal", "Argument[4].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_to_end::read_to_end", "Argument[0]", "ReturnValue.Field[crate::io::util::read_to_end::ReadToEnd::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_to_end::read_to_end", "Argument[1]", "ReturnValue.Field[crate::io::util::read_to_end::ReadToEnd::buf].Field[crate::io::util::vec_with_initialized::VecWithInitialized::vec]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_to_end::read_to_end_internal", "Argument[2].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_to_string::read_to_string", "Argument[0]", "ReturnValue.Field[crate::io::util::read_to_string::ReadToString::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_to_string::read_to_string", "Argument[1]", "ReturnValue.Field[crate::io::util::read_to_string::ReadToString::output]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_until::read_until", "Argument[0]", "ReturnValue.Field[crate::io::util::read_until::ReadUntil::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_until::read_until", "Argument[1]", "ReturnValue.Field[crate::io::util::read_until::ReadUntil::delimiter]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_until::read_until", "Argument[2]", "ReturnValue.Field[crate::io::util::read_until::ReadUntil::buf]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_until::read_until_internal", "Argument[4].Reference", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::repeat::repeat", "Argument[0]", "ReturnValue.Field[crate::io::util::repeat::Repeat::byte]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::shutdown::shutdown", "Argument[0]", "ReturnValue.Field[crate::io::util::shutdown::Shutdown::a]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::split::split", "Argument[0]", "ReturnValue.Field[crate::io::util::split::Split::reader]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::split::split", "Argument[1]", "ReturnValue.Field[crate::io::util::split::Split::delim]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::take::take", "Argument[0]", "ReturnValue.Field[crate::io::util::take::Take::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::take::take", "Argument[1]", "ReturnValue.Field[crate::io::util::take::Take::limit_]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write::write", "Argument[0]", "ReturnValue.Field[crate::io::util::write::Write::writer]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write::write", "Argument[1]", "ReturnValue.Field[crate::io::util::write::Write::buf]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_all::write_all", "Argument[0]", "ReturnValue.Field[crate::io::util::write_all::WriteAll::writer]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_all::write_all", "Argument[1]", "ReturnValue.Field[crate::io::util::write_all::WriteAll::buf]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_all_buf::write_all_buf", "Argument[0]", "ReturnValue.Field[crate::io::util::write_all_buf::WriteAllBuf::writer]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_all_buf::write_all_buf", "Argument[1]", "ReturnValue.Field[crate::io::util::write_all_buf::WriteAllBuf::buf]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_buf::write_buf", "Argument[0]", "ReturnValue.Field[crate::io::util::write_buf::WriteBuf::writer]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_buf::write_buf", "Argument[1]", "ReturnValue.Field[crate::io::util::write_buf::WriteBuf::buf]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_vectored::write_vectored", "Argument[0]", "ReturnValue.Field[crate::io::util::write_vectored::WriteVectored::writer]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_vectored::write_vectored", "Argument[1]", "ReturnValue.Field[crate::io::util::write_vectored::WriteVectored::bufs]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::tcp::split::split", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::tcp::split_owned::reunite", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::tcp::split_owned::ReuniteError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::tcp::split_owned::reunite", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::tcp::split_owned::ReuniteError(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::unix::split::split", "Argument[0]", "ReturnValue.Field[0].Field[crate::net::unix::split::ReadHalf(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::unix::split::split", "Argument[0]", "ReturnValue.Field[1].Field[crate::net::unix::split::WriteHalf(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::unix::split_owned::reunite", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::unix::split_owned::ReuniteError(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::unix::split_owned::reunite", "Argument[1]", "ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::net::unix::split_owned::ReuniteError(1)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::budget", "Argument[0].ReturnValue", "ReturnValue.Field[crate::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::current::with_current", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::runtime::enter_runtime", "Argument[2].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::runtime_mt::exit_runtime", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::runtime_mt::exit_runtime", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::with_scheduler", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::metrics::batch::duration_as_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::scheduler::block_in_place::block_in_place", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::scheduler::block_in_place::block_in_place", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::scheduler::multi_thread::worker::block_in_place", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::scheduler::multi_thread::worker::block_in_place", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::sync::mpsc::block::offset", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::sync::mpsc::block::start_index", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::blocking::block_in_place", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::blocking::block_in_place", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::coop::budget", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::coop::cooperative", "Argument[0]", "ReturnValue.Field[crate::task::coop::Coop::fut]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::coop::unconstrained::unconstrained", "Argument[0]", "ReturnValue.Field[crate::task::coop::unconstrained::Unconstrained::inner]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::coop::with_unconstrained", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::time::interval::interval", "Argument[0]", "ReturnValue.Field[crate::time::interval::Interval::period]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::time::interval::interval_at", "Argument[1]", "ReturnValue.Field[crate::time::interval::Interval::period]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::time::sleep::sleep_until", "Argument[0]", "ReturnValue.Field[crate::time::sleep::Sleep::entry].Field[crate::runtime::time::entry::TimerEntry::deadline]", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::bit::unpack", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::bit::unpack", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::bit::unpack", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::memchr::memchr", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::trace::blocking_task", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::trace::task", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::typeid::try_transmute", "Argument[0]", "ReturnValue.Field[crate::result::Result::Err(0)]", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&[u8] as crate::io::async_read::AsyncRead>::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::copy_to", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::put_slice", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::shutdown", "Argument[0]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_n", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push_batch", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push_batch", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::transition_to_terminal", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::remove", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::next_expiration", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::next_expiration", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drop", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::release", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drop", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::add_permits", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self]", "pointer-access", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drop", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drop", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::add_permits", "Argument[0]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drop", "Argument[self]", "log-injection", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::file_name", "ReturnValue", "file", "df-generated"] + - ["repo:https://github.com/tokio-rs/tokio:tokio", "::path", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 98a2634346e..c407e097dc4 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -870,6 +870,8 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::::zip_with | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:alloc::_::::retain_mut | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:alloc::_::::retain_mut | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:core::_::::take_if | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:core::_::::take_if | +| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::default_tcp_http_server | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::default_tcp_http_server | +| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in repo:https://github.com/servo/rust-smallvec:smallvec::_::::retain | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in repo:https://github.com/servo/rust-smallvec:smallvec::_::::retain | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1].Reference in lang:core::_::crate::num::flt2dec::to_exact_exp_str | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1] in lang:core::_::crate::num::flt2dec::to_exact_exp_str | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1].Reference in lang:core::_::crate::num::flt2dec::to_exact_fixed_str | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1] in lang:core::_::crate::num::flt2dec::to_exact_fixed_str | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:alloc::_::<_ as crate::borrow::ToOwned>::clone_into | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:alloc::_::<_ as crate::borrow::ToOwned>::clone_into | @@ -903,6 +905,8 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read_exact | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read_to_end | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read_to_string | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::count_byte_by_byte | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::count_byte_by_byte | +| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:proc_macro::_::::decode | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::::decode | | file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:proc_macro::_::::decode | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::::decode | @@ -915,9 +919,38 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::filter_map | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::map | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:std::_::::wait_while | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:std::_::::wait_while | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::crate::derive::form_field::first_duplicate | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::crate::derive::form_field::first_duplicate | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in lang:core::_::crate::slice::sort::stable::sort | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in lang:core::_::crate::slice::sort::stable::sort | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::prefix_is_substring | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::prefix_is_substring | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::suffix_is_substring | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::suffix_is_substring | | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | &ref | file://:0:0:0:0 | [post] [summary param] 1 in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in lang:std::_::crate::io::BufRead::read_until | &ref | file://:0:0:0:0 | [post] [summary param] 1 in lang:std::_::crate::io::BufRead::read_until | +| file://:0:0:0:0 | [summary] to write: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | &ref | file://:0:0:0:0 | [post] [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | +| file://:0:0:0:0 | [summary] to write: Argument[1].Reference.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | Err | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::max_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::max_by | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::max_by_key | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::max_by_key | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::min_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::min_by | @@ -930,11 +963,15 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1].Reference in lang:core::_::crate::cmp::minmax_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1] in lang:core::_::crate::cmp::minmax_by | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1].Reference in lang:core::_::crate::slice::sort::shared::smallsort::sort4_stable | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1] in lang:core::_::crate::slice::sort::shared::smallsort::sort4_stable | | file://:0:0:0:0 | [summary] to write: Argument[3].Parameter[1].Reference in lang:core::_::crate::slice::sort::stable::drift::sort | &ref | file://:0:0:0:0 | [summary] to write: Argument[3].Parameter[1] in lang:core::_::crate::slice::sort::stable::drift::sort | +| file://:0:0:0:0 | [summary] to write: Argument[3].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | &ref | file://:0:0:0:0 | [post] [summary param] 3 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | | file://:0:0:0:0 | [summary] to write: Argument[4].Parameter[1].Reference in lang:core::_::crate::slice::sort::stable::quicksort::quicksort | &ref | file://:0:0:0:0 | [summary] to write: Argument[4].Parameter[1] in lang:core::_::crate::slice::sort::stable::quicksort::quicksort | | file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::::for_each | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::for_each | | file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::::map | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map | | file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::for_each | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::for_each | | file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::map | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::map | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-http::_::::write_u64 | tuple.0 | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/actix/actix-web:actix-http::_::::write_u64 | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[0] in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | tuple.0 | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[0].Reference in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[0] in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::and_then | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_none_or | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_none_or | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_some_and | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_some_and | @@ -963,6 +1000,9 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | +| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | &ref | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | +| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | &ref | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | +| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | &ref | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::get_or_insert | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::get_or_insert | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::insert | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::insert | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::replace | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::replace | @@ -972,6 +1012,7 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | +| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | | file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::::collect | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::collect | | file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::cmp::minmax | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::cmp::minmax | | file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::cmp::minmax_by | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::cmp::minmax_by | @@ -995,12 +1036,17 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in repo:https://github.com/serde-rs/serde:serde::_::crate::de::value::private::unit_only | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::crate::de::value::private::unit_only | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::unzip | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::find_lower_bound_edge | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_lower_bound_edge | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::find_upper_bound_edge | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_upper_bound_edge | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::unzip | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::unzip | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::crate::slice::sort::shared::find_existing_run | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::slice::sort::shared::find_existing_run | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::try_reuse | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::try_reuse | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::unzip | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::then | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::then | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::then_some | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::then_some | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | @@ -1049,6 +1095,17 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::iter::traits::iterator::Iterator::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::iter::traits::iterator::Iterator::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:proc_macro::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/clap-rs/clap:clap_builder::_::::insert | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/clap-rs/clap:clap_builder::_::::insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::ty | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::ty | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::zip | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::matching | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::zip | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | @@ -1058,6 +1115,8 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::from | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::from | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_from | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_from | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::downcast | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downcast | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::left_kv | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::left_kv | @@ -1101,8 +1160,71 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_string | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_string | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::crate::sys_common::ignore_notfound | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::sys_common::ignore_notfound | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::crate::thread::current::set_current | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::thread::current::set_current | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo::pastebin::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::pastebin::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::send_request | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::send_request | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::try_send_request | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::try_send_request | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::send | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::try_send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::try_send | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::set | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::set | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or_else | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or_else | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::respond_to | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::respond_to | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/servo/rust-smallvec:smallvec::_::::into_inner | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/servo/rust-smallvec:smallvec::_::::into_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::try_set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::try_set | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_into_std | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_into_std | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_into_panic | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_into_panic | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_set | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::util::typeid::try_transmute | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::util::typeid::try_transmute | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::insert | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::insert | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in lang:core::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::try_insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in lang:std::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_mut | @@ -1139,24 +1261,72 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_while | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait_while | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::try_with | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_with | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::crate::sys::pal::unix::cvt | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::sys::pal::unix::cvt | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo::serde_test_suite::_::::variant_seed | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::variant_seed | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo::serde_test_suite::_::::visit_byte_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::visit_byte_buf | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-http::_::<&crate::header::value::HeaderValue as crate::header::into_value::TryIntoHeaderValue>::try_into_value | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::<&crate::header::value::HeaderValue as crate::header::into_value::TryIntoHeaderValue>::try_into_value | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_value | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_value | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_auto_h2c | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_auto_h2c | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_openssl | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_openssl | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_0_22 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_0_22 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_0_23 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_0_23 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_021 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_021 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_uds | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_uds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::listen | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::listen | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::listen_auto_h2c | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::listen_auto_h2c | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::listen_uds | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::listen_uds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:awc::_::::query | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:awc::_::::query | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/clap-rs/clap:clap_builder::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/clap-rs/clap:clap_builder::_::::parse | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::<&str as crate::request::from_param::FromParam>::from_param | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::<&str as crate::request::from_param::FromParam>::from_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::map_base | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::map_base | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::map_base | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::map_base | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_segments | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_segments | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::upgrade_param | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::upgrade_param | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::head_err_or | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::head_err_or | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket_http::_::crate::parse::uri::scheme_from_str | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::crate::parse::uri::scheme_from_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::into_url | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::into_url | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::error_for_status | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::error_for_status | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::error_for_status_ref | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::error_for_status_ref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::into_proxy_scheme | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::into_proxy_scheme | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/serde-rs/serde:serde::_::::visit_bool | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::::visit_bool | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/serde-rs/serde:serde::_::::visit_borrowed_bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::::visit_borrowed_bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/serde-rs/serde:serde::_::::visit_char | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::::visit_char | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/serde-rs/serde:serde::_::::visit_borrowed_str | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::::visit_borrowed_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/servo/rust-url:url::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/servo/rust-url:url::_::::parse | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::poll_fill_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::poll_fill_buf | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait_timeout | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait_timeout | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::read_line_internal | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::read_line_internal | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_to_end::read_to_end_internal | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_to_end::read_to_end_internal | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_until::read_until_internal | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_until::read_until_internal | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::budget | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::budget | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:alloc::_::::search_tree_for_bifurcation | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::search_tree_for_bifurcation | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:core::_::::extend | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::extend | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:core::_::::repeat | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::repeat | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:std::_::::wait_timeout | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:std::_::::wait_timeout_ms | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_ms | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:std::_::::wait_timeout_while | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_while | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait_timeout | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait_timeout | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[1] in repo::serde_test_suite::_::::variant_seed | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo::serde_test_suite::_::::variant_seed | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | @@ -1235,6 +1405,71 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_file_desc | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_file_desc | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo::serde_test_suite::_::::get | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::get | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo::serde_test_suite::_::::second | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::second | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-files::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-files::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-router::_::<_ as crate::resource_path::Resource>::resource_path | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-router::_::<_ as crate::resource_path::Resource>::resource_path | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::as_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:awc::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:awc::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_styled_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_styled_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_internal_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_internal_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/hyperium/hyper:hyper::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/hyperium/hyper:hyper::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::as_bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates::_::::context | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates::_::::context | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::file | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::file | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::file_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::file_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::borrow | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_inner_mut | | main.rs:97:14:97:22 | source(...) | tuple.0 | main.rs:97:13:97:26 | TupleExpr | | main.rs:97:25:97:25 | 2 | tuple.1 | main.rs:97:13:97:26 | TupleExpr | | main.rs:103:14:103:14 | 2 | tuple.0 | main.rs:103:13:103:30 | TupleExpr | @@ -1421,8 +1656,96 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sys_common::ignore_notfound | Err | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Err(0)] in lang:std::_::crate::sys_common::ignore_notfound | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::thread::current::try_with_current | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::thread::current::try_with_current | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::thread::with_current_name | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::thread::with_current_name | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::::count | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::count | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::count_byte_by_byte | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::count_byte_by_byte | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::prefix_is_substring | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::prefix_is_substring | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::suffix_is_substring | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::suffix_is_substring | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/actix/actix-web:actix-http::_::::with_pool | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::with_pool | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/hyperium/hyper:hyper::_::::from | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/hyperium/hyper:hyper::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | Err | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_init | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_init | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | | file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rust-lang/regex:regex::_::crate::escape | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/rust-lang/regex:regex::_::crate::escape | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies_mut | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::_test | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::_test | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::and_then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::and_then | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::error_then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::error_then | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::forward_then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::forward_then | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::ok_map_error | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::ok_map_error | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::ok_map_forward | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::ok_map_forward | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or_else | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::crate::derive::form_field::first_duplicate | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::crate::derive::form_field::first_duplicate | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/serde-rs/serde:serde::_::crate::de::size_hint::cautious | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/serde-rs/serde:serde::_::crate::de::size_hint::cautious | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates | | file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/servo/rust-url:url::_::::parse | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/servo/rust-url:url::_::::parse | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio-test::_::::enter | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio-test::_::::enter | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::with | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::with | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | Err | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::budget | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::budget | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::runtime_mt::exit_runtime | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::runtime_mt::exit_runtime | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::with_scheduler | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::with_scheduler | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::scheduler::block_in_place::block_in_place | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::scheduler::block_in_place::block_in_place | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::scheduler::multi_thread::worker::block_in_place | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::scheduler::multi_thread::worker::block_in_place | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::blocking::block_in_place | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::blocking::block_in_place | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::budget | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::budget | +| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::with_unconstrained | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::with_unconstrained | | file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::crate::collections::btree::mem::replace | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::crate::collections::btree::mem::replace | | file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::crate::collections::btree::mem::take_mut | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::crate::collections::btree::mem::take_mut | @@ -1497,9 +1820,27 @@ readStep | file://:0:0:0:0 | [summary param] 1 in lang:std::_::crate::io::append_to_string | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::crate::io::append_to_string | | file://:0:0:0:0 | [summary param] 1 in lang:std::_::crate::sys::pal::common::small_c_string::run_path_with_cstr | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::crate::sys::pal::common::small_c_string::run_path_with_cstr | | file://:0:0:0:0 | [summary param] 1 in lang:std::_::crate::sys::pal::common::small_c_string::run_with_cstr | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::crate::sys::pal::common::small_c_string::run_with_cstr | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/clap-rs/clap:clap_builder::_::::unwrap | Ok | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::result::Result::Ok(0)] in repo:https://github.com/clap-rs/clap:clap_builder::_::::unwrap | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_bound | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_bound | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_self_bound | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_self_bound | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates_from_fields | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates_from_fields | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates_from_variants | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates_from_variants | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::finalize | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::finalize | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::finalize | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::finalize | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io_mut | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io_mut | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::::set | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::set | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::::sync_scope | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::sync_scope | +| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | Ok | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | | file://:0:0:0:0 | [summary param] 2 in lang:proc_macro::_::::run_bridge_and_client | function return | file://:0:0:0:0 | [summary] read: Argument[2].ReturnValue in lang:proc_macro::_::::run_bridge_and_client | | file://:0:0:0:0 | [summary param] 2 in lang:proc_macro::_::::run_bridge_and_client | function return | file://:0:0:0:0 | [summary] read: Argument[2].ReturnValue in lang:proc_macro::_::::run_bridge_and_client | +| file://:0:0:0:0 | [summary param] 2 in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | Err | file://:0:0:0:0 | [summary] read: Argument[2].Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | +| file://:0:0:0:0 | [summary param] 2 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_to_end::read_to_end_internal | &ref | file://:0:0:0:0 | [summary] read: Argument[2].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_to_end::read_to_end_internal | +| file://:0:0:0:0 | [summary param] 2 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::runtime::enter_runtime | function return | file://:0:0:0:0 | [summary] read: Argument[2].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::runtime::enter_runtime | | file://:0:0:0:0 | [summary param] 4 in lang:core::_::crate::num::flt2dec::to_exact_fixed_str | element | file://:0:0:0:0 | [summary] read: Argument[4].Element in lang:core::_::crate::num::flt2dec::to_exact_fixed_str | +| file://:0:0:0:0 | [summary param] 4 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::read_line_internal | &ref | file://:0:0:0:0 | [summary] read: Argument[4].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::read_line_internal | +| file://:0:0:0:0 | [summary param] 4 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_until::read_until_internal | &ref | file://:0:0:0:0 | [summary] read: Argument[4].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_until::read_until_internal | | file://:0:0:0:0 | [summary param] 5 in lang:core::_::crate::num::flt2dec::to_exact_exp_str | element | file://:0:0:0:0 | [summary] read: Argument[5].Element in lang:core::_::crate::num::flt2dec::to_exact_exp_str | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | @@ -1731,6 +2072,161 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::duration | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::duration | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_raw_fd | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::as_raw_fd | +| file://:0:0:0:0 | [summary param] self in repo::serde_test_suite::_::::get | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo::serde_test_suite::_::::get | +| file://:0:0:0:0 | [summary param] self in repo::serde_test_suite::_::::get | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo::serde_test_suite::_::::get | +| file://:0:0:0:0 | [summary param] self in repo::serde_test_suite::_::::first | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo::serde_test_suite::_::::first | +| file://:0:0:0:0 | [summary param] self in repo::serde_test_suite::_::::second | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo::serde_test_suite::_::::second | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-files::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-files::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-http::_::<&crate::header::value::HeaderValue as crate::header::into_value::TryIntoHeaderValue>::try_into_value | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/actix/actix-web:actix-http::_::<&crate::header::value::HeaderValue as crate::header::into_value::TryIntoHeaderValue>::try_into_value | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-http::_::::finish | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-http::_::::finish | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-http::_::::take | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/actix/actix-web:actix-http::_::::take | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-router::_::<_ as crate::resource_path::Resource>::resource_path | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/actix/actix-web:actix-router::_::<_ as crate::resource_path::Resource>::resource_path | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-router::_::::patterns | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/actix/actix-web:actix-router::_::::patterns | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::<_ as crate::guard::Guard>::check | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::<_ as crate::guard::Guard>::check | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::<_ as crate::handler::Handler>::call | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::<_ as crate::handler::Handler>::call | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::as_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::as_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:awc::_::::no_disconnect_timeout | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/actix/actix-web:awc::_::::no_disconnect_timeout | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:awc::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:awc::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_bench::_::::args | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/clap-rs/clap:clap_bench::_::::args | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_bench::_::::name | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/clap-rs/clap:clap_bench::_::::name | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_builder::_::::ansi | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/clap-rs/clap:clap_builder::_::::ansi | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_styled_str | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_styled_str | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_internal_str | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_internal_str | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_complete::_::<_ as crate::engine::custom::ValueCandidates>::candidates | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/clap-rs/clap:clap_complete::_::<_ as crate::engine::custom::ValueCandidates>::candidates | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_complete::_::<_ as crate::engine::custom::ValueCompleter>::complete | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/clap-rs/clap:clap_complete::_::<_ as crate::engine::custom::ValueCompleter>::complete | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::danger_len | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::danger_len | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::handshake | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/hyperium/hyper:hyper::_::::handshake | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::handshake | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/hyperium/hyper:hyper::_::::handshake | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::as_bytes | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::as_bytes | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates::_::::context | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates::_::::context | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::<_ as crate::catcher::handler::Handler>::handle | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::<_ as crate::catcher::handler::Handler>::handle | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::<_ as crate::route::handler::Handler>::handle | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::<_ as crate::route::handler::Handler>::handle | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::file | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket::_::::file | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::file_mut | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket::_::::file_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::take_file | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket::_::::take_file | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::take | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::take | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::poll_next | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::poll_next | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight_or | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight_or | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::borrow | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::borrow | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_str | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_str | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::into_string | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::into_string | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::render | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::render | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::render | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::render | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/servo/rust-smallvec:smallvec::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/servo/rust-smallvec:smallvec::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/servo/rust-smallvec:smallvec::_::::retain | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in repo:https://github.com/servo/rust-smallvec:smallvec::_::::retain | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::poll_fill_buf | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::poll_fill_buf | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::<&crate::task::wake::Waker as crate::sync::task::atomic_waker::WakerRef>::into_waker | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&crate::task::wake::Waker as crate::sync::task::atomic_waker::WakerRef>::into_waker | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_inner_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_inner_mut | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_usize | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_usize | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw_value | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw_value | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::from | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | element | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)].Element in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_mut_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::as_mut_ptr | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::as_ptr | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::unwrap_or_clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::unwrap_or_clone | @@ -1750,6 +2246,8 @@ readStep | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:proc_macro::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::poll_next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::poll_next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight_or | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[1].Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight_or | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::and_then | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::cloned | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::cloned | From 0290b4369c2db06664a2ffbce68bcfbcbdb79dc1 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 14 May 2025 10:49:56 +0100 Subject: [PATCH 434/656] C++: Add generated OpenSSL models. --- cpp/ql/lib/ext/generated/openssl.model.yml | 21887 +++++++++++++++++++ 1 file changed, 21887 insertions(+) create mode 100644 cpp/ql/lib/ext/generated/openssl.model.yml diff --git a/cpp/ql/lib/ext/generated/openssl.model.yml b/cpp/ql/lib/ext/generated/openssl.model.yml new file mode 100644 index 00000000000..04b5eb99046 --- /dev/null +++ b/cpp/ql/lib/ext/generated/openssl.model.yml @@ -0,0 +1,21887 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: summaryModel + data: + - ["", "", True, "ACCESS_DESCRIPTION_free", "(ACCESS_DESCRIPTION *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ACCESS_DESCRIPTION_free", "(ACCESS_DESCRIPTION *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ADMISSIONS_free", "(ADMISSIONS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ADMISSIONS_free", "(ADMISSIONS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ADMISSIONS_get0_admissionAuthority", "(const ADMISSIONS *)", "", "Argument[*0].Field[**admissionAuthority]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_get0_admissionAuthority", "(const ADMISSIONS *)", "", "Argument[*0].Field[*admissionAuthority]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_get0_namingAuthority", "(const ADMISSIONS *)", "", "Argument[*0].Field[**namingAuthority]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_get0_namingAuthority", "(const ADMISSIONS *)", "", "Argument[*0].Field[*namingAuthority]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_get0_professionInfos", "(const ADMISSIONS *)", "", "Argument[*0].Field[**professionInfos]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_get0_professionInfos", "(const ADMISSIONS *)", "", "Argument[*0].Field[*professionInfos]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_set0_admissionAuthority", "(ADMISSIONS *,GENERAL_NAME *)", "", "Argument[*1]", "Argument[*0].Field[**admissionAuthority]", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_set0_admissionAuthority", "(ADMISSIONS *,GENERAL_NAME *)", "", "Argument[1]", "Argument[*0].Field[*admissionAuthority]", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_set0_namingAuthority", "(ADMISSIONS *,NAMING_AUTHORITY *)", "", "Argument[*1]", "Argument[*0].Field[**namingAuthority]", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_set0_namingAuthority", "(ADMISSIONS *,NAMING_AUTHORITY *)", "", "Argument[1]", "Argument[*0].Field[*namingAuthority]", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_set0_professionInfos", "(ADMISSIONS *,PROFESSION_INFOS *)", "", "Argument[*1]", "Argument[*0].Field[**professionInfos]", "value", "dfc-generated"] + - ["", "", True, "ADMISSIONS_set0_professionInfos", "(ADMISSIONS *,PROFESSION_INFOS *)", "", "Argument[1]", "Argument[*0].Field[*professionInfos]", "value", "dfc-generated"] + - ["", "", True, "ADMISSION_SYNTAX_free", "(ADMISSION_SYNTAX *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ADMISSION_SYNTAX_free", "(ADMISSION_SYNTAX *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ADMISSION_SYNTAX_get0_admissionAuthority", "(const ADMISSION_SYNTAX *)", "", "Argument[*0].Field[**admissionAuthority]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ADMISSION_SYNTAX_get0_admissionAuthority", "(const ADMISSION_SYNTAX *)", "", "Argument[*0].Field[*admissionAuthority]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ADMISSION_SYNTAX_get0_contentsOfAdmissions", "(const ADMISSION_SYNTAX *)", "", "Argument[*0].Field[**contentsOfAdmissions]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ADMISSION_SYNTAX_get0_contentsOfAdmissions", "(const ADMISSION_SYNTAX *)", "", "Argument[*0].Field[*contentsOfAdmissions]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ADMISSION_SYNTAX_set0_admissionAuthority", "(ADMISSION_SYNTAX *,GENERAL_NAME *)", "", "Argument[*1]", "Argument[*0].Field[**admissionAuthority]", "value", "dfc-generated"] + - ["", "", True, "ADMISSION_SYNTAX_set0_admissionAuthority", "(ADMISSION_SYNTAX *,GENERAL_NAME *)", "", "Argument[1]", "Argument[*0].Field[*admissionAuthority]", "value", "dfc-generated"] + - ["", "", True, "ADMISSION_SYNTAX_set0_contentsOfAdmissions", "(ADMISSION_SYNTAX *,stack_st_ADMISSIONS *)", "", "Argument[*1]", "Argument[*0].Field[**contentsOfAdmissions]", "value", "dfc-generated"] + - ["", "", True, "ADMISSION_SYNTAX_set0_contentsOfAdmissions", "(ADMISSION_SYNTAX *,stack_st_ADMISSIONS *)", "", "Argument[1]", "Argument[*0].Field[*contentsOfAdmissions]", "value", "dfc-generated"] + - ["", "", True, "AES_bi_ige_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_bi_ige_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_bi_ige_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_bi_ige_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_bi_ige_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_bi_ige_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "AES_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "AES_ige_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,const int)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "AES_ige_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,const int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_ige_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,const int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "AES_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "AES_unwrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[*3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "AES_unwrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "AES_unwrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "AES_unwrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[4]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "AES_unwrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "AES_wrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "AES_wrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[*3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "AES_wrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "AES_wrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "AES_wrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "AES_wrap_key", "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASIdOrRange_free", "(ASIdOrRange *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASIdOrRange_free", "(ASIdOrRange *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASIdentifierChoice_free", "(ASIdentifierChoice *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASIdentifierChoice_free", "(ASIdentifierChoice *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASIdentifiers_free", "(ASIdentifiers *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASIdentifiers_free", "(ASIdentifiers *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_BIT_STRING_get_bit", "(const ASN1_BIT_STRING *,int)", "", "Argument[*0].Field[**data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_BIT_STRING_get_bit", "(const ASN1_BIT_STRING *,int)", "", "Argument[*0].Field[*data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_BIT_STRING_get_bit", "(const ASN1_BIT_STRING *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_BIT_STRING_num_asc", "(const char *,BIT_STRING_BITNAME *)", "", "Argument[*1].Field[*bitnum]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_BIT_STRING_set", "(ASN1_BIT_STRING *,unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_BIT_STRING_set", "(ASN1_BIT_STRING *,unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_BIT_STRING_set", "(ASN1_BIT_STRING *,unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ASN1_BIT_STRING_set_asc", "(ASN1_BIT_STRING *,const char *,int,BIT_STRING_BITNAME *)", "", "Argument[*3].Field[*bitnum]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_BIT_STRING_set_asc", "(ASN1_BIT_STRING *,const char *,int,BIT_STRING_BITNAME *)", "", "Argument[*3].Field[*bitnum]", "Argument[*0].Field[*length]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_BIT_STRING_set_bit", "(ASN1_BIT_STRING *,int,int)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_BIT_STRING_set_bit", "(ASN1_BIT_STRING *,int,int)", "", "Argument[1]", "Argument[*0].Field[*length]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_ENUMERATED_get", "(const ASN1_ENUMERATED *)", "", "Argument[*0].Field[**data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_ENUMERATED_get", "(const ASN1_ENUMERATED *)", "", "Argument[*0].Field[*data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_ENUMERATED_get_int64", "(int64_t *,const ASN1_ENUMERATED *)", "", "Argument[*1].Field[**data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_ENUMERATED_get_int64", "(int64_t *,const ASN1_ENUMERATED *)", "", "Argument[*1].Field[*data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_ENUMERATED_set", "(ASN1_ENUMERATED *,long)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_ENUMERATED_set_int64", "(ASN1_ENUMERATED *,int64_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_ENUMERATED_to_BN", "(const ASN1_ENUMERATED *,BIGNUM *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_ENUMERATED_to_BN", "(const ASN1_ENUMERATED *,BIGNUM *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_adj", "(ASN1_GENERALIZEDTIME *,time_t,int,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_adj", "(ASN1_GENERALIZEDTIME *,time_t,int,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_dup", "(const ASN1_GENERALIZEDTIME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_dup", "(const ASN1_GENERALIZEDTIME *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_dup", "(const ASN1_GENERALIZEDTIME *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_dup", "(const ASN1_GENERALIZEDTIME *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_dup", "(const ASN1_GENERALIZEDTIME *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_set", "(ASN1_GENERALIZEDTIME *,time_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_set", "(ASN1_GENERALIZEDTIME *,time_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_set_string", "(ASN1_GENERALIZEDTIME *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_GENERALIZEDTIME_set_string", "(ASN1_GENERALIZEDTIME *,const char *)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_INTEGER_cmp", "(const ASN1_INTEGER *,const ASN1_INTEGER *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_INTEGER_cmp", "(const ASN1_INTEGER *,const ASN1_INTEGER *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_INTEGER_dup", "(const ASN1_INTEGER *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_INTEGER_get", "(const ASN1_INTEGER *)", "", "Argument[*0].Field[**data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_INTEGER_get", "(const ASN1_INTEGER *)", "", "Argument[*0].Field[*data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_INTEGER_get_int64", "(int64_t *,const ASN1_INTEGER *)", "", "Argument[*1].Field[**data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_INTEGER_get_int64", "(int64_t *,const ASN1_INTEGER *)", "", "Argument[*1].Field[*data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_INTEGER_get_uint64", "(uint64_t *,const ASN1_INTEGER *)", "", "Argument[*1].Field[**data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_INTEGER_get_uint64", "(uint64_t *,const ASN1_INTEGER *)", "", "Argument[*1].Field[*data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_INTEGER_set", "(ASN1_INTEGER *,long)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_INTEGER_set_int64", "(ASN1_INTEGER *,int64_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_INTEGER_set_uint64", "(ASN1_INTEGER *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_INTEGER_to_BN", "(const ASN1_INTEGER *,BIGNUM *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_INTEGER_to_BN", "(const ASN1_INTEGER *,BIGNUM *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_NULL_free", "(ASN1_NULL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_NULL_free", "(ASN1_NULL *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[*3]", "ReturnValue[*].Field[**sn]", "value", "dfc-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[*4]", "ReturnValue[*].Field[**ln]", "value", "dfc-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*nid]", "value", "dfc-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[**sn]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[*sn]", "value", "dfc-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[4]", "ReturnValue[*].Field[**ln]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_OBJECT_create", "(int,unsigned char *,int,const char *,const char *)", "", "Argument[4]", "ReturnValue[*].Field[*ln]", "value", "dfc-generated"] + - ["", "", True, "ASN1_OCTET_STRING_cmp", "(const ASN1_OCTET_STRING *,const ASN1_OCTET_STRING *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_OCTET_STRING_cmp", "(const ASN1_OCTET_STRING *,const ASN1_OCTET_STRING *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_OCTET_STRING_dup", "(const ASN1_OCTET_STRING *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_OCTET_STRING_set", "(ASN1_OCTET_STRING *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_OCTET_STRING_set", "(ASN1_OCTET_STRING *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_OCTET_STRING_set", "(ASN1_OCTET_STRING *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ASN1_PCTX_get_cert_flags", "(const ASN1_PCTX *)", "", "Argument[*0].Field[*cert_flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_PCTX_get_flags", "(const ASN1_PCTX *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_PCTX_get_nm_flags", "(const ASN1_PCTX *)", "", "Argument[*0].Field[*nm_flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_PCTX_get_oid_flags", "(const ASN1_PCTX *)", "", "Argument[*0].Field[*oid_flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_PCTX_get_str_flags", "(const ASN1_PCTX *)", "", "Argument[*0].Field[*str_flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_PCTX_set_cert_flags", "(ASN1_PCTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*cert_flags]", "value", "dfc-generated"] + - ["", "", True, "ASN1_PCTX_set_flags", "(ASN1_PCTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "ASN1_PCTX_set_nm_flags", "(ASN1_PCTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*nm_flags]", "value", "dfc-generated"] + - ["", "", True, "ASN1_PCTX_set_oid_flags", "(ASN1_PCTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*oid_flags]", "value", "dfc-generated"] + - ["", "", True, "ASN1_PCTX_set_str_flags", "(ASN1_PCTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*str_flags]", "value", "dfc-generated"] + - ["", "", True, "ASN1_PRINTABLE_free", "(ASN1_STRING *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_PRINTABLE_free", "(ASN1_STRING *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_SCTX_get_app_data", "(ASN1_SCTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_SCTX_get_app_data", "(ASN1_SCTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "ASN1_SCTX_get_app_data", "(ASN1_SCTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_SCTX_get_flags", "(ASN1_SCTX *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_SCTX_get_item", "(ASN1_SCTX *)", "", "Argument[*0].Field[**it]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ASN1_SCTX_get_item", "(ASN1_SCTX *)", "", "Argument[*0].Field[*it]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_SCTX_get_template", "(ASN1_SCTX *)", "", "Argument[*0].Field[**tt]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ASN1_SCTX_get_template", "(ASN1_SCTX *)", "", "Argument[*0].Field[*tt]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_SCTX_new", "(..(*)(..))", "", "Argument[0]", "ReturnValue[*].Field[*scan_cb]", "value", "dfc-generated"] + - ["", "", True, "ASN1_SCTX_set_app_data", "(ASN1_SCTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***app_data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_SCTX_set_app_data", "(ASN1_SCTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**app_data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_SCTX_set_app_data", "(ASN1_SCTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*app_data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_cmp", "(const ASN1_STRING *,const ASN1_STRING *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_STRING_cmp", "(const ASN1_STRING *,const ASN1_STRING *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_STRING_copy", "(ASN1_STRING *,const ASN1_STRING *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_STRING_data", "(ASN1_STRING *)", "", "Argument[*0].Field[**data]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_data", "(ASN1_STRING *)", "", "Argument[*0].Field[*data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_dup", "(const ASN1_STRING *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_STRING_get0_data", "(const ASN1_STRING *)", "", "Argument[*0].Field[**data]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_get0_data", "(const ASN1_STRING *)", "", "Argument[*0].Field[*data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_length", "(const ASN1_STRING *)", "", "Argument[*0].Field[*length]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_length_set", "(ASN1_STRING *,int)", "", "Argument[1]", "Argument[*0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_print_ex", "(BIO *,const ASN1_STRING *,unsigned long)", "", "Argument[*1].Field[*length]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_STRING_print_ex_fp", "(FILE *,const ASN1_STRING *,unsigned long)", "", "Argument[*1].Field[*length]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set0", "(ASN1_STRING *,void *,int)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set0", "(ASN1_STRING *,void *,int)", "", "Argument[1]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set0", "(ASN1_STRING *,void *,int)", "", "Argument[2]", "Argument[*0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set", "(ASN1_STRING *,const void *,int)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set", "(ASN1_STRING *,const void *,int)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set", "(ASN1_STRING *,const void *,int)", "", "Argument[2]", "Argument[*0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set_by_NID", "(ASN1_STRING **,const unsigned char *,int,int,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_STRING_set_by_NID", "(ASN1_STRING **,const unsigned char *,int,int,int)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set_by_NID", "(ASN1_STRING **,const unsigned char *,int,int,int)", "", "Argument[*1]", "Argument[**0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set_by_NID", "(ASN1_STRING **,const unsigned char *,int,int,int)", "", "Argument[*1]", "ReturnValue[*].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set_by_NID", "(ASN1_STRING **,const unsigned char *,int,int,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set_by_NID", "(ASN1_STRING **,const unsigned char *,int,int,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set_by_NID", "(ASN1_STRING **,const unsigned char *,int,int,int)", "", "Argument[1]", "Argument[**0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set_by_NID", "(ASN1_STRING **,const unsigned char *,int,int,int)", "", "Argument[1]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set_by_NID", "(ASN1_STRING **,const unsigned char *,int,int,int)", "", "Argument[2]", "Argument[**0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_set_by_NID", "(ASN1_STRING **,const unsigned char *,int,int,int)", "", "Argument[2]", "ReturnValue[*].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_type", "(const ASN1_STRING *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_STRING_type_new", "(int)", "", "Argument[0]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ASN1_TIME_adj", "(ASN1_TIME *,time_t,int,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_TIME_adj", "(ASN1_TIME *,time_t,int,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_TIME_diff", "(int *,int *,const ASN1_TIME *,const ASN1_TIME *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_TIME_diff", "(int *,int *,const ASN1_TIME *,const ASN1_TIME *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_TIME_diff", "(int *,int *,const ASN1_TIME *,const ASN1_TIME *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_TIME_diff", "(int *,int *,const ASN1_TIME *,const ASN1_TIME *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_TIME_dup", "(const ASN1_TIME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_TIME_dup", "(const ASN1_TIME *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_TIME_dup", "(const ASN1_TIME *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_TIME_dup", "(const ASN1_TIME *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_TIME_dup", "(const ASN1_TIME *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_TIME_free", "(ASN1_TIME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_TIME_free", "(ASN1_TIME *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_TIME_normalize", "(ASN1_TIME *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_TIME_set", "(ASN1_TIME *,time_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_TIME_set", "(ASN1_TIME *,time_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_TIME_set_string", "(ASN1_TIME *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_TIME_set_string", "(ASN1_TIME *,const char *)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_TIME_set_string_X509", "(ASN1_TIME *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_TIME_set_string_X509", "(ASN1_TIME *,const char *)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_TIME_to_generalizedtime", "(const ASN1_TIME *,ASN1_GENERALIZEDTIME **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_TIME_to_generalizedtime", "(const ASN1_TIME *,ASN1_GENERALIZEDTIME **)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_TIME_to_generalizedtime", "(const ASN1_TIME *,ASN1_GENERALIZEDTIME **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_TIME_to_generalizedtime", "(const ASN1_TIME *,ASN1_GENERALIZEDTIME **)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_TIME_to_tm", "(const ASN1_TIME *,tm *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_TYPE_cmp", "(const ASN1_TYPE *,const ASN1_TYPE *)", "", "Argument[*0].Field[*value].Union[*(unnamed class/struct/union)]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_cmp", "(const ASN1_TYPE *,const ASN1_TYPE *)", "", "Argument[*1].Field[*value].Union[*(unnamed class/struct/union)]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_free", "(ASN1_TYPE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_TYPE_free", "(ASN1_TYPE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_TYPE_get", "(const ASN1_TYPE *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_pack_sequence", "(const ASN1_ITEM *,void *,ASN1_TYPE **)", "", "Argument[**2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_TYPE_pack_sequence", "(const ASN1_ITEM *,void *,ASN1_TYPE **)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ASN1_TYPE_pack_sequence", "(const ASN1_ITEM *,void *,ASN1_TYPE **)", "", "Argument[*2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_pack_sequence", "(const ASN1_ITEM *,void *,ASN1_TYPE **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_pack_sequence", "(const ASN1_ITEM *,void *,ASN1_TYPE **)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_set1", "(ASN1_TYPE *,int,const void *)", "", "Argument[1]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_set1", "(ASN1_TYPE *,int,const void *)", "", "Argument[2]", "Argument[*0].Field[*value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_set", "(ASN1_TYPE *,int,void *)", "", "Argument[*2]", "Argument[*0].Field[*value].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_set", "(ASN1_TYPE *,int,void *)", "", "Argument[1]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_set", "(ASN1_TYPE *,int,void *)", "", "Argument[2]", "Argument[*0].Field[*value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "ASN1_TYPE_set_octetstring", "(ASN1_TYPE *,unsigned char *,int)", "", "Argument[*0]", "Argument[0]", "taint", "df-generated"] + - ["", "", True, "ASN1_TYPE_unpack_sequence", "(const ASN1_ITEM *,const ASN1_TYPE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_TYPE_unpack_sequence", "(const ASN1_ITEM *,const ASN1_TYPE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_UTCTIME_adj", "(ASN1_UTCTIME *,time_t,int,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_UTCTIME_adj", "(ASN1_UTCTIME *,time_t,int,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_UTCTIME_dup", "(const ASN1_UTCTIME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_UTCTIME_dup", "(const ASN1_UTCTIME *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_UTCTIME_dup", "(const ASN1_UTCTIME *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_UTCTIME_dup", "(const ASN1_UTCTIME *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_UTCTIME_dup", "(const ASN1_UTCTIME *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_UTCTIME_set", "(ASN1_UTCTIME *,time_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_UTCTIME_set", "(ASN1_UTCTIME *,time_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_UTCTIME_set_string", "(ASN1_UTCTIME *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_UTCTIME_set_string", "(ASN1_UTCTIME *,const char *)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_check_infinite_end", "(unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_check_infinite_end", "(unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_check_infinite_end", "(unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_const_check_infinite_end", "(const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_const_check_infinite_end", "(const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_const_check_infinite_end", "(const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_d2i_bio", "(..(*)(..),d2i_of_void *,BIO *,void **)", "", "Argument[**3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_bio", "(..(*)(..),d2i_of_void *,BIO *,void **)", "", "Argument[**3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_bio", "(..(*)(..),d2i_of_void *,BIO *,void **)", "", "Argument[**3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_bio", "(..(*)(..),d2i_of_void *,BIO *,void **)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_bio", "(..(*)(..),d2i_of_void *,BIO *,void **)", "", "Argument[*3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_bio", "(..(*)(..),d2i_of_void *,BIO *,void **)", "", "Argument[*3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_bio", "(..(*)(..),d2i_of_void *,BIO *,void **)", "", "Argument[3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_bio", "(..(*)(..),d2i_of_void *,BIO *,void **)", "", "Argument[3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_bio", "(..(*)(..),d2i_of_void *,BIO *,void **)", "", "Argument[3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_bio", "(..(*)(..),d2i_of_void *,BIO *,void **)", "", "Argument[3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_fp", "(..(*)(..),d2i_of_void *,FILE *,void **)", "", "Argument[**3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_fp", "(..(*)(..),d2i_of_void *,FILE *,void **)", "", "Argument[**3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_fp", "(..(*)(..),d2i_of_void *,FILE *,void **)", "", "Argument[**3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_fp", "(..(*)(..),d2i_of_void *,FILE *,void **)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_fp", "(..(*)(..),d2i_of_void *,FILE *,void **)", "", "Argument[*3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_fp", "(..(*)(..),d2i_of_void *,FILE *,void **)", "", "Argument[*3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_fp", "(..(*)(..),d2i_of_void *,FILE *,void **)", "", "Argument[3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_fp", "(..(*)(..),d2i_of_void *,FILE *,void **)", "", "Argument[3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_fp", "(..(*)(..),d2i_of_void *,FILE *,void **)", "", "Argument[3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_d2i_fp", "(..(*)(..),d2i_of_void *,FILE *,void **)", "", "Argument[3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_dup", "(i2d_of_void *,d2i_of_void *,const void *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ASN1_dup", "(i2d_of_void *,d2i_of_void *,const void *)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_dup", "(i2d_of_void *,d2i_of_void *,const void *)", "", "Argument[*2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_dup", "(i2d_of_void *,d2i_of_void *,const void *)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_dup", "(i2d_of_void *,d2i_of_void *,const void *)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_get_object", "(const unsigned char **,long *,int *,int *,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_i2d_bio", "(i2d_of_void *,BIO *,const void *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ASN1_i2d_fp", "(i2d_of_void *,FILE *,const void *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*3]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[*3]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[**2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[**2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[**2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[*2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio", "(const ASN1_ITEM *,BIO *,void *)", "", "Argument[2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[**2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[**2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[**2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_bio_ex", "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_ex", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[**2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[**2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[**2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[*2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp", "(const ASN1_ITEM *,FILE *,void *)", "", "Argument[2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[**2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[**2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[**2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ASN1_item_d2i_fp_ex", "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_digest", "(const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *)", "", "Argument[*0]", "Argument[2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_digest", "(const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_dup", "(const ASN1_ITEM *,const void *)", "", "Argument[*0]", "Argument[1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_dup", "(const ASN1_ITEM *,const void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_dup", "(const ASN1_ITEM *,const void *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_dup", "(const ASN1_ITEM *,const void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_dup", "(const ASN1_ITEM *,const void *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_dup", "(const ASN1_ITEM *,const void *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_dup", "(const ASN1_ITEM *,const void *)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_dup", "(const ASN1_ITEM *,const void *)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_ex_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *)", "", "Argument[4]", "Argument[**0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ASN1_item_ex_d2i", "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *)", "", "Argument[4]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ASN1_item_ex_free", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_free", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_free", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_ex_free", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_ex_free", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_free", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[**0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[**1]", "Argument[**0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[**1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[3]", "Argument[**0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[3]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_item_ex_i2d", "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)", "", "Argument[3]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_item_ex_new", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_new", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_new", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_ex_new", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_ex_new", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ex_new", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_free", "(ASN1_VALUE *,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_free", "(ASN1_VALUE *,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_free", "(ASN1_VALUE *,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[0]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_free", "(ASN1_VALUE *,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_i2d", "(const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_item_i2d", "(const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_i2d", "(const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_i2d", "(const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_i2d_bio", "(const ASN1_ITEM *,BIO *,const void *)", "", "Argument[*0]", "Argument[2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_i2d_bio", "(const ASN1_ITEM *,BIO *,const void *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_i2d_fp", "(const ASN1_ITEM *,FILE *,const void *)", "", "Argument[*0]", "Argument[2]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_i2d_fp", "(const ASN1_ITEM *,FILE *,const void *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_i2d_mem_bio", "(const ASN1_ITEM *,const ASN1_VALUE *)", "", "Argument[*0]", "Argument[1]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_i2d_mem_bio", "(const ASN1_ITEM *,const ASN1_VALUE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ndef_i2d", "(const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_item_ndef_i2d", "(const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ndef_i2d", "(const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_ndef_i2d", "(const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_new", "(const ASN1_ITEM *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_new", "(const ASN1_ITEM *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_new_ex", "(const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_new_ex", "(const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_pack", "(void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **)", "", "Argument[**2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ASN1_item_pack", "(void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASN1_item_pack", "(void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **)", "", "Argument[*2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASN1_item_pack", "(void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_item_pack", "(void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_item_print", "(BIO *,const ASN1_VALUE *,int,const ASN1_ITEM *,const ASN1_PCTX *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_print", "(BIO *,const ASN1_VALUE *,int,const ASN1_ITEM *,const ASN1_PCTX *)", "", "Argument[*3].Field[**templates].Field[*offset]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_item_print", "(BIO *,const ASN1_VALUE *,int,const ASN1_ITEM *,const ASN1_PCTX *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "ASN1_item_print", "(BIO *,const ASN1_VALUE *,int,const ASN1_ITEM *,const ASN1_PCTX *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*0]", "Argument[4]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_sign", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_sign", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*4]", "Argument[4]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign_ctx", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign_ctx", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign_ctx", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *)", "", "Argument[*4]", "Argument[4]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign_ctx", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign_ctx", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign_ctx", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_item_sign_ex", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[4]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_sign_ex", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign_ex", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign_ex", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_sign_ex", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "Argument[4]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign_ex", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ASN1_item_sign_ex", "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ASN1_item_unpack", "(const ASN1_STRING *,const ASN1_ITEM *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_unpack", "(const ASN1_STRING *,const ASN1_ITEM *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_unpack", "(const ASN1_STRING *,const ASN1_ITEM *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_unpack", "(const ASN1_STRING *,const ASN1_ITEM *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_unpack_ex", "(const ASN1_STRING *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_unpack_ex", "(const ASN1_STRING *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_unpack_ex", "(const ASN1_STRING *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_item_unpack_ex", "(const ASN1_STRING *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_verify", "(const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_PKEY *)", "", "Argument[*0]", "Argument[3]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_verify", "(const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_PKEY *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "ASN1_item_verify_ctx", "(const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_MD_CTX *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "ASN1_item_verify_ctx", "(const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_MD_CTX *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_item_verify_ex", "(const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[3]", "taint", "df-generated"] + - ["", "", True, "ASN1_item_verify_ex", "(const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "ASN1_mbstring_copy", "(ASN1_STRING **,const unsigned char *,int,int,unsigned long)", "", "Argument[*1]", "Argument[**0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_mbstring_copy", "(ASN1_STRING **,const unsigned char *,int,int,unsigned long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_mbstring_copy", "(ASN1_STRING **,const unsigned char *,int,int,unsigned long)", "", "Argument[1]", "Argument[**0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_mbstring_copy", "(ASN1_STRING **,const unsigned char *,int,int,unsigned long)", "", "Argument[2]", "Argument[**0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ASN1_mbstring_ncopy", "(ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long)", "", "Argument[*1]", "Argument[**0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ASN1_mbstring_ncopy", "(ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_mbstring_ncopy", "(ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long)", "", "Argument[1]", "Argument[**0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_mbstring_ncopy", "(ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long)", "", "Argument[2]", "Argument[**0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ASN1_object_size", "(int,int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_parse", "(BIO *,const unsigned char *,long,int)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_parse", "(BIO *,const unsigned char *,long,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "ASN1_parse", "(BIO *,const unsigned char *,long,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_parse_dump", "(BIO *,const unsigned char *,long,int,int)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_parse_dump", "(BIO *,const unsigned char *,long,int,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "ASN1_parse_dump", "(BIO *,const unsigned char *,long,int,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_put_eoc", "(unsigned char **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_put_eoc", "(unsigned char **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_put_eoc", "(unsigned char **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_put_object", "(unsigned char **,int,int,int,int)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_put_object", "(unsigned char **,int,int,int,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_put_object", "(unsigned char **,int,int,int,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_put_object", "(unsigned char **,int,int,int,int)", "", "Argument[2]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "ASN1_put_object", "(unsigned char **,int,int,int,int)", "", "Argument[3]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_put_object", "(unsigned char **,int,int,int,int)", "", "Argument[4]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ASN1_sign", "(i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ASN1_sign", "(i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_sign", "(i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*5]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ASN1_sign", "(i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*5]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ASN1_sign", "(i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*6]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASN1_sign", "(i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*6]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ASN1_tag2bit", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASN1_tag2str", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ASRange_free", "(ASRange *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ASRange_free", "(ASRange *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_all_fds", "(ASYNC_WAIT_CTX *,int *,size_t *)", "", "Argument[*0].Field[**fds].Field[*fd]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_all_fds", "(ASYNC_WAIT_CTX *,int *,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_all_fds", "(ASYNC_WAIT_CTX *,int *,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_callback", "(ASYNC_WAIT_CTX *,ASYNC_callback_fn *,void **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_callback", "(ASYNC_WAIT_CTX *,ASYNC_callback_fn *,void **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_callback", "(ASYNC_WAIT_CTX *,ASYNC_callback_fn *,void **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_changed_fds", "(ASYNC_WAIT_CTX *,int *,size_t *,int *,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_changed_fds", "(ASYNC_WAIT_CTX *,int *,size_t *,int *,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_fd", "(ASYNC_WAIT_CTX *,const void *,int *,void **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_fd", "(ASYNC_WAIT_CTX *,const void *,int *,void **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_fd", "(ASYNC_WAIT_CTX *,const void *,int *,void **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_get_status", "(ASYNC_WAIT_CTX *)", "", "Argument[*0].Field[*status]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_callback", "(ASYNC_WAIT_CTX *,ASYNC_callback_fn,void *)", "", "Argument[**2]", "Argument[*0].Field[***callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_callback", "(ASYNC_WAIT_CTX *,ASYNC_callback_fn,void *)", "", "Argument[*2]", "Argument[*0].Field[**callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_callback", "(ASYNC_WAIT_CTX *,ASYNC_callback_fn,void *)", "", "Argument[1]", "Argument[*0].Field[*callback]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_callback", "(ASYNC_WAIT_CTX *,ASYNC_callback_fn,void *)", "", "Argument[2]", "Argument[*0].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_status", "(ASYNC_WAIT_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*status]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_wait_fd", "(ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..))", "", "Argument[**1]", "Argument[*0].Field[**fds].Field[***key]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_wait_fd", "(ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..))", "", "Argument[**3]", "Argument[*0].Field[**fds].Field[***custom_data]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_wait_fd", "(ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..))", "", "Argument[*1]", "Argument[*0].Field[**fds].Field[**key]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_wait_fd", "(ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..))", "", "Argument[*3]", "Argument[*0].Field[**fds].Field[**custom_data]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_wait_fd", "(ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[**fds].Field[*key]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_wait_fd", "(ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..))", "", "Argument[2]", "Argument[*0].Field[**fds].Field[*fd]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_wait_fd", "(ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..))", "", "Argument[3]", "Argument[*0].Field[**fds].Field[*custom_data]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_WAIT_CTX_set_wait_fd", "(ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..))", "", "Argument[4]", "Argument[*0].Field[**fds].Field[*cleanup]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_get_wait_ctx", "(ASYNC_JOB *)", "", "Argument[*0].Field[**waitctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_get_wait_ctx", "(ASYNC_JOB *)", "", "Argument[*0].Field[*waitctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ASYNC_start_job", "(ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t)", "", "Argument[**4]", "Argument[**0].Field[**funcargs]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_start_job", "(ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t)", "", "Argument[*1]", "Argument[**0].Field[**waitctx]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_start_job", "(ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t)", "", "Argument[*4]", "Argument[**0].Field[**funcargs]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_start_job", "(ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t)", "", "Argument[*4]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_start_job", "(ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ASYNC_start_job", "(ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t)", "", "Argument[1]", "Argument[**0].Field[*waitctx]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_start_job", "(ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t)", "", "Argument[3]", "Argument[**0].Field[*func]", "value", "dfc-generated"] + - ["", "", True, "ASYNC_start_job", "(ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t)", "", "Argument[4]", "Argument[**0].Field[**funcargs]", "taint", "dfc-generated"] + - ["", "", True, "ASYNC_start_job", "(ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "AUTHORITY_INFO_ACCESS_free", "(AUTHORITY_INFO_ACCESS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "AUTHORITY_INFO_ACCESS_free", "(AUTHORITY_INFO_ACCESS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "AUTHORITY_KEYID_free", "(AUTHORITY_KEYID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "AUTHORITY_KEYID_free", "(AUTHORITY_KEYID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BASIC_CONSTRAINTS_free", "(BASIC_CONSTRAINTS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "BASIC_CONSTRAINTS_free", "(BASIC_CONSTRAINTS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BF_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)", "", "Argument[*0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "BF_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "BF_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "BF_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "BF_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "BF_decrypt", "(unsigned int *,const BF_KEY *)", "", "Argument[*1].Field[*P]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BF_decrypt", "(unsigned int *,const BF_KEY *)", "", "Argument[*1].Field[*S]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BF_decrypt", "(unsigned int *,const BF_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BF_ecb_encrypt", "(const unsigned char *,unsigned char *,const BF_KEY *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_ecb_encrypt", "(const unsigned char *,unsigned char *,const BF_KEY *,int)", "", "Argument[*2].Field[*P]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_ecb_encrypt", "(const unsigned char *,unsigned char *,const BF_KEY *,int)", "", "Argument[*2].Field[*S]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_ecb_encrypt", "(const unsigned char *,unsigned char *,const BF_KEY *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_ecb_encrypt", "(const unsigned char *,unsigned char *,const BF_KEY *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_encrypt", "(unsigned int *,const BF_KEY *)", "", "Argument[*1].Field[*P]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BF_encrypt", "(unsigned int *,const BF_KEY *)", "", "Argument[*1].Field[*S]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BF_encrypt", "(unsigned int *,const BF_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BF_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BF_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "BIO_ADDRINFO_address", "(const BIO_ADDRINFO *)", "", "Argument[*0].Field[**ai_addr]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDRINFO_address", "(const BIO_ADDRINFO *)", "", "Argument[*0].Field[*ai_addr]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDRINFO_family", "(const BIO_ADDRINFO *)", "", "Argument[*0].Field[*ai_family]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDRINFO_next", "(const BIO_ADDRINFO *)", "", "Argument[*0].Field[**ai_next]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDRINFO_next", "(const BIO_ADDRINFO *)", "", "Argument[*0].Field[*ai_next]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDRINFO_protocol", "(const BIO_ADDRINFO *)", "", "Argument[*0].Field[*ai_protocol]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDRINFO_sockaddr", "(const BIO_ADDRINFO *)", "", "Argument[*0].Field[**ai_addr]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDRINFO_sockaddr", "(const BIO_ADDRINFO *)", "", "Argument[*0].Field[*ai_addr]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDRINFO_sockaddr_size", "(const BIO_ADDRINFO *)", "", "Argument[*0].Field[*ai_addrlen]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDRINFO_socktype", "(const BIO_ADDRINFO *)", "", "Argument[*0].Field[*ai_socktype]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_copy", "(BIO_ADDR *,const BIO_ADDR *)", "", "Argument[*1].Union[*bio_addr_st]", "Argument[*0].Union[*bio_addr_st]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_copy", "(BIO_ADDR *,const BIO_ADDR *)", "", "Argument[1]", "Argument[*0].Union[*bio_addr_st]", "taint", "dfc-generated"] + - ["", "", True, "BIO_ADDR_dup", "(const BIO_ADDR *)", "", "Argument[*0].Union[*bio_addr_st]", "ReturnValue[*].Union[*bio_addr_st]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_dup", "(const BIO_ADDR *)", "", "Argument[0]", "ReturnValue[*].Union[*bio_addr_st]", "taint", "dfc-generated"] + - ["", "", True, "BIO_ADDR_family", "(const BIO_ADDR *)", "", "Argument[*0].Union[*bio_addr_st].Field[*sa_family]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_make", "(BIO_ADDR *,const sockaddr *)", "", "Argument[*1]", "Argument[*0].Union[*bio_addr_st]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_make", "(BIO_ADDR *,const sockaddr *)", "", "Argument[1]", "Argument[*0].Union[*bio_addr_st]", "taint", "dfc-generated"] + - ["", "", True, "BIO_ADDR_path_string", "(const BIO_ADDR *)", "", "Argument[*0].Union[*bio_addr_st].Field[*sun_path]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawaddress", "(const BIO_ADDR *,void *,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[*2]", "Argument[*0].Union[*bio_addr_st].Field[*sin6_addr]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[*2]", "Argument[*0].Union[*bio_addr_st].Field[*sin_addr]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[*2]", "Argument[*0].Union[*bio_addr_st].Field[*sun_path]", "taint", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[1]", "Argument[*0].Union[*bio_addr_st].Field[*sin6_family]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[1]", "Argument[*0].Union[*bio_addr_st].Field[*sin_family]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[1]", "Argument[*0].Union[*bio_addr_st].Field[*sun_family]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[2]", "Argument[*0].Union[*bio_addr_st].Field[*sin6_addr]", "taint", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[2]", "Argument[*0].Union[*bio_addr_st].Field[*sin_addr]", "taint", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[2]", "Argument[*0].Union[*bio_addr_st].Field[*sun_path]", "taint", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[4]", "Argument[*0].Union[*bio_addr_st].Field[*sin6_port]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawmake", "(BIO_ADDR *,int,const void *,size_t,unsigned short)", "", "Argument[4]", "Argument[*0].Union[*bio_addr_st].Field[*sin_port]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawport", "(const BIO_ADDR *)", "", "Argument[*0].Union[*bio_addr_st].Field[*sin6_port]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_rawport", "(const BIO_ADDR *)", "", "Argument[*0].Union[*bio_addr_st].Field[*sin_port]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_sockaddr", "(const BIO_ADDR *)", "", "Argument[*0].Union[*bio_addr_st]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_sockaddr", "(const BIO_ADDR *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_ADDR_sockaddr_noconst", "(BIO_ADDR *)", "", "Argument[*0].Union[*bio_addr_st]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "BIO_ADDR_sockaddr_noconst", "(BIO_ADDR *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_accept", "(int,char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "BIO_accept", "(int,char **)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_accept", "(int,char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "BIO_accept", "(int,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BIO_accept_ex", "(int,BIO_ADDR *,int)", "", "Argument[*1].Union[*bio_addr_st]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_accept_ex", "(int,BIO_ADDR *,int)", "", "Argument[0]", "Argument[*1].Union[*bio_addr_st]", "taint", "dfc-generated"] + - ["", "", True, "BIO_accept_ex", "(int,BIO_ADDR *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_accept_ex", "(int,BIO_ADDR *,int)", "", "Argument[1]", "Argument[*1].Union[*bio_addr_st]", "taint", "dfc-generated"] + - ["", "", True, "BIO_accept_ex", "(int,BIO_ADDR *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_clear_flags", "(BIO *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "BIO_debug_callback", "(BIO *,int,const char *,int,long,long)", "", "Argument[5]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_debug_callback_ex", "(BIO *,int,const char *,size_t,int,long,int,size_t *)", "", "Argument[3]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_debug_callback_ex", "(BIO *,int,const char *,size_t,int,long,int,size_t *)", "", "Argument[6]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_debug_callback_ex", "(BIO *,int,const char *,size_t,int,long,int,size_t *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "BIO_dup_chain", "(BIO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "BIO_find_type", "(BIO *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BIO_find_type", "(BIO *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_get_callback", "(const BIO *)", "", "Argument[*0].Field[*callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_get_callback_arg", "(const BIO *)", "", "Argument[*0].Field[**cb_arg]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "BIO_get_callback_arg", "(const BIO *)", "", "Argument[*0].Field[*cb_arg]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_get_callback_ex", "(const BIO *)", "", "Argument[*0].Field[*callback_ex]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_get_data", "(BIO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "BIO_get_data", "(BIO *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "BIO_get_data", "(BIO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "BIO_get_ex_data", "(const BIO *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_get_init", "(BIO *)", "", "Argument[*0].Field[*init]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_get_line", "(BIO *,char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BIO_get_line", "(BIO *,char *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_get_retry_BIO", "(BIO *,int *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BIO_get_retry_BIO", "(BIO *,int *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_get_retry_reason", "(BIO *)", "", "Argument[*0].Field[*retry_reason]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_get_shutdown", "(BIO *)", "", "Argument[*0].Field[*shutdown]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_gethostbyname", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "BIO_gethostbyname", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "BIO_lookup", "(const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **)", "", "Argument[*0]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "BIO_lookup", "(const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **)", "", "Argument[*1]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "BIO_lookup", "(const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **)", "", "Argument[0]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "BIO_lookup", "(const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **)", "", "Argument[1]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "BIO_lookup", "(const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **)", "", "Argument[3]", "Argument[**5].Field[*ai_family]", "value", "dfc-generated"] + - ["", "", True, "BIO_lookup", "(const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **)", "", "Argument[4]", "Argument[**5].Field[*ai_socktype]", "value", "dfc-generated"] + - ["", "", True, "BIO_lookup", "(const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "BIO_lookup_ex", "(const char *,const char *,int,int,int,int,BIO_ADDRINFO **)", "", "Argument[*0]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "BIO_lookup_ex", "(const char *,const char *,int,int,int,int,BIO_ADDRINFO **)", "", "Argument[*1]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "BIO_lookup_ex", "(const char *,const char *,int,int,int,int,BIO_ADDRINFO **)", "", "Argument[0]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "BIO_lookup_ex", "(const char *,const char *,int,int,int,int,BIO_ADDRINFO **)", "", "Argument[1]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "BIO_lookup_ex", "(const char *,const char *,int,int,int,int,BIO_ADDRINFO **)", "", "Argument[3]", "Argument[**6].Field[*ai_family]", "value", "dfc-generated"] + - ["", "", True, "BIO_lookup_ex", "(const char *,const char *,int,int,int,int,BIO_ADDRINFO **)", "", "Argument[4]", "Argument[**6].Field[*ai_socktype]", "value", "dfc-generated"] + - ["", "", True, "BIO_lookup_ex", "(const char *,const char *,int,int,int,int,BIO_ADDRINFO **)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "BIO_meth_get_callback_ctrl", "(const BIO_METHOD *)", "", "Argument[*0].Field[*callback_ctrl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_create", "(const BIO_METHOD *)", "", "Argument[*0].Field[*create]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_ctrl", "(const BIO_METHOD *)", "", "Argument[*0].Field[*ctrl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_destroy", "(const BIO_METHOD *)", "", "Argument[*0].Field[*destroy]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_gets", "(const BIO_METHOD *)", "", "Argument[*0].Field[*bgets]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_puts", "(const BIO_METHOD *)", "", "Argument[*0].Field[*bputs]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_read", "(const BIO_METHOD *)", "", "Argument[*0].Field[*bread_old]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_read_ex", "(const BIO_METHOD *)", "", "Argument[*0].Field[*bread]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_recvmmsg", "(const BIO_METHOD *)", "", "Argument[*0].Field[*brecvmmsg]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_sendmmsg", "(const BIO_METHOD *)", "", "Argument[*0].Field[*bsendmmsg]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_write", "(const BIO_METHOD *)", "", "Argument[*0].Field[*bwrite_old]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_get_write_ex", "(const BIO_METHOD *)", "", "Argument[*0].Field[*bwrite]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_new", "(int,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_new", "(int,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_new", "(int,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "BIO_meth_set_callback_ctrl", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*callback_ctrl]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_create", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*create]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_ctrl", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ctrl]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_destroy", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*destroy]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_gets", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*bgets]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_puts", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*bputs]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_read", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*bread_old]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_read_ex", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*bread]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_recvmmsg", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*brecvmmsg]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_sendmmsg", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*bsendmmsg]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_write", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*bwrite_old]", "value", "dfc-generated"] + - ["", "", True, "BIO_meth_set_write_ex", "(BIO_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*bwrite]", "value", "dfc-generated"] + - ["", "", True, "BIO_method_name", "(const BIO *)", "", "Argument[*0].Field[**method].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "BIO_method_name", "(const BIO *)", "", "Argument[*0].Field[**method].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_method_type", "(const BIO *)", "", "Argument[*0].Field[**method].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_new", "(const BIO_METHOD *)", "", "Argument[*0]", "ReturnValue[*].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "BIO_new", "(const BIO_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_CMS", "(BIO *,CMS_ContentInfo *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_CMS", "(BIO *,CMS_ContentInfo *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_NDEF", "(BIO *,ASN1_VALUE *,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_NDEF", "(BIO *,ASN1_VALUE *,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_PKCS7", "(BIO *,PKCS7 *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_PKCS7", "(BIO *,PKCS7 *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_ex", "(OSSL_LIB_CTX *,const BIO_METHOD *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_ex", "(OSSL_LIB_CTX *,const BIO_METHOD *)", "", "Argument[*1]", "ReturnValue[*].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_ex", "(OSSL_LIB_CTX *,const BIO_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_ex", "(OSSL_LIB_CTX *,const BIO_METHOD *)", "", "Argument[1]", "ReturnValue[*].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_from_core_bio", "(OSSL_LIB_CTX *,OSSL_CORE_BIO *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_from_core_bio", "(OSSL_LIB_CTX *,OSSL_CORE_BIO *)", "", "Argument[*1]", "ReturnValue[*].Field[**ptr]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_from_core_bio", "(OSSL_LIB_CTX *,OSSL_CORE_BIO *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "BIO_new_from_core_bio", "(OSSL_LIB_CTX *,OSSL_CORE_BIO *)", "", "Argument[1]", "ReturnValue[*].Field[*ptr]", "value", "dfc-generated"] + - ["", "", True, "BIO_next", "(BIO *)", "", "Argument[*0].Field[**next_bio]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "BIO_next", "(BIO *)", "", "Argument[*0].Field[*next_bio]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_number_read", "(BIO *)", "", "Argument[*0].Field[*num_read]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_number_written", "(BIO *)", "", "Argument[*0].Field[*num_write]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_parse_hostserv", "(const char *,char **,char **,BIO_hostserv_priorities)", "", "Argument[*0]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "BIO_parse_hostserv", "(const char *,char **,char **,BIO_hostserv_priorities)", "", "Argument[*0]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "BIO_parse_hostserv", "(const char *,char **,char **,BIO_hostserv_priorities)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "BIO_parse_hostserv", "(const char *,char **,char **,BIO_hostserv_priorities)", "", "Argument[0]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "BIO_parse_hostserv", "(const char *,char **,char **,BIO_hostserv_priorities)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BIO_parse_hostserv", "(const char *,char **,char **,BIO_hostserv_priorities)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "BIO_pop", "(BIO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "BIO_pop", "(BIO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "BIO_push", "(BIO *,BIO *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BIO_push", "(BIO *,BIO *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BIO_push", "(BIO *,BIO *)", "", "Argument[0]", "Argument[*1].Field[*prev_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_push", "(BIO *,BIO *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_push", "(BIO *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_push", "(BIO *,BIO *)", "", "Argument[1]", "Argument[*1].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_push", "(BIO *,BIO *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BIO_read_ex", "(BIO *,void *,size_t,size_t *)", "", "Argument[*3]", "Argument[*0].Field[*num_read]", "taint", "dfc-generated"] + - ["", "", True, "BIO_read_ex", "(BIO *,void *,size_t,size_t *)", "", "Argument[3]", "Argument[*0].Field[*num_read]", "taint", "dfc-generated"] + - ["", "", True, "BIO_read_ex", "(BIO *,void *,size_t,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "BIO_set_callback", "(BIO *,BIO_callback_fn)", "", "Argument[1]", "Argument[*0].Field[*callback]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_callback_arg", "(BIO *,char *)", "", "Argument[*1]", "Argument[*0].Field[**cb_arg]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_callback_arg", "(BIO *,char *)", "", "Argument[1]", "Argument[*0].Field[*cb_arg]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_callback_ex", "(BIO *,BIO_callback_fn_ex)", "", "Argument[1]", "Argument[*0].Field[*callback_ex]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_data", "(BIO *,void *)", "", "Argument[**1]", "Argument[*0].Field[***ptr]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_data", "(BIO *,void *)", "", "Argument[*1]", "Argument[*0].Field[**ptr]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_data", "(BIO *,void *)", "", "Argument[1]", "Argument[*0].Field[*ptr]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_flags", "(BIO *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "BIO_set_init", "(BIO *,int)", "", "Argument[1]", "Argument[*0].Field[*init]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_next", "(BIO *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_next", "(BIO *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_retry_reason", "(BIO *,int)", "", "Argument[1]", "Argument[*0].Field[*retry_reason]", "value", "dfc-generated"] + - ["", "", True, "BIO_set_shutdown", "(BIO *,int)", "", "Argument[1]", "Argument[*0].Field[*shutdown]", "value", "dfc-generated"] + - ["", "", True, "BIO_snprintf", "(char *,size_t,const char *,...)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "BIO_snprintf", "(char *,size_t,const char *,...)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_snprintf", "(char *,size_t,const char *,...)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BIO_ssl_copy_session_id", "(BIO *,BIO *)", "", "Argument[*0].Field[**next_bio].Field[**next_bio]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "BIO_ssl_copy_session_id", "(BIO *,BIO *)", "", "Argument[*0].Field[**next_bio]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "BIO_ssl_copy_session_id", "(BIO *,BIO *)", "", "Argument[*1].Field[**next_bio].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "BIO_ssl_copy_session_id", "(BIO *,BIO *)", "", "Argument[*1].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "BIO_ssl_shutdown", "(BIO *)", "", "Argument[*0].Field[**next_bio].Field[**next_bio]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "BIO_ssl_shutdown", "(BIO *)", "", "Argument[*0].Field[**next_bio]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "BIO_test_flags", "(const BIO *,int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_test_flags", "(const BIO *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_vprintf", "(BIO *,const char *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "BIO_vsnprintf", "(char *,size_t,const char *,va_list)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "BIO_vsnprintf", "(char *,size_t,const char *,va_list)", "", "Argument[*3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BIO_vsnprintf", "(char *,size_t,const char *,va_list)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BIO_vsnprintf", "(char *,size_t,const char *,va_list)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BIO_vsnprintf", "(char *,size_t,const char *,va_list)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BIO_vsnprintf", "(char *,size_t,const char *,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "BN_BLINDING_convert", "(BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_convert", "(BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_convert", "(BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_convert_ex", "(BIGNUM *,BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_convert_ex", "(BIGNUM *,BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_convert_ex", "(BIGNUM *,BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_convert_ex", "(BIGNUM *,BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_create_param", "(BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_BLINDING_create_param", "(BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_BLINDING_create_param", "(BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *)", "", "Argument[4]", "Argument[*0].Field[*bn_mod_exp]", "value", "dfc-generated"] + - ["", "", True, "BN_BLINDING_create_param", "(BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *)", "", "Argument[4]", "ReturnValue[*].Field[*bn_mod_exp]", "value", "dfc-generated"] + - ["", "", True, "BN_BLINDING_create_param", "(BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *)", "", "Argument[5]", "Argument[*0].Field[*m_ctx]", "value", "dfc-generated"] + - ["", "", True, "BN_BLINDING_create_param", "(BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *)", "", "Argument[5]", "ReturnValue[*].Field[*m_ctx]", "value", "dfc-generated"] + - ["", "", True, "BN_BLINDING_get_flags", "(const BN_BLINDING *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_BLINDING_invert", "(BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_invert", "(BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_invert_ex", "(BIGNUM *,const BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_invert_ex", "(BIGNUM *,const BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_invert_ex", "(BIGNUM *,const BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_invert_ex", "(BIGNUM *,const BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_invert_ex", "(BIGNUM *,const BIGNUM *,BN_BLINDING *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_new", "(const BIGNUM *,const BIGNUM *,BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_new", "(const BIGNUM *,const BIGNUM *,BIGNUM *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_new", "(const BIGNUM *,const BIGNUM *,BIGNUM *)", "", "Argument[*2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "BN_BLINDING_set_flags", "(BN_BLINDING *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "BN_BLINDING_update", "(BN_BLINDING *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_CTX_get", "(BN_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "BN_CTX_get", "(BN_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "BN_CTX_new_ex", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "BN_CTX_new_ex", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "BN_CTX_secure_new_ex", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "BN_CTX_secure_new_ex", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "BN_GENCB_get_arg", "(BN_GENCB *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "BN_GENCB_get_arg", "(BN_GENCB *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "BN_GENCB_get_arg", "(BN_GENCB *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "BN_GENCB_set", "(BN_GENCB *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***arg]", "value", "dfc-generated"] + - ["", "", True, "BN_GENCB_set", "(BN_GENCB *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**arg]", "value", "dfc-generated"] + - ["", "", True, "BN_GENCB_set", "(BN_GENCB *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*cb].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "BN_GENCB_set", "(BN_GENCB *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*arg]", "value", "dfc-generated"] + - ["", "", True, "BN_GENCB_set_old", "(BN_GENCB *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***arg]", "value", "dfc-generated"] + - ["", "", True, "BN_GENCB_set_old", "(BN_GENCB *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**arg]", "value", "dfc-generated"] + - ["", "", True, "BN_GENCB_set_old", "(BN_GENCB *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*cb].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "BN_GENCB_set_old", "(BN_GENCB *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*arg]", "value", "dfc-generated"] + - ["", "", True, "BN_GF2m_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_GF2m_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_GF2m_arr2poly", "(const int[],BIGNUM *)", "", "Argument[*0]", "Argument[*1].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_arr2poly", "(const int[],BIGNUM *)", "", "Argument[*0]", "Argument[*1].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_arr2poly", "(const int[],BIGNUM *)", "", "Argument[*0]", "Argument[*1].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_arr2poly", "(const int[],BIGNUM *)", "", "Argument[0]", "Argument[*1].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_arr2poly", "(const int[],BIGNUM *)", "", "Argument[0]", "Argument[*1].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_arr2poly", "(const int[],BIGNUM *)", "", "Argument[0]", "Argument[*1].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_GF2m_mod_arr", "(BIGNUM *,const BIGNUM *,const int[])", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_GF2m_mod_div", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2].Field[*top]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_div", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2].Field[*top]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_div_arr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*2].Field[*top]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_div_arr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*2].Field[*top]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_div_arr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*3]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_div_arr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*3]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_div_arr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[3]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_div_arr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[3]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_exp_arr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_inv", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_GF2m_mod_inv", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_GF2m_mod_inv_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*2]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_inv_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*2]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_inv_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*2]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_inv_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[2]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_inv_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[2]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_inv_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[2]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2].Field[*top]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2].Field[*top]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_mul_arr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*2].Field[*top]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_mul_arr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*2].Field[*top]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_solve_quad", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_GF2m_mod_solve_quad", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_GF2m_mod_solve_quad_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*2]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_solve_quad_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*2]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_solve_quad_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*2]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_solve_quad_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[2]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_solve_quad_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[2]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_solve_quad_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[2]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_sqr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_GF2m_mod_sqr_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_GF2m_mod_sqrt", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_mod_sqrt_arr", "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_GF2m_poly2arr", "(const BIGNUM *,int[],int)", "", "Argument[*0].Field[*top]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_MONT_CTX_copy", "(BN_MONT_CTX *,BN_MONT_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_MONT_CTX_copy", "(BN_MONT_CTX *,BN_MONT_CTX *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_MONT_CTX_set", "(BN_MONT_CTX *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_MONT_CTX_set_locked", "(BN_MONT_CTX **,CRYPTO_RWLOCK *,const BIGNUM *,BN_CTX *)", "", "Argument[**0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "BN_MONT_CTX_set_locked", "(BN_MONT_CTX **,CRYPTO_RWLOCK *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_MONT_CTX_set_locked", "(BN_MONT_CTX **,CRYPTO_RWLOCK *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BN_MONT_CTX_set_locked", "(BN_MONT_CTX **,CRYPTO_RWLOCK *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_RECP_CTX_set", "(BN_RECP_CTX *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*5]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*5]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*5]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*6]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_X931_derive_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_Xpq", "(BIGNUM *,BIGNUM *,int,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_X931_generate_Xpq", "(BIGNUM *,BIGNUM *,int,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_X931_generate_Xpq", "(BIGNUM *,BIGNUM *,int,BN_CTX *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_Xpq", "(BIGNUM *,BIGNUM *,int,BN_CTX *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*5]", "value", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*5]", "value", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*5]", "value", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*5]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*6]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "BN_X931_generate_prime_ex", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_add_word", "(BIGNUM *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_are_coprime", "(BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_are_coprime", "(BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_are_coprime", "(BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "BN_asc2bn", "(BIGNUM **,const char *)", "", "Argument[*1]", "Argument[**0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_asc2bn", "(BIGNUM **,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BN_asc2bn", "(BIGNUM **,const char *)", "", "Argument[1]", "Argument[**0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_bn2bin", "(const BIGNUM *,unsigned char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2binpad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2binpad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2binpad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2binpad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_bn2lebinpad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2lebinpad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2lebinpad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2lebinpad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_bn2mpi", "(const BIGNUM *,unsigned char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2nativepad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2nativepad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2nativepad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_bn2nativepad", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_bntest_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_bntest_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_bntest_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_check_prime", "(const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_clear_bit", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_consttime_swap", "(unsigned long,BIGNUM *,BIGNUM *,int)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_consttime_swap", "(unsigned long,BIGNUM *,BIGNUM *,int)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_consttime_swap", "(unsigned long,BIGNUM *,BIGNUM *,int)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_consttime_swap", "(unsigned long,BIGNUM *,BIGNUM *,int)", "", "Argument[0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_copy", "(BIGNUM *,const BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_copy", "(BIGNUM *,const BIGNUM *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_dec2bn", "(BIGNUM **,const char *)", "", "Argument[*1]", "Argument[**0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_dec2bn", "(BIGNUM **,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BN_dec2bn", "(BIGNUM **,const char *)", "", "Argument[1]", "Argument[**0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_div", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_div", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_div", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_div", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_div", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_div_recp", "(BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_div_recp", "(BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_div_recp", "(BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_div_recp", "(BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_div_recp", "(BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_div_recp", "(BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_div_recp", "(BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_div_recp", "(BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_div_word", "(BIGNUM *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_div_word", "(BIGNUM *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_div_word", "(BIGNUM *,unsigned long)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_dup", "(const BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "BN_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_from_montgomery", "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_gcd", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_generate_dsa_nonce", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "BN_generate_prime", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)", "", "Argument[*3]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)", "", "Argument[*3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)", "", "Argument[*4]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)", "", "Argument[*4]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)", "", "Argument[*4]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[*3]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[*4]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[*6]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[*6]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[*6]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_generate_prime_ex2", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)", "", "Argument[1]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "BN_generate_prime_ex", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*3]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*4]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*4]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_generate_prime_ex", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_generate_prime_ex", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_generate_prime_ex", "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[1]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "BN_get_flags", "(const BIGNUM *,int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_get_flags", "(const BIGNUM *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_get_rfc2409_prime_1024", "(BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_get_rfc2409_prime_1024", "(BIGNUM *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_get_rfc2409_prime_768", "(BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_get_rfc2409_prime_768", "(BIGNUM *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_get_rfc3526_prime_1536", "(BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_get_rfc3526_prime_1536", "(BIGNUM *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_get_rfc3526_prime_2048", "(BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_get_rfc3526_prime_2048", "(BIGNUM *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_get_rfc3526_prime_3072", "(BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_get_rfc3526_prime_3072", "(BIGNUM *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_get_rfc3526_prime_4096", "(BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_get_rfc3526_prime_4096", "(BIGNUM *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_get_rfc3526_prime_6144", "(BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_get_rfc3526_prime_6144", "(BIGNUM *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_get_rfc3526_prime_8192", "(BIGNUM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_get_rfc3526_prime_8192", "(BIGNUM *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_get_word", "(const BIGNUM *)", "", "Argument[*0].Field[**d]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_get_word", "(const BIGNUM *)", "", "Argument[*0].Field[*d]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_hex2bn", "(BIGNUM **,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BN_is_bit_set", "(const BIGNUM *,int)", "", "Argument[*0].Field[**d]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_is_bit_set", "(const BIGNUM *,int)", "", "Argument[*0].Field[*d]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_is_bit_set", "(const BIGNUM *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_is_negative", "(const BIGNUM *)", "", "Argument[*0].Field[*neg]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_is_prime", "(const BIGNUM *,int,..(*)(..),BN_CTX *,void *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_is_prime_ex", "(const BIGNUM *,int,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_is_prime_fasttest", "(const BIGNUM *,int,..(*)(..),BN_CTX *,void *,int)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_is_prime_fasttest_ex", "(const BIGNUM *,int,BN_CTX *,int,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_kronecker", "(const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0].Field[**d]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_kronecker", "(const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0].Field[*d]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_kronecker", "(const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1].Field[**d]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_kronecker", "(const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1].Field[*d]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_lshift1", "(BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_lshift", "(BIGNUM *,const BIGNUM *,int)", "", "Argument[2]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_lshift", "(BIGNUM *,const BIGNUM *,int)", "", "Argument[2]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_mask_bits", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_mask_bits", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_mod_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_mod_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_mod_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_add", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_mod_add_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*3].Field[*top]", "Argument[*0].Field[*dmax]", "value", "dfc-generated"] + - ["", "", True, "BN_mod_add_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*3].Field[*top]", "Argument[*0].Field[*top]", "value", "dfc-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*1]", "Argument[*7]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*7]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*7]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*6]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*6]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*7]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*7]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp2_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*7]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*1]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*1]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*10]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*10]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*10]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*10]", "Argument[*8]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*3]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*6]", "Argument[*8]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*6]", "Argument[*9]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*8]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*8]", "Argument[*6]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*8]", "Argument[*9]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*9]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*9]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_consttime_x2", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*9]", "Argument[*8]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_word", "(BIGNUM *,unsigned long,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_word", "(BIGNUM *,unsigned long,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_mont_word", "(BIGNUM *,unsigned long,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_exp_recp", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1].Field[*neg]", "Argument[*3].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "BN_mod_exp_simple", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_exp_simple", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1].Field[*neg]", "Argument[*0].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "BN_mod_exp_simple", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1].Field[*neg]", "Argument[*3].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "BN_mod_exp_simple", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_mod_inverse", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_mod_inverse", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_mod_inverse", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_mod_inverse", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_mod_inverse", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_mod_lshift1", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_mod_lshift1", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_lshift1", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_mod_lshift1", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_mod_lshift1_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_mod_lshift1_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_lshift1_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_mod_lshift1_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_mod_lshift", "(BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_lshift", "(BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *)", "", "Argument[*1].Field[*neg]", "Argument[*0].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "BN_mod_lshift", "(BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *)", "", "Argument[*1].Field[*neg]", "Argument[*3].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "BN_mod_lshift", "(BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_mod_lshift_quick", "(BIGNUM *,const BIGNUM *,int,const BIGNUM *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_lshift_quick", "(BIGNUM *,const BIGNUM *,int,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_lshift_quick", "(BIGNUM *,const BIGNUM *,int,const BIGNUM *)", "", "Argument[*1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_lshift_quick", "(BIGNUM *,const BIGNUM *,int,const BIGNUM *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_mod_lshift_quick", "(BIGNUM *,const BIGNUM *,int,const BIGNUM *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_lshift_quick", "(BIGNUM *,const BIGNUM *,int,const BIGNUM *)", "", "Argument[2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_mod_mul_montgomery", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_montgomery", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_montgomery", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_montgomery", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_montgomery", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_reciprocal", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_reciprocal", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_reciprocal", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_reciprocal", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_reciprocal", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_reciprocal", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mod_mul_reciprocal", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sqr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sqr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sqr", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sqrt", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_mod_sqrt", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_mod_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_mod_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_mod_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_mod_sub_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*0]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "BN_mod_sub_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sub_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_mod_sub_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sub_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sub_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_mod_sub_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "BN_mod_sub_quick", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_mod_word", "(const BIGNUM *,unsigned long)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_mpi2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_mpi2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_mul", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_nist_mod_192", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_nist_mod_192", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_nist_mod_224", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_nist_mod_224", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_nist_mod_256", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_nist_mod_256", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_nist_mod_384", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_nist_mod_384", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_nist_mod_521", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_nist_mod_521", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_nnmod", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_nnmod", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1].Field[*neg]", "Argument[*0].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "BN_nnmod", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1].Field[*neg]", "Argument[*2].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "BN_nnmod", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_num_bits", "(const BIGNUM *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "BN_num_bits_word", "(unsigned long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_priv_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_priv_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_priv_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_priv_rand_ex", "(BIGNUM *,int,int,int,unsigned int,BN_CTX *)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_priv_rand_ex", "(BIGNUM *,int,int,int,unsigned int,BN_CTX *)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_priv_rand_ex", "(BIGNUM *,int,int,int,unsigned int,BN_CTX *)", "", "Argument[1]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_priv_rand_range", "(BIGNUM *,const BIGNUM *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_priv_rand_range", "(BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_priv_rand_range_ex", "(BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_priv_rand_range_ex", "(BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_pseudo_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_pseudo_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_pseudo_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_pseudo_rand_range", "(BIGNUM *,const BIGNUM *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_pseudo_rand_range", "(BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_rand", "(BIGNUM *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_rand_ex", "(BIGNUM *,int,int,int,unsigned int,BN_CTX *)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_rand_ex", "(BIGNUM *,int,int,int,unsigned int,BN_CTX *)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_rand_ex", "(BIGNUM *,int,int,int,unsigned int,BN_CTX *)", "", "Argument[1]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_rand_range", "(BIGNUM *,const BIGNUM *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_rand_range", "(BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_rand_range_ex", "(BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_rand_range_ex", "(BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "BN_reciprocal", "(BIGNUM *,const BIGNUM *,int,BN_CTX *)", "", "Argument[2]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_reciprocal", "(BIGNUM *,const BIGNUM *,int,BN_CTX *)", "", "Argument[2]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_reciprocal", "(BIGNUM *,const BIGNUM *,int,BN_CTX *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_rshift1", "(BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_rshift", "(BIGNUM *,const BIGNUM *,int)", "", "Argument[2]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_rshift", "(BIGNUM *,const BIGNUM *,int)", "", "Argument[2]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_security_bits", "(int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_set_bit", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_set_bit", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "BN_set_bit", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "BN_set_flags", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "BN_set_word", "(BIGNUM *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[**d]", "value", "dfc-generated"] + - ["", "", True, "BN_signed_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_signed_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_signed_bn2bin", "(const BIGNUM *,unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bn2bin", "(const BIGNUM *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bn2bin", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bn2bin", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_signed_bn2lebin", "(const BIGNUM *,unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bn2lebin", "(const BIGNUM *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bn2lebin", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bn2lebin", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_signed_bn2native", "(const BIGNUM *,unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bn2native", "(const BIGNUM *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bn2native", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_bn2native", "(const BIGNUM *,unsigned char *,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_signed_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_signed_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_lebin2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_signed_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_signed_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "Argument[*2].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[0]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_signed_native2bn", "(const unsigned char *,int,BIGNUM *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_sqr", "(BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_sqr", "(BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_sub", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_sub_word", "(BIGNUM *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "BN_swap", "(BIGNUM *,BIGNUM *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_swap", "(BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_to_ASN1_ENUMERATED", "(const BIGNUM *,ASN1_ENUMERATED *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_to_ASN1_ENUMERATED", "(const BIGNUM *,ASN1_ENUMERATED *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_to_ASN1_INTEGER", "(const BIGNUM *,ASN1_INTEGER *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "BN_to_ASN1_INTEGER", "(const BIGNUM *,ASN1_INTEGER *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BN_to_montgomery", "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_to_montgomery", "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "BN_to_montgomery", "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_to_montgomery", "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "BN_uadd", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_uadd", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "BN_uadd", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BN_uadd", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "BN_ucmp", "(const BIGNUM *,const BIGNUM *)", "", "Argument[*0].Field[*top]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_ucmp", "(const BIGNUM *,const BIGNUM *)", "", "Argument[*1].Field[*top]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "BN_usub", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1].Field[*top]", "Argument[*0].Field[*dmax]", "value", "dfc-generated"] + - ["", "", True, "BN_usub", "(BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1].Field[*top]", "Argument[*0].Field[*top]", "value", "dfc-generated"] + - ["", "", True, "BN_with_flags", "(BIGNUM *,const BIGNUM *,int)", "", "Argument[2]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "BUF_MEM_grow", "(BUF_MEM *,size_t)", "", "Argument[1]", "Argument[*0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "BUF_MEM_grow", "(BUF_MEM *,size_t)", "", "Argument[1]", "Argument[*0].Field[*max]", "taint", "dfc-generated"] + - ["", "", True, "BUF_MEM_grow", "(BUF_MEM *,size_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "BUF_MEM_grow_clean", "(BUF_MEM *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "BUF_MEM_grow_clean", "(BUF_MEM *,size_t)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "BUF_MEM_new_ex", "(unsigned long)", "", "Argument[0]", "ReturnValue[*].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "BUF_reverse", "(unsigned char *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "BUF_reverse", "(unsigned char *,const unsigned char *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BUF_reverse", "(unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "BUF_reverse", "(unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[*0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[*3].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[*3].Field[*data]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cbc_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "CAST_decrypt", "(unsigned int *,const CAST_KEY *)", "", "Argument[*1].Field[*data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CAST_decrypt", "(unsigned int *,const CAST_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CAST_ecb_encrypt", "(const unsigned char *,unsigned char *,const CAST_KEY *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_ecb_encrypt", "(const unsigned char *,unsigned char *,const CAST_KEY *,int)", "", "Argument[*2].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_ecb_encrypt", "(const unsigned char *,unsigned char *,const CAST_KEY *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_ecb_encrypt", "(const unsigned char *,unsigned char *,const CAST_KEY *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_encrypt", "(unsigned int *,const CAST_KEY *)", "", "Argument[*1].Field[*data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CAST_encrypt", "(unsigned int *,const CAST_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CAST_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CAST_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "CERTIFICATEPOLICIES_free", "(CERTIFICATEPOLICIES *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "CERTIFICATEPOLICIES_free", "(CERTIFICATEPOLICIES *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "CMAC_CTX_copy", "(CMAC_CTX *,const CMAC_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "CMAC_CTX_get0_cipher_ctx", "(CMAC_CTX *)", "", "Argument[*0].Field[**cctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CMAC_CTX_get0_cipher_ctx", "(CMAC_CTX *)", "", "Argument[*0].Field[*cctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CMAC_Final", "(CMAC_CTX *,unsigned char *,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "CMAC_Init", "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *)", "", "Argument[2]", "Argument[*0].Field[**cctx].Field[*key_len]", "value", "dfc-generated"] + - ["", "", True, "CMAC_Init", "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *)", "", "Argument[3]", "Argument[*0].Field[**cctx].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "CMAC_Init", "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *)", "", "Argument[3]", "Argument[*0].Field[**cctx].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "CMAC_Init", "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *)", "", "Argument[4]", "Argument[*0].Field[**cctx].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "CMAC_Update", "(CMAC_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*last_block]", "value", "dfc-generated"] + - ["", "", True, "CMAC_Update", "(CMAC_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*last_block]", "taint", "dfc-generated"] + - ["", "", True, "CMAC_Update", "(CMAC_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*last_block]", "taint", "dfc-generated"] + - ["", "", True, "CMAC_Update", "(CMAC_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*nlast_block]", "value", "dfc-generated"] + - ["", "", True, "CMAC_Update", "(CMAC_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*tbl]", "taint", "dfc-generated"] + - ["", "", True, "CMS_AuthEnvelopedData_create_ex", "(const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_AuthEnvelopedData_create_ex", "(const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CMS_AuthEnvelopedData_create_ex", "(const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_AuthEnvelopedData_create_ex", "(const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CMS_ContentInfo_free", "(CMS_ContentInfo *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "CMS_ContentInfo_free", "(CMS_ContentInfo *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "CMS_ContentInfo_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_ContentInfo_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CMS_ContentInfo_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_ContentInfo_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CMS_ContentInfo_print_ctx", "(BIO *,const CMS_ContentInfo *,int,const ASN1_PCTX *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_ContentInfo_print_ctx", "(BIO *,const CMS_ContentInfo *,int,const ASN1_PCTX *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_EncryptedData_decrypt", "(CMS_ContentInfo *,const unsigned char *,size_t,BIO *,BIO *,unsigned int)", "", "Argument[3]", "Argument[*3].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_EncryptedData_encrypt_ex", "(BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*5]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_EncryptedData_encrypt_ex", "(BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*6]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CMS_EncryptedData_encrypt_ex", "(BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[5]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_EncryptedData_encrypt_ex", "(BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CMS_EnvelopedData_create_ex", "(const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_EnvelopedData_create_ex", "(const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CMS_EnvelopedData_create_ex", "(const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_EnvelopedData_create_ex", "(const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CMS_EnvelopedData_decrypt", "(CMS_EnvelopedData *,BIO *,EVP_PKEY *,X509 *,ASN1_OCTET_STRING *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_EnvelopedData_dup", "(const CMS_EnvelopedData *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "CMS_EnvelopedData_dup", "(const CMS_EnvelopedData *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CMS_EnvelopedData_dup", "(const CMS_EnvelopedData *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "CMS_EnvelopedData_dup", "(const CMS_EnvelopedData *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CMS_EnvelopedData_dup", "(const CMS_EnvelopedData *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "CMS_ReceiptRequest_create0", "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *)", "", "Argument[*0]", "ReturnValue[*].Field[**signedContentIdentifier].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "CMS_ReceiptRequest_create0", "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *)", "", "Argument[*4]", "ReturnValue[*].Field[**receiptsTo]", "value", "dfc-generated"] + - ["", "", True, "CMS_ReceiptRequest_create0", "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *)", "", "Argument[0]", "ReturnValue[*].Field[**signedContentIdentifier].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "CMS_ReceiptRequest_create0", "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *)", "", "Argument[1]", "ReturnValue[*].Field[**signedContentIdentifier].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "CMS_ReceiptRequest_create0", "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *)", "", "Argument[4]", "ReturnValue[*].Field[*receiptsTo]", "value", "dfc-generated"] + - ["", "", True, "CMS_ReceiptRequest_create0_ex", "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**signedContentIdentifier].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "CMS_ReceiptRequest_create0_ex", "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *)", "", "Argument[*4]", "ReturnValue[*].Field[**receiptsTo]", "value", "dfc-generated"] + - ["", "", True, "CMS_ReceiptRequest_create0_ex", "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[**signedContentIdentifier].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "CMS_ReceiptRequest_create0_ex", "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue[*].Field[**signedContentIdentifier].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "CMS_ReceiptRequest_create0_ex", "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *)", "", "Argument[4]", "ReturnValue[*].Field[*receiptsTo]", "value", "dfc-generated"] + - ["", "", True, "CMS_ReceiptRequest_free", "(CMS_ReceiptRequest *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "CMS_ReceiptRequest_free", "(CMS_ReceiptRequest *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "CMS_ReceiptRequest_get0_values", "(CMS_ReceiptRequest *,ASN1_STRING **,int *,stack_st_GENERAL_NAMES **,stack_st_GENERAL_NAMES **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "CMS_ReceiptRequest_get0_values", "(CMS_ReceiptRequest *,ASN1_STRING **,int *,stack_st_GENERAL_NAMES **,stack_st_GENERAL_NAMES **)", "", "Argument[*0]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "CMS_ReceiptRequest_get0_values", "(CMS_ReceiptRequest *,ASN1_STRING **,int *,stack_st_GENERAL_NAMES **,stack_st_GENERAL_NAMES **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "CMS_ReceiptRequest_get0_values", "(CMS_ReceiptRequest *,ASN1_STRING **,int *,stack_st_GENERAL_NAMES **,stack_st_GENERAL_NAMES **)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "CMS_RecipientEncryptedKey_cert_cmp", "(CMS_RecipientEncryptedKey *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_RecipientEncryptedKey_cert_cmp", "(CMS_RecipientEncryptedKey *,X509 *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CMS_RecipientInfo_kari_orig_id_cmp", "(CMS_RecipientInfo *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_RecipientInfo_kari_orig_id_cmp", "(CMS_RecipientInfo *,X509 *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CMS_RecipientInfo_kekri_id_cmp", "(CMS_RecipientInfo *,const unsigned char *,size_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_RecipientInfo_kekri_id_cmp", "(CMS_RecipientInfo *,const unsigned char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_RecipientInfo_kekri_id_cmp", "(CMS_RecipientInfo *,const unsigned char *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_RecipientInfo_ktri_cert_cmp", "(CMS_RecipientInfo *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_RecipientInfo_ktri_cert_cmp", "(CMS_RecipientInfo *,X509 *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CMS_RecipientInfo_type", "(CMS_RecipientInfo *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[*1]", "Argument[**0].Field[**data].Field[**keyInfo]", "value", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[*1]", "Argument[**0].Field[**keyInfo]", "value", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[*2]", "Argument[**0].Field[**data].Field[**entityUInfo]", "value", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[*2]", "Argument[**0].Field[**entityUInfo]", "value", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[1]", "Argument[**0].Field[**data].Field[*keyInfo]", "value", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[1]", "Argument[**0].Field[*keyInfo]", "value", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[2]", "Argument[**0].Field[**data].Field[*entityUInfo]", "value", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[2]", "Argument[**0].Field[*entityUInfo]", "value", "dfc-generated"] + - ["", "", True, "CMS_SharedInfo_encode", "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)", "", "Argument[3]", "Argument[**0].Field[**suppPubInfo].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "CMS_SignedData_free", "(CMS_SignedData *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "CMS_SignedData_free", "(CMS_SignedData *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "CMS_SignedData_verify", "(CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "CMS_SignedData_verify", "(CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_SignerInfo_cert_cmp", "(CMS_SignerInfo *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_SignerInfo_cert_cmp", "(CMS_SignerInfo *,X509 *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CMS_SignerInfo_get0_algs", "(CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "CMS_SignerInfo_get0_algs", "(CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "CMS_SignerInfo_get0_algs", "(CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "CMS_SignerInfo_get0_algs", "(CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "CMS_SignerInfo_get0_algs", "(CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "CMS_SignerInfo_get0_algs", "(CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "CMS_SignerInfo_get0_algs", "(CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "CMS_SignerInfo_get0_algs", "(CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "CMS_SignerInfo_get0_md_ctx", "(CMS_SignerInfo *)", "", "Argument[*0].Field[**mctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CMS_SignerInfo_get0_md_ctx", "(CMS_SignerInfo *)", "", "Argument[*0].Field[*mctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CMS_SignerInfo_get0_pkey_ctx", "(CMS_SignerInfo *)", "", "Argument[*0].Field[**pctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CMS_SignerInfo_get0_pkey_ctx", "(CMS_SignerInfo *)", "", "Argument[*0].Field[*pctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CMS_SignerInfo_get0_signature", "(CMS_SignerInfo *)", "", "Argument[*0].Field[**signature]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CMS_SignerInfo_get0_signature", "(CMS_SignerInfo *)", "", "Argument[*0].Field[*signature]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CMS_SignerInfo_set1_signer_cert", "(CMS_SignerInfo *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*signer]", "value", "dfc-generated"] + - ["", "", True, "CMS_SignerInfo_verify_content", "(CMS_SignerInfo *,BIO *)", "", "Argument[*1].Field[**next_bio].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "CMS_SignerInfo_verify_content", "(CMS_SignerInfo *,BIO *)", "", "Argument[*1].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "CMS_add0_cert", "(CMS_ContentInfo *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_add0_cert", "(CMS_ContentInfo *,X509 *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_ReceiptRequest", "(CMS_SignerInfo *,CMS_ReceiptRequest *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_cert", "(CMS_ContentInfo *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_cert", "(CMS_ContentInfo *,X509 *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_crl", "(CMS_ContentInfo *,X509_CRL *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_crl", "(CMS_ContentInfo *,X509_CRL *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_recipient", "(CMS_ContentInfo *,X509 *,EVP_PKEY *,X509 *,unsigned int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_recipient", "(CMS_ContentInfo *,X509 *,EVP_PKEY *,X509 *,unsigned int)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "CMS_add1_recipient", "(CMS_ContentInfo *,X509 *,EVP_PKEY *,X509 *,unsigned int)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_recipient_cert", "(CMS_ContentInfo *,X509 *,unsigned int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_recipient_cert", "(CMS_ContentInfo *,X509 *,unsigned int)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_signer", "(CMS_ContentInfo *,X509 *,EVP_PKEY *,const EVP_MD *,unsigned int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_signer", "(CMS_ContentInfo *,X509 *,EVP_PKEY *,const EVP_MD *,unsigned int)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "CMS_add1_signer", "(CMS_ContentInfo *,X509 *,EVP_PKEY *,const EVP_MD *,unsigned int)", "", "Argument[2]", "ReturnValue[*].Field[**pctx].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "CMS_add1_signer", "(CMS_ContentInfo *,X509 *,EVP_PKEY *,const EVP_MD *,unsigned int)", "", "Argument[2]", "ReturnValue[*].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "CMS_add_simple_smimecap", "(stack_st_X509_ALGOR **,int,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CMS_add_smimecap", "(CMS_SignerInfo *,stack_st_X509_ALGOR *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_add_standard_smimecap", "(stack_st_X509_ALGOR **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CMS_dataInit", "(CMS_ContentInfo *,BIO *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "CMS_dataInit", "(CMS_ContentInfo *,BIO *)", "", "Argument[1]", "Argument[*1].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_dataInit", "(CMS_ContentInfo *,BIO *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CMS_data_create_ex", "(BIO *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_data_create_ex", "(BIO *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CMS_data_create_ex", "(BIO *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_data_create_ex", "(BIO *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CMS_decrypt", "(CMS_ContentInfo *,EVP_PKEY *,X509 *,BIO *,BIO *,unsigned int)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "CMS_decrypt", "(CMS_ContentInfo *,EVP_PKEY *,X509 *,BIO *,BIO *,unsigned int)", "", "Argument[3]", "Argument[*3].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_decrypt_set1_pkey", "(CMS_ContentInfo *,EVP_PKEY *,X509 *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "CMS_decrypt_set1_pkey_and_peer", "(CMS_ContentInfo *,EVP_PKEY *,X509 *,X509 *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "CMS_digest_create_ex", "(BIO *,const EVP_MD *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_digest_create_ex", "(BIO *,const EVP_MD *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CMS_digest_create_ex", "(BIO *,const EVP_MD *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_digest_create_ex", "(BIO *,const EVP_MD *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CMS_digest_verify", "(CMS_ContentInfo *,BIO *,BIO *,unsigned int)", "", "Argument[1]", "Argument[*1].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_encrypt_ex", "(stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_encrypt_ex", "(stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*5]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CMS_encrypt_ex", "(stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_encrypt_ex", "(stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[5]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CMS_final", "(CMS_ContentInfo *,BIO *,BIO *,unsigned int)", "", "Argument[2]", "Argument[*2].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_final_digest", "(CMS_ContentInfo *,const unsigned char *,unsigned int,BIO *,unsigned int)", "", "Argument[3]", "Argument[*3].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_get0_content", "(CMS_ContentInfo *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "CMS_get0_content", "(CMS_ContentInfo *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "CMS_get0_type", "(const CMS_ContentInfo *)", "", "Argument[*0].Field[**contentType]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CMS_get0_type", "(const CMS_ContentInfo *)", "", "Argument[*0].Field[*contentType]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CMS_sign", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "CMS_sign", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "CMS_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "CMS_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*5]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*6]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CMS_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "CMS_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[5]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CMS_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CMS_sign_receipt", "(CMS_SignerInfo *,X509 *,EVP_PKEY *,stack_st_X509 *,unsigned int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "CMS_sign_receipt", "(CMS_SignerInfo *,X509 *,EVP_PKEY *,stack_st_X509 *,unsigned int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_sign_receipt", "(CMS_SignerInfo *,X509 *,EVP_PKEY *,stack_st_X509 *,unsigned int)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "CMS_signed_add1_attr", "(CMS_SignerInfo *,X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_signed_delete_attr", "(CMS_SignerInfo *,int)", "", "Argument[1]", "Argument[*0].Field[**signedAttrs].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "CMS_signed_delete_attr", "(CMS_SignerInfo *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_signed_delete_attr", "(CMS_SignerInfo *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "CMS_signed_get_attr", "(const CMS_SignerInfo *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_signed_get_attr_by_NID", "(const CMS_SignerInfo *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_signed_get_attr_by_OBJ", "(const CMS_SignerInfo *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_signed_get_attr_count", "(const CMS_SignerInfo *)", "", "Argument[*0].Field[**signedAttrs].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CMS_unsigned_add1_attr", "(CMS_SignerInfo *,X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "CMS_unsigned_delete_attr", "(CMS_SignerInfo *,int)", "", "Argument[1]", "Argument[*0].Field[**unsignedAttrs].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "CMS_unsigned_delete_attr", "(CMS_SignerInfo *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_unsigned_delete_attr", "(CMS_SignerInfo *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "CMS_unsigned_get_attr", "(const CMS_SignerInfo *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_unsigned_get_attr_by_NID", "(const CMS_SignerInfo *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_unsigned_get_attr_by_OBJ", "(const CMS_SignerInfo *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CMS_unsigned_get_attr_count", "(const CMS_SignerInfo *)", "", "Argument[*0].Field[**unsignedAttrs].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CMS_verify", "(CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int)", "", "Argument[*3]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "CMS_verify", "(CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int)", "", "Argument[*4]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "CMS_verify", "(CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int)", "", "Argument[3]", "Argument[*3].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_verify", "(CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int)", "", "Argument[4]", "Argument[*3].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "CMS_verify", "(CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int)", "", "Argument[4]", "Argument[*4].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "COMP_CTX_get_method", "(const COMP_CTX *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "COMP_CTX_get_method", "(const COMP_CTX *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "COMP_CTX_get_type", "(const COMP_CTX *)", "", "Argument[*0].Field[**meth].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "COMP_CTX_new", "(COMP_METHOD *)", "", "Argument[*0]", "ReturnValue[*].Field[**meth]", "value", "dfc-generated"] + - ["", "", True, "COMP_CTX_new", "(COMP_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "COMP_compress_block", "(COMP_CTX *,unsigned char *,int,unsigned char *,int)", "", "Argument[4]", "Argument[*0].Field[*compress_in]", "taint", "dfc-generated"] + - ["", "", True, "COMP_expand_block", "(COMP_CTX *,unsigned char *,int,unsigned char *,int)", "", "Argument[4]", "Argument[*0].Field[*expand_in]", "taint", "dfc-generated"] + - ["", "", True, "COMP_get_name", "(const COMP_METHOD *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "COMP_get_name", "(const COMP_METHOD *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "COMP_get_type", "(const COMP_METHOD *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_get_flags", "(const CONF_IMODULE *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_get_module", "(const CONF_IMODULE *)", "", "Argument[*0].Field[**pmod]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_get_module", "(const CONF_IMODULE *)", "", "Argument[*0].Field[*pmod]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_get_name", "(const CONF_IMODULE *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_get_name", "(const CONF_IMODULE *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_get_usr_data", "(const CONF_IMODULE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CONF_imodule_get_usr_data", "(const CONF_IMODULE *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "CONF_imodule_get_usr_data", "(const CONF_IMODULE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "CONF_imodule_get_value", "(const CONF_IMODULE *)", "", "Argument[*0].Field[**value]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_get_value", "(const CONF_IMODULE *)", "", "Argument[*0].Field[*value]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_set_flags", "(CONF_IMODULE *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_set_usr_data", "(CONF_IMODULE *,void *)", "", "Argument[**1]", "Argument[*0].Field[***usr_data]", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_set_usr_data", "(CONF_IMODULE *,void *)", "", "Argument[*1]", "Argument[*0].Field[**usr_data]", "value", "dfc-generated"] + - ["", "", True, "CONF_imodule_set_usr_data", "(CONF_IMODULE *,void *)", "", "Argument[1]", "Argument[*0].Field[*usr_data]", "value", "dfc-generated"] + - ["", "", True, "CONF_load", "(lhash_st_CONF_VALUE *,const char *,long *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CONF_load", "(lhash_st_CONF_VALUE *,const char *,long *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CONF_load_bio", "(lhash_st_CONF_VALUE *,BIO *,long *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CONF_load_bio", "(lhash_st_CONF_VALUE *,BIO *,long *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CONF_load_fp", "(lhash_st_CONF_VALUE *,FILE *,long *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CONF_load_fp", "(lhash_st_CONF_VALUE *,FILE *,long *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CONF_module_get_usr_data", "(CONF_MODULE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CONF_module_get_usr_data", "(CONF_MODULE *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "CONF_module_get_usr_data", "(CONF_MODULE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "CONF_module_set_usr_data", "(CONF_MODULE *,void *)", "", "Argument[**1]", "Argument[*0].Field[***usr_data]", "value", "dfc-generated"] + - ["", "", True, "CONF_module_set_usr_data", "(CONF_MODULE *,void *)", "", "Argument[*1]", "Argument[*0].Field[**usr_data]", "value", "dfc-generated"] + - ["", "", True, "CONF_module_set_usr_data", "(CONF_MODULE *,void *)", "", "Argument[1]", "Argument[*0].Field[*usr_data]", "value", "dfc-generated"] + - ["", "", True, "CONF_parse_list", "(const char *,int,int,..(*)(..),void *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "CONF_parse_list", "(const char *,int,int,..(*)(..),void *)", "", "Argument[0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "CONF_parse_list", "(const char *,int,int,..(*)(..),void *)", "", "Argument[1]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "CONF_set_nconf", "(CONF *,lhash_st_CONF_VALUE *)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "CONF_set_nconf", "(CONF *,lhash_st_CONF_VALUE *)", "", "Argument[1]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "CRL_DIST_POINTS_free", "(CRL_DIST_POINTS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "CRL_DIST_POINTS_free", "(CRL_DIST_POINTS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "CRYPTO_128_unwrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[*3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[4]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[*3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[*3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[4]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_unwrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[*3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[*3]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[4]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_128_wrap_pad", "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_THREAD_cleanup_local", "(CRYPTO_THREAD_LOCAL *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_THREAD_get_local", "(CRYPTO_THREAD_LOCAL *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_THREAD_set_local", "(CRYPTO_THREAD_LOCAL *,void *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_aligned_alloc", "(size_t,size_t,void **,const char *,int)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_aligned_alloc", "(size_t,size_t,void **,const char *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_aligned_alloc", "(size_t,size_t,void **,const char *,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_aligned_alloc", "(size_t,size_t,void **,const char *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_add64", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[*0]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_add64", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_add64", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_add64", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_add64", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_and", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[*0]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_and", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_and", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_and", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_and", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_load", "(uint64_t *,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_load", "(uint64_t *,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_load", "(uint64_t *,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_or", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[*0]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_or", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_or", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_or", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_or", "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_atomic_store", "(uint64_t *,uint64_t,CRYPTO_RWLOCK *)", "", "Argument[1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*3].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*3].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*3].Field[*data]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*4]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cbc128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_aad", "(CCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*cmac].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_aad", "(CCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*cmac].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_aad", "(CCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*cmac].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*cmac].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[2]", "Argument[*0].Field[*cmac].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[3]", "Argument[*0].Field[*cmac].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[3]", "Argument[*0].Field[*nonce].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_decrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*cmac].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*cmac].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*blocks]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[*1]", "Argument[*0].Field[*cmac].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[1]", "Argument[*0].Field[*cmac].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_encrypt_ccm64", "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_init", "(CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f)", "", "Argument[**3]", "Argument[*0].Field[***key]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_init", "(CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f)", "", "Argument[*3]", "Argument[*0].Field[**key]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_init", "(CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f)", "", "Argument[1]", "Argument[*0].Field[*nonce].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_init", "(CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f)", "", "Argument[2]", "Argument[*0].Field[*nonce].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_init", "(CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f)", "", "Argument[3]", "Argument[*0].Field[*key]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_init", "(CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f)", "", "Argument[4]", "Argument[*0].Field[*block]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_setiv", "(CCM128_CONTEXT *,const unsigned char *,size_t,size_t)", "", "Argument[*1]", "Argument[*0].Field[*nonce].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_setiv", "(CCM128_CONTEXT *,const unsigned char *,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*nonce].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_setiv", "(CCM128_CONTEXT *,const unsigned char *,size_t,size_t)", "", "Argument[3]", "Argument[*0].Field[*nonce].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ccm128_tag", "(CCM128_CONTEXT *,unsigned char *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "CRYPTO_ccm128_tag", "(CCM128_CONTEXT *,unsigned char *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CRYPTO_cfb128_1_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_1_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_1_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_1_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_1_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_1_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_8_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_8_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_8_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_8_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_8_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_8_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_8_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_8_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_8_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_8_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*3].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*3].Field[*data]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[*5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_clear_realloc", "(void *,size_t,size_t,const char *,int)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_clear_realloc", "(void *,size_t,size_t,const char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_clear_realloc", "(void *,size_t,size_t,const char *,int)", "", "Argument[*0]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_clear_realloc", "(void *,size_t,size_t,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_clear_realloc", "(void *,size_t,size_t,const char *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_clear_realloc", "(void *,size_t,size_t,const char *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_clear_realloc", "(void *,size_t,size_t,const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f)", "", "Argument[*6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f)", "", "Argument[6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[*6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ctr128_encrypt_ctr32", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*4]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_cts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_dup_ex_data", "(int,CRYPTO_EX_DATA *,const CRYPTO_EX_DATA *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "CRYPTO_dup_ex_data", "(int,CRYPTO_EX_DATA *,const CRYPTO_EX_DATA *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "CRYPTO_gcm128_aad", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*Xi].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_aad", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*Xi].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_aad", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Xi].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_aad", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*ares]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_aad", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*len].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*Xn]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*Xn]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*len].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[*1]", "Argument[*0].Field[*Xn]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[1]", "Argument[*0].Field[*Xn]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_decrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*Xn]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[*Xn]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*Xn]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Xn]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*len].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[*1]", "Argument[*0].Field[*Xn]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[*2]", "Argument[*0].Field[*Xn]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[1]", "Argument[*0].Field[*Xn]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[2]", "Argument[*0].Field[*Xn]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_encrypt_ctr32", "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_init", "(GCM128_CONTEXT *,void *,block128_f)", "", "Argument[**1]", "Argument[*0].Field[***key]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_init", "(GCM128_CONTEXT *,void *,block128_f)", "", "Argument[*1]", "Argument[*0].Field[**key]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_init", "(GCM128_CONTEXT *,void *,block128_f)", "", "Argument[1]", "Argument[*0].Field[*key]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_init", "(GCM128_CONTEXT *,void *,block128_f)", "", "Argument[2]", "Argument[*0].Field[*block]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_new", "(void *,block128_f)", "", "Argument[**0]", "ReturnValue[*].Field[***key]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_new", "(void *,block128_f)", "", "Argument[*0]", "ReturnValue[*].Field[**key]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_new", "(void *,block128_f)", "", "Argument[0]", "ReturnValue[*].Field[*key]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_new", "(void *,block128_f)", "", "Argument[1]", "ReturnValue[*].Field[*block]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_setiv", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[*0].Field[*Xi].Union[*(unnamed class/struct/union)]", "Argument[*0].Field[*Yi].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_setiv", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*Xi].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_setiv", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*Yi].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_setiv", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*Xi].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_setiv", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*Yi].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_setiv", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Xi].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_setiv", "(GCM128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Yi].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_gcm128_tag", "(GCM128_CONTEXT *,unsigned char *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "CRYPTO_get_ex_data", "(const CRYPTO_EX_DATA *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_get_ex_new_index", "(int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CRYPTO_memdup", "(const void *,size_t,const char *,int)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_memdup", "(const void *,size_t,const char *,int)", "", "Argument[*0]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_memdup", "(const void *,size_t,const char *,int)", "", "Argument[*0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_memdup", "(const void *,size_t,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_memdup", "(const void *,size_t,const char *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_memdup", "(const void *,size_t,const char *,int)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_memdup", "(const void *,size_t,const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_decrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[*4]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_nistcts128_encrypt_block", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_aad", "(OCB128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*sess].Field[*blocks_hashed]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_copy_ctx", "(OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *)", "", "Argument[**2]", "Argument[*0].Field[***keyenc]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_copy_ctx", "(OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *)", "", "Argument[**3]", "Argument[*0].Field[***keydec]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_copy_ctx", "(OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "CRYPTO_ocb128_copy_ctx", "(OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *)", "", "Argument[*2]", "Argument[*0].Field[**keyenc]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_copy_ctx", "(OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *)", "", "Argument[*3]", "Argument[*0].Field[**keydec]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_copy_ctx", "(OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_copy_ctx", "(OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *)", "", "Argument[2]", "Argument[*0].Field[*keyenc]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_copy_ctx", "(OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *)", "", "Argument[3]", "Argument[*0].Field[*keydec]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_decrypt", "(OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_decrypt", "(OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_decrypt", "(OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_decrypt", "(OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*sess].Field[*blocks_processed]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_encrypt", "(OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_encrypt", "(OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_encrypt", "(OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_encrypt", "(OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*sess].Field[*blocks_processed]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_init", "(OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[**1]", "Argument[*0].Field[***keyenc]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_init", "(OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[**2]", "Argument[*0].Field[***keydec]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_init", "(OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[*1]", "Argument[*0].Field[**keyenc]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_init", "(OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[*2]", "Argument[*0].Field[**keydec]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_init", "(OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[1]", "Argument[*0].Field[*keyenc]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_init", "(OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[2]", "Argument[*0].Field[*keydec]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_init", "(OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[3]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_init", "(OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[4]", "Argument[*0].Field[*decrypt]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_init", "(OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[5]", "Argument[*0].Field[*stream]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_new", "(void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[**0]", "ReturnValue[*].Field[***keyenc]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_new", "(void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[**1]", "ReturnValue[*].Field[***keydec]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_new", "(void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[*0]", "ReturnValue[*].Field[**keyenc]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_new", "(void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[*1]", "ReturnValue[*].Field[**keydec]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_new", "(void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[0]", "ReturnValue[*].Field[*keyenc]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_new", "(void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[1]", "ReturnValue[*].Field[*keydec]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_new", "(void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[2]", "ReturnValue[*].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_new", "(void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[3]", "ReturnValue[*].Field[*decrypt]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_new", "(void *,void *,block128_f,block128_f,ocb128_f)", "", "Argument[4]", "ReturnValue[*].Field[*stream]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_ocb128_tag", "(OCB128_CONTEXT *,unsigned char *,size_t)", "", "Argument[*0].Field[*l_dollar].Union[*(unnamed class/struct/union)]", "Argument[*1].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[*3].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[*3].Field[*data]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_realloc", "(void *,size_t,const char *,int)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_realloc", "(void *,size_t,const char *,int)", "", "Argument[*0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_realloc", "(void *,size_t,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_realloc", "(void *,size_t,const char *,int)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_realloc", "(void *,size_t,const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_secure_clear_free", "(void *,size_t,const char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "CRYPTO_secure_free", "(void *,const char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "CRYPTO_set_ex_data", "(CRYPTO_EX_DATA *,int,void *)", "", "Argument[*2]", "Argument[*0].Field[**sk].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_set_ex_data", "(CRYPTO_EX_DATA *,int,void *)", "", "Argument[2]", "Argument[*0].Field[**sk].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_strdup", "(const char *,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_strdup", "(const char *,const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_strndup", "(const char *,size_t,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_strndup", "(const char *,size_t,const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_xts128_encrypt", "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)", "", "Argument[*1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_xts128_encrypt", "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)", "", "Argument[*2]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "CRYPTO_xts128_encrypt", "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_xts128_encrypt", "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "CRYPTO_xts128_encrypt", "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "CTLOG_STORE_get0_log_by_id", "(const CTLOG_STORE *,const uint8_t *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "CTLOG_STORE_get0_log_by_id", "(const CTLOG_STORE *,const uint8_t *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "CTLOG_STORE_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_STORE_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_STORE_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_STORE_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CTLOG_get0_log_id", "(const CTLOG *,const uint8_t **,size_t *)", "", "Argument[*0].Field[*log_id]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_get0_name", "(const CTLOG *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_get0_name", "(const CTLOG *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CTLOG_get0_public_key", "(const CTLOG *)", "", "Argument[*0].Field[**public_key]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_get0_public_key", "(const CTLOG *)", "", "Argument[*0].Field[*public_key]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new", "(EVP_PKEY *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new", "(EVP_PKEY *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*public_key]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new", "(EVP_PKEY *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "CTLOG_new_ex", "(EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new_ex", "(EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new_ex", "(EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new_ex", "(EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*public_key]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new_ex", "(EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "CTLOG_new_ex", "(EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new_ex", "(EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CTLOG_new_from_base64", "(CTLOG **,const char *,const char *)", "", "Argument[*2]", "Argument[**0].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new_from_base64", "(CTLOG **,const char *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CTLOG_new_from_base64", "(CTLOG **,const char *,const char *)", "", "Argument[2]", "Argument[**0].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "CTLOG_new_from_base64_ex", "(CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[**0].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new_from_base64_ex", "(CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "Argument[**0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new_from_base64_ex", "(CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "Argument[**0].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new_from_base64_ex", "(CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "CTLOG_new_from_base64_ex", "(CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**0].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "CTLOG_new_from_base64_ex", "(CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "Argument[**0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CTLOG_new_from_base64_ex", "(CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[**0].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_get0_cert", "(const CT_POLICY_EVAL_CTX *)", "", "Argument[*0].Field[**cert]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_get0_cert", "(const CT_POLICY_EVAL_CTX *)", "", "Argument[*0].Field[*cert]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_get0_issuer", "(const CT_POLICY_EVAL_CTX *)", "", "Argument[*0].Field[**issuer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_get0_issuer", "(const CT_POLICY_EVAL_CTX *)", "", "Argument[*0].Field[*issuer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_get0_log_store", "(const CT_POLICY_EVAL_CTX *)", "", "Argument[*0].Field[**log_store]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_get0_log_store", "(const CT_POLICY_EVAL_CTX *)", "", "Argument[*0].Field[*log_store]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_get_time", "(const CT_POLICY_EVAL_CTX *)", "", "Argument[*0].Field[*epoch_time_in_ms]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_set1_cert", "(CT_POLICY_EVAL_CTX *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*cert]", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_set1_issuer", "(CT_POLICY_EVAL_CTX *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*issuer]", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE", "(CT_POLICY_EVAL_CTX *,CTLOG_STORE *)", "", "Argument[*1]", "Argument[*0].Field[**log_store]", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE", "(CT_POLICY_EVAL_CTX *,CTLOG_STORE *)", "", "Argument[1]", "Argument[*0].Field[*log_store]", "value", "dfc-generated"] + - ["", "", True, "CT_POLICY_EVAL_CTX_set_time", "(CT_POLICY_EVAL_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*epoch_time_in_ms]", "value", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb1_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "Camellia_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*3].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_cfb8_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *)", "", "Argument[*6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *)", "", "Argument[6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ctr128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Camellia_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_cksum", "(const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_cksum", "(const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *)", "", "Argument[*4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_cksum", "(const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_cksum", "(const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_cksum", "(const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_check_key_parity", "(const_DES_cblock *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_check_key_parity", "(const_DES_cblock *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_crypt", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DES_crypt", "(const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "DES_decrypt3", "(DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[*6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[*7]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[7]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int)", "", "Argument[*7]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_cfb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int)", "", "Argument[7]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[*7]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[7]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ede3_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "DES_encrypt3", "(DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "DES_fcrypt", "(const char *,const char *,char *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "DES_fcrypt", "(const char *,const char *,char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DES_fcrypt", "(const char *,const char *,char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DES_fcrypt", "(const char *,const char *,char *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "DES_fcrypt", "(const char *,const char *,char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "DES_fcrypt", "(const char *,const char *,char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DES_ncbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ncbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ncbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ncbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ncbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ncbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_ofb_encrypt", "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_quad_cksum", "(const unsigned char *,DES_cblock[],long,int,DES_cblock *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_quad_cksum", "(const unsigned char *,DES_cblock[],long,int,DES_cblock *)", "", "Argument[*4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_quad_cksum", "(const unsigned char *,DES_cblock[],long,int,DES_cblock *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_quad_cksum", "(const unsigned char *,DES_cblock[],long,int,DES_cblock *)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DES_random_key", "(DES_cblock *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "DES_set_odd_parity", "(DES_cblock *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[**1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[*0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[*2]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_2keys", "(const char *,DES_cblock *,DES_cblock *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_key", "(const char *,DES_cblock *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_key", "(const char *,DES_cblock *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_string_to_key", "(const char *,DES_cblock *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_xcbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_xcbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_xcbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_xcbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)", "", "Argument[*6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_xcbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_xcbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_xcbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_xcbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_xcbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DES_xcbc_encrypt", "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)", "", "Argument[6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DH_check", "(const DH *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DH_check_params", "(const DH *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "DH_check_pub_key", "(const DH *,const BIGNUM *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "DH_check_pub_key_ex", "(const DH *,const BIGNUM *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "DH_check_pub_key_ex", "(const DH *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "DH_clear_flags", "(DH *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "DH_compute_key", "(unsigned char *,const BIGNUM *,DH *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "DH_compute_key_padded", "(unsigned char *,const BIGNUM *,DH *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "DH_get0_engine", "(DH *)", "", "Argument[*0].Field[**engine]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DH_get0_engine", "(DH *)", "", "Argument[*0].Field[*engine]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_get0_g", "(const DH *)", "", "Argument[*0].Field[*params].Field[**g]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DH_get0_g", "(const DH *)", "", "Argument[*0].Field[*params].Field[*g]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_get0_key", "(const DH *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "DH_get0_key", "(const DH *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "DH_get0_key", "(const DH *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "DH_get0_key", "(const DH *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "DH_get0_p", "(const DH *)", "", "Argument[*0].Field[*params].Field[**p]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DH_get0_p", "(const DH *)", "", "Argument[*0].Field[*params].Field[*p]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_get0_pqg", "(const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "DH_get0_pqg", "(const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "DH_get0_pqg", "(const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "DH_get0_pqg", "(const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "DH_get0_pqg", "(const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "DH_get0_pqg", "(const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "DH_get0_priv_key", "(const DH *)", "", "Argument[*0].Field[**priv_key]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DH_get0_priv_key", "(const DH *)", "", "Argument[*0].Field[*priv_key]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_get0_pub_key", "(const DH *)", "", "Argument[*0].Field[**pub_key]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DH_get0_pub_key", "(const DH *)", "", "Argument[*0].Field[*pub_key]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_get0_q", "(const DH *)", "", "Argument[*0].Field[*params].Field[**q]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DH_get0_q", "(const DH *)", "", "Argument[*0].Field[*params].Field[*q]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_get_ex_data", "(const DH *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DH_get_length", "(const DH *)", "", "Argument[*0].Field[*length]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_get_nid", "(const DH *)", "", "Argument[*0].Field[*params].Field[*nid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_meth_dup", "(const DH_METHOD *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "DH_meth_dup", "(const DH_METHOD *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "DH_meth_get0_app_data", "(const DH_METHOD *)", "", "Argument[*0].Field[**app_data]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_get0_app_data", "(const DH_METHOD *)", "", "Argument[*0].Field[*app_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_meth_get0_name", "(const DH_METHOD *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_get0_name", "(const DH_METHOD *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_meth_get_bn_mod_exp", "(const DH_METHOD *)", "", "Argument[*0].Field[*bn_mod_exp]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_meth_get_compute_key", "(const DH_METHOD *)", "", "Argument[*0].Field[*compute_key]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_meth_get_finish", "(const DH_METHOD *)", "", "Argument[*0].Field[*finish]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_meth_get_flags", "(const DH_METHOD *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_meth_get_generate_key", "(const DH_METHOD *)", "", "Argument[*0].Field[*generate_key]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_meth_get_generate_params", "(const DH_METHOD *)", "", "Argument[*0].Field[*generate_params]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_meth_get_init", "(const DH_METHOD *)", "", "Argument[*0].Field[*init]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DH_meth_new", "(const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_new", "(const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "DH_meth_new", "(const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_set0_app_data", "(DH_METHOD *,void *)", "", "Argument[*1]", "Argument[*0].Field[**app_data]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_set0_app_data", "(DH_METHOD *,void *)", "", "Argument[1]", "Argument[*0].Field[*app_data]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_set1_name", "(DH_METHOD *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_set1_name", "(DH_METHOD *,const char *)", "", "Argument[1]", "Argument[*0].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "DH_meth_set_bn_mod_exp", "(DH_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*bn_mod_exp]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_set_compute_key", "(DH_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*compute_key]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_set_finish", "(DH_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*finish]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_set_flags", "(DH_METHOD *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_set_generate_key", "(DH_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*generate_key]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_set_generate_params", "(DH_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*generate_params]", "value", "dfc-generated"] + - ["", "", True, "DH_meth_set_init", "(DH_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*init]", "value", "dfc-generated"] + - ["", "", True, "DH_new_method", "(ENGINE *)", "", "Argument[0]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "DH_security_bits", "(const DH *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "DH_set0_key", "(DH *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**pub_key]", "value", "dfc-generated"] + - ["", "", True, "DH_set0_key", "(DH *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[**priv_key]", "value", "dfc-generated"] + - ["", "", True, "DH_set0_key", "(DH *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*pub_key]", "value", "dfc-generated"] + - ["", "", True, "DH_set0_key", "(DH *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*priv_key]", "value", "dfc-generated"] + - ["", "", True, "DH_set0_pqg", "(DH *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[*params].Field[**p]", "value", "dfc-generated"] + - ["", "", True, "DH_set0_pqg", "(DH *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[*params].Field[**q]", "value", "dfc-generated"] + - ["", "", True, "DH_set0_pqg", "(DH *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*3]", "Argument[*0].Field[*params].Field[**g]", "value", "dfc-generated"] + - ["", "", True, "DH_set0_pqg", "(DH *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*params].Field[*p]", "value", "dfc-generated"] + - ["", "", True, "DH_set0_pqg", "(DH *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*params].Field[*q]", "value", "dfc-generated"] + - ["", "", True, "DH_set0_pqg", "(DH *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[3]", "Argument[*0].Field[*params].Field[*g]", "value", "dfc-generated"] + - ["", "", True, "DH_set_flags", "(DH *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "DH_set_length", "(DH *,long)", "", "Argument[1]", "Argument[*0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "DH_set_method", "(DH *,const DH_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**meth]", "value", "dfc-generated"] + - ["", "", True, "DH_set_method", "(DH *,const DH_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "DH_test_flags", "(const DH *,int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DH_test_flags", "(const DH *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DHparams_dup", "(const DH *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "DIRECTORYSTRING_free", "(ASN1_STRING *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "DIRECTORYSTRING_free", "(ASN1_STRING *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "DISPLAYTEXT_free", "(ASN1_STRING *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "DISPLAYTEXT_free", "(ASN1_STRING *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "DIST_POINT_NAME_dup", "(const DIST_POINT_NAME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "DIST_POINT_NAME_dup", "(const DIST_POINT_NAME *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "DIST_POINT_NAME_dup", "(const DIST_POINT_NAME *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "DIST_POINT_NAME_dup", "(const DIST_POINT_NAME *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "DIST_POINT_NAME_dup", "(const DIST_POINT_NAME *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "DIST_POINT_NAME_free", "(DIST_POINT_NAME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "DIST_POINT_NAME_free", "(DIST_POINT_NAME *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "DIST_POINT_free", "(DIST_POINT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "DIST_POINT_free", "(DIST_POINT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "DIST_POINT_set_dpname", "(DIST_POINT_NAME *,const X509_NAME *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "DIST_POINT_set_dpname", "(DIST_POINT_NAME *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "DIST_POINT_set_dpname", "(DIST_POINT_NAME *,const X509_NAME *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "DSA_SIG_get0", "(const DSA_SIG *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "DSA_SIG_get0", "(const DSA_SIG *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "DSA_SIG_get0", "(const DSA_SIG *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "DSA_SIG_get0", "(const DSA_SIG *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "DSA_SIG_set0", "(DSA_SIG *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**r]", "value", "dfc-generated"] + - ["", "", True, "DSA_SIG_set0", "(DSA_SIG *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[**s]", "value", "dfc-generated"] + - ["", "", True, "DSA_SIG_set0", "(DSA_SIG *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*r]", "value", "dfc-generated"] + - ["", "", True, "DSA_SIG_set0", "(DSA_SIG *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*s]", "value", "dfc-generated"] + - ["", "", True, "DSA_clear_flags", "(DSA *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "DSA_dup_DH", "(const DSA *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "DSA_generate_parameters", "(int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *)", "", "Argument[*1]", "ReturnValue[*].Field[*params].Field[**seed]", "value", "dfc-generated"] + - ["", "", True, "DSA_generate_parameters", "(int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *)", "", "Argument[1]", "ReturnValue[*].Field[*params].Field[**seed]", "taint", "dfc-generated"] + - ["", "", True, "DSA_generate_parameters", "(int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *)", "", "Argument[2]", "ReturnValue[*].Field[*params].Field[**seed]", "taint", "dfc-generated"] + - ["", "", True, "DSA_generate_parameters", "(int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *)", "", "Argument[2]", "ReturnValue[*].Field[*params].Field[*seedlen]", "value", "dfc-generated"] + - ["", "", True, "DSA_generate_parameters_ex", "(DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0].Field[*params].Field[**seed]", "value", "dfc-generated"] + - ["", "", True, "DSA_generate_parameters_ex", "(DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *)", "", "Argument[2]", "Argument[*0].Field[*params].Field[**seed]", "taint", "dfc-generated"] + - ["", "", True, "DSA_generate_parameters_ex", "(DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *)", "", "Argument[3]", "Argument[*0].Field[*params].Field[**seed]", "taint", "dfc-generated"] + - ["", "", True, "DSA_generate_parameters_ex", "(DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *)", "", "Argument[3]", "Argument[*0].Field[*params].Field[*seedlen]", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_engine", "(DSA *)", "", "Argument[*0].Field[**engine]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_engine", "(DSA *)", "", "Argument[*0].Field[*engine]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_g", "(const DSA *)", "", "Argument[*0].Field[*params].Field[**g]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_g", "(const DSA *)", "", "Argument[*0].Field[*params].Field[*g]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_key", "(const DSA *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "DSA_get0_key", "(const DSA *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "DSA_get0_key", "(const DSA *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "DSA_get0_key", "(const DSA *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "DSA_get0_p", "(const DSA *)", "", "Argument[*0].Field[*params].Field[**p]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_p", "(const DSA *)", "", "Argument[*0].Field[*params].Field[*p]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_pqg", "(const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "DSA_get0_pqg", "(const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "DSA_get0_pqg", "(const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "DSA_get0_pqg", "(const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "DSA_get0_pqg", "(const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "DSA_get0_pqg", "(const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "DSA_get0_priv_key", "(const DSA *)", "", "Argument[*0].Field[**priv_key]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_priv_key", "(const DSA *)", "", "Argument[*0].Field[*priv_key]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_pub_key", "(const DSA *)", "", "Argument[*0].Field[**pub_key]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_pub_key", "(const DSA *)", "", "Argument[*0].Field[*pub_key]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_q", "(const DSA *)", "", "Argument[*0].Field[*params].Field[**q]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSA_get0_q", "(const DSA *)", "", "Argument[*0].Field[*params].Field[*q]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_get_ex_data", "(const DSA *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DSA_get_method", "(DSA *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSA_get_method", "(DSA *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_dup", "(const DSA_METHOD *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "DSA_meth_dup", "(const DSA_METHOD *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "DSA_meth_get0_app_data", "(const DSA_METHOD *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "DSA_meth_get0_app_data", "(const DSA_METHOD *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "DSA_meth_get0_app_data", "(const DSA_METHOD *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "DSA_meth_get0_name", "(const DSA_METHOD *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get0_name", "(const DSA_METHOD *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get_bn_mod_exp", "(const DSA_METHOD *)", "", "Argument[*0].Field[*bn_mod_exp]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get_finish", "(const DSA_METHOD *)", "", "Argument[*0].Field[*finish]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get_flags", "(const DSA_METHOD *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get_init", "(const DSA_METHOD *)", "", "Argument[*0].Field[*init]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get_keygen", "(const DSA_METHOD *)", "", "Argument[*0].Field[*dsa_keygen]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get_mod_exp", "(const DSA_METHOD *)", "", "Argument[*0].Field[*dsa_mod_exp]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get_paramgen", "(const DSA_METHOD *)", "", "Argument[*0].Field[*dsa_paramgen]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get_sign", "(const DSA_METHOD *)", "", "Argument[*0].Field[*dsa_do_sign]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get_sign_setup", "(const DSA_METHOD *)", "", "Argument[*0].Field[*dsa_sign_setup]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_get_verify", "(const DSA_METHOD *)", "", "Argument[*0].Field[*dsa_do_verify]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_new", "(const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_new", "(const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "DSA_meth_new", "(const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set0_app_data", "(DSA_METHOD *,void *)", "", "Argument[**1]", "Argument[*0].Field[***app_data]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set0_app_data", "(DSA_METHOD *,void *)", "", "Argument[*1]", "Argument[*0].Field[**app_data]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set0_app_data", "(DSA_METHOD *,void *)", "", "Argument[1]", "Argument[*0].Field[*app_data]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set1_name", "(DSA_METHOD *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set1_name", "(DSA_METHOD *,const char *)", "", "Argument[1]", "Argument[*0].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "DSA_meth_set_bn_mod_exp", "(DSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*bn_mod_exp]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set_finish", "(DSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*finish]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set_flags", "(DSA_METHOD *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set_init", "(DSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*init]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set_keygen", "(DSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*dsa_keygen]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set_mod_exp", "(DSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*dsa_mod_exp]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set_paramgen", "(DSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*dsa_paramgen]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set_sign", "(DSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*dsa_do_sign]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set_sign_setup", "(DSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*dsa_sign_setup]", "value", "dfc-generated"] + - ["", "", True, "DSA_meth_set_verify", "(DSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*dsa_do_verify]", "value", "dfc-generated"] + - ["", "", True, "DSA_new_method", "(ENGINE *)", "", "Argument[0]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "DSA_print", "(BIO *,const DSA *,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "DSA_print", "(BIO *,const DSA *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DSA_print_fp", "(FILE *,const DSA *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DSA_set0_key", "(DSA *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**pub_key]", "value", "dfc-generated"] + - ["", "", True, "DSA_set0_key", "(DSA *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[**priv_key]", "value", "dfc-generated"] + - ["", "", True, "DSA_set0_key", "(DSA *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*pub_key]", "value", "dfc-generated"] + - ["", "", True, "DSA_set0_key", "(DSA *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*priv_key]", "value", "dfc-generated"] + - ["", "", True, "DSA_set0_pqg", "(DSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[*params].Field[**p]", "value", "dfc-generated"] + - ["", "", True, "DSA_set0_pqg", "(DSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[*params].Field[**q]", "value", "dfc-generated"] + - ["", "", True, "DSA_set0_pqg", "(DSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*3]", "Argument[*0].Field[*params].Field[**g]", "value", "dfc-generated"] + - ["", "", True, "DSA_set0_pqg", "(DSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*params].Field[*p]", "value", "dfc-generated"] + - ["", "", True, "DSA_set0_pqg", "(DSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*params].Field[*q]", "value", "dfc-generated"] + - ["", "", True, "DSA_set0_pqg", "(DSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[3]", "Argument[*0].Field[*params].Field[*g]", "value", "dfc-generated"] + - ["", "", True, "DSA_set_flags", "(DSA *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "DSA_set_method", "(DSA *,const DSA_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**meth]", "value", "dfc-generated"] + - ["", "", True, "DSA_set_method", "(DSA *,const DSA_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "DSA_sign", "(int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "DSA_test_flags", "(const DSA *,int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DSA_test_flags", "(const DSA *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DSA_verify", "(int,const unsigned char *,int,const unsigned char *,int,DSA *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "DSAparams_dup", "(const DSA *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "DSAparams_dup", "(const DSA *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "DSAparams_dup", "(const DSA *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "DSAparams_dup", "(const DSA *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "DSAparams_dup", "(const DSA *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "DSAparams_print", "(BIO *,const DSA *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "DSAparams_print", "(BIO *,const DSA *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DSAparams_print_fp", "(FILE *,const DSA *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DSO_convert_filename", "(DSO *,const char *)", "", "Argument[*0].Field[**filename]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSO_convert_filename", "(DSO *,const char *)", "", "Argument[*0].Field[*filename]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "DSO_convert_filename", "(DSO *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSO_convert_filename", "(DSO *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "DSO_ctrl", "(DSO *,int,long,void *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSO_ctrl", "(DSO *,int,long,void *)", "", "Argument[2]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "DSO_dsobyaddr", "(void *,int)", "", "Argument[1]", "ReturnValue[*].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "DSO_flags", "(DSO *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSO_get_filename", "(DSO *)", "", "Argument[*0].Field[**filename]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "DSO_get_filename", "(DSO *)", "", "Argument[*0].Field[*filename]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSO_load", "(DSO *,const char *,DSO_METHOD *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "DSO_load", "(DSO *,const char *,DSO_METHOD *,int)", "", "Argument[*1]", "Argument[*0].Field[**filename]", "value", "dfc-generated"] + - ["", "", True, "DSO_load", "(DSO *,const char *,DSO_METHOD *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**filename]", "value", "dfc-generated"] + - ["", "", True, "DSO_load", "(DSO *,const char *,DSO_METHOD *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "DSO_load", "(DSO *,const char *,DSO_METHOD *,int)", "", "Argument[1]", "Argument[*0].Field[**filename]", "taint", "dfc-generated"] + - ["", "", True, "DSO_load", "(DSO *,const char *,DSO_METHOD *,int)", "", "Argument[1]", "ReturnValue[*].Field[**filename]", "taint", "dfc-generated"] + - ["", "", True, "DSO_load", "(DSO *,const char *,DSO_METHOD *,int)", "", "Argument[3]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "DSO_load", "(DSO *,const char *,DSO_METHOD *,int)", "", "Argument[3]", "ReturnValue[*].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "DSO_set_filename", "(DSO *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**filename]", "value", "dfc-generated"] + - ["", "", True, "DSO_set_filename", "(DSO *,const char *)", "", "Argument[1]", "Argument[*0].Field[**filename]", "taint", "dfc-generated"] + - ["", "", True, "DTLS_get_data_mtu", "(const SSL *)", "", "Argument[*0].Field[**d1].Field[*mtu]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "DTLS_set_timer_cb", "(SSL *,DTLS_timer_cb)", "", "Argument[1]", "Argument[*0].Field[**d1].Field[*timer_cb]", "value", "dfc-generated"] + - ["", "", True, "ECDH_compute_key", "(void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..))", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ECDSA_SIG_get0", "(const ECDSA_SIG *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ECDSA_SIG_get0", "(const ECDSA_SIG *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ECDSA_SIG_get0", "(const ECDSA_SIG *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ECDSA_SIG_get0", "(const ECDSA_SIG *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ECDSA_SIG_get0_r", "(const ECDSA_SIG *)", "", "Argument[*0].Field[**r]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ECDSA_SIG_get0_r", "(const ECDSA_SIG *)", "", "Argument[*0].Field[*r]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ECDSA_SIG_get0_s", "(const ECDSA_SIG *)", "", "Argument[*0].Field[**s]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ECDSA_SIG_get0_s", "(const ECDSA_SIG *)", "", "Argument[*0].Field[*s]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ECDSA_SIG_set0", "(ECDSA_SIG *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**r]", "value", "dfc-generated"] + - ["", "", True, "ECDSA_SIG_set0", "(ECDSA_SIG *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[**s]", "value", "dfc-generated"] + - ["", "", True, "ECDSA_SIG_set0", "(ECDSA_SIG *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*r]", "value", "dfc-generated"] + - ["", "", True, "ECDSA_SIG_set0", "(ECDSA_SIG *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*s]", "value", "dfc-generated"] + - ["", "", True, "ECPARAMETERS_free", "(ECPARAMETERS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ECPARAMETERS_free", "(ECPARAMETERS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ECPKPARAMETERS_free", "(ECPKPARAMETERS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ECPKPARAMETERS_free", "(ECPKPARAMETERS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "EC_GROUP_copy", "(EC_GROUP *,const EC_GROUP *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_dup", "(const EC_GROUP *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_get0_cofactor", "(const EC_GROUP *)", "", "Argument[*0].Field[**cofactor]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get0_cofactor", "(const EC_GROUP *)", "", "Argument[*0].Field[*cofactor]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get0_field", "(const EC_GROUP *)", "", "Argument[*0].Field[**field]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get0_field", "(const EC_GROUP *)", "", "Argument[*0].Field[*field]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get0_generator", "(const EC_GROUP *)", "", "Argument[*0].Field[**generator]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get0_generator", "(const EC_GROUP *)", "", "Argument[*0].Field[*generator]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get0_order", "(const EC_GROUP *)", "", "Argument[*0].Field[**order]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get0_order", "(const EC_GROUP *)", "", "Argument[*0].Field[*order]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get0_seed", "(const EC_GROUP *)", "", "Argument[*0].Field[**seed]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get0_seed", "(const EC_GROUP *)", "", "Argument[*0].Field[*seed]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get_asn1_flag", "(const EC_GROUP *)", "", "Argument[*0].Field[*asn1_flag]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get_cofactor", "(const EC_GROUP *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_get_curve_name", "(const EC_GROUP *)", "", "Argument[*0].Field[*curve_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get_ecparameters", "(const EC_GROUP *,ECPARAMETERS *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_get_ecparameters", "(const EC_GROUP *,ECPARAMETERS *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_get_ecparameters", "(const EC_GROUP *,ECPARAMETERS *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EC_GROUP_get_ecparameters", "(const EC_GROUP *,ECPARAMETERS *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "EC_GROUP_get_ecparameters", "(const EC_GROUP *,ECPARAMETERS *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "EC_GROUP_get_ecpkparameters", "(const EC_GROUP *,ECPKPARAMETERS *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_get_ecpkparameters", "(const EC_GROUP *,ECPKPARAMETERS *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_get_ecpkparameters", "(const EC_GROUP *,ECPKPARAMETERS *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EC_GROUP_get_ecpkparameters", "(const EC_GROUP *,ECPKPARAMETERS *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "EC_GROUP_get_ecpkparameters", "(const EC_GROUP *,ECPKPARAMETERS *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "EC_GROUP_get_field_type", "(const EC_GROUP *)", "", "Argument[*0].Field[**meth].Field[*field_type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get_mont_data", "(const EC_GROUP *)", "", "Argument[*0].Field[**mont_data]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get_mont_data", "(const EC_GROUP *)", "", "Argument[*0].Field[*mont_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get_order", "(const EC_GROUP *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_get_pentanomial_basis", "(const EC_GROUP *,unsigned int *,unsigned int *,unsigned int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_get_pentanomial_basis", "(const EC_GROUP *,unsigned int *,unsigned int *,unsigned int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_get_pentanomial_basis", "(const EC_GROUP *,unsigned int *,unsigned int *,unsigned int *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_get_point_conversion_form", "(const EC_GROUP *)", "", "Argument[*0].Field[*asn1_form]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get_seed_len", "(const EC_GROUP *)", "", "Argument[*0].Field[*seed_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_get_trinomial_basis", "(const EC_GROUP *,unsigned int *)", "", "Argument[*0].Field[*poly]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_method_of", "(const EC_GROUP *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_method_of", "(const EC_GROUP *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_new", "(const EC_METHOD *)", "", "Argument[*0]", "ReturnValue[*].Field[**meth]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_new", "(const EC_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "EC_GROUP_new_curve_GF2m", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_new_curve_GFp", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_new_from_ecparameters", "(const ECPARAMETERS *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_new_from_params", "(const OSSL_PARAM[],OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_new_from_params", "(const OSSL_PARAM[],OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_new_from_params", "(const OSSL_PARAM[],OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EC_GROUP_new_from_params", "(const OSSL_PARAM[],OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_new_from_params", "(const OSSL_PARAM[],OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "EC_GROUP_set_asn1_flag", "(EC_GROUP *,int)", "", "Argument[1]", "Argument[*0].Field[*asn1_flag]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_set_curve_name", "(EC_GROUP *,int)", "", "Argument[1]", "Argument[*0].Field[*curve_name]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_set_generator", "(EC_GROUP *,const EC_POINT *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_set_generator", "(EC_GROUP *,const EC_POINT *,const BIGNUM *,const BIGNUM *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_GROUP_set_point_conversion_form", "(EC_GROUP *,point_conversion_form_t)", "", "Argument[1]", "Argument[*0].Field[*asn1_form]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_set_seed", "(EC_GROUP *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**seed]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_set_seed", "(EC_GROUP *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**seed]", "taint", "dfc-generated"] + - ["", "", True, "EC_GROUP_set_seed", "(EC_GROUP *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*seed_len]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_set_seed", "(EC_GROUP *,const unsigned char *,size_t)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_to_params", "(const EC_GROUP *,OSSL_LIB_CTX *,const char *,BN_CTX *)", "", "Argument[*1]", "Argument[*3].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_GROUP_to_params", "(const EC_GROUP *,OSSL_LIB_CTX *,const char *,BN_CTX *)", "", "Argument[1]", "Argument[*3].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_get_compute_key", "(const EC_KEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*compute_key]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_get_init", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..))", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_METHOD_get_init", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..))", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_METHOD_get_init", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..))", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_METHOD_get_init", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..))", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_METHOD_get_init", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..))", "", "Argument[*0]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_METHOD_get_init", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..))", "", "Argument[*0]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_METHOD_get_keygen", "(const EC_KEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*keygen]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_get_sign", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..))", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_METHOD_get_sign", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..))", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_METHOD_get_sign", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..))", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_METHOD_get_verify", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*verify]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_get_verify", "(const EC_KEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*verify_sig]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_new", "(const EC_KEY_METHOD *)", "", "Argument[*0].Field[*flags]", "ReturnValue[*].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_new", "(const EC_KEY_METHOD *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_new", "(const EC_KEY_METHOD *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_new", "(const EC_KEY_METHOD *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_compute_key", "(EC_KEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*compute_key]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_init", "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*init]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_init", "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*finish]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_init", "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[3]", "Argument[*0].Field[*copy]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_init", "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[4]", "Argument[*0].Field[*set_group]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_init", "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[5]", "Argument[*0].Field[*set_private]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_init", "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[6]", "Argument[*0].Field[*set_public]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_keygen", "(EC_KEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*keygen]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_sign", "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*sign]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_sign", "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*sign_setup]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_sign", "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..))", "", "Argument[3]", "Argument[*0].Field[*sign_sig]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_verify", "(EC_KEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*verify]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_METHOD_set_verify", "(EC_KEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*verify_sig]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_clear_flags", "(EC_KEY *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_copy", "(EC_KEY *,const EC_KEY *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EC_KEY_copy", "(EC_KEY *,const EC_KEY *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_decoded_from_explicit_params", "(const EC_KEY *)", "", "Argument[*0].Field[**group].Field[*decoded_from_explicit_params]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_dup", "(const EC_KEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_get0_engine", "(const EC_KEY *)", "", "Argument[*0].Field[**engine]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get0_engine", "(const EC_KEY *)", "", "Argument[*0].Field[*engine]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get0_group", "(const EC_KEY *)", "", "Argument[*0].Field[**group]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get0_group", "(const EC_KEY *)", "", "Argument[*0].Field[*group]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get0_private_key", "(const EC_KEY *)", "", "Argument[*0].Field[**priv_key]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get0_private_key", "(const EC_KEY *)", "", "Argument[*0].Field[*priv_key]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get0_public_key", "(const EC_KEY *)", "", "Argument[*0].Field[**pub_key]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get0_public_key", "(const EC_KEY *)", "", "Argument[*0].Field[*pub_key]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get_conv_form", "(const EC_KEY *)", "", "Argument[*0].Field[*conv_form]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get_enc_flags", "(const EC_KEY *)", "", "Argument[*0].Field[*enc_flag]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get_ex_data", "(const EC_KEY *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_get_flags", "(const EC_KEY *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get_method", "(const EC_KEY *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_get_method", "(const EC_KEY *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_key2buf", "(const EC_KEY *,point_conversion_form_t,unsigned char **,BN_CTX *)", "", "Argument[1]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**group].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**group].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[**group].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[**group].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_new_by_curve_name_ex", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_new_method", "(ENGINE *)", "", "Argument[0]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_oct2key", "(EC_KEY *,const unsigned char *,size_t,BN_CTX *)", "", "Argument[*1]", "Argument[*0].Field[*conv_form]", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_oct2key", "(EC_KEY *,const unsigned char *,size_t,BN_CTX *)", "", "Argument[1]", "Argument[*0].Field[*conv_form]", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_set_asn1_flag", "(EC_KEY *,int)", "", "Argument[1]", "Argument[*0].Field[**group].Field[*asn1_flag]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_set_conv_form", "(EC_KEY *,point_conversion_form_t)", "", "Argument[1]", "Argument[*0].Field[**group].Field[*asn1_form]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_set_conv_form", "(EC_KEY *,point_conversion_form_t)", "", "Argument[1]", "Argument[*0].Field[*conv_form]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_set_enc_flags", "(EC_KEY *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*enc_flag]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_set_flags", "(EC_KEY *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "EC_KEY_set_group", "(EC_KEY *,const EC_GROUP *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_KEY_set_method", "(EC_KEY *,const EC_KEY_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**meth]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_set_method", "(EC_KEY *,const EC_KEY_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "EC_KEY_set_private_key", "(EC_KEY *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_METHOD_get_field_type", "(const EC_METHOD *)", "", "Argument[*0].Field[*field_type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_bn2point", "(const EC_GROUP *,const BIGNUM *,EC_POINT *,BN_CTX *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_bn2point", "(const EC_GROUP *,const BIGNUM *,EC_POINT *,BN_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EC_POINT_bn2point", "(const EC_GROUP *,const BIGNUM *,EC_POINT *,BN_CTX *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_dup", "(const EC_POINT *,const EC_GROUP *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_get_Jprojective_coordinates_GFp", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_get_Jprojective_coordinates_GFp", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_get_Jprojective_coordinates_GFp", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_get_Jprojective_coordinates_GFp", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_hex2point", "(const EC_GROUP *,const char *,EC_POINT *,BN_CTX *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_hex2point", "(const EC_GROUP *,const char *,EC_POINT *,BN_CTX *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_method_of", "(const EC_POINT *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_method_of", "(const EC_POINT *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "EC_POINT_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *)", "", "Argument[*4]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "EC_POINT_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "EC_POINT_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *)", "", "Argument[4]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EC_POINT_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "EC_POINT_new", "(const EC_GROUP *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_oct2point", "(const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_oct2point", "(const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_point2bn", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BIGNUM *,BN_CTX *)", "", "Argument[*3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EC_POINT_point2bn", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BIGNUM *,BN_CTX *)", "", "Argument[2]", "Argument[*3].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "EC_POINT_point2bn", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BIGNUM *,BN_CTX *)", "", "Argument[2]", "ReturnValue[*].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "EC_POINT_point2bn", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BIGNUM *,BN_CTX *)", "", "Argument[3]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_point2buf", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char **,BN_CTX *)", "", "Argument[2]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_point2hex", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_point2oct", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *)", "", "Argument[2]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_point2oct", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "EC_POINT_set_Jprojective_coordinates_GFp", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4].Field[*neg]", "Argument[*0].Field[**field].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_set_Jprojective_coordinates_GFp", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4].Field[*neg]", "Argument[*1].Field[**Z].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "EC_POINT_set_compressed_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_set_compressed_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_set_compressed_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_set_compressed_coordinates_GF2m", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_set_compressed_coordinates_GF2m", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_set_compressed_coordinates_GF2m", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_set_compressed_coordinates_GFp", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_set_compressed_coordinates_GFp", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_POINT_set_compressed_coordinates_GFp", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EC_POINTs_make_affine", "(const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "EC_POINTs_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)", "", "Argument[**5]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "EC_POINTs_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)", "", "Argument[*2]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "EC_POINTs_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)", "", "Argument[*4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "EC_POINTs_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)", "", "Argument[*5]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "EC_POINTs_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)", "", "Argument[*5]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EC_PRIVATEKEY_free", "(EC_PRIVATEKEY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "EC_PRIVATEKEY_free", "(EC_PRIVATEKEY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "EC_ec_pre_comp_dup", "(EC_PRE_COMP *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EC_ec_pre_comp_dup", "(EC_PRE_COMP *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EC_nistz256_pre_comp_dup", "(NISTZ256_PRE_COMP *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EC_nistz256_pre_comp_dup", "(NISTZ256_PRE_COMP *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EDIPARTYNAME_free", "(EDIPARTYNAME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "EDIPARTYNAME_free", "(EDIPARTYNAME *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ENGINE_add", "(ENGINE *)", "", "Argument[*0]", "Argument[*0].Field[**prev].Field[**next]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_add", "(ENGINE *)", "", "Argument[0]", "Argument[*0].Field[**prev].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_cmd_is_executable", "(ENGINE *,int)", "", "Argument[*0].Field[*cmd_defns]", "Argument[*0].Field[**cmd_defns]", "taint", "dfc-generated"] + - ["", "", True, "ENGINE_ctrl", "(ENGINE *,int,long,void *,..(*)(..))", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ENGINE_ctrl", "(ENGINE *,int,long,void *,..(*)(..))", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ENGINE_ctrl_cmd", "(ENGINE *,const char *,long,void *,..(*)(..),int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ENGINE_ctrl_cmd", "(ENGINE *,const char *,long,void *,..(*)(..),int)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ENGINE_ctrl_cmd_string", "(ENGINE *,const char *,const char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ENGINE_ctrl_cmd_string", "(ENGINE *,const char *,const char *,int)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ENGINE_get_DH", "(const ENGINE *)", "", "Argument[*0].Field[**dh_meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_DH", "(const ENGINE *)", "", "Argument[*0].Field[*dh_meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_DSA", "(const ENGINE *)", "", "Argument[*0].Field[**dsa_meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_DSA", "(const ENGINE *)", "", "Argument[*0].Field[*dsa_meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_EC", "(const ENGINE *)", "", "Argument[*0].Field[**ec_meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_EC", "(const ENGINE *)", "", "Argument[*0].Field[*ec_meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_RAND", "(const ENGINE *)", "", "Argument[*0].Field[**rand_meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_RAND", "(const ENGINE *)", "", "Argument[*0].Field[*rand_meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_RSA", "(const ENGINE *)", "", "Argument[*0].Field[**rsa_meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_RSA", "(const ENGINE *)", "", "Argument[*0].Field[*rsa_meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_ciphers", "(const ENGINE *)", "", "Argument[*0].Field[*ciphers]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_cmd_defns", "(const ENGINE *)", "", "Argument[*0].Field[**cmd_defns]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_cmd_defns", "(const ENGINE *)", "", "Argument[*0].Field[*cmd_defns]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_ctrl_function", "(const ENGINE *)", "", "Argument[*0].Field[*ctrl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_destroy_function", "(const ENGINE *)", "", "Argument[*0].Field[*destroy]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_digests", "(const ENGINE *)", "", "Argument[*0].Field[*digests]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_ex_data", "(const ENGINE *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ENGINE_get_finish_function", "(const ENGINE *)", "", "Argument[*0].Field[*finish]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_flags", "(const ENGINE *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_id", "(const ENGINE *)", "", "Argument[*0].Field[**id]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_id", "(const ENGINE *)", "", "Argument[*0].Field[*id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_init_function", "(const ENGINE *)", "", "Argument[*0].Field[*init]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_load_privkey_function", "(const ENGINE *)", "", "Argument[*0].Field[*load_privkey]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_load_pubkey_function", "(const ENGINE *)", "", "Argument[*0].Field[*load_pubkey]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_name", "(const ENGINE *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_name", "(const ENGINE *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_next", "(ENGINE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ENGINE_get_next", "(ENGINE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ENGINE_get_pkey_asn1_meths", "(const ENGINE *)", "", "Argument[*0].Field[*pkey_asn1_meths]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_pkey_meths", "(const ENGINE *)", "", "Argument[*0].Field[*pkey_meths]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_get_prev", "(ENGINE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ENGINE_get_prev", "(ENGINE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ENGINE_get_ssl_client_cert_function", "(const ENGINE *)", "", "Argument[*0].Field[*load_ssl_client_cert]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_DH", "(ENGINE *,const DH_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**dh_meth]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_DH", "(ENGINE *,const DH_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*dh_meth]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_DSA", "(ENGINE *,const DSA_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**dsa_meth]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_DSA", "(ENGINE *,const DSA_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*dsa_meth]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_EC", "(ENGINE *,const EC_KEY_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**ec_meth]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_EC", "(ENGINE *,const EC_KEY_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*ec_meth]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_RAND", "(ENGINE *,const RAND_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**rand_meth]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_RAND", "(ENGINE *,const RAND_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*rand_meth]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_RSA", "(ENGINE *,const RSA_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**rsa_meth]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_RSA", "(ENGINE *,const RSA_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*rsa_meth]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_ciphers", "(ENGINE *,ENGINE_CIPHERS_PTR)", "", "Argument[1]", "Argument[*0].Field[*ciphers]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_cmd_defns", "(ENGINE *,const ENGINE_CMD_DEFN *)", "", "Argument[*1]", "Argument[*0].Field[**cmd_defns]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_cmd_defns", "(ENGINE *,const ENGINE_CMD_DEFN *)", "", "Argument[1]", "Argument[*0].Field[*cmd_defns]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_ctrl_function", "(ENGINE *,ENGINE_CTRL_FUNC_PTR)", "", "Argument[1]", "Argument[*0].Field[*ctrl]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_destroy_function", "(ENGINE *,ENGINE_GEN_INT_FUNC_PTR)", "", "Argument[1]", "Argument[*0].Field[*destroy]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_digests", "(ENGINE *,ENGINE_DIGESTS_PTR)", "", "Argument[1]", "Argument[*0].Field[*digests]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_finish_function", "(ENGINE *,ENGINE_GEN_INT_FUNC_PTR)", "", "Argument[1]", "Argument[*0].Field[*finish]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_flags", "(ENGINE *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_id", "(ENGINE *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**id]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_id", "(ENGINE *,const char *)", "", "Argument[1]", "Argument[*0].Field[*id]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_init_function", "(ENGINE *,ENGINE_GEN_INT_FUNC_PTR)", "", "Argument[1]", "Argument[*0].Field[*init]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_load_privkey_function", "(ENGINE *,ENGINE_LOAD_KEY_PTR)", "", "Argument[1]", "Argument[*0].Field[*load_privkey]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_load_pubkey_function", "(ENGINE *,ENGINE_LOAD_KEY_PTR)", "", "Argument[1]", "Argument[*0].Field[*load_pubkey]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_load_ssl_client_cert_function", "(ENGINE *,ENGINE_SSL_CLIENT_CERT_PTR)", "", "Argument[1]", "Argument[*0].Field[*load_ssl_client_cert]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_name", "(ENGINE *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_name", "(ENGINE *,const char *)", "", "Argument[1]", "Argument[*0].Field[*name]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_pkey_asn1_meths", "(ENGINE *,ENGINE_PKEY_ASN1_METHS_PTR)", "", "Argument[1]", "Argument[*0].Field[*pkey_asn1_meths]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_set_pkey_meths", "(ENGINE *,ENGINE_PKEY_METHS_PTR)", "", "Argument[1]", "Argument[*0].Field[*pkey_meths]", "value", "dfc-generated"] + - ["", "", True, "ENGINE_unregister_DH", "(ENGINE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ENGINE_unregister_DSA", "(ENGINE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ENGINE_unregister_EC", "(ENGINE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ENGINE_unregister_RAND", "(ENGINE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ENGINE_unregister_RSA", "(ENGINE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ENGINE_unregister_ciphers", "(ENGINE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ENGINE_unregister_digests", "(ENGINE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ENGINE_unregister_pkey_asn1_meths", "(ENGINE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ENGINE_unregister_pkey_meths", "(ENGINE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_add_error_vdata", "(int,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ERR_error_string", "(unsigned long,char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ERR_error_string", "(unsigned long,char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ERR_get_error_all", "(const char **,int *,const char **,const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_get_error_all", "(const char **,int *,const char **,const char **,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ERR_get_error_all", "(const char **,int *,const char **,const char **,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ERR_get_error_line", "(const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_get_error_line_data", "(const char **,int *,const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_get_error_line_data", "(const char **,int *,const char **,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ERR_load_strings", "(int,ERR_STRING_DATA *)", "", "Argument[0]", "Argument[*1].Field[*error]", "taint", "dfc-generated"] + - ["", "", True, "ERR_load_strings", "(int,ERR_STRING_DATA *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ERR_load_strings_const", "(const ERR_STRING_DATA *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_error_all", "(const char **,int *,const char **,const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_error_all", "(const char **,int *,const char **,const char **,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_error_all", "(const char **,int *,const char **,const char **,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_error_data", "(const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_error_func", "(const char **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_error_line", "(const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_error_line_data", "(const char **,int *,const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_error_line_data", "(const char **,int *,const char **,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_last_error_all", "(const char **,int *,const char **,const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_last_error_all", "(const char **,int *,const char **,const char **,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_last_error_all", "(const char **,int *,const char **,const char **,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_last_error_data", "(const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_last_error_func", "(const char **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_last_error_line", "(const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_last_error_line_data", "(const char **,int *,const char **,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ERR_peek_last_error_line_data", "(const char **,int *,const char **,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ERR_unload_strings", "(int,ERR_STRING_DATA *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ERR_vset_error", "(int,int,const char *,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ESS_CERT_ID_V2_dup", "(const ESS_CERT_ID_V2 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ESS_CERT_ID_V2_dup", "(const ESS_CERT_ID_V2 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ESS_CERT_ID_V2_dup", "(const ESS_CERT_ID_V2 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ESS_CERT_ID_V2_dup", "(const ESS_CERT_ID_V2 *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ESS_CERT_ID_V2_dup", "(const ESS_CERT_ID_V2 *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ESS_CERT_ID_V2_free", "(ESS_CERT_ID_V2 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ESS_CERT_ID_V2_free", "(ESS_CERT_ID_V2 *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ESS_CERT_ID_dup", "(const ESS_CERT_ID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ESS_CERT_ID_dup", "(const ESS_CERT_ID *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ESS_CERT_ID_dup", "(const ESS_CERT_ID *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ESS_CERT_ID_dup", "(const ESS_CERT_ID *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ESS_CERT_ID_dup", "(const ESS_CERT_ID *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ESS_CERT_ID_free", "(ESS_CERT_ID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ESS_CERT_ID_free", "(ESS_CERT_ID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ESS_ISSUER_SERIAL_dup", "(const ESS_ISSUER_SERIAL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ESS_ISSUER_SERIAL_dup", "(const ESS_ISSUER_SERIAL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ESS_ISSUER_SERIAL_dup", "(const ESS_ISSUER_SERIAL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ESS_ISSUER_SERIAL_dup", "(const ESS_ISSUER_SERIAL *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ESS_ISSUER_SERIAL_dup", "(const ESS_ISSUER_SERIAL *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ESS_ISSUER_SERIAL_free", "(ESS_ISSUER_SERIAL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ESS_ISSUER_SERIAL_free", "(ESS_ISSUER_SERIAL *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_V2_dup", "(const ESS_SIGNING_CERT_V2 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_V2_dup", "(const ESS_SIGNING_CERT_V2 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_V2_dup", "(const ESS_SIGNING_CERT_V2 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_V2_dup", "(const ESS_SIGNING_CERT_V2 *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_V2_dup", "(const ESS_SIGNING_CERT_V2 *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_V2_free", "(ESS_SIGNING_CERT_V2 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_V2_free", "(ESS_SIGNING_CERT_V2 *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_dup", "(const ESS_SIGNING_CERT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_dup", "(const ESS_SIGNING_CERT *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_dup", "(const ESS_SIGNING_CERT *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_dup", "(const ESS_SIGNING_CERT *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_dup", "(const ESS_SIGNING_CERT *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_free", "(ESS_SIGNING_CERT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ESS_SIGNING_CERT_free", "(ESS_SIGNING_CERT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "EVP_ASYM_CIPHER_get0_description", "(const EVP_ASYM_CIPHER *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_ASYM_CIPHER_get0_description", "(const EVP_ASYM_CIPHER *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_ASYM_CIPHER_get0_name", "(const EVP_ASYM_CIPHER *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_ASYM_CIPHER_get0_name", "(const EVP_ASYM_CIPHER *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_ASYM_CIPHER_get0_provider", "(const EVP_ASYM_CIPHER *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_ASYM_CIPHER_get0_provider", "(const EVP_ASYM_CIPHER *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_ASYM_CIPHER_names_do_all", "(const EVP_ASYM_CIPHER *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_BytesToKey", "(const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *)", "", "Argument[*0].Field[*key_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_BytesToKey", "(const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "EVP_BytesToKey", "(const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_buf_noconst", "(EVP_CIPHER_CTX *)", "", "Argument[*0].Field[*buf]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_cipher", "(const EVP_CIPHER_CTX *)", "", "Argument[*0].Field[**cipher]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_cipher", "(const EVP_CIPHER_CTX *)", "", "Argument[*0].Field[*cipher]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_clear_flags", "(EVP_CIPHER_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_copy", "(EVP_CIPHER_CTX *,const EVP_CIPHER_CTX *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_copy", "(EVP_CIPHER_CTX *,const EVP_CIPHER_CTX *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_copy", "(EVP_CIPHER_CTX *,const EVP_CIPHER_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_ctrl", "(EVP_CIPHER_CTX *,int,int,void *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_dup", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_dup", "(const EVP_CIPHER_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_dup", "(const EVP_CIPHER_CTX *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get0_cipher", "(const EVP_CIPHER_CTX *)", "", "Argument[*0].Field[**cipher]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get0_cipher", "(const EVP_CIPHER_CTX *)", "", "Argument[*0].Field[*cipher]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get1_cipher", "(EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get1_cipher", "(EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_algor", "(EVP_CIPHER_CTX *,X509_ALGOR **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_algor", "(EVP_CIPHER_CTX *,X509_ALGOR **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_algor", "(EVP_CIPHER_CTX *,X509_ALGOR **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_algor", "(EVP_CIPHER_CTX *,X509_ALGOR **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_app_data", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_app_data", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_app_data", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_block_size", "(const EVP_CIPHER_CTX *)", "", "Argument[*0].Field[**cipher].Field[*block_size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_cipher_data", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_cipher_data", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_cipher_data", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_iv_length", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_key_length", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_nid", "(const EVP_CIPHER_CTX *)", "", "Argument[*0].Field[**cipher].Field[*nid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_get_num", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_is_encrypting", "(const EVP_CIPHER_CTX *)", "", "Argument[*0].Field[*encrypt]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_iv", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_iv_noconst", "(EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_original_iv", "(const EVP_CIPHER_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_CTX_rand_key", "(EVP_CIPHER_CTX *,unsigned char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_app_data", "(EVP_CIPHER_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***app_data]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_app_data", "(EVP_CIPHER_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**app_data]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_app_data", "(EVP_CIPHER_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*app_data]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_cipher_data", "(EVP_CIPHER_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***cipher_data]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_cipher_data", "(EVP_CIPHER_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**cipher_data]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_cipher_data", "(EVP_CIPHER_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*cipher_data]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_flags", "(EVP_CIPHER_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_key_length", "(EVP_CIPHER_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*key_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_key_length", "(EVP_CIPHER_CTX *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_num", "(EVP_CIPHER_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_set_params", "(EVP_CIPHER_CTX *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_test_flags", "(const EVP_CIPHER_CTX *,int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_CTX_test_flags", "(const EVP_CIPHER_CTX *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get0_description", "(const EVP_CIPHER *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get0_description", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get0_name", "(const EVP_CIPHER *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get0_name", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get0_provider", "(const EVP_CIPHER *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get0_provider", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get_block_size", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*block_size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get_flags", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get_iv_length", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*iv_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get_key_length", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*key_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get_mode", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get_nid", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*nid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_get_type", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*nid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_impl_ctx_size", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*ctx_size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_dup", "(const EVP_CIPHER *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EVP_CIPHER_meth_dup", "(const EVP_CIPHER *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_get_cleanup", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*cleanup]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_get_ctrl", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*ctrl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_get_do_cipher", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*do_cipher]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_get_get_asn1_params", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*get_asn1_parameters]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_get_init", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*init]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_get_set_asn1_params", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*set_asn1_parameters]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_new", "(int,int,int)", "", "Argument[0]", "ReturnValue[*].Field[*nid]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_new", "(int,int,int)", "", "Argument[1]", "ReturnValue[*].Field[*block_size]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_new", "(int,int,int)", "", "Argument[2]", "ReturnValue[*].Field[*key_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_set_cleanup", "(EVP_CIPHER *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*cleanup]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_set_ctrl", "(EVP_CIPHER *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ctrl]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_set_do_cipher", "(EVP_CIPHER *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*do_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_set_flags", "(EVP_CIPHER *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_set_get_asn1_params", "(EVP_CIPHER *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*get_asn1_parameters]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_set_impl_ctx_size", "(EVP_CIPHER *,int)", "", "Argument[1]", "Argument[*0].Field[*ctx_size]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_set_init", "(EVP_CIPHER *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*init]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_set_iv_length", "(EVP_CIPHER *,int)", "", "Argument[1]", "Argument[*0].Field[*iv_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_meth_set_set_asn1_params", "(EVP_CIPHER *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*set_asn1_parameters]", "value", "dfc-generated"] + - ["", "", True, "EVP_CIPHER_names_do_all", "(const EVP_CIPHER *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_param_to_asn1", "(EVP_CIPHER_CTX *,ASN1_TYPE *)", "", "Argument[*1]", "Argument[1]", "taint", "df-generated"] + - ["", "", True, "EVP_CIPHER_set_asn1_iv", "(EVP_CIPHER_CTX *,ASN1_TYPE *)", "", "Argument[*1]", "Argument[1]", "taint", "df-generated"] + - ["", "", True, "EVP_CipherFinal", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EVP_CipherFinal", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_CipherFinal_ex", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EVP_CipherFinal_ex", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_CipherInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int)", "", "Argument[3]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int)", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int)", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int)", "", "Argument[4]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_SKEY", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_SKEY", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_SKEY", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)", "", "Argument[*4]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)", "", "Argument[*4]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)", "", "Argument[*4]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)", "", "Argument[4]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)", "", "Argument[4]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)", "", "Argument[4]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)", "", "Argument[5]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherPipelineDecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherPipelineDecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t)", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherPipelineDecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t)", "", "Argument[4]", "Argument[*0].Field[*numpipes]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherPipelineEncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherPipelineEncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t)", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherPipelineEncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t)", "", "Argument[4]", "Argument[*0].Field[*numpipes]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*final]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*2]", "Argument[*0].Field[*final]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "EVP_CipherUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*final]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*final]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[3]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "EVP_CipherUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[4]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "EVP_DecodeBlock", "(unsigned char *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecodeBlock", "(unsigned char *,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecodeBlock", "(unsigned char *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecodeFinal", "(EVP_ENCODE_CTX *,unsigned char *,int *)", "", "Argument[*0].Field[*enc_data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecodeFinal", "(EVP_ENCODE_CTX *,unsigned char *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecodeUpdate", "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*0].Field[*enc_data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecodeUpdate", "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecodeUpdate", "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecodeUpdate", "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptFinal", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EVP_DecryptFinal", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_DecryptFinal_ex", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EVP_DecryptFinal_ex", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_DecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[*3]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[3]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[*4]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[*4]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[*4]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[2]", "Argument[*0].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[4]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[4]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[4]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*final]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*2]", "Argument[*0].Field[*final]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "EVP_DecryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*final]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*final]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[3]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DecryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[4]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "EVP_DigestFinal", "(EVP_MD_CTX *,unsigned char *,unsigned int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_DigestFinal_ex", "(EVP_MD_CTX *,unsigned char *,unsigned int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_DigestInit", "(EVP_MD_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*digest]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestInit", "(EVP_MD_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*fetched_digest]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestInit", "(EVP_MD_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*reqdigest]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestInit_ex2", "(EVP_MD_CTX *,const EVP_MD *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*digest]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestInit_ex2", "(EVP_MD_CTX *,const EVP_MD *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*fetched_digest]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestInit_ex2", "(EVP_MD_CTX *,const EVP_MD *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*reqdigest]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestInit_ex", "(EVP_MD_CTX *,const EVP_MD *,ENGINE *)", "", "Argument[1]", "Argument[*0].Field[*digest]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestInit_ex", "(EVP_MD_CTX *,const EVP_MD *,ENGINE *)", "", "Argument[1]", "Argument[*0].Field[*fetched_digest]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestInit_ex", "(EVP_MD_CTX *,const EVP_MD *,ENGINE *)", "", "Argument[1]", "Argument[*0].Field[*reqdigest]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestInit_ex", "(EVP_MD_CTX *,const EVP_MD *,ENGINE *)", "", "Argument[2]", "Argument[*0].Field[**pctx].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestInit_ex", "(EVP_MD_CTX *,const EVP_MD *,ENGINE *)", "", "Argument[2]", "Argument[*0].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSign", "(EVP_MD_CTX *,unsigned char *,size_t *,const unsigned char *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DigestSign", "(EVP_MD_CTX *,unsigned char *,size_t *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DigestSignFinal", "(EVP_MD_CTX *,unsigned char *,size_t *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DigestSignFinal", "(EVP_MD_CTX *,unsigned char *,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)", "", "Argument[3]", "Argument[**1].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)", "", "Argument[3]", "Argument[*0].Field[**pctx].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)", "", "Argument[3]", "Argument[*0].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)", "", "Argument[4]", "Argument[**1].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)", "", "Argument[4]", "Argument[*0].Field[**pctx].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[**1].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[**pctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[*4]", "Argument[**1].Field[**propquery]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[*4]", "Argument[*0].Field[**pctx].Field[**propquery]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[**1].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**pctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[4]", "Argument[**1].Field[**propquery]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**pctx].Field[**propquery]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[5]", "Argument[**1].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestSignInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*0].Field[**pctx].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerify", "(EVP_MD_CTX *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyFinal", "(EVP_MD_CTX *,const unsigned char *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)", "", "Argument[3]", "Argument[**1].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)", "", "Argument[3]", "Argument[*0].Field[**pctx].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)", "", "Argument[3]", "Argument[*0].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)", "", "Argument[4]", "Argument[**1].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)", "", "Argument[4]", "Argument[*0].Field[**pctx].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[**1].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[**pctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[*4]", "Argument[**1].Field[**propquery]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[*4]", "Argument[*0].Field[**pctx].Field[**propquery]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[**1].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**pctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[4]", "Argument[**1].Field[**propquery]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**pctx].Field[**propquery]", "taint", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[5]", "Argument[**1].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_DigestVerifyInit_ex", "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*0].Field[**pctx].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_ENCODE_CTX_copy", "(EVP_ENCODE_CTX *,const EVP_ENCODE_CTX *)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "EVP_ENCODE_CTX_copy", "(EVP_ENCODE_CTX *,const EVP_ENCODE_CTX *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_ENCODE_CTX_num", "(EVP_ENCODE_CTX *)", "", "Argument[*0].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_EncodeBlock", "(unsigned char *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncodeBlock", "(unsigned char *,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncodeBlock", "(unsigned char *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncodeFinal", "(EVP_ENCODE_CTX *,unsigned char *,int *)", "", "Argument[*0].Field[*enc_data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncodeFinal", "(EVP_ENCODE_CTX *,unsigned char *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncodeUpdate", "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*0].Field[*enc_data]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncodeUpdate", "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncodeUpdate", "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncodeUpdate", "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[3]", "Argument[*0].Field[*enc_data]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncodeUpdate", "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncodeUpdate", "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[4]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptFinal", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_EncryptFinal_ex", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_EncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[*3]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[3]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex2", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[*4]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[*4]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[*4]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[2]", "Argument[*0].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[4]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[4]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptInit_ex", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)", "", "Argument[4]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "EVP_EncryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[3]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[4]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[4]", "Argument[*0].Field[*buf_len]", "taint", "dfc-generated"] + - ["", "", True, "EVP_EncryptUpdate", "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)", "", "Argument[4]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_KDF_CTX_dup", "(const EVP_KDF_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EVP_KDF_CTX_dup", "(const EVP_KDF_CTX *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "EVP_KDF_CTX_kdf", "(EVP_KDF_CTX *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KDF_CTX_kdf", "(EVP_KDF_CTX *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KDF_CTX_new", "(EVP_KDF *)", "", "Argument[0]", "ReturnValue[*].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "EVP_KDF_get0_description", "(const EVP_KDF *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KDF_get0_description", "(const EVP_KDF *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KDF_get0_name", "(const EVP_KDF *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KDF_get0_name", "(const EVP_KDF *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KDF_get0_provider", "(const EVP_KDF *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KDF_get0_provider", "(const EVP_KDF *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KDF_names_do_all", "(const EVP_KDF *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_KEM_get0_description", "(const EVP_KEM *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KEM_get0_description", "(const EVP_KEM *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KEM_get0_name", "(const EVP_KEM *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KEM_get0_name", "(const EVP_KEM *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KEM_get0_provider", "(const EVP_KEM *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KEM_get0_provider", "(const EVP_KEM *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KEM_names_do_all", "(const EVP_KEM *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_KEYEXCH_get0_description", "(const EVP_KEYEXCH *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYEXCH_get0_description", "(const EVP_KEYEXCH *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYEXCH_get0_name", "(const EVP_KEYEXCH *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYEXCH_get0_name", "(const EVP_KEYEXCH *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYEXCH_get0_provider", "(const EVP_KEYEXCH *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYEXCH_get0_provider", "(const EVP_KEYEXCH *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYEXCH_names_do_all", "(const EVP_KEYEXCH *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_KEYMGMT_get0_description", "(const EVP_KEYMGMT *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYMGMT_get0_description", "(const EVP_KEYMGMT *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYMGMT_get0_name", "(const EVP_KEYMGMT *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYMGMT_get0_name", "(const EVP_KEYMGMT *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYMGMT_get0_provider", "(const EVP_KEYMGMT *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYMGMT_get0_provider", "(const EVP_KEYMGMT *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_KEYMGMT_names_do_all", "(const EVP_KEYMGMT *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_MAC_CTX_dup", "(const EVP_MAC_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EVP_MAC_CTX_dup", "(const EVP_MAC_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MAC_CTX_dup", "(const EVP_MAC_CTX *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MAC_CTX_get0_mac", "(EVP_MAC_CTX *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_MAC_CTX_get0_mac", "(EVP_MAC_CTX *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MAC_CTX_new", "(EVP_MAC *)", "", "Argument[*0]", "ReturnValue[*].Field[**meth]", "value", "dfc-generated"] + - ["", "", True, "EVP_MAC_CTX_new", "(EVP_MAC *)", "", "Argument[0]", "ReturnValue[*].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "EVP_MAC_get0_description", "(const EVP_MAC *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_MAC_get0_description", "(const EVP_MAC *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MAC_get0_name", "(const EVP_MAC *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_MAC_get0_name", "(const EVP_MAC *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MAC_get0_provider", "(const EVP_MAC *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_MAC_get0_provider", "(const EVP_MAC *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MAC_names_do_all", "(const EVP_MAC *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_MD_CTX_clear_flags", "(EVP_MD_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_copy", "(EVP_MD_CTX *,const EVP_MD_CTX *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "EVP_MD_CTX_copy", "(EVP_MD_CTX *,const EVP_MD_CTX *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_copy", "(EVP_MD_CTX *,const EVP_MD_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_copy_ex", "(EVP_MD_CTX *,const EVP_MD_CTX *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "EVP_MD_CTX_copy_ex", "(EVP_MD_CTX *,const EVP_MD_CTX *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_copy_ex", "(EVP_MD_CTX *,const EVP_MD_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_dup", "(const EVP_MD_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EVP_MD_CTX_dup", "(const EVP_MD_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_dup", "(const EVP_MD_CTX *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_get0_md", "(const EVP_MD_CTX *)", "", "Argument[*0].Field[**reqdigest]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_get0_md", "(const EVP_MD_CTX *)", "", "Argument[*0].Field[*reqdigest]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_get0_md_data", "(const EVP_MD_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_MD_CTX_get0_md_data", "(const EVP_MD_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "EVP_MD_CTX_get0_md_data", "(const EVP_MD_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_MD_CTX_get1_md", "(EVP_MD_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_MD_CTX_get1_md", "(EVP_MD_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_MD_CTX_get_pkey_ctx", "(const EVP_MD_CTX *)", "", "Argument[*0].Field[**pctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_get_pkey_ctx", "(const EVP_MD_CTX *)", "", "Argument[*0].Field[*pctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_get_size_ex", "(const EVP_MD_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_MD_CTX_md", "(const EVP_MD_CTX *)", "", "Argument[*0].Field[**reqdigest]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_md", "(const EVP_MD_CTX *)", "", "Argument[*0].Field[*reqdigest]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_set_flags", "(EVP_MD_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_set_pkey_ctx", "(EVP_MD_CTX *,EVP_PKEY_CTX *)", "", "Argument[*1]", "Argument[*0].Field[**pctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_set_pkey_ctx", "(EVP_MD_CTX *,EVP_PKEY_CTX *)", "", "Argument[1]", "Argument[*0].Field[*pctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_set_update_fn", "(EVP_MD_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*update]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_test_flags", "(const EVP_MD_CTX *,int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_test_flags", "(const EVP_MD_CTX *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_CTX_update_fn", "(EVP_MD_CTX *)", "", "Argument[*0].Field[*update]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get0_description", "(const EVP_MD *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get0_description", "(const EVP_MD *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get0_name", "(const EVP_MD *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get0_name", "(const EVP_MD *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get0_provider", "(const EVP_MD *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get0_provider", "(const EVP_MD *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get_block_size", "(const EVP_MD *)", "", "Argument[*0].Field[*block_size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get_flags", "(const EVP_MD *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get_pkey_type", "(const EVP_MD *)", "", "Argument[*0].Field[*pkey_type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get_size", "(const EVP_MD *)", "", "Argument[*0].Field[*md_size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_get_type", "(const EVP_MD *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_dup", "(const EVP_MD *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EVP_MD_meth_dup", "(const EVP_MD *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_get_app_datasize", "(const EVP_MD *)", "", "Argument[*0].Field[*ctx_size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_get_cleanup", "(const EVP_MD *)", "", "Argument[*0].Field[*cleanup]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_get_copy", "(const EVP_MD *)", "", "Argument[*0].Field[*copy]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_get_ctrl", "(const EVP_MD *)", "", "Argument[*0].Field[*md_ctrl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_get_final", "(const EVP_MD *)", "", "Argument[*0].Field[*final]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_get_flags", "(const EVP_MD *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_get_init", "(const EVP_MD *)", "", "Argument[*0].Field[*init]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_get_input_blocksize", "(const EVP_MD *)", "", "Argument[*0].Field[*block_size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_get_result_size", "(const EVP_MD *)", "", "Argument[*0].Field[*md_size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_get_update", "(const EVP_MD *)", "", "Argument[*0].Field[*update]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_new", "(int,int)", "", "Argument[0]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_new", "(int,int)", "", "Argument[1]", "ReturnValue[*].Field[*pkey_type]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_set_app_datasize", "(EVP_MD *,int)", "", "Argument[1]", "Argument[*0].Field[*ctx_size]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_set_cleanup", "(EVP_MD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*cleanup]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_set_copy", "(EVP_MD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*copy]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_set_ctrl", "(EVP_MD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*md_ctrl]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_set_final", "(EVP_MD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*final]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_set_flags", "(EVP_MD *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_set_init", "(EVP_MD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*init]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_set_input_blocksize", "(EVP_MD *,int)", "", "Argument[1]", "Argument[*0].Field[*block_size]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_set_result_size", "(EVP_MD *,int)", "", "Argument[1]", "Argument[*0].Field[*md_size]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_meth_set_update", "(EVP_MD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*update]", "value", "dfc-generated"] + - ["", "", True, "EVP_MD_names_do_all", "(const EVP_MD *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_OpenFinal", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EVP_OpenFinal", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_OpenInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *)", "", "Argument[*4]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_OpenInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *)", "", "Argument[*4]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "EVP_OpenInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *)", "", "Argument[*4]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "EVP_OpenInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_OpenInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_OpenInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *)", "", "Argument[4]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_OpenInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *)", "", "Argument[4]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_OpenInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *)", "", "Argument[4]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PBE_get", "(int *,int *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EVP_PBE_get", "(int *,int *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EVP_PKCS82PKEY", "(const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "EVP_PKCS82PKEY_ex", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_add1_hkdf_info", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_add1_hkdf_info", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_add1_hkdf_info", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_add1_hkdf_info", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_add1_hkdf_info", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_add1_tls1_prf_seed", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_add1_tls1_prf_seed", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_add1_tls1_prf_seed", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_add1_tls1_prf_seed", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_add1_tls1_prf_seed", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl", "(EVP_PKEY_CTX *,int,int,int,int,void *)", "", "Argument[**5]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl", "(EVP_PKEY_CTX *,int,int,int,int,void *)", "", "Argument[*5]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl", "(EVP_PKEY_CTX *,int,int,int,int,void *)", "", "Argument[4]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl", "(EVP_PKEY_CTX *,int,int,int,int,void *)", "", "Argument[5]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl", "(EVP_PKEY_CTX *,int,int,int,int,void *)", "", "Argument[5]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl", "(EVP_PKEY_CTX *,int,int,int,int,void *)", "", "Argument[5]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl_str", "(EVP_PKEY_CTX *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id_name]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl_str", "(EVP_PKEY_CTX *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl_str", "(EVP_PKEY_CTX *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl_str", "(EVP_PKEY_CTX *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id_name]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl_str", "(EVP_PKEY_CTX *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl_str", "(EVP_PKEY_CTX *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl_uint64", "(EVP_PKEY_CTX *,int,int,int,uint64_t)", "", "Argument[4]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_ctrl_uint64", "(EVP_PKEY_CTX *,int,int,int,uint64_t)", "", "Argument[4]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_dup", "(const EVP_PKEY_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_dh_kdf_oid", "(EVP_PKEY_CTX *,ASN1_OBJECT **)", "", "Argument[**1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_dh_kdf_oid", "(EVP_PKEY_CTX *,ASN1_OBJECT **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_dh_kdf_oid", "(EVP_PKEY_CTX *,ASN1_OBJECT **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_dh_kdf_oid", "(EVP_PKEY_CTX *,ASN1_OBJECT **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_dh_kdf_oid", "(EVP_PKEY_CTX *,ASN1_OBJECT **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_libctx", "(EVP_PKEY_CTX *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_libctx", "(EVP_PKEY_CTX *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_peerkey", "(EVP_PKEY_CTX *)", "", "Argument[*0].Field[**peerkey]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_peerkey", "(EVP_PKEY_CTX *)", "", "Argument[*0].Field[*peerkey]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_pkey", "(EVP_PKEY_CTX *)", "", "Argument[*0].Field[**pkey]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_pkey", "(EVP_PKEY_CTX *)", "", "Argument[*0].Field[*pkey]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_propq", "(const EVP_PKEY_CTX *)", "", "Argument[*0].Field[**propquery]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_propq", "(const EVP_PKEY_CTX *)", "", "Argument[*0].Field[*propquery]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_provider", "(const EVP_PKEY_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get0_provider", "(const EVP_PKEY_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get1_id", "(EVP_PKEY_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get1_id", "(EVP_PKEY_CTX *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get1_id", "(EVP_PKEY_CTX *,void *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get1_id", "(EVP_PKEY_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get1_id", "(EVP_PKEY_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get1_id_len", "(EVP_PKEY_CTX *,size_t *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get1_id_len", "(EVP_PKEY_CTX *,size_t *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get1_id_len", "(EVP_PKEY_CTX *,size_t *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get1_id_len", "(EVP_PKEY_CTX *,size_t *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_algor", "(EVP_PKEY_CTX *,X509_ALGOR **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_algor", "(EVP_PKEY_CTX *,X509_ALGOR **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_algor", "(EVP_PKEY_CTX *,X509_ALGOR **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_algor", "(EVP_PKEY_CTX *,X509_ALGOR **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_app_data", "(EVP_PKEY_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_app_data", "(EVP_PKEY_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_app_data", "(EVP_PKEY_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_cb", "(EVP_PKEY_CTX *)", "", "Argument[*0].Field[*pkey_gencb]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_data", "(const EVP_PKEY_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_data", "(const EVP_PKEY_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_data", "(const EVP_PKEY_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_dh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[**1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_dh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_dh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_dh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_dh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_ecdh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[**1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_ecdh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_ecdh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_ecdh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_ecdh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_keygen_info", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_operation", "(EVP_PKEY_CTX *)", "", "Argument[*0].Field[*operation]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_params", "(EVP_PKEY_CTX *,OSSL_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[**1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_oaep_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[**1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_oaep_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_oaep_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_oaep_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_oaep_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_padding", "(EVP_PKEY_CTX *,int *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_padding", "(EVP_PKEY_CTX *,int *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_padding", "(EVP_PKEY_CTX *,int *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_padding", "(EVP_PKEY_CTX *,int *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_pss_saltlen", "(EVP_PKEY_CTX *,int *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_pss_saltlen", "(EVP_PKEY_CTX *,int *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_pss_saltlen", "(EVP_PKEY_CTX *,int *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_rsa_pss_saltlen", "(EVP_PKEY_CTX *,int *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_signature_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[**1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_signature_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_signature_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_signature_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_get_signature_md", "(EVP_PKEY_CTX *,const EVP_MD **)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new", "(EVP_PKEY *,ENGINE *)", "", "Argument[0]", "ReturnValue[*].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new", "(EVP_PKEY *,ENGINE *)", "", "Argument[1]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_name", "(OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_name", "(OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**keytype]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_name", "(OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**propquery]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_name", "(OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_name", "(OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*keytype]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_name", "(OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**propquery]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_pkey", "(OSSL_LIB_CTX *,EVP_PKEY *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_pkey", "(OSSL_LIB_CTX *,EVP_PKEY *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**propquery]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_pkey", "(OSSL_LIB_CTX *,EVP_PKEY *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_pkey", "(OSSL_LIB_CTX *,EVP_PKEY *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_from_pkey", "(OSSL_LIB_CTX *,EVP_PKEY *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**propquery]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_id", "(int,ENGINE *)", "", "Argument[0]", "ReturnValue[*].Field[*legacy_keytype]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_new_id", "(int,ENGINE *)", "", "Argument[1]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set0_dh_kdf_oid", "(EVP_PKEY_CTX *,ASN1_OBJECT *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set0_dh_kdf_oid", "(EVP_PKEY_CTX *,ASN1_OBJECT *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set0_dh_kdf_oid", "(EVP_PKEY_CTX *,ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set0_dh_kdf_oid", "(EVP_PKEY_CTX *,ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set0_keygen_info", "(EVP_PKEY_CTX *,int *,int)", "", "Argument[*1]", "Argument[*0].Field[**keygen_info]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set0_keygen_info", "(EVP_PKEY_CTX *,int *,int)", "", "Argument[1]", "Argument[*0].Field[*keygen_info]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set0_keygen_info", "(EVP_PKEY_CTX *,int *,int)", "", "Argument[2]", "Argument[*0].Field[*keygen_info_count]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_hkdf_key", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_hkdf_key", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_hkdf_key", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_hkdf_key", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_hkdf_key", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_hkdf_salt", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_hkdf_salt", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_hkdf_salt", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_hkdf_salt", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_hkdf_salt", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_id", "(EVP_PKEY_CTX *,const void *,int)", "", "Argument[**1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_id", "(EVP_PKEY_CTX *,const void *,int)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_id", "(EVP_PKEY_CTX *,const void *,int)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_id", "(EVP_PKEY_CTX *,const void *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_id", "(EVP_PKEY_CTX *,const void *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_id", "(EVP_PKEY_CTX *,const void *,int)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_pbe_pass", "(EVP_PKEY_CTX *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_pbe_pass", "(EVP_PKEY_CTX *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_pbe_pass", "(EVP_PKEY_CTX *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_pbe_pass", "(EVP_PKEY_CTX *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_pbe_pass", "(EVP_PKEY_CTX *,const char *,int)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_rsa_keygen_pubexp", "(EVP_PKEY_CTX *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_rsa_keygen_pubexp", "(EVP_PKEY_CTX *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_scrypt_salt", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_scrypt_salt", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_scrypt_salt", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_scrypt_salt", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_scrypt_salt", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_tls1_prf_secret", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_tls1_prf_secret", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_tls1_prf_secret", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_tls1_prf_secret", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set1_tls1_prf_secret", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_app_data", "(EVP_PKEY_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***app_data]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_app_data", "(EVP_PKEY_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**app_data]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_app_data", "(EVP_PKEY_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*app_data]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_cb", "(EVP_PKEY_CTX *,EVP_PKEY_gen_cb *)", "", "Argument[1]", "Argument[*0].Field[*pkey_gencb]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_data", "(EVP_PKEY_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_data", "(EVP_PKEY_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_data", "(EVP_PKEY_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dh_kdf_type", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dh_nid", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dh_paramgen_type", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dh_rfc5114", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dhx_rfc5114", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dsa_paramgen_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dsa_paramgen_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dsa_paramgen_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_dsa_paramgen_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_ec_param_enc", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_ec_paramgen_curve_nid", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_ecdh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_ecdh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_ecdh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_ecdh_kdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_ecdh_kdf_type", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_hkdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_hkdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_hkdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_hkdf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_hkdf_mode", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_mac_key", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_mac_key", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_mac_key", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_mac_key", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_mac_key", "(EVP_PKEY_CTX *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_params", "(EVP_PKEY_CTX *,const OSSL_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_keygen_pubexp", "(EVP_PKEY_CTX *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_keygen_pubexp", "(EVP_PKEY_CTX *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_keygen_pubexp", "(EVP_PKEY_CTX *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*rsa_pubexp]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_oaep_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_oaep_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_oaep_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_oaep_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_padding", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_pss_keygen_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_pss_keygen_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_pss_keygen_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_pss_keygen_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_rsa_pss_saltlen", "(EVP_PKEY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_scrypt_N", "(EVP_PKEY_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_scrypt_N", "(EVP_PKEY_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_scrypt_maxmem_bytes", "(EVP_PKEY_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_scrypt_maxmem_bytes", "(EVP_PKEY_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_scrypt_p", "(EVP_PKEY_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_scrypt_p", "(EVP_PKEY_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_scrypt_r", "(EVP_PKEY_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_scrypt_r", "(EVP_PKEY_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_signature_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_signature_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_signature_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_signature_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_tls1_prf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_tls1_prf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_tls1_prf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_CTX_set_tls1_prf_md", "(EVP_PKEY_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_add1_attr", "(EVP_PKEY *,X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "EVP_PKEY_asn1_copy", "(EVP_PKEY_ASN1_METHOD *,const EVP_PKEY_ASN1_METHOD *)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_copy", "(EVP_PKEY_ASN1_METHOD *,const EVP_PKEY_ASN1_METHOD *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_copy", "(EVP_PKEY_ASN1_METHOD *,const EVP_PKEY_ASN1_METHOD *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_get0", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_get0_info", "(int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *)", "", "Argument[*5]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_asn1_get0_info", "(int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *)", "", "Argument[*5]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_asn1_get0_info", "(int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *)", "", "Argument[*5]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_asn1_get0_info", "(int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_asn1_get0_info", "(int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *)", "", "Argument[*5]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_asn1_get0_info", "(int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *)", "", "Argument[*5]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_asn1_get0_info", "(int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *)", "", "Argument[*5]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_asn1_new", "(int,int,const char *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**pem_str]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_new", "(int,int,const char *,const char *)", "", "Argument[*3]", "ReturnValue[*].Field[**info]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_new", "(int,int,const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*pkey_base_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_new", "(int,int,const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*pkey_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_new", "(int,int,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*pkey_flags]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_new", "(int,int,const char *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**pem_str]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_new", "(int,int,const char *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[**info]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_check", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*pkey_check]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_ctrl", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*pkey_ctrl]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_free", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*pkey_free]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_get_priv_key", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*get_priv_key]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_get_pub_key", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*get_pub_key]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_item", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*item_verify]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_item", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*item_sign]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_param", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*param_decode]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_param", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*param_encode]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_param", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[3]", "Argument[*0].Field[*param_missing]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_param", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[4]", "Argument[*0].Field[*param_copy]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_param", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[5]", "Argument[*0].Field[*param_cmp]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_param", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[6]", "Argument[*0].Field[*param_print]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_param_check", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*pkey_param_check]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_private", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*priv_decode]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_private", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*priv_encode]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_private", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..))", "", "Argument[3]", "Argument[*0].Field[*priv_print]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_public", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*pub_decode]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_public", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*pub_encode]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_public", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[3]", "Argument[*0].Field[*pub_cmp]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_public", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[4]", "Argument[*0].Field[*pub_print]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_public", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[5]", "Argument[*0].Field[*pkey_size]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_public", "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[6]", "Argument[*0].Field[*pkey_bits]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_public_check", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*pkey_public_check]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_security_bits", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*pkey_security_bits]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_set_priv_key", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*set_priv_key]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_set_pub_key", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*set_pub_key]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_asn1_set_siginf", "(EVP_PKEY_ASN1_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*siginf_set]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_assign", "(EVP_PKEY *,int,void *)", "", "Argument[**2]", "Argument[*0].Field[*pkey].Union[***legacy_pkey_st]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_assign", "(EVP_PKEY *,int,void *)", "", "Argument[*2]", "Argument[*0].Field[*pkey].Union[**legacy_pkey_st]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_assign", "(EVP_PKEY *,int,void *)", "", "Argument[1]", "Argument[*0].Field[*save_type]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_assign", "(EVP_PKEY *,int,void *)", "", "Argument[1]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_assign", "(EVP_PKEY *,int,void *)", "", "Argument[2]", "Argument[*0].Field[*pkey].Union[*legacy_pkey_st]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_assign", "(EVP_PKEY *,int,void *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_copy_parameters", "(EVP_PKEY *,const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_copy_parameters", "(EVP_PKEY *,const EVP_PKEY *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_decrypt", "(EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_delete_attr", "(EVP_PKEY *,int)", "", "Argument[1]", "Argument[*0].Field[**attributes].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_delete_attr", "(EVP_PKEY *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_delete_attr", "(EVP_PKEY *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_derive", "(EVP_PKEY_CTX *,unsigned char *,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_derive_set_peer", "(EVP_PKEY_CTX *,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[*peerkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_derive_set_peer_ex", "(EVP_PKEY_CTX *,EVP_PKEY *,int)", "", "Argument[1]", "Argument[*0].Field[*peerkey]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_dup", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_encrypt", "(EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_fromdata", "(EVP_PKEY_CTX *,EVP_PKEY **,int,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_generate", "(EVP_PKEY_CTX *,EVP_PKEY **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get0", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_DH", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_DH", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_DSA", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_DSA", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_EC_KEY", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_EC_KEY", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_RSA", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_RSA", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_asn1", "(const EVP_PKEY *)", "", "Argument[*0].Field[**ameth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get0_asn1", "(const EVP_PKEY *)", "", "Argument[*0].Field[*ameth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get0_description", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_description", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_engine", "(const EVP_PKEY *)", "", "Argument[*0].Field[**engine]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get0_engine", "(const EVP_PKEY *)", "", "Argument[*0].Field[*engine]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get0_provider", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_provider", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_type_name", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get0_type_name", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get1_DH", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get1_DH", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get1_DSA", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get1_DSA", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get1_EC_KEY", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get1_EC_KEY", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get1_RSA", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get1_RSA", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "EVP_PKEY_get_attr", "(const EVP_PKEY *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_attr_by_NID", "(const EVP_PKEY *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_attr_by_OBJ", "(const EVP_PKEY *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_attr_count", "(const EVP_PKEY *)", "", "Argument[*0].Field[**attributes].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_bits", "(const EVP_PKEY *)", "", "Argument[*0].Field[*cache].Field[*bits]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_bn_param", "(const EVP_PKEY *,const char *,BIGNUM **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_default_digest_name", "(EVP_PKEY *,char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_ex_data", "(const EVP_PKEY *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_id", "(const EVP_PKEY *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_params", "(const EVP_PKEY *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_security_bits", "(const EVP_PKEY *)", "", "Argument[*0].Field[*cache].Field[*security_bits]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_get_size", "(const EVP_PKEY *)", "", "Argument[*0].Field[*cache].Field[*size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_keygen", "(EVP_PKEY_CTX *,EVP_PKEY **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_copy", "(EVP_PKEY_METHOD *,const EVP_PKEY_METHOD *)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_copy", "(EVP_PKEY_METHOD *,const EVP_PKEY_METHOD *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_copy", "(EVP_PKEY_METHOD *,const EVP_PKEY_METHOD *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get0", "(size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get0_info", "(int *,int *,const EVP_PKEY_METHOD *)", "", "Argument[*2].Field[*flags]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get0_info", "(int *,int *,const EVP_PKEY_METHOD *)", "", "Argument[*2].Field[*pkey_id]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_check", "(const EVP_PKEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*check]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_cleanup", "(const EVP_PKEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*cleanup]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_copy", "(const EVP_PKEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*copy]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_ctrl", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*ctrl]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_ctrl", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*ctrl_str]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_decrypt", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*decrypt]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_decrypt", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*decrypt_init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_derive", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*derive]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_derive", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*derive_init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_digest_custom", "(const EVP_PKEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*digest_custom]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_digestsign", "(const EVP_PKEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*digestsign]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_digestverify", "(const EVP_PKEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*digestverify]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_encrypt", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*encrypt]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_encrypt", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*encrypt_init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_init", "(const EVP_PKEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_keygen", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*keygen]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_keygen", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*keygen_init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_param_check", "(const EVP_PKEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*param_check]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_paramgen", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*paramgen]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_paramgen", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*paramgen_init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_public_check", "(const EVP_PKEY_METHOD *,..(**)(..))", "", "Argument[*0].Field[*public_check]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_sign", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*sign]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_sign", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*sign_init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_signctx", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*signctx]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_signctx", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*signctx_init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_verify", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*verify]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_verify", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*verify_init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_verify_recover", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*verify_recover]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_verify_recover", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*verify_recover_init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_verifyctx", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*verifyctx]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_get_verifyctx", "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))", "", "Argument[*0].Field[*verifyctx_init]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_new", "(int,int)", "", "Argument[0]", "ReturnValue[*].Field[*pkey_id]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_new", "(int,int)", "", "Argument[1]", "ReturnValue[*].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_check", "(EVP_PKEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*check]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_cleanup", "(EVP_PKEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*cleanup]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_copy", "(EVP_PKEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*copy]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_ctrl", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ctrl]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_ctrl", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*ctrl_str]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_decrypt", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*decrypt_init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_decrypt", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*decrypt]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_derive", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*derive_init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_derive", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*derive]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_digest_custom", "(EVP_PKEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*digest_custom]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_digestsign", "(EVP_PKEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*digestsign]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_digestverify", "(EVP_PKEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*digestverify]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_encrypt", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*encrypt_init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_encrypt", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_init", "(EVP_PKEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_keygen", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*keygen_init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_keygen", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*keygen]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_param_check", "(EVP_PKEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*param_check]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_paramgen", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*paramgen_init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_paramgen", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*paramgen]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_public_check", "(EVP_PKEY_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*public_check]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_sign", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*sign_init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_sign", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*sign]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_signctx", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*signctx_init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_signctx", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*signctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_verify", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*verify_init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_verify", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*verify]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_verify_recover", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*verify_recover_init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_verify_recover", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*verify_recover]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_verifyctx", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*verifyctx_init]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_meth_set_verifyctx", "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*verifyctx]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_new_mac_key", "(int,ENGINE *,const unsigned char *,int)", "", "Argument[0]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_new_raw_private_key", "(int,ENGINE *,const unsigned char *,size_t)", "", "Argument[0]", "ReturnValue[*].Field[*save_type]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_new_raw_private_key", "(int,ENGINE *,const unsigned char *,size_t)", "", "Argument[0]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_new_raw_private_key", "(int,ENGINE *,const unsigned char *,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_new_raw_public_key", "(int,ENGINE *,const unsigned char *,size_t)", "", "Argument[0]", "ReturnValue[*].Field[*save_type]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_new_raw_public_key", "(int,ENGINE *,const unsigned char *,size_t)", "", "Argument[0]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_new_raw_public_key", "(int,ENGINE *,const unsigned char *,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_paramgen", "(EVP_PKEY_CTX *,EVP_PKEY **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_print_params", "(BIO *,const EVP_PKEY *,int,ASN1_PCTX *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_print_private", "(BIO *,const EVP_PKEY *,int,ASN1_PCTX *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_print_public", "(BIO *,const EVP_PKEY *,int,ASN1_PCTX *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_save_parameters", "(EVP_PKEY *,int)", "", "Argument[*0].Field[*save_parameters]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_save_parameters", "(EVP_PKEY *,int)", "", "Argument[1]", "Argument[*0].Field[*save_parameters]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set1_DH", "(EVP_PKEY *,DH *,dh_st *)", "", "Argument[1]", "Argument[*0].Field[*pkey].Union[*legacy_pkey_st]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set1_DH", "(EVP_PKEY *,DH *,dh_st *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set1_DSA", "(EVP_PKEY *,DSA *,dsa_st *)", "", "Argument[1]", "Argument[*0].Field[*pkey].Union[*legacy_pkey_st]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set1_DSA", "(EVP_PKEY *,DSA *,dsa_st *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set1_EC_KEY", "(EVP_PKEY *,EC_KEY *,ec_key_st *)", "", "Argument[1]", "Argument[*0].Field[*pkey].Union[*legacy_pkey_st]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set1_RSA", "(EVP_PKEY *,RSA *,rsa_st *)", "", "Argument[1]", "Argument[*0].Field[*pkey].Union[*legacy_pkey_st]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set1_RSA", "(EVP_PKEY *,RSA *,rsa_st *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set1_engine", "(EVP_PKEY *,ENGINE *)", "", "Argument[1]", "Argument[*0].Field[*pmeth_engine]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set_bn_param", "(EVP_PKEY *,const char *,const BIGNUM *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set_type", "(EVP_PKEY *,int)", "", "Argument[1]", "Argument[*0].Field[*save_type]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set_type", "(EVP_PKEY *,int)", "", "Argument[1]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_set_type_by_keymgmt", "(EVP_PKEY *,EVP_KEYMGMT *)", "", "Argument[1]", "Argument[*0].Field[*keymgmt]", "value", "dfc-generated"] + - ["", "", True, "EVP_PKEY_sign", "(EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_sign_message_final", "(EVP_PKEY_CTX *,unsigned char *,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_PKEY_verify_recover", "(EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_Q_mac", "(OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *)", "", "Argument[*9]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_Q_mac", "(OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *)", "", "Argument[9]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_CTX_get0_rand", "(EVP_RAND_CTX *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_CTX_get0_rand", "(EVP_RAND_CTX *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_CTX_new", "(EVP_RAND *,EVP_RAND_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_CTX_new", "(EVP_RAND *,EVP_RAND_CTX *)", "", "Argument[1]", "ReturnValue[*].Field[*parent]", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_generate", "(EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_RAND_generate", "(EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_RAND_get0_description", "(const EVP_RAND *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_get0_description", "(const EVP_RAND *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_get0_name", "(const EVP_RAND *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_get0_name", "(const EVP_RAND *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_get0_provider", "(const EVP_RAND *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_get0_provider", "(const EVP_RAND *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_RAND_names_do_all", "(const EVP_RAND *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_RAND_nonce", "(EVP_RAND_CTX *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_RAND_nonce", "(EVP_RAND_CTX *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "EVP_SIGNATURE_get0_description", "(const EVP_SIGNATURE *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_SIGNATURE_get0_description", "(const EVP_SIGNATURE *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_SIGNATURE_get0_name", "(const EVP_SIGNATURE *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_SIGNATURE_get0_name", "(const EVP_SIGNATURE *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_SIGNATURE_get0_provider", "(const EVP_SIGNATURE *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_SIGNATURE_get0_provider", "(const EVP_SIGNATURE *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_SIGNATURE_names_do_all", "(const EVP_SIGNATURE *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_SKEYMGMT_get0_description", "(const EVP_SKEYMGMT *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_SKEYMGMT_get0_description", "(const EVP_SKEYMGMT *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_SKEYMGMT_get0_name", "(const EVP_SKEYMGMT *)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_SKEYMGMT_get0_name", "(const EVP_SKEYMGMT *)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_SKEYMGMT_get0_provider", "(const EVP_SKEYMGMT *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_SKEYMGMT_get0_provider", "(const EVP_SKEYMGMT *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_SKEYMGMT_names_do_all", "(const EVP_SKEYMGMT *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_SKEY_get0_skeymgmt_name", "(const EVP_SKEY *)", "", "Argument[*0].Field[**skeymgmt].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "EVP_SKEY_get0_skeymgmt_name", "(const EVP_SKEY *)", "", "Argument[*0].Field[**skeymgmt].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_SKEY_to_provider", "(EVP_SKEY *,OSSL_LIB_CTX *,OSSL_PROVIDER *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "EVP_SKEY_to_provider", "(EVP_SKEY *,OSSL_LIB_CTX *,OSSL_PROVIDER *,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_SealFinal", "(EVP_CIPHER_CTX *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "EVP_SealInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "EVP_SealInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int)", "", "Argument[*5]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "EVP_SealInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_SealInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int)", "", "Argument[1]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "EVP_SealInit", "(EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int)", "", "Argument[6]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "EVP_SignFinal", "(EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_SignFinal_ex", "(EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_VerifyFinal", "(EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EVP_VerifyFinal_ex", "(EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "EXTENDED_KEY_USAGE_free", "(EXTENDED_KEY_USAGE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "EXTENDED_KEY_USAGE_free", "(EXTENDED_KEY_USAGE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "FuzzerTestOneInput", "(const uint8_t *,size_t)", "", "Argument[*0]", "Argument[0]", "taint", "dfc-generated"] + - ["", "", True, "FuzzerTestOneInput", "(const uint8_t *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "FuzzerTestOneInput", "(const uint8_t *,size_t)", "", "Argument[0]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "FuzzerTestOneInput", "(const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "FuzzerTestOneInput", "(const uint8_t *,size_t)", "", "Argument[1]", "Argument[0]", "taint", "dfc-generated"] + - ["", "", True, "GENERAL_NAMES_free", "(GENERAL_NAMES *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "GENERAL_NAMES_free", "(GENERAL_NAMES *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "GENERAL_NAME_cmp", "(GENERAL_NAME *,GENERAL_NAME *)", "", "Argument[*1].Field[*d].Union[**(unnamed class/struct/union)]", "Argument[*1].Field[*d].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "GENERAL_NAME_dup", "(const GENERAL_NAME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "GENERAL_NAME_dup", "(const GENERAL_NAME *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "GENERAL_NAME_dup", "(const GENERAL_NAME *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "GENERAL_NAME_dup", "(const GENERAL_NAME *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "GENERAL_NAME_dup", "(const GENERAL_NAME *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "GENERAL_NAME_free", "(GENERAL_NAME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "GENERAL_NAME_free", "(GENERAL_NAME *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "GENERAL_NAME_get0_value", "(const GENERAL_NAME *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "GENERAL_NAME_get0_value", "(const GENERAL_NAME *,int *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "GENERAL_NAME_get0_value", "(const GENERAL_NAME *,int *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "GENERAL_NAME_set0_value", "(GENERAL_NAME *,int,void *)", "", "Argument[*2]", "Argument[*0].Field[*d].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "GENERAL_NAME_set0_value", "(GENERAL_NAME *,int,void *)", "", "Argument[1]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "GENERAL_NAME_set0_value", "(GENERAL_NAME *,int,void *)", "", "Argument[2]", "Argument[*0].Field[*d].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "GENERAL_NAME_set1_X509_NAME", "(GENERAL_NAME **,const X509_NAME *)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "GENERAL_NAME_set1_X509_NAME", "(GENERAL_NAME **,const X509_NAME *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "GENERAL_NAME_set1_X509_NAME", "(GENERAL_NAME **,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "GENERAL_NAME_set1_X509_NAME", "(GENERAL_NAME **,const X509_NAME *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "GENERAL_NAME_set1_X509_NAME", "(GENERAL_NAME **,const X509_NAME *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "GENERAL_SUBTREE_free", "(GENERAL_SUBTREE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "GENERAL_SUBTREE_free", "(GENERAL_SUBTREE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "GOST_KX_MESSAGE_free", "(GOST_KX_MESSAGE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "GOST_KX_MESSAGE_free", "(GOST_KX_MESSAGE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "HMAC", "(const EVP_MD *,const void *,int,const unsigned char *,size_t,unsigned char *,unsigned int *)", "", "Argument[*5]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "HMAC", "(const EVP_MD *,const void *,int,const unsigned char *,size_t,unsigned char *,unsigned int *)", "", "Argument[5]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "HMAC_CTX_copy", "(HMAC_CTX *,HMAC_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "HMAC_CTX_get_md", "(const HMAC_CTX *)", "", "Argument[*0].Field[**md]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "HMAC_CTX_get_md", "(const HMAC_CTX *)", "", "Argument[*0].Field[*md]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "HMAC_CTX_set_flags", "(HMAC_CTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[**i_ctx].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "HMAC_CTX_set_flags", "(HMAC_CTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[**md_ctx].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "HMAC_CTX_set_flags", "(HMAC_CTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[**o_ctx].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "HMAC_Init", "(HMAC_CTX *,const void *,int,const EVP_MD *)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "HMAC_Init", "(HMAC_CTX *,const void *,int,const EVP_MD *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "HMAC_Init", "(HMAC_CTX *,const void *,int,const EVP_MD *)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "HMAC_Init_ex", "(HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "HMAC_Init_ex", "(HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "HMAC_Init_ex", "(HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "HMAC_Init_ex", "(HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *)", "", "Argument[4]", "Argument[*0].Field[**i_ctx].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "HMAC_Init_ex", "(HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *)", "", "Argument[4]", "Argument[*0].Field[**md_ctx].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "HMAC_Init_ex", "(HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *)", "", "Argument[4]", "Argument[*0].Field[**o_ctx].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "HMAC_size", "(const HMAC_CTX *)", "", "Argument[*0].Field[**md].Field[*md_size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[*0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[*3].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[*3].Field[*data]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cbc_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_ecb_encrypt", "(const unsigned char *,unsigned char *,IDEA_KEY_SCHEDULE *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_ecb_encrypt", "(const unsigned char *,unsigned char *,IDEA_KEY_SCHEDULE *)", "", "Argument[*2].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_ecb_encrypt", "(const unsigned char *,unsigned char *,IDEA_KEY_SCHEDULE *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_ecb_encrypt", "(const unsigned char *,unsigned char *,IDEA_KEY_SCHEDULE *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_encrypt", "(unsigned long *,IDEA_KEY_SCHEDULE *)", "", "Argument[*1].Field[*data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_encrypt", "(unsigned long *,IDEA_KEY_SCHEDULE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "IDEA_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "IPAddressChoice_free", "(IPAddressChoice *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "IPAddressChoice_free", "(IPAddressChoice *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "IPAddressFamily_free", "(IPAddressFamily *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "IPAddressFamily_free", "(IPAddressFamily *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "IPAddressOrRange_free", "(IPAddressOrRange *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "IPAddressOrRange_free", "(IPAddressOrRange *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "IPAddressRange_free", "(IPAddressRange *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "IPAddressRange_free", "(IPAddressRange *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ISSUER_SIGN_TOOL_free", "(ISSUER_SIGN_TOOL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ISSUER_SIGN_TOOL_free", "(ISSUER_SIGN_TOOL *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ISSUING_DIST_POINT_free", "(ISSUING_DIST_POINT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ISSUING_DIST_POINT_free", "(ISSUING_DIST_POINT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "MD4", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "MD4", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "MD4", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "MD4", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "MD4_Final", "(unsigned char *,MD4_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "MD4_Transform", "(MD4_CTX *,const unsigned char *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "MD4_Transform", "(MD4_CTX *,const unsigned char *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "MD4_Update", "(MD4_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nh]", "taint", "dfc-generated"] + - ["", "", True, "MD4_Update", "(MD4_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nl]", "taint", "dfc-generated"] + - ["", "", True, "MD4_Update", "(MD4_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "MD5", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "MD5", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "MD5", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "MD5", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "MD5_Final", "(unsigned char *,MD5_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "MD5_Update", "(MD5_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nh]", "taint", "dfc-generated"] + - ["", "", True, "MD5_Update", "(MD5_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nl]", "taint", "dfc-generated"] + - ["", "", True, "MD5_Update", "(MD5_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "MDC2", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "MDC2", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "MDC2_Final", "(unsigned char *,MDC2_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "MDC2_Update", "(MDC2_CTX *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "MDC2_Update", "(MDC2_CTX *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "MDC2_Update", "(MDC2_CTX *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "MDC2_Update", "(MDC2_CTX *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "taint", "dfc-generated"] + - ["", "", True, "NAME_CONSTRAINTS_free", "(NAME_CONSTRAINTS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "NAME_CONSTRAINTS_free", "(NAME_CONSTRAINTS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "NAMING_AUTHORITY_free", "(NAMING_AUTHORITY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "NAMING_AUTHORITY_free", "(NAMING_AUTHORITY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "NAMING_AUTHORITY_get0_authorityId", "(const NAMING_AUTHORITY *)", "", "Argument[*0].Field[**namingAuthorityId]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_get0_authorityId", "(const NAMING_AUTHORITY *)", "", "Argument[*0].Field[*namingAuthorityId]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_get0_authorityText", "(const NAMING_AUTHORITY *)", "", "Argument[*0].Field[**namingAuthorityText]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_get0_authorityText", "(const NAMING_AUTHORITY *)", "", "Argument[*0].Field[*namingAuthorityText]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_get0_authorityURL", "(const NAMING_AUTHORITY *)", "", "Argument[*0].Field[**namingAuthorityUrl]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_get0_authorityURL", "(const NAMING_AUTHORITY *)", "", "Argument[*0].Field[*namingAuthorityUrl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_set0_authorityId", "(NAMING_AUTHORITY *,ASN1_OBJECT *)", "", "Argument[*1]", "Argument[*0].Field[**namingAuthorityId]", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_set0_authorityId", "(NAMING_AUTHORITY *,ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[*namingAuthorityId]", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_set0_authorityText", "(NAMING_AUTHORITY *,ASN1_STRING *)", "", "Argument[*1]", "Argument[*0].Field[**namingAuthorityText]", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_set0_authorityText", "(NAMING_AUTHORITY *,ASN1_STRING *)", "", "Argument[1]", "Argument[*0].Field[*namingAuthorityText]", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_set0_authorityURL", "(NAMING_AUTHORITY *,ASN1_IA5STRING *)", "", "Argument[*1]", "Argument[*0].Field[**namingAuthorityUrl]", "value", "dfc-generated"] + - ["", "", True, "NAMING_AUTHORITY_set0_authorityURL", "(NAMING_AUTHORITY *,ASN1_IA5STRING *)", "", "Argument[1]", "Argument[*0].Field[*namingAuthorityUrl]", "value", "dfc-generated"] + - ["", "", True, "NCONF_get0_libctx", "(const CONF *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "NCONF_get0_libctx", "(const CONF *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "NCONF_new_ex", "(OSSL_LIB_CTX *,CONF_METHOD *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "NCONF_new_ex", "(OSSL_LIB_CTX *,CONF_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "NETSCAPE_CERT_SEQUENCE_free", "(NETSCAPE_CERT_SEQUENCE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_CERT_SEQUENCE_free", "(NETSCAPE_CERT_SEQUENCE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_ENCRYPTED_PKEY_free", "(NETSCAPE_ENCRYPTED_PKEY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_ENCRYPTED_PKEY_free", "(NETSCAPE_ENCRYPTED_PKEY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_PKEY_free", "(NETSCAPE_PKEY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_PKEY_free", "(NETSCAPE_PKEY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_SPKAC_free", "(NETSCAPE_SPKAC *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_SPKAC_free", "(NETSCAPE_SPKAC *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_SPKI_b64_decode", "(const char *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "NETSCAPE_SPKI_b64_decode", "(const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "NETSCAPE_SPKI_b64_decode", "(const char *,int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "NETSCAPE_SPKI_b64_decode", "(const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "NETSCAPE_SPKI_b64_encode", "(NETSCAPE_SPKI *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_SPKI_free", "(NETSCAPE_SPKI *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_SPKI_free", "(NETSCAPE_SPKI *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "NETSCAPE_SPKI_print", "(BIO *,NETSCAPE_SPKI *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "NETSCAPE_SPKI_sign", "(NETSCAPE_SPKI *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "NOTICEREF_free", "(NOTICEREF *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "NOTICEREF_free", "(NOTICEREF *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OBJ_add_object", "(const ASN1_OBJECT *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OBJ_bsearch_", "(const void *,const void *,int,int,..(*)(..))", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_", "(const void *,const void *,int,int,..(*)(..))", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_", "(const void *,const void *,int,int,..(*)(..))", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_", "(const void *,const void *,int,int,..(*)(..))", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_", "(const void *,const void *,int,int,..(*)(..))", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_", "(const void *,const void *,int,int,..(*)(..))", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_", "(const void *,const void *,int,int,..(*)(..))", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ex_", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ex_", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ex_", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ex_", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ex_", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ex_", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ex_", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ssl_cipher_id", "(SSL_CIPHER *,const SSL_CIPHER *,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ssl_cipher_id", "(SSL_CIPHER *,const SSL_CIPHER *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ssl_cipher_id", "(SSL_CIPHER *,const SSL_CIPHER *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ssl_cipher_id", "(SSL_CIPHER *,const SSL_CIPHER *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OBJ_bsearch_ssl_cipher_id", "(SSL_CIPHER *,const SSL_CIPHER *,int)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_cmp", "(const ASN1_OBJECT *,const ASN1_OBJECT *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OBJ_cmp", "(const ASN1_OBJECT *,const ASN1_OBJECT *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OBJ_dup", "(const ASN1_OBJECT *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "OBJ_dup", "(const ASN1_OBJECT *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OBJ_get0_data", "(const ASN1_OBJECT *)", "", "Argument[*0].Field[**data]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OBJ_get0_data", "(const ASN1_OBJECT *)", "", "Argument[*0].Field[*data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OBJ_length", "(const ASN1_OBJECT *)", "", "Argument[*0].Field[*length]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OBJ_nid2ln", "(int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OBJ_nid2ln", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OBJ_nid2obj", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OBJ_nid2obj", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_nid2sn", "(int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OBJ_nid2sn", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OBJ_obj2nid", "(const ASN1_OBJECT *)", "", "Argument[*0].Field[*nid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OBJ_obj2txt", "(char *,int,const ASN1_OBJECT *,int)", "", "Argument[*2].Field[**data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_obj2txt", "(char *,int,const ASN1_OBJECT *,int)", "", "Argument[*2].Field[*data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_obj2txt", "(char *,int,const ASN1_OBJECT *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OBJ_obj2txt", "(char *,int,const ASN1_OBJECT *,int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_BASICRESP_add1_ext_i2d", "(OCSP_BASICRESP *,int,void *,int,unsigned long)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OCSP_BASICRESP_add_ext", "(OCSP_BASICRESP *,X509_EXTENSION *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_BASICRESP_add_ext", "(OCSP_BASICRESP *,X509_EXTENSION *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_BASICRESP_delete_ext", "(OCSP_BASICRESP *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_BASICRESP_delete_ext", "(OCSP_BASICRESP *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_BASICRESP_free", "(OCSP_BASICRESP *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_BASICRESP_free", "(OCSP_BASICRESP *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_BASICRESP_get1_ext_d2i", "(OCSP_BASICRESP *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_BASICRESP_get_ext", "(OCSP_BASICRESP *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_BASICRESP_get_ext_by_NID", "(OCSP_BASICRESP *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_BASICRESP_get_ext_by_OBJ", "(OCSP_BASICRESP *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_BASICRESP_get_ext_by_critical", "(OCSP_BASICRESP *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_CERTID_dup", "(const OCSP_CERTID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_CERTID_dup", "(const OCSP_CERTID *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_CERTID_dup", "(const OCSP_CERTID *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OCSP_CERTID_dup", "(const OCSP_CERTID *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_CERTID_dup", "(const OCSP_CERTID *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OCSP_CERTID_free", "(OCSP_CERTID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_CERTID_free", "(OCSP_CERTID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_CERTSTATUS_free", "(OCSP_CERTSTATUS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_CERTSTATUS_free", "(OCSP_CERTSTATUS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_CRLID_free", "(OCSP_CRLID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_CRLID_free", "(OCSP_CRLID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_ONEREQ_add1_ext_i2d", "(OCSP_ONEREQ *,int,void *,int,unsigned long)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OCSP_ONEREQ_add_ext", "(OCSP_ONEREQ *,X509_EXTENSION *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_ONEREQ_add_ext", "(OCSP_ONEREQ *,X509_EXTENSION *,int)", "", "Argument[2]", "Argument[*0].Field[**singleRequestExtensions].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_ONEREQ_add_ext", "(OCSP_ONEREQ *,X509_EXTENSION *,int)", "", "Argument[2]", "Argument[*0].Field[**singleRequestExtensions].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_ONEREQ_delete_ext", "(OCSP_ONEREQ *,int)", "", "Argument[1]", "Argument[*0].Field[**singleRequestExtensions].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_ONEREQ_delete_ext", "(OCSP_ONEREQ *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_ONEREQ_delete_ext", "(OCSP_ONEREQ *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_ONEREQ_free", "(OCSP_ONEREQ *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_ONEREQ_free", "(OCSP_ONEREQ *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_ONEREQ_get1_ext_d2i", "(OCSP_ONEREQ *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_ONEREQ_get_ext", "(OCSP_ONEREQ *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_ONEREQ_get_ext_by_NID", "(OCSP_ONEREQ *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_ONEREQ_get_ext_by_OBJ", "(OCSP_ONEREQ *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_ONEREQ_get_ext_by_critical", "(OCSP_ONEREQ *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_ONEREQ_get_ext_count", "(OCSP_ONEREQ *)", "", "Argument[*0].Field[**singleRequestExtensions].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OCSP_REQINFO_free", "(OCSP_REQINFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_REQINFO_free", "(OCSP_REQINFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_REQUEST_add1_ext_i2d", "(OCSP_REQUEST *,int,void *,int,unsigned long)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OCSP_REQUEST_add_ext", "(OCSP_REQUEST *,X509_EXTENSION *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_REQUEST_add_ext", "(OCSP_REQUEST *,X509_EXTENSION *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_REQUEST_delete_ext", "(OCSP_REQUEST *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_REQUEST_delete_ext", "(OCSP_REQUEST *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_REQUEST_free", "(OCSP_REQUEST *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_REQUEST_free", "(OCSP_REQUEST *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_REQUEST_get1_ext_d2i", "(OCSP_REQUEST *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_REQUEST_get_ext", "(OCSP_REQUEST *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_REQUEST_get_ext_by_NID", "(OCSP_REQUEST *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_REQUEST_get_ext_by_OBJ", "(OCSP_REQUEST *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_REQUEST_get_ext_by_critical", "(OCSP_REQUEST *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_REQUEST_print", "(BIO *,OCSP_REQUEST *,unsigned long)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "OCSP_RESPBYTES_free", "(OCSP_RESPBYTES *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_RESPBYTES_free", "(OCSP_RESPBYTES *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_RESPDATA_free", "(OCSP_RESPDATA *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_RESPDATA_free", "(OCSP_RESPDATA *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_RESPID_free", "(OCSP_RESPID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_RESPID_free", "(OCSP_RESPID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_RESPID_match", "(OCSP_RESPID *,X509 *)", "", "Argument[*0].Field[*value].Union[**(unnamed class/struct/union)]", "Argument[*0].Field[*value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OCSP_RESPID_match_ex", "(OCSP_RESPID *,X509 *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0].Field[*value].Union[**(unnamed class/struct/union)]", "Argument[*0].Field[*value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OCSP_RESPONSE_free", "(OCSP_RESPONSE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_RESPONSE_free", "(OCSP_RESPONSE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_RESPONSE_print", "(BIO *,OCSP_RESPONSE *,unsigned long)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "OCSP_REVOKEDINFO_free", "(OCSP_REVOKEDINFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_REVOKEDINFO_free", "(OCSP_REVOKEDINFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_SERVICELOC_free", "(OCSP_SERVICELOC *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_SERVICELOC_free", "(OCSP_SERVICELOC *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_SIGNATURE_free", "(OCSP_SIGNATURE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_SIGNATURE_free", "(OCSP_SIGNATURE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_SINGLERESP_add1_ext_i2d", "(OCSP_SINGLERESP *,int,void *,int,unsigned long)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OCSP_SINGLERESP_add_ext", "(OCSP_SINGLERESP *,X509_EXTENSION *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_SINGLERESP_add_ext", "(OCSP_SINGLERESP *,X509_EXTENSION *,int)", "", "Argument[2]", "Argument[*0].Field[**singleExtensions].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_add_ext", "(OCSP_SINGLERESP *,X509_EXTENSION *,int)", "", "Argument[2]", "Argument[*0].Field[**singleExtensions].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_delete_ext", "(OCSP_SINGLERESP *,int)", "", "Argument[1]", "Argument[*0].Field[**singleExtensions].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_delete_ext", "(OCSP_SINGLERESP *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_delete_ext", "(OCSP_SINGLERESP *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_free", "(OCSP_SINGLERESP *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_SINGLERESP_free", "(OCSP_SINGLERESP *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OCSP_SINGLERESP_get0_id", "(const OCSP_SINGLERESP *)", "", "Argument[*0].Field[**certId]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_get0_id", "(const OCSP_SINGLERESP *)", "", "Argument[*0].Field[*certId]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_get1_ext_d2i", "(OCSP_SINGLERESP *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_get_ext", "(OCSP_SINGLERESP *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_get_ext_by_NID", "(OCSP_SINGLERESP *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_get_ext_by_OBJ", "(OCSP_SINGLERESP *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_get_ext_by_critical", "(OCSP_SINGLERESP *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_SINGLERESP_get_ext_count", "(OCSP_SINGLERESP *)", "", "Argument[*0].Field[**singleExtensions].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OCSP_accept_responses_new", "(char **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_accept_responses_new", "(char **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_accept_responses_new", "(char **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_basic_add1_cert", "(OCSP_BASICRESP *,X509 *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OCSP_basic_add1_cert", "(OCSP_BASICRESP *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_basic_add1_cert", "(OCSP_BASICRESP *,X509 *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OCSP_basic_add1_cert", "(OCSP_BASICRESP *,X509 *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "OCSP_basic_add1_status", "(OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_basic_add1_status", "(OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OCSP_basic_add1_status", "(OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OCSP_basic_sign", "(OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OCSP_basic_sign", "(OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_basic_sign", "(OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OCSP_basic_sign", "(OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OCSP_basic_sign", "(OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "OCSP_basic_sign_ctx", "(OCSP_BASICRESP *,X509 *,EVP_MD_CTX *,stack_st_X509 *,unsigned long)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_basic_sign_ctx", "(OCSP_BASICRESP *,X509 *,EVP_MD_CTX *,stack_st_X509 *,unsigned long)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "OCSP_basic_sign_ctx", "(OCSP_BASICRESP *,X509 *,EVP_MD_CTX *,stack_st_X509 *,unsigned long)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_cert_id_new", "(const EVP_MD *,const X509_NAME *,const ASN1_BIT_STRING *,const ASN1_INTEGER *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_cert_id_new", "(const EVP_MD *,const X509_NAME *,const ASN1_BIT_STRING *,const ASN1_INTEGER *)", "", "Argument[*3]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OCSP_copy_nonce", "(OCSP_BASICRESP *,OCSP_REQUEST *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_crlID_new", "(const char *,long *,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_id_cmp", "(const OCSP_CERTID *,const OCSP_CERTID *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_id_cmp", "(const OCSP_CERTID *,const OCSP_CERTID *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_id_get0_info", "(ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *)", "", "Argument[*4]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "OCSP_id_get0_info", "(ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *)", "", "Argument[*4]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OCSP_id_get0_info", "(ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *)", "", "Argument[*4]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "OCSP_id_get0_info", "(ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *)", "", "Argument[*4]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "OCSP_id_get0_info", "(ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OCSP_id_issuer_cmp", "(const OCSP_CERTID *,const OCSP_CERTID *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_id_issuer_cmp", "(const OCSP_CERTID *,const OCSP_CERTID *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_onereq_get0_id", "(OCSP_ONEREQ *)", "", "Argument[*0].Field[**reqCert]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OCSP_onereq_get0_id", "(OCSP_ONEREQ *)", "", "Argument[*0].Field[*reqCert]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OCSP_request_add0_id", "(OCSP_REQUEST *,OCSP_CERTID *)", "", "Argument[*1]", "ReturnValue[*].Field[**reqCert]", "value", "dfc-generated"] + - ["", "", True, "OCSP_request_add0_id", "(OCSP_REQUEST *,OCSP_CERTID *)", "", "Argument[1]", "ReturnValue[*].Field[*reqCert]", "value", "dfc-generated"] + - ["", "", True, "OCSP_request_add1_cert", "(OCSP_REQUEST *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_request_add1_cert", "(OCSP_REQUEST *,X509 *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "OCSP_request_onereq_get0", "(OCSP_REQUEST *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_request_set1_name", "(OCSP_REQUEST *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_request_sign", "(OCSP_REQUEST *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_request_sign", "(OCSP_REQUEST *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "OCSP_resp_find", "(OCSP_BASICRESP *,OCSP_CERTID *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_resp_get0", "(OCSP_BASICRESP *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OCSP_resp_get0_certs", "(const OCSP_BASICRESP *)", "", "Argument[*0].Field[**certs]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OCSP_resp_get0_certs", "(const OCSP_BASICRESP *)", "", "Argument[*0].Field[*certs]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OCSP_resp_get0_produced_at", "(const OCSP_BASICRESP *)", "", "Argument[*0].Field[*tbsResponseData].Field[**producedAt]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OCSP_resp_get0_produced_at", "(const OCSP_BASICRESP *)", "", "Argument[*0].Field[*tbsResponseData].Field[*producedAt]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OCSP_resp_get0_respdata", "(const OCSP_BASICRESP *)", "", "Argument[*0].Field[*tbsResponseData]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OCSP_resp_get0_signature", "(const OCSP_BASICRESP *)", "", "Argument[*0].Field[**signature]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OCSP_resp_get0_signature", "(const OCSP_BASICRESP *)", "", "Argument[*0].Field[*signature]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OCSP_resp_get0_signer", "(OCSP_BASICRESP *,X509 **,stack_st_X509 *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OCSP_resp_get0_signer", "(OCSP_BASICRESP *,X509 **,stack_st_X509 *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OCSP_resp_get0_signer", "(OCSP_BASICRESP *,X509 **,stack_st_X509 *)", "", "Argument[*2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OCSP_resp_get0_signer", "(OCSP_BASICRESP *,X509 **,stack_st_X509 *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OCSP_resp_get0_tbs_sigalg", "(const OCSP_BASICRESP *)", "", "Argument[*0].Field[*signatureAlgorithm]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OCSP_resp_get1_id", "(const OCSP_BASICRESP *,ASN1_OCTET_STRING **,X509_NAME **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_resp_get1_id", "(const OCSP_BASICRESP *,ASN1_OCTET_STRING **,X509_NAME **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_response_create", "(int,OCSP_BASICRESP *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OCSP_response_create", "(int,OCSP_BASICRESP *)", "", "Argument[0]", "ReturnValue[*].Field[**responseStatus].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OCSP_response_status", "(OCSP_RESPONSE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_sendreq_bio", "(BIO *,const char *,OCSP_REQUEST *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OCSP_sendreq_new", "(BIO *,const char *,const OCSP_REQUEST *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**rbio]", "value", "dfc-generated"] + - ["", "", True, "OCSP_sendreq_new", "(BIO *,const char *,const OCSP_REQUEST *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**wbio]", "value", "dfc-generated"] + - ["", "", True, "OCSP_sendreq_new", "(BIO *,const char *,const OCSP_REQUEST *,int)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OCSP_sendreq_new", "(BIO *,const char *,const OCSP_REQUEST *,int)", "", "Argument[0]", "ReturnValue[*].Field[*rbio]", "value", "dfc-generated"] + - ["", "", True, "OCSP_sendreq_new", "(BIO *,const char *,const OCSP_REQUEST *,int)", "", "Argument[0]", "ReturnValue[*].Field[*wbio]", "value", "dfc-generated"] + - ["", "", True, "OCSP_sendreq_new", "(BIO *,const char *,const OCSP_REQUEST *,int)", "", "Argument[3]", "ReturnValue[*].Field[*buf_size]", "value", "dfc-generated"] + - ["", "", True, "OCSP_single_get0_status", "(OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "OCSP_single_get0_status", "(OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **)", "", "Argument[*0]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "OCSP_single_get0_status", "(OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "OCSP_single_get0_status", "(OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "OCSP_single_get0_status", "(OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OCSP_url_svcloc_new", "(const X509_NAME *,const char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OCSP_url_svcloc_new", "(const X509_NAME *,const char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_url_svcloc_new", "(const X509_NAME *,const char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "OCSP_url_svcloc_new", "(const X509_NAME *,const char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_DIR_end", "(OPENSSL_DIR_CTX **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_DIR_read", "(OPENSSL_DIR_CTX **,const char *)", "", "Argument[**0].Field[*entry_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_DIR_read", "(OPENSSL_DIR_CTX **,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_INIT_set_config_appname", "(OPENSSL_INIT_SETTINGS *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**appname]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_INIT_set_config_appname", "(OPENSSL_INIT_SETTINGS *,const char *)", "", "Argument[1]", "Argument[*0].Field[**appname]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_INIT_set_config_file_flags", "(OPENSSL_INIT_SETTINGS *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_INIT_set_config_filename", "(OPENSSL_INIT_SETTINGS *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**filename]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_INIT_set_config_filename", "(OPENSSL_INIT_SETTINGS *,const char *)", "", "Argument[1]", "Argument[*0].Field[**filename]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_delete", "(OPENSSL_LHASH *,const void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OPENSSL_LH_delete", "(OPENSSL_LHASH *,const void *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_LH_delete", "(OPENSSL_LHASH *,const void *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_LH_doall_arg_thunk", "(OPENSSL_LHASH *,OPENSSL_LH_DOALL_FUNCARG_THUNK,OPENSSL_LH_DOALL_FUNCARG,void *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_error", "(OPENSSL_LHASH *)", "", "Argument[*0].Field[*error]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_get_down_load", "(const OPENSSL_LHASH *)", "", "Argument[*0].Field[*down_load]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_insert", "(OPENSSL_LHASH *,void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OPENSSL_LH_insert", "(OPENSSL_LHASH *,void *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_LH_insert", "(OPENSSL_LHASH *,void *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_LH_new", "(OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC)", "", "Argument[0]", "ReturnValue[*].Field[*hash]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_new", "(OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC)", "", "Argument[1]", "ReturnValue[*].Field[*comp]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_num_items", "(const OPENSSL_LHASH *)", "", "Argument[*0].Field[*num_items]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_retrieve", "(OPENSSL_LHASH *,const void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OPENSSL_LH_retrieve", "(OPENSSL_LHASH *,const void *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_LH_retrieve", "(OPENSSL_LHASH *,const void *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_LH_set_down_load", "(OPENSSL_LHASH *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*down_load]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_set_thunks", "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_set_thunks", "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_set_thunks", "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)", "", "Argument[1]", "Argument[*0].Field[*hashw]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_set_thunks", "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)", "", "Argument[1]", "ReturnValue[*].Field[*hashw]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_set_thunks", "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)", "", "Argument[2]", "Argument[*0].Field[*compw]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_set_thunks", "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)", "", "Argument[2]", "ReturnValue[*].Field[*compw]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_set_thunks", "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)", "", "Argument[3]", "Argument[*0].Field[*daw]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_set_thunks", "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)", "", "Argument[3]", "ReturnValue[*].Field[*daw]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_set_thunks", "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)", "", "Argument[4]", "Argument[*0].Field[*daaw]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_set_thunks", "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)", "", "Argument[4]", "ReturnValue[*].Field[*daaw]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_strhash", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_LH_strhash", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_asc2uni", "(const char *,int,unsigned char **,int *)", "", "Argument[*0]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_asc2uni", "(const char *,int,unsigned char **,int *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_asc2uni", "(const char *,int,unsigned char **,int *)", "", "Argument[0]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_asc2uni", "(const char *,int,unsigned char **,int *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_asc2uni", "(const char *,int,unsigned char **,int *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_buf2hexstr", "(const unsigned char *,long)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_buf2hexstr", "(const unsigned char *,long)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_buf2hexstr_ex", "(char *,size_t,size_t *,const unsigned char *,size_t,const char)", "", "Argument[*3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_buf2hexstr_ex", "(char *,size_t,size_t *,const unsigned char *,size_t,const char)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_buf2hexstr_ex", "(char *,size_t,size_t *,const unsigned char *,size_t,const char)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_buf2hexstr_ex", "(char *,size_t,size_t *,const unsigned char *,size_t,const char)", "", "Argument[4]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_buf2hexstr_ex", "(char *,size_t,size_t *,const unsigned char *,size_t,const char)", "", "Argument[5]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_gmtime", "(const time_t *,tm *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_gmtime", "(const time_t *,tm *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_gmtime_adj", "(tm *,int,long)", "", "Argument[1]", "Argument[*0].Field[*tm_mday]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_gmtime_adj", "(tm *,int,long)", "", "Argument[1]", "Argument[*0].Field[*tm_mon]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_gmtime_adj", "(tm *,int,long)", "", "Argument[1]", "Argument[*0].Field[*tm_year]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_gmtime_diff", "(int *,int *,const tm *,const tm *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_gmtime_diff", "(int *,int *,const tm *,const tm *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_gmtime_diff", "(int *,int *,const tm *,const tm *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_gmtime_diff", "(int *,int *,const tm *,const tm *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_sk_deep_copy", "(const OPENSSL_STACK *,OPENSSL_sk_copyfunc,OPENSSL_sk_freefunc)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "OPENSSL_sk_deep_copy", "(const OPENSSL_STACK *,OPENSSL_sk_copyfunc,OPENSSL_sk_freefunc)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_deep_copy", "(const OPENSSL_STACK *,OPENSSL_sk_copyfunc,OPENSSL_sk_freefunc)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_delete", "(OPENSSL_STACK *,int)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_delete", "(OPENSSL_STACK *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_delete_ptr", "(OPENSSL_STACK *,const void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OPENSSL_sk_delete_ptr", "(OPENSSL_STACK *,const void *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_sk_delete_ptr", "(OPENSSL_STACK *,const void *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_sk_dup", "(const OPENSSL_STACK *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "OPENSSL_sk_dup", "(const OPENSSL_STACK *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_dup", "(const OPENSSL_STACK *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_find", "(OPENSSL_STACK *,const void *)", "", "Argument[*0].Field[*data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_find", "(OPENSSL_STACK *,const void *)", "", "Argument[*0].Field[*num]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_find_all", "(OPENSSL_STACK *,const void *,int *)", "", "Argument[*0].Field[*data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_find_all", "(OPENSSL_STACK *,const void *,int *)", "", "Argument[*0].Field[*num]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_find_ex", "(OPENSSL_STACK *,const void *)", "", "Argument[*0].Field[*data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_find_ex", "(OPENSSL_STACK *,const void *)", "", "Argument[*0].Field[*num]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_insert", "(OPENSSL_STACK *,const void *,int)", "", "Argument[*1]", "Argument[*0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_insert", "(OPENSSL_STACK *,const void *,int)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_insert", "(OPENSSL_STACK *,const void *,int)", "", "Argument[2]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_is_sorted", "(const OPENSSL_STACK *)", "", "Argument[*0].Field[*sorted]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_new", "(OPENSSL_sk_compfunc)", "", "Argument[0]", "ReturnValue[*].Field[*comp]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_new_reserve", "(OPENSSL_sk_compfunc,int)", "", "Argument[0]", "ReturnValue[*].Field[*comp]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_new_reserve", "(OPENSSL_sk_compfunc,int)", "", "Argument[1]", "ReturnValue[*].Field[*num_alloc]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_num", "(const OPENSSL_STACK *)", "", "Argument[*0].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_pop", "(OPENSSL_STACK *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OPENSSL_sk_pop", "(OPENSSL_STACK *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_sk_pop", "(OPENSSL_STACK *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_sk_push", "(OPENSSL_STACK *,const void *)", "", "Argument[*1]", "Argument[*0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_push", "(OPENSSL_STACK *,const void *)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_reserve", "(OPENSSL_STACK *,int)", "", "Argument[1]", "Argument[*0].Field[*num_alloc]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set", "(OPENSSL_STACK *,int,const void *)", "", "Argument[*2]", "Argument[*0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set", "(OPENSSL_STACK *,int,const void *)", "", "Argument[*2]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set", "(OPENSSL_STACK *,int,const void *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set", "(OPENSSL_STACK *,int,const void *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set", "(OPENSSL_STACK *,int,const void *)", "", "Argument[2]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set", "(OPENSSL_STACK *,int,const void *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set", "(OPENSSL_STACK *,int,const void *)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set_cmp_func", "(OPENSSL_STACK *,OPENSSL_sk_compfunc)", "", "Argument[*0].Field[*comp]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set_cmp_func", "(OPENSSL_STACK *,OPENSSL_sk_compfunc)", "", "Argument[1]", "Argument[*0].Field[*comp]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set_thunks", "(OPENSSL_STACK *,OPENSSL_sk_freefunc_thunk)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set_thunks", "(OPENSSL_STACK *,OPENSSL_sk_freefunc_thunk)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set_thunks", "(OPENSSL_STACK *,OPENSSL_sk_freefunc_thunk)", "", "Argument[1]", "Argument[*0].Field[*free_thunk]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_set_thunks", "(OPENSSL_STACK *,OPENSSL_sk_freefunc_thunk)", "", "Argument[1]", "ReturnValue[*].Field[*free_thunk]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_shift", "(OPENSSL_STACK *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OPENSSL_sk_shift", "(OPENSSL_STACK *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_sk_shift", "(OPENSSL_STACK *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OPENSSL_sk_unshift", "(OPENSSL_STACK *,const void *)", "", "Argument[*1]", "Argument[*0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_unshift", "(OPENSSL_STACK *,const void *)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_sk_value", "(const OPENSSL_STACK *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strcasecmp", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strcasecmp", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strcasecmp", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strcasecmp", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strlcat", "(char *,const char *,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_strlcat", "(char *,const char *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strlcat", "(char *,const char *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strlcpy", "(char *,const char *,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_strlcpy", "(char *,const char *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strlcpy", "(char *,const char *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strncasecmp", "(const char *,const char *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strncasecmp", "(const char *,const char *,size_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strncasecmp", "(const char *,const char *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strncasecmp", "(const char *,const char *,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strnlen", "(const char *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strtoul", "(const char *,char **,int,unsigned long *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strtoul", "(const char *,char **,int,unsigned long *)", "", "Argument[*0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strtoul", "(const char *,char **,int,unsigned long *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_strtoul", "(const char *,char **,int,unsigned long *)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_uni2asc", "(const unsigned char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_uni2asc", "(const unsigned char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_uni2utf8", "(const unsigned char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_uni2utf8", "(const unsigned char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_utf82uni", "(const char *,int,unsigned char **,int *)", "", "Argument[*0]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_utf82uni", "(const char *,int,unsigned char **,int *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OPENSSL_utf82uni", "(const char *,int,unsigned char **,int *)", "", "Argument[0]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_utf82uni", "(const char *,int,unsigned char **,int *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OPENSSL_utf82uni", "(const char *,int,unsigned char **,int *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_AA_DIST_POINT_free", "(OSSL_AA_DIST_POINT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_AA_DIST_POINT_free", "(OSSL_AA_DIST_POINT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ALLOWED_ATTRIBUTES_CHOICE_free", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ALLOWED_ATTRIBUTES_CHOICE_free", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ALLOWED_ATTRIBUTES_ITEM_free", "(OSSL_ALLOWED_ATTRIBUTES_ITEM *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ALLOWED_ATTRIBUTES_ITEM_free", "(OSSL_ALLOWED_ATTRIBUTES_ITEM *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ALLOWED_ATTRIBUTES_SYNTAX_free", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ALLOWED_ATTRIBUTES_SYNTAX_free", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATAV_free", "(OSSL_ATAV *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATAV_free", "(OSSL_ATAV *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTES_SYNTAX_free", "(OSSL_ATTRIBUTES_SYNTAX *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTES_SYNTAX_free", "(OSSL_ATTRIBUTES_SYNTAX *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTE_DESCRIPTOR_free", "(OSSL_ATTRIBUTE_DESCRIPTOR *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTE_DESCRIPTOR_free", "(OSSL_ATTRIBUTE_DESCRIPTOR *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTE_MAPPINGS_free", "(OSSL_ATTRIBUTE_MAPPINGS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTE_MAPPINGS_free", "(OSSL_ATTRIBUTE_MAPPINGS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTE_MAPPING_free", "(OSSL_ATTRIBUTE_MAPPING *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTE_MAPPING_free", "(OSSL_ATTRIBUTE_MAPPING *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTE_TYPE_MAPPING_free", "(OSSL_ATTRIBUTE_TYPE_MAPPING *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTE_TYPE_MAPPING_free", "(OSSL_ATTRIBUTE_TYPE_MAPPING *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTE_VALUE_MAPPING_free", "(OSSL_ATTRIBUTE_VALUE_MAPPING *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ATTRIBUTE_VALUE_MAPPING_free", "(OSSL_ATTRIBUTE_VALUE_MAPPING *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX_free", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX_free", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_BASIC_ATTR_CONSTRAINTS_free", "(OSSL_BASIC_ATTR_CONSTRAINTS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_BASIC_ATTR_CONSTRAINTS_free", "(OSSL_BASIC_ATTR_CONSTRAINTS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ATAVS_free", "(OSSL_CMP_ATAVS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ATAVS_free", "(OSSL_CMP_ATAVS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ATAV_create", "(ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[*0]", "ReturnValue[*].Field[**type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_create", "(ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[*1]", "ReturnValue[*].Field[*value].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_create", "(ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[0]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_create", "(ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[1]", "ReturnValue[*].Field[*value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_get0_algId", "(const OSSL_CMP_ATAV *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ATAV_get0_algId", "(const OSSL_CMP_ATAV *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ATAV_get0_type", "(const OSSL_CMP_ATAV *)", "", "Argument[*0].Field[**type]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_get0_type", "(const OSSL_CMP_ATAV *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_get0_value", "(const OSSL_CMP_ATAV *)", "", "Argument[*0].Field[*value].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_get0_value", "(const OSSL_CMP_ATAV *)", "", "Argument[*0].Field[*value].Union[**(unnamed class/struct/union)]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_new_algId", "(const X509_ALGOR *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ATAV_push1", "(OSSL_CMP_ATAVS **,const OSSL_CMP_ATAV *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ATAV_push1", "(OSSL_CMP_ATAVS **,const OSSL_CMP_ATAV *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_set0", "(OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[*1]", "Argument[*0].Field[**type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_set0", "(OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[*2]", "Argument[*0].Field[*value].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_set0", "(OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[1]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ATAV_set0", "(OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[2]", "Argument[*0].Field[*value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CAKEYUPDANNCONTENT_free", "(OSSL_CMP_CAKEYUPDANNCONTENT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CAKEYUPDANNCONTENT_free", "(OSSL_CMP_CAKEYUPDANNCONTENT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTIFIEDKEYPAIR_free", "(OSSL_CMP_CERTIFIEDKEYPAIR *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTIFIEDKEYPAIR_free", "(OSSL_CMP_CERTIFIEDKEYPAIR *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTORENCCERT_free", "(OSSL_CMP_CERTORENCCERT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTORENCCERT_free", "(OSSL_CMP_CERTORENCCERT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTREPMESSAGE_free", "(OSSL_CMP_CERTREPMESSAGE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTREPMESSAGE_free", "(OSSL_CMP_CERTREPMESSAGE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTREQTEMPLATE_free", "(OSSL_CMP_CERTREQTEMPLATE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTREQTEMPLATE_free", "(OSSL_CMP_CERTREQTEMPLATE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTRESPONSE_free", "(OSSL_CMP_CERTRESPONSE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTRESPONSE_free", "(OSSL_CMP_CERTRESPONSE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTSTATUS_free", "(OSSL_CMP_CERTSTATUS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CERTSTATUS_free", "(OSSL_CMP_CERTSTATUS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CHALLENGE_free", "(OSSL_CMP_CHALLENGE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CHALLENGE_free", "(OSSL_CMP_CHALLENGE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CRLSOURCE_free", "(OSSL_CMP_CRLSOURCE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CRLSOURCE_free", "(OSSL_CMP_CRLSOURCE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CRLSTATUS_create", "(const X509_CRL *,const X509 *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CRLSTATUS_free", "(OSSL_CMP_CRLSTATUS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CRLSTATUS_free", "(OSSL_CMP_CRLSTATUS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CRLSTATUS_get0", "(const OSSL_CMP_CRLSTATUS *,DIST_POINT_NAME **,GENERAL_NAMES **,ASN1_TIME **)", "", "Argument[*0].Field[**thisUpdate]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CRLSTATUS_get0", "(const OSSL_CMP_CRLSTATUS *,DIST_POINT_NAME **,GENERAL_NAMES **,ASN1_TIME **)", "", "Argument[*0].Field[*thisUpdate]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CRLSTATUS_new1", "(const DIST_POINT_NAME *,const GENERAL_NAMES *,const ASN1_TIME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CRLSTATUS_new1", "(const DIST_POINT_NAME *,const GENERAL_NAMES *,const ASN1_TIME *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CRLSTATUS_new1", "(const DIST_POINT_NAME *,const GENERAL_NAMES *,const ASN1_TIME *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_build_cert_chain", "(OSSL_CMP_CTX *,X509_STORE *,stack_st_X509 *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_geninfo_ITAVs", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[**geninfo_ITAVs]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_geninfo_ITAVs", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[*geninfo_ITAVs]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_libctx", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_libctx", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_newCert", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[**newCert]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_newCert", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[*newCert]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_newPkey", "(const OSSL_CMP_CTX *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_newPkey", "(const OSSL_CMP_CTX *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_propq", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[**propq]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_propq", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[*propq]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_statusString", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[**statusString]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_statusString", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[*statusString]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_trustedStore", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[**trusted]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_trustedStore", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[*trusted]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_untrusted", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[**untrusted]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_untrusted", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[*untrusted]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_validatedSrvCert", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[**validatedSrvCert]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get0_validatedSrvCert", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[*validatedSrvCert]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get1_caPubs", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get1_extraCertsIn", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get1_newChain", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_certConf_cb_arg", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_certConf_cb_arg", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_certConf_cb_arg", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_failInfoCode", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[*failInfoCode]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_http_cb_arg", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_http_cb_arg", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_http_cb_arg", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_option", "(const OSSL_CMP_CTX *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_status", "(const OSSL_CMP_CTX *)", "", "Argument[*0].Field[*status]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_transfer_cb_arg", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_transfer_cb_arg", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_get_transfer_cb_arg", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_geninfo_ITAV", "(OSSL_CMP_CTX *,OSSL_CMP_ITAV *)", "", "Argument[*1]", "Argument[*0].Field[**geninfo_ITAVs].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_geninfo_ITAV", "(OSSL_CMP_CTX *,OSSL_CMP_ITAV *)", "", "Argument[*1]", "Argument[*0].Field[**geninfo_ITAVs].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_geninfo_ITAV", "(OSSL_CMP_CTX *,OSSL_CMP_ITAV *)", "", "Argument[1]", "Argument[*0].Field[**geninfo_ITAVs].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_geninfo_ITAV", "(OSSL_CMP_CTX *,OSSL_CMP_ITAV *)", "", "Argument[1]", "Argument[*0].Field[**geninfo_ITAVs].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_genm_ITAV", "(OSSL_CMP_CTX *,OSSL_CMP_ITAV *)", "", "Argument[*1]", "Argument[*0].Field[**genm_ITAVs].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_genm_ITAV", "(OSSL_CMP_CTX *,OSSL_CMP_ITAV *)", "", "Argument[*1]", "Argument[*0].Field[**genm_ITAVs].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_genm_ITAV", "(OSSL_CMP_CTX *,OSSL_CMP_ITAV *)", "", "Argument[1]", "Argument[*0].Field[**genm_ITAVs].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_genm_ITAV", "(OSSL_CMP_CTX *,OSSL_CMP_ITAV *)", "", "Argument[1]", "Argument[*0].Field[**genm_ITAVs].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_policy", "(OSSL_CMP_CTX *,POLICYINFO *)", "", "Argument[*1]", "Argument[*0].Field[**policies].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_policy", "(OSSL_CMP_CTX *,POLICYINFO *)", "", "Argument[*1]", "Argument[*0].Field[**policies].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_policy", "(OSSL_CMP_CTX *,POLICYINFO *)", "", "Argument[1]", "Argument[*0].Field[**policies].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push0_policy", "(OSSL_CMP_CTX *,POLICYINFO *)", "", "Argument[1]", "Argument[*0].Field[**policies].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_push1_subjectAltName", "(OSSL_CMP_CTX *,const GENERAL_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set0_newPkey", "(OSSL_CMP_CTX *,int,EVP_PKEY *)", "", "Argument[*2]", "Argument[*0].Field[**newPkey]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set0_newPkey", "(OSSL_CMP_CTX *,int,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[*newPkey_priv]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set0_newPkey", "(OSSL_CMP_CTX *,int,EVP_PKEY *)", "", "Argument[2]", "Argument[*0].Field[*newPkey]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set0_reqExtensions", "(OSSL_CMP_CTX *,X509_EXTENSIONS *)", "", "Argument[*1]", "Argument[*0].Field[**reqExtensions]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set0_reqExtensions", "(OSSL_CMP_CTX *,X509_EXTENSIONS *)", "", "Argument[1]", "Argument[*0].Field[*reqExtensions]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set0_trustedStore", "(OSSL_CMP_CTX *,X509_STORE *)", "", "Argument[*1]", "Argument[*0].Field[**trusted]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set0_trustedStore", "(OSSL_CMP_CTX *,X509_STORE *)", "", "Argument[1]", "Argument[*0].Field[*trusted]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_cert", "(OSSL_CMP_CTX *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_cert", "(OSSL_CMP_CTX *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*cert]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_expected_sender", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_expected_sender", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_expected_sender", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_extraCertsOut", "(OSSL_CMP_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[**extraCertsOut]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_extraCertsOut", "(OSSL_CMP_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_issuer", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_issuer", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_issuer", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_no_proxy", "(OSSL_CMP_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**no_proxy]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_no_proxy", "(OSSL_CMP_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[**no_proxy]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_oldCert", "(OSSL_CMP_CTX *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_oldCert", "(OSSL_CMP_CTX *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*oldCert]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_p10CSR", "(OSSL_CMP_CTX *,const X509_REQ *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_p10CSR", "(OSSL_CMP_CTX *,const X509_REQ *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_p10CSR", "(OSSL_CMP_CTX *,const X509_REQ *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_pkey", "(OSSL_CMP_CTX *,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_proxy", "(OSSL_CMP_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**proxy]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_proxy", "(OSSL_CMP_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[**proxy]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_recipient", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_recipient", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_recipient", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_referenceValue", "(OSSL_CMP_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[**referenceValue].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_referenceValue", "(OSSL_CMP_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**referenceValue].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_referenceValue", "(OSSL_CMP_CTX *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[**referenceValue].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_secretValue", "(OSSL_CMP_CTX *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[**secretValue].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_secretValue", "(OSSL_CMP_CTX *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**secretValue].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_secretValue", "(OSSL_CMP_CTX *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[**secretValue].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_senderNonce", "(OSSL_CMP_CTX *,const ASN1_OCTET_STRING *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_serialNumber", "(OSSL_CMP_CTX *,const ASN1_INTEGER *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_server", "(OSSL_CMP_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**server]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_server", "(OSSL_CMP_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[**server]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_serverPath", "(OSSL_CMP_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**serverPath]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_serverPath", "(OSSL_CMP_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[**serverPath]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_srvCert", "(OSSL_CMP_CTX *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_srvCert", "(OSSL_CMP_CTX *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*srvCert]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_subjectName", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_subjectName", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_subjectName", "(OSSL_CMP_CTX *,const X509_NAME *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_transactionID", "(OSSL_CMP_CTX *,const ASN1_OCTET_STRING *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set1_untrusted", "(OSSL_CMP_CTX *,stack_st_X509 *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_certConf_cb", "(OSSL_CMP_CTX *,OSSL_CMP_certConf_cb_t)", "", "Argument[1]", "Argument[*0].Field[*certConf_cb]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_certConf_cb_arg", "(OSSL_CMP_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***certConf_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_certConf_cb_arg", "(OSSL_CMP_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**certConf_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_certConf_cb_arg", "(OSSL_CMP_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*certConf_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_http_cb", "(OSSL_CMP_CTX *,OSSL_HTTP_bio_cb_t)", "", "Argument[1]", "Argument[*0].Field[*http_cb]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_http_cb_arg", "(OSSL_CMP_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***http_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_http_cb_arg", "(OSSL_CMP_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**http_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_http_cb_arg", "(OSSL_CMP_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*http_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_log_cb", "(OSSL_CMP_CTX *,OSSL_CMP_log_cb_t)", "", "Argument[1]", "Argument[*0].Field[*log_cb]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_option", "(OSSL_CMP_CTX *,int,int)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_serverPort", "(OSSL_CMP_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*serverPort]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_transfer_cb", "(OSSL_CMP_CTX *,OSSL_CMP_transfer_cb_t)", "", "Argument[1]", "Argument[*0].Field[*transfer_cb]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_transfer_cb_arg", "(OSSL_CMP_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***transfer_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_transfer_cb_arg", "(OSSL_CMP_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**transfer_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_set_transfer_cb_arg", "(OSSL_CMP_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*transfer_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_snprint_PKIStatus", "(const OSSL_CMP_CTX *,char *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_snprint_PKIStatus", "(const OSSL_CMP_CTX *,char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_snprint_PKIStatus", "(const OSSL_CMP_CTX *,char *,size_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_CTX_snprint_PKIStatus", "(const OSSL_CMP_CTX *,char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ERRORMSGCONTENT_free", "(OSSL_CMP_ERRORMSGCONTENT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ERRORMSGCONTENT_free", "(OSSL_CMP_ERRORMSGCONTENT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_HDR_get0_geninfo_ITAVs", "(const OSSL_CMP_PKIHEADER *)", "", "Argument[*0].Field[**generalInfo]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_HDR_get0_geninfo_ITAVs", "(const OSSL_CMP_PKIHEADER *)", "", "Argument[*0].Field[*generalInfo]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_HDR_get0_recipNonce", "(const OSSL_CMP_PKIHEADER *)", "", "Argument[*0].Field[**recipNonce]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_HDR_get0_recipNonce", "(const OSSL_CMP_PKIHEADER *)", "", "Argument[*0].Field[*recipNonce]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_HDR_get0_transactionID", "(const OSSL_CMP_PKIHEADER *)", "", "Argument[*0].Field[**transactionID]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_HDR_get0_transactionID", "(const OSSL_CMP_PKIHEADER *)", "", "Argument[*0].Field[*transactionID]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_create", "(ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[*0]", "ReturnValue[*].Field[**infoType]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_create", "(ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[*1]", "ReturnValue[*].Field[*infoValue].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_create", "(ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[0]", "ReturnValue[*].Field[*infoType]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_create", "(ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[1]", "ReturnValue[*].Field[*infoValue].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_dup", "(const OSSL_CMP_ITAV *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_dup", "(const OSSL_CMP_ITAV *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_dup", "(const OSSL_CMP_ITAV *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_dup", "(const OSSL_CMP_ITAV *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_dup", "(const OSSL_CMP_ITAV *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_free", "(OSSL_CMP_ITAV *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_free", "(OSSL_CMP_ITAV *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_caCerts", "(const OSSL_CMP_ITAV *,stack_st_X509 **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_caCerts", "(const OSSL_CMP_ITAV *,stack_st_X509 **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_certProfile", "(const OSSL_CMP_ITAV *,stack_st_ASN1_UTF8STRING **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_certProfile", "(const OSSL_CMP_ITAV *,stack_st_ASN1_UTF8STRING **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_crlStatusList", "(const OSSL_CMP_ITAV *,stack_st_OSSL_CMP_CRLSTATUS **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_crlStatusList", "(const OSSL_CMP_ITAV *,stack_st_OSSL_CMP_CRLSTATUS **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_crls", "(const OSSL_CMP_ITAV *,stack_st_X509_CRL **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_crls", "(const OSSL_CMP_ITAV *,stack_st_X509_CRL **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_rootCaCert", "(const OSSL_CMP_ITAV *,X509 **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_rootCaCert", "(const OSSL_CMP_ITAV *,X509 **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_type", "(const OSSL_CMP_ITAV *)", "", "Argument[*0].Field[**infoType]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_type", "(const OSSL_CMP_ITAV *)", "", "Argument[*0].Field[*infoType]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_value", "(const OSSL_CMP_ITAV *)", "", "Argument[*0].Field[*infoValue].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get0_value", "(const OSSL_CMP_ITAV *)", "", "Argument[*0].Field[*infoValue].Union[**(unnamed class/struct/union)]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get1_certReqTemplate", "(const OSSL_CMP_ITAV *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get1_certReqTemplate", "(const OSSL_CMP_ITAV *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get1_certReqTemplate", "(const OSSL_CMP_ITAV *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get1_certReqTemplate", "(const OSSL_CMP_ITAV *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_get1_certReqTemplate", "(const OSSL_CMP_ITAV *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new0_certProfile", "(stack_st_ASN1_UTF8STRING *)", "", "Argument[*0]", "ReturnValue[*].Field[*infoValue].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new0_certProfile", "(stack_st_ASN1_UTF8STRING *)", "", "Argument[0]", "ReturnValue[*].Field[*infoValue].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new0_crlStatusList", "(stack_st_OSSL_CMP_CRLSTATUS *)", "", "Argument[*0]", "ReturnValue[*].Field[*infoValue].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new0_crlStatusList", "(stack_st_OSSL_CMP_CRLSTATUS *)", "", "Argument[0]", "ReturnValue[*].Field[*infoValue].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new_caCerts", "(const stack_st_X509 *)", "", "Argument[*0]", "ReturnValue[*].Field[*infoValue].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new_caCerts", "(const stack_st_X509 *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new_caCerts", "(const stack_st_X509 *)", "", "Argument[0]", "ReturnValue[*].Field[*infoValue].Union[**(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new_crls", "(const X509_CRL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new_rootCaCert", "(const X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new_rootCaKeyUpdate", "(const X509 *,const X509 *,const X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new_rootCaKeyUpdate", "(const X509 *,const X509 *,const X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_new_rootCaKeyUpdate", "(const X509 *,const X509 *,const X509 *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ITAV_push0_stack_item", "(stack_st_OSSL_CMP_ITAV **,OSSL_CMP_ITAV *)", "", "Argument[*1]", "Argument[**0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_push0_stack_item", "(stack_st_OSSL_CMP_ITAV **,OSSL_CMP_ITAV *)", "", "Argument[*1]", "Argument[**0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_push0_stack_item", "(stack_st_OSSL_CMP_ITAV **,OSSL_CMP_ITAV *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_push0_stack_item", "(stack_st_OSSL_CMP_ITAV **,OSSL_CMP_ITAV *)", "", "Argument[1]", "Argument[**0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_push0_stack_item", "(stack_st_OSSL_CMP_ITAV **,OSSL_CMP_ITAV *)", "", "Argument[1]", "Argument[**0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_set0", "(OSSL_CMP_ITAV *,ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[*1]", "Argument[*0].Field[**infoType]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_set0", "(OSSL_CMP_ITAV *,ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[*2]", "Argument[*0].Field[*infoValue].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_set0", "(OSSL_CMP_ITAV *,ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[1]", "Argument[*0].Field[*infoType]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_ITAV_set0", "(OSSL_CMP_ITAV *,ASN1_OBJECT *,ASN1_TYPE *)", "", "Argument[2]", "Argument[*0].Field[*infoValue].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_KEYRECREPCONTENT_free", "(OSSL_CMP_KEYRECREPCONTENT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_KEYRECREPCONTENT_free", "(OSSL_CMP_KEYRECREPCONTENT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_MSG_dup", "(const OSSL_CMP_MSG *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_MSG_dup", "(const OSSL_CMP_MSG *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_MSG_dup", "(const OSSL_CMP_MSG *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_MSG_dup", "(const OSSL_CMP_MSG *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_MSG_dup", "(const OSSL_CMP_MSG *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_MSG_free", "(OSSL_CMP_MSG *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_MSG_free", "(OSSL_CMP_MSG *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_MSG_get0_header", "(const OSSL_CMP_MSG *)", "", "Argument[*0].Field[**header]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_get0_header", "(const OSSL_CMP_MSG *)", "", "Argument[*0].Field[*header]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_get_bodytype", "(const OSSL_CMP_MSG *)", "", "Argument[*0].Field[**body].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_http_perform", "(OSSL_CMP_CTX *,const OSSL_CMP_MSG *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_MSG_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_read", "(const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue.Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_read", "(const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_read", "(const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue.Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_read", "(const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_read", "(const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue.Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_read", "(const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_read", "(const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue.Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_read", "(const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_MSG_update_recipNonce", "(OSSL_CMP_CTX *,OSSL_CMP_MSG *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_MSG_update_transactionID", "(OSSL_CMP_CTX *,OSSL_CMP_MSG *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_PKIBODY_free", "(OSSL_CMP_PKIBODY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_PKIBODY_free", "(OSSL_CMP_PKIBODY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_PKIHEADER_free", "(OSSL_CMP_PKIHEADER *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_PKIHEADER_free", "(OSSL_CMP_PKIHEADER *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_PKISI_dup", "(const OSSL_CMP_PKISI *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_PKISI_dup", "(const OSSL_CMP_PKISI *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_PKISI_dup", "(const OSSL_CMP_PKISI *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_PKISI_dup", "(const OSSL_CMP_PKISI *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_PKISI_dup", "(const OSSL_CMP_PKISI *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_PKISI_free", "(OSSL_CMP_PKISI *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_PKISI_free", "(OSSL_CMP_PKISI *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_POLLREP_free", "(OSSL_CMP_POLLREP *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_POLLREP_free", "(OSSL_CMP_POLLREP *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_POLLREQ_free", "(OSSL_CMP_POLLREQ *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_POLLREQ_free", "(OSSL_CMP_POLLREQ *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_PROTECTEDPART_free", "(OSSL_CMP_PROTECTEDPART *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_PROTECTEDPART_free", "(OSSL_CMP_PROTECTEDPART *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_REVANNCONTENT_free", "(OSSL_CMP_REVANNCONTENT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_REVANNCONTENT_free", "(OSSL_CMP_REVANNCONTENT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_REVDETAILS_free", "(OSSL_CMP_REVDETAILS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_REVDETAILS_free", "(OSSL_CMP_REVDETAILS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_REVREPCONTENT_free", "(OSSL_CMP_REVREPCONTENT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_REVREPCONTENT_free", "(OSSL_CMP_REVREPCONTENT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ROOTCAKEYUPDATE_free", "(OSSL_CMP_ROOTCAKEYUPDATE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_ROOTCAKEYUPDATE_free", "(OSSL_CMP_ROOTCAKEYUPDATE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_get0_cmp_ctx", "(const OSSL_CMP_SRV_CTX *)", "", "Argument[*0].Field[**ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_get0_cmp_ctx", "(const OSSL_CMP_SRV_CTX *)", "", "Argument[*0].Field[*ctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_get0_custom_ctx", "(const OSSL_CMP_SRV_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_get0_custom_ctx", "(const OSSL_CMP_SRV_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_get0_custom_ctx", "(const OSSL_CMP_SRV_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init", "(OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t)", "", "Argument[**1]", "Argument[*0].Field[***custom_ctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init", "(OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t)", "", "Argument[*1]", "Argument[*0].Field[**custom_ctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init", "(OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t)", "", "Argument[1]", "Argument[*0].Field[*custom_ctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init", "(OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t)", "", "Argument[2]", "Argument[*0].Field[*process_cert_request]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init", "(OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t)", "", "Argument[3]", "Argument[*0].Field[*process_rr]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init", "(OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t)", "", "Argument[4]", "Argument[*0].Field[*process_genm]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init", "(OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t)", "", "Argument[5]", "Argument[*0].Field[*process_error]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init", "(OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t)", "", "Argument[6]", "Argument[*0].Field[*process_certConf]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init", "(OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t)", "", "Argument[7]", "Argument[*0].Field[*process_pollReq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init_trans", "(OSSL_CMP_SRV_CTX *,OSSL_CMP_SRV_delayed_delivery_cb_t,OSSL_CMP_SRV_clean_transaction_cb_t)", "", "Argument[1]", "Argument[*0].Field[*delayed_delivery]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_init_trans", "(OSSL_CMP_SRV_CTX *,OSSL_CMP_SRV_delayed_delivery_cb_t,OSSL_CMP_SRV_clean_transaction_cb_t)", "", "Argument[2]", "Argument[*0].Field[*clean_transaction]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_set_accept_raverified", "(OSSL_CMP_SRV_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*acceptRAVerified]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_set_accept_unprotected", "(OSSL_CMP_SRV_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*acceptUnprotected]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_set_grant_implicit_confirm", "(OSSL_CMP_SRV_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*grantImplicitConfirm]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_CTX_set_send_unprotected_errors", "(OSSL_CMP_SRV_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*sendUnprotectedErrors]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_SRV_process_request", "(OSSL_CMP_SRV_CTX *,const OSSL_CMP_MSG *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_STATUSINFO_new", "(int,int,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**status].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_certConf_cb", "(OSSL_CMP_CTX *,X509 *,int,const char **)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_certConf_cb", "(OSSL_CMP_CTX *,X509 *,int,const char **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_certConf_cb", "(OSSL_CMP_CTX *,X509 *,int,const char **)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_exec_certreq", "(OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_exec_certreq", "(OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_exec_certreq", "(OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_get1_caCerts", "(OSSL_CMP_CTX *,stack_st_X509 **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_get1_certReqTemplate", "(OSSL_CMP_CTX *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_get1_certReqTemplate", "(OSSL_CMP_CTX *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_get1_certReqTemplate", "(OSSL_CMP_CTX *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_get1_certReqTemplate", "(OSSL_CMP_CTX *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_get1_certReqTemplate", "(OSSL_CMP_CTX *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_get1_crlUpdate", "(OSSL_CMP_CTX *,const X509 *,const X509_CRL *,X509_CRL **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_get1_rootCaKeyUpdate", "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)", "", "Argument[**2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_get1_rootCaKeyUpdate", "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)", "", "Argument[**3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_get1_rootCaKeyUpdate", "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_get1_rootCaKeyUpdate", "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_get1_rootCaKeyUpdate", "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_get1_rootCaKeyUpdate", "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_get1_rootCaKeyUpdate", "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_get1_rootCaKeyUpdate", "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_get1_rootCaKeyUpdate", "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_get1_rootCaKeyUpdate", "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_snprint_PKIStatusInfo", "(const OSSL_CMP_PKISI *,char *,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_snprint_PKIStatusInfo", "(const OSSL_CMP_PKISI *,char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_snprint_PKIStatusInfo", "(const OSSL_CMP_PKISI *,char *,size_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CMP_snprint_PKIStatusInfo", "(const OSSL_CMP_PKISI *,char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CMP_try_certreq", "(OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *,int *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "OSSL_CMP_try_certreq", "(OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *,int *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OSSL_CMP_validate_msg", "(OSSL_CMP_CTX *,const OSSL_CMP_MSG *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup", "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup", "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup", "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup", "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup", "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_dup", "(const OSSL_CRMF_CERTID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_dup", "(const OSSL_CRMF_CERTID *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_dup", "(const OSSL_CRMF_CERTID *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_dup", "(const OSSL_CRMF_CERTID *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_dup", "(const OSSL_CRMF_CERTID *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_free", "(OSSL_CRMF_CERTID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_free", "(OSSL_CRMF_CERTID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_gen", "(const X509_NAME *,const ASN1_INTEGER *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_gen", "(const X509_NAME *,const ASN1_INTEGER *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_get0_serialNumber", "(const OSSL_CRMF_CERTID *)", "", "Argument[*0].Field[**serialNumber]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTID_get0_serialNumber", "(const OSSL_CRMF_CERTID *)", "", "Argument[*0].Field[*serialNumber]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTREQUEST_dup", "(const OSSL_CRMF_CERTREQUEST *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTREQUEST_dup", "(const OSSL_CRMF_CERTREQUEST *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTREQUEST_dup", "(const OSSL_CRMF_CERTREQUEST *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTREQUEST_dup", "(const OSSL_CRMF_CERTREQUEST *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTREQUEST_dup", "(const OSSL_CRMF_CERTREQUEST *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTREQUEST_free", "(OSSL_CRMF_CERTREQUEST *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTREQUEST_free", "(OSSL_CRMF_CERTREQUEST *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_dup", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_dup", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_dup", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_dup", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_dup", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_fill", "(OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_fill", "(OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_fill", "(OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_fill", "(OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_fill", "(OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_fill", "(OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_fill", "(OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *)", "", "Argument[3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_free", "(OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_free", "(OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_get0_extensions", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0].Field[**extensions]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_get0_extensions", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0].Field[*extensions]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_get0_issuer", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0].Field[**issuer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_get0_issuer", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0].Field[*issuer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_get0_publicKey", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0].Field[**publicKey]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_get0_publicKey", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0].Field[*publicKey]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_get0_serialNumber", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0].Field[**serialNumber]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_get0_serialNumber", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0].Field[*serialNumber]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_get0_subject", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0].Field[**subject]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_CERTTEMPLATE_get0_subject", "(const OSSL_CRMF_CERTTEMPLATE *)", "", "Argument[*0].Field[*subject]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCKEYWITHID_IDENTIFIER_free", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_ENCKEYWITHID_IDENTIFIER_free", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_ENCKEYWITHID_free", "(OSSL_CRMF_ENCKEYWITHID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_ENCKEYWITHID_free", "(OSSL_CRMF_ENCKEYWITHID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_free", "(OSSL_CRMF_ENCRYPTEDKEY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_free", "(OSSL_CRMF_ENCRYPTEDKEY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int)", "", "Argument[*1]", "ReturnValue.Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int)", "", "Argument[*2]", "ReturnValue.Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int)", "", "Argument[*2]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int)", "", "Argument[1]", "ReturnValue.Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int)", "", "Argument[2]", "ReturnValue.Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int)", "", "Argument[2]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_init_envdata", "(CMS_EnvelopedData *)", "", "Argument[*0]", "ReturnValue[*].Field[*value].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDKEY_init_envdata", "(CMS_EnvelopedData *)", "", "Argument[0]", "ReturnValue[*].Field[*value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_decrypt", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,int *)", "", "Argument[*4]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_decrypt", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_decrypt", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,int *)", "", "Argument[4]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_free", "(OSSL_CRMF_ENCRYPTEDVALUE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_free", "(OSSL_CRMF_ENCRYPTEDVALUE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *)", "", "Argument[*1]", "ReturnValue.Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *)", "", "Argument[*2]", "ReturnValue.Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *)", "", "Argument[*2]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *)", "", "Argument[1]", "ReturnValue.Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *)", "", "Argument[2]", "ReturnValue.Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert", "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *)", "", "Argument[2]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_MSGS_free", "(OSSL_CRMF_MSGS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSGS_free", "(OSSL_CRMF_MSGS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo", "(OSSL_CRMF_PKIPUBLICATIONINFO *,OSSL_CRMF_SINGLEPUBINFO *)", "", "Argument[*1]", "Argument[*0].Field[**pubInfos].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo", "(OSSL_CRMF_PKIPUBLICATIONINFO *,OSSL_CRMF_SINGLEPUBINFO *)", "", "Argument[1]", "Argument[*0].Field[**pubInfos].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_MSG_create_popo", "(int,OSSL_CRMF_MSG *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*1].Field[**popo].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_MSG_dup", "(const OSSL_CRMF_MSG *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_dup", "(const OSSL_CRMF_MSG *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_dup", "(const OSSL_CRMF_MSG *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_dup", "(const OSSL_CRMF_MSG *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_dup", "(const OSSL_CRMF_MSG *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_free", "(OSSL_CRMF_MSG *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_free", "(OSSL_CRMF_MSG *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_get0_tmpl", "(const OSSL_CRMF_MSG *)", "", "Argument[*0].Field[**certReq].Field[**certTemplate]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_MSG_get0_tmpl", "(const OSSL_CRMF_MSG *)", "", "Argument[*0].Field[**certReq].Field[*certTemplate]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_MSG_set0_SinglePubInfo", "(OSSL_CRMF_SINGLEPUBINFO *,int,GENERAL_NAME *)", "", "Argument[*2]", "Argument[*0].Field[**pubLocation]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_MSG_set0_SinglePubInfo", "(OSSL_CRMF_SINGLEPUBINFO *,int,GENERAL_NAME *)", "", "Argument[1]", "Argument[*0].Field[**pubMethod].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_MSG_set0_SinglePubInfo", "(OSSL_CRMF_SINGLEPUBINFO *,int,GENERAL_NAME *)", "", "Argument[2]", "Argument[*0].Field[*pubLocation]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_MSG_set1_regCtrl_oldCertID", "(OSSL_CRMF_MSG *,const OSSL_CRMF_CERTID *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_set1_regCtrl_pkiPublicationInfo", "(OSSL_CRMF_MSG *,const OSSL_CRMF_PKIPUBLICATIONINFO *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_set1_regInfo_certReq", "(OSSL_CRMF_MSG *,const OSSL_CRMF_CERTREQUEST *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_MSG_set_PKIPublicationInfo_action", "(OSSL_CRMF_PKIPUBLICATIONINFO *,int)", "", "Argument[1]", "Argument[*0].Field[**action].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_OPTIONALVALIDITY_free", "(OSSL_CRMF_OPTIONALVALIDITY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_OPTIONALVALIDITY_free", "(OSSL_CRMF_OPTIONALVALIDITY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_PBMPARAMETER_free", "(OSSL_CRMF_PBMPARAMETER *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_PBMPARAMETER_free", "(OSSL_CRMF_PBMPARAMETER *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_PKIPUBLICATIONINFO_dup", "(const OSSL_CRMF_PKIPUBLICATIONINFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_PKIPUBLICATIONINFO_dup", "(const OSSL_CRMF_PKIPUBLICATIONINFO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_PKIPUBLICATIONINFO_dup", "(const OSSL_CRMF_PKIPUBLICATIONINFO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_PKIPUBLICATIONINFO_dup", "(const OSSL_CRMF_PKIPUBLICATIONINFO *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_PKIPUBLICATIONINFO_dup", "(const OSSL_CRMF_PKIPUBLICATIONINFO *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_CRMF_PKIPUBLICATIONINFO_free", "(OSSL_CRMF_PKIPUBLICATIONINFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_PKIPUBLICATIONINFO_free", "(OSSL_CRMF_PKIPUBLICATIONINFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_PKMACVALUE_free", "(OSSL_CRMF_PKMACVALUE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_PKMACVALUE_free", "(OSSL_CRMF_PKMACVALUE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_POPOPRIVKEY_free", "(OSSL_CRMF_POPOPRIVKEY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_POPOPRIVKEY_free", "(OSSL_CRMF_POPOPRIVKEY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO_free", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO_free", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_POPOSIGNINGKEYINPUT_free", "(OSSL_CRMF_POPOSIGNINGKEYINPUT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_POPOSIGNINGKEYINPUT_free", "(OSSL_CRMF_POPOSIGNINGKEYINPUT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_POPOSIGNINGKEY_free", "(OSSL_CRMF_POPOSIGNINGKEY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_POPOSIGNINGKEY_free", "(OSSL_CRMF_POPOSIGNINGKEY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_POPO_free", "(OSSL_CRMF_POPO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_POPO_free", "(OSSL_CRMF_POPO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_PRIVATEKEYINFO_free", "(OSSL_CRMF_PRIVATEKEYINFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_PRIVATEKEYINFO_free", "(OSSL_CRMF_PRIVATEKEYINFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_SINGLEPUBINFO_free", "(OSSL_CRMF_SINGLEPUBINFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_SINGLEPUBINFO_free", "(OSSL_CRMF_SINGLEPUBINFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_CRMF_pbmp_new", "(OSSL_LIB_CTX *,size_t,int,size_t,int)", "", "Argument[1]", "ReturnValue[*].Field[**salt].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_pbmp_new", "(OSSL_LIB_CTX *,size_t,int,size_t,int)", "", "Argument[1]", "ReturnValue[*].Field[**salt].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_pbmp_new", "(OSSL_LIB_CTX *,size_t,int,size_t,int)", "", "Argument[2]", "ReturnValue[*].Field[**owf].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_pbmp_new", "(OSSL_LIB_CTX *,size_t,int,size_t,int)", "", "Argument[2]", "ReturnValue[*].Field[**owf].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_pbmp_new", "(OSSL_LIB_CTX *,size_t,int,size_t,int)", "", "Argument[3]", "ReturnValue[*].Field[**iterationCount].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_pbmp_new", "(OSSL_LIB_CTX *,size_t,int,size_t,int)", "", "Argument[4]", "ReturnValue[*].Field[**mac].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_CRMF_pbmp_new", "(OSSL_LIB_CTX *,size_t,int,size_t,int)", "", "Argument[4]", "ReturnValue[*].Field[**mac].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_DAY_TIME_BAND_free", "(OSSL_DAY_TIME_BAND *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_DAY_TIME_BAND_free", "(OSSL_DAY_TIME_BAND *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_DAY_TIME_free", "(OSSL_DAY_TIME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_DAY_TIME_free", "(OSSL_DAY_TIME *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_DECODER_CTX_get_cleanup", "(OSSL_DECODER_CTX *)", "", "Argument[*0].Field[*cleanup]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_get_construct", "(OSSL_DECODER_CTX *)", "", "Argument[*0].Field[*construct]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_get_construct_data", "(OSSL_DECODER_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_DECODER_CTX_get_construct_data", "(OSSL_DECODER_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OSSL_DECODER_CTX_get_construct_data", "(OSSL_DECODER_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_DECODER_CTX_get_num_decoders", "(OSSL_DECODER_CTX *)", "", "Argument[*0].Field[**decoder_insts].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[**0]", "ReturnValue[*].Field[**construct_data].Field[***object]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**construct_data].Field[**object]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**start_input_type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**input_structure]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*6]", "ReturnValue[*].Field[**construct_data].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**construct_data].Field[*object]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*start_input_type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*input_structure]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "ReturnValue[*].Field[**construct_data].Field[*selection]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "ReturnValue[*].Field[*selection]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[5]", "ReturnValue[*].Field[**construct_data].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_new_for_pkey", "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "ReturnValue[*].Field[**construct_data].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_set_cleanup", "(OSSL_DECODER_CTX *,OSSL_DECODER_CLEANUP *)", "", "Argument[1]", "Argument[*0].Field[*cleanup]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_set_construct", "(OSSL_DECODER_CTX *,OSSL_DECODER_CONSTRUCT *)", "", "Argument[1]", "Argument[*0].Field[*construct]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_set_construct_data", "(OSSL_DECODER_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***construct_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_set_construct_data", "(OSSL_DECODER_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**construct_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_set_construct_data", "(OSSL_DECODER_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*construct_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_set_input_structure", "(OSSL_DECODER_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**input_structure]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_set_input_structure", "(OSSL_DECODER_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*input_structure]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_set_input_type", "(OSSL_DECODER_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**start_input_type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_set_input_type", "(OSSL_DECODER_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*start_input_type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_CTX_set_selection", "(OSSL_DECODER_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*selection]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_INSTANCE_get_decoder", "(OSSL_DECODER_INSTANCE *)", "", "Argument[*0].Field[**decoder]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_INSTANCE_get_decoder", "(OSSL_DECODER_INSTANCE *)", "", "Argument[*0].Field[*decoder]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_INSTANCE_get_decoder_ctx", "(OSSL_DECODER_INSTANCE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_DECODER_INSTANCE_get_decoder_ctx", "(OSSL_DECODER_INSTANCE *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OSSL_DECODER_INSTANCE_get_decoder_ctx", "(OSSL_DECODER_INSTANCE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_DECODER_INSTANCE_get_input_structure", "(OSSL_DECODER_INSTANCE *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_DECODER_INSTANCE_get_input_structure", "(OSSL_DECODER_INSTANCE *,int *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_DECODER_INSTANCE_get_input_structure", "(OSSL_DECODER_INSTANCE *,int *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_DECODER_INSTANCE_get_input_type", "(OSSL_DECODER_INSTANCE *)", "", "Argument[*0].Field[**input_type]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_INSTANCE_get_input_type", "(OSSL_DECODER_INSTANCE *)", "", "Argument[*0].Field[*input_type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_from_bio", "(OSSL_DECODER_CTX *,BIO *)", "", "Argument[*1]", "Argument[*1].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_from_bio", "(OSSL_DECODER_CTX *,BIO *)", "", "Argument[1]", "Argument[*1].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_from_data", "(OSSL_DECODER_CTX *,const unsigned char **,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_from_data", "(OSSL_DECODER_CTX *,const unsigned char **,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_get0_name", "(const OSSL_DECODER *)", "", "Argument[*0].Field[*base].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_get0_name", "(const OSSL_DECODER *)", "", "Argument[*0].Field[*base].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_get0_provider", "(const OSSL_DECODER *)", "", "Argument[*0].Field[*base].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_DECODER_get0_provider", "(const OSSL_DECODER *)", "", "Argument[*0].Field[*base].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_get_num_encoders", "(OSSL_ENCODER_CTX *)", "", "Argument[*0].Field[**encoder_insts].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_new_for_pkey", "(const EVP_PKEY *,int,const char *,const char *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**output_type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_new_for_pkey", "(const EVP_PKEY *,int,const char *,const char *,const char *)", "", "Argument[*3]", "ReturnValue[*].Field[**output_structure]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_new_for_pkey", "(const EVP_PKEY *,int,const char *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*selection]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_new_for_pkey", "(const EVP_PKEY *,int,const char *,const char *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*output_type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_new_for_pkey", "(const EVP_PKEY *,int,const char *,const char *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[*output_structure]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_set_cleanup", "(OSSL_ENCODER_CTX *,OSSL_ENCODER_CLEANUP *)", "", "Argument[1]", "Argument[*0].Field[*cleanup]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_set_construct", "(OSSL_ENCODER_CTX *,OSSL_ENCODER_CONSTRUCT *)", "", "Argument[1]", "Argument[*0].Field[*construct]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_set_construct_data", "(OSSL_ENCODER_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***construct_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_set_construct_data", "(OSSL_ENCODER_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**construct_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_set_construct_data", "(OSSL_ENCODER_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*construct_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_set_output_structure", "(OSSL_ENCODER_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**output_structure]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_set_output_structure", "(OSSL_ENCODER_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*output_structure]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_set_output_type", "(OSSL_ENCODER_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**output_type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_set_output_type", "(OSSL_ENCODER_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*output_type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_CTX_set_selection", "(OSSL_ENCODER_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*selection]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_INSTANCE_get_encoder", "(OSSL_ENCODER_INSTANCE *)", "", "Argument[*0].Field[**encoder]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_INSTANCE_get_encoder", "(OSSL_ENCODER_INSTANCE *)", "", "Argument[*0].Field[*encoder]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_INSTANCE_get_encoder_ctx", "(OSSL_ENCODER_INSTANCE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_ENCODER_INSTANCE_get_encoder_ctx", "(OSSL_ENCODER_INSTANCE *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OSSL_ENCODER_INSTANCE_get_encoder_ctx", "(OSSL_ENCODER_INSTANCE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_ENCODER_INSTANCE_get_output_structure", "(OSSL_ENCODER_INSTANCE *)", "", "Argument[*0].Field[**output_structure]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_INSTANCE_get_output_structure", "(OSSL_ENCODER_INSTANCE *)", "", "Argument[*0].Field[*output_structure]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_INSTANCE_get_output_type", "(OSSL_ENCODER_INSTANCE *)", "", "Argument[*0].Field[**output_type]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_INSTANCE_get_output_type", "(OSSL_ENCODER_INSTANCE *)", "", "Argument[*0].Field[*output_type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_get0_name", "(const OSSL_ENCODER *)", "", "Argument[*0].Field[*base].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_get0_name", "(const OSSL_ENCODER *)", "", "Argument[*0].Field[*base].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_get0_provider", "(const OSSL_ENCODER *)", "", "Argument[*0].Field[*base].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_get0_provider", "(const OSSL_ENCODER *)", "", "Argument[*0].Field[*base].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_to_data", "(OSSL_ENCODER_CTX *,unsigned char **,size_t *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_to_data", "(OSSL_ENCODER_CTX *,unsigned char **,size_t *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_to_data", "(OSSL_ENCODER_CTX *,unsigned char **,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_ENCODER_to_data", "(OSSL_ENCODER_CTX *,unsigned char **,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_ESS_signing_cert_new_init", "(const X509 *,const stack_st_X509 *,int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ESS_signing_cert_v2_new_init", "(const EVP_MD *,const X509 *,const stack_st_X509 *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_GENERAL_NAMES_print", "(BIO *,GENERAL_NAMES *,int)", "", "Argument[*1].Field[**data]", "Argument[*1].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HASH_free", "(OSSL_HASH *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_HASH_free", "(OSSL_HASH *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_HPKE_CTX_get_seq", "(OSSL_HPKE_CTX *,uint64_t *)", "", "Argument[*0].Field[*seq]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_new", "(int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_new", "(int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_new", "(int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*mode]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_new", "(int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*suite]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_new", "(int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*role]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_new", "(int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_new", "(int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_set1_authpriv", "(OSSL_HPKE_CTX *,EVP_PKEY *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_HPKE_CTX_set1_ikme", "(OSSL_HPKE_CTX *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**ikme]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_set1_ikme", "(OSSL_HPKE_CTX *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**ikme]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_set1_ikme", "(OSSL_HPKE_CTX *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*ikmelen]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_set1_psk", "(OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**pskid]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_set1_psk", "(OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[**psk]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_set1_psk", "(OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**pskid]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_set1_psk", "(OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**psk]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_set1_psk", "(OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*psklen]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_CTX_set_seq", "(OSSL_HPKE_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*seq]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_encap", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_get_ciphertext_size", "(OSSL_HPKE_SUITE,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_get_grease_value", "(const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_get_grease_value", "(const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_get_grease_value", "(const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_get_grease_value", "(const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_get_grease_value", "(const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_get_grease_value", "(const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_keygen", "(OSSL_HPKE_SUITE,unsigned char *,size_t *,EVP_PKEY **,const unsigned char *,size_t,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_open", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_open", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_open", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_open", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_open", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_open", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[6]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_seal", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_seal", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_seal", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_seal", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_seal", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[6]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HPKE_seal", "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[6]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_exchange", "(OSSL_HTTP_REQ_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_exchange", "(OSSL_HTTP_REQ_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_get0_mem_bio", "(const OSSL_HTTP_REQ_CTX *)", "", "Argument[*0].Field[**mem]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_get0_mem_bio", "(const OSSL_HTTP_REQ_CTX *)", "", "Argument[*0].Field[*mem]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_get_resp_len", "(const OSSL_HTTP_REQ_CTX *)", "", "Argument[*0].Field[*resp_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_nbio_d2i", "(OSSL_HTTP_REQ_CTX *,ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_nbio_d2i", "(OSSL_HTTP_REQ_CTX *,ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_nbio_d2i", "(OSSL_HTTP_REQ_CTX *,ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_new", "(BIO *,BIO *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**wbio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_new", "(BIO *,BIO *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**rbio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_new", "(BIO *,BIO *,int)", "", "Argument[0]", "ReturnValue[*].Field[*wbio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_new", "(BIO *,BIO *,int)", "", "Argument[1]", "ReturnValue[*].Field[*rbio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_new", "(BIO *,BIO *,int)", "", "Argument[2]", "ReturnValue[*].Field[*buf_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set1_req", "(OSSL_HTTP_REQ_CTX *,const char *,const ASN1_ITEM *,const ASN1_VALUE *)", "", "Argument[*2]", "Argument[3]", "taint", "df-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set1_req", "(OSSL_HTTP_REQ_CTX *,const char *,const ASN1_ITEM *,const ASN1_VALUE *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set_expected", "(OSSL_HTTP_REQ_CTX *,const char *,int,int,int)", "", "Argument[*0].Field[*max_total_time]", "Argument[*0].Field[*max_time]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set_expected", "(OSSL_HTTP_REQ_CTX *,const char *,int,int,int)", "", "Argument[*1]", "Argument[*0].Field[**expected_ct]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set_expected", "(OSSL_HTTP_REQ_CTX *,const char *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[**expected_ct]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set_expected", "(OSSL_HTTP_REQ_CTX *,const char *,int,int,int)", "", "Argument[2]", "Argument[*0].Field[*expect_asn1]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set_expected", "(OSSL_HTTP_REQ_CTX *,const char *,int,int,int)", "", "Argument[3]", "Argument[*0].Field[*max_time]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set_expected", "(OSSL_HTTP_REQ_CTX *,const char *,int,int,int)", "", "Argument[4]", "Argument[*0].Field[*keep_alive]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines", "(OSSL_HTTP_REQ_CTX *,size_t)", "", "Argument[1]", "Argument[*0].Field[*max_hdr_lines]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set_max_response_length", "(OSSL_HTTP_REQ_CTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*max_resp_len]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_REQ_CTX_set_request_line", "(OSSL_HTTP_REQ_CTX *,int,const char *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[*method_POST]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_adapt_proxy", "(const char *,const char *,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_adapt_proxy", "(const char *,const char *,const char *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_adapt_proxy", "(const char *,const char *,const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_exchange", "(OSSL_HTTP_REQ_CTX *,char **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OSSL_HTTP_exchange", "(OSSL_HTTP_REQ_CTX *,char **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_HTTP_exchange", "(OSSL_HTTP_REQ_CTX *,char **)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_HTTP_get", "(const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int)", "", "Argument[*3]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_get", "(const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int)", "", "Argument[*3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_get", "(const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int)", "", "Argument[*4]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_get", "(const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int)", "", "Argument[*4]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_get", "(const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int)", "", "Argument[3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_get", "(const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int)", "", "Argument[4]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[**8]", "ReturnValue[*].Field[***upd_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[*0]", "ReturnValue[*].Field[**server]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[*1]", "ReturnValue[*].Field[**port]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[*2]", "ReturnValue[*].Field[**proxy]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[*5]", "Argument[*6]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[*6]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[*6]", "ReturnValue[*].Field[**rbio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[*8]", "ReturnValue[*].Field[**upd_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[0]", "ReturnValue[*].Field[**server]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[10]", "ReturnValue[*].Field[*max_total_time]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[1]", "ReturnValue[*].Field[**port]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[2]", "ReturnValue[*].Field[**proxy]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[4]", "ReturnValue[*].Field[*use_ssl]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[6]", "ReturnValue[*].Field[*rbio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[7]", "ReturnValue[*].Field[*upd_fn]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[8]", "ReturnValue[*].Field[*upd_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_open", "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)", "", "Argument[9]", "ReturnValue[*].Field[*buf_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**6]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**7]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**8]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_parse_url", "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_proxy_connect", "(BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_proxy_connect", "(BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_set1_request", "(OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[*5]", "Argument[*0].Field[**expected_ct]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_set1_request", "(OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[4]", "Argument[*0].Field[*method_POST]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_set1_request", "(OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[4]", "Argument[*0].Field[*req]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_set1_request", "(OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[5]", "Argument[*0].Field[**expected_ct]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_set1_request", "(OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[6]", "Argument[*0].Field[*expect_asn1]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_set1_request", "(OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[7]", "Argument[*0].Field[*max_resp_len]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_set1_request", "(OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[8]", "Argument[*0].Field[*max_time]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_set1_request", "(OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[9]", "Argument[*0].Field[*keep_alive]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[**10]", "Argument[**0].Field[***upd_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[*10]", "Argument[**0].Field[**upd_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[*15]", "Argument[**0].Field[**expected_ct]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[*1]", "Argument[**0].Field[**server]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[*2]", "Argument[**0].Field[**port]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[*5]", "Argument[**0].Field[**proxy]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[*7]", "Argument[*8]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[*7]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[*8]", "Argument[*7]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[*8]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[10]", "Argument[**0].Field[*upd_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[11]", "Argument[**0].Field[*buf_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[14]", "Argument[**0].Field[*method_POST]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[14]", "Argument[**0].Field[*req]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[15]", "Argument[**0].Field[**expected_ct]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[16]", "Argument[**0].Field[*expect_asn1]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[17]", "Argument[**0].Field[*max_resp_len]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[18]", "Argument[**0].Field[*max_time]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[18]", "Argument[**0].Field[*max_total_time]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[19]", "Argument[**0].Field[*keep_alive]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[1]", "Argument[**0].Field[**server]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[2]", "Argument[**0].Field[**port]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[4]", "Argument[**0].Field[*use_ssl]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[5]", "Argument[**0].Field[**proxy]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[7]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[8]", "Argument[**0].Field[*rbio]", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[8]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_HTTP_transfer", "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)", "", "Argument[9]", "Argument[**0].Field[*upd_fn]", "value", "dfc-generated"] + - ["", "", True, "OSSL_IETF_ATTR_SYNTAX_VALUE_free", "(OSSL_IETF_ATTR_SYNTAX_VALUE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_IETF_ATTR_SYNTAX_VALUE_free", "(OSSL_IETF_ATTR_SYNTAX_VALUE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_IETF_ATTR_SYNTAX_add1_value", "(OSSL_IETF_ATTR_SYNTAX *,int,void *)", "", "Argument[1]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_IETF_ATTR_SYNTAX_free", "(OSSL_IETF_ATTR_SYNTAX *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_IETF_ATTR_SYNTAX_free", "(OSSL_IETF_ATTR_SYNTAX *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority", "(const OSSL_IETF_ATTR_SYNTAX *)", "", "Argument[*0].Field[**policyAuthority]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority", "(const OSSL_IETF_ATTR_SYNTAX *)", "", "Argument[*0].Field[*policyAuthority]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_IETF_ATTR_SYNTAX_get_value_num", "(const OSSL_IETF_ATTR_SYNTAX *)", "", "Argument[*0].Field[**values].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority", "(OSSL_IETF_ATTR_SYNTAX *,GENERAL_NAMES *)", "", "Argument[*1]", "Argument[*0].Field[**policyAuthority]", "value", "dfc-generated"] + - ["", "", True, "OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority", "(OSSL_IETF_ATTR_SYNTAX *,GENERAL_NAMES *)", "", "Argument[1]", "Argument[*0].Field[*policyAuthority]", "value", "dfc-generated"] + - ["", "", True, "OSSL_INDICATOR_get_callback", "(OSSL_LIB_CTX *,OSSL_INDICATOR_CALLBACK **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_INFO_SYNTAX_POINTER_free", "(OSSL_INFO_SYNTAX_POINTER *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_INFO_SYNTAX_POINTER_free", "(OSSL_INFO_SYNTAX_POINTER *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_INFO_SYNTAX_free", "(OSSL_INFO_SYNTAX *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_INFO_SYNTAX_free", "(OSSL_INFO_SYNTAX *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ISSUER_SERIAL_free", "(OSSL_ISSUER_SERIAL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ISSUER_SERIAL_free", "(OSSL_ISSUER_SERIAL *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ISSUER_SERIAL_get0_issuerUID", "(const OSSL_ISSUER_SERIAL *)", "", "Argument[*0].Field[**issuerUID]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ISSUER_SERIAL_get0_issuerUID", "(const OSSL_ISSUER_SERIAL *)", "", "Argument[*0].Field[*issuerUID]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_ISSUER_SERIAL_get0_serial", "(const OSSL_ISSUER_SERIAL *)", "", "Argument[*0].Field[*serial]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_ISSUER_SERIAL_set1_issuer", "(OSSL_ISSUER_SERIAL *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "OSSL_ISSUER_SERIAL_set1_issuerUID", "(OSSL_ISSUER_SERIAL *,const ASN1_BIT_STRING *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_ISSUER_SERIAL_set1_serial", "(OSSL_ISSUER_SERIAL *,const ASN1_INTEGER *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_LIB_CTX_get_conf_diagnostics", "(OSSL_LIB_CTX *)", "", "Argument[*0].Field[*conf_diagnostics]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_LIB_CTX_get_data", "(OSSL_LIB_CTX *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_LIB_CTX_get_data", "(OSSL_LIB_CTX *,int)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OSSL_LIB_CTX_get_data", "(OSSL_LIB_CTX *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_LIB_CTX_new_child", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_LIB_CTX_new_from_dispatch", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_LIB_CTX_set_conf_diagnostics", "(OSSL_LIB_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*conf_diagnostics]", "value", "dfc-generated"] + - ["", "", True, "OSSL_NAMED_DAY_free", "(OSSL_NAMED_DAY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_NAMED_DAY_free", "(OSSL_NAMED_DAY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_OBJECT_DIGEST_INFO_free", "(OSSL_OBJECT_DIGEST_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_OBJECT_DIGEST_INFO_free", "(OSSL_OBJECT_DIGEST_INFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_OBJECT_DIGEST_INFO_get0_digest", "(const OSSL_OBJECT_DIGEST_INFO *,int *,const X509_ALGOR **,const ASN1_BIT_STRING **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "OSSL_OBJECT_DIGEST_INFO_get0_digest", "(const OSSL_OBJECT_DIGEST_INFO *,int *,const X509_ALGOR **,const ASN1_BIT_STRING **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "OSSL_OBJECT_DIGEST_INFO_get0_digest", "(const OSSL_OBJECT_DIGEST_INFO *,int *,const X509_ALGOR **,const ASN1_BIT_STRING **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_OBJECT_DIGEST_INFO_set1_digest", "(OSSL_OBJECT_DIGEST_INFO *,int,X509_ALGOR *,ASN1_BIT_STRING *)", "", "Argument[1]", "Argument[*0].Field[*digestedObjectType].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_BLD_push_BN", "(OSSL_PARAM_BLD *,const char *,const BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_BLD_push_BN_pad", "(OSSL_PARAM_BLD *,const char *,const BIGNUM *,size_t)", "", "Argument[3]", "Argument[*0].Field[*secure_blocks]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_BLD_push_BN_pad", "(OSSL_PARAM_BLD *,const char *,const BIGNUM *,size_t)", "", "Argument[3]", "Argument[*0].Field[*total_blocks]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_BLD_push_octet_string", "(OSSL_PARAM_BLD *,const char *,const void *,size_t)", "", "Argument[3]", "Argument[*0].Field[*secure_blocks]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_BLD_push_octet_string", "(OSSL_PARAM_BLD *,const char *,const void *,size_t)", "", "Argument[3]", "Argument[*0].Field[*total_blocks]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_BLD_push_utf8_string", "(OSSL_PARAM_BLD *,const char *,const char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*secure_blocks]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_BLD_push_utf8_string", "(OSSL_PARAM_BLD *,const char *,const char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*total_blocks]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_BLD_to_param", "(OSSL_PARAM_BLD *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_allocate_from_text", "(OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_PARAM_allocate_from_text", "(OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *)", "", "Argument[*3]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_allocate_from_text", "(OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_allocate_from_text", "(OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_allocate_from_text", "(OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *)", "", "Argument[1]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_allocate_from_text", "(OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *)", "", "Argument[3]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_allocate_from_text", "(OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *)", "", "Argument[4]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_allocate_from_text", "(OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *)", "", "Argument[4]", "Argument[*0].Field[*data_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_BN", "(const char *,unsigned char *,size_t)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_BN", "(const char *,unsigned char *,size_t)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_BN", "(const char *,unsigned char *,size_t)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_BN", "(const char *,unsigned char *,size_t)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_BN", "(const char *,unsigned char *,size_t)", "", "Argument[2]", "ReturnValue.Field[*data_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_double", "(const char *,double *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_double", "(const char *,double *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_double", "(const char *,double *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_double", "(const char *,double *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int32", "(const char *,int32_t *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int32", "(const char *,int32_t *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int32", "(const char *,int32_t *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int32", "(const char *,int32_t *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int64", "(const char *,int64_t *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int64", "(const char *,int64_t *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int64", "(const char *,int64_t *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int64", "(const char *,int64_t *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int", "(const char *,int *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int", "(const char *,int *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int", "(const char *,int *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_int", "(const char *,int *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_long", "(const char *,long *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_long", "(const char *,long *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_long", "(const char *,long *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_long", "(const char *,long *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_ptr", "(const char *,void **,size_t)", "", "Argument[**1]", "ReturnValue.Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_ptr", "(const char *,void **,size_t)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_ptr", "(const char *,void **,size_t)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_ptr", "(const char *,void **,size_t)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_ptr", "(const char *,void **,size_t)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_ptr", "(const char *,void **,size_t)", "", "Argument[2]", "ReturnValue.Field[*data_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_string", "(const char *,void *,size_t)", "", "Argument[**1]", "ReturnValue.Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_string", "(const char *,void *,size_t)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_string", "(const char *,void *,size_t)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_string", "(const char *,void *,size_t)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_string", "(const char *,void *,size_t)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_octet_string", "(const char *,void *,size_t)", "", "Argument[2]", "ReturnValue.Field[*data_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_size_t", "(const char *,size_t *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_size_t", "(const char *,size_t *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_size_t", "(const char *,size_t *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_size_t", "(const char *,size_t *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_time_t", "(const char *,time_t *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_time_t", "(const char *,time_t *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_time_t", "(const char *,time_t *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_time_t", "(const char *,time_t *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint32", "(const char *,uint32_t *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint32", "(const char *,uint32_t *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint32", "(const char *,uint32_t *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint32", "(const char *,uint32_t *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint64", "(const char *,uint64_t *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint64", "(const char *,uint64_t *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint64", "(const char *,uint64_t *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint64", "(const char *,uint64_t *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint", "(const char *,unsigned int *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint", "(const char *,unsigned int *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint", "(const char *,unsigned int *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_uint", "(const char *,unsigned int *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_ulong", "(const char *,unsigned long *)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_ulong", "(const char *,unsigned long *)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_ulong", "(const char *,unsigned long *)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_ulong", "(const char *,unsigned long *)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_ptr", "(const char *,char **,size_t)", "", "Argument[**1]", "ReturnValue.Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_ptr", "(const char *,char **,size_t)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_ptr", "(const char *,char **,size_t)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_ptr", "(const char *,char **,size_t)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_ptr", "(const char *,char **,size_t)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_ptr", "(const char *,char **,size_t)", "", "Argument[2]", "ReturnValue.Field[*data_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_string", "(const char *,char *,size_t)", "", "Argument[*0]", "ReturnValue.Field[**key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_string", "(const char *,char *,size_t)", "", "Argument[*1]", "ReturnValue.Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_string", "(const char *,char *,size_t)", "", "Argument[0]", "ReturnValue.Field[*key]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_string", "(const char *,char *,size_t)", "", "Argument[1]", "ReturnValue.Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_construct_utf8_string", "(const char *,char *,size_t)", "", "Argument[2]", "ReturnValue.Field[*data_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_dup", "(const OSSL_PARAM *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "OSSL_PARAM_dup", "(const OSSL_PARAM *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_free", "(OSSL_PARAM *)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_get_BN", "(const OSSL_PARAM *,BIGNUM **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_double", "(const OSSL_PARAM *,double *)", "", "Argument[*0].Field[**data]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_double", "(const OSSL_PARAM *,double *)", "", "Argument[*0].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_int32", "(const OSSL_PARAM *,int32_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_int64", "(const OSSL_PARAM *,int64_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_int", "(const OSSL_PARAM *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_long", "(const OSSL_PARAM *,long *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_octet_ptr", "(const OSSL_PARAM *,const void **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_get_octet_ptr", "(const OSSL_PARAM *,const void **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_get_octet_ptr", "(const OSSL_PARAM *,const void **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_get_octet_string", "(const OSSL_PARAM *,void **,size_t,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_octet_string_ptr", "(const OSSL_PARAM *,const void **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_get_octet_string_ptr", "(const OSSL_PARAM *,const void **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_get_octet_string_ptr", "(const OSSL_PARAM *,const void **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_get_size_t", "(const OSSL_PARAM *,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_time_t", "(const OSSL_PARAM *,time_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_uint32", "(const OSSL_PARAM *,uint32_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_uint64", "(const OSSL_PARAM *,uint64_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_uint", "(const OSSL_PARAM *,unsigned int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_ulong", "(const OSSL_PARAM *,unsigned long *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_utf8_ptr", "(const OSSL_PARAM *,const char **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_get_utf8_ptr", "(const OSSL_PARAM *,const char **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_get_utf8_string", "(const OSSL_PARAM *,char **,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_get_utf8_string_ptr", "(const OSSL_PARAM *,const char **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_get_utf8_string_ptr", "(const OSSL_PARAM *,const char **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_PARAM_locate", "(OSSL_PARAM *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_locate", "(OSSL_PARAM *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_locate", "(OSSL_PARAM *,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_locate", "(OSSL_PARAM *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_locate_const", "(const OSSL_PARAM *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_locate_const", "(const OSSL_PARAM *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_locate_const", "(const OSSL_PARAM *,const char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_locate_const", "(const OSSL_PARAM *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_print_to_bio", "(const OSSL_PARAM *,BIO *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_BN", "(OSSL_PARAM *,const BIGNUM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_all_unmodified", "(OSSL_PARAM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_double", "(OSSL_PARAM *,double)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_int32", "(OSSL_PARAM *,int32_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_int64", "(OSSL_PARAM *,int64_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_int", "(OSSL_PARAM *,int)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_long", "(OSSL_PARAM *,long)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_ptr", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_ptr", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_ptr", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*return_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[**1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*return_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string_or_ptr", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[**1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string_or_ptr", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string_or_ptr", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string_or_ptr", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string_or_ptr", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string_or_ptr", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_octet_string_or_ptr", "(OSSL_PARAM *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*return_size]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_size_t", "(OSSL_PARAM *,size_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_time_t", "(OSSL_PARAM *,time_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_uint32", "(OSSL_PARAM *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_uint64", "(OSSL_PARAM *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_uint", "(OSSL_PARAM *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_ulong", "(OSSL_PARAM *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_utf8_ptr", "(OSSL_PARAM *,const char *)", "", "Argument[*1]", "Argument[*0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_utf8_ptr", "(OSSL_PARAM *,const char *)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_utf8_string", "(OSSL_PARAM *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PARAM_set_utf8_string", "(OSSL_PARAM *,const char *)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PRIVILEGE_POLICY_ID_free", "(OSSL_PRIVILEGE_POLICY_ID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_PRIVILEGE_POLICY_ID_free", "(OSSL_PRIVILEGE_POLICY_ID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_PROVIDER_conf_get_bool", "(const OSSL_PROVIDER *,const char *,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_do_all", "(OSSL_LIB_CTX *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "OSSL_PROVIDER_get0_default_search_path", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_PROVIDER_get0_default_search_path", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_PROVIDER_get0_dispatch", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[**dispatch]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_get0_dispatch", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[*dispatch]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_get0_name", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_get0_name", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_get0_provider_ctx", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[***provctx]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_get0_provider_ctx", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[**provctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_get0_provider_ctx", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[*provctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_get_conf_parameters", "(const OSSL_PROVIDER *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_load", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_load", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_load", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_load", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_load_ex", "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_load_ex", "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_load_ex", "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_load_ex", "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *)", "", "Argument[1]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_try_load", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_try_load", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_try_load", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_try_load", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_try_load_ex", "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_try_load_ex", "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_try_load_ex", "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *,int)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "OSSL_PROVIDER_try_load_ex", "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *,int)", "", "Argument[1]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_ROLE_SPEC_CERT_ID_SYNTAX_free", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ROLE_SPEC_CERT_ID_SYNTAX_free", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_ROLE_SPEC_CERT_ID_free", "(OSSL_ROLE_SPEC_CERT_ID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_ROLE_SPEC_CERT_ID_free", "(OSSL_ROLE_SPEC_CERT_ID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_SELF_TEST_get_callback", "(OSSL_LIB_CTX *,OSSL_CALLBACK **,void **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "OSSL_SELF_TEST_get_callback", "(OSSL_LIB_CTX *,OSSL_CALLBACK **,void **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_SELF_TEST_get_callback", "(OSSL_LIB_CTX *,OSSL_CALLBACK **,void **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "OSSL_SELF_TEST_new", "(OSSL_CALLBACK *,void *)", "", "Argument[**1]", "ReturnValue[*].Field[***cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_new", "(OSSL_CALLBACK *,void *)", "", "Argument[*1]", "ReturnValue[*].Field[**cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_new", "(OSSL_CALLBACK *,void *)", "", "Argument[0]", "ReturnValue[*].Field[*cb]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_new", "(OSSL_CALLBACK *,void *)", "", "Argument[1]", "ReturnValue[*].Field[*cb_arg]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*params].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**desc]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[*params].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[*params].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[*desc]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[*params].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_SELF_TEST_oncorrupt_byte", "(OSSL_SELF_TEST *,unsigned char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_CERT", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_CERT", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[**(unnamed class/struct/union)]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_CRL", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_CRL", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[**(unnamed class/struct/union)]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_PARAMS", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_PARAMS", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[**(unnamed class/struct/union)]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_PKEY", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_PKEY", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[**(unnamed class/struct/union)]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_PUBKEY", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_PUBKEY", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[**(unnamed class/struct/union)]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_data", "(int,const OSSL_STORE_INFO *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_data", "(int,const OSSL_STORE_INFO *)", "", "Argument[*1]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get0_data", "(int,const OSSL_STORE_INFO *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get1_CERT", "(const OSSL_STORE_INFO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get1_CERT", "(const OSSL_STORE_INFO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get1_CRL", "(const OSSL_STORE_INFO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get1_CRL", "(const OSSL_STORE_INFO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get1_PARAMS", "(const OSSL_STORE_INFO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get1_PARAMS", "(const OSSL_STORE_INFO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get1_PKEY", "(const OSSL_STORE_INFO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get1_PKEY", "(const OSSL_STORE_INFO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get1_PUBKEY", "(const OSSL_STORE_INFO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get1_PUBKEY", "(const OSSL_STORE_INFO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_INFO_get_type", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new", "(int,void *)", "", "Argument[**1]", "ReturnValue[*].Field[*_].Union[***(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new", "(int,void *)", "", "Argument[*1]", "ReturnValue[*].Field[*_].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new", "(int,void *)", "", "Argument[0]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new", "(int,void *)", "", "Argument[1]", "ReturnValue[*].Field[*_].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new_CERT", "(X509 *)", "", "Argument[*0]", "ReturnValue[*].Field[*_].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new_CERT", "(X509 *)", "", "Argument[0]", "ReturnValue[*].Field[*_].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new_CRL", "(X509_CRL *)", "", "Argument[*0]", "ReturnValue[*].Field[*_].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new_CRL", "(X509_CRL *)", "", "Argument[0]", "ReturnValue[*].Field[*_].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new_PARAMS", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*].Field[*_].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new_PARAMS", "(EVP_PKEY *)", "", "Argument[0]", "ReturnValue[*].Field[*_].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new_PKEY", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*].Field[*_].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new_PKEY", "(EVP_PKEY *)", "", "Argument[0]", "ReturnValue[*].Field[*_].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new_PUBKEY", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*].Field[*_].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_new_PUBKEY", "(EVP_PKEY *)", "", "Argument[0]", "ReturnValue[*].Field[*_].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_INFO_type_string", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_get0_description", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[**description]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_get0_description", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[*description]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_get0_engine", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[**engine]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_get0_engine", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[*engine]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_get0_properties", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[**propdef]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_get0_properties", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[*propdef]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_get0_provider", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[**prov]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_get0_provider", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[*prov]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_get0_scheme", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[**scheme]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_get0_scheme", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[*scheme]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_names_do_all", "(const OSSL_STORE_LOADER *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_LOADER_new", "(ENGINE *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**engine]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_new", "(ENGINE *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**scheme]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_new", "(ENGINE *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_new", "(ENGINE *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*scheme]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_set_attach", "(OSSL_STORE_LOADER *,OSSL_STORE_attach_fn)", "", "Argument[1]", "Argument[*0].Field[*attach]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_set_close", "(OSSL_STORE_LOADER *,OSSL_STORE_close_fn)", "", "Argument[1]", "Argument[*0].Field[*closefn]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_set_ctrl", "(OSSL_STORE_LOADER *,OSSL_STORE_ctrl_fn)", "", "Argument[1]", "Argument[*0].Field[*ctrl]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_set_eof", "(OSSL_STORE_LOADER *,OSSL_STORE_eof_fn)", "", "Argument[1]", "Argument[*0].Field[*eof]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_set_error", "(OSSL_STORE_LOADER *,OSSL_STORE_error_fn)", "", "Argument[1]", "Argument[*0].Field[*error]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_set_expect", "(OSSL_STORE_LOADER *,OSSL_STORE_expect_fn)", "", "Argument[1]", "Argument[*0].Field[*expect]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_set_find", "(OSSL_STORE_LOADER *,OSSL_STORE_find_fn)", "", "Argument[1]", "Argument[*0].Field[*find]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_set_load", "(OSSL_STORE_LOADER *,OSSL_STORE_load_fn)", "", "Argument[1]", "Argument[*0].Field[*load]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_set_open", "(OSSL_STORE_LOADER *,OSSL_STORE_open_fn)", "", "Argument[1]", "Argument[*0].Field[*open]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_LOADER_set_open_ex", "(OSSL_STORE_LOADER *,OSSL_STORE_open_ex_fn)", "", "Argument[1]", "Argument[*0].Field[*open_ex]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_alias", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**string]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_alias", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[*string]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_issuer_serial", "(X509_NAME *,const ASN1_INTEGER *)", "", "Argument[*0]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_issuer_serial", "(X509_NAME *,const ASN1_INTEGER *)", "", "Argument[*1]", "ReturnValue[*].Field[**serial]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_issuer_serial", "(X509_NAME *,const ASN1_INTEGER *)", "", "Argument[0]", "ReturnValue[*].Field[*name]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_issuer_serial", "(X509_NAME *,const ASN1_INTEGER *)", "", "Argument[1]", "ReturnValue[*].Field[*serial]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_key_fingerprint", "(const EVP_MD *,const unsigned char *,size_t)", "", "Argument[*0]", "ReturnValue[*].Field[**digest]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_key_fingerprint", "(const EVP_MD *,const unsigned char *,size_t)", "", "Argument[*1]", "ReturnValue[*].Field[**string]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_key_fingerprint", "(const EVP_MD *,const unsigned char *,size_t)", "", "Argument[0]", "ReturnValue[*].Field[*digest]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_key_fingerprint", "(const EVP_MD *,const unsigned char *,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*string]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_key_fingerprint", "(const EVP_MD *,const unsigned char *,size_t)", "", "Argument[2]", "ReturnValue[*].Field[*stringlength]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_name", "(X509_NAME *)", "", "Argument[*0]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_by_name", "(X509_NAME *)", "", "Argument[0]", "ReturnValue[*].Field[*name]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_bytes", "(const OSSL_STORE_SEARCH *,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_bytes", "(const OSSL_STORE_SEARCH *,size_t *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_bytes", "(const OSSL_STORE_SEARCH *,size_t *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_digest", "(const OSSL_STORE_SEARCH *)", "", "Argument[*0].Field[**digest]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_digest", "(const OSSL_STORE_SEARCH *)", "", "Argument[*0].Field[*digest]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_name", "(const OSSL_STORE_SEARCH *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_name", "(const OSSL_STORE_SEARCH *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_serial", "(const OSSL_STORE_SEARCH *)", "", "Argument[*0].Field[**serial]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_serial", "(const OSSL_STORE_SEARCH *)", "", "Argument[*0].Field[*serial]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_string", "(const OSSL_STORE_SEARCH *)", "", "Argument[*0].Field[**string]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get0_string", "(const OSSL_STORE_SEARCH *)", "", "Argument[*0].Field[*string]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_SEARCH_get_type", "(const OSSL_STORE_SEARCH *)", "", "Argument[*0].Field[*search_type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_attach", "(BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[**8]", "ReturnValue[*].Field[***post_process_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_attach", "(BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[*8]", "ReturnValue[*].Field[**post_process_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_attach", "(BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_STORE_attach", "(BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[7]", "ReturnValue[*].Field[*post_process]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_attach", "(BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[8]", "ReturnValue[*].Field[*post_process_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_do_all_loaders", "(..(*)(..),void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_STORE_error", "(OSSL_STORE_CTX *)", "", "Argument[*0].Field[*error_flag]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_expect", "(OSSL_STORE_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*expected_type]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_load", "(OSSL_STORE_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_load", "(OSSL_STORE_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OSSL_STORE_open", "(const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *)", "", "Argument[**4]", "ReturnValue[*].Field[***post_process_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_open", "(const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *)", "", "Argument[*4]", "ReturnValue[*].Field[**post_process_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_open", "(const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *)", "", "Argument[3]", "ReturnValue[*].Field[*post_process]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_open", "(const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *)", "", "Argument[4]", "ReturnValue[*].Field[*post_process_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_open_ex", "(const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[**7]", "ReturnValue[*].Field[***post_process_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_open_ex", "(const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[*2]", "ReturnValue[*].Field[**properties]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_open_ex", "(const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[*7]", "ReturnValue[*].Field[**post_process_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_open_ex", "(const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[2]", "ReturnValue[*].Field[**properties]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_STORE_open_ex", "(const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_STORE_open_ex", "(const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[6]", "ReturnValue[*].Field[*post_process]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_open_ex", "(const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)", "", "Argument[7]", "ReturnValue[*].Field[*post_process_data]", "value", "dfc-generated"] + - ["", "", True, "OSSL_STORE_vctrl", "(OSSL_STORE_CTX *,int,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_TARGETING_INFORMATION_free", "(OSSL_TARGETING_INFORMATION *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TARGETING_INFORMATION_free", "(OSSL_TARGETING_INFORMATION *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_TARGETS_free", "(OSSL_TARGETS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TARGETS_free", "(OSSL_TARGETS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_TARGET_free", "(OSSL_TARGET *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TARGET_free", "(OSSL_TARGET *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_PERIOD_free", "(OSSL_TIME_PERIOD *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_PERIOD_free", "(OSSL_TIME_PERIOD *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_ABSOLUTE_free", "(OSSL_TIME_SPEC_ABSOLUTE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_ABSOLUTE_free", "(OSSL_TIME_SPEC_ABSOLUTE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_DAY_free", "(OSSL_TIME_SPEC_DAY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_DAY_free", "(OSSL_TIME_SPEC_DAY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_MONTH_free", "(OSSL_TIME_SPEC_MONTH *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_MONTH_free", "(OSSL_TIME_SPEC_MONTH *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_TIME_free", "(OSSL_TIME_SPEC_TIME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_TIME_free", "(OSSL_TIME_SPEC_TIME *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_WEEKS_free", "(OSSL_TIME_SPEC_WEEKS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_WEEKS_free", "(OSSL_TIME_SPEC_WEEKS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_X_DAY_OF_free", "(OSSL_TIME_SPEC_X_DAY_OF *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_X_DAY_OF_free", "(OSSL_TIME_SPEC_X_DAY_OF *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_free", "(OSSL_TIME_SPEC *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_TIME_SPEC_free", "(OSSL_TIME_SPEC *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_USER_NOTICE_SYNTAX_free", "(OSSL_USER_NOTICE_SYNTAX *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OSSL_USER_NOTICE_SYNTAX_free", "(OSSL_USER_NOTICE_SYNTAX *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "OSSL_get_max_threads", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**6]", "value", "df-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**7]", "value", "df-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[*0]", "Argument[**8]", "value", "df-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_parse_url", "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*0]", "Argument[**3].Field[**handle]", "value", "dfc-generated"] + - ["", "", True, "OSSL_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[0]", "Argument[**3].Field[*handle]", "value", "dfc-generated"] + - ["", "", True, "OSSL_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "OSSL_trace_get_category_name", "(int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OSSL_trace_get_category_name", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "OTHERNAME_cmp", "(OTHERNAME *,OTHERNAME *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OTHERNAME_cmp", "(OTHERNAME *,OTHERNAME *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OTHERNAME_free", "(OTHERNAME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "OTHERNAME_free", "(OTHERNAME *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PBE2PARAM_free", "(PBE2PARAM *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PBE2PARAM_free", "(PBE2PARAM *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PBEPARAM_free", "(PBEPARAM *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PBEPARAM_free", "(PBEPARAM *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PBKDF2PARAM_free", "(PBKDF2PARAM *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PBKDF2PARAM_free", "(PBKDF2PARAM *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PBMAC1PARAM_free", "(PBMAC1PARAM *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PBMAC1PARAM_free", "(PBMAC1PARAM *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[**3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[**3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[**3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[*3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[*3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[*5]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read", "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)", "", "Argument[5]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[**3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[**3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[**3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[*3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[*3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[*5]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_read_bio", "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)", "", "Argument[5]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "PEM_ASN1_write", "(i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_write", "(i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*8]", "Argument[**8]", "value", "dfc-generated"] + - ["", "", True, "PEM_ASN1_write", "(i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[8]", "Argument[**8]", "taint", "dfc-generated"] + - ["", "", True, "PEM_ASN1_write_bio", "(i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_write_bio", "(i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*8]", "Argument[**8]", "value", "dfc-generated"] + - ["", "", True, "PEM_ASN1_write_bio", "(i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[8]", "Argument[**8]", "taint", "dfc-generated"] + - ["", "", True, "PEM_ASN1_write_bio_ctx", "(OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*4]", "Argument[4]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_write_bio_ctx", "(OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*9]", "Argument[**9]", "value", "df-generated"] + - ["", "", True, "PEM_ASN1_write_bio_ctx", "(OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[9]", "Argument[**9]", "taint", "dfc-generated"] + - ["", "", True, "PEM_SignFinal", "(EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PEM_SignFinal", "(EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_SignInit", "(EVP_MD_CTX *,EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*digest]", "value", "dfc-generated"] + - ["", "", True, "PEM_SignInit", "(EVP_MD_CTX *,EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*fetched_digest]", "value", "dfc-generated"] + - ["", "", True, "PEM_SignInit", "(EVP_MD_CTX *,EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*reqdigest]", "value", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read", "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_X509_INFO_read", "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read", "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read", "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read_bio", "(BIO *,stack_st_X509_INFO *,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_X509_INFO_read_bio", "(BIO *,stack_st_X509_INFO *,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read_bio", "(BIO *,stack_st_X509_INFO *,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read_bio", "(BIO *,stack_st_X509_INFO *,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read_bio_ex", "(BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_X509_INFO_read_bio_ex", "(BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read_bio_ex", "(BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read_bio_ex", "(BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read_ex", "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_X509_INFO_read_ex", "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read_ex", "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_read_ex", "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_write_bio", "(BIO *,const X509_INFO *,EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_X509_INFO_write_bio", "(BIO *,const X509_INFO *,EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_bytes_read_bio", "(unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "df-generated"] + - ["", "", True, "PEM_bytes_read_bio", "(unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_bytes_read_bio_secmem", "(unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "df-generated"] + - ["", "", True, "PEM_bytes_read_bio_secmem", "(unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_def_callback", "(char *,int,int,void *)", "", "Argument[**3]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "PEM_def_callback", "(char *,int,int,void *)", "", "Argument[*3]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "PEM_def_callback", "(char *,int,int,void *)", "", "Argument[*3]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "PEM_def_callback", "(char *,int,int,void *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_def_callback", "(char *,int,int,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_def_callback", "(char *,int,int,void *)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PEM_dek_info", "(char *,const char *,int,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PEM_do_header", "(EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_do_header", "(EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *)", "", "Argument[*4]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "PEM_do_header", "(EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_do_header", "(EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_do_header", "(EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "PEM_do_header", "(EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "PEM_get_EVP_CIPHER_INFO", "(char *,EVP_CIPHER_INFO *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PEM_proc_type", "(char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read", "(FILE *,char **,char **,unsigned char **,long *)", "", "Argument[**2]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read", "(FILE *,char **,char **,unsigned char **,long *)", "", "Argument[*2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "PEM_read", "(FILE *,char **,char **,unsigned char **,long *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read", "(FILE *,char **,char **,unsigned char **,long *)", "", "Argument[*3]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "PEM_read", "(FILE *,char **,char **,unsigned char **,long *)", "", "Argument[2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "PEM_read", "(FILE *,char **,char **,unsigned char **,long *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "PEM_read", "(FILE *,char **,char **,unsigned char **,long *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "PEM_read", "(FILE *,char **,char **,unsigned char **,long *)", "", "Argument[3]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "PEM_read", "(FILE *,char **,char **,unsigned char **,long *)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_CMS", "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_DHparams", "(FILE *,DH **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_DSAPrivateKey", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSA_PUBKEY", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_DSAparams", "(FILE *,DSA **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_ECPKParameters", "(FILE *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_ECPrivateKey", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_EC_PUBKEY", "(FILE *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_NETSCAPE_CERT_SEQUENCE", "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS7", "(FILE *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8", "(FILE *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PKCS8_PRIV_KEY_INFO", "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PUBKEY", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PUBKEY", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_PUBKEY", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PUBKEY", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PUBKEY_ex", "(FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PUBKEY_ex", "(FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_PUBKEY_ex", "(FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PUBKEY_ex", "(FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PrivateKey", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PrivateKey", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_PrivateKey", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PrivateKey", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PrivateKey_ex", "(FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_PrivateKey_ex", "(FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_PrivateKey_ex", "(FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_PrivateKey_ex", "(FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_RSAPrivateKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSAPublicKey", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_RSA_PUBKEY", "(FILE *,RSA **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_SSL_SESSION", "(FILE *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_ACERT", "(FILE *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_AUX", "(FILE *,X509 **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_CRL", "(FILE *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_PUBKEY", "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_X509_REQ", "(FILE *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio", "(BIO *,char **,char **,unsigned char **,long *)", "", "Argument[**2]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio", "(BIO *,char **,char **,unsigned char **,long *)", "", "Argument[*2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio", "(BIO *,char **,char **,unsigned char **,long *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio", "(BIO *,char **,char **,unsigned char **,long *)", "", "Argument[*3]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio", "(BIO *,char **,char **,unsigned char **,long *)", "", "Argument[2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio", "(BIO *,char **,char **,unsigned char **,long *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio", "(BIO *,char **,char **,unsigned char **,long *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio", "(BIO *,char **,char **,unsigned char **,long *)", "", "Argument[3]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio", "(BIO *,char **,char **,unsigned char **,long *)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_CMS", "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DHparams", "(BIO *,DH **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_DSAPrivateKey", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_DSAPrivateKey", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_DSAPrivateKey", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_DSA_PUBKEY", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSA_PUBKEY", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_DSA_PUBKEY", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_DSAparams", "(BIO *,DSA **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_ECPKParameters", "(BIO *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_ECPKParameters", "(BIO *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_ECPKParameters", "(BIO *,EC_GROUP **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_ECPrivateKey", "(BIO *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_ECPrivateKey", "(BIO *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_ECPrivateKey", "(BIO *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_EC_PUBKEY", "(BIO *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_EC_PUBKEY", "(BIO *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_EC_PUBKEY", "(BIO *,EC_KEY **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS7", "(BIO *,PKCS7 **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8", "(BIO *,X509_SIG **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PUBKEY_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_Parameters", "(BIO *,EVP_PKEY **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_Parameters", "(BIO *,EVP_PKEY **)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_Parameters", "(BIO *,EVP_PKEY **)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_Parameters", "(BIO *,EVP_PKEY **)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_Parameters", "(BIO *,EVP_PKEY **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_Parameters", "(BIO *,EVP_PKEY **)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_Parameters_ex", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_Parameters_ex", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_Parameters_ex", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_Parameters_ex", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_Parameters_ex", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_Parameters_ex", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_PrivateKey_ex", "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_RSAPrivateKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_RSAPrivateKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_RSAPrivateKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSAPublicKey", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_RSA_PUBKEY", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_RSA_PUBKEY", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_RSA_PUBKEY", "(BIO *,RSA **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_SSL_SESSION", "(BIO *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_SSL_SESSION", "(BIO *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PEM_read_bio_SSL_SESSION", "(BIO *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_SSL_SESSION", "(BIO *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_SSL_SESSION", "(BIO *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_SSL_SESSION", "(BIO *,SSL_SESSION **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_ACERT", "(BIO *,X509_ACERT **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_AUX", "(BIO *,X509 **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_CRL", "(BIO *,X509_CRL **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_PUBKEY", "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_X509_REQ", "(BIO *,X509_REQ **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PEM_read_bio_ex", "(BIO *,char **,char **,unsigned char **,long *,unsigned int)", "", "Argument[**2]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_ex", "(BIO *,char **,char **,unsigned char **,long *,unsigned int)", "", "Argument[*2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio_ex", "(BIO *,char **,char **,unsigned char **,long *,unsigned int)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PEM_read_bio_ex", "(BIO *,char **,char **,unsigned char **,long *,unsigned int)", "", "Argument[*3]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio_ex", "(BIO *,char **,char **,unsigned char **,long *,unsigned int)", "", "Argument[2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio_ex", "(BIO *,char **,char **,unsigned char **,long *,unsigned int)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio_ex", "(BIO *,char **,char **,unsigned char **,long *,unsigned int)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio_ex", "(BIO *,char **,char **,unsigned char **,long *,unsigned int)", "", "Argument[3]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "PEM_read_bio_ex", "(BIO *,char **,char **,unsigned char **,long *,unsigned int)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "PEM_write_CMS", "(FILE *,const CMS_ContentInfo *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_DHparams", "(FILE *,const DH *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_DHxparams", "(FILE *,const DH *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_DSAPrivateKey", "(FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_DSAPrivateKey", "(FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_DSAPrivateKey", "(FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_DSA_PUBKEY", "(FILE *,const DSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_DSAparams", "(FILE *,const DSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_ECPKParameters", "(FILE *,const EC_GROUP *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_ECPrivateKey", "(FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_ECPrivateKey", "(FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_ECPrivateKey", "(FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_EC_PUBKEY", "(FILE *,const EC_KEY *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_NETSCAPE_CERT_SEQUENCE", "(FILE *,const NETSCAPE_CERT_SEQUENCE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_PKCS7", "(FILE *,const PKCS7 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_PKCS8", "(FILE *,const X509_SIG *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_PKCS8PrivateKey", "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_PKCS8PrivateKey", "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_PKCS8PrivateKey_nid", "(FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_PKCS8PrivateKey_nid", "(FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_PKCS8_PRIV_KEY_INFO", "(FILE *,const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_PUBKEY", "(FILE *,const EVP_PKEY *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_PUBKEY_ex", "(FILE *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_PrivateKey", "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_PrivateKey", "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_PrivateKey", "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_PrivateKey_ex", "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_PrivateKey_ex", "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_PrivateKey_ex", "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_RSAPrivateKey", "(FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_RSAPrivateKey", "(FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_RSAPrivateKey", "(FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_RSAPublicKey", "(FILE *,const RSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_RSA_PUBKEY", "(FILE *,const RSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_SSL_SESSION", "(FILE *,const SSL_SESSION *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_X509", "(FILE *,const X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_X509_ACERT", "(FILE *,const X509_ACERT *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_X509_AUX", "(FILE *,const X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_X509_CRL", "(FILE *,const X509_CRL *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_X509_PUBKEY", "(FILE *,const X509_PUBKEY *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_X509_REQ", "(FILE *,const X509_REQ *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_X509_REQ_NEW", "(FILE *,const X509_REQ *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_ASN1_stream", "(BIO *,ASN1_VALUE *,BIO *,int,const char *,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_ASN1_stream", "(BIO *,ASN1_VALUE *,BIO *,int,const char *,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_CMS", "(BIO *,const CMS_ContentInfo *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_CMS_stream", "(BIO *,CMS_ContentInfo *,BIO *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_CMS_stream", "(BIO *,CMS_ContentInfo *,BIO *,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_DHparams", "(BIO *,const DH *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_DHxparams", "(BIO *,const DH *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_DSAPrivateKey", "(BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_DSAPrivateKey", "(BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_DSAPrivateKey", "(BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_bio_DSA_PUBKEY", "(BIO *,const DSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_DSAparams", "(BIO *,const DSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_ECPKParameters", "(BIO *,const EC_GROUP *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_ECPrivateKey", "(BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_ECPrivateKey", "(BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_ECPrivateKey", "(BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_bio_EC_PUBKEY", "(BIO *,const EC_KEY *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_NETSCAPE_CERT_SEQUENCE", "(BIO *,const NETSCAPE_CERT_SEQUENCE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_PKCS7", "(BIO *,const PKCS7 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_PKCS7_stream", "(BIO *,PKCS7 *,BIO *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_PKCS7_stream", "(BIO *,PKCS7 *,BIO *,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_PKCS8", "(BIO *,const X509_SIG *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_PKCS8PrivateKey", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_PKCS8PrivateKey", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_bio_PKCS8PrivateKey_nid", "(BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_PKCS8PrivateKey_nid", "(BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_bio_PKCS8_PRIV_KEY_INFO", "(BIO *,const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_PUBKEY", "(BIO *,const EVP_PKEY *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_PUBKEY_ex", "(BIO *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_Parameters", "(BIO *,const EVP_PKEY *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_PrivateKey", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_PrivateKey", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_PrivateKey", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_bio_PrivateKey_ex", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_PrivateKey_ex", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_PrivateKey_ex", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_bio_PrivateKey_traditional", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_PrivateKey_traditional", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_PrivateKey_traditional", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_bio_RSAPrivateKey", "(BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_RSAPrivateKey", "(BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "PEM_write_bio_RSAPrivateKey", "(BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "PEM_write_bio_RSAPublicKey", "(BIO *,const RSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_RSA_PUBKEY", "(BIO *,const RSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_SSL_SESSION", "(BIO *,const SSL_SESSION *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_X509", "(BIO *,const X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_X509_ACERT", "(BIO *,const X509_ACERT *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_X509_AUX", "(BIO *,const X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_X509_CRL", "(BIO *,const X509_CRL *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_X509_PUBKEY", "(BIO *,const X509_PUBKEY *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_X509_REQ", "(BIO *,const X509_REQ *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PEM_write_bio_X509_REQ_NEW", "(BIO *,const X509_REQ *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS12_BAGS_free", "(PKCS12_BAGS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS12_BAGS_free", "(PKCS12_BAGS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS12_MAC_DATA_free", "(PKCS12_MAC_DATA *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS12_MAC_DATA_free", "(PKCS12_MAC_DATA *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS12_PBE_keyivgen", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int)", "", "Argument[4]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_PBE_keyivgen", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int)", "", "Argument[4]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_PBE_keyivgen", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int)", "", "Argument[6]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_PBE_keyivgen_ex", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_PBE_keyivgen_ex", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_PBE_keyivgen_ex", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_create0_p8inf", "(PKCS8_PRIV_KEY_INFO *)", "", "Argument[*0]", "ReturnValue[*].Field[*value].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_create0_p8inf", "(PKCS8_PRIV_KEY_INFO *)", "", "Argument[0]", "ReturnValue[*].Field[*value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_create0_pkcs8", "(X509_SIG *)", "", "Argument[*0]", "ReturnValue[*].Field[*value].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_create0_pkcs8", "(X509_SIG *)", "", "Argument[0]", "ReturnValue[*].Field[*value].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_create_cert", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_create_crl", "(X509_CRL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_create_pkcs8_encrypt", "(int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *)", "", "Argument[*6]", "Argument[6]", "value", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_create_pkcs8_encrypt_ex", "(int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[*6]", "Argument[6]", "value", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_free", "(PKCS12_SAFEBAG *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_free", "(PKCS12_SAFEBAG *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get0_attrs", "(const PKCS12_SAFEBAG *)", "", "Argument[*0].Field[**attrib]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get0_attrs", "(const PKCS12_SAFEBAG *)", "", "Argument[*0].Field[*attrib]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get0_p8inf", "(const PKCS12_SAFEBAG *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get0_p8inf", "(const PKCS12_SAFEBAG *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get0_pkcs8", "(const PKCS12_SAFEBAG *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get0_pkcs8", "(const PKCS12_SAFEBAG *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get0_safes", "(const PKCS12_SAFEBAG *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get0_safes", "(const PKCS12_SAFEBAG *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get0_type", "(const PKCS12_SAFEBAG *)", "", "Argument[*0].Field[**type]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get0_type", "(const PKCS12_SAFEBAG *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get1_cert_ex", "(const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get1_cert_ex", "(const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get1_cert_ex", "(const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get1_cert_ex", "(const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get1_crl_ex", "(const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get1_crl_ex", "(const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get1_crl_ex", "(const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get1_crl_ex", "(const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_get_nid", "(const PKCS12_SAFEBAG *)", "", "Argument[*0].Field[**type].Field[*nid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_set0_attrs", "(PKCS12_SAFEBAG *,stack_st_X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[*0].Field[**attrib]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_SAFEBAG_set0_attrs", "(PKCS12_SAFEBAG *,stack_st_X509_ATTRIBUTE *)", "", "Argument[1]", "Argument[*0].Field[*attrib]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_add_cert", "(stack_st_PKCS12_SAFEBAG **,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS12_add_cert", "(stack_st_PKCS12_SAFEBAG **,X509 *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_add_key", "(stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_add_key_ex", "(stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_add_safe", "(stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS12_add_safe", "(stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_add_safe_ex", "(stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS12_add_safe_ex", "(stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_add_safes", "(stack_st_PKCS7 *,int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS12_add_safes", "(stack_st_PKCS7 *,int)", "", "Argument[1]", "ReturnValue[*].Field[**authsafes].Field[**type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_add_safes", "(stack_st_PKCS7 *,int)", "", "Argument[1]", "ReturnValue[*].Field[**authsafes].Field[*type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_add_safes_ex", "(stack_st_PKCS7 *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS12_add_safes_ex", "(stack_st_PKCS7 *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**authsafes].Field[**type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_add_safes_ex", "(stack_st_PKCS7 *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**authsafes].Field[*type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_add_secret", "(stack_st_PKCS12_SAFEBAG **,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_create", "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "PKCS12_create", "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int)", "", "Argument[*4].Field[**data]", "Argument[*4].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_create_ex2", "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "PKCS12_create_ex2", "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *)", "", "Argument[*4].Field[**data]", "Argument[*4].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_create_ex", "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "PKCS12_create_ex", "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*4].Field[**data]", "Argument[*4].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_free", "(PKCS12 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS12_free", "(PKCS12 *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS12_get0_mac", "(const ASN1_OCTET_STRING **,const X509_ALGOR **,const ASN1_OCTET_STRING **,const ASN1_INTEGER **,const PKCS12 *)", "", "Argument[*4]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "PKCS12_get0_mac", "(const ASN1_OCTET_STRING **,const X509_ALGOR **,const ASN1_OCTET_STRING **,const ASN1_INTEGER **,const PKCS12 *)", "", "Argument[*4]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "PKCS12_get0_mac", "(const ASN1_OCTET_STRING **,const X509_ALGOR **,const ASN1_OCTET_STRING **,const ASN1_INTEGER **,const PKCS12 *)", "", "Argument[*4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "PKCS12_get0_mac", "(const ASN1_OCTET_STRING **,const X509_ALGOR **,const ASN1_OCTET_STRING **,const ASN1_INTEGER **,const PKCS12 *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "PKCS12_init", "(int)", "", "Argument[0]", "ReturnValue[*].Field[**authsafes].Field[**type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_init", "(int)", "", "Argument[0]", "ReturnValue[*].Field[**authsafes].Field[*type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_init_ex", "(int,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**authsafes].Field[**type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_init_ex", "(int,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**authsafes].Field[*type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_item_decrypt_d2i", "(const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_decrypt_d2i", "(const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_decrypt_d2i", "(const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int)", "", "Argument[*4]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_decrypt_d2i", "(const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int)", "", "Argument[*4]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_decrypt_d2i_ex", "(const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_decrypt_d2i_ex", "(const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_decrypt_d2i_ex", "(const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_decrypt_d2i_ex", "(const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_i2d_encrypt", "(X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int)", "", "Argument[*1]", "Argument[4]", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_i2d_encrypt", "(X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int)", "", "Argument[*4]", "Argument[4]", "value", "df-generated"] + - ["", "", True, "PKCS12_item_i2d_encrypt", "(X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int)", "", "Argument[*4]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_i2d_encrypt", "(X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int)", "", "Argument[4]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_i2d_encrypt_ex", "(X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[4]", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_i2d_encrypt_ex", "(X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "Argument[4]", "value", "df-generated"] + - ["", "", True, "PKCS12_item_i2d_encrypt_ex", "(X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_i2d_encrypt_ex", "(X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS12_item_pack_safebag", "(void *,const ASN1_ITEM *,int,int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS12_item_pack_safebag", "(void *,const ASN1_ITEM *,int,int)", "", "Argument[3]", "ReturnValue[*].Field[**type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_item_pack_safebag", "(void *,const ASN1_ITEM *,int,int)", "", "Argument[3]", "ReturnValue[*].Field[*type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_pack_authsafes", "(PKCS12 *,stack_st_PKCS7 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS12_pack_p7data", "(stack_st_PKCS12_SAFEBAG *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS12_pack_p7encdata", "(int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *)", "", "Argument[*6]", "Argument[6]", "value", "df-generated"] + - ["", "", True, "PKCS12_pack_p7encdata_ex", "(int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[*6]", "Argument[6]", "value", "df-generated"] + - ["", "", True, "PKCS12_pack_p7encdata_ex", "(int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[*7]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_pack_p7encdata_ex", "(int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[*8]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_pack_p7encdata_ex", "(int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[7]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS12_pack_p7encdata_ex", "(int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)", "", "Argument[8]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_parse", "(PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **)", "", "Argument[**3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "PKCS12_parse", "(PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "PKCS12_parse", "(PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_parse", "(PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_parse", "(PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_parse", "(PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_pbe_crypt", "(const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int)", "", "Argument[4]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_pbe_crypt", "(const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int)", "", "Argument[4]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_pbe_crypt", "(const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int)", "", "Argument[4]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_pbe_crypt_ex", "(const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "PKCS12_set_pbmac1_pbkdf2", "(PKCS12 *,const char *,int,unsigned char *,int,int,const EVP_MD *,const char *)", "", "Argument[4]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "PKCS1_MGF1", "(unsigned char *,long,const unsigned char *,long,const EVP_MD *)", "", "Argument[*4].Field[*md_size]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PKCS1_MGF1", "(unsigned char *,long,const unsigned char *,long,const EVP_MD *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PKCS1_MGF1", "(unsigned char *,long,const unsigned char *,long,const EVP_MD *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "PKCS5_PBE_keyivgen", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int)", "", "Argument[4]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_PBE_keyivgen", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int)", "", "Argument[4]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_PBE_keyivgen", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int)", "", "Argument[6]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_PBE_keyivgen_ex", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_PBE_keyivgen_ex", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[*0].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_PBE_keyivgen_ex", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_pbe_set0_algor", "(X509_ALGOR *,int,int,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS5_pbe_set0_algor", "(X509_ALGOR *,int,int,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS5_pbe_set0_algor_ex", "(X509_ALGOR *,int,int,const unsigned char *,int,OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*0].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS5_pbe_set0_algor_ex", "(X509_ALGOR *,int,int,const unsigned char *,int,OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*0].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS5_pbe_set", "(int,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue[*].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS5_pbe_set", "(int,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue[*].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS5_pbe_set_ex", "(int,int,const unsigned char *,int,OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS5_pbe_set_ex", "(int,int,const unsigned char *,int,OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS5_v2_PBE_keyivgen", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int)", "", "Argument[6]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_v2_PBE_keyivgen_ex", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_v2_PBKDF2_keyivgen", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int)", "", "Argument[6]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_v2_PBKDF2_keyivgen_ex", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_v2_scrypt_keyivgen", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int)", "", "Argument[6]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "PKCS5_v2_scrypt_keyivgen_ex", "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "Argument[*0].Field[*encrypt]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_DIGEST_free", "(PKCS7_DIGEST *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_DIGEST_free", "(PKCS7_DIGEST *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_ENCRYPT_free", "(PKCS7_ENCRYPT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_ENCRYPT_free", "(PKCS7_ENCRYPT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_ENC_CONTENT_free", "(PKCS7_ENC_CONTENT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_ENC_CONTENT_free", "(PKCS7_ENC_CONTENT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_ENVELOPE_free", "(PKCS7_ENVELOPE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_ENVELOPE_free", "(PKCS7_ENVELOPE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_ISSUER_AND_SERIAL_digest", "(PKCS7_ISSUER_AND_SERIAL *,const EVP_MD *,unsigned char *,unsigned int *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_ISSUER_AND_SERIAL_free", "(PKCS7_ISSUER_AND_SERIAL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_ISSUER_AND_SERIAL_free", "(PKCS7_ISSUER_AND_SERIAL *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_RECIP_INFO_free", "(PKCS7_RECIP_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_RECIP_INFO_free", "(PKCS7_RECIP_INFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_RECIP_INFO_get0_alg", "(PKCS7_RECIP_INFO *,X509_ALGOR **)", "", "Argument[*0].Field[**key_enc_algor]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_RECIP_INFO_get0_alg", "(PKCS7_RECIP_INFO *,X509_ALGOR **)", "", "Argument[*0].Field[*key_enc_algor]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_RECIP_INFO_set", "(PKCS7_RECIP_INFO *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*cert]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_SIGNED_free", "(PKCS7_SIGNED *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_SIGNED_free", "(PKCS7_SIGNED *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_free", "(PKCS7_SIGNER_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_free", "(PKCS7_SIGNER_INFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_get0_algs", "(PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_get0_algs", "(PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_get0_algs", "(PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_get0_algs", "(PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_get0_algs", "(PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_get0_algs", "(PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_set", "(PKCS7_SIGNER_INFO *,X509 *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*3].Field[*type]", "Argument[*0].Field[**digest_alg].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_set", "(PKCS7_SIGNER_INFO *,X509 *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*3].Field[*type]", "Argument[*0].Field[**digest_alg].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_SIGNER_INFO_set", "(PKCS7_SIGNER_INFO *,X509 *,EVP_PKEY *,const EVP_MD *)", "", "Argument[2]", "Argument[*0].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_SIGN_ENVELOPE_free", "(PKCS7_SIGN_ENVELOPE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_SIGN_ENVELOPE_free", "(PKCS7_SIGN_ENVELOPE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_add_attrib_smimecap", "(PKCS7_SIGNER_INFO *,stack_st_X509_ALGOR *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS7_add_certificate", "(PKCS7 *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS7_add_certificate", "(PKCS7 *,X509 *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PKCS7_add_crl", "(PKCS7 *,X509_CRL *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS7_add_crl", "(PKCS7 *,X509_CRL *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PKCS7_add_recipient", "(PKCS7 *,X509 *)", "", "Argument[*0].Field[*ctx]", "ReturnValue[*].Field[**ctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_add_recipient", "(PKCS7 *,X509 *)", "", "Argument[1]", "ReturnValue[*].Field[*cert]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_add_signature", "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*0].Field[*ctx]", "ReturnValue[*].Field[**ctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_add_signature", "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*3].Field[*type]", "ReturnValue[*].Field[**digest_alg].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_add_signature", "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*3].Field[*type]", "ReturnValue[*].Field[**digest_alg].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_add_signature", "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *)", "", "Argument[2]", "ReturnValue[*].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_add_signer", "(PKCS7 *,PKCS7_SIGNER_INFO *)", "", "Argument[*0].Field[*ctx]", "Argument[*1].Field[**ctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_ctrl", "(PKCS7 *,int,long,char *)", "", "Argument[*0].Field[*detached]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PKCS7_ctrl", "(PKCS7 *,int,long,char *)", "", "Argument[2]", "Argument[*0].Field[*detached]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dataDecode", "(PKCS7 *,EVP_PKEY *,BIO *,X509 *)", "", "Argument[*2]", "Argument[*2].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dataDecode", "(PKCS7 *,EVP_PKEY *,BIO *,X509 *)", "", "Argument[*2]", "ReturnValue[*].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dataDecode", "(PKCS7 *,EVP_PKEY *,BIO *,X509 *)", "", "Argument[2]", "Argument[*2].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dataDecode", "(PKCS7 *,EVP_PKEY *,BIO *,X509 *)", "", "Argument[2]", "ReturnValue[*].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dataInit", "(PKCS7 *,BIO *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "PKCS7_dataInit", "(PKCS7 *,BIO *)", "", "Argument[1]", "Argument[*1].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dataInit", "(PKCS7 *,BIO *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dataInit", "(PKCS7 *,BIO *)", "", "Argument[1]", "ReturnValue[*].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dataVerify", "(X509_STORE *,X509_STORE_CTX *,BIO *,PKCS7 *,PKCS7_SIGNER_INFO *)", "", "Argument[*2].Field[**next_bio].Field[**next_bio]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dataVerify", "(X509_STORE *,X509_STORE_CTX *,BIO *,PKCS7 *,PKCS7_SIGNER_INFO *)", "", "Argument[*2].Field[**next_bio]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dataVerify", "(X509_STORE *,X509_STORE_CTX *,BIO *,PKCS7 *,PKCS7_SIGNER_INFO *)", "", "Argument[0]", "Argument[*1].Field[*store]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_dup", "(const PKCS7 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_dup", "(const PKCS7 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS7_dup", "(const PKCS7 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS7_dup", "(const PKCS7 *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS7_dup", "(const PKCS7 *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS7_encrypt_ex", "(stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_encrypt_ex", "(stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*5]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_encrypt_ex", "(stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_encrypt_ex", "(stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[5]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_free", "(PKCS7 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_free", "(PKCS7 *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_get0_signers", "(PKCS7 *,stack_st_X509 *,int)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS7_get_octet_string", "(PKCS7 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS7_get_octet_string", "(PKCS7 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS7_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_print_ctx", "(BIO *,const PKCS7 *,int,const ASN1_PCTX *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS7_print_ctx", "(BIO *,const PKCS7 *,int,const ASN1_PCTX *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_set0_type_other", "(PKCS7 *,int,ASN1_TYPE *)", "", "Argument[*2]", "Argument[*0].Field[*d].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_set0_type_other", "(PKCS7 *,int,ASN1_TYPE *)", "", "Argument[1]", "Argument[*0].Field[**type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_set0_type_other", "(PKCS7 *,int,ASN1_TYPE *)", "", "Argument[1]", "Argument[*0].Field[*type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_set0_type_other", "(PKCS7 *,int,ASN1_TYPE *)", "", "Argument[2]", "Argument[*0].Field[*d].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_set_attributes", "(PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *)", "", "Argument[*1].Field[*num]", "Argument[*0].Field[**unauth_attr].Field[*num_alloc]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_set_attributes", "(PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[*0].Field[**unauth_attr]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_set_attributes", "(PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *)", "", "Argument[1]", "Argument[*0].Field[**unauth_attr]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_set_attributes", "(PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_set_signed_attributes", "(PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *)", "", "Argument[*1].Field[*num]", "Argument[*0].Field[**auth_attr].Field[*num_alloc]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_set_signed_attributes", "(PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[*0].Field[**auth_attr]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_set_signed_attributes", "(PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *)", "", "Argument[1]", "Argument[*0].Field[**auth_attr]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_set_signed_attributes", "(PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_set_type", "(PKCS7 *,int)", "", "Argument[1]", "Argument[*0].Field[**type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_set_type", "(PKCS7 *,int)", "", "Argument[1]", "Argument[*0].Field[*type]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_sign", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_sign", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_sign_add_signer", "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int)", "", "Argument[*0].Field[*ctx]", "ReturnValue[*].Field[**ctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_sign_add_signer", "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS7_sign_add_signer", "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int)", "", "Argument[*3].Field[*type]", "ReturnValue[*].Field[**digest_alg].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_sign_add_signer", "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int)", "", "Argument[*3].Field[*type]", "ReturnValue[*].Field[**digest_alg].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_sign_add_signer", "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "PKCS7_sign_add_signer", "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int)", "", "Argument[2]", "ReturnValue[*].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS7_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*5]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*6]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS7_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[5]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_sign_ex", "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "PKCS7_signatureVerify", "(BIO *,PKCS7 *,PKCS7_SIGNER_INFO *,X509 *)", "", "Argument[*0].Field[**next_bio].Field[**next_bio]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_signatureVerify", "(BIO *,PKCS7 *,PKCS7_SIGNER_INFO *,X509 *)", "", "Argument[*0].Field[**next_bio]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_simple_smimecap", "(stack_st_X509_ALGOR *,int,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "PKCS7_verify", "(PKCS7 *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,int)", "", "Argument[3]", "Argument[*3].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PKCS7_verify", "(PKCS7 *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,int)", "", "Argument[3]", "Argument[*3].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "PKCS8_PRIV_KEY_INFO_free", "(PKCS8_PRIV_KEY_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKCS8_PRIV_KEY_INFO_free", "(PKCS8_PRIV_KEY_INFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PKCS8_decrypt", "(const X509_SIG *,const char *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS8_decrypt", "(const X509_SIG *,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS8_decrypt_ex", "(const X509_SIG *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS8_decrypt_ex", "(const X509_SIG *,const char *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "PKCS8_encrypt", "(int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *)", "", "Argument[*7]", "Argument[7]", "value", "df-generated"] + - ["", "", True, "PKCS8_encrypt", "(int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *)", "", "Argument[0]", "ReturnValue[*].Field[**algor].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS8_encrypt", "(int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *)", "", "Argument[0]", "ReturnValue[*].Field[**algor].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS8_encrypt_ex", "(int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[*7]", "Argument[7]", "value", "df-generated"] + - ["", "", True, "PKCS8_encrypt_ex", "(int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**algor].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS8_encrypt_ex", "(int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**algor].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "PKCS8_pkey_add1_attr", "(PKCS8_PRIV_KEY_INFO *,X509_ATTRIBUTE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS8_pkey_add1_attr", "(PKCS8_PRIV_KEY_INFO *,X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "PKCS8_pkey_add1_attr_by_OBJ", "(PKCS8_PRIV_KEY_INFO *,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "PKCS8_pkey_get0", "(const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*4]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "PKCS8_pkey_get0", "(const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*4]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "PKCS8_pkey_get0", "(const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*4]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "PKCS8_pkey_get0", "(const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "PKCS8_pkey_get0", "(const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "PKCS8_pkey_get0", "(const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "PKCS8_pkey_get0", "(const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "PKCS8_pkey_get0_attrs", "(const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*0].Field[**attributes]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "PKCS8_pkey_get0_attrs", "(const PKCS8_PRIV_KEY_INFO *)", "", "Argument[*0].Field[*attributes]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PKCS8_pkey_set0", "(PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[**pkeyalg].Field[**algorithm]", "value", "dfc-generated"] + - ["", "", True, "PKCS8_pkey_set0", "(PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int)", "", "Argument[*5]", "Argument[*0].Field[**pkey].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "PKCS8_pkey_set0", "(PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**pkeyalg].Field[*algorithm]", "value", "dfc-generated"] + - ["", "", True, "PKCS8_pkey_set0", "(PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[**version].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "PKCS8_pkey_set0", "(PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int)", "", "Argument[5]", "Argument[*0].Field[**pkey].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "PKCS8_pkey_set0", "(PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int)", "", "Argument[6]", "Argument[*0].Field[**pkey].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "PKCS8_set0_pbe", "(const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "PKCS8_set0_pbe", "(const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *)", "", "Argument[3]", "ReturnValue[*].Field[*algor]", "value", "dfc-generated"] + - ["", "", True, "PKCS8_set0_pbe_ex", "(const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "PKCS8_set0_pbe_ex", "(const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[*algor]", "value", "dfc-generated"] + - ["", "", True, "PKEY_USAGE_PERIOD_free", "(PKEY_USAGE_PERIOD *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PKEY_USAGE_PERIOD_free", "(PKEY_USAGE_PERIOD *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "POLICYINFO_free", "(POLICYINFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "POLICYINFO_free", "(POLICYINFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "POLICYQUALINFO_free", "(POLICYQUALINFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "POLICYQUALINFO_free", "(POLICYQUALINFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "POLICY_CONSTRAINTS_free", "(POLICY_CONSTRAINTS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "POLICY_CONSTRAINTS_free", "(POLICY_CONSTRAINTS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "POLICY_MAPPING_free", "(POLICY_MAPPING *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "POLICY_MAPPING_free", "(POLICY_MAPPING *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PROFESSION_INFO_free", "(PROFESSION_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PROFESSION_INFO_free", "(PROFESSION_INFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PROFESSION_INFO_get0_addProfessionInfo", "(const PROFESSION_INFO *)", "", "Argument[*0].Field[**addProfessionInfo]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_get0_addProfessionInfo", "(const PROFESSION_INFO *)", "", "Argument[*0].Field[*addProfessionInfo]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_get0_namingAuthority", "(const PROFESSION_INFO *)", "", "Argument[*0].Field[**namingAuthority]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_get0_namingAuthority", "(const PROFESSION_INFO *)", "", "Argument[*0].Field[*namingAuthority]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_get0_professionItems", "(const PROFESSION_INFO *)", "", "Argument[*0].Field[**professionItems]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_get0_professionItems", "(const PROFESSION_INFO *)", "", "Argument[*0].Field[*professionItems]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_get0_professionOIDs", "(const PROFESSION_INFO *)", "", "Argument[*0].Field[**professionOIDs]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_get0_professionOIDs", "(const PROFESSION_INFO *)", "", "Argument[*0].Field[*professionOIDs]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_get0_registrationNumber", "(const PROFESSION_INFO *)", "", "Argument[*0].Field[**registrationNumber]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_get0_registrationNumber", "(const PROFESSION_INFO *)", "", "Argument[*0].Field[*registrationNumber]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_set0_addProfessionInfo", "(PROFESSION_INFO *,ASN1_OCTET_STRING *)", "", "Argument[*1]", "Argument[*0].Field[**addProfessionInfo]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_set0_addProfessionInfo", "(PROFESSION_INFO *,ASN1_OCTET_STRING *)", "", "Argument[1]", "Argument[*0].Field[*addProfessionInfo]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_set0_namingAuthority", "(PROFESSION_INFO *,NAMING_AUTHORITY *)", "", "Argument[*1]", "Argument[*0].Field[**namingAuthority]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_set0_namingAuthority", "(PROFESSION_INFO *,NAMING_AUTHORITY *)", "", "Argument[1]", "Argument[*0].Field[*namingAuthority]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_set0_professionItems", "(PROFESSION_INFO *,stack_st_ASN1_STRING *)", "", "Argument[*1]", "Argument[*0].Field[**professionItems]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_set0_professionItems", "(PROFESSION_INFO *,stack_st_ASN1_STRING *)", "", "Argument[1]", "Argument[*0].Field[*professionItems]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_set0_professionOIDs", "(PROFESSION_INFO *,stack_st_ASN1_OBJECT *)", "", "Argument[*1]", "Argument[*0].Field[**professionOIDs]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_set0_professionOIDs", "(PROFESSION_INFO *,stack_st_ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[*professionOIDs]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_set0_registrationNumber", "(PROFESSION_INFO *,ASN1_PRINTABLESTRING *)", "", "Argument[*1]", "Argument[*0].Field[**registrationNumber]", "value", "dfc-generated"] + - ["", "", True, "PROFESSION_INFO_set0_registrationNumber", "(PROFESSION_INFO *,ASN1_PRINTABLESTRING *)", "", "Argument[1]", "Argument[*0].Field[*registrationNumber]", "value", "dfc-generated"] + - ["", "", True, "PROXY_CERT_INFO_EXTENSION_free", "(PROXY_CERT_INFO_EXTENSION *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PROXY_CERT_INFO_EXTENSION_free", "(PROXY_CERT_INFO_EXTENSION *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "PROXY_POLICY_free", "(PROXY_POLICY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "PROXY_POLICY_free", "(PROXY_POLICY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "Poly1305_Init", "(POLY1305 *,const unsigned char[32])", "", "Argument[*1]", "Argument[*0].Field[*nonce]", "taint", "dfc-generated"] + - ["", "", True, "Poly1305_Init", "(POLY1305 *,const unsigned char[32])", "", "Argument[1]", "Argument[*0].Field[*nonce]", "taint", "dfc-generated"] + - ["", "", True, "Poly1305_Update", "(POLY1305 *,const unsigned char *,size_t)", "", "Argument[*0].Field[*num]", "Argument[*0].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "Poly1305_Update", "(POLY1305 *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "Poly1305_Update", "(POLY1305 *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "Poly1305_Update", "(POLY1305 *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "Poly1305_Update", "(POLY1305 *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "taint", "dfc-generated"] + - ["", "", True, "RAND_bytes", "(unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RAND_bytes", "(unsigned char *,int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RAND_bytes_ex", "(OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RAND_bytes_ex", "(OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RAND_file_name", "(char *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RAND_file_name", "(char *,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RAND_file_name", "(char *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "RAND_get0_primary", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "RAND_get0_primary", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RAND_get0_private", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RAND_get0_public", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RAND_priv_bytes", "(unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RAND_priv_bytes", "(unsigned char *,int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RAND_priv_bytes_ex", "(OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RAND_priv_bytes_ex", "(OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[*0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[*3].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[*3].Field[*data]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cbc_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_cfb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "RC2_decrypt", "(unsigned long *,RC2_KEY *)", "", "Argument[*1].Field[*data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RC2_decrypt", "(unsigned long *,RC2_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RC2_ecb_encrypt", "(const unsigned char *,unsigned char *,RC2_KEY *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_ecb_encrypt", "(const unsigned char *,unsigned char *,RC2_KEY *,int)", "", "Argument[*2].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_ecb_encrypt", "(const unsigned char *,unsigned char *,RC2_KEY *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_ecb_encrypt", "(const unsigned char *,unsigned char *,RC2_KEY *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_encrypt", "(unsigned long *,RC2_KEY *)", "", "Argument[*1].Field[*data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RC2_encrypt", "(unsigned long *,RC2_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RC2_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RC2_ofb64_encrypt", "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "RECORD_LAYER_init", "(RECORD_LAYER *,SSL_CONNECTION *)", "", "Argument[*1]", "Argument[*0].Field[**s]", "value", "dfc-generated"] + - ["", "", True, "RECORD_LAYER_init", "(RECORD_LAYER *,SSL_CONNECTION *)", "", "Argument[1]", "Argument[*0].Field[*s]", "value", "dfc-generated"] + - ["", "", True, "RIPEMD160", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RIPEMD160", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "RIPEMD160", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RIPEMD160", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "RIPEMD160_Final", "(unsigned char *,RIPEMD160_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RIPEMD160_Transform", "(RIPEMD160_CTX *,const unsigned char *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RIPEMD160_Transform", "(RIPEMD160_CTX *,const unsigned char *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RIPEMD160_Update", "(RIPEMD160_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nh]", "taint", "dfc-generated"] + - ["", "", True, "RIPEMD160_Update", "(RIPEMD160_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nl]", "taint", "dfc-generated"] + - ["", "", True, "RIPEMD160_Update", "(RIPEMD160_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "RSAPrivateKey_dup", "(const RSA *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "RSAPrivateKey_dup", "(const RSA *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "RSAPrivateKey_dup", "(const RSA *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RSAPrivateKey_dup", "(const RSA *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "RSAPrivateKey_dup", "(const RSA *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RSAPublicKey_dup", "(const RSA *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "RSAPublicKey_dup", "(const RSA *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "RSAPublicKey_dup", "(const RSA *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RSAPublicKey_dup", "(const RSA *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "RSAPublicKey_dup", "(const RSA *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RSAZ_1024_mod_exp_avx2", "(unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],unsigned long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSAZ_512_mod_exp", "(unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8])", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_OAEP_PARAMS_free", "(RSA_OAEP_PARAMS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "RSA_OAEP_PARAMS_free", "(RSA_OAEP_PARAMS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "RSA_PSS_PARAMS_dup", "(const RSA_PSS_PARAMS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "RSA_PSS_PARAMS_dup", "(const RSA_PSS_PARAMS *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "RSA_PSS_PARAMS_dup", "(const RSA_PSS_PARAMS *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RSA_PSS_PARAMS_dup", "(const RSA_PSS_PARAMS *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "RSA_PSS_PARAMS_dup", "(const RSA_PSS_PARAMS *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RSA_PSS_PARAMS_free", "(RSA_PSS_PARAMS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "RSA_PSS_PARAMS_free", "(RSA_PSS_PARAMS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*10]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*11]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*7]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*10]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*11]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*1]", "Argument[*7]", "value", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*2]", "Argument[*7]", "value", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*3]", "Argument[*10]", "value", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*3]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*4]", "Argument[*10]", "value", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*5]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*5]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*5]", "Argument[*7]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*6]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*6]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*6]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*6]", "Argument[*7]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*7]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*8]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*8]", "Argument[*10]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*8]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*8]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*9]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*9]", "Argument[*10]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*9]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_derive_ex", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)", "", "Argument[*9]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_generate_key_ex", "(RSA *,int,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_generate_key_ex", "(RSA *,int,const BIGNUM *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_X931_generate_key_ex", "(RSA *,int,const BIGNUM *,BN_GENCB *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_bits", "(const RSA *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "RSA_blinding_on", "(RSA *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "RSA_blinding_on", "(RSA *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_clear_flags", "(RSA *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "RSA_flags", "(const RSA *)", "", "Argument[*0].Field[**meth].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_generate_key", "(int,unsigned long,..(*)(..),void *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RSA_generate_key_ex", "(RSA *,int,BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "RSA_generate_key_ex", "(RSA *,int,BIGNUM *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_generate_key_ex", "(RSA *,int,BIGNUM *,BN_GENCB *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "RSA_generate_key_ex", "(RSA *,int,BIGNUM *,BN_GENCB *)", "", "Argument[1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "RSA_generate_multi_prime_key", "(RSA *,int,int,BIGNUM *,BN_GENCB *)", "", "Argument[2]", "Argument[*0].Field[**e].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "RSA_generate_multi_prime_key", "(RSA *,int,int,BIGNUM *,BN_GENCB *)", "", "Argument[2]", "Argument[*0].Field[**e].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "RSA_generate_multi_prime_key", "(RSA *,int,int,BIGNUM *,BN_GENCB *)", "", "Argument[2]", "Argument[*0].Field[**prime_infos].Field[*num_alloc]", "taint", "dfc-generated"] + - ["", "", True, "RSA_get0_crt_params", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_crt_params", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_crt_params", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_crt_params", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_crt_params", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_crt_params", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_d", "(const RSA *)", "", "Argument[*0].Field[**d]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_d", "(const RSA *)", "", "Argument[*0].Field[*d]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_dmp1", "(const RSA *)", "", "Argument[*0].Field[**dmp1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_dmp1", "(const RSA *)", "", "Argument[*0].Field[*dmp1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_dmq1", "(const RSA *)", "", "Argument[*0].Field[**dmq1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_dmq1", "(const RSA *)", "", "Argument[*0].Field[*dmq1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_e", "(const RSA *)", "", "Argument[*0].Field[**e]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_e", "(const RSA *)", "", "Argument[*0].Field[*e]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_engine", "(const RSA *)", "", "Argument[*0].Field[**engine]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_engine", "(const RSA *)", "", "Argument[*0].Field[*engine]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_factors", "(const RSA *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_factors", "(const RSA *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_factors", "(const RSA *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_factors", "(const RSA *,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_iqmp", "(const RSA *)", "", "Argument[*0].Field[**iqmp]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_iqmp", "(const RSA *)", "", "Argument[*0].Field[*iqmp]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_key", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_key", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_key", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_key", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_key", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_key", "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "RSA_get0_n", "(const RSA *)", "", "Argument[*0].Field[**n]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_n", "(const RSA *)", "", "Argument[*0].Field[*n]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_p", "(const RSA *)", "", "Argument[*0].Field[**p]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_p", "(const RSA *)", "", "Argument[*0].Field[*p]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_pss_params", "(const RSA *)", "", "Argument[*0].Field[**pss]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_pss_params", "(const RSA *)", "", "Argument[*0].Field[*pss]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_q", "(const RSA *)", "", "Argument[*0].Field[**q]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get0_q", "(const RSA *)", "", "Argument[*0].Field[*q]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get_ex_data", "(const RSA *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "RSA_get_method", "(const RSA *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_get_method", "(const RSA *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get_multi_prime_extra_count", "(const RSA *)", "", "Argument[*0].Field[**prime_infos].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_get_version", "(RSA *)", "", "Argument[*0].Field[*version]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_dup", "(const RSA_METHOD *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "RSA_meth_dup", "(const RSA_METHOD *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "RSA_meth_get0_app_data", "(const RSA_METHOD *)", "", "Argument[*0].Field[**app_data]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get0_app_data", "(const RSA_METHOD *)", "", "Argument[*0].Field[*app_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get0_name", "(const RSA_METHOD *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get0_name", "(const RSA_METHOD *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_bn_mod_exp", "(const RSA_METHOD *)", "", "Argument[*0].Field[*bn_mod_exp]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_finish", "(const RSA_METHOD *)", "", "Argument[*0].Field[*finish]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_flags", "(const RSA_METHOD *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_init", "(const RSA_METHOD *)", "", "Argument[*0].Field[*init]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_keygen", "(const RSA_METHOD *)", "", "Argument[*0].Field[*rsa_keygen]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_mod_exp", "(const RSA_METHOD *)", "", "Argument[*0].Field[*rsa_mod_exp]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_multi_prime_keygen", "(const RSA_METHOD *)", "", "Argument[*0].Field[*rsa_multi_prime_keygen]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_priv_dec", "(const RSA_METHOD *)", "", "Argument[*0].Field[*rsa_priv_dec]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_priv_enc", "(const RSA_METHOD *)", "", "Argument[*0].Field[*rsa_priv_enc]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_pub_dec", "(const RSA_METHOD *)", "", "Argument[*0].Field[*rsa_pub_dec]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_pub_enc", "(const RSA_METHOD *)", "", "Argument[*0].Field[*rsa_pub_enc]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_sign", "(const RSA_METHOD *)", "", "Argument[*0].Field[*rsa_sign]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_get_verify", "(const RSA_METHOD *)", "", "Argument[*0].Field[*rsa_verify]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_new", "(const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_new", "(const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "RSA_meth_new", "(const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set0_app_data", "(RSA_METHOD *,void *)", "", "Argument[*1]", "Argument[*0].Field[**app_data]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set0_app_data", "(RSA_METHOD *,void *)", "", "Argument[1]", "Argument[*0].Field[*app_data]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set1_name", "(RSA_METHOD *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set1_name", "(RSA_METHOD *,const char *)", "", "Argument[1]", "Argument[*0].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "RSA_meth_set_bn_mod_exp", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*bn_mod_exp]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_finish", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*finish]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_flags", "(RSA_METHOD *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_init", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*init]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_keygen", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*rsa_keygen]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_mod_exp", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*rsa_mod_exp]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_multi_prime_keygen", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*rsa_multi_prime_keygen]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_priv_dec", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*rsa_priv_dec]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_priv_enc", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*rsa_priv_enc]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_pub_dec", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*rsa_pub_dec]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_pub_enc", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*rsa_pub_enc]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_sign", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*rsa_sign]", "value", "dfc-generated"] + - ["", "", True, "RSA_meth_set_verify", "(RSA_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*rsa_verify]", "value", "dfc-generated"] + - ["", "", True, "RSA_new_method", "(ENGINE *)", "", "Argument[0]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_OAEP", "(unsigned char *,int,const unsigned char *,int,const unsigned char *,int)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_OAEP", "(unsigned char *,int,const unsigned char *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_OAEP", "(unsigned char *,int,const unsigned char *,int,const unsigned char *,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[*6]", "Argument[*7]", "value", "df-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[*7]", "Argument[*6]", "value", "df-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_PSS", "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,int)", "", "Argument[*3].Field[*md_size]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_PSS", "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_PSS_mgf1", "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int)", "", "Argument[*3]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_PSS_mgf1", "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int)", "", "Argument[*4]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_PSS_mgf1", "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_type_1", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_type_1", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_type_1", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_X931", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_add_X931", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_X931", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_add_none", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_add_none", "(unsigned char *,int,const unsigned char *,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int)", "", "Argument[4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[*7]", "Argument[*8]", "value", "df-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[*8]", "Argument[*7]", "value", "df-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_OAEP_mgf1", "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_type_1", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_type_1", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_type_1", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_PKCS1_type_2", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_X931", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_check_X931", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_X931", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "RSA_padding_check_none", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[*2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_check_none", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "RSA_padding_check_none", "(unsigned char *,int,const unsigned char *,int,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "RSA_pkey_ctx_ctrl", "(EVP_PKEY_CTX *,int,int,int,void *)", "", "Argument[**4]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "value", "dfc-generated"] + - ["", "", True, "RSA_pkey_ctx_ctrl", "(EVP_PKEY_CTX *,int,int,int,void *)", "", "Argument[*4]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "RSA_pkey_ctx_ctrl", "(EVP_PKEY_CTX *,int,int,int,void *)", "", "Argument[3]", "Argument[*0].Field[*cached_parameters].Field[*dist_id_len]", "value", "dfc-generated"] + - ["", "", True, "RSA_pkey_ctx_ctrl", "(EVP_PKEY_CTX *,int,int,int,void *)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "RSA_pkey_ctx_ctrl", "(EVP_PKEY_CTX *,int,int,int,void *)", "", "Argument[4]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "RSA_pkey_ctx_ctrl", "(EVP_PKEY_CTX *,int,int,int,void *)", "", "Argument[4]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "RSA_print", "(BIO *,const RSA *,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "RSA_print", "(BIO *,const RSA *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "RSA_print_fp", "(FILE *,const RSA *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "RSA_set0_crt_params", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*1].Field[*flags]", "Argument[*0].Field[**dmp1].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "RSA_set0_crt_params", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**dmp1]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_crt_params", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*2].Field[*flags]", "Argument[*0].Field[**dmq1].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "RSA_set0_crt_params", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[**dmq1]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_crt_params", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*3].Field[*flags]", "Argument[*0].Field[**iqmp].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "RSA_set0_crt_params", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*3]", "Argument[*0].Field[**iqmp]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_crt_params", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*dmp1]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_crt_params", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*dmq1]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_crt_params", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[3]", "Argument[*0].Field[*iqmp]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_factors", "(RSA *,BIGNUM *,BIGNUM *)", "", "Argument[*1].Field[*flags]", "Argument[*0].Field[**p].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "RSA_set0_factors", "(RSA *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**p]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_factors", "(RSA *,BIGNUM *,BIGNUM *)", "", "Argument[*2].Field[*flags]", "Argument[*0].Field[**q].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "RSA_set0_factors", "(RSA *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[**q]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_factors", "(RSA *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*p]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_factors", "(RSA *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*q]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_key", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**n]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_key", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[**e]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_key", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*3].Field[*flags]", "Argument[*0].Field[**d].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "RSA_set0_key", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*3]", "Argument[*0].Field[**d]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_key", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*n]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_key", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*e]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_key", "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[3]", "Argument[*0].Field[*d]", "value", "dfc-generated"] + - ["", "", True, "RSA_set0_multi_prime_params", "(RSA *,BIGNUM *[],BIGNUM *[],BIGNUM *[],int)", "", "Argument[4]", "Argument[*0].Field[**prime_infos].Field[*num_alloc]", "taint", "dfc-generated"] + - ["", "", True, "RSA_set_flags", "(RSA *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "RSA_set_method", "(RSA *,const RSA_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**meth]", "value", "dfc-generated"] + - ["", "", True, "RSA_set_method", "(RSA *,const RSA_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "RSA_setup_blinding", "(RSA *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "RSA_setup_blinding", "(RSA *,BN_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RSA_setup_blinding", "(RSA *,BN_CTX *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "RSA_size", "(const RSA *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "RSA_test_flags", "(const RSA *,int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "RSA_test_flags", "(const RSA *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "RSA_verify_PKCS1_PSS_mgf1", "(RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int)", "", "Argument[*0]", "Argument[5]", "taint", "df-generated"] + - ["", "", True, "RSA_verify_PKCS1_PSS_mgf1", "(RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int)", "", "Argument[*2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "RSA_verify_PKCS1_PSS_mgf1", "(RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int)", "", "Argument[*2]", "Argument[5]", "taint", "df-generated"] + - ["", "", True, "RSA_verify_PKCS1_PSS_mgf1", "(RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "SCRYPT_PARAMS_free", "(SCRYPT_PARAMS *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "SCRYPT_PARAMS_free", "(SCRYPT_PARAMS *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "SCT_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "SCT_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "SCT_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "SCT_CTX_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "SCT_CTX_set1_cert", "(SCT_CTX *,X509 *,X509 *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SCT_CTX_set1_cert", "(SCT_CTX *,X509 *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SCT_CTX_set1_cert", "(SCT_CTX *,X509 *,X509 *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SCT_CTX_set1_issuer_pubkey", "(SCT_CTX *,X509_PUBKEY *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SCT_CTX_set1_pubkey", "(SCT_CTX *,X509_PUBKEY *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SCT_CTX_set1_pubkey", "(SCT_CTX *,X509_PUBKEY *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SCT_CTX_set_time", "(SCT_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*epoch_time_in_ms]", "value", "dfc-generated"] + - ["", "", True, "SCT_get0_extensions", "(const SCT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SCT_get0_extensions", "(const SCT *,unsigned char **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SCT_get0_extensions", "(const SCT *,unsigned char **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SCT_get0_log_id", "(const SCT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SCT_get0_log_id", "(const SCT *,unsigned char **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SCT_get0_log_id", "(const SCT *,unsigned char **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SCT_get0_signature", "(const SCT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SCT_get0_signature", "(const SCT *,unsigned char **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SCT_get0_signature", "(const SCT *,unsigned char **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SCT_get_log_entry_type", "(const SCT *)", "", "Argument[*0].Field[*entry_type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SCT_get_source", "(const SCT *)", "", "Argument[*0].Field[*source]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SCT_get_timestamp", "(const SCT *)", "", "Argument[*0].Field[*timestamp]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SCT_get_validation_status", "(const SCT *)", "", "Argument[*0].Field[*validation_status]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SCT_get_version", "(const SCT *)", "", "Argument[*0].Field[*version]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SCT_is_complete", "(const SCT *)", "", "Argument[*0].Field[*sct]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SCT_new_from_base64", "(unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**log_id]", "taint", "dfc-generated"] + - ["", "", True, "SCT_new_from_base64", "(unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *)", "", "Argument[*4]", "ReturnValue[*].Field[**ext]", "taint", "dfc-generated"] + - ["", "", True, "SCT_new_from_base64", "(unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*version]", "value", "dfc-generated"] + - ["", "", True, "SCT_new_from_base64", "(unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**log_id]", "taint", "dfc-generated"] + - ["", "", True, "SCT_new_from_base64", "(unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*entry_type]", "value", "dfc-generated"] + - ["", "", True, "SCT_new_from_base64", "(unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[*timestamp]", "value", "dfc-generated"] + - ["", "", True, "SCT_new_from_base64", "(unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *)", "", "Argument[4]", "ReturnValue[*].Field[**ext]", "taint", "dfc-generated"] + - ["", "", True, "SCT_set0_extensions", "(SCT *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**ext]", "value", "dfc-generated"] + - ["", "", True, "SCT_set0_extensions", "(SCT *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*ext]", "value", "dfc-generated"] + - ["", "", True, "SCT_set0_extensions", "(SCT *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*ext_len]", "value", "dfc-generated"] + - ["", "", True, "SCT_set0_log_id", "(SCT *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**log_id]", "value", "dfc-generated"] + - ["", "", True, "SCT_set0_log_id", "(SCT *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*log_id]", "value", "dfc-generated"] + - ["", "", True, "SCT_set0_log_id", "(SCT *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*log_id_len]", "value", "dfc-generated"] + - ["", "", True, "SCT_set0_signature", "(SCT *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**sig]", "value", "dfc-generated"] + - ["", "", True, "SCT_set0_signature", "(SCT *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*sig]", "value", "dfc-generated"] + - ["", "", True, "SCT_set0_signature", "(SCT *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*sig_len]", "value", "dfc-generated"] + - ["", "", True, "SCT_set1_extensions", "(SCT *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**ext]", "value", "dfc-generated"] + - ["", "", True, "SCT_set1_extensions", "(SCT *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**ext]", "taint", "dfc-generated"] + - ["", "", True, "SCT_set1_extensions", "(SCT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*ext_len]", "value", "dfc-generated"] + - ["", "", True, "SCT_set1_log_id", "(SCT *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**log_id]", "value", "dfc-generated"] + - ["", "", True, "SCT_set1_log_id", "(SCT *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**log_id]", "taint", "dfc-generated"] + - ["", "", True, "SCT_set1_log_id", "(SCT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*log_id_len]", "value", "dfc-generated"] + - ["", "", True, "SCT_set1_signature", "(SCT *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**sig]", "value", "dfc-generated"] + - ["", "", True, "SCT_set1_signature", "(SCT *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**sig]", "taint", "dfc-generated"] + - ["", "", True, "SCT_set1_signature", "(SCT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*sig_len]", "value", "dfc-generated"] + - ["", "", True, "SCT_set_log_entry_type", "(SCT *,ct_log_entry_type_t)", "", "Argument[1]", "Argument[*0].Field[*entry_type]", "value", "dfc-generated"] + - ["", "", True, "SCT_set_source", "(SCT *,sct_source_t)", "", "Argument[1]", "Argument[*0].Field[*source]", "value", "dfc-generated"] + - ["", "", True, "SCT_set_timestamp", "(SCT *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*timestamp]", "value", "dfc-generated"] + - ["", "", True, "SCT_set_version", "(SCT *,sct_version_t)", "", "Argument[1]", "Argument[*0].Field[*version]", "value", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[*1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[*3].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[*3].Field[*data]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[*4]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cbc_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[*0]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[*3].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[*3].Field[*data]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[*5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[5]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_cfb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "SEED_decrypt", "(const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_decrypt", "(const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *)", "", "Argument[*2].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_decrypt", "(const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ecb_encrypt", "(const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ecb_encrypt", "(const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int)", "", "Argument[*2].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ecb_encrypt", "(const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_encrypt", "(const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_encrypt", "(const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *)", "", "Argument[*2].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_encrypt", "(const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[*3].Field[*data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[*3].Field[*data]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[*5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SEED_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "SEED_set_key", "(const unsigned char[16],SEED_KEY_SCHEDULE *)", "", "Argument[*0]", "Argument[*1].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "SEED_set_key", "(const unsigned char[16],SEED_KEY_SCHEDULE *)", "", "Argument[0]", "Argument[*1].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "SHA1", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SHA1", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SHA1_Final", "(unsigned char *,SHA_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SHA1_Update", "(SHA_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nh]", "taint", "dfc-generated"] + - ["", "", True, "SHA1_Update", "(SHA_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nl]", "taint", "dfc-generated"] + - ["", "", True, "SHA1_Update", "(SHA_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "SHA224", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SHA224", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SHA224_Final", "(unsigned char *,SHA256_CTX *)", "", "Argument[*1].Field[*h]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SHA224_Final", "(unsigned char *,SHA256_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SHA224_Update", "(SHA256_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nh]", "taint", "dfc-generated"] + - ["", "", True, "SHA224_Update", "(SHA256_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nl]", "taint", "dfc-generated"] + - ["", "", True, "SHA224_Update", "(SHA256_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "SHA256", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SHA256", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SHA256_Final", "(unsigned char *,SHA256_CTX *)", "", "Argument[*1].Field[*h]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SHA256_Final", "(unsigned char *,SHA256_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SHA256_Update", "(SHA256_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nh]", "taint", "dfc-generated"] + - ["", "", True, "SHA256_Update", "(SHA256_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nl]", "taint", "dfc-generated"] + - ["", "", True, "SHA256_Update", "(SHA256_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "SHA384", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SHA384", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SHA384_Final", "(unsigned char *,SHA512_CTX *)", "", "Argument[*1].Field[*h]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "SHA384_Final", "(unsigned char *,SHA512_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SHA384_Update", "(SHA512_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nh]", "taint", "dfc-generated"] + - ["", "", True, "SHA384_Update", "(SHA512_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nl]", "taint", "dfc-generated"] + - ["", "", True, "SHA384_Update", "(SHA512_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "SHA512", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SHA512", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SHA512_Final", "(unsigned char *,SHA512_CTX *)", "", "Argument[*1].Field[*h]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "SHA512_Final", "(unsigned char *,SHA512_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SHA512_Update", "(SHA512_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nh]", "taint", "dfc-generated"] + - ["", "", True, "SHA512_Update", "(SHA512_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nl]", "taint", "dfc-generated"] + - ["", "", True, "SHA512_Update", "(SHA512_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "SM2_Ciphertext_free", "(SM2_Ciphertext *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "SM2_Ciphertext_free", "(SM2_Ciphertext *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "SMIME_crlf_copy", "(BIO *,BIO *,int)", "", "Argument[1]", "Argument[*1].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SMIME_read_ASN1", "(BIO *,BIO **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[**4]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[**4]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[**4]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "SMIME_read_ASN1_ex", "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SMIME_read_CMS", "(BIO *,BIO **)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[**3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[**3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[**3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[*3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[*3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[3]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "SMIME_read_CMS_ex", "(BIO *,int,BIO **,CMS_ContentInfo **)", "", "Argument[3]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SMIME_read_PKCS7", "(BIO *,BIO **)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[**2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[**2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[**2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[*2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "SMIME_read_PKCS7_ex", "(BIO *,BIO **,PKCS7 **)", "", "Argument[2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SMIME_write_ASN1", "(BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SMIME_write_ASN1", "(BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SMIME_write_ASN1_ex", "(BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SMIME_write_ASN1_ex", "(BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SMIME_write_CMS", "(BIO *,CMS_ContentInfo *,BIO *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SMIME_write_CMS", "(BIO *,CMS_ContentInfo *,BIO *,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SMIME_write_PKCS7", "(BIO *,PKCS7 *,BIO *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SMIME_write_PKCS7", "(BIO *,PKCS7 *,BIO *,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SRP_Calc_A", "(const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_A", "(const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SRP_Calc_A", "(const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_B", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_B", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_B", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_B", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_B", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_B", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_B", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_B", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_B_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_B_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_B_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_B_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_B_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_B_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_B_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_B_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_client_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_client_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_client_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_client_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_client_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_client_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_client_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_client_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_client_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_client_key_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_client_key_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_client_key_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_client_key_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_client_key_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_client_key_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_client_key_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_client_key_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_client_key_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_server_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "SRP_Calc_server_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_server_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SRP_Calc_server_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*4]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SRP_Calc_server_key", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*4]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SRP_Calc_u", "(const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_u", "(const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_u_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Calc_u_ex", "(const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SRP_VBASE_add0_user", "(SRP_VBASE *,SRP_user_pwd *)", "", "Argument[*1]", "Argument[*0].Field[**users_pwd].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "SRP_VBASE_add0_user", "(SRP_VBASE *,SRP_user_pwd *)", "", "Argument[*1]", "Argument[*0].Field[**users_pwd].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "SRP_VBASE_add0_user", "(SRP_VBASE *,SRP_user_pwd *)", "", "Argument[1]", "Argument[*0].Field[**users_pwd].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "SRP_VBASE_add0_user", "(SRP_VBASE *,SRP_user_pwd *)", "", "Argument[1]", "Argument[*0].Field[**users_pwd].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "SRP_VBASE_get1_by_user", "(SRP_VBASE *,char *)", "", "Argument[*1]", "ReturnValue[*].Field[**id]", "value", "dfc-generated"] + - ["", "", True, "SRP_VBASE_get1_by_user", "(SRP_VBASE *,char *)", "", "Argument[1]", "ReturnValue[*].Field[**id]", "taint", "dfc-generated"] + - ["", "", True, "SRP_VBASE_get_by_user", "(SRP_VBASE *,char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SRP_VBASE_get_by_user", "(SRP_VBASE *,char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SRP_VBASE_new", "(char *)", "", "Argument[*0]", "ReturnValue[*].Field[**seed_key]", "value", "dfc-generated"] + - ["", "", True, "SRP_VBASE_new", "(char *)", "", "Argument[0]", "ReturnValue[*].Field[**seed_key]", "taint", "dfc-generated"] + - ["", "", True, "SRP_Verify_A_mod_N", "(const BIGNUM *,const BIGNUM *)", "", "Argument[*0].Field[*neg]", "Argument[*1].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "SRP_Verify_B_mod_N", "(const BIGNUM *,const BIGNUM *)", "", "Argument[*0].Field[*neg]", "Argument[*1].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "SRP_create_verifier", "(const char *,const char *,char **,char **,const char *,const char *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier", "(const char *,const char *,char **,char **,const char *,const char *)", "", "Argument[*4]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier", "(const char *,const char *,char **,char **,const char *,const char *)", "", "Argument[*5]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier", "(const char *,const char *,char **,char **,const char *,const char *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier", "(const char *,const char *,char **,char **,const char *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier", "(const char *,const char *,char **,char **,const char *,const char *)", "", "Argument[4]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier", "(const char *,const char *,char **,char **,const char *,const char *)", "", "Argument[5]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier_BN", "(const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *)", "", "Argument[*4]", "Argument[*5]", "value", "df-generated"] + - ["", "", True, "SRP_create_verifier_BN", "(const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *)", "", "Argument[*5]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "SRP_create_verifier_BN", "(const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier_BN_ex", "(const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "Argument[*5]", "value", "df-generated"] + - ["", "", True, "SRP_create_verifier_BN_ex", "(const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*5]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "SRP_create_verifier_BN_ex", "(const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier_ex", "(const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier_ex", "(const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier_ex", "(const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*5]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier_ex", "(const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier_ex", "(const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier_ex", "(const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "SRP_create_verifier_ex", "(const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[5]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set0_sv", "(SRP_user_pwd *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**s]", "value", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set0_sv", "(SRP_user_pwd *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[**v]", "value", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set0_sv", "(SRP_user_pwd *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*s]", "value", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set0_sv", "(SRP_user_pwd *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*v]", "value", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set1_ids", "(SRP_user_pwd *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**id]", "value", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set1_ids", "(SRP_user_pwd *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**info]", "value", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set1_ids", "(SRP_user_pwd *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[**id]", "taint", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set1_ids", "(SRP_user_pwd *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[**info]", "taint", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set_gN", "(SRP_user_pwd *,const BIGNUM *,const BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**g]", "value", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set_gN", "(SRP_user_pwd *,const BIGNUM *,const BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[**N]", "value", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set_gN", "(SRP_user_pwd *,const BIGNUM *,const BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*g]", "value", "dfc-generated"] + - ["", "", True, "SRP_user_pwd_set_gN", "(SRP_user_pwd *,const BIGNUM *,const BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*N]", "value", "dfc-generated"] + - ["", "", True, "SSL_CIPHER_description", "(const SSL_CIPHER *,char *,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CIPHER_description", "(const SSL_CIPHER *,char *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CIPHER_get_bits", "(const SSL_CIPHER *,int *)", "", "Argument[*0].Field[*alg_bits]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "SSL_CIPHER_get_bits", "(const SSL_CIPHER *,int *)", "", "Argument[*0].Field[*strength_bits]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CIPHER_get_id", "(const SSL_CIPHER *)", "", "Argument[*0].Field[*id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CIPHER_get_name", "(const SSL_CIPHER *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CIPHER_get_name", "(const SSL_CIPHER *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CIPHER_get_protocol_id", "(const SSL_CIPHER *)", "", "Argument[*0].Field[*id]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_CIPHER_standard_name", "(const SSL_CIPHER *)", "", "Argument[*0].Field[**stdname]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CIPHER_standard_name", "(const SSL_CIPHER *)", "", "Argument[*0].Field[*stdname]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_COMP_get0_name", "(const SSL_COMP *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_COMP_get0_name", "(const SSL_COMP *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_COMP_get_id", "(const SSL_COMP *)", "", "Argument[*0].Field[*id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_COMP_get_name", "(const COMP_METHOD *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_COMP_get_name", "(const COMP_METHOD *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_COMP_set0_compression_methods", "(stack_st_SSL_COMP *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_COMP_set0_compression_methods", "(stack_st_SSL_COMP *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CONF_CTX_clear_flags", "(SSL_CONF_CTX *,unsigned int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CONF_CTX_clear_flags", "(SSL_CONF_CTX *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_CTX_clear_flags", "(SSL_CONF_CTX *,unsigned int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_CTX_set1_prefix", "(SSL_CONF_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**prefix]", "value", "dfc-generated"] + - ["", "", True, "SSL_CONF_CTX_set1_prefix", "(SSL_CONF_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[**prefix]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_CTX_set_flags", "(SSL_CONF_CTX *,unsigned int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CONF_CTX_set_flags", "(SSL_CONF_CTX *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_CTX_set_flags", "(SSL_CONF_CTX *,unsigned int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_CTX_set_ssl", "(SSL_CONF_CTX *,SSL *)", "", "Argument[1]", "Argument[*0].Field[*ssl]", "value", "dfc-generated"] + - ["", "", True, "SSL_CONF_CTX_set_ssl_ctx", "(SSL_CONF_CTX *,SSL_CTX *)", "", "Argument[1]", "Argument[*0].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd", "(SSL_CONF_CTX *,const char *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd_argv", "(SSL_CONF_CTX *,int *,char ***)", "", "Argument[**2]", "Argument[***2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd_argv", "(SSL_CONF_CTX *,int *,char ***)", "", "Argument[*2]", "Argument[***2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd_argv", "(SSL_CONF_CTX *,int *,char ***)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd_argv", "(SSL_CONF_CTX *,int *,char ***)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd_argv", "(SSL_CONF_CTX *,int *,char ***)", "", "Argument[2]", "Argument[***2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd_argv", "(SSL_CONF_CTX *,int *,char ***)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd_argv", "(SSL_CONF_CTX *,int *,char ***)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd_value_type", "(SSL_CONF_CTX *,const char *)", "", "Argument[*0].Field[*prefixlen]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd_value_type", "(SSL_CONF_CTX *,const char *)", "", "Argument[*0].Field[*prefixlen]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CONF_cmd_value_type", "(SSL_CONF_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_add_session", "(SSL_CTX *,SSL_SESSION *)", "", "Argument[0]", "Argument[*1].Field[*owner]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_callback_ctrl", "(SSL_CTX *,int,..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*msg_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_clear_options", "(SSL_CTX *,uint64_t)", "", "Argument[*0].Field[*options]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_clear_options", "(SSL_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*options]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_ct_is_enabled", "(const SSL_CTX *)", "", "Argument[*0].Field[*ct_validation_callback]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[**3]", "Argument[*0].Field[***msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*3]", "Argument[*0].Field[**msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[3]", "Argument[*0].Field[*msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_dane_clear_flags", "(SSL_CTX *,unsigned long)", "", "Argument[*0].Field[*dane].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_dane_clear_flags", "(SSL_CTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*dane].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_dane_mtype_set", "(SSL_CTX *,const EVP_MD *,uint8_t,uint8_t)", "", "Argument[*1]", "Argument[*0].Field[*dane].Field[***mdevp]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_dane_mtype_set", "(SSL_CTX *,const EVP_MD *,uint8_t,uint8_t)", "", "Argument[1]", "Argument[*0].Field[*dane].Field[**mdevp]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_dane_mtype_set", "(SSL_CTX *,const EVP_MD *,uint8_t,uint8_t)", "", "Argument[2]", "Argument[*0].Field[*dane].Field[*mdmax]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_dane_mtype_set", "(SSL_CTX *,const EVP_MD *,uint8_t,uint8_t)", "", "Argument[3]", "Argument[*0].Field[*dane].Field[**mdord]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_dane_set_flags", "(SSL_CTX *,unsigned long)", "", "Argument[*0].Field[*dane].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_dane_set_flags", "(SSL_CTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*dane].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_get0_CA_list", "(const SSL_CTX *)", "", "Argument[*0].Field[**ca_names]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get0_CA_list", "(const SSL_CTX *)", "", "Argument[*0].Field[*ca_names]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get0_client_cert_type", "(const SSL_CTX *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get0_client_cert_type", "(const SSL_CTX *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get0_client_cert_type", "(const SSL_CTX *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get0_ctlog_store", "(const SSL_CTX *)", "", "Argument[*0].Field[**ctlog_store]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get0_ctlog_store", "(const SSL_CTX *)", "", "Argument[*0].Field[*ctlog_store]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get0_param", "(SSL_CTX *)", "", "Argument[*0].Field[**param]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get0_param", "(SSL_CTX *)", "", "Argument[*0].Field[*param]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get0_security_ex_data", "(const SSL_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get0_security_ex_data", "(const SSL_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get0_security_ex_data", "(const SSL_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get0_server_cert_type", "(const SSL_CTX *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get0_server_cert_type", "(const SSL_CTX *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get0_server_cert_type", "(const SSL_CTX *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get_cert_store", "(const SSL_CTX *)", "", "Argument[*0].Field[**cert_store]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_cert_store", "(const SSL_CTX *)", "", "Argument[*0].Field[*cert_store]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_ciphers", "(const SSL_CTX *)", "", "Argument[*0].Field[**cipher_list]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_ciphers", "(const SSL_CTX *)", "", "Argument[*0].Field[*cipher_list]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_client_CA_list", "(const SSL_CTX *)", "", "Argument[*0].Field[**client_ca_names]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_client_CA_list", "(const SSL_CTX *)", "", "Argument[*0].Field[*client_ca_names]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_client_cert_cb", "(SSL_CTX *)", "", "Argument[*0].Field[*client_cert_cb]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_default_passwd_cb", "(SSL_CTX *)", "", "Argument[*0].Field[*default_passwd_callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_default_passwd_cb_userdata", "(SSL_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get_default_passwd_cb_userdata", "(SSL_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get_default_passwd_cb_userdata", "(SSL_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get_domain_flags", "(const SSL_CTX *,uint64_t *)", "", "Argument[*0].Field[*domain_flags]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_ex_data", "(const SSL_CTX *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_info_callback", "(SSL_CTX *)", "", "Argument[*0].Field[*info_callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_keylog_callback", "(const SSL_CTX *)", "", "Argument[*0].Field[*keylog_callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_max_early_data", "(const SSL_CTX *)", "", "Argument[*0].Field[*max_early_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_num_tickets", "(const SSL_CTX *)", "", "Argument[*0].Field[*num_tickets]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_options", "(const SSL_CTX *)", "", "Argument[*0].Field[*options]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_quiet_shutdown", "(const SSL_CTX *)", "", "Argument[*0].Field[*quiet_shutdown]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_record_padding_callback_arg", "(const SSL_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get_record_padding_callback_arg", "(const SSL_CTX *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get_record_padding_callback_arg", "(const SSL_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_get_recv_max_early_data", "(const SSL_CTX *)", "", "Argument[*0].Field[*recv_max_early_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_security_callback", "(const SSL_CTX *)", "", "Argument[*0].Field[**cert].Field[*sec_cb]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_security_level", "(const SSL_CTX *)", "", "Argument[*0].Field[**cert].Field[*sec_level]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_ssl_method", "(const SSL_CTX *)", "", "Argument[*0].Field[**method]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_ssl_method", "(const SSL_CTX *)", "", "Argument[*0].Field[*method]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_timeout", "(const SSL_CTX *)", "", "Argument[*0].Field[*session_timeout].Field[*t]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_verify_callback", "(const SSL_CTX *)", "", "Argument[*0].Field[*default_verify_callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_verify_depth", "(const SSL_CTX *)", "", "Argument[*0].Field[**param].Field[*depth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_get_verify_mode", "(const SSL_CTX *)", "", "Argument[*0].Field[*verify_mode]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_new", "(const SSL_METHOD *)", "", "Argument[*0]", "ReturnValue[*].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_new", "(const SSL_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *,const SSL_METHOD *)", "", "Argument[*1]", "ReturnValue[*].Field[**ctlog_store].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *,const SSL_METHOD *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *,const SSL_METHOD *)", "", "Argument[*2]", "ReturnValue[*].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *,const SSL_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[**ctlog_store].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *,const SSL_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *,const SSL_METHOD *)", "", "Argument[1]", "ReturnValue[*].Field[**ctlog_store].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *,const SSL_METHOD *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_new_ex", "(OSSL_LIB_CTX *,const char *,const SSL_METHOD *)", "", "Argument[2]", "ReturnValue[*].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_sess_get_get_cb", "(SSL_CTX *)", "", "Argument[*0].Field[*get_session_cb]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_sess_get_new_cb", "(SSL_CTX *)", "", "Argument[*0].Field[*new_session_cb]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_sess_get_remove_cb", "(SSL_CTX *)", "", "Argument[*0].Field[*remove_session_cb]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_sess_set_get_cb", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*get_session_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_sess_set_new_cb", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*new_session_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_sess_set_remove_cb", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*remove_session_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_sessions", "(SSL_CTX *)", "", "Argument[*0].Field[**sessions]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_sessions", "(SSL_CTX *)", "", "Argument[*0].Field[*sessions]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set0_CA_list", "(SSL_CTX *,stack_st_X509_NAME *)", "", "Argument[*1]", "Argument[*0].Field[**ca_names]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set0_CA_list", "(SSL_CTX *,stack_st_X509_NAME *)", "", "Argument[1]", "Argument[*0].Field[*ca_names]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set0_ctlog_store", "(SSL_CTX *,CTLOG_STORE *)", "", "Argument[*1]", "Argument[*0].Field[**ctlog_store]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set0_ctlog_store", "(SSL_CTX *,CTLOG_STORE *)", "", "Argument[1]", "Argument[*0].Field[*ctlog_store]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set0_security_ex_data", "(SSL_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[**cert].Field[***sec_ex]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set0_security_ex_data", "(SSL_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**cert].Field[**sec_ex]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set0_security_ex_data", "(SSL_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*sec_ex]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set0_tmp_dh_pkey", "(SSL_CTX *,EVP_PKEY *)", "", "Argument[*1]", "Argument[*0].Field[**cert].Field[**dh_tmp]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set0_tmp_dh_pkey", "(SSL_CTX *,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*dh_tmp]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set1_cert_store", "(SSL_CTX *,X509_STORE *)", "", "Argument[1]", "Argument[*0].Field[*cert_store]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set1_client_cert_type", "(SSL_CTX *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**client_cert_type]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set1_client_cert_type", "(SSL_CTX *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**client_cert_type]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_set1_client_cert_type", "(SSL_CTX *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*client_cert_type_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set1_param", "(SSL_CTX *,X509_VERIFY_PARAM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set1_server_cert_type", "(SSL_CTX *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**server_cert_type]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set1_server_cert_type", "(SSL_CTX *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**server_cert_type]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_set1_server_cert_type", "(SSL_CTX *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*server_cert_type_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_allow_early_data_cb", "(SSL_CTX *,SSL_allow_early_data_cb_fn,void *)", "", "Argument[**2]", "Argument[*0].Field[***allow_early_data_cb_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_allow_early_data_cb", "(SSL_CTX *,SSL_allow_early_data_cb_fn,void *)", "", "Argument[*2]", "Argument[*0].Field[**allow_early_data_cb_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_allow_early_data_cb", "(SSL_CTX *,SSL_allow_early_data_cb_fn,void *)", "", "Argument[1]", "Argument[*0].Field[*allow_early_data_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_allow_early_data_cb", "(SSL_CTX *,SSL_allow_early_data_cb_fn,void *)", "", "Argument[2]", "Argument[*0].Field[*allow_early_data_cb_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_alpn_protos", "(SSL_CTX *,const unsigned char *,unsigned int)", "", "Argument[*1]", "Argument[*0].Field[*ext].Field[**alpn]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_alpn_protos", "(SSL_CTX *,const unsigned char *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[**alpn]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_alpn_protos", "(SSL_CTX *,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[*0].Field[*ext].Field[*alpn_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_alpn_select_cb", "(SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *)", "", "Argument[**2]", "Argument[*0].Field[*ext].Field[***alpn_select_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_alpn_select_cb", "(SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *)", "", "Argument[*2]", "Argument[*0].Field[*ext].Field[**alpn_select_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_alpn_select_cb", "(SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[*alpn_select_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_alpn_select_cb", "(SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *)", "", "Argument[2]", "Argument[*0].Field[*ext].Field[*alpn_select_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_async_callback", "(SSL_CTX *,SSL_async_callback_fn)", "", "Argument[1]", "Argument[*0].Field[*async_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_async_callback_arg", "(SSL_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***async_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_async_callback_arg", "(SSL_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**async_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_async_callback_arg", "(SSL_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*async_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_block_padding", "(SSL_CTX *,size_t)", "", "Argument[1]", "Argument[*0].Field[*block_padding]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_block_padding", "(SSL_CTX *,size_t)", "", "Argument[1]", "Argument[*0].Field[*hs_padding]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_block_padding_ex", "(SSL_CTX *,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*block_padding]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_block_padding_ex", "(SSL_CTX *,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[*hs_padding]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cert_cb", "(SSL_CTX *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[**cert].Field[***cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cert_cb", "(SSL_CTX *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**cert].Field[**cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cert_cb", "(SSL_CTX *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*cert_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cert_cb", "(SSL_CTX *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[**cert].Field[*cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cert_store", "(SSL_CTX *,X509_STORE *)", "", "Argument[*1]", "Argument[*0].Field[**cert_store]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cert_store", "(SSL_CTX *,X509_STORE *)", "", "Argument[1]", "Argument[*0].Field[*cert_store]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cert_verify_callback", "(SSL_CTX *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***app_verify_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cert_verify_callback", "(SSL_CTX *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**app_verify_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cert_verify_callback", "(SSL_CTX *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*app_verify_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cert_verify_callback", "(SSL_CTX *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*app_verify_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cipher_list", "(SSL_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**cert].Field[*sec_level]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cipher_list", "(SSL_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*sec_level]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_client_CA_list", "(SSL_CTX *,stack_st_X509_NAME *)", "", "Argument[*1]", "Argument[*0].Field[**client_ca_names]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_client_CA_list", "(SSL_CTX *,stack_st_X509_NAME *)", "", "Argument[1]", "Argument[*0].Field[*client_ca_names]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_client_cert_cb", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*client_cert_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_client_cert_engine", "(SSL_CTX *,ENGINE *)", "", "Argument[1]", "Argument[*0].Field[*client_cert_engine]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_client_hello_cb", "(SSL_CTX *,SSL_client_hello_cb_fn,void *)", "", "Argument[**2]", "Argument[*0].Field[***client_hello_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_client_hello_cb", "(SSL_CTX *,SSL_client_hello_cb_fn,void *)", "", "Argument[*2]", "Argument[*0].Field[**client_hello_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_client_hello_cb", "(SSL_CTX *,SSL_client_hello_cb_fn,void *)", "", "Argument[1]", "Argument[*0].Field[*client_hello_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_client_hello_cb", "(SSL_CTX *,SSL_client_hello_cb_fn,void *)", "", "Argument[2]", "Argument[*0].Field[*client_hello_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cookie_generate_cb", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*app_gen_cookie_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_cookie_verify_cb", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*app_verify_cookie_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_ct_validation_callback", "(SSL_CTX *,ssl_ct_validation_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***ct_validation_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_ct_validation_callback", "(SSL_CTX *,ssl_ct_validation_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**ct_validation_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_ct_validation_callback", "(SSL_CTX *,ssl_ct_validation_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*ct_validation_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_ct_validation_callback", "(SSL_CTX *,ssl_ct_validation_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*ct_validation_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_default_passwd_cb", "(SSL_CTX *,pem_password_cb *)", "", "Argument[1]", "Argument[*0].Field[*default_passwd_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_default_passwd_cb_userdata", "(SSL_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***default_passwd_callback_userdata]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_default_passwd_cb_userdata", "(SSL_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**default_passwd_callback_userdata]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_default_passwd_cb_userdata", "(SSL_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*default_passwd_callback_userdata]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_default_read_buffer_len", "(SSL_CTX *,size_t)", "", "Argument[1]", "Argument[*0].Field[*default_read_buf_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_domain_flags", "(SSL_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*domain_flags]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_generate_session_id", "(SSL_CTX *,GEN_SESSION_CB)", "", "Argument[1]", "Argument[*0].Field[*generate_session_id]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_info_callback", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*info_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_keylog_callback", "(SSL_CTX *,SSL_CTX_keylog_cb_func)", "", "Argument[1]", "Argument[*0].Field[*keylog_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_max_early_data", "(SSL_CTX *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*max_early_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_msg_callback", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*msg_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_new_pending_conn_cb", "(SSL_CTX *,SSL_new_pending_conn_cb_fn,void *)", "", "Argument[**2]", "Argument[*0].Field[***new_pending_conn_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_new_pending_conn_cb", "(SSL_CTX *,SSL_new_pending_conn_cb_fn,void *)", "", "Argument[*2]", "Argument[*0].Field[**new_pending_conn_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_new_pending_conn_cb", "(SSL_CTX *,SSL_new_pending_conn_cb_fn,void *)", "", "Argument[1]", "Argument[*0].Field[*new_pending_conn_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_new_pending_conn_cb", "(SSL_CTX *,SSL_new_pending_conn_cb_fn,void *)", "", "Argument[2]", "Argument[*0].Field[*new_pending_conn_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_next_proto_select_cb", "(SSL_CTX *,SSL_CTX_npn_select_cb_func,void *)", "", "Argument[**2]", "Argument[*0].Field[*ext].Field[***npn_select_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_next_proto_select_cb", "(SSL_CTX *,SSL_CTX_npn_select_cb_func,void *)", "", "Argument[*2]", "Argument[*0].Field[*ext].Field[**npn_select_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_next_proto_select_cb", "(SSL_CTX *,SSL_CTX_npn_select_cb_func,void *)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[*npn_select_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_next_proto_select_cb", "(SSL_CTX *,SSL_CTX_npn_select_cb_func,void *)", "", "Argument[2]", "Argument[*0].Field[*ext].Field[*npn_select_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_next_protos_advertised_cb", "(SSL_CTX *,SSL_CTX_npn_advertised_cb_func,void *)", "", "Argument[**2]", "Argument[*0].Field[*ext].Field[***npn_advertised_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_next_protos_advertised_cb", "(SSL_CTX *,SSL_CTX_npn_advertised_cb_func,void *)", "", "Argument[*2]", "Argument[*0].Field[*ext].Field[**npn_advertised_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_next_protos_advertised_cb", "(SSL_CTX *,SSL_CTX_npn_advertised_cb_func,void *)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[*npn_advertised_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_next_protos_advertised_cb", "(SSL_CTX *,SSL_CTX_npn_advertised_cb_func,void *)", "", "Argument[2]", "Argument[*0].Field[*ext].Field[*npn_advertised_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_not_resumable_session_callback", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*msg_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_num_tickets", "(SSL_CTX *,size_t)", "", "Argument[1]", "Argument[*0].Field[*num_tickets]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_options", "(SSL_CTX *,uint64_t)", "", "Argument[*0].Field[*options]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_options", "(SSL_CTX *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*options]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_post_handshake_auth", "(SSL_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*pha_enabled]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_psk_client_callback", "(SSL_CTX *,SSL_psk_client_cb_func)", "", "Argument[1]", "Argument[*0].Field[*psk_client_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_psk_find_session_callback", "(SSL_CTX *,SSL_psk_find_session_cb_func)", "", "Argument[1]", "Argument[*0].Field[*psk_find_session_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_psk_server_callback", "(SSL_CTX *,SSL_psk_server_cb_func)", "", "Argument[1]", "Argument[*0].Field[*psk_server_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_psk_use_session_callback", "(SSL_CTX *,SSL_psk_use_session_cb_func)", "", "Argument[1]", "Argument[*0].Field[*psk_use_session_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_purpose", "(SSL_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*purpose]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_quiet_shutdown", "(SSL_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*quiet_shutdown]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_record_padding_callback", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*record_padding_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_record_padding_callback_arg", "(SSL_CTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***record_padding_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_record_padding_callback_arg", "(SSL_CTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**record_padding_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_record_padding_callback_arg", "(SSL_CTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*record_padding_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_recv_max_early_data", "(SSL_CTX *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*recv_max_early_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_security_callback", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*sec_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_security_level", "(SSL_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*sec_level]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_session_id_context", "(SSL_CTX *,const unsigned char *,unsigned int)", "", "Argument[*1]", "Argument[*0].Field[*sid_ctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_session_id_context", "(SSL_CTX *,const unsigned char *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*sid_ctx]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_session_id_context", "(SSL_CTX *,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[*0].Field[*sid_ctx_length]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_session_ticket_cb", "(SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *)", "", "Argument[**3]", "Argument[*0].Field[***ticket_cb_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_session_ticket_cb", "(SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *)", "", "Argument[*3]", "Argument[*0].Field[**ticket_cb_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_session_ticket_cb", "(SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *)", "", "Argument[1]", "Argument[*0].Field[*generate_ticket_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_session_ticket_cb", "(SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *)", "", "Argument[2]", "Argument[*0].Field[*decrypt_ticket_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_session_ticket_cb", "(SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *)", "", "Argument[3]", "Argument[*0].Field[*ticket_cb_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_srp_cb_arg", "(SSL_CTX *,void *)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_cb_arg", "(SSL_CTX *,void *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_cb_arg", "(SSL_CTX *,void *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_cb_arg", "(SSL_CTX *,void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_cb_arg", "(SSL_CTX *,void *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_cb_arg", "(SSL_CTX *,void *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_cb_arg", "(SSL_CTX *,void *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_client_pwd_callback", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_password", "(SSL_CTX *,char *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_password", "(SSL_CTX *,char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_password", "(SSL_CTX *,char *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_password", "(SSL_CTX *,char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_password", "(SSL_CTX *,char *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_strength", "(SSL_CTX *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_strength", "(SSL_CTX *,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_username", "(SSL_CTX *,char *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_username", "(SSL_CTX *,char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_username", "(SSL_CTX *,char *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_username", "(SSL_CTX *,char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_username", "(SSL_CTX *,char *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_username_callback", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_srp_verify_param_callback", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_CTX_set_ssl_version", "(SSL_CTX *,const SSL_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_ssl_version", "(SSL_CTX *,const SSL_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_stateless_cookie_generate_cb", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*gen_stateless_cookie_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_stateless_cookie_verify_cb", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*verify_stateless_cookie_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_timeout", "(SSL_CTX *,long)", "", "Argument[*0].Field[*session_timeout].Field[*t]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_timeout", "(SSL_CTX *,long)", "", "Argument[1]", "Argument[*0].Field[*session_timeout].Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_tlsext_max_fragment_length", "(SSL_CTX *,uint8_t)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[*max_fragment_len_mode]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_tlsext_ticket_key_evp_cb", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ext].Field[*ticket_key_evp_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_tmp_dh_callback", "(SSL_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*msg_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_trust", "(SSL_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*trust]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_verify", "(SSL_CTX *,int,..(*)(..),SSL_verify_cb)", "", "Argument[1]", "Argument[*0].Field[*verify_mode]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_verify", "(SSL_CTX *,int,..(*)(..),SSL_verify_cb)", "", "Argument[2]", "Argument[*0].Field[*default_verify_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_set_verify_depth", "(SSL_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*depth]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_PrivateKey_ASN1", "(int,SSL_CTX *,const unsigned char *,long)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_PrivateKey_ASN1", "(int,SSL_CTX *,const unsigned char *,long)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_RSAPrivateKey_ASN1", "(SSL_CTX *,const unsigned char *,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_RSAPrivateKey_ASN1", "(SSL_CTX *,const unsigned char *,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_cert_and_key", "(SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SSL_CTX_use_cert_and_key", "(SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SSL_CTX_use_cert_and_key", "(SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_certificate", "(SSL_CTX *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SSL_CTX_use_certificate_ASN1", "(SSL_CTX *,int,const unsigned char *)", "", "Argument[*2]", "Argument[2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_certificate_ASN1", "(SSL_CTX *,int,const unsigned char *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_certificate_ASN1", "(SSL_CTX *,int,const unsigned char *)", "", "Argument[1]", "Argument[2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_certificate_ASN1", "(SSL_CTX *,int,const unsigned char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_psk_identity_hint", "(SSL_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**cert].Field[**psk_identity_hint]", "value", "dfc-generated"] + - ["", "", True, "SSL_CTX_use_psk_identity_hint", "(SSL_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[**psk_identity_hint]", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_dup", "(const SSL_SESSION *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SSL_SESSION_dup", "(const SSL_SESSION *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_alpn_selected", "(const SSL_SESSION *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SSL_SESSION_get0_alpn_selected", "(const SSL_SESSION *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_SESSION_get0_alpn_selected", "(const SSL_SESSION *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "SSL_SESSION_get0_cipher", "(const SSL_SESSION *)", "", "Argument[*0].Field[**cipher]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_cipher", "(const SSL_SESSION *)", "", "Argument[*0].Field[*cipher]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_hostname", "(const SSL_SESSION *)", "", "Argument[*0].Field[*ext].Field[**hostname]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_hostname", "(const SSL_SESSION *)", "", "Argument[*0].Field[*ext].Field[*hostname]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_id_context", "(const SSL_SESSION *,unsigned int *)", "", "Argument[*0].Field[*sid_ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_id_context", "(const SSL_SESSION *,unsigned int *)", "", "Argument[*0].Field[*sid_ctx_length]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_peer", "(SSL_SESSION *)", "", "Argument[*0].Field[**peer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_peer", "(SSL_SESSION *)", "", "Argument[*0].Field[*peer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_peer_rpk", "(SSL_SESSION *)", "", "Argument[*0].Field[**peer_rpk]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_peer_rpk", "(SSL_SESSION *)", "", "Argument[*0].Field[*peer_rpk]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get0_ticket", "(const SSL_SESSION *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SSL_SESSION_get0_ticket", "(const SSL_SESSION *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_SESSION_get0_ticket", "(const SSL_SESSION *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "SSL_SESSION_get0_ticket_appdata", "(SSL_SESSION *,void **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SSL_SESSION_get0_ticket_appdata", "(SSL_SESSION *,void **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_SESSION_get0_ticket_appdata", "(SSL_SESSION *,void **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "SSL_SESSION_get_compress_id", "(const SSL_SESSION *)", "", "Argument[*0].Field[*compress_meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_ex_data", "(const SSL_SESSION *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_id", "(const SSL_SESSION *,unsigned int *)", "", "Argument[*0].Field[*session_id]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_id", "(const SSL_SESSION *,unsigned int *)", "", "Argument[*0].Field[*session_id_length]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_master_key", "(const SSL_SESSION *,unsigned char *,size_t)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_max_early_data", "(const SSL_SESSION *)", "", "Argument[*0].Field[*ext].Field[*max_early_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_max_fragment_length", "(const SSL_SESSION *)", "", "Argument[*0].Field[*ext].Field[*max_fragment_len_mode]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_protocol_version", "(const SSL_SESSION *)", "", "Argument[*0].Field[*ssl_version]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_ticket_lifetime_hint", "(const SSL_SESSION *)", "", "Argument[*0].Field[*ext].Field[*tick_lifetime_hint]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_time", "(const SSL_SESSION *)", "", "Argument[*0].Field[*time].Field[*t]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_time_ex", "(const SSL_SESSION *)", "", "Argument[*0].Field[*time].Field[*t]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_get_timeout", "(const SSL_SESSION *)", "", "Argument[*0].Field[*timeout].Field[*t]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_alpn_selected", "(SSL_SESSION *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*ext].Field[**alpn_selected]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_alpn_selected", "(SSL_SESSION *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[**alpn_selected]", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_alpn_selected", "(SSL_SESSION *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*ext].Field[*alpn_selected_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_hostname", "(SSL_SESSION *,const char *)", "", "Argument[*0].Field[*ext].Field[*hostname]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_hostname", "(SSL_SESSION *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*ext].Field[**hostname]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_hostname", "(SSL_SESSION *,const char *)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[**hostname]", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_id", "(SSL_SESSION *,const unsigned char *,unsigned int)", "", "Argument[*1]", "Argument[*0].Field[*session_id]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_id", "(SSL_SESSION *,const unsigned char *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*session_id]", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_id", "(SSL_SESSION *,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[*0].Field[*session_id_length]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_id_context", "(SSL_SESSION *,const unsigned char *,unsigned int)", "", "Argument[*1]", "Argument[*0].Field[*sid_ctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_id_context", "(SSL_SESSION *,const unsigned char *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*sid_ctx]", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_id_context", "(SSL_SESSION *,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[*0].Field[*sid_ctx_length]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_master_key", "(SSL_SESSION *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*master_key]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_master_key", "(SSL_SESSION *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*master_key]", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_master_key", "(SSL_SESSION *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*master_key_length]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_ticket_appdata", "(SSL_SESSION *,const void *,size_t)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_ticket_appdata", "(SSL_SESSION *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**ticket_appdata]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_ticket_appdata", "(SSL_SESSION *,const void *,size_t)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_ticket_appdata", "(SSL_SESSION *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[**ticket_appdata]", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set1_ticket_appdata", "(SSL_SESSION *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*ticket_appdata_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set_cipher", "(SSL_SESSION *,const SSL_CIPHER *)", "", "Argument[*1]", "Argument[*0].Field[**cipher]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set_cipher", "(SSL_SESSION *,const SSL_CIPHER *)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set_max_early_data", "(SSL_SESSION *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[*max_early_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set_protocol_version", "(SSL_SESSION *,int)", "", "Argument[1]", "Argument[*0].Field[*ssl_version]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set_time", "(SSL_SESSION *,long)", "", "Argument[1]", "Argument[*0].Field[*time].Field[*t]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set_time", "(SSL_SESSION *,long)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set_time_ex", "(SSL_SESSION *,time_t)", "", "Argument[1]", "Argument[*0].Field[*time].Field[*t]", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set_time_ex", "(SSL_SESSION *,time_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set_timeout", "(SSL_SESSION *,long)", "", "Argument[1]", "Argument[*0].Field[*calc_timeout].Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "SSL_SESSION_set_timeout", "(SSL_SESSION *,long)", "", "Argument[1]", "Argument[*0].Field[*timeout].Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "SSL_TEST_CTX_create", "(const CONF *,const char *,OSSL_LIB_CTX *)", "", "Argument[*2]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_TEST_CTX_create", "(const CONF *,const char *,OSSL_LIB_CTX *)", "", "Argument[2]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_TEST_CTX_new", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_TEST_CTX_new", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_accept", "(SSL *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_add1_host", "(SSL *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**param].Field[**ip]", "taint", "dfc-generated"] + - ["", "", True, "SSL_add1_host", "(SSL *,const char *)", "", "Argument[1]", "Argument[*0].Field[**param].Field[**ip]", "taint", "dfc-generated"] + - ["", "", True, "SSL_bytes_to_cipher_list", "(SSL *,const unsigned char *,size_t,int,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **)", "", "Argument[*0].Field[**tls]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "SSL_certs_clear", "(SSL *)", "", "Argument[*0].Field[**tls].Field[**cert]", "Argument[*0].Field[**cert]", "value", "dfc-generated"] + - ["", "", True, "SSL_check_chain", "(SSL *,X509 *,EVP_PKEY *,stack_st_X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SSL_check_chain", "(SSL *,X509 *,EVP_PKEY *,stack_st_X509 *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_check_chain", "(SSL *,X509 *,EVP_PKEY *,stack_st_X509 *)", "", "Argument[*3]", "Argument[1]", "taint", "df-generated"] + - ["", "", True, "SSL_clear_options", "(SSL *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*options]", "taint", "dfc-generated"] + - ["", "", True, "SSL_clear_options", "(SSL *,uint64_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_client_hello_get0_compression_methods", "(SSL *,const unsigned char **)", "", "Argument[*0].Field[**clienthello].Field[*compressions]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "SSL_client_hello_get0_compression_methods", "(SSL *,const unsigned char **)", "", "Argument[*0].Field[**clienthello].Field[*compressions_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_client_hello_get0_legacy_version", "(SSL *)", "", "Argument[*0].Field[**clienthello].Field[*legacy_version]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_client_hello_get0_random", "(SSL *,const unsigned char **)", "", "Argument[*0].Field[**clienthello].Field[*random]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "SSL_client_hello_get0_session_id", "(SSL *,const unsigned char **)", "", "Argument[*0].Field[**clienthello].Field[*session_id]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "SSL_client_hello_get0_session_id", "(SSL *,const unsigned char **)", "", "Argument[*0].Field[**clienthello].Field[*session_id_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_client_hello_get_extension_order", "(SSL *,uint16_t *,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_client_hello_isv2", "(SSL *)", "", "Argument[*0].Field[**clienthello].Field[*isv2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_client_version", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*client_version]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_client_version", "(const SSL *)", "", "Argument[*0].Field[*client_version]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_connect", "(SSL *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_copy_session_id", "(SSL *,const SSL *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_ct_is_enabled", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*ct_validation_callback]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_ct_is_enabled", "(const SSL *)", "", "Argument[*0].Field[*ct_validation_callback]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_ctrl", "(SSL *,int,long,void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_ctrl", "(SSL *,int,long,void *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_ctrl", "(SSL *,int,long,void *)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_dane_clear_flags", "(SSL *,unsigned long)", "", "Argument[*0].Field[*dane].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_dane_clear_flags", "(SSL *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*dane].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "SSL_dane_set_flags", "(SSL *,unsigned long)", "", "Argument[*0].Field[*dane].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_dane_set_flags", "(SSL *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*dane].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "SSL_dane_tlsa_add", "(SSL *,uint8_t,uint8_t,uint8_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*dane].Field[*umask]", "taint", "dfc-generated"] + - ["", "", True, "SSL_do_handshake", "(SSL *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_dup", "(SSL *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SSL_dup", "(SSL *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_dup_CA_list", "(const stack_st_X509_NAME *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_CA_list", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get0_CA_list", "(const SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_alpn_selected", "(const SSL *,const unsigned char **,unsigned int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_get0_client_cert_type", "(const SSL *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_client_cert_type", "(const SSL *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_client_cert_type", "(const SSL *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_connection", "(SSL *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get0_connection", "(SSL *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get0_dane", "(SSL *)", "", "Argument[*0].Field[**tls].Field[*dane]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get0_dane", "(SSL *)", "", "Argument[*0].Field[*dane]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get0_dane_authority", "(SSL *,X509 **,EVP_PKEY **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_dane_authority", "(SSL *,X509 **,EVP_PKEY **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_dane_authority", "(SSL *,X509 **,EVP_PKEY **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get0_dane_tlsa", "(SSL *,uint8_t *,uint8_t *,uint8_t *,const unsigned char **,size_t *)", "", "Argument[*0].Field[*dane].Field[*mdpth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get0_next_proto_negotiated", "(const SSL *,const unsigned char **,unsigned int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_get0_param", "(SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get0_param", "(SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_peer_certificate", "(const SSL *)", "", "Argument[*0].Field[**session].Field[**peer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get0_peer_certificate", "(const SSL *)", "", "Argument[*0].Field[**session].Field[*peer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get0_peer_rpk", "(const SSL *)", "", "Argument[*0].Field[**session].Field[**peer_rpk]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get0_peer_rpk", "(const SSL *)", "", "Argument[*0].Field[**session].Field[*peer_rpk]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get0_peer_scts", "(SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get0_peer_scts", "(SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_peername", "(SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get0_peername", "(SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_security_ex_data", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get0_security_ex_data", "(const SSL *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_security_ex_data", "(const SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_server_cert_type", "(const SSL *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_server_cert_type", "(const SSL *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_server_cert_type", "(const SSL *,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "SSL_get0_verified_chain", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get0_verified_chain", "(const SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get1_peer_certificate", "(const SSL *)", "", "Argument[*0].Field[**session].Field[**peer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get1_peer_certificate", "(const SSL *)", "", "Argument[*0].Field[**session].Field[*peer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get1_session", "(SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get1_session", "(SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get1_supported_ciphers", "(SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get_SSL_CTX", "(const SSL *)", "", "Argument[*0].Field[**ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_SSL_CTX", "(const SSL *)", "", "Argument[*0].Field[*ctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_all_async_fds", "(SSL *,int *,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_get_all_async_fds", "(SSL *,int *,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_get_async_status", "(SSL *,int *)", "", "Argument[*0].Field[**waitctx].Field[*status]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_changed_async_fds", "(SSL *,int *,size_t *,int *,size_t *)", "", "Argument[*0].Field[**waitctx].Field[*numadd]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_changed_async_fds", "(SSL *,int *,size_t *,int *,size_t *)", "", "Argument[*0].Field[**waitctx].Field[*numdel]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_changed_async_fds", "(SSL *,int *,size_t *,int *,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_get_changed_async_fds", "(SSL *,int *,size_t *,int *,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "SSL_get_ciphers", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_ciphers", "(const SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get_client_CA_list", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_client_CA_list", "(const SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get_client_ciphers", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_client_ciphers", "(const SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get_client_random", "(const SSL *,unsigned char *,size_t)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_current_cipher", "(const SSL *)", "", "Argument[*0].Field[**session].Field[**cipher]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_current_cipher", "(const SSL *)", "", "Argument[*0].Field[**session].Field[*cipher]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_default_passwd_cb", "(SSL *)", "", "Argument[*0].Field[**tls].Field[*default_passwd_callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_default_passwd_cb", "(SSL *)", "", "Argument[*0].Field[*default_passwd_callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_default_passwd_cb_userdata", "(SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_default_passwd_cb_userdata", "(SSL *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "SSL_get_default_passwd_cb_userdata", "(SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get_early_data_status", "(const SSL *)", "", "Argument[*0].Field[*ext].Field[*early_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_ex_data", "(const SSL *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_get_handshake_rtt", "(const SSL *,uint64_t *)", "", "Argument[*0].Field[*ts_msg_read].Field[*t]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_get_handshake_rtt", "(const SSL *,uint64_t *)", "", "Argument[*0].Field[*ts_msg_write].Field[*t]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_get_info_callback", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*info_callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_info_callback", "(const SSL *)", "", "Argument[*0].Field[*info_callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_key_update_type", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*key_update]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_key_update_type", "(const SSL *)", "", "Argument[*0].Field[*key_update]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_max_early_data", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*max_early_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_max_early_data", "(const SSL *)", "", "Argument[*0].Field[*max_early_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_negotiated_client_cert_type", "(const SSL *)", "", "Argument[*0].Field[*ext].Field[*client_cert_type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_negotiated_server_cert_type", "(const SSL *)", "", "Argument[*0].Field[*ext].Field[*server_cert_type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_num_tickets", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*num_tickets]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_num_tickets", "(const SSL *)", "", "Argument[*0].Field[*num_tickets]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_options", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_peer_cert_chain", "(const SSL *)", "", "Argument[*0].Field[**session].Field[**peer_chain]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_peer_cert_chain", "(const SSL *)", "", "Argument[*0].Field[**session].Field[*peer_chain]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_psk_identity", "(const SSL *)", "", "Argument[*0].Field[**session].Field[**psk_identity]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_psk_identity", "(const SSL *)", "", "Argument[*0].Field[**session].Field[*psk_identity]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_psk_identity_hint", "(const SSL *)", "", "Argument[*0].Field[**session].Field[**psk_identity_hint]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_psk_identity_hint", "(const SSL *)", "", "Argument[*0].Field[**session].Field[*psk_identity_hint]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_quiet_shutdown", "(const SSL *)", "", "Argument[*0].Field[*quiet_shutdown]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_rbio", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_rbio", "(const SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get_read_ahead", "(const SSL *)", "", "Argument[*0].Field[*rlayer].Field[*read_ahead]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_record_padding_callback_arg", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_record_padding_callback_arg", "(const SSL *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "SSL_get_record_padding_callback_arg", "(const SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get_recv_max_early_data", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*recv_max_early_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_recv_max_early_data", "(const SSL *)", "", "Argument[*0].Field[*recv_max_early_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_security_callback", "(const SSL *)", "", "Argument[*0].Field[**cert].Field[*sec_cb]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_security_level", "(const SSL *)", "", "Argument[*0].Field[**cert].Field[*sec_level]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_selected_srtp_profile", "(SSL *)", "", "Argument[*0].Field[**srtp_profile]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_selected_srtp_profile", "(SSL *)", "", "Argument[*0].Field[*srtp_profile]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_server_random", "(const SSL *,unsigned char *,size_t)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_servername", "(const SSL *,const int)", "", "Argument[*0].Field[*ext].Field[**hostname]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_servername", "(const SSL *,const int)", "", "Argument[*0].Field[*ext].Field[*hostname]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_session", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_session", "(const SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get_shared_ciphers", "(const SSL *,char *,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_shared_ciphers", "(const SSL *,char *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_shared_sigalgs", "(SSL *,int,int *,int *,int *,unsigned char *,unsigned char *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "SSL_get_shared_sigalgs", "(SSL *,int,int *,int *,int *,unsigned char *,unsigned char *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "SSL_get_shared_sigalgs", "(SSL *,int,int *,int *,int *,unsigned char *,unsigned char *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "SSL_get_shared_sigalgs", "(SSL *,int,int *,int *,int *,unsigned char *,unsigned char *)", "", "Argument[*0]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "SSL_get_shared_sigalgs", "(SSL *,int,int *,int *,int *,unsigned char *,unsigned char *)", "", "Argument[*0]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "SSL_get_shared_sigalgs", "(SSL *,int,int *,int *,int *,unsigned char *,unsigned char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_shutdown", "(const SSL *)", "", "Argument[*0].Field[*shutdown]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_sigalgs", "(SSL *,int,int *,int *,int *,unsigned char *,unsigned char *)", "", "Argument[1]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "SSL_get_sigalgs", "(SSL *,int,int *,int *,int *,unsigned char *,unsigned char *)", "", "Argument[1]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "SSL_get_srp_N", "(SSL *)", "", "Argument[*0].Field[*srp_ctx].Field[**N]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_srp_N", "(SSL *)", "", "Argument[*0].Field[*srp_ctx].Field[*N]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_srp_g", "(SSL *)", "", "Argument[*0].Field[*srp_ctx].Field[**g]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_srp_g", "(SSL *)", "", "Argument[*0].Field[*srp_ctx].Field[*g]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_srp_userinfo", "(SSL *)", "", "Argument[*0].Field[*srp_ctx].Field[**info]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_srp_userinfo", "(SSL *)", "", "Argument[*0].Field[*srp_ctx].Field[*info]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_srp_username", "(SSL *)", "", "Argument[*0].Field[*srp_ctx].Field[**login]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_srp_username", "(SSL *)", "", "Argument[*0].Field[*srp_ctx].Field[*login]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_srtp_profiles", "(SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_srtp_profiles", "(SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_get_ssl_method", "(const SSL *)", "", "Argument[*0].Field[**method]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "SSL_get_ssl_method", "(const SSL *)", "", "Argument[*0].Field[*method]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_state", "(const SSL *)", "", "Argument[*0].Field[*statem].Field[*hand_state]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_verify_callback", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*verify_callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_verify_callback", "(const SSL *)", "", "Argument[*0].Field[*verify_callback]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_verify_depth", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_verify_mode", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*verify_mode]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_verify_mode", "(const SSL *)", "", "Argument[*0].Field[*verify_mode]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_verify_result", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*verify_result]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_verify_result", "(const SSL *)", "", "Argument[*0].Field[*verify_result]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_get_wbio", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_get_wbio", "(const SSL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_in_init", "(const SSL *)", "", "Argument[*0].Field[*statem].Field[*in_init]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_inject_net_dgram", "(SSL *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "SSL_inject_net_dgram", "(SSL *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SSL_is_server", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*server]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_is_server", "(const SSL *)", "", "Argument[*0].Field[*server]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_key_update", "(SSL *,int)", "", "Argument[1]", "Argument[*0].Field[*key_update]", "value", "dfc-generated"] + - ["", "", True, "SSL_new_domain", "(SSL_CTX *,uint64_t)", "", "Argument[0]", "ReturnValue[*].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_new_listener", "(SSL_CTX *,uint64_t)", "", "Argument[0]", "ReturnValue[*].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_new_listener_from", "(SSL *,uint64_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "SSL_peek", "(SSL *,void *,int)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_peek_ex", "(SSL *,void *,size_t,size_t *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_poll", "(SSL_POLL_ITEM *,size_t,size_t,const timeval *,uint64_t,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "SSL_read", "(SSL *,void *,int)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_read_early_data", "(SSL *,void *,size_t,size_t *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_read_ex", "(SSL *,void *,size_t,size_t *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_renegotiate_pending", "(const SSL *)", "", "Argument[*0].Field[*renegotiate]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_select_next_proto", "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)", "", "Argument[*2]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "SSL_select_next_proto", "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SSL_select_next_proto", "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "SSL_select_next_proto", "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)", "", "Argument[*4]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "SSL_select_next_proto", "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)", "", "Argument[*4]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "SSL_select_next_proto", "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "SSL_select_next_proto", "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "SSL_select_next_proto", "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_select_next_proto", "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)", "", "Argument[4]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "SSL_select_next_proto", "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_session_reused", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*hit]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_session_reused", "(const SSL *)", "", "Argument[*0].Field[*hit]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_CA_list", "(SSL *,stack_st_X509_NAME *)", "", "Argument[*1]", "Argument[*0].Field[**ca_names]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_CA_list", "(SSL *,stack_st_X509_NAME *)", "", "Argument[1]", "Argument[*0].Field[*ca_names]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_rbio", "(SSL *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**rbio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_rbio", "(SSL *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*rbio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_security_ex_data", "(SSL *,void *)", "", "Argument[**1]", "Argument[*0].Field[**cert].Field[***sec_ex]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_security_ex_data", "(SSL *,void *)", "", "Argument[*1]", "Argument[*0].Field[**cert].Field[**sec_ex]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_security_ex_data", "(SSL *,void *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*sec_ex]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_tmp_dh_pkey", "(SSL *,EVP_PKEY *)", "", "Argument[*0].Field[**tls]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_tmp_dh_pkey", "(SSL *,EVP_PKEY *)", "", "Argument[*1]", "Argument[*0].Field[**cert].Field[**dh_tmp]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_tmp_dh_pkey", "(SSL *,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*dh_tmp]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_wbio", "(SSL *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**bbio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_wbio", "(SSL *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**wbio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_wbio", "(SSL *,BIO *)", "", "Argument[1]", "Argument[*0].Field[**bbio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set0_wbio", "(SSL *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*wbio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set1_client_cert_type", "(SSL *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**client_cert_type]", "value", "dfc-generated"] + - ["", "", True, "SSL_set1_client_cert_type", "(SSL *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**client_cert_type]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set1_client_cert_type", "(SSL *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*client_cert_type_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_set1_host", "(SSL *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**param].Field[**ip]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set1_host", "(SSL *,const char *)", "", "Argument[1]", "Argument[*0].Field[**param].Field[**ip]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set1_param", "(SSL *,X509_VERIFY_PARAM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SSL_set1_server_cert_type", "(SSL *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**server_cert_type]", "value", "dfc-generated"] + - ["", "", True, "SSL_set1_server_cert_type", "(SSL *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**server_cert_type]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set1_server_cert_type", "(SSL *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*server_cert_type_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_SSL_CTX", "(SSL *,SSL_CTX *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "SSL_set_SSL_CTX", "(SSL *,SSL_CTX *)", "", "Argument[1]", "Argument[*0].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_SSL_CTX", "(SSL *,SSL_CTX *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_set_allow_early_data_cb", "(SSL *,SSL_allow_early_data_cb_fn,void *)", "", "Argument[**2]", "Argument[*0].Field[***allow_early_data_cb_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_allow_early_data_cb", "(SSL *,SSL_allow_early_data_cb_fn,void *)", "", "Argument[*2]", "Argument[*0].Field[**allow_early_data_cb_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_allow_early_data_cb", "(SSL *,SSL_allow_early_data_cb_fn,void *)", "", "Argument[1]", "Argument[*0].Field[*allow_early_data_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_allow_early_data_cb", "(SSL *,SSL_allow_early_data_cb_fn,void *)", "", "Argument[2]", "Argument[*0].Field[*allow_early_data_cb_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_alpn_protos", "(SSL *,const unsigned char *,unsigned int)", "", "Argument[*1]", "Argument[*0].Field[*ext].Field[**alpn]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_alpn_protos", "(SSL *,const unsigned char *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[**alpn]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set_alpn_protos", "(SSL *,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[*0].Field[*ext].Field[*alpn_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_async_callback", "(SSL *,SSL_async_callback_fn)", "", "Argument[1]", "Argument[*0].Field[*async_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_async_callback_arg", "(SSL *,void *)", "", "Argument[**1]", "Argument[*0].Field[***async_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_async_callback_arg", "(SSL *,void *)", "", "Argument[*1]", "Argument[*0].Field[**async_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_async_callback_arg", "(SSL *,void *)", "", "Argument[1]", "Argument[*0].Field[*async_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_bio", "(SSL *,BIO *,BIO *)", "", "Argument[*2]", "Argument[*0].Field[**bbio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_bio", "(SSL *,BIO *,BIO *)", "", "Argument[*2]", "Argument[*0].Field[**wbio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_bio", "(SSL *,BIO *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*rbio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_bio", "(SSL *,BIO *,BIO *)", "", "Argument[2]", "Argument[*0].Field[**bbio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_bio", "(SSL *,BIO *,BIO *)", "", "Argument[2]", "Argument[*0].Field[*wbio]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_block_padding", "(SSL *,size_t)", "", "Argument[1]", "Argument[*0].Field[*rlayer].Field[*block_padding]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_block_padding", "(SSL *,size_t)", "", "Argument[1]", "Argument[*0].Field[*rlayer].Field[*hs_padding]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_block_padding_ex", "(SSL *,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*rlayer].Field[*block_padding]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_block_padding_ex", "(SSL *,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[*rlayer].Field[*hs_padding]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_cert_cb", "(SSL *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[**cert].Field[***cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_cert_cb", "(SSL *,..(*)(..),void *)", "", "Argument[*0].Field[**tls].Field[**cert]", "Argument[*0].Field[**cert]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_cert_cb", "(SSL *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**cert].Field[**cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_cert_cb", "(SSL *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*cert_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_cert_cb", "(SSL *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[**cert].Field[*cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_cipher_list", "(SSL *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**cert].Field[*sec_level]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set_cipher_list", "(SSL *,const char *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*sec_level]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set_client_CA_list", "(SSL *,stack_st_X509_NAME *)", "", "Argument[*1]", "Argument[*0].Field[**client_ca_names]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_client_CA_list", "(SSL *,stack_st_X509_NAME *)", "", "Argument[1]", "Argument[*0].Field[*client_ca_names]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_ct_validation_callback", "(SSL *,ssl_ct_validation_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***ct_validation_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_ct_validation_callback", "(SSL *,ssl_ct_validation_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**ct_validation_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_ct_validation_callback", "(SSL *,ssl_ct_validation_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*ct_validation_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_ct_validation_callback", "(SSL *,ssl_ct_validation_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*ct_validation_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_default_passwd_cb", "(SSL *,pem_password_cb *)", "", "Argument[1]", "Argument[*0].Field[*default_passwd_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_default_passwd_cb_userdata", "(SSL *,void *)", "", "Argument[**1]", "Argument[*0].Field[***default_passwd_callback_userdata]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_default_passwd_cb_userdata", "(SSL *,void *)", "", "Argument[*1]", "Argument[*0].Field[**default_passwd_callback_userdata]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_default_passwd_cb_userdata", "(SSL *,void *)", "", "Argument[1]", "Argument[*0].Field[*default_passwd_callback_userdata]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_default_read_buffer_len", "(SSL *,size_t)", "", "Argument[1]", "Argument[*0].Field[*rlayer].Field[*default_read_buf_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_generate_session_id", "(SSL *,GEN_SESSION_CB)", "", "Argument[1]", "Argument[*0].Field[*generate_session_id]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_hostflags", "(SSL *,unsigned int)", "", "Argument[*0].Field[**tls].Field[**param]", "Argument[*0].Field[**param]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_hostflags", "(SSL *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*hostflags]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_info_callback", "(SSL *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*info_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_max_early_data", "(SSL *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*max_early_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_num_tickets", "(SSL *,size_t)", "", "Argument[1]", "Argument[*0].Field[*num_tickets]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_options", "(SSL *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*options]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set_options", "(SSL *,uint64_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_set_post_handshake_auth", "(SSL *,int)", "", "Argument[1]", "Argument[*0].Field[*pha_enabled]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_psk_client_callback", "(SSL *,SSL_psk_client_cb_func)", "", "Argument[1]", "Argument[*0].Field[*psk_client_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_psk_find_session_callback", "(SSL *,SSL_psk_find_session_cb_func)", "", "Argument[1]", "Argument[*0].Field[*psk_find_session_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_psk_server_callback", "(SSL *,SSL_psk_server_cb_func)", "", "Argument[1]", "Argument[*0].Field[*psk_server_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_psk_use_session_callback", "(SSL *,SSL_psk_use_session_cb_func)", "", "Argument[1]", "Argument[*0].Field[*psk_use_session_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_purpose", "(SSL *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*purpose]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_quic_tls_cbs", "(SSL *,const OSSL_DISPATCH *,void *)", "", "Argument[**2]", "Argument[*0].Field[***qtarg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_quic_tls_cbs", "(SSL *,const OSSL_DISPATCH *,void *)", "", "Argument[*2]", "Argument[*0].Field[**qtarg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_quic_tls_cbs", "(SSL *,const OSSL_DISPATCH *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set_quic_tls_cbs", "(SSL *,const OSSL_DISPATCH *,void *)", "", "Argument[2]", "Argument[*0].Field[*qtarg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_quic_tls_early_data_enabled", "(SSL *,int)", "", "Argument[*0].Field[**tls].Field[**qtls]", "Argument[*0].Field[**qtls]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_quic_tls_transport_params", "(SSL *,const unsigned char *,size_t)", "", "Argument[*0].Field[**tls].Field[**qtls]", "Argument[*0].Field[**qtls]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_quic_tls_transport_params", "(SSL *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**qtls].Field[**local_transport_params]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_quic_tls_transport_params", "(SSL *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**qtls].Field[*local_transport_params]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_quic_tls_transport_params", "(SSL *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**qtls].Field[*local_transport_params_len]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_quiet_shutdown", "(SSL *,int)", "", "Argument[1]", "Argument[*0].Field[*quiet_shutdown]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_read_ahead", "(SSL *,int)", "", "Argument[1]", "Argument[*0].Field[*rlayer].Field[*read_ahead]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_record_padding_callback", "(SSL *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*rlayer].Field[*record_padding_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_record_padding_callback_arg", "(SSL *,void *)", "", "Argument[**1]", "Argument[*0].Field[*rlayer].Field[***record_padding_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_record_padding_callback_arg", "(SSL *,void *)", "", "Argument[*1]", "Argument[*0].Field[*rlayer].Field[**record_padding_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_record_padding_callback_arg", "(SSL *,void *)", "", "Argument[1]", "Argument[*0].Field[*rlayer].Field[*record_padding_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_recv_max_early_data", "(SSL *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*recv_max_early_data]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_security_callback", "(SSL *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*sec_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_security_level", "(SSL *,int)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*sec_level]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session", "(SSL *,SSL_SESSION *)", "", "Argument[1]", "Argument[*0].Field[*session]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_id_context", "(SSL *,const unsigned char *,unsigned int)", "", "Argument[*1]", "Argument[*0].Field[*sid_ctx]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_id_context", "(SSL *,const unsigned char *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*sid_ctx]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set_session_id_context", "(SSL *,const unsigned char *,unsigned int)", "", "Argument[2]", "Argument[*0].Field[*sid_ctx_length]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_secret_cb", "(SSL *,tls_session_secret_cb_fn,void *)", "", "Argument[**2]", "Argument[*0].Field[*ext].Field[***session_secret_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_secret_cb", "(SSL *,tls_session_secret_cb_fn,void *)", "", "Argument[*2]", "Argument[*0].Field[*ext].Field[**session_secret_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_secret_cb", "(SSL *,tls_session_secret_cb_fn,void *)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[*session_secret_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_secret_cb", "(SSL *,tls_session_secret_cb_fn,void *)", "", "Argument[2]", "Argument[*0].Field[*ext].Field[*session_secret_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_ticket_ext", "(SSL *,void *,int)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_ticket_ext", "(SSL *,void *,int)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set_session_ticket_ext_cb", "(SSL *,tls_session_ticket_ext_cb_fn,void *)", "", "Argument[**2]", "Argument[*0].Field[*ext].Field[***session_ticket_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_ticket_ext_cb", "(SSL *,tls_session_ticket_ext_cb_fn,void *)", "", "Argument[*2]", "Argument[*0].Field[*ext].Field[**session_ticket_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_ticket_ext_cb", "(SSL *,tls_session_ticket_ext_cb_fn,void *)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[*session_ticket_cb]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_session_ticket_ext_cb", "(SSL *,tls_session_ticket_ext_cb_fn,void *)", "", "Argument[2]", "Argument[*0].Field[*ext].Field[*session_ticket_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_shutdown", "(SSL *,int)", "", "Argument[1]", "Argument[*0].Field[*shutdown]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_srp_server_param", "(SSL *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,char *)", "", "Argument[*5]", "Argument[*0].Field[*srp_ctx].Field[**info]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_srp_server_param", "(SSL *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,char *)", "", "Argument[5]", "Argument[*0].Field[*srp_ctx].Field[**info]", "taint", "dfc-generated"] + - ["", "", True, "SSL_set_ssl_method", "(SSL *,const SSL_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_tlsext_max_fragment_length", "(SSL *,uint8_t)", "", "Argument[1]", "Argument[*0].Field[*ext].Field[*max_fragment_len_mode]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_trust", "(SSL *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*trust]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_verify", "(SSL *,int,..(*)(..),SSL_verify_cb)", "", "Argument[1]", "Argument[*0].Field[*verify_mode]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_verify", "(SSL *,int,..(*)(..),SSL_verify_cb)", "", "Argument[2]", "Argument[*0].Field[*verify_callback]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_verify_depth", "(SSL *,int)", "", "Argument[*0].Field[**tls].Field[**param]", "Argument[*0].Field[**param]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_verify_depth", "(SSL *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*depth]", "value", "dfc-generated"] + - ["", "", True, "SSL_set_verify_result", "(SSL *,long)", "", "Argument[1]", "Argument[*0].Field[*verify_result]", "value", "dfc-generated"] + - ["", "", True, "SSL_shutdown", "(SSL *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_shutdown_ex", "(SSL *,uint64_t,const SSL_SHUTDOWN_EX_ARGS *,size_t)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_state_string", "(const SSL *)", "", "Argument[*0].Field[**tls]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "SSL_state_string_long", "(const SSL *)", "", "Argument[*0].Field[**tls]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "SSL_stateless", "(SSL *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_trace", "(int,int,int,const void *,size_t,SSL *,void *)", "", "Argument[6]", "Argument[*6].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "SSL_use_PrivateKey_ASN1", "(int,SSL *,const unsigned char *,long)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_use_PrivateKey_ASN1", "(int,SSL *,const unsigned char *,long)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "SSL_use_RSAPrivateKey_ASN1", "(SSL *,const unsigned char *,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_use_RSAPrivateKey_ASN1", "(SSL *,const unsigned char *,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_use_cert_and_key", "(SSL *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[*0].Field[**tls]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "SSL_use_cert_and_key", "(SSL *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SSL_use_cert_and_key", "(SSL *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SSL_use_cert_and_key", "(SSL *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "SSL_use_certificate", "(SSL *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "SSL_use_certificate_ASN1", "(SSL *,const unsigned char *,int)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_use_certificate_ASN1", "(SSL *,const unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_use_certificate_ASN1", "(SSL *,const unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_use_certificate_ASN1", "(SSL *,const unsigned char *,int)", "", "Argument[2]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "SSL_use_psk_identity_hint", "(SSL *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**cert].Field[**psk_identity_hint]", "value", "dfc-generated"] + - ["", "", True, "SSL_use_psk_identity_hint", "(SSL *,const char *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[**psk_identity_hint]", "taint", "dfc-generated"] + - ["", "", True, "SSL_verify_client_post_handshake", "(SSL *)", "", "Argument[*0].Field[**tls]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "SSL_version", "(const SSL *)", "", "Argument[*0].Field[**tls].Field[*version]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_version", "(const SSL *)", "", "Argument[*0].Field[*version]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SSL_want", "(const SSL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "SSL_write", "(SSL *,const void *,int)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_write", "(SSL *,const void *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "SSL_write_early_data", "(SSL *,const void *,size_t,size_t *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_write_early_data", "(SSL *,const void *,size_t,size_t *)", "", "Argument[2]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "SSL_write_early_data", "(SSL *,const void *,size_t,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "SSL_write_ex2", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_write_ex2", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SSL_write_ex2", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "SSL_write_ex", "(SSL *,const void *,size_t,size_t *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "SSL_write_ex", "(SSL *,const void *,size_t,size_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "SSL_write_ex", "(SSL *,const void *,size_t,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "STACK_OF_X509_cmp", "(const stack_st_X509 *,const stack_st_X509 *)", "", "Argument[*0].Field[*num]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "STACK_OF_X509_cmp", "(const stack_st_X509 *,const stack_st_X509 *)", "", "Argument[*1].Field[*num]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "STACK_OF_X509_push1", "(stack_st_X509 *,X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "STACK_OF_X509_push1", "(stack_st_X509 *,X509 *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "STACK_OF_X509_push1", "(stack_st_X509 *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "STACK_OF_X509_push1", "(stack_st_X509 *,X509 *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "STACK_OF_X509_push1", "(stack_st_X509 *,X509 *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "SXNETID_free", "(SXNETID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "SXNETID_free", "(SXNETID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "SXNET_add_id_INTEGER", "(SXNET **,ASN1_INTEGER *,const char *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "SXNET_add_id_INTEGER", "(SXNET **,ASN1_INTEGER *,const char *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "SXNET_add_id_INTEGER", "(SXNET **,ASN1_INTEGER *,const char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SXNET_add_id_asc", "(SXNET **,const char *,const char *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "SXNET_add_id_asc", "(SXNET **,const char *,const char *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "SXNET_add_id_asc", "(SXNET **,const char *,const char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SXNET_add_id_ulong", "(SXNET **,unsigned long,const char *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "SXNET_add_id_ulong", "(SXNET **,unsigned long,const char *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "SXNET_add_id_ulong", "(SXNET **,unsigned long,const char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SXNET_free", "(SXNET *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "SXNET_free", "(SXNET *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "SipHash_Final", "(SIPHASH *,unsigned char *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "SipHash_Init", "(SIPHASH *,const unsigned char *,int,int)", "", "Argument[2]", "Argument[*0].Field[*crounds]", "value", "dfc-generated"] + - ["", "", True, "SipHash_Init", "(SIPHASH *,const unsigned char *,int,int)", "", "Argument[3]", "Argument[*0].Field[*drounds]", "value", "dfc-generated"] + - ["", "", True, "SipHash_Update", "(SIPHASH *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*leavings]", "taint", "dfc-generated"] + - ["", "", True, "SipHash_Update", "(SIPHASH *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*len]", "taint", "dfc-generated"] + - ["", "", True, "SipHash_Update", "(SIPHASH *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*total_inlen]", "taint", "dfc-generated"] + - ["", "", True, "SipHash_hash_size", "(SIPHASH *)", "", "Argument[*0].Field[*hash_size]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "SipHash_set_hash_size", "(SIPHASH *,size_t)", "", "Argument[1]", "Argument[*0].Field[*hash_size]", "value", "dfc-generated"] + - ["", "", True, "TLS_FEATURE_free", "(TLS_FEATURE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TLS_FEATURE_free", "(TLS_FEATURE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "TS_ACCURACY_dup", "(const TS_ACCURACY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_ACCURACY_dup", "(const TS_ACCURACY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_ACCURACY_dup", "(const TS_ACCURACY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_ACCURACY_dup", "(const TS_ACCURACY *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_ACCURACY_dup", "(const TS_ACCURACY *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_ACCURACY_free", "(TS_ACCURACY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_ACCURACY_free", "(TS_ACCURACY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "TS_ACCURACY_get_micros", "(const TS_ACCURACY *)", "", "Argument[*0].Field[**micros]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_ACCURACY_get_micros", "(const TS_ACCURACY *)", "", "Argument[*0].Field[*micros]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_ACCURACY_get_millis", "(const TS_ACCURACY *)", "", "Argument[*0].Field[**millis]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_ACCURACY_get_millis", "(const TS_ACCURACY *)", "", "Argument[*0].Field[*millis]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_ACCURACY_get_seconds", "(const TS_ACCURACY *)", "", "Argument[*0].Field[**seconds]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_ACCURACY_get_seconds", "(const TS_ACCURACY *)", "", "Argument[*0].Field[*seconds]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_ACCURACY_set_micros", "(TS_ACCURACY *,const ASN1_INTEGER *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_ACCURACY_set_millis", "(TS_ACCURACY *,const ASN1_INTEGER *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_ACCURACY_set_seconds", "(TS_ACCURACY *,const ASN1_INTEGER *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_CONF_get_tsa_section", "(CONF *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_CONF_get_tsa_section", "(CONF *,const char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_CONF_set_serial", "(CONF *,const char *,TS_serial_cb,TS_RESP_CTX *)", "", "Argument[2]", "Argument[*3].Field[*serial_cb]", "value", "dfc-generated"] + - ["", "", True, "TS_MSG_IMPRINT_dup", "(const TS_MSG_IMPRINT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_MSG_IMPRINT_dup", "(const TS_MSG_IMPRINT *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_MSG_IMPRINT_dup", "(const TS_MSG_IMPRINT *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_MSG_IMPRINT_dup", "(const TS_MSG_IMPRINT *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_MSG_IMPRINT_dup", "(const TS_MSG_IMPRINT *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_MSG_IMPRINT_free", "(TS_MSG_IMPRINT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_MSG_IMPRINT_free", "(TS_MSG_IMPRINT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "TS_MSG_IMPRINT_get_algo", "(TS_MSG_IMPRINT *)", "", "Argument[*0].Field[**hash_algo]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_MSG_IMPRINT_get_algo", "(TS_MSG_IMPRINT *)", "", "Argument[*0].Field[*hash_algo]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_MSG_IMPRINT_get_msg", "(TS_MSG_IMPRINT *)", "", "Argument[*0].Field[**hashed_msg]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_MSG_IMPRINT_get_msg", "(TS_MSG_IMPRINT *)", "", "Argument[*0].Field[*hashed_msg]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_MSG_IMPRINT_set_algo", "(TS_MSG_IMPRINT *,X509_ALGOR *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_MSG_IMPRINT_set_algo", "(TS_MSG_IMPRINT *,X509_ALGOR *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "TS_MSG_IMPRINT_set_algo", "(TS_MSG_IMPRINT *,X509_ALGOR *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_MSG_IMPRINT_set_msg", "(TS_MSG_IMPRINT *,unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[**hashed_msg].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_MSG_IMPRINT_set_msg", "(TS_MSG_IMPRINT *,unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**hashed_msg].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "TS_MSG_IMPRINT_set_msg", "(TS_MSG_IMPRINT *,unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[**hashed_msg].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_add_ext", "(TS_REQ *,X509_EXTENSION *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "TS_REQ_add_ext", "(TS_REQ *,X509_EXTENSION *,int)", "", "Argument[2]", "Argument[*0].Field[**extensions].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "TS_REQ_add_ext", "(TS_REQ *,X509_EXTENSION *,int)", "", "Argument[2]", "Argument[*0].Field[**extensions].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "TS_REQ_delete_ext", "(TS_REQ *,int)", "", "Argument[1]", "Argument[*0].Field[**extensions].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "TS_REQ_delete_ext", "(TS_REQ *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_REQ_delete_ext", "(TS_REQ *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "TS_REQ_dup", "(const TS_REQ *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_REQ_dup", "(const TS_REQ *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_REQ_dup", "(const TS_REQ *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_REQ_dup", "(const TS_REQ *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_REQ_dup", "(const TS_REQ *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_REQ_free", "(TS_REQ *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_REQ_free", "(TS_REQ *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "TS_REQ_get_ext", "(TS_REQ *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_REQ_get_ext_by_NID", "(TS_REQ *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_REQ_get_ext_by_OBJ", "(TS_REQ *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_REQ_get_ext_by_critical", "(TS_REQ *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_REQ_get_ext_count", "(TS_REQ *)", "", "Argument[*0].Field[**extensions].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_get_ext_d2i", "(TS_REQ *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "TS_REQ_get_exts", "(TS_REQ *)", "", "Argument[*0].Field[**extensions]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_get_exts", "(TS_REQ *)", "", "Argument[*0].Field[*extensions]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_get_msg_imprint", "(TS_REQ *)", "", "Argument[*0].Field[**msg_imprint]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_get_msg_imprint", "(TS_REQ *)", "", "Argument[*0].Field[*msg_imprint]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_get_nonce", "(const TS_REQ *)", "", "Argument[*0].Field[**nonce]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_get_nonce", "(const TS_REQ *)", "", "Argument[*0].Field[*nonce]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_get_policy_id", "(TS_REQ *)", "", "Argument[*0].Field[**policy_id]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_get_policy_id", "(TS_REQ *)", "", "Argument[*0].Field[*policy_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_get_version", "(const TS_REQ *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_REQ_print_bio", "(BIO *,TS_REQ *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_set_msg_imprint", "(TS_REQ *,TS_MSG_IMPRINT *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_REQ_set_msg_imprint", "(TS_REQ *,TS_MSG_IMPRINT *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "TS_REQ_set_msg_imprint", "(TS_REQ *,TS_MSG_IMPRINT *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_REQ_set_nonce", "(TS_REQ *,const ASN1_INTEGER *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_REQ_set_policy_id", "(TS_REQ *,const ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[*policy_id]", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_set_version", "(TS_REQ *,long)", "", "Argument[1]", "Argument[*0].Field[**version].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_REQ_to_TS_VERIFY_CTX", "(TS_REQ *,TS_VERIFY_CTX *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "TS_REQ_to_TS_VERIFY_CTX", "(TS_REQ *,TS_VERIFY_CTX *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_add_flags", "(TS_RESP_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_add_md", "(TS_RESP_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[**mds].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_add_md", "(TS_RESP_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[**mds].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_add_policy", "(TS_RESP_CTX *,const ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[**policies].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_add_policy", "(TS_RESP_CTX *,const ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[**policies].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_get_request", "(TS_RESP_CTX *)", "", "Argument[*0].Field[**request]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_get_request", "(TS_RESP_CTX *)", "", "Argument[*0].Field[*request]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_get_tst_info", "(TS_RESP_CTX *)", "", "Argument[*0].Field[**tst_info]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_get_tst_info", "(TS_RESP_CTX *)", "", "Argument[*0].Field[*tst_info]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_accuracy", "(TS_RESP_CTX *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[**seconds].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_accuracy", "(TS_RESP_CTX *,int,int,int)", "", "Argument[2]", "Argument[*0].Field[**millis].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_accuracy", "(TS_RESP_CTX *,int,int,int)", "", "Argument[3]", "Argument[*0].Field[**micros].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_certs", "(TS_RESP_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[**certs]", "taint", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_certs", "(TS_RESP_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_clock_precision_digits", "(TS_RESP_CTX *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*clock_precision_digits]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_def_policy", "(TS_RESP_CTX *,const ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[*default_policy]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_ess_cert_id_digest", "(TS_RESP_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[**ess_cert_id_digest]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_ess_cert_id_digest", "(TS_RESP_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*ess_cert_id_digest]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_extension_cb", "(TS_RESP_CTX *,TS_extension_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***extension_cb_data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_extension_cb", "(TS_RESP_CTX *,TS_extension_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**extension_cb_data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_extension_cb", "(TS_RESP_CTX *,TS_extension_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*extension_cb]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_extension_cb", "(TS_RESP_CTX *,TS_extension_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*extension_cb_data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_serial_cb", "(TS_RESP_CTX *,TS_serial_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***serial_cb_data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_serial_cb", "(TS_RESP_CTX *,TS_serial_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**serial_cb_data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_serial_cb", "(TS_RESP_CTX *,TS_serial_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*serial_cb]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_serial_cb", "(TS_RESP_CTX *,TS_serial_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*serial_cb_data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_signer_cert", "(TS_RESP_CTX *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "TS_RESP_CTX_set_signer_cert", "(TS_RESP_CTX *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*signer_cert]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_signer_digest", "(TS_RESP_CTX *,const EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[**signer_md]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_signer_digest", "(TS_RESP_CTX *,const EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*signer_md]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_signer_key", "(TS_RESP_CTX *,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[*signer_key]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_time_cb", "(TS_RESP_CTX *,TS_time_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***time_cb_data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_time_cb", "(TS_RESP_CTX *,TS_time_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**time_cb_data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_time_cb", "(TS_RESP_CTX *,TS_time_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*time_cb]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_CTX_set_time_cb", "(TS_RESP_CTX *,TS_time_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*time_cb_data]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_create_response", "(TS_RESP_CTX *,BIO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_RESP_create_response", "(TS_RESP_CTX *,BIO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_RESP_dup", "(const TS_RESP *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_RESP_dup", "(const TS_RESP *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_RESP_dup", "(const TS_RESP *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_RESP_dup", "(const TS_RESP *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_RESP_dup", "(const TS_RESP *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_RESP_free", "(TS_RESP *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_RESP_free", "(TS_RESP *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "TS_RESP_get_status_info", "(TS_RESP *)", "", "Argument[*0].Field[**status_info]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_get_status_info", "(TS_RESP *)", "", "Argument[*0].Field[*status_info]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_get_token", "(TS_RESP *)", "", "Argument[*0].Field[**token]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_get_token", "(TS_RESP *)", "", "Argument[*0].Field[*token]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_get_tst_info", "(TS_RESP *)", "", "Argument[*0].Field[**tst_info]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_get_tst_info", "(TS_RESP *)", "", "Argument[*0].Field[*tst_info]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_print_bio", "(BIO *,TS_RESP *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_set_status_info", "(TS_RESP *,TS_STATUS_INFO *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_RESP_set_status_info", "(TS_RESP *,TS_STATUS_INFO *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "TS_RESP_set_status_info", "(TS_RESP *,TS_STATUS_INFO *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_RESP_set_tst_info", "(TS_RESP *,PKCS7 *,TS_TST_INFO *)", "", "Argument[*1]", "Argument[*0].Field[**token]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_set_tst_info", "(TS_RESP *,PKCS7 *,TS_TST_INFO *)", "", "Argument[*2]", "Argument[*0].Field[**tst_info]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_set_tst_info", "(TS_RESP *,PKCS7 *,TS_TST_INFO *)", "", "Argument[1]", "Argument[*0].Field[*token]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_set_tst_info", "(TS_RESP *,PKCS7 *,TS_TST_INFO *)", "", "Argument[2]", "Argument[*0].Field[*tst_info]", "value", "dfc-generated"] + - ["", "", True, "TS_RESP_verify_signature", "(PKCS7 *,stack_st_X509 *,X509_STORE *,X509 **)", "", "Argument[*1]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "TS_RESP_verify_signature", "(PKCS7 *,stack_st_X509 *,X509_STORE *,X509 **)", "", "Argument[*1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "TS_STATUS_INFO_dup", "(const TS_STATUS_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_STATUS_INFO_dup", "(const TS_STATUS_INFO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_STATUS_INFO_dup", "(const TS_STATUS_INFO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_STATUS_INFO_dup", "(const TS_STATUS_INFO *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_STATUS_INFO_dup", "(const TS_STATUS_INFO *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_STATUS_INFO_free", "(TS_STATUS_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_STATUS_INFO_free", "(TS_STATUS_INFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "TS_STATUS_INFO_get0_failure_info", "(const TS_STATUS_INFO *)", "", "Argument[*0].Field[**failure_info]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_STATUS_INFO_get0_failure_info", "(const TS_STATUS_INFO *)", "", "Argument[*0].Field[*failure_info]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_STATUS_INFO_get0_status", "(const TS_STATUS_INFO *)", "", "Argument[*0].Field[**status]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_STATUS_INFO_get0_status", "(const TS_STATUS_INFO *)", "", "Argument[*0].Field[*status]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_STATUS_INFO_get0_text", "(const TS_STATUS_INFO *)", "", "Argument[*0].Field[**text]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_STATUS_INFO_get0_text", "(const TS_STATUS_INFO *)", "", "Argument[*0].Field[*text]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_STATUS_INFO_set_status", "(TS_STATUS_INFO *,int)", "", "Argument[1]", "Argument[*0].Field[**status].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_add_ext", "(TS_TST_INFO *,X509_EXTENSION *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "TS_TST_INFO_add_ext", "(TS_TST_INFO *,X509_EXTENSION *,int)", "", "Argument[2]", "Argument[*0].Field[**extensions].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_add_ext", "(TS_TST_INFO *,X509_EXTENSION *,int)", "", "Argument[2]", "Argument[*0].Field[**extensions].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_delete_ext", "(TS_TST_INFO *,int)", "", "Argument[1]", "Argument[*0].Field[**extensions].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_delete_ext", "(TS_TST_INFO *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_delete_ext", "(TS_TST_INFO *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_dup", "(const TS_TST_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_TST_INFO_dup", "(const TS_TST_INFO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_dup", "(const TS_TST_INFO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_dup", "(const TS_TST_INFO *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_dup", "(const TS_TST_INFO *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_free", "(TS_TST_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "TS_TST_INFO_free", "(TS_TST_INFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "TS_TST_INFO_get_accuracy", "(TS_TST_INFO *)", "", "Argument[*0].Field[**accuracy]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_accuracy", "(TS_TST_INFO *)", "", "Argument[*0].Field[*accuracy]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_ext", "(TS_TST_INFO *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_ext_by_NID", "(TS_TST_INFO *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_ext_by_OBJ", "(TS_TST_INFO *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_ext_by_critical", "(TS_TST_INFO *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_ext_count", "(TS_TST_INFO *)", "", "Argument[*0].Field[**extensions].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_ext_d2i", "(TS_TST_INFO *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_exts", "(TS_TST_INFO *)", "", "Argument[*0].Field[**extensions]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_exts", "(TS_TST_INFO *)", "", "Argument[*0].Field[*extensions]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_msg_imprint", "(TS_TST_INFO *)", "", "Argument[*0].Field[**msg_imprint]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_msg_imprint", "(TS_TST_INFO *)", "", "Argument[*0].Field[*msg_imprint]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_nonce", "(const TS_TST_INFO *)", "", "Argument[*0].Field[**nonce]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_nonce", "(const TS_TST_INFO *)", "", "Argument[*0].Field[*nonce]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_policy_id", "(TS_TST_INFO *)", "", "Argument[*0].Field[**policy_id]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_policy_id", "(TS_TST_INFO *)", "", "Argument[*0].Field[*policy_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_serial", "(const TS_TST_INFO *)", "", "Argument[*0].Field[**serial]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_serial", "(const TS_TST_INFO *)", "", "Argument[*0].Field[*serial]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_time", "(const TS_TST_INFO *)", "", "Argument[*0].Field[**time]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_time", "(const TS_TST_INFO *)", "", "Argument[*0].Field[*time]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_tsa", "(TS_TST_INFO *)", "", "Argument[*0].Field[**tsa]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_tsa", "(TS_TST_INFO *)", "", "Argument[*0].Field[*tsa]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_get_version", "(const TS_TST_INFO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_print_bio", "(BIO *,TS_TST_INFO *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_set_accuracy", "(TS_TST_INFO *,TS_ACCURACY *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_accuracy", "(TS_TST_INFO *,TS_ACCURACY *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_accuracy", "(TS_TST_INFO *,TS_ACCURACY *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_msg_imprint", "(TS_TST_INFO *,TS_MSG_IMPRINT *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_msg_imprint", "(TS_TST_INFO *,TS_MSG_IMPRINT *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_msg_imprint", "(TS_TST_INFO *,TS_MSG_IMPRINT *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_nonce", "(TS_TST_INFO *,const ASN1_INTEGER *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_policy_id", "(TS_TST_INFO *,ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[*policy_id]", "value", "dfc-generated"] + - ["", "", True, "TS_TST_INFO_set_serial", "(TS_TST_INFO *,const ASN1_INTEGER *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_time", "(TS_TST_INFO *,const ASN1_GENERALIZEDTIME *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_tsa", "(TS_TST_INFO *,GENERAL_NAME *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_tsa", "(TS_TST_INFO *,GENERAL_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_tsa", "(TS_TST_INFO *,GENERAL_NAME *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "TS_TST_INFO_set_version", "(TS_TST_INFO *,long)", "", "Argument[1]", "Argument[*0].Field[**version].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_add_flags", "(TS_VERIFY_CTX *,int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_add_flags", "(TS_VERIFY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_add_flags", "(TS_VERIFY_CTX *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set0_certs", "(TS_VERIFY_CTX *,stack_st_X509 *)", "", "Argument[*1]", "Argument[*0].Field[**certs]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set0_certs", "(TS_VERIFY_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[*certs]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set0_data", "(TS_VERIFY_CTX *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set0_data", "(TS_VERIFY_CTX *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set0_imprint", "(TS_VERIFY_CTX *,unsigned char *,long)", "", "Argument[*1]", "Argument[*0].Field[**imprint]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set0_imprint", "(TS_VERIFY_CTX *,unsigned char *,long)", "", "Argument[1]", "Argument[*0].Field[*imprint]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set0_imprint", "(TS_VERIFY_CTX *,unsigned char *,long)", "", "Argument[2]", "Argument[*0].Field[*imprint_len]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set0_store", "(TS_VERIFY_CTX *,X509_STORE *)", "", "Argument[*1]", "Argument[*0].Field[**store]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set0_store", "(TS_VERIFY_CTX *,X509_STORE *)", "", "Argument[1]", "Argument[*0].Field[*store]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_certs", "(TS_VERIFY_CTX *,stack_st_X509 *)", "", "Argument[*0].Field[**certs]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_certs", "(TS_VERIFY_CTX *,stack_st_X509 *)", "", "Argument[*0].Field[*certs]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_certs", "(TS_VERIFY_CTX *,stack_st_X509 *)", "", "Argument[*1]", "Argument[*0].Field[**certs]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_certs", "(TS_VERIFY_CTX *,stack_st_X509 *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_certs", "(TS_VERIFY_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[*certs]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_certs", "(TS_VERIFY_CTX *,stack_st_X509 *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_data", "(TS_VERIFY_CTX *,BIO *)", "", "Argument[*0].Field[**data]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_data", "(TS_VERIFY_CTX *,BIO *)", "", "Argument[*0].Field[*data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_data", "(TS_VERIFY_CTX *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_data", "(TS_VERIFY_CTX *,BIO *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_data", "(TS_VERIFY_CTX *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_data", "(TS_VERIFY_CTX *,BIO *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_flags", "(TS_VERIFY_CTX *,int)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_flags", "(TS_VERIFY_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_flags", "(TS_VERIFY_CTX *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_imprint", "(TS_VERIFY_CTX *,unsigned char *,long)", "", "Argument[*1]", "Argument[*0].Field[**imprint]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_imprint", "(TS_VERIFY_CTX *,unsigned char *,long)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_imprint", "(TS_VERIFY_CTX *,unsigned char *,long)", "", "Argument[1]", "Argument[*0].Field[*imprint]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_imprint", "(TS_VERIFY_CTX *,unsigned char *,long)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_imprint", "(TS_VERIFY_CTX *,unsigned char *,long)", "", "Argument[2]", "Argument[*0].Field[*imprint_len]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_store", "(TS_VERIFY_CTX *,X509_STORE *)", "", "Argument[*0].Field[**store]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_store", "(TS_VERIFY_CTX *,X509_STORE *)", "", "Argument[*0].Field[*store]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_store", "(TS_VERIFY_CTX *,X509_STORE *)", "", "Argument[*1]", "Argument[*0].Field[**store]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_store", "(TS_VERIFY_CTX *,X509_STORE *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_store", "(TS_VERIFY_CTX *,X509_STORE *)", "", "Argument[1]", "Argument[*0].Field[*store]", "value", "dfc-generated"] + - ["", "", True, "TS_VERIFY_CTX_set_store", "(TS_VERIFY_CTX *,X509_STORE *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "TS_ext_print_bio", "(BIO *,const stack_st_X509_EXTENSION *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "TXT_DB_create_index", "(TXT_DB *,int,..(*)(..),OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC)", "", "Argument[2]", "Argument[*0].Field[**qual]", "value", "dfc-generated"] + - ["", "", True, "TXT_DB_create_index", "(TXT_DB *,int,..(*)(..),OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC)", "", "Argument[3]", "Argument[*0].Field[***index].Field[*hash]", "value", "dfc-generated"] + - ["", "", True, "TXT_DB_create_index", "(TXT_DB *,int,..(*)(..),OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC)", "", "Argument[4]", "Argument[*0].Field[***index].Field[*comp]", "value", "dfc-generated"] + - ["", "", True, "TXT_DB_insert", "(TXT_DB *,OPENSSL_STRING *)", "", "Argument[*1]", "Argument[*0].Field[**data].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "TXT_DB_insert", "(TXT_DB *,OPENSSL_STRING *)", "", "Argument[1]", "Argument[*0].Field[**data].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "TXT_DB_read", "(BIO *,int)", "", "Argument[1]", "ReturnValue[*].Field[**data].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "TXT_DB_read", "(BIO *,int)", "", "Argument[1]", "ReturnValue[*].Field[**data].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "TXT_DB_read", "(BIO *,int)", "", "Argument[1]", "ReturnValue[*].Field[*num_fields]", "value", "dfc-generated"] + - ["", "", True, "UI_add_error_string", "(UI *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_add_info_string", "(UI *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_add_input_boolean", "(UI *,const char *,const char *,const char *,const char *,int,char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_add_input_string", "(UI *,const char *,int,char *,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_add_user_data", "(UI *,void *)", "", "Argument[**1]", "Argument[*0].Field[***user_data]", "value", "dfc-generated"] + - ["", "", True, "UI_add_user_data", "(UI *,void *)", "", "Argument[*1]", "Argument[*0].Field[**user_data]", "value", "dfc-generated"] + - ["", "", True, "UI_add_user_data", "(UI *,void *)", "", "Argument[1]", "Argument[*0].Field[*user_data]", "value", "dfc-generated"] + - ["", "", True, "UI_add_verify_string", "(UI *,const char *,int,char *,int,int,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_construct_prompt", "(UI *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "UI_construct_prompt", "(UI *,const char *,const char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "UI_construct_prompt", "(UI *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "UI_construct_prompt", "(UI *,const char *,const char *)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "UI_create_method", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "UI_create_method", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "UI_dup_error_string", "(UI *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_dup_info_string", "(UI *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_dup_input_boolean", "(UI *,const char *,const char *,const char *,const char *,int,char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_dup_input_string", "(UI *,const char *,int,char *,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_dup_verify_string", "(UI *,const char *,int,char *,int,int,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_get0_output_string", "(UI_STRING *)", "", "Argument[*0].Field[**out_string]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "UI_get0_output_string", "(UI_STRING *)", "", "Argument[*0].Field[*out_string]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_get0_result_string", "(UI_STRING *)", "", "Argument[*0].Field[**result_buf]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "UI_get0_result_string", "(UI_STRING *)", "", "Argument[*0].Field[*result_buf]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_get0_user_data", "(UI *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "UI_get0_user_data", "(UI *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "UI_get0_user_data", "(UI *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "UI_get_ex_data", "(const UI *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "UI_get_input_flags", "(UI_STRING *)", "", "Argument[*0].Field[*input_flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_get_method", "(UI *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "UI_get_method", "(UI *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_get_result_string_length", "(UI_STRING *)", "", "Argument[*0].Field[*result_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_get_string_type", "(UI_STRING *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_method_get_closer", "(const UI_METHOD *)", "", "Argument[*0].Field[*ui_close_session]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_method_get_data_destructor", "(const UI_METHOD *)", "", "Argument[*0].Field[*ui_destroy_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_method_get_data_duplicator", "(const UI_METHOD *)", "", "Argument[*0].Field[*ui_duplicate_data]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_method_get_ex_data", "(const UI_METHOD *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "UI_method_get_flusher", "(const UI_METHOD *)", "", "Argument[*0].Field[*ui_flush]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_method_get_opener", "(const UI_METHOD *)", "", "Argument[*0].Field[*ui_open_session]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_method_get_prompt_constructor", "(const UI_METHOD *)", "", "Argument[*0].Field[*ui_construct_prompt]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_method_get_reader", "(const UI_METHOD *)", "", "Argument[*0].Field[*ui_read_string]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_method_get_writer", "(const UI_METHOD *)", "", "Argument[*0].Field[*ui_write_string]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_method_set_closer", "(UI_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ui_close_session]", "value", "dfc-generated"] + - ["", "", True, "UI_method_set_data_duplicator", "(UI_METHOD *,..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ui_duplicate_data]", "value", "dfc-generated"] + - ["", "", True, "UI_method_set_data_duplicator", "(UI_METHOD *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*ui_destroy_data]", "value", "dfc-generated"] + - ["", "", True, "UI_method_set_flusher", "(UI_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ui_flush]", "value", "dfc-generated"] + - ["", "", True, "UI_method_set_opener", "(UI_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ui_open_session]", "value", "dfc-generated"] + - ["", "", True, "UI_method_set_prompt_constructor", "(UI_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ui_construct_prompt]", "value", "dfc-generated"] + - ["", "", True, "UI_method_set_reader", "(UI_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ui_read_string]", "value", "dfc-generated"] + - ["", "", True, "UI_method_set_writer", "(UI_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*ui_write_string]", "value", "dfc-generated"] + - ["", "", True, "UI_new_method", "(const UI_METHOD *)", "", "Argument[*0]", "ReturnValue[*].Field[**meth]", "value", "dfc-generated"] + - ["", "", True, "UI_new_method", "(const UI_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "UI_set_method", "(UI *,const UI_METHOD *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "UI_set_method", "(UI *,const UI_METHOD *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_set_method", "(UI *,const UI_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**meth]", "value", "dfc-generated"] + - ["", "", True, "UI_set_method", "(UI *,const UI_METHOD *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "UI_set_method", "(UI *,const UI_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "UI_set_method", "(UI *,const UI_METHOD *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "UI_set_result", "(UI *,UI_STRING *,const char *)", "", "Argument[*2]", "Argument[*1].Field[**result_buf]", "value", "dfc-generated"] + - ["", "", True, "UI_set_result", "(UI *,UI_STRING *,const char *)", "", "Argument[2]", "Argument[*1].Field[**result_buf]", "taint", "dfc-generated"] + - ["", "", True, "UI_set_result_ex", "(UI *,UI_STRING *,const char *,int)", "", "Argument[*2]", "Argument[*1].Field[**result_buf]", "value", "dfc-generated"] + - ["", "", True, "UI_set_result_ex", "(UI *,UI_STRING *,const char *,int)", "", "Argument[2]", "Argument[*1].Field[**result_buf]", "taint", "dfc-generated"] + - ["", "", True, "UI_set_result_ex", "(UI *,UI_STRING *,const char *,int)", "", "Argument[3]", "Argument[*1].Field[*result_len]", "value", "dfc-generated"] + - ["", "", True, "USERNOTICE_free", "(USERNOTICE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "USERNOTICE_free", "(USERNOTICE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "UTF8_getc", "(const unsigned char *,int,unsigned long *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "UTF8_getc", "(const unsigned char *,int,unsigned long *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "UTF8_putc", "(unsigned char *,int,unsigned long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "UTF8_putc", "(unsigned char *,int,unsigned long)", "", "Argument[2]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "WHIRLPOOL", "(const void *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "WHIRLPOOL", "(const void *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "WHIRLPOOL_BitUpdate", "(WHIRLPOOL_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "WHIRLPOOL_BitUpdate", "(WHIRLPOOL_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "WHIRLPOOL_BitUpdate", "(WHIRLPOOL_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*bitlen]", "taint", "dfc-generated"] + - ["", "", True, "WHIRLPOOL_BitUpdate", "(WHIRLPOOL_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*bitoff]", "taint", "dfc-generated"] + - ["", "", True, "WHIRLPOOL_BitUpdate", "(WHIRLPOOL_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "WHIRLPOOL_Final", "(unsigned char *,WHIRLPOOL_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "WHIRLPOOL_Update", "(WHIRLPOOL_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "WHIRLPOOL_Update", "(WHIRLPOOL_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "WHIRLPOOL_Update", "(WHIRLPOOL_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*bitlen]", "taint", "dfc-generated"] + - ["", "", True, "WHIRLPOOL_Update", "(WHIRLPOOL_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*bitoff]", "taint", "dfc-generated"] + - ["", "", True, "WHIRLPOOL_Update", "(WHIRLPOOL_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*data]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_allocate_bytes", "(WPACKET *,size_t,unsigned char **)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_allocate_bytes", "(WPACKET *,size_t,unsigned char **)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_allocate_bytes", "(WPACKET *,size_t,unsigned char **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_get_curr", "(WPACKET *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "WPACKET_get_curr", "(WPACKET *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "WPACKET_get_length", "(WPACKET *,size_t *)", "", "Argument[*0].Field[**subs].Field[*pwritten]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_get_length", "(WPACKET *,size_t *)", "", "Argument[*0].Field[*written]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_get_total_written", "(WPACKET *,size_t *)", "", "Argument[*0].Field[*written]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_init", "(WPACKET *,BUF_MEM *)", "", "Argument[1]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_init_der", "(WPACKET *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**staticbuf]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_init_der", "(WPACKET *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*staticbuf]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_init_der", "(WPACKET *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*maxsize]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_init_len", "(WPACKET *,BUF_MEM *,size_t)", "", "Argument[1]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_init_null", "(WPACKET *,size_t)", "", "Argument[1]", "Argument[*0].Field[*maxsize]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_init_static_len", "(WPACKET *,unsigned char *,size_t,size_t)", "", "Argument[*1]", "Argument[*0].Field[**staticbuf]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_init_static_len", "(WPACKET *,unsigned char *,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*staticbuf]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_init_static_len", "(WPACKET *,unsigned char *,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[*maxsize]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_memcpy", "(WPACKET *,const void *,size_t)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_memcpy", "(WPACKET *,const void *,size_t)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_memset", "(WPACKET *,int,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "WPACKET_put_bytes__", "(WPACKET *,uint64_t,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "WPACKET_quic_sub_allocate_bytes", "(WPACKET *,size_t,unsigned char **)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_quic_sub_allocate_bytes", "(WPACKET *,size_t,unsigned char **)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_quic_sub_allocate_bytes", "(WPACKET *,size_t,unsigned char **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_reserve_bytes", "(WPACKET *,size_t,unsigned char **)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_reserve_bytes", "(WPACKET *,size_t,unsigned char **)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_reserve_bytes", "(WPACKET *,size_t,unsigned char **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_set_flags", "(WPACKET *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[**subs].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_set_max_size", "(WPACKET *,size_t)", "", "Argument[1]", "Argument[*0].Field[*maxsize]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_start_sub_packet", "(WPACKET *)", "", "Argument[*0].Field[**subs]", "Argument[*0].Field[**subs].Field[**parent]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_start_sub_packet", "(WPACKET *)", "", "Argument[*0].Field[*subs]", "Argument[*0].Field[**subs].Field[*parent]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_start_sub_packet_len__", "(WPACKET *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "WPACKET_sub_allocate_bytes__", "(WPACKET *,size_t,unsigned char **,size_t)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_sub_allocate_bytes__", "(WPACKET *,size_t,unsigned char **,size_t)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_sub_allocate_bytes__", "(WPACKET *,size_t,unsigned char **,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_sub_memcpy__", "(WPACKET *,const void *,size_t,size_t)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "WPACKET_sub_memcpy__", "(WPACKET *,const void *,size_t,size_t)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_sub_reserve_bytes__", "(WPACKET *,size_t,unsigned char **,size_t)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_sub_reserve_bytes__", "(WPACKET *,size_t,unsigned char **,size_t)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "WPACKET_sub_reserve_bytes__", "(WPACKET *,size_t,unsigned char **,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_EXT_add_list", "(X509V3_EXT_METHOD *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_EXT_add_nconf_sk", "(CONF *,X509V3_CTX *,const char *,stack_st_X509_EXTENSION **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_EXT_conf_nid", "(lhash_st_CONF_VALUE *,X509V3_CTX *,int,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**object]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_EXT_conf_nid", "(lhash_st_CONF_VALUE *,X509V3_CTX *,int,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*object]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_EXT_d2i", "(X509_EXTENSION *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509V3_EXT_d2i", "(X509_EXTENSION *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509V3_EXT_i2d", "(int,int,void *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "X509V3_EXT_i2d", "(int,int,void *)", "", "Argument[0]", "ReturnValue[*].Field[**object]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_EXT_i2d", "(int,int,void *)", "", "Argument[0]", "ReturnValue[*].Field[*object]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_EXT_nconf_nid", "(CONF *,X509V3_CTX *,int,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**object]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_EXT_nconf_nid", "(CONF *,X509V3_CTX *,int,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*object]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_EXT_nconf_nid", "(CONF *,X509V3_CTX *,int,const char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_EXT_print", "(BIO *,X509_EXTENSION *,unsigned long,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add1_i2d", "(stack_st_X509_EXTENSION **,int,void *,int,unsigned long)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "X509V3_add1_i2d", "(stack_st_X509_EXTENSION **,int,void *,int,unsigned long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value", "(const char *,const char *,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**2].Field[***data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value", "(const char *,const char *,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**2].Field[**data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value", "(const char *,const char *,stack_st_CONF_VALUE **)", "", "Argument[*1]", "Argument[**2].Field[***data].Field[**value]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value", "(const char *,const char *,stack_st_CONF_VALUE **)", "", "Argument[*1]", "Argument[**2].Field[**data].Field[**value]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value", "(const char *,const char *,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**2].Field[***data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value", "(const char *,const char *,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**2].Field[**data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value", "(const char *,const char *,stack_st_CONF_VALUE **)", "", "Argument[1]", "Argument[**2].Field[***data].Field[**value]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value", "(const char *,const char *,stack_st_CONF_VALUE **)", "", "Argument[1]", "Argument[**2].Field[**data].Field[**value]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value", "(const char *,const char *,stack_st_CONF_VALUE **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_bool", "(const char *,int,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**2].Field[***data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value_bool", "(const char *,int,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**2].Field[**data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value_bool", "(const char *,int,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**2].Field[***data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_bool", "(const char *,int,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**2].Field[**data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_bool", "(const char *,int,stack_st_CONF_VALUE **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_bool_nf", "(const char *,int,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**2].Field[***data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value_bool_nf", "(const char *,int,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**2].Field[**data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value_bool_nf", "(const char *,int,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**2].Field[***data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_bool_nf", "(const char *,int,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**2].Field[**data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_bool_nf", "(const char *,int,stack_st_CONF_VALUE **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_int", "(const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**2].Field[***data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value_int", "(const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**2].Field[**data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value_int", "(const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**2].Field[***data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_int", "(const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**2].Field[**data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_int", "(const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_uchar", "(const char *,const unsigned char *,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**2].Field[***data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value_uchar", "(const char *,const unsigned char *,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**2].Field[**data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value_uchar", "(const char *,const unsigned char *,stack_st_CONF_VALUE **)", "", "Argument[*1]", "Argument[**2].Field[***data].Field[**value]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value_uchar", "(const char *,const unsigned char *,stack_st_CONF_VALUE **)", "", "Argument[*1]", "Argument[**2].Field[**data].Field[**value]", "value", "dfc-generated"] + - ["", "", True, "X509V3_add_value_uchar", "(const char *,const unsigned char *,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**2].Field[***data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_uchar", "(const char *,const unsigned char *,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**2].Field[**data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_uchar", "(const char *,const unsigned char *,stack_st_CONF_VALUE **)", "", "Argument[1]", "Argument[**2].Field[***data].Field[**value]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_uchar", "(const char *,const unsigned char *,stack_st_CONF_VALUE **)", "", "Argument[1]", "Argument[**2].Field[**data].Field[**value]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_add_value_uchar", "(const char *,const unsigned char *,stack_st_CONF_VALUE **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_extensions_print", "(BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509V3_get_d2i", "(const stack_st_X509_EXTENSION *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "X509V3_parse_list", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509V3_parse_list", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509V3_set_conf_lhash", "(X509V3_CTX *,lhash_st_CONF_VALUE *)", "", "Argument[*1]", "Argument[*0].Field[**db]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_conf_lhash", "(X509V3_CTX *,lhash_st_CONF_VALUE *)", "", "Argument[1]", "Argument[*0].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_ctx", "(X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int)", "", "Argument[*1]", "Argument[*0].Field[**issuer_cert]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_ctx", "(X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int)", "", "Argument[*2]", "Argument[*0].Field[**subject_cert]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_ctx", "(X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int)", "", "Argument[*3]", "Argument[*0].Field[**subject_req]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_ctx", "(X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int)", "", "Argument[*4]", "Argument[*0].Field[**crl]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_ctx", "(X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int)", "", "Argument[1]", "Argument[*0].Field[*issuer_cert]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_ctx", "(X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int)", "", "Argument[2]", "Argument[*0].Field[*subject_cert]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_ctx", "(X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int)", "", "Argument[3]", "Argument[*0].Field[*subject_req]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_ctx", "(X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int)", "", "Argument[4]", "Argument[*0].Field[*crl]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_ctx", "(X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int)", "", "Argument[5]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_issuer_pkey", "(X509V3_CTX *,EVP_PKEY *)", "", "Argument[*1]", "Argument[*0].Field[**issuer_pkey]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_issuer_pkey", "(X509V3_CTX *,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[*issuer_pkey]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_nconf", "(X509V3_CTX *,CONF *)", "", "Argument[*1]", "Argument[*0].Field[**db]", "value", "dfc-generated"] + - ["", "", True, "X509V3_set_nconf", "(X509V3_CTX *,CONF *)", "", "Argument[1]", "Argument[*0].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_INFO_free", "(X509_ACERT_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_ACERT_INFO_free", "(X509_ACERT_INFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_ACERT_ISSUER_V2FORM_free", "(X509_ACERT_ISSUER_V2FORM *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_ACERT_ISSUER_V2FORM_free", "(X509_ACERT_ISSUER_V2FORM *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_ACERT_add1_attr", "(X509_ACERT *,X509_ATTRIBUTE *)", "", "Argument[*0].Field[**acinfo].Field[*attributes]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_add1_attr", "(X509_ACERT *,X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_ACERT_add1_attr_by_NID", "(X509_ACERT *,int,int,const void *,int)", "", "Argument[*0].Field[**acinfo].Field[*attributes]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_add1_attr_by_OBJ", "(X509_ACERT *,const ASN1_OBJECT *,int,const void *,int)", "", "Argument[*0].Field[**acinfo].Field[*attributes]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_add1_attr_by_txt", "(X509_ACERT *,const char *,int,const unsigned char *,int)", "", "Argument[*0].Field[**acinfo].Field[*attributes]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_add1_ext_i2d", "(X509_ACERT *,int,void *,int,unsigned long)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "X509_ACERT_add_attr_nconf", "(CONF *,const char *,X509_ACERT *)", "", "Argument[*2].Field[**acinfo].Field[*attributes]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_delete_attr", "(X509_ACERT *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_delete_attr", "(X509_ACERT *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_dup", "(const X509_ACERT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_ACERT_dup", "(const X509_ACERT *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_ACERT_dup", "(const X509_ACERT *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_ACERT_dup", "(const X509_ACERT *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_ACERT_dup", "(const X509_ACERT *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_ACERT_free", "(X509_ACERT *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_ACERT_free", "(X509_ACERT *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_ACERT_get0_extensions", "(const X509_ACERT *)", "", "Argument[*0].Field[**acinfo].Field[**extensions]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_get0_extensions", "(const X509_ACERT *)", "", "Argument[*0].Field[**acinfo].Field[*extensions]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_get0_info_sigalg", "(const X509_ACERT *)", "", "Argument[*0].Field[**acinfo].Field[*signature]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_get0_issuerUID", "(const X509_ACERT *)", "", "Argument[*0].Field[**acinfo].Field[**issuerUID]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_get0_issuerUID", "(const X509_ACERT *)", "", "Argument[*0].Field[**acinfo].Field[*issuerUID]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_get0_serialNumber", "(const X509_ACERT *)", "", "Argument[*0].Field[**acinfo].Field[*serialNumber]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_get0_signature", "(const X509_ACERT *,const ASN1_BIT_STRING **,const X509_ALGOR **)", "", "Argument[*0].Field[*sig_alg]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_get0_signature", "(const X509_ACERT *,const ASN1_BIT_STRING **,const X509_ALGOR **)", "", "Argument[*0].Field[*signature]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_get_attr", "(const X509_ACERT *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_get_attr_by_NID", "(const X509_ACERT *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_get_attr_by_OBJ", "(const X509_ACERT *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_get_ext_d2i", "(const X509_ACERT *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "X509_ACERT_print", "(BIO *,X509_ACERT *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_print_ex", "(BIO *,X509_ACERT *,unsigned long,unsigned long)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_ACERT_set1_issuerName", "(X509_ACERT *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_ACERT_sign", "(X509_ACERT *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_ACERT_sign_ctx", "(X509_ACERT *,EVP_MD_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "X509_ALGOR_cmp", "(const X509_ALGOR *,const X509_ALGOR *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_ALGOR_cmp", "(const X509_ALGOR *,const X509_ALGOR *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_ALGOR_copy", "(X509_ALGOR *,const X509_ALGOR *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_ALGOR_dup", "(const X509_ALGOR *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_ALGOR_dup", "(const X509_ALGOR *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_ALGOR_dup", "(const X509_ALGOR *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_ALGOR_dup", "(const X509_ALGOR *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_ALGOR_dup", "(const X509_ALGOR *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_ALGOR_free", "(X509_ALGOR *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_ALGOR_free", "(X509_ALGOR *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_ALGOR_get0", "(const ASN1_OBJECT **,int *,const void **,const X509_ALGOR *)", "", "Argument[*3]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "X509_ALGOR_get0", "(const ASN1_OBJECT **,int *,const void **,const X509_ALGOR *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_ALGOR_get0", "(const ASN1_OBJECT **,int *,const void **,const X509_ALGOR *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "X509_ALGOR_set0", "(X509_ALGOR *,ASN1_OBJECT *,int,void *)", "", "Argument[*1]", "Argument[*0].Field[**algorithm]", "value", "dfc-generated"] + - ["", "", True, "X509_ALGOR_set0", "(X509_ALGOR *,ASN1_OBJECT *,int,void *)", "", "Argument[1]", "Argument[*0].Field[*algorithm]", "value", "dfc-generated"] + - ["", "", True, "X509_ALGOR_set0", "(X509_ALGOR *,ASN1_OBJECT *,int,void *)", "", "Argument[2]", "Argument[*0].Field[**parameter].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "X509_ALGOR_set_md", "(X509_ALGOR *,const EVP_MD *)", "", "Argument[*1].Field[*type]", "Argument[*0].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "X509_ALGOR_set_md", "(X509_ALGOR *,const EVP_MD *)", "", "Argument[*1].Field[*type]", "Argument[*0].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_count", "(const X509_ATTRIBUTE *)", "", "Argument[*0].Field[**set].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create", "(int,int,void *)", "", "Argument[0]", "ReturnValue[*].Field[**object]", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create", "(int,int,void *)", "", "Argument[0]", "ReturnValue[*].Field[*object]", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_NID", "(X509_ATTRIBUTE **,int,int,const void *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_NID", "(X509_ATTRIBUTE **,int,int,const void *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_NID", "(X509_ATTRIBUTE **,int,int,const void *,int)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_NID", "(X509_ATTRIBUTE **,int,int,const void *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_NID", "(X509_ATTRIBUTE **,int,int,const void *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_NID", "(X509_ATTRIBUTE **,int,int,const void *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_OBJ", "(X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_OBJ", "(X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_OBJ", "(X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_OBJ", "(X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_OBJ", "(X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_OBJ", "(X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_OBJ", "(X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int)", "", "Argument[1]", "Argument[**0].Field[*object]", "value", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_OBJ", "(X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int)", "", "Argument[1]", "ReturnValue[*].Field[*object]", "value", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_txt", "(X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_txt", "(X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_txt", "(X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_txt", "(X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_txt", "(X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_create_by_txt", "(X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_dup", "(const X509_ATTRIBUTE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_dup", "(const X509_ATTRIBUTE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_dup", "(const X509_ATTRIBUTE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_dup", "(const X509_ATTRIBUTE *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_dup", "(const X509_ATTRIBUTE *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_free", "(X509_ATTRIBUTE *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_free", "(X509_ATTRIBUTE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_ATTRIBUTE_get0_object", "(X509_ATTRIBUTE *)", "", "Argument[*0].Field[**object]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_get0_object", "(X509_ATTRIBUTE *)", "", "Argument[*0].Field[*object]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_get0_type", "(X509_ATTRIBUTE *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_set1_object", "(X509_ATTRIBUTE *,const ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[*object]", "value", "dfc-generated"] + - ["", "", True, "X509_ATTRIBUTE_set1_object", "(X509_ATTRIBUTE *,const ASN1_OBJECT *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_CERT_AUX_free", "(X509_CERT_AUX *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_CERT_AUX_free", "(X509_CERT_AUX *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_CINF_free", "(X509_CINF *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_CINF_free", "(X509_CINF *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_CRL_INFO_free", "(X509_CRL_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_CRL_INFO_free", "(X509_CRL_INFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_CRL_METHOD_new", "(..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[0]", "ReturnValue[*].Field[*crl_init]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_METHOD_new", "(..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "ReturnValue[*].Field[*crl_free]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_METHOD_new", "(..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[2]", "ReturnValue[*].Field[*crl_lookup]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_METHOD_new", "(..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[3]", "ReturnValue[*].Field[*crl_verify]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_add1_ext_i2d", "(X509_CRL *,int,void *,int,unsigned long)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "X509_CRL_add_ext", "(X509_CRL *,X509_EXTENSION *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_CRL_add_ext", "(X509_CRL *,X509_EXTENSION *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_CRL_cmp", "(const X509_CRL *,const X509_CRL *)", "", "Argument[*1].Field[*crl].Field[**issuer]", "Argument[*1].Field[*crl].Field[*issuer]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_delete_ext", "(X509_CRL *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_CRL_delete_ext", "(X509_CRL *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_CRL_diff", "(X509_CRL *,X509_CRL *,EVP_PKEY *,const EVP_MD *,unsigned int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_CRL_digest", "(const X509_CRL *,const EVP_MD *,unsigned char *,unsigned int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "X509_CRL_digest", "(const X509_CRL *,const EVP_MD *,unsigned char *,unsigned int *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_CRL_dup", "(const X509_CRL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_CRL_dup", "(const X509_CRL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_CRL_dup", "(const X509_CRL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_CRL_dup", "(const X509_CRL *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_CRL_dup", "(const X509_CRL *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_CRL_free", "(X509_CRL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_CRL_free", "(X509_CRL *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_CRL_get0_extensions", "(const X509_CRL *)", "", "Argument[*0].Field[*crl].Field[**extensions]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get0_extensions", "(const X509_CRL *)", "", "Argument[*0].Field[*crl].Field[*extensions]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get0_lastUpdate", "(const X509_CRL *)", "", "Argument[*0].Field[*crl].Field[**lastUpdate]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get0_lastUpdate", "(const X509_CRL *)", "", "Argument[*0].Field[*crl].Field[*lastUpdate]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get0_nextUpdate", "(const X509_CRL *)", "", "Argument[*0].Field[*crl].Field[**nextUpdate]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get0_nextUpdate", "(const X509_CRL *)", "", "Argument[*0].Field[*crl].Field[*nextUpdate]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get0_signature", "(const X509_CRL *,const ASN1_BIT_STRING **,const X509_ALGOR **)", "", "Argument[*0].Field[*sig_alg]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get0_signature", "(const X509_CRL *,const ASN1_BIT_STRING **,const X509_ALGOR **)", "", "Argument[*0].Field[*signature]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get_REVOKED", "(X509_CRL *)", "", "Argument[*0].Field[*crl].Field[**revoked]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get_REVOKED", "(X509_CRL *)", "", "Argument[*0].Field[*crl].Field[*revoked]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get_ext", "(const X509_CRL *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_CRL_get_ext_by_NID", "(const X509_CRL *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_CRL_get_ext_by_OBJ", "(const X509_CRL *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_CRL_get_ext_by_critical", "(const X509_CRL *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_CRL_get_ext_d2i", "(const X509_CRL *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "X509_CRL_get_issuer", "(const X509_CRL *)", "", "Argument[*0].Field[*crl].Field[**issuer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get_issuer", "(const X509_CRL *)", "", "Argument[*0].Field[*crl].Field[*issuer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get_lastUpdate", "(X509_CRL *)", "", "Argument[*0].Field[*crl].Field[**lastUpdate]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get_lastUpdate", "(X509_CRL *)", "", "Argument[*0].Field[*crl].Field[*lastUpdate]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get_meth_data", "(X509_CRL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_CRL_get_meth_data", "(X509_CRL *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "X509_CRL_get_meth_data", "(X509_CRL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_CRL_get_nextUpdate", "(X509_CRL *)", "", "Argument[*0].Field[*crl].Field[**nextUpdate]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_get_nextUpdate", "(X509_CRL *)", "", "Argument[*0].Field[*crl].Field[*nextUpdate]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_load_http", "(const char *,BIO *,BIO *,int)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "X509_CRL_load_http", "(const char *,BIO *,BIO *,int)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "X509_CRL_load_http", "(const char *,BIO *,BIO *,int)", "", "Argument[1]", "Argument[*1].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_load_http", "(const char *,BIO *,BIO *,int)", "", "Argument[1]", "Argument[*2].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "X509_CRL_print", "(BIO *,X509_CRL *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_print_ex", "(BIO *,X509_CRL *,unsigned long)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_set_issuer_name", "(X509_CRL *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_CRL_set_meth_data", "(X509_CRL *,void *)", "", "Argument[**1]", "Argument[*0].Field[***meth_data]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_set_meth_data", "(X509_CRL *,void *)", "", "Argument[*1]", "Argument[*0].Field[**meth_data]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_set_meth_data", "(X509_CRL *,void *)", "", "Argument[1]", "Argument[*0].Field[*meth_data]", "value", "dfc-generated"] + - ["", "", True, "X509_CRL_sign", "(X509_CRL *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_CRL_sign_ctx", "(X509_CRL *,EVP_MD_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_create_by_NID", "(X509_EXTENSION **,int,int,ASN1_OCTET_STRING *)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_EXTENSION_create_by_NID", "(X509_EXTENSION **,int,int,ASN1_OCTET_STRING *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "X509_EXTENSION_create_by_NID", "(X509_EXTENSION **,int,int,ASN1_OCTET_STRING *)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "X509_EXTENSION_create_by_NID", "(X509_EXTENSION **,int,int,ASN1_OCTET_STRING *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_create_by_NID", "(X509_EXTENSION **,int,int,ASN1_OCTET_STRING *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_create_by_NID", "(X509_EXTENSION **,int,int,ASN1_OCTET_STRING *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_create_by_OBJ", "(X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_EXTENSION_create_by_OBJ", "(X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "X509_EXTENSION_create_by_OBJ", "(X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "X509_EXTENSION_create_by_OBJ", "(X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_create_by_OBJ", "(X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_create_by_OBJ", "(X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_create_by_OBJ", "(X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *)", "", "Argument[1]", "Argument[**0].Field[*object]", "value", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_create_by_OBJ", "(X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *)", "", "Argument[1]", "ReturnValue[*].Field[*object]", "value", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_dup", "(const X509_EXTENSION *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_EXTENSION_dup", "(const X509_EXTENSION *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_EXTENSION_dup", "(const X509_EXTENSION *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_EXTENSION_dup", "(const X509_EXTENSION *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_EXTENSION_dup", "(const X509_EXTENSION *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_EXTENSION_free", "(X509_EXTENSION *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_EXTENSION_free", "(X509_EXTENSION *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_EXTENSION_get_data", "(X509_EXTENSION *)", "", "Argument[*0].Field[*value]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_get_object", "(X509_EXTENSION *)", "", "Argument[*0].Field[**object]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_get_object", "(X509_EXTENSION *)", "", "Argument[*0].Field[*object]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_set_data", "(X509_EXTENSION *,ASN1_OCTET_STRING *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_EXTENSION_set_object", "(X509_EXTENSION *,const ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[*object]", "value", "dfc-generated"] + - ["", "", True, "X509_EXTENSION_set_object", "(X509_EXTENSION *,const ASN1_OBJECT *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_get_method_data", "(const X509_LOOKUP *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_LOOKUP_get_method_data", "(const X509_LOOKUP *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "X509_LOOKUP_get_method_data", "(const X509_LOOKUP *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_LOOKUP_get_store", "(const X509_LOOKUP *)", "", "Argument[*0].Field[**store_ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_get_store", "(const X509_LOOKUP *)", "", "Argument[*0].Field[*store_ctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_get_ctrl", "(const X509_LOOKUP_METHOD *)", "", "Argument[*0].Field[*ctrl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_get_free", "(const X509_LOOKUP_METHOD *)", "", "Argument[*0].Field[*free]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_get_get_by_alias", "(const X509_LOOKUP_METHOD *)", "", "Argument[*0].Field[*get_by_alias]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_get_get_by_fingerprint", "(const X509_LOOKUP_METHOD *)", "", "Argument[*0].Field[*get_by_fingerprint]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_get_get_by_issuer_serial", "(const X509_LOOKUP_METHOD *)", "", "Argument[*0].Field[*get_by_issuer_serial]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_get_get_by_subject", "(const X509_LOOKUP_METHOD *)", "", "Argument[*0].Field[*get_by_subject]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_get_init", "(const X509_LOOKUP_METHOD *)", "", "Argument[*0].Field[*init]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_get_new_item", "(const X509_LOOKUP_METHOD *)", "", "Argument[*0].Field[*new_item]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_get_shutdown", "(const X509_LOOKUP_METHOD *)", "", "Argument[*0].Field[*shutdown]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_new", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_new", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_set_ctrl", "(X509_LOOKUP_METHOD *,X509_LOOKUP_ctrl_fn)", "", "Argument[1]", "Argument[*0].Field[*ctrl]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_set_free", "(X509_LOOKUP_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*free]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_set_get_by_alias", "(X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_alias_fn)", "", "Argument[1]", "Argument[*0].Field[*get_by_alias]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_set_get_by_fingerprint", "(X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_fingerprint_fn)", "", "Argument[1]", "Argument[*0].Field[*get_by_fingerprint]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_set_get_by_issuer_serial", "(X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_issuer_serial_fn)", "", "Argument[1]", "Argument[*0].Field[*get_by_issuer_serial]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_set_get_by_subject", "(X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_subject_fn)", "", "Argument[1]", "Argument[*0].Field[*get_by_subject]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_set_init", "(X509_LOOKUP_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*init]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_set_new_item", "(X509_LOOKUP_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*new_item]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_meth_set_shutdown", "(X509_LOOKUP_METHOD *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*shutdown]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_new", "(X509_LOOKUP_METHOD *)", "", "Argument[*0]", "ReturnValue[*].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_new", "(X509_LOOKUP_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_set_method_data", "(X509_LOOKUP *,void *)", "", "Argument[**1]", "Argument[*0].Field[***method_data]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_set_method_data", "(X509_LOOKUP *,void *)", "", "Argument[*1]", "Argument[*0].Field[**method_data]", "value", "dfc-generated"] + - ["", "", True, "X509_LOOKUP_set_method_data", "(X509_LOOKUP *,void *)", "", "Argument[1]", "Argument[*0].Field[*method_data]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[*3]", "Argument[**0].Field[**value].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[*3]", "ReturnValue[*].Field[**value].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[2]", "Argument[**0].Field[**value].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[2]", "ReturnValue[*].Field[**value].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[3]", "Argument[**0].Field[**value].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[3]", "ReturnValue[*].Field[**value].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[4]", "Argument[**0].Field[**value].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_NID", "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)", "", "Argument[4]", "ReturnValue[*].Field[**value].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[*3]", "Argument[**0].Field[**value].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[*3]", "ReturnValue[*].Field[**value].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[1]", "Argument[**0].Field[*object]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[1]", "ReturnValue[*].Field[*object]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[2]", "Argument[**0].Field[**value].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[2]", "ReturnValue[*].Field[**value].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[3]", "Argument[**0].Field[**value].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[3]", "ReturnValue[*].Field[**value].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[4]", "Argument[**0].Field[**value].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_OBJ", "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[4]", "ReturnValue[*].Field[**value].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[*3]", "Argument[**0].Field[**value].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[*3]", "ReturnValue[*].Field[**value].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[2]", "Argument[**0].Field[**value].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[2]", "ReturnValue[*].Field[**value].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[3]", "Argument[**0].Field[**value].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[3]", "ReturnValue[*].Field[**value].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[4]", "Argument[**0].Field[**value].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_create_by_txt", "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)", "", "Argument[4]", "ReturnValue[*].Field[**value].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_dup", "(const X509_NAME_ENTRY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_dup", "(const X509_NAME_ENTRY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_dup", "(const X509_NAME_ENTRY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_dup", "(const X509_NAME_ENTRY *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_dup", "(const X509_NAME_ENTRY *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_free", "(X509_NAME_ENTRY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_free", "(X509_NAME_ENTRY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_ENTRY_get_data", "(const X509_NAME_ENTRY *)", "", "Argument[*0].Field[**value]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_get_data", "(const X509_NAME_ENTRY *)", "", "Argument[*0].Field[*value]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_get_object", "(const X509_NAME_ENTRY *)", "", "Argument[*0].Field[**object]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_get_object", "(const X509_NAME_ENTRY *)", "", "Argument[*0].Field[*object]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_set", "(const X509_NAME_ENTRY *)", "", "Argument[*0].Field[*set]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_set_data", "(X509_NAME_ENTRY *,int,const unsigned char *,int)", "", "Argument[*2]", "Argument[*0].Field[**value].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_set_data", "(X509_NAME_ENTRY *,int,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**value].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_set_data", "(X509_NAME_ENTRY *,int,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[**value].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_set_data", "(X509_NAME_ENTRY *,int,const unsigned char *,int)", "", "Argument[3]", "Argument[*0].Field[**value].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_ENTRY_set_object", "(X509_NAME_ENTRY *,const ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[*object]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_add_entry", "(X509_NAME *,const X509_NAME_ENTRY *,int,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_NAME_cmp", "(const X509_NAME *,const X509_NAME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_cmp", "(const X509_NAME *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_NAME_cmp", "(const X509_NAME *,const X509_NAME *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_delete_entry", "(X509_NAME *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_delete_entry", "(X509_NAME *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_digest", "(const X509_NAME *,const EVP_MD *,unsigned char *,unsigned int *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_dup", "(const X509_NAME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_dup", "(const X509_NAME *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_NAME_dup", "(const X509_NAME *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_NAME_dup", "(const X509_NAME *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_NAME_dup", "(const X509_NAME *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_NAME_entry_count", "(const X509_NAME *)", "", "Argument[*0].Field[**entries].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_free", "(X509_NAME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_free", "(X509_NAME *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_get0_der", "(const X509_NAME *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "X509_NAME_get0_der", "(const X509_NAME *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "X509_NAME_get0_der", "(const X509_NAME *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "X509_NAME_get0_der", "(const X509_NAME *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_get_entry", "(const X509_NAME *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_get_index_by_NID", "(const X509_NAME *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_get_index_by_OBJ", "(const X509_NAME *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_get_text_by_NID", "(const X509_NAME *,int,char *,int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_get_text_by_OBJ", "(const X509_NAME *,const ASN1_OBJECT *,char *,int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_hash_ex", "(const X509_NAME *,OSSL_LIB_CTX *,const char *,int *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_hash_old", "(const X509_NAME *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_oneline", "(const X509_NAME *,char *,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_oneline", "(const X509_NAME *,char *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_print_ex", "(BIO *,const X509_NAME *,int,unsigned long)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_print_ex_fp", "(FILE *,const X509_NAME *,int,unsigned long)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_NAME_set", "(X509_NAME **,const X509_NAME *)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_set", "(X509_NAME **,const X509_NAME *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "X509_NAME_set", "(X509_NAME **,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_NAME_set", "(X509_NAME **,const X509_NAME *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_set", "(X509_NAME **,const X509_NAME *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_NAME_set", "(X509_NAME **,const X509_NAME *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_OBJECT_get0_X509", "(const X509_OBJECT *)", "", "Argument[*0].Field[*data].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_OBJECT_get0_X509", "(const X509_OBJECT *)", "", "Argument[*0].Field[*data].Union[**(unnamed class/struct/union)]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_OBJECT_get0_X509_CRL", "(const X509_OBJECT *)", "", "Argument[*0].Field[*data].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_OBJECT_get0_X509_CRL", "(const X509_OBJECT *)", "", "Argument[*0].Field[*data].Union[**(unnamed class/struct/union)]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_OBJECT_get_type", "(const X509_OBJECT *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_OBJECT_idx_by_subject", "(stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *)", "", "Argument[*0].Field[*data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_OBJECT_idx_by_subject", "(stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *)", "", "Argument[*0].Field[*num]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_OBJECT_retrieve_by_subject", "(stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_OBJECT_retrieve_by_subject", "(stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_OBJECT_retrieve_match", "(stack_st_X509_OBJECT *,X509_OBJECT *)", "", "Argument[*1].Field[*data].Union[**(unnamed class/struct/union)]", "Argument[*1].Field[*data].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "X509_OBJECT_set1_X509", "(X509_OBJECT *,X509 *)", "", "Argument[*1]", "Argument[*0].Field[*data].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "X509_OBJECT_set1_X509", "(X509_OBJECT *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*data].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "X509_OBJECT_set1_X509_CRL", "(X509_OBJECT *,X509_CRL *)", "", "Argument[*1]", "Argument[*0].Field[*data].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "X509_OBJECT_set1_X509_CRL", "(X509_OBJECT *,X509_CRL *)", "", "Argument[1]", "Argument[*0].Field[*data].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_dup", "(const X509_PUBKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_PUBKEY_free", "(X509_PUBKEY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_PUBKEY_free", "(X509_PUBKEY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_PUBKEY_get0", "(const X509_PUBKEY *)", "", "Argument[*0].Field[**pkey]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_get0", "(const X509_PUBKEY *)", "", "Argument[*0].Field[*pkey]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_get0_param", "(ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *)", "", "Argument[*4]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "X509_PUBKEY_get0_param", "(ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *)", "", "Argument[*4]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "X509_PUBKEY_get0_param", "(ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *)", "", "Argument[*4]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "X509_PUBKEY_get0_param", "(ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_PUBKEY_get0_param", "(ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "X509_PUBKEY_get0_param", "(ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *)", "", "Argument[*4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "X509_PUBKEY_get0_param", "(ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "X509_PUBKEY_get", "(const X509_PUBKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_PUBKEY_get", "(const X509_PUBKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_PUBKEY_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_set0_param", "(X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[**algor].Field[**algorithm]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_set0_param", "(X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int)", "", "Argument[*4]", "Argument[*0].Field[**public_key].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_set0_param", "(X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**algor].Field[*algorithm]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_set0_param", "(X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int)", "", "Argument[4]", "Argument[*0].Field[**public_key].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_set0_param", "(X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int)", "", "Argument[5]", "Argument[*0].Field[**public_key].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_set0_public_key", "(X509_PUBKEY *,unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[**public_key].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_set0_public_key", "(X509_PUBKEY *,unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**public_key].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_set0_public_key", "(X509_PUBKEY *,unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[**public_key].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_set", "(X509_PUBKEY **,EVP_PKEY *)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_PUBKEY_set", "(X509_PUBKEY **,EVP_PKEY *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "X509_PUBKEY_set", "(X509_PUBKEY **,EVP_PKEY *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "X509_PUBKEY_set", "(X509_PUBKEY **,EVP_PKEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_PURPOSE_get0", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_PURPOSE_get0", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_PURPOSE_get0_name", "(const X509_PURPOSE *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_PURPOSE_get0_name", "(const X509_PURPOSE *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_PURPOSE_get0_sname", "(const X509_PURPOSE *)", "", "Argument[*0].Field[**sname]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_PURPOSE_get0_sname", "(const X509_PURPOSE *)", "", "Argument[*0].Field[*sname]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_PURPOSE_get_by_id", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_PURPOSE_get_id", "(const X509_PURPOSE *)", "", "Argument[*0].Field[*purpose]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_PURPOSE_get_trust", "(const X509_PURPOSE *)", "", "Argument[*0].Field[*trust]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_PURPOSE_set", "(int *,int)", "", "Argument[1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_INFO_free", "(X509_REQ_INFO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_REQ_INFO_free", "(X509_REQ_INFO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_REQ_add1_attr", "(X509_REQ *,X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_REQ_delete_attr", "(X509_REQ *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_REQ_delete_attr", "(X509_REQ *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_REQ_digest", "(const X509_REQ *,const EVP_MD *,unsigned char *,unsigned int *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_REQ_dup", "(const X509_REQ *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_REQ_dup", "(const X509_REQ *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_REQ_dup", "(const X509_REQ *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_REQ_dup", "(const X509_REQ *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_REQ_dup", "(const X509_REQ *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_REQ_free", "(X509_REQ *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_REQ_free", "(X509_REQ *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_REQ_get0_distinguishing_id", "(X509_REQ *)", "", "Argument[*0].Field[**distinguishing_id]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_get0_distinguishing_id", "(X509_REQ *)", "", "Argument[*0].Field[*distinguishing_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_get0_signature", "(const X509_REQ *,const ASN1_BIT_STRING **,const X509_ALGOR **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "X509_REQ_get0_signature", "(const X509_REQ *,const ASN1_BIT_STRING **,const X509_ALGOR **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "X509_REQ_get0_signature", "(const X509_REQ *,const ASN1_BIT_STRING **,const X509_ALGOR **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "X509_REQ_get_X509_PUBKEY", "(X509_REQ *)", "", "Argument[*0].Field[*req_info].Field[**pubkey]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_get_X509_PUBKEY", "(X509_REQ *)", "", "Argument[*0].Field[*req_info].Field[*pubkey]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_get_attr", "(const X509_REQ *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_REQ_get_attr_by_NID", "(const X509_REQ *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_REQ_get_attr_by_OBJ", "(const X509_REQ *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_REQ_get_subject_name", "(const X509_REQ *)", "", "Argument[*0].Field[*req_info].Field[**subject]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_get_subject_name", "(const X509_REQ *)", "", "Argument[*0].Field[*req_info].Field[*subject]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "X509_REQ_print", "(BIO *,X509_REQ *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_print_ex", "(BIO *,X509_REQ *,unsigned long,unsigned long)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_set0_distinguishing_id", "(X509_REQ *,ASN1_OCTET_STRING *)", "", "Argument[*1]", "Argument[*0].Field[**distinguishing_id]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_set0_distinguishing_id", "(X509_REQ *,ASN1_OCTET_STRING *)", "", "Argument[1]", "Argument[*0].Field[*distinguishing_id]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_set0_signature", "(X509_REQ *,ASN1_BIT_STRING *)", "", "Argument[*1]", "Argument[*0].Field[**signature]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_set0_signature", "(X509_REQ *,ASN1_BIT_STRING *)", "", "Argument[1]", "Argument[*0].Field[*signature]", "value", "dfc-generated"] + - ["", "", True, "X509_REQ_set1_signature_algo", "(X509_REQ *,X509_ALGOR *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_REQ_set_subject_name", "(X509_REQ *,const X509_NAME *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_REQ_set_subject_name", "(X509_REQ *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_REQ_sign", "(X509_REQ *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_REQ_sign_ctx", "(X509_REQ *,EVP_MD_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_add1_ext_i2d", "(X509_REVOKED *,int,void *,int,unsigned long)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "X509_REVOKED_add_ext", "(X509_REVOKED *,X509_EXTENSION *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_REVOKED_add_ext", "(X509_REVOKED *,X509_EXTENSION *,int)", "", "Argument[2]", "Argument[*0].Field[**extensions].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_add_ext", "(X509_REVOKED *,X509_EXTENSION *,int)", "", "Argument[2]", "Argument[*0].Field[**extensions].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_delete_ext", "(X509_REVOKED *,int)", "", "Argument[1]", "Argument[*0].Field[**extensions].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_delete_ext", "(X509_REVOKED *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_delete_ext", "(X509_REVOKED *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_dup", "(const X509_REVOKED *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_REVOKED_dup", "(const X509_REVOKED *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_REVOKED_dup", "(const X509_REVOKED *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_REVOKED_dup", "(const X509_REVOKED *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_REVOKED_dup", "(const X509_REVOKED *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_REVOKED_free", "(X509_REVOKED *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_REVOKED_free", "(X509_REVOKED *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_REVOKED_get0_extensions", "(const X509_REVOKED *)", "", "Argument[*0].Field[**extensions]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_REVOKED_get0_extensions", "(const X509_REVOKED *)", "", "Argument[*0].Field[*extensions]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_REVOKED_get0_revocationDate", "(const X509_REVOKED *)", "", "Argument[*0].Field[**revocationDate]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_REVOKED_get0_revocationDate", "(const X509_REVOKED *)", "", "Argument[*0].Field[*revocationDate]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_REVOKED_get0_serialNumber", "(const X509_REVOKED *)", "", "Argument[*0].Field[*serialNumber]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_REVOKED_get_ext", "(const X509_REVOKED *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_get_ext_by_NID", "(const X509_REVOKED *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_get_ext_by_OBJ", "(const X509_REVOKED *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_get_ext_by_critical", "(const X509_REVOKED *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_get_ext_count", "(const X509_REVOKED *)", "", "Argument[*0].Field[**extensions].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_REVOKED_get_ext_d2i", "(const X509_REVOKED *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "X509_REVOKED_set_revocationDate", "(X509_REVOKED *,ASN1_TIME *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_INFO_get", "(const X509_SIG_INFO *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_INFO_get", "(const X509_SIG_INFO *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_INFO_get", "(const X509_SIG_INFO *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_INFO_get", "(const X509_SIG_INFO *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_INFO_get", "(const X509_SIG_INFO *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_SIG_INFO_set", "(X509_SIG_INFO *,int,int,int,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*mdnid]", "value", "dfc-generated"] + - ["", "", True, "X509_SIG_INFO_set", "(X509_SIG_INFO *,int,int,int,uint32_t)", "", "Argument[2]", "Argument[*0].Field[*pknid]", "value", "dfc-generated"] + - ["", "", True, "X509_SIG_INFO_set", "(X509_SIG_INFO *,int,int,int,uint32_t)", "", "Argument[3]", "Argument[*0].Field[*secbits]", "value", "dfc-generated"] + - ["", "", True, "X509_SIG_INFO_set", "(X509_SIG_INFO *,int,int,int,uint32_t)", "", "Argument[4]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "X509_SIG_free", "(X509_SIG *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_SIG_free", "(X509_SIG *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_SIG_get0", "(const X509_SIG *,const X509_ALGOR **,const ASN1_OCTET_STRING **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_get0", "(const X509_SIG *,const X509_ALGOR **,const ASN1_OCTET_STRING **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_get0", "(const X509_SIG *,const X509_ALGOR **,const ASN1_OCTET_STRING **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_get0", "(const X509_SIG *,const X509_ALGOR **,const ASN1_OCTET_STRING **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_getm", "(X509_SIG *,X509_ALGOR **,ASN1_OCTET_STRING **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_getm", "(X509_SIG *,X509_ALGOR **,ASN1_OCTET_STRING **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_getm", "(X509_SIG *,X509_ALGOR **,ASN1_OCTET_STRING **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "X509_SIG_getm", "(X509_SIG *,X509_ALGOR **,ASN1_OCTET_STRING **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "X509_STORE_CTX_get0_cert", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**cert]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_cert", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*cert]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_chain", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**chain]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_chain", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*chain]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_current_crl", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**current_crl]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_current_crl", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*current_crl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_current_issuer", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**current_issuer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_current_issuer", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*current_issuer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_param", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**param]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_param", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*param]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_parent_ctx", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**parent]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_parent_ctx", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*parent]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_policy_tree", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**tree]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_policy_tree", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*tree]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_rpk", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**rpk]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_rpk", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*rpk]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_store", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**store]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_store", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*store]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_untrusted", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**untrusted]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get0_untrusted", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*untrusted]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get1_chain", "(const X509_STORE_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_STORE_CTX_get1_issuer", "(X509 **,X509_STORE_CTX *,X509 *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_cert_crl", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*cert_crl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_check_crl", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*check_crl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_check_issued", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*check_issued]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_check_policy", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*check_policy]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_check_revocation", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*check_revocation]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_cleanup", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*cleanup]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_current_cert", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[**current_cert]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_current_cert", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*current_cert]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_error", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*error]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_error_depth", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*error_depth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_ex_data", "(const X509_STORE_CTX *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_explicit_policy", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*explicit_policy]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_get_crl", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*get_crl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_get_issuer", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*get_issuer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_lookup_certs", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*lookup_certs]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_lookup_crls", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*lookup_crls]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_num_untrusted", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*num_untrusted]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_verify", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*verify]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_get_verify_cb", "(const X509_STORE_CTX *)", "", "Argument[*0].Field[*verify_cb]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_init", "(X509_STORE_CTX *,X509_STORE *,X509 *,stack_st_X509 *)", "", "Argument[*2]", "Argument[*0].Field[**cert]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_init", "(X509_STORE_CTX *,X509_STORE *,X509 *,stack_st_X509 *)", "", "Argument[*3]", "Argument[*0].Field[**untrusted]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_init", "(X509_STORE_CTX *,X509_STORE *,X509 *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[*store]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_init", "(X509_STORE_CTX *,X509_STORE *,X509 *,stack_st_X509 *)", "", "Argument[2]", "Argument[*0].Field[*cert]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_init", "(X509_STORE_CTX *,X509_STORE *,X509 *,stack_st_X509 *)", "", "Argument[3]", "Argument[*0].Field[*untrusted]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_init_rpk", "(X509_STORE_CTX *,X509_STORE *,EVP_PKEY *)", "", "Argument[*2]", "Argument[*0].Field[**rpk]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_init_rpk", "(X509_STORE_CTX *,X509_STORE *,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[*store]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_init_rpk", "(X509_STORE_CTX *,X509_STORE *,EVP_PKEY *)", "", "Argument[2]", "Argument[*0].Field[*rpk]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_print_verify_cb", "(int,X509_STORE_CTX *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_purpose_inherit", "(X509_STORE_CTX *,int,int,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*purpose]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_purpose_inherit", "(X509_STORE_CTX *,int,int,int)", "", "Argument[2]", "Argument[*0].Field[**param].Field[*purpose]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_purpose_inherit", "(X509_STORE_CTX *,int,int,int)", "", "Argument[3]", "Argument[*0].Field[**param].Field[*trust]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_crls", "(X509_STORE_CTX *,stack_st_X509_CRL *)", "", "Argument[*1]", "Argument[*0].Field[**crls]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_crls", "(X509_STORE_CTX *,stack_st_X509_CRL *)", "", "Argument[1]", "Argument[*0].Field[*crls]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_dane", "(X509_STORE_CTX *,SSL_DANE *)", "", "Argument[*1]", "Argument[*0].Field[**dane]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_dane", "(X509_STORE_CTX *,SSL_DANE *)", "", "Argument[1]", "Argument[*0].Field[*dane]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_param", "(X509_STORE_CTX *,X509_VERIFY_PARAM *)", "", "Argument[*1]", "Argument[*0].Field[**param]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_param", "(X509_STORE_CTX *,X509_VERIFY_PARAM *)", "", "Argument[1]", "Argument[*0].Field[*param]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_rpk", "(X509_STORE_CTX *,EVP_PKEY *)", "", "Argument[*1]", "Argument[*0].Field[**rpk]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_rpk", "(X509_STORE_CTX *,EVP_PKEY *)", "", "Argument[1]", "Argument[*0].Field[*rpk]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_trusted_stack", "(X509_STORE_CTX *,stack_st_X509 *)", "", "Argument[*1]", "Argument[*0].Field[**other_ctx]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_trusted_stack", "(X509_STORE_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[*other_ctx]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_untrusted", "(X509_STORE_CTX *,stack_st_X509 *)", "", "Argument[*1]", "Argument[*0].Field[**untrusted]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_untrusted", "(X509_STORE_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[*untrusted]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_verified_chain", "(X509_STORE_CTX *,stack_st_X509 *)", "", "Argument[*1]", "Argument[*0].Field[**chain]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set0_verified_chain", "(X509_STORE_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[*chain]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_cert", "(X509_STORE_CTX *,X509 *)", "", "Argument[*1]", "Argument[*0].Field[**cert]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_cert", "(X509_STORE_CTX *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*cert]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_current_cert", "(X509_STORE_CTX *,X509 *)", "", "Argument[*1]", "Argument[*0].Field[**current_cert]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_current_cert", "(X509_STORE_CTX *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*current_cert]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_current_reasons", "(X509_STORE_CTX *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*current_reasons]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_depth", "(X509_STORE_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*depth]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_error", "(X509_STORE_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*error]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_error_depth", "(X509_STORE_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*error_depth]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_flags", "(X509_STORE_CTX *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_get_crl", "(X509_STORE_CTX *,X509_STORE_CTX_get_crl_fn)", "", "Argument[1]", "Argument[*0].Field[*get_crl]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_purpose", "(X509_STORE_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*purpose]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_time", "(X509_STORE_CTX *,unsigned long,time_t)", "", "Argument[2]", "Argument[*0].Field[**param].Field[*check_time]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_trust", "(X509_STORE_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*trust]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_verify", "(X509_STORE_CTX *,X509_STORE_CTX_verify_fn)", "", "Argument[1]", "Argument[*0].Field[*verify]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_CTX_set_verify_cb", "(X509_STORE_CTX *,X509_STORE_CTX_verify_cb)", "", "Argument[1]", "Argument[*0].Field[*verify_cb]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_add_lookup", "(X509_STORE *,X509_LOOKUP_METHOD *)", "", "Argument[*1]", "ReturnValue[*].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_add_lookup", "(X509_STORE *,X509_LOOKUP_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*store_ctx]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_add_lookup", "(X509_STORE *,X509_LOOKUP_METHOD *)", "", "Argument[1]", "ReturnValue[*].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get0_objects", "(const X509_STORE *)", "", "Argument[*0].Field[**objs]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get0_objects", "(const X509_STORE *)", "", "Argument[*0].Field[*objs]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get0_param", "(const X509_STORE *)", "", "Argument[*0].Field[**param]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get0_param", "(const X509_STORE *)", "", "Argument[*0].Field[*param]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get1_objects", "(X509_STORE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_STORE_get_cert_crl", "(const X509_STORE *)", "", "Argument[*0].Field[*cert_crl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_check_crl", "(const X509_STORE *)", "", "Argument[*0].Field[*check_crl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_check_issued", "(const X509_STORE *)", "", "Argument[*0].Field[*check_issued]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_check_policy", "(const X509_STORE *)", "", "Argument[*0].Field[*check_policy]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_check_revocation", "(const X509_STORE *)", "", "Argument[*0].Field[*check_revocation]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_cleanup", "(const X509_STORE *)", "", "Argument[*0].Field[*cleanup]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_ex_data", "(const X509_STORE *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_STORE_get_get_crl", "(const X509_STORE *)", "", "Argument[*0].Field[*get_crl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_get_issuer", "(const X509_STORE *)", "", "Argument[*0].Field[*get_issuer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_lookup_certs", "(const X509_STORE *)", "", "Argument[*0].Field[*lookup_certs]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_lookup_crls", "(const X509_STORE *)", "", "Argument[*0].Field[*lookup_crls]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_verify", "(const X509_STORE *)", "", "Argument[*0].Field[*verify]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_get_verify_cb", "(const X509_STORE *)", "", "Argument[*0].Field[*verify_cb]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set1_param", "(X509_STORE *,const X509_VERIFY_PARAM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_STORE_set_cert_crl", "(X509_STORE *,X509_STORE_CTX_cert_crl_fn)", "", "Argument[1]", "Argument[*0].Field[*cert_crl]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_check_crl", "(X509_STORE *,X509_STORE_CTX_check_crl_fn)", "", "Argument[1]", "Argument[*0].Field[*check_crl]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_check_issued", "(X509_STORE *,X509_STORE_CTX_check_issued_fn)", "", "Argument[1]", "Argument[*0].Field[*check_issued]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_check_policy", "(X509_STORE *,X509_STORE_CTX_check_policy_fn)", "", "Argument[1]", "Argument[*0].Field[*check_policy]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_check_revocation", "(X509_STORE *,X509_STORE_CTX_check_revocation_fn)", "", "Argument[1]", "Argument[*0].Field[*check_revocation]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_cleanup", "(X509_STORE *,X509_STORE_CTX_cleanup_fn)", "", "Argument[1]", "Argument[*0].Field[*cleanup]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_depth", "(X509_STORE *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*depth]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_flags", "(X509_STORE *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "X509_STORE_set_get_crl", "(X509_STORE *,X509_STORE_CTX_get_crl_fn)", "", "Argument[1]", "Argument[*0].Field[*get_crl]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_get_issuer", "(X509_STORE *,X509_STORE_CTX_get_issuer_fn)", "", "Argument[1]", "Argument[*0].Field[*get_issuer]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_lookup_certs", "(X509_STORE *,X509_STORE_CTX_lookup_certs_fn)", "", "Argument[1]", "Argument[*0].Field[*lookup_certs]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_lookup_crls", "(X509_STORE *,X509_STORE_CTX_lookup_crls_fn)", "", "Argument[1]", "Argument[*0].Field[*lookup_crls]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_purpose", "(X509_STORE *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*purpose]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_trust", "(X509_STORE *,int)", "", "Argument[1]", "Argument[*0].Field[**param].Field[*trust]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_verify", "(X509_STORE *,X509_STORE_CTX_verify_fn)", "", "Argument[1]", "Argument[*0].Field[*verify]", "value", "dfc-generated"] + - ["", "", True, "X509_STORE_set_verify_cb", "(X509_STORE *,X509_STORE_CTX_verify_cb)", "", "Argument[1]", "Argument[*0].Field[*verify_cb]", "value", "dfc-generated"] + - ["", "", True, "X509_TRUST_get0", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_TRUST_get0", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_TRUST_get0_name", "(const X509_TRUST *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_TRUST_get0_name", "(const X509_TRUST *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_TRUST_get_by_id", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_TRUST_get_flags", "(const X509_TRUST *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_TRUST_get_trust", "(const X509_TRUST *)", "", "Argument[*0].Field[*trust]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_TRUST_set", "(int *,int)", "", "Argument[1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "X509_VAL_free", "(X509_VAL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_VAL_free", "(X509_VAL *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_VERIFY_PARAM_add0_policy", "(X509_VERIFY_PARAM *,ASN1_OBJECT *)", "", "Argument[*1]", "Argument[*0].Field[**policies].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_add0_policy", "(X509_VERIFY_PARAM *,ASN1_OBJECT *)", "", "Argument[*1]", "Argument[*0].Field[**policies].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_add0_policy", "(X509_VERIFY_PARAM *,ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[**policies].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_add0_policy", "(X509_VERIFY_PARAM *,ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0].Field[**policies].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_add1_host", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**hosts].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_add1_host", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**hosts].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_add1_host", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**hosts].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_add1_host", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**hosts].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_clear_flags", "(X509_VERIFY_PARAM *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get0", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get0", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get0_email", "(X509_VERIFY_PARAM *)", "", "Argument[*0].Field[**email]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get0_email", "(X509_VERIFY_PARAM *)", "", "Argument[*0].Field[*email]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get0_host", "(X509_VERIFY_PARAM *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get0_name", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get0_name", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get0_peername", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[**peername]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get0_peername", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[*peername]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get_auth_level", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[*auth_level]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get_depth", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[*depth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get_flags", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get_hostflags", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[*hostflags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get_inh_flags", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[*inh_flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get_purpose", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[*purpose]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_get_time", "(const X509_VERIFY_PARAM *)", "", "Argument[*0].Field[*check_time]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_inherit", "(X509_VERIFY_PARAM *,const X509_VERIFY_PARAM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_VERIFY_PARAM_move_peername", "(X509_VERIFY_PARAM *,X509_VERIFY_PARAM *)", "", "Argument[*1].Field[**peername]", "Argument[*0].Field[**peername]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_move_peername", "(X509_VERIFY_PARAM *,X509_VERIFY_PARAM *)", "", "Argument[*1].Field[*peername]", "Argument[*0].Field[*peername]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1", "(X509_VERIFY_PARAM *,const X509_VERIFY_PARAM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_email", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**email]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_email", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**email]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_email", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*emaillen]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_host", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**hosts].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_host", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**hosts].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_host", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**hosts].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_host", "(X509_VERIFY_PARAM *,const char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**hosts].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_ip", "(X509_VERIFY_PARAM *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**ip]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_ip", "(X509_VERIFY_PARAM *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**ip]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_ip", "(X509_VERIFY_PARAM *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*iplen]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_ip_asc", "(X509_VERIFY_PARAM *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**ip]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_ip_asc", "(X509_VERIFY_PARAM *,const char *)", "", "Argument[1]", "Argument[*0].Field[**ip]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_name", "(X509_VERIFY_PARAM *,const char *)", "", "Argument[*0].Field[*name]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_name", "(X509_VERIFY_PARAM *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_name", "(X509_VERIFY_PARAM *,const char *)", "", "Argument[1]", "Argument[*0].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set1_policies", "(X509_VERIFY_PARAM *,stack_st_ASN1_OBJECT *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set_auth_level", "(X509_VERIFY_PARAM *,int)", "", "Argument[1]", "Argument[*0].Field[*auth_level]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set_depth", "(X509_VERIFY_PARAM *,int)", "", "Argument[1]", "Argument[*0].Field[*depth]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set_flags", "(X509_VERIFY_PARAM *,unsigned long)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set_hostflags", "(X509_VERIFY_PARAM *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*hostflags]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set_inh_flags", "(X509_VERIFY_PARAM *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*inh_flags]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set_purpose", "(X509_VERIFY_PARAM *,int)", "", "Argument[1]", "Argument[*0].Field[*purpose]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set_time", "(X509_VERIFY_PARAM *,time_t)", "", "Argument[1]", "Argument[*0].Field[*check_time]", "value", "dfc-generated"] + - ["", "", True, "X509_VERIFY_PARAM_set_trust", "(X509_VERIFY_PARAM *,int)", "", "Argument[1]", "Argument[*0].Field[*trust]", "value", "dfc-generated"] + - ["", "", True, "X509_add1_ext_i2d", "(X509 *,int,void *,int,unsigned long)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "X509_add_cert", "(stack_st_X509 *,X509 *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_add_cert", "(stack_st_X509 *,X509 *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_add_cert", "(stack_st_X509 *,X509 *,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_add_cert", "(stack_st_X509 *,X509 *,int)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "X509_add_certs", "(stack_st_X509 *,stack_st_X509 *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "X509_add_ext", "(X509 *,X509_EXTENSION *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_add_ext", "(X509 *,X509_EXTENSION *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_build_chain", "(X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_build_chain", "(X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_build_chain", "(X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_build_chain", "(X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_chain_check_suiteb", "(int *,X509 *,stack_st_X509 *,unsigned long)", "", "Argument[*2].Field[***data]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "X509_chain_check_suiteb", "(int *,X509 *,stack_st_X509 *,unsigned long)", "", "Argument[*2].Field[**data]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "X509_chain_up_ref", "(stack_st_X509 *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_chain_up_ref", "(stack_st_X509 *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509_chain_up_ref", "(stack_st_X509 *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_check_ca", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_check_ca", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_check_host", "(X509 *,const char *,size_t,unsigned int,char **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "X509_check_issued", "(X509 *,X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_check_issued", "(X509 *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_check_purpose", "(X509 *,int,int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_check_trust", "(X509 *,int,int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_cmp", "(const X509 *,const X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_cmp", "(const X509 *,const X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_cmp_time", "(const ASN1_TIME *,time_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "X509_delete_ext", "(X509 *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_delete_ext", "(X509 *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_digest", "(const X509 *,const EVP_MD *,unsigned char *,unsigned int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "X509_digest", "(const X509 *,const EVP_MD *,unsigned char *,unsigned int *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_digest_sig", "(const X509 *,EVP_MD **,int *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_digest_sig", "(const X509 *,EVP_MD **,int *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_dup", "(const X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_dup", "(const X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_dup", "(const X509 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_dup", "(const X509 *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_dup", "(const X509 *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_find_by_issuer_and_serial", "(stack_st_X509 *,const X509_NAME *,const ASN1_INTEGER *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "X509_find_by_subject", "(stack_st_X509 *,const X509_NAME *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_find_by_subject", "(stack_st_X509 *,const X509_NAME *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_find_by_subject", "(stack_st_X509 *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_free", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_free", "(X509 *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X509_get0_authority_issuer", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_get0_authority_issuer", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_get0_authority_issuer", "(X509 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_get0_authority_key_id", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_get0_authority_key_id", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_get0_authority_key_id", "(X509 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_get0_authority_serial", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_get0_authority_serial", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_get0_authority_serial", "(X509 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_get0_distinguishing_id", "(X509 *)", "", "Argument[*0].Field[**distinguishing_id]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_get0_distinguishing_id", "(X509 *)", "", "Argument[*0].Field[*distinguishing_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_get0_extensions", "(const X509 *)", "", "Argument[*0].Field[*cert_info].Field[**extensions]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_get0_extensions", "(const X509 *)", "", "Argument[*0].Field[*cert_info].Field[*extensions]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_get0_reject_objects", "(X509 *)", "", "Argument[*0].Field[**aux].Field[**reject]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_get0_reject_objects", "(X509 *)", "", "Argument[*0].Field[**aux].Field[*reject]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_get0_serialNumber", "(const X509 *)", "", "Argument[*0].Field[*cert_info].Field[*serialNumber]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_get0_signature", "(const ASN1_BIT_STRING **,const X509_ALGOR **,const X509 *)", "", "Argument[*2].Field[*sig_alg]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "X509_get0_signature", "(const ASN1_BIT_STRING **,const X509_ALGOR **,const X509 *)", "", "Argument[*2].Field[*signature]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "X509_get0_subject_key_id", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_get0_subject_key_id", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_get0_subject_key_id", "(X509 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_get0_tbs_sigalg", "(const X509 *)", "", "Argument[*0].Field[*cert_info].Field[*signature]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_get0_trust_objects", "(X509 *)", "", "Argument[*0].Field[**aux].Field[**trust]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_get0_trust_objects", "(X509 *)", "", "Argument[*0].Field[**aux].Field[*trust]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_get0_uids", "(const X509 *,const ASN1_BIT_STRING **,const ASN1_BIT_STRING **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "X509_get0_uids", "(const X509 *,const ASN1_BIT_STRING **,const ASN1_BIT_STRING **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "X509_get0_uids", "(const X509 *,const ASN1_BIT_STRING **,const ASN1_BIT_STRING **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "X509_get0_uids", "(const X509 *,const ASN1_BIT_STRING **,const ASN1_BIT_STRING **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "X509_get_X509_PUBKEY", "(const X509 *)", "", "Argument[*0].Field[*cert_info].Field[**key]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_get_X509_PUBKEY", "(const X509 *)", "", "Argument[*0].Field[*cert_info].Field[*key]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_get_ex_data", "(const X509 *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_get_ext", "(const X509 *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_get_ext_by_NID", "(const X509 *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_get_ext_by_OBJ", "(const X509 *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_get_ext_by_critical", "(const X509 *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_get_ext_d2i", "(const X509 *,int,int *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "X509_get_extended_key_usage", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_get_extended_key_usage", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_get_extension_flags", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_get_extension_flags", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_get_issuer_name", "(const X509 *)", "", "Argument[*0].Field[*cert_info].Field[**issuer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_get_issuer_name", "(const X509 *)", "", "Argument[*0].Field[*cert_info].Field[*issuer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_get_key_usage", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_get_key_usage", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_get_pathlen", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_get_pathlen", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_get_proxy_pathlen", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_get_proxy_pathlen", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_get_pubkey_parameters", "(EVP_PKEY *,stack_st_X509 *)", "", "Argument[*1].Field[**data]", "Argument[*1].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "X509_get_serialNumber", "(X509 *)", "", "Argument[*0].Field[*cert_info].Field[*serialNumber]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_get_signature_info", "(X509 *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "X509_get_signature_info", "(X509 *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "X509_get_signature_info", "(X509 *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "X509_get_signature_info", "(X509 *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "X509_get_signature_info", "(X509 *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_get_signature_info", "(X509 *,int *,int *,int *,uint32_t *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_get_subject_name", "(const X509 *)", "", "Argument[*0].Field[*cert_info].Field[**subject]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_get_subject_name", "(const X509 *)", "", "Argument[*0].Field[*cert_info].Field[*subject]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_gmtime_adj", "(ASN1_TIME *,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_gmtime_adj", "(ASN1_TIME *,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_issuer_and_serial_cmp", "(const X509 *,const X509 *)", "", "Argument[*0].Field[*cert_info].Field[*issuer]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_issuer_and_serial_cmp", "(const X509 *,const X509 *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_issuer_name_cmp", "(const X509 *,const X509 *)", "", "Argument[*1].Field[*cert_info].Field[**issuer]", "Argument[*1].Field[*cert_info].Field[*issuer]", "value", "dfc-generated"] + - ["", "", True, "X509_issuer_name_hash", "(X509 *)", "", "Argument[*0].Field[*cert_info].Field[**issuer]", "Argument[*0].Field[*cert_info].Field[*issuer]", "value", "dfc-generated"] + - ["", "", True, "X509_issuer_name_hash_old", "(X509 *)", "", "Argument[*0].Field[*cert_info].Field[**issuer]", "Argument[*0].Field[*cert_info].Field[*issuer]", "value", "dfc-generated"] + - ["", "", True, "X509_load_http", "(const char *,BIO *,BIO *,int)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "X509_load_http", "(const char *,BIO *,BIO *,int)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "X509_load_http", "(const char *,BIO *,BIO *,int)", "", "Argument[1]", "Argument[*1].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_load_http", "(const char *,BIO *,BIO *,int)", "", "Argument[1]", "Argument[*2].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "X509_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "X509_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "X509_new_ex", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "X509_policy_check", "(X509_POLICY_TREE **,int *,stack_st_X509 *,stack_st_ASN1_OBJECT *,unsigned int)", "", "Argument[*2].Field[*num]", "Argument[**0].Field[*nlevel]", "taint", "dfc-generated"] + - ["", "", True, "X509_policy_level_get0_node", "(const X509_POLICY_LEVEL *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_policy_level_node_count", "(X509_POLICY_LEVEL *)", "", "Argument[*0].Field[**nodes].Field[*num]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_policy_node_get0_parent", "(const X509_POLICY_NODE *)", "", "Argument[*0].Field[**parent]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_policy_node_get0_parent", "(const X509_POLICY_NODE *)", "", "Argument[*0].Field[*parent]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_policy_node_get0_policy", "(const X509_POLICY_NODE *)", "", "Argument[*0].Field[**data].Field[**valid_policy]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_policy_node_get0_policy", "(const X509_POLICY_NODE *)", "", "Argument[*0].Field[**data].Field[*valid_policy]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_policy_node_get0_qualifiers", "(const X509_POLICY_NODE *)", "", "Argument[*0].Field[**data].Field[**qualifier_set]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_policy_node_get0_qualifiers", "(const X509_POLICY_NODE *)", "", "Argument[*0].Field[**data].Field[*qualifier_set]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_policy_tree_get0_level", "(const X509_POLICY_TREE *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509_policy_tree_get0_level", "(const X509_POLICY_TREE *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509_policy_tree_get0_policies", "(const X509_POLICY_TREE *)", "", "Argument[*0].Field[**auth_policies]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "X509_policy_tree_get0_policies", "(const X509_POLICY_TREE *)", "", "Argument[*0].Field[*auth_policies]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_policy_tree_get0_user_policies", "(const X509_POLICY_TREE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_policy_tree_get0_user_policies", "(const X509_POLICY_TREE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509_policy_tree_level_count", "(const X509_POLICY_TREE *)", "", "Argument[*0].Field[*nlevel]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_print", "(BIO *,X509 *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_print_ex", "(BIO *,X509 *,unsigned long,unsigned long)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "X509_self_signed", "(X509 *,int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X509_set0_distinguishing_id", "(X509 *,ASN1_OCTET_STRING *)", "", "Argument[*1]", "Argument[*0].Field[**distinguishing_id]", "value", "dfc-generated"] + - ["", "", True, "X509_set0_distinguishing_id", "(X509 *,ASN1_OCTET_STRING *)", "", "Argument[1]", "Argument[*0].Field[*distinguishing_id]", "value", "dfc-generated"] + - ["", "", True, "X509_set_issuer_name", "(X509 *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_set_proxy_pathlen", "(X509 *,long)", "", "Argument[1]", "Argument[*0].Field[*ex_pcpathlen]", "value", "dfc-generated"] + - ["", "", True, "X509_set_subject_name", "(X509 *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509_sign", "(X509 *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "X509_sign_ctx", "(X509 *,EVP_MD_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "X509_subject_name_cmp", "(const X509 *,const X509 *)", "", "Argument[*1].Field[*cert_info].Field[**subject]", "Argument[*1].Field[*cert_info].Field[*subject]", "value", "dfc-generated"] + - ["", "", True, "X509_subject_name_hash", "(X509 *)", "", "Argument[*0].Field[*cert_info].Field[**subject]", "Argument[*0].Field[*cert_info].Field[*subject]", "value", "dfc-generated"] + - ["", "", True, "X509_subject_name_hash_old", "(X509 *)", "", "Argument[*0].Field[*cert_info].Field[**subject]", "Argument[*0].Field[*cert_info].Field[*subject]", "value", "dfc-generated"] + - ["", "", True, "X509_time_adj", "(ASN1_TIME *,long,time_t *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_time_adj", "(ASN1_TIME *,long,time_t *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_time_adj", "(ASN1_TIME *,long,time_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "X509_time_adj_ex", "(ASN1_TIME *,int,long,time_t *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509_time_adj_ex", "(ASN1_TIME *,int,long,time_t *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509_time_adj_ex", "(ASN1_TIME *,int,long,time_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "X509_to_X509_REQ", "(X509 *,EVP_PKEY *,const EVP_MD *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "X509at_add1_attr", "(stack_st_X509_ATTRIBUTE **,X509_ATTRIBUTE *)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509at_add1_attr", "(stack_st_X509_ATTRIBUTE **,X509_ATTRIBUTE *)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509at_add1_attr", "(stack_st_X509_ATTRIBUTE **,X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509at_add1_attr", "(stack_st_X509_ATTRIBUTE **,X509_ATTRIBUTE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509at_add1_attr", "(stack_st_X509_ATTRIBUTE **,X509_ATTRIBUTE *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509at_add1_attr_by_NID", "(stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509at_add1_attr_by_NID", "(stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509at_add1_attr_by_NID", "(stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509at_add1_attr_by_NID", "(stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509at_add1_attr_by_OBJ", "(stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509at_add1_attr_by_OBJ", "(stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509at_add1_attr_by_OBJ", "(stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509at_add1_attr_by_OBJ", "(stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509at_add1_attr_by_txt", "(stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509at_add1_attr_by_txt", "(stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509at_add1_attr_by_txt", "(stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509at_add1_attr_by_txt", "(stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509at_delete_attr", "(stack_st_X509_ATTRIBUTE *,int)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509at_delete_attr", "(stack_st_X509_ATTRIBUTE *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509at_delete_attr", "(stack_st_X509_ATTRIBUTE *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509at_get_attr", "(const stack_st_X509_ATTRIBUTE *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509at_get_attr_by_NID", "(const stack_st_X509_ATTRIBUTE *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509at_get_attr_by_OBJ", "(const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509at_get_attr_count", "(const stack_st_X509_ATTRIBUTE *)", "", "Argument[*0].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509v3_add_ext", "(stack_st_X509_EXTENSION **,X509_EXTENSION *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509v3_add_ext", "(stack_st_X509_EXTENSION **,X509_EXTENSION *,int)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509v3_add_ext", "(stack_st_X509_EXTENSION **,X509_EXTENSION *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "X509v3_add_ext", "(stack_st_X509_EXTENSION **,X509_EXTENSION *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509v3_add_ext", "(stack_st_X509_EXTENSION **,X509_EXTENSION *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509v3_add_extensions", "(stack_st_X509_EXTENSION **,const stack_st_X509_EXTENSION *)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "X509v3_add_extensions", "(stack_st_X509_EXTENSION **,const stack_st_X509_EXTENSION *)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X509v3_add_extensions", "(stack_st_X509_EXTENSION **,const stack_st_X509_EXTENSION *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "X509v3_add_extensions", "(stack_st_X509_EXTENSION **,const stack_st_X509_EXTENSION *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509v3_addr_get_afi", "(const IPAddressFamily *)", "", "Argument[*0].Field[**addressFamily].Field[**data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509v3_addr_get_afi", "(const IPAddressFamily *)", "", "Argument[*0].Field[**addressFamily].Field[*data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509v3_addr_get_range", "(IPAddressOrRange *,const unsigned int,unsigned char *,unsigned char *,const int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "X509v3_addr_get_range", "(IPAddressOrRange *,const unsigned int,unsigned char *,unsigned char *,const int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "X509v3_addr_validate_resource_set", "(stack_st_X509 *,IPAddrBlocks *,int)", "", "Argument[*0].Field[***data].Field[**rfc3779_addr]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "X509v3_addr_validate_resource_set", "(stack_st_X509 *,IPAddrBlocks *,int)", "", "Argument[*0].Field[***data].Field[*rfc3779_addr]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "X509v3_addr_validate_resource_set", "(stack_st_X509 *,IPAddrBlocks *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "X509v3_asid_validate_resource_set", "(stack_st_X509 *,ASIdentifiers *,int)", "", "Argument[*0].Field[***data].Field[**rfc3779_asid]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "X509v3_delete_ext", "(stack_st_X509_EXTENSION *,int)", "", "Argument[1]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "X509v3_delete_ext", "(stack_st_X509_EXTENSION *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509v3_delete_ext", "(stack_st_X509_EXTENSION *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "X509v3_get_ext", "(const stack_st_X509_EXTENSION *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509v3_get_ext_by_NID", "(const stack_st_X509_EXTENSION *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509v3_get_ext_by_OBJ", "(const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509v3_get_ext_by_critical", "(const stack_st_X509_EXTENSION *,int,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "X509v3_get_ext_count", "(const stack_st_X509_EXTENSION *)", "", "Argument[*0].Field[*num]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "X9_62_CHARACTERISTIC_TWO_free", "(X9_62_CHARACTERISTIC_TWO *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X9_62_CHARACTERISTIC_TWO_free", "(X9_62_CHARACTERISTIC_TWO *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "X9_62_PENTANOMIAL_free", "(X9_62_PENTANOMIAL *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "X9_62_PENTANOMIAL_free", "(X9_62_PENTANOMIAL *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "_CONF_add_string", "(CONF *,CONF_VALUE *,CONF_VALUE *)", "", "Argument[*1].Field[**section]", "Argument[*2].Field[**section]", "value", "dfc-generated"] + - ["", "", True, "_CONF_add_string", "(CONF *,CONF_VALUE *,CONF_VALUE *)", "", "Argument[*1].Field[*section]", "Argument[*2].Field[*section]", "value", "dfc-generated"] + - ["", "", True, "_CONF_new_section", "(CONF *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**section]", "value", "dfc-generated"] + - ["", "", True, "_CONF_new_section", "(CONF *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**section]", "taint", "dfc-generated"] + - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "a2d_ASN1_OBJECT", "(unsigned char *,int,const char *,int)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "a2d_ASN1_OBJECT", "(unsigned char *,int,const char *,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "a2i_GENERAL_NAME", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "a2i_GENERAL_NAME", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "a2i_GENERAL_NAME", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "a2i_GENERAL_NAME", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int)", "", "Argument[3]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "a2i_GENERAL_NAME", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int)", "", "Argument[3]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "a2i_IPADDRESS", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "a2i_IPADDRESS", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "a2i_IPADDRESS_NC", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "a2i_IPADDRESS_NC", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "add_certbag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "add_certbag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *)", "", "Argument[2]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "add_keybag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "add_keybag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *)", "", "Argument[2]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "add_secretbag", "(PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "app_http_get_asn1", "(const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *)", "", "Argument[*7]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "app_http_get_asn1", "(const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *)", "", "Argument[*7]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "app_http_post_asn1", "(const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *)", "", "Argument[*12]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "app_http_post_asn1", "(const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *)", "", "Argument[*12]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "app_http_post_asn1", "(const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *)", "", "Argument[*8]", "Argument[8]", "value", "df-generated"] + - ["", "", True, "app_http_post_asn1", "(const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *)", "", "Argument[*9]", "Argument[8]", "taint", "df-generated"] + - ["", "", True, "app_http_tls_cb", "(BIO *,void *,int,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "app_http_tls_cb", "(BIO *,void *,int,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "app_http_tls_cb", "(BIO *,void *,int,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "app_http_tls_cb", "(BIO *,void *,int,int)", "", "Argument[0]", "ReturnValue[*].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "app_keygen", "(EVP_PKEY_CTX *,const char *,int,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "app_paramgen", "(EVP_PKEY_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "app_params_free", "(OSSL_PARAM *)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "app_params_new_from_opts", "(stack_st_OPENSSL_STRING *,const OSSL_PARAM *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "app_params_new_from_opts", "(stack_st_OPENSSL_STRING *,const OSSL_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "app_params_new_from_opts", "(stack_st_OPENSSL_STRING *,const OSSL_PARAM *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "app_passwd", "(const char *,const char *,char **,char **)", "", "Argument[*0]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "app_passwd", "(const char *,const char *,char **,char **)", "", "Argument[*1]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "app_passwd", "(const char *,const char *,char **,char **)", "", "Argument[0]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "app_passwd", "(const char *,const char *,char **,char **)", "", "Argument[1]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "app_passwd", "(const char *,const char *,char **,char **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "app_passwd", "(const char *,const char *,char **,char **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "apps_ssl_info_callback", "(const SSL *,int,int)", "", "Argument[*0].Field[**tls]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "args_excert", "(int,SSL_EXCERT **)", "", "Argument[*1]", "Argument[**1].Field[**next].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "args_excert", "(int,SSL_EXCERT **)", "", "Argument[*1]", "Argument[**1].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "args_excert", "(int,SSL_EXCERT **)", "", "Argument[1]", "Argument[**1].Field[**next].Field[*next]", "taint", "dfc-generated"] + - ["", "", True, "args_excert", "(int,SSL_EXCERT **)", "", "Argument[1]", "Argument[**1].Field[*next]", "taint", "dfc-generated"] + - ["", "", True, "args_excert", "(int,SSL_EXCERT **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "async_wait_ctx_reset_counts", "(ASYNC_WAIT_CTX *)", "", "Argument[*0].Field[**fds].Field[**next]", "Argument[*0].Field[**fds]", "value", "dfc-generated"] + - ["", "", True, "async_wait_ctx_reset_counts", "(ASYNC_WAIT_CTX *)", "", "Argument[*0].Field[**fds].Field[*next]", "Argument[*0].Field[*fds]", "value", "dfc-generated"] + - ["", "", True, "atof", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atof", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atoi", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atoi", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atol", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atol", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atoll", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atoll", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "b2i_DSA_PVK_bio", "(BIO *,pem_password_cb *,void *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "b2i_DSA_PVK_bio", "(BIO *,pem_password_cb *,void *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "b2i_DSA_PVK_bio_ex", "(BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "b2i_DSA_PVK_bio_ex", "(BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "b2i_PVK_bio", "(BIO *,pem_password_cb *,void *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "b2i_PVK_bio", "(BIO *,pem_password_cb *,void *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "b2i_PVK_bio_ex", "(BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "b2i_PVK_bio_ex", "(BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "b2i_PrivateKey", "(const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "b2i_PrivateKey", "(const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "b2i_PrivateKey", "(const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "b2i_PublicKey", "(const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "b2i_PublicKey", "(const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "b2i_PublicKey", "(const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "b2i_RSA_PVK_bio", "(BIO *,pem_password_cb *,void *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "b2i_RSA_PVK_bio", "(BIO *,pem_password_cb *,void *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "b2i_RSA_PVK_bio_ex", "(BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "b2i_RSA_PVK_bio_ex", "(BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "bio_dump_callback", "(BIO *,int,const char *,size_t,int,long,int,size_t *)", "", "Argument[6]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "bio_dump_callback", "(BIO *,int,const char *,size_t,int,long,int,size_t *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "bio_msg_copy", "(BIO_MSG *,BIO_MSG *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_compute_wNAF", "(const BIGNUM *,int,size_t *)", "", "Argument[*0].Field[**d]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "bn_compute_wNAF", "(const BIGNUM *,int,size_t *)", "", "Argument[*0].Field[*d]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "bn_compute_wNAF", "(const BIGNUM *,int,size_t *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "bn_copy_words", "(unsigned long *,const BIGNUM *,int)", "", "Argument[*1].Field[**d]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "bn_copy_words", "(unsigned long *,const BIGNUM *,int)", "", "Argument[*1].Field[*d]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_div_fixed_top", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_div_fixed_top", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "bn_div_fixed_top", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_div_fixed_top", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "bn_div_fixed_top", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_expand2", "(BIGNUM *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "bn_expand2", "(BIGNUM *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "bn_expand2", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "value", "dfc-generated"] + - ["", "", True, "bn_expand2", "(BIGNUM *,int)", "", "Argument[1]", "ReturnValue[*].Field[*dmax]", "value", "dfc-generated"] + - ["", "", True, "bn_from_mont_fixed_top", "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_get_dmax", "(const BIGNUM *)", "", "Argument[*0].Field[*dmax]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "bn_get_top", "(const BIGNUM *)", "", "Argument[*0].Field[*top]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "bn_get_words", "(const BIGNUM *)", "", "Argument[*0].Field[**d]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "bn_get_words", "(const BIGNUM *)", "", "Argument[*0].Field[*d]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "bn_lshift_fixed_top", "(BIGNUM *,const BIGNUM *,int)", "", "Argument[2]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "bn_lshift_fixed_top", "(BIGNUM *,const BIGNUM *,int)", "", "Argument[2]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "bn_mod_add_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*3].Field[*top]", "Argument[*0].Field[*dmax]", "value", "dfc-generated"] + - ["", "", True, "bn_mod_add_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*3].Field[*top]", "Argument[*0].Field[*top]", "value", "dfc-generated"] + - ["", "", True, "bn_mod_exp_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*1]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "bn_mod_exp_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "bn_mod_exp_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_mod_exp_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "bn_mod_exp_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "bn_mod_exp_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "bn_mod_exp_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "bn_mod_exp_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_mod_exp_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "bn_mod_exp_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)", "", "Argument[*5]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "bn_mod_sub_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*3].Field[*top]", "Argument[*0].Field[*dmax]", "value", "dfc-generated"] + - ["", "", True, "bn_mod_sub_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)", "", "Argument[*3].Field[*top]", "Argument[*0].Field[*top]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_add_words", "(unsigned long *,const unsigned long *,int,unsigned long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_mul_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "bn_mul_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_mul_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "bn_mul_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_mul_low_normal", "(unsigned long *,unsigned long *,unsigned long *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_low_normal", "(unsigned long *,unsigned long *,unsigned long *,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[*1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[*2]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_low_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_mul_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "bn_mul_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_mul_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "bn_mul_mont_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_mul_normal", "(unsigned long *,unsigned long *,int,unsigned long *,int)", "", "Argument[*1]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_normal", "(unsigned long *,unsigned long *,int,unsigned long *,int)", "", "Argument[*3]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_normal", "(unsigned long *,unsigned long *,int,unsigned long *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_normal", "(unsigned long *,unsigned long *,int,unsigned long *,int)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_normal", "(unsigned long *,unsigned long *,int,unsigned long *,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[*1]", "Argument[*6]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[*2]", "Argument[*6]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[1]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[2]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[4]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[5]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[5]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_part_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[*1]", "Argument[*6]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[*2]", "Argument[*6]", "value", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[1]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[2]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[4]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[5]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[5]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_recursive", "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "bn_mul_words", "(unsigned long *,const unsigned long *,int,unsigned long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_rshift_fixed_top", "(BIGNUM *,const BIGNUM *,int)", "", "Argument[2]", "Argument[*0].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "bn_rshift_fixed_top", "(BIGNUM *,const BIGNUM *,int)", "", "Argument[2]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "bn_set_static_words", "(BIGNUM *,const unsigned long *,int)", "", "Argument[*1]", "Argument[*0].Field[**d]", "value", "dfc-generated"] + - ["", "", True, "bn_set_static_words", "(BIGNUM *,const unsigned long *,int)", "", "Argument[1]", "Argument[*0].Field[*d]", "value", "dfc-generated"] + - ["", "", True, "bn_set_static_words", "(BIGNUM *,const unsigned long *,int)", "", "Argument[2]", "Argument[*0].Field[*top]", "value", "dfc-generated"] + - ["", "", True, "bn_set_words", "(BIGNUM *,const unsigned long *,int)", "", "Argument[*1]", "Argument[*0].Field[**d]", "value", "dfc-generated"] + - ["", "", True, "bn_set_words", "(BIGNUM *,const unsigned long *,int)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "bn_set_words", "(BIGNUM *,const unsigned long *,int)", "", "Argument[2]", "Argument[*0].Field[*dmax]", "value", "dfc-generated"] + - ["", "", True, "bn_set_words", "(BIGNUM *,const unsigned long *,int)", "", "Argument[2]", "Argument[*0].Field[*top]", "value", "dfc-generated"] + - ["", "", True, "bn_sqr_fixed_top", "(BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_sqr_fixed_top", "(BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_sqr_normal", "(unsigned long *,const unsigned long *,int,unsigned long *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_sqr_normal", "(unsigned long *,const unsigned long *,int,unsigned long *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_sqr_normal", "(unsigned long *,const unsigned long *,int,unsigned long *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "bn_sqr_recursive", "(unsigned long *,const unsigned long *,int,unsigned long *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_sqr_recursive", "(unsigned long *,const unsigned long *,int,unsigned long *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_sqr_recursive", "(unsigned long *,const unsigned long *,int,unsigned long *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "bn_sqr_recursive", "(unsigned long *,const unsigned long *,int,unsigned long *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "bn_sqr_words", "(unsigned long *,const unsigned long *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_sub_part_words", "(unsigned long *,const unsigned long *,const unsigned long *,int,int)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "bn_sub_part_words", "(unsigned long *,const unsigned long *,const unsigned long *,int,int)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_sub_part_words", "(unsigned long *,const unsigned long *,const unsigned long *,int,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_sub_part_words", "(unsigned long *,const unsigned long *,const unsigned long *,int,int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_sub_part_words", "(unsigned long *,const unsigned long *,const unsigned long *,int,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_sub_part_words", "(unsigned long *,const unsigned long *,const unsigned long *,int,int)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "bn_to_mont_fixed_top", "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_to_mont_fixed_top", "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "bn_to_mont_fixed_top", "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "bn_to_mont_fixed_top", "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "bn_wexpand", "(BIGNUM *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "bn_wexpand", "(BIGNUM *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "bn_wexpand", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "value", "dfc-generated"] + - ["", "", True, "bn_wexpand", "(BIGNUM *,int)", "", "Argument[1]", "ReturnValue[*].Field[*dmax]", "value", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ca_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ca_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "calculate_columns", "(FUNCTION *,DISPLAY_COLUMNS *)", "", "Argument[*1].Field[*width]", "Argument[*1].Field[*columns]", "taint", "dfc-generated"] + - ["", "", True, "check_certbag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "check_certbag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *)", "", "Argument[2]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "check_keybag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "check_keybag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *)", "", "Argument[2]", "Argument[1]", "taint", "dfc-generated"] + - ["", "", True, "chopup_args", "(ARGS *,char *)", "", "Argument[*1]", "Argument[*0].Field[***argv]", "value", "dfc-generated"] + - ["", "", True, "chopup_args", "(ARGS *,char *)", "", "Argument[1]", "Argument[*0].Field[***argv]", "value", "dfc-generated"] + - ["", "", True, "chopup_args", "(ARGS *,char *)", "", "Argument[1]", "Argument[*0].Field[**argv]", "value", "dfc-generated"] + - ["", "", True, "ciphers_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ciphers_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "cmp_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "cmp_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "cms_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "cms_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "cms_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "cms_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "collect_names", "(const char *,void *)", "", "Argument[*0]", "Argument[*1].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "collect_names", "(const char *,void *)", "", "Argument[*0]", "Argument[*1].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "collect_names", "(const char *,void *)", "", "Argument[0]", "Argument[*1].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "collect_names", "(const char *,void *)", "", "Argument[0]", "Argument[*1].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "conf_ssl_get", "(size_t,const char **,size_t *)", "", "Argument[0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get", "(size_t,const char **,size_t *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get", "(size_t,const char **,size_t *)", "", "Argument[0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get", "(size_t,const char **,size_t *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get", "(size_t,const char **,size_t *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[1]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[1]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "config_ctx", "(SSL_CONF_CTX *,stack_st_OPENSSL_STRING *,SSL_CTX *)", "", "Argument[2]", "Argument[*0].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*2]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[4]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[5]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[6]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*4]", "Argument[4]", "value", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*5]", "Argument[5]", "value", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*6]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*6]", "Argument[6]", "value", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[6]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "construct_ca_names", "(SSL_CONNECTION *,const stack_st_X509_NAME *,WPACKET *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[**2]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[*2]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[*2]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "create_a_psk", "(SSL *,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*master_key_length]", "value", "dfc-generated"] + - ["", "", True, "create_bare_ssl_connection", "(SSL *,SSL *,int,int,int)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "create_bare_ssl_connection", "(SSL *,SSL *,int,int,int)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_connection", "(SSL *,SSL *,int)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_connection", "(SSL *,SSL *,int)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[*1]", "Argument[**5].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[*2]", "Argument[**6].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[1]", "Argument[**5].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[2]", "Argument[**6].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "create_ssl_objects2", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "create_ssl_objects2", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[4]", "Argument[**2].Field[**bbio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[4]", "Argument[**2].Field[*wbio]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[4]", "Argument[**3].Field[*rbio]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[5]", "Argument[**2].Field[*rbio]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[5]", "Argument[**3].Field[**bbio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[5]", "Argument[**3].Field[*wbio]", "value", "dfc-generated"] + - ["", "", True, "crl2pkcs7_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "crl2pkcs7_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "crl_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "crl_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "custom_ext_find", "(const custom_ext_methods *,ENDPOINT,unsigned int,size_t *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "custom_ext_find", "(const custom_ext_methods *,ENDPOINT,unsigned int,size_t *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "custom_exts_copy", "(custom_ext_methods *,const custom_ext_methods *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ACCESS_DESCRIPTION", "(ACCESS_DESCRIPTION **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSIONS", "(ADMISSIONS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ADMISSION_SYNTAX", "(ADMISSION_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdOrRange", "(ASIdOrRange **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifierChoice", "(ASIdentifierChoice **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASIdentifiers", "(ASIdentifiers **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_BMPSTRING", "(ASN1_BMPSTRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_ENUMERATED", "(ASN1_ENUMERATED **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALIZEDTIME", "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_GENERALSTRING", "(ASN1_GENERALSTRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_IA5STRING", "(ASN1_IA5STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_NULL", "(ASN1_NULL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OBJECT", "(ASN1_OBJECT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OBJECT", "(ASN1_OBJECT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_ASN1_OBJECT", "(ASN1_OBJECT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ASN1_OBJECT", "(ASN1_OBJECT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_OCTET_STRING", "(ASN1_OCTET_STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLE", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_PRINTABLESTRING", "(ASN1_PRINTABLESTRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SEQUENCE_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_SET_ANY", "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_T61STRING", "(ASN1_T61STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TIME", "(ASN1_TIME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_TYPE", "(ASN1_TYPE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UINTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UINTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_ASN1_UINTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ASN1_UINTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UNIVERSALSTRING", "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTCTIME", "(ASN1_UTCTIME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_UTF8STRING", "(ASN1_UTF8STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASN1_VISIBLESTRING", "(ASN1_VISIBLESTRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ASRange", "(ASRange **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_INFO_ACCESS", "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_AUTHORITY_KEYID", "(AUTHORITY_KEYID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_AutoPrivateKey", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_AutoPrivateKey", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_AutoPrivateKey_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_AutoPrivateKey_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_BASIC_CONSTRAINTS", "(BASIC_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CERTIFICATEPOLICIES", "(CERTIFICATEPOLICIES **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ContentInfo", "(CMS_ContentInfo **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_ReceiptRequest", "(CMS_ReceiptRequest **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CMS_bio", "(BIO *,CMS_ContentInfo **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_bio", "(BIO *,CMS_ContentInfo **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CMS_bio", "(BIO *,CMS_ContentInfo **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_bio", "(BIO *,CMS_ContentInfo **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_bio", "(BIO *,CMS_ContentInfo **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CMS_bio", "(BIO *,CMS_ContentInfo **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_bio", "(BIO *,CMS_ContentInfo **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_bio", "(BIO *,CMS_ContentInfo **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_CMS_bio", "(BIO *,CMS_ContentInfo **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CMS_bio", "(BIO *,CMS_ContentInfo **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_CRL_DIST_POINTS", "(CRL_DIST_POINTS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DHparams", "(DH **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DHxparams", "(DH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DHxparams", "(DH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DHxparams", "(DH **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DHxparams", "(DH **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DHxparams", "(DH **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DHxparams", "(DH **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DHxparams", "(DH **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIRECTORYSTRING", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DISPLAYTEXT", "(ASN1_STRING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT", "(DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DIST_POINT_NAME", "(DIST_POINT_NAME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_bio", "(BIO *,DSA **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_bio", "(BIO *,DSA **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_bio", "(BIO *,DSA **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_bio", "(BIO *,DSA **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_bio", "(BIO *,DSA **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_bio", "(BIO *,DSA **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_bio", "(BIO *,DSA **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_bio", "(BIO *,DSA **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_bio", "(BIO *,DSA **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_bio", "(BIO *,DSA **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_fp", "(FILE *,DSA **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_fp", "(FILE *,DSA **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_fp", "(FILE *,DSA **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_fp", "(FILE *,DSA **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_fp", "(FILE *,DSA **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_fp", "(FILE *,DSA **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_fp", "(FILE *,DSA **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_fp", "(FILE *,DSA **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_fp", "(FILE *,DSA **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPrivateKey_fp", "(FILE *,DSA **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAPublicKey", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_bio", "(BIO *,DSA **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_fp", "(FILE *,DSA **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_fp", "(FILE *,DSA **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_fp", "(FILE *,DSA **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_fp", "(FILE *,DSA **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_fp", "(FILE *,DSA **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_fp", "(FILE *,DSA **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_fp", "(FILE *,DSA **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_fp", "(FILE *,DSA **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_fp", "(FILE *,DSA **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSA_PUBKEY_fp", "(FILE *,DSA **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSA_SIG", "(DSA_SIG **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSA_SIG", "(DSA_SIG **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_DSA_SIG", "(DSA_SIG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_SIG", "(DSA_SIG **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_SIG", "(DSA_SIG **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_SIG", "(DSA_SIG **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSA_SIG", "(DSA_SIG **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_DSAparams", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ECDSA_SIG", "(ECDSA_SIG **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ECDSA_SIG", "(ECDSA_SIG **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_ECDSA_SIG", "(ECDSA_SIG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECDSA_SIG", "(ECDSA_SIG **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECDSA_SIG", "(ECDSA_SIG **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECDSA_SIG", "(ECDSA_SIG **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECDSA_SIG", "(ECDSA_SIG **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKPARAMETERS", "(ECPKPARAMETERS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ECPKParameters", "(EC_GROUP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPKParameters", "(EC_GROUP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPKParameters", "(EC_GROUP **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPKParameters", "(EC_GROUP **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPKParameters", "(EC_GROUP **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPKParameters", "(EC_GROUP **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPKParameters", "(EC_GROUP **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECParameters", "(EC_KEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ECParameters", "(EC_KEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECParameters", "(EC_KEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_ECParameters", "(EC_KEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECParameters", "(EC_KEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECParameters", "(EC_KEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECParameters", "(EC_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECParameters", "(EC_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECParameters", "(EC_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECParameters", "(EC_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey_bio", "(BIO *,EC_KEY **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey_bio", "(BIO *,EC_KEY **)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey_bio", "(BIO *,EC_KEY **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey_bio", "(BIO *,EC_KEY **)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_ECPrivateKey_fp", "(FILE *,EC_KEY **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey_fp", "(FILE *,EC_KEY **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey_fp", "(FILE *,EC_KEY **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey_fp", "(FILE *,EC_KEY **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey_fp", "(FILE *,EC_KEY **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey_fp", "(FILE *,EC_KEY **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey_fp", "(FILE *,EC_KEY **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey_fp", "(FILE *,EC_KEY **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey_fp", "(FILE *,EC_KEY **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ECPrivateKey_fp", "(FILE *,EC_KEY **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PRIVATEKEY", "(EC_PRIVATEKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EC_PUBKEY", "(EC_KEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_EC_PUBKEY", "(EC_KEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_EC_PUBKEY", "(EC_KEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_EC_PUBKEY", "(EC_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_EC_PUBKEY", "(EC_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_EC_PUBKEY", "(EC_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_EC_PUBKEY", "(EC_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_EC_PUBKEY_bio", "(BIO *,EC_KEY **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_EC_PUBKEY_fp", "(FILE *,EC_KEY **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PUBKEY_fp", "(FILE *,EC_KEY **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EC_PUBKEY_fp", "(FILE *,EC_KEY **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PUBKEY_fp", "(FILE *,EC_KEY **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PUBKEY_fp", "(FILE *,EC_KEY **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EC_PUBKEY_fp", "(FILE *,EC_KEY **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PUBKEY_fp", "(FILE *,EC_KEY **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PUBKEY_fp", "(FILE *,EC_KEY **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_EC_PUBKEY_fp", "(FILE *,EC_KEY **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EC_PUBKEY_fp", "(FILE *,EC_KEY **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EDIPARTYNAME", "(EDIPARTYNAME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID", "(ESS_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_CERT_ID_V2", "(ESS_CERT_ID_V2 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_ISSUER_SERIAL", "(ESS_ISSUER_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT", "(ESS_SIGNING_CERT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ESS_SIGNING_CERT_V2", "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_EXTENDED_KEY_USAGE", "(EXTENDED_KEY_USAGE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAME", "(GENERAL_NAME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GENERAL_NAMES", "(GENERAL_NAMES **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_GOST_KX_MESSAGE", "(GOST_KX_MESSAGE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressChoice", "(IPAddressChoice **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressFamily", "(IPAddressFamily **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressOrRange", "(IPAddressOrRange **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_IPAddressRange", "(IPAddressRange **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUER_SIGN_TOOL", "(ISSUER_SIGN_TOOL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_ISSUING_DIST_POINT", "(ISSUING_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_KeyParams", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_KeyParams", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_KeyParams", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_KeyParams", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_KeyParams_bio", "(int,EVP_PKEY **,BIO *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_KeyParams_bio", "(int,EVP_PKEY **,BIO *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_KeyParams_bio", "(int,EVP_PKEY **,BIO *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_KeyParams_bio", "(int,EVP_PKEY **,BIO *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NAMING_AUTHORITY", "(NAMING_AUTHORITY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_CERT_SEQUENCE", "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_ENCRYPTED_PKEY", "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_PKEY", "(NETSCAPE_PKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKAC", "(NETSCAPE_SPKAC **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NETSCAPE_SPKI", "(NETSCAPE_SPKI **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_NOTICEREF", "(NOTICEREF **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_BASICRESP", "(OCSP_BASICRESP **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTID", "(OCSP_CERTID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CERTSTATUS", "(OCSP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_CRLID", "(OCSP_CRLID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_ONEREQ", "(OCSP_ONEREQ **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQINFO", "(OCSP_REQINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REQUEST", "(OCSP_REQUEST **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPBYTES", "(OCSP_RESPBYTES **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPDATA", "(OCSP_RESPDATA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPID", "(OCSP_RESPID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_RESPONSE", "(OCSP_RESPONSE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_REVOKEDINFO", "(OCSP_REVOKEDINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SERVICELOC", "(OCSP_SERVICELOC **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SIGNATURE", "(OCSP_SIGNATURE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OCSP_SINGLERESP", "(OCSP_SINGLERESP **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AA_DIST_POINT", "(OSSL_AA_DIST_POINT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATAV", "(OSSL_ATAV **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTES_SYNTAX", "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_DESCRIPTOR", "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPING", "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_MAPPINGS", "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_TYPE_MAPPING", "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ATTRIBUTE_VALUE_MAPPING", "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_BASIC_ATTR_CONSTRAINTS", "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ATAVS", "(OSSL_CMP_ATAVS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CAKEYUPDANNCONTENT", "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTIFIEDKEYPAIR", "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTORENCCERT", "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREPMESSAGE", "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTREQTEMPLATE", "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTRESPONSE", "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CERTSTATUS", "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CHALLENGE", "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSOURCE", "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_CRLSTATUS", "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ERRORMSGCONTENT", "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ITAV", "(OSSL_CMP_ITAV **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_KEYRECREPCONTENT", "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG", "(OSSL_CMP_MSG **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG_bio", "(BIO *,OSSL_CMP_MSG **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG_bio", "(BIO *,OSSL_CMP_MSG **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG_bio", "(BIO *,OSSL_CMP_MSG **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG_bio", "(BIO *,OSSL_CMP_MSG **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG_bio", "(BIO *,OSSL_CMP_MSG **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG_bio", "(BIO *,OSSL_CMP_MSG **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG_bio", "(BIO *,OSSL_CMP_MSG **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG_bio", "(BIO *,OSSL_CMP_MSG **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG_bio", "(BIO *,OSSL_CMP_MSG **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_MSG_bio", "(BIO *,OSSL_CMP_MSG **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIBODY", "(OSSL_CMP_PKIBODY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKIHEADER", "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PKISI", "(OSSL_CMP_PKISI **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREP", "(OSSL_CMP_POLLREP **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_POLLREQ", "(OSSL_CMP_POLLREQ **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_PROTECTEDPART", "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVANNCONTENT", "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVDETAILS", "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_REVREPCONTENT", "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CMP_ROOTCAKEYUPDATE", "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTID", "(OSSL_CRMF_CERTID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTREQUEST", "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_CERTTEMPLATE", "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID", "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDKEY", "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_ENCRYPTEDVALUE", "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSG", "(OSSL_CRMF_MSG **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_MSGS", "(OSSL_CRMF_MSGS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_OPTIONALVALIDITY", "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PBMPARAMETER", "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKIPUBLICATIONINFO", "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PKMACVALUE", "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPO", "(OSSL_CRMF_POPO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOPRIVKEY", "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEY", "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_PRIVATEKEYINFO", "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_CRMF_SINGLEPUBINFO", "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME", "(OSSL_DAY_TIME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_DAY_TIME_BAND", "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_HASH", "(OSSL_HASH **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_IETF_ATTR_SYNTAX", "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX", "(OSSL_INFO_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_INFO_SYNTAX_POINTER", "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_NAMED_DAY", "(OSSL_NAMED_DAY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_PRIVILEGE_POLICY_ID", "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID", "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGET", "(OSSL_TARGET **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETING_INFORMATION", "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TARGETS", "(OSSL_TARGETS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_PERIOD", "(OSSL_TIME_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC", "(OSSL_TIME_SPEC **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_ABSOLUTE", "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_DAY", "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_MONTH", "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_TIME", "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_WEEKS", "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_TIME_SPEC_X_DAY_OF", "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OSSL_USER_NOTICE_SYNTAX", "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_OTHERNAME", "(OTHERNAME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBE2PARAM", "(PBE2PARAM **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBEPARAM", "(PBEPARAM **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBKDF2PARAM", "(PBKDF2PARAM **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PBMAC1PARAM", "(PBMAC1PARAM **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12", "(PKCS12 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_BAGS", "(PKCS12_BAGS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_MAC_DATA", "(PKCS12_MAC_DATA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_SAFEBAG", "(PKCS12_SAFEBAG **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS12_bio", "(BIO *,PKCS12 **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_bio", "(BIO *,PKCS12 **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_bio", "(BIO *,PKCS12 **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_bio", "(BIO *,PKCS12 **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_bio", "(BIO *,PKCS12 **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_bio", "(BIO *,PKCS12 **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_bio", "(BIO *,PKCS12 **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_bio", "(BIO *,PKCS12 **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_bio", "(BIO *,PKCS12 **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_bio", "(BIO *,PKCS12 **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_fp", "(FILE *,PKCS12 **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_fp", "(FILE *,PKCS12 **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_fp", "(FILE *,PKCS12 **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_fp", "(FILE *,PKCS12 **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_fp", "(FILE *,PKCS12 **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_fp", "(FILE *,PKCS12 **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_fp", "(FILE *,PKCS12 **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_fp", "(FILE *,PKCS12 **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_fp", "(FILE *,PKCS12 **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS12_fp", "(FILE *,PKCS12 **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7", "(PKCS7 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_DIGEST", "(PKCS7_DIGEST **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENCRYPT", "(PKCS7_ENCRYPT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENC_CONTENT", "(PKCS7_ENC_CONTENT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ENVELOPE", "(PKCS7_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_ISSUER_AND_SERIAL", "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_RECIP_INFO", "(PKCS7_RECIP_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNED", "(PKCS7_SIGNED **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGNER_INFO", "(PKCS7_SIGNER_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_SIGN_ENVELOPE", "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS7_bio", "(BIO *,PKCS7 **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_bio", "(BIO *,PKCS7 **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_bio", "(BIO *,PKCS7 **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_bio", "(BIO *,PKCS7 **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_bio", "(BIO *,PKCS7 **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_bio", "(BIO *,PKCS7 **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_bio", "(BIO *,PKCS7 **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_bio", "(BIO *,PKCS7 **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_bio", "(BIO *,PKCS7 **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_bio", "(BIO *,PKCS7 **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_fp", "(FILE *,PKCS7 **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_fp", "(FILE *,PKCS7 **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_fp", "(FILE *,PKCS7 **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_fp", "(FILE *,PKCS7 **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_fp", "(FILE *,PKCS7 **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_fp", "(FILE *,PKCS7 **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_fp", "(FILE *,PKCS7 **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_fp", "(FILE *,PKCS7 **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_fp", "(FILE *,PKCS7 **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS7_fp", "(FILE *,PKCS7 **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8PrivateKey_bio", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "d2i_PKCS8PrivateKey_bio", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PKCS8PrivateKey_bio", "(BIO *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PKCS8PrivateKey_fp", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[*3]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "d2i_PKCS8PrivateKey_fp", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PKCS8PrivateKey_fp", "(FILE *,EVP_PKEY **,pem_password_cb *,void *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO", "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_bio", "(BIO *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_bio", "(BIO *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_bio", "(BIO *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_bio", "(BIO *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_bio", "(BIO *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_bio", "(BIO *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_bio", "(BIO *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_bio", "(BIO *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_bio", "(BIO *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_bio", "(BIO *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_fp", "(FILE *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_fp", "(FILE *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_fp", "(FILE *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_fp", "(FILE *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_fp", "(FILE *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_fp", "(FILE *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_fp", "(FILE *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_fp", "(FILE *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_fp", "(FILE *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_PRIV_KEY_INFO_fp", "(FILE *,PKCS8_PRIV_KEY_INFO **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_bio", "(BIO *,X509_SIG **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_bio", "(BIO *,X509_SIG **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_bio", "(BIO *,X509_SIG **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_bio", "(BIO *,X509_SIG **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_bio", "(BIO *,X509_SIG **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_bio", "(BIO *,X509_SIG **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_bio", "(BIO *,X509_SIG **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_bio", "(BIO *,X509_SIG **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_bio", "(BIO *,X509_SIG **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_bio", "(BIO *,X509_SIG **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_fp", "(FILE *,X509_SIG **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_fp", "(FILE *,X509_SIG **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_fp", "(FILE *,X509_SIG **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_fp", "(FILE *,X509_SIG **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_fp", "(FILE *,X509_SIG **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_fp", "(FILE *,X509_SIG **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_fp", "(FILE *,X509_SIG **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_fp", "(FILE *,X509_SIG **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_fp", "(FILE *,X509_SIG **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKCS8_fp", "(FILE *,X509_SIG **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PKEY_USAGE_PERIOD", "(PKEY_USAGE_PERIOD **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYINFO", "(POLICYINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_POLICYQUALINFO", "(POLICYQUALINFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROFESSION_INFO", "(PROFESSION_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_CERT_INFO_EXTENSION", "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_PROXY_POLICY", "(PROXY_POLICY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_PUBKEY", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_bio", "(BIO *,EVP_PKEY **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_ex", "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_ex_bio", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_ex_fp", "(FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PUBKEY_fp", "(FILE *,EVP_PKEY **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PUBKEY_fp", "(FILE *,EVP_PKEY **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PUBKEY_fp", "(FILE *,EVP_PKEY **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PUBKEY_fp", "(FILE *,EVP_PKEY **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PUBKEY_fp", "(FILE *,EVP_PKEY **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PUBKEY_fp", "(FILE *,EVP_PKEY **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PUBKEY_fp", "(FILE *,EVP_PKEY **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PUBKEY_fp", "(FILE *,EVP_PKEY **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PUBKEY_fp", "(FILE *,EVP_PKEY **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PUBKEY_fp", "(FILE *,EVP_PKEY **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[**2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_bio", "(BIO *,EVP_PKEY **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_bio", "(BIO *,EVP_PKEY **)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_bio", "(BIO *,EVP_PKEY **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_bio", "(BIO *,EVP_PKEY **)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_ex", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex_bio", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_ex_bio", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex_bio", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex_bio", "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex_fp", "(FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_ex_fp", "(FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex_fp", "(FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_ex_fp", "(FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_PrivateKey_fp", "(FILE *,EVP_PKEY **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_fp", "(FILE *,EVP_PKEY **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_fp", "(FILE *,EVP_PKEY **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_fp", "(FILE *,EVP_PKEY **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_fp", "(FILE *,EVP_PKEY **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_fp", "(FILE *,EVP_PKEY **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_fp", "(FILE *,EVP_PKEY **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_fp", "(FILE *,EVP_PKEY **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_fp", "(FILE *,EVP_PKEY **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_PrivateKey_fp", "(FILE *,EVP_PKEY **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PublicKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_PublicKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[**2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PublicKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_PublicKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PublicKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PublicKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_PublicKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PublicKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PublicKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_PublicKey", "(int,EVP_PKEY **,const unsigned char **,long)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_bio", "(BIO *,RSA **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_bio", "(BIO *,RSA **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_bio", "(BIO *,RSA **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_bio", "(BIO *,RSA **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_bio", "(BIO *,RSA **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_bio", "(BIO *,RSA **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_bio", "(BIO *,RSA **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_bio", "(BIO *,RSA **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_bio", "(BIO *,RSA **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_bio", "(BIO *,RSA **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_fp", "(FILE *,RSA **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_fp", "(FILE *,RSA **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_fp", "(FILE *,RSA **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_fp", "(FILE *,RSA **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_fp", "(FILE *,RSA **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_fp", "(FILE *,RSA **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_fp", "(FILE *,RSA **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_fp", "(FILE *,RSA **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_fp", "(FILE *,RSA **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPrivateKey_fp", "(FILE *,RSA **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_bio", "(BIO *,RSA **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_bio", "(BIO *,RSA **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_bio", "(BIO *,RSA **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_bio", "(BIO *,RSA **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_bio", "(BIO *,RSA **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_bio", "(BIO *,RSA **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_bio", "(BIO *,RSA **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_bio", "(BIO *,RSA **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_bio", "(BIO *,RSA **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_bio", "(BIO *,RSA **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_fp", "(FILE *,RSA **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_fp", "(FILE *,RSA **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_fp", "(FILE *,RSA **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_fp", "(FILE *,RSA **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_fp", "(FILE *,RSA **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_fp", "(FILE *,RSA **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_fp", "(FILE *,RSA **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_fp", "(FILE *,RSA **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_fp", "(FILE *,RSA **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSAPublicKey_fp", "(FILE *,RSA **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_OAEP_PARAMS", "(RSA_OAEP_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PSS_PARAMS", "(RSA_PSS_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_RSA_PUBKEY", "(RSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_RSA_PUBKEY", "(RSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_RSA_PUBKEY", "(RSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_RSA_PUBKEY", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_RSA_PUBKEY", "(RSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_RSA_PUBKEY", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_RSA_PUBKEY", "(RSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_bio", "(BIO *,RSA **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_fp", "(FILE *,RSA **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_fp", "(FILE *,RSA **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_fp", "(FILE *,RSA **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_fp", "(FILE *,RSA **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_fp", "(FILE *,RSA **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_fp", "(FILE *,RSA **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_fp", "(FILE *,RSA **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_fp", "(FILE *,RSA **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_fp", "(FILE *,RSA **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_RSA_PUBKEY_fp", "(FILE *,RSA **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SCRYPT_PARAMS", "(SCRYPT_PARAMS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SM2_Ciphertext", "(SM2_Ciphertext **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SSL_SESSION", "(SSL_SESSION **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SSL_SESSION", "(SSL_SESSION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION", "(SSL_SESSION **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION", "(SSL_SESSION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION", "(SSL_SESSION **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION", "(SSL_SESSION **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION", "(SSL_SESSION **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION", "(SSL_SESSION **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION", "(SSL_SESSION **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION", "(SSL_SESSION **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION_ex", "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SSL_SESSION_ex", "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION_ex", "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION_ex", "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION_ex", "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION_ex", "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION_ex", "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION_ex", "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION_ex", "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SSL_SESSION_ex", "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SXNET", "(SXNET **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_SXNETID", "(SXNETID **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_ACCURACY", "(TS_ACCURACY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT", "(TS_MSG_IMPRINT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_bio", "(BIO *,TS_MSG_IMPRINT **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_bio", "(BIO *,TS_MSG_IMPRINT **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_bio", "(BIO *,TS_MSG_IMPRINT **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_bio", "(BIO *,TS_MSG_IMPRINT **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_bio", "(BIO *,TS_MSG_IMPRINT **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_bio", "(BIO *,TS_MSG_IMPRINT **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_bio", "(BIO *,TS_MSG_IMPRINT **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_bio", "(BIO *,TS_MSG_IMPRINT **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_bio", "(BIO *,TS_MSG_IMPRINT **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_bio", "(BIO *,TS_MSG_IMPRINT **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_fp", "(FILE *,TS_MSG_IMPRINT **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_fp", "(FILE *,TS_MSG_IMPRINT **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_fp", "(FILE *,TS_MSG_IMPRINT **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_fp", "(FILE *,TS_MSG_IMPRINT **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_fp", "(FILE *,TS_MSG_IMPRINT **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_fp", "(FILE *,TS_MSG_IMPRINT **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_fp", "(FILE *,TS_MSG_IMPRINT **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_fp", "(FILE *,TS_MSG_IMPRINT **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_fp", "(FILE *,TS_MSG_IMPRINT **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_MSG_IMPRINT_fp", "(FILE *,TS_MSG_IMPRINT **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ", "(TS_REQ **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_REQ_bio", "(BIO *,TS_REQ **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_bio", "(BIO *,TS_REQ **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_bio", "(BIO *,TS_REQ **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_bio", "(BIO *,TS_REQ **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_bio", "(BIO *,TS_REQ **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_bio", "(BIO *,TS_REQ **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_bio", "(BIO *,TS_REQ **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_bio", "(BIO *,TS_REQ **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_bio", "(BIO *,TS_REQ **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_bio", "(BIO *,TS_REQ **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_fp", "(FILE *,TS_REQ **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_fp", "(FILE *,TS_REQ **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_fp", "(FILE *,TS_REQ **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_fp", "(FILE *,TS_REQ **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_fp", "(FILE *,TS_REQ **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_fp", "(FILE *,TS_REQ **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_fp", "(FILE *,TS_REQ **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_fp", "(FILE *,TS_REQ **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_fp", "(FILE *,TS_REQ **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_REQ_fp", "(FILE *,TS_REQ **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP", "(TS_RESP **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_RESP_bio", "(BIO *,TS_RESP **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_bio", "(BIO *,TS_RESP **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_bio", "(BIO *,TS_RESP **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_bio", "(BIO *,TS_RESP **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_bio", "(BIO *,TS_RESP **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_bio", "(BIO *,TS_RESP **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_bio", "(BIO *,TS_RESP **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_bio", "(BIO *,TS_RESP **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_bio", "(BIO *,TS_RESP **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_bio", "(BIO *,TS_RESP **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_fp", "(FILE *,TS_RESP **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_fp", "(FILE *,TS_RESP **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_fp", "(FILE *,TS_RESP **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_fp", "(FILE *,TS_RESP **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_fp", "(FILE *,TS_RESP **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_fp", "(FILE *,TS_RESP **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_fp", "(FILE *,TS_RESP **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_fp", "(FILE *,TS_RESP **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_fp", "(FILE *,TS_RESP **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_RESP_fp", "(FILE *,TS_RESP **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_STATUS_INFO", "(TS_STATUS_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO", "(TS_TST_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_bio", "(BIO *,TS_TST_INFO **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_bio", "(BIO *,TS_TST_INFO **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_bio", "(BIO *,TS_TST_INFO **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_bio", "(BIO *,TS_TST_INFO **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_bio", "(BIO *,TS_TST_INFO **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_bio", "(BIO *,TS_TST_INFO **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_bio", "(BIO *,TS_TST_INFO **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_bio", "(BIO *,TS_TST_INFO **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_bio", "(BIO *,TS_TST_INFO **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_bio", "(BIO *,TS_TST_INFO **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_fp", "(FILE *,TS_TST_INFO **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_fp", "(FILE *,TS_TST_INFO **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_fp", "(FILE *,TS_TST_INFO **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_fp", "(FILE *,TS_TST_INFO **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_fp", "(FILE *,TS_TST_INFO **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_fp", "(FILE *,TS_TST_INFO **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_fp", "(FILE *,TS_TST_INFO **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_fp", "(FILE *,TS_TST_INFO **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_fp", "(FILE *,TS_TST_INFO **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_TS_TST_INFO_fp", "(FILE *,TS_TST_INFO **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_USERNOTICE", "(USERNOTICE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT", "(X509_ACERT **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_bio", "(BIO *,X509_ACERT **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_bio", "(BIO *,X509_ACERT **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_bio", "(BIO *,X509_ACERT **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_bio", "(BIO *,X509_ACERT **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_bio", "(BIO *,X509_ACERT **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_bio", "(BIO *,X509_ACERT **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_bio", "(BIO *,X509_ACERT **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_bio", "(BIO *,X509_ACERT **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_bio", "(BIO *,X509_ACERT **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_bio", "(BIO *,X509_ACERT **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_fp", "(FILE *,X509_ACERT **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_fp", "(FILE *,X509_ACERT **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_fp", "(FILE *,X509_ACERT **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_fp", "(FILE *,X509_ACERT **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_fp", "(FILE *,X509_ACERT **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_fp", "(FILE *,X509_ACERT **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_fp", "(FILE *,X509_ACERT **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_fp", "(FILE *,X509_ACERT **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_fp", "(FILE *,X509_ACERT **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ACERT_fp", "(FILE *,X509_ACERT **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGOR", "(X509_ALGOR **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ALGORS", "(X509_ALGORS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_ATTRIBUTE", "(X509_ATTRIBUTE **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_AUX", "(X509 **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CERT_AUX", "(X509_CERT_AUX **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CINF", "(X509_CINF **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL", "(X509_CRL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_INFO", "(X509_CRL_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_CRL_bio", "(BIO *,X509_CRL **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_bio", "(BIO *,X509_CRL **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_bio", "(BIO *,X509_CRL **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_bio", "(BIO *,X509_CRL **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_bio", "(BIO *,X509_CRL **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_bio", "(BIO *,X509_CRL **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_bio", "(BIO *,X509_CRL **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_bio", "(BIO *,X509_CRL **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_bio", "(BIO *,X509_CRL **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_bio", "(BIO *,X509_CRL **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_fp", "(FILE *,X509_CRL **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_fp", "(FILE *,X509_CRL **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_fp", "(FILE *,X509_CRL **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_fp", "(FILE *,X509_CRL **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_fp", "(FILE *,X509_CRL **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_fp", "(FILE *,X509_CRL **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_fp", "(FILE *,X509_CRL **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_fp", "(FILE *,X509_CRL **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_fp", "(FILE *,X509_CRL **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_CRL_fp", "(FILE *,X509_CRL **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSION", "(X509_EXTENSION **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_EXTENSIONS", "(X509_EXTENSIONS **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME", "(X509_NAME **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_NAME_ENTRY", "(X509_NAME_ENTRY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY", "(X509_PUBKEY **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_bio", "(BIO *,X509_PUBKEY **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_bio", "(BIO *,X509_PUBKEY **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_bio", "(BIO *,X509_PUBKEY **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_bio", "(BIO *,X509_PUBKEY **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_bio", "(BIO *,X509_PUBKEY **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_bio", "(BIO *,X509_PUBKEY **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_bio", "(BIO *,X509_PUBKEY **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_bio", "(BIO *,X509_PUBKEY **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_bio", "(BIO *,X509_PUBKEY **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_bio", "(BIO *,X509_PUBKEY **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_fp", "(FILE *,X509_PUBKEY **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_fp", "(FILE *,X509_PUBKEY **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_fp", "(FILE *,X509_PUBKEY **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_fp", "(FILE *,X509_PUBKEY **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_fp", "(FILE *,X509_PUBKEY **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_fp", "(FILE *,X509_PUBKEY **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_fp", "(FILE *,X509_PUBKEY **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_fp", "(FILE *,X509_PUBKEY **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_fp", "(FILE *,X509_PUBKEY **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_PUBKEY_fp", "(FILE *,X509_PUBKEY **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ", "(X509_REQ **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_INFO", "(X509_REQ_INFO **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REQ_bio", "(BIO *,X509_REQ **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_bio", "(BIO *,X509_REQ **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_bio", "(BIO *,X509_REQ **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_bio", "(BIO *,X509_REQ **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_bio", "(BIO *,X509_REQ **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_bio", "(BIO *,X509_REQ **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_bio", "(BIO *,X509_REQ **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_bio", "(BIO *,X509_REQ **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_bio", "(BIO *,X509_REQ **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_bio", "(BIO *,X509_REQ **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_fp", "(FILE *,X509_REQ **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_fp", "(FILE *,X509_REQ **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_fp", "(FILE *,X509_REQ **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_fp", "(FILE *,X509_REQ **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_fp", "(FILE *,X509_REQ **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_fp", "(FILE *,X509_REQ **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_fp", "(FILE *,X509_REQ **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_fp", "(FILE *,X509_REQ **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_fp", "(FILE *,X509_REQ **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REQ_fp", "(FILE *,X509_REQ **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_REVOKED", "(X509_REVOKED **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_SIG", "(X509_SIG **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_X509_VAL", "(X509_VAL **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_X509_bio", "(BIO *,X509 **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_bio", "(BIO *,X509 **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_bio", "(BIO *,X509 **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_bio", "(BIO *,X509 **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_bio", "(BIO *,X509 **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_bio", "(BIO *,X509 **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_bio", "(BIO *,X509 **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_bio", "(BIO *,X509 **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_bio", "(BIO *,X509 **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_bio", "(BIO *,X509 **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_fp", "(FILE *,X509 **)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_fp", "(FILE *,X509 **)", "", "Argument[**1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_fp", "(FILE *,X509 **)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_fp", "(FILE *,X509 **)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_fp", "(FILE *,X509 **)", "", "Argument[*1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_fp", "(FILE *,X509 **)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_X509_fp", "(FILE *,X509 **)", "", "Argument[1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_fp", "(FILE *,X509 **)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "d2i_X509_fp", "(FILE *,X509 **)", "", "Argument[1]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_X509_fp", "(FILE *,X509 **)", "", "Argument[1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "d2i_int_dhx", "(int_dhx942_dh **,const unsigned char **,long)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "dgst_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "dgst_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "dhparam_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "dhparam_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "do_X509_REQ_verify", "(X509_REQ *,EVP_PKEY *,stack_st_OPENSSL_STRING *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "do_X509_verify", "(X509 *,EVP_PKEY *,stack_st_OPENSSL_STRING *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "do_dtls1_write", "(SSL_CONNECTION *,uint8_t,const unsigned char *,size_t,size_t *)", "", "Argument[3]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "do_handshake", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *)", "", "Argument[1]", "Argument[*0].Field[*client_hello_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "do_handshake", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *)", "", "Argument[1]", "Argument[*0].Field[*msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "do_ssl_shutdown", "(SSL *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "do_updatedb", "(CA_DB *,time_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "doit_biopair", "(SSL *,SSL *,long,clock_t *,clock_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "doit_biopair", "(SSL *,SSL *,long,clock_t *,clock_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "doit_localhost", "(SSL *,SSL *,int,long,clock_t *,clock_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "doit_localhost", "(SSL *,SSL *,int,long,clock_t *,clock_t *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "dsa_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "dsa_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "dsaparam_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "dsaparam_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "dtls1_close_construct_packet", "(SSL_CONNECTION *,WPACKET *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "dtls1_ctrl", "(SSL *,int,long,void *)", "", "Argument[**3]", "Argument[*0].Field[***msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "dtls1_ctrl", "(SSL *,int,long,void *)", "", "Argument[**3]", "Argument[*0].Field[*ext].Field[***debug_arg]", "value", "dfc-generated"] + - ["", "", True, "dtls1_ctrl", "(SSL *,int,long,void *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "dtls1_ctrl", "(SSL *,int,long,void *)", "", "Argument[2]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "dtls1_ctrl", "(SSL *,int,long,void *)", "", "Argument[3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "dtls1_get_message_header", "(const unsigned char *,hm_header_st *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "dtls1_get_message_header", "(const unsigned char *,hm_header_st *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "dtls1_get_queue_priority", "(unsigned short,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "dtls1_get_queue_priority", "(unsigned short,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "dtls1_get_timeout", "(const SSL_CONNECTION *,OSSL_TIME *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "dtls1_query_mtu", "(SSL_CONNECTION *)", "", "Argument[*0].Field[**d1].Field[*link_mtu]", "Argument[*0].Field[**d1].Field[*mtu]", "taint", "dfc-generated"] + - ["", "", True, "dtls1_read_bytes", "(SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *)", "", "Argument[4]", "Argument[*6]", "value", "dfc-generated"] + - ["", "", True, "dtls1_read_failed", "(SSL_CONNECTION *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "dtls1_set_handshake_header", "(SSL_CONNECTION *,WPACKET *,int)", "", "Argument[*0].Field[**d1].Field[*next_handshake_write_seq]", "Argument[*0].Field[**d1].Field[*handshake_write_seq]", "value", "dfc-generated"] + - ["", "", True, "dtls1_set_message_header", "(SSL_CONNECTION *,unsigned char,size_t,size_t,size_t)", "", "Argument[*0].Field[**d1].Field[*next_handshake_write_seq]", "Argument[*0].Field[**d1].Field[*handshake_write_seq]", "value", "dfc-generated"] + - ["", "", True, "dtls1_write_app_data_bytes", "(SSL *,uint8_t,const void *,size_t,size_t *)", "", "Argument[3]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "dtls1_write_bytes", "(SSL_CONNECTION *,uint8_t,const void *,size_t,size_t *)", "", "Argument[3]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "dtls_construct_hello_verify_request", "(SSL_CONNECTION *,WPACKET *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "dtls_get_message", "(SSL_CONNECTION *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "dtls_get_message_body", "(SSL_CONNECTION *,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "dtls_post_encryption_processing", "(OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "dtls_post_encryption_processing", "(OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *)", "", "Argument[1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "dtls_post_encryption_processing", "(OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *)", "", "Argument[1]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "dtls_prepare_record_header", "(OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **)", "", "Argument[*4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "dtls_prepare_record_header", "(OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "dtls_prepare_record_header", "(OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "dtls_process_hello_verify", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "dtls_raw_hello_verify_request", "(WPACKET *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ec_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ec_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "ecparam_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ecparam_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "enc_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "enc_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "end_pkcs12_builder", "(PKCS12_BUILDER *)", "", "Argument[*0].Field[*success]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "engine_add_dynamic_id", "(ENGINE *,ENGINE_DYNAMIC_ID,int)", "", "Argument[*0]", "Argument[*0].Field[**prev_dyn].Field[**next_dyn]", "value", "dfc-generated"] + - ["", "", True, "engine_add_dynamic_id", "(ENGINE *,ENGINE_DYNAMIC_ID,int)", "", "Argument[0]", "Argument[*0].Field[**prev_dyn].Field[*next_dyn]", "value", "dfc-generated"] + - ["", "", True, "engine_add_dynamic_id", "(ENGINE *,ENGINE_DYNAMIC_ID,int)", "", "Argument[1]", "Argument[*0].Field[*dynamic_id]", "value", "dfc-generated"] + - ["", "", True, "engine_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "engine_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "engine_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "engine_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "engine_table_cleanup", "(ENGINE_TABLE **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "engine_table_register", "(ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "engine_table_unregister", "(ENGINE_TABLE **,ENGINE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "engine_table_unregister", "(ENGINE_TABLE **,ENGINE *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "errstr_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "errstr_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "errstr_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "errstr_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "evp_asym_cipher_get_number", "(const EVP_ASYM_CIPHER *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_cipher_get_number", "(const EVP_CIPHER *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_cipher_param_to_asn1_ex", "(EVP_CIPHER_CTX *,ASN1_TYPE *,evp_cipher_aead_asn1_params *)", "", "Argument[*1]", "Argument[1]", "taint", "df-generated"] + - ["", "", True, "evp_encode_ctx_set_flags", "(EVP_ENCODE_CTX *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "evp_kdf_get_number", "(const EVP_KDF *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_kem_get_number", "(const EVP_KEM *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_keyexch_get_number", "(const EVP_KEYEXCH *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_get_legacy_alg", "(const EVP_KEYMGMT *)", "", "Argument[*0].Field[*legacy_alg]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_get_number", "(const EVP_KEYMGMT *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_assign_pkey", "(EVP_PKEY *,EVP_KEYMGMT *,void *)", "", "Argument[**2]", "Argument[*0].Field[***keydata]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_assign_pkey", "(EVP_PKEY *,EVP_KEYMGMT *,void *)", "", "Argument[*2]", "Argument[*0].Field[**keydata]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_assign_pkey", "(EVP_PKEY *,EVP_KEYMGMT *,void *)", "", "Argument[1]", "Argument[*0].Field[*keymgmt]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_assign_pkey", "(EVP_PKEY *,EVP_KEYMGMT *,void *)", "", "Argument[2]", "Argument[*0].Field[*keydata]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_copy", "(EVP_PKEY *,EVP_PKEY *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "evp_keymgmt_util_export_to_provider", "(EVP_PKEY *,EVP_KEYMGMT *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "evp_keymgmt_util_export_to_provider", "(EVP_PKEY *,EVP_KEYMGMT *,int)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "evp_keymgmt_util_export_to_provider", "(EVP_PKEY *,EVP_KEYMGMT *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "evp_keymgmt_util_find_operation_cache", "(EVP_PKEY *,EVP_KEYMGMT *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "evp_keymgmt_util_find_operation_cache", "(EVP_PKEY *,EVP_KEYMGMT *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "evp_keymgmt_util_fromdata", "(EVP_PKEY *,EVP_KEYMGMT *,int,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*0].Field[*keymgmt]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_gen", "(EVP_PKEY *,EVP_KEYMGMT *,void *,OSSL_CALLBACK *,void *)", "", "Argument[1]", "Argument[*0].Field[*keymgmt]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_get_deflt_digest_name", "(EVP_KEYMGMT *,void *,char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_make_pkey", "(EVP_KEYMGMT *,void *)", "", "Argument[**1]", "ReturnValue[*].Field[***keydata]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_make_pkey", "(EVP_KEYMGMT *,void *)", "", "Argument[*1]", "ReturnValue[*].Field[**keydata]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_make_pkey", "(EVP_KEYMGMT *,void *)", "", "Argument[0]", "ReturnValue[*].Field[*keymgmt]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_make_pkey", "(EVP_KEYMGMT *,void *)", "", "Argument[1]", "ReturnValue[*].Field[*keydata]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_query_operation_name", "(EVP_KEYMGMT *,int)", "", "Argument[*0].Field[**type_name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "evp_keymgmt_util_query_operation_name", "(EVP_KEYMGMT *,int)", "", "Argument[*0].Field[*type_name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_mac_get_number", "(const EVP_MAC *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_md_ctx_new_ex", "(EVP_PKEY *,const ASN1_OCTET_STRING *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**pctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "evp_md_ctx_new_ex", "(EVP_PKEY *,const ASN1_OCTET_STRING *,OSSL_LIB_CTX *,const char *)", "", "Argument[*3]", "ReturnValue[*].Field[**pctx].Field[**propquery]", "value", "dfc-generated"] + - ["", "", True, "evp_md_ctx_new_ex", "(EVP_PKEY *,const ASN1_OCTET_STRING *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**pctx].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "evp_md_ctx_new_ex", "(EVP_PKEY *,const ASN1_OCTET_STRING *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**pctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "evp_md_ctx_new_ex", "(EVP_PKEY *,const ASN1_OCTET_STRING *,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[**pctx].Field[**propquery]", "taint", "dfc-generated"] + - ["", "", True, "evp_md_get_number", "(const EVP_MD *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_names_do_all", "(OSSL_PROVIDER *,int,..(*)(..),void *)", "", "Argument[1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "evp_pkey_copy_downgraded", "(EVP_PKEY **,const EVP_PKEY *)", "", "Argument[*1].Field[*type]", "Argument[**0].Field[*save_type]", "value", "dfc-generated"] + - ["", "", True, "evp_pkey_copy_downgraded", "(EVP_PKEY **,const EVP_PKEY *)", "", "Argument[*1].Field[*type]", "Argument[**0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "evp_pkey_copy_downgraded", "(EVP_PKEY **,const EVP_PKEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "evp_pkey_ctx_get_params_strict", "(EVP_PKEY_CTX *,OSSL_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "evp_pkey_ctx_get_params_to_ctrl", "(EVP_PKEY_CTX *,OSSL_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "evp_pkey_ctx_set_params_strict", "(EVP_PKEY_CTX *,OSSL_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "evp_pkey_ctx_set_params_to_ctrl", "(EVP_PKEY_CTX *,const OSSL_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "evp_pkey_decrypt_alloc", "(EVP_PKEY_CTX *,unsigned char **,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "evp_pkey_decrypt_alloc", "(EVP_PKEY_CTX *,unsigned char **,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "evp_pkey_export_to_provider", "(EVP_PKEY *,OSSL_LIB_CTX *,EVP_KEYMGMT **,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "evp_pkey_get0_DH_int", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "evp_pkey_get0_DH_int", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "evp_pkey_get0_EC_KEY_int", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "evp_pkey_get0_EC_KEY_int", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "evp_pkey_get0_RSA_int", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "evp_pkey_get0_RSA_int", "(const EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "evp_pkey_get_legacy", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "evp_pkey_get_legacy", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "evp_pkey_get_legacy", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "evp_pkey_get_params_to_ctrl", "(const EVP_PKEY *,OSSL_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "evp_pkey_set_cb_translate", "(BN_GENCB *,EVP_PKEY_CTX *)", "", "Argument[*1]", "Argument[*0].Field[**arg]", "value", "dfc-generated"] + - ["", "", True, "evp_pkey_set_cb_translate", "(BN_GENCB *,EVP_PKEY_CTX *)", "", "Argument[1]", "Argument[*0].Field[*arg]", "value", "dfc-generated"] + - ["", "", True, "evp_pkey_type2name", "(int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "evp_pkey_type2name", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "evp_rand_can_seed", "(EVP_RAND_CTX *)", "", "Argument[*0].Field[**meth].Field[*get_seed]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "evp_rand_get_number", "(const EVP_RAND *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "evp_signature_get_number", "(const EVP_SIGNATURE *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "fake_cipher_start", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "fake_cipher_start", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "fake_pipeline_aead_get_ctx_params", "(void *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_aead_set_ctx_params", "(void *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_dinit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*numpipes]", "value", "dfc-generated"] + - ["", "", True, "fake_pipeline_dinit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_dinit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_dinit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_einit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*numpipes]", "value", "dfc-generated"] + - ["", "", True, "fake_pipeline_einit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_einit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_einit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_final", "(void *,size_t,unsigned char **,size_t *,const size_t *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_start", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "fake_pipeline_start", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[**2]", "Argument[*0].Field[**cipher_ctxs].Field[*final]", "value", "dfc-generated"] + - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[**5]", "Argument[*0].Field[**cipher_ctxs].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[*2]", "Argument[*0].Field[**cipher_ctxs].Field[*final]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[*5]", "Argument[*0].Field[**cipher_ctxs].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[*6]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[2]", "Argument[*0].Field[**cipher_ctxs].Field[*final]", "taint", "dfc-generated"] + - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[5]", "Argument[*0].Field[**cipher_ctxs].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "fake_rand_set_callback", "(EVP_RAND_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[**algctx].Field[*cb]", "value", "dfc-generated"] + - ["", "", True, "fake_rand_start", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "fake_rand_start", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "fake_rsa_start", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "fake_rsa_start", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "feof_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ferror_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "fgetc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*0]", "Argument[**3].Field[**handle]", "value", "dfc-generated"] + - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[0]", "Argument[**3].Field[*handle]", "value", "dfc-generated"] + - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "fipsinstall_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "fipsinstall_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "fputc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "fread_unlocked", "(void *__restrict__,size_t,size_t,FILE *__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "fread_unlocked", "(void *__restrict__,size_t,size_t,FILE *__restrict__)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gendsa_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "gendsa_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "generic_import", "(void *,int,const OSSL_PARAM[])", "", "Argument[*0].Field[**libctx]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "generic_import", "(void *,int,const OSSL_PARAM[])", "", "Argument[*0].Field[*libctx]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "generic_import", "(void *,int,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "genpkey_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "genpkey_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "genrsa_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "genrsa_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "get_ca_names", "(SSL_CONNECTION *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "get_ca_names", "(SSL_CONNECTION *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "get_passwd", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "get_passwd", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "getc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "gf_add", "(gf,const gf,const gf)", "", "Argument[*1].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "gf_add", "(gf,const gf,const gf)", "", "Argument[*2].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "gf_deserialize", "(gf,const uint8_t[56],int,uint8_t)", "", "Argument[*0].Field[*limb]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gf_deserialize", "(gf,const uint8_t[56],int,uint8_t)", "", "Argument[*1]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "gf_deserialize", "(gf,const uint8_t[56],int,uint8_t)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gf_deserialize", "(gf,const uint8_t[56],int,uint8_t)", "", "Argument[1]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "gf_deserialize", "(gf,const uint8_t[56],int,uint8_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gf_deserialize", "(gf,const uint8_t[56],int,uint8_t)", "", "Argument[3]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "gf_deserialize", "(gf,const uint8_t[56],int,uint8_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gf_eq", "(const gf,const gf)", "", "Argument[*0].Field[*limb]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gf_eq", "(const gf,const gf)", "", "Argument[*1].Field[*limb]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gf_hibit", "(const gf)", "", "Argument[*0].Field[*limb]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gf_lobit", "(const gf)", "", "Argument[*0].Field[*limb]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "gf_lobit", "(const gf)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "gf_serialize", "(uint8_t[56],const gf,int)", "", "Argument[*1].Field[*limb]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "gf_serialize", "(uint8_t[56],const gf,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "gf_sub", "(gf,const gf,const gf)", "", "Argument[*1].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "gf_sub", "(gf,const gf,const gf)", "", "Argument[*2].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "help_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "help_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "http_server_get_asn1_req", "(const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "http_server_get_asn1_req", "(const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "http_server_send_asn1_resp", "(const char *,BIO *,int,const char *,const ASN1_ITEM *,const ASN1_VALUE *)", "", "Argument[*4]", "Argument[5]", "taint", "df-generated"] + - ["", "", True, "http_server_send_asn1_resp", "(const char *,BIO *,int,const char *,const ASN1_ITEM *,const ASN1_VALUE *)", "", "Argument[*5]", "Argument[5]", "value", "df-generated"] + - ["", "", True, "i2b_PVK_bio", "(BIO *,const EVP_PKEY *,int,pem_password_cb *,void *)", "", "Argument[*4]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "i2b_PVK_bio", "(BIO *,const EVP_PKEY *,int,pem_password_cb *,void *)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "i2b_PVK_bio_ex", "(BIO *,const EVP_PKEY *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "i2b_PVK_bio_ex", "(BIO *,const EVP_PKEY *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ACCESS_DESCRIPTION", "(const ACCESS_DESCRIPTION *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ACCESS_DESCRIPTION", "(const ACCESS_DESCRIPTION *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ACCESS_DESCRIPTION", "(const ACCESS_DESCRIPTION *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ACCESS_DESCRIPTION", "(const ACCESS_DESCRIPTION *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ADMISSIONS", "(const ADMISSIONS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ADMISSIONS", "(const ADMISSIONS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ADMISSIONS", "(const ADMISSIONS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ADMISSIONS", "(const ADMISSIONS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ADMISSION_SYNTAX", "(const ADMISSION_SYNTAX *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ADMISSION_SYNTAX", "(const ADMISSION_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ADMISSION_SYNTAX", "(const ADMISSION_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ADMISSION_SYNTAX", "(const ADMISSION_SYNTAX *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASIdOrRange", "(const ASIdOrRange *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASIdOrRange", "(const ASIdOrRange *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASIdOrRange", "(const ASIdOrRange *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASIdOrRange", "(const ASIdOrRange *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASIdentifierChoice", "(const ASIdentifierChoice *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASIdentifierChoice", "(const ASIdentifierChoice *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASIdentifierChoice", "(const ASIdentifierChoice *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASIdentifierChoice", "(const ASIdentifierChoice *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASIdentifiers", "(const ASIdentifiers *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASIdentifiers", "(const ASIdentifiers *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASIdentifiers", "(const ASIdentifiers *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASIdentifiers", "(const ASIdentifiers *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_BIT_STRING", "(const ASN1_BIT_STRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_BIT_STRING", "(const ASN1_BIT_STRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_BIT_STRING", "(const ASN1_BIT_STRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_BIT_STRING", "(const ASN1_BIT_STRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_BMPSTRING", "(const ASN1_BMPSTRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_BMPSTRING", "(const ASN1_BMPSTRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_BMPSTRING", "(const ASN1_BMPSTRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_BMPSTRING", "(const ASN1_BMPSTRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_ENUMERATED", "(const ASN1_ENUMERATED *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_ENUMERATED", "(const ASN1_ENUMERATED *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_ENUMERATED", "(const ASN1_ENUMERATED *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_ENUMERATED", "(const ASN1_ENUMERATED *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_GENERALIZEDTIME", "(const ASN1_GENERALIZEDTIME *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_GENERALIZEDTIME", "(const ASN1_GENERALIZEDTIME *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_GENERALIZEDTIME", "(const ASN1_GENERALIZEDTIME *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_GENERALIZEDTIME", "(const ASN1_GENERALIZEDTIME *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_GENERALSTRING", "(const ASN1_GENERALSTRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_GENERALSTRING", "(const ASN1_GENERALSTRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_GENERALSTRING", "(const ASN1_GENERALSTRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_GENERALSTRING", "(const ASN1_GENERALSTRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_IA5STRING", "(const ASN1_IA5STRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_IA5STRING", "(const ASN1_IA5STRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_IA5STRING", "(const ASN1_IA5STRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_IA5STRING", "(const ASN1_IA5STRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_INTEGER", "(const ASN1_INTEGER *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_INTEGER", "(const ASN1_INTEGER *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_INTEGER", "(const ASN1_INTEGER *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_INTEGER", "(const ASN1_INTEGER *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_NULL", "(const ASN1_NULL *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_NULL", "(const ASN1_NULL *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_NULL", "(const ASN1_NULL *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_NULL", "(const ASN1_NULL *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_OBJECT", "(const ASN1_OBJECT *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ASN1_OBJECT", "(const ASN1_OBJECT *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ASN1_OBJECT", "(const ASN1_OBJECT *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ASN1_OCTET_STRING", "(const ASN1_OCTET_STRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_OCTET_STRING", "(const ASN1_OCTET_STRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_OCTET_STRING", "(const ASN1_OCTET_STRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_OCTET_STRING", "(const ASN1_OCTET_STRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_PRINTABLE", "(const ASN1_STRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_PRINTABLE", "(const ASN1_STRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_PRINTABLE", "(const ASN1_STRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_PRINTABLE", "(const ASN1_STRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_PRINTABLESTRING", "(const ASN1_PRINTABLESTRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_PRINTABLESTRING", "(const ASN1_PRINTABLESTRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_PRINTABLESTRING", "(const ASN1_PRINTABLESTRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_PRINTABLESTRING", "(const ASN1_PRINTABLESTRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_SEQUENCE_ANY", "(const ASN1_SEQUENCE_ANY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_SEQUENCE_ANY", "(const ASN1_SEQUENCE_ANY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_SEQUENCE_ANY", "(const ASN1_SEQUENCE_ANY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_SEQUENCE_ANY", "(const ASN1_SEQUENCE_ANY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_SET_ANY", "(const ASN1_SEQUENCE_ANY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_SET_ANY", "(const ASN1_SEQUENCE_ANY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_SET_ANY", "(const ASN1_SEQUENCE_ANY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_SET_ANY", "(const ASN1_SEQUENCE_ANY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_T61STRING", "(const ASN1_T61STRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_T61STRING", "(const ASN1_T61STRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_T61STRING", "(const ASN1_T61STRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_T61STRING", "(const ASN1_T61STRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_TIME", "(const ASN1_TIME *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_TIME", "(const ASN1_TIME *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_TIME", "(const ASN1_TIME *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_TIME", "(const ASN1_TIME *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_TYPE", "(const ASN1_TYPE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_TYPE", "(const ASN1_TYPE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_TYPE", "(const ASN1_TYPE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_TYPE", "(const ASN1_TYPE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_UNIVERSALSTRING", "(const ASN1_UNIVERSALSTRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_UNIVERSALSTRING", "(const ASN1_UNIVERSALSTRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_UNIVERSALSTRING", "(const ASN1_UNIVERSALSTRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_UNIVERSALSTRING", "(const ASN1_UNIVERSALSTRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_UTCTIME", "(const ASN1_UTCTIME *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_UTCTIME", "(const ASN1_UTCTIME *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_UTCTIME", "(const ASN1_UTCTIME *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_UTCTIME", "(const ASN1_UTCTIME *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_UTF8STRING", "(const ASN1_UTF8STRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_UTF8STRING", "(const ASN1_UTF8STRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_UTF8STRING", "(const ASN1_UTF8STRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_UTF8STRING", "(const ASN1_UTF8STRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_VISIBLESTRING", "(const ASN1_VISIBLESTRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_VISIBLESTRING", "(const ASN1_VISIBLESTRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_VISIBLESTRING", "(const ASN1_VISIBLESTRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_VISIBLESTRING", "(const ASN1_VISIBLESTRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_bio_stream", "(BIO *,ASN1_VALUE *,BIO *,int,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASN1_bio_stream", "(BIO *,ASN1_VALUE *,BIO *,int,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_ASN1_bio_stream", "(BIO *,ASN1_VALUE *,BIO *,int,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASRange", "(const ASRange *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ASRange", "(const ASRange *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ASRange", "(const ASRange *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ASRange", "(const ASRange *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_AUTHORITY_INFO_ACCESS", "(const AUTHORITY_INFO_ACCESS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_AUTHORITY_INFO_ACCESS", "(const AUTHORITY_INFO_ACCESS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_AUTHORITY_INFO_ACCESS", "(const AUTHORITY_INFO_ACCESS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_AUTHORITY_INFO_ACCESS", "(const AUTHORITY_INFO_ACCESS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_AUTHORITY_KEYID", "(const AUTHORITY_KEYID *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_AUTHORITY_KEYID", "(const AUTHORITY_KEYID *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_AUTHORITY_KEYID", "(const AUTHORITY_KEYID *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_AUTHORITY_KEYID", "(const AUTHORITY_KEYID *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_BASIC_CONSTRAINTS", "(const BASIC_CONSTRAINTS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_BASIC_CONSTRAINTS", "(const BASIC_CONSTRAINTS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_BASIC_CONSTRAINTS", "(const BASIC_CONSTRAINTS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_BASIC_CONSTRAINTS", "(const BASIC_CONSTRAINTS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_CERTIFICATEPOLICIES", "(const CERTIFICATEPOLICIES *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_CERTIFICATEPOLICIES", "(const CERTIFICATEPOLICIES *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_CERTIFICATEPOLICIES", "(const CERTIFICATEPOLICIES *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_CERTIFICATEPOLICIES", "(const CERTIFICATEPOLICIES *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_CMS_ContentInfo", "(const CMS_ContentInfo *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_CMS_ContentInfo", "(const CMS_ContentInfo *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_CMS_ContentInfo", "(const CMS_ContentInfo *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_CMS_ContentInfo", "(const CMS_ContentInfo *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_CMS_ReceiptRequest", "(const CMS_ReceiptRequest *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_CMS_ReceiptRequest", "(const CMS_ReceiptRequest *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_CMS_ReceiptRequest", "(const CMS_ReceiptRequest *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_CMS_ReceiptRequest", "(const CMS_ReceiptRequest *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_CMS_bio", "(BIO *,CMS_ContentInfo *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_CMS_bio_stream", "(BIO *,CMS_ContentInfo *,BIO *,int)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "i2d_CMS_bio_stream", "(BIO *,CMS_ContentInfo *,BIO *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_CMS_bio_stream", "(BIO *,CMS_ContentInfo *,BIO *,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "i2d_CRL_DIST_POINTS", "(const CRL_DIST_POINTS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_CRL_DIST_POINTS", "(const CRL_DIST_POINTS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_CRL_DIST_POINTS", "(const CRL_DIST_POINTS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_CRL_DIST_POINTS", "(const CRL_DIST_POINTS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DHparams", "(const DH *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_DHparams", "(const DH *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DHparams", "(const DH *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_DHparams", "(const DH *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DHxparams", "(const DH *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_DHxparams", "(const DH *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_DHxparams", "(const DH *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_DIRECTORYSTRING", "(const ASN1_STRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_DIRECTORYSTRING", "(const ASN1_STRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DIRECTORYSTRING", "(const ASN1_STRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_DIRECTORYSTRING", "(const ASN1_STRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DISPLAYTEXT", "(const ASN1_STRING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_DISPLAYTEXT", "(const ASN1_STRING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DISPLAYTEXT", "(const ASN1_STRING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_DISPLAYTEXT", "(const ASN1_STRING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DIST_POINT", "(const DIST_POINT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_DIST_POINT", "(const DIST_POINT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DIST_POINT", "(const DIST_POINT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_DIST_POINT", "(const DIST_POINT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DIST_POINT_NAME", "(const DIST_POINT_NAME *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_DIST_POINT_NAME", "(const DIST_POINT_NAME *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DIST_POINT_NAME", "(const DIST_POINT_NAME *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_DIST_POINT_NAME", "(const DIST_POINT_NAME *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DSAPrivateKey", "(const DSA *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_DSAPrivateKey", "(const DSA *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DSAPrivateKey", "(const DSA *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_DSAPrivateKey", "(const DSA *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DSAPublicKey", "(const DSA *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_DSAPublicKey", "(const DSA *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DSAPublicKey", "(const DSA *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_DSAPublicKey", "(const DSA *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DSA_PUBKEY", "(const DSA *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_DSA_PUBKEY", "(const DSA *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_DSA_PUBKEY", "(const DSA *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_DSA_SIG", "(const DSA_SIG *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_DSA_SIG", "(const DSA_SIG *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_DSA_SIG", "(const DSA_SIG *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_DSAparams", "(const DSA *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_DSAparams", "(const DSA *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_DSAparams", "(const DSA *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_DSAparams", "(const DSA *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ECDSA_SIG", "(const ECDSA_SIG *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECDSA_SIG", "(const ECDSA_SIG *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECDSA_SIG", "(const ECDSA_SIG *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECPKPARAMETERS", "(const ECPKPARAMETERS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ECPKPARAMETERS", "(const ECPKPARAMETERS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ECPKPARAMETERS", "(const ECPKPARAMETERS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ECPKPARAMETERS", "(const ECPKPARAMETERS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ECPKParameters", "(const EC_GROUP *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECPKParameters", "(const EC_GROUP *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECPKParameters", "(const EC_GROUP *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECParameters", "(const EC_KEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECParameters", "(const EC_KEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECParameters", "(const EC_KEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECPrivateKey", "(const EC_KEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECPrivateKey", "(const EC_KEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_ECPrivateKey", "(const EC_KEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_EC_PRIVATEKEY", "(const EC_PRIVATEKEY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_EC_PRIVATEKEY", "(const EC_PRIVATEKEY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_EC_PRIVATEKEY", "(const EC_PRIVATEKEY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_EC_PRIVATEKEY", "(const EC_PRIVATEKEY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_EC_PUBKEY", "(const EC_KEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_EC_PUBKEY", "(const EC_KEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_EC_PUBKEY", "(const EC_KEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_EDIPARTYNAME", "(const EDIPARTYNAME *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_EDIPARTYNAME", "(const EDIPARTYNAME *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_EDIPARTYNAME", "(const EDIPARTYNAME *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_EDIPARTYNAME", "(const EDIPARTYNAME *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_CERT_ID", "(const ESS_CERT_ID *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ESS_CERT_ID", "(const ESS_CERT_ID *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_CERT_ID", "(const ESS_CERT_ID *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_CERT_ID", "(const ESS_CERT_ID *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_CERT_ID_V2", "(const ESS_CERT_ID_V2 *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ESS_CERT_ID_V2", "(const ESS_CERT_ID_V2 *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_CERT_ID_V2", "(const ESS_CERT_ID_V2 *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_CERT_ID_V2", "(const ESS_CERT_ID_V2 *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_ISSUER_SERIAL", "(const ESS_ISSUER_SERIAL *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ESS_ISSUER_SERIAL", "(const ESS_ISSUER_SERIAL *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_ISSUER_SERIAL", "(const ESS_ISSUER_SERIAL *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_ISSUER_SERIAL", "(const ESS_ISSUER_SERIAL *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_SIGNING_CERT", "(const ESS_SIGNING_CERT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ESS_SIGNING_CERT", "(const ESS_SIGNING_CERT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_SIGNING_CERT", "(const ESS_SIGNING_CERT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_SIGNING_CERT", "(const ESS_SIGNING_CERT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_SIGNING_CERT_V2", "(const ESS_SIGNING_CERT_V2 *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ESS_SIGNING_CERT_V2", "(const ESS_SIGNING_CERT_V2 *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_SIGNING_CERT_V2", "(const ESS_SIGNING_CERT_V2 *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ESS_SIGNING_CERT_V2", "(const ESS_SIGNING_CERT_V2 *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_EXTENDED_KEY_USAGE", "(const EXTENDED_KEY_USAGE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_EXTENDED_KEY_USAGE", "(const EXTENDED_KEY_USAGE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_EXTENDED_KEY_USAGE", "(const EXTENDED_KEY_USAGE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_EXTENDED_KEY_USAGE", "(const EXTENDED_KEY_USAGE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_GENERAL_NAME", "(const GENERAL_NAME *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_GENERAL_NAME", "(const GENERAL_NAME *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_GENERAL_NAME", "(const GENERAL_NAME *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_GENERAL_NAME", "(const GENERAL_NAME *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_GENERAL_NAMES", "(const GENERAL_NAMES *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_GENERAL_NAMES", "(const GENERAL_NAMES *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_GENERAL_NAMES", "(const GENERAL_NAMES *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_GENERAL_NAMES", "(const GENERAL_NAMES *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_GOST_KX_MESSAGE", "(const GOST_KX_MESSAGE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_GOST_KX_MESSAGE", "(const GOST_KX_MESSAGE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_GOST_KX_MESSAGE", "(const GOST_KX_MESSAGE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_GOST_KX_MESSAGE", "(const GOST_KX_MESSAGE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressChoice", "(const IPAddressChoice *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_IPAddressChoice", "(const IPAddressChoice *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressChoice", "(const IPAddressChoice *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressChoice", "(const IPAddressChoice *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressFamily", "(const IPAddressFamily *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_IPAddressFamily", "(const IPAddressFamily *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressFamily", "(const IPAddressFamily *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressFamily", "(const IPAddressFamily *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressOrRange", "(const IPAddressOrRange *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_IPAddressOrRange", "(const IPAddressOrRange *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressOrRange", "(const IPAddressOrRange *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressOrRange", "(const IPAddressOrRange *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressRange", "(const IPAddressRange *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_IPAddressRange", "(const IPAddressRange *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressRange", "(const IPAddressRange *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_IPAddressRange", "(const IPAddressRange *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ISSUER_SIGN_TOOL", "(const ISSUER_SIGN_TOOL *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ISSUER_SIGN_TOOL", "(const ISSUER_SIGN_TOOL *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ISSUER_SIGN_TOOL", "(const ISSUER_SIGN_TOOL *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ISSUER_SIGN_TOOL", "(const ISSUER_SIGN_TOOL *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ISSUING_DIST_POINT", "(const ISSUING_DIST_POINT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_ISSUING_DIST_POINT", "(const ISSUING_DIST_POINT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_ISSUING_DIST_POINT", "(const ISSUING_DIST_POINT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_ISSUING_DIST_POINT", "(const ISSUING_DIST_POINT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_KeyParams", "(const EVP_PKEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_KeyParams", "(const EVP_PKEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_KeyParams", "(const EVP_PKEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_NAMING_AUTHORITY", "(const NAMING_AUTHORITY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_NAMING_AUTHORITY", "(const NAMING_AUTHORITY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NAMING_AUTHORITY", "(const NAMING_AUTHORITY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_NAMING_AUTHORITY", "(const NAMING_AUTHORITY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_CERT_SEQUENCE", "(const NETSCAPE_CERT_SEQUENCE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_NETSCAPE_CERT_SEQUENCE", "(const NETSCAPE_CERT_SEQUENCE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_CERT_SEQUENCE", "(const NETSCAPE_CERT_SEQUENCE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_CERT_SEQUENCE", "(const NETSCAPE_CERT_SEQUENCE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_ENCRYPTED_PKEY", "(const NETSCAPE_ENCRYPTED_PKEY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_NETSCAPE_ENCRYPTED_PKEY", "(const NETSCAPE_ENCRYPTED_PKEY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_ENCRYPTED_PKEY", "(const NETSCAPE_ENCRYPTED_PKEY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_ENCRYPTED_PKEY", "(const NETSCAPE_ENCRYPTED_PKEY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_PKEY", "(const NETSCAPE_PKEY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_NETSCAPE_PKEY", "(const NETSCAPE_PKEY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_PKEY", "(const NETSCAPE_PKEY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_PKEY", "(const NETSCAPE_PKEY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_SPKAC", "(const NETSCAPE_SPKAC *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_NETSCAPE_SPKAC", "(const NETSCAPE_SPKAC *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_SPKAC", "(const NETSCAPE_SPKAC *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_SPKAC", "(const NETSCAPE_SPKAC *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_SPKI", "(const NETSCAPE_SPKI *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_NETSCAPE_SPKI", "(const NETSCAPE_SPKI *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_SPKI", "(const NETSCAPE_SPKI *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_NETSCAPE_SPKI", "(const NETSCAPE_SPKI *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NOTICEREF", "(const NOTICEREF *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_NOTICEREF", "(const NOTICEREF *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_NOTICEREF", "(const NOTICEREF *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_NOTICEREF", "(const NOTICEREF *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_BASICRESP", "(const OCSP_BASICRESP *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_BASICRESP", "(const OCSP_BASICRESP *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_BASICRESP", "(const OCSP_BASICRESP *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_BASICRESP", "(const OCSP_BASICRESP *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_CERTID", "(const OCSP_CERTID *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_CERTID", "(const OCSP_CERTID *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_CERTID", "(const OCSP_CERTID *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_CERTID", "(const OCSP_CERTID *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_CERTSTATUS", "(const OCSP_CERTSTATUS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_CERTSTATUS", "(const OCSP_CERTSTATUS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_CERTSTATUS", "(const OCSP_CERTSTATUS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_CERTSTATUS", "(const OCSP_CERTSTATUS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_CRLID", "(const OCSP_CRLID *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_CRLID", "(const OCSP_CRLID *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_CRLID", "(const OCSP_CRLID *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_CRLID", "(const OCSP_CRLID *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_ONEREQ", "(const OCSP_ONEREQ *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_ONEREQ", "(const OCSP_ONEREQ *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_ONEREQ", "(const OCSP_ONEREQ *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_ONEREQ", "(const OCSP_ONEREQ *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_REQINFO", "(const OCSP_REQINFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_REQINFO", "(const OCSP_REQINFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_REQINFO", "(const OCSP_REQINFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_REQINFO", "(const OCSP_REQINFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_REQUEST", "(const OCSP_REQUEST *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_REQUEST", "(const OCSP_REQUEST *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_REQUEST", "(const OCSP_REQUEST *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_REQUEST", "(const OCSP_REQUEST *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPBYTES", "(const OCSP_RESPBYTES *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_RESPBYTES", "(const OCSP_RESPBYTES *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPBYTES", "(const OCSP_RESPBYTES *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPBYTES", "(const OCSP_RESPBYTES *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPDATA", "(const OCSP_RESPDATA *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_RESPDATA", "(const OCSP_RESPDATA *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPDATA", "(const OCSP_RESPDATA *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPDATA", "(const OCSP_RESPDATA *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPID", "(const OCSP_RESPID *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_RESPID", "(const OCSP_RESPID *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPID", "(const OCSP_RESPID *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPID", "(const OCSP_RESPID *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPONSE", "(const OCSP_RESPONSE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_RESPONSE", "(const OCSP_RESPONSE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPONSE", "(const OCSP_RESPONSE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_RESPONSE", "(const OCSP_RESPONSE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_REVOKEDINFO", "(const OCSP_REVOKEDINFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_REVOKEDINFO", "(const OCSP_REVOKEDINFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_REVOKEDINFO", "(const OCSP_REVOKEDINFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_REVOKEDINFO", "(const OCSP_REVOKEDINFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_SERVICELOC", "(const OCSP_SERVICELOC *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_SERVICELOC", "(const OCSP_SERVICELOC *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_SERVICELOC", "(const OCSP_SERVICELOC *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_SERVICELOC", "(const OCSP_SERVICELOC *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_SIGNATURE", "(const OCSP_SIGNATURE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_SIGNATURE", "(const OCSP_SIGNATURE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_SIGNATURE", "(const OCSP_SIGNATURE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_SIGNATURE", "(const OCSP_SIGNATURE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_SINGLERESP", "(const OCSP_SINGLERESP *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OCSP_SINGLERESP", "(const OCSP_SINGLERESP *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_SINGLERESP", "(const OCSP_SINGLERESP *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OCSP_SINGLERESP", "(const OCSP_SINGLERESP *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_AA_DIST_POINT", "(const OSSL_AA_DIST_POINT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_AA_DIST_POINT", "(const OSSL_AA_DIST_POINT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_AA_DIST_POINT", "(const OSSL_AA_DIST_POINT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_AA_DIST_POINT", "(const OSSL_AA_DIST_POINT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(const OSSL_ALLOWED_ATTRIBUTES_CHOICE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(const OSSL_ALLOWED_ATTRIBUTES_CHOICE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(const OSSL_ALLOWED_ATTRIBUTES_CHOICE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_CHOICE", "(const OSSL_ALLOWED_ATTRIBUTES_CHOICE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(const OSSL_ALLOWED_ATTRIBUTES_ITEM *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(const OSSL_ALLOWED_ATTRIBUTES_ITEM *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(const OSSL_ALLOWED_ATTRIBUTES_ITEM *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_ITEM", "(const OSSL_ALLOWED_ATTRIBUTES_ITEM *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(const OSSL_ALLOWED_ATTRIBUTES_SYNTAX *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(const OSSL_ALLOWED_ATTRIBUTES_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(const OSSL_ALLOWED_ATTRIBUTES_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ALLOWED_ATTRIBUTES_SYNTAX", "(const OSSL_ALLOWED_ATTRIBUTES_SYNTAX *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATAV", "(const OSSL_ATAV *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ATAV", "(const OSSL_ATAV *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATAV", "(const OSSL_ATAV *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATAV", "(const OSSL_ATAV *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTES_SYNTAX", "(const OSSL_ATTRIBUTES_SYNTAX *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTES_SYNTAX", "(const OSSL_ATTRIBUTES_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTES_SYNTAX", "(const OSSL_ATTRIBUTES_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTES_SYNTAX", "(const OSSL_ATTRIBUTES_SYNTAX *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_DESCRIPTOR", "(const OSSL_ATTRIBUTE_DESCRIPTOR *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_DESCRIPTOR", "(const OSSL_ATTRIBUTE_DESCRIPTOR *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_DESCRIPTOR", "(const OSSL_ATTRIBUTE_DESCRIPTOR *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_DESCRIPTOR", "(const OSSL_ATTRIBUTE_DESCRIPTOR *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_MAPPING", "(const OSSL_ATTRIBUTE_MAPPING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_MAPPING", "(const OSSL_ATTRIBUTE_MAPPING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_MAPPING", "(const OSSL_ATTRIBUTE_MAPPING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_MAPPING", "(const OSSL_ATTRIBUTE_MAPPING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_MAPPINGS", "(const OSSL_ATTRIBUTE_MAPPINGS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_MAPPINGS", "(const OSSL_ATTRIBUTE_MAPPINGS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_MAPPINGS", "(const OSSL_ATTRIBUTE_MAPPINGS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_MAPPINGS", "(const OSSL_ATTRIBUTE_MAPPINGS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_TYPE_MAPPING", "(const OSSL_ATTRIBUTE_TYPE_MAPPING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_TYPE_MAPPING", "(const OSSL_ATTRIBUTE_TYPE_MAPPING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_TYPE_MAPPING", "(const OSSL_ATTRIBUTE_TYPE_MAPPING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_TYPE_MAPPING", "(const OSSL_ATTRIBUTE_TYPE_MAPPING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_VALUE_MAPPING", "(const OSSL_ATTRIBUTE_VALUE_MAPPING *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_VALUE_MAPPING", "(const OSSL_ATTRIBUTE_VALUE_MAPPING *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_VALUE_MAPPING", "(const OSSL_ATTRIBUTE_VALUE_MAPPING *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ATTRIBUTE_VALUE_MAPPING", "(const OSSL_ATTRIBUTE_VALUE_MAPPING *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(const OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(const OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(const OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX", "(const OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_BASIC_ATTR_CONSTRAINTS", "(const OSSL_BASIC_ATTR_CONSTRAINTS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_BASIC_ATTR_CONSTRAINTS", "(const OSSL_BASIC_ATTR_CONSTRAINTS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_BASIC_ATTR_CONSTRAINTS", "(const OSSL_BASIC_ATTR_CONSTRAINTS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_BASIC_ATTR_CONSTRAINTS", "(const OSSL_BASIC_ATTR_CONSTRAINTS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ATAVS", "(const OSSL_CMP_ATAVS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_ATAVS", "(const OSSL_CMP_ATAVS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ATAVS", "(const OSSL_CMP_ATAVS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ATAVS", "(const OSSL_CMP_ATAVS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CAKEYUPDANNCONTENT", "(const OSSL_CMP_CAKEYUPDANNCONTENT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_CAKEYUPDANNCONTENT", "(const OSSL_CMP_CAKEYUPDANNCONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CAKEYUPDANNCONTENT", "(const OSSL_CMP_CAKEYUPDANNCONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CAKEYUPDANNCONTENT", "(const OSSL_CMP_CAKEYUPDANNCONTENT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTIFIEDKEYPAIR", "(const OSSL_CMP_CERTIFIEDKEYPAIR *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTIFIEDKEYPAIR", "(const OSSL_CMP_CERTIFIEDKEYPAIR *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTIFIEDKEYPAIR", "(const OSSL_CMP_CERTIFIEDKEYPAIR *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTIFIEDKEYPAIR", "(const OSSL_CMP_CERTIFIEDKEYPAIR *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTORENCCERT", "(const OSSL_CMP_CERTORENCCERT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTORENCCERT", "(const OSSL_CMP_CERTORENCCERT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTORENCCERT", "(const OSSL_CMP_CERTORENCCERT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTORENCCERT", "(const OSSL_CMP_CERTORENCCERT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTREPMESSAGE", "(const OSSL_CMP_CERTREPMESSAGE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTREPMESSAGE", "(const OSSL_CMP_CERTREPMESSAGE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTREPMESSAGE", "(const OSSL_CMP_CERTREPMESSAGE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTREPMESSAGE", "(const OSSL_CMP_CERTREPMESSAGE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTREQTEMPLATE", "(const OSSL_CMP_CERTREQTEMPLATE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTREQTEMPLATE", "(const OSSL_CMP_CERTREQTEMPLATE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTREQTEMPLATE", "(const OSSL_CMP_CERTREQTEMPLATE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTREQTEMPLATE", "(const OSSL_CMP_CERTREQTEMPLATE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTRESPONSE", "(const OSSL_CMP_CERTRESPONSE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTRESPONSE", "(const OSSL_CMP_CERTRESPONSE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTRESPONSE", "(const OSSL_CMP_CERTRESPONSE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTRESPONSE", "(const OSSL_CMP_CERTRESPONSE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTSTATUS", "(const OSSL_CMP_CERTSTATUS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTSTATUS", "(const OSSL_CMP_CERTSTATUS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTSTATUS", "(const OSSL_CMP_CERTSTATUS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CERTSTATUS", "(const OSSL_CMP_CERTSTATUS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CHALLENGE", "(const OSSL_CMP_CHALLENGE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_CHALLENGE", "(const OSSL_CMP_CHALLENGE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CHALLENGE", "(const OSSL_CMP_CHALLENGE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CHALLENGE", "(const OSSL_CMP_CHALLENGE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CRLSOURCE", "(const OSSL_CMP_CRLSOURCE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_CRLSOURCE", "(const OSSL_CMP_CRLSOURCE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CRLSOURCE", "(const OSSL_CMP_CRLSOURCE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CRLSOURCE", "(const OSSL_CMP_CRLSOURCE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CRLSTATUS", "(const OSSL_CMP_CRLSTATUS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_CRLSTATUS", "(const OSSL_CMP_CRLSTATUS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CRLSTATUS", "(const OSSL_CMP_CRLSTATUS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_CRLSTATUS", "(const OSSL_CMP_CRLSTATUS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ERRORMSGCONTENT", "(const OSSL_CMP_ERRORMSGCONTENT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_ERRORMSGCONTENT", "(const OSSL_CMP_ERRORMSGCONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ERRORMSGCONTENT", "(const OSSL_CMP_ERRORMSGCONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ERRORMSGCONTENT", "(const OSSL_CMP_ERRORMSGCONTENT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ITAV", "(const OSSL_CMP_ITAV *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_ITAV", "(const OSSL_CMP_ITAV *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ITAV", "(const OSSL_CMP_ITAV *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ITAV", "(const OSSL_CMP_ITAV *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_KEYRECREPCONTENT", "(const OSSL_CMP_KEYRECREPCONTENT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_KEYRECREPCONTENT", "(const OSSL_CMP_KEYRECREPCONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_KEYRECREPCONTENT", "(const OSSL_CMP_KEYRECREPCONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_KEYRECREPCONTENT", "(const OSSL_CMP_KEYRECREPCONTENT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_MSG", "(const OSSL_CMP_MSG *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_MSG", "(const OSSL_CMP_MSG *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_MSG", "(const OSSL_CMP_MSG *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_MSG", "(const OSSL_CMP_MSG *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKIBODY", "(const OSSL_CMP_PKIBODY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKIBODY", "(const OSSL_CMP_PKIBODY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKIBODY", "(const OSSL_CMP_PKIBODY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKIBODY", "(const OSSL_CMP_PKIBODY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKIHEADER", "(const OSSL_CMP_PKIHEADER *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKIHEADER", "(const OSSL_CMP_PKIHEADER *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKIHEADER", "(const OSSL_CMP_PKIHEADER *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKIHEADER", "(const OSSL_CMP_PKIHEADER *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKISI", "(const OSSL_CMP_PKISI *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKISI", "(const OSSL_CMP_PKISI *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKISI", "(const OSSL_CMP_PKISI *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PKISI", "(const OSSL_CMP_PKISI *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_POLLREP", "(const OSSL_CMP_POLLREP *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_POLLREP", "(const OSSL_CMP_POLLREP *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_POLLREP", "(const OSSL_CMP_POLLREP *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_POLLREP", "(const OSSL_CMP_POLLREP *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_POLLREQ", "(const OSSL_CMP_POLLREQ *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_POLLREQ", "(const OSSL_CMP_POLLREQ *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_POLLREQ", "(const OSSL_CMP_POLLREQ *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_POLLREQ", "(const OSSL_CMP_POLLREQ *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PROTECTEDPART", "(const OSSL_CMP_PROTECTEDPART *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_PROTECTEDPART", "(const OSSL_CMP_PROTECTEDPART *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PROTECTEDPART", "(const OSSL_CMP_PROTECTEDPART *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_PROTECTEDPART", "(const OSSL_CMP_PROTECTEDPART *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVANNCONTENT", "(const OSSL_CMP_REVANNCONTENT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVANNCONTENT", "(const OSSL_CMP_REVANNCONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVANNCONTENT", "(const OSSL_CMP_REVANNCONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVANNCONTENT", "(const OSSL_CMP_REVANNCONTENT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVDETAILS", "(const OSSL_CMP_REVDETAILS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVDETAILS", "(const OSSL_CMP_REVDETAILS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVDETAILS", "(const OSSL_CMP_REVDETAILS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVDETAILS", "(const OSSL_CMP_REVDETAILS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVREPCONTENT", "(const OSSL_CMP_REVREPCONTENT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVREPCONTENT", "(const OSSL_CMP_REVREPCONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVREPCONTENT", "(const OSSL_CMP_REVREPCONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_REVREPCONTENT", "(const OSSL_CMP_REVREPCONTENT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ROOTCAKEYUPDATE", "(const OSSL_CMP_ROOTCAKEYUPDATE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CMP_ROOTCAKEYUPDATE", "(const OSSL_CMP_ROOTCAKEYUPDATE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ROOTCAKEYUPDATE", "(const OSSL_CMP_ROOTCAKEYUPDATE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CMP_ROOTCAKEYUPDATE", "(const OSSL_CMP_ROOTCAKEYUPDATE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ATTRIBUTETYPEANDVALUE", "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTID", "(const OSSL_CRMF_CERTID *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTID", "(const OSSL_CRMF_CERTID *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTID", "(const OSSL_CRMF_CERTID *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTID", "(const OSSL_CRMF_CERTID *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTREQUEST", "(const OSSL_CRMF_CERTREQUEST *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTREQUEST", "(const OSSL_CRMF_CERTREQUEST *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTREQUEST", "(const OSSL_CRMF_CERTREQUEST *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTREQUEST", "(const OSSL_CRMF_CERTREQUEST *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTTEMPLATE", "(const OSSL_CRMF_CERTTEMPLATE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTTEMPLATE", "(const OSSL_CRMF_CERTTEMPLATE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTTEMPLATE", "(const OSSL_CRMF_CERTTEMPLATE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_CERTTEMPLATE", "(const OSSL_CRMF_CERTTEMPLATE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCKEYWITHID", "(const OSSL_CRMF_ENCKEYWITHID *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCKEYWITHID", "(const OSSL_CRMF_ENCKEYWITHID *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCKEYWITHID", "(const OSSL_CRMF_ENCKEYWITHID *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCKEYWITHID", "(const OSSL_CRMF_ENCKEYWITHID *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(const OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(const OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(const OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER", "(const OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCRYPTEDKEY", "(const OSSL_CRMF_ENCRYPTEDKEY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCRYPTEDKEY", "(const OSSL_CRMF_ENCRYPTEDKEY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCRYPTEDKEY", "(const OSSL_CRMF_ENCRYPTEDKEY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCRYPTEDKEY", "(const OSSL_CRMF_ENCRYPTEDKEY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCRYPTEDVALUE", "(const OSSL_CRMF_ENCRYPTEDVALUE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCRYPTEDVALUE", "(const OSSL_CRMF_ENCRYPTEDVALUE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCRYPTEDVALUE", "(const OSSL_CRMF_ENCRYPTEDVALUE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_ENCRYPTEDVALUE", "(const OSSL_CRMF_ENCRYPTEDVALUE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_MSG", "(const OSSL_CRMF_MSG *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_MSG", "(const OSSL_CRMF_MSG *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_MSG", "(const OSSL_CRMF_MSG *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_MSG", "(const OSSL_CRMF_MSG *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_MSGS", "(const OSSL_CRMF_MSGS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_MSGS", "(const OSSL_CRMF_MSGS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_MSGS", "(const OSSL_CRMF_MSGS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_MSGS", "(const OSSL_CRMF_MSGS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_OPTIONALVALIDITY", "(const OSSL_CRMF_OPTIONALVALIDITY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_OPTIONALVALIDITY", "(const OSSL_CRMF_OPTIONALVALIDITY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_OPTIONALVALIDITY", "(const OSSL_CRMF_OPTIONALVALIDITY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_OPTIONALVALIDITY", "(const OSSL_CRMF_OPTIONALVALIDITY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PBMPARAMETER", "(const OSSL_CRMF_PBMPARAMETER *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PBMPARAMETER", "(const OSSL_CRMF_PBMPARAMETER *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PBMPARAMETER", "(const OSSL_CRMF_PBMPARAMETER *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PBMPARAMETER", "(const OSSL_CRMF_PBMPARAMETER *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PKIPUBLICATIONINFO", "(const OSSL_CRMF_PKIPUBLICATIONINFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PKIPUBLICATIONINFO", "(const OSSL_CRMF_PKIPUBLICATIONINFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PKIPUBLICATIONINFO", "(const OSSL_CRMF_PKIPUBLICATIONINFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PKIPUBLICATIONINFO", "(const OSSL_CRMF_PKIPUBLICATIONINFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PKMACVALUE", "(const OSSL_CRMF_PKMACVALUE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PKMACVALUE", "(const OSSL_CRMF_PKMACVALUE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PKMACVALUE", "(const OSSL_CRMF_PKMACVALUE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PKMACVALUE", "(const OSSL_CRMF_PKMACVALUE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPO", "(const OSSL_CRMF_POPO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPO", "(const OSSL_CRMF_POPO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPO", "(const OSSL_CRMF_POPO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPO", "(const OSSL_CRMF_POPO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOPRIVKEY", "(const OSSL_CRMF_POPOPRIVKEY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOPRIVKEY", "(const OSSL_CRMF_POPOPRIVKEY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOPRIVKEY", "(const OSSL_CRMF_POPOPRIVKEY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOPRIVKEY", "(const OSSL_CRMF_POPOPRIVKEY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEY", "(const OSSL_CRMF_POPOSIGNINGKEY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEY", "(const OSSL_CRMF_POPOSIGNINGKEY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEY", "(const OSSL_CRMF_POPOSIGNINGKEY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEY", "(const OSSL_CRMF_POPOSIGNINGKEY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(const OSSL_CRMF_POPOSIGNINGKEYINPUT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(const OSSL_CRMF_POPOSIGNINGKEYINPUT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(const OSSL_CRMF_POPOSIGNINGKEYINPUT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT", "(const OSSL_CRMF_POPOSIGNINGKEYINPUT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(const OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(const OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(const OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO", "(const OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PRIVATEKEYINFO", "(const OSSL_CRMF_PRIVATEKEYINFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PRIVATEKEYINFO", "(const OSSL_CRMF_PRIVATEKEYINFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PRIVATEKEYINFO", "(const OSSL_CRMF_PRIVATEKEYINFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_PRIVATEKEYINFO", "(const OSSL_CRMF_PRIVATEKEYINFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_SINGLEPUBINFO", "(const OSSL_CRMF_SINGLEPUBINFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_CRMF_SINGLEPUBINFO", "(const OSSL_CRMF_SINGLEPUBINFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_SINGLEPUBINFO", "(const OSSL_CRMF_SINGLEPUBINFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_CRMF_SINGLEPUBINFO", "(const OSSL_CRMF_SINGLEPUBINFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_DAY_TIME", "(const OSSL_DAY_TIME *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_DAY_TIME", "(const OSSL_DAY_TIME *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_DAY_TIME", "(const OSSL_DAY_TIME *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_DAY_TIME", "(const OSSL_DAY_TIME *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_DAY_TIME_BAND", "(const OSSL_DAY_TIME_BAND *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_DAY_TIME_BAND", "(const OSSL_DAY_TIME_BAND *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_DAY_TIME_BAND", "(const OSSL_DAY_TIME_BAND *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_DAY_TIME_BAND", "(const OSSL_DAY_TIME_BAND *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_HASH", "(const OSSL_HASH *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_HASH", "(const OSSL_HASH *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_HASH", "(const OSSL_HASH *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_HASH", "(const OSSL_HASH *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_IETF_ATTR_SYNTAX", "(const OSSL_IETF_ATTR_SYNTAX *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_IETF_ATTR_SYNTAX", "(const OSSL_IETF_ATTR_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_IETF_ATTR_SYNTAX", "(const OSSL_IETF_ATTR_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_IETF_ATTR_SYNTAX", "(const OSSL_IETF_ATTR_SYNTAX *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_INFO_SYNTAX", "(const OSSL_INFO_SYNTAX *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_INFO_SYNTAX", "(const OSSL_INFO_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_INFO_SYNTAX", "(const OSSL_INFO_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_INFO_SYNTAX", "(const OSSL_INFO_SYNTAX *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_INFO_SYNTAX_POINTER", "(const OSSL_INFO_SYNTAX_POINTER *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_INFO_SYNTAX_POINTER", "(const OSSL_INFO_SYNTAX_POINTER *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_INFO_SYNTAX_POINTER", "(const OSSL_INFO_SYNTAX_POINTER *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_INFO_SYNTAX_POINTER", "(const OSSL_INFO_SYNTAX_POINTER *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_NAMED_DAY", "(const OSSL_NAMED_DAY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_NAMED_DAY", "(const OSSL_NAMED_DAY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_NAMED_DAY", "(const OSSL_NAMED_DAY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_NAMED_DAY", "(const OSSL_NAMED_DAY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_PRIVILEGE_POLICY_ID", "(const OSSL_PRIVILEGE_POLICY_ID *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_PRIVILEGE_POLICY_ID", "(const OSSL_PRIVILEGE_POLICY_ID *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_PRIVILEGE_POLICY_ID", "(const OSSL_PRIVILEGE_POLICY_ID *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_PRIVILEGE_POLICY_ID", "(const OSSL_PRIVILEGE_POLICY_ID *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ROLE_SPEC_CERT_ID", "(const OSSL_ROLE_SPEC_CERT_ID *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ROLE_SPEC_CERT_ID", "(const OSSL_ROLE_SPEC_CERT_ID *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ROLE_SPEC_CERT_ID", "(const OSSL_ROLE_SPEC_CERT_ID *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ROLE_SPEC_CERT_ID", "(const OSSL_ROLE_SPEC_CERT_ID *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(const OSSL_ROLE_SPEC_CERT_ID_SYNTAX *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(const OSSL_ROLE_SPEC_CERT_ID_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(const OSSL_ROLE_SPEC_CERT_ID_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_ROLE_SPEC_CERT_ID_SYNTAX", "(const OSSL_ROLE_SPEC_CERT_ID_SYNTAX *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TARGET", "(const OSSL_TARGET *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TARGET", "(const OSSL_TARGET *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TARGET", "(const OSSL_TARGET *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TARGET", "(const OSSL_TARGET *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TARGETING_INFORMATION", "(const OSSL_TARGETING_INFORMATION *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TARGETING_INFORMATION", "(const OSSL_TARGETING_INFORMATION *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TARGETING_INFORMATION", "(const OSSL_TARGETING_INFORMATION *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TARGETING_INFORMATION", "(const OSSL_TARGETING_INFORMATION *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TARGETS", "(const OSSL_TARGETS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TARGETS", "(const OSSL_TARGETS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TARGETS", "(const OSSL_TARGETS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TARGETS", "(const OSSL_TARGETS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_PERIOD", "(const OSSL_TIME_PERIOD *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TIME_PERIOD", "(const OSSL_TIME_PERIOD *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_PERIOD", "(const OSSL_TIME_PERIOD *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_PERIOD", "(const OSSL_TIME_PERIOD *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC", "(const OSSL_TIME_SPEC *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC", "(const OSSL_TIME_SPEC *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC", "(const OSSL_TIME_SPEC *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC", "(const OSSL_TIME_SPEC *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_ABSOLUTE", "(const OSSL_TIME_SPEC_ABSOLUTE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_ABSOLUTE", "(const OSSL_TIME_SPEC_ABSOLUTE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_ABSOLUTE", "(const OSSL_TIME_SPEC_ABSOLUTE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_ABSOLUTE", "(const OSSL_TIME_SPEC_ABSOLUTE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_DAY", "(const OSSL_TIME_SPEC_DAY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_DAY", "(const OSSL_TIME_SPEC_DAY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_DAY", "(const OSSL_TIME_SPEC_DAY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_DAY", "(const OSSL_TIME_SPEC_DAY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_MONTH", "(const OSSL_TIME_SPEC_MONTH *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_MONTH", "(const OSSL_TIME_SPEC_MONTH *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_MONTH", "(const OSSL_TIME_SPEC_MONTH *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_MONTH", "(const OSSL_TIME_SPEC_MONTH *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_TIME", "(const OSSL_TIME_SPEC_TIME *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_TIME", "(const OSSL_TIME_SPEC_TIME *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_TIME", "(const OSSL_TIME_SPEC_TIME *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_TIME", "(const OSSL_TIME_SPEC_TIME *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_WEEKS", "(const OSSL_TIME_SPEC_WEEKS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_WEEKS", "(const OSSL_TIME_SPEC_WEEKS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_WEEKS", "(const OSSL_TIME_SPEC_WEEKS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_WEEKS", "(const OSSL_TIME_SPEC_WEEKS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_X_DAY_OF", "(const OSSL_TIME_SPEC_X_DAY_OF *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_X_DAY_OF", "(const OSSL_TIME_SPEC_X_DAY_OF *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_X_DAY_OF", "(const OSSL_TIME_SPEC_X_DAY_OF *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_TIME_SPEC_X_DAY_OF", "(const OSSL_TIME_SPEC_X_DAY_OF *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_USER_NOTICE_SYNTAX", "(const OSSL_USER_NOTICE_SYNTAX *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OSSL_USER_NOTICE_SYNTAX", "(const OSSL_USER_NOTICE_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_USER_NOTICE_SYNTAX", "(const OSSL_USER_NOTICE_SYNTAX *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OSSL_USER_NOTICE_SYNTAX", "(const OSSL_USER_NOTICE_SYNTAX *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OTHERNAME", "(const OTHERNAME *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_OTHERNAME", "(const OTHERNAME *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_OTHERNAME", "(const OTHERNAME *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_OTHERNAME", "(const OTHERNAME *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PBE2PARAM", "(const PBE2PARAM *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PBE2PARAM", "(const PBE2PARAM *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PBE2PARAM", "(const PBE2PARAM *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PBE2PARAM", "(const PBE2PARAM *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PBEPARAM", "(const PBEPARAM *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PBEPARAM", "(const PBEPARAM *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PBEPARAM", "(const PBEPARAM *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PBEPARAM", "(const PBEPARAM *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PBKDF2PARAM", "(const PBKDF2PARAM *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PBKDF2PARAM", "(const PBKDF2PARAM *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PBKDF2PARAM", "(const PBKDF2PARAM *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PBKDF2PARAM", "(const PBKDF2PARAM *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PBMAC1PARAM", "(const PBMAC1PARAM *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PBMAC1PARAM", "(const PBMAC1PARAM *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PBMAC1PARAM", "(const PBMAC1PARAM *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PBMAC1PARAM", "(const PBMAC1PARAM *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12", "(const PKCS12 *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS12", "(const PKCS12 *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12", "(const PKCS12 *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12", "(const PKCS12 *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_BAGS", "(const PKCS12_BAGS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS12_BAGS", "(const PKCS12_BAGS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_BAGS", "(const PKCS12_BAGS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_BAGS", "(const PKCS12_BAGS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_MAC_DATA", "(const PKCS12_MAC_DATA *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS12_MAC_DATA", "(const PKCS12_MAC_DATA *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_MAC_DATA", "(const PKCS12_MAC_DATA *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_MAC_DATA", "(const PKCS12_MAC_DATA *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_SAFEBAG", "(const PKCS12_SAFEBAG *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS12_SAFEBAG", "(const PKCS12_SAFEBAG *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_SAFEBAG", "(const PKCS12_SAFEBAG *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_SAFEBAG", "(const PKCS12_SAFEBAG *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_bio", "(BIO *,const PKCS12 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS12_fp", "(FILE *,const PKCS12 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7", "(const PKCS7 *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7", "(const PKCS7 *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7", "(const PKCS7 *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7", "(const PKCS7 *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_DIGEST", "(const PKCS7_DIGEST *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_DIGEST", "(const PKCS7_DIGEST *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_DIGEST", "(const PKCS7_DIGEST *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_DIGEST", "(const PKCS7_DIGEST *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ENCRYPT", "(const PKCS7_ENCRYPT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_ENCRYPT", "(const PKCS7_ENCRYPT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ENCRYPT", "(const PKCS7_ENCRYPT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ENCRYPT", "(const PKCS7_ENCRYPT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ENC_CONTENT", "(const PKCS7_ENC_CONTENT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_ENC_CONTENT", "(const PKCS7_ENC_CONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ENC_CONTENT", "(const PKCS7_ENC_CONTENT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ENC_CONTENT", "(const PKCS7_ENC_CONTENT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ENVELOPE", "(const PKCS7_ENVELOPE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_ENVELOPE", "(const PKCS7_ENVELOPE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ENVELOPE", "(const PKCS7_ENVELOPE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ENVELOPE", "(const PKCS7_ENVELOPE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ISSUER_AND_SERIAL", "(const PKCS7_ISSUER_AND_SERIAL *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_ISSUER_AND_SERIAL", "(const PKCS7_ISSUER_AND_SERIAL *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ISSUER_AND_SERIAL", "(const PKCS7_ISSUER_AND_SERIAL *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_ISSUER_AND_SERIAL", "(const PKCS7_ISSUER_AND_SERIAL *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_NDEF", "(const PKCS7 *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_NDEF", "(const PKCS7 *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_NDEF", "(const PKCS7 *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_NDEF", "(const PKCS7 *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_RECIP_INFO", "(const PKCS7_RECIP_INFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_RECIP_INFO", "(const PKCS7_RECIP_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_RECIP_INFO", "(const PKCS7_RECIP_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_RECIP_INFO", "(const PKCS7_RECIP_INFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_SIGNED", "(const PKCS7_SIGNED *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_SIGNED", "(const PKCS7_SIGNED *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_SIGNED", "(const PKCS7_SIGNED *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_SIGNED", "(const PKCS7_SIGNED *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_SIGNER_INFO", "(const PKCS7_SIGNER_INFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_SIGNER_INFO", "(const PKCS7_SIGNER_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_SIGNER_INFO", "(const PKCS7_SIGNER_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_SIGNER_INFO", "(const PKCS7_SIGNER_INFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_SIGN_ENVELOPE", "(const PKCS7_SIGN_ENVELOPE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_SIGN_ENVELOPE", "(const PKCS7_SIGN_ENVELOPE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_SIGN_ENVELOPE", "(const PKCS7_SIGN_ENVELOPE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_SIGN_ENVELOPE", "(const PKCS7_SIGN_ENVELOPE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_bio", "(BIO *,const PKCS7 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_bio_stream", "(BIO *,PKCS7 *,BIO *,int)", "", "Argument[*0]", "Argument[*0].Field[**prev_bio].Field[**next_bio]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_bio_stream", "(BIO *,PKCS7 *,BIO *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS7_bio_stream", "(BIO *,PKCS7 *,BIO *,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS7_fp", "(FILE *,const PKCS7 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey", "(const EVP_PKEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey", "(const EVP_PKEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey", "(const EVP_PKEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey_bio", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey_bio", "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey_fp", "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey_fp", "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey_nid_bio", "(BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey_nid_bio", "(BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey_nid_fp", "(FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *)", "", "Argument[*6]", "Argument[**6]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS8PrivateKey_nid_fp", "(FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *)", "", "Argument[6]", "Argument[**6]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PKCS8_PRIV_KEY_INFO", "(const PKCS8_PRIV_KEY_INFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKCS8_PRIV_KEY_INFO", "(const PKCS8_PRIV_KEY_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS8_PRIV_KEY_INFO", "(const PKCS8_PRIV_KEY_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKCS8_PRIV_KEY_INFO", "(const PKCS8_PRIV_KEY_INFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKEY_USAGE_PERIOD", "(const PKEY_USAGE_PERIOD *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PKEY_USAGE_PERIOD", "(const PKEY_USAGE_PERIOD *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PKEY_USAGE_PERIOD", "(const PKEY_USAGE_PERIOD *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PKEY_USAGE_PERIOD", "(const PKEY_USAGE_PERIOD *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_POLICYINFO", "(const POLICYINFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_POLICYINFO", "(const POLICYINFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_POLICYINFO", "(const POLICYINFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_POLICYINFO", "(const POLICYINFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_POLICYQUALINFO", "(const POLICYQUALINFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_POLICYQUALINFO", "(const POLICYQUALINFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_POLICYQUALINFO", "(const POLICYQUALINFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_POLICYQUALINFO", "(const POLICYQUALINFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PROFESSION_INFO", "(const PROFESSION_INFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PROFESSION_INFO", "(const PROFESSION_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PROFESSION_INFO", "(const PROFESSION_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PROFESSION_INFO", "(const PROFESSION_INFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PROXY_CERT_INFO_EXTENSION", "(const PROXY_CERT_INFO_EXTENSION *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PROXY_CERT_INFO_EXTENSION", "(const PROXY_CERT_INFO_EXTENSION *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PROXY_CERT_INFO_EXTENSION", "(const PROXY_CERT_INFO_EXTENSION *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PROXY_CERT_INFO_EXTENSION", "(const PROXY_CERT_INFO_EXTENSION *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PROXY_POLICY", "(const PROXY_POLICY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_PROXY_POLICY", "(const PROXY_POLICY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PROXY_POLICY", "(const PROXY_POLICY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_PROXY_POLICY", "(const PROXY_POLICY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_PUBKEY", "(const EVP_PKEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PUBKEY", "(const EVP_PKEY *,unsigned char **)", "", "Argument[0]", "Argument[**1].Field[**data].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "i2d_PUBKEY", "(const EVP_PKEY *,unsigned char **)", "", "Argument[0]", "Argument[**1].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "i2d_PUBKEY", "(const EVP_PKEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PUBKEY", "(const EVP_PKEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PrivateKey", "(const EVP_PKEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PrivateKey", "(const EVP_PKEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PrivateKey", "(const EVP_PKEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PublicKey", "(const EVP_PKEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PublicKey", "(const EVP_PKEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_PublicKey", "(const EVP_PKEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_RSAPrivateKey", "(const RSA *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_RSAPrivateKey", "(const RSA *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_RSAPrivateKey", "(const RSA *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_RSAPrivateKey", "(const RSA *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_RSAPrivateKey_bio", "(BIO *,const RSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_RSAPrivateKey_fp", "(FILE *,const RSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_RSAPublicKey", "(const RSA *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_RSAPublicKey", "(const RSA *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_RSAPublicKey", "(const RSA *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_RSAPublicKey", "(const RSA *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_RSAPublicKey_bio", "(BIO *,const RSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_RSAPublicKey_fp", "(FILE *,const RSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_RSA_OAEP_PARAMS", "(const RSA_OAEP_PARAMS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_RSA_OAEP_PARAMS", "(const RSA_OAEP_PARAMS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_RSA_OAEP_PARAMS", "(const RSA_OAEP_PARAMS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_RSA_OAEP_PARAMS", "(const RSA_OAEP_PARAMS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_RSA_PSS_PARAMS", "(const RSA_PSS_PARAMS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_RSA_PSS_PARAMS", "(const RSA_PSS_PARAMS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_RSA_PSS_PARAMS", "(const RSA_PSS_PARAMS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_RSA_PSS_PARAMS", "(const RSA_PSS_PARAMS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_RSA_PUBKEY", "(const RSA *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_RSA_PUBKEY", "(const RSA *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_RSA_PUBKEY", "(const RSA *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_RSA_PUBKEY_fp", "(FILE *,const RSA *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_SCRYPT_PARAMS", "(const SCRYPT_PARAMS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_SCRYPT_PARAMS", "(const SCRYPT_PARAMS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_SCRYPT_PARAMS", "(const SCRYPT_PARAMS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_SCRYPT_PARAMS", "(const SCRYPT_PARAMS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_SCT_LIST", "(const stack_st_SCT *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_SCT_LIST", "(const stack_st_SCT *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_SCT_LIST", "(const stack_st_SCT *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_SM2_Ciphertext", "(const SM2_Ciphertext *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_SM2_Ciphertext", "(const SM2_Ciphertext *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_SM2_Ciphertext", "(const SM2_Ciphertext *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_SM2_Ciphertext", "(const SM2_Ciphertext *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_SSL_SESSION", "(const SSL_SESSION *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_SSL_SESSION", "(const SSL_SESSION *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_SSL_SESSION", "(const SSL_SESSION *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_SXNET", "(const SXNET *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_SXNET", "(const SXNET *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_SXNET", "(const SXNET *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_SXNET", "(const SXNET *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_SXNETID", "(const SXNETID *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_SXNETID", "(const SXNETID *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_SXNETID", "(const SXNETID *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_SXNETID", "(const SXNETID *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_ACCURACY", "(const TS_ACCURACY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_TS_ACCURACY", "(const TS_ACCURACY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_ACCURACY", "(const TS_ACCURACY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_TS_ACCURACY", "(const TS_ACCURACY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_MSG_IMPRINT", "(const TS_MSG_IMPRINT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_TS_MSG_IMPRINT", "(const TS_MSG_IMPRINT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_MSG_IMPRINT", "(const TS_MSG_IMPRINT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_TS_MSG_IMPRINT", "(const TS_MSG_IMPRINT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_REQ", "(const TS_REQ *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_TS_REQ", "(const TS_REQ *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_REQ", "(const TS_REQ *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_TS_REQ", "(const TS_REQ *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_RESP", "(const TS_RESP *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_TS_RESP", "(const TS_RESP *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_RESP", "(const TS_RESP *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_TS_RESP", "(const TS_RESP *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_STATUS_INFO", "(const TS_STATUS_INFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_TS_STATUS_INFO", "(const TS_STATUS_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_STATUS_INFO", "(const TS_STATUS_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_TS_STATUS_INFO", "(const TS_STATUS_INFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_TST_INFO", "(const TS_TST_INFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_TS_TST_INFO", "(const TS_TST_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_TS_TST_INFO", "(const TS_TST_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_TS_TST_INFO", "(const TS_TST_INFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_USERNOTICE", "(const USERNOTICE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_USERNOTICE", "(const USERNOTICE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_USERNOTICE", "(const USERNOTICE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_USERNOTICE", "(const USERNOTICE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509", "(const X509 *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509", "(const X509 *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509", "(const X509 *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509", "(const X509 *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ACERT", "(const X509_ACERT *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_ACERT", "(const X509_ACERT *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ACERT", "(const X509_ACERT *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ACERT", "(const X509_ACERT *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ACERT_bio", "(BIO *,const X509_ACERT *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ACERT_fp", "(FILE *,const X509_ACERT *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ALGOR", "(const X509_ALGOR *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_ALGOR", "(const X509_ALGOR *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ALGOR", "(const X509_ALGOR *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ALGOR", "(const X509_ALGOR *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ALGORS", "(const X509_ALGORS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_ALGORS", "(const X509_ALGORS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ALGORS", "(const X509_ALGORS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ALGORS", "(const X509_ALGORS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ATTRIBUTE", "(const X509_ATTRIBUTE *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_ATTRIBUTE", "(const X509_ATTRIBUTE *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ATTRIBUTE", "(const X509_ATTRIBUTE *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_ATTRIBUTE", "(const X509_ATTRIBUTE *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_AUX", "(const X509 *,unsigned char **)", "", "Argument[**1]", "Argument[*0].Field[*aux].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_AUX", "(const X509 *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_AUX", "(const X509 *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_AUX", "(const X509 *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_AUX", "(const X509 *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CERT_AUX", "(const X509_CERT_AUX *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_CERT_AUX", "(const X509_CERT_AUX *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CERT_AUX", "(const X509_CERT_AUX *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CERT_AUX", "(const X509_CERT_AUX *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CINF", "(const X509_CINF *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_CINF", "(const X509_CINF *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CINF", "(const X509_CINF *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CINF", "(const X509_CINF *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CRL", "(const X509_CRL *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_CRL", "(const X509_CRL *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CRL", "(const X509_CRL *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CRL", "(const X509_CRL *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CRL_INFO", "(const X509_CRL_INFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_CRL_INFO", "(const X509_CRL_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CRL_INFO", "(const X509_CRL_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CRL_INFO", "(const X509_CRL_INFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CRL_bio", "(BIO *,const X509_CRL *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_CRL_fp", "(FILE *,const X509_CRL *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_EXTENSION", "(const X509_EXTENSION *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_EXTENSION", "(const X509_EXTENSION *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_EXTENSION", "(const X509_EXTENSION *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_EXTENSION", "(const X509_EXTENSION *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_EXTENSIONS", "(const X509_EXTENSIONS *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_EXTENSIONS", "(const X509_EXTENSIONS *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_EXTENSIONS", "(const X509_EXTENSIONS *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_EXTENSIONS", "(const X509_EXTENSIONS *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_NAME", "(const X509_NAME *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_NAME", "(const X509_NAME *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_NAME", "(const X509_NAME *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_NAME", "(const X509_NAME *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_NAME_ENTRY", "(const X509_NAME_ENTRY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_NAME_ENTRY", "(const X509_NAME_ENTRY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_NAME_ENTRY", "(const X509_NAME_ENTRY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_NAME_ENTRY", "(const X509_NAME_ENTRY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_PUBKEY", "(const X509_PUBKEY *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_PUBKEY", "(const X509_PUBKEY *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_PUBKEY", "(const X509_PUBKEY *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_PUBKEY", "(const X509_PUBKEY *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REQ", "(const X509_REQ *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_REQ", "(const X509_REQ *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REQ", "(const X509_REQ *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REQ", "(const X509_REQ *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REQ_INFO", "(const X509_REQ_INFO *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_REQ_INFO", "(const X509_REQ_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REQ_INFO", "(const X509_REQ_INFO *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REQ_INFO", "(const X509_REQ_INFO *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REQ_bio", "(BIO *,const X509_REQ *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REQ_fp", "(FILE *,const X509_REQ *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REVOKED", "(const X509_REVOKED *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_REVOKED", "(const X509_REVOKED *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REVOKED", "(const X509_REVOKED *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_REVOKED", "(const X509_REVOKED *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_SIG", "(const X509_SIG *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_SIG", "(const X509_SIG *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_SIG", "(const X509_SIG *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_SIG", "(const X509_SIG *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_VAL", "(const X509_VAL *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_X509_VAL", "(const X509_VAL *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_VAL", "(const X509_VAL *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_X509_VAL", "(const X509_VAL *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_bio", "(BIO *,const X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_X509_fp", "(FILE *,const X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "i2d_int_dhx", "(const int_dhx942_dh *,unsigned char **)", "", "Argument[**1]", "Argument[0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "i2d_int_dhx", "(const int_dhx942_dh *,unsigned char **)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_int_dhx", "(const int_dhx942_dh *,unsigned char **)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "i2d_int_dhx", "(const int_dhx942_dh *,unsigned char **)", "", "Argument[0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "i2d_re_X509_CRL_tbs", "(X509_CRL *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_re_X509_CRL_tbs", "(X509_CRL *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_re_X509_CRL_tbs", "(X509_CRL *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_re_X509_REQ_tbs", "(X509_REQ *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_re_X509_REQ_tbs", "(X509_REQ *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_re_X509_REQ_tbs", "(X509_REQ *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_re_X509_tbs", "(X509 *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_re_X509_tbs", "(X509 *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2d_re_X509_tbs", "(X509 *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_ECPublicKey", "(const EC_KEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_ECPublicKey", "(const EC_KEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_ECPublicKey", "(const EC_KEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_SCT", "(const SCT *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_SCT", "(const SCT *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_SCT", "(const SCT *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_SCT_LIST", "(const stack_st_SCT *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_SCT_LIST", "(const stack_st_SCT *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_SCT_LIST", "(const stack_st_SCT *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_SCT_signature", "(const SCT *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_SCT_signature", "(const SCT *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "i2o_SCT_signature", "(const SCT *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "i2s_ASN1_ENUMERATED_TABLE", "(X509V3_EXT_METHOD *,const ASN1_ENUMERATED *)", "", "Argument[*0].Field[**usr_data].Field[**lname]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "i2s_ASN1_ENUMERATED_TABLE", "(X509V3_EXT_METHOD *,const ASN1_ENUMERATED *)", "", "Argument[*0].Field[**usr_data].Field[*lname]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "i2s_ASN1_IA5STRING", "(X509V3_EXT_METHOD *,ASN1_IA5STRING *)", "", "Argument[*1].Field[**data]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "i2s_ASN1_IA5STRING", "(X509V3_EXT_METHOD *,ASN1_IA5STRING *)", "", "Argument[*1].Field[*data]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "i2s_ASN1_OCTET_STRING", "(X509V3_EXT_METHOD *,const ASN1_OCTET_STRING *)", "", "Argument[*1].Field[**data]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "i2s_ASN1_OCTET_STRING", "(X509V3_EXT_METHOD *,const ASN1_OCTET_STRING *)", "", "Argument[*1].Field[*data]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "i2s_ASN1_UTF8STRING", "(X509V3_EXT_METHOD *,ASN1_UTF8STRING *)", "", "Argument[*1].Field[**data]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "i2s_ASN1_UTF8STRING", "(X509V3_EXT_METHOD *,ASN1_UTF8STRING *)", "", "Argument[*1].Field[*data]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "i2t_ASN1_OBJECT", "(char *,int,const ASN1_OBJECT *)", "", "Argument[*2].Field[**data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "i2t_ASN1_OBJECT", "(char *,int,const ASN1_OBJECT *)", "", "Argument[*2].Field[*data]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "i2t_ASN1_OBJECT", "(char *,int,const ASN1_OBJECT *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "i2t_ASN1_OBJECT", "(char *,int,const ASN1_OBJECT *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "i2v_ASN1_BIT_STRING", "(X509V3_EXT_METHOD *,ASN1_BIT_STRING *,stack_st_CONF_VALUE *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "i2v_ASN1_BIT_STRING", "(X509V3_EXT_METHOD *,ASN1_BIT_STRING *,stack_st_CONF_VALUE *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "i2v_GENERAL_NAME", "(X509V3_EXT_METHOD *,GENERAL_NAME *,stack_st_CONF_VALUE *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "i2v_GENERAL_NAME", "(X509V3_EXT_METHOD *,GENERAL_NAME *,stack_st_CONF_VALUE *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "i2v_GENERAL_NAMES", "(X509V3_EXT_METHOD *,GENERAL_NAMES *,stack_st_CONF_VALUE *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "i2v_GENERAL_NAMES", "(X509V3_EXT_METHOD *,GENERAL_NAMES *,stack_st_CONF_VALUE *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "index_name_cmp", "(const OPENSSL_CSTRING *,const OPENSSL_CSTRING *)", "", "Argument[**0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "index_name_cmp", "(const OPENSSL_CSTRING *,const OPENSSL_CSTRING *)", "", "Argument[**1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "index_name_cmp", "(const OPENSSL_CSTRING *,const OPENSSL_CSTRING *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "index_name_cmp", "(const OPENSSL_CSTRING *,const OPENSSL_CSTRING *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "index_name_cmp", "(const OPENSSL_CSTRING *,const OPENSSL_CSTRING *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "index_name_cmp", "(const OPENSSL_CSTRING *,const OPENSSL_CSTRING *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "info_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "info_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "init_client", "(int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "init_gen_str", "(EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[**0].Field[**keytype]", "value", "dfc-generated"] + - ["", "", True, "init_gen_str", "(EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*4]", "Argument[**0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "init_gen_str", "(EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[*5]", "Argument[**0].Field[**propquery]", "value", "dfc-generated"] + - ["", "", True, "init_gen_str", "(EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "init_gen_str", "(EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[**0].Field[*keytype]", "value", "dfc-generated"] + - ["", "", True, "init_gen_str", "(EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**0].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "init_gen_str", "(EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[**0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "init_gen_str", "(EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *)", "", "Argument[5]", "Argument[**0].Field[**propquery]", "taint", "dfc-generated"] + - ["", "", True, "int_bn_mod_inverse", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *)", "", "Argument[*0]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "int_bn_mod_inverse", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "int_bn_mod_inverse", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *)", "", "Argument[*2]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "int_bn_mod_inverse", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "int_bn_mod_inverse", "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "kdf_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "kdf_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "list_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "list_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "load_cert_certs", "(const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "load_cert_certs", "(const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "load_cert_certs", "(const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "load_cert_pem", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue.Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "load_cert_pem", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "load_cert_pem", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue.Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "load_cert_pem", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "load_certs", "(const char *,int,stack_st_X509 **,const char *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "load_certs_multifile", "(char *,const char *,const char *,X509_VERIFY_PARAM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "load_certstore", "(char *,const char *,const char *,X509_VERIFY_PARAM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "load_crls", "(const char *,stack_st_X509_CRL **,const char *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "load_csr_autofmt", "(const char *,int,stack_st_OPENSSL_STRING *,const char *)", "", "Argument[*2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "load_csr_der", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue.Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "load_csr_der", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "load_csr_der", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue.Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "load_csr_der", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "load_excert", "(SSL_EXCERT **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "load_index", "(const char *,DB_ATTR *)", "", "Argument[*0]", "ReturnValue[*].Field[**dbfname]", "value", "dfc-generated"] + - ["", "", True, "load_index", "(const char *,DB_ATTR *)", "", "Argument[*1]", "ReturnValue[*].Field[*attributes]", "value", "dfc-generated"] + - ["", "", True, "load_index", "(const char *,DB_ATTR *)", "", "Argument[0]", "ReturnValue[*].Field[**dbfname]", "taint", "dfc-generated"] + - ["", "", True, "load_index", "(const char *,DB_ATTR *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "load_index", "(const char *,DB_ATTR *)", "", "Argument[1]", "ReturnValue[*].Field[*attributes]", "taint", "dfc-generated"] + - ["", "", True, "load_key_certs_crls", "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)", "", "Argument[10]", "Argument[*10]", "taint", "dfc-generated"] + - ["", "", True, "load_key_certs_crls", "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)", "", "Argument[11]", "Argument[*11]", "taint", "dfc-generated"] + - ["", "", True, "load_key_certs_crls", "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)", "", "Argument[12]", "Argument[*12]", "taint", "dfc-generated"] + - ["", "", True, "load_key_certs_crls", "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "load_key_certs_crls", "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "load_key_certs_crls", "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] + - ["", "", True, "load_key_certs_crls", "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)", "", "Argument[9]", "Argument[*9]", "taint", "dfc-generated"] + - ["", "", True, "load_pkimsg", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue.Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "load_pkimsg", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "load_pkimsg", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue.Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "load_pkimsg", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "lookup_sess_in_cache", "(SSL_CONNECTION *,const unsigned char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "mac_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "mac_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "main", "(int,char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "main", "(int,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "main", "(int,char *[])", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "main", "(int,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "main", "(int,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "make_engine_uri", "(ENGINE *,const char *,const char *)", "", "Argument[*0].Field[**id]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "make_engine_uri", "(ENGINE *,const char *,const char *)", "", "Argument[*0].Field[*id]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "make_engine_uri", "(ENGINE *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "make_engine_uri", "(ENGINE *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "make_uppercase", "(char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "md4_block_data_order", "(MD4_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "md4_block_data_order", "(MD4_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[**1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[**1]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[**]", "value", "df-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "mempacket_test_inject", "(BIO *,const char *,int,int,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[**0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[**1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "new_pkcs12_builder", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**filename]", "value", "dfc-generated"] + - ["", "", True, "new_pkcs12_builder", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[*filename]", "value", "dfc-generated"] + - ["", "", True, "next_item", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "next_item", "(char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "next_item", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "next_item", "(char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "next_protos_parse", "(size_t *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "next_protos_parse", "(size_t *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "nseq_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "nseq_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "o2i_ECPublicKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "o2i_ECPublicKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0].Field[*conv_form]", "taint", "dfc-generated"] + - ["", "", True, "o2i_ECPublicKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*].Field[*conv_form]", "taint", "dfc-generated"] + - ["", "", True, "o2i_ECPublicKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "o2i_ECPublicKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "o2i_ECPublicKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "o2i_ECPublicKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "o2i_ECPublicKey", "(EC_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "o2i_SCT", "(SCT **,const unsigned char **,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "o2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,size_t)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "o2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,size_t)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "o2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "o2i_SCT_LIST", "(stack_st_SCT **,const unsigned char **,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "o2i_SCT_signature", "(SCT *,const unsigned char **,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ocsp_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ocsp_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "openssl_fopen", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "openssl_fopen", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "opt_cipher_any", "(const char *,EVP_CIPHER **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "opt_cipher_silent", "(const char *,EVP_CIPHER **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "opt_help", "(const OPTIONS *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "opt_init", "(int,char **,const OPTIONS *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "opt_int", "(const char *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "opt_int", "(const char *,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "opt_int", "(const char *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "opt_long", "(const char *,long *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "opt_long", "(const char *,long *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "opt_md", "(const char *,EVP_MD **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "opt_md_silent", "(const char *,EVP_MD **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "opt_pair", "(const char *,const OPT_PAIR *,int *)", "", "Argument[*1].Field[*retval]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "opt_path_end", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "opt_path_end", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "opt_path_end", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "opt_progname", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "opt_progname", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "opt_ulong", "(const char *,unsigned long *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "opt_ulong", "(const char *,unsigned long *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_DER_w_begin_sequence", "(WPACKET *,int)", "", "Argument[*0].Field[**subs]", "Argument[*0].Field[**subs].Field[**parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_DER_w_begin_sequence", "(WPACKET *,int)", "", "Argument[*0].Field[*subs]", "Argument[*0].Field[**subs].Field[*parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_DER_w_bn", "(WPACKET *,int,const BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_DER_w_octet_string", "(WPACKET *,int,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_DER_w_precompiled", "(WPACKET *,int,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_X509_ALGOR_from_nid", "(int,int,void *)", "", "Argument[0]", "ReturnValue[*].Field[**algorithm]", "taint", "dfc-generated"] + - ["", "", True, "ossl_X509_ALGOR_from_nid", "(int,int,void *)", "", "Argument[0]", "ReturnValue[*].Field[*algorithm]", "taint", "dfc-generated"] + - ["", "", True, "ossl_X509_ALGOR_from_nid", "(int,int,void *)", "", "Argument[1]", "ReturnValue[*].Field[**parameter].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_X509_PUBKEY_INTERNAL_free", "(X509_PUBKEY *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ossl_X509_PUBKEY_INTERNAL_free", "(X509_PUBKEY *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_a2i_ipadd", "(unsigned char *,const char *)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_a2i_ipadd", "(unsigned char *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_a2i_ipadd", "(unsigned char *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ackm_get0_probe_request", "(OSSL_ACKM *)", "", "Argument[*0].Field[*pending_probe]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_get_ack_deadline", "(OSSL_ACKM *,int)", "", "Argument[*0].Field[*rx_ack_flush_deadline]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_get_ack_deadline", "(OSSL_ACKM *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ackm_get_ack_frame", "(OSSL_ACKM *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ackm_get_ack_frame", "(OSSL_ACKM *,int)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_ackm_get_ack_frame", "(OSSL_ACKM *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ackm_get_largest_acked", "(OSSL_ACKM *,int)", "", "Argument[*0].Field[*largest_acked_pkt]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_get_largest_acked", "(OSSL_ACKM *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ackm_get_loss_detection_deadline", "(OSSL_ACKM *)", "", "Argument[*0].Field[*loss_detection_deadline]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_get_pto_duration", "(OSSL_ACKM *)", "", "Argument[*0].Field[*rx_max_ack_delay].Field[*t]", "ReturnValue.Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ackm_new", "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)", "", "Argument[**1]", "ReturnValue[*].Field[***now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_new", "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)", "", "Argument[*1]", "ReturnValue[*].Field[**now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_new", "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)", "", "Argument[*2]", "ReturnValue[*].Field[**statm]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_new", "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)", "", "Argument[*3]", "ReturnValue[*].Field[**cc_method]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_new", "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)", "", "Argument[*4]", "ReturnValue[*].Field[**cc_data]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_new", "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)", "", "Argument[0]", "ReturnValue[*].Field[*now]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_new", "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)", "", "Argument[1]", "ReturnValue[*].Field[*now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_new", "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)", "", "Argument[2]", "ReturnValue[*].Field[*statm]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_new", "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)", "", "Argument[3]", "ReturnValue[*].Field[*cc_method]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_new", "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)", "", "Argument[4]", "ReturnValue[*].Field[*cc_data]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_on_pkt_space_discarded", "(OSSL_ACKM *,int)", "", "Argument[1]", "Argument[*0].Field[*rx_history]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ackm_on_pkt_space_discarded", "(OSSL_ACKM *,int)", "", "Argument[1]", "Argument[*0].Field[*tx_history]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ackm_on_rx_ack_frame", "(OSSL_ACKM *,const OSSL_QUIC_FRAME_ACK *,int,OSSL_TIME)", "", "Argument[2]", "Argument[*0].Field[*largest_acked_pkt]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ackm_on_rx_ack_frame", "(OSSL_ACKM *,const OSSL_QUIC_FRAME_ACK *,int,OSSL_TIME)", "", "Argument[2]", "Argument[*0].Field[*loss_time]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ackm_on_rx_packet", "(OSSL_ACKM *,const OSSL_ACKM_RX_PKT *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ackm_on_tx_packet", "(OSSL_ACKM *,OSSL_ACKM_TX_PKT *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ackm_set_ack_deadline_callback", "(OSSL_ACKM *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***ack_deadline_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_set_ack_deadline_callback", "(OSSL_ACKM *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**ack_deadline_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_set_ack_deadline_callback", "(OSSL_ACKM *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*ack_deadline_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_set_ack_deadline_callback", "(OSSL_ACKM *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*ack_deadline_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_set_loss_detection_deadline_callback", "(OSSL_ACKM *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***loss_detection_deadline_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_set_loss_detection_deadline_callback", "(OSSL_ACKM *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**loss_detection_deadline_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_set_loss_detection_deadline_callback", "(OSSL_ACKM *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*loss_detection_deadline_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_set_loss_detection_deadline_callback", "(OSSL_ACKM *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*loss_detection_deadline_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_set_rx_max_ack_delay", "(OSSL_ACKM *,OSSL_TIME)", "", "Argument[1]", "Argument[*0].Field[*rx_max_ack_delay]", "value", "dfc-generated"] + - ["", "", True, "ossl_ackm_set_tx_max_ack_delay", "(OSSL_ACKM *,OSSL_TIME)", "", "Argument[1]", "Argument[*0].Field[*tx_max_ack_delay]", "value", "dfc-generated"] + - ["", "", True, "ossl_adjust_domain_flags", "(uint64_t,uint64_t *)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_algorithm_get1_first_name", "(const OSSL_ALGORITHM *)", "", "Argument[*0].Field[**algorithm_names]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_algorithm_get1_first_name", "(const OSSL_ALGORITHM *)", "", "Argument[*0].Field[*algorithm_names]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_aria_encrypt", "(const unsigned char *,unsigned char *,const ARIA_KEY *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_aria_encrypt", "(const unsigned char *,unsigned char *,const ARIA_KEY *)", "", "Argument[*2].Field[*rd_key].Union[*(unnamed class/struct/union)]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_aria_encrypt", "(const unsigned char *,unsigned char *,const ARIA_KEY *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_aria_set_decrypt_key", "(const unsigned char *,const int,ARIA_KEY *)", "", "Argument[1]", "Argument[*2].Field[*rounds]", "taint", "dfc-generated"] + - ["", "", True, "ossl_aria_set_encrypt_key", "(const unsigned char *,const int,ARIA_KEY *)", "", "Argument[1]", "Argument[*2].Field[*rounds]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_do_adb", "(const ASN1_VALUE *,const ASN1_TEMPLATE *,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_do_adb", "(const ASN1_VALUE *,const ASN1_TEMPLATE *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_do_lock", "(ASN1_VALUE **,int,const ASN1_ITEM *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_do_lock", "(ASN1_VALUE **,int,const ASN1_ITEM *)", "", "Argument[*2].Field[**funcs].Field[*ref_offset]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_do_lock", "(ASN1_VALUE **,int,const ASN1_ITEM *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_do_lock", "(ASN1_VALUE **,int,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_enc_free", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_enc_init", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_enc_restore", "(int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_enc_restore", "(int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_enc_restore", "(int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_enc_restore", "(int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_enc_save", "(ASN1_VALUE **,const unsigned char *,int,const ASN1_ITEM *)", "", "Argument[*1]", "Argument[**0].Field[**enc]", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_enc_save", "(ASN1_VALUE **,const unsigned char *,int,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_enc_save", "(ASN1_VALUE **,const unsigned char *,int,const ASN1_ITEM *)", "", "Argument[1]", "Argument[**0].Field[**enc]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_enc_save", "(ASN1_VALUE **,const unsigned char *,int,const ASN1_ITEM *)", "", "Argument[2]", "Argument[**0].Field[*len]", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_choice_selector", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[**0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_choice_selector", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_choice_selector", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*1].Field[*utype]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_choice_selector", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_choice_selector", "(ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_choice_selector_const", "(const ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[**0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_choice_selector_const", "(const ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_choice_selector_const", "(const ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[*1].Field[*utype]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_choice_selector_const", "(const ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_choice_selector_const", "(const ASN1_VALUE **,const ASN1_ITEM *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_const_field_ptr", "(const ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[**0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_const_field_ptr", "(const ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_const_field_ptr", "(const ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_const_field_ptr", "(const ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[*1].Field[*offset]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_const_field_ptr", "(const ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[*1].Field[*offset]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_const_field_ptr", "(const ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_const_field_ptr", "(const ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_const_field_ptr", "(const ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_field_ptr", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[**0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_field_ptr", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_field_ptr", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_field_ptr", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[*1].Field[*offset]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_field_ptr", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[*1].Field[*offset]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_field_ptr", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_field_ptr", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_get_field_ptr", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_item_digest_ex", "(const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[2]", "taint", "df-generated"] + - ["", "", True, "ossl_asn1_item_digest_ex", "(const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_item_embed_free", "(ASN1_VALUE **,const ASN1_ITEM *,int)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_item_embed_free", "(ASN1_VALUE **,const ASN1_ITEM *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_item_embed_free", "(ASN1_VALUE **,const ASN1_ITEM *,int)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ossl_asn1_item_embed_free", "(ASN1_VALUE **,const ASN1_ITEM *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_asn1_item_embed_free", "(ASN1_VALUE **,const ASN1_ITEM *,int)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_item_embed_free", "(ASN1_VALUE **,const ASN1_ITEM *,int)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_item_ex_new_intern", "(ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_item_ex_new_intern", "(ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_item_ex_new_intern", "(ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ossl_asn1_item_ex_new_intern", "(ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_asn1_item_ex_new_intern", "(ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_item_ex_new_intern", "(ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_primitive_free", "(ASN1_VALUE **,const ASN1_ITEM *,int)", "", "Argument[*1].Field[*size]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_primitive_free", "(ASN1_VALUE **,const ASN1_ITEM *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_set_choice_selector", "(ASN1_VALUE **,int,const ASN1_ITEM *)", "", "Argument[**0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_set_choice_selector", "(ASN1_VALUE **,int,const ASN1_ITEM *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_set_choice_selector", "(ASN1_VALUE **,int,const ASN1_ITEM *)", "", "Argument[*2].Field[*utype]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_set_choice_selector", "(ASN1_VALUE **,int,const ASN1_ITEM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_set_choice_selector", "(ASN1_VALUE **,int,const ASN1_ITEM *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_string_set_bits_left", "(ASN1_STRING *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "ossl_asn1_template_free", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[**0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_template_free", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_template_free", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_template_free", "(ASN1_VALUE **,const ASN1_TEMPLATE *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_time_from_tm", "(ASN1_TIME *,tm *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_asn1_time_from_tm", "(ASN1_TIME *,tm *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_time_from_tm", "(ASN1_TIME *,tm *,int)", "", "Argument[2]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_time_from_tm", "(ASN1_TIME *,tm *,int)", "", "Argument[2]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_asn1_time_to_tm", "(tm *,const ASN1_TIME *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_asn1_utctime_to_tm", "(tm *,const ASN1_UTCTIME *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_b2i", "(const unsigned char **,unsigned int,int *)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_b2i", "(const unsigned char **,unsigned int,int *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_b2i", "(const unsigned char **,unsigned int,int *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_b2i", "(const unsigned char **,unsigned int,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_b2i_DSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[**0]", "ReturnValue[*].Field[**priv_key].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_b2i_DSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[**0]", "ReturnValue[*].Field[**pub_key].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_b2i_RSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[**0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_b2i_RSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[*0]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ossl_b2i_RSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_b2i_RSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[0]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ossl_b2i_RSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_b2i_RSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_b2i_RSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ossl_b2i_RSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_b2i_RSA_after_header", "(const unsigned char **,unsigned int,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_b2i_bio", "(BIO *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_base_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*0]", "Argument[**3].Field[**handle]", "value", "dfc-generated"] + - ["", "", True, "ossl_base_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*1].Field[*function]", "Argument[**3].Field[*core_get_params]", "value", "dfc-generated"] + - ["", "", True, "ossl_base_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[0]", "Argument[**3].Field[*handle]", "value", "dfc-generated"] + - ["", "", True, "ossl_base_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_base_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bio_init_core", "(OSSL_LIB_CTX *,const OSSL_DISPATCH *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bio_new_from_core_bio", "(PROV_CTX *,OSSL_CORE_BIO *)", "", "Argument[*0].Field[**corebiometh]", "ReturnValue[*].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "ossl_bio_new_from_core_bio", "(PROV_CTX *,OSSL_CORE_BIO *)", "", "Argument[*0].Field[*corebiometh]", "ReturnValue[*].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "ossl_bio_new_from_core_bio", "(PROV_CTX *,OSSL_CORE_BIO *)", "", "Argument[*1]", "ReturnValue[*].Field[**ptr]", "value", "dfc-generated"] + - ["", "", True, "ossl_bio_new_from_core_bio", "(PROV_CTX *,OSSL_CORE_BIO *)", "", "Argument[1]", "ReturnValue[*].Field[*ptr]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_final", "(unsigned char *,BLAKE2B_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_get_ctx_params", "(void *,OSSL_PARAM[])", "", "Argument[*0].Field[*params].Field[*digest_length]", "Argument[*1].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_get_ctx_params", "(void *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *)", "", "Argument[*1].Field[*digest_length]", "Argument[*0].Field[*outlen]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *)", "", "Argument[*1]", "Argument[*0].Field[*h]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *)", "", "Argument[1]", "Argument[*0].Field[*h]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init_key", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *)", "", "Argument[**2]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init_key", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *)", "", "Argument[*1].Field[*digest_length]", "Argument[*0].Field[*outlen]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init_key", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *)", "", "Argument[*1]", "Argument[*0].Field[*h]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init_key", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *)", "", "Argument[*2]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init_key", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *)", "", "Argument[*2]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init_key", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *)", "", "Argument[1]", "Argument[*0].Field[*h]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init_key", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_init_key", "(BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *)", "", "Argument[2]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_param_set_digest_length", "(BLAKE2B_PARAM *,uint8_t)", "", "Argument[1]", "Argument[*0].Field[*digest_length]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_param_set_key_length", "(BLAKE2B_PARAM *,uint8_t)", "", "Argument[1]", "Argument[*0].Field[*key_length]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_param_set_personal", "(BLAKE2B_PARAM *,const uint8_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*personal]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_param_set_personal", "(BLAKE2B_PARAM *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[*personal]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_param_set_personal", "(BLAKE2B_PARAM *,const uint8_t *,size_t)", "", "Argument[2]", "Argument[*0].Field[*personal]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_param_set_salt", "(BLAKE2B_PARAM *,const uint8_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*salt]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_param_set_salt", "(BLAKE2B_PARAM *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[*salt]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_param_set_salt", "(BLAKE2B_PARAM *,const uint8_t *,size_t)", "", "Argument[2]", "Argument[*0].Field[*salt]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_set_ctx_params", "(void *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_update", "(BLAKE2B_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2b_update", "(BLAKE2B_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_update", "(BLAKE2B_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_update", "(BLAKE2B_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*buflen]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2b_update", "(BLAKE2B_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_final", "(unsigned char *,BLAKE2S_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_get_ctx_params", "(void *,OSSL_PARAM[])", "", "Argument[*0].Field[*params].Field[*digest_length]", "Argument[*1].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_get_ctx_params", "(void *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *)", "", "Argument[*1].Field[*digest_length]", "Argument[*0].Field[*outlen]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *)", "", "Argument[*1]", "Argument[*0].Field[*h]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *)", "", "Argument[1]", "Argument[*0].Field[*h]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init_key", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *)", "", "Argument[**2]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init_key", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *)", "", "Argument[*1].Field[*digest_length]", "Argument[*0].Field[*outlen]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init_key", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *)", "", "Argument[*1]", "Argument[*0].Field[*h]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init_key", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *)", "", "Argument[*2]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init_key", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *)", "", "Argument[*2]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init_key", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *)", "", "Argument[1]", "Argument[*0].Field[*h]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init_key", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_init_key", "(BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *)", "", "Argument[2]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_param_set_digest_length", "(BLAKE2S_PARAM *,uint8_t)", "", "Argument[1]", "Argument[*0].Field[*digest_length]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_param_set_key_length", "(BLAKE2S_PARAM *,uint8_t)", "", "Argument[1]", "Argument[*0].Field[*key_length]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_param_set_personal", "(BLAKE2S_PARAM *,const uint8_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*personal]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_param_set_personal", "(BLAKE2S_PARAM *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[*personal]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_param_set_personal", "(BLAKE2S_PARAM *,const uint8_t *,size_t)", "", "Argument[2]", "Argument[*0].Field[*personal]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_param_set_salt", "(BLAKE2S_PARAM *,const uint8_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*salt]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_param_set_salt", "(BLAKE2S_PARAM *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[*salt]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_param_set_salt", "(BLAKE2S_PARAM *,const uint8_t *,size_t)", "", "Argument[2]", "Argument[*0].Field[*salt]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_set_ctx_params", "(void *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_update", "(BLAKE2S_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_blake2s_update", "(BLAKE2S_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_update", "(BLAKE2S_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_update", "(BLAKE2S_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*buflen]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blake2s_update", "(BLAKE2S_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "ossl_blob_length", "(unsigned int,int,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_check_generated_prime", "(const BIGNUM *,int,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_check_prime", "(const BIGNUM *,int,BN_CTX *,int,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_gen_dsa_nonce_fixed_top", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_get_libctx", "(BN_CTX *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_bn_get_libctx", "(BN_CTX *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_bn_mask_bits_fixed_top", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_mask_bits_fixed_top", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_miller_rabin_is_prime", "(const BIGNUM *,int,BN_CTX *,BN_GENCB *,int,int *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_mont_ctx_set", "(BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t)", "", "Argument[*3]", "Argument[*0].Field[*RR].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_mont_ctx_set", "(BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t)", "", "Argument[2]", "Argument[*0].Field[*ri]", "value", "dfc-generated"] + - ["", "", True, "ossl_bn_mont_ctx_set", "(BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t)", "", "Argument[3]", "Argument[*0].Field[*RR].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_mont_ctx_set", "(BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t)", "", "Argument[4]", "Argument[*0].Field[*RR].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_mont_ctx_set", "(BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t)", "", "Argument[4]", "Argument[*0].Field[*RR].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_mont_ctx_set", "(BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t)", "", "Argument[4]", "Argument[*0].Field[*RR].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_mont_ctx_set", "(BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t)", "", "Argument[5]", "Argument[*0].Field[*n0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_mont_ctx_set", "(BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t)", "", "Argument[6]", "Argument[*0].Field[*n0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bn_priv_rand_range_fixed_top", "(BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*7]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[5]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_derive_prime", "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*8]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*1]", "Argument[*8]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*3]", "Argument[*8]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*5]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*5]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*5]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*6]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*6]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*6]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*9]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*9]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*9]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*9]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*9]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*9]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*9]", "Argument[*8]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[7]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_bn_rsa_fips186_4_gen_prob_primes", "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[7]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_bsearch", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_bsearch", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_bsearch", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bsearch", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_bsearch", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_bsearch", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_bsearch", "(const void *,const void *,int,int,..(*)(..),int)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_buf2hexstr_sep", "(const unsigned char *,long,char)", "", "Argument[*0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_buf2hexstr_sep", "(const unsigned char *,long,char)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_buf2hexstr_sep", "(const unsigned char *,long,char)", "", "Argument[2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_c2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_BIT_STRING", "(ASN1_BIT_STRING **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_c2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_INTEGER", "(ASN1_INTEGER **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_OBJECT", "(ASN1_OBJECT **,const unsigned char **,long)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_c2i_ASN1_OBJECT", "(ASN1_OBJECT **,const unsigned char **,long)", "", "Argument[**1]", "Argument[**0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_OBJECT", "(ASN1_OBJECT **,const unsigned char **,long)", "", "Argument[**1]", "ReturnValue[*].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_OBJECT", "(ASN1_OBJECT **,const unsigned char **,long)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_OBJECT", "(ASN1_OBJECT **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_ASN1_OBJECT", "(ASN1_OBJECT **,const unsigned char **,long)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_uint64_int", "(uint64_t *,int *,const unsigned char **,long)", "", "Argument[**2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_uint64_int", "(uint64_t *,int *,const unsigned char **,long)", "", "Argument[**2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_uint64_int", "(uint64_t *,int *,const unsigned char **,long)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_uint64_int", "(uint64_t *,int *,const unsigned char **,long)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_uint64_int", "(uint64_t *,int *,const unsigned char **,long)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_uint64_int", "(uint64_t *,int *,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_uint64_int", "(uint64_t *,int *,const unsigned char **,long)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c2i_uint64_int", "(uint64_t *,int *,const unsigned char **,long)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_derive_public_key", "(OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_sign", "(OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_sign_prehash", "(OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t[64],const uint8_t *,size_t,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_verify", "(OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_verify", "(OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_verify", "(OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_verify", "(OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_verify_prehash", "(OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_verify_prehash", "(OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_verify_prehash", "(OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_c448_ed448_verify_prehash", "(OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_calculate_comp_expansion", "(int,size_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_cipher", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*4]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_ccm_cipher", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_cipher", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_cipher", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_ccm_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_ccm_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_ccm_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_generic_auth_decrypt", "(PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_generic_auth_decrypt", "(PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_generic_auth_decrypt", "(PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_generic_auth_decrypt", "(PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_generic_auth_encrypt", "(PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_generic_auth_encrypt", "(PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_generic_auth_encrypt", "(PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_generic_auth_encrypt", "(PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*ccm_ctx].Field[*blocks]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_generic_auth_encrypt", "(PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_get_ctx_params", "(void *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_initctx", "(PROV_CCM_CTX *,size_t,const PROV_CCM_HW *)", "", "Argument[*2]", "Argument[*0].Field[**hw]", "value", "dfc-generated"] + - ["", "", True, "ossl_ccm_initctx", "(PROV_CCM_CTX *,size_t,const PROV_CCM_HW *)", "", "Argument[1]", "Argument[*0].Field[*keylen]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_initctx", "(PROV_CCM_CTX *,size_t,const PROV_CCM_HW *)", "", "Argument[2]", "Argument[*0].Field[*hw]", "value", "dfc-generated"] + - ["", "", True, "ossl_ccm_set_ctx_params", "(void *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_stream_final", "(void *,unsigned char *,size_t *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*4]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_ccm_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ccm_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_chacha20_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_chacha20_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_chacha20_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_chacha20_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[*keylen]", "value", "dfc-generated"] + - ["", "", True, "ossl_chacha20_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_chacha20_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_chacha20_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_chacha20_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_chacha20_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_chacha20_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_chacha20_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_chacha20_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[*keylen]", "value", "dfc-generated"] + - ["", "", True, "ossl_chacha20_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_chacha20_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_chacha20_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_chacha20_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_cbc_cts_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*4]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_cbc_cts_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_cbc_cts_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_cbc_cts_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_cbc_cts_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_cbc_cts_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_cbc_cts_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_cbc_cts_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_fillblock", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[**3]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_fillblock", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[*3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_fillblock", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[*3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_fillblock", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_fillblock", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_fillblock", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_block_final", "(void *,unsigned char *,size_t *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_cipher_generic_block_final", "(void *,unsigned char *,size_t *,size_t)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_cipher_generic_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[**tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[*tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*4]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_block_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ossl_cipher_generic_cipher", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[*keylen]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[*keylen]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_get_ctx_params", "(void *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[3]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[4]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[5]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initiv", "(PROV_CIPHER_CTX *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initiv", "(PROV_CIPHER_CTX *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initiv", "(PROV_CIPHER_CTX *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initiv", "(PROV_CIPHER_CTX *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initkey", "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)", "", "Argument[*6]", "Argument[*0].Field[**hw]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initkey", "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)", "", "Argument[*7].Field[**libctx]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initkey", "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)", "", "Argument[*7].Field[*libctx]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initkey", "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)", "", "Argument[1]", "Argument[*0].Field[*keylen]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initkey", "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)", "", "Argument[2]", "Argument[*0].Field[*blocksize]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initkey", "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)", "", "Argument[3]", "Argument[*0].Field[*ivlen]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initkey", "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)", "", "Argument[4]", "Argument[*0].Field[*mode]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_initkey", "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)", "", "Argument[6]", "Argument[*0].Field[*hw]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_set_ctx_params", "(void *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_dinit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*1].Field[*length]", "Argument[*0].Field[*keylen]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_dinit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*2]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_dinit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*2]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_dinit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*2]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_dinit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_dinit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_dinit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_dinit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_einit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*1].Field[*length]", "Argument[*0].Field[*keylen]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_einit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*2]", "Argument[*0].Field[**oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_einit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*2]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_einit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*2]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_einit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[**oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_einit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_einit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_skey_einit", "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[**tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[*tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*0].Field[**tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*0].Field[*tlsmac]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_generic_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*0].Field[*iv]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_ofb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_ofb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_chunked_ofb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*0].Field[*iv]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb1", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_cfb8", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_ctr", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_ctr", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_ctr", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_ctr", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_ctr", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_ofb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_ofb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_generic_ofb128", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_tdes_cbc", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_tdes_copyctx", "(PROV_CIPHER_CTX *,const PROV_CIPHER_CTX *)", "", "Argument[*0].Field[*tks].Union[*(unnamed class/struct/union)]", "Argument[*0].Field[**ks]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_tdes_copyctx", "(PROV_CIPHER_CTX *,const PROV_CIPHER_CTX *)", "", "Argument[*0].Field[*tks].Union[**(unnamed class/struct/union)]", "Argument[*0].Field[***ks]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_tdes_copyctx", "(PROV_CIPHER_CTX *,const PROV_CIPHER_CTX *)", "", "Argument[*1].Field[*tks].Union[*(unnamed class/struct/union)]", "Argument[*0].Field[**ks]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_tdes_copyctx", "(PROV_CIPHER_CTX *,const PROV_CIPHER_CTX *)", "", "Argument[*1].Field[*tks].Union[**(unnamed class/struct/union)]", "Argument[*0].Field[***ks]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_tdes_ecb", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_tdes_ecb", "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_hw_tdes_ede3_initkey", "(PROV_CIPHER_CTX *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_padblock", "(unsigned char *,size_t *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_padblock", "(unsigned char *,size_t *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_padblock", "(unsigned char *,size_t *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_padblock", "(unsigned char *,size_t *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_tlsunpadblock", "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)", "", "Argument[*2]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "ossl_cipher_tlsunpadblock", "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)", "", "Argument[*3]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_tlsunpadblock", "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)", "", "Argument[*3]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_tlsunpadblock", "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)", "", "Argument[3]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_tlsunpadblock", "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_tlsunpadblock", "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)", "", "Argument[3]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_tlsunpadblock", "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_tlsunpadblock", "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)", "", "Argument[7]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_tlsunpadblock", "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)", "", "Argument[7]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_tlsunpadblock", "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)", "", "Argument[7]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_trailingdata", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[**3]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "ossl_cipher_trailingdata", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[*3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_trailingdata", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[*4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_trailingdata", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_trailingdata", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_trailingdata", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_trailingdata", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_trailingdata", "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_unpadblock", "(unsigned char *,size_t *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cipher_var_keylen_set_ctx_params", "(void *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmac_init", "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[])", "", "Argument[2]", "Argument[*0].Field[**cctx].Field[*key_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmac_init", "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**cctx].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmac_init", "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[**cctx].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmac_init", "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cctx].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmac_init", "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_asn1_get_int", "(const ASN1_INTEGER *)", "", "Argument[*0].Field[**data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_asn1_get_int", "(const ASN1_INTEGER *)", "", "Argument[*0].Field[*data]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_asn1_octet_string_set1", "(ASN1_OCTET_STRING **,const ASN1_OCTET_STRING *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_asn1_octet_string_set1_bytes", "(ASN1_OCTET_STRING **,const unsigned char *,int)", "", "Argument[*1]", "Argument[**0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_asn1_octet_string_set1_bytes", "(ASN1_OCTET_STRING **,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_asn1_octet_string_set1_bytes", "(ASN1_OCTET_STRING **,const unsigned char *,int)", "", "Argument[1]", "Argument[**0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_asn1_octet_string_set1_bytes", "(ASN1_OCTET_STRING **,const unsigned char *,int)", "", "Argument[2]", "Argument[**0].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_bodytype_to_string", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_certConf_new", "(OSSL_CMP_CTX *,int,int,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_certrep_new", "(OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "ossl_cmp_certrep_new", "(OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int)", "", "Argument[1]", "ReturnValue[*].Field[**body].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_certrep_new", "(OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_certrepmessage_get0_certresponse", "(const OSSL_CMP_CERTREPMESSAGE *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_certrepmessage_get0_certresponse", "(const OSSL_CMP_CERTREPMESSAGE *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_certreq_new", "(OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ossl_cmp_certreq_new", "(OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *)", "", "Argument[1]", "ReturnValue[*].Field[**body].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_certresponse_get1_cert", "(const OSSL_CMP_CTX *,const OSSL_CMP_CERTRESPONSE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_certresponse_get1_cert", "(const OSSL_CMP_CTX *,const OSSL_CMP_CERTRESPONSE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_certstatus_set0_certHash", "(OSSL_CMP_CERTSTATUS *,ASN1_OCTET_STRING *)", "", "Argument[*1]", "Argument[*0].Field[**certHash]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_certstatus_set0_certHash", "(OSSL_CMP_CERTSTATUS *,ASN1_OCTET_STRING *)", "", "Argument[1]", "Argument[*0].Field[*certHash]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_get0_newPubkey", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_ctx_get0_newPubkey", "(const OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_ctx_set0_newCert", "(OSSL_CMP_CTX *,X509 *)", "", "Argument[*1]", "Argument[*0].Field[**newCert]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set0_newCert", "(OSSL_CMP_CTX *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*newCert]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set0_statusString", "(OSSL_CMP_CTX *,OSSL_CMP_PKIFREETEXT *)", "", "Argument[*1]", "Argument[*0].Field[**statusString]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set0_statusString", "(OSSL_CMP_CTX *,OSSL_CMP_PKIFREETEXT *)", "", "Argument[1]", "Argument[*0].Field[*statusString]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set1_caPubs", "(OSSL_CMP_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[**caPubs]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set1_caPubs", "(OSSL_CMP_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set1_extraCertsIn", "(OSSL_CMP_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[**extraCertsIn]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set1_extraCertsIn", "(OSSL_CMP_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set1_first_senderNonce", "(OSSL_CMP_CTX *,const ASN1_OCTET_STRING *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_ctx_set1_newChain", "(OSSL_CMP_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*0].Field[**newChain]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set1_newChain", "(OSSL_CMP_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set1_recipNonce", "(OSSL_CMP_CTX *,const ASN1_OCTET_STRING *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_ctx_set1_validatedSrvCert", "(OSSL_CMP_CTX *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cmp_ctx_set1_validatedSrvCert", "(OSSL_CMP_CTX *,X509 *)", "", "Argument[1]", "Argument[*0].Field[*validatedSrvCert]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set_failInfoCode", "(OSSL_CMP_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*failInfoCode]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_ctx_set_status", "(OSSL_CMP_CTX *,int)", "", "Argument[1]", "Argument[*0].Field[*status]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_error_new", "(OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,int64_t,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_error_new", "(OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,int64_t,const char *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cmp_genm_new", "(OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_genp_new", "(OSSL_CMP_CTX *,const stack_st_OSSL_CMP_ITAV *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_hdr_generalInfo_push0_item", "(OSSL_CMP_PKIHEADER *,OSSL_CMP_ITAV *)", "", "Argument[*1]", "Argument[*0].Field[**generalInfo].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_generalInfo_push0_item", "(OSSL_CMP_PKIHEADER *,OSSL_CMP_ITAV *)", "", "Argument[*1]", "Argument[*0].Field[**generalInfo].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_generalInfo_push0_item", "(OSSL_CMP_PKIHEADER *,OSSL_CMP_ITAV *)", "", "Argument[1]", "Argument[*0].Field[**generalInfo].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_generalInfo_push0_item", "(OSSL_CMP_PKIHEADER *,OSSL_CMP_ITAV *)", "", "Argument[1]", "Argument[*0].Field[**generalInfo].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_generalInfo_push1_items", "(OSSL_CMP_PKIHEADER *,const stack_st_OSSL_CMP_ITAV *)", "", "Argument[*1].Field[**data]", "Argument[*1].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_get0_senderNonce", "(const OSSL_CMP_PKIHEADER *)", "", "Argument[*0].Field[**senderNonce]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_get0_senderNonce", "(const OSSL_CMP_PKIHEADER *)", "", "Argument[*0].Field[*senderNonce]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_get_pvno", "(const OSSL_CMP_PKIHEADER *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_hdr_init", "(OSSL_CMP_CTX *,OSSL_CMP_PKIHEADER *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_hdr_init", "(OSSL_CMP_CTX *,OSSL_CMP_PKIHEADER *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_hdr_push0_freeText", "(OSSL_CMP_PKIHEADER *,ASN1_UTF8STRING *)", "", "Argument[*1]", "Argument[*0].Field[**freeText].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_push0_freeText", "(OSSL_CMP_PKIHEADER *,ASN1_UTF8STRING *)", "", "Argument[*1]", "Argument[*0].Field[**freeText].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_push0_freeText", "(OSSL_CMP_PKIHEADER *,ASN1_UTF8STRING *)", "", "Argument[1]", "Argument[*0].Field[**freeText].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_push0_freeText", "(OSSL_CMP_PKIHEADER *,ASN1_UTF8STRING *)", "", "Argument[1]", "Argument[*0].Field[**freeText].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_set1_recipient", "(OSSL_CMP_PKIHEADER *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cmp_hdr_set1_sender", "(OSSL_CMP_PKIHEADER *,const X509_NAME *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cmp_hdr_set1_senderKID", "(OSSL_CMP_PKIHEADER *,const ASN1_OCTET_STRING *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_hdr_set_pvno", "(OSSL_CMP_PKIHEADER *,int)", "", "Argument[1]", "Argument[*0].Field[**pvno].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_hdr_set_transactionID", "(OSSL_CMP_CTX *,OSSL_CMP_PKIHEADER *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_hdr_update_messageTime", "(OSSL_CMP_PKIHEADER *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_log_parse_metadata", "(const char *,OSSL_CMP_severity *,char **,char **,int *)", "", "Argument[*0]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "ossl_cmp_log_parse_metadata", "(const char *,OSSL_CMP_severity *,char **,char **,int *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_cmp_log_parse_metadata", "(const char *,OSSL_CMP_severity *,char **,char **,int *)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "ossl_cmp_log_parse_metadata", "(const char *,OSSL_CMP_severity *,char **,char **,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_mock_srv_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_mock_srv_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_mock_srv_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_mock_srv_new", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_mock_srv_set1_caPubsOut", "(OSSL_CMP_SRV_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_mock_srv_set1_chainOut", "(OSSL_CMP_SRV_CTX *,stack_st_X509 *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_msg_add_extraCerts", "(OSSL_CMP_CTX *,OSSL_CMP_MSG *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_msg_check_update", "(OSSL_CMP_CTX *,const OSSL_CMP_MSG *,ossl_cmp_allow_unprotected_cb_t,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_msg_create", "(OSSL_CMP_CTX *,int)", "", "Argument[1]", "ReturnValue[*].Field[**body].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_msg_gen_push1_ITAVs", "(OSSL_CMP_MSG *,const stack_st_OSSL_CMP_ITAV *)", "", "Argument[*1].Field[**data]", "Argument[*1].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_msg_protect", "(OSSL_CMP_CTX *,OSSL_CMP_MSG *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_msg_set0_libctx", "(OSSL_CMP_MSG *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_msg_set0_libctx", "(OSSL_CMP_MSG *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_msg_set0_libctx", "(OSSL_CMP_MSG *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_msg_set0_libctx", "(OSSL_CMP_MSG *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*0].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_msg_set_bodytype", "(OSSL_CMP_MSG *,int)", "", "Argument[1]", "Argument[*0].Field[**body].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_pkiconf_new", "(OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_pkisi_check_pkifailureinfo", "(const OSSL_CMP_PKISI *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_pkisi_get0_statusString", "(const OSSL_CMP_PKISI *)", "", "Argument[*0].Field[**statusString]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_pkisi_get0_statusString", "(const OSSL_CMP_PKISI *)", "", "Argument[*0].Field[*statusString]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_pkisi_get_status", "(const OSSL_CMP_PKISI *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_pollRep_new", "(OSSL_CMP_CTX *,int,int64_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_pollReq_new", "(OSSL_CMP_CTX *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_pollrepcontent_get0_pollrep", "(const OSSL_CMP_POLLREPCONTENT *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_pollrepcontent_get0_pollrep", "(const OSSL_CMP_POLLREPCONTENT *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_revrepcontent_get_CertId", "(OSSL_CMP_REVREPCONTENT *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_revrepcontent_get_pkisi", "(OSSL_CMP_REVREPCONTENT *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_rp_new", "(OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,const OSSL_CRMF_CERTID *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_rp_new", "(OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,const OSSL_CRMF_CERTID *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cmp_rp_new", "(OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,const OSSL_CRMF_CERTID *,int)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ossl_cmp_rr_new", "(OSSL_CMP_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cmp_sk_ASN1_UTF8STRING_push_str", "(stack_st_ASN1_UTF8STRING *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[***data].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_sk_ASN1_UTF8STRING_push_str", "(stack_st_ASN1_UTF8STRING *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[**data].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_sk_ASN1_UTF8STRING_push_str", "(stack_st_ASN1_UTF8STRING *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[***data].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_sk_ASN1_UTF8STRING_push_str", "(stack_st_ASN1_UTF8STRING *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[**data].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cmp_sk_ASN1_UTF8STRING_push_str", "(stack_st_ASN1_UTF8STRING *,const char *,int)", "", "Argument[2]", "Argument[*0].Field[***data].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ossl_cmp_sk_ASN1_UTF8STRING_push_str", "(stack_st_ASN1_UTF8STRING *,const char *,int)", "", "Argument[2]", "Argument[*0].Field[**data].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_Data_create", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_Data_create", "(OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_Data_create", "(OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_Data_create", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cms_DigestAlgorithm_find_ctx", "(EVP_MD_CTX *,BIO *,X509_ALGOR *)", "", "Argument[*1].Field[**next_bio].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_DigestAlgorithm_find_ctx", "(EVP_MD_CTX *,BIO *,X509_ALGOR *)", "", "Argument[*1].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_DigestedData_create", "(const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_DigestedData_create", "(const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_DigestedData_create", "(const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_DigestedData_create", "(const EVP_MD *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cms_DigestedData_do_final", "(const CMS_ContentInfo *,BIO *,int)", "", "Argument[*1].Field[**next_bio].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_DigestedData_do_final", "(const CMS_ContentInfo *,BIO *,int)", "", "Argument[*1].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_EncryptedContent_init", "(CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *)", "", "Argument[*1]", "Argument[*0].Field[**cipher]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_EncryptedContent_init", "(CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *)", "", "Argument[*2]", "Argument[*0].Field[**key]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_EncryptedContent_init", "(CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *)", "", "Argument[1]", "Argument[*0].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_EncryptedContent_init", "(CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *)", "", "Argument[2]", "Argument[*0].Field[**key]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cms_EncryptedContent_init", "(CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *)", "", "Argument[3]", "Argument[*0].Field[*keylen]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_EnvelopedData_final", "(CMS_ContentInfo *,BIO *)", "", "Argument[*1].Field[**next_bio].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_EnvelopedData_final", "(CMS_ContentInfo *,BIO *)", "", "Argument[*1].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_RecipientInfo_kari_init", "(CMS_RecipientInfo *,X509 *,EVP_PKEY *,X509 *,EVP_PKEY *,unsigned int,const CMS_CTX *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cms_RecipientInfo_kari_init", "(CMS_RecipientInfo *,X509 *,EVP_PKEY *,X509 *,EVP_PKEY *,unsigned int,const CMS_CTX *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "ossl_cms_SignedData_final", "(CMS_ContentInfo *,BIO *,const unsigned char *,unsigned int)", "", "Argument[*1].Field[**next_bio].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_SignedData_final", "(CMS_ContentInfo *,BIO *,const unsigned char *,unsigned int)", "", "Argument[*1].Field[**next_bio]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_SignerIdentifier_cert_cmp", "(CMS_SignerIdentifier *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cms_SignerIdentifier_cert_cmp", "(CMS_SignerIdentifier *,X509 *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cms_SignerIdentifier_get0_signer_id", "(CMS_SignerIdentifier *,ASN1_OCTET_STRING **,X509_NAME **,ASN1_INTEGER **)", "", "Argument[*0].Field[*d].Union[*(unnamed class/struct/union)]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_SignerIdentifier_get0_signer_id", "(CMS_SignerIdentifier *,ASN1_OCTET_STRING **,X509_NAME **,ASN1_INTEGER **)", "", "Argument[*0].Field[*d].Union[**(unnamed class/struct/union)]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_ctx_get0_libctx", "(const CMS_CTX *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_ctx_get0_libctx", "(const CMS_CTX *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_ctx_get0_propq", "(const CMS_CTX *)", "", "Argument[*0].Field[**propq]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_ctx_get0_propq", "(const CMS_CTX *)", "", "Argument[*0].Field[*propq]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_encode_Receipt", "(CMS_SignerInfo *)", "", "Argument[*0].Field[**signature]", "ReturnValue[*].Field[**data].Field[**originatorSignatureValue]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_encode_Receipt", "(CMS_SignerInfo *)", "", "Argument[*0].Field[*signature]", "ReturnValue[*].Field[**data].Field[*originatorSignatureValue]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_get0_auth_enveloped", "(CMS_ContentInfo *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cms_get0_auth_enveloped", "(CMS_ContentInfo *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cms_get0_cmsctx", "(const CMS_ContentInfo *)", "", "Argument[*0].Field[*ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_get0_enveloped", "(CMS_ContentInfo *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cms_get0_enveloped", "(CMS_ContentInfo *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_cms_get1_certs_ex", "(CMS_ContentInfo *,stack_st_X509 **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cms_get1_crls_ex", "(CMS_ContentInfo *,stack_st_X509_CRL **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cms_ias_cert_cmp", "(CMS_IssuerAndSerialNumber *,X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cms_keyid_cert_cmp", "(ASN1_OCTET_STRING *,X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cms_keyid_cert_cmp", "(ASN1_OCTET_STRING *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cms_keyid_cert_cmp", "(ASN1_OCTET_STRING *,X509 *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_cms_set1_SignerIdentifier", "(CMS_SignerIdentifier *,X509 *,int,const CMS_CTX *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cms_set1_SignerIdentifier", "(CMS_SignerIdentifier *,X509 *,int,const CMS_CTX *)", "", "Argument[2]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_cms_set1_ias", "(CMS_IssuerAndSerialNumber **,X509 *)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "ossl_cms_set1_ias", "(CMS_IssuerAndSerialNumber **,X509 *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cms_set1_ias", "(CMS_IssuerAndSerialNumber **,X509 *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cms_set1_keyid", "(ASN1_OCTET_STRING **,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cms_set1_keyid", "(ASN1_OCTET_STRING **,X509 *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_cms_sign_encrypt", "(BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_cms_sign_encrypt", "(BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ossl_core_bio_new_from_bio", "(BIO *)", "", "Argument[0]", "ReturnValue[*].Field[*bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_core_bio_read_ex", "(OSSL_CORE_BIO *,void *,size_t,size_t *)", "", "Argument[*3]", "Argument[*0].Field[**bio].Field[*num_read]", "taint", "dfc-generated"] + - ["", "", True, "ossl_core_bio_read_ex", "(OSSL_CORE_BIO *,void *,size_t,size_t *)", "", "Argument[3]", "Argument[*0].Field[**bio].Field[*num_read]", "taint", "dfc-generated"] + - ["", "", True, "ossl_core_bio_read_ex", "(OSSL_CORE_BIO *,void *,size_t,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_core_bio_vprintf", "(OSSL_CORE_BIO *,const char *,va_list)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_crypto_ex_data_get_ossl_lib_ctx", "(const CRYPTO_EX_DATA *)", "", "Argument[*0].Field[**ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_ex_data_get_ossl_lib_ctx", "(const CRYPTO_EX_DATA *)", "", "Argument[*0].Field[*ctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_get_ex_new_index_ex", "(OSSL_LIB_CTX *,int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *,int)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_crypto_new_ex_data_ex", "(OSSL_LIB_CTX *,int,void *,CRYPTO_EX_DATA *)", "", "Argument[*0]", "Argument[*3].Field[**ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_new_ex_data_ex", "(OSSL_LIB_CTX *,int,void *,CRYPTO_EX_DATA *)", "", "Argument[0]", "Argument[*3].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_join", "(void *,CRYPTO_THREAD_RETVAL *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_crypto_thread_native_join", "(CRYPTO_THREAD *,CRYPTO_THREAD_RETVAL *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_crypto_thread_native_start", "(CRYPTO_THREAD_ROUTINE,void *,int)", "", "Argument[**1]", "ReturnValue[*].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_native_start", "(CRYPTO_THREAD_ROUTINE,void *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_native_start", "(CRYPTO_THREAD_ROUTINE,void *,int)", "", "Argument[0]", "ReturnValue[*].Field[*routine]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_native_start", "(CRYPTO_THREAD_ROUTINE,void *,int)", "", "Argument[1]", "ReturnValue[*].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_native_start", "(CRYPTO_THREAD_ROUTINE,void *,int)", "", "Argument[2]", "ReturnValue[*].Field[*joinable]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_start", "(OSSL_LIB_CTX *,CRYPTO_THREAD_ROUTINE,void *)", "", "Argument[**2]", "ReturnValue[*].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_start", "(OSSL_LIB_CTX *,CRYPTO_THREAD_ROUTINE,void *)", "", "Argument[*0]", "ReturnValue[*].Field[**ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_start", "(OSSL_LIB_CTX *,CRYPTO_THREAD_ROUTINE,void *)", "", "Argument[*2]", "ReturnValue[*].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_start", "(OSSL_LIB_CTX *,CRYPTO_THREAD_ROUTINE,void *)", "", "Argument[0]", "ReturnValue[*].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_start", "(OSSL_LIB_CTX *,CRYPTO_THREAD_ROUTINE,void *)", "", "Argument[1]", "ReturnValue[*].Field[*routine]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_thread_start", "(OSSL_LIB_CTX *,CRYPTO_THREAD_ROUTINE,void *)", "", "Argument[2]", "ReturnValue[*].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_xts128gb_encrypt", "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)", "", "Argument[*1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_crypto_xts128gb_encrypt", "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)", "", "Argument[*2]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "ossl_crypto_xts128gb_encrypt", "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_crypto_xts128gb_encrypt", "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_crypto_xts128gb_encrypt", "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ctrl_internal", "(SSL *,int,long,void *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_ctrl_internal", "(SSL *,int,long,void *,int)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ctrl_internal", "(SSL *,int,long,void *,int)", "", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_ctx_global_properties", "(OSSL_LIB_CTX *,int)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "ossl_ctx_global_properties", "(OSSL_LIB_CTX *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_curve448_base_double_scalarmul_non_secret", "(curve448_point_t,const curve448_scalar_t,const curve448_point_t,const curve448_scalar_t)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio", "(curve448_point_t,const uint8_t[57])", "", "Argument[*1]", "Argument[*0].Field[*t].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio", "(curve448_point_t,const uint8_t[57])", "", "Argument[*1]", "Argument[*0].Field[*y].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio", "(curve448_point_t,const uint8_t[57])", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio", "(curve448_point_t,const uint8_t[57])", "", "Argument[1]", "Argument[*0].Field[*t].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio", "(curve448_point_t,const uint8_t[57])", "", "Argument[1]", "Argument[*0].Field[*y].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio", "(curve448_point_t,const uint8_t[57])", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_double", "(curve448_point_t,const curve448_point_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa", "(uint8_t[57],const curve448_point_t)", "", "Argument[*1].Field[*x].Field[*limb]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa", "(uint8_t[57],const curve448_point_t)", "", "Argument[*1].Field[*y].Field[*limb]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa", "(uint8_t[57],const curve448_point_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa", "(uint8_t[57],const curve448_point_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_mul_by_ratio_and_encode_like_x448", "(uint8_t[56],const curve448_point_t)", "", "Argument[*1].Field[*y].Field[*limb]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_mul_by_ratio_and_encode_like_x448", "(uint8_t[56],const curve448_point_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_point_valid", "(const curve448_point_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_curve448_precomputed_scalarmul", "(curve448_point_t,const curve448_precomputed_s *,const curve448_scalar_t)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_curve448_scalar_add", "(curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t)", "", "Argument[*1].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_add", "(curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t)", "", "Argument[*2].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_decode", "(curve448_scalar_t,const unsigned char[56])", "", "Argument[*0].Field[*limb]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_decode", "(curve448_scalar_t,const unsigned char[56])", "", "Argument[*1]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_decode", "(curve448_scalar_t,const unsigned char[56])", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_decode", "(curve448_scalar_t,const unsigned char[56])", "", "Argument[1]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_decode", "(curve448_scalar_t,const unsigned char[56])", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_decode_long", "(curve448_scalar_t,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_decode_long", "(curve448_scalar_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_decode_long", "(curve448_scalar_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_encode", "(unsigned char[56],const curve448_scalar_t)", "", "Argument[*1].Field[*limb]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_halve", "(curve448_scalar_t,const curve448_scalar_t)", "", "Argument[*1].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_mul", "(curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t)", "", "Argument[*1].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_mul", "(curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t)", "", "Argument[*2].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_sub", "(curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t)", "", "Argument[*1].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_curve448_scalar_sub", "(curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t)", "", "Argument[*2].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DH_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DH_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DH_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DH_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DH_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DH_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DH_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DHx_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DHx_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DHx_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DHx_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DHx_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DHx_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DHx_PUBKEY", "(DH **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_DSA_PUBKEY", "(DSA **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_ED448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PUBKEY_legacy", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PUBKEY_legacy", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PUBKEY_legacy", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PUBKEY_legacy", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PUBKEY_legacy", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PUBKEY_legacy", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PUBKEY_legacy", "(EVP_PKEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PrivateKey_legacy", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_d2i_PrivateKey_legacy", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PrivateKey_legacy", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_d2i_PrivateKey_legacy", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PrivateKey_legacy", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PrivateKey_legacy", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PrivateKey_legacy", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PrivateKey_legacy", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PrivateKey_legacy", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_PrivateKey_legacy", "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X25519_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[**1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X448_PUBKEY", "(ECX_KEY **,const unsigned char **,long)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[**0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_d2i_X509_PUBKEY_INTERNAL", "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_decode_der_dsa_sig", "(BIGNUM *,BIGNUM *,const unsigned char **,size_t)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_decode_der_dsa_sig", "(BIGNUM *,BIGNUM *,const unsigned char **,size_t)", "", "Argument[*2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_decode_der_dsa_sig", "(BIGNUM *,BIGNUM *,const unsigned char **,size_t)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_decode_der_dsa_sig", "(BIGNUM *,BIGNUM *,const unsigned char **,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_decode_der_dsa_sig", "(BIGNUM *,BIGNUM *,const unsigned char **,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_decode_der_integer", "(PACKET *,BIGNUM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_decode_der_length", "(PACKET *,PACKET *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_decoder_ctx_add_decoder_inst", "(OSSL_DECODER_CTX *,OSSL_DECODER_INSTANCE *)", "", "Argument[*1]", "Argument[*0].Field[**decoder_insts].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_ctx_add_decoder_inst", "(OSSL_DECODER_CTX *,OSSL_DECODER_INSTANCE *)", "", "Argument[1]", "Argument[*0].Field[**decoder_insts].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_ctx_get_harderr", "(const OSSL_DECODER_CTX *)", "", "Argument[*0].Field[*harderr]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_fast_is_a", "(OSSL_DECODER *,const char *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_decoder_from_algorithm", "(int,const OSSL_ALGORITHM *,OSSL_PROVIDER *)", "", "Argument[0]", "ReturnValue[*].Field[*base].Field[*id]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_from_algorithm", "(int,const OSSL_ALGORITHM *,OSSL_PROVIDER *)", "", "Argument[1]", "ReturnValue[*].Field[*base].Field[*algodef]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_from_algorithm", "(int,const OSSL_ALGORITHM *,OSSL_PROVIDER *)", "", "Argument[2]", "ReturnValue[*].Field[*base].Field[*prov]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_get_number", "(const OSSL_DECODER *)", "", "Argument[*0].Field[*base].Field[*id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_dup", "(const OSSL_DECODER_INSTANCE *)", "", "Argument[*0].Field[**decoder]", "ReturnValue[*].Field[**decoder]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_dup", "(const OSSL_DECODER_INSTANCE *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_dup", "(const OSSL_DECODER_INSTANCE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_dup", "(const OSSL_DECODER_INSTANCE *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_new", "(OSSL_DECODER *,void *)", "", "Argument[**1]", "ReturnValue[*].Field[***decoderctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_new", "(OSSL_DECODER *,void *)", "", "Argument[*0]", "ReturnValue[*].Field[**decoder]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_new", "(OSSL_DECODER *,void *)", "", "Argument[*1]", "ReturnValue[*].Field[**decoderctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_new", "(OSSL_DECODER *,void *)", "", "Argument[0]", "ReturnValue[*].Field[*decoder]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_new", "(OSSL_DECODER *,void *)", "", "Argument[1]", "ReturnValue[*].Field[*decoderctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_new_forprov", "(OSSL_DECODER *,void *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**decoder]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_instance_new_forprov", "(OSSL_DECODER *,void *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*decoder]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_parsed_properties", "(const OSSL_DECODER *)", "", "Argument[*0].Field[*base].Field[**parsed_propdef]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_decoder_parsed_properties", "(const OSSL_DECODER *)", "", "Argument[*0].Field[*base].Field[*parsed_propdef]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_default_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*0]", "Argument[**3].Field[**handle]", "value", "dfc-generated"] + - ["", "", True, "ossl_default_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*1].Field[*function]", "Argument[**3].Field[*core_get_params]", "value", "dfc-generated"] + - ["", "", True, "ossl_default_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[0]", "Argument[**3].Field[*handle]", "value", "dfc-generated"] + - ["", "", True, "ossl_default_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_default_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_buf2key", "(DH *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**pub_key].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_buf2key", "(DH *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**pub_key].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_buf2key", "(DH *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**pub_key].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_buf2key", "(DH *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**pub_key].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_buf2key", "(DH *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**pub_key].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_check_priv_key", "(const DH *,const BIGNUM *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_check_pub_key_partial", "(const DH *,const BIGNUM *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_compute_key", "(unsigned char *,const BIGNUM *,DH *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_dup", "(const DH *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_dh_generate_ffc_parameters", "(DH *,int,int,int,BN_GENCB *)", "", "Argument[3]", "Argument[*0].Field[*params].Field[**seed]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_generate_ffc_parameters", "(DH *,int,int,int,BN_GENCB *)", "", "Argument[3]", "Argument[*0].Field[*params].Field[*seedlen]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_get0_nid", "(const DH *)", "", "Argument[*0].Field[*params].Field[*nid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_dh_get0_params", "(DH *)", "", "Argument[*0].Field[*params]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_dh_get_method", "(const DH *)", "", "Argument[*0].Field[**meth]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_dh_get_method", "(const DH *)", "", "Argument[*0].Field[*meth]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_dh_key2buf", "(const DH *,unsigned char **,size_t,int)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_key2buf", "(const DH *,unsigned char **,size_t,int)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_key2buf", "(const DH *,unsigned char **,size_t,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_key_fromdata", "(DH *,const OSSL_PARAM[],int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_key_todata", "(DH *,OSSL_PARAM_BLD *,OSSL_PARAM[],int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_new_by_nid_ex", "(OSSL_LIB_CTX *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dh_new_by_nid_ex", "(OSSL_LIB_CTX *,int)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dh_new_ex", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dh_new_ex", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dh_params_fromdata", "(DH *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_params_todata", "(DH *,OSSL_PARAM_BLD *,OSSL_PARAM[])", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dh_set0_libctx", "(DH *,OSSL_LIB_CTX *)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dh_set0_libctx", "(DH *,OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_digest_default_get_params", "(OSSL_PARAM[],size_t,size_t,unsigned long)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_digest_default_get_params", "(OSSL_PARAM[],size_t,size_t,unsigned long)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_digest_default_get_params", "(OSSL_PARAM[],size_t,size_t,unsigned long)", "", "Argument[2]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_digest_default_get_params", "(OSSL_PARAM[],size_t,size_t,unsigned long)", "", "Argument[3]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_digest_md_to_nid", "(const EVP_MD *,const OSSL_ITEM *,size_t)", "", "Argument[*1].Field[*id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_do_PVK_header", "(const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *)", "", "Argument[**0]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_do_PVK_header", "(const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *)", "", "Argument[**0]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_do_PVK_header", "(const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_do_PVK_header", "(const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_do_PVK_header", "(const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_do_blob_header", "(const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *)", "", "Argument[**0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_do_blob_header", "(const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *)", "", "Argument[**0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_do_blob_header", "(const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_do_blob_header", "(const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_do_blob_header", "(const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_do_ex_data_init", "(OSSL_LIB_CTX *)", "", "Argument[*0].Field[*global].Field[*ex_data_lock]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_drbg_clear_seed", "(void *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_drbg_get_ctx_params", "(PROV_DRBG *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_drbg_get_ctx_params_no_lock", "(PROV_DRBG *,OSSL_PARAM[],int *)", "", "Argument[*0].Field[*max_request]", "Argument[*1].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_drbg_get_ctx_params_no_lock", "(PROV_DRBG *,OSSL_PARAM[],int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_drbg_get_seed", "(void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_drbg_get_seed", "(void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t)", "", "Argument[3]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_drbg_get_seed", "(void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t)", "", "Argument[4]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_drbg_hmac_generate", "(PROV_DRBG_HMAC *,unsigned char *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_drbg_set_ctx_params", "(PROV_DRBG *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dsa_check_params", "(const DSA *,int,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dsa_check_priv_key", "(const DSA *,const BIGNUM *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dsa_check_pub_key", "(const DSA *,const BIGNUM *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dsa_check_pub_key_partial", "(const DSA *,const BIGNUM *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dsa_do_sign_int", "(const unsigned char *,int,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_dsa_dup", "(const DSA *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_dsa_ffc_params_fromdata", "(DSA *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dsa_generate_ffc_parameters", "(DSA *,int,int,int,BN_GENCB *)", "", "Argument[3]", "Argument[*0].Field[*params].Field[**seed]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dsa_generate_ffc_parameters", "(DSA *,int,int,int,BN_GENCB *)", "", "Argument[3]", "Argument[*0].Field[*params].Field[*seedlen]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dsa_generate_public_key", "(BN_CTX *,const DSA *,const BIGNUM *,BIGNUM *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_dsa_generate_public_key", "(BN_CTX *,const DSA *,const BIGNUM *,BIGNUM *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_dsa_get0_params", "(DSA *)", "", "Argument[*0].Field[*params]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_dsa_key_fromdata", "(DSA *,const OSSL_PARAM[],int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_dsa_new", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dsa_new", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[*ex_data].Field[**ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dsa_new", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*ex_data].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dsa_new", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dsa_set0_libctx", "(DSA *,OSSL_LIB_CTX *)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dsa_set0_libctx", "(DSA *,OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_dsa_sign_int", "(int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_field_div", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3].Field[*top]", "Argument[*1].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_field_div", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3].Field[*top]", "Argument[*1].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3].Field[*top]", "Argument[*1].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3].Field[*top]", "Argument[*1].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_field_sqr", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_group_copy", "(EC_GROUP *,const EC_GROUP *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_group_get_curve", "(const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_group_get_curve", "(const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_group_get_curve", "(const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_group_get_degree", "(const EC_GROUP *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_group_set_curve", "(EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_group_set_curve", "(EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_group_set_curve", "(EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_oct2point", "(const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_oct2point", "(const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_point2oct", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *)", "", "Argument[2]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_point2oct", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_point_copy", "(EC_POINT *,const EC_POINT *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_point_get_affine_coordinates", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_point_get_affine_coordinates", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_point_set_affine_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GF2m_simple_point_set_affine_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_encode", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_set_to_one", "(const EC_GROUP *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_field_sqr", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_group_copy", "(EC_GROUP *,const EC_GROUP *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_mont_group_set_curve", "(EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3].Field[*neg]", "Argument[*0].Field[**b].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_GFp_mont_group_set_curve", "(EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3].Field[*neg]", "Argument[*1].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_GFp_nist_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_nist_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_nist_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_nist_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_nist_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_nist_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_nist_field_sqr", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_nist_field_sqr", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_nist_field_sqr", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_nist_group_copy", "(EC_GROUP *,const EC_GROUP *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_nist_group_set_curve", "(EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3].Field[*neg]", "Argument[*0].Field[**b].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_GFp_nist_group_set_curve", "(EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3].Field[*neg]", "Argument[*1].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_GFp_simple_add", "(const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_add", "(const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_add", "(const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_add", "(const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_add", "(const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_blind_coordinates", "(const EC_GROUP *,EC_POINT *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_cmp", "(const EC_GROUP *,const EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_dbl", "(const EC_GROUP *,EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_dbl", "(const EC_GROUP *,EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_dbl", "(const EC_GROUP *,EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_dbl", "(const EC_GROUP *,EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_dbl", "(const EC_GROUP *,EC_POINT *,const EC_POINT *,BN_CTX *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_inv", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_mul", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_sqr", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_sqr", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_field_sqr", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_group_check_discriminant", "(const EC_GROUP *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_group_copy", "(EC_GROUP *,const EC_GROUP *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_group_get_curve", "(const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_group_get_curve", "(const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_group_get_curve", "(const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_group_get_curve", "(const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_group_get_degree", "(const EC_GROUP *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_group_set_curve", "(EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3].Field[*neg]", "Argument[*0].Field[**b].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_GFp_simple_group_set_curve", "(EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3].Field[*neg]", "Argument[*1].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_GFp_simple_invert", "(const EC_GROUP *,EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_is_on_curve", "(const EC_GROUP *,const EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_post", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_post", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_post", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_post", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_pre", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_pre", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_pre", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_pre", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_pre", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_pre", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_step", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_step", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_step", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_step", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_step", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_step", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_step", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*4]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_ladder_step", "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)", "", "Argument[*4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_make_affine", "(const EC_GROUP *,EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_oct2point", "(const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_oct2point", "(const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point2oct", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *)", "", "Argument[2]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point2oct", "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_copy", "(EC_POINT *,const EC_POINT *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_get_affine_coordinates", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_get_affine_coordinates", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_get_affine_coordinates", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_get_affine_coordinates", "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_set_affine_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_set_affine_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_set_affine_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_set_affine_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_set_affine_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_set_affine_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_point_set_affine_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_points_make_affine", "(const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_points_make_affine", "(const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *)", "", "Argument[*2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4].Field[*neg]", "Argument[*0].Field[**field].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*4].Field[*neg]", "Argument[*1].Field[**Z].Field[*neg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_GFp_simple_set_compressed_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_set_compressed_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_GFp_simple_set_compressed_coordinates", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_group_do_inverse_ord", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_group_do_inverse_ord", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_group_do_inverse_ord", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_group_do_inverse_ord", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_group_do_inverse_ord", "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_group_fromdata", "(EC_KEY *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_group_new_ex", "(OSSL_LIB_CTX *,const char *,const EC_METHOD *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_group_new_ex", "(OSSL_LIB_CTX *,const char *,const EC_METHOD *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_group_new_ex", "(OSSL_LIB_CTX *,const char *,const EC_METHOD *)", "", "Argument[*2]", "ReturnValue[*].Field[**meth]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_group_new_ex", "(OSSL_LIB_CTX *,const char *,const EC_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_group_new_ex", "(OSSL_LIB_CTX *,const char *,const EC_METHOD *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_group_new_ex", "(OSSL_LIB_CTX *,const char *,const EC_METHOD *)", "", "Argument[2]", "ReturnValue[*].Field[*meth]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_group_set_params", "(EC_GROUP *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_group_simple_order_bits", "(const EC_GROUP *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_ec_group_todata", "(const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **)", "", "Argument[**6]", "Argument[*2].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_group_todata", "(const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **)", "", "Argument[*6]", "Argument[*2].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_group_todata", "(const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_group_todata", "(const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **)", "", "Argument[6]", "Argument[*2].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_group_todata", "(const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_dup", "(const EC_KEY *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_key_from_pkcs8", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_key_from_pkcs8", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_key_from_pkcs8", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_key_from_pkcs8", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_key_fromdata", "(EC_KEY *,const OSSL_PARAM[],int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_get0_propq", "(const EC_KEY *)", "", "Argument[*0].Field[**propq]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_get0_propq", "(const EC_KEY *)", "", "Argument[*0].Field[*propq]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_get_libctx", "(const EC_KEY *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_get_libctx", "(const EC_KEY *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_new_method_int", "(OSSL_LIB_CTX *,const char *,ENGINE *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_new_method_int", "(OSSL_LIB_CTX *,const char *,ENGINE *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_new_method_int", "(OSSL_LIB_CTX *,const char *,ENGINE *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_new_method_int", "(OSSL_LIB_CTX *,const char *,ENGINE *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_new_method_int", "(OSSL_LIB_CTX *,const char *,ENGINE *)", "", "Argument[2]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_otherparams_fromdata", "(EC_KEY *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_param_from_x509_algor", "(const X509_ALGOR *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**group].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_param_from_x509_algor", "(const X509_ALGOR *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_param_from_x509_algor", "(const X509_ALGOR *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**group].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_param_from_x509_algor", "(const X509_ALGOR *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_param_from_x509_algor", "(const X509_ALGOR *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**group].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_param_from_x509_algor", "(const X509_ALGOR *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_param_from_x509_algor", "(const X509_ALGOR *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**group].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_param_from_x509_algor", "(const X509_ALGOR *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_set0_libctx", "(EC_KEY *,OSSL_LIB_CTX *)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_set0_libctx", "(EC_KEY *,OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ec_key_simple_oct2priv", "(EC_KEY *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**priv_key].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_simple_oct2priv", "(EC_KEY *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**priv_key].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_simple_oct2priv", "(EC_KEY *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**priv_key].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_simple_oct2priv", "(EC_KEY *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**priv_key].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_simple_oct2priv", "(EC_KEY *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[**priv_key].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_key_simple_priv2oct", "(const EC_KEY *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_scalar_mul_ladder", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,BN_CTX *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_scalar_mul_ladder", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,BN_CTX *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ec_wNAF_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)", "", "Argument[**5]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ossl_ec_wNAF_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)", "", "Argument[*2]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "ossl_ec_wNAF_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)", "", "Argument[*4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_wNAF_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)", "", "Argument[*5]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ec_wNAF_mul", "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)", "", "Argument[*5]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecdh_simple_compute_key", "(unsigned char **,size_t *,const EC_POINT *,const EC_KEY *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecdsa_deterministic_sign", "(const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecdsa_sign", "(int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecdsa_simple_sign_setup", "(EC_KEY *,BN_CTX *,BIGNUM **,BIGNUM **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecdsa_simple_sign_setup", "(EC_KEY *,BN_CTX *,BIGNUM **,BIGNUM **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecdsa_simple_sign_sig", "(const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *)", "", "Argument[*3]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ecdsa_simple_sign_sig", "(const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *)", "", "Argument[*4]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ecdsa_simple_sign_sig", "(const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *)", "", "Argument[*4]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ecdsa_simple_verify_sig", "(const unsigned char *,int,const ECDSA_SIG *,EC_KEY *)", "", "Argument[*3].Field[**group].Field[**order]", "Argument[*2].Field[**s]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecdsa_verify", "(int,const unsigned char *,int,const unsigned char *,int,EC_KEY *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecx_compute_key", "(ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t)", "", "Argument[*0].Field[*pubkey]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecx_compute_key", "(ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t)", "", "Argument[*1].Field[**privkey]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecx_compute_key", "(ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t)", "", "Argument[*1].Field[*privkey]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecx_compute_key", "(ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t)", "", "Argument[2]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_allocate_privkey", "(ECX_KEY *)", "", "Argument[*0].Field[**privkey]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_allocate_privkey", "(ECX_KEY *)", "", "Argument[*0].Field[*privkey]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_dup", "(const ECX_KEY *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ecx_key_from_pkcs8", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_from_pkcs8", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_from_pkcs8", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_from_pkcs8", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_fromdata", "(ECX_KEY *,const OSSL_PARAM[],int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_new", "(OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_new", "(OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *)", "", "Argument[*3]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_new", "(OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_new", "(OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_new", "(OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*haspubkey]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_new", "(OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *)", "", "Argument[3]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_op", "(const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *)", "", "Argument[*5]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_op", "(const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *)", "", "Argument[*6]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_op", "(const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *)", "", "Argument[5]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_op", "(const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *)", "", "Argument[6]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_set0_libctx", "(ECX_KEY *,OSSL_LIB_CTX *)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ecx_key_set0_libctx", "(ECX_KEY *,OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ed25519_public_from_private", "(OSSL_LIB_CTX *,uint8_t[32],const uint8_t[32],const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ed25519_sign", "(uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ed448_pubkey_verify", "(const uint8_t *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ed448_pubkey_verify", "(const uint8_t *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ed448_public_from_private", "(OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ed448_sign", "(OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_encode_der_dsa_sig", "(WPACKET *,const BIGNUM *,const BIGNUM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_encode_der_dsa_sig", "(WPACKET *,const BIGNUM *,const BIGNUM *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_encode_der_integer", "(WPACKET *,const BIGNUM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_encoder_get_number", "(const OSSL_ENCODER *)", "", "Argument[*0].Field[*base].Field[*id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_encoder_parsed_properties", "(const OSSL_ENCODER *)", "", "Argument[*0].Field[*base].Field[**parsed_propdef]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_encoder_parsed_properties", "(const OSSL_ENCODER *)", "", "Argument[*0].Field[*base].Field[*parsed_propdef]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_engine_table_select", "(ENGINE_TABLE **,int,const char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_epki2pki_der_decode", "(unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_epki2pki_der_decode", "(unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_evp_pkey_get1_ED25519", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_evp_pkey_get1_ED25519", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_evp_pkey_get1_ED448", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_evp_pkey_get1_ED448", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_evp_pkey_get1_X25519", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_evp_pkey_get1_X25519", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_evp_pkey_get1_X448", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_evp_pkey_get1_X448", "(EVP_PKEY *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_generate_private_key", "(BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *)", "", "Argument[2]", "Argument[*4].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_generate_private_key", "(BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *)", "", "Argument[2]", "Argument[*4].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_generate_private_key", "(BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *)", "", "Argument[2]", "Argument[*4].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_generate_private_key", "(BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *)", "", "Argument[3]", "Argument[*4].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_generate_private_key", "(BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *)", "", "Argument[3]", "Argument[*4].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_generate_private_key", "(BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *)", "", "Argument[3]", "Argument[*4].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_named_group_get_keylength", "(const DH_NAMED_GROUP *)", "", "Argument[*0].Field[*keylength]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_named_group_get_name", "(const DH_NAMED_GROUP *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_named_group_get_name", "(const DH_NAMED_GROUP *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_named_group_get_q", "(const DH_NAMED_GROUP *)", "", "Argument[*0].Field[**q]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_named_group_get_q", "(const DH_NAMED_GROUP *)", "", "Argument[*0].Field[*q]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_named_group_get_uid", "(const DH_NAMED_GROUP *)", "", "Argument[*0].Field[*uid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_named_group_set", "(FFC_PARAMS *,const DH_NAMED_GROUP *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_2_gen_verify", "(OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_2_generate", "(OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_2_validate", "(OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_4_gen_verify", "(OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *)", "", "Argument[5]", "Argument[*1].Field[**q].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_4_gen_verify", "(OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *)", "", "Argument[5]", "Argument[*1].Field[**q].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_4_gen_verify", "(OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *)", "", "Argument[5]", "Argument[*1].Field[**q].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_4_gen_verify", "(OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_4_generate", "(OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *)", "", "Argument[4]", "Argument[*1].Field[**q].Field[**d]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_4_generate", "(OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *)", "", "Argument[4]", "Argument[*1].Field[**q].Field[*dmax]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_4_generate", "(OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *)", "", "Argument[4]", "Argument[*1].Field[**q].Field[*top]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_4_generate", "(OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_FIPS186_4_validate", "(OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_copy", "(FFC_PARAMS *,const FFC_PARAMS *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_enable_flags", "(FFC_PARAMS *,unsigned int,int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_fromdata", "(FFC_PARAMS *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_full_validate", "(OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_get0_pqg", "(const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_get0_pqg", "(const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_get0_pqg", "(const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_get0_pqg", "(const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_get0_pqg", "(const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_get0_pqg", "(const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_get_validate_params", "(const FFC_PARAMS *,unsigned char **,size_t *,int *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_get_validate_params", "(const FFC_PARAMS *,unsigned char **,size_t *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_get_validate_params", "(const FFC_PARAMS *,unsigned char **,size_t *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_get_validate_params", "(const FFC_PARAMS *,unsigned char **,size_t *,int *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_ffc_params_set0_j", "(FFC_PARAMS *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**j]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set0_j", "(FFC_PARAMS *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*j]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set0_pqg", "(FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*0].Field[**p]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set0_pqg", "(FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*0].Field[**q]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set0_pqg", "(FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*3]", "Argument[*0].Field[**g]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set0_pqg", "(FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[1]", "Argument[*0].Field[*p]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set0_pqg", "(FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[2]", "Argument[*0].Field[*q]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set0_pqg", "(FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[3]", "Argument[*0].Field[*g]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_flags", "(FFC_PARAMS *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_gindex", "(FFC_PARAMS *,int)", "", "Argument[1]", "Argument[*0].Field[*gindex]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_h", "(FFC_PARAMS *,int)", "", "Argument[1]", "Argument[*0].Field[*h]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_pcounter", "(FFC_PARAMS *,int)", "", "Argument[1]", "Argument[*0].Field[*pcounter]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_seed", "(FFC_PARAMS *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**seed]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_seed", "(FFC_PARAMS *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**seed]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_seed", "(FFC_PARAMS *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*seedlen]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_validate_params", "(FFC_PARAMS *,const unsigned char *,size_t,int)", "", "Argument[*1]", "Argument[*0].Field[**seed]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_validate_params", "(FFC_PARAMS *,const unsigned char *,size_t,int)", "", "Argument[1]", "Argument[*0].Field[**seed]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_validate_params", "(FFC_PARAMS *,const unsigned char *,size_t,int)", "", "Argument[2]", "Argument[*0].Field[*seedlen]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_set_validate_params", "(FFC_PARAMS *,const unsigned char *,size_t,int)", "", "Argument[3]", "Argument[*0].Field[*pcounter]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_simple_validate", "(OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_todata", "(const FFC_PARAMS *,OSSL_PARAM_BLD *,OSSL_PARAM[])", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_params_validate_unverifiable_g", "(BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *)", "", "Argument[*2]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "ossl_ffc_params_validate_unverifiable_g", "(BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *)", "", "Argument[*4]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ossl_ffc_params_validate_unverifiable_g", "(BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_set_digest", "(FFC_PARAMS *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**mdname]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_set_digest", "(FFC_PARAMS *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**mdprops]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_set_digest", "(FFC_PARAMS *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[*mdname]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_set_digest", "(FFC_PARAMS *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[*mdprops]", "value", "dfc-generated"] + - ["", "", True, "ossl_ffc_validate_private_key", "(const BIGNUM *,const BIGNUM *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_validate_public_key", "(const FFC_PARAMS *,const BIGNUM *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ffc_validate_public_key_partial", "(const FFC_PARAMS *,const BIGNUM *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_fnv1a_hash", "(uint8_t *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_fnv1a_hash", "(uint8_t *,size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_aad_update", "(PROV_GCM_CTX *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*gcm].Field[*ares]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher_update", "(PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *)", "", "Argument[*1]", "Argument[*0].Field[*gcm].Field[*Xn]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher_update", "(PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *)", "", "Argument[*1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher_update", "(PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *)", "", "Argument[*3]", "Argument[*0].Field[*gcm].Field[*Xn]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher_update", "(PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*gcm].Field[*Xn]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher_update", "(PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher_update", "(PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *)", "", "Argument[3]", "Argument[*0].Field[*gcm].Field[*Xn]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_cipher_update", "(PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[*ivlen]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[*ivlen]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_get_ctx_params", "(void *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_ghash_4bit", "(u64[2],const u128[16],const u8 *,size_t)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_ghash_4bit", "(u64[2],const u128[16],const u8 *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_ghash_4bit", "(u64[2],const u128[16],const u8 *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_initctx", "(void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *)", "", "Argument[*0].Field[**libctx]", "Argument[*1].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_initctx", "(void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *)", "", "Argument[*0].Field[*libctx]", "Argument[*1].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_initctx", "(void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *)", "", "Argument[*3]", "Argument[*1].Field[**hw]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_initctx", "(void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *)", "", "Argument[2]", "Argument[*1].Field[*keylen]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_initctx", "(void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *)", "", "Argument[3]", "Argument[*1].Field[*hw]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_set_ctx_params", "(void *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_stream_final", "(void *,unsigned char *,size_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_stream_final", "(void *,unsigned char *,size_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_stream_final", "(void *,unsigned char *,size_t *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_gcm_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_gcm_stream_update", "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)", "", "Argument[5]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_gen_deterministic_nonce_rfc6979", "(BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,const char *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_get_avail_threads", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_get_extension_type", "(size_t)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_ht_count", "(HT *)", "", "Argument[*0].Field[*wpd].Field[*value_count]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ht_filter", "(HT *,size_t,..(*)(..),void *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ht_foreach_until", "(HT *,..(*)(..),void *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ht_insert", "(HT *,HT_KEY *,HT_VALUE *,HT_VALUE **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ht_new", "(const HT_CONFIG *)", "", "Argument[0]", "ReturnValue[*].Field[*config]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2c_ASN1_BIT_STRING", "(ASN1_BIT_STRING *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2c_ASN1_BIT_STRING", "(ASN1_BIT_STRING *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2c_ASN1_BIT_STRING", "(ASN1_BIT_STRING *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2c_ASN1_INTEGER", "(ASN1_INTEGER *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2c_ASN1_INTEGER", "(ASN1_INTEGER *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2c_ASN1_INTEGER", "(ASN1_INTEGER *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2c_uint64_int", "(unsigned char *,uint64_t,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2c_uint64_int", "(unsigned char *,uint64_t,int)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_DH_PUBKEY", "(const DH *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_DH_PUBKEY", "(const DH *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_DH_PUBKEY", "(const DH *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_DHx_PUBKEY", "(const DH *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_DHx_PUBKEY", "(const DH *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_DHx_PUBKEY", "(const DH *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_ED25519_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_ED25519_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_ED25519_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_ED448_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_ED448_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_ED448_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_X25519_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_X25519_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_X25519_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_X448_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_X448_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_i2d_X448_PUBKEY", "(const ECX_KEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ipaddr_to_asc", "(unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_is_partially_overlapping", "(const void *,const void *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_is_partially_overlapping", "(const void *,const void *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_json_i64", "(OSSL_JSON_ENC *,int64_t)", "", "Argument[1]", "Argument[*0].Field[*wbuf].Field[**buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_json_in_error", "(OSSL_JSON_ENC *)", "", "Argument[*0].Field[*error]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_json_init", "(OSSL_JSON_ENC *,BIO *,uint32_t)", "", "Argument[*1]", "Argument[*0].Field[*wbuf].Field[**bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_json_init", "(OSSL_JSON_ENC *,BIO *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*wbuf].Field[*bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_json_init", "(OSSL_JSON_ENC *,BIO *,uint32_t)", "", "Argument[2]", "Argument[*0].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "ossl_json_key", "(OSSL_JSON_ENC *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*wbuf].Field[**buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_json_key", "(OSSL_JSON_ENC *,const char *)", "", "Argument[1]", "Argument[*0].Field[*wbuf].Field[**buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_json_set0_sink", "(OSSL_JSON_ENC *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[*wbuf].Field[**bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_json_set0_sink", "(OSSL_JSON_ENC *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*wbuf].Field[*bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_json_str", "(OSSL_JSON_ENC *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*wbuf].Field[**buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_json_str", "(OSSL_JSON_ENC *,const char *)", "", "Argument[1]", "Argument[*0].Field[*wbuf].Field[**buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_json_str_hex", "(OSSL_JSON_ENC *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*wbuf].Field[**buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_json_str_hex", "(OSSL_JSON_ENC *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*wbuf].Field[**buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_json_str_len", "(OSSL_JSON_ENC *,const char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*wbuf].Field[**buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_json_str_len", "(OSSL_JSON_ENC *,const char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*wbuf].Field[**buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_json_u64", "(OSSL_JSON_ENC *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*wbuf].Field[**buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_kdf_data_new", "(void *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_kdf_data_new", "(void *)", "", "Argument[*0].Field[*libctx]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_keccak_init", "(KECCAK1600_CTX *,unsigned char,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*pad]", "value", "dfc-generated"] + - ["", "", True, "ossl_keccak_init", "(KECCAK1600_CTX *,unsigned char,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[*block_size]", "taint", "dfc-generated"] + - ["", "", True, "ossl_keccak_init", "(KECCAK1600_CTX *,unsigned char,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[*md_size]", "taint", "dfc-generated"] + - ["", "", True, "ossl_keccak_init", "(KECCAK1600_CTX *,unsigned char,size_t,size_t)", "", "Argument[3]", "Argument[*0].Field[*md_size]", "taint", "dfc-generated"] + - ["", "", True, "ossl_legacy_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*0]", "Argument[**3].Field[**handle]", "value", "dfc-generated"] + - ["", "", True, "ossl_legacy_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[0]", "Argument[**3].Field[*handle]", "value", "dfc-generated"] + - ["", "", True, "ossl_legacy_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_legacy_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_lh_strcasehash", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_lh_strcasehash", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_lib_ctx_get_concrete", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_lib_ctx_get_concrete", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_lib_ctx_get_data", "(OSSL_LIB_CTX *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_lib_ctx_get_data", "(OSSL_LIB_CTX *,int)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "ossl_lib_ctx_get_data", "(OSSL_LIB_CTX *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_lib_ctx_get_ex_data_global", "(OSSL_LIB_CTX *)", "", "Argument[*0].Field[*global]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_lib_ctx_get_rcukey", "(OSSL_LIB_CTX *)", "", "Argument[*0].Field[*rcu_local_key]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_lib_ctx_is_child", "(OSSL_LIB_CTX *)", "", "Argument[*0].Field[*ischild]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_mac_key_new", "(OSSL_LIB_CTX *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_mac_key_new", "(OSSL_LIB_CTX *,int)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_mac_key_new", "(OSSL_LIB_CTX *,int)", "", "Argument[1]", "ReturnValue[*].Field[*cmac]", "value", "dfc-generated"] + - ["", "", True, "ossl_md5_sha1_ctrl", "(MD5_SHA1_CTX *,int,int,void *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_md5_sha1_final", "(unsigned char *,MD5_SHA1_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_md5_sha1_update", "(MD5_SHA1_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_method_construct", "(OSSL_LIB_CTX *,int,OSSL_PROVIDER **,int,OSSL_METHOD_CONSTRUCT_METHOD *,void *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_method_store_add", "(OSSL_METHOD_STORE *,const OSSL_PROVIDER *,int,const char *,void *,..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*0].Field[**algs].Field[*top]", "value", "dfc-generated"] + - ["", "", True, "ossl_method_store_fetch", "(OSSL_METHOD_STORE *,int,const char *,const OSSL_PROVIDER **,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_method_store_free", "(OSSL_METHOD_STORE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_method_store_new", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_method_store_new", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_common_pkcs8_fmt_order", "(const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**fmt]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_common_pkcs8_fmt_order", "(const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**fmt]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_common_pkcs8_fmt_order", "(const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[*fmt]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_d2i_PKCS8", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[*0]", "Argument[0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_d2i_PKCS8", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_d2i_PKCS8", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_d2i_PKCS8", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[1]", "Argument[0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_d2i_PUBKEY", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**pub_encoding]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_d2i_PUBKEY", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[*rho]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_d2i_PUBKEY", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[*3].Field[**libctx]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_d2i_PUBKEY", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[*3].Field[*libctx]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_d2i_PUBKEY", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**pub_encoding]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_d2i_PUBKEY", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*rho]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_i2d_pubkey", "(const ML_DSA_KEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_decompose", "(uint32_t,uint32_t,uint32_t *,int32_t *)", "", "Argument[*2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_decompose", "(uint32_t,uint32_t,uint32_t *,int32_t *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_decompose", "(uint32_t,uint32_t,uint32_t *,int32_t *)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_decompose", "(uint32_t,uint32_t,uint32_t *,int32_t *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_decompose", "(uint32_t,uint32_t,uint32_t *,int32_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_decompose", "(uint32_t,uint32_t,uint32_t *,int32_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_decompose", "(uint32_t,uint32_t,uint32_t *,int32_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_high_bits", "(uint32_t,uint32_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_low_bits", "(uint32_t,uint32_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_low_bits", "(uint32_t,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_power2_round", "(uint32_t,uint32_t *,uint32_t *)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_power2_round", "(uint32_t,uint32_t *,uint32_t *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_power2_round", "(uint32_t,uint32_t *,uint32_t *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_power2_round", "(uint32_t,uint32_t *,uint32_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_power2_round", "(uint32_t,uint32_t *,uint32_t *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_power2_round", "(uint32_t,uint32_t *,uint32_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_compress_use_hint", "(uint32_t,uint32_t,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_dup", "(const ML_DSA_KEY *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ml_dsa_key_get0_libctx", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get0_libctx", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_collision_strength_bits", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*bit_strength]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_name", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[**alg]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_name", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*alg]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_priv", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**priv_encoding]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_priv", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[*priv_encoding]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_priv_len", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*sk_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_prov_flags", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[*prov_flags]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_pub", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**pub_encoding]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_pub", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[*pub_encoding]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_pub_len", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*pk_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_seed", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**seed]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_seed", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[*seed]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_get_sig_len", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*sig_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_new", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_new", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_params", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[**params]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_params", "(const ML_DSA_KEY *)", "", "Argument[*0].Field[*params]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_key_pub_alloc", "(ML_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*k]", "Argument[*0].Field[*t1].Field[*num_poly]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_matrix_expand_A", "(EVP_MD_CTX *,const EVP_MD *,const uint8_t *,MATRIX *)", "", "Argument[1]", "Argument[*0].Field[*digest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_matrix_expand_A", "(EVP_MD_CTX *,const EVP_MD *,const uint8_t *,MATRIX *)", "", "Argument[1]", "Argument[*0].Field[*fetched_digest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_matrix_expand_A", "(EVP_MD_CTX *,const EVP_MD *,const uint8_t *,MATRIX *)", "", "Argument[1]", "Argument[*0].Field[*reqdigest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_matrix_mult_vector", "(const MATRIX *,const VECTOR *,VECTOR *)", "", "Argument[*0].Field[**m_poly].Field[*coeff]", "Argument[*2].Field[**poly].Field[*coeff]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_mu_init", "(const ML_DSA_KEY *,int,const uint8_t *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_ml_dsa_pk_decode", "(ML_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**pub_encoding]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_pk_decode", "(ML_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*rho]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_pk_decode", "(ML_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[**pub_encoding]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_pk_decode", "(ML_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[*rho]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_poly_expand_mask", "(POLY *,const uint8_t *,size_t,uint32_t,EVP_MD_CTX *,const EVP_MD *)", "", "Argument[5]", "Argument[*4].Field[*digest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_poly_expand_mask", "(POLY *,const uint8_t *,size_t,uint32_t,EVP_MD_CTX *,const EVP_MD *)", "", "Argument[5]", "Argument[*4].Field[*fetched_digest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_poly_expand_mask", "(POLY *,const uint8_t *,size_t,uint32_t,EVP_MD_CTX *,const EVP_MD *)", "", "Argument[5]", "Argument[*4].Field[*reqdigest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_poly_ntt_mult", "(const POLY *,const POLY *,POLY *)", "", "Argument[*0].Field[*coeff]", "Argument[*2].Field[*coeff]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_poly_ntt_mult", "(const POLY *,const POLY *,POLY *)", "", "Argument[*1].Field[*coeff]", "Argument[*2].Field[*coeff]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_poly_sample_in_ball", "(POLY *,const uint8_t *,int,EVP_MD_CTX *,const EVP_MD *,uint32_t)", "", "Argument[4]", "Argument[*3].Field[*digest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_poly_sample_in_ball", "(POLY *,const uint8_t *,int,EVP_MD_CTX *,const EVP_MD *,uint32_t)", "", "Argument[4]", "Argument[*3].Field[*fetched_digest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_poly_sample_in_ball", "(POLY *,const uint8_t *,int,EVP_MD_CTX *,const EVP_MD *,uint32_t)", "", "Argument[4]", "Argument[*3].Field[*reqdigest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_set_prekey", "(ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t)", "", "Argument[*3]", "Argument[*0].Field[**seed]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_set_prekey", "(ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t)", "", "Argument[*5]", "Argument[*0].Field[**priv_encoding]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_set_prekey", "(ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[*prov_flags]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_set_prekey", "(ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t)", "", "Argument[2]", "Argument[*0].Field[*prov_flags]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_set_prekey", "(ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t)", "", "Argument[3]", "Argument[*0].Field[**seed]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_set_prekey", "(ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t)", "", "Argument[5]", "Argument[*0].Field[**priv_encoding]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_sig_decode", "(ML_DSA_SIG *,const uint8_t *,size_t,const ML_DSA_PARAMS *)", "", "Argument[*1]", "Argument[*0].Field[**c_tilde]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_sig_decode", "(ML_DSA_SIG *,const uint8_t *,size_t,const ML_DSA_PARAMS *)", "", "Argument[1]", "Argument[*0].Field[**c_tilde]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_sign", "(const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t)", "", "Argument[*0]", "Argument[*10]", "taint", "df-generated"] + - ["", "", True, "ossl_ml_dsa_sk_decode", "(ML_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ml_dsa_sk_decode", "(ML_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ml_dsa_vector_expand_S", "(EVP_MD_CTX *,const EVP_MD *,int,const uint8_t *,VECTOR *,VECTOR *)", "", "Argument[1]", "Argument[*0].Field[*digest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_vector_expand_S", "(EVP_MD_CTX *,const EVP_MD *,int,const uint8_t *,VECTOR *,VECTOR *)", "", "Argument[1]", "Argument[*0].Field[*fetched_digest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_vector_expand_S", "(EVP_MD_CTX *,const EVP_MD *,int,const uint8_t *,VECTOR *,VECTOR *)", "", "Argument[1]", "Argument[*0].Field[*reqdigest]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_dsa_w1_encode", "(const VECTOR *,uint32_t,uint8_t *,size_t)", "", "Argument[*0].Field[*poly]", "Argument[*0].Field[**poly]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_d2i_PKCS8", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[*0]", "Argument[0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_d2i_PKCS8", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_d2i_PKCS8", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_d2i_PKCS8", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[1]", "Argument[0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_d2i_PUBKEY", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**rho]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_d2i_PUBKEY", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[*3].Field[**libctx]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_d2i_PUBKEY", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[*3].Field[*libctx]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_d2i_PUBKEY", "(const uint8_t *,int,int,PROV_CTX *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**rho]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_decap", "(uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_encap_rand", "(uint8_t *,size_t,uint8_t *,size_t,const ML_KEM_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_encap_seed", "(uint8_t *,size_t,uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_encode_private_key", "(uint8_t *,size_t,const ML_KEM_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_encode_public_key", "(uint8_t *,size_t,const ML_KEM_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_encode_seed", "(uint8_t *,size_t,const ML_KEM_KEY *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_ml_kem_genkey", "(uint8_t *,size_t,ML_KEM_KEY *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_i2d_pubkey", "(const ML_KEM_KEY *,unsigned char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_i2d_pubkey", "(const ML_KEM_KEY *,unsigned char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_i2d_pubkey", "(const ML_KEM_KEY *,unsigned char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_key_dup", "(const ML_KEM_KEY *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_ml_kem_key_dup", "(const ML_KEM_KEY *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_key_new", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_key_new", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_parse_private_key", "(const uint8_t *,size_t,ML_KEM_KEY *)", "", "Argument[*0]", "Argument[*2].Field[**rho]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_parse_private_key", "(const uint8_t *,size_t,ML_KEM_KEY *)", "", "Argument[*0]", "Argument[*2].Field[**z]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_parse_private_key", "(const uint8_t *,size_t,ML_KEM_KEY *)", "", "Argument[0]", "Argument[*2].Field[**rho]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_parse_private_key", "(const uint8_t *,size_t,ML_KEM_KEY *)", "", "Argument[0]", "Argument[*2].Field[**z]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_parse_public_key", "(const uint8_t *,size_t,ML_KEM_KEY *)", "", "Argument[*0]", "Argument[*2].Field[**rho]", "value", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_parse_public_key", "(const uint8_t *,size_t,ML_KEM_KEY *)", "", "Argument[0]", "Argument[*2].Field[**rho]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_pubkey_cmp", "(const ML_KEM_KEY *,const ML_KEM_KEY *)", "", "Argument[*0].Field[*t]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_pubkey_cmp", "(const ML_KEM_KEY *,const ML_KEM_KEY *)", "", "Argument[*1].Field[*t]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_ml_kem_set_seed", "(const uint8_t *,size_t,ML_KEM_KEY *)", "", "Argument[*2]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_ml_kem_set_seed", "(const uint8_t *,size_t,ML_KEM_KEY *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_namemap_add_name", "(OSSL_NAMEMAP *,int,const char *)", "", "Argument[1]", "Argument[*0].Field[**numnames].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_namemap_add_name", "(OSSL_NAMEMAP *,int,const char *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_namemap_add_names", "(OSSL_NAMEMAP *,int,const char *,const char)", "", "Argument[1]", "Argument[*0].Field[**numnames].Field[***data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_namemap_add_names", "(OSSL_NAMEMAP *,int,const char *,const char)", "", "Argument[1]", "Argument[*0].Field[**numnames].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_namemap_add_names", "(OSSL_NAMEMAP *,int,const char *,const char)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_namemap_doall_names", "(const OSSL_NAMEMAP *,int,..(*)(..),void *)", "", "Argument[1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_namemap_num2name", "(const OSSL_NAMEMAP *,int,size_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_namemap_stored", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_namemap_stored", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_null_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*0]", "Argument[**3]", "value", "dfc-generated"] + - ["", "", True, "ossl_null_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[0]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_bn", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_bn", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_bn_pad", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_bn_pad", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_bn_pad", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t)", "", "Argument[4]", "Argument[*0].Field[*secure_blocks]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_bn_pad", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t)", "", "Argument[4]", "Argument[*0].Field[*total_blocks]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_bn_pad", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t)", "", "Argument[4]", "Argument[*1].Field[*data_size]", "value", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_int", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_int", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,int)", "", "Argument[3]", "Argument[*1].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_long", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,long)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_long", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,long)", "", "Argument[3]", "Argument[*1].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_multi_key_bn", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *[],stack_st_BIGNUM_const *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_octet_string", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t)", "", "Argument[*3]", "Argument[*1].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_octet_string", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_octet_string", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*1].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_octet_string", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*0].Field[*secure_blocks]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_octet_string", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*0].Field[*total_blocks]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_octet_string", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t)", "", "Argument[4]", "Argument[*1].Field[*return_size]", "value", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_utf8_string", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const char *)", "", "Argument[*3]", "Argument[*1].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_utf8_string", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_build_set_utf8_string", "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const char *)", "", "Argument[3]", "Argument[*1].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_bytes_to_blocks", "(size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_get1_concat_octet_string", "(const OSSL_PARAM *,const char *,unsigned char **,size_t *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_get1_concat_octet_string", "(const OSSL_PARAM *,const char *,unsigned char **,size_t *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_get1_concat_octet_string", "(const OSSL_PARAM *,const char *,unsigned char **,size_t *,size_t)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_get1_octet_string", "(const OSSL_PARAM *,const char *,unsigned char **,size_t *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_get1_octet_string", "(const OSSL_PARAM *,const char *,unsigned char **,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_get1_octet_string", "(const OSSL_PARAM *,const char *,unsigned char **,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_param_set_secure_block", "(OSSL_PARAM *,void *,size_t)", "", "Argument[**1]", "Argument[*0].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "ossl_param_set_secure_block", "(OSSL_PARAM *,void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_param_set_secure_block", "(OSSL_PARAM *,void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ossl_param_set_secure_block", "(OSSL_PARAM *,void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*data_size]", "value", "dfc-generated"] + - ["", "", True, "ossl_parse_property", "(OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_parse_query", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pem_check_suffix", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_pkcs12_get0_pkcs7ctx", "(const PKCS12 *)", "", "Argument[*0].Field[**authsafes].Field[*ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_pkcs7_ctx_get0_libctx", "(const PKCS7_CTX *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_pkcs7_ctx_get0_libctx", "(const PKCS7_CTX *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_pkcs7_ctx_get0_propq", "(const PKCS7_CTX *)", "", "Argument[*0].Field[**propq]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_pkcs7_ctx_get0_propq", "(const PKCS7_CTX *)", "", "Argument[*0].Field[*propq]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_pkcs7_ctx_propagate", "(const PKCS7 *,PKCS7 *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_pkcs7_get0_ctx", "(const PKCS7 *)", "", "Argument[*0].Field[*ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_pkcs7_set0_libctx", "(PKCS7 *,OSSL_LIB_CTX *)", "", "Argument[*1]", "Argument[*0].Field[*ctx].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_pkcs7_set0_libctx", "(PKCS7 *,OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*0].Field[*ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_pkcs7_set1_propq", "(PKCS7 *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*ctx].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_pkcs7_set1_propq", "(PKCS7 *,const char *)", "", "Argument[1]", "Argument[*0].Field[*ctx].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_policy_cache_find_data", "(const X509_POLICY_CACHE *,const ASN1_OBJECT *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_policy_cache_find_data", "(const X509_POLICY_CACHE *,const ASN1_OBJECT *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_policy_cache_set", "(X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_policy_cache_set", "(X509 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_policy_data_new", "(POLICYINFO *,const ASN1_OBJECT *,int)", "", "Argument[1]", "ReturnValue[*].Field[*valid_policy]", "value", "dfc-generated"] + - ["", "", True, "ossl_policy_level_add_node", "(X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int)", "", "Argument[1]", "Argument[*0].Field[**anyPolicy].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ossl_policy_level_add_node", "(X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int)", "", "Argument[1]", "Argument[*3].Field[**extra_data].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_policy_level_add_node", "(X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int)", "", "Argument[1]", "ReturnValue[*].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ossl_policy_level_add_node", "(X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int)", "", "Argument[2]", "Argument[*0].Field[**anyPolicy].Field[*parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_policy_level_add_node", "(X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int)", "", "Argument[2]", "ReturnValue[*].Field[*parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_policy_level_find_node", "(const X509_POLICY_LEVEL *,const X509_POLICY_NODE *,const ASN1_OBJECT *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_policy_level_find_node", "(const X509_POLICY_LEVEL *,const X509_POLICY_NODE *,const ASN1_OBJECT *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_policy_tree_find_sk", "(stack_st_X509_POLICY_NODE *,const ASN1_OBJECT *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_policy_tree_find_sk", "(stack_st_X509_POLICY_NODE *,const ASN1_OBJECT *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_polyval_ghash_hash", "(const u128[16],uint8_t *,const uint8_t *,size_t)", "", "Argument[*2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_polyval_ghash_hash", "(const u128[16],uint8_t *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_polyval_ghash_hash", "(const u128[16],uint8_t *,const uint8_t *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pool_acquire_entropy", "(RAND_POOL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_pqueue_new", "(..(*)(..))", "", "Argument[0]", "ReturnValue[*].Field[*compare]", "value", "dfc-generated"] + - ["", "", True, "ossl_pqueue_num", "(const OSSL_PQUEUE *)", "", "Argument[*0].Field[*htop]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_pqueue_peek", "(const OSSL_PQUEUE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_pqueue_peek", "(const OSSL_PQUEUE *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "ossl_pqueue_peek", "(const OSSL_PQUEUE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_pqueue_pop", "(OSSL_PQUEUE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_pqueue_pop", "(OSSL_PQUEUE *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "ossl_pqueue_pop", "(OSSL_PQUEUE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_pqueue_push", "(OSSL_PQUEUE *,void *,size_t *)", "", "Argument[**1]", "Argument[*0].Field[**heap].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "ossl_pqueue_push", "(OSSL_PQUEUE *,void *,size_t *)", "", "Argument[*1]", "Argument[*0].Field[**heap].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_pqueue_push", "(OSSL_PQUEUE *,void *,size_t *)", "", "Argument[1]", "Argument[*0].Field[**heap].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ossl_pqueue_remove", "(OSSL_PQUEUE *,size_t)", "", "Argument[1]", "Argument[*0].Field[*freelist]", "value", "dfc-generated"] + - ["", "", True, "ossl_print_attribute_value", "(BIO *,int,const ASN1_TYPE *,int)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_prop_defn_set", "(OSSL_LIB_CTX *,const char *,OSSL_PROPERTY_LIST **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_property_find_property", "(const OSSL_PROPERTY_LIST *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_property_find_property", "(const OSSL_PROPERTY_LIST *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_property_get_number_value", "(const OSSL_PROPERTY_DEFINITION *)", "", "Argument[*0].Field[*v].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_property_get_string_value", "(OSSL_LIB_CTX *,const OSSL_PROPERTY_DEFINITION *)", "", "Argument[*1].Field[*v].Union[*(unnamed class/struct/union)]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_property_get_type", "(const OSSL_PROPERTY_DEFINITION *)", "", "Argument[*0].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_property_list_to_string", "(OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t)", "", "Argument[*1].Field[*properties].Field[*name_idx]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_property_list_to_string", "(OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_property_list_to_string", "(OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_property_list_to_string", "(OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t)", "", "Argument[3]", "Argument[2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_property_merge", "(const OSSL_PROPERTY_LIST *,const OSSL_PROPERTY_LIST *)", "", "Argument[*0].Field[*properties].Field[*optional]", "ReturnValue[*].Field[*has_optional]", "taint", "dfc-generated"] + - ["", "", True, "ossl_property_merge", "(const OSSL_PROPERTY_LIST *,const OSSL_PROPERTY_LIST *)", "", "Argument[*0].Field[*properties]", "ReturnValue[*].Field[*properties]", "value", "dfc-generated"] + - ["", "", True, "ossl_property_merge", "(const OSSL_PROPERTY_LIST *,const OSSL_PROPERTY_LIST *)", "", "Argument[*1].Field[*properties].Field[*optional]", "ReturnValue[*].Field[*has_optional]", "taint", "dfc-generated"] + - ["", "", True, "ossl_property_merge", "(const OSSL_PROPERTY_LIST *,const OSSL_PROPERTY_LIST *)", "", "Argument[*1].Field[*properties]", "ReturnValue[*].Field[*properties]", "value", "dfc-generated"] + - ["", "", True, "ossl_property_name", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_property_name_str", "(OSSL_LIB_CTX *,OSSL_PROPERTY_IDX)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_property_value", "(OSSL_LIB_CTX *,const char *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_property_value_str", "(OSSL_LIB_CTX *,OSSL_PROPERTY_IDX)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_bio_from_dispatch", "(const OSSL_DISPATCH *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_cache_exported_algorithms", "(const OSSL_ALGORITHM_CAPABLE *,OSSL_ALGORITHM *)", "", "Argument[*0].Field[*alg]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_cipher_cipher", "(const PROV_CIPHER *)", "", "Argument[*0].Field[**cipher]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_cipher_cipher", "(const PROV_CIPHER *)", "", "Argument[*0].Field[*cipher]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_cipher_copy", "(PROV_CIPHER *,const PROV_CIPHER *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_prov_cipher_engine", "(const PROV_CIPHER *)", "", "Argument[*0].Field[**engine]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_cipher_engine", "(const PROV_CIPHER *)", "", "Argument[*0].Field[*engine]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_cipher_load_from_params", "(PROV_CIPHER *,const OSSL_PARAM[],OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_get0_core_bio_method", "(PROV_CTX *)", "", "Argument[*0].Field[**corebiometh]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_get0_core_bio_method", "(PROV_CTX *)", "", "Argument[*0].Field[*corebiometh]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_get0_core_get_params", "(PROV_CTX *)", "", "Argument[*0].Field[*core_get_params]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_get0_handle", "(PROV_CTX *)", "", "Argument[*0].Field[**handle]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_get0_handle", "(PROV_CTX *)", "", "Argument[*0].Field[*handle]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_get0_libctx", "(PROV_CTX *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_get0_libctx", "(PROV_CTX *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_get_bool_param", "(PROV_CTX *,const char *,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_get_param", "(PROV_CTX *,const char *,const char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_get_param", "(PROV_CTX *,const char *,const char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_set0_core_bio_method", "(PROV_CTX *,BIO_METHOD *)", "", "Argument[*1]", "Argument[*0].Field[**corebiometh]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_set0_core_bio_method", "(PROV_CTX *,BIO_METHOD *)", "", "Argument[1]", "Argument[*0].Field[*corebiometh]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_set0_core_get_params", "(PROV_CTX *,OSSL_FUNC_core_get_params_fn *)", "", "Argument[1]", "Argument[*0].Field[*core_get_params]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_set0_handle", "(PROV_CTX *,const OSSL_CORE_HANDLE *)", "", "Argument[*1]", "Argument[*0].Field[**handle]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_set0_handle", "(PROV_CTX *,const OSSL_CORE_HANDLE *)", "", "Argument[1]", "Argument[*0].Field[*handle]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_set0_libctx", "(PROV_CTX *,OSSL_LIB_CTX *)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_ctx_set0_libctx", "(PROV_CTX *,OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_digest_copy", "(PROV_DIGEST *,const PROV_DIGEST *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_prov_digest_engine", "(const PROV_DIGEST *)", "", "Argument[*0].Field[**engine]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_digest_engine", "(const PROV_DIGEST *)", "", "Argument[*0].Field[*engine]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_digest_fetch", "(PROV_DIGEST *,OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_prov_digest_fetch", "(PROV_DIGEST *,OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_prov_digest_load_from_params", "(PROV_DIGEST *,const OSSL_PARAM[],OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_digest_md", "(const PROV_DIGEST *)", "", "Argument[*0].Field[**md]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_digest_md", "(const PROV_DIGEST *)", "", "Argument[*0].Field[*md]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_digest_set_md", "(PROV_DIGEST *,EVP_MD *)", "", "Argument[*1]", "Argument[*0].Field[**alloc_md]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_digest_set_md", "(PROV_DIGEST *,EVP_MD *)", "", "Argument[1]", "Argument[*0].Field[*alloc_md]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_free_key", "(const OSSL_DISPATCH *,void *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_get_keymgmt_export", "(const OSSL_DISPATCH *)", "", "Argument[*0].Field[*function]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_get_keymgmt_export", "(const OSSL_DISPATCH *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_get_keymgmt_free", "(const OSSL_DISPATCH *)", "", "Argument[*0].Field[*function]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_get_keymgmt_free", "(const OSSL_DISPATCH *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_get_keymgmt_import", "(const OSSL_DISPATCH *)", "", "Argument[*0].Field[*function]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_get_keymgmt_import", "(const OSSL_DISPATCH *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_get_keymgmt_new", "(const OSSL_DISPATCH *)", "", "Argument[*0].Field[*function]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_get_keymgmt_new", "(const OSSL_DISPATCH *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_import_key", "(const OSSL_DISPATCH *,void *,int,const OSSL_PARAM[])", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_macctx_load_from_params", "(EVP_MAC_CTX **,const OSSL_PARAM[],const char *,const char *,const char *,OSSL_LIB_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_macctx_load_from_params", "(EVP_MAC_CTX **,const OSSL_PARAM[],const char *,const char *,const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_memdup", "(const void *,size_t,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**0]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_memdup", "(const void *,size_t,unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_memdup", "(const void *,size_t,unsigned char **,size_t *)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_memdup", "(const void *,size_t,unsigned char **,size_t *)", "", "Argument[0]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_memdup", "(const void *,size_t,unsigned char **,size_t *)", "", "Argument[1]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "ossl_prov_memdup", "(const void *,size_t,unsigned char **,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_ml_dsa_new", "(PROV_CTX *,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_prov_ml_kem_new", "(PROV_CTX *,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_prov_seeding_from_dispatch", "(const OSSL_DISPATCH *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_prov_set_macctx", "(EVP_MAC_CTX *,const OSSL_PARAM[],const char *,const char *,const char *,const char *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_provider_add_to_store", "(OSSL_PROVIDER *,OSSL_PROVIDER **,int)", "", "Argument[*0]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "ossl_provider_add_to_store", "(OSSL_PROVIDER *,OSSL_PROVIDER **,int)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_ctx", "(const OSSL_PROVIDER *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_provider_ctx", "(const OSSL_PROVIDER *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "ossl_provider_ctx", "(const OSSL_PROVIDER *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_provider_doall_activated", "(OSSL_LIB_CTX *,..(*)(..),void *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_provider_dso", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[**module]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_dso", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[*module]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_get0_dispatch", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[**dispatch]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_get0_dispatch", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[*dispatch]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_get_parent", "(OSSL_PROVIDER *)", "", "Argument[*0].Field[**handle]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_get_parent", "(OSSL_PROVIDER *)", "", "Argument[*0].Field[*handle]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_info_add_to_store", "(OSSL_LIB_CTX *,OSSL_PROVIDER_INFO *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_provider_init_as_child", "(OSSL_LIB_CTX *,const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_provider_is_child", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[*ischild]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_libctx", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_libctx", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_module_name", "(const OSSL_PROVIDER *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_provider_module_name", "(const OSSL_PROVIDER *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_provider_module_path", "(const OSSL_PROVIDER *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_provider_module_path", "(const OSSL_PROVIDER *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_provider_name", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[**name]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_name", "(const OSSL_PROVIDER *)", "", "Argument[*0].Field[*name]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_new", "(OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_new", "(OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_new", "(OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_new", "(OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int)", "", "Argument[1]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "ossl_provider_new", "(OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int)", "", "Argument[2]", "ReturnValue[*].Field[*init_function]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_set_child", "(OSSL_PROVIDER *,const OSSL_CORE_HANDLE *)", "", "Argument[*1]", "Argument[*0].Field[**handle]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_set_child", "(OSSL_PROVIDER *,const OSSL_CORE_HANDLE *)", "", "Argument[1]", "Argument[*0].Field[*handle]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_set_module_path", "(OSSL_PROVIDER *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**path]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_set_module_path", "(OSSL_PROVIDER *,const char *)", "", "Argument[1]", "Argument[*0].Field[**path]", "taint", "dfc-generated"] + - ["", "", True, "ossl_provider_set_operation_bit", "(OSSL_PROVIDER *,size_t)", "", "Argument[1]", "Argument[*0].Field[**operation_bits]", "taint", "dfc-generated"] + - ["", "", True, "ossl_provider_set_operation_bit", "(OSSL_PROVIDER *,size_t)", "", "Argument[1]", "Argument[*0].Field[*operation_bits_sz]", "taint", "dfc-generated"] + - ["", "", True, "ossl_provider_store_new", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_store_new", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_provider_test_operation_bit", "(OSSL_PROVIDER *,size_t,int *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_punycode_decode", "(const char *,const size_t,unsigned int *,unsigned int *)", "", "Argument[*0]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_punycode_decode", "(const char *,const size_t,unsigned int *,unsigned int *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_punycode_decode", "(const char *,const size_t,unsigned int *,unsigned int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_punycode_decode", "(const char *,const size_t,unsigned int *,unsigned int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_get_passphrase", "(char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *)", "", "Argument[*0]", "Argument[*5].Field[**cached_passphrase]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_get_passphrase", "(char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *)", "", "Argument[*2]", "Argument[*5].Field[*cached_passphrase_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_get_passphrase", "(char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *)", "", "Argument[0]", "Argument[*5].Field[**cached_passphrase]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_get_passphrase", "(char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *)", "", "Argument[1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_get_passphrase", "(char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_get_passphrase", "(char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *)", "", "Argument[2]", "Argument[*5].Field[*cached_passphrase_len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_get_passphrase", "(char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_dec", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[*0]", "Argument[*4].Field[**cached_passphrase]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_dec", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[*2]", "Argument[*4].Field[*cached_passphrase_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_dec", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[0]", "Argument[*4].Field[**cached_passphrase]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_dec", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_dec", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_dec", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[2]", "Argument[*4].Field[*cached_passphrase_len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_dec", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_enc", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[*0]", "Argument[*4].Field[**cached_passphrase]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_enc", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[*2]", "Argument[*4].Field[*cached_passphrase_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_enc", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[0]", "Argument[*4].Field[**cached_passphrase]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_enc", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_enc", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_enc", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[2]", "Argument[*4].Field[*cached_passphrase_len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_passphrase_callback_enc", "(char *,size_t,size_t *,const OSSL_PARAM[],void *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_pem_password", "(char *,int,int,void *)", "", "Argument[*0]", "Argument[*3].Field[**cached_passphrase]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_pem_password", "(char *,int,int,void *)", "", "Argument[0]", "Argument[*3].Field[**cached_passphrase]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_pem_password", "(char *,int,int,void *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_pvk_password", "(char *,int,int,void *)", "", "Argument[*0]", "Argument[*3].Field[**cached_passphrase]", "value", "dfc-generated"] + - ["", "", True, "ossl_pw_pvk_password", "(char *,int,int,void *)", "", "Argument[0]", "Argument[*3].Field[**cached_passphrase]", "taint", "dfc-generated"] + - ["", "", True, "ossl_pw_pvk_password", "(char *,int,int,void *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_qlog_enabled", "(QLOG *,uint32_t)", "", "Argument[*0].Field[*enabled]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_qlog_enabled", "(QLOG *,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_qlog_event_try_begin", "(QLOG *,uint32_t,const char *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**event_cat]", "value", "dfc-generated"] + - ["", "", True, "ossl_qlog_event_try_begin", "(QLOG *,uint32_t,const char *,const char *,const char *)", "", "Argument[*3]", "Argument[*0].Field[**event_name]", "value", "dfc-generated"] + - ["", "", True, "ossl_qlog_event_try_begin", "(QLOG *,uint32_t,const char *,const char *,const char *)", "", "Argument[*4]", "Argument[*0].Field[**event_combined_name]", "value", "dfc-generated"] + - ["", "", True, "ossl_qlog_event_try_begin", "(QLOG *,uint32_t,const char *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[*event_type]", "value", "dfc-generated"] + - ["", "", True, "ossl_qlog_event_try_begin", "(QLOG *,uint32_t,const char *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[*event_cat]", "value", "dfc-generated"] + - ["", "", True, "ossl_qlog_event_try_begin", "(QLOG *,uint32_t,const char *,const char *,const char *)", "", "Argument[3]", "Argument[*0].Field[*event_name]", "value", "dfc-generated"] + - ["", "", True, "ossl_qlog_event_try_begin", "(QLOG *,uint32_t,const char *,const char *,const char *)", "", "Argument[4]", "Argument[*0].Field[*event_combined_name]", "value", "dfc-generated"] + - ["", "", True, "ossl_qlog_new", "(const QLOG_TRACE_INFO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_qlog_new_from_env", "(const QLOG_TRACE_INFO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_qlog_override_time", "(QLOG *,OSSL_TIME)", "", "Argument[1]", "Argument[*0].Field[*event_time]", "value", "dfc-generated"] + - ["", "", True, "ossl_qlog_set_event_type_enabled", "(QLOG *,uint32_t,int)", "", "Argument[1]", "Argument[*0].Field[*enabled]", "taint", "dfc-generated"] + - ["", "", True, "ossl_qlog_set_sink_bio", "(QLOG *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_qlog_set_sink_bio", "(QLOG *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrl_enc_level_set_get", "(OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int)", "", "Argument[*0].Field[*el]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrl_enc_level_set_get", "(OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_qrl_enc_level_set_get", "(OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_qrx_get_bytes_received", "(OSSL_QRX *,int)", "", "Argument[*0].Field[*bytes_received]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_get_cur_forged_pkt_count", "(OSSL_QRX *)", "", "Argument[*0].Field[*forged_pkt_count]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_get_short_hdr_conn_id_len", "(OSSL_QRX *)", "", "Argument[*0].Field[*short_conn_id_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_inject_pkt", "(OSSL_QRX *,OSSL_QRX_PKT *)", "", "Argument[1]", "Argument[*0].Field[*rx_pending].Field[*alpha]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_inject_pkt", "(OSSL_QRX *,OSSL_QRX_PKT *)", "", "Argument[1]", "Argument[*0].Field[*rx_pending].Field[*omega]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_inject_urxe", "(OSSL_QRX *,QUIC_URXE *)", "", "Argument[*1]", "Argument[*0].Field[*urx_pending].Field[**alpha]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_inject_urxe", "(OSSL_QRX *,QUIC_URXE *)", "", "Argument[*1]", "Argument[*0].Field[*urx_pending].Field[**omega]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_inject_urxe", "(OSSL_QRX *,QUIC_URXE *)", "", "Argument[1]", "Argument[*0].Field[*urx_pending].Field[*alpha]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_inject_urxe", "(OSSL_QRX *,QUIC_URXE *)", "", "Argument[1]", "Argument[*0].Field[*urx_pending].Field[*omega]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_new", "(const OSSL_QRX_ARGS *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_qrx_read_pkt", "(OSSL_QRX *,OSSL_QRX_PKT **)", "", "Argument[0]", "Argument[**1].Field[*qrx]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_key_update_cb", "(OSSL_QRX *,ossl_qrx_key_update_cb *,void *)", "", "Argument[**2]", "Argument[*0].Field[***key_update_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_key_update_cb", "(OSSL_QRX *,ossl_qrx_key_update_cb *,void *)", "", "Argument[*2]", "Argument[*0].Field[**key_update_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_key_update_cb", "(OSSL_QRX *,ossl_qrx_key_update_cb *,void *)", "", "Argument[1]", "Argument[*0].Field[*key_update_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_key_update_cb", "(OSSL_QRX *,ossl_qrx_key_update_cb *,void *)", "", "Argument[2]", "Argument[*0].Field[*key_update_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_late_validation_cb", "(OSSL_QRX *,ossl_qrx_late_validation_cb *,void *)", "", "Argument[**2]", "Argument[*0].Field[***validation_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_late_validation_cb", "(OSSL_QRX *,ossl_qrx_late_validation_cb *,void *)", "", "Argument[*2]", "Argument[*0].Field[**validation_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_late_validation_cb", "(OSSL_QRX *,ossl_qrx_late_validation_cb *,void *)", "", "Argument[1]", "Argument[*0].Field[*validation_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_late_validation_cb", "(OSSL_QRX *,ossl_qrx_late_validation_cb *,void *)", "", "Argument[2]", "Argument[*0].Field[*validation_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_msg_callback", "(OSSL_QRX *,ossl_msg_cb,SSL *)", "", "Argument[*2]", "Argument[*0].Field[**msg_callback_ssl]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_msg_callback", "(OSSL_QRX *,ossl_msg_cb,SSL *)", "", "Argument[1]", "Argument[*0].Field[*msg_callback]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_msg_callback", "(OSSL_QRX *,ossl_msg_cb,SSL *)", "", "Argument[2]", "Argument[*0].Field[*msg_callback_ssl]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_msg_callback_arg", "(OSSL_QRX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_msg_callback_arg", "(OSSL_QRX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qrx_set_msg_callback_arg", "(OSSL_QRX *,void *)", "", "Argument[1]", "Argument[*0].Field[*msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_calculate_ciphertext_payload_len", "(OSSL_QTX *,uint32_t,size_t,size_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_qtx_calculate_plaintext_payload_len", "(OSSL_QTX *,uint32_t,size_t,size_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_qtx_get_cur_dgram_len_bytes", "(OSSL_QTX *)", "", "Argument[*0].Field[**cons].Field[*data_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_get_cur_epoch_pkt_count", "(OSSL_QTX *,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_qtx_get_mdpl", "(OSSL_QTX *)", "", "Argument[*0].Field[*mdpl]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_get_queue_len_bytes", "(OSSL_QTX *)", "", "Argument[*0].Field[*pending_bytes]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_get_queue_len_datagrams", "(OSSL_QTX *)", "", "Argument[*0].Field[*pending_count]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_get_unflushed_pkt_count", "(OSSL_QTX *)", "", "Argument[*0].Field[*cons_count]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_is_enc_level_provisioned", "(OSSL_QTX *,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_qtx_new", "(const OSSL_QTX_ARGS *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_qtx_pop_net", "(OSSL_QTX *,BIO_MSG *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_qtx_set_bio", "(OSSL_QTX *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_bio", "(OSSL_QTX *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_mdpl", "(OSSL_QTX *,size_t)", "", "Argument[1]", "Argument[*0].Field[*mdpl]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_msg_callback", "(OSSL_QTX *,ossl_msg_cb,SSL *)", "", "Argument[*2]", "Argument[*0].Field[**msg_callback_ssl]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_msg_callback", "(OSSL_QTX *,ossl_msg_cb,SSL *)", "", "Argument[1]", "Argument[*0].Field[*msg_callback]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_msg_callback", "(OSSL_QTX *,ossl_msg_cb,SSL *)", "", "Argument[2]", "Argument[*0].Field[*msg_callback_ssl]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_msg_callback_arg", "(OSSL_QTX *,void *)", "", "Argument[**1]", "Argument[*0].Field[***msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_msg_callback_arg", "(OSSL_QTX *,void *)", "", "Argument[*1]", "Argument[*0].Field[**msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_msg_callback_arg", "(OSSL_QTX *,void *)", "", "Argument[1]", "Argument[*0].Field[*msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_mutator", "(OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)", "", "Argument[**3]", "Argument[*0].Field[***mutatearg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_mutator", "(OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)", "", "Argument[*3]", "Argument[*0].Field[**mutatearg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_mutator", "(OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*mutatecb]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_mutator", "(OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*finishmutatecb]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_mutator", "(OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)", "", "Argument[3]", "Argument[*0].Field[*mutatearg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_qlog_cb", "(OSSL_QTX *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_qlog_cb", "(OSSL_QTX *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_qlog_cb", "(OSSL_QTX *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*get_qlog_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_qtx_set_qlog_cb", "(OSSL_QTX *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_bind_channel", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[*1].Union[*bio_addr_st]", "Argument[*0].Field[*cur_peer_addr].Union[*bio_addr_st]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_bind_channel", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[*2]", "Argument[*0].Field[*cur_remote_dcid]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_bind_channel", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[*3]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "ossl_quic_bind_channel", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[*4]", "Argument[*0].Field[*odcid]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_bind_channel", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[0]", "Argument[*0].Field[**qtx].Field[*get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_bind_channel", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*0].Field[*cur_peer_addr].Union[*bio_addr_st]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_bind_channel", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[2]", "Argument[*0].Field[*cur_remote_dcid]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_bind_channel", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_bind_channel", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[4]", "Argument[*0].Field[*odcid]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_bind_channel", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_calculate_retry_integrity_tag", "(OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *,unsigned char *)", "", "Argument[*3].Field[*id]", "Argument[*3].Field[**id]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_calculate_retry_integrity_tag", "(OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *,unsigned char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_item_get_encoded", "(const QUIC_CFQ_ITEM *)", "", "Argument[*0].Field[**encoded]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_item_get_encoded", "(const QUIC_CFQ_ITEM *)", "", "Argument[*0].Field[*encoded]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_item_get_encoded_len", "(const QUIC_CFQ_ITEM *)", "", "Argument[*0].Field[*encoded_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_item_get_frame_type", "(const QUIC_CFQ_ITEM *)", "", "Argument[*0].Field[*frame_type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_item_get_pn_space", "(const QUIC_CFQ_ITEM *)", "", "Argument[*0].Field[*pn_space]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_item_get_priority_next", "(const QUIC_CFQ_ITEM *,uint32_t)", "", "Argument[*0].Field[**next].Field[*public]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_item_get_state", "(const QUIC_CFQ_ITEM *)", "", "Argument[*0].Field[*state]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_item_is_unreliable", "(const QUIC_CFQ_ITEM *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_mark_lost", "(QUIC_CFQ *,QUIC_CFQ_ITEM *,uint32_t)", "", "Argument[2]", "Argument[*1].Field[*priority]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_mark_tx", "(QUIC_CFQ *,QUIC_CFQ_ITEM *)", "", "Argument[1]", "Argument[*0].Field[*tx_list].Field[*head]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_mark_tx", "(QUIC_CFQ *,QUIC_CFQ_ITEM *)", "", "Argument[1]", "Argument[*0].Field[*tx_list].Field[*tail]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_mark_tx", "(QUIC_CFQ *,QUIC_CFQ_ITEM *)", "", "Argument[1]", "Argument[*1].Field[**prev].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_release", "(QUIC_CFQ *,QUIC_CFQ_ITEM *)", "", "Argument[1]", "Argument[*0].Field[*free_list].Field[*head]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_release", "(QUIC_CFQ *,QUIC_CFQ_ITEM *)", "", "Argument[1]", "Argument[*0].Field[*free_list].Field[*tail]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_cfq_release", "(QUIC_CFQ *,QUIC_CFQ_ITEM *)", "", "Argument[1]", "Argument[*1].Field[**prev].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_alloc", "(const QUIC_CHANNEL_ARGS *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_bind_qrx", "(QUIC_CHANNEL *,OSSL_QRX *)", "", "Argument[*1]", "Argument[*0].Field[**qrx]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_bind_qrx", "(QUIC_CHANNEL *,OSSL_QRX *)", "", "Argument[0]", "Argument[*0].Field[**qrx].Field[*key_update_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_bind_qrx", "(QUIC_CHANNEL *,OSSL_QRX *)", "", "Argument[0]", "Argument[*0].Field[**qrx].Field[*validation_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_bind_qrx", "(QUIC_CHANNEL *,OSSL_QRX *)", "", "Argument[1]", "Argument[*0].Field[*qrx]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get0_demux", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[**port].Field[**demux]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get0_demux", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[**port].Field[*demux]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get0_engine", "(QUIC_CHANNEL *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_get0_engine", "(QUIC_CHANNEL *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_get0_port", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[**port]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get0_port", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[*port]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get0_ssl", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[**tls]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get0_ssl", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[*tls]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get0_tls", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[**tls]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get0_tls", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[*tls]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get_diag_local_cid", "(QUIC_CHANNEL *,QUIC_CONN_ID *)", "", "Argument[*0].Field[*cur_local_cid]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get_diag_num_rx_ack", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[*diag_num_rx_ack]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get_local_stream_count_avail", "(const QUIC_CHANNEL *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_get_max_idle_timeout_actual", "(const QUIC_CHANNEL *)", "", "Argument[*0].Field[*max_idle_timeout]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get_max_idle_timeout_peer_request", "(const QUIC_CHANNEL *)", "", "Argument[*0].Field[*max_idle_timeout_remote_req]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get_max_idle_timeout_request", "(const QUIC_CHANNEL *)", "", "Argument[*0].Field[*max_idle_timeout_local_req]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get_peer_addr", "(QUIC_CHANNEL *,BIO_ADDR *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_get_qsm", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[*qsm]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get_remote_stream_count_avail", "(const QUIC_CHANNEL *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_get_short_header_conn_id_len", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[**port].Field[*rx_short_dcid_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get_statm", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[*statm]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_get_terminate_cause", "(const QUIC_CHANNEL *)", "", "Argument[*0].Field[*terminate_cause]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_have_generated_transport_params", "(const QUIC_CHANNEL *)", "", "Argument[*0].Field[*got_local_transport_params]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_init", "(QUIC_CHANNEL *)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_is_handshake_complete", "(const QUIC_CHANNEL *)", "", "Argument[*0].Field[*handshake_complete]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_is_handshake_confirmed", "(const QUIC_CHANNEL *)", "", "Argument[*0].Field[*handshake_confirmed]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_net_error", "(QUIC_CHANNEL *)", "", "Argument[*0].Field[*net_error]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_new_stream_local", "(QUIC_CHANNEL *,int)", "", "Argument[0]", "ReturnValue[*].Field[*rxfc].Field[*now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_new_stream_remote", "(QUIC_CHANNEL *,uint64_t)", "", "Argument[0]", "ReturnValue[*].Field[*rxfc].Field[*now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_new_stream_remote", "(QUIC_CHANNEL *,uint64_t)", "", "Argument[1]", "ReturnValue[*].Field[*id]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_new_stream_remote", "(QUIC_CHANNEL *,uint64_t)", "", "Argument[1]", "ReturnValue[*].Field[*type]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_on_new_conn", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[*1].Union[*bio_addr_st]", "Argument[*0].Field[*cur_peer_addr].Union[*bio_addr_st]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_on_new_conn", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[*2]", "Argument[*0].Field[*cur_remote_dcid]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_on_new_conn", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[*3]", "Argument[*0].Field[*init_dcid]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_on_new_conn", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[0]", "Argument[*0].Field[**qtx].Field[*get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_on_new_conn", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*0].Field[*cur_peer_addr].Union[*bio_addr_st]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_on_new_conn", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[2]", "Argument[*0].Field[*cur_remote_dcid]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_on_new_conn", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_on_new_conn", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[3]", "Argument[*0].Field[*init_dcid]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_on_new_conn", "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_on_new_conn_id", "(QUIC_CHANNEL *,OSSL_QUIC_FRAME_NEW_CONN_ID *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_reject_stream", "(QUIC_CHANNEL *,QUIC_STREAM *)", "", "Argument[1]", "Argument[*0].Field[*qsm].Field[*rr_cur]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_replace_local_cid", "(QUIC_CHANNEL *,const QUIC_CONN_ID *)", "", "Argument[*1]", "Argument[*0].Field[*cur_local_cid]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_replace_local_cid", "(QUIC_CHANNEL *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*0].Field[*cur_local_cid]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_replace_local_cid", "(QUIC_CHANNEL *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_incoming_stream_auto_reject", "(QUIC_CHANNEL *,int,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*incoming_stream_auto_reject]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_incoming_stream_auto_reject", "(QUIC_CHANNEL *,int,uint64_t)", "", "Argument[2]", "Argument[*0].Field[*incoming_stream_auto_reject_aec]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_max_idle_timeout_request", "(QUIC_CHANNEL *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*max_idle_timeout_local_req]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_msg_callback", "(QUIC_CHANNEL *,ossl_msg_cb,SSL *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_set_msg_callback", "(QUIC_CHANNEL *,ossl_msg_cb,SSL *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_set_msg_callback", "(QUIC_CHANNEL *,ossl_msg_cb,SSL *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_set_msg_callback_arg", "(QUIC_CHANNEL *,void *)", "", "Argument[**1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_set_msg_callback_arg", "(QUIC_CHANNEL *,void *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_set_msg_callback_arg", "(QUIC_CHANNEL *,void *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_channel_set_mutator", "(QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)", "", "Argument[**3]", "Argument[*0].Field[**qtx].Field[***mutatearg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_mutator", "(QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)", "", "Argument[*3]", "Argument[*0].Field[**qtx].Field[**mutatearg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_mutator", "(QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)", "", "Argument[1]", "Argument[*0].Field[**qtx].Field[*mutatecb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_mutator", "(QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)", "", "Argument[2]", "Argument[*0].Field[**qtx].Field[*finishmutatecb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_mutator", "(QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)", "", "Argument[3]", "Argument[*0].Field[**qtx].Field[*mutatearg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_peer_addr", "(QUIC_CHANNEL *,const BIO_ADDR *)", "", "Argument[*1].Union[*bio_addr_st]", "Argument[*0].Field[*cur_peer_addr].Union[*bio_addr_st]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_peer_addr", "(QUIC_CHANNEL *,const BIO_ADDR *)", "", "Argument[1]", "Argument[*0].Field[*cur_peer_addr].Union[*bio_addr_st]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_set_txku_threshold_override", "(QUIC_CHANNEL *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*txku_threshold_override]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_channel_subtick", "(QUIC_CHANNEL *,QUIC_TICK_RESULT *,uint32_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_clear_options", "(SSL *,uint64_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_ctrl", "(SSL *,int,long,void *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_ctx_callback_ctrl", "(SSL_CTX *,int,..(*)(..))", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[**3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "ossl_quic_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "ossl_quic_demux_has_pending", "(const QUIC_DEMUX *)", "", "Argument[*0].Field[*urx_pending].Field[*alpha]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_inject", "(QUIC_DEMUX *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_inject", "(QUIC_DEMUX *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_new", "(BIO *,size_t,..(*)(..),void *)", "", "Argument[**3]", "ReturnValue[*].Field[***now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_new", "(BIO *,size_t,..(*)(..),void *)", "", "Argument[*0]", "ReturnValue[*].Field[**net_bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_new", "(BIO *,size_t,..(*)(..),void *)", "", "Argument[*3]", "ReturnValue[*].Field[**now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_new", "(BIO *,size_t,..(*)(..),void *)", "", "Argument[0]", "ReturnValue[*].Field[*net_bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_new", "(BIO *,size_t,..(*)(..),void *)", "", "Argument[1]", "ReturnValue[*].Field[*short_conn_id_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_new", "(BIO *,size_t,..(*)(..),void *)", "", "Argument[2]", "ReturnValue[*].Field[*now]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_new", "(BIO *,size_t,..(*)(..),void *)", "", "Argument[3]", "ReturnValue[*].Field[*now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_reinject_urxe", "(QUIC_DEMUX *,QUIC_URXE *)", "", "Argument[*1]", "Argument[*0].Field[*urx_pending].Field[**alpha]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_reinject_urxe", "(QUIC_DEMUX *,QUIC_URXE *)", "", "Argument[*1]", "Argument[*0].Field[*urx_pending].Field[**omega]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_reinject_urxe", "(QUIC_DEMUX *,QUIC_URXE *)", "", "Argument[1]", "Argument[*0].Field[*urx_pending].Field[*alpha]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_reinject_urxe", "(QUIC_DEMUX *,QUIC_URXE *)", "", "Argument[1]", "Argument[*0].Field[*urx_pending].Field[*omega]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_release_urxe", "(QUIC_DEMUX *,QUIC_URXE *)", "", "Argument[*1]", "Argument[*0].Field[*urx_free].Field[**alpha]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_release_urxe", "(QUIC_DEMUX *,QUIC_URXE *)", "", "Argument[*1]", "Argument[*0].Field[*urx_free].Field[**omega]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_release_urxe", "(QUIC_DEMUX *,QUIC_URXE *)", "", "Argument[1]", "Argument[*0].Field[*urx_free].Field[*alpha]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_release_urxe", "(QUIC_DEMUX *,QUIC_URXE *)", "", "Argument[1]", "Argument[*0].Field[*urx_free].Field[*omega]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_set_bio", "(QUIC_DEMUX *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**net_bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_set_bio", "(QUIC_DEMUX *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*net_bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_set_default_handler", "(QUIC_DEMUX *,ossl_quic_demux_cb_fn *,void *)", "", "Argument[**2]", "Argument[*0].Field[***default_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_set_default_handler", "(QUIC_DEMUX *,ossl_quic_demux_cb_fn *,void *)", "", "Argument[*2]", "Argument[*0].Field[**default_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_set_default_handler", "(QUIC_DEMUX *,ossl_quic_demux_cb_fn *,void *)", "", "Argument[1]", "Argument[*0].Field[*default_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_set_default_handler", "(QUIC_DEMUX *,ossl_quic_demux_cb_fn *,void *)", "", "Argument[2]", "Argument[*0].Field[*default_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_demux_set_mtu", "(QUIC_DEMUX *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*mtu]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_create_port", "(QUIC_ENGINE *,const QUIC_PORT_ARGS *)", "", "Argument[0]", "ReturnValue[*].Field[*engine]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_create_port", "(QUIC_ENGINE *,const QUIC_PORT_ARGS *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_get0_libctx", "(QUIC_ENGINE *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_get0_libctx", "(QUIC_ENGINE *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_get0_mutex", "(QUIC_ENGINE *)", "", "Argument[*0].Field[**mutex]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_get0_mutex", "(QUIC_ENGINE *)", "", "Argument[*0].Field[*mutex]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_get0_propq", "(QUIC_ENGINE *)", "", "Argument[*0].Field[**propq]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_get0_propq", "(QUIC_ENGINE *)", "", "Argument[*0].Field[*propq]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_get0_reactor", "(QUIC_ENGINE *)", "", "Argument[*0].Field[*rtor]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_make_real_time", "(QUIC_ENGINE *,OSSL_TIME)", "", "Argument[1].Field[*t]", "ReturnValue.Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_make_real_time", "(QUIC_ENGINE *,OSSL_TIME)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_new", "(const QUIC_ENGINE_ARGS *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_engine_set_inhibit_tick", "(QUIC_ENGINE *,int)", "", "Argument[1]", "Argument[*0].Field[*inhibit_tick]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_set_time_cb", "(QUIC_ENGINE *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***now_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_set_time_cb", "(QUIC_ENGINE *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**now_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_set_time_cb", "(QUIC_ENGINE *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*now_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_engine_set_time_cb", "(QUIC_ENGINE *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*now_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[**11]", "Argument[*0].Field[***sstream_updated_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[**13]", "Argument[*0].Field[***get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[**5]", "Argument[*0].Field[***get_sstream_by_id_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[**7]", "Argument[*0].Field[***regen_frame_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[**9]", "Argument[*0].Field[***confirm_frame_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[*11]", "Argument[*0].Field[**sstream_updated_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[*13]", "Argument[*0].Field[**get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[*1]", "Argument[*0].Field[**cfq]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**ackm]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[*3]", "Argument[*0].Field[**txpim]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[*5]", "Argument[*0].Field[**get_sstream_by_id_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[*7]", "Argument[*0].Field[**regen_frame_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[*9]", "Argument[*0].Field[**confirm_frame_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[10]", "Argument[*0].Field[*sstream_updated]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[11]", "Argument[*0].Field[*sstream_updated_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[12]", "Argument[*0].Field[*get_qlog_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[13]", "Argument[*0].Field[*get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*cfq]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*ackm]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[3]", "Argument[*0].Field[*txpim]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[4]", "Argument[*0].Field[*get_sstream_by_id]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[5]", "Argument[*0].Field[*get_sstream_by_id_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[6]", "Argument[*0].Field[*regen_frame]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[7]", "Argument[*0].Field[*regen_frame_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[8]", "Argument[*0].Field[*confirm_frame]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_init", "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)", "", "Argument[9]", "Argument[*0].Field[*confirm_frame_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_pkt_commit", "(QUIC_FIFD *,QUIC_TXPIM_PKT *)", "", "Argument[0]", "Argument[*1].Field[*fifd]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_pkt_commit", "(QUIC_FIFD *,QUIC_TXPIM_PKT *)", "", "Argument[1]", "Argument[*1].Field[*ackm_pkt].Field[*cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_set_qlog_cb", "(QUIC_FIFD *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_set_qlog_cb", "(QUIC_FIFD *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_set_qlog_cb", "(QUIC_FIFD *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*get_qlog_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_fifd_set_qlog_cb", "(QUIC_FIFD *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_gen_rand_conn_id", "(OSSL_LIB_CTX *,size_t,QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*2].Field[*id]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_gen_rand_conn_id", "(OSSL_LIB_CTX *,size_t,QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*2].Field[*id_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_handle_frames", "(QUIC_CHANNEL *,OSSL_QRX_PKT *)", "", "Argument[*1].Field[*datagram_len]", "Argument[*0].Field[**txp].Field[*unvalidated_credit]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_hdr_protector_decrypt", "(QUIC_HDR_PROTECTOR *,QUIC_PKT_HDR_PTRS *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_hdr_protector_decrypt", "(QUIC_HDR_PROTECTOR *,QUIC_PKT_HDR_PTRS *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_hdr_protector_decrypt_fields", "(QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_hdr_protector_decrypt_fields", "(QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_hdr_protector_encrypt", "(QUIC_HDR_PROTECTOR *,QUIC_PKT_HDR_PTRS *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_hdr_protector_encrypt", "(QUIC_HDR_PROTECTOR *,QUIC_PKT_HDR_PTRS *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_hdr_protector_encrypt_fields", "(QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_hdr_protector_encrypt_fields", "(QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_hdr_protector_init", "(QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_hdr_protector_init", "(QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t)", "", "Argument[*2]", "Argument[*0].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_hdr_protector_init", "(QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_hdr_protector_init", "(QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_hdr_protector_init", "(QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[*cipher_id]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_bind_channel", "(QUIC_LCIDM *,void *,const QUIC_CONN_ID *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_debug_add", "(QUIC_LCIDM *,void *,const QUIC_CONN_ID *,uint64_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_debug_remove", "(QUIC_LCIDM *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_enrol_odcid", "(QUIC_LCIDM *,void *,const QUIC_CONN_ID *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_generate", "(QUIC_LCIDM *,void *,OSSL_QUIC_FRAME_NEW_CONN_ID *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_lcidm_generate_initial", "(QUIC_LCIDM *,void *,QUIC_CONN_ID *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_get_lcid_len", "(const QUIC_LCIDM *)", "", "Argument[*0].Field[*lcid_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_get_unused_cid", "(QUIC_LCIDM *,QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_lookup", "(QUIC_LCIDM *,const QUIC_CONN_ID *,uint64_t *,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_new", "(OSSL_LIB_CTX *,size_t)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_new", "(OSSL_LIB_CTX *,size_t)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_lcidm_new", "(OSSL_LIB_CTX *,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*lcid_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_new", "(SSL_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_new_domain", "(SSL_CTX *,uint64_t)", "", "Argument[0]", "ReturnValue[*].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_new_listener", "(SSL_CTX *,uint64_t)", "", "Argument[0]", "ReturnValue[*].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_new_listener_from", "(SSL *,uint64_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_obj_desires_blocking", "(const QUIC_OBJ *)", "", "Argument[*0].Field[**parent_obj].Field[**parent_obj]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_obj_desires_blocking", "(const QUIC_OBJ *)", "", "Argument[*0].Field[**parent_obj]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_obj_get0_handshake_layer", "(QUIC_OBJ *)", "", "Argument[*0].Field[**tls]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_obj_get0_handshake_layer", "(QUIC_OBJ *)", "", "Argument[*0].Field[*tls]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_obj_init", "(QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *)", "", "Argument[0]", "Argument[*0].Field[**cached_port_leader].Field[*cached_event_leader]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_obj_init", "(QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *)", "", "Argument[0]", "Argument[*0].Field[*cached_event_leader]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_obj_init", "(QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *)", "", "Argument[0]", "Argument[*0].Field[*cached_port_leader]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_obj_init", "(QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *)", "", "Argument[1]", "Argument[*0].Field[*ssl].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_obj_init", "(QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *)", "", "Argument[2]", "Argument[*0].Field[*ssl].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_obj_set_blocking_mode", "(QUIC_OBJ *,unsigned int)", "", "Argument[1]", "Argument[*0].Field[*req_blocking_mode]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_peek", "(SSL *,void *,size_t,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_peek", "(SSL *,void *,size_t,size_t *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_peek", "(SSL *,void *,size_t,size_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_peek", "(SSL *,void *,size_t,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_port_create_incoming", "(QUIC_PORT *,SSL *)", "", "Argument[0]", "Argument[*0].Field[**tserver_ch].Field[*port]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_create_incoming", "(QUIC_PORT *,SSL *)", "", "Argument[0]", "ReturnValue[*].Field[*port]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_create_incoming", "(QUIC_PORT *,SSL *)", "", "Argument[1]", "Argument[*0].Field[**tserver_ch].Field[*tls]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_create_incoming", "(QUIC_PORT *,SSL *)", "", "Argument[1]", "ReturnValue[*].Field[*tls]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_create_outgoing", "(QUIC_PORT *,SSL *)", "", "Argument[0]", "ReturnValue[*].Field[*port]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_create_outgoing", "(QUIC_PORT *,SSL *)", "", "Argument[1]", "ReturnValue[*].Field[*tls]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get0_demux", "(QUIC_PORT *)", "", "Argument[*0].Field[**demux]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get0_demux", "(QUIC_PORT *)", "", "Argument[*0].Field[*demux]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get0_engine", "(QUIC_PORT *)", "", "Argument[*0].Field[**engine]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get0_engine", "(QUIC_PORT *)", "", "Argument[*0].Field[*engine]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get0_mutex", "(QUIC_PORT *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_port_get0_mutex", "(QUIC_PORT *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_port_get0_reactor", "(QUIC_PORT *)", "", "Argument[*0].Field[**engine].Field[*rtor]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get_channel_ctx", "(QUIC_PORT *)", "", "Argument[*0].Field[**channel_ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get_channel_ctx", "(QUIC_PORT *)", "", "Argument[*0].Field[*channel_ctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get_net_rbio", "(QUIC_PORT *)", "", "Argument[*0].Field[**net_rbio]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get_net_rbio", "(QUIC_PORT *)", "", "Argument[*0].Field[*net_rbio]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get_net_wbio", "(QUIC_PORT *)", "", "Argument[*0].Field[**net_wbio]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get_net_wbio", "(QUIC_PORT *)", "", "Argument[*0].Field[*net_wbio]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get_num_incoming_channels", "(const QUIC_PORT *)", "", "Argument[*0].Field[*incoming_channel_list].Field[*num_elems]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get_rx_short_dcid_len", "(const QUIC_PORT *)", "", "Argument[*0].Field[*rx_short_dcid_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_get_tx_init_dcid_len", "(const QUIC_PORT *)", "", "Argument[*0].Field[*tx_init_dcid_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_have_incoming", "(QUIC_PORT *)", "", "Argument[*0].Field[*incoming_channel_list].Field[*alpha]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_port_is_addressed_r", "(const QUIC_PORT *)", "", "Argument[*0].Field[*addressed_mode_r]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_is_addressed_w", "(const QUIC_PORT *)", "", "Argument[*0].Field[*addressed_mode_w]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_new", "(const QUIC_PORT_ARGS *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_port_pop_incoming", "(QUIC_PORT *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_port_pop_incoming", "(QUIC_PORT *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_port_set_allow_incoming", "(QUIC_PORT *,int)", "", "Argument[1]", "Argument[*0].Field[*allow_incoming]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_set_net_rbio", "(QUIC_PORT *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**demux].Field[**net_bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_set_net_rbio", "(QUIC_PORT *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**net_rbio]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_set_net_rbio", "(QUIC_PORT *,BIO *)", "", "Argument[1]", "Argument[*0].Field[**demux].Field[*net_bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_set_net_rbio", "(QUIC_PORT *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*net_rbio]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_set_net_wbio", "(QUIC_PORT *,BIO *)", "", "Argument[*1]", "Argument[*0].Field[**net_wbio]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_port_set_net_wbio", "(QUIC_PORT *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*net_wbio]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_add_from_initial", "(QUIC_RCIDM *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_add_from_ncid", "(QUIC_RCIDM *,const OSSL_QUIC_FRAME_NEW_CONN_ID *)", "", "Argument[*1].Field[*retire_prior_to]", "Argument[*0].Field[*retire_prior_to]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_add_from_server_retry", "(QUIC_RCIDM *,const QUIC_CONN_ID *)", "", "Argument[*1]", "Argument[*0].Field[*retry_odcid]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_add_from_server_retry", "(QUIC_RCIDM *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*0].Field[*retry_odcid]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_add_from_server_retry", "(QUIC_RCIDM *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_get_num_active", "(const QUIC_RCIDM *)", "", "Argument[*0].Field[**rcids].Field[*htop]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_get_num_active", "(const QUIC_RCIDM *)", "", "Argument[*0].Field[*num_retiring]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_get_num_retiring", "(const QUIC_RCIDM *)", "", "Argument[*0].Field[*num_retiring]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_get_preferred_tx_dcid", "(QUIC_RCIDM *,QUIC_CONN_ID *)", "", "Argument[*0].Field[*preferred_rcid]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_get_preferred_tx_dcid_changed", "(QUIC_RCIDM *,int)", "", "Argument[*0].Field[*preferred_rcid_changed]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_new", "(const QUIC_CONN_ID *)", "", "Argument[*0]", "ReturnValue[*].Field[*initial_odcid]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_new", "(const QUIC_CONN_ID *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_new", "(const QUIC_CONN_ID *)", "", "Argument[0]", "ReturnValue[*].Field[*initial_odcid]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rcidm_on_packet_sent", "(QUIC_RCIDM *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*packets_sent]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_can_poll_r", "(const QUIC_REACTOR *)", "", "Argument[*0].Field[*can_poll_r]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_can_poll_w", "(const QUIC_REACTOR *)", "", "Argument[*0].Field[*can_poll_w]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_get0_notifier", "(QUIC_REACTOR *)", "", "Argument[*0].Field[*notifier]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_get_poll_r", "(const QUIC_REACTOR *)", "", "Argument[*0].Field[*poll_r]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_get_poll_w", "(const QUIC_REACTOR *)", "", "Argument[*0].Field[*poll_w]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_get_tick_deadline", "(QUIC_REACTOR *)", "", "Argument[*0].Field[*tick_deadline]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_init", "(QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t)", "", "Argument[**2]", "Argument[*0].Field[***tick_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_init", "(QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t)", "", "Argument[*0].Field[*notifier].Field[*wfd]", "Argument[*0].Field[*notifier].Field[*rfd]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_init", "(QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t)", "", "Argument[*2]", "Argument[*0].Field[**tick_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_init", "(QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t)", "", "Argument[*3]", "Argument[*0].Field[**mutex]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_init", "(QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*tick_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_init", "(QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t)", "", "Argument[2]", "Argument[*0].Field[*tick_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_init", "(QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t)", "", "Argument[3]", "Argument[*0].Field[*mutex]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_init", "(QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t)", "", "Argument[4]", "Argument[*0].Field[*tick_deadline]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_net_read_desired", "(QUIC_REACTOR *)", "", "Argument[*0].Field[*net_read_desired]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_net_write_desired", "(QUIC_REACTOR *)", "", "Argument[*0].Field[*net_write_desired]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_set_poll_r", "(QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *)", "", "Argument[*1]", "Argument[*0].Field[*poll_r]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_set_poll_r", "(QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *)", "", "Argument[1]", "Argument[*0].Field[*poll_r]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_set_poll_r", "(QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_set_poll_w", "(QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *)", "", "Argument[*1]", "Argument[*0].Field[*poll_w]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_set_poll_w", "(QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *)", "", "Argument[1]", "Argument[*0].Field[*poll_w]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_reactor_set_poll_w", "(QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_read", "(SSL *,void *,size_t,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_read", "(SSL *,void *,size_t,size_t *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_read", "(SSL *,void *,size_t,size_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_read", "(SSL *,void *,size_t,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_available", "(QUIC_RSTREAM *,size_t *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_rstream_available", "(QUIC_RSTREAM *,size_t *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_rstream_get_record", "(QUIC_RSTREAM *,const unsigned char **,size_t *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_new", "(QUIC_RXFC *,OSSL_STATM *,size_t)", "", "Argument[*0]", "ReturnValue[*].Field[**rxfc]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_new", "(QUIC_RXFC *,OSSL_STATM *,size_t)", "", "Argument[*1]", "ReturnValue[*].Field[**statm]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_new", "(QUIC_RXFC *,OSSL_STATM *,size_t)", "", "Argument[0]", "ReturnValue[*].Field[*rxfc]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_new", "(QUIC_RXFC *,OSSL_STATM *,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*statm]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_new", "(QUIC_RXFC *,OSSL_STATM *,size_t)", "", "Argument[2]", "ReturnValue[*].Field[*rbuf].Field[*alloc]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_new", "(QUIC_RXFC *,OSSL_STATM *,size_t)", "", "Argument[2]", "ReturnValue[*].Field[*rbuf].Field[*head_offset]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_peek", "(QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_peek", "(QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_peek", "(QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_read", "(QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_release_record", "(QUIC_RSTREAM *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_rstream_resize_rbuf", "(QUIC_RSTREAM *,size_t)", "", "Argument[1]", "Argument[*0].Field[*rbuf].Field[*alloc]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_resize_rbuf", "(QUIC_RSTREAM *,size_t)", "", "Argument[1]", "Argument[*0].Field[*rbuf].Field[*head_offset]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rstream_set_cleanse", "(QUIC_RSTREAM *,int)", "", "Argument[1]", "Argument[*0].Field[*fl].Field[*cleanse]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_get_credit", "(const QUIC_RXFC *)", "", "Argument[*0].Field[*cwm]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_get_credit", "(const QUIC_RXFC *)", "", "Argument[*0].Field[*swm]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_get_cwm", "(const QUIC_RXFC *)", "", "Argument[*0].Field[*cwm]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_get_error", "(QUIC_RXFC *,int)", "", "Argument[*0].Field[*error_code]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_get_final_size", "(const QUIC_RXFC *,uint64_t *)", "", "Argument[*0].Field[*hwm]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_get_parent", "(QUIC_RXFC *)", "", "Argument[*0].Field[**parent]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_get_parent", "(QUIC_RXFC *)", "", "Argument[*0].Field[*parent]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_get_rwm", "(const QUIC_RXFC *)", "", "Argument[*0].Field[*rwm]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_get_swm", "(const QUIC_RXFC *)", "", "Argument[*0].Field[*swm]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_has_cwm_changed", "(QUIC_RXFC *,int)", "", "Argument[*0].Field[*has_cwm_changed]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init", "(QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *)", "", "Argument[**5]", "Argument[*0].Field[***now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init", "(QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *)", "", "Argument[*1]", "Argument[*0].Field[**parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init", "(QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *)", "", "Argument[*5]", "Argument[*0].Field[**now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init", "(QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init", "(QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*cur_window_size]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init", "(QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*cwm]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init", "(QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *)", "", "Argument[3]", "Argument[*0].Field[*max_window_size]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init", "(QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *)", "", "Argument[4]", "Argument[*0].Field[*now]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init", "(QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *)", "", "Argument[5]", "Argument[*0].Field[*now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init_standalone", "(QUIC_RXFC *,uint64_t,..(*)(..),void *)", "", "Argument[**3]", "Argument[*0].Field[***now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init_standalone", "(QUIC_RXFC *,uint64_t,..(*)(..),void *)", "", "Argument[*3]", "Argument[*0].Field[**now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init_standalone", "(QUIC_RXFC *,uint64_t,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*cur_window_size]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init_standalone", "(QUIC_RXFC *,uint64_t,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*cwm]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init_standalone", "(QUIC_RXFC *,uint64_t,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*max_window_size]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init_standalone", "(QUIC_RXFC *,uint64_t,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*now]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_init_standalone", "(QUIC_RXFC *,uint64_t,..(*)(..),void *)", "", "Argument[3]", "Argument[*0].Field[*now_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_on_retire", "(QUIC_RXFC *,uint64_t,OSSL_TIME)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_rxfc_on_rx_stream_frame", "(QUIC_RXFC *,uint64_t,int)", "", "Argument[1]", "Argument[*0].Field[**parent].Field[*swm]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_on_rx_stream_frame", "(QUIC_RXFC *,uint64_t,int)", "", "Argument[1]", "Argument[*0].Field[*hwm]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_on_rx_stream_frame", "(QUIC_RXFC *,uint64_t,int)", "", "Argument[1]", "Argument[*0].Field[*swm]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_rxfc_set_max_window_size", "(QUIC_RXFC *,size_t)", "", "Argument[1]", "Argument[*0].Field[*max_window_size]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_set_diag_title", "(SSL_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**qlog_title]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_set_diag_title", "(SSL_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[**qlog_title]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_set_options", "(SSL *,uint64_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_srtm_add", "(QUIC_SRTM *,void *,uint64_t,const QUIC_STATELESS_RESET_TOKEN *)", "", "Argument[*3]", "Argument[*0].Field[**blind_ctx].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_srtm_add", "(QUIC_SRTM *,void *,uint64_t,const QUIC_STATELESS_RESET_TOKEN *)", "", "Argument[3]", "Argument[*0].Field[**blind_ctx].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_srtm_add", "(QUIC_SRTM *,void *,uint64_t,const QUIC_STATELESS_RESET_TOKEN *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_srtm_lookup", "(QUIC_SRTM *,const QUIC_STATELESS_RESET_TOKEN *,size_t,void **,uint64_t *)", "", "Argument[*1]", "Argument[*0].Field[**blind_ctx].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_srtm_lookup", "(QUIC_SRTM *,const QUIC_STATELESS_RESET_TOKEN *,size_t,void **,uint64_t *)", "", "Argument[1]", "Argument[*0].Field[**blind_ctx].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_adjust_iov", "(size_t,OSSL_QTX_IOVEC *,size_t)", "", "Argument[0]", "Argument[*1].Field[*buf_len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_append", "(QUIC_SSTREAM *,const unsigned char *,size_t,size_t *)", "", "Argument[2]", "Argument[*0].Field[*ring_buf].Field[*head_offset]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_append", "(QUIC_SSTREAM *,const unsigned char *,size_t,size_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_get_buffer_avail", "(QUIC_SSTREAM *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_sstream_get_buffer_size", "(QUIC_SSTREAM *)", "", "Argument[*0].Field[*ring_buf].Field[*alloc]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_get_buffer_used", "(QUIC_SSTREAM *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_sstream_get_cur_size", "(QUIC_SSTREAM *)", "", "Argument[*0].Field[*ring_buf].Field[*head_offset]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_get_final_size", "(QUIC_SSTREAM *,uint64_t *)", "", "Argument[*0].Field[*ring_buf].Field[*head_offset]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_get_stream_frame", "(QUIC_SSTREAM *,size_t,OSSL_QUIC_FRAME_STREAM *,OSSL_QTX_IOVEC *,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_new", "(size_t)", "", "Argument[0]", "ReturnValue[*].Field[*ring_buf].Field[*alloc]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_new", "(size_t)", "", "Argument[0]", "ReturnValue[*].Field[*ring_buf].Field[*head_offset]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_set_buffer_size", "(QUIC_SSTREAM *,size_t)", "", "Argument[1]", "Argument[*0].Field[*ring_buf].Field[*alloc]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_set_buffer_size", "(QUIC_SSTREAM *,size_t)", "", "Argument[1]", "Argument[*0].Field[*ring_buf].Field[*head_offset]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_sstream_set_cleanse", "(QUIC_SSTREAM *,int)", "", "Argument[1]", "Argument[*0].Field[*cleanse]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_iter_init", "(QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int)", "", "Argument[*0].Field[**first_stream]", "Argument[*0].Field[**stream]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_iter_init", "(QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int)", "", "Argument[*0].Field[*first_stream]", "Argument[*0].Field[*stream]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_iter_init", "(QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int)", "", "Argument[1]", "Argument[*0].Field[*qsm]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_alloc", "(QUIC_STREAM_MAP *,uint64_t,int)", "", "Argument[1]", "ReturnValue[*].Field[*id]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_alloc", "(QUIC_STREAM_MAP *,uint64_t,int)", "", "Argument[2]", "ReturnValue[*].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_get_accept_queue_len", "(QUIC_STREAM_MAP *,int)", "", "Argument[*0].Field[*num_accept_bidi]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_get_accept_queue_len", "(QUIC_STREAM_MAP *,int)", "", "Argument[*0].Field[*num_accept_uni]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_get_total_accept_queue_len", "(QUIC_STREAM_MAP *)", "", "Argument[*0].Field[*num_accept_bidi]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_get_total_accept_queue_len", "(QUIC_STREAM_MAP *)", "", "Argument[*0].Field[*num_accept_uni]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_init", "(QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int)", "", "Argument[**2]", "Argument[*0].Field[***get_stream_limit_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_init", "(QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int)", "", "Argument[*2]", "Argument[*0].Field[**get_stream_limit_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_init", "(QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int)", "", "Argument[*3]", "Argument[*0].Field[**max_streams_bidi_rxfc]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_init", "(QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int)", "", "Argument[*4]", "Argument[*0].Field[**max_streams_uni_rxfc]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_init", "(QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int)", "", "Argument[1]", "Argument[*0].Field[*get_stream_limit_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_init", "(QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int)", "", "Argument[2]", "Argument[*0].Field[*get_stream_limit_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_init", "(QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int)", "", "Argument[3]", "Argument[*0].Field[*max_streams_bidi_rxfc]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_init", "(QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int)", "", "Argument[4]", "Argument[*0].Field[*max_streams_uni_rxfc]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_init", "(QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int)", "", "Argument[5]", "Argument[*0].Field[*is_server]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_notify_reset_recv_part", "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*rr_cur]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_notify_reset_recv_part", "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t,uint64_t)", "", "Argument[2]", "Argument[*0].Field[**rr_cur].Field[*peer_reset_stream_aec]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_notify_reset_recv_part", "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t,uint64_t)", "", "Argument[2]", "Argument[*1].Field[*peer_reset_stream_aec]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_peek_accept_queue", "(QUIC_STREAM_MAP *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_stream_map_peek_accept_queue", "(QUIC_STREAM_MAP *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_stream_map_push_accept_queue", "(QUIC_STREAM_MAP *,QUIC_STREAM *)", "", "Argument[*1].Field[*accept_node]", "Argument[*0].Field[*accept_list].Field[**prev]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_reset_stream_send_part", "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*rr_cur]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_reset_stream_send_part", "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t)", "", "Argument[2]", "Argument[*0].Field[**rr_cur].Field[*reset_stream_aec]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_reset_stream_send_part", "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t)", "", "Argument[2]", "Argument[*1].Field[*reset_stream_aec]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_schedule_stop_sending", "(QUIC_STREAM_MAP *,QUIC_STREAM *)", "", "Argument[1]", "Argument[*0].Field[*rr_cur]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_set_rr_stepping", "(QUIC_STREAM_MAP *,size_t)", "", "Argument[1]", "Argument[*0].Field[*rr_stepping]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_stop_sending_recv_part", "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*rr_cur]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_stop_sending_recv_part", "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t)", "", "Argument[2]", "Argument[*0].Field[**rr_cur].Field[*stop_sending_aec]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_stop_sending_recv_part", "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t)", "", "Argument[2]", "Argument[*1].Field[*stop_sending_aec]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_stream_map_update_state", "(QUIC_STREAM_MAP *,QUIC_STREAM *)", "", "Argument[1]", "Argument[*0].Field[*rr_cur]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_thread_assist_init_start", "(QUIC_THREAD_ASSIST *,QUIC_CHANNEL *)", "", "Argument[0]", "Argument[*0].Field[**t].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_thread_assist_init_start", "(QUIC_THREAD_ASSIST *,QUIC_CHANNEL *)", "", "Argument[1]", "Argument[*0].Field[*ch]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tls_get_error", "(QUIC_TLS *,uint64_t *,const char **,ERR_STATE **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_tls_get_error", "(QUIC_TLS *,uint64_t *,const char **,ERR_STATE **)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_tls_get_error", "(QUIC_TLS *,uint64_t *,const char **,ERR_STATE **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_tls_get_error", "(QUIC_TLS *,uint64_t *,const char **,ERR_STATE **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_tls_get_error", "(QUIC_TLS *,uint64_t *,const char **,ERR_STATE **)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_tls_get_error", "(QUIC_TLS *,uint64_t *,const char **,ERR_STATE **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_tls_new", "(const QUIC_TLS_ARGS *)", "", "Argument[*0]", "ReturnValue[*].Field[*args]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tls_new", "(const QUIC_TLS_ARGS *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tls_new", "(const QUIC_TLS_ARGS *)", "", "Argument[0]", "ReturnValue[*].Field[*args]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tls_set_transport_params", "(QUIC_TLS *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**local_transport_params]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tls_set_transport_params", "(QUIC_TLS *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*local_transport_params]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tls_set_transport_params", "(QUIC_TLS *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*local_transport_params_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_get0_rbio", "(QUIC_TSERVER *)", "", "Argument[*0].Field[*args].Field[**net_rbio]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_get0_rbio", "(QUIC_TSERVER *)", "", "Argument[*0].Field[*args].Field[*net_rbio]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_get0_ssl_ctx", "(QUIC_TSERVER *)", "", "Argument[*0].Field[**ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_get0_ssl_ctx", "(QUIC_TSERVER *)", "", "Argument[*0].Field[*ctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_get_channel", "(QUIC_TSERVER *)", "", "Argument[*0].Field[**ch]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_get_channel", "(QUIC_TSERVER *)", "", "Argument[*0].Field[*ch]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_get_terminate_cause", "(const QUIC_TSERVER *)", "", "Argument[*0].Field[**ch].Field[*terminate_cause]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_is_handshake_confirmed", "(const QUIC_TSERVER *)", "", "Argument[*0].Field[**ch].Field[*handshake_confirmed]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_new", "(const QUIC_TSERVER_ARGS *,const char *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_new", "(const QUIC_TSERVER_ARGS *,const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*args]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_read", "(QUIC_TSERVER *,uint64_t,unsigned char *,size_t,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_read", "(QUIC_TSERVER *,uint64_t,unsigned char *,size_t,size_t *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_read", "(QUIC_TSERVER *,uint64_t,unsigned char *,size_t,size_t *)", "", "Argument[3]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_read", "(QUIC_TSERVER *,uint64_t,unsigned char *,size_t,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_set_max_early_data", "(QUIC_TSERVER *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[**tls].Field[*max_early_data]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_set_msg_callback", "(QUIC_TSERVER *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[**ch].Field[***msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_set_msg_callback", "(QUIC_TSERVER *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**ch].Field[**msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_set_msg_callback", "(QUIC_TSERVER *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[**ch].Field[*msg_callback]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_set_msg_callback", "(QUIC_TSERVER *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[**ch].Field[*msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_set_new_local_cid", "(QUIC_TSERVER *,const QUIC_CONN_ID *)", "", "Argument[*1]", "Argument[*0].Field[**ch].Field[*cur_local_cid]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_set_new_local_cid", "(QUIC_TSERVER *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*0].Field[**ch].Field[*cur_local_cid]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_set_new_local_cid", "(QUIC_TSERVER *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_set_psk_find_session_cb", "(QUIC_TSERVER *,SSL_psk_find_session_cb_func)", "", "Argument[1]", "Argument[*0].Field[**tls].Field[*psk_find_session_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_stream_new", "(QUIC_TSERVER *,int,uint64_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_tserver_write", "(QUIC_TSERVER *,uint64_t,const unsigned char *,size_t,size_t *)", "", "Argument[3]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tserver_write", "(QUIC_TSERVER *,uint64_t,const unsigned char *,size_t,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_add_unvalidated_credit", "(OSSL_QUIC_TX_PACKETISER *,size_t)", "", "Argument[1]", "Argument[*0].Field[*unvalidated_credit]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_consume_unvalidated_credit", "(OSSL_QUIC_TX_PACKETISER *,size_t)", "", "Argument[1]", "Argument[*0].Field[*unvalidated_credit]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_get_next_pn", "(OSSL_QUIC_TX_PACKETISER *,uint32_t)", "", "Argument[*0].Field[*next_pn]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_get_next_pn", "(OSSL_QUIC_TX_PACKETISER *,uint32_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_new", "(const OSSL_QUIC_TX_PACKETISER_ARGS *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_new", "(const OSSL_QUIC_TX_PACKETISER_ARGS *)", "", "Argument[0]", "ReturnValue[*].Field[*args]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_record_received_closing_bytes", "(OSSL_QUIC_TX_PACKETISER *,size_t)", "", "Argument[1]", "Argument[*0].Field[*closing_bytes_recv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_schedule_ack", "(OSSL_QUIC_TX_PACKETISER *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*want_ack]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_schedule_ack_eliciting", "(OSSL_QUIC_TX_PACKETISER *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*force_ack_eliciting]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_schedule_conn_close", "(OSSL_QUIC_TX_PACKETISER *,const OSSL_QUIC_FRAME_CONN_CLOSE *)", "", "Argument[1]", "Argument[*0].Field[*conn_close_frame]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_schedule_conn_close", "(OSSL_QUIC_TX_PACKETISER *,const OSSL_QUIC_FRAME_CONN_CLOSE *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_ack_tx_cb", "(OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***ack_tx_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_ack_tx_cb", "(OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**ack_tx_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_ack_tx_cb", "(OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*ack_tx_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_ack_tx_cb", "(OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*ack_tx_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_cur_dcid", "(OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *)", "", "Argument[*1]", "Argument[*0].Field[*args].Field[*cur_dcid]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_cur_dcid", "(OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*0].Field[*args].Field[*cur_dcid]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_cur_dcid", "(OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_cur_scid", "(OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *)", "", "Argument[*1]", "Argument[*0].Field[*args].Field[*cur_scid]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_cur_scid", "(OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*0].Field[*args].Field[*cur_scid]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_cur_scid", "(OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_initial_token", "(OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *)", "", "Argument[**4]", "Argument[*0].Field[***initial_token_free_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_initial_token", "(OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *)", "", "Argument[*1]", "Argument[*0].Field[**initial_token]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_initial_token", "(OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *)", "", "Argument[*4]", "Argument[*0].Field[**initial_token_free_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_initial_token", "(OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *)", "", "Argument[1]", "Argument[*0].Field[*initial_token]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_initial_token", "(OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *)", "", "Argument[2]", "Argument[*0].Field[*initial_token_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_initial_token", "(OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *)", "", "Argument[3]", "Argument[*0].Field[*initial_token_free_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_initial_token", "(OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *)", "", "Argument[4]", "Argument[*0].Field[*initial_token_free_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_msg_callback", "(OSSL_QUIC_TX_PACKETISER *,ossl_msg_cb,SSL *)", "", "Argument[*2]", "Argument[*0].Field[**msg_callback_ssl]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_msg_callback", "(OSSL_QUIC_TX_PACKETISER *,ossl_msg_cb,SSL *)", "", "Argument[1]", "Argument[*0].Field[*msg_callback]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_msg_callback", "(OSSL_QUIC_TX_PACKETISER *,ossl_msg_cb,SSL *)", "", "Argument[2]", "Argument[*0].Field[*msg_callback_ssl]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_msg_callback_arg", "(OSSL_QUIC_TX_PACKETISER *,void *)", "", "Argument[**1]", "Argument[*0].Field[***msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_msg_callback_arg", "(OSSL_QUIC_TX_PACKETISER *,void *)", "", "Argument[*1]", "Argument[*0].Field[**msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_msg_callback_arg", "(OSSL_QUIC_TX_PACKETISER *,void *)", "", "Argument[1]", "Argument[*0].Field[*msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_protocol_version", "(OSSL_QUIC_TX_PACKETISER *,uint32_t)", "", "Argument[1]", "Argument[*0].Field[*args].Field[*protocol_version]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_qlog_cb", "(OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[*fifd].Field[***get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_qlog_cb", "(OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[*fifd].Field[**get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_qlog_cb", "(OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*fifd].Field[*get_qlog_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_tx_packetiser_set_qlog_cb", "(OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*fifd].Field[*get_qlog_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_bump_cwm", "(QUIC_TXFC *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*cwm]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_consume_credit", "(QUIC_TXFC *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[**parent].Field[*swm]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_consume_credit", "(QUIC_TXFC *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*swm]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_consume_credit_local", "(QUIC_TXFC *,uint64_t)", "", "Argument[*0].Field[*cwm]", "Argument[*0].Field[*swm]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_consume_credit_local", "(QUIC_TXFC *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*swm]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_get_credit", "(QUIC_TXFC *,uint64_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_get_credit_local", "(QUIC_TXFC *,uint64_t)", "", "Argument[*0].Field[*cwm]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_get_credit_local", "(QUIC_TXFC *,uint64_t)", "", "Argument[*0].Field[*swm]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_get_credit_local", "(QUIC_TXFC *,uint64_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_get_cwm", "(QUIC_TXFC *)", "", "Argument[*0].Field[*cwm]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_get_parent", "(QUIC_TXFC *)", "", "Argument[*0].Field[**parent]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_get_parent", "(QUIC_TXFC *)", "", "Argument[*0].Field[*parent]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_get_swm", "(QUIC_TXFC *)", "", "Argument[*0].Field[*swm]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_has_become_blocked", "(QUIC_TXFC *,int)", "", "Argument[*0].Field[*has_become_blocked]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_init", "(QUIC_TXFC *,QUIC_TXFC *)", "", "Argument[*1]", "Argument[*0].Field[**parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txfc_init", "(QUIC_TXFC *,QUIC_TXFC *)", "", "Argument[1]", "Argument[*0].Field[*parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_get_in_use", "(const QUIC_TXPIM *)", "", "Argument[*0].Field[*in_use]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_add_cfq_item", "(QUIC_TXPIM_PKT *,QUIC_CFQ_ITEM *)", "", "Argument[*1]", "Argument[*0].Field[**retx_head]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_add_cfq_item", "(QUIC_TXPIM_PKT *,QUIC_CFQ_ITEM *)", "", "Argument[1]", "Argument[*0].Field[*retx_head]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_append_chunk", "(QUIC_TXPIM_PKT *,const QUIC_TXPIM_CHUNK *)", "", "Argument[*1]", "Argument[*0].Field[**chunks]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_append_chunk", "(QUIC_TXPIM_PKT *,const QUIC_TXPIM_CHUNK *)", "", "Argument[1]", "Argument[*0].Field[**chunks]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_append_chunk", "(QUIC_TXPIM_PKT *,const QUIC_TXPIM_CHUNK *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_get_chunks", "(const QUIC_TXPIM_PKT *)", "", "Argument[*0].Field[**chunks]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_get_chunks", "(const QUIC_TXPIM_PKT *)", "", "Argument[*0].Field[*chunks]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_get_num_chunks", "(const QUIC_TXPIM_PKT *)", "", "Argument[*0].Field[*num_chunks]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_release", "(QUIC_TXPIM *,QUIC_TXPIM_PKT *)", "", "Argument[1]", "Argument[*0].Field[*free_list].Field[*head]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_release", "(QUIC_TXPIM *,QUIC_TXPIM_PKT *)", "", "Argument[1]", "Argument[*0].Field[*free_list].Field[*tail]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_txpim_pkt_release", "(QUIC_TXPIM *,QUIC_TXPIM_PKT *)", "", "Argument[1]", "Argument[*1].Field[**prev].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_validate_retry_integrity_tag", "(OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *)", "", "Argument[*3].Field[*id]", "Argument[*3].Field[**id]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_validate_retry_integrity_tag", "(OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_vlint_decode", "(const unsigned char *,size_t,uint64_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_vlint_decode", "(const unsigned char *,size_t,uint64_t *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_vlint_decode", "(const unsigned char *,size_t,uint64_t *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_vlint_decode", "(const unsigned char *,size_t,uint64_t *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_vlint_decode_unchecked", "(const unsigned char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_vlint_decode_unchecked", "(const unsigned char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_vlint_encode", "(uint8_t *,unsigned char *,uint64_t)", "", "Argument[1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_vlint_encode_n", "(uint8_t *,unsigned char *,uint64_t,int)", "", "Argument[1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_ack", "(PACKET *,uint32_t,OSSL_QUIC_FRAME_ACK *,uint64_t *)", "", "Argument[1]", "Argument[*2].Field[*delay_time].Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_conn_close", "(PACKET *,OSSL_QUIC_FRAME_CONN_CLOSE *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_crypto", "(PACKET *,int,OSSL_QUIC_FRAME_CRYPTO *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_crypto", "(PACKET *,int,OSSL_QUIC_FRAME_CRYPTO *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_data_blocked", "(PACKET *,uint64_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_max_data", "(PACKET *,uint64_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_max_stream_data", "(PACKET *,uint64_t *,uint64_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_max_stream_data", "(PACKET *,uint64_t *,uint64_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_max_streams", "(PACKET *,uint64_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_new_conn_id", "(PACKET *,OSSL_QUIC_FRAME_NEW_CONN_ID *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_new_token", "(PACKET *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_new_token", "(PACKET *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_new_token", "(PACKET *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_path_challenge", "(PACKET *,uint64_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_path_response", "(PACKET *,uint64_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_reset_stream", "(PACKET *,OSSL_QUIC_FRAME_RESET_STREAM *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_retire_conn_id", "(PACKET *,uint64_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_stop_sending", "(PACKET *,OSSL_QUIC_FRAME_STOP_SENDING *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_stream", "(PACKET *,int,OSSL_QUIC_FRAME_STREAM *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_stream", "(PACKET *,int,OSSL_QUIC_FRAME_STREAM *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_stream_data_blocked", "(PACKET *,uint64_t *,uint64_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_stream_data_blocked", "(PACKET *,uint64_t *,uint64_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_frame_streams_blocked", "(PACKET *,uint64_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_padding", "(PACKET *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_pkt_hdr", "(PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *)", "", "Argument[*5].Field[*raw_sample]", "Argument[*5].Field[*raw_sample_len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_pkt_hdr", "(PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *)", "", "Argument[2]", "Argument[*4].Field[*partial]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_pkt_hdr", "(PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_pkt_hdr_pn", "(const unsigned char *,size_t,QUIC_PN,QUIC_PN *)", "", "Argument[*0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_pkt_hdr_pn", "(const unsigned char *,size_t,QUIC_PN,QUIC_PN *)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_pkt_hdr_pn", "(const unsigned char *,size_t,QUIC_PN,QUIC_PN *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_pkt_hdr_pn", "(const unsigned char *,size_t,QUIC_PN,QUIC_PN *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_decode_transport_param_bytes", "(PACKET *,uint64_t *,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_transport_param_bytes", "(PACKET *,uint64_t *,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_transport_param_bytes", "(PACKET *,uint64_t *,size_t *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_transport_param_bytes", "(PACKET *,uint64_t *,size_t *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_transport_param_cid", "(PACKET *,uint64_t *,QUIC_CONN_ID *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_transport_param_cid", "(PACKET *,uint64_t *,QUIC_CONN_ID *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_transport_param_int", "(PACKET *,uint64_t *,uint64_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_transport_param_int", "(PACKET *,uint64_t *,uint64_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_decode_transport_param_preferred_addr", "(PACKET *,QUIC_PREFERRED_ADDR *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_conn_close", "(WPACKET *,const OSSL_QUIC_FRAME_CONN_CLOSE *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_crypto", "(WPACKET *,const OSSL_QUIC_FRAME_CRYPTO *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_crypto", "(WPACKET *,const OSSL_QUIC_FRAME_CRYPTO *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_crypto", "(WPACKET *,const OSSL_QUIC_FRAME_CRYPTO *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_crypto", "(WPACKET *,const OSSL_QUIC_FRAME_CRYPTO *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_crypto", "(WPACKET *,const OSSL_QUIC_FRAME_CRYPTO *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_new_conn_id", "(WPACKET *,const OSSL_QUIC_FRAME_NEW_CONN_ID *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_new_token", "(WPACKET *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_stream", "(WPACKET *,const OSSL_QUIC_FRAME_STREAM *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_stream", "(WPACKET *,const OSSL_QUIC_FRAME_STREAM *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_stream", "(WPACKET *,const OSSL_QUIC_FRAME_STREAM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_stream", "(WPACKET *,const OSSL_QUIC_FRAME_STREAM *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_frame_stream", "(WPACKET *,const OSSL_QUIC_FRAME_STREAM *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_padding", "(WPACKET *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_encode_pkt_hdr", "(WPACKET *,size_t,const QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *)", "", "Argument[*3].Field[*raw_sample]", "Argument[*3].Field[*raw_sample_len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_encode_pkt_hdr_pn", "(QUIC_PN,unsigned char *,size_t)", "", "Argument[0]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_encode_transport_param_bytes", "(WPACKET *,uint64_t,const unsigned char *,size_t)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_encode_transport_param_bytes", "(WPACKET *,uint64_t,const unsigned char *,size_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_encode_transport_param_cid", "(WPACKET *,uint64_t,const QUIC_CONN_ID *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_wire_get_encoded_pkt_hdr_len", "(size_t,const QUIC_PKT_HDR *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_get_pkt_hdr_dst_conn_id", "(const unsigned char *,size_t,size_t,QUIC_CONN_ID *)", "", "Argument[*0]", "Argument[*3].Field[*id]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_get_pkt_hdr_dst_conn_id", "(const unsigned char *,size_t,size_t,QUIC_CONN_ID *)", "", "Argument[*0]", "Argument[*3].Field[*id_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_get_pkt_hdr_dst_conn_id", "(const unsigned char *,size_t,size_t,QUIC_CONN_ID *)", "", "Argument[0]", "Argument[*3].Field[*id]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_get_pkt_hdr_dst_conn_id", "(const unsigned char *,size_t,size_t,QUIC_CONN_ID *)", "", "Argument[0]", "Argument[*3].Field[*id_len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_get_pkt_hdr_dst_conn_id", "(const unsigned char *,size_t,size_t,QUIC_CONN_ID *)", "", "Argument[2]", "Argument[*3].Field[*id_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_peek_frame_ack_num_ranges", "(const PACKET *,uint64_t *)", "", "Argument[*0].Field[**curr]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_peek_frame_ack_num_ranges", "(const PACKET *,uint64_t *)", "", "Argument[*0].Field[*curr]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_peek_frame_ack_num_ranges", "(const PACKET *,uint64_t *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_peek_frame_header", "(PACKET *,uint64_t *,int *)", "", "Argument[*0].Field[**curr]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_peek_frame_header", "(PACKET *,uint64_t *,int *)", "", "Argument[*0].Field[*curr]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_peek_frame_header", "(PACKET *,uint64_t *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_peek_transport_param", "(PACKET *,uint64_t *)", "", "Argument[*0].Field[**curr]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_peek_transport_param", "(PACKET *,uint64_t *)", "", "Argument[*0].Field[*curr]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_peek_transport_param", "(PACKET *,uint64_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_wire_skip_frame_header", "(PACKET *,uint64_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_quic_write", "(SSL *,const void *,size_t,size_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_write", "(SSL *,const void *,size_t,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_write_flags", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_quic_write_flags", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_cleanup_entropy", "(OSSL_LIB_CTX *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_rand_cleanup_user_entropy", "(OSSL_LIB_CTX *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_rand_drbg_new", "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[**1]", "ReturnValue[*].Field[***parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_drbg_new", "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[*0]", "ReturnValue[*].Field[**provctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_drbg_new", "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[*1]", "ReturnValue[*].Field[**parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_drbg_new", "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[0]", "ReturnValue[*].Field[*provctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_drbg_new", "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "ReturnValue[*].Field[*parent]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_drbg_new", "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_drbg_new", "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[5]", "ReturnValue[*].Field[*instantiate]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_drbg_new", "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[6]", "ReturnValue[*].Field[*uninstantiate]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_drbg_new", "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[7]", "ReturnValue[*].Field[*reseed]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_drbg_new", "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[8]", "ReturnValue[*].Field[*generate]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_get0_seed_noncreating", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_rand_get0_seed_noncreating", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_rand_get_nonce", "(OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t)", "", "Argument[*4]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_get_nonce", "(OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t)", "", "Argument[4]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_get_nonce", "(OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t)", "", "Argument[5]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_get_user_nonce", "(OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t)", "", "Argument[*4]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_get_user_nonce", "(OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_get_user_nonce", "(OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_get_user_nonce", "(OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t)", "", "Argument[4]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_get_user_nonce", "(OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t)", "", "Argument[5]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_add", "(RAND_POOL *,const unsigned char *,size_t,size_t)", "", "Argument[*1]", "Argument[*0].Field[**buffer]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_add", "(RAND_POOL *,const unsigned char *,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[**buffer]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_add", "(RAND_POOL *,const unsigned char *,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[*len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_add", "(RAND_POOL *,const unsigned char *,size_t,size_t)", "", "Argument[3]", "Argument[*0].Field[*entropy]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_add_begin", "(RAND_POOL *,size_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_rand_pool_add_begin", "(RAND_POOL *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_rand_pool_add_end", "(RAND_POOL *,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_add_end", "(RAND_POOL *,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[*entropy]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_adin_mix_in", "(RAND_POOL *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**buffer]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_adin_mix_in", "(RAND_POOL *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**buffer]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_attach", "(const unsigned char *,size_t,size_t)", "", "Argument[*0]", "ReturnValue[*].Field[**buffer]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_attach", "(const unsigned char *,size_t,size_t)", "", "Argument[0]", "ReturnValue[*].Field[*buffer]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_attach", "(const unsigned char *,size_t,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*alloc_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_attach", "(const unsigned char *,size_t,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*len]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_attach", "(const unsigned char *,size_t,size_t)", "", "Argument[2]", "ReturnValue[*].Field[*entropy]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_buffer", "(RAND_POOL *)", "", "Argument[*0].Field[**buffer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_buffer", "(RAND_POOL *)", "", "Argument[*0].Field[*buffer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_bytes_needed", "(RAND_POOL *,unsigned int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_bytes_remaining", "(RAND_POOL *)", "", "Argument[*0].Field[*len]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_bytes_remaining", "(RAND_POOL *)", "", "Argument[*0].Field[*max_len]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_detach", "(RAND_POOL *)", "", "Argument[*0].Field[**buffer]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_detach", "(RAND_POOL *)", "", "Argument[*0].Field[*buffer]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_entropy", "(RAND_POOL *)", "", "Argument[*0].Field[*entropy]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_entropy_available", "(RAND_POOL *)", "", "Argument[*0].Field[*entropy]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_entropy_needed", "(RAND_POOL *)", "", "Argument[*0].Field[*entropy]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_entropy_needed", "(RAND_POOL *)", "", "Argument[*0].Field[*entropy_requested]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_length", "(RAND_POOL *)", "", "Argument[*0].Field[*len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_new", "(int,int,size_t,size_t)", "", "Argument[0]", "ReturnValue[*].Field[*entropy_requested]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_new", "(int,int,size_t,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*secure]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_new", "(int,int,size_t,size_t)", "", "Argument[2]", "ReturnValue[*].Field[*alloc_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_new", "(int,int,size_t,size_t)", "", "Argument[2]", "ReturnValue[*].Field[*min_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_new", "(int,int,size_t,size_t)", "", "Argument[3]", "ReturnValue[*].Field[*alloc_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_new", "(int,int,size_t,size_t)", "", "Argument[3]", "ReturnValue[*].Field[*max_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_reattach", "(RAND_POOL *,unsigned char *)", "", "Argument[*1]", "Argument[*0].Field[**buffer]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_pool_reattach", "(RAND_POOL *,unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*buffer]", "value", "dfc-generated"] + - ["", "", True, "ossl_rand_range_uint32", "(OSSL_LIB_CTX *,uint32_t,uint32_t,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_range_uint32", "(OSSL_LIB_CTX *,uint32_t,uint32_t,int *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_rand_uniform_uint32", "(OSSL_LIB_CTX *,uint32_t,int *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_rcu_call", "(CRYPTO_RCU_LOCK *,rcu_cb_fn,void *)", "", "Argument[**2]", "Argument[*0].Field[**cb_items].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "ossl_rcu_call", "(CRYPTO_RCU_LOCK *,rcu_cb_fn,void *)", "", "Argument[*0].Field[**cb_items]", "Argument[*0].Field[**cb_items].Field[**next]", "value", "dfc-generated"] + - ["", "", True, "ossl_rcu_call", "(CRYPTO_RCU_LOCK *,rcu_cb_fn,void *)", "", "Argument[*0].Field[*cb_items]", "Argument[*0].Field[**cb_items].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "ossl_rcu_call", "(CRYPTO_RCU_LOCK *,rcu_cb_fn,void *)", "", "Argument[*2]", "Argument[*0].Field[**cb_items].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_rcu_call", "(CRYPTO_RCU_LOCK *,rcu_cb_fn,void *)", "", "Argument[1]", "Argument[*0].Field[**cb_items].Field[*fn]", "value", "dfc-generated"] + - ["", "", True, "ossl_rcu_call", "(CRYPTO_RCU_LOCK *,rcu_cb_fn,void *)", "", "Argument[2]", "Argument[*0].Field[**cb_items].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ossl_rcu_lock_new", "(int,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue[*].Field[**ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_rcu_lock_new", "(int,OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*group_count]", "value", "dfc-generated"] + - ["", "", True, "ossl_rcu_lock_new", "(int,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue[*].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_rio_notifier_cleanup", "(RIO_NOTIFIER *)", "", "Argument[*0].Field[*wfd]", "Argument[*0].Field[*rfd]", "value", "dfc-generated"] + - ["", "", True, "ossl_rlayer_fatal", "(OSSL_RECORD_LAYER *,int,int,const char *,...)", "", "Argument[1]", "Argument[*0].Field[*alert]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_check_crt_components", "(const RSA *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_check_pminusq_diff", "(BIGNUM *,const BIGNUM *,const BIGNUM *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_check_pminusq_diff", "(BIGNUM *,const BIGNUM *,const BIGNUM *,int)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ossl_rsa_check_pminusq_diff", "(BIGNUM *,const BIGNUM *,const BIGNUM *,int)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_check_pminusq_diff", "(BIGNUM *,const BIGNUM *,const BIGNUM *,int)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ossl_rsa_check_prime_factor", "(BIGNUM *,BIGNUM *,int,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_dup", "(const RSA *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_fips186_4_gen_prob_primes", "(RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_fips186_4_gen_prob_primes", "(RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_fips186_4_gen_prob_primes", "(RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_fips186_4_gen_prob_primes", "(RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_fips186_4_gen_prob_primes", "(RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)", "", "Argument[2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_fromdata", "(RSA *,const OSSL_PARAM[],int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_get0_all_params", "(RSA *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get0_all_params", "(RSA *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get0_all_params", "(RSA *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get0_libctx", "(RSA *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_get0_libctx", "(RSA *)", "", "Argument[*0].Field[*libctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_get0_pss_params_30", "(RSA *)", "", "Argument[*0].Field[*pss_params]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*0]", "Argument[*7]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*1]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*2]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*5]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*5]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*5]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*5]", "Argument[*7]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*6]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*6]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*6]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*6]", "Argument[*7]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_get_lcm", "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)", "", "Argument[*7]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_key_from_pkcs8", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_key_from_pkcs8", "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_multiprime_derive", "(RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *)", "", "Argument[*0]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_multiprime_derive", "(RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *)", "", "Argument[*0]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_multiprime_derive", "(RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_multiprime_derive", "(RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *)", "", "Argument[*4]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_new_with_ctx", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_new_with_ctx", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[*3]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[*7]", "Argument[*8]", "value", "df-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[*8]", "Argument[*7]", "value", "df-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_PSS_mgf1", "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *)", "", "Argument[*3]", "Argument[*4]", "value", "df-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_PSS_mgf1", "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *)", "", "Argument[*4]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_PSS_mgf1", "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_PSS_mgf1", "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_type_2_ex", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int)", "", "Argument[*3]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_type_2_ex", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_type_2_ex", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_type_2_ex", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_add_PKCS1_type_2_ex", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_check_PKCS1_type_2", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *)", "", "Argument[*3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_check_PKCS1_type_2", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_check_PKCS1_type_2", "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_check_PKCS1_type_2_TLS", "(OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int)", "", "Argument[*3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_check_PKCS1_type_2_TLS", "(OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_padding_check_PKCS1_type_2_TLS", "(OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int)", "", "Argument[4]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_get_param", "(const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_get_param", "(const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_get_param", "(const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_get_param_unverified", "(const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_get_param_unverified", "(const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_copy", "(RSA_PSS_PARAMS_30 *,const RSA_PSS_PARAMS_30 *)", "", "Argument[*1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_copy", "(RSA_PSS_PARAMS_30 *,const RSA_PSS_PARAMS_30 *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_fromdata", "(RSA_PSS_PARAMS_30 *,int *,const OSSL_PARAM[],OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_fromdata", "(RSA_PSS_PARAMS_30 *,int *,const OSSL_PARAM[],OSSL_LIB_CTX *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_hashalg", "(const RSA_PSS_PARAMS_30 *)", "", "Argument[*0].Field[*hash_algorithm_nid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_maskgenalg", "(const RSA_PSS_PARAMS_30 *)", "", "Argument[*0].Field[*mask_gen].Field[*algorithm_nid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_maskgenhashalg", "(const RSA_PSS_PARAMS_30 *)", "", "Argument[*0].Field[*mask_gen].Field[*hash_algorithm_nid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_saltlen", "(const RSA_PSS_PARAMS_30 *)", "", "Argument[*0].Field[*salt_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_set_hashalg", "(RSA_PSS_PARAMS_30 *,int)", "", "Argument[1]", "Argument[*0].Field[*hash_algorithm_nid]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_set_maskgenhashalg", "(RSA_PSS_PARAMS_30 *,int)", "", "Argument[1]", "Argument[*0].Field[*mask_gen].Field[*hash_algorithm_nid]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_set_saltlen", "(RSA_PSS_PARAMS_30 *,int)", "", "Argument[1]", "Argument[*0].Field[*salt_len]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_set_trailerfield", "(RSA_PSS_PARAMS_30 *,int)", "", "Argument[1]", "Argument[*0].Field[*trailer_field]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_todata", "(const RSA_PSS_PARAMS_30 *,OSSL_PARAM_BLD *,OSSL_PARAM[])", "", "Argument[*0].Field[*salt_len]", "Argument[*2].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_todata", "(const RSA_PSS_PARAMS_30 *,OSSL_PARAM_BLD *,OSSL_PARAM[])", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_30_trailerfield", "(const RSA_PSS_PARAMS_30 *)", "", "Argument[*0].Field[*trailer_field]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_params_create", "(const EVP_MD *,const EVP_MD *,int)", "", "Argument[*0]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ossl_rsa_pss_params_create", "(const EVP_MD *,const EVP_MD *,int)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "ossl_rsa_pss_params_create", "(const EVP_MD *,const EVP_MD *,int)", "", "Argument[2]", "ReturnValue[*].Field[**saltLength].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_to_ctx", "(EVP_MD_CTX *,EVP_PKEY_CTX *,const X509_ALGOR *,EVP_PKEY *)", "", "Argument[3]", "Argument[*0].Field[**pctx].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_pss_to_ctx", "(EVP_MD_CTX *,EVP_PKEY_CTX *,const X509_ALGOR *,EVP_PKEY *)", "", "Argument[3]", "Argument[*1].Field[*pkey]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_set0_all_params", "(RSA *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_set0_all_params", "(RSA *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_set0_all_params", "(RSA *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_set0_libctx", "(RSA *,OSSL_LIB_CTX *)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_set0_libctx", "(RSA *,OSSL_LIB_CTX *)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_set0_pss_params", "(RSA *,RSA_PSS_PARAMS *)", "", "Argument[*1]", "Argument[*0].Field[**pss]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_set0_pss_params", "(RSA *,RSA_PSS_PARAMS *)", "", "Argument[1]", "Argument[*0].Field[*pss]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_sp800_56b_derive_params_from_pq", "(RSA *,int,const BIGNUM *,BN_CTX *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_sp800_56b_derive_params_from_pq", "(RSA *,int,const BIGNUM *,BN_CTX *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_sp800_56b_generate_key", "(RSA *,int,const BIGNUM *,BN_GENCB *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_sp800_56b_generate_key", "(RSA *,int,const BIGNUM *,BN_GENCB *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_sp800_56b_generate_key", "(RSA *,int,const BIGNUM *,BN_GENCB *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_sp800_56b_generate_key", "(RSA *,int,const BIGNUM *,BN_GENCB *)", "", "Argument[1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_sp800_56b_pairwise_test", "(RSA *,BN_CTX *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_rsa_todata", "(RSA *,OSSL_PARAM_BLD *,OSSL_PARAM[],int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_verify", "(int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *)", "", "Argument[*1]", "Argument[*3]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_verify", "(int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsa_verify", "(int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *)", "", "Argument[2]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsa_verify_PKCS1_PSS_mgf1", "(RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int *)", "", "Argument[*2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "ossl_rsa_verify_PKCS1_PSS_mgf1", "(RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int *)", "", "Argument[*3]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ossl_rsa_verify_PKCS1_PSS_mgf1", "(RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsaz_mod_exp_avx512_x2", "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)", "", "Argument[*10]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsaz_mod_exp_avx512_x2", "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)", "", "Argument[*2]", "Argument[*8]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsaz_mod_exp_avx512_x2", "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)", "", "Argument[*4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsaz_mod_exp_avx512_x2", "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)", "", "Argument[*8]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ossl_rsaz_mod_exp_avx512_x2", "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsaz_mod_exp_avx512_x2", "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)", "", "Argument[10]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsaz_mod_exp_avx512_x2", "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)", "", "Argument[12]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsaz_mod_exp_avx512_x2", "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)", "", "Argument[12]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsaz_mod_exp_avx512_x2", "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)", "", "Argument[4]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_rsaz_mod_exp_avx512_x2", "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sa_doall_arg", "(const OPENSSL_SA *,..(*)(..),void *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sa_get", "(const OPENSSL_SA *,ossl_uintmax_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_sa_num", "(const OPENSSL_SA *)", "", "Argument[*0].Field[*nelem]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_sa_set", "(OPENSSL_SA *,ossl_uintmax_t,void *)", "", "Argument[1]", "Argument[*0].Field[*top]", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_drop_frames", "(SFRAME_LIST *,uint64_t)", "", "Argument[1]", "Argument[*0].Field[*offset]", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[**head].Field[*range]", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[*1]", "Argument[*0].Field[**tail].Field[*range]", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*0].Field[**head].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[*3]", "Argument[*0].Field[**tail].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**head].Field[*range]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[1]", "Argument[*0].Field[**tail].Field[*range]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[**head].Field[*pkt]", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[2]", "Argument[*0].Field[**tail].Field[*pkt]", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[3]", "Argument[*0].Field[**head].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_insert", "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)", "", "Argument[3]", "Argument[*0].Field[**tail].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_is_head_locked", "(SFRAME_LIST *)", "", "Argument[*0].Field[*head_locked]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_lock_head", "(SFRAME_LIST *,UINT_RANGE *,const unsigned char **,int *)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ossl_sframe_list_lock_head", "(SFRAME_LIST *,UINT_RANGE *,const unsigned char **,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_sframe_list_lock_head", "(SFRAME_LIST *,UINT_RANGE *,const unsigned char **,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ossl_sframe_list_lock_head", "(SFRAME_LIST *,UINT_RANGE *,const unsigned char **,int *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ossl_sframe_list_move_data", "(SFRAME_LIST *,sframe_list_write_at_cb *,void *)", "", "Argument[*2].Field[*alloc]", "Argument[*2].Field[*head_offset]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sframe_list_peek", "(const SFRAME_LIST *,void **,UINT_RANGE *,const unsigned char **,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha1", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[*2]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_sha1", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha1", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_sha1", "(const unsigned char *,size_t,unsigned char *)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha1_ctrl", "(SHA_CTX *,int,int,void *)", "", "Argument[2]", "Argument[*0].Field[*Nh]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha1_ctrl", "(SHA_CTX *,int,int,void *)", "", "Argument[2]", "Argument[*0].Field[*Nl]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha1_ctrl", "(SHA_CTX *,int,int,void *)", "", "Argument[2]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "ossl_sha3_init", "(KECCAK1600_CTX *,unsigned char,size_t)", "", "Argument[1]", "Argument[*0].Field[*pad]", "value", "dfc-generated"] + - ["", "", True, "ossl_sha3_init", "(KECCAK1600_CTX *,unsigned char,size_t)", "", "Argument[2]", "Argument[*0].Field[*block_size]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha3_init", "(KECCAK1600_CTX *,unsigned char,size_t)", "", "Argument[2]", "Argument[*0].Field[*md_size]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha3_squeeze", "(KECCAK1600_CTX *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha3_squeeze", "(KECCAK1600_CTX *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*bufsz]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha3_squeeze", "(KECCAK1600_CTX *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha3_update", "(KECCAK1600_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_sha3_update", "(KECCAK1600_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha3_update", "(KECCAK1600_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sha3_update", "(KECCAK1600_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*bufsz]", "value", "dfc-generated"] + - ["", "", True, "ossl_siv128_copy_ctx", "(SIV128_CONTEXT *,SIV128_CONTEXT *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_siv128_decrypt", "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**cipher_ctx].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_siv128_decrypt", "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**cipher_ctx].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_siv128_decrypt", "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_siv128_decrypt", "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[**cipher_ctx].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_siv128_decrypt", "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[**cipher_ctx].Field[*buf_len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_siv128_encrypt", "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**cipher_ctx].Field[*buf]", "value", "dfc-generated"] + - ["", "", True, "ossl_siv128_encrypt", "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[**cipher_ctx].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_siv128_encrypt", "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_siv128_encrypt", "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[**cipher_ctx].Field[*buf]", "taint", "dfc-generated"] + - ["", "", True, "ossl_siv128_encrypt", "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)", "", "Argument[3]", "Argument[*0].Field[**cipher_ctx].Field[*buf_len]", "taint", "dfc-generated"] + - ["", "", True, "ossl_siv128_finish", "(SIV128_CONTEXT *)", "", "Argument[*0].Field[*final_ret]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_siv128_get_tag", "(SIV128_CONTEXT *,unsigned char *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_siv128_init", "(SIV128_CONTEXT *,const unsigned char *,int,const EVP_CIPHER *,const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[*0].Field[**cipher_ctx].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "ossl_siv128_init", "(SIV128_CONTEXT *,const unsigned char *,int,const EVP_CIPHER *,const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[4]", "Argument[*0].Field[**cipher_ctx].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "ossl_siv128_new", "(const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[**cipher_ctx].Field[*cipher]", "value", "dfc-generated"] + - ["", "", True, "ossl_siv128_new", "(const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *)", "", "Argument[3]", "ReturnValue[*].Field[**cipher_ctx].Field[*fetched_cipher]", "value", "dfc-generated"] + - ["", "", True, "ossl_siv128_set_tag", "(SIV128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*tag].Union[*siv_block_u]", "value", "dfc-generated"] + - ["", "", True, "ossl_siv128_set_tag", "(SIV128_CONTEXT *,const unsigned char *,size_t)", "", "Argument[1]", "Argument[*0].Field[*tag].Union[*siv_block_u]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_hash_ctx_dup", "(const SLH_DSA_HASH_CTX *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_slh_dsa_hash_ctx_new", "(const SLH_DSA_KEY *)", "", "Argument[0]", "ReturnValue[*].Field[*key]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_dup", "(const SLH_DSA_KEY *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_slh_dsa_key_dup", "(const SLH_DSA_KEY *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_dup", "(const SLH_DSA_KEY *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_fromdata", "(SLH_DSA_KEY *,const OSSL_PARAM *,const OSSL_PARAM[],int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_get_n", "(const SLH_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*n]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_get_name", "(const SLH_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[**alg]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_get_name", "(const SLH_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*alg]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_get_priv", "(const SLH_DSA_KEY *)", "", "Argument[*0].Field[*priv]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_get_priv_len", "(const SLH_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*n]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_get_pub", "(const SLH_DSA_KEY *)", "", "Argument[*0].Field[**pub]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_get_pub", "(const SLH_DSA_KEY *)", "", "Argument[*0].Field[*pub]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_get_pub_len", "(const SLH_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*n]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_get_sig_len", "(const SLH_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*sig_len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_get_type", "(const SLH_DSA_KEY *)", "", "Argument[*0].Field[**params].Field[*type]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_new", "(OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_new", "(OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_new", "(OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_key_new", "(OSSL_LIB_CTX *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_set_priv", "(SLH_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**pub]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_set_priv", "(SLH_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[*priv]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_set_priv", "(SLH_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[**pub]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_set_priv", "(SLH_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[*priv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_set_pub", "(SLH_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[*1]", "Argument[*0].Field[**pub]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_set_pub", "(SLH_DSA_KEY *,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*0].Field[**pub]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_sign", "(SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t)", "", "Argument[*3]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_sign", "(SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_sign", "(SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_sign", "(SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t)", "", "Argument[4]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_verify", "(SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t)", "", "Argument[*3]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_verify", "(SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_verify", "(SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_slh_dsa_verify", "(SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t)", "", "Argument[4]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_sm2_ciphertext_size", "(const EC_KEY *,const EVP_MD *,size_t,size_t *)", "", "Argument[*1].Field[*md_size]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_ciphertext_size", "(const EC_KEY *,const EVP_MD *,size_t,size_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_decrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[*0].Field[*priv_key]", "Argument[*0].Field[**priv_key]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_decrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[*2]", "Argument[2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_decrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_decrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_decrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[3]", "Argument[2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_decrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_do_sign", "(const EC_KEY *,const EVP_MD *,const uint8_t *,const size_t,const uint8_t *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_sm2_encrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[*1].Field[*md_size]", "Argument[*4].Field[**C3].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ossl_sm2_encrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[*2]", "Argument[*4].Field[**C2].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_encrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[2]", "Argument[*4].Field[**C2].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_encrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[3]", "Argument[*4].Field[**C2].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "ossl_sm2_encrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_encrypt", "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_internal_sign", "(const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_internal_verify", "(const unsigned char *,int,const unsigned char *,int,EC_KEY *)", "", "Argument[*4].Field[*pub_key]", "Argument[*4].Field[**pub_key]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_internal_verify", "(const unsigned char *,int,const unsigned char *,int,EC_KEY *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_plaintext_size", "(const unsigned char *,size_t,size_t *)", "", "Argument[*0]", "Argument[0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_plaintext_size", "(const unsigned char *,size_t,size_t *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_plaintext_size", "(const unsigned char *,size_t,size_t *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm2_plaintext_size", "(const unsigned char *,size_t,size_t *)", "", "Argument[1]", "Argument[0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm3_block_data_order", "(SM3_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_sm3_block_data_order", "(SM3_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_sm3_final", "(unsigned char *,SM3_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm3_transform", "(SM3_CTX *,const unsigned char *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_sm3_transform", "(SM3_CTX *,const unsigned char *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_sm3_update", "(SM3_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nh]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm3_update", "(SM3_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*Nl]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm3_update", "(SM3_CTX *,const void *,size_t)", "", "Argument[2]", "Argument[*0].Field[*num]", "value", "dfc-generated"] + - ["", "", True, "ossl_sm4_decrypt", "(const uint8_t *,uint8_t *,const SM4_KEY *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm4_decrypt", "(const uint8_t *,uint8_t *,const SM4_KEY *)", "", "Argument[*2].Field[*rk]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm4_decrypt", "(const uint8_t *,uint8_t *,const SM4_KEY *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm4_decrypt", "(const uint8_t *,uint8_t *,const SM4_KEY *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm4_encrypt", "(const uint8_t *,uint8_t *,const SM4_KEY *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm4_encrypt", "(const uint8_t *,uint8_t *,const SM4_KEY *)", "", "Argument[*2].Field[*rk]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm4_encrypt", "(const uint8_t *,uint8_t *,const SM4_KEY *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm4_encrypt", "(const uint8_t *,uint8_t *,const SM4_KEY *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm4_set_key", "(const uint8_t *,SM4_KEY *)", "", "Argument[*0]", "Argument[*1].Field[*rk]", "taint", "dfc-generated"] + - ["", "", True, "ossl_sm4_set_key", "(const uint8_t *,SM4_KEY *)", "", "Argument[0]", "Argument[*1].Field[*rk]", "taint", "dfc-generated"] + - ["", "", True, "ossl_spki2typespki_der_decode", "(unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_spki2typespki_der_decode", "(unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_ssl_connection_new", "(SSL_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_connection_new_int", "(SSL_CTX *,SSL *,const SSL_METHOD *)", "", "Argument[*2]", "ReturnValue[*].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_connection_new_int", "(SSL_CTX *,SSL *,const SSL_METHOD *)", "", "Argument[0]", "ReturnValue[*].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_connection_new_int", "(SSL_CTX *,SSL *,const SSL_METHOD *)", "", "Argument[2]", "ReturnValue[*].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_init", "(SSL *,SSL_CTX *,const SSL_METHOD *,int)", "", "Argument[*2]", "Argument[*0].Field[**method]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_init", "(SSL *,SSL_CTX *,const SSL_METHOD *,int)", "", "Argument[1]", "Argument[*0].Field[*ctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_init", "(SSL *,SSL_CTX *,const SSL_METHOD *,int)", "", "Argument[2]", "Argument[*0].Field[*method]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_init", "(SSL *,SSL_CTX *,const SSL_METHOD *,int)", "", "Argument[3]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_set_custom_record_layer", "(SSL_CONNECTION *,const OSSL_RECORD_METHOD *,void *)", "", "Argument[**2]", "Argument[*0].Field[*rlayer].Field[***rlarg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_set_custom_record_layer", "(SSL_CONNECTION *,const OSSL_RECORD_METHOD *,void *)", "", "Argument[*1]", "Argument[*0].Field[*rlayer].Field[**custom_rlmethod]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_set_custom_record_layer", "(SSL_CONNECTION *,const OSSL_RECORD_METHOD *,void *)", "", "Argument[*2]", "Argument[*0].Field[*rlayer].Field[**rlarg]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_set_custom_record_layer", "(SSL_CONNECTION *,const OSSL_RECORD_METHOD *,void *)", "", "Argument[1]", "Argument[*0].Field[*rlayer].Field[*custom_rlmethod]", "value", "dfc-generated"] + - ["", "", True, "ossl_ssl_set_custom_record_layer", "(SSL_CONNECTION *,const OSSL_RECORD_METHOD *,void *)", "", "Argument[2]", "Argument[*0].Field[*rlayer].Field[*rlarg]", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_client_max_message_size", "(SSL_CONNECTION *)", "", "Argument[*0].Field[*max_cert_list]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_client_process_message", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_statem_fatal", "(SSL_CONNECTION *,int,int,const char *,...)", "", "Argument[1]", "Argument[*0].Field[*s3].Field[*send_alert]", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_get_in_handshake", "(SSL_CONNECTION *)", "", "Argument[*0].Field[*statem].Field[*in_handshake]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_get_state", "(SSL_CONNECTION *)", "", "Argument[*0].Field[*statem].Field[*hand_state]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_send_fatal", "(SSL_CONNECTION *,int)", "", "Argument[1]", "Argument[*0].Field[*s3].Field[*send_alert]", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_server_max_message_size", "(SSL_CONNECTION *)", "", "Argument[*0].Field[*max_cert_list]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_server_process_message", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_statem_set_in_init", "(SSL_CONNECTION *,int)", "", "Argument[1]", "Argument[*0].Field[*statem].Field[*in_init]", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_set_mutator", "(SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *)", "", "Argument[**3]", "Argument[*0].Field[*statem].Field[***mutatearg]", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_set_mutator", "(SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *)", "", "Argument[*3]", "Argument[*0].Field[*statem].Field[**mutatearg]", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_set_mutator", "(SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*statem].Field[*mutate_handshake_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_set_mutator", "(SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*statem].Field[*finish_mutate_handshake_cb]", "value", "dfc-generated"] + - ["", "", True, "ossl_statem_set_mutator", "(SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *)", "", "Argument[3]", "Argument[*0].Field[*statem].Field[*mutatearg]", "value", "dfc-generated"] + - ["", "", True, "ossl_statm_get_rtt_info", "(OSSL_STATM *,OSSL_RTT_INFO *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_statm_update_rtt", "(OSSL_STATM *,OSSL_TIME,OSSL_TIME)", "", "Argument[1].Field[*t]", "Argument[*0].Field[*rtt_variance].Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "ossl_statm_update_rtt", "(OSSL_STATM *,OSSL_TIME,OSSL_TIME)", "", "Argument[1].Field[*t]", "Argument[*0].Field[*smoothed_rtt].Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "ossl_store_handle_load_result", "(const OSSL_PARAM[],void *)", "", "Argument[*1].Field[*v]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_store_handle_load_result", "(const OSSL_PARAM[],void *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_store_loader_get_number", "(const OSSL_STORE_LOADER *)", "", "Argument[*0].Field[*scheme_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_dinit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*iv]", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[*3]", "Argument[*0].Field[*oiv]", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*iv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*oiv]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_einit", "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_get_ctx_params", "(void *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[2]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[3]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[4]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_get_params", "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)", "", "Argument[5]", "Argument[*0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_newctx", "(void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *)", "", "Argument[*0].Field[**libctx]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_newctx", "(void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *)", "", "Argument[*0].Field[*libctx]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_newctx", "(void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *)", "", "Argument[*6]", "ReturnValue[*].Field[**hw]", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_newctx", "(void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *)", "", "Argument[1]", "ReturnValue[*].Field[*mode]", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_newctx", "(void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *)", "", "Argument[2]", "ReturnValue[*].Field[*keylen]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_newctx", "(void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *)", "", "Argument[3]", "ReturnValue[*].Field[*blocksize]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_newctx", "(void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *)", "", "Argument[4]", "ReturnValue[*].Field[*ivlen]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tdes_newctx", "(void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *)", "", "Argument[6]", "ReturnValue[*].Field[*hw]", "value", "dfc-generated"] + - ["", "", True, "ossl_tdes_set_ctx_params", "(void *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tls_add_custom_ext_intern", "(SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *)", "", "Argument[*0].Field[**cert].Field[*custext]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ossl_tls_handle_rlayer_return", "(SSL_CONNECTION *,int,int,char *,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_tls_rl_record_set_seq_num", "(TLS_RL_RECORD *,const unsigned char *)", "", "Argument[*1]", "Argument[*0].Field[*seq_num]", "value", "dfc-generated"] + - ["", "", True, "ossl_tls_rl_record_set_seq_num", "(TLS_RL_RECORD *,const unsigned char *)", "", "Argument[1]", "Argument[*0].Field[*seq_num]", "taint", "dfc-generated"] + - ["", "", True, "ossl_to_hex", "(char *,uint8_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_to_hex", "(char *,uint8_t)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_tolower", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_toupper", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_v3_name_cmp", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_v3_name_cmp", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_v3_name_cmp", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_v3_name_cmp", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_x25519", "(uint8_t[32],const uint8_t[32],const uint8_t[32])", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x25519", "(uint8_t[32],const uint8_t[32],const uint8_t[32])", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x25519", "(uint8_t[32],const uint8_t[32],const uint8_t[32])", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x25519", "(uint8_t[32],const uint8_t[32],const uint8_t[32])", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x25519_public_from_private", "(uint8_t[32],const uint8_t[32])", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x25519_public_from_private", "(uint8_t[32],const uint8_t[32])", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x448", "(uint8_t[56],const uint8_t[56],const uint8_t[56])", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x448", "(uint8_t[56],const uint8_t[56],const uint8_t[56])", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x448_int", "(uint8_t[56],const uint8_t[56],const uint8_t[56])", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x448_int", "(uint8_t[56],const uint8_t[56],const uint8_t[56])", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_x448_int", "(uint8_t[56],const uint8_t[56],const uint8_t[56])", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x448_int", "(uint8_t[56],const uint8_t[56],const uint8_t[56])", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_PUBKEY_get0_libctx", "(OSSL_LIB_CTX **,const char **,const X509_PUBKEY *)", "", "Argument[*2]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ossl_x509_PUBKEY_get0_libctx", "(OSSL_LIB_CTX **,const char **,const X509_PUBKEY *)", "", "Argument[*2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ossl_x509_PUBKEY_get0_libctx", "(OSSL_LIB_CTX **,const char **,const X509_PUBKEY *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ossl_x509_PUBKEY_get0_libctx", "(OSSL_LIB_CTX **,const char **,const X509_PUBKEY *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ossl_x509_add_cert_new", "(stack_st_X509 **,X509 *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_x509_add_cert_new", "(stack_st_X509 **,X509 *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_add_cert_new", "(stack_st_X509 **,X509 *,int)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ossl_x509_add_certs_new", "(stack_st_X509 **,stack_st_X509 *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_algor_md_to_mgf1", "(X509_ALGOR **,const EVP_MD *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_algor_md_to_mgf1", "(X509_ALGOR **,const EVP_MD *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_algor_md_to_mgf1", "(X509_ALGOR **,const EVP_MD *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_algor_new_from_md", "(X509_ALGOR **,const EVP_MD *)", "", "Argument[*1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "ossl_x509_check_cert_time", "(X509_STORE_CTX *,X509 *,int)", "", "Argument[*1]", "Argument[*0].Field[**current_cert]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_check_cert_time", "(X509_STORE_CTX *,X509 *,int)", "", "Argument[1]", "Argument[*0].Field[*current_cert]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_check_cert_time", "(X509_STORE_CTX *,X509 *,int)", "", "Argument[2]", "Argument[*0].Field[*current_cert]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_check_cert_time", "(X509_STORE_CTX *,X509 *,int)", "", "Argument[2]", "Argument[*0].Field[*error_depth]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_crl_set0_libctx", "(X509_CRL *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_crl_set0_libctx", "(X509_CRL *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_crl_set0_libctx", "(X509_CRL *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_crl_set0_libctx", "(X509_CRL *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*0].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_likely_issued", "(X509 *,X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ossl_x509_likely_issued", "(X509 *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_x509_print_ex_brief", "(BIO *,X509 *,unsigned long)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_x509_print_ex_brief", "(BIO *,X509 *,unsigned long)", "", "Argument[0]", "Argument[*0].Field[**prev_bio].Field[*next_bio]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_req_set0_libctx", "(X509_REQ *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_req_set0_libctx", "(X509_REQ *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_req_set0_libctx", "(X509_REQ *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_req_set0_libctx", "(X509_REQ *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*0].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_set0_libctx", "(X509 *,OSSL_LIB_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_set0_libctx", "(X509 *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_set0_libctx", "(X509 *,OSSL_LIB_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ossl_x509_set0_libctx", "(X509 *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[*0].Field[**propq]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_set1_time", "(int *,ASN1_TIME **,const ASN1_TIME *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ossl_x509_set1_time", "(int *,ASN1_TIME **,const ASN1_TIME *)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "ossl_x509_set1_time", "(int *,ASN1_TIME **,const ASN1_TIME *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509_set1_time", "(int *,ASN1_TIME **,const ASN1_TIME *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr", "(stack_st_X509_ATTRIBUTE **,const X509_ATTRIBUTE *)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_x509at_add1_attr", "(stack_st_X509_ATTRIBUTE **,const X509_ATTRIBUTE *)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr", "(stack_st_X509_ATTRIBUTE **,const X509_ATTRIBUTE *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ossl_x509at_add1_attr", "(stack_st_X509_ATTRIBUTE **,const X509_ATTRIBUTE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr", "(stack_st_X509_ATTRIBUTE **,const X509_ATTRIBUTE *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_NID", "(stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_NID", "(stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_NID", "(stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_NID", "(stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_OBJ", "(stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_OBJ", "(stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_OBJ", "(stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_OBJ", "(stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_txt", "(stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_txt", "(stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_txt", "(stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509at_add1_attr_by_txt", "(stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ossl_x509at_dup", "(const stack_st_X509_ATTRIBUTE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ossl_x509v3_cache_extensions", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "p_test_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*0]", "Argument[**3].Field[**handle]", "value", "dfc-generated"] + - ["", "", True, "p_test_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[0]", "Argument[**3].Field[*handle]", "value", "dfc-generated"] + - ["", "", True, "p_test_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "parse_ca_names", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "parse_yesno", "(const char *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "passwd_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "passwd_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "passwd_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "pitem_new", "(unsigned char *,void *)", "", "Argument[**1]", "ReturnValue[*].Field[***data]", "value", "dfc-generated"] + - ["", "", True, "pitem_new", "(unsigned char *,void *)", "", "Argument[*0]", "ReturnValue[*].Field[*priority]", "value", "dfc-generated"] + - ["", "", True, "pitem_new", "(unsigned char *,void *)", "", "Argument[*1]", "ReturnValue[*].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "pitem_new", "(unsigned char *,void *)", "", "Argument[0]", "ReturnValue[*].Field[*priority]", "taint", "dfc-generated"] + - ["", "", True, "pitem_new", "(unsigned char *,void *)", "", "Argument[1]", "ReturnValue[*].Field[*data]", "value", "dfc-generated"] + - ["", "", True, "pkcs12_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "pkcs12_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "pkcs7_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "pkcs7_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "pkcs8_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "pkcs8_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "pkey_ctrl_string", "(EVP_PKEY_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "pkey_ctrl_string", "(EVP_PKEY_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "pkey_ctrl_string", "(EVP_PKEY_CTX *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id_name]", "value", "dfc-generated"] + - ["", "", True, "pkey_ctrl_string", "(EVP_PKEY_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[***dist_id]", "taint", "dfc-generated"] + - ["", "", True, "pkey_ctrl_string", "(EVP_PKEY_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id]", "taint", "dfc-generated"] + - ["", "", True, "pkey_ctrl_string", "(EVP_PKEY_CTX *,const char *)", "", "Argument[1]", "Argument[*0].Field[*cached_parameters].Field[**dist_id_name]", "taint", "dfc-generated"] + - ["", "", True, "pkey_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "pkey_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "pkeyparam_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "pkeyparam_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "pkeyutl_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "pkeyutl_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "pqueue_find", "(pqueue *,unsigned char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "pqueue_find", "(pqueue *,unsigned char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "pqueue_insert", "(pqueue *,pitem *)", "", "Argument[*1]", "Argument[*0].Field[**items]", "value", "dfc-generated"] + - ["", "", True, "pqueue_insert", "(pqueue *,pitem *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "pqueue_insert", "(pqueue *,pitem *)", "", "Argument[1]", "Argument[*0].Field[*items]", "value", "dfc-generated"] + - ["", "", True, "pqueue_insert", "(pqueue *,pitem *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "pqueue_iterator", "(pqueue *)", "", "Argument[*0].Field[**items]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "pqueue_iterator", "(pqueue *)", "", "Argument[*0].Field[*items]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "pqueue_next", "(piterator *)", "", "Argument[**0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "pqueue_next", "(piterator *)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "pqueue_next", "(piterator *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "pqueue_next", "(piterator *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "pqueue_peek", "(pqueue *)", "", "Argument[*0].Field[**items]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "pqueue_peek", "(pqueue *)", "", "Argument[*0].Field[*items]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "pqueue_pop", "(pqueue *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "pqueue_pop", "(pqueue *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "prime_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "prime_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "prime_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "prime_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "print_bignum_var", "(BIO *,const BIGNUM *,const char *,int,unsigned char *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "print_param_types", "(const char *,const OSSL_PARAM *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "print_verify_detail", "(SSL *,BIO *)", "", "Argument[*0].Field[**tls].Field[**param]", "Argument[*0].Field[**param]", "value", "dfc-generated"] + - ["", "", True, "process_responder", "(OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "pulldown_test_framework", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "putc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_injector", "(QUIC_TSERVER *)", "", "Argument[*0]", "ReturnValue[*].Field[**qtserv]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_injector", "(QUIC_TSERVER *)", "", "Argument[0]", "ReturnValue[*].Field[*qtserv]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_quic_connection", "(QUIC_TSERVER *,SSL *)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_quic_connection_ex", "(QUIC_TSERVER *,SSL *,int)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[**8].Field[*noiseargs]", "Argument[**6].Field[**ch].Field[**msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[*6]", "Argument[**8].Field[*qtserv]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[0]", "Argument[**6].Field[**ctx].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[0]", "Argument[**6].Field[**engine].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[0]", "Argument[**6].Field[*args].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[5]", "Argument[**8].Field[*noiseargs].Field[*flags]", "value", "dfc-generated"] + - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[6]", "Argument[**8].Field[*qtserv]", "taint", "dfc-generated"] + - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] + - ["", "", True, "qtest_fault_delete_extension", "(QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *)", "", "Argument[*0].Field[*handbuflen]", "Argument[*0].Field[**handbuf]", "taint", "dfc-generated"] + - ["", "", True, "qtest_fault_delete_extension", "(QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *)", "", "Argument[*3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "qtest_fault_delete_extension", "(QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "qtest_fault_delete_extension", "(QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "qtest_fault_prepend_frame", "(QTEST_FAULT *,const unsigned char *,size_t)", "", "Argument[*0].Field[*pplainio].Field[*buf_len]", "Argument[*0].Field[*pplainhdr].Field[*len]", "taint", "dfc-generated"] + - ["", "", True, "qtest_fault_prepend_frame", "(QTEST_FAULT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*pplainhdr].Field[*len]", "taint", "dfc-generated"] + - ["", "", True, "qtest_fault_prepend_frame", "(QTEST_FAULT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*pplainio].Field[*buf_len]", "taint", "dfc-generated"] + - ["", "", True, "qtest_fault_resize_datagram", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[*msg].Field[*data_len]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_resize_handshake", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[*handbuflen]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_resize_message", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[**handbuf]", "taint", "dfc-generated"] + - ["", "", True, "qtest_fault_resize_message", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[*handbuflen]", "taint", "dfc-generated"] + - ["", "", True, "qtest_fault_resize_plain_packet", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[*pplainhdr].Field[*len]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_resize_plain_packet", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[*pplainio].Field[*buf_len]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_datagram_listener", "(QTEST_FAULT *,qtest_fault_on_datagram_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***datagramcbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_datagram_listener", "(QTEST_FAULT *,qtest_fault_on_datagram_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**datagramcbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_datagram_listener", "(QTEST_FAULT *,qtest_fault_on_datagram_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*datagramcb]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_datagram_listener", "(QTEST_FAULT *,qtest_fault_on_datagram_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*datagramcbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_hand_enc_ext_listener", "(QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***encextcbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_hand_enc_ext_listener", "(QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**encextcbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_hand_enc_ext_listener", "(QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*encextcb]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_hand_enc_ext_listener", "(QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*encextcbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_handshake_listener", "(QTEST_FAULT *,qtest_fault_on_handshake_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***handshakecbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_handshake_listener", "(QTEST_FAULT *,qtest_fault_on_handshake_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**handshakecbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_handshake_listener", "(QTEST_FAULT *,qtest_fault_on_handshake_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*handshakecb]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_handshake_listener", "(QTEST_FAULT *,qtest_fault_on_handshake_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*handshakecbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_packet_cipher_listener", "(QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***pciphercbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_packet_cipher_listener", "(QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**pciphercbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_packet_cipher_listener", "(QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*pciphercb]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_packet_cipher_listener", "(QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*pciphercbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_packet_plain_listener", "(QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***pplaincbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_packet_plain_listener", "(QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**pplaincbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_packet_plain_listener", "(QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*pplaincb]", "value", "dfc-generated"] + - ["", "", True, "qtest_fault_set_packet_plain_listener", "(QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*pplaincbarg]", "value", "dfc-generated"] + - ["", "", True, "qtest_shutdown", "(QUIC_TSERVER *,SSL *)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "rand_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "rand_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "rand_serial", "(BIGNUM *,ASN1_INTEGER *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "rehash_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "rehash_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "rehash_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "rehash_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "req_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "req_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "req_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ripemd160_block_data_order", "(RIPEMD160_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ripemd160_block_data_order", "(RIPEMD160_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "rsa_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "rsa_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "rsautl_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "rsautl_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "s2i_ASN1_IA5STRING", "(X509V3_EXT_METHOD *,X509V3_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "s2i_ASN1_IA5STRING", "(X509V3_EXT_METHOD *,X509V3_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "s2i_ASN1_UTF8STRING", "(X509V3_EXT_METHOD *,X509V3_CTX *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "s2i_ASN1_UTF8STRING", "(X509V3_EXT_METHOD *,X509V3_CTX *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "s_client_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "s_client_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "s_time_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "s_time_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "save_serial", "(const char *,const char *,const BIGNUM *,ASN1_INTEGER **)", "", "Argument[*2]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "sd_load", "(const char *,SD *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sd_sym", "(SD,const char *,SD_SYM *)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sd_sym", "(SD,const char *,SD_SYM *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "sd_sym", "(SD,const char *,SD_SYM *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sess_id_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "sess_id_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "set_cert_ex", "(unsigned long *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "set_cert_key_stuff", "(SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "set_cert_key_stuff", "(SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[*3]", "Argument[*0].Field[**msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "set_cert_key_stuff", "(SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[3]", "Argument[*0].Field[*msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "set_cert_stuff", "(SSL_CTX *,char *,char *)", "", "Argument[*1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "set_name_ex", "(unsigned long *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "set_up_srp_arg", "(SSL_CTX *,SRP_ARG *,int,int,int)", "", "Argument[3]", "Argument[*1].Field[*msg]", "value", "dfc-generated"] + - ["", "", True, "set_up_srp_arg", "(SSL_CTX *,SRP_ARG *,int,int,int)", "", "Argument[4]", "Argument[*1].Field[*debug]", "value", "dfc-generated"] + - ["", "", True, "set_up_srp_verifier_file", "(SSL_CTX *,srpsrvparm *,char *,char *)", "", "Argument[*2]", "Argument[*1].Field[**vb].Field[**seed_key]", "value", "dfc-generated"] + - ["", "", True, "set_up_srp_verifier_file", "(SSL_CTX *,srpsrvparm *,char *,char *)", "", "Argument[2]", "Argument[*1].Field[**vb].Field[**seed_key]", "taint", "dfc-generated"] + - ["", "", True, "shutdown_ssl_connection", "(SSL *,SSL *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "shutdown_ssl_connection", "(SSL *,SSL *)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "skeyutl_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "skeyutl_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "smime_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "smime_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "smime_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "smime_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "snprintf", "(char *__restrict__,size_t,const char *__restrict__,...)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "snprintf", "(char *__restrict__,size_t,const char *__restrict__,...)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "speed_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "speed_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "speed_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "speed_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "spkac_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "spkac_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "sprintf", "(char *__restrict__,const char *__restrict__,...)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "sprintf", "(char *__restrict__,const char *__restrict__,...)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "srp_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "srp_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "srp_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "srp_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_callback_ctrl", "(SSL *,int,..(*)(..))", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[*0]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[*2]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[0]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[2]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[5]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[5]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[5]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[6]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[6]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)", "", "Argument[6]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_choose_cipher", "(SSL_CONNECTION *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER *)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ssl3_choose_cipher", "(SSL_CONNECTION *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ssl3_choose_cipher", "(SSL_CONNECTION *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ssl3_choose_cipher", "(SSL_CONNECTION *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER *)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "ssl3_choose_cipher", "(SSL_CONNECTION *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER *)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ssl3_choose_cipher", "(SSL_CONNECTION *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER *)", "", "Argument[*2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ssl3_comp_find", "(stack_st_SSL_COMP *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ssl3_comp_find", "(stack_st_SSL_COMP *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ssl3_ctrl", "(SSL *,int,long,void *)", "", "Argument[**3]", "Argument[*0].Field[***msg_callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ssl3_ctrl", "(SSL *,int,long,void *)", "", "Argument[**3]", "Argument[*0].Field[*ext].Field[***debug_arg]", "value", "dfc-generated"] + - ["", "", True, "ssl3_ctrl", "(SSL *,int,long,void *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "ssl3_ctrl", "(SSL *,int,long,void *)", "", "Argument[3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "ssl3_ctx_callback_ctrl", "(SSL_CTX *,int,..(*)(..))", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ssl3_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[**3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ssl3_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "ssl3_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ssl3_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ssl3_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ssl3_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[*3]", "Argument[3]", "value", "df-generated"] + - ["", "", True, "ssl3_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ssl3_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ssl3_ctx_ctrl", "(SSL_CTX *,int,long,void *)", "", "Argument[3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "ssl3_digest_master_key_set_params", "(const SSL_SESSION *,OSSL_PARAM[])", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ssl3_generate_master_secret", "(SSL_CONNECTION *,unsigned char *,unsigned char *,size_t,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_get_cipher", "(unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ssl3_get_cipher", "(unsigned int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_get_req_cert_type", "(SSL_CONNECTION *,WPACKET *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ssl3_output_cert_chain", "(SSL_CONNECTION *,WPACKET *,CERT_PKEY *,int)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ssl3_read_bytes", "(SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_read_bytes", "(SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *)", "", "Argument[4]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_read_bytes", "(SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *)", "", "Argument[4]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "ssl3_send_alert", "(SSL_CONNECTION *,int,int)", "", "Argument[1]", "Argument[*0].Field[*s3].Field[*send_alert]", "value", "dfc-generated"] + - ["", "", True, "ssl3_send_alert", "(SSL_CONNECTION *,int,int)", "", "Argument[2]", "Argument[*0].Field[*s3].Field[*send_alert]", "value", "dfc-generated"] + - ["", "", True, "ssl3_write_bytes", "(SSL *,uint8_t,const void *,size_t,size_t *)", "", "Argument[*2]", "Argument[*0].Field[*rlayer].Field[**wpend_buf]", "value", "dfc-generated"] + - ["", "", True, "ssl3_write_bytes", "(SSL *,uint8_t,const void *,size_t,size_t *)", "", "Argument[1]", "Argument[*0].Field[*rlayer].Field[*wpend_type]", "value", "dfc-generated"] + - ["", "", True, "ssl3_write_bytes", "(SSL *,uint8_t,const void *,size_t,size_t *)", "", "Argument[2]", "Argument[*0].Field[*rlayer].Field[*wpend_buf]", "value", "dfc-generated"] + - ["", "", True, "ssl_cache_cipherlist", "(SSL_CONNECTION *,PACKET *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ssl_cert_add0_chain_cert", "(SSL_CONNECTION *,SSL_CTX *,X509 *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ssl_cert_add1_chain_cert", "(SSL_CONNECTION *,SSL_CTX *,X509 *)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ssl_cert_add1_chain_cert", "(SSL_CONNECTION *,SSL_CTX *,X509 *)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "ssl_cert_dup", "(CERT *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ssl_cert_get_cert_store", "(CERT *,X509_STORE **,int)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "ssl_cert_get_cert_store", "(CERT *,X509_STORE **,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "ssl_cert_lookup_by_idx", "(size_t,SSL_CTX *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ssl_cert_lookup_by_idx", "(size_t,SSL_CTX *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ssl_cert_lookup_by_pkey", "(const EVP_PKEY *,size_t *,SSL_CTX *)", "", "Argument[*2]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ssl_cert_lookup_by_pkey", "(const EVP_PKEY *,size_t *,SSL_CTX *)", "", "Argument[*2]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ssl_cert_new", "(size_t)", "", "Argument[0]", "ReturnValue[*].Field[*ssl_pkey_num]", "value", "dfc-generated"] + - ["", "", True, "ssl_cert_select_current", "(CERT *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "ssl_cert_set1_chain", "(SSL_CONNECTION *,SSL_CTX *,stack_st_X509 *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ssl_cert_set_cert_cb", "(CERT *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ssl_cert_set_cert_cb", "(CERT *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ssl_cert_set_cert_cb", "(CERT *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*cert_cb]", "value", "dfc-generated"] + - ["", "", True, "ssl_cert_set_cert_cb", "(CERT *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ssl_check_srvr_ecc_cert_and_alg", "(X509 *,SSL_CONNECTION *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "ssl_choose_client_version", "(SSL_CONNECTION *,int,RAW_EXTENSION *)", "", "Argument[1]", "Argument[*0].Field[*version]", "value", "dfc-generated"] + - ["", "", True, "ssl_choose_server_version", "(SSL_CONNECTION *,CLIENTHELLO_MSG *,DOWNGRADE *)", "", "Argument[*1].Field[*legacy_version]", "Argument[*0].Field[*client_version]", "value", "dfc-generated"] + - ["", "", True, "ssl_cipher_get_evp", "(SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ssl_cipher_get_evp", "(SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ssl_cipher_get_evp", "(SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ssl_cipher_get_evp_cipher", "(SSL_CTX *,const SSL_CIPHER *,const EVP_CIPHER **)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ssl_cipher_get_evp_md_mac", "(SSL_CTX *,const SSL_CIPHER *,const EVP_MD **,int *,size_t *)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "ssl_cipher_get_evp_md_mac", "(SSL_CTX *,const SSL_CIPHER *,const EVP_MD **,int *,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ssl_cipher_get_evp_md_mac", "(SSL_CTX *,const SSL_CIPHER *,const EVP_MD **,int *,size_t *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "ssl_cipher_get_evp_md_mac", "(SSL_CTX *,const SSL_CIPHER *,const EVP_MD **,int *,size_t *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "ssl_cipher_ptr_id_cmp", "(const SSL_CIPHER *const *,const SSL_CIPHER *const *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ssl_cipher_ptr_id_cmp", "(const SSL_CIPHER *const *,const SSL_CIPHER *const *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ssl_create_cipher_list", "(SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *)", "", "Argument[*4]", "Argument[*5].Field[*sec_level]", "taint", "dfc-generated"] + - ["", "", True, "ssl_create_cipher_list", "(SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ssl_create_cipher_list", "(SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "ssl_create_cipher_list", "(SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *)", "", "Argument[4]", "Argument[*5].Field[*sec_level]", "taint", "dfc-generated"] + - ["", "", True, "ssl_ctx_add_large_cert_chain", "(OSSL_LIB_CTX *,SSL_CTX *,const char *)", "", "Argument[*0]", "Argument[*1].Field[**msg_callback_arg].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ssl_ctx_add_large_cert_chain", "(OSSL_LIB_CTX *,SSL_CTX *,const char *)", "", "Argument[*0]", "Argument[*1].Field[*msg_callback_arg].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "ssl_ctx_add_large_cert_chain", "(OSSL_LIB_CTX *,SSL_CTX *,const char *)", "", "Argument[0]", "Argument[*1].Field[**msg_callback_arg].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ssl_ctx_add_large_cert_chain", "(OSSL_LIB_CTX *,SSL_CTX *,const char *)", "", "Argument[0]", "Argument[*1].Field[*msg_callback_arg].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "ssl_ctx_set_excert", "(SSL_CTX *,SSL_EXCERT *)", "", "Argument[*1]", "Argument[*0].Field[**cert].Field[**cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ssl_ctx_set_excert", "(SSL_CTX *,SSL_EXCERT *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*cert_cb_arg]", "value", "dfc-generated"] + - ["", "", True, "ssl_dh_to_pkey", "(DH *)", "", "Argument[0]", "ReturnValue[*].Field[*pkey].Union[*legacy_pkey_st]", "value", "dfc-generated"] + - ["", "", True, "ssl_fill_hello_random", "(SSL_CONNECTION *,int,unsigned char *,size_t,DOWNGRADE)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ssl_fill_hello_random", "(SSL_CONNECTION *,int,unsigned char *,size_t,DOWNGRADE)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ssl_generate_pkey", "(SSL_CONNECTION *,EVP_PKEY *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "ssl_get_ciphers_by_id", "(SSL_CONNECTION *)", "", "Argument[*0].Field[**cipher_list_by_id]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ssl_get_ciphers_by_id", "(SSL_CONNECTION *)", "", "Argument[*0].Field[*cipher_list_by_id]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ssl_get_max_send_fragment", "(const SSL_CONNECTION *)", "", "Argument[*0].Field[*max_send_fragment]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ssl_get_min_max_version", "(const SSL_CONNECTION *,int *,int *,int *)", "", "Argument[*0].Field[*version]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ssl_get_min_max_version", "(const SSL_CONNECTION *,int *,int *,int *)", "", "Argument[*0].Field[*version]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ssl_get_min_max_version", "(const SSL_CONNECTION *,int *,int *,int *)", "", "Argument[*2]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ssl_get_min_max_version", "(const SSL_CONNECTION *,int *,int *,int *)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ssl_get_min_max_version", "(const SSL_CONNECTION *,int *,int *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ssl_get_prev_session", "(SSL_CONNECTION *,CLIENTHELLO_MSG *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "ssl_get_security_level_bits", "(const SSL *,const SSL_CTX *,int *)", "", "Argument[*0].Field[**cert].Field[*sec_level]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ssl_get_security_level_bits", "(const SSL *,const SSL_CTX *,int *)", "", "Argument[*0].Field[**cert].Field[*sec_level]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ssl_get_security_level_bits", "(const SSL *,const SSL_CTX *,int *)", "", "Argument[*1].Field[**cert].Field[*sec_level]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ssl_get_security_level_bits", "(const SSL *,const SSL_CTX *,int *)", "", "Argument[*1].Field[**cert].Field[*sec_level]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ssl_get_split_send_fragment", "(const SSL_CONNECTION *)", "", "Argument[*0].Field[*max_send_fragment]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ssl_get_split_send_fragment", "(const SSL_CONNECTION *)", "", "Argument[*0].Field[*split_send_fragment]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ssl_hmac_get0_EVP_MAC_CTX", "(SSL_HMAC *)", "", "Argument[*0].Field[**ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ssl_hmac_get0_EVP_MAC_CTX", "(SSL_HMAC *)", "", "Argument[*0].Field[*ctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ssl_hmac_get0_HMAC_CTX", "(SSL_HMAC *)", "", "Argument[*0].Field[**old_ctx]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ssl_hmac_get0_HMAC_CTX", "(SSL_HMAC *)", "", "Argument[*0].Field[*old_ctx]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ssl_hmac_init", "(SSL_HMAC *,void *,size_t,char *)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "ssl_hmac_init", "(SSL_HMAC *,void *,size_t,char *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ssl_hmac_init", "(SSL_HMAC *,void *,size_t,char *)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ssl_hmac_old_init", "(SSL_HMAC *,void *,size_t,char *)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "ssl_hmac_old_init", "(SSL_HMAC *,void *,size_t,char *)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ssl_hmac_old_init", "(SSL_HMAC *,void *,size_t,char *)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "ssl_load_groups", "(SSL_CTX *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "ssl_md", "(SSL_CTX *,int)", "", "Argument[*0].Field[**ssl_digest_methods]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "ssl_md", "(SSL_CTX *,int)", "", "Argument[*0].Field[*ssl_digest_methods]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ssl_md", "(SSL_CTX *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ssl_read_internal", "(SSL *,void *,size_t,size_t *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ssl_release_record", "(SSL_CONNECTION *,TLS_RECORD *,size_t)", "", "Argument[2]", "Argument[*1].Field[*length]", "taint", "dfc-generated"] + - ["", "", True, "ssl_release_record", "(SSL_CONNECTION *,TLS_RECORD *,size_t)", "", "Argument[2]", "Argument[*1].Field[*off]", "taint", "dfc-generated"] + - ["", "", True, "ssl_security_cert", "(SSL_CONNECTION *,SSL_CTX *,X509 *,int,int)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ssl_security_cert_chain", "(SSL_CONNECTION *,stack_st_X509 *,X509 *,int)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "ssl_security_cert_chain", "(SSL_CONNECTION *,stack_st_X509 *,X509 *,int)", "", "Argument[*1]", "Argument[2]", "taint", "df-generated"] + - ["", "", True, "ssl_security_cert_chain", "(SSL_CONNECTION *,stack_st_X509 *,X509 *,int)", "", "Argument[*2]", "Argument[2]", "value", "df-generated"] + - ["", "", True, "ssl_session_calculate_timeout", "(SSL_SESSION *)", "", "Argument[*0].Field[*time].Field[*t]", "Argument[*0].Field[*calc_timeout].Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "ssl_session_calculate_timeout", "(SSL_SESSION *)", "", "Argument[*0].Field[*timeout].Field[*t]", "Argument[*0].Field[*calc_timeout].Field[*t]", "taint", "dfc-generated"] + - ["", "", True, "ssl_session_dup", "(const SSL_SESSION *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "ssl_session_dup", "(const SSL_SESSION *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "ssl_set_client_hello_version", "(SSL_CONNECTION *)", "", "Argument[*0].Field[*version]", "Argument[*0].Field[*client_version]", "value", "dfc-generated"] + - ["", "", True, "ssl_set_sig_mask", "(uint32_t *,SSL_CONNECTION *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ssl_set_tmp_ecdh_groups", "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "ssl_set_tmp_ecdh_groups", "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "ssl_set_tmp_ecdh_groups", "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ssl_set_version_bound", "(int,int,int *)", "", "Argument[1]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "ssl_write_internal", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] + - ["", "", True, "ssl_write_internal", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "ssl_write_internal", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_eq", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_eq", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_eq_one", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_eq_word", "(const char *,int,const char *,const char *,const BIGNUM *,unsigned long)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_eq_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_even", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_ge", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_ge", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_ge_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_gt", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_gt", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_gt_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_le", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_le", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_le_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_lt", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_lt", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_lt_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_ne", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_ne", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_ne_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "test_BN_odd", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[**0]", "Argument[**2].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[*0]", "Argument[**2].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[0]", "Argument[**2].Field[*libctx]", "taint", "dfc-generated"] + - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[3]", "Argument[**2].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "test_fail_bignum_message", "(const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "test_fail_bignum_message", "(const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] + - ["", "", True, "test_fail_bignum_mono_message", "(const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] + - ["", "", True, "test_get_argument", "(size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[**0]", "Argument[**3].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[*0]", "Argument[**3].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[*4]", "Argument[**3].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[0]", "Argument[**3].Field[*libctx]", "taint", "dfc-generated"] + - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[4]", "Argument[**3].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "test_mk_file_path", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "test_mk_file_path", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "test_mk_file_path", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "test_mk_file_path", "(const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "test_output_bignum", "(const char *,const BIGNUM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "test_start_file", "(STANZA *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**test_file]", "value", "dfc-generated"] + - ["", "", True, "test_start_file", "(STANZA *,const char *)", "", "Argument[1]", "Argument[*0].Field[*test_file]", "value", "dfc-generated"] + - ["", "", True, "test_vprintf_stderr", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "test_vprintf_stdout", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "test_vprintf_taperr", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "test_vprintf_tapout", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls12_get_psigalgs", "(SSL_CONNECTION *,int,const uint16_t **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "tls12_get_psigalgs", "(SSL_CONNECTION *,int,const uint16_t **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "tls12_get_psigalgs", "(SSL_CONNECTION *,int,const uint16_t **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "tls13_alert_code", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "tls1_alert_code", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "tls1_allocate_write_buffers", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *)", "", "Argument[*3]", "Argument[*0].Field[*numwpipes]", "taint", "dfc-generated"] + - ["", "", True, "tls1_allocate_write_buffers", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *)", "", "Argument[2]", "Argument[*0].Field[*numwpipes]", "taint", "dfc-generated"] + - ["", "", True, "tls1_allocate_write_buffers", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *)", "", "Argument[3]", "Argument[*0].Field[*numwpipes]", "taint", "dfc-generated"] + - ["", "", True, "tls1_allocate_write_buffers", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[*0]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[*0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[*2]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[0]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[0]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[2]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[6]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[6]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "tls1_cbc_remove_padding_and_mac", "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)", "", "Argument[6]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_check_chain", "(SSL_CONNECTION *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] + - ["", "", True, "tls1_check_chain", "(SSL_CONNECTION *,X509 *,EVP_PKEY *,stack_st_X509 *,int)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tls1_check_ec_tmp_key", "(SSL_CONNECTION *,unsigned long)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "tls1_get0_implemented_groups", "(int,int,TLS_GROUP_INFO *,size_t,long,stack_st_OPENSSL_CSTRING *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "tls1_get_formatlist", "(SSL_CONNECTION *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "tls1_get_formatlist", "(SSL_CONNECTION *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls1_get_formatlist", "(SSL_CONNECTION *,const unsigned char **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "tls1_get_group_tuples", "(SSL_CONNECTION *,const size_t **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "tls1_get_group_tuples", "(SSL_CONNECTION *,const size_t **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls1_get_group_tuples", "(SSL_CONNECTION *,const size_t **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "tls1_get_requested_keyshare_groups", "(SSL_CONNECTION *,const uint16_t **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "tls1_get_requested_keyshare_groups", "(SSL_CONNECTION *,const uint16_t **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls1_get_requested_keyshare_groups", "(SSL_CONNECTION *,const uint16_t **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "tls1_get_supported_groups", "(SSL_CONNECTION *,const uint16_t **,size_t *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "tls1_get_supported_groups", "(SSL_CONNECTION *,const uint16_t **,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls1_get_supported_groups", "(SSL_CONNECTION *,const uint16_t **,size_t *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "tls1_group_id2name", "(SSL_CTX *,uint16_t)", "", "Argument[*0].Field[**group_list].Field[**tlsname]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "tls1_group_id2name", "(SSL_CTX *,uint16_t)", "", "Argument[*0].Field[**group_list].Field[*tlsname]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "tls1_group_id2nid", "(uint16_t,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tls1_group_id_lookup", "(SSL_CTX *,uint16_t)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "tls1_group_id_lookup", "(SSL_CTX *,uint16_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "tls1_initialise_write_packets", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *)", "", "Argument[*1].Field[*type]", "Argument[*5].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "tls1_initialise_write_packets", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *)", "", "Argument[*1].Field[*version]", "Argument[*3].Field[*version]", "value", "dfc-generated"] + - ["", "", True, "tls1_initialise_write_packets", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "tls1_initialise_write_packets", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "tls1_initialise_write_packets", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "tls1_lookup_md", "(SSL_CTX *,const SIGALG_LOOKUP *,const EVP_MD **)", "", "Argument[*0].Field[**ssl_digest_methods]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "tls1_lookup_md", "(SSL_CTX *,const SIGALG_LOOKUP *,const EVP_MD **)", "", "Argument[*0].Field[*ssl_digest_methods]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "tls1_lookup_md", "(SSL_CTX *,const SIGALG_LOOKUP *,const EVP_MD **)", "", "Argument[*1].Field[*hash_idx]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "tls1_save_u16", "(PACKET *,uint16_t **,size_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls1_set_groups", "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "tls1_set_groups", "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "tls1_set_groups", "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "tls1_set_groups", "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t)", "", "Argument[7]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "tls1_set_groups", "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t)", "", "Argument[7]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "tls1_set_groups_list", "(SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls1_set_groups_list", "(SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "tls1_set_groups_list", "(SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "tls1_set_raw_sigalgs", "(CERT *,const uint16_t *,size_t,int)", "", "Argument[*1]", "Argument[*0].Field[**client_sigalgs]", "value", "dfc-generated"] + - ["", "", True, "tls1_set_raw_sigalgs", "(CERT *,const uint16_t *,size_t,int)", "", "Argument[*1]", "Argument[*0].Field[**conf_sigalgs]", "value", "dfc-generated"] + - ["", "", True, "tls1_set_raw_sigalgs", "(CERT *,const uint16_t *,size_t,int)", "", "Argument[1]", "Argument[*0].Field[**client_sigalgs]", "taint", "dfc-generated"] + - ["", "", True, "tls1_set_raw_sigalgs", "(CERT *,const uint16_t *,size_t,int)", "", "Argument[1]", "Argument[*0].Field[**conf_sigalgs]", "taint", "dfc-generated"] + - ["", "", True, "tls1_set_raw_sigalgs", "(CERT *,const uint16_t *,size_t,int)", "", "Argument[2]", "Argument[*0].Field[*client_sigalgslen]", "value", "dfc-generated"] + - ["", "", True, "tls1_set_raw_sigalgs", "(CERT *,const uint16_t *,size_t,int)", "", "Argument[2]", "Argument[*0].Field[*conf_sigalgslen]", "value", "dfc-generated"] + - ["", "", True, "tls1_set_sigalgs", "(CERT *,const int *,size_t,int)", "", "Argument[2]", "Argument[*0].Field[*client_sigalgslen]", "taint", "dfc-generated"] + - ["", "", True, "tls1_set_sigalgs", "(CERT *,const int *,size_t,int)", "", "Argument[2]", "Argument[*0].Field[*conf_sigalgslen]", "taint", "dfc-generated"] + - ["", "", True, "tls1_shared_group", "(SSL_CONNECTION *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "tls_allocate_write_buffers_default", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *)", "", "Argument[2]", "Argument[*0].Field[*numwpipes]", "value", "dfc-generated"] + - ["", "", True, "tls_app_data_pending", "(OSSL_RECORD_LAYER *)", "", "Argument[*0].Field[*rrec].Field[*length]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tls_close_construct_packet", "(SSL_CONNECTION *,WPACKET *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "tls_collect_extensions", "(SSL_CONNECTION *,PACKET *,unsigned int,RAW_EXTENSION **,size_t *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_construct_certificate_request", "(SSL_CONNECTION *,WPACKET *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_client_certificate", "(SSL_CONNECTION *,WPACKET *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_client_hello", "(SSL_CONNECTION *,WPACKET *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_ctos_alpn", "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_ctos_client_cert_type", "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_ctos_cookie", "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_ctos_ec_pt_formats", "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_ctos_psk", "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_ctos_renegotiate", "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_ctos_server_cert_type", "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_new_session_ticket", "(SSL_CONNECTION *,WPACKET *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_next_proto", "(SSL_CONNECTION *,WPACKET *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_server_hello", "(SSL_CONNECTION *,WPACKET *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_stoc_alpn", "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_stoc_ec_pt_formats", "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_construct_stoc_renegotiate", "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_decrypt_ticket", "(SSL_CONNECTION *,const unsigned char *,size_t,const unsigned char *,size_t,SSL_SESSION **)", "", "Argument[*3]", "Argument[**5].Field[*session_id]", "value", "dfc-generated"] + - ["", "", True, "tls_decrypt_ticket", "(SSL_CONNECTION *,const unsigned char *,size_t,const unsigned char *,size_t,SSL_SESSION **)", "", "Argument[3]", "Argument[**5].Field[*session_id]", "taint", "dfc-generated"] + - ["", "", True, "tls_decrypt_ticket", "(SSL_CONNECTION *,const unsigned char *,size_t,const unsigned char *,size_t,SSL_SESSION **)", "", "Argument[4]", "Argument[**5].Field[*session_id_length]", "value", "dfc-generated"] + - ["", "", True, "tls_default_post_process_record", "(OSSL_RECORD_LAYER *,TLS_RL_RECORD *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "tls_default_read_n", "(OSSL_RECORD_LAYER *,size_t,size_t,int,int,size_t *)", "", "Argument[1]", "Argument[*0].Field[*packet_length]", "taint", "dfc-generated"] + - ["", "", True, "tls_default_read_n", "(OSSL_RECORD_LAYER *,size_t,size_t,int,int,size_t *)", "", "Argument[1]", "Argument[*5]", "value", "dfc-generated"] + - ["", "", True, "tls_do_compress", "(OSSL_RECORD_LAYER *,TLS_RL_RECORD *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "tls_do_uncompress", "(OSSL_RECORD_LAYER *,TLS_RL_RECORD *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "tls_get_alert_code", "(OSSL_RECORD_LAYER *)", "", "Argument[*0].Field[*alert]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "tls_get_compression", "(OSSL_RECORD_LAYER *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "tls_get_compression", "(OSSL_RECORD_LAYER *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "tls_get_max_records_default", "(OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *)", "", "Argument[*4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tls_get_max_records_default", "(OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tls_get_max_records_default", "(OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "tls_get_max_records_default", "(OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tls_get_max_records_multiblock", "(OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *)", "", "Argument[*4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tls_get_max_records_multiblock", "(OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tls_get_max_records_multiblock", "(OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "tls_get_max_records_multiblock", "(OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *)", "", "Argument[4]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tls_get_message_body", "(SSL_CONNECTION *,size_t *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_get_message_header", "(SSL_CONNECTION *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_get_peer_pkey", "(const SSL_CONNECTION *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "tls_get_peer_pkey", "(const SSL_CONNECTION *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "tls_get_ticket_from_client", "(SSL_CONNECTION *,CLIENTHELLO_MSG *,SSL_SESSION **)", "", "Argument[*1].Field[*session_id]", "Argument[**2].Field[*session_id]", "value", "dfc-generated"] + - ["", "", True, "tls_get_ticket_from_client", "(SSL_CONNECTION *,CLIENTHELLO_MSG *,SSL_SESSION **)", "", "Argument[*1].Field[*session_id_len]", "Argument[**2].Field[*session_id_length]", "value", "dfc-generated"] + - ["", "", True, "tls_initialise_write_packets_default", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *)", "", "Argument[*1].Field[*type]", "Argument[*5].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "tls_initialise_write_packets_default", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "tls_initialise_write_packets_default", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[**16]", "Argument[**17].Field[***cbarg]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[*0]", "Argument[**17].Field[**libctx]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[*16]", "Argument[**17].Field[**cbarg]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[*1]", "Argument[**17].Field[**propq]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[*8]", "Argument[**17].Field[**md]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[0]", "Argument[**17].Field[*libctx]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[10]", "Argument[**17].Field[*prev]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[11]", "Argument[**17].Field[*bio]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[12]", "Argument[**17].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[13]", "Argument[*13]", "taint", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[14]", "Argument[*14]", "taint", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[15]", "Argument[*15]", "taint", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[16]", "Argument[**17].Field[*cbarg]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[1]", "Argument[**17].Field[*propq]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[2]", "Argument[**17].Field[*version]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[3]", "Argument[**17].Field[*role]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[4]", "Argument[**17].Field[*direction]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[5]", "Argument[**17].Field[*level]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[7]", "Argument[**17].Field[*taglen]", "value", "dfc-generated"] + - ["", "", True, "tls_int_new_record_layer", "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)", "", "Argument[8]", "Argument[**17].Field[*md]", "value", "dfc-generated"] + - ["", "", True, "tls_parse_all_extensions", "(SSL_CONNECTION *,int,RAW_EXTENSION *,X509 *,size_t,int)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "tls_parse_ctos_alpn", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_client_cert_type", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_cookie", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_ec_pt_formats", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_key_share", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_psk", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_psk_kex_modes", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_server_cert_type", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_server_name", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_sig_algs", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_sig_algs_cert", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_srp", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_status_request", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_ctos_supported_groups", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_extension", "(SSL_CONNECTION *,TLSEXT_INDEX,int,RAW_EXTENSION *,X509 *,size_t)", "", "Argument[1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "tls_parse_extension", "(SSL_CONNECTION *,TLSEXT_INDEX,int,RAW_EXTENSION *,X509 *,size_t)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "tls_parse_stoc_alpn", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "tls_parse_stoc_client_cert_type", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "tls_parse_stoc_cookie", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_stoc_ec_pt_formats", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_stoc_key_share", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_stoc_npn", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_parse_stoc_renegotiate", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_parse_stoc_sct", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "tls_parse_stoc_server_cert_type", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "tls_parse_stoc_supported_versions", "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "tls_post_encryption_processing_default", "(OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *)", "", "Argument[*4]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "tls_post_encryption_processing_default", "(OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *)", "", "Argument[1]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "tls_post_encryption_processing_default", "(OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *)", "", "Argument[1]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "tls_prepare_for_encryption_default", "(OSSL_RECORD_LAYER *,size_t,WPACKET *,TLS_RL_RECORD *)", "", "Argument[*3].Field[**data]", "Argument[*3].Field[**input]", "value", "dfc-generated"] + - ["", "", True, "tls_prepare_for_encryption_default", "(OSSL_RECORD_LAYER *,size_t,WPACKET *,TLS_RL_RECORD *)", "", "Argument[*3].Field[*data]", "Argument[*3].Field[*input]", "value", "dfc-generated"] + - ["", "", True, "tls_prepare_record_header_default", "(OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **)", "", "Argument[*4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "tls_prepare_record_header_default", "(OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **)", "", "Argument[4]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "tls_prepare_record_header_default", "(OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_certificate_request", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_client_certificate", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_client_hello", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_client_key_exchange", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_client_rpk", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_key_exchange", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_new_session_ticket", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_next_proto", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_rpk", "(SSL_CONNECTION *,PACKET *,EVP_PKEY **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_server_certificate", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_server_hello", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_process_server_rpk", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] + - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[*5]", "taint", "df-generated"] + - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[*6]", "taint", "df-generated"] + - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[*7]", "taint", "df-generated"] + - ["", "", True, "tls_set1_bio", "(OSSL_RECORD_LAYER *,BIO *)", "", "Argument[1]", "Argument[*0].Field[*bio]", "value", "dfc-generated"] + - ["", "", True, "tls_set_first_handshake", "(OSSL_RECORD_LAYER *,int)", "", "Argument[1]", "Argument[*0].Field[*is_first_handshake]", "value", "dfc-generated"] + - ["", "", True, "tls_set_max_frag_len", "(OSSL_RECORD_LAYER *,size_t)", "", "Argument[1]", "Argument[*0].Field[*max_frag_len]", "value", "dfc-generated"] + - ["", "", True, "tls_set_max_pipelines", "(OSSL_RECORD_LAYER *,size_t)", "", "Argument[1]", "Argument[*0].Field[*max_pipelines]", "value", "dfc-generated"] + - ["", "", True, "tls_set_options", "(OSSL_RECORD_LAYER *,const OSSL_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tls_set_plain_alerts", "(OSSL_RECORD_LAYER *,int)", "", "Argument[1]", "Argument[*0].Field[*allow_plain_alerts]", "value", "dfc-generated"] + - ["", "", True, "tls_setup_write_buffer", "(OSSL_RECORD_LAYER *,size_t,size_t,size_t)", "", "Argument[1]", "Argument[*0].Field[*numwpipes]", "value", "dfc-generated"] + - ["", "", True, "tls_unprocessed_read_pending", "(OSSL_RECORD_LAYER *)", "", "Argument[*0].Field[*rbuf].Field[*left]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tls_write_records_default", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t)", "", "Argument[*1].Field[*buflen]", "Argument[*0].Field[**compctx].Field[*compress_in]", "taint", "dfc-generated"] + - ["", "", True, "tls_write_records_multiblock", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t)", "", "Argument[*1].Field[*buflen]", "Argument[*0].Field[**compctx].Field[*compress_in]", "taint", "dfc-generated"] + - ["", "", True, "tls_write_records_multiblock", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t)", "", "Argument[2]", "Argument[*0].Field[*sequence]", "taint", "dfc-generated"] + - ["", "", True, "tolower", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "toupper", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "ts_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "ts_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "unpack_revinfo", "(ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *)", "", "Argument[*4]", "Argument[**0].Field[**data]", "value", "dfc-generated"] + - ["", "", True, "unpack_revinfo", "(ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *)", "", "Argument[*4]", "Argument[**3].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "unpack_revinfo", "(ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "unpack_revinfo", "(ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *)", "", "Argument[4]", "Argument[**0].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "unpack_revinfo", "(ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *)", "", "Argument[4]", "Argument[**3].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "v2i_ASN1_BIT_STRING", "(X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *)", "", "Argument[*0].Field[**usr_data].Field[*bitnum]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "v2i_ASN1_BIT_STRING", "(X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *)", "", "Argument[*0].Field[**usr_data].Field[*bitnum]", "ReturnValue[*].Field[*length]", "taint", "dfc-generated"] + - ["", "", True, "v2i_GENERAL_NAMES", "(const X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *)", "", "Argument[*2].Field[*num]", "ReturnValue[*].Field[*num_alloc]", "taint", "dfc-generated"] + - ["", "", True, "v2i_GENERAL_NAME_ex", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "v2i_GENERAL_NAME_ex", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "v2i_GENERAL_NAME_ex", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] + - ["", "", True, "valid_asn1_encoding", "(const OSSL_CMP_MSG *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] + - ["", "", True, "verify_callback", "(int,X509_STORE_CTX *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "verify_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "verify_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "version_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "version_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "wait_until_sock_readable", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "x509_ctrl_string", "(X509 *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**distinguishing_id].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "x509_ctrl_string", "(X509 *,const char *)", "", "Argument[1]", "Argument[*0].Field[**distinguishing_id].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "x509_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "x509_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "x509_req_ctrl_string", "(X509_REQ *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**distinguishing_id].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "x509_req_ctrl_string", "(X509_REQ *,const char *)", "", "Argument[1]", "Argument[*0].Field[**distinguishing_id].Field[**data]", "taint", "dfc-generated"] + - ["", "", True, "x509v3_add_len_value_uchar", "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**3].Field[***data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "x509v3_add_len_value_uchar", "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)", "", "Argument[*0]", "Argument[**3].Field[**data].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "x509v3_add_len_value_uchar", "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)", "", "Argument[*1]", "Argument[**3].Field[***data].Field[**value]", "value", "dfc-generated"] + - ["", "", True, "x509v3_add_len_value_uchar", "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)", "", "Argument[*1]", "Argument[**3].Field[**data].Field[**value]", "value", "dfc-generated"] + - ["", "", True, "x509v3_add_len_value_uchar", "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**3].Field[***data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "x509v3_add_len_value_uchar", "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)", "", "Argument[0]", "Argument[**3].Field[**data].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "x509v3_add_len_value_uchar", "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)", "", "Argument[1]", "Argument[**3].Field[***data].Field[**value]", "taint", "dfc-generated"] + - ["", "", True, "x509v3_add_len_value_uchar", "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)", "", "Argument[1]", "Argument[**3].Field[**data].Field[**value]", "taint", "dfc-generated"] + - ["", "", True, "x509v3_add_len_value_uchar", "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] From de31595cd2ef675745da835204d5eb35d834af4f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 14 May 2025 11:08:21 +0100 Subject: [PATCH 435/656] C++: Add generated sqlite models. --- cpp/ql/lib/ext/generated/sqlite.model.yml | 990 ++++++++++++++++++++++ 1 file changed, 990 insertions(+) create mode 100644 cpp/ql/lib/ext/generated/sqlite.model.yml diff --git a/cpp/ql/lib/ext/generated/sqlite.model.yml b/cpp/ql/lib/ext/generated/sqlite.model.yml new file mode 100644 index 00000000000..e1e91a4a848 --- /dev/null +++ b/cpp/ql/lib/ext/generated/sqlite.model.yml @@ -0,0 +1,990 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: summaryModel + data: + - ["", "", True, "Action_add", "(action **,e_action,symbol *,char *)", "", "Argument[**0]", "Argument[**0].Field[**next]", "value", "dfc-generated"] + - ["", "", True, "Action_add", "(action **,e_action,symbol *,char *)", "", "Argument[*0]", "Argument[**0].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "Action_add", "(action **,e_action,symbol *,char *)", "", "Argument[0]", "Argument[**0].Field[*next]", "taint", "dfc-generated"] + - ["", "", True, "Action_add", "(action **,e_action,symbol *,char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "Configcmp", "(const char *,const char *)", "", "Argument[*0].Field[**rp].Field[*index]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Configcmp", "(const char *,const char *)", "", "Argument[*0].Field[*dot]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Configcmp", "(const char *,const char *)", "", "Argument[*1].Field[**rp].Field[*index]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Configcmp", "(const char *,const char *)", "", "Argument[*1].Field[*dot]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Configlist_add", "(rule *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**rp]", "value", "dfc-generated"] + - ["", "", True, "Configlist_add", "(rule *,int)", "", "Argument[0]", "ReturnValue[*].Field[*rp]", "value", "dfc-generated"] + - ["", "", True, "Configlist_add", "(rule *,int)", "", "Argument[1]", "ReturnValue[*].Field[*dot]", "value", "dfc-generated"] + - ["", "", True, "Configlist_addbasis", "(rule *,int)", "", "Argument[*0]", "ReturnValue[*].Field[**rp]", "value", "dfc-generated"] + - ["", "", True, "Configlist_addbasis", "(rule *,int)", "", "Argument[0]", "ReturnValue[*].Field[*rp]", "value", "dfc-generated"] + - ["", "", True, "Configlist_addbasis", "(rule *,int)", "", "Argument[1]", "ReturnValue[*].Field[*dot]", "value", "dfc-generated"] + - ["", "", True, "JimDefaultAllocator", "(void *,size_t)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "JimDefaultAllocator", "(void *,size_t)", "", "Argument[*0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "JimDefaultAllocator", "(void *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "JimDefaultAllocator", "(void *,size_t)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] + - ["", "", True, "JimDefaultAllocator", "(void *,size_t)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "JimStringReplaceObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,Jim_Obj *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "JimStringReplaceObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,Jim_Obj *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_AioFilehandle", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_AioFilehandle", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_AppendObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *)", "", "Argument[*2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_AppendString", "(Jim_Interp *,Jim_Obj *,const char *,int)", "", "Argument[*2]", "Argument[*1].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_AppendString", "(Jim_Interp *,Jim_Obj *,const char *,int)", "", "Argument[2]", "Argument[*1].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_AppendString", "(Jim_Interp *,Jim_Obj *,const char *,int)", "", "Argument[3]", "Argument[*1].Field[*length]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CallSubCmd", "(Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *)", "", "Argument[*3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CheckShowCommands", "(Jim_Interp *,Jim_Obj *,const char *const *)", "", "Argument[**2]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CheckShowCommands", "(Jim_Interp *,Jim_Obj *,const char *const *)", "", "Argument[**2]", "Argument[*0].Field[**liveList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CheckShowCommands", "(Jim_Interp *,Jim_Obj *,const char *const *)", "", "Argument[*2]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "Jim_CheckShowCommands", "(Jim_Interp *,Jim_Obj *,const char *const *)", "", "Argument[*2]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CheckShowCommands", "(Jim_Interp *,Jim_Obj *,const char *const *)", "", "Argument[*2]", "Argument[*0].Field[**liveList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CheckShowCommands", "(Jim_Interp *,Jim_Obj *,const char *const *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CheckShowCommands", "(Jim_Interp *,Jim_Obj *,const char *const *)", "", "Argument[2]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CheckShowCommands", "(Jim_Interp *,Jim_Obj *,const char *const *)", "", "Argument[2]", "Argument[*0].Field[**liveList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*1]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*3]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*3]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[1]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[1]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[2]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[2]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[2]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[3]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[3]", "Argument[*2]", "value", "df-generated"] + - ["", "", True, "Jim_CommandMatchObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[3]", "Argument[*3]", "value", "df-generated"] + - ["", "", True, "Jim_CompareStringImmediate", "(Jim_Interp *,Jim_Obj *,const char *)", "", "Argument[*2]", "Argument[*1].Field[*internalRep].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "Jim_CompareStringImmediate", "(Jim_Interp *,Jim_Obj *,const char *)", "", "Argument[2]", "Argument[*1].Field[*internalRep].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "Jim_ConcatObj", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[**2].Field[*length]", "ReturnValue[*].Field[*length]", "taint", "dfc-generated"] + - ["", "", True, "Jim_ConcatObj", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "Jim_ConcatObj", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[1]", "ReturnValue[*].Field[*length]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CreateCommand", "(Jim_Interp *,const char *,Jim_CmdProc *,void *,Jim_DelCmdProc *)", "", "Argument[*1]", "Argument[*0].Field[**freeList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_CreateCommand", "(Jim_Interp *,const char *,Jim_CmdProc *,void *,Jim_DelCmdProc *)", "", "Argument[*1]", "Argument[*0].Field[**liveList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_CreateCommand", "(Jim_Interp *,const char *,Jim_CmdProc *,void *,Jim_DelCmdProc *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CreateCommand", "(Jim_Interp *,const char *,Jim_CmdProc *,void *,Jim_DelCmdProc *)", "", "Argument[1]", "Argument[*0].Field[**liveList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_CreateCommandObj", "(Jim_Interp *,Jim_Obj *,Jim_CmdProc *,void *,Jim_DelCmdProc *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_CreateCommandObj", "(Jim_Interp *,Jim_Obj *,Jim_CmdProc *,void *,Jim_DelCmdProc *)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_DeleteCommand", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_DeleteCommand", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_DictAddElement", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_DictAddElement", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_DictInfo", "(Jim_Interp *,Jim_Obj *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_DictKey", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj **,int)", "", "Argument[*0]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "Jim_DictKey", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj **,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_DictKey", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj **,int)", "", "Argument[*0]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "Jim_DictKey", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj **,int)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] + - ["", "", True, "Jim_DictKeysVector", "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "Jim_DictKeysVector", "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "Jim_DictKeysVector", "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int)", "", "Argument[1]", "Argument[*4]", "value", "dfc-generated"] + - ["", "", True, "Jim_DictMatchTypes", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,int,int)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_DictMerge", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "Jim_DictPairs", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "Jim_DictSize", "(Jim_Interp *,Jim_Obj *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_DuplicateObj", "(Jim_Interp *,Jim_Obj *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_DuplicateObj", "(Jim_Interp *,Jim_Obj *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_DuplicateObj", "(Jim_Interp *,Jim_Obj *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_Eval", "(Jim_Interp *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_Eval", "(Jim_Interp *,const char *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_Eval", "(Jim_Interp *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalExpression", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalExpression", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalFile", "(Jim_Interp *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**currentFilenameObj].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalFile", "(Jim_Interp *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**freeList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalFile", "(Jim_Interp *,const char *)", "", "Argument[1]", "Argument[*0].Field[**currentFilenameObj].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_EvalFile", "(Jim_Interp *,const char *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_EvalFileGlobal", "(Jim_Interp *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**currentFilenameObj].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalFileGlobal", "(Jim_Interp *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**freeList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalFileGlobal", "(Jim_Interp *,const char *)", "", "Argument[1]", "Argument[*0].Field[**currentFilenameObj].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_EvalFileGlobal", "(Jim_Interp *,const char *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_EvalGlobal", "(Jim_Interp *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_EvalGlobal", "(Jim_Interp *,const char *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalGlobal", "(Jim_Interp *,const char *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObj", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**evalFrame].Field[*scriptObj]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalObj", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalObj", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalObjList", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalObjList", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[**3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[**3]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[*3]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[*3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[*3]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[1]", "Argument[**3]", "value", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[3]", "Argument[**3]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[3]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjPrefix", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[3]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[**2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[1]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalObjVector", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_EvalSource", "(Jim_Interp *,const char *,int,const char *)", "", "Argument[*3]", "Argument[*0].Field[**freeList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_EvalSource", "(Jim_Interp *,const char *,int,const char *)", "", "Argument[3]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_FileStoreStatData", "(Jim_Interp *,Jim_Obj *,const jim_stat_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Jim_FindHashEntry", "(Jim_HashTable *,const void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_FindHashEntry", "(Jim_HashTable *,const void *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_FormatString", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)", "", "Argument[*3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "Jim_FreeObj", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_FreeObj", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_GenHashFunction", "(const unsigned char *,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Jim_GenHashFunction", "(const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Jim_GenHashFunction", "(const unsigned char *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Jim_GetBoolFromExpr", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_GetBoolFromExpr", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_GetBoolFromExpr", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_GetBoolFromExpr", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_GetBoolean", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*1].Field[*internalRep].Union[*(unnamed class/struct/union)]", "Argument[*2]", "value", "dfc-generated"] + - ["", "", True, "Jim_GetCallFrameByLevel", "(Jim_Interp *,Jim_Obj *)", "", "Argument[*1].Field[**bytes]", "Argument[*1].Field[*internalRep].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "Jim_GetCallFrameByLevel", "(Jim_Interp *,Jim_Obj *)", "", "Argument[*1].Field[*bytes]", "Argument[*1].Field[*internalRep].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "Jim_GetCommand", "(Jim_Interp *,Jim_Obj *,int)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_GetCommand", "(Jim_Interp *,Jim_Obj *,int)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_GetDouble", "(Jim_Interp *,Jim_Obj *,double *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_GetEnum", "(Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int)", "", "Argument[**2]", "Argument[*1].Field[*internalRep].Union[**(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "Jim_GetEnum", "(Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int)", "", "Argument[*2]", "Argument[*1].Field[*internalRep].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "Jim_GetEnum", "(Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int)", "", "Argument[*2]", "Argument[*1].Field[*internalRep].Union[**(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "Jim_GetEnum", "(Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int)", "", "Argument[2]", "Argument[*1].Field[*internalRep].Union[*(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "Jim_GetEnum", "(Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int)", "", "Argument[2]", "Argument[*1].Field[*internalRep].Union[**(unnamed class/struct/union)]", "taint", "dfc-generated"] + - ["", "", True, "Jim_GetExitCode", "(Jim_Interp *)", "", "Argument[*0].Field[*exitCode]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_GetGlobalVariable", "(Jim_Interp *,Jim_Obj *,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "Jim_GetGlobalVariable", "(Jim_Interp *,Jim_Obj *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_GetGlobalVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_GetGlobalVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_GetGlobalVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_GetGlobalVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_GetGlobalVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_GetGlobalVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_GetGlobalVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_GetGlobalVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_GetHashTableIterator", "(Jim_HashTable *)", "", "Argument[*0]", "ReturnValue[*].Field[**ht]", "value", "dfc-generated"] + - ["", "", True, "Jim_GetHashTableIterator", "(Jim_HashTable *)", "", "Argument[0]", "ReturnValue[*].Field[*ht]", "value", "dfc-generated"] + - ["", "", True, "Jim_GetIndex", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_GetIndex", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_GetIndex", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_GetIndex", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_GetIndex", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_GetLong", "(Jim_Interp *,Jim_Obj *,long *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_GetReturnCode", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_GetSourceInfo", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_GetSourceInfo", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_GetSourceInfo", "(Jim_Interp *,Jim_Obj *,int *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_GetString", "(Jim_Obj *,int *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_GetString", "(Jim_Obj *,int *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_GetString", "(Jim_Obj *,int *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_GetVariable", "(Jim_Interp *,Jim_Obj *,int)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "Jim_GetVariable", "(Jim_Interp *,Jim_Obj *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_GetVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_GetVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_GetVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_GetVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_GetVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[*1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_GetVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_GetVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_GetVariableStr", "(Jim_Interp *,const char *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_GetWide", "(Jim_Interp *,Jim_Obj *,long *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_GetWideExpr", "(Jim_Interp *,Jim_Obj *,long *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_GetWideExpr", "(Jim_Interp *,Jim_Obj *,long *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_GetWideExpr", "(Jim_Interp *,Jim_Obj *,long *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_GetWideExpr", "(Jim_Interp *,Jim_Obj *,long *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_GetWideExpr", "(Jim_Interp *,Jim_Obj *,long *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_GetWideExpr", "(Jim_Interp *,Jim_Obj *,long *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_InitHashTable", "(Jim_HashTable *,const Jim_HashTableType *,void *)", "", "Argument[**2]", "Argument[*0].Field[***privdata]", "value", "dfc-generated"] + - ["", "", True, "Jim_InitHashTable", "(Jim_HashTable *,const Jim_HashTableType *,void *)", "", "Argument[*1]", "Argument[*0].Field[**type]", "value", "dfc-generated"] + - ["", "", True, "Jim_InitHashTable", "(Jim_HashTable *,const Jim_HashTableType *,void *)", "", "Argument[*2]", "Argument[*0].Field[**privdata]", "value", "dfc-generated"] + - ["", "", True, "Jim_InitHashTable", "(Jim_HashTable *,const Jim_HashTableType *,void *)", "", "Argument[1]", "Argument[*0].Field[*type]", "value", "dfc-generated"] + - ["", "", True, "Jim_InitHashTable", "(Jim_HashTable *,const Jim_HashTableType *,void *)", "", "Argument[2]", "Argument[*0].Field[*privdata]", "value", "dfc-generated"] + - ["", "", True, "Jim_IntHashFunction", "(unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Jim_InteractivePrompt", "(Jim_Interp *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_Length", "(Jim_Obj *)", "", "Argument[*0].Field[*length]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_ListAppendElement", "(Jim_Interp *,Jim_Obj *,Jim_Obj *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_ListAppendElement", "(Jim_Interp *,Jim_Obj *,Jim_Obj *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_ListAppendList", "(Jim_Interp *,Jim_Obj *,Jim_Obj *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_ListAppendList", "(Jim_Interp *,Jim_Obj *,Jim_Obj *)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "Jim_ListGetIndex", "(Jim_Interp *,Jim_Obj *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Jim_ListIndex", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj **,int)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "Jim_ListIndex", "(Jim_Interp *,Jim_Obj *,int,Jim_Obj **,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "Jim_ListInsertElements", "(Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_ListInsertElements", "(Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *)", "", "Argument[*4]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "Jim_ListInsertElements", "(Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "Jim_ListInsertElements", "(Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *)", "", "Argument[3]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "Jim_ListInsertElements", "(Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *)", "", "Argument[4]", "Argument[**4]", "taint", "df-generated"] + - ["", "", True, "Jim_ListJoin", "(Jim_Interp *,Jim_Obj *,const char *,int)", "", "Argument[*2]", "ReturnValue[*].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_ListJoin", "(Jim_Interp *,Jim_Obj *,const char *,int)", "", "Argument[2]", "ReturnValue[*].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_ListJoin", "(Jim_Interp *,Jim_Obj *,const char *,int)", "", "Argument[3]", "ReturnValue[*].Field[*length]", "taint", "dfc-generated"] + - ["", "", True, "Jim_ListLength", "(Jim_Interp *,Jim_Obj *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_ListRange", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "Jim_ListRange", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_ListSetIndex", "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_ListSetIndex", "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_ListSetIndex", "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[*result]", "value", "dfc-generated"] + - ["", "", True, "Jim_MakeGlobalNamespaceName", "(Jim_Interp *,Jim_Obj *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "Jim_MakeGlobalNamespaceName", "(Jim_Interp *,Jim_Obj *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_MakeTempFile", "(Jim_Interp *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[**freeList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_MakeTempFile", "(Jim_Interp *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[**result].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_MakeTempFile", "(Jim_Interp *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_MakeTempFile", "(Jim_Interp *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[**result].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_NewDictObj", "(Jim_Interp *,Jim_Obj *const *,int)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "Jim_NewDoubleObj", "(Jim_Interp *,double)", "", "Argument[1]", "ReturnValue[*].Field[*internalRep].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "Jim_NewIntObj", "(Jim_Interp *,long)", "", "Argument[1]", "ReturnValue[*].Field[*internalRep].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "Jim_NewListObj", "(Jim_Interp *,Jim_Obj *const *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_NewListObj", "(Jim_Interp *,Jim_Obj *const *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_NewListObj", "(Jim_Interp *,Jim_Obj *const *,int)", "", "Argument[*1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "Jim_NewListObj", "(Jim_Interp *,Jim_Obj *const *,int)", "", "Argument[1]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "Jim_NewListObj", "(Jim_Interp *,Jim_Obj *const *,int)", "", "Argument[2]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "Jim_NewObj", "(Jim_Interp *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_NewObj", "(Jim_Interp *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_NewStringObj", "(Jim_Interp *,const char *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_NewStringObj", "(Jim_Interp *,const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_NewStringObj", "(Jim_Interp *,const char *,int)", "", "Argument[2]", "ReturnValue[*].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "Jim_NewStringObjNoAlloc", "(Jim_Interp *,char *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_NewStringObjNoAlloc", "(Jim_Interp *,char *,int)", "", "Argument[1]", "ReturnValue[*].Field[*bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_NewStringObjNoAlloc", "(Jim_Interp *,char *,int)", "", "Argument[2]", "ReturnValue[*].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "Jim_NewStringObjUtf8", "(Jim_Interp *,const char *,int)", "", "Argument[*1]", "ReturnValue[*].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_NewStringObjUtf8", "(Jim_Interp *,const char *,int)", "", "Argument[1]", "ReturnValue[*].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_NewStringObjUtf8", "(Jim_Interp *,const char *,int)", "", "Argument[2]", "ReturnValue[*].Field[*length]", "value", "dfc-generated"] + - ["", "", True, "Jim_NextHashEntry", "(Jim_HashTableIterator *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_NextHashEntry", "(Jim_HashTableIterator *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_ParseSubCmd", "(Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "Jim_ParseSubCmd", "(Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *)", "", "Argument[*3]", "Argument[**3]", "taint", "dfc-generated"] + - ["", "", True, "Jim_ParseSubCmd", "(Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Jim_ParseSubCmd", "(Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_ParseSubCmd", "(Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "Jim_ReaddirCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "Jim_RegexpCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[**2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_RegexpCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "Jim_RegexpCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "Jim_RegexpCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_RegexpCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "Jim_RegexpCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_RegsubCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[**2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_RegsubCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "Jim_RegsubCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_RegsubCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "Jim_RegsubCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_RegsubCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[**2]", "taint", "df-generated"] + - ["", "", True, "Jim_RegsubCmd", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_RenameCommand", "(Jim_Interp *,Jim_Obj *,Jim_Obj *)", "", "Argument[2]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_RenameCommand", "(Jim_Interp *,Jim_Obj *,Jim_Obj *)", "", "Argument[2]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_ReturnCode", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Jim_ScanString", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_ScanString", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_ScanString", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_ScriptIsComplete", "(Jim_Interp *,Jim_Obj *,char *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Jim_SetDictKeysVector", "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetDictKeysVector", "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetDictKeysVector", "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetDictKeysVector", "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int)", "", "Argument[1]", "Argument[*0].Field[*result]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetGlobalVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[*1]", "Argument[*0].Field[**freeList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetGlobalVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[*1]", "Argument[*0].Field[**liveList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetGlobalVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[*1]", "Argument[*0].Field[**result].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetGlobalVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetGlobalVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**liveList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetGlobalVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**result].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetResultFormatted", "(Jim_Interp *,const char *,...)", "", "Argument[*1]", "Argument[*0].Field[**result].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetResultFormatted", "(Jim_Interp *,const char *,...)", "", "Argument[1]", "Argument[*0].Field[**result].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetVariable", "(Jim_Interp *,Jim_Obj *,Jim_Obj *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_SetVariableLink", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_CallFrame *)", "", "Argument[2]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetVariableLink", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_CallFrame *)", "", "Argument[2]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[*1]", "Argument[*0].Field[**freeList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[*1]", "Argument[*0].Field[**liveList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[*1]", "Argument[*0].Field[**result].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**liveList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStr", "(Jim_Interp *,const char *,Jim_Obj *)", "", "Argument[1]", "Argument[*0].Field[**result].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStrWithStr", "(Jim_Interp *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**freeList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStrWithStr", "(Jim_Interp *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**liveList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStrWithStr", "(Jim_Interp *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**result].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStrWithStr", "(Jim_Interp *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**freeList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStrWithStr", "(Jim_Interp *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStrWithStr", "(Jim_Interp *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[**liveList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStrWithStr", "(Jim_Interp *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[**result].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SetVariableStrWithStr", "(Jim_Interp *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SignalId", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "Jim_StackLen", "(Jim_Stack *)", "", "Argument[*0].Field[*len]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_StackPeek", "(Jim_Stack *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_StackPeek", "(Jim_Stack *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "Jim_StackPeek", "(Jim_Stack *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_StackPop", "(Jim_Stack *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_StackPop", "(Jim_Stack *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "Jim_StackPop", "(Jim_Stack *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Jim_StackPush", "(Jim_Stack *,void *)", "", "Argument[*1]", "Argument[*0].Field[***vector]", "value", "dfc-generated"] + - ["", "", True, "Jim_StackPush", "(Jim_Stack *,void *)", "", "Argument[1]", "Argument[*0].Field[**vector]", "value", "dfc-generated"] + - ["", "", True, "Jim_StrDup", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "Jim_StrDup", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "Jim_StrDupLen", "(const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "Jim_StrDupLen", "(const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "Jim_String", "(Jim_Obj *)", "", "Argument[*0].Field[**bytes]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "Jim_String", "(Jim_Obj *)", "", "Argument[*0].Field[*bytes]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_StringByteRangeObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "Jim_StringByteRangeObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_StringRangeObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "Jim_StringRangeObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_StringToDouble", "(const char *,double *)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Jim_StringToDouble", "(const char *,double *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Jim_StringToWide", "(const char *,long *,int)", "", "Argument[*0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Jim_StringToWide", "(const char *,long *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SubCmdProc", "(Jim_Interp *,int,Jim_Obj *const *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "Jim_SubstObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj **,int)", "", "Argument[1]", "Argument[*0].Field[**freeList].Field[*prevObjPtr]", "value", "dfc-generated"] + - ["", "", True, "Jim_SubstObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj **,int)", "", "Argument[1]", "Argument[*0].Field[*freeList]", "value", "dfc-generated"] + - ["", "", True, "Jim_SubstObj", "(Jim_Interp *,Jim_Obj *,Jim_Obj **,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "Jim_UnsetVariable", "(Jim_Interp *,Jim_Obj *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Jim_Utf8Length", "(Jim_Interp *,Jim_Obj *)", "", "Argument[*1].Field[*length]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "Jim_WrongNumArgs", "(Jim_Interp *,int,Jim_Obj *const *,const char *)", "", "Argument[*3]", "Argument[*0].Field[**freeList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_WrongNumArgs", "(Jim_Interp *,int,Jim_Obj *const *,const char *)", "", "Argument[*3]", "Argument[*0].Field[**liveList].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_WrongNumArgs", "(Jim_Interp *,int,Jim_Obj *const *,const char *)", "", "Argument[*3]", "Argument[*0].Field[**result].Field[**bytes]", "value", "dfc-generated"] + - ["", "", True, "Jim_WrongNumArgs", "(Jim_Interp *,int,Jim_Obj *const *,const char *)", "", "Argument[3]", "Argument[*0].Field[**freeList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_WrongNumArgs", "(Jim_Interp *,int,Jim_Obj *const *,const char *)", "", "Argument[3]", "Argument[*0].Field[**liveList].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_WrongNumArgs", "(Jim_Interp *,int,Jim_Obj *const *,const char *)", "", "Argument[3]", "Argument[*0].Field[**result].Field[**bytes]", "taint", "dfc-generated"] + - ["", "", True, "Jim_bootstrapInit", "(Jim_Interp *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_globInit", "(Jim_Interp *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_initjimshInit", "(Jim_Interp *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_stdlibInit", "(Jim_Interp *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Jim_tclcompatInit", "(Jim_Interp *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "OptInit", "(char **,s_options *,FILE *)", "", "Argument[**0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OptInit", "(char **,s_options *,FILE *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "OptInit", "(char **,s_options *,FILE *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "OptInit", "(char **,s_options *,FILE *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "Plink_add", "(plink **,config *)", "", "Argument[**0]", "Argument[**0].Field[**next]", "value", "dfc-generated"] + - ["", "", True, "Plink_add", "(plink **,config *)", "", "Argument[*0]", "Argument[**0].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "Plink_add", "(plink **,config *)", "", "Argument[0]", "Argument[**0].Field[*next]", "taint", "dfc-generated"] + - ["", "", True, "Plink_add", "(plink **,config *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[**0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[*0]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[*1]", "Argument[**0]", "value", "df-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[0]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[1]", "Argument[**0]", "taint", "df-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "Plink_copy", "(plink **,plink *)", "", "Argument[1]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "Plink_delete", "(plink *)", "", "Argument[0]", "Argument[*0].Field[**next].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "Plink_delete", "(plink *)", "", "Argument[0]", "Argument[*0].Field[*next]", "value", "dfc-generated"] + - ["", "", True, "PrintAction", "(action *,FILE *,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "ResortStates", "(lemon *)", "", "Argument[*0].Field[*nstate]", "Argument[*0].Field[*nxstate]", "value", "dfc-generated"] + - ["", "", True, "RulePrint", "(FILE *,rule *,int)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "SHA1Transform", "(unsigned int[5],const unsigned char[64])", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SHA1Transform", "(unsigned int[5],const unsigned char[64])", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "SHA1Transform", "(unsigned int[5],const unsigned char[64])", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "State_find", "(config *)", "", "Argument[*0].Field[**bp].Field[**bp]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "State_find", "(config *)", "", "Argument[*0].Field[**bp]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "State_insert", "(state *,config *)", "", "Argument[*1].Field[**bp].Field[**bp]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "State_insert", "(state *,config *)", "", "Argument[*1].Field[**bp]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "Strsafe", "(const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "Strsafe", "(const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "Symbol_Nth", "(int)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "Symbol_Nth", "(int)", "", "Argument[0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "Symbol_new", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**name]", "value", "dfc-generated"] + - ["", "", True, "Symbol_new", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**name]", "taint", "dfc-generated"] + - ["", "", True, "Symbolcmpp", "(const void *,const void *)", "", "Argument[**0].Field[*index]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "Symbolcmpp", "(const void *,const void *)", "", "Argument[**1].Field[*index]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "acttab_action", "(acttab *,int,int)", "", "Argument[1]", "Argument[*0].Field[**aLookahead].Field[*lookahead]", "value", "dfc-generated"] + - ["", "", True, "acttab_action", "(acttab *,int,int)", "", "Argument[1]", "Argument[*0].Field[*mnLookahead]", "value", "dfc-generated"] + - ["", "", True, "acttab_action", "(acttab *,int,int)", "", "Argument[1]", "Argument[*0].Field[*mxLookahead]", "value", "dfc-generated"] + - ["", "", True, "acttab_action", "(acttab *,int,int)", "", "Argument[2]", "Argument[*0].Field[**aLookahead].Field[*action]", "value", "dfc-generated"] + - ["", "", True, "acttab_action", "(acttab *,int,int)", "", "Argument[2]", "Argument[*0].Field[*mnAction]", "value", "dfc-generated"] + - ["", "", True, "acttab_action_size", "(acttab *)", "", "Argument[*0].Field[*nAction]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "acttab_alloc", "(int,int)", "", "Argument[0]", "ReturnValue[*].Field[*nsymbol]", "value", "dfc-generated"] + - ["", "", True, "acttab_alloc", "(int,int)", "", "Argument[1]", "ReturnValue[*].Field[*nterminal]", "value", "dfc-generated"] + - ["", "", True, "acttab_insert", "(acttab *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "append_str", "(const char *,int,int,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "append_str", "(const char *,int,int,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "append_str", "(const char *,int,int,int)", "", "Argument[1]", "ReturnValue[*].Field[*sz]", "taint", "dfc-generated"] + - ["", "", True, "append_str", "(const char *,int,int,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "atof", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atof", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atoi", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atoi", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atol", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atol", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atoll", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "atoll", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "close_db", "(sqlite3 *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "compute_action", "(lemon *,action *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "confighash", "(config *)", "", "Argument[*0].Field[**rp].Field[*index]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "confighash", "(config *)", "", "Argument[*0].Field[*dot]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "defossilize", "(char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "emit_code", "(FILE *,rule *,lemon *,int *)", "", "Argument[*3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "emit_code", "(FILE *,rule *,lemon *,int *)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "emit_code", "(FILE *,rule *,lemon *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "emit_destructor_code", "(FILE *,symbol *,lemon *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "feof_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "ferror_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "fgetc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "file_makename", "(lemon *,const char *)", "", "Argument[*0].Field[**filename]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "file_makename", "(lemon *,const char *)", "", "Argument[*0].Field[*filename]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "file_makename", "(lemon *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "file_makename", "(lemon *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "file_open", "(lemon *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**outname]", "value", "dfc-generated"] + - ["", "", True, "file_open", "(lemon *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "file_open", "(lemon *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[**outname]", "taint", "dfc-generated"] + - ["", "", True, "file_open", "(lemon *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "fputc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "fread_unlocked", "(void *__restrict__,size_t,size_t,FILE *__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "fread_unlocked", "(void *__restrict__,size_t,size_t,FILE *__restrict__)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "getc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "getstate", "(lemon *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "has_destructor", "(symbol *,lemon *)", "", "Argument[*1].Field[*tokendest]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "jim_regcomp", "(regex_t *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[**regparse]", "value", "dfc-generated"] + - ["", "", True, "jim_regcomp", "(regex_t *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[*regparse]", "value", "dfc-generated"] + - ["", "", True, "jim_regcomp", "(regex_t *,const char *,int)", "", "Argument[2]", "Argument[*0].Field[*cflags]", "value", "dfc-generated"] + - ["", "", True, "jim_regerror", "(int,const regex_t *,char *,size_t)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "jim_regexec", "(regex_t *,const char *,size_t,regmatch_t[],int)", "", "Argument[*1]", "Argument[*0].Field[**regbol]", "value", "dfc-generated"] + - ["", "", True, "jim_regexec", "(regex_t *,const char *,size_t,regmatch_t[],int)", "", "Argument[*1]", "Argument[*0].Field[**reginput]", "value", "dfc-generated"] + - ["", "", True, "jim_regexec", "(regex_t *,const char *,size_t,regmatch_t[],int)", "", "Argument[*1]", "Argument[*0].Field[**start]", "value", "dfc-generated"] + - ["", "", True, "jim_regexec", "(regex_t *,const char *,size_t,regmatch_t[],int)", "", "Argument[*3]", "Argument[*0].Field[**pmatch]", "value", "dfc-generated"] + - ["", "", True, "jim_regexec", "(regex_t *,const char *,size_t,regmatch_t[],int)", "", "Argument[2]", "Argument[*0].Field[*nmatch]", "value", "dfc-generated"] + - ["", "", True, "jim_regexec", "(regex_t *,const char *,size_t,regmatch_t[],int)", "", "Argument[3]", "Argument[*0].Field[*pmatch]", "value", "dfc-generated"] + - ["", "", True, "jim_regexec", "(regex_t *,const char *,size_t,regmatch_t[],int)", "", "Argument[4]", "Argument[*0].Field[*eflags]", "value", "dfc-generated"] + - ["", "", True, "main", "(int,char **)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "main", "(int,char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "main", "(int,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "main", "(int,char *const[])", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[**1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[**1]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[**]", "value", "df-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "print_stack_union", "(FILE *,lemon *,int *,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "putc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[**4]", "ReturnValue[*].Field[***pSqlCtx]", "value", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[*1]", "ReturnValue[*].Field[**zDb]", "value", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[*2]", "ReturnValue[*].Field[**zUri]", "value", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[*4]", "ReturnValue[*].Field[**pSqlCtx]", "value", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[0]", "ReturnValue[*].Field[**zDb].Field[*dbIn]", "value", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[0]", "ReturnValue[*].Field[**zUri].Field[*dbIn]", "value", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[0]", "ReturnValue[*].Field[*dbIn]", "value", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[1]", "ReturnValue[*].Field[**zDb]", "taint", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[2]", "ReturnValue[*].Field[**zUri]", "taint", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[3]", "ReturnValue[*].Field[*xSql]", "value", "dfc-generated"] + - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[4]", "ReturnValue[*].Field[*pSqlCtx]", "value", "dfc-generated"] + - ["", "", True, "registerUDFs", "(sqlite3 *,sqlite3 *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "registerUDFs", "(sqlite3 *,sqlite3 *)", "", "Argument[1]", "Argument[*1].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "rule_print", "(FILE *,rule *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "sha1sum_file", "(const char *,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sha3sum_file", "(const char *,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "shellReset", "(int *,sqlite3_stmt *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "snprintf", "(char *__restrict__,size_t,const char *__restrict__,...)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "snprintf", "(char *__restrict__,size_t,const char *__restrict__,...)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "sprintf", "(char *__restrict__,const char *__restrict__,...)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "sprintf", "(char *__restrict__,const char *__restrict__,...)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3CompletionVtabInit", "(sqlite3 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_aggregate_context", "(sqlite3_context *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_aggregate_context", "(sqlite3_context *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_aggregate_count", "(sqlite3_context *)", "", "Argument[*0].Field[**pMem].Field[*n]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_autovacuum_pages", "(sqlite3 *,..(*)(..),void *,..(*)(..))", "", "Argument[**2]", "Argument[*0].Field[***pAutovacPagesArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_autovacuum_pages", "(sqlite3 *,..(*)(..),void *,..(*)(..))", "", "Argument[*2]", "Argument[*0].Field[**pAutovacPagesArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_autovacuum_pages", "(sqlite3 *,..(*)(..),void *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*xAutovacPages]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_autovacuum_pages", "(sqlite3 *,..(*)(..),void *,..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*pAutovacPagesArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_autovacuum_pages", "(sqlite3 *,..(*)(..),void *,..(*)(..))", "", "Argument[3]", "Argument[*0].Field[*xAutovacDestr]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_backup_finish", "(sqlite3_backup *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_backup_init", "(sqlite3 *,const char *,sqlite3 *,const char *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_backup_init", "(sqlite3 *,const char *,sqlite3 *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*pDestDb]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_backup_init", "(sqlite3 *,const char *,sqlite3 *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[*pSrcDb]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_backup_pagecount", "(sqlite3_backup *)", "", "Argument[*0].Field[*nPagecount]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_backup_remaining", "(sqlite3_backup *)", "", "Argument[*0].Field[*nRemaining]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_backup_step", "(sqlite3_backup *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_base64_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_base85_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_bind_blob64", "(sqlite3_stmt *,int,const void *,sqlite3_uint64,..(*)(..))", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_bind_blob", "(sqlite3_stmt *,int,const void *,int,..(*)(..))", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_bind_double", "(sqlite3_stmt *,int,double)", "", "Argument[1]", "Argument[*0].Field[**aVar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_bind_int64", "(sqlite3_stmt *,int,sqlite3_int64,sqlite_int64)", "", "Argument[1]", "Argument[*0].Field[**aVar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_bind_int", "(sqlite3_stmt *,int,int)", "", "Argument[1]", "Argument[*0].Field[**aVar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_bind_parameter_count", "(sqlite3_stmt *)", "", "Argument[*0].Field[*nVar]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_bind_parameter_index", "(sqlite3_stmt *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_bind_parameter_name", "(sqlite3_stmt *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_bind_parameter_name", "(sqlite3_stmt *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_bind_pointer", "(sqlite3_stmt *,int,void *,const char *,..(*)(..))", "", "Argument[*2]", "Argument[*0].Field[**aVar].Field[**z]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_bind_pointer", "(sqlite3_stmt *,int,void *,const char *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[**aVar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_bind_pointer", "(sqlite3_stmt *,int,void *,const char *,..(*)(..))", "", "Argument[2]", "Argument[*0].Field[**aVar].Field[*z]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_bind_pointer", "(sqlite3_stmt *,int,void *,const char *,..(*)(..))", "", "Argument[4]", "Argument[*0].Field[**aVar].Field[*xDel]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_bind_text16", "(sqlite3_stmt *,int,const void *,int,..(*)(..))", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_bind_text64", "(sqlite3_stmt *,int,const char *,sqlite3_uint64,..(*)(..),unsigned char)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_bind_text", "(sqlite3_stmt *,int,const char *,int,..(*)(..))", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_bind_value", "(sqlite3_stmt *,int,const sqlite3_value *)", "", "Argument[1]", "Argument[*0].Field[**aVar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_bind_zeroblob64", "(sqlite3_stmt *,int,sqlite3_uint64)", "", "Argument[1]", "Argument[*0].Field[**aVar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_bind_zeroblob", "(sqlite3_stmt *,int,int)", "", "Argument[1]", "Argument[*0].Field[**aVar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_bytes", "(sqlite3_blob *)", "", "Argument[*0].Field[*nByte]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_blob_close", "(sqlite3_blob *)", "", "Argument[*0].Field[**pStmt].Field[*rc]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_open", "(sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **)", "", "Argument[*2]", "Argument[**6].Field[**pTab].Field[**zName]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_blob_open", "(sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **)", "", "Argument[*3]", "Argument[**6].Field[*iCol]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_open", "(sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **)", "", "Argument[*3]", "Argument[**6].Field[*iOffset]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_open", "(sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **)", "", "Argument[*3]", "Argument[**6].Field[*nByte]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_open", "(sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **)", "", "Argument[2]", "Argument[**6].Field[**pTab].Field[**zName]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_open", "(sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **)", "", "Argument[3]", "Argument[**6].Field[*iCol]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_open", "(sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **)", "", "Argument[3]", "Argument[**6].Field[*iOffset]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_open", "(sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **)", "", "Argument[3]", "Argument[**6].Field[*nByte]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_read", "(sqlite3_blob *,void *,int,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_read", "(sqlite3_blob *,void *,int,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_read", "(sqlite3_blob *,void *,int,int)", "", "Argument[3]", "Argument[*0].Field[**pCsr].Field[**aOverflow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_read", "(sqlite3_blob *,void *,int,int)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_reopen", "(sqlite3_blob *,sqlite3_int64)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_blob_write", "(sqlite3_blob *,const void *,int,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_write", "(sqlite3_blob *,const void *,int,int)", "", "Argument[2]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_write", "(sqlite3_blob *,const void *,int,int)", "", "Argument[3]", "Argument[*0].Field[**pCsr].Field[**aOverflow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_blob_write", "(sqlite3_blob *,const void *,int,int)", "", "Argument[3]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_busy_handler", "(sqlite3 *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[*busyHandler].Field[***pBusyArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_busy_handler", "(sqlite3 *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[*busyHandler].Field[**pBusyArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_busy_handler", "(sqlite3 *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*busyHandler].Field[*xBusyHandler]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_busy_handler", "(sqlite3 *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*busyHandler].Field[*pBusyArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_busy_timeout", "(sqlite3 *,int)", "", "Argument[*0]", "Argument[*0].Field[*busyHandler].Field[**pBusyArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_busy_timeout", "(sqlite3 *,int)", "", "Argument[0]", "Argument[*0].Field[*busyHandler].Field[*pBusyArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_busy_timeout", "(sqlite3 *,int)", "", "Argument[1]", "Argument[*0].Field[*busyTimeout]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_changes64", "(sqlite3 *)", "", "Argument[*0].Field[*nChange]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_changes", "(sqlite3 *)", "", "Argument[*0].Field[*nChange]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_close", "(sqlite3 *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_collation_needed16", "(sqlite3 *,void *,..(*)(..))", "", "Argument[**1]", "Argument[*0].Field[***pCollNeededArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_collation_needed16", "(sqlite3 *,void *,..(*)(..))", "", "Argument[*1]", "Argument[*0].Field[**pCollNeededArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_collation_needed16", "(sqlite3 *,void *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*pCollNeededArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_collation_needed16", "(sqlite3 *,void *,..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*xCollNeeded16]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_collation_needed", "(sqlite3 *,void *,..(*)(..))", "", "Argument[**1]", "Argument[*0].Field[***pCollNeededArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_collation_needed", "(sqlite3 *,void *,..(*)(..))", "", "Argument[*1]", "Argument[*0].Field[**pCollNeededArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_collation_needed", "(sqlite3 *,void *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*pCollNeededArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_collation_needed", "(sqlite3 *,void *,..(*)(..))", "", "Argument[2]", "Argument[*0].Field[*xCollNeeded]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_column_blob", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**pResultRow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_bytes16", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**pResultRow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_bytes", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**pResultRow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_count", "(sqlite3_stmt *)", "", "Argument[*0].Field[*nResColumn]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_column_decltype16", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**aColName]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_decltype", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**aColName]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_double", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**pResultRow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_int64", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**pResultRow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_int", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**pResultRow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_name16", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**aColName]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_name16", "(sqlite3_stmt *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_name16", "(sqlite3_stmt *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_name", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**aColName]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_name", "(sqlite3_stmt *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_text16", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**pResultRow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_text", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**pResultRow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_type", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[**pResultRow]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_value", "(sqlite3_stmt *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_column_value", "(sqlite3_stmt *,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_commit_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***pCommitArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_commit_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**pCommitArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_commit_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*xCommitCallback]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_commit_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*pCommitArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_compileoption_get", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_completion_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_context_db_handle", "(sqlite3_context *)", "", "Argument[*0].Field[**pOut].Field[**db]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_context_db_handle", "(sqlite3_context *)", "", "Argument[*0].Field[**pOut].Field[*db]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_create_collation16", "(sqlite3 *,const void *,int,void *,..(*)(..))", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_create_collation", "(sqlite3 *,const char *,int,void *,..(*)(..))", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_create_collation_v2", "(sqlite3 *,const char *,int,void *,..(*)(..),..(*)(..))", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_create_function16", "(sqlite3 *,const void *,int,int,void *,..(*)(..),..(*)(..),..(*)(..))", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_create_function", "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..))", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_create_function", "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_create_function", "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pSmallFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_create_function_v2", "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_create_function_v2", "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_create_function_v2", "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pSmallFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_create_module", "(sqlite3 *,const char *,const sqlite3_module *,void *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_create_module", "(sqlite3 *,const char *,const sqlite3_module *,void *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "sqlite3_create_module", "(sqlite3 *,const char *,const sqlite3_module *,void *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "sqlite3_create_module_v2", "(sqlite3 *,const char *,const sqlite3_module *,void *,..(*)(..))", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_create_module_v2", "(sqlite3 *,const char *,const sqlite3_module *,void *,..(*)(..))", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "sqlite3_create_module_v2", "(sqlite3 *,const char *,const sqlite3_module *,void *,..(*)(..))", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "sqlite3_create_window_function", "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_create_window_function", "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_create_window_function", "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pSmallFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_data_count", "(sqlite3_stmt *)", "", "Argument[*0].Field[*nResColumn]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_db_handle", "(sqlite3_stmt *)", "", "Argument[*0].Field[**db]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_db_handle", "(sqlite3_stmt *)", "", "Argument[*0].Field[*db]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_db_mutex", "(sqlite3 *)", "", "Argument[*0].Field[**mutex]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_db_mutex", "(sqlite3 *)", "", "Argument[*0].Field[*mutex]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_db_name", "(sqlite3 *,int)", "", "Argument[*0].Field[**aDb].Field[**zDbSName]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_db_name", "(sqlite3 *,int)", "", "Argument[*0].Field[**aDb].Field[*zDbSName]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_db_status", "(sqlite3 *,int,int *,int *,int)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_db_status", "(sqlite3 *,int,int *,int *,int)", "", "Argument[1]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_dbdata_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_decimal_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_declare_vtab", "(sqlite3 *,const char *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_deserialize", "(sqlite3 *,const char *,unsigned char *,sqlite3_int64,sqlite3_int64,unsigned int)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_errcode", "(sqlite3 *)", "", "Argument[*0].Field[*errCode]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_errcode", "(sqlite3 *)", "", "Argument[*0].Field[*errMask]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_errmsg16", "(sqlite3 *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_errmsg", "(sqlite3 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_errmsg", "(sqlite3 *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_error_offset", "(sqlite3 *)", "", "Argument[*0].Field[*errByteOffset]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_errstr", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_exec", "(sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **)", "", "Argument[*1]", "Argument[*0].Field[*lookaside].Field[**pFree]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_exec", "(sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **)", "", "Argument[*1]", "Argument[*0].Field[*lookaside].Field[**pSmallFree]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_exec", "(sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_exec", "(sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **)", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_exec", "(sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **)", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pSmallFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_exec", "(sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_exec", "(sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_expanded_sql", "(sqlite3_stmt *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_expert_analyze", "(sqlite3expert *,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_expert_count", "(sqlite3expert *)", "", "Argument[*0].Field[**pStatement].Field[*iId]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_expert_new", "(sqlite3 *,char **)", "", "Argument[0]", "ReturnValue[*].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_expert_new", "(sqlite3 *,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_expert_report", "(sqlite3expert *,int,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_expert_report", "(sqlite3expert *,int,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_expert_sql", "(sqlite3expert *,const char *,char **)", "", "Argument[*1]", "Argument[*0].Field[**pStatement].Field[**zSql]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_expert_sql", "(sqlite3expert *,const char *,char **)", "", "Argument[1]", "Argument[*0].Field[**pStatement].Field[**zSql]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_expert_sql", "(sqlite3expert *,const char *,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_extended_errcode", "(sqlite3 *)", "", "Argument[*0].Field[*errCode]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_file_control", "(sqlite3 *,const char *,int,void *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_fileio_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_filename_database", "(const char *,sqlite3_filename)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_filename_database", "(const char *,sqlite3_filename)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_filename_database", "(const char *,sqlite3_filename)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_filename_journal", "(const char *,sqlite3_filename)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_filename_journal", "(const char *,sqlite3_filename)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_filename_journal", "(const char *,sqlite3_filename)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_filename_wal", "(const char *,sqlite3_filename)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_filename_wal", "(const char *,sqlite3_filename)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_filename_wal", "(const char *,sqlite3_filename)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_finalize", "(sqlite3_stmt *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_free_filename", "(const char *,sqlite3_filename)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_free_table", "(char **)", "", "Argument[*0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_free_table", "(char **)", "", "Argument[0]", "Argument[**0]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_free_table", "(char **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_get_autocommit", "(sqlite3 *)", "", "Argument[*0].Field[*autoCommit]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_get_clientdata", "(sqlite3 *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_get_clientdata", "(sqlite3 *,const char *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "sqlite3_get_clientdata", "(sqlite3 *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_get_table", "(sqlite3 *,const char *,char ***,int *,int *,char **)", "", "Argument[*1]", "Argument[*0].Field[*lookaside].Field[**pFree]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_get_table", "(sqlite3 *,const char *,char ***,int *,int *,char **)", "", "Argument[*1]", "Argument[*0].Field[*lookaside].Field[**pSmallFree]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_get_table", "(sqlite3 *,const char *,char ***,int *,int *,char **)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_get_table", "(sqlite3 *,const char *,char ***,int *,int *,char **)", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_get_table", "(sqlite3 *,const char *,char ***,int *,int *,char **)", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pSmallFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_get_table", "(sqlite3 *,const char *,char ***,int *,int *,char **)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_ieee_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_intck_error", "(sqlite3_intck *,const char **)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] + - ["", "", True, "sqlite3_intck_error", "(sqlite3_intck *,const char **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "sqlite3_intck_error", "(sqlite3_intck *,const char **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_intck_message", "(sqlite3_intck *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_intck_message", "(sqlite3_intck *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_intck_open", "(sqlite3 *,const char *,sqlite3_intck **)", "", "Argument[*1]", "Argument[**2]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_intck_open", "(sqlite3 *,const char *,sqlite3_intck **)", "", "Argument[0]", "Argument[**2].Field[**zDb].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_intck_open", "(sqlite3 *,const char *,sqlite3_intck **)", "", "Argument[0]", "Argument[**2].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_intck_open", "(sqlite3 *,const char *,sqlite3_intck **)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_intck_open", "(sqlite3 *,const char *,sqlite3_intck **)", "", "Argument[1]", "Argument[**2]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_intck_step", "(sqlite3_intck *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_intck_test_sql", "(sqlite3_intck *,const char *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_intck_test_sql", "(sqlite3_intck *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_intck_unlock", "(sqlite3_intck *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_keyword_name", "(int,const char **,int *)", "", "Argument[0]", "Argument[**1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_keyword_name", "(int,const char **,int *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_keyword_name", "(int,const char **,int *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_last_insert_rowid", "(sqlite3 *)", "", "Argument[*0].Field[*lastRowid]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_limit", "(sqlite3 *,int,int)", "", "Argument[*0].Field[*aLimit]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_limit", "(sqlite3 *,int,int)", "", "Argument[1]", "Argument[*0].Field[*aLimit]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_limit", "(sqlite3 *,int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_limit", "(sqlite3 *,int,int)", "", "Argument[2]", "Argument[*0].Field[*aLimit]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_load_extension", "(sqlite3 *,const char *,const char *,char **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_next_stmt", "(sqlite3 *,sqlite3_stmt *)", "", "Argument[*1].Field[**pVNext]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_next_stmt", "(sqlite3 *,sqlite3_stmt *)", "", "Argument[*1].Field[*pVNext]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_open16", "(const void *,sqlite3 **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_open_v2", "(const char *,sqlite3 **,int,const char *)", "", "Argument[2]", "Argument[**1].Field[*openFlags]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_overload_function", "(sqlite3 *,const char *,int)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_overload_function", "(sqlite3 *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_overload_function", "(sqlite3 *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pSmallFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_percentile_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16", "(sqlite3 *,const void *,int,sqlite3_stmt **,const void **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16", "(sqlite3 *,const void *,int,sqlite3_stmt **,const void **)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16", "(sqlite3 *,const void *,int,sqlite3_stmt **,const void **)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16", "(sqlite3 *,const void *,int,sqlite3_stmt **,const void **)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16_v2", "(sqlite3 *,const void *,int,sqlite3_stmt **,const void **)", "", "Argument[*1]", "Argument[**4]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16_v2", "(sqlite3 *,const void *,int,sqlite3_stmt **,const void **)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16_v2", "(sqlite3 *,const void *,int,sqlite3_stmt **,const void **)", "", "Argument[1]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16_v2", "(sqlite3 *,const void *,int,sqlite3_stmt **,const void **)", "", "Argument[1]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16_v3", "(sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **)", "", "Argument[*1]", "Argument[**5]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16_v3", "(sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16_v3", "(sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **)", "", "Argument[1]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16_v3", "(sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **)", "", "Argument[1]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare16_v3", "(sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **)", "", "Argument[3]", "Argument[**4].Field[*prepFlags]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare", "(sqlite3 *,const char *,int,sqlite3_stmt **,const char **)", "", "Argument[*1]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "sqlite3_prepare", "(sqlite3 *,const char *,int,sqlite3_stmt **,const char **)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_prepare", "(sqlite3 *,const char *,int,sqlite3_stmt **,const char **)", "", "Argument[2]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare", "(sqlite3 *,const char *,int,sqlite3_stmt **,const char **)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare_v2", "(sqlite3 *,const char *,int,sqlite3_stmt **,const char **)", "", "Argument[*1]", "Argument[**4]", "value", "df-generated"] + - ["", "", True, "sqlite3_prepare_v2", "(sqlite3 *,const char *,int,sqlite3_stmt **,const char **)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_prepare_v2", "(sqlite3 *,const char *,int,sqlite3_stmt **,const char **)", "", "Argument[2]", "Argument[**4]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare_v2", "(sqlite3 *,const char *,int,sqlite3_stmt **,const char **)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare_v3", "(sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **)", "", "Argument[*1]", "Argument[**5]", "value", "df-generated"] + - ["", "", True, "sqlite3_prepare_v3", "(sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_prepare_v3", "(sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **)", "", "Argument[2]", "Argument[**5]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare_v3", "(sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **)", "", "Argument[2]", "Argument[*5]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_prepare_v3", "(sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **)", "", "Argument[3]", "Argument[**4].Field[*prepFlags]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_profile", "(sqlite3 *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***pProfileArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_profile", "(sqlite3 *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**pProfileArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_profile", "(sqlite3 *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*xProfile]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_profile", "(sqlite3 *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*pProfileArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_progress_handler", "(sqlite3 *,int,..(*)(..),void *)", "", "Argument[**3]", "Argument[*0].Field[***pProgressArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_progress_handler", "(sqlite3 *,int,..(*)(..),void *)", "", "Argument[*3]", "Argument[*0].Field[**pProgressArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_progress_handler", "(sqlite3 *,int,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*nProgressOps]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_progress_handler", "(sqlite3 *,int,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*xProgress]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_progress_handler", "(sqlite3 *,int,..(*)(..),void *)", "", "Argument[3]", "Argument[*0].Field[*pProgressArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_randomness", "(int,void *)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_realloc64", "(void *,sqlite3_uint64)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_realloc64", "(void *,sqlite3_uint64)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_realloc64", "(void *,sqlite3_uint64)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_realloc", "(void *,int)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_realloc", "(void *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_realloc", "(void *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_config", "(sqlite3_recover *,int,void *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "sqlite3_recover_config", "(sqlite3_recover *,int,void *)", "", "Argument[2]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "sqlite3_recover_config", "(sqlite3_recover *,int,void *)", "", "Argument[2]", "Argument[*2]", "taint", "df-generated"] + - ["", "", True, "sqlite3_recover_errcode", "(sqlite3_recover *)", "", "Argument[*0].Field[*errCode]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_errmsg", "(sqlite3_recover *)", "", "Argument[*0].Field[**zErrMsg]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_errmsg", "(sqlite3_recover *)", "", "Argument[*0].Field[*zErrMsg]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_finish", "(sqlite3_recover *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_recover_init", "(sqlite3 *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**zDb]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init", "(sqlite3 *,const char *,const char *)", "", "Argument[*2]", "ReturnValue[*].Field[**zUri]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init", "(sqlite3 *,const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**zDb].Field[*dbIn]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init", "(sqlite3 *,const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[**zUri].Field[*dbIn]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init", "(sqlite3 *,const char *,const char *)", "", "Argument[0]", "ReturnValue[*].Field[*dbIn]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init", "(sqlite3 *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**zDb]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init", "(sqlite3 *,const char *,const char *)", "", "Argument[2]", "ReturnValue[*].Field[**zUri]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init_sql", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[**3]", "ReturnValue[*].Field[***pSqlCtx]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init_sql", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[*1]", "ReturnValue[*].Field[**zDb]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init_sql", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[*3]", "ReturnValue[*].Field[**pSqlCtx]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init_sql", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[0]", "ReturnValue[*].Field[**zDb].Field[*dbIn]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init_sql", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[0]", "ReturnValue[*].Field[**zUri].Field[*dbIn]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init_sql", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[0]", "ReturnValue[*].Field[*dbIn]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init_sql", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[1]", "ReturnValue[*].Field[**zDb]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init_sql", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[2]", "ReturnValue[*].Field[*xSql]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_init_sql", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[3]", "ReturnValue[*].Field[*pSqlCtx]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_recover_run", "(sqlite3_recover *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_recover_step", "(sqlite3_recover *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_regexp_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_reset", "(sqlite3_stmt *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_result_error16", "(sqlite3_context *,const void *,int)", "", "Argument[*1]", "Argument[*0].Field[**pOut].Field[**zMalloc]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_result_error16", "(sqlite3_context *,const void *,int)", "", "Argument[*1]", "Argument[*0].Field[**pOut].Field[**z]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_result_error16", "(sqlite3_context *,const void *,int)", "", "Argument[1]", "Argument[*0].Field[**pOut].Field[**z]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_result_error16", "(sqlite3_context *,const void *,int)", "", "Argument[1]", "Argument[*0].Field[**pOut].Field[*zMalloc]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_result_error16", "(sqlite3_context *,const void *,int)", "", "Argument[1]", "Argument[*0].Field[**pOut].Field[*z]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_result_error16", "(sqlite3_context *,const void *,int)", "", "Argument[2]", "Argument[*0].Field[**pOut].Field[**z]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_result_error16", "(sqlite3_context *,const void *,int)", "", "Argument[2]", "Argument[*0].Field[**pOut].Field[*n]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_result_error", "(sqlite3_context *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[**pOut].Field[**zMalloc]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_result_error", "(sqlite3_context *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[**pOut].Field[**z]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_result_error", "(sqlite3_context *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[**pOut].Field[**z]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_result_error", "(sqlite3_context *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[**pOut].Field[*zMalloc]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_result_error", "(sqlite3_context *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[**pOut].Field[*z]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_result_error", "(sqlite3_context *,const char *,int)", "", "Argument[2]", "Argument[*0].Field[**pOut].Field[**z]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_result_error", "(sqlite3_context *,const char *,int)", "", "Argument[2]", "Argument[*0].Field[**pOut].Field[*n]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_result_error_code", "(sqlite3_context *,int)", "", "Argument[1]", "Argument[*0].Field[*isError]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_rollback_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***pRollbackArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_rollback_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**pRollbackArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_rollback_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*xRollbackCallback]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_rollback_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*pRollbackArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_rtree_geometry_callback", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_rtree_geometry_callback", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_rtree_geometry_callback", "(sqlite3 *,const char *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pSmallFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_rtree_query_callback", "(sqlite3 *,const char *,..(*)(..),void *,..(*)(..))", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_rtree_query_callback", "(sqlite3 *,const char *,..(*)(..),void *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_rtree_query_callback", "(sqlite3 *,const char *,..(*)(..),void *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[*lookaside].Field[**pSmallFree]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_serialize", "(sqlite3 *,const char *,sqlite3_int64 *,unsigned int)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_series_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_set_authorizer", "(sqlite3 *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***pAuthArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_set_authorizer", "(sqlite3 *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**pAuthArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_set_authorizer", "(sqlite3 *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*xAuth]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_set_authorizer", "(sqlite3 *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*pAuthArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_set_clientdata", "(sqlite3 *,const char *,void *,..(*)(..))", "", "Argument[*1]", "Argument[*0].Field[**pDbData].Field[*zName]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_set_clientdata", "(sqlite3 *,const char *,void *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[**pDbData].Field[*zName]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_set_last_insert_rowid", "(sqlite3 *,sqlite3_int64)", "", "Argument[1]", "Argument[*0].Field[*lastRowid]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_sha_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_shathree_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_snprintf", "(int,char *,const char *,...)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_snprintf", "(int,char *,const char *,...)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_sql", "(sqlite3_stmt *)", "", "Argument[*0].Field[**zSql]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_sql", "(sqlite3_stmt *)", "", "Argument[*0].Field[*zSql]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_sqlar_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_status64", "(int,sqlite3_int64 *,sqlite3_int64 *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_status64", "(int,sqlite3_int64 *,sqlite3_int64 *,int)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_status", "(int,int *,int *,int)", "", "Argument[0]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_status", "(int,int *,int *,int)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_step", "(sqlite3_stmt *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_step", "(sqlite3_stmt *)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "sqlite3_step", "(sqlite3_stmt *)", "", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_stmt_explain", "(sqlite3_stmt *,int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_stmt_explain", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[*explain]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_stmt_explain", "(sqlite3_stmt *,int)", "", "Argument[1]", "Argument[*0].Field[*nResColumn]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_stmt_isexplain", "(sqlite3_stmt *)", "", "Argument[*0].Field[*explain]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_stmt_readonly", "(sqlite3_stmt *)", "", "Argument[*0].Field[*readOnly]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_stmt_status", "(sqlite3_stmt *,int,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_stmtrand_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_append", "(sqlite3_str *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[**zText]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_append", "(sqlite3_str *,const char *,int)", "", "Argument[1]", "Argument[*0].Field[**zText]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_append", "(sqlite3_str *,const char *,int)", "", "Argument[2]", "Argument[*0].Field[*nAlloc]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_append", "(sqlite3_str *,const char *,int)", "", "Argument[2]", "Argument[*0].Field[*nChar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_appendall", "(sqlite3_str *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**zText]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_appendall", "(sqlite3_str *,const char *)", "", "Argument[1]", "Argument[*0].Field[**zText]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_appendchar", "(sqlite3_str *,int,char)", "", "Argument[1]", "Argument[*0].Field[*nAlloc]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_appendchar", "(sqlite3_str *,int,char)", "", "Argument[2]", "Argument[*0].Field[**zText]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_appendf", "(StrAccum *,sqlite3_str *,const char *,...)", "", "Argument[*1]", "Argument[*0].Field[**zText]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_appendf", "(StrAccum *,sqlite3_str *,const char *,...)", "", "Argument[*1]", "Argument[*0].Field[*nAlloc]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_appendf", "(StrAccum *,sqlite3_str *,const char *,...)", "", "Argument[*1]", "Argument[*0].Field[*nChar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_appendf", "(StrAccum *,sqlite3_str *,const char *,...)", "", "Argument[1]", "Argument[*0].Field[**zText]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_appendf", "(StrAccum *,sqlite3_str *,const char *,...)", "", "Argument[1]", "Argument[*0].Field[*nAlloc]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_appendf", "(StrAccum *,sqlite3_str *,const char *,...)", "", "Argument[1]", "Argument[*0].Field[*nChar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_errcode", "(sqlite3_str *)", "", "Argument[*0].Field[*accError]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_finish", "(sqlite3_str *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_str_finish", "(sqlite3_str *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_str_length", "(sqlite3_str *)", "", "Argument[*0].Field[*nChar]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_new", "(sqlite3 *)", "", "Argument[*0].Field[*aLimit]", "ReturnValue[*].Field[*mxAlloc]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_value", "(sqlite3_str *)", "", "Argument[*0].Field[**zText]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_value", "(sqlite3_str *)", "", "Argument[*0].Field[*zText]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_vappendf", "(sqlite3_str *,const char *,va_list)", "", "Argument[*1]", "Argument[*0].Field[**zText]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_str_vappendf", "(sqlite3_str *,const char *,va_list)", "", "Argument[*1]", "Argument[*0].Field[*nAlloc]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_vappendf", "(sqlite3_str *,const char *,va_list)", "", "Argument[*1]", "Argument[*0].Field[*nChar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_vappendf", "(sqlite3_str *,const char *,va_list)", "", "Argument[1]", "Argument[*0].Field[**zText]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_vappendf", "(sqlite3_str *,const char *,va_list)", "", "Argument[1]", "Argument[*0].Field[*nAlloc]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_str_vappendf", "(sqlite3_str *,const char *,va_list)", "", "Argument[1]", "Argument[*0].Field[*nChar]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_strglob", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_stricmp", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_stricmp", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_stricmp", "(const char *,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_stricmp", "(const char *,const char *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_strlike", "(const char *,const char *,unsigned int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_strnicmp", "(const char *,const char *,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_strnicmp", "(const char *,const char *,int)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_strnicmp", "(const char *,const char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_strnicmp", "(const char *,const char *,int)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_system_errno", "(sqlite3 *)", "", "Argument[*0].Field[*iSysErrno]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_table_column_metadata", "(sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_total_changes64", "(sqlite3 *)", "", "Argument[*0].Field[*nTotalChange]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_total_changes", "(sqlite3 *)", "", "Argument[*0].Field[*nTotalChange]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_trace", "(sqlite3 *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***pTraceArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_trace", "(sqlite3 *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**pTraceArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_trace", "(sqlite3 *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*trace].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_trace", "(sqlite3 *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*pTraceArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_trace_v2", "(sqlite3 *,unsigned int,..(*)(..),void *)", "", "Argument[**3]", "Argument[*0].Field[***pTraceArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_trace_v2", "(sqlite3 *,unsigned int,..(*)(..),void *)", "", "Argument[*3]", "Argument[*0].Field[**pTraceArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_trace_v2", "(sqlite3 *,unsigned int,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*mTrace]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_trace_v2", "(sqlite3 *,unsigned int,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*trace].Union[*(unnamed class/struct/union)]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_trace_v2", "(sqlite3 *,unsigned int,..(*)(..),void *)", "", "Argument[3]", "Argument[*0].Field[*pTraceArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_transfer_bindings", "(sqlite3_stmt *,sqlite3_stmt *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] + - ["", "", True, "sqlite3_uint_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_update_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***pUpdateArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_update_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**pUpdateArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_update_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*xUpdateCallback]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_update_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*pUpdateArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_uri_boolean", "(const char *,sqlite3_filename,const char *,int)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_uri_boolean", "(const char *,sqlite3_filename,const char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_uri_boolean", "(const char *,sqlite3_filename,const char *,int)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_uri_int64", "(const char *,sqlite3_filename,const char *,sqlite3_int64)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_uri_int64", "(const char *,sqlite3_filename,const char *,sqlite3_int64)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_uri_int64", "(const char *,sqlite3_filename,const char *,sqlite3_int64)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_uri_key", "(const char *,sqlite3_filename,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_uri_key", "(const char *,sqlite3_filename,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_uri_key", "(const char *,sqlite3_filename,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_uri_parameter", "(const char *,sqlite3_filename,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_uri_parameter", "(const char *,sqlite3_filename,const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_uri_parameter", "(const char *,sqlite3_filename,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_user_data", "(sqlite3_context *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_user_data", "(sqlite3_context *)", "", "Argument[*0]", "ReturnValue[**]", "taint", "df-generated"] + - ["", "", True, "sqlite3_user_data", "(sqlite3_context *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_blob", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_blob", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_bytes16", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_bytes", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_double", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_dup", "(const sqlite3_value *)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] + - ["", "", True, "sqlite3_value_dup", "(const sqlite3_value *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_value_encoding", "(sqlite3_value *)", "", "Argument[*0].Field[*enc]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_value_frombind", "(sqlite3_value *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_value_int64", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_int", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_numeric_type", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_pointer", "(sqlite3_value *,const char *)", "", "Argument[*0].Field[**z]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_value_pointer", "(sqlite3_value *,const char *)", "", "Argument[*0].Field[*z]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_value_subtype", "(sqlite3_value *)", "", "Argument[*0].Field[*eSubtype]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_value_text16", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_text16", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_text16be", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_text16be", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_text16le", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_text16le", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_text", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_text", "(sqlite3_value *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] + - ["", "", True, "sqlite3_value_type", "(sqlite3_value *)", "", "Argument[*0].Field[*flags]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_vmprintf", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_vsnprintf", "(int,char *,const char *,va_list)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_vsnprintf", "(int,char *,const char *,va_list)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_vsnprintf", "(int,char *,const char *,va_list)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_vtab_collation", "(sqlite3_index_info *,int)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] + - ["", "", True, "sqlite3_vtab_distinct", "(sqlite3_index_info *)", "", "Argument[*0].Field[*eDistinct]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "sqlite3_vtab_in", "(sqlite3_index_info *,int,int)", "", "Argument[1]", "Argument[*0].Field[*mHandleIn]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_vtab_in_first", "(sqlite3_value *,sqlite3_value **)", "", "Argument[*0].Field[**z].Field[**pOut]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_vtab_in_first", "(sqlite3_value *,sqlite3_value **)", "", "Argument[*0].Field[**z].Field[*pOut]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_vtab_in_next", "(sqlite3_value *,sqlite3_value **)", "", "Argument[*0].Field[**z].Field[**pOut]", "Argument[**1]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_vtab_in_next", "(sqlite3_value *,sqlite3_value **)", "", "Argument[*0].Field[**z].Field[*pOut]", "Argument[*1]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_vtab_on_conflict", "(sqlite3 *)", "", "Argument[*0].Field[*vtabOnConflict]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_vtab_rhs_value", "(sqlite3_index_info *,int,sqlite3_value **)", "", "Argument[1]", "Argument[*0].Field[*aRhs]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_vtab_rhs_value", "(sqlite3_index_info *,int,sqlite3_value **)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "sqlite3_wal_autocheckpoint", "(sqlite3 *,int)", "", "Argument[1]", "Argument[*0].Field[*pWalArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_wal_checkpoint", "(sqlite3 *,const char *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_wal_checkpoint_v2", "(sqlite3 *,const char *,int,int *,int *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_wal_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[**2]", "Argument[*0].Field[***pWalArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_wal_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[*2]", "Argument[*0].Field[**pWalArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_wal_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[1]", "Argument[*0].Field[*xWalCallback]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_wal_hook", "(sqlite3 *,..(*)(..),void *)", "", "Argument[2]", "Argument[*0].Field[*pWalArg]", "value", "dfc-generated"] + - ["", "", True, "sqlite3_zipfile_init", "(sqlite3 *,char **,const sqlite3_api_routines *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "statecmp", "(config *,config *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "statecmp", "(config *,config *)", "", "Argument[*1]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "statehash", "(config *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] + - ["", "", True, "strhash", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "strhash", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] + - ["", "", True, "tolower", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "toupper", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "tplt_linedir", "(FILE *,int,char *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "tplt_linedir", "(FILE *,int,char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "tplt_print", "(FILE *,lemon *,char *,int *)", "", "Argument[*1].Field[*outname]", "Argument[*1].Field[**outname]", "taint", "dfc-generated"] + - ["", "", True, "tplt_print", "(FILE *,lemon *,char *,int *)", "", "Argument[*3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "tplt_print", "(FILE *,lemon *,char *,int *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "tplt_print", "(FILE *,lemon *,char *,int *)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "tplt_print", "(FILE *,lemon *,char *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "tplt_skip_header", "(FILE *,int *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] + - ["", "", True, "tplt_xfer", "(char *,FILE *,FILE *,int *)", "", "Argument[*0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "tplt_xfer", "(char *,FILE *,FILE *,int *)", "", "Argument[*1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "tplt_xfer", "(char *,FILE *,FILE *,int *)", "", "Argument[0]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "tplt_xfer", "(char *,FILE *,FILE *,int *)", "", "Argument[1]", "Argument[*2]", "taint", "dfc-generated"] + - ["", "", True, "tplt_xfer", "(char *,FILE *,FILE *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] + - ["", "", True, "useDummyCS", "(void *,sqlite3 *,int,const char *)", "", "Argument[1]", "Argument[*1].Field[**pErr].Field[*db]", "value", "dfc-generated"] + - ["", "", True, "utf8_fromunicode", "(char *,unsigned int)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] + - ["", "", True, "utf8_fromunicode", "(char *,unsigned int)", "", "Argument[1]", "Argument[*0]", "value", "dfc-generated"] + - ["", "", True, "zSkipValidUtf8", "(const char *,int,long)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] + - ["", "", True, "zSkipValidUtf8", "(const char *,int,long)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["", "", True, "zSkipValidUtf8", "(const char *,int,long)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] From d6beb2a6a0f87cd885f8e7093fe30485dc4879a9 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 14 May 2025 12:45:42 +0100 Subject: [PATCH 436/656] C++: Don't generate models for stuff we have modeled in Ql by hand. --- .../modelgenerator/internal/CaptureModels.qll | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index c30e2cc8f57..ea6ab058134 100644 --- a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -13,6 +13,8 @@ private import semmle.code.cpp.ir.dataflow.internal.TaintTrackingImplSpecific private import semmle.code.cpp.dataflow.new.TaintTracking as Tt private import semmle.code.cpp.dataflow.new.DataFlow as Df private import codeql.mad.modelgenerator.internal.ModelGeneratorImpl +private import semmle.code.cpp.models.interfaces.Taint as Taint +private import semmle.code.cpp.models.interfaces.DataFlow as DataFlow /** * Holds if `f` is a "private" function. @@ -46,6 +48,19 @@ private predicate isUninterestingForModels(Callable api) { or api.isFromUninstantiatedTemplate(_) or + // No need to generate models for functions modeled by hand in QL + api instanceof Taint::TaintFunction + or + api instanceof DataFlow::DataFlowFunction + or + // Don't generate models for main functions + api.hasGlobalName("main") + or + // Don't generate models for system-provided functions. If we want to + // generate models for these we should use a database containing the + // implementations of those system-provided functions in the source root. + not exists(api.getLocation().getFile().getRelativePath()) + or // Exclude functions in test directories (but not the ones in the CodeQL test directory) exists(Cpp::File f | f = api.getFile() and From 560ffc0e9bb62c52dfaed60ab764b07cee6b15c4 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 14 May 2025 13:29:11 +0100 Subject: [PATCH 437/656] C++: Regenerate the models for OpenSSL and sqlite after model-generation changes. --- cpp/ql/lib/ext/generated/openssl.model.yml | 52 ---------------------- cpp/ql/lib/ext/generated/sqlite.model.yml | 42 ----------------- 2 files changed, 94 deletions(-) diff --git a/cpp/ql/lib/ext/generated/openssl.model.yml b/cpp/ql/lib/ext/generated/openssl.model.yml index 04b5eb99046..83d90d430f9 100644 --- a/cpp/ql/lib/ext/generated/openssl.model.yml +++ b/cpp/ql/lib/ext/generated/openssl.model.yml @@ -1980,11 +1980,6 @@ extensions: - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[5]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "CRYPTO_ofb128_encrypt", "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] - - ["", "", True, "CRYPTO_realloc", "(void *,size_t,const char *,int)", "", "Argument[**0]", "ReturnValue[**]", "value", "dfc-generated"] - - ["", "", True, "CRYPTO_realloc", "(void *,size_t,const char *,int)", "", "Argument[*0]", "ReturnValue[**]", "value", "dfc-generated"] - - ["", "", True, "CRYPTO_realloc", "(void *,size_t,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] - - ["", "", True, "CRYPTO_realloc", "(void *,size_t,const char *,int)", "", "Argument[0]", "ReturnValue[**]", "taint", "dfc-generated"] - - ["", "", True, "CRYPTO_realloc", "(void *,size_t,const char *,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] - ["", "", True, "CRYPTO_secure_clear_free", "(void *,size_t,const char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] - ["", "", True, "CRYPTO_secure_free", "(void *,const char *,int)", "", "Argument[0]", "Argument[*0]", "taint", "df-generated"] - ["", "", True, "CRYPTO_set_ex_data", "(CRYPTO_EX_DATA *,int,void *)", "", "Argument[*2]", "Argument[*0].Field[**sk].Field[***data]", "value", "dfc-generated"] @@ -8898,10 +8893,6 @@ extensions: - ["", "", True, "_CONF_add_string", "(CONF *,CONF_VALUE *,CONF_VALUE *)", "", "Argument[*1].Field[*section]", "Argument[*2].Field[*section]", "value", "dfc-generated"] - ["", "", True, "_CONF_new_section", "(CONF *,const char *)", "", "Argument[*1]", "ReturnValue[*].Field[**section]", "value", "dfc-generated"] - ["", "", True, "_CONF_new_section", "(CONF *,const char *)", "", "Argument[1]", "ReturnValue[*].Field[**section]", "taint", "dfc-generated"] - - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] - - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "__cmsg_nxthdr", "(msghdr *,cmsghdr *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] - ["", "", True, "a2d_ASN1_OBJECT", "(unsigned char *,int,const char *,int)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "a2d_ASN1_OBJECT", "(unsigned char *,int,const char *,int)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "a2i_GENERAL_NAME", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] @@ -8948,14 +8939,6 @@ extensions: - ["", "", True, "args_excert", "(int,SSL_EXCERT **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "async_wait_ctx_reset_counts", "(ASYNC_WAIT_CTX *)", "", "Argument[*0].Field[**fds].Field[**next]", "Argument[*0].Field[**fds]", "value", "dfc-generated"] - ["", "", True, "async_wait_ctx_reset_counts", "(ASYNC_WAIT_CTX *)", "", "Argument[*0].Field[**fds].Field[*next]", "Argument[*0].Field[*fds]", "value", "dfc-generated"] - - ["", "", True, "atof", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atof", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atoi", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atoi", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atol", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atol", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atoll", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atoll", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "b2i_DSA_PVK_bio", "(BIO *,pem_password_cb *,void *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] - ["", "", True, "b2i_DSA_PVK_bio", "(BIO *,pem_password_cb *,void *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] - ["", "", True, "b2i_DSA_PVK_bio_ex", "(BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[*2]", "Argument[**2]", "value", "df-generated"] @@ -9108,13 +9091,6 @@ extensions: - ["", "", True, "bn_wexpand", "(BIGNUM *,int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "bn_wexpand", "(BIGNUM *,int)", "", "Argument[1]", "Argument[*0].Field[*dmax]", "value", "dfc-generated"] - ["", "", True, "bn_wexpand", "(BIGNUM *,int)", "", "Argument[1]", "ReturnValue[*].Field[*dmax]", "value", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] - ["", "", True, "ca_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "ca_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "calculate_columns", "(FUNCTION *,DISPLAY_COLUMNS *)", "", "Argument[*1].Field[*width]", "Argument[*1].Field[*columns]", "taint", "dfc-generated"] @@ -17178,18 +17154,12 @@ extensions: - ["", "", True, "fake_rand_start", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - ["", "", True, "fake_rsa_start", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] - ["", "", True, "fake_rsa_start", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "feof_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "ferror_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "fgetc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*0]", "Argument[**3].Field[**handle]", "value", "dfc-generated"] - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[0]", "Argument[**3].Field[*handle]", "value", "dfc-generated"] - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - ["", "", True, "fipsinstall_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "fipsinstall_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - - ["", "", True, "fputc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] - - ["", "", True, "fread_unlocked", "(void *__restrict__,size_t,size_t,FILE *__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "fread_unlocked", "(void *__restrict__,size_t,size_t,FILE *__restrict__)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "gendsa_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "gendsa_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "generic_import", "(void *,int,const OSSL_PARAM[])", "", "Argument[*0].Field[**libctx]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] @@ -17203,9 +17173,6 @@ extensions: - ["", "", True, "get_ca_names", "(SSL_CONNECTION *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] - ["", "", True, "get_passwd", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] - ["", "", True, "get_passwd", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] - - ["", "", True, "getc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] - - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] - - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "gf_add", "(gf,const gf,const gf)", "", "Argument[*1].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] - ["", "", True, "gf_add", "(gf,const gf,const gf)", "", "Argument[*2].Field[*limb]", "Argument[*0].Field[*limb]", "taint", "dfc-generated"] - ["", "", True, "gf_deserialize", "(gf,const uint8_t[56],int,uint8_t)", "", "Argument[*0].Field[*limb]", "ReturnValue", "taint", "dfc-generated"] @@ -18328,11 +18295,6 @@ extensions: - ["", "", True, "lookup_sess_in_cache", "(SSL_CONNECTION *,const unsigned char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] - ["", "", True, "mac_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "mac_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - - ["", "", True, "main", "(int,char **)", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] - - ["", "", True, "main", "(int,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "main", "(int,char *[])", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] - - ["", "", True, "main", "(int,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] - - ["", "", True, "main", "(int,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "make_engine_uri", "(ENGINE *,const char *,const char *)", "", "Argument[*0].Field[**id]", "ReturnValue[*]", "value", "dfc-generated"] - ["", "", True, "make_engine_uri", "(ENGINE *,const char *,const char *)", "", "Argument[*0].Field[*id]", "ReturnValue[*]", "taint", "dfc-generated"] - ["", "", True, "make_engine_uri", "(ENGINE *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] @@ -18340,13 +18302,6 @@ extensions: - ["", "", True, "make_uppercase", "(char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "md4_block_data_order", "(MD4_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] - ["", "", True, "md4_block_data_order", "(MD4_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[**1]", "Argument[*0]", "value", "dfc-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[**1]", "ReturnValue[**]", "value", "dfc-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[**]", "value", "df-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "mempacket_test_inject", "(BIO *,const char *,int,int,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[**0]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[**1]", "ReturnValue", "taint", "dfc-generated"] @@ -21332,7 +21287,6 @@ extensions: - ["", "", True, "print_verify_detail", "(SSL *,BIO *)", "", "Argument[*0].Field[**tls].Field[**param]", "Argument[*0].Field[**param]", "value", "dfc-generated"] - ["", "", True, "process_responder", "(OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] - ["", "", True, "pulldown_test_framework", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["", "", True, "putc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] - ["", "", True, "qtest_create_injector", "(QUIC_TSERVER *)", "", "Argument[*0]", "ReturnValue[*].Field[**qtserv]", "value", "dfc-generated"] - ["", "", True, "qtest_create_injector", "(QUIC_TSERVER *)", "", "Argument[0]", "ReturnValue[*].Field[*qtserv]", "value", "dfc-generated"] - ["", "", True, "qtest_create_quic_connection", "(QUIC_TSERVER *,SSL *)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] @@ -21430,16 +21384,12 @@ extensions: - ["", "", True, "smime_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "smime_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] - ["", "", True, "smime_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "snprintf", "(char *__restrict__,size_t,const char *__restrict__,...)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] - - ["", "", True, "snprintf", "(char *__restrict__,size_t,const char *__restrict__,...)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "speed_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "speed_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "speed_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] - ["", "", True, "speed_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "spkac_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "spkac_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - - ["", "", True, "sprintf", "(char *__restrict__,const char *__restrict__,...)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] - - ["", "", True, "sprintf", "(char *__restrict__,const char *__restrict__,...)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "srp_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "srp_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "srp_main", "(int,char **,char *[])", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] @@ -21848,8 +21798,6 @@ extensions: - ["", "", True, "tls_write_records_default", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t)", "", "Argument[*1].Field[*buflen]", "Argument[*0].Field[**compctx].Field[*compress_in]", "taint", "dfc-generated"] - ["", "", True, "tls_write_records_multiblock", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t)", "", "Argument[*1].Field[*buflen]", "Argument[*0].Field[**compctx].Field[*compress_in]", "taint", "dfc-generated"] - ["", "", True, "tls_write_records_multiblock", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t)", "", "Argument[2]", "Argument[*0].Field[*sequence]", "taint", "dfc-generated"] - - ["", "", True, "tolower", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["", "", True, "toupper", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "ts_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "ts_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "unpack_revinfo", "(ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *)", "", "Argument[*4]", "Argument[**0].Field[**data]", "value", "dfc-generated"] diff --git a/cpp/ql/lib/ext/generated/sqlite.model.yml b/cpp/ql/lib/ext/generated/sqlite.model.yml index e1e91a4a848..29251e3be96 100644 --- a/cpp/ql/lib/ext/generated/sqlite.model.yml +++ b/cpp/ql/lib/ext/generated/sqlite.model.yml @@ -417,21 +417,6 @@ extensions: - ["", "", True, "append_str", "(const char *,int,int,int)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] - ["", "", True, "append_str", "(const char *,int,int,int)", "", "Argument[1]", "ReturnValue[*].Field[*sz]", "taint", "dfc-generated"] - ["", "", True, "append_str", "(const char *,int,int,int)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] - - ["", "", True, "atof", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atof", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atoi", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atoi", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atol", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atol", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atoll", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "atoll", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[2]", "ReturnValue[*]", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "bsearch", "(const void *,const void *,size_t,size_t,__compar_fn_t)", "", "Argument[3]", "ReturnValue[*]", "taint", "dfc-generated"] - ["", "", True, "close_db", "(sqlite3 *)", "", "Argument[0]", "Argument[*0].Field[**pErr].Field[*db]", "value", "dfc-generated"] - ["", "", True, "compute_action", "(lemon *,action *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] - ["", "", True, "confighash", "(config *)", "", "Argument[*0].Field[**rp].Field[*index]", "ReturnValue", "taint", "dfc-generated"] @@ -441,9 +426,6 @@ extensions: - ["", "", True, "emit_code", "(FILE *,rule *,lemon *,int *)", "", "Argument[3]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "emit_code", "(FILE *,rule *,lemon *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - ["", "", True, "emit_destructor_code", "(FILE *,symbol *,lemon *,int *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "feof_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "ferror_unlocked", "(FILE *)", "", "Argument[*0].Field[*_flags]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "fgetc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] - ["", "", True, "file_makename", "(lemon *,const char *)", "", "Argument[*0].Field[**filename]", "ReturnValue[*]", "value", "dfc-generated"] - ["", "", True, "file_makename", "(lemon *,const char *)", "", "Argument[*0].Field[*filename]", "ReturnValue[*]", "taint", "dfc-generated"] - ["", "", True, "file_makename", "(lemon *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] @@ -452,12 +434,6 @@ extensions: - ["", "", True, "file_open", "(lemon *,const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "taint", "dfc-generated"] - ["", "", True, "file_open", "(lemon *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[**outname]", "taint", "dfc-generated"] - ["", "", True, "file_open", "(lemon *,const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] - - ["", "", True, "fputc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] - - ["", "", True, "fread_unlocked", "(void *__restrict__,size_t,size_t,FILE *__restrict__)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "fread_unlocked", "(void *__restrict__,size_t,size_t,FILE *__restrict__)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "getc_unlocked", "(FILE *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] - - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] - - ["", "", True, "getline", "(char **,char **__restrict__,size_t *,size_t *__restrict__,FILE *,FILE *__restrict__)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "getstate", "(lemon *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] - ["", "", True, "has_destructor", "(symbol *,lemon *)", "", "Argument[*1].Field[*tokendest]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "jim_regcomp", "(regex_t *,const char *,int)", "", "Argument[*1]", "Argument[*0].Field[**regparse]", "value", "dfc-generated"] @@ -471,19 +447,7 @@ extensions: - ["", "", True, "jim_regexec", "(regex_t *,const char *,size_t,regmatch_t[],int)", "", "Argument[2]", "Argument[*0].Field[*nmatch]", "value", "dfc-generated"] - ["", "", True, "jim_regexec", "(regex_t *,const char *,size_t,regmatch_t[],int)", "", "Argument[3]", "Argument[*0].Field[*pmatch]", "value", "dfc-generated"] - ["", "", True, "jim_regexec", "(regex_t *,const char *,size_t,regmatch_t[],int)", "", "Argument[4]", "Argument[*0].Field[*eflags]", "value", "dfc-generated"] - - ["", "", True, "main", "(int,char **)", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - - ["", "", True, "main", "(int,char **)", "", "Argument[1]", "Argument[**1]", "taint", "dfc-generated"] - - ["", "", True, "main", "(int,char **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "main", "(int,char *const[])", "", "Argument[*1]", "Argument[**1]", "taint", "dfc-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[**1]", "Argument[*0]", "value", "dfc-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[**1]", "ReturnValue[**]", "value", "dfc-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "Argument[**1]", "value", "df-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "Argument[*0]", "value", "df-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[**]", "value", "df-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[*1]", "ReturnValue[*]", "value", "df-generated"] - - ["", "", True, "memcpy", "(void *__restrict__,const void *__restrict__,size_t)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "print_stack_union", "(FILE *,lemon *,int *,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] - - ["", "", True, "putc_unlocked", "(int,FILE *)", "", "Argument[0]", "Argument[*1].Field[**_IO_write_ptr]", "value", "dfc-generated"] - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[**4]", "ReturnValue[*].Field[***pSqlCtx]", "value", "dfc-generated"] - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[*1]", "ReturnValue[*].Field[**zDb]", "value", "dfc-generated"] - ["", "", True, "recoverInit", "(sqlite3 *,const char *,const char *,..(*)(..),void *)", "", "Argument[*2]", "ReturnValue[*].Field[**zUri]", "value", "dfc-generated"] @@ -501,10 +465,6 @@ extensions: - ["", "", True, "sha1sum_file", "(const char *,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "sha3sum_file", "(const char *,char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "shellReset", "(int *,sqlite3_stmt *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] - - ["", "", True, "snprintf", "(char *__restrict__,size_t,const char *__restrict__,...)", "", "Argument[*2]", "Argument[*0]", "taint", "dfc-generated"] - - ["", "", True, "snprintf", "(char *__restrict__,size_t,const char *__restrict__,...)", "", "Argument[2]", "Argument[*0]", "taint", "dfc-generated"] - - ["", "", True, "sprintf", "(char *__restrict__,const char *__restrict__,...)", "", "Argument[*1]", "Argument[*0]", "taint", "dfc-generated"] - - ["", "", True, "sprintf", "(char *__restrict__,const char *__restrict__,...)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "sqlite3CompletionVtabInit", "(sqlite3 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] - ["", "", True, "sqlite3_aggregate_context", "(sqlite3_context *,int)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] - ["", "", True, "sqlite3_aggregate_context", "(sqlite3_context *,int)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] @@ -967,8 +927,6 @@ extensions: - ["", "", True, "statehash", "(config *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] - ["", "", True, "strhash", "(const char *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "strhash", "(const char *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "tolower", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["", "", True, "toupper", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "tplt_linedir", "(FILE *,int,char *)", "", "Argument[1]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "tplt_linedir", "(FILE *,int,char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] - ["", "", True, "tplt_print", "(FILE *,lemon *,char *,int *)", "", "Argument[*1].Field[*outname]", "Argument[*1].Field[**outname]", "taint", "dfc-generated"] From bebc077c9e71199ee8e8ac96cb2f24d31ffb8702 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 14 May 2025 12:44:50 +0100 Subject: [PATCH 438/656] C++: Accept test changes. --- .../dataflow/external-models/flow.expected | 24 +- .../external-models/validatemodels.expected | 3744 +++ .../taint-tests/test_mad-signatures.expected | 27680 ++++++++++++++++ 3 files changed, 31436 insertions(+), 12 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index 66709332e61..e071294adfe 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -10,31 +10,31 @@ edges | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:103:29:103:39 | *send_buffer | provenance | Sink:MaD:6 | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | provenance | | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | MaD:10 | -| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:969 | -| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:970 | -| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:971 | +| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:23740 | +| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:23741 | +| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:23742 | | test.cpp:7:47:7:52 | value2 | test.cpp:7:64:7:69 | value2 | provenance | | | test.cpp:7:64:7:69 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | provenance | | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:967 | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:968 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:23738 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:23739 | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:17:24:17:24 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:21:27:21:27 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:25:35:25:35 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:32:41:32:41 | x | provenance | | | test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | | -| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:968 | +| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:23739 | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | provenance | | -| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:969 | +| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:23740 | | test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | | -| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:968 | +| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:23739 | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | provenance | | -| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:970 | +| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:23741 | | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | | -| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:968 | +| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:23739 | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | provenance | | -| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:971 | +| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:23742 | | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | -| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:968 | +| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:23739 | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | provenance | | | test.cpp:32:41:32:41 | x | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | nodes diff --git a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected index 718cf020c4d..440183ae3a9 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected @@ -13,23 +13,2555 @@ | Dubious member name "operator->" in summary model. | | Dubious member name "operator=" in summary model. | | Dubious member name "operator[]" in summary model. | +| Dubious signature "(..(*)(..))" in summary model. | +| Dubious signature "(..(*)(..),..(*)(..),..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(..(*)(..),d2i_of_void *,BIO *,void **)" in summary model. | +| Dubious signature "(..(*)(..),d2i_of_void *,FILE *,void **)" in summary model. | +| Dubious signature "(..(*)(..),void *)" in summary model. | +| Dubious signature "(..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *)" in summary model. | +| Dubious signature "(ACCESS_DESCRIPTION *)" in summary model. | +| Dubious signature "(ACCESS_DESCRIPTION **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ADMISSIONS *)" in summary model. | +| Dubious signature "(ADMISSIONS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ADMISSIONS *,GENERAL_NAME *)" in summary model. | +| Dubious signature "(ADMISSIONS *,NAMING_AUTHORITY *)" in summary model. | +| Dubious signature "(ADMISSIONS *,PROFESSION_INFOS *)" in summary model. | +| Dubious signature "(ADMISSION_SYNTAX *)" in summary model. | +| Dubious signature "(ADMISSION_SYNTAX **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ADMISSION_SYNTAX *,GENERAL_NAME *)" in summary model. | +| Dubious signature "(ADMISSION_SYNTAX *,stack_st_ADMISSIONS *)" in summary model. | +| Dubious signature "(AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int)" in summary model. | +| Dubious signature "(ARGS *,char *)" in summary model. | +| Dubious signature "(ASIdOrRange *)" in summary model. | +| Dubious signature "(ASIdOrRange **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASIdentifierChoice *)" in summary model. | +| Dubious signature "(ASIdentifierChoice **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASIdentifiers *)" in summary model. | +| Dubious signature "(ASIdentifiers **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_BIT_STRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_BIT_STRING *,const char *,int,BIT_STRING_BITNAME *)" in summary model. | +| Dubious signature "(ASN1_BIT_STRING *,int,int)" in summary model. | +| Dubious signature "(ASN1_BIT_STRING *,unsigned char **)" in summary model. | +| Dubious signature "(ASN1_BIT_STRING *,unsigned char *,int)" in summary model. | +| Dubious signature "(ASN1_BMPSTRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_ENUMERATED **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_ENUMERATED *,int64_t)" in summary model. | +| Dubious signature "(ASN1_ENUMERATED *,long)" in summary model. | +| Dubious signature "(ASN1_GENERALIZEDTIME **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_GENERALIZEDTIME *,const char *)" in summary model. | +| Dubious signature "(ASN1_GENERALIZEDTIME *,time_t)" in summary model. | +| Dubious signature "(ASN1_GENERALIZEDTIME *,time_t,int,long)" in summary model. | +| Dubious signature "(ASN1_GENERALSTRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_IA5STRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_INTEGER **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_INTEGER *,int64_t)" in summary model. | +| Dubious signature "(ASN1_INTEGER *,long)" in summary model. | +| Dubious signature "(ASN1_INTEGER *,uint64_t)" in summary model. | +| Dubious signature "(ASN1_INTEGER *,unsigned char **)" in summary model. | +| Dubious signature "(ASN1_NULL *)" in summary model. | +| Dubious signature "(ASN1_NULL **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *)" in summary model. | +| Dubious signature "(ASN1_OBJECT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_OBJECT *,ASN1_TYPE *)" in summary model. | +| Dubious signature "(ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *)" in summary model. | +| Dubious signature "(ASN1_OCTET_STRING **,X509 *)" in summary model. | +| Dubious signature "(ASN1_OCTET_STRING **,const ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(ASN1_OCTET_STRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_OCTET_STRING **,const unsigned char *,int)" in summary model. | +| Dubious signature "(ASN1_OCTET_STRING *,X509 *)" in summary model. | +| Dubious signature "(ASN1_OCTET_STRING *,const unsigned char *,int)" in summary model. | +| Dubious signature "(ASN1_PCTX *,unsigned long)" in summary model. | +| Dubious signature "(ASN1_PRINTABLESTRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_SCTX *)" in summary model. | +| Dubious signature "(ASN1_SCTX *,void *)" in summary model. | +| Dubious signature "(ASN1_SEQUENCE_ANY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_STRING *)" in summary model. | +| Dubious signature "(ASN1_STRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_STRING **,const unsigned char *,int,int,int)" in summary model. | +| Dubious signature "(ASN1_STRING **,const unsigned char *,int,int,unsigned long)" in summary model. | +| Dubious signature "(ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long)" in summary model. | +| Dubious signature "(ASN1_STRING *,const ASN1_STRING *)" in summary model. | +| Dubious signature "(ASN1_STRING *,const void *,int)" in summary model. | +| Dubious signature "(ASN1_STRING *,int)" in summary model. | +| Dubious signature "(ASN1_STRING *,unsigned int)" in summary model. | +| Dubious signature "(ASN1_STRING *,void *,int)" in summary model. | +| Dubious signature "(ASN1_T61STRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_TIME *)" in summary model. | +| Dubious signature "(ASN1_TIME **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *)" in summary model. | +| Dubious signature "(ASN1_TIME *,const char *)" in summary model. | +| Dubious signature "(ASN1_TIME *,int,long,time_t *)" in summary model. | +| Dubious signature "(ASN1_TIME *,long)" in summary model. | +| Dubious signature "(ASN1_TIME *,long,time_t *)" in summary model. | +| Dubious signature "(ASN1_TIME *,time_t)" in summary model. | +| Dubious signature "(ASN1_TIME *,time_t,int,long)" in summary model. | +| Dubious signature "(ASN1_TIME *,tm *,int)" in summary model. | +| Dubious signature "(ASN1_TYPE *)" in summary model. | +| Dubious signature "(ASN1_TYPE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_TYPE *,int,const void *)" in summary model. | +| Dubious signature "(ASN1_TYPE *,int,void *)" in summary model. | +| Dubious signature "(ASN1_TYPE *,unsigned char *,int)" in summary model. | +| Dubious signature "(ASN1_UNIVERSALSTRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_UTCTIME **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_UTCTIME *,const char *)" in summary model. | +| Dubious signature "(ASN1_UTCTIME *,time_t)" in summary model. | +| Dubious signature "(ASN1_UTCTIME *,time_t,int,long)" in summary model. | +| Dubious signature "(ASN1_UTF8STRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASN1_VALUE **,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(ASN1_VALUE **,const ASN1_ITEM *,int)" in summary model. | +| Dubious signature "(ASN1_VALUE **,const ASN1_TEMPLATE *)" in summary model. | +| Dubious signature "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *)" in summary model. | +| Dubious signature "(ASN1_VALUE **,const unsigned char *,int,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(ASN1_VALUE **,int,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(ASN1_VALUE *,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(ASN1_VISIBLESTRING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASRange *)" in summary model. | +| Dubious signature "(ASRange **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ASYNC_JOB *)" in summary model. | +| Dubious signature "(ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t)" in summary model. | +| Dubious signature "(ASYNC_WAIT_CTX *)" in summary model. | +| Dubious signature "(ASYNC_WAIT_CTX *,ASYNC_callback_fn *,void **)" in summary model. | +| Dubious signature "(ASYNC_WAIT_CTX *,ASYNC_callback_fn,void *)" in summary model. | +| Dubious signature "(ASYNC_WAIT_CTX *,const void *,int *,void **)" in summary model. | +| Dubious signature "(ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..))" in summary model. | +| Dubious signature "(ASYNC_WAIT_CTX *,int *,size_t *)" in summary model. | +| Dubious signature "(ASYNC_WAIT_CTX *,int *,size_t *,int *,size_t *)" in summary model. | +| Dubious signature "(ASYNC_WAIT_CTX *,int)" in summary model. | +| Dubious signature "(AUTHORITY_INFO_ACCESS *)" in summary model. | +| Dubious signature "(AUTHORITY_INFO_ACCESS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(AUTHORITY_KEYID *)" in summary model. | +| Dubious signature "(AUTHORITY_KEYID **,const unsigned char **,long)" in summary model. | +| Dubious signature "(BASIC_CONSTRAINTS *)" in summary model. | +| Dubious signature "(BASIC_CONSTRAINTS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(BIGNUM *)" in summary model. | +| Dubious signature "(BIGNUM **,const char *)" in summary model. | +| Dubious signature "(BIGNUM *,ASN1_INTEGER *)" in summary model. | +| Dubious signature "(BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)" in summary model. | +| Dubious signature "(BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)" in summary model. | +| Dubious signature "(BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *)" in summary model. | +| Dubious signature "(BIGNUM *,BIGNUM *,BN_BLINDING *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)" in summary model. | +| Dubious signature "(BIGNUM *,BIGNUM *,const unsigned char **,size_t)" in summary model. | +| Dubious signature "(BIGNUM *,BIGNUM *,int,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,BN_BLINDING *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,BN_BLINDING *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const BIGNUM *,int)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const int[])" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,const int[],BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,int)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,int,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,int,const BIGNUM *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,const unsigned long *,int)" in summary model. | +| Dubious signature "(BIGNUM *,int)" in summary model. | +| Dubious signature "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *)" in summary model. | +| Dubious signature "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *)" in summary model. | +| Dubious signature "(BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,int,int,int)" in summary model. | +| Dubious signature "(BIGNUM *,int,int,int,unsigned int,BN_CTX *)" in summary model. | +| Dubious signature "(BIGNUM *,unsigned long)" in summary model. | +| Dubious signature "(BIGNUM *,unsigned long,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *)" in summary model. | +| Dubious signature "(BIO *)" in summary model. | +| Dubious signature "(BIO *,ASN1_VALUE *,BIO *,int,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(BIO *,ASN1_VALUE *,BIO *,int,const char *,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,ASN1_VALUE *,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(BIO *,BIO *)" in summary model. | +| Dubious signature "(BIO *,BIO **)" in summary model. | +| Dubious signature "(BIO *,BIO **,PKCS7 **)" in summary model. | +| Dubious signature "(BIO *,BIO **,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(BIO *,BIO *,int)" in summary model. | +| Dubious signature "(BIO *,BIO_callback_fn)" in summary model. | +| Dubious signature "(BIO *,BIO_callback_fn_ex)" in summary model. | +| Dubious signature "(BIO *,CMS_ContentInfo *)" in summary model. | +| Dubious signature "(BIO *,CMS_ContentInfo **)" in summary model. | +| Dubious signature "(BIO *,CMS_ContentInfo **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,CMS_ContentInfo *,BIO *,int)" in summary model. | +| Dubious signature "(BIO *,DH **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,DSA **)" in summary model. | +| Dubious signature "(BIO *,DSA **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,EC_GROUP **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,EC_KEY **)" in summary model. | +| Dubious signature "(BIO *,EC_KEY **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,EVP_PKEY **)" in summary model. | +| Dubious signature "(BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,EVP_PKEY **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,GENERAL_NAMES *,int)" in summary model. | +| Dubious signature "(BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,NETSCAPE_SPKI *)" in summary model. | +| Dubious signature "(BIO *,OCSP_REQUEST *,unsigned long)" in summary model. | +| Dubious signature "(BIO *,OCSP_RESPONSE *,unsigned long)" in summary model. | +| Dubious signature "(BIO *,OSSL_CMP_MSG **)" in summary model. | +| Dubious signature "(BIO *,PKCS7 *)" in summary model. | +| Dubious signature "(BIO *,PKCS7 **)" in summary model. | +| Dubious signature "(BIO *,PKCS7 **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,PKCS7 *,BIO *,int)" in summary model. | +| Dubious signature "(BIO *,PKCS7 *,PKCS7_SIGNER_INFO *,X509 *)" in summary model. | +| Dubious signature "(BIO *,PKCS8_PRIV_KEY_INFO **)" in summary model. | +| Dubious signature "(BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,PKCS12 **)" in summary model. | +| Dubious signature "(BIO *,RSA **)" in summary model. | +| Dubious signature "(BIO *,RSA **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,SSL_SESSION **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,TS_MSG_IMPRINT **)" in summary model. | +| Dubious signature "(BIO *,TS_REQ *)" in summary model. | +| Dubious signature "(BIO *,TS_REQ **)" in summary model. | +| Dubious signature "(BIO *,TS_RESP *)" in summary model. | +| Dubious signature "(BIO *,TS_RESP **)" in summary model. | +| Dubious signature "(BIO *,TS_TST_INFO *)" in summary model. | +| Dubious signature "(BIO *,TS_TST_INFO **)" in summary model. | +| Dubious signature "(BIO *,X509 *)" in summary model. | +| Dubious signature "(BIO *,X509 **)" in summary model. | +| Dubious signature "(BIO *,X509 **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,X509 *,unsigned long)" in summary model. | +| Dubious signature "(BIO *,X509 *,unsigned long,unsigned long)" in summary model. | +| Dubious signature "(BIO *,X509_ACERT *)" in summary model. | +| Dubious signature "(BIO *,X509_ACERT **)" in summary model. | +| Dubious signature "(BIO *,X509_ACERT **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,X509_ACERT *,unsigned long,unsigned long)" in summary model. | +| Dubious signature "(BIO *,X509_CRL *)" in summary model. | +| Dubious signature "(BIO *,X509_CRL **)" in summary model. | +| Dubious signature "(BIO *,X509_CRL **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,X509_CRL *,unsigned long)" in summary model. | +| Dubious signature "(BIO *,X509_EXTENSION *,unsigned long,int)" in summary model. | +| Dubious signature "(BIO *,X509_PUBKEY **)" in summary model. | +| Dubious signature "(BIO *,X509_PUBKEY **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,X509_REQ *)" in summary model. | +| Dubious signature "(BIO *,X509_REQ **)" in summary model. | +| Dubious signature "(BIO *,X509_REQ **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,X509_REQ *,unsigned long,unsigned long)" in summary model. | +| Dubious signature "(BIO *,X509_SIG **)" in summary model. | +| Dubious signature "(BIO *,X509_SIG **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,char *)" in summary model. | +| Dubious signature "(BIO *,char **,char **,unsigned char **,long *)" in summary model. | +| Dubious signature "(BIO *,char **,char **,unsigned char **,long *,unsigned int)" in summary model. | +| Dubious signature "(BIO *,char *,int)" in summary model. | +| Dubious signature "(BIO *,const ASN1_STRING *,unsigned long)" in summary model. | +| Dubious signature "(BIO *,const ASN1_VALUE *,int,const ASN1_ITEM *,const ASN1_PCTX *)" in summary model. | +| Dubious signature "(BIO *,const BIGNUM *,const char *,int,unsigned char *)" in summary model. | +| Dubious signature "(BIO *,const CMS_ContentInfo *)" in summary model. | +| Dubious signature "(BIO *,const CMS_ContentInfo *,int,const ASN1_PCTX *)" in summary model. | +| Dubious signature "(BIO *,const DH *)" in summary model. | +| Dubious signature "(BIO *,const DSA *)" in summary model. | +| Dubious signature "(BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,const DSA *,int)" in summary model. | +| Dubious signature "(BIO *,const EC_GROUP *)" in summary model. | +| Dubious signature "(BIO *,const EC_KEY *)" in summary model. | +| Dubious signature "(BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,const EVP_MD *,unsigned int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,const EVP_PKEY *)" in summary model. | +| Dubious signature "(BIO *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,const EVP_PKEY *,int,ASN1_PCTX *)" in summary model. | +| Dubious signature "(BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,const EVP_PKEY *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,const EVP_PKEY *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,const NETSCAPE_CERT_SEQUENCE *)" in summary model. | +| Dubious signature "(BIO *,const PKCS7 *)" in summary model. | +| Dubious signature "(BIO *,const PKCS7 *,int,const ASN1_PCTX *)" in summary model. | +| Dubious signature "(BIO *,const PKCS8_PRIV_KEY_INFO *)" in summary model. | +| Dubious signature "(BIO *,const PKCS12 *)" in summary model. | +| Dubious signature "(BIO *,const RSA *)" in summary model. | +| Dubious signature "(BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,const RSA *,int)" in summary model. | +| Dubious signature "(BIO *,const SSL_SESSION *)" in summary model. | +| Dubious signature "(BIO *,const X509 *)" in summary model. | +| Dubious signature "(BIO *,const X509_ACERT *)" in summary model. | +| Dubious signature "(BIO *,const X509_CRL *)" in summary model. | +| Dubious signature "(BIO *,const X509_INFO *,EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,const X509_NAME *,int,unsigned long)" in summary model. | +| Dubious signature "(BIO *,const X509_PUBKEY *)" in summary model. | +| Dubious signature "(BIO *,const X509_REQ *)" in summary model. | +| Dubious signature "(BIO *,const X509_SIG *)" in summary model. | +| Dubious signature "(BIO *,const char *,OCSP_REQUEST *)" in summary model. | +| Dubious signature "(BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)" in summary model. | +| Dubious signature "(BIO *,const char *,const OCSP_REQUEST *,int)" in summary model. | +| Dubious signature "(BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *)" in summary model. | +| Dubious signature "(BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int)" in summary model. | +| Dubious signature "(BIO *,const char *,int,int,int)" in summary model. | +| Dubious signature "(BIO *,const char *,va_list)" in summary model. | +| Dubious signature "(BIO *,const stack_st_X509_EXTENSION *)" in summary model. | +| Dubious signature "(BIO *,const unsigned char *,long,int)" in summary model. | +| Dubious signature "(BIO *,const unsigned char *,long,int,int)" in summary model. | +| Dubious signature "(BIO *,int *)" in summary model. | +| Dubious signature "(BIO *,int)" in summary model. | +| Dubious signature "(BIO *,int,BIO **,CMS_ContentInfo **)" in summary model. | +| Dubious signature "(BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,int,const ASN1_TYPE *,int)" in summary model. | +| Dubious signature "(BIO *,int,const char *,int,long,long)" in summary model. | +| Dubious signature "(BIO *,int,const char *,size_t,int,long,int,size_t *)" in summary model. | +| Dubious signature "(BIO *,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,size_t,..(*)(..),void *)" in summary model. | +| Dubious signature "(BIO *,stack_st_X509_INFO *,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,unsigned int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(BIO *,void *)" in summary model. | +| Dubious signature "(BIO *,void *,int,int)" in summary model. | +| Dubious signature "(BIO *,void *,size_t,size_t *)" in summary model. | +| Dubious signature "(BIO_ADDR *)" in summary model. | +| Dubious signature "(BIO_ADDR *,const BIO_ADDR *)" in summary model. | +| Dubious signature "(BIO_ADDR *,const sockaddr *)" in summary model. | +| Dubious signature "(BIO_ADDR *,int,const void *,size_t,unsigned short)" in summary model. | +| Dubious signature "(BIO_METHOD *,..(*)(..))" in summary model. | +| Dubious signature "(BIO_MSG *,BIO_MSG *)" in summary model. | +| Dubious signature "(BLAKE2B_CTX *,const BLAKE2B_PARAM *)" in summary model. | +| Dubious signature "(BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *)" in summary model. | +| Dubious signature "(BLAKE2B_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(BLAKE2B_PARAM *,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(BLAKE2B_PARAM *,uint8_t)" in summary model. | +| Dubious signature "(BLAKE2S_CTX *,const BLAKE2S_PARAM *)" in summary model. | +| Dubious signature "(BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *)" in summary model. | +| Dubious signature "(BLAKE2S_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(BLAKE2S_PARAM *,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(BLAKE2S_PARAM *,uint8_t)" in summary model. | +| Dubious signature "(BN_BLINDING *,BN_CTX *)" in summary model. | +| Dubious signature "(BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *)" in summary model. | +| Dubious signature "(BN_BLINDING *,unsigned long)" in summary model. | +| Dubious signature "(BN_CTX *)" in summary model. | +| Dubious signature "(BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *)" in summary model. | +| Dubious signature "(BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(BN_CTX *,const DSA *,const BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *)" in summary model. | +| Dubious signature "(BN_GENCB *)" in summary model. | +| Dubious signature "(BN_GENCB *,..(*)(..),void *)" in summary model. | +| Dubious signature "(BN_GENCB *,EVP_PKEY_CTX *)" in summary model. | +| Dubious signature "(BN_MONT_CTX **,CRYPTO_RWLOCK *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(BN_MONT_CTX *,BN_MONT_CTX *)" in summary model. | +| Dubious signature "(BN_MONT_CTX *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t)" in summary model. | +| Dubious signature "(BN_RECP_CTX *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(BUF_MEM *,size_t)" in summary model. | +| Dubious signature "(CA_DB *,time_t *)" in summary model. | | Dubious signature "(CAtlFile &)" in summary model. | +| Dubious signature "(CCM128_CONTEXT *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(CCM128_CONTEXT *,const unsigned char *,size_t,size_t)" in summary model. | +| Dubious signature "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f)" in summary model. | +| Dubious signature "(CCM128_CONTEXT *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f)" in summary model. | | Dubious signature "(CComBSTR &&)" in summary model. | +| Dubious signature "(CERT *)" in summary model. | +| Dubious signature "(CERT *,..(*)(..),void *)" in summary model. | +| Dubious signature "(CERT *,X509 *)" in summary model. | +| Dubious signature "(CERT *,X509_STORE **,int)" in summary model. | +| Dubious signature "(CERT *,const int *,size_t,int)" in summary model. | +| Dubious signature "(CERT *,const uint16_t *,size_t,int)" in summary model. | +| Dubious signature "(CERTIFICATEPOLICIES *)" in summary model. | +| Dubious signature "(CERTIFICATEPOLICIES **,const unsigned char **,long)" in summary model. | +| Dubious signature "(CMAC_CTX *)" in summary model. | +| Dubious signature "(CMAC_CTX *,const CMAC_CTX *)" in summary model. | +| Dubious signature "(CMAC_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *)" in summary model. | +| Dubious signature "(CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(CMAC_CTX *,unsigned char *,size_t *)" in summary model. | +| Dubious signature "(CMS_ContentInfo *)" in summary model. | +| Dubious signature "(CMS_ContentInfo **,const unsigned char **,long)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,BIO *)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,BIO *,BIO *,unsigned int)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,BIO *,const unsigned char *,unsigned int)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,EVP_PKEY *,X509 *)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,EVP_PKEY *,X509 *,BIO *,BIO *,unsigned int)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,EVP_PKEY *,X509 *,X509 *)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,X509 *)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,X509 *,EVP_PKEY *,X509 *,unsigned int)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,X509 *,EVP_PKEY *,const EVP_MD *,unsigned int)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,X509 *,unsigned int)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,X509_CRL *)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,const unsigned char *,size_t,BIO *,BIO *,unsigned int)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,const unsigned char *,unsigned int,BIO *,unsigned int)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,stack_st_X509 **)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int)" in summary model. | +| Dubious signature "(CMS_ContentInfo *,stack_st_X509_CRL **)" in summary model. | +| Dubious signature "(CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *)" in summary model. | +| Dubious signature "(CMS_EnvelopedData *)" in summary model. | +| Dubious signature "(CMS_EnvelopedData *,BIO *,EVP_PKEY *,X509 *,ASN1_OCTET_STRING *,unsigned int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(CMS_IssuerAndSerialNumber **,X509 *)" in summary model. | +| Dubious signature "(CMS_IssuerAndSerialNumber *,X509 *)" in summary model. | +| Dubious signature "(CMS_ReceiptRequest *)" in summary model. | +| Dubious signature "(CMS_ReceiptRequest **,const unsigned char **,long)" in summary model. | +| Dubious signature "(CMS_ReceiptRequest *,ASN1_STRING **,int *,stack_st_GENERAL_NAMES **,stack_st_GENERAL_NAMES **)" in summary model. | +| Dubious signature "(CMS_RecipientEncryptedKey *,X509 *)" in summary model. | +| Dubious signature "(CMS_RecipientInfo *)" in summary model. | +| Dubious signature "(CMS_RecipientInfo *,X509 *)" in summary model. | +| Dubious signature "(CMS_RecipientInfo *,X509 *,EVP_PKEY *,X509 *,EVP_PKEY *,unsigned int,const CMS_CTX *)" in summary model. | +| Dubious signature "(CMS_RecipientInfo *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(CMS_SignedData *)" in summary model. | +| Dubious signature "(CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(CMS_SignerIdentifier *,ASN1_OCTET_STRING **,X509_NAME **,ASN1_INTEGER **)" in summary model. | +| Dubious signature "(CMS_SignerIdentifier *,X509 *)" in summary model. | +| Dubious signature "(CMS_SignerIdentifier *,X509 *,int,const CMS_CTX *)" in summary model. | +| Dubious signature "(CMS_SignerInfo *)" in summary model. | +| Dubious signature "(CMS_SignerInfo *,BIO *)" in summary model. | +| Dubious signature "(CMS_SignerInfo *,CMS_ReceiptRequest *)" in summary model. | +| Dubious signature "(CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **)" in summary model. | +| Dubious signature "(CMS_SignerInfo *,X509 *)" in summary model. | +| Dubious signature "(CMS_SignerInfo *,X509 *,EVP_PKEY *,stack_st_X509 *,unsigned int)" in summary model. | +| Dubious signature "(CMS_SignerInfo *,X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(CMS_SignerInfo *,int)" in summary model. | +| Dubious signature "(CMS_SignerInfo *,stack_st_X509_ALGOR *)" in summary model. | +| Dubious signature "(COMP_CTX *,unsigned char *,int,unsigned char *,int)" in summary model. | +| Dubious signature "(COMP_METHOD *)" in summary model. | +| Dubious signature "(CONF *,CONF_VALUE *,CONF_VALUE *)" in summary model. | +| Dubious signature "(CONF *,X509V3_CTX *,const char *,stack_st_X509_EXTENSION **)" in summary model. | +| Dubious signature "(CONF *,X509V3_CTX *,int,const char *)" in summary model. | +| Dubious signature "(CONF *,const char *)" in summary model. | +| Dubious signature "(CONF *,const char *,TS_serial_cb,TS_RESP_CTX *)" in summary model. | +| Dubious signature "(CONF *,const char *,X509_ACERT *)" in summary model. | +| Dubious signature "(CONF *,lhash_st_CONF_VALUE *)" in summary model. | +| Dubious signature "(CONF_IMODULE *,unsigned long)" in summary model. | +| Dubious signature "(CONF_IMODULE *,void *)" in summary model. | +| Dubious signature "(CONF_MODULE *)" in summary model. | +| Dubious signature "(CONF_MODULE *,void *)" in summary model. | +| Dubious signature "(CRL_DIST_POINTS *)" in summary model. | +| Dubious signature "(CRL_DIST_POINTS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(CRYPTO_EX_DATA *,int,void *)" in summary model. | +| Dubious signature "(CRYPTO_RCU_LOCK *,rcu_cb_fn,void *)" in summary model. | +| Dubious signature "(CRYPTO_THREAD *,CRYPTO_THREAD_RETVAL *)" in summary model. | +| Dubious signature "(CRYPTO_THREAD_LOCAL *)" in summary model. | +| Dubious signature "(CRYPTO_THREAD_LOCAL *,void *)" in summary model. | +| Dubious signature "(CRYPTO_THREAD_ROUTINE,void *,int)" in summary model. | | Dubious signature "(CRegKey &)" in summary model. | +| Dubious signature "(CTLOG **,const char *,const char *)" in summary model. | +| Dubious signature "(CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(CT_POLICY_EVAL_CTX *,CTLOG_STORE *)" in summary model. | +| Dubious signature "(CT_POLICY_EVAL_CTX *,X509 *)" in summary model. | +| Dubious signature "(CT_POLICY_EVAL_CTX *,uint64_t)" in summary model. | +| Dubious signature "(DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *)" in summary model. | +| Dubious signature "(DES_cblock *)" in summary model. | +| Dubious signature "(DH *)" in summary model. | +| Dubious signature "(DH **,const unsigned char **,long)" in summary model. | +| Dubious signature "(DH *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(DH *,BIGNUM *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(DH *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(DH *,OSSL_PARAM_BLD *,OSSL_PARAM[])" in summary model. | +| Dubious signature "(DH *,OSSL_PARAM_BLD *,OSSL_PARAM[],int)" in summary model. | +| Dubious signature "(DH *,const DH_METHOD *)" in summary model. | +| Dubious signature "(DH *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(DH *,const OSSL_PARAM[],int)" in summary model. | +| Dubious signature "(DH *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(DH *,int)" in summary model. | +| Dubious signature "(DH *,int,int,int,BN_GENCB *)" in summary model. | +| Dubious signature "(DH *,long)" in summary model. | +| Dubious signature "(DH_METHOD *,..(*)(..))" in summary model. | +| Dubious signature "(DH_METHOD *,const char *)" in summary model. | +| Dubious signature "(DH_METHOD *,int)" in summary model. | +| Dubious signature "(DH_METHOD *,void *)" in summary model. | +| Dubious signature "(DIST_POINT *)" in summary model. | +| Dubious signature "(DIST_POINT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(DIST_POINT_NAME *)" in summary model. | +| Dubious signature "(DIST_POINT_NAME **,const unsigned char **,long)" in summary model. | +| Dubious signature "(DIST_POINT_NAME *,const X509_NAME *)" in summary model. | +| Dubious signature "(DSA *)" in summary model. | +| Dubious signature "(DSA **,const unsigned char **,long)" in summary model. | +| Dubious signature "(DSA *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(DSA *,BIGNUM *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(DSA *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(DSA *,const DSA_METHOD *)" in summary model. | +| Dubious signature "(DSA *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(DSA *,const OSSL_PARAM[],int)" in summary model. | +| Dubious signature "(DSA *,int)" in summary model. | +| Dubious signature "(DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *)" in summary model. | +| Dubious signature "(DSA *,int,int,int,BN_GENCB *)" in summary model. | +| Dubious signature "(DSA_METHOD *,..(*)(..))" in summary model. | +| Dubious signature "(DSA_METHOD *,const char *)" in summary model. | +| Dubious signature "(DSA_METHOD *,int)" in summary model. | +| Dubious signature "(DSA_METHOD *,void *)" in summary model. | +| Dubious signature "(DSA_SIG **,const unsigned char **,long)" in summary model. | +| Dubious signature "(DSA_SIG *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(DSO *)" in summary model. | +| Dubious signature "(DSO *,const char *)" in summary model. | +| Dubious signature "(DSO *,const char *,DSO_METHOD *,int)" in summary model. | +| Dubious signature "(DSO *,int,long,void *)" in summary model. | | Dubious signature "(DWORD &,LPCTSTR)" in summary model. | +| Dubious signature "(ECDSA_SIG **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ECDSA_SIG *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(ECPARAMETERS *)" in summary model. | +| Dubious signature "(ECPKPARAMETERS *)" in summary model. | +| Dubious signature "(ECPKPARAMETERS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ECX_KEY *)" in summary model. | +| Dubious signature "(ECX_KEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t)" in summary model. | +| Dubious signature "(ECX_KEY *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(ECX_KEY *,const OSSL_PARAM[],int)" in summary model. | +| Dubious signature "(EC_GROUP **,const unsigned char **,long)" in summary model. | +| Dubious signature "(EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(EC_GROUP *,const EC_GROUP *)" in summary model. | +| Dubious signature "(EC_GROUP *,const EC_POINT *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(EC_GROUP *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(EC_GROUP *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(EC_GROUP *,int)" in summary model. | +| Dubious signature "(EC_GROUP *,point_conversion_form_t)" in summary model. | +| Dubious signature "(EC_KEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(EC_KEY *,BN_CTX *,BIGNUM **,BIGNUM **)" in summary model. | +| Dubious signature "(EC_KEY *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(EC_KEY *,const BIGNUM *)" in summary model. | +| Dubious signature "(EC_KEY *,const EC_GROUP *)" in summary model. | +| Dubious signature "(EC_KEY *,const EC_KEY *)" in summary model. | +| Dubious signature "(EC_KEY *,const EC_KEY_METHOD *)" in summary model. | +| Dubious signature "(EC_KEY *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(EC_KEY *,const OSSL_PARAM[],int)" in summary model. | +| Dubious signature "(EC_KEY *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(EC_KEY *,const unsigned char *,size_t,BN_CTX *)" in summary model. | +| Dubious signature "(EC_KEY *,int)" in summary model. | +| Dubious signature "(EC_KEY *,point_conversion_form_t)" in summary model. | +| Dubious signature "(EC_KEY *,unsigned int)" in summary model. | +| Dubious signature "(EC_KEY_METHOD *,..(*)(..))" in summary model. | +| Dubious signature "(EC_KEY_METHOD *,..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(EC_POINT *,const EC_POINT *)" in summary model. | +| Dubious signature "(EC_PRE_COMP *)" in summary model. | +| Dubious signature "(EC_PRIVATEKEY *)" in summary model. | +| Dubious signature "(EC_PRIVATEKEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(EDIPARTYNAME *)" in summary model. | +| Dubious signature "(EDIPARTYNAME **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ENGINE *)" in summary model. | +| Dubious signature "(ENGINE *,ENGINE_CIPHERS_PTR)" in summary model. | +| Dubious signature "(ENGINE *,ENGINE_CTRL_FUNC_PTR)" in summary model. | +| Dubious signature "(ENGINE *,ENGINE_DIGESTS_PTR)" in summary model. | +| Dubious signature "(ENGINE *,ENGINE_DYNAMIC_ID,int)" in summary model. | +| Dubious signature "(ENGINE *,ENGINE_GEN_INT_FUNC_PTR)" in summary model. | +| Dubious signature "(ENGINE *,ENGINE_LOAD_KEY_PTR)" in summary model. | +| Dubious signature "(ENGINE *,ENGINE_PKEY_ASN1_METHS_PTR)" in summary model. | +| Dubious signature "(ENGINE *,ENGINE_PKEY_METHS_PTR)" in summary model. | +| Dubious signature "(ENGINE *,ENGINE_SSL_CLIENT_CERT_PTR)" in summary model. | +| Dubious signature "(ENGINE *,const DH_METHOD *)" in summary model. | +| Dubious signature "(ENGINE *,const DSA_METHOD *)" in summary model. | +| Dubious signature "(ENGINE *,const EC_KEY_METHOD *)" in summary model. | +| Dubious signature "(ENGINE *,const ENGINE_CMD_DEFN *)" in summary model. | +| Dubious signature "(ENGINE *,const RAND_METHOD *)" in summary model. | +| Dubious signature "(ENGINE *,const RSA_METHOD *)" in summary model. | +| Dubious signature "(ENGINE *,const char *)" in summary model. | +| Dubious signature "(ENGINE *,const char *,const char *)" in summary model. | +| Dubious signature "(ENGINE *,const char *,const char *,int)" in summary model. | +| Dubious signature "(ENGINE *,const char *,long,void *,..(*)(..),int)" in summary model. | +| Dubious signature "(ENGINE *,int)" in summary model. | +| Dubious signature "(ENGINE *,int,long,void *,..(*)(..))" in summary model. | +| Dubious signature "(ENGINE_TABLE **)" in summary model. | +| Dubious signature "(ENGINE_TABLE **,ENGINE *)" in summary model. | +| Dubious signature "(ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int)" in summary model. | +| Dubious signature "(ENGINE_TABLE **,int,const char *,int)" in summary model. | +| Dubious signature "(ESS_CERT_ID *)" in summary model. | +| Dubious signature "(ESS_CERT_ID **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ESS_CERT_ID_V2 *)" in summary model. | +| Dubious signature "(ESS_CERT_ID_V2 **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ESS_ISSUER_SERIAL *)" in summary model. | +| Dubious signature "(ESS_ISSUER_SERIAL **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ESS_SIGNING_CERT *)" in summary model. | +| Dubious signature "(ESS_SIGNING_CERT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ESS_SIGNING_CERT_V2 *)" in summary model. | +| Dubious signature "(ESS_SIGNING_CERT_V2 **,const unsigned char **,long)" in summary model. | +| Dubious signature "(EVP_CIPHER *,..(*)(..))" in summary model. | +| Dubious signature "(EVP_CIPHER *,int)" in summary model. | +| Dubious signature "(EVP_CIPHER *,unsigned long)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,ASN1_TYPE *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,ASN1_TYPE *,evp_cipher_aead_asn1_params *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,X509_ALGOR **)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const EVP_CIPHER_CTX *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,int)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,int,int,void *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,unsigned char *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,unsigned char *,int *)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int)" in summary model. | +| Dubious signature "(EVP_CIPHER_CTX *,void *)" in summary model. | +| Dubious signature "(EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(EVP_ENCODE_CTX *)" in summary model. | +| Dubious signature "(EVP_ENCODE_CTX *,const EVP_ENCODE_CTX *)" in summary model. | +| Dubious signature "(EVP_ENCODE_CTX *,unsigned char *,int *)" in summary model. | +| Dubious signature "(EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int)" in summary model. | +| Dubious signature "(EVP_ENCODE_CTX *,unsigned int)" in summary model. | +| Dubious signature "(EVP_KDF *)" in summary model. | +| Dubious signature "(EVP_KDF_CTX *)" in summary model. | +| Dubious signature "(EVP_KEYMGMT *,int)" in summary model. | +| Dubious signature "(EVP_KEYMGMT *,void *)" in summary model. | +| Dubious signature "(EVP_KEYMGMT *,void *,char *,size_t)" in summary model. | +| Dubious signature "(EVP_MAC *)" in summary model. | +| Dubious signature "(EVP_MAC_CTX *)" in summary model. | +| Dubious signature "(EVP_MAC_CTX **,const OSSL_PARAM[],const char *,const char *,const char *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(EVP_MAC_CTX *,const OSSL_PARAM[],const char *,const char *,const char *,const char *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(EVP_MD *,..(*)(..))" in summary model. | +| Dubious signature "(EVP_MD *,int)" in summary model. | +| Dubious signature "(EVP_MD *,unsigned long)" in summary model. | +| Dubious signature "(EVP_MD_CTX *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,..(*)(..))" in summary model. | +| Dubious signature "(EVP_MD_CTX *,BIO *,X509_ALGOR *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,EVP_MD *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,EVP_PKEY_CTX *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(EVP_MD_CTX *,EVP_PKEY_CTX *,const X509_ALGOR *,EVP_PKEY *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,const EVP_MD *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,const EVP_MD *,ENGINE *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,const EVP_MD *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(EVP_MD_CTX *,const EVP_MD *,const uint8_t *,MATRIX *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,const EVP_MD *,int,const uint8_t *,VECTOR *,VECTOR *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,const EVP_MD_CTX *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,const unsigned char *,size_t,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,int)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,unsigned char *,size_t *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,unsigned char *,size_t *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,unsigned char *,unsigned int *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *)" in summary model. | +| Dubious signature "(EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(EVP_PKEY *)" in summary model. | +| Dubious signature "(EVP_PKEY **,const EVP_PKEY *)" in summary model. | +| Dubious signature "(EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(EVP_PKEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(EVP_PKEY *,DH *,dh_st *)" in summary model. | +| Dubious signature "(EVP_PKEY *,DSA *,dsa_st *)" in summary model. | +| Dubious signature "(EVP_PKEY *,EC_KEY *,ec_key_st *)" in summary model. | +| Dubious signature "(EVP_PKEY *,ENGINE *)" in summary model. | +| Dubious signature "(EVP_PKEY *,EVP_KEYMGMT *)" in summary model. | +| Dubious signature "(EVP_PKEY *,EVP_KEYMGMT *,int)" in summary model. | +| Dubious signature "(EVP_PKEY *,EVP_KEYMGMT *,int,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(EVP_PKEY *,EVP_KEYMGMT *,void *)" in summary model. | +| Dubious signature "(EVP_PKEY *,EVP_KEYMGMT *,void *,OSSL_CALLBACK *,void *)" in summary model. | +| Dubious signature "(EVP_PKEY *,EVP_PKEY *,int)" in summary model. | +| Dubious signature "(EVP_PKEY *,OSSL_LIB_CTX *,EVP_KEYMGMT **,const char *)" in summary model. | +| Dubious signature "(EVP_PKEY *,RSA *,rsa_st *)" in summary model. | +| Dubious signature "(EVP_PKEY *,X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(EVP_PKEY *,char *,size_t)" in summary model. | +| Dubious signature "(EVP_PKEY *,const ASN1_OCTET_STRING *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(EVP_PKEY *,const EVP_PKEY *)" in summary model. | +| Dubious signature "(EVP_PKEY *,const char *)" in summary model. | +| Dubious signature "(EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(EVP_PKEY *,const char *,const BIGNUM *)" in summary model. | +| Dubious signature "(EVP_PKEY *,int)" in summary model. | +| Dubious signature "(EVP_PKEY *,int,void *)" in summary model. | +| Dubious signature "(EVP_PKEY *,stack_st_X509 *)" in summary model. | +| Dubious signature "(EVP_PKEY_ASN1_METHOD *,..(*)(..))" in summary model. | +| Dubious signature "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(EVP_PKEY_ASN1_METHOD *,const EVP_PKEY_ASN1_METHOD *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,ASN1_OBJECT *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,ASN1_OBJECT **)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,BIGNUM *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,EVP_PKEY *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,EVP_PKEY **)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,EVP_PKEY **,int,OSSL_PARAM[])" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,EVP_PKEY *,int)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,EVP_PKEY_gen_cb *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,OSSL_PARAM *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,X509_ALGOR **)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,const EVP_MD *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,const EVP_MD **)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,const OSSL_PARAM *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,const char *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,const char *,const char *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,const char *,int)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,const char *,int,int)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,const unsigned char *,int)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,const void *,int)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,int *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,int *,int)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,int)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,int,int,int,int,void *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,int,int,int,uint64_t)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,int,int,int,void *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,size_t *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,uint64_t)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,unsigned char **,size_t *,size_t,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,unsigned char *,size_t *)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(EVP_PKEY_CTX *,void *)" in summary model. | +| Dubious signature "(EVP_PKEY_METHOD *,..(*)(..))" in summary model. | +| Dubious signature "(EVP_PKEY_METHOD *,..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(EVP_PKEY_METHOD *,const EVP_PKEY_METHOD *)" in summary model. | +| Dubious signature "(EVP_RAND *,EVP_RAND_CTX *)" in summary model. | +| Dubious signature "(EVP_RAND_CTX *)" in summary model. | +| Dubious signature "(EVP_RAND_CTX *,..(*)(..))" in summary model. | +| Dubious signature "(EVP_RAND_CTX *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(EVP_SKEY *,OSSL_LIB_CTX *,OSSL_PROVIDER *,const char *)" in summary model. | +| Dubious signature "(EXTENDED_KEY_USAGE *)" in summary model. | +| Dubious signature "(EXTENDED_KEY_USAGE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(FFC_PARAMS *,BIGNUM *)" in summary model. | +| Dubious signature "(FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(FFC_PARAMS *,const DH_NAMED_GROUP *)" in summary model. | +| Dubious signature "(FFC_PARAMS *,const FFC_PARAMS *)" in summary model. | +| Dubious signature "(FFC_PARAMS *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(FFC_PARAMS *,const char *,const char *)" in summary model. | +| Dubious signature "(FFC_PARAMS *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(FFC_PARAMS *,const unsigned char *,size_t,int)" in summary model. | +| Dubious signature "(FFC_PARAMS *,int)" in summary model. | +| Dubious signature "(FFC_PARAMS *,unsigned int)" in summary model. | +| Dubious signature "(FFC_PARAMS *,unsigned int,int)" in summary model. | +| Dubious signature "(FILE *,CMS_ContentInfo **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,DH **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,DSA **)" in summary model. | +| Dubious signature "(FILE *,DSA **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,EC_GROUP **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,EC_KEY **)" in summary model. | +| Dubious signature "(FILE *,EC_KEY **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,EVP_PKEY **)" in summary model. | +| Dubious signature "(FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(FILE *,EVP_PKEY **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,PKCS7 **)" in summary model. | +| Dubious signature "(FILE *,PKCS7 **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,PKCS8_PRIV_KEY_INFO **)" in summary model. | +| Dubious signature "(FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,PKCS12 **)" in summary model. | +| Dubious signature "(FILE *,RSA **)" in summary model. | +| Dubious signature "(FILE *,RSA **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,SSL_SESSION **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,TS_MSG_IMPRINT **)" in summary model. | +| Dubious signature "(FILE *,TS_REQ **)" in summary model. | +| Dubious signature "(FILE *,TS_RESP **)" in summary model. | +| Dubious signature "(FILE *,TS_TST_INFO **)" in summary model. | +| Dubious signature "(FILE *,X509 **)" in summary model. | +| Dubious signature "(FILE *,X509 **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,X509_ACERT **)" in summary model. | +| Dubious signature "(FILE *,X509_ACERT **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,X509_CRL **)" in summary model. | +| Dubious signature "(FILE *,X509_CRL **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,X509_PUBKEY **)" in summary model. | +| Dubious signature "(FILE *,X509_PUBKEY **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,X509_REQ **)" in summary model. | +| Dubious signature "(FILE *,X509_REQ **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,X509_SIG **)" in summary model. | +| Dubious signature "(FILE *,X509_SIG **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,char **,char **,unsigned char **,long *)" in summary model. | +| Dubious signature "(FILE *,const ASN1_STRING *,unsigned long)" in summary model. | +| Dubious signature "(FILE *,const CMS_ContentInfo *)" in summary model. | +| Dubious signature "(FILE *,const DH *)" in summary model. | +| Dubious signature "(FILE *,const DSA *)" in summary model. | +| Dubious signature "(FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,const DSA *,int)" in summary model. | +| Dubious signature "(FILE *,const EC_GROUP *)" in summary model. | +| Dubious signature "(FILE *,const EC_KEY *)" in summary model. | +| Dubious signature "(FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,const EVP_PKEY *)" in summary model. | +| Dubious signature "(FILE *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,const NETSCAPE_CERT_SEQUENCE *)" in summary model. | +| Dubious signature "(FILE *,const PKCS7 *)" in summary model. | +| Dubious signature "(FILE *,const PKCS8_PRIV_KEY_INFO *)" in summary model. | +| Dubious signature "(FILE *,const PKCS12 *)" in summary model. | +| Dubious signature "(FILE *,const RSA *)" in summary model. | +| Dubious signature "(FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,const RSA *,int)" in summary model. | +| Dubious signature "(FILE *,const SSL_SESSION *)" in summary model. | +| Dubious signature "(FILE *,const X509 *)" in summary model. | +| Dubious signature "(FILE *,const X509_ACERT *)" in summary model. | +| Dubious signature "(FILE *,const X509_CRL *)" in summary model. | +| Dubious signature "(FILE *,const X509_NAME *,int,unsigned long)" in summary model. | +| Dubious signature "(FILE *,const X509_PUBKEY *)" in summary model. | +| Dubious signature "(FILE *,const X509_REQ *)" in summary model. | +| Dubious signature "(FILE *,const X509_SIG *)" in summary model. | +| Dubious signature "(FILE *,int *)" in summary model. | +| Dubious signature "(FILE *,int,char *)" in summary model. | +| Dubious signature "(FILE *,lemon *,char *,int *)" in summary model. | +| Dubious signature "(FILE *,lemon *,int *,int)" in summary model. | +| Dubious signature "(FILE *,rule *)" in summary model. | +| Dubious signature "(FILE *,rule *,int)" in summary model. | +| Dubious signature "(FILE *,rule *,lemon *,int *)" in summary model. | +| Dubious signature "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(FILE *,symbol *,lemon *,int *)" in summary model. | +| Dubious signature "(FUNCTION *,DISPLAY_COLUMNS *)" in summary model. | +| Dubious signature "(GCM128_CONTEXT *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f)" in summary model. | +| Dubious signature "(GCM128_CONTEXT *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(GCM128_CONTEXT *,void *,block128_f)" in summary model. | +| Dubious signature "(GENERAL_NAME *)" in summary model. | +| Dubious signature "(GENERAL_NAME **,const X509_NAME *)" in summary model. | +| Dubious signature "(GENERAL_NAME **,const unsigned char **,long)" in summary model. | +| Dubious signature "(GENERAL_NAME *,GENERAL_NAME *)" in summary model. | +| Dubious signature "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int)" in summary model. | +| Dubious signature "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int)" in summary model. | +| Dubious signature "(GENERAL_NAME *,int,void *)" in summary model. | +| Dubious signature "(GENERAL_NAMES *)" in summary model. | +| Dubious signature "(GENERAL_NAMES **,const unsigned char **,long)" in summary model. | +| Dubious signature "(GENERAL_SUBTREE *)" in summary model. | +| Dubious signature "(GOST_KX_MESSAGE *)" in summary model. | +| Dubious signature "(GOST_KX_MESSAGE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(HMAC_CTX *,HMAC_CTX *)" in summary model. | +| Dubious signature "(HMAC_CTX *,const void *,int,const EVP_MD *)" in summary model. | +| Dubious signature "(HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *)" in summary model. | +| Dubious signature "(HMAC_CTX *,unsigned long)" in summary model. | +| Dubious signature "(HT *)" in summary model. | +| Dubious signature "(HT *,..(*)(..),void *)" in summary model. | +| Dubious signature "(HT *,HT_KEY *,HT_VALUE *,HT_VALUE **)" in summary model. | +| Dubious signature "(HT *,size_t,..(*)(..),void *)" in summary model. | +| Dubious signature "(IPAddressChoice *)" in summary model. | +| Dubious signature "(IPAddressChoice **,const unsigned char **,long)" in summary model. | +| Dubious signature "(IPAddressFamily *)" in summary model. | +| Dubious signature "(IPAddressFamily **,const unsigned char **,long)" in summary model. | +| Dubious signature "(IPAddressOrRange *)" in summary model. | +| Dubious signature "(IPAddressOrRange **,const unsigned char **,long)" in summary model. | +| Dubious signature "(IPAddressOrRange *,const unsigned int,unsigned char *,unsigned char *,const int)" in summary model. | +| Dubious signature "(IPAddressRange *)" in summary model. | +| Dubious signature "(IPAddressRange **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ISSUER_SIGN_TOOL *)" in summary model. | +| Dubious signature "(ISSUER_SIGN_TOOL **,const unsigned char **,long)" in summary model. | +| Dubious signature "(ISSUING_DIST_POINT *)" in summary model. | +| Dubious signature "(ISSUING_DIST_POINT **,const unsigned char **,long)" in summary model. | | Dubious signature "(InputIterator,InputIterator,const Allocator &)" in summary model. | +| Dubious signature "(Jim_HashTable *)" in summary model. | +| Dubious signature "(Jim_HashTable *,const Jim_HashTableType *,void *)" in summary model. | +| Dubious signature "(Jim_HashTable *,const void *)" in summary model. | +| Dubious signature "(Jim_HashTableIterator *)" in summary model. | +| Dubious signature "(Jim_Interp *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_CmdProc *,void *,Jim_DelCmdProc *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj **,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_CallFrame *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj **,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,Jim_Obj *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *,int,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,char *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,const char *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,const char *,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,const char *const *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,const jim_stat_t *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,double *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,int *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,int,Jim_Obj **,int)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *,long *)" in summary model. | +| Dubious signature "(Jim_Interp *,Jim_Obj *const *,int)" in summary model. | +| Dubious signature "(Jim_Interp *,char *,int)" in summary model. | +| Dubious signature "(Jim_Interp *,const char *)" in summary model. | +| Dubious signature "(Jim_Interp *,const char *,...)" in summary model. | +| Dubious signature "(Jim_Interp *,const char *,Jim_CmdProc *,void *,Jim_DelCmdProc *)" in summary model. | +| Dubious signature "(Jim_Interp *,const char *,Jim_Obj *)" in summary model. | +| Dubious signature "(Jim_Interp *,const char *,const char *)" in summary model. | +| Dubious signature "(Jim_Interp *,const char *,int)" in summary model. | +| Dubious signature "(Jim_Interp *,const char *,int,const char *)" in summary model. | +| Dubious signature "(Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *)" in summary model. | +| Dubious signature "(Jim_Interp *,double)" in summary model. | +| Dubious signature "(Jim_Interp *,int,Jim_Obj *const *)" in summary model. | +| Dubious signature "(Jim_Interp *,int,Jim_Obj *const *,const char *)" in summary model. | +| Dubious signature "(Jim_Interp *,long)" in summary model. | +| Dubious signature "(Jim_Obj *)" in summary model. | +| Dubious signature "(Jim_Obj *,int *)" in summary model. | +| Dubious signature "(Jim_Stack *)" in summary model. | +| Dubious signature "(Jim_Stack *,void *)" in summary model. | +| Dubious signature "(KECCAK1600_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(KECCAK1600_CTX *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(KECCAK1600_CTX *,unsigned char,size_t)" in summary model. | +| Dubious signature "(KECCAK1600_CTX *,unsigned char,size_t,size_t)" in summary model. | | Dubious signature "(LPCSTR,IAtlStringMgr *)" in summary model. | | Dubious signature "(LPCTSTR,DWORD *,void *,ULONG *)" in summary model. | | Dubious signature "(LPCWSTR,IAtlStringMgr *)" in summary model. | | Dubious signature "(LPTSTR,LPCTSTR,DWORD *)" in summary model. | +| Dubious signature "(MD4_CTX *,const unsigned char *)" in summary model. | +| Dubious signature "(MD4_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(MD5_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(MD5_SHA1_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(MD5_SHA1_CTX *,int,int,void *)" in summary model. | +| Dubious signature "(MDC2_CTX *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(ML_DSA_KEY *)" in summary model. | +| Dubious signature "(ML_DSA_KEY *,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(ML_DSA_SIG *,const uint8_t *,size_t,const ML_DSA_PARAMS *)" in summary model. | +| Dubious signature "(NAME_CONSTRAINTS *)" in summary model. | +| Dubious signature "(NAMING_AUTHORITY *)" in summary model. | +| Dubious signature "(NAMING_AUTHORITY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(NAMING_AUTHORITY *,ASN1_IA5STRING *)" in summary model. | +| Dubious signature "(NAMING_AUTHORITY *,ASN1_OBJECT *)" in summary model. | +| Dubious signature "(NAMING_AUTHORITY *,ASN1_STRING *)" in summary model. | +| Dubious signature "(NETSCAPE_CERT_SEQUENCE *)" in summary model. | +| Dubious signature "(NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(NETSCAPE_ENCRYPTED_PKEY *)" in summary model. | +| Dubious signature "(NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(NETSCAPE_PKEY *)" in summary model. | +| Dubious signature "(NETSCAPE_PKEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(NETSCAPE_SPKAC *)" in summary model. | +| Dubious signature "(NETSCAPE_SPKAC **,const unsigned char **,long)" in summary model. | +| Dubious signature "(NETSCAPE_SPKI *)" in summary model. | +| Dubious signature "(NETSCAPE_SPKI **,const unsigned char **,long)" in summary model. | +| Dubious signature "(NETSCAPE_SPKI *,EVP_PKEY *,const EVP_MD *)" in summary model. | +| Dubious signature "(NISTZ256_PRE_COMP *)" in summary model. | +| Dubious signature "(NOTICEREF *)" in summary model. | +| Dubious signature "(NOTICEREF **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *)" in summary model. | +| Dubious signature "(OCB128_CONTEXT *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(OCB128_CONTEXT *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *)" in summary model. | +| Dubious signature "(OCSP_BASICRESP **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,OCSP_CERTID *,int)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,OCSP_REQUEST *)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,X509 *)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,X509 **,stack_st_X509 *)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,X509 *,EVP_MD_CTX *,stack_st_X509 *,unsigned long)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,int)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,int,int *,int *)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,int,int)" in summary model. | +| Dubious signature "(OCSP_BASICRESP *,int,void *,int,unsigned long)" in summary model. | +| Dubious signature "(OCSP_CERTID *)" in summary model. | +| Dubious signature "(OCSP_CERTID **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_CERTSTATUS *)" in summary model. | +| Dubious signature "(OCSP_CERTSTATUS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_CRLID *)" in summary model. | +| Dubious signature "(OCSP_CRLID **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_ONEREQ *)" in summary model. | +| Dubious signature "(OCSP_ONEREQ **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_ONEREQ *,X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(OCSP_ONEREQ *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(OCSP_ONEREQ *,int)" in summary model. | +| Dubious signature "(OCSP_ONEREQ *,int,int *,int *)" in summary model. | +| Dubious signature "(OCSP_ONEREQ *,int,int)" in summary model. | +| Dubious signature "(OCSP_ONEREQ *,int,void *,int,unsigned long)" in summary model. | +| Dubious signature "(OCSP_REQINFO *)" in summary model. | +| Dubious signature "(OCSP_REQINFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_REQUEST *)" in summary model. | +| Dubious signature "(OCSP_REQUEST **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,OCSP_CERTID *)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,X509 *)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,const X509_NAME *)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,int)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,int,int *,int *)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,int,int)" in summary model. | +| Dubious signature "(OCSP_REQUEST *,int,void *,int,unsigned long)" in summary model. | +| Dubious signature "(OCSP_RESPBYTES *)" in summary model. | +| Dubious signature "(OCSP_RESPBYTES **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_RESPDATA *)" in summary model. | +| Dubious signature "(OCSP_RESPDATA **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_RESPID *)" in summary model. | +| Dubious signature "(OCSP_RESPID **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_RESPID *,X509 *)" in summary model. | +| Dubious signature "(OCSP_RESPID *,X509 *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(OCSP_RESPONSE *)" in summary model. | +| Dubious signature "(OCSP_RESPONSE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_REVOKEDINFO *)" in summary model. | +| Dubious signature "(OCSP_REVOKEDINFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_SERVICELOC *)" in summary model. | +| Dubious signature "(OCSP_SERVICELOC **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_SIGNATURE *)" in summary model. | +| Dubious signature "(OCSP_SIGNATURE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_SINGLERESP *)" in summary model. | +| Dubious signature "(OCSP_SINGLERESP **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OCSP_SINGLERESP *,X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(OCSP_SINGLERESP *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **)" in summary model. | +| Dubious signature "(OCSP_SINGLERESP *,int)" in summary model. | +| Dubious signature "(OCSP_SINGLERESP *,int,int *,int *)" in summary model. | +| Dubious signature "(OCSP_SINGLERESP *,int,int)" in summary model. | +| Dubious signature "(OCSP_SINGLERESP *,int,void *,int,unsigned long)" in summary model. | +| Dubious signature "(OPENSSL_DIR_CTX **)" in summary model. | +| Dubious signature "(OPENSSL_DIR_CTX **,const char *)" in summary model. | +| Dubious signature "(OPENSSL_INIT_SETTINGS *,const char *)" in summary model. | +| Dubious signature "(OPENSSL_INIT_SETTINGS *,unsigned long)" in summary model. | +| Dubious signature "(OPENSSL_LHASH *)" in summary model. | +| Dubious signature "(OPENSSL_LHASH *,OPENSSL_LH_DOALL_FUNCARG_THUNK,OPENSSL_LH_DOALL_FUNCARG,void *)" in summary model. | +| Dubious signature "(OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK)" in summary model. | +| Dubious signature "(OPENSSL_LHASH *,const void *)" in summary model. | +| Dubious signature "(OPENSSL_LHASH *,unsigned long)" in summary model. | +| Dubious signature "(OPENSSL_LHASH *,void *)" in summary model. | +| Dubious signature "(OPENSSL_SA *,ossl_uintmax_t,void *)" in summary model. | +| Dubious signature "(OPENSSL_STACK *)" in summary model. | +| Dubious signature "(OPENSSL_STACK *,OPENSSL_sk_compfunc)" in summary model. | +| Dubious signature "(OPENSSL_STACK *,OPENSSL_sk_freefunc_thunk)" in summary model. | +| Dubious signature "(OPENSSL_STACK *,const void *)" in summary model. | +| Dubious signature "(OPENSSL_STACK *,const void *,int *)" in summary model. | +| Dubious signature "(OPENSSL_STACK *,const void *,int)" in summary model. | +| Dubious signature "(OPENSSL_STACK *,int)" in summary model. | +| Dubious signature "(OPENSSL_STACK *,int,const void *)" in summary model. | +| Dubious signature "(OSSL_AA_DIST_POINT *)" in summary model. | +| Dubious signature "(OSSL_AA_DIST_POINT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ACKM *)" in summary model. | +| Dubious signature "(OSSL_ACKM *,..(*)(..),void *)" in summary model. | +| Dubious signature "(OSSL_ACKM *,OSSL_ACKM_TX_PKT *)" in summary model. | +| Dubious signature "(OSSL_ACKM *,OSSL_TIME)" in summary model. | +| Dubious signature "(OSSL_ACKM *,const OSSL_ACKM_RX_PKT *)" in summary model. | +| Dubious signature "(OSSL_ACKM *,const OSSL_QUIC_FRAME_ACK *,int,OSSL_TIME)" in summary model. | +| Dubious signature "(OSSL_ACKM *,int)" in summary model. | +| Dubious signature "(OSSL_ALLOWED_ATTRIBUTES_CHOICE *)" in summary model. | +| Dubious signature "(OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ALLOWED_ATTRIBUTES_ITEM *)" in summary model. | +| Dubious signature "(OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX *)" in summary model. | +| Dubious signature "(OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ATAV *)" in summary model. | +| Dubious signature "(OSSL_ATAV **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTES_SYNTAX *)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTE_DESCRIPTOR *)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTE_MAPPING *)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTE_MAPPINGS *)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTE_TYPE_MAPPING *)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTE_VALUE_MAPPING *)" in summary model. | +| Dubious signature "(OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *)" in summary model. | +| Dubious signature "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_BASIC_ATTR_CONSTRAINTS *)" in summary model. | +| Dubious signature "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CALLBACK *,void *)" in summary model. | +| Dubious signature "(OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *)" in summary model. | +| Dubious signature "(OSSL_CMP_ATAVS *)" in summary model. | +| Dubious signature "(OSSL_CMP_ATAVS **,const OSSL_CMP_ATAV *)" in summary model. | +| Dubious signature "(OSSL_CMP_ATAVS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CAKEYUPDANNCONTENT *)" in summary model. | +| Dubious signature "(OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTIFIEDKEYPAIR *)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTORENCCERT *)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTORENCCERT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTREPMESSAGE *)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTREQTEMPLATE *)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTRESPONSE *)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTRESPONSE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTSTATUS *)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTSTATUS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CERTSTATUS *,ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(OSSL_CMP_CHALLENGE *)" in summary model. | +| Dubious signature "(OSSL_CMP_CHALLENGE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CRLSOURCE *)" in summary model. | +| Dubious signature "(OSSL_CMP_CRLSOURCE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CRLSTATUS *)" in summary model. | +| Dubious signature "(OSSL_CMP_CRLSTATUS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,EVP_PKEY *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,OSSL_CMP_ITAV *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,OSSL_CMP_MSG *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,OSSL_CMP_PKIFREETEXT *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,OSSL_CMP_PKIHEADER *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,OSSL_CMP_certConf_cb_t)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,OSSL_CMP_log_cb_t)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,OSSL_CMP_transfer_cb_t)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,OSSL_HTTP_bio_cb_t)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,POLICYINFO *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,X509 *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,X509 *,int,const char **)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,X509_EXTENSIONS *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,X509_STORE *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,X509_STORE *,stack_st_X509 *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const GENERAL_NAME *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const OSSL_CMP_MSG *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const OSSL_CMP_MSG *,ossl_cmp_allow_unprotected_cb_t,int)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,const OSSL_CRMF_CERTID *,int)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,int64_t,const char *,int)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const X509 *,const X509_CRL *,X509_CRL **)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const X509_NAME *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const X509_REQ *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const char *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const stack_st_OSSL_CMP_ITAV *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,const unsigned char *,int)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,int)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,int,EVP_PKEY *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *,int *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,int,int64_t)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,int,int)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,int,int,const char *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,stack_st_X509 *)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,stack_st_X509 **)" in summary model. | +| Dubious signature "(OSSL_CMP_CTX *,void *)" in summary model. | +| Dubious signature "(OSSL_CMP_ERRORMSGCONTENT *)" in summary model. | +| Dubious signature "(OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_ITAV *)" in summary model. | +| Dubious signature "(OSSL_CMP_ITAV **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_ITAV *,ASN1_OBJECT *,ASN1_TYPE *)" in summary model. | +| Dubious signature "(OSSL_CMP_KEYRECREPCONTENT *)" in summary model. | +| Dubious signature "(OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_MSG *)" in summary model. | +| Dubious signature "(OSSL_CMP_MSG **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_MSG *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(OSSL_CMP_MSG *,const stack_st_OSSL_CMP_ITAV *)" in summary model. | +| Dubious signature "(OSSL_CMP_MSG *,int)" in summary model. | +| Dubious signature "(OSSL_CMP_PKIBODY *)" in summary model. | +| Dubious signature "(OSSL_CMP_PKIBODY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_PKIHEADER *)" in summary model. | +| Dubious signature "(OSSL_CMP_PKIHEADER **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_PKIHEADER *,ASN1_UTF8STRING *)" in summary model. | +| Dubious signature "(OSSL_CMP_PKIHEADER *,OSSL_CMP_ITAV *)" in summary model. | +| Dubious signature "(OSSL_CMP_PKIHEADER *,const ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(OSSL_CMP_PKIHEADER *,const X509_NAME *)" in summary model. | +| Dubious signature "(OSSL_CMP_PKIHEADER *,const stack_st_OSSL_CMP_ITAV *)" in summary model. | +| Dubious signature "(OSSL_CMP_PKIHEADER *,int)" in summary model. | +| Dubious signature "(OSSL_CMP_PKISI *)" in summary model. | +| Dubious signature "(OSSL_CMP_PKISI **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_POLLREP *)" in summary model. | +| Dubious signature "(OSSL_CMP_POLLREP **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_POLLREQ *)" in summary model. | +| Dubious signature "(OSSL_CMP_POLLREQ **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_PROTECTEDPART *)" in summary model. | +| Dubious signature "(OSSL_CMP_PROTECTEDPART **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_REVANNCONTENT *)" in summary model. | +| Dubious signature "(OSSL_CMP_REVANNCONTENT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_REVDETAILS *)" in summary model. | +| Dubious signature "(OSSL_CMP_REVDETAILS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_REVREPCONTENT *)" in summary model. | +| Dubious signature "(OSSL_CMP_REVREPCONTENT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_REVREPCONTENT *,int)" in summary model. | +| Dubious signature "(OSSL_CMP_ROOTCAKEYUPDATE *)" in summary model. | +| Dubious signature "(OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CMP_SRV_CTX *,OSSL_CMP_SRV_delayed_delivery_cb_t,OSSL_CMP_SRV_clean_transaction_cb_t)" in summary model. | +| Dubious signature "(OSSL_CMP_SRV_CTX *,const OSSL_CMP_MSG *)" in summary model. | +| Dubious signature "(OSSL_CMP_SRV_CTX *,int)" in summary model. | +| Dubious signature "(OSSL_CMP_SRV_CTX *,stack_st_X509 *)" in summary model. | +| Dubious signature "(OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t)" in summary model. | +| Dubious signature "(OSSL_CORE_BIO *,const char *,va_list)" in summary model. | +| Dubious signature "(OSSL_CORE_BIO *,void *,size_t,size_t *)" in summary model. | +| Dubious signature "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)" in summary model. | +| Dubious signature "(OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_CERTID *)" in summary model. | +| Dubious signature "(OSSL_CRMF_CERTID **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_CERTREQUEST *)" in summary model. | +| Dubious signature "(OSSL_CRMF_CERTREQUEST **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_CERTTEMPLATE *)" in summary model. | +| Dubious signature "(OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(OSSL_CRMF_ENCKEYWITHID *)" in summary model. | +| Dubious signature "(OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *)" in summary model. | +| Dubious signature "(OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_ENCRYPTEDKEY *)" in summary model. | +| Dubious signature "(OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_ENCRYPTEDVALUE *)" in summary model. | +| Dubious signature "(OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_MSG *)" in summary model. | +| Dubious signature "(OSSL_CRMF_MSG **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_MSG *,const OSSL_CRMF_CERTID *)" in summary model. | +| Dubious signature "(OSSL_CRMF_MSG *,const OSSL_CRMF_CERTREQUEST *)" in summary model. | +| Dubious signature "(OSSL_CRMF_MSG *,const OSSL_CRMF_PKIPUBLICATIONINFO *)" in summary model. | +| Dubious signature "(OSSL_CRMF_MSGS *)" in summary model. | +| Dubious signature "(OSSL_CRMF_MSGS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_OPTIONALVALIDITY *)" in summary model. | +| Dubious signature "(OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_PBMPARAMETER *)" in summary model. | +| Dubious signature "(OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_PKIPUBLICATIONINFO *)" in summary model. | +| Dubious signature "(OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_PKIPUBLICATIONINFO *,OSSL_CRMF_SINGLEPUBINFO *)" in summary model. | +| Dubious signature "(OSSL_CRMF_PKIPUBLICATIONINFO *,int)" in summary model. | +| Dubious signature "(OSSL_CRMF_PKMACVALUE *)" in summary model. | +| Dubious signature "(OSSL_CRMF_PKMACVALUE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_POPO *)" in summary model. | +| Dubious signature "(OSSL_CRMF_POPO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_POPOPRIVKEY *)" in summary model. | +| Dubious signature "(OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_POPOSIGNINGKEY *)" in summary model. | +| Dubious signature "(OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_POPOSIGNINGKEYINPUT *)" in summary model. | +| Dubious signature "(OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *)" in summary model. | +| Dubious signature "(OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_PRIVATEKEYINFO *)" in summary model. | +| Dubious signature "(OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_SINGLEPUBINFO *)" in summary model. | +| Dubious signature "(OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_CRMF_SINGLEPUBINFO *,int,GENERAL_NAME *)" in summary model. | +| Dubious signature "(OSSL_DAY_TIME *)" in summary model. | +| Dubious signature "(OSSL_DAY_TIME **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_DAY_TIME_BAND *)" in summary model. | +| Dubious signature "(OSSL_DAY_TIME_BAND **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_DECODER *,const char *,int *)" in summary model. | +| Dubious signature "(OSSL_DECODER *,void *)" in summary model. | +| Dubious signature "(OSSL_DECODER *,void *,const char *)" in summary model. | +| Dubious signature "(OSSL_DECODER_CTX *)" in summary model. | +| Dubious signature "(OSSL_DECODER_CTX *,BIO *)" in summary model. | +| Dubious signature "(OSSL_DECODER_CTX *,OSSL_DECODER_CLEANUP *)" in summary model. | +| Dubious signature "(OSSL_DECODER_CTX *,OSSL_DECODER_CONSTRUCT *)" in summary model. | +| Dubious signature "(OSSL_DECODER_CTX *,OSSL_DECODER_INSTANCE *)" in summary model. | +| Dubious signature "(OSSL_DECODER_CTX *,const char *)" in summary model. | +| Dubious signature "(OSSL_DECODER_CTX *,const unsigned char **,size_t *)" in summary model. | +| Dubious signature "(OSSL_DECODER_CTX *,int)" in summary model. | +| Dubious signature "(OSSL_DECODER_CTX *,void *)" in summary model. | +| Dubious signature "(OSSL_DECODER_INSTANCE *)" in summary model. | +| Dubious signature "(OSSL_DECODER_INSTANCE *,int *)" in summary model. | +| Dubious signature "(OSSL_ENCODER_CTX *)" in summary model. | +| Dubious signature "(OSSL_ENCODER_CTX *,OSSL_ENCODER_CLEANUP *)" in summary model. | +| Dubious signature "(OSSL_ENCODER_CTX *,OSSL_ENCODER_CONSTRUCT *)" in summary model. | +| Dubious signature "(OSSL_ENCODER_CTX *,const char *)" in summary model. | +| Dubious signature "(OSSL_ENCODER_CTX *,int)" in summary model. | +| Dubious signature "(OSSL_ENCODER_CTX *,unsigned char **,size_t *)" in summary model. | +| Dubious signature "(OSSL_ENCODER_CTX *,void *)" in summary model. | +| Dubious signature "(OSSL_ENCODER_INSTANCE *)" in summary model. | +| Dubious signature "(OSSL_HASH *)" in summary model. | +| Dubious signature "(OSSL_HASH **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_HPKE_CTX *,EVP_PKEY *)" in summary model. | +| Dubious signature "(OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(OSSL_HPKE_CTX *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(OSSL_HPKE_CTX *,uint64_t *)" in summary model. | +| Dubious signature "(OSSL_HPKE_CTX *,uint64_t)" in summary model. | +| Dubious signature "(OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(OSSL_HPKE_SUITE,unsigned char *,size_t *,EVP_PKEY **,const unsigned char *,size_t,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(OSSL_HTTP_REQ_CTX *)" in summary model. | +| Dubious signature "(OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)" in summary model. | +| Dubious signature "(OSSL_HTTP_REQ_CTX *,ASN1_VALUE **,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(OSSL_HTTP_REQ_CTX *,char **)" in summary model. | +| Dubious signature "(OSSL_HTTP_REQ_CTX *,const char *,const ASN1_ITEM *,const ASN1_VALUE *)" in summary model. | +| Dubious signature "(OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int)" in summary model. | +| Dubious signature "(OSSL_HTTP_REQ_CTX *,const char *,int,int,int)" in summary model. | +| Dubious signature "(OSSL_HTTP_REQ_CTX *,int,const char *,const char *,const char *)" in summary model. | +| Dubious signature "(OSSL_HTTP_REQ_CTX *,size_t)" in summary model. | +| Dubious signature "(OSSL_HTTP_REQ_CTX *,unsigned long)" in summary model. | +| Dubious signature "(OSSL_IETF_ATTR_SYNTAX *)" in summary model. | +| Dubious signature "(OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_IETF_ATTR_SYNTAX *,GENERAL_NAMES *)" in summary model. | +| Dubious signature "(OSSL_IETF_ATTR_SYNTAX *,int,void *)" in summary model. | +| Dubious signature "(OSSL_IETF_ATTR_SYNTAX_VALUE *)" in summary model. | +| Dubious signature "(OSSL_INFO_SYNTAX *)" in summary model. | +| Dubious signature "(OSSL_INFO_SYNTAX **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_INFO_SYNTAX_POINTER *)" in summary model. | +| Dubious signature "(OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ISSUER_SERIAL *)" in summary model. | +| Dubious signature "(OSSL_ISSUER_SERIAL *,const ASN1_BIT_STRING *)" in summary model. | +| Dubious signature "(OSSL_ISSUER_SERIAL *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(OSSL_ISSUER_SERIAL *,const X509_NAME *)" in summary model. | +| Dubious signature "(OSSL_JSON_ENC *)" in summary model. | +| Dubious signature "(OSSL_JSON_ENC *,BIO *)" in summary model. | +| Dubious signature "(OSSL_JSON_ENC *,BIO *,uint32_t)" in summary model. | +| Dubious signature "(OSSL_JSON_ENC *,const char *)" in summary model. | +| Dubious signature "(OSSL_JSON_ENC *,const char *,size_t)" in summary model. | +| Dubious signature "(OSSL_JSON_ENC *,const void *,size_t)" in summary model. | +| Dubious signature "(OSSL_JSON_ENC *,int64_t)" in summary model. | +| Dubious signature "(OSSL_JSON_ENC *,uint64_t)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX **,const char **,const X509_PUBKEY *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,..(*)(..),void *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,CONF_METHOD *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,CRYPTO_THREAD_ROUTINE,void *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,EVP_PKEY *,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,OSSL_CALLBACK **,void **)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,OSSL_CORE_BIO *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,OSSL_INDICATOR_CALLBACK **)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,OSSL_PROPERTY_IDX)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,OSSL_PROVIDER_INFO *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,SSL_CTX *,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const BIO_METHOD *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const OSSL_DISPATCH *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const OSSL_PROPERTY_DEFINITION *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,ENGINE *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *,int)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,OSSL_PROPERTY_LIST **)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,const EC_METHOD *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *,unsigned char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,const SSL_METHOD *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,int)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,int)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,int,OSSL_PROVIDER **,int,OSSL_METHOD_CONSTRUCT_METHOD *,void *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *,int)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,int,void *,CRYPTO_EX_DATA *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,size_t)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,size_t,QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,size_t,int,size_t,int)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,uint8_t[32],const uint8_t[32],const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t[64],const uint8_t *,size_t,const char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,uint32_t,int *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,uint32_t,uint32_t,int *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int)" in summary model. | +| Dubious signature "(OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int)" in summary model. | +| Dubious signature "(OSSL_METHOD_STORE *)" in summary model. | +| Dubious signature "(OSSL_METHOD_STORE *,const OSSL_PROVIDER *,int,const char *,void *,..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(OSSL_METHOD_STORE *,int,const char *,const OSSL_PROVIDER **,void **)" in summary model. | +| Dubious signature "(OSSL_NAMED_DAY *)" in summary model. | +| Dubious signature "(OSSL_NAMED_DAY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_NAMEMAP *,int,const char *)" in summary model. | +| Dubious signature "(OSSL_NAMEMAP *,int,const char *,const char)" in summary model. | +| Dubious signature "(OSSL_OBJECT_DIGEST_INFO *)" in summary model. | +| Dubious signature "(OSSL_OBJECT_DIGEST_INFO *,int,X509_ALGOR *,ASN1_BIT_STRING *)" in summary model. | +| Dubious signature "(OSSL_PARAM *)" in summary model. | +| Dubious signature "(OSSL_PARAM *,const BIGNUM *)" in summary model. | +| Dubious signature "(OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *)" in summary model. | +| Dubious signature "(OSSL_PARAM *,const char *)" in summary model. | +| Dubious signature "(OSSL_PARAM *,const void *,size_t)" in summary model. | +| Dubious signature "(OSSL_PARAM *,double)" in summary model. | +| Dubious signature "(OSSL_PARAM *,int32_t)" in summary model. | +| Dubious signature "(OSSL_PARAM *,int64_t)" in summary model. | +| Dubious signature "(OSSL_PARAM *,int)" in summary model. | +| Dubious signature "(OSSL_PARAM *,long)" in summary model. | +| Dubious signature "(OSSL_PARAM *,size_t)" in summary model. | +| Dubious signature "(OSSL_PARAM *,time_t)" in summary model. | +| Dubious signature "(OSSL_PARAM *,uint32_t)" in summary model. | +| Dubious signature "(OSSL_PARAM *,uint64_t)" in summary model. | +| Dubious signature "(OSSL_PARAM *,unsigned int)" in summary model. | +| Dubious signature "(OSSL_PARAM *,unsigned long)" in summary model. | +| Dubious signature "(OSSL_PARAM *,void *,size_t)" in summary model. | +| Dubious signature "(OSSL_PARAM[],size_t,size_t,unsigned long)" in summary model. | +| Dubious signature "(OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const char *)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,int)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,long)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,OSSL_PARAM *,const char *[],stack_st_BIGNUM_const *)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,const char *,const BIGNUM *)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,const char *,const BIGNUM *,size_t)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,const char *,const char *,size_t)" in summary model. | +| Dubious signature "(OSSL_PARAM_BLD *,const char *,const void *,size_t)" in summary model. | +| Dubious signature "(OSSL_PQUEUE *)" in summary model. | +| Dubious signature "(OSSL_PQUEUE *,size_t)" in summary model. | +| Dubious signature "(OSSL_PQUEUE *,void *,size_t *)" in summary model. | +| Dubious signature "(OSSL_PRIVILEGE_POLICY_ID *)" in summary model. | +| Dubious signature "(OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_PROVIDER *)" in summary model. | +| Dubious signature "(OSSL_PROVIDER *,OSSL_PROVIDER **,int)" in summary model. | +| Dubious signature "(OSSL_PROVIDER *,const OSSL_CORE_HANDLE *)" in summary model. | +| Dubious signature "(OSSL_PROVIDER *,const char *)" in summary model. | +| Dubious signature "(OSSL_PROVIDER *,int,..(*)(..),void *)" in summary model. | +| Dubious signature "(OSSL_PROVIDER *,size_t)" in summary model. | +| Dubious signature "(OSSL_PROVIDER *,size_t,int *)" in summary model. | +| Dubious signature "(OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int)" in summary model. | +| Dubious signature "(OSSL_QRX *)" in summary model. | +| Dubious signature "(OSSL_QRX *,OSSL_QRX_PKT *)" in summary model. | +| Dubious signature "(OSSL_QRX *,OSSL_QRX_PKT **)" in summary model. | +| Dubious signature "(OSSL_QRX *,QUIC_URXE *)" in summary model. | +| Dubious signature "(OSSL_QRX *,int)" in summary model. | +| Dubious signature "(OSSL_QRX *,ossl_msg_cb,SSL *)" in summary model. | +| Dubious signature "(OSSL_QRX *,ossl_qrx_key_update_cb *,void *)" in summary model. | +| Dubious signature "(OSSL_QRX *,ossl_qrx_late_validation_cb *,void *)" in summary model. | +| Dubious signature "(OSSL_QRX *,void *)" in summary model. | +| Dubious signature "(OSSL_QTX *)" in summary model. | +| Dubious signature "(OSSL_QTX *,..(*)(..),void *)" in summary model. | +| Dubious signature "(OSSL_QTX *,BIO *)" in summary model. | +| Dubious signature "(OSSL_QTX *,BIO_MSG *)" in summary model. | +| Dubious signature "(OSSL_QTX *,ossl_msg_cb,SSL *)" in summary model. | +| Dubious signature "(OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)" in summary model. | +| Dubious signature "(OSSL_QTX *,size_t)" in summary model. | +| Dubious signature "(OSSL_QTX *,uint32_t)" in summary model. | +| Dubious signature "(OSSL_QTX *,uint32_t,size_t,size_t *)" in summary model. | +| Dubious signature "(OSSL_QTX *,void *)" in summary model. | +| Dubious signature "(OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *)" in summary model. | +| Dubious signature "(OSSL_QUIC_TX_PACKETISER *,const OSSL_QUIC_FRAME_CONN_CLOSE *)" in summary model. | +| Dubious signature "(OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *)" in summary model. | +| Dubious signature "(OSSL_QUIC_TX_PACKETISER *,ossl_msg_cb,SSL *)" in summary model. | +| Dubious signature "(OSSL_QUIC_TX_PACKETISER *,size_t)" in summary model. | +| Dubious signature "(OSSL_QUIC_TX_PACKETISER *,uint32_t)" in summary model. | +| Dubious signature "(OSSL_QUIC_TX_PACKETISER *,void *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,BIO *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,TLS_RL_RECORD *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,const OSSL_PARAM *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,int)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,int,int,const char *,...)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,size_t)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,size_t,WPACKET *,TLS_RL_RECORD *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,size_t,size_t,int,int,size_t *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,size_t,size_t,size_t)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *)" in summary model. | +| Dubious signature "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)" in summary model. | +| Dubious signature "(OSSL_ROLE_SPEC_CERT_ID *)" in summary model. | +| Dubious signature "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX *)" in summary model. | +| Dubious signature "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_SELF_TEST *,const char *,const char *)" in summary model. | +| Dubious signature "(OSSL_SELF_TEST *,unsigned char *)" in summary model. | +| Dubious signature "(OSSL_STATM *,OSSL_RTT_INFO *)" in summary model. | +| Dubious signature "(OSSL_STATM *,OSSL_TIME,OSSL_TIME)" in summary model. | +| Dubious signature "(OSSL_STORE_CTX *)" in summary model. | +| Dubious signature "(OSSL_STORE_CTX *,int)" in summary model. | +| Dubious signature "(OSSL_STORE_CTX *,int,va_list)" in summary model. | +| Dubious signature "(OSSL_STORE_LOADER *,OSSL_STORE_attach_fn)" in summary model. | +| Dubious signature "(OSSL_STORE_LOADER *,OSSL_STORE_close_fn)" in summary model. | +| Dubious signature "(OSSL_STORE_LOADER *,OSSL_STORE_ctrl_fn)" in summary model. | +| Dubious signature "(OSSL_STORE_LOADER *,OSSL_STORE_eof_fn)" in summary model. | +| Dubious signature "(OSSL_STORE_LOADER *,OSSL_STORE_error_fn)" in summary model. | +| Dubious signature "(OSSL_STORE_LOADER *,OSSL_STORE_expect_fn)" in summary model. | +| Dubious signature "(OSSL_STORE_LOADER *,OSSL_STORE_find_fn)" in summary model. | +| Dubious signature "(OSSL_STORE_LOADER *,OSSL_STORE_load_fn)" in summary model. | +| Dubious signature "(OSSL_STORE_LOADER *,OSSL_STORE_open_ex_fn)" in summary model. | +| Dubious signature "(OSSL_STORE_LOADER *,OSSL_STORE_open_fn)" in summary model. | +| Dubious signature "(OSSL_TARGET *)" in summary model. | +| Dubious signature "(OSSL_TARGET **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_TARGETING_INFORMATION *)" in summary model. | +| Dubious signature "(OSSL_TARGETING_INFORMATION **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_TARGETS *)" in summary model. | +| Dubious signature "(OSSL_TARGETS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_TIME_PERIOD *)" in summary model. | +| Dubious signature "(OSSL_TIME_PERIOD **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC *)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_ABSOLUTE *)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_DAY *)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_DAY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_MONTH *)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_MONTH **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_TIME *)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_TIME **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_WEEKS *)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_X_DAY_OF *)" in summary model. | +| Dubious signature "(OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_USER_NOTICE_SYNTAX *)" in summary model. | +| Dubious signature "(OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(OTHERNAME *)" in summary model. | +| Dubious signature "(OTHERNAME **,const unsigned char **,long)" in summary model. | +| Dubious signature "(OTHERNAME *,OTHERNAME *)" in summary model. | +| Dubious signature "(PACKET *)" in summary model. | +| Dubious signature "(PACKET *,BIGNUM *)" in summary model. | +| Dubious signature "(PACKET *,OSSL_QUIC_FRAME_CONN_CLOSE *)" in summary model. | +| Dubious signature "(PACKET *,OSSL_QUIC_FRAME_NEW_CONN_ID *)" in summary model. | +| Dubious signature "(PACKET *,OSSL_QUIC_FRAME_RESET_STREAM *)" in summary model. | +| Dubious signature "(PACKET *,OSSL_QUIC_FRAME_STOP_SENDING *)" in summary model. | +| Dubious signature "(PACKET *,PACKET *)" in summary model. | +| Dubious signature "(PACKET *,QUIC_PREFERRED_ADDR *)" in summary model. | +| Dubious signature "(PACKET *,const unsigned char **,size_t *)" in summary model. | +| Dubious signature "(PACKET *,int,OSSL_QUIC_FRAME_CRYPTO *)" in summary model. | +| Dubious signature "(PACKET *,int,OSSL_QUIC_FRAME_STREAM *)" in summary model. | +| Dubious signature "(PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *)" in summary model. | +| Dubious signature "(PACKET *,uint16_t **,size_t *)" in summary model. | +| Dubious signature "(PACKET *,uint32_t,OSSL_QUIC_FRAME_ACK *,uint64_t *)" in summary model. | +| Dubious signature "(PACKET *,uint64_t *)" in summary model. | +| Dubious signature "(PACKET *,uint64_t *,QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(PACKET *,uint64_t *,int *)" in summary model. | +| Dubious signature "(PACKET *,uint64_t *,size_t *)" in summary model. | +| Dubious signature "(PACKET *,uint64_t *,uint64_t *)" in summary model. | +| Dubious signature "(PBE2PARAM *)" in summary model. | +| Dubious signature "(PBE2PARAM **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PBEPARAM *)" in summary model. | +| Dubious signature "(PBEPARAM **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PBKDF2PARAM *)" in summary model. | +| Dubious signature "(PBKDF2PARAM **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PBMAC1PARAM *)" in summary model. | +| Dubious signature "(PBMAC1PARAM **,const unsigned char **,long)" in summary model. | | Dubious signature "(PCXSTR,IAtlStringMgr *)" in summary model. | | Dubious signature "(PCXSTR,const CStringT &)" in summary model. | +| Dubious signature "(PKCS7 *)" in summary model. | +| Dubious signature "(PKCS7 **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS7 *,BIO *)" in summary model. | +| Dubious signature "(PKCS7 *,EVP_PKEY *,BIO *,X509 *)" in summary model. | +| Dubious signature "(PKCS7 *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(PKCS7 *,PKCS7_SIGNER_INFO *)" in summary model. | +| Dubious signature "(PKCS7 *,X509 *)" in summary model. | +| Dubious signature "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *)" in summary model. | +| Dubious signature "(PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int)" in summary model. | +| Dubious signature "(PKCS7 *,X509_CRL *)" in summary model. | +| Dubious signature "(PKCS7 *,const char *)" in summary model. | +| Dubious signature "(PKCS7 *,int)" in summary model. | +| Dubious signature "(PKCS7 *,int,ASN1_TYPE *)" in summary model. | +| Dubious signature "(PKCS7 *,int,long,char *)" in summary model. | +| Dubious signature "(PKCS7 *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,int)" in summary model. | +| Dubious signature "(PKCS7 *,stack_st_X509 *,X509_STORE *,X509 **)" in summary model. | +| Dubious signature "(PKCS7 *,stack_st_X509 *,int)" in summary model. | +| Dubious signature "(PKCS7_DIGEST *)" in summary model. | +| Dubious signature "(PKCS7_DIGEST **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS7_ENCRYPT *)" in summary model. | +| Dubious signature "(PKCS7_ENCRYPT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS7_ENC_CONTENT *)" in summary model. | +| Dubious signature "(PKCS7_ENC_CONTENT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS7_ENVELOPE *)" in summary model. | +| Dubious signature "(PKCS7_ENVELOPE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS7_ISSUER_AND_SERIAL *)" in summary model. | +| Dubious signature "(PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS7_ISSUER_AND_SERIAL *,const EVP_MD *,unsigned char *,unsigned int *)" in summary model. | +| Dubious signature "(PKCS7_RECIP_INFO *)" in summary model. | +| Dubious signature "(PKCS7_RECIP_INFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS7_RECIP_INFO *,X509 *)" in summary model. | +| Dubious signature "(PKCS7_RECIP_INFO *,X509_ALGOR **)" in summary model. | +| Dubious signature "(PKCS7_SIGNED *)" in summary model. | +| Dubious signature "(PKCS7_SIGNED **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS7_SIGNER_INFO *)" in summary model. | +| Dubious signature "(PKCS7_SIGNER_INFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **)" in summary model. | +| Dubious signature "(PKCS7_SIGNER_INFO *,X509 *,EVP_PKEY *,const EVP_MD *)" in summary model. | +| Dubious signature "(PKCS7_SIGNER_INFO *,stack_st_X509_ALGOR *)" in summary model. | +| Dubious signature "(PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(PKCS7_SIGN_ENVELOPE *)" in summary model. | +| Dubious signature "(PKCS7_SIGN_ENVELOPE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS8_PRIV_KEY_INFO *)" in summary model. | +| Dubious signature "(PKCS8_PRIV_KEY_INFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int)" in summary model. | +| Dubious signature "(PKCS8_PRIV_KEY_INFO *,X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(PKCS8_PRIV_KEY_INFO *,const ASN1_OBJECT *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(PKCS12 *)" in summary model. | +| Dubious signature "(PKCS12 **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **)" in summary model. | +| Dubious signature "(PKCS12 *,const char *,int,unsigned char *,int,int,const EVP_MD *,const char *)" in summary model. | +| Dubious signature "(PKCS12 *,stack_st_PKCS7 *)" in summary model. | +| Dubious signature "(PKCS12_BAGS *)" in summary model. | +| Dubious signature "(PKCS12_BAGS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS12_BUILDER *)" in summary model. | +| Dubious signature "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *)" in summary model. | +| Dubious signature "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *)" in summary model. | +| Dubious signature "(PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *)" in summary model. | +| Dubious signature "(PKCS12_MAC_DATA *)" in summary model. | +| Dubious signature "(PKCS12_MAC_DATA **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS12_SAFEBAG *)" in summary model. | +| Dubious signature "(PKCS12_SAFEBAG **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PKCS12_SAFEBAG *,stack_st_X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(PKEY_USAGE_PERIOD *)" in summary model. | +| Dubious signature "(PKEY_USAGE_PERIOD **,const unsigned char **,long)" in summary model. | +| Dubious signature "(POLICYINFO *)" in summary model. | +| Dubious signature "(POLICYINFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(POLICYINFO *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(POLICYQUALINFO *)" in summary model. | +| Dubious signature "(POLICYQUALINFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(POLICY_CONSTRAINTS *)" in summary model. | +| Dubious signature "(POLICY_MAPPING *)" in summary model. | +| Dubious signature "(POLY1305 *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(POLY1305 *,const unsigned char[32])" in summary model. | +| Dubious signature "(POLY *,const uint8_t *,int,EVP_MD_CTX *,const EVP_MD *,uint32_t)" in summary model. | +| Dubious signature "(POLY *,const uint8_t *,size_t,uint32_t,EVP_MD_CTX *,const EVP_MD *)" in summary model. | +| Dubious signature "(PROFESSION_INFO *)" in summary model. | +| Dubious signature "(PROFESSION_INFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PROFESSION_INFO *,ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(PROFESSION_INFO *,ASN1_PRINTABLESTRING *)" in summary model. | +| Dubious signature "(PROFESSION_INFO *,NAMING_AUTHORITY *)" in summary model. | +| Dubious signature "(PROFESSION_INFO *,stack_st_ASN1_OBJECT *)" in summary model. | +| Dubious signature "(PROFESSION_INFO *,stack_st_ASN1_STRING *)" in summary model. | +| Dubious signature "(PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t)" in summary model. | +| Dubious signature "(PROV_CCM_CTX *,size_t,const PROV_CCM_HW *)" in summary model. | +| Dubious signature "(PROV_CIPHER *,const OSSL_PARAM[],OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(PROV_CIPHER *,const PROV_CIPHER *)" in summary model. | +| Dubious signature "(PROV_CIPHER_CTX *,const PROV_CIPHER_CTX *)" in summary model. | +| Dubious signature "(PROV_CIPHER_CTX *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(PROV_CTX *)" in summary model. | +| Dubious signature "(PROV_CTX *,BIO_METHOD *)" in summary model. | +| Dubious signature "(PROV_CTX *,OSSL_CORE_BIO *)" in summary model. | +| Dubious signature "(PROV_CTX *,OSSL_FUNC_core_get_params_fn *)" in summary model. | +| Dubious signature "(PROV_CTX *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(PROV_CTX *,const OSSL_CORE_HANDLE *)" in summary model. | +| Dubious signature "(PROV_CTX *,const char *,const char *)" in summary model. | +| Dubious signature "(PROV_CTX *,const char *,int)" in summary model. | +| Dubious signature "(PROV_DIGEST *,EVP_MD *)" in summary model. | +| Dubious signature "(PROV_DIGEST *,OSSL_LIB_CTX *,const char *,const char *)" in summary model. | +| Dubious signature "(PROV_DIGEST *,const OSSL_PARAM[],OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(PROV_DIGEST *,const PROV_DIGEST *)" in summary model. | +| Dubious signature "(PROV_DRBG *,OSSL_PARAM[])" in summary model. | +| Dubious signature "(PROV_DRBG *,OSSL_PARAM[],int *)" in summary model. | +| Dubious signature "(PROV_DRBG *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(PROV_DRBG_HMAC *,unsigned char *,size_t,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(PROV_GCM_CTX *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *)" in summary model. | +| Dubious signature "(PROXY_CERT_INFO_EXTENSION *)" in summary model. | +| Dubious signature "(PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long)" in summary model. | +| Dubious signature "(PROXY_POLICY *)" in summary model. | +| Dubious signature "(PROXY_POLICY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(QLOG *,BIO *)" in summary model. | +| Dubious signature "(QLOG *,OSSL_TIME)" in summary model. | +| Dubious signature "(QLOG *,uint32_t)" in summary model. | +| Dubious signature "(QLOG *,uint32_t,const char *,const char *,const char *)" in summary model. | +| Dubious signature "(QLOG *,uint32_t,int)" in summary model. | +| Dubious signature "(QTEST_FAULT *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(QTEST_FAULT *,qtest_fault_on_datagram_cb,void *)" in summary model. | +| Dubious signature "(QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *)" in summary model. | +| Dubious signature "(QTEST_FAULT *,qtest_fault_on_handshake_cb,void *)" in summary model. | +| Dubious signature "(QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *)" in summary model. | +| Dubious signature "(QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *)" in summary model. | +| Dubious signature "(QTEST_FAULT *,size_t)" in summary model. | +| Dubious signature "(QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *)" in summary model. | +| Dubious signature "(QUIC_CFQ *,QUIC_CFQ_ITEM *)" in summary model. | +| Dubious signature "(QUIC_CFQ *,QUIC_CFQ_ITEM *,uint32_t)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,BIO_ADDR *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,OSSL_QRX *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,OSSL_QRX_PKT *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,OSSL_QUIC_FRAME_NEW_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,QUIC_STREAM *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,QUIC_TICK_RESULT *,uint32_t)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,const BIO_ADDR *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,int)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,int,uint64_t)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,ossl_msg_cb,SSL *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,uint64_t)" in summary model. | +| Dubious signature "(QUIC_CHANNEL *,void *)" in summary model. | +| Dubious signature "(QUIC_DEMUX *,BIO *)" in summary model. | +| Dubious signature "(QUIC_DEMUX *,QUIC_URXE *)" in summary model. | +| Dubious signature "(QUIC_DEMUX *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *)" in summary model. | +| Dubious signature "(QUIC_DEMUX *,ossl_quic_demux_cb_fn *,void *)" in summary model. | +| Dubious signature "(QUIC_DEMUX *,unsigned int)" in summary model. | +| Dubious signature "(QUIC_ENGINE *)" in summary model. | +| Dubious signature "(QUIC_ENGINE *,..(*)(..),void *)" in summary model. | +| Dubious signature "(QUIC_ENGINE *,OSSL_TIME)" in summary model. | +| Dubious signature "(QUIC_ENGINE *,const QUIC_PORT_ARGS *)" in summary model. | +| Dubious signature "(QUIC_ENGINE *,int)" in summary model. | +| Dubious signature "(QUIC_FIFD *,..(*)(..),void *)" in summary model. | +| Dubious signature "(QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *)" in summary model. | +| Dubious signature "(QUIC_FIFD *,QUIC_TXPIM_PKT *)" in summary model. | +| Dubious signature "(QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(QUIC_HDR_PROTECTOR *,QUIC_PKT_HDR_PTRS *)" in summary model. | +| Dubious signature "(QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *)" in summary model. | +| Dubious signature "(QUIC_LCIDM *,QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_LCIDM *,const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_LCIDM *,const QUIC_CONN_ID *,uint64_t *,void **)" in summary model. | +| Dubious signature "(QUIC_LCIDM *,void *,OSSL_QUIC_FRAME_NEW_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_LCIDM *,void *,QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_LCIDM *,void *,const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_LCIDM *,void *,const QUIC_CONN_ID *,uint64_t)" in summary model. | +| Dubious signature "(QUIC_OBJ *)" in summary model. | +| Dubious signature "(QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *)" in summary model. | +| Dubious signature "(QUIC_OBJ *,unsigned int)" in summary model. | +| Dubious signature "(QUIC_PN,unsigned char *,size_t)" in summary model. | +| Dubious signature "(QUIC_PORT *)" in summary model. | +| Dubious signature "(QUIC_PORT *,BIO *)" in summary model. | +| Dubious signature "(QUIC_PORT *,SSL *)" in summary model. | +| Dubious signature "(QUIC_PORT *,int)" in summary model. | +| Dubious signature "(QUIC_RCIDM *,QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_RCIDM *,const OSSL_QUIC_FRAME_NEW_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_RCIDM *,const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_RCIDM *,int)" in summary model. | +| Dubious signature "(QUIC_RCIDM *,uint64_t)" in summary model. | +| Dubious signature "(QUIC_REACTOR *)" in summary model. | +| Dubious signature "(QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t)" in summary model. | +| Dubious signature "(QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *)" in summary model. | +| Dubious signature "(QUIC_RSTREAM *,const unsigned char **,size_t *,int *)" in summary model. | +| Dubious signature "(QUIC_RSTREAM *,int)" in summary model. | +| Dubious signature "(QUIC_RSTREAM *,size_t *,int *)" in summary model. | +| Dubious signature "(QUIC_RSTREAM *,size_t)" in summary model. | +| Dubious signature "(QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *)" in summary model. | +| Dubious signature "(QUIC_RXFC *)" in summary model. | +| Dubious signature "(QUIC_RXFC *,OSSL_STATM *,size_t)" in summary model. | +| Dubious signature "(QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *)" in summary model. | +| Dubious signature "(QUIC_RXFC *,int)" in summary model. | +| Dubious signature "(QUIC_RXFC *,size_t)" in summary model. | +| Dubious signature "(QUIC_RXFC *,uint64_t,..(*)(..),void *)" in summary model. | +| Dubious signature "(QUIC_RXFC *,uint64_t,OSSL_TIME)" in summary model. | +| Dubious signature "(QUIC_RXFC *,uint64_t,int)" in summary model. | +| Dubious signature "(QUIC_SRTM *,const QUIC_STATELESS_RESET_TOKEN *,size_t,void **,uint64_t *)" in summary model. | +| Dubious signature "(QUIC_SRTM *,void *,uint64_t,const QUIC_STATELESS_RESET_TOKEN *)" in summary model. | +| Dubious signature "(QUIC_SSTREAM *)" in summary model. | +| Dubious signature "(QUIC_SSTREAM *,const unsigned char *,size_t,size_t *)" in summary model. | +| Dubious signature "(QUIC_SSTREAM *,int)" in summary model. | +| Dubious signature "(QUIC_SSTREAM *,size_t)" in summary model. | +| Dubious signature "(QUIC_SSTREAM *,size_t,OSSL_QUIC_FRAME_STREAM *,OSSL_QTX_IOVEC *,size_t *)" in summary model. | +| Dubious signature "(QUIC_SSTREAM *,uint64_t *)" in summary model. | +| Dubious signature "(QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int)" in summary model. | +| Dubious signature "(QUIC_STREAM_MAP *)" in summary model. | +| Dubious signature "(QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int)" in summary model. | +| Dubious signature "(QUIC_STREAM_MAP *,QUIC_STREAM *)" in summary model. | +| Dubious signature "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t)" in summary model. | +| Dubious signature "(QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t,uint64_t)" in summary model. | +| Dubious signature "(QUIC_STREAM_MAP *,int)" in summary model. | +| Dubious signature "(QUIC_STREAM_MAP *,size_t)" in summary model. | +| Dubious signature "(QUIC_STREAM_MAP *,uint64_t,int)" in summary model. | +| Dubious signature "(QUIC_THREAD_ASSIST *,QUIC_CHANNEL *)" in summary model. | +| Dubious signature "(QUIC_TLS *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(QUIC_TLS *,uint64_t *,const char **,ERR_STATE **)" in summary model. | +| Dubious signature "(QUIC_TSERVER *)" in summary model. | +| Dubious signature "(QUIC_TSERVER *,..(*)(..),void *)" in summary model. | +| Dubious signature "(QUIC_TSERVER *,SSL *)" in summary model. | +| Dubious signature "(QUIC_TSERVER *,SSL *,int)" in summary model. | +| Dubious signature "(QUIC_TSERVER *,SSL_psk_find_session_cb_func)" in summary model. | +| Dubious signature "(QUIC_TSERVER *,const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(QUIC_TSERVER *,int,uint64_t *)" in summary model. | +| Dubious signature "(QUIC_TSERVER *,uint32_t)" in summary model. | +| Dubious signature "(QUIC_TSERVER *,uint64_t,const unsigned char *,size_t,size_t *)" in summary model. | +| Dubious signature "(QUIC_TSERVER *,uint64_t,unsigned char *,size_t,size_t *)" in summary model. | +| Dubious signature "(QUIC_TXFC *)" in summary model. | +| Dubious signature "(QUIC_TXFC *,QUIC_TXFC *)" in summary model. | +| Dubious signature "(QUIC_TXFC *,int)" in summary model. | +| Dubious signature "(QUIC_TXFC *,uint64_t)" in summary model. | +| Dubious signature "(QUIC_TXPIM *,QUIC_TXPIM_PKT *)" in summary model. | +| Dubious signature "(QUIC_TXPIM_PKT *,QUIC_CFQ_ITEM *)" in summary model. | +| Dubious signature "(QUIC_TXPIM_PKT *,const QUIC_TXPIM_CHUNK *)" in summary model. | +| Dubious signature "(RAND_POOL *)" in summary model. | +| Dubious signature "(RAND_POOL *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(RAND_POOL *,const unsigned char *,size_t,size_t)" in summary model. | +| Dubious signature "(RAND_POOL *,size_t)" in summary model. | +| Dubious signature "(RAND_POOL *,size_t,size_t)" in summary model. | +| Dubious signature "(RAND_POOL *,unsigned char *)" in summary model. | +| Dubious signature "(RAND_POOL *,unsigned int)" in summary model. | +| Dubious signature "(RECORD_LAYER *,SSL_CONNECTION *)" in summary model. | +| Dubious signature "(RIO_NOTIFIER *)" in summary model. | +| Dubious signature "(RIPEMD160_CTX *,const unsigned char *)" in summary model. | +| Dubious signature "(RIPEMD160_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(RSA *)" in summary model. | +| Dubious signature "(RSA **,const unsigned char **,long)" in summary model. | +| Dubious signature "(RSA *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *)" in summary model. | +| Dubious signature "(RSA *,BIGNUM *[],BIGNUM *[],BIGNUM *[],int)" in summary model. | +| Dubious signature "(RSA *,BN_CTX *)" in summary model. | +| Dubious signature "(RSA *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(RSA *,OSSL_PARAM_BLD *,OSSL_PARAM[],int)" in summary model. | +| Dubious signature "(RSA *,RSA_PSS_PARAMS *)" in summary model. | +| Dubious signature "(RSA *,const OSSL_PARAM[],int)" in summary model. | +| Dubious signature "(RSA *,const RSA_METHOD *)" in summary model. | +| Dubious signature "(RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int *)" in summary model. | +| Dubious signature "(RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int)" in summary model. | +| Dubious signature "(RSA *,int)" in summary model. | +| Dubious signature "(RSA *,int,BIGNUM *,BN_GENCB *)" in summary model. | +| Dubious signature "(RSA *,int,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(RSA *,int,const BIGNUM *,BN_GENCB *)" in summary model. | +| Dubious signature "(RSA *,int,int,BIGNUM *,BN_GENCB *)" in summary model. | +| Dubious signature "(RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *)" in summary model. | +| Dubious signature "(RSA *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *)" in summary model. | +| Dubious signature "(RSA *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *)" in summary model. | +| Dubious signature "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *)" in summary model. | +| Dubious signature "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int)" in summary model. | +| Dubious signature "(RSA *,unsigned char *,const unsigned char *,const EVP_MD *,int)" in summary model. | +| Dubious signature "(RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *)" in summary model. | +| Dubious signature "(RSA_METHOD *,..(*)(..))" in summary model. | +| Dubious signature "(RSA_METHOD *,const char *)" in summary model. | +| Dubious signature "(RSA_METHOD *,int)" in summary model. | +| Dubious signature "(RSA_METHOD *,void *)" in summary model. | +| Dubious signature "(RSA_OAEP_PARAMS *)" in summary model. | +| Dubious signature "(RSA_OAEP_PARAMS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(RSA_PSS_PARAMS *)" in summary model. | +| Dubious signature "(RSA_PSS_PARAMS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(RSA_PSS_PARAMS_30 *,const RSA_PSS_PARAMS_30 *)" in summary model. | +| Dubious signature "(RSA_PSS_PARAMS_30 *,int *,const OSSL_PARAM[],OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(RSA_PSS_PARAMS_30 *,int)" in summary model. | +| Dubious signature "(SCRYPT_PARAMS *)" in summary model. | +| Dubious signature "(SCRYPT_PARAMS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(SCT **,const unsigned char **,size_t)" in summary model. | +| Dubious signature "(SCT *,const unsigned char **,size_t)" in summary model. | +| Dubious signature "(SCT *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(SCT *,ct_log_entry_type_t)" in summary model. | +| Dubious signature "(SCT *,sct_source_t)" in summary model. | +| Dubious signature "(SCT *,sct_version_t)" in summary model. | +| Dubious signature "(SCT *,uint64_t)" in summary model. | +| Dubious signature "(SCT *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(SCT_CTX *,X509 *,X509 *)" in summary model. | +| Dubious signature "(SCT_CTX *,X509_PUBKEY *)" in summary model. | +| Dubious signature "(SCT_CTX *,uint64_t)" in summary model. | +| Dubious signature "(SD,const char *,SD_SYM *)" in summary model. | +| Dubious signature "(SFRAME_LIST *)" in summary model. | +| Dubious signature "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)" in summary model. | +| Dubious signature "(SFRAME_LIST *,UINT_RANGE *,const unsigned char **,int *)" in summary model. | +| Dubious signature "(SFRAME_LIST *,sframe_list_write_at_cb *,void *)" in summary model. | +| Dubious signature "(SFRAME_LIST *,uint64_t)" in summary model. | +| Dubious signature "(SHA256_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(SHA512_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(SHA_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(SHA_CTX *,int,int,void *)" in summary model. | +| Dubious signature "(SIPHASH *)" in summary model. | +| Dubious signature "(SIPHASH *,const unsigned char *,int,int)" in summary model. | +| Dubious signature "(SIPHASH *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(SIPHASH *,size_t)" in summary model. | +| Dubious signature "(SIPHASH *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(SIV128_CONTEXT *)" in summary model. | +| Dubious signature "(SIV128_CONTEXT *,SIV128_CONTEXT *)" in summary model. | +| Dubious signature "(SIV128_CONTEXT *,const unsigned char *,int,const EVP_CIPHER *,const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(SIV128_CONTEXT *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(SIV128_CONTEXT *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t)" in summary model. | +| Dubious signature "(SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(SLH_DSA_KEY *,const OSSL_PARAM *,const OSSL_PARAM[],int)" in summary model. | +| Dubious signature "(SLH_DSA_KEY *,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(SM2_Ciphertext *)" in summary model. | +| Dubious signature "(SM2_Ciphertext **,const unsigned char **,long)" in summary model. | +| Dubious signature "(SM3_CTX *,const unsigned char *)" in summary model. | +| Dubious signature "(SM3_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(SRP_VBASE *,SRP_user_pwd *)" in summary model. | +| Dubious signature "(SRP_VBASE *,char *)" in summary model. | +| Dubious signature "(SRP_user_pwd *,BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(SRP_user_pwd *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(SRP_user_pwd *,const char *,const char *)" in summary model. | +| Dubious signature "(SSL *)" in summary model. | +| Dubious signature "(SSL *,..(*)(..))" in summary model. | +| Dubious signature "(SSL *,..(*)(..),void *)" in summary model. | +| Dubious signature "(SSL *,BIO *)" in summary model. | +| Dubious signature "(SSL *,BIO *,BIO *)" in summary model. | +| Dubious signature "(SSL *,DTLS_timer_cb)" in summary model. | +| Dubious signature "(SSL *,EVP_PKEY *)" in summary model. | +| Dubious signature "(SSL *,GEN_SESSION_CB)" in summary model. | +| Dubious signature "(SSL *,SSL *)" in summary model. | +| Dubious signature "(SSL *,SSL *,int)" in summary model. | +| Dubious signature "(SSL *,SSL *,int,int,int)" in summary model. | +| Dubious signature "(SSL *,SSL *,int,long,clock_t *,clock_t *)" in summary model. | +| Dubious signature "(SSL *,SSL *,long,clock_t *,clock_t *)" in summary model. | +| Dubious signature "(SSL *,SSL_CTX *)" in summary model. | +| Dubious signature "(SSL *,SSL_CTX *,const SSL_METHOD *,int)" in summary model. | +| Dubious signature "(SSL *,SSL_SESSION *)" in summary model. | +| Dubious signature "(SSL *,SSL_allow_early_data_cb_fn,void *)" in summary model. | +| Dubious signature "(SSL *,SSL_async_callback_fn)" in summary model. | +| Dubious signature "(SSL *,SSL_psk_client_cb_func)" in summary model. | +| Dubious signature "(SSL *,SSL_psk_find_session_cb_func)" in summary model. | +| Dubious signature "(SSL *,SSL_psk_server_cb_func)" in summary model. | +| Dubious signature "(SSL *,SSL_psk_use_session_cb_func)" in summary model. | +| Dubious signature "(SSL *,X509 *)" in summary model. | +| Dubious signature "(SSL *,X509 **,EVP_PKEY **)" in summary model. | +| Dubious signature "(SSL *,X509 *,EVP_PKEY *,stack_st_X509 *)" in summary model. | +| Dubious signature "(SSL *,X509 *,EVP_PKEY *,stack_st_X509 *,int)" in summary model. | +| Dubious signature "(SSL *,X509_VERIFY_PARAM *)" in summary model. | +| Dubious signature "(SSL *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,char *)" in summary model. | +| Dubious signature "(SSL *,const OSSL_DISPATCH *,void *)" in summary model. | +| Dubious signature "(SSL *,const SSL *)" in summary model. | +| Dubious signature "(SSL *,const SSL_METHOD *)" in summary model. | +| Dubious signature "(SSL *,const char *)" in summary model. | +| Dubious signature "(SSL *,const unsigned char **)" in summary model. | +| Dubious signature "(SSL *,const unsigned char *,int)" in summary model. | +| Dubious signature "(SSL *,const unsigned char *,long)" in summary model. | +| Dubious signature "(SSL *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(SSL *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *)" in summary model. | +| Dubious signature "(SSL *,const unsigned char *,size_t,int,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **)" in summary model. | +| Dubious signature "(SSL *,const unsigned char *,unsigned int)" in summary model. | +| Dubious signature "(SSL *,const void *,int)" in summary model. | +| Dubious signature "(SSL *,const void *,size_t,size_t *)" in summary model. | +| Dubious signature "(SSL *,const void *,size_t,uint64_t,size_t *)" in summary model. | +| Dubious signature "(SSL *,int *)" in summary model. | +| Dubious signature "(SSL *,int *,size_t *)" in summary model. | +| Dubious signature "(SSL *,int *,size_t *,int *,size_t *)" in summary model. | +| Dubious signature "(SSL *,int)" in summary model. | +| Dubious signature "(SSL *,int,..(*)(..))" in summary model. | +| Dubious signature "(SSL *,int,..(*)(..),SSL_verify_cb)" in summary model. | +| Dubious signature "(SSL *,int,int *,int *,int *,unsigned char *,unsigned char *)" in summary model. | +| Dubious signature "(SSL *,int,long,void *)" in summary model. | +| Dubious signature "(SSL *,int,long,void *,int)" in summary model. | +| Dubious signature "(SSL *,long)" in summary model. | +| Dubious signature "(SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *)" in summary model. | +| Dubious signature "(SSL *,pem_password_cb *)" in summary model. | +| Dubious signature "(SSL *,size_t)" in summary model. | +| Dubious signature "(SSL *,size_t,size_t)" in summary model. | +| Dubious signature "(SSL *,ssl_ct_validation_cb,void *)" in summary model. | +| Dubious signature "(SSL *,stack_st_X509_NAME *)" in summary model. | +| Dubious signature "(SSL *,tls_session_secret_cb_fn,void *)" in summary model. | +| Dubious signature "(SSL *,tls_session_ticket_ext_cb_fn,void *)" in summary model. | +| Dubious signature "(SSL *,uint8_t *,uint8_t *,uint8_t *,const unsigned char **,size_t *)" in summary model. | +| Dubious signature "(SSL *,uint8_t)" in summary model. | +| Dubious signature "(SSL *,uint8_t,const void *,size_t,size_t *)" in summary model. | +| Dubious signature "(SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *)" in summary model. | +| Dubious signature "(SSL *,uint8_t,uint8_t,uint8_t,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(SSL *,uint16_t *,size_t *)" in summary model. | +| Dubious signature "(SSL *,uint32_t)" in summary model. | +| Dubious signature "(SSL *,uint64_t)" in summary model. | +| Dubious signature "(SSL *,uint64_t,const SSL_SHUTDOWN_EX_ARGS *,size_t)" in summary model. | +| Dubious signature "(SSL *,unsigned int)" in summary model. | +| Dubious signature "(SSL *,unsigned long)" in summary model. | +| Dubious signature "(SSL *,void *)" in summary model. | +| Dubious signature "(SSL *,void *,int)" in summary model. | +| Dubious signature "(SSL *,void *,size_t,size_t *)" in summary model. | +| Dubious signature "(SSL_CIPHER *,const SSL_CIPHER *,int)" in summary model. | +| Dubious signature "(SSL_CONF_CTX *,SSL *)" in summary model. | +| Dubious signature "(SSL_CONF_CTX *,SSL_CTX *)" in summary model. | +| Dubious signature "(SSL_CONF_CTX *,const char *)" in summary model. | +| Dubious signature "(SSL_CONF_CTX *,const char *,const char *)" in summary model. | +| Dubious signature "(SSL_CONF_CTX *,int *,char ***)" in summary model. | +| Dubious signature "(SSL_CONF_CTX *,stack_st_OPENSSL_STRING *,SSL_CTX *)" in summary model. | +| Dubious signature "(SSL_CONF_CTX *,unsigned int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,CLIENTHELLO_MSG *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,CLIENTHELLO_MSG *,DOWNGRADE *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,CLIENTHELLO_MSG *,SSL_SESSION **)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,EVP_PKEY *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,PACKET *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,PACKET *,EVP_PKEY **)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,PACKET *,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,PACKET *,unsigned int,RAW_EXTENSION **,size_t *,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,SSL_CTX *,X509 *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,SSL_CTX *,X509 *,int,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,SSL_CTX *,stack_st_X509 *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,TLSEXT_INDEX,int,RAW_EXTENSION *,X509 *,size_t)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,TLS_RECORD *,size_t)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,WPACKET *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,WPACKET *,CERT_PKEY *,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,WPACKET *,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,X509 *,EVP_PKEY *,stack_st_X509 *,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,const OSSL_RECORD_METHOD *,void *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,const size_t **,size_t *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,const stack_st_X509_NAME *,WPACKET *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,const uint16_t **,size_t *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,const unsigned char **,size_t *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,const unsigned char *,size_t,const unsigned char *,size_t,SSL_SESSION **)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,int *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,int,RAW_EXTENSION *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,int,RAW_EXTENSION *,X509 *,size_t,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,int,const uint16_t **)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,int,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,int,int,char *,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,int,int,const char *,...)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,int,unsigned char *,size_t,DOWNGRADE)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,size_t *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,stack_st_X509 *,X509 *,int)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,uint8_t,const unsigned char *,size_t,size_t *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,uint8_t,const void *,size_t,size_t *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,unsigned char **,const void *,size_t)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,unsigned char *,unsigned char *,size_t,size_t *)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,unsigned char,size_t,size_t,size_t)" in summary model. | +| Dubious signature "(SSL_CONNECTION *,unsigned long)" in summary model. | +| Dubious signature "(SSL_CTX *)" in summary model. | +| Dubious signature "(SSL_CTX *,..(*)(..))" in summary model. | +| Dubious signature "(SSL_CTX *,..(*)(..),void *)" in summary model. | +| Dubious signature "(SSL_CTX *,CTLOG_STORE *)" in summary model. | +| Dubious signature "(SSL_CTX *,ENGINE *)" in summary model. | +| Dubious signature "(SSL_CTX *,EVP_PKEY *)" in summary model. | +| Dubious signature "(SSL_CTX *,GEN_SESSION_CB)" in summary model. | +| Dubious signature "(SSL_CTX *,SRP_ARG *,int,int,int)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL *,const SSL_METHOD *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_CTX_keylog_cb_func)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_CTX_npn_advertised_cb_func,void *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_CTX_npn_select_cb_func,void *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_EXCERT *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_SESSION *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_allow_early_data_cb_fn,void *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_async_callback_fn)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_client_hello_cb_fn,void *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_new_pending_conn_cb_fn,void *)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_psk_client_cb_func)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_psk_find_session_cb_func)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_psk_server_cb_func)" in summary model. | +| Dubious signature "(SSL_CTX *,SSL_psk_use_session_cb_func)" in summary model. | +| Dubious signature "(SSL_CTX *,X509 *)" in summary model. | +| Dubious signature "(SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int)" in summary model. | +| Dubious signature "(SSL_CTX *,X509_STORE *)" in summary model. | +| Dubious signature "(SSL_CTX *,X509_VERIFY_PARAM *)" in summary model. | +| Dubious signature "(SSL_CTX *,char *)" in summary model. | +| Dubious signature "(SSL_CTX *,char *,char *)" in summary model. | +| Dubious signature "(SSL_CTX *,const EVP_MD *,uint8_t,uint8_t)" in summary model. | +| Dubious signature "(SSL_CTX *,const SIGALG_LOOKUP *,const EVP_MD **)" in summary model. | +| Dubious signature "(SSL_CTX *,const SSL_CIPHER *,const EVP_CIPHER **)" in summary model. | +| Dubious signature "(SSL_CTX *,const SSL_CIPHER *,const EVP_MD **,int *,size_t *)" in summary model. | +| Dubious signature "(SSL_CTX *,const SSL_METHOD *)" in summary model. | +| Dubious signature "(SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int)" in summary model. | +| Dubious signature "(SSL_CTX *,const char *)" in summary model. | +| Dubious signature "(SSL_CTX *,const unsigned char *,long)" in summary model. | +| Dubious signature "(SSL_CTX *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(SSL_CTX *,const unsigned char *,unsigned int)" in summary model. | +| Dubious signature "(SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *)" in summary model. | +| Dubious signature "(SSL_CTX *,int)" in summary model. | +| Dubious signature "(SSL_CTX *,int,..(*)(..))" in summary model. | +| Dubious signature "(SSL_CTX *,int,..(*)(..),SSL_verify_cb)" in summary model. | +| Dubious signature "(SSL_CTX *,int,const unsigned char *)" in summary model. | +| Dubious signature "(SSL_CTX *,int,long,void *)" in summary model. | +| Dubious signature "(SSL_CTX *,long)" in summary model. | +| Dubious signature "(SSL_CTX *,pem_password_cb *)" in summary model. | +| Dubious signature "(SSL_CTX *,size_t)" in summary model. | +| Dubious signature "(SSL_CTX *,size_t,size_t)" in summary model. | +| Dubious signature "(SSL_CTX *,srpsrvparm *,char *,char *)" in summary model. | +| Dubious signature "(SSL_CTX *,ssl_ct_validation_cb,void *)" in summary model. | +| Dubious signature "(SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *)" in summary model. | +| Dubious signature "(SSL_CTX *,stack_st_X509_NAME *)" in summary model. | +| Dubious signature "(SSL_CTX *,uint8_t)" in summary model. | +| Dubious signature "(SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *)" in summary model. | +| Dubious signature "(SSL_CTX *,uint16_t)" in summary model. | +| Dubious signature "(SSL_CTX *,uint32_t)" in summary model. | +| Dubious signature "(SSL_CTX *,uint64_t)" in summary model. | +| Dubious signature "(SSL_CTX *,unsigned long)" in summary model. | +| Dubious signature "(SSL_CTX *,void *)" in summary model. | +| Dubious signature "(SSL_EXCERT **)" in summary model. | +| Dubious signature "(SSL_HMAC *)" in summary model. | +| Dubious signature "(SSL_HMAC *,void *,size_t,char *)" in summary model. | +| Dubious signature "(SSL_POLL_ITEM *,size_t,size_t,const timeval *,uint64_t,size_t *)" in summary model. | +| Dubious signature "(SSL_SESSION *)" in summary model. | +| Dubious signature "(SSL_SESSION **,const unsigned char **,long)" in summary model. | +| Dubious signature "(SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(SSL_SESSION *,const SSL_CIPHER *)" in summary model. | +| Dubious signature "(SSL_SESSION *,const char *)" in summary model. | +| Dubious signature "(SSL_SESSION *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(SSL_SESSION *,const unsigned char *,unsigned int)" in summary model. | +| Dubious signature "(SSL_SESSION *,const void *,size_t)" in summary model. | +| Dubious signature "(SSL_SESSION *,int)" in summary model. | +| Dubious signature "(SSL_SESSION *,long)" in summary model. | +| Dubious signature "(SSL_SESSION *,time_t)" in summary model. | +| Dubious signature "(SSL_SESSION *,uint32_t)" in summary model. | +| Dubious signature "(SSL_SESSION *,void **,size_t *)" in summary model. | +| Dubious signature "(STANZA *,const char *)" in summary model. | +| Dubious signature "(SXNET *)" in summary model. | +| Dubious signature "(SXNET **,ASN1_INTEGER *,const char *,int)" in summary model. | +| Dubious signature "(SXNET **,const char *,const char *,int)" in summary model. | +| Dubious signature "(SXNET **,const unsigned char **,long)" in summary model. | +| Dubious signature "(SXNET **,unsigned long,const char *,int)" in summary model. | +| Dubious signature "(SXNETID *)" in summary model. | +| Dubious signature "(SXNETID **,const unsigned char **,long)" in summary model. | +| Dubious signature "(StrAccum *,sqlite3_str *,const char *,...)" in summary model. | +| Dubious signature "(TLS_FEATURE *)" in summary model. | +| Dubious signature "(TLS_RL_RECORD *,const unsigned char *)" in summary model. | +| Dubious signature "(TS_ACCURACY *)" in summary model. | +| Dubious signature "(TS_ACCURACY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(TS_ACCURACY *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(TS_MSG_IMPRINT *)" in summary model. | +| Dubious signature "(TS_MSG_IMPRINT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(TS_MSG_IMPRINT *,X509_ALGOR *)" in summary model. | +| Dubious signature "(TS_MSG_IMPRINT *,unsigned char *,int)" in summary model. | +| Dubious signature "(TS_REQ *)" in summary model. | +| Dubious signature "(TS_REQ **,const unsigned char **,long)" in summary model. | +| Dubious signature "(TS_REQ *,TS_MSG_IMPRINT *)" in summary model. | +| Dubious signature "(TS_REQ *,TS_VERIFY_CTX *)" in summary model. | +| Dubious signature "(TS_REQ *,X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(TS_REQ *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(TS_REQ *,const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(TS_REQ *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(TS_REQ *,int)" in summary model. | +| Dubious signature "(TS_REQ *,int,int *,int *)" in summary model. | +| Dubious signature "(TS_REQ *,int,int)" in summary model. | +| Dubious signature "(TS_REQ *,long)" in summary model. | +| Dubious signature "(TS_RESP *)" in summary model. | +| Dubious signature "(TS_RESP **,const unsigned char **,long)" in summary model. | +| Dubious signature "(TS_RESP *,PKCS7 *,TS_TST_INFO *)" in summary model. | +| Dubious signature "(TS_RESP *,TS_STATUS_INFO *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,BIO *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,EVP_PKEY *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,TS_extension_cb,void *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,TS_serial_cb,void *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,TS_time_cb,void *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,X509 *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,const EVP_MD *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,int)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,int,int,int)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,stack_st_X509 *)" in summary model. | +| Dubious signature "(TS_RESP_CTX *,unsigned int)" in summary model. | +| Dubious signature "(TS_STATUS_INFO *)" in summary model. | +| Dubious signature "(TS_STATUS_INFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(TS_STATUS_INFO *,int)" in summary model. | +| Dubious signature "(TS_TST_INFO *)" in summary model. | +| Dubious signature "(TS_TST_INFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(TS_TST_INFO *,ASN1_OBJECT *)" in summary model. | +| Dubious signature "(TS_TST_INFO *,GENERAL_NAME *)" in summary model. | +| Dubious signature "(TS_TST_INFO *,TS_ACCURACY *)" in summary model. | +| Dubious signature "(TS_TST_INFO *,TS_MSG_IMPRINT *)" in summary model. | +| Dubious signature "(TS_TST_INFO *,X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(TS_TST_INFO *,const ASN1_GENERALIZEDTIME *)" in summary model. | +| Dubious signature "(TS_TST_INFO *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(TS_TST_INFO *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(TS_TST_INFO *,int)" in summary model. | +| Dubious signature "(TS_TST_INFO *,int,int *,int *)" in summary model. | +| Dubious signature "(TS_TST_INFO *,int,int)" in summary model. | +| Dubious signature "(TS_TST_INFO *,long)" in summary model. | +| Dubious signature "(TS_VERIFY_CTX *,BIO *)" in summary model. | +| Dubious signature "(TS_VERIFY_CTX *,X509_STORE *)" in summary model. | +| Dubious signature "(TS_VERIFY_CTX *,int)" in summary model. | +| Dubious signature "(TS_VERIFY_CTX *,stack_st_X509 *)" in summary model. | +| Dubious signature "(TS_VERIFY_CTX *,unsigned char *,long)" in summary model. | +| Dubious signature "(TXT_DB *,OPENSSL_STRING *)" in summary model. | +| Dubious signature "(TXT_DB *,int,..(*)(..),OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC)" in summary model. | +| Dubious signature "(UI *)" in summary model. | +| Dubious signature "(UI *,UI_STRING *,const char *)" in summary model. | +| Dubious signature "(UI *,UI_STRING *,const char *,int)" in summary model. | +| Dubious signature "(UI *,const UI_METHOD *)" in summary model. | +| Dubious signature "(UI *,const char *)" in summary model. | +| Dubious signature "(UI *,const char *,const char *)" in summary model. | +| Dubious signature "(UI *,const char *,const char *,const char *,const char *,int,char *)" in summary model. | +| Dubious signature "(UI *,const char *,int,char *,int,int)" in summary model. | +| Dubious signature "(UI *,const char *,int,char *,int,int,const char *)" in summary model. | +| Dubious signature "(UI *,void *)" in summary model. | +| Dubious signature "(UI_METHOD *,..(*)(..))" in summary model. | +| Dubious signature "(UI_METHOD *,..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(UI_STRING *)" in summary model. | +| Dubious signature "(USERNOTICE *)" in summary model. | +| Dubious signature "(USERNOTICE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(WHIRLPOOL_CTX *,const void *,size_t)" in summary model. | +| Dubious signature "(WPACKET *)" in summary model. | +| Dubious signature "(WPACKET *,BUF_MEM *)" in summary model. | +| Dubious signature "(WPACKET *,BUF_MEM *,size_t)" in summary model. | +| Dubious signature "(WPACKET *,const BIGNUM *)" in summary model. | +| Dubious signature "(WPACKET *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(WPACKET *,const OSSL_QUIC_FRAME_CONN_CLOSE *)" in summary model. | +| Dubious signature "(WPACKET *,const OSSL_QUIC_FRAME_CRYPTO *)" in summary model. | +| Dubious signature "(WPACKET *,const OSSL_QUIC_FRAME_NEW_CONN_ID *)" in summary model. | +| Dubious signature "(WPACKET *,const OSSL_QUIC_FRAME_STREAM *)" in summary model. | +| Dubious signature "(WPACKET *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(WPACKET *,const void *,size_t)" in summary model. | +| Dubious signature "(WPACKET *,const void *,size_t,size_t)" in summary model. | +| Dubious signature "(WPACKET *,int)" in summary model. | +| Dubious signature "(WPACKET *,int,const BIGNUM *)" in summary model. | +| Dubious signature "(WPACKET *,int,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(WPACKET *,int,size_t)" in summary model. | +| Dubious signature "(WPACKET *,size_t *)" in summary model. | +| Dubious signature "(WPACKET *,size_t)" in summary model. | +| Dubious signature "(WPACKET *,size_t,const QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *)" in summary model. | +| Dubious signature "(WPACKET *,size_t,unsigned char **)" in summary model. | +| Dubious signature "(WPACKET *,size_t,unsigned char **,size_t)" in summary model. | +| Dubious signature "(WPACKET *,uint64_t,const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(WPACKET *,uint64_t,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(WPACKET *,uint64_t,size_t)" in summary model. | +| Dubious signature "(WPACKET *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(WPACKET *,unsigned char *,size_t,size_t)" in summary model. | +| Dubious signature "(WPACKET *,unsigned int)" in summary model. | +| Dubious signature "(X9_62_CHARACTERISTIC_TWO *)" in summary model. | +| Dubious signature "(X9_62_PENTANOMIAL *)" in summary model. | +| Dubious signature "(X509 *)" in summary model. | +| Dubious signature "(X509 **,X509_STORE_CTX *,X509 *)" in summary model. | +| Dubious signature "(X509 **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509 *,ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(X509 *,EVP_MD_CTX *)" in summary model. | +| Dubious signature "(X509 *,EVP_PKEY *,const EVP_MD *)" in summary model. | +| Dubious signature "(X509 *,EVP_PKEY *,stack_st_OPENSSL_STRING *)" in summary model. | +| Dubious signature "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int)" in summary model. | +| Dubious signature "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int)" in summary model. | +| Dubious signature "(X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(X509 *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(X509 *,SSL_CONNECTION *)" in summary model. | +| Dubious signature "(X509 *,X509 *)" in summary model. | +| Dubious signature "(X509 *,X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(X509 *,const X509_NAME *)" in summary model. | +| Dubious signature "(X509 *,const char *)" in summary model. | +| Dubious signature "(X509 *,const char *,size_t,unsigned int,char **)" in summary model. | +| Dubious signature "(X509 *,int *,int *,int *,uint32_t *)" in summary model. | +| Dubious signature "(X509 *,int)" in summary model. | +| Dubious signature "(X509 *,int,int)" in summary model. | +| Dubious signature "(X509 *,int,void *,int,unsigned long)" in summary model. | +| Dubious signature "(X509 *,long)" in summary model. | +| Dubious signature "(X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(X509 *,unsigned char **)" in summary model. | +| Dubious signature "(X509V3_CTX *,CONF *)" in summary model. | +| Dubious signature "(X509V3_CTX *,EVP_PKEY *)" in summary model. | +| Dubious signature "(X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int)" in summary model. | +| Dubious signature "(X509V3_CTX *,lhash_st_CONF_VALUE *)" in summary model. | +| Dubious signature "(X509V3_EXT_METHOD *)" in summary model. | +| Dubious signature "(X509V3_EXT_METHOD *,ASN1_BIT_STRING *,stack_st_CONF_VALUE *)" in summary model. | +| Dubious signature "(X509V3_EXT_METHOD *,ASN1_IA5STRING *)" in summary model. | +| Dubious signature "(X509V3_EXT_METHOD *,ASN1_UTF8STRING *)" in summary model. | +| Dubious signature "(X509V3_EXT_METHOD *,GENERAL_NAME *,stack_st_CONF_VALUE *)" in summary model. | +| Dubious signature "(X509V3_EXT_METHOD *,GENERAL_NAMES *,stack_st_CONF_VALUE *)" in summary model. | +| Dubious signature "(X509V3_EXT_METHOD *,X509V3_CTX *,const char *)" in summary model. | +| Dubious signature "(X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *)" in summary model. | +| Dubious signature "(X509V3_EXT_METHOD *,const ASN1_ENUMERATED *)" in summary model. | +| Dubious signature "(X509V3_EXT_METHOD *,const ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(X509_ACERT *)" in summary model. | +| Dubious signature "(X509_ACERT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_ACERT *,EVP_MD_CTX *)" in summary model. | +| Dubious signature "(X509_ACERT *,EVP_PKEY *,const EVP_MD *)" in summary model. | +| Dubious signature "(X509_ACERT *,X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(X509_ACERT *,const ASN1_OBJECT *,int,const void *,int)" in summary model. | +| Dubious signature "(X509_ACERT *,const X509_NAME *)" in summary model. | +| Dubious signature "(X509_ACERT *,const char *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(X509_ACERT *,int)" in summary model. | +| Dubious signature "(X509_ACERT *,int,int,const void *,int)" in summary model. | +| Dubious signature "(X509_ACERT *,int,void *,int,unsigned long)" in summary model. | +| Dubious signature "(X509_ACERT_INFO *)" in summary model. | +| Dubious signature "(X509_ACERT_ISSUER_V2FORM *)" in summary model. | +| Dubious signature "(X509_ALGOR *)" in summary model. | +| Dubious signature "(X509_ALGOR **,const EVP_MD *)" in summary model. | +| Dubious signature "(X509_ALGOR **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_ALGOR *,ASN1_OBJECT *,int,void *)" in summary model. | +| Dubious signature "(X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int)" in summary model. | +| Dubious signature "(X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(X509_ALGOR *,const EVP_MD *)" in summary model. | +| Dubious signature "(X509_ALGOR *,const X509_ALGOR *)" in summary model. | +| Dubious signature "(X509_ALGOR *,int,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(X509_ALGOR *,int,int,const unsigned char *,int,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(X509_ALGORS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int)" in summary model. | +| Dubious signature "(X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(X509_ATTRIBUTE **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_ATTRIBUTE **,int,int,const void *,int)" in summary model. | +| Dubious signature "(X509_ATTRIBUTE *,const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(X509_ATTRIBUTE *,int)" in summary model. | +| Dubious signature "(X509_CERT_AUX *)" in summary model. | +| Dubious signature "(X509_CERT_AUX **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_CINF *)" in summary model. | +| Dubious signature "(X509_CINF **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_CRL *)" in summary model. | +| Dubious signature "(X509_CRL **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_CRL *,EVP_MD_CTX *)" in summary model. | +| Dubious signature "(X509_CRL *,EVP_PKEY *,const EVP_MD *)" in summary model. | +| Dubious signature "(X509_CRL *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(X509_CRL *,X509_CRL *,EVP_PKEY *,const EVP_MD *,unsigned int)" in summary model. | +| Dubious signature "(X509_CRL *,X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(X509_CRL *,const X509_NAME *)" in summary model. | +| Dubious signature "(X509_CRL *,int)" in summary model. | +| Dubious signature "(X509_CRL *,int,void *,int,unsigned long)" in summary model. | +| Dubious signature "(X509_CRL *,unsigned char **)" in summary model. | +| Dubious signature "(X509_CRL *,void *)" in summary model. | +| Dubious signature "(X509_CRL_INFO *)" in summary model. | +| Dubious signature "(X509_CRL_INFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_EXTENSION *)" in summary model. | +| Dubious signature "(X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(X509_EXTENSION **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_EXTENSION **,int,int,ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(X509_EXTENSION *,ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(X509_EXTENSION *,const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(X509_EXTENSIONS **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_LOOKUP *,void *)" in summary model. | +| Dubious signature "(X509_LOOKUP_METHOD *)" in summary model. | +| Dubious signature "(X509_LOOKUP_METHOD *,..(*)(..))" in summary model. | +| Dubious signature "(X509_LOOKUP_METHOD *,X509_LOOKUP_ctrl_fn)" in summary model. | +| Dubious signature "(X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_alias_fn)" in summary model. | +| Dubious signature "(X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_fingerprint_fn)" in summary model. | +| Dubious signature "(X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_issuer_serial_fn)" in summary model. | +| Dubious signature "(X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_subject_fn)" in summary model. | +| Dubious signature "(X509_NAME *)" in summary model. | +| Dubious signature "(X509_NAME **,const X509_NAME *)" in summary model. | +| Dubious signature "(X509_NAME **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_NAME *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(X509_NAME *,const X509_NAME_ENTRY *,int,int)" in summary model. | +| Dubious signature "(X509_NAME *,int)" in summary model. | +| Dubious signature "(X509_NAME_ENTRY *)" in summary model. | +| Dubious signature "(X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(X509_NAME_ENTRY **,const char *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(X509_NAME_ENTRY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_NAME_ENTRY **,int,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(X509_NAME_ENTRY *,const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(X509_NAME_ENTRY *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(X509_OBJECT *,X509 *)" in summary model. | +| Dubious signature "(X509_OBJECT *,X509_CRL *)" in summary model. | +| Dubious signature "(X509_POLICY_LEVEL *)" in summary model. | +| Dubious signature "(X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int)" in summary model. | +| Dubious signature "(X509_POLICY_TREE **,int *,stack_st_X509 *,stack_st_ASN1_OBJECT *,unsigned int)" in summary model. | +| Dubious signature "(X509_PUBKEY *)" in summary model. | +| Dubious signature "(X509_PUBKEY **,EVP_PKEY *)" in summary model. | +| Dubious signature "(X509_PUBKEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int)" in summary model. | +| Dubious signature "(X509_PUBKEY *,unsigned char *,int)" in summary model. | +| Dubious signature "(X509_REQ *)" in summary model. | +| Dubious signature "(X509_REQ **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_REQ *,ASN1_BIT_STRING *)" in summary model. | +| Dubious signature "(X509_REQ *,ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(X509_REQ *,EVP_MD_CTX *)" in summary model. | +| Dubious signature "(X509_REQ *,EVP_PKEY *,const EVP_MD *)" in summary model. | +| Dubious signature "(X509_REQ *,EVP_PKEY *,stack_st_OPENSSL_STRING *)" in summary model. | +| Dubious signature "(X509_REQ *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(X509_REQ *,X509_ALGOR *)" in summary model. | +| Dubious signature "(X509_REQ *,X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(X509_REQ *,const X509_NAME *)" in summary model. | +| Dubious signature "(X509_REQ *,const char *)" in summary model. | +| Dubious signature "(X509_REQ *,int)" in summary model. | +| Dubious signature "(X509_REQ *,unsigned char **)" in summary model. | +| Dubious signature "(X509_REQ_INFO *)" in summary model. | +| Dubious signature "(X509_REQ_INFO **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_REVOKED *)" in summary model. | +| Dubious signature "(X509_REVOKED **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_REVOKED *,ASN1_TIME *)" in summary model. | +| Dubious signature "(X509_REVOKED *,X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(X509_REVOKED *,int)" in summary model. | +| Dubious signature "(X509_REVOKED *,int,void *,int,unsigned long)" in summary model. | +| Dubious signature "(X509_SIG *)" in summary model. | +| Dubious signature "(X509_SIG **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_SIG *,X509_ALGOR **,ASN1_OCTET_STRING **)" in summary model. | +| Dubious signature "(X509_SIG_INFO *,int,int,int,uint32_t)" in summary model. | +| Dubious signature "(X509_STORE *)" in summary model. | +| Dubious signature "(X509_STORE *,X509_LOOKUP_METHOD *)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX *,BIO *,PKCS7 *,PKCS7_SIGNER_INFO *)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_cert_crl_fn)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_check_crl_fn)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_check_issued_fn)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_check_policy_fn)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_check_revocation_fn)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_cleanup_fn)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_get_crl_fn)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_get_issuer_fn)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_lookup_certs_fn)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_lookup_crls_fn)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_verify_cb)" in summary model. | +| Dubious signature "(X509_STORE *,X509_STORE_CTX_verify_fn)" in summary model. | +| Dubious signature "(X509_STORE *,const X509_VERIFY_PARAM *)" in summary model. | +| Dubious signature "(X509_STORE *,int)" in summary model. | +| Dubious signature "(X509_STORE *,unsigned long)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,EVP_PKEY *)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,SSL_DANE *)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,X509 *)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,X509 *,int)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,X509_STORE *,EVP_PKEY *)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,X509_STORE *,X509 *,stack_st_X509 *)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,X509_STORE_CTX_get_crl_fn)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,X509_STORE_CTX_verify_cb)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,X509_STORE_CTX_verify_fn)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,X509_VERIFY_PARAM *)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,int)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,int,int,int)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,stack_st_X509 *)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,stack_st_X509_CRL *)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,unsigned int)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,unsigned long)" in summary model. | +| Dubious signature "(X509_STORE_CTX *,unsigned long,time_t)" in summary model. | +| Dubious signature "(X509_VAL *)" in summary model. | +| Dubious signature "(X509_VAL **,const unsigned char **,long)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,ASN1_OBJECT *)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,X509_VERIFY_PARAM *)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,const X509_VERIFY_PARAM *)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,const char *)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,const char *,size_t)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,int)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,stack_st_ASN1_OBJECT *)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,time_t)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,uint32_t)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,unsigned int)" in summary model. | +| Dubious signature "(X509_VERIFY_PARAM *,unsigned long)" in summary model. | | Dubious signature "(XCHAR *,const XCHAR *,int)" in summary model. | | Dubious signature "(XCHAR *,size_t,const XCHAR *,int)" in summary model. | +| Dubious signature "(action **,e_action,symbol *,char *)" in summary model. | +| Dubious signature "(action *,FILE *,int)" in summary model. | +| Dubious signature "(acttab *)" in summary model. | +| Dubious signature "(acttab *,int)" in summary model. | +| Dubious signature "(acttab *,int,int)" in summary model. | | Dubious signature "(char *)" in summary model. | +| Dubious signature "(char **)" in summary model. | +| Dubious signature "(char **,s_options *,FILE *)" in summary model. | +| Dubious signature "(char *,EVP_CIPHER_INFO *)" in summary model. | +| Dubious signature "(char *,FILE *,FILE *,int *)" in summary model. | +| Dubious signature "(char *,const char *,const char *,X509_VERIFY_PARAM *)" in summary model. | +| Dubious signature "(char *,const char *,int,const char *)" in summary model. | +| Dubious signature "(char *,const char *,size_t)" in summary model. | +| Dubious signature "(char *,int)" in summary model. | +| Dubious signature "(char *,int,const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(char *,int,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(char *,int,int,void *)" in summary model. | +| Dubious signature "(char *,size_t)" in summary model. | +| Dubious signature "(char *,size_t,const char *,...)" in summary model. | +| Dubious signature "(char *,size_t,const char *,va_list)" in summary model. | +| Dubious signature "(char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *)" in summary model. | +| Dubious signature "(char *,size_t,size_t *,const OSSL_PARAM[],void *)" in summary model. | +| Dubious signature "(char *,size_t,size_t *,const unsigned char *,size_t,const char)" in summary model. | +| Dubious signature "(char *,uint8_t)" in summary model. | +| Dubious signature "(char *,unsigned int)" in summary model. | | Dubious signature "(char,const CStringT &)" in summary model. | +| Dubious signature "(config *)" in summary model. | +| Dubious signature "(config *,config *)" in summary model. | +| Dubious signature "(const ACCESS_DESCRIPTION *,unsigned char **)" in summary model. | +| Dubious signature "(const ADMISSIONS *)" in summary model. | +| Dubious signature "(const ADMISSIONS *,unsigned char **)" in summary model. | +| Dubious signature "(const ADMISSION_SYNTAX *)" in summary model. | +| Dubious signature "(const ADMISSION_SYNTAX *,unsigned char **)" in summary model. | +| Dubious signature "(const ASIdOrRange *,unsigned char **)" in summary model. | +| Dubious signature "(const ASIdentifierChoice *,unsigned char **)" in summary model. | +| Dubious signature "(const ASIdentifiers *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_BIT_STRING **,const X509_ALGOR **,const X509 *)" in summary model. | +| Dubious signature "(const ASN1_BIT_STRING *,int)" in summary model. | +| Dubious signature "(const ASN1_BIT_STRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_BMPSTRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_ENUMERATED *)" in summary model. | +| Dubious signature "(const ASN1_ENUMERATED *,BIGNUM *)" in summary model. | +| Dubious signature "(const ASN1_ENUMERATED *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_GENERALIZEDTIME *)" in summary model. | +| Dubious signature "(const ASN1_GENERALIZEDTIME *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_GENERALSTRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_IA5STRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(const ASN1_INTEGER *,BIGNUM *)" in summary model. | +| Dubious signature "(const ASN1_INTEGER *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(const ASN1_INTEGER *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_ITEM *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,BIO *,const void *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,BIO *,void *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,FILE *,const void *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,FILE *,void *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,const ASN1_TYPE *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,const ASN1_VALUE *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_MD_CTX *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_PKEY *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,const void *)" in summary model. | +| Dubious signature "(const ASN1_ITEM *,void *,ASN1_TYPE **)" in summary model. | +| Dubious signature "(const ASN1_NULL *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *)" in summary model. | +| Dubious signature "(const ASN1_OBJECT **,int *,const void **,const X509_ALGOR *)" in summary model. | +| Dubious signature "(const ASN1_OBJECT *,const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(const ASN1_OBJECT *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(const ASN1_OCTET_STRING **,const X509_ALGOR **,const ASN1_OCTET_STRING **,const ASN1_INTEGER **,const PKCS12 *)" in summary model. | +| Dubious signature "(const ASN1_OCTET_STRING *,const ASN1_OCTET_STRING *)" in summary model. | +| Dubious signature "(const ASN1_OCTET_STRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_PCTX *)" in summary model. | +| Dubious signature "(const ASN1_PRINTABLESTRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_SEQUENCE_ANY *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_STRING *)" in summary model. | +| Dubious signature "(const ASN1_STRING *,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(const ASN1_STRING *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const ASN1_STRING *,const ASN1_STRING *)" in summary model. | +| Dubious signature "(const ASN1_STRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_T61STRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_TIME *)" in summary model. | +| Dubious signature "(const ASN1_TIME *,ASN1_GENERALIZEDTIME **)" in summary model. | +| Dubious signature "(const ASN1_TIME *,time_t *)" in summary model. | +| Dubious signature "(const ASN1_TIME *,tm *)" in summary model. | +| Dubious signature "(const ASN1_TIME *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_TYPE *)" in summary model. | +| Dubious signature "(const ASN1_TYPE *,const ASN1_TYPE *)" in summary model. | +| Dubious signature "(const ASN1_TYPE *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_UNIVERSALSTRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_UTCTIME *)" in summary model. | +| Dubious signature "(const ASN1_UTCTIME *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_UTF8STRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASN1_VALUE **,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(const ASN1_VALUE **,const ASN1_TEMPLATE *)" in summary model. | +| Dubious signature "(const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int)" in summary model. | +| Dubious signature "(const ASN1_VALUE *,const ASN1_TEMPLATE *,int)" in summary model. | +| Dubious signature "(const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(const ASN1_VISIBLESTRING *,unsigned char **)" in summary model. | +| Dubious signature "(const ASRange *,unsigned char **)" in summary model. | +| Dubious signature "(const AUTHORITY_INFO_ACCESS *,unsigned char **)" in summary model. | +| Dubious signature "(const AUTHORITY_KEYID *,unsigned char **)" in summary model. | +| Dubious signature "(const BASIC_CONSTRAINTS *,unsigned char **)" in summary model. | +| Dubious signature "(const BIGNUM *)" in summary model. | +| Dubious signature "(const BIGNUM *,ASN1_ENUMERATED *)" in summary model. | +| Dubious signature "(const BIGNUM *,ASN1_INTEGER *)" in summary model. | +| Dubious signature "(const BIGNUM *,BN_CTX *,BN_GENCB *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,BIGNUM *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const BIGNUM *,const BIGNUM *,int *)" in summary model. | +| Dubious signature "(const BIGNUM *,int)" in summary model. | +| Dubious signature "(const BIGNUM *,int,..(*)(..),BN_CTX *,void *)" in summary model. | +| Dubious signature "(const BIGNUM *,int,..(*)(..),BN_CTX *,void *,int)" in summary model. | +| Dubious signature "(const BIGNUM *,int,BN_CTX *,BN_GENCB *)" in summary model. | +| Dubious signature "(const BIGNUM *,int,BN_CTX *,BN_GENCB *,int,int *)" in summary model. | +| Dubious signature "(const BIGNUM *,int,BN_CTX *,int,BN_GENCB *)" in summary model. | +| Dubious signature "(const BIGNUM *,int,size_t *)" in summary model. | +| Dubious signature "(const BIGNUM *,int[],int)" in summary model. | +| Dubious signature "(const BIGNUM *,unsigned char *)" in summary model. | +| Dubious signature "(const BIGNUM *,unsigned char *,int)" in summary model. | +| Dubious signature "(const BIGNUM *,unsigned long)" in summary model. | +| Dubious signature "(const BIO *)" in summary model. | +| Dubious signature "(const BIO *,int)" in summary model. | +| Dubious signature "(const BIO_ADDR *)" in summary model. | +| Dubious signature "(const BIO_ADDR *,void *,size_t *)" in summary model. | +| Dubious signature "(const BIO_ADDRINFO *)" in summary model. | +| Dubious signature "(const BIO_METHOD *)" in summary model. | +| Dubious signature "(const BN_BLINDING *)" in summary model. | | Dubious signature "(const CComBSTR &)" in summary model. | | Dubious signature "(const CComSafeArray &)" in summary model. | +| Dubious signature "(const CERTIFICATEPOLICIES *,unsigned char **)" in summary model. | +| Dubious signature "(const CMS_CTX *)" in summary model. | +| Dubious signature "(const CMS_ContentInfo *)" in summary model. | +| Dubious signature "(const CMS_ContentInfo *,BIO *,int)" in summary model. | +| Dubious signature "(const CMS_ContentInfo *,unsigned char **)" in summary model. | +| Dubious signature "(const CMS_EnvelopedData *)" in summary model. | +| Dubious signature "(const CMS_ReceiptRequest *,unsigned char **)" in summary model. | +| Dubious signature "(const CMS_SignerInfo *)" in summary model. | +| Dubious signature "(const CMS_SignerInfo *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(const CMS_SignerInfo *,int)" in summary model. | +| Dubious signature "(const CMS_SignerInfo *,int,int)" in summary model. | +| Dubious signature "(const COMP_CTX *)" in summary model. | +| Dubious signature "(const COMP_METHOD *)" in summary model. | +| Dubious signature "(const CONF *)" in summary model. | +| Dubious signature "(const CONF *,const char *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(const CONF_IMODULE *)" in summary model. | +| Dubious signature "(const CRL_DIST_POINTS *,unsigned char **)" in summary model. | +| Dubious signature "(const CRYPTO_EX_DATA *)" in summary model. | +| Dubious signature "(const CRYPTO_EX_DATA *,int)" in summary model. | | Dubious signature "(const CSimpleStringT &)" in summary model. | | Dubious signature "(const CStaticString &)" in summary model. | | Dubious signature "(const CStringT &)" in summary model. | @@ -37,44 +2569,1256 @@ | Dubious signature "(const CStringT &,char)" in summary model. | | Dubious signature "(const CStringT &,const CStringT &)" in summary model. | | Dubious signature "(const CStringT &,wchar_t)" in summary model. | +| Dubious signature "(const CTLOG *)" in summary model. | +| Dubious signature "(const CTLOG *,const uint8_t **,size_t *)" in summary model. | +| Dubious signature "(const CTLOG_STORE *,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(const CT_POLICY_EVAL_CTX *)" in summary model. | +| Dubious signature "(const DH *)" in summary model. | +| Dubious signature "(const DH *,const BIGNUM *)" in summary model. | +| Dubious signature "(const DH *,const BIGNUM **,const BIGNUM **)" in summary model. | +| Dubious signature "(const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **)" in summary model. | +| Dubious signature "(const DH *,const BIGNUM *,int *)" in summary model. | +| Dubious signature "(const DH *,int *)" in summary model. | +| Dubious signature "(const DH *,int)" in summary model. | +| Dubious signature "(const DH *,unsigned char **)" in summary model. | +| Dubious signature "(const DH *,unsigned char **,size_t,int)" in summary model. | +| Dubious signature "(const DH_METHOD *)" in summary model. | +| Dubious signature "(const DH_NAMED_GROUP *)" in summary model. | +| Dubious signature "(const DIST_POINT *,unsigned char **)" in summary model. | +| Dubious signature "(const DIST_POINT_NAME *)" in summary model. | +| Dubious signature "(const DIST_POINT_NAME *,const GENERAL_NAMES *,const ASN1_TIME *)" in summary model. | +| Dubious signature "(const DIST_POINT_NAME *,unsigned char **)" in summary model. | +| Dubious signature "(const DSA *)" in summary model. | +| Dubious signature "(const DSA *,const BIGNUM **,const BIGNUM **)" in summary model. | +| Dubious signature "(const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)" in summary model. | +| Dubious signature "(const DSA *,const BIGNUM *,int *)" in summary model. | +| Dubious signature "(const DSA *,int)" in summary model. | +| Dubious signature "(const DSA *,int,int *)" in summary model. | +| Dubious signature "(const DSA *,unsigned char **)" in summary model. | +| Dubious signature "(const DSA_METHOD *)" in summary model. | +| Dubious signature "(const DSA_SIG *,const BIGNUM **,const BIGNUM **)" in summary model. | +| Dubious signature "(const DSA_SIG *,unsigned char **)" in summary model. | +| Dubious signature "(const ECDSA_SIG *)" in summary model. | +| Dubious signature "(const ECDSA_SIG *,const BIGNUM **,const BIGNUM **)" in summary model. | +| Dubious signature "(const ECDSA_SIG *,unsigned char **)" in summary model. | +| Dubious signature "(const ECPARAMETERS *)" in summary model. | +| Dubious signature "(const ECPKPARAMETERS *,unsigned char **)" in summary model. | +| Dubious signature "(const ECX_KEY *,int)" in summary model. | +| Dubious signature "(const ECX_KEY *,unsigned char **)" in summary model. | +| Dubious signature "(const EC_GROUP *)" in summary model. | +| Dubious signature "(const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,ECPARAMETERS *)" in summary model. | +| Dubious signature "(const EC_GROUP *,ECPKPARAMETERS *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,const EC_POINT *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,OSSL_LIB_CTX *,const char *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **)" in summary model. | +| Dubious signature "(const EC_GROUP *,const BIGNUM *,EC_POINT *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,const EC_POINT *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,const EC_POINT *,const EC_POINT *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BIGNUM *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char **,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,const char *,EC_POINT *,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *)" in summary model. | +| Dubious signature "(const EC_GROUP *,unsigned char **)" in summary model. | +| Dubious signature "(const EC_GROUP *,unsigned int *)" in summary model. | +| Dubious signature "(const EC_GROUP *,unsigned int *,unsigned int *,unsigned int *)" in summary model. | +| Dubious signature "(const EC_KEY *)" in summary model. | +| Dubious signature "(const EC_KEY *,const EVP_MD *,const uint8_t *,const size_t,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *)" in summary model. | +| Dubious signature "(const EC_KEY *,const EVP_MD *,size_t,size_t *)" in summary model. | +| Dubious signature "(const EC_KEY *,int)" in summary model. | +| Dubious signature "(const EC_KEY *,point_conversion_form_t,unsigned char **,BN_CTX *)" in summary model. | +| Dubious signature "(const EC_KEY *,unsigned char **)" in summary model. | +| Dubious signature "(const EC_KEY *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(const EC_KEY_METHOD *)" in summary model. | +| Dubious signature "(const EC_KEY_METHOD *,..(**)(..))" in summary model. | +| Dubious signature "(const EC_KEY_METHOD *,..(**)(..),..(**)(..))" in summary model. | +| Dubious signature "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..))" in summary model. | +| Dubious signature "(const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..))" in summary model. | +| Dubious signature "(const EC_METHOD *)" in summary model. | +| Dubious signature "(const EC_POINT *)" in summary model. | +| Dubious signature "(const EC_POINT *,const EC_GROUP *)" in summary model. | +| Dubious signature "(const EC_PRIVATEKEY *,unsigned char **)" in summary model. | +| Dubious signature "(const EDIPARTYNAME *,unsigned char **)" in summary model. | +| Dubious signature "(const ENGINE *)" in summary model. | +| Dubious signature "(const ENGINE *,int)" in summary model. | +| Dubious signature "(const ERR_STRING_DATA *)" in summary model. | +| Dubious signature "(const ESS_CERT_ID *)" in summary model. | +| Dubious signature "(const ESS_CERT_ID *,unsigned char **)" in summary model. | +| Dubious signature "(const ESS_CERT_ID_V2 *)" in summary model. | +| Dubious signature "(const ESS_CERT_ID_V2 *,unsigned char **)" in summary model. | +| Dubious signature "(const ESS_ISSUER_SERIAL *)" in summary model. | +| Dubious signature "(const ESS_ISSUER_SERIAL *,unsigned char **)" in summary model. | +| Dubious signature "(const ESS_SIGNING_CERT *)" in summary model. | +| Dubious signature "(const ESS_SIGNING_CERT *,unsigned char **)" in summary model. | +| Dubious signature "(const ESS_SIGNING_CERT_V2 *)" in summary model. | +| Dubious signature "(const ESS_SIGNING_CERT_V2 *,unsigned char **)" in summary model. | +| Dubious signature "(const EVP_ASYM_CIPHER *)" in summary model. | +| Dubious signature "(const EVP_ASYM_CIPHER *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EVP_CIPHER *)" in summary model. | +| Dubious signature "(const EVP_CIPHER *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EVP_CIPHER *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *)" in summary model. | +| Dubious signature "(const EVP_CIPHER_CTX *)" in summary model. | +| Dubious signature "(const EVP_CIPHER_CTX *,int)" in summary model. | +| Dubious signature "(const EVP_KDF *)" in summary model. | +| Dubious signature "(const EVP_KDF *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EVP_KDF_CTX *)" in summary model. | +| Dubious signature "(const EVP_KEM *)" in summary model. | +| Dubious signature "(const EVP_KEM *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EVP_KEYEXCH *)" in summary model. | +| Dubious signature "(const EVP_KEYEXCH *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EVP_KEYMGMT *)" in summary model. | +| Dubious signature "(const EVP_KEYMGMT *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EVP_MAC *)" in summary model. | +| Dubious signature "(const EVP_MAC *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EVP_MAC_CTX *)" in summary model. | +| Dubious signature "(const EVP_MD *)" in summary model. | +| Dubious signature "(const EVP_MD *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EVP_MD *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const EVP_MD *,const EVP_MD *,int)" in summary model. | +| Dubious signature "(const EVP_MD *,const OSSL_ITEM *,size_t)" in summary model. | +| Dubious signature "(const EVP_MD *,const X509 *,const stack_st_X509 *,int)" in summary model. | +| Dubious signature "(const EVP_MD *,const X509_NAME *,const ASN1_BIT_STRING *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(const EVP_MD *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(const EVP_MD *,const void *,int,const unsigned char *,size_t,unsigned char *,unsigned int *)" in summary model. | +| Dubious signature "(const EVP_MD_CTX *)" in summary model. | +| Dubious signature "(const EVP_MD_CTX *,int)" in summary model. | +| Dubious signature "(const EVP_PKEY *)" in summary model. | +| Dubious signature "(const EVP_PKEY *,OSSL_PARAM *)" in summary model. | +| Dubious signature "(const EVP_PKEY *,OSSL_PARAM[])" in summary model. | +| Dubious signature "(const EVP_PKEY *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(const EVP_PKEY *,const char *,BIGNUM **)" in summary model. | +| Dubious signature "(const EVP_PKEY *,int)" in summary model. | +| Dubious signature "(const EVP_PKEY *,int,const char *,const char *,const char *)" in summary model. | +| Dubious signature "(const EVP_PKEY *,int,int)" in summary model. | +| Dubious signature "(const EVP_PKEY *,size_t *,SSL_CTX *)" in summary model. | +| Dubious signature "(const EVP_PKEY *,unsigned char **)" in summary model. | +| Dubious signature "(const EVP_PKEY_CTX *)" in summary model. | +| Dubious signature "(const EVP_PKEY_METHOD *,..(**)(..))" in summary model. | +| Dubious signature "(const EVP_PKEY_METHOD *,..(**)(..),..(**)(..))" in summary model. | +| Dubious signature "(const EVP_RAND *)" in summary model. | +| Dubious signature "(const EVP_RAND *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EVP_SIGNATURE *)" in summary model. | +| Dubious signature "(const EVP_SIGNATURE *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EVP_SKEY *)" in summary model. | +| Dubious signature "(const EVP_SKEYMGMT *)" in summary model. | +| Dubious signature "(const EVP_SKEYMGMT *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const EXTENDED_KEY_USAGE *,unsigned char **)" in summary model. | +| Dubious signature "(const FFC_PARAMS *,OSSL_PARAM_BLD *,OSSL_PARAM[])" in summary model. | +| Dubious signature "(const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **)" in summary model. | +| Dubious signature "(const FFC_PARAMS *,const BIGNUM *,int *)" in summary model. | +| Dubious signature "(const FFC_PARAMS *,unsigned char **,size_t *,int *)" in summary model. | +| Dubious signature "(const GENERAL_NAME *)" in summary model. | +| Dubious signature "(const GENERAL_NAME *,int *)" in summary model. | +| Dubious signature "(const GENERAL_NAME *,unsigned char **)" in summary model. | +| Dubious signature "(const GENERAL_NAMES *,unsigned char **)" in summary model. | +| Dubious signature "(const GOST_KX_MESSAGE *,unsigned char **)" in summary model. | +| Dubious signature "(const HMAC_CTX *)" in summary model. | +| Dubious signature "(const HT_CONFIG *)" in summary model. | +| Dubious signature "(const IPAddressChoice *,unsigned char **)" in summary model. | +| Dubious signature "(const IPAddressFamily *)" in summary model. | +| Dubious signature "(const IPAddressFamily *,unsigned char **)" in summary model. | +| Dubious signature "(const IPAddressOrRange *,unsigned char **)" in summary model. | +| Dubious signature "(const IPAddressRange *,unsigned char **)" in summary model. | +| Dubious signature "(const ISSUER_SIGN_TOOL *,unsigned char **)" in summary model. | +| Dubious signature "(const ISSUING_DIST_POINT *,unsigned char **)" in summary model. | +| Dubious signature "(const MATRIX *,const VECTOR *,VECTOR *)" in summary model. | +| Dubious signature "(const ML_DSA_KEY *)" in summary model. | +| Dubious signature "(const ML_DSA_KEY *,int)" in summary model. | +| Dubious signature "(const ML_DSA_KEY *,int,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t)" in summary model. | +| Dubious signature "(const ML_DSA_KEY *,unsigned char **)" in summary model. | +| Dubious signature "(const ML_KEM_KEY *,const ML_KEM_KEY *)" in summary model. | +| Dubious signature "(const ML_KEM_KEY *,int)" in summary model. | +| Dubious signature "(const ML_KEM_KEY *,unsigned char **)" in summary model. | +| Dubious signature "(const NAMING_AUTHORITY *)" in summary model. | +| Dubious signature "(const NAMING_AUTHORITY *,unsigned char **)" in summary model. | +| Dubious signature "(const NETSCAPE_CERT_SEQUENCE *,unsigned char **)" in summary model. | +| Dubious signature "(const NETSCAPE_ENCRYPTED_PKEY *,unsigned char **)" in summary model. | +| Dubious signature "(const NETSCAPE_PKEY *,unsigned char **)" in summary model. | +| Dubious signature "(const NETSCAPE_SPKAC *,unsigned char **)" in summary model. | +| Dubious signature "(const NETSCAPE_SPKI *,unsigned char **)" in summary model. | +| Dubious signature "(const NOTICEREF *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_BASICRESP *)" in summary model. | +| Dubious signature "(const OCSP_BASICRESP *,ASN1_OCTET_STRING **,X509_NAME **)" in summary model. | +| Dubious signature "(const OCSP_BASICRESP *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_CERTID *)" in summary model. | +| Dubious signature "(const OCSP_CERTID *,const OCSP_CERTID *)" in summary model. | +| Dubious signature "(const OCSP_CERTID *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_CERTSTATUS *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_CRLID *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_ONEREQ *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_REQINFO *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_REQUEST *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_RESPBYTES *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_RESPDATA *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_RESPID *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_RESPONSE *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_REVOKEDINFO *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_SERVICELOC *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_SIGNATURE *,unsigned char **)" in summary model. | +| Dubious signature "(const OCSP_SINGLERESP *)" in summary model. | +| Dubious signature "(const OCSP_SINGLERESP *,unsigned char **)" in summary model. | +| Dubious signature "(const OPENSSL_CSTRING *,const OPENSSL_CSTRING *)" in summary model. | +| Dubious signature "(const OPENSSL_LHASH *)" in summary model. | +| Dubious signature "(const OPENSSL_SA *)" in summary model. | +| Dubious signature "(const OPENSSL_SA *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const OPENSSL_SA *,ossl_uintmax_t)" in summary model. | +| Dubious signature "(const OPENSSL_STACK *)" in summary model. | +| Dubious signature "(const OPENSSL_STACK *,OPENSSL_sk_copyfunc,OPENSSL_sk_freefunc)" in summary model. | +| Dubious signature "(const OPENSSL_STACK *,int)" in summary model. | +| Dubious signature "(const OPTIONS *)" in summary model. | +| Dubious signature "(const OSSL_AA_DIST_POINT *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ALGORITHM *)" in summary model. | +| Dubious signature "(const OSSL_ALGORITHM_CAPABLE *,OSSL_ALGORITHM *)" in summary model. | +| Dubious signature "(const OSSL_ALLOWED_ATTRIBUTES_CHOICE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ALLOWED_ATTRIBUTES_ITEM *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ALLOWED_ATTRIBUTES_SYNTAX *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ATAV *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ATTRIBUTES_SYNTAX *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ATTRIBUTE_DESCRIPTOR *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ATTRIBUTE_MAPPING *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ATTRIBUTE_MAPPINGS *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ATTRIBUTE_TYPE_MAPPING *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ATTRIBUTE_VALUE_MAPPING *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_BASIC_ATTR_CONSTRAINTS *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_ATAV *)" in summary model. | +| Dubious signature "(const OSSL_CMP_ATAVS *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CAKEYUPDANNCONTENT *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CERTIFIEDKEYPAIR *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CERTORENCCERT *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CERTREPMESSAGE *,int)" in summary model. | +| Dubious signature "(const OSSL_CMP_CERTREPMESSAGE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CERTREQTEMPLATE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CERTRESPONSE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CERTSTATUS *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CHALLENGE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CRLSOURCE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CRLSTATUS *,DIST_POINT_NAME **,GENERAL_NAMES **,ASN1_TIME **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CRLSTATUS *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_CTX *)" in summary model. | +| Dubious signature "(const OSSL_CMP_CTX *,char *,size_t)" in summary model. | +| Dubious signature "(const OSSL_CMP_CTX *,const OSSL_CMP_CERTRESPONSE *)" in summary model. | +| Dubious signature "(const OSSL_CMP_CTX *,int)" in summary model. | +| Dubious signature "(const OSSL_CMP_ERRORMSGCONTENT *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_ITAV *)" in summary model. | +| Dubious signature "(const OSSL_CMP_ITAV *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **)" in summary model. | +| Dubious signature "(const OSSL_CMP_ITAV *,X509 **)" in summary model. | +| Dubious signature "(const OSSL_CMP_ITAV *,stack_st_ASN1_UTF8STRING **)" in summary model. | +| Dubious signature "(const OSSL_CMP_ITAV *,stack_st_OSSL_CMP_CRLSTATUS **)" in summary model. | +| Dubious signature "(const OSSL_CMP_ITAV *,stack_st_X509 **)" in summary model. | +| Dubious signature "(const OSSL_CMP_ITAV *,stack_st_X509_CRL **)" in summary model. | +| Dubious signature "(const OSSL_CMP_ITAV *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_KEYRECREPCONTENT *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_MSG *)" in summary model. | +| Dubious signature "(const OSSL_CMP_MSG *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_PKIBODY *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_PKIHEADER *)" in summary model. | +| Dubious signature "(const OSSL_CMP_PKIHEADER *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_PKISI *)" in summary model. | +| Dubious signature "(const OSSL_CMP_PKISI *,char *,size_t)" in summary model. | +| Dubious signature "(const OSSL_CMP_PKISI *,int)" in summary model. | +| Dubious signature "(const OSSL_CMP_PKISI *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_POLLREP *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_POLLREPCONTENT *,int)" in summary model. | +| Dubious signature "(const OSSL_CMP_POLLREQ *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_PROTECTEDPART *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_REVANNCONTENT *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_REVDETAILS *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_REVREPCONTENT *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_ROOTCAKEYUPDATE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CMP_SRV_CTX *)" in summary model. | +| Dubious signature "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *)" in summary model. | +| Dubious signature "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *)" in summary model. | +| Dubious signature "(const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_CERTID *)" in summary model. | +| Dubious signature "(const OSSL_CRMF_CERTID *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_CERTREQUEST *)" in summary model. | +| Dubious signature "(const OSSL_CRMF_CERTREQUEST *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_CERTTEMPLATE *)" in summary model. | +| Dubious signature "(const OSSL_CRMF_CERTTEMPLATE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_ENCKEYWITHID *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int)" in summary model. | +| Dubious signature "(const OSSL_CRMF_ENCRYPTEDKEY *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *)" in summary model. | +| Dubious signature "(const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,int *)" in summary model. | +| Dubious signature "(const OSSL_CRMF_ENCRYPTEDVALUE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_MSG *)" in summary model. | +| Dubious signature "(const OSSL_CRMF_MSG *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_MSGS *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_OPTIONALVALIDITY *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_PBMPARAMETER *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_PKIPUBLICATIONINFO *)" in summary model. | +| Dubious signature "(const OSSL_CRMF_PKIPUBLICATIONINFO *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_PKMACVALUE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_POPO *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_POPOPRIVKEY *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_POPOSIGNINGKEY *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_POPOSIGNINGKEYINPUT *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_PRIVATEKEYINFO *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_CRMF_SINGLEPUBINFO *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_DAY_TIME *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_DAY_TIME_BAND *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_DECODER *)" in summary model. | +| Dubious signature "(const OSSL_DECODER_CTX *)" in summary model. | +| Dubious signature "(const OSSL_DECODER_INSTANCE *)" in summary model. | +| Dubious signature "(const OSSL_DISPATCH *)" in summary model. | +| Dubious signature "(const OSSL_DISPATCH *,void *)" in summary model. | +| Dubious signature "(const OSSL_DISPATCH *,void *,int,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(const OSSL_ENCODER *)" in summary model. | +| Dubious signature "(const OSSL_HASH *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const OSSL_HTTP_REQ_CTX *)" in summary model. | +| Dubious signature "(const OSSL_IETF_ATTR_SYNTAX *)" in summary model. | +| Dubious signature "(const OSSL_IETF_ATTR_SYNTAX *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_INFO_SYNTAX *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_INFO_SYNTAX_POINTER *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ISSUER_SERIAL *)" in summary model. | +| Dubious signature "(const OSSL_NAMED_DAY *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_NAMEMAP *,int,..(*)(..),void *)" in summary model. | +| Dubious signature "(const OSSL_NAMEMAP *,int,size_t)" in summary model. | +| Dubious signature "(const OSSL_OBJECT_DIGEST_INFO *,int *,const X509_ALGOR **,const ASN1_BIT_STRING **)" in summary model. | +| Dubious signature "(const OSSL_PARAM *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,BIGNUM **)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,BIO *,int)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,char **,size_t)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,const char *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,const char **)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,const char *,unsigned char **,size_t *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,const char *,unsigned char **,size_t *,size_t)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,const void **,size_t *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,double *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,int32_t *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,int64_t *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,int *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,long *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,size_t *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,time_t *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,uint32_t *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,uint64_t *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,unsigned int *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,unsigned long *)" in summary model. | +| Dubious signature "(const OSSL_PARAM *,void **,size_t,size_t *)" in summary model. | +| Dubious signature "(const OSSL_PARAM[],OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const OSSL_PARAM[],void *)" in summary model. | +| Dubious signature "(const OSSL_PQUEUE *)" in summary model. | +| Dubious signature "(const OSSL_PRIVILEGE_POLICY_ID *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_PROPERTY_DEFINITION *)" in summary model. | +| Dubious signature "(const OSSL_PROPERTY_LIST *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const OSSL_PROPERTY_LIST *,const OSSL_PROPERTY_LIST *)" in summary model. | +| Dubious signature "(const OSSL_PROVIDER *)" in summary model. | +| Dubious signature "(const OSSL_PROVIDER *,OSSL_PARAM[])" in summary model. | +| Dubious signature "(const OSSL_PROVIDER *,const char *,int)" in summary model. | +| Dubious signature "(const OSSL_QRX_ARGS *)" in summary model. | +| Dubious signature "(const OSSL_QTX_ARGS *)" in summary model. | +| Dubious signature "(const OSSL_QUIC_TX_PACKETISER_ARGS *)" in summary model. | +| Dubious signature "(const OSSL_ROLE_SPEC_CERT_ID *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_ROLE_SPEC_CERT_ID_SYNTAX *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_STORE_INFO *)" in summary model. | +| Dubious signature "(const OSSL_STORE_LOADER *)" in summary model. | +| Dubious signature "(const OSSL_STORE_LOADER *,..(*)(..),void *)" in summary model. | +| Dubious signature "(const OSSL_STORE_SEARCH *)" in summary model. | +| Dubious signature "(const OSSL_STORE_SEARCH *,size_t *)" in summary model. | +| Dubious signature "(const OSSL_TARGET *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_TARGETING_INFORMATION *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_TARGETS *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_TIME_PERIOD *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_TIME_SPEC *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_TIME_SPEC_ABSOLUTE *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_TIME_SPEC_DAY *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_TIME_SPEC_MONTH *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_TIME_SPEC_TIME *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_TIME_SPEC_WEEKS *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_TIME_SPEC_X_DAY_OF *,unsigned char **)" in summary model. | +| Dubious signature "(const OSSL_USER_NOTICE_SYNTAX *,unsigned char **)" in summary model. | +| Dubious signature "(const OTHERNAME *,unsigned char **)" in summary model. | +| Dubious signature "(const PACKET *,uint64_t *)" in summary model. | +| Dubious signature "(const PBE2PARAM *,unsigned char **)" in summary model. | +| Dubious signature "(const PBEPARAM *,unsigned char **)" in summary model. | +| Dubious signature "(const PBKDF2PARAM *,unsigned char **)" in summary model. | +| Dubious signature "(const PBMAC1PARAM *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS7 *)" in summary model. | +| Dubious signature "(const PKCS7 *,PKCS7 *)" in summary model. | +| Dubious signature "(const PKCS7 *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS7_CTX *)" in summary model. | +| Dubious signature "(const PKCS7_DIGEST *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS7_ENCRYPT *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS7_ENC_CONTENT *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS7_ENVELOPE *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS7_ISSUER_AND_SERIAL *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS7_RECIP_INFO *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS7_SIGNED *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS7_SIGNER_INFO *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS7_SIGN_ENVELOPE *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS8_PRIV_KEY_INFO *)" in summary model. | +| Dubious signature "(const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const PKCS8_PRIV_KEY_INFO *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS12 *)" in summary model. | +| Dubious signature "(const PKCS12 *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS12_BAGS *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS12_MAC_DATA *,unsigned char **)" in summary model. | +| Dubious signature "(const PKCS12_SAFEBAG *)" in summary model. | +| Dubious signature "(const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const PKCS12_SAFEBAG *,unsigned char **)" in summary model. | +| Dubious signature "(const PKEY_USAGE_PERIOD *,unsigned char **)" in summary model. | +| Dubious signature "(const POLICYINFO *,unsigned char **)" in summary model. | +| Dubious signature "(const POLICYQUALINFO *,unsigned char **)" in summary model. | +| Dubious signature "(const POLY *,const POLY *,POLY *)" in summary model. | +| Dubious signature "(const PROFESSION_INFO *)" in summary model. | +| Dubious signature "(const PROFESSION_INFO *,unsigned char **)" in summary model. | +| Dubious signature "(const PROV_CIPHER *)" in summary model. | +| Dubious signature "(const PROV_DIGEST *)" in summary model. | +| Dubious signature "(const PROXY_CERT_INFO_EXTENSION *,unsigned char **)" in summary model. | +| Dubious signature "(const PROXY_POLICY *,unsigned char **)" in summary model. | +| Dubious signature "(const QLOG_TRACE_INFO *)" in summary model. | +| Dubious signature "(const QUIC_CFQ_ITEM *)" in summary model. | +| Dubious signature "(const QUIC_CFQ_ITEM *,uint32_t)" in summary model. | +| Dubious signature "(const QUIC_CHANNEL *)" in summary model. | +| Dubious signature "(const QUIC_CHANNEL *,int)" in summary model. | +| Dubious signature "(const QUIC_CHANNEL_ARGS *)" in summary model. | +| Dubious signature "(const QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(const QUIC_DEMUX *)" in summary model. | +| Dubious signature "(const QUIC_ENGINE_ARGS *)" in summary model. | +| Dubious signature "(const QUIC_LCIDM *)" in summary model. | +| Dubious signature "(const QUIC_OBJ *)" in summary model. | +| Dubious signature "(const QUIC_PORT *)" in summary model. | +| Dubious signature "(const QUIC_PORT_ARGS *)" in summary model. | +| Dubious signature "(const QUIC_RCIDM *)" in summary model. | +| Dubious signature "(const QUIC_REACTOR *)" in summary model. | +| Dubious signature "(const QUIC_RXFC *)" in summary model. | +| Dubious signature "(const QUIC_RXFC *,uint64_t *)" in summary model. | +| Dubious signature "(const QUIC_TLS_ARGS *)" in summary model. | +| Dubious signature "(const QUIC_TSERVER *)" in summary model. | +| Dubious signature "(const QUIC_TSERVER_ARGS *,const char *,const char *)" in summary model. | +| Dubious signature "(const QUIC_TXPIM *)" in summary model. | +| Dubious signature "(const QUIC_TXPIM_PKT *)" in summary model. | +| Dubious signature "(const RSA *)" in summary model. | +| Dubious signature "(const RSA *,BN_CTX *)" in summary model. | +| Dubious signature "(const RSA *,const BIGNUM **,const BIGNUM **)" in summary model. | +| Dubious signature "(const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **)" in summary model. | +| Dubious signature "(const RSA *,int)" in summary model. | +| Dubious signature "(const RSA *,unsigned char **)" in summary model. | +| Dubious signature "(const RSA_METHOD *)" in summary model. | +| Dubious signature "(const RSA_OAEP_PARAMS *,unsigned char **)" in summary model. | +| Dubious signature "(const RSA_PSS_PARAMS *)" in summary model. | +| Dubious signature "(const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *)" in summary model. | +| Dubious signature "(const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *,int *)" in summary model. | +| Dubious signature "(const RSA_PSS_PARAMS *,unsigned char **)" in summary model. | +| Dubious signature "(const RSA_PSS_PARAMS_30 *)" in summary model. | +| Dubious signature "(const RSA_PSS_PARAMS_30 *,OSSL_PARAM_BLD *,OSSL_PARAM[])" in summary model. | | Dubious signature "(const SAFEARRAY &)" in summary model. | | Dubious signature "(const SAFEARRAY *)" in summary model. | +| Dubious signature "(const SCRYPT_PARAMS *,unsigned char **)" in summary model. | +| Dubious signature "(const SCT *)" in summary model. | +| Dubious signature "(const SCT *,unsigned char **)" in summary model. | +| Dubious signature "(const SFRAME_LIST *,void **,UINT_RANGE *,const unsigned char **,int *)" in summary model. | +| Dubious signature "(const SLH_DSA_HASH_CTX *)" in summary model. | +| Dubious signature "(const SLH_DSA_KEY *)" in summary model. | +| Dubious signature "(const SLH_DSA_KEY *,int)" in summary model. | +| Dubious signature "(const SM2_Ciphertext *,unsigned char **)" in summary model. | +| Dubious signature "(const SSL *)" in summary model. | +| Dubious signature "(const SSL *,char *,int)" in summary model. | +| Dubious signature "(const SSL *,const SSL_CTX *,int *)" in summary model. | +| Dubious signature "(const SSL *,const int)" in summary model. | +| Dubious signature "(const SSL *,const unsigned char **,unsigned int *)" in summary model. | +| Dubious signature "(const SSL *,int)" in summary model. | +| Dubious signature "(const SSL *,int,int)" in summary model. | +| Dubious signature "(const SSL *,uint64_t *)" in summary model. | +| Dubious signature "(const SSL *,unsigned char **,size_t *)" in summary model. | +| Dubious signature "(const SSL *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(const SSL_CIPHER *)" in summary model. | +| Dubious signature "(const SSL_CIPHER *,char *,int)" in summary model. | +| Dubious signature "(const SSL_CIPHER *,int *)" in summary model. | +| Dubious signature "(const SSL_CIPHER *const *,const SSL_CIPHER *const *)" in summary model. | +| Dubious signature "(const SSL_COMP *)" in summary model. | +| Dubious signature "(const SSL_CONF_CMD *,size_t,char **,char **)" in summary model. | +| Dubious signature "(const SSL_CONNECTION *)" in summary model. | +| Dubious signature "(const SSL_CONNECTION *,OSSL_TIME *)" in summary model. | +| Dubious signature "(const SSL_CONNECTION *,int *,int *,int *)" in summary model. | +| Dubious signature "(const SSL_CTX *)" in summary model. | +| Dubious signature "(const SSL_CTX *,int)" in summary model. | +| Dubious signature "(const SSL_CTX *,uint64_t *)" in summary model. | +| Dubious signature "(const SSL_CTX *,unsigned char **,size_t *)" in summary model. | +| Dubious signature "(const SSL_METHOD *)" in summary model. | +| Dubious signature "(const SSL_SESSION *)" in summary model. | +| Dubious signature "(const SSL_SESSION *,OSSL_PARAM[])" in summary model. | +| Dubious signature "(const SSL_SESSION *,const unsigned char **,size_t *)" in summary model. | +| Dubious signature "(const SSL_SESSION *,int)" in summary model. | +| Dubious signature "(const SSL_SESSION *,unsigned char **)" in summary model. | +| Dubious signature "(const SSL_SESSION *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(const SSL_SESSION *,unsigned int *)" in summary model. | +| Dubious signature "(const SXNET *,unsigned char **)" in summary model. | +| Dubious signature "(const SXNETID *,unsigned char **)" in summary model. | | Dubious signature "(const T &,BOOL)" in summary model. | +| Dubious signature "(const TS_ACCURACY *)" in summary model. | +| Dubious signature "(const TS_ACCURACY *,unsigned char **)" in summary model. | +| Dubious signature "(const TS_MSG_IMPRINT *)" in summary model. | +| Dubious signature "(const TS_MSG_IMPRINT *,unsigned char **)" in summary model. | +| Dubious signature "(const TS_REQ *)" in summary model. | +| Dubious signature "(const TS_REQ *,unsigned char **)" in summary model. | +| Dubious signature "(const TS_RESP *)" in summary model. | +| Dubious signature "(const TS_RESP *,unsigned char **)" in summary model. | +| Dubious signature "(const TS_STATUS_INFO *)" in summary model. | +| Dubious signature "(const TS_STATUS_INFO *,unsigned char **)" in summary model. | +| Dubious signature "(const TS_TST_INFO *)" in summary model. | +| Dubious signature "(const TS_TST_INFO *,unsigned char **)" in summary model. | +| Dubious signature "(const UI *,int)" in summary model. | +| Dubious signature "(const UI_METHOD *)" in summary model. | +| Dubious signature "(const UI_METHOD *,int)" in summary model. | +| Dubious signature "(const USERNOTICE *,unsigned char **)" in summary model. | | Dubious signature "(const VARIANT &)" in summary model. | | Dubious signature "(const VARIANT &,IAtlStringMgr *)" in summary model. | +| Dubious signature "(const VECTOR *,uint32_t,uint8_t *,size_t)" in summary model. | +| Dubious signature "(const X509 *)" in summary model. | +| Dubious signature "(const X509 *,EVP_MD **,int *)" in summary model. | +| Dubious signature "(const X509 *,const ASN1_BIT_STRING **,const ASN1_BIT_STRING **)" in summary model. | +| Dubious signature "(const X509 *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(const X509 *,const EVP_MD *,unsigned char *,unsigned int *)" in summary model. | +| Dubious signature "(const X509 *,const X509 *)" in summary model. | +| Dubious signature "(const X509 *,const X509 *,const X509 *)" in summary model. | +| Dubious signature "(const X509 *,const stack_st_X509 *,int)" in summary model. | +| Dubious signature "(const X509 *,int)" in summary model. | +| Dubious signature "(const X509 *,int,int *,int *)" in summary model. | +| Dubious signature "(const X509 *,int,int)" in summary model. | +| Dubious signature "(const X509 *,unsigned char **)" in summary model. | +| Dubious signature "(const X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *)" in summary model. | +| Dubious signature "(const X509_ACERT *)" in summary model. | +| Dubious signature "(const X509_ACERT *,const ASN1_BIT_STRING **,const X509_ALGOR **)" in summary model. | +| Dubious signature "(const X509_ACERT *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(const X509_ACERT *,int)" in summary model. | +| Dubious signature "(const X509_ACERT *,int,int *,int *)" in summary model. | +| Dubious signature "(const X509_ACERT *,int,int)" in summary model. | +| Dubious signature "(const X509_ACERT *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_ALGOR *)" in summary model. | +| Dubious signature "(const X509_ALGOR *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int)" in summary model. | +| Dubious signature "(const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const X509_ALGOR *,const X509_ALGOR *)" in summary model. | +| Dubious signature "(const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int)" in summary model. | +| Dubious signature "(const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const X509_ALGOR *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_ALGORS *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(const X509_ATTRIBUTE *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_CERT_AUX *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_CINF *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_CRL *)" in summary model. | +| Dubious signature "(const X509_CRL *,const ASN1_BIT_STRING **,const X509_ALGOR **)" in summary model. | +| Dubious signature "(const X509_CRL *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(const X509_CRL *,const EVP_MD *,unsigned char *,unsigned int *)" in summary model. | +| Dubious signature "(const X509_CRL *,const X509 *,int)" in summary model. | +| Dubious signature "(const X509_CRL *,const X509_CRL *)" in summary model. | +| Dubious signature "(const X509_CRL *,int)" in summary model. | +| Dubious signature "(const X509_CRL *,int,int *,int *)" in summary model. | +| Dubious signature "(const X509_CRL *,int,int)" in summary model. | +| Dubious signature "(const X509_CRL *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_CRL_INFO *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_EXTENSION *)" in summary model. | +| Dubious signature "(const X509_EXTENSION *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_EXTENSIONS *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_LOOKUP *)" in summary model. | +| Dubious signature "(const X509_LOOKUP_METHOD *)" in summary model. | +| Dubious signature "(const X509_NAME *)" in summary model. | +| Dubious signature "(const X509_NAME *,OSSL_LIB_CTX *,const char *,int *)" in summary model. | +| Dubious signature "(const X509_NAME *,char *,int)" in summary model. | +| Dubious signature "(const X509_NAME *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(const X509_NAME *,const ASN1_OBJECT *,char *,int)" in summary model. | +| Dubious signature "(const X509_NAME *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(const X509_NAME *,const EVP_MD *,unsigned char *,unsigned int *)" in summary model. | +| Dubious signature "(const X509_NAME *,const X509_NAME *)" in summary model. | +| Dubious signature "(const X509_NAME *,const char **)" in summary model. | +| Dubious signature "(const X509_NAME *,const unsigned char **,size_t *)" in summary model. | +| Dubious signature "(const X509_NAME *,int)" in summary model. | +| Dubious signature "(const X509_NAME *,int,char *,int)" in summary model. | +| Dubious signature "(const X509_NAME *,int,int)" in summary model. | +| Dubious signature "(const X509_NAME *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_NAME_ENTRY *)" in summary model. | +| Dubious signature "(const X509_NAME_ENTRY *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_OBJECT *)" in summary model. | +| Dubious signature "(const X509_POLICY_CACHE *,const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(const X509_POLICY_LEVEL *,const X509_POLICY_NODE *,const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(const X509_POLICY_LEVEL *,int)" in summary model. | +| Dubious signature "(const X509_POLICY_NODE *)" in summary model. | +| Dubious signature "(const X509_POLICY_TREE *)" in summary model. | +| Dubious signature "(const X509_POLICY_TREE *,int)" in summary model. | +| Dubious signature "(const X509_PUBKEY *)" in summary model. | +| Dubious signature "(const X509_PUBKEY *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_PURPOSE *)" in summary model. | +| Dubious signature "(const X509_REQ *)" in summary model. | +| Dubious signature "(const X509_REQ *,const ASN1_BIT_STRING **,const X509_ALGOR **)" in summary model. | +| Dubious signature "(const X509_REQ *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(const X509_REQ *,const EVP_MD *,unsigned char *,unsigned int *)" in summary model. | +| Dubious signature "(const X509_REQ *,int)" in summary model. | +| Dubious signature "(const X509_REQ *,int,int)" in summary model. | +| Dubious signature "(const X509_REQ *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_REQ_INFO *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_REVOKED *)" in summary model. | +| Dubious signature "(const X509_REVOKED *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(const X509_REVOKED *,int)" in summary model. | +| Dubious signature "(const X509_REVOKED *,int,int *,int *)" in summary model. | +| Dubious signature "(const X509_REVOKED *,int,int)" in summary model. | +| Dubious signature "(const X509_REVOKED *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_SIG *,const X509_ALGOR **,const ASN1_OCTET_STRING **)" in summary model. | +| Dubious signature "(const X509_SIG *,const char *,int)" in summary model. | +| Dubious signature "(const X509_SIG *,const char *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const X509_SIG *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_SIG_INFO *,int *,int *,int *,uint32_t *)" in summary model. | +| Dubious signature "(const X509_STORE *)" in summary model. | +| Dubious signature "(const X509_STORE *,int)" in summary model. | +| Dubious signature "(const X509_STORE_CTX *)" in summary model. | +| Dubious signature "(const X509_STORE_CTX *,int)" in summary model. | +| Dubious signature "(const X509_TRUST *)" in summary model. | +| Dubious signature "(const X509_VAL *,unsigned char **)" in summary model. | +| Dubious signature "(const X509_VERIFY_PARAM *)" in summary model. | | Dubious signature "(const XCHAR *)" in summary model. | | Dubious signature "(const XCHAR *,int)" in summary model. | | Dubious signature "(const XCHAR *,int,AtlStringMgr *)" in summary model. | | Dubious signature "(const XCHAR *,int,IAtlStringMgr *)" in summary model. | +| Dubious signature "(const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int)" in summary model. | | Dubious signature "(const YCHAR *)" in summary model. | | Dubious signature "(const YCHAR *,int)" in summary model. | | Dubious signature "(const YCHAR *,int,IAtlStringMgr *)" in summary model. | +| Dubious signature "(const char *)" in summary model. | +| Dubious signature "(const char **)" in summary model. | +| Dubious signature "(const char **,int *)" in summary model. | +| Dubious signature "(const char **,int *,const char **,const char **,int *)" in summary model. | +| Dubious signature "(const char **,int *,const char **,int *)" in summary model. | +| Dubious signature "(const char *,BIO *,BIO *,int)" in summary model. | +| Dubious signature "(const char *,BIO *,int,const char *,const ASN1_ITEM *,const ASN1_VALUE *)" in summary model. | +| Dubious signature "(const char *,BIT_STRING_BITNAME *)" in summary model. | +| Dubious signature "(const char *,DB_ATTR *)" in summary model. | +| Dubious signature "(const char *,DES_cblock *)" in summary model. | +| Dubious signature "(const char *,DES_cblock *,DES_cblock *)" in summary model. | +| Dubious signature "(const char *,EVP_CIPHER **)" in summary model. | +| Dubious signature "(const char *,EVP_MD **)" in summary model. | +| Dubious signature "(const char *,OSSL_CMP_severity *,char **,char **,int *)" in summary model. | +| Dubious signature "(const char *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)" in summary model. | +| Dubious signature "(const char *,SD *,int)" in summary model. | +| Dubious signature "(const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *)" in summary model. | +| Dubious signature "(const char *,char *)" in summary model. | +| Dubious signature "(const char *,char **,char **,BIO_hostserv_priorities)" in summary model. | +| Dubious signature "(const char *,char **,char **,char **,char **,int *,char **,char **,char **)" in summary model. | +| Dubious signature "(const char *,char **,int,unsigned long *)" in summary model. | +| Dubious signature "(const char *,char **,size_t)" in summary model. | +| Dubious signature "(const char *,char *,size_t)" in summary model. | +| Dubious signature "(const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **)" in summary model. | +| Dubious signature "(const char *,const BIGNUM *)" in summary model. | +| Dubious signature "(const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *)" in summary model. | +| Dubious signature "(const char *,const OPT_PAIR *,int *)" in summary model. | +| Dubious signature "(const char *,const OSSL_PARAM *,int)" in summary model. | +| Dubious signature "(const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *)" in summary model. | +| Dubious signature "(const char *,const char *)" in summary model. | +| Dubious signature "(const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **)" in summary model. | +| Dubious signature "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int)" in summary model. | +| Dubious signature "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *)" in summary model. | +| Dubious signature "(const char *,const char *,char *)" in summary model. | +| Dubious signature "(const char *,const char *,char **,char **)" in summary model. | +| Dubious signature "(const char *,const char *,char **,char **,const char *,const char *)" in summary model. | +| Dubious signature "(const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const char *,const char *,const BIGNUM *,ASN1_INTEGER **)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)" in summary model. | +| Dubious signature "(const char *,const char *,const char *,int)" in summary model. | +| Dubious signature "(const char *,const char *,int)" in summary model. | +| Dubious signature "(const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *)" in summary model. | +| Dubious signature "(const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(const char *,const char *,int,int,int,int,BIO_ADDRINFO **)" in summary model. | +| Dubious signature "(const char *,const char *,size_t)" in summary model. | +| Dubious signature "(const char *,const char *,stack_st_CONF_VALUE **)" in summary model. | +| Dubious signature "(const char *,const char *,unsigned int)" in summary model. | +| Dubious signature "(const char *,const size_t,unsigned int *,unsigned int *)" in summary model. | +| Dubious signature "(const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **)" in summary model. | +| Dubious signature "(const char *,const unsigned char *,stack_st_CONF_VALUE **)" in summary model. | +| Dubious signature "(const char *,double *)" in summary model. | +| Dubious signature "(const char *,int32_t *)" in summary model. | +| Dubious signature "(const char *,int64_t *)" in summary model. | +| Dubious signature "(const char *,int *)" in summary model. | +| Dubious signature "(const char *,int *,char **,char **,char **,int *,char **,char **,char **)" in summary model. | +| Dubious signature "(const char *,int)" in summary model. | +| Dubious signature "(const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *)" in summary model. | +| Dubious signature "(const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const char *,int,const char *,const BIGNUM *)" in summary model. | +| Dubious signature "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)" in summary model. | +| Dubious signature "(const char *,int,const char *,const char *,const BIGNUM *,unsigned long)" in summary model. | +| Dubious signature "(const char *,int,int,..(*)(..),void *)" in summary model. | +| Dubious signature "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)" in summary model. | +| Dubious signature "(const char *,int,int,int)" in summary model. | +| Dubious signature "(const char *,int,long)" in summary model. | +| Dubious signature "(const char *,int,stack_st_CONF_VALUE **)" in summary model. | +| Dubious signature "(const char *,int,stack_st_OPENSSL_STRING *,const char *)" in summary model. | +| Dubious signature "(const char *,int,stack_st_X509 **,const char *,const char *)" in summary model. | +| Dubious signature "(const char *,int,unsigned char **,int *)" in summary model. | +| Dubious signature "(const char *,long *)" in summary model. | +| Dubious signature "(const char *,long *,char *)" in summary model. | +| Dubious signature "(const char *,long *,int)" in summary model. | +| Dubious signature "(const char *,size_t *)" in summary model. | +| Dubious signature "(const char *,size_t)" in summary model. | +| Dubious signature "(const char *,size_t,const char *,int)" in summary model. | +| Dubious signature "(const char *,sqlite3 **,int,const char *)" in summary model. | +| Dubious signature "(const char *,sqlite3_filename)" in summary model. | +| Dubious signature "(const char *,sqlite3_filename,const char *)" in summary model. | +| Dubious signature "(const char *,sqlite3_filename,const char *,int)" in summary model. | +| Dubious signature "(const char *,sqlite3_filename,const char *,sqlite3_int64)" in summary model. | +| Dubious signature "(const char *,sqlite3_filename,int)" in summary model. | +| Dubious signature "(const char *,stack_st_X509_CRL **,const char *,const char *)" in summary model. | +| Dubious signature "(const char *,time_t *)" in summary model. | +| Dubious signature "(const char *,uint32_t *)" in summary model. | +| Dubious signature "(const char *,uint64_t *)" in summary model. | +| Dubious signature "(const char *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(const char *,unsigned int *)" in summary model. | +| Dubious signature "(const char *,unsigned long *)" in summary model. | +| Dubious signature "(const char *,va_list)" in summary model. | +| Dubious signature "(const char *,void *)" in summary model. | +| Dubious signature "(const char *,void **,size_t)" in summary model. | +| Dubious signature "(const char *,void *,size_t)" in summary model. | +| Dubious signature "(const char *const *,const char *const *)" in summary model. | +| Dubious signature "(const curve448_point_t)" in summary model. | +| Dubious signature "(const custom_ext_methods *,ENDPOINT,unsigned int,size_t *)" in summary model. | | Dubious signature "(const deque &)" in summary model. | | Dubious signature "(const deque &,const Allocator &)" in summary model. | | Dubious signature "(const forward_list &)" in summary model. | | Dubious signature "(const forward_list &,const Allocator &)" in summary model. | +| Dubious signature "(const gf)" in summary model. | +| Dubious signature "(const gf,const gf)" in summary model. | +| Dubious signature "(const int[],BIGNUM *)" in summary model. | +| Dubious signature "(const int_dhx942_dh *,unsigned char **)" in summary model. | | Dubious signature "(const list &)" in summary model. | | Dubious signature "(const list &,const Allocator &)" in summary model. | +| Dubious signature "(const sqlite3_value *)" in summary model. | +| Dubious signature "(const stack_st_SCT *,unsigned char **)" in summary model. | +| Dubious signature "(const stack_st_X509 *)" in summary model. | +| Dubious signature "(const stack_st_X509 *,const stack_st_X509 *)" in summary model. | +| Dubious signature "(const stack_st_X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(const stack_st_X509_ATTRIBUTE *,int)" in summary model. | +| Dubious signature "(const stack_st_X509_ATTRIBUTE *,int,int)" in summary model. | +| Dubious signature "(const stack_st_X509_EXTENSION *)" in summary model. | +| Dubious signature "(const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int)" in summary model. | +| Dubious signature "(const stack_st_X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(const stack_st_X509_EXTENSION *,int,int *,int *)" in summary model. | +| Dubious signature "(const stack_st_X509_EXTENSION *,int,int)" in summary model. | +| Dubious signature "(const stack_st_X509_NAME *)" in summary model. | +| Dubious signature "(const time_t *,tm *)" in summary model. | +| Dubious signature "(const u128[16],uint8_t *,const uint8_t *,size_t)" in summary model. | +| Dubious signature "(const uint8_t *,SM4_KEY *)" in summary model. | +| Dubious signature "(const uint8_t *,int,int,PROV_CTX *,const char *)" in summary model. | +| Dubious signature "(const uint8_t *,size_t)" in summary model. | +| Dubious signature "(const uint8_t *,size_t,ML_KEM_KEY *)" in summary model. | +| Dubious signature "(const uint8_t *,uint8_t *,const SM4_KEY *)" in summary model. | | Dubious signature "(const unsigned char *)" in summary model. | +| Dubious signature "(const unsigned char **,long *,int *,int *,long)" in summary model. | +| Dubious signature "(const unsigned char **,long)" in summary model. | +| Dubious signature "(const unsigned char **,long,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const unsigned char **,unsigned int,int *)" in summary model. | +| Dubious signature "(const unsigned char **,unsigned int,int)" in summary model. | +| Dubious signature "(const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *)" in summary model. | +| Dubious signature "(const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *)" in summary model. | +| Dubious signature "(const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *)" in summary model. | +| Dubious signature "(const unsigned char *,DES_cblock[],long,int,DES_cblock *)" in summary model. | | Dubious signature "(const unsigned char *,IAtlStringMgr *)" in summary model. | +| Dubious signature "(const unsigned char *,const int,ARIA_KEY *)" in summary model. | +| Dubious signature "(const unsigned char *,hm_header_st *)" in summary model. | +| Dubious signature "(const unsigned char *,int)" in summary model. | +| Dubious signature "(const unsigned char *,int,BIGNUM *)" in summary model. | +| Dubious signature "(const unsigned char *,int,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *)" in summary model. | +| Dubious signature "(const unsigned char *,int,const ECDSA_SIG *,EC_KEY *)" in summary model. | +| Dubious signature "(const unsigned char *,int,const unsigned char *,int,EC_KEY *)" in summary model. | +| Dubious signature "(const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *)" in summary model. | +| Dubious signature "(const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(const unsigned char *,int,unsigned long *)" in summary model. | +| Dubious signature "(const unsigned char *,long)" in summary model. | +| Dubious signature "(const unsigned char *,long,char)" in summary model. | +| Dubious signature "(const unsigned char *,size_t,QUIC_PN,QUIC_PN *)" in summary model. | +| Dubious signature "(const unsigned char *,size_t,size_t *)" in summary model. | +| Dubious signature "(const unsigned char *,size_t,size_t)" in summary model. | +| Dubious signature "(const unsigned char *,size_t,size_t,QUIC_CONN_ID *)" in summary model. | +| Dubious signature "(const unsigned char *,size_t,uint64_t *)" in summary model. | +| Dubious signature "(const unsigned char *,size_t,unsigned char *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,IDEA_KEY_SCHEDULE *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,RC2_KEY *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,const ARIA_KEY *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,const BF_KEY *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,const CAST_KEY *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,const int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f)" in summary model. | +| Dubious signature "(const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f)" in summary model. | +| Dubious signature "(const unsigned char[16],SEED_KEY_SCHEDULE *)" in summary model. | +| Dubious signature "(const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *)" in summary model. | | Dubious signature "(const vector &)" in summary model. | | Dubious signature "(const vector &,const Allocator &)" in summary model. | +| Dubious signature "(const void *,const void *)" in summary model. | +| Dubious signature "(const void *,const void *,int)" in summary model. | +| Dubious signature "(const void *,const void *,int,int,..(*)(..))" in summary model. | +| Dubious signature "(const void *,const void *,int,int,..(*)(..),int)" in summary model. | +| Dubious signature "(const void *,size_t,const char *,int)" in summary model. | +| Dubious signature "(const void *,size_t,unsigned char *)" in summary model. | +| Dubious signature "(const void *,size_t,unsigned char **,size_t *)" in summary model. | +| Dubious signature "(const void *,sqlite3 **)" in summary model. | +| Dubious signature "(const_DES_cblock *)" in summary model. | | Dubious signature "(const_iterator,T &&)" in summary model. | | Dubious signature "(const_iterator,const T &)" in summary model. | | Dubious signature "(const_iterator,size_type,const T &)" in summary model. | +| Dubious signature "(curve448_point_t,const curve448_point_t)" in summary model. | +| Dubious signature "(curve448_point_t,const curve448_precomputed_s *,const curve448_scalar_t)" in summary model. | +| Dubious signature "(curve448_point_t,const curve448_scalar_t,const curve448_point_t,const curve448_scalar_t)" in summary model. | +| Dubious signature "(curve448_point_t,const uint8_t[57])" in summary model. | +| Dubious signature "(curve448_scalar_t,const curve448_scalar_t)" in summary model. | +| Dubious signature "(curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t)" in summary model. | +| Dubious signature "(curve448_scalar_t,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(curve448_scalar_t,const unsigned char[56])" in summary model. | +| Dubious signature "(custom_ext_methods *,const custom_ext_methods *)" in summary model. | +| Dubious signature "(d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *)" in summary model. | | Dubious signature "(deque &&)" in summary model. | | Dubious signature "(deque &&,const Allocator &)" in summary model. | | Dubious signature "(format_string,Args &&)" in summary model. | | Dubious signature "(forward_list &&)" in summary model. | | Dubious signature "(forward_list &&,const Allocator &)" in summary model. | +| Dubious signature "(gf,const gf,const gf)" in summary model. | +| Dubious signature "(gf,const uint8_t[56],int,uint8_t)" in summary model. | +| Dubious signature "(i2d_of_void *,BIO *,const void *)" in summary model. | +| Dubious signature "(i2d_of_void *,FILE *,const void *)" in summary model. | +| Dubious signature "(i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *)" in summary model. | +| Dubious signature "(i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(i2d_of_void *,d2i_of_void *,const void *)" in summary model. | +| Dubious signature "(int64_t *,const ASN1_ENUMERATED *)" in summary model. | +| Dubious signature "(int64_t *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(int *,ASN1_TIME **,const ASN1_TIME *)" in summary model. | +| Dubious signature "(int *,X509 *,stack_st_X509 *,unsigned long)" in summary model. | +| Dubious signature "(int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **)" in summary model. | +| Dubious signature "(int *,int *,const ASN1_TIME *,const ASN1_TIME *)" in summary model. | +| Dubious signature "(int *,int *,const EVP_PKEY_METHOD *)" in summary model. | +| Dubious signature "(int *,int *,const tm *,const tm *)" in summary model. | +| Dubious signature "(int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *)" in summary model. | +| Dubious signature "(int *,int *,size_t)" in summary model. | +| Dubious signature "(int *,int)" in summary model. | +| Dubious signature "(int *,sqlite3_stmt *)" in summary model. | +| Dubious signature "(int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *)" in summary model. | +| Dubious signature "(int,BIO_ADDR *,int)" in summary model. | +| Dubious signature "(int,CRYPTO_EX_DATA *,const CRYPTO_EX_DATA *)" in summary model. | +| Dubious signature "(int,ENGINE *)" in summary model. | +| Dubious signature "(int,ENGINE *,const unsigned char *,int)" in summary model. | +| Dubious signature "(int,ENGINE *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(int,ERR_STRING_DATA *)" in summary model. | +| Dubious signature "(int,EVP_PKEY **,BIO *)" in summary model. | +| Dubious signature "(int,EVP_PKEY **,const unsigned char **,long)" in summary model. | +| Dubious signature "(int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(int,OCSP_BASICRESP *)" in summary model. | +| Dubious signature "(int,OSSL_CRMF_MSG *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(int,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(int,SSL *,const unsigned char *,long)" in summary model. | +| Dubious signature "(int,SSL_CTX *,const unsigned char *,long)" in summary model. | +| Dubious signature "(int,SSL_EXCERT **)" in summary model. | +| Dubious signature "(int,X509_STORE_CTX *)" in summary model. | +| Dubious signature "(int,char **)" in summary model. | +| Dubious signature "(int,char **,char *[])" in summary model. | +| Dubious signature "(int,char **,const OPTIONS *)" in summary model. | +| Dubious signature "(int,char *,const char *,...)" in summary model. | +| Dubious signature "(int,char *,const char *,va_list)" in summary model. | +| Dubious signature "(int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *)" in summary model. | +| Dubious signature "(int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(int,const OSSL_ALGORITHM *,OSSL_PROVIDER *)" in summary model. | +| Dubious signature "(int,const OSSL_STORE_INFO *)" in summary model. | +| Dubious signature "(int,const char *)" in summary model. | +| Dubious signature "(int,const char **,int *)" in summary model. | +| Dubious signature "(int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *)" in summary model. | +| Dubious signature "(int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *)" in summary model. | +| Dubious signature "(int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(int,const regex_t *,char *,size_t)" in summary model. | +| Dubious signature "(int,const unsigned char *,int,const unsigned char *,int,DSA *)" in summary model. | +| Dubious signature "(int,const unsigned char *,int,const unsigned char *,int,EC_KEY *)" in summary model. | +| Dubious signature "(int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *)" in summary model. | +| Dubious signature "(int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *)" in summary model. | +| Dubious signature "(int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *)" in summary model. | +| Dubious signature "(int,int *,int *,int)" in summary model. | +| Dubious signature "(int,int,TLS_GROUP_INFO *,size_t,long,stack_st_OPENSSL_CSTRING *)" in summary model. | +| Dubious signature "(int,int,const char *)" in summary model. | +| Dubious signature "(int,int,const char *,const char *)" in summary model. | +| Dubious signature "(int,int,const char *,va_list)" in summary model. | +| Dubious signature "(int,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(int,int,const unsigned char *,int,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(int,int,int *)" in summary model. | +| Dubious signature "(int,int,int,const void *,size_t,SSL *,void *)" in summary model. | +| Dubious signature "(int,int,void *)" in summary model. | +| Dubious signature "(int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *)" in summary model. | +| Dubious signature "(int,sqlite3_int64 *,sqlite3_int64 *,int)" in summary model. | +| Dubious signature "(int,unsigned char *,int,const char *,const char *)" in summary model. | +| Dubious signature "(int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *)" in summary model. | +| Dubious signature "(int,unsigned long,..(*)(..),void *)" in summary model. | +| Dubious signature "(int,void *)" in summary model. | +| Dubious signature "(int_dhx942_dh **,const unsigned char **,long)" in summary model. | +| Dubious signature "(lemon *)" in summary model. | +| Dubious signature "(lemon *,action *)" in summary model. | +| Dubious signature "(lemon *,const char *)" in summary model. | +| Dubious signature "(lemon *,const char *,const char *)" in summary model. | +| Dubious signature "(lhash_st_CONF_VALUE *,BIO *,long *)" in summary model. | +| Dubious signature "(lhash_st_CONF_VALUE *,FILE *,long *)" in summary model. | +| Dubious signature "(lhash_st_CONF_VALUE *,X509V3_CTX *,int,const char *)" in summary model. | +| Dubious signature "(lhash_st_CONF_VALUE *,const char *,long *)" in summary model. | | Dubious signature "(list &&)" in summary model. | | Dubious signature "(list &&,const Allocator &)" in summary model. | +| Dubious signature "(piterator *)" in summary model. | +| Dubious signature "(plink *)" in summary model. | +| Dubious signature "(plink **,config *)" in summary model. | +| Dubious signature "(plink **,plink *)" in summary model. | +| Dubious signature "(pqueue *)" in summary model. | +| Dubious signature "(pqueue *,pitem *)" in summary model. | +| Dubious signature "(pqueue *,unsigned char *)" in summary model. | +| Dubious signature "(regex_t *,const char *,int)" in summary model. | +| Dubious signature "(regex_t *,const char *,size_t,regmatch_t[],int)" in summary model. | +| Dubious signature "(rule *,int)" in summary model. | +| Dubious signature "(size_t *,const char *)" in summary model. | +| Dubious signature "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(size_t,OSSL_QTX_IOVEC *,size_t)" in summary model. | +| Dubious signature "(size_t,SSL_CTX *)" in summary model. | +| Dubious signature "(size_t,const QUIC_PKT_HDR *)" in summary model. | +| Dubious signature "(size_t,const char **,size_t *)" in summary model. | +| Dubious signature "(size_t,size_t,void **,const char *,int)" in summary model. | | Dubious signature "(size_type,const T &)" in summary model. | | Dubious signature "(size_type,const T &,const Allocator &)" in summary model. | +| Dubious signature "(sqlite3 *)" in summary model. | +| Dubious signature "(sqlite3 *,..(*)(..),void *)" in summary model. | +| Dubious signature "(sqlite3 *,..(*)(..),void *,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,char **)" in summary model. | +| Dubious signature "(sqlite3 *,char **,const sqlite3_api_routines *)" in summary model. | +| Dubious signature "(sqlite3 *,const char *)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,..(*)(..),void *)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,..(*)(..),void *,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,const char *,char ***,int *,int *,char **)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,const char *)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,const char *,..(*)(..),void *)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,const char *,char **)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,const sqlite3_module *,void *)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,const sqlite3_module *,void *,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,const char *,int)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,int,int *,int *)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,const char *,int,sqlite3_stmt **,const char **)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,int,void *)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,int,void *,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,const char *,int,void *,..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,const char *,sqlite3 *,const char *)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,sqlite3_int64 *,unsigned int)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,sqlite3_intck **)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,unsigned char *,sqlite3_int64,sqlite3_int64,unsigned int)" in summary model. | +| Dubious signature "(sqlite3 *,const char *,void *,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,const void *,int,int,void *,..(*)(..),..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,const void *,int,sqlite3_stmt **,const void **)" in summary model. | +| Dubious signature "(sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **)" in summary model. | +| Dubious signature "(sqlite3 *,const void *,int,void *,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3 *,int)" in summary model. | +| Dubious signature "(sqlite3 *,int,..(*)(..),void *)" in summary model. | +| Dubious signature "(sqlite3 *,int,int *,int *,int)" in summary model. | +| Dubious signature "(sqlite3 *,int,int)" in summary model. | +| Dubious signature "(sqlite3 *,sqlite3 *)" in summary model. | +| Dubious signature "(sqlite3 *,sqlite3_int64)" in summary model. | +| Dubious signature "(sqlite3 *,sqlite3_stmt *)" in summary model. | +| Dubious signature "(sqlite3 *,unsigned int,..(*)(..),void *)" in summary model. | +| Dubious signature "(sqlite3 *,void *,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3_backup *)" in summary model. | +| Dubious signature "(sqlite3_backup *,int)" in summary model. | +| Dubious signature "(sqlite3_blob *)" in summary model. | +| Dubious signature "(sqlite3_blob *,const void *,int,int)" in summary model. | +| Dubious signature "(sqlite3_blob *,sqlite3_int64)" in summary model. | +| Dubious signature "(sqlite3_blob *,void *,int,int)" in summary model. | +| Dubious signature "(sqlite3_context *)" in summary model. | +| Dubious signature "(sqlite3_context *,const char *,int)" in summary model. | +| Dubious signature "(sqlite3_context *,const void *,int)" in summary model. | +| Dubious signature "(sqlite3_context *,int)" in summary model. | +| Dubious signature "(sqlite3_index_info *)" in summary model. | +| Dubious signature "(sqlite3_index_info *,int)" in summary model. | +| Dubious signature "(sqlite3_index_info *,int,int)" in summary model. | +| Dubious signature "(sqlite3_index_info *,int,sqlite3_value **)" in summary model. | +| Dubious signature "(sqlite3_intck *)" in summary model. | +| Dubious signature "(sqlite3_intck *,const char *)" in summary model. | +| Dubious signature "(sqlite3_intck *,const char **)" in summary model. | +| Dubious signature "(sqlite3_recover *)" in summary model. | +| Dubious signature "(sqlite3_recover *,int,void *)" in summary model. | +| Dubious signature "(sqlite3_stmt *)" in summary model. | +| Dubious signature "(sqlite3_stmt *,const char *)" in summary model. | +| Dubious signature "(sqlite3_stmt *,int)" in summary model. | +| Dubious signature "(sqlite3_stmt *,int,const char *,int,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3_stmt *,int,const char *,sqlite3_uint64,..(*)(..),unsigned char)" in summary model. | +| Dubious signature "(sqlite3_stmt *,int,const sqlite3_value *)" in summary model. | +| Dubious signature "(sqlite3_stmt *,int,const void *,int,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3_stmt *,int,const void *,sqlite3_uint64,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3_stmt *,int,double)" in summary model. | +| Dubious signature "(sqlite3_stmt *,int,int)" in summary model. | +| Dubious signature "(sqlite3_stmt *,int,sqlite3_int64,sqlite_int64)" in summary model. | +| Dubious signature "(sqlite3_stmt *,int,sqlite3_uint64)" in summary model. | +| Dubious signature "(sqlite3_stmt *,int,void *,const char *,..(*)(..))" in summary model. | +| Dubious signature "(sqlite3_stmt *,sqlite3_stmt *)" in summary model. | +| Dubious signature "(sqlite3_str *)" in summary model. | +| Dubious signature "(sqlite3_str *,const char *)" in summary model. | +| Dubious signature "(sqlite3_str *,const char *,int)" in summary model. | +| Dubious signature "(sqlite3_str *,const char *,va_list)" in summary model. | +| Dubious signature "(sqlite3_str *,int,char)" in summary model. | +| Dubious signature "(sqlite3_value *)" in summary model. | +| Dubious signature "(sqlite3_value *,const char *)" in summary model. | +| Dubious signature "(sqlite3_value *,sqlite3_value **)" in summary model. | +| Dubious signature "(sqlite3expert *)" in summary model. | +| Dubious signature "(sqlite3expert *,char **)" in summary model. | +| Dubious signature "(sqlite3expert *,const char *,char **)" in summary model. | +| Dubious signature "(sqlite3expert *,int,int)" in summary model. | +| Dubious signature "(stack_st_ASN1_UTF8STRING *)" in summary model. | +| Dubious signature "(stack_st_ASN1_UTF8STRING *,const char *,int)" in summary model. | +| Dubious signature "(stack_st_OPENSSL_STRING *,const OSSL_PARAM *)" in summary model. | +| Dubious signature "(stack_st_OSSL_CMP_CRLSTATUS *)" in summary model. | +| Dubious signature "(stack_st_OSSL_CMP_ITAV **,OSSL_CMP_ITAV *)" in summary model. | +| Dubious signature "(stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *)" in summary model. | +| Dubious signature "(stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(stack_st_PKCS7 *,int)" in summary model. | +| Dubious signature "(stack_st_PKCS7 *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(stack_st_PKCS12_SAFEBAG *)" in summary model. | +| Dubious signature "(stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *)" in summary model. | +| Dubious signature "(stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(stack_st_PKCS12_SAFEBAG **,X509 *)" in summary model. | +| Dubious signature "(stack_st_PKCS12_SAFEBAG **,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(stack_st_SCT **,const unsigned char **,long)" in summary model. | +| Dubious signature "(stack_st_SCT **,const unsigned char **,size_t)" in summary model. | +| Dubious signature "(stack_st_SSL_COMP *)" in summary model. | +| Dubious signature "(stack_st_SSL_COMP *,int)" in summary model. | +| Dubious signature "(stack_st_X509 *)" in summary model. | +| Dubious signature "(stack_st_X509 **,X509 *,int)" in summary model. | +| Dubious signature "(stack_st_X509 **,stack_st_X509 *,int)" in summary model. | +| Dubious signature "(stack_st_X509 *,ASIdentifiers *,int)" in summary model. | +| Dubious signature "(stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(stack_st_X509 *,IPAddrBlocks *,int)" in summary model. | +| Dubious signature "(stack_st_X509 *,X509 *)" in summary model. | +| Dubious signature "(stack_st_X509 *,X509 *,int)" in summary model. | +| Dubious signature "(stack_st_X509 *,const X509_NAME *)" in summary model. | +| Dubious signature "(stack_st_X509 *,const X509_NAME *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(stack_st_X509 *,stack_st_X509 *,int)" in summary model. | +| Dubious signature "(stack_st_X509_ALGOR **)" in summary model. | +| Dubious signature "(stack_st_X509_ALGOR **,int,int)" in summary model. | +| Dubious signature "(stack_st_X509_ALGOR *,int,int)" in summary model. | +| Dubious signature "(stack_st_X509_ATTRIBUTE **,X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(stack_st_X509_ATTRIBUTE **,const X509_ATTRIBUTE *)" in summary model. | +| Dubious signature "(stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(stack_st_X509_ATTRIBUTE *,int)" in summary model. | +| Dubious signature "(stack_st_X509_EXTENSION **,X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(stack_st_X509_EXTENSION **,const stack_st_X509_EXTENSION *)" in summary model. | +| Dubious signature "(stack_st_X509_EXTENSION **,int,void *,int,unsigned long)" in summary model. | +| Dubious signature "(stack_st_X509_EXTENSION *,int)" in summary model. | +| Dubious signature "(stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *)" in summary model. | +| Dubious signature "(stack_st_X509_OBJECT *,X509_OBJECT *)" in summary model. | +| Dubious signature "(stack_st_X509_POLICY_NODE *,const ASN1_OBJECT *)" in summary model. | +| Dubious signature "(state *,config *)" in summary model. | +| Dubious signature "(symbol *,lemon *)" in summary model. | +| Dubious signature "(tm *,const ASN1_TIME *)" in summary model. | +| Dubious signature "(tm *,const ASN1_UTCTIME *)" in summary model. | +| Dubious signature "(tm *,int,long)" in summary model. | +| Dubious signature "(u64[2],const u128[16],const u8 *,size_t)" in summary model. | +| Dubious signature "(uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(uint8_t *,size_t)" in summary model. | +| Dubious signature "(uint8_t *,size_t,ML_KEM_KEY *)" in summary model. | +| Dubious signature "(uint8_t *,size_t,const ML_KEM_KEY *)" in summary model. | +| Dubious signature "(uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *)" in summary model. | +| Dubious signature "(uint8_t *,size_t,uint8_t *,size_t,const ML_KEM_KEY *)" in summary model. | +| Dubious signature "(uint8_t *,size_t,uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *)" in summary model. | +| Dubious signature "(uint8_t *,unsigned char *,uint64_t)" in summary model. | +| Dubious signature "(uint8_t *,unsigned char *,uint64_t,int)" in summary model. | +| Dubious signature "(uint8_t[32],const uint8_t[32])" in summary model. | +| Dubious signature "(uint8_t[32],const uint8_t[32],const uint8_t[32])" in summary model. | +| Dubious signature "(uint8_t[56],const curve448_point_t)" in summary model. | +| Dubious signature "(uint8_t[56],const gf,int)" in summary model. | +| Dubious signature "(uint8_t[56],const uint8_t[56],const uint8_t[56])" in summary model. | +| Dubious signature "(uint8_t[57],const curve448_point_t)" in summary model. | +| Dubious signature "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t)" in summary model. | +| Dubious signature "(uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *)" in summary model. | +| Dubious signature "(uint32_t *,SSL_CONNECTION *,int)" in summary model. | +| Dubious signature "(uint32_t,uint32_t *,uint32_t *)" in summary model. | +| Dubious signature "(uint32_t,uint32_t,uint32_t *,int32_t *)" in summary model. | +| Dubious signature "(uint64_t *,const ASN1_INTEGER *)" in summary model. | +| Dubious signature "(uint64_t *,int *,const unsigned char **,long)" in summary model. | +| Dubious signature "(uint64_t *,uint64_t *,CRYPTO_RWLOCK *)" in summary model. | +| Dubious signature "(uint64_t *,uint64_t,CRYPTO_RWLOCK *)" in summary model. | +| Dubious signature "(uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *)" in summary model. | +| Dubious signature "(uint64_t,uint64_t *)" in summary model. | | Dubious signature "(unsigned char *)" in summary model. | +| Dubious signature "(unsigned char **)" in summary model. | +| Dubious signature "(unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int)" in summary model. | +| Dubious signature "(unsigned char **,int,int,int,int)" in summary model. | +| Dubious signature "(unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *)" in summary model. | +| Dubious signature "(unsigned char **,long)" in summary model. | +| Dubious signature "(unsigned char **,size_t *,const EC_POINT *,const EC_KEY *)" in summary model. | +| Dubious signature "(unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int)" in summary model. | +| Dubious signature "(unsigned char *,BLAKE2B_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,BLAKE2S_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,MD4_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,MD5_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,MD5_SHA1_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,MDC2_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,RIPEMD160_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,SHA256_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,SHA512_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,SHA_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,SM3_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,WHIRLPOOL_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,const BIGNUM *,DH *)" in summary model. | +| Dubious signature "(unsigned char *,const char *)" in summary model. | +| Dubious signature "(unsigned char *,const unsigned char *,int)" in summary model. | +| Dubious signature "(unsigned char *,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(unsigned char *,int)" in summary model. | +| Dubious signature "(unsigned char *,int,const char *,int)" in summary model. | +| Dubious signature "(unsigned char *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(unsigned char *,int,const unsigned char *,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)" in summary model. | +| Dubious signature "(unsigned char *,int,const unsigned char *,int,int)" in summary model. | +| Dubious signature "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int)" in summary model. | +| Dubious signature "(unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *)" in summary model. | +| Dubious signature "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *)" in summary model. | +| Dubious signature "(unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *)" in summary model. | +| Dubious signature "(unsigned char *,int,unsigned long)" in summary model. | +| Dubious signature "(unsigned char *,long,const unsigned char *,long,const EVP_MD *)" in summary model. | +| Dubious signature "(unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *)" in summary model. | +| Dubious signature "(unsigned char *,size_t *,size_t)" in summary model. | +| Dubious signature "(unsigned char *,size_t *,size_t,const unsigned char **,size_t *)" in summary model. | +| Dubious signature "(unsigned char *,uint64_t,int)" in summary model. | +| Dubious signature "(unsigned char *,void *)" in summary model. | | Dubious signature "(unsigned char)" in summary model. | +| Dubious signature "(unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *)" in summary model. | +| Dubious signature "(unsigned char[56],const curve448_scalar_t)" in summary model. | +| Dubious signature "(unsigned int *,const BF_KEY *)" in summary model. | +| Dubious signature "(unsigned int *,const CAST_KEY *)" in summary model. | +| Dubious signature "(unsigned int)" in summary model. | +| Dubious signature "(unsigned int,int,int)" in summary model. | +| Dubious signature "(unsigned int[5],const unsigned char[64])" in summary model. | +| Dubious signature "(unsigned long *,IDEA_KEY_SCHEDULE *)" in summary model. | +| Dubious signature "(unsigned long *,RC2_KEY *)" in summary model. | +| Dubious signature "(unsigned long *,const BIGNUM *,int)" in summary model. | +| Dubious signature "(unsigned long *,const char *)" in summary model. | +| Dubious signature "(unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int)" in summary model. | +| Dubious signature "(unsigned long *,const unsigned long *,const unsigned long *,int,int)" in summary model. | +| Dubious signature "(unsigned long *,const unsigned long *,int)" in summary model. | +| Dubious signature "(unsigned long *,const unsigned long *,int,unsigned long *)" in summary model. | +| Dubious signature "(unsigned long *,const unsigned long *,int,unsigned long)" in summary model. | +| Dubious signature "(unsigned long *,unsigned long *,int,unsigned long *,int)" in summary model. | +| Dubious signature "(unsigned long *,unsigned long *,unsigned long *,int)" in summary model. | +| Dubious signature "(unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *)" in summary model. | +| Dubious signature "(unsigned long *,unsigned long *,unsigned long *,int,unsigned long *)" in summary model. | +| Dubious signature "(unsigned long)" in summary model. | +| Dubious signature "(unsigned long,BIGNUM *,BIGNUM *,int)" in summary model. | +| Dubious signature "(unsigned long,char *)" in summary model. | +| Dubious signature "(unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8])" in summary model. | +| Dubious signature "(unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],unsigned long)" in summary model. | +| Dubious signature "(unsigned short,int)" in summary model. | | Dubious signature "(vector &&)" in summary model. | | Dubious signature "(vector &&,const Allocator &)" in summary model. | +| Dubious signature "(void *)" in summary model. | +| Dubious signature "(void *,CRYPTO_THREAD_RETVAL *)" in summary model. | +| Dubious signature "(void *,OSSL_PARAM[])" in summary model. | +| Dubious signature "(void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *)" in summary model. | +| Dubious signature "(void *,block128_f)" in summary model. | +| Dubious signature "(void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **)" in summary model. | +| Dubious signature "(void *,const ASN1_ITEM *,int,int)" in summary model. | +| Dubious signature "(void *,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(void *,const char *,int)" in summary model. | +| Dubious signature "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)" in summary model. | +| Dubious signature "(void *,int)" in summary model. | +| Dubious signature "(void *,int,const OSSL_PARAM[])" in summary model. | +| Dubious signature "(void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *)" in summary model. | +| Dubious signature "(void *,size_t)" in summary model. | +| Dubious signature "(void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..))" in summary model. | +| Dubious signature "(void *,size_t,const char *,int)" in summary model. | +| Dubious signature "(void *,size_t,size_t,const char *,int)" in summary model. | +| Dubious signature "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)" in summary model. | +| Dubious signature "(void *,size_t,unsigned char **,size_t *,const size_t *)" in summary model. | +| Dubious signature "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)" in summary model. | +| Dubious signature "(void *,sqlite3 *,int,const char *)" in summary model. | +| Dubious signature "(void *,sqlite3_uint64)" in summary model. | +| Dubious signature "(void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(void *,unsigned char *,size_t *,size_t)" in summary model. | +| Dubious signature "(void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t)" in summary model. | +| Dubious signature "(void *,unsigned char *,size_t)" in summary model. | +| Dubious signature "(void *,void *,block128_f,block128_f,ocb128_f)" in summary model. | +| Dubious signature "(void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..))" in summary model. | +| Dubious signature "(void *,void *,const unsigned char *,size_t,const OSSL_PARAM[])" in summary model. | | Dubious signature "(wchar_t *)" in summary model. | | Dubious signature "(wchar_t, const CStringT &)" in summary model. | | Dubious signature "(wchar_t,const CStringT &)" in summary model. | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected index b22b4cb59db..f95cbea3292 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected @@ -1,23 +1,431 @@ signatureMatches +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | ASN1_STRING_type_new | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | ASN1_tag2bit | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | ASN1_tag2str | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | EVP_PKEY_asn1_get0 | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | Jim_ReturnCode | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | Jim_SignalId | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | OBJ_nid2ln | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | OBJ_nid2obj | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | OBJ_nid2sn | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | OSSL_STORE_INFO_type_string | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | OSSL_trace_get_category_name | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | PKCS12_init | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | Symbol_Nth | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | X509_PURPOSE_get0 | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | X509_PURPOSE_get_by_id | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | X509_TRUST_get0 | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | evp_pkey_type2name | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | ossl_tolower | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | ossl_toupper | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | pulldown_test_framework | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | sqlite3_compileoption_get | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | sqlite3_errstr | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | tls1_alert_code | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | tls13_alert_code | 0 | +| arrayassignment.cpp:3:6:3:9 | sink | (int) | | wait_until_sock_readable | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | ASN1_STRING_type_new | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | ASN1_tag2bit | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | ASN1_tag2str | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | EVP_PKEY_asn1_get0 | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | Jim_ReturnCode | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | Jim_SignalId | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | OBJ_nid2ln | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | OBJ_nid2obj | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | OBJ_nid2sn | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | OSSL_STORE_INFO_type_string | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | OSSL_trace_get_category_name | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | PKCS12_init | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | Symbol_Nth | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | X509_PURPOSE_get0 | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | X509_PURPOSE_get_by_id | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | X509_TRUST_get0 | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | X509_TRUST_get_by_id | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | evp_pkey_type2name | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | ossl_cmp_bodytype_to_string | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | ossl_tolower | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | ossl_toupper | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | pulldown_test_framework | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | sqlite3_compileoption_get | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | sqlite3_errstr | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | tls1_alert_code | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | tls13_alert_code | 0 | +| arrayassignment.cpp:88:7:88:9 | get | (int) | | wait_until_sock_readable | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ASN1_STRING_type_new | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ASN1_tag2bit | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ASN1_tag2str | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | EVP_PKEY_asn1_get0 | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | Jim_ReturnCode | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | Jim_SignalId | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | OBJ_nid2ln | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | OBJ_nid2obj | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | OBJ_nid2sn | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | OSSL_STORE_INFO_type_string | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | OSSL_trace_get_category_name | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | PKCS12_init | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | Symbol_Nth | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | X509_PURPOSE_get0 | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | X509_PURPOSE_get_by_id | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | X509_TRUST_get0 | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | X509_TRUST_get_by_id | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | evp_pkey_type2name | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ossl_tolower | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ossl_toupper | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | pulldown_test_framework | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | sqlite3_compileoption_get | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | sqlite3_errstr | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | tls1_alert_code | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | tls13_alert_code | 0 | +| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | wait_until_sock_readable | 0 | | atl.cpp:71:5:71:17 | _U_STRINGorID | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:71:5:71:17 | _U_STRINGorID | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:71:5:71:17 | _U_STRINGorID | (unsigned int) | | Jim_IntHashFunction | 0 | +| atl.cpp:71:5:71:17 | _U_STRINGorID | (unsigned int) | | ssl3_get_cipher | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | BIO_gethostbyname | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | Jim_StrDup | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | OPENSSL_LH_strhash | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | Strsafe | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | Symbol_new | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | UI_create_method | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | X509V3_parse_list | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | a2i_IPADDRESS | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | new_pkcs12_builder | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | opt_path_end | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | opt_progname | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | strhash | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | EVP_PKEY_meth_get0 | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | ossl_get_extension_type | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | ossl_param_bytes_to_blocks | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | ossl_quic_sstream_new | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | ssl_cert_new | 0 | +| atl.cpp:201:8:201:12 | GetAt | (size_t) | | test_get_argument | 0 | +| atl.cpp:206:10:206:17 | InsertAt | (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_personal | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_salt | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (BLAKE2S_CTX *,const void *,size_t) | | ossl_blake2s_update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_personal | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_salt | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (CCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ccm128_aad | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (CCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ccm128_tag | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (CMAC_CTX *,const void *,size_t) | | CMAC_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (CMS_RecipientInfo *,const unsigned char *,size_t) | | CMS_RecipientInfo_kekri_id_cmp | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (DH *,const unsigned char *,size_t) | | ossl_dh_buf2key | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (EC_GROUP *,const unsigned char *,size_t) | | EC_GROUP_set_seed | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (EC_KEY *,const unsigned char *,size_t) | | ossl_ec_key_simple_oct2priv | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (EVP_MD_CTX *,const unsigned char *,size_t) | | EVP_DigestVerifyFinal | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (EVP_PKEY *,char *,size_t) | | EVP_PKEY_get_default_digest_name | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (KECCAK1600_CTX *,const void *,size_t) | | ossl_sha3_update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (KECCAK1600_CTX *,unsigned char *,size_t) | | ossl_sha3_squeeze | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (KECCAK1600_CTX *,unsigned char,size_t) | | ossl_sha3_init | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (MD4_CTX *,const void *,size_t) | | MD4_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (MD4_CTX *,const void *,size_t) | | md4_block_data_order | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (MD5_CTX *,const void *,size_t) | | MD5_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (MD5_SHA1_CTX *,const void *,size_t) | | ossl_md5_sha1_update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (MDC2_CTX *,const unsigned char *,size_t) | | MDC2_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_pk_decode | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_sk_decode | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OCB128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ocb128_aad | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OCB128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ocb128_tag | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_HPKE_CTX *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_ikme | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_JSON_ENC *,const char *,size_t) | | ossl_json_str_len | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_JSON_ENC *,const void *,size_t) | | ossl_json_str_hex | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_entropy | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_user_entropy | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_ptr | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string_or_ptr | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_PARAM *,void *,size_t) | | ossl_param_set_secure_block | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_default | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_multiblock | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (POLY1305 *,const unsigned char *,size_t) | | Poly1305_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (RAND_POOL *,const unsigned char *,size_t) | | ossl_rand_pool_adin_mix_in | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (RAND_POOL *,size_t,size_t) | | ossl_rand_pool_add_end | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (RIPEMD160_CTX *,const void *,size_t) | | RIPEMD160_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (RIPEMD160_CTX *,const void *,size_t) | | ripemd160_block_data_order | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SCT **,const unsigned char **,size_t) | | o2i_SCT | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SCT *,const unsigned char **,size_t) | | o2i_SCT_signature | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SCT *,const unsigned char *,size_t) | | SCT_set1_extensions | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SCT *,const unsigned char *,size_t) | | SCT_set1_log_id | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SCT *,const unsigned char *,size_t) | | SCT_set1_signature | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SCT *,unsigned char *,size_t) | | SCT_set0_extensions | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SCT *,unsigned char *,size_t) | | SCT_set0_log_id | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SCT *,unsigned char *,size_t) | | SCT_set0_signature | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SHA256_CTX *,const void *,size_t) | | SHA224_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SHA256_CTX *,const void *,size_t) | | SHA256_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SHA512_CTX *,const void *,size_t) | | SHA384_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SHA512_CTX *,const void *,size_t) | | SHA512_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SHA_CTX *,const void *,size_t) | | SHA1_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SIPHASH *,const unsigned char *,size_t) | | SipHash_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SIPHASH *,unsigned char *,size_t) | | SipHash_Final | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SIV128_CONTEXT *,const unsigned char *,size_t) | | ossl_siv128_set_tag | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SIV128_CONTEXT *,unsigned char *,size_t) | | ossl_siv128_get_tag | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_priv | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_pub | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SM3_CTX *,const void *,size_t) | | ossl_sm3_block_data_order | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SM3_CTX *,const void *,size_t) | | ossl_sm3_update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL *,const unsigned char *,size_t) | | SSL_set1_client_cert_type | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL *,const unsigned char *,size_t) | | SSL_set1_server_cert_type | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL *,const unsigned char *,size_t) | | SSL_set_quic_tls_transport_params | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL *,size_t,size_t) | | SSL_set_block_padding_ex | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL_CONNECTION *,TLS_RECORD *,size_t) | | ssl_release_record | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL_CONNECTION *,const unsigned char *,size_t) | | lookup_sess_in_cache | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_client_cert_type | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_server_cert_type | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL_CTX *,size_t,size_t) | | SSL_CTX_set_block_padding_ex | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_alpn_selected | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (WPACKET *,BUF_MEM *,size_t) | | WPACKET_init_len | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (WPACKET *,const unsigned char *,size_t) | | ossl_quic_wire_encode_frame_new_token | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (WPACKET *,const void *,size_t) | | WPACKET_memcpy | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (WPACKET *,int,size_t) | | WPACKET_memset | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (WPACKET *,uint64_t,size_t) | | WPACKET_put_bytes__ | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (WPACKET *,unsigned char *,size_t) | | WPACKET_init_der | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (WPACKET *,unsigned char *,size_t) | | dtls_raw_hello_verify_request | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_add1_host | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (char *,const char *,size_t) | | OPENSSL_strlcat | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (char *,const char *,size_t) | | OPENSSL_strlcpy | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const EVP_MD *,const unsigned char *,size_t) | | OSSL_STORE_SEARCH_by_key_fingerprint | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const OSSL_CMP_CTX *,char *,size_t) | | OSSL_CMP_CTX_snprint_PKIStatus | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const OSSL_CMP_PKISI *,char *,size_t) | | OSSL_CMP_snprint_PKIStatusInfo | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const OSSL_NAMEMAP *,int,size_t) | | ossl_namemap_num2name | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const OSSL_PARAM *,char **,size_t) | | OSSL_PARAM_get_utf8_string | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const SSL *,unsigned char *,size_t) | | SSL_get_client_random | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const SSL *,unsigned char *,size_t) | | SSL_get_server_random | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const SSL_SESSION *,unsigned char *,size_t) | | SSL_SESSION_get_master_key | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const char *,unsigned char *,size_t) | | OSSL_PARAM_construct_BN | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (int *,int *,size_t) | | EVP_PBE_get | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (unsigned char *,const unsigned char *,size_t) | | BUF_reverse | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 2 | +| atl.cpp:206:10:206:17 | InsertAt | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 2 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | EVP_PKEY_meth_get0 | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | ossl_get_extension_type | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | ossl_param_bytes_to_blocks | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | ossl_quic_sstream_new | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | ssl_cert_new | 0 | +| atl.cpp:213:8:213:17 | operator[] | (size_t) | | test_get_argument | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | Jim_IntHashFunction | 0 | +| atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | Jim_IntHashFunction | 0 | +| atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | ssl3_get_cipher | 0 | +| atl.cpp:259:5:259:12 | CAtlList | (unsigned int) | | ssl3_get_cipher | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | EVP_PKEY_meth_get0 | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | EVP_PKEY_meth_get0 | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_get_extension_type | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_get_extension_type | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_param_bytes_to_blocks | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_param_bytes_to_blocks | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_quic_sstream_new | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_quic_sstream_new | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ssl_cert_new | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ssl_cert_new | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | test_get_argument | 0 | +| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | test_get_argument | 0 | | atl.cpp:409:10:409:10 | operator= | (const CComBSTR &) | CComBSTR | Append | 0 | | atl.cpp:409:10:409:10 | operator= | (const CComBSTR &) | CComBSTR | CComBSTR | 0 | | atl.cpp:411:5:411:12 | CComBSTR | (const CComBSTR &) | CComBSTR | Append | 0 | | atl.cpp:411:5:411:12 | CComBSTR | (const CComBSTR &) | CComBSTR | CComBSTR | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | ASN1_STRING_type_new | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | ASN1_tag2bit | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | ASN1_tag2str | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | EVP_PKEY_asn1_get0 | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | Jim_ReturnCode | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | Jim_SignalId | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | OBJ_nid2ln | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | OBJ_nid2obj | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | OBJ_nid2sn | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | OSSL_STORE_INFO_type_string | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | OSSL_trace_get_category_name | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | PKCS12_init | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | Symbol_Nth | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | X509_PURPOSE_get0 | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | X509_PURPOSE_get_by_id | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | X509_TRUST_get0 | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | X509_TRUST_get_by_id | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | ossl_cmp_bodytype_to_string | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | ossl_tolower | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | ossl_toupper | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | pulldown_test_framework | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | sqlite3_compileoption_get | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | sqlite3_errstr | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | tls1_alert_code | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | tls13_alert_code | 0 | +| atl.cpp:412:5:412:12 | CComBSTR | (int) | | wait_until_sock_readable | 0 | | atl.cpp:413:5:413:12 | CComBSTR | (int,LPCOLESTR) | CComBSTR | CComBSTR | 0 | | atl.cpp:413:5:413:12 | CComBSTR | (int,LPCOLESTR) | CComBSTR | CComBSTR | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (BIGNUM **,const char *) | | BN_asc2bn | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (BIGNUM **,const char *) | | BN_dec2bn | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (BIGNUM **,const char *) | | BN_hex2bn | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (CONF *,const char *) | | TS_CONF_get_tsa_section | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (CONF *,const char *) | | _CONF_new_section | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (DH_METHOD *,const char *) | | DH_meth_set1_name | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (DSO *,const char *) | | DSO_convert_filename | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (DSO *,const char *) | | DSO_set_filename | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (ENGINE *,const char *) | | ENGINE_set_id | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (ENGINE *,const char *) | | ENGINE_set_name | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (EVP_PKEY *,const char *) | | CTLOG_new | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (EVP_PKEY_CTX *,const char *) | | app_paramgen | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (Jim_Interp *,const char *) | | Jim_Eval | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (Jim_Interp *,const char *) | | Jim_EvalFile | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (Jim_Interp *,const char *) | | Jim_EvalGlobal | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (SSL *,const char *) | | SSL_add1_host | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (SSL *,const char *) | | SSL_set1_host | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (SSL *,const char *) | | SSL_set_cipher_list | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (SSL *,const char *) | | SSL_use_psk_identity_hint | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (STANZA *,const char *) | | test_start_file | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (UI *,const char *) | | UI_add_error_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (UI *,const char *) | | UI_add_info_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (UI *,const char *) | | UI_dup_error_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (UI *,const char *) | | UI_dup_info_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (X509 *,const char *) | | x509_ctrl_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | Configcmp | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | DES_crypt | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | get_passwd | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | openssl_fopen | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | ossl_pem_check_suffix | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | ossl_v3_name_cmp | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | sqlite3_strglob | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | sqlite3_stricmp | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | test_mk_file_path | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (int,LPCSTR) | CComBSTR | CComBSTR | 0 | | atl.cpp:414:5:414:12 | CComBSTR | (int,LPCSTR) | CComBSTR | CComBSTR | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | BIO_meth_new | 0 | +| atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | BIO_meth_new | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (lemon *,const char *) | | file_makename | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (size_t *,const char *) | | next_protos_parse | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (unsigned long *,const char *) | | set_cert_ex | 1 | +| atl.cpp:414:5:414:12 | CComBSTR | (unsigned long *,const char *) | | set_name_ex | 1 | | atl.cpp:415:5:415:12 | CComBSTR | (LPCOLESTR) | CComBSTR | Append | 0 | | atl.cpp:415:5:415:12 | CComBSTR | (LPCOLESTR) | CComBSTR | CComBSTR | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (LPCSTR) | CComBSTR | Append | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (LPCSTR) | CComBSTR | CComBSTR | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | BIO_gethostbyname | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | Jim_StrDup | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | OPENSSL_LH_strhash | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | Strsafe | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | Symbol_new | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | UI_create_method | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | X509V3_parse_list | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | a2i_IPADDRESS | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | new_pkcs12_builder | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | opt_path_end | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | opt_progname | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | strhash | 0 | | atl.cpp:417:5:417:12 | CComBSTR | (CComBSTR &&) | CComBSTR | CComBSTR | 0 | | atl.cpp:420:13:420:18 | Append | (const CComBSTR &) | CComBSTR | Append | 0 | | atl.cpp:420:13:420:18 | Append | (const CComBSTR &) | CComBSTR | CComBSTR | 0 | @@ -31,26 +439,634 @@ signatureMatches | atl.cpp:423:13:423:18 | Append | (LPCOLESTR) | CComBSTR | CComBSTR | 0 | | atl.cpp:424:13:424:18 | Append | (LPCSTR) | CComBSTR | Append | 0 | | atl.cpp:424:13:424:18 | Append | (LPCSTR) | CComBSTR | CComBSTR | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | BIO_gethostbyname | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | Jim_StrDup | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | OPENSSL_LH_strhash | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | Strsafe | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | Symbol_new | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | UI_create_method | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | X509V3_parse_list | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | a2i_IPADDRESS | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | new_pkcs12_builder | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | opt_path_end | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | opt_progname | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:424:13:424:18 | Append | (const char *) | | strhash | 0 | +| atl.cpp:425:13:425:18 | Append | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| atl.cpp:425:13:425:18 | Append | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| atl.cpp:425:13:425:18 | Append | (BIGNUM *,int) | | BN_clear_bit | 1 | +| atl.cpp:425:13:425:18 | Append | (BIGNUM *,int) | | BN_mask_bits | 1 | +| atl.cpp:425:13:425:18 | Append | (BIGNUM *,int) | | BN_set_bit | 1 | +| atl.cpp:425:13:425:18 | Append | (BIGNUM *,int) | | BN_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (BIGNUM *,int) | | bn_expand2 | 1 | +| atl.cpp:425:13:425:18 | Append | (BIGNUM *,int) | | bn_wexpand | 1 | +| atl.cpp:425:13:425:18 | Append | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| atl.cpp:425:13:425:18 | Append | (BIO *,int) | | BIO_clear_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (BIO *,int) | | BIO_find_type | 1 | +| atl.cpp:425:13:425:18 | Append | (BIO *,int) | | BIO_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (BIO *,int) | | BIO_set_init | 1 | +| atl.cpp:425:13:425:18 | Append | (BIO *,int) | | BIO_set_retry_reason | 1 | +| atl.cpp:425:13:425:18 | Append | (BIO *,int) | | BIO_set_shutdown | 1 | +| atl.cpp:425:13:425:18 | Append | (BIO *,int) | | TXT_DB_read | 1 | +| atl.cpp:425:13:425:18 | Append | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (DH *,int) | | DH_clear_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (DH *,int) | | DH_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (DSA *,int) | | DSA_clear_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (DSA *,int) | | DSA_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| atl.cpp:425:13:425:18 | Append | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| atl.cpp:425:13:425:18 | Append | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| atl.cpp:425:13:425:18 | Append | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| atl.cpp:425:13:425:18 | Append | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| atl.cpp:425:13:425:18 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| atl.cpp:425:13:425:18 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| atl.cpp:425:13:425:18 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| atl.cpp:425:13:425:18 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | atl.cpp:425:13:425:18 | Append | (LPCOLESTR,int) | CComBSTR | Append | 0 | | atl.cpp:425:13:425:18 | Append | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| atl.cpp:425:13:425:18 | Append | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| atl.cpp:425:13:425:18 | Append | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| atl.cpp:425:13:425:18 | Append | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| atl.cpp:425:13:425:18 | Append | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| atl.cpp:425:13:425:18 | Append | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| atl.cpp:425:13:425:18 | Append | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| atl.cpp:425:13:425:18 | Append | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| atl.cpp:425:13:425:18 | Append | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| atl.cpp:425:13:425:18 | Append | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| atl.cpp:425:13:425:18 | Append | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| atl.cpp:425:13:425:18 | Append | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| atl.cpp:425:13:425:18 | Append | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| atl.cpp:425:13:425:18 | Append | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| atl.cpp:425:13:425:18 | Append | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| atl.cpp:425:13:425:18 | Append | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| atl.cpp:425:13:425:18 | Append | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| atl.cpp:425:13:425:18 | Append | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| atl.cpp:425:13:425:18 | Append | (RSA *,int) | | RSA_clear_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (RSA *,int) | | RSA_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| atl.cpp:425:13:425:18 | Append | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| atl.cpp:425:13:425:18 | Append | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| atl.cpp:425:13:425:18 | Append | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL *,int) | | SSL_key_update | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL *,int) | | SSL_set_purpose | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL *,int) | | SSL_set_read_ahead | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL *,int) | | SSL_set_security_level | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL *,int) | | SSL_set_shutdown | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL *,int) | | SSL_set_trust | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL *,int) | | SSL_set_verify_depth | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_CTX *,int) | | ssl_md | 1 | +| atl.cpp:425:13:425:18 | Append | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| atl.cpp:425:13:425:18 | Append | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| atl.cpp:425:13:425:18 | Append | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| atl.cpp:425:13:425:18 | Append | (X509 *,int) | | X509_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (X509 *,int) | | X509_self_signed | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| atl.cpp:425:13:425:18 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:425:13:425:18 | Append | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:425:13:425:18 | Append | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:425:13:425:18 | Append | (char,int) | CStringT | CStringT | 1 | +| atl.cpp:425:13:425:18 | Append | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| atl.cpp:425:13:425:18 | Append | (const BIGNUM *,int) | | BN_get_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| atl.cpp:425:13:425:18 | Append | (const BIO *,int) | | BIO_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const BIO *,int) | | BIO_test_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const DH *,int) | | DH_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const DH *,int) | | DH_test_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (const DH *,int) | | ossl_dh_dup | 1 | +| atl.cpp:425:13:425:18 | Append | (const DSA *,int) | | DSA_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const DSA *,int) | | DSA_test_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (const DSA *,int) | | ossl_dsa_dup | 1 | +| atl.cpp:425:13:425:18 | Append | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| atl.cpp:425:13:425:18 | Append | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| atl.cpp:425:13:425:18 | Append | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| atl.cpp:425:13:425:18 | Append | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| atl.cpp:425:13:425:18 | Append | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| atl.cpp:425:13:425:18 | Append | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| atl.cpp:425:13:425:18 | Append | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| atl.cpp:425:13:425:18 | Append | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| atl.cpp:425:13:425:18 | Append | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| atl.cpp:425:13:425:18 | Append | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| atl.cpp:425:13:425:18 | Append | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| atl.cpp:425:13:425:18 | Append | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| atl.cpp:425:13:425:18 | Append | (const RSA *,int) | | RSA_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const RSA *,int) | | RSA_test_flags | 1 | +| atl.cpp:425:13:425:18 | Append | (const RSA *,int) | | ossl_rsa_dup | 1 | +| atl.cpp:425:13:425:18 | Append | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| atl.cpp:425:13:425:18 | Append | (const SSL *,int) | | SSL_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| atl.cpp:425:13:425:18 | Append | (const UI *,int) | | UI_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509 *,int) | | X509_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509 *,int) | | X509_get_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| atl.cpp:425:13:425:18 | Append | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | atl.cpp:425:13:425:18 | Append | (const XCHAR *,int) | CStringT | CStringT | 1 | | atl.cpp:425:13:425:18 | Append | (const YCHAR *,int) | CStringT | CStringT | 1 | +| atl.cpp:425:13:425:18 | Append | (const char *,int) | | DH_meth_new | 1 | +| atl.cpp:425:13:425:18 | Append | (const char *,int) | | DSA_meth_new | 1 | +| atl.cpp:425:13:425:18 | Append | (const char *,int) | | Jim_StrDupLen | 1 | +| atl.cpp:425:13:425:18 | Append | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| atl.cpp:425:13:425:18 | Append | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:425:13:425:18 | Append | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:425:13:425:18 | Append | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| atl.cpp:425:13:425:18 | Append | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| atl.cpp:425:13:425:18 | Append | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:425:13:425:18 | Append | (int *,int) | | X509_PURPOSE_set | 1 | +| atl.cpp:425:13:425:18 | Append | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:425:13:425:18 | Append | (int,int) | | BN_security_bits | 1 | +| atl.cpp:425:13:425:18 | Append | (int,int) | | EVP_MD_meth_new | 1 | +| atl.cpp:425:13:425:18 | Append | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:425:13:425:18 | Append | (int,int) | | acttab_alloc | 1 | +| atl.cpp:425:13:425:18 | Append | (rule *,int) | | Configlist_add | 1 | +| atl.cpp:425:13:425:18 | Append | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| atl.cpp:425:13:425:18 | Append | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| atl.cpp:425:13:425:18 | Append | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| atl.cpp:425:13:425:18 | Append | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| atl.cpp:425:13:425:18 | Append | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| atl.cpp:425:13:425:18 | Append | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:425:13:425:18 | Append | (uint16_t,int) | | tls1_group_id2nid | 1 | +| atl.cpp:425:13:425:18 | Append | (unsigned char *,int) | | RAND_bytes | 1 | +| atl.cpp:425:13:425:18 | Append | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| atl.cpp:425:13:425:18 | Append | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| atl.cpp:425:13:425:18 | Append | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| atl.cpp:425:13:425:18 | Append | (void *,int) | | DSO_dsobyaddr | 1 | +| atl.cpp:425:13:425:18 | Append | (void *,int) | | sqlite3_realloc | 1 | | atl.cpp:425:13:425:18 | Append | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:426:13:426:22 | AppendBSTR | (wchar_t *) | CStringT | CStringT | 0 | +| atl.cpp:427:13:427:23 | AppendBytes | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIGNUM *,int) | | BN_clear_bit | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIGNUM *,int) | | BN_mask_bits | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIGNUM *,int) | | BN_set_bit | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIGNUM *,int) | | BN_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIGNUM *,int) | | bn_expand2 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIGNUM *,int) | | bn_wexpand | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIO *,int) | | BIO_clear_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIO *,int) | | BIO_find_type | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIO *,int) | | BIO_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIO *,int) | | BIO_set_init | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIO *,int) | | BIO_set_retry_reason | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIO *,int) | | BIO_set_shutdown | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (BIO *,int) | | TXT_DB_read | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (DH *,int) | | DH_clear_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (DH *,int) | | DH_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (DSA *,int) | | DSA_clear_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (DSA *,int) | | DSA_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (RSA *,int) | | RSA_clear_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (RSA *,int) | | RSA_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL *,int) | | SSL_key_update | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL *,int) | | SSL_set_purpose | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL *,int) | | SSL_set_read_ahead | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL *,int) | | SSL_set_security_level | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL *,int) | | SSL_set_shutdown | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL *,int) | | SSL_set_trust | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL *,int) | | SSL_set_verify_depth | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_CTX *,int) | | ssl_md | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509 *,int) | | X509_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509 *,int) | | X509_self_signed | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (char,int) | CStringT | CStringT | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const BIGNUM *,int) | | BN_get_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const BIO *,int) | | BIO_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const BIO *,int) | | BIO_test_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const DH *,int) | | DH_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const DH *,int) | | DH_test_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const DH *,int) | | ossl_dh_dup | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const DSA *,int) | | DSA_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const DSA *,int) | | DSA_test_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const DSA *,int) | | ossl_dsa_dup | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const RSA *,int) | | RSA_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const RSA *,int) | | RSA_test_flags | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const RSA *,int) | | ossl_rsa_dup | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const SSL *,int) | | SSL_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const UI *,int) | | UI_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509 *,int) | | X509_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509 *,int) | | X509_get_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (const XCHAR *,int) | CStringT | CStringT | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (const YCHAR *,int) | CStringT | CStringT | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | DH_meth_new | 0 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | DH_meth_new | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | DSA_meth_new | 0 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | DSA_meth_new | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | Jim_StrDupLen | 0 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | Jim_StrDupLen | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 0 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | RSA_meth_new | 0 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | parse_yesno | 0 | +| atl.cpp:427:13:427:23 | AppendBytes | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (int *,int) | | X509_PURPOSE_set | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | BN_security_bits | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | EVP_MD_meth_new | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (int,int) | | acttab_alloc | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (rule *,int) | | Configlist_add | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (uint16_t,int) | | tls1_group_id2nid | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (unsigned char *,int) | | RAND_bytes | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (void *,int) | | DSO_dsobyaddr | 1 | +| atl.cpp:427:13:427:23 | AppendBytes | (void *,int) | | sqlite3_realloc | 1 | | atl.cpp:427:13:427:23 | AppendBytes | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:428:13:428:23 | ArrayToBSTR | (const SAFEARRAY *) | CComSafeArray | Add | 0 | | atl.cpp:428:13:428:23 | ArrayToBSTR | (const SAFEARRAY *) | CComSafeArray | CComSafeArray | 0 | | atl.cpp:428:13:428:23 | ArrayToBSTR | (const SAFEARRAY *) | CComSafeArray | operator= | 0 | | atl.cpp:430:10:430:15 | Attach | (wchar_t *) | CStringT | CStringT | 0 | +| atl.cpp:440:10:440:19 | LoadString | (ASN1_STRING *,unsigned int) | | ossl_asn1_string_set_bits_left | 1 | +| atl.cpp:440:10:440:19 | LoadString | (EC_KEY *,unsigned int) | | EC_KEY_set_enc_flags | 1 | +| atl.cpp:440:10:440:19 | LoadString | (EVP_ENCODE_CTX *,unsigned int) | | evp_encode_ctx_set_flags | 1 | +| atl.cpp:440:10:440:19 | LoadString | (FFC_PARAMS *,unsigned int) | | ossl_ffc_params_set_flags | 1 | | atl.cpp:440:10:440:19 | LoadString | (HINSTANCE,UINT) | CComBSTR | LoadString | 0 | | atl.cpp:440:10:440:19 | LoadString | (HINSTANCE,UINT) | CComBSTR | LoadString | 1 | +| atl.cpp:440:10:440:19 | LoadString | (OSSL_PARAM *,unsigned int) | | OSSL_PARAM_set_uint | 1 | +| atl.cpp:440:10:440:19 | LoadString | (QUIC_DEMUX *,unsigned int) | | ossl_quic_demux_set_mtu | 1 | +| atl.cpp:440:10:440:19 | LoadString | (QUIC_OBJ *,unsigned int) | | ossl_quic_obj_set_blocking_mode | 1 | +| atl.cpp:440:10:440:19 | LoadString | (RAND_POOL *,unsigned int) | | ossl_rand_pool_bytes_needed | 1 | +| atl.cpp:440:10:440:19 | LoadString | (SSL *,unsigned int) | | SSL_set_hostflags | 1 | +| atl.cpp:440:10:440:19 | LoadString | (SSL_CONF_CTX *,unsigned int) | | SSL_CONF_CTX_clear_flags | 1 | +| atl.cpp:440:10:440:19 | LoadString | (SSL_CONF_CTX *,unsigned int) | | SSL_CONF_CTX_set_flags | 1 | +| atl.cpp:440:10:440:19 | LoadString | (TS_RESP_CTX *,unsigned int) | | TS_RESP_CTX_set_clock_precision_digits | 1 | +| atl.cpp:440:10:440:19 | LoadString | (WPACKET *,unsigned int) | | WPACKET_set_flags | 1 | +| atl.cpp:440:10:440:19 | LoadString | (X509_STORE_CTX *,unsigned int) | | X509_STORE_CTX_set_current_reasons | 1 | +| atl.cpp:440:10:440:19 | LoadString | (X509_VERIFY_PARAM *,unsigned int) | | X509_VERIFY_PARAM_set_hostflags | 1 | +| atl.cpp:440:10:440:19 | LoadString | (char *,unsigned int) | | utf8_fromunicode | 1 | | atl.cpp:441:10:441:19 | LoadString | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:441:10:441:19 | LoadString | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:441:10:441:19 | LoadString | (unsigned int) | | Jim_IntHashFunction | 0 | +| atl.cpp:441:10:441:19 | LoadString | (unsigned int) | | ssl3_get_cipher | 0 | | atl.cpp:449:15:449:24 | operator+= | (const CComBSTR &) | CComBSTR | Append | 0 | | atl.cpp:449:15:449:24 | operator+= | (const CComBSTR &) | CComBSTR | CComBSTR | 0 | | atl.cpp:450:15:450:24 | operator+= | (LPCOLESTR) | CComBSTR | Append | 0 | @@ -63,6 +1079,34 @@ signatureMatches | atl.cpp:544:13:544:15 | Add | (const SAFEARRAY *) | CComSafeArray | operator= | 0 | | atl.cpp:546:13:546:15 | Add | (const T &,BOOL) | CComSafeArray | Add | 0 | | atl.cpp:546:13:546:15 | Add | (const T &,BOOL) | CComSafeArray | Add | 1 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | ASN1_STRING_type_new | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | ASN1_tag2bit | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | ASN1_tag2str | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | EVP_PKEY_asn1_get0 | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | Jim_ReturnCode | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | Jim_SignalId | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | OBJ_nid2ln | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | OBJ_nid2obj | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | OBJ_nid2sn | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | OSSL_STORE_INFO_type_string | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | OSSL_trace_get_category_name | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | PKCS12_init | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | Symbol_Nth | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | X509_PURPOSE_get0 | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | X509_PURPOSE_get_by_id | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | X509_TRUST_get0 | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | X509_TRUST_get_by_id | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | ossl_tolower | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | ossl_toupper | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | pulldown_test_framework | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | sqlite3_compileoption_get | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | sqlite3_errstr | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | tls1_alert_code | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | tls13_alert_code | 0 | +| atl.cpp:568:8:568:17 | operator[] | (int) | | wait_until_sock_readable | 0 | | atl.cpp:612:5:612:10 | CPathT | (PCXSTR) | | operator+= | 0 | | atl.cpp:612:5:612:10 | CPathT | (PCXSTR) | CSimpleStringT | operator+= | 0 | | atl.cpp:612:5:612:10 | CPathT | (PCXSTR) | CStringT | operator= | 0 | @@ -82,6 +1126,34 @@ signatureMatches | atl.cpp:659:25:659:34 | operator+= | (PCXSTR) | | operator+= | 0 | | atl.cpp:659:25:659:34 | operator+= | (PCXSTR) | CSimpleStringT | operator+= | 0 | | atl.cpp:659:25:659:34 | operator+= | (PCXSTR) | CStringT | operator= | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | ASN1_STRING_type_new | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | ASN1_tag2bit | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | ASN1_tag2str | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | EVP_PKEY_asn1_get0 | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | Jim_ReturnCode | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | Jim_SignalId | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | OBJ_nid2ln | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | OBJ_nid2obj | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | OBJ_nid2sn | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | OSSL_STORE_INFO_type_string | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | OSSL_trace_get_category_name | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | PKCS12_init | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | Symbol_Nth | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | X509_PURPOSE_get0 | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | X509_PURPOSE_get_by_id | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | X509_TRUST_get0 | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | X509_TRUST_get_by_id | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | ossl_tolower | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | ossl_toupper | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | pulldown_test_framework | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | sqlite3_compileoption_get | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | sqlite3_errstr | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | tls1_alert_code | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | tls13_alert_code | 0 | +| atl.cpp:731:8:731:17 | operator[] | (int) | | wait_until_sock_readable | 0 | | atl.cpp:765:10:765:12 | Add | (const deque &,const Allocator &) | deque | deque | 1 | | atl.cpp:765:10:765:12 | Add | (const forward_list &,const Allocator &) | forward_list | forward_list | 1 | | atl.cpp:765:10:765:12 | Add | (const list &,const Allocator &) | list | list | 1 | @@ -90,6 +1162,34 @@ signatureMatches | atl.cpp:765:10:765:12 | Add | (forward_list &&,const Allocator &) | forward_list | forward_list | 1 | | atl.cpp:765:10:765:12 | Add | (list &&,const Allocator &) | list | list | 1 | | atl.cpp:765:10:765:12 | Add | (vector &&,const Allocator &) | vector | vector | 1 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | ASN1_STRING_type_new | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | ASN1_tag2bit | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | ASN1_tag2str | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | EVP_PKEY_asn1_get0 | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | Jim_ReturnCode | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | Jim_SignalId | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | OBJ_nid2ln | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | OBJ_nid2obj | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | OBJ_nid2sn | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | OSSL_STORE_INFO_type_string | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | OSSL_trace_get_category_name | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | PKCS12_init | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | Symbol_Nth | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | X509_PURPOSE_get0 | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | X509_PURPOSE_get_by_id | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | X509_TRUST_get0 | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | X509_TRUST_get_by_id | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | ossl_cmp_bodytype_to_string | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | ossl_tolower | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | ossl_toupper | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | pulldown_test_framework | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | sqlite3_compileoption_get | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | sqlite3_errstr | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | tls1_alert_code | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | tls13_alert_code | 0 | +| atl.cpp:770:11:770:20 | GetValueAt | (int) | | wait_until_sock_readable | 0 | | atl.cpp:776:10:776:14 | SetAt | (const deque &,const Allocator &) | deque | deque | 1 | | atl.cpp:776:10:776:14 | SetAt | (const forward_list &,const Allocator &) | forward_list | forward_list | 1 | | atl.cpp:776:10:776:14 | SetAt | (const list &,const Allocator &) | list | list | 1 | @@ -110,12 +1210,145 @@ signatureMatches | atl.cpp:777:10:777:19 | SetAtIndex | (size_type,const T &,const Allocator &) | list | list | 2 | | atl.cpp:777:10:777:19 | SetAtIndex | (size_type,const T &,const Allocator &) | vector | vector | 1 | | atl.cpp:777:10:777:19 | SetAtIndex | (size_type,const T &,const Allocator &) | vector | vector | 2 | +| atl.cpp:821:17:821:28 | Canonicalize | (unsigned long) | | BN_num_bits_word | 0 | +| atl.cpp:821:17:821:28 | Canonicalize | (unsigned long) | | BUF_MEM_new_ex | 0 | +| atl.cpp:824:10:824:17 | CrackUrl | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (BIGNUM *,unsigned long) | | BN_add_word | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (BIGNUM *,unsigned long) | | BN_div_word | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (BIGNUM *,unsigned long) | | BN_set_word | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (BIGNUM *,unsigned long) | | BN_sub_word | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| atl.cpp:824:10:824:17 | CrackUrl | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| atl.cpp:825:17:825:25 | CreateUrl | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | +| atl.cpp:825:17:825:25 | CreateUrl | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | +| atl.cpp:825:17:825:25 | CreateUrl | (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 2 | +| atl.cpp:825:17:825:25 | CreateUrl | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | +| atl.cpp:825:17:825:25 | CreateUrl | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | +| atl.cpp:825:17:825:25 | CreateUrl | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| atl.cpp:825:17:825:25 | CreateUrl | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | | atl.cpp:842:17:842:28 | SetExtraInfo | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | BIO_gethostbyname | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | Jim_StrDup | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | OPENSSL_LH_strhash | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | Strsafe | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | Symbol_new | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | UI_create_method | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | X509V3_parse_list | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | a2i_IPADDRESS | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | new_pkcs12_builder | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | opt_path_end | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | opt_progname | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | strhash | 0 | | atl.cpp:843:17:843:27 | SetHostName | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | BIO_gethostbyname | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | Jim_StrDup | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | OPENSSL_LH_strhash | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | Strsafe | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | Symbol_new | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | UI_create_method | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | X509V3_parse_list | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | a2i_IPADDRESS | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | new_pkcs12_builder | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | opt_path_end | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | opt_progname | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | strhash | 0 | | atl.cpp:844:17:844:27 | SetPassword | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | BIO_gethostbyname | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | Jim_StrDup | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | OPENSSL_LH_strhash | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | Strsafe | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | Symbol_new | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | UI_create_method | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | X509V3_parse_list | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | a2i_IPADDRESS | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | new_pkcs12_builder | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | opt_path_end | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | opt_progname | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | strhash | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | BIO_gethostbyname | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | Jim_StrDup | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | OPENSSL_LH_strhash | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | Strsafe | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | Symbol_new | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | UI_create_method | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | X509V3_parse_list | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | a2i_IPADDRESS | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | new_pkcs12_builder | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | opt_path_end | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | opt_progname | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | strhash | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | BIO_gethostbyname | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | Jim_StrDup | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | OPENSSL_LH_strhash | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | Strsafe | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | Symbol_new | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | UI_create_method | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | X509V3_parse_list | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | a2i_IPADDRESS | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | new_pkcs12_builder | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | opt_path_end | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | opt_progname | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | strhash | 0 | | atl.cpp:849:17:849:27 | SetUserName | (LPCTSTR) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | BIO_gethostbyname | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | Jim_StrDup | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | OPENSSL_LH_strhash | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | Strsafe | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | Symbol_new | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | UI_create_method | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | X509V3_parse_list | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | X509_LOOKUP_meth_new | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | a2i_IPADDRESS | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | a2i_IPADDRESS_NC | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | new_pkcs12_builder | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | opt_path_end | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | opt_progname | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | ossl_lh_strcasehash | 0 | +| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | strhash | 0 | | atl.cpp:915:5:915:18 | CSimpleStringT | (const XCHAR *,int,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 0 | | atl.cpp:915:5:915:18 | CSimpleStringT | (const XCHAR *,int,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 1 | | atl.cpp:915:5:915:18 | CSimpleStringT | (const XCHAR *,int,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 2 | @@ -137,42 +1370,1315 @@ signatureMatches | atl.cpp:921:10:921:15 | Append | (const CSimpleStringT &) | CSimpleStringT | operator+= | 0 | | atl.cpp:921:10:921:15 | Append | (const CSimpleStringT &) | CStringT | CStringT | 0 | | atl.cpp:921:10:921:15 | Append | (const CSimpleStringT &) | CStringT | operator= | 0 | +| atl.cpp:922:10:922:15 | Append | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| atl.cpp:922:10:922:15 | Append | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| atl.cpp:922:10:922:15 | Append | (BIGNUM *,int) | | BN_clear_bit | 1 | +| atl.cpp:922:10:922:15 | Append | (BIGNUM *,int) | | BN_mask_bits | 1 | +| atl.cpp:922:10:922:15 | Append | (BIGNUM *,int) | | BN_set_bit | 1 | +| atl.cpp:922:10:922:15 | Append | (BIGNUM *,int) | | BN_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (BIGNUM *,int) | | bn_expand2 | 1 | +| atl.cpp:922:10:922:15 | Append | (BIGNUM *,int) | | bn_wexpand | 1 | +| atl.cpp:922:10:922:15 | Append | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| atl.cpp:922:10:922:15 | Append | (BIO *,int) | | BIO_clear_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (BIO *,int) | | BIO_find_type | 1 | +| atl.cpp:922:10:922:15 | Append | (BIO *,int) | | BIO_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (BIO *,int) | | BIO_set_init | 1 | +| atl.cpp:922:10:922:15 | Append | (BIO *,int) | | BIO_set_retry_reason | 1 | +| atl.cpp:922:10:922:15 | Append | (BIO *,int) | | BIO_set_shutdown | 1 | +| atl.cpp:922:10:922:15 | Append | (BIO *,int) | | TXT_DB_read | 1 | +| atl.cpp:922:10:922:15 | Append | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (DH *,int) | | DH_clear_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (DH *,int) | | DH_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (DSA *,int) | | DSA_clear_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (DSA *,int) | | DSA_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| atl.cpp:922:10:922:15 | Append | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| atl.cpp:922:10:922:15 | Append | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| atl.cpp:922:10:922:15 | Append | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| atl.cpp:922:10:922:15 | Append | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| atl.cpp:922:10:922:15 | Append | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| atl.cpp:922:10:922:15 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| atl.cpp:922:10:922:15 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| atl.cpp:922:10:922:15 | Append | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | atl.cpp:922:10:922:15 | Append | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| atl.cpp:922:10:922:15 | Append | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| atl.cpp:922:10:922:15 | Append | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| atl.cpp:922:10:922:15 | Append | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| atl.cpp:922:10:922:15 | Append | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| atl.cpp:922:10:922:15 | Append | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| atl.cpp:922:10:922:15 | Append | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| atl.cpp:922:10:922:15 | Append | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| atl.cpp:922:10:922:15 | Append | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| atl.cpp:922:10:922:15 | Append | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| atl.cpp:922:10:922:15 | Append | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| atl.cpp:922:10:922:15 | Append | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| atl.cpp:922:10:922:15 | Append | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| atl.cpp:922:10:922:15 | Append | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| atl.cpp:922:10:922:15 | Append | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| atl.cpp:922:10:922:15 | Append | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| atl.cpp:922:10:922:15 | Append | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| atl.cpp:922:10:922:15 | Append | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| atl.cpp:922:10:922:15 | Append | (RSA *,int) | | RSA_clear_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (RSA *,int) | | RSA_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| atl.cpp:922:10:922:15 | Append | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| atl.cpp:922:10:922:15 | Append | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| atl.cpp:922:10:922:15 | Append | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL *,int) | | SSL_key_update | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL *,int) | | SSL_set_purpose | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL *,int) | | SSL_set_read_ahead | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL *,int) | | SSL_set_security_level | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL *,int) | | SSL_set_shutdown | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL *,int) | | SSL_set_trust | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL *,int) | | SSL_set_verify_depth | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_CTX *,int) | | ssl_md | 1 | +| atl.cpp:922:10:922:15 | Append | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| atl.cpp:922:10:922:15 | Append | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| atl.cpp:922:10:922:15 | Append | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| atl.cpp:922:10:922:15 | Append | (X509 *,int) | | X509_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (X509 *,int) | | X509_self_signed | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| atl.cpp:922:10:922:15 | Append | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:922:10:922:15 | Append | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:922:10:922:15 | Append | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:922:10:922:15 | Append | (char,int) | CStringT | CStringT | 1 | +| atl.cpp:922:10:922:15 | Append | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| atl.cpp:922:10:922:15 | Append | (const BIGNUM *,int) | | BN_get_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| atl.cpp:922:10:922:15 | Append | (const BIO *,int) | | BIO_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const BIO *,int) | | BIO_test_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const DH *,int) | | DH_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const DH *,int) | | DH_test_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (const DH *,int) | | ossl_dh_dup | 1 | +| atl.cpp:922:10:922:15 | Append | (const DSA *,int) | | DSA_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const DSA *,int) | | DSA_test_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (const DSA *,int) | | ossl_dsa_dup | 1 | +| atl.cpp:922:10:922:15 | Append | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| atl.cpp:922:10:922:15 | Append | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| atl.cpp:922:10:922:15 | Append | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| atl.cpp:922:10:922:15 | Append | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| atl.cpp:922:10:922:15 | Append | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| atl.cpp:922:10:922:15 | Append | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| atl.cpp:922:10:922:15 | Append | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| atl.cpp:922:10:922:15 | Append | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| atl.cpp:922:10:922:15 | Append | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| atl.cpp:922:10:922:15 | Append | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| atl.cpp:922:10:922:15 | Append | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| atl.cpp:922:10:922:15 | Append | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| atl.cpp:922:10:922:15 | Append | (const RSA *,int) | | RSA_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const RSA *,int) | | RSA_test_flags | 1 | +| atl.cpp:922:10:922:15 | Append | (const RSA *,int) | | ossl_rsa_dup | 1 | +| atl.cpp:922:10:922:15 | Append | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| atl.cpp:922:10:922:15 | Append | (const SSL *,int) | | SSL_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| atl.cpp:922:10:922:15 | Append | (const UI *,int) | | UI_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509 *,int) | | X509_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509 *,int) | | X509_get_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| atl.cpp:922:10:922:15 | Append | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | atl.cpp:922:10:922:15 | Append | (const XCHAR *,int) | CStringT | CStringT | 1 | | atl.cpp:922:10:922:15 | Append | (const YCHAR *,int) | CStringT | CStringT | 1 | +| atl.cpp:922:10:922:15 | Append | (const char *,int) | | DH_meth_new | 1 | +| atl.cpp:922:10:922:15 | Append | (const char *,int) | | DSA_meth_new | 1 | +| atl.cpp:922:10:922:15 | Append | (const char *,int) | | Jim_StrDupLen | 1 | +| atl.cpp:922:10:922:15 | Append | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| atl.cpp:922:10:922:15 | Append | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:922:10:922:15 | Append | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:922:10:922:15 | Append | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| atl.cpp:922:10:922:15 | Append | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| atl.cpp:922:10:922:15 | Append | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:922:10:922:15 | Append | (int *,int) | | X509_PURPOSE_set | 1 | +| atl.cpp:922:10:922:15 | Append | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:922:10:922:15 | Append | (int,int) | | BN_security_bits | 1 | +| atl.cpp:922:10:922:15 | Append | (int,int) | | EVP_MD_meth_new | 1 | +| atl.cpp:922:10:922:15 | Append | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:922:10:922:15 | Append | (int,int) | | acttab_alloc | 1 | +| atl.cpp:922:10:922:15 | Append | (rule *,int) | | Configlist_add | 1 | +| atl.cpp:922:10:922:15 | Append | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| atl.cpp:922:10:922:15 | Append | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| atl.cpp:922:10:922:15 | Append | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| atl.cpp:922:10:922:15 | Append | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| atl.cpp:922:10:922:15 | Append | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| atl.cpp:922:10:922:15 | Append | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:922:10:922:15 | Append | (uint16_t,int) | | tls1_group_id2nid | 1 | +| atl.cpp:922:10:922:15 | Append | (unsigned char *,int) | | RAND_bytes | 1 | +| atl.cpp:922:10:922:15 | Append | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| atl.cpp:922:10:922:15 | Append | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| atl.cpp:922:10:922:15 | Append | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| atl.cpp:922:10:922:15 | Append | (void *,int) | | DSO_dsobyaddr | 1 | +| atl.cpp:922:10:922:15 | Append | (void *,int) | | sqlite3_realloc | 1 | | atl.cpp:922:10:922:15 | Append | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:923:10:923:15 | Append | (PCXSTR) | | operator+= | 0 | | atl.cpp:923:10:923:15 | Append | (PCXSTR) | CSimpleStringT | operator+= | 0 | | atl.cpp:923:10:923:15 | Append | (PCXSTR) | CStringT | operator= | 0 | +| atl.cpp:927:17:927:25 | CopyChars | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ASN1_OCTET_STRING **,const unsigned char *,int) | | ossl_cmp_asn1_octet_string_set1_bytes | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ASN1_OCTET_STRING *,const unsigned char *,int) | | ASN1_OCTET_STRING_set | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ASN1_STRING *,const void *,int) | | ASN1_STRING_set | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ASN1_STRING *,void *,int) | | ASN1_STRING_set0 | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ASN1_TIME *,tm *,int) | | ossl_asn1_time_from_tm | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ASN1_TYPE *,unsigned char *,int) | | ASN1_TYPE_set_octetstring | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_item_embed_free | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_primitive_free | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIGNUM *,const BIGNUM *,int) | | BN_lshift | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIGNUM *,const BIGNUM *,int) | | BN_rshift | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIGNUM *,const BIGNUM *,int) | | BN_with_flags | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIGNUM *,const BIGNUM *,int) | | bn_lshift_fixed_top | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIGNUM *,const BIGNUM *,int) | | bn_rshift_fixed_top | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIGNUM *,const unsigned long *,int) | | bn_set_static_words | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIGNUM *,const unsigned long *,int) | | bn_set_words | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIO *,BIO *,int) | | OSSL_HTTP_REQ_CTX_new | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIO *,BIO *,int) | | SMIME_crlf_copy | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIO *,GENERAL_NAMES *,int) | | OSSL_GENERAL_NAMES_print | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIO *,char *,int) | | BIO_get_line | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIO *,const DSA *,int) | | DSA_print | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (BIO *,const RSA *,int) | | RSA_print | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (CERT *,X509_STORE **,int) | | ssl_cert_get_cert_store | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (CRYPTO_THREAD_ROUTINE,void *,int) | | ossl_crypto_thread_native_start | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (DH *,const OSSL_PARAM[],int) | | ossl_dh_key_fromdata | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (DSA *,const OSSL_PARAM[],int) | | ossl_dsa_key_fromdata | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ECX_KEY *,const OSSL_PARAM[],int) | | ossl_ecx_key_fromdata | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EC_KEY *,const OSSL_PARAM[],int) | | ossl_ec_key_fromdata | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (ENGINE *,ENGINE_DYNAMIC_ID,int) | | engine_add_dynamic_id | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_export_to_provider | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_find_operation_cache | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY *,EVP_PKEY *,int) | | evp_keymgmt_util_copy | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,EVP_PKEY *,int) | | EVP_PKEY_derive_set_peer_ex | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const char *,int) | | EVP_PKEY_CTX_set1_pbe_pass | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const char *,int) | | EVP_PKEY_CTX_set1_pbe_pass | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_hkdf_info | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_tls1_prf_seed | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_key | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_salt | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_scrypt_salt | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_tls1_prf_secret | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set_mac_key | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (FILE *,const DSA *,int) | | DSA_print_fp | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (FILE *,const RSA *,int) | | RSA_print_fp | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (FILE *,rule *,int) | | RulePrint | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,Jim_Obj *,int) | | Jim_ListGetIndex | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,Jim_Obj *,int) | | Jim_UnsetVariable | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewDictObj | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewListObj | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,char *,int) | | Jim_NewStringObjNoAlloc | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,const char *,int) | | Jim_GetGlobalVariableStr | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,const char *,int) | | Jim_GetGlobalVariableStr | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,const char *,int) | | Jim_GetVariableStr | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,const char *,int) | | Jim_GetVariableStr | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,const char *,int) | | Jim_MakeTempFile | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,const char *,int) | | Jim_MakeTempFile | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,const char *,int) | | Jim_NewStringObj | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,const char *,int) | | Jim_NewStringObj | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,const char *,int) | | Jim_NewStringObjUtf8 | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (Jim_Interp *,const char *,int) | | Jim_NewStringObjUtf8 | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_BASICRESP *,OCSP_CERTID *,int) | | OCSP_resp_find | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_BASICRESP *,X509_EXTENSION *,int) | | OCSP_BASICRESP_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_BASICRESP *,const ASN1_OBJECT *,int) | | OCSP_BASICRESP_get_ext_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_critical | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_ONEREQ *,X509_EXTENSION *,int) | | OCSP_ONEREQ_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_ONEREQ *,const ASN1_OBJECT *,int) | | OCSP_ONEREQ_get_ext_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_critical | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_REQUEST *,X509_EXTENSION *,int) | | OCSP_REQUEST_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_REQUEST *,const ASN1_OBJECT *,int) | | OCSP_REQUEST_get_ext_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_critical | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_SINGLERESP *,X509_EXTENSION *,int) | | OCSP_SINGLERESP_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_SINGLERESP *,const ASN1_OBJECT *,int) | | OCSP_SINGLERESP_get_ext_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_critical | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OPENSSL_STACK *,const void *,int) | | OPENSSL_sk_insert | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_referenceValue | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_secretValue | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_CMP_CTX *,int,int) | | OSSL_CMP_CTX_set_option | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | EC_GROUP_new_by_curve_name_ex | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | EC_GROUP_new_by_curve_name_ex | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | EC_KEY_new_by_curve_name_ex | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | EC_KEY_new_by_curve_name_ex | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | OSSL_PROVIDER_try_load | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | OSSL_PROVIDER_try_load | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_dsa_key_new | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_dsa_key_new | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_kem_key_new | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_kem_key_new | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | ossl_parse_query | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | ossl_parse_query | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_name | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_name | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_value | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_value | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_PROVIDER *,OSSL_PROVIDER **,int) | | ossl_provider_add_to_store | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int) | | ossl_qrl_enc_level_set_get | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (PKCS7 *,stack_st_X509 *,int) | | PKCS7_get0_signers | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (POLICYINFO *,const ASN1_OBJECT *,int) | | ossl_policy_data_new | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (PROV_CTX *,const char *,int) | | ossl_prov_ctx_get_bool_param | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (PROV_CTX *,const char *,int) | | ossl_prov_ctx_get_bool_param | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (PROV_CTX *,const char *,int) | | ossl_prov_ml_dsa_new | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (PROV_CTX *,const char *,int) | | ossl_prov_ml_dsa_new | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (PROV_CTX *,const char *,int) | | ossl_prov_ml_kem_new | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (PROV_CTX *,const char *,int) | | ossl_prov_ml_kem_new | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL *,SSL *,int) | | create_ssl_connection | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL *,const void *,int) | | SSL_write | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL *,void *,int) | | SSL_peek | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL *,void *,int) | | SSL_read | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL *,void *,int) | | SSL_set_session_ticket_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL_CIPHER *,const SSL_CIPHER *,int) | | OBJ_bsearch_ssl_cipher_id | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL_CONNECTION *,PACKET *,int) | | ssl_cache_cipherlist | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL_CONNECTION *,WPACKET *,int) | | dtls1_close_construct_packet | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL_CONNECTION *,WPACKET *,int) | | dtls1_set_handshake_header | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL_CONNECTION *,WPACKET *,int) | | tls_close_construct_packet | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (SSL_CONNECTION *,int,int) | | ssl3_send_alert | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (TS_MSG_IMPRINT *,unsigned char *,int) | | TS_MSG_IMPRINT_set_msg | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (TS_REQ *,X509_EXTENSION *,int) | | TS_REQ_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (TS_REQ *,const ASN1_OBJECT *,int) | | TS_REQ_get_ext_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_critical | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (TS_TST_INFO *,X509_EXTENSION *,int) | | TS_TST_INFO_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (TS_TST_INFO *,const ASN1_OBJECT *,int) | | TS_TST_INFO_get_ext_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_critical | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (X509 *,X509_EXTENSION *,int) | | X509_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (X509 *,int,int) | | X509_check_purpose | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (X509 *,int,int) | | X509_check_trust | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (X509_CRL *,X509_EXTENSION *,int) | | X509_CRL_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (X509_PUBKEY *,unsigned char *,int) | | X509_PUBKEY_set0_public_key | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (X509_REVOKED *,X509_EXTENSION *,int) | | X509_REVOKED_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 2 | | atl.cpp:927:17:927:25 | CopyChars | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 0 | | atl.cpp:927:17:927:25 | CopyChars | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 1 | | atl.cpp:927:17:927:25 | CopyChars | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | | atl.cpp:927:17:927:25 | CopyChars | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 0 | | atl.cpp:927:17:927:25 | CopyChars | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 1 | | atl.cpp:927:17:927:25 | CopyChars | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (action *,FILE *,int) | | PrintAction | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (acttab *,int,int) | | acttab_action | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const BIGNUM *,unsigned char *,int) | | BN_bn2lebinpad | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const BIGNUM *,unsigned char *,int) | | BN_bn2nativepad | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2bin | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2lebin | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2native | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const CMS_ContentInfo *,BIO *,int) | | ossl_cms_DigestedData_do_final | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_signed_get_attr_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_unsigned_get_attr_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const CMS_SignerInfo *,int,int) | | CMS_signed_get_attr_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const CMS_SignerInfo *,int,int) | | CMS_unsigned_get_attr_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const EVP_MD *,const EVP_MD *,int) | | ossl_rsa_pss_params_create | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const EVP_PKEY *,const ASN1_OBJECT *,int) | | EVP_PKEY_get_attr_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const EVP_PKEY *,int,int) | | EVP_PKEY_get_attr_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const OSSL_PARAM *,BIO *,int) | | OSSL_PARAM_print_to_bio | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const OSSL_PROVIDER *,const char *,int) | | OSSL_PROVIDER_conf_get_bool | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (const OSSL_PROVIDER *,const char *,int) | | OSSL_PROVIDER_conf_get_bool | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const SSL *,char *,int) | | SSL_get_shared_ciphers | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const SSL *,int,int) | | apps_ssl_info_callback | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const SSL_CIPHER *,char *,int) | | SSL_CIPHER_description | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509 *,const ASN1_OBJECT *,int) | | X509_get_ext_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_new_init | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509 *,int,int) | | X509_get_ext_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509 *,int,int) | | X509_get_ext_by_critical | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_ACERT *,const ASN1_OBJECT *,int) | | X509_ACERT_get_attr_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_ACERT *,int,int) | | X509_ACERT_get_attr_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_CRL *,const ASN1_OBJECT *,int) | | X509_CRL_get_ext_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_CRL *,const X509 *,int) | | OSSL_CMP_CRLSTATUS_create | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_critical | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_NAME *,char *,int) | | X509_NAME_oneline | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_NAME *,const ASN1_OBJECT *,int) | | X509_NAME_get_index_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_NAME *,int,int) | | X509_NAME_get_index_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_REQ *,const ASN1_OBJECT *,int) | | X509_REQ_get_attr_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_REQ *,int,int) | | X509_REQ_get_attr_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_REVOKED *,const ASN1_OBJECT *,int) | | X509_REVOKED_get_ext_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,SD *,int) | | sd_load | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | CRYPTO_strdup | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | CRYPTO_strdup | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | sqlite3_strnicmp | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,long *,int) | | Jim_StringToWide | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_NID | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_critical | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (int,int,int) | | ASN1_object_size | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (int,int,int) | | EVP_CIPHER_meth_new | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (regex_t *,const char *,int) | | jim_regcomp | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (regex_t *,const char *,int) | | jim_regcomp | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3 *,int,int) | | sqlite3_limit | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3_context *,const char *,int) | | sqlite3_result_error | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3_context *,const char *,int) | | sqlite3_result_error | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3_context *,const void *,int) | | sqlite3_result_error16 | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3_index_info *,int,int) | | sqlite3_vtab_in | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3_stmt *,int,int) | | sqlite3_bind_int | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3_stmt *,int,int) | | sqlite3_bind_zeroblob | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3_stmt *,int,int) | | sqlite3_stmt_status | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3_str *,const char *,int) | | sqlite3_str_append | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3_str *,const char *,int) | | sqlite3_str_append | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (sqlite3expert *,int,int) | | sqlite3_expert_report | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_ASN1_UTF8STRING *,const char *,int) | | ossl_cmp_sk_ASN1_UTF8STRING_push_str | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_ASN1_UTF8STRING *,const char *,int) | | ossl_cmp_sk_ASN1_UTF8STRING_push_str | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509 **,X509 *,int) | | ossl_x509_add_cert_new | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509 **,stack_st_X509 *,int) | | ossl_x509_add_certs_new | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509 *,ASIdentifiers *,int) | | X509v3_asid_validate_resource_set | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509 *,X509 *,int) | | X509_add_cert | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509 *,stack_st_X509 *,int) | | X509_add_certs | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (uint8_t[56],const gf,int) | | gf_serialize | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned int,int,int) | | ossl_blob_length | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 2 | +| atl.cpp:927:17:927:25 | CopyChars | (void *,const char *,int) | | CRYPTO_secure_free | 1 | +| atl.cpp:927:17:927:25 | CopyChars | (void *,const char *,int) | | CRYPTO_secure_free | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (BIGNUM *,const BIGNUM *,const BIGNUM *,int) | | ossl_rsa_check_pminusq_diff | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIGNUM *,int,int,int) | | BN_bntest_rand | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIGNUM *,int,int,int) | | BN_priv_rand | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIGNUM *,int,int,int) | | BN_pseudo_rand | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIGNUM *,int,int,int) | | BN_rand | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,CMS_ContentInfo *,BIO *,int) | | PEM_write_bio_CMS_stream | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,CMS_ContentInfo *,BIO *,int) | | SMIME_write_CMS | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,CMS_ContentInfo *,BIO *,int) | | i2d_CMS_bio_stream | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,PKCS7 *,BIO *,int) | | PEM_write_bio_PKCS7_stream | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,PKCS7 *,BIO *,int) | | SMIME_write_PKCS7 | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,PKCS7 *,BIO *,int) | | i2d_PKCS7_bio_stream | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,X509_EXTENSION *,unsigned long,int) | | X509V3_EXT_print | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,const char *,const OCSP_REQUEST *,int) | | OCSP_sendreq_new | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,const unsigned char *,long,int) | | ASN1_parse | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,int,const ASN1_TYPE *,int) | | ossl_print_attribute_value | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (BIO *,void *,int,int) | | app_http_tls_cb | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (CERT *,const int *,size_t,int) | | tls1_set_sigalgs | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (CERT *,const uint16_t *,size_t,int) | | tls1_set_raw_sigalgs | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (DH *,OSSL_PARAM_BLD *,OSSL_PARAM[],int) | | ossl_dh_key_todata | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (DSO *,const char *,DSO_METHOD *,int) | | DSO_load | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (ENGINE *,const char *,const char *,int) | | ENGINE_ctrl_cmd_string | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (ENGINE *,const char *,const char *,int) | | ENGINE_ctrl_cmd_string | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (ENGINE_TABLE **,int,const char *,int) | | ossl_engine_table_select | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (ENGINE_TABLE **,int,const char *,int) | | ossl_engine_table_select | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (EVP_PKEY_CTX *,const char *,int,int) | | app_keygen | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FFC_PARAMS *,const unsigned char *,size_t,int) | | ossl_ffc_params_set_validate_params | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (FILE *,lemon *,int *,int) | | print_stack_union | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (Jim_Interp *,Jim_Obj *,Jim_Obj **,int) | | Jim_SubstObj | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (Jim_Interp *,Jim_Obj *,Jim_Obj *,int) | | Jim_ScanString | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_AppendString | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_AppendString | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_ListJoin | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_ListJoin | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (OSSL_CMP_CTX *,const OSSL_CMP_MSG *,ossl_cmp_allow_unprotected_cb_t,int) | | ossl_cmp_msg_check_update | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,const OSSL_CRMF_CERTID *,int) | | ossl_cmp_rp_new | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (OSSL_LIB_CTX *,const char *,OSSL_PARAM *,int) | | OSSL_PROVIDER_try_load_ex | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,int) | | ossl_param_build_set_int | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,int) | | ossl_param_build_set_int | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (RSA *,OSSL_PARAM_BLD *,OSSL_PARAM[],int) | | ossl_rsa_todata | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (SIPHASH *,const unsigned char *,int,int) | | SipHash_Init | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (SLH_DSA_KEY *,const OSSL_PARAM *,const OSSL_PARAM[],int) | | ossl_slh_dsa_key_fromdata | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (SSL *,SSL_CTX *,const SSL_METHOD *,int) | | ossl_ssl_init | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (SSL_CONNECTION *,WPACKET *,CERT_PKEY *,int) | | ssl3_output_cert_chain | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (SSL_CONNECTION *,stack_st_X509 *,X509 *,int) | | ssl_security_cert_chain | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (SXNET **,ASN1_INTEGER *,const char *,int) | | SXNET_add_id_INTEGER | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (SXNET **,ASN1_INTEGER *,const char *,int) | | SXNET_add_id_INTEGER | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (SXNET **,const char *,const char *,int) | | SXNET_add_id_asc | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (SXNET **,const char *,const char *,int) | | SXNET_add_id_asc | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (SXNET **,unsigned long,const char *,int) | | SXNET_add_id_ulong | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (SXNET **,unsigned long,const char *,int) | | SXNET_add_id_ulong | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (TS_RESP_CTX *,int,int,int) | | TS_RESP_CTX_set_accuracy | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (UI *,UI_STRING *,const char *,int) | | UI_set_result_ex | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (UI *,UI_STRING *,const char *,int) | | UI_set_result_ex | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (X509_NAME *,const X509_NAME_ENTRY *,int,int) | | X509_NAME_add_entry | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (X509_NAME_ENTRY *,int,const unsigned char *,int) | | X509_NAME_ENTRY_set_data | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (X509_STORE_CTX *,int,int,int) | | X509_STORE_CTX_purpose_inherit | 3 | | atl.cpp:928:17:928:25 | CopyChars | (XCHAR *,size_t,const XCHAR *,int) | CSimpleStringT | CopyChars | 0 | | atl.cpp:928:17:928:25 | CopyChars | (XCHAR *,size_t,const XCHAR *,int) | CSimpleStringT | CopyChars | 1 | | atl.cpp:928:17:928:25 | CopyChars | (XCHAR *,size_t,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | | atl.cpp:928:17:928:25 | CopyChars | (XCHAR *,size_t,const XCHAR *,int) | CSimpleStringT | CopyChars | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (char *,int,const ASN1_OBJECT *,int) | | OBJ_obj2txt | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const DH *,unsigned char **,size_t,int) | | ossl_dh_key2buf | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const EVP_MD *,const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_v2_new_init | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const X509_NAME *,const ASN1_OBJECT *,char *,int) | | X509_NAME_get_text_by_OBJ | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const X509_NAME *,int,char *,int) | | X509_NAME_get_text_by_NID | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,BIO *,BIO *,int) | | X509_CRL_load_http | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,BIO *,BIO *,int) | | X509_load_http | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,int,int,int) | | append_str | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,size_t,const char *,int) | | CRYPTO_strndup | 1 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,size_t,const char *,int) | | CRYPTO_strndup | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,size_t,const char *,int) | | CRYPTO_strndup | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,sqlite3_filename,const char *,int) | | sqlite3_uri_boolean | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (const char *,sqlite3_filename,const char *,int) | | sqlite3_uri_boolean | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const unsigned char *,unsigned char *,RC2_KEY *,int) | | RC2_ecb_encrypt | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const unsigned char *,unsigned char *,const BF_KEY *,int) | | BF_ecb_encrypt | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const unsigned char *,unsigned char *,const CAST_KEY *,int) | | CAST_ecb_encrypt | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int) | | SEED_ecb_encrypt | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (const void *,size_t,const char *,int) | | CRYPTO_memdup | 1 | +| atl.cpp:928:17:928:25 | CopyChars | (const void *,size_t,const char *,int) | | CRYPTO_memdup | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (const void *,size_t,const char *,int) | | CRYPTO_memdup | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (int,ENGINE *,const unsigned char *,int) | | EVP_PKEY_new_mac_key | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (int,int *,int *,int) | | sqlite3_status | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (int,int,const unsigned char *,int) | | PKCS5_pbe_set | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (int,sqlite3_int64 *,sqlite3_int64 *,int) | | sqlite3_status64 | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (sqlite3_blob *,const void *,int,int) | | sqlite3_blob_write | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (sqlite3_blob *,void *,int,int) | | sqlite3_blob_read | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (stack_st_PKCS12_SAFEBAG **,int,const unsigned char *,int) | | PKCS12_add_secret | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (uint8_t *,unsigned char *,uint64_t,int) | | ossl_quic_vlint_encode_n | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int) | | CMS_SharedInfo_encode | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned char *,int,const char *,int) | | a2d_ASN1_OBJECT | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned char *,int,const char *,int) | | a2d_ASN1_OBJECT | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_type_1 | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_type_2 | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_X931 | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_none | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned long *,unsigned long *,unsigned long *,int) | | bn_mul_low_normal | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (unsigned long,BIGNUM *,BIGNUM *,int) | | BN_consttime_swap | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (void *,const ASN1_ITEM *,int,int) | | PKCS12_item_pack_safebag | 3 | +| atl.cpp:928:17:928:25 | CopyChars | (void *,size_t,const char *,int) | | CRYPTO_secure_clear_free | 1 | +| atl.cpp:928:17:928:25 | CopyChars | (void *,size_t,const char *,int) | | CRYPTO_secure_clear_free | 2 | +| atl.cpp:928:17:928:25 | CopyChars | (void *,size_t,const char *,int) | | CRYPTO_secure_clear_free | 3 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_OCTET_STRING **,const unsigned char *,int) | | ossl_cmp_asn1_octet_string_set1_bytes | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_OCTET_STRING *,const unsigned char *,int) | | ASN1_OCTET_STRING_set | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_STRING *,const void *,int) | | ASN1_STRING_set | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_STRING *,void *,int) | | ASN1_STRING_set0 | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_TIME *,tm *,int) | | ossl_asn1_time_from_tm | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_TYPE *,unsigned char *,int) | | ASN1_TYPE_set_octetstring | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_item_embed_free | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_primitive_free | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIGNUM *,const BIGNUM *,int) | | BN_lshift | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIGNUM *,const BIGNUM *,int) | | BN_rshift | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIGNUM *,const BIGNUM *,int) | | BN_with_flags | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIGNUM *,const BIGNUM *,int) | | bn_lshift_fixed_top | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIGNUM *,const BIGNUM *,int) | | bn_rshift_fixed_top | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIGNUM *,const unsigned long *,int) | | bn_set_static_words | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIGNUM *,const unsigned long *,int) | | bn_set_words | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIO *,BIO *,int) | | OSSL_HTTP_REQ_CTX_new | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIO *,BIO *,int) | | SMIME_crlf_copy | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIO *,GENERAL_NAMES *,int) | | OSSL_GENERAL_NAMES_print | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIO *,char *,int) | | BIO_get_line | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIO *,const DSA *,int) | | DSA_print | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (BIO *,const RSA *,int) | | RSA_print | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (CERT *,X509_STORE **,int) | | ssl_cert_get_cert_store | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (CRYPTO_THREAD_ROUTINE,void *,int) | | ossl_crypto_thread_native_start | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (DH *,const OSSL_PARAM[],int) | | ossl_dh_key_fromdata | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (DSA *,const OSSL_PARAM[],int) | | ossl_dsa_key_fromdata | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ECX_KEY *,const OSSL_PARAM[],int) | | ossl_ecx_key_fromdata | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EC_KEY *,const OSSL_PARAM[],int) | | ossl_ec_key_fromdata | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (ENGINE *,ENGINE_DYNAMIC_ID,int) | | engine_add_dynamic_id | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_export_to_provider | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_find_operation_cache | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY *,EVP_PKEY *,int) | | evp_keymgmt_util_copy | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,EVP_PKEY *,int) | | EVP_PKEY_derive_set_peer_ex | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const char *,int) | | EVP_PKEY_CTX_set1_pbe_pass | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const char *,int) | | EVP_PKEY_CTX_set1_pbe_pass | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_hkdf_info | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_tls1_prf_seed | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_key | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_salt | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_scrypt_salt | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_tls1_prf_secret | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set_mac_key | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FILE *,const DSA *,int) | | DSA_print_fp | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FILE *,const RSA *,int) | | RSA_print_fp | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (FILE *,rule *,int) | | RulePrint | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,Jim_Obj *,int) | | Jim_ListGetIndex | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,Jim_Obj *,int) | | Jim_UnsetVariable | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewDictObj | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewListObj | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,char *,int) | | Jim_NewStringObjNoAlloc | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,const char *,int) | | Jim_GetGlobalVariableStr | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,const char *,int) | | Jim_GetGlobalVariableStr | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,const char *,int) | | Jim_GetVariableStr | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,const char *,int) | | Jim_GetVariableStr | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,const char *,int) | | Jim_MakeTempFile | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,const char *,int) | | Jim_MakeTempFile | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,const char *,int) | | Jim_NewStringObj | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,const char *,int) | | Jim_NewStringObj | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,const char *,int) | | Jim_NewStringObjUtf8 | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (Jim_Interp *,const char *,int) | | Jim_NewStringObjUtf8 | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_BASICRESP *,OCSP_CERTID *,int) | | OCSP_resp_find | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_BASICRESP *,X509_EXTENSION *,int) | | OCSP_BASICRESP_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_BASICRESP *,const ASN1_OBJECT *,int) | | OCSP_BASICRESP_get_ext_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_critical | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_ONEREQ *,X509_EXTENSION *,int) | | OCSP_ONEREQ_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_ONEREQ *,const ASN1_OBJECT *,int) | | OCSP_ONEREQ_get_ext_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_critical | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_REQUEST *,X509_EXTENSION *,int) | | OCSP_REQUEST_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_REQUEST *,const ASN1_OBJECT *,int) | | OCSP_REQUEST_get_ext_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_critical | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_SINGLERESP *,X509_EXTENSION *,int) | | OCSP_SINGLERESP_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_SINGLERESP *,const ASN1_OBJECT *,int) | | OCSP_SINGLERESP_get_ext_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_critical | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OPENSSL_STACK *,const void *,int) | | OPENSSL_sk_insert | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_referenceValue | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_secretValue | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_CMP_CTX *,int,int) | | OSSL_CMP_CTX_set_option | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | EC_GROUP_new_by_curve_name_ex | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | EC_GROUP_new_by_curve_name_ex | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | EC_KEY_new_by_curve_name_ex | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | EC_KEY_new_by_curve_name_ex | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | OSSL_PROVIDER_try_load | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | OSSL_PROVIDER_try_load | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_dsa_key_new | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_dsa_key_new | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_kem_key_new | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_kem_key_new | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | ossl_parse_query | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | ossl_parse_query | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_name | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_name | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_value | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_value | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_PROVIDER *,OSSL_PROVIDER **,int) | | ossl_provider_add_to_store | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int) | | ossl_qrl_enc_level_set_get | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (PKCS7 *,stack_st_X509 *,int) | | PKCS7_get0_signers | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (POLICYINFO *,const ASN1_OBJECT *,int) | | ossl_policy_data_new | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (PROV_CTX *,const char *,int) | | ossl_prov_ctx_get_bool_param | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (PROV_CTX *,const char *,int) | | ossl_prov_ctx_get_bool_param | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (PROV_CTX *,const char *,int) | | ossl_prov_ml_dsa_new | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (PROV_CTX *,const char *,int) | | ossl_prov_ml_dsa_new | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (PROV_CTX *,const char *,int) | | ossl_prov_ml_kem_new | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (PROV_CTX *,const char *,int) | | ossl_prov_ml_kem_new | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL *,SSL *,int) | | create_ssl_connection | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL *,const void *,int) | | SSL_write | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL *,void *,int) | | SSL_peek | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL *,void *,int) | | SSL_read | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL *,void *,int) | | SSL_set_session_ticket_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL_CIPHER *,const SSL_CIPHER *,int) | | OBJ_bsearch_ssl_cipher_id | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL_CONNECTION *,PACKET *,int) | | ssl_cache_cipherlist | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL_CONNECTION *,WPACKET *,int) | | dtls1_close_construct_packet | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL_CONNECTION *,WPACKET *,int) | | dtls1_set_handshake_header | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL_CONNECTION *,WPACKET *,int) | | tls_close_construct_packet | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL_CONNECTION *,int,int) | | ssl3_send_alert | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (TS_MSG_IMPRINT *,unsigned char *,int) | | TS_MSG_IMPRINT_set_msg | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (TS_REQ *,X509_EXTENSION *,int) | | TS_REQ_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (TS_REQ *,const ASN1_OBJECT *,int) | | TS_REQ_get_ext_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_critical | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (TS_TST_INFO *,X509_EXTENSION *,int) | | TS_TST_INFO_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (TS_TST_INFO *,const ASN1_OBJECT *,int) | | TS_TST_INFO_get_ext_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_critical | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (X509 *,X509_EXTENSION *,int) | | X509_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (X509 *,int,int) | | X509_check_purpose | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (X509 *,int,int) | | X509_check_trust | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (X509_CRL *,X509_EXTENSION *,int) | | X509_CRL_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (X509_PUBKEY *,unsigned char *,int) | | X509_PUBKEY_set0_public_key | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (X509_REVOKED *,X509_EXTENSION *,int) | | X509_REVOKED_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 0 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 0 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (action *,FILE *,int) | | PrintAction | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (acttab *,int,int) | | acttab_action | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const BIGNUM *,unsigned char *,int) | | BN_bn2lebinpad | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const BIGNUM *,unsigned char *,int) | | BN_bn2nativepad | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2bin | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2lebin | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2native | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const CMS_ContentInfo *,BIO *,int) | | ossl_cms_DigestedData_do_final | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_signed_get_attr_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_unsigned_get_attr_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const CMS_SignerInfo *,int,int) | | CMS_signed_get_attr_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const CMS_SignerInfo *,int,int) | | CMS_unsigned_get_attr_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const EVP_MD *,const EVP_MD *,int) | | ossl_rsa_pss_params_create | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const EVP_PKEY *,const ASN1_OBJECT *,int) | | EVP_PKEY_get_attr_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const EVP_PKEY *,int,int) | | EVP_PKEY_get_attr_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const OSSL_PARAM *,BIO *,int) | | OSSL_PARAM_print_to_bio | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const OSSL_PROVIDER *,const char *,int) | | OSSL_PROVIDER_conf_get_bool | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const OSSL_PROVIDER *,const char *,int) | | OSSL_PROVIDER_conf_get_bool | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const SSL *,char *,int) | | SSL_get_shared_ciphers | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const SSL *,int,int) | | apps_ssl_info_callback | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const SSL_CIPHER *,char *,int) | | SSL_CIPHER_description | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509 *,const ASN1_OBJECT *,int) | | X509_get_ext_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_new_init | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509 *,int,int) | | X509_get_ext_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509 *,int,int) | | X509_get_ext_by_critical | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_ACERT *,const ASN1_OBJECT *,int) | | X509_ACERT_get_attr_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_ACERT *,int,int) | | X509_ACERT_get_attr_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_CRL *,const ASN1_OBJECT *,int) | | X509_CRL_get_ext_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_CRL *,const X509 *,int) | | OSSL_CMP_CRLSTATUS_create | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_critical | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_NAME *,char *,int) | | X509_NAME_oneline | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_NAME *,const ASN1_OBJECT *,int) | | X509_NAME_get_index_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_NAME *,int,int) | | X509_NAME_get_index_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_REQ *,const ASN1_OBJECT *,int) | | X509_REQ_get_attr_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_REQ *,int,int) | | X509_REQ_get_attr_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_REVOKED *,const ASN1_OBJECT *,int) | | X509_REVOKED_get_ext_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,SD *,int) | | sd_load | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | CRYPTO_strdup | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | CRYPTO_strdup | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | sqlite3_strnicmp | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,long *,int) | | Jim_StringToWide | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_NID | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_critical | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (int,int,int) | | ASN1_object_size | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (int,int,int) | | EVP_CIPHER_meth_new | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (regex_t *,const char *,int) | | jim_regcomp | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (regex_t *,const char *,int) | | jim_regcomp | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3 *,int,int) | | sqlite3_limit | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3_context *,const char *,int) | | sqlite3_result_error | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3_context *,const char *,int) | | sqlite3_result_error | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3_context *,const void *,int) | | sqlite3_result_error16 | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3_index_info *,int,int) | | sqlite3_vtab_in | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3_stmt *,int,int) | | sqlite3_bind_int | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3_stmt *,int,int) | | sqlite3_bind_zeroblob | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3_stmt *,int,int) | | sqlite3_stmt_status | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3_str *,const char *,int) | | sqlite3_str_append | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3_str *,const char *,int) | | sqlite3_str_append | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (sqlite3expert *,int,int) | | sqlite3_expert_report | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_ASN1_UTF8STRING *,const char *,int) | | ossl_cmp_sk_ASN1_UTF8STRING_push_str | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_ASN1_UTF8STRING *,const char *,int) | | ossl_cmp_sk_ASN1_UTF8STRING_push_str | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509 **,X509 *,int) | | ossl_x509_add_cert_new | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509 **,stack_st_X509 *,int) | | ossl_x509_add_certs_new | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509 *,ASIdentifiers *,int) | | X509v3_asid_validate_resource_set | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509 *,X509 *,int) | | X509_add_cert | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509 *,stack_st_X509 *,int) | | X509_add_certs | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (uint8_t[56],const gf,int) | | gf_serialize | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned int,int,int) | | ossl_blob_length | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 2 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (void *,const char *,int) | | CRYPTO_secure_free | 1 | +| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (void *,const char *,int) | | CRYPTO_secure_free | 2 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | ASN1_STRING_type_new | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | ASN1_tag2bit | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | ASN1_tag2str | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | EVP_PKEY_asn1_get0 | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | Jim_ReturnCode | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | Jim_SignalId | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | OBJ_nid2ln | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | OBJ_nid2obj | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | OBJ_nid2sn | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | OSSL_STORE_INFO_type_string | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | OSSL_trace_get_category_name | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | PKCS12_init | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | Symbol_Nth | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | X509_PURPOSE_get0 | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | X509_PURPOSE_get_by_id | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | X509_TRUST_get0 | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | X509_TRUST_get_by_id | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | ossl_cmp_bodytype_to_string | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | ossl_tolower | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | ossl_toupper | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | pulldown_test_framework | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | sqlite3_compileoption_get | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | sqlite3_errstr | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | tls1_alert_code | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | tls13_alert_code | 0 | +| atl.cpp:931:11:931:15 | GetAt | (int) | | wait_until_sock_readable | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | ASN1_STRING_type_new | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | ASN1_tag2bit | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | ASN1_tag2str | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | EVP_PKEY_asn1_get0 | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | Jim_ReturnCode | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | Jim_SignalId | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | OBJ_nid2ln | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | OBJ_nid2obj | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | OBJ_nid2sn | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | OSSL_STORE_INFO_type_string | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | OSSL_trace_get_category_name | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | PKCS12_init | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | Symbol_Nth | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | X509_PURPOSE_get0 | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | X509_PURPOSE_get_by_id | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | X509_TRUST_get0 | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | X509_TRUST_get_by_id | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | ossl_cmp_bodytype_to_string | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | ossl_tolower | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | ossl_toupper | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | pulldown_test_framework | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | sqlite3_compileoption_get | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | sqlite3_errstr | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | tls1_alert_code | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | tls13_alert_code | 0 | +| atl.cpp:932:11:932:19 | GetBuffer | (int) | | wait_until_sock_readable | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ASN1_STRING_type_new | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ASN1_tag2bit | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ASN1_tag2str | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | EVP_PKEY_asn1_get0 | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | Jim_ReturnCode | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | Jim_SignalId | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | OBJ_nid2ln | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | OBJ_nid2obj | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | OBJ_nid2sn | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | OSSL_STORE_INFO_type_string | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | OSSL_trace_get_category_name | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | PKCS12_init | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | Symbol_Nth | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | X509_PURPOSE_get0 | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | X509_PURPOSE_get_by_id | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | X509_TRUST_get0 | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | X509_TRUST_get_by_id | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ossl_cmp_bodytype_to_string | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ossl_tolower | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ossl_toupper | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | pulldown_test_framework | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | sqlite3_compileoption_get | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | sqlite3_errstr | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | tls1_alert_code | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | tls13_alert_code | 0 | +| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | wait_until_sock_readable | 0 | | atl.cpp:938:10:938:14 | SetAt | (XCHAR,XCHAR) | CStringT | Replace | 1 | | atl.cpp:938:10:938:14 | SetAt | (const CStringT &,char) | | operator+ | 1 | | atl.cpp:938:10:938:14 | SetAt | (int,XCHAR) | CStringT | Insert | 0 | | atl.cpp:938:10:938:14 | SetAt | (int,XCHAR) | CStringT | Insert | 1 | +| atl.cpp:939:10:939:18 | SetString | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| atl.cpp:939:10:939:18 | SetString | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIGNUM *,int) | | BN_clear_bit | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIGNUM *,int) | | BN_mask_bits | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIGNUM *,int) | | BN_set_bit | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIGNUM *,int) | | BN_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIGNUM *,int) | | bn_expand2 | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIGNUM *,int) | | bn_wexpand | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIO *,int) | | BIO_clear_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIO *,int) | | BIO_find_type | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIO *,int) | | BIO_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIO *,int) | | BIO_set_init | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIO *,int) | | BIO_set_retry_reason | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIO *,int) | | BIO_set_shutdown | 1 | +| atl.cpp:939:10:939:18 | SetString | (BIO *,int) | | TXT_DB_read | 1 | +| atl.cpp:939:10:939:18 | SetString | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (DH *,int) | | DH_clear_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (DH *,int) | | DH_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (DSA *,int) | | DSA_clear_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (DSA *,int) | | DSA_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| atl.cpp:939:10:939:18 | SetString | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| atl.cpp:939:10:939:18 | SetString | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| atl.cpp:939:10:939:18 | SetString | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| atl.cpp:939:10:939:18 | SetString | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| atl.cpp:939:10:939:18 | SetString | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| atl.cpp:939:10:939:18 | SetString | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| atl.cpp:939:10:939:18 | SetString | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| atl.cpp:939:10:939:18 | SetString | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | atl.cpp:939:10:939:18 | SetString | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| atl.cpp:939:10:939:18 | SetString | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| atl.cpp:939:10:939:18 | SetString | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| atl.cpp:939:10:939:18 | SetString | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| atl.cpp:939:10:939:18 | SetString | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| atl.cpp:939:10:939:18 | SetString | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| atl.cpp:939:10:939:18 | SetString | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| atl.cpp:939:10:939:18 | SetString | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| atl.cpp:939:10:939:18 | SetString | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| atl.cpp:939:10:939:18 | SetString | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| atl.cpp:939:10:939:18 | SetString | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| atl.cpp:939:10:939:18 | SetString | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| atl.cpp:939:10:939:18 | SetString | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| atl.cpp:939:10:939:18 | SetString | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| atl.cpp:939:10:939:18 | SetString | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| atl.cpp:939:10:939:18 | SetString | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| atl.cpp:939:10:939:18 | SetString | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| atl.cpp:939:10:939:18 | SetString | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| atl.cpp:939:10:939:18 | SetString | (RSA *,int) | | RSA_clear_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (RSA *,int) | | RSA_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| atl.cpp:939:10:939:18 | SetString | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| atl.cpp:939:10:939:18 | SetString | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| atl.cpp:939:10:939:18 | SetString | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL *,int) | | SSL_key_update | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL *,int) | | SSL_set_purpose | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL *,int) | | SSL_set_read_ahead | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL *,int) | | SSL_set_security_level | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL *,int) | | SSL_set_shutdown | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL *,int) | | SSL_set_trust | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL *,int) | | SSL_set_verify_depth | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_CTX *,int) | | ssl_md | 1 | +| atl.cpp:939:10:939:18 | SetString | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| atl.cpp:939:10:939:18 | SetString | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| atl.cpp:939:10:939:18 | SetString | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509 *,int) | | X509_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509 *,int) | | X509_self_signed | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| atl.cpp:939:10:939:18 | SetString | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:939:10:939:18 | SetString | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:939:10:939:18 | SetString | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:939:10:939:18 | SetString | (char,int) | CStringT | CStringT | 1 | +| atl.cpp:939:10:939:18 | SetString | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| atl.cpp:939:10:939:18 | SetString | (const BIGNUM *,int) | | BN_get_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| atl.cpp:939:10:939:18 | SetString | (const BIO *,int) | | BIO_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const BIO *,int) | | BIO_test_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const DH *,int) | | DH_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const DH *,int) | | DH_test_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (const DH *,int) | | ossl_dh_dup | 1 | +| atl.cpp:939:10:939:18 | SetString | (const DSA *,int) | | DSA_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const DSA *,int) | | DSA_test_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (const DSA *,int) | | ossl_dsa_dup | 1 | +| atl.cpp:939:10:939:18 | SetString | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| atl.cpp:939:10:939:18 | SetString | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| atl.cpp:939:10:939:18 | SetString | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| atl.cpp:939:10:939:18 | SetString | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| atl.cpp:939:10:939:18 | SetString | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| atl.cpp:939:10:939:18 | SetString | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| atl.cpp:939:10:939:18 | SetString | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| atl.cpp:939:10:939:18 | SetString | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| atl.cpp:939:10:939:18 | SetString | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| atl.cpp:939:10:939:18 | SetString | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| atl.cpp:939:10:939:18 | SetString | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| atl.cpp:939:10:939:18 | SetString | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| atl.cpp:939:10:939:18 | SetString | (const RSA *,int) | | RSA_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const RSA *,int) | | RSA_test_flags | 1 | +| atl.cpp:939:10:939:18 | SetString | (const RSA *,int) | | ossl_rsa_dup | 1 | +| atl.cpp:939:10:939:18 | SetString | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| atl.cpp:939:10:939:18 | SetString | (const SSL *,int) | | SSL_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| atl.cpp:939:10:939:18 | SetString | (const UI *,int) | | UI_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509 *,int) | | X509_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509 *,int) | | X509_get_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| atl.cpp:939:10:939:18 | SetString | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | atl.cpp:939:10:939:18 | SetString | (const XCHAR *,int) | CStringT | CStringT | 1 | | atl.cpp:939:10:939:18 | SetString | (const YCHAR *,int) | CStringT | CStringT | 1 | +| atl.cpp:939:10:939:18 | SetString | (const char *,int) | | DH_meth_new | 1 | +| atl.cpp:939:10:939:18 | SetString | (const char *,int) | | DSA_meth_new | 1 | +| atl.cpp:939:10:939:18 | SetString | (const char *,int) | | Jim_StrDupLen | 1 | +| atl.cpp:939:10:939:18 | SetString | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| atl.cpp:939:10:939:18 | SetString | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:939:10:939:18 | SetString | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:939:10:939:18 | SetString | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| atl.cpp:939:10:939:18 | SetString | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| atl.cpp:939:10:939:18 | SetString | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:939:10:939:18 | SetString | (int *,int) | | X509_PURPOSE_set | 1 | +| atl.cpp:939:10:939:18 | SetString | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:939:10:939:18 | SetString | (int,int) | | BN_security_bits | 1 | +| atl.cpp:939:10:939:18 | SetString | (int,int) | | EVP_MD_meth_new | 1 | +| atl.cpp:939:10:939:18 | SetString | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:939:10:939:18 | SetString | (int,int) | | acttab_alloc | 1 | +| atl.cpp:939:10:939:18 | SetString | (rule *,int) | | Configlist_add | 1 | +| atl.cpp:939:10:939:18 | SetString | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| atl.cpp:939:10:939:18 | SetString | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| atl.cpp:939:10:939:18 | SetString | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| atl.cpp:939:10:939:18 | SetString | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| atl.cpp:939:10:939:18 | SetString | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| atl.cpp:939:10:939:18 | SetString | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:939:10:939:18 | SetString | (uint16_t,int) | | tls1_group_id2nid | 1 | +| atl.cpp:939:10:939:18 | SetString | (unsigned char *,int) | | RAND_bytes | 1 | +| atl.cpp:939:10:939:18 | SetString | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| atl.cpp:939:10:939:18 | SetString | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| atl.cpp:939:10:939:18 | SetString | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| atl.cpp:939:10:939:18 | SetString | (void *,int) | | DSO_dsobyaddr | 1 | +| atl.cpp:939:10:939:18 | SetString | (void *,int) | | sqlite3_realloc | 1 | | atl.cpp:939:10:939:18 | SetString | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:940:10:940:18 | SetString | (PCXSTR) | | operator+= | 0 | | atl.cpp:940:10:940:18 | SetString | (PCXSTR) | CSimpleStringT | operator+= | 0 | | atl.cpp:940:10:940:18 | SetString | (PCXSTR) | CStringT | operator= | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | ASN1_STRING_type_new | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | ASN1_tag2bit | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | ASN1_tag2str | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | EVP_PKEY_asn1_get0 | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | Jim_ReturnCode | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | Jim_SignalId | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | OBJ_nid2ln | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | OBJ_nid2obj | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | OBJ_nid2sn | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | OSSL_STORE_INFO_type_string | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | OSSL_trace_get_category_name | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | PKCS12_init | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | Symbol_Nth | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | X509_PURPOSE_get0 | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | X509_PURPOSE_get_by_id | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | X509_TRUST_get0 | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | X509_TRUST_get_by_id | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | ossl_tolower | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | ossl_toupper | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | pulldown_test_framework | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | sqlite3_compileoption_get | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | sqlite3_errstr | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | tls1_alert_code | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | tls13_alert_code | 0 | +| atl.cpp:942:11:942:20 | operator[] | (int) | | wait_until_sock_readable | 0 | | atl.cpp:1036:5:1036:12 | CStringT | (const VARIANT &) | | operator+= | 0 | | atl.cpp:1036:5:1036:12 | CStringT | (const VARIANT &) | CStringT | CStringT | 0 | | atl.cpp:1036:5:1036:12 | CStringT | (const VARIANT &) | CStringT | operator= | 0 | @@ -196,19 +2702,591 @@ signatureMatches | atl.cpp:1043:5:1043:12 | CStringT | (PCXSTR,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 1 | | atl.cpp:1043:5:1043:12 | CStringT | (const VARIANT &,IAtlStringMgr *) | CStringT | CStringT | 1 | | atl.cpp:1043:5:1043:12 | CStringT | (const unsigned char *,IAtlStringMgr *) | CStringT | CStringT | 1 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | SRP_VBASE_new | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | defossilize | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | make_uppercase | 0 | +| atl.cpp:1045:5:1045:12 | CStringT | (char *) | | next_item | 0 | | atl.cpp:1045:5:1045:12 | CStringT | (char *) | CStringT | CStringT | 0 | | atl.cpp:1046:5:1046:12 | CStringT | (unsigned char *) | CStringT | CStringT | 0 | | atl.cpp:1047:5:1047:12 | CStringT | (wchar_t *) | CStringT | CStringT | 0 | +| atl.cpp:1049:5:1049:12 | CStringT | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIGNUM *,int) | | BN_clear_bit | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIGNUM *,int) | | BN_mask_bits | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIGNUM *,int) | | BN_set_bit | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIGNUM *,int) | | BN_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIGNUM *,int) | | bn_expand2 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIGNUM *,int) | | bn_wexpand | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIO *,int) | | BIO_clear_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIO *,int) | | BIO_find_type | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIO *,int) | | BIO_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIO *,int) | | BIO_set_init | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIO *,int) | | BIO_set_retry_reason | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIO *,int) | | BIO_set_shutdown | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (BIO *,int) | | TXT_DB_read | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (DH *,int) | | DH_clear_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (DH *,int) | | DH_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (DSA *,int) | | DSA_clear_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (DSA *,int) | | DSA_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (RSA *,int) | | RSA_clear_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (RSA *,int) | | RSA_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL *,int) | | SSL_key_update | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL *,int) | | SSL_set_purpose | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL *,int) | | SSL_set_read_ahead | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL *,int) | | SSL_set_security_level | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL *,int) | | SSL_set_shutdown | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL *,int) | | SSL_set_trust | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL *,int) | | SSL_set_verify_depth | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_CTX *,int) | | ssl_md | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509 *,int) | | X509_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509 *,int) | | X509_self_signed | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (char,int) | CStringT | CStringT | 0 | | atl.cpp:1049:5:1049:12 | CStringT | (char,int) | CStringT | CStringT | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const BIGNUM *,int) | | BN_get_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const BIO *,int) | | BIO_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const BIO *,int) | | BIO_test_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const DH *,int) | | DH_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const DH *,int) | | DH_test_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const DH *,int) | | ossl_dh_dup | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const DSA *,int) | | DSA_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const DSA *,int) | | DSA_test_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const DSA *,int) | | ossl_dsa_dup | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const RSA *,int) | | RSA_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const RSA *,int) | | RSA_test_flags | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const RSA *,int) | | ossl_rsa_dup | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const SSL *,int) | | SSL_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const UI *,int) | | UI_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509 *,int) | | X509_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509 *,int) | | X509_get_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (const XCHAR *,int) | CStringT | CStringT | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (const YCHAR *,int) | CStringT | CStringT | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | DH_meth_new | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | DSA_meth_new | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | Jim_StrDupLen | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (int *,int) | | X509_PURPOSE_set | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | BN_security_bits | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | EVP_MD_meth_new | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (int,int) | | acttab_alloc | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (rule *,int) | | Configlist_add | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (uint16_t,int) | | tls1_group_id2nid | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (unsigned char *,int) | | RAND_bytes | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (void *,int) | | DSO_dsobyaddr | 1 | +| atl.cpp:1049:5:1049:12 | CStringT | (void *,int) | | sqlite3_realloc | 1 | | atl.cpp:1049:5:1049:12 | CStringT | (wchar_t,int) | CStringT | CStringT | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIGNUM *,int) | | BN_clear_bit | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIGNUM *,int) | | BN_mask_bits | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIGNUM *,int) | | BN_set_bit | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIGNUM *,int) | | BN_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIGNUM *,int) | | bn_expand2 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIGNUM *,int) | | bn_wexpand | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIO *,int) | | BIO_clear_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIO *,int) | | BIO_find_type | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIO *,int) | | BIO_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIO *,int) | | BIO_set_init | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIO *,int) | | BIO_set_retry_reason | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIO *,int) | | BIO_set_shutdown | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (BIO *,int) | | TXT_DB_read | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (DH *,int) | | DH_clear_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (DH *,int) | | DH_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (DSA *,int) | | DSA_clear_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (DSA *,int) | | DSA_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (RSA *,int) | | RSA_clear_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (RSA *,int) | | RSA_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL *,int) | | SSL_key_update | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL *,int) | | SSL_set_purpose | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL *,int) | | SSL_set_read_ahead | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL *,int) | | SSL_set_security_level | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL *,int) | | SSL_set_shutdown | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL *,int) | | SSL_set_trust | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL *,int) | | SSL_set_verify_depth | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_CTX *,int) | | ssl_md | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509 *,int) | | X509_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509 *,int) | | X509_self_signed | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (char,int) | CStringT | CStringT | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const BIGNUM *,int) | | BN_get_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const BIO *,int) | | BIO_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const BIO *,int) | | BIO_test_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const DH *,int) | | DH_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const DH *,int) | | DH_test_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const DH *,int) | | ossl_dh_dup | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const DSA *,int) | | DSA_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const DSA *,int) | | DSA_test_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const DSA *,int) | | ossl_dsa_dup | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const RSA *,int) | | RSA_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const RSA *,int) | | RSA_test_flags | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const RSA *,int) | | ossl_rsa_dup | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const SSL *,int) | | SSL_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const UI *,int) | | UI_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509 *,int) | | X509_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509 *,int) | | X509_get_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (const XCHAR *,int) | CStringT | CStringT | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (const YCHAR *,int) | CStringT | CStringT | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | DH_meth_new | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | DSA_meth_new | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | Jim_StrDupLen | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (int *,int) | | X509_PURPOSE_set | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | BN_security_bits | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | EVP_MD_meth_new | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (int,int) | | acttab_alloc | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (rule *,int) | | Configlist_add | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (uint16_t,int) | | tls1_group_id2nid | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (unsigned char *,int) | | RAND_bytes | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (void *,int) | | DSO_dsobyaddr | 1 | +| atl.cpp:1050:5:1050:12 | CStringT | (void *,int) | | sqlite3_realloc | 1 | | atl.cpp:1050:5:1050:12 | CStringT | (wchar_t,int) | CStringT | CStringT | 0 | | atl.cpp:1050:5:1050:12 | CStringT | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:1061:10:1061:21 | AppendFormat | (PCXSTR,...) | CStringT | AppendFormat | 0 | @@ -236,12 +3314,330 @@ signatureMatches | atl.cpp:1071:9:1071:14 | Insert | (XCHAR,XCHAR) | CStringT | Replace | 1 | | atl.cpp:1071:9:1071:14 | Insert | (int,XCHAR) | CStringT | Insert | 0 | | atl.cpp:1071:9:1071:14 | Insert | (int,XCHAR) | CStringT | Insert | 1 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | ASN1_STRING_type_new | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | ASN1_tag2bit | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | ASN1_tag2str | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | EVP_PKEY_asn1_get0 | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | Jim_ReturnCode | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | Jim_SignalId | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | OBJ_nid2ln | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | OBJ_nid2obj | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | OBJ_nid2sn | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | OSSL_STORE_INFO_type_string | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | OSSL_trace_get_category_name | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | PKCS12_init | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | Symbol_Nth | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | X509_PURPOSE_get0 | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | X509_PURPOSE_get_by_id | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | X509_TRUST_get0 | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | X509_TRUST_get_by_id | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | ossl_cmp_bodytype_to_string | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | ossl_tolower | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | ossl_toupper | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | pulldown_test_framework | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | sqlite3_compileoption_get | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | sqlite3_errstr | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | tls1_alert_code | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | tls13_alert_code | 0 | +| atl.cpp:1072:14:1072:17 | Left | (int) | | wait_until_sock_readable | 0 | | atl.cpp:1075:10:1075:19 | LoadString | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:1075:10:1075:19 | LoadString | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | +| atl.cpp:1075:10:1075:19 | LoadString | (unsigned int) | | Jim_IntHashFunction | 0 | +| atl.cpp:1075:10:1075:19 | LoadString | (unsigned int) | | ssl3_get_cipher | 0 | +| atl.cpp:1079:14:1079:16 | Mid | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIGNUM *,int) | | BN_clear_bit | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIGNUM *,int) | | BN_mask_bits | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIGNUM *,int) | | BN_set_bit | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIGNUM *,int) | | BN_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIGNUM *,int) | | bn_expand2 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIGNUM *,int) | | bn_wexpand | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIO *,int) | | BIO_clear_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIO *,int) | | BIO_find_type | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIO *,int) | | BIO_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIO *,int) | | BIO_set_init | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIO *,int) | | BIO_set_retry_reason | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIO *,int) | | BIO_set_shutdown | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (BIO *,int) | | TXT_DB_read | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (DH *,int) | | DH_clear_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (DH *,int) | | DH_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (DSA *,int) | | DSA_clear_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (DSA *,int) | | DSA_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | atl.cpp:1079:14:1079:16 | Mid | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (RSA *,int) | | RSA_clear_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (RSA *,int) | | RSA_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL *,int) | | SSL_key_update | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL *,int) | | SSL_set_purpose | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL *,int) | | SSL_set_read_ahead | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL *,int) | | SSL_set_security_level | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL *,int) | | SSL_set_shutdown | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL *,int) | | SSL_set_trust | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL *,int) | | SSL_set_verify_depth | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_CTX *,int) | | ssl_md | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509 *,int) | | X509_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509 *,int) | | X509_self_signed | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (acttab *,int) | | acttab_insert | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (char *,int) | | PEM_proc_type | 1 | | atl.cpp:1079:14:1079:16 | Mid | (char,int) | CStringT | CStringT | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const BIGNUM *,int) | | BN_get_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const BIO *,int) | | BIO_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const BIO *,int) | | BIO_test_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const DH *,int) | | DH_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const DH *,int) | | DH_test_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const DH *,int) | | ossl_dh_dup | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const DSA *,int) | | DSA_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const DSA *,int) | | DSA_test_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const DSA *,int) | | ossl_dsa_dup | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const RSA *,int) | | RSA_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const RSA *,int) | | RSA_test_flags | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const RSA *,int) | | ossl_rsa_dup | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const SSL *,int) | | SSL_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const UI *,int) | | UI_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509 *,int) | | X509_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509 *,int) | | X509_get_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | atl.cpp:1079:14:1079:16 | Mid | (const XCHAR *,int) | CStringT | CStringT | 1 | | atl.cpp:1079:14:1079:16 | Mid | (const YCHAR *,int) | CStringT | CStringT | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | DH_meth_new | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | DSA_meth_new | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | Jim_StrDupLen | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | RSA_meth_new | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const char *,int) | | parse_yesno | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (int *,int) | | X509_PURPOSE_set | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (int *,int) | | X509_TRUST_set | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | BN_security_bits | 0 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | BN_security_bits | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | EVP_MD_meth_new | 0 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | EVP_MD_meth_new | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | EVP_PKEY_meth_new | 0 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | EVP_PKEY_meth_new | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | acttab_alloc | 0 | +| atl.cpp:1079:14:1079:16 | Mid | (int,int) | | acttab_alloc | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (rule *,int) | | Configlist_add | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (rule *,int) | | Configlist_addbasis | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (uint16_t,int) | | tls1_group_id2nid | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (unsigned char *,int) | | RAND_bytes | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (void *,int) | | DSO_dsobyaddr | 1 | +| atl.cpp:1079:14:1079:16 | Mid | (void *,int) | | sqlite3_realloc | 1 | | atl.cpp:1079:14:1079:16 | Mid | (wchar_t,int) | CStringT | CStringT | 1 | | atl.cpp:1081:9:1081:15 | Replace | (PCXSTR,PCXSTR) | CStringT | Replace | 0 | | atl.cpp:1081:9:1081:15 | Replace | (PCXSTR,PCXSTR) | CStringT | Replace | 1 | @@ -250,6 +3646,34 @@ signatureMatches | atl.cpp:1082:9:1082:15 | Replace | (XCHAR,XCHAR) | CStringT | Replace | 0 | | atl.cpp:1082:9:1082:15 | Replace | (XCHAR,XCHAR) | CStringT | Replace | 1 | | atl.cpp:1082:9:1082:15 | Replace | (int,XCHAR) | CStringT | Insert | 1 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | ASN1_STRING_type_new | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | ASN1_tag2bit | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | ASN1_tag2str | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | EVP_PKEY_asn1_get0 | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | Jim_ReturnCode | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | Jim_SignalId | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | OBJ_nid2ln | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | OBJ_nid2obj | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | OBJ_nid2sn | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | OSSL_STORE_INFO_type_string | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | OSSL_trace_get_category_name | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | PKCS12_init | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | Symbol_Nth | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | X509_PURPOSE_get0 | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | X509_PURPOSE_get_by_id | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | X509_TRUST_get0 | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | X509_TRUST_get_by_id | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | evp_pkey_type2name | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | ossl_cmp_bodytype_to_string | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | ossl_tolower | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | ossl_toupper | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | pulldown_test_framework | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | sqlite3_compileoption_get | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | sqlite3_errstr | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | tls1_alert_code | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | tls13_alert_code | 0 | +| atl.cpp:1083:14:1083:18 | Right | (int) | | wait_until_sock_readable | 0 | | atl.cpp:1085:14:1085:26 | SpanExcluding | (PCXSTR) | | operator+= | 0 | | atl.cpp:1085:14:1085:26 | SpanExcluding | (PCXSTR) | CSimpleStringT | operator+= | 0 | | atl.cpp:1085:14:1085:26 | SpanExcluding | (PCXSTR) | CStringT | operator= | 0 | @@ -268,23 +3692,1813 @@ signatureMatches | atl.cpp:1095:15:1095:23 | TrimRight | (PCXSTR) | | operator+= | 0 | | atl.cpp:1095:15:1095:23 | TrimRight | (PCXSTR) | CSimpleStringT | operator+= | 0 | | atl.cpp:1095:15:1095:23 | TrimRight | (PCXSTR) | CStringT | operator= | 0 | +| atl.cpp:1231:5:1231:12 | CStrBufT | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | +| atl.cpp:1231:5:1231:12 | CStrBufT | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | +| atl.cpp:1231:5:1231:12 | CStrBufT | (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 2 | +| atl.cpp:1231:5:1231:12 | CStrBufT | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | +| atl.cpp:1231:5:1231:12 | CStrBufT | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | +| atl.cpp:1231:5:1231:12 | CStrBufT | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| atl.cpp:1231:5:1231:12 | CStrBufT | (unsigned char *,int,unsigned long) | | UTF8_putc | 1 | +| atl.cpp:1231:5:1231:12 | CStrBufT | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | +| bsd.cpp:12:5:12:10 | accept | (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_CipherFinal | 2 | +| bsd.cpp:12:5:12:10 | accept | (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_CipherFinal_ex | 2 | +| bsd.cpp:12:5:12:10 | accept | (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_DecryptFinal | 2 | +| bsd.cpp:12:5:12:10 | accept | (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_DecryptFinal_ex | 2 | +| bsd.cpp:12:5:12:10 | accept | (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_EncryptFinal | 2 | +| bsd.cpp:12:5:12:10 | accept | (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_EncryptFinal_ex | 2 | +| bsd.cpp:12:5:12:10 | accept | (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_OpenFinal | 2 | +| bsd.cpp:12:5:12:10 | accept | (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_SealFinal | 2 | +| bsd.cpp:12:5:12:10 | accept | (EVP_ENCODE_CTX *,unsigned char *,int *) | | EVP_DecodeFinal | 2 | +| bsd.cpp:12:5:12:10 | accept | (EVP_ENCODE_CTX *,unsigned char *,int *) | | EVP_EncodeFinal | 2 | +| bsd.cpp:12:5:12:10 | accept | (Jim_Interp *,Jim_Obj *,int *) | | Jim_DictPairs | 2 | +| bsd.cpp:12:5:12:10 | accept | (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetBoolFromExpr | 2 | +| bsd.cpp:12:5:12:10 | accept | (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetBoolean | 2 | +| bsd.cpp:12:5:12:10 | accept | (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetIndex | 2 | +| bsd.cpp:12:5:12:10 | accept | (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetReturnCode | 2 | +| bsd.cpp:12:5:12:10 | accept | (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetSourceInfo | 2 | +| bsd.cpp:12:5:12:10 | accept | (OPENSSL_STACK *,const void *,int *) | | OPENSSL_sk_find_all | 2 | +| bsd.cpp:12:5:12:10 | accept | (OSSL_DECODER *,const char *,int *) | | ossl_decoder_fast_is_a | 2 | +| bsd.cpp:12:5:12:10 | accept | (OSSL_LIB_CTX *,uint32_t,int *) | | ossl_rand_uniform_uint32 | 2 | +| bsd.cpp:12:5:12:10 | accept | (OSSL_PROVIDER *,size_t,int *) | | ossl_provider_test_operation_bit | 2 | +| bsd.cpp:12:5:12:10 | accept | (PACKET *,uint64_t *,int *) | | ossl_quic_wire_peek_frame_header | 2 | +| bsd.cpp:12:5:12:10 | accept | (PROV_DRBG *,OSSL_PARAM[],int *) | | ossl_drbg_get_ctx_params_no_lock | 2 | +| bsd.cpp:12:5:12:10 | accept | (QUIC_RSTREAM *,size_t *,int *) | | ossl_quic_rstream_available | 2 | +| bsd.cpp:12:5:12:10 | accept | (const BIGNUM *,const BIGNUM *,int *) | | ossl_ffc_validate_private_key | 2 | +| bsd.cpp:12:5:12:10 | accept | (const DH *,const BIGNUM *,int *) | | DH_check_pub_key | 2 | +| bsd.cpp:12:5:12:10 | accept | (const DH *,const BIGNUM *,int *) | | ossl_dh_check_priv_key | 2 | +| bsd.cpp:12:5:12:10 | accept | (const DH *,const BIGNUM *,int *) | | ossl_dh_check_pub_key_partial | 2 | +| bsd.cpp:12:5:12:10 | accept | (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_priv_key | 2 | +| bsd.cpp:12:5:12:10 | accept | (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_pub_key | 2 | +| bsd.cpp:12:5:12:10 | accept | (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_pub_key_partial | 2 | +| bsd.cpp:12:5:12:10 | accept | (const DSA *,int,int *) | | ossl_dsa_check_params | 2 | +| bsd.cpp:12:5:12:10 | accept | (const FFC_PARAMS *,const BIGNUM *,int *) | | ossl_ffc_validate_public_key | 2 | +| bsd.cpp:12:5:12:10 | accept | (const FFC_PARAMS *,const BIGNUM *,int *) | | ossl_ffc_validate_public_key_partial | 2 | +| bsd.cpp:12:5:12:10 | accept | (const SSL *,const SSL_CTX *,int *) | | ssl_get_security_level_bits | 2 | +| bsd.cpp:12:5:12:10 | accept | (const X509 *,EVP_MD **,int *) | | X509_digest_sig | 2 | +| bsd.cpp:12:5:12:10 | accept | (const char *,const OPT_PAIR *,int *) | | opt_pair | 2 | +| bsd.cpp:12:5:12:10 | accept | (const unsigned char **,unsigned int,int *) | | ossl_b2i | 2 | +| bsd.cpp:12:5:12:10 | accept | (int,const char **,int *) | | sqlite3_keyword_name | 2 | +| bsd.cpp:12:5:12:10 | accept | (int,int,int *) | | ssl_set_version_bound | 2 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ASN1_STRING_type_new | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ASN1_tag2bit | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ASN1_tag2str | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | EVP_PKEY_asn1_get0 | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | Jim_ReturnCode | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | Jim_SignalId | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | OBJ_nid2ln | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | OBJ_nid2obj | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | OBJ_nid2sn | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | OSSL_STORE_INFO_type_string | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | OSSL_trace_get_category_name | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | PKCS12_init | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | Symbol_Nth | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | X509_PURPOSE_get0 | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | X509_PURPOSE_get_by_id | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | X509_TRUST_get0 | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | X509_TRUST_get_by_id | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | evp_pkey_type2name | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ossl_cmp_bodytype_to_string | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ossl_tolower | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ossl_toupper | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | pulldown_test_framework | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | sqlite3_compileoption_get | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | sqlite3_errstr | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | tls1_alert_code | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | tls13_alert_code | 0 | +| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | wait_until_sock_readable | 0 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIGNUM *,int) | | BN_clear_bit | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIGNUM *,int) | | BN_mask_bits | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIGNUM *,int) | | BN_set_bit | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIGNUM *,int) | | BN_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIGNUM *,int) | | bn_expand2 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIGNUM *,int) | | bn_wexpand | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIO *,int) | | BIO_clear_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIO *,int) | | BIO_find_type | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIO *,int) | | BIO_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIO *,int) | | BIO_set_init | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIO *,int) | | BIO_set_retry_reason | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIO *,int) | | BIO_set_shutdown | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (BIO *,int) | | TXT_DB_read | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (DH *,int) | | DH_clear_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (DH *,int) | | DH_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (DSA *,int) | | DSA_clear_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (DSA *,int) | | DSA_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (RSA *,int) | | RSA_clear_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (RSA *,int) | | RSA_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL *,int) | | SSL_key_update | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL *,int) | | SSL_set_purpose | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL *,int) | | SSL_set_read_ahead | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL *,int) | | SSL_set_security_level | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL *,int) | | SSL_set_shutdown | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL *,int) | | SSL_set_trust | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL *,int) | | SSL_set_verify_depth | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_CTX *,int) | | ssl_md | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509 *,int) | | X509_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509 *,int) | | X509_self_signed | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (acttab *,int) | | acttab_insert | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (char *,int) | | PEM_proc_type | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (char,int) | CStringT | CStringT | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const BIGNUM *,int) | | BN_get_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const BIO *,int) | | BIO_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const BIO *,int) | | BIO_test_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const DH *,int) | | DH_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const DH *,int) | | DH_test_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const DH *,int) | | ossl_dh_dup | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const DSA *,int) | | DSA_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const DSA *,int) | | DSA_test_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const DSA *,int) | | ossl_dsa_dup | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const RSA *,int) | | RSA_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const RSA *,int) | | RSA_test_flags | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const RSA *,int) | | ossl_rsa_dup | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const SSL *,int) | | SSL_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const UI *,int) | | UI_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509 *,int) | | X509_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509 *,int) | | X509_get_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (const XCHAR *,int) | CStringT | CStringT | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (const YCHAR *,int) | CStringT | CStringT | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | DH_meth_new | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | DSA_meth_new | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | Jim_StrDupLen | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | RSA_meth_new | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const char *,int) | | parse_yesno | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int *,int) | | X509_PURPOSE_set | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int *,int) | | X509_TRUST_set | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | BN_security_bits | 0 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | BN_security_bits | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | EVP_MD_meth_new | 0 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | EVP_MD_meth_new | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | EVP_PKEY_meth_new | 0 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | EVP_PKEY_meth_new | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | acttab_alloc | 0 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (int,int) | | acttab_alloc | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (rule *,int) | | Configlist_add | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (rule *,int) | | Configlist_addbasis | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (uint16_t,int) | | tls1_group_id2nid | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (unsigned char *,int) | | RAND_bytes | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (void *,int) | | DSO_dsobyaddr | 1 | +| constructor_delegation.cpp:10:2:10:8 | MyValue | (void *,int) | | sqlite3_realloc | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (wchar_t,int) | CStringT | CStringT | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIGNUM *,int) | | BN_clear_bit | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIGNUM *,int) | | BN_mask_bits | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIGNUM *,int) | | BN_set_bit | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIGNUM *,int) | | BN_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIGNUM *,int) | | bn_expand2 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIGNUM *,int) | | bn_wexpand | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIO *,int) | | BIO_clear_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIO *,int) | | BIO_find_type | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIO *,int) | | BIO_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIO *,int) | | BIO_set_init | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIO *,int) | | BIO_set_retry_reason | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIO *,int) | | BIO_set_shutdown | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (BIO *,int) | | TXT_DB_read | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (DH *,int) | | DH_clear_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (DH *,int) | | DH_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (DSA *,int) | | DSA_clear_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (DSA *,int) | | DSA_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (RSA *,int) | | RSA_clear_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (RSA *,int) | | RSA_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL *,int) | | SSL_key_update | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL *,int) | | SSL_set_purpose | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL *,int) | | SSL_set_read_ahead | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL *,int) | | SSL_set_security_level | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL *,int) | | SSL_set_shutdown | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL *,int) | | SSL_set_trust | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL *,int) | | SSL_set_verify_depth | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_CTX *,int) | | ssl_md | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509 *,int) | | X509_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509 *,int) | | X509_self_signed | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (acttab *,int) | | acttab_insert | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (char *,int) | | PEM_proc_type | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (char,int) | CStringT | CStringT | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const BIGNUM *,int) | | BN_get_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const BIO *,int) | | BIO_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const BIO *,int) | | BIO_test_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const DH *,int) | | DH_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const DH *,int) | | DH_test_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const DH *,int) | | ossl_dh_dup | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const DSA *,int) | | DSA_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const DSA *,int) | | DSA_test_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const DSA *,int) | | ossl_dsa_dup | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const RSA *,int) | | RSA_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const RSA *,int) | | RSA_test_flags | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const RSA *,int) | | ossl_rsa_dup | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const SSL *,int) | | SSL_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const UI *,int) | | UI_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509 *,int) | | X509_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509 *,int) | | X509_get_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const XCHAR *,int) | CStringT | CStringT | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const YCHAR *,int) | CStringT | CStringT | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | DH_meth_new | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | DSA_meth_new | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | Jim_StrDupLen | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | RSA_meth_new | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const char *,int) | | parse_yesno | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int *,int) | | X509_PURPOSE_set | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int *,int) | | X509_TRUST_set | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | BN_security_bits | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | EVP_MD_meth_new | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | EVP_PKEY_meth_new | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (int,int) | | acttab_alloc | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (rule *,int) | | Configlist_add | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (rule *,int) | | Configlist_addbasis | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (uint16_t,int) | | tls1_group_id2nid | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (unsigned char *,int) | | RAND_bytes | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (void *,int) | | DSO_dsobyaddr | 1 | +| constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (void *,int) | | sqlite3_realloc | 1 | | constructor_delegation.cpp:19:2:19:15 | MyDerivedValue | (wchar_t,int) | CStringT | CStringT | 1 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ASN1_STRING_type_new | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ASN1_tag2bit | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ASN1_tag2str | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | EVP_PKEY_asn1_get0 | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | Jim_ReturnCode | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | Jim_SignalId | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | OBJ_nid2ln | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | OBJ_nid2obj | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | OBJ_nid2sn | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | OSSL_STORE_INFO_type_string | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | OSSL_trace_get_category_name | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | PKCS12_init | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | Symbol_Nth | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | X509_PURPOSE_get0 | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | X509_PURPOSE_get_by_id | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | X509_TRUST_get0 | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | X509_TRUST_get_by_id | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | evp_pkey_type2name | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ossl_cmp_bodytype_to_string | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ossl_tolower | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ossl_toupper | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | pulldown_test_framework | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | sqlite3_compileoption_get | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | sqlite3_errstr | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | tls1_alert_code | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | tls13_alert_code | 0 | +| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | wait_until_sock_readable | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ASN1_STRING_type_new | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ASN1_tag2bit | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ASN1_tag2str | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | EVP_PKEY_asn1_get0 | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | Jim_ReturnCode | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | Jim_SignalId | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | OBJ_nid2ln | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | OBJ_nid2obj | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | OBJ_nid2sn | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | OSSL_STORE_INFO_type_string | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | OSSL_trace_get_category_name | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | PKCS12_init | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | Symbol_Nth | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | X509_PURPOSE_get0 | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | X509_PURPOSE_get_by_id | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | X509_TRUST_get0 | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | X509_TRUST_get_by_id | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | evp_pkey_type2name | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ossl_cmp_bodytype_to_string | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ossl_tolower | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ossl_toupper | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | pulldown_test_framework | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | sqlite3_compileoption_get | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | sqlite3_errstr | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | tls1_alert_code | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | tls13_alert_code | 0 | +| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | wait_until_sock_readable | 0 | +| file://:0:0:0:0 | operator delete | (void *) | | ossl_kdf_data_new | 0 | +| file://:0:0:0:0 | operator new | (unsigned long) | | BN_num_bits_word | 0 | +| file://:0:0:0:0 | operator new | (unsigned long) | | BUF_MEM_new_ex | 0 | +| format.cpp:5:5:5:12 | snprintf | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 2 | +| format.cpp:5:5:5:12 | snprintf | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 3 | +| format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 0 | +| format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 1 | +| format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 2 | +| format.cpp:5:5:5:12 | snprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 3 | +| format.cpp:5:5:5:12 | snprintf | (int,char *,const char *,...) | | sqlite3_snprintf | 2 | +| format.cpp:5:5:5:12 | snprintf | (int,char *,const char *,...) | | sqlite3_snprintf | 3 | +| format.cpp:6:5:6:11 | sprintf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 1 | +| format.cpp:6:5:6:11 | sprintf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 2 | +| format.cpp:7:5:7:12 | swprintf | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 3 | +| format.cpp:7:5:7:12 | swprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 3 | +| format.cpp:7:5:7:12 | swprintf | (int,char *,const char *,...) | | sqlite3_snprintf | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_bio_CMS | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,DH **,pem_password_cb *,void *) | | PEM_read_bio_DHparams | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAPrivateKey | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSA_PUBKEY | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAparams | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_bio_ECPKParameters | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_ECPrivateKey | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_EC_PUBKEY | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PUBKEY | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PrivateKey | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_bio | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_bio_NETSCAPE_CERT_SEQUENCE | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_bio_PKCS7 | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8_PRIV_KEY_INFO | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPrivateKey | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPublicKey | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSA_PUBKEY | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_bio_SSL_SESSION | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509 | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509_AUX | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_bio_X509_ACERT | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_bio_X509_CRL | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_bio_X509_PUBKEY | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_bio_X509_REQ | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8 | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,size_t,..(*)(..),void *) | | ossl_quic_demux_new | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read_bio | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (DSO *,int,long,void *) | | DSO_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (EVP_CIPHER_CTX *,int,int,void *) | | EVP_CIPHER_CTX_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_CMS | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,DH **,pem_password_cb *,void *) | | PEM_read_DHparams | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAPrivateKey | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSA_PUBKEY | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAparams | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_ECPKParameters | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_ECPrivateKey | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_EC_PUBKEY | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PUBKEY | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PrivateKey | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_fp | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_NETSCAPE_CERT_SEQUENCE | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_PKCS7 | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_PKCS8_PRIV_KEY_INFO | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPrivateKey | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPublicKey | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSA_PUBKEY | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_SSL_SESSION | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509 | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509_AUX | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_X509_ACERT | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_X509_CRL | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_X509_PUBKEY | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_X509_REQ | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_PKCS8 | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (HT *,size_t,..(*)(..),void *) | | ossl_ht_filter | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (MD5_SHA1_CTX *,int,int,void *) | | ossl_md5_sha1_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *) | | CRYPTO_ocb128_copy_ctx | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (OPENSSL_LHASH *,OPENSSL_LH_DOALL_FUNCARG_THUNK,OPENSSL_LH_DOALL_FUNCARG,void *) | | OPENSSL_LH_doall_arg_thunk | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (OSSL_PROVIDER *,int,..(*)(..),void *) | | evp_names_do_all | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_qtx_set_mutator | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_quic_channel_set_mutator | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (QUIC_RXFC *,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init_standalone | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (SHA_CTX *,int,int,void *) | | ossl_sha1_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (SSL *,int,long,void *) | | SSL_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (SSL *,int,long,void *) | | dtls1_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (SSL *,int,long,void *) | | ossl_quic_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (SSL *,int,long,void *) | | ssl3_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *) | | ossl_statem_set_mutator | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *) | | SSL_CTX_set_session_ticket_cb | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (SSL_CTX *,int,long,void *) | | SSL_CTX_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (SSL_CTX *,int,long,void *) | | ossl_quic_ctx_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (SSL_CTX *,int,long,void *) | | ssl3_ctx_ctrl | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (X509_ALGOR *,ASN1_OBJECT *,int,void *) | | X509_ALGOR_set0 | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,int,int,void *) | | PEM_def_callback | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,int,int,void *) | | ossl_pw_pem_password | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,int,int,void *) | | ossl_pw_pvk_password | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 0 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 1 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 2 | +| format.cpp:14:5:14:13 | vsnprintf | (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (const OSSL_NAMEMAP *,int,..(*)(..),void *) | | ossl_namemap_doall_names | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (int,char *,const char *,va_list) | | sqlite3_vsnprintf | 2 | +| format.cpp:14:5:14:13 | vsnprintf | (int,char *,const char *,va_list) | | sqlite3_vsnprintf | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (int,int,const char *,va_list) | | ERR_vset_error | 2 | +| format.cpp:14:5:14:13 | vsnprintf | (int,int,const char *,va_list) | | ERR_vset_error | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (int,unsigned long,..(*)(..),void *) | | RSA_generate_key | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_recover_init_sql | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_rtree_geometry_callback | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (sqlite3 *,const char *,const sqlite3_module *,void *) | | sqlite3_create_module | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (sqlite3 *,const char *,int,void *) | | sqlite3_file_control | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (sqlite3 *,int,..(*)(..),void *) | | sqlite3_progress_handler | 3 | +| format.cpp:14:5:14:13 | vsnprintf | (sqlite3 *,unsigned int,..(*)(..),void *) | | sqlite3_trace_v2 | 3 | +| format.cpp:16:5:16:13 | mysprintf | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 2 | +| format.cpp:16:5:16:13 | mysprintf | (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 3 | +| format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 0 | +| format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 1 | +| format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 2 | +| format.cpp:16:5:16:13 | mysprintf | (char *,size_t,const char *,...) | | BIO_snprintf | 3 | +| format.cpp:16:5:16:13 | mysprintf | (int,char *,const char *,...) | | sqlite3_snprintf | 2 | +| format.cpp:16:5:16:13 | mysprintf | (int,char *,const char *,...) | | sqlite3_snprintf | 3 | +| format.cpp:28:5:28:10 | sscanf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 1 | +| format.cpp:28:5:28:10 | sscanf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 2 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | BIO_gethostbyname | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | Jim_StrDup | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | OPENSSL_LH_strhash | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | Strsafe | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | Symbol_new | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | UI_create_method | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | X509V3_parse_list | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | X509_LOOKUP_meth_new | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | a2i_IPADDRESS | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | a2i_IPADDRESS_NC | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | new_pkcs12_builder | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | opt_path_end | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | opt_progname | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | ossl_lh_strcasehash | 0 | +| format.cpp:142:8:142:13 | strlen | (const char *) | | strhash | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | SRP_VBASE_new | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | defossilize | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | make_uppercase | 0 | +| map.cpp:8:6:8:9 | sink | (char *) | | next_item | 0 | | map.cpp:8:6:8:9 | sink | (char *) | CStringT | CStringT | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | BIO_gethostbyname | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | Jim_StrDup | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | OPENSSL_LH_strhash | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | Strsafe | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | Symbol_new | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | UI_create_method | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | X509V3_parse_list | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | X509_LOOKUP_meth_new | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | a2i_IPADDRESS | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | a2i_IPADDRESS_NC | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | new_pkcs12_builder | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | opt_path_end | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | opt_progname | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | ossl_lh_strcasehash | 0 | +| map.cpp:9:6:9:9 | sink | (const char *) | | strhash | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ASN1_STRING_type_new | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ASN1_tag2bit | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ASN1_tag2str | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | EVP_PKEY_asn1_get0 | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | Jim_ReturnCode | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | Jim_SignalId | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | OBJ_nid2ln | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | OBJ_nid2obj | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | OBJ_nid2sn | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | OSSL_STORE_INFO_type_string | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | OSSL_trace_get_category_name | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | PKCS12_init | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | Symbol_Nth | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | X509_PURPOSE_get0 | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | X509_PURPOSE_get_by_id | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | X509_TRUST_get0 | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | X509_TRUST_get_by_id | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | evp_pkey_type2name | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ossl_cmp_bodytype_to_string | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ossl_tolower | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ossl_toupper | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | pulldown_test_framework | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | sqlite3_compileoption_get | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | sqlite3_errstr | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | tls1_alert_code | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | tls13_alert_code | 0 | +| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | wait_until_sock_readable | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | SRP_VBASE_new | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | defossilize | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | make_uppercase | 0 | +| set.cpp:8:6:8:9 | sink | (char *) | | next_item | 0 | | set.cpp:8:6:8:9 | sink | (char *) | CStringT | CStringT | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | ASN1_STRING_type_new | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | ASN1_tag2bit | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | ASN1_tag2str | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | EVP_PKEY_asn1_get0 | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | Jim_ReturnCode | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | Jim_SignalId | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | OBJ_nid2ln | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | OBJ_nid2obj | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | OBJ_nid2sn | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | OSSL_STORE_INFO_type_string | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | OSSL_trace_get_category_name | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | PKCS12_init | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | Symbol_Nth | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | X509_PURPOSE_get0 | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | X509_PURPOSE_get_by_id | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | X509_TRUST_get0 | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | evp_pkey_type2name | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | ossl_tolower | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | ossl_toupper | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | pulldown_test_framework | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | sqlite3_compileoption_get | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | sqlite3_errstr | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | tls1_alert_code | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | tls13_alert_code | 0 | +| smart_pointer.cpp:4:6:4:9 | sink | (int) | | wait_until_sock_readable | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ASN1_STRING_type_new | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ASN1_tag2bit | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ASN1_tag2str | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | EVP_PKEY_asn1_get0 | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | Jim_ReturnCode | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | Jim_SignalId | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | OBJ_nid2ln | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | OBJ_nid2obj | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | OBJ_nid2sn | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | OSSL_STORE_INFO_type_string | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | OSSL_trace_get_category_name | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | PKCS12_init | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | Symbol_Nth | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | X509_PURPOSE_get0 | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | X509_PURPOSE_get_by_id | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | X509_TRUST_get0 | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ossl_tolower | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | pulldown_test_framework | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | sqlite3_compileoption_get | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | tls1_alert_code | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | wait_until_sock_readable | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ASN1_tag2bit | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ASN1_tag2str | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | Jim_ReturnCode | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | Jim_SignalId | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | OBJ_nid2ln | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | OBJ_nid2obj | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | OBJ_nid2sn | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | PKCS12_init | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | Symbol_Nth | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ossl_tolower | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | pulldown_test_framework | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | tls1_alert_code | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | wait_until_sock_readable | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ASN1_tag2bit | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ASN1_tag2str | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | Jim_ReturnCode | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | Jim_SignalId | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | OBJ_nid2ln | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | OBJ_nid2obj | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | OBJ_nid2sn | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | PKCS12_init | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | Symbol_Nth | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ossl_tolower | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | pulldown_test_framework | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | tls1_alert_code | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | wait_until_sock_readable | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ASN1_tag2bit | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ASN1_tag2str | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | Jim_ReturnCode | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | Jim_SignalId | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | OBJ_nid2ln | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | OBJ_nid2obj | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | OBJ_nid2sn | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | PKCS12_init | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | Symbol_Nth | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ossl_tolower | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | pulldown_test_framework | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | tls1_alert_code | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | wait_until_sock_readable | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ASN1_tag2bit | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ASN1_tag2str | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | Jim_ReturnCode | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | Jim_SignalId | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | OBJ_nid2ln | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | OBJ_nid2obj | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | OBJ_nid2sn | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | PKCS12_init | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | Symbol_Nth | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ossl_tolower | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | pulldown_test_framework | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | tls1_alert_code | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | wait_until_sock_readable | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ASN1_STRING_type_new | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ASN1_tag2bit | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ASN1_tag2str | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | EVP_PKEY_asn1_get0 | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | Jim_ReturnCode | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | Jim_SignalId | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | OBJ_nid2ln | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | OBJ_nid2obj | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | OBJ_nid2sn | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | OSSL_STORE_INFO_type_string | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | OSSL_trace_get_category_name | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | PKCS12_init | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | Symbol_Nth | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | X509_PURPOSE_get0 | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | X509_PURPOSE_get_by_id | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | X509_TRUST_get0 | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | X509_TRUST_get_by_id | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ossl_cmp_bodytype_to_string | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ossl_tolower | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | pulldown_test_framework | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | sqlite3_compileoption_get | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | tls1_alert_code | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | wait_until_sock_readable | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ASN1_STRING_type_new | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ASN1_tag2bit | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ASN1_tag2str | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | EVP_PKEY_asn1_get0 | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | Jim_ReturnCode | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | Jim_SignalId | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | OBJ_nid2ln | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | OBJ_nid2obj | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | OBJ_nid2sn | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | OSSL_STORE_INFO_type_string | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | OSSL_trace_get_category_name | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | PKCS12_init | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | Symbol_Nth | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | X509_PURPOSE_get0 | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | X509_PURPOSE_get_by_id | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | X509_TRUST_get0 | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | X509_TRUST_get_by_id | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | evp_pkey_type2name | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ossl_cmp_bodytype_to_string | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ossl_tolower | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ossl_toupper | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | pulldown_test_framework | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | sqlite3_compileoption_get | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | sqlite3_errstr | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | tls1_alert_code | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | tls13_alert_code | 0 | +| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | wait_until_sock_readable | 0 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIGNUM *,int) | | BN_clear_bit | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIGNUM *,int) | | BN_mask_bits | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIGNUM *,int) | | BN_set_bit | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIGNUM *,int) | | BN_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIGNUM *,int) | | bn_expand2 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIGNUM *,int) | | bn_wexpand | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIO *,int) | | BIO_clear_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIO *,int) | | BIO_find_type | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIO *,int) | | BIO_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIO *,int) | | BIO_set_init | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIO *,int) | | BIO_set_retry_reason | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIO *,int) | | BIO_set_shutdown | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (BIO *,int) | | TXT_DB_read | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (DH *,int) | | DH_clear_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (DH *,int) | | DH_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (DSA *,int) | | DSA_clear_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (DSA *,int) | | DSA_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (RSA *,int) | | RSA_clear_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (RSA *,int) | | RSA_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL *,int) | | SSL_key_update | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL *,int) | | SSL_set_purpose | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL *,int) | | SSL_set_read_ahead | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL *,int) | | SSL_set_security_level | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL *,int) | | SSL_set_shutdown | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL *,int) | | SSL_set_trust | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL *,int) | | SSL_set_verify_depth | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_CTX *,int) | | ssl_md | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509 *,int) | | X509_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509 *,int) | | X509_self_signed | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (acttab *,int) | | acttab_insert | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (char *,int) | | PEM_proc_type | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (char,int) | CStringT | CStringT | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const BIGNUM *,int) | | BN_get_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const BIO *,int) | | BIO_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const BIO *,int) | | BIO_test_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const DH *,int) | | DH_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const DH *,int) | | DH_test_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const DH *,int) | | ossl_dh_dup | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const DSA *,int) | | DSA_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const DSA *,int) | | DSA_test_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const DSA *,int) | | ossl_dsa_dup | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const RSA *,int) | | RSA_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const RSA *,int) | | RSA_test_flags | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const RSA *,int) | | ossl_rsa_dup | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const SSL *,int) | | SSL_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const UI *,int) | | UI_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509 *,int) | | X509_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509 *,int) | | X509_get_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (const XCHAR *,int) | CStringT | CStringT | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (const YCHAR *,int) | CStringT | CStringT | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | DH_meth_new | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | DSA_meth_new | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | Jim_StrDupLen | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | RSA_meth_new | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const char *,int) | | parse_yesno | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (int *,int) | | X509_PURPOSE_set | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (int *,int) | | X509_TRUST_set | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | BN_security_bits | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | EVP_MD_meth_new | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | EVP_PKEY_meth_new | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (int,int) | | acttab_alloc | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (rule *,int) | | Configlist_add | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (rule *,int) | | Configlist_addbasis | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (uint16_t,int) | | tls1_group_id2nid | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (unsigned char *,int) | | RAND_bytes | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (void *,int) | | DSO_dsobyaddr | 1 | +| standalone_iterators.cpp:103:27:103:36 | operator+= | (void *,int) | | sqlite3_realloc | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (wchar_t,int) | CStringT | CStringT | 1 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_tag2bit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_tag2bit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_tag2bit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_tag2bit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_tag2bit | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_tag2str | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_tag2str | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_tag2str | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_tag2str | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ASN1_tag2str | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Jim_ReturnCode | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Jim_ReturnCode | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Jim_ReturnCode | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Jim_ReturnCode | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Jim_ReturnCode | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Jim_SignalId | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Jim_SignalId | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Jim_SignalId | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Jim_SignalId | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Jim_SignalId | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2ln | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2ln | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2ln | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2ln | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2ln | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2obj | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2obj | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2obj | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2obj | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2obj | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2sn | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2sn | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2sn | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2sn | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OBJ_nid2sn | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | PKCS12_init | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | PKCS12_init | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | PKCS12_init | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | PKCS12_init | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | PKCS12_init | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Symbol_Nth | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Symbol_Nth | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Symbol_Nth | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Symbol_Nth | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | Symbol_Nth | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | evp_pkey_type2name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | evp_pkey_type2name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | evp_pkey_type2name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | evp_pkey_type2name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | evp_pkey_type2name | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_tolower | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | pulldown_test_framework | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | pulldown_test_framework | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | pulldown_test_framework | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | pulldown_test_framework | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | pulldown_test_framework | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tls1_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tls1_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tls1_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tls1_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tls1_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | wait_until_sock_readable | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | wait_until_sock_readable | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | wait_until_sock_readable | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | wait_until_sock_readable | 0 | +| stl.h:52:12:52:21 | operator++ | (int) | | wait_until_sock_readable | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | ASN1_tag2bit | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | ASN1_tag2str | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | Jim_ReturnCode | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | Jim_SignalId | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | OBJ_nid2ln | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | OBJ_nid2obj | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | OBJ_nid2sn | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | PKCS12_init | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | Symbol_Nth | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | X509_TRUST_get0 | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | evp_pkey_type2name | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | ossl_tolower | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | ossl_toupper | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | pulldown_test_framework | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | sqlite3_errstr | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | tls1_alert_code | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | tls13_alert_code | 0 | +| stl.h:54:12:54:21 | operator-- | (int) | | wait_until_sock_readable | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | ASN1_tag2bit | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | ASN1_tag2str | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | Jim_ReturnCode | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | Jim_SignalId | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | OBJ_nid2ln | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | OBJ_nid2obj | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | OBJ_nid2sn | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | PKCS12_init | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | Symbol_Nth | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | X509_TRUST_get0 | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | evp_pkey_type2name | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | ossl_tolower | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | ossl_toupper | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | pulldown_test_framework | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | sqlite3_errstr | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | tls1_alert_code | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | tls13_alert_code | 0 | +| stl.h:59:12:59:20 | operator+ | (int) | | wait_until_sock_readable | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | ASN1_tag2bit | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | ASN1_tag2str | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | Jim_ReturnCode | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | Jim_SignalId | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | OBJ_nid2ln | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | OBJ_nid2obj | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | OBJ_nid2sn | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | PKCS12_init | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | Symbol_Nth | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | X509_TRUST_get0 | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | evp_pkey_type2name | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | ossl_tolower | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | ossl_toupper | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | pulldown_test_framework | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | sqlite3_errstr | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | tls1_alert_code | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | tls13_alert_code | 0 | +| stl.h:60:12:60:20 | operator- | (int) | | wait_until_sock_readable | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ASN1_tag2bit | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ASN1_tag2bit | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ASN1_tag2str | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ASN1_tag2str | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | Jim_ReturnCode | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | Jim_ReturnCode | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | Jim_SignalId | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | Jim_SignalId | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | OBJ_nid2ln | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | OBJ_nid2ln | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | OBJ_nid2obj | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | OBJ_nid2obj | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | OBJ_nid2sn | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | OBJ_nid2sn | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | PKCS12_init | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | PKCS12_init | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | Symbol_Nth | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | Symbol_Nth | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | X509_TRUST_get0 | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | X509_TRUST_get0 | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | evp_pkey_type2name | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | evp_pkey_type2name | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ossl_tolower | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ossl_tolower | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ossl_toupper | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | ossl_toupper | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | pulldown_test_framework | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | pulldown_test_framework | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_errstr | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_errstr | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | tls1_alert_code | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | tls1_alert_code | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | tls13_alert_code | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | tls13_alert_code | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | wait_until_sock_readable | 0 | +| stl.h:61:13:61:22 | operator+= | (int) | | wait_until_sock_readable | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | ASN1_tag2bit | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | ASN1_tag2str | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | Jim_ReturnCode | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | Jim_SignalId | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | OBJ_nid2ln | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | OBJ_nid2obj | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | OBJ_nid2sn | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | PKCS12_init | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | Symbol_Nth | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | X509_TRUST_get0 | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | evp_pkey_type2name | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | ossl_tolower | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | ossl_toupper | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | pulldown_test_framework | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | sqlite3_errstr | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | tls1_alert_code | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | tls13_alert_code | 0 | +| stl.h:62:13:62:22 | operator-= | (int) | | wait_until_sock_readable | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | ASN1_tag2bit | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | ASN1_tag2str | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | Jim_ReturnCode | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | Jim_SignalId | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | OBJ_nid2ln | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | OBJ_nid2obj | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | OBJ_nid2sn | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | PKCS12_init | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | Symbol_Nth | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | X509_TRUST_get0 | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | evp_pkey_type2name | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | ossl_tolower | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | ossl_toupper | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | pulldown_test_framework | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | sqlite3_errstr | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | tls1_alert_code | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | tls13_alert_code | 0 | +| stl.h:64:18:64:27 | operator[] | (int) | | wait_until_sock_readable | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ASN1_tag2bit | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ASN1_tag2bit | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ASN1_tag2str | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ASN1_tag2str | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | Jim_ReturnCode | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | Jim_ReturnCode | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | Jim_SignalId | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | Jim_SignalId | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | OBJ_nid2ln | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | OBJ_nid2ln | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | OBJ_nid2obj | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | OBJ_nid2obj | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | OBJ_nid2sn | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | OBJ_nid2sn | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | PKCS12_init | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | PKCS12_init | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | Symbol_Nth | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | Symbol_Nth | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | X509_TRUST_get0 | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | evp_pkey_type2name | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | evp_pkey_type2name | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ossl_tolower | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ossl_tolower | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ossl_toupper | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | ossl_toupper | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | pulldown_test_framework | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | pulldown_test_framework | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_errstr | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_errstr | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | tls1_alert_code | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | tls1_alert_code | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | tls13_alert_code | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | tls13_alert_code | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | wait_until_sock_readable | 0 | +| stl.h:91:24:91:33 | operator++ | (int) | | wait_until_sock_readable | 0 | | stl.h:182:17:182:22 | assign | (InputIt,InputIt) | deque | assign | 0 | | stl.h:182:17:182:22 | assign | (InputIt,InputIt) | deque | assign | 1 | | stl.h:182:17:182:22 | assign | (InputIt,InputIt) | forward_list | assign | 0 | @@ -313,10 +5527,178 @@ signatureMatches | stl.h:190:17:190:23 | replace | (const_iterator,InputIt,InputIt) | vector | insert | 0 | | stl.h:190:17:190:23 | replace | (const_iterator,InputIt,InputIt) | vector | insert | 1 | | stl.h:190:17:190:23 | replace | (const_iterator,InputIt,InputIt) | vector | insert | 2 | +| stl.h:218:33:218:35 | get | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | +| stl.h:218:33:218:35 | get | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | +| stl.h:218:33:218:35 | get | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | +| stl.h:218:33:218:35 | get | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 1 | +| stl.h:218:33:218:35 | get | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 1 | +| stl.h:218:33:218:35 | get | (BIGNUM *,unsigned long) | | BN_add_word | 1 | +| stl.h:218:33:218:35 | get | (BIGNUM *,unsigned long) | | BN_div_word | 1 | +| stl.h:218:33:218:35 | get | (BIGNUM *,unsigned long) | | BN_set_word | 1 | +| stl.h:218:33:218:35 | get | (BIGNUM *,unsigned long) | | BN_sub_word | 1 | +| stl.h:218:33:218:35 | get | (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 1 | +| stl.h:218:33:218:35 | get | (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 1 | +| stl.h:218:33:218:35 | get | (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 1 | +| stl.h:218:33:218:35 | get | (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 1 | +| stl.h:218:33:218:35 | get | (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 1 | +| stl.h:218:33:218:35 | get | (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 1 | +| stl.h:218:33:218:35 | get | (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 1 | +| stl.h:218:33:218:35 | get | (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 1 | +| stl.h:218:33:218:35 | get | (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 1 | +| stl.h:218:33:218:35 | get | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | +| stl.h:218:33:218:35 | get | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | +| stl.h:218:33:218:35 | get | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | +| stl.h:218:33:218:35 | get | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 1 | +| stl.h:218:33:218:35 | get | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 1 | +| stl.h:218:33:218:35 | get | (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 1 | +| stl.h:218:33:218:35 | get | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | +| stl.h:218:33:218:35 | get | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | +| stl.h:218:33:218:35 | get | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| stl.h:218:33:218:35 | get | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| stl.h:220:33:220:36 | read | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | +| stl.h:220:33:220:36 | read | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | +| stl.h:220:33:220:36 | read | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | +| stl.h:220:33:220:36 | read | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 1 | +| stl.h:220:33:220:36 | read | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 1 | +| stl.h:220:33:220:36 | read | (BIGNUM *,unsigned long) | | BN_add_word | 1 | +| stl.h:220:33:220:36 | read | (BIGNUM *,unsigned long) | | BN_div_word | 1 | +| stl.h:220:33:220:36 | read | (BIGNUM *,unsigned long) | | BN_set_word | 1 | +| stl.h:220:33:220:36 | read | (BIGNUM *,unsigned long) | | BN_sub_word | 1 | +| stl.h:220:33:220:36 | read | (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 1 | +| stl.h:220:33:220:36 | read | (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 1 | +| stl.h:220:33:220:36 | read | (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 1 | +| stl.h:220:33:220:36 | read | (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 1 | +| stl.h:220:33:220:36 | read | (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 1 | +| stl.h:220:33:220:36 | read | (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 1 | +| stl.h:220:33:220:36 | read | (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 1 | +| stl.h:220:33:220:36 | read | (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 1 | +| stl.h:220:33:220:36 | read | (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 1 | +| stl.h:220:33:220:36 | read | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | +| stl.h:220:33:220:36 | read | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | +| stl.h:220:33:220:36 | read | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | +| stl.h:220:33:220:36 | read | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 1 | +| stl.h:220:33:220:36 | read | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 1 | +| stl.h:220:33:220:36 | read | (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 1 | +| stl.h:220:33:220:36 | read | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | +| stl.h:220:33:220:36 | read | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | +| stl.h:220:33:220:36 | read | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| stl.h:220:33:220:36 | read | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| stl.h:221:14:221:21 | readsome | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | +| stl.h:221:14:221:21 | readsome | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | +| stl.h:221:14:221:21 | readsome | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 1 | +| stl.h:221:14:221:21 | readsome | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 1 | +| stl.h:221:14:221:21 | readsome | (BIGNUM *,unsigned long) | | BN_add_word | 1 | +| stl.h:221:14:221:21 | readsome | (BIGNUM *,unsigned long) | | BN_div_word | 1 | +| stl.h:221:14:221:21 | readsome | (BIGNUM *,unsigned long) | | BN_set_word | 1 | +| stl.h:221:14:221:21 | readsome | (BIGNUM *,unsigned long) | | BN_sub_word | 1 | +| stl.h:221:14:221:21 | readsome | (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 1 | +| stl.h:221:14:221:21 | readsome | (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 1 | +| stl.h:221:14:221:21 | readsome | (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 1 | +| stl.h:221:14:221:21 | readsome | (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 1 | +| stl.h:221:14:221:21 | readsome | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | +| stl.h:221:14:221:21 | readsome | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | +| stl.h:221:14:221:21 | readsome | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 1 | +| stl.h:221:14:221:21 | readsome | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | +| stl.h:221:14:221:21 | readsome | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| stl.h:221:14:221:21 | readsome | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| stl.h:225:32:225:38 | getline | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | +| stl.h:225:32:225:38 | getline | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | +| stl.h:225:32:225:38 | getline | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 1 | +| stl.h:225:32:225:38 | getline | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 1 | +| stl.h:225:32:225:38 | getline | (BIGNUM *,unsigned long) | | BN_add_word | 1 | +| stl.h:225:32:225:38 | getline | (BIGNUM *,unsigned long) | | BN_div_word | 1 | +| stl.h:225:32:225:38 | getline | (BIGNUM *,unsigned long) | | BN_set_word | 1 | +| stl.h:225:32:225:38 | getline | (BIGNUM *,unsigned long) | | BN_sub_word | 1 | +| stl.h:225:32:225:38 | getline | (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 1 | +| stl.h:225:32:225:38 | getline | (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 1 | +| stl.h:225:32:225:38 | getline | (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 1 | +| stl.h:225:32:225:38 | getline | (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 1 | +| stl.h:225:32:225:38 | getline | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | +| stl.h:225:32:225:38 | getline | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | +| stl.h:225:32:225:38 | getline | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 1 | +| stl.h:225:32:225:38 | getline | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | +| stl.h:225:32:225:38 | getline | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| stl.h:225:32:225:38 | getline | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | | stl.h:232:84:232:90 | getline | (const_iterator,InputIt,InputIt) | deque | insert | 2 | | stl.h:232:84:232:90 | getline | (const_iterator,InputIt,InputIt) | forward_list | insert_after | 2 | | stl.h:232:84:232:90 | getline | (const_iterator,InputIt,InputIt) | list | insert | 2 | | stl.h:232:84:232:90 | getline | (const_iterator,InputIt,InputIt) | vector | insert | 2 | +| stl.h:240:33:240:42 | operator<< | (int) | | ASN1_STRING_type_new | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | ASN1_tag2bit | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | ASN1_tag2str | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | Jim_ReturnCode | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | Jim_SignalId | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | OBJ_nid2ln | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | OBJ_nid2obj | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | OBJ_nid2sn | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | OSSL_trace_get_category_name | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | PKCS12_init | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | Symbol_Nth | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | X509_PURPOSE_get0 | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | X509_PURPOSE_get_by_id | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | X509_TRUST_get0 | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | X509_TRUST_get_by_id | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | evp_pkey_type2name | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | ossl_tolower | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | ossl_toupper | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | pulldown_test_framework | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | sqlite3_compileoption_get | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | sqlite3_errstr | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | tls1_alert_code | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | tls13_alert_code | 0 | +| stl.h:240:33:240:42 | operator<< | (int) | | wait_until_sock_readable | 0 | +| stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | +| stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | +| stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | +| stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 1 | +| stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 1 | +| stl.h:243:33:243:37 | write | (BIGNUM *,unsigned long) | | BN_add_word | 1 | +| stl.h:243:33:243:37 | write | (BIGNUM *,unsigned long) | | BN_div_word | 1 | +| stl.h:243:33:243:37 | write | (BIGNUM *,unsigned long) | | BN_set_word | 1 | +| stl.h:243:33:243:37 | write | (BIGNUM *,unsigned long) | | BN_sub_word | 1 | +| stl.h:243:33:243:37 | write | (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 1 | +| stl.h:243:33:243:37 | write | (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 1 | +| stl.h:243:33:243:37 | write | (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 1 | +| stl.h:243:33:243:37 | write | (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 1 | +| stl.h:243:33:243:37 | write | (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 1 | +| stl.h:243:33:243:37 | write | (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 1 | +| stl.h:243:33:243:37 | write | (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 1 | +| stl.h:243:33:243:37 | write | (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 1 | +| stl.h:243:33:243:37 | write | (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 1 | +| stl.h:243:33:243:37 | write | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | +| stl.h:243:33:243:37 | write | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | +| stl.h:243:33:243:37 | write | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | +| stl.h:243:33:243:37 | write | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 1 | +| stl.h:243:33:243:37 | write | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 1 | +| stl.h:243:33:243:37 | write | (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 1 | +| stl.h:243:33:243:37 | write | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | +| stl.h:243:33:243:37 | write | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | +| stl.h:243:33:243:37 | write | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| stl.h:243:33:243:37 | write | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | | stl.h:294:12:294:17 | vector | (const deque &,const Allocator &) | deque | deque | 1 | | stl.h:294:12:294:17 | vector | (const deque &,const Allocator &) | deque | deque | 1 | | stl.h:294:12:294:17 | vector | (const deque &,const Allocator &) | deque | deque | 1 | @@ -433,6 +5815,20 @@ signatureMatches | stl.h:306:8:306:13 | assign | (size_type,const T &) | vector | assign | 1 | | stl.h:306:8:306:13 | assign | (size_type,const T &) | vector | assign | 1 | | stl.h:306:8:306:13 | assign | (size_type,const T &) | vector | assign | 1 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | Jim_IntHashFunction | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | Jim_IntHashFunction | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | Jim_IntHashFunction | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | Jim_IntHashFunction | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | Jim_IntHashFunction | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | Jim_IntHashFunction | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | +| stl.h:315:13:315:22 | operator[] | (unsigned int) | | ssl3_get_cipher | 0 | +| stl.h:318:13:318:14 | at | (unsigned int) | | Jim_IntHashFunction | 0 | +| stl.h:318:13:318:14 | at | (unsigned int) | | ssl3_get_cipher | 0 | | stl.h:331:12:331:17 | insert | (const_iterator,T &&) | deque | insert | 0 | | stl.h:331:12:331:17 | insert | (const_iterator,T &&) | deque | insert | 1 | | stl.h:331:12:331:17 | insert | (const_iterator,T &&) | forward_list | insert_after | 0 | @@ -545,6 +5941,13 @@ signatureMatches | stl.h:574:38:574:43 | insert | (InputIt,InputIt) | list | assign | 1 | | stl.h:574:38:574:43 | insert | (InputIt,InputIt) | vector | assign | 0 | | stl.h:574:38:574:43 | insert | (InputIt,InputIt) | vector | assign | 1 | +| stl.h:611:33:611:45 | unordered_set | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | +| stl.h:611:33:611:45 | unordered_set | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | +| stl.h:611:33:611:45 | unordered_set | (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 2 | +| stl.h:611:33:611:45 | unordered_set | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | +| stl.h:611:33:611:45 | unordered_set | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | +| stl.h:611:33:611:45 | unordered_set | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| stl.h:611:33:611:45 | unordered_set | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | | stl.h:623:36:623:47 | emplace_hint | (format_string,Args &&) | | format | 1 | | stl.h:623:36:623:47 | emplace_hint | (format_string,Args &&) | | format | 1 | | stl.h:627:12:627:17 | insert | (const_iterator,T &&) | deque | insert | 0 | @@ -569,84 +5972,9920 @@ signatureMatches | stl.h:678:33:678:38 | format | (format_string,Args &&) | | format | 1 | | stl.h:683:6:683:48 | same_signature_as_format_but_different_name | (format_string,Args &&) | | format | 0 | | stl.h:683:6:683:48 | same_signature_as_format_but_different_name | (format_string,Args &&) | | format | 1 | +| string.cpp:17:6:17:9 | sink | (const char *) | | BIO_gethostbyname | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | Jim_StrDup | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | OPENSSL_LH_strhash | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | Strsafe | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | Symbol_new | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | UI_create_method | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | X509V3_parse_list | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | X509_LOOKUP_meth_new | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | a2i_IPADDRESS | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | a2i_IPADDRESS_NC | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | new_pkcs12_builder | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | opt_path_end | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | opt_progname | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | ossl_lh_strcasehash | 0 | +| string.cpp:17:6:17:9 | sink | (const char *) | | strhash | 0 | +| string.cpp:19:6:19:9 | sink | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | +| string.cpp:19:6:19:9 | sink | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | +| string.cpp:19:6:19:9 | sink | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | +| string.cpp:19:6:19:9 | sink | (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 1 | +| string.cpp:19:6:19:9 | sink | (BIGNUM **,const char *) | | BN_asc2bn | 1 | +| string.cpp:19:6:19:9 | sink | (BIGNUM **,const char *) | | BN_dec2bn | 1 | +| string.cpp:19:6:19:9 | sink | (BIGNUM **,const char *) | | BN_hex2bn | 1 | +| string.cpp:19:6:19:9 | sink | (CONF *,const char *) | | TS_CONF_get_tsa_section | 1 | +| string.cpp:19:6:19:9 | sink | (CONF *,const char *) | | _CONF_new_section | 1 | +| string.cpp:19:6:19:9 | sink | (DH_METHOD *,const char *) | | DH_meth_set1_name | 1 | +| string.cpp:19:6:19:9 | sink | (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 1 | +| string.cpp:19:6:19:9 | sink | (DSO *,const char *) | | DSO_convert_filename | 1 | +| string.cpp:19:6:19:9 | sink | (DSO *,const char *) | | DSO_set_filename | 1 | +| string.cpp:19:6:19:9 | sink | (ENGINE *,const char *) | | ENGINE_set_id | 1 | +| string.cpp:19:6:19:9 | sink | (ENGINE *,const char *) | | ENGINE_set_name | 1 | +| string.cpp:19:6:19:9 | sink | (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 1 | +| string.cpp:19:6:19:9 | sink | (EVP_PKEY *,const char *) | | CTLOG_new | 1 | +| string.cpp:19:6:19:9 | sink | (EVP_PKEY_CTX *,const char *) | | app_paramgen | 1 | +| string.cpp:19:6:19:9 | sink | (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 1 | +| string.cpp:19:6:19:9 | sink | (Jim_Interp *,const char *) | | Jim_Eval | 1 | +| string.cpp:19:6:19:9 | sink | (Jim_Interp *,const char *) | | Jim_EvalFile | 1 | +| string.cpp:19:6:19:9 | sink | (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 1 | +| string.cpp:19:6:19:9 | sink | (Jim_Interp *,const char *) | | Jim_EvalGlobal | 1 | +| string.cpp:19:6:19:9 | sink | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | +| string.cpp:19:6:19:9 | sink | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | +| string.cpp:19:6:19:9 | sink | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 1 | +| string.cpp:19:6:19:9 | sink | (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 1 | +| string.cpp:19:6:19:9 | sink | (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 1 | +| string.cpp:19:6:19:9 | sink | (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 1 | +| string.cpp:19:6:19:9 | sink | (SSL *,const char *) | | SSL_add1_host | 1 | +| string.cpp:19:6:19:9 | sink | (SSL *,const char *) | | SSL_set1_host | 1 | +| string.cpp:19:6:19:9 | sink | (SSL *,const char *) | | SSL_set_cipher_list | 1 | +| string.cpp:19:6:19:9 | sink | (SSL *,const char *) | | SSL_use_psk_identity_hint | 1 | +| string.cpp:19:6:19:9 | sink | (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 1 | +| string.cpp:19:6:19:9 | sink | (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 1 | +| string.cpp:19:6:19:9 | sink | (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 1 | +| string.cpp:19:6:19:9 | sink | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | +| string.cpp:19:6:19:9 | sink | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | +| string.cpp:19:6:19:9 | sink | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | +| string.cpp:19:6:19:9 | sink | (STANZA *,const char *) | | test_start_file | 1 | +| string.cpp:19:6:19:9 | sink | (UI *,const char *) | | UI_add_error_string | 1 | +| string.cpp:19:6:19:9 | sink | (UI *,const char *) | | UI_add_info_string | 1 | +| string.cpp:19:6:19:9 | sink | (UI *,const char *) | | UI_dup_error_string | 1 | +| string.cpp:19:6:19:9 | sink | (UI *,const char *) | | UI_dup_info_string | 1 | +| string.cpp:19:6:19:9 | sink | (X509 *,const char *) | | x509_ctrl_string | 1 | +| string.cpp:19:6:19:9 | sink | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | +| string.cpp:19:6:19:9 | sink | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | +| string.cpp:19:6:19:9 | sink | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| string.cpp:19:6:19:9 | sink | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | Configcmp | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | Configcmp | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | DES_crypt | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | DES_crypt | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | OPENSSL_strcasecmp | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | get_passwd | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | get_passwd | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | openssl_fopen | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | openssl_fopen | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | ossl_pem_check_suffix | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | ossl_pem_check_suffix | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | ossl_v3_name_cmp | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | ossl_v3_name_cmp | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | sqlite3_strglob | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | sqlite3_strglob | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | sqlite3_stricmp | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | sqlite3_stricmp | 1 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | test_mk_file_path | 0 | +| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | test_mk_file_path | 1 | +| string.cpp:19:6:19:9 | sink | (int,const char *) | | BIO_meth_new | 1 | +| string.cpp:19:6:19:9 | sink | (lemon *,const char *) | | file_makename | 1 | +| string.cpp:19:6:19:9 | sink | (size_t *,const char *) | | next_protos_parse | 1 | +| string.cpp:19:6:19:9 | sink | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | +| string.cpp:19:6:19:9 | sink | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | +| string.cpp:19:6:19:9 | sink | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | +| string.cpp:19:6:19:9 | sink | (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 1 | +| string.cpp:19:6:19:9 | sink | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | +| string.cpp:19:6:19:9 | sink | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | +| string.cpp:19:6:19:9 | sink | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| string.cpp:19:6:19:9 | sink | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | +| string.cpp:19:6:19:9 | sink | (unsigned long *,const char *) | | set_cert_ex | 1 | +| string.cpp:19:6:19:9 | sink | (unsigned long *,const char *) | | set_name_ex | 1 | | string.cpp:20:6:20:9 | sink | (char) | | operator+= | 0 | | string.cpp:20:6:20:9 | sink | (char) | CComBSTR | Append | 0 | | string.cpp:20:6:20:9 | sink | (char) | CSimpleStringT | operator+= | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | ASN1_STRING_type_new | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | ASN1_tag2bit | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | ASN1_tag2str | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | Jim_ReturnCode | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | Jim_SignalId | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | OBJ_nid2ln | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | OBJ_nid2obj | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | OBJ_nid2sn | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | OSSL_trace_get_category_name | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | PKCS12_init | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | Symbol_Nth | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | X509_PURPOSE_get0 | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | X509_PURPOSE_get_by_id | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | X509_TRUST_get0 | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | evp_pkey_type2name | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | ossl_tolower | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | ossl_toupper | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | pulldown_test_framework | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | sqlite3_compileoption_get | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | sqlite3_errstr | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | tls1_alert_code | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | tls13_alert_code | 0 | +| stringstream.cpp:13:6:13:9 | sink | (int) | | wait_until_sock_readable | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ASN1_STRING_type_new | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ASN1_tag2bit | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ASN1_tag2str | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | Jim_ReturnCode | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | Jim_SignalId | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | OBJ_nid2ln | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | OBJ_nid2obj | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | OBJ_nid2sn | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | OSSL_trace_get_category_name | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | PKCS12_init | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | Symbol_Nth | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | X509_PURPOSE_get0 | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | X509_PURPOSE_get_by_id | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | X509_TRUST_get0 | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | X509_TRUST_get_by_id | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | evp_pkey_type2name | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ossl_tolower | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ossl_toupper | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | pulldown_test_framework | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | sqlite3_compileoption_get | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | sqlite3_errstr | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | tls1_alert_code | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | tls13_alert_code | 0 | +| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | wait_until_sock_readable | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ASN1_STRING_type_new | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ASN1_tag2bit | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ASN1_tag2str | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | EVP_PKEY_asn1_get0 | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | Jim_ReturnCode | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | Jim_SignalId | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | OBJ_nid2ln | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | OBJ_nid2obj | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | OBJ_nid2sn | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | OSSL_STORE_INFO_type_string | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | OSSL_trace_get_category_name | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | PKCS12_init | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | Symbol_Nth | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | X509_PURPOSE_get0 | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | X509_PURPOSE_get_by_id | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | X509_TRUST_get0 | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | X509_TRUST_get_by_id | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | evp_pkey_type2name | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ossl_cmp_bodytype_to_string | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ossl_tolower | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ossl_toupper | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | pulldown_test_framework | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | sqlite3_compileoption_get | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | sqlite3_errstr | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | tls1_alert_code | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | tls13_alert_code | 0 | +| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | wait_until_sock_readable | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ASN1_STRING_type_new | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ASN1_tag2bit | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ASN1_tag2str | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | EVP_PKEY_asn1_get0 | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | Jim_ReturnCode | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | Jim_SignalId | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | OBJ_nid2ln | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | OBJ_nid2obj | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | OBJ_nid2sn | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | OSSL_STORE_INFO_type_string | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | OSSL_trace_get_category_name | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | PKCS12_init | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | Symbol_Nth | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | X509_PURPOSE_get0 | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | X509_PURPOSE_get_by_id | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | X509_TRUST_get0 | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | X509_TRUST_get_by_id | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | evp_pkey_type2name | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ossl_cmp_bodytype_to_string | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ossl_tolower | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ossl_toupper | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | pulldown_test_framework | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | sqlite3_compileoption_get | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | sqlite3_errstr | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | tls1_alert_code | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | tls13_alert_code | 0 | +| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | wait_until_sock_readable | 0 | +| taint.cpp:4:6:4:21 | arithAssignments | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIGNUM *,int) | | BN_clear_bit | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIGNUM *,int) | | BN_mask_bits | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIGNUM *,int) | | BN_set_bit | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIGNUM *,int) | | BN_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIGNUM *,int) | | bn_expand2 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIGNUM *,int) | | bn_wexpand | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIO *,int) | | BIO_clear_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIO *,int) | | BIO_find_type | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIO *,int) | | BIO_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIO *,int) | | BIO_set_init | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIO *,int) | | BIO_set_retry_reason | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIO *,int) | | BIO_set_shutdown | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (BIO *,int) | | TXT_DB_read | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (DH *,int) | | DH_clear_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (DH *,int) | | DH_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (DSA *,int) | | DSA_clear_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (DSA *,int) | | DSA_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (RSA *,int) | | RSA_clear_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (RSA *,int) | | RSA_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL *,int) | | SSL_key_update | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL *,int) | | SSL_set_purpose | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL *,int) | | SSL_set_read_ahead | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL *,int) | | SSL_set_security_level | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL *,int) | | SSL_set_shutdown | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL *,int) | | SSL_set_trust | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL *,int) | | SSL_set_verify_depth | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_CTX *,int) | | ssl_md | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509 *,int) | | X509_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509 *,int) | | X509_self_signed | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (char,int) | CStringT | CStringT | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const BIGNUM *,int) | | BN_get_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const BIO *,int) | | BIO_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const BIO *,int) | | BIO_test_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const DH *,int) | | DH_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const DH *,int) | | DH_test_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const DH *,int) | | ossl_dh_dup | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const DSA *,int) | | DSA_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const DSA *,int) | | DSA_test_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const DSA *,int) | | ossl_dsa_dup | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const RSA *,int) | | RSA_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const RSA *,int) | | RSA_test_flags | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const RSA *,int) | | ossl_rsa_dup | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const SSL *,int) | | SSL_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const UI *,int) | | UI_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509 *,int) | | X509_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509 *,int) | | X509_get_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (const XCHAR *,int) | CStringT | CStringT | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (const YCHAR *,int) | CStringT | CStringT | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | DH_meth_new | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | DSA_meth_new | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | Jim_StrDupLen | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (int *,int) | | X509_PURPOSE_set | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | BN_security_bits | 0 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | BN_security_bits | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | EVP_MD_meth_new | 0 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | EVP_MD_meth_new | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | EVP_PKEY_meth_new | 0 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | acttab_alloc | 0 | +| taint.cpp:4:6:4:21 | arithAssignments | (int,int) | | acttab_alloc | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (rule *,int) | | Configlist_add | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (uint16_t,int) | | tls1_group_id2nid | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (unsigned char *,int) | | RAND_bytes | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (void *,int) | | DSO_dsobyaddr | 1 | +| taint.cpp:4:6:4:21 | arithAssignments | (void *,int) | | sqlite3_realloc | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (wchar_t,int) | CStringT | CStringT | 1 | +| taint.cpp:22:5:22:13 | increment | (int) | | ASN1_STRING_type_new | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | ASN1_tag2bit | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | ASN1_tag2str | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | EVP_PKEY_asn1_get0 | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | Jim_ReturnCode | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | Jim_SignalId | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | OBJ_nid2ln | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | OBJ_nid2obj | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | OBJ_nid2sn | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | OSSL_STORE_INFO_type_string | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | OSSL_trace_get_category_name | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | PKCS12_init | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | Symbol_Nth | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | X509_PURPOSE_get0 | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | X509_PURPOSE_get_by_id | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | X509_TRUST_get0 | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | X509_TRUST_get_by_id | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | ossl_cmp_bodytype_to_string | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | ossl_tolower | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | ossl_toupper | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | pulldown_test_framework | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | sqlite3_compileoption_get | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | sqlite3_errstr | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | tls1_alert_code | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | tls13_alert_code | 0 | +| taint.cpp:22:5:22:13 | increment | (int) | | wait_until_sock_readable | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | ASN1_STRING_type_new | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | ASN1_tag2bit | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | ASN1_tag2str | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | EVP_PKEY_asn1_get0 | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | Jim_ReturnCode | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | Jim_SignalId | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | OBJ_nid2ln | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | OBJ_nid2obj | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | OBJ_nid2sn | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | OSSL_STORE_INFO_type_string | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | OSSL_trace_get_category_name | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | PKCS12_init | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | Symbol_Nth | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | X509_PURPOSE_get0 | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | X509_PURPOSE_get_by_id | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | X509_TRUST_get0 | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | X509_TRUST_get_by_id | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | ossl_cmp_bodytype_to_string | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | ossl_tolower | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | ossl_toupper | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | pulldown_test_framework | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | sqlite3_compileoption_get | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | sqlite3_errstr | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | tls1_alert_code | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | tls13_alert_code | 0 | +| taint.cpp:23:5:23:8 | zero | (int) | | wait_until_sock_readable | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | ASN1_STRING_type_new | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | ASN1_tag2bit | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | ASN1_tag2str | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | EVP_PKEY_asn1_get0 | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | Jim_ReturnCode | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | Jim_SignalId | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | OBJ_nid2ln | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | OBJ_nid2obj | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | OBJ_nid2sn | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | OSSL_STORE_INFO_type_string | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | OSSL_trace_get_category_name | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | PKCS12_init | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | Symbol_Nth | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | X509_PURPOSE_get0 | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | X509_PURPOSE_get_by_id | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | X509_TRUST_get0 | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | X509_TRUST_get_by_id | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | ossl_cmp_bodytype_to_string | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | ossl_tolower | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | ossl_toupper | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | pulldown_test_framework | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | sqlite3_compileoption_get | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | sqlite3_errstr | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | tls1_alert_code | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | tls13_alert_code | 0 | +| taint.cpp:100:6:100:15 | array_test | (int) | | wait_until_sock_readable | 0 | +| taint.cpp:142:5:142:10 | select | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 1 | +| taint.cpp:142:5:142:10 | select | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | +| taint.cpp:142:5:142:10 | select | (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 2 | +| taint.cpp:142:5:142:10 | select | (ASN1_OCTET_STRING **,const unsigned char *,int) | | ossl_cmp_asn1_octet_string_set1_bytes | 2 | +| taint.cpp:142:5:142:10 | select | (ASN1_OCTET_STRING *,const unsigned char *,int) | | ASN1_OCTET_STRING_set | 2 | +| taint.cpp:142:5:142:10 | select | (ASN1_STRING *,const void *,int) | | ASN1_STRING_set | 2 | +| taint.cpp:142:5:142:10 | select | (ASN1_STRING *,void *,int) | | ASN1_STRING_set0 | 2 | +| taint.cpp:142:5:142:10 | select | (ASN1_TIME *,tm *,int) | | ossl_asn1_time_from_tm | 2 | +| taint.cpp:142:5:142:10 | select | (ASN1_TYPE *,unsigned char *,int) | | ASN1_TYPE_set_octetstring | 2 | +| taint.cpp:142:5:142:10 | select | (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_item_embed_free | 2 | +| taint.cpp:142:5:142:10 | select | (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_primitive_free | 2 | +| taint.cpp:142:5:142:10 | select | (BIGNUM *,const BIGNUM *,int) | | BN_lshift | 2 | +| taint.cpp:142:5:142:10 | select | (BIGNUM *,const BIGNUM *,int) | | BN_rshift | 2 | +| taint.cpp:142:5:142:10 | select | (BIGNUM *,const BIGNUM *,int) | | BN_with_flags | 2 | +| taint.cpp:142:5:142:10 | select | (BIGNUM *,const BIGNUM *,int) | | bn_lshift_fixed_top | 2 | +| taint.cpp:142:5:142:10 | select | (BIGNUM *,const BIGNUM *,int) | | bn_rshift_fixed_top | 2 | +| taint.cpp:142:5:142:10 | select | (BIGNUM *,const unsigned long *,int) | | bn_set_static_words | 2 | +| taint.cpp:142:5:142:10 | select | (BIGNUM *,const unsigned long *,int) | | bn_set_words | 2 | +| taint.cpp:142:5:142:10 | select | (BIO *,BIO *,int) | | OSSL_HTTP_REQ_CTX_new | 2 | +| taint.cpp:142:5:142:10 | select | (BIO *,BIO *,int) | | SMIME_crlf_copy | 2 | +| taint.cpp:142:5:142:10 | select | (BIO *,GENERAL_NAMES *,int) | | OSSL_GENERAL_NAMES_print | 2 | +| taint.cpp:142:5:142:10 | select | (BIO *,char *,int) | | BIO_get_line | 2 | +| taint.cpp:142:5:142:10 | select | (BIO *,const DSA *,int) | | DSA_print | 2 | +| taint.cpp:142:5:142:10 | select | (BIO *,const RSA *,int) | | RSA_print | 2 | +| taint.cpp:142:5:142:10 | select | (CERT *,X509_STORE **,int) | | ssl_cert_get_cert_store | 2 | +| taint.cpp:142:5:142:10 | select | (CRYPTO_THREAD_ROUTINE,void *,int) | | ossl_crypto_thread_native_start | 2 | +| taint.cpp:142:5:142:10 | select | (DH *,const OSSL_PARAM[],int) | | ossl_dh_key_fromdata | 2 | +| taint.cpp:142:5:142:10 | select | (DSA *,const OSSL_PARAM[],int) | | ossl_dsa_key_fromdata | 2 | +| taint.cpp:142:5:142:10 | select | (ECX_KEY *,const OSSL_PARAM[],int) | | ossl_ecx_key_fromdata | 2 | +| taint.cpp:142:5:142:10 | select | (EC_KEY *,const OSSL_PARAM[],int) | | ossl_ec_key_fromdata | 2 | +| taint.cpp:142:5:142:10 | select | (ENGINE *,ENGINE_DYNAMIC_ID,int) | | engine_add_dynamic_id | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_export_to_provider | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_find_operation_cache | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY *,EVP_PKEY *,int) | | evp_keymgmt_util_copy | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,EVP_PKEY *,int) | | EVP_PKEY_derive_set_peer_ex | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,const char *,int) | | EVP_PKEY_CTX_set1_pbe_pass | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_hkdf_info | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_tls1_prf_seed | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_key | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_salt | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_scrypt_salt | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_tls1_prf_secret | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set_mac_key | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | +| taint.cpp:142:5:142:10 | select | (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | +| taint.cpp:142:5:142:10 | select | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | +| taint.cpp:142:5:142:10 | select | (FILE *,const DSA *,int) | | DSA_print_fp | 2 | +| taint.cpp:142:5:142:10 | select | (FILE *,const RSA *,int) | | RSA_print_fp | 2 | +| taint.cpp:142:5:142:10 | select | (FILE *,rule *,int) | | RulePrint | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,Jim_Obj *,int) | | Jim_ListGetIndex | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,Jim_Obj *,int) | | Jim_UnsetVariable | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewDictObj | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewListObj | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,char *,int) | | Jim_NewStringObjNoAlloc | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,const char *,int) | | Jim_GetGlobalVariableStr | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,const char *,int) | | Jim_GetVariableStr | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,const char *,int) | | Jim_MakeTempFile | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,const char *,int) | | Jim_NewStringObj | 2 | +| taint.cpp:142:5:142:10 | select | (Jim_Interp *,const char *,int) | | Jim_NewStringObjUtf8 | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_BASICRESP *,OCSP_CERTID *,int) | | OCSP_resp_find | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_BASICRESP *,X509_EXTENSION *,int) | | OCSP_BASICRESP_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_BASICRESP *,const ASN1_OBJECT *,int) | | OCSP_BASICRESP_get_ext_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_critical | 1 | +| taint.cpp:142:5:142:10 | select | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_critical | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_ONEREQ *,X509_EXTENSION *,int) | | OCSP_ONEREQ_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_ONEREQ *,const ASN1_OBJECT *,int) | | OCSP_ONEREQ_get_ext_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_critical | 1 | +| taint.cpp:142:5:142:10 | select | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_critical | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_REQUEST *,X509_EXTENSION *,int) | | OCSP_REQUEST_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_REQUEST *,const ASN1_OBJECT *,int) | | OCSP_REQUEST_get_ext_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_critical | 1 | +| taint.cpp:142:5:142:10 | select | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_critical | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_SINGLERESP *,X509_EXTENSION *,int) | | OCSP_SINGLERESP_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_SINGLERESP *,const ASN1_OBJECT *,int) | | OCSP_SINGLERESP_get_ext_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_critical | 1 | +| taint.cpp:142:5:142:10 | select | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_critical | 2 | +| taint.cpp:142:5:142:10 | select | (OPENSSL_STACK *,const void *,int) | | OPENSSL_sk_insert | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_referenceValue | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_secretValue | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_CMP_CTX *,int,int) | | OSSL_CMP_CTX_set_option | 1 | +| taint.cpp:142:5:142:10 | select | (OSSL_CMP_CTX *,int,int) | | OSSL_CMP_CTX_set_option | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_LIB_CTX *,const char *,int) | | EC_GROUP_new_by_curve_name_ex | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_LIB_CTX *,const char *,int) | | EC_KEY_new_by_curve_name_ex | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_LIB_CTX *,const char *,int) | | OSSL_PROVIDER_try_load | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_dsa_key_new | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_kem_key_new | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_LIB_CTX *,const char *,int) | | ossl_parse_query | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_name | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_value | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_PROVIDER *,OSSL_PROVIDER **,int) | | ossl_provider_add_to_store | 2 | +| taint.cpp:142:5:142:10 | select | (OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int) | | ossl_qrl_enc_level_set_get | 2 | +| taint.cpp:142:5:142:10 | select | (PKCS7 *,stack_st_X509 *,int) | | PKCS7_get0_signers | 2 | +| taint.cpp:142:5:142:10 | select | (POLICYINFO *,const ASN1_OBJECT *,int) | | ossl_policy_data_new | 2 | +| taint.cpp:142:5:142:10 | select | (PROV_CTX *,const char *,int) | | ossl_prov_ctx_get_bool_param | 2 | +| taint.cpp:142:5:142:10 | select | (PROV_CTX *,const char *,int) | | ossl_prov_ml_dsa_new | 2 | +| taint.cpp:142:5:142:10 | select | (PROV_CTX *,const char *,int) | | ossl_prov_ml_kem_new | 2 | +| taint.cpp:142:5:142:10 | select | (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 2 | +| taint.cpp:142:5:142:10 | select | (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | +| taint.cpp:142:5:142:10 | select | (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | +| taint.cpp:142:5:142:10 | select | (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | +| taint.cpp:142:5:142:10 | select | (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | +| taint.cpp:142:5:142:10 | select | (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | +| taint.cpp:142:5:142:10 | select | (SSL *,SSL *,int) | | create_ssl_connection | 2 | +| taint.cpp:142:5:142:10 | select | (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | +| taint.cpp:142:5:142:10 | select | (SSL *,const void *,int) | | SSL_write | 2 | +| taint.cpp:142:5:142:10 | select | (SSL *,void *,int) | | SSL_peek | 2 | +| taint.cpp:142:5:142:10 | select | (SSL *,void *,int) | | SSL_read | 2 | +| taint.cpp:142:5:142:10 | select | (SSL *,void *,int) | | SSL_set_session_ticket_ext | 2 | +| taint.cpp:142:5:142:10 | select | (SSL_CIPHER *,const SSL_CIPHER *,int) | | OBJ_bsearch_ssl_cipher_id | 2 | +| taint.cpp:142:5:142:10 | select | (SSL_CONNECTION *,PACKET *,int) | | ssl_cache_cipherlist | 2 | +| taint.cpp:142:5:142:10 | select | (SSL_CONNECTION *,WPACKET *,int) | | dtls1_close_construct_packet | 2 | +| taint.cpp:142:5:142:10 | select | (SSL_CONNECTION *,WPACKET *,int) | | dtls1_set_handshake_header | 2 | +| taint.cpp:142:5:142:10 | select | (SSL_CONNECTION *,WPACKET *,int) | | tls_close_construct_packet | 2 | +| taint.cpp:142:5:142:10 | select | (SSL_CONNECTION *,int,int) | | ssl3_send_alert | 1 | +| taint.cpp:142:5:142:10 | select | (SSL_CONNECTION *,int,int) | | ssl3_send_alert | 2 | +| taint.cpp:142:5:142:10 | select | (TS_MSG_IMPRINT *,unsigned char *,int) | | TS_MSG_IMPRINT_set_msg | 2 | +| taint.cpp:142:5:142:10 | select | (TS_REQ *,X509_EXTENSION *,int) | | TS_REQ_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (TS_REQ *,const ASN1_OBJECT *,int) | | TS_REQ_get_ext_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_critical | 1 | +| taint.cpp:142:5:142:10 | select | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_critical | 2 | +| taint.cpp:142:5:142:10 | select | (TS_TST_INFO *,X509_EXTENSION *,int) | | TS_TST_INFO_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (TS_TST_INFO *,const ASN1_OBJECT *,int) | | TS_TST_INFO_get_ext_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_critical | 1 | +| taint.cpp:142:5:142:10 | select | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_critical | 2 | +| taint.cpp:142:5:142:10 | select | (X509 *,X509_EXTENSION *,int) | | X509_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (X509 *,int,int) | | X509_check_purpose | 1 | +| taint.cpp:142:5:142:10 | select | (X509 *,int,int) | | X509_check_purpose | 2 | +| taint.cpp:142:5:142:10 | select | (X509 *,int,int) | | X509_check_trust | 1 | +| taint.cpp:142:5:142:10 | select | (X509 *,int,int) | | X509_check_trust | 2 | +| taint.cpp:142:5:142:10 | select | (X509_CRL *,X509_EXTENSION *,int) | | X509_CRL_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (X509_PUBKEY *,unsigned char *,int) | | X509_PUBKEY_set0_public_key | 2 | +| taint.cpp:142:5:142:10 | select | (X509_REVOKED *,X509_EXTENSION *,int) | | X509_REVOKED_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 2 | | taint.cpp:142:5:142:10 | select | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | | taint.cpp:142:5:142:10 | select | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 | +| taint.cpp:142:5:142:10 | select | (action *,FILE *,int) | | PrintAction | 2 | +| taint.cpp:142:5:142:10 | select | (acttab *,int,int) | | acttab_action | 1 | +| taint.cpp:142:5:142:10 | select | (acttab *,int,int) | | acttab_action | 2 | +| taint.cpp:142:5:142:10 | select | (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | +| taint.cpp:142:5:142:10 | select | (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | +| taint.cpp:142:5:142:10 | select | (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | +| taint.cpp:142:5:142:10 | select | (const BIGNUM *,unsigned char *,int) | | BN_bn2lebinpad | 2 | +| taint.cpp:142:5:142:10 | select | (const BIGNUM *,unsigned char *,int) | | BN_bn2nativepad | 2 | +| taint.cpp:142:5:142:10 | select | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2bin | 2 | +| taint.cpp:142:5:142:10 | select | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2lebin | 2 | +| taint.cpp:142:5:142:10 | select | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2native | 2 | +| taint.cpp:142:5:142:10 | select | (const CMS_ContentInfo *,BIO *,int) | | ossl_cms_DigestedData_do_final | 2 | +| taint.cpp:142:5:142:10 | select | (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_signed_get_attr_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_unsigned_get_attr_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const CMS_SignerInfo *,int,int) | | CMS_signed_get_attr_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const CMS_SignerInfo *,int,int) | | CMS_signed_get_attr_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const CMS_SignerInfo *,int,int) | | CMS_unsigned_get_attr_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const CMS_SignerInfo *,int,int) | | CMS_unsigned_get_attr_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const EVP_MD *,const EVP_MD *,int) | | ossl_rsa_pss_params_create | 2 | +| taint.cpp:142:5:142:10 | select | (const EVP_PKEY *,const ASN1_OBJECT *,int) | | EVP_PKEY_get_attr_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const EVP_PKEY *,int,int) | | EVP_PKEY_get_attr_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const EVP_PKEY *,int,int) | | EVP_PKEY_get_attr_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const OSSL_PARAM *,BIO *,int) | | OSSL_PARAM_print_to_bio | 2 | +| taint.cpp:142:5:142:10 | select | (const OSSL_PROVIDER *,const char *,int) | | OSSL_PROVIDER_conf_get_bool | 2 | +| taint.cpp:142:5:142:10 | select | (const SSL *,char *,int) | | SSL_get_shared_ciphers | 2 | +| taint.cpp:142:5:142:10 | select | (const SSL *,int,int) | | apps_ssl_info_callback | 1 | +| taint.cpp:142:5:142:10 | select | (const SSL *,int,int) | | apps_ssl_info_callback | 2 | +| taint.cpp:142:5:142:10 | select | (const SSL_CIPHER *,char *,int) | | SSL_CIPHER_description | 2 | +| taint.cpp:142:5:142:10 | select | (const X509 *,const ASN1_OBJECT *,int) | | X509_get_ext_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_new_init | 2 | +| taint.cpp:142:5:142:10 | select | (const X509 *,int,int) | | X509_get_ext_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const X509 *,int,int) | | X509_get_ext_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const X509 *,int,int) | | X509_get_ext_by_critical | 1 | +| taint.cpp:142:5:142:10 | select | (const X509 *,int,int) | | X509_get_ext_by_critical | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_ACERT *,const ASN1_OBJECT *,int) | | X509_ACERT_get_attr_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_ACERT *,int,int) | | X509_ACERT_get_attr_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const X509_ACERT *,int,int) | | X509_ACERT_get_attr_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_CRL *,const ASN1_OBJECT *,int) | | X509_CRL_get_ext_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_CRL *,const X509 *,int) | | OSSL_CMP_CRLSTATUS_create | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_critical | 1 | +| taint.cpp:142:5:142:10 | select | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_critical | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_NAME *,char *,int) | | X509_NAME_oneline | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_NAME *,const ASN1_OBJECT *,int) | | X509_NAME_get_index_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_NAME *,int,int) | | X509_NAME_get_index_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const X509_NAME *,int,int) | | X509_NAME_get_index_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_REQ *,const ASN1_OBJECT *,int) | | X509_REQ_get_attr_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_REQ *,int,int) | | X509_REQ_get_attr_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const X509_REQ *,int,int) | | X509_REQ_get_attr_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_REVOKED *,const ASN1_OBJECT *,int) | | X509_REVOKED_get_ext_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 1 | +| taint.cpp:142:5:142:10 | select | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | +| taint.cpp:142:5:142:10 | select | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,SD *,int) | | sd_load | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,const char *,int) | | CRYPTO_strdup | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,long *,int) | | Jim_StringToWide | 2 | +| taint.cpp:142:5:142:10 | select | (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | +| taint.cpp:142:5:142:10 | select | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 2 | +| taint.cpp:142:5:142:10 | select | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_NID | 1 | +| taint.cpp:142:5:142:10 | select | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_NID | 2 | +| taint.cpp:142:5:142:10 | select | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_critical | 1 | +| taint.cpp:142:5:142:10 | select | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_critical | 2 | +| taint.cpp:142:5:142:10 | select | (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | +| taint.cpp:142:5:142:10 | select | (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | +| taint.cpp:142:5:142:10 | select | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | +| taint.cpp:142:5:142:10 | select | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | +| taint.cpp:142:5:142:10 | select | (int,int,int) | | ASN1_object_size | 0 | +| taint.cpp:142:5:142:10 | select | (int,int,int) | | ASN1_object_size | 1 | +| taint.cpp:142:5:142:10 | select | (int,int,int) | | ASN1_object_size | 2 | +| taint.cpp:142:5:142:10 | select | (int,int,int) | | EVP_CIPHER_meth_new | 0 | +| taint.cpp:142:5:142:10 | select | (int,int,int) | | EVP_CIPHER_meth_new | 1 | +| taint.cpp:142:5:142:10 | select | (int,int,int) | | EVP_CIPHER_meth_new | 2 | +| taint.cpp:142:5:142:10 | select | (regex_t *,const char *,int) | | jim_regcomp | 2 | +| taint.cpp:142:5:142:10 | select | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | +| taint.cpp:142:5:142:10 | select | (sqlite3 *,int,int) | | sqlite3_limit | 1 | +| taint.cpp:142:5:142:10 | select | (sqlite3 *,int,int) | | sqlite3_limit | 2 | +| taint.cpp:142:5:142:10 | select | (sqlite3_context *,const char *,int) | | sqlite3_result_error | 2 | +| taint.cpp:142:5:142:10 | select | (sqlite3_context *,const void *,int) | | sqlite3_result_error16 | 2 | +| taint.cpp:142:5:142:10 | select | (sqlite3_index_info *,int,int) | | sqlite3_vtab_in | 1 | +| taint.cpp:142:5:142:10 | select | (sqlite3_index_info *,int,int) | | sqlite3_vtab_in | 2 | +| taint.cpp:142:5:142:10 | select | (sqlite3_stmt *,int,int) | | sqlite3_bind_int | 1 | +| taint.cpp:142:5:142:10 | select | (sqlite3_stmt *,int,int) | | sqlite3_bind_int | 2 | +| taint.cpp:142:5:142:10 | select | (sqlite3_stmt *,int,int) | | sqlite3_bind_zeroblob | 1 | +| taint.cpp:142:5:142:10 | select | (sqlite3_stmt *,int,int) | | sqlite3_bind_zeroblob | 2 | +| taint.cpp:142:5:142:10 | select | (sqlite3_stmt *,int,int) | | sqlite3_stmt_status | 1 | +| taint.cpp:142:5:142:10 | select | (sqlite3_stmt *,int,int) | | sqlite3_stmt_status | 2 | +| taint.cpp:142:5:142:10 | select | (sqlite3_str *,const char *,int) | | sqlite3_str_append | 2 | +| taint.cpp:142:5:142:10 | select | (sqlite3expert *,int,int) | | sqlite3_expert_report | 1 | +| taint.cpp:142:5:142:10 | select | (sqlite3expert *,int,int) | | sqlite3_expert_report | 2 | +| taint.cpp:142:5:142:10 | select | (stack_st_ASN1_UTF8STRING *,const char *,int) | | ossl_cmp_sk_ASN1_UTF8STRING_push_str | 2 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509 **,X509 *,int) | | ossl_x509_add_cert_new | 2 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509 **,stack_st_X509 *,int) | | ossl_x509_add_certs_new | 2 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509 *,ASIdentifiers *,int) | | X509v3_asid_validate_resource_set | 2 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 2 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509 *,X509 *,int) | | X509_add_cert | 2 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509 *,stack_st_X509 *,int) | | X509_add_certs | 2 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 1 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 2 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 1 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | +| taint.cpp:142:5:142:10 | select | (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | +| taint.cpp:142:5:142:10 | select | (uint8_t[56],const gf,int) | | gf_serialize | 2 | +| taint.cpp:142:5:142:10 | select | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | +| taint.cpp:142:5:142:10 | select | (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | +| taint.cpp:142:5:142:10 | select | (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | +| taint.cpp:142:5:142:10 | select | (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | +| taint.cpp:142:5:142:10 | select | (unsigned int,int,int) | | ossl_blob_length | 1 | +| taint.cpp:142:5:142:10 | select | (unsigned int,int,int) | | ossl_blob_length | 2 | +| taint.cpp:142:5:142:10 | select | (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | +| taint.cpp:142:5:142:10 | select | (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 2 | +| taint.cpp:142:5:142:10 | select | (void *,const char *,int) | | CRYPTO_secure_free | 2 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | ASN1_STRING_type_new | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | ASN1_tag2bit | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | ASN1_tag2str | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | EVP_PKEY_asn1_get0 | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | Jim_ReturnCode | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | Jim_SignalId | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | OBJ_nid2ln | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | OBJ_nid2obj | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | OBJ_nid2sn | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | OSSL_STORE_INFO_type_string | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | OSSL_trace_get_category_name | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | PKCS12_init | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | Symbol_Nth | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | X509_PURPOSE_get0 | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | X509_PURPOSE_get_by_id | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | X509_TRUST_get0 | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | X509_TRUST_get_by_id | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | ossl_cmp_bodytype_to_string | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | ossl_tolower | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | ossl_toupper | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | pulldown_test_framework | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | sqlite3_compileoption_get | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | sqlite3_errstr | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | tls1_alert_code | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | tls13_alert_code | 0 | +| taint.cpp:150:6:150:12 | fn_test | (int) | | wait_until_sock_readable | 0 | +| taint.cpp:156:7:156:12 | strcpy | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | +| taint.cpp:156:7:156:12 | strcpy | (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (BIGNUM **,const char *) | | BN_asc2bn | 1 | +| taint.cpp:156:7:156:12 | strcpy | (BIGNUM **,const char *) | | BN_dec2bn | 1 | +| taint.cpp:156:7:156:12 | strcpy | (BIGNUM **,const char *) | | BN_hex2bn | 1 | +| taint.cpp:156:7:156:12 | strcpy | (CONF *,const char *) | | TS_CONF_get_tsa_section | 1 | +| taint.cpp:156:7:156:12 | strcpy | (CONF *,const char *) | | _CONF_new_section | 1 | +| taint.cpp:156:7:156:12 | strcpy | (DH_METHOD *,const char *) | | DH_meth_set1_name | 1 | +| taint.cpp:156:7:156:12 | strcpy | (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 1 | +| taint.cpp:156:7:156:12 | strcpy | (DSO *,const char *) | | DSO_convert_filename | 1 | +| taint.cpp:156:7:156:12 | strcpy | (DSO *,const char *) | | DSO_set_filename | 1 | +| taint.cpp:156:7:156:12 | strcpy | (ENGINE *,const char *) | | ENGINE_set_id | 1 | +| taint.cpp:156:7:156:12 | strcpy | (ENGINE *,const char *) | | ENGINE_set_name | 1 | +| taint.cpp:156:7:156:12 | strcpy | (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 1 | +| taint.cpp:156:7:156:12 | strcpy | (EVP_PKEY *,const char *) | | CTLOG_new | 1 | +| taint.cpp:156:7:156:12 | strcpy | (EVP_PKEY_CTX *,const char *) | | app_paramgen | 1 | +| taint.cpp:156:7:156:12 | strcpy | (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (Jim_Interp *,const char *) | | Jim_Eval | 1 | +| taint.cpp:156:7:156:12 | strcpy | (Jim_Interp *,const char *) | | Jim_EvalFile | 1 | +| taint.cpp:156:7:156:12 | strcpy | (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 1 | +| taint.cpp:156:7:156:12 | strcpy | (Jim_Interp *,const char *) | | Jim_EvalGlobal | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 1 | +| taint.cpp:156:7:156:12 | strcpy | (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 1 | +| taint.cpp:156:7:156:12 | strcpy | (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 1 | +| taint.cpp:156:7:156:12 | strcpy | (SSL *,const char *) | | SSL_add1_host | 1 | +| taint.cpp:156:7:156:12 | strcpy | (SSL *,const char *) | | SSL_set1_host | 1 | +| taint.cpp:156:7:156:12 | strcpy | (SSL *,const char *) | | SSL_set_cipher_list | 1 | +| taint.cpp:156:7:156:12 | strcpy | (SSL *,const char *) | | SSL_use_psk_identity_hint | 1 | +| taint.cpp:156:7:156:12 | strcpy | (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 1 | +| taint.cpp:156:7:156:12 | strcpy | (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 1 | +| taint.cpp:156:7:156:12 | strcpy | (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 1 | +| taint.cpp:156:7:156:12 | strcpy | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | +| taint.cpp:156:7:156:12 | strcpy | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | +| taint.cpp:156:7:156:12 | strcpy | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | +| taint.cpp:156:7:156:12 | strcpy | (STANZA *,const char *) | | test_start_file | 1 | +| taint.cpp:156:7:156:12 | strcpy | (UI *,const char *) | | UI_add_error_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (UI *,const char *) | | UI_add_info_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (UI *,const char *) | | UI_dup_error_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (UI *,const char *) | | UI_dup_info_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (X509 *,const char *) | | x509_ctrl_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | +| taint.cpp:156:7:156:12 | strcpy | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | +| taint.cpp:156:7:156:12 | strcpy | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | Configcmp | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | DES_crypt | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | get_passwd | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | openssl_fopen | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | ossl_pem_check_suffix | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | ossl_v3_name_cmp | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | sqlite3_strglob | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | test_mk_file_path | 1 | +| taint.cpp:156:7:156:12 | strcpy | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:156:7:156:12 | strcpy | (lemon *,const char *) | | file_makename | 1 | +| taint.cpp:156:7:156:12 | strcpy | (size_t *,const char *) | | next_protos_parse | 1 | +| taint.cpp:156:7:156:12 | strcpy | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | +| taint.cpp:156:7:156:12 | strcpy | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | +| taint.cpp:156:7:156:12 | strcpy | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | +| taint.cpp:156:7:156:12 | strcpy | (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 1 | +| taint.cpp:156:7:156:12 | strcpy | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | +| taint.cpp:156:7:156:12 | strcpy | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | +| taint.cpp:156:7:156:12 | strcpy | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:156:7:156:12 | strcpy | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | +| taint.cpp:156:7:156:12 | strcpy | (unsigned long *,const char *) | | set_cert_ex | 1 | +| taint.cpp:156:7:156:12 | strcpy | (unsigned long *,const char *) | | set_name_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | +| taint.cpp:157:7:157:12 | strcat | (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (BIGNUM **,const char *) | | BN_asc2bn | 1 | +| taint.cpp:157:7:157:12 | strcat | (BIGNUM **,const char *) | | BN_dec2bn | 1 | +| taint.cpp:157:7:157:12 | strcat | (BIGNUM **,const char *) | | BN_hex2bn | 1 | +| taint.cpp:157:7:157:12 | strcat | (CONF *,const char *) | | TS_CONF_get_tsa_section | 1 | +| taint.cpp:157:7:157:12 | strcat | (CONF *,const char *) | | _CONF_new_section | 1 | +| taint.cpp:157:7:157:12 | strcat | (DH_METHOD *,const char *) | | DH_meth_set1_name | 1 | +| taint.cpp:157:7:157:12 | strcat | (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 1 | +| taint.cpp:157:7:157:12 | strcat | (DSO *,const char *) | | DSO_convert_filename | 1 | +| taint.cpp:157:7:157:12 | strcat | (DSO *,const char *) | | DSO_set_filename | 1 | +| taint.cpp:157:7:157:12 | strcat | (ENGINE *,const char *) | | ENGINE_set_id | 1 | +| taint.cpp:157:7:157:12 | strcat | (ENGINE *,const char *) | | ENGINE_set_name | 1 | +| taint.cpp:157:7:157:12 | strcat | (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 1 | +| taint.cpp:157:7:157:12 | strcat | (EVP_PKEY *,const char *) | | CTLOG_new | 1 | +| taint.cpp:157:7:157:12 | strcat | (EVP_PKEY_CTX *,const char *) | | app_paramgen | 1 | +| taint.cpp:157:7:157:12 | strcat | (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (Jim_Interp *,const char *) | | Jim_Eval | 1 | +| taint.cpp:157:7:157:12 | strcat | (Jim_Interp *,const char *) | | Jim_EvalFile | 1 | +| taint.cpp:157:7:157:12 | strcat | (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 1 | +| taint.cpp:157:7:157:12 | strcat | (Jim_Interp *,const char *) | | Jim_EvalGlobal | 1 | +| taint.cpp:157:7:157:12 | strcat | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | +| taint.cpp:157:7:157:12 | strcat | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | +| taint.cpp:157:7:157:12 | strcat | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 1 | +| taint.cpp:157:7:157:12 | strcat | (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 1 | +| taint.cpp:157:7:157:12 | strcat | (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 1 | +| taint.cpp:157:7:157:12 | strcat | (SSL *,const char *) | | SSL_add1_host | 1 | +| taint.cpp:157:7:157:12 | strcat | (SSL *,const char *) | | SSL_set1_host | 1 | +| taint.cpp:157:7:157:12 | strcat | (SSL *,const char *) | | SSL_set_cipher_list | 1 | +| taint.cpp:157:7:157:12 | strcat | (SSL *,const char *) | | SSL_use_psk_identity_hint | 1 | +| taint.cpp:157:7:157:12 | strcat | (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 1 | +| taint.cpp:157:7:157:12 | strcat | (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 1 | +| taint.cpp:157:7:157:12 | strcat | (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 1 | +| taint.cpp:157:7:157:12 | strcat | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | +| taint.cpp:157:7:157:12 | strcat | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | +| taint.cpp:157:7:157:12 | strcat | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | +| taint.cpp:157:7:157:12 | strcat | (STANZA *,const char *) | | test_start_file | 1 | +| taint.cpp:157:7:157:12 | strcat | (UI *,const char *) | | UI_add_error_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (UI *,const char *) | | UI_add_info_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (UI *,const char *) | | UI_dup_error_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (UI *,const char *) | | UI_dup_info_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (X509 *,const char *) | | x509_ctrl_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | +| taint.cpp:157:7:157:12 | strcat | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | +| taint.cpp:157:7:157:12 | strcat | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:157:7:157:12 | strcat | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | Configcmp | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | DES_crypt | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | get_passwd | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | openssl_fopen | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | ossl_pem_check_suffix | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | ossl_v3_name_cmp | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | sqlite3_strglob | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | test_mk_file_path | 1 | +| taint.cpp:157:7:157:12 | strcat | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:157:7:157:12 | strcat | (lemon *,const char *) | | file_makename | 1 | +| taint.cpp:157:7:157:12 | strcat | (size_t *,const char *) | | next_protos_parse | 1 | +| taint.cpp:157:7:157:12 | strcat | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | +| taint.cpp:157:7:157:12 | strcat | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | +| taint.cpp:157:7:157:12 | strcat | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | +| taint.cpp:157:7:157:12 | strcat | (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 1 | +| taint.cpp:157:7:157:12 | strcat | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | +| taint.cpp:157:7:157:12 | strcat | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | +| taint.cpp:157:7:157:12 | strcat | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:157:7:157:12 | strcat | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | +| taint.cpp:157:7:157:12 | strcat | (unsigned long *,const char *) | | set_cert_ex | 1 | +| taint.cpp:157:7:157:12 | strcat | (unsigned long *,const char *) | | set_name_ex | 1 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_OCTET_STRING **,const unsigned char *,int) | | ossl_cmp_asn1_octet_string_set1_bytes | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_OCTET_STRING *,const unsigned char *,int) | | ASN1_OCTET_STRING_set | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_STRING *,const void *,int) | | ASN1_STRING_set | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_STRING *,void *,int) | | ASN1_STRING_set0 | 1 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_STRING *,void *,int) | | ASN1_STRING_set0 | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_TIME *,tm *,int) | | ossl_asn1_time_from_tm | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_TYPE *,unsigned char *,int) | | ASN1_TYPE_set_octetstring | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_item_embed_free | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_primitive_free | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIGNUM *,const BIGNUM *,int) | | BN_lshift | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIGNUM *,const BIGNUM *,int) | | BN_rshift | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIGNUM *,const BIGNUM *,int) | | BN_with_flags | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIGNUM *,const BIGNUM *,int) | | bn_lshift_fixed_top | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIGNUM *,const BIGNUM *,int) | | bn_rshift_fixed_top | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIGNUM *,const unsigned long *,int) | | bn_set_static_words | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIGNUM *,const unsigned long *,int) | | bn_set_words | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIO *,BIO *,int) | | OSSL_HTTP_REQ_CTX_new | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIO *,BIO *,int) | | SMIME_crlf_copy | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIO *,GENERAL_NAMES *,int) | | OSSL_GENERAL_NAMES_print | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIO *,char *,int) | | BIO_get_line | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIO *,const DSA *,int) | | DSA_print | 2 | +| taint.cpp:190:7:190:12 | memcpy | (BIO *,const RSA *,int) | | RSA_print | 2 | +| taint.cpp:190:7:190:12 | memcpy | (CERT *,X509_STORE **,int) | | ssl_cert_get_cert_store | 2 | +| taint.cpp:190:7:190:12 | memcpy | (CRYPTO_THREAD_ROUTINE,void *,int) | | ossl_crypto_thread_native_start | 1 | +| taint.cpp:190:7:190:12 | memcpy | (CRYPTO_THREAD_ROUTINE,void *,int) | | ossl_crypto_thread_native_start | 2 | +| taint.cpp:190:7:190:12 | memcpy | (DH *,const OSSL_PARAM[],int) | | ossl_dh_key_fromdata | 2 | +| taint.cpp:190:7:190:12 | memcpy | (DSA *,const OSSL_PARAM[],int) | | ossl_dsa_key_fromdata | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ECX_KEY *,const OSSL_PARAM[],int) | | ossl_ecx_key_fromdata | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EC_KEY *,const OSSL_PARAM[],int) | | ossl_ec_key_fromdata | 2 | +| taint.cpp:190:7:190:12 | memcpy | (ENGINE *,ENGINE_DYNAMIC_ID,int) | | engine_add_dynamic_id | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_export_to_provider | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_find_operation_cache | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY *,EVP_PKEY *,int) | | evp_keymgmt_util_copy | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,EVP_PKEY *,int) | | EVP_PKEY_derive_set_peer_ex | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,const char *,int) | | EVP_PKEY_CTX_set1_pbe_pass | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_hkdf_info | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_tls1_prf_seed | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_key | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_salt | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_scrypt_salt | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_tls1_prf_secret | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set_mac_key | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | +| taint.cpp:190:7:190:12 | memcpy | (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | +| taint.cpp:190:7:190:12 | memcpy | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | +| taint.cpp:190:7:190:12 | memcpy | (FILE *,const DSA *,int) | | DSA_print_fp | 2 | +| taint.cpp:190:7:190:12 | memcpy | (FILE *,const RSA *,int) | | RSA_print_fp | 2 | +| taint.cpp:190:7:190:12 | memcpy | (FILE *,rule *,int) | | RulePrint | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,Jim_Obj *,int) | | Jim_ListGetIndex | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,Jim_Obj *,int) | | Jim_UnsetVariable | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewDictObj | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewListObj | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,char *,int) | | Jim_NewStringObjNoAlloc | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,const char *,int) | | Jim_GetGlobalVariableStr | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,const char *,int) | | Jim_GetVariableStr | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,const char *,int) | | Jim_MakeTempFile | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,const char *,int) | | Jim_NewStringObj | 2 | +| taint.cpp:190:7:190:12 | memcpy | (Jim_Interp *,const char *,int) | | Jim_NewStringObjUtf8 | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_BASICRESP *,OCSP_CERTID *,int) | | OCSP_resp_find | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_BASICRESP *,X509_EXTENSION *,int) | | OCSP_BASICRESP_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_BASICRESP *,const ASN1_OBJECT *,int) | | OCSP_BASICRESP_get_ext_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_critical | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_ONEREQ *,X509_EXTENSION *,int) | | OCSP_ONEREQ_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_ONEREQ *,const ASN1_OBJECT *,int) | | OCSP_ONEREQ_get_ext_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_critical | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_REQUEST *,X509_EXTENSION *,int) | | OCSP_REQUEST_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_REQUEST *,const ASN1_OBJECT *,int) | | OCSP_REQUEST_get_ext_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_critical | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_SINGLERESP *,X509_EXTENSION *,int) | | OCSP_SINGLERESP_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_SINGLERESP *,const ASN1_OBJECT *,int) | | OCSP_SINGLERESP_get_ext_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_critical | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OPENSSL_STACK *,const void *,int) | | OPENSSL_sk_insert | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_referenceValue | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_secretValue | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_CMP_CTX *,int,int) | | OSSL_CMP_CTX_set_option | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_LIB_CTX *,const char *,int) | | EC_GROUP_new_by_curve_name_ex | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_LIB_CTX *,const char *,int) | | EC_KEY_new_by_curve_name_ex | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_LIB_CTX *,const char *,int) | | OSSL_PROVIDER_try_load | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_dsa_key_new | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_kem_key_new | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_LIB_CTX *,const char *,int) | | ossl_parse_query | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_name | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_value | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_PROVIDER *,OSSL_PROVIDER **,int) | | ossl_provider_add_to_store | 2 | +| taint.cpp:190:7:190:12 | memcpy | (OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int) | | ossl_qrl_enc_level_set_get | 2 | +| taint.cpp:190:7:190:12 | memcpy | (PKCS7 *,stack_st_X509 *,int) | | PKCS7_get0_signers | 2 | +| taint.cpp:190:7:190:12 | memcpy | (POLICYINFO *,const ASN1_OBJECT *,int) | | ossl_policy_data_new | 2 | +| taint.cpp:190:7:190:12 | memcpy | (PROV_CTX *,const char *,int) | | ossl_prov_ctx_get_bool_param | 2 | +| taint.cpp:190:7:190:12 | memcpy | (PROV_CTX *,const char *,int) | | ossl_prov_ml_dsa_new | 2 | +| taint.cpp:190:7:190:12 | memcpy | (PROV_CTX *,const char *,int) | | ossl_prov_ml_kem_new | 2 | +| taint.cpp:190:7:190:12 | memcpy | (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 2 | +| taint.cpp:190:7:190:12 | memcpy | (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | +| taint.cpp:190:7:190:12 | memcpy | (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | +| taint.cpp:190:7:190:12 | memcpy | (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | +| taint.cpp:190:7:190:12 | memcpy | (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | +| taint.cpp:190:7:190:12 | memcpy | (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL *,SSL *,int) | | create_ssl_connection | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL *,const void *,int) | | SSL_write | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL *,void *,int) | | SSL_peek | 1 | +| taint.cpp:190:7:190:12 | memcpy | (SSL *,void *,int) | | SSL_peek | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL *,void *,int) | | SSL_read | 1 | +| taint.cpp:190:7:190:12 | memcpy | (SSL *,void *,int) | | SSL_read | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL *,void *,int) | | SSL_set_session_ticket_ext | 1 | +| taint.cpp:190:7:190:12 | memcpy | (SSL *,void *,int) | | SSL_set_session_ticket_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL_CIPHER *,const SSL_CIPHER *,int) | | OBJ_bsearch_ssl_cipher_id | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL_CONNECTION *,PACKET *,int) | | ssl_cache_cipherlist | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL_CONNECTION *,WPACKET *,int) | | dtls1_close_construct_packet | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL_CONNECTION *,WPACKET *,int) | | dtls1_set_handshake_header | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL_CONNECTION *,WPACKET *,int) | | tls_close_construct_packet | 2 | +| taint.cpp:190:7:190:12 | memcpy | (SSL_CONNECTION *,int,int) | | ssl3_send_alert | 2 | +| taint.cpp:190:7:190:12 | memcpy | (TS_MSG_IMPRINT *,unsigned char *,int) | | TS_MSG_IMPRINT_set_msg | 2 | +| taint.cpp:190:7:190:12 | memcpy | (TS_REQ *,X509_EXTENSION *,int) | | TS_REQ_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (TS_REQ *,const ASN1_OBJECT *,int) | | TS_REQ_get_ext_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_critical | 2 | +| taint.cpp:190:7:190:12 | memcpy | (TS_TST_INFO *,X509_EXTENSION *,int) | | TS_TST_INFO_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (TS_TST_INFO *,const ASN1_OBJECT *,int) | | TS_TST_INFO_get_ext_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_critical | 2 | +| taint.cpp:190:7:190:12 | memcpy | (X509 *,X509_EXTENSION *,int) | | X509_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (X509 *,int,int) | | X509_check_purpose | 2 | +| taint.cpp:190:7:190:12 | memcpy | (X509 *,int,int) | | X509_check_trust | 2 | +| taint.cpp:190:7:190:12 | memcpy | (X509_CRL *,X509_EXTENSION *,int) | | X509_CRL_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (X509_PUBKEY *,unsigned char *,int) | | X509_PUBKEY_set0_public_key | 2 | +| taint.cpp:190:7:190:12 | memcpy | (X509_REVOKED *,X509_EXTENSION *,int) | | X509_REVOKED_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 2 | | taint.cpp:190:7:190:12 | memcpy | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | | taint.cpp:190:7:190:12 | memcpy | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 | +| taint.cpp:190:7:190:12 | memcpy | (action *,FILE *,int) | | PrintAction | 2 | +| taint.cpp:190:7:190:12 | memcpy | (acttab *,int,int) | | acttab_action | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const BIGNUM *,unsigned char *,int) | | BN_bn2lebinpad | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const BIGNUM *,unsigned char *,int) | | BN_bn2nativepad | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2bin | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2lebin | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2native | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const CMS_ContentInfo *,BIO *,int) | | ossl_cms_DigestedData_do_final | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_signed_get_attr_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_unsigned_get_attr_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const CMS_SignerInfo *,int,int) | | CMS_signed_get_attr_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const CMS_SignerInfo *,int,int) | | CMS_unsigned_get_attr_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const EVP_MD *,const EVP_MD *,int) | | ossl_rsa_pss_params_create | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const EVP_PKEY *,const ASN1_OBJECT *,int) | | EVP_PKEY_get_attr_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const EVP_PKEY *,int,int) | | EVP_PKEY_get_attr_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const OSSL_PARAM *,BIO *,int) | | OSSL_PARAM_print_to_bio | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const OSSL_PROVIDER *,const char *,int) | | OSSL_PROVIDER_conf_get_bool | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const SSL *,char *,int) | | SSL_get_shared_ciphers | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const SSL *,int,int) | | apps_ssl_info_callback | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const SSL_CIPHER *,char *,int) | | SSL_CIPHER_description | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509 *,const ASN1_OBJECT *,int) | | X509_get_ext_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_new_init | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509 *,int,int) | | X509_get_ext_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509 *,int,int) | | X509_get_ext_by_critical | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_ACERT *,const ASN1_OBJECT *,int) | | X509_ACERT_get_attr_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_ACERT *,int,int) | | X509_ACERT_get_attr_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_CRL *,const ASN1_OBJECT *,int) | | X509_CRL_get_ext_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_CRL *,const X509 *,int) | | OSSL_CMP_CRLSTATUS_create | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_critical | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_NAME *,char *,int) | | X509_NAME_oneline | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_NAME *,const ASN1_OBJECT *,int) | | X509_NAME_get_index_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_NAME *,int,int) | | X509_NAME_get_index_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_REQ *,const ASN1_OBJECT *,int) | | X509_REQ_get_attr_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_REQ *,int,int) | | X509_REQ_get_attr_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_REVOKED *,const ASN1_OBJECT *,int) | | X509_REVOKED_get_ext_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,SD *,int) | | sd_load | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,const char *,int) | | CRYPTO_strdup | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,long *,int) | | Jim_StringToWide | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_NID | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_critical | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | +| taint.cpp:190:7:190:12 | memcpy | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | +| taint.cpp:190:7:190:12 | memcpy | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | +| taint.cpp:190:7:190:12 | memcpy | (int,int,int) | | ASN1_object_size | 2 | +| taint.cpp:190:7:190:12 | memcpy | (int,int,int) | | EVP_CIPHER_meth_new | 2 | +| taint.cpp:190:7:190:12 | memcpy | (regex_t *,const char *,int) | | jim_regcomp | 2 | +| taint.cpp:190:7:190:12 | memcpy | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | +| taint.cpp:190:7:190:12 | memcpy | (sqlite3 *,int,int) | | sqlite3_limit | 2 | +| taint.cpp:190:7:190:12 | memcpy | (sqlite3_context *,const char *,int) | | sqlite3_result_error | 2 | +| taint.cpp:190:7:190:12 | memcpy | (sqlite3_context *,const void *,int) | | sqlite3_result_error16 | 2 | +| taint.cpp:190:7:190:12 | memcpy | (sqlite3_index_info *,int,int) | | sqlite3_vtab_in | 2 | +| taint.cpp:190:7:190:12 | memcpy | (sqlite3_stmt *,int,int) | | sqlite3_bind_int | 2 | +| taint.cpp:190:7:190:12 | memcpy | (sqlite3_stmt *,int,int) | | sqlite3_bind_zeroblob | 2 | +| taint.cpp:190:7:190:12 | memcpy | (sqlite3_stmt *,int,int) | | sqlite3_stmt_status | 2 | +| taint.cpp:190:7:190:12 | memcpy | (sqlite3_str *,const char *,int) | | sqlite3_str_append | 2 | +| taint.cpp:190:7:190:12 | memcpy | (sqlite3expert *,int,int) | | sqlite3_expert_report | 2 | +| taint.cpp:190:7:190:12 | memcpy | (stack_st_ASN1_UTF8STRING *,const char *,int) | | ossl_cmp_sk_ASN1_UTF8STRING_push_str | 2 | +| taint.cpp:190:7:190:12 | memcpy | (stack_st_X509 **,X509 *,int) | | ossl_x509_add_cert_new | 2 | +| taint.cpp:190:7:190:12 | memcpy | (stack_st_X509 **,stack_st_X509 *,int) | | ossl_x509_add_certs_new | 2 | +| taint.cpp:190:7:190:12 | memcpy | (stack_st_X509 *,ASIdentifiers *,int) | | X509v3_asid_validate_resource_set | 2 | +| taint.cpp:190:7:190:12 | memcpy | (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 2 | +| taint.cpp:190:7:190:12 | memcpy | (stack_st_X509 *,X509 *,int) | | X509_add_cert | 2 | +| taint.cpp:190:7:190:12 | memcpy | (stack_st_X509 *,stack_st_X509 *,int) | | X509_add_certs | 2 | +| taint.cpp:190:7:190:12 | memcpy | (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 2 | +| taint.cpp:190:7:190:12 | memcpy | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | +| taint.cpp:190:7:190:12 | memcpy | (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | +| taint.cpp:190:7:190:12 | memcpy | (uint8_t[56],const gf,int) | | gf_serialize | 2 | +| taint.cpp:190:7:190:12 | memcpy | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | +| taint.cpp:190:7:190:12 | memcpy | (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | +| taint.cpp:190:7:190:12 | memcpy | (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | +| taint.cpp:190:7:190:12 | memcpy | (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | +| taint.cpp:190:7:190:12 | memcpy | (unsigned int,int,int) | | ossl_blob_length | 2 | +| taint.cpp:190:7:190:12 | memcpy | (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | +| taint.cpp:190:7:190:12 | memcpy | (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 2 | +| taint.cpp:190:7:190:12 | memcpy | (void *,const char *,int) | | CRYPTO_secure_free | 2 | +| taint.cpp:249:13:249:13 | _FUN | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| taint.cpp:249:13:249:13 | _FUN | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIGNUM *,int) | | BN_clear_bit | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIGNUM *,int) | | BN_mask_bits | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIGNUM *,int) | | BN_set_bit | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIGNUM *,int) | | BN_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIGNUM *,int) | | bn_expand2 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIGNUM *,int) | | bn_wexpand | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIO *,int) | | BIO_clear_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIO *,int) | | BIO_find_type | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIO *,int) | | BIO_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIO *,int) | | BIO_set_init | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIO *,int) | | BIO_set_retry_reason | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIO *,int) | | BIO_set_shutdown | 1 | +| taint.cpp:249:13:249:13 | _FUN | (BIO *,int) | | TXT_DB_read | 1 | +| taint.cpp:249:13:249:13 | _FUN | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (DH *,int) | | DH_clear_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (DH *,int) | | DH_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (DSA *,int) | | DSA_clear_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (DSA *,int) | | DSA_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| taint.cpp:249:13:249:13 | _FUN | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| taint.cpp:249:13:249:13 | _FUN | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| taint.cpp:249:13:249:13 | _FUN | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | taint.cpp:249:13:249:13 | _FUN | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| taint.cpp:249:13:249:13 | _FUN | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| taint.cpp:249:13:249:13 | _FUN | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| taint.cpp:249:13:249:13 | _FUN | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| taint.cpp:249:13:249:13 | _FUN | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| taint.cpp:249:13:249:13 | _FUN | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| taint.cpp:249:13:249:13 | _FUN | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| taint.cpp:249:13:249:13 | _FUN | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| taint.cpp:249:13:249:13 | _FUN | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| taint.cpp:249:13:249:13 | _FUN | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| taint.cpp:249:13:249:13 | _FUN | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| taint.cpp:249:13:249:13 | _FUN | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| taint.cpp:249:13:249:13 | _FUN | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| taint.cpp:249:13:249:13 | _FUN | (RSA *,int) | | RSA_clear_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (RSA *,int) | | RSA_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| taint.cpp:249:13:249:13 | _FUN | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| taint.cpp:249:13:249:13 | _FUN | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| taint.cpp:249:13:249:13 | _FUN | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL *,int) | | SSL_key_update | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL *,int) | | SSL_set_purpose | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL *,int) | | SSL_set_read_ahead | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL *,int) | | SSL_set_security_level | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL *,int) | | SSL_set_shutdown | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL *,int) | | SSL_set_trust | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL *,int) | | SSL_set_verify_depth | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_CTX *,int) | | ssl_md | 1 | +| taint.cpp:249:13:249:13 | _FUN | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| taint.cpp:249:13:249:13 | _FUN | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| taint.cpp:249:13:249:13 | _FUN | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509 *,int) | | X509_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509 *,int) | | X509_self_signed | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| taint.cpp:249:13:249:13 | _FUN | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:249:13:249:13 | _FUN | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:249:13:249:13 | _FUN | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:249:13:249:13 | _FUN | (char,int) | CStringT | CStringT | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const BIGNUM *,int) | | BN_get_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const BIO *,int) | | BIO_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const BIO *,int) | | BIO_test_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const DH *,int) | | DH_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const DH *,int) | | DH_test_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const DH *,int) | | ossl_dh_dup | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const DSA *,int) | | DSA_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const DSA *,int) | | DSA_test_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const DSA *,int) | | ossl_dsa_dup | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const RSA *,int) | | RSA_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const RSA *,int) | | RSA_test_flags | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const RSA *,int) | | ossl_rsa_dup | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const SSL *,int) | | SSL_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const UI *,int) | | UI_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509 *,int) | | X509_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509 *,int) | | X509_get_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | taint.cpp:249:13:249:13 | _FUN | (const XCHAR *,int) | CStringT | CStringT | 1 | | taint.cpp:249:13:249:13 | _FUN | (const YCHAR *,int) | CStringT | CStringT | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | DH_meth_new | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | DSA_meth_new | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | Jim_StrDupLen | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| taint.cpp:249:13:249:13 | _FUN | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (int *,int) | | X509_PURPOSE_set | 1 | +| taint.cpp:249:13:249:13 | _FUN | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | BN_security_bits | 0 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | BN_security_bits | 1 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | EVP_MD_meth_new | 0 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | EVP_MD_meth_new | 1 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | EVP_PKEY_meth_new | 0 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | acttab_alloc | 0 | +| taint.cpp:249:13:249:13 | _FUN | (int,int) | | acttab_alloc | 1 | +| taint.cpp:249:13:249:13 | _FUN | (rule *,int) | | Configlist_add | 1 | +| taint.cpp:249:13:249:13 | _FUN | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| taint.cpp:249:13:249:13 | _FUN | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| taint.cpp:249:13:249:13 | _FUN | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| taint.cpp:249:13:249:13 | _FUN | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| taint.cpp:249:13:249:13 | _FUN | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:249:13:249:13 | _FUN | (uint16_t,int) | | tls1_group_id2nid | 1 | +| taint.cpp:249:13:249:13 | _FUN | (unsigned char *,int) | | RAND_bytes | 1 | +| taint.cpp:249:13:249:13 | _FUN | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| taint.cpp:249:13:249:13 | _FUN | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| taint.cpp:249:13:249:13 | _FUN | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| taint.cpp:249:13:249:13 | _FUN | (void *,int) | | DSO_dsobyaddr | 1 | +| taint.cpp:249:13:249:13 | _FUN | (void *,int) | | sqlite3_realloc | 1 | | taint.cpp:249:13:249:13 | _FUN | (wchar_t,int) | CStringT | CStringT | 1 | +| taint.cpp:249:13:249:13 | operator() | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| taint.cpp:249:13:249:13 | operator() | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIGNUM *,int) | | BN_clear_bit | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIGNUM *,int) | | BN_mask_bits | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIGNUM *,int) | | BN_set_bit | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIGNUM *,int) | | BN_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIGNUM *,int) | | bn_expand2 | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIGNUM *,int) | | bn_wexpand | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIO *,int) | | BIO_clear_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIO *,int) | | BIO_find_type | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIO *,int) | | BIO_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIO *,int) | | BIO_set_init | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIO *,int) | | BIO_set_retry_reason | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIO *,int) | | BIO_set_shutdown | 1 | +| taint.cpp:249:13:249:13 | operator() | (BIO *,int) | | TXT_DB_read | 1 | +| taint.cpp:249:13:249:13 | operator() | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (DH *,int) | | DH_clear_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (DH *,int) | | DH_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (DSA *,int) | | DSA_clear_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (DSA *,int) | | DSA_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| taint.cpp:249:13:249:13 | operator() | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| taint.cpp:249:13:249:13 | operator() | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| taint.cpp:249:13:249:13 | operator() | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| taint.cpp:249:13:249:13 | operator() | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| taint.cpp:249:13:249:13 | operator() | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| taint.cpp:249:13:249:13 | operator() | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| taint.cpp:249:13:249:13 | operator() | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| taint.cpp:249:13:249:13 | operator() | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | taint.cpp:249:13:249:13 | operator() | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| taint.cpp:249:13:249:13 | operator() | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| taint.cpp:249:13:249:13 | operator() | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| taint.cpp:249:13:249:13 | operator() | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| taint.cpp:249:13:249:13 | operator() | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| taint.cpp:249:13:249:13 | operator() | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| taint.cpp:249:13:249:13 | operator() | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| taint.cpp:249:13:249:13 | operator() | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| taint.cpp:249:13:249:13 | operator() | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| taint.cpp:249:13:249:13 | operator() | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| taint.cpp:249:13:249:13 | operator() | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| taint.cpp:249:13:249:13 | operator() | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| taint.cpp:249:13:249:13 | operator() | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| taint.cpp:249:13:249:13 | operator() | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| taint.cpp:249:13:249:13 | operator() | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| taint.cpp:249:13:249:13 | operator() | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| taint.cpp:249:13:249:13 | operator() | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| taint.cpp:249:13:249:13 | operator() | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| taint.cpp:249:13:249:13 | operator() | (RSA *,int) | | RSA_clear_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (RSA *,int) | | RSA_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| taint.cpp:249:13:249:13 | operator() | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| taint.cpp:249:13:249:13 | operator() | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| taint.cpp:249:13:249:13 | operator() | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL *,int) | | SSL_key_update | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL *,int) | | SSL_set_purpose | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL *,int) | | SSL_set_read_ahead | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL *,int) | | SSL_set_security_level | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL *,int) | | SSL_set_shutdown | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL *,int) | | SSL_set_trust | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL *,int) | | SSL_set_verify_depth | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_CTX *,int) | | ssl_md | 1 | +| taint.cpp:249:13:249:13 | operator() | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| taint.cpp:249:13:249:13 | operator() | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| taint.cpp:249:13:249:13 | operator() | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509 *,int) | | X509_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509 *,int) | | X509_self_signed | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| taint.cpp:249:13:249:13 | operator() | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:249:13:249:13 | operator() | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:249:13:249:13 | operator() | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:249:13:249:13 | operator() | (char,int) | CStringT | CStringT | 1 | +| taint.cpp:249:13:249:13 | operator() | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| taint.cpp:249:13:249:13 | operator() | (const BIGNUM *,int) | | BN_get_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| taint.cpp:249:13:249:13 | operator() | (const BIO *,int) | | BIO_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const BIO *,int) | | BIO_test_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const DH *,int) | | DH_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const DH *,int) | | DH_test_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (const DH *,int) | | ossl_dh_dup | 1 | +| taint.cpp:249:13:249:13 | operator() | (const DSA *,int) | | DSA_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const DSA *,int) | | DSA_test_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (const DSA *,int) | | ossl_dsa_dup | 1 | +| taint.cpp:249:13:249:13 | operator() | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| taint.cpp:249:13:249:13 | operator() | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| taint.cpp:249:13:249:13 | operator() | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| taint.cpp:249:13:249:13 | operator() | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| taint.cpp:249:13:249:13 | operator() | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| taint.cpp:249:13:249:13 | operator() | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| taint.cpp:249:13:249:13 | operator() | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| taint.cpp:249:13:249:13 | operator() | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| taint.cpp:249:13:249:13 | operator() | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| taint.cpp:249:13:249:13 | operator() | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| taint.cpp:249:13:249:13 | operator() | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| taint.cpp:249:13:249:13 | operator() | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| taint.cpp:249:13:249:13 | operator() | (const RSA *,int) | | RSA_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const RSA *,int) | | RSA_test_flags | 1 | +| taint.cpp:249:13:249:13 | operator() | (const RSA *,int) | | ossl_rsa_dup | 1 | +| taint.cpp:249:13:249:13 | operator() | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| taint.cpp:249:13:249:13 | operator() | (const SSL *,int) | | SSL_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| taint.cpp:249:13:249:13 | operator() | (const UI *,int) | | UI_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509 *,int) | | X509_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509 *,int) | | X509_get_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| taint.cpp:249:13:249:13 | operator() | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | taint.cpp:249:13:249:13 | operator() | (const XCHAR *,int) | CStringT | CStringT | 1 | | taint.cpp:249:13:249:13 | operator() | (const YCHAR *,int) | CStringT | CStringT | 1 | +| taint.cpp:249:13:249:13 | operator() | (const char *,int) | | DH_meth_new | 1 | +| taint.cpp:249:13:249:13 | operator() | (const char *,int) | | DSA_meth_new | 1 | +| taint.cpp:249:13:249:13 | operator() | (const char *,int) | | Jim_StrDupLen | 1 | +| taint.cpp:249:13:249:13 | operator() | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| taint.cpp:249:13:249:13 | operator() | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:249:13:249:13 | operator() | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:249:13:249:13 | operator() | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| taint.cpp:249:13:249:13 | operator() | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| taint.cpp:249:13:249:13 | operator() | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:249:13:249:13 | operator() | (int *,int) | | X509_PURPOSE_set | 1 | +| taint.cpp:249:13:249:13 | operator() | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | BN_security_bits | 0 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | BN_security_bits | 1 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | EVP_MD_meth_new | 0 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | EVP_MD_meth_new | 1 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | EVP_PKEY_meth_new | 0 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | acttab_alloc | 0 | +| taint.cpp:249:13:249:13 | operator() | (int,int) | | acttab_alloc | 1 | +| taint.cpp:249:13:249:13 | operator() | (rule *,int) | | Configlist_add | 1 | +| taint.cpp:249:13:249:13 | operator() | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| taint.cpp:249:13:249:13 | operator() | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| taint.cpp:249:13:249:13 | operator() | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| taint.cpp:249:13:249:13 | operator() | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| taint.cpp:249:13:249:13 | operator() | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| taint.cpp:249:13:249:13 | operator() | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:249:13:249:13 | operator() | (uint16_t,int) | | tls1_group_id2nid | 1 | +| taint.cpp:249:13:249:13 | operator() | (unsigned char *,int) | | RAND_bytes | 1 | +| taint.cpp:249:13:249:13 | operator() | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| taint.cpp:249:13:249:13 | operator() | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| taint.cpp:249:13:249:13 | operator() | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| taint.cpp:249:13:249:13 | operator() | (void *,int) | | DSO_dsobyaddr | 1 | +| taint.cpp:249:13:249:13 | operator() | (void *,int) | | sqlite3_realloc | 1 | | taint.cpp:249:13:249:13 | operator() | (wchar_t,int) | CStringT | CStringT | 1 | +| taint.cpp:266:5:266:6 | id | (int) | | ASN1_STRING_type_new | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | ASN1_tag2bit | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | ASN1_tag2str | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | EVP_PKEY_asn1_get0 | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | Jim_ReturnCode | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | Jim_SignalId | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | OBJ_nid2ln | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | OBJ_nid2obj | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | OBJ_nid2sn | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | OSSL_STORE_INFO_type_string | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | OSSL_trace_get_category_name | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | PKCS12_init | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | Symbol_Nth | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | X509_PURPOSE_get0 | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | X509_PURPOSE_get_by_id | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | X509_TRUST_get0 | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | X509_TRUST_get_by_id | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | ossl_cmp_bodytype_to_string | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | ossl_tolower | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | ossl_toupper | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | pulldown_test_framework | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | sqlite3_compileoption_get | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | sqlite3_errstr | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | tls1_alert_code | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | tls13_alert_code | 0 | +| taint.cpp:266:5:266:6 | id | (int) | | wait_until_sock_readable | 0 | +| taint.cpp:302:6:302:14 | myAssign2 | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIGNUM *,int) | | BN_clear_bit | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIGNUM *,int) | | BN_mask_bits | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIGNUM *,int) | | BN_set_bit | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIGNUM *,int) | | BN_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIGNUM *,int) | | bn_expand2 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIGNUM *,int) | | bn_wexpand | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIO *,int) | | BIO_clear_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIO *,int) | | BIO_find_type | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIO *,int) | | BIO_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIO *,int) | | BIO_set_init | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIO *,int) | | BIO_set_retry_reason | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIO *,int) | | BIO_set_shutdown | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (BIO *,int) | | TXT_DB_read | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (DH *,int) | | DH_clear_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (DH *,int) | | DH_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (DSA *,int) | | DSA_clear_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (DSA *,int) | | DSA_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (RSA *,int) | | RSA_clear_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (RSA *,int) | | RSA_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL *,int) | | SSL_key_update | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL *,int) | | SSL_set_purpose | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL *,int) | | SSL_set_read_ahead | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL *,int) | | SSL_set_security_level | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL *,int) | | SSL_set_shutdown | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL *,int) | | SSL_set_trust | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL *,int) | | SSL_set_verify_depth | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_CTX *,int) | | ssl_md | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509 *,int) | | X509_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509 *,int) | | X509_self_signed | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (char,int) | CStringT | CStringT | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const BIGNUM *,int) | | BN_get_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const BIO *,int) | | BIO_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const BIO *,int) | | BIO_test_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const DH *,int) | | DH_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const DH *,int) | | DH_test_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const DH *,int) | | ossl_dh_dup | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const DSA *,int) | | DSA_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const DSA *,int) | | DSA_test_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const DSA *,int) | | ossl_dsa_dup | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const RSA *,int) | | RSA_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const RSA *,int) | | RSA_test_flags | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const RSA *,int) | | ossl_rsa_dup | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const SSL *,int) | | SSL_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const UI *,int) | | UI_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509 *,int) | | X509_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509 *,int) | | X509_get_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (const XCHAR *,int) | CStringT | CStringT | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (const YCHAR *,int) | CStringT | CStringT | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | DH_meth_new | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | DSA_meth_new | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | Jim_StrDupLen | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (int *,int) | | X509_PURPOSE_set | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | BN_security_bits | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | EVP_MD_meth_new | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (int,int) | | acttab_alloc | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (rule *,int) | | Configlist_add | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (uint16_t,int) | | tls1_group_id2nid | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (unsigned char *,int) | | RAND_bytes | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (void *,int) | | DSO_dsobyaddr | 1 | +| taint.cpp:302:6:302:14 | myAssign2 | (void *,int) | | sqlite3_realloc | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (wchar_t,int) | CStringT | CStringT | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIGNUM *,int) | | BN_clear_bit | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIGNUM *,int) | | BN_mask_bits | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIGNUM *,int) | | BN_set_bit | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIGNUM *,int) | | BN_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIGNUM *,int) | | bn_expand2 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIGNUM *,int) | | bn_wexpand | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIO *,int) | | BIO_clear_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIO *,int) | | BIO_find_type | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIO *,int) | | BIO_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIO *,int) | | BIO_set_init | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIO *,int) | | BIO_set_retry_reason | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIO *,int) | | BIO_set_shutdown | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (BIO *,int) | | TXT_DB_read | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (DH *,int) | | DH_clear_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (DH *,int) | | DH_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (DSA *,int) | | DSA_clear_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (DSA *,int) | | DSA_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (RSA *,int) | | RSA_clear_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (RSA *,int) | | RSA_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL *,int) | | SSL_key_update | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL *,int) | | SSL_set_purpose | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL *,int) | | SSL_set_read_ahead | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL *,int) | | SSL_set_security_level | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL *,int) | | SSL_set_shutdown | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL *,int) | | SSL_set_trust | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL *,int) | | SSL_set_verify_depth | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_CTX *,int) | | ssl_md | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509 *,int) | | X509_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509 *,int) | | X509_self_signed | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (char,int) | CStringT | CStringT | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const BIGNUM *,int) | | BN_get_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const BIO *,int) | | BIO_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const BIO *,int) | | BIO_test_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const DH *,int) | | DH_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const DH *,int) | | DH_test_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const DH *,int) | | ossl_dh_dup | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const DSA *,int) | | DSA_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const DSA *,int) | | DSA_test_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const DSA *,int) | | ossl_dsa_dup | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const RSA *,int) | | RSA_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const RSA *,int) | | RSA_test_flags | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const RSA *,int) | | ossl_rsa_dup | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const SSL *,int) | | SSL_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const UI *,int) | | UI_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509 *,int) | | X509_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509 *,int) | | X509_get_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (const XCHAR *,int) | CStringT | CStringT | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (const YCHAR *,int) | CStringT | CStringT | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | DH_meth_new | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | DSA_meth_new | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | Jim_StrDupLen | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (int *,int) | | X509_PURPOSE_set | 0 | +| taint.cpp:307:6:307:14 | myAssign3 | (int *,int) | | X509_PURPOSE_set | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (int *,int) | | X509_TRUST_set | 0 | +| taint.cpp:307:6:307:14 | myAssign3 | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | BN_security_bits | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | EVP_MD_meth_new | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (int,int) | | acttab_alloc | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (rule *,int) | | Configlist_add | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (uint16_t,int) | | tls1_group_id2nid | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (unsigned char *,int) | | RAND_bytes | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (void *,int) | | DSO_dsobyaddr | 1 | +| taint.cpp:307:6:307:14 | myAssign3 | (void *,int) | | sqlite3_realloc | 1 | | taint.cpp:307:6:307:14 | myAssign3 | (wchar_t,int) | CStringT | CStringT | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIGNUM *,int) | | BN_clear_bit | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIGNUM *,int) | | BN_mask_bits | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIGNUM *,int) | | BN_set_bit | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIGNUM *,int) | | BN_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIGNUM *,int) | | bn_expand2 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIGNUM *,int) | | bn_wexpand | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIO *,int) | | BIO_clear_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIO *,int) | | BIO_find_type | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIO *,int) | | BIO_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIO *,int) | | BIO_set_init | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIO *,int) | | BIO_set_retry_reason | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIO *,int) | | BIO_set_shutdown | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (BIO *,int) | | TXT_DB_read | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (DH *,int) | | DH_clear_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (DH *,int) | | DH_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (DSA *,int) | | DSA_clear_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (DSA *,int) | | DSA_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (RSA *,int) | | RSA_clear_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (RSA *,int) | | RSA_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL *,int) | | SSL_key_update | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL *,int) | | SSL_set_purpose | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL *,int) | | SSL_set_read_ahead | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL *,int) | | SSL_set_security_level | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL *,int) | | SSL_set_shutdown | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL *,int) | | SSL_set_trust | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL *,int) | | SSL_set_verify_depth | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_CTX *,int) | | ssl_md | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509 *,int) | | X509_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509 *,int) | | X509_self_signed | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (char,int) | CStringT | CStringT | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const BIGNUM *,int) | | BN_get_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const BIO *,int) | | BIO_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const BIO *,int) | | BIO_test_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const DH *,int) | | DH_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const DH *,int) | | DH_test_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const DH *,int) | | ossl_dh_dup | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const DSA *,int) | | DSA_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const DSA *,int) | | DSA_test_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const DSA *,int) | | ossl_dsa_dup | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const RSA *,int) | | RSA_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const RSA *,int) | | RSA_test_flags | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const RSA *,int) | | ossl_rsa_dup | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const SSL *,int) | | SSL_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const UI *,int) | | UI_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509 *,int) | | X509_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509 *,int) | | X509_get_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (const XCHAR *,int) | CStringT | CStringT | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (const YCHAR *,int) | CStringT | CStringT | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | DH_meth_new | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | DSA_meth_new | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | Jim_StrDupLen | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (int *,int) | | X509_PURPOSE_set | 0 | +| taint.cpp:312:6:312:14 | myAssign4 | (int *,int) | | X509_PURPOSE_set | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (int *,int) | | X509_TRUST_set | 0 | +| taint.cpp:312:6:312:14 | myAssign4 | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | BN_security_bits | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | EVP_MD_meth_new | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (int,int) | | acttab_alloc | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (rule *,int) | | Configlist_add | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (uint16_t,int) | | tls1_group_id2nid | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (unsigned char *,int) | | RAND_bytes | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (void *,int) | | DSO_dsobyaddr | 1 | +| taint.cpp:312:6:312:14 | myAssign4 | (void *,int) | | sqlite3_realloc | 1 | | taint.cpp:312:6:312:14 | myAssign4 | (wchar_t,int) | CStringT | CStringT | 1 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | BIO_gethostbyname | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | Jim_StrDup | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | OPENSSL_LH_strhash | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | Strsafe | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | Symbol_new | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | UI_create_method | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | X509V3_parse_list | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | a2i_IPADDRESS | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | new_pkcs12_builder | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | opt_path_end | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | opt_progname | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:361:7:361:12 | strdup | (const char *) | | strhash | 0 | +| taint.cpp:362:7:362:13 | strndup | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (BIGNUM *,unsigned long) | | BN_add_word | 1 | +| taint.cpp:362:7:362:13 | strndup | (BIGNUM *,unsigned long) | | BN_div_word | 1 | +| taint.cpp:362:7:362:13 | strndup | (BIGNUM *,unsigned long) | | BN_set_word | 1 | +| taint.cpp:362:7:362:13 | strndup | (BIGNUM *,unsigned long) | | BN_sub_word | 1 | +| taint.cpp:362:7:362:13 | strndup | (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (BUF_MEM *,size_t) | | BUF_MEM_grow | 1 | +| taint.cpp:362:7:362:13 | strndup | (BUF_MEM *,size_t) | | BUF_MEM_grow_clean | 1 | +| taint.cpp:362:7:362:13 | strndup | (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_HPKE_SUITE,size_t) | | OSSL_HPKE_get_ciphertext_size | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_HTTP_REQ_CTX *,size_t) | | OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_LIB_CTX *,size_t) | | ossl_quic_lcidm_new | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_PARAM *,size_t) | | OSSL_PARAM_set_size_t | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_PQUEUE *,size_t) | | ossl_pqueue_remove | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_PROVIDER *,size_t) | | ossl_provider_set_operation_bit | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_QTX *,size_t) | | ossl_qtx_set_mdpl | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_add_unvalidated_credit | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_consume_unvalidated_credit | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_record_received_closing_bytes | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_frag_len | 1 | +| taint.cpp:362:7:362:13 | strndup | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_pipelines | 1 | +| taint.cpp:362:7:362:13 | strndup | (QTEST_FAULT *,size_t) | | qtest_fault_resize_datagram | 1 | +| taint.cpp:362:7:362:13 | strndup | (QTEST_FAULT *,size_t) | | qtest_fault_resize_handshake | 1 | +| taint.cpp:362:7:362:13 | strndup | (QTEST_FAULT *,size_t) | | qtest_fault_resize_message | 1 | +| taint.cpp:362:7:362:13 | strndup | (QTEST_FAULT *,size_t) | | qtest_fault_resize_plain_packet | 1 | +| taint.cpp:362:7:362:13 | strndup | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_release_record | 1 | +| taint.cpp:362:7:362:13 | strndup | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_resize_rbuf | 1 | +| taint.cpp:362:7:362:13 | strndup | (QUIC_RXFC *,size_t) | | ossl_quic_rxfc_set_max_window_size | 1 | +| taint.cpp:362:7:362:13 | strndup | (QUIC_SSTREAM *,size_t) | | ossl_quic_sstream_set_buffer_size | 1 | +| taint.cpp:362:7:362:13 | strndup | (QUIC_STREAM_MAP *,size_t) | | ossl_quic_stream_map_set_rr_stepping | 1 | +| taint.cpp:362:7:362:13 | strndup | (RAND_POOL *,size_t) | | ossl_rand_pool_add_begin | 1 | +| taint.cpp:362:7:362:13 | strndup | (SIPHASH *,size_t) | | SipHash_set_hash_size | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL *,size_t) | | SSL_set_block_padding | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL *,size_t) | | SSL_set_default_read_buffer_len | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL *,size_t) | | SSL_set_num_tickets | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL *,size_t) | | create_a_psk | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL_CTX *,size_t) | | SSL_CTX_set_block_padding | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL_CTX *,size_t) | | SSL_CTX_set_default_read_buffer_len | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL_CTX *,size_t) | | SSL_CTX_set_num_tickets | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (WPACKET *,size_t) | | WPACKET_init_null | 1 | +| taint.cpp:362:7:362:13 | strndup | (WPACKET *,size_t) | | WPACKET_set_max_size | 1 | +| taint.cpp:362:7:362:13 | strndup | (WPACKET *,size_t) | | WPACKET_start_sub_packet_len__ | 1 | +| taint.cpp:362:7:362:13 | strndup | (WPACKET *,size_t) | | ossl_quic_wire_encode_padding | 1 | +| taint.cpp:362:7:362:13 | strndup | (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| taint.cpp:362:7:362:13 | strndup | (char *,size_t) | | RAND_file_name | 1 | +| taint.cpp:362:7:362:13 | strndup | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | OPENSSL_strnlen | 0 | +| taint.cpp:362:7:362:13 | strndup | (const char *,size_t) | | OPENSSL_strnlen | 1 | +| taint.cpp:362:7:362:13 | strndup | (const uint8_t *,size_t) | | FuzzerTestOneInput | 1 | +| taint.cpp:362:7:362:13 | strndup | (const uint8_t *,size_t) | | ossl_ed448_pubkey_verify | 1 | +| taint.cpp:362:7:362:13 | strndup | (int,size_t) | | ossl_calculate_comp_expansion | 1 | +| taint.cpp:362:7:362:13 | strndup | (uint8_t *,size_t) | | ossl_fnv1a_hash | 1 | +| taint.cpp:362:7:362:13 | strndup | (void *,size_t) | | JimDefaultAllocator | 1 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | BIO_gethostbyname | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | Jim_StrDup | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | OPENSSL_LH_strhash | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | Strsafe | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | Symbol_new | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | UI_create_method | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | X509V3_parse_list | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | a2i_IPADDRESS | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | new_pkcs12_builder | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | opt_path_end | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | opt_progname | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:364:7:364:13 | strdupa | (const char *) | | strhash | 0 | +| taint.cpp:365:7:365:14 | strndupa | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (BIGNUM *,unsigned long) | | BN_add_word | 1 | +| taint.cpp:365:7:365:14 | strndupa | (BIGNUM *,unsigned long) | | BN_div_word | 1 | +| taint.cpp:365:7:365:14 | strndupa | (BIGNUM *,unsigned long) | | BN_set_word | 1 | +| taint.cpp:365:7:365:14 | strndupa | (BIGNUM *,unsigned long) | | BN_sub_word | 1 | +| taint.cpp:365:7:365:14 | strndupa | (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (BUF_MEM *,size_t) | | BUF_MEM_grow | 1 | +| taint.cpp:365:7:365:14 | strndupa | (BUF_MEM *,size_t) | | BUF_MEM_grow_clean | 1 | +| taint.cpp:365:7:365:14 | strndupa | (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_HPKE_SUITE,size_t) | | OSSL_HPKE_get_ciphertext_size | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_HTTP_REQ_CTX *,size_t) | | OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_LIB_CTX *,size_t) | | ossl_quic_lcidm_new | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_PARAM *,size_t) | | OSSL_PARAM_set_size_t | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_PQUEUE *,size_t) | | ossl_pqueue_remove | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_PROVIDER *,size_t) | | ossl_provider_set_operation_bit | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_QTX *,size_t) | | ossl_qtx_set_mdpl | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_add_unvalidated_credit | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_consume_unvalidated_credit | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_record_received_closing_bytes | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_frag_len | 1 | +| taint.cpp:365:7:365:14 | strndupa | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_pipelines | 1 | +| taint.cpp:365:7:365:14 | strndupa | (QTEST_FAULT *,size_t) | | qtest_fault_resize_datagram | 1 | +| taint.cpp:365:7:365:14 | strndupa | (QTEST_FAULT *,size_t) | | qtest_fault_resize_handshake | 1 | +| taint.cpp:365:7:365:14 | strndupa | (QTEST_FAULT *,size_t) | | qtest_fault_resize_message | 1 | +| taint.cpp:365:7:365:14 | strndupa | (QTEST_FAULT *,size_t) | | qtest_fault_resize_plain_packet | 1 | +| taint.cpp:365:7:365:14 | strndupa | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_release_record | 1 | +| taint.cpp:365:7:365:14 | strndupa | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_resize_rbuf | 1 | +| taint.cpp:365:7:365:14 | strndupa | (QUIC_RXFC *,size_t) | | ossl_quic_rxfc_set_max_window_size | 1 | +| taint.cpp:365:7:365:14 | strndupa | (QUIC_SSTREAM *,size_t) | | ossl_quic_sstream_set_buffer_size | 1 | +| taint.cpp:365:7:365:14 | strndupa | (QUIC_STREAM_MAP *,size_t) | | ossl_quic_stream_map_set_rr_stepping | 1 | +| taint.cpp:365:7:365:14 | strndupa | (RAND_POOL *,size_t) | | ossl_rand_pool_add_begin | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SIPHASH *,size_t) | | SipHash_set_hash_size | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL *,size_t) | | SSL_set_block_padding | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL *,size_t) | | SSL_set_default_read_buffer_len | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL *,size_t) | | SSL_set_num_tickets | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL *,size_t) | | create_a_psk | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL_CTX *,size_t) | | SSL_CTX_set_block_padding | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL_CTX *,size_t) | | SSL_CTX_set_default_read_buffer_len | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL_CTX *,size_t) | | SSL_CTX_set_num_tickets | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (WPACKET *,size_t) | | WPACKET_init_null | 1 | +| taint.cpp:365:7:365:14 | strndupa | (WPACKET *,size_t) | | WPACKET_set_max_size | 1 | +| taint.cpp:365:7:365:14 | strndupa | (WPACKET *,size_t) | | WPACKET_start_sub_packet_len__ | 1 | +| taint.cpp:365:7:365:14 | strndupa | (WPACKET *,size_t) | | ossl_quic_wire_encode_padding | 1 | +| taint.cpp:365:7:365:14 | strndupa | (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| taint.cpp:365:7:365:14 | strndupa | (char *,size_t) | | RAND_file_name | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | OPENSSL_strnlen | 0 | +| taint.cpp:365:7:365:14 | strndupa | (const char *,size_t) | | OPENSSL_strnlen | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const uint8_t *,size_t) | | FuzzerTestOneInput | 1 | +| taint.cpp:365:7:365:14 | strndupa | (const uint8_t *,size_t) | | ossl_ed448_pubkey_verify | 1 | +| taint.cpp:365:7:365:14 | strndupa | (int,size_t) | | ossl_calculate_comp_expansion | 1 | +| taint.cpp:365:7:365:14 | strndupa | (uint8_t *,size_t) | | ossl_fnv1a_hash | 1 | +| taint.cpp:365:7:365:14 | strndupa | (void *,size_t) | | JimDefaultAllocator | 1 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | defossilize | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | make_uppercase | 0 | +| taint.cpp:367:6:367:16 | test_strdup | (char *) | | next_item | 0 | | taint.cpp:367:6:367:16 | test_strdup | (char *) | CStringT | CStringT | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | ASN1_STRING_type_new | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | ASN1_tag2bit | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | ASN1_tag2str | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | EVP_PKEY_asn1_get0 | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | Jim_ReturnCode | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | Jim_SignalId | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | OBJ_nid2ln | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | OBJ_nid2obj | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | OBJ_nid2sn | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | OSSL_STORE_INFO_type_string | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | OSSL_trace_get_category_name | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | PKCS12_init | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | Symbol_Nth | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | X509_PURPOSE_get0 | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | X509_PURPOSE_get_by_id | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | X509_TRUST_get0 | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | X509_TRUST_get_by_id | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | ossl_cmp_bodytype_to_string | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | ossl_tolower | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | ossl_toupper | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | pulldown_test_framework | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | sqlite3_compileoption_get | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | sqlite3_errstr | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | tls1_alert_code | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | tls13_alert_code | 0 | +| taint.cpp:379:6:379:17 | test_strndup | (int) | | wait_until_sock_readable | 0 | | taint.cpp:387:6:387:16 | test_wcsdup | (wchar_t *) | CStringT | CStringT | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | defossilize | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | make_uppercase | 0 | +| taint.cpp:397:6:397:17 | test_strdupa | (char *) | | next_item | 0 | | taint.cpp:397:6:397:17 | test_strdupa | (char *) | CStringT | CStringT | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | ASN1_STRING_type_new | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | ASN1_tag2bit | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | ASN1_tag2str | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | EVP_PKEY_asn1_get0 | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | Jim_ReturnCode | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | Jim_SignalId | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | OBJ_nid2ln | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | OBJ_nid2obj | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | OBJ_nid2sn | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | OSSL_STORE_INFO_type_string | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | OSSL_trace_get_category_name | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | PKCS12_init | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | Symbol_Nth | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | X509_PURPOSE_get0 | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | X509_PURPOSE_get_by_id | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | X509_TRUST_get0 | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | X509_TRUST_get_by_id | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | ossl_cmp_bodytype_to_string | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | ossl_tolower | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | ossl_toupper | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | pulldown_test_framework | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | sqlite3_compileoption_get | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | sqlite3_errstr | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | tls1_alert_code | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | tls13_alert_code | 0 | +| taint.cpp:409:6:409:18 | test_strndupa | (int) | | wait_until_sock_readable | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | ASN1_STRING_type_new | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | ASN1_tag2bit | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | ASN1_tag2str | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | EVP_PKEY_asn1_get0 | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | Jim_ReturnCode | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | Jim_SignalId | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | OBJ_nid2ln | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | OBJ_nid2obj | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | OBJ_nid2sn | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | OSSL_STORE_INFO_type_string | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | OSSL_trace_get_category_name | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | PKCS12_init | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | Symbol_Nth | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | X509_PURPOSE_get0 | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | X509_PURPOSE_get_by_id | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | X509_TRUST_get0 | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | X509_TRUST_get_by_id | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | ossl_cmp_bodytype_to_string | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | ossl_tolower | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | ossl_toupper | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | pulldown_test_framework | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | sqlite3_compileoption_get | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | sqlite3_errstr | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | tls1_alert_code | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | tls13_alert_code | 0 | +| taint.cpp:421:2:421:9 | MyClass2 | (int) | | wait_until_sock_readable | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | ASN1_STRING_type_new | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | ASN1_tag2bit | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | ASN1_tag2str | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | EVP_PKEY_asn1_get0 | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | Jim_ReturnCode | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | Jim_SignalId | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | OBJ_nid2ln | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | OBJ_nid2obj | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | OBJ_nid2sn | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | OSSL_STORE_INFO_type_string | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | OSSL_trace_get_category_name | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | PKCS12_init | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | Symbol_Nth | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | X509_PURPOSE_get0 | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | X509_PURPOSE_get_by_id | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | X509_TRUST_get0 | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | X509_TRUST_get_by_id | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | evp_pkey_type2name | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | ossl_cmp_bodytype_to_string | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | ossl_tolower | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | ossl_toupper | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | pulldown_test_framework | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | sqlite3_compileoption_get | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | sqlite3_errstr | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | tls1_alert_code | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | tls13_alert_code | 0 | +| taint.cpp:422:7:422:15 | setMember | (int) | | wait_until_sock_readable | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | BIO_gethostbyname | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | Jim_StrDup | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | OPENSSL_LH_strhash | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | Strsafe | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | Symbol_new | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | UI_create_method | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | X509V3_parse_list | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | a2i_IPADDRESS | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | new_pkcs12_builder | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | opt_path_end | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | opt_progname | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | strhash | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | BIO_gethostbyname | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | Jim_StrDup | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | OPENSSL_LH_strhash | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | Strsafe | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | Symbol_new | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | UI_create_method | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | X509V3_parse_list | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | a2i_IPADDRESS | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | new_pkcs12_builder | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | opt_path_end | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | opt_progname | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:431:7:431:15 | setString | (const char *) | | strhash | 0 | +| taint.cpp:512:7:512:12 | strtok | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | +| taint.cpp:512:7:512:12 | strtok | (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (BIGNUM **,const char *) | | BN_asc2bn | 1 | +| taint.cpp:512:7:512:12 | strtok | (BIGNUM **,const char *) | | BN_dec2bn | 1 | +| taint.cpp:512:7:512:12 | strtok | (BIGNUM **,const char *) | | BN_hex2bn | 1 | +| taint.cpp:512:7:512:12 | strtok | (CONF *,const char *) | | TS_CONF_get_tsa_section | 1 | +| taint.cpp:512:7:512:12 | strtok | (CONF *,const char *) | | _CONF_new_section | 1 | +| taint.cpp:512:7:512:12 | strtok | (DH_METHOD *,const char *) | | DH_meth_set1_name | 1 | +| taint.cpp:512:7:512:12 | strtok | (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 1 | +| taint.cpp:512:7:512:12 | strtok | (DSO *,const char *) | | DSO_convert_filename | 1 | +| taint.cpp:512:7:512:12 | strtok | (DSO *,const char *) | | DSO_set_filename | 1 | +| taint.cpp:512:7:512:12 | strtok | (ENGINE *,const char *) | | ENGINE_set_id | 1 | +| taint.cpp:512:7:512:12 | strtok | (ENGINE *,const char *) | | ENGINE_set_name | 1 | +| taint.cpp:512:7:512:12 | strtok | (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 1 | +| taint.cpp:512:7:512:12 | strtok | (EVP_PKEY *,const char *) | | CTLOG_new | 1 | +| taint.cpp:512:7:512:12 | strtok | (EVP_PKEY_CTX *,const char *) | | app_paramgen | 1 | +| taint.cpp:512:7:512:12 | strtok | (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (Jim_Interp *,const char *) | | Jim_Eval | 1 | +| taint.cpp:512:7:512:12 | strtok | (Jim_Interp *,const char *) | | Jim_EvalFile | 1 | +| taint.cpp:512:7:512:12 | strtok | (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 1 | +| taint.cpp:512:7:512:12 | strtok | (Jim_Interp *,const char *) | | Jim_EvalGlobal | 1 | +| taint.cpp:512:7:512:12 | strtok | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | +| taint.cpp:512:7:512:12 | strtok | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | +| taint.cpp:512:7:512:12 | strtok | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 1 | +| taint.cpp:512:7:512:12 | strtok | (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 1 | +| taint.cpp:512:7:512:12 | strtok | (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 1 | +| taint.cpp:512:7:512:12 | strtok | (SSL *,const char *) | | SSL_add1_host | 1 | +| taint.cpp:512:7:512:12 | strtok | (SSL *,const char *) | | SSL_set1_host | 1 | +| taint.cpp:512:7:512:12 | strtok | (SSL *,const char *) | | SSL_set_cipher_list | 1 | +| taint.cpp:512:7:512:12 | strtok | (SSL *,const char *) | | SSL_use_psk_identity_hint | 1 | +| taint.cpp:512:7:512:12 | strtok | (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 1 | +| taint.cpp:512:7:512:12 | strtok | (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 1 | +| taint.cpp:512:7:512:12 | strtok | (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 1 | +| taint.cpp:512:7:512:12 | strtok | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | +| taint.cpp:512:7:512:12 | strtok | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | +| taint.cpp:512:7:512:12 | strtok | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | +| taint.cpp:512:7:512:12 | strtok | (STANZA *,const char *) | | test_start_file | 1 | +| taint.cpp:512:7:512:12 | strtok | (UI *,const char *) | | UI_add_error_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (UI *,const char *) | | UI_add_info_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (UI *,const char *) | | UI_dup_error_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (UI *,const char *) | | UI_dup_info_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (X509 *,const char *) | | x509_ctrl_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | +| taint.cpp:512:7:512:12 | strtok | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | +| taint.cpp:512:7:512:12 | strtok | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:512:7:512:12 | strtok | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | Configcmp | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | DES_crypt | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | get_passwd | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | openssl_fopen | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | ossl_pem_check_suffix | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | ossl_v3_name_cmp | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | sqlite3_strglob | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | test_mk_file_path | 1 | +| taint.cpp:512:7:512:12 | strtok | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:512:7:512:12 | strtok | (lemon *,const char *) | | file_makename | 1 | +| taint.cpp:512:7:512:12 | strtok | (size_t *,const char *) | | next_protos_parse | 1 | +| taint.cpp:512:7:512:12 | strtok | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | +| taint.cpp:512:7:512:12 | strtok | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | +| taint.cpp:512:7:512:12 | strtok | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | +| taint.cpp:512:7:512:12 | strtok | (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 1 | +| taint.cpp:512:7:512:12 | strtok | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | +| taint.cpp:512:7:512:12 | strtok | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | +| taint.cpp:512:7:512:12 | strtok | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:512:7:512:12 | strtok | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | +| taint.cpp:512:7:512:12 | strtok | (unsigned long *,const char *) | | set_cert_ex | 1 | +| taint.cpp:512:7:512:12 | strtok | (unsigned long *,const char *) | | set_name_ex | 1 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | defossilize | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | make_uppercase | 0 | +| taint.cpp:514:6:514:16 | test_strtok | (char *) | | next_item | 0 | | taint.cpp:514:6:514:16 | test_strtok | (char *) | CStringT | CStringT | 0 | +| taint.cpp:523:7:523:13 | _strset | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| taint.cpp:523:7:523:13 | _strset | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIGNUM *,int) | | BN_clear_bit | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIGNUM *,int) | | BN_mask_bits | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIGNUM *,int) | | BN_set_bit | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIGNUM *,int) | | BN_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIGNUM *,int) | | bn_expand2 | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIGNUM *,int) | | bn_wexpand | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIO *,int) | | BIO_clear_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIO *,int) | | BIO_find_type | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIO *,int) | | BIO_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIO *,int) | | BIO_set_init | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIO *,int) | | BIO_set_retry_reason | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIO *,int) | | BIO_set_shutdown | 1 | +| taint.cpp:523:7:523:13 | _strset | (BIO *,int) | | TXT_DB_read | 1 | +| taint.cpp:523:7:523:13 | _strset | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (DH *,int) | | DH_clear_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (DH *,int) | | DH_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (DSA *,int) | | DSA_clear_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (DSA *,int) | | DSA_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| taint.cpp:523:7:523:13 | _strset | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| taint.cpp:523:7:523:13 | _strset | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| taint.cpp:523:7:523:13 | _strset | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| taint.cpp:523:7:523:13 | _strset | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| taint.cpp:523:7:523:13 | _strset | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| taint.cpp:523:7:523:13 | _strset | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| taint.cpp:523:7:523:13 | _strset | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| taint.cpp:523:7:523:13 | _strset | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | taint.cpp:523:7:523:13 | _strset | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| taint.cpp:523:7:523:13 | _strset | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| taint.cpp:523:7:523:13 | _strset | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| taint.cpp:523:7:523:13 | _strset | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| taint.cpp:523:7:523:13 | _strset | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| taint.cpp:523:7:523:13 | _strset | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| taint.cpp:523:7:523:13 | _strset | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| taint.cpp:523:7:523:13 | _strset | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| taint.cpp:523:7:523:13 | _strset | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| taint.cpp:523:7:523:13 | _strset | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| taint.cpp:523:7:523:13 | _strset | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| taint.cpp:523:7:523:13 | _strset | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| taint.cpp:523:7:523:13 | _strset | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| taint.cpp:523:7:523:13 | _strset | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| taint.cpp:523:7:523:13 | _strset | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| taint.cpp:523:7:523:13 | _strset | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| taint.cpp:523:7:523:13 | _strset | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| taint.cpp:523:7:523:13 | _strset | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| taint.cpp:523:7:523:13 | _strset | (RSA *,int) | | RSA_clear_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (RSA *,int) | | RSA_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| taint.cpp:523:7:523:13 | _strset | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| taint.cpp:523:7:523:13 | _strset | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| taint.cpp:523:7:523:13 | _strset | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL *,int) | | SSL_key_update | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL *,int) | | SSL_set_purpose | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL *,int) | | SSL_set_read_ahead | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL *,int) | | SSL_set_security_level | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL *,int) | | SSL_set_shutdown | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL *,int) | | SSL_set_trust | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL *,int) | | SSL_set_verify_depth | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_CTX *,int) | | ssl_md | 1 | +| taint.cpp:523:7:523:13 | _strset | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| taint.cpp:523:7:523:13 | _strset | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| taint.cpp:523:7:523:13 | _strset | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509 *,int) | | X509_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509 *,int) | | X509_self_signed | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| taint.cpp:523:7:523:13 | _strset | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:523:7:523:13 | _strset | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:523:7:523:13 | _strset | (char *,int) | | PEM_proc_type | 0 | +| taint.cpp:523:7:523:13 | _strset | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:523:7:523:13 | _strset | (char,int) | CStringT | CStringT | 1 | +| taint.cpp:523:7:523:13 | _strset | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| taint.cpp:523:7:523:13 | _strset | (const BIGNUM *,int) | | BN_get_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| taint.cpp:523:7:523:13 | _strset | (const BIO *,int) | | BIO_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const BIO *,int) | | BIO_test_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const DH *,int) | | DH_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const DH *,int) | | DH_test_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (const DH *,int) | | ossl_dh_dup | 1 | +| taint.cpp:523:7:523:13 | _strset | (const DSA *,int) | | DSA_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const DSA *,int) | | DSA_test_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (const DSA *,int) | | ossl_dsa_dup | 1 | +| taint.cpp:523:7:523:13 | _strset | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| taint.cpp:523:7:523:13 | _strset | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| taint.cpp:523:7:523:13 | _strset | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| taint.cpp:523:7:523:13 | _strset | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| taint.cpp:523:7:523:13 | _strset | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| taint.cpp:523:7:523:13 | _strset | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| taint.cpp:523:7:523:13 | _strset | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| taint.cpp:523:7:523:13 | _strset | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| taint.cpp:523:7:523:13 | _strset | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| taint.cpp:523:7:523:13 | _strset | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| taint.cpp:523:7:523:13 | _strset | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| taint.cpp:523:7:523:13 | _strset | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| taint.cpp:523:7:523:13 | _strset | (const RSA *,int) | | RSA_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const RSA *,int) | | RSA_test_flags | 1 | +| taint.cpp:523:7:523:13 | _strset | (const RSA *,int) | | ossl_rsa_dup | 1 | +| taint.cpp:523:7:523:13 | _strset | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| taint.cpp:523:7:523:13 | _strset | (const SSL *,int) | | SSL_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| taint.cpp:523:7:523:13 | _strset | (const UI *,int) | | UI_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509 *,int) | | X509_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509 *,int) | | X509_get_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| taint.cpp:523:7:523:13 | _strset | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | taint.cpp:523:7:523:13 | _strset | (const XCHAR *,int) | CStringT | CStringT | 1 | | taint.cpp:523:7:523:13 | _strset | (const YCHAR *,int) | CStringT | CStringT | 1 | +| taint.cpp:523:7:523:13 | _strset | (const char *,int) | | DH_meth_new | 1 | +| taint.cpp:523:7:523:13 | _strset | (const char *,int) | | DSA_meth_new | 1 | +| taint.cpp:523:7:523:13 | _strset | (const char *,int) | | Jim_StrDupLen | 1 | +| taint.cpp:523:7:523:13 | _strset | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| taint.cpp:523:7:523:13 | _strset | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:523:7:523:13 | _strset | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:523:7:523:13 | _strset | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| taint.cpp:523:7:523:13 | _strset | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| taint.cpp:523:7:523:13 | _strset | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:523:7:523:13 | _strset | (int *,int) | | X509_PURPOSE_set | 1 | +| taint.cpp:523:7:523:13 | _strset | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:523:7:523:13 | _strset | (int,int) | | BN_security_bits | 1 | +| taint.cpp:523:7:523:13 | _strset | (int,int) | | EVP_MD_meth_new | 1 | +| taint.cpp:523:7:523:13 | _strset | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:523:7:523:13 | _strset | (int,int) | | acttab_alloc | 1 | +| taint.cpp:523:7:523:13 | _strset | (rule *,int) | | Configlist_add | 1 | +| taint.cpp:523:7:523:13 | _strset | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| taint.cpp:523:7:523:13 | _strset | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| taint.cpp:523:7:523:13 | _strset | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| taint.cpp:523:7:523:13 | _strset | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| taint.cpp:523:7:523:13 | _strset | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| taint.cpp:523:7:523:13 | _strset | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:523:7:523:13 | _strset | (uint16_t,int) | | tls1_group_id2nid | 1 | +| taint.cpp:523:7:523:13 | _strset | (unsigned char *,int) | | RAND_bytes | 1 | +| taint.cpp:523:7:523:13 | _strset | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| taint.cpp:523:7:523:13 | _strset | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| taint.cpp:523:7:523:13 | _strset | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| taint.cpp:523:7:523:13 | _strset | (void *,int) | | DSO_dsobyaddr | 1 | +| taint.cpp:523:7:523:13 | _strset | (void *,int) | | sqlite3_realloc | 1 | | taint.cpp:523:7:523:13 | _strset | (wchar_t,int) | CStringT | CStringT | 1 | | taint.cpp:525:6:525:18 | test_strset_1 | (const CStringT &,char) | | operator+ | 1 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | defossilize | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | make_uppercase | 0 | +| taint.cpp:531:6:531:18 | test_strset_2 | (char *) | | next_item | 0 | | taint.cpp:531:6:531:18 | test_strset_2 | (char *) | CStringT | CStringT | 0 | +| taint.cpp:538:7:538:13 | mempcpy | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_personal | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_salt | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (BLAKE2S_CTX *,const void *,size_t) | | ossl_blake2s_update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (BLAKE2S_CTX *,const void *,size_t) | | ossl_blake2s_update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_personal | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_salt | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (CCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ccm128_aad | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (CCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ccm128_tag | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (CMAC_CTX *,const void *,size_t) | | CMAC_Update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (CMAC_CTX *,const void *,size_t) | | CMAC_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (CMS_RecipientInfo *,const unsigned char *,size_t) | | CMS_RecipientInfo_kekri_id_cmp | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (DH *,const unsigned char *,size_t) | | ossl_dh_buf2key | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (EC_GROUP *,const unsigned char *,size_t) | | EC_GROUP_set_seed | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (EC_KEY *,const unsigned char *,size_t) | | ossl_ec_key_simple_oct2priv | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (EVP_MD_CTX *,const unsigned char *,size_t) | | EVP_DigestVerifyFinal | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (EVP_PKEY *,char *,size_t) | | EVP_PKEY_get_default_digest_name | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (KECCAK1600_CTX *,const void *,size_t) | | ossl_sha3_update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (KECCAK1600_CTX *,const void *,size_t) | | ossl_sha3_update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (KECCAK1600_CTX *,unsigned char *,size_t) | | ossl_sha3_squeeze | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (KECCAK1600_CTX *,unsigned char,size_t) | | ossl_sha3_init | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (MD4_CTX *,const void *,size_t) | | MD4_Update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (MD4_CTX *,const void *,size_t) | | MD4_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (MD4_CTX *,const void *,size_t) | | md4_block_data_order | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (MD4_CTX *,const void *,size_t) | | md4_block_data_order | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (MD5_CTX *,const void *,size_t) | | MD5_Update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (MD5_CTX *,const void *,size_t) | | MD5_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (MD5_SHA1_CTX *,const void *,size_t) | | ossl_md5_sha1_update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (MD5_SHA1_CTX *,const void *,size_t) | | ossl_md5_sha1_update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (MDC2_CTX *,const unsigned char *,size_t) | | MDC2_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_pk_decode | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_sk_decode | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OCB128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ocb128_aad | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OCB128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ocb128_tag | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_HPKE_CTX *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_ikme | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_JSON_ENC *,const char *,size_t) | | ossl_json_str_len | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_JSON_ENC *,const void *,size_t) | | ossl_json_str_hex | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_JSON_ENC *,const void *,size_t) | | ossl_json_str_hex | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_entropy | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_user_entropy | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_ptr | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_ptr | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string_or_ptr | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string_or_ptr | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_PARAM *,void *,size_t) | | ossl_param_set_secure_block | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_default | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_multiblock | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (POLY1305 *,const unsigned char *,size_t) | | Poly1305_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (RAND_POOL *,const unsigned char *,size_t) | | ossl_rand_pool_adin_mix_in | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (RAND_POOL *,size_t,size_t) | | ossl_rand_pool_add_end | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (RIPEMD160_CTX *,const void *,size_t) | | RIPEMD160_Update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (RIPEMD160_CTX *,const void *,size_t) | | RIPEMD160_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (RIPEMD160_CTX *,const void *,size_t) | | ripemd160_block_data_order | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (RIPEMD160_CTX *,const void *,size_t) | | ripemd160_block_data_order | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SCT **,const unsigned char **,size_t) | | o2i_SCT | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SCT *,const unsigned char **,size_t) | | o2i_SCT_signature | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SCT *,const unsigned char *,size_t) | | SCT_set1_extensions | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SCT *,const unsigned char *,size_t) | | SCT_set1_log_id | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SCT *,const unsigned char *,size_t) | | SCT_set1_signature | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SCT *,unsigned char *,size_t) | | SCT_set0_extensions | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SCT *,unsigned char *,size_t) | | SCT_set0_log_id | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SCT *,unsigned char *,size_t) | | SCT_set0_signature | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SHA256_CTX *,const void *,size_t) | | SHA224_Update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (SHA256_CTX *,const void *,size_t) | | SHA224_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SHA256_CTX *,const void *,size_t) | | SHA256_Update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (SHA256_CTX *,const void *,size_t) | | SHA256_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SHA512_CTX *,const void *,size_t) | | SHA384_Update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (SHA512_CTX *,const void *,size_t) | | SHA384_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SHA512_CTX *,const void *,size_t) | | SHA512_Update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (SHA512_CTX *,const void *,size_t) | | SHA512_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SHA_CTX *,const void *,size_t) | | SHA1_Update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (SHA_CTX *,const void *,size_t) | | SHA1_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SIPHASH *,const unsigned char *,size_t) | | SipHash_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SIPHASH *,unsigned char *,size_t) | | SipHash_Final | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SIV128_CONTEXT *,const unsigned char *,size_t) | | ossl_siv128_set_tag | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SIV128_CONTEXT *,unsigned char *,size_t) | | ossl_siv128_get_tag | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_priv | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_pub | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SM3_CTX *,const void *,size_t) | | ossl_sm3_block_data_order | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (SM3_CTX *,const void *,size_t) | | ossl_sm3_block_data_order | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SM3_CTX *,const void *,size_t) | | ossl_sm3_update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (SM3_CTX *,const void *,size_t) | | ossl_sm3_update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL *,const unsigned char *,size_t) | | SSL_set1_client_cert_type | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL *,const unsigned char *,size_t) | | SSL_set1_server_cert_type | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL *,const unsigned char *,size_t) | | SSL_set_quic_tls_transport_params | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL *,size_t,size_t) | | SSL_set_block_padding_ex | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL_CONNECTION *,TLS_RECORD *,size_t) | | ssl_release_record | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL_CONNECTION *,const unsigned char *,size_t) | | lookup_sess_in_cache | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_client_cert_type | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_server_cert_type | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL_CTX *,size_t,size_t) | | SSL_CTX_set_block_padding_ex | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_alpn_selected | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (WPACKET *,BUF_MEM *,size_t) | | WPACKET_init_len | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (WPACKET *,const unsigned char *,size_t) | | ossl_quic_wire_encode_frame_new_token | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (WPACKET *,const void *,size_t) | | WPACKET_memcpy | 1 | +| taint.cpp:538:7:538:13 | mempcpy | (WPACKET *,const void *,size_t) | | WPACKET_memcpy | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (WPACKET *,int,size_t) | | WPACKET_memset | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (WPACKET *,uint64_t,size_t) | | WPACKET_put_bytes__ | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (WPACKET *,unsigned char *,size_t) | | WPACKET_init_der | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (WPACKET *,unsigned char *,size_t) | | dtls_raw_hello_verify_request | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_add1_host | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (char *,const char *,size_t) | | OPENSSL_strlcat | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (char *,const char *,size_t) | | OPENSSL_strlcpy | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const EVP_MD *,const unsigned char *,size_t) | | OSSL_STORE_SEARCH_by_key_fingerprint | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const OSSL_CMP_CTX *,char *,size_t) | | OSSL_CMP_CTX_snprint_PKIStatus | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const OSSL_CMP_PKISI *,char *,size_t) | | OSSL_CMP_snprint_PKIStatusInfo | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const OSSL_NAMEMAP *,int,size_t) | | ossl_namemap_num2name | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const OSSL_PARAM *,char **,size_t) | | OSSL_PARAM_get_utf8_string | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const SSL *,unsigned char *,size_t) | | SSL_get_client_random | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const SSL *,unsigned char *,size_t) | | SSL_get_server_random | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const SSL_SESSION *,unsigned char *,size_t) | | SSL_SESSION_get_master_key | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const char *,unsigned char *,size_t) | | OSSL_PARAM_construct_BN | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (int *,int *,size_t) | | EVP_PBE_get | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (unsigned char *,const unsigned char *,size_t) | | BUF_reverse | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 2 | +| taint.cpp:538:7:538:13 | mempcpy | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 2 | +| taint.cpp:548:7:548:13 | memccpy | (BIGNUM *,BIGNUM *,const unsigned char **,size_t) | | ossl_decode_der_dsa_sig | 3 | +| taint.cpp:548:7:548:13 | memccpy | (BIO *,X509 *,unsigned long,unsigned long) | | X509_print_ex | 3 | +| taint.cpp:548:7:548:13 | memccpy | (BIO *,X509_ACERT *,unsigned long,unsigned long) | | X509_ACERT_print_ex | 3 | +| taint.cpp:548:7:548:13 | memccpy | (BIO *,X509_REQ *,unsigned long,unsigned long) | | X509_REQ_print_ex | 3 | +| taint.cpp:548:7:548:13 | memccpy | (BIO *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex | 2 | +| taint.cpp:548:7:548:13 | memccpy | (BIO *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex | 3 | +| taint.cpp:548:7:548:13 | memccpy | (CCM128_CONTEXT *,const unsigned char *,size_t,size_t) | | CRYPTO_ccm128_setiv | 3 | +| taint.cpp:548:7:548:13 | memccpy | (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ccm128_decrypt | 3 | +| taint.cpp:548:7:548:13 | memccpy | (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ccm128_encrypt | 3 | +| taint.cpp:548:7:548:13 | memccpy | (EVP_KEYMGMT *,void *,char *,size_t) | | evp_keymgmt_util_get_deflt_digest_name | 3 | +| taint.cpp:548:7:548:13 | memccpy | (FILE *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex_fp | 2 | +| taint.cpp:548:7:548:13 | memccpy | (FILE *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex_fp | 3 | +| taint.cpp:548:7:548:13 | memccpy | (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_gcm128_decrypt | 3 | +| taint.cpp:548:7:548:13 | memccpy | (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_gcm128_encrypt | 3 | +| taint.cpp:548:7:548:13 | memccpy | (KECCAK1600_CTX *,unsigned char,size_t,size_t) | | ossl_keccak_init | 3 | +| taint.cpp:548:7:548:13 | memccpy | (OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ocb128_decrypt | 3 | +| taint.cpp:548:7:548:13 | memccpy | (OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ocb128_encrypt | 3 | +| taint.cpp:548:7:548:13 | memccpy | (OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_psk | 3 | +| taint.cpp:548:7:548:13 | memccpy | (OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t) | | ossl_property_list_to_string | 3 | +| taint.cpp:548:7:548:13 | memccpy | (OSSL_PARAM[],size_t,size_t,unsigned long) | | ossl_digest_default_get_params | 3 | +| taint.cpp:548:7:548:13 | memccpy | (OSSL_PARAM_BLD *,const char *,const BIGNUM *,size_t) | | OSSL_PARAM_BLD_push_BN_pad | 3 | +| taint.cpp:548:7:548:13 | memccpy | (OSSL_PARAM_BLD *,const char *,const char *,size_t) | | OSSL_PARAM_BLD_push_utf8_string | 3 | +| taint.cpp:548:7:548:13 | memccpy | (OSSL_PARAM_BLD *,const char *,const void *,size_t) | | OSSL_PARAM_BLD_push_octet_string | 3 | +| taint.cpp:548:7:548:13 | memccpy | (OSSL_RECORD_LAYER *,size_t,size_t,size_t) | | tls_setup_write_buffer | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cbc | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cfb8 | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cfb128 | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_ofb128 | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cbc | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb1 | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb8 | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb128 | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_ctr | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_ofb128 | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_cbc | 3 | +| taint.cpp:548:7:548:13 | memccpy | (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ecb | 3 | +| taint.cpp:548:7:548:13 | memccpy | (RAND_POOL *,const unsigned char *,size_t,size_t) | | ossl_rand_pool_add | 3 | +| taint.cpp:548:7:548:13 | memccpy | (SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | ossl_siv128_decrypt | 3 | +| taint.cpp:548:7:548:13 | memccpy | (SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | ossl_siv128_encrypt | 3 | +| taint.cpp:548:7:548:13 | memccpy | (SSL *,uint64_t,const SSL_SHUTDOWN_EX_ARGS *,size_t) | | SSL_shutdown_ex | 3 | +| taint.cpp:548:7:548:13 | memccpy | (SSL_CONNECTION *,unsigned char **,const void *,size_t) | | construct_key_exchange_tbs | 3 | +| taint.cpp:548:7:548:13 | memccpy | (WPACKET *,const void *,size_t,size_t) | | WPACKET_sub_memcpy__ | 3 | +| taint.cpp:548:7:548:13 | memccpy | (WPACKET *,int,const unsigned char *,size_t) | | ossl_DER_w_octet_string | 3 | +| taint.cpp:548:7:548:13 | memccpy | (WPACKET *,int,const unsigned char *,size_t) | | ossl_DER_w_precompiled | 3 | +| taint.cpp:548:7:548:13 | memccpy | (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_allocate_bytes__ | 3 | +| taint.cpp:548:7:548:13 | memccpy | (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_reserve_bytes__ | 3 | +| taint.cpp:548:7:548:13 | memccpy | (WPACKET *,uint64_t,const unsigned char *,size_t) | | ossl_quic_wire_encode_transport_param_bytes | 3 | +| taint.cpp:548:7:548:13 | memccpy | (WPACKET *,unsigned char *,size_t,size_t) | | WPACKET_init_static_len | 3 | +| taint.cpp:548:7:548:13 | memccpy | (const ML_DSA_KEY *,int,const uint8_t *,size_t) | | ossl_ml_dsa_mu_init | 3 | +| taint.cpp:548:7:548:13 | memccpy | (const VECTOR *,uint32_t,uint8_t *,size_t) | | ossl_ml_dsa_w1_encode | 3 | +| taint.cpp:548:7:548:13 | memccpy | (const u128[16],uint8_t *,const uint8_t *,size_t) | | ossl_polyval_ghash_hash | 3 | +| taint.cpp:548:7:548:13 | memccpy | (int *,X509 *,stack_st_X509 *,unsigned long) | | X509_chain_check_suiteb | 3 | +| taint.cpp:548:7:548:13 | memccpy | (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_private_key | 3 | +| taint.cpp:548:7:548:13 | memccpy | (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_public_key | 3 | +| taint.cpp:548:7:548:13 | memccpy | (int,const regex_t *,char *,size_t) | | jim_regerror | 3 | +| taint.cpp:548:7:548:13 | memccpy | (int,int,size_t,size_t) | | ossl_rand_pool_new | 3 | +| taint.cpp:548:7:548:13 | memccpy | (u64[2],const u128[16],const u8 *,size_t) | | ossl_gcm_ghash_4bit | 3 | +| taint.cpp:548:7:548:13 | memccpy | (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_add_words | 2 | +| taint.cpp:548:7:548:13 | memccpy | (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_add_words | 3 | +| taint.cpp:548:7:548:13 | memccpy | (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_words | 2 | +| taint.cpp:548:7:548:13 | memccpy | (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_words | 3 | +| taint.cpp:548:7:548:13 | memccpy | (void *,unsigned char *,size_t *,size_t) | | ossl_ccm_stream_final | 3 | +| taint.cpp:548:7:548:13 | memccpy | (void *,unsigned char *,size_t *,size_t) | | ossl_cipher_generic_block_final | 3 | +| taint.cpp:548:7:548:13 | memccpy | (void *,unsigned char *,size_t *,size_t) | | ossl_gcm_stream_final | 3 | +| taint.cpp:558:7:558:12 | strcat | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | +| taint.cpp:558:7:558:12 | strcat | (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (BIGNUM **,const char *) | | BN_asc2bn | 1 | +| taint.cpp:558:7:558:12 | strcat | (BIGNUM **,const char *) | | BN_dec2bn | 1 | +| taint.cpp:558:7:558:12 | strcat | (BIGNUM **,const char *) | | BN_hex2bn | 1 | +| taint.cpp:558:7:558:12 | strcat | (CONF *,const char *) | | TS_CONF_get_tsa_section | 1 | +| taint.cpp:558:7:558:12 | strcat | (CONF *,const char *) | | _CONF_new_section | 1 | +| taint.cpp:558:7:558:12 | strcat | (DH_METHOD *,const char *) | | DH_meth_set1_name | 1 | +| taint.cpp:558:7:558:12 | strcat | (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 1 | +| taint.cpp:558:7:558:12 | strcat | (DSO *,const char *) | | DSO_convert_filename | 1 | +| taint.cpp:558:7:558:12 | strcat | (DSO *,const char *) | | DSO_set_filename | 1 | +| taint.cpp:558:7:558:12 | strcat | (ENGINE *,const char *) | | ENGINE_set_id | 1 | +| taint.cpp:558:7:558:12 | strcat | (ENGINE *,const char *) | | ENGINE_set_name | 1 | +| taint.cpp:558:7:558:12 | strcat | (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 1 | +| taint.cpp:558:7:558:12 | strcat | (EVP_PKEY *,const char *) | | CTLOG_new | 1 | +| taint.cpp:558:7:558:12 | strcat | (EVP_PKEY_CTX *,const char *) | | app_paramgen | 1 | +| taint.cpp:558:7:558:12 | strcat | (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (Jim_Interp *,const char *) | | Jim_Eval | 1 | +| taint.cpp:558:7:558:12 | strcat | (Jim_Interp *,const char *) | | Jim_EvalFile | 1 | +| taint.cpp:558:7:558:12 | strcat | (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 1 | +| taint.cpp:558:7:558:12 | strcat | (Jim_Interp *,const char *) | | Jim_EvalGlobal | 1 | +| taint.cpp:558:7:558:12 | strcat | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | +| taint.cpp:558:7:558:12 | strcat | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | +| taint.cpp:558:7:558:12 | strcat | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 1 | +| taint.cpp:558:7:558:12 | strcat | (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 1 | +| taint.cpp:558:7:558:12 | strcat | (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 1 | +| taint.cpp:558:7:558:12 | strcat | (SSL *,const char *) | | SSL_add1_host | 1 | +| taint.cpp:558:7:558:12 | strcat | (SSL *,const char *) | | SSL_set1_host | 1 | +| taint.cpp:558:7:558:12 | strcat | (SSL *,const char *) | | SSL_set_cipher_list | 1 | +| taint.cpp:558:7:558:12 | strcat | (SSL *,const char *) | | SSL_use_psk_identity_hint | 1 | +| taint.cpp:558:7:558:12 | strcat | (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 1 | +| taint.cpp:558:7:558:12 | strcat | (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 1 | +| taint.cpp:558:7:558:12 | strcat | (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 1 | +| taint.cpp:558:7:558:12 | strcat | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | +| taint.cpp:558:7:558:12 | strcat | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | +| taint.cpp:558:7:558:12 | strcat | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | +| taint.cpp:558:7:558:12 | strcat | (STANZA *,const char *) | | test_start_file | 1 | +| taint.cpp:558:7:558:12 | strcat | (UI *,const char *) | | UI_add_error_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (UI *,const char *) | | UI_add_info_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (UI *,const char *) | | UI_dup_error_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (UI *,const char *) | | UI_dup_info_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (X509 *,const char *) | | x509_ctrl_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | +| taint.cpp:558:7:558:12 | strcat | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | +| taint.cpp:558:7:558:12 | strcat | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:558:7:558:12 | strcat | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | Configcmp | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | DES_crypt | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | get_passwd | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | openssl_fopen | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | ossl_pem_check_suffix | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | ossl_v3_name_cmp | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | sqlite3_strglob | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | test_mk_file_path | 1 | +| taint.cpp:558:7:558:12 | strcat | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:558:7:558:12 | strcat | (lemon *,const char *) | | file_makename | 1 | +| taint.cpp:558:7:558:12 | strcat | (size_t *,const char *) | | next_protos_parse | 1 | +| taint.cpp:558:7:558:12 | strcat | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | +| taint.cpp:558:7:558:12 | strcat | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | +| taint.cpp:558:7:558:12 | strcat | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | +| taint.cpp:558:7:558:12 | strcat | (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 1 | +| taint.cpp:558:7:558:12 | strcat | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | +| taint.cpp:558:7:558:12 | strcat | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | +| taint.cpp:558:7:558:12 | strcat | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:558:7:558:12 | strcat | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | +| taint.cpp:558:7:558:12 | strcat | (unsigned long *,const char *) | | set_cert_ex | 1 | +| taint.cpp:558:7:558:12 | strcat | (unsigned long *,const char *) | | set_name_ex | 1 | +| taint.cpp:560:6:560:16 | test_strcat | (PKCS7 *,int,long,char *) | | PKCS7_ctrl | 3 | +| taint.cpp:560:6:560:16 | test_strcat | (SSL_CTX *,srpsrvparm *,char *,char *) | | set_up_srp_verifier_file | 2 | +| taint.cpp:560:6:560:16 | test_strcat | (SSL_CTX *,srpsrvparm *,char *,char *) | | set_up_srp_verifier_file | 3 | +| taint.cpp:560:6:560:16 | test_strcat | (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_init | 3 | +| taint.cpp:560:6:560:16 | test_strcat | (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_old_init | 3 | +| taint.cpp:560:6:560:16 | test_strcat | (action **,e_action,symbol *,char *) | | Action_add | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_bio_CMS | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,DH **,pem_password_cb *,void *) | | PEM_read_bio_DHparams | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAPrivateKey | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSA_PUBKEY | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAparams | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_bio_ECPKParameters | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_ECPrivateKey | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_EC_PUBKEY | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PUBKEY | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PrivateKey | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_bio | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_bio_NETSCAPE_CERT_SEQUENCE | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_bio_PKCS7 | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8_PRIV_KEY_INFO | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPrivateKey | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPublicKey | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSA_PUBKEY | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_bio_SSL_SESSION | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509 | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509_AUX | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_bio_X509_ACERT | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_bio_X509_CRL | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_bio_X509_PUBKEY | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_bio_X509_REQ | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8 | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,size_t,..(*)(..),void *) | | ossl_quic_demux_new | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read_bio | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (DSO *,int,long,void *) | | DSO_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (EVP_CIPHER_CTX *,int,int,void *) | | EVP_CIPHER_CTX_ctrl | 2 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (EVP_CIPHER_CTX *,int,int,void *) | | EVP_CIPHER_CTX_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_CMS | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,DH **,pem_password_cb *,void *) | | PEM_read_DHparams | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAPrivateKey | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSA_PUBKEY | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAparams | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_ECPKParameters | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_ECPrivateKey | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_EC_PUBKEY | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PUBKEY | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PrivateKey | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_fp | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_NETSCAPE_CERT_SEQUENCE | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_PKCS7 | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_PKCS8_PRIV_KEY_INFO | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPrivateKey | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPublicKey | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSA_PUBKEY | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_SSL_SESSION | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509 | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509_AUX | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_X509_ACERT | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_X509_CRL | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_X509_PUBKEY | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_X509_REQ | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_PKCS8 | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (HT *,size_t,..(*)(..),void *) | | ossl_ht_filter | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (MD5_SHA1_CTX *,int,int,void *) | | ossl_md5_sha1_ctrl | 2 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (MD5_SHA1_CTX *,int,int,void *) | | ossl_md5_sha1_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *) | | CRYPTO_ocb128_copy_ctx | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (OPENSSL_LHASH *,OPENSSL_LH_DOALL_FUNCARG_THUNK,OPENSSL_LH_DOALL_FUNCARG,void *) | | OPENSSL_LH_doall_arg_thunk | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (OSSL_PROVIDER *,int,..(*)(..),void *) | | evp_names_do_all | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_qtx_set_mutator | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_quic_channel_set_mutator | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (QUIC_RXFC *,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init_standalone | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SHA_CTX *,int,int,void *) | | ossl_sha1_ctrl | 2 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SHA_CTX *,int,int,void *) | | ossl_sha1_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SSL *,int,long,void *) | | SSL_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SSL *,int,long,void *) | | dtls1_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SSL *,int,long,void *) | | ossl_quic_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SSL *,int,long,void *) | | ssl3_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *) | | ossl_statem_set_mutator | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *) | | SSL_CTX_set_session_ticket_cb | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SSL_CTX *,int,long,void *) | | SSL_CTX_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SSL_CTX *,int,long,void *) | | ossl_quic_ctx_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (SSL_CTX *,int,long,void *) | | ssl3_ctx_ctrl | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (X509_ALGOR *,ASN1_OBJECT *,int,void *) | | X509_ALGOR_set0 | 2 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (X509_ALGOR *,ASN1_OBJECT *,int,void *) | | X509_ALGOR_set0 | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (char *,int,int,void *) | | PEM_def_callback | 2 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (char *,int,int,void *) | | PEM_def_callback | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (char *,int,int,void *) | | ossl_pw_pem_password | 2 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (char *,int,int,void *) | | ossl_pw_pem_password | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (char *,int,int,void *) | | ossl_pw_pvk_password | 2 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (char *,int,int,void *) | | ossl_pw_pvk_password | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (const OSSL_NAMEMAP *,int,..(*)(..),void *) | | ossl_namemap_doall_names | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (int,unsigned long,..(*)(..),void *) | | RSA_generate_key | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_recover_init_sql | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_rtree_geometry_callback | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,const char *,const sqlite3_module *,void *) | | sqlite3_create_module | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,const char *,int,void *) | | sqlite3_file_control | 2 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,const char *,int,void *) | | sqlite3_file_control | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,int,..(*)(..),void *) | | sqlite3_progress_handler | 3 | +| taint.cpp:570:16:570:25 | _mbsncat_l | (sqlite3 *,unsigned int,..(*)(..),void *) | | sqlite3_trace_v2 | 3 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (ENGINE *,const char *,long,void *,..(*)(..),int) | | ENGINE_ctrl_cmd | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int) | | engine_table_register | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit_ex | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int) | | a2i_GENERAL_NAME | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int) | | Jim_DictKeysVector | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int) | | Jim_SetDictKeysVector | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int) | | Jim_GetEnum | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (PKCS7 *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,int) | | PKCS7_verify | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int) | | ossl_quic_stream_map_init | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int) | | RSA_verify_PKCS1_PSS_mgf1 | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS_mgf1 | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (SSL_CONNECTION *,PACKET *,unsigned int,RAW_EXTENSION **,size_t *,int) | | tls_collect_extensions | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (SSL_CONNECTION *,int,RAW_EXTENSION *,X509 *,size_t,int) | | tls_parse_all_extensions | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (UI *,const char *,int,char *,int,int) | | UI_add_input_string | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (UI *,const char *,int,char *,int,int) | | UI_dup_input_string | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int) | | X509V3_set_ctx | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int) | | PKCS12_item_i2d_encrypt | 4 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int) | | PKCS12_item_i2d_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int) | | X509_PUBKEY_set0_param | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const BIGNUM *,int,..(*)(..),BN_CTX *,void *,int) | | BN_is_prime_fasttest | 4 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const BIGNUM *,int,..(*)(..),BN_CTX *,void *,int) | | BN_is_prime_fasttest | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int) | | PKCS12_item_decrypt_d2i | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | CRYPTO_xts128_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | ossl_crypto_xts128gb_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_cbc_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_ncbc_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int) | | IDEA_cbc_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int) | | RC2_cbc_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int) | | BF_cbc_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int) | | CAST_cbc_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int) | | SEED_cbc_encrypt | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const void *,const void *,int,int,..(*)(..),int) | | OBJ_bsearch_ex_ | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 5 | +| taint.cpp:572:6:572:20 | test__mbsncat_l | (unsigned char *,int,const unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_OAEP | 5 | +| taint.cpp:589:7:589:12 | strsep | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | +| taint.cpp:589:7:589:12 | strsep | (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (BIGNUM **,const char *) | | BN_asc2bn | 1 | +| taint.cpp:589:7:589:12 | strsep | (BIGNUM **,const char *) | | BN_dec2bn | 1 | +| taint.cpp:589:7:589:12 | strsep | (BIGNUM **,const char *) | | BN_hex2bn | 1 | +| taint.cpp:589:7:589:12 | strsep | (CONF *,const char *) | | TS_CONF_get_tsa_section | 1 | +| taint.cpp:589:7:589:12 | strsep | (CONF *,const char *) | | _CONF_new_section | 1 | +| taint.cpp:589:7:589:12 | strsep | (DH_METHOD *,const char *) | | DH_meth_set1_name | 1 | +| taint.cpp:589:7:589:12 | strsep | (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 1 | +| taint.cpp:589:7:589:12 | strsep | (DSO *,const char *) | | DSO_convert_filename | 1 | +| taint.cpp:589:7:589:12 | strsep | (DSO *,const char *) | | DSO_set_filename | 1 | +| taint.cpp:589:7:589:12 | strsep | (ENGINE *,const char *) | | ENGINE_set_id | 1 | +| taint.cpp:589:7:589:12 | strsep | (ENGINE *,const char *) | | ENGINE_set_name | 1 | +| taint.cpp:589:7:589:12 | strsep | (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 1 | +| taint.cpp:589:7:589:12 | strsep | (EVP_PKEY *,const char *) | | CTLOG_new | 1 | +| taint.cpp:589:7:589:12 | strsep | (EVP_PKEY_CTX *,const char *) | | app_paramgen | 1 | +| taint.cpp:589:7:589:12 | strsep | (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (Jim_Interp *,const char *) | | Jim_Eval | 1 | +| taint.cpp:589:7:589:12 | strsep | (Jim_Interp *,const char *) | | Jim_EvalFile | 1 | +| taint.cpp:589:7:589:12 | strsep | (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 1 | +| taint.cpp:589:7:589:12 | strsep | (Jim_Interp *,const char *) | | Jim_EvalGlobal | 1 | +| taint.cpp:589:7:589:12 | strsep | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | +| taint.cpp:589:7:589:12 | strsep | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | +| taint.cpp:589:7:589:12 | strsep | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 1 | +| taint.cpp:589:7:589:12 | strsep | (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 1 | +| taint.cpp:589:7:589:12 | strsep | (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 1 | +| taint.cpp:589:7:589:12 | strsep | (SSL *,const char *) | | SSL_add1_host | 1 | +| taint.cpp:589:7:589:12 | strsep | (SSL *,const char *) | | SSL_set1_host | 1 | +| taint.cpp:589:7:589:12 | strsep | (SSL *,const char *) | | SSL_set_cipher_list | 1 | +| taint.cpp:589:7:589:12 | strsep | (SSL *,const char *) | | SSL_use_psk_identity_hint | 1 | +| taint.cpp:589:7:589:12 | strsep | (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 1 | +| taint.cpp:589:7:589:12 | strsep | (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 1 | +| taint.cpp:589:7:589:12 | strsep | (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 1 | +| taint.cpp:589:7:589:12 | strsep | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | +| taint.cpp:589:7:589:12 | strsep | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | +| taint.cpp:589:7:589:12 | strsep | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | +| taint.cpp:589:7:589:12 | strsep | (STANZA *,const char *) | | test_start_file | 1 | +| taint.cpp:589:7:589:12 | strsep | (UI *,const char *) | | UI_add_error_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (UI *,const char *) | | UI_add_info_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (UI *,const char *) | | UI_dup_error_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (UI *,const char *) | | UI_dup_info_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (X509 *,const char *) | | x509_ctrl_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | +| taint.cpp:589:7:589:12 | strsep | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | +| taint.cpp:589:7:589:12 | strsep | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:589:7:589:12 | strsep | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | Configcmp | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | DES_crypt | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | get_passwd | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | openssl_fopen | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | ossl_pem_check_suffix | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | ossl_v3_name_cmp | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | sqlite3_strglob | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | test_mk_file_path | 1 | +| taint.cpp:589:7:589:12 | strsep | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:589:7:589:12 | strsep | (lemon *,const char *) | | file_makename | 1 | +| taint.cpp:589:7:589:12 | strsep | (size_t *,const char *) | | next_protos_parse | 1 | +| taint.cpp:589:7:589:12 | strsep | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | +| taint.cpp:589:7:589:12 | strsep | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | +| taint.cpp:589:7:589:12 | strsep | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | +| taint.cpp:589:7:589:12 | strsep | (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 1 | +| taint.cpp:589:7:589:12 | strsep | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | +| taint.cpp:589:7:589:12 | strsep | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | +| taint.cpp:589:7:589:12 | strsep | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:589:7:589:12 | strsep | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | +| taint.cpp:589:7:589:12 | strsep | (unsigned long *,const char *) | | set_cert_ex | 1 | +| taint.cpp:589:7:589:12 | strsep | (unsigned long *,const char *) | | set_name_ex | 1 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | defossilize | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | make_uppercase | 0 | +| taint.cpp:591:6:591:16 | test_strsep | (char *) | | next_item | 0 | | taint.cpp:591:6:591:16 | test_strsep | (char *) | CStringT | CStringT | 0 | +| taint.cpp:602:7:602:13 | _strinc | (..(*)(..),void *) | | OSSL_STORE_do_all_loaders | 1 | +| taint.cpp:602:7:602:13 | _strinc | (ASN1_SCTX *,void *) | | ASN1_SCTX_set_app_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (BIO *,void *) | | BIO_set_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (CONF_IMODULE *,void *) | | CONF_imodule_set_usr_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (CONF_MODULE *,void *) | | CONF_module_set_usr_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (CRYPTO_THREAD_LOCAL *,void *) | | CRYPTO_THREAD_set_local | 1 | +| taint.cpp:602:7:602:13 | _strinc | (DH_METHOD *,void *) | | DH_meth_set0_app_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (DSA_METHOD *,void *) | | DSA_meth_set0_app_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (EVP_CIPHER_CTX *,void *) | | EVP_CIPHER_CTX_set_app_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (EVP_CIPHER_CTX *,void *) | | EVP_CIPHER_CTX_set_cipher_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (EVP_KEYMGMT *,void *) | | evp_keymgmt_util_make_pkey | 1 | +| taint.cpp:602:7:602:13 | _strinc | (EVP_PKEY_CTX *,void *) | | EVP_PKEY_CTX_get1_id | 1 | +| taint.cpp:602:7:602:13 | _strinc | (EVP_PKEY_CTX *,void *) | | EVP_PKEY_CTX_set_app_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (EVP_PKEY_CTX *,void *) | | EVP_PKEY_CTX_set_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (Jim_Stack *,void *) | | Jim_StackPush | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OPENSSL_LHASH *,void *) | | OPENSSL_LH_insert | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OSSL_CALLBACK *,void *) | | OSSL_SELF_TEST_new | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_certConf_cb_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_http_cb_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_transfer_cb_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OSSL_DECODER *,void *) | | ossl_decoder_instance_new | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OSSL_DECODER_CTX *,void *) | | OSSL_DECODER_CTX_set_construct_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OSSL_ENCODER_CTX *,void *) | | OSSL_ENCODER_CTX_set_construct_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OSSL_QRX *,void *) | | ossl_qrx_set_msg_callback_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OSSL_QTX *,void *) | | ossl_qtx_set_msg_callback_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (OSSL_QUIC_TX_PACKETISER *,void *) | | ossl_quic_tx_packetiser_set_msg_callback_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (QUIC_CHANNEL *,void *) | | ossl_quic_channel_set_msg_callback_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (RSA_METHOD *,void *) | | RSA_meth_set0_app_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (SSL *,void *) | | SSL_set0_security_ex_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (SSL *,void *) | | SSL_set_async_callback_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (SSL *,void *) | | SSL_set_default_passwd_cb_userdata | 1 | +| taint.cpp:602:7:602:13 | _strinc | (SSL *,void *) | | SSL_set_record_padding_callback_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (SSL_CTX *,void *) | | SSL_CTX_set0_security_ex_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (SSL_CTX *,void *) | | SSL_CTX_set_async_callback_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (SSL_CTX *,void *) | | SSL_CTX_set_default_passwd_cb_userdata | 1 | +| taint.cpp:602:7:602:13 | _strinc | (SSL_CTX *,void *) | | SSL_CTX_set_record_padding_callback_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (SSL_CTX *,void *) | | SSL_CTX_set_srp_cb_arg | 1 | +| taint.cpp:602:7:602:13 | _strinc | (UI *,void *) | | UI_add_user_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (X509_CRL *,void *) | | X509_CRL_set_meth_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (X509_LOOKUP *,void *) | | X509_LOOKUP_set_method_data | 1 | +| taint.cpp:602:7:602:13 | _strinc | (const OSSL_DISPATCH *,void *) | | ossl_prov_free_key | 1 | +| taint.cpp:602:7:602:13 | _strinc | (const OSSL_PARAM[],void *) | | ossl_store_handle_load_result | 1 | +| taint.cpp:602:7:602:13 | _strinc | (const char *,void *) | | collect_names | 0 | +| taint.cpp:602:7:602:13 | _strinc | (const char *,void *) | | collect_names | 1 | +| taint.cpp:602:7:602:13 | _strinc | (int,void *) | | OSSL_STORE_INFO_new | 1 | +| taint.cpp:602:7:602:13 | _strinc | (int,void *) | | sqlite3_randomness | 1 | +| taint.cpp:602:7:602:13 | _strinc | (unsigned char *,void *) | | pitem_new | 1 | +| taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | | ossl_quic_vlint_decode_unchecked | 0 | | taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | CStringT | CStringT | 0 | | taint.cpp:603:16:603:22 | _mbsinc | (const unsigned char *) | CStringT | operator= | 0 | +| taint.cpp:604:16:604:22 | _strdec | (MD4_CTX *,const unsigned char *) | | MD4_Transform | 1 | +| taint.cpp:604:16:604:22 | _strdec | (RIPEMD160_CTX *,const unsigned char *) | | RIPEMD160_Transform | 1 | +| taint.cpp:604:16:604:22 | _strdec | (SM3_CTX *,const unsigned char *) | | ossl_sm3_transform | 1 | +| taint.cpp:604:16:604:22 | _strdec | (TLS_RL_RECORD *,const unsigned char *) | | ossl_tls_rl_record_set_seq_num | 1 | +| taint.cpp:606:6:606:17 | test__strinc | (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *) | | i2b_PVK_bio | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *) | | PEM_do_header | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (EVP_PKEY *,EVP_KEYMGMT *,void *,OSSL_CALLBACK *,void *) | | evp_keymgmt_util_gen | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (EVP_PKEY_CTX *,int,int,int,void *) | | RSA_pkey_ctx_ctrl | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *) | | ossl_quic_tx_packetiser_set_initial_token | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_dec | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_enc | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (const BIGNUM *,int,..(*)(..),BN_CTX *,void *) | | BN_is_prime | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 4 | +| taint.cpp:606:6:606:17 | test__strinc | (sqlite3 *,const char *,const char *,..(*)(..),void *) | | recoverInit | 4 | +| taint.cpp:616:6:616:17 | test__mbsinc | (PKCS7 *,int,long,char *) | | PKCS7_ctrl | 3 | +| taint.cpp:616:6:616:17 | test__mbsinc | (SSL_CTX *,srpsrvparm *,char *,char *) | | set_up_srp_verifier_file | 3 | +| taint.cpp:616:6:616:17 | test__mbsinc | (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_init | 3 | +| taint.cpp:616:6:616:17 | test__mbsinc | (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_old_init | 3 | +| taint.cpp:616:6:616:17 | test__mbsinc | (action **,e_action,symbol *,char *) | | Action_add | 3 | +| taint.cpp:626:6:626:17 | test__strdec | (BIO *,const BIGNUM *,const char *,int,unsigned char *) | | print_bignum_var | 4 | +| taint.cpp:626:6:626:17 | test__strdec | (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *,unsigned char *) | | ossl_quic_calculate_retry_integrity_tag | 4 | +| taint.cpp:626:6:626:17 | test__strdec | (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_decrypt_fields | 3 | +| taint.cpp:626:6:626:17 | test__strdec | (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_decrypt_fields | 4 | +| taint.cpp:626:6:626:17 | test__strdec | (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_encrypt_fields | 3 | +| taint.cpp:626:6:626:17 | test__strdec | (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_encrypt_fields | 4 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | BIO_gethostbyname | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | Jim_StrDup | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | OPENSSL_LH_strhash | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | Strsafe | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | Symbol_new | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | UI_create_method | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | X509V3_parse_list | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | a2i_IPADDRESS | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | new_pkcs12_builder | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | opt_path_end | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | opt_progname | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | strhash | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | BIO_gethostbyname | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | Jim_StrDup | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | OPENSSL_LH_strhash | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | Strsafe | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | Symbol_new | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | UI_create_method | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | X509V3_parse_list | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | X509_LOOKUP_meth_new | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | a2i_IPADDRESS | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | a2i_IPADDRESS_NC | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | new_pkcs12_builder | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | opt_path_end | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | opt_progname | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | ossl_lh_strcasehash | 0 | +| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | strhash | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | defossilize | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | make_uppercase | 0 | +| taint.cpp:665:6:665:25 | test_no_const_member | (char *) | | next_item | 0 | | taint.cpp:665:6:665:25 | test_no_const_member | (char *) | CStringT | CStringT | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | defossilize | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | make_uppercase | 0 | +| taint.cpp:677:6:677:27 | test_with_const_member | (char *) | | next_item | 0 | | taint.cpp:677:6:677:27 | test_with_const_member | (char *) | CStringT | CStringT | 0 | +| taint.cpp:683:6:683:20 | argument_source | (void *) | | ossl_kdf_data_new | 0 | +| taint.cpp:707:8:707:14 | strncpy | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | +| taint.cpp:707:8:707:14 | strncpy | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | +| taint.cpp:707:8:707:14 | strncpy | (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 2 | +| taint.cpp:707:8:707:14 | strncpy | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | +| taint.cpp:707:8:707:14 | strncpy | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | +| taint.cpp:707:8:707:14 | strncpy | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| taint.cpp:707:8:707:14 | strncpy | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | +| taint.cpp:709:6:709:17 | test_strncpy | (ARGS *,char *) | | chopup_args | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (BIO *,char *) | | BIO_set_callback_arg | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (SRP_VBASE *,char *) | | SRP_VBASE_get1_by_user | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (SRP_VBASE *,char *) | | SRP_VBASE_get_by_user | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (SSL_CTX *,char *) | | SSL_CTX_set_srp_password | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (SSL_CTX *,char *) | | SSL_CTX_set_srp_username | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (const char *,char *) | | sha1sum_file | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (const char *,char *) | | sha3sum_file | 1 | +| taint.cpp:709:6:709:17 | test_strncpy | (unsigned long,char *) | | ERR_error_string | 1 | +| taint.cpp:725:10:725:15 | strtol | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | +| taint.cpp:725:10:725:15 | strtol | (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 2 | +| taint.cpp:725:10:725:15 | strtol | (ASN1_OCTET_STRING **,const unsigned char *,int) | | ossl_cmp_asn1_octet_string_set1_bytes | 2 | +| taint.cpp:725:10:725:15 | strtol | (ASN1_OCTET_STRING *,const unsigned char *,int) | | ASN1_OCTET_STRING_set | 2 | +| taint.cpp:725:10:725:15 | strtol | (ASN1_STRING *,const void *,int) | | ASN1_STRING_set | 2 | +| taint.cpp:725:10:725:15 | strtol | (ASN1_STRING *,void *,int) | | ASN1_STRING_set0 | 2 | +| taint.cpp:725:10:725:15 | strtol | (ASN1_TIME *,tm *,int) | | ossl_asn1_time_from_tm | 2 | +| taint.cpp:725:10:725:15 | strtol | (ASN1_TYPE *,unsigned char *,int) | | ASN1_TYPE_set_octetstring | 2 | +| taint.cpp:725:10:725:15 | strtol | (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_item_embed_free | 2 | +| taint.cpp:725:10:725:15 | strtol | (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_primitive_free | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIGNUM *,const BIGNUM *,int) | | BN_lshift | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIGNUM *,const BIGNUM *,int) | | BN_rshift | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIGNUM *,const BIGNUM *,int) | | BN_with_flags | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIGNUM *,const BIGNUM *,int) | | bn_lshift_fixed_top | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIGNUM *,const BIGNUM *,int) | | bn_rshift_fixed_top | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIGNUM *,const unsigned long *,int) | | bn_set_static_words | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIGNUM *,const unsigned long *,int) | | bn_set_words | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIO *,BIO *,int) | | OSSL_HTTP_REQ_CTX_new | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIO *,BIO *,int) | | SMIME_crlf_copy | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIO *,GENERAL_NAMES *,int) | | OSSL_GENERAL_NAMES_print | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIO *,char *,int) | | BIO_get_line | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIO *,const DSA *,int) | | DSA_print | 2 | +| taint.cpp:725:10:725:15 | strtol | (BIO *,const RSA *,int) | | RSA_print | 2 | +| taint.cpp:725:10:725:15 | strtol | (CERT *,X509_STORE **,int) | | ssl_cert_get_cert_store | 2 | +| taint.cpp:725:10:725:15 | strtol | (CRYPTO_THREAD_ROUTINE,void *,int) | | ossl_crypto_thread_native_start | 2 | +| taint.cpp:725:10:725:15 | strtol | (DH *,const OSSL_PARAM[],int) | | ossl_dh_key_fromdata | 2 | +| taint.cpp:725:10:725:15 | strtol | (DSA *,const OSSL_PARAM[],int) | | ossl_dsa_key_fromdata | 2 | +| taint.cpp:725:10:725:15 | strtol | (ECX_KEY *,const OSSL_PARAM[],int) | | ossl_ecx_key_fromdata | 2 | +| taint.cpp:725:10:725:15 | strtol | (EC_KEY *,const OSSL_PARAM[],int) | | ossl_ec_key_fromdata | 2 | +| taint.cpp:725:10:725:15 | strtol | (ENGINE *,ENGINE_DYNAMIC_ID,int) | | engine_add_dynamic_id | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_export_to_provider | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_find_operation_cache | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY *,EVP_PKEY *,int) | | evp_keymgmt_util_copy | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,EVP_PKEY *,int) | | EVP_PKEY_derive_set_peer_ex | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,const char *,int) | | EVP_PKEY_CTX_set1_pbe_pass | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_hkdf_info | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_tls1_prf_seed | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_key | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_salt | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_scrypt_salt | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_tls1_prf_secret | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set_mac_key | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | +| taint.cpp:725:10:725:15 | strtol | (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | +| taint.cpp:725:10:725:15 | strtol | (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | +| taint.cpp:725:10:725:15 | strtol | (FILE *,const DSA *,int) | | DSA_print_fp | 2 | +| taint.cpp:725:10:725:15 | strtol | (FILE *,const RSA *,int) | | RSA_print_fp | 2 | +| taint.cpp:725:10:725:15 | strtol | (FILE *,rule *,int) | | RulePrint | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,Jim_Obj *,int) | | Jim_ListGetIndex | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,Jim_Obj *,int) | | Jim_UnsetVariable | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewDictObj | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewListObj | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,char *,int) | | Jim_NewStringObjNoAlloc | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,const char *,int) | | Jim_GetGlobalVariableStr | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,const char *,int) | | Jim_GetVariableStr | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,const char *,int) | | Jim_MakeTempFile | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,const char *,int) | | Jim_NewStringObj | 2 | +| taint.cpp:725:10:725:15 | strtol | (Jim_Interp *,const char *,int) | | Jim_NewStringObjUtf8 | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_BASICRESP *,OCSP_CERTID *,int) | | OCSP_resp_find | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_BASICRESP *,X509_EXTENSION *,int) | | OCSP_BASICRESP_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_BASICRESP *,const ASN1_OBJECT *,int) | | OCSP_BASICRESP_get_ext_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_critical | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_ONEREQ *,X509_EXTENSION *,int) | | OCSP_ONEREQ_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_ONEREQ *,const ASN1_OBJECT *,int) | | OCSP_ONEREQ_get_ext_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_critical | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_REQUEST *,X509_EXTENSION *,int) | | OCSP_REQUEST_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_REQUEST *,const ASN1_OBJECT *,int) | | OCSP_REQUEST_get_ext_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_critical | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_SINGLERESP *,X509_EXTENSION *,int) | | OCSP_SINGLERESP_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_SINGLERESP *,const ASN1_OBJECT *,int) | | OCSP_SINGLERESP_get_ext_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_critical | 2 | +| taint.cpp:725:10:725:15 | strtol | (OPENSSL_STACK *,const void *,int) | | OPENSSL_sk_insert | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_referenceValue | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_secretValue | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_CMP_CTX *,int,int) | | OSSL_CMP_CTX_set_option | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_LIB_CTX *,const char *,int) | | EC_GROUP_new_by_curve_name_ex | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_LIB_CTX *,const char *,int) | | EC_KEY_new_by_curve_name_ex | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_LIB_CTX *,const char *,int) | | OSSL_PROVIDER_try_load | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_dsa_key_new | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_kem_key_new | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_LIB_CTX *,const char *,int) | | ossl_parse_query | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_name | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_LIB_CTX *,const char *,int) | | ossl_property_value | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_PROVIDER *,OSSL_PROVIDER **,int) | | ossl_provider_add_to_store | 2 | +| taint.cpp:725:10:725:15 | strtol | (OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int) | | ossl_qrl_enc_level_set_get | 2 | +| taint.cpp:725:10:725:15 | strtol | (PKCS7 *,stack_st_X509 *,int) | | PKCS7_get0_signers | 2 | +| taint.cpp:725:10:725:15 | strtol | (POLICYINFO *,const ASN1_OBJECT *,int) | | ossl_policy_data_new | 2 | +| taint.cpp:725:10:725:15 | strtol | (PROV_CTX *,const char *,int) | | ossl_prov_ctx_get_bool_param | 2 | +| taint.cpp:725:10:725:15 | strtol | (PROV_CTX *,const char *,int) | | ossl_prov_ml_dsa_new | 2 | +| taint.cpp:725:10:725:15 | strtol | (PROV_CTX *,const char *,int) | | ossl_prov_ml_kem_new | 2 | +| taint.cpp:725:10:725:15 | strtol | (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 2 | +| taint.cpp:725:10:725:15 | strtol | (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | +| taint.cpp:725:10:725:15 | strtol | (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | +| taint.cpp:725:10:725:15 | strtol | (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | +| taint.cpp:725:10:725:15 | strtol | (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | +| taint.cpp:725:10:725:15 | strtol | (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL *,SSL *,int) | | create_ssl_connection | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL *,const void *,int) | | SSL_write | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL *,void *,int) | | SSL_peek | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL *,void *,int) | | SSL_read | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL *,void *,int) | | SSL_set_session_ticket_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL_CIPHER *,const SSL_CIPHER *,int) | | OBJ_bsearch_ssl_cipher_id | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL_CONNECTION *,PACKET *,int) | | ssl_cache_cipherlist | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL_CONNECTION *,WPACKET *,int) | | dtls1_close_construct_packet | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL_CONNECTION *,WPACKET *,int) | | dtls1_set_handshake_header | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL_CONNECTION *,WPACKET *,int) | | tls_close_construct_packet | 2 | +| taint.cpp:725:10:725:15 | strtol | (SSL_CONNECTION *,int,int) | | ssl3_send_alert | 2 | +| taint.cpp:725:10:725:15 | strtol | (TS_MSG_IMPRINT *,unsigned char *,int) | | TS_MSG_IMPRINT_set_msg | 2 | +| taint.cpp:725:10:725:15 | strtol | (TS_REQ *,X509_EXTENSION *,int) | | TS_REQ_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (TS_REQ *,const ASN1_OBJECT *,int) | | TS_REQ_get_ext_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (TS_REQ *,int,int) | | TS_REQ_get_ext_by_critical | 2 | +| taint.cpp:725:10:725:15 | strtol | (TS_TST_INFO *,X509_EXTENSION *,int) | | TS_TST_INFO_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (TS_TST_INFO *,const ASN1_OBJECT *,int) | | TS_TST_INFO_get_ext_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_critical | 2 | +| taint.cpp:725:10:725:15 | strtol | (X509 *,X509_EXTENSION *,int) | | X509_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (X509 *,int,int) | | X509_check_purpose | 2 | +| taint.cpp:725:10:725:15 | strtol | (X509 *,int,int) | | X509_check_trust | 2 | +| taint.cpp:725:10:725:15 | strtol | (X509_CRL *,X509_EXTENSION *,int) | | X509_CRL_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (X509_PUBKEY *,unsigned char *,int) | | X509_PUBKEY_set0_public_key | 2 | +| taint.cpp:725:10:725:15 | strtol | (X509_REVOKED *,X509_EXTENSION *,int) | | X509_REVOKED_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 2 | | taint.cpp:725:10:725:15 | strtol | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | | taint.cpp:725:10:725:15 | strtol | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyCharsOverlapped | 2 | +| taint.cpp:725:10:725:15 | strtol | (action *,FILE *,int) | | PrintAction | 2 | +| taint.cpp:725:10:725:15 | strtol | (acttab *,int,int) | | acttab_action | 2 | +| taint.cpp:725:10:725:15 | strtol | (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | +| taint.cpp:725:10:725:15 | strtol | (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | +| taint.cpp:725:10:725:15 | strtol | (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | +| taint.cpp:725:10:725:15 | strtol | (const BIGNUM *,unsigned char *,int) | | BN_bn2lebinpad | 2 | +| taint.cpp:725:10:725:15 | strtol | (const BIGNUM *,unsigned char *,int) | | BN_bn2nativepad | 2 | +| taint.cpp:725:10:725:15 | strtol | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2bin | 2 | +| taint.cpp:725:10:725:15 | strtol | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2lebin | 2 | +| taint.cpp:725:10:725:15 | strtol | (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2native | 2 | +| taint.cpp:725:10:725:15 | strtol | (const CMS_ContentInfo *,BIO *,int) | | ossl_cms_DigestedData_do_final | 2 | +| taint.cpp:725:10:725:15 | strtol | (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_signed_get_attr_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_unsigned_get_attr_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const CMS_SignerInfo *,int,int) | | CMS_signed_get_attr_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const CMS_SignerInfo *,int,int) | | CMS_unsigned_get_attr_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const EVP_MD *,const EVP_MD *,int) | | ossl_rsa_pss_params_create | 2 | +| taint.cpp:725:10:725:15 | strtol | (const EVP_PKEY *,const ASN1_OBJECT *,int) | | EVP_PKEY_get_attr_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const EVP_PKEY *,int,int) | | EVP_PKEY_get_attr_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const OSSL_PARAM *,BIO *,int) | | OSSL_PARAM_print_to_bio | 2 | +| taint.cpp:725:10:725:15 | strtol | (const OSSL_PROVIDER *,const char *,int) | | OSSL_PROVIDER_conf_get_bool | 2 | +| taint.cpp:725:10:725:15 | strtol | (const SSL *,char *,int) | | SSL_get_shared_ciphers | 2 | +| taint.cpp:725:10:725:15 | strtol | (const SSL *,int,int) | | apps_ssl_info_callback | 2 | +| taint.cpp:725:10:725:15 | strtol | (const SSL_CIPHER *,char *,int) | | SSL_CIPHER_description | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509 *,const ASN1_OBJECT *,int) | | X509_get_ext_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_new_init | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509 *,int,int) | | X509_get_ext_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509 *,int,int) | | X509_get_ext_by_critical | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_ACERT *,const ASN1_OBJECT *,int) | | X509_ACERT_get_attr_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_ACERT *,int,int) | | X509_ACERT_get_attr_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_CRL *,const ASN1_OBJECT *,int) | | X509_CRL_get_ext_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_CRL *,const X509 *,int) | | OSSL_CMP_CRLSTATUS_create | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_critical | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_NAME *,char *,int) | | X509_NAME_oneline | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_NAME *,const ASN1_OBJECT *,int) | | X509_NAME_get_index_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_NAME *,int,int) | | X509_NAME_get_index_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_REQ *,const ASN1_OBJECT *,int) | | X509_REQ_get_attr_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_REQ *,int,int) | | X509_REQ_get_attr_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_REVOKED *,const ASN1_OBJECT *,int) | | X509_REVOKED_get_ext_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | +| taint.cpp:725:10:725:15 | strtol | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,SD *,int) | | sd_load | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,const char *,int) | | CRYPTO_strdup | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,long *,int) | | Jim_StringToWide | 2 | +| taint.cpp:725:10:725:15 | strtol | (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | +| taint.cpp:725:10:725:15 | strtol | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 2 | +| taint.cpp:725:10:725:15 | strtol | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_NID | 2 | +| taint.cpp:725:10:725:15 | strtol | (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_critical | 2 | +| taint.cpp:725:10:725:15 | strtol | (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | +| taint.cpp:725:10:725:15 | strtol | (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | +| taint.cpp:725:10:725:15 | strtol | (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | +| taint.cpp:725:10:725:15 | strtol | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | +| taint.cpp:725:10:725:15 | strtol | (int,int,int) | | ASN1_object_size | 2 | +| taint.cpp:725:10:725:15 | strtol | (int,int,int) | | EVP_CIPHER_meth_new | 2 | +| taint.cpp:725:10:725:15 | strtol | (regex_t *,const char *,int) | | jim_regcomp | 2 | +| taint.cpp:725:10:725:15 | strtol | (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | +| taint.cpp:725:10:725:15 | strtol | (sqlite3 *,int,int) | | sqlite3_limit | 2 | +| taint.cpp:725:10:725:15 | strtol | (sqlite3_context *,const char *,int) | | sqlite3_result_error | 2 | +| taint.cpp:725:10:725:15 | strtol | (sqlite3_context *,const void *,int) | | sqlite3_result_error16 | 2 | +| taint.cpp:725:10:725:15 | strtol | (sqlite3_index_info *,int,int) | | sqlite3_vtab_in | 2 | +| taint.cpp:725:10:725:15 | strtol | (sqlite3_stmt *,int,int) | | sqlite3_bind_int | 2 | +| taint.cpp:725:10:725:15 | strtol | (sqlite3_stmt *,int,int) | | sqlite3_bind_zeroblob | 2 | +| taint.cpp:725:10:725:15 | strtol | (sqlite3_stmt *,int,int) | | sqlite3_stmt_status | 2 | +| taint.cpp:725:10:725:15 | strtol | (sqlite3_str *,const char *,int) | | sqlite3_str_append | 2 | +| taint.cpp:725:10:725:15 | strtol | (sqlite3expert *,int,int) | | sqlite3_expert_report | 2 | +| taint.cpp:725:10:725:15 | strtol | (stack_st_ASN1_UTF8STRING *,const char *,int) | | ossl_cmp_sk_ASN1_UTF8STRING_push_str | 2 | +| taint.cpp:725:10:725:15 | strtol | (stack_st_X509 **,X509 *,int) | | ossl_x509_add_cert_new | 2 | +| taint.cpp:725:10:725:15 | strtol | (stack_st_X509 **,stack_st_X509 *,int) | | ossl_x509_add_certs_new | 2 | +| taint.cpp:725:10:725:15 | strtol | (stack_st_X509 *,ASIdentifiers *,int) | | X509v3_asid_validate_resource_set | 2 | +| taint.cpp:725:10:725:15 | strtol | (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 2 | +| taint.cpp:725:10:725:15 | strtol | (stack_st_X509 *,X509 *,int) | | X509_add_cert | 2 | +| taint.cpp:725:10:725:15 | strtol | (stack_st_X509 *,stack_st_X509 *,int) | | X509_add_certs | 2 | +| taint.cpp:725:10:725:15 | strtol | (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 2 | +| taint.cpp:725:10:725:15 | strtol | (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | +| taint.cpp:725:10:725:15 | strtol | (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | +| taint.cpp:725:10:725:15 | strtol | (uint8_t[56],const gf,int) | | gf_serialize | 2 | +| taint.cpp:725:10:725:15 | strtol | (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | +| taint.cpp:725:10:725:15 | strtol | (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | +| taint.cpp:725:10:725:15 | strtol | (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | +| taint.cpp:725:10:725:15 | strtol | (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | +| taint.cpp:725:10:725:15 | strtol | (unsigned int,int,int) | | ossl_blob_length | 2 | +| taint.cpp:725:10:725:15 | strtol | (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | +| taint.cpp:725:10:725:15 | strtol | (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 2 | +| taint.cpp:725:10:725:15 | strtol | (void *,const char *,int) | | CRYPTO_secure_free | 2 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | defossilize | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | make_uppercase | 0 | +| taint.cpp:727:6:727:16 | test_strtol | (char *) | | next_item | 0 | | taint.cpp:727:6:727:16 | test_strtol | (char *) | CStringT | CStringT | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | EVP_PKEY_meth_get0 | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | ossl_get_extension_type | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | ossl_param_bytes_to_blocks | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | ossl_quic_sstream_new | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | ssl_cert_new | 0 | +| taint.cpp:735:7:735:12 | malloc | (size_t) | | test_get_argument | 0 | +| taint.cpp:735:7:735:12 | malloc | (unsigned long) | | BN_num_bits_word | 0 | +| taint.cpp:735:7:735:12 | malloc | (unsigned long) | | BUF_MEM_new_ex | 0 | +| taint.cpp:736:7:736:13 | realloc | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (BIGNUM *,unsigned long) | | BN_add_word | 1 | +| taint.cpp:736:7:736:13 | realloc | (BIGNUM *,unsigned long) | | BN_div_word | 1 | +| taint.cpp:736:7:736:13 | realloc | (BIGNUM *,unsigned long) | | BN_set_word | 1 | +| taint.cpp:736:7:736:13 | realloc | (BIGNUM *,unsigned long) | | BN_sub_word | 1 | +| taint.cpp:736:7:736:13 | realloc | (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (BUF_MEM *,size_t) | | BUF_MEM_grow | 1 | +| taint.cpp:736:7:736:13 | realloc | (BUF_MEM *,size_t) | | BUF_MEM_grow_clean | 1 | +| taint.cpp:736:7:736:13 | realloc | (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_HPKE_SUITE,size_t) | | OSSL_HPKE_get_ciphertext_size | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_HTTP_REQ_CTX *,size_t) | | OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_LIB_CTX *,size_t) | | ossl_quic_lcidm_new | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_PARAM *,size_t) | | OSSL_PARAM_set_size_t | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_PQUEUE *,size_t) | | ossl_pqueue_remove | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_PROVIDER *,size_t) | | ossl_provider_set_operation_bit | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_QTX *,size_t) | | ossl_qtx_set_mdpl | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_add_unvalidated_credit | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_consume_unvalidated_credit | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_record_received_closing_bytes | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_frag_len | 1 | +| taint.cpp:736:7:736:13 | realloc | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_pipelines | 1 | +| taint.cpp:736:7:736:13 | realloc | (QTEST_FAULT *,size_t) | | qtest_fault_resize_datagram | 1 | +| taint.cpp:736:7:736:13 | realloc | (QTEST_FAULT *,size_t) | | qtest_fault_resize_handshake | 1 | +| taint.cpp:736:7:736:13 | realloc | (QTEST_FAULT *,size_t) | | qtest_fault_resize_message | 1 | +| taint.cpp:736:7:736:13 | realloc | (QTEST_FAULT *,size_t) | | qtest_fault_resize_plain_packet | 1 | +| taint.cpp:736:7:736:13 | realloc | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_release_record | 1 | +| taint.cpp:736:7:736:13 | realloc | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_resize_rbuf | 1 | +| taint.cpp:736:7:736:13 | realloc | (QUIC_RXFC *,size_t) | | ossl_quic_rxfc_set_max_window_size | 1 | +| taint.cpp:736:7:736:13 | realloc | (QUIC_SSTREAM *,size_t) | | ossl_quic_sstream_set_buffer_size | 1 | +| taint.cpp:736:7:736:13 | realloc | (QUIC_STREAM_MAP *,size_t) | | ossl_quic_stream_map_set_rr_stepping | 1 | +| taint.cpp:736:7:736:13 | realloc | (RAND_POOL *,size_t) | | ossl_rand_pool_add_begin | 1 | +| taint.cpp:736:7:736:13 | realloc | (SIPHASH *,size_t) | | SipHash_set_hash_size | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL *,size_t) | | SSL_set_block_padding | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL *,size_t) | | SSL_set_default_read_buffer_len | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL *,size_t) | | SSL_set_num_tickets | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL *,size_t) | | create_a_psk | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL_CTX *,size_t) | | SSL_CTX_set_block_padding | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL_CTX *,size_t) | | SSL_CTX_set_default_read_buffer_len | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL_CTX *,size_t) | | SSL_CTX_set_num_tickets | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (WPACKET *,size_t) | | WPACKET_init_null | 1 | +| taint.cpp:736:7:736:13 | realloc | (WPACKET *,size_t) | | WPACKET_set_max_size | 1 | +| taint.cpp:736:7:736:13 | realloc | (WPACKET *,size_t) | | WPACKET_start_sub_packet_len__ | 1 | +| taint.cpp:736:7:736:13 | realloc | (WPACKET *,size_t) | | ossl_quic_wire_encode_padding | 1 | +| taint.cpp:736:7:736:13 | realloc | (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | +| taint.cpp:736:7:736:13 | realloc | (char *,size_t) | | RAND_file_name | 1 | +| taint.cpp:736:7:736:13 | realloc | (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | +| taint.cpp:736:7:736:13 | realloc | (const char *,size_t) | | OPENSSL_strnlen | 1 | +| taint.cpp:736:7:736:13 | realloc | (const uint8_t *,size_t) | | FuzzerTestOneInput | 1 | +| taint.cpp:736:7:736:13 | realloc | (const uint8_t *,size_t) | | ossl_ed448_pubkey_verify | 1 | +| taint.cpp:736:7:736:13 | realloc | (int,size_t) | | ossl_calculate_comp_expansion | 1 | +| taint.cpp:736:7:736:13 | realloc | (uint8_t *,size_t) | | ossl_fnv1a_hash | 1 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | JimDefaultAllocator | 0 | +| taint.cpp:736:7:736:13 | realloc | (void *,size_t) | | JimDefaultAllocator | 1 | +| taint.cpp:758:5:758:11 | sprintf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 1 | +| taint.cpp:758:5:758:11 | sprintf | (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 2 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (ARGS *,char *) | | chopup_args | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (BIO *,char *) | | BIO_set_callback_arg | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (SRP_VBASE *,char *) | | SRP_VBASE_get1_by_user | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (SRP_VBASE *,char *) | | SRP_VBASE_get_by_user | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (SSL_CTX *,char *) | | SSL_CTX_set_srp_password | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (SSL_CTX *,char *) | | SSL_CTX_set_srp_username | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (const char *,char *) | | sha1sum_file | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (const char *,char *) | | sha3sum_file | 1 | +| taint.cpp:760:6:760:23 | call_sprintf_twice | (unsigned long,char *) | | ERR_error_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | +| taint.cpp:782:7:782:11 | fopen | (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (BIGNUM **,const char *) | | BN_asc2bn | 1 | +| taint.cpp:782:7:782:11 | fopen | (BIGNUM **,const char *) | | BN_dec2bn | 1 | +| taint.cpp:782:7:782:11 | fopen | (BIGNUM **,const char *) | | BN_hex2bn | 1 | +| taint.cpp:782:7:782:11 | fopen | (CONF *,const char *) | | TS_CONF_get_tsa_section | 1 | +| taint.cpp:782:7:782:11 | fopen | (CONF *,const char *) | | _CONF_new_section | 1 | +| taint.cpp:782:7:782:11 | fopen | (DH_METHOD *,const char *) | | DH_meth_set1_name | 1 | +| taint.cpp:782:7:782:11 | fopen | (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 1 | +| taint.cpp:782:7:782:11 | fopen | (DSO *,const char *) | | DSO_convert_filename | 1 | +| taint.cpp:782:7:782:11 | fopen | (DSO *,const char *) | | DSO_set_filename | 1 | +| taint.cpp:782:7:782:11 | fopen | (ENGINE *,const char *) | | ENGINE_set_id | 1 | +| taint.cpp:782:7:782:11 | fopen | (ENGINE *,const char *) | | ENGINE_set_name | 1 | +| taint.cpp:782:7:782:11 | fopen | (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 1 | +| taint.cpp:782:7:782:11 | fopen | (EVP_PKEY *,const char *) | | CTLOG_new | 1 | +| taint.cpp:782:7:782:11 | fopen | (EVP_PKEY_CTX *,const char *) | | app_paramgen | 1 | +| taint.cpp:782:7:782:11 | fopen | (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (Jim_Interp *,const char *) | | Jim_Eval | 1 | +| taint.cpp:782:7:782:11 | fopen | (Jim_Interp *,const char *) | | Jim_EvalFile | 1 | +| taint.cpp:782:7:782:11 | fopen | (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 1 | +| taint.cpp:782:7:782:11 | fopen | (Jim_Interp *,const char *) | | Jim_EvalGlobal | 1 | +| taint.cpp:782:7:782:11 | fopen | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | +| taint.cpp:782:7:782:11 | fopen | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | +| taint.cpp:782:7:782:11 | fopen | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 1 | +| taint.cpp:782:7:782:11 | fopen | (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 1 | +| taint.cpp:782:7:782:11 | fopen | (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 1 | +| taint.cpp:782:7:782:11 | fopen | (SSL *,const char *) | | SSL_add1_host | 1 | +| taint.cpp:782:7:782:11 | fopen | (SSL *,const char *) | | SSL_set1_host | 1 | +| taint.cpp:782:7:782:11 | fopen | (SSL *,const char *) | | SSL_set_cipher_list | 1 | +| taint.cpp:782:7:782:11 | fopen | (SSL *,const char *) | | SSL_use_psk_identity_hint | 1 | +| taint.cpp:782:7:782:11 | fopen | (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 1 | +| taint.cpp:782:7:782:11 | fopen | (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 1 | +| taint.cpp:782:7:782:11 | fopen | (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 1 | +| taint.cpp:782:7:782:11 | fopen | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | +| taint.cpp:782:7:782:11 | fopen | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | +| taint.cpp:782:7:782:11 | fopen | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | +| taint.cpp:782:7:782:11 | fopen | (STANZA *,const char *) | | test_start_file | 1 | +| taint.cpp:782:7:782:11 | fopen | (UI *,const char *) | | UI_add_error_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (UI *,const char *) | | UI_add_info_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (UI *,const char *) | | UI_dup_error_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (UI *,const char *) | | UI_dup_info_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (X509 *,const char *) | | x509_ctrl_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | +| taint.cpp:782:7:782:11 | fopen | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | +| taint.cpp:782:7:782:11 | fopen | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:782:7:782:11 | fopen | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | Configcmp | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | Configcmp | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | DES_crypt | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | DES_crypt | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | OPENSSL_strcasecmp | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | get_passwd | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | get_passwd | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | openssl_fopen | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | openssl_fopen | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | ossl_pem_check_suffix | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | ossl_pem_check_suffix | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | ossl_v3_name_cmp | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | ossl_v3_name_cmp | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | sqlite3_strglob | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | sqlite3_strglob | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | sqlite3_stricmp | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | test_mk_file_path | 0 | +| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | test_mk_file_path | 1 | +| taint.cpp:782:7:782:11 | fopen | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:782:7:782:11 | fopen | (lemon *,const char *) | | file_makename | 1 | +| taint.cpp:782:7:782:11 | fopen | (size_t *,const char *) | | next_protos_parse | 1 | +| taint.cpp:782:7:782:11 | fopen | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | +| taint.cpp:782:7:782:11 | fopen | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | +| taint.cpp:782:7:782:11 | fopen | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | +| taint.cpp:782:7:782:11 | fopen | (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 1 | +| taint.cpp:782:7:782:11 | fopen | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | +| taint.cpp:782:7:782:11 | fopen | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | +| taint.cpp:782:7:782:11 | fopen | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:782:7:782:11 | fopen | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | +| taint.cpp:782:7:782:11 | fopen | (unsigned long *,const char *) | | set_cert_ex | 1 | +| taint.cpp:782:7:782:11 | fopen | (unsigned long *,const char *) | | set_name_ex | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (CTLOG **,const char *,const char *) | | CTLOG_new_from_base64 | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (CTLOG **,const char *,const char *) | | CTLOG_new_from_base64 | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (ENGINE *,const char *,const char *) | | make_engine_uri | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (ENGINE *,const char *,const char *) | | make_engine_uri | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (EVP_PKEY_CTX *,const char *,const char *) | | EVP_PKEY_CTX_ctrl_str | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (EVP_PKEY_CTX *,const char *,const char *) | | EVP_PKEY_CTX_ctrl_str | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (FFC_PARAMS *,const char *,const char *) | | ossl_ffc_set_digest | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (FFC_PARAMS *,const char *,const char *) | | ossl_ffc_set_digest | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (Jim_Interp *,Jim_Obj *,const char *) | | Jim_CompareStringImmediate | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (Jim_Interp *,const char *,const char *) | | Jim_SetVariableStrWithStr | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (Jim_Interp *,const char *,const char *) | | Jim_SetVariableStrWithStr | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_CMP_MSG *,OSSL_LIB_CTX *,const char *) | | ossl_cmp_msg_set0_libctx | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_DECODER *,void *,const char *) | | ossl_decoder_instance_new_forprov | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,EVP_PKEY *,const char *) | | EVP_PKEY_CTX_new_from_pkey | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,SSL_CTX *,const char *) | | ssl_ctx_add_large_cert_chain | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,const char *,const char *) | | EVP_PKEY_CTX_new_from_name | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,const char *,const char *) | | EVP_PKEY_CTX_new_from_name | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,const char *,const char *) | | ossl_slh_dsa_key_new | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,const char *,const char *) | | ossl_slh_dsa_key_new | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_NAMEMAP *,int,const char *) | | ossl_namemap_add_name | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_SELF_TEST *,const char *,const char *) | | OSSL_SELF_TEST_onbegin | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (OSSL_SELF_TEST *,const char *,const char *) | | OSSL_SELF_TEST_onbegin | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (PROV_CTX *,const char *,const char *) | | ossl_prov_ctx_get_param | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (PROV_CTX *,const char *,const char *) | | ossl_prov_ctx_get_param | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (SRP_user_pwd *,const char *,const char *) | | SRP_user_pwd_set1_ids | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (SRP_user_pwd *,const char *,const char *) | | SRP_user_pwd_set1_ids | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (SSL_CONF_CTX *,const char *,const char *) | | SSL_CONF_cmd | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (SSL_CONF_CTX *,const char *,const char *) | | SSL_CONF_cmd | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (UI *,UI_STRING *,const char *) | | UI_set_result | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (UI *,const char *,const char *) | | UI_construct_prompt | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (UI *,const char *,const char *) | | UI_construct_prompt | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (X509 *,OSSL_LIB_CTX *,const char *) | | ossl_x509_set0_libctx | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (X509V3_EXT_METHOD *,X509V3_CTX *,const char *) | | s2i_ASN1_IA5STRING | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (X509V3_EXT_METHOD *,X509V3_CTX *,const char *) | | s2i_ASN1_UTF8STRING | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (X509_CRL *,OSSL_LIB_CTX *,const char *) | | ossl_x509_crl_set0_libctx | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (X509_REQ *,OSSL_LIB_CTX *,const char *) | | ossl_x509_req_set0_libctx | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_new_ex | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | CMS_AuthEnvelopedData_create_ex | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_create_ex | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ossl_cms_DigestedData_create | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const OSSL_PARAM[],OSSL_LIB_CTX *,const char *) | | EC_GROUP_new_from_params | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const OSSL_PROPERTY_LIST *,OSSL_LIB_CTX *,const char *) | | ossl_property_find_property | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | EVP_PKCS82PKEY_ex | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_ec_key_from_pkcs8 | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_from_pkcs8 | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_rsa_key_from_pkcs8 | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_get1_cert_ex | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_get1_crl_ex | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const QUIC_TSERVER_ARGS *,const char *,const char *) | | ossl_quic_tserver_new | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (const QUIC_TSERVER_ARGS *,const char *,const char *) | | ossl_quic_tserver_new | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | ossl_ec_key_param_from_x509_algor | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const char *,OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_read | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (const char *,sqlite3_filename,const char *) | | sqlite3_uri_parameter | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (int,OSSL_LIB_CTX *,const char *) | | PKCS12_init_ex | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (int,int,const char *) | | OSSL_CMP_STATUSINFO_new | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (lemon *,const char *,const char *) | | file_open | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (lemon *,const char *,const char *) | | file_open | 2 | +| taint.cpp:783:5:783:11 | fopen_s | (sqlite3 *,const char *,const char *) | | sqlite3_recover_init | 1 | +| taint.cpp:783:5:783:11 | fopen_s | (sqlite3 *,const char *,const char *) | | sqlite3_recover_init | 2 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | SRP_VBASE_new | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | defossilize | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | make_uppercase | 0 | +| taint.cpp:785:6:785:15 | fopen_test | (char *) | | next_item | 0 | | taint.cpp:785:6:785:15 | fopen_test | (char *) | CStringT | CStringT | 0 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (ASN1_STRING *,unsigned int) | | ossl_asn1_string_set_bits_left | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (EC_KEY *,unsigned int) | | EC_KEY_set_enc_flags | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (EVP_ENCODE_CTX *,unsigned int) | | evp_encode_ctx_set_flags | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (FFC_PARAMS *,unsigned int) | | ossl_ffc_params_set_flags | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (OSSL_PARAM *,unsigned int) | | OSSL_PARAM_set_uint | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (QUIC_DEMUX *,unsigned int) | | ossl_quic_demux_set_mtu | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (QUIC_OBJ *,unsigned int) | | ossl_quic_obj_set_blocking_mode | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (RAND_POOL *,unsigned int) | | ossl_rand_pool_bytes_needed | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (SSL *,unsigned int) | | SSL_set_hostflags | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (SSL_CONF_CTX *,unsigned int) | | SSL_CONF_CTX_clear_flags | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (SSL_CONF_CTX *,unsigned int) | | SSL_CONF_CTX_set_flags | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (TS_RESP_CTX *,unsigned int) | | TS_RESP_CTX_set_clock_precision_digits | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (WPACKET *,unsigned int) | | WPACKET_set_flags | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (X509_STORE_CTX *,unsigned int) | | X509_STORE_CTX_set_current_reasons | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (X509_VERIFY_PARAM *,unsigned int) | | X509_VERIFY_PARAM_set_hostflags | 1 | +| taint.cpp:801:6:801:26 | SysAllocStringByteLen | (char *,unsigned int) | | utf8_fromunicode | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (ASN1_STRING *,unsigned int) | | ossl_asn1_string_set_bits_left | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (EC_KEY *,unsigned int) | | EC_KEY_set_enc_flags | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (EVP_ENCODE_CTX *,unsigned int) | | evp_encode_ctx_set_flags | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (FFC_PARAMS *,unsigned int) | | ossl_ffc_params_set_flags | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (OSSL_PARAM *,unsigned int) | | OSSL_PARAM_set_uint | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (QUIC_DEMUX *,unsigned int) | | ossl_quic_demux_set_mtu | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (QUIC_OBJ *,unsigned int) | | ossl_quic_obj_set_blocking_mode | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (RAND_POOL *,unsigned int) | | ossl_rand_pool_bytes_needed | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (SSL *,unsigned int) | | SSL_set_hostflags | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (SSL_CONF_CTX *,unsigned int) | | SSL_CONF_CTX_clear_flags | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (SSL_CONF_CTX *,unsigned int) | | SSL_CONF_CTX_set_flags | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (TS_RESP_CTX *,unsigned int) | | TS_RESP_CTX_set_clock_precision_digits | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (WPACKET *,unsigned int) | | WPACKET_set_flags | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (X509_STORE_CTX *,unsigned int) | | X509_STORE_CTX_set_current_reasons | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (X509_VERIFY_PARAM *,unsigned int) | | X509_VERIFY_PARAM_set_hostflags | 1 | +| taint.cpp:802:6:802:22 | SysAllocStringLen | (char *,unsigned int) | | utf8_fromunicode | 1 | +| taint.cpp:815:7:815:12 | strchr | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| taint.cpp:815:7:815:12 | strchr | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIGNUM *,int) | | BN_clear_bit | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIGNUM *,int) | | BN_mask_bits | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIGNUM *,int) | | BN_set_bit | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIGNUM *,int) | | BN_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIGNUM *,int) | | bn_expand2 | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIGNUM *,int) | | bn_wexpand | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIO *,int) | | BIO_clear_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIO *,int) | | BIO_find_type | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIO *,int) | | BIO_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIO *,int) | | BIO_set_init | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIO *,int) | | BIO_set_retry_reason | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIO *,int) | | BIO_set_shutdown | 1 | +| taint.cpp:815:7:815:12 | strchr | (BIO *,int) | | TXT_DB_read | 1 | +| taint.cpp:815:7:815:12 | strchr | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (DH *,int) | | DH_clear_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (DH *,int) | | DH_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (DSA *,int) | | DSA_clear_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (DSA *,int) | | DSA_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| taint.cpp:815:7:815:12 | strchr | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| taint.cpp:815:7:815:12 | strchr | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| taint.cpp:815:7:815:12 | strchr | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| taint.cpp:815:7:815:12 | strchr | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| taint.cpp:815:7:815:12 | strchr | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| taint.cpp:815:7:815:12 | strchr | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| taint.cpp:815:7:815:12 | strchr | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| taint.cpp:815:7:815:12 | strchr | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | taint.cpp:815:7:815:12 | strchr | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| taint.cpp:815:7:815:12 | strchr | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| taint.cpp:815:7:815:12 | strchr | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| taint.cpp:815:7:815:12 | strchr | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| taint.cpp:815:7:815:12 | strchr | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| taint.cpp:815:7:815:12 | strchr | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| taint.cpp:815:7:815:12 | strchr | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| taint.cpp:815:7:815:12 | strchr | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| taint.cpp:815:7:815:12 | strchr | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| taint.cpp:815:7:815:12 | strchr | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| taint.cpp:815:7:815:12 | strchr | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| taint.cpp:815:7:815:12 | strchr | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| taint.cpp:815:7:815:12 | strchr | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| taint.cpp:815:7:815:12 | strchr | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| taint.cpp:815:7:815:12 | strchr | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| taint.cpp:815:7:815:12 | strchr | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| taint.cpp:815:7:815:12 | strchr | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| taint.cpp:815:7:815:12 | strchr | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| taint.cpp:815:7:815:12 | strchr | (RSA *,int) | | RSA_clear_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (RSA *,int) | | RSA_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| taint.cpp:815:7:815:12 | strchr | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| taint.cpp:815:7:815:12 | strchr | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| taint.cpp:815:7:815:12 | strchr | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL *,int) | | SSL_key_update | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL *,int) | | SSL_set_purpose | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL *,int) | | SSL_set_read_ahead | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL *,int) | | SSL_set_security_level | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL *,int) | | SSL_set_shutdown | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL *,int) | | SSL_set_trust | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL *,int) | | SSL_set_verify_depth | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_CTX *,int) | | ssl_md | 1 | +| taint.cpp:815:7:815:12 | strchr | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| taint.cpp:815:7:815:12 | strchr | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| taint.cpp:815:7:815:12 | strchr | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509 *,int) | | X509_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509 *,int) | | X509_self_signed | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| taint.cpp:815:7:815:12 | strchr | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| taint.cpp:815:7:815:12 | strchr | (acttab *,int) | | acttab_insert | 1 | +| taint.cpp:815:7:815:12 | strchr | (char *,int) | | PEM_proc_type | 1 | | taint.cpp:815:7:815:12 | strchr | (char,int) | CStringT | CStringT | 1 | +| taint.cpp:815:7:815:12 | strchr | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| taint.cpp:815:7:815:12 | strchr | (const BIGNUM *,int) | | BN_get_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| taint.cpp:815:7:815:12 | strchr | (const BIO *,int) | | BIO_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const BIO *,int) | | BIO_test_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const DH *,int) | | DH_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const DH *,int) | | DH_test_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (const DH *,int) | | ossl_dh_dup | 1 | +| taint.cpp:815:7:815:12 | strchr | (const DSA *,int) | | DSA_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const DSA *,int) | | DSA_test_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (const DSA *,int) | | ossl_dsa_dup | 1 | +| taint.cpp:815:7:815:12 | strchr | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| taint.cpp:815:7:815:12 | strchr | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| taint.cpp:815:7:815:12 | strchr | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| taint.cpp:815:7:815:12 | strchr | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| taint.cpp:815:7:815:12 | strchr | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| taint.cpp:815:7:815:12 | strchr | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| taint.cpp:815:7:815:12 | strchr | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| taint.cpp:815:7:815:12 | strchr | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| taint.cpp:815:7:815:12 | strchr | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| taint.cpp:815:7:815:12 | strchr | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| taint.cpp:815:7:815:12 | strchr | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| taint.cpp:815:7:815:12 | strchr | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| taint.cpp:815:7:815:12 | strchr | (const RSA *,int) | | RSA_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const RSA *,int) | | RSA_test_flags | 1 | +| taint.cpp:815:7:815:12 | strchr | (const RSA *,int) | | ossl_rsa_dup | 1 | +| taint.cpp:815:7:815:12 | strchr | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| taint.cpp:815:7:815:12 | strchr | (const SSL *,int) | | SSL_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| taint.cpp:815:7:815:12 | strchr | (const UI *,int) | | UI_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509 *,int) | | X509_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509 *,int) | | X509_get_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| taint.cpp:815:7:815:12 | strchr | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | taint.cpp:815:7:815:12 | strchr | (const XCHAR *,int) | CStringT | CStringT | 1 | | taint.cpp:815:7:815:12 | strchr | (const YCHAR *,int) | CStringT | CStringT | 1 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | DH_meth_new | 0 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | DH_meth_new | 1 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | DSA_meth_new | 0 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | DSA_meth_new | 1 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | Jim_StrDupLen | 0 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | Jim_StrDupLen | 1 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 0 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | RSA_meth_new | 0 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | RSA_meth_new | 1 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | parse_yesno | 0 | +| taint.cpp:815:7:815:12 | strchr | (const char *,int) | | parse_yesno | 1 | +| taint.cpp:815:7:815:12 | strchr | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| taint.cpp:815:7:815:12 | strchr | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| taint.cpp:815:7:815:12 | strchr | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| taint.cpp:815:7:815:12 | strchr | (int *,int) | | X509_PURPOSE_set | 1 | +| taint.cpp:815:7:815:12 | strchr | (int *,int) | | X509_TRUST_set | 1 | +| taint.cpp:815:7:815:12 | strchr | (int,int) | | BN_security_bits | 1 | +| taint.cpp:815:7:815:12 | strchr | (int,int) | | EVP_MD_meth_new | 1 | +| taint.cpp:815:7:815:12 | strchr | (int,int) | | EVP_PKEY_meth_new | 1 | +| taint.cpp:815:7:815:12 | strchr | (int,int) | | acttab_alloc | 1 | +| taint.cpp:815:7:815:12 | strchr | (rule *,int) | | Configlist_add | 1 | +| taint.cpp:815:7:815:12 | strchr | (rule *,int) | | Configlist_addbasis | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| taint.cpp:815:7:815:12 | strchr | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| taint.cpp:815:7:815:12 | strchr | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| taint.cpp:815:7:815:12 | strchr | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| taint.cpp:815:7:815:12 | strchr | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| taint.cpp:815:7:815:12 | strchr | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| taint.cpp:815:7:815:12 | strchr | (uint16_t,int) | | tls1_group_id2nid | 1 | +| taint.cpp:815:7:815:12 | strchr | (unsigned char *,int) | | RAND_bytes | 1 | +| taint.cpp:815:7:815:12 | strchr | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| taint.cpp:815:7:815:12 | strchr | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| taint.cpp:815:7:815:12 | strchr | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| taint.cpp:815:7:815:12 | strchr | (void *,int) | | DSO_dsobyaddr | 1 | +| taint.cpp:815:7:815:12 | strchr | (void *,int) | | sqlite3_realloc | 1 | | taint.cpp:815:7:815:12 | strchr | (wchar_t,int) | CStringT | CStringT | 1 | +| taint.cpp:817:6:817:27 | write_to_const_ptr_ptr | (const OSSL_PARAM *,const char **) | | OSSL_PARAM_get_utf8_ptr | 1 | +| taint.cpp:817:6:817:27 | write_to_const_ptr_ptr | (const OSSL_PARAM *,const char **) | | OSSL_PARAM_get_utf8_string_ptr | 1 | +| taint.cpp:817:6:817:27 | write_to_const_ptr_ptr | (const X509_NAME *,const char **) | | OCSP_url_svcloc_new | 1 | +| taint.cpp:817:6:817:27 | write_to_const_ptr_ptr | (sqlite3_intck *,const char **) | | sqlite3_intck_error | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (BIGNUM **,const char *) | | BN_asc2bn | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (BIGNUM **,const char *) | | BN_dec2bn | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (BIGNUM **,const char *) | | BN_hex2bn | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (CONF *,const char *) | | TS_CONF_get_tsa_section | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (CONF *,const char *) | | _CONF_new_section | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (DH_METHOD *,const char *) | | DH_meth_set1_name | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (DSO *,const char *) | | DSO_convert_filename | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (DSO *,const char *) | | DSO_set_filename | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (ENGINE *,const char *) | | ENGINE_set_id | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (ENGINE *,const char *) | | ENGINE_set_name | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (EVP_PKEY *,const char *) | | CTLOG_new | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (EVP_PKEY_CTX *,const char *) | | app_paramgen | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (Jim_Interp *,const char *) | | Jim_Eval | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (Jim_Interp *,const char *) | | Jim_EvalFile | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (Jim_Interp *,const char *) | | Jim_EvalGlobal | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (SSL *,const char *) | | SSL_add1_host | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (SSL *,const char *) | | SSL_set1_host | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (SSL *,const char *) | | SSL_set_cipher_list | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (SSL *,const char *) | | SSL_use_psk_identity_hint | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (STANZA *,const char *) | | test_start_file | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (UI *,const char *) | | UI_add_error_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (UI *,const char *) | | UI_add_info_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (UI *,const char *) | | UI_dup_error_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (UI *,const char *) | | UI_dup_info_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (X509 *,const char *) | | x509_ctrl_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | Configcmp | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | Configcmp | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | DES_crypt | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | DES_crypt | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | OPENSSL_strcasecmp | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | OPENSSL_strcasecmp | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | get_passwd | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | get_passwd | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | openssl_fopen | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | openssl_fopen | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | ossl_pem_check_suffix | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | ossl_pem_check_suffix | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | ossl_v3_name_cmp | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | ossl_v3_name_cmp | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | sqlite3_strglob | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | sqlite3_strglob | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | sqlite3_stricmp | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | sqlite3_stricmp | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | test_mk_file_path | 0 | +| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | test_mk_file_path | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (int,const char *) | | BIO_meth_new | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (lemon *,const char *) | | file_makename | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (size_t *,const char *) | | next_protos_parse | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (unsigned long *,const char *) | | set_cert_ex | 1 | +| taint.cpp:822:6:822:19 | take_const_ptr | (unsigned long *,const char *) | | set_name_ex | 1 | +| vector.cpp:13:6:13:9 | sink | (int) | | ASN1_STRING_type_new | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | ASN1_tag2bit | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | ASN1_tag2str | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | EVP_PKEY_asn1_get0 | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | Jim_ReturnCode | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | Jim_SignalId | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | OBJ_nid2ln | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | OBJ_nid2obj | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | OBJ_nid2sn | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | OSSL_STORE_INFO_type_string | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | OSSL_trace_get_category_name | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | PKCS12_init | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | Symbol_Nth | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | X509_PURPOSE_get0 | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | X509_PURPOSE_get_by_id | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | X509_TRUST_get0 | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | X509_TRUST_get_by_id | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | evp_pkey_type2name | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | ossl_tolower | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | ossl_toupper | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | pulldown_test_framework | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | sqlite3_compileoption_get | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | sqlite3_errstr | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | tls1_alert_code | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | tls13_alert_code | 0 | +| vector.cpp:13:6:13:9 | sink | (int) | | wait_until_sock_readable | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ASN1_STRING_type_new | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ASN1_tag2bit | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ASN1_tag2str | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | EVP_PKEY_asn1_get0 | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | Jim_ReturnCode | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | Jim_SignalId | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | OBJ_nid2ln | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | OBJ_nid2obj | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | OBJ_nid2sn | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | OSSL_STORE_INFO_type_string | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | OSSL_trace_get_category_name | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | PKCS12_init | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | Symbol_Nth | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | X509_PURPOSE_get0 | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | X509_PURPOSE_get_by_id | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | X509_TRUST_get0 | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | X509_TRUST_get_by_id | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | evp_pkey_type2name | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ossl_cmp_bodytype_to_string | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ossl_tolower | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ossl_toupper | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | pulldown_test_framework | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | sqlite3_compileoption_get | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | sqlite3_errstr | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | tls1_alert_code | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | tls13_alert_code | 0 | +| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | wait_until_sock_readable | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | ASN1_STRING_type_new | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | ASN1_tag2bit | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | ASN1_tag2str | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | EVP_PKEY_asn1_get0 | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | Jim_ReturnCode | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | Jim_SignalId | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | OBJ_nid2ln | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | OBJ_nid2obj | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | OBJ_nid2sn | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | OSSL_STORE_INFO_type_string | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | OSSL_trace_get_category_name | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | PKCS12_init | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | Symbol_Nth | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | X509_PURPOSE_get0 | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | X509_PURPOSE_get_by_id | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | X509_TRUST_get0 | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | X509_TRUST_get_by_id | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | evp_pkey_type2name | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | ossl_cmp_bodytype_to_string | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | ossl_tolower | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | ossl_toupper | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | pulldown_test_framework | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | sqlite3_compileoption_get | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | sqlite3_errstr | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | tls1_alert_code | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | tls13_alert_code | 0 | +| vector.cpp:37:6:37:23 | test_element_taint | (int) | | wait_until_sock_readable | 0 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIGNUM *,int) | | BN_clear_bit | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIGNUM *,int) | | BN_mask_bits | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIGNUM *,int) | | BN_set_bit | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIGNUM *,int) | | BN_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIGNUM *,int) | | bn_expand2 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIGNUM *,int) | | bn_wexpand | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIO *,int) | | BIO_clear_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIO *,int) | | BIO_find_type | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIO *,int) | | BIO_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIO *,int) | | BIO_set_init | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIO *,int) | | BIO_set_retry_reason | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIO *,int) | | BIO_set_shutdown | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIO *,int) | | TXT_DB_read | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (DH *,int) | | DH_clear_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (DH *,int) | | DH_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (DH_METHOD *,int) | | DH_meth_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (DSA *,int) | | DSA_clear_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (DSA *,int) | | DSA_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EC_KEY *,int) | | EC_KEY_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (ENGINE *,int) | | ENGINE_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (LPCOLESTR,int) | CComBSTR | Append | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (PKCS7 *,int) | | PKCS7_set_type | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (RSA *,int) | | RSA_clear_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (RSA *,int) | | RSA_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL *,int) | | SSL_key_update | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL *,int) | | SSL_set_post_handshake_auth | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL *,int) | | SSL_set_purpose | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL *,int) | | SSL_set_quiet_shutdown | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL *,int) | | SSL_set_read_ahead | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL *,int) | | SSL_set_security_level | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL *,int) | | SSL_set_shutdown | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL *,int) | | SSL_set_trust | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL *,int) | | SSL_set_verify_depth | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_CTX *,int) | | ssl_md | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (TS_REQ *,int) | | TS_REQ_get_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509 *,int) | | X509_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509 *,int) | | X509_self_signed | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_STORE *,int) | | X509_STORE_set_depth | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_STORE *,int) | | X509_STORE_set_trust | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (acttab *,int) | | acttab_insert | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (char *,int) | | PEM_proc_type | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (char,int) | CStringT | CStringT | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const BIGNUM *,int) | | BN_get_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const BIGNUM *,int) | | BN_is_bit_set | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const BIO *,int) | | BIO_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const BIO *,int) | | BIO_test_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const DH *,int) | | DH_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const DH *,int) | | DH_test_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const DH *,int) | | ossl_dh_dup | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const DSA *,int) | | DSA_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const DSA *,int) | | DSA_test_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const DSA *,int) | | ossl_dsa_dup | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const RSA *,int) | | RSA_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const RSA *,int) | | RSA_test_flags | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const RSA *,int) | | ossl_rsa_dup | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const SSL *,int) | | SSL_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const SSL_SESSION *,int) | | ssl_session_dup | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const UI *,int) | | UI_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509 *,int) | | X509_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509 *,int) | | X509_get_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const XCHAR *,int) | CStringT | CStringT | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const YCHAR *,int) | CStringT | CStringT | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | DH_meth_new | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | DSA_meth_new | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | Jim_StrDupLen | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | RSA_meth_new | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const char *,int) | | parse_yesno | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const unsigned char *,int) | | Jim_GenHashFunction | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int *,int) | | X509_PURPOSE_set | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int *,int) | | X509_TRUST_set | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | BN_security_bits | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | EVP_MD_meth_new | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | EVP_PKEY_meth_new | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (int,int) | | acttab_alloc | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (rule *,int) | | Configlist_add | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (rule *,int) | | Configlist_addbasis | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3 *,int) | | sqlite3_db_name | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (uint16_t,int) | | tls1_group_id2nid | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (unsigned char *,int) | | RAND_bytes | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (unsigned char *,int) | | RAND_priv_bytes | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (unsigned short,int) | | dtls1_get_queue_priority | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (void *,int) | | DSO_dsobyaddr | 1 | +| vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (void *,int) | | sqlite3_realloc | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (wchar_t,int) | CStringT | CStringT | 1 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ASN1_STRING_type_new | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ASN1_tag2bit | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ASN1_tag2str | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | EVP_PKEY_asn1_get0 | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | Jim_ReturnCode | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | Jim_SignalId | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | OBJ_nid2ln | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | OBJ_nid2obj | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | OBJ_nid2sn | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | OSSL_STORE_INFO_type_string | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | OSSL_trace_get_category_name | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | PKCS12_init | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | Symbol_Nth | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | X509_PURPOSE_get0 | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | X509_PURPOSE_get_by_id | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | X509_TRUST_get0 | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | X509_TRUST_get_by_id | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | X509_VERIFY_PARAM_get0 | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | evp_pkey_type2name | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ossl_cmp_bodytype_to_string | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ossl_tolower | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ossl_toupper | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | pulldown_test_framework | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | sqlite3_compileoption_get | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | sqlite3_errstr | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | tls1_alert_code | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | tls13_alert_code | 0 | +| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | wait_until_sock_readable | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | SRP_VBASE_new | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | defossilize | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | make_uppercase | 0 | +| vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | next_item | 0 | | vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | CStringT | CStringT | 0 | +| vector.cpp:454:7:454:12 | memcpy | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | +| vector.cpp:454:7:454:12 | memcpy | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | +| vector.cpp:454:7:454:12 | memcpy | (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 2 | +| vector.cpp:454:7:454:12 | memcpy | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | +| vector.cpp:454:7:454:12 | memcpy | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | +| vector.cpp:454:7:454:12 | memcpy | (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_personal | 2 | +| vector.cpp:454:7:454:12 | memcpy | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_salt | 2 | +| vector.cpp:454:7:454:12 | memcpy | (BLAKE2S_CTX *,const void *,size_t) | | ossl_blake2s_update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (BLAKE2S_CTX *,const void *,size_t) | | ossl_blake2s_update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_personal | 2 | +| vector.cpp:454:7:454:12 | memcpy | (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_salt | 2 | +| vector.cpp:454:7:454:12 | memcpy | (CCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ccm128_aad | 2 | +| vector.cpp:454:7:454:12 | memcpy | (CCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ccm128_tag | 2 | +| vector.cpp:454:7:454:12 | memcpy | (CMAC_CTX *,const void *,size_t) | | CMAC_Update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (CMAC_CTX *,const void *,size_t) | | CMAC_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (CMS_RecipientInfo *,const unsigned char *,size_t) | | CMS_RecipientInfo_kekri_id_cmp | 2 | +| vector.cpp:454:7:454:12 | memcpy | (DH *,const unsigned char *,size_t) | | ossl_dh_buf2key | 2 | +| vector.cpp:454:7:454:12 | memcpy | (EC_GROUP *,const unsigned char *,size_t) | | EC_GROUP_set_seed | 2 | +| vector.cpp:454:7:454:12 | memcpy | (EC_KEY *,const unsigned char *,size_t) | | ossl_ec_key_simple_oct2priv | 2 | +| vector.cpp:454:7:454:12 | memcpy | (EVP_MD_CTX *,const unsigned char *,size_t) | | EVP_DigestVerifyFinal | 2 | +| vector.cpp:454:7:454:12 | memcpy | (EVP_PKEY *,char *,size_t) | | EVP_PKEY_get_default_digest_name | 2 | +| vector.cpp:454:7:454:12 | memcpy | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 2 | +| vector.cpp:454:7:454:12 | memcpy | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| vector.cpp:454:7:454:12 | memcpy | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 2 | +| vector.cpp:454:7:454:12 | memcpy | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 2 | +| vector.cpp:454:7:454:12 | memcpy | (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 2 | +| vector.cpp:454:7:454:12 | memcpy | (KECCAK1600_CTX *,const void *,size_t) | | ossl_sha3_update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (KECCAK1600_CTX *,const void *,size_t) | | ossl_sha3_update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (KECCAK1600_CTX *,unsigned char *,size_t) | | ossl_sha3_squeeze | 2 | +| vector.cpp:454:7:454:12 | memcpy | (KECCAK1600_CTX *,unsigned char,size_t) | | ossl_sha3_init | 2 | +| vector.cpp:454:7:454:12 | memcpy | (MD4_CTX *,const void *,size_t) | | MD4_Update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (MD4_CTX *,const void *,size_t) | | MD4_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (MD4_CTX *,const void *,size_t) | | md4_block_data_order | 1 | +| vector.cpp:454:7:454:12 | memcpy | (MD4_CTX *,const void *,size_t) | | md4_block_data_order | 2 | +| vector.cpp:454:7:454:12 | memcpy | (MD5_CTX *,const void *,size_t) | | MD5_Update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (MD5_CTX *,const void *,size_t) | | MD5_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (MD5_SHA1_CTX *,const void *,size_t) | | ossl_md5_sha1_update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (MD5_SHA1_CTX *,const void *,size_t) | | ossl_md5_sha1_update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (MDC2_CTX *,const unsigned char *,size_t) | | MDC2_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_pk_decode | 2 | +| vector.cpp:454:7:454:12 | memcpy | (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_sk_decode | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OCB128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ocb128_aad | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OCB128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ocb128_tag | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_HPKE_CTX *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_ikme | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_JSON_ENC *,const char *,size_t) | | ossl_json_str_len | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_JSON_ENC *,const void *,size_t) | | ossl_json_str_hex | 1 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_JSON_ENC *,const void *,size_t) | | ossl_json_str_hex | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_entropy | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_user_entropy | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_ptr | 1 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_ptr | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string | 1 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string_or_ptr | 1 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string_or_ptr | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_PARAM *,void *,size_t) | | ossl_param_set_secure_block | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_default | 2 | +| vector.cpp:454:7:454:12 | memcpy | (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_multiblock | 2 | +| vector.cpp:454:7:454:12 | memcpy | (POLY1305 *,const unsigned char *,size_t) | | Poly1305_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 2 | +| vector.cpp:454:7:454:12 | memcpy | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 2 | +| vector.cpp:454:7:454:12 | memcpy | (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 2 | +| vector.cpp:454:7:454:12 | memcpy | (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 2 | +| vector.cpp:454:7:454:12 | memcpy | (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 2 | +| vector.cpp:454:7:454:12 | memcpy | (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 2 | +| vector.cpp:454:7:454:12 | memcpy | (RAND_POOL *,const unsigned char *,size_t) | | ossl_rand_pool_adin_mix_in | 2 | +| vector.cpp:454:7:454:12 | memcpy | (RAND_POOL *,size_t,size_t) | | ossl_rand_pool_add_end | 2 | +| vector.cpp:454:7:454:12 | memcpy | (RIPEMD160_CTX *,const void *,size_t) | | RIPEMD160_Update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (RIPEMD160_CTX *,const void *,size_t) | | RIPEMD160_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (RIPEMD160_CTX *,const void *,size_t) | | ripemd160_block_data_order | 1 | +| vector.cpp:454:7:454:12 | memcpy | (RIPEMD160_CTX *,const void *,size_t) | | ripemd160_block_data_order | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SCT **,const unsigned char **,size_t) | | o2i_SCT | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SCT *,const unsigned char **,size_t) | | o2i_SCT_signature | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SCT *,const unsigned char *,size_t) | | SCT_set1_extensions | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SCT *,const unsigned char *,size_t) | | SCT_set1_log_id | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SCT *,const unsigned char *,size_t) | | SCT_set1_signature | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SCT *,unsigned char *,size_t) | | SCT_set0_extensions | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SCT *,unsigned char *,size_t) | | SCT_set0_log_id | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SCT *,unsigned char *,size_t) | | SCT_set0_signature | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SHA256_CTX *,const void *,size_t) | | SHA224_Update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (SHA256_CTX *,const void *,size_t) | | SHA224_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SHA256_CTX *,const void *,size_t) | | SHA256_Update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (SHA256_CTX *,const void *,size_t) | | SHA256_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SHA512_CTX *,const void *,size_t) | | SHA384_Update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (SHA512_CTX *,const void *,size_t) | | SHA384_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SHA512_CTX *,const void *,size_t) | | SHA512_Update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (SHA512_CTX *,const void *,size_t) | | SHA512_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SHA_CTX *,const void *,size_t) | | SHA1_Update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (SHA_CTX *,const void *,size_t) | | SHA1_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SIPHASH *,const unsigned char *,size_t) | | SipHash_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SIPHASH *,unsigned char *,size_t) | | SipHash_Final | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SIV128_CONTEXT *,const unsigned char *,size_t) | | ossl_siv128_set_tag | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SIV128_CONTEXT *,unsigned char *,size_t) | | ossl_siv128_get_tag | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_priv | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_pub | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SM3_CTX *,const void *,size_t) | | ossl_sm3_block_data_order | 1 | +| vector.cpp:454:7:454:12 | memcpy | (SM3_CTX *,const void *,size_t) | | ossl_sm3_block_data_order | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SM3_CTX *,const void *,size_t) | | ossl_sm3_update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (SM3_CTX *,const void *,size_t) | | ossl_sm3_update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL *,const unsigned char *,size_t) | | SSL_set1_client_cert_type | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL *,const unsigned char *,size_t) | | SSL_set1_server_cert_type | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL *,const unsigned char *,size_t) | | SSL_set_quic_tls_transport_params | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL *,size_t,size_t) | | SSL_set_block_padding_ex | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL_CONNECTION *,TLS_RECORD *,size_t) | | ssl_release_record | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL_CONNECTION *,const unsigned char *,size_t) | | lookup_sess_in_cache | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_client_cert_type | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_server_cert_type | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL_CTX *,size_t,size_t) | | SSL_CTX_set_block_padding_ex | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_alpn_selected | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 2 | +| vector.cpp:454:7:454:12 | memcpy | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 1 | +| vector.cpp:454:7:454:12 | memcpy | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 2 | +| vector.cpp:454:7:454:12 | memcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 1 | +| vector.cpp:454:7:454:12 | memcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 2 | +| vector.cpp:454:7:454:12 | memcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 1 | +| vector.cpp:454:7:454:12 | memcpy | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 2 | +| vector.cpp:454:7:454:12 | memcpy | (WPACKET *,BUF_MEM *,size_t) | | WPACKET_init_len | 2 | +| vector.cpp:454:7:454:12 | memcpy | (WPACKET *,const unsigned char *,size_t) | | ossl_quic_wire_encode_frame_new_token | 2 | +| vector.cpp:454:7:454:12 | memcpy | (WPACKET *,const void *,size_t) | | WPACKET_memcpy | 1 | +| vector.cpp:454:7:454:12 | memcpy | (WPACKET *,const void *,size_t) | | WPACKET_memcpy | 2 | +| vector.cpp:454:7:454:12 | memcpy | (WPACKET *,int,size_t) | | WPACKET_memset | 2 | +| vector.cpp:454:7:454:12 | memcpy | (WPACKET *,uint64_t,size_t) | | WPACKET_put_bytes__ | 2 | +| vector.cpp:454:7:454:12 | memcpy | (WPACKET *,unsigned char *,size_t) | | WPACKET_init_der | 2 | +| vector.cpp:454:7:454:12 | memcpy | (WPACKET *,unsigned char *,size_t) | | dtls_raw_hello_verify_request | 2 | +| vector.cpp:454:7:454:12 | memcpy | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_add1_host | 2 | +| vector.cpp:454:7:454:12 | memcpy | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 2 | +| vector.cpp:454:7:454:12 | memcpy | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 2 | +| vector.cpp:454:7:454:12 | memcpy | (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 2 | +| vector.cpp:454:7:454:12 | memcpy | (char *,const char *,size_t) | | OPENSSL_strlcat | 2 | +| vector.cpp:454:7:454:12 | memcpy | (char *,const char *,size_t) | | OPENSSL_strlcpy | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const EVP_MD *,const unsigned char *,size_t) | | OSSL_STORE_SEARCH_by_key_fingerprint | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const OSSL_CMP_CTX *,char *,size_t) | | OSSL_CMP_CTX_snprint_PKIStatus | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const OSSL_CMP_PKISI *,char *,size_t) | | OSSL_CMP_snprint_PKIStatusInfo | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const OSSL_NAMEMAP *,int,size_t) | | ossl_namemap_num2name | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const OSSL_PARAM *,char **,size_t) | | OSSL_PARAM_get_utf8_string | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const SSL *,unsigned char *,size_t) | | SSL_get_client_random | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const SSL *,unsigned char *,size_t) | | SSL_get_server_random | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const SSL_SESSION *,unsigned char *,size_t) | | SSL_SESSION_get_master_key | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const char *,unsigned char *,size_t) | | OSSL_PARAM_construct_BN | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 2 | +| vector.cpp:454:7:454:12 | memcpy | (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 2 | +| vector.cpp:454:7:454:12 | memcpy | (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 2 | +| vector.cpp:454:7:454:12 | memcpy | (int *,int *,size_t) | | EVP_PBE_get | 2 | +| vector.cpp:454:7:454:12 | memcpy | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | +| vector.cpp:454:7:454:12 | memcpy | (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 2 | +| vector.cpp:454:7:454:12 | memcpy | (unsigned char *,const unsigned char *,size_t) | | BUF_reverse | 2 | +| vector.cpp:454:7:454:12 | memcpy | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | +| vector.cpp:454:7:454:12 | memcpy | (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 2 | +| vector.cpp:454:7:454:12 | memcpy | (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 2 | +| vector.cpp:454:7:454:12 | memcpy | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 2 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *) | | i2b_PVK_bio | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *) | | PEM_do_header | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (EVP_PKEY *,EVP_KEYMGMT *,void *,OSSL_CALLBACK *,void *) | | evp_keymgmt_util_gen | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (EVP_PKEY_CTX *,int,int,int,void *) | | RSA_pkey_ctx_ctrl | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *) | | ossl_quic_tx_packetiser_set_initial_token | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_dec | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_enc | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (const BIGNUM *,int,..(*)(..),BN_CTX *,void *) | | BN_is_prime | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 4 | +| zmq.cpp:14:5:14:21 | zmq_msg_init_data | (sqlite3 *,const char *,const char *,..(*)(..),void *) | | recoverInit | 4 | +| zmq.cpp:17:6:17:13 | test_zmc | (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_personal | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_salt | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (BLAKE2S_CTX *,const void *,size_t) | | ossl_blake2s_update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_personal | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_salt | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (CCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ccm128_aad | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (CCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ccm128_tag | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (CMAC_CTX *,const void *,size_t) | | CMAC_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (CMS_RecipientInfo *,const unsigned char *,size_t) | | CMS_RecipientInfo_kekri_id_cmp | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (DH *,const unsigned char *,size_t) | | ossl_dh_buf2key | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (EC_GROUP *,const unsigned char *,size_t) | | EC_GROUP_set_seed | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (EC_KEY *,const unsigned char *,size_t) | | ossl_ec_key_simple_oct2priv | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (EVP_MD_CTX *,const unsigned char *,size_t) | | EVP_DigestVerifyFinal | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (EVP_PKEY *,char *,size_t) | | EVP_PKEY_get_default_digest_name | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (EVP_PKEY *,char *,size_t) | | EVP_PKEY_get_default_digest_name | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (KECCAK1600_CTX *,const void *,size_t) | | ossl_sha3_update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (KECCAK1600_CTX *,unsigned char *,size_t) | | ossl_sha3_squeeze | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (KECCAK1600_CTX *,unsigned char,size_t) | | ossl_sha3_init | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (MD4_CTX *,const void *,size_t) | | MD4_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (MD4_CTX *,const void *,size_t) | | md4_block_data_order | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (MD5_CTX *,const void *,size_t) | | MD5_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (MD5_SHA1_CTX *,const void *,size_t) | | ossl_md5_sha1_update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (MDC2_CTX *,const unsigned char *,size_t) | | MDC2_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_pk_decode | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_sk_decode | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OCB128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ocb128_aad | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OCB128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ocb128_tag | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_HPKE_CTX *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_ikme | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_JSON_ENC *,const char *,size_t) | | ossl_json_str_len | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_JSON_ENC *,const void *,size_t) | | ossl_json_str_hex | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_entropy | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_user_entropy | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_ptr | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string_or_ptr | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_PARAM *,void *,size_t) | | ossl_param_set_secure_block | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_default | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_multiblock | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (POLY1305 *,const unsigned char *,size_t) | | Poly1305_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (RAND_POOL *,const unsigned char *,size_t) | | ossl_rand_pool_adin_mix_in | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (RAND_POOL *,size_t,size_t) | | ossl_rand_pool_add_end | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (RIPEMD160_CTX *,const void *,size_t) | | RIPEMD160_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (RIPEMD160_CTX *,const void *,size_t) | | ripemd160_block_data_order | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SCT **,const unsigned char **,size_t) | | o2i_SCT | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SCT *,const unsigned char **,size_t) | | o2i_SCT_signature | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SCT *,const unsigned char *,size_t) | | SCT_set1_extensions | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SCT *,const unsigned char *,size_t) | | SCT_set1_log_id | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SCT *,const unsigned char *,size_t) | | SCT_set1_signature | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SCT *,unsigned char *,size_t) | | SCT_set0_extensions | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SCT *,unsigned char *,size_t) | | SCT_set0_log_id | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SCT *,unsigned char *,size_t) | | SCT_set0_signature | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SHA256_CTX *,const void *,size_t) | | SHA224_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SHA256_CTX *,const void *,size_t) | | SHA256_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SHA512_CTX *,const void *,size_t) | | SHA384_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SHA512_CTX *,const void *,size_t) | | SHA512_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SHA_CTX *,const void *,size_t) | | SHA1_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SIPHASH *,const unsigned char *,size_t) | | SipHash_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SIPHASH *,unsigned char *,size_t) | | SipHash_Final | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SIV128_CONTEXT *,const unsigned char *,size_t) | | ossl_siv128_set_tag | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SIV128_CONTEXT *,unsigned char *,size_t) | | ossl_siv128_get_tag | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_priv | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_pub | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SM3_CTX *,const void *,size_t) | | ossl_sm3_block_data_order | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SM3_CTX *,const void *,size_t) | | ossl_sm3_update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL *,const unsigned char *,size_t) | | SSL_set1_client_cert_type | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL *,const unsigned char *,size_t) | | SSL_set1_server_cert_type | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL *,const unsigned char *,size_t) | | SSL_set_quic_tls_transport_params | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL *,size_t,size_t) | | SSL_set_block_padding_ex | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL_CONNECTION *,TLS_RECORD *,size_t) | | ssl_release_record | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL_CONNECTION *,const unsigned char *,size_t) | | lookup_sess_in_cache | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_client_cert_type | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_server_cert_type | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL_CTX *,size_t,size_t) | | SSL_CTX_set_block_padding_ex | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_alpn_selected | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (WPACKET *,BUF_MEM *,size_t) | | WPACKET_init_len | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (WPACKET *,const unsigned char *,size_t) | | ossl_quic_wire_encode_frame_new_token | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (WPACKET *,const void *,size_t) | | WPACKET_memcpy | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (WPACKET *,int,size_t) | | WPACKET_memset | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (WPACKET *,uint64_t,size_t) | | WPACKET_put_bytes__ | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (WPACKET *,unsigned char *,size_t) | | WPACKET_init_der | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (WPACKET *,unsigned char *,size_t) | | dtls_raw_hello_verify_request | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_add1_host | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (char *,const char *,size_t) | | OPENSSL_strlcat | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (char *,const char *,size_t) | | OPENSSL_strlcpy | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const EVP_MD *,const unsigned char *,size_t) | | OSSL_STORE_SEARCH_by_key_fingerprint | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const OSSL_CMP_CTX *,char *,size_t) | | OSSL_CMP_CTX_snprint_PKIStatus | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (const OSSL_CMP_CTX *,char *,size_t) | | OSSL_CMP_CTX_snprint_PKIStatus | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const OSSL_CMP_PKISI *,char *,size_t) | | OSSL_CMP_snprint_PKIStatusInfo | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (const OSSL_CMP_PKISI *,char *,size_t) | | OSSL_CMP_snprint_PKIStatusInfo | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const OSSL_NAMEMAP *,int,size_t) | | ossl_namemap_num2name | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const OSSL_PARAM *,char **,size_t) | | OSSL_PARAM_get_utf8_string | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const SSL *,unsigned char *,size_t) | | SSL_get_client_random | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const SSL *,unsigned char *,size_t) | | SSL_get_server_random | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const SSL_SESSION *,unsigned char *,size_t) | | SSL_SESSION_get_master_key | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 1 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,unsigned char *,size_t) | | OSSL_PARAM_construct_BN | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (int *,int *,size_t) | | EVP_PBE_get | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (unsigned char *,const unsigned char *,size_t) | | BUF_reverse | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 2 | +| zmq.cpp:17:6:17:13 | test_zmc | (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 2 | getSignatureParameterName +| (..(*)(..)) | | ASN1_SCTX_new | 0 | ..(*)(..) | +| (..(*)(..)) | | ossl_pqueue_new | 0 | ..(*)(..) | +| (..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | X509_CRL_METHOD_new | 0 | ..(*)(..) | +| (..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | X509_CRL_METHOD_new | 1 | ..(*)(..) | +| (..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | X509_CRL_METHOD_new | 2 | ..(*)(..) | +| (..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | X509_CRL_METHOD_new | 3 | ..(*)(..) | +| (..(*)(..),d2i_of_void *,BIO *,void **) | | ASN1_d2i_bio | 0 | ..(*)(..) | +| (..(*)(..),d2i_of_void *,BIO *,void **) | | ASN1_d2i_bio | 1 | d2i_of_void * | +| (..(*)(..),d2i_of_void *,BIO *,void **) | | ASN1_d2i_bio | 2 | BIO * | +| (..(*)(..),d2i_of_void *,BIO *,void **) | | ASN1_d2i_bio | 3 | void ** | +| (..(*)(..),d2i_of_void *,FILE *,void **) | | ASN1_d2i_fp | 0 | ..(*)(..) | +| (..(*)(..),d2i_of_void *,FILE *,void **) | | ASN1_d2i_fp | 1 | d2i_of_void * | +| (..(*)(..),d2i_of_void *,FILE *,void **) | | ASN1_d2i_fp | 2 | FILE * | +| (..(*)(..),d2i_of_void *,FILE *,void **) | | ASN1_d2i_fp | 3 | void ** | +| (..(*)(..),void *) | | OSSL_STORE_do_all_loaders | 0 | ..(*)(..) | +| (..(*)(..),void *) | | OSSL_STORE_do_all_loaders | 1 | void * | +| (..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *) | | ossl_ackm_new | 0 | ..(*)(..) | +| (..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *) | | ossl_ackm_new | 1 | void * | +| (..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *) | | ossl_ackm_new | 2 | OSSL_STATM * | +| (..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *) | | ossl_ackm_new | 3 | const OSSL_CC_METHOD * | +| (..(*)(..),void *,OSSL_STATM *,const OSSL_CC_METHOD *,OSSL_CC_DATA *) | | ossl_ackm_new | 4 | OSSL_CC_DATA * | +| (ACCESS_DESCRIPTION *) | | ACCESS_DESCRIPTION_free | 0 | ACCESS_DESCRIPTION * | +| (ACCESS_DESCRIPTION **,const unsigned char **,long) | | d2i_ACCESS_DESCRIPTION | 0 | ACCESS_DESCRIPTION ** | +| (ACCESS_DESCRIPTION **,const unsigned char **,long) | | d2i_ACCESS_DESCRIPTION | 1 | const unsigned char ** | +| (ACCESS_DESCRIPTION **,const unsigned char **,long) | | d2i_ACCESS_DESCRIPTION | 2 | long | +| (ADMISSIONS *) | | ADMISSIONS_free | 0 | ADMISSIONS * | +| (ADMISSIONS **,const unsigned char **,long) | | d2i_ADMISSIONS | 0 | ADMISSIONS ** | +| (ADMISSIONS **,const unsigned char **,long) | | d2i_ADMISSIONS | 1 | const unsigned char ** | +| (ADMISSIONS **,const unsigned char **,long) | | d2i_ADMISSIONS | 2 | long | +| (ADMISSIONS *,GENERAL_NAME *) | | ADMISSIONS_set0_admissionAuthority | 0 | ADMISSIONS * | +| (ADMISSIONS *,GENERAL_NAME *) | | ADMISSIONS_set0_admissionAuthority | 1 | GENERAL_NAME * | +| (ADMISSIONS *,NAMING_AUTHORITY *) | | ADMISSIONS_set0_namingAuthority | 0 | ADMISSIONS * | +| (ADMISSIONS *,NAMING_AUTHORITY *) | | ADMISSIONS_set0_namingAuthority | 1 | NAMING_AUTHORITY * | +| (ADMISSIONS *,PROFESSION_INFOS *) | | ADMISSIONS_set0_professionInfos | 0 | ADMISSIONS * | +| (ADMISSIONS *,PROFESSION_INFOS *) | | ADMISSIONS_set0_professionInfos | 1 | PROFESSION_INFOS * | +| (ADMISSION_SYNTAX *) | | ADMISSION_SYNTAX_free | 0 | ADMISSION_SYNTAX * | +| (ADMISSION_SYNTAX **,const unsigned char **,long) | | d2i_ADMISSION_SYNTAX | 0 | ADMISSION_SYNTAX ** | +| (ADMISSION_SYNTAX **,const unsigned char **,long) | | d2i_ADMISSION_SYNTAX | 1 | const unsigned char ** | +| (ADMISSION_SYNTAX **,const unsigned char **,long) | | d2i_ADMISSION_SYNTAX | 2 | long | +| (ADMISSION_SYNTAX *,GENERAL_NAME *) | | ADMISSION_SYNTAX_set0_admissionAuthority | 0 | ADMISSION_SYNTAX * | +| (ADMISSION_SYNTAX *,GENERAL_NAME *) | | ADMISSION_SYNTAX_set0_admissionAuthority | 1 | GENERAL_NAME * | +| (ADMISSION_SYNTAX *,stack_st_ADMISSIONS *) | | ADMISSION_SYNTAX_set0_contentsOfAdmissions | 0 | ADMISSION_SYNTAX * | +| (ADMISSION_SYNTAX *,stack_st_ADMISSIONS *) | | ADMISSION_SYNTAX_set0_contentsOfAdmissions | 1 | stack_st_ADMISSIONS * | +| (AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int) | | AES_unwrap_key | 0 | AES_KEY * | +| (AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int) | | AES_unwrap_key | 1 | const unsigned char * | +| (AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int) | | AES_unwrap_key | 2 | unsigned char * | +| (AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int) | | AES_unwrap_key | 3 | const unsigned char * | +| (AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int) | | AES_unwrap_key | 4 | unsigned int | +| (AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int) | | AES_wrap_key | 0 | AES_KEY * | +| (AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int) | | AES_wrap_key | 1 | const unsigned char * | +| (AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int) | | AES_wrap_key | 2 | unsigned char * | +| (AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int) | | AES_wrap_key | 3 | const unsigned char * | +| (AES_KEY *,const unsigned char *,unsigned char *,const unsigned char *,unsigned int) | | AES_wrap_key | 4 | unsigned int | +| (ARGS *,char *) | | chopup_args | 0 | ARGS * | +| (ARGS *,char *) | | chopup_args | 1 | char * | +| (ASIdOrRange *) | | ASIdOrRange_free | 0 | ASIdOrRange * | +| (ASIdOrRange **,const unsigned char **,long) | | d2i_ASIdOrRange | 0 | ASIdOrRange ** | +| (ASIdOrRange **,const unsigned char **,long) | | d2i_ASIdOrRange | 1 | const unsigned char ** | +| (ASIdOrRange **,const unsigned char **,long) | | d2i_ASIdOrRange | 2 | long | +| (ASIdentifierChoice *) | | ASIdentifierChoice_free | 0 | ASIdentifierChoice * | +| (ASIdentifierChoice **,const unsigned char **,long) | | d2i_ASIdentifierChoice | 0 | ASIdentifierChoice ** | +| (ASIdentifierChoice **,const unsigned char **,long) | | d2i_ASIdentifierChoice | 1 | const unsigned char ** | +| (ASIdentifierChoice **,const unsigned char **,long) | | d2i_ASIdentifierChoice | 2 | long | +| (ASIdentifiers *) | | ASIdentifiers_free | 0 | ASIdentifiers * | +| (ASIdentifiers **,const unsigned char **,long) | | d2i_ASIdentifiers | 0 | ASIdentifiers ** | +| (ASIdentifiers **,const unsigned char **,long) | | d2i_ASIdentifiers | 1 | const unsigned char ** | +| (ASIdentifiers **,const unsigned char **,long) | | d2i_ASIdentifiers | 2 | long | +| (ASN1_BIT_STRING **,const unsigned char **,long) | | d2i_ASN1_BIT_STRING | 0 | ASN1_BIT_STRING ** | +| (ASN1_BIT_STRING **,const unsigned char **,long) | | d2i_ASN1_BIT_STRING | 1 | const unsigned char ** | +| (ASN1_BIT_STRING **,const unsigned char **,long) | | d2i_ASN1_BIT_STRING | 2 | long | +| (ASN1_BIT_STRING **,const unsigned char **,long) | | ossl_c2i_ASN1_BIT_STRING | 0 | ASN1_BIT_STRING ** | +| (ASN1_BIT_STRING **,const unsigned char **,long) | | ossl_c2i_ASN1_BIT_STRING | 1 | const unsigned char ** | +| (ASN1_BIT_STRING **,const unsigned char **,long) | | ossl_c2i_ASN1_BIT_STRING | 2 | long | +| (ASN1_BIT_STRING *,const char *,int,BIT_STRING_BITNAME *) | | ASN1_BIT_STRING_set_asc | 0 | ASN1_BIT_STRING * | +| (ASN1_BIT_STRING *,const char *,int,BIT_STRING_BITNAME *) | | ASN1_BIT_STRING_set_asc | 1 | const char * | +| (ASN1_BIT_STRING *,const char *,int,BIT_STRING_BITNAME *) | | ASN1_BIT_STRING_set_asc | 2 | int | +| (ASN1_BIT_STRING *,const char *,int,BIT_STRING_BITNAME *) | | ASN1_BIT_STRING_set_asc | 3 | BIT_STRING_BITNAME * | +| (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 0 | ASN1_BIT_STRING * | +| (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 1 | int | +| (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | int | +| (ASN1_BIT_STRING *,unsigned char **) | | ossl_i2c_ASN1_BIT_STRING | 0 | ASN1_BIT_STRING * | +| (ASN1_BIT_STRING *,unsigned char **) | | ossl_i2c_ASN1_BIT_STRING | 1 | unsigned char ** | +| (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 0 | ASN1_BIT_STRING * | +| (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 1 | unsigned char * | +| (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 2 | int | +| (ASN1_BMPSTRING **,const unsigned char **,long) | | d2i_ASN1_BMPSTRING | 0 | ASN1_BMPSTRING ** | +| (ASN1_BMPSTRING **,const unsigned char **,long) | | d2i_ASN1_BMPSTRING | 1 | const unsigned char ** | +| (ASN1_BMPSTRING **,const unsigned char **,long) | | d2i_ASN1_BMPSTRING | 2 | long | +| (ASN1_ENUMERATED **,const unsigned char **,long) | | d2i_ASN1_ENUMERATED | 0 | ASN1_ENUMERATED ** | +| (ASN1_ENUMERATED **,const unsigned char **,long) | | d2i_ASN1_ENUMERATED | 1 | const unsigned char ** | +| (ASN1_ENUMERATED **,const unsigned char **,long) | | d2i_ASN1_ENUMERATED | 2 | long | +| (ASN1_ENUMERATED *,int64_t) | | ASN1_ENUMERATED_set_int64 | 0 | ASN1_ENUMERATED * | +| (ASN1_ENUMERATED *,int64_t) | | ASN1_ENUMERATED_set_int64 | 1 | int64_t | +| (ASN1_ENUMERATED *,long) | | ASN1_ENUMERATED_set | 0 | ASN1_ENUMERATED * | +| (ASN1_ENUMERATED *,long) | | ASN1_ENUMERATED_set | 1 | long | +| (ASN1_GENERALIZEDTIME **,const unsigned char **,long) | | d2i_ASN1_GENERALIZEDTIME | 0 | ASN1_GENERALIZEDTIME ** | +| (ASN1_GENERALIZEDTIME **,const unsigned char **,long) | | d2i_ASN1_GENERALIZEDTIME | 1 | const unsigned char ** | +| (ASN1_GENERALIZEDTIME **,const unsigned char **,long) | | d2i_ASN1_GENERALIZEDTIME | 2 | long | +| (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 0 | ASN1_GENERALIZEDTIME * | +| (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | const char * | +| (ASN1_GENERALIZEDTIME *,time_t) | | ASN1_GENERALIZEDTIME_set | 0 | ASN1_GENERALIZEDTIME * | +| (ASN1_GENERALIZEDTIME *,time_t) | | ASN1_GENERALIZEDTIME_set | 1 | time_t | +| (ASN1_GENERALIZEDTIME *,time_t,int,long) | | ASN1_GENERALIZEDTIME_adj | 0 | ASN1_GENERALIZEDTIME * | +| (ASN1_GENERALIZEDTIME *,time_t,int,long) | | ASN1_GENERALIZEDTIME_adj | 1 | time_t | +| (ASN1_GENERALIZEDTIME *,time_t,int,long) | | ASN1_GENERALIZEDTIME_adj | 2 | int | +| (ASN1_GENERALIZEDTIME *,time_t,int,long) | | ASN1_GENERALIZEDTIME_adj | 3 | long | +| (ASN1_GENERALSTRING **,const unsigned char **,long) | | d2i_ASN1_GENERALSTRING | 0 | ASN1_GENERALSTRING ** | +| (ASN1_GENERALSTRING **,const unsigned char **,long) | | d2i_ASN1_GENERALSTRING | 1 | const unsigned char ** | +| (ASN1_GENERALSTRING **,const unsigned char **,long) | | d2i_ASN1_GENERALSTRING | 2 | long | +| (ASN1_IA5STRING **,const unsigned char **,long) | | d2i_ASN1_IA5STRING | 0 | ASN1_IA5STRING ** | +| (ASN1_IA5STRING **,const unsigned char **,long) | | d2i_ASN1_IA5STRING | 1 | const unsigned char ** | +| (ASN1_IA5STRING **,const unsigned char **,long) | | d2i_ASN1_IA5STRING | 2 | long | +| (ASN1_INTEGER **,const unsigned char **,long) | | d2i_ASN1_INTEGER | 0 | ASN1_INTEGER ** | +| (ASN1_INTEGER **,const unsigned char **,long) | | d2i_ASN1_INTEGER | 1 | const unsigned char ** | +| (ASN1_INTEGER **,const unsigned char **,long) | | d2i_ASN1_INTEGER | 2 | long | +| (ASN1_INTEGER **,const unsigned char **,long) | | d2i_ASN1_UINTEGER | 0 | ASN1_INTEGER ** | +| (ASN1_INTEGER **,const unsigned char **,long) | | d2i_ASN1_UINTEGER | 1 | const unsigned char ** | +| (ASN1_INTEGER **,const unsigned char **,long) | | d2i_ASN1_UINTEGER | 2 | long | +| (ASN1_INTEGER **,const unsigned char **,long) | | ossl_c2i_ASN1_INTEGER | 0 | ASN1_INTEGER ** | +| (ASN1_INTEGER **,const unsigned char **,long) | | ossl_c2i_ASN1_INTEGER | 1 | const unsigned char ** | +| (ASN1_INTEGER **,const unsigned char **,long) | | ossl_c2i_ASN1_INTEGER | 2 | long | +| (ASN1_INTEGER *,int64_t) | | ASN1_INTEGER_set_int64 | 0 | ASN1_INTEGER * | +| (ASN1_INTEGER *,int64_t) | | ASN1_INTEGER_set_int64 | 1 | int64_t | +| (ASN1_INTEGER *,long) | | ASN1_INTEGER_set | 0 | ASN1_INTEGER * | +| (ASN1_INTEGER *,long) | | ASN1_INTEGER_set | 1 | long | +| (ASN1_INTEGER *,uint64_t) | | ASN1_INTEGER_set_uint64 | 0 | ASN1_INTEGER * | +| (ASN1_INTEGER *,uint64_t) | | ASN1_INTEGER_set_uint64 | 1 | uint64_t | +| (ASN1_INTEGER *,unsigned char **) | | ossl_i2c_ASN1_INTEGER | 0 | ASN1_INTEGER * | +| (ASN1_INTEGER *,unsigned char **) | | ossl_i2c_ASN1_INTEGER | 1 | unsigned char ** | +| (ASN1_NULL *) | | ASN1_NULL_free | 0 | ASN1_NULL * | +| (ASN1_NULL **,const unsigned char **,long) | | d2i_ASN1_NULL | 0 | ASN1_NULL ** | +| (ASN1_NULL **,const unsigned char **,long) | | d2i_ASN1_NULL | 1 | const unsigned char ** | +| (ASN1_NULL **,const unsigned char **,long) | | d2i_ASN1_NULL | 2 | long | +| (ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *) | | X509_PUBKEY_get0_param | 0 | ASN1_OBJECT ** | +| (ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *) | | X509_PUBKEY_get0_param | 1 | const unsigned char ** | +| (ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *) | | X509_PUBKEY_get0_param | 2 | int * | +| (ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *) | | X509_PUBKEY_get0_param | 3 | X509_ALGOR ** | +| (ASN1_OBJECT **,const unsigned char **,int *,X509_ALGOR **,const X509_PUBKEY *) | | X509_PUBKEY_get0_param | 4 | const X509_PUBKEY * | +| (ASN1_OBJECT **,const unsigned char **,long) | | d2i_ASN1_OBJECT | 0 | ASN1_OBJECT ** | +| (ASN1_OBJECT **,const unsigned char **,long) | | d2i_ASN1_OBJECT | 1 | const unsigned char ** | +| (ASN1_OBJECT **,const unsigned char **,long) | | d2i_ASN1_OBJECT | 2 | long | +| (ASN1_OBJECT **,const unsigned char **,long) | | ossl_c2i_ASN1_OBJECT | 0 | ASN1_OBJECT ** | +| (ASN1_OBJECT **,const unsigned char **,long) | | ossl_c2i_ASN1_OBJECT | 1 | const unsigned char ** | +| (ASN1_OBJECT **,const unsigned char **,long) | | ossl_c2i_ASN1_OBJECT | 2 | long | +| (ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ATAV_create | 0 | ASN1_OBJECT * | +| (ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ATAV_create | 1 | ASN1_TYPE * | +| (ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ITAV_create | 0 | ASN1_OBJECT * | +| (ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ITAV_create | 1 | ASN1_TYPE * | +| (ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *) | | OCSP_id_get0_info | 0 | ASN1_OCTET_STRING ** | +| (ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *) | | OCSP_id_get0_info | 1 | ASN1_OBJECT ** | +| (ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *) | | OCSP_id_get0_info | 2 | ASN1_OCTET_STRING ** | +| (ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *) | | OCSP_id_get0_info | 3 | ASN1_INTEGER ** | +| (ASN1_OCTET_STRING **,ASN1_OBJECT **,ASN1_OCTET_STRING **,ASN1_INTEGER **,OCSP_CERTID *) | | OCSP_id_get0_info | 4 | OCSP_CERTID * | +| (ASN1_OCTET_STRING **,X509 *) | | ossl_cms_set1_keyid | 0 | ASN1_OCTET_STRING ** | +| (ASN1_OCTET_STRING **,X509 *) | | ossl_cms_set1_keyid | 1 | X509 * | +| (ASN1_OCTET_STRING **,const ASN1_OCTET_STRING *) | | ossl_cmp_asn1_octet_string_set1 | 0 | ASN1_OCTET_STRING ** | +| (ASN1_OCTET_STRING **,const ASN1_OCTET_STRING *) | | ossl_cmp_asn1_octet_string_set1 | 1 | const ASN1_OCTET_STRING * | +| (ASN1_OCTET_STRING **,const unsigned char **,long) | | d2i_ASN1_OCTET_STRING | 0 | ASN1_OCTET_STRING ** | +| (ASN1_OCTET_STRING **,const unsigned char **,long) | | d2i_ASN1_OCTET_STRING | 1 | const unsigned char ** | +| (ASN1_OCTET_STRING **,const unsigned char **,long) | | d2i_ASN1_OCTET_STRING | 2 | long | +| (ASN1_OCTET_STRING **,const unsigned char *,int) | | ossl_cmp_asn1_octet_string_set1_bytes | 0 | ASN1_OCTET_STRING ** | +| (ASN1_OCTET_STRING **,const unsigned char *,int) | | ossl_cmp_asn1_octet_string_set1_bytes | 1 | const unsigned char * | +| (ASN1_OCTET_STRING **,const unsigned char *,int) | | ossl_cmp_asn1_octet_string_set1_bytes | 2 | int | +| (ASN1_OCTET_STRING *,X509 *) | | ossl_cms_keyid_cert_cmp | 0 | ASN1_OCTET_STRING * | +| (ASN1_OCTET_STRING *,X509 *) | | ossl_cms_keyid_cert_cmp | 1 | X509 * | +| (ASN1_OCTET_STRING *,const unsigned char *,int) | | ASN1_OCTET_STRING_set | 0 | ASN1_OCTET_STRING * | +| (ASN1_OCTET_STRING *,const unsigned char *,int) | | ASN1_OCTET_STRING_set | 1 | const unsigned char * | +| (ASN1_OCTET_STRING *,const unsigned char *,int) | | ASN1_OCTET_STRING_set | 2 | int | +| (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 0 | ASN1_PCTX * | +| (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | unsigned long | +| (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 0 | ASN1_PCTX * | +| (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | unsigned long | +| (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 0 | ASN1_PCTX * | +| (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | unsigned long | +| (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 0 | ASN1_PCTX * | +| (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_oid_flags | 1 | unsigned long | +| (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 0 | ASN1_PCTX * | +| (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_str_flags | 1 | unsigned long | +| (ASN1_PRINTABLESTRING **,const unsigned char **,long) | | d2i_ASN1_PRINTABLESTRING | 0 | ASN1_PRINTABLESTRING ** | +| (ASN1_PRINTABLESTRING **,const unsigned char **,long) | | d2i_ASN1_PRINTABLESTRING | 1 | const unsigned char ** | +| (ASN1_PRINTABLESTRING **,const unsigned char **,long) | | d2i_ASN1_PRINTABLESTRING | 2 | long | +| (ASN1_SCTX *) | | ASN1_SCTX_get_app_data | 0 | ASN1_SCTX * | +| (ASN1_SCTX *) | | ASN1_SCTX_get_flags | 0 | ASN1_SCTX * | +| (ASN1_SCTX *) | | ASN1_SCTX_get_item | 0 | ASN1_SCTX * | +| (ASN1_SCTX *) | | ASN1_SCTX_get_template | 0 | ASN1_SCTX * | +| (ASN1_SCTX *,void *) | | ASN1_SCTX_set_app_data | 0 | ASN1_SCTX * | +| (ASN1_SCTX *,void *) | | ASN1_SCTX_set_app_data | 1 | void * | +| (ASN1_SEQUENCE_ANY **,const unsigned char **,long) | | d2i_ASN1_SEQUENCE_ANY | 0 | ASN1_SEQUENCE_ANY ** | +| (ASN1_SEQUENCE_ANY **,const unsigned char **,long) | | d2i_ASN1_SEQUENCE_ANY | 1 | const unsigned char ** | +| (ASN1_SEQUENCE_ANY **,const unsigned char **,long) | | d2i_ASN1_SEQUENCE_ANY | 2 | long | +| (ASN1_SEQUENCE_ANY **,const unsigned char **,long) | | d2i_ASN1_SET_ANY | 0 | ASN1_SEQUENCE_ANY ** | +| (ASN1_SEQUENCE_ANY **,const unsigned char **,long) | | d2i_ASN1_SET_ANY | 1 | const unsigned char ** | +| (ASN1_SEQUENCE_ANY **,const unsigned char **,long) | | d2i_ASN1_SET_ANY | 2 | long | +| (ASN1_STRING *) | | ASN1_PRINTABLE_free | 0 | ASN1_STRING * | +| (ASN1_STRING *) | | ASN1_STRING_data | 0 | ASN1_STRING * | +| (ASN1_STRING *) | | DIRECTORYSTRING_free | 0 | ASN1_STRING * | +| (ASN1_STRING *) | | DISPLAYTEXT_free | 0 | ASN1_STRING * | +| (ASN1_STRING **,const unsigned char **,long) | | d2i_ASN1_PRINTABLE | 0 | ASN1_STRING ** | +| (ASN1_STRING **,const unsigned char **,long) | | d2i_ASN1_PRINTABLE | 1 | const unsigned char ** | +| (ASN1_STRING **,const unsigned char **,long) | | d2i_ASN1_PRINTABLE | 2 | long | +| (ASN1_STRING **,const unsigned char **,long) | | d2i_DIRECTORYSTRING | 0 | ASN1_STRING ** | +| (ASN1_STRING **,const unsigned char **,long) | | d2i_DIRECTORYSTRING | 1 | const unsigned char ** | +| (ASN1_STRING **,const unsigned char **,long) | | d2i_DIRECTORYSTRING | 2 | long | +| (ASN1_STRING **,const unsigned char **,long) | | d2i_DISPLAYTEXT | 0 | ASN1_STRING ** | +| (ASN1_STRING **,const unsigned char **,long) | | d2i_DISPLAYTEXT | 1 | const unsigned char ** | +| (ASN1_STRING **,const unsigned char **,long) | | d2i_DISPLAYTEXT | 2 | long | +| (ASN1_STRING **,const unsigned char *,int,int,int) | | ASN1_STRING_set_by_NID | 0 | ASN1_STRING ** | +| (ASN1_STRING **,const unsigned char *,int,int,int) | | ASN1_STRING_set_by_NID | 1 | const unsigned char * | +| (ASN1_STRING **,const unsigned char *,int,int,int) | | ASN1_STRING_set_by_NID | 2 | int | +| (ASN1_STRING **,const unsigned char *,int,int,int) | | ASN1_STRING_set_by_NID | 3 | int | +| (ASN1_STRING **,const unsigned char *,int,int,int) | | ASN1_STRING_set_by_NID | 4 | int | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long) | | ASN1_mbstring_copy | 0 | ASN1_STRING ** | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long) | | ASN1_mbstring_copy | 1 | const unsigned char * | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long) | | ASN1_mbstring_copy | 2 | int | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long) | | ASN1_mbstring_copy | 3 | int | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long) | | ASN1_mbstring_copy | 4 | unsigned long | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long) | | ASN1_mbstring_ncopy | 0 | ASN1_STRING ** | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long) | | ASN1_mbstring_ncopy | 1 | const unsigned char * | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long) | | ASN1_mbstring_ncopy | 2 | int | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long) | | ASN1_mbstring_ncopy | 3 | int | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long) | | ASN1_mbstring_ncopy | 4 | unsigned long | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long) | | ASN1_mbstring_ncopy | 5 | long | +| (ASN1_STRING **,const unsigned char *,int,int,unsigned long,long,long) | | ASN1_mbstring_ncopy | 6 | long | +| (ASN1_STRING *,const ASN1_STRING *) | | ASN1_STRING_copy | 0 | ASN1_STRING * | +| (ASN1_STRING *,const ASN1_STRING *) | | ASN1_STRING_copy | 1 | const ASN1_STRING * | +| (ASN1_STRING *,const void *,int) | | ASN1_STRING_set | 0 | ASN1_STRING * | +| (ASN1_STRING *,const void *,int) | | ASN1_STRING_set | 1 | const void * | +| (ASN1_STRING *,const void *,int) | | ASN1_STRING_set | 2 | int | +| (ASN1_STRING *,int) | | ASN1_STRING_length_set | 0 | ASN1_STRING * | +| (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | int | +| (ASN1_STRING *,unsigned int) | | ossl_asn1_string_set_bits_left | 0 | ASN1_STRING * | +| (ASN1_STRING *,unsigned int) | | ossl_asn1_string_set_bits_left | 1 | unsigned int | +| (ASN1_STRING *,void *,int) | | ASN1_STRING_set0 | 0 | ASN1_STRING * | +| (ASN1_STRING *,void *,int) | | ASN1_STRING_set0 | 1 | void * | +| (ASN1_STRING *,void *,int) | | ASN1_STRING_set0 | 2 | int | +| (ASN1_T61STRING **,const unsigned char **,long) | | d2i_ASN1_T61STRING | 0 | ASN1_T61STRING ** | +| (ASN1_T61STRING **,const unsigned char **,long) | | d2i_ASN1_T61STRING | 1 | const unsigned char ** | +| (ASN1_T61STRING **,const unsigned char **,long) | | d2i_ASN1_T61STRING | 2 | long | +| (ASN1_TIME *) | | ASN1_TIME_free | 0 | ASN1_TIME * | +| (ASN1_TIME *) | | ASN1_TIME_normalize | 0 | ASN1_TIME * | +| (ASN1_TIME **,const unsigned char **,long) | | d2i_ASN1_TIME | 0 | ASN1_TIME ** | +| (ASN1_TIME **,const unsigned char **,long) | | d2i_ASN1_TIME | 1 | const unsigned char ** | +| (ASN1_TIME **,const unsigned char **,long) | | d2i_ASN1_TIME | 2 | long | +| (ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *) | | unpack_revinfo | 0 | ASN1_TIME ** | +| (ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *) | | unpack_revinfo | 1 | int * | +| (ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *) | | unpack_revinfo | 2 | ASN1_OBJECT ** | +| (ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *) | | unpack_revinfo | 3 | ASN1_GENERALIZEDTIME ** | +| (ASN1_TIME **,int *,ASN1_OBJECT **,ASN1_GENERALIZEDTIME **,const char *) | | unpack_revinfo | 4 | const char * | +| (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 0 | ASN1_TIME * | +| (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | const char * | +| (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 0 | ASN1_TIME * | +| (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | const char * | +| (ASN1_TIME *,int,long,time_t *) | | X509_time_adj_ex | 0 | ASN1_TIME * | +| (ASN1_TIME *,int,long,time_t *) | | X509_time_adj_ex | 1 | int | +| (ASN1_TIME *,int,long,time_t *) | | X509_time_adj_ex | 2 | long | +| (ASN1_TIME *,int,long,time_t *) | | X509_time_adj_ex | 3 | time_t * | +| (ASN1_TIME *,long) | | X509_gmtime_adj | 0 | ASN1_TIME * | +| (ASN1_TIME *,long) | | X509_gmtime_adj | 1 | long | +| (ASN1_TIME *,long,time_t *) | | X509_time_adj | 0 | ASN1_TIME * | +| (ASN1_TIME *,long,time_t *) | | X509_time_adj | 1 | long | +| (ASN1_TIME *,long,time_t *) | | X509_time_adj | 2 | time_t * | +| (ASN1_TIME *,time_t) | | ASN1_TIME_set | 0 | ASN1_TIME * | +| (ASN1_TIME *,time_t) | | ASN1_TIME_set | 1 | time_t | +| (ASN1_TIME *,time_t,int,long) | | ASN1_TIME_adj | 0 | ASN1_TIME * | +| (ASN1_TIME *,time_t,int,long) | | ASN1_TIME_adj | 1 | time_t | +| (ASN1_TIME *,time_t,int,long) | | ASN1_TIME_adj | 2 | int | +| (ASN1_TIME *,time_t,int,long) | | ASN1_TIME_adj | 3 | long | +| (ASN1_TIME *,tm *,int) | | ossl_asn1_time_from_tm | 0 | ASN1_TIME * | +| (ASN1_TIME *,tm *,int) | | ossl_asn1_time_from_tm | 1 | tm * | +| (ASN1_TIME *,tm *,int) | | ossl_asn1_time_from_tm | 2 | int | +| (ASN1_TYPE *) | | ASN1_TYPE_free | 0 | ASN1_TYPE * | +| (ASN1_TYPE **,const unsigned char **,long) | | d2i_ASN1_TYPE | 0 | ASN1_TYPE ** | +| (ASN1_TYPE **,const unsigned char **,long) | | d2i_ASN1_TYPE | 1 | const unsigned char ** | +| (ASN1_TYPE **,const unsigned char **,long) | | d2i_ASN1_TYPE | 2 | long | +| (ASN1_TYPE *,int,const void *) | | ASN1_TYPE_set1 | 0 | ASN1_TYPE * | +| (ASN1_TYPE *,int,const void *) | | ASN1_TYPE_set1 | 1 | int | +| (ASN1_TYPE *,int,const void *) | | ASN1_TYPE_set1 | 2 | const void * | +| (ASN1_TYPE *,int,void *) | | ASN1_TYPE_set | 0 | ASN1_TYPE * | +| (ASN1_TYPE *,int,void *) | | ASN1_TYPE_set | 1 | int | +| (ASN1_TYPE *,int,void *) | | ASN1_TYPE_set | 2 | void * | +| (ASN1_TYPE *,unsigned char *,int) | | ASN1_TYPE_set_octetstring | 0 | ASN1_TYPE * | +| (ASN1_TYPE *,unsigned char *,int) | | ASN1_TYPE_set_octetstring | 1 | unsigned char * | +| (ASN1_TYPE *,unsigned char *,int) | | ASN1_TYPE_set_octetstring | 2 | int | +| (ASN1_UNIVERSALSTRING **,const unsigned char **,long) | | d2i_ASN1_UNIVERSALSTRING | 0 | ASN1_UNIVERSALSTRING ** | +| (ASN1_UNIVERSALSTRING **,const unsigned char **,long) | | d2i_ASN1_UNIVERSALSTRING | 1 | const unsigned char ** | +| (ASN1_UNIVERSALSTRING **,const unsigned char **,long) | | d2i_ASN1_UNIVERSALSTRING | 2 | long | +| (ASN1_UTCTIME **,const unsigned char **,long) | | d2i_ASN1_UTCTIME | 0 | ASN1_UTCTIME ** | +| (ASN1_UTCTIME **,const unsigned char **,long) | | d2i_ASN1_UTCTIME | 1 | const unsigned char ** | +| (ASN1_UTCTIME **,const unsigned char **,long) | | d2i_ASN1_UTCTIME | 2 | long | +| (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 0 | ASN1_UTCTIME * | +| (ASN1_UTCTIME *,const char *) | | ASN1_UTCTIME_set_string | 1 | const char * | +| (ASN1_UTCTIME *,time_t) | | ASN1_UTCTIME_set | 0 | ASN1_UTCTIME * | +| (ASN1_UTCTIME *,time_t) | | ASN1_UTCTIME_set | 1 | time_t | +| (ASN1_UTCTIME *,time_t,int,long) | | ASN1_UTCTIME_adj | 0 | ASN1_UTCTIME * | +| (ASN1_UTCTIME *,time_t,int,long) | | ASN1_UTCTIME_adj | 1 | time_t | +| (ASN1_UTCTIME *,time_t,int,long) | | ASN1_UTCTIME_adj | 2 | int | +| (ASN1_UTCTIME *,time_t,int,long) | | ASN1_UTCTIME_adj | 3 | long | +| (ASN1_UTF8STRING **,const unsigned char **,long) | | d2i_ASN1_UTF8STRING | 0 | ASN1_UTF8STRING ** | +| (ASN1_UTF8STRING **,const unsigned char **,long) | | d2i_ASN1_UTF8STRING | 1 | const unsigned char ** | +| (ASN1_UTF8STRING **,const unsigned char **,long) | | d2i_ASN1_UTF8STRING | 2 | long | +| (ASN1_VALUE **,const ASN1_ITEM *) | | ASN1_item_ex_free | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const ASN1_ITEM *) | | ASN1_item_ex_free | 1 | const ASN1_ITEM * | +| (ASN1_VALUE **,const ASN1_ITEM *) | | ASN1_item_ex_new | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const ASN1_ITEM *) | | ASN1_item_ex_new | 1 | const ASN1_ITEM * | +| (ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_enc_free | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_enc_free | 1 | const ASN1_ITEM * | +| (ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_enc_init | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_enc_init | 1 | const ASN1_ITEM * | +| (ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_get_choice_selector | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_get_choice_selector | 1 | const ASN1_ITEM * | +| (ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_ex_new_intern | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_ex_new_intern | 1 | const ASN1_ITEM * | +| (ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_ex_new_intern | 2 | OSSL_LIB_CTX * | +| (ASN1_VALUE **,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_ex_new_intern | 3 | const char * | +| (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_item_embed_free | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_item_embed_free | 1 | const ASN1_ITEM * | +| (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_item_embed_free | 2 | int | +| (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_primitive_free | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_primitive_free | 1 | const ASN1_ITEM * | +| (ASN1_VALUE **,const ASN1_ITEM *,int) | | ossl_asn1_primitive_free | 2 | int | +| (ASN1_VALUE **,const ASN1_TEMPLATE *) | | ossl_asn1_get_field_ptr | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const ASN1_TEMPLATE *) | | ossl_asn1_get_field_ptr | 1 | const ASN1_TEMPLATE * | +| (ASN1_VALUE **,const ASN1_TEMPLATE *) | | ossl_asn1_template_free | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const ASN1_TEMPLATE *) | | ossl_asn1_template_free | 1 | const ASN1_TEMPLATE * | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *) | | ASN1_item_d2i | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *) | | ASN1_item_d2i | 1 | const unsigned char ** | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *) | | ASN1_item_d2i | 2 | long | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *) | | ASN1_item_d2i | 3 | const ASN1_ITEM * | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_ex | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_ex | 1 | const unsigned char ** | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_ex | 2 | long | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_ex | 3 | const ASN1_ITEM * | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_ex | 4 | OSSL_LIB_CTX * | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_ex | 5 | const char * | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *) | | ASN1_item_ex_d2i | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *) | | ASN1_item_ex_d2i | 1 | const unsigned char ** | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *) | | ASN1_item_ex_d2i | 2 | long | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *) | | ASN1_item_ex_d2i | 3 | const ASN1_ITEM * | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *) | | ASN1_item_ex_d2i | 4 | int | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *) | | ASN1_item_ex_d2i | 5 | int | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *) | | ASN1_item_ex_d2i | 6 | char | +| (ASN1_VALUE **,const unsigned char **,long,const ASN1_ITEM *,int,int,char,ASN1_TLC *) | | ASN1_item_ex_d2i | 7 | ASN1_TLC * | +| (ASN1_VALUE **,const unsigned char *,int,const ASN1_ITEM *) | | ossl_asn1_enc_save | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,const unsigned char *,int,const ASN1_ITEM *) | | ossl_asn1_enc_save | 1 | const unsigned char * | +| (ASN1_VALUE **,const unsigned char *,int,const ASN1_ITEM *) | | ossl_asn1_enc_save | 2 | int | +| (ASN1_VALUE **,const unsigned char *,int,const ASN1_ITEM *) | | ossl_asn1_enc_save | 3 | const ASN1_ITEM * | +| (ASN1_VALUE **,int,const ASN1_ITEM *) | | ossl_asn1_do_lock | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,int,const ASN1_ITEM *) | | ossl_asn1_do_lock | 1 | int | +| (ASN1_VALUE **,int,const ASN1_ITEM *) | | ossl_asn1_do_lock | 2 | const ASN1_ITEM * | +| (ASN1_VALUE **,int,const ASN1_ITEM *) | | ossl_asn1_set_choice_selector | 0 | ASN1_VALUE ** | +| (ASN1_VALUE **,int,const ASN1_ITEM *) | | ossl_asn1_set_choice_selector | 1 | int | +| (ASN1_VALUE **,int,const ASN1_ITEM *) | | ossl_asn1_set_choice_selector | 2 | const ASN1_ITEM * | +| (ASN1_VALUE *,const ASN1_ITEM *) | | ASN1_item_free | 0 | ASN1_VALUE * | +| (ASN1_VALUE *,const ASN1_ITEM *) | | ASN1_item_free | 1 | const ASN1_ITEM * | +| (ASN1_VISIBLESTRING **,const unsigned char **,long) | | d2i_ASN1_VISIBLESTRING | 0 | ASN1_VISIBLESTRING ** | +| (ASN1_VISIBLESTRING **,const unsigned char **,long) | | d2i_ASN1_VISIBLESTRING | 1 | const unsigned char ** | +| (ASN1_VISIBLESTRING **,const unsigned char **,long) | | d2i_ASN1_VISIBLESTRING | 2 | long | +| (ASRange *) | | ASRange_free | 0 | ASRange * | +| (ASRange **,const unsigned char **,long) | | d2i_ASRange | 0 | ASRange ** | +| (ASRange **,const unsigned char **,long) | | d2i_ASRange | 1 | const unsigned char ** | +| (ASRange **,const unsigned char **,long) | | d2i_ASRange | 2 | long | +| (ASYNC_JOB *) | | ASYNC_get_wait_ctx | 0 | ASYNC_JOB * | +| (ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t) | | ASYNC_start_job | 0 | ASYNC_JOB ** | +| (ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t) | | ASYNC_start_job | 1 | ASYNC_WAIT_CTX * | +| (ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t) | | ASYNC_start_job | 2 | int * | +| (ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t) | | ASYNC_start_job | 3 | ..(*)(..) | +| (ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t) | | ASYNC_start_job | 4 | void * | +| (ASYNC_JOB **,ASYNC_WAIT_CTX *,int *,..(*)(..),void *,size_t) | | ASYNC_start_job | 5 | size_t | +| (ASYNC_WAIT_CTX *) | | ASYNC_WAIT_CTX_get_status | 0 | ASYNC_WAIT_CTX * | +| (ASYNC_WAIT_CTX *) | | async_wait_ctx_reset_counts | 0 | ASYNC_WAIT_CTX * | +| (ASYNC_WAIT_CTX *,ASYNC_callback_fn *,void **) | | ASYNC_WAIT_CTX_get_callback | 0 | ASYNC_WAIT_CTX * | +| (ASYNC_WAIT_CTX *,ASYNC_callback_fn *,void **) | | ASYNC_WAIT_CTX_get_callback | 1 | ASYNC_callback_fn * | +| (ASYNC_WAIT_CTX *,ASYNC_callback_fn *,void **) | | ASYNC_WAIT_CTX_get_callback | 2 | void ** | +| (ASYNC_WAIT_CTX *,ASYNC_callback_fn,void *) | | ASYNC_WAIT_CTX_set_callback | 0 | ASYNC_WAIT_CTX * | +| (ASYNC_WAIT_CTX *,ASYNC_callback_fn,void *) | | ASYNC_WAIT_CTX_set_callback | 1 | ASYNC_callback_fn | +| (ASYNC_WAIT_CTX *,ASYNC_callback_fn,void *) | | ASYNC_WAIT_CTX_set_callback | 2 | void * | +| (ASYNC_WAIT_CTX *,const void *,int *,void **) | | ASYNC_WAIT_CTX_get_fd | 0 | ASYNC_WAIT_CTX * | +| (ASYNC_WAIT_CTX *,const void *,int *,void **) | | ASYNC_WAIT_CTX_get_fd | 1 | const void * | +| (ASYNC_WAIT_CTX *,const void *,int *,void **) | | ASYNC_WAIT_CTX_get_fd | 2 | int * | +| (ASYNC_WAIT_CTX *,const void *,int *,void **) | | ASYNC_WAIT_CTX_get_fd | 3 | void ** | +| (ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..)) | | ASYNC_WAIT_CTX_set_wait_fd | 0 | ASYNC_WAIT_CTX * | +| (ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..)) | | ASYNC_WAIT_CTX_set_wait_fd | 1 | const void * | +| (ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..)) | | ASYNC_WAIT_CTX_set_wait_fd | 2 | int | +| (ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..)) | | ASYNC_WAIT_CTX_set_wait_fd | 3 | void * | +| (ASYNC_WAIT_CTX *,const void *,int,void *,..(*)(..)) | | ASYNC_WAIT_CTX_set_wait_fd | 4 | ..(*)(..) | +| (ASYNC_WAIT_CTX *,int *,size_t *) | | ASYNC_WAIT_CTX_get_all_fds | 0 | ASYNC_WAIT_CTX * | +| (ASYNC_WAIT_CTX *,int *,size_t *) | | ASYNC_WAIT_CTX_get_all_fds | 1 | int * | +| (ASYNC_WAIT_CTX *,int *,size_t *) | | ASYNC_WAIT_CTX_get_all_fds | 2 | size_t * | +| (ASYNC_WAIT_CTX *,int *,size_t *,int *,size_t *) | | ASYNC_WAIT_CTX_get_changed_fds | 0 | ASYNC_WAIT_CTX * | +| (ASYNC_WAIT_CTX *,int *,size_t *,int *,size_t *) | | ASYNC_WAIT_CTX_get_changed_fds | 1 | int * | +| (ASYNC_WAIT_CTX *,int *,size_t *,int *,size_t *) | | ASYNC_WAIT_CTX_get_changed_fds | 2 | size_t * | +| (ASYNC_WAIT_CTX *,int *,size_t *,int *,size_t *) | | ASYNC_WAIT_CTX_get_changed_fds | 3 | int * | +| (ASYNC_WAIT_CTX *,int *,size_t *,int *,size_t *) | | ASYNC_WAIT_CTX_get_changed_fds | 4 | size_t * | +| (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 0 | ASYNC_WAIT_CTX * | +| (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | int | +| (AUTHORITY_INFO_ACCESS *) | | AUTHORITY_INFO_ACCESS_free | 0 | AUTHORITY_INFO_ACCESS * | +| (AUTHORITY_INFO_ACCESS **,const unsigned char **,long) | | d2i_AUTHORITY_INFO_ACCESS | 0 | AUTHORITY_INFO_ACCESS ** | +| (AUTHORITY_INFO_ACCESS **,const unsigned char **,long) | | d2i_AUTHORITY_INFO_ACCESS | 1 | const unsigned char ** | +| (AUTHORITY_INFO_ACCESS **,const unsigned char **,long) | | d2i_AUTHORITY_INFO_ACCESS | 2 | long | +| (AUTHORITY_KEYID *) | | AUTHORITY_KEYID_free | 0 | AUTHORITY_KEYID * | +| (AUTHORITY_KEYID **,const unsigned char **,long) | | d2i_AUTHORITY_KEYID | 0 | AUTHORITY_KEYID ** | +| (AUTHORITY_KEYID **,const unsigned char **,long) | | d2i_AUTHORITY_KEYID | 1 | const unsigned char ** | +| (AUTHORITY_KEYID **,const unsigned char **,long) | | d2i_AUTHORITY_KEYID | 2 | long | +| (BASIC_CONSTRAINTS *) | | BASIC_CONSTRAINTS_free | 0 | BASIC_CONSTRAINTS * | +| (BASIC_CONSTRAINTS **,const unsigned char **,long) | | d2i_BASIC_CONSTRAINTS | 0 | BASIC_CONSTRAINTS ** | +| (BASIC_CONSTRAINTS **,const unsigned char **,long) | | d2i_BASIC_CONSTRAINTS | 1 | const unsigned char ** | +| (BASIC_CONSTRAINTS **,const unsigned char **,long) | | d2i_BASIC_CONSTRAINTS | 2 | long | +| (BIGNUM *) | | BN_get_rfc2409_prime_768 | 0 | BIGNUM * | +| (BIGNUM *) | | BN_get_rfc2409_prime_1024 | 0 | BIGNUM * | +| (BIGNUM *) | | BN_get_rfc3526_prime_1536 | 0 | BIGNUM * | +| (BIGNUM *) | | BN_get_rfc3526_prime_2048 | 0 | BIGNUM * | +| (BIGNUM *) | | BN_get_rfc3526_prime_3072 | 0 | BIGNUM * | +| (BIGNUM *) | | BN_get_rfc3526_prime_4096 | 0 | BIGNUM * | +| (BIGNUM *) | | BN_get_rfc3526_prime_6144 | 0 | BIGNUM * | +| (BIGNUM *) | | BN_get_rfc3526_prime_8192 | 0 | BIGNUM * | +| (BIGNUM **,const char *) | | BN_asc2bn | 0 | BIGNUM ** | +| (BIGNUM **,const char *) | | BN_asc2bn | 1 | const char * | +| (BIGNUM **,const char *) | | BN_dec2bn | 0 | BIGNUM ** | +| (BIGNUM **,const char *) | | BN_dec2bn | 1 | const char * | +| (BIGNUM **,const char *) | | BN_hex2bn | 0 | BIGNUM ** | +| (BIGNUM **,const char *) | | BN_hex2bn | 1 | const char * | +| (BIGNUM *,ASN1_INTEGER *) | | rand_serial | 0 | BIGNUM * | +| (BIGNUM *,ASN1_INTEGER *) | | rand_serial | 1 | ASN1_INTEGER * | +| (BIGNUM *,BIGNUM *) | | BN_swap | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *) | | BN_swap | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_generate_prime_ex | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_generate_prime_ex | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_generate_prime_ex | 2 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_generate_prime_ex | 3 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_generate_prime_ex | 4 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_generate_prime_ex | 5 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_generate_prime_ex | 6 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_generate_prime_ex | 7 | BN_CTX * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_generate_prime_ex | 8 | BN_GENCB * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 2 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 3 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 4 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 5 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 6 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 7 | int | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 8 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 9 | BN_CTX * | +| (BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_gen_prob_primes | 10 | BN_GENCB * | +| (BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_derive_prime_ex | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_derive_prime_ex | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_derive_prime_ex | 2 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_derive_prime_ex | 3 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_derive_prime_ex | 4 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_derive_prime_ex | 5 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_derive_prime_ex | 6 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_derive_prime_ex | 7 | BN_CTX * | +| (BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_X931_derive_prime_ex | 8 | BN_GENCB * | +| (BIGNUM *,BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_convert_ex | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_convert_ex | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_convert_ex | 2 | BN_BLINDING * | +| (BIGNUM *,BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_convert_ex | 3 | BN_CTX * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *) | | BN_div_recp | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *) | | BN_div_recp | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *) | | BN_div_recp | 2 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *) | | BN_div_recp | 3 | BN_RECP_CTX * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *) | | BN_div_recp | 4 | BN_CTX * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_div | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_div | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_div | 2 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_div | 3 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_div | 4 | BN_CTX * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_div_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_div_fixed_top | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_div_fixed_top | 2 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_div_fixed_top | 3 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_div_fixed_top | 4 | BN_CTX * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_derive_prime | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_derive_prime | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_derive_prime | 2 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_derive_prime | 3 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_derive_prime | 4 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_derive_prime | 5 | int | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_derive_prime | 6 | const BIGNUM * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_derive_prime | 7 | BN_CTX * | +| (BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_bn_rsa_fips186_4_derive_prime | 8 | BN_GENCB * | +| (BIGNUM *,BIGNUM *,const unsigned char **,size_t) | | ossl_decode_der_dsa_sig | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,const unsigned char **,size_t) | | ossl_decode_der_dsa_sig | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,const unsigned char **,size_t) | | ossl_decode_der_dsa_sig | 2 | const unsigned char ** | +| (BIGNUM *,BIGNUM *,const unsigned char **,size_t) | | ossl_decode_der_dsa_sig | 3 | size_t | +| (BIGNUM *,BIGNUM *,int,BN_CTX *) | | BN_X931_generate_Xpq | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,int,BN_CTX *) | | BN_X931_generate_Xpq | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,int,BN_CTX *) | | BN_X931_generate_Xpq | 2 | int | +| (BIGNUM *,BIGNUM *,int,BN_CTX *) | | BN_X931_generate_Xpq | 3 | BN_CTX * | +| (BIGNUM *,BIGNUM *,int,BN_CTX *) | | ossl_rsa_check_prime_factor | 0 | BIGNUM * | +| (BIGNUM *,BIGNUM *,int,BN_CTX *) | | ossl_rsa_check_prime_factor | 1 | BIGNUM * | +| (BIGNUM *,BIGNUM *,int,BN_CTX *) | | ossl_rsa_check_prime_factor | 2 | int | +| (BIGNUM *,BIGNUM *,int,BN_CTX *) | | ossl_rsa_check_prime_factor | 3 | BN_CTX * | +| (BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_convert | 0 | BIGNUM * | +| (BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_convert | 1 | BN_BLINDING * | +| (BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_convert | 2 | BN_CTX * | +| (BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_invert | 0 | BIGNUM * | +| (BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_invert | 1 | BN_BLINDING * | +| (BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_invert | 2 | BN_CTX * | +| (BIGNUM *,const BIGNUM *) | | BN_copy | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_copy | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_lshift1 | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_lshift1 | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_priv_rand_range | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_priv_rand_range | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_pseudo_rand_range | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_pseudo_rand_range | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_rand_range | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_rand_range | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_rshift1 | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *) | | BN_rshift1 | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_invert_ex | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_invert_ex | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_invert_ex | 2 | BN_BLINDING * | +| (BIGNUM *,const BIGNUM *,BN_BLINDING *,BN_CTX *) | | BN_BLINDING_invert_ex | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_are_coprime | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_are_coprime | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_are_coprime | 2 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_sqr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_sqr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_sqr | 2 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_sqr_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_sqr_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_sqr_fixed_top | 2 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_from_montgomery | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_from_montgomery | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_from_montgomery | 2 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_from_montgomery | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_to_montgomery | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_to_montgomery | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_to_montgomery | 2 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_to_montgomery | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_from_mont_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_from_mont_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_from_mont_fixed_top | 2 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_from_mont_fixed_top | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_to_mont_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_to_mont_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_to_mont_fixed_top | 2 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_to_mont_fixed_top | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_GF2m_add | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_GF2m_add | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_GF2m_add | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_GF2m_mod | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_GF2m_mod | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_GF2m_mod | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_add | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_add | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_add | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_lshift1_quick | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_lshift1_quick | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_lshift1_quick | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_sub | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_sub | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_sub | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_uadd | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_uadd | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_uadd | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_usub | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_usub | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_usub | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_inv | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_inv | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_inv | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_inv | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_solve_quad | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_solve_quad | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_solve_quad | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_solve_quad | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_sqr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_sqr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_sqr | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_sqr | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_sqrt | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_sqrt | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_sqrt | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_sqrt | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_exp | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_exp | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_exp | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_exp | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_gcd | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_gcd | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_gcd | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_gcd | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_inverse | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_inverse | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_inverse | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_inverse | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_lshift1 | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_lshift1 | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_lshift1 | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_lshift1 | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sqr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sqr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sqr | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sqr | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sqrt | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sqrt | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sqrt | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sqrt | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mul | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mul | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mul | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mul | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_192 | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_192 | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_192 | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_192 | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_224 | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_224 | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_224 | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_224 | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_256 | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_256 | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_256 | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_256 | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_384 | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_384 | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_384 | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_384 | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_521 | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_521 | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_521 | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nist_mod_521 | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nnmod | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nnmod | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nnmod | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_nnmod | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_mul_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_mul_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_mul_fixed_top | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | bn_mul_fixed_top | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *) | | int_bn_mod_inverse | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *) | | int_bn_mod_inverse | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *) | | int_bn_mod_inverse | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *) | | int_bn_mod_inverse | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,int *) | | int_bn_mod_inverse | 4 | int * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_mul_montgomery | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_mul_montgomery | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_mul_montgomery | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_mul_montgomery | 3 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_mul_montgomery | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_mul_mont_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_mul_mont_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_mul_mont_fixed_top | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_mul_mont_fixed_top | 3 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | bn_mul_mont_fixed_top | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *) | | BN_mod_mul_reciprocal | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *) | | BN_mod_mul_reciprocal | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *) | | BN_mod_mul_reciprocal | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *) | | BN_mod_mul_reciprocal | 3 | BN_RECP_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,BN_RECP_CTX *,BN_CTX *) | | BN_mod_mul_reciprocal | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_add_quick | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_add_quick | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_add_quick | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_add_quick | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_sub_quick | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_sub_quick | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_sub_quick | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | BN_mod_sub_quick | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | bn_mod_add_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | bn_mod_add_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | bn_mod_add_fixed_top | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | bn_mod_add_fixed_top | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | bn_mod_sub_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | bn_mod_sub_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | bn_mod_sub_fixed_top | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | bn_mod_sub_fixed_top | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_div | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_div | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_div | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_div | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_div | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_exp | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_exp | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_exp | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_exp | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_exp | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_mul | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_mul | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_mul | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_mul | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_GF2m_mod_mul | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_add | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_add | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_add | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_add | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_add | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp_recp | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp_recp | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp_recp | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp_recp | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp_recp | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp_simple | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp_simple | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp_simple | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp_simple | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_exp_simple | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_mul | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_mul | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_mul | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_mul | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_mul | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sub | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sub | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sub | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sub | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_mod_sub | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont | 5 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_consttime | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_consttime | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_consttime | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_consttime | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_consttime | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_consttime | 5 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | bn_mod_exp_mont_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | bn_mod_exp_mont_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | bn_mod_exp_mont_fixed_top | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | bn_mod_exp_mont_fixed_top | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | bn_mod_exp_mont_fixed_top | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | bn_mod_exp_mont_fixed_top | 5 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 4 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 5 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 6 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 7 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 8 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 9 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_MONT_CTX *,BN_CTX *) | | BN_mod_exp_mont_consttime_x2 | 10 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp2_mont | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp2_mont | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp2_mont | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp2_mont | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp2_mont | 4 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp2_mont | 5 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp2_mont | 6 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp2_mont | 7 | BN_MONT_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_div_arr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_div_arr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_div_arr | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_div_arr | 3 | const int[] | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_div_arr | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_exp_arr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_exp_arr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_exp_arr | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_exp_arr | 3 | const int[] | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_exp_arr | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_mul_arr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_mul_arr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_mul_arr | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_mul_arr | 3 | const int[] | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_mul_arr | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | BN_generate_dsa_nonce | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | BN_generate_dsa_nonce | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | BN_generate_dsa_nonce | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | BN_generate_dsa_nonce | 3 | const unsigned char * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | BN_generate_dsa_nonce | 4 | size_t | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | BN_generate_dsa_nonce | 5 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | ossl_bn_gen_dsa_nonce_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | ossl_bn_gen_dsa_nonce_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | ossl_bn_gen_dsa_nonce_fixed_top | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | ossl_bn_gen_dsa_nonce_fixed_top | 3 | const unsigned char * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | ossl_bn_gen_dsa_nonce_fixed_top | 4 | size_t | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,BN_CTX *) | | ossl_bn_gen_dsa_nonce_fixed_top | 5 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,const char *,OSSL_LIB_CTX *,const char *) | | ossl_gen_deterministic_nonce_rfc6979 | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,const char *,OSSL_LIB_CTX *,const char *) | | ossl_gen_deterministic_nonce_rfc6979 | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,const char *,OSSL_LIB_CTX *,const char *) | | ossl_gen_deterministic_nonce_rfc6979 | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,const char *,OSSL_LIB_CTX *,const char *) | | ossl_gen_deterministic_nonce_rfc6979 | 3 | const unsigned char * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,const char *,OSSL_LIB_CTX *,const char *) | | ossl_gen_deterministic_nonce_rfc6979 | 4 | size_t | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,const char *,OSSL_LIB_CTX *,const char *) | | ossl_gen_deterministic_nonce_rfc6979 | 5 | const char * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,const char *,OSSL_LIB_CTX *,const char *) | | ossl_gen_deterministic_nonce_rfc6979 | 6 | OSSL_LIB_CTX * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,const unsigned char *,size_t,const char *,OSSL_LIB_CTX *,const char *) | | ossl_gen_deterministic_nonce_rfc6979 | 7 | const char * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,int) | | ossl_rsa_check_pminusq_diff | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,int) | | ossl_rsa_check_pminusq_diff | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,int) | | ossl_rsa_check_pminusq_diff | 2 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const BIGNUM *,int) | | ossl_rsa_check_pminusq_diff | 3 | int | +| (BIGNUM *,const BIGNUM *,const int[]) | | BN_GF2m_mod_arr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const int[]) | | BN_GF2m_mod_arr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const int[]) | | BN_GF2m_mod_arr | 2 | const int[] | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_inv_arr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_inv_arr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_inv_arr | 2 | const int[] | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_inv_arr | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_solve_quad_arr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_solve_quad_arr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_solve_quad_arr | 2 | const int[] | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_solve_quad_arr | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_sqr_arr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_sqr_arr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_sqr_arr | 2 | const int[] | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_sqr_arr | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_sqrt_arr | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_sqrt_arr | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_sqrt_arr | 2 | const int[] | +| (BIGNUM *,const BIGNUM *,const int[],BN_CTX *) | | BN_GF2m_mod_sqrt_arr | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,int) | | BN_lshift | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,int) | | BN_lshift | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,int) | | BN_lshift | 2 | int | +| (BIGNUM *,const BIGNUM *,int) | | BN_rshift | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,int) | | BN_rshift | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,int) | | BN_rshift | 2 | int | +| (BIGNUM *,const BIGNUM *,int) | | BN_with_flags | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,int) | | BN_with_flags | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,int) | | BN_with_flags | 2 | int | +| (BIGNUM *,const BIGNUM *,int) | | bn_lshift_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,int) | | bn_lshift_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,int) | | bn_lshift_fixed_top | 2 | int | +| (BIGNUM *,const BIGNUM *,int) | | bn_rshift_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,int) | | bn_rshift_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,int) | | bn_rshift_fixed_top | 2 | int | +| (BIGNUM *,const BIGNUM *,int,BN_CTX *) | | BN_reciprocal | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,int,BN_CTX *) | | BN_reciprocal | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,int,BN_CTX *) | | BN_reciprocal | 2 | int | +| (BIGNUM *,const BIGNUM *,int,BN_CTX *) | | BN_reciprocal | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,int,const BIGNUM *) | | BN_mod_lshift_quick | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,int,const BIGNUM *) | | BN_mod_lshift_quick | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,int,const BIGNUM *) | | BN_mod_lshift_quick | 2 | int | +| (BIGNUM *,const BIGNUM *,int,const BIGNUM *) | | BN_mod_lshift_quick | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *) | | BN_mod_lshift | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *) | | BN_mod_lshift | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *) | | BN_mod_lshift | 2 | int | +| (BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *) | | BN_mod_lshift | 3 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,int,const BIGNUM *,BN_CTX *) | | BN_mod_lshift | 4 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | BN_priv_rand_range_ex | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | BN_priv_rand_range_ex | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | BN_priv_rand_range_ex | 2 | unsigned int | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | BN_priv_rand_range_ex | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | BN_rand_range_ex | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | BN_rand_range_ex | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | BN_rand_range_ex | 2 | unsigned int | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | BN_rand_range_ex | 3 | BN_CTX * | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | ossl_bn_priv_rand_range_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | ossl_bn_priv_rand_range_fixed_top | 1 | const BIGNUM * | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | ossl_bn_priv_rand_range_fixed_top | 2 | unsigned int | +| (BIGNUM *,const BIGNUM *,unsigned int,BN_CTX *) | | ossl_bn_priv_rand_range_fixed_top | 3 | BN_CTX * | +| (BIGNUM *,const unsigned long *,int) | | bn_set_static_words | 0 | BIGNUM * | +| (BIGNUM *,const unsigned long *,int) | | bn_set_static_words | 1 | const unsigned long * | +| (BIGNUM *,const unsigned long *,int) | | bn_set_static_words | 2 | int | +| (BIGNUM *,const unsigned long *,int) | | bn_set_words | 0 | BIGNUM * | +| (BIGNUM *,const unsigned long *,int) | | bn_set_words | 1 | const unsigned long * | +| (BIGNUM *,const unsigned long *,int) | | bn_set_words | 2 | int | +| (BIGNUM *,int) | | BN_clear_bit | 0 | BIGNUM * | +| (BIGNUM *,int) | | BN_clear_bit | 1 | int | +| (BIGNUM *,int) | | BN_mask_bits | 0 | BIGNUM * | +| (BIGNUM *,int) | | BN_mask_bits | 1 | int | +| (BIGNUM *,int) | | BN_set_bit | 0 | BIGNUM * | +| (BIGNUM *,int) | | BN_set_bit | 1 | int | +| (BIGNUM *,int) | | BN_set_flags | 0 | BIGNUM * | +| (BIGNUM *,int) | | BN_set_flags | 1 | int | +| (BIGNUM *,int) | | bn_expand2 | 0 | BIGNUM * | +| (BIGNUM *,int) | | bn_expand2 | 1 | int | +| (BIGNUM *,int) | | bn_wexpand | 0 | BIGNUM * | +| (BIGNUM *,int) | | bn_wexpand | 1 | int | +| (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 0 | BIGNUM * | +| (BIGNUM *,int) | | ossl_bn_mask_bits_fixed_top | 1 | int | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *) | | BN_generate_prime | 0 | BIGNUM * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *) | | BN_generate_prime | 1 | int | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *) | | BN_generate_prime | 2 | int | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *) | | BN_generate_prime | 3 | const BIGNUM * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *) | | BN_generate_prime | 4 | const BIGNUM * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *) | | BN_generate_prime | 5 | ..(*)(..) | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,..(*)(..),void *) | | BN_generate_prime | 6 | void * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | BN_generate_prime_ex | 0 | BIGNUM * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | BN_generate_prime_ex | 1 | int | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | BN_generate_prime_ex | 2 | int | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | BN_generate_prime_ex | 3 | const BIGNUM * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | BN_generate_prime_ex | 4 | const BIGNUM * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | BN_generate_prime_ex | 5 | BN_GENCB * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *) | | BN_generate_prime_ex2 | 0 | BIGNUM * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *) | | BN_generate_prime_ex2 | 1 | int | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *) | | BN_generate_prime_ex2 | 2 | int | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *) | | BN_generate_prime_ex2 | 3 | const BIGNUM * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *) | | BN_generate_prime_ex2 | 4 | const BIGNUM * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *) | | BN_generate_prime_ex2 | 5 | BN_GENCB * | +| (BIGNUM *,int,int,const BIGNUM *,const BIGNUM *,BN_GENCB *,BN_CTX *) | | BN_generate_prime_ex2 | 6 | BN_CTX * | +| (BIGNUM *,int,int,int) | | BN_bntest_rand | 0 | BIGNUM * | +| (BIGNUM *,int,int,int) | | BN_bntest_rand | 1 | int | +| (BIGNUM *,int,int,int) | | BN_bntest_rand | 2 | int | +| (BIGNUM *,int,int,int) | | BN_bntest_rand | 3 | int | +| (BIGNUM *,int,int,int) | | BN_priv_rand | 0 | BIGNUM * | +| (BIGNUM *,int,int,int) | | BN_priv_rand | 1 | int | +| (BIGNUM *,int,int,int) | | BN_priv_rand | 2 | int | +| (BIGNUM *,int,int,int) | | BN_priv_rand | 3 | int | +| (BIGNUM *,int,int,int) | | BN_pseudo_rand | 0 | BIGNUM * | +| (BIGNUM *,int,int,int) | | BN_pseudo_rand | 1 | int | +| (BIGNUM *,int,int,int) | | BN_pseudo_rand | 2 | int | +| (BIGNUM *,int,int,int) | | BN_pseudo_rand | 3 | int | +| (BIGNUM *,int,int,int) | | BN_rand | 0 | BIGNUM * | +| (BIGNUM *,int,int,int) | | BN_rand | 1 | int | +| (BIGNUM *,int,int,int) | | BN_rand | 2 | int | +| (BIGNUM *,int,int,int) | | BN_rand | 3 | int | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_priv_rand_ex | 0 | BIGNUM * | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_priv_rand_ex | 1 | int | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_priv_rand_ex | 2 | int | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_priv_rand_ex | 3 | int | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_priv_rand_ex | 4 | unsigned int | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_priv_rand_ex | 5 | BN_CTX * | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_rand_ex | 0 | BIGNUM * | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_rand_ex | 1 | int | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_rand_ex | 2 | int | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_rand_ex | 3 | int | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_rand_ex | 4 | unsigned int | +| (BIGNUM *,int,int,int,unsigned int,BN_CTX *) | | BN_rand_ex | 5 | BN_CTX * | +| (BIGNUM *,unsigned long) | | BN_add_word | 0 | BIGNUM * | +| (BIGNUM *,unsigned long) | | BN_add_word | 1 | unsigned long | +| (BIGNUM *,unsigned long) | | BN_div_word | 0 | BIGNUM * | +| (BIGNUM *,unsigned long) | | BN_div_word | 1 | unsigned long | +| (BIGNUM *,unsigned long) | | BN_set_word | 0 | BIGNUM * | +| (BIGNUM *,unsigned long) | | BN_set_word | 1 | unsigned long | +| (BIGNUM *,unsigned long) | | BN_sub_word | 0 | BIGNUM * | +| (BIGNUM *,unsigned long) | | BN_sub_word | 1 | unsigned long | +| (BIGNUM *,unsigned long,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_word | 0 | BIGNUM * | +| (BIGNUM *,unsigned long,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_word | 1 | unsigned long | +| (BIGNUM *,unsigned long,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_word | 2 | const BIGNUM * | +| (BIGNUM *,unsigned long,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_word | 3 | const BIGNUM * | +| (BIGNUM *,unsigned long,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_word | 4 | BN_CTX * | +| (BIGNUM *,unsigned long,const BIGNUM *,const BIGNUM *,BN_CTX *,BN_MONT_CTX *) | | BN_mod_exp_mont_word | 5 | BN_MONT_CTX * | +| (BIO *) | | BIO_dup_chain | 0 | BIO * | +| (BIO *) | | BIO_get_data | 0 | BIO * | +| (BIO *) | | BIO_get_init | 0 | BIO * | +| (BIO *) | | BIO_get_retry_reason | 0 | BIO * | +| (BIO *) | | BIO_get_shutdown | 0 | BIO * | +| (BIO *) | | BIO_next | 0 | BIO * | +| (BIO *) | | BIO_number_read | 0 | BIO * | +| (BIO *) | | BIO_number_written | 0 | BIO * | +| (BIO *) | | BIO_pop | 0 | BIO * | +| (BIO *) | | BIO_ssl_shutdown | 0 | BIO * | +| (BIO *) | | ossl_core_bio_new_from_bio | 0 | BIO * | +| (BIO *,ASN1_VALUE *,BIO *,int,const ASN1_ITEM *) | | i2d_ASN1_bio_stream | 0 | BIO * | +| (BIO *,ASN1_VALUE *,BIO *,int,const ASN1_ITEM *) | | i2d_ASN1_bio_stream | 1 | ASN1_VALUE * | +| (BIO *,ASN1_VALUE *,BIO *,int,const ASN1_ITEM *) | | i2d_ASN1_bio_stream | 2 | BIO * | +| (BIO *,ASN1_VALUE *,BIO *,int,const ASN1_ITEM *) | | i2d_ASN1_bio_stream | 3 | int | +| (BIO *,ASN1_VALUE *,BIO *,int,const ASN1_ITEM *) | | i2d_ASN1_bio_stream | 4 | const ASN1_ITEM * | +| (BIO *,ASN1_VALUE *,BIO *,int,const char *,const ASN1_ITEM *) | | PEM_write_bio_ASN1_stream | 0 | BIO * | +| (BIO *,ASN1_VALUE *,BIO *,int,const char *,const ASN1_ITEM *) | | PEM_write_bio_ASN1_stream | 1 | ASN1_VALUE * | +| (BIO *,ASN1_VALUE *,BIO *,int,const char *,const ASN1_ITEM *) | | PEM_write_bio_ASN1_stream | 2 | BIO * | +| (BIO *,ASN1_VALUE *,BIO *,int,const char *,const ASN1_ITEM *) | | PEM_write_bio_ASN1_stream | 3 | int | +| (BIO *,ASN1_VALUE *,BIO *,int,const char *,const ASN1_ITEM *) | | PEM_write_bio_ASN1_stream | 4 | const char * | +| (BIO *,ASN1_VALUE *,BIO *,int,const char *,const ASN1_ITEM *) | | PEM_write_bio_ASN1_stream | 5 | const ASN1_ITEM * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *) | | SMIME_write_ASN1 | 0 | BIO * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *) | | SMIME_write_ASN1 | 1 | ASN1_VALUE * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *) | | SMIME_write_ASN1 | 2 | BIO * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *) | | SMIME_write_ASN1 | 3 | int | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *) | | SMIME_write_ASN1 | 4 | int | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *) | | SMIME_write_ASN1 | 5 | int | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *) | | SMIME_write_ASN1 | 6 | stack_st_X509_ALGOR * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *) | | SMIME_write_ASN1 | 7 | const ASN1_ITEM * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | SMIME_write_ASN1_ex | 0 | BIO * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | SMIME_write_ASN1_ex | 1 | ASN1_VALUE * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | SMIME_write_ASN1_ex | 2 | BIO * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | SMIME_write_ASN1_ex | 3 | int | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | SMIME_write_ASN1_ex | 4 | int | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | SMIME_write_ASN1_ex | 5 | int | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | SMIME_write_ASN1_ex | 6 | stack_st_X509_ALGOR * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | SMIME_write_ASN1_ex | 7 | const ASN1_ITEM * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | SMIME_write_ASN1_ex | 8 | OSSL_LIB_CTX * | +| (BIO *,ASN1_VALUE *,BIO *,int,int,int,stack_st_X509_ALGOR *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | SMIME_write_ASN1_ex | 9 | const char * | +| (BIO *,ASN1_VALUE *,const ASN1_ITEM *) | | BIO_new_NDEF | 0 | BIO * | +| (BIO *,ASN1_VALUE *,const ASN1_ITEM *) | | BIO_new_NDEF | 1 | ASN1_VALUE * | +| (BIO *,ASN1_VALUE *,const ASN1_ITEM *) | | BIO_new_NDEF | 2 | const ASN1_ITEM * | +| (BIO *,BIO *) | | BIO_push | 0 | BIO * | +| (BIO *,BIO *) | | BIO_push | 1 | BIO * | +| (BIO *,BIO *) | | BIO_set_next | 0 | BIO * | +| (BIO *,BIO *) | | BIO_set_next | 1 | BIO * | +| (BIO *,BIO *) | | BIO_ssl_copy_session_id | 0 | BIO * | +| (BIO *,BIO *) | | BIO_ssl_copy_session_id | 1 | BIO * | +| (BIO *,BIO **) | | SMIME_read_CMS | 0 | BIO * | +| (BIO *,BIO **) | | SMIME_read_CMS | 1 | BIO ** | +| (BIO *,BIO **) | | SMIME_read_PKCS7 | 0 | BIO * | +| (BIO *,BIO **) | | SMIME_read_PKCS7 | 1 | BIO ** | +| (BIO *,BIO **,PKCS7 **) | | SMIME_read_PKCS7_ex | 0 | BIO * | +| (BIO *,BIO **,PKCS7 **) | | SMIME_read_PKCS7_ex | 1 | BIO ** | +| (BIO *,BIO **,PKCS7 **) | | SMIME_read_PKCS7_ex | 2 | PKCS7 ** | +| (BIO *,BIO **,const ASN1_ITEM *) | | SMIME_read_ASN1 | 0 | BIO * | +| (BIO *,BIO **,const ASN1_ITEM *) | | SMIME_read_ASN1 | 1 | BIO ** | +| (BIO *,BIO **,const ASN1_ITEM *) | | SMIME_read_ASN1 | 2 | const ASN1_ITEM * | +| (BIO *,BIO *,int) | | OSSL_HTTP_REQ_CTX_new | 0 | BIO * | +| (BIO *,BIO *,int) | | OSSL_HTTP_REQ_CTX_new | 1 | BIO * | +| (BIO *,BIO *,int) | | OSSL_HTTP_REQ_CTX_new | 2 | int | +| (BIO *,BIO *,int) | | SMIME_crlf_copy | 0 | BIO * | +| (BIO *,BIO *,int) | | SMIME_crlf_copy | 1 | BIO * | +| (BIO *,BIO *,int) | | SMIME_crlf_copy | 2 | int | +| (BIO *,BIO_callback_fn) | | BIO_set_callback | 0 | BIO * | +| (BIO *,BIO_callback_fn) | | BIO_set_callback | 1 | BIO_callback_fn | +| (BIO *,BIO_callback_fn_ex) | | BIO_set_callback_ex | 0 | BIO * | +| (BIO *,BIO_callback_fn_ex) | | BIO_set_callback_ex | 1 | BIO_callback_fn_ex | +| (BIO *,CMS_ContentInfo *) | | BIO_new_CMS | 0 | BIO * | +| (BIO *,CMS_ContentInfo *) | | BIO_new_CMS | 1 | CMS_ContentInfo * | +| (BIO *,CMS_ContentInfo *) | | i2d_CMS_bio | 0 | BIO * | +| (BIO *,CMS_ContentInfo *) | | i2d_CMS_bio | 1 | CMS_ContentInfo * | +| (BIO *,CMS_ContentInfo **) | | d2i_CMS_bio | 0 | BIO * | +| (BIO *,CMS_ContentInfo **) | | d2i_CMS_bio | 1 | CMS_ContentInfo ** | +| (BIO *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_bio_CMS | 0 | BIO * | +| (BIO *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_bio_CMS | 1 | CMS_ContentInfo ** | +| (BIO *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_bio_CMS | 2 | pem_password_cb * | +| (BIO *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_bio_CMS | 3 | void * | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | PEM_write_bio_CMS_stream | 0 | BIO * | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | PEM_write_bio_CMS_stream | 1 | CMS_ContentInfo * | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | PEM_write_bio_CMS_stream | 2 | BIO * | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | PEM_write_bio_CMS_stream | 3 | int | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | SMIME_write_CMS | 0 | BIO * | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | SMIME_write_CMS | 1 | CMS_ContentInfo * | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | SMIME_write_CMS | 2 | BIO * | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | SMIME_write_CMS | 3 | int | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | i2d_CMS_bio_stream | 0 | BIO * | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | i2d_CMS_bio_stream | 1 | CMS_ContentInfo * | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | i2d_CMS_bio_stream | 2 | BIO * | +| (BIO *,CMS_ContentInfo *,BIO *,int) | | i2d_CMS_bio_stream | 3 | int | +| (BIO *,DH **,pem_password_cb *,void *) | | PEM_read_bio_DHparams | 0 | BIO * | +| (BIO *,DH **,pem_password_cb *,void *) | | PEM_read_bio_DHparams | 1 | DH ** | +| (BIO *,DH **,pem_password_cb *,void *) | | PEM_read_bio_DHparams | 2 | pem_password_cb * | +| (BIO *,DH **,pem_password_cb *,void *) | | PEM_read_bio_DHparams | 3 | void * | +| (BIO *,DSA **) | | d2i_DSAPrivateKey_bio | 0 | BIO * | +| (BIO *,DSA **) | | d2i_DSAPrivateKey_bio | 1 | DSA ** | +| (BIO *,DSA **) | | d2i_DSA_PUBKEY_bio | 0 | BIO * | +| (BIO *,DSA **) | | d2i_DSA_PUBKEY_bio | 1 | DSA ** | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAPrivateKey | 0 | BIO * | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAPrivateKey | 1 | DSA ** | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAPrivateKey | 2 | pem_password_cb * | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAPrivateKey | 3 | void * | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSA_PUBKEY | 0 | BIO * | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSA_PUBKEY | 1 | DSA ** | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSA_PUBKEY | 2 | pem_password_cb * | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSA_PUBKEY | 3 | void * | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAparams | 0 | BIO * | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAparams | 1 | DSA ** | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAparams | 2 | pem_password_cb * | +| (BIO *,DSA **,pem_password_cb *,void *) | | PEM_read_bio_DSAparams | 3 | void * | +| (BIO *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_bio_ECPKParameters | 0 | BIO * | +| (BIO *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_bio_ECPKParameters | 1 | EC_GROUP ** | +| (BIO *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_bio_ECPKParameters | 2 | pem_password_cb * | +| (BIO *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_bio_ECPKParameters | 3 | void * | +| (BIO *,EC_KEY **) | | d2i_ECPrivateKey_bio | 0 | BIO * | +| (BIO *,EC_KEY **) | | d2i_ECPrivateKey_bio | 1 | EC_KEY ** | +| (BIO *,EC_KEY **) | | d2i_EC_PUBKEY_bio | 0 | BIO * | +| (BIO *,EC_KEY **) | | d2i_EC_PUBKEY_bio | 1 | EC_KEY ** | +| (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_ECPrivateKey | 0 | BIO * | +| (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_ECPrivateKey | 1 | EC_KEY ** | +| (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_ECPrivateKey | 2 | pem_password_cb * | +| (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_ECPrivateKey | 3 | void * | +| (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_EC_PUBKEY | 0 | BIO * | +| (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_EC_PUBKEY | 1 | EC_KEY ** | +| (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_EC_PUBKEY | 2 | pem_password_cb * | +| (BIO *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_bio_EC_PUBKEY | 3 | void * | +| (BIO *,EVP_PKEY **) | | PEM_read_bio_Parameters | 0 | BIO * | +| (BIO *,EVP_PKEY **) | | PEM_read_bio_Parameters | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **) | | d2i_PUBKEY_bio | 0 | BIO * | +| (BIO *,EVP_PKEY **) | | d2i_PUBKEY_bio | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **) | | d2i_PrivateKey_bio | 0 | BIO * | +| (BIO *,EVP_PKEY **) | | d2i_PrivateKey_bio | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_Parameters_ex | 0 | BIO * | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_Parameters_ex | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_Parameters_ex | 2 | OSSL_LIB_CTX * | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_Parameters_ex | 3 | const char * | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex_bio | 0 | BIO * | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex_bio | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex_bio | 2 | OSSL_LIB_CTX * | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex_bio | 3 | const char * | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex_bio | 0 | BIO * | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex_bio | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex_bio | 2 | OSSL_LIB_CTX * | +| (BIO *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex_bio | 3 | const char * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PUBKEY | 0 | BIO * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PUBKEY | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PUBKEY | 2 | pem_password_cb * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PUBKEY | 3 | void * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PrivateKey | 0 | BIO * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PrivateKey | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PrivateKey | 2 | pem_password_cb * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_bio_PrivateKey | 3 | void * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_bio | 0 | BIO * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_bio | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_bio | 2 | pem_password_cb * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_bio | 3 | void * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PUBKEY_ex | 0 | BIO * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PUBKEY_ex | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PUBKEY_ex | 2 | pem_password_cb * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PUBKEY_ex | 3 | void * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PUBKEY_ex | 4 | OSSL_LIB_CTX * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PUBKEY_ex | 5 | const char * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PrivateKey_ex | 0 | BIO * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PrivateKey_ex | 1 | EVP_PKEY ** | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PrivateKey_ex | 2 | pem_password_cb * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PrivateKey_ex | 3 | void * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PrivateKey_ex | 4 | OSSL_LIB_CTX * | +| (BIO *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_bio_PrivateKey_ex | 5 | const char * | +| (BIO *,GENERAL_NAMES *,int) | | OSSL_GENERAL_NAMES_print | 0 | BIO * | +| (BIO *,GENERAL_NAMES *,int) | | OSSL_GENERAL_NAMES_print | 1 | GENERAL_NAMES * | +| (BIO *,GENERAL_NAMES *,int) | | OSSL_GENERAL_NAMES_print | 2 | int | +| (BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_bio_NETSCAPE_CERT_SEQUENCE | 0 | BIO * | +| (BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_bio_NETSCAPE_CERT_SEQUENCE | 1 | NETSCAPE_CERT_SEQUENCE ** | +| (BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_bio_NETSCAPE_CERT_SEQUENCE | 2 | pem_password_cb * | +| (BIO *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_bio_NETSCAPE_CERT_SEQUENCE | 3 | void * | +| (BIO *,NETSCAPE_SPKI *) | | NETSCAPE_SPKI_print | 0 | BIO * | +| (BIO *,NETSCAPE_SPKI *) | | NETSCAPE_SPKI_print | 1 | NETSCAPE_SPKI * | +| (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 0 | BIO * | +| (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 1 | OCSP_REQUEST * | +| (BIO *,OCSP_REQUEST *,unsigned long) | | OCSP_REQUEST_print | 2 | unsigned long | +| (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 0 | BIO * | +| (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 1 | OCSP_RESPONSE * | +| (BIO *,OCSP_RESPONSE *,unsigned long) | | OCSP_RESPONSE_print | 2 | unsigned long | +| (BIO *,OSSL_CMP_MSG **) | | d2i_OSSL_CMP_MSG_bio | 0 | BIO * | +| (BIO *,OSSL_CMP_MSG **) | | d2i_OSSL_CMP_MSG_bio | 1 | OSSL_CMP_MSG ** | +| (BIO *,PKCS7 *) | | BIO_new_PKCS7 | 0 | BIO * | +| (BIO *,PKCS7 *) | | BIO_new_PKCS7 | 1 | PKCS7 * | +| (BIO *,PKCS7 **) | | d2i_PKCS7_bio | 0 | BIO * | +| (BIO *,PKCS7 **) | | d2i_PKCS7_bio | 1 | PKCS7 ** | +| (BIO *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_bio_PKCS7 | 0 | BIO * | +| (BIO *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_bio_PKCS7 | 1 | PKCS7 ** | +| (BIO *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_bio_PKCS7 | 2 | pem_password_cb * | +| (BIO *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_bio_PKCS7 | 3 | void * | +| (BIO *,PKCS7 *,BIO *,int) | | PEM_write_bio_PKCS7_stream | 0 | BIO * | +| (BIO *,PKCS7 *,BIO *,int) | | PEM_write_bio_PKCS7_stream | 1 | PKCS7 * | +| (BIO *,PKCS7 *,BIO *,int) | | PEM_write_bio_PKCS7_stream | 2 | BIO * | +| (BIO *,PKCS7 *,BIO *,int) | | PEM_write_bio_PKCS7_stream | 3 | int | +| (BIO *,PKCS7 *,BIO *,int) | | SMIME_write_PKCS7 | 0 | BIO * | +| (BIO *,PKCS7 *,BIO *,int) | | SMIME_write_PKCS7 | 1 | PKCS7 * | +| (BIO *,PKCS7 *,BIO *,int) | | SMIME_write_PKCS7 | 2 | BIO * | +| (BIO *,PKCS7 *,BIO *,int) | | SMIME_write_PKCS7 | 3 | int | +| (BIO *,PKCS7 *,BIO *,int) | | i2d_PKCS7_bio_stream | 0 | BIO * | +| (BIO *,PKCS7 *,BIO *,int) | | i2d_PKCS7_bio_stream | 1 | PKCS7 * | +| (BIO *,PKCS7 *,BIO *,int) | | i2d_PKCS7_bio_stream | 2 | BIO * | +| (BIO *,PKCS7 *,BIO *,int) | | i2d_PKCS7_bio_stream | 3 | int | +| (BIO *,PKCS7 *,PKCS7_SIGNER_INFO *,X509 *) | | PKCS7_signatureVerify | 0 | BIO * | +| (BIO *,PKCS7 *,PKCS7_SIGNER_INFO *,X509 *) | | PKCS7_signatureVerify | 1 | PKCS7 * | +| (BIO *,PKCS7 *,PKCS7_SIGNER_INFO *,X509 *) | | PKCS7_signatureVerify | 2 | PKCS7_SIGNER_INFO * | +| (BIO *,PKCS7 *,PKCS7_SIGNER_INFO *,X509 *) | | PKCS7_signatureVerify | 3 | X509 * | +| (BIO *,PKCS8_PRIV_KEY_INFO **) | | d2i_PKCS8_PRIV_KEY_INFO_bio | 0 | BIO * | +| (BIO *,PKCS8_PRIV_KEY_INFO **) | | d2i_PKCS8_PRIV_KEY_INFO_bio | 1 | PKCS8_PRIV_KEY_INFO ** | +| (BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8_PRIV_KEY_INFO | 0 | BIO * | +| (BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8_PRIV_KEY_INFO | 1 | PKCS8_PRIV_KEY_INFO ** | +| (BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8_PRIV_KEY_INFO | 2 | pem_password_cb * | +| (BIO *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8_PRIV_KEY_INFO | 3 | void * | +| (BIO *,PKCS12 **) | | d2i_PKCS12_bio | 0 | BIO * | +| (BIO *,PKCS12 **) | | d2i_PKCS12_bio | 1 | PKCS12 ** | +| (BIO *,RSA **) | | d2i_RSAPrivateKey_bio | 0 | BIO * | +| (BIO *,RSA **) | | d2i_RSAPrivateKey_bio | 1 | RSA ** | +| (BIO *,RSA **) | | d2i_RSAPublicKey_bio | 0 | BIO * | +| (BIO *,RSA **) | | d2i_RSAPublicKey_bio | 1 | RSA ** | +| (BIO *,RSA **) | | d2i_RSA_PUBKEY_bio | 0 | BIO * | +| (BIO *,RSA **) | | d2i_RSA_PUBKEY_bio | 1 | RSA ** | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPrivateKey | 0 | BIO * | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPrivateKey | 1 | RSA ** | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPrivateKey | 2 | pem_password_cb * | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPrivateKey | 3 | void * | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPublicKey | 0 | BIO * | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPublicKey | 1 | RSA ** | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPublicKey | 2 | pem_password_cb * | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSAPublicKey | 3 | void * | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSA_PUBKEY | 0 | BIO * | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSA_PUBKEY | 1 | RSA ** | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSA_PUBKEY | 2 | pem_password_cb * | +| (BIO *,RSA **,pem_password_cb *,void *) | | PEM_read_bio_RSA_PUBKEY | 3 | void * | +| (BIO *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_bio_SSL_SESSION | 0 | BIO * | +| (BIO *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_bio_SSL_SESSION | 1 | SSL_SESSION ** | +| (BIO *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_bio_SSL_SESSION | 2 | pem_password_cb * | +| (BIO *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_bio_SSL_SESSION | 3 | void * | +| (BIO *,TS_MSG_IMPRINT **) | | d2i_TS_MSG_IMPRINT_bio | 0 | BIO * | +| (BIO *,TS_MSG_IMPRINT **) | | d2i_TS_MSG_IMPRINT_bio | 1 | TS_MSG_IMPRINT ** | +| (BIO *,TS_REQ *) | | TS_REQ_print_bio | 0 | BIO * | +| (BIO *,TS_REQ *) | | TS_REQ_print_bio | 1 | TS_REQ * | +| (BIO *,TS_REQ **) | | d2i_TS_REQ_bio | 0 | BIO * | +| (BIO *,TS_REQ **) | | d2i_TS_REQ_bio | 1 | TS_REQ ** | +| (BIO *,TS_RESP *) | | TS_RESP_print_bio | 0 | BIO * | +| (BIO *,TS_RESP *) | | TS_RESP_print_bio | 1 | TS_RESP * | +| (BIO *,TS_RESP **) | | d2i_TS_RESP_bio | 0 | BIO * | +| (BIO *,TS_RESP **) | | d2i_TS_RESP_bio | 1 | TS_RESP ** | +| (BIO *,TS_TST_INFO *) | | TS_TST_INFO_print_bio | 0 | BIO * | +| (BIO *,TS_TST_INFO *) | | TS_TST_INFO_print_bio | 1 | TS_TST_INFO * | +| (BIO *,TS_TST_INFO **) | | d2i_TS_TST_INFO_bio | 0 | BIO * | +| (BIO *,TS_TST_INFO **) | | d2i_TS_TST_INFO_bio | 1 | TS_TST_INFO ** | +| (BIO *,X509 *) | | X509_print | 0 | BIO * | +| (BIO *,X509 *) | | X509_print | 1 | X509 * | +| (BIO *,X509 **) | | d2i_X509_bio | 0 | BIO * | +| (BIO *,X509 **) | | d2i_X509_bio | 1 | X509 ** | +| (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509 | 0 | BIO * | +| (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509 | 1 | X509 ** | +| (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509 | 2 | pem_password_cb * | +| (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509 | 3 | void * | +| (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509_AUX | 0 | BIO * | +| (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509_AUX | 1 | X509 ** | +| (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509_AUX | 2 | pem_password_cb * | +| (BIO *,X509 **,pem_password_cb *,void *) | | PEM_read_bio_X509_AUX | 3 | void * | +| (BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | ossl_cms_sign_encrypt | 0 | BIO * | +| (BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | ossl_cms_sign_encrypt | 1 | X509 * | +| (BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | ossl_cms_sign_encrypt | 2 | stack_st_X509 * | +| (BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | ossl_cms_sign_encrypt | 3 | EVP_PKEY * | +| (BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | ossl_cms_sign_encrypt | 4 | unsigned int | +| (BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | ossl_cms_sign_encrypt | 5 | stack_st_X509 * | +| (BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | ossl_cms_sign_encrypt | 6 | const EVP_CIPHER * | +| (BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | ossl_cms_sign_encrypt | 7 | unsigned int | +| (BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | ossl_cms_sign_encrypt | 8 | OSSL_LIB_CTX * | +| (BIO *,X509 *,stack_st_X509 *,EVP_PKEY *,unsigned int,stack_st_X509 *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | ossl_cms_sign_encrypt | 9 | const char * | +| (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 0 | BIO * | +| (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 1 | X509 * | +| (BIO *,X509 *,unsigned long) | | ossl_x509_print_ex_brief | 2 | unsigned long | +| (BIO *,X509 *,unsigned long,unsigned long) | | X509_print_ex | 0 | BIO * | +| (BIO *,X509 *,unsigned long,unsigned long) | | X509_print_ex | 1 | X509 * | +| (BIO *,X509 *,unsigned long,unsigned long) | | X509_print_ex | 2 | unsigned long | +| (BIO *,X509 *,unsigned long,unsigned long) | | X509_print_ex | 3 | unsigned long | +| (BIO *,X509_ACERT *) | | X509_ACERT_print | 0 | BIO * | +| (BIO *,X509_ACERT *) | | X509_ACERT_print | 1 | X509_ACERT * | +| (BIO *,X509_ACERT **) | | d2i_X509_ACERT_bio | 0 | BIO * | +| (BIO *,X509_ACERT **) | | d2i_X509_ACERT_bio | 1 | X509_ACERT ** | +| (BIO *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_bio_X509_ACERT | 0 | BIO * | +| (BIO *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_bio_X509_ACERT | 1 | X509_ACERT ** | +| (BIO *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_bio_X509_ACERT | 2 | pem_password_cb * | +| (BIO *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_bio_X509_ACERT | 3 | void * | +| (BIO *,X509_ACERT *,unsigned long,unsigned long) | | X509_ACERT_print_ex | 0 | BIO * | +| (BIO *,X509_ACERT *,unsigned long,unsigned long) | | X509_ACERT_print_ex | 1 | X509_ACERT * | +| (BIO *,X509_ACERT *,unsigned long,unsigned long) | | X509_ACERT_print_ex | 2 | unsigned long | +| (BIO *,X509_ACERT *,unsigned long,unsigned long) | | X509_ACERT_print_ex | 3 | unsigned long | +| (BIO *,X509_CRL *) | | X509_CRL_print | 0 | BIO * | +| (BIO *,X509_CRL *) | | X509_CRL_print | 1 | X509_CRL * | +| (BIO *,X509_CRL **) | | d2i_X509_CRL_bio | 0 | BIO * | +| (BIO *,X509_CRL **) | | d2i_X509_CRL_bio | 1 | X509_CRL ** | +| (BIO *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_bio_X509_CRL | 0 | BIO * | +| (BIO *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_bio_X509_CRL | 1 | X509_CRL ** | +| (BIO *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_bio_X509_CRL | 2 | pem_password_cb * | +| (BIO *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_bio_X509_CRL | 3 | void * | +| (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 0 | BIO * | +| (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 1 | X509_CRL * | +| (BIO *,X509_CRL *,unsigned long) | | X509_CRL_print_ex | 2 | unsigned long | +| (BIO *,X509_EXTENSION *,unsigned long,int) | | X509V3_EXT_print | 0 | BIO * | +| (BIO *,X509_EXTENSION *,unsigned long,int) | | X509V3_EXT_print | 1 | X509_EXTENSION * | +| (BIO *,X509_EXTENSION *,unsigned long,int) | | X509V3_EXT_print | 2 | unsigned long | +| (BIO *,X509_EXTENSION *,unsigned long,int) | | X509V3_EXT_print | 3 | int | +| (BIO *,X509_PUBKEY **) | | d2i_X509_PUBKEY_bio | 0 | BIO * | +| (BIO *,X509_PUBKEY **) | | d2i_X509_PUBKEY_bio | 1 | X509_PUBKEY ** | +| (BIO *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_bio_X509_PUBKEY | 0 | BIO * | +| (BIO *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_bio_X509_PUBKEY | 1 | X509_PUBKEY ** | +| (BIO *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_bio_X509_PUBKEY | 2 | pem_password_cb * | +| (BIO *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_bio_X509_PUBKEY | 3 | void * | +| (BIO *,X509_REQ *) | | X509_REQ_print | 0 | BIO * | +| (BIO *,X509_REQ *) | | X509_REQ_print | 1 | X509_REQ * | +| (BIO *,X509_REQ **) | | d2i_X509_REQ_bio | 0 | BIO * | +| (BIO *,X509_REQ **) | | d2i_X509_REQ_bio | 1 | X509_REQ ** | +| (BIO *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_bio_X509_REQ | 0 | BIO * | +| (BIO *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_bio_X509_REQ | 1 | X509_REQ ** | +| (BIO *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_bio_X509_REQ | 2 | pem_password_cb * | +| (BIO *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_bio_X509_REQ | 3 | void * | +| (BIO *,X509_REQ *,unsigned long,unsigned long) | | X509_REQ_print_ex | 0 | BIO * | +| (BIO *,X509_REQ *,unsigned long,unsigned long) | | X509_REQ_print_ex | 1 | X509_REQ * | +| (BIO *,X509_REQ *,unsigned long,unsigned long) | | X509_REQ_print_ex | 2 | unsigned long | +| (BIO *,X509_REQ *,unsigned long,unsigned long) | | X509_REQ_print_ex | 3 | unsigned long | +| (BIO *,X509_SIG **) | | d2i_PKCS8_bio | 0 | BIO * | +| (BIO *,X509_SIG **) | | d2i_PKCS8_bio | 1 | X509_SIG ** | +| (BIO *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8 | 0 | BIO * | +| (BIO *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8 | 1 | X509_SIG ** | +| (BIO *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8 | 2 | pem_password_cb * | +| (BIO *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_bio_PKCS8 | 3 | void * | +| (BIO *,char *) | | BIO_set_callback_arg | 0 | BIO * | +| (BIO *,char *) | | BIO_set_callback_arg | 1 | char * | +| (BIO *,char **,char **,unsigned char **,long *) | | PEM_read_bio | 0 | BIO * | +| (BIO *,char **,char **,unsigned char **,long *) | | PEM_read_bio | 1 | char ** | +| (BIO *,char **,char **,unsigned char **,long *) | | PEM_read_bio | 2 | char ** | +| (BIO *,char **,char **,unsigned char **,long *) | | PEM_read_bio | 3 | unsigned char ** | +| (BIO *,char **,char **,unsigned char **,long *) | | PEM_read_bio | 4 | long * | +| (BIO *,char **,char **,unsigned char **,long *,unsigned int) | | PEM_read_bio_ex | 0 | BIO * | +| (BIO *,char **,char **,unsigned char **,long *,unsigned int) | | PEM_read_bio_ex | 1 | char ** | +| (BIO *,char **,char **,unsigned char **,long *,unsigned int) | | PEM_read_bio_ex | 2 | char ** | +| (BIO *,char **,char **,unsigned char **,long *,unsigned int) | | PEM_read_bio_ex | 3 | unsigned char ** | +| (BIO *,char **,char **,unsigned char **,long *,unsigned int) | | PEM_read_bio_ex | 4 | long * | +| (BIO *,char **,char **,unsigned char **,long *,unsigned int) | | PEM_read_bio_ex | 5 | unsigned int | +| (BIO *,char *,int) | | BIO_get_line | 0 | BIO * | +| (BIO *,char *,int) | | BIO_get_line | 1 | char * | +| (BIO *,char *,int) | | BIO_get_line | 2 | int | +| (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 0 | BIO * | +| (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 1 | const ASN1_STRING * | +| (BIO *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex | 2 | unsigned long | +| (BIO *,const ASN1_VALUE *,int,const ASN1_ITEM *,const ASN1_PCTX *) | | ASN1_item_print | 0 | BIO * | +| (BIO *,const ASN1_VALUE *,int,const ASN1_ITEM *,const ASN1_PCTX *) | | ASN1_item_print | 1 | const ASN1_VALUE * | +| (BIO *,const ASN1_VALUE *,int,const ASN1_ITEM *,const ASN1_PCTX *) | | ASN1_item_print | 2 | int | +| (BIO *,const ASN1_VALUE *,int,const ASN1_ITEM *,const ASN1_PCTX *) | | ASN1_item_print | 3 | const ASN1_ITEM * | +| (BIO *,const ASN1_VALUE *,int,const ASN1_ITEM *,const ASN1_PCTX *) | | ASN1_item_print | 4 | const ASN1_PCTX * | +| (BIO *,const BIGNUM *,const char *,int,unsigned char *) | | print_bignum_var | 0 | BIO * | +| (BIO *,const BIGNUM *,const char *,int,unsigned char *) | | print_bignum_var | 1 | const BIGNUM * | +| (BIO *,const BIGNUM *,const char *,int,unsigned char *) | | print_bignum_var | 2 | const char * | +| (BIO *,const BIGNUM *,const char *,int,unsigned char *) | | print_bignum_var | 3 | int | +| (BIO *,const BIGNUM *,const char *,int,unsigned char *) | | print_bignum_var | 4 | unsigned char * | +| (BIO *,const CMS_ContentInfo *) | | PEM_write_bio_CMS | 0 | BIO * | +| (BIO *,const CMS_ContentInfo *) | | PEM_write_bio_CMS | 1 | const CMS_ContentInfo * | +| (BIO *,const CMS_ContentInfo *,int,const ASN1_PCTX *) | | CMS_ContentInfo_print_ctx | 0 | BIO * | +| (BIO *,const CMS_ContentInfo *,int,const ASN1_PCTX *) | | CMS_ContentInfo_print_ctx | 1 | const CMS_ContentInfo * | +| (BIO *,const CMS_ContentInfo *,int,const ASN1_PCTX *) | | CMS_ContentInfo_print_ctx | 2 | int | +| (BIO *,const CMS_ContentInfo *,int,const ASN1_PCTX *) | | CMS_ContentInfo_print_ctx | 3 | const ASN1_PCTX * | +| (BIO *,const DH *) | | PEM_write_bio_DHparams | 0 | BIO * | +| (BIO *,const DH *) | | PEM_write_bio_DHparams | 1 | const DH * | +| (BIO *,const DH *) | | PEM_write_bio_DHxparams | 0 | BIO * | +| (BIO *,const DH *) | | PEM_write_bio_DHxparams | 1 | const DH * | +| (BIO *,const DSA *) | | DSAparams_print | 0 | BIO * | +| (BIO *,const DSA *) | | DSAparams_print | 1 | const DSA * | +| (BIO *,const DSA *) | | PEM_write_bio_DSA_PUBKEY | 0 | BIO * | +| (BIO *,const DSA *) | | PEM_write_bio_DSA_PUBKEY | 1 | const DSA * | +| (BIO *,const DSA *) | | PEM_write_bio_DSAparams | 0 | BIO * | +| (BIO *,const DSA *) | | PEM_write_bio_DSAparams | 1 | const DSA * | +| (BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_DSAPrivateKey | 0 | BIO * | +| (BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_DSAPrivateKey | 1 | const DSA * | +| (BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_DSAPrivateKey | 2 | const EVP_CIPHER * | +| (BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_DSAPrivateKey | 3 | const unsigned char * | +| (BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_DSAPrivateKey | 4 | int | +| (BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_DSAPrivateKey | 5 | pem_password_cb * | +| (BIO *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_DSAPrivateKey | 6 | void * | +| (BIO *,const DSA *,int) | | DSA_print | 0 | BIO * | +| (BIO *,const DSA *,int) | | DSA_print | 1 | const DSA * | +| (BIO *,const DSA *,int) | | DSA_print | 2 | int | +| (BIO *,const EC_GROUP *) | | PEM_write_bio_ECPKParameters | 0 | BIO * | +| (BIO *,const EC_GROUP *) | | PEM_write_bio_ECPKParameters | 1 | const EC_GROUP * | +| (BIO *,const EC_KEY *) | | PEM_write_bio_EC_PUBKEY | 0 | BIO * | +| (BIO *,const EC_KEY *) | | PEM_write_bio_EC_PUBKEY | 1 | const EC_KEY * | +| (BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_ECPrivateKey | 0 | BIO * | +| (BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_ECPrivateKey | 1 | const EC_KEY * | +| (BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_ECPrivateKey | 2 | const EVP_CIPHER * | +| (BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_ECPrivateKey | 3 | const unsigned char * | +| (BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_ECPrivateKey | 4 | int | +| (BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_ECPrivateKey | 5 | pem_password_cb * | +| (BIO *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_ECPrivateKey | 6 | void * | +| (BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EncryptedData_encrypt_ex | 0 | BIO * | +| (BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EncryptedData_encrypt_ex | 1 | const EVP_CIPHER * | +| (BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EncryptedData_encrypt_ex | 2 | const unsigned char * | +| (BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EncryptedData_encrypt_ex | 3 | size_t | +| (BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EncryptedData_encrypt_ex | 4 | unsigned int | +| (BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EncryptedData_encrypt_ex | 5 | OSSL_LIB_CTX * | +| (BIO *,const EVP_CIPHER *,const unsigned char *,size_t,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EncryptedData_encrypt_ex | 6 | const char * | +| (BIO *,const EVP_MD *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_digest_create_ex | 0 | BIO * | +| (BIO *,const EVP_MD *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_digest_create_ex | 1 | const EVP_MD * | +| (BIO *,const EVP_MD *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_digest_create_ex | 2 | unsigned int | +| (BIO *,const EVP_MD *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_digest_create_ex | 3 | OSSL_LIB_CTX * | +| (BIO *,const EVP_MD *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_digest_create_ex | 4 | const char * | +| (BIO *,const EVP_PKEY *) | | PEM_write_bio_PUBKEY | 0 | BIO * | +| (BIO *,const EVP_PKEY *) | | PEM_write_bio_PUBKEY | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *) | | PEM_write_bio_Parameters | 0 | BIO * | +| (BIO *,const EVP_PKEY *) | | PEM_write_bio_Parameters | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PUBKEY_ex | 0 | BIO * | +| (BIO *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PUBKEY_ex | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PUBKEY_ex | 2 | OSSL_LIB_CTX * | +| (BIO *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PUBKEY_ex | 3 | const char * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey | 0 | BIO * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey | 2 | const EVP_CIPHER * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey | 3 | const char * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey | 4 | int | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey | 5 | pem_password_cb * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey | 6 | void * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_bio | 0 | BIO * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_bio | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_bio | 2 | const EVP_CIPHER * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_bio | 3 | const char * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_bio | 4 | int | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_bio | 5 | pem_password_cb * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_bio | 6 | void * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey | 0 | BIO * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey | 2 | const EVP_CIPHER * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey | 3 | const unsigned char * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey | 4 | int | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey | 5 | pem_password_cb * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey | 6 | void * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey_traditional | 0 | BIO * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey_traditional | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey_traditional | 2 | const EVP_CIPHER * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey_traditional | 3 | const unsigned char * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey_traditional | 4 | int | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey_traditional | 5 | pem_password_cb * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_PrivateKey_traditional | 6 | void * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PrivateKey_ex | 0 | BIO * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PrivateKey_ex | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PrivateKey_ex | 2 | const EVP_CIPHER * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PrivateKey_ex | 3 | const unsigned char * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PrivateKey_ex | 4 | int | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PrivateKey_ex | 5 | pem_password_cb * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PrivateKey_ex | 6 | void * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PrivateKey_ex | 7 | OSSL_LIB_CTX * | +| (BIO *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_bio_PrivateKey_ex | 8 | const char * | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_params | 0 | BIO * | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_params | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_params | 2 | int | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_params | 3 | ASN1_PCTX * | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_private | 0 | BIO * | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_private | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_private | 2 | int | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_private | 3 | ASN1_PCTX * | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_public | 0 | BIO * | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_public | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_public | 2 | int | +| (BIO *,const EVP_PKEY *,int,ASN1_PCTX *) | | EVP_PKEY_print_public | 3 | ASN1_PCTX * | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey_nid | 0 | BIO * | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey_nid | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey_nid | 2 | int | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey_nid | 3 | const char * | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey_nid | 4 | int | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey_nid | 5 | pem_password_cb * | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_bio_PKCS8PrivateKey_nid | 6 | void * | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_bio | 0 | BIO * | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_bio | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_bio | 2 | int | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_bio | 3 | const char * | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_bio | 4 | int | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_bio | 5 | pem_password_cb * | +| (BIO *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_bio | 6 | void * | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *) | | i2b_PVK_bio | 0 | BIO * | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *) | | i2b_PVK_bio | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *) | | i2b_PVK_bio | 2 | int | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *) | | i2b_PVK_bio | 3 | pem_password_cb * | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *) | | i2b_PVK_bio | 4 | void * | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | i2b_PVK_bio_ex | 0 | BIO * | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | i2b_PVK_bio_ex | 1 | const EVP_PKEY * | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | i2b_PVK_bio_ex | 2 | int | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | i2b_PVK_bio_ex | 3 | pem_password_cb * | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | i2b_PVK_bio_ex | 4 | void * | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | i2b_PVK_bio_ex | 5 | OSSL_LIB_CTX * | +| (BIO *,const EVP_PKEY *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | i2b_PVK_bio_ex | 6 | const char * | +| (BIO *,const NETSCAPE_CERT_SEQUENCE *) | | PEM_write_bio_NETSCAPE_CERT_SEQUENCE | 0 | BIO * | +| (BIO *,const NETSCAPE_CERT_SEQUENCE *) | | PEM_write_bio_NETSCAPE_CERT_SEQUENCE | 1 | const NETSCAPE_CERT_SEQUENCE * | +| (BIO *,const PKCS7 *) | | PEM_write_bio_PKCS7 | 0 | BIO * | +| (BIO *,const PKCS7 *) | | PEM_write_bio_PKCS7 | 1 | const PKCS7 * | +| (BIO *,const PKCS7 *) | | i2d_PKCS7_bio | 0 | BIO * | +| (BIO *,const PKCS7 *) | | i2d_PKCS7_bio | 1 | const PKCS7 * | +| (BIO *,const PKCS7 *,int,const ASN1_PCTX *) | | PKCS7_print_ctx | 0 | BIO * | +| (BIO *,const PKCS7 *,int,const ASN1_PCTX *) | | PKCS7_print_ctx | 1 | const PKCS7 * | +| (BIO *,const PKCS7 *,int,const ASN1_PCTX *) | | PKCS7_print_ctx | 2 | int | +| (BIO *,const PKCS7 *,int,const ASN1_PCTX *) | | PKCS7_print_ctx | 3 | const ASN1_PCTX * | +| (BIO *,const PKCS8_PRIV_KEY_INFO *) | | PEM_write_bio_PKCS8_PRIV_KEY_INFO | 0 | BIO * | +| (BIO *,const PKCS8_PRIV_KEY_INFO *) | | PEM_write_bio_PKCS8_PRIV_KEY_INFO | 1 | const PKCS8_PRIV_KEY_INFO * | +| (BIO *,const PKCS12 *) | | i2d_PKCS12_bio | 0 | BIO * | +| (BIO *,const PKCS12 *) | | i2d_PKCS12_bio | 1 | const PKCS12 * | +| (BIO *,const RSA *) | | PEM_write_bio_RSAPublicKey | 0 | BIO * | +| (BIO *,const RSA *) | | PEM_write_bio_RSAPublicKey | 1 | const RSA * | +| (BIO *,const RSA *) | | PEM_write_bio_RSA_PUBKEY | 0 | BIO * | +| (BIO *,const RSA *) | | PEM_write_bio_RSA_PUBKEY | 1 | const RSA * | +| (BIO *,const RSA *) | | i2d_RSAPrivateKey_bio | 0 | BIO * | +| (BIO *,const RSA *) | | i2d_RSAPrivateKey_bio | 1 | const RSA * | +| (BIO *,const RSA *) | | i2d_RSAPublicKey_bio | 0 | BIO * | +| (BIO *,const RSA *) | | i2d_RSAPublicKey_bio | 1 | const RSA * | +| (BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_RSAPrivateKey | 0 | BIO * | +| (BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_RSAPrivateKey | 1 | const RSA * | +| (BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_RSAPrivateKey | 2 | const EVP_CIPHER * | +| (BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_RSAPrivateKey | 3 | const unsigned char * | +| (BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_RSAPrivateKey | 4 | int | +| (BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_RSAPrivateKey | 5 | pem_password_cb * | +| (BIO *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_bio_RSAPrivateKey | 6 | void * | +| (BIO *,const RSA *,int) | | RSA_print | 0 | BIO * | +| (BIO *,const RSA *,int) | | RSA_print | 1 | const RSA * | +| (BIO *,const RSA *,int) | | RSA_print | 2 | int | +| (BIO *,const SSL_SESSION *) | | PEM_write_bio_SSL_SESSION | 0 | BIO * | +| (BIO *,const SSL_SESSION *) | | PEM_write_bio_SSL_SESSION | 1 | const SSL_SESSION * | +| (BIO *,const X509 *) | | PEM_write_bio_X509 | 0 | BIO * | +| (BIO *,const X509 *) | | PEM_write_bio_X509 | 1 | const X509 * | +| (BIO *,const X509 *) | | PEM_write_bio_X509_AUX | 0 | BIO * | +| (BIO *,const X509 *) | | PEM_write_bio_X509_AUX | 1 | const X509 * | +| (BIO *,const X509 *) | | i2d_X509_bio | 0 | BIO * | +| (BIO *,const X509 *) | | i2d_X509_bio | 1 | const X509 * | +| (BIO *,const X509_ACERT *) | | PEM_write_bio_X509_ACERT | 0 | BIO * | +| (BIO *,const X509_ACERT *) | | PEM_write_bio_X509_ACERT | 1 | const X509_ACERT * | +| (BIO *,const X509_ACERT *) | | i2d_X509_ACERT_bio | 0 | BIO * | +| (BIO *,const X509_ACERT *) | | i2d_X509_ACERT_bio | 1 | const X509_ACERT * | +| (BIO *,const X509_CRL *) | | PEM_write_bio_X509_CRL | 0 | BIO * | +| (BIO *,const X509_CRL *) | | PEM_write_bio_X509_CRL | 1 | const X509_CRL * | +| (BIO *,const X509_CRL *) | | i2d_X509_CRL_bio | 0 | BIO * | +| (BIO *,const X509_CRL *) | | i2d_X509_CRL_bio | 1 | const X509_CRL * | +| (BIO *,const X509_INFO *,EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_X509_INFO_write_bio | 0 | BIO * | +| (BIO *,const X509_INFO *,EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_X509_INFO_write_bio | 1 | const X509_INFO * | +| (BIO *,const X509_INFO *,EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_X509_INFO_write_bio | 2 | EVP_CIPHER * | +| (BIO *,const X509_INFO *,EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_X509_INFO_write_bio | 3 | const unsigned char * | +| (BIO *,const X509_INFO *,EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_X509_INFO_write_bio | 4 | int | +| (BIO *,const X509_INFO *,EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_X509_INFO_write_bio | 5 | pem_password_cb * | +| (BIO *,const X509_INFO *,EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_X509_INFO_write_bio | 6 | void * | +| (BIO *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex | 0 | BIO * | +| (BIO *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex | 1 | const X509_NAME * | +| (BIO *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex | 2 | int | +| (BIO *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex | 3 | unsigned long | +| (BIO *,const X509_PUBKEY *) | | PEM_write_bio_X509_PUBKEY | 0 | BIO * | +| (BIO *,const X509_PUBKEY *) | | PEM_write_bio_X509_PUBKEY | 1 | const X509_PUBKEY * | +| (BIO *,const X509_REQ *) | | PEM_write_bio_X509_REQ | 0 | BIO * | +| (BIO *,const X509_REQ *) | | PEM_write_bio_X509_REQ | 1 | const X509_REQ * | +| (BIO *,const X509_REQ *) | | PEM_write_bio_X509_REQ_NEW | 0 | BIO * | +| (BIO *,const X509_REQ *) | | PEM_write_bio_X509_REQ_NEW | 1 | const X509_REQ * | +| (BIO *,const X509_REQ *) | | i2d_X509_REQ_bio | 0 | BIO * | +| (BIO *,const X509_REQ *) | | i2d_X509_REQ_bio | 1 | const X509_REQ * | +| (BIO *,const X509_SIG *) | | PEM_write_bio_PKCS8 | 0 | BIO * | +| (BIO *,const X509_SIG *) | | PEM_write_bio_PKCS8 | 1 | const X509_SIG * | +| (BIO *,const char *,OCSP_REQUEST *) | | OCSP_sendreq_bio | 0 | BIO * | +| (BIO *,const char *,OCSP_REQUEST *) | | OCSP_sendreq_bio | 1 | const char * | +| (BIO *,const char *,OCSP_REQUEST *) | | OCSP_sendreq_bio | 2 | OCSP_REQUEST * | +| (BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_attach | 0 | BIO * | +| (BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_attach | 1 | const char * | +| (BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_attach | 2 | OSSL_LIB_CTX * | +| (BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_attach | 3 | const char * | +| (BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_attach | 4 | const UI_METHOD * | +| (BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_attach | 5 | void * | +| (BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_attach | 6 | const OSSL_PARAM[] | +| (BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_attach | 7 | OSSL_STORE_post_process_info_fn | +| (BIO *,const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_attach | 8 | void * | +| (BIO *,const char *,const OCSP_REQUEST *,int) | | OCSP_sendreq_new | 0 | BIO * | +| (BIO *,const char *,const OCSP_REQUEST *,int) | | OCSP_sendreq_new | 1 | const char * | +| (BIO *,const char *,const OCSP_REQUEST *,int) | | OCSP_sendreq_new | 2 | const OCSP_REQUEST * | +| (BIO *,const char *,const OCSP_REQUEST *,int) | | OCSP_sendreq_new | 3 | int | +| (BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *) | | OSSL_HTTP_proxy_connect | 0 | BIO * | +| (BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *) | | OSSL_HTTP_proxy_connect | 1 | const char * | +| (BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *) | | OSSL_HTTP_proxy_connect | 2 | const char * | +| (BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *) | | OSSL_HTTP_proxy_connect | 3 | const char * | +| (BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *) | | OSSL_HTTP_proxy_connect | 4 | const char * | +| (BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *) | | OSSL_HTTP_proxy_connect | 5 | int | +| (BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *) | | OSSL_HTTP_proxy_connect | 6 | BIO * | +| (BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *) | | OSSL_HTTP_proxy_connect | 7 | const char * | +| (BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int) | | X509V3_extensions_print | 0 | BIO * | +| (BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int) | | X509V3_extensions_print | 1 | const char * | +| (BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int) | | X509V3_extensions_print | 2 | const stack_st_X509_EXTENSION * | +| (BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int) | | X509V3_extensions_print | 3 | unsigned long | +| (BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int) | | X509V3_extensions_print | 4 | int | +| (BIO *,const char *,int,int,int) | | mempacket_test_inject | 0 | BIO * | +| (BIO *,const char *,int,int,int) | | mempacket_test_inject | 1 | const char * | +| (BIO *,const char *,int,int,int) | | mempacket_test_inject | 2 | int | +| (BIO *,const char *,int,int,int) | | mempacket_test_inject | 3 | int | +| (BIO *,const char *,int,int,int) | | mempacket_test_inject | 4 | int | +| (BIO *,const char *,va_list) | | BIO_vprintf | 0 | BIO * | +| (BIO *,const char *,va_list) | | BIO_vprintf | 1 | const char * | +| (BIO *,const char *,va_list) | | BIO_vprintf | 2 | va_list | +| (BIO *,const stack_st_X509_EXTENSION *) | | TS_ext_print_bio | 0 | BIO * | +| (BIO *,const stack_st_X509_EXTENSION *) | | TS_ext_print_bio | 1 | const stack_st_X509_EXTENSION * | +| (BIO *,const unsigned char *,long,int) | | ASN1_parse | 0 | BIO * | +| (BIO *,const unsigned char *,long,int) | | ASN1_parse | 1 | const unsigned char * | +| (BIO *,const unsigned char *,long,int) | | ASN1_parse | 2 | long | +| (BIO *,const unsigned char *,long,int) | | ASN1_parse | 3 | int | +| (BIO *,const unsigned char *,long,int,int) | | ASN1_parse_dump | 0 | BIO * | +| (BIO *,const unsigned char *,long,int,int) | | ASN1_parse_dump | 1 | const unsigned char * | +| (BIO *,const unsigned char *,long,int,int) | | ASN1_parse_dump | 2 | long | +| (BIO *,const unsigned char *,long,int,int) | | ASN1_parse_dump | 3 | int | +| (BIO *,const unsigned char *,long,int,int) | | ASN1_parse_dump | 4 | int | +| (BIO *,int *) | | BIO_get_retry_BIO | 0 | BIO * | +| (BIO *,int *) | | BIO_get_retry_BIO | 1 | int * | +| (BIO *,int *) | | ossl_b2i_bio | 0 | BIO * | +| (BIO *,int *) | | ossl_b2i_bio | 1 | int * | +| (BIO *,int) | | BIO_clear_flags | 0 | BIO * | +| (BIO *,int) | | BIO_clear_flags | 1 | int | +| (BIO *,int) | | BIO_find_type | 0 | BIO * | +| (BIO *,int) | | BIO_find_type | 1 | int | +| (BIO *,int) | | BIO_set_flags | 0 | BIO * | +| (BIO *,int) | | BIO_set_flags | 1 | int | +| (BIO *,int) | | BIO_set_init | 0 | BIO * | +| (BIO *,int) | | BIO_set_init | 1 | int | +| (BIO *,int) | | BIO_set_retry_reason | 0 | BIO * | +| (BIO *,int) | | BIO_set_retry_reason | 1 | int | +| (BIO *,int) | | BIO_set_shutdown | 0 | BIO * | +| (BIO *,int) | | BIO_set_shutdown | 1 | int | +| (BIO *,int) | | TXT_DB_read | 0 | BIO * | +| (BIO *,int) | | TXT_DB_read | 1 | int | +| (BIO *,int,BIO **,CMS_ContentInfo **) | | SMIME_read_CMS_ex | 0 | BIO * | +| (BIO *,int,BIO **,CMS_ContentInfo **) | | SMIME_read_CMS_ex | 1 | int | +| (BIO *,int,BIO **,CMS_ContentInfo **) | | SMIME_read_CMS_ex | 2 | BIO ** | +| (BIO *,int,BIO **,CMS_ContentInfo **) | | SMIME_read_CMS_ex | 3 | CMS_ContentInfo ** | +| (BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *) | | SMIME_read_ASN1_ex | 0 | BIO * | +| (BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *) | | SMIME_read_ASN1_ex | 1 | int | +| (BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *) | | SMIME_read_ASN1_ex | 2 | BIO ** | +| (BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *) | | SMIME_read_ASN1_ex | 3 | const ASN1_ITEM * | +| (BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *) | | SMIME_read_ASN1_ex | 4 | ASN1_VALUE ** | +| (BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *) | | SMIME_read_ASN1_ex | 5 | OSSL_LIB_CTX * | +| (BIO *,int,BIO **,const ASN1_ITEM *,ASN1_VALUE **,OSSL_LIB_CTX *,const char *) | | SMIME_read_ASN1_ex | 6 | const char * | +| (BIO *,int,const ASN1_TYPE *,int) | | ossl_print_attribute_value | 0 | BIO * | +| (BIO *,int,const ASN1_TYPE *,int) | | ossl_print_attribute_value | 1 | int | +| (BIO *,int,const ASN1_TYPE *,int) | | ossl_print_attribute_value | 2 | const ASN1_TYPE * | +| (BIO *,int,const ASN1_TYPE *,int) | | ossl_print_attribute_value | 3 | int | +| (BIO *,int,const char *,int,long,long) | | BIO_debug_callback | 0 | BIO * | +| (BIO *,int,const char *,int,long,long) | | BIO_debug_callback | 1 | int | +| (BIO *,int,const char *,int,long,long) | | BIO_debug_callback | 2 | const char * | +| (BIO *,int,const char *,int,long,long) | | BIO_debug_callback | 3 | int | +| (BIO *,int,const char *,int,long,long) | | BIO_debug_callback | 4 | long | +| (BIO *,int,const char *,int,long,long) | | BIO_debug_callback | 5 | long | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | BIO_debug_callback_ex | 0 | BIO * | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | BIO_debug_callback_ex | 1 | int | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | BIO_debug_callback_ex | 2 | const char * | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | BIO_debug_callback_ex | 3 | size_t | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | BIO_debug_callback_ex | 4 | int | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | BIO_debug_callback_ex | 5 | long | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | BIO_debug_callback_ex | 6 | int | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | BIO_debug_callback_ex | 7 | size_t * | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | bio_dump_callback | 0 | BIO * | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | bio_dump_callback | 1 | int | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | bio_dump_callback | 2 | const char * | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | bio_dump_callback | 3 | size_t | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | bio_dump_callback | 4 | int | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | bio_dump_callback | 5 | long | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | bio_dump_callback | 6 | int | +| (BIO *,int,const char *,size_t,int,long,int,size_t *) | | bio_dump_callback | 7 | size_t * | +| (BIO *,pem_password_cb *,void *) | | b2i_DSA_PVK_bio | 0 | BIO * | +| (BIO *,pem_password_cb *,void *) | | b2i_DSA_PVK_bio | 1 | pem_password_cb * | +| (BIO *,pem_password_cb *,void *) | | b2i_DSA_PVK_bio | 2 | void * | +| (BIO *,pem_password_cb *,void *) | | b2i_PVK_bio | 0 | BIO * | +| (BIO *,pem_password_cb *,void *) | | b2i_PVK_bio | 1 | pem_password_cb * | +| (BIO *,pem_password_cb *,void *) | | b2i_PVK_bio | 2 | void * | +| (BIO *,pem_password_cb *,void *) | | b2i_RSA_PVK_bio | 0 | BIO * | +| (BIO *,pem_password_cb *,void *) | | b2i_RSA_PVK_bio | 1 | pem_password_cb * | +| (BIO *,pem_password_cb *,void *) | | b2i_RSA_PVK_bio | 2 | void * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_DSA_PVK_bio_ex | 0 | BIO * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_DSA_PVK_bio_ex | 1 | pem_password_cb * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_DSA_PVK_bio_ex | 2 | void * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_DSA_PVK_bio_ex | 3 | OSSL_LIB_CTX * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_DSA_PVK_bio_ex | 4 | const char * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_PVK_bio_ex | 0 | BIO * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_PVK_bio_ex | 1 | pem_password_cb * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_PVK_bio_ex | 2 | void * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_PVK_bio_ex | 3 | OSSL_LIB_CTX * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_PVK_bio_ex | 4 | const char * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_RSA_PVK_bio_ex | 0 | BIO * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_RSA_PVK_bio_ex | 1 | pem_password_cb * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_RSA_PVK_bio_ex | 2 | void * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_RSA_PVK_bio_ex | 3 | OSSL_LIB_CTX * | +| (BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | b2i_RSA_PVK_bio_ex | 4 | const char * | +| (BIO *,size_t,..(*)(..),void *) | | ossl_quic_demux_new | 0 | BIO * | +| (BIO *,size_t,..(*)(..),void *) | | ossl_quic_demux_new | 1 | size_t | +| (BIO *,size_t,..(*)(..),void *) | | ossl_quic_demux_new | 2 | ..(*)(..) | +| (BIO *,size_t,..(*)(..),void *) | | ossl_quic_demux_new | 3 | void * | +| (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read_bio | 0 | BIO * | +| (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read_bio | 1 | stack_st_X509_INFO * | +| (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read_bio | 2 | pem_password_cb * | +| (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read_bio | 3 | void * | +| (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_bio_ex | 0 | BIO * | +| (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_bio_ex | 1 | stack_st_X509_INFO * | +| (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_bio_ex | 2 | pem_password_cb * | +| (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_bio_ex | 3 | void * | +| (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_bio_ex | 4 | OSSL_LIB_CTX * | +| (BIO *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_bio_ex | 5 | const char * | +| (BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_data_create_ex | 0 | BIO * | +| (BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_data_create_ex | 1 | unsigned int | +| (BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_data_create_ex | 2 | OSSL_LIB_CTX * | +| (BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_data_create_ex | 3 | const char * | +| (BIO *,void *) | | BIO_set_data | 0 | BIO * | +| (BIO *,void *) | | BIO_set_data | 1 | void * | +| (BIO *,void *,int,int) | | app_http_tls_cb | 0 | BIO * | +| (BIO *,void *,int,int) | | app_http_tls_cb | 1 | void * | +| (BIO *,void *,int,int) | | app_http_tls_cb | 2 | int | +| (BIO *,void *,int,int) | | app_http_tls_cb | 3 | int | +| (BIO *,void *,size_t,size_t *) | | BIO_read_ex | 0 | BIO * | +| (BIO *,void *,size_t,size_t *) | | BIO_read_ex | 1 | void * | +| (BIO *,void *,size_t,size_t *) | | BIO_read_ex | 2 | size_t | +| (BIO *,void *,size_t,size_t *) | | BIO_read_ex | 3 | size_t * | +| (BIO_ADDR *) | | BIO_ADDR_sockaddr_noconst | 0 | BIO_ADDR * | +| (BIO_ADDR *,const BIO_ADDR *) | | BIO_ADDR_copy | 0 | BIO_ADDR * | +| (BIO_ADDR *,const BIO_ADDR *) | | BIO_ADDR_copy | 1 | const BIO_ADDR * | +| (BIO_ADDR *,const sockaddr *) | | BIO_ADDR_make | 0 | BIO_ADDR * | +| (BIO_ADDR *,const sockaddr *) | | BIO_ADDR_make | 1 | const sockaddr * | +| (BIO_ADDR *,int,const void *,size_t,unsigned short) | | BIO_ADDR_rawmake | 0 | BIO_ADDR * | +| (BIO_ADDR *,int,const void *,size_t,unsigned short) | | BIO_ADDR_rawmake | 1 | int | +| (BIO_ADDR *,int,const void *,size_t,unsigned short) | | BIO_ADDR_rawmake | 2 | const void * | +| (BIO_ADDR *,int,const void *,size_t,unsigned short) | | BIO_ADDR_rawmake | 3 | size_t | +| (BIO_ADDR *,int,const void *,size_t,unsigned short) | | BIO_ADDR_rawmake | 4 | unsigned short | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_callback_ctrl | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_callback_ctrl | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_create | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_create | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_ctrl | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_ctrl | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_destroy | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_destroy | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_gets | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_gets | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_puts | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_puts | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_read | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_read | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_read_ex | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_read_ex | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_recvmmsg | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_recvmmsg | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_sendmmsg | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_sendmmsg | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_write | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_write | 1 | ..(*)(..) | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_write_ex | 0 | BIO_METHOD * | +| (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_write_ex | 1 | ..(*)(..) | +| (BIO_MSG *,BIO_MSG *) | | bio_msg_copy | 0 | BIO_MSG * | +| (BIO_MSG *,BIO_MSG *) | | bio_msg_copy | 1 | BIO_MSG * | +| (BLAKE2B_CTX *,const BLAKE2B_PARAM *) | | ossl_blake2b_init | 0 | BLAKE2B_CTX * | +| (BLAKE2B_CTX *,const BLAKE2B_PARAM *) | | ossl_blake2b_init | 1 | const BLAKE2B_PARAM * | +| (BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *) | | ossl_blake2b_init_key | 0 | BLAKE2B_CTX * | +| (BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *) | | ossl_blake2b_init_key | 1 | const BLAKE2B_PARAM * | +| (BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *) | | ossl_blake2b_init_key | 2 | const void * | +| (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 0 | BLAKE2B_CTX * | +| (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 1 | const void * | +| (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 2 | size_t | +| (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_personal | 0 | BLAKE2B_PARAM * | +| (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_personal | 1 | const uint8_t * | +| (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_personal | 2 | size_t | +| (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_salt | 0 | BLAKE2B_PARAM * | +| (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_salt | 1 | const uint8_t * | +| (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_salt | 2 | size_t | +| (BLAKE2B_PARAM *,uint8_t) | | ossl_blake2b_param_set_digest_length | 0 | BLAKE2B_PARAM * | +| (BLAKE2B_PARAM *,uint8_t) | | ossl_blake2b_param_set_digest_length | 1 | uint8_t | +| (BLAKE2B_PARAM *,uint8_t) | | ossl_blake2b_param_set_key_length | 0 | BLAKE2B_PARAM * | +| (BLAKE2B_PARAM *,uint8_t) | | ossl_blake2b_param_set_key_length | 1 | uint8_t | +| (BLAKE2S_CTX *,const BLAKE2S_PARAM *) | | ossl_blake2s_init | 0 | BLAKE2S_CTX * | +| (BLAKE2S_CTX *,const BLAKE2S_PARAM *) | | ossl_blake2s_init | 1 | const BLAKE2S_PARAM * | +| (BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *) | | ossl_blake2s_init_key | 0 | BLAKE2S_CTX * | +| (BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *) | | ossl_blake2s_init_key | 1 | const BLAKE2S_PARAM * | +| (BLAKE2S_CTX *,const BLAKE2S_PARAM *,const void *) | | ossl_blake2s_init_key | 2 | const void * | +| (BLAKE2S_CTX *,const void *,size_t) | | ossl_blake2s_update | 0 | BLAKE2S_CTX * | +| (BLAKE2S_CTX *,const void *,size_t) | | ossl_blake2s_update | 1 | const void * | +| (BLAKE2S_CTX *,const void *,size_t) | | ossl_blake2s_update | 2 | size_t | +| (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_personal | 0 | BLAKE2S_PARAM * | +| (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_personal | 1 | const uint8_t * | +| (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_personal | 2 | size_t | +| (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_salt | 0 | BLAKE2S_PARAM * | +| (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_salt | 1 | const uint8_t * | +| (BLAKE2S_PARAM *,const uint8_t *,size_t) | | ossl_blake2s_param_set_salt | 2 | size_t | +| (BLAKE2S_PARAM *,uint8_t) | | ossl_blake2s_param_set_digest_length | 0 | BLAKE2S_PARAM * | +| (BLAKE2S_PARAM *,uint8_t) | | ossl_blake2s_param_set_digest_length | 1 | uint8_t | +| (BLAKE2S_PARAM *,uint8_t) | | ossl_blake2s_param_set_key_length | 0 | BLAKE2S_PARAM * | +| (BLAKE2S_PARAM *,uint8_t) | | ossl_blake2s_param_set_key_length | 1 | uint8_t | +| (BN_BLINDING *,BN_CTX *) | | BN_BLINDING_update | 0 | BN_BLINDING * | +| (BN_BLINDING *,BN_CTX *) | | BN_BLINDING_update | 1 | BN_CTX * | +| (BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *) | | BN_BLINDING_create_param | 0 | BN_BLINDING * | +| (BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *) | | BN_BLINDING_create_param | 1 | const BIGNUM * | +| (BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *) | | BN_BLINDING_create_param | 2 | BIGNUM * | +| (BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *) | | BN_BLINDING_create_param | 3 | BN_CTX * | +| (BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *) | | BN_BLINDING_create_param | 4 | ..(*)(..) | +| (BN_BLINDING *,const BIGNUM *,BIGNUM *,BN_CTX *,..(*)(..),BN_MONT_CTX *) | | BN_BLINDING_create_param | 5 | BN_MONT_CTX * | +| (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 0 | BN_BLINDING * | +| (BN_BLINDING *,unsigned long) | | BN_BLINDING_set_flags | 1 | unsigned long | +| (BN_CTX *) | | BN_CTX_get | 0 | BN_CTX * | +| (BN_CTX *) | | ossl_bn_get_libctx | 0 | BN_CTX * | +| (BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *) | | ossl_ffc_params_validate_unverifiable_g | 0 | BN_CTX * | +| (BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *) | | ossl_ffc_params_validate_unverifiable_g | 1 | BN_MONT_CTX * | +| (BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *) | | ossl_ffc_params_validate_unverifiable_g | 2 | const BIGNUM * | +| (BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *) | | ossl_ffc_params_validate_unverifiable_g | 3 | const BIGNUM * | +| (BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *) | | ossl_ffc_params_validate_unverifiable_g | 4 | const BIGNUM * | +| (BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *) | | ossl_ffc_params_validate_unverifiable_g | 5 | BIGNUM * | +| (BN_CTX *,BN_MONT_CTX *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BIGNUM *,int *) | | ossl_ffc_params_validate_unverifiable_g | 6 | int * | +| (BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_rsa_get_lcm | 0 | BN_CTX * | +| (BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_rsa_get_lcm | 1 | const BIGNUM * | +| (BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_rsa_get_lcm | 2 | const BIGNUM * | +| (BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_rsa_get_lcm | 3 | BIGNUM * | +| (BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_rsa_get_lcm | 4 | BIGNUM * | +| (BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_rsa_get_lcm | 5 | BIGNUM * | +| (BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_rsa_get_lcm | 6 | BIGNUM * | +| (BN_CTX *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_rsa_get_lcm | 7 | BIGNUM * | +| (BN_CTX *,const DSA *,const BIGNUM *,BIGNUM *) | | ossl_dsa_generate_public_key | 0 | BN_CTX * | +| (BN_CTX *,const DSA *,const BIGNUM *,BIGNUM *) | | ossl_dsa_generate_public_key | 1 | const DSA * | +| (BN_CTX *,const DSA *,const BIGNUM *,BIGNUM *) | | ossl_dsa_generate_public_key | 2 | const BIGNUM * | +| (BN_CTX *,const DSA *,const BIGNUM *,BIGNUM *) | | ossl_dsa_generate_public_key | 3 | BIGNUM * | +| (BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *) | | ossl_ffc_generate_private_key | 0 | BN_CTX * | +| (BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *) | | ossl_ffc_generate_private_key | 1 | const FFC_PARAMS * | +| (BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *) | | ossl_ffc_generate_private_key | 2 | int | +| (BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *) | | ossl_ffc_generate_private_key | 3 | int | +| (BN_CTX *,const FFC_PARAMS *,int,int,BIGNUM *) | | ossl_ffc_generate_private_key | 4 | BIGNUM * | +| (BN_GENCB *) | | BN_GENCB_get_arg | 0 | BN_GENCB * | +| (BN_GENCB *,..(*)(..),void *) | | BN_GENCB_set | 0 | BN_GENCB * | +| (BN_GENCB *,..(*)(..),void *) | | BN_GENCB_set | 1 | ..(*)(..) | +| (BN_GENCB *,..(*)(..),void *) | | BN_GENCB_set | 2 | void * | +| (BN_GENCB *,..(*)(..),void *) | | BN_GENCB_set_old | 0 | BN_GENCB * | +| (BN_GENCB *,..(*)(..),void *) | | BN_GENCB_set_old | 1 | ..(*)(..) | +| (BN_GENCB *,..(*)(..),void *) | | BN_GENCB_set_old | 2 | void * | +| (BN_GENCB *,EVP_PKEY_CTX *) | | evp_pkey_set_cb_translate | 0 | BN_GENCB * | +| (BN_GENCB *,EVP_PKEY_CTX *) | | evp_pkey_set_cb_translate | 1 | EVP_PKEY_CTX * | +| (BN_MONT_CTX **,CRYPTO_RWLOCK *,const BIGNUM *,BN_CTX *) | | BN_MONT_CTX_set_locked | 0 | BN_MONT_CTX ** | +| (BN_MONT_CTX **,CRYPTO_RWLOCK *,const BIGNUM *,BN_CTX *) | | BN_MONT_CTX_set_locked | 1 | CRYPTO_RWLOCK * | +| (BN_MONT_CTX **,CRYPTO_RWLOCK *,const BIGNUM *,BN_CTX *) | | BN_MONT_CTX_set_locked | 2 | const BIGNUM * | +| (BN_MONT_CTX **,CRYPTO_RWLOCK *,const BIGNUM *,BN_CTX *) | | BN_MONT_CTX_set_locked | 3 | BN_CTX * | +| (BN_MONT_CTX *,BN_MONT_CTX *) | | BN_MONT_CTX_copy | 0 | BN_MONT_CTX * | +| (BN_MONT_CTX *,BN_MONT_CTX *) | | BN_MONT_CTX_copy | 1 | BN_MONT_CTX * | +| (BN_MONT_CTX *,const BIGNUM *,BN_CTX *) | | BN_MONT_CTX_set | 0 | BN_MONT_CTX * | +| (BN_MONT_CTX *,const BIGNUM *,BN_CTX *) | | BN_MONT_CTX_set | 1 | const BIGNUM * | +| (BN_MONT_CTX *,const BIGNUM *,BN_CTX *) | | BN_MONT_CTX_set | 2 | BN_CTX * | +| (BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t) | | ossl_bn_mont_ctx_set | 0 | BN_MONT_CTX * | +| (BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t) | | ossl_bn_mont_ctx_set | 1 | const BIGNUM * | +| (BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t) | | ossl_bn_mont_ctx_set | 2 | int | +| (BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t) | | ossl_bn_mont_ctx_set | 3 | const unsigned char * | +| (BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t) | | ossl_bn_mont_ctx_set | 4 | size_t | +| (BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t) | | ossl_bn_mont_ctx_set | 5 | uint32_t | +| (BN_MONT_CTX *,const BIGNUM *,int,const unsigned char *,size_t,uint32_t,uint32_t) | | ossl_bn_mont_ctx_set | 6 | uint32_t | +| (BN_RECP_CTX *,const BIGNUM *,BN_CTX *) | | BN_RECP_CTX_set | 0 | BN_RECP_CTX * | +| (BN_RECP_CTX *,const BIGNUM *,BN_CTX *) | | BN_RECP_CTX_set | 1 | const BIGNUM * | +| (BN_RECP_CTX *,const BIGNUM *,BN_CTX *) | | BN_RECP_CTX_set | 2 | BN_CTX * | +| (BUF_MEM *,size_t) | | BUF_MEM_grow | 0 | BUF_MEM * | +| (BUF_MEM *,size_t) | | BUF_MEM_grow | 1 | size_t | +| (BUF_MEM *,size_t) | | BUF_MEM_grow_clean | 0 | BUF_MEM * | +| (BUF_MEM *,size_t) | | BUF_MEM_grow_clean | 1 | size_t | +| (CA_DB *,time_t *) | | do_updatedb | 0 | CA_DB * | +| (CA_DB *,time_t *) | | do_updatedb | 1 | time_t * | | (CAtlFile &) | CAtlFile | CAtlFile | 0 | CAtlFile & | +| (CCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ccm128_aad | 0 | CCM128_CONTEXT * | +| (CCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ccm128_aad | 1 | const unsigned char * | +| (CCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ccm128_aad | 2 | size_t | +| (CCM128_CONTEXT *,const unsigned char *,size_t,size_t) | | CRYPTO_ccm128_setiv | 0 | CCM128_CONTEXT * | +| (CCM128_CONTEXT *,const unsigned char *,size_t,size_t) | | CRYPTO_ccm128_setiv | 1 | const unsigned char * | +| (CCM128_CONTEXT *,const unsigned char *,size_t,size_t) | | CRYPTO_ccm128_setiv | 2 | size_t | +| (CCM128_CONTEXT *,const unsigned char *,size_t,size_t) | | CRYPTO_ccm128_setiv | 3 | size_t | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ccm128_decrypt | 0 | CCM128_CONTEXT * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ccm128_decrypt | 1 | const unsigned char * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ccm128_decrypt | 2 | unsigned char * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ccm128_decrypt | 3 | size_t | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ccm128_encrypt | 0 | CCM128_CONTEXT * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ccm128_encrypt | 1 | const unsigned char * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ccm128_encrypt | 2 | unsigned char * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ccm128_encrypt | 3 | size_t | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f) | | CRYPTO_ccm128_decrypt_ccm64 | 0 | CCM128_CONTEXT * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f) | | CRYPTO_ccm128_decrypt_ccm64 | 1 | const unsigned char * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f) | | CRYPTO_ccm128_decrypt_ccm64 | 2 | unsigned char * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f) | | CRYPTO_ccm128_decrypt_ccm64 | 3 | size_t | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f) | | CRYPTO_ccm128_decrypt_ccm64 | 4 | ccm128_f | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f) | | CRYPTO_ccm128_encrypt_ccm64 | 0 | CCM128_CONTEXT * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f) | | CRYPTO_ccm128_encrypt_ccm64 | 1 | const unsigned char * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f) | | CRYPTO_ccm128_encrypt_ccm64 | 2 | unsigned char * | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f) | | CRYPTO_ccm128_encrypt_ccm64 | 3 | size_t | +| (CCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ccm128_f) | | CRYPTO_ccm128_encrypt_ccm64 | 4 | ccm128_f | +| (CCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ccm128_tag | 0 | CCM128_CONTEXT * | +| (CCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ccm128_tag | 1 | unsigned char * | +| (CCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ccm128_tag | 2 | size_t | +| (CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f) | | CRYPTO_ccm128_init | 0 | CCM128_CONTEXT * | +| (CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f) | | CRYPTO_ccm128_init | 1 | unsigned int | +| (CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f) | | CRYPTO_ccm128_init | 2 | unsigned int | +| (CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f) | | CRYPTO_ccm128_init | 3 | void * | +| (CCM128_CONTEXT *,unsigned int,unsigned int,void *,block128_f) | | CRYPTO_ccm128_init | 4 | block128_f | | (CComBSTR &&) | CComBSTR | CComBSTR | 0 | CComBSTR && | +| (CERT *) | | ssl_cert_dup | 0 | CERT * | +| (CERT *,..(*)(..),void *) | | ssl_cert_set_cert_cb | 0 | CERT * | +| (CERT *,..(*)(..),void *) | | ssl_cert_set_cert_cb | 1 | ..(*)(..) | +| (CERT *,..(*)(..),void *) | | ssl_cert_set_cert_cb | 2 | void * | +| (CERT *,X509 *) | | ssl_cert_select_current | 0 | CERT * | +| (CERT *,X509 *) | | ssl_cert_select_current | 1 | X509 * | +| (CERT *,X509_STORE **,int) | | ssl_cert_get_cert_store | 0 | CERT * | +| (CERT *,X509_STORE **,int) | | ssl_cert_get_cert_store | 1 | X509_STORE ** | +| (CERT *,X509_STORE **,int) | | ssl_cert_get_cert_store | 2 | int | +| (CERT *,const int *,size_t,int) | | tls1_set_sigalgs | 0 | CERT * | +| (CERT *,const int *,size_t,int) | | tls1_set_sigalgs | 1 | const int * | +| (CERT *,const int *,size_t,int) | | tls1_set_sigalgs | 2 | size_t | +| (CERT *,const int *,size_t,int) | | tls1_set_sigalgs | 3 | int | +| (CERT *,const uint16_t *,size_t,int) | | tls1_set_raw_sigalgs | 0 | CERT * | +| (CERT *,const uint16_t *,size_t,int) | | tls1_set_raw_sigalgs | 1 | const uint16_t * | +| (CERT *,const uint16_t *,size_t,int) | | tls1_set_raw_sigalgs | 2 | size_t | +| (CERT *,const uint16_t *,size_t,int) | | tls1_set_raw_sigalgs | 3 | int | +| (CERTIFICATEPOLICIES *) | | CERTIFICATEPOLICIES_free | 0 | CERTIFICATEPOLICIES * | +| (CERTIFICATEPOLICIES **,const unsigned char **,long) | | d2i_CERTIFICATEPOLICIES | 0 | CERTIFICATEPOLICIES ** | +| (CERTIFICATEPOLICIES **,const unsigned char **,long) | | d2i_CERTIFICATEPOLICIES | 1 | const unsigned char ** | +| (CERTIFICATEPOLICIES **,const unsigned char **,long) | | d2i_CERTIFICATEPOLICIES | 2 | long | +| (CMAC_CTX *) | | CMAC_CTX_get0_cipher_ctx | 0 | CMAC_CTX * | +| (CMAC_CTX *,const CMAC_CTX *) | | CMAC_CTX_copy | 0 | CMAC_CTX * | +| (CMAC_CTX *,const CMAC_CTX *) | | CMAC_CTX_copy | 1 | const CMAC_CTX * | +| (CMAC_CTX *,const void *,size_t) | | CMAC_Update | 0 | CMAC_CTX * | +| (CMAC_CTX *,const void *,size_t) | | CMAC_Update | 1 | const void * | +| (CMAC_CTX *,const void *,size_t) | | CMAC_Update | 2 | size_t | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *) | | CMAC_Init | 0 | CMAC_CTX * | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *) | | CMAC_Init | 1 | const void * | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *) | | CMAC_Init | 2 | size_t | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *) | | CMAC_Init | 3 | const EVP_CIPHER * | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *) | | CMAC_Init | 4 | ENGINE * | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[]) | | ossl_cmac_init | 0 | CMAC_CTX * | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[]) | | ossl_cmac_init | 1 | const void * | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[]) | | ossl_cmac_init | 2 | size_t | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[]) | | ossl_cmac_init | 3 | const EVP_CIPHER * | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[]) | | ossl_cmac_init | 4 | ENGINE * | +| (CMAC_CTX *,const void *,size_t,const EVP_CIPHER *,ENGINE *,const OSSL_PARAM[]) | | ossl_cmac_init | 5 | const OSSL_PARAM[] | +| (CMAC_CTX *,unsigned char *,size_t *) | | CMAC_Final | 0 | CMAC_CTX * | +| (CMAC_CTX *,unsigned char *,size_t *) | | CMAC_Final | 1 | unsigned char * | +| (CMAC_CTX *,unsigned char *,size_t *) | | CMAC_Final | 2 | size_t * | +| (CMS_ContentInfo *) | | CMS_ContentInfo_free | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *) | | CMS_get0_content | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *) | | ossl_cms_get0_auth_enveloped | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *) | | ossl_cms_get0_enveloped | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo **,const unsigned char **,long) | | d2i_CMS_ContentInfo | 0 | CMS_ContentInfo ** | +| (CMS_ContentInfo **,const unsigned char **,long) | | d2i_CMS_ContentInfo | 1 | const unsigned char ** | +| (CMS_ContentInfo **,const unsigned char **,long) | | d2i_CMS_ContentInfo | 2 | long | +| (CMS_ContentInfo *,BIO *) | | CMS_dataInit | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,BIO *) | | CMS_dataInit | 1 | BIO * | +| (CMS_ContentInfo *,BIO *) | | ossl_cms_EnvelopedData_final | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,BIO *) | | ossl_cms_EnvelopedData_final | 1 | BIO * | +| (CMS_ContentInfo *,BIO *,BIO *,unsigned int) | | CMS_digest_verify | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,BIO *,BIO *,unsigned int) | | CMS_digest_verify | 1 | BIO * | +| (CMS_ContentInfo *,BIO *,BIO *,unsigned int) | | CMS_digest_verify | 2 | BIO * | +| (CMS_ContentInfo *,BIO *,BIO *,unsigned int) | | CMS_digest_verify | 3 | unsigned int | +| (CMS_ContentInfo *,BIO *,BIO *,unsigned int) | | CMS_final | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,BIO *,BIO *,unsigned int) | | CMS_final | 1 | BIO * | +| (CMS_ContentInfo *,BIO *,BIO *,unsigned int) | | CMS_final | 2 | BIO * | +| (CMS_ContentInfo *,BIO *,BIO *,unsigned int) | | CMS_final | 3 | unsigned int | +| (CMS_ContentInfo *,BIO *,const unsigned char *,unsigned int) | | ossl_cms_SignedData_final | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,BIO *,const unsigned char *,unsigned int) | | ossl_cms_SignedData_final | 1 | BIO * | +| (CMS_ContentInfo *,BIO *,const unsigned char *,unsigned int) | | ossl_cms_SignedData_final | 2 | const unsigned char * | +| (CMS_ContentInfo *,BIO *,const unsigned char *,unsigned int) | | ossl_cms_SignedData_final | 3 | unsigned int | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *) | | CMS_decrypt_set1_pkey | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *) | | CMS_decrypt_set1_pkey | 1 | EVP_PKEY * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *) | | CMS_decrypt_set1_pkey | 2 | X509 * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *,BIO *,BIO *,unsigned int) | | CMS_decrypt | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *,BIO *,BIO *,unsigned int) | | CMS_decrypt | 1 | EVP_PKEY * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *,BIO *,BIO *,unsigned int) | | CMS_decrypt | 2 | X509 * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *,BIO *,BIO *,unsigned int) | | CMS_decrypt | 3 | BIO * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *,BIO *,BIO *,unsigned int) | | CMS_decrypt | 4 | BIO * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *,BIO *,BIO *,unsigned int) | | CMS_decrypt | 5 | unsigned int | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *,X509 *) | | CMS_decrypt_set1_pkey_and_peer | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *,X509 *) | | CMS_decrypt_set1_pkey_and_peer | 1 | EVP_PKEY * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *,X509 *) | | CMS_decrypt_set1_pkey_and_peer | 2 | X509 * | +| (CMS_ContentInfo *,EVP_PKEY *,X509 *,X509 *) | | CMS_decrypt_set1_pkey_and_peer | 3 | X509 * | +| (CMS_ContentInfo *,X509 *) | | CMS_add0_cert | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,X509 *) | | CMS_add0_cert | 1 | X509 * | +| (CMS_ContentInfo *,X509 *) | | CMS_add1_cert | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,X509 *) | | CMS_add1_cert | 1 | X509 * | +| (CMS_ContentInfo *,X509 *,EVP_PKEY *,X509 *,unsigned int) | | CMS_add1_recipient | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,X509 *,EVP_PKEY *,X509 *,unsigned int) | | CMS_add1_recipient | 1 | X509 * | +| (CMS_ContentInfo *,X509 *,EVP_PKEY *,X509 *,unsigned int) | | CMS_add1_recipient | 2 | EVP_PKEY * | +| (CMS_ContentInfo *,X509 *,EVP_PKEY *,X509 *,unsigned int) | | CMS_add1_recipient | 3 | X509 * | +| (CMS_ContentInfo *,X509 *,EVP_PKEY *,X509 *,unsigned int) | | CMS_add1_recipient | 4 | unsigned int | +| (CMS_ContentInfo *,X509 *,EVP_PKEY *,const EVP_MD *,unsigned int) | | CMS_add1_signer | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,X509 *,EVP_PKEY *,const EVP_MD *,unsigned int) | | CMS_add1_signer | 1 | X509 * | +| (CMS_ContentInfo *,X509 *,EVP_PKEY *,const EVP_MD *,unsigned int) | | CMS_add1_signer | 2 | EVP_PKEY * | +| (CMS_ContentInfo *,X509 *,EVP_PKEY *,const EVP_MD *,unsigned int) | | CMS_add1_signer | 3 | const EVP_MD * | +| (CMS_ContentInfo *,X509 *,EVP_PKEY *,const EVP_MD *,unsigned int) | | CMS_add1_signer | 4 | unsigned int | +| (CMS_ContentInfo *,X509 *,unsigned int) | | CMS_add1_recipient_cert | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,X509 *,unsigned int) | | CMS_add1_recipient_cert | 1 | X509 * | +| (CMS_ContentInfo *,X509 *,unsigned int) | | CMS_add1_recipient_cert | 2 | unsigned int | +| (CMS_ContentInfo *,X509_CRL *) | | CMS_add1_crl | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,X509_CRL *) | | CMS_add1_crl | 1 | X509_CRL * | +| (CMS_ContentInfo *,const unsigned char *,size_t,BIO *,BIO *,unsigned int) | | CMS_EncryptedData_decrypt | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,const unsigned char *,size_t,BIO *,BIO *,unsigned int) | | CMS_EncryptedData_decrypt | 1 | const unsigned char * | +| (CMS_ContentInfo *,const unsigned char *,size_t,BIO *,BIO *,unsigned int) | | CMS_EncryptedData_decrypt | 2 | size_t | +| (CMS_ContentInfo *,const unsigned char *,size_t,BIO *,BIO *,unsigned int) | | CMS_EncryptedData_decrypt | 3 | BIO * | +| (CMS_ContentInfo *,const unsigned char *,size_t,BIO *,BIO *,unsigned int) | | CMS_EncryptedData_decrypt | 4 | BIO * | +| (CMS_ContentInfo *,const unsigned char *,size_t,BIO *,BIO *,unsigned int) | | CMS_EncryptedData_decrypt | 5 | unsigned int | +| (CMS_ContentInfo *,const unsigned char *,unsigned int,BIO *,unsigned int) | | CMS_final_digest | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,const unsigned char *,unsigned int,BIO *,unsigned int) | | CMS_final_digest | 1 | const unsigned char * | +| (CMS_ContentInfo *,const unsigned char *,unsigned int,BIO *,unsigned int) | | CMS_final_digest | 2 | unsigned int | +| (CMS_ContentInfo *,const unsigned char *,unsigned int,BIO *,unsigned int) | | CMS_final_digest | 3 | BIO * | +| (CMS_ContentInfo *,const unsigned char *,unsigned int,BIO *,unsigned int) | | CMS_final_digest | 4 | unsigned int | +| (CMS_ContentInfo *,stack_st_X509 **) | | ossl_cms_get1_certs_ex | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,stack_st_X509 **) | | ossl_cms_get1_certs_ex | 1 | stack_st_X509 ** | +| (CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int) | | CMS_verify | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int) | | CMS_verify | 1 | stack_st_X509 * | +| (CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int) | | CMS_verify | 2 | X509_STORE * | +| (CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int) | | CMS_verify | 3 | BIO * | +| (CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int) | | CMS_verify | 4 | BIO * | +| (CMS_ContentInfo *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,unsigned int) | | CMS_verify | 5 | unsigned int | +| (CMS_ContentInfo *,stack_st_X509_CRL **) | | ossl_cms_get1_crls_ex | 0 | CMS_ContentInfo * | +| (CMS_ContentInfo *,stack_st_X509_CRL **) | | ossl_cms_get1_crls_ex | 1 | stack_st_X509_CRL ** | +| (CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *) | | ossl_cms_EncryptedContent_init | 0 | CMS_EncryptedContentInfo * | +| (CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *) | | ossl_cms_EncryptedContent_init | 1 | const EVP_CIPHER * | +| (CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *) | | ossl_cms_EncryptedContent_init | 2 | const unsigned char * | +| (CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *) | | ossl_cms_EncryptedContent_init | 3 | size_t | +| (CMS_EncryptedContentInfo *,const EVP_CIPHER *,const unsigned char *,size_t,const CMS_CTX *) | | ossl_cms_EncryptedContent_init | 4 | const CMS_CTX * | +| (CMS_EnvelopedData *) | | OSSL_CRMF_ENCRYPTEDKEY_init_envdata | 0 | CMS_EnvelopedData * | +| (CMS_EnvelopedData *,BIO *,EVP_PKEY *,X509 *,ASN1_OCTET_STRING *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_decrypt | 0 | CMS_EnvelopedData * | +| (CMS_EnvelopedData *,BIO *,EVP_PKEY *,X509 *,ASN1_OCTET_STRING *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_decrypt | 1 | BIO * | +| (CMS_EnvelopedData *,BIO *,EVP_PKEY *,X509 *,ASN1_OCTET_STRING *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_decrypt | 2 | EVP_PKEY * | +| (CMS_EnvelopedData *,BIO *,EVP_PKEY *,X509 *,ASN1_OCTET_STRING *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_decrypt | 3 | X509 * | +| (CMS_EnvelopedData *,BIO *,EVP_PKEY *,X509 *,ASN1_OCTET_STRING *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_decrypt | 4 | ASN1_OCTET_STRING * | +| (CMS_EnvelopedData *,BIO *,EVP_PKEY *,X509 *,ASN1_OCTET_STRING *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_decrypt | 5 | unsigned int | +| (CMS_EnvelopedData *,BIO *,EVP_PKEY *,X509 *,ASN1_OCTET_STRING *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_decrypt | 6 | OSSL_LIB_CTX * | +| (CMS_EnvelopedData *,BIO *,EVP_PKEY *,X509 *,ASN1_OCTET_STRING *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_decrypt | 7 | const char * | +| (CMS_IssuerAndSerialNumber **,X509 *) | | ossl_cms_set1_ias | 0 | CMS_IssuerAndSerialNumber ** | +| (CMS_IssuerAndSerialNumber **,X509 *) | | ossl_cms_set1_ias | 1 | X509 * | +| (CMS_IssuerAndSerialNumber *,X509 *) | | ossl_cms_ias_cert_cmp | 0 | CMS_IssuerAndSerialNumber * | +| (CMS_IssuerAndSerialNumber *,X509 *) | | ossl_cms_ias_cert_cmp | 1 | X509 * | +| (CMS_ReceiptRequest *) | | CMS_ReceiptRequest_free | 0 | CMS_ReceiptRequest * | +| (CMS_ReceiptRequest **,const unsigned char **,long) | | d2i_CMS_ReceiptRequest | 0 | CMS_ReceiptRequest ** | +| (CMS_ReceiptRequest **,const unsigned char **,long) | | d2i_CMS_ReceiptRequest | 1 | const unsigned char ** | +| (CMS_ReceiptRequest **,const unsigned char **,long) | | d2i_CMS_ReceiptRequest | 2 | long | +| (CMS_ReceiptRequest *,ASN1_STRING **,int *,stack_st_GENERAL_NAMES **,stack_st_GENERAL_NAMES **) | | CMS_ReceiptRequest_get0_values | 0 | CMS_ReceiptRequest * | +| (CMS_ReceiptRequest *,ASN1_STRING **,int *,stack_st_GENERAL_NAMES **,stack_st_GENERAL_NAMES **) | | CMS_ReceiptRequest_get0_values | 1 | ASN1_STRING ** | +| (CMS_ReceiptRequest *,ASN1_STRING **,int *,stack_st_GENERAL_NAMES **,stack_st_GENERAL_NAMES **) | | CMS_ReceiptRequest_get0_values | 2 | int * | +| (CMS_ReceiptRequest *,ASN1_STRING **,int *,stack_st_GENERAL_NAMES **,stack_st_GENERAL_NAMES **) | | CMS_ReceiptRequest_get0_values | 3 | stack_st_GENERAL_NAMES ** | +| (CMS_ReceiptRequest *,ASN1_STRING **,int *,stack_st_GENERAL_NAMES **,stack_st_GENERAL_NAMES **) | | CMS_ReceiptRequest_get0_values | 4 | stack_st_GENERAL_NAMES ** | +| (CMS_RecipientEncryptedKey *,X509 *) | | CMS_RecipientEncryptedKey_cert_cmp | 0 | CMS_RecipientEncryptedKey * | +| (CMS_RecipientEncryptedKey *,X509 *) | | CMS_RecipientEncryptedKey_cert_cmp | 1 | X509 * | +| (CMS_RecipientInfo *) | | CMS_RecipientInfo_type | 0 | CMS_RecipientInfo * | +| (CMS_RecipientInfo *,X509 *) | | CMS_RecipientInfo_kari_orig_id_cmp | 0 | CMS_RecipientInfo * | +| (CMS_RecipientInfo *,X509 *) | | CMS_RecipientInfo_kari_orig_id_cmp | 1 | X509 * | +| (CMS_RecipientInfo *,X509 *) | | CMS_RecipientInfo_ktri_cert_cmp | 0 | CMS_RecipientInfo * | +| (CMS_RecipientInfo *,X509 *) | | CMS_RecipientInfo_ktri_cert_cmp | 1 | X509 * | +| (CMS_RecipientInfo *,X509 *,EVP_PKEY *,X509 *,EVP_PKEY *,unsigned int,const CMS_CTX *) | | ossl_cms_RecipientInfo_kari_init | 0 | CMS_RecipientInfo * | +| (CMS_RecipientInfo *,X509 *,EVP_PKEY *,X509 *,EVP_PKEY *,unsigned int,const CMS_CTX *) | | ossl_cms_RecipientInfo_kari_init | 1 | X509 * | +| (CMS_RecipientInfo *,X509 *,EVP_PKEY *,X509 *,EVP_PKEY *,unsigned int,const CMS_CTX *) | | ossl_cms_RecipientInfo_kari_init | 2 | EVP_PKEY * | +| (CMS_RecipientInfo *,X509 *,EVP_PKEY *,X509 *,EVP_PKEY *,unsigned int,const CMS_CTX *) | | ossl_cms_RecipientInfo_kari_init | 3 | X509 * | +| (CMS_RecipientInfo *,X509 *,EVP_PKEY *,X509 *,EVP_PKEY *,unsigned int,const CMS_CTX *) | | ossl_cms_RecipientInfo_kari_init | 4 | EVP_PKEY * | +| (CMS_RecipientInfo *,X509 *,EVP_PKEY *,X509 *,EVP_PKEY *,unsigned int,const CMS_CTX *) | | ossl_cms_RecipientInfo_kari_init | 5 | unsigned int | +| (CMS_RecipientInfo *,X509 *,EVP_PKEY *,X509 *,EVP_PKEY *,unsigned int,const CMS_CTX *) | | ossl_cms_RecipientInfo_kari_init | 6 | const CMS_CTX * | +| (CMS_RecipientInfo *,const unsigned char *,size_t) | | CMS_RecipientInfo_kekri_id_cmp | 0 | CMS_RecipientInfo * | +| (CMS_RecipientInfo *,const unsigned char *,size_t) | | CMS_RecipientInfo_kekri_id_cmp | 1 | const unsigned char * | +| (CMS_RecipientInfo *,const unsigned char *,size_t) | | CMS_RecipientInfo_kekri_id_cmp | 2 | size_t | +| (CMS_SignedData *) | | CMS_SignedData_free | 0 | CMS_SignedData * | +| (CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_SignedData_verify | 0 | CMS_SignedData * | +| (CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_SignedData_verify | 1 | BIO * | +| (CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_SignedData_verify | 2 | stack_st_X509 * | +| (CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_SignedData_verify | 3 | X509_STORE * | +| (CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_SignedData_verify | 4 | stack_st_X509 * | +| (CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_SignedData_verify | 5 | stack_st_X509_CRL * | +| (CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_SignedData_verify | 6 | unsigned int | +| (CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_SignedData_verify | 7 | OSSL_LIB_CTX * | +| (CMS_SignedData *,BIO *,stack_st_X509 *,X509_STORE *,stack_st_X509 *,stack_st_X509_CRL *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_SignedData_verify | 8 | const char * | +| (CMS_SignerIdentifier *,ASN1_OCTET_STRING **,X509_NAME **,ASN1_INTEGER **) | | ossl_cms_SignerIdentifier_get0_signer_id | 0 | CMS_SignerIdentifier * | +| (CMS_SignerIdentifier *,ASN1_OCTET_STRING **,X509_NAME **,ASN1_INTEGER **) | | ossl_cms_SignerIdentifier_get0_signer_id | 1 | ASN1_OCTET_STRING ** | +| (CMS_SignerIdentifier *,ASN1_OCTET_STRING **,X509_NAME **,ASN1_INTEGER **) | | ossl_cms_SignerIdentifier_get0_signer_id | 2 | X509_NAME ** | +| (CMS_SignerIdentifier *,ASN1_OCTET_STRING **,X509_NAME **,ASN1_INTEGER **) | | ossl_cms_SignerIdentifier_get0_signer_id | 3 | ASN1_INTEGER ** | +| (CMS_SignerIdentifier *,X509 *) | | ossl_cms_SignerIdentifier_cert_cmp | 0 | CMS_SignerIdentifier * | +| (CMS_SignerIdentifier *,X509 *) | | ossl_cms_SignerIdentifier_cert_cmp | 1 | X509 * | +| (CMS_SignerIdentifier *,X509 *,int,const CMS_CTX *) | | ossl_cms_set1_SignerIdentifier | 0 | CMS_SignerIdentifier * | +| (CMS_SignerIdentifier *,X509 *,int,const CMS_CTX *) | | ossl_cms_set1_SignerIdentifier | 1 | X509 * | +| (CMS_SignerIdentifier *,X509 *,int,const CMS_CTX *) | | ossl_cms_set1_SignerIdentifier | 2 | int | +| (CMS_SignerIdentifier *,X509 *,int,const CMS_CTX *) | | ossl_cms_set1_SignerIdentifier | 3 | const CMS_CTX * | +| (CMS_SignerInfo *) | | CMS_SignerInfo_get0_md_ctx | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *) | | CMS_SignerInfo_get0_pkey_ctx | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *) | | CMS_SignerInfo_get0_signature | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *) | | ossl_cms_encode_Receipt | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,BIO *) | | CMS_SignerInfo_verify_content | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,BIO *) | | CMS_SignerInfo_verify_content | 1 | BIO * | +| (CMS_SignerInfo *,CMS_ReceiptRequest *) | | CMS_add1_ReceiptRequest | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,CMS_ReceiptRequest *) | | CMS_add1_ReceiptRequest | 1 | CMS_ReceiptRequest * | +| (CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **) | | CMS_SignerInfo_get0_algs | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **) | | CMS_SignerInfo_get0_algs | 1 | EVP_PKEY ** | +| (CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **) | | CMS_SignerInfo_get0_algs | 2 | X509 ** | +| (CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **) | | CMS_SignerInfo_get0_algs | 3 | X509_ALGOR ** | +| (CMS_SignerInfo *,EVP_PKEY **,X509 **,X509_ALGOR **,X509_ALGOR **) | | CMS_SignerInfo_get0_algs | 4 | X509_ALGOR ** | +| (CMS_SignerInfo *,X509 *) | | CMS_SignerInfo_cert_cmp | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,X509 *) | | CMS_SignerInfo_cert_cmp | 1 | X509 * | +| (CMS_SignerInfo *,X509 *) | | CMS_SignerInfo_set1_signer_cert | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,X509 *) | | CMS_SignerInfo_set1_signer_cert | 1 | X509 * | +| (CMS_SignerInfo *,X509 *,EVP_PKEY *,stack_st_X509 *,unsigned int) | | CMS_sign_receipt | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,X509 *,EVP_PKEY *,stack_st_X509 *,unsigned int) | | CMS_sign_receipt | 1 | X509 * | +| (CMS_SignerInfo *,X509 *,EVP_PKEY *,stack_st_X509 *,unsigned int) | | CMS_sign_receipt | 2 | EVP_PKEY * | +| (CMS_SignerInfo *,X509 *,EVP_PKEY *,stack_st_X509 *,unsigned int) | | CMS_sign_receipt | 3 | stack_st_X509 * | +| (CMS_SignerInfo *,X509 *,EVP_PKEY *,stack_st_X509 *,unsigned int) | | CMS_sign_receipt | 4 | unsigned int | +| (CMS_SignerInfo *,X509_ATTRIBUTE *) | | CMS_signed_add1_attr | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,X509_ATTRIBUTE *) | | CMS_signed_add1_attr | 1 | X509_ATTRIBUTE * | +| (CMS_SignerInfo *,X509_ATTRIBUTE *) | | CMS_unsigned_add1_attr | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,X509_ATTRIBUTE *) | | CMS_unsigned_add1_attr | 1 | X509_ATTRIBUTE * | +| (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,int) | | CMS_signed_delete_attr | 1 | int | +| (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,int) | | CMS_unsigned_delete_attr | 1 | int | +| (CMS_SignerInfo *,stack_st_X509_ALGOR *) | | CMS_add_smimecap | 0 | CMS_SignerInfo * | +| (CMS_SignerInfo *,stack_st_X509_ALGOR *) | | CMS_add_smimecap | 1 | stack_st_X509_ALGOR * | +| (COMP_CTX *,unsigned char *,int,unsigned char *,int) | | COMP_compress_block | 0 | COMP_CTX * | +| (COMP_CTX *,unsigned char *,int,unsigned char *,int) | | COMP_compress_block | 1 | unsigned char * | +| (COMP_CTX *,unsigned char *,int,unsigned char *,int) | | COMP_compress_block | 2 | int | +| (COMP_CTX *,unsigned char *,int,unsigned char *,int) | | COMP_compress_block | 3 | unsigned char * | +| (COMP_CTX *,unsigned char *,int,unsigned char *,int) | | COMP_compress_block | 4 | int | +| (COMP_CTX *,unsigned char *,int,unsigned char *,int) | | COMP_expand_block | 0 | COMP_CTX * | +| (COMP_CTX *,unsigned char *,int,unsigned char *,int) | | COMP_expand_block | 1 | unsigned char * | +| (COMP_CTX *,unsigned char *,int,unsigned char *,int) | | COMP_expand_block | 2 | int | +| (COMP_CTX *,unsigned char *,int,unsigned char *,int) | | COMP_expand_block | 3 | unsigned char * | +| (COMP_CTX *,unsigned char *,int,unsigned char *,int) | | COMP_expand_block | 4 | int | +| (COMP_METHOD *) | | COMP_CTX_new | 0 | COMP_METHOD * | +| (CONF *,CONF_VALUE *,CONF_VALUE *) | | _CONF_add_string | 0 | CONF * | +| (CONF *,CONF_VALUE *,CONF_VALUE *) | | _CONF_add_string | 1 | CONF_VALUE * | +| (CONF *,CONF_VALUE *,CONF_VALUE *) | | _CONF_add_string | 2 | CONF_VALUE * | +| (CONF *,X509V3_CTX *,const char *,stack_st_X509_EXTENSION **) | | X509V3_EXT_add_nconf_sk | 0 | CONF * | +| (CONF *,X509V3_CTX *,const char *,stack_st_X509_EXTENSION **) | | X509V3_EXT_add_nconf_sk | 1 | X509V3_CTX * | +| (CONF *,X509V3_CTX *,const char *,stack_st_X509_EXTENSION **) | | X509V3_EXT_add_nconf_sk | 2 | const char * | +| (CONF *,X509V3_CTX *,const char *,stack_st_X509_EXTENSION **) | | X509V3_EXT_add_nconf_sk | 3 | stack_st_X509_EXTENSION ** | +| (CONF *,X509V3_CTX *,int,const char *) | | X509V3_EXT_nconf_nid | 0 | CONF * | +| (CONF *,X509V3_CTX *,int,const char *) | | X509V3_EXT_nconf_nid | 1 | X509V3_CTX * | +| (CONF *,X509V3_CTX *,int,const char *) | | X509V3_EXT_nconf_nid | 2 | int | +| (CONF *,X509V3_CTX *,int,const char *) | | X509V3_EXT_nconf_nid | 3 | const char * | +| (CONF *,const char *) | | TS_CONF_get_tsa_section | 0 | CONF * | +| (CONF *,const char *) | | TS_CONF_get_tsa_section | 1 | const char * | +| (CONF *,const char *) | | _CONF_new_section | 0 | CONF * | +| (CONF *,const char *) | | _CONF_new_section | 1 | const char * | +| (CONF *,const char *,TS_serial_cb,TS_RESP_CTX *) | | TS_CONF_set_serial | 0 | CONF * | +| (CONF *,const char *,TS_serial_cb,TS_RESP_CTX *) | | TS_CONF_set_serial | 1 | const char * | +| (CONF *,const char *,TS_serial_cb,TS_RESP_CTX *) | | TS_CONF_set_serial | 2 | TS_serial_cb | +| (CONF *,const char *,TS_serial_cb,TS_RESP_CTX *) | | TS_CONF_set_serial | 3 | TS_RESP_CTX * | +| (CONF *,const char *,X509_ACERT *) | | X509_ACERT_add_attr_nconf | 0 | CONF * | +| (CONF *,const char *,X509_ACERT *) | | X509_ACERT_add_attr_nconf | 1 | const char * | +| (CONF *,const char *,X509_ACERT *) | | X509_ACERT_add_attr_nconf | 2 | X509_ACERT * | +| (CONF *,lhash_st_CONF_VALUE *) | | CONF_set_nconf | 0 | CONF * | +| (CONF *,lhash_st_CONF_VALUE *) | | CONF_set_nconf | 1 | lhash_st_CONF_VALUE * | +| (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 0 | CONF_IMODULE * | +| (CONF_IMODULE *,unsigned long) | | CONF_imodule_set_flags | 1 | unsigned long | +| (CONF_IMODULE *,void *) | | CONF_imodule_set_usr_data | 0 | CONF_IMODULE * | +| (CONF_IMODULE *,void *) | | CONF_imodule_set_usr_data | 1 | void * | +| (CONF_MODULE *) | | CONF_module_get_usr_data | 0 | CONF_MODULE * | +| (CONF_MODULE *,void *) | | CONF_module_set_usr_data | 0 | CONF_MODULE * | +| (CONF_MODULE *,void *) | | CONF_module_set_usr_data | 1 | void * | +| (CRL_DIST_POINTS *) | | CRL_DIST_POINTS_free | 0 | CRL_DIST_POINTS * | +| (CRL_DIST_POINTS **,const unsigned char **,long) | | d2i_CRL_DIST_POINTS | 0 | CRL_DIST_POINTS ** | +| (CRL_DIST_POINTS **,const unsigned char **,long) | | d2i_CRL_DIST_POINTS | 1 | const unsigned char ** | +| (CRL_DIST_POINTS **,const unsigned char **,long) | | d2i_CRL_DIST_POINTS | 2 | long | +| (CRYPTO_EX_DATA *,int,void *) | | CRYPTO_set_ex_data | 0 | CRYPTO_EX_DATA * | +| (CRYPTO_EX_DATA *,int,void *) | | CRYPTO_set_ex_data | 1 | int | +| (CRYPTO_EX_DATA *,int,void *) | | CRYPTO_set_ex_data | 2 | void * | +| (CRYPTO_RCU_LOCK *,rcu_cb_fn,void *) | | ossl_rcu_call | 0 | CRYPTO_RCU_LOCK * | +| (CRYPTO_RCU_LOCK *,rcu_cb_fn,void *) | | ossl_rcu_call | 1 | rcu_cb_fn | +| (CRYPTO_RCU_LOCK *,rcu_cb_fn,void *) | | ossl_rcu_call | 2 | void * | +| (CRYPTO_THREAD *,CRYPTO_THREAD_RETVAL *) | | ossl_crypto_thread_native_join | 0 | CRYPTO_THREAD * | +| (CRYPTO_THREAD *,CRYPTO_THREAD_RETVAL *) | | ossl_crypto_thread_native_join | 1 | CRYPTO_THREAD_RETVAL * | +| (CRYPTO_THREAD_LOCAL *) | | CRYPTO_THREAD_cleanup_local | 0 | CRYPTO_THREAD_LOCAL * | +| (CRYPTO_THREAD_LOCAL *) | | CRYPTO_THREAD_get_local | 0 | CRYPTO_THREAD_LOCAL * | +| (CRYPTO_THREAD_LOCAL *,void *) | | CRYPTO_THREAD_set_local | 0 | CRYPTO_THREAD_LOCAL * | +| (CRYPTO_THREAD_LOCAL *,void *) | | CRYPTO_THREAD_set_local | 1 | void * | +| (CRYPTO_THREAD_ROUTINE,void *,int) | | ossl_crypto_thread_native_start | 0 | CRYPTO_THREAD_ROUTINE | +| (CRYPTO_THREAD_ROUTINE,void *,int) | | ossl_crypto_thread_native_start | 1 | void * | +| (CRYPTO_THREAD_ROUTINE,void *,int) | | ossl_crypto_thread_native_start | 2 | int | | (CRegKey &) | CRegKey | CRegKey | 0 | CRegKey & | +| (CTLOG **,const char *,const char *) | | CTLOG_new_from_base64 | 0 | CTLOG ** | +| (CTLOG **,const char *,const char *) | | CTLOG_new_from_base64 | 1 | const char * | +| (CTLOG **,const char *,const char *) | | CTLOG_new_from_base64 | 2 | const char * | +| (CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | CTLOG_new_from_base64_ex | 0 | CTLOG ** | +| (CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | CTLOG_new_from_base64_ex | 1 | const char * | +| (CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | CTLOG_new_from_base64_ex | 2 | const char * | +| (CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | CTLOG_new_from_base64_ex | 3 | OSSL_LIB_CTX * | +| (CTLOG **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | CTLOG_new_from_base64_ex | 4 | const char * | +| (CT_POLICY_EVAL_CTX *,CTLOG_STORE *) | | CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE | 0 | CT_POLICY_EVAL_CTX * | +| (CT_POLICY_EVAL_CTX *,CTLOG_STORE *) | | CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE | 1 | CTLOG_STORE * | +| (CT_POLICY_EVAL_CTX *,X509 *) | | CT_POLICY_EVAL_CTX_set1_cert | 0 | CT_POLICY_EVAL_CTX * | +| (CT_POLICY_EVAL_CTX *,X509 *) | | CT_POLICY_EVAL_CTX_set1_cert | 1 | X509 * | +| (CT_POLICY_EVAL_CTX *,X509 *) | | CT_POLICY_EVAL_CTX_set1_issuer | 0 | CT_POLICY_EVAL_CTX * | +| (CT_POLICY_EVAL_CTX *,X509 *) | | CT_POLICY_EVAL_CTX_set1_issuer | 1 | X509 * | +| (CT_POLICY_EVAL_CTX *,uint64_t) | | CT_POLICY_EVAL_CTX_set_time | 0 | CT_POLICY_EVAL_CTX * | +| (CT_POLICY_EVAL_CTX *,uint64_t) | | CT_POLICY_EVAL_CTX_set_time | 1 | uint64_t | +| (DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *) | | DES_decrypt3 | 0 | DES_LONG * | +| (DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *) | | DES_decrypt3 | 1 | DES_key_schedule * | +| (DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *) | | DES_decrypt3 | 2 | DES_key_schedule * | +| (DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *) | | DES_decrypt3 | 3 | DES_key_schedule * | +| (DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *) | | DES_encrypt3 | 0 | DES_LONG * | +| (DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *) | | DES_encrypt3 | 1 | DES_key_schedule * | +| (DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *) | | DES_encrypt3 | 2 | DES_key_schedule * | +| (DES_LONG *,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *) | | DES_encrypt3 | 3 | DES_key_schedule * | +| (DES_cblock *) | | DES_random_key | 0 | DES_cblock * | +| (DES_cblock *) | | DES_set_odd_parity | 0 | DES_cblock * | +| (DH *) | | DH_get0_engine | 0 | DH * | +| (DH *) | | ossl_dh_get0_params | 0 | DH * | +| (DH *) | | ssl_dh_to_pkey | 0 | DH * | +| (DH **,const unsigned char **,long) | | d2i_DHparams | 0 | DH ** | +| (DH **,const unsigned char **,long) | | d2i_DHparams | 1 | const unsigned char ** | +| (DH **,const unsigned char **,long) | | d2i_DHparams | 2 | long | +| (DH **,const unsigned char **,long) | | d2i_DHxparams | 0 | DH ** | +| (DH **,const unsigned char **,long) | | d2i_DHxparams | 1 | const unsigned char ** | +| (DH **,const unsigned char **,long) | | d2i_DHxparams | 2 | long | +| (DH **,const unsigned char **,long) | | ossl_d2i_DH_PUBKEY | 0 | DH ** | +| (DH **,const unsigned char **,long) | | ossl_d2i_DH_PUBKEY | 1 | const unsigned char ** | +| (DH **,const unsigned char **,long) | | ossl_d2i_DH_PUBKEY | 2 | long | +| (DH **,const unsigned char **,long) | | ossl_d2i_DHx_PUBKEY | 0 | DH ** | +| (DH **,const unsigned char **,long) | | ossl_d2i_DHx_PUBKEY | 1 | const unsigned char ** | +| (DH **,const unsigned char **,long) | | ossl_d2i_DHx_PUBKEY | 2 | long | +| (DH *,BIGNUM *,BIGNUM *) | | DH_set0_key | 0 | DH * | +| (DH *,BIGNUM *,BIGNUM *) | | DH_set0_key | 1 | BIGNUM * | +| (DH *,BIGNUM *,BIGNUM *) | | DH_set0_key | 2 | BIGNUM * | +| (DH *,BIGNUM *,BIGNUM *,BIGNUM *) | | DH_set0_pqg | 0 | DH * | +| (DH *,BIGNUM *,BIGNUM *,BIGNUM *) | | DH_set0_pqg | 1 | BIGNUM * | +| (DH *,BIGNUM *,BIGNUM *,BIGNUM *) | | DH_set0_pqg | 2 | BIGNUM * | +| (DH *,BIGNUM *,BIGNUM *,BIGNUM *) | | DH_set0_pqg | 3 | BIGNUM * | +| (DH *,OSSL_LIB_CTX *) | | ossl_dh_set0_libctx | 0 | DH * | +| (DH *,OSSL_LIB_CTX *) | | ossl_dh_set0_libctx | 1 | OSSL_LIB_CTX * | +| (DH *,OSSL_PARAM_BLD *,OSSL_PARAM[]) | | ossl_dh_params_todata | 0 | DH * | +| (DH *,OSSL_PARAM_BLD *,OSSL_PARAM[]) | | ossl_dh_params_todata | 1 | OSSL_PARAM_BLD * | +| (DH *,OSSL_PARAM_BLD *,OSSL_PARAM[]) | | ossl_dh_params_todata | 2 | OSSL_PARAM[] | +| (DH *,OSSL_PARAM_BLD *,OSSL_PARAM[],int) | | ossl_dh_key_todata | 0 | DH * | +| (DH *,OSSL_PARAM_BLD *,OSSL_PARAM[],int) | | ossl_dh_key_todata | 1 | OSSL_PARAM_BLD * | +| (DH *,OSSL_PARAM_BLD *,OSSL_PARAM[],int) | | ossl_dh_key_todata | 2 | OSSL_PARAM[] | +| (DH *,OSSL_PARAM_BLD *,OSSL_PARAM[],int) | | ossl_dh_key_todata | 3 | int | +| (DH *,const DH_METHOD *) | | DH_set_method | 0 | DH * | +| (DH *,const DH_METHOD *) | | DH_set_method | 1 | const DH_METHOD * | +| (DH *,const OSSL_PARAM[]) | | ossl_dh_params_fromdata | 0 | DH * | +| (DH *,const OSSL_PARAM[]) | | ossl_dh_params_fromdata | 1 | const OSSL_PARAM[] | +| (DH *,const OSSL_PARAM[],int) | | ossl_dh_key_fromdata | 0 | DH * | +| (DH *,const OSSL_PARAM[],int) | | ossl_dh_key_fromdata | 1 | const OSSL_PARAM[] | +| (DH *,const OSSL_PARAM[],int) | | ossl_dh_key_fromdata | 2 | int | +| (DH *,const unsigned char *,size_t) | | ossl_dh_buf2key | 0 | DH * | +| (DH *,const unsigned char *,size_t) | | ossl_dh_buf2key | 1 | const unsigned char * | +| (DH *,const unsigned char *,size_t) | | ossl_dh_buf2key | 2 | size_t | +| (DH *,int) | | DH_clear_flags | 0 | DH * | +| (DH *,int) | | DH_clear_flags | 1 | int | +| (DH *,int) | | DH_set_flags | 0 | DH * | +| (DH *,int) | | DH_set_flags | 1 | int | +| (DH *,int,int,int,BN_GENCB *) | | ossl_dh_generate_ffc_parameters | 0 | DH * | +| (DH *,int,int,int,BN_GENCB *) | | ossl_dh_generate_ffc_parameters | 1 | int | +| (DH *,int,int,int,BN_GENCB *) | | ossl_dh_generate_ffc_parameters | 2 | int | +| (DH *,int,int,int,BN_GENCB *) | | ossl_dh_generate_ffc_parameters | 3 | int | +| (DH *,int,int,int,BN_GENCB *) | | ossl_dh_generate_ffc_parameters | 4 | BN_GENCB * | +| (DH *,long) | | DH_set_length | 0 | DH * | +| (DH *,long) | | DH_set_length | 1 | long | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_bn_mod_exp | 0 | DH_METHOD * | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_bn_mod_exp | 1 | ..(*)(..) | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_compute_key | 0 | DH_METHOD * | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_compute_key | 1 | ..(*)(..) | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_finish | 0 | DH_METHOD * | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_finish | 1 | ..(*)(..) | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_generate_key | 0 | DH_METHOD * | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_generate_key | 1 | ..(*)(..) | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_generate_params | 0 | DH_METHOD * | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_generate_params | 1 | ..(*)(..) | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_init | 0 | DH_METHOD * | +| (DH_METHOD *,..(*)(..)) | | DH_meth_set_init | 1 | ..(*)(..) | +| (DH_METHOD *,const char *) | | DH_meth_set1_name | 0 | DH_METHOD * | +| (DH_METHOD *,const char *) | | DH_meth_set1_name | 1 | const char * | +| (DH_METHOD *,int) | | DH_meth_set_flags | 0 | DH_METHOD * | +| (DH_METHOD *,int) | | DH_meth_set_flags | 1 | int | +| (DH_METHOD *,void *) | | DH_meth_set0_app_data | 0 | DH_METHOD * | +| (DH_METHOD *,void *) | | DH_meth_set0_app_data | 1 | void * | +| (DIST_POINT *) | | DIST_POINT_free | 0 | DIST_POINT * | +| (DIST_POINT **,const unsigned char **,long) | | d2i_DIST_POINT | 0 | DIST_POINT ** | +| (DIST_POINT **,const unsigned char **,long) | | d2i_DIST_POINT | 1 | const unsigned char ** | +| (DIST_POINT **,const unsigned char **,long) | | d2i_DIST_POINT | 2 | long | +| (DIST_POINT_NAME *) | | DIST_POINT_NAME_free | 0 | DIST_POINT_NAME * | +| (DIST_POINT_NAME **,const unsigned char **,long) | | d2i_DIST_POINT_NAME | 0 | DIST_POINT_NAME ** | +| (DIST_POINT_NAME **,const unsigned char **,long) | | d2i_DIST_POINT_NAME | 1 | const unsigned char ** | +| (DIST_POINT_NAME **,const unsigned char **,long) | | d2i_DIST_POINT_NAME | 2 | long | +| (DIST_POINT_NAME *,const X509_NAME *) | | DIST_POINT_set_dpname | 0 | DIST_POINT_NAME * | +| (DIST_POINT_NAME *,const X509_NAME *) | | DIST_POINT_set_dpname | 1 | const X509_NAME * | +| (DSA *) | | DSA_get0_engine | 0 | DSA * | +| (DSA *) | | DSA_get_method | 0 | DSA * | +| (DSA *) | | ossl_dsa_get0_params | 0 | DSA * | +| (DSA **,const unsigned char **,long) | | d2i_DSAPrivateKey | 0 | DSA ** | +| (DSA **,const unsigned char **,long) | | d2i_DSAPrivateKey | 1 | const unsigned char ** | +| (DSA **,const unsigned char **,long) | | d2i_DSAPrivateKey | 2 | long | +| (DSA **,const unsigned char **,long) | | d2i_DSAPublicKey | 0 | DSA ** | +| (DSA **,const unsigned char **,long) | | d2i_DSAPublicKey | 1 | const unsigned char ** | +| (DSA **,const unsigned char **,long) | | d2i_DSAPublicKey | 2 | long | +| (DSA **,const unsigned char **,long) | | d2i_DSA_PUBKEY | 0 | DSA ** | +| (DSA **,const unsigned char **,long) | | d2i_DSA_PUBKEY | 1 | const unsigned char ** | +| (DSA **,const unsigned char **,long) | | d2i_DSA_PUBKEY | 2 | long | +| (DSA **,const unsigned char **,long) | | d2i_DSAparams | 0 | DSA ** | +| (DSA **,const unsigned char **,long) | | d2i_DSAparams | 1 | const unsigned char ** | +| (DSA **,const unsigned char **,long) | | d2i_DSAparams | 2 | long | +| (DSA **,const unsigned char **,long) | | ossl_d2i_DSA_PUBKEY | 0 | DSA ** | +| (DSA **,const unsigned char **,long) | | ossl_d2i_DSA_PUBKEY | 1 | const unsigned char ** | +| (DSA **,const unsigned char **,long) | | ossl_d2i_DSA_PUBKEY | 2 | long | +| (DSA *,BIGNUM *,BIGNUM *) | | DSA_set0_key | 0 | DSA * | +| (DSA *,BIGNUM *,BIGNUM *) | | DSA_set0_key | 1 | BIGNUM * | +| (DSA *,BIGNUM *,BIGNUM *) | | DSA_set0_key | 2 | BIGNUM * | +| (DSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | DSA_set0_pqg | 0 | DSA * | +| (DSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | DSA_set0_pqg | 1 | BIGNUM * | +| (DSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | DSA_set0_pqg | 2 | BIGNUM * | +| (DSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | DSA_set0_pqg | 3 | BIGNUM * | +| (DSA *,OSSL_LIB_CTX *) | | ossl_dsa_set0_libctx | 0 | DSA * | +| (DSA *,OSSL_LIB_CTX *) | | ossl_dsa_set0_libctx | 1 | OSSL_LIB_CTX * | +| (DSA *,const DSA_METHOD *) | | DSA_set_method | 0 | DSA * | +| (DSA *,const DSA_METHOD *) | | DSA_set_method | 1 | const DSA_METHOD * | +| (DSA *,const OSSL_PARAM[]) | | ossl_dsa_ffc_params_fromdata | 0 | DSA * | +| (DSA *,const OSSL_PARAM[]) | | ossl_dsa_ffc_params_fromdata | 1 | const OSSL_PARAM[] | +| (DSA *,const OSSL_PARAM[],int) | | ossl_dsa_key_fromdata | 0 | DSA * | +| (DSA *,const OSSL_PARAM[],int) | | ossl_dsa_key_fromdata | 1 | const OSSL_PARAM[] | +| (DSA *,const OSSL_PARAM[],int) | | ossl_dsa_key_fromdata | 2 | int | +| (DSA *,int) | | DSA_clear_flags | 0 | DSA * | +| (DSA *,int) | | DSA_clear_flags | 1 | int | +| (DSA *,int) | | DSA_set_flags | 0 | DSA * | +| (DSA *,int) | | DSA_set_flags | 1 | int | +| (DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *) | | DSA_generate_parameters_ex | 0 | DSA * | +| (DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *) | | DSA_generate_parameters_ex | 1 | int | +| (DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *) | | DSA_generate_parameters_ex | 2 | const unsigned char * | +| (DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *) | | DSA_generate_parameters_ex | 3 | int | +| (DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *) | | DSA_generate_parameters_ex | 4 | int * | +| (DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *) | | DSA_generate_parameters_ex | 5 | unsigned long * | +| (DSA *,int,const unsigned char *,int,int *,unsigned long *,BN_GENCB *) | | DSA_generate_parameters_ex | 6 | BN_GENCB * | +| (DSA *,int,int,int,BN_GENCB *) | | ossl_dsa_generate_ffc_parameters | 0 | DSA * | +| (DSA *,int,int,int,BN_GENCB *) | | ossl_dsa_generate_ffc_parameters | 1 | int | +| (DSA *,int,int,int,BN_GENCB *) | | ossl_dsa_generate_ffc_parameters | 2 | int | +| (DSA *,int,int,int,BN_GENCB *) | | ossl_dsa_generate_ffc_parameters | 3 | int | +| (DSA *,int,int,int,BN_GENCB *) | | ossl_dsa_generate_ffc_parameters | 4 | BN_GENCB * | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_bn_mod_exp | 0 | DSA_METHOD * | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_bn_mod_exp | 1 | ..(*)(..) | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_finish | 0 | DSA_METHOD * | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_finish | 1 | ..(*)(..) | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_init | 0 | DSA_METHOD * | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_init | 1 | ..(*)(..) | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_keygen | 0 | DSA_METHOD * | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_keygen | 1 | ..(*)(..) | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_mod_exp | 0 | DSA_METHOD * | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_mod_exp | 1 | ..(*)(..) | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_paramgen | 0 | DSA_METHOD * | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_paramgen | 1 | ..(*)(..) | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_sign | 0 | DSA_METHOD * | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_sign | 1 | ..(*)(..) | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_sign_setup | 0 | DSA_METHOD * | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_sign_setup | 1 | ..(*)(..) | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_verify | 0 | DSA_METHOD * | +| (DSA_METHOD *,..(*)(..)) | | DSA_meth_set_verify | 1 | ..(*)(..) | +| (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 0 | DSA_METHOD * | +| (DSA_METHOD *,const char *) | | DSA_meth_set1_name | 1 | const char * | +| (DSA_METHOD *,int) | | DSA_meth_set_flags | 0 | DSA_METHOD * | +| (DSA_METHOD *,int) | | DSA_meth_set_flags | 1 | int | +| (DSA_METHOD *,void *) | | DSA_meth_set0_app_data | 0 | DSA_METHOD * | +| (DSA_METHOD *,void *) | | DSA_meth_set0_app_data | 1 | void * | +| (DSA_SIG **,const unsigned char **,long) | | d2i_DSA_SIG | 0 | DSA_SIG ** | +| (DSA_SIG **,const unsigned char **,long) | | d2i_DSA_SIG | 1 | const unsigned char ** | +| (DSA_SIG **,const unsigned char **,long) | | d2i_DSA_SIG | 2 | long | +| (DSA_SIG *,BIGNUM *,BIGNUM *) | | DSA_SIG_set0 | 0 | DSA_SIG * | +| (DSA_SIG *,BIGNUM *,BIGNUM *) | | DSA_SIG_set0 | 1 | BIGNUM * | +| (DSA_SIG *,BIGNUM *,BIGNUM *) | | DSA_SIG_set0 | 2 | BIGNUM * | +| (DSO *) | | DSO_flags | 0 | DSO * | +| (DSO *) | | DSO_get_filename | 0 | DSO * | +| (DSO *,const char *) | | DSO_convert_filename | 0 | DSO * | +| (DSO *,const char *) | | DSO_convert_filename | 1 | const char * | +| (DSO *,const char *) | | DSO_set_filename | 0 | DSO * | +| (DSO *,const char *) | | DSO_set_filename | 1 | const char * | +| (DSO *,const char *,DSO_METHOD *,int) | | DSO_load | 0 | DSO * | +| (DSO *,const char *,DSO_METHOD *,int) | | DSO_load | 1 | const char * | +| (DSO *,const char *,DSO_METHOD *,int) | | DSO_load | 2 | DSO_METHOD * | +| (DSO *,const char *,DSO_METHOD *,int) | | DSO_load | 3 | int | +| (DSO *,int,long,void *) | | DSO_ctrl | 0 | DSO * | +| (DSO *,int,long,void *) | | DSO_ctrl | 1 | int | +| (DSO *,int,long,void *) | | DSO_ctrl | 2 | long | +| (DSO *,int,long,void *) | | DSO_ctrl | 3 | void * | | (DWORD &,LPCTSTR) | CRegKey | QueryValue | 0 | DWORD & | | (DWORD &,LPCTSTR) | CRegKey | QueryValue | 1 | LPCTSTR | +| (ECDSA_SIG **,const unsigned char **,long) | | d2i_ECDSA_SIG | 0 | ECDSA_SIG ** | +| (ECDSA_SIG **,const unsigned char **,long) | | d2i_ECDSA_SIG | 1 | const unsigned char ** | +| (ECDSA_SIG **,const unsigned char **,long) | | d2i_ECDSA_SIG | 2 | long | +| (ECDSA_SIG *,BIGNUM *,BIGNUM *) | | ECDSA_SIG_set0 | 0 | ECDSA_SIG * | +| (ECDSA_SIG *,BIGNUM *,BIGNUM *) | | ECDSA_SIG_set0 | 1 | BIGNUM * | +| (ECDSA_SIG *,BIGNUM *,BIGNUM *) | | ECDSA_SIG_set0 | 2 | BIGNUM * | +| (ECPARAMETERS *) | | ECPARAMETERS_free | 0 | ECPARAMETERS * | +| (ECPKPARAMETERS *) | | ECPKPARAMETERS_free | 0 | ECPKPARAMETERS * | +| (ECPKPARAMETERS **,const unsigned char **,long) | | d2i_ECPKPARAMETERS | 0 | ECPKPARAMETERS ** | +| (ECPKPARAMETERS **,const unsigned char **,long) | | d2i_ECPKPARAMETERS | 1 | const unsigned char ** | +| (ECPKPARAMETERS **,const unsigned char **,long) | | d2i_ECPKPARAMETERS | 2 | long | +| (ECX_KEY *) | | ossl_ecx_key_allocate_privkey | 0 | ECX_KEY * | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_ED448_PUBKEY | 0 | ECX_KEY ** | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_ED448_PUBKEY | 1 | const unsigned char ** | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_ED448_PUBKEY | 2 | long | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_ED25519_PUBKEY | 0 | ECX_KEY ** | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_ED25519_PUBKEY | 1 | const unsigned char ** | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_ED25519_PUBKEY | 2 | long | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_X448_PUBKEY | 0 | ECX_KEY ** | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_X448_PUBKEY | 1 | const unsigned char ** | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_X448_PUBKEY | 2 | long | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_X25519_PUBKEY | 0 | ECX_KEY ** | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_X25519_PUBKEY | 1 | const unsigned char ** | +| (ECX_KEY **,const unsigned char **,long) | | ossl_d2i_X25519_PUBKEY | 2 | long | +| (ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t) | | ossl_ecx_compute_key | 0 | ECX_KEY * | +| (ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t) | | ossl_ecx_compute_key | 1 | ECX_KEY * | +| (ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t) | | ossl_ecx_compute_key | 2 | size_t | +| (ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t) | | ossl_ecx_compute_key | 3 | unsigned char * | +| (ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t) | | ossl_ecx_compute_key | 4 | size_t * | +| (ECX_KEY *,ECX_KEY *,size_t,unsigned char *,size_t *,size_t) | | ossl_ecx_compute_key | 5 | size_t | +| (ECX_KEY *,OSSL_LIB_CTX *) | | ossl_ecx_key_set0_libctx | 0 | ECX_KEY * | +| (ECX_KEY *,OSSL_LIB_CTX *) | | ossl_ecx_key_set0_libctx | 1 | OSSL_LIB_CTX * | +| (ECX_KEY *,const OSSL_PARAM[],int) | | ossl_ecx_key_fromdata | 0 | ECX_KEY * | +| (ECX_KEY *,const OSSL_PARAM[],int) | | ossl_ecx_key_fromdata | 1 | const OSSL_PARAM[] | +| (ECX_KEY *,const OSSL_PARAM[],int) | | ossl_ecx_key_fromdata | 2 | int | +| (EC_GROUP **,const unsigned char **,long) | | d2i_ECPKParameters | 0 | EC_GROUP ** | +| (EC_GROUP **,const unsigned char **,long) | | d2i_ECPKParameters | 1 | const unsigned char ** | +| (EC_GROUP **,const unsigned char **,long) | | d2i_ECPKParameters | 2 | long | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_group_set_curve | 0 | EC_GROUP * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_group_set_curve | 1 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_group_set_curve | 2 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_group_set_curve | 3 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_group_set_curve | 4 | BN_CTX * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_group_set_curve | 0 | EC_GROUP * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_group_set_curve | 1 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_group_set_curve | 2 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_group_set_curve | 3 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_group_set_curve | 4 | BN_CTX * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_group_set_curve | 0 | EC_GROUP * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_group_set_curve | 1 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_group_set_curve | 2 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_group_set_curve | 3 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_group_set_curve | 4 | BN_CTX * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_group_set_curve | 0 | EC_GROUP * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_group_set_curve | 1 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_group_set_curve | 2 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_group_set_curve | 3 | const BIGNUM * | +| (EC_GROUP *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_group_set_curve | 4 | BN_CTX * | +| (EC_GROUP *,const EC_GROUP *) | | EC_GROUP_copy | 0 | EC_GROUP * | +| (EC_GROUP *,const EC_GROUP *) | | EC_GROUP_copy | 1 | const EC_GROUP * | +| (EC_GROUP *,const EC_GROUP *) | | ossl_ec_GF2m_simple_group_copy | 0 | EC_GROUP * | +| (EC_GROUP *,const EC_GROUP *) | | ossl_ec_GF2m_simple_group_copy | 1 | const EC_GROUP * | +| (EC_GROUP *,const EC_GROUP *) | | ossl_ec_GFp_mont_group_copy | 0 | EC_GROUP * | +| (EC_GROUP *,const EC_GROUP *) | | ossl_ec_GFp_mont_group_copy | 1 | const EC_GROUP * | +| (EC_GROUP *,const EC_GROUP *) | | ossl_ec_GFp_nist_group_copy | 0 | EC_GROUP * | +| (EC_GROUP *,const EC_GROUP *) | | ossl_ec_GFp_nist_group_copy | 1 | const EC_GROUP * | +| (EC_GROUP *,const EC_GROUP *) | | ossl_ec_GFp_simple_group_copy | 0 | EC_GROUP * | +| (EC_GROUP *,const EC_GROUP *) | | ossl_ec_GFp_simple_group_copy | 1 | const EC_GROUP * | +| (EC_GROUP *,const EC_POINT *,const BIGNUM *,const BIGNUM *) | | EC_GROUP_set_generator | 0 | EC_GROUP * | +| (EC_GROUP *,const EC_POINT *,const BIGNUM *,const BIGNUM *) | | EC_GROUP_set_generator | 1 | const EC_POINT * | +| (EC_GROUP *,const EC_POINT *,const BIGNUM *,const BIGNUM *) | | EC_GROUP_set_generator | 2 | const BIGNUM * | +| (EC_GROUP *,const EC_POINT *,const BIGNUM *,const BIGNUM *) | | EC_GROUP_set_generator | 3 | const BIGNUM * | +| (EC_GROUP *,const OSSL_PARAM[]) | | ossl_ec_group_set_params | 0 | EC_GROUP * | +| (EC_GROUP *,const OSSL_PARAM[]) | | ossl_ec_group_set_params | 1 | const OSSL_PARAM[] | +| (EC_GROUP *,const unsigned char *,size_t) | | EC_GROUP_set_seed | 0 | EC_GROUP * | +| (EC_GROUP *,const unsigned char *,size_t) | | EC_GROUP_set_seed | 1 | const unsigned char * | +| (EC_GROUP *,const unsigned char *,size_t) | | EC_GROUP_set_seed | 2 | size_t | +| (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 0 | EC_GROUP * | +| (EC_GROUP *,int) | | EC_GROUP_set_asn1_flag | 1 | int | +| (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 0 | EC_GROUP * | +| (EC_GROUP *,int) | | EC_GROUP_set_curve_name | 1 | int | +| (EC_GROUP *,point_conversion_form_t) | | EC_GROUP_set_point_conversion_form | 0 | EC_GROUP * | +| (EC_GROUP *,point_conversion_form_t) | | EC_GROUP_set_point_conversion_form | 1 | point_conversion_form_t | +| (EC_KEY **,const unsigned char **,long) | | d2i_ECParameters | 0 | EC_KEY ** | +| (EC_KEY **,const unsigned char **,long) | | d2i_ECParameters | 1 | const unsigned char ** | +| (EC_KEY **,const unsigned char **,long) | | d2i_ECParameters | 2 | long | +| (EC_KEY **,const unsigned char **,long) | | d2i_ECPrivateKey | 0 | EC_KEY ** | +| (EC_KEY **,const unsigned char **,long) | | d2i_ECPrivateKey | 1 | const unsigned char ** | +| (EC_KEY **,const unsigned char **,long) | | d2i_ECPrivateKey | 2 | long | +| (EC_KEY **,const unsigned char **,long) | | d2i_EC_PUBKEY | 0 | EC_KEY ** | +| (EC_KEY **,const unsigned char **,long) | | d2i_EC_PUBKEY | 1 | const unsigned char ** | +| (EC_KEY **,const unsigned char **,long) | | d2i_EC_PUBKEY | 2 | long | +| (EC_KEY **,const unsigned char **,long) | | o2i_ECPublicKey | 0 | EC_KEY ** | +| (EC_KEY **,const unsigned char **,long) | | o2i_ECPublicKey | 1 | const unsigned char ** | +| (EC_KEY **,const unsigned char **,long) | | o2i_ECPublicKey | 2 | long | +| (EC_KEY *,BN_CTX *,BIGNUM **,BIGNUM **) | | ossl_ecdsa_simple_sign_setup | 0 | EC_KEY * | +| (EC_KEY *,BN_CTX *,BIGNUM **,BIGNUM **) | | ossl_ecdsa_simple_sign_setup | 1 | BN_CTX * | +| (EC_KEY *,BN_CTX *,BIGNUM **,BIGNUM **) | | ossl_ecdsa_simple_sign_setup | 2 | BIGNUM ** | +| (EC_KEY *,BN_CTX *,BIGNUM **,BIGNUM **) | | ossl_ecdsa_simple_sign_setup | 3 | BIGNUM ** | +| (EC_KEY *,OSSL_LIB_CTX *) | | ossl_ec_key_set0_libctx | 0 | EC_KEY * | +| (EC_KEY *,OSSL_LIB_CTX *) | | ossl_ec_key_set0_libctx | 1 | OSSL_LIB_CTX * | +| (EC_KEY *,const BIGNUM *) | | EC_KEY_set_private_key | 0 | EC_KEY * | +| (EC_KEY *,const BIGNUM *) | | EC_KEY_set_private_key | 1 | const BIGNUM * | +| (EC_KEY *,const EC_GROUP *) | | EC_KEY_set_group | 0 | EC_KEY * | +| (EC_KEY *,const EC_GROUP *) | | EC_KEY_set_group | 1 | const EC_GROUP * | +| (EC_KEY *,const EC_KEY *) | | EC_KEY_copy | 0 | EC_KEY * | +| (EC_KEY *,const EC_KEY *) | | EC_KEY_copy | 1 | const EC_KEY * | +| (EC_KEY *,const EC_KEY_METHOD *) | | EC_KEY_set_method | 0 | EC_KEY * | +| (EC_KEY *,const EC_KEY_METHOD *) | | EC_KEY_set_method | 1 | const EC_KEY_METHOD * | +| (EC_KEY *,const OSSL_PARAM[]) | | ossl_ec_group_fromdata | 0 | EC_KEY * | +| (EC_KEY *,const OSSL_PARAM[]) | | ossl_ec_group_fromdata | 1 | const OSSL_PARAM[] | +| (EC_KEY *,const OSSL_PARAM[]) | | ossl_ec_key_otherparams_fromdata | 0 | EC_KEY * | +| (EC_KEY *,const OSSL_PARAM[]) | | ossl_ec_key_otherparams_fromdata | 1 | const OSSL_PARAM[] | +| (EC_KEY *,const OSSL_PARAM[],int) | | ossl_ec_key_fromdata | 0 | EC_KEY * | +| (EC_KEY *,const OSSL_PARAM[],int) | | ossl_ec_key_fromdata | 1 | const OSSL_PARAM[] | +| (EC_KEY *,const OSSL_PARAM[],int) | | ossl_ec_key_fromdata | 2 | int | +| (EC_KEY *,const unsigned char *,size_t) | | ossl_ec_key_simple_oct2priv | 0 | EC_KEY * | +| (EC_KEY *,const unsigned char *,size_t) | | ossl_ec_key_simple_oct2priv | 1 | const unsigned char * | +| (EC_KEY *,const unsigned char *,size_t) | | ossl_ec_key_simple_oct2priv | 2 | size_t | +| (EC_KEY *,const unsigned char *,size_t,BN_CTX *) | | EC_KEY_oct2key | 0 | EC_KEY * | +| (EC_KEY *,const unsigned char *,size_t,BN_CTX *) | | EC_KEY_oct2key | 1 | const unsigned char * | +| (EC_KEY *,const unsigned char *,size_t,BN_CTX *) | | EC_KEY_oct2key | 2 | size_t | +| (EC_KEY *,const unsigned char *,size_t,BN_CTX *) | | EC_KEY_oct2key | 3 | BN_CTX * | +| (EC_KEY *,int) | | EC_KEY_clear_flags | 0 | EC_KEY * | +| (EC_KEY *,int) | | EC_KEY_clear_flags | 1 | int | +| (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 0 | EC_KEY * | +| (EC_KEY *,int) | | EC_KEY_set_asn1_flag | 1 | int | +| (EC_KEY *,int) | | EC_KEY_set_flags | 0 | EC_KEY * | +| (EC_KEY *,int) | | EC_KEY_set_flags | 1 | int | +| (EC_KEY *,point_conversion_form_t) | | EC_KEY_set_conv_form | 0 | EC_KEY * | +| (EC_KEY *,point_conversion_form_t) | | EC_KEY_set_conv_form | 1 | point_conversion_form_t | +| (EC_KEY *,unsigned int) | | EC_KEY_set_enc_flags | 0 | EC_KEY * | +| (EC_KEY *,unsigned int) | | EC_KEY_set_enc_flags | 1 | unsigned int | +| (EC_KEY_METHOD *,..(*)(..)) | | EC_KEY_METHOD_set_compute_key | 0 | EC_KEY_METHOD * | +| (EC_KEY_METHOD *,..(*)(..)) | | EC_KEY_METHOD_set_compute_key | 1 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..)) | | EC_KEY_METHOD_set_keygen | 0 | EC_KEY_METHOD * | +| (EC_KEY_METHOD *,..(*)(..)) | | EC_KEY_METHOD_set_keygen | 1 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_verify | 0 | EC_KEY_METHOD * | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_verify | 1 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_verify | 2 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_sign | 0 | EC_KEY_METHOD * | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_sign | 1 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_sign | 2 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_sign | 3 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_init | 0 | EC_KEY_METHOD * | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_init | 1 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_init | 2 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_init | 3 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_init | 4 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_init | 5 | ..(*)(..) | +| (EC_KEY_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EC_KEY_METHOD_set_init | 6 | ..(*)(..) | +| (EC_POINT *,const EC_POINT *) | | ossl_ec_GF2m_simple_point_copy | 0 | EC_POINT * | +| (EC_POINT *,const EC_POINT *) | | ossl_ec_GF2m_simple_point_copy | 1 | const EC_POINT * | +| (EC_POINT *,const EC_POINT *) | | ossl_ec_GFp_simple_point_copy | 0 | EC_POINT * | +| (EC_POINT *,const EC_POINT *) | | ossl_ec_GFp_simple_point_copy | 1 | const EC_POINT * | +| (EC_PRE_COMP *) | | EC_ec_pre_comp_dup | 0 | EC_PRE_COMP * | +| (EC_PRIVATEKEY *) | | EC_PRIVATEKEY_free | 0 | EC_PRIVATEKEY * | +| (EC_PRIVATEKEY **,const unsigned char **,long) | | d2i_EC_PRIVATEKEY | 0 | EC_PRIVATEKEY ** | +| (EC_PRIVATEKEY **,const unsigned char **,long) | | d2i_EC_PRIVATEKEY | 1 | const unsigned char ** | +| (EC_PRIVATEKEY **,const unsigned char **,long) | | d2i_EC_PRIVATEKEY | 2 | long | +| (EDIPARTYNAME *) | | EDIPARTYNAME_free | 0 | EDIPARTYNAME * | +| (EDIPARTYNAME **,const unsigned char **,long) | | d2i_EDIPARTYNAME | 0 | EDIPARTYNAME ** | +| (EDIPARTYNAME **,const unsigned char **,long) | | d2i_EDIPARTYNAME | 1 | const unsigned char ** | +| (EDIPARTYNAME **,const unsigned char **,long) | | d2i_EDIPARTYNAME | 2 | long | +| (ENGINE *) | | DH_new_method | 0 | ENGINE * | +| (ENGINE *) | | DSA_new_method | 0 | ENGINE * | +| (ENGINE *) | | EC_KEY_new_method | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_add | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_get_next | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_get_prev | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_unregister_DH | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_unregister_DSA | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_unregister_EC | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_unregister_RAND | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_unregister_RSA | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_unregister_ciphers | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_unregister_digests | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_unregister_pkey_asn1_meths | 0 | ENGINE * | +| (ENGINE *) | | ENGINE_unregister_pkey_meths | 0 | ENGINE * | +| (ENGINE *) | | RSA_new_method | 0 | ENGINE * | +| (ENGINE *,ENGINE_CIPHERS_PTR) | | ENGINE_set_ciphers | 0 | ENGINE * | +| (ENGINE *,ENGINE_CIPHERS_PTR) | | ENGINE_set_ciphers | 1 | ENGINE_CIPHERS_PTR | +| (ENGINE *,ENGINE_CTRL_FUNC_PTR) | | ENGINE_set_ctrl_function | 0 | ENGINE * | +| (ENGINE *,ENGINE_CTRL_FUNC_PTR) | | ENGINE_set_ctrl_function | 1 | ENGINE_CTRL_FUNC_PTR | +| (ENGINE *,ENGINE_DIGESTS_PTR) | | ENGINE_set_digests | 0 | ENGINE * | +| (ENGINE *,ENGINE_DIGESTS_PTR) | | ENGINE_set_digests | 1 | ENGINE_DIGESTS_PTR | +| (ENGINE *,ENGINE_DYNAMIC_ID,int) | | engine_add_dynamic_id | 0 | ENGINE * | +| (ENGINE *,ENGINE_DYNAMIC_ID,int) | | engine_add_dynamic_id | 1 | ENGINE_DYNAMIC_ID | +| (ENGINE *,ENGINE_DYNAMIC_ID,int) | | engine_add_dynamic_id | 2 | int | +| (ENGINE *,ENGINE_GEN_INT_FUNC_PTR) | | ENGINE_set_destroy_function | 0 | ENGINE * | +| (ENGINE *,ENGINE_GEN_INT_FUNC_PTR) | | ENGINE_set_destroy_function | 1 | ENGINE_GEN_INT_FUNC_PTR | +| (ENGINE *,ENGINE_GEN_INT_FUNC_PTR) | | ENGINE_set_finish_function | 0 | ENGINE * | +| (ENGINE *,ENGINE_GEN_INT_FUNC_PTR) | | ENGINE_set_finish_function | 1 | ENGINE_GEN_INT_FUNC_PTR | +| (ENGINE *,ENGINE_GEN_INT_FUNC_PTR) | | ENGINE_set_init_function | 0 | ENGINE * | +| (ENGINE *,ENGINE_GEN_INT_FUNC_PTR) | | ENGINE_set_init_function | 1 | ENGINE_GEN_INT_FUNC_PTR | +| (ENGINE *,ENGINE_LOAD_KEY_PTR) | | ENGINE_set_load_privkey_function | 0 | ENGINE * | +| (ENGINE *,ENGINE_LOAD_KEY_PTR) | | ENGINE_set_load_privkey_function | 1 | ENGINE_LOAD_KEY_PTR | +| (ENGINE *,ENGINE_LOAD_KEY_PTR) | | ENGINE_set_load_pubkey_function | 0 | ENGINE * | +| (ENGINE *,ENGINE_LOAD_KEY_PTR) | | ENGINE_set_load_pubkey_function | 1 | ENGINE_LOAD_KEY_PTR | +| (ENGINE *,ENGINE_PKEY_ASN1_METHS_PTR) | | ENGINE_set_pkey_asn1_meths | 0 | ENGINE * | +| (ENGINE *,ENGINE_PKEY_ASN1_METHS_PTR) | | ENGINE_set_pkey_asn1_meths | 1 | ENGINE_PKEY_ASN1_METHS_PTR | +| (ENGINE *,ENGINE_PKEY_METHS_PTR) | | ENGINE_set_pkey_meths | 0 | ENGINE * | +| (ENGINE *,ENGINE_PKEY_METHS_PTR) | | ENGINE_set_pkey_meths | 1 | ENGINE_PKEY_METHS_PTR | +| (ENGINE *,ENGINE_SSL_CLIENT_CERT_PTR) | | ENGINE_set_load_ssl_client_cert_function | 0 | ENGINE * | +| (ENGINE *,ENGINE_SSL_CLIENT_CERT_PTR) | | ENGINE_set_load_ssl_client_cert_function | 1 | ENGINE_SSL_CLIENT_CERT_PTR | +| (ENGINE *,const DH_METHOD *) | | ENGINE_set_DH | 0 | ENGINE * | +| (ENGINE *,const DH_METHOD *) | | ENGINE_set_DH | 1 | const DH_METHOD * | +| (ENGINE *,const DSA_METHOD *) | | ENGINE_set_DSA | 0 | ENGINE * | +| (ENGINE *,const DSA_METHOD *) | | ENGINE_set_DSA | 1 | const DSA_METHOD * | +| (ENGINE *,const EC_KEY_METHOD *) | | ENGINE_set_EC | 0 | ENGINE * | +| (ENGINE *,const EC_KEY_METHOD *) | | ENGINE_set_EC | 1 | const EC_KEY_METHOD * | +| (ENGINE *,const ENGINE_CMD_DEFN *) | | ENGINE_set_cmd_defns | 0 | ENGINE * | +| (ENGINE *,const ENGINE_CMD_DEFN *) | | ENGINE_set_cmd_defns | 1 | const ENGINE_CMD_DEFN * | +| (ENGINE *,const RAND_METHOD *) | | ENGINE_set_RAND | 0 | ENGINE * | +| (ENGINE *,const RAND_METHOD *) | | ENGINE_set_RAND | 1 | const RAND_METHOD * | +| (ENGINE *,const RSA_METHOD *) | | ENGINE_set_RSA | 0 | ENGINE * | +| (ENGINE *,const RSA_METHOD *) | | ENGINE_set_RSA | 1 | const RSA_METHOD * | +| (ENGINE *,const char *) | | ENGINE_set_id | 0 | ENGINE * | +| (ENGINE *,const char *) | | ENGINE_set_id | 1 | const char * | +| (ENGINE *,const char *) | | ENGINE_set_name | 0 | ENGINE * | +| (ENGINE *,const char *) | | ENGINE_set_name | 1 | const char * | +| (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 0 | ENGINE * | +| (ENGINE *,const char *) | | OSSL_STORE_LOADER_new | 1 | const char * | +| (ENGINE *,const char *,const char *) | | make_engine_uri | 0 | ENGINE * | +| (ENGINE *,const char *,const char *) | | make_engine_uri | 1 | const char * | +| (ENGINE *,const char *,const char *) | | make_engine_uri | 2 | const char * | +| (ENGINE *,const char *,const char *,int) | | ENGINE_ctrl_cmd_string | 0 | ENGINE * | +| (ENGINE *,const char *,const char *,int) | | ENGINE_ctrl_cmd_string | 1 | const char * | +| (ENGINE *,const char *,const char *,int) | | ENGINE_ctrl_cmd_string | 2 | const char * | +| (ENGINE *,const char *,const char *,int) | | ENGINE_ctrl_cmd_string | 3 | int | +| (ENGINE *,const char *,long,void *,..(*)(..),int) | | ENGINE_ctrl_cmd | 0 | ENGINE * | +| (ENGINE *,const char *,long,void *,..(*)(..),int) | | ENGINE_ctrl_cmd | 1 | const char * | +| (ENGINE *,const char *,long,void *,..(*)(..),int) | | ENGINE_ctrl_cmd | 2 | long | +| (ENGINE *,const char *,long,void *,..(*)(..),int) | | ENGINE_ctrl_cmd | 3 | void * | +| (ENGINE *,const char *,long,void *,..(*)(..),int) | | ENGINE_ctrl_cmd | 4 | ..(*)(..) | +| (ENGINE *,const char *,long,void *,..(*)(..),int) | | ENGINE_ctrl_cmd | 5 | int | +| (ENGINE *,int) | | ENGINE_cmd_is_executable | 0 | ENGINE * | +| (ENGINE *,int) | | ENGINE_cmd_is_executable | 1 | int | +| (ENGINE *,int) | | ENGINE_set_flags | 0 | ENGINE * | +| (ENGINE *,int) | | ENGINE_set_flags | 1 | int | +| (ENGINE *,int,long,void *,..(*)(..)) | | ENGINE_ctrl | 0 | ENGINE * | +| (ENGINE *,int,long,void *,..(*)(..)) | | ENGINE_ctrl | 1 | int | +| (ENGINE *,int,long,void *,..(*)(..)) | | ENGINE_ctrl | 2 | long | +| (ENGINE *,int,long,void *,..(*)(..)) | | ENGINE_ctrl | 3 | void * | +| (ENGINE *,int,long,void *,..(*)(..)) | | ENGINE_ctrl | 4 | ..(*)(..) | +| (ENGINE_TABLE **) | | engine_table_cleanup | 0 | ENGINE_TABLE ** | +| (ENGINE_TABLE **,ENGINE *) | | engine_table_unregister | 0 | ENGINE_TABLE ** | +| (ENGINE_TABLE **,ENGINE *) | | engine_table_unregister | 1 | ENGINE * | +| (ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int) | | engine_table_register | 0 | ENGINE_TABLE ** | +| (ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int) | | engine_table_register | 1 | ENGINE_CLEANUP_CB * | +| (ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int) | | engine_table_register | 2 | ENGINE * | +| (ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int) | | engine_table_register | 3 | const int * | +| (ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int) | | engine_table_register | 4 | int | +| (ENGINE_TABLE **,ENGINE_CLEANUP_CB *,ENGINE *,const int *,int,int) | | engine_table_register | 5 | int | +| (ENGINE_TABLE **,int,const char *,int) | | ossl_engine_table_select | 0 | ENGINE_TABLE ** | +| (ENGINE_TABLE **,int,const char *,int) | | ossl_engine_table_select | 1 | int | +| (ENGINE_TABLE **,int,const char *,int) | | ossl_engine_table_select | 2 | const char * | +| (ENGINE_TABLE **,int,const char *,int) | | ossl_engine_table_select | 3 | int | +| (ESS_CERT_ID *) | | ESS_CERT_ID_free | 0 | ESS_CERT_ID * | +| (ESS_CERT_ID **,const unsigned char **,long) | | d2i_ESS_CERT_ID | 0 | ESS_CERT_ID ** | +| (ESS_CERT_ID **,const unsigned char **,long) | | d2i_ESS_CERT_ID | 1 | const unsigned char ** | +| (ESS_CERT_ID **,const unsigned char **,long) | | d2i_ESS_CERT_ID | 2 | long | +| (ESS_CERT_ID_V2 *) | | ESS_CERT_ID_V2_free | 0 | ESS_CERT_ID_V2 * | +| (ESS_CERT_ID_V2 **,const unsigned char **,long) | | d2i_ESS_CERT_ID_V2 | 0 | ESS_CERT_ID_V2 ** | +| (ESS_CERT_ID_V2 **,const unsigned char **,long) | | d2i_ESS_CERT_ID_V2 | 1 | const unsigned char ** | +| (ESS_CERT_ID_V2 **,const unsigned char **,long) | | d2i_ESS_CERT_ID_V2 | 2 | long | +| (ESS_ISSUER_SERIAL *) | | ESS_ISSUER_SERIAL_free | 0 | ESS_ISSUER_SERIAL * | +| (ESS_ISSUER_SERIAL **,const unsigned char **,long) | | d2i_ESS_ISSUER_SERIAL | 0 | ESS_ISSUER_SERIAL ** | +| (ESS_ISSUER_SERIAL **,const unsigned char **,long) | | d2i_ESS_ISSUER_SERIAL | 1 | const unsigned char ** | +| (ESS_ISSUER_SERIAL **,const unsigned char **,long) | | d2i_ESS_ISSUER_SERIAL | 2 | long | +| (ESS_SIGNING_CERT *) | | ESS_SIGNING_CERT_free | 0 | ESS_SIGNING_CERT * | +| (ESS_SIGNING_CERT **,const unsigned char **,long) | | d2i_ESS_SIGNING_CERT | 0 | ESS_SIGNING_CERT ** | +| (ESS_SIGNING_CERT **,const unsigned char **,long) | | d2i_ESS_SIGNING_CERT | 1 | const unsigned char ** | +| (ESS_SIGNING_CERT **,const unsigned char **,long) | | d2i_ESS_SIGNING_CERT | 2 | long | +| (ESS_SIGNING_CERT_V2 *) | | ESS_SIGNING_CERT_V2_free | 0 | ESS_SIGNING_CERT_V2 * | +| (ESS_SIGNING_CERT_V2 **,const unsigned char **,long) | | d2i_ESS_SIGNING_CERT_V2 | 0 | ESS_SIGNING_CERT_V2 ** | +| (ESS_SIGNING_CERT_V2 **,const unsigned char **,long) | | d2i_ESS_SIGNING_CERT_V2 | 1 | const unsigned char ** | +| (ESS_SIGNING_CERT_V2 **,const unsigned char **,long) | | d2i_ESS_SIGNING_CERT_V2 | 2 | long | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_cleanup | 0 | EVP_CIPHER * | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_cleanup | 1 | ..(*)(..) | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_ctrl | 0 | EVP_CIPHER * | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_ctrl | 1 | ..(*)(..) | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_do_cipher | 0 | EVP_CIPHER * | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_do_cipher | 1 | ..(*)(..) | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_get_asn1_params | 0 | EVP_CIPHER * | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_get_asn1_params | 1 | ..(*)(..) | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_init | 0 | EVP_CIPHER * | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_init | 1 | ..(*)(..) | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_set_asn1_params | 0 | EVP_CIPHER * | +| (EVP_CIPHER *,..(*)(..)) | | EVP_CIPHER_meth_set_set_asn1_params | 1 | ..(*)(..) | +| (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 0 | EVP_CIPHER * | +| (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_impl_ctx_size | 1 | int | +| (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 0 | EVP_CIPHER * | +| (EVP_CIPHER *,int) | | EVP_CIPHER_meth_set_iv_length | 1 | int | +| (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 0 | EVP_CIPHER * | +| (EVP_CIPHER *,unsigned long) | | EVP_CIPHER_meth_set_flags | 1 | unsigned long | +| (EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_buf_noconst | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_get1_cipher | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_iv_noconst | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,ASN1_TYPE *) | | EVP_CIPHER_param_to_asn1 | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,ASN1_TYPE *) | | EVP_CIPHER_param_to_asn1 | 1 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,ASN1_TYPE *) | | EVP_CIPHER_set_asn1_iv | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,ASN1_TYPE *) | | EVP_CIPHER_set_asn1_iv | 1 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,ASN1_TYPE *,evp_cipher_aead_asn1_params *) | | evp_cipher_param_to_asn1_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,ASN1_TYPE *,evp_cipher_aead_asn1_params *) | | evp_cipher_param_to_asn1_ex | 1 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,ASN1_TYPE *,evp_cipher_aead_asn1_params *) | | evp_cipher_param_to_asn1_ex | 2 | evp_cipher_aead_asn1_params * | +| (EVP_CIPHER_CTX *,X509_ALGOR **) | | EVP_CIPHER_CTX_get_algor | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,X509_ALGOR **) | | EVP_CIPHER_CTX_get_algor | 1 | X509_ALGOR ** | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *) | | EVP_DecryptInit_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *) | | EVP_DecryptInit_ex | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *) | | EVP_DecryptInit_ex | 2 | ENGINE * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *) | | EVP_DecryptInit_ex | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *) | | EVP_DecryptInit_ex | 4 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *) | | EVP_EncryptInit_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *) | | EVP_EncryptInit_ex | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *) | | EVP_EncryptInit_ex | 2 | ENGINE * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *) | | EVP_EncryptInit_ex | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *) | | EVP_EncryptInit_ex | 4 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit_ex | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit_ex | 2 | ENGINE * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit_ex | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit_ex | 4 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,ENGINE *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit_ex | 5 | int | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[]) | | EVP_CipherInit_SKEY | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[]) | | EVP_CipherInit_SKEY | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[]) | | EVP_CipherInit_SKEY | 2 | EVP_SKEY * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[]) | | EVP_CipherInit_SKEY | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[]) | | EVP_CipherInit_SKEY | 4 | size_t | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[]) | | EVP_CipherInit_SKEY | 5 | int | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,EVP_SKEY *,const unsigned char *,size_t,int,const OSSL_PARAM[]) | | EVP_CipherInit_SKEY | 6 | const OSSL_PARAM[] | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *) | | EVP_DecryptInit | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *) | | EVP_DecryptInit | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *) | | EVP_DecryptInit | 2 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *) | | EVP_DecryptInit | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *) | | EVP_EncryptInit | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *) | | EVP_EncryptInit | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *) | | EVP_EncryptInit | 2 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *) | | EVP_EncryptInit | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[]) | | EVP_DecryptInit_ex2 | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[]) | | EVP_DecryptInit_ex2 | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[]) | | EVP_DecryptInit_ex2 | 2 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[]) | | EVP_DecryptInit_ex2 | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[]) | | EVP_DecryptInit_ex2 | 4 | const OSSL_PARAM[] | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[]) | | EVP_EncryptInit_ex2 | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[]) | | EVP_EncryptInit_ex2 | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[]) | | EVP_EncryptInit_ex2 | 2 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[]) | | EVP_EncryptInit_ex2 | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,const OSSL_PARAM[]) | | EVP_EncryptInit_ex2 | 4 | const OSSL_PARAM[] | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit | 2 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int) | | EVP_CipherInit | 4 | int | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[]) | | EVP_CipherInit_ex2 | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[]) | | EVP_CipherInit_ex2 | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[]) | | EVP_CipherInit_ex2 | 2 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[]) | | EVP_CipherInit_ex2 | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[]) | | EVP_CipherInit_ex2 | 4 | int | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,const unsigned char *,int,const OSSL_PARAM[]) | | EVP_CipherInit_ex2 | 5 | const OSSL_PARAM[] | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *) | | EVP_OpenInit | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *) | | EVP_OpenInit | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *) | | EVP_OpenInit | 2 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *) | | EVP_OpenInit | 3 | int | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *) | | EVP_OpenInit | 4 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,int,const unsigned char *,EVP_PKEY *) | | EVP_OpenInit | 5 | EVP_PKEY * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineDecryptInit | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineDecryptInit | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineDecryptInit | 2 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineDecryptInit | 3 | size_t | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineDecryptInit | 4 | size_t | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineDecryptInit | 5 | const unsigned char ** | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineDecryptInit | 6 | size_t | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineEncryptInit | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineEncryptInit | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineEncryptInit | 2 | const unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineEncryptInit | 3 | size_t | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineEncryptInit | 4 | size_t | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineEncryptInit | 5 | const unsigned char ** | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,const unsigned char *,size_t,size_t,const unsigned char **,size_t) | | EVP_CipherPipelineEncryptInit | 6 | size_t | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int) | | EVP_SealInit | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int) | | EVP_SealInit | 1 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int) | | EVP_SealInit | 2 | unsigned char ** | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int) | | EVP_SealInit | 3 | int * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int) | | EVP_SealInit | 4 | unsigned char * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int) | | EVP_SealInit | 5 | EVP_PKEY ** | +| (EVP_CIPHER_CTX *,const EVP_CIPHER *,unsigned char **,int *,unsigned char *,EVP_PKEY **,int) | | EVP_SealInit | 6 | int | +| (EVP_CIPHER_CTX *,const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_copy | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_copy | 1 | const EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const OSSL_PARAM[]) | | EVP_CIPHER_CTX_set_params | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const OSSL_PARAM[]) | | EVP_CIPHER_CTX_set_params | 1 | const OSSL_PARAM[] | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_PBE_keyivgen | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_PBE_keyivgen | 1 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_PBE_keyivgen | 2 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_PBE_keyivgen | 3 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_PBE_keyivgen | 4 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_PBE_keyivgen | 5 | const EVP_MD * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_PBE_keyivgen | 6 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBE_keyivgen | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBE_keyivgen | 1 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBE_keyivgen | 2 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBE_keyivgen | 3 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBE_keyivgen | 4 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBE_keyivgen | 5 | const EVP_MD * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBE_keyivgen | 6 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBKDF2_keyivgen | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBKDF2_keyivgen | 1 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBKDF2_keyivgen | 2 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBKDF2_keyivgen | 3 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBKDF2_keyivgen | 4 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBKDF2_keyivgen | 5 | const EVP_MD * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_PBKDF2_keyivgen | 6 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_scrypt_keyivgen | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_scrypt_keyivgen | 1 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_scrypt_keyivgen | 2 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_scrypt_keyivgen | 3 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_scrypt_keyivgen | 4 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_scrypt_keyivgen | 5 | const EVP_MD * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS5_v2_scrypt_keyivgen | 6 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS12_PBE_keyivgen | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS12_PBE_keyivgen | 1 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS12_PBE_keyivgen | 2 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS12_PBE_keyivgen | 3 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS12_PBE_keyivgen | 4 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS12_PBE_keyivgen | 5 | const EVP_MD * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int) | | PKCS12_PBE_keyivgen | 6 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_PBE_keyivgen_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_PBE_keyivgen_ex | 1 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_PBE_keyivgen_ex | 2 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_PBE_keyivgen_ex | 3 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_PBE_keyivgen_ex | 4 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_PBE_keyivgen_ex | 5 | const EVP_MD * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_PBE_keyivgen_ex | 6 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_PBE_keyivgen_ex | 7 | OSSL_LIB_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_PBE_keyivgen_ex | 8 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBE_keyivgen_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBE_keyivgen_ex | 1 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBE_keyivgen_ex | 2 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBE_keyivgen_ex | 3 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBE_keyivgen_ex | 4 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBE_keyivgen_ex | 5 | const EVP_MD * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBE_keyivgen_ex | 6 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBE_keyivgen_ex | 7 | OSSL_LIB_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBE_keyivgen_ex | 8 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBKDF2_keyivgen_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBKDF2_keyivgen_ex | 1 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBKDF2_keyivgen_ex | 2 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBKDF2_keyivgen_ex | 3 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBKDF2_keyivgen_ex | 4 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBKDF2_keyivgen_ex | 5 | const EVP_MD * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBKDF2_keyivgen_ex | 6 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBKDF2_keyivgen_ex | 7 | OSSL_LIB_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_PBKDF2_keyivgen_ex | 8 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_scrypt_keyivgen_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_scrypt_keyivgen_ex | 1 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_scrypt_keyivgen_ex | 2 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_scrypt_keyivgen_ex | 3 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_scrypt_keyivgen_ex | 4 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_scrypt_keyivgen_ex | 5 | const EVP_MD * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_scrypt_keyivgen_ex | 6 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_scrypt_keyivgen_ex | 7 | OSSL_LIB_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS5_v2_scrypt_keyivgen_ex | 8 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_PBE_keyivgen_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_PBE_keyivgen_ex | 1 | const char * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_PBE_keyivgen_ex | 2 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_PBE_keyivgen_ex | 3 | ASN1_TYPE * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_PBE_keyivgen_ex | 4 | const EVP_CIPHER * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_PBE_keyivgen_ex | 5 | const EVP_MD * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_PBE_keyivgen_ex | 6 | int | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_PBE_keyivgen_ex | 7 | OSSL_LIB_CTX * | +| (EVP_CIPHER_CTX *,const char *,int,ASN1_TYPE *,const EVP_CIPHER *,const EVP_MD *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_PBE_keyivgen_ex | 8 | const char * | +| (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_clear_flags | 1 | int | +| (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_flags | 1 | int | +| (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_key_length | 1 | int | +| (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_set_num | 1 | int | +| (EVP_CIPHER_CTX *,int,int,void *) | | EVP_CIPHER_CTX_ctrl | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,int,int,void *) | | EVP_CIPHER_CTX_ctrl | 1 | int | +| (EVP_CIPHER_CTX *,int,int,void *) | | EVP_CIPHER_CTX_ctrl | 2 | int | +| (EVP_CIPHER_CTX *,int,int,void *) | | EVP_CIPHER_CTX_ctrl | 3 | void * | +| (EVP_CIPHER_CTX *,unsigned char *) | | EVP_CIPHER_CTX_rand_key | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *) | | EVP_CIPHER_CTX_rand_key | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_CipherFinal | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_CipherFinal | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_CipherFinal | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_CipherFinal_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_CipherFinal_ex | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_CipherFinal_ex | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_DecryptFinal | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_DecryptFinal | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_DecryptFinal | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_DecryptFinal_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_DecryptFinal_ex | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_DecryptFinal_ex | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_EncryptFinal | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_EncryptFinal | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_EncryptFinal | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_EncryptFinal_ex | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_EncryptFinal_ex | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_EncryptFinal_ex | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_OpenFinal | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_OpenFinal | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_OpenFinal | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_SealFinal | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_SealFinal | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *) | | EVP_SealFinal | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_CipherUpdate | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_CipherUpdate | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_CipherUpdate | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_CipherUpdate | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_CipherUpdate | 4 | int | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_DecryptUpdate | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_DecryptUpdate | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_DecryptUpdate | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_DecryptUpdate | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_DecryptUpdate | 4 | int | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_EncryptUpdate | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_EncryptUpdate | 1 | unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_EncryptUpdate | 2 | int * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_EncryptUpdate | 3 | const unsigned char * | +| (EVP_CIPHER_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_EncryptUpdate | 4 | int | +| (EVP_CIPHER_CTX *,void *) | | EVP_CIPHER_CTX_set_app_data | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,void *) | | EVP_CIPHER_CTX_set_app_data | 1 | void * | +| (EVP_CIPHER_CTX *,void *) | | EVP_CIPHER_CTX_set_cipher_data | 0 | EVP_CIPHER_CTX * | +| (EVP_CIPHER_CTX *,void *) | | EVP_CIPHER_CTX_set_cipher_data | 1 | void * | +| (EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *) | | PEM_do_header | 0 | EVP_CIPHER_INFO * | +| (EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *) | | PEM_do_header | 1 | unsigned char * | +| (EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *) | | PEM_do_header | 2 | long * | +| (EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *) | | PEM_do_header | 3 | pem_password_cb * | +| (EVP_CIPHER_INFO *,unsigned char *,long *,pem_password_cb *,void *) | | PEM_do_header | 4 | void * | +| (EVP_ENCODE_CTX *) | | EVP_ENCODE_CTX_num | 0 | EVP_ENCODE_CTX * | +| (EVP_ENCODE_CTX *,const EVP_ENCODE_CTX *) | | EVP_ENCODE_CTX_copy | 0 | EVP_ENCODE_CTX * | +| (EVP_ENCODE_CTX *,const EVP_ENCODE_CTX *) | | EVP_ENCODE_CTX_copy | 1 | const EVP_ENCODE_CTX * | +| (EVP_ENCODE_CTX *,unsigned char *,int *) | | EVP_DecodeFinal | 0 | EVP_ENCODE_CTX * | +| (EVP_ENCODE_CTX *,unsigned char *,int *) | | EVP_DecodeFinal | 1 | unsigned char * | +| (EVP_ENCODE_CTX *,unsigned char *,int *) | | EVP_DecodeFinal | 2 | int * | +| (EVP_ENCODE_CTX *,unsigned char *,int *) | | EVP_EncodeFinal | 0 | EVP_ENCODE_CTX * | +| (EVP_ENCODE_CTX *,unsigned char *,int *) | | EVP_EncodeFinal | 1 | unsigned char * | +| (EVP_ENCODE_CTX *,unsigned char *,int *) | | EVP_EncodeFinal | 2 | int * | +| (EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_DecodeUpdate | 0 | EVP_ENCODE_CTX * | +| (EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_DecodeUpdate | 1 | unsigned char * | +| (EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_DecodeUpdate | 2 | int * | +| (EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_DecodeUpdate | 3 | const unsigned char * | +| (EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_DecodeUpdate | 4 | int | +| (EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_EncodeUpdate | 0 | EVP_ENCODE_CTX * | +| (EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_EncodeUpdate | 1 | unsigned char * | +| (EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_EncodeUpdate | 2 | int * | +| (EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_EncodeUpdate | 3 | const unsigned char * | +| (EVP_ENCODE_CTX *,unsigned char *,int *,const unsigned char *,int) | | EVP_EncodeUpdate | 4 | int | +| (EVP_ENCODE_CTX *,unsigned int) | | evp_encode_ctx_set_flags | 0 | EVP_ENCODE_CTX * | +| (EVP_ENCODE_CTX *,unsigned int) | | evp_encode_ctx_set_flags | 1 | unsigned int | +| (EVP_KDF *) | | EVP_KDF_CTX_new | 0 | EVP_KDF * | +| (EVP_KDF_CTX *) | | EVP_KDF_CTX_kdf | 0 | EVP_KDF_CTX * | +| (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 0 | EVP_KEYMGMT * | +| (EVP_KEYMGMT *,int) | | evp_keymgmt_util_query_operation_name | 1 | int | +| (EVP_KEYMGMT *,void *) | | evp_keymgmt_util_make_pkey | 0 | EVP_KEYMGMT * | +| (EVP_KEYMGMT *,void *) | | evp_keymgmt_util_make_pkey | 1 | void * | +| (EVP_KEYMGMT *,void *,char *,size_t) | | evp_keymgmt_util_get_deflt_digest_name | 0 | EVP_KEYMGMT * | +| (EVP_KEYMGMT *,void *,char *,size_t) | | evp_keymgmt_util_get_deflt_digest_name | 1 | void * | +| (EVP_KEYMGMT *,void *,char *,size_t) | | evp_keymgmt_util_get_deflt_digest_name | 2 | char * | +| (EVP_KEYMGMT *,void *,char *,size_t) | | evp_keymgmt_util_get_deflt_digest_name | 3 | size_t | +| (EVP_MAC *) | | EVP_MAC_CTX_new | 0 | EVP_MAC * | +| (EVP_MAC_CTX *) | | EVP_MAC_CTX_get0_mac | 0 | EVP_MAC_CTX * | +| (EVP_MAC_CTX **,const OSSL_PARAM[],const char *,const char *,const char *,OSSL_LIB_CTX *) | | ossl_prov_macctx_load_from_params | 0 | EVP_MAC_CTX ** | +| (EVP_MAC_CTX **,const OSSL_PARAM[],const char *,const char *,const char *,OSSL_LIB_CTX *) | | ossl_prov_macctx_load_from_params | 1 | const OSSL_PARAM[] | +| (EVP_MAC_CTX **,const OSSL_PARAM[],const char *,const char *,const char *,OSSL_LIB_CTX *) | | ossl_prov_macctx_load_from_params | 2 | const char * | +| (EVP_MAC_CTX **,const OSSL_PARAM[],const char *,const char *,const char *,OSSL_LIB_CTX *) | | ossl_prov_macctx_load_from_params | 3 | const char * | +| (EVP_MAC_CTX **,const OSSL_PARAM[],const char *,const char *,const char *,OSSL_LIB_CTX *) | | ossl_prov_macctx_load_from_params | 4 | const char * | +| (EVP_MAC_CTX **,const OSSL_PARAM[],const char *,const char *,const char *,OSSL_LIB_CTX *) | | ossl_prov_macctx_load_from_params | 5 | OSSL_LIB_CTX * | +| (EVP_MAC_CTX *,const OSSL_PARAM[],const char *,const char *,const char *,const char *,const unsigned char *,size_t) | | ossl_prov_set_macctx | 0 | EVP_MAC_CTX * | +| (EVP_MAC_CTX *,const OSSL_PARAM[],const char *,const char *,const char *,const char *,const unsigned char *,size_t) | | ossl_prov_set_macctx | 1 | const OSSL_PARAM[] | +| (EVP_MAC_CTX *,const OSSL_PARAM[],const char *,const char *,const char *,const char *,const unsigned char *,size_t) | | ossl_prov_set_macctx | 2 | const char * | +| (EVP_MAC_CTX *,const OSSL_PARAM[],const char *,const char *,const char *,const char *,const unsigned char *,size_t) | | ossl_prov_set_macctx | 3 | const char * | +| (EVP_MAC_CTX *,const OSSL_PARAM[],const char *,const char *,const char *,const char *,const unsigned char *,size_t) | | ossl_prov_set_macctx | 4 | const char * | +| (EVP_MAC_CTX *,const OSSL_PARAM[],const char *,const char *,const char *,const char *,const unsigned char *,size_t) | | ossl_prov_set_macctx | 5 | const char * | +| (EVP_MAC_CTX *,const OSSL_PARAM[],const char *,const char *,const char *,const char *,const unsigned char *,size_t) | | ossl_prov_set_macctx | 6 | const unsigned char * | +| (EVP_MAC_CTX *,const OSSL_PARAM[],const char *,const char *,const char *,const char *,const unsigned char *,size_t) | | ossl_prov_set_macctx | 7 | size_t | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_cleanup | 0 | EVP_MD * | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_cleanup | 1 | ..(*)(..) | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_copy | 0 | EVP_MD * | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_copy | 1 | ..(*)(..) | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_ctrl | 0 | EVP_MD * | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_ctrl | 1 | ..(*)(..) | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_final | 0 | EVP_MD * | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_final | 1 | ..(*)(..) | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_init | 0 | EVP_MD * | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_init | 1 | ..(*)(..) | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_update | 0 | EVP_MD * | +| (EVP_MD *,..(*)(..)) | | EVP_MD_meth_set_update | 1 | ..(*)(..) | +| (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 0 | EVP_MD * | +| (EVP_MD *,int) | | EVP_MD_meth_set_app_datasize | 1 | int | +| (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 0 | EVP_MD * | +| (EVP_MD *,int) | | EVP_MD_meth_set_input_blocksize | 1 | int | +| (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 0 | EVP_MD * | +| (EVP_MD *,int) | | EVP_MD_meth_set_result_size | 1 | int | +| (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 0 | EVP_MD * | +| (EVP_MD *,unsigned long) | | EVP_MD_meth_set_flags | 1 | unsigned long | +| (EVP_MD_CTX *) | | EVP_MD_CTX_get1_md | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *) | | EVP_MD_CTX_update_fn | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,..(*)(..)) | | EVP_MD_CTX_set_update_fn | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,..(*)(..)) | | EVP_MD_CTX_set_update_fn | 1 | ..(*)(..) | +| (EVP_MD_CTX *,BIO *,X509_ALGOR *) | | ossl_cms_DigestAlgorithm_find_ctx | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,BIO *,X509_ALGOR *) | | ossl_cms_DigestAlgorithm_find_ctx | 1 | BIO * | +| (EVP_MD_CTX *,BIO *,X509_ALGOR *) | | ossl_cms_DigestAlgorithm_find_ctx | 2 | X509_ALGOR * | +| (EVP_MD_CTX *,EVP_MD *) | | PEM_SignInit | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,EVP_MD *) | | PEM_SignInit | 1 | EVP_MD * | +| (EVP_MD_CTX *,EVP_PKEY_CTX *) | | EVP_MD_CTX_set_pkey_ctx | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,EVP_PKEY_CTX *) | | EVP_MD_CTX_set_pkey_ctx | 1 | EVP_PKEY_CTX * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *) | | EVP_DigestSignInit | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *) | | EVP_DigestSignInit | 1 | EVP_PKEY_CTX ** | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *) | | EVP_DigestSignInit | 2 | const EVP_MD * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *) | | EVP_DigestSignInit | 3 | ENGINE * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *) | | EVP_DigestSignInit | 4 | EVP_PKEY * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *) | | EVP_DigestVerifyInit | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *) | | EVP_DigestVerifyInit | 1 | EVP_PKEY_CTX ** | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *) | | EVP_DigestVerifyInit | 2 | const EVP_MD * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *) | | EVP_DigestVerifyInit | 3 | ENGINE * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const EVP_MD *,ENGINE *,EVP_PKEY *) | | EVP_DigestVerifyInit | 4 | EVP_PKEY * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestSignInit_ex | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestSignInit_ex | 1 | EVP_PKEY_CTX ** | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestSignInit_ex | 2 | const char * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestSignInit_ex | 3 | OSSL_LIB_CTX * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestSignInit_ex | 4 | const char * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestSignInit_ex | 5 | EVP_PKEY * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestSignInit_ex | 6 | const OSSL_PARAM[] | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestVerifyInit_ex | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestVerifyInit_ex | 1 | EVP_PKEY_CTX ** | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestVerifyInit_ex | 2 | const char * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestVerifyInit_ex | 3 | OSSL_LIB_CTX * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestVerifyInit_ex | 4 | const char * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestVerifyInit_ex | 5 | EVP_PKEY * | +| (EVP_MD_CTX *,EVP_PKEY_CTX **,const char *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,const OSSL_PARAM[]) | | EVP_DigestVerifyInit_ex | 6 | const OSSL_PARAM[] | +| (EVP_MD_CTX *,EVP_PKEY_CTX *,const X509_ALGOR *,EVP_PKEY *) | | ossl_rsa_pss_to_ctx | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,EVP_PKEY_CTX *,const X509_ALGOR *,EVP_PKEY *) | | ossl_rsa_pss_to_ctx | 1 | EVP_PKEY_CTX * | +| (EVP_MD_CTX *,EVP_PKEY_CTX *,const X509_ALGOR *,EVP_PKEY *) | | ossl_rsa_pss_to_ctx | 2 | const X509_ALGOR * | +| (EVP_MD_CTX *,EVP_PKEY_CTX *,const X509_ALGOR *,EVP_PKEY *) | | ossl_rsa_pss_to_ctx | 3 | EVP_PKEY * | +| (EVP_MD_CTX *,const EVP_MD *) | | EVP_DigestInit | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const EVP_MD *) | | EVP_DigestInit | 1 | const EVP_MD * | +| (EVP_MD_CTX *,const EVP_MD *,ENGINE *) | | EVP_DigestInit_ex | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const EVP_MD *,ENGINE *) | | EVP_DigestInit_ex | 1 | const EVP_MD * | +| (EVP_MD_CTX *,const EVP_MD *,ENGINE *) | | EVP_DigestInit_ex | 2 | ENGINE * | +| (EVP_MD_CTX *,const EVP_MD *,const OSSL_PARAM[]) | | EVP_DigestInit_ex2 | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const EVP_MD *,const OSSL_PARAM[]) | | EVP_DigestInit_ex2 | 1 | const EVP_MD * | +| (EVP_MD_CTX *,const EVP_MD *,const OSSL_PARAM[]) | | EVP_DigestInit_ex2 | 2 | const OSSL_PARAM[] | +| (EVP_MD_CTX *,const EVP_MD *,const uint8_t *,MATRIX *) | | ossl_ml_dsa_matrix_expand_A | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const EVP_MD *,const uint8_t *,MATRIX *) | | ossl_ml_dsa_matrix_expand_A | 1 | const EVP_MD * | +| (EVP_MD_CTX *,const EVP_MD *,const uint8_t *,MATRIX *) | | ossl_ml_dsa_matrix_expand_A | 2 | const uint8_t * | +| (EVP_MD_CTX *,const EVP_MD *,const uint8_t *,MATRIX *) | | ossl_ml_dsa_matrix_expand_A | 3 | MATRIX * | +| (EVP_MD_CTX *,const EVP_MD *,int,const uint8_t *,VECTOR *,VECTOR *) | | ossl_ml_dsa_vector_expand_S | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const EVP_MD *,int,const uint8_t *,VECTOR *,VECTOR *) | | ossl_ml_dsa_vector_expand_S | 1 | const EVP_MD * | +| (EVP_MD_CTX *,const EVP_MD *,int,const uint8_t *,VECTOR *,VECTOR *) | | ossl_ml_dsa_vector_expand_S | 2 | int | +| (EVP_MD_CTX *,const EVP_MD *,int,const uint8_t *,VECTOR *,VECTOR *) | | ossl_ml_dsa_vector_expand_S | 3 | const uint8_t * | +| (EVP_MD_CTX *,const EVP_MD *,int,const uint8_t *,VECTOR *,VECTOR *) | | ossl_ml_dsa_vector_expand_S | 4 | VECTOR * | +| (EVP_MD_CTX *,const EVP_MD *,int,const uint8_t *,VECTOR *,VECTOR *) | | ossl_ml_dsa_vector_expand_S | 5 | VECTOR * | +| (EVP_MD_CTX *,const EVP_MD_CTX *) | | EVP_MD_CTX_copy | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const EVP_MD_CTX *) | | EVP_MD_CTX_copy | 1 | const EVP_MD_CTX * | +| (EVP_MD_CTX *,const EVP_MD_CTX *) | | EVP_MD_CTX_copy_ex | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const EVP_MD_CTX *) | | EVP_MD_CTX_copy_ex | 1 | const EVP_MD_CTX * | +| (EVP_MD_CTX *,const unsigned char *,size_t) | | EVP_DigestVerifyFinal | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const unsigned char *,size_t) | | EVP_DigestVerifyFinal | 1 | const unsigned char * | +| (EVP_MD_CTX *,const unsigned char *,size_t) | | EVP_DigestVerifyFinal | 2 | size_t | +| (EVP_MD_CTX *,const unsigned char *,size_t,const unsigned char *,size_t) | | EVP_DigestVerify | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const unsigned char *,size_t,const unsigned char *,size_t) | | EVP_DigestVerify | 1 | const unsigned char * | +| (EVP_MD_CTX *,const unsigned char *,size_t,const unsigned char *,size_t) | | EVP_DigestVerify | 2 | size_t | +| (EVP_MD_CTX *,const unsigned char *,size_t,const unsigned char *,size_t) | | EVP_DigestVerify | 3 | const unsigned char * | +| (EVP_MD_CTX *,const unsigned char *,size_t,const unsigned char *,size_t) | | EVP_DigestVerify | 4 | size_t | +| (EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *) | | EVP_VerifyFinal | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *) | | EVP_VerifyFinal | 1 | const unsigned char * | +| (EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *) | | EVP_VerifyFinal | 2 | unsigned int | +| (EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *) | | EVP_VerifyFinal | 3 | EVP_PKEY * | +| (EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_VerifyFinal_ex | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_VerifyFinal_ex | 1 | const unsigned char * | +| (EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_VerifyFinal_ex | 2 | unsigned int | +| (EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_VerifyFinal_ex | 3 | EVP_PKEY * | +| (EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_VerifyFinal_ex | 4 | OSSL_LIB_CTX * | +| (EVP_MD_CTX *,const unsigned char *,unsigned int,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_VerifyFinal_ex | 5 | const char * | +| (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,int) | | EVP_MD_CTX_clear_flags | 1 | int | +| (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,int) | | EVP_MD_CTX_set_flags | 1 | int | +| (EVP_MD_CTX *,unsigned char *,size_t *) | | EVP_DigestSignFinal | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,unsigned char *,size_t *) | | EVP_DigestSignFinal | 1 | unsigned char * | +| (EVP_MD_CTX *,unsigned char *,size_t *) | | EVP_DigestSignFinal | 2 | size_t * | +| (EVP_MD_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_DigestSign | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_DigestSign | 1 | unsigned char * | +| (EVP_MD_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_DigestSign | 2 | size_t * | +| (EVP_MD_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_DigestSign | 3 | const unsigned char * | +| (EVP_MD_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_DigestSign | 4 | size_t | +| (EVP_MD_CTX *,unsigned char *,unsigned int *) | | EVP_DigestFinal | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *) | | EVP_DigestFinal | 1 | unsigned char * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *) | | EVP_DigestFinal | 2 | unsigned int * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *) | | EVP_DigestFinal_ex | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *) | | EVP_DigestFinal_ex | 1 | unsigned char * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *) | | EVP_DigestFinal_ex | 2 | unsigned int * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *) | | EVP_SignFinal | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *) | | EVP_SignFinal | 1 | unsigned char * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *) | | EVP_SignFinal | 2 | unsigned int * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *) | | EVP_SignFinal | 3 | EVP_PKEY * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *) | | PEM_SignFinal | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *) | | PEM_SignFinal | 1 | unsigned char * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *) | | PEM_SignFinal | 2 | unsigned int * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *) | | PEM_SignFinal | 3 | EVP_PKEY * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_SignFinal_ex | 0 | EVP_MD_CTX * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_SignFinal_ex | 1 | unsigned char * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_SignFinal_ex | 2 | unsigned int * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_SignFinal_ex | 3 | EVP_PKEY * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_SignFinal_ex | 4 | OSSL_LIB_CTX * | +| (EVP_MD_CTX *,unsigned char *,unsigned int *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | EVP_SignFinal_ex | 5 | const char * | +| (EVP_PKEY *) | | EVP_PKEY_dup | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | EVP_PKEY_get1_DH | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | EVP_PKEY_get1_DSA | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | EVP_PKEY_get1_EC_KEY | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | EVP_PKEY_get1_RSA | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | OSSL_STORE_INFO_new_PARAMS | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | OSSL_STORE_INFO_new_PKEY | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | OSSL_STORE_INFO_new_PUBKEY | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | evp_pkey_get_legacy | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | ossl_evp_pkey_get1_ED448 | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | ossl_evp_pkey_get1_ED25519 | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | ossl_evp_pkey_get1_X448 | 0 | EVP_PKEY * | +| (EVP_PKEY *) | | ossl_evp_pkey_get1_X25519 | 0 | EVP_PKEY * | +| (EVP_PKEY **,const EVP_PKEY *) | | evp_pkey_copy_downgraded | 0 | EVP_PKEY ** | +| (EVP_PKEY **,const EVP_PKEY *) | | evp_pkey_copy_downgraded | 1 | const EVP_PKEY * | +| (EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *) | | OSSL_DECODER_CTX_new_for_pkey | 0 | EVP_PKEY ** | +| (EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *) | | OSSL_DECODER_CTX_new_for_pkey | 1 | const char * | +| (EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *) | | OSSL_DECODER_CTX_new_for_pkey | 2 | const char * | +| (EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *) | | OSSL_DECODER_CTX_new_for_pkey | 3 | const char * | +| (EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *) | | OSSL_DECODER_CTX_new_for_pkey | 4 | int | +| (EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *) | | OSSL_DECODER_CTX_new_for_pkey | 5 | OSSL_LIB_CTX * | +| (EVP_PKEY **,const char *,const char *,const char *,int,OSSL_LIB_CTX *,const char *) | | OSSL_DECODER_CTX_new_for_pkey | 6 | const char * | +| (EVP_PKEY **,const unsigned char **,long) | | d2i_AutoPrivateKey | 0 | EVP_PKEY ** | +| (EVP_PKEY **,const unsigned char **,long) | | d2i_AutoPrivateKey | 1 | const unsigned char ** | +| (EVP_PKEY **,const unsigned char **,long) | | d2i_AutoPrivateKey | 2 | long | +| (EVP_PKEY **,const unsigned char **,long) | | d2i_PUBKEY | 0 | EVP_PKEY ** | +| (EVP_PKEY **,const unsigned char **,long) | | d2i_PUBKEY | 1 | const unsigned char ** | +| (EVP_PKEY **,const unsigned char **,long) | | d2i_PUBKEY | 2 | long | +| (EVP_PKEY **,const unsigned char **,long) | | ossl_d2i_PUBKEY_legacy | 0 | EVP_PKEY ** | +| (EVP_PKEY **,const unsigned char **,long) | | ossl_d2i_PUBKEY_legacy | 1 | const unsigned char ** | +| (EVP_PKEY **,const unsigned char **,long) | | ossl_d2i_PUBKEY_legacy | 2 | long | +| (EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_AutoPrivateKey_ex | 0 | EVP_PKEY ** | +| (EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_AutoPrivateKey_ex | 1 | const unsigned char ** | +| (EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_AutoPrivateKey_ex | 2 | long | +| (EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_AutoPrivateKey_ex | 3 | OSSL_LIB_CTX * | +| (EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_AutoPrivateKey_ex | 4 | const char * | +| (EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex | 0 | EVP_PKEY ** | +| (EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex | 1 | const unsigned char ** | +| (EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex | 2 | long | +| (EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex | 3 | OSSL_LIB_CTX * | +| (EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex | 4 | const char * | +| (EVP_PKEY *,DH *,dh_st *) | | EVP_PKEY_set1_DH | 0 | EVP_PKEY * | +| (EVP_PKEY *,DH *,dh_st *) | | EVP_PKEY_set1_DH | 1 | DH * | +| (EVP_PKEY *,DH *,dh_st *) | | EVP_PKEY_set1_DH | 2 | dh_st * | +| (EVP_PKEY *,DSA *,dsa_st *) | | EVP_PKEY_set1_DSA | 0 | EVP_PKEY * | +| (EVP_PKEY *,DSA *,dsa_st *) | | EVP_PKEY_set1_DSA | 1 | DSA * | +| (EVP_PKEY *,DSA *,dsa_st *) | | EVP_PKEY_set1_DSA | 2 | dsa_st * | +| (EVP_PKEY *,EC_KEY *,ec_key_st *) | | EVP_PKEY_set1_EC_KEY | 0 | EVP_PKEY * | +| (EVP_PKEY *,EC_KEY *,ec_key_st *) | | EVP_PKEY_set1_EC_KEY | 1 | EC_KEY * | +| (EVP_PKEY *,EC_KEY *,ec_key_st *) | | EVP_PKEY_set1_EC_KEY | 2 | ec_key_st * | +| (EVP_PKEY *,ENGINE *) | | EVP_PKEY_CTX_new | 0 | EVP_PKEY * | +| (EVP_PKEY *,ENGINE *) | | EVP_PKEY_CTX_new | 1 | ENGINE * | +| (EVP_PKEY *,ENGINE *) | | EVP_PKEY_set1_engine | 0 | EVP_PKEY * | +| (EVP_PKEY *,ENGINE *) | | EVP_PKEY_set1_engine | 1 | ENGINE * | +| (EVP_PKEY *,EVP_KEYMGMT *) | | EVP_PKEY_set_type_by_keymgmt | 0 | EVP_PKEY * | +| (EVP_PKEY *,EVP_KEYMGMT *) | | EVP_PKEY_set_type_by_keymgmt | 1 | EVP_KEYMGMT * | +| (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_export_to_provider | 0 | EVP_PKEY * | +| (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_export_to_provider | 1 | EVP_KEYMGMT * | +| (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_export_to_provider | 2 | int | +| (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_find_operation_cache | 0 | EVP_PKEY * | +| (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_find_operation_cache | 1 | EVP_KEYMGMT * | +| (EVP_PKEY *,EVP_KEYMGMT *,int) | | evp_keymgmt_util_find_operation_cache | 2 | int | +| (EVP_PKEY *,EVP_KEYMGMT *,int,const OSSL_PARAM[]) | | evp_keymgmt_util_fromdata | 0 | EVP_PKEY * | +| (EVP_PKEY *,EVP_KEYMGMT *,int,const OSSL_PARAM[]) | | evp_keymgmt_util_fromdata | 1 | EVP_KEYMGMT * | +| (EVP_PKEY *,EVP_KEYMGMT *,int,const OSSL_PARAM[]) | | evp_keymgmt_util_fromdata | 2 | int | +| (EVP_PKEY *,EVP_KEYMGMT *,int,const OSSL_PARAM[]) | | evp_keymgmt_util_fromdata | 3 | const OSSL_PARAM[] | +| (EVP_PKEY *,EVP_KEYMGMT *,void *) | | evp_keymgmt_util_assign_pkey | 0 | EVP_PKEY * | +| (EVP_PKEY *,EVP_KEYMGMT *,void *) | | evp_keymgmt_util_assign_pkey | 1 | EVP_KEYMGMT * | +| (EVP_PKEY *,EVP_KEYMGMT *,void *) | | evp_keymgmt_util_assign_pkey | 2 | void * | +| (EVP_PKEY *,EVP_KEYMGMT *,void *,OSSL_CALLBACK *,void *) | | evp_keymgmt_util_gen | 0 | EVP_PKEY * | +| (EVP_PKEY *,EVP_KEYMGMT *,void *,OSSL_CALLBACK *,void *) | | evp_keymgmt_util_gen | 1 | EVP_KEYMGMT * | +| (EVP_PKEY *,EVP_KEYMGMT *,void *,OSSL_CALLBACK *,void *) | | evp_keymgmt_util_gen | 2 | void * | +| (EVP_PKEY *,EVP_KEYMGMT *,void *,OSSL_CALLBACK *,void *) | | evp_keymgmt_util_gen | 3 | OSSL_CALLBACK * | +| (EVP_PKEY *,EVP_KEYMGMT *,void *,OSSL_CALLBACK *,void *) | | evp_keymgmt_util_gen | 4 | void * | +| (EVP_PKEY *,EVP_PKEY *,int) | | evp_keymgmt_util_copy | 0 | EVP_PKEY * | +| (EVP_PKEY *,EVP_PKEY *,int) | | evp_keymgmt_util_copy | 1 | EVP_PKEY * | +| (EVP_PKEY *,EVP_PKEY *,int) | | evp_keymgmt_util_copy | 2 | int | +| (EVP_PKEY *,OSSL_LIB_CTX *,EVP_KEYMGMT **,const char *) | | evp_pkey_export_to_provider | 0 | EVP_PKEY * | +| (EVP_PKEY *,OSSL_LIB_CTX *,EVP_KEYMGMT **,const char *) | | evp_pkey_export_to_provider | 1 | OSSL_LIB_CTX * | +| (EVP_PKEY *,OSSL_LIB_CTX *,EVP_KEYMGMT **,const char *) | | evp_pkey_export_to_provider | 2 | EVP_KEYMGMT ** | +| (EVP_PKEY *,OSSL_LIB_CTX *,EVP_KEYMGMT **,const char *) | | evp_pkey_export_to_provider | 3 | const char * | +| (EVP_PKEY *,RSA *,rsa_st *) | | EVP_PKEY_set1_RSA | 0 | EVP_PKEY * | +| (EVP_PKEY *,RSA *,rsa_st *) | | EVP_PKEY_set1_RSA | 1 | RSA * | +| (EVP_PKEY *,RSA *,rsa_st *) | | EVP_PKEY_set1_RSA | 2 | rsa_st * | +| (EVP_PKEY *,X509_ATTRIBUTE *) | | EVP_PKEY_add1_attr | 0 | EVP_PKEY * | +| (EVP_PKEY *,X509_ATTRIBUTE *) | | EVP_PKEY_add1_attr | 1 | X509_ATTRIBUTE * | +| (EVP_PKEY *,char *,size_t) | | EVP_PKEY_get_default_digest_name | 0 | EVP_PKEY * | +| (EVP_PKEY *,char *,size_t) | | EVP_PKEY_get_default_digest_name | 1 | char * | +| (EVP_PKEY *,char *,size_t) | | EVP_PKEY_get_default_digest_name | 2 | size_t | +| (EVP_PKEY *,const ASN1_OCTET_STRING *,OSSL_LIB_CTX *,const char *) | | evp_md_ctx_new_ex | 0 | EVP_PKEY * | +| (EVP_PKEY *,const ASN1_OCTET_STRING *,OSSL_LIB_CTX *,const char *) | | evp_md_ctx_new_ex | 1 | const ASN1_OCTET_STRING * | +| (EVP_PKEY *,const ASN1_OCTET_STRING *,OSSL_LIB_CTX *,const char *) | | evp_md_ctx_new_ex | 2 | OSSL_LIB_CTX * | +| (EVP_PKEY *,const ASN1_OCTET_STRING *,OSSL_LIB_CTX *,const char *) | | evp_md_ctx_new_ex | 3 | const char * | +| (EVP_PKEY *,const EVP_PKEY *) | | EVP_PKEY_copy_parameters | 0 | EVP_PKEY * | +| (EVP_PKEY *,const EVP_PKEY *) | | EVP_PKEY_copy_parameters | 1 | const EVP_PKEY * | +| (EVP_PKEY *,const char *) | | CTLOG_new | 0 | EVP_PKEY * | +| (EVP_PKEY *,const char *) | | CTLOG_new | 1 | const char * | +| (EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *) | | CTLOG_new_ex | 0 | EVP_PKEY * | +| (EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *) | | CTLOG_new_ex | 1 | const char * | +| (EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *) | | CTLOG_new_ex | 2 | OSSL_LIB_CTX * | +| (EVP_PKEY *,const char *,OSSL_LIB_CTX *,const char *) | | CTLOG_new_ex | 3 | const char * | +| (EVP_PKEY *,const char *,const BIGNUM *) | | EVP_PKEY_set_bn_param | 0 | EVP_PKEY * | +| (EVP_PKEY *,const char *,const BIGNUM *) | | EVP_PKEY_set_bn_param | 1 | const char * | +| (EVP_PKEY *,const char *,const BIGNUM *) | | EVP_PKEY_set_bn_param | 2 | const BIGNUM * | +| (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 0 | EVP_PKEY * | +| (EVP_PKEY *,int) | | EVP_PKEY_delete_attr | 1 | int | +| (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 0 | EVP_PKEY * | +| (EVP_PKEY *,int) | | EVP_PKEY_save_parameters | 1 | int | +| (EVP_PKEY *,int) | | EVP_PKEY_set_type | 0 | EVP_PKEY * | +| (EVP_PKEY *,int) | | EVP_PKEY_set_type | 1 | int | +| (EVP_PKEY *,int,void *) | | EVP_PKEY_assign | 0 | EVP_PKEY * | +| (EVP_PKEY *,int,void *) | | EVP_PKEY_assign | 1 | int | +| (EVP_PKEY *,int,void *) | | EVP_PKEY_assign | 2 | void * | +| (EVP_PKEY *,stack_st_X509 *) | | X509_get_pubkey_parameters | 0 | EVP_PKEY * | +| (EVP_PKEY *,stack_st_X509 *) | | X509_get_pubkey_parameters | 1 | stack_st_X509 * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_check | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_check | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_ctrl | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_ctrl | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_free | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_free | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_get_priv_key | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_get_priv_key | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_get_pub_key | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_get_pub_key | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_param_check | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_param_check | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_public_check | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_public_check | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_security_bits | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_security_bits | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_set_priv_key | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_set_priv_key | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_set_pub_key | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_set_pub_key | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_siginf | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..)) | | EVP_PKEY_asn1_set_siginf | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_item | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_item | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_item | 2 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_private | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_private | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_private | 2 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_private | 3 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_param | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_param | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_param | 2 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_param | 3 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_param | 4 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_param | 5 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_param | 6 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_public | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_public | 1 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_public | 2 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_public | 3 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_public | 4 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_public | 5 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | EVP_PKEY_asn1_set_public | 6 | ..(*)(..) | +| (EVP_PKEY_ASN1_METHOD *,const EVP_PKEY_ASN1_METHOD *) | | EVP_PKEY_asn1_copy | 0 | EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_ASN1_METHOD *,const EVP_PKEY_ASN1_METHOD *) | | EVP_PKEY_asn1_copy | 1 | const EVP_PKEY_ASN1_METHOD * | +| (EVP_PKEY_CTX *) | | EVP_PKEY_CTX_get0_libctx | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *) | | EVP_PKEY_CTX_get0_peerkey | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *) | | EVP_PKEY_CTX_get0_pkey | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *) | | EVP_PKEY_CTX_get_app_data | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *) | | EVP_PKEY_CTX_get_cb | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *) | | EVP_PKEY_CTX_get_operation | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *) | | init_gen_str | 0 | EVP_PKEY_CTX ** | +| (EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *) | | init_gen_str | 1 | const char * | +| (EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *) | | init_gen_str | 2 | ENGINE * | +| (EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *) | | init_gen_str | 3 | int | +| (EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *) | | init_gen_str | 4 | OSSL_LIB_CTX * | +| (EVP_PKEY_CTX **,const char *,ENGINE *,int,OSSL_LIB_CTX *,const char *) | | init_gen_str | 5 | const char * | +| (EVP_PKEY_CTX *,ASN1_OBJECT *) | | EVP_PKEY_CTX_set0_dh_kdf_oid | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,ASN1_OBJECT *) | | EVP_PKEY_CTX_set0_dh_kdf_oid | 1 | ASN1_OBJECT * | +| (EVP_PKEY_CTX *,ASN1_OBJECT **) | | EVP_PKEY_CTX_get0_dh_kdf_oid | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,ASN1_OBJECT **) | | EVP_PKEY_CTX_get0_dh_kdf_oid | 1 | ASN1_OBJECT ** | +| (EVP_PKEY_CTX *,BIGNUM *) | | EVP_PKEY_CTX_set1_rsa_keygen_pubexp | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,BIGNUM *) | | EVP_PKEY_CTX_set1_rsa_keygen_pubexp | 1 | BIGNUM * | +| (EVP_PKEY_CTX *,BIGNUM *) | | EVP_PKEY_CTX_set_rsa_keygen_pubexp | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,BIGNUM *) | | EVP_PKEY_CTX_set_rsa_keygen_pubexp | 1 | BIGNUM * | +| (EVP_PKEY_CTX *,EVP_PKEY *) | | EVP_PKEY_derive_set_peer | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,EVP_PKEY *) | | EVP_PKEY_derive_set_peer | 1 | EVP_PKEY * | +| (EVP_PKEY_CTX *,EVP_PKEY **) | | EVP_PKEY_generate | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,EVP_PKEY **) | | EVP_PKEY_generate | 1 | EVP_PKEY ** | +| (EVP_PKEY_CTX *,EVP_PKEY **) | | EVP_PKEY_keygen | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,EVP_PKEY **) | | EVP_PKEY_keygen | 1 | EVP_PKEY ** | +| (EVP_PKEY_CTX *,EVP_PKEY **) | | EVP_PKEY_paramgen | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,EVP_PKEY **) | | EVP_PKEY_paramgen | 1 | EVP_PKEY ** | +| (EVP_PKEY_CTX *,EVP_PKEY **,int,OSSL_PARAM[]) | | EVP_PKEY_fromdata | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,EVP_PKEY **,int,OSSL_PARAM[]) | | EVP_PKEY_fromdata | 1 | EVP_PKEY ** | +| (EVP_PKEY_CTX *,EVP_PKEY **,int,OSSL_PARAM[]) | | EVP_PKEY_fromdata | 2 | int | +| (EVP_PKEY_CTX *,EVP_PKEY **,int,OSSL_PARAM[]) | | EVP_PKEY_fromdata | 3 | OSSL_PARAM[] | +| (EVP_PKEY_CTX *,EVP_PKEY *,int) | | EVP_PKEY_derive_set_peer_ex | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,EVP_PKEY *,int) | | EVP_PKEY_derive_set_peer_ex | 1 | EVP_PKEY * | +| (EVP_PKEY_CTX *,EVP_PKEY *,int) | | EVP_PKEY_derive_set_peer_ex | 2 | int | +| (EVP_PKEY_CTX *,EVP_PKEY_gen_cb *) | | EVP_PKEY_CTX_set_cb | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,EVP_PKEY_gen_cb *) | | EVP_PKEY_CTX_set_cb | 1 | EVP_PKEY_gen_cb * | +| (EVP_PKEY_CTX *,OSSL_PARAM *) | | EVP_PKEY_CTX_get_params | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,OSSL_PARAM *) | | EVP_PKEY_CTX_get_params | 1 | OSSL_PARAM * | +| (EVP_PKEY_CTX *,OSSL_PARAM *) | | evp_pkey_ctx_get_params_strict | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,OSSL_PARAM *) | | evp_pkey_ctx_get_params_strict | 1 | OSSL_PARAM * | +| (EVP_PKEY_CTX *,OSSL_PARAM *) | | evp_pkey_ctx_get_params_to_ctrl | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,OSSL_PARAM *) | | evp_pkey_ctx_get_params_to_ctrl | 1 | OSSL_PARAM * | +| (EVP_PKEY_CTX *,OSSL_PARAM *) | | evp_pkey_ctx_set_params_strict | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,OSSL_PARAM *) | | evp_pkey_ctx_set_params_strict | 1 | OSSL_PARAM * | +| (EVP_PKEY_CTX *,X509_ALGOR **) | | EVP_PKEY_CTX_get_algor | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,X509_ALGOR **) | | EVP_PKEY_CTX_get_algor | 1 | X509_ALGOR ** | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_dh_kdf_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_dh_kdf_md | 1 | const EVP_MD * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_dsa_paramgen_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_dsa_paramgen_md | 1 | const EVP_MD * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_ecdh_kdf_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_ecdh_kdf_md | 1 | const EVP_MD * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_hkdf_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_hkdf_md | 1 | const EVP_MD * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_rsa_mgf1_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_rsa_mgf1_md | 1 | const EVP_MD * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_rsa_oaep_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_rsa_oaep_md | 1 | const EVP_MD * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_rsa_pss_keygen_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_rsa_pss_keygen_md | 1 | const EVP_MD * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md | 1 | const EVP_MD * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_signature_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_signature_md | 1 | const EVP_MD * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_tls1_prf_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD *) | | EVP_PKEY_CTX_set_tls1_prf_md | 1 | const EVP_MD * | +| (EVP_PKEY_CTX *,const EVP_MD **) | | EVP_PKEY_CTX_get_dh_kdf_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD **) | | EVP_PKEY_CTX_get_dh_kdf_md | 1 | const EVP_MD ** | +| (EVP_PKEY_CTX *,const EVP_MD **) | | EVP_PKEY_CTX_get_ecdh_kdf_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD **) | | EVP_PKEY_CTX_get_ecdh_kdf_md | 1 | const EVP_MD ** | +| (EVP_PKEY_CTX *,const EVP_MD **) | | EVP_PKEY_CTX_get_rsa_mgf1_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD **) | | EVP_PKEY_CTX_get_rsa_mgf1_md | 1 | const EVP_MD ** | +| (EVP_PKEY_CTX *,const EVP_MD **) | | EVP_PKEY_CTX_get_rsa_oaep_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD **) | | EVP_PKEY_CTX_get_rsa_oaep_md | 1 | const EVP_MD ** | +| (EVP_PKEY_CTX *,const EVP_MD **) | | EVP_PKEY_CTX_get_signature_md | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const EVP_MD **) | | EVP_PKEY_CTX_get_signature_md | 1 | const EVP_MD ** | +| (EVP_PKEY_CTX *,const OSSL_PARAM *) | | EVP_PKEY_CTX_set_params | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const OSSL_PARAM *) | | EVP_PKEY_CTX_set_params | 1 | const OSSL_PARAM * | +| (EVP_PKEY_CTX *,const OSSL_PARAM *) | | evp_pkey_ctx_set_params_to_ctrl | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const OSSL_PARAM *) | | evp_pkey_ctx_set_params_to_ctrl | 1 | const OSSL_PARAM * | +| (EVP_PKEY_CTX *,const char *) | | app_paramgen | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const char *) | | app_paramgen | 1 | const char * | +| (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const char *) | | pkey_ctrl_string | 1 | const char * | +| (EVP_PKEY_CTX *,const char *,const char *) | | EVP_PKEY_CTX_ctrl_str | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const char *,const char *) | | EVP_PKEY_CTX_ctrl_str | 1 | const char * | +| (EVP_PKEY_CTX *,const char *,const char *) | | EVP_PKEY_CTX_ctrl_str | 2 | const char * | +| (EVP_PKEY_CTX *,const char *,int) | | EVP_PKEY_CTX_set1_pbe_pass | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const char *,int) | | EVP_PKEY_CTX_set1_pbe_pass | 1 | const char * | +| (EVP_PKEY_CTX *,const char *,int) | | EVP_PKEY_CTX_set1_pbe_pass | 2 | int | +| (EVP_PKEY_CTX *,const char *,int,int) | | app_keygen | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const char *,int,int) | | app_keygen | 1 | const char * | +| (EVP_PKEY_CTX *,const char *,int,int) | | app_keygen | 2 | int | +| (EVP_PKEY_CTX *,const char *,int,int) | | app_keygen | 3 | int | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_hkdf_info | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_hkdf_info | 1 | const unsigned char * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_hkdf_info | 2 | int | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_tls1_prf_seed | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_tls1_prf_seed | 1 | const unsigned char * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_add1_tls1_prf_seed | 2 | int | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_key | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_key | 1 | const unsigned char * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_key | 2 | int | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_salt | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_salt | 1 | const unsigned char * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_hkdf_salt | 2 | int | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_scrypt_salt | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_scrypt_salt | 1 | const unsigned char * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_scrypt_salt | 2 | int | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_tls1_prf_secret | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_tls1_prf_secret | 1 | const unsigned char * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set1_tls1_prf_secret | 2 | int | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set_mac_key | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set_mac_key | 1 | const unsigned char * | +| (EVP_PKEY_CTX *,const unsigned char *,int) | | EVP_PKEY_CTX_set_mac_key | 2 | int | +| (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 1 | const void * | +| (EVP_PKEY_CTX *,const void *,int) | | EVP_PKEY_CTX_set1_id | 2 | int | +| (EVP_PKEY_CTX *,int *) | | EVP_PKEY_CTX_get_rsa_padding | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int *) | | EVP_PKEY_CTX_get_rsa_padding | 1 | int * | +| (EVP_PKEY_CTX *,int *) | | EVP_PKEY_CTX_get_rsa_pss_saltlen | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int *) | | EVP_PKEY_CTX_get_rsa_pss_saltlen | 1 | int * | +| (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 1 | int * | +| (EVP_PKEY_CTX *,int *,int) | | EVP_PKEY_CTX_set0_keygen_info | 2 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_get_keygen_info | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_kdf_type | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_nid | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_paramgen_type | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dh_rfc5114 | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_dhx_rfc5114 | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_param_enc | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ec_paramgen_curve_nid | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_ecdh_kdf_type | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_hkdf_mode | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_padding | 1 | int | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int) | | EVP_PKEY_CTX_set_rsa_pss_saltlen | 1 | int | +| (EVP_PKEY_CTX *,int,int,int,int,void *) | | EVP_PKEY_CTX_ctrl | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int,int,int,int,void *) | | EVP_PKEY_CTX_ctrl | 1 | int | +| (EVP_PKEY_CTX *,int,int,int,int,void *) | | EVP_PKEY_CTX_ctrl | 2 | int | +| (EVP_PKEY_CTX *,int,int,int,int,void *) | | EVP_PKEY_CTX_ctrl | 3 | int | +| (EVP_PKEY_CTX *,int,int,int,int,void *) | | EVP_PKEY_CTX_ctrl | 4 | int | +| (EVP_PKEY_CTX *,int,int,int,int,void *) | | EVP_PKEY_CTX_ctrl | 5 | void * | +| (EVP_PKEY_CTX *,int,int,int,uint64_t) | | EVP_PKEY_CTX_ctrl_uint64 | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int,int,int,uint64_t) | | EVP_PKEY_CTX_ctrl_uint64 | 1 | int | +| (EVP_PKEY_CTX *,int,int,int,uint64_t) | | EVP_PKEY_CTX_ctrl_uint64 | 2 | int | +| (EVP_PKEY_CTX *,int,int,int,uint64_t) | | EVP_PKEY_CTX_ctrl_uint64 | 3 | int | +| (EVP_PKEY_CTX *,int,int,int,uint64_t) | | EVP_PKEY_CTX_ctrl_uint64 | 4 | uint64_t | +| (EVP_PKEY_CTX *,int,int,int,void *) | | RSA_pkey_ctx_ctrl | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,int,int,int,void *) | | RSA_pkey_ctx_ctrl | 1 | int | +| (EVP_PKEY_CTX *,int,int,int,void *) | | RSA_pkey_ctx_ctrl | 2 | int | +| (EVP_PKEY_CTX *,int,int,int,void *) | | RSA_pkey_ctx_ctrl | 3 | int | +| (EVP_PKEY_CTX *,int,int,int,void *) | | RSA_pkey_ctx_ctrl | 4 | void * | +| (EVP_PKEY_CTX *,size_t *) | | EVP_PKEY_CTX_get1_id_len | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,size_t *) | | EVP_PKEY_CTX_get1_id_len | 1 | size_t * | +| (EVP_PKEY_CTX *,uint64_t) | | EVP_PKEY_CTX_set_scrypt_N | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,uint64_t) | | EVP_PKEY_CTX_set_scrypt_N | 1 | uint64_t | +| (EVP_PKEY_CTX *,uint64_t) | | EVP_PKEY_CTX_set_scrypt_maxmem_bytes | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,uint64_t) | | EVP_PKEY_CTX_set_scrypt_maxmem_bytes | 1 | uint64_t | +| (EVP_PKEY_CTX *,uint64_t) | | EVP_PKEY_CTX_set_scrypt_p | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,uint64_t) | | EVP_PKEY_CTX_set_scrypt_p | 1 | uint64_t | +| (EVP_PKEY_CTX *,uint64_t) | | EVP_PKEY_CTX_set_scrypt_r | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,uint64_t) | | EVP_PKEY_CTX_set_scrypt_r | 1 | uint64_t | +| (EVP_PKEY_CTX *,unsigned char **,size_t *,size_t,const unsigned char *,size_t) | | evp_pkey_decrypt_alloc | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,unsigned char **,size_t *,size_t,const unsigned char *,size_t) | | evp_pkey_decrypt_alloc | 1 | unsigned char ** | +| (EVP_PKEY_CTX *,unsigned char **,size_t *,size_t,const unsigned char *,size_t) | | evp_pkey_decrypt_alloc | 2 | size_t * | +| (EVP_PKEY_CTX *,unsigned char **,size_t *,size_t,const unsigned char *,size_t) | | evp_pkey_decrypt_alloc | 3 | size_t | +| (EVP_PKEY_CTX *,unsigned char **,size_t *,size_t,const unsigned char *,size_t) | | evp_pkey_decrypt_alloc | 4 | const unsigned char * | +| (EVP_PKEY_CTX *,unsigned char **,size_t *,size_t,const unsigned char *,size_t) | | evp_pkey_decrypt_alloc | 5 | size_t | +| (EVP_PKEY_CTX *,unsigned char *,size_t *) | | EVP_PKEY_derive | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *) | | EVP_PKEY_derive | 1 | unsigned char * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *) | | EVP_PKEY_derive | 2 | size_t * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *) | | EVP_PKEY_sign_message_final | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *) | | EVP_PKEY_sign_message_final | 1 | unsigned char * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *) | | EVP_PKEY_sign_message_final | 2 | size_t * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_decrypt | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_decrypt | 1 | unsigned char * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_decrypt | 2 | size_t * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_decrypt | 3 | const unsigned char * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_decrypt | 4 | size_t | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_encrypt | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_encrypt | 1 | unsigned char * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_encrypt | 2 | size_t * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_encrypt | 3 | const unsigned char * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_encrypt | 4 | size_t | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_sign | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_sign | 1 | unsigned char * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_sign | 2 | size_t * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_sign | 3 | const unsigned char * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_sign | 4 | size_t | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_verify_recover | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_verify_recover | 1 | unsigned char * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_verify_recover | 2 | size_t * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_verify_recover | 3 | const unsigned char * | +| (EVP_PKEY_CTX *,unsigned char *,size_t *,const unsigned char *,size_t) | | EVP_PKEY_verify_recover | 4 | size_t | +| (EVP_PKEY_CTX *,void *) | | EVP_PKEY_CTX_get1_id | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,void *) | | EVP_PKEY_CTX_get1_id | 1 | void * | +| (EVP_PKEY_CTX *,void *) | | EVP_PKEY_CTX_set_app_data | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,void *) | | EVP_PKEY_CTX_set_app_data | 1 | void * | +| (EVP_PKEY_CTX *,void *) | | EVP_PKEY_CTX_set_data | 0 | EVP_PKEY_CTX * | +| (EVP_PKEY_CTX *,void *) | | EVP_PKEY_CTX_set_data | 1 | void * | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_check | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_check | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_cleanup | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_cleanup | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_copy | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_copy | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_digest_custom | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_digest_custom | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_digestsign | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_digestsign | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_digestverify | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_digestverify | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_init | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_init | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_param_check | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_param_check | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_public_check | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..)) | | EVP_PKEY_meth_set_public_check | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_ctrl | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_ctrl | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_ctrl | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_decrypt | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_decrypt | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_decrypt | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_derive | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_derive | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_derive | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_encrypt | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_encrypt | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_encrypt | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_keygen | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_keygen | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_keygen | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_paramgen | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_paramgen | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_paramgen | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_sign | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_sign | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_sign | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_signctx | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_signctx | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_signctx | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_verify | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_verify | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_verify | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_verify_recover | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_verify_recover | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_verify_recover | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_verifyctx | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_verifyctx | 1 | ..(*)(..) | +| (EVP_PKEY_METHOD *,..(*)(..),..(*)(..)) | | EVP_PKEY_meth_set_verifyctx | 2 | ..(*)(..) | +| (EVP_PKEY_METHOD *,const EVP_PKEY_METHOD *) | | EVP_PKEY_meth_copy | 0 | EVP_PKEY_METHOD * | +| (EVP_PKEY_METHOD *,const EVP_PKEY_METHOD *) | | EVP_PKEY_meth_copy | 1 | const EVP_PKEY_METHOD * | +| (EVP_RAND *,EVP_RAND_CTX *) | | EVP_RAND_CTX_new | 0 | EVP_RAND * | +| (EVP_RAND *,EVP_RAND_CTX *) | | EVP_RAND_CTX_new | 1 | EVP_RAND_CTX * | +| (EVP_RAND_CTX *) | | EVP_RAND_CTX_get0_rand | 0 | EVP_RAND_CTX * | +| (EVP_RAND_CTX *) | | evp_rand_can_seed | 0 | EVP_RAND_CTX * | +| (EVP_RAND_CTX *,..(*)(..)) | | fake_rand_set_callback | 0 | EVP_RAND_CTX * | +| (EVP_RAND_CTX *,..(*)(..)) | | fake_rand_set_callback | 1 | ..(*)(..) | +| (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 0 | EVP_RAND_CTX * | +| (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 1 | unsigned char * | +| (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 2 | size_t | +| (EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t) | | EVP_RAND_generate | 0 | EVP_RAND_CTX * | +| (EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t) | | EVP_RAND_generate | 1 | unsigned char * | +| (EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t) | | EVP_RAND_generate | 2 | size_t | +| (EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t) | | EVP_RAND_generate | 3 | unsigned int | +| (EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t) | | EVP_RAND_generate | 4 | int | +| (EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t) | | EVP_RAND_generate | 5 | const unsigned char * | +| (EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t) | | EVP_RAND_generate | 6 | size_t | +| (EVP_SKEY *,OSSL_LIB_CTX *,OSSL_PROVIDER *,const char *) | | EVP_SKEY_to_provider | 0 | EVP_SKEY * | +| (EVP_SKEY *,OSSL_LIB_CTX *,OSSL_PROVIDER *,const char *) | | EVP_SKEY_to_provider | 1 | OSSL_LIB_CTX * | +| (EVP_SKEY *,OSSL_LIB_CTX *,OSSL_PROVIDER *,const char *) | | EVP_SKEY_to_provider | 2 | OSSL_PROVIDER * | +| (EVP_SKEY *,OSSL_LIB_CTX *,OSSL_PROVIDER *,const char *) | | EVP_SKEY_to_provider | 3 | const char * | +| (EXTENDED_KEY_USAGE *) | | EXTENDED_KEY_USAGE_free | 0 | EXTENDED_KEY_USAGE * | +| (EXTENDED_KEY_USAGE **,const unsigned char **,long) | | d2i_EXTENDED_KEY_USAGE | 0 | EXTENDED_KEY_USAGE ** | +| (EXTENDED_KEY_USAGE **,const unsigned char **,long) | | d2i_EXTENDED_KEY_USAGE | 1 | const unsigned char ** | +| (EXTENDED_KEY_USAGE **,const unsigned char **,long) | | d2i_EXTENDED_KEY_USAGE | 2 | long | +| (FFC_PARAMS *,BIGNUM *) | | ossl_ffc_params_set0_j | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,BIGNUM *) | | ossl_ffc_params_set0_j | 1 | BIGNUM * | +| (FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_ffc_params_set0_pqg | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_ffc_params_set0_pqg | 1 | BIGNUM * | +| (FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_ffc_params_set0_pqg | 2 | BIGNUM * | +| (FFC_PARAMS *,BIGNUM *,BIGNUM *,BIGNUM *) | | ossl_ffc_params_set0_pqg | 3 | BIGNUM * | +| (FFC_PARAMS *,const DH_NAMED_GROUP *) | | ossl_ffc_named_group_set | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,const DH_NAMED_GROUP *) | | ossl_ffc_named_group_set | 1 | const DH_NAMED_GROUP * | +| (FFC_PARAMS *,const FFC_PARAMS *) | | ossl_ffc_params_copy | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,const FFC_PARAMS *) | | ossl_ffc_params_copy | 1 | const FFC_PARAMS * | +| (FFC_PARAMS *,const OSSL_PARAM[]) | | ossl_ffc_params_fromdata | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,const OSSL_PARAM[]) | | ossl_ffc_params_fromdata | 1 | const OSSL_PARAM[] | +| (FFC_PARAMS *,const char *,const char *) | | ossl_ffc_set_digest | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,const char *,const char *) | | ossl_ffc_set_digest | 1 | const char * | +| (FFC_PARAMS *,const char *,const char *) | | ossl_ffc_set_digest | 2 | const char * | +| (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 1 | const unsigned char * | +| (FFC_PARAMS *,const unsigned char *,size_t) | | ossl_ffc_params_set_seed | 2 | size_t | +| (FFC_PARAMS *,const unsigned char *,size_t,int) | | ossl_ffc_params_set_validate_params | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,const unsigned char *,size_t,int) | | ossl_ffc_params_set_validate_params | 1 | const unsigned char * | +| (FFC_PARAMS *,const unsigned char *,size_t,int) | | ossl_ffc_params_set_validate_params | 2 | size_t | +| (FFC_PARAMS *,const unsigned char *,size_t,int) | | ossl_ffc_params_set_validate_params | 3 | int | +| (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,int) | | ossl_ffc_params_set_gindex | 1 | int | +| (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,int) | | ossl_ffc_params_set_h | 1 | int | +| (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,int) | | ossl_ffc_params_set_pcounter | 1 | int | +| (FFC_PARAMS *,unsigned int) | | ossl_ffc_params_set_flags | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,unsigned int) | | ossl_ffc_params_set_flags | 1 | unsigned int | +| (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 0 | FFC_PARAMS * | +| (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 1 | unsigned int | +| (FFC_PARAMS *,unsigned int,int) | | ossl_ffc_params_enable_flags | 2 | int | +| (FILE *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_CMS | 0 | FILE * | +| (FILE *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_CMS | 1 | CMS_ContentInfo ** | +| (FILE *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_CMS | 2 | pem_password_cb * | +| (FILE *,CMS_ContentInfo **,pem_password_cb *,void *) | | PEM_read_CMS | 3 | void * | +| (FILE *,DH **,pem_password_cb *,void *) | | PEM_read_DHparams | 0 | FILE * | +| (FILE *,DH **,pem_password_cb *,void *) | | PEM_read_DHparams | 1 | DH ** | +| (FILE *,DH **,pem_password_cb *,void *) | | PEM_read_DHparams | 2 | pem_password_cb * | +| (FILE *,DH **,pem_password_cb *,void *) | | PEM_read_DHparams | 3 | void * | +| (FILE *,DSA **) | | d2i_DSAPrivateKey_fp | 0 | FILE * | +| (FILE *,DSA **) | | d2i_DSAPrivateKey_fp | 1 | DSA ** | +| (FILE *,DSA **) | | d2i_DSA_PUBKEY_fp | 0 | FILE * | +| (FILE *,DSA **) | | d2i_DSA_PUBKEY_fp | 1 | DSA ** | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAPrivateKey | 0 | FILE * | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAPrivateKey | 1 | DSA ** | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAPrivateKey | 2 | pem_password_cb * | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAPrivateKey | 3 | void * | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSA_PUBKEY | 0 | FILE * | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSA_PUBKEY | 1 | DSA ** | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSA_PUBKEY | 2 | pem_password_cb * | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSA_PUBKEY | 3 | void * | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAparams | 0 | FILE * | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAparams | 1 | DSA ** | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAparams | 2 | pem_password_cb * | +| (FILE *,DSA **,pem_password_cb *,void *) | | PEM_read_DSAparams | 3 | void * | +| (FILE *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_ECPKParameters | 0 | FILE * | +| (FILE *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_ECPKParameters | 1 | EC_GROUP ** | +| (FILE *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_ECPKParameters | 2 | pem_password_cb * | +| (FILE *,EC_GROUP **,pem_password_cb *,void *) | | PEM_read_ECPKParameters | 3 | void * | +| (FILE *,EC_KEY **) | | d2i_ECPrivateKey_fp | 0 | FILE * | +| (FILE *,EC_KEY **) | | d2i_ECPrivateKey_fp | 1 | EC_KEY ** | +| (FILE *,EC_KEY **) | | d2i_EC_PUBKEY_fp | 0 | FILE * | +| (FILE *,EC_KEY **) | | d2i_EC_PUBKEY_fp | 1 | EC_KEY ** | +| (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_ECPrivateKey | 0 | FILE * | +| (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_ECPrivateKey | 1 | EC_KEY ** | +| (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_ECPrivateKey | 2 | pem_password_cb * | +| (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_ECPrivateKey | 3 | void * | +| (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_EC_PUBKEY | 0 | FILE * | +| (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_EC_PUBKEY | 1 | EC_KEY ** | +| (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_EC_PUBKEY | 2 | pem_password_cb * | +| (FILE *,EC_KEY **,pem_password_cb *,void *) | | PEM_read_EC_PUBKEY | 3 | void * | +| (FILE *,EVP_PKEY **) | | d2i_PUBKEY_fp | 0 | FILE * | +| (FILE *,EVP_PKEY **) | | d2i_PUBKEY_fp | 1 | EVP_PKEY ** | +| (FILE *,EVP_PKEY **) | | d2i_PrivateKey_fp | 0 | FILE * | +| (FILE *,EVP_PKEY **) | | d2i_PrivateKey_fp | 1 | EVP_PKEY ** | +| (FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex_fp | 0 | FILE * | +| (FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex_fp | 1 | EVP_PKEY ** | +| (FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex_fp | 2 | OSSL_LIB_CTX * | +| (FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PUBKEY_ex_fp | 3 | const char * | +| (FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex_fp | 0 | FILE * | +| (FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex_fp | 1 | EVP_PKEY ** | +| (FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex_fp | 2 | OSSL_LIB_CTX * | +| (FILE *,EVP_PKEY **,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex_fp | 3 | const char * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PUBKEY | 0 | FILE * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PUBKEY | 1 | EVP_PKEY ** | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PUBKEY | 2 | pem_password_cb * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PUBKEY | 3 | void * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PrivateKey | 0 | FILE * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PrivateKey | 1 | EVP_PKEY ** | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PrivateKey | 2 | pem_password_cb * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | PEM_read_PrivateKey | 3 | void * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_fp | 0 | FILE * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_fp | 1 | EVP_PKEY ** | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_fp | 2 | pem_password_cb * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *) | | d2i_PKCS8PrivateKey_fp | 3 | void * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PUBKEY_ex | 0 | FILE * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PUBKEY_ex | 1 | EVP_PKEY ** | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PUBKEY_ex | 2 | pem_password_cb * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PUBKEY_ex | 3 | void * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PUBKEY_ex | 4 | OSSL_LIB_CTX * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PUBKEY_ex | 5 | const char * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PrivateKey_ex | 0 | FILE * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PrivateKey_ex | 1 | EVP_PKEY ** | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PrivateKey_ex | 2 | pem_password_cb * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PrivateKey_ex | 3 | void * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PrivateKey_ex | 4 | OSSL_LIB_CTX * | +| (FILE *,EVP_PKEY **,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_read_PrivateKey_ex | 5 | const char * | +| (FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_NETSCAPE_CERT_SEQUENCE | 0 | FILE * | +| (FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_NETSCAPE_CERT_SEQUENCE | 1 | NETSCAPE_CERT_SEQUENCE ** | +| (FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_NETSCAPE_CERT_SEQUENCE | 2 | pem_password_cb * | +| (FILE *,NETSCAPE_CERT_SEQUENCE **,pem_password_cb *,void *) | | PEM_read_NETSCAPE_CERT_SEQUENCE | 3 | void * | +| (FILE *,PKCS7 **) | | d2i_PKCS7_fp | 0 | FILE * | +| (FILE *,PKCS7 **) | | d2i_PKCS7_fp | 1 | PKCS7 ** | +| (FILE *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_PKCS7 | 0 | FILE * | +| (FILE *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_PKCS7 | 1 | PKCS7 ** | +| (FILE *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_PKCS7 | 2 | pem_password_cb * | +| (FILE *,PKCS7 **,pem_password_cb *,void *) | | PEM_read_PKCS7 | 3 | void * | +| (FILE *,PKCS8_PRIV_KEY_INFO **) | | d2i_PKCS8_PRIV_KEY_INFO_fp | 0 | FILE * | +| (FILE *,PKCS8_PRIV_KEY_INFO **) | | d2i_PKCS8_PRIV_KEY_INFO_fp | 1 | PKCS8_PRIV_KEY_INFO ** | +| (FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_PKCS8_PRIV_KEY_INFO | 0 | FILE * | +| (FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_PKCS8_PRIV_KEY_INFO | 1 | PKCS8_PRIV_KEY_INFO ** | +| (FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_PKCS8_PRIV_KEY_INFO | 2 | pem_password_cb * | +| (FILE *,PKCS8_PRIV_KEY_INFO **,pem_password_cb *,void *) | | PEM_read_PKCS8_PRIV_KEY_INFO | 3 | void * | +| (FILE *,PKCS12 **) | | d2i_PKCS12_fp | 0 | FILE * | +| (FILE *,PKCS12 **) | | d2i_PKCS12_fp | 1 | PKCS12 ** | +| (FILE *,RSA **) | | d2i_RSAPrivateKey_fp | 0 | FILE * | +| (FILE *,RSA **) | | d2i_RSAPrivateKey_fp | 1 | RSA ** | +| (FILE *,RSA **) | | d2i_RSAPublicKey_fp | 0 | FILE * | +| (FILE *,RSA **) | | d2i_RSAPublicKey_fp | 1 | RSA ** | +| (FILE *,RSA **) | | d2i_RSA_PUBKEY_fp | 0 | FILE * | +| (FILE *,RSA **) | | d2i_RSA_PUBKEY_fp | 1 | RSA ** | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPrivateKey | 0 | FILE * | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPrivateKey | 1 | RSA ** | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPrivateKey | 2 | pem_password_cb * | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPrivateKey | 3 | void * | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPublicKey | 0 | FILE * | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPublicKey | 1 | RSA ** | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPublicKey | 2 | pem_password_cb * | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSAPublicKey | 3 | void * | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSA_PUBKEY | 0 | FILE * | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSA_PUBKEY | 1 | RSA ** | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSA_PUBKEY | 2 | pem_password_cb * | +| (FILE *,RSA **,pem_password_cb *,void *) | | PEM_read_RSA_PUBKEY | 3 | void * | +| (FILE *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_SSL_SESSION | 0 | FILE * | +| (FILE *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_SSL_SESSION | 1 | SSL_SESSION ** | +| (FILE *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_SSL_SESSION | 2 | pem_password_cb * | +| (FILE *,SSL_SESSION **,pem_password_cb *,void *) | | PEM_read_SSL_SESSION | 3 | void * | +| (FILE *,TS_MSG_IMPRINT **) | | d2i_TS_MSG_IMPRINT_fp | 0 | FILE * | +| (FILE *,TS_MSG_IMPRINT **) | | d2i_TS_MSG_IMPRINT_fp | 1 | TS_MSG_IMPRINT ** | +| (FILE *,TS_REQ **) | | d2i_TS_REQ_fp | 0 | FILE * | +| (FILE *,TS_REQ **) | | d2i_TS_REQ_fp | 1 | TS_REQ ** | +| (FILE *,TS_RESP **) | | d2i_TS_RESP_fp | 0 | FILE * | +| (FILE *,TS_RESP **) | | d2i_TS_RESP_fp | 1 | TS_RESP ** | +| (FILE *,TS_TST_INFO **) | | d2i_TS_TST_INFO_fp | 0 | FILE * | +| (FILE *,TS_TST_INFO **) | | d2i_TS_TST_INFO_fp | 1 | TS_TST_INFO ** | +| (FILE *,X509 **) | | d2i_X509_fp | 0 | FILE * | +| (FILE *,X509 **) | | d2i_X509_fp | 1 | X509 ** | +| (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509 | 0 | FILE * | +| (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509 | 1 | X509 ** | +| (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509 | 2 | pem_password_cb * | +| (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509 | 3 | void * | +| (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509_AUX | 0 | FILE * | +| (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509_AUX | 1 | X509 ** | +| (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509_AUX | 2 | pem_password_cb * | +| (FILE *,X509 **,pem_password_cb *,void *) | | PEM_read_X509_AUX | 3 | void * | +| (FILE *,X509_ACERT **) | | d2i_X509_ACERT_fp | 0 | FILE * | +| (FILE *,X509_ACERT **) | | d2i_X509_ACERT_fp | 1 | X509_ACERT ** | +| (FILE *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_X509_ACERT | 0 | FILE * | +| (FILE *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_X509_ACERT | 1 | X509_ACERT ** | +| (FILE *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_X509_ACERT | 2 | pem_password_cb * | +| (FILE *,X509_ACERT **,pem_password_cb *,void *) | | PEM_read_X509_ACERT | 3 | void * | +| (FILE *,X509_CRL **) | | d2i_X509_CRL_fp | 0 | FILE * | +| (FILE *,X509_CRL **) | | d2i_X509_CRL_fp | 1 | X509_CRL ** | +| (FILE *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_X509_CRL | 0 | FILE * | +| (FILE *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_X509_CRL | 1 | X509_CRL ** | +| (FILE *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_X509_CRL | 2 | pem_password_cb * | +| (FILE *,X509_CRL **,pem_password_cb *,void *) | | PEM_read_X509_CRL | 3 | void * | +| (FILE *,X509_PUBKEY **) | | d2i_X509_PUBKEY_fp | 0 | FILE * | +| (FILE *,X509_PUBKEY **) | | d2i_X509_PUBKEY_fp | 1 | X509_PUBKEY ** | +| (FILE *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_X509_PUBKEY | 0 | FILE * | +| (FILE *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_X509_PUBKEY | 1 | X509_PUBKEY ** | +| (FILE *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_X509_PUBKEY | 2 | pem_password_cb * | +| (FILE *,X509_PUBKEY **,pem_password_cb *,void *) | | PEM_read_X509_PUBKEY | 3 | void * | +| (FILE *,X509_REQ **) | | d2i_X509_REQ_fp | 0 | FILE * | +| (FILE *,X509_REQ **) | | d2i_X509_REQ_fp | 1 | X509_REQ ** | +| (FILE *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_X509_REQ | 0 | FILE * | +| (FILE *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_X509_REQ | 1 | X509_REQ ** | +| (FILE *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_X509_REQ | 2 | pem_password_cb * | +| (FILE *,X509_REQ **,pem_password_cb *,void *) | | PEM_read_X509_REQ | 3 | void * | +| (FILE *,X509_SIG **) | | d2i_PKCS8_fp | 0 | FILE * | +| (FILE *,X509_SIG **) | | d2i_PKCS8_fp | 1 | X509_SIG ** | +| (FILE *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_PKCS8 | 0 | FILE * | +| (FILE *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_PKCS8 | 1 | X509_SIG ** | +| (FILE *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_PKCS8 | 2 | pem_password_cb * | +| (FILE *,X509_SIG **,pem_password_cb *,void *) | | PEM_read_PKCS8 | 3 | void * | +| (FILE *,char **,char **,unsigned char **,long *) | | PEM_read | 0 | FILE * | +| (FILE *,char **,char **,unsigned char **,long *) | | PEM_read | 1 | char ** | +| (FILE *,char **,char **,unsigned char **,long *) | | PEM_read | 2 | char ** | +| (FILE *,char **,char **,unsigned char **,long *) | | PEM_read | 3 | unsigned char ** | +| (FILE *,char **,char **,unsigned char **,long *) | | PEM_read | 4 | long * | +| (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 0 | FILE * | +| (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 1 | const ASN1_STRING * | +| (FILE *,const ASN1_STRING *,unsigned long) | | ASN1_STRING_print_ex_fp | 2 | unsigned long | +| (FILE *,const CMS_ContentInfo *) | | PEM_write_CMS | 0 | FILE * | +| (FILE *,const CMS_ContentInfo *) | | PEM_write_CMS | 1 | const CMS_ContentInfo * | +| (FILE *,const DH *) | | PEM_write_DHparams | 0 | FILE * | +| (FILE *,const DH *) | | PEM_write_DHparams | 1 | const DH * | +| (FILE *,const DH *) | | PEM_write_DHxparams | 0 | FILE * | +| (FILE *,const DH *) | | PEM_write_DHxparams | 1 | const DH * | +| (FILE *,const DSA *) | | DSAparams_print_fp | 0 | FILE * | +| (FILE *,const DSA *) | | DSAparams_print_fp | 1 | const DSA * | +| (FILE *,const DSA *) | | PEM_write_DSA_PUBKEY | 0 | FILE * | +| (FILE *,const DSA *) | | PEM_write_DSA_PUBKEY | 1 | const DSA * | +| (FILE *,const DSA *) | | PEM_write_DSAparams | 0 | FILE * | +| (FILE *,const DSA *) | | PEM_write_DSAparams | 1 | const DSA * | +| (FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_DSAPrivateKey | 0 | FILE * | +| (FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_DSAPrivateKey | 1 | const DSA * | +| (FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_DSAPrivateKey | 2 | const EVP_CIPHER * | +| (FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_DSAPrivateKey | 3 | const unsigned char * | +| (FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_DSAPrivateKey | 4 | int | +| (FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_DSAPrivateKey | 5 | pem_password_cb * | +| (FILE *,const DSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_DSAPrivateKey | 6 | void * | +| (FILE *,const DSA *,int) | | DSA_print_fp | 0 | FILE * | +| (FILE *,const DSA *,int) | | DSA_print_fp | 1 | const DSA * | +| (FILE *,const DSA *,int) | | DSA_print_fp | 2 | int | +| (FILE *,const EC_GROUP *) | | PEM_write_ECPKParameters | 0 | FILE * | +| (FILE *,const EC_GROUP *) | | PEM_write_ECPKParameters | 1 | const EC_GROUP * | +| (FILE *,const EC_KEY *) | | PEM_write_EC_PUBKEY | 0 | FILE * | +| (FILE *,const EC_KEY *) | | PEM_write_EC_PUBKEY | 1 | const EC_KEY * | +| (FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_ECPrivateKey | 0 | FILE * | +| (FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_ECPrivateKey | 1 | const EC_KEY * | +| (FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_ECPrivateKey | 2 | const EVP_CIPHER * | +| (FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_ECPrivateKey | 3 | const unsigned char * | +| (FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_ECPrivateKey | 4 | int | +| (FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_ECPrivateKey | 5 | pem_password_cb * | +| (FILE *,const EC_KEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_ECPrivateKey | 6 | void * | +| (FILE *,const EVP_PKEY *) | | PEM_write_PUBKEY | 0 | FILE * | +| (FILE *,const EVP_PKEY *) | | PEM_write_PUBKEY | 1 | const EVP_PKEY * | +| (FILE *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | PEM_write_PUBKEY_ex | 0 | FILE * | +| (FILE *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | PEM_write_PUBKEY_ex | 1 | const EVP_PKEY * | +| (FILE *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | PEM_write_PUBKEY_ex | 2 | OSSL_LIB_CTX * | +| (FILE *,const EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | PEM_write_PUBKEY_ex | 3 | const char * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey | 0 | FILE * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey | 1 | const EVP_PKEY * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey | 2 | const EVP_CIPHER * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey | 3 | const char * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey | 4 | int | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey | 5 | pem_password_cb * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey | 6 | void * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_fp | 0 | FILE * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_fp | 1 | const EVP_PKEY * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_fp | 2 | const EVP_CIPHER * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_fp | 3 | const char * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_fp | 4 | int | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_fp | 5 | pem_password_cb * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_fp | 6 | void * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_PrivateKey | 0 | FILE * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_PrivateKey | 1 | const EVP_PKEY * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_PrivateKey | 2 | const EVP_CIPHER * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_PrivateKey | 3 | const unsigned char * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_PrivateKey | 4 | int | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_PrivateKey | 5 | pem_password_cb * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_PrivateKey | 6 | void * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_PrivateKey_ex | 0 | FILE * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_PrivateKey_ex | 1 | const EVP_PKEY * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_PrivateKey_ex | 2 | const EVP_CIPHER * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_PrivateKey_ex | 3 | const unsigned char * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_PrivateKey_ex | 4 | int | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_PrivateKey_ex | 5 | pem_password_cb * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_PrivateKey_ex | 6 | void * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_PrivateKey_ex | 7 | OSSL_LIB_CTX * | +| (FILE *,const EVP_PKEY *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_write_PrivateKey_ex | 8 | const char * | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey_nid | 0 | FILE * | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey_nid | 1 | const EVP_PKEY * | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey_nid | 2 | int | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey_nid | 3 | const char * | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey_nid | 4 | int | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey_nid | 5 | pem_password_cb * | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | PEM_write_PKCS8PrivateKey_nid | 6 | void * | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_fp | 0 | FILE * | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_fp | 1 | const EVP_PKEY * | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_fp | 2 | int | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_fp | 3 | const char * | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_fp | 4 | int | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_fp | 5 | pem_password_cb * | +| (FILE *,const EVP_PKEY *,int,const char *,int,pem_password_cb *,void *) | | i2d_PKCS8PrivateKey_nid_fp | 6 | void * | +| (FILE *,const NETSCAPE_CERT_SEQUENCE *) | | PEM_write_NETSCAPE_CERT_SEQUENCE | 0 | FILE * | +| (FILE *,const NETSCAPE_CERT_SEQUENCE *) | | PEM_write_NETSCAPE_CERT_SEQUENCE | 1 | const NETSCAPE_CERT_SEQUENCE * | +| (FILE *,const PKCS7 *) | | PEM_write_PKCS7 | 0 | FILE * | +| (FILE *,const PKCS7 *) | | PEM_write_PKCS7 | 1 | const PKCS7 * | +| (FILE *,const PKCS7 *) | | i2d_PKCS7_fp | 0 | FILE * | +| (FILE *,const PKCS7 *) | | i2d_PKCS7_fp | 1 | const PKCS7 * | +| (FILE *,const PKCS8_PRIV_KEY_INFO *) | | PEM_write_PKCS8_PRIV_KEY_INFO | 0 | FILE * | +| (FILE *,const PKCS8_PRIV_KEY_INFO *) | | PEM_write_PKCS8_PRIV_KEY_INFO | 1 | const PKCS8_PRIV_KEY_INFO * | +| (FILE *,const PKCS12 *) | | i2d_PKCS12_fp | 0 | FILE * | +| (FILE *,const PKCS12 *) | | i2d_PKCS12_fp | 1 | const PKCS12 * | +| (FILE *,const RSA *) | | PEM_write_RSAPublicKey | 0 | FILE * | +| (FILE *,const RSA *) | | PEM_write_RSAPublicKey | 1 | const RSA * | +| (FILE *,const RSA *) | | PEM_write_RSA_PUBKEY | 0 | FILE * | +| (FILE *,const RSA *) | | PEM_write_RSA_PUBKEY | 1 | const RSA * | +| (FILE *,const RSA *) | | i2d_RSAPrivateKey_fp | 0 | FILE * | +| (FILE *,const RSA *) | | i2d_RSAPrivateKey_fp | 1 | const RSA * | +| (FILE *,const RSA *) | | i2d_RSAPublicKey_fp | 0 | FILE * | +| (FILE *,const RSA *) | | i2d_RSAPublicKey_fp | 1 | const RSA * | +| (FILE *,const RSA *) | | i2d_RSA_PUBKEY_fp | 0 | FILE * | +| (FILE *,const RSA *) | | i2d_RSA_PUBKEY_fp | 1 | const RSA * | +| (FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_RSAPrivateKey | 0 | FILE * | +| (FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_RSAPrivateKey | 1 | const RSA * | +| (FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_RSAPrivateKey | 2 | const EVP_CIPHER * | +| (FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_RSAPrivateKey | 3 | const unsigned char * | +| (FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_RSAPrivateKey | 4 | int | +| (FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_RSAPrivateKey | 5 | pem_password_cb * | +| (FILE *,const RSA *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_write_RSAPrivateKey | 6 | void * | +| (FILE *,const RSA *,int) | | RSA_print_fp | 0 | FILE * | +| (FILE *,const RSA *,int) | | RSA_print_fp | 1 | const RSA * | +| (FILE *,const RSA *,int) | | RSA_print_fp | 2 | int | +| (FILE *,const SSL_SESSION *) | | PEM_write_SSL_SESSION | 0 | FILE * | +| (FILE *,const SSL_SESSION *) | | PEM_write_SSL_SESSION | 1 | const SSL_SESSION * | +| (FILE *,const X509 *) | | PEM_write_X509 | 0 | FILE * | +| (FILE *,const X509 *) | | PEM_write_X509 | 1 | const X509 * | +| (FILE *,const X509 *) | | PEM_write_X509_AUX | 0 | FILE * | +| (FILE *,const X509 *) | | PEM_write_X509_AUX | 1 | const X509 * | +| (FILE *,const X509 *) | | i2d_X509_fp | 0 | FILE * | +| (FILE *,const X509 *) | | i2d_X509_fp | 1 | const X509 * | +| (FILE *,const X509_ACERT *) | | PEM_write_X509_ACERT | 0 | FILE * | +| (FILE *,const X509_ACERT *) | | PEM_write_X509_ACERT | 1 | const X509_ACERT * | +| (FILE *,const X509_ACERT *) | | i2d_X509_ACERT_fp | 0 | FILE * | +| (FILE *,const X509_ACERT *) | | i2d_X509_ACERT_fp | 1 | const X509_ACERT * | +| (FILE *,const X509_CRL *) | | PEM_write_X509_CRL | 0 | FILE * | +| (FILE *,const X509_CRL *) | | PEM_write_X509_CRL | 1 | const X509_CRL * | +| (FILE *,const X509_CRL *) | | i2d_X509_CRL_fp | 0 | FILE * | +| (FILE *,const X509_CRL *) | | i2d_X509_CRL_fp | 1 | const X509_CRL * | +| (FILE *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex_fp | 0 | FILE * | +| (FILE *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex_fp | 1 | const X509_NAME * | +| (FILE *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex_fp | 2 | int | +| (FILE *,const X509_NAME *,int,unsigned long) | | X509_NAME_print_ex_fp | 3 | unsigned long | +| (FILE *,const X509_PUBKEY *) | | PEM_write_X509_PUBKEY | 0 | FILE * | +| (FILE *,const X509_PUBKEY *) | | PEM_write_X509_PUBKEY | 1 | const X509_PUBKEY * | +| (FILE *,const X509_REQ *) | | PEM_write_X509_REQ | 0 | FILE * | +| (FILE *,const X509_REQ *) | | PEM_write_X509_REQ | 1 | const X509_REQ * | +| (FILE *,const X509_REQ *) | | PEM_write_X509_REQ_NEW | 0 | FILE * | +| (FILE *,const X509_REQ *) | | PEM_write_X509_REQ_NEW | 1 | const X509_REQ * | +| (FILE *,const X509_REQ *) | | i2d_X509_REQ_fp | 0 | FILE * | +| (FILE *,const X509_REQ *) | | i2d_X509_REQ_fp | 1 | const X509_REQ * | +| (FILE *,const X509_SIG *) | | PEM_write_PKCS8 | 0 | FILE * | +| (FILE *,const X509_SIG *) | | PEM_write_PKCS8 | 1 | const X509_SIG * | +| (FILE *,int *) | | tplt_skip_header | 0 | FILE * | +| (FILE *,int *) | | tplt_skip_header | 1 | int * | +| (FILE *,int,char *) | | tplt_linedir | 0 | FILE * | +| (FILE *,int,char *) | | tplt_linedir | 1 | int | +| (FILE *,int,char *) | | tplt_linedir | 2 | char * | +| (FILE *,lemon *,char *,int *) | | tplt_print | 0 | FILE * | +| (FILE *,lemon *,char *,int *) | | tplt_print | 1 | lemon * | +| (FILE *,lemon *,char *,int *) | | tplt_print | 2 | char * | +| (FILE *,lemon *,char *,int *) | | tplt_print | 3 | int * | +| (FILE *,lemon *,int *,int) | | print_stack_union | 0 | FILE * | +| (FILE *,lemon *,int *,int) | | print_stack_union | 1 | lemon * | +| (FILE *,lemon *,int *,int) | | print_stack_union | 2 | int * | +| (FILE *,lemon *,int *,int) | | print_stack_union | 3 | int | +| (FILE *,rule *) | | rule_print | 0 | FILE * | +| (FILE *,rule *) | | rule_print | 1 | rule * | +| (FILE *,rule *,int) | | RulePrint | 0 | FILE * | +| (FILE *,rule *,int) | | RulePrint | 1 | rule * | +| (FILE *,rule *,int) | | RulePrint | 2 | int | +| (FILE *,rule *,lemon *,int *) | | emit_code | 0 | FILE * | +| (FILE *,rule *,lemon *,int *) | | emit_code | 1 | rule * | +| (FILE *,rule *,lemon *,int *) | | emit_code | 2 | lemon * | +| (FILE *,rule *,lemon *,int *) | | emit_code | 3 | int * | +| (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read | 0 | FILE * | +| (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read | 1 | stack_st_X509_INFO * | +| (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read | 2 | pem_password_cb * | +| (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *) | | PEM_X509_INFO_read | 3 | void * | +| (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_ex | 0 | FILE * | +| (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_ex | 1 | stack_st_X509_INFO * | +| (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_ex | 2 | pem_password_cb * | +| (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_ex | 3 | void * | +| (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_ex | 4 | OSSL_LIB_CTX * | +| (FILE *,stack_st_X509_INFO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *) | | PEM_X509_INFO_read_ex | 5 | const char * | +| (FILE *,symbol *,lemon *,int *) | | emit_destructor_code | 0 | FILE * | +| (FILE *,symbol *,lemon *,int *) | | emit_destructor_code | 1 | symbol * | +| (FILE *,symbol *,lemon *,int *) | | emit_destructor_code | 2 | lemon * | +| (FILE *,symbol *,lemon *,int *) | | emit_destructor_code | 3 | int * | +| (FUNCTION *,DISPLAY_COLUMNS *) | | calculate_columns | 0 | FUNCTION * | +| (FUNCTION *,DISPLAY_COLUMNS *) | | calculate_columns | 1 | DISPLAY_COLUMNS * | +| (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 0 | GCM128_CONTEXT * | +| (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 1 | const unsigned char * | +| (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_aad | 2 | size_t | +| (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 0 | GCM128_CONTEXT * | +| (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 1 | const unsigned char * | +| (GCM128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_gcm128_setiv | 2 | size_t | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_gcm128_decrypt | 0 | GCM128_CONTEXT * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_gcm128_decrypt | 1 | const unsigned char * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_gcm128_decrypt | 2 | unsigned char * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_gcm128_decrypt | 3 | size_t | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_gcm128_encrypt | 0 | GCM128_CONTEXT * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_gcm128_encrypt | 1 | const unsigned char * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_gcm128_encrypt | 2 | unsigned char * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_gcm128_encrypt | 3 | size_t | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f) | | CRYPTO_gcm128_decrypt_ctr32 | 0 | GCM128_CONTEXT * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f) | | CRYPTO_gcm128_decrypt_ctr32 | 1 | const unsigned char * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f) | | CRYPTO_gcm128_decrypt_ctr32 | 2 | unsigned char * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f) | | CRYPTO_gcm128_decrypt_ctr32 | 3 | size_t | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f) | | CRYPTO_gcm128_decrypt_ctr32 | 4 | ctr128_f | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f) | | CRYPTO_gcm128_encrypt_ctr32 | 0 | GCM128_CONTEXT * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f) | | CRYPTO_gcm128_encrypt_ctr32 | 1 | const unsigned char * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f) | | CRYPTO_gcm128_encrypt_ctr32 | 2 | unsigned char * | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f) | | CRYPTO_gcm128_encrypt_ctr32 | 3 | size_t | +| (GCM128_CONTEXT *,const unsigned char *,unsigned char *,size_t,ctr128_f) | | CRYPTO_gcm128_encrypt_ctr32 | 4 | ctr128_f | +| (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 0 | GCM128_CONTEXT * | +| (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 1 | unsigned char * | +| (GCM128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_gcm128_tag | 2 | size_t | +| (GCM128_CONTEXT *,void *,block128_f) | | CRYPTO_gcm128_init | 0 | GCM128_CONTEXT * | +| (GCM128_CONTEXT *,void *,block128_f) | | CRYPTO_gcm128_init | 1 | void * | +| (GCM128_CONTEXT *,void *,block128_f) | | CRYPTO_gcm128_init | 2 | block128_f | +| (GENERAL_NAME *) | | GENERAL_NAME_free | 0 | GENERAL_NAME * | +| (GENERAL_NAME **,const X509_NAME *) | | GENERAL_NAME_set1_X509_NAME | 0 | GENERAL_NAME ** | +| (GENERAL_NAME **,const X509_NAME *) | | GENERAL_NAME_set1_X509_NAME | 1 | const X509_NAME * | +| (GENERAL_NAME **,const unsigned char **,long) | | d2i_GENERAL_NAME | 0 | GENERAL_NAME ** | +| (GENERAL_NAME **,const unsigned char **,long) | | d2i_GENERAL_NAME | 1 | const unsigned char ** | +| (GENERAL_NAME **,const unsigned char **,long) | | d2i_GENERAL_NAME | 2 | long | +| (GENERAL_NAME *,GENERAL_NAME *) | | GENERAL_NAME_cmp | 0 | GENERAL_NAME * | +| (GENERAL_NAME *,GENERAL_NAME *) | | GENERAL_NAME_cmp | 1 | GENERAL_NAME * | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int) | | v2i_GENERAL_NAME_ex | 0 | GENERAL_NAME * | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int) | | v2i_GENERAL_NAME_ex | 1 | const X509V3_EXT_METHOD * | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int) | | v2i_GENERAL_NAME_ex | 2 | X509V3_CTX * | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int) | | v2i_GENERAL_NAME_ex | 3 | CONF_VALUE * | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int) | | v2i_GENERAL_NAME_ex | 4 | int | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int) | | a2i_GENERAL_NAME | 0 | GENERAL_NAME * | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int) | | a2i_GENERAL_NAME | 1 | const X509V3_EXT_METHOD * | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int) | | a2i_GENERAL_NAME | 2 | X509V3_CTX * | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int) | | a2i_GENERAL_NAME | 3 | int | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int) | | a2i_GENERAL_NAME | 4 | const char * | +| (GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,int,const char *,int) | | a2i_GENERAL_NAME | 5 | int | +| (GENERAL_NAME *,int,void *) | | GENERAL_NAME_set0_value | 0 | GENERAL_NAME * | +| (GENERAL_NAME *,int,void *) | | GENERAL_NAME_set0_value | 1 | int | +| (GENERAL_NAME *,int,void *) | | GENERAL_NAME_set0_value | 2 | void * | +| (GENERAL_NAMES *) | | GENERAL_NAMES_free | 0 | GENERAL_NAMES * | +| (GENERAL_NAMES **,const unsigned char **,long) | | d2i_GENERAL_NAMES | 0 | GENERAL_NAMES ** | +| (GENERAL_NAMES **,const unsigned char **,long) | | d2i_GENERAL_NAMES | 1 | const unsigned char ** | +| (GENERAL_NAMES **,const unsigned char **,long) | | d2i_GENERAL_NAMES | 2 | long | +| (GENERAL_SUBTREE *) | | GENERAL_SUBTREE_free | 0 | GENERAL_SUBTREE * | +| (GOST_KX_MESSAGE *) | | GOST_KX_MESSAGE_free | 0 | GOST_KX_MESSAGE * | +| (GOST_KX_MESSAGE **,const unsigned char **,long) | | d2i_GOST_KX_MESSAGE | 0 | GOST_KX_MESSAGE ** | +| (GOST_KX_MESSAGE **,const unsigned char **,long) | | d2i_GOST_KX_MESSAGE | 1 | const unsigned char ** | +| (GOST_KX_MESSAGE **,const unsigned char **,long) | | d2i_GOST_KX_MESSAGE | 2 | long | | (HANDLE) | CAtlFile | CAtlFile | 0 | HANDLE | | (HINSTANCE,UINT) | CComBSTR | LoadString | 0 | HINSTANCE | | (HINSTANCE,UINT) | CComBSTR | LoadString | 1 | UINT | | (HKEY) | CRegKey | CRegKey | 0 | HKEY | +| (HMAC_CTX *,HMAC_CTX *) | | HMAC_CTX_copy | 0 | HMAC_CTX * | +| (HMAC_CTX *,HMAC_CTX *) | | HMAC_CTX_copy | 1 | HMAC_CTX * | +| (HMAC_CTX *,const void *,int,const EVP_MD *) | | HMAC_Init | 0 | HMAC_CTX * | +| (HMAC_CTX *,const void *,int,const EVP_MD *) | | HMAC_Init | 1 | const void * | +| (HMAC_CTX *,const void *,int,const EVP_MD *) | | HMAC_Init | 2 | int | +| (HMAC_CTX *,const void *,int,const EVP_MD *) | | HMAC_Init | 3 | const EVP_MD * | +| (HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *) | | HMAC_Init_ex | 0 | HMAC_CTX * | +| (HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *) | | HMAC_Init_ex | 1 | const void * | +| (HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *) | | HMAC_Init_ex | 2 | int | +| (HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *) | | HMAC_Init_ex | 3 | const EVP_MD * | +| (HMAC_CTX *,const void *,int,const EVP_MD *,ENGINE *) | | HMAC_Init_ex | 4 | ENGINE * | +| (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 0 | HMAC_CTX * | +| (HMAC_CTX *,unsigned long) | | HMAC_CTX_set_flags | 1 | unsigned long | +| (HT *) | | ossl_ht_count | 0 | HT * | +| (HT *,..(*)(..),void *) | | ossl_ht_foreach_until | 0 | HT * | +| (HT *,..(*)(..),void *) | | ossl_ht_foreach_until | 1 | ..(*)(..) | +| (HT *,..(*)(..),void *) | | ossl_ht_foreach_until | 2 | void * | +| (HT *,HT_KEY *,HT_VALUE *,HT_VALUE **) | | ossl_ht_insert | 0 | HT * | +| (HT *,HT_KEY *,HT_VALUE *,HT_VALUE **) | | ossl_ht_insert | 1 | HT_KEY * | +| (HT *,HT_KEY *,HT_VALUE *,HT_VALUE **) | | ossl_ht_insert | 2 | HT_VALUE * | +| (HT *,HT_KEY *,HT_VALUE *,HT_VALUE **) | | ossl_ht_insert | 3 | HT_VALUE ** | +| (HT *,size_t,..(*)(..),void *) | | ossl_ht_filter | 0 | HT * | +| (HT *,size_t,..(*)(..),void *) | | ossl_ht_filter | 1 | size_t | +| (HT *,size_t,..(*)(..),void *) | | ossl_ht_filter | 2 | ..(*)(..) | +| (HT *,size_t,..(*)(..),void *) | | ossl_ht_filter | 3 | void * | +| (IPAddressChoice *) | | IPAddressChoice_free | 0 | IPAddressChoice * | +| (IPAddressChoice **,const unsigned char **,long) | | d2i_IPAddressChoice | 0 | IPAddressChoice ** | +| (IPAddressChoice **,const unsigned char **,long) | | d2i_IPAddressChoice | 1 | const unsigned char ** | +| (IPAddressChoice **,const unsigned char **,long) | | d2i_IPAddressChoice | 2 | long | +| (IPAddressFamily *) | | IPAddressFamily_free | 0 | IPAddressFamily * | +| (IPAddressFamily **,const unsigned char **,long) | | d2i_IPAddressFamily | 0 | IPAddressFamily ** | +| (IPAddressFamily **,const unsigned char **,long) | | d2i_IPAddressFamily | 1 | const unsigned char ** | +| (IPAddressFamily **,const unsigned char **,long) | | d2i_IPAddressFamily | 2 | long | +| (IPAddressOrRange *) | | IPAddressOrRange_free | 0 | IPAddressOrRange * | +| (IPAddressOrRange **,const unsigned char **,long) | | d2i_IPAddressOrRange | 0 | IPAddressOrRange ** | +| (IPAddressOrRange **,const unsigned char **,long) | | d2i_IPAddressOrRange | 1 | const unsigned char ** | +| (IPAddressOrRange **,const unsigned char **,long) | | d2i_IPAddressOrRange | 2 | long | +| (IPAddressOrRange *,const unsigned int,unsigned char *,unsigned char *,const int) | | X509v3_addr_get_range | 0 | IPAddressOrRange * | +| (IPAddressOrRange *,const unsigned int,unsigned char *,unsigned char *,const int) | | X509v3_addr_get_range | 1 | const unsigned int | +| (IPAddressOrRange *,const unsigned int,unsigned char *,unsigned char *,const int) | | X509v3_addr_get_range | 2 | unsigned char * | +| (IPAddressOrRange *,const unsigned int,unsigned char *,unsigned char *,const int) | | X509v3_addr_get_range | 3 | unsigned char * | +| (IPAddressOrRange *,const unsigned int,unsigned char *,unsigned char *,const int) | | X509v3_addr_get_range | 4 | const int | +| (IPAddressRange *) | | IPAddressRange_free | 0 | IPAddressRange * | +| (IPAddressRange **,const unsigned char **,long) | | d2i_IPAddressRange | 0 | IPAddressRange ** | +| (IPAddressRange **,const unsigned char **,long) | | d2i_IPAddressRange | 1 | const unsigned char ** | +| (IPAddressRange **,const unsigned char **,long) | | d2i_IPAddressRange | 2 | long | +| (ISSUER_SIGN_TOOL *) | | ISSUER_SIGN_TOOL_free | 0 | ISSUER_SIGN_TOOL * | +| (ISSUER_SIGN_TOOL **,const unsigned char **,long) | | d2i_ISSUER_SIGN_TOOL | 0 | ISSUER_SIGN_TOOL ** | +| (ISSUER_SIGN_TOOL **,const unsigned char **,long) | | d2i_ISSUER_SIGN_TOOL | 1 | const unsigned char ** | +| (ISSUER_SIGN_TOOL **,const unsigned char **,long) | | d2i_ISSUER_SIGN_TOOL | 2 | long | +| (ISSUING_DIST_POINT *) | | ISSUING_DIST_POINT_free | 0 | ISSUING_DIST_POINT * | +| (ISSUING_DIST_POINT **,const unsigned char **,long) | | d2i_ISSUING_DIST_POINT | 0 | ISSUING_DIST_POINT ** | +| (ISSUING_DIST_POINT **,const unsigned char **,long) | | d2i_ISSUING_DIST_POINT | 1 | const unsigned char ** | +| (ISSUING_DIST_POINT **,const unsigned char **,long) | | d2i_ISSUING_DIST_POINT | 2 | long | | (InputIt,InputIt) | deque | assign | 0 | func:0 | | (InputIt,InputIt) | deque | assign | 1 | func:0 | | (InputIt,InputIt) | forward_list | assign | 0 | func:0 | @@ -667,6 +15906,333 @@ getSignatureParameterName | (InputIterator,InputIterator,const Allocator &) | vector | vector | 0 | func:0 | | (InputIterator,InputIterator,const Allocator &) | vector | vector | 1 | func:0 | | (InputIterator,InputIterator,const Allocator &) | vector | vector | 2 | const class:1 & | +| (Jim_HashTable *) | | Jim_GetHashTableIterator | 0 | Jim_HashTable * | +| (Jim_HashTable *,const Jim_HashTableType *,void *) | | Jim_InitHashTable | 0 | Jim_HashTable * | +| (Jim_HashTable *,const Jim_HashTableType *,void *) | | Jim_InitHashTable | 1 | const Jim_HashTableType * | +| (Jim_HashTable *,const Jim_HashTableType *,void *) | | Jim_InitHashTable | 2 | void * | +| (Jim_HashTable *,const void *) | | Jim_FindHashEntry | 0 | Jim_HashTable * | +| (Jim_HashTable *,const void *) | | Jim_FindHashEntry | 1 | const void * | +| (Jim_HashTableIterator *) | | Jim_NextHashEntry | 0 | Jim_HashTableIterator * | +| (Jim_Interp *) | | Jim_GetExitCode | 0 | Jim_Interp * | +| (Jim_Interp *) | | Jim_InteractivePrompt | 0 | Jim_Interp * | +| (Jim_Interp *) | | Jim_NewObj | 0 | Jim_Interp * | +| (Jim_Interp *) | | Jim_bootstrapInit | 0 | Jim_Interp * | +| (Jim_Interp *) | | Jim_globInit | 0 | Jim_Interp * | +| (Jim_Interp *) | | Jim_initjimshInit | 0 | Jim_Interp * | +| (Jim_Interp *) | | Jim_stdlibInit | 0 | Jim_Interp * | +| (Jim_Interp *) | | Jim_tclcompatInit | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_AioFilehandle | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_AioFilehandle | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_DeleteCommand | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_DeleteCommand | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_DictInfo | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_DictInfo | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_DictSize | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_DictSize | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_DuplicateObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_DuplicateObj | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_EvalExpression | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_EvalExpression | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_EvalObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_EvalObj | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_EvalObjList | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_EvalObjList | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_FreeObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_FreeObj | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_GetCallFrameByLevel | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_GetCallFrameByLevel | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_ListLength | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_ListLength | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_MakeGlobalNamespaceName | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_MakeGlobalNamespaceName | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *) | | Jim_Utf8Length | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *) | | Jim_Utf8Length | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_CmdProc *,void *,Jim_DelCmdProc *) | | Jim_CreateCommandObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_CmdProc *,void *,Jim_DelCmdProc *) | | Jim_CreateCommandObj | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_CmdProc *,void *,Jim_DelCmdProc *) | | Jim_CreateCommandObj | 2 | Jim_CmdProc * | +| (Jim_Interp *,Jim_Obj *,Jim_CmdProc *,void *,Jim_DelCmdProc *) | | Jim_CreateCommandObj | 3 | void * | +| (Jim_Interp *,Jim_Obj *,Jim_CmdProc *,void *,Jim_DelCmdProc *) | | Jim_CreateCommandObj | 4 | Jim_DelCmdProc * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_AppendObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_AppendObj | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_AppendObj | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_ListAppendElement | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_ListAppendElement | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_ListAppendElement | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_ListAppendList | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_ListAppendList | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_ListAppendList | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_RenameCommand | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_RenameCommand | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_RenameCommand | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_SetVariable | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_SetVariable | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *) | | Jim_SetVariable | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj **,int) | | Jim_SubstObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj **,int) | | Jim_SubstObj | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj **,int) | | Jim_SubstObj | 2 | Jim_Obj ** | +| (Jim_Interp *,Jim_Obj *,Jim_Obj **,int) | | Jim_SubstObj | 3 | int | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_CallFrame *) | | Jim_SetVariableLink | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_CallFrame *) | | Jim_SetVariableLink | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_CallFrame *) | | Jim_SetVariableLink | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_CallFrame *) | | Jim_SetVariableLink | 3 | Jim_CallFrame * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_DictAddElement | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_DictAddElement | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_DictAddElement | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_DictAddElement | 3 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_ListRange | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_ListRange | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_ListRange | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_ListRange | 3 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_StringByteRangeObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_StringByteRangeObj | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_StringByteRangeObj | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_StringByteRangeObj | 3 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_StringRangeObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_StringRangeObj | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_StringRangeObj | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | Jim_StringRangeObj | 3 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj **,int) | | Jim_DictKey | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj **,int) | | Jim_DictKey | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj **,int) | | Jim_DictKey | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj **,int) | | Jim_DictKey | 3 | Jim_Obj ** | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj **,int) | | Jim_DictKey | 4 | int | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | JimStringReplaceObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | JimStringReplaceObj | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | JimStringReplaceObj | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | JimStringReplaceObj | 3 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,Jim_Obj *) | | JimStringReplaceObj | 4 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int) | | Jim_CommandMatchObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int) | | Jim_CommandMatchObj | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int) | | Jim_CommandMatchObj | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int) | | Jim_CommandMatchObj | 3 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,Jim_Obj *,int) | | Jim_CommandMatchObj | 4 | int | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,int) | | Jim_ScanString | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,int) | | Jim_ScanString | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,int) | | Jim_ScanString | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,int) | | Jim_ScanString | 3 | int | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,int,int) | | Jim_DictMatchTypes | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,int,int) | | Jim_DictMatchTypes | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,int,int) | | Jim_DictMatchTypes | 2 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,int,int) | | Jim_DictMatchTypes | 3 | int | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *,int,int) | | Jim_DictMatchTypes | 4 | int | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *) | | Jim_ListSetIndex | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *) | | Jim_ListSetIndex | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *) | | Jim_ListSetIndex | 2 | Jim_Obj *const * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *) | | Jim_ListSetIndex | 3 | int | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *) | | Jim_ListSetIndex | 4 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int) | | Jim_DictKeysVector | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int) | | Jim_DictKeysVector | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int) | | Jim_DictKeysVector | 2 | Jim_Obj *const * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int) | | Jim_DictKeysVector | 3 | int | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int) | | Jim_DictKeysVector | 4 | Jim_Obj ** | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj **,int) | | Jim_DictKeysVector | 5 | int | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int) | | Jim_SetDictKeysVector | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int) | | Jim_SetDictKeysVector | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int) | | Jim_SetDictKeysVector | 2 | Jim_Obj *const * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int) | | Jim_SetDictKeysVector | 3 | int | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int) | | Jim_SetDictKeysVector | 4 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,Jim_Obj *const *,int,Jim_Obj *,int) | | Jim_SetDictKeysVector | 5 | int | +| (Jim_Interp *,Jim_Obj *,char *) | | Jim_ScriptIsComplete | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,char *) | | Jim_ScriptIsComplete | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,char *) | | Jim_ScriptIsComplete | 2 | char * | +| (Jim_Interp *,Jim_Obj *,const char *) | | Jim_CompareStringImmediate | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,const char *) | | Jim_CompareStringImmediate | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,const char *) | | Jim_CompareStringImmediate | 2 | const char * | +| (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_AppendString | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_AppendString | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_AppendString | 2 | const char * | +| (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_AppendString | 3 | int | +| (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_ListJoin | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_ListJoin | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_ListJoin | 2 | const char * | +| (Jim_Interp *,Jim_Obj *,const char *,int) | | Jim_ListJoin | 3 | int | +| (Jim_Interp *,Jim_Obj *,const char *const *) | | Jim_CheckShowCommands | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,const char *const *) | | Jim_CheckShowCommands | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,const char *const *) | | Jim_CheckShowCommands | 2 | const char *const * | +| (Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int) | | Jim_GetEnum | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int) | | Jim_GetEnum | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int) | | Jim_GetEnum | 2 | const char *const * | +| (Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int) | | Jim_GetEnum | 3 | int * | +| (Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int) | | Jim_GetEnum | 4 | const char * | +| (Jim_Interp *,Jim_Obj *,const char *const *,int *,const char *,int) | | Jim_GetEnum | 5 | int | +| (Jim_Interp *,Jim_Obj *,const jim_stat_t *) | | Jim_FileStoreStatData | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,const jim_stat_t *) | | Jim_FileStoreStatData | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,const jim_stat_t *) | | Jim_FileStoreStatData | 2 | const jim_stat_t * | +| (Jim_Interp *,Jim_Obj *,double *) | | Jim_GetDouble | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,double *) | | Jim_GetDouble | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,double *) | | Jim_GetDouble | 2 | double * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_DictPairs | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_DictPairs | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_DictPairs | 2 | int * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetBoolFromExpr | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetBoolFromExpr | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetBoolFromExpr | 2 | int * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetBoolean | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetBoolean | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetBoolean | 2 | int * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetIndex | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetIndex | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetIndex | 2 | int * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetReturnCode | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetReturnCode | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetReturnCode | 2 | int * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetSourceInfo | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetSourceInfo | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int *) | | Jim_GetSourceInfo | 2 | int * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_GetCommand | 2 | int | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_GetGlobalVariable | 2 | int | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_GetVariable | 2 | int | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_ListGetIndex | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_ListGetIndex | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_ListGetIndex | 2 | int | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_UnsetVariable | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_UnsetVariable | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int) | | Jim_UnsetVariable | 2 | int | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj **,int) | | Jim_ListIndex | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj **,int) | | Jim_ListIndex | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj **,int) | | Jim_ListIndex | 2 | int | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj **,int) | | Jim_ListIndex | 3 | Jim_Obj ** | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj **,int) | | Jim_ListIndex | 4 | int | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *) | | Jim_EvalObjPrefix | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *) | | Jim_EvalObjPrefix | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *) | | Jim_EvalObjPrefix | 2 | int | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *) | | Jim_EvalObjPrefix | 3 | Jim_Obj *const * | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *) | | Jim_FormatString | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *) | | Jim_FormatString | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *) | | Jim_FormatString | 2 | int | +| (Jim_Interp *,Jim_Obj *,int,Jim_Obj *const *) | | Jim_FormatString | 3 | Jim_Obj *const * | +| (Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *) | | Jim_ListInsertElements | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *) | | Jim_ListInsertElements | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *) | | Jim_ListInsertElements | 2 | int | +| (Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *) | | Jim_ListInsertElements | 3 | int | +| (Jim_Interp *,Jim_Obj *,int,int,Jim_Obj *const *) | | Jim_ListInsertElements | 4 | Jim_Obj *const * | +| (Jim_Interp *,Jim_Obj *,long *) | | Jim_GetLong | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,long *) | | Jim_GetLong | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,long *) | | Jim_GetLong | 2 | long * | +| (Jim_Interp *,Jim_Obj *,long *) | | Jim_GetWide | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,long *) | | Jim_GetWide | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,long *) | | Jim_GetWide | 2 | long * | +| (Jim_Interp *,Jim_Obj *,long *) | | Jim_GetWideExpr | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *,long *) | | Jim_GetWideExpr | 1 | Jim_Obj * | +| (Jim_Interp *,Jim_Obj *,long *) | | Jim_GetWideExpr | 2 | long * | +| (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewDictObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewDictObj | 1 | Jim_Obj *const * | +| (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewDictObj | 2 | int | +| (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewListObj | 0 | Jim_Interp * | +| (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewListObj | 1 | Jim_Obj *const * | +| (Jim_Interp *,Jim_Obj *const *,int) | | Jim_NewListObj | 2 | int | +| (Jim_Interp *,char *,int) | | Jim_NewStringObjNoAlloc | 0 | Jim_Interp * | +| (Jim_Interp *,char *,int) | | Jim_NewStringObjNoAlloc | 1 | char * | +| (Jim_Interp *,char *,int) | | Jim_NewStringObjNoAlloc | 2 | int | +| (Jim_Interp *,const char *) | | Jim_Eval | 0 | Jim_Interp * | +| (Jim_Interp *,const char *) | | Jim_Eval | 1 | const char * | +| (Jim_Interp *,const char *) | | Jim_EvalFile | 0 | Jim_Interp * | +| (Jim_Interp *,const char *) | | Jim_EvalFile | 1 | const char * | +| (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 0 | Jim_Interp * | +| (Jim_Interp *,const char *) | | Jim_EvalFileGlobal | 1 | const char * | +| (Jim_Interp *,const char *) | | Jim_EvalGlobal | 0 | Jim_Interp * | +| (Jim_Interp *,const char *) | | Jim_EvalGlobal | 1 | const char * | +| (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 1 | const char * | +| (Jim_Interp *,const char *,...) | | Jim_SetResultFormatted | 2 | ... | +| (Jim_Interp *,const char *,Jim_CmdProc *,void *,Jim_DelCmdProc *) | | Jim_CreateCommand | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,Jim_CmdProc *,void *,Jim_DelCmdProc *) | | Jim_CreateCommand | 1 | const char * | +| (Jim_Interp *,const char *,Jim_CmdProc *,void *,Jim_DelCmdProc *) | | Jim_CreateCommand | 2 | Jim_CmdProc * | +| (Jim_Interp *,const char *,Jim_CmdProc *,void *,Jim_DelCmdProc *) | | Jim_CreateCommand | 3 | void * | +| (Jim_Interp *,const char *,Jim_CmdProc *,void *,Jim_DelCmdProc *) | | Jim_CreateCommand | 4 | Jim_DelCmdProc * | +| (Jim_Interp *,const char *,Jim_Obj *) | | Jim_SetGlobalVariableStr | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,Jim_Obj *) | | Jim_SetGlobalVariableStr | 1 | const char * | +| (Jim_Interp *,const char *,Jim_Obj *) | | Jim_SetGlobalVariableStr | 2 | Jim_Obj * | +| (Jim_Interp *,const char *,Jim_Obj *) | | Jim_SetVariableStr | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,Jim_Obj *) | | Jim_SetVariableStr | 1 | const char * | +| (Jim_Interp *,const char *,Jim_Obj *) | | Jim_SetVariableStr | 2 | Jim_Obj * | +| (Jim_Interp *,const char *,const char *) | | Jim_SetVariableStrWithStr | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,const char *) | | Jim_SetVariableStrWithStr | 1 | const char * | +| (Jim_Interp *,const char *,const char *) | | Jim_SetVariableStrWithStr | 2 | const char * | +| (Jim_Interp *,const char *,int) | | Jim_GetGlobalVariableStr | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,int) | | Jim_GetGlobalVariableStr | 1 | const char * | +| (Jim_Interp *,const char *,int) | | Jim_GetGlobalVariableStr | 2 | int | +| (Jim_Interp *,const char *,int) | | Jim_GetVariableStr | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,int) | | Jim_GetVariableStr | 1 | const char * | +| (Jim_Interp *,const char *,int) | | Jim_GetVariableStr | 2 | int | +| (Jim_Interp *,const char *,int) | | Jim_MakeTempFile | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,int) | | Jim_MakeTempFile | 1 | const char * | +| (Jim_Interp *,const char *,int) | | Jim_MakeTempFile | 2 | int | +| (Jim_Interp *,const char *,int) | | Jim_NewStringObj | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,int) | | Jim_NewStringObj | 1 | const char * | +| (Jim_Interp *,const char *,int) | | Jim_NewStringObj | 2 | int | +| (Jim_Interp *,const char *,int) | | Jim_NewStringObjUtf8 | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,int) | | Jim_NewStringObjUtf8 | 1 | const char * | +| (Jim_Interp *,const char *,int) | | Jim_NewStringObjUtf8 | 2 | int | +| (Jim_Interp *,const char *,int,const char *) | | Jim_EvalSource | 0 | Jim_Interp * | +| (Jim_Interp *,const char *,int,const char *) | | Jim_EvalSource | 1 | const char * | +| (Jim_Interp *,const char *,int,const char *) | | Jim_EvalSource | 2 | int | +| (Jim_Interp *,const char *,int,const char *) | | Jim_EvalSource | 3 | const char * | +| (Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *) | | Jim_CallSubCmd | 0 | Jim_Interp * | +| (Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *) | | Jim_CallSubCmd | 1 | const jim_subcmd_type * | +| (Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *) | | Jim_CallSubCmd | 2 | int | +| (Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *) | | Jim_CallSubCmd | 3 | Jim_Obj *const * | +| (Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *) | | Jim_ParseSubCmd | 0 | Jim_Interp * | +| (Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *) | | Jim_ParseSubCmd | 1 | const jim_subcmd_type * | +| (Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *) | | Jim_ParseSubCmd | 2 | int | +| (Jim_Interp *,const jim_subcmd_type *,int,Jim_Obj *const *) | | Jim_ParseSubCmd | 3 | Jim_Obj *const * | +| (Jim_Interp *,double) | | Jim_NewDoubleObj | 0 | Jim_Interp * | +| (Jim_Interp *,double) | | Jim_NewDoubleObj | 1 | double | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_ConcatObj | 0 | Jim_Interp * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_ConcatObj | 1 | int | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_ConcatObj | 2 | Jim_Obj *const * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_DictMerge | 0 | Jim_Interp * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_DictMerge | 1 | int | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_DictMerge | 2 | Jim_Obj *const * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_EvalObjVector | 0 | Jim_Interp * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_EvalObjVector | 1 | int | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_EvalObjVector | 2 | Jim_Obj *const * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_ReaddirCmd | 0 | Jim_Interp * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_ReaddirCmd | 1 | int | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_ReaddirCmd | 2 | Jim_Obj *const * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_RegexpCmd | 0 | Jim_Interp * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_RegexpCmd | 1 | int | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_RegexpCmd | 2 | Jim_Obj *const * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_RegsubCmd | 0 | Jim_Interp * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_RegsubCmd | 1 | int | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_RegsubCmd | 2 | Jim_Obj *const * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_SubCmdProc | 0 | Jim_Interp * | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_SubCmdProc | 1 | int | +| (Jim_Interp *,int,Jim_Obj *const *) | | Jim_SubCmdProc | 2 | Jim_Obj *const * | +| (Jim_Interp *,int,Jim_Obj *const *,const char *) | | Jim_WrongNumArgs | 0 | Jim_Interp * | +| (Jim_Interp *,int,Jim_Obj *const *,const char *) | | Jim_WrongNumArgs | 1 | int | +| (Jim_Interp *,int,Jim_Obj *const *,const char *) | | Jim_WrongNumArgs | 2 | Jim_Obj *const * | +| (Jim_Interp *,int,Jim_Obj *const *,const char *) | | Jim_WrongNumArgs | 3 | const char * | +| (Jim_Interp *,long) | | Jim_NewIntObj | 0 | Jim_Interp * | +| (Jim_Interp *,long) | | Jim_NewIntObj | 1 | long | +| (Jim_Obj *) | | Jim_Length | 0 | Jim_Obj * | +| (Jim_Obj *) | | Jim_String | 0 | Jim_Obj * | +| (Jim_Obj *,int *) | | Jim_GetString | 0 | Jim_Obj * | +| (Jim_Obj *,int *) | | Jim_GetString | 1 | int * | +| (Jim_Stack *) | | Jim_StackLen | 0 | Jim_Stack * | +| (Jim_Stack *) | | Jim_StackPeek | 0 | Jim_Stack * | +| (Jim_Stack *) | | Jim_StackPop | 0 | Jim_Stack * | +| (Jim_Stack *,void *) | | Jim_StackPush | 0 | Jim_Stack * | +| (Jim_Stack *,void *) | | Jim_StackPush | 1 | void * | +| (KECCAK1600_CTX *,const void *,size_t) | | ossl_sha3_update | 0 | KECCAK1600_CTX * | +| (KECCAK1600_CTX *,const void *,size_t) | | ossl_sha3_update | 1 | const void * | +| (KECCAK1600_CTX *,const void *,size_t) | | ossl_sha3_update | 2 | size_t | +| (KECCAK1600_CTX *,unsigned char *,size_t) | | ossl_sha3_squeeze | 0 | KECCAK1600_CTX * | +| (KECCAK1600_CTX *,unsigned char *,size_t) | | ossl_sha3_squeeze | 1 | unsigned char * | +| (KECCAK1600_CTX *,unsigned char *,size_t) | | ossl_sha3_squeeze | 2 | size_t | +| (KECCAK1600_CTX *,unsigned char,size_t) | | ossl_sha3_init | 0 | KECCAK1600_CTX * | +| (KECCAK1600_CTX *,unsigned char,size_t) | | ossl_sha3_init | 1 | unsigned char | +| (KECCAK1600_CTX *,unsigned char,size_t) | | ossl_sha3_init | 2 | size_t | +| (KECCAK1600_CTX *,unsigned char,size_t,size_t) | | ossl_keccak_init | 0 | KECCAK1600_CTX * | +| (KECCAK1600_CTX *,unsigned char,size_t,size_t) | | ossl_keccak_init | 1 | unsigned char | +| (KECCAK1600_CTX *,unsigned char,size_t,size_t) | | ossl_keccak_init | 2 | size_t | +| (KECCAK1600_CTX *,unsigned char,size_t,size_t) | | ossl_keccak_init | 3 | size_t | | (LPCOLESTR) | CComBSTR | Append | 0 | LPCOLESTR | | (LPCOLESTR) | CComBSTR | CComBSTR | 0 | LPCOLESTR | | (LPCOLESTR,int) | CComBSTR | Append | 0 | LPCOLESTR | @@ -685,6 +16251,2167 @@ getSignatureParameterName | (LPTSTR,LPCTSTR,DWORD *) | CRegKey | QueryValue | 0 | LPTSTR | | (LPTSTR,LPCTSTR,DWORD *) | CRegKey | QueryValue | 1 | LPCTSTR | | (LPTSTR,LPCTSTR,DWORD *) | CRegKey | QueryValue | 2 | DWORD * | +| (MD4_CTX *,const unsigned char *) | | MD4_Transform | 0 | MD4_CTX * | +| (MD4_CTX *,const unsigned char *) | | MD4_Transform | 1 | const unsigned char * | +| (MD4_CTX *,const void *,size_t) | | MD4_Update | 0 | MD4_CTX * | +| (MD4_CTX *,const void *,size_t) | | MD4_Update | 1 | const void * | +| (MD4_CTX *,const void *,size_t) | | MD4_Update | 2 | size_t | +| (MD4_CTX *,const void *,size_t) | | md4_block_data_order | 0 | MD4_CTX * | +| (MD4_CTX *,const void *,size_t) | | md4_block_data_order | 1 | const void * | +| (MD4_CTX *,const void *,size_t) | | md4_block_data_order | 2 | size_t | +| (MD5_CTX *,const void *,size_t) | | MD5_Update | 0 | MD5_CTX * | +| (MD5_CTX *,const void *,size_t) | | MD5_Update | 1 | const void * | +| (MD5_CTX *,const void *,size_t) | | MD5_Update | 2 | size_t | +| (MD5_SHA1_CTX *,const void *,size_t) | | ossl_md5_sha1_update | 0 | MD5_SHA1_CTX * | +| (MD5_SHA1_CTX *,const void *,size_t) | | ossl_md5_sha1_update | 1 | const void * | +| (MD5_SHA1_CTX *,const void *,size_t) | | ossl_md5_sha1_update | 2 | size_t | +| (MD5_SHA1_CTX *,int,int,void *) | | ossl_md5_sha1_ctrl | 0 | MD5_SHA1_CTX * | +| (MD5_SHA1_CTX *,int,int,void *) | | ossl_md5_sha1_ctrl | 1 | int | +| (MD5_SHA1_CTX *,int,int,void *) | | ossl_md5_sha1_ctrl | 2 | int | +| (MD5_SHA1_CTX *,int,int,void *) | | ossl_md5_sha1_ctrl | 3 | void * | +| (MDC2_CTX *,const unsigned char *,size_t) | | MDC2_Update | 0 | MDC2_CTX * | +| (MDC2_CTX *,const unsigned char *,size_t) | | MDC2_Update | 1 | const unsigned char * | +| (MDC2_CTX *,const unsigned char *,size_t) | | MDC2_Update | 2 | size_t | +| (ML_DSA_KEY *) | | ossl_ml_dsa_key_pub_alloc | 0 | ML_DSA_KEY * | +| (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_pk_decode | 0 | ML_DSA_KEY * | +| (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_pk_decode | 1 | const uint8_t * | +| (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_pk_decode | 2 | size_t | +| (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_sk_decode | 0 | ML_DSA_KEY * | +| (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_sk_decode | 1 | const uint8_t * | +| (ML_DSA_KEY *,const uint8_t *,size_t) | | ossl_ml_dsa_sk_decode | 2 | size_t | +| (ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t) | | ossl_ml_dsa_set_prekey | 0 | ML_DSA_KEY * | +| (ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t) | | ossl_ml_dsa_set_prekey | 1 | int | +| (ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t) | | ossl_ml_dsa_set_prekey | 2 | int | +| (ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t) | | ossl_ml_dsa_set_prekey | 3 | const uint8_t * | +| (ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t) | | ossl_ml_dsa_set_prekey | 4 | size_t | +| (ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t) | | ossl_ml_dsa_set_prekey | 5 | const uint8_t * | +| (ML_DSA_KEY *,int,int,const uint8_t *,size_t,const uint8_t *,size_t) | | ossl_ml_dsa_set_prekey | 6 | size_t | +| (ML_DSA_SIG *,const uint8_t *,size_t,const ML_DSA_PARAMS *) | | ossl_ml_dsa_sig_decode | 0 | ML_DSA_SIG * | +| (ML_DSA_SIG *,const uint8_t *,size_t,const ML_DSA_PARAMS *) | | ossl_ml_dsa_sig_decode | 1 | const uint8_t * | +| (ML_DSA_SIG *,const uint8_t *,size_t,const ML_DSA_PARAMS *) | | ossl_ml_dsa_sig_decode | 2 | size_t | +| (ML_DSA_SIG *,const uint8_t *,size_t,const ML_DSA_PARAMS *) | | ossl_ml_dsa_sig_decode | 3 | const ML_DSA_PARAMS * | +| (NAME_CONSTRAINTS *) | | NAME_CONSTRAINTS_free | 0 | NAME_CONSTRAINTS * | +| (NAMING_AUTHORITY *) | | NAMING_AUTHORITY_free | 0 | NAMING_AUTHORITY * | +| (NAMING_AUTHORITY **,const unsigned char **,long) | | d2i_NAMING_AUTHORITY | 0 | NAMING_AUTHORITY ** | +| (NAMING_AUTHORITY **,const unsigned char **,long) | | d2i_NAMING_AUTHORITY | 1 | const unsigned char ** | +| (NAMING_AUTHORITY **,const unsigned char **,long) | | d2i_NAMING_AUTHORITY | 2 | long | +| (NAMING_AUTHORITY *,ASN1_IA5STRING *) | | NAMING_AUTHORITY_set0_authorityURL | 0 | NAMING_AUTHORITY * | +| (NAMING_AUTHORITY *,ASN1_IA5STRING *) | | NAMING_AUTHORITY_set0_authorityURL | 1 | ASN1_IA5STRING * | +| (NAMING_AUTHORITY *,ASN1_OBJECT *) | | NAMING_AUTHORITY_set0_authorityId | 0 | NAMING_AUTHORITY * | +| (NAMING_AUTHORITY *,ASN1_OBJECT *) | | NAMING_AUTHORITY_set0_authorityId | 1 | ASN1_OBJECT * | +| (NAMING_AUTHORITY *,ASN1_STRING *) | | NAMING_AUTHORITY_set0_authorityText | 0 | NAMING_AUTHORITY * | +| (NAMING_AUTHORITY *,ASN1_STRING *) | | NAMING_AUTHORITY_set0_authorityText | 1 | ASN1_STRING * | +| (NETSCAPE_CERT_SEQUENCE *) | | NETSCAPE_CERT_SEQUENCE_free | 0 | NETSCAPE_CERT_SEQUENCE * | +| (NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long) | | d2i_NETSCAPE_CERT_SEQUENCE | 0 | NETSCAPE_CERT_SEQUENCE ** | +| (NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long) | | d2i_NETSCAPE_CERT_SEQUENCE | 1 | const unsigned char ** | +| (NETSCAPE_CERT_SEQUENCE **,const unsigned char **,long) | | d2i_NETSCAPE_CERT_SEQUENCE | 2 | long | +| (NETSCAPE_ENCRYPTED_PKEY *) | | NETSCAPE_ENCRYPTED_PKEY_free | 0 | NETSCAPE_ENCRYPTED_PKEY * | +| (NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long) | | d2i_NETSCAPE_ENCRYPTED_PKEY | 0 | NETSCAPE_ENCRYPTED_PKEY ** | +| (NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long) | | d2i_NETSCAPE_ENCRYPTED_PKEY | 1 | const unsigned char ** | +| (NETSCAPE_ENCRYPTED_PKEY **,const unsigned char **,long) | | d2i_NETSCAPE_ENCRYPTED_PKEY | 2 | long | +| (NETSCAPE_PKEY *) | | NETSCAPE_PKEY_free | 0 | NETSCAPE_PKEY * | +| (NETSCAPE_PKEY **,const unsigned char **,long) | | d2i_NETSCAPE_PKEY | 0 | NETSCAPE_PKEY ** | +| (NETSCAPE_PKEY **,const unsigned char **,long) | | d2i_NETSCAPE_PKEY | 1 | const unsigned char ** | +| (NETSCAPE_PKEY **,const unsigned char **,long) | | d2i_NETSCAPE_PKEY | 2 | long | +| (NETSCAPE_SPKAC *) | | NETSCAPE_SPKAC_free | 0 | NETSCAPE_SPKAC * | +| (NETSCAPE_SPKAC **,const unsigned char **,long) | | d2i_NETSCAPE_SPKAC | 0 | NETSCAPE_SPKAC ** | +| (NETSCAPE_SPKAC **,const unsigned char **,long) | | d2i_NETSCAPE_SPKAC | 1 | const unsigned char ** | +| (NETSCAPE_SPKAC **,const unsigned char **,long) | | d2i_NETSCAPE_SPKAC | 2 | long | +| (NETSCAPE_SPKI *) | | NETSCAPE_SPKI_b64_encode | 0 | NETSCAPE_SPKI * | +| (NETSCAPE_SPKI *) | | NETSCAPE_SPKI_free | 0 | NETSCAPE_SPKI * | +| (NETSCAPE_SPKI **,const unsigned char **,long) | | d2i_NETSCAPE_SPKI | 0 | NETSCAPE_SPKI ** | +| (NETSCAPE_SPKI **,const unsigned char **,long) | | d2i_NETSCAPE_SPKI | 1 | const unsigned char ** | +| (NETSCAPE_SPKI **,const unsigned char **,long) | | d2i_NETSCAPE_SPKI | 2 | long | +| (NETSCAPE_SPKI *,EVP_PKEY *,const EVP_MD *) | | NETSCAPE_SPKI_sign | 0 | NETSCAPE_SPKI * | +| (NETSCAPE_SPKI *,EVP_PKEY *,const EVP_MD *) | | NETSCAPE_SPKI_sign | 1 | EVP_PKEY * | +| (NETSCAPE_SPKI *,EVP_PKEY *,const EVP_MD *) | | NETSCAPE_SPKI_sign | 2 | const EVP_MD * | +| (NISTZ256_PRE_COMP *) | | EC_nistz256_pre_comp_dup | 0 | NISTZ256_PRE_COMP * | +| (NOTICEREF *) | | NOTICEREF_free | 0 | NOTICEREF * | +| (NOTICEREF **,const unsigned char **,long) | | d2i_NOTICEREF | 0 | NOTICEREF ** | +| (NOTICEREF **,const unsigned char **,long) | | d2i_NOTICEREF | 1 | const unsigned char ** | +| (NOTICEREF **,const unsigned char **,long) | | d2i_NOTICEREF | 2 | long | +| (OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *) | | CRYPTO_ocb128_copy_ctx | 0 | OCB128_CONTEXT * | +| (OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *) | | CRYPTO_ocb128_copy_ctx | 1 | OCB128_CONTEXT * | +| (OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *) | | CRYPTO_ocb128_copy_ctx | 2 | void * | +| (OCB128_CONTEXT *,OCB128_CONTEXT *,void *,void *) | | CRYPTO_ocb128_copy_ctx | 3 | void * | +| (OCB128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ocb128_aad | 0 | OCB128_CONTEXT * | +| (OCB128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ocb128_aad | 1 | const unsigned char * | +| (OCB128_CONTEXT *,const unsigned char *,size_t) | | CRYPTO_ocb128_aad | 2 | size_t | +| (OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ocb128_decrypt | 0 | OCB128_CONTEXT * | +| (OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ocb128_decrypt | 1 | const unsigned char * | +| (OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ocb128_decrypt | 2 | unsigned char * | +| (OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ocb128_decrypt | 3 | size_t | +| (OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ocb128_encrypt | 0 | OCB128_CONTEXT * | +| (OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ocb128_encrypt | 1 | const unsigned char * | +| (OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ocb128_encrypt | 2 | unsigned char * | +| (OCB128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | CRYPTO_ocb128_encrypt | 3 | size_t | +| (OCB128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ocb128_tag | 0 | OCB128_CONTEXT * | +| (OCB128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ocb128_tag | 1 | unsigned char * | +| (OCB128_CONTEXT *,unsigned char *,size_t) | | CRYPTO_ocb128_tag | 2 | size_t | +| (OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_init | 0 | OCB128_CONTEXT * | +| (OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_init | 1 | void * | +| (OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_init | 2 | void * | +| (OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_init | 3 | block128_f | +| (OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_init | 4 | block128_f | +| (OCB128_CONTEXT *,void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_init | 5 | ocb128_f | +| (OCSP_BASICRESP *) | | OCSP_BASICRESP_free | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP **,const unsigned char **,long) | | d2i_OCSP_BASICRESP | 0 | OCSP_BASICRESP ** | +| (OCSP_BASICRESP **,const unsigned char **,long) | | d2i_OCSP_BASICRESP | 1 | const unsigned char ** | +| (OCSP_BASICRESP **,const unsigned char **,long) | | d2i_OCSP_BASICRESP | 2 | long | +| (OCSP_BASICRESP *,OCSP_CERTID *,int) | | OCSP_resp_find | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,OCSP_CERTID *,int) | | OCSP_resp_find | 1 | OCSP_CERTID * | +| (OCSP_BASICRESP *,OCSP_CERTID *,int) | | OCSP_resp_find | 2 | int | +| (OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *) | | OCSP_basic_add1_status | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *) | | OCSP_basic_add1_status | 1 | OCSP_CERTID * | +| (OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *) | | OCSP_basic_add1_status | 2 | int | +| (OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *) | | OCSP_basic_add1_status | 3 | int | +| (OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *) | | OCSP_basic_add1_status | 4 | ASN1_TIME * | +| (OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *) | | OCSP_basic_add1_status | 5 | ASN1_TIME * | +| (OCSP_BASICRESP *,OCSP_CERTID *,int,int,ASN1_TIME *,ASN1_TIME *,ASN1_TIME *) | | OCSP_basic_add1_status | 6 | ASN1_TIME * | +| (OCSP_BASICRESP *,OCSP_REQUEST *) | | OCSP_copy_nonce | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,OCSP_REQUEST *) | | OCSP_copy_nonce | 1 | OCSP_REQUEST * | +| (OCSP_BASICRESP *,X509 *) | | OCSP_basic_add1_cert | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,X509 *) | | OCSP_basic_add1_cert | 1 | X509 * | +| (OCSP_BASICRESP *,X509 **,stack_st_X509 *) | | OCSP_resp_get0_signer | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,X509 **,stack_st_X509 *) | | OCSP_resp_get0_signer | 1 | X509 ** | +| (OCSP_BASICRESP *,X509 **,stack_st_X509 *) | | OCSP_resp_get0_signer | 2 | stack_st_X509 * | +| (OCSP_BASICRESP *,X509 *,EVP_MD_CTX *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign_ctx | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,X509 *,EVP_MD_CTX *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign_ctx | 1 | X509 * | +| (OCSP_BASICRESP *,X509 *,EVP_MD_CTX *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign_ctx | 2 | EVP_MD_CTX * | +| (OCSP_BASICRESP *,X509 *,EVP_MD_CTX *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign_ctx | 3 | stack_st_X509 * | +| (OCSP_BASICRESP *,X509 *,EVP_MD_CTX *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign_ctx | 4 | unsigned long | +| (OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign | 1 | X509 * | +| (OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign | 2 | EVP_PKEY * | +| (OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign | 3 | const EVP_MD * | +| (OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign | 4 | stack_st_X509 * | +| (OCSP_BASICRESP *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_basic_sign | 5 | unsigned long | +| (OCSP_BASICRESP *,X509_EXTENSION *,int) | | OCSP_BASICRESP_add_ext | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,X509_EXTENSION *,int) | | OCSP_BASICRESP_add_ext | 1 | X509_EXTENSION * | +| (OCSP_BASICRESP *,X509_EXTENSION *,int) | | OCSP_BASICRESP_add_ext | 2 | int | +| (OCSP_BASICRESP *,const ASN1_OBJECT *,int) | | OCSP_BASICRESP_get_ext_by_OBJ | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,const ASN1_OBJECT *,int) | | OCSP_BASICRESP_get_ext_by_OBJ | 1 | const ASN1_OBJECT * | +| (OCSP_BASICRESP *,const ASN1_OBJECT *,int) | | OCSP_BASICRESP_get_ext_by_OBJ | 2 | int | +| (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_delete_ext | 1 | int | +| (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,int) | | OCSP_BASICRESP_get_ext | 1 | int | +| (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,int) | | OCSP_resp_get0 | 1 | int | +| (OCSP_BASICRESP *,int,int *,int *) | | OCSP_BASICRESP_get1_ext_d2i | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,int,int *,int *) | | OCSP_BASICRESP_get1_ext_d2i | 1 | int | +| (OCSP_BASICRESP *,int,int *,int *) | | OCSP_BASICRESP_get1_ext_d2i | 2 | int * | +| (OCSP_BASICRESP *,int,int *,int *) | | OCSP_BASICRESP_get1_ext_d2i | 3 | int * | +| (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_NID | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_NID | 1 | int | +| (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_NID | 2 | int | +| (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_critical | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_critical | 1 | int | +| (OCSP_BASICRESP *,int,int) | | OCSP_BASICRESP_get_ext_by_critical | 2 | int | +| (OCSP_BASICRESP *,int,void *,int,unsigned long) | | OCSP_BASICRESP_add1_ext_i2d | 0 | OCSP_BASICRESP * | +| (OCSP_BASICRESP *,int,void *,int,unsigned long) | | OCSP_BASICRESP_add1_ext_i2d | 1 | int | +| (OCSP_BASICRESP *,int,void *,int,unsigned long) | | OCSP_BASICRESP_add1_ext_i2d | 2 | void * | +| (OCSP_BASICRESP *,int,void *,int,unsigned long) | | OCSP_BASICRESP_add1_ext_i2d | 3 | int | +| (OCSP_BASICRESP *,int,void *,int,unsigned long) | | OCSP_BASICRESP_add1_ext_i2d | 4 | unsigned long | +| (OCSP_CERTID *) | | OCSP_CERTID_free | 0 | OCSP_CERTID * | +| (OCSP_CERTID **,const unsigned char **,long) | | d2i_OCSP_CERTID | 0 | OCSP_CERTID ** | +| (OCSP_CERTID **,const unsigned char **,long) | | d2i_OCSP_CERTID | 1 | const unsigned char ** | +| (OCSP_CERTID **,const unsigned char **,long) | | d2i_OCSP_CERTID | 2 | long | +| (OCSP_CERTSTATUS *) | | OCSP_CERTSTATUS_free | 0 | OCSP_CERTSTATUS * | +| (OCSP_CERTSTATUS **,const unsigned char **,long) | | d2i_OCSP_CERTSTATUS | 0 | OCSP_CERTSTATUS ** | +| (OCSP_CERTSTATUS **,const unsigned char **,long) | | d2i_OCSP_CERTSTATUS | 1 | const unsigned char ** | +| (OCSP_CERTSTATUS **,const unsigned char **,long) | | d2i_OCSP_CERTSTATUS | 2 | long | +| (OCSP_CRLID *) | | OCSP_CRLID_free | 0 | OCSP_CRLID * | +| (OCSP_CRLID **,const unsigned char **,long) | | d2i_OCSP_CRLID | 0 | OCSP_CRLID ** | +| (OCSP_CRLID **,const unsigned char **,long) | | d2i_OCSP_CRLID | 1 | const unsigned char ** | +| (OCSP_CRLID **,const unsigned char **,long) | | d2i_OCSP_CRLID | 2 | long | +| (OCSP_ONEREQ *) | | OCSP_ONEREQ_free | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ *) | | OCSP_ONEREQ_get_ext_count | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ *) | | OCSP_onereq_get0_id | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ **,const unsigned char **,long) | | d2i_OCSP_ONEREQ | 0 | OCSP_ONEREQ ** | +| (OCSP_ONEREQ **,const unsigned char **,long) | | d2i_OCSP_ONEREQ | 1 | const unsigned char ** | +| (OCSP_ONEREQ **,const unsigned char **,long) | | d2i_OCSP_ONEREQ | 2 | long | +| (OCSP_ONEREQ *,X509_EXTENSION *,int) | | OCSP_ONEREQ_add_ext | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ *,X509_EXTENSION *,int) | | OCSP_ONEREQ_add_ext | 1 | X509_EXTENSION * | +| (OCSP_ONEREQ *,X509_EXTENSION *,int) | | OCSP_ONEREQ_add_ext | 2 | int | +| (OCSP_ONEREQ *,const ASN1_OBJECT *,int) | | OCSP_ONEREQ_get_ext_by_OBJ | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ *,const ASN1_OBJECT *,int) | | OCSP_ONEREQ_get_ext_by_OBJ | 1 | const ASN1_OBJECT * | +| (OCSP_ONEREQ *,const ASN1_OBJECT *,int) | | OCSP_ONEREQ_get_ext_by_OBJ | 2 | int | +| (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_delete_ext | 1 | int | +| (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ *,int) | | OCSP_ONEREQ_get_ext | 1 | int | +| (OCSP_ONEREQ *,int,int *,int *) | | OCSP_ONEREQ_get1_ext_d2i | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ *,int,int *,int *) | | OCSP_ONEREQ_get1_ext_d2i | 1 | int | +| (OCSP_ONEREQ *,int,int *,int *) | | OCSP_ONEREQ_get1_ext_d2i | 2 | int * | +| (OCSP_ONEREQ *,int,int *,int *) | | OCSP_ONEREQ_get1_ext_d2i | 3 | int * | +| (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_NID | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_NID | 1 | int | +| (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_NID | 2 | int | +| (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_critical | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_critical | 1 | int | +| (OCSP_ONEREQ *,int,int) | | OCSP_ONEREQ_get_ext_by_critical | 2 | int | +| (OCSP_ONEREQ *,int,void *,int,unsigned long) | | OCSP_ONEREQ_add1_ext_i2d | 0 | OCSP_ONEREQ * | +| (OCSP_ONEREQ *,int,void *,int,unsigned long) | | OCSP_ONEREQ_add1_ext_i2d | 1 | int | +| (OCSP_ONEREQ *,int,void *,int,unsigned long) | | OCSP_ONEREQ_add1_ext_i2d | 2 | void * | +| (OCSP_ONEREQ *,int,void *,int,unsigned long) | | OCSP_ONEREQ_add1_ext_i2d | 3 | int | +| (OCSP_ONEREQ *,int,void *,int,unsigned long) | | OCSP_ONEREQ_add1_ext_i2d | 4 | unsigned long | +| (OCSP_REQINFO *) | | OCSP_REQINFO_free | 0 | OCSP_REQINFO * | +| (OCSP_REQINFO **,const unsigned char **,long) | | d2i_OCSP_REQINFO | 0 | OCSP_REQINFO ** | +| (OCSP_REQINFO **,const unsigned char **,long) | | d2i_OCSP_REQINFO | 1 | const unsigned char ** | +| (OCSP_REQINFO **,const unsigned char **,long) | | d2i_OCSP_REQINFO | 2 | long | +| (OCSP_REQUEST *) | | OCSP_REQUEST_free | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST **,const unsigned char **,long) | | d2i_OCSP_REQUEST | 0 | OCSP_REQUEST ** | +| (OCSP_REQUEST **,const unsigned char **,long) | | d2i_OCSP_REQUEST | 1 | const unsigned char ** | +| (OCSP_REQUEST **,const unsigned char **,long) | | d2i_OCSP_REQUEST | 2 | long | +| (OCSP_REQUEST *,OCSP_CERTID *) | | OCSP_request_add0_id | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,OCSP_CERTID *) | | OCSP_request_add0_id | 1 | OCSP_CERTID * | +| (OCSP_REQUEST *,X509 *) | | OCSP_request_add1_cert | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,X509 *) | | OCSP_request_add1_cert | 1 | X509 * | +| (OCSP_REQUEST *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_request_sign | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_request_sign | 1 | X509 * | +| (OCSP_REQUEST *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_request_sign | 2 | EVP_PKEY * | +| (OCSP_REQUEST *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_request_sign | 3 | const EVP_MD * | +| (OCSP_REQUEST *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_request_sign | 4 | stack_st_X509 * | +| (OCSP_REQUEST *,X509 *,EVP_PKEY *,const EVP_MD *,stack_st_X509 *,unsigned long) | | OCSP_request_sign | 5 | unsigned long | +| (OCSP_REQUEST *,X509_EXTENSION *,int) | | OCSP_REQUEST_add_ext | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,X509_EXTENSION *,int) | | OCSP_REQUEST_add_ext | 1 | X509_EXTENSION * | +| (OCSP_REQUEST *,X509_EXTENSION *,int) | | OCSP_REQUEST_add_ext | 2 | int | +| (OCSP_REQUEST *,const ASN1_OBJECT *,int) | | OCSP_REQUEST_get_ext_by_OBJ | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,const ASN1_OBJECT *,int) | | OCSP_REQUEST_get_ext_by_OBJ | 1 | const ASN1_OBJECT * | +| (OCSP_REQUEST *,const ASN1_OBJECT *,int) | | OCSP_REQUEST_get_ext_by_OBJ | 2 | int | +| (OCSP_REQUEST *,const X509_NAME *) | | OCSP_request_set1_name | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,const X509_NAME *) | | OCSP_request_set1_name | 1 | const X509_NAME * | +| (OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int) | | process_responder | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int) | | process_responder | 1 | const char * | +| (OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int) | | process_responder | 2 | const char * | +| (OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int) | | process_responder | 3 | const char * | +| (OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int) | | process_responder | 4 | const char * | +| (OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int) | | process_responder | 5 | const char * | +| (OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int) | | process_responder | 6 | int | +| (OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int) | | process_responder | 7 | stack_st_CONF_VALUE * | +| (OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int) | | process_responder | 8 | int | +| (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,int) | | OCSP_REQUEST_delete_ext | 1 | int | +| (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,int) | | OCSP_REQUEST_get_ext | 1 | int | +| (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,int) | | OCSP_request_onereq_get0 | 1 | int | +| (OCSP_REQUEST *,int,int *,int *) | | OCSP_REQUEST_get1_ext_d2i | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,int,int *,int *) | | OCSP_REQUEST_get1_ext_d2i | 1 | int | +| (OCSP_REQUEST *,int,int *,int *) | | OCSP_REQUEST_get1_ext_d2i | 2 | int * | +| (OCSP_REQUEST *,int,int *,int *) | | OCSP_REQUEST_get1_ext_d2i | 3 | int * | +| (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_NID | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_NID | 1 | int | +| (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_NID | 2 | int | +| (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_critical | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_critical | 1 | int | +| (OCSP_REQUEST *,int,int) | | OCSP_REQUEST_get_ext_by_critical | 2 | int | +| (OCSP_REQUEST *,int,void *,int,unsigned long) | | OCSP_REQUEST_add1_ext_i2d | 0 | OCSP_REQUEST * | +| (OCSP_REQUEST *,int,void *,int,unsigned long) | | OCSP_REQUEST_add1_ext_i2d | 1 | int | +| (OCSP_REQUEST *,int,void *,int,unsigned long) | | OCSP_REQUEST_add1_ext_i2d | 2 | void * | +| (OCSP_REQUEST *,int,void *,int,unsigned long) | | OCSP_REQUEST_add1_ext_i2d | 3 | int | +| (OCSP_REQUEST *,int,void *,int,unsigned long) | | OCSP_REQUEST_add1_ext_i2d | 4 | unsigned long | +| (OCSP_RESPBYTES *) | | OCSP_RESPBYTES_free | 0 | OCSP_RESPBYTES * | +| (OCSP_RESPBYTES **,const unsigned char **,long) | | d2i_OCSP_RESPBYTES | 0 | OCSP_RESPBYTES ** | +| (OCSP_RESPBYTES **,const unsigned char **,long) | | d2i_OCSP_RESPBYTES | 1 | const unsigned char ** | +| (OCSP_RESPBYTES **,const unsigned char **,long) | | d2i_OCSP_RESPBYTES | 2 | long | +| (OCSP_RESPDATA *) | | OCSP_RESPDATA_free | 0 | OCSP_RESPDATA * | +| (OCSP_RESPDATA **,const unsigned char **,long) | | d2i_OCSP_RESPDATA | 0 | OCSP_RESPDATA ** | +| (OCSP_RESPDATA **,const unsigned char **,long) | | d2i_OCSP_RESPDATA | 1 | const unsigned char ** | +| (OCSP_RESPDATA **,const unsigned char **,long) | | d2i_OCSP_RESPDATA | 2 | long | +| (OCSP_RESPID *) | | OCSP_RESPID_free | 0 | OCSP_RESPID * | +| (OCSP_RESPID **,const unsigned char **,long) | | d2i_OCSP_RESPID | 0 | OCSP_RESPID ** | +| (OCSP_RESPID **,const unsigned char **,long) | | d2i_OCSP_RESPID | 1 | const unsigned char ** | +| (OCSP_RESPID **,const unsigned char **,long) | | d2i_OCSP_RESPID | 2 | long | +| (OCSP_RESPID *,X509 *) | | OCSP_RESPID_match | 0 | OCSP_RESPID * | +| (OCSP_RESPID *,X509 *) | | OCSP_RESPID_match | 1 | X509 * | +| (OCSP_RESPID *,X509 *,OSSL_LIB_CTX *,const char *) | | OCSP_RESPID_match_ex | 0 | OCSP_RESPID * | +| (OCSP_RESPID *,X509 *,OSSL_LIB_CTX *,const char *) | | OCSP_RESPID_match_ex | 1 | X509 * | +| (OCSP_RESPID *,X509 *,OSSL_LIB_CTX *,const char *) | | OCSP_RESPID_match_ex | 2 | OSSL_LIB_CTX * | +| (OCSP_RESPID *,X509 *,OSSL_LIB_CTX *,const char *) | | OCSP_RESPID_match_ex | 3 | const char * | +| (OCSP_RESPONSE *) | | OCSP_RESPONSE_free | 0 | OCSP_RESPONSE * | +| (OCSP_RESPONSE *) | | OCSP_response_status | 0 | OCSP_RESPONSE * | +| (OCSP_RESPONSE **,const unsigned char **,long) | | d2i_OCSP_RESPONSE | 0 | OCSP_RESPONSE ** | +| (OCSP_RESPONSE **,const unsigned char **,long) | | d2i_OCSP_RESPONSE | 1 | const unsigned char ** | +| (OCSP_RESPONSE **,const unsigned char **,long) | | d2i_OCSP_RESPONSE | 2 | long | +| (OCSP_REVOKEDINFO *) | | OCSP_REVOKEDINFO_free | 0 | OCSP_REVOKEDINFO * | +| (OCSP_REVOKEDINFO **,const unsigned char **,long) | | d2i_OCSP_REVOKEDINFO | 0 | OCSP_REVOKEDINFO ** | +| (OCSP_REVOKEDINFO **,const unsigned char **,long) | | d2i_OCSP_REVOKEDINFO | 1 | const unsigned char ** | +| (OCSP_REVOKEDINFO **,const unsigned char **,long) | | d2i_OCSP_REVOKEDINFO | 2 | long | +| (OCSP_SERVICELOC *) | | OCSP_SERVICELOC_free | 0 | OCSP_SERVICELOC * | +| (OCSP_SERVICELOC **,const unsigned char **,long) | | d2i_OCSP_SERVICELOC | 0 | OCSP_SERVICELOC ** | +| (OCSP_SERVICELOC **,const unsigned char **,long) | | d2i_OCSP_SERVICELOC | 1 | const unsigned char ** | +| (OCSP_SERVICELOC **,const unsigned char **,long) | | d2i_OCSP_SERVICELOC | 2 | long | +| (OCSP_SIGNATURE *) | | OCSP_SIGNATURE_free | 0 | OCSP_SIGNATURE * | +| (OCSP_SIGNATURE **,const unsigned char **,long) | | d2i_OCSP_SIGNATURE | 0 | OCSP_SIGNATURE ** | +| (OCSP_SIGNATURE **,const unsigned char **,long) | | d2i_OCSP_SIGNATURE | 1 | const unsigned char ** | +| (OCSP_SIGNATURE **,const unsigned char **,long) | | d2i_OCSP_SIGNATURE | 2 | long | +| (OCSP_SINGLERESP *) | | OCSP_SINGLERESP_free | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP *) | | OCSP_SINGLERESP_get_ext_count | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP **,const unsigned char **,long) | | d2i_OCSP_SINGLERESP | 0 | OCSP_SINGLERESP ** | +| (OCSP_SINGLERESP **,const unsigned char **,long) | | d2i_OCSP_SINGLERESP | 1 | const unsigned char ** | +| (OCSP_SINGLERESP **,const unsigned char **,long) | | d2i_OCSP_SINGLERESP | 2 | long | +| (OCSP_SINGLERESP *,X509_EXTENSION *,int) | | OCSP_SINGLERESP_add_ext | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP *,X509_EXTENSION *,int) | | OCSP_SINGLERESP_add_ext | 1 | X509_EXTENSION * | +| (OCSP_SINGLERESP *,X509_EXTENSION *,int) | | OCSP_SINGLERESP_add_ext | 2 | int | +| (OCSP_SINGLERESP *,const ASN1_OBJECT *,int) | | OCSP_SINGLERESP_get_ext_by_OBJ | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP *,const ASN1_OBJECT *,int) | | OCSP_SINGLERESP_get_ext_by_OBJ | 1 | const ASN1_OBJECT * | +| (OCSP_SINGLERESP *,const ASN1_OBJECT *,int) | | OCSP_SINGLERESP_get_ext_by_OBJ | 2 | int | +| (OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **) | | OCSP_single_get0_status | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **) | | OCSP_single_get0_status | 1 | int * | +| (OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **) | | OCSP_single_get0_status | 2 | ASN1_GENERALIZEDTIME ** | +| (OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **) | | OCSP_single_get0_status | 3 | ASN1_GENERALIZEDTIME ** | +| (OCSP_SINGLERESP *,int *,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **,ASN1_GENERALIZEDTIME **) | | OCSP_single_get0_status | 4 | ASN1_GENERALIZEDTIME ** | +| (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_delete_ext | 1 | int | +| (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP *,int) | | OCSP_SINGLERESP_get_ext | 1 | int | +| (OCSP_SINGLERESP *,int,int *,int *) | | OCSP_SINGLERESP_get1_ext_d2i | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP *,int,int *,int *) | | OCSP_SINGLERESP_get1_ext_d2i | 1 | int | +| (OCSP_SINGLERESP *,int,int *,int *) | | OCSP_SINGLERESP_get1_ext_d2i | 2 | int * | +| (OCSP_SINGLERESP *,int,int *,int *) | | OCSP_SINGLERESP_get1_ext_d2i | 3 | int * | +| (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_NID | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_NID | 1 | int | +| (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_NID | 2 | int | +| (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_critical | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_critical | 1 | int | +| (OCSP_SINGLERESP *,int,int) | | OCSP_SINGLERESP_get_ext_by_critical | 2 | int | +| (OCSP_SINGLERESP *,int,void *,int,unsigned long) | | OCSP_SINGLERESP_add1_ext_i2d | 0 | OCSP_SINGLERESP * | +| (OCSP_SINGLERESP *,int,void *,int,unsigned long) | | OCSP_SINGLERESP_add1_ext_i2d | 1 | int | +| (OCSP_SINGLERESP *,int,void *,int,unsigned long) | | OCSP_SINGLERESP_add1_ext_i2d | 2 | void * | +| (OCSP_SINGLERESP *,int,void *,int,unsigned long) | | OCSP_SINGLERESP_add1_ext_i2d | 3 | int | +| (OCSP_SINGLERESP *,int,void *,int,unsigned long) | | OCSP_SINGLERESP_add1_ext_i2d | 4 | unsigned long | +| (OPENSSL_DIR_CTX **) | | OPENSSL_DIR_end | 0 | OPENSSL_DIR_CTX ** | +| (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 0 | OPENSSL_DIR_CTX ** | +| (OPENSSL_DIR_CTX **,const char *) | | OPENSSL_DIR_read | 1 | const char * | +| (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 0 | OPENSSL_INIT_SETTINGS * | +| (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_appname | 1 | const char * | +| (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 0 | OPENSSL_INIT_SETTINGS * | +| (OPENSSL_INIT_SETTINGS *,const char *) | | OPENSSL_INIT_set_config_filename | 1 | const char * | +| (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 0 | OPENSSL_INIT_SETTINGS * | +| (OPENSSL_INIT_SETTINGS *,unsigned long) | | OPENSSL_INIT_set_config_file_flags | 1 | unsigned long | +| (OPENSSL_LHASH *) | | OPENSSL_LH_error | 0 | OPENSSL_LHASH * | +| (OPENSSL_LHASH *,OPENSSL_LH_DOALL_FUNCARG_THUNK,OPENSSL_LH_DOALL_FUNCARG,void *) | | OPENSSL_LH_doall_arg_thunk | 0 | OPENSSL_LHASH * | +| (OPENSSL_LHASH *,OPENSSL_LH_DOALL_FUNCARG_THUNK,OPENSSL_LH_DOALL_FUNCARG,void *) | | OPENSSL_LH_doall_arg_thunk | 1 | OPENSSL_LH_DOALL_FUNCARG_THUNK | +| (OPENSSL_LHASH *,OPENSSL_LH_DOALL_FUNCARG_THUNK,OPENSSL_LH_DOALL_FUNCARG,void *) | | OPENSSL_LH_doall_arg_thunk | 2 | OPENSSL_LH_DOALL_FUNCARG | +| (OPENSSL_LHASH *,OPENSSL_LH_DOALL_FUNCARG_THUNK,OPENSSL_LH_DOALL_FUNCARG,void *) | | OPENSSL_LH_doall_arg_thunk | 3 | void * | +| (OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK) | | OPENSSL_LH_set_thunks | 0 | OPENSSL_LHASH * | +| (OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK) | | OPENSSL_LH_set_thunks | 1 | OPENSSL_LH_HASHFUNCTHUNK | +| (OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK) | | OPENSSL_LH_set_thunks | 2 | OPENSSL_LH_COMPFUNCTHUNK | +| (OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK) | | OPENSSL_LH_set_thunks | 3 | OPENSSL_LH_DOALL_FUNC_THUNK | +| (OPENSSL_LHASH *,OPENSSL_LH_HASHFUNCTHUNK,OPENSSL_LH_COMPFUNCTHUNK,OPENSSL_LH_DOALL_FUNC_THUNK,OPENSSL_LH_DOALL_FUNCARG_THUNK) | | OPENSSL_LH_set_thunks | 4 | OPENSSL_LH_DOALL_FUNCARG_THUNK | +| (OPENSSL_LHASH *,const void *) | | OPENSSL_LH_delete | 0 | OPENSSL_LHASH * | +| (OPENSSL_LHASH *,const void *) | | OPENSSL_LH_delete | 1 | const void * | +| (OPENSSL_LHASH *,const void *) | | OPENSSL_LH_retrieve | 0 | OPENSSL_LHASH * | +| (OPENSSL_LHASH *,const void *) | | OPENSSL_LH_retrieve | 1 | const void * | +| (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 0 | OPENSSL_LHASH * | +| (OPENSSL_LHASH *,unsigned long) | | OPENSSL_LH_set_down_load | 1 | unsigned long | +| (OPENSSL_LHASH *,void *) | | OPENSSL_LH_insert | 0 | OPENSSL_LHASH * | +| (OPENSSL_LHASH *,void *) | | OPENSSL_LH_insert | 1 | void * | +| (OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC) | | OPENSSL_LH_new | 0 | OPENSSL_LH_HASHFUNC | +| (OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC) | | OPENSSL_LH_new | 1 | OPENSSL_LH_COMPFUNC | +| (OPENSSL_SA *,ossl_uintmax_t,void *) | | ossl_sa_set | 0 | OPENSSL_SA * | +| (OPENSSL_SA *,ossl_uintmax_t,void *) | | ossl_sa_set | 1 | ossl_uintmax_t | +| (OPENSSL_SA *,ossl_uintmax_t,void *) | | ossl_sa_set | 2 | void * | +| (OPENSSL_STACK *) | | OPENSSL_sk_pop | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *) | | OPENSSL_sk_shift | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,OPENSSL_sk_compfunc) | | OPENSSL_sk_set_cmp_func | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,OPENSSL_sk_compfunc) | | OPENSSL_sk_set_cmp_func | 1 | OPENSSL_sk_compfunc | +| (OPENSSL_STACK *,OPENSSL_sk_freefunc_thunk) | | OPENSSL_sk_set_thunks | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,OPENSSL_sk_freefunc_thunk) | | OPENSSL_sk_set_thunks | 1 | OPENSSL_sk_freefunc_thunk | +| (OPENSSL_STACK *,const void *) | | OPENSSL_sk_delete_ptr | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,const void *) | | OPENSSL_sk_delete_ptr | 1 | const void * | +| (OPENSSL_STACK *,const void *) | | OPENSSL_sk_find | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,const void *) | | OPENSSL_sk_find | 1 | const void * | +| (OPENSSL_STACK *,const void *) | | OPENSSL_sk_find_ex | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,const void *) | | OPENSSL_sk_find_ex | 1 | const void * | +| (OPENSSL_STACK *,const void *) | | OPENSSL_sk_push | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,const void *) | | OPENSSL_sk_push | 1 | const void * | +| (OPENSSL_STACK *,const void *) | | OPENSSL_sk_unshift | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,const void *) | | OPENSSL_sk_unshift | 1 | const void * | +| (OPENSSL_STACK *,const void *,int *) | | OPENSSL_sk_find_all | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,const void *,int *) | | OPENSSL_sk_find_all | 1 | const void * | +| (OPENSSL_STACK *,const void *,int *) | | OPENSSL_sk_find_all | 2 | int * | +| (OPENSSL_STACK *,const void *,int) | | OPENSSL_sk_insert | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,const void *,int) | | OPENSSL_sk_insert | 1 | const void * | +| (OPENSSL_STACK *,const void *,int) | | OPENSSL_sk_insert | 2 | int | +| (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,int) | | OPENSSL_sk_delete | 1 | int | +| (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,int) | | OPENSSL_sk_reserve | 1 | int | +| (OPENSSL_STACK *,int,const void *) | | OPENSSL_sk_set | 0 | OPENSSL_STACK * | +| (OPENSSL_STACK *,int,const void *) | | OPENSSL_sk_set | 1 | int | +| (OPENSSL_STACK *,int,const void *) | | OPENSSL_sk_set | 2 | const void * | +| (OPENSSL_sk_compfunc) | | OPENSSL_sk_new | 0 | OPENSSL_sk_compfunc | +| (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 0 | OPENSSL_sk_compfunc | +| (OPENSSL_sk_compfunc,int) | | OPENSSL_sk_new_reserve | 1 | int | +| (OSSL_AA_DIST_POINT *) | | OSSL_AA_DIST_POINT_free | 0 | OSSL_AA_DIST_POINT * | +| (OSSL_AA_DIST_POINT **,const unsigned char **,long) | | d2i_OSSL_AA_DIST_POINT | 0 | OSSL_AA_DIST_POINT ** | +| (OSSL_AA_DIST_POINT **,const unsigned char **,long) | | d2i_OSSL_AA_DIST_POINT | 1 | const unsigned char ** | +| (OSSL_AA_DIST_POINT **,const unsigned char **,long) | | d2i_OSSL_AA_DIST_POINT | 2 | long | +| (OSSL_ACKM *) | | ossl_ackm_get0_probe_request | 0 | OSSL_ACKM * | +| (OSSL_ACKM *) | | ossl_ackm_get_loss_detection_deadline | 0 | OSSL_ACKM * | +| (OSSL_ACKM *) | | ossl_ackm_get_pto_duration | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,..(*)(..),void *) | | ossl_ackm_set_ack_deadline_callback | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,..(*)(..),void *) | | ossl_ackm_set_ack_deadline_callback | 1 | ..(*)(..) | +| (OSSL_ACKM *,..(*)(..),void *) | | ossl_ackm_set_ack_deadline_callback | 2 | void * | +| (OSSL_ACKM *,..(*)(..),void *) | | ossl_ackm_set_loss_detection_deadline_callback | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,..(*)(..),void *) | | ossl_ackm_set_loss_detection_deadline_callback | 1 | ..(*)(..) | +| (OSSL_ACKM *,..(*)(..),void *) | | ossl_ackm_set_loss_detection_deadline_callback | 2 | void * | +| (OSSL_ACKM *,OSSL_ACKM_TX_PKT *) | | ossl_ackm_on_tx_packet | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,OSSL_ACKM_TX_PKT *) | | ossl_ackm_on_tx_packet | 1 | OSSL_ACKM_TX_PKT * | +| (OSSL_ACKM *,OSSL_TIME) | | ossl_ackm_set_rx_max_ack_delay | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,OSSL_TIME) | | ossl_ackm_set_rx_max_ack_delay | 1 | OSSL_TIME | +| (OSSL_ACKM *,OSSL_TIME) | | ossl_ackm_set_tx_max_ack_delay | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,OSSL_TIME) | | ossl_ackm_set_tx_max_ack_delay | 1 | OSSL_TIME | +| (OSSL_ACKM *,const OSSL_ACKM_RX_PKT *) | | ossl_ackm_on_rx_packet | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,const OSSL_ACKM_RX_PKT *) | | ossl_ackm_on_rx_packet | 1 | const OSSL_ACKM_RX_PKT * | +| (OSSL_ACKM *,const OSSL_QUIC_FRAME_ACK *,int,OSSL_TIME) | | ossl_ackm_on_rx_ack_frame | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,const OSSL_QUIC_FRAME_ACK *,int,OSSL_TIME) | | ossl_ackm_on_rx_ack_frame | 1 | const OSSL_QUIC_FRAME_ACK * | +| (OSSL_ACKM *,const OSSL_QUIC_FRAME_ACK *,int,OSSL_TIME) | | ossl_ackm_on_rx_ack_frame | 2 | int | +| (OSSL_ACKM *,const OSSL_QUIC_FRAME_ACK *,int,OSSL_TIME) | | ossl_ackm_on_rx_ack_frame | 3 | OSSL_TIME | +| (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,int) | | ossl_ackm_get_ack_deadline | 1 | int | +| (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,int) | | ossl_ackm_get_ack_frame | 1 | int | +| (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,int) | | ossl_ackm_get_largest_acked | 1 | int | +| (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 0 | OSSL_ACKM * | +| (OSSL_ACKM *,int) | | ossl_ackm_on_pkt_space_discarded | 1 | int | +| (OSSL_ALLOWED_ATTRIBUTES_CHOICE *) | | OSSL_ALLOWED_ATTRIBUTES_CHOICE_free | 0 | OSSL_ALLOWED_ATTRIBUTES_CHOICE * | +| (OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long) | | d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE | 0 | OSSL_ALLOWED_ATTRIBUTES_CHOICE ** | +| (OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long) | | d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE | 1 | const unsigned char ** | +| (OSSL_ALLOWED_ATTRIBUTES_CHOICE **,const unsigned char **,long) | | d2i_OSSL_ALLOWED_ATTRIBUTES_CHOICE | 2 | long | +| (OSSL_ALLOWED_ATTRIBUTES_ITEM *) | | OSSL_ALLOWED_ATTRIBUTES_ITEM_free | 0 | OSSL_ALLOWED_ATTRIBUTES_ITEM * | +| (OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long) | | d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM | 0 | OSSL_ALLOWED_ATTRIBUTES_ITEM ** | +| (OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long) | | d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM | 1 | const unsigned char ** | +| (OSSL_ALLOWED_ATTRIBUTES_ITEM **,const unsigned char **,long) | | d2i_OSSL_ALLOWED_ATTRIBUTES_ITEM | 2 | long | +| (OSSL_ALLOWED_ATTRIBUTES_SYNTAX *) | | OSSL_ALLOWED_ATTRIBUTES_SYNTAX_free | 0 | OSSL_ALLOWED_ATTRIBUTES_SYNTAX * | +| (OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX | 0 | OSSL_ALLOWED_ATTRIBUTES_SYNTAX ** | +| (OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX | 1 | const unsigned char ** | +| (OSSL_ALLOWED_ATTRIBUTES_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ALLOWED_ATTRIBUTES_SYNTAX | 2 | long | +| (OSSL_ATAV *) | | OSSL_ATAV_free | 0 | OSSL_ATAV * | +| (OSSL_ATAV **,const unsigned char **,long) | | d2i_OSSL_ATAV | 0 | OSSL_ATAV ** | +| (OSSL_ATAV **,const unsigned char **,long) | | d2i_OSSL_ATAV | 1 | const unsigned char ** | +| (OSSL_ATAV **,const unsigned char **,long) | | d2i_OSSL_ATAV | 2 | long | +| (OSSL_ATTRIBUTES_SYNTAX *) | | OSSL_ATTRIBUTES_SYNTAX_free | 0 | OSSL_ATTRIBUTES_SYNTAX * | +| (OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTES_SYNTAX | 0 | OSSL_ATTRIBUTES_SYNTAX ** | +| (OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTES_SYNTAX | 1 | const unsigned char ** | +| (OSSL_ATTRIBUTES_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTES_SYNTAX | 2 | long | +| (OSSL_ATTRIBUTE_DESCRIPTOR *) | | OSSL_ATTRIBUTE_DESCRIPTOR_free | 0 | OSSL_ATTRIBUTE_DESCRIPTOR * | +| (OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_DESCRIPTOR | 0 | OSSL_ATTRIBUTE_DESCRIPTOR ** | +| (OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_DESCRIPTOR | 1 | const unsigned char ** | +| (OSSL_ATTRIBUTE_DESCRIPTOR **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_DESCRIPTOR | 2 | long | +| (OSSL_ATTRIBUTE_MAPPING *) | | OSSL_ATTRIBUTE_MAPPING_free | 0 | OSSL_ATTRIBUTE_MAPPING * | +| (OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_MAPPING | 0 | OSSL_ATTRIBUTE_MAPPING ** | +| (OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_MAPPING | 1 | const unsigned char ** | +| (OSSL_ATTRIBUTE_MAPPING **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_MAPPING | 2 | long | +| (OSSL_ATTRIBUTE_MAPPINGS *) | | OSSL_ATTRIBUTE_MAPPINGS_free | 0 | OSSL_ATTRIBUTE_MAPPINGS * | +| (OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_MAPPINGS | 0 | OSSL_ATTRIBUTE_MAPPINGS ** | +| (OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_MAPPINGS | 1 | const unsigned char ** | +| (OSSL_ATTRIBUTE_MAPPINGS **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_MAPPINGS | 2 | long | +| (OSSL_ATTRIBUTE_TYPE_MAPPING *) | | OSSL_ATTRIBUTE_TYPE_MAPPING_free | 0 | OSSL_ATTRIBUTE_TYPE_MAPPING * | +| (OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_TYPE_MAPPING | 0 | OSSL_ATTRIBUTE_TYPE_MAPPING ** | +| (OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_TYPE_MAPPING | 1 | const unsigned char ** | +| (OSSL_ATTRIBUTE_TYPE_MAPPING **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_TYPE_MAPPING | 2 | long | +| (OSSL_ATTRIBUTE_VALUE_MAPPING *) | | OSSL_ATTRIBUTE_VALUE_MAPPING_free | 0 | OSSL_ATTRIBUTE_VALUE_MAPPING * | +| (OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_VALUE_MAPPING | 0 | OSSL_ATTRIBUTE_VALUE_MAPPING ** | +| (OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_VALUE_MAPPING | 1 | const unsigned char ** | +| (OSSL_ATTRIBUTE_VALUE_MAPPING **,const unsigned char **,long) | | d2i_OSSL_ATTRIBUTE_VALUE_MAPPING | 2 | long | +| (OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *) | | OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX_free | 0 | OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX * | +| (OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX | 0 | OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX ** | +| (OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX | 1 | const unsigned char ** | +| (OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX | 2 | long | +| (OSSL_BASIC_ATTR_CONSTRAINTS *) | | OSSL_BASIC_ATTR_CONSTRAINTS_free | 0 | OSSL_BASIC_ATTR_CONSTRAINTS * | +| (OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long) | | d2i_OSSL_BASIC_ATTR_CONSTRAINTS | 0 | OSSL_BASIC_ATTR_CONSTRAINTS ** | +| (OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long) | | d2i_OSSL_BASIC_ATTR_CONSTRAINTS | 1 | const unsigned char ** | +| (OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long) | | d2i_OSSL_BASIC_ATTR_CONSTRAINTS | 2 | long | +| (OSSL_CALLBACK *,void *) | | OSSL_SELF_TEST_new | 0 | OSSL_CALLBACK * | +| (OSSL_CALLBACK *,void *) | | OSSL_SELF_TEST_new | 1 | void * | +| (OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ATAV_set0 | 0 | OSSL_CMP_ATAV * | +| (OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ATAV_set0 | 1 | ASN1_OBJECT * | +| (OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ATAV_set0 | 2 | ASN1_TYPE * | +| (OSSL_CMP_ATAVS *) | | OSSL_CMP_ATAVS_free | 0 | OSSL_CMP_ATAVS * | +| (OSSL_CMP_ATAVS **,const OSSL_CMP_ATAV *) | | OSSL_CMP_ATAV_push1 | 0 | OSSL_CMP_ATAVS ** | +| (OSSL_CMP_ATAVS **,const OSSL_CMP_ATAV *) | | OSSL_CMP_ATAV_push1 | 1 | const OSSL_CMP_ATAV * | +| (OSSL_CMP_ATAVS **,const unsigned char **,long) | | d2i_OSSL_CMP_ATAVS | 0 | OSSL_CMP_ATAVS ** | +| (OSSL_CMP_ATAVS **,const unsigned char **,long) | | d2i_OSSL_CMP_ATAVS | 1 | const unsigned char ** | +| (OSSL_CMP_ATAVS **,const unsigned char **,long) | | d2i_OSSL_CMP_ATAVS | 2 | long | +| (OSSL_CMP_CAKEYUPDANNCONTENT *) | | OSSL_CMP_CAKEYUPDANNCONTENT_free | 0 | OSSL_CMP_CAKEYUPDANNCONTENT * | +| (OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_CAKEYUPDANNCONTENT | 0 | OSSL_CMP_CAKEYUPDANNCONTENT ** | +| (OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_CAKEYUPDANNCONTENT | 1 | const unsigned char ** | +| (OSSL_CMP_CAKEYUPDANNCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_CAKEYUPDANNCONTENT | 2 | long | +| (OSSL_CMP_CERTIFIEDKEYPAIR *) | | OSSL_CMP_CERTIFIEDKEYPAIR_free | 0 | OSSL_CMP_CERTIFIEDKEYPAIR * | +| (OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTIFIEDKEYPAIR | 0 | OSSL_CMP_CERTIFIEDKEYPAIR ** | +| (OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTIFIEDKEYPAIR | 1 | const unsigned char ** | +| (OSSL_CMP_CERTIFIEDKEYPAIR **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTIFIEDKEYPAIR | 2 | long | +| (OSSL_CMP_CERTORENCCERT *) | | OSSL_CMP_CERTORENCCERT_free | 0 | OSSL_CMP_CERTORENCCERT * | +| (OSSL_CMP_CERTORENCCERT **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTORENCCERT | 0 | OSSL_CMP_CERTORENCCERT ** | +| (OSSL_CMP_CERTORENCCERT **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTORENCCERT | 1 | const unsigned char ** | +| (OSSL_CMP_CERTORENCCERT **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTORENCCERT | 2 | long | +| (OSSL_CMP_CERTREPMESSAGE *) | | OSSL_CMP_CERTREPMESSAGE_free | 0 | OSSL_CMP_CERTREPMESSAGE * | +| (OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTREPMESSAGE | 0 | OSSL_CMP_CERTREPMESSAGE ** | +| (OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTREPMESSAGE | 1 | const unsigned char ** | +| (OSSL_CMP_CERTREPMESSAGE **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTREPMESSAGE | 2 | long | +| (OSSL_CMP_CERTREQTEMPLATE *) | | OSSL_CMP_CERTREQTEMPLATE_free | 0 | OSSL_CMP_CERTREQTEMPLATE * | +| (OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTREQTEMPLATE | 0 | OSSL_CMP_CERTREQTEMPLATE ** | +| (OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTREQTEMPLATE | 1 | const unsigned char ** | +| (OSSL_CMP_CERTREQTEMPLATE **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTREQTEMPLATE | 2 | long | +| (OSSL_CMP_CERTRESPONSE *) | | OSSL_CMP_CERTRESPONSE_free | 0 | OSSL_CMP_CERTRESPONSE * | +| (OSSL_CMP_CERTRESPONSE **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTRESPONSE | 0 | OSSL_CMP_CERTRESPONSE ** | +| (OSSL_CMP_CERTRESPONSE **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTRESPONSE | 1 | const unsigned char ** | +| (OSSL_CMP_CERTRESPONSE **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTRESPONSE | 2 | long | +| (OSSL_CMP_CERTSTATUS *) | | OSSL_CMP_CERTSTATUS_free | 0 | OSSL_CMP_CERTSTATUS * | +| (OSSL_CMP_CERTSTATUS **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTSTATUS | 0 | OSSL_CMP_CERTSTATUS ** | +| (OSSL_CMP_CERTSTATUS **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTSTATUS | 1 | const unsigned char ** | +| (OSSL_CMP_CERTSTATUS **,const unsigned char **,long) | | d2i_OSSL_CMP_CERTSTATUS | 2 | long | +| (OSSL_CMP_CERTSTATUS *,ASN1_OCTET_STRING *) | | ossl_cmp_certstatus_set0_certHash | 0 | OSSL_CMP_CERTSTATUS * | +| (OSSL_CMP_CERTSTATUS *,ASN1_OCTET_STRING *) | | ossl_cmp_certstatus_set0_certHash | 1 | ASN1_OCTET_STRING * | +| (OSSL_CMP_CHALLENGE *) | | OSSL_CMP_CHALLENGE_free | 0 | OSSL_CMP_CHALLENGE * | +| (OSSL_CMP_CHALLENGE **,const unsigned char **,long) | | d2i_OSSL_CMP_CHALLENGE | 0 | OSSL_CMP_CHALLENGE ** | +| (OSSL_CMP_CHALLENGE **,const unsigned char **,long) | | d2i_OSSL_CMP_CHALLENGE | 1 | const unsigned char ** | +| (OSSL_CMP_CHALLENGE **,const unsigned char **,long) | | d2i_OSSL_CMP_CHALLENGE | 2 | long | +| (OSSL_CMP_CRLSOURCE *) | | OSSL_CMP_CRLSOURCE_free | 0 | OSSL_CMP_CRLSOURCE * | +| (OSSL_CMP_CRLSOURCE **,const unsigned char **,long) | | d2i_OSSL_CMP_CRLSOURCE | 0 | OSSL_CMP_CRLSOURCE ** | +| (OSSL_CMP_CRLSOURCE **,const unsigned char **,long) | | d2i_OSSL_CMP_CRLSOURCE | 1 | const unsigned char ** | +| (OSSL_CMP_CRLSOURCE **,const unsigned char **,long) | | d2i_OSSL_CMP_CRLSOURCE | 2 | long | +| (OSSL_CMP_CRLSTATUS *) | | OSSL_CMP_CRLSTATUS_free | 0 | OSSL_CMP_CRLSTATUS * | +| (OSSL_CMP_CRLSTATUS **,const unsigned char **,long) | | d2i_OSSL_CMP_CRLSTATUS | 0 | OSSL_CMP_CRLSTATUS ** | +| (OSSL_CMP_CRLSTATUS **,const unsigned char **,long) | | d2i_OSSL_CMP_CRLSTATUS | 1 | const unsigned char ** | +| (OSSL_CMP_CRLSTATUS **,const unsigned char **,long) | | d2i_OSSL_CMP_CRLSTATUS | 2 | long | +| (OSSL_CMP_CTX *) | | ossl_cmp_genm_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *) | | ossl_cmp_pkiconf_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *) | | ossl_cmp_rr_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,EVP_PKEY *) | | OSSL_CMP_CTX_set1_pkey | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,EVP_PKEY *) | | OSSL_CMP_CTX_set1_pkey | 1 | EVP_PKEY * | +| (OSSL_CMP_CTX *,OSSL_CMP_ITAV *) | | OSSL_CMP_CTX_push0_geninfo_ITAV | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_ITAV *) | | OSSL_CMP_CTX_push0_geninfo_ITAV | 1 | OSSL_CMP_ITAV * | +| (OSSL_CMP_CTX *,OSSL_CMP_ITAV *) | | OSSL_CMP_CTX_push0_genm_ITAV | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_ITAV *) | | OSSL_CMP_CTX_push0_genm_ITAV | 1 | OSSL_CMP_ITAV * | +| (OSSL_CMP_CTX *,OSSL_CMP_MSG *) | | OSSL_CMP_MSG_update_recipNonce | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_MSG *) | | OSSL_CMP_MSG_update_recipNonce | 1 | OSSL_CMP_MSG * | +| (OSSL_CMP_CTX *,OSSL_CMP_MSG *) | | OSSL_CMP_MSG_update_transactionID | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_MSG *) | | OSSL_CMP_MSG_update_transactionID | 1 | OSSL_CMP_MSG * | +| (OSSL_CMP_CTX *,OSSL_CMP_MSG *) | | ossl_cmp_msg_add_extraCerts | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_MSG *) | | ossl_cmp_msg_add_extraCerts | 1 | OSSL_CMP_MSG * | +| (OSSL_CMP_CTX *,OSSL_CMP_MSG *) | | ossl_cmp_msg_protect | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_MSG *) | | ossl_cmp_msg_protect | 1 | OSSL_CMP_MSG * | +| (OSSL_CMP_CTX *,OSSL_CMP_PKIFREETEXT *) | | ossl_cmp_ctx_set0_statusString | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_PKIFREETEXT *) | | ossl_cmp_ctx_set0_statusString | 1 | OSSL_CMP_PKIFREETEXT * | +| (OSSL_CMP_CTX *,OSSL_CMP_PKIHEADER *) | | ossl_cmp_hdr_init | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_PKIHEADER *) | | ossl_cmp_hdr_init | 1 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_CTX *,OSSL_CMP_PKIHEADER *) | | ossl_cmp_hdr_set_transactionID | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_PKIHEADER *) | | ossl_cmp_hdr_set_transactionID | 1 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_CTX *,OSSL_CMP_certConf_cb_t) | | OSSL_CMP_CTX_set_certConf_cb | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_certConf_cb_t) | | OSSL_CMP_CTX_set_certConf_cb | 1 | OSSL_CMP_certConf_cb_t | +| (OSSL_CMP_CTX *,OSSL_CMP_log_cb_t) | | OSSL_CMP_CTX_set_log_cb | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_log_cb_t) | | OSSL_CMP_CTX_set_log_cb | 1 | OSSL_CMP_log_cb_t | +| (OSSL_CMP_CTX *,OSSL_CMP_transfer_cb_t) | | OSSL_CMP_CTX_set_transfer_cb | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CMP_transfer_cb_t) | | OSSL_CMP_CTX_set_transfer_cb | 1 | OSSL_CMP_transfer_cb_t | +| (OSSL_CMP_CTX *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **) | | OSSL_CMP_get1_certReqTemplate | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **) | | OSSL_CMP_get1_certReqTemplate | 1 | OSSL_CRMF_CERTTEMPLATE ** | +| (OSSL_CMP_CTX *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **) | | OSSL_CMP_get1_certReqTemplate | 2 | OSSL_CMP_ATAVS ** | +| (OSSL_CMP_CTX *,OSSL_HTTP_bio_cb_t) | | OSSL_CMP_CTX_set_http_cb | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,OSSL_HTTP_bio_cb_t) | | OSSL_CMP_CTX_set_http_cb | 1 | OSSL_HTTP_bio_cb_t | +| (OSSL_CMP_CTX *,POLICYINFO *) | | OSSL_CMP_CTX_push0_policy | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,POLICYINFO *) | | OSSL_CMP_CTX_push0_policy | 1 | POLICYINFO * | +| (OSSL_CMP_CTX *,X509 *) | | OSSL_CMP_CTX_set1_cert | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,X509 *) | | OSSL_CMP_CTX_set1_cert | 1 | X509 * | +| (OSSL_CMP_CTX *,X509 *) | | OSSL_CMP_CTX_set1_oldCert | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,X509 *) | | OSSL_CMP_CTX_set1_oldCert | 1 | X509 * | +| (OSSL_CMP_CTX *,X509 *) | | OSSL_CMP_CTX_set1_srvCert | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,X509 *) | | OSSL_CMP_CTX_set1_srvCert | 1 | X509 * | +| (OSSL_CMP_CTX *,X509 *) | | ossl_cmp_ctx_set0_newCert | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,X509 *) | | ossl_cmp_ctx_set0_newCert | 1 | X509 * | +| (OSSL_CMP_CTX *,X509 *) | | ossl_cmp_ctx_set1_validatedSrvCert | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,X509 *) | | ossl_cmp_ctx_set1_validatedSrvCert | 1 | X509 * | +| (OSSL_CMP_CTX *,X509 *,int,const char **) | | OSSL_CMP_certConf_cb | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,X509 *,int,const char **) | | OSSL_CMP_certConf_cb | 1 | X509 * | +| (OSSL_CMP_CTX *,X509 *,int,const char **) | | OSSL_CMP_certConf_cb | 2 | int | +| (OSSL_CMP_CTX *,X509 *,int,const char **) | | OSSL_CMP_certConf_cb | 3 | const char ** | +| (OSSL_CMP_CTX *,X509_EXTENSIONS *) | | OSSL_CMP_CTX_set0_reqExtensions | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,X509_EXTENSIONS *) | | OSSL_CMP_CTX_set0_reqExtensions | 1 | X509_EXTENSIONS * | +| (OSSL_CMP_CTX *,X509_STORE *) | | OSSL_CMP_CTX_set0_trustedStore | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,X509_STORE *) | | OSSL_CMP_CTX_set0_trustedStore | 1 | X509_STORE * | +| (OSSL_CMP_CTX *,X509_STORE *,stack_st_X509 *) | | OSSL_CMP_CTX_build_cert_chain | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,X509_STORE *,stack_st_X509 *) | | OSSL_CMP_CTX_build_cert_chain | 1 | X509_STORE * | +| (OSSL_CMP_CTX *,X509_STORE *,stack_st_X509 *) | | OSSL_CMP_CTX_build_cert_chain | 2 | stack_st_X509 * | +| (OSSL_CMP_CTX *,const ASN1_INTEGER *) | | OSSL_CMP_CTX_set1_serialNumber | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const ASN1_INTEGER *) | | OSSL_CMP_CTX_set1_serialNumber | 1 | const ASN1_INTEGER * | +| (OSSL_CMP_CTX *,const ASN1_OCTET_STRING *) | | OSSL_CMP_CTX_set1_senderNonce | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const ASN1_OCTET_STRING *) | | OSSL_CMP_CTX_set1_senderNonce | 1 | const ASN1_OCTET_STRING * | +| (OSSL_CMP_CTX *,const ASN1_OCTET_STRING *) | | OSSL_CMP_CTX_set1_transactionID | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const ASN1_OCTET_STRING *) | | OSSL_CMP_CTX_set1_transactionID | 1 | const ASN1_OCTET_STRING * | +| (OSSL_CMP_CTX *,const ASN1_OCTET_STRING *) | | ossl_cmp_ctx_set1_first_senderNonce | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const ASN1_OCTET_STRING *) | | ossl_cmp_ctx_set1_first_senderNonce | 1 | const ASN1_OCTET_STRING * | +| (OSSL_CMP_CTX *,const ASN1_OCTET_STRING *) | | ossl_cmp_ctx_set1_recipNonce | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const ASN1_OCTET_STRING *) | | ossl_cmp_ctx_set1_recipNonce | 1 | const ASN1_OCTET_STRING * | +| (OSSL_CMP_CTX *,const GENERAL_NAME *) | | OSSL_CMP_CTX_push1_subjectAltName | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const GENERAL_NAME *) | | OSSL_CMP_CTX_push1_subjectAltName | 1 | const GENERAL_NAME * | +| (OSSL_CMP_CTX *,const OSSL_CMP_MSG *) | | OSSL_CMP_MSG_http_perform | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const OSSL_CMP_MSG *) | | OSSL_CMP_MSG_http_perform | 1 | const OSSL_CMP_MSG * | +| (OSSL_CMP_CTX *,const OSSL_CMP_MSG *) | | OSSL_CMP_validate_msg | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const OSSL_CMP_MSG *) | | OSSL_CMP_validate_msg | 1 | const OSSL_CMP_MSG * | +| (OSSL_CMP_CTX *,const OSSL_CMP_MSG *,ossl_cmp_allow_unprotected_cb_t,int) | | ossl_cmp_msg_check_update | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const OSSL_CMP_MSG *,ossl_cmp_allow_unprotected_cb_t,int) | | ossl_cmp_msg_check_update | 1 | const OSSL_CMP_MSG * | +| (OSSL_CMP_CTX *,const OSSL_CMP_MSG *,ossl_cmp_allow_unprotected_cb_t,int) | | ossl_cmp_msg_check_update | 2 | ossl_cmp_allow_unprotected_cb_t | +| (OSSL_CMP_CTX *,const OSSL_CMP_MSG *,ossl_cmp_allow_unprotected_cb_t,int) | | ossl_cmp_msg_check_update | 3 | int | +| (OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,const OSSL_CRMF_CERTID *,int) | | ossl_cmp_rp_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,const OSSL_CRMF_CERTID *,int) | | ossl_cmp_rp_new | 1 | const OSSL_CMP_PKISI * | +| (OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,const OSSL_CRMF_CERTID *,int) | | ossl_cmp_rp_new | 2 | const OSSL_CRMF_CERTID * | +| (OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,const OSSL_CRMF_CERTID *,int) | | ossl_cmp_rp_new | 3 | int | +| (OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,int64_t,const char *,int) | | ossl_cmp_error_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,int64_t,const char *,int) | | ossl_cmp_error_new | 1 | const OSSL_CMP_PKISI * | +| (OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,int64_t,const char *,int) | | ossl_cmp_error_new | 2 | int64_t | +| (OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,int64_t,const char *,int) | | ossl_cmp_error_new | 3 | const char * | +| (OSSL_CMP_CTX *,const OSSL_CMP_PKISI *,int64_t,const char *,int) | | ossl_cmp_error_new | 4 | int | +| (OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **) | | OSSL_CMP_get1_rootCaKeyUpdate | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **) | | OSSL_CMP_get1_rootCaKeyUpdate | 1 | const X509 * | +| (OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **) | | OSSL_CMP_get1_rootCaKeyUpdate | 2 | X509 ** | +| (OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **) | | OSSL_CMP_get1_rootCaKeyUpdate | 3 | X509 ** | +| (OSSL_CMP_CTX *,const X509 *,X509 **,X509 **,X509 **) | | OSSL_CMP_get1_rootCaKeyUpdate | 4 | X509 ** | +| (OSSL_CMP_CTX *,const X509 *,const X509_CRL *,X509_CRL **) | | OSSL_CMP_get1_crlUpdate | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const X509 *,const X509_CRL *,X509_CRL **) | | OSSL_CMP_get1_crlUpdate | 1 | const X509 * | +| (OSSL_CMP_CTX *,const X509 *,const X509_CRL *,X509_CRL **) | | OSSL_CMP_get1_crlUpdate | 2 | const X509_CRL * | +| (OSSL_CMP_CTX *,const X509 *,const X509_CRL *,X509_CRL **) | | OSSL_CMP_get1_crlUpdate | 3 | X509_CRL ** | +| (OSSL_CMP_CTX *,const X509_NAME *) | | OSSL_CMP_CTX_set1_expected_sender | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const X509_NAME *) | | OSSL_CMP_CTX_set1_expected_sender | 1 | const X509_NAME * | +| (OSSL_CMP_CTX *,const X509_NAME *) | | OSSL_CMP_CTX_set1_issuer | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const X509_NAME *) | | OSSL_CMP_CTX_set1_issuer | 1 | const X509_NAME * | +| (OSSL_CMP_CTX *,const X509_NAME *) | | OSSL_CMP_CTX_set1_recipient | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const X509_NAME *) | | OSSL_CMP_CTX_set1_recipient | 1 | const X509_NAME * | +| (OSSL_CMP_CTX *,const X509_NAME *) | | OSSL_CMP_CTX_set1_subjectName | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const X509_NAME *) | | OSSL_CMP_CTX_set1_subjectName | 1 | const X509_NAME * | +| (OSSL_CMP_CTX *,const X509_REQ *) | | OSSL_CMP_CTX_set1_p10CSR | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const X509_REQ *) | | OSSL_CMP_CTX_set1_p10CSR | 1 | const X509_REQ * | +| (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_no_proxy | 1 | const char * | +| (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_proxy | 1 | const char * | +| (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_server | 1 | const char * | +| (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const char *) | | OSSL_CMP_CTX_set1_serverPath | 1 | const char * | +| (OSSL_CMP_CTX *,const stack_st_OSSL_CMP_ITAV *) | | ossl_cmp_genp_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const stack_st_OSSL_CMP_ITAV *) | | ossl_cmp_genp_new | 1 | const stack_st_OSSL_CMP_ITAV * | +| (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_referenceValue | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_referenceValue | 1 | const unsigned char * | +| (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_referenceValue | 2 | int | +| (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_secretValue | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_secretValue | 1 | const unsigned char * | +| (OSSL_CMP_CTX *,const unsigned char *,int) | | OSSL_CMP_CTX_set1_secretValue | 2 | int | +| (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_set_serverPort | 1 | int | +| (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_failInfoCode | 1 | int | +| (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int) | | ossl_cmp_ctx_set_status | 1 | int | +| (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int) | | ossl_cmp_msg_create | 1 | int | +| (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int) | | ossl_cmp_pollReq_new | 1 | int | +| (OSSL_CMP_CTX *,int,EVP_PKEY *) | | OSSL_CMP_CTX_set0_newPkey | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int,EVP_PKEY *) | | OSSL_CMP_CTX_set0_newPkey | 1 | int | +| (OSSL_CMP_CTX *,int,EVP_PKEY *) | | OSSL_CMP_CTX_set0_newPkey | 2 | EVP_PKEY * | +| (OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *) | | OSSL_CMP_exec_certreq | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *) | | OSSL_CMP_exec_certreq | 1 | int | +| (OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *) | | OSSL_CMP_exec_certreq | 2 | const OSSL_CRMF_MSG * | +| (OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *) | | ossl_cmp_certreq_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *) | | ossl_cmp_certreq_new | 1 | int | +| (OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *) | | ossl_cmp_certreq_new | 2 | const OSSL_CRMF_MSG * | +| (OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *,int *) | | OSSL_CMP_try_certreq | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *,int *) | | OSSL_CMP_try_certreq | 1 | int | +| (OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *,int *) | | OSSL_CMP_try_certreq | 2 | const OSSL_CRMF_MSG * | +| (OSSL_CMP_CTX *,int,const OSSL_CRMF_MSG *,int *) | | OSSL_CMP_try_certreq | 3 | int * | +| (OSSL_CMP_CTX *,int,int64_t) | | ossl_cmp_pollRep_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int,int64_t) | | ossl_cmp_pollRep_new | 1 | int | +| (OSSL_CMP_CTX *,int,int64_t) | | ossl_cmp_pollRep_new | 2 | int64_t | +| (OSSL_CMP_CTX *,int,int) | | OSSL_CMP_CTX_set_option | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int,int) | | OSSL_CMP_CTX_set_option | 1 | int | +| (OSSL_CMP_CTX *,int,int) | | OSSL_CMP_CTX_set_option | 2 | int | +| (OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int) | | ossl_cmp_certrep_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int) | | ossl_cmp_certrep_new | 1 | int | +| (OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int) | | ossl_cmp_certrep_new | 2 | int | +| (OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int) | | ossl_cmp_certrep_new | 3 | const OSSL_CMP_PKISI * | +| (OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int) | | ossl_cmp_certrep_new | 4 | X509 * | +| (OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int) | | ossl_cmp_certrep_new | 5 | const EVP_PKEY * | +| (OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int) | | ossl_cmp_certrep_new | 6 | const X509 * | +| (OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int) | | ossl_cmp_certrep_new | 7 | stack_st_X509 * | +| (OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int) | | ossl_cmp_certrep_new | 8 | stack_st_X509 * | +| (OSSL_CMP_CTX *,int,int,const OSSL_CMP_PKISI *,X509 *,const EVP_PKEY *,const X509 *,stack_st_X509 *,stack_st_X509 *,int) | | ossl_cmp_certrep_new | 9 | int | +| (OSSL_CMP_CTX *,int,int,const char *) | | ossl_cmp_certConf_new | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,int,int,const char *) | | ossl_cmp_certConf_new | 1 | int | +| (OSSL_CMP_CTX *,int,int,const char *) | | ossl_cmp_certConf_new | 2 | int | +| (OSSL_CMP_CTX *,int,int,const char *) | | ossl_cmp_certConf_new | 3 | const char * | +| (OSSL_CMP_CTX *,stack_st_X509 *) | | OSSL_CMP_CTX_set1_extraCertsOut | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,stack_st_X509 *) | | OSSL_CMP_CTX_set1_extraCertsOut | 1 | stack_st_X509 * | +| (OSSL_CMP_CTX *,stack_st_X509 *) | | OSSL_CMP_CTX_set1_untrusted | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,stack_st_X509 *) | | OSSL_CMP_CTX_set1_untrusted | 1 | stack_st_X509 * | +| (OSSL_CMP_CTX *,stack_st_X509 *) | | ossl_cmp_ctx_set1_caPubs | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,stack_st_X509 *) | | ossl_cmp_ctx_set1_caPubs | 1 | stack_st_X509 * | +| (OSSL_CMP_CTX *,stack_st_X509 *) | | ossl_cmp_ctx_set1_extraCertsIn | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,stack_st_X509 *) | | ossl_cmp_ctx_set1_extraCertsIn | 1 | stack_st_X509 * | +| (OSSL_CMP_CTX *,stack_st_X509 *) | | ossl_cmp_ctx_set1_newChain | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,stack_st_X509 *) | | ossl_cmp_ctx_set1_newChain | 1 | stack_st_X509 * | +| (OSSL_CMP_CTX *,stack_st_X509 **) | | OSSL_CMP_get1_caCerts | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,stack_st_X509 **) | | OSSL_CMP_get1_caCerts | 1 | stack_st_X509 ** | +| (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_certConf_cb_arg | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_certConf_cb_arg | 1 | void * | +| (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_http_cb_arg | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_http_cb_arg | 1 | void * | +| (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_transfer_cb_arg | 0 | OSSL_CMP_CTX * | +| (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_transfer_cb_arg | 1 | void * | +| (OSSL_CMP_ERRORMSGCONTENT *) | | OSSL_CMP_ERRORMSGCONTENT_free | 0 | OSSL_CMP_ERRORMSGCONTENT * | +| (OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_ERRORMSGCONTENT | 0 | OSSL_CMP_ERRORMSGCONTENT ** | +| (OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_ERRORMSGCONTENT | 1 | const unsigned char ** | +| (OSSL_CMP_ERRORMSGCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_ERRORMSGCONTENT | 2 | long | +| (OSSL_CMP_ITAV *) | | OSSL_CMP_ITAV_free | 0 | OSSL_CMP_ITAV * | +| (OSSL_CMP_ITAV **,const unsigned char **,long) | | d2i_OSSL_CMP_ITAV | 0 | OSSL_CMP_ITAV ** | +| (OSSL_CMP_ITAV **,const unsigned char **,long) | | d2i_OSSL_CMP_ITAV | 1 | const unsigned char ** | +| (OSSL_CMP_ITAV **,const unsigned char **,long) | | d2i_OSSL_CMP_ITAV | 2 | long | +| (OSSL_CMP_ITAV *,ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ITAV_set0 | 0 | OSSL_CMP_ITAV * | +| (OSSL_CMP_ITAV *,ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ITAV_set0 | 1 | ASN1_OBJECT * | +| (OSSL_CMP_ITAV *,ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ITAV_set0 | 2 | ASN1_TYPE * | +| (OSSL_CMP_KEYRECREPCONTENT *) | | OSSL_CMP_KEYRECREPCONTENT_free | 0 | OSSL_CMP_KEYRECREPCONTENT * | +| (OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_KEYRECREPCONTENT | 0 | OSSL_CMP_KEYRECREPCONTENT ** | +| (OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_KEYRECREPCONTENT | 1 | const unsigned char ** | +| (OSSL_CMP_KEYRECREPCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_KEYRECREPCONTENT | 2 | long | +| (OSSL_CMP_MSG *) | | OSSL_CMP_MSG_free | 0 | OSSL_CMP_MSG * | +| (OSSL_CMP_MSG **,const unsigned char **,long) | | d2i_OSSL_CMP_MSG | 0 | OSSL_CMP_MSG ** | +| (OSSL_CMP_MSG **,const unsigned char **,long) | | d2i_OSSL_CMP_MSG | 1 | const unsigned char ** | +| (OSSL_CMP_MSG **,const unsigned char **,long) | | d2i_OSSL_CMP_MSG | 2 | long | +| (OSSL_CMP_MSG *,OSSL_LIB_CTX *,const char *) | | ossl_cmp_msg_set0_libctx | 0 | OSSL_CMP_MSG * | +| (OSSL_CMP_MSG *,OSSL_LIB_CTX *,const char *) | | ossl_cmp_msg_set0_libctx | 1 | OSSL_LIB_CTX * | +| (OSSL_CMP_MSG *,OSSL_LIB_CTX *,const char *) | | ossl_cmp_msg_set0_libctx | 2 | const char * | +| (OSSL_CMP_MSG *,const stack_st_OSSL_CMP_ITAV *) | | ossl_cmp_msg_gen_push1_ITAVs | 0 | OSSL_CMP_MSG * | +| (OSSL_CMP_MSG *,const stack_st_OSSL_CMP_ITAV *) | | ossl_cmp_msg_gen_push1_ITAVs | 1 | const stack_st_OSSL_CMP_ITAV * | +| (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 0 | OSSL_CMP_MSG * | +| (OSSL_CMP_MSG *,int) | | ossl_cmp_msg_set_bodytype | 1 | int | +| (OSSL_CMP_PKIBODY *) | | OSSL_CMP_PKIBODY_free | 0 | OSSL_CMP_PKIBODY * | +| (OSSL_CMP_PKIBODY **,const unsigned char **,long) | | d2i_OSSL_CMP_PKIBODY | 0 | OSSL_CMP_PKIBODY ** | +| (OSSL_CMP_PKIBODY **,const unsigned char **,long) | | d2i_OSSL_CMP_PKIBODY | 1 | const unsigned char ** | +| (OSSL_CMP_PKIBODY **,const unsigned char **,long) | | d2i_OSSL_CMP_PKIBODY | 2 | long | +| (OSSL_CMP_PKIHEADER *) | | OSSL_CMP_PKIHEADER_free | 0 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_PKIHEADER *) | | ossl_cmp_hdr_update_messageTime | 0 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_PKIHEADER **,const unsigned char **,long) | | d2i_OSSL_CMP_PKIHEADER | 0 | OSSL_CMP_PKIHEADER ** | +| (OSSL_CMP_PKIHEADER **,const unsigned char **,long) | | d2i_OSSL_CMP_PKIHEADER | 1 | const unsigned char ** | +| (OSSL_CMP_PKIHEADER **,const unsigned char **,long) | | d2i_OSSL_CMP_PKIHEADER | 2 | long | +| (OSSL_CMP_PKIHEADER *,ASN1_UTF8STRING *) | | ossl_cmp_hdr_push0_freeText | 0 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_PKIHEADER *,ASN1_UTF8STRING *) | | ossl_cmp_hdr_push0_freeText | 1 | ASN1_UTF8STRING * | +| (OSSL_CMP_PKIHEADER *,OSSL_CMP_ITAV *) | | ossl_cmp_hdr_generalInfo_push0_item | 0 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_PKIHEADER *,OSSL_CMP_ITAV *) | | ossl_cmp_hdr_generalInfo_push0_item | 1 | OSSL_CMP_ITAV * | +| (OSSL_CMP_PKIHEADER *,const ASN1_OCTET_STRING *) | | ossl_cmp_hdr_set1_senderKID | 0 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_PKIHEADER *,const ASN1_OCTET_STRING *) | | ossl_cmp_hdr_set1_senderKID | 1 | const ASN1_OCTET_STRING * | +| (OSSL_CMP_PKIHEADER *,const X509_NAME *) | | ossl_cmp_hdr_set1_recipient | 0 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_PKIHEADER *,const X509_NAME *) | | ossl_cmp_hdr_set1_recipient | 1 | const X509_NAME * | +| (OSSL_CMP_PKIHEADER *,const X509_NAME *) | | ossl_cmp_hdr_set1_sender | 0 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_PKIHEADER *,const X509_NAME *) | | ossl_cmp_hdr_set1_sender | 1 | const X509_NAME * | +| (OSSL_CMP_PKIHEADER *,const stack_st_OSSL_CMP_ITAV *) | | ossl_cmp_hdr_generalInfo_push1_items | 0 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_PKIHEADER *,const stack_st_OSSL_CMP_ITAV *) | | ossl_cmp_hdr_generalInfo_push1_items | 1 | const stack_st_OSSL_CMP_ITAV * | +| (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 0 | OSSL_CMP_PKIHEADER * | +| (OSSL_CMP_PKIHEADER *,int) | | ossl_cmp_hdr_set_pvno | 1 | int | +| (OSSL_CMP_PKISI *) | | OSSL_CMP_PKISI_free | 0 | OSSL_CMP_PKISI * | +| (OSSL_CMP_PKISI **,const unsigned char **,long) | | d2i_OSSL_CMP_PKISI | 0 | OSSL_CMP_PKISI ** | +| (OSSL_CMP_PKISI **,const unsigned char **,long) | | d2i_OSSL_CMP_PKISI | 1 | const unsigned char ** | +| (OSSL_CMP_PKISI **,const unsigned char **,long) | | d2i_OSSL_CMP_PKISI | 2 | long | +| (OSSL_CMP_POLLREP *) | | OSSL_CMP_POLLREP_free | 0 | OSSL_CMP_POLLREP * | +| (OSSL_CMP_POLLREP **,const unsigned char **,long) | | d2i_OSSL_CMP_POLLREP | 0 | OSSL_CMP_POLLREP ** | +| (OSSL_CMP_POLLREP **,const unsigned char **,long) | | d2i_OSSL_CMP_POLLREP | 1 | const unsigned char ** | +| (OSSL_CMP_POLLREP **,const unsigned char **,long) | | d2i_OSSL_CMP_POLLREP | 2 | long | +| (OSSL_CMP_POLLREQ *) | | OSSL_CMP_POLLREQ_free | 0 | OSSL_CMP_POLLREQ * | +| (OSSL_CMP_POLLREQ **,const unsigned char **,long) | | d2i_OSSL_CMP_POLLREQ | 0 | OSSL_CMP_POLLREQ ** | +| (OSSL_CMP_POLLREQ **,const unsigned char **,long) | | d2i_OSSL_CMP_POLLREQ | 1 | const unsigned char ** | +| (OSSL_CMP_POLLREQ **,const unsigned char **,long) | | d2i_OSSL_CMP_POLLREQ | 2 | long | +| (OSSL_CMP_PROTECTEDPART *) | | OSSL_CMP_PROTECTEDPART_free | 0 | OSSL_CMP_PROTECTEDPART * | +| (OSSL_CMP_PROTECTEDPART **,const unsigned char **,long) | | d2i_OSSL_CMP_PROTECTEDPART | 0 | OSSL_CMP_PROTECTEDPART ** | +| (OSSL_CMP_PROTECTEDPART **,const unsigned char **,long) | | d2i_OSSL_CMP_PROTECTEDPART | 1 | const unsigned char ** | +| (OSSL_CMP_PROTECTEDPART **,const unsigned char **,long) | | d2i_OSSL_CMP_PROTECTEDPART | 2 | long | +| (OSSL_CMP_REVANNCONTENT *) | | OSSL_CMP_REVANNCONTENT_free | 0 | OSSL_CMP_REVANNCONTENT * | +| (OSSL_CMP_REVANNCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_REVANNCONTENT | 0 | OSSL_CMP_REVANNCONTENT ** | +| (OSSL_CMP_REVANNCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_REVANNCONTENT | 1 | const unsigned char ** | +| (OSSL_CMP_REVANNCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_REVANNCONTENT | 2 | long | +| (OSSL_CMP_REVDETAILS *) | | OSSL_CMP_REVDETAILS_free | 0 | OSSL_CMP_REVDETAILS * | +| (OSSL_CMP_REVDETAILS **,const unsigned char **,long) | | d2i_OSSL_CMP_REVDETAILS | 0 | OSSL_CMP_REVDETAILS ** | +| (OSSL_CMP_REVDETAILS **,const unsigned char **,long) | | d2i_OSSL_CMP_REVDETAILS | 1 | const unsigned char ** | +| (OSSL_CMP_REVDETAILS **,const unsigned char **,long) | | d2i_OSSL_CMP_REVDETAILS | 2 | long | +| (OSSL_CMP_REVREPCONTENT *) | | OSSL_CMP_REVREPCONTENT_free | 0 | OSSL_CMP_REVREPCONTENT * | +| (OSSL_CMP_REVREPCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_REVREPCONTENT | 0 | OSSL_CMP_REVREPCONTENT ** | +| (OSSL_CMP_REVREPCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_REVREPCONTENT | 1 | const unsigned char ** | +| (OSSL_CMP_REVREPCONTENT **,const unsigned char **,long) | | d2i_OSSL_CMP_REVREPCONTENT | 2 | long | +| (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 0 | OSSL_CMP_REVREPCONTENT * | +| (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_CertId | 1 | int | +| (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 0 | OSSL_CMP_REVREPCONTENT * | +| (OSSL_CMP_REVREPCONTENT *,int) | | ossl_cmp_revrepcontent_get_pkisi | 1 | int | +| (OSSL_CMP_ROOTCAKEYUPDATE *) | | OSSL_CMP_ROOTCAKEYUPDATE_free | 0 | OSSL_CMP_ROOTCAKEYUPDATE * | +| (OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long) | | d2i_OSSL_CMP_ROOTCAKEYUPDATE | 0 | OSSL_CMP_ROOTCAKEYUPDATE ** | +| (OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long) | | d2i_OSSL_CMP_ROOTCAKEYUPDATE | 1 | const unsigned char ** | +| (OSSL_CMP_ROOTCAKEYUPDATE **,const unsigned char **,long) | | d2i_OSSL_CMP_ROOTCAKEYUPDATE | 2 | long | +| (OSSL_CMP_SRV_CTX *,OSSL_CMP_SRV_delayed_delivery_cb_t,OSSL_CMP_SRV_clean_transaction_cb_t) | | OSSL_CMP_SRV_CTX_init_trans | 0 | OSSL_CMP_SRV_CTX * | +| (OSSL_CMP_SRV_CTX *,OSSL_CMP_SRV_delayed_delivery_cb_t,OSSL_CMP_SRV_clean_transaction_cb_t) | | OSSL_CMP_SRV_CTX_init_trans | 1 | OSSL_CMP_SRV_delayed_delivery_cb_t | +| (OSSL_CMP_SRV_CTX *,OSSL_CMP_SRV_delayed_delivery_cb_t,OSSL_CMP_SRV_clean_transaction_cb_t) | | OSSL_CMP_SRV_CTX_init_trans | 2 | OSSL_CMP_SRV_clean_transaction_cb_t | +| (OSSL_CMP_SRV_CTX *,const OSSL_CMP_MSG *) | | OSSL_CMP_SRV_process_request | 0 | OSSL_CMP_SRV_CTX * | +| (OSSL_CMP_SRV_CTX *,const OSSL_CMP_MSG *) | | OSSL_CMP_SRV_process_request | 1 | const OSSL_CMP_MSG * | +| (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 0 | OSSL_CMP_SRV_CTX * | +| (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_raverified | 1 | int | +| (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 0 | OSSL_CMP_SRV_CTX * | +| (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_accept_unprotected | 1 | int | +| (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 0 | OSSL_CMP_SRV_CTX * | +| (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_grant_implicit_confirm | 1 | int | +| (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 0 | OSSL_CMP_SRV_CTX * | +| (OSSL_CMP_SRV_CTX *,int) | | OSSL_CMP_SRV_CTX_set_send_unprotected_errors | 1 | int | +| (OSSL_CMP_SRV_CTX *,stack_st_X509 *) | | ossl_cmp_mock_srv_set1_caPubsOut | 0 | OSSL_CMP_SRV_CTX * | +| (OSSL_CMP_SRV_CTX *,stack_st_X509 *) | | ossl_cmp_mock_srv_set1_caPubsOut | 1 | stack_st_X509 * | +| (OSSL_CMP_SRV_CTX *,stack_st_X509 *) | | ossl_cmp_mock_srv_set1_chainOut | 0 | OSSL_CMP_SRV_CTX * | +| (OSSL_CMP_SRV_CTX *,stack_st_X509 *) | | ossl_cmp_mock_srv_set1_chainOut | 1 | stack_st_X509 * | +| (OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t) | | OSSL_CMP_SRV_CTX_init | 0 | OSSL_CMP_SRV_CTX * | +| (OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t) | | OSSL_CMP_SRV_CTX_init | 1 | void * | +| (OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t) | | OSSL_CMP_SRV_CTX_init | 2 | OSSL_CMP_SRV_cert_request_cb_t | +| (OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t) | | OSSL_CMP_SRV_CTX_init | 3 | OSSL_CMP_SRV_rr_cb_t | +| (OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t) | | OSSL_CMP_SRV_CTX_init | 4 | OSSL_CMP_SRV_genm_cb_t | +| (OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t) | | OSSL_CMP_SRV_CTX_init | 5 | OSSL_CMP_SRV_error_cb_t | +| (OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t) | | OSSL_CMP_SRV_CTX_init | 6 | OSSL_CMP_SRV_certConf_cb_t | +| (OSSL_CMP_SRV_CTX *,void *,OSSL_CMP_SRV_cert_request_cb_t,OSSL_CMP_SRV_rr_cb_t,OSSL_CMP_SRV_genm_cb_t,OSSL_CMP_SRV_error_cb_t,OSSL_CMP_SRV_certConf_cb_t,OSSL_CMP_SRV_pollReq_cb_t) | | OSSL_CMP_SRV_CTX_init | 7 | OSSL_CMP_SRV_pollReq_cb_t | +| (OSSL_CORE_BIO *,const char *,va_list) | | ossl_core_bio_vprintf | 0 | OSSL_CORE_BIO * | +| (OSSL_CORE_BIO *,const char *,va_list) | | ossl_core_bio_vprintf | 1 | const char * | +| (OSSL_CORE_BIO *,const char *,va_list) | | ossl_core_bio_vprintf | 2 | va_list | +| (OSSL_CORE_BIO *,void *,size_t,size_t *) | | ossl_core_bio_read_ex | 0 | OSSL_CORE_BIO * | +| (OSSL_CORE_BIO *,void *,size_t,size_t *) | | ossl_core_bio_read_ex | 1 | void * | +| (OSSL_CORE_BIO *,void *,size_t,size_t *) | | ossl_core_bio_read_ex | 2 | size_t | +| (OSSL_CORE_BIO *,void *,size_t,size_t *) | | ossl_core_bio_read_ex | 3 | size_t * | +| (OSSL_CRMF_ATTRIBUTETYPEANDVALUE *) | | OSSL_CRMF_ATTRIBUTETYPEANDVALUE_free | 0 | OSSL_CRMF_ATTRIBUTETYPEANDVALUE * | +| (OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long) | | d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE | 0 | OSSL_CRMF_ATTRIBUTETYPEANDVALUE ** | +| (OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long) | | d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE | 1 | const unsigned char ** | +| (OSSL_CRMF_ATTRIBUTETYPEANDVALUE **,const unsigned char **,long) | | d2i_OSSL_CRMF_ATTRIBUTETYPEANDVALUE | 2 | long | +| (OSSL_CRMF_CERTID *) | | OSSL_CRMF_CERTID_free | 0 | OSSL_CRMF_CERTID * | +| (OSSL_CRMF_CERTID **,const unsigned char **,long) | | d2i_OSSL_CRMF_CERTID | 0 | OSSL_CRMF_CERTID ** | +| (OSSL_CRMF_CERTID **,const unsigned char **,long) | | d2i_OSSL_CRMF_CERTID | 1 | const unsigned char ** | +| (OSSL_CRMF_CERTID **,const unsigned char **,long) | | d2i_OSSL_CRMF_CERTID | 2 | long | +| (OSSL_CRMF_CERTREQUEST *) | | OSSL_CRMF_CERTREQUEST_free | 0 | OSSL_CRMF_CERTREQUEST * | +| (OSSL_CRMF_CERTREQUEST **,const unsigned char **,long) | | d2i_OSSL_CRMF_CERTREQUEST | 0 | OSSL_CRMF_CERTREQUEST ** | +| (OSSL_CRMF_CERTREQUEST **,const unsigned char **,long) | | d2i_OSSL_CRMF_CERTREQUEST | 1 | const unsigned char ** | +| (OSSL_CRMF_CERTREQUEST **,const unsigned char **,long) | | d2i_OSSL_CRMF_CERTREQUEST | 2 | long | +| (OSSL_CRMF_CERTTEMPLATE *) | | OSSL_CRMF_CERTTEMPLATE_free | 0 | OSSL_CRMF_CERTTEMPLATE * | +| (OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long) | | d2i_OSSL_CRMF_CERTTEMPLATE | 0 | OSSL_CRMF_CERTTEMPLATE ** | +| (OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long) | | d2i_OSSL_CRMF_CERTTEMPLATE | 1 | const unsigned char ** | +| (OSSL_CRMF_CERTTEMPLATE **,const unsigned char **,long) | | d2i_OSSL_CRMF_CERTTEMPLATE | 2 | long | +| (OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *) | | OSSL_CRMF_CERTTEMPLATE_fill | 0 | OSSL_CRMF_CERTTEMPLATE * | +| (OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *) | | OSSL_CRMF_CERTTEMPLATE_fill | 1 | EVP_PKEY * | +| (OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *) | | OSSL_CRMF_CERTTEMPLATE_fill | 2 | const X509_NAME * | +| (OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *) | | OSSL_CRMF_CERTTEMPLATE_fill | 3 | const X509_NAME * | +| (OSSL_CRMF_CERTTEMPLATE *,EVP_PKEY *,const X509_NAME *,const X509_NAME *,const ASN1_INTEGER *) | | OSSL_CRMF_CERTTEMPLATE_fill | 4 | const ASN1_INTEGER * | +| (OSSL_CRMF_ENCKEYWITHID *) | | OSSL_CRMF_ENCKEYWITHID_free | 0 | OSSL_CRMF_ENCKEYWITHID * | +| (OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCKEYWITHID | 0 | OSSL_CRMF_ENCKEYWITHID ** | +| (OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCKEYWITHID | 1 | const unsigned char ** | +| (OSSL_CRMF_ENCKEYWITHID **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCKEYWITHID | 2 | long | +| (OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *) | | OSSL_CRMF_ENCKEYWITHID_IDENTIFIER_free | 0 | OSSL_CRMF_ENCKEYWITHID_IDENTIFIER * | +| (OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER | 0 | OSSL_CRMF_ENCKEYWITHID_IDENTIFIER ** | +| (OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER | 1 | const unsigned char ** | +| (OSSL_CRMF_ENCKEYWITHID_IDENTIFIER **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER | 2 | long | +| (OSSL_CRMF_ENCRYPTEDKEY *) | | OSSL_CRMF_ENCRYPTEDKEY_free | 0 | OSSL_CRMF_ENCRYPTEDKEY * | +| (OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCRYPTEDKEY | 0 | OSSL_CRMF_ENCRYPTEDKEY ** | +| (OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCRYPTEDKEY | 1 | const unsigned char ** | +| (OSSL_CRMF_ENCRYPTEDKEY **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCRYPTEDKEY | 2 | long | +| (OSSL_CRMF_ENCRYPTEDVALUE *) | | OSSL_CRMF_ENCRYPTEDVALUE_free | 0 | OSSL_CRMF_ENCRYPTEDVALUE * | +| (OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCRYPTEDVALUE | 0 | OSSL_CRMF_ENCRYPTEDVALUE ** | +| (OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCRYPTEDVALUE | 1 | const unsigned char ** | +| (OSSL_CRMF_ENCRYPTEDVALUE **,const unsigned char **,long) | | d2i_OSSL_CRMF_ENCRYPTEDVALUE | 2 | long | +| (OSSL_CRMF_MSG *) | | OSSL_CRMF_MSG_free | 0 | OSSL_CRMF_MSG * | +| (OSSL_CRMF_MSG **,const unsigned char **,long) | | d2i_OSSL_CRMF_MSG | 0 | OSSL_CRMF_MSG ** | +| (OSSL_CRMF_MSG **,const unsigned char **,long) | | d2i_OSSL_CRMF_MSG | 1 | const unsigned char ** | +| (OSSL_CRMF_MSG **,const unsigned char **,long) | | d2i_OSSL_CRMF_MSG | 2 | long | +| (OSSL_CRMF_MSG *,const OSSL_CRMF_CERTID *) | | OSSL_CRMF_MSG_set1_regCtrl_oldCertID | 0 | OSSL_CRMF_MSG * | +| (OSSL_CRMF_MSG *,const OSSL_CRMF_CERTID *) | | OSSL_CRMF_MSG_set1_regCtrl_oldCertID | 1 | const OSSL_CRMF_CERTID * | +| (OSSL_CRMF_MSG *,const OSSL_CRMF_CERTREQUEST *) | | OSSL_CRMF_MSG_set1_regInfo_certReq | 0 | OSSL_CRMF_MSG * | +| (OSSL_CRMF_MSG *,const OSSL_CRMF_CERTREQUEST *) | | OSSL_CRMF_MSG_set1_regInfo_certReq | 1 | const OSSL_CRMF_CERTREQUEST * | +| (OSSL_CRMF_MSG *,const OSSL_CRMF_PKIPUBLICATIONINFO *) | | OSSL_CRMF_MSG_set1_regCtrl_pkiPublicationInfo | 0 | OSSL_CRMF_MSG * | +| (OSSL_CRMF_MSG *,const OSSL_CRMF_PKIPUBLICATIONINFO *) | | OSSL_CRMF_MSG_set1_regCtrl_pkiPublicationInfo | 1 | const OSSL_CRMF_PKIPUBLICATIONINFO * | +| (OSSL_CRMF_MSGS *) | | OSSL_CRMF_MSGS_free | 0 | OSSL_CRMF_MSGS * | +| (OSSL_CRMF_MSGS **,const unsigned char **,long) | | d2i_OSSL_CRMF_MSGS | 0 | OSSL_CRMF_MSGS ** | +| (OSSL_CRMF_MSGS **,const unsigned char **,long) | | d2i_OSSL_CRMF_MSGS | 1 | const unsigned char ** | +| (OSSL_CRMF_MSGS **,const unsigned char **,long) | | d2i_OSSL_CRMF_MSGS | 2 | long | +| (OSSL_CRMF_OPTIONALVALIDITY *) | | OSSL_CRMF_OPTIONALVALIDITY_free | 0 | OSSL_CRMF_OPTIONALVALIDITY * | +| (OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long) | | d2i_OSSL_CRMF_OPTIONALVALIDITY | 0 | OSSL_CRMF_OPTIONALVALIDITY ** | +| (OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long) | | d2i_OSSL_CRMF_OPTIONALVALIDITY | 1 | const unsigned char ** | +| (OSSL_CRMF_OPTIONALVALIDITY **,const unsigned char **,long) | | d2i_OSSL_CRMF_OPTIONALVALIDITY | 2 | long | +| (OSSL_CRMF_PBMPARAMETER *) | | OSSL_CRMF_PBMPARAMETER_free | 0 | OSSL_CRMF_PBMPARAMETER * | +| (OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long) | | d2i_OSSL_CRMF_PBMPARAMETER | 0 | OSSL_CRMF_PBMPARAMETER ** | +| (OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long) | | d2i_OSSL_CRMF_PBMPARAMETER | 1 | const unsigned char ** | +| (OSSL_CRMF_PBMPARAMETER **,const unsigned char **,long) | | d2i_OSSL_CRMF_PBMPARAMETER | 2 | long | +| (OSSL_CRMF_PKIPUBLICATIONINFO *) | | OSSL_CRMF_PKIPUBLICATIONINFO_free | 0 | OSSL_CRMF_PKIPUBLICATIONINFO * | +| (OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_PKIPUBLICATIONINFO | 0 | OSSL_CRMF_PKIPUBLICATIONINFO ** | +| (OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_PKIPUBLICATIONINFO | 1 | const unsigned char ** | +| (OSSL_CRMF_PKIPUBLICATIONINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_PKIPUBLICATIONINFO | 2 | long | +| (OSSL_CRMF_PKIPUBLICATIONINFO *,OSSL_CRMF_SINGLEPUBINFO *) | | OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo | 0 | OSSL_CRMF_PKIPUBLICATIONINFO * | +| (OSSL_CRMF_PKIPUBLICATIONINFO *,OSSL_CRMF_SINGLEPUBINFO *) | | OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo | 1 | OSSL_CRMF_SINGLEPUBINFO * | +| (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 0 | OSSL_CRMF_PKIPUBLICATIONINFO * | +| (OSSL_CRMF_PKIPUBLICATIONINFO *,int) | | OSSL_CRMF_MSG_set_PKIPublicationInfo_action | 1 | int | +| (OSSL_CRMF_PKMACVALUE *) | | OSSL_CRMF_PKMACVALUE_free | 0 | OSSL_CRMF_PKMACVALUE * | +| (OSSL_CRMF_PKMACVALUE **,const unsigned char **,long) | | d2i_OSSL_CRMF_PKMACVALUE | 0 | OSSL_CRMF_PKMACVALUE ** | +| (OSSL_CRMF_PKMACVALUE **,const unsigned char **,long) | | d2i_OSSL_CRMF_PKMACVALUE | 1 | const unsigned char ** | +| (OSSL_CRMF_PKMACVALUE **,const unsigned char **,long) | | d2i_OSSL_CRMF_PKMACVALUE | 2 | long | +| (OSSL_CRMF_POPO *) | | OSSL_CRMF_POPO_free | 0 | OSSL_CRMF_POPO * | +| (OSSL_CRMF_POPO **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPO | 0 | OSSL_CRMF_POPO ** | +| (OSSL_CRMF_POPO **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPO | 1 | const unsigned char ** | +| (OSSL_CRMF_POPO **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPO | 2 | long | +| (OSSL_CRMF_POPOPRIVKEY *) | | OSSL_CRMF_POPOPRIVKEY_free | 0 | OSSL_CRMF_POPOPRIVKEY * | +| (OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOPRIVKEY | 0 | OSSL_CRMF_POPOPRIVKEY ** | +| (OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOPRIVKEY | 1 | const unsigned char ** | +| (OSSL_CRMF_POPOPRIVKEY **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOPRIVKEY | 2 | long | +| (OSSL_CRMF_POPOSIGNINGKEY *) | | OSSL_CRMF_POPOSIGNINGKEY_free | 0 | OSSL_CRMF_POPOSIGNINGKEY * | +| (OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOSIGNINGKEY | 0 | OSSL_CRMF_POPOSIGNINGKEY ** | +| (OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOSIGNINGKEY | 1 | const unsigned char ** | +| (OSSL_CRMF_POPOSIGNINGKEY **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOSIGNINGKEY | 2 | long | +| (OSSL_CRMF_POPOSIGNINGKEYINPUT *) | | OSSL_CRMF_POPOSIGNINGKEYINPUT_free | 0 | OSSL_CRMF_POPOSIGNINGKEYINPUT * | +| (OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT | 0 | OSSL_CRMF_POPOSIGNINGKEYINPUT ** | +| (OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT | 1 | const unsigned char ** | +| (OSSL_CRMF_POPOSIGNINGKEYINPUT **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT | 2 | long | +| (OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *) | | OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO_free | 0 | OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO * | +| (OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO | 0 | OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO ** | +| (OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO | 1 | const unsigned char ** | +| (OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO | 2 | long | +| (OSSL_CRMF_PRIVATEKEYINFO *) | | OSSL_CRMF_PRIVATEKEYINFO_free | 0 | OSSL_CRMF_PRIVATEKEYINFO * | +| (OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_PRIVATEKEYINFO | 0 | OSSL_CRMF_PRIVATEKEYINFO ** | +| (OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_PRIVATEKEYINFO | 1 | const unsigned char ** | +| (OSSL_CRMF_PRIVATEKEYINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_PRIVATEKEYINFO | 2 | long | +| (OSSL_CRMF_SINGLEPUBINFO *) | | OSSL_CRMF_SINGLEPUBINFO_free | 0 | OSSL_CRMF_SINGLEPUBINFO * | +| (OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_SINGLEPUBINFO | 0 | OSSL_CRMF_SINGLEPUBINFO ** | +| (OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_SINGLEPUBINFO | 1 | const unsigned char ** | +| (OSSL_CRMF_SINGLEPUBINFO **,const unsigned char **,long) | | d2i_OSSL_CRMF_SINGLEPUBINFO | 2 | long | +| (OSSL_CRMF_SINGLEPUBINFO *,int,GENERAL_NAME *) | | OSSL_CRMF_MSG_set0_SinglePubInfo | 0 | OSSL_CRMF_SINGLEPUBINFO * | +| (OSSL_CRMF_SINGLEPUBINFO *,int,GENERAL_NAME *) | | OSSL_CRMF_MSG_set0_SinglePubInfo | 1 | int | +| (OSSL_CRMF_SINGLEPUBINFO *,int,GENERAL_NAME *) | | OSSL_CRMF_MSG_set0_SinglePubInfo | 2 | GENERAL_NAME * | +| (OSSL_DAY_TIME *) | | OSSL_DAY_TIME_free | 0 | OSSL_DAY_TIME * | +| (OSSL_DAY_TIME **,const unsigned char **,long) | | d2i_OSSL_DAY_TIME | 0 | OSSL_DAY_TIME ** | +| (OSSL_DAY_TIME **,const unsigned char **,long) | | d2i_OSSL_DAY_TIME | 1 | const unsigned char ** | +| (OSSL_DAY_TIME **,const unsigned char **,long) | | d2i_OSSL_DAY_TIME | 2 | long | +| (OSSL_DAY_TIME_BAND *) | | OSSL_DAY_TIME_BAND_free | 0 | OSSL_DAY_TIME_BAND * | +| (OSSL_DAY_TIME_BAND **,const unsigned char **,long) | | d2i_OSSL_DAY_TIME_BAND | 0 | OSSL_DAY_TIME_BAND ** | +| (OSSL_DAY_TIME_BAND **,const unsigned char **,long) | | d2i_OSSL_DAY_TIME_BAND | 1 | const unsigned char ** | +| (OSSL_DAY_TIME_BAND **,const unsigned char **,long) | | d2i_OSSL_DAY_TIME_BAND | 2 | long | +| (OSSL_DECODER *,const char *,int *) | | ossl_decoder_fast_is_a | 0 | OSSL_DECODER * | +| (OSSL_DECODER *,const char *,int *) | | ossl_decoder_fast_is_a | 1 | const char * | +| (OSSL_DECODER *,const char *,int *) | | ossl_decoder_fast_is_a | 2 | int * | +| (OSSL_DECODER *,void *) | | ossl_decoder_instance_new | 0 | OSSL_DECODER * | +| (OSSL_DECODER *,void *) | | ossl_decoder_instance_new | 1 | void * | +| (OSSL_DECODER *,void *,const char *) | | ossl_decoder_instance_new_forprov | 0 | OSSL_DECODER * | +| (OSSL_DECODER *,void *,const char *) | | ossl_decoder_instance_new_forprov | 1 | void * | +| (OSSL_DECODER *,void *,const char *) | | ossl_decoder_instance_new_forprov | 2 | const char * | +| (OSSL_DECODER_CTX *) | | OSSL_DECODER_CTX_get_cleanup | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *) | | OSSL_DECODER_CTX_get_construct | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *) | | OSSL_DECODER_CTX_get_construct_data | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *) | | OSSL_DECODER_CTX_get_num_decoders | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *,BIO *) | | OSSL_DECODER_from_bio | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *,BIO *) | | OSSL_DECODER_from_bio | 1 | BIO * | +| (OSSL_DECODER_CTX *,OSSL_DECODER_CLEANUP *) | | OSSL_DECODER_CTX_set_cleanup | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *,OSSL_DECODER_CLEANUP *) | | OSSL_DECODER_CTX_set_cleanup | 1 | OSSL_DECODER_CLEANUP * | +| (OSSL_DECODER_CTX *,OSSL_DECODER_CONSTRUCT *) | | OSSL_DECODER_CTX_set_construct | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *,OSSL_DECODER_CONSTRUCT *) | | OSSL_DECODER_CTX_set_construct | 1 | OSSL_DECODER_CONSTRUCT * | +| (OSSL_DECODER_CTX *,OSSL_DECODER_INSTANCE *) | | ossl_decoder_ctx_add_decoder_inst | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *,OSSL_DECODER_INSTANCE *) | | ossl_decoder_ctx_add_decoder_inst | 1 | OSSL_DECODER_INSTANCE * | +| (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_structure | 1 | const char * | +| (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *,const char *) | | OSSL_DECODER_CTX_set_input_type | 1 | const char * | +| (OSSL_DECODER_CTX *,const unsigned char **,size_t *) | | OSSL_DECODER_from_data | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *,const unsigned char **,size_t *) | | OSSL_DECODER_from_data | 1 | const unsigned char ** | +| (OSSL_DECODER_CTX *,const unsigned char **,size_t *) | | OSSL_DECODER_from_data | 2 | size_t * | +| (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *,int) | | OSSL_DECODER_CTX_set_selection | 1 | int | +| (OSSL_DECODER_CTX *,void *) | | OSSL_DECODER_CTX_set_construct_data | 0 | OSSL_DECODER_CTX * | +| (OSSL_DECODER_CTX *,void *) | | OSSL_DECODER_CTX_set_construct_data | 1 | void * | +| (OSSL_DECODER_INSTANCE *) | | OSSL_DECODER_INSTANCE_get_decoder | 0 | OSSL_DECODER_INSTANCE * | +| (OSSL_DECODER_INSTANCE *) | | OSSL_DECODER_INSTANCE_get_decoder_ctx | 0 | OSSL_DECODER_INSTANCE * | +| (OSSL_DECODER_INSTANCE *) | | OSSL_DECODER_INSTANCE_get_input_type | 0 | OSSL_DECODER_INSTANCE * | +| (OSSL_DECODER_INSTANCE *,int *) | | OSSL_DECODER_INSTANCE_get_input_structure | 0 | OSSL_DECODER_INSTANCE * | +| (OSSL_DECODER_INSTANCE *,int *) | | OSSL_DECODER_INSTANCE_get_input_structure | 1 | int * | +| (OSSL_ENCODER_CTX *) | | OSSL_ENCODER_CTX_get_num_encoders | 0 | OSSL_ENCODER_CTX * | +| (OSSL_ENCODER_CTX *,OSSL_ENCODER_CLEANUP *) | | OSSL_ENCODER_CTX_set_cleanup | 0 | OSSL_ENCODER_CTX * | +| (OSSL_ENCODER_CTX *,OSSL_ENCODER_CLEANUP *) | | OSSL_ENCODER_CTX_set_cleanup | 1 | OSSL_ENCODER_CLEANUP * | +| (OSSL_ENCODER_CTX *,OSSL_ENCODER_CONSTRUCT *) | | OSSL_ENCODER_CTX_set_construct | 0 | OSSL_ENCODER_CTX * | +| (OSSL_ENCODER_CTX *,OSSL_ENCODER_CONSTRUCT *) | | OSSL_ENCODER_CTX_set_construct | 1 | OSSL_ENCODER_CONSTRUCT * | +| (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 0 | OSSL_ENCODER_CTX * | +| (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_structure | 1 | const char * | +| (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 0 | OSSL_ENCODER_CTX * | +| (OSSL_ENCODER_CTX *,const char *) | | OSSL_ENCODER_CTX_set_output_type | 1 | const char * | +| (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 0 | OSSL_ENCODER_CTX * | +| (OSSL_ENCODER_CTX *,int) | | OSSL_ENCODER_CTX_set_selection | 1 | int | +| (OSSL_ENCODER_CTX *,unsigned char **,size_t *) | | OSSL_ENCODER_to_data | 0 | OSSL_ENCODER_CTX * | +| (OSSL_ENCODER_CTX *,unsigned char **,size_t *) | | OSSL_ENCODER_to_data | 1 | unsigned char ** | +| (OSSL_ENCODER_CTX *,unsigned char **,size_t *) | | OSSL_ENCODER_to_data | 2 | size_t * | +| (OSSL_ENCODER_CTX *,void *) | | OSSL_ENCODER_CTX_set_construct_data | 0 | OSSL_ENCODER_CTX * | +| (OSSL_ENCODER_CTX *,void *) | | OSSL_ENCODER_CTX_set_construct_data | 1 | void * | +| (OSSL_ENCODER_INSTANCE *) | | OSSL_ENCODER_INSTANCE_get_encoder | 0 | OSSL_ENCODER_INSTANCE * | +| (OSSL_ENCODER_INSTANCE *) | | OSSL_ENCODER_INSTANCE_get_encoder_ctx | 0 | OSSL_ENCODER_INSTANCE * | +| (OSSL_ENCODER_INSTANCE *) | | OSSL_ENCODER_INSTANCE_get_output_structure | 0 | OSSL_ENCODER_INSTANCE * | +| (OSSL_ENCODER_INSTANCE *) | | OSSL_ENCODER_INSTANCE_get_output_type | 0 | OSSL_ENCODER_INSTANCE * | +| (OSSL_HASH *) | | OSSL_HASH_free | 0 | OSSL_HASH * | +| (OSSL_HASH **,const unsigned char **,long) | | d2i_OSSL_HASH | 0 | OSSL_HASH ** | +| (OSSL_HASH **,const unsigned char **,long) | | d2i_OSSL_HASH | 1 | const unsigned char ** | +| (OSSL_HASH **,const unsigned char **,long) | | d2i_OSSL_HASH | 2 | long | +| (OSSL_HPKE_CTX *,EVP_PKEY *) | | OSSL_HPKE_CTX_set1_authpriv | 0 | OSSL_HPKE_CTX * | +| (OSSL_HPKE_CTX *,EVP_PKEY *) | | OSSL_HPKE_CTX_set1_authpriv | 1 | EVP_PKEY * | +| (OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_psk | 0 | OSSL_HPKE_CTX * | +| (OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_psk | 1 | const char * | +| (OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_psk | 2 | const unsigned char * | +| (OSSL_HPKE_CTX *,const char *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_psk | 3 | size_t | +| (OSSL_HPKE_CTX *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_ikme | 0 | OSSL_HPKE_CTX * | +| (OSSL_HPKE_CTX *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_ikme | 1 | const unsigned char * | +| (OSSL_HPKE_CTX *,const unsigned char *,size_t) | | OSSL_HPKE_CTX_set1_ikme | 2 | size_t | +| (OSSL_HPKE_CTX *,uint64_t *) | | OSSL_HPKE_CTX_get_seq | 0 | OSSL_HPKE_CTX * | +| (OSSL_HPKE_CTX *,uint64_t *) | | OSSL_HPKE_CTX_get_seq | 1 | uint64_t * | +| (OSSL_HPKE_CTX *,uint64_t) | | OSSL_HPKE_CTX_set_seq | 0 | OSSL_HPKE_CTX * | +| (OSSL_HPKE_CTX *,uint64_t) | | OSSL_HPKE_CTX_set_seq | 1 | uint64_t | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_encap | 0 | OSSL_HPKE_CTX * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_encap | 1 | unsigned char * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_encap | 2 | size_t * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_encap | 3 | const unsigned char * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_encap | 4 | size_t | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_encap | 5 | const unsigned char * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_encap | 6 | size_t | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_open | 0 | OSSL_HPKE_CTX * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_open | 1 | unsigned char * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_open | 2 | size_t * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_open | 3 | const unsigned char * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_open | 4 | size_t | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_open | 5 | const unsigned char * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_open | 6 | size_t | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_seal | 0 | OSSL_HPKE_CTX * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_seal | 1 | unsigned char * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_seal | 2 | size_t * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_seal | 3 | const unsigned char * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_seal | 4 | size_t | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_seal | 5 | const unsigned char * | +| (OSSL_HPKE_CTX *,unsigned char *,size_t *,const unsigned char *,size_t,const unsigned char *,size_t) | | OSSL_HPKE_seal | 6 | size_t | +| (OSSL_HPKE_SUITE,size_t) | | OSSL_HPKE_get_ciphertext_size | 0 | OSSL_HPKE_SUITE | +| (OSSL_HPKE_SUITE,size_t) | | OSSL_HPKE_get_ciphertext_size | 1 | size_t | +| (OSSL_HPKE_SUITE,unsigned char *,size_t *,EVP_PKEY **,const unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_keygen | 0 | OSSL_HPKE_SUITE | +| (OSSL_HPKE_SUITE,unsigned char *,size_t *,EVP_PKEY **,const unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_keygen | 1 | unsigned char * | +| (OSSL_HPKE_SUITE,unsigned char *,size_t *,EVP_PKEY **,const unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_keygen | 2 | size_t * | +| (OSSL_HPKE_SUITE,unsigned char *,size_t *,EVP_PKEY **,const unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_keygen | 3 | EVP_PKEY ** | +| (OSSL_HPKE_SUITE,unsigned char *,size_t *,EVP_PKEY **,const unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_keygen | 4 | const unsigned char * | +| (OSSL_HPKE_SUITE,unsigned char *,size_t *,EVP_PKEY **,const unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_keygen | 5 | size_t | +| (OSSL_HPKE_SUITE,unsigned char *,size_t *,EVP_PKEY **,const unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_keygen | 6 | OSSL_LIB_CTX * | +| (OSSL_HPKE_SUITE,unsigned char *,size_t *,EVP_PKEY **,const unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_keygen | 7 | const char * | +| (OSSL_HTTP_REQ_CTX *) | | OSSL_HTTP_REQ_CTX_exchange | 0 | OSSL_HTTP_REQ_CTX * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 0 | OSSL_HTTP_REQ_CTX ** | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 1 | const char * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 2 | const char * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 3 | const char * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 4 | int | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 5 | const char * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 6 | const char * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 7 | BIO * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 8 | BIO * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 9 | OSSL_HTTP_bio_cb_t | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 10 | void * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 11 | int | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 12 | const stack_st_CONF_VALUE * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 13 | const char * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 14 | BIO * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 15 | const char * | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 16 | int | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 17 | size_t | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 18 | int | +| (OSSL_HTTP_REQ_CTX **,const char *,const char *,const char *,int,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_transfer | 19 | int | +| (OSSL_HTTP_REQ_CTX *,ASN1_VALUE **,const ASN1_ITEM *) | | OSSL_HTTP_REQ_CTX_nbio_d2i | 0 | OSSL_HTTP_REQ_CTX * | +| (OSSL_HTTP_REQ_CTX *,ASN1_VALUE **,const ASN1_ITEM *) | | OSSL_HTTP_REQ_CTX_nbio_d2i | 1 | ASN1_VALUE ** | +| (OSSL_HTTP_REQ_CTX *,ASN1_VALUE **,const ASN1_ITEM *) | | OSSL_HTTP_REQ_CTX_nbio_d2i | 2 | const ASN1_ITEM * | +| (OSSL_HTTP_REQ_CTX *,char **) | | OSSL_HTTP_exchange | 0 | OSSL_HTTP_REQ_CTX * | +| (OSSL_HTTP_REQ_CTX *,char **) | | OSSL_HTTP_exchange | 1 | char ** | +| (OSSL_HTTP_REQ_CTX *,const char *,const ASN1_ITEM *,const ASN1_VALUE *) | | OSSL_HTTP_REQ_CTX_set1_req | 0 | OSSL_HTTP_REQ_CTX * | +| (OSSL_HTTP_REQ_CTX *,const char *,const ASN1_ITEM *,const ASN1_VALUE *) | | OSSL_HTTP_REQ_CTX_set1_req | 1 | const char * | +| (OSSL_HTTP_REQ_CTX *,const char *,const ASN1_ITEM *,const ASN1_VALUE *) | | OSSL_HTTP_REQ_CTX_set1_req | 2 | const ASN1_ITEM * | +| (OSSL_HTTP_REQ_CTX *,const char *,const ASN1_ITEM *,const ASN1_VALUE *) | | OSSL_HTTP_REQ_CTX_set1_req | 3 | const ASN1_VALUE * | +| (OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_set1_request | 0 | OSSL_HTTP_REQ_CTX * | +| (OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_set1_request | 1 | const char * | +| (OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_set1_request | 2 | const stack_st_CONF_VALUE * | +| (OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_set1_request | 3 | const char * | +| (OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_set1_request | 4 | BIO * | +| (OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_set1_request | 5 | const char * | +| (OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_set1_request | 6 | int | +| (OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_set1_request | 7 | size_t | +| (OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_set1_request | 8 | int | +| (OSSL_HTTP_REQ_CTX *,const char *,const stack_st_CONF_VALUE *,const char *,BIO *,const char *,int,size_t,int,int) | | OSSL_HTTP_set1_request | 9 | int | +| (OSSL_HTTP_REQ_CTX *,const char *,int,int,int) | | OSSL_HTTP_REQ_CTX_set_expected | 0 | OSSL_HTTP_REQ_CTX * | +| (OSSL_HTTP_REQ_CTX *,const char *,int,int,int) | | OSSL_HTTP_REQ_CTX_set_expected | 1 | const char * | +| (OSSL_HTTP_REQ_CTX *,const char *,int,int,int) | | OSSL_HTTP_REQ_CTX_set_expected | 2 | int | +| (OSSL_HTTP_REQ_CTX *,const char *,int,int,int) | | OSSL_HTTP_REQ_CTX_set_expected | 3 | int | +| (OSSL_HTTP_REQ_CTX *,const char *,int,int,int) | | OSSL_HTTP_REQ_CTX_set_expected | 4 | int | +| (OSSL_HTTP_REQ_CTX *,int,const char *,const char *,const char *) | | OSSL_HTTP_REQ_CTX_set_request_line | 0 | OSSL_HTTP_REQ_CTX * | +| (OSSL_HTTP_REQ_CTX *,int,const char *,const char *,const char *) | | OSSL_HTTP_REQ_CTX_set_request_line | 1 | int | +| (OSSL_HTTP_REQ_CTX *,int,const char *,const char *,const char *) | | OSSL_HTTP_REQ_CTX_set_request_line | 2 | const char * | +| (OSSL_HTTP_REQ_CTX *,int,const char *,const char *,const char *) | | OSSL_HTTP_REQ_CTX_set_request_line | 3 | const char * | +| (OSSL_HTTP_REQ_CTX *,int,const char *,const char *,const char *) | | OSSL_HTTP_REQ_CTX_set_request_line | 4 | const char * | +| (OSSL_HTTP_REQ_CTX *,size_t) | | OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines | 0 | OSSL_HTTP_REQ_CTX * | +| (OSSL_HTTP_REQ_CTX *,size_t) | | OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines | 1 | size_t | +| (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 0 | OSSL_HTTP_REQ_CTX * | +| (OSSL_HTTP_REQ_CTX *,unsigned long) | | OSSL_HTTP_REQ_CTX_set_max_response_length | 1 | unsigned long | +| (OSSL_IETF_ATTR_SYNTAX *) | | OSSL_IETF_ATTR_SYNTAX_free | 0 | OSSL_IETF_ATTR_SYNTAX * | +| (OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_IETF_ATTR_SYNTAX | 0 | OSSL_IETF_ATTR_SYNTAX ** | +| (OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_IETF_ATTR_SYNTAX | 1 | const unsigned char ** | +| (OSSL_IETF_ATTR_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_IETF_ATTR_SYNTAX | 2 | long | +| (OSSL_IETF_ATTR_SYNTAX *,GENERAL_NAMES *) | | OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority | 0 | OSSL_IETF_ATTR_SYNTAX * | +| (OSSL_IETF_ATTR_SYNTAX *,GENERAL_NAMES *) | | OSSL_IETF_ATTR_SYNTAX_set0_policyAuthority | 1 | GENERAL_NAMES * | +| (OSSL_IETF_ATTR_SYNTAX *,int,void *) | | OSSL_IETF_ATTR_SYNTAX_add1_value | 0 | OSSL_IETF_ATTR_SYNTAX * | +| (OSSL_IETF_ATTR_SYNTAX *,int,void *) | | OSSL_IETF_ATTR_SYNTAX_add1_value | 1 | int | +| (OSSL_IETF_ATTR_SYNTAX *,int,void *) | | OSSL_IETF_ATTR_SYNTAX_add1_value | 2 | void * | +| (OSSL_IETF_ATTR_SYNTAX_VALUE *) | | OSSL_IETF_ATTR_SYNTAX_VALUE_free | 0 | OSSL_IETF_ATTR_SYNTAX_VALUE * | +| (OSSL_INFO_SYNTAX *) | | OSSL_INFO_SYNTAX_free | 0 | OSSL_INFO_SYNTAX * | +| (OSSL_INFO_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_INFO_SYNTAX | 0 | OSSL_INFO_SYNTAX ** | +| (OSSL_INFO_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_INFO_SYNTAX | 1 | const unsigned char ** | +| (OSSL_INFO_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_INFO_SYNTAX | 2 | long | +| (OSSL_INFO_SYNTAX_POINTER *) | | OSSL_INFO_SYNTAX_POINTER_free | 0 | OSSL_INFO_SYNTAX_POINTER * | +| (OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long) | | d2i_OSSL_INFO_SYNTAX_POINTER | 0 | OSSL_INFO_SYNTAX_POINTER ** | +| (OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long) | | d2i_OSSL_INFO_SYNTAX_POINTER | 1 | const unsigned char ** | +| (OSSL_INFO_SYNTAX_POINTER **,const unsigned char **,long) | | d2i_OSSL_INFO_SYNTAX_POINTER | 2 | long | +| (OSSL_ISSUER_SERIAL *) | | OSSL_ISSUER_SERIAL_free | 0 | OSSL_ISSUER_SERIAL * | +| (OSSL_ISSUER_SERIAL *,const ASN1_BIT_STRING *) | | OSSL_ISSUER_SERIAL_set1_issuerUID | 0 | OSSL_ISSUER_SERIAL * | +| (OSSL_ISSUER_SERIAL *,const ASN1_BIT_STRING *) | | OSSL_ISSUER_SERIAL_set1_issuerUID | 1 | const ASN1_BIT_STRING * | +| (OSSL_ISSUER_SERIAL *,const ASN1_INTEGER *) | | OSSL_ISSUER_SERIAL_set1_serial | 0 | OSSL_ISSUER_SERIAL * | +| (OSSL_ISSUER_SERIAL *,const ASN1_INTEGER *) | | OSSL_ISSUER_SERIAL_set1_serial | 1 | const ASN1_INTEGER * | +| (OSSL_ISSUER_SERIAL *,const X509_NAME *) | | OSSL_ISSUER_SERIAL_set1_issuer | 0 | OSSL_ISSUER_SERIAL * | +| (OSSL_ISSUER_SERIAL *,const X509_NAME *) | | OSSL_ISSUER_SERIAL_set1_issuer | 1 | const X509_NAME * | +| (OSSL_JSON_ENC *) | | ossl_json_in_error | 0 | OSSL_JSON_ENC * | +| (OSSL_JSON_ENC *,BIO *) | | ossl_json_set0_sink | 0 | OSSL_JSON_ENC * | +| (OSSL_JSON_ENC *,BIO *) | | ossl_json_set0_sink | 1 | BIO * | +| (OSSL_JSON_ENC *,BIO *,uint32_t) | | ossl_json_init | 0 | OSSL_JSON_ENC * | +| (OSSL_JSON_ENC *,BIO *,uint32_t) | | ossl_json_init | 1 | BIO * | +| (OSSL_JSON_ENC *,BIO *,uint32_t) | | ossl_json_init | 2 | uint32_t | +| (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 0 | OSSL_JSON_ENC * | +| (OSSL_JSON_ENC *,const char *) | | ossl_json_key | 1 | const char * | +| (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 0 | OSSL_JSON_ENC * | +| (OSSL_JSON_ENC *,const char *) | | ossl_json_str | 1 | const char * | +| (OSSL_JSON_ENC *,const char *,size_t) | | ossl_json_str_len | 0 | OSSL_JSON_ENC * | +| (OSSL_JSON_ENC *,const char *,size_t) | | ossl_json_str_len | 1 | const char * | +| (OSSL_JSON_ENC *,const char *,size_t) | | ossl_json_str_len | 2 | size_t | +| (OSSL_JSON_ENC *,const void *,size_t) | | ossl_json_str_hex | 0 | OSSL_JSON_ENC * | +| (OSSL_JSON_ENC *,const void *,size_t) | | ossl_json_str_hex | 1 | const void * | +| (OSSL_JSON_ENC *,const void *,size_t) | | ossl_json_str_hex | 2 | size_t | +| (OSSL_JSON_ENC *,int64_t) | | ossl_json_i64 | 0 | OSSL_JSON_ENC * | +| (OSSL_JSON_ENC *,int64_t) | | ossl_json_i64 | 1 | int64_t | +| (OSSL_JSON_ENC *,uint64_t) | | ossl_json_u64 | 0 | OSSL_JSON_ENC * | +| (OSSL_JSON_ENC *,uint64_t) | | ossl_json_u64 | 1 | uint64_t | +| (OSSL_LIB_CTX *) | | BN_CTX_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | BN_CTX_secure_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | OSSL_LIB_CTX_get_conf_diagnostics | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | OSSL_PROVIDER_get0_default_search_path | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | OSSL_get_max_threads | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | RAND_get0_primary | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | RAND_get0_private | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | RAND_get0_public | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | SSL_TEST_CTX_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | fake_cipher_start | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | fake_pipeline_start | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | fake_rand_start | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | fake_rsa_start | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_dh_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_do_ex_data_init | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_dsa_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_get_avail_threads | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_lib_ctx_get_concrete | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_lib_ctx_get_ex_data_global | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_lib_ctx_get_rcukey | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_lib_ctx_is_child | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_method_store_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_namemap_stored | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_provider_store_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_rand_get0_seed_noncreating | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *) | | ossl_rsa_new_with_ctx | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *) | | test_arg_libctx | 0 | OSSL_LIB_CTX ** | +| (OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *) | | test_arg_libctx | 1 | OSSL_PROVIDER ** | +| (OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *) | | test_arg_libctx | 2 | OSSL_PROVIDER ** | +| (OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *) | | test_arg_libctx | 3 | int | +| (OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *) | | test_arg_libctx | 4 | const char * | +| (OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *) | | test_get_libctx | 0 | OSSL_LIB_CTX ** | +| (OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *) | | test_get_libctx | 1 | OSSL_PROVIDER ** | +| (OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *) | | test_get_libctx | 2 | const char * | +| (OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *) | | test_get_libctx | 3 | OSSL_PROVIDER ** | +| (OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *) | | test_get_libctx | 4 | const char * | +| (OSSL_LIB_CTX **,const char **,const X509_PUBKEY *) | | ossl_x509_PUBKEY_get0_libctx | 0 | OSSL_LIB_CTX ** | +| (OSSL_LIB_CTX **,const char **,const X509_PUBKEY *) | | ossl_x509_PUBKEY_get0_libctx | 1 | const char ** | +| (OSSL_LIB_CTX **,const char **,const X509_PUBKEY *) | | ossl_x509_PUBKEY_get0_libctx | 2 | const X509_PUBKEY * | +| (OSSL_LIB_CTX *,..(*)(..),void *) | | OSSL_PROVIDER_do_all | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,..(*)(..),void *) | | OSSL_PROVIDER_do_all | 1 | ..(*)(..) | +| (OSSL_LIB_CTX *,..(*)(..),void *) | | OSSL_PROVIDER_do_all | 2 | void * | +| (OSSL_LIB_CTX *,..(*)(..),void *) | | ossl_provider_doall_activated | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,..(*)(..),void *) | | ossl_provider_doall_activated | 1 | ..(*)(..) | +| (OSSL_LIB_CTX *,..(*)(..),void *) | | ossl_provider_doall_activated | 2 | void * | +| (OSSL_LIB_CTX *,CONF_METHOD *) | | NCONF_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,CONF_METHOD *) | | NCONF_new_ex | 1 | CONF_METHOD * | +| (OSSL_LIB_CTX *,CRYPTO_THREAD_ROUTINE,void *) | | ossl_crypto_thread_start | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,CRYPTO_THREAD_ROUTINE,void *) | | ossl_crypto_thread_start | 1 | CRYPTO_THREAD_ROUTINE | +| (OSSL_LIB_CTX *,CRYPTO_THREAD_ROUTINE,void *) | | ossl_crypto_thread_start | 2 | void * | +| (OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *) | | ossl_ecx_key_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *) | | ossl_ecx_key_new | 1 | ECX_KEY_TYPE | +| (OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *) | | ossl_ecx_key_new | 2 | int | +| (OSSL_LIB_CTX *,ECX_KEY_TYPE,int,const char *) | | ossl_ecx_key_new | 3 | const char * | +| (OSSL_LIB_CTX *,EVP_PKEY *,const char *) | | EVP_PKEY_CTX_new_from_pkey | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,EVP_PKEY *,const char *) | | EVP_PKEY_CTX_new_from_pkey | 1 | EVP_PKEY * | +| (OSSL_LIB_CTX *,EVP_PKEY *,const char *) | | EVP_PKEY_CTX_new_from_pkey | 2 | const char * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_gen_verify | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_gen_verify | 1 | FFC_PARAMS * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_gen_verify | 2 | int | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_gen_verify | 3 | int | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_gen_verify | 4 | size_t | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_gen_verify | 5 | size_t | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_gen_verify | 6 | int * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_gen_verify | 7 | BN_GENCB * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_gen_verify | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_gen_verify | 1 | FFC_PARAMS * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_gen_verify | 2 | int | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_gen_verify | 3 | int | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_gen_verify | 4 | size_t | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_gen_verify | 5 | size_t | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_gen_verify | 6 | int * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_gen_verify | 7 | BN_GENCB * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_generate | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_generate | 1 | FFC_PARAMS * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_generate | 2 | int | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_generate | 3 | size_t | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_generate | 4 | size_t | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_generate | 5 | int * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_generate | 6 | BN_GENCB * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_generate | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_generate | 1 | FFC_PARAMS * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_generate | 2 | int | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_generate | 3 | size_t | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_generate | 4 | size_t | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_generate | 5 | int * | +| (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_generate | 6 | BN_GENCB * | +| (OSSL_LIB_CTX *,OSSL_CALLBACK **,void **) | | OSSL_SELF_TEST_get_callback | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,OSSL_CALLBACK **,void **) | | OSSL_SELF_TEST_get_callback | 1 | OSSL_CALLBACK ** | +| (OSSL_LIB_CTX *,OSSL_CALLBACK **,void **) | | OSSL_SELF_TEST_get_callback | 2 | void ** | +| (OSSL_LIB_CTX *,OSSL_CORE_BIO *) | | BIO_new_from_core_bio | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,OSSL_CORE_BIO *) | | BIO_new_from_core_bio | 1 | OSSL_CORE_BIO * | +| (OSSL_LIB_CTX *,OSSL_INDICATOR_CALLBACK **) | | OSSL_INDICATOR_get_callback | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,OSSL_INDICATOR_CALLBACK **) | | OSSL_INDICATOR_get_callback | 1 | OSSL_INDICATOR_CALLBACK ** | +| (OSSL_LIB_CTX *,OSSL_PROPERTY_IDX) | | ossl_property_name_str | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,OSSL_PROPERTY_IDX) | | ossl_property_name_str | 1 | OSSL_PROPERTY_IDX | +| (OSSL_LIB_CTX *,OSSL_PROPERTY_IDX) | | ossl_property_value_str | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,OSSL_PROPERTY_IDX) | | ossl_property_value_str | 1 | OSSL_PROPERTY_IDX | +| (OSSL_LIB_CTX *,OSSL_PROVIDER_INFO *) | | ossl_provider_info_add_to_store | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,OSSL_PROVIDER_INFO *) | | ossl_provider_info_add_to_store | 1 | OSSL_PROVIDER_INFO * | +| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 1 | SSL_CTX * | +| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 2 | SSL_CTX * | +| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 3 | char * | +| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 4 | char * | +| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 5 | int | +| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 6 | QUIC_TSERVER ** | +| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 7 | SSL ** | +| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 8 | QTEST_FAULT ** | +| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 9 | BIO ** | +| (OSSL_LIB_CTX *,SSL_CTX *,const char *) | | ssl_ctx_add_large_cert_chain | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,SSL_CTX *,const char *) | | ssl_ctx_add_large_cert_chain | 1 | SSL_CTX * | +| (OSSL_LIB_CTX *,SSL_CTX *,const char *) | | ssl_ctx_add_large_cert_chain | 2 | const char * | +| (OSSL_LIB_CTX *,const BIO_METHOD *) | | BIO_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const BIO_METHOD *) | | BIO_new_ex | 1 | const BIO_METHOD * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *) | | ossl_ffc_params_full_validate | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *) | | ossl_ffc_params_full_validate | 1 | const FFC_PARAMS * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *) | | ossl_ffc_params_full_validate | 2 | int | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *) | | ossl_ffc_params_full_validate | 3 | int * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *) | | ossl_ffc_params_simple_validate | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *) | | ossl_ffc_params_simple_validate | 1 | const FFC_PARAMS * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *) | | ossl_ffc_params_simple_validate | 2 | int | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *) | | ossl_ffc_params_simple_validate | 3 | int * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_validate | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_validate | 1 | const FFC_PARAMS * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_validate | 2 | int | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_validate | 3 | int * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_2_validate | 4 | BN_GENCB * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_validate | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_validate | 1 | const FFC_PARAMS * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_validate | 2 | int | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_validate | 3 | int * | +| (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_validate | 4 | BN_GENCB * | +| (OSSL_LIB_CTX *,const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *) | | ossl_provider_init_as_child | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *) | | ossl_provider_init_as_child | 1 | const OSSL_CORE_HANDLE * | +| (OSSL_LIB_CTX *,const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *) | | ossl_provider_init_as_child | 2 | const OSSL_DISPATCH * | +| (OSSL_LIB_CTX *,const OSSL_DISPATCH *) | | ossl_bio_init_core | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const OSSL_DISPATCH *) | | ossl_bio_init_core | 1 | const OSSL_DISPATCH * | +| (OSSL_LIB_CTX *,const OSSL_PROPERTY_DEFINITION *) | | ossl_property_get_string_value | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const OSSL_PROPERTY_DEFINITION *) | | ossl_property_get_string_value | 1 | const OSSL_PROPERTY_DEFINITION * | +| (OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t) | | ossl_property_list_to_string | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t) | | ossl_property_list_to_string | 1 | const OSSL_PROPERTY_LIST * | +| (OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t) | | ossl_property_list_to_string | 2 | char * | +| (OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t) | | ossl_property_list_to_string | 3 | size_t | +| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 1 | const SSL_METHOD * | +| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 2 | const SSL_METHOD * | +| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 3 | int | +| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 4 | int | +| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 5 | SSL_CTX ** | +| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 6 | SSL_CTX ** | +| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 7 | char * | +| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 8 | char * | +| (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | CT_POLICY_EVAL_CTX_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | EC_KEY_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_CTX_new | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_new | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | OSSL_CMP_SRV_CTX_new | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | OSSL_PROVIDER_load | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | PKCS7_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | SCT_CTX_new | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | TS_RESP_CTX_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | X509_CRL_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | X509_PUBKEY_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | X509_REQ_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | X509_STORE_CTX_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | X509_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | ossl_cmp_mock_srv_new | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | ossl_cms_Data_create | 1 | const char * | +| (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *) | | ossl_parse_property | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,ENGINE *) | | ossl_ec_key_new_method_int | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,ENGINE *) | | ossl_ec_key_new_method_int | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,ENGINE *) | | ossl_ec_key_new_method_int | 2 | ENGINE * | +| (OSSL_LIB_CTX *,const char *,OSSL_PARAM *) | | OSSL_PROVIDER_load_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,OSSL_PARAM *) | | OSSL_PROVIDER_load_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,OSSL_PARAM *) | | OSSL_PROVIDER_load_ex | 2 | OSSL_PARAM * | +| (OSSL_LIB_CTX *,const char *,OSSL_PARAM *,int) | | OSSL_PROVIDER_try_load_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,OSSL_PARAM *,int) | | OSSL_PROVIDER_try_load_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,OSSL_PARAM *,int) | | OSSL_PROVIDER_try_load_ex | 2 | OSSL_PARAM * | +| (OSSL_LIB_CTX *,const char *,OSSL_PARAM *,int) | | OSSL_PROVIDER_try_load_ex | 3 | int | +| (OSSL_LIB_CTX *,const char *,OSSL_PROPERTY_LIST **) | | ossl_prop_defn_set | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,OSSL_PROPERTY_LIST **) | | ossl_prop_defn_set | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,OSSL_PROPERTY_LIST **) | | ossl_prop_defn_set | 2 | OSSL_PROPERTY_LIST ** | +| (OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int) | | ossl_provider_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int) | | ossl_provider_new | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int) | | ossl_provider_new | 2 | OSSL_provider_init_fn * | +| (OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int) | | ossl_provider_new | 3 | OSSL_PARAM * | +| (OSSL_LIB_CTX *,const char *,OSSL_provider_init_fn *,OSSL_PARAM *,int) | | ossl_provider_new | 4 | int | +| (OSSL_LIB_CTX *,const char *,const EC_METHOD *) | | ossl_ec_group_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,const EC_METHOD *) | | ossl_ec_group_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,const EC_METHOD *) | | ossl_ec_group_new_ex | 2 | const EC_METHOD * | +| (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *) | | ossl_quic_validate_retry_integrity_tag | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *) | | ossl_quic_validate_retry_integrity_tag | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *) | | ossl_quic_validate_retry_integrity_tag | 2 | const QUIC_PKT_HDR * | +| (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *) | | ossl_quic_validate_retry_integrity_tag | 3 | const QUIC_CONN_ID * | +| (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *,unsigned char *) | | ossl_quic_calculate_retry_integrity_tag | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *,unsigned char *) | | ossl_quic_calculate_retry_integrity_tag | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *,unsigned char *) | | ossl_quic_calculate_retry_integrity_tag | 2 | const QUIC_PKT_HDR * | +| (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *,unsigned char *) | | ossl_quic_calculate_retry_integrity_tag | 3 | const QUIC_CONN_ID * | +| (OSSL_LIB_CTX *,const char *,const QUIC_PKT_HDR *,const QUIC_CONN_ID *,unsigned char *) | | ossl_quic_calculate_retry_integrity_tag | 4 | unsigned char * | +| (OSSL_LIB_CTX *,const char *,const SSL_METHOD *) | | SSL_CTX_new_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,const SSL_METHOD *) | | SSL_CTX_new_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,const SSL_METHOD *) | | SSL_CTX_new_ex | 2 | const SSL_METHOD * | +| (OSSL_LIB_CTX *,const char *,const char *) | | EVP_PKEY_CTX_new_from_name | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,const char *) | | EVP_PKEY_CTX_new_from_name | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,const char *) | | EVP_PKEY_CTX_new_from_name | 2 | const char * | +| (OSSL_LIB_CTX *,const char *,const char *) | | ossl_slh_dsa_key_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,const char *) | | ossl_slh_dsa_key_new | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,const char *) | | ossl_slh_dsa_key_new | 2 | const char * | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 2 | const char * | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 3 | const char * | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 4 | const OSSL_PARAM * | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 5 | const void * | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 6 | size_t | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 7 | const unsigned char * | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 8 | size_t | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 9 | unsigned char * | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 10 | size_t | +| (OSSL_LIB_CTX *,const char *,const char *,const char *,const OSSL_PARAM *,const void *,size_t,const unsigned char *,size_t,unsigned char *,size_t,size_t *) | | EVP_Q_mac | 11 | size_t * | +| (OSSL_LIB_CTX *,const char *,int) | | EC_GROUP_new_by_curve_name_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,int) | | EC_GROUP_new_by_curve_name_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,int) | | EC_GROUP_new_by_curve_name_ex | 2 | int | +| (OSSL_LIB_CTX *,const char *,int) | | EC_KEY_new_by_curve_name_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,int) | | EC_KEY_new_by_curve_name_ex | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,int) | | EC_KEY_new_by_curve_name_ex | 2 | int | +| (OSSL_LIB_CTX *,const char *,int) | | OSSL_PROVIDER_try_load | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,int) | | OSSL_PROVIDER_try_load | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,int) | | OSSL_PROVIDER_try_load | 2 | int | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_dsa_key_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_dsa_key_new | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_dsa_key_new | 2 | int | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_kem_key_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_kem_key_new | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_ml_kem_key_new | 2 | int | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_parse_query | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_parse_query | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_parse_query | 2 | int | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_property_name | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_property_name | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_property_name | 2 | int | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_property_value | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_property_value | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,int) | | ossl_property_value | 2 | int | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 1 | const char * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 2 | int | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 3 | int | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 4 | int | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 5 | int | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 6 | const EVP_CIPHER * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 7 | size_t | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 8 | const EVP_MD * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 9 | COMP_METHOD * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 10 | BIO * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 11 | BIO * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 12 | BIO * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 13 | const OSSL_PARAM * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 14 | const OSSL_PARAM * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 15 | const OSSL_DISPATCH * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 16 | void * | +| (OSSL_LIB_CTX *,const char *,int,int,int,int,const EVP_CIPHER *,size_t,const EVP_MD *,COMP_METHOD *,BIO *,BIO *,BIO *,const OSSL_PARAM *,const OSSL_PARAM *,const OSSL_DISPATCH *,void *,OSSL_RECORD_LAYER **) | | tls_int_new_record_layer | 17 | OSSL_RECORD_LAYER ** | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify | 1 | const uint8_t[114] | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify | 2 | const uint8_t[57] | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify | 3 | const uint8_t * | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify | 4 | size_t | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify | 5 | uint8_t | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify | 6 | const uint8_t * | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify | 7 | uint8_t | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify | 8 | const char * | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify_prehash | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify_prehash | 1 | const uint8_t[114] | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify_prehash | 2 | const uint8_t[57] | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify_prehash | 3 | const uint8_t[64] | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify_prehash | 4 | const uint8_t * | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify_prehash | 5 | uint8_t | +| (OSSL_LIB_CTX *,const uint8_t[114],const uint8_t[57],const uint8_t[64],const uint8_t *,uint8_t,const char *) | | ossl_c448_ed448_verify_prehash | 6 | const char * | +| (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_get_data | 1 | int | +| (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,int) | | OSSL_LIB_CTX_set_conf_diagnostics | 1 | int | +| (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,int) | | ossl_ctx_global_properties | 1 | int | +| (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,int) | | ossl_dh_new_by_nid_ex | 1 | int | +| (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,int) | | ossl_lib_ctx_get_data | 1 | int | +| (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,int) | | ossl_mac_key_new | 1 | int | +| (OSSL_LIB_CTX *,int,OSSL_PROVIDER **,int,OSSL_METHOD_CONSTRUCT_METHOD *,void *) | | ossl_method_construct | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,int,OSSL_PROVIDER **,int,OSSL_METHOD_CONSTRUCT_METHOD *,void *) | | ossl_method_construct | 1 | int | +| (OSSL_LIB_CTX *,int,OSSL_PROVIDER **,int,OSSL_METHOD_CONSTRUCT_METHOD *,void *) | | ossl_method_construct | 2 | OSSL_PROVIDER ** | +| (OSSL_LIB_CTX *,int,OSSL_PROVIDER **,int,OSSL_METHOD_CONSTRUCT_METHOD *,void *) | | ossl_method_construct | 3 | int | +| (OSSL_LIB_CTX *,int,OSSL_PROVIDER **,int,OSSL_METHOD_CONSTRUCT_METHOD *,void *) | | ossl_method_construct | 4 | OSSL_METHOD_CONSTRUCT_METHOD * | +| (OSSL_LIB_CTX *,int,OSSL_PROVIDER **,int,OSSL_METHOD_CONSTRUCT_METHOD *,void *) | | ossl_method_construct | 5 | void * | +| (OSSL_LIB_CTX *,int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *,int) | | ossl_crypto_get_ex_new_index_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *,int) | | ossl_crypto_get_ex_new_index_ex | 1 | int | +| (OSSL_LIB_CTX *,int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *,int) | | ossl_crypto_get_ex_new_index_ex | 2 | long | +| (OSSL_LIB_CTX *,int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *,int) | | ossl_crypto_get_ex_new_index_ex | 3 | void * | +| (OSSL_LIB_CTX *,int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *,int) | | ossl_crypto_get_ex_new_index_ex | 4 | CRYPTO_EX_new * | +| (OSSL_LIB_CTX *,int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *,int) | | ossl_crypto_get_ex_new_index_ex | 5 | CRYPTO_EX_dup * | +| (OSSL_LIB_CTX *,int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *,int) | | ossl_crypto_get_ex_new_index_ex | 6 | CRYPTO_EX_free * | +| (OSSL_LIB_CTX *,int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *,int) | | ossl_crypto_get_ex_new_index_ex | 7 | int | +| (OSSL_LIB_CTX *,int,void *,CRYPTO_EX_DATA *) | | ossl_crypto_new_ex_data_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,int,void *,CRYPTO_EX_DATA *) | | ossl_crypto_new_ex_data_ex | 1 | int | +| (OSSL_LIB_CTX *,int,void *,CRYPTO_EX_DATA *) | | ossl_crypto_new_ex_data_ex | 2 | void * | +| (OSSL_LIB_CTX *,int,void *,CRYPTO_EX_DATA *) | | ossl_crypto_new_ex_data_ex | 3 | CRYPTO_EX_DATA * | +| (OSSL_LIB_CTX *,size_t) | | ossl_quic_lcidm_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,size_t) | | ossl_quic_lcidm_new | 1 | size_t | +| (OSSL_LIB_CTX *,size_t,QUIC_CONN_ID *) | | ossl_quic_gen_rand_conn_id | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,size_t,QUIC_CONN_ID *) | | ossl_quic_gen_rand_conn_id | 1 | size_t | +| (OSSL_LIB_CTX *,size_t,QUIC_CONN_ID *) | | ossl_quic_gen_rand_conn_id | 2 | QUIC_CONN_ID * | +| (OSSL_LIB_CTX *,size_t,int,size_t,int) | | OSSL_CRMF_pbmp_new | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,size_t,int,size_t,int) | | OSSL_CRMF_pbmp_new | 1 | size_t | +| (OSSL_LIB_CTX *,size_t,int,size_t,int) | | OSSL_CRMF_pbmp_new | 2 | int | +| (OSSL_LIB_CTX *,size_t,int,size_t,int) | | OSSL_CRMF_pbmp_new | 3 | size_t | +| (OSSL_LIB_CTX *,size_t,int,size_t,int) | | OSSL_CRMF_pbmp_new | 4 | int | +| (OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *) | | ossl_ed448_sign | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *) | | ossl_ed448_sign | 1 | uint8_t * | +| (OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *) | | ossl_ed448_sign | 2 | const uint8_t * | +| (OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *) | | ossl_ed448_sign | 3 | size_t | +| (OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *) | | ossl_ed448_sign | 4 | const uint8_t[57] | +| (OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *) | | ossl_ed448_sign | 5 | const uint8_t[57] | +| (OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *) | | ossl_ed448_sign | 6 | const uint8_t * | +| (OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *) | | ossl_ed448_sign | 7 | size_t | +| (OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *) | | ossl_ed448_sign | 8 | const uint8_t | +| (OSSL_LIB_CTX *,uint8_t *,const uint8_t *,size_t,const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,const uint8_t,const char *) | | ossl_ed448_sign | 9 | const char * | +| (OSSL_LIB_CTX *,uint8_t[32],const uint8_t[32],const char *) | | ossl_ed25519_public_from_private | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,uint8_t[32],const uint8_t[32],const char *) | | ossl_ed25519_public_from_private | 1 | uint8_t[32] | +| (OSSL_LIB_CTX *,uint8_t[32],const uint8_t[32],const char *) | | ossl_ed25519_public_from_private | 2 | const uint8_t[32] | +| (OSSL_LIB_CTX *,uint8_t[32],const uint8_t[32],const char *) | | ossl_ed25519_public_from_private | 3 | const char * | +| (OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *) | | ossl_c448_ed448_derive_public_key | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *) | | ossl_c448_ed448_derive_public_key | 1 | uint8_t[57] | +| (OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *) | | ossl_c448_ed448_derive_public_key | 2 | const uint8_t[57] | +| (OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *) | | ossl_c448_ed448_derive_public_key | 3 | const char * | +| (OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *) | | ossl_ed448_public_from_private | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *) | | ossl_ed448_public_from_private | 1 | uint8_t[57] | +| (OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *) | | ossl_ed448_public_from_private | 2 | const uint8_t[57] | +| (OSSL_LIB_CTX *,uint8_t[57],const uint8_t[57],const char *) | | ossl_ed448_public_from_private | 3 | const char * | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign | 1 | uint8_t[114] | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign | 2 | const uint8_t[57] | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign | 3 | const uint8_t[57] | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign | 4 | const uint8_t * | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign | 5 | size_t | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign | 6 | uint8_t | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign | 7 | const uint8_t * | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign | 8 | size_t | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t *,size_t,uint8_t,const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign | 9 | const char * | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t[64],const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign_prehash | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t[64],const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign_prehash | 1 | uint8_t[114] | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t[64],const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign_prehash | 2 | const uint8_t[57] | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t[64],const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign_prehash | 3 | const uint8_t[57] | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t[64],const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign_prehash | 4 | const uint8_t[64] | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t[64],const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign_prehash | 5 | const uint8_t * | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t[64],const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign_prehash | 6 | size_t | +| (OSSL_LIB_CTX *,uint8_t[114],const uint8_t[57],const uint8_t[57],const uint8_t[64],const uint8_t *,size_t,const char *) | | ossl_c448_ed448_sign_prehash | 7 | const char * | +| (OSSL_LIB_CTX *,uint32_t,int *) | | ossl_rand_uniform_uint32 | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,uint32_t,int *) | | ossl_rand_uniform_uint32 | 1 | uint32_t | +| (OSSL_LIB_CTX *,uint32_t,int *) | | ossl_rand_uniform_uint32 | 2 | int * | +| (OSSL_LIB_CTX *,uint32_t,uint32_t,int *) | | ossl_rand_range_uint32 | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,uint32_t,uint32_t,int *) | | ossl_rand_range_uint32 | 1 | uint32_t | +| (OSSL_LIB_CTX *,uint32_t,uint32_t,int *) | | ossl_rand_range_uint32 | 2 | uint32_t | +| (OSSL_LIB_CTX *,uint32_t,uint32_t,int *) | | ossl_rand_range_uint32 | 3 | int * | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_nonce | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_nonce | 1 | unsigned char ** | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_nonce | 2 | size_t | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_nonce | 3 | size_t | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_nonce | 4 | const void * | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_nonce | 5 | size_t | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_user_nonce | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_user_nonce | 1 | unsigned char ** | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_user_nonce | 2 | size_t | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_user_nonce | 3 | size_t | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_user_nonce | 4 | const void * | +| (OSSL_LIB_CTX *,unsigned char **,size_t,size_t,const void *,size_t) | | ossl_rand_get_user_nonce | 5 | size_t | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int) | | ossl_rsa_padding_add_PKCS1_type_2_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int) | | ossl_rsa_padding_add_PKCS1_type_2_ex | 1 | unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int) | | ossl_rsa_padding_add_PKCS1_type_2_ex | 2 | int | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int) | | ossl_rsa_padding_add_PKCS1_type_2_ex | 3 | const unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int) | | ossl_rsa_padding_add_PKCS1_type_2_ex | 4 | int | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex | 1 | unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex | 2 | int | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex | 3 | const unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex | 4 | int | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex | 5 | const unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex | 6 | int | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex | 7 | const EVP_MD * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | ossl_rsa_padding_add_PKCS1_OAEP_mgf1_ex | 8 | const EVP_MD * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *) | | ossl_rsa_padding_check_PKCS1_type_2 | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *) | | ossl_rsa_padding_check_PKCS1_type_2 | 1 | unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *) | | ossl_rsa_padding_check_PKCS1_type_2 | 2 | int | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *) | | ossl_rsa_padding_check_PKCS1_type_2 | 3 | const unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *) | | ossl_rsa_padding_check_PKCS1_type_2 | 4 | int | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *) | | ossl_rsa_padding_check_PKCS1_type_2 | 5 | int | +| (OSSL_LIB_CTX *,unsigned char *,int,const unsigned char *,int,int,unsigned char *) | | ossl_rsa_padding_check_PKCS1_type_2 | 6 | unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_entropy | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_entropy | 1 | unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_entropy | 2 | size_t | +| (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_user_entropy | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_user_entropy | 1 | unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,size_t) | | ossl_rand_cleanup_user_entropy | 2 | size_t | +| (OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int) | | ossl_rsa_padding_check_PKCS1_type_2_TLS | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int) | | ossl_rsa_padding_check_PKCS1_type_2_TLS | 1 | unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int) | | ossl_rsa_padding_check_PKCS1_type_2_TLS | 2 | size_t | +| (OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int) | | ossl_rsa_padding_check_PKCS1_type_2_TLS | 3 | const unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int) | | ossl_rsa_padding_check_PKCS1_type_2_TLS | 4 | size_t | +| (OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int) | | ossl_rsa_padding_check_PKCS1_type_2_TLS | 5 | int | +| (OSSL_LIB_CTX *,unsigned char *,size_t,const unsigned char *,size_t,int,int) | | ossl_rsa_padding_check_PKCS1_type_2_TLS | 6 | int | +| (OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int) | | RAND_bytes_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int) | | RAND_bytes_ex | 1 | unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int) | | RAND_bytes_ex | 2 | size_t | +| (OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int) | | RAND_bytes_ex | 3 | unsigned int | +| (OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int) | | RAND_priv_bytes_ex | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int) | | RAND_priv_bytes_ex | 1 | unsigned char * | +| (OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int) | | RAND_priv_bytes_ex | 2 | size_t | +| (OSSL_LIB_CTX *,unsigned char *,size_t,unsigned int) | | RAND_priv_bytes_ex | 3 | unsigned int | +| (OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int) | | ossl_cipher_tlsunpadblock | 0 | OSSL_LIB_CTX * | +| (OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int) | | ossl_cipher_tlsunpadblock | 1 | unsigned int | +| (OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int) | | ossl_cipher_tlsunpadblock | 2 | unsigned char * | +| (OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int) | | ossl_cipher_tlsunpadblock | 3 | size_t * | +| (OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int) | | ossl_cipher_tlsunpadblock | 4 | size_t | +| (OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int) | | ossl_cipher_tlsunpadblock | 5 | unsigned char ** | +| (OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int) | | ossl_cipher_tlsunpadblock | 6 | int * | +| (OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int) | | ossl_cipher_tlsunpadblock | 7 | size_t | +| (OSSL_LIB_CTX *,unsigned int,unsigned char *,size_t *,size_t,unsigned char **,int *,size_t,int) | | ossl_cipher_tlsunpadblock | 8 | int | +| (OSSL_METHOD_STORE *) | | ossl_method_store_free | 0 | OSSL_METHOD_STORE * | +| (OSSL_METHOD_STORE *,const OSSL_PROVIDER *,int,const char *,void *,..(*)(..),..(*)(..)) | | ossl_method_store_add | 0 | OSSL_METHOD_STORE * | +| (OSSL_METHOD_STORE *,const OSSL_PROVIDER *,int,const char *,void *,..(*)(..),..(*)(..)) | | ossl_method_store_add | 1 | const OSSL_PROVIDER * | +| (OSSL_METHOD_STORE *,const OSSL_PROVIDER *,int,const char *,void *,..(*)(..),..(*)(..)) | | ossl_method_store_add | 2 | int | +| (OSSL_METHOD_STORE *,const OSSL_PROVIDER *,int,const char *,void *,..(*)(..),..(*)(..)) | | ossl_method_store_add | 3 | const char * | +| (OSSL_METHOD_STORE *,const OSSL_PROVIDER *,int,const char *,void *,..(*)(..),..(*)(..)) | | ossl_method_store_add | 4 | void * | +| (OSSL_METHOD_STORE *,const OSSL_PROVIDER *,int,const char *,void *,..(*)(..),..(*)(..)) | | ossl_method_store_add | 5 | ..(*)(..) | +| (OSSL_METHOD_STORE *,const OSSL_PROVIDER *,int,const char *,void *,..(*)(..),..(*)(..)) | | ossl_method_store_add | 6 | ..(*)(..) | +| (OSSL_METHOD_STORE *,int,const char *,const OSSL_PROVIDER **,void **) | | ossl_method_store_fetch | 0 | OSSL_METHOD_STORE * | +| (OSSL_METHOD_STORE *,int,const char *,const OSSL_PROVIDER **,void **) | | ossl_method_store_fetch | 1 | int | +| (OSSL_METHOD_STORE *,int,const char *,const OSSL_PROVIDER **,void **) | | ossl_method_store_fetch | 2 | const char * | +| (OSSL_METHOD_STORE *,int,const char *,const OSSL_PROVIDER **,void **) | | ossl_method_store_fetch | 3 | const OSSL_PROVIDER ** | +| (OSSL_METHOD_STORE *,int,const char *,const OSSL_PROVIDER **,void **) | | ossl_method_store_fetch | 4 | void ** | +| (OSSL_NAMED_DAY *) | | OSSL_NAMED_DAY_free | 0 | OSSL_NAMED_DAY * | +| (OSSL_NAMED_DAY **,const unsigned char **,long) | | d2i_OSSL_NAMED_DAY | 0 | OSSL_NAMED_DAY ** | +| (OSSL_NAMED_DAY **,const unsigned char **,long) | | d2i_OSSL_NAMED_DAY | 1 | const unsigned char ** | +| (OSSL_NAMED_DAY **,const unsigned char **,long) | | d2i_OSSL_NAMED_DAY | 2 | long | +| (OSSL_NAMEMAP *,int,const char *) | | ossl_namemap_add_name | 0 | OSSL_NAMEMAP * | +| (OSSL_NAMEMAP *,int,const char *) | | ossl_namemap_add_name | 1 | int | +| (OSSL_NAMEMAP *,int,const char *) | | ossl_namemap_add_name | 2 | const char * | +| (OSSL_NAMEMAP *,int,const char *,const char) | | ossl_namemap_add_names | 0 | OSSL_NAMEMAP * | +| (OSSL_NAMEMAP *,int,const char *,const char) | | ossl_namemap_add_names | 1 | int | +| (OSSL_NAMEMAP *,int,const char *,const char) | | ossl_namemap_add_names | 2 | const char * | +| (OSSL_NAMEMAP *,int,const char *,const char) | | ossl_namemap_add_names | 3 | const char | +| (OSSL_OBJECT_DIGEST_INFO *) | | OSSL_OBJECT_DIGEST_INFO_free | 0 | OSSL_OBJECT_DIGEST_INFO * | +| (OSSL_OBJECT_DIGEST_INFO *,int,X509_ALGOR *,ASN1_BIT_STRING *) | | OSSL_OBJECT_DIGEST_INFO_set1_digest | 0 | OSSL_OBJECT_DIGEST_INFO * | +| (OSSL_OBJECT_DIGEST_INFO *,int,X509_ALGOR *,ASN1_BIT_STRING *) | | OSSL_OBJECT_DIGEST_INFO_set1_digest | 1 | int | +| (OSSL_OBJECT_DIGEST_INFO *,int,X509_ALGOR *,ASN1_BIT_STRING *) | | OSSL_OBJECT_DIGEST_INFO_set1_digest | 2 | X509_ALGOR * | +| (OSSL_OBJECT_DIGEST_INFO *,int,X509_ALGOR *,ASN1_BIT_STRING *) | | OSSL_OBJECT_DIGEST_INFO_set1_digest | 3 | ASN1_BIT_STRING * | +| (OSSL_PARAM *) | | OSSL_PARAM_free | 0 | OSSL_PARAM * | +| (OSSL_PARAM *) | | OSSL_PARAM_set_all_unmodified | 0 | OSSL_PARAM * | +| (OSSL_PARAM *) | | app_params_free | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,const BIGNUM *) | | OSSL_PARAM_set_BN | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,const BIGNUM *) | | OSSL_PARAM_set_BN | 1 | const BIGNUM * | +| (OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *) | | OSSL_PARAM_allocate_from_text | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *) | | OSSL_PARAM_allocate_from_text | 1 | const OSSL_PARAM * | +| (OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *) | | OSSL_PARAM_allocate_from_text | 2 | const char * | +| (OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *) | | OSSL_PARAM_allocate_from_text | 3 | const char * | +| (OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *) | | OSSL_PARAM_allocate_from_text | 4 | size_t | +| (OSSL_PARAM *,const OSSL_PARAM *,const char *,const char *,size_t,int *) | | OSSL_PARAM_allocate_from_text | 5 | int * | +| (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,const char *) | | OSSL_PARAM_locate | 1 | const char * | +| (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_ptr | 1 | const char * | +| (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,const char *) | | OSSL_PARAM_set_utf8_string | 1 | const char * | +| (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_ptr | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_ptr | 1 | const void * | +| (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_ptr | 2 | size_t | +| (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string | 1 | const void * | +| (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string | 2 | size_t | +| (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string_or_ptr | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string_or_ptr | 1 | const void * | +| (OSSL_PARAM *,const void *,size_t) | | OSSL_PARAM_set_octet_string_or_ptr | 2 | size_t | +| (OSSL_PARAM *,double) | | OSSL_PARAM_set_double | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,double) | | OSSL_PARAM_set_double | 1 | double | +| (OSSL_PARAM *,int32_t) | | OSSL_PARAM_set_int32 | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,int32_t) | | OSSL_PARAM_set_int32 | 1 | int32_t | +| (OSSL_PARAM *,int64_t) | | OSSL_PARAM_set_int64 | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,int64_t) | | OSSL_PARAM_set_int64 | 1 | int64_t | +| (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,int) | | OSSL_PARAM_set_int | 1 | int | +| (OSSL_PARAM *,long) | | OSSL_PARAM_set_long | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,long) | | OSSL_PARAM_set_long | 1 | long | +| (OSSL_PARAM *,size_t) | | OSSL_PARAM_set_size_t | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,size_t) | | OSSL_PARAM_set_size_t | 1 | size_t | +| (OSSL_PARAM *,time_t) | | OSSL_PARAM_set_time_t | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,time_t) | | OSSL_PARAM_set_time_t | 1 | time_t | +| (OSSL_PARAM *,uint32_t) | | OSSL_PARAM_set_uint32 | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,uint32_t) | | OSSL_PARAM_set_uint32 | 1 | uint32_t | +| (OSSL_PARAM *,uint64_t) | | OSSL_PARAM_set_uint64 | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,uint64_t) | | OSSL_PARAM_set_uint64 | 1 | uint64_t | +| (OSSL_PARAM *,unsigned int) | | OSSL_PARAM_set_uint | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,unsigned int) | | OSSL_PARAM_set_uint | 1 | unsigned int | +| (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,unsigned long) | | OSSL_PARAM_set_ulong | 1 | unsigned long | +| (OSSL_PARAM *,void *,size_t) | | ossl_param_set_secure_block | 0 | OSSL_PARAM * | +| (OSSL_PARAM *,void *,size_t) | | ossl_param_set_secure_block | 1 | void * | +| (OSSL_PARAM *,void *,size_t) | | ossl_param_set_secure_block | 2 | size_t | +| (OSSL_PARAM[],size_t,size_t,unsigned long) | | ossl_digest_default_get_params | 0 | OSSL_PARAM[] | +| (OSSL_PARAM[],size_t,size_t,unsigned long) | | ossl_digest_default_get_params | 1 | size_t | +| (OSSL_PARAM[],size_t,size_t,unsigned long) | | ossl_digest_default_get_params | 2 | size_t | +| (OSSL_PARAM[],size_t,size_t,unsigned long) | | ossl_digest_default_get_params | 3 | unsigned long | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_cipher_generic_get_params | 0 | OSSL_PARAM[] | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_cipher_generic_get_params | 1 | unsigned int | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_cipher_generic_get_params | 2 | uint64_t | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_cipher_generic_get_params | 3 | size_t | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_cipher_generic_get_params | 4 | size_t | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_cipher_generic_get_params | 5 | size_t | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_tdes_get_params | 0 | OSSL_PARAM[] | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_tdes_get_params | 1 | unsigned int | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_tdes_get_params | 2 | uint64_t | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_tdes_get_params | 3 | size_t | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_tdes_get_params | 4 | size_t | +| (OSSL_PARAM[],unsigned int,uint64_t,size_t,size_t,size_t) | | ossl_tdes_get_params | 5 | size_t | +| (OSSL_PARAM_BLD *) | | OSSL_PARAM_BLD_to_param | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *) | | ossl_param_build_set_bn | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *) | | ossl_param_build_set_bn | 1 | OSSL_PARAM * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *) | | ossl_param_build_set_bn | 2 | const char * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *) | | ossl_param_build_set_bn | 3 | const BIGNUM * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t) | | ossl_param_build_set_bn_pad | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t) | | ossl_param_build_set_bn_pad | 1 | OSSL_PARAM * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t) | | ossl_param_build_set_bn_pad | 2 | const char * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t) | | ossl_param_build_set_bn_pad | 3 | const BIGNUM * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const BIGNUM *,size_t) | | ossl_param_build_set_bn_pad | 4 | size_t | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const char *) | | ossl_param_build_set_utf8_string | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const char *) | | ossl_param_build_set_utf8_string | 1 | OSSL_PARAM * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const char *) | | ossl_param_build_set_utf8_string | 2 | const char * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const char *) | | ossl_param_build_set_utf8_string | 3 | const char * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t) | | ossl_param_build_set_octet_string | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t) | | ossl_param_build_set_octet_string | 1 | OSSL_PARAM * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t) | | ossl_param_build_set_octet_string | 2 | const char * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t) | | ossl_param_build_set_octet_string | 3 | const unsigned char * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,const unsigned char *,size_t) | | ossl_param_build_set_octet_string | 4 | size_t | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,int) | | ossl_param_build_set_int | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,int) | | ossl_param_build_set_int | 1 | OSSL_PARAM * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,int) | | ossl_param_build_set_int | 2 | const char * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,int) | | ossl_param_build_set_int | 3 | int | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,long) | | ossl_param_build_set_long | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,long) | | ossl_param_build_set_long | 1 | OSSL_PARAM * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,long) | | ossl_param_build_set_long | 2 | const char * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *,long) | | ossl_param_build_set_long | 3 | long | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *[],stack_st_BIGNUM_const *) | | ossl_param_build_set_multi_key_bn | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *[],stack_st_BIGNUM_const *) | | ossl_param_build_set_multi_key_bn | 1 | OSSL_PARAM * | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *[],stack_st_BIGNUM_const *) | | ossl_param_build_set_multi_key_bn | 2 | const char *[] | +| (OSSL_PARAM_BLD *,OSSL_PARAM *,const char *[],stack_st_BIGNUM_const *) | | ossl_param_build_set_multi_key_bn | 3 | stack_st_BIGNUM_const * | +| (OSSL_PARAM_BLD *,const char *,const BIGNUM *) | | OSSL_PARAM_BLD_push_BN | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,const char *,const BIGNUM *) | | OSSL_PARAM_BLD_push_BN | 1 | const char * | +| (OSSL_PARAM_BLD *,const char *,const BIGNUM *) | | OSSL_PARAM_BLD_push_BN | 2 | const BIGNUM * | +| (OSSL_PARAM_BLD *,const char *,const BIGNUM *,size_t) | | OSSL_PARAM_BLD_push_BN_pad | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,const char *,const BIGNUM *,size_t) | | OSSL_PARAM_BLD_push_BN_pad | 1 | const char * | +| (OSSL_PARAM_BLD *,const char *,const BIGNUM *,size_t) | | OSSL_PARAM_BLD_push_BN_pad | 2 | const BIGNUM * | +| (OSSL_PARAM_BLD *,const char *,const BIGNUM *,size_t) | | OSSL_PARAM_BLD_push_BN_pad | 3 | size_t | +| (OSSL_PARAM_BLD *,const char *,const char *,size_t) | | OSSL_PARAM_BLD_push_utf8_string | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,const char *,const char *,size_t) | | OSSL_PARAM_BLD_push_utf8_string | 1 | const char * | +| (OSSL_PARAM_BLD *,const char *,const char *,size_t) | | OSSL_PARAM_BLD_push_utf8_string | 2 | const char * | +| (OSSL_PARAM_BLD *,const char *,const char *,size_t) | | OSSL_PARAM_BLD_push_utf8_string | 3 | size_t | +| (OSSL_PARAM_BLD *,const char *,const void *,size_t) | | OSSL_PARAM_BLD_push_octet_string | 0 | OSSL_PARAM_BLD * | +| (OSSL_PARAM_BLD *,const char *,const void *,size_t) | | OSSL_PARAM_BLD_push_octet_string | 1 | const char * | +| (OSSL_PARAM_BLD *,const char *,const void *,size_t) | | OSSL_PARAM_BLD_push_octet_string | 2 | const void * | +| (OSSL_PARAM_BLD *,const char *,const void *,size_t) | | OSSL_PARAM_BLD_push_octet_string | 3 | size_t | +| (OSSL_PQUEUE *) | | ossl_pqueue_pop | 0 | OSSL_PQUEUE * | +| (OSSL_PQUEUE *,size_t) | | ossl_pqueue_remove | 0 | OSSL_PQUEUE * | +| (OSSL_PQUEUE *,size_t) | | ossl_pqueue_remove | 1 | size_t | +| (OSSL_PQUEUE *,void *,size_t *) | | ossl_pqueue_push | 0 | OSSL_PQUEUE * | +| (OSSL_PQUEUE *,void *,size_t *) | | ossl_pqueue_push | 1 | void * | +| (OSSL_PQUEUE *,void *,size_t *) | | ossl_pqueue_push | 2 | size_t * | +| (OSSL_PRIVILEGE_POLICY_ID *) | | OSSL_PRIVILEGE_POLICY_ID_free | 0 | OSSL_PRIVILEGE_POLICY_ID * | +| (OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long) | | d2i_OSSL_PRIVILEGE_POLICY_ID | 0 | OSSL_PRIVILEGE_POLICY_ID ** | +| (OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long) | | d2i_OSSL_PRIVILEGE_POLICY_ID | 1 | const unsigned char ** | +| (OSSL_PRIVILEGE_POLICY_ID **,const unsigned char **,long) | | d2i_OSSL_PRIVILEGE_POLICY_ID | 2 | long | +| (OSSL_PROVIDER *) | | ossl_provider_get_parent | 0 | OSSL_PROVIDER * | +| (OSSL_PROVIDER *,OSSL_PROVIDER **,int) | | ossl_provider_add_to_store | 0 | OSSL_PROVIDER * | +| (OSSL_PROVIDER *,OSSL_PROVIDER **,int) | | ossl_provider_add_to_store | 1 | OSSL_PROVIDER ** | +| (OSSL_PROVIDER *,OSSL_PROVIDER **,int) | | ossl_provider_add_to_store | 2 | int | +| (OSSL_PROVIDER *,const OSSL_CORE_HANDLE *) | | ossl_provider_set_child | 0 | OSSL_PROVIDER * | +| (OSSL_PROVIDER *,const OSSL_CORE_HANDLE *) | | ossl_provider_set_child | 1 | const OSSL_CORE_HANDLE * | +| (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 0 | OSSL_PROVIDER * | +| (OSSL_PROVIDER *,const char *) | | ossl_provider_set_module_path | 1 | const char * | +| (OSSL_PROVIDER *,int,..(*)(..),void *) | | evp_names_do_all | 0 | OSSL_PROVIDER * | +| (OSSL_PROVIDER *,int,..(*)(..),void *) | | evp_names_do_all | 1 | int | +| (OSSL_PROVIDER *,int,..(*)(..),void *) | | evp_names_do_all | 2 | ..(*)(..) | +| (OSSL_PROVIDER *,int,..(*)(..),void *) | | evp_names_do_all | 3 | void * | +| (OSSL_PROVIDER *,size_t) | | ossl_provider_set_operation_bit | 0 | OSSL_PROVIDER * | +| (OSSL_PROVIDER *,size_t) | | ossl_provider_set_operation_bit | 1 | size_t | +| (OSSL_PROVIDER *,size_t,int *) | | ossl_provider_test_operation_bit | 0 | OSSL_PROVIDER * | +| (OSSL_PROVIDER *,size_t,int *) | | ossl_provider_test_operation_bit | 1 | size_t | +| (OSSL_PROVIDER *,size_t,int *) | | ossl_provider_test_operation_bit | 2 | int * | +| (OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int) | | ossl_qrl_enc_level_set_get | 0 | OSSL_QRL_ENC_LEVEL_SET * | +| (OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int) | | ossl_qrl_enc_level_set_get | 1 | uint32_t | +| (OSSL_QRL_ENC_LEVEL_SET *,uint32_t,int) | | ossl_qrl_enc_level_set_get | 2 | int | +| (OSSL_QRX *) | | ossl_qrx_get_cur_forged_pkt_count | 0 | OSSL_QRX * | +| (OSSL_QRX *) | | ossl_qrx_get_short_hdr_conn_id_len | 0 | OSSL_QRX * | +| (OSSL_QRX *,OSSL_QRX_PKT *) | | ossl_qrx_inject_pkt | 0 | OSSL_QRX * | +| (OSSL_QRX *,OSSL_QRX_PKT *) | | ossl_qrx_inject_pkt | 1 | OSSL_QRX_PKT * | +| (OSSL_QRX *,OSSL_QRX_PKT **) | | ossl_qrx_read_pkt | 0 | OSSL_QRX * | +| (OSSL_QRX *,OSSL_QRX_PKT **) | | ossl_qrx_read_pkt | 1 | OSSL_QRX_PKT ** | +| (OSSL_QRX *,QUIC_URXE *) | | ossl_qrx_inject_urxe | 0 | OSSL_QRX * | +| (OSSL_QRX *,QUIC_URXE *) | | ossl_qrx_inject_urxe | 1 | QUIC_URXE * | +| (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 0 | OSSL_QRX * | +| (OSSL_QRX *,int) | | ossl_qrx_get_bytes_received | 1 | int | +| (OSSL_QRX *,ossl_msg_cb,SSL *) | | ossl_qrx_set_msg_callback | 0 | OSSL_QRX * | +| (OSSL_QRX *,ossl_msg_cb,SSL *) | | ossl_qrx_set_msg_callback | 1 | ossl_msg_cb | +| (OSSL_QRX *,ossl_msg_cb,SSL *) | | ossl_qrx_set_msg_callback | 2 | SSL * | +| (OSSL_QRX *,ossl_qrx_key_update_cb *,void *) | | ossl_qrx_set_key_update_cb | 0 | OSSL_QRX * | +| (OSSL_QRX *,ossl_qrx_key_update_cb *,void *) | | ossl_qrx_set_key_update_cb | 1 | ossl_qrx_key_update_cb * | +| (OSSL_QRX *,ossl_qrx_key_update_cb *,void *) | | ossl_qrx_set_key_update_cb | 2 | void * | +| (OSSL_QRX *,ossl_qrx_late_validation_cb *,void *) | | ossl_qrx_set_late_validation_cb | 0 | OSSL_QRX * | +| (OSSL_QRX *,ossl_qrx_late_validation_cb *,void *) | | ossl_qrx_set_late_validation_cb | 1 | ossl_qrx_late_validation_cb * | +| (OSSL_QRX *,ossl_qrx_late_validation_cb *,void *) | | ossl_qrx_set_late_validation_cb | 2 | void * | +| (OSSL_QRX *,void *) | | ossl_qrx_set_msg_callback_arg | 0 | OSSL_QRX * | +| (OSSL_QRX *,void *) | | ossl_qrx_set_msg_callback_arg | 1 | void * | +| (OSSL_QTX *) | | ossl_qtx_get_cur_dgram_len_bytes | 0 | OSSL_QTX * | +| (OSSL_QTX *) | | ossl_qtx_get_mdpl | 0 | OSSL_QTX * | +| (OSSL_QTX *) | | ossl_qtx_get_queue_len_bytes | 0 | OSSL_QTX * | +| (OSSL_QTX *) | | ossl_qtx_get_queue_len_datagrams | 0 | OSSL_QTX * | +| (OSSL_QTX *) | | ossl_qtx_get_unflushed_pkt_count | 0 | OSSL_QTX * | +| (OSSL_QTX *,..(*)(..),void *) | | ossl_qtx_set_qlog_cb | 0 | OSSL_QTX * | +| (OSSL_QTX *,..(*)(..),void *) | | ossl_qtx_set_qlog_cb | 1 | ..(*)(..) | +| (OSSL_QTX *,..(*)(..),void *) | | ossl_qtx_set_qlog_cb | 2 | void * | +| (OSSL_QTX *,BIO *) | | ossl_qtx_set_bio | 0 | OSSL_QTX * | +| (OSSL_QTX *,BIO *) | | ossl_qtx_set_bio | 1 | BIO * | +| (OSSL_QTX *,BIO_MSG *) | | ossl_qtx_pop_net | 0 | OSSL_QTX * | +| (OSSL_QTX *,BIO_MSG *) | | ossl_qtx_pop_net | 1 | BIO_MSG * | +| (OSSL_QTX *,ossl_msg_cb,SSL *) | | ossl_qtx_set_msg_callback | 0 | OSSL_QTX * | +| (OSSL_QTX *,ossl_msg_cb,SSL *) | | ossl_qtx_set_msg_callback | 1 | ossl_msg_cb | +| (OSSL_QTX *,ossl_msg_cb,SSL *) | | ossl_qtx_set_msg_callback | 2 | SSL * | +| (OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_qtx_set_mutator | 0 | OSSL_QTX * | +| (OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_qtx_set_mutator | 1 | ossl_mutate_packet_cb | +| (OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_qtx_set_mutator | 2 | ossl_finish_mutate_cb | +| (OSSL_QTX *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_qtx_set_mutator | 3 | void * | +| (OSSL_QTX *,size_t) | | ossl_qtx_set_mdpl | 0 | OSSL_QTX * | +| (OSSL_QTX *,size_t) | | ossl_qtx_set_mdpl | 1 | size_t | +| (OSSL_QTX *,uint32_t) | | ossl_qtx_get_cur_epoch_pkt_count | 0 | OSSL_QTX * | +| (OSSL_QTX *,uint32_t) | | ossl_qtx_get_cur_epoch_pkt_count | 1 | uint32_t | +| (OSSL_QTX *,uint32_t) | | ossl_qtx_is_enc_level_provisioned | 0 | OSSL_QTX * | +| (OSSL_QTX *,uint32_t) | | ossl_qtx_is_enc_level_provisioned | 1 | uint32_t | +| (OSSL_QTX *,uint32_t,size_t,size_t *) | | ossl_qtx_calculate_ciphertext_payload_len | 0 | OSSL_QTX * | +| (OSSL_QTX *,uint32_t,size_t,size_t *) | | ossl_qtx_calculate_ciphertext_payload_len | 1 | uint32_t | +| (OSSL_QTX *,uint32_t,size_t,size_t *) | | ossl_qtx_calculate_ciphertext_payload_len | 2 | size_t | +| (OSSL_QTX *,uint32_t,size_t,size_t *) | | ossl_qtx_calculate_ciphertext_payload_len | 3 | size_t * | +| (OSSL_QTX *,uint32_t,size_t,size_t *) | | ossl_qtx_calculate_plaintext_payload_len | 0 | OSSL_QTX * | +| (OSSL_QTX *,uint32_t,size_t,size_t *) | | ossl_qtx_calculate_plaintext_payload_len | 1 | uint32_t | +| (OSSL_QTX *,uint32_t,size_t,size_t *) | | ossl_qtx_calculate_plaintext_payload_len | 2 | size_t | +| (OSSL_QTX *,uint32_t,size_t,size_t *) | | ossl_qtx_calculate_plaintext_payload_len | 3 | size_t * | +| (OSSL_QTX *,void *) | | ossl_qtx_set_msg_callback_arg | 0 | OSSL_QTX * | +| (OSSL_QTX *,void *) | | ossl_qtx_set_msg_callback_arg | 1 | void * | +| (OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *) | | ossl_quic_tx_packetiser_set_ack_tx_cb | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *) | | ossl_quic_tx_packetiser_set_ack_tx_cb | 1 | ..(*)(..) | +| (OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *) | | ossl_quic_tx_packetiser_set_ack_tx_cb | 2 | void * | +| (OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *) | | ossl_quic_tx_packetiser_set_qlog_cb | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *) | | ossl_quic_tx_packetiser_set_qlog_cb | 1 | ..(*)(..) | +| (OSSL_QUIC_TX_PACKETISER *,..(*)(..),void *) | | ossl_quic_tx_packetiser_set_qlog_cb | 2 | void * | +| (OSSL_QUIC_TX_PACKETISER *,const OSSL_QUIC_FRAME_CONN_CLOSE *) | | ossl_quic_tx_packetiser_schedule_conn_close | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,const OSSL_QUIC_FRAME_CONN_CLOSE *) | | ossl_quic_tx_packetiser_schedule_conn_close | 1 | const OSSL_QUIC_FRAME_CONN_CLOSE * | +| (OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *) | | ossl_quic_tx_packetiser_set_cur_dcid | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *) | | ossl_quic_tx_packetiser_set_cur_dcid | 1 | const QUIC_CONN_ID * | +| (OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *) | | ossl_quic_tx_packetiser_set_cur_scid | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,const QUIC_CONN_ID *) | | ossl_quic_tx_packetiser_set_cur_scid | 1 | const QUIC_CONN_ID * | +| (OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *) | | ossl_quic_tx_packetiser_set_initial_token | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *) | | ossl_quic_tx_packetiser_set_initial_token | 1 | const unsigned char * | +| (OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *) | | ossl_quic_tx_packetiser_set_initial_token | 2 | size_t | +| (OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *) | | ossl_quic_tx_packetiser_set_initial_token | 3 | ossl_quic_initial_token_free_fn * | +| (OSSL_QUIC_TX_PACKETISER *,const unsigned char *,size_t,ossl_quic_initial_token_free_fn *,void *) | | ossl_quic_tx_packetiser_set_initial_token | 4 | void * | +| (OSSL_QUIC_TX_PACKETISER *,ossl_msg_cb,SSL *) | | ossl_quic_tx_packetiser_set_msg_callback | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,ossl_msg_cb,SSL *) | | ossl_quic_tx_packetiser_set_msg_callback | 1 | ossl_msg_cb | +| (OSSL_QUIC_TX_PACKETISER *,ossl_msg_cb,SSL *) | | ossl_quic_tx_packetiser_set_msg_callback | 2 | SSL * | +| (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_add_unvalidated_credit | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_add_unvalidated_credit | 1 | size_t | +| (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_consume_unvalidated_credit | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_consume_unvalidated_credit | 1 | size_t | +| (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_record_received_closing_bytes | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_record_received_closing_bytes | 1 | size_t | +| (OSSL_QUIC_TX_PACKETISER *,uint32_t) | | ossl_quic_tx_packetiser_get_next_pn | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,uint32_t) | | ossl_quic_tx_packetiser_get_next_pn | 1 | uint32_t | +| (OSSL_QUIC_TX_PACKETISER *,uint32_t) | | ossl_quic_tx_packetiser_schedule_ack | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,uint32_t) | | ossl_quic_tx_packetiser_schedule_ack | 1 | uint32_t | +| (OSSL_QUIC_TX_PACKETISER *,uint32_t) | | ossl_quic_tx_packetiser_schedule_ack_eliciting | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,uint32_t) | | ossl_quic_tx_packetiser_schedule_ack_eliciting | 1 | uint32_t | +| (OSSL_QUIC_TX_PACKETISER *,uint32_t) | | ossl_quic_tx_packetiser_set_protocol_version | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,uint32_t) | | ossl_quic_tx_packetiser_set_protocol_version | 1 | uint32_t | +| (OSSL_QUIC_TX_PACKETISER *,void *) | | ossl_quic_tx_packetiser_set_msg_callback_arg | 0 | OSSL_QUIC_TX_PACKETISER * | +| (OSSL_QUIC_TX_PACKETISER *,void *) | | ossl_quic_tx_packetiser_set_msg_callback_arg | 1 | void * | +| (OSSL_RECORD_LAYER *) | | tls_app_data_pending | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *) | | tls_get_alert_code | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *) | | tls_get_compression | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *) | | tls_unprocessed_read_pending | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,BIO *) | | tls_set1_bio | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,BIO *) | | tls_set1_bio | 1 | BIO * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_default | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_default | 1 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_default | 2 | size_t | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_multiblock | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_multiblock | 1 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t) | | tls_write_records_multiblock | 2 | size_t | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls1_initialise_write_packets | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls1_initialise_write_packets | 1 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls1_initialise_write_packets | 2 | size_t | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls1_initialise_write_packets | 3 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls1_initialise_write_packets | 4 | WPACKET * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls1_initialise_write_packets | 5 | TLS_BUFFER * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls1_initialise_write_packets | 6 | size_t * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls_initialise_write_packets_default | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls_initialise_write_packets_default | 1 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls_initialise_write_packets_default | 2 | size_t | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls_initialise_write_packets_default | 3 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls_initialise_write_packets_default | 4 | WPACKET * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls_initialise_write_packets_default | 5 | TLS_BUFFER * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_BUFFER *,size_t *) | | tls_initialise_write_packets_default | 6 | size_t * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *) | | tls1_allocate_write_buffers | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *) | | tls1_allocate_write_buffers | 1 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *) | | tls1_allocate_write_buffers | 2 | size_t | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *) | | tls1_allocate_write_buffers | 3 | size_t * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *) | | tls_allocate_write_buffers_default | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *) | | tls_allocate_write_buffers_default | 1 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *) | | tls_allocate_write_buffers_default | 2 | size_t | +| (OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *) | | tls_allocate_write_buffers_default | 3 | size_t * | +| (OSSL_RECORD_LAYER *,TLS_RL_RECORD *) | | tls_default_post_process_record | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,TLS_RL_RECORD *) | | tls_default_post_process_record | 1 | TLS_RL_RECORD * | +| (OSSL_RECORD_LAYER *,TLS_RL_RECORD *) | | tls_do_compress | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,TLS_RL_RECORD *) | | tls_do_compress | 1 | TLS_RL_RECORD * | +| (OSSL_RECORD_LAYER *,TLS_RL_RECORD *) | | tls_do_uncompress | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,TLS_RL_RECORD *) | | tls_do_uncompress | 1 | TLS_RL_RECORD * | +| (OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **) | | dtls_prepare_record_header | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **) | | dtls_prepare_record_header | 1 | WPACKET * | +| (OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **) | | dtls_prepare_record_header | 2 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **) | | dtls_prepare_record_header | 3 | uint8_t | +| (OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **) | | dtls_prepare_record_header | 4 | unsigned char ** | +| (OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **) | | tls_prepare_record_header_default | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **) | | tls_prepare_record_header_default | 1 | WPACKET * | +| (OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **) | | tls_prepare_record_header_default | 2 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **) | | tls_prepare_record_header_default | 3 | uint8_t | +| (OSSL_RECORD_LAYER *,WPACKET *,OSSL_RECORD_TEMPLATE *,uint8_t,unsigned char **) | | tls_prepare_record_header_default | 4 | unsigned char ** | +| (OSSL_RECORD_LAYER *,const OSSL_PARAM *) | | tls_set_options | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,const OSSL_PARAM *) | | tls_set_options | 1 | const OSSL_PARAM * | +| (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,int) | | tls_set_first_handshake | 1 | int | +| (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,int) | | tls_set_plain_alerts | 1 | int | +| (OSSL_RECORD_LAYER *,int,int,const char *,...) | | ossl_rlayer_fatal | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,int,int,const char *,...) | | ossl_rlayer_fatal | 1 | int | +| (OSSL_RECORD_LAYER *,int,int,const char *,...) | | ossl_rlayer_fatal | 2 | int | +| (OSSL_RECORD_LAYER *,int,int,const char *,...) | | ossl_rlayer_fatal | 3 | const char * | +| (OSSL_RECORD_LAYER *,int,int,const char *,...) | | ossl_rlayer_fatal | 4 | ... | +| (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_frag_len | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_frag_len | 1 | size_t | +| (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_pipelines | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_pipelines | 1 | size_t | +| (OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *) | | dtls_post_encryption_processing | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *) | | dtls_post_encryption_processing | 1 | size_t | +| (OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *) | | dtls_post_encryption_processing | 2 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *) | | dtls_post_encryption_processing | 3 | WPACKET * | +| (OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *) | | dtls_post_encryption_processing | 4 | TLS_RL_RECORD * | +| (OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *) | | tls_post_encryption_processing_default | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *) | | tls_post_encryption_processing_default | 1 | size_t | +| (OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *) | | tls_post_encryption_processing_default | 2 | OSSL_RECORD_TEMPLATE * | +| (OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *) | | tls_post_encryption_processing_default | 3 | WPACKET * | +| (OSSL_RECORD_LAYER *,size_t,OSSL_RECORD_TEMPLATE *,WPACKET *,TLS_RL_RECORD *) | | tls_post_encryption_processing_default | 4 | TLS_RL_RECORD * | +| (OSSL_RECORD_LAYER *,size_t,WPACKET *,TLS_RL_RECORD *) | | tls_prepare_for_encryption_default | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,size_t,WPACKET *,TLS_RL_RECORD *) | | tls_prepare_for_encryption_default | 1 | size_t | +| (OSSL_RECORD_LAYER *,size_t,WPACKET *,TLS_RL_RECORD *) | | tls_prepare_for_encryption_default | 2 | WPACKET * | +| (OSSL_RECORD_LAYER *,size_t,WPACKET *,TLS_RL_RECORD *) | | tls_prepare_for_encryption_default | 3 | TLS_RL_RECORD * | +| (OSSL_RECORD_LAYER *,size_t,size_t,int,int,size_t *) | | tls_default_read_n | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,size_t,size_t,int,int,size_t *) | | tls_default_read_n | 1 | size_t | +| (OSSL_RECORD_LAYER *,size_t,size_t,int,int,size_t *) | | tls_default_read_n | 2 | size_t | +| (OSSL_RECORD_LAYER *,size_t,size_t,int,int,size_t *) | | tls_default_read_n | 3 | int | +| (OSSL_RECORD_LAYER *,size_t,size_t,int,int,size_t *) | | tls_default_read_n | 4 | int | +| (OSSL_RECORD_LAYER *,size_t,size_t,int,int,size_t *) | | tls_default_read_n | 5 | size_t * | +| (OSSL_RECORD_LAYER *,size_t,size_t,size_t) | | tls_setup_write_buffer | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,size_t,size_t,size_t) | | tls_setup_write_buffer | 1 | size_t | +| (OSSL_RECORD_LAYER *,size_t,size_t,size_t) | | tls_setup_write_buffer | 2 | size_t | +| (OSSL_RECORD_LAYER *,size_t,size_t,size_t) | | tls_setup_write_buffer | 3 | size_t | +| (OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *) | | tls_get_max_records_default | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *) | | tls_get_max_records_default | 1 | uint8_t | +| (OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *) | | tls_get_max_records_default | 2 | size_t | +| (OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *) | | tls_get_max_records_default | 3 | size_t | +| (OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *) | | tls_get_max_records_default | 4 | size_t * | +| (OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *) | | tls_get_max_records_multiblock | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *) | | tls_get_max_records_multiblock | 1 | uint8_t | +| (OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *) | | tls_get_max_records_multiblock | 2 | size_t | +| (OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *) | | tls_get_max_records_multiblock | 3 | size_t | +| (OSSL_RECORD_LAYER *,uint8_t,size_t,size_t,size_t *) | | tls_get_max_records_multiblock | 4 | size_t * | +| (OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *) | | tls_read_record | 0 | OSSL_RECORD_LAYER * | +| (OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *) | | tls_read_record | 1 | void ** | +| (OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *) | | tls_read_record | 2 | int * | +| (OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *) | | tls_read_record | 3 | uint8_t * | +| (OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *) | | tls_read_record | 4 | const unsigned char ** | +| (OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *) | | tls_read_record | 5 | size_t * | +| (OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *) | | tls_read_record | 6 | uint16_t * | +| (OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *) | | tls_read_record | 7 | unsigned char * | +| (OSSL_ROLE_SPEC_CERT_ID *) | | OSSL_ROLE_SPEC_CERT_ID_free | 0 | OSSL_ROLE_SPEC_CERT_ID * | +| (OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long) | | d2i_OSSL_ROLE_SPEC_CERT_ID | 0 | OSSL_ROLE_SPEC_CERT_ID ** | +| (OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long) | | d2i_OSSL_ROLE_SPEC_CERT_ID | 1 | const unsigned char ** | +| (OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long) | | d2i_OSSL_ROLE_SPEC_CERT_ID | 2 | long | +| (OSSL_ROLE_SPEC_CERT_ID_SYNTAX *) | | OSSL_ROLE_SPEC_CERT_ID_SYNTAX_free | 0 | OSSL_ROLE_SPEC_CERT_ID_SYNTAX * | +| (OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX | 0 | OSSL_ROLE_SPEC_CERT_ID_SYNTAX ** | +| (OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX | 1 | const unsigned char ** | +| (OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX | 2 | long | +| (OSSL_SELF_TEST *,const char *,const char *) | | OSSL_SELF_TEST_onbegin | 0 | OSSL_SELF_TEST * | +| (OSSL_SELF_TEST *,const char *,const char *) | | OSSL_SELF_TEST_onbegin | 1 | const char * | +| (OSSL_SELF_TEST *,const char *,const char *) | | OSSL_SELF_TEST_onbegin | 2 | const char * | +| (OSSL_SELF_TEST *,unsigned char *) | | OSSL_SELF_TEST_oncorrupt_byte | 0 | OSSL_SELF_TEST * | +| (OSSL_SELF_TEST *,unsigned char *) | | OSSL_SELF_TEST_oncorrupt_byte | 1 | unsigned char * | +| (OSSL_STATM *,OSSL_RTT_INFO *) | | ossl_statm_get_rtt_info | 0 | OSSL_STATM * | +| (OSSL_STATM *,OSSL_RTT_INFO *) | | ossl_statm_get_rtt_info | 1 | OSSL_RTT_INFO * | +| (OSSL_STATM *,OSSL_TIME,OSSL_TIME) | | ossl_statm_update_rtt | 0 | OSSL_STATM * | +| (OSSL_STATM *,OSSL_TIME,OSSL_TIME) | | ossl_statm_update_rtt | 1 | OSSL_TIME | +| (OSSL_STATM *,OSSL_TIME,OSSL_TIME) | | ossl_statm_update_rtt | 2 | OSSL_TIME | +| (OSSL_STORE_CTX *) | | OSSL_STORE_error | 0 | OSSL_STORE_CTX * | +| (OSSL_STORE_CTX *) | | OSSL_STORE_load | 0 | OSSL_STORE_CTX * | +| (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 0 | OSSL_STORE_CTX * | +| (OSSL_STORE_CTX *,int) | | OSSL_STORE_expect | 1 | int | +| (OSSL_STORE_CTX *,int,va_list) | | OSSL_STORE_vctrl | 0 | OSSL_STORE_CTX * | +| (OSSL_STORE_CTX *,int,va_list) | | OSSL_STORE_vctrl | 1 | int | +| (OSSL_STORE_CTX *,int,va_list) | | OSSL_STORE_vctrl | 2 | va_list | +| (OSSL_STORE_LOADER *,OSSL_STORE_attach_fn) | | OSSL_STORE_LOADER_set_attach | 0 | OSSL_STORE_LOADER * | +| (OSSL_STORE_LOADER *,OSSL_STORE_attach_fn) | | OSSL_STORE_LOADER_set_attach | 1 | OSSL_STORE_attach_fn | +| (OSSL_STORE_LOADER *,OSSL_STORE_close_fn) | | OSSL_STORE_LOADER_set_close | 0 | OSSL_STORE_LOADER * | +| (OSSL_STORE_LOADER *,OSSL_STORE_close_fn) | | OSSL_STORE_LOADER_set_close | 1 | OSSL_STORE_close_fn | +| (OSSL_STORE_LOADER *,OSSL_STORE_ctrl_fn) | | OSSL_STORE_LOADER_set_ctrl | 0 | OSSL_STORE_LOADER * | +| (OSSL_STORE_LOADER *,OSSL_STORE_ctrl_fn) | | OSSL_STORE_LOADER_set_ctrl | 1 | OSSL_STORE_ctrl_fn | +| (OSSL_STORE_LOADER *,OSSL_STORE_eof_fn) | | OSSL_STORE_LOADER_set_eof | 0 | OSSL_STORE_LOADER * | +| (OSSL_STORE_LOADER *,OSSL_STORE_eof_fn) | | OSSL_STORE_LOADER_set_eof | 1 | OSSL_STORE_eof_fn | +| (OSSL_STORE_LOADER *,OSSL_STORE_error_fn) | | OSSL_STORE_LOADER_set_error | 0 | OSSL_STORE_LOADER * | +| (OSSL_STORE_LOADER *,OSSL_STORE_error_fn) | | OSSL_STORE_LOADER_set_error | 1 | OSSL_STORE_error_fn | +| (OSSL_STORE_LOADER *,OSSL_STORE_expect_fn) | | OSSL_STORE_LOADER_set_expect | 0 | OSSL_STORE_LOADER * | +| (OSSL_STORE_LOADER *,OSSL_STORE_expect_fn) | | OSSL_STORE_LOADER_set_expect | 1 | OSSL_STORE_expect_fn | +| (OSSL_STORE_LOADER *,OSSL_STORE_find_fn) | | OSSL_STORE_LOADER_set_find | 0 | OSSL_STORE_LOADER * | +| (OSSL_STORE_LOADER *,OSSL_STORE_find_fn) | | OSSL_STORE_LOADER_set_find | 1 | OSSL_STORE_find_fn | +| (OSSL_STORE_LOADER *,OSSL_STORE_load_fn) | | OSSL_STORE_LOADER_set_load | 0 | OSSL_STORE_LOADER * | +| (OSSL_STORE_LOADER *,OSSL_STORE_load_fn) | | OSSL_STORE_LOADER_set_load | 1 | OSSL_STORE_load_fn | +| (OSSL_STORE_LOADER *,OSSL_STORE_open_ex_fn) | | OSSL_STORE_LOADER_set_open_ex | 0 | OSSL_STORE_LOADER * | +| (OSSL_STORE_LOADER *,OSSL_STORE_open_ex_fn) | | OSSL_STORE_LOADER_set_open_ex | 1 | OSSL_STORE_open_ex_fn | +| (OSSL_STORE_LOADER *,OSSL_STORE_open_fn) | | OSSL_STORE_LOADER_set_open | 0 | OSSL_STORE_LOADER * | +| (OSSL_STORE_LOADER *,OSSL_STORE_open_fn) | | OSSL_STORE_LOADER_set_open | 1 | OSSL_STORE_open_fn | +| (OSSL_TARGET *) | | OSSL_TARGET_free | 0 | OSSL_TARGET * | +| (OSSL_TARGET **,const unsigned char **,long) | | d2i_OSSL_TARGET | 0 | OSSL_TARGET ** | +| (OSSL_TARGET **,const unsigned char **,long) | | d2i_OSSL_TARGET | 1 | const unsigned char ** | +| (OSSL_TARGET **,const unsigned char **,long) | | d2i_OSSL_TARGET | 2 | long | +| (OSSL_TARGETING_INFORMATION *) | | OSSL_TARGETING_INFORMATION_free | 0 | OSSL_TARGETING_INFORMATION * | +| (OSSL_TARGETING_INFORMATION **,const unsigned char **,long) | | d2i_OSSL_TARGETING_INFORMATION | 0 | OSSL_TARGETING_INFORMATION ** | +| (OSSL_TARGETING_INFORMATION **,const unsigned char **,long) | | d2i_OSSL_TARGETING_INFORMATION | 1 | const unsigned char ** | +| (OSSL_TARGETING_INFORMATION **,const unsigned char **,long) | | d2i_OSSL_TARGETING_INFORMATION | 2 | long | +| (OSSL_TARGETS *) | | OSSL_TARGETS_free | 0 | OSSL_TARGETS * | +| (OSSL_TARGETS **,const unsigned char **,long) | | d2i_OSSL_TARGETS | 0 | OSSL_TARGETS ** | +| (OSSL_TARGETS **,const unsigned char **,long) | | d2i_OSSL_TARGETS | 1 | const unsigned char ** | +| (OSSL_TARGETS **,const unsigned char **,long) | | d2i_OSSL_TARGETS | 2 | long | +| (OSSL_TIME_PERIOD *) | | OSSL_TIME_PERIOD_free | 0 | OSSL_TIME_PERIOD * | +| (OSSL_TIME_PERIOD **,const unsigned char **,long) | | d2i_OSSL_TIME_PERIOD | 0 | OSSL_TIME_PERIOD ** | +| (OSSL_TIME_PERIOD **,const unsigned char **,long) | | d2i_OSSL_TIME_PERIOD | 1 | const unsigned char ** | +| (OSSL_TIME_PERIOD **,const unsigned char **,long) | | d2i_OSSL_TIME_PERIOD | 2 | long | +| (OSSL_TIME_SPEC *) | | OSSL_TIME_SPEC_free | 0 | OSSL_TIME_SPEC * | +| (OSSL_TIME_SPEC **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC | 0 | OSSL_TIME_SPEC ** | +| (OSSL_TIME_SPEC **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC | 1 | const unsigned char ** | +| (OSSL_TIME_SPEC **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC | 2 | long | +| (OSSL_TIME_SPEC_ABSOLUTE *) | | OSSL_TIME_SPEC_ABSOLUTE_free | 0 | OSSL_TIME_SPEC_ABSOLUTE * | +| (OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_ABSOLUTE | 0 | OSSL_TIME_SPEC_ABSOLUTE ** | +| (OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_ABSOLUTE | 1 | const unsigned char ** | +| (OSSL_TIME_SPEC_ABSOLUTE **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_ABSOLUTE | 2 | long | +| (OSSL_TIME_SPEC_DAY *) | | OSSL_TIME_SPEC_DAY_free | 0 | OSSL_TIME_SPEC_DAY * | +| (OSSL_TIME_SPEC_DAY **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_DAY | 0 | OSSL_TIME_SPEC_DAY ** | +| (OSSL_TIME_SPEC_DAY **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_DAY | 1 | const unsigned char ** | +| (OSSL_TIME_SPEC_DAY **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_DAY | 2 | long | +| (OSSL_TIME_SPEC_MONTH *) | | OSSL_TIME_SPEC_MONTH_free | 0 | OSSL_TIME_SPEC_MONTH * | +| (OSSL_TIME_SPEC_MONTH **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_MONTH | 0 | OSSL_TIME_SPEC_MONTH ** | +| (OSSL_TIME_SPEC_MONTH **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_MONTH | 1 | const unsigned char ** | +| (OSSL_TIME_SPEC_MONTH **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_MONTH | 2 | long | +| (OSSL_TIME_SPEC_TIME *) | | OSSL_TIME_SPEC_TIME_free | 0 | OSSL_TIME_SPEC_TIME * | +| (OSSL_TIME_SPEC_TIME **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_TIME | 0 | OSSL_TIME_SPEC_TIME ** | +| (OSSL_TIME_SPEC_TIME **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_TIME | 1 | const unsigned char ** | +| (OSSL_TIME_SPEC_TIME **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_TIME | 2 | long | +| (OSSL_TIME_SPEC_WEEKS *) | | OSSL_TIME_SPEC_WEEKS_free | 0 | OSSL_TIME_SPEC_WEEKS * | +| (OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_WEEKS | 0 | OSSL_TIME_SPEC_WEEKS ** | +| (OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_WEEKS | 1 | const unsigned char ** | +| (OSSL_TIME_SPEC_WEEKS **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_WEEKS | 2 | long | +| (OSSL_TIME_SPEC_X_DAY_OF *) | | OSSL_TIME_SPEC_X_DAY_OF_free | 0 | OSSL_TIME_SPEC_X_DAY_OF * | +| (OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_X_DAY_OF | 0 | OSSL_TIME_SPEC_X_DAY_OF ** | +| (OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_X_DAY_OF | 1 | const unsigned char ** | +| (OSSL_TIME_SPEC_X_DAY_OF **,const unsigned char **,long) | | d2i_OSSL_TIME_SPEC_X_DAY_OF | 2 | long | +| (OSSL_USER_NOTICE_SYNTAX *) | | OSSL_USER_NOTICE_SYNTAX_free | 0 | OSSL_USER_NOTICE_SYNTAX * | +| (OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_USER_NOTICE_SYNTAX | 0 | OSSL_USER_NOTICE_SYNTAX ** | +| (OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_USER_NOTICE_SYNTAX | 1 | const unsigned char ** | +| (OSSL_USER_NOTICE_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_USER_NOTICE_SYNTAX | 2 | long | +| (OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio_ctx | 0 | OSSL_i2d_of_void_ctx * | +| (OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio_ctx | 1 | void * | +| (OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio_ctx | 2 | const char * | +| (OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio_ctx | 3 | BIO * | +| (OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio_ctx | 4 | const void * | +| (OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio_ctx | 5 | const EVP_CIPHER * | +| (OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio_ctx | 6 | const unsigned char * | +| (OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio_ctx | 7 | int | +| (OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio_ctx | 8 | pem_password_cb * | +| (OSSL_i2d_of_void_ctx *,void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio_ctx | 9 | void * | +| (OTHERNAME *) | | OTHERNAME_free | 0 | OTHERNAME * | +| (OTHERNAME **,const unsigned char **,long) | | d2i_OTHERNAME | 0 | OTHERNAME ** | +| (OTHERNAME **,const unsigned char **,long) | | d2i_OTHERNAME | 1 | const unsigned char ** | +| (OTHERNAME **,const unsigned char **,long) | | d2i_OTHERNAME | 2 | long | +| (OTHERNAME *,OTHERNAME *) | | OTHERNAME_cmp | 0 | OTHERNAME * | +| (OTHERNAME *,OTHERNAME *) | | OTHERNAME_cmp | 1 | OTHERNAME * | +| (PACKET *) | | ossl_quic_wire_decode_padding | 0 | PACKET * | +| (PACKET *,BIGNUM *) | | ossl_decode_der_integer | 0 | PACKET * | +| (PACKET *,BIGNUM *) | | ossl_decode_der_integer | 1 | BIGNUM * | +| (PACKET *,OSSL_QUIC_FRAME_CONN_CLOSE *) | | ossl_quic_wire_decode_frame_conn_close | 0 | PACKET * | +| (PACKET *,OSSL_QUIC_FRAME_CONN_CLOSE *) | | ossl_quic_wire_decode_frame_conn_close | 1 | OSSL_QUIC_FRAME_CONN_CLOSE * | +| (PACKET *,OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_wire_decode_frame_new_conn_id | 0 | PACKET * | +| (PACKET *,OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_wire_decode_frame_new_conn_id | 1 | OSSL_QUIC_FRAME_NEW_CONN_ID * | +| (PACKET *,OSSL_QUIC_FRAME_RESET_STREAM *) | | ossl_quic_wire_decode_frame_reset_stream | 0 | PACKET * | +| (PACKET *,OSSL_QUIC_FRAME_RESET_STREAM *) | | ossl_quic_wire_decode_frame_reset_stream | 1 | OSSL_QUIC_FRAME_RESET_STREAM * | +| (PACKET *,OSSL_QUIC_FRAME_STOP_SENDING *) | | ossl_quic_wire_decode_frame_stop_sending | 0 | PACKET * | +| (PACKET *,OSSL_QUIC_FRAME_STOP_SENDING *) | | ossl_quic_wire_decode_frame_stop_sending | 1 | OSSL_QUIC_FRAME_STOP_SENDING * | +| (PACKET *,PACKET *) | | ossl_decode_der_length | 0 | PACKET * | +| (PACKET *,PACKET *) | | ossl_decode_der_length | 1 | PACKET * | +| (PACKET *,QUIC_PREFERRED_ADDR *) | | ossl_quic_wire_decode_transport_param_preferred_addr | 0 | PACKET * | +| (PACKET *,QUIC_PREFERRED_ADDR *) | | ossl_quic_wire_decode_transport_param_preferred_addr | 1 | QUIC_PREFERRED_ADDR * | +| (PACKET *,const unsigned char **,size_t *) | | ossl_quic_wire_decode_frame_new_token | 0 | PACKET * | +| (PACKET *,const unsigned char **,size_t *) | | ossl_quic_wire_decode_frame_new_token | 1 | const unsigned char ** | +| (PACKET *,const unsigned char **,size_t *) | | ossl_quic_wire_decode_frame_new_token | 2 | size_t * | +| (PACKET *,int,OSSL_QUIC_FRAME_CRYPTO *) | | ossl_quic_wire_decode_frame_crypto | 0 | PACKET * | +| (PACKET *,int,OSSL_QUIC_FRAME_CRYPTO *) | | ossl_quic_wire_decode_frame_crypto | 1 | int | +| (PACKET *,int,OSSL_QUIC_FRAME_CRYPTO *) | | ossl_quic_wire_decode_frame_crypto | 2 | OSSL_QUIC_FRAME_CRYPTO * | +| (PACKET *,int,OSSL_QUIC_FRAME_STREAM *) | | ossl_quic_wire_decode_frame_stream | 0 | PACKET * | +| (PACKET *,int,OSSL_QUIC_FRAME_STREAM *) | | ossl_quic_wire_decode_frame_stream | 1 | int | +| (PACKET *,int,OSSL_QUIC_FRAME_STREAM *) | | ossl_quic_wire_decode_frame_stream | 2 | OSSL_QUIC_FRAME_STREAM * | +| (PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *) | | ossl_quic_wire_decode_pkt_hdr | 0 | PACKET * | +| (PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *) | | ossl_quic_wire_decode_pkt_hdr | 1 | size_t | +| (PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *) | | ossl_quic_wire_decode_pkt_hdr | 2 | int | +| (PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *) | | ossl_quic_wire_decode_pkt_hdr | 3 | int | +| (PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *) | | ossl_quic_wire_decode_pkt_hdr | 4 | QUIC_PKT_HDR * | +| (PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *) | | ossl_quic_wire_decode_pkt_hdr | 5 | QUIC_PKT_HDR_PTRS * | +| (PACKET *,size_t,int,int,QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *,uint64_t *) | | ossl_quic_wire_decode_pkt_hdr | 6 | uint64_t * | +| (PACKET *,uint16_t **,size_t *) | | tls1_save_u16 | 0 | PACKET * | +| (PACKET *,uint16_t **,size_t *) | | tls1_save_u16 | 1 | uint16_t ** | +| (PACKET *,uint16_t **,size_t *) | | tls1_save_u16 | 2 | size_t * | +| (PACKET *,uint32_t,OSSL_QUIC_FRAME_ACK *,uint64_t *) | | ossl_quic_wire_decode_frame_ack | 0 | PACKET * | +| (PACKET *,uint32_t,OSSL_QUIC_FRAME_ACK *,uint64_t *) | | ossl_quic_wire_decode_frame_ack | 1 | uint32_t | +| (PACKET *,uint32_t,OSSL_QUIC_FRAME_ACK *,uint64_t *) | | ossl_quic_wire_decode_frame_ack | 2 | OSSL_QUIC_FRAME_ACK * | +| (PACKET *,uint32_t,OSSL_QUIC_FRAME_ACK *,uint64_t *) | | ossl_quic_wire_decode_frame_ack | 3 | uint64_t * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_data_blocked | 0 | PACKET * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_data_blocked | 1 | uint64_t * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_max_data | 0 | PACKET * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_max_data | 1 | uint64_t * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_max_streams | 0 | PACKET * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_max_streams | 1 | uint64_t * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_path_challenge | 0 | PACKET * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_path_challenge | 1 | uint64_t * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_path_response | 0 | PACKET * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_path_response | 1 | uint64_t * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_retire_conn_id | 0 | PACKET * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_retire_conn_id | 1 | uint64_t * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_streams_blocked | 0 | PACKET * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_decode_frame_streams_blocked | 1 | uint64_t * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_peek_transport_param | 0 | PACKET * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_peek_transport_param | 1 | uint64_t * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_skip_frame_header | 0 | PACKET * | +| (PACKET *,uint64_t *) | | ossl_quic_wire_skip_frame_header | 1 | uint64_t * | +| (PACKET *,uint64_t *,QUIC_CONN_ID *) | | ossl_quic_wire_decode_transport_param_cid | 0 | PACKET * | +| (PACKET *,uint64_t *,QUIC_CONN_ID *) | | ossl_quic_wire_decode_transport_param_cid | 1 | uint64_t * | +| (PACKET *,uint64_t *,QUIC_CONN_ID *) | | ossl_quic_wire_decode_transport_param_cid | 2 | QUIC_CONN_ID * | +| (PACKET *,uint64_t *,int *) | | ossl_quic_wire_peek_frame_header | 0 | PACKET * | +| (PACKET *,uint64_t *,int *) | | ossl_quic_wire_peek_frame_header | 1 | uint64_t * | +| (PACKET *,uint64_t *,int *) | | ossl_quic_wire_peek_frame_header | 2 | int * | +| (PACKET *,uint64_t *,size_t *) | | ossl_quic_wire_decode_transport_param_bytes | 0 | PACKET * | +| (PACKET *,uint64_t *,size_t *) | | ossl_quic_wire_decode_transport_param_bytes | 1 | uint64_t * | +| (PACKET *,uint64_t *,size_t *) | | ossl_quic_wire_decode_transport_param_bytes | 2 | size_t * | +| (PACKET *,uint64_t *,uint64_t *) | | ossl_quic_wire_decode_frame_max_stream_data | 0 | PACKET * | +| (PACKET *,uint64_t *,uint64_t *) | | ossl_quic_wire_decode_frame_max_stream_data | 1 | uint64_t * | +| (PACKET *,uint64_t *,uint64_t *) | | ossl_quic_wire_decode_frame_max_stream_data | 2 | uint64_t * | +| (PACKET *,uint64_t *,uint64_t *) | | ossl_quic_wire_decode_frame_stream_data_blocked | 0 | PACKET * | +| (PACKET *,uint64_t *,uint64_t *) | | ossl_quic_wire_decode_frame_stream_data_blocked | 1 | uint64_t * | +| (PACKET *,uint64_t *,uint64_t *) | | ossl_quic_wire_decode_frame_stream_data_blocked | 2 | uint64_t * | +| (PACKET *,uint64_t *,uint64_t *) | | ossl_quic_wire_decode_transport_param_int | 0 | PACKET * | +| (PACKET *,uint64_t *,uint64_t *) | | ossl_quic_wire_decode_transport_param_int | 1 | uint64_t * | +| (PACKET *,uint64_t *,uint64_t *) | | ossl_quic_wire_decode_transport_param_int | 2 | uint64_t * | +| (PBE2PARAM *) | | PBE2PARAM_free | 0 | PBE2PARAM * | +| (PBE2PARAM **,const unsigned char **,long) | | d2i_PBE2PARAM | 0 | PBE2PARAM ** | +| (PBE2PARAM **,const unsigned char **,long) | | d2i_PBE2PARAM | 1 | const unsigned char ** | +| (PBE2PARAM **,const unsigned char **,long) | | d2i_PBE2PARAM | 2 | long | +| (PBEPARAM *) | | PBEPARAM_free | 0 | PBEPARAM * | +| (PBEPARAM **,const unsigned char **,long) | | d2i_PBEPARAM | 0 | PBEPARAM ** | +| (PBEPARAM **,const unsigned char **,long) | | d2i_PBEPARAM | 1 | const unsigned char ** | +| (PBEPARAM **,const unsigned char **,long) | | d2i_PBEPARAM | 2 | long | +| (PBKDF2PARAM *) | | PBKDF2PARAM_free | 0 | PBKDF2PARAM * | +| (PBKDF2PARAM **,const unsigned char **,long) | | d2i_PBKDF2PARAM | 0 | PBKDF2PARAM ** | +| (PBKDF2PARAM **,const unsigned char **,long) | | d2i_PBKDF2PARAM | 1 | const unsigned char ** | +| (PBKDF2PARAM **,const unsigned char **,long) | | d2i_PBKDF2PARAM | 2 | long | +| (PBMAC1PARAM *) | | PBMAC1PARAM_free | 0 | PBMAC1PARAM * | +| (PBMAC1PARAM **,const unsigned char **,long) | | d2i_PBMAC1PARAM | 0 | PBMAC1PARAM ** | +| (PBMAC1PARAM **,const unsigned char **,long) | | d2i_PBMAC1PARAM | 1 | const unsigned char ** | +| (PBMAC1PARAM **,const unsigned char **,long) | | d2i_PBMAC1PARAM | 2 | long | | (PCXSTR) | | operator+= | 0 | PCXSTR | | (PCXSTR) | CSimpleStringT | operator+= | 0 | PCXSTR | | (PCXSTR) | CStringT | operator= | 0 | PCXSTR | @@ -702,6 +18429,2715 @@ getSignatureParameterName | (PCXSTR,const CStringT &) | | operator+ | 1 | const CStringT & | | (PCYSTR) | | operator+= | 0 | PCYSTR | | (PCYSTR) | CStringT | operator= | 0 | PCYSTR | +| (PKCS7 *) | | PKCS7_free | 0 | PKCS7 * | +| (PKCS7 *) | | PKCS7_get_octet_string | 0 | PKCS7 * | +| (PKCS7 **,const unsigned char **,long) | | d2i_PKCS7 | 0 | PKCS7 ** | +| (PKCS7 **,const unsigned char **,long) | | d2i_PKCS7 | 1 | const unsigned char ** | +| (PKCS7 **,const unsigned char **,long) | | d2i_PKCS7 | 2 | long | +| (PKCS7 *,BIO *) | | PKCS7_dataInit | 0 | PKCS7 * | +| (PKCS7 *,BIO *) | | PKCS7_dataInit | 1 | BIO * | +| (PKCS7 *,EVP_PKEY *,BIO *,X509 *) | | PKCS7_dataDecode | 0 | PKCS7 * | +| (PKCS7 *,EVP_PKEY *,BIO *,X509 *) | | PKCS7_dataDecode | 1 | EVP_PKEY * | +| (PKCS7 *,EVP_PKEY *,BIO *,X509 *) | | PKCS7_dataDecode | 2 | BIO * | +| (PKCS7 *,EVP_PKEY *,BIO *,X509 *) | | PKCS7_dataDecode | 3 | X509 * | +| (PKCS7 *,OSSL_LIB_CTX *) | | ossl_pkcs7_set0_libctx | 0 | PKCS7 * | +| (PKCS7 *,OSSL_LIB_CTX *) | | ossl_pkcs7_set0_libctx | 1 | OSSL_LIB_CTX * | +| (PKCS7 *,PKCS7_SIGNER_INFO *) | | PKCS7_add_signer | 0 | PKCS7 * | +| (PKCS7 *,PKCS7_SIGNER_INFO *) | | PKCS7_add_signer | 1 | PKCS7_SIGNER_INFO * | +| (PKCS7 *,X509 *) | | PKCS7_add_certificate | 0 | PKCS7 * | +| (PKCS7 *,X509 *) | | PKCS7_add_certificate | 1 | X509 * | +| (PKCS7 *,X509 *) | | PKCS7_add_recipient | 0 | PKCS7 * | +| (PKCS7 *,X509 *) | | PKCS7_add_recipient | 1 | X509 * | +| (PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *) | | PKCS7_add_signature | 0 | PKCS7 * | +| (PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *) | | PKCS7_add_signature | 1 | X509 * | +| (PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *) | | PKCS7_add_signature | 2 | EVP_PKEY * | +| (PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *) | | PKCS7_add_signature | 3 | const EVP_MD * | +| (PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int) | | PKCS7_sign_add_signer | 0 | PKCS7 * | +| (PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int) | | PKCS7_sign_add_signer | 1 | X509 * | +| (PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int) | | PKCS7_sign_add_signer | 2 | EVP_PKEY * | +| (PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int) | | PKCS7_sign_add_signer | 3 | const EVP_MD * | +| (PKCS7 *,X509 *,EVP_PKEY *,const EVP_MD *,int) | | PKCS7_sign_add_signer | 4 | int | +| (PKCS7 *,X509_CRL *) | | PKCS7_add_crl | 0 | PKCS7 * | +| (PKCS7 *,X509_CRL *) | | PKCS7_add_crl | 1 | X509_CRL * | +| (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 0 | PKCS7 * | +| (PKCS7 *,const char *) | | ossl_pkcs7_set1_propq | 1 | const char * | +| (PKCS7 *,int) | | PKCS7_set_type | 0 | PKCS7 * | +| (PKCS7 *,int) | | PKCS7_set_type | 1 | int | +| (PKCS7 *,int,ASN1_TYPE *) | | PKCS7_set0_type_other | 0 | PKCS7 * | +| (PKCS7 *,int,ASN1_TYPE *) | | PKCS7_set0_type_other | 1 | int | +| (PKCS7 *,int,ASN1_TYPE *) | | PKCS7_set0_type_other | 2 | ASN1_TYPE * | +| (PKCS7 *,int,long,char *) | | PKCS7_ctrl | 0 | PKCS7 * | +| (PKCS7 *,int,long,char *) | | PKCS7_ctrl | 1 | int | +| (PKCS7 *,int,long,char *) | | PKCS7_ctrl | 2 | long | +| (PKCS7 *,int,long,char *) | | PKCS7_ctrl | 3 | char * | +| (PKCS7 *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,int) | | PKCS7_verify | 0 | PKCS7 * | +| (PKCS7 *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,int) | | PKCS7_verify | 1 | stack_st_X509 * | +| (PKCS7 *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,int) | | PKCS7_verify | 2 | X509_STORE * | +| (PKCS7 *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,int) | | PKCS7_verify | 3 | BIO * | +| (PKCS7 *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,int) | | PKCS7_verify | 4 | BIO * | +| (PKCS7 *,stack_st_X509 *,X509_STORE *,BIO *,BIO *,int) | | PKCS7_verify | 5 | int | +| (PKCS7 *,stack_st_X509 *,X509_STORE *,X509 **) | | TS_RESP_verify_signature | 0 | PKCS7 * | +| (PKCS7 *,stack_st_X509 *,X509_STORE *,X509 **) | | TS_RESP_verify_signature | 1 | stack_st_X509 * | +| (PKCS7 *,stack_st_X509 *,X509_STORE *,X509 **) | | TS_RESP_verify_signature | 2 | X509_STORE * | +| (PKCS7 *,stack_st_X509 *,X509_STORE *,X509 **) | | TS_RESP_verify_signature | 3 | X509 ** | +| (PKCS7 *,stack_st_X509 *,int) | | PKCS7_get0_signers | 0 | PKCS7 * | +| (PKCS7 *,stack_st_X509 *,int) | | PKCS7_get0_signers | 1 | stack_st_X509 * | +| (PKCS7 *,stack_st_X509 *,int) | | PKCS7_get0_signers | 2 | int | +| (PKCS7_DIGEST *) | | PKCS7_DIGEST_free | 0 | PKCS7_DIGEST * | +| (PKCS7_DIGEST **,const unsigned char **,long) | | d2i_PKCS7_DIGEST | 0 | PKCS7_DIGEST ** | +| (PKCS7_DIGEST **,const unsigned char **,long) | | d2i_PKCS7_DIGEST | 1 | const unsigned char ** | +| (PKCS7_DIGEST **,const unsigned char **,long) | | d2i_PKCS7_DIGEST | 2 | long | +| (PKCS7_ENCRYPT *) | | PKCS7_ENCRYPT_free | 0 | PKCS7_ENCRYPT * | +| (PKCS7_ENCRYPT **,const unsigned char **,long) | | d2i_PKCS7_ENCRYPT | 0 | PKCS7_ENCRYPT ** | +| (PKCS7_ENCRYPT **,const unsigned char **,long) | | d2i_PKCS7_ENCRYPT | 1 | const unsigned char ** | +| (PKCS7_ENCRYPT **,const unsigned char **,long) | | d2i_PKCS7_ENCRYPT | 2 | long | +| (PKCS7_ENC_CONTENT *) | | PKCS7_ENC_CONTENT_free | 0 | PKCS7_ENC_CONTENT * | +| (PKCS7_ENC_CONTENT **,const unsigned char **,long) | | d2i_PKCS7_ENC_CONTENT | 0 | PKCS7_ENC_CONTENT ** | +| (PKCS7_ENC_CONTENT **,const unsigned char **,long) | | d2i_PKCS7_ENC_CONTENT | 1 | const unsigned char ** | +| (PKCS7_ENC_CONTENT **,const unsigned char **,long) | | d2i_PKCS7_ENC_CONTENT | 2 | long | +| (PKCS7_ENVELOPE *) | | PKCS7_ENVELOPE_free | 0 | PKCS7_ENVELOPE * | +| (PKCS7_ENVELOPE **,const unsigned char **,long) | | d2i_PKCS7_ENVELOPE | 0 | PKCS7_ENVELOPE ** | +| (PKCS7_ENVELOPE **,const unsigned char **,long) | | d2i_PKCS7_ENVELOPE | 1 | const unsigned char ** | +| (PKCS7_ENVELOPE **,const unsigned char **,long) | | d2i_PKCS7_ENVELOPE | 2 | long | +| (PKCS7_ISSUER_AND_SERIAL *) | | PKCS7_ISSUER_AND_SERIAL_free | 0 | PKCS7_ISSUER_AND_SERIAL * | +| (PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long) | | d2i_PKCS7_ISSUER_AND_SERIAL | 0 | PKCS7_ISSUER_AND_SERIAL ** | +| (PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long) | | d2i_PKCS7_ISSUER_AND_SERIAL | 1 | const unsigned char ** | +| (PKCS7_ISSUER_AND_SERIAL **,const unsigned char **,long) | | d2i_PKCS7_ISSUER_AND_SERIAL | 2 | long | +| (PKCS7_ISSUER_AND_SERIAL *,const EVP_MD *,unsigned char *,unsigned int *) | | PKCS7_ISSUER_AND_SERIAL_digest | 0 | PKCS7_ISSUER_AND_SERIAL * | +| (PKCS7_ISSUER_AND_SERIAL *,const EVP_MD *,unsigned char *,unsigned int *) | | PKCS7_ISSUER_AND_SERIAL_digest | 1 | const EVP_MD * | +| (PKCS7_ISSUER_AND_SERIAL *,const EVP_MD *,unsigned char *,unsigned int *) | | PKCS7_ISSUER_AND_SERIAL_digest | 2 | unsigned char * | +| (PKCS7_ISSUER_AND_SERIAL *,const EVP_MD *,unsigned char *,unsigned int *) | | PKCS7_ISSUER_AND_SERIAL_digest | 3 | unsigned int * | +| (PKCS7_RECIP_INFO *) | | PKCS7_RECIP_INFO_free | 0 | PKCS7_RECIP_INFO * | +| (PKCS7_RECIP_INFO **,const unsigned char **,long) | | d2i_PKCS7_RECIP_INFO | 0 | PKCS7_RECIP_INFO ** | +| (PKCS7_RECIP_INFO **,const unsigned char **,long) | | d2i_PKCS7_RECIP_INFO | 1 | const unsigned char ** | +| (PKCS7_RECIP_INFO **,const unsigned char **,long) | | d2i_PKCS7_RECIP_INFO | 2 | long | +| (PKCS7_RECIP_INFO *,X509 *) | | PKCS7_RECIP_INFO_set | 0 | PKCS7_RECIP_INFO * | +| (PKCS7_RECIP_INFO *,X509 *) | | PKCS7_RECIP_INFO_set | 1 | X509 * | +| (PKCS7_RECIP_INFO *,X509_ALGOR **) | | PKCS7_RECIP_INFO_get0_alg | 0 | PKCS7_RECIP_INFO * | +| (PKCS7_RECIP_INFO *,X509_ALGOR **) | | PKCS7_RECIP_INFO_get0_alg | 1 | X509_ALGOR ** | +| (PKCS7_SIGNED *) | | PKCS7_SIGNED_free | 0 | PKCS7_SIGNED * | +| (PKCS7_SIGNED **,const unsigned char **,long) | | d2i_PKCS7_SIGNED | 0 | PKCS7_SIGNED ** | +| (PKCS7_SIGNED **,const unsigned char **,long) | | d2i_PKCS7_SIGNED | 1 | const unsigned char ** | +| (PKCS7_SIGNED **,const unsigned char **,long) | | d2i_PKCS7_SIGNED | 2 | long | +| (PKCS7_SIGNER_INFO *) | | PKCS7_SIGNER_INFO_free | 0 | PKCS7_SIGNER_INFO * | +| (PKCS7_SIGNER_INFO **,const unsigned char **,long) | | d2i_PKCS7_SIGNER_INFO | 0 | PKCS7_SIGNER_INFO ** | +| (PKCS7_SIGNER_INFO **,const unsigned char **,long) | | d2i_PKCS7_SIGNER_INFO | 1 | const unsigned char ** | +| (PKCS7_SIGNER_INFO **,const unsigned char **,long) | | d2i_PKCS7_SIGNER_INFO | 2 | long | +| (PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **) | | PKCS7_SIGNER_INFO_get0_algs | 0 | PKCS7_SIGNER_INFO * | +| (PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **) | | PKCS7_SIGNER_INFO_get0_algs | 1 | EVP_PKEY ** | +| (PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **) | | PKCS7_SIGNER_INFO_get0_algs | 2 | X509_ALGOR ** | +| (PKCS7_SIGNER_INFO *,EVP_PKEY **,X509_ALGOR **,X509_ALGOR **) | | PKCS7_SIGNER_INFO_get0_algs | 3 | X509_ALGOR ** | +| (PKCS7_SIGNER_INFO *,X509 *,EVP_PKEY *,const EVP_MD *) | | PKCS7_SIGNER_INFO_set | 0 | PKCS7_SIGNER_INFO * | +| (PKCS7_SIGNER_INFO *,X509 *,EVP_PKEY *,const EVP_MD *) | | PKCS7_SIGNER_INFO_set | 1 | X509 * | +| (PKCS7_SIGNER_INFO *,X509 *,EVP_PKEY *,const EVP_MD *) | | PKCS7_SIGNER_INFO_set | 2 | EVP_PKEY * | +| (PKCS7_SIGNER_INFO *,X509 *,EVP_PKEY *,const EVP_MD *) | | PKCS7_SIGNER_INFO_set | 3 | const EVP_MD * | +| (PKCS7_SIGNER_INFO *,stack_st_X509_ALGOR *) | | PKCS7_add_attrib_smimecap | 0 | PKCS7_SIGNER_INFO * | +| (PKCS7_SIGNER_INFO *,stack_st_X509_ALGOR *) | | PKCS7_add_attrib_smimecap | 1 | stack_st_X509_ALGOR * | +| (PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *) | | PKCS7_set_attributes | 0 | PKCS7_SIGNER_INFO * | +| (PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *) | | PKCS7_set_attributes | 1 | stack_st_X509_ATTRIBUTE * | +| (PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *) | | PKCS7_set_signed_attributes | 0 | PKCS7_SIGNER_INFO * | +| (PKCS7_SIGNER_INFO *,stack_st_X509_ATTRIBUTE *) | | PKCS7_set_signed_attributes | 1 | stack_st_X509_ATTRIBUTE * | +| (PKCS7_SIGN_ENVELOPE *) | | PKCS7_SIGN_ENVELOPE_free | 0 | PKCS7_SIGN_ENVELOPE * | +| (PKCS7_SIGN_ENVELOPE **,const unsigned char **,long) | | d2i_PKCS7_SIGN_ENVELOPE | 0 | PKCS7_SIGN_ENVELOPE ** | +| (PKCS7_SIGN_ENVELOPE **,const unsigned char **,long) | | d2i_PKCS7_SIGN_ENVELOPE | 1 | const unsigned char ** | +| (PKCS7_SIGN_ENVELOPE **,const unsigned char **,long) | | d2i_PKCS7_SIGN_ENVELOPE | 2 | long | +| (PKCS8_PRIV_KEY_INFO *) | | PKCS8_PRIV_KEY_INFO_free | 0 | PKCS8_PRIV_KEY_INFO * | +| (PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create0_p8inf | 0 | PKCS8_PRIV_KEY_INFO * | +| (PKCS8_PRIV_KEY_INFO **,const unsigned char **,long) | | d2i_PKCS8_PRIV_KEY_INFO | 0 | PKCS8_PRIV_KEY_INFO ** | +| (PKCS8_PRIV_KEY_INFO **,const unsigned char **,long) | | d2i_PKCS8_PRIV_KEY_INFO | 1 | const unsigned char ** | +| (PKCS8_PRIV_KEY_INFO **,const unsigned char **,long) | | d2i_PKCS8_PRIV_KEY_INFO | 2 | long | +| (PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int) | | PKCS8_pkey_set0 | 0 | PKCS8_PRIV_KEY_INFO * | +| (PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int) | | PKCS8_pkey_set0 | 1 | ASN1_OBJECT * | +| (PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int) | | PKCS8_pkey_set0 | 2 | int | +| (PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int) | | PKCS8_pkey_set0 | 3 | int | +| (PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int) | | PKCS8_pkey_set0 | 4 | void * | +| (PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int) | | PKCS8_pkey_set0 | 5 | unsigned char * | +| (PKCS8_PRIV_KEY_INFO *,ASN1_OBJECT *,int,int,void *,unsigned char *,int) | | PKCS8_pkey_set0 | 6 | int | +| (PKCS8_PRIV_KEY_INFO *,X509_ATTRIBUTE *) | | PKCS8_pkey_add1_attr | 0 | PKCS8_PRIV_KEY_INFO * | +| (PKCS8_PRIV_KEY_INFO *,X509_ATTRIBUTE *) | | PKCS8_pkey_add1_attr | 1 | X509_ATTRIBUTE * | +| (PKCS8_PRIV_KEY_INFO *,const ASN1_OBJECT *,int,const unsigned char *,int) | | PKCS8_pkey_add1_attr_by_OBJ | 0 | PKCS8_PRIV_KEY_INFO * | +| (PKCS8_PRIV_KEY_INFO *,const ASN1_OBJECT *,int,const unsigned char *,int) | | PKCS8_pkey_add1_attr_by_OBJ | 1 | const ASN1_OBJECT * | +| (PKCS8_PRIV_KEY_INFO *,const ASN1_OBJECT *,int,const unsigned char *,int) | | PKCS8_pkey_add1_attr_by_OBJ | 2 | int | +| (PKCS8_PRIV_KEY_INFO *,const ASN1_OBJECT *,int,const unsigned char *,int) | | PKCS8_pkey_add1_attr_by_OBJ | 3 | const unsigned char * | +| (PKCS8_PRIV_KEY_INFO *,const ASN1_OBJECT *,int,const unsigned char *,int) | | PKCS8_pkey_add1_attr_by_OBJ | 4 | int | +| (PKCS12 *) | | PKCS12_free | 0 | PKCS12 * | +| (PKCS12 **,const unsigned char **,long) | | d2i_PKCS12 | 0 | PKCS12 ** | +| (PKCS12 **,const unsigned char **,long) | | d2i_PKCS12 | 1 | const unsigned char ** | +| (PKCS12 **,const unsigned char **,long) | | d2i_PKCS12 | 2 | long | +| (PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **) | | PKCS12_parse | 0 | PKCS12 * | +| (PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **) | | PKCS12_parse | 1 | const char * | +| (PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **) | | PKCS12_parse | 2 | EVP_PKEY ** | +| (PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **) | | PKCS12_parse | 3 | X509 ** | +| (PKCS12 *,const char *,EVP_PKEY **,X509 **,stack_st_X509 **) | | PKCS12_parse | 4 | stack_st_X509 ** | +| (PKCS12 *,const char *,int,unsigned char *,int,int,const EVP_MD *,const char *) | | PKCS12_set_pbmac1_pbkdf2 | 0 | PKCS12 * | +| (PKCS12 *,const char *,int,unsigned char *,int,int,const EVP_MD *,const char *) | | PKCS12_set_pbmac1_pbkdf2 | 1 | const char * | +| (PKCS12 *,const char *,int,unsigned char *,int,int,const EVP_MD *,const char *) | | PKCS12_set_pbmac1_pbkdf2 | 2 | int | +| (PKCS12 *,const char *,int,unsigned char *,int,int,const EVP_MD *,const char *) | | PKCS12_set_pbmac1_pbkdf2 | 3 | unsigned char * | +| (PKCS12 *,const char *,int,unsigned char *,int,int,const EVP_MD *,const char *) | | PKCS12_set_pbmac1_pbkdf2 | 4 | int | +| (PKCS12 *,const char *,int,unsigned char *,int,int,const EVP_MD *,const char *) | | PKCS12_set_pbmac1_pbkdf2 | 5 | int | +| (PKCS12 *,const char *,int,unsigned char *,int,int,const EVP_MD *,const char *) | | PKCS12_set_pbmac1_pbkdf2 | 6 | const EVP_MD * | +| (PKCS12 *,const char *,int,unsigned char *,int,int,const EVP_MD *,const char *) | | PKCS12_set_pbmac1_pbkdf2 | 7 | const char * | +| (PKCS12 *,stack_st_PKCS7 *) | | PKCS12_pack_authsafes | 0 | PKCS12 * | +| (PKCS12 *,stack_st_PKCS7 *) | | PKCS12_pack_authsafes | 1 | stack_st_PKCS7 * | +| (PKCS12_BAGS *) | | PKCS12_BAGS_free | 0 | PKCS12_BAGS * | +| (PKCS12_BAGS **,const unsigned char **,long) | | d2i_PKCS12_BAGS | 0 | PKCS12_BAGS ** | +| (PKCS12_BAGS **,const unsigned char **,long) | | d2i_PKCS12_BAGS | 1 | const unsigned char ** | +| (PKCS12_BAGS **,const unsigned char **,long) | | d2i_PKCS12_BAGS | 2 | long | +| (PKCS12_BUILDER *) | | end_pkcs12_builder | 0 | PKCS12_BUILDER * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | add_certbag | 0 | PKCS12_BUILDER * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | add_certbag | 1 | const unsigned char * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | add_certbag | 2 | int | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | add_certbag | 3 | const PKCS12_ATTR * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | check_certbag | 0 | PKCS12_BUILDER * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | check_certbag | 1 | const unsigned char * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | check_certbag | 2 | int | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | check_certbag | 3 | const PKCS12_ATTR * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | add_keybag | 0 | PKCS12_BUILDER * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | add_keybag | 1 | const unsigned char * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | add_keybag | 2 | int | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | add_keybag | 3 | const PKCS12_ATTR * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | add_keybag | 4 | const PKCS12_ENC * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | check_keybag | 0 | PKCS12_BUILDER * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | check_keybag | 1 | const unsigned char * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | check_keybag | 2 | int | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | check_keybag | 3 | const PKCS12_ATTR * | +| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | check_keybag | 4 | const PKCS12_ENC * | +| (PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *) | | add_secretbag | 0 | PKCS12_BUILDER * | +| (PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *) | | add_secretbag | 1 | int | +| (PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *) | | add_secretbag | 2 | const char * | +| (PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *) | | add_secretbag | 3 | const PKCS12_ATTR * | +| (PKCS12_MAC_DATA *) | | PKCS12_MAC_DATA_free | 0 | PKCS12_MAC_DATA * | +| (PKCS12_MAC_DATA **,const unsigned char **,long) | | d2i_PKCS12_MAC_DATA | 0 | PKCS12_MAC_DATA ** | +| (PKCS12_MAC_DATA **,const unsigned char **,long) | | d2i_PKCS12_MAC_DATA | 1 | const unsigned char ** | +| (PKCS12_MAC_DATA **,const unsigned char **,long) | | d2i_PKCS12_MAC_DATA | 2 | long | +| (PKCS12_SAFEBAG *) | | PKCS12_SAFEBAG_free | 0 | PKCS12_SAFEBAG * | +| (PKCS12_SAFEBAG **,const unsigned char **,long) | | d2i_PKCS12_SAFEBAG | 0 | PKCS12_SAFEBAG ** | +| (PKCS12_SAFEBAG **,const unsigned char **,long) | | d2i_PKCS12_SAFEBAG | 1 | const unsigned char ** | +| (PKCS12_SAFEBAG **,const unsigned char **,long) | | d2i_PKCS12_SAFEBAG | 2 | long | +| (PKCS12_SAFEBAG *,stack_st_X509_ATTRIBUTE *) | | PKCS12_SAFEBAG_set0_attrs | 0 | PKCS12_SAFEBAG * | +| (PKCS12_SAFEBAG *,stack_st_X509_ATTRIBUTE *) | | PKCS12_SAFEBAG_set0_attrs | 1 | stack_st_X509_ATTRIBUTE * | +| (PKEY_USAGE_PERIOD *) | | PKEY_USAGE_PERIOD_free | 0 | PKEY_USAGE_PERIOD * | +| (PKEY_USAGE_PERIOD **,const unsigned char **,long) | | d2i_PKEY_USAGE_PERIOD | 0 | PKEY_USAGE_PERIOD ** | +| (PKEY_USAGE_PERIOD **,const unsigned char **,long) | | d2i_PKEY_USAGE_PERIOD | 1 | const unsigned char ** | +| (PKEY_USAGE_PERIOD **,const unsigned char **,long) | | d2i_PKEY_USAGE_PERIOD | 2 | long | +| (POLICYINFO *) | | POLICYINFO_free | 0 | POLICYINFO * | +| (POLICYINFO **,const unsigned char **,long) | | d2i_POLICYINFO | 0 | POLICYINFO ** | +| (POLICYINFO **,const unsigned char **,long) | | d2i_POLICYINFO | 1 | const unsigned char ** | +| (POLICYINFO **,const unsigned char **,long) | | d2i_POLICYINFO | 2 | long | +| (POLICYINFO *,const ASN1_OBJECT *,int) | | ossl_policy_data_new | 0 | POLICYINFO * | +| (POLICYINFO *,const ASN1_OBJECT *,int) | | ossl_policy_data_new | 1 | const ASN1_OBJECT * | +| (POLICYINFO *,const ASN1_OBJECT *,int) | | ossl_policy_data_new | 2 | int | +| (POLICYQUALINFO *) | | POLICYQUALINFO_free | 0 | POLICYQUALINFO * | +| (POLICYQUALINFO **,const unsigned char **,long) | | d2i_POLICYQUALINFO | 0 | POLICYQUALINFO ** | +| (POLICYQUALINFO **,const unsigned char **,long) | | d2i_POLICYQUALINFO | 1 | const unsigned char ** | +| (POLICYQUALINFO **,const unsigned char **,long) | | d2i_POLICYQUALINFO | 2 | long | +| (POLICY_CONSTRAINTS *) | | POLICY_CONSTRAINTS_free | 0 | POLICY_CONSTRAINTS * | +| (POLICY_MAPPING *) | | POLICY_MAPPING_free | 0 | POLICY_MAPPING * | +| (POLY1305 *,const unsigned char *,size_t) | | Poly1305_Update | 0 | POLY1305 * | +| (POLY1305 *,const unsigned char *,size_t) | | Poly1305_Update | 1 | const unsigned char * | +| (POLY1305 *,const unsigned char *,size_t) | | Poly1305_Update | 2 | size_t | +| (POLY1305 *,const unsigned char[32]) | | Poly1305_Init | 0 | POLY1305 * | +| (POLY1305 *,const unsigned char[32]) | | Poly1305_Init | 1 | const unsigned char[32] | +| (POLY *,const uint8_t *,int,EVP_MD_CTX *,const EVP_MD *,uint32_t) | | ossl_ml_dsa_poly_sample_in_ball | 0 | POLY * | +| (POLY *,const uint8_t *,int,EVP_MD_CTX *,const EVP_MD *,uint32_t) | | ossl_ml_dsa_poly_sample_in_ball | 1 | const uint8_t * | +| (POLY *,const uint8_t *,int,EVP_MD_CTX *,const EVP_MD *,uint32_t) | | ossl_ml_dsa_poly_sample_in_ball | 2 | int | +| (POLY *,const uint8_t *,int,EVP_MD_CTX *,const EVP_MD *,uint32_t) | | ossl_ml_dsa_poly_sample_in_ball | 3 | EVP_MD_CTX * | +| (POLY *,const uint8_t *,int,EVP_MD_CTX *,const EVP_MD *,uint32_t) | | ossl_ml_dsa_poly_sample_in_ball | 4 | const EVP_MD * | +| (POLY *,const uint8_t *,int,EVP_MD_CTX *,const EVP_MD *,uint32_t) | | ossl_ml_dsa_poly_sample_in_ball | 5 | uint32_t | +| (POLY *,const uint8_t *,size_t,uint32_t,EVP_MD_CTX *,const EVP_MD *) | | ossl_ml_dsa_poly_expand_mask | 0 | POLY * | +| (POLY *,const uint8_t *,size_t,uint32_t,EVP_MD_CTX *,const EVP_MD *) | | ossl_ml_dsa_poly_expand_mask | 1 | const uint8_t * | +| (POLY *,const uint8_t *,size_t,uint32_t,EVP_MD_CTX *,const EVP_MD *) | | ossl_ml_dsa_poly_expand_mask | 2 | size_t | +| (POLY *,const uint8_t *,size_t,uint32_t,EVP_MD_CTX *,const EVP_MD *) | | ossl_ml_dsa_poly_expand_mask | 3 | uint32_t | +| (POLY *,const uint8_t *,size_t,uint32_t,EVP_MD_CTX *,const EVP_MD *) | | ossl_ml_dsa_poly_expand_mask | 4 | EVP_MD_CTX * | +| (POLY *,const uint8_t *,size_t,uint32_t,EVP_MD_CTX *,const EVP_MD *) | | ossl_ml_dsa_poly_expand_mask | 5 | const EVP_MD * | +| (PROFESSION_INFO *) | | PROFESSION_INFO_free | 0 | PROFESSION_INFO * | +| (PROFESSION_INFO **,const unsigned char **,long) | | d2i_PROFESSION_INFO | 0 | PROFESSION_INFO ** | +| (PROFESSION_INFO **,const unsigned char **,long) | | d2i_PROFESSION_INFO | 1 | const unsigned char ** | +| (PROFESSION_INFO **,const unsigned char **,long) | | d2i_PROFESSION_INFO | 2 | long | +| (PROFESSION_INFO *,ASN1_OCTET_STRING *) | | PROFESSION_INFO_set0_addProfessionInfo | 0 | PROFESSION_INFO * | +| (PROFESSION_INFO *,ASN1_OCTET_STRING *) | | PROFESSION_INFO_set0_addProfessionInfo | 1 | ASN1_OCTET_STRING * | +| (PROFESSION_INFO *,ASN1_PRINTABLESTRING *) | | PROFESSION_INFO_set0_registrationNumber | 0 | PROFESSION_INFO * | +| (PROFESSION_INFO *,ASN1_PRINTABLESTRING *) | | PROFESSION_INFO_set0_registrationNumber | 1 | ASN1_PRINTABLESTRING * | +| (PROFESSION_INFO *,NAMING_AUTHORITY *) | | PROFESSION_INFO_set0_namingAuthority | 0 | PROFESSION_INFO * | +| (PROFESSION_INFO *,NAMING_AUTHORITY *) | | PROFESSION_INFO_set0_namingAuthority | 1 | NAMING_AUTHORITY * | +| (PROFESSION_INFO *,stack_st_ASN1_OBJECT *) | | PROFESSION_INFO_set0_professionOIDs | 0 | PROFESSION_INFO * | +| (PROFESSION_INFO *,stack_st_ASN1_OBJECT *) | | PROFESSION_INFO_set0_professionOIDs | 1 | stack_st_ASN1_OBJECT * | +| (PROFESSION_INFO *,stack_st_ASN1_STRING *) | | PROFESSION_INFO_set0_professionItems | 0 | PROFESSION_INFO * | +| (PROFESSION_INFO *,stack_st_ASN1_STRING *) | | PROFESSION_INFO_set0_professionItems | 1 | stack_st_ASN1_STRING * | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_decrypt | 0 | PROV_CCM_CTX * | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_decrypt | 1 | const unsigned char * | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_decrypt | 2 | unsigned char * | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_decrypt | 3 | size_t | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_decrypt | 4 | unsigned char * | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_decrypt | 5 | size_t | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_encrypt | 0 | PROV_CCM_CTX * | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_encrypt | 1 | const unsigned char * | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_encrypt | 2 | unsigned char * | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_encrypt | 3 | size_t | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_encrypt | 4 | unsigned char * | +| (PROV_CCM_CTX *,const unsigned char *,unsigned char *,size_t,unsigned char *,size_t) | | ossl_ccm_generic_auth_encrypt | 5 | size_t | +| (PROV_CCM_CTX *,size_t,const PROV_CCM_HW *) | | ossl_ccm_initctx | 0 | PROV_CCM_CTX * | +| (PROV_CCM_CTX *,size_t,const PROV_CCM_HW *) | | ossl_ccm_initctx | 1 | size_t | +| (PROV_CCM_CTX *,size_t,const PROV_CCM_HW *) | | ossl_ccm_initctx | 2 | const PROV_CCM_HW * | +| (PROV_CIPHER *,const OSSL_PARAM[],OSSL_LIB_CTX *) | | ossl_prov_cipher_load_from_params | 0 | PROV_CIPHER * | +| (PROV_CIPHER *,const OSSL_PARAM[],OSSL_LIB_CTX *) | | ossl_prov_cipher_load_from_params | 1 | const OSSL_PARAM[] | +| (PROV_CIPHER *,const OSSL_PARAM[],OSSL_LIB_CTX *) | | ossl_prov_cipher_load_from_params | 2 | OSSL_LIB_CTX * | +| (PROV_CIPHER *,const PROV_CIPHER *) | | ossl_prov_cipher_copy | 0 | PROV_CIPHER * | +| (PROV_CIPHER *,const PROV_CIPHER *) | | ossl_prov_cipher_copy | 1 | const PROV_CIPHER * | +| (PROV_CIPHER_CTX *,const PROV_CIPHER_CTX *) | | ossl_cipher_hw_tdes_copyctx | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,const PROV_CIPHER_CTX *) | | ossl_cipher_hw_tdes_copyctx | 1 | const PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 1 | const unsigned char * | +| (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 2 | size_t | +| (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 1 | const unsigned char * | +| (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 2 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cbc | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cbc | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cbc | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cbc | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cfb8 | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cfb8 | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cfb8 | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cfb8 | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cfb128 | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cfb128 | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cfb128 | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_cfb128 | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_ofb128 | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_ofb128 | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_ofb128 | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_chunked_ofb128 | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cbc | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cbc | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cbc | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cbc | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb1 | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb1 | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb1 | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb1 | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb8 | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb8 | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb8 | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb8 | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb128 | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb128 | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb128 | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_cfb128 | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_ctr | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_ctr | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_ctr | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_ctr | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_ofb128 | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_ofb128 | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_ofb128 | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_generic_ofb128 | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_cbc | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_cbc | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_cbc | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_cbc | 3 | size_t | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ecb | 0 | PROV_CIPHER_CTX * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ecb | 1 | unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ecb | 2 | const unsigned char * | +| (PROV_CIPHER_CTX *,unsigned char *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ecb | 3 | size_t | +| (PROV_CTX *) | | ossl_prov_ctx_get0_core_bio_method | 0 | PROV_CTX * | +| (PROV_CTX *) | | ossl_prov_ctx_get0_core_get_params | 0 | PROV_CTX * | +| (PROV_CTX *) | | ossl_prov_ctx_get0_handle | 0 | PROV_CTX * | +| (PROV_CTX *) | | ossl_prov_ctx_get0_libctx | 0 | PROV_CTX * | +| (PROV_CTX *,BIO_METHOD *) | | ossl_prov_ctx_set0_core_bio_method | 0 | PROV_CTX * | +| (PROV_CTX *,BIO_METHOD *) | | ossl_prov_ctx_set0_core_bio_method | 1 | BIO_METHOD * | +| (PROV_CTX *,OSSL_CORE_BIO *) | | ossl_bio_new_from_core_bio | 0 | PROV_CTX * | +| (PROV_CTX *,OSSL_CORE_BIO *) | | ossl_bio_new_from_core_bio | 1 | OSSL_CORE_BIO * | +| (PROV_CTX *,OSSL_FUNC_core_get_params_fn *) | | ossl_prov_ctx_set0_core_get_params | 0 | PROV_CTX * | +| (PROV_CTX *,OSSL_FUNC_core_get_params_fn *) | | ossl_prov_ctx_set0_core_get_params | 1 | OSSL_FUNC_core_get_params_fn * | +| (PROV_CTX *,OSSL_LIB_CTX *) | | ossl_prov_ctx_set0_libctx | 0 | PROV_CTX * | +| (PROV_CTX *,OSSL_LIB_CTX *) | | ossl_prov_ctx_set0_libctx | 1 | OSSL_LIB_CTX * | +| (PROV_CTX *,const OSSL_CORE_HANDLE *) | | ossl_prov_ctx_set0_handle | 0 | PROV_CTX * | +| (PROV_CTX *,const OSSL_CORE_HANDLE *) | | ossl_prov_ctx_set0_handle | 1 | const OSSL_CORE_HANDLE * | +| (PROV_CTX *,const char *,const char *) | | ossl_prov_ctx_get_param | 0 | PROV_CTX * | +| (PROV_CTX *,const char *,const char *) | | ossl_prov_ctx_get_param | 1 | const char * | +| (PROV_CTX *,const char *,const char *) | | ossl_prov_ctx_get_param | 2 | const char * | +| (PROV_CTX *,const char *,int) | | ossl_prov_ctx_get_bool_param | 0 | PROV_CTX * | +| (PROV_CTX *,const char *,int) | | ossl_prov_ctx_get_bool_param | 1 | const char * | +| (PROV_CTX *,const char *,int) | | ossl_prov_ctx_get_bool_param | 2 | int | +| (PROV_CTX *,const char *,int) | | ossl_prov_ml_dsa_new | 0 | PROV_CTX * | +| (PROV_CTX *,const char *,int) | | ossl_prov_ml_dsa_new | 1 | const char * | +| (PROV_CTX *,const char *,int) | | ossl_prov_ml_dsa_new | 2 | int | +| (PROV_CTX *,const char *,int) | | ossl_prov_ml_kem_new | 0 | PROV_CTX * | +| (PROV_CTX *,const char *,int) | | ossl_prov_ml_kem_new | 1 | const char * | +| (PROV_CTX *,const char *,int) | | ossl_prov_ml_kem_new | 2 | int | +| (PROV_DIGEST *,EVP_MD *) | | ossl_prov_digest_set_md | 0 | PROV_DIGEST * | +| (PROV_DIGEST *,EVP_MD *) | | ossl_prov_digest_set_md | 1 | EVP_MD * | +| (PROV_DIGEST *,OSSL_LIB_CTX *,const char *,const char *) | | ossl_prov_digest_fetch | 0 | PROV_DIGEST * | +| (PROV_DIGEST *,OSSL_LIB_CTX *,const char *,const char *) | | ossl_prov_digest_fetch | 1 | OSSL_LIB_CTX * | +| (PROV_DIGEST *,OSSL_LIB_CTX *,const char *,const char *) | | ossl_prov_digest_fetch | 2 | const char * | +| (PROV_DIGEST *,OSSL_LIB_CTX *,const char *,const char *) | | ossl_prov_digest_fetch | 3 | const char * | +| (PROV_DIGEST *,const OSSL_PARAM[],OSSL_LIB_CTX *) | | ossl_prov_digest_load_from_params | 0 | PROV_DIGEST * | +| (PROV_DIGEST *,const OSSL_PARAM[],OSSL_LIB_CTX *) | | ossl_prov_digest_load_from_params | 1 | const OSSL_PARAM[] | +| (PROV_DIGEST *,const OSSL_PARAM[],OSSL_LIB_CTX *) | | ossl_prov_digest_load_from_params | 2 | OSSL_LIB_CTX * | +| (PROV_DIGEST *,const PROV_DIGEST *) | | ossl_prov_digest_copy | 0 | PROV_DIGEST * | +| (PROV_DIGEST *,const PROV_DIGEST *) | | ossl_prov_digest_copy | 1 | const PROV_DIGEST * | +| (PROV_DRBG *,OSSL_PARAM[]) | | ossl_drbg_get_ctx_params | 0 | PROV_DRBG * | +| (PROV_DRBG *,OSSL_PARAM[]) | | ossl_drbg_get_ctx_params | 1 | OSSL_PARAM[] | +| (PROV_DRBG *,OSSL_PARAM[],int *) | | ossl_drbg_get_ctx_params_no_lock | 0 | PROV_DRBG * | +| (PROV_DRBG *,OSSL_PARAM[],int *) | | ossl_drbg_get_ctx_params_no_lock | 1 | OSSL_PARAM[] | +| (PROV_DRBG *,OSSL_PARAM[],int *) | | ossl_drbg_get_ctx_params_no_lock | 2 | int * | +| (PROV_DRBG *,const OSSL_PARAM[]) | | ossl_drbg_set_ctx_params | 0 | PROV_DRBG * | +| (PROV_DRBG *,const OSSL_PARAM[]) | | ossl_drbg_set_ctx_params | 1 | const OSSL_PARAM[] | +| (PROV_DRBG_HMAC *,unsigned char *,size_t,const unsigned char *,size_t) | | ossl_drbg_hmac_generate | 0 | PROV_DRBG_HMAC * | +| (PROV_DRBG_HMAC *,unsigned char *,size_t,const unsigned char *,size_t) | | ossl_drbg_hmac_generate | 1 | unsigned char * | +| (PROV_DRBG_HMAC *,unsigned char *,size_t,const unsigned char *,size_t) | | ossl_drbg_hmac_generate | 2 | size_t | +| (PROV_DRBG_HMAC *,unsigned char *,size_t,const unsigned char *,size_t) | | ossl_drbg_hmac_generate | 3 | const unsigned char * | +| (PROV_DRBG_HMAC *,unsigned char *,size_t,const unsigned char *,size_t) | | ossl_drbg_hmac_generate | 4 | size_t | +| (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 0 | PROV_GCM_CTX * | +| (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 1 | const unsigned char * | +| (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 2 | size_t | +| (PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *) | | ossl_gcm_cipher_update | 0 | PROV_GCM_CTX * | +| (PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *) | | ossl_gcm_cipher_update | 1 | const unsigned char * | +| (PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *) | | ossl_gcm_cipher_update | 2 | size_t | +| (PROV_GCM_CTX *,const unsigned char *,size_t,unsigned char *) | | ossl_gcm_cipher_update | 3 | unsigned char * | +| (PROXY_CERT_INFO_EXTENSION *) | | PROXY_CERT_INFO_EXTENSION_free | 0 | PROXY_CERT_INFO_EXTENSION * | +| (PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long) | | d2i_PROXY_CERT_INFO_EXTENSION | 0 | PROXY_CERT_INFO_EXTENSION ** | +| (PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long) | | d2i_PROXY_CERT_INFO_EXTENSION | 1 | const unsigned char ** | +| (PROXY_CERT_INFO_EXTENSION **,const unsigned char **,long) | | d2i_PROXY_CERT_INFO_EXTENSION | 2 | long | +| (PROXY_POLICY *) | | PROXY_POLICY_free | 0 | PROXY_POLICY * | +| (PROXY_POLICY **,const unsigned char **,long) | | d2i_PROXY_POLICY | 0 | PROXY_POLICY ** | +| (PROXY_POLICY **,const unsigned char **,long) | | d2i_PROXY_POLICY | 1 | const unsigned char ** | +| (PROXY_POLICY **,const unsigned char **,long) | | d2i_PROXY_POLICY | 2 | long | +| (QLOG *,BIO *) | | ossl_qlog_set_sink_bio | 0 | QLOG * | +| (QLOG *,BIO *) | | ossl_qlog_set_sink_bio | 1 | BIO * | +| (QLOG *,OSSL_TIME) | | ossl_qlog_override_time | 0 | QLOG * | +| (QLOG *,OSSL_TIME) | | ossl_qlog_override_time | 1 | OSSL_TIME | +| (QLOG *,uint32_t) | | ossl_qlog_enabled | 0 | QLOG * | +| (QLOG *,uint32_t) | | ossl_qlog_enabled | 1 | uint32_t | +| (QLOG *,uint32_t,const char *,const char *,const char *) | | ossl_qlog_event_try_begin | 0 | QLOG * | +| (QLOG *,uint32_t,const char *,const char *,const char *) | | ossl_qlog_event_try_begin | 1 | uint32_t | +| (QLOG *,uint32_t,const char *,const char *,const char *) | | ossl_qlog_event_try_begin | 2 | const char * | +| (QLOG *,uint32_t,const char *,const char *,const char *) | | ossl_qlog_event_try_begin | 3 | const char * | +| (QLOG *,uint32_t,const char *,const char *,const char *) | | ossl_qlog_event_try_begin | 4 | const char * | +| (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 0 | QLOG * | +| (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 1 | uint32_t | +| (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 2 | int | +| (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 1 | const unsigned char * | +| (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 2 | size_t | +| (QTEST_FAULT *,qtest_fault_on_datagram_cb,void *) | | qtest_fault_set_datagram_listener | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,qtest_fault_on_datagram_cb,void *) | | qtest_fault_set_datagram_listener | 1 | qtest_fault_on_datagram_cb | +| (QTEST_FAULT *,qtest_fault_on_datagram_cb,void *) | | qtest_fault_set_datagram_listener | 2 | void * | +| (QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *) | | qtest_fault_set_hand_enc_ext_listener | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *) | | qtest_fault_set_hand_enc_ext_listener | 1 | qtest_fault_on_enc_ext_cb | +| (QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *) | | qtest_fault_set_hand_enc_ext_listener | 2 | void * | +| (QTEST_FAULT *,qtest_fault_on_handshake_cb,void *) | | qtest_fault_set_handshake_listener | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,qtest_fault_on_handshake_cb,void *) | | qtest_fault_set_handshake_listener | 1 | qtest_fault_on_handshake_cb | +| (QTEST_FAULT *,qtest_fault_on_handshake_cb,void *) | | qtest_fault_set_handshake_listener | 2 | void * | +| (QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *) | | qtest_fault_set_packet_cipher_listener | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *) | | qtest_fault_set_packet_cipher_listener | 1 | qtest_fault_on_packet_cipher_cb | +| (QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *) | | qtest_fault_set_packet_cipher_listener | 2 | void * | +| (QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *) | | qtest_fault_set_packet_plain_listener | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *) | | qtest_fault_set_packet_plain_listener | 1 | qtest_fault_on_packet_plain_cb | +| (QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *) | | qtest_fault_set_packet_plain_listener | 2 | void * | +| (QTEST_FAULT *,size_t) | | qtest_fault_resize_datagram | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,size_t) | | qtest_fault_resize_datagram | 1 | size_t | +| (QTEST_FAULT *,size_t) | | qtest_fault_resize_handshake | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,size_t) | | qtest_fault_resize_handshake | 1 | size_t | +| (QTEST_FAULT *,size_t) | | qtest_fault_resize_message | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,size_t) | | qtest_fault_resize_message | 1 | size_t | +| (QTEST_FAULT *,size_t) | | qtest_fault_resize_plain_packet | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,size_t) | | qtest_fault_resize_plain_packet | 1 | size_t | +| (QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *) | | qtest_fault_delete_extension | 0 | QTEST_FAULT * | +| (QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *) | | qtest_fault_delete_extension | 1 | unsigned int | +| (QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *) | | qtest_fault_delete_extension | 2 | unsigned char * | +| (QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *) | | qtest_fault_delete_extension | 3 | size_t * | +| (QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *) | | qtest_fault_delete_extension | 4 | BUF_MEM * | +| (QUIC_CFQ *,QUIC_CFQ_ITEM *) | | ossl_quic_cfq_mark_tx | 0 | QUIC_CFQ * | +| (QUIC_CFQ *,QUIC_CFQ_ITEM *) | | ossl_quic_cfq_mark_tx | 1 | QUIC_CFQ_ITEM * | +| (QUIC_CFQ *,QUIC_CFQ_ITEM *) | | ossl_quic_cfq_release | 0 | QUIC_CFQ * | +| (QUIC_CFQ *,QUIC_CFQ_ITEM *) | | ossl_quic_cfq_release | 1 | QUIC_CFQ_ITEM * | +| (QUIC_CFQ *,QUIC_CFQ_ITEM *,uint32_t) | | ossl_quic_cfq_mark_lost | 0 | QUIC_CFQ * | +| (QUIC_CFQ *,QUIC_CFQ_ITEM *,uint32_t) | | ossl_quic_cfq_mark_lost | 1 | QUIC_CFQ_ITEM * | +| (QUIC_CFQ *,QUIC_CFQ_ITEM *,uint32_t) | | ossl_quic_cfq_mark_lost | 2 | uint32_t | +| (QUIC_CHANNEL *) | | ossl_quic_channel_get0_demux | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *) | | ossl_quic_channel_get0_engine | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *) | | ossl_quic_channel_get0_port | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *) | | ossl_quic_channel_get0_ssl | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *) | | ossl_quic_channel_get0_tls | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *) | | ossl_quic_channel_get_diag_num_rx_ack | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *) | | ossl_quic_channel_get_qsm | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *) | | ossl_quic_channel_get_short_header_conn_id_len | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *) | | ossl_quic_channel_get_statm | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *) | | ossl_quic_channel_init | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *) | | ossl_quic_channel_net_error | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,BIO_ADDR *) | | ossl_quic_channel_get_peer_addr | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,BIO_ADDR *) | | ossl_quic_channel_get_peer_addr | 1 | BIO_ADDR * | +| (QUIC_CHANNEL *,OSSL_QRX *) | | ossl_quic_channel_bind_qrx | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,OSSL_QRX *) | | ossl_quic_channel_bind_qrx | 1 | OSSL_QRX * | +| (QUIC_CHANNEL *,OSSL_QRX_PKT *) | | ossl_quic_handle_frames | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,OSSL_QRX_PKT *) | | ossl_quic_handle_frames | 1 | OSSL_QRX_PKT * | +| (QUIC_CHANNEL *,OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_channel_on_new_conn_id | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_channel_on_new_conn_id | 1 | OSSL_QUIC_FRAME_NEW_CONN_ID * | +| (QUIC_CHANNEL *,QUIC_CONN_ID *) | | ossl_quic_channel_get_diag_local_cid | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,QUIC_CONN_ID *) | | ossl_quic_channel_get_diag_local_cid | 1 | QUIC_CONN_ID * | +| (QUIC_CHANNEL *,QUIC_STREAM *) | | ossl_quic_channel_reject_stream | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,QUIC_STREAM *) | | ossl_quic_channel_reject_stream | 1 | QUIC_STREAM * | +| (QUIC_CHANNEL *,QUIC_TICK_RESULT *,uint32_t) | | ossl_quic_channel_subtick | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,QUIC_TICK_RESULT *,uint32_t) | | ossl_quic_channel_subtick | 1 | QUIC_TICK_RESULT * | +| (QUIC_CHANNEL *,QUIC_TICK_RESULT *,uint32_t) | | ossl_quic_channel_subtick | 2 | uint32_t | +| (QUIC_CHANNEL *,const BIO_ADDR *) | | ossl_quic_channel_set_peer_addr | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,const BIO_ADDR *) | | ossl_quic_channel_set_peer_addr | 1 | const BIO_ADDR * | +| (QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *) | | ossl_quic_channel_on_new_conn | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *) | | ossl_quic_channel_on_new_conn | 1 | const BIO_ADDR * | +| (QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *) | | ossl_quic_channel_on_new_conn | 2 | const QUIC_CONN_ID * | +| (QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *) | | ossl_quic_channel_on_new_conn | 3 | const QUIC_CONN_ID * | +| (QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *) | | ossl_quic_bind_channel | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *) | | ossl_quic_bind_channel | 1 | const BIO_ADDR * | +| (QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *) | | ossl_quic_bind_channel | 2 | const QUIC_CONN_ID * | +| (QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *) | | ossl_quic_bind_channel | 3 | const QUIC_CONN_ID * | +| (QUIC_CHANNEL *,const BIO_ADDR *,const QUIC_CONN_ID *,const QUIC_CONN_ID *,const QUIC_CONN_ID *) | | ossl_quic_bind_channel | 4 | const QUIC_CONN_ID * | +| (QUIC_CHANNEL *,const QUIC_CONN_ID *) | | ossl_quic_channel_replace_local_cid | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,const QUIC_CONN_ID *) | | ossl_quic_channel_replace_local_cid | 1 | const QUIC_CONN_ID * | +| (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,int) | | ossl_quic_channel_new_stream_local | 1 | int | +| (QUIC_CHANNEL *,int,uint64_t) | | ossl_quic_channel_set_incoming_stream_auto_reject | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,int,uint64_t) | | ossl_quic_channel_set_incoming_stream_auto_reject | 1 | int | +| (QUIC_CHANNEL *,int,uint64_t) | | ossl_quic_channel_set_incoming_stream_auto_reject | 2 | uint64_t | +| (QUIC_CHANNEL *,ossl_msg_cb,SSL *) | | ossl_quic_channel_set_msg_callback | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,ossl_msg_cb,SSL *) | | ossl_quic_channel_set_msg_callback | 1 | ossl_msg_cb | +| (QUIC_CHANNEL *,ossl_msg_cb,SSL *) | | ossl_quic_channel_set_msg_callback | 2 | SSL * | +| (QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_quic_channel_set_mutator | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_quic_channel_set_mutator | 1 | ossl_mutate_packet_cb | +| (QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_quic_channel_set_mutator | 2 | ossl_finish_mutate_cb | +| (QUIC_CHANNEL *,ossl_mutate_packet_cb,ossl_finish_mutate_cb,void *) | | ossl_quic_channel_set_mutator | 3 | void * | +| (QUIC_CHANNEL *,uint64_t) | | ossl_quic_channel_new_stream_remote | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,uint64_t) | | ossl_quic_channel_new_stream_remote | 1 | uint64_t | +| (QUIC_CHANNEL *,uint64_t) | | ossl_quic_channel_set_max_idle_timeout_request | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,uint64_t) | | ossl_quic_channel_set_max_idle_timeout_request | 1 | uint64_t | +| (QUIC_CHANNEL *,uint64_t) | | ossl_quic_channel_set_txku_threshold_override | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,uint64_t) | | ossl_quic_channel_set_txku_threshold_override | 1 | uint64_t | +| (QUIC_CHANNEL *,void *) | | ossl_quic_channel_set_msg_callback_arg | 0 | QUIC_CHANNEL * | +| (QUIC_CHANNEL *,void *) | | ossl_quic_channel_set_msg_callback_arg | 1 | void * | +| (QUIC_DEMUX *,BIO *) | | ossl_quic_demux_set_bio | 0 | QUIC_DEMUX * | +| (QUIC_DEMUX *,BIO *) | | ossl_quic_demux_set_bio | 1 | BIO * | +| (QUIC_DEMUX *,QUIC_URXE *) | | ossl_quic_demux_reinject_urxe | 0 | QUIC_DEMUX * | +| (QUIC_DEMUX *,QUIC_URXE *) | | ossl_quic_demux_reinject_urxe | 1 | QUIC_URXE * | +| (QUIC_DEMUX *,QUIC_URXE *) | | ossl_quic_demux_release_urxe | 0 | QUIC_DEMUX * | +| (QUIC_DEMUX *,QUIC_URXE *) | | ossl_quic_demux_release_urxe | 1 | QUIC_URXE * | +| (QUIC_DEMUX *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *) | | ossl_quic_demux_inject | 0 | QUIC_DEMUX * | +| (QUIC_DEMUX *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *) | | ossl_quic_demux_inject | 1 | const unsigned char * | +| (QUIC_DEMUX *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *) | | ossl_quic_demux_inject | 2 | size_t | +| (QUIC_DEMUX *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *) | | ossl_quic_demux_inject | 3 | const BIO_ADDR * | +| (QUIC_DEMUX *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *) | | ossl_quic_demux_inject | 4 | const BIO_ADDR * | +| (QUIC_DEMUX *,ossl_quic_demux_cb_fn *,void *) | | ossl_quic_demux_set_default_handler | 0 | QUIC_DEMUX * | +| (QUIC_DEMUX *,ossl_quic_demux_cb_fn *,void *) | | ossl_quic_demux_set_default_handler | 1 | ossl_quic_demux_cb_fn * | +| (QUIC_DEMUX *,ossl_quic_demux_cb_fn *,void *) | | ossl_quic_demux_set_default_handler | 2 | void * | +| (QUIC_DEMUX *,unsigned int) | | ossl_quic_demux_set_mtu | 0 | QUIC_DEMUX * | +| (QUIC_DEMUX *,unsigned int) | | ossl_quic_demux_set_mtu | 1 | unsigned int | +| (QUIC_ENGINE *) | | ossl_quic_engine_get0_libctx | 0 | QUIC_ENGINE * | +| (QUIC_ENGINE *) | | ossl_quic_engine_get0_mutex | 0 | QUIC_ENGINE * | +| (QUIC_ENGINE *) | | ossl_quic_engine_get0_propq | 0 | QUIC_ENGINE * | +| (QUIC_ENGINE *) | | ossl_quic_engine_get0_reactor | 0 | QUIC_ENGINE * | +| (QUIC_ENGINE *,..(*)(..),void *) | | ossl_quic_engine_set_time_cb | 0 | QUIC_ENGINE * | +| (QUIC_ENGINE *,..(*)(..),void *) | | ossl_quic_engine_set_time_cb | 1 | ..(*)(..) | +| (QUIC_ENGINE *,..(*)(..),void *) | | ossl_quic_engine_set_time_cb | 2 | void * | +| (QUIC_ENGINE *,OSSL_TIME) | | ossl_quic_engine_make_real_time | 0 | QUIC_ENGINE * | +| (QUIC_ENGINE *,OSSL_TIME) | | ossl_quic_engine_make_real_time | 1 | OSSL_TIME | +| (QUIC_ENGINE *,const QUIC_PORT_ARGS *) | | ossl_quic_engine_create_port | 0 | QUIC_ENGINE * | +| (QUIC_ENGINE *,const QUIC_PORT_ARGS *) | | ossl_quic_engine_create_port | 1 | const QUIC_PORT_ARGS * | +| (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 0 | QUIC_ENGINE * | +| (QUIC_ENGINE *,int) | | ossl_quic_engine_set_inhibit_tick | 1 | int | +| (QUIC_FIFD *,..(*)(..),void *) | | ossl_quic_fifd_set_qlog_cb | 0 | QUIC_FIFD * | +| (QUIC_FIFD *,..(*)(..),void *) | | ossl_quic_fifd_set_qlog_cb | 1 | ..(*)(..) | +| (QUIC_FIFD *,..(*)(..),void *) | | ossl_quic_fifd_set_qlog_cb | 2 | void * | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 0 | QUIC_FIFD * | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 1 | QUIC_CFQ * | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 2 | OSSL_ACKM * | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 3 | QUIC_TXPIM * | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 4 | ..(*)(..) | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 5 | void * | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 6 | ..(*)(..) | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 7 | void * | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 8 | ..(*)(..) | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 9 | void * | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 10 | ..(*)(..) | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 11 | void * | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 12 | ..(*)(..) | +| (QUIC_FIFD *,QUIC_CFQ *,OSSL_ACKM *,QUIC_TXPIM *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *,..(*)(..),void *) | | ossl_quic_fifd_init | 13 | void * | +| (QUIC_FIFD *,QUIC_TXPIM_PKT *) | | ossl_quic_fifd_pkt_commit | 0 | QUIC_FIFD * | +| (QUIC_FIFD *,QUIC_TXPIM_PKT *) | | ossl_quic_fifd_pkt_commit | 1 | QUIC_TXPIM_PKT * | +| (QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t) | | ossl_quic_hdr_protector_init | 0 | QUIC_HDR_PROTECTOR * | +| (QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t) | | ossl_quic_hdr_protector_init | 1 | OSSL_LIB_CTX * | +| (QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t) | | ossl_quic_hdr_protector_init | 2 | const char * | +| (QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t) | | ossl_quic_hdr_protector_init | 3 | uint32_t | +| (QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t) | | ossl_quic_hdr_protector_init | 4 | const unsigned char * | +| (QUIC_HDR_PROTECTOR *,OSSL_LIB_CTX *,const char *,uint32_t,const unsigned char *,size_t) | | ossl_quic_hdr_protector_init | 5 | size_t | +| (QUIC_HDR_PROTECTOR *,QUIC_PKT_HDR_PTRS *) | | ossl_quic_hdr_protector_decrypt | 0 | QUIC_HDR_PROTECTOR * | +| (QUIC_HDR_PROTECTOR *,QUIC_PKT_HDR_PTRS *) | | ossl_quic_hdr_protector_decrypt | 1 | QUIC_PKT_HDR_PTRS * | +| (QUIC_HDR_PROTECTOR *,QUIC_PKT_HDR_PTRS *) | | ossl_quic_hdr_protector_encrypt | 0 | QUIC_HDR_PROTECTOR * | +| (QUIC_HDR_PROTECTOR *,QUIC_PKT_HDR_PTRS *) | | ossl_quic_hdr_protector_encrypt | 1 | QUIC_PKT_HDR_PTRS * | +| (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_decrypt_fields | 0 | QUIC_HDR_PROTECTOR * | +| (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_decrypt_fields | 1 | const unsigned char * | +| (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_decrypt_fields | 2 | size_t | +| (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_decrypt_fields | 3 | unsigned char * | +| (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_decrypt_fields | 4 | unsigned char * | +| (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_encrypt_fields | 0 | QUIC_HDR_PROTECTOR * | +| (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_encrypt_fields | 1 | const unsigned char * | +| (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_encrypt_fields | 2 | size_t | +| (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_encrypt_fields | 3 | unsigned char * | +| (QUIC_HDR_PROTECTOR *,const unsigned char *,size_t,unsigned char *,unsigned char *) | | ossl_quic_hdr_protector_encrypt_fields | 4 | unsigned char * | +| (QUIC_LCIDM *,QUIC_CONN_ID *) | | ossl_quic_lcidm_get_unused_cid | 0 | QUIC_LCIDM * | +| (QUIC_LCIDM *,QUIC_CONN_ID *) | | ossl_quic_lcidm_get_unused_cid | 1 | QUIC_CONN_ID * | +| (QUIC_LCIDM *,const QUIC_CONN_ID *) | | ossl_quic_lcidm_debug_remove | 0 | QUIC_LCIDM * | +| (QUIC_LCIDM *,const QUIC_CONN_ID *) | | ossl_quic_lcidm_debug_remove | 1 | const QUIC_CONN_ID * | +| (QUIC_LCIDM *,const QUIC_CONN_ID *,uint64_t *,void **) | | ossl_quic_lcidm_lookup | 0 | QUIC_LCIDM * | +| (QUIC_LCIDM *,const QUIC_CONN_ID *,uint64_t *,void **) | | ossl_quic_lcidm_lookup | 1 | const QUIC_CONN_ID * | +| (QUIC_LCIDM *,const QUIC_CONN_ID *,uint64_t *,void **) | | ossl_quic_lcidm_lookup | 2 | uint64_t * | +| (QUIC_LCIDM *,const QUIC_CONN_ID *,uint64_t *,void **) | | ossl_quic_lcidm_lookup | 3 | void ** | +| (QUIC_LCIDM *,void *,OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_lcidm_generate | 0 | QUIC_LCIDM * | +| (QUIC_LCIDM *,void *,OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_lcidm_generate | 1 | void * | +| (QUIC_LCIDM *,void *,OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_lcidm_generate | 2 | OSSL_QUIC_FRAME_NEW_CONN_ID * | +| (QUIC_LCIDM *,void *,QUIC_CONN_ID *) | | ossl_quic_lcidm_generate_initial | 0 | QUIC_LCIDM * | +| (QUIC_LCIDM *,void *,QUIC_CONN_ID *) | | ossl_quic_lcidm_generate_initial | 1 | void * | +| (QUIC_LCIDM *,void *,QUIC_CONN_ID *) | | ossl_quic_lcidm_generate_initial | 2 | QUIC_CONN_ID * | +| (QUIC_LCIDM *,void *,const QUIC_CONN_ID *) | | ossl_quic_lcidm_bind_channel | 0 | QUIC_LCIDM * | +| (QUIC_LCIDM *,void *,const QUIC_CONN_ID *) | | ossl_quic_lcidm_bind_channel | 1 | void * | +| (QUIC_LCIDM *,void *,const QUIC_CONN_ID *) | | ossl_quic_lcidm_bind_channel | 2 | const QUIC_CONN_ID * | +| (QUIC_LCIDM *,void *,const QUIC_CONN_ID *) | | ossl_quic_lcidm_enrol_odcid | 0 | QUIC_LCIDM * | +| (QUIC_LCIDM *,void *,const QUIC_CONN_ID *) | | ossl_quic_lcidm_enrol_odcid | 1 | void * | +| (QUIC_LCIDM *,void *,const QUIC_CONN_ID *) | | ossl_quic_lcidm_enrol_odcid | 2 | const QUIC_CONN_ID * | +| (QUIC_LCIDM *,void *,const QUIC_CONN_ID *,uint64_t) | | ossl_quic_lcidm_debug_add | 0 | QUIC_LCIDM * | +| (QUIC_LCIDM *,void *,const QUIC_CONN_ID *,uint64_t) | | ossl_quic_lcidm_debug_add | 1 | void * | +| (QUIC_LCIDM *,void *,const QUIC_CONN_ID *,uint64_t) | | ossl_quic_lcidm_debug_add | 2 | const QUIC_CONN_ID * | +| (QUIC_LCIDM *,void *,const QUIC_CONN_ID *,uint64_t) | | ossl_quic_lcidm_debug_add | 3 | uint64_t | +| (QUIC_OBJ *) | | ossl_quic_obj_get0_handshake_layer | 0 | QUIC_OBJ * | +| (QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *) | | ossl_quic_obj_init | 0 | QUIC_OBJ * | +| (QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *) | | ossl_quic_obj_init | 1 | SSL_CTX * | +| (QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *) | | ossl_quic_obj_init | 2 | int | +| (QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *) | | ossl_quic_obj_init | 3 | SSL * | +| (QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *) | | ossl_quic_obj_init | 4 | QUIC_ENGINE * | +| (QUIC_OBJ *,SSL_CTX *,int,SSL *,QUIC_ENGINE *,QUIC_PORT *) | | ossl_quic_obj_init | 5 | QUIC_PORT * | +| (QUIC_OBJ *,unsigned int) | | ossl_quic_obj_set_blocking_mode | 0 | QUIC_OBJ * | +| (QUIC_OBJ *,unsigned int) | | ossl_quic_obj_set_blocking_mode | 1 | unsigned int | +| (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 0 | QUIC_PN | +| (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 1 | unsigned char * | +| (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 2 | size_t | +| (QUIC_PORT *) | | ossl_quic_port_get0_demux | 0 | QUIC_PORT * | +| (QUIC_PORT *) | | ossl_quic_port_get0_engine | 0 | QUIC_PORT * | +| (QUIC_PORT *) | | ossl_quic_port_get0_mutex | 0 | QUIC_PORT * | +| (QUIC_PORT *) | | ossl_quic_port_get0_reactor | 0 | QUIC_PORT * | +| (QUIC_PORT *) | | ossl_quic_port_get_channel_ctx | 0 | QUIC_PORT * | +| (QUIC_PORT *) | | ossl_quic_port_get_net_rbio | 0 | QUIC_PORT * | +| (QUIC_PORT *) | | ossl_quic_port_get_net_wbio | 0 | QUIC_PORT * | +| (QUIC_PORT *) | | ossl_quic_port_have_incoming | 0 | QUIC_PORT * | +| (QUIC_PORT *) | | ossl_quic_port_pop_incoming | 0 | QUIC_PORT * | +| (QUIC_PORT *,BIO *) | | ossl_quic_port_set_net_rbio | 0 | QUIC_PORT * | +| (QUIC_PORT *,BIO *) | | ossl_quic_port_set_net_rbio | 1 | BIO * | +| (QUIC_PORT *,BIO *) | | ossl_quic_port_set_net_wbio | 0 | QUIC_PORT * | +| (QUIC_PORT *,BIO *) | | ossl_quic_port_set_net_wbio | 1 | BIO * | +| (QUIC_PORT *,SSL *) | | ossl_quic_port_create_incoming | 0 | QUIC_PORT * | +| (QUIC_PORT *,SSL *) | | ossl_quic_port_create_incoming | 1 | SSL * | +| (QUIC_PORT *,SSL *) | | ossl_quic_port_create_outgoing | 0 | QUIC_PORT * | +| (QUIC_PORT *,SSL *) | | ossl_quic_port_create_outgoing | 1 | SSL * | +| (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 0 | QUIC_PORT * | +| (QUIC_PORT *,int) | | ossl_quic_port_set_allow_incoming | 1 | int | +| (QUIC_RCIDM *,QUIC_CONN_ID *) | | ossl_quic_rcidm_get_preferred_tx_dcid | 0 | QUIC_RCIDM * | +| (QUIC_RCIDM *,QUIC_CONN_ID *) | | ossl_quic_rcidm_get_preferred_tx_dcid | 1 | QUIC_CONN_ID * | +| (QUIC_RCIDM *,const OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_rcidm_add_from_ncid | 0 | QUIC_RCIDM * | +| (QUIC_RCIDM *,const OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_rcidm_add_from_ncid | 1 | const OSSL_QUIC_FRAME_NEW_CONN_ID * | +| (QUIC_RCIDM *,const QUIC_CONN_ID *) | | ossl_quic_rcidm_add_from_initial | 0 | QUIC_RCIDM * | +| (QUIC_RCIDM *,const QUIC_CONN_ID *) | | ossl_quic_rcidm_add_from_initial | 1 | const QUIC_CONN_ID * | +| (QUIC_RCIDM *,const QUIC_CONN_ID *) | | ossl_quic_rcidm_add_from_server_retry | 0 | QUIC_RCIDM * | +| (QUIC_RCIDM *,const QUIC_CONN_ID *) | | ossl_quic_rcidm_add_from_server_retry | 1 | const QUIC_CONN_ID * | +| (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 0 | QUIC_RCIDM * | +| (QUIC_RCIDM *,int) | | ossl_quic_rcidm_get_preferred_tx_dcid_changed | 1 | int | +| (QUIC_RCIDM *,uint64_t) | | ossl_quic_rcidm_on_packet_sent | 0 | QUIC_RCIDM * | +| (QUIC_RCIDM *,uint64_t) | | ossl_quic_rcidm_on_packet_sent | 1 | uint64_t | +| (QUIC_REACTOR *) | | ossl_quic_reactor_get0_notifier | 0 | QUIC_REACTOR * | +| (QUIC_REACTOR *) | | ossl_quic_reactor_get_tick_deadline | 0 | QUIC_REACTOR * | +| (QUIC_REACTOR *) | | ossl_quic_reactor_net_read_desired | 0 | QUIC_REACTOR * | +| (QUIC_REACTOR *) | | ossl_quic_reactor_net_write_desired | 0 | QUIC_REACTOR * | +| (QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t) | | ossl_quic_reactor_init | 0 | QUIC_REACTOR * | +| (QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t) | | ossl_quic_reactor_init | 1 | ..(*)(..) | +| (QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t) | | ossl_quic_reactor_init | 2 | void * | +| (QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t) | | ossl_quic_reactor_init | 3 | CRYPTO_MUTEX * | +| (QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t) | | ossl_quic_reactor_init | 4 | OSSL_TIME | +| (QUIC_REACTOR *,..(*)(..),void *,CRYPTO_MUTEX *,OSSL_TIME,uint64_t) | | ossl_quic_reactor_init | 5 | uint64_t | +| (QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *) | | ossl_quic_reactor_set_poll_r | 0 | QUIC_REACTOR * | +| (QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *) | | ossl_quic_reactor_set_poll_r | 1 | const BIO_POLL_DESCRIPTOR * | +| (QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *) | | ossl_quic_reactor_set_poll_w | 0 | QUIC_REACTOR * | +| (QUIC_REACTOR *,const BIO_POLL_DESCRIPTOR *) | | ossl_quic_reactor_set_poll_w | 1 | const BIO_POLL_DESCRIPTOR * | +| (QUIC_RSTREAM *,const unsigned char **,size_t *,int *) | | ossl_quic_rstream_get_record | 0 | QUIC_RSTREAM * | +| (QUIC_RSTREAM *,const unsigned char **,size_t *,int *) | | ossl_quic_rstream_get_record | 1 | const unsigned char ** | +| (QUIC_RSTREAM *,const unsigned char **,size_t *,int *) | | ossl_quic_rstream_get_record | 2 | size_t * | +| (QUIC_RSTREAM *,const unsigned char **,size_t *,int *) | | ossl_quic_rstream_get_record | 3 | int * | +| (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 0 | QUIC_RSTREAM * | +| (QUIC_RSTREAM *,int) | | ossl_quic_rstream_set_cleanse | 1 | int | +| (QUIC_RSTREAM *,size_t *,int *) | | ossl_quic_rstream_available | 0 | QUIC_RSTREAM * | +| (QUIC_RSTREAM *,size_t *,int *) | | ossl_quic_rstream_available | 1 | size_t * | +| (QUIC_RSTREAM *,size_t *,int *) | | ossl_quic_rstream_available | 2 | int * | +| (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_release_record | 0 | QUIC_RSTREAM * | +| (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_release_record | 1 | size_t | +| (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_resize_rbuf | 0 | QUIC_RSTREAM * | +| (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_resize_rbuf | 1 | size_t | +| (QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *) | | ossl_quic_rstream_peek | 0 | QUIC_RSTREAM * | +| (QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *) | | ossl_quic_rstream_peek | 1 | unsigned char * | +| (QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *) | | ossl_quic_rstream_peek | 2 | size_t | +| (QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *) | | ossl_quic_rstream_peek | 3 | size_t * | +| (QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *) | | ossl_quic_rstream_peek | 4 | int * | +| (QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *) | | ossl_quic_rstream_read | 0 | QUIC_RSTREAM * | +| (QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *) | | ossl_quic_rstream_read | 1 | unsigned char * | +| (QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *) | | ossl_quic_rstream_read | 2 | size_t | +| (QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *) | | ossl_quic_rstream_read | 3 | size_t * | +| (QUIC_RSTREAM *,unsigned char *,size_t,size_t *,int *) | | ossl_quic_rstream_read | 4 | int * | +| (QUIC_RXFC *) | | ossl_quic_rxfc_get_parent | 0 | QUIC_RXFC * | +| (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 0 | QUIC_RXFC * | +| (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 1 | OSSL_STATM * | +| (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 2 | size_t | +| (QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init | 0 | QUIC_RXFC * | +| (QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init | 1 | QUIC_RXFC * | +| (QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init | 2 | uint64_t | +| (QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init | 3 | uint64_t | +| (QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init | 4 | ..(*)(..) | +| (QUIC_RXFC *,QUIC_RXFC *,uint64_t,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init | 5 | void * | +| (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 0 | QUIC_RXFC * | +| (QUIC_RXFC *,int) | | ossl_quic_rxfc_get_error | 1 | int | +| (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 0 | QUIC_RXFC * | +| (QUIC_RXFC *,int) | | ossl_quic_rxfc_has_cwm_changed | 1 | int | +| (QUIC_RXFC *,size_t) | | ossl_quic_rxfc_set_max_window_size | 0 | QUIC_RXFC * | +| (QUIC_RXFC *,size_t) | | ossl_quic_rxfc_set_max_window_size | 1 | size_t | +| (QUIC_RXFC *,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init_standalone | 0 | QUIC_RXFC * | +| (QUIC_RXFC *,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init_standalone | 1 | uint64_t | +| (QUIC_RXFC *,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init_standalone | 2 | ..(*)(..) | +| (QUIC_RXFC *,uint64_t,..(*)(..),void *) | | ossl_quic_rxfc_init_standalone | 3 | void * | +| (QUIC_RXFC *,uint64_t,OSSL_TIME) | | ossl_quic_rxfc_on_retire | 0 | QUIC_RXFC * | +| (QUIC_RXFC *,uint64_t,OSSL_TIME) | | ossl_quic_rxfc_on_retire | 1 | uint64_t | +| (QUIC_RXFC *,uint64_t,OSSL_TIME) | | ossl_quic_rxfc_on_retire | 2 | OSSL_TIME | +| (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 0 | QUIC_RXFC * | +| (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 1 | uint64_t | +| (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | int | +| (QUIC_SRTM *,const QUIC_STATELESS_RESET_TOKEN *,size_t,void **,uint64_t *) | | ossl_quic_srtm_lookup | 0 | QUIC_SRTM * | +| (QUIC_SRTM *,const QUIC_STATELESS_RESET_TOKEN *,size_t,void **,uint64_t *) | | ossl_quic_srtm_lookup | 1 | const QUIC_STATELESS_RESET_TOKEN * | +| (QUIC_SRTM *,const QUIC_STATELESS_RESET_TOKEN *,size_t,void **,uint64_t *) | | ossl_quic_srtm_lookup | 2 | size_t | +| (QUIC_SRTM *,const QUIC_STATELESS_RESET_TOKEN *,size_t,void **,uint64_t *) | | ossl_quic_srtm_lookup | 3 | void ** | +| (QUIC_SRTM *,const QUIC_STATELESS_RESET_TOKEN *,size_t,void **,uint64_t *) | | ossl_quic_srtm_lookup | 4 | uint64_t * | +| (QUIC_SRTM *,void *,uint64_t,const QUIC_STATELESS_RESET_TOKEN *) | | ossl_quic_srtm_add | 0 | QUIC_SRTM * | +| (QUIC_SRTM *,void *,uint64_t,const QUIC_STATELESS_RESET_TOKEN *) | | ossl_quic_srtm_add | 1 | void * | +| (QUIC_SRTM *,void *,uint64_t,const QUIC_STATELESS_RESET_TOKEN *) | | ossl_quic_srtm_add | 2 | uint64_t | +| (QUIC_SRTM *,void *,uint64_t,const QUIC_STATELESS_RESET_TOKEN *) | | ossl_quic_srtm_add | 3 | const QUIC_STATELESS_RESET_TOKEN * | +| (QUIC_SSTREAM *) | | ossl_quic_sstream_get_buffer_avail | 0 | QUIC_SSTREAM * | +| (QUIC_SSTREAM *) | | ossl_quic_sstream_get_buffer_size | 0 | QUIC_SSTREAM * | +| (QUIC_SSTREAM *) | | ossl_quic_sstream_get_buffer_used | 0 | QUIC_SSTREAM * | +| (QUIC_SSTREAM *) | | ossl_quic_sstream_get_cur_size | 0 | QUIC_SSTREAM * | +| (QUIC_SSTREAM *,const unsigned char *,size_t,size_t *) | | ossl_quic_sstream_append | 0 | QUIC_SSTREAM * | +| (QUIC_SSTREAM *,const unsigned char *,size_t,size_t *) | | ossl_quic_sstream_append | 1 | const unsigned char * | +| (QUIC_SSTREAM *,const unsigned char *,size_t,size_t *) | | ossl_quic_sstream_append | 2 | size_t | +| (QUIC_SSTREAM *,const unsigned char *,size_t,size_t *) | | ossl_quic_sstream_append | 3 | size_t * | +| (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 0 | QUIC_SSTREAM * | +| (QUIC_SSTREAM *,int) | | ossl_quic_sstream_set_cleanse | 1 | int | +| (QUIC_SSTREAM *,size_t) | | ossl_quic_sstream_set_buffer_size | 0 | QUIC_SSTREAM * | +| (QUIC_SSTREAM *,size_t) | | ossl_quic_sstream_set_buffer_size | 1 | size_t | +| (QUIC_SSTREAM *,size_t,OSSL_QUIC_FRAME_STREAM *,OSSL_QTX_IOVEC *,size_t *) | | ossl_quic_sstream_get_stream_frame | 0 | QUIC_SSTREAM * | +| (QUIC_SSTREAM *,size_t,OSSL_QUIC_FRAME_STREAM *,OSSL_QTX_IOVEC *,size_t *) | | ossl_quic_sstream_get_stream_frame | 1 | size_t | +| (QUIC_SSTREAM *,size_t,OSSL_QUIC_FRAME_STREAM *,OSSL_QTX_IOVEC *,size_t *) | | ossl_quic_sstream_get_stream_frame | 2 | OSSL_QUIC_FRAME_STREAM * | +| (QUIC_SSTREAM *,size_t,OSSL_QUIC_FRAME_STREAM *,OSSL_QTX_IOVEC *,size_t *) | | ossl_quic_sstream_get_stream_frame | 3 | OSSL_QTX_IOVEC * | +| (QUIC_SSTREAM *,size_t,OSSL_QUIC_FRAME_STREAM *,OSSL_QTX_IOVEC *,size_t *) | | ossl_quic_sstream_get_stream_frame | 4 | size_t * | +| (QUIC_SSTREAM *,uint64_t *) | | ossl_quic_sstream_get_final_size | 0 | QUIC_SSTREAM * | +| (QUIC_SSTREAM *,uint64_t *) | | ossl_quic_sstream_get_final_size | 1 | uint64_t * | +| (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 0 | QUIC_STREAM_ITER * | +| (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 1 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | int | +| (QUIC_STREAM_MAP *) | | ossl_quic_stream_map_get_total_accept_queue_len | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *) | | ossl_quic_stream_map_peek_accept_queue | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int) | | ossl_quic_stream_map_init | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int) | | ossl_quic_stream_map_init | 1 | ..(*)(..) | +| (QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int) | | ossl_quic_stream_map_init | 2 | void * | +| (QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int) | | ossl_quic_stream_map_init | 3 | QUIC_RXFC * | +| (QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int) | | ossl_quic_stream_map_init | 4 | QUIC_RXFC * | +| (QUIC_STREAM_MAP *,..(*)(..),void *,QUIC_RXFC *,QUIC_RXFC *,int) | | ossl_quic_stream_map_init | 5 | int | +| (QUIC_STREAM_MAP *,QUIC_STREAM *) | | ossl_quic_stream_map_push_accept_queue | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *) | | ossl_quic_stream_map_push_accept_queue | 1 | QUIC_STREAM * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *) | | ossl_quic_stream_map_schedule_stop_sending | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *) | | ossl_quic_stream_map_schedule_stop_sending | 1 | QUIC_STREAM * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *) | | ossl_quic_stream_map_update_state | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *) | | ossl_quic_stream_map_update_state | 1 | QUIC_STREAM * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t) | | ossl_quic_stream_map_reset_stream_send_part | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t) | | ossl_quic_stream_map_reset_stream_send_part | 1 | QUIC_STREAM * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t) | | ossl_quic_stream_map_reset_stream_send_part | 2 | uint64_t | +| (QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t) | | ossl_quic_stream_map_stop_sending_recv_part | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t) | | ossl_quic_stream_map_stop_sending_recv_part | 1 | QUIC_STREAM * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t) | | ossl_quic_stream_map_stop_sending_recv_part | 2 | uint64_t | +| (QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t,uint64_t) | | ossl_quic_stream_map_notify_reset_recv_part | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t,uint64_t) | | ossl_quic_stream_map_notify_reset_recv_part | 1 | QUIC_STREAM * | +| (QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t,uint64_t) | | ossl_quic_stream_map_notify_reset_recv_part | 2 | uint64_t | +| (QUIC_STREAM_MAP *,QUIC_STREAM *,uint64_t,uint64_t) | | ossl_quic_stream_map_notify_reset_recv_part | 3 | uint64_t | +| (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,int) | | ossl_quic_stream_map_get_accept_queue_len | 1 | int | +| (QUIC_STREAM_MAP *,size_t) | | ossl_quic_stream_map_set_rr_stepping | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,size_t) | | ossl_quic_stream_map_set_rr_stepping | 1 | size_t | +| (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 0 | QUIC_STREAM_MAP * | +| (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 1 | uint64_t | +| (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | int | +| (QUIC_THREAD_ASSIST *,QUIC_CHANNEL *) | | ossl_quic_thread_assist_init_start | 0 | QUIC_THREAD_ASSIST * | +| (QUIC_THREAD_ASSIST *,QUIC_CHANNEL *) | | ossl_quic_thread_assist_init_start | 1 | QUIC_CHANNEL * | +| (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 0 | QUIC_TLS * | +| (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 1 | const unsigned char * | +| (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 2 | size_t | +| (QUIC_TLS *,uint64_t *,const char **,ERR_STATE **) | | ossl_quic_tls_get_error | 0 | QUIC_TLS * | +| (QUIC_TLS *,uint64_t *,const char **,ERR_STATE **) | | ossl_quic_tls_get_error | 1 | uint64_t * | +| (QUIC_TLS *,uint64_t *,const char **,ERR_STATE **) | | ossl_quic_tls_get_error | 2 | const char ** | +| (QUIC_TLS *,uint64_t *,const char **,ERR_STATE **) | | ossl_quic_tls_get_error | 3 | ERR_STATE ** | +| (QUIC_TSERVER *) | | ossl_quic_tserver_get0_rbio | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *) | | ossl_quic_tserver_get0_ssl_ctx | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *) | | ossl_quic_tserver_get_channel | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *) | | qtest_create_injector | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,..(*)(..),void *) | | ossl_quic_tserver_set_msg_callback | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,..(*)(..),void *) | | ossl_quic_tserver_set_msg_callback | 1 | ..(*)(..) | +| (QUIC_TSERVER *,..(*)(..),void *) | | ossl_quic_tserver_set_msg_callback | 2 | void * | +| (QUIC_TSERVER *,SSL *) | | qtest_create_quic_connection | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,SSL *) | | qtest_create_quic_connection | 1 | SSL * | +| (QUIC_TSERVER *,SSL *) | | qtest_shutdown | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,SSL *) | | qtest_shutdown | 1 | SSL * | +| (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 1 | SSL * | +| (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | int | +| (QUIC_TSERVER *,SSL_psk_find_session_cb_func) | | ossl_quic_tserver_set_psk_find_session_cb | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,SSL_psk_find_session_cb_func) | | ossl_quic_tserver_set_psk_find_session_cb | 1 | SSL_psk_find_session_cb_func | +| (QUIC_TSERVER *,const QUIC_CONN_ID *) | | ossl_quic_tserver_set_new_local_cid | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,const QUIC_CONN_ID *) | | ossl_quic_tserver_set_new_local_cid | 1 | const QUIC_CONN_ID * | +| (QUIC_TSERVER *,int,uint64_t *) | | ossl_quic_tserver_stream_new | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,int,uint64_t *) | | ossl_quic_tserver_stream_new | 1 | int | +| (QUIC_TSERVER *,int,uint64_t *) | | ossl_quic_tserver_stream_new | 2 | uint64_t * | +| (QUIC_TSERVER *,uint32_t) | | ossl_quic_tserver_set_max_early_data | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,uint32_t) | | ossl_quic_tserver_set_max_early_data | 1 | uint32_t | +| (QUIC_TSERVER *,uint64_t,const unsigned char *,size_t,size_t *) | | ossl_quic_tserver_write | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,uint64_t,const unsigned char *,size_t,size_t *) | | ossl_quic_tserver_write | 1 | uint64_t | +| (QUIC_TSERVER *,uint64_t,const unsigned char *,size_t,size_t *) | | ossl_quic_tserver_write | 2 | const unsigned char * | +| (QUIC_TSERVER *,uint64_t,const unsigned char *,size_t,size_t *) | | ossl_quic_tserver_write | 3 | size_t | +| (QUIC_TSERVER *,uint64_t,const unsigned char *,size_t,size_t *) | | ossl_quic_tserver_write | 4 | size_t * | +| (QUIC_TSERVER *,uint64_t,unsigned char *,size_t,size_t *) | | ossl_quic_tserver_read | 0 | QUIC_TSERVER * | +| (QUIC_TSERVER *,uint64_t,unsigned char *,size_t,size_t *) | | ossl_quic_tserver_read | 1 | uint64_t | +| (QUIC_TSERVER *,uint64_t,unsigned char *,size_t,size_t *) | | ossl_quic_tserver_read | 2 | unsigned char * | +| (QUIC_TSERVER *,uint64_t,unsigned char *,size_t,size_t *) | | ossl_quic_tserver_read | 3 | size_t | +| (QUIC_TSERVER *,uint64_t,unsigned char *,size_t,size_t *) | | ossl_quic_tserver_read | 4 | size_t * | +| (QUIC_TXFC *) | | ossl_quic_txfc_get_cwm | 0 | QUIC_TXFC * | +| (QUIC_TXFC *) | | ossl_quic_txfc_get_parent | 0 | QUIC_TXFC * | +| (QUIC_TXFC *) | | ossl_quic_txfc_get_swm | 0 | QUIC_TXFC * | +| (QUIC_TXFC *,QUIC_TXFC *) | | ossl_quic_txfc_init | 0 | QUIC_TXFC * | +| (QUIC_TXFC *,QUIC_TXFC *) | | ossl_quic_txfc_init | 1 | QUIC_TXFC * | +| (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 0 | QUIC_TXFC * | +| (QUIC_TXFC *,int) | | ossl_quic_txfc_has_become_blocked | 1 | int | +| (QUIC_TXFC *,uint64_t) | | ossl_quic_txfc_bump_cwm | 0 | QUIC_TXFC * | +| (QUIC_TXFC *,uint64_t) | | ossl_quic_txfc_bump_cwm | 1 | uint64_t | +| (QUIC_TXFC *,uint64_t) | | ossl_quic_txfc_consume_credit | 0 | QUIC_TXFC * | +| (QUIC_TXFC *,uint64_t) | | ossl_quic_txfc_consume_credit | 1 | uint64_t | +| (QUIC_TXFC *,uint64_t) | | ossl_quic_txfc_consume_credit_local | 0 | QUIC_TXFC * | +| (QUIC_TXFC *,uint64_t) | | ossl_quic_txfc_consume_credit_local | 1 | uint64_t | +| (QUIC_TXFC *,uint64_t) | | ossl_quic_txfc_get_credit | 0 | QUIC_TXFC * | +| (QUIC_TXFC *,uint64_t) | | ossl_quic_txfc_get_credit | 1 | uint64_t | +| (QUIC_TXFC *,uint64_t) | | ossl_quic_txfc_get_credit_local | 0 | QUIC_TXFC * | +| (QUIC_TXFC *,uint64_t) | | ossl_quic_txfc_get_credit_local | 1 | uint64_t | +| (QUIC_TXPIM *,QUIC_TXPIM_PKT *) | | ossl_quic_txpim_pkt_release | 0 | QUIC_TXPIM * | +| (QUIC_TXPIM *,QUIC_TXPIM_PKT *) | | ossl_quic_txpim_pkt_release | 1 | QUIC_TXPIM_PKT * | +| (QUIC_TXPIM_PKT *,QUIC_CFQ_ITEM *) | | ossl_quic_txpim_pkt_add_cfq_item | 0 | QUIC_TXPIM_PKT * | +| (QUIC_TXPIM_PKT *,QUIC_CFQ_ITEM *) | | ossl_quic_txpim_pkt_add_cfq_item | 1 | QUIC_CFQ_ITEM * | +| (QUIC_TXPIM_PKT *,const QUIC_TXPIM_CHUNK *) | | ossl_quic_txpim_pkt_append_chunk | 0 | QUIC_TXPIM_PKT * | +| (QUIC_TXPIM_PKT *,const QUIC_TXPIM_CHUNK *) | | ossl_quic_txpim_pkt_append_chunk | 1 | const QUIC_TXPIM_CHUNK * | +| (RAND_POOL *) | | ossl_pool_acquire_entropy | 0 | RAND_POOL * | +| (RAND_POOL *) | | ossl_rand_pool_buffer | 0 | RAND_POOL * | +| (RAND_POOL *) | | ossl_rand_pool_bytes_remaining | 0 | RAND_POOL * | +| (RAND_POOL *) | | ossl_rand_pool_detach | 0 | RAND_POOL * | +| (RAND_POOL *) | | ossl_rand_pool_entropy | 0 | RAND_POOL * | +| (RAND_POOL *) | | ossl_rand_pool_entropy_available | 0 | RAND_POOL * | +| (RAND_POOL *) | | ossl_rand_pool_entropy_needed | 0 | RAND_POOL * | +| (RAND_POOL *) | | ossl_rand_pool_length | 0 | RAND_POOL * | +| (RAND_POOL *,const unsigned char *,size_t) | | ossl_rand_pool_adin_mix_in | 0 | RAND_POOL * | +| (RAND_POOL *,const unsigned char *,size_t) | | ossl_rand_pool_adin_mix_in | 1 | const unsigned char * | +| (RAND_POOL *,const unsigned char *,size_t) | | ossl_rand_pool_adin_mix_in | 2 | size_t | +| (RAND_POOL *,const unsigned char *,size_t,size_t) | | ossl_rand_pool_add | 0 | RAND_POOL * | +| (RAND_POOL *,const unsigned char *,size_t,size_t) | | ossl_rand_pool_add | 1 | const unsigned char * | +| (RAND_POOL *,const unsigned char *,size_t,size_t) | | ossl_rand_pool_add | 2 | size_t | +| (RAND_POOL *,const unsigned char *,size_t,size_t) | | ossl_rand_pool_add | 3 | size_t | +| (RAND_POOL *,size_t) | | ossl_rand_pool_add_begin | 0 | RAND_POOL * | +| (RAND_POOL *,size_t) | | ossl_rand_pool_add_begin | 1 | size_t | +| (RAND_POOL *,size_t,size_t) | | ossl_rand_pool_add_end | 0 | RAND_POOL * | +| (RAND_POOL *,size_t,size_t) | | ossl_rand_pool_add_end | 1 | size_t | +| (RAND_POOL *,size_t,size_t) | | ossl_rand_pool_add_end | 2 | size_t | +| (RAND_POOL *,unsigned char *) | | ossl_rand_pool_reattach | 0 | RAND_POOL * | +| (RAND_POOL *,unsigned char *) | | ossl_rand_pool_reattach | 1 | unsigned char * | +| (RAND_POOL *,unsigned int) | | ossl_rand_pool_bytes_needed | 0 | RAND_POOL * | +| (RAND_POOL *,unsigned int) | | ossl_rand_pool_bytes_needed | 1 | unsigned int | +| (RECORD_LAYER *,SSL_CONNECTION *) | | RECORD_LAYER_init | 0 | RECORD_LAYER * | +| (RECORD_LAYER *,SSL_CONNECTION *) | | RECORD_LAYER_init | 1 | SSL_CONNECTION * | +| (RIO_NOTIFIER *) | | ossl_rio_notifier_cleanup | 0 | RIO_NOTIFIER * | +| (RIPEMD160_CTX *,const unsigned char *) | | RIPEMD160_Transform | 0 | RIPEMD160_CTX * | +| (RIPEMD160_CTX *,const unsigned char *) | | RIPEMD160_Transform | 1 | const unsigned char * | +| (RIPEMD160_CTX *,const void *,size_t) | | RIPEMD160_Update | 0 | RIPEMD160_CTX * | +| (RIPEMD160_CTX *,const void *,size_t) | | RIPEMD160_Update | 1 | const void * | +| (RIPEMD160_CTX *,const void *,size_t) | | RIPEMD160_Update | 2 | size_t | +| (RIPEMD160_CTX *,const void *,size_t) | | ripemd160_block_data_order | 0 | RIPEMD160_CTX * | +| (RIPEMD160_CTX *,const void *,size_t) | | ripemd160_block_data_order | 1 | const void * | +| (RIPEMD160_CTX *,const void *,size_t) | | ripemd160_block_data_order | 2 | size_t | +| (RSA *) | | RSA_get_version | 0 | RSA * | +| (RSA *) | | ossl_rsa_get0_libctx | 0 | RSA * | +| (RSA *) | | ossl_rsa_get0_pss_params_30 | 0 | RSA * | +| (RSA **,const unsigned char **,long) | | d2i_RSAPrivateKey | 0 | RSA ** | +| (RSA **,const unsigned char **,long) | | d2i_RSAPrivateKey | 1 | const unsigned char ** | +| (RSA **,const unsigned char **,long) | | d2i_RSAPrivateKey | 2 | long | +| (RSA **,const unsigned char **,long) | | d2i_RSAPublicKey | 0 | RSA ** | +| (RSA **,const unsigned char **,long) | | d2i_RSAPublicKey | 1 | const unsigned char ** | +| (RSA **,const unsigned char **,long) | | d2i_RSAPublicKey | 2 | long | +| (RSA **,const unsigned char **,long) | | d2i_RSA_PUBKEY | 0 | RSA ** | +| (RSA **,const unsigned char **,long) | | d2i_RSA_PUBKEY | 1 | const unsigned char ** | +| (RSA **,const unsigned char **,long) | | d2i_RSA_PUBKEY | 2 | long | +| (RSA *,BIGNUM *,BIGNUM *) | | RSA_set0_factors | 0 | RSA * | +| (RSA *,BIGNUM *,BIGNUM *) | | RSA_set0_factors | 1 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *) | | RSA_set0_factors | 2 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | RSA_set0_crt_params | 0 | RSA * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | RSA_set0_crt_params | 1 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | RSA_set0_crt_params | 2 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | RSA_set0_crt_params | 3 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | RSA_set0_key | 0 | RSA * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | RSA_set0_key | 1 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | RSA_set0_key | 2 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *) | | RSA_set0_key | 3 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 0 | RSA * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 1 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 2 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 3 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 4 | BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 5 | const BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 6 | const BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 7 | const BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 8 | const BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 9 | const BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 10 | const BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 11 | const BIGNUM * | +| (RSA *,BIGNUM *,BIGNUM *,BIGNUM *,BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_GENCB *) | | RSA_X931_derive_ex | 12 | BN_GENCB * | +| (RSA *,BIGNUM *[],BIGNUM *[],BIGNUM *[],int) | | RSA_set0_multi_prime_params | 0 | RSA * | +| (RSA *,BIGNUM *[],BIGNUM *[],BIGNUM *[],int) | | RSA_set0_multi_prime_params | 1 | BIGNUM *[] | +| (RSA *,BIGNUM *[],BIGNUM *[],BIGNUM *[],int) | | RSA_set0_multi_prime_params | 2 | BIGNUM *[] | +| (RSA *,BIGNUM *[],BIGNUM *[],BIGNUM *[],int) | | RSA_set0_multi_prime_params | 3 | BIGNUM *[] | +| (RSA *,BIGNUM *[],BIGNUM *[],BIGNUM *[],int) | | RSA_set0_multi_prime_params | 4 | int | +| (RSA *,BN_CTX *) | | RSA_blinding_on | 0 | RSA * | +| (RSA *,BN_CTX *) | | RSA_blinding_on | 1 | BN_CTX * | +| (RSA *,BN_CTX *) | | RSA_setup_blinding | 0 | RSA * | +| (RSA *,BN_CTX *) | | RSA_setup_blinding | 1 | BN_CTX * | +| (RSA *,BN_CTX *) | | ossl_rsa_sp800_56b_pairwise_test | 0 | RSA * | +| (RSA *,BN_CTX *) | | ossl_rsa_sp800_56b_pairwise_test | 1 | BN_CTX * | +| (RSA *,OSSL_LIB_CTX *) | | ossl_rsa_set0_libctx | 0 | RSA * | +| (RSA *,OSSL_LIB_CTX *) | | ossl_rsa_set0_libctx | 1 | OSSL_LIB_CTX * | +| (RSA *,OSSL_PARAM_BLD *,OSSL_PARAM[],int) | | ossl_rsa_todata | 0 | RSA * | +| (RSA *,OSSL_PARAM_BLD *,OSSL_PARAM[],int) | | ossl_rsa_todata | 1 | OSSL_PARAM_BLD * | +| (RSA *,OSSL_PARAM_BLD *,OSSL_PARAM[],int) | | ossl_rsa_todata | 2 | OSSL_PARAM[] | +| (RSA *,OSSL_PARAM_BLD *,OSSL_PARAM[],int) | | ossl_rsa_todata | 3 | int | +| (RSA *,RSA_PSS_PARAMS *) | | ossl_rsa_set0_pss_params | 0 | RSA * | +| (RSA *,RSA_PSS_PARAMS *) | | ossl_rsa_set0_pss_params | 1 | RSA_PSS_PARAMS * | +| (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 0 | RSA * | +| (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 1 | const OSSL_PARAM[] | +| (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | int | +| (RSA *,const RSA_METHOD *) | | RSA_set_method | 0 | RSA * | +| (RSA *,const RSA_METHOD *) | | RSA_set_method | 1 | const RSA_METHOD * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int *) | | ossl_rsa_verify_PKCS1_PSS_mgf1 | 0 | RSA * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int *) | | ossl_rsa_verify_PKCS1_PSS_mgf1 | 1 | const unsigned char * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int *) | | ossl_rsa_verify_PKCS1_PSS_mgf1 | 2 | const EVP_MD * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int *) | | ossl_rsa_verify_PKCS1_PSS_mgf1 | 3 | const EVP_MD * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int *) | | ossl_rsa_verify_PKCS1_PSS_mgf1 | 4 | const unsigned char * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int *) | | ossl_rsa_verify_PKCS1_PSS_mgf1 | 5 | int * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int) | | RSA_verify_PKCS1_PSS_mgf1 | 0 | RSA * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int) | | RSA_verify_PKCS1_PSS_mgf1 | 1 | const unsigned char * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int) | | RSA_verify_PKCS1_PSS_mgf1 | 2 | const EVP_MD * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int) | | RSA_verify_PKCS1_PSS_mgf1 | 3 | const EVP_MD * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int) | | RSA_verify_PKCS1_PSS_mgf1 | 4 | const unsigned char * | +| (RSA *,const unsigned char *,const EVP_MD *,const EVP_MD *,const unsigned char *,int) | | RSA_verify_PKCS1_PSS_mgf1 | 5 | int | +| (RSA *,int) | | RSA_clear_flags | 0 | RSA * | +| (RSA *,int) | | RSA_clear_flags | 1 | int | +| (RSA *,int) | | RSA_set_flags | 0 | RSA * | +| (RSA *,int) | | RSA_set_flags | 1 | int | +| (RSA *,int,BIGNUM *,BN_GENCB *) | | RSA_generate_key_ex | 0 | RSA * | +| (RSA *,int,BIGNUM *,BN_GENCB *) | | RSA_generate_key_ex | 1 | int | +| (RSA *,int,BIGNUM *,BN_GENCB *) | | RSA_generate_key_ex | 2 | BIGNUM * | +| (RSA *,int,BIGNUM *,BN_GENCB *) | | RSA_generate_key_ex | 3 | BN_GENCB * | +| (RSA *,int,const BIGNUM *,BN_CTX *) | | ossl_rsa_sp800_56b_derive_params_from_pq | 0 | RSA * | +| (RSA *,int,const BIGNUM *,BN_CTX *) | | ossl_rsa_sp800_56b_derive_params_from_pq | 1 | int | +| (RSA *,int,const BIGNUM *,BN_CTX *) | | ossl_rsa_sp800_56b_derive_params_from_pq | 2 | const BIGNUM * | +| (RSA *,int,const BIGNUM *,BN_CTX *) | | ossl_rsa_sp800_56b_derive_params_from_pq | 3 | BN_CTX * | +| (RSA *,int,const BIGNUM *,BN_GENCB *) | | RSA_X931_generate_key_ex | 0 | RSA * | +| (RSA *,int,const BIGNUM *,BN_GENCB *) | | RSA_X931_generate_key_ex | 1 | int | +| (RSA *,int,const BIGNUM *,BN_GENCB *) | | RSA_X931_generate_key_ex | 2 | const BIGNUM * | +| (RSA *,int,const BIGNUM *,BN_GENCB *) | | RSA_X931_generate_key_ex | 3 | BN_GENCB * | +| (RSA *,int,const BIGNUM *,BN_GENCB *) | | ossl_rsa_sp800_56b_generate_key | 0 | RSA * | +| (RSA *,int,const BIGNUM *,BN_GENCB *) | | ossl_rsa_sp800_56b_generate_key | 1 | int | +| (RSA *,int,const BIGNUM *,BN_GENCB *) | | ossl_rsa_sp800_56b_generate_key | 2 | const BIGNUM * | +| (RSA *,int,const BIGNUM *,BN_GENCB *) | | ossl_rsa_sp800_56b_generate_key | 3 | BN_GENCB * | +| (RSA *,int,int,BIGNUM *,BN_GENCB *) | | RSA_generate_multi_prime_key | 0 | RSA * | +| (RSA *,int,int,BIGNUM *,BN_GENCB *) | | RSA_generate_multi_prime_key | 1 | int | +| (RSA *,int,int,BIGNUM *,BN_GENCB *) | | RSA_generate_multi_prime_key | 2 | int | +| (RSA *,int,int,BIGNUM *,BN_GENCB *) | | RSA_generate_multi_prime_key | 3 | BIGNUM * | +| (RSA *,int,int,BIGNUM *,BN_GENCB *) | | RSA_generate_multi_prime_key | 4 | BN_GENCB * | +| (RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_multiprime_derive | 0 | RSA * | +| (RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_multiprime_derive | 1 | int | +| (RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_multiprime_derive | 2 | int | +| (RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_multiprime_derive | 3 | BIGNUM * | +| (RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_multiprime_derive | 4 | stack_st_BIGNUM * | +| (RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_multiprime_derive | 5 | stack_st_BIGNUM * | +| (RSA *,int,int,BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_multiprime_derive | 6 | stack_st_BIGNUM * | +| (RSA *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_set0_all_params | 0 | RSA * | +| (RSA *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_set0_all_params | 1 | stack_st_BIGNUM * | +| (RSA *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_set0_all_params | 2 | stack_st_BIGNUM * | +| (RSA *,stack_st_BIGNUM *,stack_st_BIGNUM *,stack_st_BIGNUM *) | | ossl_rsa_set0_all_params | 3 | stack_st_BIGNUM * | +| (RSA *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *) | | ossl_rsa_get0_all_params | 0 | RSA * | +| (RSA *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *) | | ossl_rsa_get0_all_params | 1 | stack_st_BIGNUM_const * | +| (RSA *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *) | | ossl_rsa_get0_all_params | 2 | stack_st_BIGNUM_const * | +| (RSA *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *,stack_st_BIGNUM_const *) | | ossl_rsa_get0_all_params | 3 | stack_st_BIGNUM_const * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *) | | ossl_rsa_padding_add_PKCS1_PSS_mgf1 | 0 | RSA * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *) | | ossl_rsa_padding_add_PKCS1_PSS_mgf1 | 1 | unsigned char * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *) | | ossl_rsa_padding_add_PKCS1_PSS_mgf1 | 2 | const unsigned char * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *) | | ossl_rsa_padding_add_PKCS1_PSS_mgf1 | 3 | const EVP_MD * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *) | | ossl_rsa_padding_add_PKCS1_PSS_mgf1 | 4 | const EVP_MD * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int *) | | ossl_rsa_padding_add_PKCS1_PSS_mgf1 | 5 | int * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS_mgf1 | 0 | RSA * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS_mgf1 | 1 | unsigned char * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS_mgf1 | 2 | const unsigned char * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS_mgf1 | 3 | const EVP_MD * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS_mgf1 | 4 | const EVP_MD * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS_mgf1 | 5 | int | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS | 0 | RSA * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS | 1 | unsigned char * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS | 2 | const unsigned char * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS | 3 | const EVP_MD * | +| (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS | 4 | int | +| (RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_rsa_fips186_4_gen_prob_primes | 0 | RSA * | +| (RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_rsa_fips186_4_gen_prob_primes | 1 | void * | +| (RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_rsa_fips186_4_gen_prob_primes | 2 | int | +| (RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_rsa_fips186_4_gen_prob_primes | 3 | const BIGNUM * | +| (RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_rsa_fips186_4_gen_prob_primes | 4 | BN_CTX * | +| (RSA *,void *,int,const BIGNUM *,BN_CTX *,BN_GENCB *) | | ossl_rsa_fips186_4_gen_prob_primes | 5 | BN_GENCB * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_bn_mod_exp | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_bn_mod_exp | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_finish | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_finish | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_init | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_init | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_keygen | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_keygen | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_mod_exp | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_mod_exp | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_multi_prime_keygen | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_multi_prime_keygen | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_priv_dec | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_priv_dec | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_priv_enc | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_priv_enc | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_pub_dec | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_pub_dec | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_pub_enc | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_pub_enc | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_sign | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_sign | 1 | ..(*)(..) | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_verify | 0 | RSA_METHOD * | +| (RSA_METHOD *,..(*)(..)) | | RSA_meth_set_verify | 1 | ..(*)(..) | +| (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 0 | RSA_METHOD * | +| (RSA_METHOD *,const char *) | | RSA_meth_set1_name | 1 | const char * | +| (RSA_METHOD *,int) | | RSA_meth_set_flags | 0 | RSA_METHOD * | +| (RSA_METHOD *,int) | | RSA_meth_set_flags | 1 | int | +| (RSA_METHOD *,void *) | | RSA_meth_set0_app_data | 0 | RSA_METHOD * | +| (RSA_METHOD *,void *) | | RSA_meth_set0_app_data | 1 | void * | +| (RSA_OAEP_PARAMS *) | | RSA_OAEP_PARAMS_free | 0 | RSA_OAEP_PARAMS * | +| (RSA_OAEP_PARAMS **,const unsigned char **,long) | | d2i_RSA_OAEP_PARAMS | 0 | RSA_OAEP_PARAMS ** | +| (RSA_OAEP_PARAMS **,const unsigned char **,long) | | d2i_RSA_OAEP_PARAMS | 1 | const unsigned char ** | +| (RSA_OAEP_PARAMS **,const unsigned char **,long) | | d2i_RSA_OAEP_PARAMS | 2 | long | +| (RSA_PSS_PARAMS *) | | RSA_PSS_PARAMS_free | 0 | RSA_PSS_PARAMS * | +| (RSA_PSS_PARAMS **,const unsigned char **,long) | | d2i_RSA_PSS_PARAMS | 0 | RSA_PSS_PARAMS ** | +| (RSA_PSS_PARAMS **,const unsigned char **,long) | | d2i_RSA_PSS_PARAMS | 1 | const unsigned char ** | +| (RSA_PSS_PARAMS **,const unsigned char **,long) | | d2i_RSA_PSS_PARAMS | 2 | long | +| (RSA_PSS_PARAMS_30 *,const RSA_PSS_PARAMS_30 *) | | ossl_rsa_pss_params_30_copy | 0 | RSA_PSS_PARAMS_30 * | +| (RSA_PSS_PARAMS_30 *,const RSA_PSS_PARAMS_30 *) | | ossl_rsa_pss_params_30_copy | 1 | const RSA_PSS_PARAMS_30 * | +| (RSA_PSS_PARAMS_30 *,int *,const OSSL_PARAM[],OSSL_LIB_CTX *) | | ossl_rsa_pss_params_30_fromdata | 0 | RSA_PSS_PARAMS_30 * | +| (RSA_PSS_PARAMS_30 *,int *,const OSSL_PARAM[],OSSL_LIB_CTX *) | | ossl_rsa_pss_params_30_fromdata | 1 | int * | +| (RSA_PSS_PARAMS_30 *,int *,const OSSL_PARAM[],OSSL_LIB_CTX *) | | ossl_rsa_pss_params_30_fromdata | 2 | const OSSL_PARAM[] | +| (RSA_PSS_PARAMS_30 *,int *,const OSSL_PARAM[],OSSL_LIB_CTX *) | | ossl_rsa_pss_params_30_fromdata | 3 | OSSL_LIB_CTX * | +| (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 0 | RSA_PSS_PARAMS_30 * | +| (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_hashalg | 1 | int | +| (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 0 | RSA_PSS_PARAMS_30 * | +| (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_maskgenhashalg | 1 | int | +| (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 0 | RSA_PSS_PARAMS_30 * | +| (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_saltlen | 1 | int | +| (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 0 | RSA_PSS_PARAMS_30 * | +| (RSA_PSS_PARAMS_30 *,int) | | ossl_rsa_pss_params_30_set_trailerfield | 1 | int | +| (SCRYPT_PARAMS *) | | SCRYPT_PARAMS_free | 0 | SCRYPT_PARAMS * | +| (SCRYPT_PARAMS **,const unsigned char **,long) | | d2i_SCRYPT_PARAMS | 0 | SCRYPT_PARAMS ** | +| (SCRYPT_PARAMS **,const unsigned char **,long) | | d2i_SCRYPT_PARAMS | 1 | const unsigned char ** | +| (SCRYPT_PARAMS **,const unsigned char **,long) | | d2i_SCRYPT_PARAMS | 2 | long | +| (SCT **,const unsigned char **,size_t) | | o2i_SCT | 0 | SCT ** | +| (SCT **,const unsigned char **,size_t) | | o2i_SCT | 1 | const unsigned char ** | +| (SCT **,const unsigned char **,size_t) | | o2i_SCT | 2 | size_t | +| (SCT *,const unsigned char **,size_t) | | o2i_SCT_signature | 0 | SCT * | +| (SCT *,const unsigned char **,size_t) | | o2i_SCT_signature | 1 | const unsigned char ** | +| (SCT *,const unsigned char **,size_t) | | o2i_SCT_signature | 2 | size_t | +| (SCT *,const unsigned char *,size_t) | | SCT_set1_extensions | 0 | SCT * | +| (SCT *,const unsigned char *,size_t) | | SCT_set1_extensions | 1 | const unsigned char * | +| (SCT *,const unsigned char *,size_t) | | SCT_set1_extensions | 2 | size_t | +| (SCT *,const unsigned char *,size_t) | | SCT_set1_log_id | 0 | SCT * | +| (SCT *,const unsigned char *,size_t) | | SCT_set1_log_id | 1 | const unsigned char * | +| (SCT *,const unsigned char *,size_t) | | SCT_set1_log_id | 2 | size_t | +| (SCT *,const unsigned char *,size_t) | | SCT_set1_signature | 0 | SCT * | +| (SCT *,const unsigned char *,size_t) | | SCT_set1_signature | 1 | const unsigned char * | +| (SCT *,const unsigned char *,size_t) | | SCT_set1_signature | 2 | size_t | +| (SCT *,ct_log_entry_type_t) | | SCT_set_log_entry_type | 0 | SCT * | +| (SCT *,ct_log_entry_type_t) | | SCT_set_log_entry_type | 1 | ct_log_entry_type_t | +| (SCT *,sct_source_t) | | SCT_set_source | 0 | SCT * | +| (SCT *,sct_source_t) | | SCT_set_source | 1 | sct_source_t | +| (SCT *,sct_version_t) | | SCT_set_version | 0 | SCT * | +| (SCT *,sct_version_t) | | SCT_set_version | 1 | sct_version_t | +| (SCT *,uint64_t) | | SCT_set_timestamp | 0 | SCT * | +| (SCT *,uint64_t) | | SCT_set_timestamp | 1 | uint64_t | +| (SCT *,unsigned char *,size_t) | | SCT_set0_extensions | 0 | SCT * | +| (SCT *,unsigned char *,size_t) | | SCT_set0_extensions | 1 | unsigned char * | +| (SCT *,unsigned char *,size_t) | | SCT_set0_extensions | 2 | size_t | +| (SCT *,unsigned char *,size_t) | | SCT_set0_log_id | 0 | SCT * | +| (SCT *,unsigned char *,size_t) | | SCT_set0_log_id | 1 | unsigned char * | +| (SCT *,unsigned char *,size_t) | | SCT_set0_log_id | 2 | size_t | +| (SCT *,unsigned char *,size_t) | | SCT_set0_signature | 0 | SCT * | +| (SCT *,unsigned char *,size_t) | | SCT_set0_signature | 1 | unsigned char * | +| (SCT *,unsigned char *,size_t) | | SCT_set0_signature | 2 | size_t | +| (SCT_CTX *,X509 *,X509 *) | | SCT_CTX_set1_cert | 0 | SCT_CTX * | +| (SCT_CTX *,X509 *,X509 *) | | SCT_CTX_set1_cert | 1 | X509 * | +| (SCT_CTX *,X509 *,X509 *) | | SCT_CTX_set1_cert | 2 | X509 * | +| (SCT_CTX *,X509_PUBKEY *) | | SCT_CTX_set1_issuer_pubkey | 0 | SCT_CTX * | +| (SCT_CTX *,X509_PUBKEY *) | | SCT_CTX_set1_issuer_pubkey | 1 | X509_PUBKEY * | +| (SCT_CTX *,X509_PUBKEY *) | | SCT_CTX_set1_pubkey | 0 | SCT_CTX * | +| (SCT_CTX *,X509_PUBKEY *) | | SCT_CTX_set1_pubkey | 1 | X509_PUBKEY * | +| (SCT_CTX *,uint64_t) | | SCT_CTX_set_time | 0 | SCT_CTX * | +| (SCT_CTX *,uint64_t) | | SCT_CTX_set_time | 1 | uint64_t | +| (SD,const char *,SD_SYM *) | | sd_sym | 0 | SD | +| (SD,const char *,SD_SYM *) | | sd_sym | 1 | const char * | +| (SD,const char *,SD_SYM *) | | sd_sym | 2 | SD_SYM * | +| (SFRAME_LIST *) | | ossl_sframe_list_is_head_locked | 0 | SFRAME_LIST * | +| (SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int) | | ossl_sframe_list_insert | 0 | SFRAME_LIST * | +| (SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int) | | ossl_sframe_list_insert | 1 | UINT_RANGE * | +| (SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int) | | ossl_sframe_list_insert | 2 | OSSL_QRX_PKT * | +| (SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int) | | ossl_sframe_list_insert | 3 | const unsigned char * | +| (SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int) | | ossl_sframe_list_insert | 4 | int | +| (SFRAME_LIST *,UINT_RANGE *,const unsigned char **,int *) | | ossl_sframe_list_lock_head | 0 | SFRAME_LIST * | +| (SFRAME_LIST *,UINT_RANGE *,const unsigned char **,int *) | | ossl_sframe_list_lock_head | 1 | UINT_RANGE * | +| (SFRAME_LIST *,UINT_RANGE *,const unsigned char **,int *) | | ossl_sframe_list_lock_head | 2 | const unsigned char ** | +| (SFRAME_LIST *,UINT_RANGE *,const unsigned char **,int *) | | ossl_sframe_list_lock_head | 3 | int * | +| (SFRAME_LIST *,sframe_list_write_at_cb *,void *) | | ossl_sframe_list_move_data | 0 | SFRAME_LIST * | +| (SFRAME_LIST *,sframe_list_write_at_cb *,void *) | | ossl_sframe_list_move_data | 1 | sframe_list_write_at_cb * | +| (SFRAME_LIST *,sframe_list_write_at_cb *,void *) | | ossl_sframe_list_move_data | 2 | void * | +| (SFRAME_LIST *,uint64_t) | | ossl_sframe_list_drop_frames | 0 | SFRAME_LIST * | +| (SFRAME_LIST *,uint64_t) | | ossl_sframe_list_drop_frames | 1 | uint64_t | +| (SHA256_CTX *,const void *,size_t) | | SHA224_Update | 0 | SHA256_CTX * | +| (SHA256_CTX *,const void *,size_t) | | SHA224_Update | 1 | const void * | +| (SHA256_CTX *,const void *,size_t) | | SHA224_Update | 2 | size_t | +| (SHA256_CTX *,const void *,size_t) | | SHA256_Update | 0 | SHA256_CTX * | +| (SHA256_CTX *,const void *,size_t) | | SHA256_Update | 1 | const void * | +| (SHA256_CTX *,const void *,size_t) | | SHA256_Update | 2 | size_t | +| (SHA512_CTX *,const void *,size_t) | | SHA384_Update | 0 | SHA512_CTX * | +| (SHA512_CTX *,const void *,size_t) | | SHA384_Update | 1 | const void * | +| (SHA512_CTX *,const void *,size_t) | | SHA384_Update | 2 | size_t | +| (SHA512_CTX *,const void *,size_t) | | SHA512_Update | 0 | SHA512_CTX * | +| (SHA512_CTX *,const void *,size_t) | | SHA512_Update | 1 | const void * | +| (SHA512_CTX *,const void *,size_t) | | SHA512_Update | 2 | size_t | +| (SHA_CTX *,const void *,size_t) | | SHA1_Update | 0 | SHA_CTX * | +| (SHA_CTX *,const void *,size_t) | | SHA1_Update | 1 | const void * | +| (SHA_CTX *,const void *,size_t) | | SHA1_Update | 2 | size_t | +| (SHA_CTX *,int,int,void *) | | ossl_sha1_ctrl | 0 | SHA_CTX * | +| (SHA_CTX *,int,int,void *) | | ossl_sha1_ctrl | 1 | int | +| (SHA_CTX *,int,int,void *) | | ossl_sha1_ctrl | 2 | int | +| (SHA_CTX *,int,int,void *) | | ossl_sha1_ctrl | 3 | void * | +| (SIPHASH *) | | SipHash_hash_size | 0 | SIPHASH * | +| (SIPHASH *,const unsigned char *,int,int) | | SipHash_Init | 0 | SIPHASH * | +| (SIPHASH *,const unsigned char *,int,int) | | SipHash_Init | 1 | const unsigned char * | +| (SIPHASH *,const unsigned char *,int,int) | | SipHash_Init | 2 | int | +| (SIPHASH *,const unsigned char *,int,int) | | SipHash_Init | 3 | int | +| (SIPHASH *,const unsigned char *,size_t) | | SipHash_Update | 0 | SIPHASH * | +| (SIPHASH *,const unsigned char *,size_t) | | SipHash_Update | 1 | const unsigned char * | +| (SIPHASH *,const unsigned char *,size_t) | | SipHash_Update | 2 | size_t | +| (SIPHASH *,size_t) | | SipHash_set_hash_size | 0 | SIPHASH * | +| (SIPHASH *,size_t) | | SipHash_set_hash_size | 1 | size_t | +| (SIPHASH *,unsigned char *,size_t) | | SipHash_Final | 0 | SIPHASH * | +| (SIPHASH *,unsigned char *,size_t) | | SipHash_Final | 1 | unsigned char * | +| (SIPHASH *,unsigned char *,size_t) | | SipHash_Final | 2 | size_t | +| (SIV128_CONTEXT *) | | ossl_siv128_finish | 0 | SIV128_CONTEXT * | +| (SIV128_CONTEXT *,SIV128_CONTEXT *) | | ossl_siv128_copy_ctx | 0 | SIV128_CONTEXT * | +| (SIV128_CONTEXT *,SIV128_CONTEXT *) | | ossl_siv128_copy_ctx | 1 | SIV128_CONTEXT * | +| (SIV128_CONTEXT *,const unsigned char *,int,const EVP_CIPHER *,const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_init | 0 | SIV128_CONTEXT * | +| (SIV128_CONTEXT *,const unsigned char *,int,const EVP_CIPHER *,const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_init | 1 | const unsigned char * | +| (SIV128_CONTEXT *,const unsigned char *,int,const EVP_CIPHER *,const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_init | 2 | int | +| (SIV128_CONTEXT *,const unsigned char *,int,const EVP_CIPHER *,const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_init | 3 | const EVP_CIPHER * | +| (SIV128_CONTEXT *,const unsigned char *,int,const EVP_CIPHER *,const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_init | 4 | const EVP_CIPHER * | +| (SIV128_CONTEXT *,const unsigned char *,int,const EVP_CIPHER *,const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_init | 5 | OSSL_LIB_CTX * | +| (SIV128_CONTEXT *,const unsigned char *,int,const EVP_CIPHER *,const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_init | 6 | const char * | +| (SIV128_CONTEXT *,const unsigned char *,size_t) | | ossl_siv128_set_tag | 0 | SIV128_CONTEXT * | +| (SIV128_CONTEXT *,const unsigned char *,size_t) | | ossl_siv128_set_tag | 1 | const unsigned char * | +| (SIV128_CONTEXT *,const unsigned char *,size_t) | | ossl_siv128_set_tag | 2 | size_t | +| (SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | ossl_siv128_decrypt | 0 | SIV128_CONTEXT * | +| (SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | ossl_siv128_decrypt | 1 | const unsigned char * | +| (SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | ossl_siv128_decrypt | 2 | unsigned char * | +| (SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | ossl_siv128_decrypt | 3 | size_t | +| (SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | ossl_siv128_encrypt | 0 | SIV128_CONTEXT * | +| (SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | ossl_siv128_encrypt | 1 | const unsigned char * | +| (SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | ossl_siv128_encrypt | 2 | unsigned char * | +| (SIV128_CONTEXT *,const unsigned char *,unsigned char *,size_t) | | ossl_siv128_encrypt | 3 | size_t | +| (SIV128_CONTEXT *,unsigned char *,size_t) | | ossl_siv128_get_tag | 0 | SIV128_CONTEXT * | +| (SIV128_CONTEXT *,unsigned char *,size_t) | | ossl_siv128_get_tag | 1 | unsigned char * | +| (SIV128_CONTEXT *,unsigned char *,size_t) | | ossl_siv128_get_tag | 2 | size_t | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t) | | ossl_slh_dsa_sign | 0 | SLH_DSA_HASH_CTX * | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t) | | ossl_slh_dsa_sign | 1 | const uint8_t * | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t) | | ossl_slh_dsa_sign | 2 | size_t | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t) | | ossl_slh_dsa_sign | 3 | const uint8_t * | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t) | | ossl_slh_dsa_sign | 4 | size_t | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t) | | ossl_slh_dsa_sign | 5 | const uint8_t * | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t) | | ossl_slh_dsa_sign | 6 | int | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t) | | ossl_slh_dsa_sign | 7 | unsigned char * | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t) | | ossl_slh_dsa_sign | 8 | size_t * | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,int,unsigned char *,size_t *,size_t) | | ossl_slh_dsa_sign | 9 | size_t | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t) | | ossl_slh_dsa_verify | 0 | SLH_DSA_HASH_CTX * | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t) | | ossl_slh_dsa_verify | 1 | const uint8_t * | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t) | | ossl_slh_dsa_verify | 2 | size_t | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t) | | ossl_slh_dsa_verify | 3 | const uint8_t * | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t) | | ossl_slh_dsa_verify | 4 | size_t | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t) | | ossl_slh_dsa_verify | 5 | int | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t) | | ossl_slh_dsa_verify | 6 | const uint8_t * | +| (SLH_DSA_HASH_CTX *,const uint8_t *,size_t,const uint8_t *,size_t,int,const uint8_t *,size_t) | | ossl_slh_dsa_verify | 7 | size_t | +| (SLH_DSA_KEY *,const OSSL_PARAM *,const OSSL_PARAM[],int) | | ossl_slh_dsa_key_fromdata | 0 | SLH_DSA_KEY * | +| (SLH_DSA_KEY *,const OSSL_PARAM *,const OSSL_PARAM[],int) | | ossl_slh_dsa_key_fromdata | 1 | const OSSL_PARAM * | +| (SLH_DSA_KEY *,const OSSL_PARAM *,const OSSL_PARAM[],int) | | ossl_slh_dsa_key_fromdata | 2 | const OSSL_PARAM[] | +| (SLH_DSA_KEY *,const OSSL_PARAM *,const OSSL_PARAM[],int) | | ossl_slh_dsa_key_fromdata | 3 | int | +| (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_priv | 0 | SLH_DSA_KEY * | +| (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_priv | 1 | const uint8_t * | +| (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_priv | 2 | size_t | +| (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_pub | 0 | SLH_DSA_KEY * | +| (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_pub | 1 | const uint8_t * | +| (SLH_DSA_KEY *,const uint8_t *,size_t) | | ossl_slh_dsa_set_pub | 2 | size_t | +| (SM2_Ciphertext *) | | SM2_Ciphertext_free | 0 | SM2_Ciphertext * | +| (SM2_Ciphertext **,const unsigned char **,long) | | d2i_SM2_Ciphertext | 0 | SM2_Ciphertext ** | +| (SM2_Ciphertext **,const unsigned char **,long) | | d2i_SM2_Ciphertext | 1 | const unsigned char ** | +| (SM2_Ciphertext **,const unsigned char **,long) | | d2i_SM2_Ciphertext | 2 | long | +| (SM3_CTX *,const unsigned char *) | | ossl_sm3_transform | 0 | SM3_CTX * | +| (SM3_CTX *,const unsigned char *) | | ossl_sm3_transform | 1 | const unsigned char * | +| (SM3_CTX *,const void *,size_t) | | ossl_sm3_block_data_order | 0 | SM3_CTX * | +| (SM3_CTX *,const void *,size_t) | | ossl_sm3_block_data_order | 1 | const void * | +| (SM3_CTX *,const void *,size_t) | | ossl_sm3_block_data_order | 2 | size_t | +| (SM3_CTX *,const void *,size_t) | | ossl_sm3_update | 0 | SM3_CTX * | +| (SM3_CTX *,const void *,size_t) | | ossl_sm3_update | 1 | const void * | +| (SM3_CTX *,const void *,size_t) | | ossl_sm3_update | 2 | size_t | +| (SRP_VBASE *,SRP_user_pwd *) | | SRP_VBASE_add0_user | 0 | SRP_VBASE * | +| (SRP_VBASE *,SRP_user_pwd *) | | SRP_VBASE_add0_user | 1 | SRP_user_pwd * | +| (SRP_VBASE *,char *) | | SRP_VBASE_get1_by_user | 0 | SRP_VBASE * | +| (SRP_VBASE *,char *) | | SRP_VBASE_get1_by_user | 1 | char * | +| (SRP_VBASE *,char *) | | SRP_VBASE_get_by_user | 0 | SRP_VBASE * | +| (SRP_VBASE *,char *) | | SRP_VBASE_get_by_user | 1 | char * | +| (SRP_user_pwd *,BIGNUM *,BIGNUM *) | | SRP_user_pwd_set0_sv | 0 | SRP_user_pwd * | +| (SRP_user_pwd *,BIGNUM *,BIGNUM *) | | SRP_user_pwd_set0_sv | 1 | BIGNUM * | +| (SRP_user_pwd *,BIGNUM *,BIGNUM *) | | SRP_user_pwd_set0_sv | 2 | BIGNUM * | +| (SRP_user_pwd *,const BIGNUM *,const BIGNUM *) | | SRP_user_pwd_set_gN | 0 | SRP_user_pwd * | +| (SRP_user_pwd *,const BIGNUM *,const BIGNUM *) | | SRP_user_pwd_set_gN | 1 | const BIGNUM * | +| (SRP_user_pwd *,const BIGNUM *,const BIGNUM *) | | SRP_user_pwd_set_gN | 2 | const BIGNUM * | +| (SRP_user_pwd *,const char *,const char *) | | SRP_user_pwd_set1_ids | 0 | SRP_user_pwd * | +| (SRP_user_pwd *,const char *,const char *) | | SRP_user_pwd_set1_ids | 1 | const char * | +| (SRP_user_pwd *,const char *,const char *) | | SRP_user_pwd_set1_ids | 2 | const char * | +| (SSL *) | | SSL_accept | 0 | SSL * | +| (SSL *) | | SSL_certs_clear | 0 | SSL * | +| (SSL *) | | SSL_client_hello_get0_legacy_version | 0 | SSL * | +| (SSL *) | | SSL_client_hello_isv2 | 0 | SSL * | +| (SSL *) | | SSL_connect | 0 | SSL * | +| (SSL *) | | SSL_do_handshake | 0 | SSL * | +| (SSL *) | | SSL_dup | 0 | SSL * | +| (SSL *) | | SSL_get0_connection | 0 | SSL * | +| (SSL *) | | SSL_get0_dane | 0 | SSL * | +| (SSL *) | | SSL_get0_param | 0 | SSL * | +| (SSL *) | | SSL_get0_peer_scts | 0 | SSL * | +| (SSL *) | | SSL_get0_peername | 0 | SSL * | +| (SSL *) | | SSL_get1_session | 0 | SSL * | +| (SSL *) | | SSL_get1_supported_ciphers | 0 | SSL * | +| (SSL *) | | SSL_get_default_passwd_cb | 0 | SSL * | +| (SSL *) | | SSL_get_default_passwd_cb_userdata | 0 | SSL * | +| (SSL *) | | SSL_get_selected_srtp_profile | 0 | SSL * | +| (SSL *) | | SSL_get_srp_N | 0 | SSL * | +| (SSL *) | | SSL_get_srp_g | 0 | SSL * | +| (SSL *) | | SSL_get_srp_userinfo | 0 | SSL * | +| (SSL *) | | SSL_get_srp_username | 0 | SSL * | +| (SSL *) | | SSL_get_srtp_profiles | 0 | SSL * | +| (SSL *) | | SSL_shutdown | 0 | SSL * | +| (SSL *) | | SSL_stateless | 0 | SSL * | +| (SSL *) | | SSL_verify_client_post_handshake | 0 | SSL * | +| (SSL *) | | do_ssl_shutdown | 0 | SSL * | +| (SSL *,..(*)(..)) | | SSL_set_info_callback | 0 | SSL * | +| (SSL *,..(*)(..)) | | SSL_set_info_callback | 1 | ..(*)(..) | +| (SSL *,..(*)(..)) | | SSL_set_record_padding_callback | 0 | SSL * | +| (SSL *,..(*)(..)) | | SSL_set_record_padding_callback | 1 | ..(*)(..) | +| (SSL *,..(*)(..)) | | SSL_set_security_callback | 0 | SSL * | +| (SSL *,..(*)(..)) | | SSL_set_security_callback | 1 | ..(*)(..) | +| (SSL *,..(*)(..),void *) | | SSL_set_cert_cb | 0 | SSL * | +| (SSL *,..(*)(..),void *) | | SSL_set_cert_cb | 1 | ..(*)(..) | +| (SSL *,..(*)(..),void *) | | SSL_set_cert_cb | 2 | void * | +| (SSL *,BIO *) | | SSL_set0_rbio | 0 | SSL * | +| (SSL *,BIO *) | | SSL_set0_rbio | 1 | BIO * | +| (SSL *,BIO *) | | SSL_set0_wbio | 0 | SSL * | +| (SSL *,BIO *) | | SSL_set0_wbio | 1 | BIO * | +| (SSL *,BIO *) | | print_verify_detail | 0 | SSL * | +| (SSL *,BIO *) | | print_verify_detail | 1 | BIO * | +| (SSL *,BIO *,BIO *) | | SSL_set_bio | 0 | SSL * | +| (SSL *,BIO *,BIO *) | | SSL_set_bio | 1 | BIO * | +| (SSL *,BIO *,BIO *) | | SSL_set_bio | 2 | BIO * | +| (SSL *,DTLS_timer_cb) | | DTLS_set_timer_cb | 0 | SSL * | +| (SSL *,DTLS_timer_cb) | | DTLS_set_timer_cb | 1 | DTLS_timer_cb | +| (SSL *,EVP_PKEY *) | | SSL_set0_tmp_dh_pkey | 0 | SSL * | +| (SSL *,EVP_PKEY *) | | SSL_set0_tmp_dh_pkey | 1 | EVP_PKEY * | +| (SSL *,GEN_SESSION_CB) | | SSL_set_generate_session_id | 0 | SSL * | +| (SSL *,GEN_SESSION_CB) | | SSL_set_generate_session_id | 1 | GEN_SESSION_CB | +| (SSL *,SSL *) | | shutdown_ssl_connection | 0 | SSL * | +| (SSL *,SSL *) | | shutdown_ssl_connection | 1 | SSL * | +| (SSL *,SSL *,int) | | create_ssl_connection | 0 | SSL * | +| (SSL *,SSL *,int) | | create_ssl_connection | 1 | SSL * | +| (SSL *,SSL *,int) | | create_ssl_connection | 2 | int | +| (SSL *,SSL *,int,int,int) | | create_bare_ssl_connection | 0 | SSL * | +| (SSL *,SSL *,int,int,int) | | create_bare_ssl_connection | 1 | SSL * | +| (SSL *,SSL *,int,int,int) | | create_bare_ssl_connection | 2 | int | +| (SSL *,SSL *,int,int,int) | | create_bare_ssl_connection | 3 | int | +| (SSL *,SSL *,int,int,int) | | create_bare_ssl_connection | 4 | int | +| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 0 | SSL * | +| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 1 | SSL * | +| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 2 | int | +| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 3 | long | +| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 4 | clock_t * | +| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 5 | clock_t * | +| (SSL *,SSL *,long,clock_t *,clock_t *) | | doit_biopair | 0 | SSL * | +| (SSL *,SSL *,long,clock_t *,clock_t *) | | doit_biopair | 1 | SSL * | +| (SSL *,SSL *,long,clock_t *,clock_t *) | | doit_biopair | 2 | long | +| (SSL *,SSL *,long,clock_t *,clock_t *) | | doit_biopair | 3 | clock_t * | +| (SSL *,SSL *,long,clock_t *,clock_t *) | | doit_biopair | 4 | clock_t * | +| (SSL *,SSL_CTX *) | | SSL_set_SSL_CTX | 0 | SSL * | +| (SSL *,SSL_CTX *) | | SSL_set_SSL_CTX | 1 | SSL_CTX * | +| (SSL *,SSL_CTX *,const SSL_METHOD *,int) | | ossl_ssl_init | 0 | SSL * | +| (SSL *,SSL_CTX *,const SSL_METHOD *,int) | | ossl_ssl_init | 1 | SSL_CTX * | +| (SSL *,SSL_CTX *,const SSL_METHOD *,int) | | ossl_ssl_init | 2 | const SSL_METHOD * | +| (SSL *,SSL_CTX *,const SSL_METHOD *,int) | | ossl_ssl_init | 3 | int | +| (SSL *,SSL_SESSION *) | | SSL_set_session | 0 | SSL * | +| (SSL *,SSL_SESSION *) | | SSL_set_session | 1 | SSL_SESSION * | +| (SSL *,SSL_allow_early_data_cb_fn,void *) | | SSL_set_allow_early_data_cb | 0 | SSL * | +| (SSL *,SSL_allow_early_data_cb_fn,void *) | | SSL_set_allow_early_data_cb | 1 | SSL_allow_early_data_cb_fn | +| (SSL *,SSL_allow_early_data_cb_fn,void *) | | SSL_set_allow_early_data_cb | 2 | void * | +| (SSL *,SSL_async_callback_fn) | | SSL_set_async_callback | 0 | SSL * | +| (SSL *,SSL_async_callback_fn) | | SSL_set_async_callback | 1 | SSL_async_callback_fn | +| (SSL *,SSL_psk_client_cb_func) | | SSL_set_psk_client_callback | 0 | SSL * | +| (SSL *,SSL_psk_client_cb_func) | | SSL_set_psk_client_callback | 1 | SSL_psk_client_cb_func | +| (SSL *,SSL_psk_find_session_cb_func) | | SSL_set_psk_find_session_callback | 0 | SSL * | +| (SSL *,SSL_psk_find_session_cb_func) | | SSL_set_psk_find_session_callback | 1 | SSL_psk_find_session_cb_func | +| (SSL *,SSL_psk_server_cb_func) | | SSL_set_psk_server_callback | 0 | SSL * | +| (SSL *,SSL_psk_server_cb_func) | | SSL_set_psk_server_callback | 1 | SSL_psk_server_cb_func | +| (SSL *,SSL_psk_use_session_cb_func) | | SSL_set_psk_use_session_callback | 0 | SSL * | +| (SSL *,SSL_psk_use_session_cb_func) | | SSL_set_psk_use_session_callback | 1 | SSL_psk_use_session_cb_func | +| (SSL *,X509 *) | | SSL_use_certificate | 0 | SSL * | +| (SSL *,X509 *) | | SSL_use_certificate | 1 | X509 * | +| (SSL *,X509 **,EVP_PKEY **) | | SSL_get0_dane_authority | 0 | SSL * | +| (SSL *,X509 **,EVP_PKEY **) | | SSL_get0_dane_authority | 1 | X509 ** | +| (SSL *,X509 **,EVP_PKEY **) | | SSL_get0_dane_authority | 2 | EVP_PKEY ** | +| (SSL *,X509 *,EVP_PKEY *,stack_st_X509 *) | | SSL_check_chain | 0 | SSL * | +| (SSL *,X509 *,EVP_PKEY *,stack_st_X509 *) | | SSL_check_chain | 1 | X509 * | +| (SSL *,X509 *,EVP_PKEY *,stack_st_X509 *) | | SSL_check_chain | 2 | EVP_PKEY * | +| (SSL *,X509 *,EVP_PKEY *,stack_st_X509 *) | | SSL_check_chain | 3 | stack_st_X509 * | +| (SSL *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | SSL_use_cert_and_key | 0 | SSL * | +| (SSL *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | SSL_use_cert_and_key | 1 | X509 * | +| (SSL *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | SSL_use_cert_and_key | 2 | EVP_PKEY * | +| (SSL *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | SSL_use_cert_and_key | 3 | stack_st_X509 * | +| (SSL *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | SSL_use_cert_and_key | 4 | int | +| (SSL *,X509_VERIFY_PARAM *) | | SSL_set1_param | 0 | SSL * | +| (SSL *,X509_VERIFY_PARAM *) | | SSL_set1_param | 1 | X509_VERIFY_PARAM * | +| (SSL *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,char *) | | SSL_set_srp_server_param | 0 | SSL * | +| (SSL *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,char *) | | SSL_set_srp_server_param | 1 | const BIGNUM * | +| (SSL *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,char *) | | SSL_set_srp_server_param | 2 | const BIGNUM * | +| (SSL *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,char *) | | SSL_set_srp_server_param | 3 | BIGNUM * | +| (SSL *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,char *) | | SSL_set_srp_server_param | 4 | BIGNUM * | +| (SSL *,const BIGNUM *,const BIGNUM *,BIGNUM *,BIGNUM *,char *) | | SSL_set_srp_server_param | 5 | char * | +| (SSL *,const OSSL_DISPATCH *,void *) | | SSL_set_quic_tls_cbs | 0 | SSL * | +| (SSL *,const OSSL_DISPATCH *,void *) | | SSL_set_quic_tls_cbs | 1 | const OSSL_DISPATCH * | +| (SSL *,const OSSL_DISPATCH *,void *) | | SSL_set_quic_tls_cbs | 2 | void * | +| (SSL *,const SSL *) | | SSL_copy_session_id | 0 | SSL * | +| (SSL *,const SSL *) | | SSL_copy_session_id | 1 | const SSL * | +| (SSL *,const SSL_METHOD *) | | SSL_set_ssl_method | 0 | SSL * | +| (SSL *,const SSL_METHOD *) | | SSL_set_ssl_method | 1 | const SSL_METHOD * | +| (SSL *,const char *) | | SSL_add1_host | 0 | SSL * | +| (SSL *,const char *) | | SSL_add1_host | 1 | const char * | +| (SSL *,const char *) | | SSL_set1_host | 0 | SSL * | +| (SSL *,const char *) | | SSL_set1_host | 1 | const char * | +| (SSL *,const char *) | | SSL_set_cipher_list | 0 | SSL * | +| (SSL *,const char *) | | SSL_set_cipher_list | 1 | const char * | +| (SSL *,const char *) | | SSL_use_psk_identity_hint | 0 | SSL * | +| (SSL *,const char *) | | SSL_use_psk_identity_hint | 1 | const char * | +| (SSL *,const unsigned char **) | | SSL_client_hello_get0_compression_methods | 0 | SSL * | +| (SSL *,const unsigned char **) | | SSL_client_hello_get0_compression_methods | 1 | const unsigned char ** | +| (SSL *,const unsigned char **) | | SSL_client_hello_get0_random | 0 | SSL * | +| (SSL *,const unsigned char **) | | SSL_client_hello_get0_random | 1 | const unsigned char ** | +| (SSL *,const unsigned char **) | | SSL_client_hello_get0_session_id | 0 | SSL * | +| (SSL *,const unsigned char **) | | SSL_client_hello_get0_session_id | 1 | const unsigned char ** | +| (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 0 | SSL * | +| (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 1 | const unsigned char * | +| (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | int | +| (SSL *,const unsigned char *,long) | | SSL_use_RSAPrivateKey_ASN1 | 0 | SSL * | +| (SSL *,const unsigned char *,long) | | SSL_use_RSAPrivateKey_ASN1 | 1 | const unsigned char * | +| (SSL *,const unsigned char *,long) | | SSL_use_RSAPrivateKey_ASN1 | 2 | long | +| (SSL *,const unsigned char *,size_t) | | SSL_set1_client_cert_type | 0 | SSL * | +| (SSL *,const unsigned char *,size_t) | | SSL_set1_client_cert_type | 1 | const unsigned char * | +| (SSL *,const unsigned char *,size_t) | | SSL_set1_client_cert_type | 2 | size_t | +| (SSL *,const unsigned char *,size_t) | | SSL_set1_server_cert_type | 0 | SSL * | +| (SSL *,const unsigned char *,size_t) | | SSL_set1_server_cert_type | 1 | const unsigned char * | +| (SSL *,const unsigned char *,size_t) | | SSL_set1_server_cert_type | 2 | size_t | +| (SSL *,const unsigned char *,size_t) | | SSL_set_quic_tls_transport_params | 0 | SSL * | +| (SSL *,const unsigned char *,size_t) | | SSL_set_quic_tls_transport_params | 1 | const unsigned char * | +| (SSL *,const unsigned char *,size_t) | | SSL_set_quic_tls_transport_params | 2 | size_t | +| (SSL *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *) | | SSL_inject_net_dgram | 0 | SSL * | +| (SSL *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *) | | SSL_inject_net_dgram | 1 | const unsigned char * | +| (SSL *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *) | | SSL_inject_net_dgram | 2 | size_t | +| (SSL *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *) | | SSL_inject_net_dgram | 3 | const BIO_ADDR * | +| (SSL *,const unsigned char *,size_t,const BIO_ADDR *,const BIO_ADDR *) | | SSL_inject_net_dgram | 4 | const BIO_ADDR * | +| (SSL *,const unsigned char *,size_t,int,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **) | | SSL_bytes_to_cipher_list | 0 | SSL * | +| (SSL *,const unsigned char *,size_t,int,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **) | | SSL_bytes_to_cipher_list | 1 | const unsigned char * | +| (SSL *,const unsigned char *,size_t,int,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **) | | SSL_bytes_to_cipher_list | 2 | size_t | +| (SSL *,const unsigned char *,size_t,int,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **) | | SSL_bytes_to_cipher_list | 3 | int | +| (SSL *,const unsigned char *,size_t,int,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **) | | SSL_bytes_to_cipher_list | 4 | stack_st_SSL_CIPHER ** | +| (SSL *,const unsigned char *,size_t,int,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **) | | SSL_bytes_to_cipher_list | 5 | stack_st_SSL_CIPHER ** | +| (SSL *,const unsigned char *,unsigned int) | | SSL_set_alpn_protos | 0 | SSL * | +| (SSL *,const unsigned char *,unsigned int) | | SSL_set_alpn_protos | 1 | const unsigned char * | +| (SSL *,const unsigned char *,unsigned int) | | SSL_set_alpn_protos | 2 | unsigned int | +| (SSL *,const unsigned char *,unsigned int) | | SSL_set_session_id_context | 0 | SSL * | +| (SSL *,const unsigned char *,unsigned int) | | SSL_set_session_id_context | 1 | const unsigned char * | +| (SSL *,const unsigned char *,unsigned int) | | SSL_set_session_id_context | 2 | unsigned int | +| (SSL *,const void *,int) | | SSL_write | 0 | SSL * | +| (SSL *,const void *,int) | | SSL_write | 1 | const void * | +| (SSL *,const void *,int) | | SSL_write | 2 | int | +| (SSL *,const void *,size_t,size_t *) | | SSL_write_early_data | 0 | SSL * | +| (SSL *,const void *,size_t,size_t *) | | SSL_write_early_data | 1 | const void * | +| (SSL *,const void *,size_t,size_t *) | | SSL_write_early_data | 2 | size_t | +| (SSL *,const void *,size_t,size_t *) | | SSL_write_early_data | 3 | size_t * | +| (SSL *,const void *,size_t,size_t *) | | SSL_write_ex | 0 | SSL * | +| (SSL *,const void *,size_t,size_t *) | | SSL_write_ex | 1 | const void * | +| (SSL *,const void *,size_t,size_t *) | | SSL_write_ex | 2 | size_t | +| (SSL *,const void *,size_t,size_t *) | | SSL_write_ex | 3 | size_t * | +| (SSL *,const void *,size_t,size_t *) | | ossl_quic_write | 0 | SSL * | +| (SSL *,const void *,size_t,size_t *) | | ossl_quic_write | 1 | const void * | +| (SSL *,const void *,size_t,size_t *) | | ossl_quic_write | 2 | size_t | +| (SSL *,const void *,size_t,size_t *) | | ossl_quic_write | 3 | size_t * | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | SSL_write_ex2 | 0 | SSL * | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | SSL_write_ex2 | 1 | const void * | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | SSL_write_ex2 | 2 | size_t | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | SSL_write_ex2 | 3 | uint64_t | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | SSL_write_ex2 | 4 | size_t * | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | ossl_quic_write_flags | 0 | SSL * | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | ossl_quic_write_flags | 1 | const void * | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | ossl_quic_write_flags | 2 | size_t | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | ossl_quic_write_flags | 3 | uint64_t | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | ossl_quic_write_flags | 4 | size_t * | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | ssl_write_internal | 0 | SSL * | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | ssl_write_internal | 1 | const void * | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | ssl_write_internal | 2 | size_t | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | ssl_write_internal | 3 | uint64_t | +| (SSL *,const void *,size_t,uint64_t,size_t *) | | ssl_write_internal | 4 | size_t * | +| (SSL *,int *) | | SSL_get_async_status | 0 | SSL * | +| (SSL *,int *) | | SSL_get_async_status | 1 | int * | +| (SSL *,int *,size_t *) | | SSL_get_all_async_fds | 0 | SSL * | +| (SSL *,int *,size_t *) | | SSL_get_all_async_fds | 1 | int * | +| (SSL *,int *,size_t *) | | SSL_get_all_async_fds | 2 | size_t * | +| (SSL *,int *,size_t *,int *,size_t *) | | SSL_get_changed_async_fds | 0 | SSL * | +| (SSL *,int *,size_t *,int *,size_t *) | | SSL_get_changed_async_fds | 1 | int * | +| (SSL *,int *,size_t *,int *,size_t *) | | SSL_get_changed_async_fds | 2 | size_t * | +| (SSL *,int *,size_t *,int *,size_t *) | | SSL_get_changed_async_fds | 3 | int * | +| (SSL *,int *,size_t *,int *,size_t *) | | SSL_get_changed_async_fds | 4 | size_t * | +| (SSL *,int) | | SSL_key_update | 0 | SSL * | +| (SSL *,int) | | SSL_key_update | 1 | int | +| (SSL *,int) | | SSL_set_post_handshake_auth | 0 | SSL * | +| (SSL *,int) | | SSL_set_post_handshake_auth | 1 | int | +| (SSL *,int) | | SSL_set_purpose | 0 | SSL * | +| (SSL *,int) | | SSL_set_purpose | 1 | int | +| (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 0 | SSL * | +| (SSL *,int) | | SSL_set_quic_tls_early_data_enabled | 1 | int | +| (SSL *,int) | | SSL_set_quiet_shutdown | 0 | SSL * | +| (SSL *,int) | | SSL_set_quiet_shutdown | 1 | int | +| (SSL *,int) | | SSL_set_read_ahead | 0 | SSL * | +| (SSL *,int) | | SSL_set_read_ahead | 1 | int | +| (SSL *,int) | | SSL_set_security_level | 0 | SSL * | +| (SSL *,int) | | SSL_set_security_level | 1 | int | +| (SSL *,int) | | SSL_set_shutdown | 0 | SSL * | +| (SSL *,int) | | SSL_set_shutdown | 1 | int | +| (SSL *,int) | | SSL_set_trust | 0 | SSL * | +| (SSL *,int) | | SSL_set_trust | 1 | int | +| (SSL *,int) | | SSL_set_verify_depth | 0 | SSL * | +| (SSL *,int) | | SSL_set_verify_depth | 1 | int | +| (SSL *,int,..(*)(..)) | | ssl3_callback_ctrl | 0 | SSL * | +| (SSL *,int,..(*)(..)) | | ssl3_callback_ctrl | 1 | int | +| (SSL *,int,..(*)(..)) | | ssl3_callback_ctrl | 2 | ..(*)(..) | +| (SSL *,int,..(*)(..),SSL_verify_cb) | | SSL_set_verify | 0 | SSL * | +| (SSL *,int,..(*)(..),SSL_verify_cb) | | SSL_set_verify | 1 | int | +| (SSL *,int,..(*)(..),SSL_verify_cb) | | SSL_set_verify | 2 | ..(*)(..) | +| (SSL *,int,..(*)(..),SSL_verify_cb) | | SSL_set_verify | 3 | SSL_verify_cb | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_shared_sigalgs | 0 | SSL * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_shared_sigalgs | 1 | int | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_shared_sigalgs | 2 | int * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_shared_sigalgs | 3 | int * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_shared_sigalgs | 4 | int * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_shared_sigalgs | 5 | unsigned char * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_shared_sigalgs | 6 | unsigned char * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_sigalgs | 0 | SSL * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_sigalgs | 1 | int | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_sigalgs | 2 | int * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_sigalgs | 3 | int * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_sigalgs | 4 | int * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_sigalgs | 5 | unsigned char * | +| (SSL *,int,int *,int *,int *,unsigned char *,unsigned char *) | | SSL_get_sigalgs | 6 | unsigned char * | +| (SSL *,int,long,void *) | | SSL_ctrl | 0 | SSL * | +| (SSL *,int,long,void *) | | SSL_ctrl | 1 | int | +| (SSL *,int,long,void *) | | SSL_ctrl | 2 | long | +| (SSL *,int,long,void *) | | SSL_ctrl | 3 | void * | +| (SSL *,int,long,void *) | | dtls1_ctrl | 0 | SSL * | +| (SSL *,int,long,void *) | | dtls1_ctrl | 1 | int | +| (SSL *,int,long,void *) | | dtls1_ctrl | 2 | long | +| (SSL *,int,long,void *) | | dtls1_ctrl | 3 | void * | +| (SSL *,int,long,void *) | | ossl_quic_ctrl | 0 | SSL * | +| (SSL *,int,long,void *) | | ossl_quic_ctrl | 1 | int | +| (SSL *,int,long,void *) | | ossl_quic_ctrl | 2 | long | +| (SSL *,int,long,void *) | | ossl_quic_ctrl | 3 | void * | +| (SSL *,int,long,void *) | | ssl3_ctrl | 0 | SSL * | +| (SSL *,int,long,void *) | | ssl3_ctrl | 1 | int | +| (SSL *,int,long,void *) | | ssl3_ctrl | 2 | long | +| (SSL *,int,long,void *) | | ssl3_ctrl | 3 | void * | +| (SSL *,int,long,void *,int) | | ossl_ctrl_internal | 0 | SSL * | +| (SSL *,int,long,void *,int) | | ossl_ctrl_internal | 1 | int | +| (SSL *,int,long,void *,int) | | ossl_ctrl_internal | 2 | long | +| (SSL *,int,long,void *,int) | | ossl_ctrl_internal | 3 | void * | +| (SSL *,int,long,void *,int) | | ossl_ctrl_internal | 4 | int | +| (SSL *,long) | | SSL_set_verify_result | 0 | SSL * | +| (SSL *,long) | | SSL_set_verify_result | 1 | long | +| (SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *) | | ossl_statem_set_mutator | 0 | SSL * | +| (SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *) | | ossl_statem_set_mutator | 1 | ossl_statem_mutate_handshake_cb | +| (SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *) | | ossl_statem_set_mutator | 2 | ossl_statem_finish_mutate_handshake_cb | +| (SSL *,ossl_statem_mutate_handshake_cb,ossl_statem_finish_mutate_handshake_cb,void *) | | ossl_statem_set_mutator | 3 | void * | +| (SSL *,pem_password_cb *) | | SSL_set_default_passwd_cb | 0 | SSL * | +| (SSL *,pem_password_cb *) | | SSL_set_default_passwd_cb | 1 | pem_password_cb * | +| (SSL *,size_t) | | SSL_set_block_padding | 0 | SSL * | +| (SSL *,size_t) | | SSL_set_block_padding | 1 | size_t | +| (SSL *,size_t) | | SSL_set_default_read_buffer_len | 0 | SSL * | +| (SSL *,size_t) | | SSL_set_default_read_buffer_len | 1 | size_t | +| (SSL *,size_t) | | SSL_set_num_tickets | 0 | SSL * | +| (SSL *,size_t) | | SSL_set_num_tickets | 1 | size_t | +| (SSL *,size_t) | | create_a_psk | 0 | SSL * | +| (SSL *,size_t) | | create_a_psk | 1 | size_t | +| (SSL *,size_t,size_t) | | SSL_set_block_padding_ex | 0 | SSL * | +| (SSL *,size_t,size_t) | | SSL_set_block_padding_ex | 1 | size_t | +| (SSL *,size_t,size_t) | | SSL_set_block_padding_ex | 2 | size_t | +| (SSL *,ssl_ct_validation_cb,void *) | | SSL_set_ct_validation_callback | 0 | SSL * | +| (SSL *,ssl_ct_validation_cb,void *) | | SSL_set_ct_validation_callback | 1 | ssl_ct_validation_cb | +| (SSL *,ssl_ct_validation_cb,void *) | | SSL_set_ct_validation_callback | 2 | void * | +| (SSL *,stack_st_X509_NAME *) | | SSL_set0_CA_list | 0 | SSL * | +| (SSL *,stack_st_X509_NAME *) | | SSL_set0_CA_list | 1 | stack_st_X509_NAME * | +| (SSL *,stack_st_X509_NAME *) | | SSL_set_client_CA_list | 0 | SSL * | +| (SSL *,stack_st_X509_NAME *) | | SSL_set_client_CA_list | 1 | stack_st_X509_NAME * | +| (SSL *,tls_session_secret_cb_fn,void *) | | SSL_set_session_secret_cb | 0 | SSL * | +| (SSL *,tls_session_secret_cb_fn,void *) | | SSL_set_session_secret_cb | 1 | tls_session_secret_cb_fn | +| (SSL *,tls_session_secret_cb_fn,void *) | | SSL_set_session_secret_cb | 2 | void * | +| (SSL *,tls_session_ticket_ext_cb_fn,void *) | | SSL_set_session_ticket_ext_cb | 0 | SSL * | +| (SSL *,tls_session_ticket_ext_cb_fn,void *) | | SSL_set_session_ticket_ext_cb | 1 | tls_session_ticket_ext_cb_fn | +| (SSL *,tls_session_ticket_ext_cb_fn,void *) | | SSL_set_session_ticket_ext_cb | 2 | void * | +| (SSL *,uint8_t *,uint8_t *,uint8_t *,const unsigned char **,size_t *) | | SSL_get0_dane_tlsa | 0 | SSL * | +| (SSL *,uint8_t *,uint8_t *,uint8_t *,const unsigned char **,size_t *) | | SSL_get0_dane_tlsa | 1 | uint8_t * | +| (SSL *,uint8_t *,uint8_t *,uint8_t *,const unsigned char **,size_t *) | | SSL_get0_dane_tlsa | 2 | uint8_t * | +| (SSL *,uint8_t *,uint8_t *,uint8_t *,const unsigned char **,size_t *) | | SSL_get0_dane_tlsa | 3 | uint8_t * | +| (SSL *,uint8_t *,uint8_t *,uint8_t *,const unsigned char **,size_t *) | | SSL_get0_dane_tlsa | 4 | const unsigned char ** | +| (SSL *,uint8_t *,uint8_t *,uint8_t *,const unsigned char **,size_t *) | | SSL_get0_dane_tlsa | 5 | size_t * | +| (SSL *,uint8_t) | | SSL_set_tlsext_max_fragment_length | 0 | SSL * | +| (SSL *,uint8_t) | | SSL_set_tlsext_max_fragment_length | 1 | uint8_t | +| (SSL *,uint8_t,const void *,size_t,size_t *) | | dtls1_write_app_data_bytes | 0 | SSL * | +| (SSL *,uint8_t,const void *,size_t,size_t *) | | dtls1_write_app_data_bytes | 1 | uint8_t | +| (SSL *,uint8_t,const void *,size_t,size_t *) | | dtls1_write_app_data_bytes | 2 | const void * | +| (SSL *,uint8_t,const void *,size_t,size_t *) | | dtls1_write_app_data_bytes | 3 | size_t | +| (SSL *,uint8_t,const void *,size_t,size_t *) | | dtls1_write_app_data_bytes | 4 | size_t * | +| (SSL *,uint8_t,const void *,size_t,size_t *) | | ssl3_write_bytes | 0 | SSL * | +| (SSL *,uint8_t,const void *,size_t,size_t *) | | ssl3_write_bytes | 1 | uint8_t | +| (SSL *,uint8_t,const void *,size_t,size_t *) | | ssl3_write_bytes | 2 | const void * | +| (SSL *,uint8_t,const void *,size_t,size_t *) | | ssl3_write_bytes | 3 | size_t | +| (SSL *,uint8_t,const void *,size_t,size_t *) | | ssl3_write_bytes | 4 | size_t * | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | dtls1_read_bytes | 0 | SSL * | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | dtls1_read_bytes | 1 | uint8_t | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | dtls1_read_bytes | 2 | uint8_t * | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | dtls1_read_bytes | 3 | unsigned char * | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | dtls1_read_bytes | 4 | size_t | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | dtls1_read_bytes | 5 | int | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | dtls1_read_bytes | 6 | size_t * | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | ssl3_read_bytes | 0 | SSL * | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | ssl3_read_bytes | 1 | uint8_t | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | ssl3_read_bytes | 2 | uint8_t * | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | ssl3_read_bytes | 3 | unsigned char * | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | ssl3_read_bytes | 4 | size_t | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | ssl3_read_bytes | 5 | int | +| (SSL *,uint8_t,uint8_t *,unsigned char *,size_t,int,size_t *) | | ssl3_read_bytes | 6 | size_t * | +| (SSL *,uint8_t,uint8_t,uint8_t,const unsigned char *,size_t) | | SSL_dane_tlsa_add | 0 | SSL * | +| (SSL *,uint8_t,uint8_t,uint8_t,const unsigned char *,size_t) | | SSL_dane_tlsa_add | 1 | uint8_t | +| (SSL *,uint8_t,uint8_t,uint8_t,const unsigned char *,size_t) | | SSL_dane_tlsa_add | 2 | uint8_t | +| (SSL *,uint8_t,uint8_t,uint8_t,const unsigned char *,size_t) | | SSL_dane_tlsa_add | 3 | uint8_t | +| (SSL *,uint8_t,uint8_t,uint8_t,const unsigned char *,size_t) | | SSL_dane_tlsa_add | 4 | const unsigned char * | +| (SSL *,uint8_t,uint8_t,uint8_t,const unsigned char *,size_t) | | SSL_dane_tlsa_add | 5 | size_t | +| (SSL *,uint16_t *,size_t *) | | SSL_client_hello_get_extension_order | 0 | SSL * | +| (SSL *,uint16_t *,size_t *) | | SSL_client_hello_get_extension_order | 1 | uint16_t * | +| (SSL *,uint16_t *,size_t *) | | SSL_client_hello_get_extension_order | 2 | size_t * | +| (SSL *,uint32_t) | | SSL_set_max_early_data | 0 | SSL * | +| (SSL *,uint32_t) | | SSL_set_max_early_data | 1 | uint32_t | +| (SSL *,uint32_t) | | SSL_set_recv_max_early_data | 0 | SSL * | +| (SSL *,uint32_t) | | SSL_set_recv_max_early_data | 1 | uint32_t | +| (SSL *,uint64_t) | | SSL_clear_options | 0 | SSL * | +| (SSL *,uint64_t) | | SSL_clear_options | 1 | uint64_t | +| (SSL *,uint64_t) | | SSL_new_listener_from | 0 | SSL * | +| (SSL *,uint64_t) | | SSL_new_listener_from | 1 | uint64_t | +| (SSL *,uint64_t) | | SSL_set_options | 0 | SSL * | +| (SSL *,uint64_t) | | SSL_set_options | 1 | uint64_t | +| (SSL *,uint64_t) | | ossl_quic_clear_options | 0 | SSL * | +| (SSL *,uint64_t) | | ossl_quic_clear_options | 1 | uint64_t | +| (SSL *,uint64_t) | | ossl_quic_new_listener_from | 0 | SSL * | +| (SSL *,uint64_t) | | ossl_quic_new_listener_from | 1 | uint64_t | +| (SSL *,uint64_t) | | ossl_quic_set_options | 0 | SSL * | +| (SSL *,uint64_t) | | ossl_quic_set_options | 1 | uint64_t | +| (SSL *,uint64_t,const SSL_SHUTDOWN_EX_ARGS *,size_t) | | SSL_shutdown_ex | 0 | SSL * | +| (SSL *,uint64_t,const SSL_SHUTDOWN_EX_ARGS *,size_t) | | SSL_shutdown_ex | 1 | uint64_t | +| (SSL *,uint64_t,const SSL_SHUTDOWN_EX_ARGS *,size_t) | | SSL_shutdown_ex | 2 | const SSL_SHUTDOWN_EX_ARGS * | +| (SSL *,uint64_t,const SSL_SHUTDOWN_EX_ARGS *,size_t) | | SSL_shutdown_ex | 3 | size_t | +| (SSL *,unsigned int) | | SSL_set_hostflags | 0 | SSL * | +| (SSL *,unsigned int) | | SSL_set_hostflags | 1 | unsigned int | +| (SSL *,unsigned long) | | SSL_dane_clear_flags | 0 | SSL * | +| (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | unsigned long | +| (SSL *,unsigned long) | | SSL_dane_set_flags | 0 | SSL * | +| (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | unsigned long | +| (SSL *,void *) | | SSL_set0_security_ex_data | 0 | SSL * | +| (SSL *,void *) | | SSL_set0_security_ex_data | 1 | void * | +| (SSL *,void *) | | SSL_set_async_callback_arg | 0 | SSL * | +| (SSL *,void *) | | SSL_set_async_callback_arg | 1 | void * | +| (SSL *,void *) | | SSL_set_default_passwd_cb_userdata | 0 | SSL * | +| (SSL *,void *) | | SSL_set_default_passwd_cb_userdata | 1 | void * | +| (SSL *,void *) | | SSL_set_record_padding_callback_arg | 0 | SSL * | +| (SSL *,void *) | | SSL_set_record_padding_callback_arg | 1 | void * | +| (SSL *,void *,int) | | SSL_peek | 0 | SSL * | +| (SSL *,void *,int) | | SSL_peek | 1 | void * | +| (SSL *,void *,int) | | SSL_peek | 2 | int | +| (SSL *,void *,int) | | SSL_read | 0 | SSL * | +| (SSL *,void *,int) | | SSL_read | 1 | void * | +| (SSL *,void *,int) | | SSL_read | 2 | int | +| (SSL *,void *,int) | | SSL_set_session_ticket_ext | 0 | SSL * | +| (SSL *,void *,int) | | SSL_set_session_ticket_ext | 1 | void * | +| (SSL *,void *,int) | | SSL_set_session_ticket_ext | 2 | int | +| (SSL *,void *,size_t,size_t *) | | SSL_peek_ex | 0 | SSL * | +| (SSL *,void *,size_t,size_t *) | | SSL_peek_ex | 1 | void * | +| (SSL *,void *,size_t,size_t *) | | SSL_peek_ex | 2 | size_t | +| (SSL *,void *,size_t,size_t *) | | SSL_peek_ex | 3 | size_t * | +| (SSL *,void *,size_t,size_t *) | | SSL_read_early_data | 0 | SSL * | +| (SSL *,void *,size_t,size_t *) | | SSL_read_early_data | 1 | void * | +| (SSL *,void *,size_t,size_t *) | | SSL_read_early_data | 2 | size_t | +| (SSL *,void *,size_t,size_t *) | | SSL_read_early_data | 3 | size_t * | +| (SSL *,void *,size_t,size_t *) | | SSL_read_ex | 0 | SSL * | +| (SSL *,void *,size_t,size_t *) | | SSL_read_ex | 1 | void * | +| (SSL *,void *,size_t,size_t *) | | SSL_read_ex | 2 | size_t | +| (SSL *,void *,size_t,size_t *) | | SSL_read_ex | 3 | size_t * | +| (SSL *,void *,size_t,size_t *) | | ossl_quic_peek | 0 | SSL * | +| (SSL *,void *,size_t,size_t *) | | ossl_quic_peek | 1 | void * | +| (SSL *,void *,size_t,size_t *) | | ossl_quic_peek | 2 | size_t | +| (SSL *,void *,size_t,size_t *) | | ossl_quic_peek | 3 | size_t * | +| (SSL *,void *,size_t,size_t *) | | ossl_quic_read | 0 | SSL * | +| (SSL *,void *,size_t,size_t *) | | ossl_quic_read | 1 | void * | +| (SSL *,void *,size_t,size_t *) | | ossl_quic_read | 2 | size_t | +| (SSL *,void *,size_t,size_t *) | | ossl_quic_read | 3 | size_t * | +| (SSL *,void *,size_t,size_t *) | | ssl_read_internal | 0 | SSL * | +| (SSL *,void *,size_t,size_t *) | | ssl_read_internal | 1 | void * | +| (SSL *,void *,size_t,size_t *) | | ssl_read_internal | 2 | size_t | +| (SSL *,void *,size_t,size_t *) | | ssl_read_internal | 3 | size_t * | +| (SSL_CIPHER *,const SSL_CIPHER *,int) | | OBJ_bsearch_ssl_cipher_id | 0 | SSL_CIPHER * | +| (SSL_CIPHER *,const SSL_CIPHER *,int) | | OBJ_bsearch_ssl_cipher_id | 1 | const SSL_CIPHER * | +| (SSL_CIPHER *,const SSL_CIPHER *,int) | | OBJ_bsearch_ssl_cipher_id | 2 | int | +| (SSL_CONF_CTX *,SSL *) | | SSL_CONF_CTX_set_ssl | 0 | SSL_CONF_CTX * | +| (SSL_CONF_CTX *,SSL *) | | SSL_CONF_CTX_set_ssl | 1 | SSL * | +| (SSL_CONF_CTX *,SSL_CTX *) | | SSL_CONF_CTX_set_ssl_ctx | 0 | SSL_CONF_CTX * | +| (SSL_CONF_CTX *,SSL_CTX *) | | SSL_CONF_CTX_set_ssl_ctx | 1 | SSL_CTX * | +| (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 0 | SSL_CONF_CTX * | +| (SSL_CONF_CTX *,const char *) | | SSL_CONF_CTX_set1_prefix | 1 | const char * | +| (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 0 | SSL_CONF_CTX * | +| (SSL_CONF_CTX *,const char *) | | SSL_CONF_cmd_value_type | 1 | const char * | +| (SSL_CONF_CTX *,const char *,const char *) | | SSL_CONF_cmd | 0 | SSL_CONF_CTX * | +| (SSL_CONF_CTX *,const char *,const char *) | | SSL_CONF_cmd | 1 | const char * | +| (SSL_CONF_CTX *,const char *,const char *) | | SSL_CONF_cmd | 2 | const char * | +| (SSL_CONF_CTX *,int *,char ***) | | SSL_CONF_cmd_argv | 0 | SSL_CONF_CTX * | +| (SSL_CONF_CTX *,int *,char ***) | | SSL_CONF_cmd_argv | 1 | int * | +| (SSL_CONF_CTX *,int *,char ***) | | SSL_CONF_cmd_argv | 2 | char *** | +| (SSL_CONF_CTX *,stack_st_OPENSSL_STRING *,SSL_CTX *) | | config_ctx | 0 | SSL_CONF_CTX * | +| (SSL_CONF_CTX *,stack_st_OPENSSL_STRING *,SSL_CTX *) | | config_ctx | 1 | stack_st_OPENSSL_STRING * | +| (SSL_CONF_CTX *,stack_st_OPENSSL_STRING *,SSL_CTX *) | | config_ctx | 2 | SSL_CTX * | +| (SSL_CONF_CTX *,unsigned int) | | SSL_CONF_CTX_clear_flags | 0 | SSL_CONF_CTX * | +| (SSL_CONF_CTX *,unsigned int) | | SSL_CONF_CTX_clear_flags | 1 | unsigned int | +| (SSL_CONF_CTX *,unsigned int) | | SSL_CONF_CTX_set_flags | 0 | SSL_CONF_CTX * | +| (SSL_CONF_CTX *,unsigned int) | | SSL_CONF_CTX_set_flags | 1 | unsigned int | +| (SSL_CONNECTION *) | | dtls1_query_mtu | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *) | | get_ca_names | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *) | | ossl_statem_client_max_message_size | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *) | | ossl_statem_get_in_handshake | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *) | | ossl_statem_get_state | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *) | | ossl_statem_server_max_message_size | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *) | | ssl_get_ciphers_by_id | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *) | | ssl_set_client_hello_version | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,CLIENTHELLO_MSG *) | | ssl_get_prev_session | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,CLIENTHELLO_MSG *) | | ssl_get_prev_session | 1 | CLIENTHELLO_MSG * | +| (SSL_CONNECTION *,CLIENTHELLO_MSG *,DOWNGRADE *) | | ssl_choose_server_version | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,CLIENTHELLO_MSG *,DOWNGRADE *) | | ssl_choose_server_version | 1 | CLIENTHELLO_MSG * | +| (SSL_CONNECTION *,CLIENTHELLO_MSG *,DOWNGRADE *) | | ssl_choose_server_version | 2 | DOWNGRADE * | +| (SSL_CONNECTION *,CLIENTHELLO_MSG *,SSL_SESSION **) | | tls_get_ticket_from_client | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,CLIENTHELLO_MSG *,SSL_SESSION **) | | tls_get_ticket_from_client | 1 | CLIENTHELLO_MSG * | +| (SSL_CONNECTION *,CLIENTHELLO_MSG *,SSL_SESSION **) | | tls_get_ticket_from_client | 2 | SSL_SESSION ** | +| (SSL_CONNECTION *,EVP_PKEY *) | | ssl_generate_pkey | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,EVP_PKEY *) | | ssl_generate_pkey | 1 | EVP_PKEY * | +| (SSL_CONNECTION *,PACKET *) | | dtls_process_hello_verify | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | dtls_process_hello_verify | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | ossl_statem_client_process_message | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | ossl_statem_client_process_message | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | ossl_statem_server_process_message | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | ossl_statem_server_process_message | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | parse_ca_names | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | parse_ca_names | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_certificate_request | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_certificate_request | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_client_certificate | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_client_certificate | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_client_hello | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_client_hello | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_client_key_exchange | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_client_key_exchange | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_client_rpk | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_client_rpk | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_key_exchange | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_key_exchange | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_new_session_ticket | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_new_session_ticket | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_next_proto | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_next_proto | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_server_certificate | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_server_certificate | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_server_hello | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_server_hello | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_server_rpk | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *) | | tls_process_server_rpk | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,EVP_PKEY **) | | tls_process_rpk | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,EVP_PKEY **) | | tls_process_rpk | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,EVP_PKEY **) | | tls_process_rpk | 2 | EVP_PKEY ** | +| (SSL_CONNECTION *,PACKET *,int) | | ssl_cache_cipherlist | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,int) | | ssl_cache_cipherlist | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,int) | | ssl_cache_cipherlist | 2 | int | +| (SSL_CONNECTION *,PACKET *,unsigned int,RAW_EXTENSION **,size_t *,int) | | tls_collect_extensions | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,RAW_EXTENSION **,size_t *,int) | | tls_collect_extensions | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,RAW_EXTENSION **,size_t *,int) | | tls_collect_extensions | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,RAW_EXTENSION **,size_t *,int) | | tls_collect_extensions | 3 | RAW_EXTENSION ** | +| (SSL_CONNECTION *,PACKET *,unsigned int,RAW_EXTENSION **,size_t *,int) | | tls_collect_extensions | 4 | size_t * | +| (SSL_CONNECTION *,PACKET *,unsigned int,RAW_EXTENSION **,size_t *,int) | | tls_collect_extensions | 5 | int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_alpn | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_alpn | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_alpn | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_alpn | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_alpn | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_client_cert_type | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_client_cert_type | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_client_cert_type | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_client_cert_type | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_client_cert_type | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_cookie | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_cookie | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_cookie | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_cookie | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_cookie | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_ec_pt_formats | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_ec_pt_formats | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_ec_pt_formats | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_ec_pt_formats | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_ec_pt_formats | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_key_share | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_key_share | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_key_share | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_key_share | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_key_share | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_psk | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_psk | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_psk | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_psk | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_psk | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_psk_kex_modes | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_psk_kex_modes | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_psk_kex_modes | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_psk_kex_modes | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_psk_kex_modes | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_server_cert_type | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_server_cert_type | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_server_cert_type | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_server_cert_type | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_server_cert_type | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_server_name | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_server_name | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_server_name | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_server_name | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_server_name | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_sig_algs | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_sig_algs | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_sig_algs | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_sig_algs | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_sig_algs | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_sig_algs_cert | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_sig_algs_cert | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_sig_algs_cert | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_sig_algs_cert | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_sig_algs_cert | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_srp | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_srp | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_srp | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_srp | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_srp | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_status_request | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_status_request | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_status_request | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_status_request | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_status_request | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_supported_groups | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_supported_groups | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_supported_groups | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_supported_groups | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_ctos_supported_groups | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_alpn | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_alpn | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_alpn | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_alpn | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_alpn | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_client_cert_type | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_client_cert_type | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_client_cert_type | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_client_cert_type | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_client_cert_type | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_cookie | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_cookie | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_cookie | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_cookie | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_cookie | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_ec_pt_formats | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_ec_pt_formats | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_ec_pt_formats | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_ec_pt_formats | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_ec_pt_formats | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_key_share | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_key_share | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_key_share | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_key_share | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_key_share | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_npn | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_npn | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_npn | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_npn | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_npn | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_renegotiate | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_renegotiate | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_renegotiate | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_renegotiate | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_renegotiate | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_sct | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_sct | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_sct | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_sct | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_sct | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_server_cert_type | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_server_cert_type | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_server_cert_type | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_server_cert_type | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_server_cert_type | 4 | size_t | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_supported_versions | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_supported_versions | 1 | PACKET * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_supported_versions | 2 | unsigned int | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_supported_versions | 3 | X509 * | +| (SSL_CONNECTION *,PACKET *,unsigned int,X509 *,size_t) | | tls_parse_stoc_supported_versions | 4 | size_t | +| (SSL_CONNECTION *,SSL_CTX *,X509 *) | | ssl_cert_add0_chain_cert | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,SSL_CTX *,X509 *) | | ssl_cert_add0_chain_cert | 1 | SSL_CTX * | +| (SSL_CONNECTION *,SSL_CTX *,X509 *) | | ssl_cert_add0_chain_cert | 2 | X509 * | +| (SSL_CONNECTION *,SSL_CTX *,X509 *) | | ssl_cert_add1_chain_cert | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,SSL_CTX *,X509 *) | | ssl_cert_add1_chain_cert | 1 | SSL_CTX * | +| (SSL_CONNECTION *,SSL_CTX *,X509 *) | | ssl_cert_add1_chain_cert | 2 | X509 * | +| (SSL_CONNECTION *,SSL_CTX *,X509 *,int,int) | | ssl_security_cert | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,SSL_CTX *,X509 *,int,int) | | ssl_security_cert | 1 | SSL_CTX * | +| (SSL_CONNECTION *,SSL_CTX *,X509 *,int,int) | | ssl_security_cert | 2 | X509 * | +| (SSL_CONNECTION *,SSL_CTX *,X509 *,int,int) | | ssl_security_cert | 3 | int | +| (SSL_CONNECTION *,SSL_CTX *,X509 *,int,int) | | ssl_security_cert | 4 | int | +| (SSL_CONNECTION *,SSL_CTX *,stack_st_X509 *) | | ssl_cert_set1_chain | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,SSL_CTX *,stack_st_X509 *) | | ssl_cert_set1_chain | 1 | SSL_CTX * | +| (SSL_CONNECTION *,SSL_CTX *,stack_st_X509 *) | | ssl_cert_set1_chain | 2 | stack_st_X509 * | +| (SSL_CONNECTION *,TLSEXT_INDEX,int,RAW_EXTENSION *,X509 *,size_t) | | tls_parse_extension | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,TLSEXT_INDEX,int,RAW_EXTENSION *,X509 *,size_t) | | tls_parse_extension | 1 | TLSEXT_INDEX | +| (SSL_CONNECTION *,TLSEXT_INDEX,int,RAW_EXTENSION *,X509 *,size_t) | | tls_parse_extension | 2 | int | +| (SSL_CONNECTION *,TLSEXT_INDEX,int,RAW_EXTENSION *,X509 *,size_t) | | tls_parse_extension | 3 | RAW_EXTENSION * | +| (SSL_CONNECTION *,TLSEXT_INDEX,int,RAW_EXTENSION *,X509 *,size_t) | | tls_parse_extension | 4 | X509 * | +| (SSL_CONNECTION *,TLSEXT_INDEX,int,RAW_EXTENSION *,X509 *,size_t) | | tls_parse_extension | 5 | size_t | +| (SSL_CONNECTION *,TLS_RECORD *,size_t) | | ssl_release_record | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,TLS_RECORD *,size_t) | | ssl_release_record | 1 | TLS_RECORD * | +| (SSL_CONNECTION *,TLS_RECORD *,size_t) | | ssl_release_record | 2 | size_t | +| (SSL_CONNECTION *,WPACKET *) | | dtls_construct_hello_verify_request | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *) | | dtls_construct_hello_verify_request | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *) | | ssl3_get_req_cert_type | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *) | | ssl3_get_req_cert_type | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_certificate_request | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_certificate_request | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_client_certificate | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_client_certificate | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_client_hello | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_client_hello | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_new_session_ticket | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_new_session_ticket | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_next_proto | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_next_proto | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_server_hello | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *) | | tls_construct_server_hello | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,CERT_PKEY *,int) | | ssl3_output_cert_chain | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,CERT_PKEY *,int) | | ssl3_output_cert_chain | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,CERT_PKEY *,int) | | ssl3_output_cert_chain | 2 | CERT_PKEY * | +| (SSL_CONNECTION *,WPACKET *,CERT_PKEY *,int) | | ssl3_output_cert_chain | 3 | int | +| (SSL_CONNECTION *,WPACKET *,int) | | dtls1_close_construct_packet | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,int) | | dtls1_close_construct_packet | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,int) | | dtls1_close_construct_packet | 2 | int | +| (SSL_CONNECTION *,WPACKET *,int) | | dtls1_set_handshake_header | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,int) | | dtls1_set_handshake_header | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,int) | | dtls1_set_handshake_header | 2 | int | +| (SSL_CONNECTION *,WPACKET *,int) | | tls_close_construct_packet | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,int) | | tls_close_construct_packet | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,int) | | tls_close_construct_packet | 2 | int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_alpn | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_alpn | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_alpn | 2 | unsigned int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_alpn | 3 | X509 * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_alpn | 4 | size_t | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_client_cert_type | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_client_cert_type | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_client_cert_type | 2 | unsigned int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_client_cert_type | 3 | X509 * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_client_cert_type | 4 | size_t | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_cookie | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_cookie | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_cookie | 2 | unsigned int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_cookie | 3 | X509 * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_cookie | 4 | size_t | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_ec_pt_formats | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_ec_pt_formats | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_ec_pt_formats | 2 | unsigned int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_ec_pt_formats | 3 | X509 * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_ec_pt_formats | 4 | size_t | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_psk | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_psk | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_psk | 2 | unsigned int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_psk | 3 | X509 * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_psk | 4 | size_t | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_renegotiate | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_renegotiate | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_renegotiate | 2 | unsigned int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_renegotiate | 3 | X509 * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_renegotiate | 4 | size_t | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_server_cert_type | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_server_cert_type | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_server_cert_type | 2 | unsigned int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_server_cert_type | 3 | X509 * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_ctos_server_cert_type | 4 | size_t | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_alpn | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_alpn | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_alpn | 2 | unsigned int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_alpn | 3 | X509 * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_alpn | 4 | size_t | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_ec_pt_formats | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_ec_pt_formats | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_ec_pt_formats | 2 | unsigned int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_ec_pt_formats | 3 | X509 * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_ec_pt_formats | 4 | size_t | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_renegotiate | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_renegotiate | 1 | WPACKET * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_renegotiate | 2 | unsigned int | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_renegotiate | 3 | X509 * | +| (SSL_CONNECTION *,WPACKET *,unsigned int,X509 *,size_t) | | tls_construct_stoc_renegotiate | 4 | size_t | +| (SSL_CONNECTION *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | tls1_check_chain | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | tls1_check_chain | 1 | X509 * | +| (SSL_CONNECTION *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | tls1_check_chain | 2 | EVP_PKEY * | +| (SSL_CONNECTION *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | tls1_check_chain | 3 | stack_st_X509 * | +| (SSL_CONNECTION *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | tls1_check_chain | 4 | int | +| (SSL_CONNECTION *,const OSSL_RECORD_METHOD *,void *) | | ossl_ssl_set_custom_record_layer | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,const OSSL_RECORD_METHOD *,void *) | | ossl_ssl_set_custom_record_layer | 1 | const OSSL_RECORD_METHOD * | +| (SSL_CONNECTION *,const OSSL_RECORD_METHOD *,void *) | | ossl_ssl_set_custom_record_layer | 2 | void * | +| (SSL_CONNECTION *,const size_t **,size_t *) | | tls1_get_group_tuples | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,const size_t **,size_t *) | | tls1_get_group_tuples | 1 | const size_t ** | +| (SSL_CONNECTION *,const size_t **,size_t *) | | tls1_get_group_tuples | 2 | size_t * | +| (SSL_CONNECTION *,const stack_st_X509_NAME *,WPACKET *) | | construct_ca_names | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,const stack_st_X509_NAME *,WPACKET *) | | construct_ca_names | 1 | const stack_st_X509_NAME * | +| (SSL_CONNECTION *,const stack_st_X509_NAME *,WPACKET *) | | construct_ca_names | 2 | WPACKET * | +| (SSL_CONNECTION *,const uint16_t **,size_t *) | | tls1_get_requested_keyshare_groups | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,const uint16_t **,size_t *) | | tls1_get_requested_keyshare_groups | 1 | const uint16_t ** | +| (SSL_CONNECTION *,const uint16_t **,size_t *) | | tls1_get_requested_keyshare_groups | 2 | size_t * | +| (SSL_CONNECTION *,const uint16_t **,size_t *) | | tls1_get_supported_groups | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,const uint16_t **,size_t *) | | tls1_get_supported_groups | 1 | const uint16_t ** | +| (SSL_CONNECTION *,const uint16_t **,size_t *) | | tls1_get_supported_groups | 2 | size_t * | +| (SSL_CONNECTION *,const unsigned char **,size_t *) | | tls1_get_formatlist | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,const unsigned char **,size_t *) | | tls1_get_formatlist | 1 | const unsigned char ** | +| (SSL_CONNECTION *,const unsigned char **,size_t *) | | tls1_get_formatlist | 2 | size_t * | +| (SSL_CONNECTION *,const unsigned char *,size_t) | | lookup_sess_in_cache | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,const unsigned char *,size_t) | | lookup_sess_in_cache | 1 | const unsigned char * | +| (SSL_CONNECTION *,const unsigned char *,size_t) | | lookup_sess_in_cache | 2 | size_t | +| (SSL_CONNECTION *,const unsigned char *,size_t,const unsigned char *,size_t,SSL_SESSION **) | | tls_decrypt_ticket | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,const unsigned char *,size_t,const unsigned char *,size_t,SSL_SESSION **) | | tls_decrypt_ticket | 1 | const unsigned char * | +| (SSL_CONNECTION *,const unsigned char *,size_t,const unsigned char *,size_t,SSL_SESSION **) | | tls_decrypt_ticket | 2 | size_t | +| (SSL_CONNECTION *,const unsigned char *,size_t,const unsigned char *,size_t,SSL_SESSION **) | | tls_decrypt_ticket | 3 | const unsigned char * | +| (SSL_CONNECTION *,const unsigned char *,size_t,const unsigned char *,size_t,SSL_SESSION **) | | tls_decrypt_ticket | 4 | size_t | +| (SSL_CONNECTION *,const unsigned char *,size_t,const unsigned char *,size_t,SSL_SESSION **) | | tls_decrypt_ticket | 5 | SSL_SESSION ** | +| (SSL_CONNECTION *,int *) | | dtls_get_message | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int *) | | dtls_get_message | 1 | int * | +| (SSL_CONNECTION *,int *) | | tls_get_message_header | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int *) | | tls_get_message_header | 1 | int * | +| (SSL_CONNECTION *,int) | | dtls1_read_failed | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int) | | dtls1_read_failed | 1 | int | +| (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int) | | ossl_statem_send_fatal | 1 | int | +| (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int) | | ossl_statem_set_in_init | 1 | int | +| (SSL_CONNECTION *,int) | | tls1_shared_group | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int) | | tls1_shared_group | 1 | int | +| (SSL_CONNECTION *,int,RAW_EXTENSION *) | | ssl_choose_client_version | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int,RAW_EXTENSION *) | | ssl_choose_client_version | 1 | int | +| (SSL_CONNECTION *,int,RAW_EXTENSION *) | | ssl_choose_client_version | 2 | RAW_EXTENSION * | +| (SSL_CONNECTION *,int,RAW_EXTENSION *,X509 *,size_t,int) | | tls_parse_all_extensions | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int,RAW_EXTENSION *,X509 *,size_t,int) | | tls_parse_all_extensions | 1 | int | +| (SSL_CONNECTION *,int,RAW_EXTENSION *,X509 *,size_t,int) | | tls_parse_all_extensions | 2 | RAW_EXTENSION * | +| (SSL_CONNECTION *,int,RAW_EXTENSION *,X509 *,size_t,int) | | tls_parse_all_extensions | 3 | X509 * | +| (SSL_CONNECTION *,int,RAW_EXTENSION *,X509 *,size_t,int) | | tls_parse_all_extensions | 4 | size_t | +| (SSL_CONNECTION *,int,RAW_EXTENSION *,X509 *,size_t,int) | | tls_parse_all_extensions | 5 | int | +| (SSL_CONNECTION *,int,const uint16_t **) | | tls12_get_psigalgs | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int,const uint16_t **) | | tls12_get_psigalgs | 1 | int | +| (SSL_CONNECTION *,int,const uint16_t **) | | tls12_get_psigalgs | 2 | const uint16_t ** | +| (SSL_CONNECTION *,int,int) | | ssl3_send_alert | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int,int) | | ssl3_send_alert | 1 | int | +| (SSL_CONNECTION *,int,int) | | ssl3_send_alert | 2 | int | +| (SSL_CONNECTION *,int,int,char *,int) | | ossl_tls_handle_rlayer_return | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int,int,char *,int) | | ossl_tls_handle_rlayer_return | 1 | int | +| (SSL_CONNECTION *,int,int,char *,int) | | ossl_tls_handle_rlayer_return | 2 | int | +| (SSL_CONNECTION *,int,int,char *,int) | | ossl_tls_handle_rlayer_return | 3 | char * | +| (SSL_CONNECTION *,int,int,char *,int) | | ossl_tls_handle_rlayer_return | 4 | int | +| (SSL_CONNECTION *,int,int,const char *,...) | | ossl_statem_fatal | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int,int,const char *,...) | | ossl_statem_fatal | 1 | int | +| (SSL_CONNECTION *,int,int,const char *,...) | | ossl_statem_fatal | 2 | int | +| (SSL_CONNECTION *,int,int,const char *,...) | | ossl_statem_fatal | 3 | const char * | +| (SSL_CONNECTION *,int,int,const char *,...) | | ossl_statem_fatal | 4 | ... | +| (SSL_CONNECTION *,int,unsigned char *,size_t,DOWNGRADE) | | ssl_fill_hello_random | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,int,unsigned char *,size_t,DOWNGRADE) | | ssl_fill_hello_random | 1 | int | +| (SSL_CONNECTION *,int,unsigned char *,size_t,DOWNGRADE) | | ssl_fill_hello_random | 2 | unsigned char * | +| (SSL_CONNECTION *,int,unsigned char *,size_t,DOWNGRADE) | | ssl_fill_hello_random | 3 | size_t | +| (SSL_CONNECTION *,int,unsigned char *,size_t,DOWNGRADE) | | ssl_fill_hello_random | 4 | DOWNGRADE | +| (SSL_CONNECTION *,size_t *) | | dtls_get_message_body | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,size_t *) | | dtls_get_message_body | 1 | size_t * | +| (SSL_CONNECTION *,size_t *) | | tls_get_message_body | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,size_t *) | | tls_get_message_body | 1 | size_t * | +| (SSL_CONNECTION *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER *) | | ssl3_choose_cipher | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER *) | | ssl3_choose_cipher | 1 | stack_st_SSL_CIPHER * | +| (SSL_CONNECTION *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER *) | | ssl3_choose_cipher | 2 | stack_st_SSL_CIPHER * | +| (SSL_CONNECTION *,stack_st_X509 *,X509 *,int) | | ssl_security_cert_chain | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,stack_st_X509 *,X509 *,int) | | ssl_security_cert_chain | 1 | stack_st_X509 * | +| (SSL_CONNECTION *,stack_st_X509 *,X509 *,int) | | ssl_security_cert_chain | 2 | X509 * | +| (SSL_CONNECTION *,stack_st_X509 *,X509 *,int) | | ssl_security_cert_chain | 3 | int | +| (SSL_CONNECTION *,uint8_t,const unsigned char *,size_t,size_t *) | | do_dtls1_write | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,uint8_t,const unsigned char *,size_t,size_t *) | | do_dtls1_write | 1 | uint8_t | +| (SSL_CONNECTION *,uint8_t,const unsigned char *,size_t,size_t *) | | do_dtls1_write | 2 | const unsigned char * | +| (SSL_CONNECTION *,uint8_t,const unsigned char *,size_t,size_t *) | | do_dtls1_write | 3 | size_t | +| (SSL_CONNECTION *,uint8_t,const unsigned char *,size_t,size_t *) | | do_dtls1_write | 4 | size_t * | +| (SSL_CONNECTION *,uint8_t,const void *,size_t,size_t *) | | dtls1_write_bytes | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,uint8_t,const void *,size_t,size_t *) | | dtls1_write_bytes | 1 | uint8_t | +| (SSL_CONNECTION *,uint8_t,const void *,size_t,size_t *) | | dtls1_write_bytes | 2 | const void * | +| (SSL_CONNECTION *,uint8_t,const void *,size_t,size_t *) | | dtls1_write_bytes | 3 | size_t | +| (SSL_CONNECTION *,uint8_t,const void *,size_t,size_t *) | | dtls1_write_bytes | 4 | size_t * | +| (SSL_CONNECTION *,unsigned char **,const void *,size_t) | | construct_key_exchange_tbs | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,unsigned char **,const void *,size_t) | | construct_key_exchange_tbs | 1 | unsigned char ** | +| (SSL_CONNECTION *,unsigned char **,const void *,size_t) | | construct_key_exchange_tbs | 2 | const void * | +| (SSL_CONNECTION *,unsigned char **,const void *,size_t) | | construct_key_exchange_tbs | 3 | size_t | +| (SSL_CONNECTION *,unsigned char *,unsigned char *,size_t,size_t *) | | ssl3_generate_master_secret | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,unsigned char *,unsigned char *,size_t,size_t *) | | ssl3_generate_master_secret | 1 | unsigned char * | +| (SSL_CONNECTION *,unsigned char *,unsigned char *,size_t,size_t *) | | ssl3_generate_master_secret | 2 | unsigned char * | +| (SSL_CONNECTION *,unsigned char *,unsigned char *,size_t,size_t *) | | ssl3_generate_master_secret | 3 | size_t | +| (SSL_CONNECTION *,unsigned char *,unsigned char *,size_t,size_t *) | | ssl3_generate_master_secret | 4 | size_t * | +| (SSL_CONNECTION *,unsigned char,size_t,size_t,size_t) | | dtls1_set_message_header | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,unsigned char,size_t,size_t,size_t) | | dtls1_set_message_header | 1 | unsigned char | +| (SSL_CONNECTION *,unsigned char,size_t,size_t,size_t) | | dtls1_set_message_header | 2 | size_t | +| (SSL_CONNECTION *,unsigned char,size_t,size_t,size_t) | | dtls1_set_message_header | 3 | size_t | +| (SSL_CONNECTION *,unsigned char,size_t,size_t,size_t) | | dtls1_set_message_header | 4 | size_t | +| (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 0 | SSL_CONNECTION * | +| (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | unsigned long | +| (SSL_CTX *) | | SSL_CTX_get0_param | 0 | SSL_CTX * | +| (SSL_CTX *) | | SSL_CTX_get_client_cert_cb | 0 | SSL_CTX * | +| (SSL_CTX *) | | SSL_CTX_get_default_passwd_cb | 0 | SSL_CTX * | +| (SSL_CTX *) | | SSL_CTX_get_default_passwd_cb_userdata | 0 | SSL_CTX * | +| (SSL_CTX *) | | SSL_CTX_get_info_callback | 0 | SSL_CTX * | +| (SSL_CTX *) | | SSL_CTX_sess_get_get_cb | 0 | SSL_CTX * | +| (SSL_CTX *) | | SSL_CTX_sess_get_new_cb | 0 | SSL_CTX * | +| (SSL_CTX *) | | SSL_CTX_sess_get_remove_cb | 0 | SSL_CTX * | +| (SSL_CTX *) | | SSL_CTX_sessions | 0 | SSL_CTX * | +| (SSL_CTX *) | | ossl_quic_new | 0 | SSL_CTX * | +| (SSL_CTX *) | | ossl_ssl_connection_new | 0 | SSL_CTX * | +| (SSL_CTX *) | | ssl_load_groups | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_sess_set_get_cb | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_sess_set_get_cb | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_sess_set_new_cb | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_sess_set_new_cb | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_sess_set_remove_cb | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_sess_set_remove_cb | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_client_cert_cb | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_client_cert_cb | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_cookie_generate_cb | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_cookie_generate_cb | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_cookie_verify_cb | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_cookie_verify_cb | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_info_callback | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_info_callback | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_msg_callback | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_msg_callback | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_not_resumable_session_callback | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_not_resumable_session_callback | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_record_padding_callback | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_record_padding_callback | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_security_callback | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_security_callback | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_srp_client_pwd_callback | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_srp_client_pwd_callback | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_srp_username_callback | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_srp_username_callback | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_srp_verify_param_callback | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_srp_verify_param_callback | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_stateless_cookie_generate_cb | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_stateless_cookie_generate_cb | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_stateless_cookie_verify_cb | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_stateless_cookie_verify_cb | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_tlsext_ticket_key_evp_cb | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_tlsext_ticket_key_evp_cb | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_tmp_dh_callback | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..)) | | SSL_CTX_set_tmp_dh_callback | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..),void *) | | SSL_CTX_set_cert_cb | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..),void *) | | SSL_CTX_set_cert_cb | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..),void *) | | SSL_CTX_set_cert_cb | 2 | void * | +| (SSL_CTX *,..(*)(..),void *) | | SSL_CTX_set_cert_verify_callback | 0 | SSL_CTX * | +| (SSL_CTX *,..(*)(..),void *) | | SSL_CTX_set_cert_verify_callback | 1 | ..(*)(..) | +| (SSL_CTX *,..(*)(..),void *) | | SSL_CTX_set_cert_verify_callback | 2 | void * | +| (SSL_CTX *,CTLOG_STORE *) | | SSL_CTX_set0_ctlog_store | 0 | SSL_CTX * | +| (SSL_CTX *,CTLOG_STORE *) | | SSL_CTX_set0_ctlog_store | 1 | CTLOG_STORE * | +| (SSL_CTX *,ENGINE *) | | SSL_CTX_set_client_cert_engine | 0 | SSL_CTX * | +| (SSL_CTX *,ENGINE *) | | SSL_CTX_set_client_cert_engine | 1 | ENGINE * | +| (SSL_CTX *,EVP_PKEY *) | | SSL_CTX_set0_tmp_dh_pkey | 0 | SSL_CTX * | +| (SSL_CTX *,EVP_PKEY *) | | SSL_CTX_set0_tmp_dh_pkey | 1 | EVP_PKEY * | +| (SSL_CTX *,GEN_SESSION_CB) | | SSL_CTX_set_generate_session_id | 0 | SSL_CTX * | +| (SSL_CTX *,GEN_SESSION_CB) | | SSL_CTX_set_generate_session_id | 1 | GEN_SESSION_CB | +| (SSL_CTX *,SRP_ARG *,int,int,int) | | set_up_srp_arg | 0 | SSL_CTX * | +| (SSL_CTX *,SRP_ARG *,int,int,int) | | set_up_srp_arg | 1 | SRP_ARG * | +| (SSL_CTX *,SRP_ARG *,int,int,int) | | set_up_srp_arg | 2 | int | +| (SSL_CTX *,SRP_ARG *,int,int,int) | | set_up_srp_arg | 3 | int | +| (SSL_CTX *,SRP_ARG *,int,int,int) | | set_up_srp_arg | 4 | int | +| (SSL_CTX *,SSL *,const SSL_METHOD *) | | ossl_ssl_connection_new_int | 0 | SSL_CTX * | +| (SSL_CTX *,SSL *,const SSL_METHOD *) | | ossl_ssl_connection_new_int | 1 | SSL * | +| (SSL_CTX *,SSL *,const SSL_METHOD *) | | ossl_ssl_connection_new_int | 2 | const SSL_METHOD * | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 1 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 2 | SSL ** | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 3 | SSL ** | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 4 | BIO * | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 5 | BIO * | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 1 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 2 | SSL ** | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 3 | SSL ** | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 4 | int | +| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 5 | int | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 1 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 2 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 3 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 4 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 5 | const SSL_TEST_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 1 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 2 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 3 | const SSL_TEST_EXTRA_CONF * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 4 | CTX_DATA * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 5 | CTX_DATA * | +| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 6 | CTX_DATA * | +| (SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *) | | SSL_CTX_set_alpn_select_cb | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *) | | SSL_CTX_set_alpn_select_cb | 1 | SSL_CTX_alpn_select_cb_func | +| (SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *) | | SSL_CTX_set_alpn_select_cb | 2 | void * | +| (SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *) | | SSL_CTX_set_session_ticket_cb | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *) | | SSL_CTX_set_session_ticket_cb | 1 | SSL_CTX_generate_session_ticket_fn | +| (SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *) | | SSL_CTX_set_session_ticket_cb | 2 | SSL_CTX_decrypt_session_ticket_fn | +| (SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *) | | SSL_CTX_set_session_ticket_cb | 3 | void * | +| (SSL_CTX *,SSL_CTX_keylog_cb_func) | | SSL_CTX_set_keylog_callback | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX_keylog_cb_func) | | SSL_CTX_set_keylog_callback | 1 | SSL_CTX_keylog_cb_func | +| (SSL_CTX *,SSL_CTX_npn_advertised_cb_func,void *) | | SSL_CTX_set_next_protos_advertised_cb | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX_npn_advertised_cb_func,void *) | | SSL_CTX_set_next_protos_advertised_cb | 1 | SSL_CTX_npn_advertised_cb_func | +| (SSL_CTX *,SSL_CTX_npn_advertised_cb_func,void *) | | SSL_CTX_set_next_protos_advertised_cb | 2 | void * | +| (SSL_CTX *,SSL_CTX_npn_select_cb_func,void *) | | SSL_CTX_set_next_proto_select_cb | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_CTX_npn_select_cb_func,void *) | | SSL_CTX_set_next_proto_select_cb | 1 | SSL_CTX_npn_select_cb_func | +| (SSL_CTX *,SSL_CTX_npn_select_cb_func,void *) | | SSL_CTX_set_next_proto_select_cb | 2 | void * | +| (SSL_CTX *,SSL_EXCERT *) | | ssl_ctx_set_excert | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_EXCERT *) | | ssl_ctx_set_excert | 1 | SSL_EXCERT * | +| (SSL_CTX *,SSL_SESSION *) | | SSL_CTX_add_session | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_SESSION *) | | SSL_CTX_add_session | 1 | SSL_SESSION * | +| (SSL_CTX *,SSL_allow_early_data_cb_fn,void *) | | SSL_CTX_set_allow_early_data_cb | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_allow_early_data_cb_fn,void *) | | SSL_CTX_set_allow_early_data_cb | 1 | SSL_allow_early_data_cb_fn | +| (SSL_CTX *,SSL_allow_early_data_cb_fn,void *) | | SSL_CTX_set_allow_early_data_cb | 2 | void * | +| (SSL_CTX *,SSL_async_callback_fn) | | SSL_CTX_set_async_callback | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_async_callback_fn) | | SSL_CTX_set_async_callback | 1 | SSL_async_callback_fn | +| (SSL_CTX *,SSL_client_hello_cb_fn,void *) | | SSL_CTX_set_client_hello_cb | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_client_hello_cb_fn,void *) | | SSL_CTX_set_client_hello_cb | 1 | SSL_client_hello_cb_fn | +| (SSL_CTX *,SSL_client_hello_cb_fn,void *) | | SSL_CTX_set_client_hello_cb | 2 | void * | +| (SSL_CTX *,SSL_new_pending_conn_cb_fn,void *) | | SSL_CTX_set_new_pending_conn_cb | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_new_pending_conn_cb_fn,void *) | | SSL_CTX_set_new_pending_conn_cb | 1 | SSL_new_pending_conn_cb_fn | +| (SSL_CTX *,SSL_new_pending_conn_cb_fn,void *) | | SSL_CTX_set_new_pending_conn_cb | 2 | void * | +| (SSL_CTX *,SSL_psk_client_cb_func) | | SSL_CTX_set_psk_client_callback | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_psk_client_cb_func) | | SSL_CTX_set_psk_client_callback | 1 | SSL_psk_client_cb_func | +| (SSL_CTX *,SSL_psk_find_session_cb_func) | | SSL_CTX_set_psk_find_session_callback | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_psk_find_session_cb_func) | | SSL_CTX_set_psk_find_session_callback | 1 | SSL_psk_find_session_cb_func | +| (SSL_CTX *,SSL_psk_server_cb_func) | | SSL_CTX_set_psk_server_callback | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_psk_server_cb_func) | | SSL_CTX_set_psk_server_callback | 1 | SSL_psk_server_cb_func | +| (SSL_CTX *,SSL_psk_use_session_cb_func) | | SSL_CTX_set_psk_use_session_callback | 0 | SSL_CTX * | +| (SSL_CTX *,SSL_psk_use_session_cb_func) | | SSL_CTX_set_psk_use_session_callback | 1 | SSL_psk_use_session_cb_func | +| (SSL_CTX *,X509 *) | | SSL_CTX_use_certificate | 0 | SSL_CTX * | +| (SSL_CTX *,X509 *) | | SSL_CTX_use_certificate | 1 | X509 * | +| (SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | SSL_CTX_use_cert_and_key | 0 | SSL_CTX * | +| (SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | SSL_CTX_use_cert_and_key | 1 | X509 * | +| (SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | SSL_CTX_use_cert_and_key | 2 | EVP_PKEY * | +| (SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | SSL_CTX_use_cert_and_key | 3 | stack_st_X509 * | +| (SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | SSL_CTX_use_cert_and_key | 4 | int | +| (SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | set_cert_key_stuff | 0 | SSL_CTX * | +| (SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | set_cert_key_stuff | 1 | X509 * | +| (SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | set_cert_key_stuff | 2 | EVP_PKEY * | +| (SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | set_cert_key_stuff | 3 | stack_st_X509 * | +| (SSL_CTX *,X509 *,EVP_PKEY *,stack_st_X509 *,int) | | set_cert_key_stuff | 4 | int | +| (SSL_CTX *,X509_STORE *) | | SSL_CTX_set1_cert_store | 0 | SSL_CTX * | +| (SSL_CTX *,X509_STORE *) | | SSL_CTX_set1_cert_store | 1 | X509_STORE * | +| (SSL_CTX *,X509_STORE *) | | SSL_CTX_set_cert_store | 0 | SSL_CTX * | +| (SSL_CTX *,X509_STORE *) | | SSL_CTX_set_cert_store | 1 | X509_STORE * | +| (SSL_CTX *,X509_VERIFY_PARAM *) | | SSL_CTX_set1_param | 0 | SSL_CTX * | +| (SSL_CTX *,X509_VERIFY_PARAM *) | | SSL_CTX_set1_param | 1 | X509_VERIFY_PARAM * | +| (SSL_CTX *,char *) | | SSL_CTX_set_srp_password | 0 | SSL_CTX * | +| (SSL_CTX *,char *) | | SSL_CTX_set_srp_password | 1 | char * | +| (SSL_CTX *,char *) | | SSL_CTX_set_srp_username | 0 | SSL_CTX * | +| (SSL_CTX *,char *) | | SSL_CTX_set_srp_username | 1 | char * | +| (SSL_CTX *,char *,char *) | | set_cert_stuff | 0 | SSL_CTX * | +| (SSL_CTX *,char *,char *) | | set_cert_stuff | 1 | char * | +| (SSL_CTX *,char *,char *) | | set_cert_stuff | 2 | char * | +| (SSL_CTX *,const EVP_MD *,uint8_t,uint8_t) | | SSL_CTX_dane_mtype_set | 0 | SSL_CTX * | +| (SSL_CTX *,const EVP_MD *,uint8_t,uint8_t) | | SSL_CTX_dane_mtype_set | 1 | const EVP_MD * | +| (SSL_CTX *,const EVP_MD *,uint8_t,uint8_t) | | SSL_CTX_dane_mtype_set | 2 | uint8_t | +| (SSL_CTX *,const EVP_MD *,uint8_t,uint8_t) | | SSL_CTX_dane_mtype_set | 3 | uint8_t | +| (SSL_CTX *,const SIGALG_LOOKUP *,const EVP_MD **) | | tls1_lookup_md | 0 | SSL_CTX * | +| (SSL_CTX *,const SIGALG_LOOKUP *,const EVP_MD **) | | tls1_lookup_md | 1 | const SIGALG_LOOKUP * | +| (SSL_CTX *,const SIGALG_LOOKUP *,const EVP_MD **) | | tls1_lookup_md | 2 | const EVP_MD ** | +| (SSL_CTX *,const SSL_CIPHER *,const EVP_CIPHER **) | | ssl_cipher_get_evp_cipher | 0 | SSL_CTX * | +| (SSL_CTX *,const SSL_CIPHER *,const EVP_CIPHER **) | | ssl_cipher_get_evp_cipher | 1 | const SSL_CIPHER * | +| (SSL_CTX *,const SSL_CIPHER *,const EVP_CIPHER **) | | ssl_cipher_get_evp_cipher | 2 | const EVP_CIPHER ** | +| (SSL_CTX *,const SSL_CIPHER *,const EVP_MD **,int *,size_t *) | | ssl_cipher_get_evp_md_mac | 0 | SSL_CTX * | +| (SSL_CTX *,const SSL_CIPHER *,const EVP_MD **,int *,size_t *) | | ssl_cipher_get_evp_md_mac | 1 | const SSL_CIPHER * | +| (SSL_CTX *,const SSL_CIPHER *,const EVP_MD **,int *,size_t *) | | ssl_cipher_get_evp_md_mac | 2 | const EVP_MD ** | +| (SSL_CTX *,const SSL_CIPHER *,const EVP_MD **,int *,size_t *) | | ssl_cipher_get_evp_md_mac | 3 | int * | +| (SSL_CTX *,const SSL_CIPHER *,const EVP_MD **,int *,size_t *) | | ssl_cipher_get_evp_md_mac | 4 | size_t * | +| (SSL_CTX *,const SSL_METHOD *) | | SSL_CTX_set_ssl_version | 0 | SSL_CTX * | +| (SSL_CTX *,const SSL_METHOD *) | | SSL_CTX_set_ssl_version | 1 | const SSL_METHOD * | +| (SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int) | | ssl_cipher_get_evp | 0 | SSL_CTX * | +| (SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int) | | ssl_cipher_get_evp | 1 | const SSL_SESSION * | +| (SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int) | | ssl_cipher_get_evp | 2 | const EVP_CIPHER ** | +| (SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int) | | ssl_cipher_get_evp | 3 | const EVP_MD ** | +| (SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int) | | ssl_cipher_get_evp | 4 | int * | +| (SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int) | | ssl_cipher_get_evp | 5 | size_t * | +| (SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int) | | ssl_cipher_get_evp | 6 | SSL_COMP ** | +| (SSL_CTX *,const SSL_SESSION *,const EVP_CIPHER **,const EVP_MD **,int *,size_t *,SSL_COMP **,int) | | ssl_cipher_get_evp | 7 | int | +| (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 0 | SSL_CTX * | +| (SSL_CTX *,const char *) | | SSL_CTX_set_cipher_list | 1 | const char * | +| (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 0 | SSL_CTX * | +| (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | const char * | +| (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 0 | SSL_CTX * | +| (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | const char * | +| (SSL_CTX *,const unsigned char *,long) | | SSL_CTX_use_RSAPrivateKey_ASN1 | 0 | SSL_CTX * | +| (SSL_CTX *,const unsigned char *,long) | | SSL_CTX_use_RSAPrivateKey_ASN1 | 1 | const unsigned char * | +| (SSL_CTX *,const unsigned char *,long) | | SSL_CTX_use_RSAPrivateKey_ASN1 | 2 | long | +| (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_client_cert_type | 0 | SSL_CTX * | +| (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_client_cert_type | 1 | const unsigned char * | +| (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_client_cert_type | 2 | size_t | +| (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_server_cert_type | 0 | SSL_CTX * | +| (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_server_cert_type | 1 | const unsigned char * | +| (SSL_CTX *,const unsigned char *,size_t) | | SSL_CTX_set1_server_cert_type | 2 | size_t | +| (SSL_CTX *,const unsigned char *,unsigned int) | | SSL_CTX_set_alpn_protos | 0 | SSL_CTX * | +| (SSL_CTX *,const unsigned char *,unsigned int) | | SSL_CTX_set_alpn_protos | 1 | const unsigned char * | +| (SSL_CTX *,const unsigned char *,unsigned int) | | SSL_CTX_set_alpn_protos | 2 | unsigned int | +| (SSL_CTX *,const unsigned char *,unsigned int) | | SSL_CTX_set_session_id_context | 0 | SSL_CTX * | +| (SSL_CTX *,const unsigned char *,unsigned int) | | SSL_CTX_set_session_id_context | 1 | const unsigned char * | +| (SSL_CTX *,const unsigned char *,unsigned int) | | SSL_CTX_set_session_id_context | 2 | unsigned int | +| (SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *) | | ossl_tls_add_custom_ext_intern | 0 | SSL_CTX * | +| (SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *) | | ossl_tls_add_custom_ext_intern | 1 | custom_ext_methods * | +| (SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *) | | ossl_tls_add_custom_ext_intern | 2 | ENDPOINT | +| (SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *) | | ossl_tls_add_custom_ext_intern | 3 | unsigned int | +| (SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *) | | ossl_tls_add_custom_ext_intern | 4 | unsigned int | +| (SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *) | | ossl_tls_add_custom_ext_intern | 5 | SSL_custom_ext_add_cb_ex | +| (SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *) | | ossl_tls_add_custom_ext_intern | 6 | SSL_custom_ext_free_cb_ex | +| (SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *) | | ossl_tls_add_custom_ext_intern | 7 | void * | +| (SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *) | | ossl_tls_add_custom_ext_intern | 8 | SSL_custom_ext_parse_cb_ex | +| (SSL_CTX *,custom_ext_methods *,ENDPOINT,unsigned int,unsigned int,SSL_custom_ext_add_cb_ex,SSL_custom_ext_free_cb_ex,void *,SSL_custom_ext_parse_cb_ex,void *) | | ossl_tls_add_custom_ext_intern | 9 | void * | +| (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 0 | SSL_CTX * | +| (SSL_CTX *,int) | | SSL_CTX_set_post_handshake_auth | 1 | int | +| (SSL_CTX *,int) | | SSL_CTX_set_purpose | 0 | SSL_CTX * | +| (SSL_CTX *,int) | | SSL_CTX_set_purpose | 1 | int | +| (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 0 | SSL_CTX * | +| (SSL_CTX *,int) | | SSL_CTX_set_quiet_shutdown | 1 | int | +| (SSL_CTX *,int) | | SSL_CTX_set_security_level | 0 | SSL_CTX * | +| (SSL_CTX *,int) | | SSL_CTX_set_security_level | 1 | int | +| (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 0 | SSL_CTX * | +| (SSL_CTX *,int) | | SSL_CTX_set_srp_strength | 1 | int | +| (SSL_CTX *,int) | | SSL_CTX_set_trust | 0 | SSL_CTX * | +| (SSL_CTX *,int) | | SSL_CTX_set_trust | 1 | int | +| (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 0 | SSL_CTX * | +| (SSL_CTX *,int) | | SSL_CTX_set_verify_depth | 1 | int | +| (SSL_CTX *,int) | | ssl_md | 0 | SSL_CTX * | +| (SSL_CTX *,int) | | ssl_md | 1 | int | +| (SSL_CTX *,int,..(*)(..)) | | SSL_CTX_callback_ctrl | 0 | SSL_CTX * | +| (SSL_CTX *,int,..(*)(..)) | | SSL_CTX_callback_ctrl | 1 | int | +| (SSL_CTX *,int,..(*)(..)) | | SSL_CTX_callback_ctrl | 2 | ..(*)(..) | +| (SSL_CTX *,int,..(*)(..)) | | ossl_quic_ctx_callback_ctrl | 0 | SSL_CTX * | +| (SSL_CTX *,int,..(*)(..)) | | ossl_quic_ctx_callback_ctrl | 1 | int | +| (SSL_CTX *,int,..(*)(..)) | | ossl_quic_ctx_callback_ctrl | 2 | ..(*)(..) | +| (SSL_CTX *,int,..(*)(..)) | | ssl3_ctx_callback_ctrl | 0 | SSL_CTX * | +| (SSL_CTX *,int,..(*)(..)) | | ssl3_ctx_callback_ctrl | 1 | int | +| (SSL_CTX *,int,..(*)(..)) | | ssl3_ctx_callback_ctrl | 2 | ..(*)(..) | +| (SSL_CTX *,int,..(*)(..),SSL_verify_cb) | | SSL_CTX_set_verify | 0 | SSL_CTX * | +| (SSL_CTX *,int,..(*)(..),SSL_verify_cb) | | SSL_CTX_set_verify | 1 | int | +| (SSL_CTX *,int,..(*)(..),SSL_verify_cb) | | SSL_CTX_set_verify | 2 | ..(*)(..) | +| (SSL_CTX *,int,..(*)(..),SSL_verify_cb) | | SSL_CTX_set_verify | 3 | SSL_verify_cb | +| (SSL_CTX *,int,const unsigned char *) | | SSL_CTX_use_certificate_ASN1 | 0 | SSL_CTX * | +| (SSL_CTX *,int,const unsigned char *) | | SSL_CTX_use_certificate_ASN1 | 1 | int | +| (SSL_CTX *,int,const unsigned char *) | | SSL_CTX_use_certificate_ASN1 | 2 | const unsigned char * | +| (SSL_CTX *,int,long,void *) | | SSL_CTX_ctrl | 0 | SSL_CTX * | +| (SSL_CTX *,int,long,void *) | | SSL_CTX_ctrl | 1 | int | +| (SSL_CTX *,int,long,void *) | | SSL_CTX_ctrl | 2 | long | +| (SSL_CTX *,int,long,void *) | | SSL_CTX_ctrl | 3 | void * | +| (SSL_CTX *,int,long,void *) | | ossl_quic_ctx_ctrl | 0 | SSL_CTX * | +| (SSL_CTX *,int,long,void *) | | ossl_quic_ctx_ctrl | 1 | int | +| (SSL_CTX *,int,long,void *) | | ossl_quic_ctx_ctrl | 2 | long | +| (SSL_CTX *,int,long,void *) | | ossl_quic_ctx_ctrl | 3 | void * | +| (SSL_CTX *,int,long,void *) | | ssl3_ctx_ctrl | 0 | SSL_CTX * | +| (SSL_CTX *,int,long,void *) | | ssl3_ctx_ctrl | 1 | int | +| (SSL_CTX *,int,long,void *) | | ssl3_ctx_ctrl | 2 | long | +| (SSL_CTX *,int,long,void *) | | ssl3_ctx_ctrl | 3 | void * | +| (SSL_CTX *,long) | | SSL_CTX_set_timeout | 0 | SSL_CTX * | +| (SSL_CTX *,long) | | SSL_CTX_set_timeout | 1 | long | +| (SSL_CTX *,pem_password_cb *) | | SSL_CTX_set_default_passwd_cb | 0 | SSL_CTX * | +| (SSL_CTX *,pem_password_cb *) | | SSL_CTX_set_default_passwd_cb | 1 | pem_password_cb * | +| (SSL_CTX *,size_t) | | SSL_CTX_set_block_padding | 0 | SSL_CTX * | +| (SSL_CTX *,size_t) | | SSL_CTX_set_block_padding | 1 | size_t | +| (SSL_CTX *,size_t) | | SSL_CTX_set_default_read_buffer_len | 0 | SSL_CTX * | +| (SSL_CTX *,size_t) | | SSL_CTX_set_default_read_buffer_len | 1 | size_t | +| (SSL_CTX *,size_t) | | SSL_CTX_set_num_tickets | 0 | SSL_CTX * | +| (SSL_CTX *,size_t) | | SSL_CTX_set_num_tickets | 1 | size_t | +| (SSL_CTX *,size_t,size_t) | | SSL_CTX_set_block_padding_ex | 0 | SSL_CTX * | +| (SSL_CTX *,size_t,size_t) | | SSL_CTX_set_block_padding_ex | 1 | size_t | +| (SSL_CTX *,size_t,size_t) | | SSL_CTX_set_block_padding_ex | 2 | size_t | +| (SSL_CTX *,srpsrvparm *,char *,char *) | | set_up_srp_verifier_file | 0 | SSL_CTX * | +| (SSL_CTX *,srpsrvparm *,char *,char *) | | set_up_srp_verifier_file | 1 | srpsrvparm * | +| (SSL_CTX *,srpsrvparm *,char *,char *) | | set_up_srp_verifier_file | 2 | char * | +| (SSL_CTX *,srpsrvparm *,char *,char *) | | set_up_srp_verifier_file | 3 | char * | +| (SSL_CTX *,ssl_ct_validation_cb,void *) | | SSL_CTX_set_ct_validation_callback | 0 | SSL_CTX * | +| (SSL_CTX *,ssl_ct_validation_cb,void *) | | SSL_CTX_set_ct_validation_callback | 1 | ssl_ct_validation_cb | +| (SSL_CTX *,ssl_ct_validation_cb,void *) | | SSL_CTX_set_ct_validation_callback | 2 | void * | +| (SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *) | | ssl_create_cipher_list | 0 | SSL_CTX * | +| (SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *) | | ssl_create_cipher_list | 1 | stack_st_SSL_CIPHER * | +| (SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *) | | ssl_create_cipher_list | 2 | stack_st_SSL_CIPHER ** | +| (SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *) | | ssl_create_cipher_list | 3 | stack_st_SSL_CIPHER ** | +| (SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *) | | ssl_create_cipher_list | 4 | const char * | +| (SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *) | | ssl_create_cipher_list | 5 | CERT * | +| (SSL_CTX *,stack_st_X509_NAME *) | | SSL_CTX_set0_CA_list | 0 | SSL_CTX * | +| (SSL_CTX *,stack_st_X509_NAME *) | | SSL_CTX_set0_CA_list | 1 | stack_st_X509_NAME * | +| (SSL_CTX *,stack_st_X509_NAME *) | | SSL_CTX_set_client_CA_list | 0 | SSL_CTX * | +| (SSL_CTX *,stack_st_X509_NAME *) | | SSL_CTX_set_client_CA_list | 1 | stack_st_X509_NAME * | +| (SSL_CTX *,uint8_t) | | SSL_CTX_set_tlsext_max_fragment_length | 0 | SSL_CTX * | +| (SSL_CTX *,uint8_t) | | SSL_CTX_set_tlsext_max_fragment_length | 1 | uint8_t | +| (SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *) | | tls1_set_groups_list | 0 | SSL_CTX * | +| (SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *) | | tls1_set_groups_list | 1 | uint16_t ** | +| (SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *) | | tls1_set_groups_list | 2 | size_t * | +| (SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *) | | tls1_set_groups_list | 3 | uint16_t ** | +| (SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *) | | tls1_set_groups_list | 4 | size_t * | +| (SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *) | | tls1_set_groups_list | 5 | size_t ** | +| (SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *) | | tls1_set_groups_list | 6 | size_t * | +| (SSL_CTX *,uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,const char *) | | tls1_set_groups_list | 7 | const char * | +| (SSL_CTX *,uint16_t) | | tls1_group_id2name | 0 | SSL_CTX * | +| (SSL_CTX *,uint16_t) | | tls1_group_id2name | 1 | uint16_t | +| (SSL_CTX *,uint16_t) | | tls1_group_id_lookup | 0 | SSL_CTX * | +| (SSL_CTX *,uint16_t) | | tls1_group_id_lookup | 1 | uint16_t | +| (SSL_CTX *,uint32_t) | | SSL_CTX_set_max_early_data | 0 | SSL_CTX * | +| (SSL_CTX *,uint32_t) | | SSL_CTX_set_max_early_data | 1 | uint32_t | +| (SSL_CTX *,uint32_t) | | SSL_CTX_set_recv_max_early_data | 0 | SSL_CTX * | +| (SSL_CTX *,uint32_t) | | SSL_CTX_set_recv_max_early_data | 1 | uint32_t | +| (SSL_CTX *,uint64_t) | | SSL_CTX_clear_options | 0 | SSL_CTX * | +| (SSL_CTX *,uint64_t) | | SSL_CTX_clear_options | 1 | uint64_t | +| (SSL_CTX *,uint64_t) | | SSL_CTX_set_domain_flags | 0 | SSL_CTX * | +| (SSL_CTX *,uint64_t) | | SSL_CTX_set_domain_flags | 1 | uint64_t | +| (SSL_CTX *,uint64_t) | | SSL_CTX_set_options | 0 | SSL_CTX * | +| (SSL_CTX *,uint64_t) | | SSL_CTX_set_options | 1 | uint64_t | +| (SSL_CTX *,uint64_t) | | SSL_new_domain | 0 | SSL_CTX * | +| (SSL_CTX *,uint64_t) | | SSL_new_domain | 1 | uint64_t | +| (SSL_CTX *,uint64_t) | | SSL_new_listener | 0 | SSL_CTX * | +| (SSL_CTX *,uint64_t) | | SSL_new_listener | 1 | uint64_t | +| (SSL_CTX *,uint64_t) | | ossl_quic_new_domain | 0 | SSL_CTX * | +| (SSL_CTX *,uint64_t) | | ossl_quic_new_domain | 1 | uint64_t | +| (SSL_CTX *,uint64_t) | | ossl_quic_new_listener | 0 | SSL_CTX * | +| (SSL_CTX *,uint64_t) | | ossl_quic_new_listener | 1 | uint64_t | +| (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 0 | SSL_CTX * | +| (SSL_CTX *,unsigned long) | | SSL_CTX_dane_clear_flags | 1 | unsigned long | +| (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 0 | SSL_CTX * | +| (SSL_CTX *,unsigned long) | | SSL_CTX_dane_set_flags | 1 | unsigned long | +| (SSL_CTX *,void *) | | SSL_CTX_set0_security_ex_data | 0 | SSL_CTX * | +| (SSL_CTX *,void *) | | SSL_CTX_set0_security_ex_data | 1 | void * | +| (SSL_CTX *,void *) | | SSL_CTX_set_async_callback_arg | 0 | SSL_CTX * | +| (SSL_CTX *,void *) | | SSL_CTX_set_async_callback_arg | 1 | void * | +| (SSL_CTX *,void *) | | SSL_CTX_set_default_passwd_cb_userdata | 0 | SSL_CTX * | +| (SSL_CTX *,void *) | | SSL_CTX_set_default_passwd_cb_userdata | 1 | void * | +| (SSL_CTX *,void *) | | SSL_CTX_set_record_padding_callback_arg | 0 | SSL_CTX * | +| (SSL_CTX *,void *) | | SSL_CTX_set_record_padding_callback_arg | 1 | void * | +| (SSL_CTX *,void *) | | SSL_CTX_set_srp_cb_arg | 0 | SSL_CTX * | +| (SSL_CTX *,void *) | | SSL_CTX_set_srp_cb_arg | 1 | void * | +| (SSL_EXCERT **) | | load_excert | 0 | SSL_EXCERT ** | +| (SSL_HMAC *) | | ssl_hmac_get0_EVP_MAC_CTX | 0 | SSL_HMAC * | +| (SSL_HMAC *) | | ssl_hmac_get0_HMAC_CTX | 0 | SSL_HMAC * | +| (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_init | 0 | SSL_HMAC * | +| (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_init | 1 | void * | +| (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_init | 2 | size_t | +| (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_init | 3 | char * | +| (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_old_init | 0 | SSL_HMAC * | +| (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_old_init | 1 | void * | +| (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_old_init | 2 | size_t | +| (SSL_HMAC *,void *,size_t,char *) | | ssl_hmac_old_init | 3 | char * | +| (SSL_POLL_ITEM *,size_t,size_t,const timeval *,uint64_t,size_t *) | | SSL_poll | 0 | SSL_POLL_ITEM * | +| (SSL_POLL_ITEM *,size_t,size_t,const timeval *,uint64_t,size_t *) | | SSL_poll | 1 | size_t | +| (SSL_POLL_ITEM *,size_t,size_t,const timeval *,uint64_t,size_t *) | | SSL_poll | 2 | size_t | +| (SSL_POLL_ITEM *,size_t,size_t,const timeval *,uint64_t,size_t *) | | SSL_poll | 3 | const timeval * | +| (SSL_POLL_ITEM *,size_t,size_t,const timeval *,uint64_t,size_t *) | | SSL_poll | 4 | uint64_t | +| (SSL_POLL_ITEM *,size_t,size_t,const timeval *,uint64_t,size_t *) | | SSL_poll | 5 | size_t * | +| (SSL_SESSION *) | | SSL_SESSION_get0_peer | 0 | SSL_SESSION * | +| (SSL_SESSION *) | | SSL_SESSION_get0_peer_rpk | 0 | SSL_SESSION * | +| (SSL_SESSION *) | | ssl_session_calculate_timeout | 0 | SSL_SESSION * | +| (SSL_SESSION **,const unsigned char **,long) | | d2i_SSL_SESSION | 0 | SSL_SESSION ** | +| (SSL_SESSION **,const unsigned char **,long) | | d2i_SSL_SESSION | 1 | const unsigned char ** | +| (SSL_SESSION **,const unsigned char **,long) | | d2i_SSL_SESSION | 2 | long | +| (SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_SSL_SESSION_ex | 0 | SSL_SESSION ** | +| (SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_SSL_SESSION_ex | 1 | const unsigned char ** | +| (SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_SSL_SESSION_ex | 2 | long | +| (SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_SSL_SESSION_ex | 3 | OSSL_LIB_CTX * | +| (SSL_SESSION **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_SSL_SESSION_ex | 4 | const char * | +| (SSL_SESSION *,const SSL_CIPHER *) | | SSL_SESSION_set_cipher | 0 | SSL_SESSION * | +| (SSL_SESSION *,const SSL_CIPHER *) | | SSL_SESSION_set_cipher | 1 | const SSL_CIPHER * | +| (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 0 | SSL_SESSION * | +| (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | const char * | +| (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_alpn_selected | 0 | SSL_SESSION * | +| (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_alpn_selected | 1 | const unsigned char * | +| (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_alpn_selected | 2 | size_t | +| (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 0 | SSL_SESSION * | +| (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 1 | const unsigned char * | +| (SSL_SESSION *,const unsigned char *,size_t) | | SSL_SESSION_set1_master_key | 2 | size_t | +| (SSL_SESSION *,const unsigned char *,unsigned int) | | SSL_SESSION_set1_id | 0 | SSL_SESSION * | +| (SSL_SESSION *,const unsigned char *,unsigned int) | | SSL_SESSION_set1_id | 1 | const unsigned char * | +| (SSL_SESSION *,const unsigned char *,unsigned int) | | SSL_SESSION_set1_id | 2 | unsigned int | +| (SSL_SESSION *,const unsigned char *,unsigned int) | | SSL_SESSION_set1_id_context | 0 | SSL_SESSION * | +| (SSL_SESSION *,const unsigned char *,unsigned int) | | SSL_SESSION_set1_id_context | 1 | const unsigned char * | +| (SSL_SESSION *,const unsigned char *,unsigned int) | | SSL_SESSION_set1_id_context | 2 | unsigned int | +| (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 0 | SSL_SESSION * | +| (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 1 | const void * | +| (SSL_SESSION *,const void *,size_t) | | SSL_SESSION_set1_ticket_appdata | 2 | size_t | +| (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 0 | SSL_SESSION * | +| (SSL_SESSION *,int) | | SSL_SESSION_set_protocol_version | 1 | int | +| (SSL_SESSION *,long) | | SSL_SESSION_set_time | 0 | SSL_SESSION * | +| (SSL_SESSION *,long) | | SSL_SESSION_set_time | 1 | long | +| (SSL_SESSION *,long) | | SSL_SESSION_set_timeout | 0 | SSL_SESSION * | +| (SSL_SESSION *,long) | | SSL_SESSION_set_timeout | 1 | long | +| (SSL_SESSION *,time_t) | | SSL_SESSION_set_time_ex | 0 | SSL_SESSION * | +| (SSL_SESSION *,time_t) | | SSL_SESSION_set_time_ex | 1 | time_t | +| (SSL_SESSION *,uint32_t) | | SSL_SESSION_set_max_early_data | 0 | SSL_SESSION * | +| (SSL_SESSION *,uint32_t) | | SSL_SESSION_set_max_early_data | 1 | uint32_t | +| (SSL_SESSION *,void **,size_t *) | | SSL_SESSION_get0_ticket_appdata | 0 | SSL_SESSION * | +| (SSL_SESSION *,void **,size_t *) | | SSL_SESSION_get0_ticket_appdata | 1 | void ** | +| (SSL_SESSION *,void **,size_t *) | | SSL_SESSION_get0_ticket_appdata | 2 | size_t * | +| (STANZA *,const char *) | | test_start_file | 0 | STANZA * | +| (STANZA *,const char *) | | test_start_file | 1 | const char * | +| (SXNET *) | | SXNET_free | 0 | SXNET * | +| (SXNET **,ASN1_INTEGER *,const char *,int) | | SXNET_add_id_INTEGER | 0 | SXNET ** | +| (SXNET **,ASN1_INTEGER *,const char *,int) | | SXNET_add_id_INTEGER | 1 | ASN1_INTEGER * | +| (SXNET **,ASN1_INTEGER *,const char *,int) | | SXNET_add_id_INTEGER | 2 | const char * | +| (SXNET **,ASN1_INTEGER *,const char *,int) | | SXNET_add_id_INTEGER | 3 | int | +| (SXNET **,const char *,const char *,int) | | SXNET_add_id_asc | 0 | SXNET ** | +| (SXNET **,const char *,const char *,int) | | SXNET_add_id_asc | 1 | const char * | +| (SXNET **,const char *,const char *,int) | | SXNET_add_id_asc | 2 | const char * | +| (SXNET **,const char *,const char *,int) | | SXNET_add_id_asc | 3 | int | +| (SXNET **,const unsigned char **,long) | | d2i_SXNET | 0 | SXNET ** | +| (SXNET **,const unsigned char **,long) | | d2i_SXNET | 1 | const unsigned char ** | +| (SXNET **,const unsigned char **,long) | | d2i_SXNET | 2 | long | +| (SXNET **,unsigned long,const char *,int) | | SXNET_add_id_ulong | 0 | SXNET ** | +| (SXNET **,unsigned long,const char *,int) | | SXNET_add_id_ulong | 1 | unsigned long | +| (SXNET **,unsigned long,const char *,int) | | SXNET_add_id_ulong | 2 | const char * | +| (SXNET **,unsigned long,const char *,int) | | SXNET_add_id_ulong | 3 | int | +| (SXNETID *) | | SXNETID_free | 0 | SXNETID * | +| (SXNETID **,const unsigned char **,long) | | d2i_SXNETID | 0 | SXNETID ** | +| (SXNETID **,const unsigned char **,long) | | d2i_SXNETID | 1 | const unsigned char ** | +| (SXNETID **,const unsigned char **,long) | | d2i_SXNETID | 2 | long | +| (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 0 | StrAccum * | +| (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 1 | sqlite3_str * | +| (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 2 | const char * | +| (StrAccum *,sqlite3_str *,const char *,...) | | sqlite3_str_appendf | 3 | ... | +| (TLS_FEATURE *) | | TLS_FEATURE_free | 0 | TLS_FEATURE * | +| (TLS_RL_RECORD *,const unsigned char *) | | ossl_tls_rl_record_set_seq_num | 0 | TLS_RL_RECORD * | +| (TLS_RL_RECORD *,const unsigned char *) | | ossl_tls_rl_record_set_seq_num | 1 | const unsigned char * | +| (TS_ACCURACY *) | | TS_ACCURACY_free | 0 | TS_ACCURACY * | +| (TS_ACCURACY **,const unsigned char **,long) | | d2i_TS_ACCURACY | 0 | TS_ACCURACY ** | +| (TS_ACCURACY **,const unsigned char **,long) | | d2i_TS_ACCURACY | 1 | const unsigned char ** | +| (TS_ACCURACY **,const unsigned char **,long) | | d2i_TS_ACCURACY | 2 | long | +| (TS_ACCURACY *,const ASN1_INTEGER *) | | TS_ACCURACY_set_micros | 0 | TS_ACCURACY * | +| (TS_ACCURACY *,const ASN1_INTEGER *) | | TS_ACCURACY_set_micros | 1 | const ASN1_INTEGER * | +| (TS_ACCURACY *,const ASN1_INTEGER *) | | TS_ACCURACY_set_millis | 0 | TS_ACCURACY * | +| (TS_ACCURACY *,const ASN1_INTEGER *) | | TS_ACCURACY_set_millis | 1 | const ASN1_INTEGER * | +| (TS_ACCURACY *,const ASN1_INTEGER *) | | TS_ACCURACY_set_seconds | 0 | TS_ACCURACY * | +| (TS_ACCURACY *,const ASN1_INTEGER *) | | TS_ACCURACY_set_seconds | 1 | const ASN1_INTEGER * | +| (TS_MSG_IMPRINT *) | | TS_MSG_IMPRINT_free | 0 | TS_MSG_IMPRINT * | +| (TS_MSG_IMPRINT *) | | TS_MSG_IMPRINT_get_algo | 0 | TS_MSG_IMPRINT * | +| (TS_MSG_IMPRINT *) | | TS_MSG_IMPRINT_get_msg | 0 | TS_MSG_IMPRINT * | +| (TS_MSG_IMPRINT **,const unsigned char **,long) | | d2i_TS_MSG_IMPRINT | 0 | TS_MSG_IMPRINT ** | +| (TS_MSG_IMPRINT **,const unsigned char **,long) | | d2i_TS_MSG_IMPRINT | 1 | const unsigned char ** | +| (TS_MSG_IMPRINT **,const unsigned char **,long) | | d2i_TS_MSG_IMPRINT | 2 | long | +| (TS_MSG_IMPRINT *,X509_ALGOR *) | | TS_MSG_IMPRINT_set_algo | 0 | TS_MSG_IMPRINT * | +| (TS_MSG_IMPRINT *,X509_ALGOR *) | | TS_MSG_IMPRINT_set_algo | 1 | X509_ALGOR * | +| (TS_MSG_IMPRINT *,unsigned char *,int) | | TS_MSG_IMPRINT_set_msg | 0 | TS_MSG_IMPRINT * | +| (TS_MSG_IMPRINT *,unsigned char *,int) | | TS_MSG_IMPRINT_set_msg | 1 | unsigned char * | +| (TS_MSG_IMPRINT *,unsigned char *,int) | | TS_MSG_IMPRINT_set_msg | 2 | int | +| (TS_REQ *) | | TS_REQ_free | 0 | TS_REQ * | +| (TS_REQ *) | | TS_REQ_get_ext_count | 0 | TS_REQ * | +| (TS_REQ *) | | TS_REQ_get_exts | 0 | TS_REQ * | +| (TS_REQ *) | | TS_REQ_get_msg_imprint | 0 | TS_REQ * | +| (TS_REQ *) | | TS_REQ_get_policy_id | 0 | TS_REQ * | +| (TS_REQ **,const unsigned char **,long) | | d2i_TS_REQ | 0 | TS_REQ ** | +| (TS_REQ **,const unsigned char **,long) | | d2i_TS_REQ | 1 | const unsigned char ** | +| (TS_REQ **,const unsigned char **,long) | | d2i_TS_REQ | 2 | long | +| (TS_REQ *,TS_MSG_IMPRINT *) | | TS_REQ_set_msg_imprint | 0 | TS_REQ * | +| (TS_REQ *,TS_MSG_IMPRINT *) | | TS_REQ_set_msg_imprint | 1 | TS_MSG_IMPRINT * | +| (TS_REQ *,TS_VERIFY_CTX *) | | TS_REQ_to_TS_VERIFY_CTX | 0 | TS_REQ * | +| (TS_REQ *,TS_VERIFY_CTX *) | | TS_REQ_to_TS_VERIFY_CTX | 1 | TS_VERIFY_CTX * | +| (TS_REQ *,X509_EXTENSION *,int) | | TS_REQ_add_ext | 0 | TS_REQ * | +| (TS_REQ *,X509_EXTENSION *,int) | | TS_REQ_add_ext | 1 | X509_EXTENSION * | +| (TS_REQ *,X509_EXTENSION *,int) | | TS_REQ_add_ext | 2 | int | +| (TS_REQ *,const ASN1_INTEGER *) | | TS_REQ_set_nonce | 0 | TS_REQ * | +| (TS_REQ *,const ASN1_INTEGER *) | | TS_REQ_set_nonce | 1 | const ASN1_INTEGER * | +| (TS_REQ *,const ASN1_OBJECT *) | | TS_REQ_set_policy_id | 0 | TS_REQ * | +| (TS_REQ *,const ASN1_OBJECT *) | | TS_REQ_set_policy_id | 1 | const ASN1_OBJECT * | +| (TS_REQ *,const ASN1_OBJECT *,int) | | TS_REQ_get_ext_by_OBJ | 0 | TS_REQ * | +| (TS_REQ *,const ASN1_OBJECT *,int) | | TS_REQ_get_ext_by_OBJ | 1 | const ASN1_OBJECT * | +| (TS_REQ *,const ASN1_OBJECT *,int) | | TS_REQ_get_ext_by_OBJ | 2 | int | +| (TS_REQ *,int) | | TS_REQ_delete_ext | 0 | TS_REQ * | +| (TS_REQ *,int) | | TS_REQ_delete_ext | 1 | int | +| (TS_REQ *,int) | | TS_REQ_get_ext | 0 | TS_REQ * | +| (TS_REQ *,int) | | TS_REQ_get_ext | 1 | int | +| (TS_REQ *,int,int *,int *) | | TS_REQ_get_ext_d2i | 0 | TS_REQ * | +| (TS_REQ *,int,int *,int *) | | TS_REQ_get_ext_d2i | 1 | int | +| (TS_REQ *,int,int *,int *) | | TS_REQ_get_ext_d2i | 2 | int * | +| (TS_REQ *,int,int *,int *) | | TS_REQ_get_ext_d2i | 3 | int * | +| (TS_REQ *,int,int) | | TS_REQ_get_ext_by_NID | 0 | TS_REQ * | +| (TS_REQ *,int,int) | | TS_REQ_get_ext_by_NID | 1 | int | +| (TS_REQ *,int,int) | | TS_REQ_get_ext_by_NID | 2 | int | +| (TS_REQ *,int,int) | | TS_REQ_get_ext_by_critical | 0 | TS_REQ * | +| (TS_REQ *,int,int) | | TS_REQ_get_ext_by_critical | 1 | int | +| (TS_REQ *,int,int) | | TS_REQ_get_ext_by_critical | 2 | int | +| (TS_REQ *,long) | | TS_REQ_set_version | 0 | TS_REQ * | +| (TS_REQ *,long) | | TS_REQ_set_version | 1 | long | +| (TS_RESP *) | | TS_RESP_free | 0 | TS_RESP * | +| (TS_RESP *) | | TS_RESP_get_status_info | 0 | TS_RESP * | +| (TS_RESP *) | | TS_RESP_get_token | 0 | TS_RESP * | +| (TS_RESP *) | | TS_RESP_get_tst_info | 0 | TS_RESP * | +| (TS_RESP **,const unsigned char **,long) | | d2i_TS_RESP | 0 | TS_RESP ** | +| (TS_RESP **,const unsigned char **,long) | | d2i_TS_RESP | 1 | const unsigned char ** | +| (TS_RESP **,const unsigned char **,long) | | d2i_TS_RESP | 2 | long | +| (TS_RESP *,PKCS7 *,TS_TST_INFO *) | | TS_RESP_set_tst_info | 0 | TS_RESP * | +| (TS_RESP *,PKCS7 *,TS_TST_INFO *) | | TS_RESP_set_tst_info | 1 | PKCS7 * | +| (TS_RESP *,PKCS7 *,TS_TST_INFO *) | | TS_RESP_set_tst_info | 2 | TS_TST_INFO * | +| (TS_RESP *,TS_STATUS_INFO *) | | TS_RESP_set_status_info | 0 | TS_RESP * | +| (TS_RESP *,TS_STATUS_INFO *) | | TS_RESP_set_status_info | 1 | TS_STATUS_INFO * | +| (TS_RESP_CTX *) | | TS_RESP_CTX_get_request | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *) | | TS_RESP_CTX_get_tst_info | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,BIO *) | | TS_RESP_create_response | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,BIO *) | | TS_RESP_create_response | 1 | BIO * | +| (TS_RESP_CTX *,EVP_PKEY *) | | TS_RESP_CTX_set_signer_key | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,EVP_PKEY *) | | TS_RESP_CTX_set_signer_key | 1 | EVP_PKEY * | +| (TS_RESP_CTX *,TS_extension_cb,void *) | | TS_RESP_CTX_set_extension_cb | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,TS_extension_cb,void *) | | TS_RESP_CTX_set_extension_cb | 1 | TS_extension_cb | +| (TS_RESP_CTX *,TS_extension_cb,void *) | | TS_RESP_CTX_set_extension_cb | 2 | void * | +| (TS_RESP_CTX *,TS_serial_cb,void *) | | TS_RESP_CTX_set_serial_cb | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,TS_serial_cb,void *) | | TS_RESP_CTX_set_serial_cb | 1 | TS_serial_cb | +| (TS_RESP_CTX *,TS_serial_cb,void *) | | TS_RESP_CTX_set_serial_cb | 2 | void * | +| (TS_RESP_CTX *,TS_time_cb,void *) | | TS_RESP_CTX_set_time_cb | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,TS_time_cb,void *) | | TS_RESP_CTX_set_time_cb | 1 | TS_time_cb | +| (TS_RESP_CTX *,TS_time_cb,void *) | | TS_RESP_CTX_set_time_cb | 2 | void * | +| (TS_RESP_CTX *,X509 *) | | TS_RESP_CTX_set_signer_cert | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,X509 *) | | TS_RESP_CTX_set_signer_cert | 1 | X509 * | +| (TS_RESP_CTX *,const ASN1_OBJECT *) | | TS_RESP_CTX_add_policy | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,const ASN1_OBJECT *) | | TS_RESP_CTX_add_policy | 1 | const ASN1_OBJECT * | +| (TS_RESP_CTX *,const ASN1_OBJECT *) | | TS_RESP_CTX_set_def_policy | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,const ASN1_OBJECT *) | | TS_RESP_CTX_set_def_policy | 1 | const ASN1_OBJECT * | +| (TS_RESP_CTX *,const EVP_MD *) | | TS_RESP_CTX_add_md | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,const EVP_MD *) | | TS_RESP_CTX_add_md | 1 | const EVP_MD * | +| (TS_RESP_CTX *,const EVP_MD *) | | TS_RESP_CTX_set_ess_cert_id_digest | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,const EVP_MD *) | | TS_RESP_CTX_set_ess_cert_id_digest | 1 | const EVP_MD * | +| (TS_RESP_CTX *,const EVP_MD *) | | TS_RESP_CTX_set_signer_digest | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,const EVP_MD *) | | TS_RESP_CTX_set_signer_digest | 1 | const EVP_MD * | +| (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,int) | | TS_RESP_CTX_add_flags | 1 | int | +| (TS_RESP_CTX *,int,int,int) | | TS_RESP_CTX_set_accuracy | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,int,int,int) | | TS_RESP_CTX_set_accuracy | 1 | int | +| (TS_RESP_CTX *,int,int,int) | | TS_RESP_CTX_set_accuracy | 2 | int | +| (TS_RESP_CTX *,int,int,int) | | TS_RESP_CTX_set_accuracy | 3 | int | +| (TS_RESP_CTX *,stack_st_X509 *) | | TS_RESP_CTX_set_certs | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,stack_st_X509 *) | | TS_RESP_CTX_set_certs | 1 | stack_st_X509 * | +| (TS_RESP_CTX *,unsigned int) | | TS_RESP_CTX_set_clock_precision_digits | 0 | TS_RESP_CTX * | +| (TS_RESP_CTX *,unsigned int) | | TS_RESP_CTX_set_clock_precision_digits | 1 | unsigned int | +| (TS_STATUS_INFO *) | | TS_STATUS_INFO_free | 0 | TS_STATUS_INFO * | +| (TS_STATUS_INFO **,const unsigned char **,long) | | d2i_TS_STATUS_INFO | 0 | TS_STATUS_INFO ** | +| (TS_STATUS_INFO **,const unsigned char **,long) | | d2i_TS_STATUS_INFO | 1 | const unsigned char ** | +| (TS_STATUS_INFO **,const unsigned char **,long) | | d2i_TS_STATUS_INFO | 2 | long | +| (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 0 | TS_STATUS_INFO * | +| (TS_STATUS_INFO *,int) | | TS_STATUS_INFO_set_status | 1 | int | +| (TS_TST_INFO *) | | TS_TST_INFO_free | 0 | TS_TST_INFO * | +| (TS_TST_INFO *) | | TS_TST_INFO_get_accuracy | 0 | TS_TST_INFO * | +| (TS_TST_INFO *) | | TS_TST_INFO_get_ext_count | 0 | TS_TST_INFO * | +| (TS_TST_INFO *) | | TS_TST_INFO_get_exts | 0 | TS_TST_INFO * | +| (TS_TST_INFO *) | | TS_TST_INFO_get_msg_imprint | 0 | TS_TST_INFO * | +| (TS_TST_INFO *) | | TS_TST_INFO_get_policy_id | 0 | TS_TST_INFO * | +| (TS_TST_INFO *) | | TS_TST_INFO_get_tsa | 0 | TS_TST_INFO * | +| (TS_TST_INFO **,const unsigned char **,long) | | d2i_TS_TST_INFO | 0 | TS_TST_INFO ** | +| (TS_TST_INFO **,const unsigned char **,long) | | d2i_TS_TST_INFO | 1 | const unsigned char ** | +| (TS_TST_INFO **,const unsigned char **,long) | | d2i_TS_TST_INFO | 2 | long | +| (TS_TST_INFO *,ASN1_OBJECT *) | | TS_TST_INFO_set_policy_id | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,ASN1_OBJECT *) | | TS_TST_INFO_set_policy_id | 1 | ASN1_OBJECT * | +| (TS_TST_INFO *,GENERAL_NAME *) | | TS_TST_INFO_set_tsa | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,GENERAL_NAME *) | | TS_TST_INFO_set_tsa | 1 | GENERAL_NAME * | +| (TS_TST_INFO *,TS_ACCURACY *) | | TS_TST_INFO_set_accuracy | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,TS_ACCURACY *) | | TS_TST_INFO_set_accuracy | 1 | TS_ACCURACY * | +| (TS_TST_INFO *,TS_MSG_IMPRINT *) | | TS_TST_INFO_set_msg_imprint | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,TS_MSG_IMPRINT *) | | TS_TST_INFO_set_msg_imprint | 1 | TS_MSG_IMPRINT * | +| (TS_TST_INFO *,X509_EXTENSION *,int) | | TS_TST_INFO_add_ext | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,X509_EXTENSION *,int) | | TS_TST_INFO_add_ext | 1 | X509_EXTENSION * | +| (TS_TST_INFO *,X509_EXTENSION *,int) | | TS_TST_INFO_add_ext | 2 | int | +| (TS_TST_INFO *,const ASN1_GENERALIZEDTIME *) | | TS_TST_INFO_set_time | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,const ASN1_GENERALIZEDTIME *) | | TS_TST_INFO_set_time | 1 | const ASN1_GENERALIZEDTIME * | +| (TS_TST_INFO *,const ASN1_INTEGER *) | | TS_TST_INFO_set_nonce | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,const ASN1_INTEGER *) | | TS_TST_INFO_set_nonce | 1 | const ASN1_INTEGER * | +| (TS_TST_INFO *,const ASN1_INTEGER *) | | TS_TST_INFO_set_serial | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,const ASN1_INTEGER *) | | TS_TST_INFO_set_serial | 1 | const ASN1_INTEGER * | +| (TS_TST_INFO *,const ASN1_OBJECT *,int) | | TS_TST_INFO_get_ext_by_OBJ | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,const ASN1_OBJECT *,int) | | TS_TST_INFO_get_ext_by_OBJ | 1 | const ASN1_OBJECT * | +| (TS_TST_INFO *,const ASN1_OBJECT *,int) | | TS_TST_INFO_get_ext_by_OBJ | 2 | int | +| (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,int) | | TS_TST_INFO_delete_ext | 1 | int | +| (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,int) | | TS_TST_INFO_get_ext | 1 | int | +| (TS_TST_INFO *,int,int *,int *) | | TS_TST_INFO_get_ext_d2i | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,int,int *,int *) | | TS_TST_INFO_get_ext_d2i | 1 | int | +| (TS_TST_INFO *,int,int *,int *) | | TS_TST_INFO_get_ext_d2i | 2 | int * | +| (TS_TST_INFO *,int,int *,int *) | | TS_TST_INFO_get_ext_d2i | 3 | int * | +| (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_NID | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_NID | 1 | int | +| (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_NID | 2 | int | +| (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_critical | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_critical | 1 | int | +| (TS_TST_INFO *,int,int) | | TS_TST_INFO_get_ext_by_critical | 2 | int | +| (TS_TST_INFO *,long) | | TS_TST_INFO_set_version | 0 | TS_TST_INFO * | +| (TS_TST_INFO *,long) | | TS_TST_INFO_set_version | 1 | long | +| (TS_VERIFY_CTX *,BIO *) | | TS_VERIFY_CTX_set0_data | 0 | TS_VERIFY_CTX * | +| (TS_VERIFY_CTX *,BIO *) | | TS_VERIFY_CTX_set0_data | 1 | BIO * | +| (TS_VERIFY_CTX *,BIO *) | | TS_VERIFY_CTX_set_data | 0 | TS_VERIFY_CTX * | +| (TS_VERIFY_CTX *,BIO *) | | TS_VERIFY_CTX_set_data | 1 | BIO * | +| (TS_VERIFY_CTX *,X509_STORE *) | | TS_VERIFY_CTX_set0_store | 0 | TS_VERIFY_CTX * | +| (TS_VERIFY_CTX *,X509_STORE *) | | TS_VERIFY_CTX_set0_store | 1 | X509_STORE * | +| (TS_VERIFY_CTX *,X509_STORE *) | | TS_VERIFY_CTX_set_store | 0 | TS_VERIFY_CTX * | +| (TS_VERIFY_CTX *,X509_STORE *) | | TS_VERIFY_CTX_set_store | 1 | X509_STORE * | +| (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 0 | TS_VERIFY_CTX * | +| (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_add_flags | 1 | int | +| (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 0 | TS_VERIFY_CTX * | +| (TS_VERIFY_CTX *,int) | | TS_VERIFY_CTX_set_flags | 1 | int | +| (TS_VERIFY_CTX *,stack_st_X509 *) | | TS_VERIFY_CTX_set0_certs | 0 | TS_VERIFY_CTX * | +| (TS_VERIFY_CTX *,stack_st_X509 *) | | TS_VERIFY_CTX_set0_certs | 1 | stack_st_X509 * | +| (TS_VERIFY_CTX *,stack_st_X509 *) | | TS_VERIFY_CTX_set_certs | 0 | TS_VERIFY_CTX * | +| (TS_VERIFY_CTX *,stack_st_X509 *) | | TS_VERIFY_CTX_set_certs | 1 | stack_st_X509 * | +| (TS_VERIFY_CTX *,unsigned char *,long) | | TS_VERIFY_CTX_set0_imprint | 0 | TS_VERIFY_CTX * | +| (TS_VERIFY_CTX *,unsigned char *,long) | | TS_VERIFY_CTX_set0_imprint | 1 | unsigned char * | +| (TS_VERIFY_CTX *,unsigned char *,long) | | TS_VERIFY_CTX_set0_imprint | 2 | long | +| (TS_VERIFY_CTX *,unsigned char *,long) | | TS_VERIFY_CTX_set_imprint | 0 | TS_VERIFY_CTX * | +| (TS_VERIFY_CTX *,unsigned char *,long) | | TS_VERIFY_CTX_set_imprint | 1 | unsigned char * | +| (TS_VERIFY_CTX *,unsigned char *,long) | | TS_VERIFY_CTX_set_imprint | 2 | long | +| (TXT_DB *,OPENSSL_STRING *) | | TXT_DB_insert | 0 | TXT_DB * | +| (TXT_DB *,OPENSSL_STRING *) | | TXT_DB_insert | 1 | OPENSSL_STRING * | +| (TXT_DB *,int,..(*)(..),OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC) | | TXT_DB_create_index | 0 | TXT_DB * | +| (TXT_DB *,int,..(*)(..),OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC) | | TXT_DB_create_index | 1 | int | +| (TXT_DB *,int,..(*)(..),OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC) | | TXT_DB_create_index | 2 | ..(*)(..) | +| (TXT_DB *,int,..(*)(..),OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC) | | TXT_DB_create_index | 3 | OPENSSL_LH_HASHFUNC | +| (TXT_DB *,int,..(*)(..),OPENSSL_LH_HASHFUNC,OPENSSL_LH_COMPFUNC) | | TXT_DB_create_index | 4 | OPENSSL_LH_COMPFUNC | +| (UI *) | | UI_get0_user_data | 0 | UI * | +| (UI *) | | UI_get_method | 0 | UI * | +| (UI *,UI_STRING *,const char *) | | UI_set_result | 0 | UI * | +| (UI *,UI_STRING *,const char *) | | UI_set_result | 1 | UI_STRING * | +| (UI *,UI_STRING *,const char *) | | UI_set_result | 2 | const char * | +| (UI *,UI_STRING *,const char *,int) | | UI_set_result_ex | 0 | UI * | +| (UI *,UI_STRING *,const char *,int) | | UI_set_result_ex | 1 | UI_STRING * | +| (UI *,UI_STRING *,const char *,int) | | UI_set_result_ex | 2 | const char * | +| (UI *,UI_STRING *,const char *,int) | | UI_set_result_ex | 3 | int | +| (UI *,const UI_METHOD *) | | UI_set_method | 0 | UI * | +| (UI *,const UI_METHOD *) | | UI_set_method | 1 | const UI_METHOD * | +| (UI *,const char *) | | UI_add_error_string | 0 | UI * | +| (UI *,const char *) | | UI_add_error_string | 1 | const char * | +| (UI *,const char *) | | UI_add_info_string | 0 | UI * | +| (UI *,const char *) | | UI_add_info_string | 1 | const char * | +| (UI *,const char *) | | UI_dup_error_string | 0 | UI * | +| (UI *,const char *) | | UI_dup_error_string | 1 | const char * | +| (UI *,const char *) | | UI_dup_info_string | 0 | UI * | +| (UI *,const char *) | | UI_dup_info_string | 1 | const char * | +| (UI *,const char *,const char *) | | UI_construct_prompt | 0 | UI * | +| (UI *,const char *,const char *) | | UI_construct_prompt | 1 | const char * | +| (UI *,const char *,const char *) | | UI_construct_prompt | 2 | const char * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_add_input_boolean | 0 | UI * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_add_input_boolean | 1 | const char * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_add_input_boolean | 2 | const char * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_add_input_boolean | 3 | const char * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_add_input_boolean | 4 | const char * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_add_input_boolean | 5 | int | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_add_input_boolean | 6 | char * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_dup_input_boolean | 0 | UI * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_dup_input_boolean | 1 | const char * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_dup_input_boolean | 2 | const char * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_dup_input_boolean | 3 | const char * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_dup_input_boolean | 4 | const char * | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_dup_input_boolean | 5 | int | +| (UI *,const char *,const char *,const char *,const char *,int,char *) | | UI_dup_input_boolean | 6 | char * | +| (UI *,const char *,int,char *,int,int) | | UI_add_input_string | 0 | UI * | +| (UI *,const char *,int,char *,int,int) | | UI_add_input_string | 1 | const char * | +| (UI *,const char *,int,char *,int,int) | | UI_add_input_string | 2 | int | +| (UI *,const char *,int,char *,int,int) | | UI_add_input_string | 3 | char * | +| (UI *,const char *,int,char *,int,int) | | UI_add_input_string | 4 | int | +| (UI *,const char *,int,char *,int,int) | | UI_add_input_string | 5 | int | +| (UI *,const char *,int,char *,int,int) | | UI_dup_input_string | 0 | UI * | +| (UI *,const char *,int,char *,int,int) | | UI_dup_input_string | 1 | const char * | +| (UI *,const char *,int,char *,int,int) | | UI_dup_input_string | 2 | int | +| (UI *,const char *,int,char *,int,int) | | UI_dup_input_string | 3 | char * | +| (UI *,const char *,int,char *,int,int) | | UI_dup_input_string | 4 | int | +| (UI *,const char *,int,char *,int,int) | | UI_dup_input_string | 5 | int | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_add_verify_string | 0 | UI * | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_add_verify_string | 1 | const char * | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_add_verify_string | 2 | int | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_add_verify_string | 3 | char * | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_add_verify_string | 4 | int | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_add_verify_string | 5 | int | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_add_verify_string | 6 | const char * | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_dup_verify_string | 0 | UI * | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_dup_verify_string | 1 | const char * | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_dup_verify_string | 2 | int | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_dup_verify_string | 3 | char * | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_dup_verify_string | 4 | int | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_dup_verify_string | 5 | int | +| (UI *,const char *,int,char *,int,int,const char *) | | UI_dup_verify_string | 6 | const char * | +| (UI *,void *) | | UI_add_user_data | 0 | UI * | +| (UI *,void *) | | UI_add_user_data | 1 | void * | | (UINT) | CComBSTR | LoadString | 0 | UINT | | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | UINT | | (UINT,...) | CStringT | AppendFormat | 0 | UINT | @@ -710,6 +21146,784 @@ getSignatureParameterName | (UINT,...) | CStringT | Format | 1 | ... | | (UINT,...) | CStringT | FormatMessage | 0 | UINT | | (UINT,...) | CStringT | FormatMessage | 1 | ... | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_closer | 0 | UI_METHOD * | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_closer | 1 | ..(*)(..) | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_flusher | 0 | UI_METHOD * | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_flusher | 1 | ..(*)(..) | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_opener | 0 | UI_METHOD * | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_opener | 1 | ..(*)(..) | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_prompt_constructor | 0 | UI_METHOD * | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_prompt_constructor | 1 | ..(*)(..) | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_reader | 0 | UI_METHOD * | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_reader | 1 | ..(*)(..) | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_writer | 0 | UI_METHOD * | +| (UI_METHOD *,..(*)(..)) | | UI_method_set_writer | 1 | ..(*)(..) | +| (UI_METHOD *,..(*)(..),..(*)(..)) | | UI_method_set_data_duplicator | 0 | UI_METHOD * | +| (UI_METHOD *,..(*)(..),..(*)(..)) | | UI_method_set_data_duplicator | 1 | ..(*)(..) | +| (UI_METHOD *,..(*)(..),..(*)(..)) | | UI_method_set_data_duplicator | 2 | ..(*)(..) | +| (UI_STRING *) | | UI_get0_output_string | 0 | UI_STRING * | +| (UI_STRING *) | | UI_get0_result_string | 0 | UI_STRING * | +| (UI_STRING *) | | UI_get_input_flags | 0 | UI_STRING * | +| (UI_STRING *) | | UI_get_result_string_length | 0 | UI_STRING * | +| (UI_STRING *) | | UI_get_string_type | 0 | UI_STRING * | +| (USERNOTICE *) | | USERNOTICE_free | 0 | USERNOTICE * | +| (USERNOTICE **,const unsigned char **,long) | | d2i_USERNOTICE | 0 | USERNOTICE ** | +| (USERNOTICE **,const unsigned char **,long) | | d2i_USERNOTICE | 1 | const unsigned char ** | +| (USERNOTICE **,const unsigned char **,long) | | d2i_USERNOTICE | 2 | long | +| (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 0 | WHIRLPOOL_CTX * | +| (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 1 | const void * | +| (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_BitUpdate | 2 | size_t | +| (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 0 | WHIRLPOOL_CTX * | +| (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 1 | const void * | +| (WHIRLPOOL_CTX *,const void *,size_t) | | WHIRLPOOL_Update | 2 | size_t | +| (WPACKET *) | | WPACKET_get_curr | 0 | WPACKET * | +| (WPACKET *) | | WPACKET_start_sub_packet | 0 | WPACKET * | +| (WPACKET *,BUF_MEM *) | | WPACKET_init | 0 | WPACKET * | +| (WPACKET *,BUF_MEM *) | | WPACKET_init | 1 | BUF_MEM * | +| (WPACKET *,BUF_MEM *,size_t) | | WPACKET_init_len | 0 | WPACKET * | +| (WPACKET *,BUF_MEM *,size_t) | | WPACKET_init_len | 1 | BUF_MEM * | +| (WPACKET *,BUF_MEM *,size_t) | | WPACKET_init_len | 2 | size_t | +| (WPACKET *,const BIGNUM *) | | ossl_encode_der_integer | 0 | WPACKET * | +| (WPACKET *,const BIGNUM *) | | ossl_encode_der_integer | 1 | const BIGNUM * | +| (WPACKET *,const BIGNUM *,const BIGNUM *) | | ossl_encode_der_dsa_sig | 0 | WPACKET * | +| (WPACKET *,const BIGNUM *,const BIGNUM *) | | ossl_encode_der_dsa_sig | 1 | const BIGNUM * | +| (WPACKET *,const BIGNUM *,const BIGNUM *) | | ossl_encode_der_dsa_sig | 2 | const BIGNUM * | +| (WPACKET *,const OSSL_QUIC_FRAME_CONN_CLOSE *) | | ossl_quic_wire_encode_frame_conn_close | 0 | WPACKET * | +| (WPACKET *,const OSSL_QUIC_FRAME_CONN_CLOSE *) | | ossl_quic_wire_encode_frame_conn_close | 1 | const OSSL_QUIC_FRAME_CONN_CLOSE * | +| (WPACKET *,const OSSL_QUIC_FRAME_CRYPTO *) | | ossl_quic_wire_encode_frame_crypto | 0 | WPACKET * | +| (WPACKET *,const OSSL_QUIC_FRAME_CRYPTO *) | | ossl_quic_wire_encode_frame_crypto | 1 | const OSSL_QUIC_FRAME_CRYPTO * | +| (WPACKET *,const OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_wire_encode_frame_new_conn_id | 0 | WPACKET * | +| (WPACKET *,const OSSL_QUIC_FRAME_NEW_CONN_ID *) | | ossl_quic_wire_encode_frame_new_conn_id | 1 | const OSSL_QUIC_FRAME_NEW_CONN_ID * | +| (WPACKET *,const OSSL_QUIC_FRAME_STREAM *) | | ossl_quic_wire_encode_frame_stream | 0 | WPACKET * | +| (WPACKET *,const OSSL_QUIC_FRAME_STREAM *) | | ossl_quic_wire_encode_frame_stream | 1 | const OSSL_QUIC_FRAME_STREAM * | +| (WPACKET *,const unsigned char *,size_t) | | ossl_quic_wire_encode_frame_new_token | 0 | WPACKET * | +| (WPACKET *,const unsigned char *,size_t) | | ossl_quic_wire_encode_frame_new_token | 1 | const unsigned char * | +| (WPACKET *,const unsigned char *,size_t) | | ossl_quic_wire_encode_frame_new_token | 2 | size_t | +| (WPACKET *,const void *,size_t) | | WPACKET_memcpy | 0 | WPACKET * | +| (WPACKET *,const void *,size_t) | | WPACKET_memcpy | 1 | const void * | +| (WPACKET *,const void *,size_t) | | WPACKET_memcpy | 2 | size_t | +| (WPACKET *,const void *,size_t,size_t) | | WPACKET_sub_memcpy__ | 0 | WPACKET * | +| (WPACKET *,const void *,size_t,size_t) | | WPACKET_sub_memcpy__ | 1 | const void * | +| (WPACKET *,const void *,size_t,size_t) | | WPACKET_sub_memcpy__ | 2 | size_t | +| (WPACKET *,const void *,size_t,size_t) | | WPACKET_sub_memcpy__ | 3 | size_t | +| (WPACKET *,int) | | ossl_DER_w_begin_sequence | 0 | WPACKET * | +| (WPACKET *,int) | | ossl_DER_w_begin_sequence | 1 | int | +| (WPACKET *,int,const BIGNUM *) | | ossl_DER_w_bn | 0 | WPACKET * | +| (WPACKET *,int,const BIGNUM *) | | ossl_DER_w_bn | 1 | int | +| (WPACKET *,int,const BIGNUM *) | | ossl_DER_w_bn | 2 | const BIGNUM * | +| (WPACKET *,int,const unsigned char *,size_t) | | ossl_DER_w_octet_string | 0 | WPACKET * | +| (WPACKET *,int,const unsigned char *,size_t) | | ossl_DER_w_octet_string | 1 | int | +| (WPACKET *,int,const unsigned char *,size_t) | | ossl_DER_w_octet_string | 2 | const unsigned char * | +| (WPACKET *,int,const unsigned char *,size_t) | | ossl_DER_w_octet_string | 3 | size_t | +| (WPACKET *,int,const unsigned char *,size_t) | | ossl_DER_w_precompiled | 0 | WPACKET * | +| (WPACKET *,int,const unsigned char *,size_t) | | ossl_DER_w_precompiled | 1 | int | +| (WPACKET *,int,const unsigned char *,size_t) | | ossl_DER_w_precompiled | 2 | const unsigned char * | +| (WPACKET *,int,const unsigned char *,size_t) | | ossl_DER_w_precompiled | 3 | size_t | +| (WPACKET *,int,size_t) | | WPACKET_memset | 0 | WPACKET * | +| (WPACKET *,int,size_t) | | WPACKET_memset | 1 | int | +| (WPACKET *,int,size_t) | | WPACKET_memset | 2 | size_t | +| (WPACKET *,size_t *) | | WPACKET_get_length | 0 | WPACKET * | +| (WPACKET *,size_t *) | | WPACKET_get_length | 1 | size_t * | +| (WPACKET *,size_t *) | | WPACKET_get_total_written | 0 | WPACKET * | +| (WPACKET *,size_t *) | | WPACKET_get_total_written | 1 | size_t * | +| (WPACKET *,size_t) | | WPACKET_init_null | 0 | WPACKET * | +| (WPACKET *,size_t) | | WPACKET_init_null | 1 | size_t | +| (WPACKET *,size_t) | | WPACKET_set_max_size | 0 | WPACKET * | +| (WPACKET *,size_t) | | WPACKET_set_max_size | 1 | size_t | +| (WPACKET *,size_t) | | WPACKET_start_sub_packet_len__ | 0 | WPACKET * | +| (WPACKET *,size_t) | | WPACKET_start_sub_packet_len__ | 1 | size_t | +| (WPACKET *,size_t) | | ossl_quic_wire_encode_padding | 0 | WPACKET * | +| (WPACKET *,size_t) | | ossl_quic_wire_encode_padding | 1 | size_t | +| (WPACKET *,size_t,const QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *) | | ossl_quic_wire_encode_pkt_hdr | 0 | WPACKET * | +| (WPACKET *,size_t,const QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *) | | ossl_quic_wire_encode_pkt_hdr | 1 | size_t | +| (WPACKET *,size_t,const QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *) | | ossl_quic_wire_encode_pkt_hdr | 2 | const QUIC_PKT_HDR * | +| (WPACKET *,size_t,const QUIC_PKT_HDR *,QUIC_PKT_HDR_PTRS *) | | ossl_quic_wire_encode_pkt_hdr | 3 | QUIC_PKT_HDR_PTRS * | +| (WPACKET *,size_t,unsigned char **) | | WPACKET_allocate_bytes | 0 | WPACKET * | +| (WPACKET *,size_t,unsigned char **) | | WPACKET_allocate_bytes | 1 | size_t | +| (WPACKET *,size_t,unsigned char **) | | WPACKET_allocate_bytes | 2 | unsigned char ** | +| (WPACKET *,size_t,unsigned char **) | | WPACKET_quic_sub_allocate_bytes | 0 | WPACKET * | +| (WPACKET *,size_t,unsigned char **) | | WPACKET_quic_sub_allocate_bytes | 1 | size_t | +| (WPACKET *,size_t,unsigned char **) | | WPACKET_quic_sub_allocate_bytes | 2 | unsigned char ** | +| (WPACKET *,size_t,unsigned char **) | | WPACKET_reserve_bytes | 0 | WPACKET * | +| (WPACKET *,size_t,unsigned char **) | | WPACKET_reserve_bytes | 1 | size_t | +| (WPACKET *,size_t,unsigned char **) | | WPACKET_reserve_bytes | 2 | unsigned char ** | +| (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_allocate_bytes__ | 0 | WPACKET * | +| (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_allocate_bytes__ | 1 | size_t | +| (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_allocate_bytes__ | 2 | unsigned char ** | +| (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_allocate_bytes__ | 3 | size_t | +| (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_reserve_bytes__ | 0 | WPACKET * | +| (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_reserve_bytes__ | 1 | size_t | +| (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_reserve_bytes__ | 2 | unsigned char ** | +| (WPACKET *,size_t,unsigned char **,size_t) | | WPACKET_sub_reserve_bytes__ | 3 | size_t | +| (WPACKET *,uint64_t,const QUIC_CONN_ID *) | | ossl_quic_wire_encode_transport_param_cid | 0 | WPACKET * | +| (WPACKET *,uint64_t,const QUIC_CONN_ID *) | | ossl_quic_wire_encode_transport_param_cid | 1 | uint64_t | +| (WPACKET *,uint64_t,const QUIC_CONN_ID *) | | ossl_quic_wire_encode_transport_param_cid | 2 | const QUIC_CONN_ID * | +| (WPACKET *,uint64_t,const unsigned char *,size_t) | | ossl_quic_wire_encode_transport_param_bytes | 0 | WPACKET * | +| (WPACKET *,uint64_t,const unsigned char *,size_t) | | ossl_quic_wire_encode_transport_param_bytes | 1 | uint64_t | +| (WPACKET *,uint64_t,const unsigned char *,size_t) | | ossl_quic_wire_encode_transport_param_bytes | 2 | const unsigned char * | +| (WPACKET *,uint64_t,const unsigned char *,size_t) | | ossl_quic_wire_encode_transport_param_bytes | 3 | size_t | +| (WPACKET *,uint64_t,size_t) | | WPACKET_put_bytes__ | 0 | WPACKET * | +| (WPACKET *,uint64_t,size_t) | | WPACKET_put_bytes__ | 1 | uint64_t | +| (WPACKET *,uint64_t,size_t) | | WPACKET_put_bytes__ | 2 | size_t | +| (WPACKET *,unsigned char *,size_t) | | WPACKET_init_der | 0 | WPACKET * | +| (WPACKET *,unsigned char *,size_t) | | WPACKET_init_der | 1 | unsigned char * | +| (WPACKET *,unsigned char *,size_t) | | WPACKET_init_der | 2 | size_t | +| (WPACKET *,unsigned char *,size_t) | | dtls_raw_hello_verify_request | 0 | WPACKET * | +| (WPACKET *,unsigned char *,size_t) | | dtls_raw_hello_verify_request | 1 | unsigned char * | +| (WPACKET *,unsigned char *,size_t) | | dtls_raw_hello_verify_request | 2 | size_t | +| (WPACKET *,unsigned char *,size_t,size_t) | | WPACKET_init_static_len | 0 | WPACKET * | +| (WPACKET *,unsigned char *,size_t,size_t) | | WPACKET_init_static_len | 1 | unsigned char * | +| (WPACKET *,unsigned char *,size_t,size_t) | | WPACKET_init_static_len | 2 | size_t | +| (WPACKET *,unsigned char *,size_t,size_t) | | WPACKET_init_static_len | 3 | size_t | +| (WPACKET *,unsigned int) | | WPACKET_set_flags | 0 | WPACKET * | +| (WPACKET *,unsigned int) | | WPACKET_set_flags | 1 | unsigned int | +| (X9_62_CHARACTERISTIC_TWO *) | | X9_62_CHARACTERISTIC_TWO_free | 0 | X9_62_CHARACTERISTIC_TWO * | +| (X9_62_PENTANOMIAL *) | | X9_62_PENTANOMIAL_free | 0 | X9_62_PENTANOMIAL * | +| (X509 *) | | OSSL_STORE_INFO_new_CERT | 0 | X509 * | +| (X509 *) | | PKCS12_SAFEBAG_create_cert | 0 | X509 * | +| (X509 *) | | X509_check_ca | 0 | X509 * | +| (X509 *) | | X509_free | 0 | X509 * | +| (X509 *) | | X509_get0_authority_issuer | 0 | X509 * | +| (X509 *) | | X509_get0_authority_key_id | 0 | X509 * | +| (X509 *) | | X509_get0_authority_serial | 0 | X509 * | +| (X509 *) | | X509_get0_distinguishing_id | 0 | X509 * | +| (X509 *) | | X509_get0_reject_objects | 0 | X509 * | +| (X509 *) | | X509_get0_subject_key_id | 0 | X509 * | +| (X509 *) | | X509_get0_trust_objects | 0 | X509 * | +| (X509 *) | | X509_get_extended_key_usage | 0 | X509 * | +| (X509 *) | | X509_get_extension_flags | 0 | X509 * | +| (X509 *) | | X509_get_key_usage | 0 | X509 * | +| (X509 *) | | X509_get_pathlen | 0 | X509 * | +| (X509 *) | | X509_get_proxy_pathlen | 0 | X509 * | +| (X509 *) | | X509_get_serialNumber | 0 | X509 * | +| (X509 *) | | X509_issuer_name_hash | 0 | X509 * | +| (X509 *) | | X509_issuer_name_hash_old | 0 | X509 * | +| (X509 *) | | X509_subject_name_hash | 0 | X509 * | +| (X509 *) | | X509_subject_name_hash_old | 0 | X509 * | +| (X509 *) | | ossl_policy_cache_set | 0 | X509 * | +| (X509 *) | | ossl_x509v3_cache_extensions | 0 | X509 * | +| (X509 **,X509_STORE_CTX *,X509 *) | | X509_STORE_CTX_get1_issuer | 0 | X509 ** | +| (X509 **,X509_STORE_CTX *,X509 *) | | X509_STORE_CTX_get1_issuer | 1 | X509_STORE_CTX * | +| (X509 **,X509_STORE_CTX *,X509 *) | | X509_STORE_CTX_get1_issuer | 2 | X509 * | +| (X509 **,const unsigned char **,long) | | d2i_X509 | 0 | X509 ** | +| (X509 **,const unsigned char **,long) | | d2i_X509 | 1 | const unsigned char ** | +| (X509 **,const unsigned char **,long) | | d2i_X509 | 2 | long | +| (X509 **,const unsigned char **,long) | | d2i_X509_AUX | 0 | X509 ** | +| (X509 **,const unsigned char **,long) | | d2i_X509_AUX | 1 | const unsigned char ** | +| (X509 **,const unsigned char **,long) | | d2i_X509_AUX | 2 | long | +| (X509 *,ASN1_OCTET_STRING *) | | X509_set0_distinguishing_id | 0 | X509 * | +| (X509 *,ASN1_OCTET_STRING *) | | X509_set0_distinguishing_id | 1 | ASN1_OCTET_STRING * | +| (X509 *,EVP_MD_CTX *) | | X509_sign_ctx | 0 | X509 * | +| (X509 *,EVP_MD_CTX *) | | X509_sign_ctx | 1 | EVP_MD_CTX * | +| (X509 *,EVP_PKEY *,const EVP_MD *) | | X509_sign | 0 | X509 * | +| (X509 *,EVP_PKEY *,const EVP_MD *) | | X509_sign | 1 | EVP_PKEY * | +| (X509 *,EVP_PKEY *,const EVP_MD *) | | X509_sign | 2 | const EVP_MD * | +| (X509 *,EVP_PKEY *,const EVP_MD *) | | X509_to_X509_REQ | 0 | X509 * | +| (X509 *,EVP_PKEY *,const EVP_MD *) | | X509_to_X509_REQ | 1 | EVP_PKEY * | +| (X509 *,EVP_PKEY *,const EVP_MD *) | | X509_to_X509_REQ | 2 | const EVP_MD * | +| (X509 *,EVP_PKEY *,stack_st_OPENSSL_STRING *) | | do_X509_verify | 0 | X509 * | +| (X509 *,EVP_PKEY *,stack_st_OPENSSL_STRING *) | | do_X509_verify | 1 | EVP_PKEY * | +| (X509 *,EVP_PKEY *,stack_st_OPENSSL_STRING *) | | do_X509_verify | 2 | stack_st_OPENSSL_STRING * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int) | | PKCS7_sign | 0 | X509 * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int) | | PKCS7_sign | 1 | EVP_PKEY * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int) | | PKCS7_sign | 2 | stack_st_X509 * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int) | | PKCS7_sign | 3 | BIO * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int) | | PKCS7_sign | 4 | int | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_sign_ex | 0 | X509 * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_sign_ex | 1 | EVP_PKEY * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_sign_ex | 2 | stack_st_X509 * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_sign_ex | 3 | BIO * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_sign_ex | 4 | int | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_sign_ex | 5 | OSSL_LIB_CTX * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_sign_ex | 6 | const char * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int) | | CMS_sign | 0 | X509 * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int) | | CMS_sign | 1 | EVP_PKEY * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int) | | CMS_sign | 2 | stack_st_X509 * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int) | | CMS_sign | 3 | BIO * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int) | | CMS_sign | 4 | unsigned int | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_sign_ex | 0 | X509 * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_sign_ex | 1 | EVP_PKEY * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_sign_ex | 2 | stack_st_X509 * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_sign_ex | 3 | BIO * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_sign_ex | 4 | unsigned int | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_sign_ex | 5 | OSSL_LIB_CTX * | +| (X509 *,EVP_PKEY *,stack_st_X509 *,BIO *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_sign_ex | 6 | const char * | +| (X509 *,OSSL_LIB_CTX *,const char *) | | ossl_x509_set0_libctx | 0 | X509 * | +| (X509 *,OSSL_LIB_CTX *,const char *) | | ossl_x509_set0_libctx | 1 | OSSL_LIB_CTX * | +| (X509 *,OSSL_LIB_CTX *,const char *) | | ossl_x509_set0_libctx | 2 | const char * | +| (X509 *,SSL_CONNECTION *) | | ssl_check_srvr_ecc_cert_and_alg | 0 | X509 * | +| (X509 *,SSL_CONNECTION *) | | ssl_check_srvr_ecc_cert_and_alg | 1 | SSL_CONNECTION * | +| (X509 *,X509 *) | | X509_check_issued | 0 | X509 * | +| (X509 *,X509 *) | | X509_check_issued | 1 | X509 * | +| (X509 *,X509 *) | | ossl_x509_likely_issued | 0 | X509 * | +| (X509 *,X509 *) | | ossl_x509_likely_issued | 1 | X509 * | +| (X509 *,X509_EXTENSION *,int) | | X509_add_ext | 0 | X509 * | +| (X509 *,X509_EXTENSION *,int) | | X509_add_ext | 1 | X509_EXTENSION * | +| (X509 *,X509_EXTENSION *,int) | | X509_add_ext | 2 | int | +| (X509 *,const X509_NAME *) | | X509_set_issuer_name | 0 | X509 * | +| (X509 *,const X509_NAME *) | | X509_set_issuer_name | 1 | const X509_NAME * | +| (X509 *,const X509_NAME *) | | X509_set_subject_name | 0 | X509 * | +| (X509 *,const X509_NAME *) | | X509_set_subject_name | 1 | const X509_NAME * | +| (X509 *,const char *) | | x509_ctrl_string | 0 | X509 * | +| (X509 *,const char *) | | x509_ctrl_string | 1 | const char * | +| (X509 *,const char *,size_t,unsigned int,char **) | | X509_check_host | 0 | X509 * | +| (X509 *,const char *,size_t,unsigned int,char **) | | X509_check_host | 1 | const char * | +| (X509 *,const char *,size_t,unsigned int,char **) | | X509_check_host | 2 | size_t | +| (X509 *,const char *,size_t,unsigned int,char **) | | X509_check_host | 3 | unsigned int | +| (X509 *,const char *,size_t,unsigned int,char **) | | X509_check_host | 4 | char ** | +| (X509 *,int *,int *,int *,uint32_t *) | | X509_get_signature_info | 0 | X509 * | +| (X509 *,int *,int *,int *,uint32_t *) | | X509_get_signature_info | 1 | int * | +| (X509 *,int *,int *,int *,uint32_t *) | | X509_get_signature_info | 2 | int * | +| (X509 *,int *,int *,int *,uint32_t *) | | X509_get_signature_info | 3 | int * | +| (X509 *,int *,int *,int *,uint32_t *) | | X509_get_signature_info | 4 | uint32_t * | +| (X509 *,int) | | X509_delete_ext | 0 | X509 * | +| (X509 *,int) | | X509_delete_ext | 1 | int | +| (X509 *,int) | | X509_self_signed | 0 | X509 * | +| (X509 *,int) | | X509_self_signed | 1 | int | +| (X509 *,int,int) | | X509_check_purpose | 0 | X509 * | +| (X509 *,int,int) | | X509_check_purpose | 1 | int | +| (X509 *,int,int) | | X509_check_purpose | 2 | int | +| (X509 *,int,int) | | X509_check_trust | 0 | X509 * | +| (X509 *,int,int) | | X509_check_trust | 1 | int | +| (X509 *,int,int) | | X509_check_trust | 2 | int | +| (X509 *,int,void *,int,unsigned long) | | X509_add1_ext_i2d | 0 | X509 * | +| (X509 *,int,void *,int,unsigned long) | | X509_add1_ext_i2d | 1 | int | +| (X509 *,int,void *,int,unsigned long) | | X509_add1_ext_i2d | 2 | void * | +| (X509 *,int,void *,int,unsigned long) | | X509_add1_ext_i2d | 3 | int | +| (X509 *,int,void *,int,unsigned long) | | X509_add1_ext_i2d | 4 | unsigned long | +| (X509 *,long) | | X509_set_proxy_pathlen | 0 | X509 * | +| (X509 *,long) | | X509_set_proxy_pathlen | 1 | long | +| (X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *) | | X509_build_chain | 0 | X509 * | +| (X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *) | | X509_build_chain | 1 | stack_st_X509 * | +| (X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *) | | X509_build_chain | 2 | X509_STORE * | +| (X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *) | | X509_build_chain | 3 | int | +| (X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *) | | X509_build_chain | 4 | OSSL_LIB_CTX * | +| (X509 *,stack_st_X509 *,X509_STORE *,int,OSSL_LIB_CTX *,const char *) | | X509_build_chain | 5 | const char * | +| (X509 *,unsigned char **) | | i2d_re_X509_tbs | 0 | X509 * | +| (X509 *,unsigned char **) | | i2d_re_X509_tbs | 1 | unsigned char ** | +| (X509V3_CTX *,CONF *) | | X509V3_set_nconf | 0 | X509V3_CTX * | +| (X509V3_CTX *,CONF *) | | X509V3_set_nconf | 1 | CONF * | +| (X509V3_CTX *,EVP_PKEY *) | | X509V3_set_issuer_pkey | 0 | X509V3_CTX * | +| (X509V3_CTX *,EVP_PKEY *) | | X509V3_set_issuer_pkey | 1 | EVP_PKEY * | +| (X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int) | | X509V3_set_ctx | 0 | X509V3_CTX * | +| (X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int) | | X509V3_set_ctx | 1 | X509 * | +| (X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int) | | X509V3_set_ctx | 2 | X509 * | +| (X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int) | | X509V3_set_ctx | 3 | X509_REQ * | +| (X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int) | | X509V3_set_ctx | 4 | X509_CRL * | +| (X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int) | | X509V3_set_ctx | 5 | int | +| (X509V3_CTX *,lhash_st_CONF_VALUE *) | | X509V3_set_conf_lhash | 0 | X509V3_CTX * | +| (X509V3_CTX *,lhash_st_CONF_VALUE *) | | X509V3_set_conf_lhash | 1 | lhash_st_CONF_VALUE * | +| (X509V3_EXT_METHOD *) | | X509V3_EXT_add_list | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,ASN1_BIT_STRING *,stack_st_CONF_VALUE *) | | i2v_ASN1_BIT_STRING | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,ASN1_BIT_STRING *,stack_st_CONF_VALUE *) | | i2v_ASN1_BIT_STRING | 1 | ASN1_BIT_STRING * | +| (X509V3_EXT_METHOD *,ASN1_BIT_STRING *,stack_st_CONF_VALUE *) | | i2v_ASN1_BIT_STRING | 2 | stack_st_CONF_VALUE * | +| (X509V3_EXT_METHOD *,ASN1_IA5STRING *) | | i2s_ASN1_IA5STRING | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,ASN1_IA5STRING *) | | i2s_ASN1_IA5STRING | 1 | ASN1_IA5STRING * | +| (X509V3_EXT_METHOD *,ASN1_UTF8STRING *) | | i2s_ASN1_UTF8STRING | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,ASN1_UTF8STRING *) | | i2s_ASN1_UTF8STRING | 1 | ASN1_UTF8STRING * | +| (X509V3_EXT_METHOD *,GENERAL_NAME *,stack_st_CONF_VALUE *) | | i2v_GENERAL_NAME | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,GENERAL_NAME *,stack_st_CONF_VALUE *) | | i2v_GENERAL_NAME | 1 | GENERAL_NAME * | +| (X509V3_EXT_METHOD *,GENERAL_NAME *,stack_st_CONF_VALUE *) | | i2v_GENERAL_NAME | 2 | stack_st_CONF_VALUE * | +| (X509V3_EXT_METHOD *,GENERAL_NAMES *,stack_st_CONF_VALUE *) | | i2v_GENERAL_NAMES | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,GENERAL_NAMES *,stack_st_CONF_VALUE *) | | i2v_GENERAL_NAMES | 1 | GENERAL_NAMES * | +| (X509V3_EXT_METHOD *,GENERAL_NAMES *,stack_st_CONF_VALUE *) | | i2v_GENERAL_NAMES | 2 | stack_st_CONF_VALUE * | +| (X509V3_EXT_METHOD *,X509V3_CTX *,const char *) | | s2i_ASN1_IA5STRING | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,X509V3_CTX *,const char *) | | s2i_ASN1_IA5STRING | 1 | X509V3_CTX * | +| (X509V3_EXT_METHOD *,X509V3_CTX *,const char *) | | s2i_ASN1_IA5STRING | 2 | const char * | +| (X509V3_EXT_METHOD *,X509V3_CTX *,const char *) | | s2i_ASN1_UTF8STRING | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,X509V3_CTX *,const char *) | | s2i_ASN1_UTF8STRING | 1 | X509V3_CTX * | +| (X509V3_EXT_METHOD *,X509V3_CTX *,const char *) | | s2i_ASN1_UTF8STRING | 2 | const char * | +| (X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *) | | v2i_ASN1_BIT_STRING | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *) | | v2i_ASN1_BIT_STRING | 1 | X509V3_CTX * | +| (X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *) | | v2i_ASN1_BIT_STRING | 2 | stack_st_CONF_VALUE * | +| (X509V3_EXT_METHOD *,const ASN1_ENUMERATED *) | | i2s_ASN1_ENUMERATED_TABLE | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,const ASN1_ENUMERATED *) | | i2s_ASN1_ENUMERATED_TABLE | 1 | const ASN1_ENUMERATED * | +| (X509V3_EXT_METHOD *,const ASN1_OCTET_STRING *) | | i2s_ASN1_OCTET_STRING | 0 | X509V3_EXT_METHOD * | +| (X509V3_EXT_METHOD *,const ASN1_OCTET_STRING *) | | i2s_ASN1_OCTET_STRING | 1 | const ASN1_OCTET_STRING * | +| (X509_ACERT *) | | X509_ACERT_free | 0 | X509_ACERT * | +| (X509_ACERT **,const unsigned char **,long) | | d2i_X509_ACERT | 0 | X509_ACERT ** | +| (X509_ACERT **,const unsigned char **,long) | | d2i_X509_ACERT | 1 | const unsigned char ** | +| (X509_ACERT **,const unsigned char **,long) | | d2i_X509_ACERT | 2 | long | +| (X509_ACERT *,EVP_MD_CTX *) | | X509_ACERT_sign_ctx | 0 | X509_ACERT * | +| (X509_ACERT *,EVP_MD_CTX *) | | X509_ACERT_sign_ctx | 1 | EVP_MD_CTX * | +| (X509_ACERT *,EVP_PKEY *,const EVP_MD *) | | X509_ACERT_sign | 0 | X509_ACERT * | +| (X509_ACERT *,EVP_PKEY *,const EVP_MD *) | | X509_ACERT_sign | 1 | EVP_PKEY * | +| (X509_ACERT *,EVP_PKEY *,const EVP_MD *) | | X509_ACERT_sign | 2 | const EVP_MD * | +| (X509_ACERT *,X509_ATTRIBUTE *) | | X509_ACERT_add1_attr | 0 | X509_ACERT * | +| (X509_ACERT *,X509_ATTRIBUTE *) | | X509_ACERT_add1_attr | 1 | X509_ATTRIBUTE * | +| (X509_ACERT *,const ASN1_OBJECT *,int,const void *,int) | | X509_ACERT_add1_attr_by_OBJ | 0 | X509_ACERT * | +| (X509_ACERT *,const ASN1_OBJECT *,int,const void *,int) | | X509_ACERT_add1_attr_by_OBJ | 1 | const ASN1_OBJECT * | +| (X509_ACERT *,const ASN1_OBJECT *,int,const void *,int) | | X509_ACERT_add1_attr_by_OBJ | 2 | int | +| (X509_ACERT *,const ASN1_OBJECT *,int,const void *,int) | | X509_ACERT_add1_attr_by_OBJ | 3 | const void * | +| (X509_ACERT *,const ASN1_OBJECT *,int,const void *,int) | | X509_ACERT_add1_attr_by_OBJ | 4 | int | +| (X509_ACERT *,const X509_NAME *) | | X509_ACERT_set1_issuerName | 0 | X509_ACERT * | +| (X509_ACERT *,const X509_NAME *) | | X509_ACERT_set1_issuerName | 1 | const X509_NAME * | +| (X509_ACERT *,const char *,int,const unsigned char *,int) | | X509_ACERT_add1_attr_by_txt | 0 | X509_ACERT * | +| (X509_ACERT *,const char *,int,const unsigned char *,int) | | X509_ACERT_add1_attr_by_txt | 1 | const char * | +| (X509_ACERT *,const char *,int,const unsigned char *,int) | | X509_ACERT_add1_attr_by_txt | 2 | int | +| (X509_ACERT *,const char *,int,const unsigned char *,int) | | X509_ACERT_add1_attr_by_txt | 3 | const unsigned char * | +| (X509_ACERT *,const char *,int,const unsigned char *,int) | | X509_ACERT_add1_attr_by_txt | 4 | int | +| (X509_ACERT *,int) | | X509_ACERT_delete_attr | 0 | X509_ACERT * | +| (X509_ACERT *,int) | | X509_ACERT_delete_attr | 1 | int | +| (X509_ACERT *,int,int,const void *,int) | | X509_ACERT_add1_attr_by_NID | 0 | X509_ACERT * | +| (X509_ACERT *,int,int,const void *,int) | | X509_ACERT_add1_attr_by_NID | 1 | int | +| (X509_ACERT *,int,int,const void *,int) | | X509_ACERT_add1_attr_by_NID | 2 | int | +| (X509_ACERT *,int,int,const void *,int) | | X509_ACERT_add1_attr_by_NID | 3 | const void * | +| (X509_ACERT *,int,int,const void *,int) | | X509_ACERT_add1_attr_by_NID | 4 | int | +| (X509_ACERT *,int,void *,int,unsigned long) | | X509_ACERT_add1_ext_i2d | 0 | X509_ACERT * | +| (X509_ACERT *,int,void *,int,unsigned long) | | X509_ACERT_add1_ext_i2d | 1 | int | +| (X509_ACERT *,int,void *,int,unsigned long) | | X509_ACERT_add1_ext_i2d | 2 | void * | +| (X509_ACERT *,int,void *,int,unsigned long) | | X509_ACERT_add1_ext_i2d | 3 | int | +| (X509_ACERT *,int,void *,int,unsigned long) | | X509_ACERT_add1_ext_i2d | 4 | unsigned long | +| (X509_ACERT_INFO *) | | X509_ACERT_INFO_free | 0 | X509_ACERT_INFO * | +| (X509_ACERT_ISSUER_V2FORM *) | | X509_ACERT_ISSUER_V2FORM_free | 0 | X509_ACERT_ISSUER_V2FORM * | +| (X509_ALGOR *) | | X509_ALGOR_free | 0 | X509_ALGOR * | +| (X509_ALGOR **,const EVP_MD *) | | ossl_x509_algor_md_to_mgf1 | 0 | X509_ALGOR ** | +| (X509_ALGOR **,const EVP_MD *) | | ossl_x509_algor_md_to_mgf1 | 1 | const EVP_MD * | +| (X509_ALGOR **,const EVP_MD *) | | ossl_x509_algor_new_from_md | 0 | X509_ALGOR ** | +| (X509_ALGOR **,const EVP_MD *) | | ossl_x509_algor_new_from_md | 1 | const EVP_MD * | +| (X509_ALGOR **,const unsigned char **,long) | | d2i_X509_ALGOR | 0 | X509_ALGOR ** | +| (X509_ALGOR **,const unsigned char **,long) | | d2i_X509_ALGOR | 1 | const unsigned char ** | +| (X509_ALGOR **,const unsigned char **,long) | | d2i_X509_ALGOR | 2 | long | +| (X509_ALGOR *,ASN1_OBJECT *,int,void *) | | X509_ALGOR_set0 | 0 | X509_ALGOR * | +| (X509_ALGOR *,ASN1_OBJECT *,int,void *) | | X509_ALGOR_set0 | 1 | ASN1_OBJECT * | +| (X509_ALGOR *,ASN1_OBJECT *,int,void *) | | X509_ALGOR_set0 | 2 | int | +| (X509_ALGOR *,ASN1_OBJECT *,int,void *) | | X509_ALGOR_set0 | 3 | void * | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int) | | PKCS12_item_i2d_encrypt | 0 | X509_ALGOR * | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int) | | PKCS12_item_i2d_encrypt | 1 | const ASN1_ITEM * | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int) | | PKCS12_item_i2d_encrypt | 2 | const char * | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int) | | PKCS12_item_i2d_encrypt | 3 | int | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int) | | PKCS12_item_i2d_encrypt | 4 | void * | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int) | | PKCS12_item_i2d_encrypt | 5 | int | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_i2d_encrypt_ex | 0 | X509_ALGOR * | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_i2d_encrypt_ex | 1 | const ASN1_ITEM * | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_i2d_encrypt_ex | 2 | const char * | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_i2d_encrypt_ex | 3 | int | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_i2d_encrypt_ex | 4 | void * | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_i2d_encrypt_ex | 5 | int | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_i2d_encrypt_ex | 6 | OSSL_LIB_CTX * | +| (X509_ALGOR *,const ASN1_ITEM *,const char *,int,void *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_i2d_encrypt_ex | 7 | const char * | +| (X509_ALGOR *,const EVP_MD *) | | X509_ALGOR_set_md | 0 | X509_ALGOR * | +| (X509_ALGOR *,const EVP_MD *) | | X509_ALGOR_set_md | 1 | const EVP_MD * | +| (X509_ALGOR *,const X509_ALGOR *) | | X509_ALGOR_copy | 0 | X509_ALGOR * | +| (X509_ALGOR *,const X509_ALGOR *) | | X509_ALGOR_copy | 1 | const X509_ALGOR * | +| (X509_ALGOR *,int,int,const unsigned char *,int) | | PKCS5_pbe_set0_algor | 0 | X509_ALGOR * | +| (X509_ALGOR *,int,int,const unsigned char *,int) | | PKCS5_pbe_set0_algor | 1 | int | +| (X509_ALGOR *,int,int,const unsigned char *,int) | | PKCS5_pbe_set0_algor | 2 | int | +| (X509_ALGOR *,int,int,const unsigned char *,int) | | PKCS5_pbe_set0_algor | 3 | const unsigned char * | +| (X509_ALGOR *,int,int,const unsigned char *,int) | | PKCS5_pbe_set0_algor | 4 | int | +| (X509_ALGOR *,int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set0_algor_ex | 0 | X509_ALGOR * | +| (X509_ALGOR *,int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set0_algor_ex | 1 | int | +| (X509_ALGOR *,int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set0_algor_ex | 2 | int | +| (X509_ALGOR *,int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set0_algor_ex | 3 | const unsigned char * | +| (X509_ALGOR *,int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set0_algor_ex | 4 | int | +| (X509_ALGOR *,int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set0_algor_ex | 5 | OSSL_LIB_CTX * | +| (X509_ALGORS **,const unsigned char **,long) | | d2i_X509_ALGORS | 0 | X509_ALGORS ** | +| (X509_ALGORS **,const unsigned char **,long) | | d2i_X509_ALGORS | 1 | const unsigned char ** | +| (X509_ALGORS **,const unsigned char **,long) | | d2i_X509_ALGORS | 2 | long | +| (X509_ATTRIBUTE *) | | X509_ATTRIBUTE_free | 0 | X509_ATTRIBUTE * | +| (X509_ATTRIBUTE *) | | X509_ATTRIBUTE_get0_object | 0 | X509_ATTRIBUTE * | +| (X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int) | | X509_ATTRIBUTE_create_by_OBJ | 0 | X509_ATTRIBUTE ** | +| (X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int) | | X509_ATTRIBUTE_create_by_OBJ | 1 | const ASN1_OBJECT * | +| (X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int) | | X509_ATTRIBUTE_create_by_OBJ | 2 | int | +| (X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int) | | X509_ATTRIBUTE_create_by_OBJ | 3 | const void * | +| (X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const void *,int) | | X509_ATTRIBUTE_create_by_OBJ | 4 | int | +| (X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | X509_ATTRIBUTE_create_by_txt | 0 | X509_ATTRIBUTE ** | +| (X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | X509_ATTRIBUTE_create_by_txt | 1 | const char * | +| (X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | X509_ATTRIBUTE_create_by_txt | 2 | int | +| (X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | X509_ATTRIBUTE_create_by_txt | 3 | const unsigned char * | +| (X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | X509_ATTRIBUTE_create_by_txt | 4 | int | +| (X509_ATTRIBUTE **,const unsigned char **,long) | | d2i_X509_ATTRIBUTE | 0 | X509_ATTRIBUTE ** | +| (X509_ATTRIBUTE **,const unsigned char **,long) | | d2i_X509_ATTRIBUTE | 1 | const unsigned char ** | +| (X509_ATTRIBUTE **,const unsigned char **,long) | | d2i_X509_ATTRIBUTE | 2 | long | +| (X509_ATTRIBUTE **,int,int,const void *,int) | | X509_ATTRIBUTE_create_by_NID | 0 | X509_ATTRIBUTE ** | +| (X509_ATTRIBUTE **,int,int,const void *,int) | | X509_ATTRIBUTE_create_by_NID | 1 | int | +| (X509_ATTRIBUTE **,int,int,const void *,int) | | X509_ATTRIBUTE_create_by_NID | 2 | int | +| (X509_ATTRIBUTE **,int,int,const void *,int) | | X509_ATTRIBUTE_create_by_NID | 3 | const void * | +| (X509_ATTRIBUTE **,int,int,const void *,int) | | X509_ATTRIBUTE_create_by_NID | 4 | int | +| (X509_ATTRIBUTE *,const ASN1_OBJECT *) | | X509_ATTRIBUTE_set1_object | 0 | X509_ATTRIBUTE * | +| (X509_ATTRIBUTE *,const ASN1_OBJECT *) | | X509_ATTRIBUTE_set1_object | 1 | const ASN1_OBJECT * | +| (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 0 | X509_ATTRIBUTE * | +| (X509_ATTRIBUTE *,int) | | X509_ATTRIBUTE_get0_type | 1 | int | +| (X509_CERT_AUX *) | | X509_CERT_AUX_free | 0 | X509_CERT_AUX * | +| (X509_CERT_AUX **,const unsigned char **,long) | | d2i_X509_CERT_AUX | 0 | X509_CERT_AUX ** | +| (X509_CERT_AUX **,const unsigned char **,long) | | d2i_X509_CERT_AUX | 1 | const unsigned char ** | +| (X509_CERT_AUX **,const unsigned char **,long) | | d2i_X509_CERT_AUX | 2 | long | +| (X509_CINF *) | | X509_CINF_free | 0 | X509_CINF * | +| (X509_CINF **,const unsigned char **,long) | | d2i_X509_CINF | 0 | X509_CINF ** | +| (X509_CINF **,const unsigned char **,long) | | d2i_X509_CINF | 1 | const unsigned char ** | +| (X509_CINF **,const unsigned char **,long) | | d2i_X509_CINF | 2 | long | +| (X509_CRL *) | | OSSL_STORE_INFO_new_CRL | 0 | X509_CRL * | +| (X509_CRL *) | | PKCS12_SAFEBAG_create_crl | 0 | X509_CRL * | +| (X509_CRL *) | | X509_CRL_free | 0 | X509_CRL * | +| (X509_CRL *) | | X509_CRL_get_REVOKED | 0 | X509_CRL * | +| (X509_CRL *) | | X509_CRL_get_lastUpdate | 0 | X509_CRL * | +| (X509_CRL *) | | X509_CRL_get_meth_data | 0 | X509_CRL * | +| (X509_CRL *) | | X509_CRL_get_nextUpdate | 0 | X509_CRL * | +| (X509_CRL **,const unsigned char **,long) | | d2i_X509_CRL | 0 | X509_CRL ** | +| (X509_CRL **,const unsigned char **,long) | | d2i_X509_CRL | 1 | const unsigned char ** | +| (X509_CRL **,const unsigned char **,long) | | d2i_X509_CRL | 2 | long | +| (X509_CRL *,EVP_MD_CTX *) | | X509_CRL_sign_ctx | 0 | X509_CRL * | +| (X509_CRL *,EVP_MD_CTX *) | | X509_CRL_sign_ctx | 1 | EVP_MD_CTX * | +| (X509_CRL *,EVP_PKEY *,const EVP_MD *) | | X509_CRL_sign | 0 | X509_CRL * | +| (X509_CRL *,EVP_PKEY *,const EVP_MD *) | | X509_CRL_sign | 1 | EVP_PKEY * | +| (X509_CRL *,EVP_PKEY *,const EVP_MD *) | | X509_CRL_sign | 2 | const EVP_MD * | +| (X509_CRL *,OSSL_LIB_CTX *,const char *) | | ossl_x509_crl_set0_libctx | 0 | X509_CRL * | +| (X509_CRL *,OSSL_LIB_CTX *,const char *) | | ossl_x509_crl_set0_libctx | 1 | OSSL_LIB_CTX * | +| (X509_CRL *,OSSL_LIB_CTX *,const char *) | | ossl_x509_crl_set0_libctx | 2 | const char * | +| (X509_CRL *,X509_CRL *,EVP_PKEY *,const EVP_MD *,unsigned int) | | X509_CRL_diff | 0 | X509_CRL * | +| (X509_CRL *,X509_CRL *,EVP_PKEY *,const EVP_MD *,unsigned int) | | X509_CRL_diff | 1 | X509_CRL * | +| (X509_CRL *,X509_CRL *,EVP_PKEY *,const EVP_MD *,unsigned int) | | X509_CRL_diff | 2 | EVP_PKEY * | +| (X509_CRL *,X509_CRL *,EVP_PKEY *,const EVP_MD *,unsigned int) | | X509_CRL_diff | 3 | const EVP_MD * | +| (X509_CRL *,X509_CRL *,EVP_PKEY *,const EVP_MD *,unsigned int) | | X509_CRL_diff | 4 | unsigned int | +| (X509_CRL *,X509_EXTENSION *,int) | | X509_CRL_add_ext | 0 | X509_CRL * | +| (X509_CRL *,X509_EXTENSION *,int) | | X509_CRL_add_ext | 1 | X509_EXTENSION * | +| (X509_CRL *,X509_EXTENSION *,int) | | X509_CRL_add_ext | 2 | int | +| (X509_CRL *,const X509_NAME *) | | X509_CRL_set_issuer_name | 0 | X509_CRL * | +| (X509_CRL *,const X509_NAME *) | | X509_CRL_set_issuer_name | 1 | const X509_NAME * | +| (X509_CRL *,int) | | X509_CRL_delete_ext | 0 | X509_CRL * | +| (X509_CRL *,int) | | X509_CRL_delete_ext | 1 | int | +| (X509_CRL *,int,void *,int,unsigned long) | | X509_CRL_add1_ext_i2d | 0 | X509_CRL * | +| (X509_CRL *,int,void *,int,unsigned long) | | X509_CRL_add1_ext_i2d | 1 | int | +| (X509_CRL *,int,void *,int,unsigned long) | | X509_CRL_add1_ext_i2d | 2 | void * | +| (X509_CRL *,int,void *,int,unsigned long) | | X509_CRL_add1_ext_i2d | 3 | int | +| (X509_CRL *,int,void *,int,unsigned long) | | X509_CRL_add1_ext_i2d | 4 | unsigned long | +| (X509_CRL *,unsigned char **) | | i2d_re_X509_CRL_tbs | 0 | X509_CRL * | +| (X509_CRL *,unsigned char **) | | i2d_re_X509_CRL_tbs | 1 | unsigned char ** | +| (X509_CRL *,void *) | | X509_CRL_set_meth_data | 0 | X509_CRL * | +| (X509_CRL *,void *) | | X509_CRL_set_meth_data | 1 | void * | +| (X509_CRL_INFO *) | | X509_CRL_INFO_free | 0 | X509_CRL_INFO * | +| (X509_CRL_INFO **,const unsigned char **,long) | | d2i_X509_CRL_INFO | 0 | X509_CRL_INFO ** | +| (X509_CRL_INFO **,const unsigned char **,long) | | d2i_X509_CRL_INFO | 1 | const unsigned char ** | +| (X509_CRL_INFO **,const unsigned char **,long) | | d2i_X509_CRL_INFO | 2 | long | +| (X509_EXTENSION *) | | X509V3_EXT_d2i | 0 | X509_EXTENSION * | +| (X509_EXTENSION *) | | X509_EXTENSION_free | 0 | X509_EXTENSION * | +| (X509_EXTENSION *) | | X509_EXTENSION_get_data | 0 | X509_EXTENSION * | +| (X509_EXTENSION *) | | X509_EXTENSION_get_object | 0 | X509_EXTENSION * | +| (X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *) | | X509_EXTENSION_create_by_OBJ | 0 | X509_EXTENSION ** | +| (X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *) | | X509_EXTENSION_create_by_OBJ | 1 | const ASN1_OBJECT * | +| (X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *) | | X509_EXTENSION_create_by_OBJ | 2 | int | +| (X509_EXTENSION **,const ASN1_OBJECT *,int,ASN1_OCTET_STRING *) | | X509_EXTENSION_create_by_OBJ | 3 | ASN1_OCTET_STRING * | +| (X509_EXTENSION **,const unsigned char **,long) | | d2i_X509_EXTENSION | 0 | X509_EXTENSION ** | +| (X509_EXTENSION **,const unsigned char **,long) | | d2i_X509_EXTENSION | 1 | const unsigned char ** | +| (X509_EXTENSION **,const unsigned char **,long) | | d2i_X509_EXTENSION | 2 | long | +| (X509_EXTENSION **,int,int,ASN1_OCTET_STRING *) | | X509_EXTENSION_create_by_NID | 0 | X509_EXTENSION ** | +| (X509_EXTENSION **,int,int,ASN1_OCTET_STRING *) | | X509_EXTENSION_create_by_NID | 1 | int | +| (X509_EXTENSION **,int,int,ASN1_OCTET_STRING *) | | X509_EXTENSION_create_by_NID | 2 | int | +| (X509_EXTENSION **,int,int,ASN1_OCTET_STRING *) | | X509_EXTENSION_create_by_NID | 3 | ASN1_OCTET_STRING * | +| (X509_EXTENSION *,ASN1_OCTET_STRING *) | | X509_EXTENSION_set_data | 0 | X509_EXTENSION * | +| (X509_EXTENSION *,ASN1_OCTET_STRING *) | | X509_EXTENSION_set_data | 1 | ASN1_OCTET_STRING * | +| (X509_EXTENSION *,const ASN1_OBJECT *) | | X509_EXTENSION_set_object | 0 | X509_EXTENSION * | +| (X509_EXTENSION *,const ASN1_OBJECT *) | | X509_EXTENSION_set_object | 1 | const ASN1_OBJECT * | +| (X509_EXTENSIONS **,const unsigned char **,long) | | d2i_X509_EXTENSIONS | 0 | X509_EXTENSIONS ** | +| (X509_EXTENSIONS **,const unsigned char **,long) | | d2i_X509_EXTENSIONS | 1 | const unsigned char ** | +| (X509_EXTENSIONS **,const unsigned char **,long) | | d2i_X509_EXTENSIONS | 2 | long | +| (X509_LOOKUP *,void *) | | X509_LOOKUP_set_method_data | 0 | X509_LOOKUP * | +| (X509_LOOKUP *,void *) | | X509_LOOKUP_set_method_data | 1 | void * | +| (X509_LOOKUP_METHOD *) | | X509_LOOKUP_new | 0 | X509_LOOKUP_METHOD * | +| (X509_LOOKUP_METHOD *,..(*)(..)) | | X509_LOOKUP_meth_set_free | 0 | X509_LOOKUP_METHOD * | +| (X509_LOOKUP_METHOD *,..(*)(..)) | | X509_LOOKUP_meth_set_free | 1 | ..(*)(..) | +| (X509_LOOKUP_METHOD *,..(*)(..)) | | X509_LOOKUP_meth_set_init | 0 | X509_LOOKUP_METHOD * | +| (X509_LOOKUP_METHOD *,..(*)(..)) | | X509_LOOKUP_meth_set_init | 1 | ..(*)(..) | +| (X509_LOOKUP_METHOD *,..(*)(..)) | | X509_LOOKUP_meth_set_new_item | 0 | X509_LOOKUP_METHOD * | +| (X509_LOOKUP_METHOD *,..(*)(..)) | | X509_LOOKUP_meth_set_new_item | 1 | ..(*)(..) | +| (X509_LOOKUP_METHOD *,..(*)(..)) | | X509_LOOKUP_meth_set_shutdown | 0 | X509_LOOKUP_METHOD * | +| (X509_LOOKUP_METHOD *,..(*)(..)) | | X509_LOOKUP_meth_set_shutdown | 1 | ..(*)(..) | +| (X509_LOOKUP_METHOD *,X509_LOOKUP_ctrl_fn) | | X509_LOOKUP_meth_set_ctrl | 0 | X509_LOOKUP_METHOD * | +| (X509_LOOKUP_METHOD *,X509_LOOKUP_ctrl_fn) | | X509_LOOKUP_meth_set_ctrl | 1 | X509_LOOKUP_ctrl_fn | +| (X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_alias_fn) | | X509_LOOKUP_meth_set_get_by_alias | 0 | X509_LOOKUP_METHOD * | +| (X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_alias_fn) | | X509_LOOKUP_meth_set_get_by_alias | 1 | X509_LOOKUP_get_by_alias_fn | +| (X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_fingerprint_fn) | | X509_LOOKUP_meth_set_get_by_fingerprint | 0 | X509_LOOKUP_METHOD * | +| (X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_fingerprint_fn) | | X509_LOOKUP_meth_set_get_by_fingerprint | 1 | X509_LOOKUP_get_by_fingerprint_fn | +| (X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_issuer_serial_fn) | | X509_LOOKUP_meth_set_get_by_issuer_serial | 0 | X509_LOOKUP_METHOD * | +| (X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_issuer_serial_fn) | | X509_LOOKUP_meth_set_get_by_issuer_serial | 1 | X509_LOOKUP_get_by_issuer_serial_fn | +| (X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_subject_fn) | | X509_LOOKUP_meth_set_get_by_subject | 0 | X509_LOOKUP_METHOD * | +| (X509_LOOKUP_METHOD *,X509_LOOKUP_get_by_subject_fn) | | X509_LOOKUP_meth_set_get_by_subject | 1 | X509_LOOKUP_get_by_subject_fn | +| (X509_NAME *) | | OSSL_STORE_SEARCH_by_name | 0 | X509_NAME * | +| (X509_NAME *) | | X509_NAME_free | 0 | X509_NAME * | +| (X509_NAME **,const X509_NAME *) | | X509_NAME_set | 0 | X509_NAME ** | +| (X509_NAME **,const X509_NAME *) | | X509_NAME_set | 1 | const X509_NAME * | +| (X509_NAME **,const unsigned char **,long) | | d2i_X509_NAME | 0 | X509_NAME ** | +| (X509_NAME **,const unsigned char **,long) | | d2i_X509_NAME | 1 | const unsigned char ** | +| (X509_NAME **,const unsigned char **,long) | | d2i_X509_NAME | 2 | long | +| (X509_NAME *,const ASN1_INTEGER *) | | OSSL_STORE_SEARCH_by_issuer_serial | 0 | X509_NAME * | +| (X509_NAME *,const ASN1_INTEGER *) | | OSSL_STORE_SEARCH_by_issuer_serial | 1 | const ASN1_INTEGER * | +| (X509_NAME *,const X509_NAME_ENTRY *,int,int) | | X509_NAME_add_entry | 0 | X509_NAME * | +| (X509_NAME *,const X509_NAME_ENTRY *,int,int) | | X509_NAME_add_entry | 1 | const X509_NAME_ENTRY * | +| (X509_NAME *,const X509_NAME_ENTRY *,int,int) | | X509_NAME_add_entry | 2 | int | +| (X509_NAME *,const X509_NAME_ENTRY *,int,int) | | X509_NAME_add_entry | 3 | int | +| (X509_NAME *,int) | | X509_NAME_delete_entry | 0 | X509_NAME * | +| (X509_NAME *,int) | | X509_NAME_delete_entry | 1 | int | +| (X509_NAME_ENTRY *) | | X509_NAME_ENTRY_free | 0 | X509_NAME_ENTRY * | +| (X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_OBJ | 0 | X509_NAME_ENTRY ** | +| (X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_OBJ | 1 | const ASN1_OBJECT * | +| (X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_OBJ | 2 | int | +| (X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_OBJ | 3 | const unsigned char * | +| (X509_NAME_ENTRY **,const ASN1_OBJECT *,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_OBJ | 4 | int | +| (X509_NAME_ENTRY **,const char *,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_txt | 0 | X509_NAME_ENTRY ** | +| (X509_NAME_ENTRY **,const char *,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_txt | 1 | const char * | +| (X509_NAME_ENTRY **,const char *,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_txt | 2 | int | +| (X509_NAME_ENTRY **,const char *,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_txt | 3 | const unsigned char * | +| (X509_NAME_ENTRY **,const char *,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_txt | 4 | int | +| (X509_NAME_ENTRY **,const unsigned char **,long) | | d2i_X509_NAME_ENTRY | 0 | X509_NAME_ENTRY ** | +| (X509_NAME_ENTRY **,const unsigned char **,long) | | d2i_X509_NAME_ENTRY | 1 | const unsigned char ** | +| (X509_NAME_ENTRY **,const unsigned char **,long) | | d2i_X509_NAME_ENTRY | 2 | long | +| (X509_NAME_ENTRY **,int,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_NID | 0 | X509_NAME_ENTRY ** | +| (X509_NAME_ENTRY **,int,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_NID | 1 | int | +| (X509_NAME_ENTRY **,int,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_NID | 2 | int | +| (X509_NAME_ENTRY **,int,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_NID | 3 | const unsigned char * | +| (X509_NAME_ENTRY **,int,int,const unsigned char *,int) | | X509_NAME_ENTRY_create_by_NID | 4 | int | +| (X509_NAME_ENTRY *,const ASN1_OBJECT *) | | X509_NAME_ENTRY_set_object | 0 | X509_NAME_ENTRY * | +| (X509_NAME_ENTRY *,const ASN1_OBJECT *) | | X509_NAME_ENTRY_set_object | 1 | const ASN1_OBJECT * | +| (X509_NAME_ENTRY *,int,const unsigned char *,int) | | X509_NAME_ENTRY_set_data | 0 | X509_NAME_ENTRY * | +| (X509_NAME_ENTRY *,int,const unsigned char *,int) | | X509_NAME_ENTRY_set_data | 1 | int | +| (X509_NAME_ENTRY *,int,const unsigned char *,int) | | X509_NAME_ENTRY_set_data | 2 | const unsigned char * | +| (X509_NAME_ENTRY *,int,const unsigned char *,int) | | X509_NAME_ENTRY_set_data | 3 | int | +| (X509_OBJECT *,X509 *) | | X509_OBJECT_set1_X509 | 0 | X509_OBJECT * | +| (X509_OBJECT *,X509 *) | | X509_OBJECT_set1_X509 | 1 | X509 * | +| (X509_OBJECT *,X509_CRL *) | | X509_OBJECT_set1_X509_CRL | 0 | X509_OBJECT * | +| (X509_OBJECT *,X509_CRL *) | | X509_OBJECT_set1_X509_CRL | 1 | X509_CRL * | +| (X509_POLICY_LEVEL *) | | X509_policy_level_node_count | 0 | X509_POLICY_LEVEL * | +| (X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int) | | ossl_policy_level_add_node | 0 | X509_POLICY_LEVEL * | +| (X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int) | | ossl_policy_level_add_node | 1 | X509_POLICY_DATA * | +| (X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int) | | ossl_policy_level_add_node | 2 | X509_POLICY_NODE * | +| (X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int) | | ossl_policy_level_add_node | 3 | X509_POLICY_TREE * | +| (X509_POLICY_LEVEL *,X509_POLICY_DATA *,X509_POLICY_NODE *,X509_POLICY_TREE *,int) | | ossl_policy_level_add_node | 4 | int | +| (X509_POLICY_TREE **,int *,stack_st_X509 *,stack_st_ASN1_OBJECT *,unsigned int) | | X509_policy_check | 0 | X509_POLICY_TREE ** | +| (X509_POLICY_TREE **,int *,stack_st_X509 *,stack_st_ASN1_OBJECT *,unsigned int) | | X509_policy_check | 1 | int * | +| (X509_POLICY_TREE **,int *,stack_st_X509 *,stack_st_ASN1_OBJECT *,unsigned int) | | X509_policy_check | 2 | stack_st_X509 * | +| (X509_POLICY_TREE **,int *,stack_st_X509 *,stack_st_ASN1_OBJECT *,unsigned int) | | X509_policy_check | 3 | stack_st_ASN1_OBJECT * | +| (X509_POLICY_TREE **,int *,stack_st_X509 *,stack_st_ASN1_OBJECT *,unsigned int) | | X509_policy_check | 4 | unsigned int | +| (X509_PUBKEY *) | | X509_PUBKEY_free | 0 | X509_PUBKEY * | +| (X509_PUBKEY *) | | ossl_X509_PUBKEY_INTERNAL_free | 0 | X509_PUBKEY * | +| (X509_PUBKEY **,EVP_PKEY *) | | X509_PUBKEY_set | 0 | X509_PUBKEY ** | +| (X509_PUBKEY **,EVP_PKEY *) | | X509_PUBKEY_set | 1 | EVP_PKEY * | +| (X509_PUBKEY **,const unsigned char **,long) | | d2i_X509_PUBKEY | 0 | X509_PUBKEY ** | +| (X509_PUBKEY **,const unsigned char **,long) | | d2i_X509_PUBKEY | 1 | const unsigned char ** | +| (X509_PUBKEY **,const unsigned char **,long) | | d2i_X509_PUBKEY | 2 | long | +| (X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int) | | X509_PUBKEY_set0_param | 0 | X509_PUBKEY * | +| (X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int) | | X509_PUBKEY_set0_param | 1 | ASN1_OBJECT * | +| (X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int) | | X509_PUBKEY_set0_param | 2 | int | +| (X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int) | | X509_PUBKEY_set0_param | 3 | void * | +| (X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int) | | X509_PUBKEY_set0_param | 4 | unsigned char * | +| (X509_PUBKEY *,ASN1_OBJECT *,int,void *,unsigned char *,int) | | X509_PUBKEY_set0_param | 5 | int | +| (X509_PUBKEY *,unsigned char *,int) | | X509_PUBKEY_set0_public_key | 0 | X509_PUBKEY * | +| (X509_PUBKEY *,unsigned char *,int) | | X509_PUBKEY_set0_public_key | 1 | unsigned char * | +| (X509_PUBKEY *,unsigned char *,int) | | X509_PUBKEY_set0_public_key | 2 | int | +| (X509_REQ *) | | X509_REQ_free | 0 | X509_REQ * | +| (X509_REQ *) | | X509_REQ_get0_distinguishing_id | 0 | X509_REQ * | +| (X509_REQ *) | | X509_REQ_get_X509_PUBKEY | 0 | X509_REQ * | +| (X509_REQ **,const unsigned char **,long) | | d2i_X509_REQ | 0 | X509_REQ ** | +| (X509_REQ **,const unsigned char **,long) | | d2i_X509_REQ | 1 | const unsigned char ** | +| (X509_REQ **,const unsigned char **,long) | | d2i_X509_REQ | 2 | long | +| (X509_REQ *,ASN1_BIT_STRING *) | | X509_REQ_set0_signature | 0 | X509_REQ * | +| (X509_REQ *,ASN1_BIT_STRING *) | | X509_REQ_set0_signature | 1 | ASN1_BIT_STRING * | +| (X509_REQ *,ASN1_OCTET_STRING *) | | X509_REQ_set0_distinguishing_id | 0 | X509_REQ * | +| (X509_REQ *,ASN1_OCTET_STRING *) | | X509_REQ_set0_distinguishing_id | 1 | ASN1_OCTET_STRING * | +| (X509_REQ *,EVP_MD_CTX *) | | X509_REQ_sign_ctx | 0 | X509_REQ * | +| (X509_REQ *,EVP_MD_CTX *) | | X509_REQ_sign_ctx | 1 | EVP_MD_CTX * | +| (X509_REQ *,EVP_PKEY *,const EVP_MD *) | | X509_REQ_sign | 0 | X509_REQ * | +| (X509_REQ *,EVP_PKEY *,const EVP_MD *) | | X509_REQ_sign | 1 | EVP_PKEY * | +| (X509_REQ *,EVP_PKEY *,const EVP_MD *) | | X509_REQ_sign | 2 | const EVP_MD * | +| (X509_REQ *,EVP_PKEY *,stack_st_OPENSSL_STRING *) | | do_X509_REQ_verify | 0 | X509_REQ * | +| (X509_REQ *,EVP_PKEY *,stack_st_OPENSSL_STRING *) | | do_X509_REQ_verify | 1 | EVP_PKEY * | +| (X509_REQ *,EVP_PKEY *,stack_st_OPENSSL_STRING *) | | do_X509_REQ_verify | 2 | stack_st_OPENSSL_STRING * | +| (X509_REQ *,OSSL_LIB_CTX *,const char *) | | ossl_x509_req_set0_libctx | 0 | X509_REQ * | +| (X509_REQ *,OSSL_LIB_CTX *,const char *) | | ossl_x509_req_set0_libctx | 1 | OSSL_LIB_CTX * | +| (X509_REQ *,OSSL_LIB_CTX *,const char *) | | ossl_x509_req_set0_libctx | 2 | const char * | +| (X509_REQ *,X509_ALGOR *) | | X509_REQ_set1_signature_algo | 0 | X509_REQ * | +| (X509_REQ *,X509_ALGOR *) | | X509_REQ_set1_signature_algo | 1 | X509_ALGOR * | +| (X509_REQ *,X509_ATTRIBUTE *) | | X509_REQ_add1_attr | 0 | X509_REQ * | +| (X509_REQ *,X509_ATTRIBUTE *) | | X509_REQ_add1_attr | 1 | X509_ATTRIBUTE * | +| (X509_REQ *,const X509_NAME *) | | X509_REQ_set_subject_name | 0 | X509_REQ * | +| (X509_REQ *,const X509_NAME *) | | X509_REQ_set_subject_name | 1 | const X509_NAME * | +| (X509_REQ *,const char *) | | x509_req_ctrl_string | 0 | X509_REQ * | +| (X509_REQ *,const char *) | | x509_req_ctrl_string | 1 | const char * | +| (X509_REQ *,int) | | X509_REQ_delete_attr | 0 | X509_REQ * | +| (X509_REQ *,int) | | X509_REQ_delete_attr | 1 | int | +| (X509_REQ *,unsigned char **) | | i2d_re_X509_REQ_tbs | 0 | X509_REQ * | +| (X509_REQ *,unsigned char **) | | i2d_re_X509_REQ_tbs | 1 | unsigned char ** | +| (X509_REQ_INFO *) | | X509_REQ_INFO_free | 0 | X509_REQ_INFO * | +| (X509_REQ_INFO **,const unsigned char **,long) | | d2i_X509_REQ_INFO | 0 | X509_REQ_INFO ** | +| (X509_REQ_INFO **,const unsigned char **,long) | | d2i_X509_REQ_INFO | 1 | const unsigned char ** | +| (X509_REQ_INFO **,const unsigned char **,long) | | d2i_X509_REQ_INFO | 2 | long | +| (X509_REVOKED *) | | X509_REVOKED_free | 0 | X509_REVOKED * | +| (X509_REVOKED **,const unsigned char **,long) | | d2i_X509_REVOKED | 0 | X509_REVOKED ** | +| (X509_REVOKED **,const unsigned char **,long) | | d2i_X509_REVOKED | 1 | const unsigned char ** | +| (X509_REVOKED **,const unsigned char **,long) | | d2i_X509_REVOKED | 2 | long | +| (X509_REVOKED *,ASN1_TIME *) | | X509_REVOKED_set_revocationDate | 0 | X509_REVOKED * | +| (X509_REVOKED *,ASN1_TIME *) | | X509_REVOKED_set_revocationDate | 1 | ASN1_TIME * | +| (X509_REVOKED *,X509_EXTENSION *,int) | | X509_REVOKED_add_ext | 0 | X509_REVOKED * | +| (X509_REVOKED *,X509_EXTENSION *,int) | | X509_REVOKED_add_ext | 1 | X509_EXTENSION * | +| (X509_REVOKED *,X509_EXTENSION *,int) | | X509_REVOKED_add_ext | 2 | int | +| (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 0 | X509_REVOKED * | +| (X509_REVOKED *,int) | | X509_REVOKED_delete_ext | 1 | int | +| (X509_REVOKED *,int,void *,int,unsigned long) | | X509_REVOKED_add1_ext_i2d | 0 | X509_REVOKED * | +| (X509_REVOKED *,int,void *,int,unsigned long) | | X509_REVOKED_add1_ext_i2d | 1 | int | +| (X509_REVOKED *,int,void *,int,unsigned long) | | X509_REVOKED_add1_ext_i2d | 2 | void * | +| (X509_REVOKED *,int,void *,int,unsigned long) | | X509_REVOKED_add1_ext_i2d | 3 | int | +| (X509_REVOKED *,int,void *,int,unsigned long) | | X509_REVOKED_add1_ext_i2d | 4 | unsigned long | +| (X509_SIG *) | | PKCS12_SAFEBAG_create0_pkcs8 | 0 | X509_SIG * | +| (X509_SIG *) | | X509_SIG_free | 0 | X509_SIG * | +| (X509_SIG **,const unsigned char **,long) | | d2i_X509_SIG | 0 | X509_SIG ** | +| (X509_SIG **,const unsigned char **,long) | | d2i_X509_SIG | 1 | const unsigned char ** | +| (X509_SIG **,const unsigned char **,long) | | d2i_X509_SIG | 2 | long | +| (X509_SIG *,X509_ALGOR **,ASN1_OCTET_STRING **) | | X509_SIG_getm | 0 | X509_SIG * | +| (X509_SIG *,X509_ALGOR **,ASN1_OCTET_STRING **) | | X509_SIG_getm | 1 | X509_ALGOR ** | +| (X509_SIG *,X509_ALGOR **,ASN1_OCTET_STRING **) | | X509_SIG_getm | 2 | ASN1_OCTET_STRING ** | +| (X509_SIG_INFO *,int,int,int,uint32_t) | | X509_SIG_INFO_set | 0 | X509_SIG_INFO * | +| (X509_SIG_INFO *,int,int,int,uint32_t) | | X509_SIG_INFO_set | 1 | int | +| (X509_SIG_INFO *,int,int,int,uint32_t) | | X509_SIG_INFO_set | 2 | int | +| (X509_SIG_INFO *,int,int,int,uint32_t) | | X509_SIG_INFO_set | 3 | int | +| (X509_SIG_INFO *,int,int,int,uint32_t) | | X509_SIG_INFO_set | 4 | uint32_t | +| (X509_STORE *) | | X509_STORE_get1_objects | 0 | X509_STORE * | +| (X509_STORE *,X509_LOOKUP_METHOD *) | | X509_STORE_add_lookup | 0 | X509_STORE * | +| (X509_STORE *,X509_LOOKUP_METHOD *) | | X509_STORE_add_lookup | 1 | X509_LOOKUP_METHOD * | +| (X509_STORE *,X509_STORE_CTX *,BIO *,PKCS7 *,PKCS7_SIGNER_INFO *) | | PKCS7_dataVerify | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX *,BIO *,PKCS7 *,PKCS7_SIGNER_INFO *) | | PKCS7_dataVerify | 1 | X509_STORE_CTX * | +| (X509_STORE *,X509_STORE_CTX *,BIO *,PKCS7 *,PKCS7_SIGNER_INFO *) | | PKCS7_dataVerify | 2 | BIO * | +| (X509_STORE *,X509_STORE_CTX *,BIO *,PKCS7 *,PKCS7_SIGNER_INFO *) | | PKCS7_dataVerify | 3 | PKCS7 * | +| (X509_STORE *,X509_STORE_CTX *,BIO *,PKCS7 *,PKCS7_SIGNER_INFO *) | | PKCS7_dataVerify | 4 | PKCS7_SIGNER_INFO * | +| (X509_STORE *,X509_STORE_CTX_cert_crl_fn) | | X509_STORE_set_cert_crl | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_cert_crl_fn) | | X509_STORE_set_cert_crl | 1 | X509_STORE_CTX_cert_crl_fn | +| (X509_STORE *,X509_STORE_CTX_check_crl_fn) | | X509_STORE_set_check_crl | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_check_crl_fn) | | X509_STORE_set_check_crl | 1 | X509_STORE_CTX_check_crl_fn | +| (X509_STORE *,X509_STORE_CTX_check_issued_fn) | | X509_STORE_set_check_issued | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_check_issued_fn) | | X509_STORE_set_check_issued | 1 | X509_STORE_CTX_check_issued_fn | +| (X509_STORE *,X509_STORE_CTX_check_policy_fn) | | X509_STORE_set_check_policy | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_check_policy_fn) | | X509_STORE_set_check_policy | 1 | X509_STORE_CTX_check_policy_fn | +| (X509_STORE *,X509_STORE_CTX_check_revocation_fn) | | X509_STORE_set_check_revocation | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_check_revocation_fn) | | X509_STORE_set_check_revocation | 1 | X509_STORE_CTX_check_revocation_fn | +| (X509_STORE *,X509_STORE_CTX_cleanup_fn) | | X509_STORE_set_cleanup | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_cleanup_fn) | | X509_STORE_set_cleanup | 1 | X509_STORE_CTX_cleanup_fn | +| (X509_STORE *,X509_STORE_CTX_get_crl_fn) | | X509_STORE_set_get_crl | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_get_crl_fn) | | X509_STORE_set_get_crl | 1 | X509_STORE_CTX_get_crl_fn | +| (X509_STORE *,X509_STORE_CTX_get_issuer_fn) | | X509_STORE_set_get_issuer | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_get_issuer_fn) | | X509_STORE_set_get_issuer | 1 | X509_STORE_CTX_get_issuer_fn | +| (X509_STORE *,X509_STORE_CTX_lookup_certs_fn) | | X509_STORE_set_lookup_certs | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_lookup_certs_fn) | | X509_STORE_set_lookup_certs | 1 | X509_STORE_CTX_lookup_certs_fn | +| (X509_STORE *,X509_STORE_CTX_lookup_crls_fn) | | X509_STORE_set_lookup_crls | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_lookup_crls_fn) | | X509_STORE_set_lookup_crls | 1 | X509_STORE_CTX_lookup_crls_fn | +| (X509_STORE *,X509_STORE_CTX_verify_cb) | | X509_STORE_set_verify_cb | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_verify_cb) | | X509_STORE_set_verify_cb | 1 | X509_STORE_CTX_verify_cb | +| (X509_STORE *,X509_STORE_CTX_verify_fn) | | X509_STORE_set_verify | 0 | X509_STORE * | +| (X509_STORE *,X509_STORE_CTX_verify_fn) | | X509_STORE_set_verify | 1 | X509_STORE_CTX_verify_fn | +| (X509_STORE *,const X509_VERIFY_PARAM *) | | X509_STORE_set1_param | 0 | X509_STORE * | +| (X509_STORE *,const X509_VERIFY_PARAM *) | | X509_STORE_set1_param | 1 | const X509_VERIFY_PARAM * | +| (X509_STORE *,int) | | X509_STORE_set_depth | 0 | X509_STORE * | +| (X509_STORE *,int) | | X509_STORE_set_depth | 1 | int | +| (X509_STORE *,int) | | X509_STORE_set_purpose | 0 | X509_STORE * | +| (X509_STORE *,int) | | X509_STORE_set_purpose | 1 | int | +| (X509_STORE *,int) | | X509_STORE_set_trust | 0 | X509_STORE * | +| (X509_STORE *,int) | | X509_STORE_set_trust | 1 | int | +| (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 0 | X509_STORE * | +| (X509_STORE *,unsigned long) | | X509_STORE_set_flags | 1 | unsigned long | +| (X509_STORE_CTX *,EVP_PKEY *) | | X509_STORE_CTX_set0_rpk | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,EVP_PKEY *) | | X509_STORE_CTX_set0_rpk | 1 | EVP_PKEY * | +| (X509_STORE_CTX *,SSL_DANE *) | | X509_STORE_CTX_set0_dane | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,SSL_DANE *) | | X509_STORE_CTX_set0_dane | 1 | SSL_DANE * | +| (X509_STORE_CTX *,X509 *) | | X509_STORE_CTX_set_cert | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,X509 *) | | X509_STORE_CTX_set_cert | 1 | X509 * | +| (X509_STORE_CTX *,X509 *) | | X509_STORE_CTX_set_current_cert | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,X509 *) | | X509_STORE_CTX_set_current_cert | 1 | X509 * | +| (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 1 | X509 * | +| (X509_STORE_CTX *,X509 *,int) | | ossl_x509_check_cert_time | 2 | int | +| (X509_STORE_CTX *,X509_STORE *,EVP_PKEY *) | | X509_STORE_CTX_init_rpk | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,X509_STORE *,EVP_PKEY *) | | X509_STORE_CTX_init_rpk | 1 | X509_STORE * | +| (X509_STORE_CTX *,X509_STORE *,EVP_PKEY *) | | X509_STORE_CTX_init_rpk | 2 | EVP_PKEY * | +| (X509_STORE_CTX *,X509_STORE *,X509 *,stack_st_X509 *) | | X509_STORE_CTX_init | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,X509_STORE *,X509 *,stack_st_X509 *) | | X509_STORE_CTX_init | 1 | X509_STORE * | +| (X509_STORE_CTX *,X509_STORE *,X509 *,stack_st_X509 *) | | X509_STORE_CTX_init | 2 | X509 * | +| (X509_STORE_CTX *,X509_STORE *,X509 *,stack_st_X509 *) | | X509_STORE_CTX_init | 3 | stack_st_X509 * | +| (X509_STORE_CTX *,X509_STORE_CTX_get_crl_fn) | | X509_STORE_CTX_set_get_crl | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,X509_STORE_CTX_get_crl_fn) | | X509_STORE_CTX_set_get_crl | 1 | X509_STORE_CTX_get_crl_fn | +| (X509_STORE_CTX *,X509_STORE_CTX_verify_cb) | | X509_STORE_CTX_set_verify_cb | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,X509_STORE_CTX_verify_cb) | | X509_STORE_CTX_set_verify_cb | 1 | X509_STORE_CTX_verify_cb | +| (X509_STORE_CTX *,X509_STORE_CTX_verify_fn) | | X509_STORE_CTX_set_verify | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,X509_STORE_CTX_verify_fn) | | X509_STORE_CTX_set_verify | 1 | X509_STORE_CTX_verify_fn | +| (X509_STORE_CTX *,X509_VERIFY_PARAM *) | | X509_STORE_CTX_set0_param | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,X509_VERIFY_PARAM *) | | X509_STORE_CTX_set0_param | 1 | X509_VERIFY_PARAM * | +| (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_depth | 1 | int | +| (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error | 1 | int | +| (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_error_depth | 1 | int | +| (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_purpose | 1 | int | +| (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,int) | | X509_STORE_CTX_set_trust | 1 | int | +| (X509_STORE_CTX *,int,int,int) | | X509_STORE_CTX_purpose_inherit | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,int,int,int) | | X509_STORE_CTX_purpose_inherit | 1 | int | +| (X509_STORE_CTX *,int,int,int) | | X509_STORE_CTX_purpose_inherit | 2 | int | +| (X509_STORE_CTX *,int,int,int) | | X509_STORE_CTX_purpose_inherit | 3 | int | +| (X509_STORE_CTX *,stack_st_X509 *) | | X509_STORE_CTX_set0_trusted_stack | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,stack_st_X509 *) | | X509_STORE_CTX_set0_trusted_stack | 1 | stack_st_X509 * | +| (X509_STORE_CTX *,stack_st_X509 *) | | X509_STORE_CTX_set0_untrusted | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,stack_st_X509 *) | | X509_STORE_CTX_set0_untrusted | 1 | stack_st_X509 * | +| (X509_STORE_CTX *,stack_st_X509 *) | | X509_STORE_CTX_set0_verified_chain | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,stack_st_X509 *) | | X509_STORE_CTX_set0_verified_chain | 1 | stack_st_X509 * | +| (X509_STORE_CTX *,stack_st_X509_CRL *) | | X509_STORE_CTX_set0_crls | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,stack_st_X509_CRL *) | | X509_STORE_CTX_set0_crls | 1 | stack_st_X509_CRL * | +| (X509_STORE_CTX *,unsigned int) | | X509_STORE_CTX_set_current_reasons | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,unsigned int) | | X509_STORE_CTX_set_current_reasons | 1 | unsigned int | +| (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,unsigned long) | | X509_STORE_CTX_set_flags | 1 | unsigned long | +| (X509_STORE_CTX *,unsigned long,time_t) | | X509_STORE_CTX_set_time | 0 | X509_STORE_CTX * | +| (X509_STORE_CTX *,unsigned long,time_t) | | X509_STORE_CTX_set_time | 1 | unsigned long | +| (X509_STORE_CTX *,unsigned long,time_t) | | X509_STORE_CTX_set_time | 2 | time_t | +| (X509_VAL *) | | X509_VAL_free | 0 | X509_VAL * | +| (X509_VAL **,const unsigned char **,long) | | d2i_X509_VAL | 0 | X509_VAL ** | +| (X509_VAL **,const unsigned char **,long) | | d2i_X509_VAL | 1 | const unsigned char ** | +| (X509_VAL **,const unsigned char **,long) | | d2i_X509_VAL | 2 | long | +| (X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_get0_email | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,ASN1_OBJECT *) | | X509_VERIFY_PARAM_add0_policy | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,ASN1_OBJECT *) | | X509_VERIFY_PARAM_add0_policy | 1 | ASN1_OBJECT * | +| (X509_VERIFY_PARAM *,X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_move_peername | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_move_peername | 1 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_inherit | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_inherit | 1 | const X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_set1 | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_set1 | 1 | const X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_ip_asc | 1 | const char * | +| (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const char *) | | X509_VERIFY_PARAM_set1_name | 1 | const char * | +| (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_add1_host | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_add1_host | 1 | const char * | +| (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_add1_host | 2 | size_t | +| (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 1 | const char * | +| (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_email | 2 | size_t | +| (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 1 | const char * | +| (X509_VERIFY_PARAM *,const char *,size_t) | | X509_VERIFY_PARAM_set1_host | 2 | size_t | +| (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 1 | const unsigned char * | +| (X509_VERIFY_PARAM *,const unsigned char *,size_t) | | X509_VERIFY_PARAM_set1_ip | 2 | size_t | +| (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_get0_host | 1 | int | +| (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_auth_level | 1 | int | +| (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_depth | 1 | int | +| (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_purpose | 1 | int | +| (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,int) | | X509_VERIFY_PARAM_set_trust | 1 | int | +| (X509_VERIFY_PARAM *,stack_st_ASN1_OBJECT *) | | X509_VERIFY_PARAM_set1_policies | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,stack_st_ASN1_OBJECT *) | | X509_VERIFY_PARAM_set1_policies | 1 | stack_st_ASN1_OBJECT * | +| (X509_VERIFY_PARAM *,time_t) | | X509_VERIFY_PARAM_set_time | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,time_t) | | X509_VERIFY_PARAM_set_time | 1 | time_t | +| (X509_VERIFY_PARAM *,uint32_t) | | X509_VERIFY_PARAM_set_inh_flags | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,uint32_t) | | X509_VERIFY_PARAM_set_inh_flags | 1 | uint32_t | +| (X509_VERIFY_PARAM *,unsigned int) | | X509_VERIFY_PARAM_set_hostflags | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,unsigned int) | | X509_VERIFY_PARAM_set_hostflags | 1 | unsigned int | +| (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_clear_flags | 1 | unsigned long | +| (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 0 | X509_VERIFY_PARAM * | +| (X509_VERIFY_PARAM *,unsigned long) | | X509_VERIFY_PARAM_set_flags | 1 | unsigned long | | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 0 | XCHAR * | | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 1 | const XCHAR * | | (XCHAR *,const XCHAR *,int) | CSimpleStringT | CopyChars | 2 | int | @@ -724,7 +21938,110 @@ getSignatureParameterName | (XCHAR,XCHAR) | CStringT | Replace | 0 | XCHAR | | (XCHAR,XCHAR) | CStringT | Replace | 1 | XCHAR | | (YCHAR) | CStringT | operator= | 0 | YCHAR | +| (action **,e_action,symbol *,char *) | | Action_add | 0 | action ** | +| (action **,e_action,symbol *,char *) | | Action_add | 1 | e_action | +| (action **,e_action,symbol *,char *) | | Action_add | 2 | symbol * | +| (action **,e_action,symbol *,char *) | | Action_add | 3 | char * | +| (action *,FILE *,int) | | PrintAction | 0 | action * | +| (action *,FILE *,int) | | PrintAction | 1 | FILE * | +| (action *,FILE *,int) | | PrintAction | 2 | int | +| (acttab *) | | acttab_action_size | 0 | acttab * | +| (acttab *,int) | | acttab_insert | 0 | acttab * | +| (acttab *,int) | | acttab_insert | 1 | int | +| (acttab *,int,int) | | acttab_action | 0 | acttab * | +| (acttab *,int,int) | | acttab_action | 1 | int | +| (acttab *,int,int) | | acttab_action | 2 | int | +| (char *) | | SRP_VBASE_new | 0 | char * | +| (char *) | | defossilize | 0 | char * | +| (char *) | | make_uppercase | 0 | char * | +| (char *) | | next_item | 0 | char * | | (char *) | CStringT | CStringT | 0 | char * | +| (char **) | | OCSP_accept_responses_new | 0 | char ** | +| (char **) | | sqlite3_free_table | 0 | char ** | +| (char **,s_options *,FILE *) | | OptInit | 0 | char ** | +| (char **,s_options *,FILE *) | | OptInit | 1 | s_options * | +| (char **,s_options *,FILE *) | | OptInit | 2 | FILE * | +| (char *,EVP_CIPHER_INFO *) | | PEM_get_EVP_CIPHER_INFO | 0 | char * | +| (char *,EVP_CIPHER_INFO *) | | PEM_get_EVP_CIPHER_INFO | 1 | EVP_CIPHER_INFO * | +| (char *,FILE *,FILE *,int *) | | tplt_xfer | 0 | char * | +| (char *,FILE *,FILE *,int *) | | tplt_xfer | 1 | FILE * | +| (char *,FILE *,FILE *,int *) | | tplt_xfer | 2 | FILE * | +| (char *,FILE *,FILE *,int *) | | tplt_xfer | 3 | int * | +| (char *,const char *,const char *,X509_VERIFY_PARAM *) | | load_certs_multifile | 0 | char * | +| (char *,const char *,const char *,X509_VERIFY_PARAM *) | | load_certs_multifile | 1 | const char * | +| (char *,const char *,const char *,X509_VERIFY_PARAM *) | | load_certs_multifile | 2 | const char * | +| (char *,const char *,const char *,X509_VERIFY_PARAM *) | | load_certs_multifile | 3 | X509_VERIFY_PARAM * | +| (char *,const char *,const char *,X509_VERIFY_PARAM *) | | load_certstore | 0 | char * | +| (char *,const char *,const char *,X509_VERIFY_PARAM *) | | load_certstore | 1 | const char * | +| (char *,const char *,const char *,X509_VERIFY_PARAM *) | | load_certstore | 2 | const char * | +| (char *,const char *,const char *,X509_VERIFY_PARAM *) | | load_certstore | 3 | X509_VERIFY_PARAM * | +| (char *,const char *,int,const char *) | | PEM_dek_info | 0 | char * | +| (char *,const char *,int,const char *) | | PEM_dek_info | 1 | const char * | +| (char *,const char *,int,const char *) | | PEM_dek_info | 2 | int | +| (char *,const char *,int,const char *) | | PEM_dek_info | 3 | const char * | +| (char *,const char *,size_t) | | OPENSSL_strlcat | 0 | char * | +| (char *,const char *,size_t) | | OPENSSL_strlcat | 1 | const char * | +| (char *,const char *,size_t) | | OPENSSL_strlcat | 2 | size_t | +| (char *,const char *,size_t) | | OPENSSL_strlcpy | 0 | char * | +| (char *,const char *,size_t) | | OPENSSL_strlcpy | 1 | const char * | +| (char *,const char *,size_t) | | OPENSSL_strlcpy | 2 | size_t | +| (char *,int) | | PEM_proc_type | 0 | char * | +| (char *,int) | | PEM_proc_type | 1 | int | +| (char *,int,const ASN1_OBJECT *) | | i2t_ASN1_OBJECT | 0 | char * | +| (char *,int,const ASN1_OBJECT *) | | i2t_ASN1_OBJECT | 1 | int | +| (char *,int,const ASN1_OBJECT *) | | i2t_ASN1_OBJECT | 2 | const ASN1_OBJECT * | +| (char *,int,const ASN1_OBJECT *,int) | | OBJ_obj2txt | 0 | char * | +| (char *,int,const ASN1_OBJECT *,int) | | OBJ_obj2txt | 1 | int | +| (char *,int,const ASN1_OBJECT *,int) | | OBJ_obj2txt | 2 | const ASN1_OBJECT * | +| (char *,int,const ASN1_OBJECT *,int) | | OBJ_obj2txt | 3 | int | +| (char *,int,int,void *) | | PEM_def_callback | 0 | char * | +| (char *,int,int,void *) | | PEM_def_callback | 1 | int | +| (char *,int,int,void *) | | PEM_def_callback | 2 | int | +| (char *,int,int,void *) | | PEM_def_callback | 3 | void * | +| (char *,int,int,void *) | | ossl_pw_pem_password | 0 | char * | +| (char *,int,int,void *) | | ossl_pw_pem_password | 1 | int | +| (char *,int,int,void *) | | ossl_pw_pem_password | 2 | int | +| (char *,int,int,void *) | | ossl_pw_pem_password | 3 | void * | +| (char *,int,int,void *) | | ossl_pw_pvk_password | 0 | char * | +| (char *,int,int,void *) | | ossl_pw_pvk_password | 1 | int | +| (char *,int,int,void *) | | ossl_pw_pvk_password | 2 | int | +| (char *,int,int,void *) | | ossl_pw_pvk_password | 3 | void * | +| (char *,size_t) | | RAND_file_name | 0 | char * | +| (char *,size_t) | | RAND_file_name | 1 | size_t | +| (char *,size_t,const char *,...) | | BIO_snprintf | 0 | char * | +| (char *,size_t,const char *,...) | | BIO_snprintf | 1 | size_t | +| (char *,size_t,const char *,...) | | BIO_snprintf | 2 | const char * | +| (char *,size_t,const char *,...) | | BIO_snprintf | 3 | ... | +| (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 0 | char * | +| (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 1 | size_t | +| (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 2 | const char * | +| (char *,size_t,const char *,va_list) | | BIO_vsnprintf | 3 | va_list | +| (char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *) | | ossl_pw_get_passphrase | 0 | char * | +| (char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *) | | ossl_pw_get_passphrase | 1 | size_t | +| (char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *) | | ossl_pw_get_passphrase | 2 | size_t * | +| (char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *) | | ossl_pw_get_passphrase | 3 | const OSSL_PARAM[] | +| (char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *) | | ossl_pw_get_passphrase | 4 | int | +| (char *,size_t,size_t *,const OSSL_PARAM[],int,ossl_passphrase_data_st *) | | ossl_pw_get_passphrase | 5 | ossl_passphrase_data_st * | +| (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_dec | 0 | char * | +| (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_dec | 1 | size_t | +| (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_dec | 2 | size_t * | +| (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_dec | 3 | const OSSL_PARAM[] | +| (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_dec | 4 | void * | +| (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_enc | 0 | char * | +| (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_enc | 1 | size_t | +| (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_enc | 2 | size_t * | +| (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_enc | 3 | const OSSL_PARAM[] | +| (char *,size_t,size_t *,const OSSL_PARAM[],void *) | | ossl_pw_passphrase_callback_enc | 4 | void * | +| (char *,size_t,size_t *,const unsigned char *,size_t,const char) | | OPENSSL_buf2hexstr_ex | 0 | char * | +| (char *,size_t,size_t *,const unsigned char *,size_t,const char) | | OPENSSL_buf2hexstr_ex | 1 | size_t | +| (char *,size_t,size_t *,const unsigned char *,size_t,const char) | | OPENSSL_buf2hexstr_ex | 2 | size_t * | +| (char *,size_t,size_t *,const unsigned char *,size_t,const char) | | OPENSSL_buf2hexstr_ex | 3 | const unsigned char * | +| (char *,size_t,size_t *,const unsigned char *,size_t,const char) | | OPENSSL_buf2hexstr_ex | 4 | size_t | +| (char *,size_t,size_t *,const unsigned char *,size_t,const char) | | OPENSSL_buf2hexstr_ex | 5 | const char | +| (char *,uint8_t) | | ossl_to_hex | 0 | char * | +| (char *,uint8_t) | | ossl_to_hex | 1 | uint8_t | +| (char *,unsigned int) | | utf8_fromunicode | 0 | char * | +| (char *,unsigned int) | | utf8_fromunicode | 1 | unsigned int | | (char) | | operator+= | 0 | char | | (char) | CComBSTR | Append | 0 | char | | (char) | CSimpleStringT | operator+= | 0 | char | @@ -732,10 +22049,504 @@ getSignatureParameterName | (char,const CStringT &) | | operator+ | 1 | const CStringT & | | (char,int) | CStringT | CStringT | 0 | char | | (char,int) | CStringT | CStringT | 1 | int | +| (config *) | | State_find | 0 | config * | +| (config *) | | confighash | 0 | config * | +| (config *) | | statehash | 0 | config * | +| (config *,config *) | | statecmp | 0 | config * | +| (config *,config *) | | statecmp | 1 | config * | +| (const ACCESS_DESCRIPTION *,unsigned char **) | | i2d_ACCESS_DESCRIPTION | 0 | const ACCESS_DESCRIPTION * | +| (const ACCESS_DESCRIPTION *,unsigned char **) | | i2d_ACCESS_DESCRIPTION | 1 | unsigned char ** | +| (const ADMISSIONS *) | | ADMISSIONS_get0_admissionAuthority | 0 | const ADMISSIONS * | +| (const ADMISSIONS *) | | ADMISSIONS_get0_namingAuthority | 0 | const ADMISSIONS * | +| (const ADMISSIONS *) | | ADMISSIONS_get0_professionInfos | 0 | const ADMISSIONS * | +| (const ADMISSIONS *,unsigned char **) | | i2d_ADMISSIONS | 0 | const ADMISSIONS * | +| (const ADMISSIONS *,unsigned char **) | | i2d_ADMISSIONS | 1 | unsigned char ** | +| (const ADMISSION_SYNTAX *) | | ADMISSION_SYNTAX_get0_admissionAuthority | 0 | const ADMISSION_SYNTAX * | +| (const ADMISSION_SYNTAX *) | | ADMISSION_SYNTAX_get0_contentsOfAdmissions | 0 | const ADMISSION_SYNTAX * | +| (const ADMISSION_SYNTAX *,unsigned char **) | | i2d_ADMISSION_SYNTAX | 0 | const ADMISSION_SYNTAX * | +| (const ADMISSION_SYNTAX *,unsigned char **) | | i2d_ADMISSION_SYNTAX | 1 | unsigned char ** | +| (const ASIdOrRange *,unsigned char **) | | i2d_ASIdOrRange | 0 | const ASIdOrRange * | +| (const ASIdOrRange *,unsigned char **) | | i2d_ASIdOrRange | 1 | unsigned char ** | +| (const ASIdentifierChoice *,unsigned char **) | | i2d_ASIdentifierChoice | 0 | const ASIdentifierChoice * | +| (const ASIdentifierChoice *,unsigned char **) | | i2d_ASIdentifierChoice | 1 | unsigned char ** | +| (const ASIdentifiers *,unsigned char **) | | i2d_ASIdentifiers | 0 | const ASIdentifiers * | +| (const ASIdentifiers *,unsigned char **) | | i2d_ASIdentifiers | 1 | unsigned char ** | +| (const ASN1_BIT_STRING **,const X509_ALGOR **,const X509 *) | | X509_get0_signature | 0 | const ASN1_BIT_STRING ** | +| (const ASN1_BIT_STRING **,const X509_ALGOR **,const X509 *) | | X509_get0_signature | 1 | const X509_ALGOR ** | +| (const ASN1_BIT_STRING **,const X509_ALGOR **,const X509 *) | | X509_get0_signature | 2 | const X509 * | +| (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 0 | const ASN1_BIT_STRING * | +| (const ASN1_BIT_STRING *,int) | | ASN1_BIT_STRING_get_bit | 1 | int | +| (const ASN1_BIT_STRING *,unsigned char **) | | i2d_ASN1_BIT_STRING | 0 | const ASN1_BIT_STRING * | +| (const ASN1_BIT_STRING *,unsigned char **) | | i2d_ASN1_BIT_STRING | 1 | unsigned char ** | +| (const ASN1_BMPSTRING *,unsigned char **) | | i2d_ASN1_BMPSTRING | 0 | const ASN1_BMPSTRING * | +| (const ASN1_BMPSTRING *,unsigned char **) | | i2d_ASN1_BMPSTRING | 1 | unsigned char ** | +| (const ASN1_ENUMERATED *) | | ASN1_ENUMERATED_get | 0 | const ASN1_ENUMERATED * | +| (const ASN1_ENUMERATED *,BIGNUM *) | | ASN1_ENUMERATED_to_BN | 0 | const ASN1_ENUMERATED * | +| (const ASN1_ENUMERATED *,BIGNUM *) | | ASN1_ENUMERATED_to_BN | 1 | BIGNUM * | +| (const ASN1_ENUMERATED *,unsigned char **) | | i2d_ASN1_ENUMERATED | 0 | const ASN1_ENUMERATED * | +| (const ASN1_ENUMERATED *,unsigned char **) | | i2d_ASN1_ENUMERATED | 1 | unsigned char ** | +| (const ASN1_GENERALIZEDTIME *) | | ASN1_GENERALIZEDTIME_dup | 0 | const ASN1_GENERALIZEDTIME * | +| (const ASN1_GENERALIZEDTIME *,unsigned char **) | | i2d_ASN1_GENERALIZEDTIME | 0 | const ASN1_GENERALIZEDTIME * | +| (const ASN1_GENERALIZEDTIME *,unsigned char **) | | i2d_ASN1_GENERALIZEDTIME | 1 | unsigned char ** | +| (const ASN1_GENERALSTRING *,unsigned char **) | | i2d_ASN1_GENERALSTRING | 0 | const ASN1_GENERALSTRING * | +| (const ASN1_GENERALSTRING *,unsigned char **) | | i2d_ASN1_GENERALSTRING | 1 | unsigned char ** | +| (const ASN1_IA5STRING *,unsigned char **) | | i2d_ASN1_IA5STRING | 0 | const ASN1_IA5STRING * | +| (const ASN1_IA5STRING *,unsigned char **) | | i2d_ASN1_IA5STRING | 1 | unsigned char ** | +| (const ASN1_INTEGER *) | | ASN1_INTEGER_dup | 0 | const ASN1_INTEGER * | +| (const ASN1_INTEGER *) | | ASN1_INTEGER_get | 0 | const ASN1_INTEGER * | +| (const ASN1_INTEGER *) | | ossl_cmp_asn1_get_int | 0 | const ASN1_INTEGER * | +| (const ASN1_INTEGER *,BIGNUM *) | | ASN1_INTEGER_to_BN | 0 | const ASN1_INTEGER * | +| (const ASN1_INTEGER *,BIGNUM *) | | ASN1_INTEGER_to_BN | 1 | BIGNUM * | +| (const ASN1_INTEGER *,const ASN1_INTEGER *) | | ASN1_INTEGER_cmp | 0 | const ASN1_INTEGER * | +| (const ASN1_INTEGER *,const ASN1_INTEGER *) | | ASN1_INTEGER_cmp | 1 | const ASN1_INTEGER * | +| (const ASN1_INTEGER *,unsigned char **) | | i2d_ASN1_INTEGER | 0 | const ASN1_INTEGER * | +| (const ASN1_INTEGER *,unsigned char **) | | i2d_ASN1_INTEGER | 1 | unsigned char ** | +| (const ASN1_ITEM *) | | ASN1_item_new | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int) | | http_server_get_asn1_req | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int) | | http_server_get_asn1_req | 1 | ASN1_VALUE ** | +| (const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int) | | http_server_get_asn1_req | 2 | char ** | +| (const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int) | | http_server_get_asn1_req | 3 | BIO ** | +| (const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int) | | http_server_get_asn1_req | 4 | BIO * | +| (const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int) | | http_server_get_asn1_req | 5 | int * | +| (const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int) | | http_server_get_asn1_req | 6 | const char * | +| (const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int) | | http_server_get_asn1_req | 7 | int | +| (const ASN1_ITEM *,ASN1_VALUE **,char **,BIO **,BIO *,int *,const char *,int,int) | | http_server_get_asn1_req | 8 | int | +| (const ASN1_ITEM *,BIO *,const void *) | | ASN1_item_i2d_bio | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,BIO *,const void *) | | ASN1_item_i2d_bio | 1 | BIO * | +| (const ASN1_ITEM *,BIO *,const void *) | | ASN1_item_i2d_bio | 2 | const void * | +| (const ASN1_ITEM *,BIO *,void *) | | ASN1_item_d2i_bio | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,BIO *,void *) | | ASN1_item_d2i_bio | 1 | BIO * | +| (const ASN1_ITEM *,BIO *,void *) | | ASN1_item_d2i_bio | 2 | void * | +| (const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_bio_ex | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_bio_ex | 1 | BIO * | +| (const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_bio_ex | 2 | void * | +| (const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_bio_ex | 3 | OSSL_LIB_CTX * | +| (const ASN1_ITEM *,BIO *,void *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_bio_ex | 4 | const char * | +| (const ASN1_ITEM *,FILE *,const void *) | | ASN1_item_i2d_fp | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,FILE *,const void *) | | ASN1_item_i2d_fp | 1 | FILE * | +| (const ASN1_ITEM *,FILE *,const void *) | | ASN1_item_i2d_fp | 2 | const void * | +| (const ASN1_ITEM *,FILE *,void *) | | ASN1_item_d2i_fp | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,FILE *,void *) | | ASN1_item_d2i_fp | 1 | FILE * | +| (const ASN1_ITEM *,FILE *,void *) | | ASN1_item_d2i_fp | 2 | void * | +| (const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_fp_ex | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_fp_ex | 1 | FILE * | +| (const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_fp_ex | 2 | void * | +| (const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_fp_ex | 3 | OSSL_LIB_CTX * | +| (const ASN1_ITEM *,FILE *,void *,OSSL_LIB_CTX *,const char *) | | ASN1_item_d2i_fp_ex | 4 | const char * | +| (const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_new_ex | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_new_ex | 1 | OSSL_LIB_CTX * | +| (const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_new_ex | 2 | const char * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_sign_ctx | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_sign_ctx | 1 | X509_ALGOR * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_sign_ctx | 2 | X509_ALGOR * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_sign_ctx | 3 | ASN1_BIT_STRING * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_sign_ctx | 4 | const void * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_sign_ctx | 5 | EVP_MD_CTX * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *) | | ASN1_item_sign | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *) | | ASN1_item_sign | 1 | X509_ALGOR * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *) | | ASN1_item_sign | 2 | X509_ALGOR * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *) | | ASN1_item_sign | 3 | ASN1_BIT_STRING * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *) | | ASN1_item_sign | 4 | const void * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *) | | ASN1_item_sign | 5 | EVP_PKEY * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,EVP_PKEY *,const EVP_MD *) | | ASN1_item_sign | 6 | const EVP_MD * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ASN1_item_sign_ex | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ASN1_item_sign_ex | 1 | X509_ALGOR * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ASN1_item_sign_ex | 2 | X509_ALGOR * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ASN1_item_sign_ex | 3 | ASN1_BIT_STRING * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ASN1_item_sign_ex | 4 | const void * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ASN1_item_sign_ex | 5 | const ASN1_OCTET_STRING * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ASN1_item_sign_ex | 6 | EVP_PKEY * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ASN1_item_sign_ex | 7 | const EVP_MD * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ASN1_item_sign_ex | 8 | OSSL_LIB_CTX * | +| (const ASN1_ITEM *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ASN1_item_sign_ex | 9 | const char * | +| (const ASN1_ITEM *,const ASN1_TYPE *) | | ASN1_TYPE_unpack_sequence | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,const ASN1_TYPE *) | | ASN1_TYPE_unpack_sequence | 1 | const ASN1_TYPE * | +| (const ASN1_ITEM *,const ASN1_VALUE *) | | ASN1_item_i2d_mem_bio | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,const ASN1_VALUE *) | | ASN1_item_i2d_mem_bio | 1 | const ASN1_VALUE * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *) | | ASN1_item_digest | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *) | | ASN1_item_digest | 1 | const EVP_MD * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *) | | ASN1_item_digest | 2 | void * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *) | | ASN1_item_digest | 3 | unsigned char * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *) | | ASN1_item_digest | 4 | unsigned int * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_digest_ex | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_digest_ex | 1 | const EVP_MD * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_digest_ex | 2 | void * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_digest_ex | 3 | unsigned char * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_digest_ex | 4 | unsigned int * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_digest_ex | 5 | OSSL_LIB_CTX * | +| (const ASN1_ITEM *,const EVP_MD *,void *,unsigned char *,unsigned int *,OSSL_LIB_CTX *,const char *) | | ossl_asn1_item_digest_ex | 6 | const char * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_verify_ctx | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_verify_ctx | 1 | const X509_ALGOR * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_verify_ctx | 2 | const ASN1_BIT_STRING * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_verify_ctx | 3 | const void * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_MD_CTX *) | | ASN1_item_verify_ctx | 4 | EVP_MD_CTX * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_PKEY *) | | ASN1_item_verify | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_PKEY *) | | ASN1_item_verify | 1 | const X509_ALGOR * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_PKEY *) | | ASN1_item_verify | 2 | const ASN1_BIT_STRING * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_PKEY *) | | ASN1_item_verify | 3 | const void * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,EVP_PKEY *) | | ASN1_item_verify | 4 | EVP_PKEY * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | ASN1_item_verify_ex | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | ASN1_item_verify_ex | 1 | const X509_ALGOR * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | ASN1_item_verify_ex | 2 | const ASN1_BIT_STRING * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | ASN1_item_verify_ex | 3 | const void * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | ASN1_item_verify_ex | 4 | const ASN1_OCTET_STRING * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | ASN1_item_verify_ex | 5 | EVP_PKEY * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | ASN1_item_verify_ex | 6 | OSSL_LIB_CTX * | +| (const ASN1_ITEM *,const X509_ALGOR *,const ASN1_BIT_STRING *,const void *,const ASN1_OCTET_STRING *,EVP_PKEY *,OSSL_LIB_CTX *,const char *) | | ASN1_item_verify_ex | 7 | const char * | +| (const ASN1_ITEM *,const void *) | | ASN1_item_dup | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,const void *) | | ASN1_item_dup | 1 | const void * | +| (const ASN1_ITEM *,void *,ASN1_TYPE **) | | ASN1_TYPE_pack_sequence | 0 | const ASN1_ITEM * | +| (const ASN1_ITEM *,void *,ASN1_TYPE **) | | ASN1_TYPE_pack_sequence | 1 | void * | +| (const ASN1_ITEM *,void *,ASN1_TYPE **) | | ASN1_TYPE_pack_sequence | 2 | ASN1_TYPE ** | +| (const ASN1_NULL *,unsigned char **) | | i2d_ASN1_NULL | 0 | const ASN1_NULL * | +| (const ASN1_NULL *,unsigned char **) | | i2d_ASN1_NULL | 1 | unsigned char ** | +| (const ASN1_OBJECT *) | | OBJ_add_object | 0 | const ASN1_OBJECT * | +| (const ASN1_OBJECT *) | | OBJ_dup | 0 | const ASN1_OBJECT * | +| (const ASN1_OBJECT *) | | OBJ_get0_data | 0 | const ASN1_OBJECT * | +| (const ASN1_OBJECT *) | | OBJ_length | 0 | const ASN1_OBJECT * | +| (const ASN1_OBJECT *) | | OBJ_obj2nid | 0 | const ASN1_OBJECT * | +| (const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *) | | PKCS8_pkey_get0 | 0 | const ASN1_OBJECT ** | +| (const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *) | | PKCS8_pkey_get0 | 1 | const unsigned char ** | +| (const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *) | | PKCS8_pkey_get0 | 2 | int * | +| (const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *) | | PKCS8_pkey_get0 | 3 | const X509_ALGOR ** | +| (const ASN1_OBJECT **,const unsigned char **,int *,const X509_ALGOR **,const PKCS8_PRIV_KEY_INFO *) | | PKCS8_pkey_get0 | 4 | const PKCS8_PRIV_KEY_INFO * | +| (const ASN1_OBJECT **,int *,const void **,const X509_ALGOR *) | | X509_ALGOR_get0 | 0 | const ASN1_OBJECT ** | +| (const ASN1_OBJECT **,int *,const void **,const X509_ALGOR *) | | X509_ALGOR_get0 | 1 | int * | +| (const ASN1_OBJECT **,int *,const void **,const X509_ALGOR *) | | X509_ALGOR_get0 | 2 | const void ** | +| (const ASN1_OBJECT **,int *,const void **,const X509_ALGOR *) | | X509_ALGOR_get0 | 3 | const X509_ALGOR * | +| (const ASN1_OBJECT *,const ASN1_OBJECT *) | | OBJ_cmp | 0 | const ASN1_OBJECT * | +| (const ASN1_OBJECT *,const ASN1_OBJECT *) | | OBJ_cmp | 1 | const ASN1_OBJECT * | +| (const ASN1_OBJECT *,unsigned char **) | | i2d_ASN1_OBJECT | 0 | const ASN1_OBJECT * | +| (const ASN1_OBJECT *,unsigned char **) | | i2d_ASN1_OBJECT | 1 | unsigned char ** | +| (const ASN1_OCTET_STRING *) | | ASN1_OCTET_STRING_dup | 0 | const ASN1_OCTET_STRING * | +| (const ASN1_OCTET_STRING **,const X509_ALGOR **,const ASN1_OCTET_STRING **,const ASN1_INTEGER **,const PKCS12 *) | | PKCS12_get0_mac | 0 | const ASN1_OCTET_STRING ** | +| (const ASN1_OCTET_STRING **,const X509_ALGOR **,const ASN1_OCTET_STRING **,const ASN1_INTEGER **,const PKCS12 *) | | PKCS12_get0_mac | 1 | const X509_ALGOR ** | +| (const ASN1_OCTET_STRING **,const X509_ALGOR **,const ASN1_OCTET_STRING **,const ASN1_INTEGER **,const PKCS12 *) | | PKCS12_get0_mac | 2 | const ASN1_OCTET_STRING ** | +| (const ASN1_OCTET_STRING **,const X509_ALGOR **,const ASN1_OCTET_STRING **,const ASN1_INTEGER **,const PKCS12 *) | | PKCS12_get0_mac | 3 | const ASN1_INTEGER ** | +| (const ASN1_OCTET_STRING **,const X509_ALGOR **,const ASN1_OCTET_STRING **,const ASN1_INTEGER **,const PKCS12 *) | | PKCS12_get0_mac | 4 | const PKCS12 * | +| (const ASN1_OCTET_STRING *,const ASN1_OCTET_STRING *) | | ASN1_OCTET_STRING_cmp | 0 | const ASN1_OCTET_STRING * | +| (const ASN1_OCTET_STRING *,const ASN1_OCTET_STRING *) | | ASN1_OCTET_STRING_cmp | 1 | const ASN1_OCTET_STRING * | +| (const ASN1_OCTET_STRING *,unsigned char **) | | i2d_ASN1_OCTET_STRING | 0 | const ASN1_OCTET_STRING * | +| (const ASN1_OCTET_STRING *,unsigned char **) | | i2d_ASN1_OCTET_STRING | 1 | unsigned char ** | +| (const ASN1_PCTX *) | | ASN1_PCTX_get_cert_flags | 0 | const ASN1_PCTX * | +| (const ASN1_PCTX *) | | ASN1_PCTX_get_flags | 0 | const ASN1_PCTX * | +| (const ASN1_PCTX *) | | ASN1_PCTX_get_nm_flags | 0 | const ASN1_PCTX * | +| (const ASN1_PCTX *) | | ASN1_PCTX_get_oid_flags | 0 | const ASN1_PCTX * | +| (const ASN1_PCTX *) | | ASN1_PCTX_get_str_flags | 0 | const ASN1_PCTX * | +| (const ASN1_PRINTABLESTRING *,unsigned char **) | | i2d_ASN1_PRINTABLESTRING | 0 | const ASN1_PRINTABLESTRING * | +| (const ASN1_PRINTABLESTRING *,unsigned char **) | | i2d_ASN1_PRINTABLESTRING | 1 | unsigned char ** | +| (const ASN1_SEQUENCE_ANY *,unsigned char **) | | i2d_ASN1_SEQUENCE_ANY | 0 | const ASN1_SEQUENCE_ANY * | +| (const ASN1_SEQUENCE_ANY *,unsigned char **) | | i2d_ASN1_SEQUENCE_ANY | 1 | unsigned char ** | +| (const ASN1_SEQUENCE_ANY *,unsigned char **) | | i2d_ASN1_SET_ANY | 0 | const ASN1_SEQUENCE_ANY * | +| (const ASN1_SEQUENCE_ANY *,unsigned char **) | | i2d_ASN1_SET_ANY | 1 | unsigned char ** | +| (const ASN1_STRING *) | | ASN1_STRING_dup | 0 | const ASN1_STRING * | +| (const ASN1_STRING *) | | ASN1_STRING_get0_data | 0 | const ASN1_STRING * | +| (const ASN1_STRING *) | | ASN1_STRING_length | 0 | const ASN1_STRING * | +| (const ASN1_STRING *) | | ASN1_STRING_type | 0 | const ASN1_STRING * | +| (const ASN1_STRING *,const ASN1_ITEM *) | | ASN1_item_unpack | 0 | const ASN1_STRING * | +| (const ASN1_STRING *,const ASN1_ITEM *) | | ASN1_item_unpack | 1 | const ASN1_ITEM * | +| (const ASN1_STRING *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_unpack_ex | 0 | const ASN1_STRING * | +| (const ASN1_STRING *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_unpack_ex | 1 | const ASN1_ITEM * | +| (const ASN1_STRING *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_unpack_ex | 2 | OSSL_LIB_CTX * | +| (const ASN1_STRING *,const ASN1_ITEM *,OSSL_LIB_CTX *,const char *) | | ASN1_item_unpack_ex | 3 | const char * | +| (const ASN1_STRING *,const ASN1_STRING *) | | ASN1_STRING_cmp | 0 | const ASN1_STRING * | +| (const ASN1_STRING *,const ASN1_STRING *) | | ASN1_STRING_cmp | 1 | const ASN1_STRING * | +| (const ASN1_STRING *,unsigned char **) | | i2d_ASN1_PRINTABLE | 0 | const ASN1_STRING * | +| (const ASN1_STRING *,unsigned char **) | | i2d_ASN1_PRINTABLE | 1 | unsigned char ** | +| (const ASN1_STRING *,unsigned char **) | | i2d_DIRECTORYSTRING | 0 | const ASN1_STRING * | +| (const ASN1_STRING *,unsigned char **) | | i2d_DIRECTORYSTRING | 1 | unsigned char ** | +| (const ASN1_STRING *,unsigned char **) | | i2d_DISPLAYTEXT | 0 | const ASN1_STRING * | +| (const ASN1_STRING *,unsigned char **) | | i2d_DISPLAYTEXT | 1 | unsigned char ** | +| (const ASN1_T61STRING *,unsigned char **) | | i2d_ASN1_T61STRING | 0 | const ASN1_T61STRING * | +| (const ASN1_T61STRING *,unsigned char **) | | i2d_ASN1_T61STRING | 1 | unsigned char ** | +| (const ASN1_TIME *) | | ASN1_TIME_dup | 0 | const ASN1_TIME * | +| (const ASN1_TIME *,ASN1_GENERALIZEDTIME **) | | ASN1_TIME_to_generalizedtime | 0 | const ASN1_TIME * | +| (const ASN1_TIME *,ASN1_GENERALIZEDTIME **) | | ASN1_TIME_to_generalizedtime | 1 | ASN1_GENERALIZEDTIME ** | +| (const ASN1_TIME *,time_t *) | | X509_cmp_time | 0 | const ASN1_TIME * | +| (const ASN1_TIME *,time_t *) | | X509_cmp_time | 1 | time_t * | +| (const ASN1_TIME *,tm *) | | ASN1_TIME_to_tm | 0 | const ASN1_TIME * | +| (const ASN1_TIME *,tm *) | | ASN1_TIME_to_tm | 1 | tm * | +| (const ASN1_TIME *,unsigned char **) | | i2d_ASN1_TIME | 0 | const ASN1_TIME * | +| (const ASN1_TIME *,unsigned char **) | | i2d_ASN1_TIME | 1 | unsigned char ** | +| (const ASN1_TYPE *) | | ASN1_TYPE_get | 0 | const ASN1_TYPE * | +| (const ASN1_TYPE *,const ASN1_TYPE *) | | ASN1_TYPE_cmp | 0 | const ASN1_TYPE * | +| (const ASN1_TYPE *,const ASN1_TYPE *) | | ASN1_TYPE_cmp | 1 | const ASN1_TYPE * | +| (const ASN1_TYPE *,unsigned char **) | | i2d_ASN1_TYPE | 0 | const ASN1_TYPE * | +| (const ASN1_TYPE *,unsigned char **) | | i2d_ASN1_TYPE | 1 | unsigned char ** | +| (const ASN1_UNIVERSALSTRING *,unsigned char **) | | i2d_ASN1_UNIVERSALSTRING | 0 | const ASN1_UNIVERSALSTRING * | +| (const ASN1_UNIVERSALSTRING *,unsigned char **) | | i2d_ASN1_UNIVERSALSTRING | 1 | unsigned char ** | +| (const ASN1_UTCTIME *) | | ASN1_UTCTIME_dup | 0 | const ASN1_UTCTIME * | +| (const ASN1_UTCTIME *,unsigned char **) | | i2d_ASN1_UTCTIME | 0 | const ASN1_UTCTIME * | +| (const ASN1_UTCTIME *,unsigned char **) | | i2d_ASN1_UTCTIME | 1 | unsigned char ** | +| (const ASN1_UTF8STRING *,unsigned char **) | | i2d_ASN1_UTF8STRING | 0 | const ASN1_UTF8STRING * | +| (const ASN1_UTF8STRING *,unsigned char **) | | i2d_ASN1_UTF8STRING | 1 | unsigned char ** | +| (const ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_get_choice_selector_const | 0 | const ASN1_VALUE ** | +| (const ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_get_choice_selector_const | 1 | const ASN1_ITEM * | +| (const ASN1_VALUE **,const ASN1_TEMPLATE *) | | ossl_asn1_get_const_field_ptr | 0 | const ASN1_VALUE ** | +| (const ASN1_VALUE **,const ASN1_TEMPLATE *) | | ossl_asn1_get_const_field_ptr | 1 | const ASN1_TEMPLATE * | +| (const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int) | | ASN1_item_ex_i2d | 0 | const ASN1_VALUE ** | +| (const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int) | | ASN1_item_ex_i2d | 1 | unsigned char ** | +| (const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int) | | ASN1_item_ex_i2d | 2 | const ASN1_ITEM * | +| (const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int) | | ASN1_item_ex_i2d | 3 | int | +| (const ASN1_VALUE **,unsigned char **,const ASN1_ITEM *,int,int) | | ASN1_item_ex_i2d | 4 | int | +| (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 0 | const ASN1_VALUE * | +| (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 1 | const ASN1_TEMPLATE * | +| (const ASN1_VALUE *,const ASN1_TEMPLATE *,int) | | ossl_asn1_do_adb | 2 | int | +| (const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *) | | ASN1_item_i2d | 0 | const ASN1_VALUE * | +| (const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *) | | ASN1_item_i2d | 1 | unsigned char ** | +| (const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *) | | ASN1_item_i2d | 2 | const ASN1_ITEM * | +| (const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *) | | ASN1_item_ndef_i2d | 0 | const ASN1_VALUE * | +| (const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *) | | ASN1_item_ndef_i2d | 1 | unsigned char ** | +| (const ASN1_VALUE *,unsigned char **,const ASN1_ITEM *) | | ASN1_item_ndef_i2d | 2 | const ASN1_ITEM * | +| (const ASN1_VISIBLESTRING *,unsigned char **) | | i2d_ASN1_VISIBLESTRING | 0 | const ASN1_VISIBLESTRING * | +| (const ASN1_VISIBLESTRING *,unsigned char **) | | i2d_ASN1_VISIBLESTRING | 1 | unsigned char ** | +| (const ASRange *,unsigned char **) | | i2d_ASRange | 0 | const ASRange * | +| (const ASRange *,unsigned char **) | | i2d_ASRange | 1 | unsigned char ** | +| (const AUTHORITY_INFO_ACCESS *,unsigned char **) | | i2d_AUTHORITY_INFO_ACCESS | 0 | const AUTHORITY_INFO_ACCESS * | +| (const AUTHORITY_INFO_ACCESS *,unsigned char **) | | i2d_AUTHORITY_INFO_ACCESS | 1 | unsigned char ** | +| (const AUTHORITY_KEYID *,unsigned char **) | | i2d_AUTHORITY_KEYID | 0 | const AUTHORITY_KEYID * | +| (const AUTHORITY_KEYID *,unsigned char **) | | i2d_AUTHORITY_KEYID | 1 | unsigned char ** | +| (const BASIC_CONSTRAINTS *,unsigned char **) | | i2d_BASIC_CONSTRAINTS | 0 | const BASIC_CONSTRAINTS * | +| (const BASIC_CONSTRAINTS *,unsigned char **) | | i2d_BASIC_CONSTRAINTS | 1 | unsigned char ** | +| (const BIGNUM *) | | BN_dup | 0 | const BIGNUM * | +| (const BIGNUM *) | | BN_get_word | 0 | const BIGNUM * | +| (const BIGNUM *) | | BN_is_negative | 0 | const BIGNUM * | +| (const BIGNUM *) | | BN_num_bits | 0 | const BIGNUM * | +| (const BIGNUM *) | | bn_get_dmax | 0 | const BIGNUM * | +| (const BIGNUM *) | | bn_get_top | 0 | const BIGNUM * | +| (const BIGNUM *) | | bn_get_words | 0 | const BIGNUM * | +| (const BIGNUM *,ASN1_ENUMERATED *) | | BN_to_ASN1_ENUMERATED | 0 | const BIGNUM * | +| (const BIGNUM *,ASN1_ENUMERATED *) | | BN_to_ASN1_ENUMERATED | 1 | ASN1_ENUMERATED * | +| (const BIGNUM *,ASN1_INTEGER *) | | BN_to_ASN1_INTEGER | 0 | const BIGNUM * | +| (const BIGNUM *,ASN1_INTEGER *) | | BN_to_ASN1_INTEGER | 1 | ASN1_INTEGER * | +| (const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_check_prime | 0 | const BIGNUM * | +| (const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_check_prime | 1 | BN_CTX * | +| (const BIGNUM *,BN_CTX *,BN_GENCB *) | | BN_check_prime | 2 | BN_GENCB * | +| (const BIGNUM *,const BIGNUM *) | | BN_ucmp | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *) | | BN_ucmp | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *) | | SRP_Verify_A_mod_N | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *) | | SRP_Verify_A_mod_N | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *) | | SRP_Verify_B_mod_N | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *) | | SRP_Verify_B_mod_N | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,BIGNUM *) | | BN_BLINDING_new | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,BIGNUM *) | | BN_BLINDING_new | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,BIGNUM *) | | BN_BLINDING_new | 2 | BIGNUM * | +| (const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_kronecker | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_kronecker | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,BN_CTX *) | | BN_kronecker | 2 | BN_CTX * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_A | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_A | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_A | 2 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_u | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_u | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_u | 2 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_GROUP_new_curve_GF2m | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_GROUP_new_curve_GF2m | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_GROUP_new_curve_GF2m | 2 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_GROUP_new_curve_GF2m | 3 | BN_CTX * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_GROUP_new_curve_GFp | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_GROUP_new_curve_GFp | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_GROUP_new_curve_GFp | 2 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_GROUP_new_curve_GFp | 3 | BN_CTX * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_u_ex | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_u_ex | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_u_ex | 2 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_u_ex | 3 | OSSL_LIB_CTX * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_u_ex | 4 | const char * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_B | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_B | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_B | 2 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_B | 3 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_B_ex | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_B_ex | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_B_ex | 2 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_B_ex | 3 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_B_ex | 4 | OSSL_LIB_CTX * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_B_ex | 5 | const char * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_server_key | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_server_key | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_server_key | 2 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_server_key | 3 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_server_key | 4 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_client_key | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_client_key | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_client_key | 2 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_client_key | 3 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_client_key | 4 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *) | | SRP_Calc_client_key | 5 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_client_key_ex | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_client_key_ex | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_client_key_ex | 2 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_client_key_ex | 3 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_client_key_ex | 4 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_client_key_ex | 5 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_client_key_ex | 6 | OSSL_LIB_CTX * | +| (const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_Calc_client_key_ex | 7 | const char * | +| (const BIGNUM *,const BIGNUM *,int *) | | ossl_ffc_validate_private_key | 0 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,int *) | | ossl_ffc_validate_private_key | 1 | const BIGNUM * | +| (const BIGNUM *,const BIGNUM *,int *) | | ossl_ffc_validate_private_key | 2 | int * | +| (const BIGNUM *,int) | | BN_get_flags | 0 | const BIGNUM * | +| (const BIGNUM *,int) | | BN_get_flags | 1 | int | +| (const BIGNUM *,int) | | BN_is_bit_set | 0 | const BIGNUM * | +| (const BIGNUM *,int) | | BN_is_bit_set | 1 | int | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *) | | BN_is_prime | 0 | const BIGNUM * | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *) | | BN_is_prime | 1 | int | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *) | | BN_is_prime | 2 | ..(*)(..) | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *) | | BN_is_prime | 3 | BN_CTX * | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *) | | BN_is_prime | 4 | void * | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *,int) | | BN_is_prime_fasttest | 0 | const BIGNUM * | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *,int) | | BN_is_prime_fasttest | 1 | int | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *,int) | | BN_is_prime_fasttest | 2 | ..(*)(..) | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *,int) | | BN_is_prime_fasttest | 3 | BN_CTX * | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *,int) | | BN_is_prime_fasttest | 4 | void * | +| (const BIGNUM *,int,..(*)(..),BN_CTX *,void *,int) | | BN_is_prime_fasttest | 5 | int | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *) | | BN_is_prime_ex | 0 | const BIGNUM * | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *) | | BN_is_prime_ex | 1 | int | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *) | | BN_is_prime_ex | 2 | BN_CTX * | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *) | | BN_is_prime_ex | 3 | BN_GENCB * | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *) | | ossl_bn_check_generated_prime | 0 | const BIGNUM * | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *) | | ossl_bn_check_generated_prime | 1 | int | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *) | | ossl_bn_check_generated_prime | 2 | BN_CTX * | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *) | | ossl_bn_check_generated_prime | 3 | BN_GENCB * | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *,int,int *) | | ossl_bn_miller_rabin_is_prime | 0 | const BIGNUM * | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *,int,int *) | | ossl_bn_miller_rabin_is_prime | 1 | int | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *,int,int *) | | ossl_bn_miller_rabin_is_prime | 2 | BN_CTX * | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *,int,int *) | | ossl_bn_miller_rabin_is_prime | 3 | BN_GENCB * | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *,int,int *) | | ossl_bn_miller_rabin_is_prime | 4 | int | +| (const BIGNUM *,int,BN_CTX *,BN_GENCB *,int,int *) | | ossl_bn_miller_rabin_is_prime | 5 | int * | +| (const BIGNUM *,int,BN_CTX *,int,BN_GENCB *) | | BN_is_prime_fasttest_ex | 0 | const BIGNUM * | +| (const BIGNUM *,int,BN_CTX *,int,BN_GENCB *) | | BN_is_prime_fasttest_ex | 1 | int | +| (const BIGNUM *,int,BN_CTX *,int,BN_GENCB *) | | BN_is_prime_fasttest_ex | 2 | BN_CTX * | +| (const BIGNUM *,int,BN_CTX *,int,BN_GENCB *) | | BN_is_prime_fasttest_ex | 3 | int | +| (const BIGNUM *,int,BN_CTX *,int,BN_GENCB *) | | BN_is_prime_fasttest_ex | 4 | BN_GENCB * | +| (const BIGNUM *,int,BN_CTX *,int,BN_GENCB *) | | ossl_bn_check_prime | 0 | const BIGNUM * | +| (const BIGNUM *,int,BN_CTX *,int,BN_GENCB *) | | ossl_bn_check_prime | 1 | int | +| (const BIGNUM *,int,BN_CTX *,int,BN_GENCB *) | | ossl_bn_check_prime | 2 | BN_CTX * | +| (const BIGNUM *,int,BN_CTX *,int,BN_GENCB *) | | ossl_bn_check_prime | 3 | int | +| (const BIGNUM *,int,BN_CTX *,int,BN_GENCB *) | | ossl_bn_check_prime | 4 | BN_GENCB * | +| (const BIGNUM *,int,size_t *) | | bn_compute_wNAF | 0 | const BIGNUM * | +| (const BIGNUM *,int,size_t *) | | bn_compute_wNAF | 1 | int | +| (const BIGNUM *,int,size_t *) | | bn_compute_wNAF | 2 | size_t * | +| (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 0 | const BIGNUM * | +| (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 1 | int[] | +| (const BIGNUM *,int[],int) | | BN_GF2m_poly2arr | 2 | int | +| (const BIGNUM *,unsigned char *) | | BN_bn2bin | 0 | const BIGNUM * | +| (const BIGNUM *,unsigned char *) | | BN_bn2bin | 1 | unsigned char * | +| (const BIGNUM *,unsigned char *) | | BN_bn2mpi | 0 | const BIGNUM * | +| (const BIGNUM *,unsigned char *) | | BN_bn2mpi | 1 | unsigned char * | +| (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 0 | const BIGNUM * | +| (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 1 | unsigned char * | +| (const BIGNUM *,unsigned char *,int) | | BN_bn2binpad | 2 | int | +| (const BIGNUM *,unsigned char *,int) | | BN_bn2lebinpad | 0 | const BIGNUM * | +| (const BIGNUM *,unsigned char *,int) | | BN_bn2lebinpad | 1 | unsigned char * | +| (const BIGNUM *,unsigned char *,int) | | BN_bn2lebinpad | 2 | int | +| (const BIGNUM *,unsigned char *,int) | | BN_bn2nativepad | 0 | const BIGNUM * | +| (const BIGNUM *,unsigned char *,int) | | BN_bn2nativepad | 1 | unsigned char * | +| (const BIGNUM *,unsigned char *,int) | | BN_bn2nativepad | 2 | int | +| (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2bin | 0 | const BIGNUM * | +| (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2bin | 1 | unsigned char * | +| (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2bin | 2 | int | +| (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2lebin | 0 | const BIGNUM * | +| (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2lebin | 1 | unsigned char * | +| (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2lebin | 2 | int | +| (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2native | 0 | const BIGNUM * | +| (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2native | 1 | unsigned char * | +| (const BIGNUM *,unsigned char *,int) | | BN_signed_bn2native | 2 | int | +| (const BIGNUM *,unsigned long) | | BN_mod_word | 0 | const BIGNUM * | +| (const BIGNUM *,unsigned long) | | BN_mod_word | 1 | unsigned long | +| (const BIO *) | | BIO_get_callback | 0 | const BIO * | +| (const BIO *) | | BIO_get_callback_arg | 0 | const BIO * | +| (const BIO *) | | BIO_get_callback_ex | 0 | const BIO * | +| (const BIO *) | | BIO_method_name | 0 | const BIO * | +| (const BIO *) | | BIO_method_type | 0 | const BIO * | +| (const BIO *,int) | | BIO_get_ex_data | 0 | const BIO * | +| (const BIO *,int) | | BIO_get_ex_data | 1 | int | +| (const BIO *,int) | | BIO_test_flags | 0 | const BIO * | +| (const BIO *,int) | | BIO_test_flags | 1 | int | +| (const BIO_ADDR *) | | BIO_ADDR_dup | 0 | const BIO_ADDR * | +| (const BIO_ADDR *) | | BIO_ADDR_family | 0 | const BIO_ADDR * | +| (const BIO_ADDR *) | | BIO_ADDR_path_string | 0 | const BIO_ADDR * | +| (const BIO_ADDR *) | | BIO_ADDR_rawport | 0 | const BIO_ADDR * | +| (const BIO_ADDR *) | | BIO_ADDR_sockaddr | 0 | const BIO_ADDR * | +| (const BIO_ADDR *,void *,size_t *) | | BIO_ADDR_rawaddress | 0 | const BIO_ADDR * | +| (const BIO_ADDR *,void *,size_t *) | | BIO_ADDR_rawaddress | 1 | void * | +| (const BIO_ADDR *,void *,size_t *) | | BIO_ADDR_rawaddress | 2 | size_t * | +| (const BIO_ADDRINFO *) | | BIO_ADDRINFO_address | 0 | const BIO_ADDRINFO * | +| (const BIO_ADDRINFO *) | | BIO_ADDRINFO_family | 0 | const BIO_ADDRINFO * | +| (const BIO_ADDRINFO *) | | BIO_ADDRINFO_next | 0 | const BIO_ADDRINFO * | +| (const BIO_ADDRINFO *) | | BIO_ADDRINFO_protocol | 0 | const BIO_ADDRINFO * | +| (const BIO_ADDRINFO *) | | BIO_ADDRINFO_sockaddr | 0 | const BIO_ADDRINFO * | +| (const BIO_ADDRINFO *) | | BIO_ADDRINFO_sockaddr_size | 0 | const BIO_ADDRINFO * | +| (const BIO_ADDRINFO *) | | BIO_ADDRINFO_socktype | 0 | const BIO_ADDRINFO * | +| (const BIO_METHOD *) | | BIO_meth_get_callback_ctrl | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_create | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_ctrl | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_destroy | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_gets | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_puts | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_read | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_read_ex | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_recvmmsg | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_sendmmsg | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_write | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_meth_get_write_ex | 0 | const BIO_METHOD * | +| (const BIO_METHOD *) | | BIO_new | 0 | const BIO_METHOD * | +| (const BN_BLINDING *) | | BN_BLINDING_get_flags | 0 | const BN_BLINDING * | | (const CComBSTR &) | CComBSTR | Append | 0 | const CComBSTR & | | (const CComBSTR &) | CComBSTR | CComBSTR | 0 | const CComBSTR & | | (const CComSafeArray &) | CComSafeArray | CComSafeArray | 0 | const CComSafeArray & | | (const CComSafeArray &) | CComSafeArray | operator= | 0 | const CComSafeArray & | +| (const CERTIFICATEPOLICIES *,unsigned char **) | | i2d_CERTIFICATEPOLICIES | 0 | const CERTIFICATEPOLICIES * | +| (const CERTIFICATEPOLICIES *,unsigned char **) | | i2d_CERTIFICATEPOLICIES | 1 | unsigned char ** | +| (const CMS_CTX *) | | ossl_cms_ctx_get0_libctx | 0 | const CMS_CTX * | +| (const CMS_CTX *) | | ossl_cms_ctx_get0_propq | 0 | const CMS_CTX * | +| (const CMS_ContentInfo *) | | CMS_get0_type | 0 | const CMS_ContentInfo * | +| (const CMS_ContentInfo *) | | ossl_cms_get0_cmsctx | 0 | const CMS_ContentInfo * | +| (const CMS_ContentInfo *,BIO *,int) | | ossl_cms_DigestedData_do_final | 0 | const CMS_ContentInfo * | +| (const CMS_ContentInfo *,BIO *,int) | | ossl_cms_DigestedData_do_final | 1 | BIO * | +| (const CMS_ContentInfo *,BIO *,int) | | ossl_cms_DigestedData_do_final | 2 | int | +| (const CMS_ContentInfo *,unsigned char **) | | i2d_CMS_ContentInfo | 0 | const CMS_ContentInfo * | +| (const CMS_ContentInfo *,unsigned char **) | | i2d_CMS_ContentInfo | 1 | unsigned char ** | +| (const CMS_EnvelopedData *) | | CMS_EnvelopedData_dup | 0 | const CMS_EnvelopedData * | +| (const CMS_ReceiptRequest *,unsigned char **) | | i2d_CMS_ReceiptRequest | 0 | const CMS_ReceiptRequest * | +| (const CMS_ReceiptRequest *,unsigned char **) | | i2d_CMS_ReceiptRequest | 1 | unsigned char ** | +| (const CMS_SignerInfo *) | | CMS_signed_get_attr_count | 0 | const CMS_SignerInfo * | +| (const CMS_SignerInfo *) | | CMS_unsigned_get_attr_count | 0 | const CMS_SignerInfo * | +| (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_signed_get_attr_by_OBJ | 0 | const CMS_SignerInfo * | +| (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_signed_get_attr_by_OBJ | 1 | const ASN1_OBJECT * | +| (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_signed_get_attr_by_OBJ | 2 | int | +| (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_unsigned_get_attr_by_OBJ | 0 | const CMS_SignerInfo * | +| (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_unsigned_get_attr_by_OBJ | 1 | const ASN1_OBJECT * | +| (const CMS_SignerInfo *,const ASN1_OBJECT *,int) | | CMS_unsigned_get_attr_by_OBJ | 2 | int | +| (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 0 | const CMS_SignerInfo * | +| (const CMS_SignerInfo *,int) | | CMS_signed_get_attr | 1 | int | +| (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 0 | const CMS_SignerInfo * | +| (const CMS_SignerInfo *,int) | | CMS_unsigned_get_attr | 1 | int | +| (const CMS_SignerInfo *,int,int) | | CMS_signed_get_attr_by_NID | 0 | const CMS_SignerInfo * | +| (const CMS_SignerInfo *,int,int) | | CMS_signed_get_attr_by_NID | 1 | int | +| (const CMS_SignerInfo *,int,int) | | CMS_signed_get_attr_by_NID | 2 | int | +| (const CMS_SignerInfo *,int,int) | | CMS_unsigned_get_attr_by_NID | 0 | const CMS_SignerInfo * | +| (const CMS_SignerInfo *,int,int) | | CMS_unsigned_get_attr_by_NID | 1 | int | +| (const CMS_SignerInfo *,int,int) | | CMS_unsigned_get_attr_by_NID | 2 | int | +| (const COMP_CTX *) | | COMP_CTX_get_method | 0 | const COMP_CTX * | +| (const COMP_CTX *) | | COMP_CTX_get_type | 0 | const COMP_CTX * | +| (const COMP_METHOD *) | | COMP_get_name | 0 | const COMP_METHOD * | +| (const COMP_METHOD *) | | COMP_get_type | 0 | const COMP_METHOD * | +| (const COMP_METHOD *) | | SSL_COMP_get_name | 0 | const COMP_METHOD * | +| (const CONF *) | | NCONF_get0_libctx | 0 | const CONF * | +| (const CONF *,const char *,OSSL_LIB_CTX *) | | SSL_TEST_CTX_create | 0 | const CONF * | +| (const CONF *,const char *,OSSL_LIB_CTX *) | | SSL_TEST_CTX_create | 1 | const char * | +| (const CONF *,const char *,OSSL_LIB_CTX *) | | SSL_TEST_CTX_create | 2 | OSSL_LIB_CTX * | +| (const CONF_IMODULE *) | | CONF_imodule_get_flags | 0 | const CONF_IMODULE * | +| (const CONF_IMODULE *) | | CONF_imodule_get_module | 0 | const CONF_IMODULE * | +| (const CONF_IMODULE *) | | CONF_imodule_get_name | 0 | const CONF_IMODULE * | +| (const CONF_IMODULE *) | | CONF_imodule_get_usr_data | 0 | const CONF_IMODULE * | +| (const CONF_IMODULE *) | | CONF_imodule_get_value | 0 | const CONF_IMODULE * | +| (const CRL_DIST_POINTS *,unsigned char **) | | i2d_CRL_DIST_POINTS | 0 | const CRL_DIST_POINTS * | +| (const CRL_DIST_POINTS *,unsigned char **) | | i2d_CRL_DIST_POINTS | 1 | unsigned char ** | +| (const CRYPTO_EX_DATA *) | | ossl_crypto_ex_data_get_ossl_lib_ctx | 0 | const CRYPTO_EX_DATA * | +| (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 0 | const CRYPTO_EX_DATA * | +| (const CRYPTO_EX_DATA *,int) | | CRYPTO_get_ex_data | 1 | int | | (const CSimpleStringT &) | | operator+= | 0 | const CSimpleStringT & | | (const CSimpleStringT &) | CSimpleStringT | CSimpleStringT | 0 | const CSimpleStringT & | | (const CSimpleStringT &) | CSimpleStringT | operator+= | 0 | const CSimpleStringT & | @@ -753,17 +22564,2400 @@ getSignatureParameterName | (const CStringT &,const CStringT &) | | operator+ | 1 | const CStringT & | | (const CStringT &,wchar_t) | | operator+ | 0 | const CStringT & | | (const CStringT &,wchar_t) | | operator+ | 1 | wchar_t | +| (const CTLOG *) | | CTLOG_get0_name | 0 | const CTLOG * | +| (const CTLOG *) | | CTLOG_get0_public_key | 0 | const CTLOG * | +| (const CTLOG *,const uint8_t **,size_t *) | | CTLOG_get0_log_id | 0 | const CTLOG * | +| (const CTLOG *,const uint8_t **,size_t *) | | CTLOG_get0_log_id | 1 | const uint8_t ** | +| (const CTLOG *,const uint8_t **,size_t *) | | CTLOG_get0_log_id | 2 | size_t * | +| (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 0 | const CTLOG_STORE * | +| (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 1 | const uint8_t * | +| (const CTLOG_STORE *,const uint8_t *,size_t) | | CTLOG_STORE_get0_log_by_id | 2 | size_t | +| (const CT_POLICY_EVAL_CTX *) | | CT_POLICY_EVAL_CTX_get0_cert | 0 | const CT_POLICY_EVAL_CTX * | +| (const CT_POLICY_EVAL_CTX *) | | CT_POLICY_EVAL_CTX_get0_issuer | 0 | const CT_POLICY_EVAL_CTX * | +| (const CT_POLICY_EVAL_CTX *) | | CT_POLICY_EVAL_CTX_get0_log_store | 0 | const CT_POLICY_EVAL_CTX * | +| (const CT_POLICY_EVAL_CTX *) | | CT_POLICY_EVAL_CTX_get_time | 0 | const CT_POLICY_EVAL_CTX * | +| (const DH *) | | DH_get0_g | 0 | const DH * | +| (const DH *) | | DH_get0_p | 0 | const DH * | +| (const DH *) | | DH_get0_priv_key | 0 | const DH * | +| (const DH *) | | DH_get0_pub_key | 0 | const DH * | +| (const DH *) | | DH_get0_q | 0 | const DH * | +| (const DH *) | | DH_get_length | 0 | const DH * | +| (const DH *) | | DH_get_nid | 0 | const DH * | +| (const DH *) | | DH_security_bits | 0 | const DH * | +| (const DH *) | | DHparams_dup | 0 | const DH * | +| (const DH *) | | ossl_dh_get0_nid | 0 | const DH * | +| (const DH *) | | ossl_dh_get_method | 0 | const DH * | +| (const DH *,const BIGNUM *) | | DH_check_pub_key_ex | 0 | const DH * | +| (const DH *,const BIGNUM *) | | DH_check_pub_key_ex | 1 | const BIGNUM * | +| (const DH *,const BIGNUM **,const BIGNUM **) | | DH_get0_key | 0 | const DH * | +| (const DH *,const BIGNUM **,const BIGNUM **) | | DH_get0_key | 1 | const BIGNUM ** | +| (const DH *,const BIGNUM **,const BIGNUM **) | | DH_get0_key | 2 | const BIGNUM ** | +| (const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | DH_get0_pqg | 0 | const DH * | +| (const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | DH_get0_pqg | 1 | const BIGNUM ** | +| (const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | DH_get0_pqg | 2 | const BIGNUM ** | +| (const DH *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | DH_get0_pqg | 3 | const BIGNUM ** | +| (const DH *,const BIGNUM *,int *) | | DH_check_pub_key | 0 | const DH * | +| (const DH *,const BIGNUM *,int *) | | DH_check_pub_key | 1 | const BIGNUM * | +| (const DH *,const BIGNUM *,int *) | | DH_check_pub_key | 2 | int * | +| (const DH *,const BIGNUM *,int *) | | ossl_dh_check_priv_key | 0 | const DH * | +| (const DH *,const BIGNUM *,int *) | | ossl_dh_check_priv_key | 1 | const BIGNUM * | +| (const DH *,const BIGNUM *,int *) | | ossl_dh_check_priv_key | 2 | int * | +| (const DH *,const BIGNUM *,int *) | | ossl_dh_check_pub_key_partial | 0 | const DH * | +| (const DH *,const BIGNUM *,int *) | | ossl_dh_check_pub_key_partial | 1 | const BIGNUM * | +| (const DH *,const BIGNUM *,int *) | | ossl_dh_check_pub_key_partial | 2 | int * | +| (const DH *,int *) | | DH_check | 0 | const DH * | +| (const DH *,int *) | | DH_check | 1 | int * | +| (const DH *,int *) | | DH_check_params | 0 | const DH * | +| (const DH *,int *) | | DH_check_params | 1 | int * | +| (const DH *,int) | | DH_get_ex_data | 0 | const DH * | +| (const DH *,int) | | DH_get_ex_data | 1 | int | +| (const DH *,int) | | DH_test_flags | 0 | const DH * | +| (const DH *,int) | | DH_test_flags | 1 | int | +| (const DH *,int) | | ossl_dh_dup | 0 | const DH * | +| (const DH *,int) | | ossl_dh_dup | 1 | int | +| (const DH *,unsigned char **) | | i2d_DHparams | 0 | const DH * | +| (const DH *,unsigned char **) | | i2d_DHparams | 1 | unsigned char ** | +| (const DH *,unsigned char **) | | i2d_DHxparams | 0 | const DH * | +| (const DH *,unsigned char **) | | i2d_DHxparams | 1 | unsigned char ** | +| (const DH *,unsigned char **) | | ossl_i2d_DH_PUBKEY | 0 | const DH * | +| (const DH *,unsigned char **) | | ossl_i2d_DH_PUBKEY | 1 | unsigned char ** | +| (const DH *,unsigned char **) | | ossl_i2d_DHx_PUBKEY | 0 | const DH * | +| (const DH *,unsigned char **) | | ossl_i2d_DHx_PUBKEY | 1 | unsigned char ** | +| (const DH *,unsigned char **,size_t,int) | | ossl_dh_key2buf | 0 | const DH * | +| (const DH *,unsigned char **,size_t,int) | | ossl_dh_key2buf | 1 | unsigned char ** | +| (const DH *,unsigned char **,size_t,int) | | ossl_dh_key2buf | 2 | size_t | +| (const DH *,unsigned char **,size_t,int) | | ossl_dh_key2buf | 3 | int | +| (const DH_METHOD *) | | DH_meth_dup | 0 | const DH_METHOD * | +| (const DH_METHOD *) | | DH_meth_get0_app_data | 0 | const DH_METHOD * | +| (const DH_METHOD *) | | DH_meth_get0_name | 0 | const DH_METHOD * | +| (const DH_METHOD *) | | DH_meth_get_bn_mod_exp | 0 | const DH_METHOD * | +| (const DH_METHOD *) | | DH_meth_get_compute_key | 0 | const DH_METHOD * | +| (const DH_METHOD *) | | DH_meth_get_finish | 0 | const DH_METHOD * | +| (const DH_METHOD *) | | DH_meth_get_flags | 0 | const DH_METHOD * | +| (const DH_METHOD *) | | DH_meth_get_generate_key | 0 | const DH_METHOD * | +| (const DH_METHOD *) | | DH_meth_get_generate_params | 0 | const DH_METHOD * | +| (const DH_METHOD *) | | DH_meth_get_init | 0 | const DH_METHOD * | +| (const DH_NAMED_GROUP *) | | ossl_ffc_named_group_get_keylength | 0 | const DH_NAMED_GROUP * | +| (const DH_NAMED_GROUP *) | | ossl_ffc_named_group_get_name | 0 | const DH_NAMED_GROUP * | +| (const DH_NAMED_GROUP *) | | ossl_ffc_named_group_get_q | 0 | const DH_NAMED_GROUP * | +| (const DH_NAMED_GROUP *) | | ossl_ffc_named_group_get_uid | 0 | const DH_NAMED_GROUP * | +| (const DIST_POINT *,unsigned char **) | | i2d_DIST_POINT | 0 | const DIST_POINT * | +| (const DIST_POINT *,unsigned char **) | | i2d_DIST_POINT | 1 | unsigned char ** | +| (const DIST_POINT_NAME *) | | DIST_POINT_NAME_dup | 0 | const DIST_POINT_NAME * | +| (const DIST_POINT_NAME *,const GENERAL_NAMES *,const ASN1_TIME *) | | OSSL_CMP_CRLSTATUS_new1 | 0 | const DIST_POINT_NAME * | +| (const DIST_POINT_NAME *,const GENERAL_NAMES *,const ASN1_TIME *) | | OSSL_CMP_CRLSTATUS_new1 | 1 | const GENERAL_NAMES * | +| (const DIST_POINT_NAME *,const GENERAL_NAMES *,const ASN1_TIME *) | | OSSL_CMP_CRLSTATUS_new1 | 2 | const ASN1_TIME * | +| (const DIST_POINT_NAME *,unsigned char **) | | i2d_DIST_POINT_NAME | 0 | const DIST_POINT_NAME * | +| (const DIST_POINT_NAME *,unsigned char **) | | i2d_DIST_POINT_NAME | 1 | unsigned char ** | +| (const DSA *) | | DSA_dup_DH | 0 | const DSA * | +| (const DSA *) | | DSA_get0_g | 0 | const DSA * | +| (const DSA *) | | DSA_get0_p | 0 | const DSA * | +| (const DSA *) | | DSA_get0_priv_key | 0 | const DSA * | +| (const DSA *) | | DSA_get0_pub_key | 0 | const DSA * | +| (const DSA *) | | DSA_get0_q | 0 | const DSA * | +| (const DSA *) | | DSAparams_dup | 0 | const DSA * | +| (const DSA *,const BIGNUM **,const BIGNUM **) | | DSA_get0_key | 0 | const DSA * | +| (const DSA *,const BIGNUM **,const BIGNUM **) | | DSA_get0_key | 1 | const BIGNUM ** | +| (const DSA *,const BIGNUM **,const BIGNUM **) | | DSA_get0_key | 2 | const BIGNUM ** | +| (const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | DSA_get0_pqg | 0 | const DSA * | +| (const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | DSA_get0_pqg | 1 | const BIGNUM ** | +| (const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | DSA_get0_pqg | 2 | const BIGNUM ** | +| (const DSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | DSA_get0_pqg | 3 | const BIGNUM ** | +| (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_priv_key | 0 | const DSA * | +| (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_priv_key | 1 | const BIGNUM * | +| (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_priv_key | 2 | int * | +| (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_pub_key | 0 | const DSA * | +| (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_pub_key | 1 | const BIGNUM * | +| (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_pub_key | 2 | int * | +| (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_pub_key_partial | 0 | const DSA * | +| (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_pub_key_partial | 1 | const BIGNUM * | +| (const DSA *,const BIGNUM *,int *) | | ossl_dsa_check_pub_key_partial | 2 | int * | +| (const DSA *,int) | | DSA_get_ex_data | 0 | const DSA * | +| (const DSA *,int) | | DSA_get_ex_data | 1 | int | +| (const DSA *,int) | | DSA_test_flags | 0 | const DSA * | +| (const DSA *,int) | | DSA_test_flags | 1 | int | +| (const DSA *,int) | | ossl_dsa_dup | 0 | const DSA * | +| (const DSA *,int) | | ossl_dsa_dup | 1 | int | +| (const DSA *,int,int *) | | ossl_dsa_check_params | 0 | const DSA * | +| (const DSA *,int,int *) | | ossl_dsa_check_params | 1 | int | +| (const DSA *,int,int *) | | ossl_dsa_check_params | 2 | int * | +| (const DSA *,unsigned char **) | | i2d_DSAPrivateKey | 0 | const DSA * | +| (const DSA *,unsigned char **) | | i2d_DSAPrivateKey | 1 | unsigned char ** | +| (const DSA *,unsigned char **) | | i2d_DSAPublicKey | 0 | const DSA * | +| (const DSA *,unsigned char **) | | i2d_DSAPublicKey | 1 | unsigned char ** | +| (const DSA *,unsigned char **) | | i2d_DSA_PUBKEY | 0 | const DSA * | +| (const DSA *,unsigned char **) | | i2d_DSA_PUBKEY | 1 | unsigned char ** | +| (const DSA *,unsigned char **) | | i2d_DSAparams | 0 | const DSA * | +| (const DSA *,unsigned char **) | | i2d_DSAparams | 1 | unsigned char ** | +| (const DSA_METHOD *) | | DSA_meth_dup | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get0_app_data | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get0_name | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get_bn_mod_exp | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get_finish | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get_flags | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get_init | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get_keygen | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get_mod_exp | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get_paramgen | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get_sign | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get_sign_setup | 0 | const DSA_METHOD * | +| (const DSA_METHOD *) | | DSA_meth_get_verify | 0 | const DSA_METHOD * | +| (const DSA_SIG *,const BIGNUM **,const BIGNUM **) | | DSA_SIG_get0 | 0 | const DSA_SIG * | +| (const DSA_SIG *,const BIGNUM **,const BIGNUM **) | | DSA_SIG_get0 | 1 | const BIGNUM ** | +| (const DSA_SIG *,const BIGNUM **,const BIGNUM **) | | DSA_SIG_get0 | 2 | const BIGNUM ** | +| (const DSA_SIG *,unsigned char **) | | i2d_DSA_SIG | 0 | const DSA_SIG * | +| (const DSA_SIG *,unsigned char **) | | i2d_DSA_SIG | 1 | unsigned char ** | +| (const ECDSA_SIG *) | | ECDSA_SIG_get0_r | 0 | const ECDSA_SIG * | +| (const ECDSA_SIG *) | | ECDSA_SIG_get0_s | 0 | const ECDSA_SIG * | +| (const ECDSA_SIG *,const BIGNUM **,const BIGNUM **) | | ECDSA_SIG_get0 | 0 | const ECDSA_SIG * | +| (const ECDSA_SIG *,const BIGNUM **,const BIGNUM **) | | ECDSA_SIG_get0 | 1 | const BIGNUM ** | +| (const ECDSA_SIG *,const BIGNUM **,const BIGNUM **) | | ECDSA_SIG_get0 | 2 | const BIGNUM ** | +| (const ECDSA_SIG *,unsigned char **) | | i2d_ECDSA_SIG | 0 | const ECDSA_SIG * | +| (const ECDSA_SIG *,unsigned char **) | | i2d_ECDSA_SIG | 1 | unsigned char ** | +| (const ECPARAMETERS *) | | EC_GROUP_new_from_ecparameters | 0 | const ECPARAMETERS * | +| (const ECPKPARAMETERS *,unsigned char **) | | i2d_ECPKPARAMETERS | 0 | const ECPKPARAMETERS * | +| (const ECPKPARAMETERS *,unsigned char **) | | i2d_ECPKPARAMETERS | 1 | unsigned char ** | +| (const ECX_KEY *,int) | | ossl_ecx_key_dup | 0 | const ECX_KEY * | +| (const ECX_KEY *,int) | | ossl_ecx_key_dup | 1 | int | +| (const ECX_KEY *,unsigned char **) | | ossl_i2d_ED448_PUBKEY | 0 | const ECX_KEY * | +| (const ECX_KEY *,unsigned char **) | | ossl_i2d_ED448_PUBKEY | 1 | unsigned char ** | +| (const ECX_KEY *,unsigned char **) | | ossl_i2d_ED25519_PUBKEY | 0 | const ECX_KEY * | +| (const ECX_KEY *,unsigned char **) | | ossl_i2d_ED25519_PUBKEY | 1 | unsigned char ** | +| (const ECX_KEY *,unsigned char **) | | ossl_i2d_X448_PUBKEY | 0 | const ECX_KEY * | +| (const ECX_KEY *,unsigned char **) | | ossl_i2d_X448_PUBKEY | 1 | unsigned char ** | +| (const ECX_KEY *,unsigned char **) | | ossl_i2d_X25519_PUBKEY | 0 | const ECX_KEY * | +| (const ECX_KEY *,unsigned char **) | | ossl_i2d_X25519_PUBKEY | 1 | unsigned char ** | +| (const EC_GROUP *) | | EC_GROUP_dup | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get0_cofactor | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get0_field | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get0_generator | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get0_order | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get0_seed | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get_asn1_flag | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get_curve_name | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get_field_type | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get_mont_data | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get_point_conversion_form | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_get_seed_len | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_GROUP_method_of | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | EC_POINT_new | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | ossl_ec_GF2m_simple_group_get_degree | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | ossl_ec_GFp_simple_group_get_degree | 0 | const EC_GROUP * | +| (const EC_GROUP *) | | ossl_ec_group_simple_order_bits | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_group_get_curve | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_group_get_curve | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_group_get_curve | 2 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_group_get_curve | 3 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_group_get_curve | 4 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_group_get_curve | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_group_get_curve | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_group_get_curve | 2 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_group_get_curve | 3 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_group_get_curve | 4 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,BN_CTX *) | | EC_GROUP_get_cofactor | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,BN_CTX *) | | EC_GROUP_get_cofactor | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,BN_CTX *) | | EC_GROUP_get_cofactor | 2 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,BN_CTX *) | | EC_GROUP_get_order | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,BN_CTX *) | | EC_GROUP_get_order | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,BN_CTX *) | | EC_GROUP_get_order | 2 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_set_to_one | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_set_to_one | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_set_to_one | 2 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_sqr | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_sqr | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_sqr | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_sqr | 3 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_encode | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_encode | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_encode | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_encode | 3 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_inv | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_inv | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_inv | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_inv | 3 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_sqr | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_sqr | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_sqr | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_sqr | 3 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_field_sqr | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_field_sqr | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_field_sqr | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_field_sqr | 3 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_inv | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_inv | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_inv | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_inv | 3 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_sqr | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_sqr | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_sqr | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_sqr | 3 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_group_do_inverse_ord | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_group_do_inverse_ord | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_group_do_inverse_ord | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_group_do_inverse_ord | 3 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_div | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_div | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_div | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_div | 3 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_div | 4 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_mul | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_mul | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_mul | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_mul | 3 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_field_mul | 4 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_mul | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_mul | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_mul | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_mul | 3 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_mont_field_mul | 4 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_field_mul | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_field_mul | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_field_mul | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_field_mul | 3 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_nist_field_mul | 4 | BN_CTX * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_mul | 0 | const EC_GROUP * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_mul | 1 | BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_mul | 2 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_mul | 3 | const BIGNUM * | +| (const EC_GROUP *,BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_field_mul | 4 | BN_CTX * | +| (const EC_GROUP *,BN_CTX *) | | ossl_ec_GFp_simple_group_check_discriminant | 0 | const EC_GROUP * | +| (const EC_GROUP *,BN_CTX *) | | ossl_ec_GFp_simple_group_check_discriminant | 1 | BN_CTX * | +| (const EC_GROUP *,ECPARAMETERS *) | | EC_GROUP_get_ecparameters | 0 | const EC_GROUP * | +| (const EC_GROUP *,ECPARAMETERS *) | | EC_GROUP_get_ecparameters | 1 | ECPARAMETERS * | +| (const EC_GROUP *,ECPKPARAMETERS *) | | EC_GROUP_get_ecpkparameters | 0 | const EC_GROUP * | +| (const EC_GROUP *,ECPKPARAMETERS *) | | EC_GROUP_get_ecpkparameters | 1 | ECPKPARAMETERS * | +| (const EC_GROUP *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_blind_coordinates | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_blind_coordinates | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_blind_coordinates | 2 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_invert | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_invert | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_invert | 2 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_make_affine | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_make_affine | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_make_affine | 2 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_post | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_post | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_post | 2 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_post | 3 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_post | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_pre | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_pre | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_pre | 2 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_pre | 3 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_pre | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_step | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_step | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_step | 2 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_step | 3 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,EC_POINT *,EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_ladder_step | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_point_set_affine_coordinates | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_point_set_affine_coordinates | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_point_set_affine_coordinates | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_point_set_affine_coordinates | 3 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_point_set_affine_coordinates | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_point_set_affine_coordinates | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_point_set_affine_coordinates | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_point_set_affine_coordinates | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_point_set_affine_coordinates | 3 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_point_set_affine_coordinates | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_POINT_set_Jprojective_coordinates_GFp | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_POINT_set_Jprojective_coordinates_GFp | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_POINT_set_Jprojective_coordinates_GFp | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_POINT_set_Jprojective_coordinates_GFp | 3 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_POINT_set_Jprojective_coordinates_GFp | 4 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | EC_POINT_set_Jprojective_coordinates_GFp | 5 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp | 3 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp | 4 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const BIGNUM *,const BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp | 5 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,BN_CTX *) | | ossl_ec_scalar_mul_ladder | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,BN_CTX *) | | ossl_ec_scalar_mul_ladder | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,BN_CTX *) | | ossl_ec_scalar_mul_ladder | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,BN_CTX *) | | ossl_ec_scalar_mul_ladder | 3 | const EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,BN_CTX *) | | ossl_ec_scalar_mul_ladder | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *) | | EC_POINT_mul | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *) | | EC_POINT_mul | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *) | | EC_POINT_mul | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *) | | EC_POINT_mul | 3 | const EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *) | | EC_POINT_mul | 4 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,const EC_POINT *,const BIGNUM *,BN_CTX *) | | EC_POINT_mul | 5 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates | 3 | int | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates_GF2m | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates_GF2m | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates_GF2m | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates_GF2m | 3 | int | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates_GF2m | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates_GFp | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates_GFp | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates_GFp | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates_GFp | 3 | int | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | EC_POINT_set_compressed_coordinates_GFp | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | ossl_ec_GFp_simple_set_compressed_coordinates | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | ossl_ec_GFp_simple_set_compressed_coordinates | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | ossl_ec_GFp_simple_set_compressed_coordinates | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | ossl_ec_GFp_simple_set_compressed_coordinates | 3 | int | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,int,BN_CTX *) | | ossl_ec_GFp_simple_set_compressed_coordinates | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | EC_POINTs_mul | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | EC_POINTs_mul | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | EC_POINTs_mul | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | EC_POINTs_mul | 3 | size_t | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | EC_POINTs_mul | 4 | const EC_POINT *[] | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | EC_POINTs_mul | 5 | const BIGNUM *[] | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | EC_POINTs_mul | 6 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | ossl_ec_wNAF_mul | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | ossl_ec_wNAF_mul | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | ossl_ec_wNAF_mul | 2 | const BIGNUM * | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | ossl_ec_wNAF_mul | 3 | size_t | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | ossl_ec_wNAF_mul | 4 | const EC_POINT *[] | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | ossl_ec_wNAF_mul | 5 | const BIGNUM *[] | +| (const EC_GROUP *,EC_POINT *,const BIGNUM *,size_t,const EC_POINT *[],const BIGNUM *[],BN_CTX *) | | ossl_ec_wNAF_mul | 6 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_dbl | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_dbl | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_dbl | 2 | const EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_dbl | 3 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_add | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_add | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_add | 2 | const EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_add | 3 | const EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_add | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | EC_POINT_oct2point | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | EC_POINT_oct2point | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | EC_POINT_oct2point | 2 | const unsigned char * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | EC_POINT_oct2point | 3 | size_t | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | EC_POINT_oct2point | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_oct2point | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_oct2point | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_oct2point | 2 | const unsigned char * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_oct2point | 3 | size_t | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_oct2point | 4 | BN_CTX * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_oct2point | 0 | const EC_GROUP * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_oct2point | 1 | EC_POINT * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_oct2point | 2 | const unsigned char * | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_oct2point | 3 | size_t | +| (const EC_GROUP *,EC_POINT *,const unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_oct2point | 4 | BN_CTX * | +| (const EC_GROUP *,OSSL_LIB_CTX *,const char *,BN_CTX *) | | EC_GROUP_to_params | 0 | const EC_GROUP * | +| (const EC_GROUP *,OSSL_LIB_CTX *,const char *,BN_CTX *) | | EC_GROUP_to_params | 1 | OSSL_LIB_CTX * | +| (const EC_GROUP *,OSSL_LIB_CTX *,const char *,BN_CTX *) | | EC_GROUP_to_params | 2 | const char * | +| (const EC_GROUP *,OSSL_LIB_CTX *,const char *,BN_CTX *) | | EC_GROUP_to_params | 3 | BN_CTX * | +| (const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **) | | ossl_ec_group_todata | 0 | const EC_GROUP * | +| (const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **) | | ossl_ec_group_todata | 1 | OSSL_PARAM_BLD * | +| (const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **) | | ossl_ec_group_todata | 2 | OSSL_PARAM[] | +| (const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **) | | ossl_ec_group_todata | 3 | OSSL_LIB_CTX * | +| (const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **) | | ossl_ec_group_todata | 4 | const char * | +| (const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **) | | ossl_ec_group_todata | 5 | BN_CTX * | +| (const EC_GROUP *,OSSL_PARAM_BLD *,OSSL_PARAM[],OSSL_LIB_CTX *,const char *,BN_CTX *,unsigned char **) | | ossl_ec_group_todata | 6 | unsigned char ** | +| (const EC_GROUP *,const BIGNUM *,EC_POINT *,BN_CTX *) | | EC_POINT_bn2point | 0 | const EC_GROUP * | +| (const EC_GROUP *,const BIGNUM *,EC_POINT *,BN_CTX *) | | EC_POINT_bn2point | 1 | const BIGNUM * | +| (const EC_GROUP *,const BIGNUM *,EC_POINT *,BN_CTX *) | | EC_POINT_bn2point | 2 | EC_POINT * | +| (const EC_GROUP *,const BIGNUM *,EC_POINT *,BN_CTX *) | | EC_POINT_bn2point | 3 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | EC_POINT_get_Jprojective_coordinates_GFp | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | EC_POINT_get_Jprojective_coordinates_GFp | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | EC_POINT_get_Jprojective_coordinates_GFp | 2 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | EC_POINT_get_Jprojective_coordinates_GFp | 3 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | EC_POINT_get_Jprojective_coordinates_GFp | 4 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | EC_POINT_get_Jprojective_coordinates_GFp | 5 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp | 2 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp | 3 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp | 4 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp | 5 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_point_get_affine_coordinates | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_point_get_affine_coordinates | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_point_get_affine_coordinates | 2 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_point_get_affine_coordinates | 3 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GF2m_simple_point_get_affine_coordinates | 4 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_point_get_affine_coordinates | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_point_get_affine_coordinates | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_point_get_affine_coordinates | 2 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_point_get_affine_coordinates | 3 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,BIGNUM *,BIGNUM *,BN_CTX *) | | ossl_ec_GFp_simple_point_get_affine_coordinates | 4 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_is_on_curve | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_is_on_curve | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_is_on_curve | 2 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_cmp | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_cmp | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_cmp | 2 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,const EC_POINT *,BN_CTX *) | | ossl_ec_GFp_simple_cmp | 3 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BIGNUM *,BN_CTX *) | | EC_POINT_point2bn | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BIGNUM *,BN_CTX *) | | EC_POINT_point2bn | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BIGNUM *,BN_CTX *) | | EC_POINT_point2bn | 2 | point_conversion_form_t | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BIGNUM *,BN_CTX *) | | EC_POINT_point2bn | 3 | BIGNUM * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BIGNUM *,BN_CTX *) | | EC_POINT_point2bn | 4 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BN_CTX *) | | EC_POINT_point2hex | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BN_CTX *) | | EC_POINT_point2hex | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BN_CTX *) | | EC_POINT_point2hex | 2 | point_conversion_form_t | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,BN_CTX *) | | EC_POINT_point2hex | 3 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char **,BN_CTX *) | | EC_POINT_point2buf | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char **,BN_CTX *) | | EC_POINT_point2buf | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char **,BN_CTX *) | | EC_POINT_point2buf | 2 | point_conversion_form_t | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char **,BN_CTX *) | | EC_POINT_point2buf | 3 | unsigned char ** | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char **,BN_CTX *) | | EC_POINT_point2buf | 4 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | EC_POINT_point2oct | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | EC_POINT_point2oct | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | EC_POINT_point2oct | 2 | point_conversion_form_t | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | EC_POINT_point2oct | 3 | unsigned char * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | EC_POINT_point2oct | 4 | size_t | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | EC_POINT_point2oct | 5 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_point2oct | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_point2oct | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_point2oct | 2 | point_conversion_form_t | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_point2oct | 3 | unsigned char * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_point2oct | 4 | size_t | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GF2m_simple_point2oct | 5 | BN_CTX * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_point2oct | 0 | const EC_GROUP * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_point2oct | 1 | const EC_POINT * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_point2oct | 2 | point_conversion_form_t | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_point2oct | 3 | unsigned char * | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_point2oct | 4 | size_t | +| (const EC_GROUP *,const EC_POINT *,point_conversion_form_t,unsigned char *,size_t,BN_CTX *) | | ossl_ec_GFp_simple_point2oct | 5 | BN_CTX * | +| (const EC_GROUP *,const char *,EC_POINT *,BN_CTX *) | | EC_POINT_hex2point | 0 | const EC_GROUP * | +| (const EC_GROUP *,const char *,EC_POINT *,BN_CTX *) | | EC_POINT_hex2point | 1 | const char * | +| (const EC_GROUP *,const char *,EC_POINT *,BN_CTX *) | | EC_POINT_hex2point | 2 | EC_POINT * | +| (const EC_GROUP *,const char *,EC_POINT *,BN_CTX *) | | EC_POINT_hex2point | 3 | BN_CTX * | +| (const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *) | | EC_POINTs_make_affine | 0 | const EC_GROUP * | +| (const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *) | | EC_POINTs_make_affine | 1 | size_t | +| (const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *) | | EC_POINTs_make_affine | 2 | EC_POINT *[] | +| (const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *) | | EC_POINTs_make_affine | 3 | BN_CTX * | +| (const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *) | | ossl_ec_GFp_simple_points_make_affine | 0 | const EC_GROUP * | +| (const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *) | | ossl_ec_GFp_simple_points_make_affine | 1 | size_t | +| (const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *) | | ossl_ec_GFp_simple_points_make_affine | 2 | EC_POINT *[] | +| (const EC_GROUP *,size_t,EC_POINT *[],BN_CTX *) | | ossl_ec_GFp_simple_points_make_affine | 3 | BN_CTX * | +| (const EC_GROUP *,unsigned char **) | | i2d_ECPKParameters | 0 | const EC_GROUP * | +| (const EC_GROUP *,unsigned char **) | | i2d_ECPKParameters | 1 | unsigned char ** | +| (const EC_GROUP *,unsigned int *) | | EC_GROUP_get_trinomial_basis | 0 | const EC_GROUP * | +| (const EC_GROUP *,unsigned int *) | | EC_GROUP_get_trinomial_basis | 1 | unsigned int * | +| (const EC_GROUP *,unsigned int *,unsigned int *,unsigned int *) | | EC_GROUP_get_pentanomial_basis | 0 | const EC_GROUP * | +| (const EC_GROUP *,unsigned int *,unsigned int *,unsigned int *) | | EC_GROUP_get_pentanomial_basis | 1 | unsigned int * | +| (const EC_GROUP *,unsigned int *,unsigned int *,unsigned int *) | | EC_GROUP_get_pentanomial_basis | 2 | unsigned int * | +| (const EC_GROUP *,unsigned int *,unsigned int *,unsigned int *) | | EC_GROUP_get_pentanomial_basis | 3 | unsigned int * | +| (const EC_KEY *) | | EC_KEY_decoded_from_explicit_params | 0 | const EC_KEY * | +| (const EC_KEY *) | | EC_KEY_dup | 0 | const EC_KEY * | +| (const EC_KEY *) | | EC_KEY_get0_engine | 0 | const EC_KEY * | +| (const EC_KEY *) | | EC_KEY_get0_group | 0 | const EC_KEY * | +| (const EC_KEY *) | | EC_KEY_get0_private_key | 0 | const EC_KEY * | +| (const EC_KEY *) | | EC_KEY_get0_public_key | 0 | const EC_KEY * | +| (const EC_KEY *) | | EC_KEY_get_conv_form | 0 | const EC_KEY * | +| (const EC_KEY *) | | EC_KEY_get_enc_flags | 0 | const EC_KEY * | +| (const EC_KEY *) | | EC_KEY_get_flags | 0 | const EC_KEY * | +| (const EC_KEY *) | | EC_KEY_get_method | 0 | const EC_KEY * | +| (const EC_KEY *) | | ossl_ec_key_get0_propq | 0 | const EC_KEY * | +| (const EC_KEY *) | | ossl_ec_key_get_libctx | 0 | const EC_KEY * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,const size_t,const uint8_t *,size_t) | | ossl_sm2_do_sign | 0 | const EC_KEY * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,const size_t,const uint8_t *,size_t) | | ossl_sm2_do_sign | 1 | const EVP_MD * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,const size_t,const uint8_t *,size_t) | | ossl_sm2_do_sign | 2 | const uint8_t * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,const size_t,const uint8_t *,size_t) | | ossl_sm2_do_sign | 3 | const size_t | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,const size_t,const uint8_t *,size_t) | | ossl_sm2_do_sign | 4 | const uint8_t * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,const size_t,const uint8_t *,size_t) | | ossl_sm2_do_sign | 5 | size_t | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_decrypt | 0 | const EC_KEY * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_decrypt | 1 | const EVP_MD * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_decrypt | 2 | const uint8_t * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_decrypt | 3 | size_t | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_decrypt | 4 | uint8_t * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_decrypt | 5 | size_t * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_encrypt | 0 | const EC_KEY * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_encrypt | 1 | const EVP_MD * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_encrypt | 2 | const uint8_t * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_encrypt | 3 | size_t | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_encrypt | 4 | uint8_t * | +| (const EC_KEY *,const EVP_MD *,const uint8_t *,size_t,uint8_t *,size_t *) | | ossl_sm2_encrypt | 5 | size_t * | +| (const EC_KEY *,const EVP_MD *,size_t,size_t *) | | ossl_sm2_ciphertext_size | 0 | const EC_KEY * | +| (const EC_KEY *,const EVP_MD *,size_t,size_t *) | | ossl_sm2_ciphertext_size | 1 | const EVP_MD * | +| (const EC_KEY *,const EVP_MD *,size_t,size_t *) | | ossl_sm2_ciphertext_size | 2 | size_t | +| (const EC_KEY *,const EVP_MD *,size_t,size_t *) | | ossl_sm2_ciphertext_size | 3 | size_t * | +| (const EC_KEY *,int) | | EC_KEY_get_ex_data | 0 | const EC_KEY * | +| (const EC_KEY *,int) | | EC_KEY_get_ex_data | 1 | int | +| (const EC_KEY *,int) | | ossl_ec_key_dup | 0 | const EC_KEY * | +| (const EC_KEY *,int) | | ossl_ec_key_dup | 1 | int | +| (const EC_KEY *,point_conversion_form_t,unsigned char **,BN_CTX *) | | EC_KEY_key2buf | 0 | const EC_KEY * | +| (const EC_KEY *,point_conversion_form_t,unsigned char **,BN_CTX *) | | EC_KEY_key2buf | 1 | point_conversion_form_t | +| (const EC_KEY *,point_conversion_form_t,unsigned char **,BN_CTX *) | | EC_KEY_key2buf | 2 | unsigned char ** | +| (const EC_KEY *,point_conversion_form_t,unsigned char **,BN_CTX *) | | EC_KEY_key2buf | 3 | BN_CTX * | +| (const EC_KEY *,unsigned char **) | | i2d_ECParameters | 0 | const EC_KEY * | +| (const EC_KEY *,unsigned char **) | | i2d_ECParameters | 1 | unsigned char ** | +| (const EC_KEY *,unsigned char **) | | i2d_ECPrivateKey | 0 | const EC_KEY * | +| (const EC_KEY *,unsigned char **) | | i2d_ECPrivateKey | 1 | unsigned char ** | +| (const EC_KEY *,unsigned char **) | | i2d_EC_PUBKEY | 0 | const EC_KEY * | +| (const EC_KEY *,unsigned char **) | | i2d_EC_PUBKEY | 1 | unsigned char ** | +| (const EC_KEY *,unsigned char **) | | i2o_ECPublicKey | 0 | const EC_KEY * | +| (const EC_KEY *,unsigned char **) | | i2o_ECPublicKey | 1 | unsigned char ** | +| (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 0 | const EC_KEY * | +| (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 1 | unsigned char * | +| (const EC_KEY *,unsigned char *,size_t) | | ossl_ec_key_simple_priv2oct | 2 | size_t | +| (const EC_KEY_METHOD *) | | EC_KEY_METHOD_new | 0 | const EC_KEY_METHOD * | +| (const EC_KEY_METHOD *,..(**)(..)) | | EC_KEY_METHOD_get_compute_key | 0 | const EC_KEY_METHOD * | +| (const EC_KEY_METHOD *,..(**)(..)) | | EC_KEY_METHOD_get_compute_key | 1 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..)) | | EC_KEY_METHOD_get_keygen | 0 | const EC_KEY_METHOD * | +| (const EC_KEY_METHOD *,..(**)(..)) | | EC_KEY_METHOD_get_keygen | 1 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_verify | 0 | const EC_KEY_METHOD * | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_verify | 1 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_verify | 2 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_sign | 0 | const EC_KEY_METHOD * | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_sign | 1 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_sign | 2 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_sign | 3 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_init | 0 | const EC_KEY_METHOD * | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_init | 1 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_init | 2 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_init | 3 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_init | 4 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_init | 5 | ..(**)(..) | +| (const EC_KEY_METHOD *,..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..),..(**)(..)) | | EC_KEY_METHOD_get_init | 6 | ..(**)(..) | +| (const EC_METHOD *) | | EC_GROUP_new | 0 | const EC_METHOD * | +| (const EC_METHOD *) | | EC_METHOD_get_field_type | 0 | const EC_METHOD * | +| (const EC_POINT *) | | EC_POINT_method_of | 0 | const EC_POINT * | +| (const EC_POINT *,const EC_GROUP *) | | EC_POINT_dup | 0 | const EC_POINT * | +| (const EC_POINT *,const EC_GROUP *) | | EC_POINT_dup | 1 | const EC_GROUP * | +| (const EC_PRIVATEKEY *,unsigned char **) | | i2d_EC_PRIVATEKEY | 0 | const EC_PRIVATEKEY * | +| (const EC_PRIVATEKEY *,unsigned char **) | | i2d_EC_PRIVATEKEY | 1 | unsigned char ** | +| (const EDIPARTYNAME *,unsigned char **) | | i2d_EDIPARTYNAME | 0 | const EDIPARTYNAME * | +| (const EDIPARTYNAME *,unsigned char **) | | i2d_EDIPARTYNAME | 1 | unsigned char ** | +| (const ENGINE *) | | ENGINE_get_DH | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_DSA | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_EC | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_RAND | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_RSA | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_ciphers | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_cmd_defns | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_ctrl_function | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_destroy_function | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_digests | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_finish_function | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_flags | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_id | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_init_function | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_load_privkey_function | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_load_pubkey_function | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_name | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_pkey_asn1_meths | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_pkey_meths | 0 | const ENGINE * | +| (const ENGINE *) | | ENGINE_get_ssl_client_cert_function | 0 | const ENGINE * | +| (const ENGINE *,int) | | ENGINE_get_ex_data | 0 | const ENGINE * | +| (const ENGINE *,int) | | ENGINE_get_ex_data | 1 | int | +| (const ERR_STRING_DATA *) | | ERR_load_strings_const | 0 | const ERR_STRING_DATA * | +| (const ESS_CERT_ID *) | | ESS_CERT_ID_dup | 0 | const ESS_CERT_ID * | +| (const ESS_CERT_ID *,unsigned char **) | | i2d_ESS_CERT_ID | 0 | const ESS_CERT_ID * | +| (const ESS_CERT_ID *,unsigned char **) | | i2d_ESS_CERT_ID | 1 | unsigned char ** | +| (const ESS_CERT_ID_V2 *) | | ESS_CERT_ID_V2_dup | 0 | const ESS_CERT_ID_V2 * | +| (const ESS_CERT_ID_V2 *,unsigned char **) | | i2d_ESS_CERT_ID_V2 | 0 | const ESS_CERT_ID_V2 * | +| (const ESS_CERT_ID_V2 *,unsigned char **) | | i2d_ESS_CERT_ID_V2 | 1 | unsigned char ** | +| (const ESS_ISSUER_SERIAL *) | | ESS_ISSUER_SERIAL_dup | 0 | const ESS_ISSUER_SERIAL * | +| (const ESS_ISSUER_SERIAL *,unsigned char **) | | i2d_ESS_ISSUER_SERIAL | 0 | const ESS_ISSUER_SERIAL * | +| (const ESS_ISSUER_SERIAL *,unsigned char **) | | i2d_ESS_ISSUER_SERIAL | 1 | unsigned char ** | +| (const ESS_SIGNING_CERT *) | | ESS_SIGNING_CERT_dup | 0 | const ESS_SIGNING_CERT * | +| (const ESS_SIGNING_CERT *,unsigned char **) | | i2d_ESS_SIGNING_CERT | 0 | const ESS_SIGNING_CERT * | +| (const ESS_SIGNING_CERT *,unsigned char **) | | i2d_ESS_SIGNING_CERT | 1 | unsigned char ** | +| (const ESS_SIGNING_CERT_V2 *) | | ESS_SIGNING_CERT_V2_dup | 0 | const ESS_SIGNING_CERT_V2 * | +| (const ESS_SIGNING_CERT_V2 *,unsigned char **) | | i2d_ESS_SIGNING_CERT_V2 | 0 | const ESS_SIGNING_CERT_V2 * | +| (const ESS_SIGNING_CERT_V2 *,unsigned char **) | | i2d_ESS_SIGNING_CERT_V2 | 1 | unsigned char ** | +| (const EVP_ASYM_CIPHER *) | | EVP_ASYM_CIPHER_get0_description | 0 | const EVP_ASYM_CIPHER * | +| (const EVP_ASYM_CIPHER *) | | EVP_ASYM_CIPHER_get0_name | 0 | const EVP_ASYM_CIPHER * | +| (const EVP_ASYM_CIPHER *) | | EVP_ASYM_CIPHER_get0_provider | 0 | const EVP_ASYM_CIPHER * | +| (const EVP_ASYM_CIPHER *) | | evp_asym_cipher_get_number | 0 | const EVP_ASYM_CIPHER * | +| (const EVP_ASYM_CIPHER *,..(*)(..),void *) | | EVP_ASYM_CIPHER_names_do_all | 0 | const EVP_ASYM_CIPHER * | +| (const EVP_ASYM_CIPHER *,..(*)(..),void *) | | EVP_ASYM_CIPHER_names_do_all | 1 | ..(*)(..) | +| (const EVP_ASYM_CIPHER *,..(*)(..),void *) | | EVP_ASYM_CIPHER_names_do_all | 2 | void * | +| (const EVP_CIPHER *) | | EVP_CIPHER_get0_description | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_get0_name | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_get0_provider | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_get_block_size | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_get_flags | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_get_iv_length | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_get_key_length | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_get_mode | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_get_nid | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_get_type | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_impl_ctx_size | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_meth_dup | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_meth_get_cleanup | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_meth_get_ctrl | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_meth_get_do_cipher | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_meth_get_get_asn1_params | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_meth_get_init | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | EVP_CIPHER_meth_get_set_asn1_params | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *) | | evp_cipher_get_number | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *,..(*)(..),void *) | | EVP_CIPHER_names_do_all | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *,..(*)(..),void *) | | EVP_CIPHER_names_do_all | 1 | ..(*)(..) | +| (const EVP_CIPHER *,..(*)(..),void *) | | EVP_CIPHER_names_do_all | 2 | void * | +| (const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | CMS_AuthEnvelopedData_create_ex | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | CMS_AuthEnvelopedData_create_ex | 1 | OSSL_LIB_CTX * | +| (const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | CMS_AuthEnvelopedData_create_ex | 2 | const char * | +| (const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_create_ex | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_create_ex | 1 | OSSL_LIB_CTX * | +| (const EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | CMS_EnvelopedData_create_ex | 2 | const char * | +| (const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *) | | EVP_BytesToKey | 0 | const EVP_CIPHER * | +| (const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *) | | EVP_BytesToKey | 1 | const EVP_MD * | +| (const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *) | | EVP_BytesToKey | 2 | const unsigned char * | +| (const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *) | | EVP_BytesToKey | 3 | const unsigned char * | +| (const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *) | | EVP_BytesToKey | 4 | int | +| (const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *) | | EVP_BytesToKey | 5 | int | +| (const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *) | | EVP_BytesToKey | 6 | unsigned char * | +| (const EVP_CIPHER *,const EVP_MD *,const unsigned char *,const unsigned char *,int,int,unsigned char *,unsigned char *) | | EVP_BytesToKey | 7 | unsigned char * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_cipher | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_dup | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_get0_cipher | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_get_app_data | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_get_block_size | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_get_cipher_data | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_get_iv_length | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_get_key_length | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_get_nid | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_get_num | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_is_encrypting | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_iv | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *) | | EVP_CIPHER_CTX_original_iv | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 0 | const EVP_CIPHER_CTX * | +| (const EVP_CIPHER_CTX *,int) | | EVP_CIPHER_CTX_test_flags | 1 | int | +| (const EVP_KDF *) | | EVP_KDF_get0_description | 0 | const EVP_KDF * | +| (const EVP_KDF *) | | EVP_KDF_get0_name | 0 | const EVP_KDF * | +| (const EVP_KDF *) | | EVP_KDF_get0_provider | 0 | const EVP_KDF * | +| (const EVP_KDF *) | | evp_kdf_get_number | 0 | const EVP_KDF * | +| (const EVP_KDF *,..(*)(..),void *) | | EVP_KDF_names_do_all | 0 | const EVP_KDF * | +| (const EVP_KDF *,..(*)(..),void *) | | EVP_KDF_names_do_all | 1 | ..(*)(..) | +| (const EVP_KDF *,..(*)(..),void *) | | EVP_KDF_names_do_all | 2 | void * | +| (const EVP_KDF_CTX *) | | EVP_KDF_CTX_dup | 0 | const EVP_KDF_CTX * | +| (const EVP_KEM *) | | EVP_KEM_get0_description | 0 | const EVP_KEM * | +| (const EVP_KEM *) | | EVP_KEM_get0_name | 0 | const EVP_KEM * | +| (const EVP_KEM *) | | EVP_KEM_get0_provider | 0 | const EVP_KEM * | +| (const EVP_KEM *) | | evp_kem_get_number | 0 | const EVP_KEM * | +| (const EVP_KEM *,..(*)(..),void *) | | EVP_KEM_names_do_all | 0 | const EVP_KEM * | +| (const EVP_KEM *,..(*)(..),void *) | | EVP_KEM_names_do_all | 1 | ..(*)(..) | +| (const EVP_KEM *,..(*)(..),void *) | | EVP_KEM_names_do_all | 2 | void * | +| (const EVP_KEYEXCH *) | | EVP_KEYEXCH_get0_description | 0 | const EVP_KEYEXCH * | +| (const EVP_KEYEXCH *) | | EVP_KEYEXCH_get0_name | 0 | const EVP_KEYEXCH * | +| (const EVP_KEYEXCH *) | | EVP_KEYEXCH_get0_provider | 0 | const EVP_KEYEXCH * | +| (const EVP_KEYEXCH *) | | evp_keyexch_get_number | 0 | const EVP_KEYEXCH * | +| (const EVP_KEYEXCH *,..(*)(..),void *) | | EVP_KEYEXCH_names_do_all | 0 | const EVP_KEYEXCH * | +| (const EVP_KEYEXCH *,..(*)(..),void *) | | EVP_KEYEXCH_names_do_all | 1 | ..(*)(..) | +| (const EVP_KEYEXCH *,..(*)(..),void *) | | EVP_KEYEXCH_names_do_all | 2 | void * | +| (const EVP_KEYMGMT *) | | EVP_KEYMGMT_get0_description | 0 | const EVP_KEYMGMT * | +| (const EVP_KEYMGMT *) | | EVP_KEYMGMT_get0_name | 0 | const EVP_KEYMGMT * | +| (const EVP_KEYMGMT *) | | EVP_KEYMGMT_get0_provider | 0 | const EVP_KEYMGMT * | +| (const EVP_KEYMGMT *) | | evp_keymgmt_get_legacy_alg | 0 | const EVP_KEYMGMT * | +| (const EVP_KEYMGMT *) | | evp_keymgmt_get_number | 0 | const EVP_KEYMGMT * | +| (const EVP_KEYMGMT *,..(*)(..),void *) | | EVP_KEYMGMT_names_do_all | 0 | const EVP_KEYMGMT * | +| (const EVP_KEYMGMT *,..(*)(..),void *) | | EVP_KEYMGMT_names_do_all | 1 | ..(*)(..) | +| (const EVP_KEYMGMT *,..(*)(..),void *) | | EVP_KEYMGMT_names_do_all | 2 | void * | +| (const EVP_MAC *) | | EVP_MAC_get0_description | 0 | const EVP_MAC * | +| (const EVP_MAC *) | | EVP_MAC_get0_name | 0 | const EVP_MAC * | +| (const EVP_MAC *) | | EVP_MAC_get0_provider | 0 | const EVP_MAC * | +| (const EVP_MAC *) | | evp_mac_get_number | 0 | const EVP_MAC * | +| (const EVP_MAC *,..(*)(..),void *) | | EVP_MAC_names_do_all | 0 | const EVP_MAC * | +| (const EVP_MAC *,..(*)(..),void *) | | EVP_MAC_names_do_all | 1 | ..(*)(..) | +| (const EVP_MAC *,..(*)(..),void *) | | EVP_MAC_names_do_all | 2 | void * | +| (const EVP_MAC_CTX *) | | EVP_MAC_CTX_dup | 0 | const EVP_MAC_CTX * | +| (const EVP_MD *) | | EVP_MD_get0_description | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_get0_name | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_get0_provider | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_get_block_size | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_get_flags | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_get_pkey_type | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_get_size | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_get_type | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_dup | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_get_app_datasize | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_get_cleanup | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_get_copy | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_get_ctrl | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_get_final | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_get_flags | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_get_init | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_get_input_blocksize | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_get_result_size | 0 | const EVP_MD * | +| (const EVP_MD *) | | EVP_MD_meth_get_update | 0 | const EVP_MD * | +| (const EVP_MD *) | | evp_md_get_number | 0 | const EVP_MD * | +| (const EVP_MD *,..(*)(..),void *) | | EVP_MD_names_do_all | 0 | const EVP_MD * | +| (const EVP_MD *,..(*)(..),void *) | | EVP_MD_names_do_all | 1 | ..(*)(..) | +| (const EVP_MD *,..(*)(..),void *) | | EVP_MD_names_do_all | 2 | void * | +| (const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ossl_cms_DigestedData_create | 0 | const EVP_MD * | +| (const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ossl_cms_DigestedData_create | 1 | OSSL_LIB_CTX * | +| (const EVP_MD *,OSSL_LIB_CTX *,const char *) | | ossl_cms_DigestedData_create | 2 | const char * | +| (const EVP_MD *,const EVP_MD *,int) | | ossl_rsa_pss_params_create | 0 | const EVP_MD * | +| (const EVP_MD *,const EVP_MD *,int) | | ossl_rsa_pss_params_create | 1 | const EVP_MD * | +| (const EVP_MD *,const EVP_MD *,int) | | ossl_rsa_pss_params_create | 2 | int | +| (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 0 | const EVP_MD * | +| (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 1 | const OSSL_ITEM * | +| (const EVP_MD *,const OSSL_ITEM *,size_t) | | ossl_digest_md_to_nid | 2 | size_t | +| (const EVP_MD *,const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_v2_new_init | 0 | const EVP_MD * | +| (const EVP_MD *,const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_v2_new_init | 1 | const X509 * | +| (const EVP_MD *,const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_v2_new_init | 2 | const stack_st_X509 * | +| (const EVP_MD *,const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_v2_new_init | 3 | int | +| (const EVP_MD *,const X509_NAME *,const ASN1_BIT_STRING *,const ASN1_INTEGER *) | | OCSP_cert_id_new | 0 | const EVP_MD * | +| (const EVP_MD *,const X509_NAME *,const ASN1_BIT_STRING *,const ASN1_INTEGER *) | | OCSP_cert_id_new | 1 | const X509_NAME * | +| (const EVP_MD *,const X509_NAME *,const ASN1_BIT_STRING *,const ASN1_INTEGER *) | | OCSP_cert_id_new | 2 | const ASN1_BIT_STRING * | +| (const EVP_MD *,const X509_NAME *,const ASN1_BIT_STRING *,const ASN1_INTEGER *) | | OCSP_cert_id_new | 3 | const ASN1_INTEGER * | +| (const EVP_MD *,const unsigned char *,size_t) | | OSSL_STORE_SEARCH_by_key_fingerprint | 0 | const EVP_MD * | +| (const EVP_MD *,const unsigned char *,size_t) | | OSSL_STORE_SEARCH_by_key_fingerprint | 1 | const unsigned char * | +| (const EVP_MD *,const unsigned char *,size_t) | | OSSL_STORE_SEARCH_by_key_fingerprint | 2 | size_t | +| (const EVP_MD *,const void *,int,const unsigned char *,size_t,unsigned char *,unsigned int *) | | HMAC | 0 | const EVP_MD * | +| (const EVP_MD *,const void *,int,const unsigned char *,size_t,unsigned char *,unsigned int *) | | HMAC | 1 | const void * | +| (const EVP_MD *,const void *,int,const unsigned char *,size_t,unsigned char *,unsigned int *) | | HMAC | 2 | int | +| (const EVP_MD *,const void *,int,const unsigned char *,size_t,unsigned char *,unsigned int *) | | HMAC | 3 | const unsigned char * | +| (const EVP_MD *,const void *,int,const unsigned char *,size_t,unsigned char *,unsigned int *) | | HMAC | 4 | size_t | +| (const EVP_MD *,const void *,int,const unsigned char *,size_t,unsigned char *,unsigned int *) | | HMAC | 5 | unsigned char * | +| (const EVP_MD *,const void *,int,const unsigned char *,size_t,unsigned char *,unsigned int *) | | HMAC | 6 | unsigned int * | +| (const EVP_MD_CTX *) | | EVP_MD_CTX_dup | 0 | const EVP_MD_CTX * | +| (const EVP_MD_CTX *) | | EVP_MD_CTX_get0_md | 0 | const EVP_MD_CTX * | +| (const EVP_MD_CTX *) | | EVP_MD_CTX_get0_md_data | 0 | const EVP_MD_CTX * | +| (const EVP_MD_CTX *) | | EVP_MD_CTX_get_pkey_ctx | 0 | const EVP_MD_CTX * | +| (const EVP_MD_CTX *) | | EVP_MD_CTX_get_size_ex | 0 | const EVP_MD_CTX * | +| (const EVP_MD_CTX *) | | EVP_MD_CTX_md | 0 | const EVP_MD_CTX * | +| (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 0 | const EVP_MD_CTX * | +| (const EVP_MD_CTX *,int) | | EVP_MD_CTX_test_flags | 1 | int | +| (const EVP_PKEY *) | | EVP_PKEY_get0 | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get0_DH | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get0_DSA | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get0_EC_KEY | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get0_RSA | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get0_asn1 | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get0_description | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get0_engine | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get0_provider | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get0_type_name | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get_attr_count | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get_bits | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get_id | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get_security_bits | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | EVP_PKEY_get_size | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | evp_pkey_get0_DH_int | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | evp_pkey_get0_EC_KEY_int | 0 | const EVP_PKEY * | +| (const EVP_PKEY *) | | evp_pkey_get0_RSA_int | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,OSSL_PARAM *) | | evp_pkey_get_params_to_ctrl | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,OSSL_PARAM *) | | evp_pkey_get_params_to_ctrl | 1 | OSSL_PARAM * | +| (const EVP_PKEY *,OSSL_PARAM[]) | | EVP_PKEY_get_params | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,OSSL_PARAM[]) | | EVP_PKEY_get_params | 1 | OSSL_PARAM[] | +| (const EVP_PKEY *,const ASN1_OBJECT *,int) | | EVP_PKEY_get_attr_by_OBJ | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,const ASN1_OBJECT *,int) | | EVP_PKEY_get_attr_by_OBJ | 1 | const ASN1_OBJECT * | +| (const EVP_PKEY *,const ASN1_OBJECT *,int) | | EVP_PKEY_get_attr_by_OBJ | 2 | int | +| (const EVP_PKEY *,const char *,BIGNUM **) | | EVP_PKEY_get_bn_param | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,const char *,BIGNUM **) | | EVP_PKEY_get_bn_param | 1 | const char * | +| (const EVP_PKEY *,const char *,BIGNUM **) | | EVP_PKEY_get_bn_param | 2 | BIGNUM ** | +| (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,int) | | EVP_PKEY_get_attr | 1 | int | +| (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,int) | | EVP_PKEY_get_ex_data | 1 | int | +| (const EVP_PKEY *,int,const char *,const char *,const char *) | | OSSL_ENCODER_CTX_new_for_pkey | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,int,const char *,const char *,const char *) | | OSSL_ENCODER_CTX_new_for_pkey | 1 | int | +| (const EVP_PKEY *,int,const char *,const char *,const char *) | | OSSL_ENCODER_CTX_new_for_pkey | 2 | const char * | +| (const EVP_PKEY *,int,const char *,const char *,const char *) | | OSSL_ENCODER_CTX_new_for_pkey | 3 | const char * | +| (const EVP_PKEY *,int,const char *,const char *,const char *) | | OSSL_ENCODER_CTX_new_for_pkey | 4 | const char * | +| (const EVP_PKEY *,int,int) | | EVP_PKEY_get_attr_by_NID | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,int,int) | | EVP_PKEY_get_attr_by_NID | 1 | int | +| (const EVP_PKEY *,int,int) | | EVP_PKEY_get_attr_by_NID | 2 | int | +| (const EVP_PKEY *,size_t *,SSL_CTX *) | | ssl_cert_lookup_by_pkey | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,size_t *,SSL_CTX *) | | ssl_cert_lookup_by_pkey | 1 | size_t * | +| (const EVP_PKEY *,size_t *,SSL_CTX *) | | ssl_cert_lookup_by_pkey | 2 | SSL_CTX * | +| (const EVP_PKEY *,unsigned char **) | | i2d_KeyParams | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,unsigned char **) | | i2d_KeyParams | 1 | unsigned char ** | +| (const EVP_PKEY *,unsigned char **) | | i2d_PKCS8PrivateKey | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,unsigned char **) | | i2d_PKCS8PrivateKey | 1 | unsigned char ** | +| (const EVP_PKEY *,unsigned char **) | | i2d_PUBKEY | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,unsigned char **) | | i2d_PUBKEY | 1 | unsigned char ** | +| (const EVP_PKEY *,unsigned char **) | | i2d_PrivateKey | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,unsigned char **) | | i2d_PrivateKey | 1 | unsigned char ** | +| (const EVP_PKEY *,unsigned char **) | | i2d_PublicKey | 0 | const EVP_PKEY * | +| (const EVP_PKEY *,unsigned char **) | | i2d_PublicKey | 1 | unsigned char ** | +| (const EVP_PKEY_CTX *) | | EVP_PKEY_CTX_dup | 0 | const EVP_PKEY_CTX * | +| (const EVP_PKEY_CTX *) | | EVP_PKEY_CTX_get0_propq | 0 | const EVP_PKEY_CTX * | +| (const EVP_PKEY_CTX *) | | EVP_PKEY_CTX_get0_provider | 0 | const EVP_PKEY_CTX * | +| (const EVP_PKEY_CTX *) | | EVP_PKEY_CTX_get_data | 0 | const EVP_PKEY_CTX * | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_check | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_check | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_cleanup | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_cleanup | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_copy | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_copy | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_digest_custom | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_digest_custom | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_digestsign | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_digestsign | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_digestverify | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_digestverify | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_init | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_init | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_param_check | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_param_check | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_public_check | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..)) | | EVP_PKEY_meth_get_public_check | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_ctrl | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_ctrl | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_ctrl | 2 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_decrypt | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_decrypt | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_decrypt | 2 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_derive | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_derive | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_derive | 2 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_encrypt | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_encrypt | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_encrypt | 2 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_keygen | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_keygen | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_keygen | 2 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_paramgen | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_paramgen | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_paramgen | 2 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_sign | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_sign | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_sign | 2 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_signctx | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_signctx | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_signctx | 2 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_verify | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_verify | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_verify | 2 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_verify_recover | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_verify_recover | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_verify_recover | 2 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_verifyctx | 0 | const EVP_PKEY_METHOD * | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_verifyctx | 1 | ..(**)(..) | +| (const EVP_PKEY_METHOD *,..(**)(..),..(**)(..)) | | EVP_PKEY_meth_get_verifyctx | 2 | ..(**)(..) | +| (const EVP_RAND *) | | EVP_RAND_get0_description | 0 | const EVP_RAND * | +| (const EVP_RAND *) | | EVP_RAND_get0_name | 0 | const EVP_RAND * | +| (const EVP_RAND *) | | EVP_RAND_get0_provider | 0 | const EVP_RAND * | +| (const EVP_RAND *) | | evp_rand_get_number | 0 | const EVP_RAND * | +| (const EVP_RAND *,..(*)(..),void *) | | EVP_RAND_names_do_all | 0 | const EVP_RAND * | +| (const EVP_RAND *,..(*)(..),void *) | | EVP_RAND_names_do_all | 1 | ..(*)(..) | +| (const EVP_RAND *,..(*)(..),void *) | | EVP_RAND_names_do_all | 2 | void * | +| (const EVP_SIGNATURE *) | | EVP_SIGNATURE_get0_description | 0 | const EVP_SIGNATURE * | +| (const EVP_SIGNATURE *) | | EVP_SIGNATURE_get0_name | 0 | const EVP_SIGNATURE * | +| (const EVP_SIGNATURE *) | | EVP_SIGNATURE_get0_provider | 0 | const EVP_SIGNATURE * | +| (const EVP_SIGNATURE *) | | evp_signature_get_number | 0 | const EVP_SIGNATURE * | +| (const EVP_SIGNATURE *,..(*)(..),void *) | | EVP_SIGNATURE_names_do_all | 0 | const EVP_SIGNATURE * | +| (const EVP_SIGNATURE *,..(*)(..),void *) | | EVP_SIGNATURE_names_do_all | 1 | ..(*)(..) | +| (const EVP_SIGNATURE *,..(*)(..),void *) | | EVP_SIGNATURE_names_do_all | 2 | void * | +| (const EVP_SKEY *) | | EVP_SKEY_get0_skeymgmt_name | 0 | const EVP_SKEY * | +| (const EVP_SKEYMGMT *) | | EVP_SKEYMGMT_get0_description | 0 | const EVP_SKEYMGMT * | +| (const EVP_SKEYMGMT *) | | EVP_SKEYMGMT_get0_name | 0 | const EVP_SKEYMGMT * | +| (const EVP_SKEYMGMT *) | | EVP_SKEYMGMT_get0_provider | 0 | const EVP_SKEYMGMT * | +| (const EVP_SKEYMGMT *,..(*)(..),void *) | | EVP_SKEYMGMT_names_do_all | 0 | const EVP_SKEYMGMT * | +| (const EVP_SKEYMGMT *,..(*)(..),void *) | | EVP_SKEYMGMT_names_do_all | 1 | ..(*)(..) | +| (const EVP_SKEYMGMT *,..(*)(..),void *) | | EVP_SKEYMGMT_names_do_all | 2 | void * | +| (const EXTENDED_KEY_USAGE *,unsigned char **) | | i2d_EXTENDED_KEY_USAGE | 0 | const EXTENDED_KEY_USAGE * | +| (const EXTENDED_KEY_USAGE *,unsigned char **) | | i2d_EXTENDED_KEY_USAGE | 1 | unsigned char ** | +| (const FFC_PARAMS *,OSSL_PARAM_BLD *,OSSL_PARAM[]) | | ossl_ffc_params_todata | 0 | const FFC_PARAMS * | +| (const FFC_PARAMS *,OSSL_PARAM_BLD *,OSSL_PARAM[]) | | ossl_ffc_params_todata | 1 | OSSL_PARAM_BLD * | +| (const FFC_PARAMS *,OSSL_PARAM_BLD *,OSSL_PARAM[]) | | ossl_ffc_params_todata | 2 | OSSL_PARAM[] | +| (const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | ossl_ffc_params_get0_pqg | 0 | const FFC_PARAMS * | +| (const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | ossl_ffc_params_get0_pqg | 1 | const BIGNUM ** | +| (const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | ossl_ffc_params_get0_pqg | 2 | const BIGNUM ** | +| (const FFC_PARAMS *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | ossl_ffc_params_get0_pqg | 3 | const BIGNUM ** | +| (const FFC_PARAMS *,const BIGNUM *,int *) | | ossl_ffc_validate_public_key | 0 | const FFC_PARAMS * | +| (const FFC_PARAMS *,const BIGNUM *,int *) | | ossl_ffc_validate_public_key | 1 | const BIGNUM * | +| (const FFC_PARAMS *,const BIGNUM *,int *) | | ossl_ffc_validate_public_key | 2 | int * | +| (const FFC_PARAMS *,const BIGNUM *,int *) | | ossl_ffc_validate_public_key_partial | 0 | const FFC_PARAMS * | +| (const FFC_PARAMS *,const BIGNUM *,int *) | | ossl_ffc_validate_public_key_partial | 1 | const BIGNUM * | +| (const FFC_PARAMS *,const BIGNUM *,int *) | | ossl_ffc_validate_public_key_partial | 2 | int * | +| (const FFC_PARAMS *,unsigned char **,size_t *,int *) | | ossl_ffc_params_get_validate_params | 0 | const FFC_PARAMS * | +| (const FFC_PARAMS *,unsigned char **,size_t *,int *) | | ossl_ffc_params_get_validate_params | 1 | unsigned char ** | +| (const FFC_PARAMS *,unsigned char **,size_t *,int *) | | ossl_ffc_params_get_validate_params | 2 | size_t * | +| (const FFC_PARAMS *,unsigned char **,size_t *,int *) | | ossl_ffc_params_get_validate_params | 3 | int * | +| (const GENERAL_NAME *) | | GENERAL_NAME_dup | 0 | const GENERAL_NAME * | +| (const GENERAL_NAME *,int *) | | GENERAL_NAME_get0_value | 0 | const GENERAL_NAME * | +| (const GENERAL_NAME *,int *) | | GENERAL_NAME_get0_value | 1 | int * | +| (const GENERAL_NAME *,unsigned char **) | | i2d_GENERAL_NAME | 0 | const GENERAL_NAME * | +| (const GENERAL_NAME *,unsigned char **) | | i2d_GENERAL_NAME | 1 | unsigned char ** | +| (const GENERAL_NAMES *,unsigned char **) | | i2d_GENERAL_NAMES | 0 | const GENERAL_NAMES * | +| (const GENERAL_NAMES *,unsigned char **) | | i2d_GENERAL_NAMES | 1 | unsigned char ** | +| (const GOST_KX_MESSAGE *,unsigned char **) | | i2d_GOST_KX_MESSAGE | 0 | const GOST_KX_MESSAGE * | +| (const GOST_KX_MESSAGE *,unsigned char **) | | i2d_GOST_KX_MESSAGE | 1 | unsigned char ** | +| (const HMAC_CTX *) | | HMAC_CTX_get_md | 0 | const HMAC_CTX * | +| (const HMAC_CTX *) | | HMAC_size | 0 | const HMAC_CTX * | +| (const HT_CONFIG *) | | ossl_ht_new | 0 | const HT_CONFIG * | +| (const IPAddressChoice *,unsigned char **) | | i2d_IPAddressChoice | 0 | const IPAddressChoice * | +| (const IPAddressChoice *,unsigned char **) | | i2d_IPAddressChoice | 1 | unsigned char ** | +| (const IPAddressFamily *) | | X509v3_addr_get_afi | 0 | const IPAddressFamily * | +| (const IPAddressFamily *,unsigned char **) | | i2d_IPAddressFamily | 0 | const IPAddressFamily * | +| (const IPAddressFamily *,unsigned char **) | | i2d_IPAddressFamily | 1 | unsigned char ** | +| (const IPAddressOrRange *,unsigned char **) | | i2d_IPAddressOrRange | 0 | const IPAddressOrRange * | +| (const IPAddressOrRange *,unsigned char **) | | i2d_IPAddressOrRange | 1 | unsigned char ** | +| (const IPAddressRange *,unsigned char **) | | i2d_IPAddressRange | 0 | const IPAddressRange * | +| (const IPAddressRange *,unsigned char **) | | i2d_IPAddressRange | 1 | unsigned char ** | +| (const ISSUER_SIGN_TOOL *,unsigned char **) | | i2d_ISSUER_SIGN_TOOL | 0 | const ISSUER_SIGN_TOOL * | +| (const ISSUER_SIGN_TOOL *,unsigned char **) | | i2d_ISSUER_SIGN_TOOL | 1 | unsigned char ** | +| (const ISSUING_DIST_POINT *,unsigned char **) | | i2d_ISSUING_DIST_POINT | 0 | const ISSUING_DIST_POINT * | +| (const ISSUING_DIST_POINT *,unsigned char **) | | i2d_ISSUING_DIST_POINT | 1 | unsigned char ** | +| (const MATRIX *,const VECTOR *,VECTOR *) | | ossl_ml_dsa_matrix_mult_vector | 0 | const MATRIX * | +| (const MATRIX *,const VECTOR *,VECTOR *) | | ossl_ml_dsa_matrix_mult_vector | 1 | const VECTOR * | +| (const MATRIX *,const VECTOR *,VECTOR *) | | ossl_ml_dsa_matrix_mult_vector | 2 | VECTOR * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_get0_libctx | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_get_collision_strength_bits | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_get_name | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_get_priv | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_get_priv_len | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_get_prov_flags | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_get_pub | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_get_pub_len | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_get_seed | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_get_sig_len | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *) | | ossl_ml_dsa_key_params | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *,int) | | ossl_ml_dsa_key_dup | 1 | int | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t) | | ossl_ml_dsa_mu_init | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t) | | ossl_ml_dsa_mu_init | 1 | int | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t) | | ossl_ml_dsa_mu_init | 2 | const uint8_t * | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t) | | ossl_ml_dsa_mu_init | 3 | size_t | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 1 | int | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 2 | const uint8_t * | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 3 | size_t | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 4 | const uint8_t * | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 5 | size_t | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 6 | const uint8_t * | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 7 | size_t | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 8 | int | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 9 | unsigned char * | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 10 | size_t * | +| (const ML_DSA_KEY *,int,const uint8_t *,size_t,const uint8_t *,size_t,const uint8_t *,size_t,int,unsigned char *,size_t *,size_t) | | ossl_ml_dsa_sign | 11 | size_t | +| (const ML_DSA_KEY *,unsigned char **) | | ossl_ml_dsa_i2d_pubkey | 0 | const ML_DSA_KEY * | +| (const ML_DSA_KEY *,unsigned char **) | | ossl_ml_dsa_i2d_pubkey | 1 | unsigned char ** | +| (const ML_KEM_KEY *,const ML_KEM_KEY *) | | ossl_ml_kem_pubkey_cmp | 0 | const ML_KEM_KEY * | +| (const ML_KEM_KEY *,const ML_KEM_KEY *) | | ossl_ml_kem_pubkey_cmp | 1 | const ML_KEM_KEY * | +| (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 0 | const ML_KEM_KEY * | +| (const ML_KEM_KEY *,int) | | ossl_ml_kem_key_dup | 1 | int | +| (const ML_KEM_KEY *,unsigned char **) | | ossl_ml_kem_i2d_pubkey | 0 | const ML_KEM_KEY * | +| (const ML_KEM_KEY *,unsigned char **) | | ossl_ml_kem_i2d_pubkey | 1 | unsigned char ** | +| (const NAMING_AUTHORITY *) | | NAMING_AUTHORITY_get0_authorityId | 0 | const NAMING_AUTHORITY * | +| (const NAMING_AUTHORITY *) | | NAMING_AUTHORITY_get0_authorityText | 0 | const NAMING_AUTHORITY * | +| (const NAMING_AUTHORITY *) | | NAMING_AUTHORITY_get0_authorityURL | 0 | const NAMING_AUTHORITY * | +| (const NAMING_AUTHORITY *,unsigned char **) | | i2d_NAMING_AUTHORITY | 0 | const NAMING_AUTHORITY * | +| (const NAMING_AUTHORITY *,unsigned char **) | | i2d_NAMING_AUTHORITY | 1 | unsigned char ** | +| (const NETSCAPE_CERT_SEQUENCE *,unsigned char **) | | i2d_NETSCAPE_CERT_SEQUENCE | 0 | const NETSCAPE_CERT_SEQUENCE * | +| (const NETSCAPE_CERT_SEQUENCE *,unsigned char **) | | i2d_NETSCAPE_CERT_SEQUENCE | 1 | unsigned char ** | +| (const NETSCAPE_ENCRYPTED_PKEY *,unsigned char **) | | i2d_NETSCAPE_ENCRYPTED_PKEY | 0 | const NETSCAPE_ENCRYPTED_PKEY * | +| (const NETSCAPE_ENCRYPTED_PKEY *,unsigned char **) | | i2d_NETSCAPE_ENCRYPTED_PKEY | 1 | unsigned char ** | +| (const NETSCAPE_PKEY *,unsigned char **) | | i2d_NETSCAPE_PKEY | 0 | const NETSCAPE_PKEY * | +| (const NETSCAPE_PKEY *,unsigned char **) | | i2d_NETSCAPE_PKEY | 1 | unsigned char ** | +| (const NETSCAPE_SPKAC *,unsigned char **) | | i2d_NETSCAPE_SPKAC | 0 | const NETSCAPE_SPKAC * | +| (const NETSCAPE_SPKAC *,unsigned char **) | | i2d_NETSCAPE_SPKAC | 1 | unsigned char ** | +| (const NETSCAPE_SPKI *,unsigned char **) | | i2d_NETSCAPE_SPKI | 0 | const NETSCAPE_SPKI * | +| (const NETSCAPE_SPKI *,unsigned char **) | | i2d_NETSCAPE_SPKI | 1 | unsigned char ** | +| (const NOTICEREF *,unsigned char **) | | i2d_NOTICEREF | 0 | const NOTICEREF * | +| (const NOTICEREF *,unsigned char **) | | i2d_NOTICEREF | 1 | unsigned char ** | +| (const OCSP_BASICRESP *) | | OCSP_resp_get0_certs | 0 | const OCSP_BASICRESP * | +| (const OCSP_BASICRESP *) | | OCSP_resp_get0_produced_at | 0 | const OCSP_BASICRESP * | +| (const OCSP_BASICRESP *) | | OCSP_resp_get0_respdata | 0 | const OCSP_BASICRESP * | +| (const OCSP_BASICRESP *) | | OCSP_resp_get0_signature | 0 | const OCSP_BASICRESP * | +| (const OCSP_BASICRESP *) | | OCSP_resp_get0_tbs_sigalg | 0 | const OCSP_BASICRESP * | +| (const OCSP_BASICRESP *,ASN1_OCTET_STRING **,X509_NAME **) | | OCSP_resp_get1_id | 0 | const OCSP_BASICRESP * | +| (const OCSP_BASICRESP *,ASN1_OCTET_STRING **,X509_NAME **) | | OCSP_resp_get1_id | 1 | ASN1_OCTET_STRING ** | +| (const OCSP_BASICRESP *,ASN1_OCTET_STRING **,X509_NAME **) | | OCSP_resp_get1_id | 2 | X509_NAME ** | +| (const OCSP_BASICRESP *,unsigned char **) | | i2d_OCSP_BASICRESP | 0 | const OCSP_BASICRESP * | +| (const OCSP_BASICRESP *,unsigned char **) | | i2d_OCSP_BASICRESP | 1 | unsigned char ** | +| (const OCSP_CERTID *) | | OCSP_CERTID_dup | 0 | const OCSP_CERTID * | +| (const OCSP_CERTID *,const OCSP_CERTID *) | | OCSP_id_cmp | 0 | const OCSP_CERTID * | +| (const OCSP_CERTID *,const OCSP_CERTID *) | | OCSP_id_cmp | 1 | const OCSP_CERTID * | +| (const OCSP_CERTID *,const OCSP_CERTID *) | | OCSP_id_issuer_cmp | 0 | const OCSP_CERTID * | +| (const OCSP_CERTID *,const OCSP_CERTID *) | | OCSP_id_issuer_cmp | 1 | const OCSP_CERTID * | +| (const OCSP_CERTID *,unsigned char **) | | i2d_OCSP_CERTID | 0 | const OCSP_CERTID * | +| (const OCSP_CERTID *,unsigned char **) | | i2d_OCSP_CERTID | 1 | unsigned char ** | +| (const OCSP_CERTSTATUS *,unsigned char **) | | i2d_OCSP_CERTSTATUS | 0 | const OCSP_CERTSTATUS * | +| (const OCSP_CERTSTATUS *,unsigned char **) | | i2d_OCSP_CERTSTATUS | 1 | unsigned char ** | +| (const OCSP_CRLID *,unsigned char **) | | i2d_OCSP_CRLID | 0 | const OCSP_CRLID * | +| (const OCSP_CRLID *,unsigned char **) | | i2d_OCSP_CRLID | 1 | unsigned char ** | +| (const OCSP_ONEREQ *,unsigned char **) | | i2d_OCSP_ONEREQ | 0 | const OCSP_ONEREQ * | +| (const OCSP_ONEREQ *,unsigned char **) | | i2d_OCSP_ONEREQ | 1 | unsigned char ** | +| (const OCSP_REQINFO *,unsigned char **) | | i2d_OCSP_REQINFO | 0 | const OCSP_REQINFO * | +| (const OCSP_REQINFO *,unsigned char **) | | i2d_OCSP_REQINFO | 1 | unsigned char ** | +| (const OCSP_REQUEST *,unsigned char **) | | i2d_OCSP_REQUEST | 0 | const OCSP_REQUEST * | +| (const OCSP_REQUEST *,unsigned char **) | | i2d_OCSP_REQUEST | 1 | unsigned char ** | +| (const OCSP_RESPBYTES *,unsigned char **) | | i2d_OCSP_RESPBYTES | 0 | const OCSP_RESPBYTES * | +| (const OCSP_RESPBYTES *,unsigned char **) | | i2d_OCSP_RESPBYTES | 1 | unsigned char ** | +| (const OCSP_RESPDATA *,unsigned char **) | | i2d_OCSP_RESPDATA | 0 | const OCSP_RESPDATA * | +| (const OCSP_RESPDATA *,unsigned char **) | | i2d_OCSP_RESPDATA | 1 | unsigned char ** | +| (const OCSP_RESPID *,unsigned char **) | | i2d_OCSP_RESPID | 0 | const OCSP_RESPID * | +| (const OCSP_RESPID *,unsigned char **) | | i2d_OCSP_RESPID | 1 | unsigned char ** | +| (const OCSP_RESPONSE *,unsigned char **) | | i2d_OCSP_RESPONSE | 0 | const OCSP_RESPONSE * | +| (const OCSP_RESPONSE *,unsigned char **) | | i2d_OCSP_RESPONSE | 1 | unsigned char ** | +| (const OCSP_REVOKEDINFO *,unsigned char **) | | i2d_OCSP_REVOKEDINFO | 0 | const OCSP_REVOKEDINFO * | +| (const OCSP_REVOKEDINFO *,unsigned char **) | | i2d_OCSP_REVOKEDINFO | 1 | unsigned char ** | +| (const OCSP_SERVICELOC *,unsigned char **) | | i2d_OCSP_SERVICELOC | 0 | const OCSP_SERVICELOC * | +| (const OCSP_SERVICELOC *,unsigned char **) | | i2d_OCSP_SERVICELOC | 1 | unsigned char ** | +| (const OCSP_SIGNATURE *,unsigned char **) | | i2d_OCSP_SIGNATURE | 0 | const OCSP_SIGNATURE * | +| (const OCSP_SIGNATURE *,unsigned char **) | | i2d_OCSP_SIGNATURE | 1 | unsigned char ** | +| (const OCSP_SINGLERESP *) | | OCSP_SINGLERESP_get0_id | 0 | const OCSP_SINGLERESP * | +| (const OCSP_SINGLERESP *,unsigned char **) | | i2d_OCSP_SINGLERESP | 0 | const OCSP_SINGLERESP * | +| (const OCSP_SINGLERESP *,unsigned char **) | | i2d_OCSP_SINGLERESP | 1 | unsigned char ** | +| (const OPENSSL_CSTRING *,const OPENSSL_CSTRING *) | | index_name_cmp | 0 | const OPENSSL_CSTRING * | +| (const OPENSSL_CSTRING *,const OPENSSL_CSTRING *) | | index_name_cmp | 1 | const OPENSSL_CSTRING * | +| (const OPENSSL_LHASH *) | | OPENSSL_LH_get_down_load | 0 | const OPENSSL_LHASH * | +| (const OPENSSL_LHASH *) | | OPENSSL_LH_num_items | 0 | const OPENSSL_LHASH * | +| (const OPENSSL_SA *) | | ossl_sa_num | 0 | const OPENSSL_SA * | +| (const OPENSSL_SA *,..(*)(..),void *) | | ossl_sa_doall_arg | 0 | const OPENSSL_SA * | +| (const OPENSSL_SA *,..(*)(..),void *) | | ossl_sa_doall_arg | 1 | ..(*)(..) | +| (const OPENSSL_SA *,..(*)(..),void *) | | ossl_sa_doall_arg | 2 | void * | +| (const OPENSSL_SA *,ossl_uintmax_t) | | ossl_sa_get | 0 | const OPENSSL_SA * | +| (const OPENSSL_SA *,ossl_uintmax_t) | | ossl_sa_get | 1 | ossl_uintmax_t | +| (const OPENSSL_STACK *) | | OPENSSL_sk_dup | 0 | const OPENSSL_STACK * | +| (const OPENSSL_STACK *) | | OPENSSL_sk_is_sorted | 0 | const OPENSSL_STACK * | +| (const OPENSSL_STACK *) | | OPENSSL_sk_num | 0 | const OPENSSL_STACK * | +| (const OPENSSL_STACK *,OPENSSL_sk_copyfunc,OPENSSL_sk_freefunc) | | OPENSSL_sk_deep_copy | 0 | const OPENSSL_STACK * | +| (const OPENSSL_STACK *,OPENSSL_sk_copyfunc,OPENSSL_sk_freefunc) | | OPENSSL_sk_deep_copy | 1 | OPENSSL_sk_copyfunc | +| (const OPENSSL_STACK *,OPENSSL_sk_copyfunc,OPENSSL_sk_freefunc) | | OPENSSL_sk_deep_copy | 2 | OPENSSL_sk_freefunc | +| (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 0 | const OPENSSL_STACK * | +| (const OPENSSL_STACK *,int) | | OPENSSL_sk_value | 1 | int | +| (const OPTIONS *) | | opt_help | 0 | const OPTIONS * | +| (const OSSL_AA_DIST_POINT *,unsigned char **) | | i2d_OSSL_AA_DIST_POINT | 0 | const OSSL_AA_DIST_POINT * | +| (const OSSL_AA_DIST_POINT *,unsigned char **) | | i2d_OSSL_AA_DIST_POINT | 1 | unsigned char ** | +| (const OSSL_ALGORITHM *) | | ossl_algorithm_get1_first_name | 0 | const OSSL_ALGORITHM * | +| (const OSSL_ALGORITHM_CAPABLE *,OSSL_ALGORITHM *) | | ossl_prov_cache_exported_algorithms | 0 | const OSSL_ALGORITHM_CAPABLE * | +| (const OSSL_ALGORITHM_CAPABLE *,OSSL_ALGORITHM *) | | ossl_prov_cache_exported_algorithms | 1 | OSSL_ALGORITHM * | +| (const OSSL_ALLOWED_ATTRIBUTES_CHOICE *,unsigned char **) | | i2d_OSSL_ALLOWED_ATTRIBUTES_CHOICE | 0 | const OSSL_ALLOWED_ATTRIBUTES_CHOICE * | +| (const OSSL_ALLOWED_ATTRIBUTES_CHOICE *,unsigned char **) | | i2d_OSSL_ALLOWED_ATTRIBUTES_CHOICE | 1 | unsigned char ** | +| (const OSSL_ALLOWED_ATTRIBUTES_ITEM *,unsigned char **) | | i2d_OSSL_ALLOWED_ATTRIBUTES_ITEM | 0 | const OSSL_ALLOWED_ATTRIBUTES_ITEM * | +| (const OSSL_ALLOWED_ATTRIBUTES_ITEM *,unsigned char **) | | i2d_OSSL_ALLOWED_ATTRIBUTES_ITEM | 1 | unsigned char ** | +| (const OSSL_ALLOWED_ATTRIBUTES_SYNTAX *,unsigned char **) | | i2d_OSSL_ALLOWED_ATTRIBUTES_SYNTAX | 0 | const OSSL_ALLOWED_ATTRIBUTES_SYNTAX * | +| (const OSSL_ALLOWED_ATTRIBUTES_SYNTAX *,unsigned char **) | | i2d_OSSL_ALLOWED_ATTRIBUTES_SYNTAX | 1 | unsigned char ** | +| (const OSSL_ATAV *,unsigned char **) | | i2d_OSSL_ATAV | 0 | const OSSL_ATAV * | +| (const OSSL_ATAV *,unsigned char **) | | i2d_OSSL_ATAV | 1 | unsigned char ** | +| (const OSSL_ATTRIBUTES_SYNTAX *,unsigned char **) | | i2d_OSSL_ATTRIBUTES_SYNTAX | 0 | const OSSL_ATTRIBUTES_SYNTAX * | +| (const OSSL_ATTRIBUTES_SYNTAX *,unsigned char **) | | i2d_OSSL_ATTRIBUTES_SYNTAX | 1 | unsigned char ** | +| (const OSSL_ATTRIBUTE_DESCRIPTOR *,unsigned char **) | | i2d_OSSL_ATTRIBUTE_DESCRIPTOR | 0 | const OSSL_ATTRIBUTE_DESCRIPTOR * | +| (const OSSL_ATTRIBUTE_DESCRIPTOR *,unsigned char **) | | i2d_OSSL_ATTRIBUTE_DESCRIPTOR | 1 | unsigned char ** | +| (const OSSL_ATTRIBUTE_MAPPING *,unsigned char **) | | i2d_OSSL_ATTRIBUTE_MAPPING | 0 | const OSSL_ATTRIBUTE_MAPPING * | +| (const OSSL_ATTRIBUTE_MAPPING *,unsigned char **) | | i2d_OSSL_ATTRIBUTE_MAPPING | 1 | unsigned char ** | +| (const OSSL_ATTRIBUTE_MAPPINGS *,unsigned char **) | | i2d_OSSL_ATTRIBUTE_MAPPINGS | 0 | const OSSL_ATTRIBUTE_MAPPINGS * | +| (const OSSL_ATTRIBUTE_MAPPINGS *,unsigned char **) | | i2d_OSSL_ATTRIBUTE_MAPPINGS | 1 | unsigned char ** | +| (const OSSL_ATTRIBUTE_TYPE_MAPPING *,unsigned char **) | | i2d_OSSL_ATTRIBUTE_TYPE_MAPPING | 0 | const OSSL_ATTRIBUTE_TYPE_MAPPING * | +| (const OSSL_ATTRIBUTE_TYPE_MAPPING *,unsigned char **) | | i2d_OSSL_ATTRIBUTE_TYPE_MAPPING | 1 | unsigned char ** | +| (const OSSL_ATTRIBUTE_VALUE_MAPPING *,unsigned char **) | | i2d_OSSL_ATTRIBUTE_VALUE_MAPPING | 0 | const OSSL_ATTRIBUTE_VALUE_MAPPING * | +| (const OSSL_ATTRIBUTE_VALUE_MAPPING *,unsigned char **) | | i2d_OSSL_ATTRIBUTE_VALUE_MAPPING | 1 | unsigned char ** | +| (const OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *,unsigned char **) | | i2d_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX | 0 | const OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX * | +| (const OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX *,unsigned char **) | | i2d_OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX | 1 | unsigned char ** | +| (const OSSL_BASIC_ATTR_CONSTRAINTS *,unsigned char **) | | i2d_OSSL_BASIC_ATTR_CONSTRAINTS | 0 | const OSSL_BASIC_ATTR_CONSTRAINTS * | +| (const OSSL_BASIC_ATTR_CONSTRAINTS *,unsigned char **) | | i2d_OSSL_BASIC_ATTR_CONSTRAINTS | 1 | unsigned char ** | +| (const OSSL_CMP_ATAV *) | | OSSL_CMP_ATAV_get0_algId | 0 | const OSSL_CMP_ATAV * | +| (const OSSL_CMP_ATAV *) | | OSSL_CMP_ATAV_get0_type | 0 | const OSSL_CMP_ATAV * | +| (const OSSL_CMP_ATAV *) | | OSSL_CMP_ATAV_get0_value | 0 | const OSSL_CMP_ATAV * | +| (const OSSL_CMP_ATAVS *,unsigned char **) | | i2d_OSSL_CMP_ATAVS | 0 | const OSSL_CMP_ATAVS * | +| (const OSSL_CMP_ATAVS *,unsigned char **) | | i2d_OSSL_CMP_ATAVS | 1 | unsigned char ** | +| (const OSSL_CMP_CAKEYUPDANNCONTENT *,unsigned char **) | | i2d_OSSL_CMP_CAKEYUPDANNCONTENT | 0 | const OSSL_CMP_CAKEYUPDANNCONTENT * | +| (const OSSL_CMP_CAKEYUPDANNCONTENT *,unsigned char **) | | i2d_OSSL_CMP_CAKEYUPDANNCONTENT | 1 | unsigned char ** | +| (const OSSL_CMP_CERTIFIEDKEYPAIR *,unsigned char **) | | i2d_OSSL_CMP_CERTIFIEDKEYPAIR | 0 | const OSSL_CMP_CERTIFIEDKEYPAIR * | +| (const OSSL_CMP_CERTIFIEDKEYPAIR *,unsigned char **) | | i2d_OSSL_CMP_CERTIFIEDKEYPAIR | 1 | unsigned char ** | +| (const OSSL_CMP_CERTORENCCERT *,unsigned char **) | | i2d_OSSL_CMP_CERTORENCCERT | 0 | const OSSL_CMP_CERTORENCCERT * | +| (const OSSL_CMP_CERTORENCCERT *,unsigned char **) | | i2d_OSSL_CMP_CERTORENCCERT | 1 | unsigned char ** | +| (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 0 | const OSSL_CMP_CERTREPMESSAGE * | +| (const OSSL_CMP_CERTREPMESSAGE *,int) | | ossl_cmp_certrepmessage_get0_certresponse | 1 | int | +| (const OSSL_CMP_CERTREPMESSAGE *,unsigned char **) | | i2d_OSSL_CMP_CERTREPMESSAGE | 0 | const OSSL_CMP_CERTREPMESSAGE * | +| (const OSSL_CMP_CERTREPMESSAGE *,unsigned char **) | | i2d_OSSL_CMP_CERTREPMESSAGE | 1 | unsigned char ** | +| (const OSSL_CMP_CERTREQTEMPLATE *,unsigned char **) | | i2d_OSSL_CMP_CERTREQTEMPLATE | 0 | const OSSL_CMP_CERTREQTEMPLATE * | +| (const OSSL_CMP_CERTREQTEMPLATE *,unsigned char **) | | i2d_OSSL_CMP_CERTREQTEMPLATE | 1 | unsigned char ** | +| (const OSSL_CMP_CERTRESPONSE *,unsigned char **) | | i2d_OSSL_CMP_CERTRESPONSE | 0 | const OSSL_CMP_CERTRESPONSE * | +| (const OSSL_CMP_CERTRESPONSE *,unsigned char **) | | i2d_OSSL_CMP_CERTRESPONSE | 1 | unsigned char ** | +| (const OSSL_CMP_CERTSTATUS *,unsigned char **) | | i2d_OSSL_CMP_CERTSTATUS | 0 | const OSSL_CMP_CERTSTATUS * | +| (const OSSL_CMP_CERTSTATUS *,unsigned char **) | | i2d_OSSL_CMP_CERTSTATUS | 1 | unsigned char ** | +| (const OSSL_CMP_CHALLENGE *,unsigned char **) | | i2d_OSSL_CMP_CHALLENGE | 0 | const OSSL_CMP_CHALLENGE * | +| (const OSSL_CMP_CHALLENGE *,unsigned char **) | | i2d_OSSL_CMP_CHALLENGE | 1 | unsigned char ** | +| (const OSSL_CMP_CRLSOURCE *,unsigned char **) | | i2d_OSSL_CMP_CRLSOURCE | 0 | const OSSL_CMP_CRLSOURCE * | +| (const OSSL_CMP_CRLSOURCE *,unsigned char **) | | i2d_OSSL_CMP_CRLSOURCE | 1 | unsigned char ** | +| (const OSSL_CMP_CRLSTATUS *,DIST_POINT_NAME **,GENERAL_NAMES **,ASN1_TIME **) | | OSSL_CMP_CRLSTATUS_get0 | 0 | const OSSL_CMP_CRLSTATUS * | +| (const OSSL_CMP_CRLSTATUS *,DIST_POINT_NAME **,GENERAL_NAMES **,ASN1_TIME **) | | OSSL_CMP_CRLSTATUS_get0 | 1 | DIST_POINT_NAME ** | +| (const OSSL_CMP_CRLSTATUS *,DIST_POINT_NAME **,GENERAL_NAMES **,ASN1_TIME **) | | OSSL_CMP_CRLSTATUS_get0 | 2 | GENERAL_NAMES ** | +| (const OSSL_CMP_CRLSTATUS *,DIST_POINT_NAME **,GENERAL_NAMES **,ASN1_TIME **) | | OSSL_CMP_CRLSTATUS_get0 | 3 | ASN1_TIME ** | +| (const OSSL_CMP_CRLSTATUS *,unsigned char **) | | i2d_OSSL_CMP_CRLSTATUS | 0 | const OSSL_CMP_CRLSTATUS * | +| (const OSSL_CMP_CRLSTATUS *,unsigned char **) | | i2d_OSSL_CMP_CRLSTATUS | 1 | unsigned char ** | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get0_geninfo_ITAVs | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get0_libctx | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get0_newCert | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get0_propq | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get0_statusString | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get0_trustedStore | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get0_untrusted | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get0_validatedSrvCert | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get1_caPubs | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get1_extraCertsIn | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get1_newChain | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get_certConf_cb_arg | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get_failInfoCode | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get_http_cb_arg | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get_status | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | OSSL_CMP_CTX_get_transfer_cb_arg | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *) | | ossl_cmp_ctx_get0_newPubkey | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *,char *,size_t) | | OSSL_CMP_CTX_snprint_PKIStatus | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *,char *,size_t) | | OSSL_CMP_CTX_snprint_PKIStatus | 1 | char * | +| (const OSSL_CMP_CTX *,char *,size_t) | | OSSL_CMP_CTX_snprint_PKIStatus | 2 | size_t | +| (const OSSL_CMP_CTX *,const OSSL_CMP_CERTRESPONSE *) | | ossl_cmp_certresponse_get1_cert | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *,const OSSL_CMP_CERTRESPONSE *) | | ossl_cmp_certresponse_get1_cert | 1 | const OSSL_CMP_CERTRESPONSE * | +| (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get0_newPkey | 1 | int | +| (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 0 | const OSSL_CMP_CTX * | +| (const OSSL_CMP_CTX *,int) | | OSSL_CMP_CTX_get_option | 1 | int | +| (const OSSL_CMP_ERRORMSGCONTENT *,unsigned char **) | | i2d_OSSL_CMP_ERRORMSGCONTENT | 0 | const OSSL_CMP_ERRORMSGCONTENT * | +| (const OSSL_CMP_ERRORMSGCONTENT *,unsigned char **) | | i2d_OSSL_CMP_ERRORMSGCONTENT | 1 | unsigned char ** | +| (const OSSL_CMP_ITAV *) | | OSSL_CMP_ITAV_dup | 0 | const OSSL_CMP_ITAV * | +| (const OSSL_CMP_ITAV *) | | OSSL_CMP_ITAV_get0_type | 0 | const OSSL_CMP_ITAV * | +| (const OSSL_CMP_ITAV *) | | OSSL_CMP_ITAV_get0_value | 0 | const OSSL_CMP_ITAV * | +| (const OSSL_CMP_ITAV *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **) | | OSSL_CMP_ITAV_get1_certReqTemplate | 0 | const OSSL_CMP_ITAV * | +| (const OSSL_CMP_ITAV *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **) | | OSSL_CMP_ITAV_get1_certReqTemplate | 1 | OSSL_CRMF_CERTTEMPLATE ** | +| (const OSSL_CMP_ITAV *,OSSL_CRMF_CERTTEMPLATE **,OSSL_CMP_ATAVS **) | | OSSL_CMP_ITAV_get1_certReqTemplate | 2 | OSSL_CMP_ATAVS ** | +| (const OSSL_CMP_ITAV *,X509 **) | | OSSL_CMP_ITAV_get0_rootCaCert | 0 | const OSSL_CMP_ITAV * | +| (const OSSL_CMP_ITAV *,X509 **) | | OSSL_CMP_ITAV_get0_rootCaCert | 1 | X509 ** | +| (const OSSL_CMP_ITAV *,stack_st_ASN1_UTF8STRING **) | | OSSL_CMP_ITAV_get0_certProfile | 0 | const OSSL_CMP_ITAV * | +| (const OSSL_CMP_ITAV *,stack_st_ASN1_UTF8STRING **) | | OSSL_CMP_ITAV_get0_certProfile | 1 | stack_st_ASN1_UTF8STRING ** | +| (const OSSL_CMP_ITAV *,stack_st_OSSL_CMP_CRLSTATUS **) | | OSSL_CMP_ITAV_get0_crlStatusList | 0 | const OSSL_CMP_ITAV * | +| (const OSSL_CMP_ITAV *,stack_st_OSSL_CMP_CRLSTATUS **) | | OSSL_CMP_ITAV_get0_crlStatusList | 1 | stack_st_OSSL_CMP_CRLSTATUS ** | +| (const OSSL_CMP_ITAV *,stack_st_X509 **) | | OSSL_CMP_ITAV_get0_caCerts | 0 | const OSSL_CMP_ITAV * | +| (const OSSL_CMP_ITAV *,stack_st_X509 **) | | OSSL_CMP_ITAV_get0_caCerts | 1 | stack_st_X509 ** | +| (const OSSL_CMP_ITAV *,stack_st_X509_CRL **) | | OSSL_CMP_ITAV_get0_crls | 0 | const OSSL_CMP_ITAV * | +| (const OSSL_CMP_ITAV *,stack_st_X509_CRL **) | | OSSL_CMP_ITAV_get0_crls | 1 | stack_st_X509_CRL ** | +| (const OSSL_CMP_ITAV *,unsigned char **) | | i2d_OSSL_CMP_ITAV | 0 | const OSSL_CMP_ITAV * | +| (const OSSL_CMP_ITAV *,unsigned char **) | | i2d_OSSL_CMP_ITAV | 1 | unsigned char ** | +| (const OSSL_CMP_KEYRECREPCONTENT *,unsigned char **) | | i2d_OSSL_CMP_KEYRECREPCONTENT | 0 | const OSSL_CMP_KEYRECREPCONTENT * | +| (const OSSL_CMP_KEYRECREPCONTENT *,unsigned char **) | | i2d_OSSL_CMP_KEYRECREPCONTENT | 1 | unsigned char ** | +| (const OSSL_CMP_MSG *) | | OSSL_CMP_MSG_dup | 0 | const OSSL_CMP_MSG * | +| (const OSSL_CMP_MSG *) | | OSSL_CMP_MSG_get0_header | 0 | const OSSL_CMP_MSG * | +| (const OSSL_CMP_MSG *) | | OSSL_CMP_MSG_get_bodytype | 0 | const OSSL_CMP_MSG * | +| (const OSSL_CMP_MSG *) | | valid_asn1_encoding | 0 | const OSSL_CMP_MSG * | +| (const OSSL_CMP_MSG *,unsigned char **) | | i2d_OSSL_CMP_MSG | 0 | const OSSL_CMP_MSG * | +| (const OSSL_CMP_MSG *,unsigned char **) | | i2d_OSSL_CMP_MSG | 1 | unsigned char ** | +| (const OSSL_CMP_PKIBODY *,unsigned char **) | | i2d_OSSL_CMP_PKIBODY | 0 | const OSSL_CMP_PKIBODY * | +| (const OSSL_CMP_PKIBODY *,unsigned char **) | | i2d_OSSL_CMP_PKIBODY | 1 | unsigned char ** | +| (const OSSL_CMP_PKIHEADER *) | | OSSL_CMP_HDR_get0_geninfo_ITAVs | 0 | const OSSL_CMP_PKIHEADER * | +| (const OSSL_CMP_PKIHEADER *) | | OSSL_CMP_HDR_get0_recipNonce | 0 | const OSSL_CMP_PKIHEADER * | +| (const OSSL_CMP_PKIHEADER *) | | OSSL_CMP_HDR_get0_transactionID | 0 | const OSSL_CMP_PKIHEADER * | +| (const OSSL_CMP_PKIHEADER *) | | ossl_cmp_hdr_get0_senderNonce | 0 | const OSSL_CMP_PKIHEADER * | +| (const OSSL_CMP_PKIHEADER *) | | ossl_cmp_hdr_get_pvno | 0 | const OSSL_CMP_PKIHEADER * | +| (const OSSL_CMP_PKIHEADER *,unsigned char **) | | i2d_OSSL_CMP_PKIHEADER | 0 | const OSSL_CMP_PKIHEADER * | +| (const OSSL_CMP_PKIHEADER *,unsigned char **) | | i2d_OSSL_CMP_PKIHEADER | 1 | unsigned char ** | +| (const OSSL_CMP_PKISI *) | | OSSL_CMP_PKISI_dup | 0 | const OSSL_CMP_PKISI * | +| (const OSSL_CMP_PKISI *) | | ossl_cmp_pkisi_get0_statusString | 0 | const OSSL_CMP_PKISI * | +| (const OSSL_CMP_PKISI *) | | ossl_cmp_pkisi_get_status | 0 | const OSSL_CMP_PKISI * | +| (const OSSL_CMP_PKISI *,char *,size_t) | | OSSL_CMP_snprint_PKIStatusInfo | 0 | const OSSL_CMP_PKISI * | +| (const OSSL_CMP_PKISI *,char *,size_t) | | OSSL_CMP_snprint_PKIStatusInfo | 1 | char * | +| (const OSSL_CMP_PKISI *,char *,size_t) | | OSSL_CMP_snprint_PKIStatusInfo | 2 | size_t | +| (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 0 | const OSSL_CMP_PKISI * | +| (const OSSL_CMP_PKISI *,int) | | ossl_cmp_pkisi_check_pkifailureinfo | 1 | int | +| (const OSSL_CMP_PKISI *,unsigned char **) | | i2d_OSSL_CMP_PKISI | 0 | const OSSL_CMP_PKISI * | +| (const OSSL_CMP_PKISI *,unsigned char **) | | i2d_OSSL_CMP_PKISI | 1 | unsigned char ** | +| (const OSSL_CMP_POLLREP *,unsigned char **) | | i2d_OSSL_CMP_POLLREP | 0 | const OSSL_CMP_POLLREP * | +| (const OSSL_CMP_POLLREP *,unsigned char **) | | i2d_OSSL_CMP_POLLREP | 1 | unsigned char ** | +| (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 0 | const OSSL_CMP_POLLREPCONTENT * | +| (const OSSL_CMP_POLLREPCONTENT *,int) | | ossl_cmp_pollrepcontent_get0_pollrep | 1 | int | +| (const OSSL_CMP_POLLREQ *,unsigned char **) | | i2d_OSSL_CMP_POLLREQ | 0 | const OSSL_CMP_POLLREQ * | +| (const OSSL_CMP_POLLREQ *,unsigned char **) | | i2d_OSSL_CMP_POLLREQ | 1 | unsigned char ** | +| (const OSSL_CMP_PROTECTEDPART *,unsigned char **) | | i2d_OSSL_CMP_PROTECTEDPART | 0 | const OSSL_CMP_PROTECTEDPART * | +| (const OSSL_CMP_PROTECTEDPART *,unsigned char **) | | i2d_OSSL_CMP_PROTECTEDPART | 1 | unsigned char ** | +| (const OSSL_CMP_REVANNCONTENT *,unsigned char **) | | i2d_OSSL_CMP_REVANNCONTENT | 0 | const OSSL_CMP_REVANNCONTENT * | +| (const OSSL_CMP_REVANNCONTENT *,unsigned char **) | | i2d_OSSL_CMP_REVANNCONTENT | 1 | unsigned char ** | +| (const OSSL_CMP_REVDETAILS *,unsigned char **) | | i2d_OSSL_CMP_REVDETAILS | 0 | const OSSL_CMP_REVDETAILS * | +| (const OSSL_CMP_REVDETAILS *,unsigned char **) | | i2d_OSSL_CMP_REVDETAILS | 1 | unsigned char ** | +| (const OSSL_CMP_REVREPCONTENT *,unsigned char **) | | i2d_OSSL_CMP_REVREPCONTENT | 0 | const OSSL_CMP_REVREPCONTENT * | +| (const OSSL_CMP_REVREPCONTENT *,unsigned char **) | | i2d_OSSL_CMP_REVREPCONTENT | 1 | unsigned char ** | +| (const OSSL_CMP_ROOTCAKEYUPDATE *,unsigned char **) | | i2d_OSSL_CMP_ROOTCAKEYUPDATE | 0 | const OSSL_CMP_ROOTCAKEYUPDATE * | +| (const OSSL_CMP_ROOTCAKEYUPDATE *,unsigned char **) | | i2d_OSSL_CMP_ROOTCAKEYUPDATE | 1 | unsigned char ** | +| (const OSSL_CMP_SRV_CTX *) | | OSSL_CMP_SRV_CTX_get0_cmp_ctx | 0 | const OSSL_CMP_SRV_CTX * | +| (const OSSL_CMP_SRV_CTX *) | | OSSL_CMP_SRV_CTX_get0_custom_ctx | 0 | const OSSL_CMP_SRV_CTX * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *) | | OSSL_LIB_CTX_new_child | 0 | const OSSL_CORE_HANDLE * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *) | | OSSL_LIB_CTX_new_child | 1 | const OSSL_DISPATCH * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *) | | OSSL_LIB_CTX_new_from_dispatch | 0 | const OSSL_CORE_HANDLE * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *) | | OSSL_LIB_CTX_new_from_dispatch | 1 | const OSSL_DISPATCH * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | OSSL_provider_init | 0 | const OSSL_CORE_HANDLE * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | OSSL_provider_init | 1 | const OSSL_DISPATCH * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | OSSL_provider_init | 2 | const OSSL_DISPATCH ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | OSSL_provider_init | 3 | void ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | filter_provider_init | 0 | const OSSL_CORE_HANDLE * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | filter_provider_init | 1 | const OSSL_DISPATCH * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | filter_provider_init | 2 | const OSSL_DISPATCH ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | filter_provider_init | 3 | void ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_base_provider_init | 0 | const OSSL_CORE_HANDLE * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_base_provider_init | 1 | const OSSL_DISPATCH * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_base_provider_init | 2 | const OSSL_DISPATCH ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_base_provider_init | 3 | void ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_default_provider_init | 0 | const OSSL_CORE_HANDLE * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_default_provider_init | 1 | const OSSL_DISPATCH * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_default_provider_init | 2 | const OSSL_DISPATCH ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_default_provider_init | 3 | void ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_legacy_provider_init | 0 | const OSSL_CORE_HANDLE * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_legacy_provider_init | 1 | const OSSL_DISPATCH * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_legacy_provider_init | 2 | const OSSL_DISPATCH ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_legacy_provider_init | 3 | void ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_null_provider_init | 0 | const OSSL_CORE_HANDLE * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_null_provider_init | 1 | const OSSL_DISPATCH * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_null_provider_init | 2 | const OSSL_DISPATCH ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_null_provider_init | 3 | void ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | p_test_init | 0 | const OSSL_CORE_HANDLE * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | p_test_init | 1 | const OSSL_DISPATCH * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | p_test_init | 2 | const OSSL_DISPATCH ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | p_test_init | 3 | void ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | tls_provider_init | 0 | const OSSL_CORE_HANDLE * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | tls_provider_init | 1 | const OSSL_DISPATCH * | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | tls_provider_init | 2 | const OSSL_DISPATCH ** | +| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | tls_provider_init | 3 | void ** | +| (const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *) | | OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup | 0 | const OSSL_CRMF_ATTRIBUTETYPEANDVALUE * | +| (const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *,unsigned char **) | | i2d_OSSL_CRMF_ATTRIBUTETYPEANDVALUE | 0 | const OSSL_CRMF_ATTRIBUTETYPEANDVALUE * | +| (const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *,unsigned char **) | | i2d_OSSL_CRMF_ATTRIBUTETYPEANDVALUE | 1 | unsigned char ** | +| (const OSSL_CRMF_CERTID *) | | OSSL_CRMF_CERTID_dup | 0 | const OSSL_CRMF_CERTID * | +| (const OSSL_CRMF_CERTID *) | | OSSL_CRMF_CERTID_get0_serialNumber | 0 | const OSSL_CRMF_CERTID * | +| (const OSSL_CRMF_CERTID *,unsigned char **) | | i2d_OSSL_CRMF_CERTID | 0 | const OSSL_CRMF_CERTID * | +| (const OSSL_CRMF_CERTID *,unsigned char **) | | i2d_OSSL_CRMF_CERTID | 1 | unsigned char ** | +| (const OSSL_CRMF_CERTREQUEST *) | | OSSL_CRMF_CERTREQUEST_dup | 0 | const OSSL_CRMF_CERTREQUEST * | +| (const OSSL_CRMF_CERTREQUEST *,unsigned char **) | | i2d_OSSL_CRMF_CERTREQUEST | 0 | const OSSL_CRMF_CERTREQUEST * | +| (const OSSL_CRMF_CERTREQUEST *,unsigned char **) | | i2d_OSSL_CRMF_CERTREQUEST | 1 | unsigned char ** | +| (const OSSL_CRMF_CERTTEMPLATE *) | | OSSL_CRMF_CERTTEMPLATE_dup | 0 | const OSSL_CRMF_CERTTEMPLATE * | +| (const OSSL_CRMF_CERTTEMPLATE *) | | OSSL_CRMF_CERTTEMPLATE_get0_extensions | 0 | const OSSL_CRMF_CERTTEMPLATE * | +| (const OSSL_CRMF_CERTTEMPLATE *) | | OSSL_CRMF_CERTTEMPLATE_get0_issuer | 0 | const OSSL_CRMF_CERTTEMPLATE * | +| (const OSSL_CRMF_CERTTEMPLATE *) | | OSSL_CRMF_CERTTEMPLATE_get0_publicKey | 0 | const OSSL_CRMF_CERTTEMPLATE * | +| (const OSSL_CRMF_CERTTEMPLATE *) | | OSSL_CRMF_CERTTEMPLATE_get0_serialNumber | 0 | const OSSL_CRMF_CERTTEMPLATE * | +| (const OSSL_CRMF_CERTTEMPLATE *) | | OSSL_CRMF_CERTTEMPLATE_get0_subject | 0 | const OSSL_CRMF_CERTTEMPLATE * | +| (const OSSL_CRMF_CERTTEMPLATE *,unsigned char **) | | i2d_OSSL_CRMF_CERTTEMPLATE | 0 | const OSSL_CRMF_CERTTEMPLATE * | +| (const OSSL_CRMF_CERTTEMPLATE *,unsigned char **) | | i2d_OSSL_CRMF_CERTTEMPLATE | 1 | unsigned char ** | +| (const OSSL_CRMF_ENCKEYWITHID *,unsigned char **) | | i2d_OSSL_CRMF_ENCKEYWITHID | 0 | const OSSL_CRMF_ENCKEYWITHID * | +| (const OSSL_CRMF_ENCKEYWITHID *,unsigned char **) | | i2d_OSSL_CRMF_ENCKEYWITHID | 1 | unsigned char ** | +| (const OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *,unsigned char **) | | i2d_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER | 0 | const OSSL_CRMF_ENCKEYWITHID_IDENTIFIER * | +| (const OSSL_CRMF_ENCKEYWITHID_IDENTIFIER *,unsigned char **) | | i2d_OSSL_CRMF_ENCKEYWITHID_IDENTIFIER | 1 | unsigned char ** | +| (const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int) | | OSSL_CRMF_ENCRYPTEDKEY_get1_encCert | 0 | const OSSL_CRMF_ENCRYPTEDKEY * | +| (const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int) | | OSSL_CRMF_ENCRYPTEDKEY_get1_encCert | 1 | OSSL_LIB_CTX * | +| (const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int) | | OSSL_CRMF_ENCRYPTEDKEY_get1_encCert | 2 | const char * | +| (const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int) | | OSSL_CRMF_ENCRYPTEDKEY_get1_encCert | 3 | EVP_PKEY * | +| (const OSSL_CRMF_ENCRYPTEDKEY *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,unsigned int) | | OSSL_CRMF_ENCRYPTEDKEY_get1_encCert | 4 | unsigned int | +| (const OSSL_CRMF_ENCRYPTEDKEY *,unsigned char **) | | i2d_OSSL_CRMF_ENCRYPTEDKEY | 0 | const OSSL_CRMF_ENCRYPTEDKEY * | +| (const OSSL_CRMF_ENCRYPTEDKEY *,unsigned char **) | | i2d_OSSL_CRMF_ENCRYPTEDKEY | 1 | unsigned char ** | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *) | | OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert | 0 | const OSSL_CRMF_ENCRYPTEDVALUE * | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *) | | OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert | 1 | OSSL_LIB_CTX * | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *) | | OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert | 2 | const char * | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *) | | OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert | 3 | EVP_PKEY * | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,int *) | | OSSL_CRMF_ENCRYPTEDVALUE_decrypt | 0 | const OSSL_CRMF_ENCRYPTEDVALUE * | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,int *) | | OSSL_CRMF_ENCRYPTEDVALUE_decrypt | 1 | OSSL_LIB_CTX * | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,int *) | | OSSL_CRMF_ENCRYPTEDVALUE_decrypt | 2 | const char * | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,int *) | | OSSL_CRMF_ENCRYPTEDVALUE_decrypt | 3 | EVP_PKEY * | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,OSSL_LIB_CTX *,const char *,EVP_PKEY *,int *) | | OSSL_CRMF_ENCRYPTEDVALUE_decrypt | 4 | int * | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,unsigned char **) | | i2d_OSSL_CRMF_ENCRYPTEDVALUE | 0 | const OSSL_CRMF_ENCRYPTEDVALUE * | +| (const OSSL_CRMF_ENCRYPTEDVALUE *,unsigned char **) | | i2d_OSSL_CRMF_ENCRYPTEDVALUE | 1 | unsigned char ** | +| (const OSSL_CRMF_MSG *) | | OSSL_CRMF_MSG_dup | 0 | const OSSL_CRMF_MSG * | +| (const OSSL_CRMF_MSG *) | | OSSL_CRMF_MSG_get0_tmpl | 0 | const OSSL_CRMF_MSG * | +| (const OSSL_CRMF_MSG *,unsigned char **) | | i2d_OSSL_CRMF_MSG | 0 | const OSSL_CRMF_MSG * | +| (const OSSL_CRMF_MSG *,unsigned char **) | | i2d_OSSL_CRMF_MSG | 1 | unsigned char ** | +| (const OSSL_CRMF_MSGS *,unsigned char **) | | i2d_OSSL_CRMF_MSGS | 0 | const OSSL_CRMF_MSGS * | +| (const OSSL_CRMF_MSGS *,unsigned char **) | | i2d_OSSL_CRMF_MSGS | 1 | unsigned char ** | +| (const OSSL_CRMF_OPTIONALVALIDITY *,unsigned char **) | | i2d_OSSL_CRMF_OPTIONALVALIDITY | 0 | const OSSL_CRMF_OPTIONALVALIDITY * | +| (const OSSL_CRMF_OPTIONALVALIDITY *,unsigned char **) | | i2d_OSSL_CRMF_OPTIONALVALIDITY | 1 | unsigned char ** | +| (const OSSL_CRMF_PBMPARAMETER *,unsigned char **) | | i2d_OSSL_CRMF_PBMPARAMETER | 0 | const OSSL_CRMF_PBMPARAMETER * | +| (const OSSL_CRMF_PBMPARAMETER *,unsigned char **) | | i2d_OSSL_CRMF_PBMPARAMETER | 1 | unsigned char ** | +| (const OSSL_CRMF_PKIPUBLICATIONINFO *) | | OSSL_CRMF_PKIPUBLICATIONINFO_dup | 0 | const OSSL_CRMF_PKIPUBLICATIONINFO * | +| (const OSSL_CRMF_PKIPUBLICATIONINFO *,unsigned char **) | | i2d_OSSL_CRMF_PKIPUBLICATIONINFO | 0 | const OSSL_CRMF_PKIPUBLICATIONINFO * | +| (const OSSL_CRMF_PKIPUBLICATIONINFO *,unsigned char **) | | i2d_OSSL_CRMF_PKIPUBLICATIONINFO | 1 | unsigned char ** | +| (const OSSL_CRMF_PKMACVALUE *,unsigned char **) | | i2d_OSSL_CRMF_PKMACVALUE | 0 | const OSSL_CRMF_PKMACVALUE * | +| (const OSSL_CRMF_PKMACVALUE *,unsigned char **) | | i2d_OSSL_CRMF_PKMACVALUE | 1 | unsigned char ** | +| (const OSSL_CRMF_POPO *,unsigned char **) | | i2d_OSSL_CRMF_POPO | 0 | const OSSL_CRMF_POPO * | +| (const OSSL_CRMF_POPO *,unsigned char **) | | i2d_OSSL_CRMF_POPO | 1 | unsigned char ** | +| (const OSSL_CRMF_POPOPRIVKEY *,unsigned char **) | | i2d_OSSL_CRMF_POPOPRIVKEY | 0 | const OSSL_CRMF_POPOPRIVKEY * | +| (const OSSL_CRMF_POPOPRIVKEY *,unsigned char **) | | i2d_OSSL_CRMF_POPOPRIVKEY | 1 | unsigned char ** | +| (const OSSL_CRMF_POPOSIGNINGKEY *,unsigned char **) | | i2d_OSSL_CRMF_POPOSIGNINGKEY | 0 | const OSSL_CRMF_POPOSIGNINGKEY * | +| (const OSSL_CRMF_POPOSIGNINGKEY *,unsigned char **) | | i2d_OSSL_CRMF_POPOSIGNINGKEY | 1 | unsigned char ** | +| (const OSSL_CRMF_POPOSIGNINGKEYINPUT *,unsigned char **) | | i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT | 0 | const OSSL_CRMF_POPOSIGNINGKEYINPUT * | +| (const OSSL_CRMF_POPOSIGNINGKEYINPUT *,unsigned char **) | | i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT | 1 | unsigned char ** | +| (const OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *,unsigned char **) | | i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO | 0 | const OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO * | +| (const OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO *,unsigned char **) | | i2d_OSSL_CRMF_POPOSIGNINGKEYINPUT_AUTHINFO | 1 | unsigned char ** | +| (const OSSL_CRMF_PRIVATEKEYINFO *,unsigned char **) | | i2d_OSSL_CRMF_PRIVATEKEYINFO | 0 | const OSSL_CRMF_PRIVATEKEYINFO * | +| (const OSSL_CRMF_PRIVATEKEYINFO *,unsigned char **) | | i2d_OSSL_CRMF_PRIVATEKEYINFO | 1 | unsigned char ** | +| (const OSSL_CRMF_SINGLEPUBINFO *,unsigned char **) | | i2d_OSSL_CRMF_SINGLEPUBINFO | 0 | const OSSL_CRMF_SINGLEPUBINFO * | +| (const OSSL_CRMF_SINGLEPUBINFO *,unsigned char **) | | i2d_OSSL_CRMF_SINGLEPUBINFO | 1 | unsigned char ** | +| (const OSSL_DAY_TIME *,unsigned char **) | | i2d_OSSL_DAY_TIME | 0 | const OSSL_DAY_TIME * | +| (const OSSL_DAY_TIME *,unsigned char **) | | i2d_OSSL_DAY_TIME | 1 | unsigned char ** | +| (const OSSL_DAY_TIME_BAND *,unsigned char **) | | i2d_OSSL_DAY_TIME_BAND | 0 | const OSSL_DAY_TIME_BAND * | +| (const OSSL_DAY_TIME_BAND *,unsigned char **) | | i2d_OSSL_DAY_TIME_BAND | 1 | unsigned char ** | +| (const OSSL_DECODER *) | | OSSL_DECODER_get0_name | 0 | const OSSL_DECODER * | +| (const OSSL_DECODER *) | | OSSL_DECODER_get0_provider | 0 | const OSSL_DECODER * | +| (const OSSL_DECODER *) | | ossl_decoder_get_number | 0 | const OSSL_DECODER * | +| (const OSSL_DECODER *) | | ossl_decoder_parsed_properties | 0 | const OSSL_DECODER * | +| (const OSSL_DECODER_CTX *) | | ossl_decoder_ctx_get_harderr | 0 | const OSSL_DECODER_CTX * | +| (const OSSL_DECODER_INSTANCE *) | | ossl_decoder_instance_dup | 0 | const OSSL_DECODER_INSTANCE * | +| (const OSSL_DISPATCH *) | | ossl_prov_bio_from_dispatch | 0 | const OSSL_DISPATCH * | +| (const OSSL_DISPATCH *) | | ossl_prov_get_keymgmt_export | 0 | const OSSL_DISPATCH * | +| (const OSSL_DISPATCH *) | | ossl_prov_get_keymgmt_free | 0 | const OSSL_DISPATCH * | +| (const OSSL_DISPATCH *) | | ossl_prov_get_keymgmt_import | 0 | const OSSL_DISPATCH * | +| (const OSSL_DISPATCH *) | | ossl_prov_get_keymgmt_new | 0 | const OSSL_DISPATCH * | +| (const OSSL_DISPATCH *) | | ossl_prov_seeding_from_dispatch | 0 | const OSSL_DISPATCH * | +| (const OSSL_DISPATCH *,void *) | | ossl_prov_free_key | 0 | const OSSL_DISPATCH * | +| (const OSSL_DISPATCH *,void *) | | ossl_prov_free_key | 1 | void * | +| (const OSSL_DISPATCH *,void *,int,const OSSL_PARAM[]) | | ossl_prov_import_key | 0 | const OSSL_DISPATCH * | +| (const OSSL_DISPATCH *,void *,int,const OSSL_PARAM[]) | | ossl_prov_import_key | 1 | void * | +| (const OSSL_DISPATCH *,void *,int,const OSSL_PARAM[]) | | ossl_prov_import_key | 2 | int | +| (const OSSL_DISPATCH *,void *,int,const OSSL_PARAM[]) | | ossl_prov_import_key | 3 | const OSSL_PARAM[] | +| (const OSSL_ENCODER *) | | OSSL_ENCODER_get0_name | 0 | const OSSL_ENCODER * | +| (const OSSL_ENCODER *) | | OSSL_ENCODER_get0_provider | 0 | const OSSL_ENCODER * | +| (const OSSL_ENCODER *) | | ossl_encoder_get_number | 0 | const OSSL_ENCODER * | +| (const OSSL_ENCODER *) | | ossl_encoder_parsed_properties | 0 | const OSSL_ENCODER * | +| (const OSSL_HASH *,unsigned char **) | | i2d_OSSL_HASH | 0 | const OSSL_HASH * | +| (const OSSL_HASH *,unsigned char **) | | i2d_OSSL_HASH | 1 | unsigned char ** | +| (const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_get_grease_value | 0 | const OSSL_HPKE_SUITE * | +| (const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_get_grease_value | 1 | OSSL_HPKE_SUITE * | +| (const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_get_grease_value | 2 | unsigned char * | +| (const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_get_grease_value | 3 | size_t * | +| (const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_get_grease_value | 4 | unsigned char * | +| (const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_get_grease_value | 5 | size_t | +| (const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_get_grease_value | 6 | OSSL_LIB_CTX * | +| (const OSSL_HPKE_SUITE *,OSSL_HPKE_SUITE *,unsigned char *,size_t *,unsigned char *,size_t,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_get_grease_value | 7 | const char * | +| (const OSSL_HTTP_REQ_CTX *) | | OSSL_HTTP_REQ_CTX_get0_mem_bio | 0 | const OSSL_HTTP_REQ_CTX * | +| (const OSSL_HTTP_REQ_CTX *) | | OSSL_HTTP_REQ_CTX_get_resp_len | 0 | const OSSL_HTTP_REQ_CTX * | +| (const OSSL_IETF_ATTR_SYNTAX *) | | OSSL_IETF_ATTR_SYNTAX_get0_policyAuthority | 0 | const OSSL_IETF_ATTR_SYNTAX * | +| (const OSSL_IETF_ATTR_SYNTAX *) | | OSSL_IETF_ATTR_SYNTAX_get_value_num | 0 | const OSSL_IETF_ATTR_SYNTAX * | +| (const OSSL_IETF_ATTR_SYNTAX *,unsigned char **) | | i2d_OSSL_IETF_ATTR_SYNTAX | 0 | const OSSL_IETF_ATTR_SYNTAX * | +| (const OSSL_IETF_ATTR_SYNTAX *,unsigned char **) | | i2d_OSSL_IETF_ATTR_SYNTAX | 1 | unsigned char ** | +| (const OSSL_INFO_SYNTAX *,unsigned char **) | | i2d_OSSL_INFO_SYNTAX | 0 | const OSSL_INFO_SYNTAX * | +| (const OSSL_INFO_SYNTAX *,unsigned char **) | | i2d_OSSL_INFO_SYNTAX | 1 | unsigned char ** | +| (const OSSL_INFO_SYNTAX_POINTER *,unsigned char **) | | i2d_OSSL_INFO_SYNTAX_POINTER | 0 | const OSSL_INFO_SYNTAX_POINTER * | +| (const OSSL_INFO_SYNTAX_POINTER *,unsigned char **) | | i2d_OSSL_INFO_SYNTAX_POINTER | 1 | unsigned char ** | +| (const OSSL_ISSUER_SERIAL *) | | OSSL_ISSUER_SERIAL_get0_issuerUID | 0 | const OSSL_ISSUER_SERIAL * | +| (const OSSL_ISSUER_SERIAL *) | | OSSL_ISSUER_SERIAL_get0_serial | 0 | const OSSL_ISSUER_SERIAL * | +| (const OSSL_NAMED_DAY *,unsigned char **) | | i2d_OSSL_NAMED_DAY | 0 | const OSSL_NAMED_DAY * | +| (const OSSL_NAMED_DAY *,unsigned char **) | | i2d_OSSL_NAMED_DAY | 1 | unsigned char ** | +| (const OSSL_NAMEMAP *,int,..(*)(..),void *) | | ossl_namemap_doall_names | 0 | const OSSL_NAMEMAP * | +| (const OSSL_NAMEMAP *,int,..(*)(..),void *) | | ossl_namemap_doall_names | 1 | int | +| (const OSSL_NAMEMAP *,int,..(*)(..),void *) | | ossl_namemap_doall_names | 2 | ..(*)(..) | +| (const OSSL_NAMEMAP *,int,..(*)(..),void *) | | ossl_namemap_doall_names | 3 | void * | +| (const OSSL_NAMEMAP *,int,size_t) | | ossl_namemap_num2name | 0 | const OSSL_NAMEMAP * | +| (const OSSL_NAMEMAP *,int,size_t) | | ossl_namemap_num2name | 1 | int | +| (const OSSL_NAMEMAP *,int,size_t) | | ossl_namemap_num2name | 2 | size_t | +| (const OSSL_OBJECT_DIGEST_INFO *,int *,const X509_ALGOR **,const ASN1_BIT_STRING **) | | OSSL_OBJECT_DIGEST_INFO_get0_digest | 0 | const OSSL_OBJECT_DIGEST_INFO * | +| (const OSSL_OBJECT_DIGEST_INFO *,int *,const X509_ALGOR **,const ASN1_BIT_STRING **) | | OSSL_OBJECT_DIGEST_INFO_get0_digest | 1 | int * | +| (const OSSL_OBJECT_DIGEST_INFO *,int *,const X509_ALGOR **,const ASN1_BIT_STRING **) | | OSSL_OBJECT_DIGEST_INFO_get0_digest | 2 | const X509_ALGOR ** | +| (const OSSL_OBJECT_DIGEST_INFO *,int *,const X509_ALGOR **,const ASN1_BIT_STRING **) | | OSSL_OBJECT_DIGEST_INFO_get0_digest | 3 | const ASN1_BIT_STRING ** | +| (const OSSL_PARAM *) | | OSSL_PARAM_dup | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,BIGNUM **) | | OSSL_PARAM_get_BN | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,BIGNUM **) | | OSSL_PARAM_get_BN | 1 | BIGNUM ** | +| (const OSSL_PARAM *,BIO *,int) | | OSSL_PARAM_print_to_bio | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,BIO *,int) | | OSSL_PARAM_print_to_bio | 1 | BIO * | +| (const OSSL_PARAM *,BIO *,int) | | OSSL_PARAM_print_to_bio | 2 | int | +| (const OSSL_PARAM *,char **,size_t) | | OSSL_PARAM_get_utf8_string | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,char **,size_t) | | OSSL_PARAM_get_utf8_string | 1 | char ** | +| (const OSSL_PARAM *,char **,size_t) | | OSSL_PARAM_get_utf8_string | 2 | size_t | +| (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,const char *) | | OSSL_PARAM_locate_const | 1 | const char * | +| (const OSSL_PARAM *,const char **) | | OSSL_PARAM_get_utf8_ptr | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,const char **) | | OSSL_PARAM_get_utf8_ptr | 1 | const char ** | +| (const OSSL_PARAM *,const char **) | | OSSL_PARAM_get_utf8_string_ptr | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,const char **) | | OSSL_PARAM_get_utf8_string_ptr | 1 | const char ** | +| (const OSSL_PARAM *,const char *,unsigned char **,size_t *) | | ossl_param_get1_octet_string | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,const char *,unsigned char **,size_t *) | | ossl_param_get1_octet_string | 1 | const char * | +| (const OSSL_PARAM *,const char *,unsigned char **,size_t *) | | ossl_param_get1_octet_string | 2 | unsigned char ** | +| (const OSSL_PARAM *,const char *,unsigned char **,size_t *) | | ossl_param_get1_octet_string | 3 | size_t * | +| (const OSSL_PARAM *,const char *,unsigned char **,size_t *,size_t) | | ossl_param_get1_concat_octet_string | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,const char *,unsigned char **,size_t *,size_t) | | ossl_param_get1_concat_octet_string | 1 | const char * | +| (const OSSL_PARAM *,const char *,unsigned char **,size_t *,size_t) | | ossl_param_get1_concat_octet_string | 2 | unsigned char ** | +| (const OSSL_PARAM *,const char *,unsigned char **,size_t *,size_t) | | ossl_param_get1_concat_octet_string | 3 | size_t * | +| (const OSSL_PARAM *,const char *,unsigned char **,size_t *,size_t) | | ossl_param_get1_concat_octet_string | 4 | size_t | +| (const OSSL_PARAM *,const void **,size_t *) | | OSSL_PARAM_get_octet_ptr | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,const void **,size_t *) | | OSSL_PARAM_get_octet_ptr | 1 | const void ** | +| (const OSSL_PARAM *,const void **,size_t *) | | OSSL_PARAM_get_octet_ptr | 2 | size_t * | +| (const OSSL_PARAM *,const void **,size_t *) | | OSSL_PARAM_get_octet_string_ptr | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,const void **,size_t *) | | OSSL_PARAM_get_octet_string_ptr | 1 | const void ** | +| (const OSSL_PARAM *,const void **,size_t *) | | OSSL_PARAM_get_octet_string_ptr | 2 | size_t * | +| (const OSSL_PARAM *,double *) | | OSSL_PARAM_get_double | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,double *) | | OSSL_PARAM_get_double | 1 | double * | +| (const OSSL_PARAM *,int32_t *) | | OSSL_PARAM_get_int32 | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,int32_t *) | | OSSL_PARAM_get_int32 | 1 | int32_t * | +| (const OSSL_PARAM *,int64_t *) | | OSSL_PARAM_get_int64 | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,int64_t *) | | OSSL_PARAM_get_int64 | 1 | int64_t * | +| (const OSSL_PARAM *,int *) | | OSSL_PARAM_get_int | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,int *) | | OSSL_PARAM_get_int | 1 | int * | +| (const OSSL_PARAM *,long *) | | OSSL_PARAM_get_long | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,long *) | | OSSL_PARAM_get_long | 1 | long * | +| (const OSSL_PARAM *,size_t *) | | OSSL_PARAM_get_size_t | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,size_t *) | | OSSL_PARAM_get_size_t | 1 | size_t * | +| (const OSSL_PARAM *,time_t *) | | OSSL_PARAM_get_time_t | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,time_t *) | | OSSL_PARAM_get_time_t | 1 | time_t * | +| (const OSSL_PARAM *,uint32_t *) | | OSSL_PARAM_get_uint32 | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,uint32_t *) | | OSSL_PARAM_get_uint32 | 1 | uint32_t * | +| (const OSSL_PARAM *,uint64_t *) | | OSSL_PARAM_get_uint64 | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,uint64_t *) | | OSSL_PARAM_get_uint64 | 1 | uint64_t * | +| (const OSSL_PARAM *,unsigned int *) | | OSSL_PARAM_get_uint | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,unsigned int *) | | OSSL_PARAM_get_uint | 1 | unsigned int * | +| (const OSSL_PARAM *,unsigned long *) | | OSSL_PARAM_get_ulong | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,unsigned long *) | | OSSL_PARAM_get_ulong | 1 | unsigned long * | +| (const OSSL_PARAM *,void **,size_t,size_t *) | | OSSL_PARAM_get_octet_string | 0 | const OSSL_PARAM * | +| (const OSSL_PARAM *,void **,size_t,size_t *) | | OSSL_PARAM_get_octet_string | 1 | void ** | +| (const OSSL_PARAM *,void **,size_t,size_t *) | | OSSL_PARAM_get_octet_string | 2 | size_t | +| (const OSSL_PARAM *,void **,size_t,size_t *) | | OSSL_PARAM_get_octet_string | 3 | size_t * | +| (const OSSL_PARAM[],OSSL_LIB_CTX *,const char *) | | EC_GROUP_new_from_params | 0 | const OSSL_PARAM[] | +| (const OSSL_PARAM[],OSSL_LIB_CTX *,const char *) | | EC_GROUP_new_from_params | 1 | OSSL_LIB_CTX * | +| (const OSSL_PARAM[],OSSL_LIB_CTX *,const char *) | | EC_GROUP_new_from_params | 2 | const char * | +| (const OSSL_PARAM[],void *) | | ossl_store_handle_load_result | 0 | const OSSL_PARAM[] | +| (const OSSL_PARAM[],void *) | | ossl_store_handle_load_result | 1 | void * | +| (const OSSL_PQUEUE *) | | ossl_pqueue_num | 0 | const OSSL_PQUEUE * | +| (const OSSL_PQUEUE *) | | ossl_pqueue_peek | 0 | const OSSL_PQUEUE * | +| (const OSSL_PRIVILEGE_POLICY_ID *,unsigned char **) | | i2d_OSSL_PRIVILEGE_POLICY_ID | 0 | const OSSL_PRIVILEGE_POLICY_ID * | +| (const OSSL_PRIVILEGE_POLICY_ID *,unsigned char **) | | i2d_OSSL_PRIVILEGE_POLICY_ID | 1 | unsigned char ** | +| (const OSSL_PROPERTY_DEFINITION *) | | ossl_property_get_number_value | 0 | const OSSL_PROPERTY_DEFINITION * | +| (const OSSL_PROPERTY_DEFINITION *) | | ossl_property_get_type | 0 | const OSSL_PROPERTY_DEFINITION * | +| (const OSSL_PROPERTY_LIST *,OSSL_LIB_CTX *,const char *) | | ossl_property_find_property | 0 | const OSSL_PROPERTY_LIST * | +| (const OSSL_PROPERTY_LIST *,OSSL_LIB_CTX *,const char *) | | ossl_property_find_property | 1 | OSSL_LIB_CTX * | +| (const OSSL_PROPERTY_LIST *,OSSL_LIB_CTX *,const char *) | | ossl_property_find_property | 2 | const char * | +| (const OSSL_PROPERTY_LIST *,const OSSL_PROPERTY_LIST *) | | ossl_property_merge | 0 | const OSSL_PROPERTY_LIST * | +| (const OSSL_PROPERTY_LIST *,const OSSL_PROPERTY_LIST *) | | ossl_property_merge | 1 | const OSSL_PROPERTY_LIST * | +| (const OSSL_PROVIDER *) | | OSSL_PROVIDER_get0_dispatch | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *) | | OSSL_PROVIDER_get0_name | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *) | | OSSL_PROVIDER_get0_provider_ctx | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *) | | ossl_provider_ctx | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *) | | ossl_provider_dso | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *) | | ossl_provider_get0_dispatch | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *) | | ossl_provider_is_child | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *) | | ossl_provider_libctx | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *) | | ossl_provider_module_name | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *) | | ossl_provider_module_path | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *) | | ossl_provider_name | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *,OSSL_PARAM[]) | | OSSL_PROVIDER_get_conf_parameters | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *,OSSL_PARAM[]) | | OSSL_PROVIDER_get_conf_parameters | 1 | OSSL_PARAM[] | +| (const OSSL_PROVIDER *,const char *,int) | | OSSL_PROVIDER_conf_get_bool | 0 | const OSSL_PROVIDER * | +| (const OSSL_PROVIDER *,const char *,int) | | OSSL_PROVIDER_conf_get_bool | 1 | const char * | +| (const OSSL_PROVIDER *,const char *,int) | | OSSL_PROVIDER_conf_get_bool | 2 | int | +| (const OSSL_QRX_ARGS *) | | ossl_qrx_new | 0 | const OSSL_QRX_ARGS * | +| (const OSSL_QTX_ARGS *) | | ossl_qtx_new | 0 | const OSSL_QTX_ARGS * | +| (const OSSL_QUIC_TX_PACKETISER_ARGS *) | | ossl_quic_tx_packetiser_new | 0 | const OSSL_QUIC_TX_PACKETISER_ARGS * | +| (const OSSL_ROLE_SPEC_CERT_ID *,unsigned char **) | | i2d_OSSL_ROLE_SPEC_CERT_ID | 0 | const OSSL_ROLE_SPEC_CERT_ID * | +| (const OSSL_ROLE_SPEC_CERT_ID *,unsigned char **) | | i2d_OSSL_ROLE_SPEC_CERT_ID | 1 | unsigned char ** | +| (const OSSL_ROLE_SPEC_CERT_ID_SYNTAX *,unsigned char **) | | i2d_OSSL_ROLE_SPEC_CERT_ID_SYNTAX | 0 | const OSSL_ROLE_SPEC_CERT_ID_SYNTAX * | +| (const OSSL_ROLE_SPEC_CERT_ID_SYNTAX *,unsigned char **) | | i2d_OSSL_ROLE_SPEC_CERT_ID_SYNTAX | 1 | unsigned char ** | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get0_CERT | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get0_CRL | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get0_PARAMS | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get0_PKEY | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get0_PUBKEY | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get1_CERT | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get1_CRL | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get1_PARAMS | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get1_PKEY | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get1_PUBKEY | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get_type | 0 | const OSSL_STORE_INFO * | +| (const OSSL_STORE_LOADER *) | | OSSL_STORE_LOADER_get0_description | 0 | const OSSL_STORE_LOADER * | +| (const OSSL_STORE_LOADER *) | | OSSL_STORE_LOADER_get0_engine | 0 | const OSSL_STORE_LOADER * | +| (const OSSL_STORE_LOADER *) | | OSSL_STORE_LOADER_get0_properties | 0 | const OSSL_STORE_LOADER * | +| (const OSSL_STORE_LOADER *) | | OSSL_STORE_LOADER_get0_provider | 0 | const OSSL_STORE_LOADER * | +| (const OSSL_STORE_LOADER *) | | OSSL_STORE_LOADER_get0_scheme | 0 | const OSSL_STORE_LOADER * | +| (const OSSL_STORE_LOADER *) | | ossl_store_loader_get_number | 0 | const OSSL_STORE_LOADER * | +| (const OSSL_STORE_LOADER *,..(*)(..),void *) | | OSSL_STORE_LOADER_names_do_all | 0 | const OSSL_STORE_LOADER * | +| (const OSSL_STORE_LOADER *,..(*)(..),void *) | | OSSL_STORE_LOADER_names_do_all | 1 | ..(*)(..) | +| (const OSSL_STORE_LOADER *,..(*)(..),void *) | | OSSL_STORE_LOADER_names_do_all | 2 | void * | +| (const OSSL_STORE_SEARCH *) | | OSSL_STORE_SEARCH_get0_digest | 0 | const OSSL_STORE_SEARCH * | +| (const OSSL_STORE_SEARCH *) | | OSSL_STORE_SEARCH_get0_name | 0 | const OSSL_STORE_SEARCH * | +| (const OSSL_STORE_SEARCH *) | | OSSL_STORE_SEARCH_get0_serial | 0 | const OSSL_STORE_SEARCH * | +| (const OSSL_STORE_SEARCH *) | | OSSL_STORE_SEARCH_get0_string | 0 | const OSSL_STORE_SEARCH * | +| (const OSSL_STORE_SEARCH *) | | OSSL_STORE_SEARCH_get_type | 0 | const OSSL_STORE_SEARCH * | +| (const OSSL_STORE_SEARCH *,size_t *) | | OSSL_STORE_SEARCH_get0_bytes | 0 | const OSSL_STORE_SEARCH * | +| (const OSSL_STORE_SEARCH *,size_t *) | | OSSL_STORE_SEARCH_get0_bytes | 1 | size_t * | +| (const OSSL_TARGET *,unsigned char **) | | i2d_OSSL_TARGET | 0 | const OSSL_TARGET * | +| (const OSSL_TARGET *,unsigned char **) | | i2d_OSSL_TARGET | 1 | unsigned char ** | +| (const OSSL_TARGETING_INFORMATION *,unsigned char **) | | i2d_OSSL_TARGETING_INFORMATION | 0 | const OSSL_TARGETING_INFORMATION * | +| (const OSSL_TARGETING_INFORMATION *,unsigned char **) | | i2d_OSSL_TARGETING_INFORMATION | 1 | unsigned char ** | +| (const OSSL_TARGETS *,unsigned char **) | | i2d_OSSL_TARGETS | 0 | const OSSL_TARGETS * | +| (const OSSL_TARGETS *,unsigned char **) | | i2d_OSSL_TARGETS | 1 | unsigned char ** | +| (const OSSL_TIME_PERIOD *,unsigned char **) | | i2d_OSSL_TIME_PERIOD | 0 | const OSSL_TIME_PERIOD * | +| (const OSSL_TIME_PERIOD *,unsigned char **) | | i2d_OSSL_TIME_PERIOD | 1 | unsigned char ** | +| (const OSSL_TIME_SPEC *,unsigned char **) | | i2d_OSSL_TIME_SPEC | 0 | const OSSL_TIME_SPEC * | +| (const OSSL_TIME_SPEC *,unsigned char **) | | i2d_OSSL_TIME_SPEC | 1 | unsigned char ** | +| (const OSSL_TIME_SPEC_ABSOLUTE *,unsigned char **) | | i2d_OSSL_TIME_SPEC_ABSOLUTE | 0 | const OSSL_TIME_SPEC_ABSOLUTE * | +| (const OSSL_TIME_SPEC_ABSOLUTE *,unsigned char **) | | i2d_OSSL_TIME_SPEC_ABSOLUTE | 1 | unsigned char ** | +| (const OSSL_TIME_SPEC_DAY *,unsigned char **) | | i2d_OSSL_TIME_SPEC_DAY | 0 | const OSSL_TIME_SPEC_DAY * | +| (const OSSL_TIME_SPEC_DAY *,unsigned char **) | | i2d_OSSL_TIME_SPEC_DAY | 1 | unsigned char ** | +| (const OSSL_TIME_SPEC_MONTH *,unsigned char **) | | i2d_OSSL_TIME_SPEC_MONTH | 0 | const OSSL_TIME_SPEC_MONTH * | +| (const OSSL_TIME_SPEC_MONTH *,unsigned char **) | | i2d_OSSL_TIME_SPEC_MONTH | 1 | unsigned char ** | +| (const OSSL_TIME_SPEC_TIME *,unsigned char **) | | i2d_OSSL_TIME_SPEC_TIME | 0 | const OSSL_TIME_SPEC_TIME * | +| (const OSSL_TIME_SPEC_TIME *,unsigned char **) | | i2d_OSSL_TIME_SPEC_TIME | 1 | unsigned char ** | +| (const OSSL_TIME_SPEC_WEEKS *,unsigned char **) | | i2d_OSSL_TIME_SPEC_WEEKS | 0 | const OSSL_TIME_SPEC_WEEKS * | +| (const OSSL_TIME_SPEC_WEEKS *,unsigned char **) | | i2d_OSSL_TIME_SPEC_WEEKS | 1 | unsigned char ** | +| (const OSSL_TIME_SPEC_X_DAY_OF *,unsigned char **) | | i2d_OSSL_TIME_SPEC_X_DAY_OF | 0 | const OSSL_TIME_SPEC_X_DAY_OF * | +| (const OSSL_TIME_SPEC_X_DAY_OF *,unsigned char **) | | i2d_OSSL_TIME_SPEC_X_DAY_OF | 1 | unsigned char ** | +| (const OSSL_USER_NOTICE_SYNTAX *,unsigned char **) | | i2d_OSSL_USER_NOTICE_SYNTAX | 0 | const OSSL_USER_NOTICE_SYNTAX * | +| (const OSSL_USER_NOTICE_SYNTAX *,unsigned char **) | | i2d_OSSL_USER_NOTICE_SYNTAX | 1 | unsigned char ** | +| (const OTHERNAME *,unsigned char **) | | i2d_OTHERNAME | 0 | const OTHERNAME * | +| (const OTHERNAME *,unsigned char **) | | i2d_OTHERNAME | 1 | unsigned char ** | +| (const PACKET *,uint64_t *) | | ossl_quic_wire_peek_frame_ack_num_ranges | 0 | const PACKET * | +| (const PACKET *,uint64_t *) | | ossl_quic_wire_peek_frame_ack_num_ranges | 1 | uint64_t * | +| (const PBE2PARAM *,unsigned char **) | | i2d_PBE2PARAM | 0 | const PBE2PARAM * | +| (const PBE2PARAM *,unsigned char **) | | i2d_PBE2PARAM | 1 | unsigned char ** | +| (const PBEPARAM *,unsigned char **) | | i2d_PBEPARAM | 0 | const PBEPARAM * | +| (const PBEPARAM *,unsigned char **) | | i2d_PBEPARAM | 1 | unsigned char ** | +| (const PBKDF2PARAM *,unsigned char **) | | i2d_PBKDF2PARAM | 0 | const PBKDF2PARAM * | +| (const PBKDF2PARAM *,unsigned char **) | | i2d_PBKDF2PARAM | 1 | unsigned char ** | +| (const PBMAC1PARAM *,unsigned char **) | | i2d_PBMAC1PARAM | 0 | const PBMAC1PARAM * | +| (const PBMAC1PARAM *,unsigned char **) | | i2d_PBMAC1PARAM | 1 | unsigned char ** | +| (const PKCS7 *) | | PKCS7_dup | 0 | const PKCS7 * | +| (const PKCS7 *) | | ossl_pkcs7_get0_ctx | 0 | const PKCS7 * | +| (const PKCS7 *,PKCS7 *) | | ossl_pkcs7_ctx_propagate | 0 | const PKCS7 * | +| (const PKCS7 *,PKCS7 *) | | ossl_pkcs7_ctx_propagate | 1 | PKCS7 * | +| (const PKCS7 *,unsigned char **) | | i2d_PKCS7 | 0 | const PKCS7 * | +| (const PKCS7 *,unsigned char **) | | i2d_PKCS7 | 1 | unsigned char ** | +| (const PKCS7 *,unsigned char **) | | i2d_PKCS7_NDEF | 0 | const PKCS7 * | +| (const PKCS7 *,unsigned char **) | | i2d_PKCS7_NDEF | 1 | unsigned char ** | +| (const PKCS7_CTX *) | | ossl_pkcs7_ctx_get0_libctx | 0 | const PKCS7_CTX * | +| (const PKCS7_CTX *) | | ossl_pkcs7_ctx_get0_propq | 0 | const PKCS7_CTX * | +| (const PKCS7_DIGEST *,unsigned char **) | | i2d_PKCS7_DIGEST | 0 | const PKCS7_DIGEST * | +| (const PKCS7_DIGEST *,unsigned char **) | | i2d_PKCS7_DIGEST | 1 | unsigned char ** | +| (const PKCS7_ENCRYPT *,unsigned char **) | | i2d_PKCS7_ENCRYPT | 0 | const PKCS7_ENCRYPT * | +| (const PKCS7_ENCRYPT *,unsigned char **) | | i2d_PKCS7_ENCRYPT | 1 | unsigned char ** | +| (const PKCS7_ENC_CONTENT *,unsigned char **) | | i2d_PKCS7_ENC_CONTENT | 0 | const PKCS7_ENC_CONTENT * | +| (const PKCS7_ENC_CONTENT *,unsigned char **) | | i2d_PKCS7_ENC_CONTENT | 1 | unsigned char ** | +| (const PKCS7_ENVELOPE *,unsigned char **) | | i2d_PKCS7_ENVELOPE | 0 | const PKCS7_ENVELOPE * | +| (const PKCS7_ENVELOPE *,unsigned char **) | | i2d_PKCS7_ENVELOPE | 1 | unsigned char ** | +| (const PKCS7_ISSUER_AND_SERIAL *,unsigned char **) | | i2d_PKCS7_ISSUER_AND_SERIAL | 0 | const PKCS7_ISSUER_AND_SERIAL * | +| (const PKCS7_ISSUER_AND_SERIAL *,unsigned char **) | | i2d_PKCS7_ISSUER_AND_SERIAL | 1 | unsigned char ** | +| (const PKCS7_RECIP_INFO *,unsigned char **) | | i2d_PKCS7_RECIP_INFO | 0 | const PKCS7_RECIP_INFO * | +| (const PKCS7_RECIP_INFO *,unsigned char **) | | i2d_PKCS7_RECIP_INFO | 1 | unsigned char ** | +| (const PKCS7_SIGNED *,unsigned char **) | | i2d_PKCS7_SIGNED | 0 | const PKCS7_SIGNED * | +| (const PKCS7_SIGNED *,unsigned char **) | | i2d_PKCS7_SIGNED | 1 | unsigned char ** | +| (const PKCS7_SIGNER_INFO *,unsigned char **) | | i2d_PKCS7_SIGNER_INFO | 0 | const PKCS7_SIGNER_INFO * | +| (const PKCS7_SIGNER_INFO *,unsigned char **) | | i2d_PKCS7_SIGNER_INFO | 1 | unsigned char ** | +| (const PKCS7_SIGN_ENVELOPE *,unsigned char **) | | i2d_PKCS7_SIGN_ENVELOPE | 0 | const PKCS7_SIGN_ENVELOPE * | +| (const PKCS7_SIGN_ENVELOPE *,unsigned char **) | | i2d_PKCS7_SIGN_ENVELOPE | 1 | unsigned char ** | +| (const PKCS8_PRIV_KEY_INFO *) | | EVP_PKCS82PKEY | 0 | const PKCS8_PRIV_KEY_INFO * | +| (const PKCS8_PRIV_KEY_INFO *) | | PKCS8_pkey_get0_attrs | 0 | const PKCS8_PRIV_KEY_INFO * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | EVP_PKCS82PKEY_ex | 0 | const PKCS8_PRIV_KEY_INFO * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | EVP_PKCS82PKEY_ex | 1 | OSSL_LIB_CTX * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | EVP_PKCS82PKEY_ex | 2 | const char * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_ec_key_from_pkcs8 | 0 | const PKCS8_PRIV_KEY_INFO * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_ec_key_from_pkcs8 | 1 | OSSL_LIB_CTX * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_ec_key_from_pkcs8 | 2 | const char * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_from_pkcs8 | 0 | const PKCS8_PRIV_KEY_INFO * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_from_pkcs8 | 1 | OSSL_LIB_CTX * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_from_pkcs8 | 2 | const char * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_rsa_key_from_pkcs8 | 0 | const PKCS8_PRIV_KEY_INFO * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_rsa_key_from_pkcs8 | 1 | OSSL_LIB_CTX * | +| (const PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | ossl_rsa_key_from_pkcs8 | 2 | const char * | +| (const PKCS8_PRIV_KEY_INFO *,unsigned char **) | | i2d_PKCS8_PRIV_KEY_INFO | 0 | const PKCS8_PRIV_KEY_INFO * | +| (const PKCS8_PRIV_KEY_INFO *,unsigned char **) | | i2d_PKCS8_PRIV_KEY_INFO | 1 | unsigned char ** | +| (const PKCS12 *) | | ossl_pkcs12_get0_pkcs7ctx | 0 | const PKCS12 * | +| (const PKCS12 *,unsigned char **) | | i2d_PKCS12 | 0 | const PKCS12 * | +| (const PKCS12 *,unsigned char **) | | i2d_PKCS12 | 1 | unsigned char ** | +| (const PKCS12_BAGS *,unsigned char **) | | i2d_PKCS12_BAGS | 0 | const PKCS12_BAGS * | +| (const PKCS12_BAGS *,unsigned char **) | | i2d_PKCS12_BAGS | 1 | unsigned char ** | +| (const PKCS12_MAC_DATA *,unsigned char **) | | i2d_PKCS12_MAC_DATA | 0 | const PKCS12_MAC_DATA * | +| (const PKCS12_MAC_DATA *,unsigned char **) | | i2d_PKCS12_MAC_DATA | 1 | unsigned char ** | +| (const PKCS12_SAFEBAG *) | | PKCS12_SAFEBAG_get0_attrs | 0 | const PKCS12_SAFEBAG * | +| (const PKCS12_SAFEBAG *) | | PKCS12_SAFEBAG_get0_p8inf | 0 | const PKCS12_SAFEBAG * | +| (const PKCS12_SAFEBAG *) | | PKCS12_SAFEBAG_get0_pkcs8 | 0 | const PKCS12_SAFEBAG * | +| (const PKCS12_SAFEBAG *) | | PKCS12_SAFEBAG_get0_safes | 0 | const PKCS12_SAFEBAG * | +| (const PKCS12_SAFEBAG *) | | PKCS12_SAFEBAG_get0_type | 0 | const PKCS12_SAFEBAG * | +| (const PKCS12_SAFEBAG *) | | PKCS12_SAFEBAG_get_nid | 0 | const PKCS12_SAFEBAG * | +| (const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_get1_cert_ex | 0 | const PKCS12_SAFEBAG * | +| (const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_get1_cert_ex | 1 | OSSL_LIB_CTX * | +| (const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_get1_cert_ex | 2 | const char * | +| (const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_get1_crl_ex | 0 | const PKCS12_SAFEBAG * | +| (const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_get1_crl_ex | 1 | OSSL_LIB_CTX * | +| (const PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_get1_crl_ex | 2 | const char * | +| (const PKCS12_SAFEBAG *,unsigned char **) | | i2d_PKCS12_SAFEBAG | 0 | const PKCS12_SAFEBAG * | +| (const PKCS12_SAFEBAG *,unsigned char **) | | i2d_PKCS12_SAFEBAG | 1 | unsigned char ** | +| (const PKEY_USAGE_PERIOD *,unsigned char **) | | i2d_PKEY_USAGE_PERIOD | 0 | const PKEY_USAGE_PERIOD * | +| (const PKEY_USAGE_PERIOD *,unsigned char **) | | i2d_PKEY_USAGE_PERIOD | 1 | unsigned char ** | +| (const POLICYINFO *,unsigned char **) | | i2d_POLICYINFO | 0 | const POLICYINFO * | +| (const POLICYINFO *,unsigned char **) | | i2d_POLICYINFO | 1 | unsigned char ** | +| (const POLICYQUALINFO *,unsigned char **) | | i2d_POLICYQUALINFO | 0 | const POLICYQUALINFO * | +| (const POLICYQUALINFO *,unsigned char **) | | i2d_POLICYQUALINFO | 1 | unsigned char ** | +| (const POLY *,const POLY *,POLY *) | | ossl_ml_dsa_poly_ntt_mult | 0 | const POLY * | +| (const POLY *,const POLY *,POLY *) | | ossl_ml_dsa_poly_ntt_mult | 1 | const POLY * | +| (const POLY *,const POLY *,POLY *) | | ossl_ml_dsa_poly_ntt_mult | 2 | POLY * | +| (const PROFESSION_INFO *) | | PROFESSION_INFO_get0_addProfessionInfo | 0 | const PROFESSION_INFO * | +| (const PROFESSION_INFO *) | | PROFESSION_INFO_get0_namingAuthority | 0 | const PROFESSION_INFO * | +| (const PROFESSION_INFO *) | | PROFESSION_INFO_get0_professionItems | 0 | const PROFESSION_INFO * | +| (const PROFESSION_INFO *) | | PROFESSION_INFO_get0_professionOIDs | 0 | const PROFESSION_INFO * | +| (const PROFESSION_INFO *) | | PROFESSION_INFO_get0_registrationNumber | 0 | const PROFESSION_INFO * | +| (const PROFESSION_INFO *,unsigned char **) | | i2d_PROFESSION_INFO | 0 | const PROFESSION_INFO * | +| (const PROFESSION_INFO *,unsigned char **) | | i2d_PROFESSION_INFO | 1 | unsigned char ** | +| (const PROV_CIPHER *) | | ossl_prov_cipher_cipher | 0 | const PROV_CIPHER * | +| (const PROV_CIPHER *) | | ossl_prov_cipher_engine | 0 | const PROV_CIPHER * | +| (const PROV_DIGEST *) | | ossl_prov_digest_engine | 0 | const PROV_DIGEST * | +| (const PROV_DIGEST *) | | ossl_prov_digest_md | 0 | const PROV_DIGEST * | +| (const PROXY_CERT_INFO_EXTENSION *,unsigned char **) | | i2d_PROXY_CERT_INFO_EXTENSION | 0 | const PROXY_CERT_INFO_EXTENSION * | +| (const PROXY_CERT_INFO_EXTENSION *,unsigned char **) | | i2d_PROXY_CERT_INFO_EXTENSION | 1 | unsigned char ** | +| (const PROXY_POLICY *,unsigned char **) | | i2d_PROXY_POLICY | 0 | const PROXY_POLICY * | +| (const PROXY_POLICY *,unsigned char **) | | i2d_PROXY_POLICY | 1 | unsigned char ** | +| (const QLOG_TRACE_INFO *) | | ossl_qlog_new | 0 | const QLOG_TRACE_INFO * | +| (const QLOG_TRACE_INFO *) | | ossl_qlog_new_from_env | 0 | const QLOG_TRACE_INFO * | +| (const QUIC_CFQ_ITEM *) | | ossl_quic_cfq_item_get_encoded | 0 | const QUIC_CFQ_ITEM * | +| (const QUIC_CFQ_ITEM *) | | ossl_quic_cfq_item_get_encoded_len | 0 | const QUIC_CFQ_ITEM * | +| (const QUIC_CFQ_ITEM *) | | ossl_quic_cfq_item_get_frame_type | 0 | const QUIC_CFQ_ITEM * | +| (const QUIC_CFQ_ITEM *) | | ossl_quic_cfq_item_get_pn_space | 0 | const QUIC_CFQ_ITEM * | +| (const QUIC_CFQ_ITEM *) | | ossl_quic_cfq_item_get_state | 0 | const QUIC_CFQ_ITEM * | +| (const QUIC_CFQ_ITEM *) | | ossl_quic_cfq_item_is_unreliable | 0 | const QUIC_CFQ_ITEM * | +| (const QUIC_CFQ_ITEM *,uint32_t) | | ossl_quic_cfq_item_get_priority_next | 0 | const QUIC_CFQ_ITEM * | +| (const QUIC_CFQ_ITEM *,uint32_t) | | ossl_quic_cfq_item_get_priority_next | 1 | uint32_t | +| (const QUIC_CHANNEL *) | | ossl_quic_channel_get_max_idle_timeout_actual | 0 | const QUIC_CHANNEL * | +| (const QUIC_CHANNEL *) | | ossl_quic_channel_get_max_idle_timeout_peer_request | 0 | const QUIC_CHANNEL * | +| (const QUIC_CHANNEL *) | | ossl_quic_channel_get_max_idle_timeout_request | 0 | const QUIC_CHANNEL * | +| (const QUIC_CHANNEL *) | | ossl_quic_channel_get_terminate_cause | 0 | const QUIC_CHANNEL * | +| (const QUIC_CHANNEL *) | | ossl_quic_channel_have_generated_transport_params | 0 | const QUIC_CHANNEL * | +| (const QUIC_CHANNEL *) | | ossl_quic_channel_is_handshake_complete | 0 | const QUIC_CHANNEL * | +| (const QUIC_CHANNEL *) | | ossl_quic_channel_is_handshake_confirmed | 0 | const QUIC_CHANNEL * | +| (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 0 | const QUIC_CHANNEL * | +| (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_local_stream_count_avail | 1 | int | +| (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 0 | const QUIC_CHANNEL * | +| (const QUIC_CHANNEL *,int) | | ossl_quic_channel_get_remote_stream_count_avail | 1 | int | +| (const QUIC_CHANNEL_ARGS *) | | ossl_quic_channel_alloc | 0 | const QUIC_CHANNEL_ARGS * | +| (const QUIC_CONN_ID *) | | ossl_quic_rcidm_new | 0 | const QUIC_CONN_ID * | +| (const QUIC_DEMUX *) | | ossl_quic_demux_has_pending | 0 | const QUIC_DEMUX * | +| (const QUIC_ENGINE_ARGS *) | | ossl_quic_engine_new | 0 | const QUIC_ENGINE_ARGS * | +| (const QUIC_LCIDM *) | | ossl_quic_lcidm_get_lcid_len | 0 | const QUIC_LCIDM * | +| (const QUIC_OBJ *) | | ossl_quic_obj_desires_blocking | 0 | const QUIC_OBJ * | +| (const QUIC_PORT *) | | ossl_quic_port_get_num_incoming_channels | 0 | const QUIC_PORT * | +| (const QUIC_PORT *) | | ossl_quic_port_get_rx_short_dcid_len | 0 | const QUIC_PORT * | +| (const QUIC_PORT *) | | ossl_quic_port_get_tx_init_dcid_len | 0 | const QUIC_PORT * | +| (const QUIC_PORT *) | | ossl_quic_port_is_addressed_r | 0 | const QUIC_PORT * | +| (const QUIC_PORT *) | | ossl_quic_port_is_addressed_w | 0 | const QUIC_PORT * | +| (const QUIC_PORT_ARGS *) | | ossl_quic_port_new | 0 | const QUIC_PORT_ARGS * | +| (const QUIC_RCIDM *) | | ossl_quic_rcidm_get_num_active | 0 | const QUIC_RCIDM * | +| (const QUIC_RCIDM *) | | ossl_quic_rcidm_get_num_retiring | 0 | const QUIC_RCIDM * | +| (const QUIC_REACTOR *) | | ossl_quic_reactor_can_poll_r | 0 | const QUIC_REACTOR * | +| (const QUIC_REACTOR *) | | ossl_quic_reactor_can_poll_w | 0 | const QUIC_REACTOR * | +| (const QUIC_REACTOR *) | | ossl_quic_reactor_get_poll_r | 0 | const QUIC_REACTOR * | +| (const QUIC_REACTOR *) | | ossl_quic_reactor_get_poll_w | 0 | const QUIC_REACTOR * | +| (const QUIC_RXFC *) | | ossl_quic_rxfc_get_credit | 0 | const QUIC_RXFC * | +| (const QUIC_RXFC *) | | ossl_quic_rxfc_get_cwm | 0 | const QUIC_RXFC * | +| (const QUIC_RXFC *) | | ossl_quic_rxfc_get_rwm | 0 | const QUIC_RXFC * | +| (const QUIC_RXFC *) | | ossl_quic_rxfc_get_swm | 0 | const QUIC_RXFC * | +| (const QUIC_RXFC *,uint64_t *) | | ossl_quic_rxfc_get_final_size | 0 | const QUIC_RXFC * | +| (const QUIC_RXFC *,uint64_t *) | | ossl_quic_rxfc_get_final_size | 1 | uint64_t * | +| (const QUIC_TLS_ARGS *) | | ossl_quic_tls_new | 0 | const QUIC_TLS_ARGS * | +| (const QUIC_TSERVER *) | | ossl_quic_tserver_get_terminate_cause | 0 | const QUIC_TSERVER * | +| (const QUIC_TSERVER *) | | ossl_quic_tserver_is_handshake_confirmed | 0 | const QUIC_TSERVER * | +| (const QUIC_TSERVER_ARGS *,const char *,const char *) | | ossl_quic_tserver_new | 0 | const QUIC_TSERVER_ARGS * | +| (const QUIC_TSERVER_ARGS *,const char *,const char *) | | ossl_quic_tserver_new | 1 | const char * | +| (const QUIC_TSERVER_ARGS *,const char *,const char *) | | ossl_quic_tserver_new | 2 | const char * | +| (const QUIC_TXPIM *) | | ossl_quic_txpim_get_in_use | 0 | const QUIC_TXPIM * | +| (const QUIC_TXPIM_PKT *) | | ossl_quic_txpim_pkt_get_chunks | 0 | const QUIC_TXPIM_PKT * | +| (const QUIC_TXPIM_PKT *) | | ossl_quic_txpim_pkt_get_num_chunks | 0 | const QUIC_TXPIM_PKT * | +| (const RSA *) | | RSAPrivateKey_dup | 0 | const RSA * | +| (const RSA *) | | RSAPublicKey_dup | 0 | const RSA * | +| (const RSA *) | | RSA_bits | 0 | const RSA * | +| (const RSA *) | | RSA_flags | 0 | const RSA * | +| (const RSA *) | | RSA_get0_d | 0 | const RSA * | +| (const RSA *) | | RSA_get0_dmp1 | 0 | const RSA * | +| (const RSA *) | | RSA_get0_dmq1 | 0 | const RSA * | +| (const RSA *) | | RSA_get0_e | 0 | const RSA * | +| (const RSA *) | | RSA_get0_engine | 0 | const RSA * | +| (const RSA *) | | RSA_get0_iqmp | 0 | const RSA * | +| (const RSA *) | | RSA_get0_n | 0 | const RSA * | +| (const RSA *) | | RSA_get0_p | 0 | const RSA * | +| (const RSA *) | | RSA_get0_pss_params | 0 | const RSA * | +| (const RSA *) | | RSA_get0_q | 0 | const RSA * | +| (const RSA *) | | RSA_get_method | 0 | const RSA * | +| (const RSA *) | | RSA_get_multi_prime_extra_count | 0 | const RSA * | +| (const RSA *) | | RSA_size | 0 | const RSA * | +| (const RSA *,BN_CTX *) | | ossl_rsa_check_crt_components | 0 | const RSA * | +| (const RSA *,BN_CTX *) | | ossl_rsa_check_crt_components | 1 | BN_CTX * | +| (const RSA *,const BIGNUM **,const BIGNUM **) | | RSA_get0_factors | 0 | const RSA * | +| (const RSA *,const BIGNUM **,const BIGNUM **) | | RSA_get0_factors | 1 | const BIGNUM ** | +| (const RSA *,const BIGNUM **,const BIGNUM **) | | RSA_get0_factors | 2 | const BIGNUM ** | +| (const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | RSA_get0_crt_params | 0 | const RSA * | +| (const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | RSA_get0_crt_params | 1 | const BIGNUM ** | +| (const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | RSA_get0_crt_params | 2 | const BIGNUM ** | +| (const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | RSA_get0_crt_params | 3 | const BIGNUM ** | +| (const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | RSA_get0_key | 0 | const RSA * | +| (const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | RSA_get0_key | 1 | const BIGNUM ** | +| (const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | RSA_get0_key | 2 | const BIGNUM ** | +| (const RSA *,const BIGNUM **,const BIGNUM **,const BIGNUM **) | | RSA_get0_key | 3 | const BIGNUM ** | +| (const RSA *,int) | | RSA_get_ex_data | 0 | const RSA * | +| (const RSA *,int) | | RSA_get_ex_data | 1 | int | +| (const RSA *,int) | | RSA_test_flags | 0 | const RSA * | +| (const RSA *,int) | | RSA_test_flags | 1 | int | +| (const RSA *,int) | | ossl_rsa_dup | 0 | const RSA * | +| (const RSA *,int) | | ossl_rsa_dup | 1 | int | +| (const RSA *,unsigned char **) | | i2d_RSAPrivateKey | 0 | const RSA * | +| (const RSA *,unsigned char **) | | i2d_RSAPrivateKey | 1 | unsigned char ** | +| (const RSA *,unsigned char **) | | i2d_RSAPublicKey | 0 | const RSA * | +| (const RSA *,unsigned char **) | | i2d_RSAPublicKey | 1 | unsigned char ** | +| (const RSA *,unsigned char **) | | i2d_RSA_PUBKEY | 0 | const RSA * | +| (const RSA *,unsigned char **) | | i2d_RSA_PUBKEY | 1 | unsigned char ** | +| (const RSA_METHOD *) | | RSA_meth_dup | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get0_app_data | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get0_name | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_bn_mod_exp | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_finish | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_flags | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_init | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_keygen | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_mod_exp | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_multi_prime_keygen | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_priv_dec | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_priv_enc | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_pub_dec | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_pub_enc | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_sign | 0 | const RSA_METHOD * | +| (const RSA_METHOD *) | | RSA_meth_get_verify | 0 | const RSA_METHOD * | +| (const RSA_OAEP_PARAMS *,unsigned char **) | | i2d_RSA_OAEP_PARAMS | 0 | const RSA_OAEP_PARAMS * | +| (const RSA_OAEP_PARAMS *,unsigned char **) | | i2d_RSA_OAEP_PARAMS | 1 | unsigned char ** | +| (const RSA_PSS_PARAMS *) | | RSA_PSS_PARAMS_dup | 0 | const RSA_PSS_PARAMS * | +| (const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *) | | ossl_rsa_pss_get_param | 0 | const RSA_PSS_PARAMS * | +| (const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *) | | ossl_rsa_pss_get_param | 1 | const EVP_MD ** | +| (const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *) | | ossl_rsa_pss_get_param | 2 | const EVP_MD ** | +| (const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *) | | ossl_rsa_pss_get_param | 3 | int * | +| (const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *,int *) | | ossl_rsa_pss_get_param_unverified | 0 | const RSA_PSS_PARAMS * | +| (const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *,int *) | | ossl_rsa_pss_get_param_unverified | 1 | const EVP_MD ** | +| (const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *,int *) | | ossl_rsa_pss_get_param_unverified | 2 | const EVP_MD ** | +| (const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *,int *) | | ossl_rsa_pss_get_param_unverified | 3 | int * | +| (const RSA_PSS_PARAMS *,const EVP_MD **,const EVP_MD **,int *,int *) | | ossl_rsa_pss_get_param_unverified | 4 | int * | +| (const RSA_PSS_PARAMS *,unsigned char **) | | i2d_RSA_PSS_PARAMS | 0 | const RSA_PSS_PARAMS * | +| (const RSA_PSS_PARAMS *,unsigned char **) | | i2d_RSA_PSS_PARAMS | 1 | unsigned char ** | +| (const RSA_PSS_PARAMS_30 *) | | ossl_rsa_pss_params_30_hashalg | 0 | const RSA_PSS_PARAMS_30 * | +| (const RSA_PSS_PARAMS_30 *) | | ossl_rsa_pss_params_30_maskgenalg | 0 | const RSA_PSS_PARAMS_30 * | +| (const RSA_PSS_PARAMS_30 *) | | ossl_rsa_pss_params_30_maskgenhashalg | 0 | const RSA_PSS_PARAMS_30 * | +| (const RSA_PSS_PARAMS_30 *) | | ossl_rsa_pss_params_30_saltlen | 0 | const RSA_PSS_PARAMS_30 * | +| (const RSA_PSS_PARAMS_30 *) | | ossl_rsa_pss_params_30_trailerfield | 0 | const RSA_PSS_PARAMS_30 * | +| (const RSA_PSS_PARAMS_30 *,OSSL_PARAM_BLD *,OSSL_PARAM[]) | | ossl_rsa_pss_params_30_todata | 0 | const RSA_PSS_PARAMS_30 * | +| (const RSA_PSS_PARAMS_30 *,OSSL_PARAM_BLD *,OSSL_PARAM[]) | | ossl_rsa_pss_params_30_todata | 1 | OSSL_PARAM_BLD * | +| (const RSA_PSS_PARAMS_30 *,OSSL_PARAM_BLD *,OSSL_PARAM[]) | | ossl_rsa_pss_params_30_todata | 2 | OSSL_PARAM[] | | (const SAFEARRAY &) | CComSafeArray | CComSafeArray | 0 | const SAFEARRAY & | | (const SAFEARRAY *) | CComSafeArray | Add | 0 | const SAFEARRAY * | | (const SAFEARRAY *) | CComSafeArray | CComSafeArray | 0 | const SAFEARRAY * | | (const SAFEARRAY *) | CComSafeArray | operator= | 0 | const SAFEARRAY * | +| (const SCRYPT_PARAMS *,unsigned char **) | | i2d_SCRYPT_PARAMS | 0 | const SCRYPT_PARAMS * | +| (const SCRYPT_PARAMS *,unsigned char **) | | i2d_SCRYPT_PARAMS | 1 | unsigned char ** | +| (const SCT *) | | SCT_get_log_entry_type | 0 | const SCT * | +| (const SCT *) | | SCT_get_source | 0 | const SCT * | +| (const SCT *) | | SCT_get_timestamp | 0 | const SCT * | +| (const SCT *) | | SCT_get_validation_status | 0 | const SCT * | +| (const SCT *) | | SCT_get_version | 0 | const SCT * | +| (const SCT *) | | SCT_is_complete | 0 | const SCT * | +| (const SCT *,unsigned char **) | | SCT_get0_extensions | 0 | const SCT * | +| (const SCT *,unsigned char **) | | SCT_get0_extensions | 1 | unsigned char ** | +| (const SCT *,unsigned char **) | | SCT_get0_log_id | 0 | const SCT * | +| (const SCT *,unsigned char **) | | SCT_get0_log_id | 1 | unsigned char ** | +| (const SCT *,unsigned char **) | | SCT_get0_signature | 0 | const SCT * | +| (const SCT *,unsigned char **) | | SCT_get0_signature | 1 | unsigned char ** | +| (const SCT *,unsigned char **) | | i2o_SCT | 0 | const SCT * | +| (const SCT *,unsigned char **) | | i2o_SCT | 1 | unsigned char ** | +| (const SCT *,unsigned char **) | | i2o_SCT_signature | 0 | const SCT * | +| (const SCT *,unsigned char **) | | i2o_SCT_signature | 1 | unsigned char ** | +| (const SFRAME_LIST *,void **,UINT_RANGE *,const unsigned char **,int *) | | ossl_sframe_list_peek | 0 | const SFRAME_LIST * | +| (const SFRAME_LIST *,void **,UINT_RANGE *,const unsigned char **,int *) | | ossl_sframe_list_peek | 1 | void ** | +| (const SFRAME_LIST *,void **,UINT_RANGE *,const unsigned char **,int *) | | ossl_sframe_list_peek | 2 | UINT_RANGE * | +| (const SFRAME_LIST *,void **,UINT_RANGE *,const unsigned char **,int *) | | ossl_sframe_list_peek | 3 | const unsigned char ** | +| (const SFRAME_LIST *,void **,UINT_RANGE *,const unsigned char **,int *) | | ossl_sframe_list_peek | 4 | int * | +| (const SLH_DSA_HASH_CTX *) | | ossl_slh_dsa_hash_ctx_dup | 0 | const SLH_DSA_HASH_CTX * | +| (const SLH_DSA_KEY *) | | ossl_slh_dsa_hash_ctx_new | 0 | const SLH_DSA_KEY * | +| (const SLH_DSA_KEY *) | | ossl_slh_dsa_key_get_n | 0 | const SLH_DSA_KEY * | +| (const SLH_DSA_KEY *) | | ossl_slh_dsa_key_get_name | 0 | const SLH_DSA_KEY * | +| (const SLH_DSA_KEY *) | | ossl_slh_dsa_key_get_priv | 0 | const SLH_DSA_KEY * | +| (const SLH_DSA_KEY *) | | ossl_slh_dsa_key_get_priv_len | 0 | const SLH_DSA_KEY * | +| (const SLH_DSA_KEY *) | | ossl_slh_dsa_key_get_pub | 0 | const SLH_DSA_KEY * | +| (const SLH_DSA_KEY *) | | ossl_slh_dsa_key_get_pub_len | 0 | const SLH_DSA_KEY * | +| (const SLH_DSA_KEY *) | | ossl_slh_dsa_key_get_sig_len | 0 | const SLH_DSA_KEY * | +| (const SLH_DSA_KEY *) | | ossl_slh_dsa_key_get_type | 0 | const SLH_DSA_KEY * | +| (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 0 | const SLH_DSA_KEY * | +| (const SLH_DSA_KEY *,int) | | ossl_slh_dsa_key_dup | 1 | int | +| (const SM2_Ciphertext *,unsigned char **) | | i2d_SM2_Ciphertext | 0 | const SM2_Ciphertext * | +| (const SM2_Ciphertext *,unsigned char **) | | i2d_SM2_Ciphertext | 1 | unsigned char ** | +| (const SSL *) | | DTLS_get_data_mtu | 0 | const SSL * | +| (const SSL *) | | SSL_client_version | 0 | const SSL * | +| (const SSL *) | | SSL_ct_is_enabled | 0 | const SSL * | +| (const SSL *) | | SSL_get0_CA_list | 0 | const SSL * | +| (const SSL *) | | SSL_get0_peer_certificate | 0 | const SSL * | +| (const SSL *) | | SSL_get0_peer_rpk | 0 | const SSL * | +| (const SSL *) | | SSL_get0_security_ex_data | 0 | const SSL * | +| (const SSL *) | | SSL_get0_verified_chain | 0 | const SSL * | +| (const SSL *) | | SSL_get1_peer_certificate | 0 | const SSL * | +| (const SSL *) | | SSL_get_SSL_CTX | 0 | const SSL * | +| (const SSL *) | | SSL_get_ciphers | 0 | const SSL * | +| (const SSL *) | | SSL_get_client_CA_list | 0 | const SSL * | +| (const SSL *) | | SSL_get_client_ciphers | 0 | const SSL * | +| (const SSL *) | | SSL_get_current_cipher | 0 | const SSL * | +| (const SSL *) | | SSL_get_early_data_status | 0 | const SSL * | +| (const SSL *) | | SSL_get_info_callback | 0 | const SSL * | +| (const SSL *) | | SSL_get_key_update_type | 0 | const SSL * | +| (const SSL *) | | SSL_get_max_early_data | 0 | const SSL * | +| (const SSL *) | | SSL_get_negotiated_client_cert_type | 0 | const SSL * | +| (const SSL *) | | SSL_get_negotiated_server_cert_type | 0 | const SSL * | +| (const SSL *) | | SSL_get_num_tickets | 0 | const SSL * | +| (const SSL *) | | SSL_get_options | 0 | const SSL * | +| (const SSL *) | | SSL_get_peer_cert_chain | 0 | const SSL * | +| (const SSL *) | | SSL_get_psk_identity | 0 | const SSL * | +| (const SSL *) | | SSL_get_psk_identity_hint | 0 | const SSL * | +| (const SSL *) | | SSL_get_quiet_shutdown | 0 | const SSL * | +| (const SSL *) | | SSL_get_rbio | 0 | const SSL * | +| (const SSL *) | | SSL_get_read_ahead | 0 | const SSL * | +| (const SSL *) | | SSL_get_record_padding_callback_arg | 0 | const SSL * | +| (const SSL *) | | SSL_get_recv_max_early_data | 0 | const SSL * | +| (const SSL *) | | SSL_get_security_callback | 0 | const SSL * | +| (const SSL *) | | SSL_get_security_level | 0 | const SSL * | +| (const SSL *) | | SSL_get_session | 0 | const SSL * | +| (const SSL *) | | SSL_get_shutdown | 0 | const SSL * | +| (const SSL *) | | SSL_get_ssl_method | 0 | const SSL * | +| (const SSL *) | | SSL_get_state | 0 | const SSL * | +| (const SSL *) | | SSL_get_verify_callback | 0 | const SSL * | +| (const SSL *) | | SSL_get_verify_depth | 0 | const SSL * | +| (const SSL *) | | SSL_get_verify_mode | 0 | const SSL * | +| (const SSL *) | | SSL_get_verify_result | 0 | const SSL * | +| (const SSL *) | | SSL_get_wbio | 0 | const SSL * | +| (const SSL *) | | SSL_in_init | 0 | const SSL * | +| (const SSL *) | | SSL_is_server | 0 | const SSL * | +| (const SSL *) | | SSL_renegotiate_pending | 0 | const SSL * | +| (const SSL *) | | SSL_session_reused | 0 | const SSL * | +| (const SSL *) | | SSL_state_string | 0 | const SSL * | +| (const SSL *) | | SSL_state_string_long | 0 | const SSL * | +| (const SSL *) | | SSL_version | 0 | const SSL * | +| (const SSL *) | | SSL_want | 0 | const SSL * | +| (const SSL *,char *,int) | | SSL_get_shared_ciphers | 0 | const SSL * | +| (const SSL *,char *,int) | | SSL_get_shared_ciphers | 1 | char * | +| (const SSL *,char *,int) | | SSL_get_shared_ciphers | 2 | int | +| (const SSL *,const SSL_CTX *,int *) | | ssl_get_security_level_bits | 0 | const SSL * | +| (const SSL *,const SSL_CTX *,int *) | | ssl_get_security_level_bits | 1 | const SSL_CTX * | +| (const SSL *,const SSL_CTX *,int *) | | ssl_get_security_level_bits | 2 | int * | +| (const SSL *,const int) | | SSL_get_servername | 0 | const SSL * | +| (const SSL *,const int) | | SSL_get_servername | 1 | const int | +| (const SSL *,const unsigned char **,unsigned int *) | | SSL_get0_alpn_selected | 0 | const SSL * | +| (const SSL *,const unsigned char **,unsigned int *) | | SSL_get0_alpn_selected | 1 | const unsigned char ** | +| (const SSL *,const unsigned char **,unsigned int *) | | SSL_get0_alpn_selected | 2 | unsigned int * | +| (const SSL *,const unsigned char **,unsigned int *) | | SSL_get0_next_proto_negotiated | 0 | const SSL * | +| (const SSL *,const unsigned char **,unsigned int *) | | SSL_get0_next_proto_negotiated | 1 | const unsigned char ** | +| (const SSL *,const unsigned char **,unsigned int *) | | SSL_get0_next_proto_negotiated | 2 | unsigned int * | +| (const SSL *,int) | | SSL_get_ex_data | 0 | const SSL * | +| (const SSL *,int) | | SSL_get_ex_data | 1 | int | +| (const SSL *,int,int) | | apps_ssl_info_callback | 0 | const SSL * | +| (const SSL *,int,int) | | apps_ssl_info_callback | 1 | int | +| (const SSL *,int,int) | | apps_ssl_info_callback | 2 | int | +| (const SSL *,uint64_t *) | | SSL_get_handshake_rtt | 0 | const SSL * | +| (const SSL *,uint64_t *) | | SSL_get_handshake_rtt | 1 | uint64_t * | +| (const SSL *,unsigned char **,size_t *) | | SSL_get0_client_cert_type | 0 | const SSL * | +| (const SSL *,unsigned char **,size_t *) | | SSL_get0_client_cert_type | 1 | unsigned char ** | +| (const SSL *,unsigned char **,size_t *) | | SSL_get0_client_cert_type | 2 | size_t * | +| (const SSL *,unsigned char **,size_t *) | | SSL_get0_server_cert_type | 0 | const SSL * | +| (const SSL *,unsigned char **,size_t *) | | SSL_get0_server_cert_type | 1 | unsigned char ** | +| (const SSL *,unsigned char **,size_t *) | | SSL_get0_server_cert_type | 2 | size_t * | +| (const SSL *,unsigned char *,size_t) | | SSL_get_client_random | 0 | const SSL * | +| (const SSL *,unsigned char *,size_t) | | SSL_get_client_random | 1 | unsigned char * | +| (const SSL *,unsigned char *,size_t) | | SSL_get_client_random | 2 | size_t | +| (const SSL *,unsigned char *,size_t) | | SSL_get_server_random | 0 | const SSL * | +| (const SSL *,unsigned char *,size_t) | | SSL_get_server_random | 1 | unsigned char * | +| (const SSL *,unsigned char *,size_t) | | SSL_get_server_random | 2 | size_t | +| (const SSL_CIPHER *) | | SSL_CIPHER_get_id | 0 | const SSL_CIPHER * | +| (const SSL_CIPHER *) | | SSL_CIPHER_get_name | 0 | const SSL_CIPHER * | +| (const SSL_CIPHER *) | | SSL_CIPHER_get_protocol_id | 0 | const SSL_CIPHER * | +| (const SSL_CIPHER *) | | SSL_CIPHER_standard_name | 0 | const SSL_CIPHER * | +| (const SSL_CIPHER *,char *,int) | | SSL_CIPHER_description | 0 | const SSL_CIPHER * | +| (const SSL_CIPHER *,char *,int) | | SSL_CIPHER_description | 1 | char * | +| (const SSL_CIPHER *,char *,int) | | SSL_CIPHER_description | 2 | int | +| (const SSL_CIPHER *,int *) | | SSL_CIPHER_get_bits | 0 | const SSL_CIPHER * | +| (const SSL_CIPHER *,int *) | | SSL_CIPHER_get_bits | 1 | int * | +| (const SSL_CIPHER *const *,const SSL_CIPHER *const *) | | ssl_cipher_ptr_id_cmp | 0 | const SSL_CIPHER *const * | +| (const SSL_CIPHER *const *,const SSL_CIPHER *const *) | | ssl_cipher_ptr_id_cmp | 1 | const SSL_CIPHER *const * | +| (const SSL_COMP *) | | SSL_COMP_get0_name | 0 | const SSL_COMP * | +| (const SSL_COMP *) | | SSL_COMP_get_id | 0 | const SSL_COMP * | +| (const SSL_CONF_CMD *,size_t,char **,char **) | | conf_ssl_get_cmd | 0 | const SSL_CONF_CMD * | +| (const SSL_CONF_CMD *,size_t,char **,char **) | | conf_ssl_get_cmd | 1 | size_t | +| (const SSL_CONF_CMD *,size_t,char **,char **) | | conf_ssl_get_cmd | 2 | char ** | +| (const SSL_CONF_CMD *,size_t,char **,char **) | | conf_ssl_get_cmd | 3 | char ** | +| (const SSL_CONNECTION *) | | ssl_get_max_send_fragment | 0 | const SSL_CONNECTION * | +| (const SSL_CONNECTION *) | | ssl_get_split_send_fragment | 0 | const SSL_CONNECTION * | +| (const SSL_CONNECTION *) | | tls_get_peer_pkey | 0 | const SSL_CONNECTION * | +| (const SSL_CONNECTION *,OSSL_TIME *) | | dtls1_get_timeout | 0 | const SSL_CONNECTION * | +| (const SSL_CONNECTION *,OSSL_TIME *) | | dtls1_get_timeout | 1 | OSSL_TIME * | +| (const SSL_CONNECTION *,int *,int *,int *) | | ssl_get_min_max_version | 0 | const SSL_CONNECTION * | +| (const SSL_CONNECTION *,int *,int *,int *) | | ssl_get_min_max_version | 1 | int * | +| (const SSL_CONNECTION *,int *,int *,int *) | | ssl_get_min_max_version | 2 | int * | +| (const SSL_CONNECTION *,int *,int *,int *) | | ssl_get_min_max_version | 3 | int * | +| (const SSL_CTX *) | | SSL_CTX_ct_is_enabled | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get0_CA_list | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get0_ctlog_store | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get0_security_ex_data | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_cert_store | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_ciphers | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_client_CA_list | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_keylog_callback | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_max_early_data | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_num_tickets | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_options | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_quiet_shutdown | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_record_padding_callback_arg | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_recv_max_early_data | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_security_callback | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_security_level | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_ssl_method | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_timeout | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_verify_callback | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_verify_depth | 0 | const SSL_CTX * | +| (const SSL_CTX *) | | SSL_CTX_get_verify_mode | 0 | const SSL_CTX * | +| (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 0 | const SSL_CTX * | +| (const SSL_CTX *,int) | | SSL_CTX_get_ex_data | 1 | int | +| (const SSL_CTX *,uint64_t *) | | SSL_CTX_get_domain_flags | 0 | const SSL_CTX * | +| (const SSL_CTX *,uint64_t *) | | SSL_CTX_get_domain_flags | 1 | uint64_t * | +| (const SSL_CTX *,unsigned char **,size_t *) | | SSL_CTX_get0_client_cert_type | 0 | const SSL_CTX * | +| (const SSL_CTX *,unsigned char **,size_t *) | | SSL_CTX_get0_client_cert_type | 1 | unsigned char ** | +| (const SSL_CTX *,unsigned char **,size_t *) | | SSL_CTX_get0_client_cert_type | 2 | size_t * | +| (const SSL_CTX *,unsigned char **,size_t *) | | SSL_CTX_get0_server_cert_type | 0 | const SSL_CTX * | +| (const SSL_CTX *,unsigned char **,size_t *) | | SSL_CTX_get0_server_cert_type | 1 | unsigned char ** | +| (const SSL_CTX *,unsigned char **,size_t *) | | SSL_CTX_get0_server_cert_type | 2 | size_t * | +| (const SSL_METHOD *) | | SSL_CTX_new | 0 | const SSL_METHOD * | +| (const SSL_SESSION *) | | SSL_SESSION_dup | 0 | const SSL_SESSION * | +| (const SSL_SESSION *) | | SSL_SESSION_get0_cipher | 0 | const SSL_SESSION * | +| (const SSL_SESSION *) | | SSL_SESSION_get0_hostname | 0 | const SSL_SESSION * | +| (const SSL_SESSION *) | | SSL_SESSION_get_compress_id | 0 | const SSL_SESSION * | +| (const SSL_SESSION *) | | SSL_SESSION_get_max_early_data | 0 | const SSL_SESSION * | +| (const SSL_SESSION *) | | SSL_SESSION_get_max_fragment_length | 0 | const SSL_SESSION * | +| (const SSL_SESSION *) | | SSL_SESSION_get_protocol_version | 0 | const SSL_SESSION * | +| (const SSL_SESSION *) | | SSL_SESSION_get_ticket_lifetime_hint | 0 | const SSL_SESSION * | +| (const SSL_SESSION *) | | SSL_SESSION_get_time | 0 | const SSL_SESSION * | +| (const SSL_SESSION *) | | SSL_SESSION_get_time_ex | 0 | const SSL_SESSION * | +| (const SSL_SESSION *) | | SSL_SESSION_get_timeout | 0 | const SSL_SESSION * | +| (const SSL_SESSION *,OSSL_PARAM[]) | | ssl3_digest_master_key_set_params | 0 | const SSL_SESSION * | +| (const SSL_SESSION *,OSSL_PARAM[]) | | ssl3_digest_master_key_set_params | 1 | OSSL_PARAM[] | +| (const SSL_SESSION *,const unsigned char **,size_t *) | | SSL_SESSION_get0_alpn_selected | 0 | const SSL_SESSION * | +| (const SSL_SESSION *,const unsigned char **,size_t *) | | SSL_SESSION_get0_alpn_selected | 1 | const unsigned char ** | +| (const SSL_SESSION *,const unsigned char **,size_t *) | | SSL_SESSION_get0_alpn_selected | 2 | size_t * | +| (const SSL_SESSION *,const unsigned char **,size_t *) | | SSL_SESSION_get0_ticket | 0 | const SSL_SESSION * | +| (const SSL_SESSION *,const unsigned char **,size_t *) | | SSL_SESSION_get0_ticket | 1 | const unsigned char ** | +| (const SSL_SESSION *,const unsigned char **,size_t *) | | SSL_SESSION_get0_ticket | 2 | size_t * | +| (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 0 | const SSL_SESSION * | +| (const SSL_SESSION *,int) | | SSL_SESSION_get_ex_data | 1 | int | +| (const SSL_SESSION *,int) | | ssl_session_dup | 0 | const SSL_SESSION * | +| (const SSL_SESSION *,int) | | ssl_session_dup | 1 | int | +| (const SSL_SESSION *,unsigned char **) | | i2d_SSL_SESSION | 0 | const SSL_SESSION * | +| (const SSL_SESSION *,unsigned char **) | | i2d_SSL_SESSION | 1 | unsigned char ** | +| (const SSL_SESSION *,unsigned char *,size_t) | | SSL_SESSION_get_master_key | 0 | const SSL_SESSION * | +| (const SSL_SESSION *,unsigned char *,size_t) | | SSL_SESSION_get_master_key | 1 | unsigned char * | +| (const SSL_SESSION *,unsigned char *,size_t) | | SSL_SESSION_get_master_key | 2 | size_t | +| (const SSL_SESSION *,unsigned int *) | | SSL_SESSION_get0_id_context | 0 | const SSL_SESSION * | +| (const SSL_SESSION *,unsigned int *) | | SSL_SESSION_get0_id_context | 1 | unsigned int * | +| (const SSL_SESSION *,unsigned int *) | | SSL_SESSION_get_id | 0 | const SSL_SESSION * | +| (const SSL_SESSION *,unsigned int *) | | SSL_SESSION_get_id | 1 | unsigned int * | +| (const SXNET *,unsigned char **) | | i2d_SXNET | 0 | const SXNET * | +| (const SXNET *,unsigned char **) | | i2d_SXNET | 1 | unsigned char ** | +| (const SXNETID *,unsigned char **) | | i2d_SXNETID | 0 | const SXNETID * | +| (const SXNETID *,unsigned char **) | | i2d_SXNETID | 1 | unsigned char ** | | (const T &,BOOL) | CComSafeArray | Add | 0 | const class:0 & | | (const T &,BOOL) | CComSafeArray | Add | 1 | BOOL | +| (const TS_ACCURACY *) | | TS_ACCURACY_dup | 0 | const TS_ACCURACY * | +| (const TS_ACCURACY *) | | TS_ACCURACY_get_micros | 0 | const TS_ACCURACY * | +| (const TS_ACCURACY *) | | TS_ACCURACY_get_millis | 0 | const TS_ACCURACY * | +| (const TS_ACCURACY *) | | TS_ACCURACY_get_seconds | 0 | const TS_ACCURACY * | +| (const TS_ACCURACY *,unsigned char **) | | i2d_TS_ACCURACY | 0 | const TS_ACCURACY * | +| (const TS_ACCURACY *,unsigned char **) | | i2d_TS_ACCURACY | 1 | unsigned char ** | +| (const TS_MSG_IMPRINT *) | | TS_MSG_IMPRINT_dup | 0 | const TS_MSG_IMPRINT * | +| (const TS_MSG_IMPRINT *,unsigned char **) | | i2d_TS_MSG_IMPRINT | 0 | const TS_MSG_IMPRINT * | +| (const TS_MSG_IMPRINT *,unsigned char **) | | i2d_TS_MSG_IMPRINT | 1 | unsigned char ** | +| (const TS_REQ *) | | TS_REQ_dup | 0 | const TS_REQ * | +| (const TS_REQ *) | | TS_REQ_get_nonce | 0 | const TS_REQ * | +| (const TS_REQ *) | | TS_REQ_get_version | 0 | const TS_REQ * | +| (const TS_REQ *,unsigned char **) | | i2d_TS_REQ | 0 | const TS_REQ * | +| (const TS_REQ *,unsigned char **) | | i2d_TS_REQ | 1 | unsigned char ** | +| (const TS_RESP *) | | TS_RESP_dup | 0 | const TS_RESP * | +| (const TS_RESP *,unsigned char **) | | i2d_TS_RESP | 0 | const TS_RESP * | +| (const TS_RESP *,unsigned char **) | | i2d_TS_RESP | 1 | unsigned char ** | +| (const TS_STATUS_INFO *) | | TS_STATUS_INFO_dup | 0 | const TS_STATUS_INFO * | +| (const TS_STATUS_INFO *) | | TS_STATUS_INFO_get0_failure_info | 0 | const TS_STATUS_INFO * | +| (const TS_STATUS_INFO *) | | TS_STATUS_INFO_get0_status | 0 | const TS_STATUS_INFO * | +| (const TS_STATUS_INFO *) | | TS_STATUS_INFO_get0_text | 0 | const TS_STATUS_INFO * | +| (const TS_STATUS_INFO *,unsigned char **) | | i2d_TS_STATUS_INFO | 0 | const TS_STATUS_INFO * | +| (const TS_STATUS_INFO *,unsigned char **) | | i2d_TS_STATUS_INFO | 1 | unsigned char ** | +| (const TS_TST_INFO *) | | TS_TST_INFO_dup | 0 | const TS_TST_INFO * | +| (const TS_TST_INFO *) | | TS_TST_INFO_get_nonce | 0 | const TS_TST_INFO * | +| (const TS_TST_INFO *) | | TS_TST_INFO_get_serial | 0 | const TS_TST_INFO * | +| (const TS_TST_INFO *) | | TS_TST_INFO_get_time | 0 | const TS_TST_INFO * | +| (const TS_TST_INFO *) | | TS_TST_INFO_get_version | 0 | const TS_TST_INFO * | +| (const TS_TST_INFO *,unsigned char **) | | i2d_TS_TST_INFO | 0 | const TS_TST_INFO * | +| (const TS_TST_INFO *,unsigned char **) | | i2d_TS_TST_INFO | 1 | unsigned char ** | +| (const UI *,int) | | UI_get_ex_data | 0 | const UI * | +| (const UI *,int) | | UI_get_ex_data | 1 | int | +| (const UI_METHOD *) | | UI_method_get_closer | 0 | const UI_METHOD * | +| (const UI_METHOD *) | | UI_method_get_data_destructor | 0 | const UI_METHOD * | +| (const UI_METHOD *) | | UI_method_get_data_duplicator | 0 | const UI_METHOD * | +| (const UI_METHOD *) | | UI_method_get_flusher | 0 | const UI_METHOD * | +| (const UI_METHOD *) | | UI_method_get_opener | 0 | const UI_METHOD * | +| (const UI_METHOD *) | | UI_method_get_prompt_constructor | 0 | const UI_METHOD * | +| (const UI_METHOD *) | | UI_method_get_reader | 0 | const UI_METHOD * | +| (const UI_METHOD *) | | UI_method_get_writer | 0 | const UI_METHOD * | +| (const UI_METHOD *) | | UI_new_method | 0 | const UI_METHOD * | +| (const UI_METHOD *,int) | | UI_method_get_ex_data | 0 | const UI_METHOD * | +| (const UI_METHOD *,int) | | UI_method_get_ex_data | 1 | int | +| (const USERNOTICE *,unsigned char **) | | i2d_USERNOTICE | 0 | const USERNOTICE * | +| (const USERNOTICE *,unsigned char **) | | i2d_USERNOTICE | 1 | unsigned char ** | | (const VARIANT &) | | operator+= | 0 | const VARIANT & | | (const VARIANT &) | CStringT | CStringT | 0 | const VARIANT & | | (const VARIANT &) | CStringT | operator= | 0 | const VARIANT & | | (const VARIANT &,IAtlStringMgr *) | CStringT | CStringT | 0 | const VARIANT & | | (const VARIANT &,IAtlStringMgr *) | CStringT | CStringT | 1 | IAtlStringMgr * | +| (const VECTOR *,uint32_t,uint8_t *,size_t) | | ossl_ml_dsa_w1_encode | 0 | const VECTOR * | +| (const VECTOR *,uint32_t,uint8_t *,size_t) | | ossl_ml_dsa_w1_encode | 1 | uint32_t | +| (const VECTOR *,uint32_t,uint8_t *,size_t) | | ossl_ml_dsa_w1_encode | 2 | uint8_t * | +| (const VECTOR *,uint32_t,uint8_t *,size_t) | | ossl_ml_dsa_w1_encode | 3 | size_t | +| (const X509 *) | | OSSL_CMP_ITAV_new_rootCaCert | 0 | const X509 * | +| (const X509 *) | | X509_dup | 0 | const X509 * | +| (const X509 *) | | X509_get0_extensions | 0 | const X509 * | +| (const X509 *) | | X509_get0_serialNumber | 0 | const X509 * | +| (const X509 *) | | X509_get0_tbs_sigalg | 0 | const X509 * | +| (const X509 *) | | X509_get_X509_PUBKEY | 0 | const X509 * | +| (const X509 *) | | X509_get_issuer_name | 0 | const X509 * | +| (const X509 *) | | X509_get_subject_name | 0 | const X509 * | +| (const X509 *,EVP_MD **,int *) | | X509_digest_sig | 0 | const X509 * | +| (const X509 *,EVP_MD **,int *) | | X509_digest_sig | 1 | EVP_MD ** | +| (const X509 *,EVP_MD **,int *) | | X509_digest_sig | 2 | int * | +| (const X509 *,const ASN1_BIT_STRING **,const ASN1_BIT_STRING **) | | X509_get0_uids | 0 | const X509 * | +| (const X509 *,const ASN1_BIT_STRING **,const ASN1_BIT_STRING **) | | X509_get0_uids | 1 | const ASN1_BIT_STRING ** | +| (const X509 *,const ASN1_BIT_STRING **,const ASN1_BIT_STRING **) | | X509_get0_uids | 2 | const ASN1_BIT_STRING ** | +| (const X509 *,const ASN1_OBJECT *,int) | | X509_get_ext_by_OBJ | 0 | const X509 * | +| (const X509 *,const ASN1_OBJECT *,int) | | X509_get_ext_by_OBJ | 1 | const ASN1_OBJECT * | +| (const X509 *,const ASN1_OBJECT *,int) | | X509_get_ext_by_OBJ | 2 | int | +| (const X509 *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_digest | 0 | const X509 * | +| (const X509 *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_digest | 1 | const EVP_MD * | +| (const X509 *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_digest | 2 | unsigned char * | +| (const X509 *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_digest | 3 | unsigned int * | +| (const X509 *,const X509 *) | | X509_cmp | 0 | const X509 * | +| (const X509 *,const X509 *) | | X509_cmp | 1 | const X509 * | +| (const X509 *,const X509 *) | | X509_issuer_and_serial_cmp | 0 | const X509 * | +| (const X509 *,const X509 *) | | X509_issuer_and_serial_cmp | 1 | const X509 * | +| (const X509 *,const X509 *) | | X509_issuer_name_cmp | 0 | const X509 * | +| (const X509 *,const X509 *) | | X509_issuer_name_cmp | 1 | const X509 * | +| (const X509 *,const X509 *) | | X509_subject_name_cmp | 0 | const X509 * | +| (const X509 *,const X509 *) | | X509_subject_name_cmp | 1 | const X509 * | +| (const X509 *,const X509 *,const X509 *) | | OSSL_CMP_ITAV_new_rootCaKeyUpdate | 0 | const X509 * | +| (const X509 *,const X509 *,const X509 *) | | OSSL_CMP_ITAV_new_rootCaKeyUpdate | 1 | const X509 * | +| (const X509 *,const X509 *,const X509 *) | | OSSL_CMP_ITAV_new_rootCaKeyUpdate | 2 | const X509 * | +| (const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_new_init | 0 | const X509 * | +| (const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_new_init | 1 | const stack_st_X509 * | +| (const X509 *,const stack_st_X509 *,int) | | OSSL_ESS_signing_cert_new_init | 2 | int | +| (const X509 *,int) | | X509_get_ex_data | 0 | const X509 * | +| (const X509 *,int) | | X509_get_ex_data | 1 | int | +| (const X509 *,int) | | X509_get_ext | 0 | const X509 * | +| (const X509 *,int) | | X509_get_ext | 1 | int | +| (const X509 *,int,int *,int *) | | X509_get_ext_d2i | 0 | const X509 * | +| (const X509 *,int,int *,int *) | | X509_get_ext_d2i | 1 | int | +| (const X509 *,int,int *,int *) | | X509_get_ext_d2i | 2 | int * | +| (const X509 *,int,int *,int *) | | X509_get_ext_d2i | 3 | int * | +| (const X509 *,int,int) | | X509_get_ext_by_NID | 0 | const X509 * | +| (const X509 *,int,int) | | X509_get_ext_by_NID | 1 | int | +| (const X509 *,int,int) | | X509_get_ext_by_NID | 2 | int | +| (const X509 *,int,int) | | X509_get_ext_by_critical | 0 | const X509 * | +| (const X509 *,int,int) | | X509_get_ext_by_critical | 1 | int | +| (const X509 *,int,int) | | X509_get_ext_by_critical | 2 | int | +| (const X509 *,unsigned char **) | | i2d_X509 | 0 | const X509 * | +| (const X509 *,unsigned char **) | | i2d_X509 | 1 | unsigned char ** | +| (const X509 *,unsigned char **) | | i2d_X509_AUX | 0 | const X509 * | +| (const X509 *,unsigned char **) | | i2d_X509_AUX | 1 | unsigned char ** | +| (const X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *) | | v2i_GENERAL_NAMES | 0 | const X509V3_EXT_METHOD * | +| (const X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *) | | v2i_GENERAL_NAMES | 1 | X509V3_CTX * | +| (const X509V3_EXT_METHOD *,X509V3_CTX *,stack_st_CONF_VALUE *) | | v2i_GENERAL_NAMES | 2 | stack_st_CONF_VALUE * | +| (const X509_ACERT *) | | X509_ACERT_dup | 0 | const X509_ACERT * | +| (const X509_ACERT *) | | X509_ACERT_get0_extensions | 0 | const X509_ACERT * | +| (const X509_ACERT *) | | X509_ACERT_get0_info_sigalg | 0 | const X509_ACERT * | +| (const X509_ACERT *) | | X509_ACERT_get0_issuerUID | 0 | const X509_ACERT * | +| (const X509_ACERT *) | | X509_ACERT_get0_serialNumber | 0 | const X509_ACERT * | +| (const X509_ACERT *,const ASN1_BIT_STRING **,const X509_ALGOR **) | | X509_ACERT_get0_signature | 0 | const X509_ACERT * | +| (const X509_ACERT *,const ASN1_BIT_STRING **,const X509_ALGOR **) | | X509_ACERT_get0_signature | 1 | const ASN1_BIT_STRING ** | +| (const X509_ACERT *,const ASN1_BIT_STRING **,const X509_ALGOR **) | | X509_ACERT_get0_signature | 2 | const X509_ALGOR ** | +| (const X509_ACERT *,const ASN1_OBJECT *,int) | | X509_ACERT_get_attr_by_OBJ | 0 | const X509_ACERT * | +| (const X509_ACERT *,const ASN1_OBJECT *,int) | | X509_ACERT_get_attr_by_OBJ | 1 | const ASN1_OBJECT * | +| (const X509_ACERT *,const ASN1_OBJECT *,int) | | X509_ACERT_get_attr_by_OBJ | 2 | int | +| (const X509_ACERT *,int) | | X509_ACERT_get_attr | 0 | const X509_ACERT * | +| (const X509_ACERT *,int) | | X509_ACERT_get_attr | 1 | int | +| (const X509_ACERT *,int,int *,int *) | | X509_ACERT_get_ext_d2i | 0 | const X509_ACERT * | +| (const X509_ACERT *,int,int *,int *) | | X509_ACERT_get_ext_d2i | 1 | int | +| (const X509_ACERT *,int,int *,int *) | | X509_ACERT_get_ext_d2i | 2 | int * | +| (const X509_ACERT *,int,int *,int *) | | X509_ACERT_get_ext_d2i | 3 | int * | +| (const X509_ACERT *,int,int) | | X509_ACERT_get_attr_by_NID | 0 | const X509_ACERT * | +| (const X509_ACERT *,int,int) | | X509_ACERT_get_attr_by_NID | 1 | int | +| (const X509_ACERT *,int,int) | | X509_ACERT_get_attr_by_NID | 2 | int | +| (const X509_ACERT *,unsigned char **) | | i2d_X509_ACERT | 0 | const X509_ACERT * | +| (const X509_ACERT *,unsigned char **) | | i2d_X509_ACERT | 1 | unsigned char ** | +| (const X509_ALGOR *) | | OSSL_CMP_ATAV_new_algId | 0 | const X509_ALGOR * | +| (const X509_ALGOR *) | | X509_ALGOR_dup | 0 | const X509_ALGOR * | +| (const X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | ossl_ec_key_param_from_x509_algor | 0 | const X509_ALGOR * | +| (const X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | ossl_ec_key_param_from_x509_algor | 1 | OSSL_LIB_CTX * | +| (const X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | ossl_ec_key_param_from_x509_algor | 2 | const char * | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int) | | PKCS12_item_decrypt_d2i | 0 | const X509_ALGOR * | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int) | | PKCS12_item_decrypt_d2i | 1 | const ASN1_ITEM * | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int) | | PKCS12_item_decrypt_d2i | 2 | const char * | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int) | | PKCS12_item_decrypt_d2i | 3 | int | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int) | | PKCS12_item_decrypt_d2i | 4 | const ASN1_OCTET_STRING * | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int) | | PKCS12_item_decrypt_d2i | 5 | int | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_decrypt_d2i_ex | 0 | const X509_ALGOR * | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_decrypt_d2i_ex | 1 | const ASN1_ITEM * | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_decrypt_d2i_ex | 2 | const char * | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_decrypt_d2i_ex | 3 | int | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_decrypt_d2i_ex | 4 | const ASN1_OCTET_STRING * | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_decrypt_d2i_ex | 5 | int | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_decrypt_d2i_ex | 6 | OSSL_LIB_CTX * | +| (const X509_ALGOR *,const ASN1_ITEM *,const char *,int,const ASN1_OCTET_STRING *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_item_decrypt_d2i_ex | 7 | const char * | +| (const X509_ALGOR *,const X509_ALGOR *) | | X509_ALGOR_cmp | 0 | const X509_ALGOR * | +| (const X509_ALGOR *,const X509_ALGOR *) | | X509_ALGOR_cmp | 1 | const X509_ALGOR * | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int) | | PKCS12_pbe_crypt | 0 | const X509_ALGOR * | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int) | | PKCS12_pbe_crypt | 1 | const char * | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int) | | PKCS12_pbe_crypt | 2 | int | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int) | | PKCS12_pbe_crypt | 3 | const unsigned char * | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int) | | PKCS12_pbe_crypt | 4 | int | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int) | | PKCS12_pbe_crypt | 5 | unsigned char ** | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int) | | PKCS12_pbe_crypt | 6 | int * | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int) | | PKCS12_pbe_crypt | 7 | int | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_pbe_crypt_ex | 0 | const X509_ALGOR * | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_pbe_crypt_ex | 1 | const char * | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_pbe_crypt_ex | 2 | int | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_pbe_crypt_ex | 3 | const unsigned char * | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_pbe_crypt_ex | 4 | int | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_pbe_crypt_ex | 5 | unsigned char ** | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_pbe_crypt_ex | 6 | int * | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_pbe_crypt_ex | 7 | int | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_pbe_crypt_ex | 8 | OSSL_LIB_CTX * | +| (const X509_ALGOR *,const char *,int,const unsigned char *,int,unsigned char **,int *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_pbe_crypt_ex | 9 | const char * | +| (const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_op | 0 | const X509_ALGOR * | +| (const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_op | 1 | const unsigned char * | +| (const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_op | 2 | int | +| (const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_op | 3 | int | +| (const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_op | 4 | ecx_key_op_t | +| (const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_op | 5 | OSSL_LIB_CTX * | +| (const X509_ALGOR *,const unsigned char *,int,int,ecx_key_op_t,OSSL_LIB_CTX *,const char *) | | ossl_ecx_key_op | 6 | const char * | +| (const X509_ALGOR *,unsigned char **) | | i2d_X509_ALGOR | 0 | const X509_ALGOR * | +| (const X509_ALGOR *,unsigned char **) | | i2d_X509_ALGOR | 1 | unsigned char ** | +| (const X509_ALGORS *,unsigned char **) | | i2d_X509_ALGORS | 0 | const X509_ALGORS * | +| (const X509_ALGORS *,unsigned char **) | | i2d_X509_ALGORS | 1 | unsigned char ** | +| (const X509_ATTRIBUTE *) | | X509_ATTRIBUTE_count | 0 | const X509_ATTRIBUTE * | +| (const X509_ATTRIBUTE *) | | X509_ATTRIBUTE_dup | 0 | const X509_ATTRIBUTE * | +| (const X509_ATTRIBUTE *,unsigned char **) | | i2d_X509_ATTRIBUTE | 0 | const X509_ATTRIBUTE * | +| (const X509_ATTRIBUTE *,unsigned char **) | | i2d_X509_ATTRIBUTE | 1 | unsigned char ** | +| (const X509_CERT_AUX *,unsigned char **) | | i2d_X509_CERT_AUX | 0 | const X509_CERT_AUX * | +| (const X509_CERT_AUX *,unsigned char **) | | i2d_X509_CERT_AUX | 1 | unsigned char ** | +| (const X509_CINF *,unsigned char **) | | i2d_X509_CINF | 0 | const X509_CINF * | +| (const X509_CINF *,unsigned char **) | | i2d_X509_CINF | 1 | unsigned char ** | +| (const X509_CRL *) | | OSSL_CMP_ITAV_new_crls | 0 | const X509_CRL * | +| (const X509_CRL *) | | X509_CRL_dup | 0 | const X509_CRL * | +| (const X509_CRL *) | | X509_CRL_get0_extensions | 0 | const X509_CRL * | +| (const X509_CRL *) | | X509_CRL_get0_lastUpdate | 0 | const X509_CRL * | +| (const X509_CRL *) | | X509_CRL_get0_nextUpdate | 0 | const X509_CRL * | +| (const X509_CRL *) | | X509_CRL_get_issuer | 0 | const X509_CRL * | +| (const X509_CRL *,const ASN1_BIT_STRING **,const X509_ALGOR **) | | X509_CRL_get0_signature | 0 | const X509_CRL * | +| (const X509_CRL *,const ASN1_BIT_STRING **,const X509_ALGOR **) | | X509_CRL_get0_signature | 1 | const ASN1_BIT_STRING ** | +| (const X509_CRL *,const ASN1_BIT_STRING **,const X509_ALGOR **) | | X509_CRL_get0_signature | 2 | const X509_ALGOR ** | +| (const X509_CRL *,const ASN1_OBJECT *,int) | | X509_CRL_get_ext_by_OBJ | 0 | const X509_CRL * | +| (const X509_CRL *,const ASN1_OBJECT *,int) | | X509_CRL_get_ext_by_OBJ | 1 | const ASN1_OBJECT * | +| (const X509_CRL *,const ASN1_OBJECT *,int) | | X509_CRL_get_ext_by_OBJ | 2 | int | +| (const X509_CRL *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_CRL_digest | 0 | const X509_CRL * | +| (const X509_CRL *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_CRL_digest | 1 | const EVP_MD * | +| (const X509_CRL *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_CRL_digest | 2 | unsigned char * | +| (const X509_CRL *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_CRL_digest | 3 | unsigned int * | +| (const X509_CRL *,const X509 *,int) | | OSSL_CMP_CRLSTATUS_create | 0 | const X509_CRL * | +| (const X509_CRL *,const X509 *,int) | | OSSL_CMP_CRLSTATUS_create | 1 | const X509 * | +| (const X509_CRL *,const X509 *,int) | | OSSL_CMP_CRLSTATUS_create | 2 | int | +| (const X509_CRL *,const X509_CRL *) | | X509_CRL_cmp | 0 | const X509_CRL * | +| (const X509_CRL *,const X509_CRL *) | | X509_CRL_cmp | 1 | const X509_CRL * | +| (const X509_CRL *,int) | | X509_CRL_get_ext | 0 | const X509_CRL * | +| (const X509_CRL *,int) | | X509_CRL_get_ext | 1 | int | +| (const X509_CRL *,int,int *,int *) | | X509_CRL_get_ext_d2i | 0 | const X509_CRL * | +| (const X509_CRL *,int,int *,int *) | | X509_CRL_get_ext_d2i | 1 | int | +| (const X509_CRL *,int,int *,int *) | | X509_CRL_get_ext_d2i | 2 | int * | +| (const X509_CRL *,int,int *,int *) | | X509_CRL_get_ext_d2i | 3 | int * | +| (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_NID | 0 | const X509_CRL * | +| (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_NID | 1 | int | +| (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_NID | 2 | int | +| (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_critical | 0 | const X509_CRL * | +| (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_critical | 1 | int | +| (const X509_CRL *,int,int) | | X509_CRL_get_ext_by_critical | 2 | int | +| (const X509_CRL *,unsigned char **) | | i2d_X509_CRL | 0 | const X509_CRL * | +| (const X509_CRL *,unsigned char **) | | i2d_X509_CRL | 1 | unsigned char ** | +| (const X509_CRL_INFO *,unsigned char **) | | i2d_X509_CRL_INFO | 0 | const X509_CRL_INFO * | +| (const X509_CRL_INFO *,unsigned char **) | | i2d_X509_CRL_INFO | 1 | unsigned char ** | +| (const X509_EXTENSION *) | | X509_EXTENSION_dup | 0 | const X509_EXTENSION * | +| (const X509_EXTENSION *,unsigned char **) | | i2d_X509_EXTENSION | 0 | const X509_EXTENSION * | +| (const X509_EXTENSION *,unsigned char **) | | i2d_X509_EXTENSION | 1 | unsigned char ** | +| (const X509_EXTENSIONS *,unsigned char **) | | i2d_X509_EXTENSIONS | 0 | const X509_EXTENSIONS * | +| (const X509_EXTENSIONS *,unsigned char **) | | i2d_X509_EXTENSIONS | 1 | unsigned char ** | +| (const X509_LOOKUP *) | | X509_LOOKUP_get_method_data | 0 | const X509_LOOKUP * | +| (const X509_LOOKUP *) | | X509_LOOKUP_get_store | 0 | const X509_LOOKUP * | +| (const X509_LOOKUP_METHOD *) | | X509_LOOKUP_meth_get_ctrl | 0 | const X509_LOOKUP_METHOD * | +| (const X509_LOOKUP_METHOD *) | | X509_LOOKUP_meth_get_free | 0 | const X509_LOOKUP_METHOD * | +| (const X509_LOOKUP_METHOD *) | | X509_LOOKUP_meth_get_get_by_alias | 0 | const X509_LOOKUP_METHOD * | +| (const X509_LOOKUP_METHOD *) | | X509_LOOKUP_meth_get_get_by_fingerprint | 0 | const X509_LOOKUP_METHOD * | +| (const X509_LOOKUP_METHOD *) | | X509_LOOKUP_meth_get_get_by_issuer_serial | 0 | const X509_LOOKUP_METHOD * | +| (const X509_LOOKUP_METHOD *) | | X509_LOOKUP_meth_get_get_by_subject | 0 | const X509_LOOKUP_METHOD * | +| (const X509_LOOKUP_METHOD *) | | X509_LOOKUP_meth_get_init | 0 | const X509_LOOKUP_METHOD * | +| (const X509_LOOKUP_METHOD *) | | X509_LOOKUP_meth_get_new_item | 0 | const X509_LOOKUP_METHOD * | +| (const X509_LOOKUP_METHOD *) | | X509_LOOKUP_meth_get_shutdown | 0 | const X509_LOOKUP_METHOD * | +| (const X509_NAME *) | | X509_NAME_dup | 0 | const X509_NAME * | +| (const X509_NAME *) | | X509_NAME_entry_count | 0 | const X509_NAME * | +| (const X509_NAME *) | | X509_NAME_hash_old | 0 | const X509_NAME * | +| (const X509_NAME *,OSSL_LIB_CTX *,const char *,int *) | | X509_NAME_hash_ex | 0 | const X509_NAME * | +| (const X509_NAME *,OSSL_LIB_CTX *,const char *,int *) | | X509_NAME_hash_ex | 1 | OSSL_LIB_CTX * | +| (const X509_NAME *,OSSL_LIB_CTX *,const char *,int *) | | X509_NAME_hash_ex | 2 | const char * | +| (const X509_NAME *,OSSL_LIB_CTX *,const char *,int *) | | X509_NAME_hash_ex | 3 | int * | +| (const X509_NAME *,char *,int) | | X509_NAME_oneline | 0 | const X509_NAME * | +| (const X509_NAME *,char *,int) | | X509_NAME_oneline | 1 | char * | +| (const X509_NAME *,char *,int) | | X509_NAME_oneline | 2 | int | +| (const X509_NAME *,const ASN1_INTEGER *) | | OSSL_CRMF_CERTID_gen | 0 | const X509_NAME * | +| (const X509_NAME *,const ASN1_INTEGER *) | | OSSL_CRMF_CERTID_gen | 1 | const ASN1_INTEGER * | +| (const X509_NAME *,const ASN1_OBJECT *,char *,int) | | X509_NAME_get_text_by_OBJ | 0 | const X509_NAME * | +| (const X509_NAME *,const ASN1_OBJECT *,char *,int) | | X509_NAME_get_text_by_OBJ | 1 | const ASN1_OBJECT * | +| (const X509_NAME *,const ASN1_OBJECT *,char *,int) | | X509_NAME_get_text_by_OBJ | 2 | char * | +| (const X509_NAME *,const ASN1_OBJECT *,char *,int) | | X509_NAME_get_text_by_OBJ | 3 | int | +| (const X509_NAME *,const ASN1_OBJECT *,int) | | X509_NAME_get_index_by_OBJ | 0 | const X509_NAME * | +| (const X509_NAME *,const ASN1_OBJECT *,int) | | X509_NAME_get_index_by_OBJ | 1 | const ASN1_OBJECT * | +| (const X509_NAME *,const ASN1_OBJECT *,int) | | X509_NAME_get_index_by_OBJ | 2 | int | +| (const X509_NAME *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_NAME_digest | 0 | const X509_NAME * | +| (const X509_NAME *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_NAME_digest | 1 | const EVP_MD * | +| (const X509_NAME *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_NAME_digest | 2 | unsigned char * | +| (const X509_NAME *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_NAME_digest | 3 | unsigned int * | +| (const X509_NAME *,const X509_NAME *) | | X509_NAME_cmp | 0 | const X509_NAME * | +| (const X509_NAME *,const X509_NAME *) | | X509_NAME_cmp | 1 | const X509_NAME * | +| (const X509_NAME *,const char **) | | OCSP_url_svcloc_new | 0 | const X509_NAME * | +| (const X509_NAME *,const char **) | | OCSP_url_svcloc_new | 1 | const char ** | +| (const X509_NAME *,const unsigned char **,size_t *) | | X509_NAME_get0_der | 0 | const X509_NAME * | +| (const X509_NAME *,const unsigned char **,size_t *) | | X509_NAME_get0_der | 1 | const unsigned char ** | +| (const X509_NAME *,const unsigned char **,size_t *) | | X509_NAME_get0_der | 2 | size_t * | +| (const X509_NAME *,int) | | X509_NAME_get_entry | 0 | const X509_NAME * | +| (const X509_NAME *,int) | | X509_NAME_get_entry | 1 | int | +| (const X509_NAME *,int,char *,int) | | X509_NAME_get_text_by_NID | 0 | const X509_NAME * | +| (const X509_NAME *,int,char *,int) | | X509_NAME_get_text_by_NID | 1 | int | +| (const X509_NAME *,int,char *,int) | | X509_NAME_get_text_by_NID | 2 | char * | +| (const X509_NAME *,int,char *,int) | | X509_NAME_get_text_by_NID | 3 | int | +| (const X509_NAME *,int,int) | | X509_NAME_get_index_by_NID | 0 | const X509_NAME * | +| (const X509_NAME *,int,int) | | X509_NAME_get_index_by_NID | 1 | int | +| (const X509_NAME *,int,int) | | X509_NAME_get_index_by_NID | 2 | int | +| (const X509_NAME *,unsigned char **) | | i2d_X509_NAME | 0 | const X509_NAME * | +| (const X509_NAME *,unsigned char **) | | i2d_X509_NAME | 1 | unsigned char ** | +| (const X509_NAME_ENTRY *) | | X509_NAME_ENTRY_dup | 0 | const X509_NAME_ENTRY * | +| (const X509_NAME_ENTRY *) | | X509_NAME_ENTRY_get_data | 0 | const X509_NAME_ENTRY * | +| (const X509_NAME_ENTRY *) | | X509_NAME_ENTRY_get_object | 0 | const X509_NAME_ENTRY * | +| (const X509_NAME_ENTRY *) | | X509_NAME_ENTRY_set | 0 | const X509_NAME_ENTRY * | +| (const X509_NAME_ENTRY *,unsigned char **) | | i2d_X509_NAME_ENTRY | 0 | const X509_NAME_ENTRY * | +| (const X509_NAME_ENTRY *,unsigned char **) | | i2d_X509_NAME_ENTRY | 1 | unsigned char ** | +| (const X509_OBJECT *) | | X509_OBJECT_get0_X509 | 0 | const X509_OBJECT * | +| (const X509_OBJECT *) | | X509_OBJECT_get0_X509_CRL | 0 | const X509_OBJECT * | +| (const X509_OBJECT *) | | X509_OBJECT_get_type | 0 | const X509_OBJECT * | +| (const X509_POLICY_CACHE *,const ASN1_OBJECT *) | | ossl_policy_cache_find_data | 0 | const X509_POLICY_CACHE * | +| (const X509_POLICY_CACHE *,const ASN1_OBJECT *) | | ossl_policy_cache_find_data | 1 | const ASN1_OBJECT * | +| (const X509_POLICY_LEVEL *,const X509_POLICY_NODE *,const ASN1_OBJECT *) | | ossl_policy_level_find_node | 0 | const X509_POLICY_LEVEL * | +| (const X509_POLICY_LEVEL *,const X509_POLICY_NODE *,const ASN1_OBJECT *) | | ossl_policy_level_find_node | 1 | const X509_POLICY_NODE * | +| (const X509_POLICY_LEVEL *,const X509_POLICY_NODE *,const ASN1_OBJECT *) | | ossl_policy_level_find_node | 2 | const ASN1_OBJECT * | +| (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 0 | const X509_POLICY_LEVEL * | +| (const X509_POLICY_LEVEL *,int) | | X509_policy_level_get0_node | 1 | int | +| (const X509_POLICY_NODE *) | | X509_policy_node_get0_parent | 0 | const X509_POLICY_NODE * | +| (const X509_POLICY_NODE *) | | X509_policy_node_get0_policy | 0 | const X509_POLICY_NODE * | +| (const X509_POLICY_NODE *) | | X509_policy_node_get0_qualifiers | 0 | const X509_POLICY_NODE * | +| (const X509_POLICY_TREE *) | | X509_policy_tree_get0_policies | 0 | const X509_POLICY_TREE * | +| (const X509_POLICY_TREE *) | | X509_policy_tree_get0_user_policies | 0 | const X509_POLICY_TREE * | +| (const X509_POLICY_TREE *) | | X509_policy_tree_level_count | 0 | const X509_POLICY_TREE * | +| (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 0 | const X509_POLICY_TREE * | +| (const X509_POLICY_TREE *,int) | | X509_policy_tree_get0_level | 1 | int | +| (const X509_PUBKEY *) | | X509_PUBKEY_dup | 0 | const X509_PUBKEY * | +| (const X509_PUBKEY *) | | X509_PUBKEY_get | 0 | const X509_PUBKEY * | +| (const X509_PUBKEY *) | | X509_PUBKEY_get0 | 0 | const X509_PUBKEY * | +| (const X509_PUBKEY *,unsigned char **) | | i2d_X509_PUBKEY | 0 | const X509_PUBKEY * | +| (const X509_PUBKEY *,unsigned char **) | | i2d_X509_PUBKEY | 1 | unsigned char ** | +| (const X509_PURPOSE *) | | X509_PURPOSE_get0_name | 0 | const X509_PURPOSE * | +| (const X509_PURPOSE *) | | X509_PURPOSE_get0_sname | 0 | const X509_PURPOSE * | +| (const X509_PURPOSE *) | | X509_PURPOSE_get_id | 0 | const X509_PURPOSE * | +| (const X509_PURPOSE *) | | X509_PURPOSE_get_trust | 0 | const X509_PURPOSE * | +| (const X509_REQ *) | | X509_REQ_dup | 0 | const X509_REQ * | +| (const X509_REQ *) | | X509_REQ_get_subject_name | 0 | const X509_REQ * | +| (const X509_REQ *,const ASN1_BIT_STRING **,const X509_ALGOR **) | | X509_REQ_get0_signature | 0 | const X509_REQ * | +| (const X509_REQ *,const ASN1_BIT_STRING **,const X509_ALGOR **) | | X509_REQ_get0_signature | 1 | const ASN1_BIT_STRING ** | +| (const X509_REQ *,const ASN1_BIT_STRING **,const X509_ALGOR **) | | X509_REQ_get0_signature | 2 | const X509_ALGOR ** | +| (const X509_REQ *,const ASN1_OBJECT *,int) | | X509_REQ_get_attr_by_OBJ | 0 | const X509_REQ * | +| (const X509_REQ *,const ASN1_OBJECT *,int) | | X509_REQ_get_attr_by_OBJ | 1 | const ASN1_OBJECT * | +| (const X509_REQ *,const ASN1_OBJECT *,int) | | X509_REQ_get_attr_by_OBJ | 2 | int | +| (const X509_REQ *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_REQ_digest | 0 | const X509_REQ * | +| (const X509_REQ *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_REQ_digest | 1 | const EVP_MD * | +| (const X509_REQ *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_REQ_digest | 2 | unsigned char * | +| (const X509_REQ *,const EVP_MD *,unsigned char *,unsigned int *) | | X509_REQ_digest | 3 | unsigned int * | +| (const X509_REQ *,int) | | X509_REQ_get_attr | 0 | const X509_REQ * | +| (const X509_REQ *,int) | | X509_REQ_get_attr | 1 | int | +| (const X509_REQ *,int,int) | | X509_REQ_get_attr_by_NID | 0 | const X509_REQ * | +| (const X509_REQ *,int,int) | | X509_REQ_get_attr_by_NID | 1 | int | +| (const X509_REQ *,int,int) | | X509_REQ_get_attr_by_NID | 2 | int | +| (const X509_REQ *,unsigned char **) | | i2d_X509_REQ | 0 | const X509_REQ * | +| (const X509_REQ *,unsigned char **) | | i2d_X509_REQ | 1 | unsigned char ** | +| (const X509_REQ_INFO *,unsigned char **) | | i2d_X509_REQ_INFO | 0 | const X509_REQ_INFO * | +| (const X509_REQ_INFO *,unsigned char **) | | i2d_X509_REQ_INFO | 1 | unsigned char ** | +| (const X509_REVOKED *) | | X509_REVOKED_dup | 0 | const X509_REVOKED * | +| (const X509_REVOKED *) | | X509_REVOKED_get0_extensions | 0 | const X509_REVOKED * | +| (const X509_REVOKED *) | | X509_REVOKED_get0_revocationDate | 0 | const X509_REVOKED * | +| (const X509_REVOKED *) | | X509_REVOKED_get0_serialNumber | 0 | const X509_REVOKED * | +| (const X509_REVOKED *) | | X509_REVOKED_get_ext_count | 0 | const X509_REVOKED * | +| (const X509_REVOKED *,const ASN1_OBJECT *,int) | | X509_REVOKED_get_ext_by_OBJ | 0 | const X509_REVOKED * | +| (const X509_REVOKED *,const ASN1_OBJECT *,int) | | X509_REVOKED_get_ext_by_OBJ | 1 | const ASN1_OBJECT * | +| (const X509_REVOKED *,const ASN1_OBJECT *,int) | | X509_REVOKED_get_ext_by_OBJ | 2 | int | +| (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 0 | const X509_REVOKED * | +| (const X509_REVOKED *,int) | | X509_REVOKED_get_ext | 1 | int | +| (const X509_REVOKED *,int,int *,int *) | | X509_REVOKED_get_ext_d2i | 0 | const X509_REVOKED * | +| (const X509_REVOKED *,int,int *,int *) | | X509_REVOKED_get_ext_d2i | 1 | int | +| (const X509_REVOKED *,int,int *,int *) | | X509_REVOKED_get_ext_d2i | 2 | int * | +| (const X509_REVOKED *,int,int *,int *) | | X509_REVOKED_get_ext_d2i | 3 | int * | +| (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 0 | const X509_REVOKED * | +| (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 1 | int | +| (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 2 | int | +| (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 0 | const X509_REVOKED * | +| (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 1 | int | +| (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | int | +| (const X509_REVOKED *,unsigned char **) | | i2d_X509_REVOKED | 0 | const X509_REVOKED * | +| (const X509_REVOKED *,unsigned char **) | | i2d_X509_REVOKED | 1 | unsigned char ** | +| (const X509_SIG *,const X509_ALGOR **,const ASN1_OCTET_STRING **) | | X509_SIG_get0 | 0 | const X509_SIG * | +| (const X509_SIG *,const X509_ALGOR **,const ASN1_OCTET_STRING **) | | X509_SIG_get0 | 1 | const X509_ALGOR ** | +| (const X509_SIG *,const X509_ALGOR **,const ASN1_OCTET_STRING **) | | X509_SIG_get0 | 2 | const ASN1_OCTET_STRING ** | +| (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 0 | const X509_SIG * | +| (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 1 | const char * | +| (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | int | +| (const X509_SIG *,const char *,int,OSSL_LIB_CTX *,const char *) | | PKCS8_decrypt_ex | 0 | const X509_SIG * | +| (const X509_SIG *,const char *,int,OSSL_LIB_CTX *,const char *) | | PKCS8_decrypt_ex | 1 | const char * | +| (const X509_SIG *,const char *,int,OSSL_LIB_CTX *,const char *) | | PKCS8_decrypt_ex | 2 | int | +| (const X509_SIG *,const char *,int,OSSL_LIB_CTX *,const char *) | | PKCS8_decrypt_ex | 3 | OSSL_LIB_CTX * | +| (const X509_SIG *,const char *,int,OSSL_LIB_CTX *,const char *) | | PKCS8_decrypt_ex | 4 | const char * | +| (const X509_SIG *,unsigned char **) | | i2d_X509_SIG | 0 | const X509_SIG * | +| (const X509_SIG *,unsigned char **) | | i2d_X509_SIG | 1 | unsigned char ** | +| (const X509_SIG_INFO *,int *,int *,int *,uint32_t *) | | X509_SIG_INFO_get | 0 | const X509_SIG_INFO * | +| (const X509_SIG_INFO *,int *,int *,int *,uint32_t *) | | X509_SIG_INFO_get | 1 | int * | +| (const X509_SIG_INFO *,int *,int *,int *,uint32_t *) | | X509_SIG_INFO_get | 2 | int * | +| (const X509_SIG_INFO *,int *,int *,int *,uint32_t *) | | X509_SIG_INFO_get | 3 | int * | +| (const X509_SIG_INFO *,int *,int *,int *,uint32_t *) | | X509_SIG_INFO_get | 4 | uint32_t * | +| (const X509_STORE *) | | X509_STORE_get0_objects | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get0_param | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_cert_crl | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_check_crl | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_check_issued | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_check_policy | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_check_revocation | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_cleanup | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_get_crl | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_get_issuer | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_lookup_certs | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_lookup_crls | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_verify | 0 | const X509_STORE * | +| (const X509_STORE *) | | X509_STORE_get_verify_cb | 0 | const X509_STORE * | +| (const X509_STORE *,int) | | X509_STORE_get_ex_data | 0 | const X509_STORE * | +| (const X509_STORE *,int) | | X509_STORE_get_ex_data | 1 | int | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get0_cert | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get0_chain | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get0_current_crl | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get0_current_issuer | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get0_param | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get0_parent_ctx | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get0_policy_tree | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get0_rpk | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get0_store | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get0_untrusted | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get1_chain | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_cert_crl | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_check_crl | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_check_issued | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_check_policy | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_check_revocation | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_cleanup | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_current_cert | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_error | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_error_depth | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_explicit_policy | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_get_crl | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_get_issuer | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_lookup_certs | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_lookup_crls | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_num_untrusted | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_verify | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *) | | X509_STORE_CTX_get_verify_cb | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 0 | const X509_STORE_CTX * | +| (const X509_STORE_CTX *,int) | | X509_STORE_CTX_get_ex_data | 1 | int | +| (const X509_TRUST *) | | X509_TRUST_get0_name | 0 | const X509_TRUST * | +| (const X509_TRUST *) | | X509_TRUST_get_flags | 0 | const X509_TRUST * | +| (const X509_TRUST *) | | X509_TRUST_get_trust | 0 | const X509_TRUST * | +| (const X509_VAL *,unsigned char **) | | i2d_X509_VAL | 0 | const X509_VAL * | +| (const X509_VAL *,unsigned char **) | | i2d_X509_VAL | 1 | unsigned char ** | +| (const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_get0_name | 0 | const X509_VERIFY_PARAM * | +| (const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_get0_peername | 0 | const X509_VERIFY_PARAM * | +| (const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_get_auth_level | 0 | const X509_VERIFY_PARAM * | +| (const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_get_depth | 0 | const X509_VERIFY_PARAM * | +| (const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_get_flags | 0 | const X509_VERIFY_PARAM * | +| (const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_get_hostflags | 0 | const X509_VERIFY_PARAM * | +| (const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_get_inh_flags | 0 | const X509_VERIFY_PARAM * | +| (const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_get_purpose | 0 | const X509_VERIFY_PARAM * | +| (const X509_VERIFY_PARAM *) | | X509_VERIFY_PARAM_get_time | 0 | const X509_VERIFY_PARAM * | | (const XCHAR *) | CStringT | CStringT | 0 | const XCHAR * | | (const XCHAR *,int) | CStringT | CStringT | 0 | const XCHAR * | | (const XCHAR *,int) | CStringT | CStringT | 1 | int | @@ -773,28 +24967,1344 @@ getSignatureParameterName | (const XCHAR *,int,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 0 | const XCHAR * | | (const XCHAR *,int,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 1 | int | | (const XCHAR *,int,IAtlStringMgr *) | CSimpleStringT | CSimpleStringT | 2 | IAtlStringMgr * | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | CRYPTO_xts128_encrypt | 0 | const XTS128_CONTEXT * | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | CRYPTO_xts128_encrypt | 1 | const unsigned char[16] | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | CRYPTO_xts128_encrypt | 2 | const unsigned char * | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | CRYPTO_xts128_encrypt | 3 | unsigned char * | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | CRYPTO_xts128_encrypt | 4 | size_t | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | CRYPTO_xts128_encrypt | 5 | int | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | ossl_crypto_xts128gb_encrypt | 0 | const XTS128_CONTEXT * | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | ossl_crypto_xts128gb_encrypt | 1 | const unsigned char[16] | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | ossl_crypto_xts128gb_encrypt | 2 | const unsigned char * | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | ossl_crypto_xts128gb_encrypt | 3 | unsigned char * | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | ossl_crypto_xts128gb_encrypt | 4 | size_t | +| (const XTS128_CONTEXT *,const unsigned char[16],const unsigned char *,unsigned char *,size_t,int) | | ossl_crypto_xts128gb_encrypt | 5 | int | | (const YCHAR *) | CStringT | CStringT | 0 | const YCHAR * | | (const YCHAR *,int) | CStringT | CStringT | 0 | const YCHAR * | | (const YCHAR *,int) | CStringT | CStringT | 1 | int | | (const YCHAR *,int,IAtlStringMgr *) | CStringT | CStringT | 0 | const YCHAR * | | (const YCHAR *,int,IAtlStringMgr *) | CStringT | CStringT | 1 | int | | (const YCHAR *,int,IAtlStringMgr *) | CStringT | CStringT | 2 | IAtlStringMgr * | +| (const char *) | | BIO_gethostbyname | 0 | const char * | +| (const char *) | | Jim_StrDup | 0 | const char * | +| (const char *) | | OPENSSL_LH_strhash | 0 | const char * | +| (const char *) | | OSSL_STORE_SEARCH_by_alias | 0 | const char * | +| (const char *) | | Strsafe | 0 | const char * | +| (const char *) | | Symbol_new | 0 | const char * | +| (const char *) | | UI_create_method | 0 | const char * | +| (const char *) | | X509V3_parse_list | 0 | const char * | +| (const char *) | | X509_LOOKUP_meth_new | 0 | const char * | +| (const char *) | | a2i_IPADDRESS | 0 | const char * | +| (const char *) | | a2i_IPADDRESS_NC | 0 | const char * | +| (const char *) | | new_pkcs12_builder | 0 | const char * | +| (const char *) | | opt_path_end | 0 | const char * | +| (const char *) | | opt_progname | 0 | const char * | +| (const char *) | | ossl_lh_strcasehash | 0 | const char * | +| (const char *) | | strhash | 0 | const char * | +| (const char **) | | ERR_peek_error_func | 0 | const char ** | +| (const char **) | | ERR_peek_last_error_func | 0 | const char ** | +| (const char **,int *) | | ERR_get_error_line | 0 | const char ** | +| (const char **,int *) | | ERR_get_error_line | 1 | int * | +| (const char **,int *) | | ERR_peek_error_data | 0 | const char ** | +| (const char **,int *) | | ERR_peek_error_data | 1 | int * | +| (const char **,int *) | | ERR_peek_error_line | 0 | const char ** | +| (const char **,int *) | | ERR_peek_error_line | 1 | int * | +| (const char **,int *) | | ERR_peek_last_error_data | 0 | const char ** | +| (const char **,int *) | | ERR_peek_last_error_data | 1 | int * | +| (const char **,int *) | | ERR_peek_last_error_line | 0 | const char ** | +| (const char **,int *) | | ERR_peek_last_error_line | 1 | int * | +| (const char **,int *,const char **,const char **,int *) | | ERR_get_error_all | 0 | const char ** | +| (const char **,int *,const char **,const char **,int *) | | ERR_get_error_all | 1 | int * | +| (const char **,int *,const char **,const char **,int *) | | ERR_get_error_all | 2 | const char ** | +| (const char **,int *,const char **,const char **,int *) | | ERR_get_error_all | 3 | const char ** | +| (const char **,int *,const char **,const char **,int *) | | ERR_get_error_all | 4 | int * | +| (const char **,int *,const char **,const char **,int *) | | ERR_peek_error_all | 0 | const char ** | +| (const char **,int *,const char **,const char **,int *) | | ERR_peek_error_all | 1 | int * | +| (const char **,int *,const char **,const char **,int *) | | ERR_peek_error_all | 2 | const char ** | +| (const char **,int *,const char **,const char **,int *) | | ERR_peek_error_all | 3 | const char ** | +| (const char **,int *,const char **,const char **,int *) | | ERR_peek_error_all | 4 | int * | +| (const char **,int *,const char **,const char **,int *) | | ERR_peek_last_error_all | 0 | const char ** | +| (const char **,int *,const char **,const char **,int *) | | ERR_peek_last_error_all | 1 | int * | +| (const char **,int *,const char **,const char **,int *) | | ERR_peek_last_error_all | 2 | const char ** | +| (const char **,int *,const char **,const char **,int *) | | ERR_peek_last_error_all | 3 | const char ** | +| (const char **,int *,const char **,const char **,int *) | | ERR_peek_last_error_all | 4 | int * | +| (const char **,int *,const char **,int *) | | ERR_get_error_line_data | 0 | const char ** | +| (const char **,int *,const char **,int *) | | ERR_get_error_line_data | 1 | int * | +| (const char **,int *,const char **,int *) | | ERR_get_error_line_data | 2 | const char ** | +| (const char **,int *,const char **,int *) | | ERR_get_error_line_data | 3 | int * | +| (const char **,int *,const char **,int *) | | ERR_peek_error_line_data | 0 | const char ** | +| (const char **,int *,const char **,int *) | | ERR_peek_error_line_data | 1 | int * | +| (const char **,int *,const char **,int *) | | ERR_peek_error_line_data | 2 | const char ** | +| (const char **,int *,const char **,int *) | | ERR_peek_error_line_data | 3 | int * | +| (const char **,int *,const char **,int *) | | ERR_peek_last_error_line_data | 0 | const char ** | +| (const char **,int *,const char **,int *) | | ERR_peek_last_error_line_data | 1 | int * | +| (const char **,int *,const char **,int *) | | ERR_peek_last_error_line_data | 2 | const char ** | +| (const char **,int *,const char **,int *) | | ERR_peek_last_error_line_data | 3 | int * | +| (const char *,BIO *,BIO *,int) | | X509_CRL_load_http | 0 | const char * | +| (const char *,BIO *,BIO *,int) | | X509_CRL_load_http | 1 | BIO * | +| (const char *,BIO *,BIO *,int) | | X509_CRL_load_http | 2 | BIO * | +| (const char *,BIO *,BIO *,int) | | X509_CRL_load_http | 3 | int | +| (const char *,BIO *,BIO *,int) | | X509_load_http | 0 | const char * | +| (const char *,BIO *,BIO *,int) | | X509_load_http | 1 | BIO * | +| (const char *,BIO *,BIO *,int) | | X509_load_http | 2 | BIO * | +| (const char *,BIO *,BIO *,int) | | X509_load_http | 3 | int | +| (const char *,BIO *,int,const char *,const ASN1_ITEM *,const ASN1_VALUE *) | | http_server_send_asn1_resp | 0 | const char * | +| (const char *,BIO *,int,const char *,const ASN1_ITEM *,const ASN1_VALUE *) | | http_server_send_asn1_resp | 1 | BIO * | +| (const char *,BIO *,int,const char *,const ASN1_ITEM *,const ASN1_VALUE *) | | http_server_send_asn1_resp | 2 | int | +| (const char *,BIO *,int,const char *,const ASN1_ITEM *,const ASN1_VALUE *) | | http_server_send_asn1_resp | 3 | const char * | +| (const char *,BIO *,int,const char *,const ASN1_ITEM *,const ASN1_VALUE *) | | http_server_send_asn1_resp | 4 | const ASN1_ITEM * | +| (const char *,BIO *,int,const char *,const ASN1_ITEM *,const ASN1_VALUE *) | | http_server_send_asn1_resp | 5 | const ASN1_VALUE * | +| (const char *,BIT_STRING_BITNAME *) | | ASN1_BIT_STRING_num_asc | 0 | const char * | +| (const char *,BIT_STRING_BITNAME *) | | ASN1_BIT_STRING_num_asc | 1 | BIT_STRING_BITNAME * | +| (const char *,DB_ATTR *) | | load_index | 0 | const char * | +| (const char *,DB_ATTR *) | | load_index | 1 | DB_ATTR * | +| (const char *,DES_cblock *) | | DES_string_to_key | 0 | const char * | +| (const char *,DES_cblock *) | | DES_string_to_key | 1 | DES_cblock * | +| (const char *,DES_cblock *,DES_cblock *) | | DES_string_to_2keys | 0 | const char * | +| (const char *,DES_cblock *,DES_cblock *) | | DES_string_to_2keys | 1 | DES_cblock * | +| (const char *,DES_cblock *,DES_cblock *) | | DES_string_to_2keys | 2 | DES_cblock * | +| (const char *,EVP_CIPHER **) | | opt_cipher_any | 0 | const char * | +| (const char *,EVP_CIPHER **) | | opt_cipher_any | 1 | EVP_CIPHER ** | +| (const char *,EVP_CIPHER **) | | opt_cipher_silent | 0 | const char * | +| (const char *,EVP_CIPHER **) | | opt_cipher_silent | 1 | EVP_CIPHER ** | +| (const char *,EVP_MD **) | | opt_md | 0 | const char * | +| (const char *,EVP_MD **) | | opt_md | 1 | EVP_MD ** | +| (const char *,EVP_MD **) | | opt_md_silent | 0 | const char * | +| (const char *,EVP_MD **) | | opt_md_silent | 1 | EVP_MD ** | +| (const char *,OSSL_CMP_severity *,char **,char **,int *) | | ossl_cmp_log_parse_metadata | 0 | const char * | +| (const char *,OSSL_CMP_severity *,char **,char **,int *) | | ossl_cmp_log_parse_metadata | 1 | OSSL_CMP_severity * | +| (const char *,OSSL_CMP_severity *,char **,char **,int *) | | ossl_cmp_log_parse_metadata | 2 | char ** | +| (const char *,OSSL_CMP_severity *,char **,char **,int *) | | ossl_cmp_log_parse_metadata | 3 | char ** | +| (const char *,OSSL_CMP_severity *,char **,char **,int *) | | ossl_cmp_log_parse_metadata | 4 | int * | +| (const char *,OSSL_LIB_CTX *) | | load_cert_pem | 0 | const char * | +| (const char *,OSSL_LIB_CTX *) | | load_cert_pem | 1 | OSSL_LIB_CTX * | +| (const char *,OSSL_LIB_CTX *) | | load_csr_der | 0 | const char * | +| (const char *,OSSL_LIB_CTX *) | | load_csr_der | 1 | OSSL_LIB_CTX * | +| (const char *,OSSL_LIB_CTX *) | | load_pkimsg | 0 | const char * | +| (const char *,OSSL_LIB_CTX *) | | load_pkimsg | 1 | OSSL_LIB_CTX * | +| (const char *,OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_read | 0 | const char * | +| (const char *,OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_read | 1 | OSSL_LIB_CTX * | +| (const char *,OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_read | 2 | const char * | +| (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 0 | const char * | +| (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 1 | OSSL_LIB_CTX * | +| (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 2 | const char * | +| (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 3 | const UI_METHOD * | +| (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 4 | void * | +| (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 5 | const OSSL_PARAM[] | +| (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 6 | OSSL_STORE_post_process_info_fn | +| (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 7 | void * | +| (const char *,SD *,int) | | sd_load | 0 | const char * | +| (const char *,SD *,int) | | sd_load | 1 | SD * | +| (const char *,SD *,int) | | sd_load | 2 | int | +| (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 0 | const char * | +| (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 1 | X509 ** | +| (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 2 | stack_st_X509 ** | +| (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 3 | int | +| (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 4 | const char * | +| (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 5 | const char * | +| (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 6 | X509_VERIFY_PARAM * | +| (const char *,char *) | | sha1sum_file | 0 | const char * | +| (const char *,char *) | | sha1sum_file | 1 | char * | +| (const char *,char *) | | sha3sum_file | 0 | const char * | +| (const char *,char *) | | sha3sum_file | 1 | char * | +| (const char *,char **,char **,BIO_hostserv_priorities) | | BIO_parse_hostserv | 0 | const char * | +| (const char *,char **,char **,BIO_hostserv_priorities) | | BIO_parse_hostserv | 1 | char ** | +| (const char *,char **,char **,BIO_hostserv_priorities) | | BIO_parse_hostserv | 2 | char ** | +| (const char *,char **,char **,BIO_hostserv_priorities) | | BIO_parse_hostserv | 3 | BIO_hostserv_priorities | +| (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 0 | const char * | +| (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 1 | char ** | +| (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 2 | char ** | +| (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 3 | char ** | +| (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 4 | char ** | +| (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 5 | int * | +| (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 6 | char ** | +| (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 7 | char ** | +| (const char *,char **,char **,char **,char **,int *,char **,char **,char **) | | OSSL_parse_url | 8 | char ** | +| (const char *,char **,int,unsigned long *) | | OPENSSL_strtoul | 0 | const char * | +| (const char *,char **,int,unsigned long *) | | OPENSSL_strtoul | 1 | char ** | +| (const char *,char **,int,unsigned long *) | | OPENSSL_strtoul | 2 | int | +| (const char *,char **,int,unsigned long *) | | OPENSSL_strtoul | 3 | unsigned long * | +| (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 0 | const char * | +| (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 1 | char ** | +| (const char *,char **,size_t) | | OSSL_PARAM_construct_utf8_ptr | 2 | size_t | +| (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 0 | const char * | +| (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 1 | char * | +| (const char *,char *,size_t) | | OSSL_PARAM_construct_utf8_string | 2 | size_t | +| (const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **) | | X509V3_add_value_int | 0 | const char * | +| (const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **) | | X509V3_add_value_int | 1 | const ASN1_INTEGER * | +| (const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **) | | X509V3_add_value_int | 2 | stack_st_CONF_VALUE ** | +| (const char *,const BIGNUM *) | | test_output_bignum | 0 | const char * | +| (const char *,const BIGNUM *) | | test_output_bignum | 1 | const BIGNUM * | +| (const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *) | | ossl_ml_common_pkcs8_fmt_order | 0 | const char * | +| (const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *) | | ossl_ml_common_pkcs8_fmt_order | 1 | const ML_COMMON_PKCS8_FMT * | +| (const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *) | | ossl_ml_common_pkcs8_fmt_order | 2 | const char * | +| (const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *) | | ossl_ml_common_pkcs8_fmt_order | 3 | const char * | +| (const char *,const OPT_PAIR *,int *) | | opt_pair | 0 | const char * | +| (const char *,const OPT_PAIR *,int *) | | opt_pair | 1 | const OPT_PAIR * | +| (const char *,const OPT_PAIR *,int *) | | opt_pair | 2 | int * | +| (const char *,const OSSL_PARAM *,int) | | print_param_types | 0 | const char * | +| (const char *,const OSSL_PARAM *,int) | | print_param_types | 1 | const OSSL_PARAM * | +| (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | int | +| (const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open | 0 | const char * | +| (const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open | 1 | const UI_METHOD * | +| (const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open | 2 | void * | +| (const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open | 3 | OSSL_STORE_post_process_info_fn | +| (const char *,const UI_METHOD *,void *,OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open | 4 | void * | +| (const char *,const char *) | | Configcmp | 0 | const char * | +| (const char *,const char *) | | Configcmp | 1 | const char * | +| (const char *,const char *) | | DES_crypt | 0 | const char * | +| (const char *,const char *) | | DES_crypt | 1 | const char * | +| (const char *,const char *) | | OPENSSL_strcasecmp | 0 | const char * | +| (const char *,const char *) | | OPENSSL_strcasecmp | 1 | const char * | +| (const char *,const char *) | | get_passwd | 0 | const char * | +| (const char *,const char *) | | get_passwd | 1 | const char * | +| (const char *,const char *) | | openssl_fopen | 0 | const char * | +| (const char *,const char *) | | openssl_fopen | 1 | const char * | +| (const char *,const char *) | | ossl_pem_check_suffix | 0 | const char * | +| (const char *,const char *) | | ossl_pem_check_suffix | 1 | const char * | +| (const char *,const char *) | | ossl_v3_name_cmp | 0 | const char * | +| (const char *,const char *) | | ossl_v3_name_cmp | 1 | const char * | +| (const char *,const char *) | | sqlite3_strglob | 0 | const char * | +| (const char *,const char *) | | sqlite3_strglob | 1 | const char * | +| (const char *,const char *) | | sqlite3_stricmp | 0 | const char * | +| (const char *,const char *) | | sqlite3_stricmp | 1 | const char * | +| (const char *,const char *) | | test_mk_file_path | 0 | const char * | +| (const char *,const char *) | | test_mk_file_path | 1 | const char * | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 0 | const char * | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 1 | const char * | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 2 | BIGNUM ** | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 3 | BIGNUM ** | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 4 | const BIGNUM * | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 5 | const BIGNUM * | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_BN_ex | 0 | const char * | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_BN_ex | 1 | const char * | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_BN_ex | 2 | BIGNUM ** | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_BN_ex | 3 | BIGNUM ** | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_BN_ex | 4 | const BIGNUM * | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_BN_ex | 5 | const BIGNUM * | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_BN_ex | 6 | OSSL_LIB_CTX * | +| (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_BN_ex | 7 | const char * | +| (const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **) | | BIO_lookup | 0 | const char * | +| (const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **) | | BIO_lookup | 1 | const char * | +| (const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **) | | BIO_lookup | 2 | BIO_lookup_type | +| (const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **) | | BIO_lookup | 3 | int | +| (const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **) | | BIO_lookup | 4 | int | +| (const char *,const char *,BIO_lookup_type,int,int,BIO_ADDRINFO **) | | BIO_lookup | 5 | BIO_ADDRINFO ** | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int) | | PKCS12_create | 0 | const char * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int) | | PKCS12_create | 1 | const char * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int) | | PKCS12_create | 2 | EVP_PKEY * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int) | | PKCS12_create | 3 | X509 * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int) | | PKCS12_create | 4 | stack_st_X509 * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int) | | PKCS12_create | 5 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int) | | PKCS12_create | 6 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int) | | PKCS12_create | 7 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int) | | PKCS12_create | 8 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int) | | PKCS12_create | 9 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 0 | const char * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 1 | const char * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 2 | EVP_PKEY * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 3 | X509 * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 4 | stack_st_X509 * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 5 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 6 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 7 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 8 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 9 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 10 | OSSL_LIB_CTX * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *) | | PKCS12_create_ex | 11 | const char * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 0 | const char * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 1 | const char * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 2 | EVP_PKEY * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 3 | X509 * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 4 | stack_st_X509 * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 5 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 6 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 7 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 8 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 9 | int | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 10 | OSSL_LIB_CTX * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 11 | const char * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 12 | PKCS12_create_cb * | +| (const char *,const char *,EVP_PKEY *,X509 *,stack_st_X509 *,int,int,int,int,int,OSSL_LIB_CTX *,const char *,PKCS12_create_cb *,void *) | | PKCS12_create_ex2 | 13 | void * | +| (const char *,const char *,char *) | | DES_fcrypt | 0 | const char * | +| (const char *,const char *,char *) | | DES_fcrypt | 1 | const char * | +| (const char *,const char *,char *) | | DES_fcrypt | 2 | char * | +| (const char *,const char *,char **,char **) | | app_passwd | 0 | const char * | +| (const char *,const char *,char **,char **) | | app_passwd | 1 | const char * | +| (const char *,const char *,char **,char **) | | app_passwd | 2 | char ** | +| (const char *,const char *,char **,char **) | | app_passwd | 3 | char ** | +| (const char *,const char *,char **,char **,const char *,const char *) | | SRP_create_verifier | 0 | const char * | +| (const char *,const char *,char **,char **,const char *,const char *) | | SRP_create_verifier | 1 | const char * | +| (const char *,const char *,char **,char **,const char *,const char *) | | SRP_create_verifier | 2 | char ** | +| (const char *,const char *,char **,char **,const char *,const char *) | | SRP_create_verifier | 3 | char ** | +| (const char *,const char *,char **,char **,const char *,const char *) | | SRP_create_verifier | 4 | const char * | +| (const char *,const char *,char **,char **,const char *,const char *) | | SRP_create_verifier | 5 | const char * | +| (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 0 | const char * | +| (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 1 | const char * | +| (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 2 | char ** | +| (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 3 | char ** | +| (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 4 | const char * | +| (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 5 | const char * | +| (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 6 | OSSL_LIB_CTX * | +| (const char *,const char *,char **,char **,const char *,const char *,OSSL_LIB_CTX *,const char *) | | SRP_create_verifier_ex | 7 | const char * | +| (const char *,const char *,const BIGNUM *,ASN1_INTEGER **) | | save_serial | 0 | const char * | +| (const char *,const char *,const BIGNUM *,ASN1_INTEGER **) | | save_serial | 1 | const char * | +| (const char *,const char *,const BIGNUM *,ASN1_INTEGER **) | | save_serial | 2 | const BIGNUM * | +| (const char *,const char *,const BIGNUM *,ASN1_INTEGER **) | | save_serial | 3 | ASN1_INTEGER ** | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 0 | const char * | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 1 | const char * | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 2 | const char * | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 3 | BIO * | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 4 | BIO * | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 5 | OSSL_HTTP_bio_cb_t | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 6 | void * | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 7 | int | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 8 | const stack_st_CONF_VALUE * | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 9 | const char * | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 10 | int | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 11 | size_t | +| (const char *,const char *,const char *,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,const stack_st_CONF_VALUE *,const char *,int,size_t,int) | | OSSL_HTTP_get | 12 | int | +| (const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *) | | app_http_get_asn1 | 0 | const char * | +| (const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *) | | app_http_get_asn1 | 1 | const char * | +| (const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *) | | app_http_get_asn1 | 2 | const char * | +| (const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *) | | app_http_get_asn1 | 3 | SSL_CTX * | +| (const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *) | | app_http_get_asn1 | 4 | const stack_st_CONF_VALUE * | +| (const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *) | | app_http_get_asn1 | 5 | long | +| (const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *) | | app_http_get_asn1 | 6 | const char * | +| (const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *) | | app_http_get_asn1 | 7 | const ASN1_ITEM * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 0 | const char * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 1 | const char * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 2 | const char * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 3 | const char * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 4 | const char * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 5 | SSL_CTX * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 6 | const stack_st_CONF_VALUE * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 7 | const char * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 8 | ASN1_VALUE * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 9 | const ASN1_ITEM * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 10 | const char * | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 11 | long | +| (const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *) | | app_http_post_asn1 | 12 | const ASN1_ITEM * | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 0 | const char * | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 1 | const char * | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 2 | const char * | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 3 | const char * | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 4 | int | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 5 | BIO * | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 6 | BIO * | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 7 | OSSL_HTTP_bio_cb_t | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 8 | void * | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 9 | int | +| (const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int) | | OSSL_HTTP_open | 10 | int | +| (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 0 | const char * | +| (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 1 | const char * | +| (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 2 | const char * | +| (const char *,const char *,const char *,int) | | OSSL_HTTP_adapt_proxy | 3 | int | +| (const char *,const char *,int) | | CRYPTO_strdup | 0 | const char * | +| (const char *,const char *,int) | | CRYPTO_strdup | 1 | const char * | +| (const char *,const char *,int) | | CRYPTO_strdup | 2 | int | +| (const char *,const char *,int) | | sqlite3_strnicmp | 0 | const char * | +| (const char *,const char *,int) | | sqlite3_strnicmp | 1 | const char * | +| (const char *,const char *,int) | | sqlite3_strnicmp | 2 | int | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 0 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 1 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 2 | int | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 3 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 4 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 5 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 6 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 7 | const BIGNUM * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 0 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 1 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 2 | int | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 3 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 4 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 5 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 6 | const char * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 7 | const BIGNUM * | +| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 8 | const BIGNUM * | +| (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 0 | const char * | +| (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 1 | const char * | +| (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 2 | int | +| (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 3 | int | +| (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 4 | int | +| (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 5 | int | +| (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 6 | BIO_ADDRINFO ** | +| (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 0 | const char * | +| (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 1 | const char * | +| (const char *,const char *,size_t) | | OPENSSL_strncasecmp | 2 | size_t | +| (const char *,const char *,stack_st_CONF_VALUE **) | | X509V3_add_value | 0 | const char * | +| (const char *,const char *,stack_st_CONF_VALUE **) | | X509V3_add_value | 1 | const char * | +| (const char *,const char *,stack_st_CONF_VALUE **) | | X509V3_add_value | 2 | stack_st_CONF_VALUE ** | +| (const char *,const char *,unsigned int) | | sqlite3_strlike | 0 | const char * | +| (const char *,const char *,unsigned int) | | sqlite3_strlike | 1 | const char * | +| (const char *,const char *,unsigned int) | | sqlite3_strlike | 2 | unsigned int | +| (const char *,const size_t,unsigned int *,unsigned int *) | | ossl_punycode_decode | 0 | const char * | +| (const char *,const size_t,unsigned int *,unsigned int *) | | ossl_punycode_decode | 1 | const size_t | +| (const char *,const size_t,unsigned int *,unsigned int *) | | ossl_punycode_decode | 2 | unsigned int * | +| (const char *,const size_t,unsigned int *,unsigned int *) | | ossl_punycode_decode | 3 | unsigned int * | +| (const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **) | | x509v3_add_len_value_uchar | 0 | const char * | +| (const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **) | | x509v3_add_len_value_uchar | 1 | const unsigned char * | +| (const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **) | | x509v3_add_len_value_uchar | 2 | size_t | +| (const char *,const unsigned char *,size_t,stack_st_CONF_VALUE **) | | x509v3_add_len_value_uchar | 3 | stack_st_CONF_VALUE ** | +| (const char *,const unsigned char *,stack_st_CONF_VALUE **) | | X509V3_add_value_uchar | 0 | const char * | +| (const char *,const unsigned char *,stack_st_CONF_VALUE **) | | X509V3_add_value_uchar | 1 | const unsigned char * | +| (const char *,const unsigned char *,stack_st_CONF_VALUE **) | | X509V3_add_value_uchar | 2 | stack_st_CONF_VALUE ** | +| (const char *,double *) | | Jim_StringToDouble | 0 | const char * | +| (const char *,double *) | | Jim_StringToDouble | 1 | double * | +| (const char *,double *) | | OSSL_PARAM_construct_double | 0 | const char * | +| (const char *,double *) | | OSSL_PARAM_construct_double | 1 | double * | +| (const char *,int32_t *) | | OSSL_PARAM_construct_int32 | 0 | const char * | +| (const char *,int32_t *) | | OSSL_PARAM_construct_int32 | 1 | int32_t * | +| (const char *,int64_t *) | | OSSL_PARAM_construct_int64 | 0 | const char * | +| (const char *,int64_t *) | | OSSL_PARAM_construct_int64 | 1 | int64_t * | +| (const char *,int *) | | OSSL_PARAM_construct_int | 0 | const char * | +| (const char *,int *) | | OSSL_PARAM_construct_int | 1 | int * | +| (const char *,int *) | | opt_int | 0 | const char * | +| (const char *,int *) | | opt_int | 1 | int * | +| (const char *,int *,char **,char **,char **,int *,char **,char **,char **) | | OSSL_HTTP_parse_url | 0 | const char * | +| (const char *,int *,char **,char **,char **,int *,char **,char **,char **) | | OSSL_HTTP_parse_url | 1 | int * | +| (const char *,int *,char **,char **,char **,int *,char **,char **,char **) | | OSSL_HTTP_parse_url | 2 | char ** | +| (const char *,int *,char **,char **,char **,int *,char **,char **,char **) | | OSSL_HTTP_parse_url | 3 | char ** | +| (const char *,int *,char **,char **,char **,int *,char **,char **,char **) | | OSSL_HTTP_parse_url | 4 | char ** | +| (const char *,int *,char **,char **,char **,int *,char **,char **,char **) | | OSSL_HTTP_parse_url | 5 | int * | +| (const char *,int *,char **,char **,char **,int *,char **,char **,char **) | | OSSL_HTTP_parse_url | 6 | char ** | +| (const char *,int *,char **,char **,char **,int *,char **,char **,char **) | | OSSL_HTTP_parse_url | 7 | char ** | +| (const char *,int *,char **,char **,char **,int *,char **,char **,char **) | | OSSL_HTTP_parse_url | 8 | char ** | +| (const char *,int) | | DH_meth_new | 0 | const char * | +| (const char *,int) | | DH_meth_new | 1 | int | +| (const char *,int) | | DSA_meth_new | 0 | const char * | +| (const char *,int) | | DSA_meth_new | 1 | int | +| (const char *,int) | | Jim_StrDupLen | 0 | const char * | +| (const char *,int) | | Jim_StrDupLen | 1 | int | +| (const char *,int) | | NETSCAPE_SPKI_b64_decode | 0 | const char * | +| (const char *,int) | | NETSCAPE_SPKI_b64_decode | 1 | int | +| (const char *,int) | | RSA_meth_new | 0 | const char * | +| (const char *,int) | | RSA_meth_new | 1 | int | +| (const char *,int) | | parse_yesno | 0 | const char * | +| (const char *,int) | | parse_yesno | 1 | int | +| (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *) | | PKCS8_set0_pbe | 0 | const char * | +| (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *) | | PKCS8_set0_pbe | 1 | int | +| (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *) | | PKCS8_set0_pbe | 2 | PKCS8_PRIV_KEY_INFO * | +| (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *) | | PKCS8_set0_pbe | 3 | X509_ALGOR * | +| (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 0 | const char * | +| (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 1 | int | +| (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 2 | PKCS8_PRIV_KEY_INFO * | +| (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 3 | X509_ALGOR * | +| (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 4 | OSSL_LIB_CTX * | +| (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 5 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_one | 0 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_one | 1 | int | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_one | 2 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_one | 3 | const BIGNUM * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_zero | 0 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_zero | 1 | int | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_zero | 2 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_zero | 3 | const BIGNUM * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_even | 0 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_even | 1 | int | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_even | 2 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_even | 3 | const BIGNUM * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_ge_zero | 0 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_ge_zero | 1 | int | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_ge_zero | 2 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_ge_zero | 3 | const BIGNUM * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_gt_zero | 0 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_gt_zero | 1 | int | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_gt_zero | 2 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_gt_zero | 3 | const BIGNUM * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_le_zero | 0 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_le_zero | 1 | int | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_le_zero | 2 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_le_zero | 3 | const BIGNUM * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_lt_zero | 0 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_lt_zero | 1 | int | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_lt_zero | 2 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_lt_zero | 3 | const BIGNUM * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_ne_zero | 0 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_ne_zero | 1 | int | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_ne_zero | 2 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_ne_zero | 3 | const BIGNUM * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_odd | 0 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_odd | 1 | int | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_odd | 2 | const char * | +| (const char *,int,const char *,const BIGNUM *) | | test_BN_odd | 3 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 0 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 1 | int | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 2 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 3 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 4 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 5 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 0 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 1 | int | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 2 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 3 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 4 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 5 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 0 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 1 | int | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 2 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 3 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 4 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 5 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 0 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 1 | int | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 2 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 3 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 4 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 5 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 0 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 1 | int | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 2 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 3 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 4 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 5 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 0 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 1 | int | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 2 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 3 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 4 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 5 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 0 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 1 | int | +| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 2 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 3 | const char * | +| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 4 | const BIGNUM * | +| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 5 | unsigned long | +| (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 0 | const char * | +| (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 1 | int | +| (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 2 | int | +| (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 3 | ..(*)(..) | +| (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 4 | void * | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 0 | const char * | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 1 | int | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 2 | int | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 3 | const char * | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 4 | const char * | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 5 | int | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 6 | EVP_PKEY ** | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 7 | EVP_PKEY ** | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 8 | EVP_PKEY ** | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 9 | X509 ** | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 10 | stack_st_X509 ** | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 11 | X509_CRL ** | +| (const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **) | | load_key_certs_crls | 12 | stack_st_X509_CRL ** | +| (const char *,int,int,int) | | append_str | 0 | const char * | +| (const char *,int,int,int) | | append_str | 1 | int | +| (const char *,int,int,int) | | append_str | 2 | int | +| (const char *,int,int,int) | | append_str | 3 | int | +| (const char *,int,long) | | zSkipValidUtf8 | 0 | const char * | +| (const char *,int,long) | | zSkipValidUtf8 | 1 | int | +| (const char *,int,long) | | zSkipValidUtf8 | 2 | long | +| (const char *,int,stack_st_CONF_VALUE **) | | X509V3_add_value_bool | 0 | const char * | +| (const char *,int,stack_st_CONF_VALUE **) | | X509V3_add_value_bool | 1 | int | +| (const char *,int,stack_st_CONF_VALUE **) | | X509V3_add_value_bool | 2 | stack_st_CONF_VALUE ** | +| (const char *,int,stack_st_CONF_VALUE **) | | X509V3_add_value_bool_nf | 0 | const char * | +| (const char *,int,stack_st_CONF_VALUE **) | | X509V3_add_value_bool_nf | 1 | int | +| (const char *,int,stack_st_CONF_VALUE **) | | X509V3_add_value_bool_nf | 2 | stack_st_CONF_VALUE ** | +| (const char *,int,stack_st_OPENSSL_STRING *,const char *) | | load_csr_autofmt | 0 | const char * | +| (const char *,int,stack_st_OPENSSL_STRING *,const char *) | | load_csr_autofmt | 1 | int | +| (const char *,int,stack_st_OPENSSL_STRING *,const char *) | | load_csr_autofmt | 2 | stack_st_OPENSSL_STRING * | +| (const char *,int,stack_st_OPENSSL_STRING *,const char *) | | load_csr_autofmt | 3 | const char * | +| (const char *,int,stack_st_X509 **,const char *,const char *) | | load_certs | 0 | const char * | +| (const char *,int,stack_st_X509 **,const char *,const char *) | | load_certs | 1 | int | +| (const char *,int,stack_st_X509 **,const char *,const char *) | | load_certs | 2 | stack_st_X509 ** | +| (const char *,int,stack_st_X509 **,const char *,const char *) | | load_certs | 3 | const char * | +| (const char *,int,stack_st_X509 **,const char *,const char *) | | load_certs | 4 | const char * | +| (const char *,int,unsigned char **,int *) | | OPENSSL_asc2uni | 0 | const char * | +| (const char *,int,unsigned char **,int *) | | OPENSSL_asc2uni | 1 | int | +| (const char *,int,unsigned char **,int *) | | OPENSSL_asc2uni | 2 | unsigned char ** | +| (const char *,int,unsigned char **,int *) | | OPENSSL_asc2uni | 3 | int * | +| (const char *,int,unsigned char **,int *) | | OPENSSL_utf82uni | 0 | const char * | +| (const char *,int,unsigned char **,int *) | | OPENSSL_utf82uni | 1 | int | +| (const char *,int,unsigned char **,int *) | | OPENSSL_utf82uni | 2 | unsigned char ** | +| (const char *,int,unsigned char **,int *) | | OPENSSL_utf82uni | 3 | int * | +| (const char *,long *) | | OSSL_PARAM_construct_long | 0 | const char * | +| (const char *,long *) | | OSSL_PARAM_construct_long | 1 | long * | +| (const char *,long *) | | opt_long | 0 | const char * | +| (const char *,long *) | | opt_long | 1 | long * | +| (const char *,long *,char *) | | OCSP_crlID_new | 0 | const char * | +| (const char *,long *,char *) | | OCSP_crlID_new | 1 | long * | +| (const char *,long *,char *) | | OCSP_crlID_new | 2 | char * | +| (const char *,long *,int) | | Jim_StringToWide | 0 | const char * | +| (const char *,long *,int) | | Jim_StringToWide | 1 | long * | +| (const char *,long *,int) | | Jim_StringToWide | 2 | int | +| (const char *,size_t *) | | OSSL_PARAM_construct_size_t | 0 | const char * | +| (const char *,size_t *) | | OSSL_PARAM_construct_size_t | 1 | size_t * | +| (const char *,size_t) | | OPENSSL_strnlen | 0 | const char * | +| (const char *,size_t) | | OPENSSL_strnlen | 1 | size_t | +| (const char *,size_t,const char *,int) | | CRYPTO_strndup | 0 | const char * | +| (const char *,size_t,const char *,int) | | CRYPTO_strndup | 1 | size_t | +| (const char *,size_t,const char *,int) | | CRYPTO_strndup | 2 | const char * | +| (const char *,size_t,const char *,int) | | CRYPTO_strndup | 3 | int | +| (const char *,sqlite3 **,int,const char *) | | sqlite3_open_v2 | 0 | const char * | +| (const char *,sqlite3 **,int,const char *) | | sqlite3_open_v2 | 1 | sqlite3 ** | +| (const char *,sqlite3 **,int,const char *) | | sqlite3_open_v2 | 2 | int | +| (const char *,sqlite3 **,int,const char *) | | sqlite3_open_v2 | 3 | const char * | +| (const char *,sqlite3_filename) | | sqlite3_filename_database | 0 | const char * | +| (const char *,sqlite3_filename) | | sqlite3_filename_database | 1 | sqlite3_filename | +| (const char *,sqlite3_filename) | | sqlite3_filename_journal | 0 | const char * | +| (const char *,sqlite3_filename) | | sqlite3_filename_journal | 1 | sqlite3_filename | +| (const char *,sqlite3_filename) | | sqlite3_filename_wal | 0 | const char * | +| (const char *,sqlite3_filename) | | sqlite3_filename_wal | 1 | sqlite3_filename | +| (const char *,sqlite3_filename) | | sqlite3_free_filename | 0 | const char * | +| (const char *,sqlite3_filename) | | sqlite3_free_filename | 1 | sqlite3_filename | +| (const char *,sqlite3_filename,const char *) | | sqlite3_uri_parameter | 0 | const char * | +| (const char *,sqlite3_filename,const char *) | | sqlite3_uri_parameter | 1 | sqlite3_filename | +| (const char *,sqlite3_filename,const char *) | | sqlite3_uri_parameter | 2 | const char * | +| (const char *,sqlite3_filename,const char *,int) | | sqlite3_uri_boolean | 0 | const char * | +| (const char *,sqlite3_filename,const char *,int) | | sqlite3_uri_boolean | 1 | sqlite3_filename | +| (const char *,sqlite3_filename,const char *,int) | | sqlite3_uri_boolean | 2 | const char * | +| (const char *,sqlite3_filename,const char *,int) | | sqlite3_uri_boolean | 3 | int | +| (const char *,sqlite3_filename,const char *,sqlite3_int64) | | sqlite3_uri_int64 | 0 | const char * | +| (const char *,sqlite3_filename,const char *,sqlite3_int64) | | sqlite3_uri_int64 | 1 | sqlite3_filename | +| (const char *,sqlite3_filename,const char *,sqlite3_int64) | | sqlite3_uri_int64 | 2 | const char * | +| (const char *,sqlite3_filename,const char *,sqlite3_int64) | | sqlite3_uri_int64 | 3 | sqlite3_int64 | +| (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 0 | const char * | +| (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 1 | sqlite3_filename | +| (const char *,sqlite3_filename,int) | | sqlite3_uri_key | 2 | int | +| (const char *,stack_st_X509_CRL **,const char *,const char *) | | load_crls | 0 | const char * | +| (const char *,stack_st_X509_CRL **,const char *,const char *) | | load_crls | 1 | stack_st_X509_CRL ** | +| (const char *,stack_st_X509_CRL **,const char *,const char *) | | load_crls | 2 | const char * | +| (const char *,stack_st_X509_CRL **,const char *,const char *) | | load_crls | 3 | const char * | +| (const char *,time_t *) | | OSSL_PARAM_construct_time_t | 0 | const char * | +| (const char *,time_t *) | | OSSL_PARAM_construct_time_t | 1 | time_t * | +| (const char *,uint32_t *) | | OSSL_PARAM_construct_uint32 | 0 | const char * | +| (const char *,uint32_t *) | | OSSL_PARAM_construct_uint32 | 1 | uint32_t * | +| (const char *,uint64_t *) | | OSSL_PARAM_construct_uint64 | 0 | const char * | +| (const char *,uint64_t *) | | OSSL_PARAM_construct_uint64 | 1 | uint64_t * | +| (const char *,unsigned char *,size_t) | | OSSL_PARAM_construct_BN | 0 | const char * | +| (const char *,unsigned char *,size_t) | | OSSL_PARAM_construct_BN | 1 | unsigned char * | +| (const char *,unsigned char *,size_t) | | OSSL_PARAM_construct_BN | 2 | size_t | +| (const char *,unsigned int *) | | OSSL_PARAM_construct_uint | 0 | const char * | +| (const char *,unsigned int *) | | OSSL_PARAM_construct_uint | 1 | unsigned int * | +| (const char *,unsigned long *) | | OSSL_PARAM_construct_ulong | 0 | const char * | +| (const char *,unsigned long *) | | OSSL_PARAM_construct_ulong | 1 | unsigned long * | +| (const char *,unsigned long *) | | opt_ulong | 0 | const char * | +| (const char *,unsigned long *) | | opt_ulong | 1 | unsigned long * | +| (const char *,va_list) | | sqlite3_vmprintf | 0 | const char * | +| (const char *,va_list) | | sqlite3_vmprintf | 1 | va_list | +| (const char *,va_list) | | test_vprintf_stderr | 0 | const char * | +| (const char *,va_list) | | test_vprintf_stderr | 1 | va_list | +| (const char *,va_list) | | test_vprintf_stdout | 0 | const char * | +| (const char *,va_list) | | test_vprintf_stdout | 1 | va_list | +| (const char *,va_list) | | test_vprintf_taperr | 0 | const char * | +| (const char *,va_list) | | test_vprintf_taperr | 1 | va_list | +| (const char *,va_list) | | test_vprintf_tapout | 0 | const char * | +| (const char *,va_list) | | test_vprintf_tapout | 1 | va_list | +| (const char *,void *) | | collect_names | 0 | const char * | +| (const char *,void *) | | collect_names | 1 | void * | +| (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 0 | const char * | +| (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 1 | void ** | +| (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 2 | size_t | +| (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 0 | const char * | +| (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 1 | void * | +| (const char *,void *,size_t) | | OSSL_PARAM_construct_octet_string | 2 | size_t | +| (const char *const *,const char *const *) | | name_cmp | 0 | const char *const * | +| (const char *const *,const char *const *) | | name_cmp | 1 | const char *const * | +| (const curve448_point_t) | | ossl_curve448_point_valid | 0 | const curve448_point_t | +| (const custom_ext_methods *,ENDPOINT,unsigned int,size_t *) | | custom_ext_find | 0 | const custom_ext_methods * | +| (const custom_ext_methods *,ENDPOINT,unsigned int,size_t *) | | custom_ext_find | 1 | ENDPOINT | +| (const custom_ext_methods *,ENDPOINT,unsigned int,size_t *) | | custom_ext_find | 2 | unsigned int | +| (const custom_ext_methods *,ENDPOINT,unsigned int,size_t *) | | custom_ext_find | 3 | size_t * | | (const deque &) | deque | deque | 0 | const deque & | | (const deque &,const Allocator &) | deque | deque | 0 | const deque & | | (const deque &,const Allocator &) | deque | deque | 1 | const class:1 & | | (const forward_list &) | forward_list | forward_list | 0 | const forward_list & | | (const forward_list &,const Allocator &) | forward_list | forward_list | 0 | const forward_list & | | (const forward_list &,const Allocator &) | forward_list | forward_list | 1 | const class:1 & | +| (const gf) | | gf_hibit | 0 | const gf | +| (const gf) | | gf_lobit | 0 | const gf | +| (const gf,const gf) | | gf_eq | 0 | const gf | +| (const gf,const gf) | | gf_eq | 1 | const gf | +| (const int[],BIGNUM *) | | BN_GF2m_arr2poly | 0 | const int[] | +| (const int[],BIGNUM *) | | BN_GF2m_arr2poly | 1 | BIGNUM * | +| (const int_dhx942_dh *,unsigned char **) | | i2d_int_dhx | 0 | const int_dhx942_dh * | +| (const int_dhx942_dh *,unsigned char **) | | i2d_int_dhx | 1 | unsigned char ** | | (const list &) | list | list | 0 | const list & | | (const list &,const Allocator &) | list | list | 0 | const list & | | (const list &,const Allocator &) | list | list | 1 | const class:1 & | +| (const sqlite3_value *) | | sqlite3_value_dup | 0 | const sqlite3_value * | +| (const stack_st_SCT *,unsigned char **) | | i2d_SCT_LIST | 0 | const stack_st_SCT * | +| (const stack_st_SCT *,unsigned char **) | | i2d_SCT_LIST | 1 | unsigned char ** | +| (const stack_st_SCT *,unsigned char **) | | i2o_SCT_LIST | 0 | const stack_st_SCT * | +| (const stack_st_SCT *,unsigned char **) | | i2o_SCT_LIST | 1 | unsigned char ** | +| (const stack_st_X509 *) | | OSSL_CMP_ITAV_new_caCerts | 0 | const stack_st_X509 * | +| (const stack_st_X509 *,const stack_st_X509 *) | | STACK_OF_X509_cmp | 0 | const stack_st_X509 * | +| (const stack_st_X509 *,const stack_st_X509 *) | | STACK_OF_X509_cmp | 1 | const stack_st_X509 * | +| (const stack_st_X509_ATTRIBUTE *) | | X509at_get_attr_count | 0 | const stack_st_X509_ATTRIBUTE * | +| (const stack_st_X509_ATTRIBUTE *) | | ossl_x509at_dup | 0 | const stack_st_X509_ATTRIBUTE * | +| (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 0 | const stack_st_X509_ATTRIBUTE * | +| (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 1 | const ASN1_OBJECT * | +| (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 2 | int | +| (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 0 | const stack_st_X509_ATTRIBUTE * | +| (const stack_st_X509_ATTRIBUTE *,int) | | X509at_get_attr | 1 | int | +| (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 0 | const stack_st_X509_ATTRIBUTE * | +| (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 1 | int | +| (const stack_st_X509_ATTRIBUTE *,int,int) | | X509at_get_attr_by_NID | 2 | int | +| (const stack_st_X509_EXTENSION *) | | X509v3_get_ext_count | 0 | const stack_st_X509_EXTENSION * | +| (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 0 | const stack_st_X509_EXTENSION * | +| (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 1 | const ASN1_OBJECT * | +| (const stack_st_X509_EXTENSION *,const ASN1_OBJECT *,int) | | X509v3_get_ext_by_OBJ | 2 | int | +| (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 0 | const stack_st_X509_EXTENSION * | +| (const stack_st_X509_EXTENSION *,int) | | X509v3_get_ext | 1 | int | +| (const stack_st_X509_EXTENSION *,int,int *,int *) | | X509V3_get_d2i | 0 | const stack_st_X509_EXTENSION * | +| (const stack_st_X509_EXTENSION *,int,int *,int *) | | X509V3_get_d2i | 1 | int | +| (const stack_st_X509_EXTENSION *,int,int *,int *) | | X509V3_get_d2i | 2 | int * | +| (const stack_st_X509_EXTENSION *,int,int *,int *) | | X509V3_get_d2i | 3 | int * | +| (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_NID | 0 | const stack_st_X509_EXTENSION * | +| (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_NID | 1 | int | +| (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_NID | 2 | int | +| (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_critical | 0 | const stack_st_X509_EXTENSION * | +| (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_critical | 1 | int | +| (const stack_st_X509_EXTENSION *,int,int) | | X509v3_get_ext_by_critical | 2 | int | +| (const stack_st_X509_NAME *) | | SSL_dup_CA_list | 0 | const stack_st_X509_NAME * | +| (const time_t *,tm *) | | OPENSSL_gmtime | 0 | const time_t * | +| (const time_t *,tm *) | | OPENSSL_gmtime | 1 | tm * | +| (const u128[16],uint8_t *,const uint8_t *,size_t) | | ossl_polyval_ghash_hash | 0 | const u128[16] | +| (const u128[16],uint8_t *,const uint8_t *,size_t) | | ossl_polyval_ghash_hash | 1 | uint8_t * | +| (const u128[16],uint8_t *,const uint8_t *,size_t) | | ossl_polyval_ghash_hash | 2 | const uint8_t * | +| (const u128[16],uint8_t *,const uint8_t *,size_t) | | ossl_polyval_ghash_hash | 3 | size_t | +| (const uint8_t *,SM4_KEY *) | | ossl_sm4_set_key | 0 | const uint8_t * | +| (const uint8_t *,SM4_KEY *) | | ossl_sm4_set_key | 1 | SM4_KEY * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_dsa_d2i_PKCS8 | 0 | const uint8_t * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_dsa_d2i_PKCS8 | 1 | int | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_dsa_d2i_PKCS8 | 2 | int | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_dsa_d2i_PKCS8 | 3 | PROV_CTX * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_dsa_d2i_PKCS8 | 4 | const char * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_dsa_d2i_PUBKEY | 0 | const uint8_t * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_dsa_d2i_PUBKEY | 1 | int | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_dsa_d2i_PUBKEY | 2 | int | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_dsa_d2i_PUBKEY | 3 | PROV_CTX * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_dsa_d2i_PUBKEY | 4 | const char * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_kem_d2i_PKCS8 | 0 | const uint8_t * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_kem_d2i_PKCS8 | 1 | int | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_kem_d2i_PKCS8 | 2 | int | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_kem_d2i_PKCS8 | 3 | PROV_CTX * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_kem_d2i_PKCS8 | 4 | const char * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_kem_d2i_PUBKEY | 0 | const uint8_t * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_kem_d2i_PUBKEY | 1 | int | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_kem_d2i_PUBKEY | 2 | int | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_kem_d2i_PUBKEY | 3 | PROV_CTX * | +| (const uint8_t *,int,int,PROV_CTX *,const char *) | | ossl_ml_kem_d2i_PUBKEY | 4 | const char * | +| (const uint8_t *,size_t) | | FuzzerTestOneInput | 0 | const uint8_t * | +| (const uint8_t *,size_t) | | FuzzerTestOneInput | 1 | size_t | +| (const uint8_t *,size_t) | | ossl_ed448_pubkey_verify | 0 | const uint8_t * | +| (const uint8_t *,size_t) | | ossl_ed448_pubkey_verify | 1 | size_t | +| (const uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_parse_private_key | 0 | const uint8_t * | +| (const uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_parse_private_key | 1 | size_t | +| (const uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_parse_private_key | 2 | ML_KEM_KEY * | +| (const uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_parse_public_key | 0 | const uint8_t * | +| (const uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_parse_public_key | 1 | size_t | +| (const uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_parse_public_key | 2 | ML_KEM_KEY * | +| (const uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_set_seed | 0 | const uint8_t * | +| (const uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_set_seed | 1 | size_t | +| (const uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_set_seed | 2 | ML_KEM_KEY * | +| (const uint8_t *,uint8_t *,const SM4_KEY *) | | ossl_sm4_decrypt | 0 | const uint8_t * | +| (const uint8_t *,uint8_t *,const SM4_KEY *) | | ossl_sm4_decrypt | 1 | uint8_t * | +| (const uint8_t *,uint8_t *,const SM4_KEY *) | | ossl_sm4_decrypt | 2 | const SM4_KEY * | +| (const uint8_t *,uint8_t *,const SM4_KEY *) | | ossl_sm4_encrypt | 0 | const uint8_t * | +| (const uint8_t *,uint8_t *,const SM4_KEY *) | | ossl_sm4_encrypt | 1 | uint8_t * | +| (const uint8_t *,uint8_t *,const SM4_KEY *) | | ossl_sm4_encrypt | 2 | const SM4_KEY * | +| (const unsigned char *) | | ossl_quic_vlint_decode_unchecked | 0 | const unsigned char * | | (const unsigned char *) | CStringT | CStringT | 0 | const unsigned char * | | (const unsigned char *) | CStringT | operator= | 0 | const unsigned char * | +| (const unsigned char **,long *,int *,int *,long) | | ASN1_get_object | 0 | const unsigned char ** | +| (const unsigned char **,long *,int *,int *,long) | | ASN1_get_object | 1 | long * | +| (const unsigned char **,long *,int *,int *,long) | | ASN1_get_object | 2 | int * | +| (const unsigned char **,long *,int *,int *,long) | | ASN1_get_object | 3 | int * | +| (const unsigned char **,long *,int *,int *,long) | | ASN1_get_object | 4 | long | +| (const unsigned char **,long) | | ASN1_const_check_infinite_end | 0 | const unsigned char ** | +| (const unsigned char **,long) | | ASN1_const_check_infinite_end | 1 | long | +| (const unsigned char **,long) | | b2i_PrivateKey | 0 | const unsigned char ** | +| (const unsigned char **,long) | | b2i_PrivateKey | 1 | long | +| (const unsigned char **,long) | | b2i_PublicKey | 0 | const unsigned char ** | +| (const unsigned char **,long) | | b2i_PublicKey | 1 | long | +| (const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_X509_PUBKEY_INTERNAL | 0 | const unsigned char ** | +| (const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_X509_PUBKEY_INTERNAL | 1 | long | +| (const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_X509_PUBKEY_INTERNAL | 2 | OSSL_LIB_CTX * | +| (const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_X509_PUBKEY_INTERNAL | 3 | const char * | +| (const unsigned char **,unsigned int,int *) | | ossl_b2i | 0 | const unsigned char ** | +| (const unsigned char **,unsigned int,int *) | | ossl_b2i | 1 | unsigned int | +| (const unsigned char **,unsigned int,int *) | | ossl_b2i | 2 | int * | +| (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 0 | const unsigned char ** | +| (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 1 | unsigned int | +| (const unsigned char **,unsigned int,int) | | ossl_b2i_DSA_after_header | 2 | int | +| (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 0 | const unsigned char ** | +| (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 1 | unsigned int | +| (const unsigned char **,unsigned int,int) | | ossl_b2i_RSA_after_header | 2 | int | +| (const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *) | | ossl_do_PVK_header | 0 | const unsigned char ** | +| (const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *) | | ossl_do_PVK_header | 1 | unsigned int | +| (const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *) | | ossl_do_PVK_header | 2 | int | +| (const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *) | | ossl_do_PVK_header | 3 | int * | +| (const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *) | | ossl_do_PVK_header | 4 | unsigned int * | +| (const unsigned char **,unsigned int,int,int *,unsigned int *,unsigned int *) | | ossl_do_PVK_header | 5 | unsigned int * | +| (const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *) | | ossl_do_blob_header | 0 | const unsigned char ** | +| (const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *) | | ossl_do_blob_header | 1 | unsigned int | +| (const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *) | | ossl_do_blob_header | 2 | unsigned int * | +| (const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *) | | ossl_do_blob_header | 3 | unsigned int * | +| (const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *) | | ossl_do_blob_header | 4 | int * | +| (const unsigned char **,unsigned int,unsigned int *,unsigned int *,int *,int *) | | ossl_do_blob_header | 5 | int * | +| (const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *) | | DES_cbc_cksum | 0 | const unsigned char * | +| (const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *) | | DES_cbc_cksum | 1 | DES_cblock * | +| (const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *) | | DES_cbc_cksum | 2 | long | +| (const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *) | | DES_cbc_cksum | 3 | DES_key_schedule * | +| (const unsigned char *,DES_cblock *,long,DES_key_schedule *,const_DES_cblock *) | | DES_cbc_cksum | 4 | const_DES_cblock * | +| (const unsigned char *,DES_cblock[],long,int,DES_cblock *) | | DES_quad_cksum | 0 | const unsigned char * | +| (const unsigned char *,DES_cblock[],long,int,DES_cblock *) | | DES_quad_cksum | 1 | DES_cblock[] | +| (const unsigned char *,DES_cblock[],long,int,DES_cblock *) | | DES_quad_cksum | 2 | long | +| (const unsigned char *,DES_cblock[],long,int,DES_cblock *) | | DES_quad_cksum | 3 | int | +| (const unsigned char *,DES_cblock[],long,int,DES_cblock *) | | DES_quad_cksum | 4 | DES_cblock * | | (const unsigned char *,IAtlStringMgr *) | CStringT | CStringT | 0 | const unsigned char * | | (const unsigned char *,IAtlStringMgr *) | CStringT | CStringT | 1 | IAtlStringMgr * | +| (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_decrypt_key | 0 | const unsigned char * | +| (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_decrypt_key | 1 | const int | +| (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_decrypt_key | 2 | ARIA_KEY * | +| (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_encrypt_key | 0 | const unsigned char * | +| (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_encrypt_key | 1 | const int | +| (const unsigned char *,const int,ARIA_KEY *) | | ossl_aria_set_encrypt_key | 2 | ARIA_KEY * | +| (const unsigned char *,hm_header_st *) | | dtls1_get_message_header | 0 | const unsigned char * | +| (const unsigned char *,hm_header_st *) | | dtls1_get_message_header | 1 | hm_header_st * | +| (const unsigned char *,int) | | Jim_GenHashFunction | 0 | const unsigned char * | +| (const unsigned char *,int) | | Jim_GenHashFunction | 1 | int | +| (const unsigned char *,int) | | OPENSSL_uni2asc | 0 | const unsigned char * | +| (const unsigned char *,int) | | OPENSSL_uni2asc | 1 | int | +| (const unsigned char *,int) | | OPENSSL_uni2utf8 | 0 | const unsigned char * | +| (const unsigned char *,int) | | OPENSSL_uni2utf8 | 1 | int | +| (const unsigned char *,int,BIGNUM *) | | BN_bin2bn | 0 | const unsigned char * | +| (const unsigned char *,int,BIGNUM *) | | BN_bin2bn | 1 | int | +| (const unsigned char *,int,BIGNUM *) | | BN_bin2bn | 2 | BIGNUM * | +| (const unsigned char *,int,BIGNUM *) | | BN_lebin2bn | 0 | const unsigned char * | +| (const unsigned char *,int,BIGNUM *) | | BN_lebin2bn | 1 | int | +| (const unsigned char *,int,BIGNUM *) | | BN_lebin2bn | 2 | BIGNUM * | +| (const unsigned char *,int,BIGNUM *) | | BN_mpi2bn | 0 | const unsigned char * | +| (const unsigned char *,int,BIGNUM *) | | BN_mpi2bn | 1 | int | +| (const unsigned char *,int,BIGNUM *) | | BN_mpi2bn | 2 | BIGNUM * | +| (const unsigned char *,int,BIGNUM *) | | BN_native2bn | 0 | const unsigned char * | +| (const unsigned char *,int,BIGNUM *) | | BN_native2bn | 1 | int | +| (const unsigned char *,int,BIGNUM *) | | BN_native2bn | 2 | BIGNUM * | +| (const unsigned char *,int,BIGNUM *) | | BN_signed_bin2bn | 0 | const unsigned char * | +| (const unsigned char *,int,BIGNUM *) | | BN_signed_bin2bn | 1 | int | +| (const unsigned char *,int,BIGNUM *) | | BN_signed_bin2bn | 2 | BIGNUM * | +| (const unsigned char *,int,BIGNUM *) | | BN_signed_lebin2bn | 0 | const unsigned char * | +| (const unsigned char *,int,BIGNUM *) | | BN_signed_lebin2bn | 1 | int | +| (const unsigned char *,int,BIGNUM *) | | BN_signed_lebin2bn | 2 | BIGNUM * | +| (const unsigned char *,int,BIGNUM *) | | BN_signed_native2bn | 0 | const unsigned char * | +| (const unsigned char *,int,BIGNUM *) | | BN_signed_native2bn | 1 | int | +| (const unsigned char *,int,BIGNUM *) | | BN_signed_native2bn | 2 | BIGNUM * | +| (const unsigned char *,int,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_do_sign_int | 0 | const unsigned char * | +| (const unsigned char *,int,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_do_sign_int | 1 | int | +| (const unsigned char *,int,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_do_sign_int | 2 | DSA * | +| (const unsigned char *,int,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_do_sign_int | 3 | unsigned int | +| (const unsigned char *,int,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_do_sign_int | 4 | const char * | +| (const unsigned char *,int,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_do_sign_int | 5 | OSSL_LIB_CTX * | +| (const unsigned char *,int,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_do_sign_int | 6 | const char * | +| (const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_new | 0 | const unsigned char * | +| (const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_new | 1 | int | +| (const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_new | 2 | EVP_CIPHER * | +| (const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_new | 3 | EVP_CIPHER * | +| (const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_new | 4 | OSSL_LIB_CTX * | +| (const unsigned char *,int,EVP_CIPHER *,EVP_CIPHER *,OSSL_LIB_CTX *,const char *) | | ossl_siv128_new | 5 | const char * | +| (const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_simple_sign_sig | 0 | const unsigned char * | +| (const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_simple_sign_sig | 1 | int | +| (const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_simple_sign_sig | 2 | const BIGNUM * | +| (const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_simple_sign_sig | 3 | const BIGNUM * | +| (const unsigned char *,int,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_simple_sign_sig | 4 | EC_KEY * | +| (const unsigned char *,int,const ECDSA_SIG *,EC_KEY *) | | ossl_ecdsa_simple_verify_sig | 0 | const unsigned char * | +| (const unsigned char *,int,const ECDSA_SIG *,EC_KEY *) | | ossl_ecdsa_simple_verify_sig | 1 | int | +| (const unsigned char *,int,const ECDSA_SIG *,EC_KEY *) | | ossl_ecdsa_simple_verify_sig | 2 | const ECDSA_SIG * | +| (const unsigned char *,int,const ECDSA_SIG *,EC_KEY *) | | ossl_ecdsa_simple_verify_sig | 3 | EC_KEY * | +| (const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_sm2_internal_verify | 0 | const unsigned char * | +| (const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_sm2_internal_verify | 1 | int | +| (const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_sm2_internal_verify | 2 | const unsigned char * | +| (const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_sm2_internal_verify | 3 | int | +| (const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_sm2_internal_verify | 4 | EC_KEY * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *) | | ossl_sm2_internal_sign | 0 | const unsigned char * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *) | | ossl_sm2_internal_sign | 1 | int | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *) | | ossl_sm2_internal_sign | 2 | unsigned char * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *) | | ossl_sm2_internal_sign | 3 | unsigned int * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *) | | ossl_sm2_internal_sign | 4 | EC_KEY * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_ecdsa_deterministic_sign | 0 | const unsigned char * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_ecdsa_deterministic_sign | 1 | int | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_ecdsa_deterministic_sign | 2 | unsigned char * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_ecdsa_deterministic_sign | 3 | unsigned int * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_ecdsa_deterministic_sign | 4 | EC_KEY * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_ecdsa_deterministic_sign | 5 | unsigned int | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_ecdsa_deterministic_sign | 6 | const char * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_ecdsa_deterministic_sign | 7 | OSSL_LIB_CTX * | +| (const unsigned char *,int,unsigned char *,unsigned int *,EC_KEY *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_ecdsa_deterministic_sign | 8 | const char * | +| (const unsigned char *,int,unsigned long *) | | UTF8_getc | 0 | const unsigned char * | +| (const unsigned char *,int,unsigned long *) | | UTF8_getc | 1 | int | +| (const unsigned char *,int,unsigned long *) | | UTF8_getc | 2 | unsigned long * | +| (const unsigned char *,long) | | OPENSSL_buf2hexstr | 0 | const unsigned char * | +| (const unsigned char *,long) | | OPENSSL_buf2hexstr | 1 | long | +| (const unsigned char *,long,char) | | ossl_buf2hexstr_sep | 0 | const unsigned char * | +| (const unsigned char *,long,char) | | ossl_buf2hexstr_sep | 1 | long | +| (const unsigned char *,long,char) | | ossl_buf2hexstr_sep | 2 | char | +| (const unsigned char *,size_t,QUIC_PN,QUIC_PN *) | | ossl_quic_wire_decode_pkt_hdr_pn | 0 | const unsigned char * | +| (const unsigned char *,size_t,QUIC_PN,QUIC_PN *) | | ossl_quic_wire_decode_pkt_hdr_pn | 1 | size_t | +| (const unsigned char *,size_t,QUIC_PN,QUIC_PN *) | | ossl_quic_wire_decode_pkt_hdr_pn | 2 | QUIC_PN | +| (const unsigned char *,size_t,QUIC_PN,QUIC_PN *) | | ossl_quic_wire_decode_pkt_hdr_pn | 3 | QUIC_PN * | +| (const unsigned char *,size_t,size_t *) | | ossl_sm2_plaintext_size | 0 | const unsigned char * | +| (const unsigned char *,size_t,size_t *) | | ossl_sm2_plaintext_size | 1 | size_t | +| (const unsigned char *,size_t,size_t *) | | ossl_sm2_plaintext_size | 2 | size_t * | +| (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 0 | const unsigned char * | +| (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 1 | size_t | +| (const unsigned char *,size_t,size_t) | | ossl_rand_pool_attach | 2 | size_t | +| (const unsigned char *,size_t,size_t,QUIC_CONN_ID *) | | ossl_quic_wire_get_pkt_hdr_dst_conn_id | 0 | const unsigned char * | +| (const unsigned char *,size_t,size_t,QUIC_CONN_ID *) | | ossl_quic_wire_get_pkt_hdr_dst_conn_id | 1 | size_t | +| (const unsigned char *,size_t,size_t,QUIC_CONN_ID *) | | ossl_quic_wire_get_pkt_hdr_dst_conn_id | 2 | size_t | +| (const unsigned char *,size_t,size_t,QUIC_CONN_ID *) | | ossl_quic_wire_get_pkt_hdr_dst_conn_id | 3 | QUIC_CONN_ID * | +| (const unsigned char *,size_t,uint64_t *) | | ossl_quic_vlint_decode | 0 | const unsigned char * | +| (const unsigned char *,size_t,uint64_t *) | | ossl_quic_vlint_decode | 1 | size_t | +| (const unsigned char *,size_t,uint64_t *) | | ossl_quic_vlint_decode | 2 | uint64_t * | +| (const unsigned char *,size_t,unsigned char *) | | MD4 | 0 | const unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | MD4 | 1 | size_t | +| (const unsigned char *,size_t,unsigned char *) | | MD4 | 2 | unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | MD5 | 0 | const unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | MD5 | 1 | size_t | +| (const unsigned char *,size_t,unsigned char *) | | MD5 | 2 | unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | MDC2 | 0 | const unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | MDC2 | 1 | size_t | +| (const unsigned char *,size_t,unsigned char *) | | MDC2 | 2 | unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | RIPEMD160 | 0 | const unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | RIPEMD160 | 1 | size_t | +| (const unsigned char *,size_t,unsigned char *) | | RIPEMD160 | 2 | unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | SHA1 | 0 | const unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | SHA1 | 1 | size_t | +| (const unsigned char *,size_t,unsigned char *) | | SHA1 | 2 | unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | SHA224 | 0 | const unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | SHA224 | 1 | size_t | +| (const unsigned char *,size_t,unsigned char *) | | SHA224 | 2 | unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | SHA256 | 0 | const unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | SHA256 | 1 | size_t | +| (const unsigned char *,size_t,unsigned char *) | | SHA256 | 2 | unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | SHA384 | 0 | const unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | SHA384 | 1 | size_t | +| (const unsigned char *,size_t,unsigned char *) | | SHA384 | 2 | unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | SHA512 | 0 | const unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | SHA512 | 1 | size_t | +| (const unsigned char *,size_t,unsigned char *) | | SHA512 | 2 | unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | ossl_sha1 | 0 | const unsigned char * | +| (const unsigned char *,size_t,unsigned char *) | | ossl_sha1 | 1 | size_t | +| (const unsigned char *,size_t,unsigned char *) | | ossl_sha1 | 2 | unsigned char * | +| (const unsigned char *,unsigned char *,IDEA_KEY_SCHEDULE *) | | IDEA_ecb_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,IDEA_KEY_SCHEDULE *) | | IDEA_ecb_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,IDEA_KEY_SCHEDULE *) | | IDEA_ecb_encrypt | 2 | IDEA_KEY_SCHEDULE * | +| (const unsigned char *,unsigned char *,RC2_KEY *,int) | | RC2_ecb_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,RC2_KEY *,int) | | RC2_ecb_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,RC2_KEY *,int) | | RC2_ecb_encrypt | 2 | RC2_KEY * | +| (const unsigned char *,unsigned char *,RC2_KEY *,int) | | RC2_ecb_encrypt | 3 | int | +| (const unsigned char *,unsigned char *,const ARIA_KEY *) | | ossl_aria_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,const ARIA_KEY *) | | ossl_aria_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,const ARIA_KEY *) | | ossl_aria_encrypt | 2 | const ARIA_KEY * | +| (const unsigned char *,unsigned char *,const BF_KEY *,int) | | BF_ecb_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,const BF_KEY *,int) | | BF_ecb_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,const BF_KEY *,int) | | BF_ecb_encrypt | 2 | const BF_KEY * | +| (const unsigned char *,unsigned char *,const BF_KEY *,int) | | BF_ecb_encrypt | 3 | int | +| (const unsigned char *,unsigned char *,const CAST_KEY *,int) | | CAST_ecb_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,const CAST_KEY *,int) | | CAST_ecb_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,const CAST_KEY *,int) | | CAST_ecb_encrypt | 2 | const CAST_KEY * | +| (const unsigned char *,unsigned char *,const CAST_KEY *,int) | | CAST_ecb_encrypt | 3 | int | +| (const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int) | | SEED_ecb_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int) | | SEED_ecb_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int) | | SEED_ecb_encrypt | 2 | const SEED_KEY_SCHEDULE * | +| (const unsigned char *,unsigned char *,const SEED_KEY_SCHEDULE *,int) | | SEED_ecb_encrypt | 3 | int | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *) | | DES_ofb_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *) | | DES_ofb_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *) | | DES_ofb_encrypt | 2 | int | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *) | | DES_ofb_encrypt | 3 | long | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *) | | DES_ofb_encrypt | 4 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *) | | DES_ofb_encrypt | 5 | DES_cblock * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int) | | DES_cfb_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int) | | DES_cfb_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int) | | DES_cfb_encrypt | 2 | int | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int) | | DES_cfb_encrypt | 3 | long | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int) | | DES_cfb_encrypt | 4 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int) | | DES_cfb_encrypt | 5 | DES_cblock * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_cblock *,int) | | DES_cfb_encrypt | 6 | int | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int) | | DES_ede3_cfb_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int) | | DES_ede3_cfb_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int) | | DES_ede3_cfb_encrypt | 2 | int | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int) | | DES_ede3_cfb_encrypt | 3 | long | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int) | | DES_ede3_cfb_encrypt | 4 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int) | | DES_ede3_cfb_encrypt | 5 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int) | | DES_ede3_cfb_encrypt | 6 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int) | | DES_ede3_cfb_encrypt | 7 | DES_cblock * | +| (const unsigned char *,unsigned char *,int,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int) | | DES_ede3_cfb_encrypt | 8 | int | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int) | | DES_xcbc_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int) | | DES_xcbc_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int) | | DES_xcbc_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int) | | DES_xcbc_encrypt | 3 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int) | | DES_xcbc_encrypt | 4 | DES_cblock * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int) | | DES_xcbc_encrypt | 5 | const_DES_cblock * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int) | | DES_xcbc_encrypt | 6 | const_DES_cblock * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,const_DES_cblock *,const_DES_cblock *,int) | | DES_xcbc_encrypt | 7 | int | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *) | | DES_ofb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *) | | DES_ofb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *) | | DES_ofb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *) | | DES_ofb64_encrypt | 3 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *) | | DES_ofb64_encrypt | 4 | DES_cblock * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *) | | DES_ofb64_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int) | | DES_cfb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int) | | DES_cfb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int) | | DES_cfb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int) | | DES_cfb64_encrypt | 3 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int) | | DES_cfb64_encrypt | 4 | DES_cblock * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int) | | DES_cfb64_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int *,int) | | DES_cfb64_encrypt | 6 | int | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_cbc_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_cbc_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_cbc_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_cbc_encrypt | 3 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_cbc_encrypt | 4 | DES_cblock * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_cbc_encrypt | 5 | int | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_ncbc_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_ncbc_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_ncbc_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_ncbc_encrypt | 3 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_ncbc_encrypt | 4 | DES_cblock * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_cblock *,int) | | DES_ncbc_encrypt | 5 | int | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *) | | DES_ede3_ofb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *) | | DES_ede3_ofb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *) | | DES_ede3_ofb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *) | | DES_ede3_ofb64_encrypt | 3 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *) | | DES_ede3_ofb64_encrypt | 4 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *) | | DES_ede3_ofb64_encrypt | 5 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *) | | DES_ede3_ofb64_encrypt | 6 | DES_cblock * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *) | | DES_ede3_ofb64_encrypt | 7 | int * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int) | | DES_ede3_cfb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int) | | DES_ede3_cfb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int) | | DES_ede3_cfb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int) | | DES_ede3_cfb64_encrypt | 3 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int) | | DES_ede3_cfb64_encrypt | 4 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int) | | DES_ede3_cfb64_encrypt | 5 | DES_key_schedule * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int) | | DES_ede3_cfb64_encrypt | 6 | DES_cblock * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int) | | DES_ede3_cfb64_encrypt | 7 | int * | +| (const unsigned char *,unsigned char *,long,DES_key_schedule *,DES_key_schedule *,DES_key_schedule *,DES_cblock *,int *,int) | | DES_ede3_cfb64_encrypt | 8 | int | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *) | | IDEA_ofb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *) | | IDEA_ofb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *) | | IDEA_ofb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *) | | IDEA_ofb64_encrypt | 3 | IDEA_KEY_SCHEDULE * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *) | | IDEA_ofb64_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *) | | IDEA_ofb64_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int) | | IDEA_cfb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int) | | IDEA_cfb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int) | | IDEA_cfb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int) | | IDEA_cfb64_encrypt | 3 | IDEA_KEY_SCHEDULE * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int) | | IDEA_cfb64_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int) | | IDEA_cfb64_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int *,int) | | IDEA_cfb64_encrypt | 6 | int | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int) | | IDEA_cbc_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int) | | IDEA_cbc_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int) | | IDEA_cbc_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int) | | IDEA_cbc_encrypt | 3 | IDEA_KEY_SCHEDULE * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int) | | IDEA_cbc_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,IDEA_KEY_SCHEDULE *,unsigned char *,int) | | IDEA_cbc_encrypt | 5 | int | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *) | | RC2_ofb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *) | | RC2_ofb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *) | | RC2_ofb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *) | | RC2_ofb64_encrypt | 3 | RC2_KEY * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *) | | RC2_ofb64_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *) | | RC2_ofb64_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int) | | RC2_cfb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int) | | RC2_cfb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int) | | RC2_cfb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int) | | RC2_cfb64_encrypt | 3 | RC2_KEY * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int) | | RC2_cfb64_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int) | | RC2_cfb64_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int *,int) | | RC2_cfb64_encrypt | 6 | int | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int) | | RC2_cbc_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int) | | RC2_cbc_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int) | | RC2_cbc_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int) | | RC2_cbc_encrypt | 3 | RC2_KEY * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int) | | RC2_cbc_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,RC2_KEY *,unsigned char *,int) | | RC2_cbc_encrypt | 5 | int | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *) | | BF_ofb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *) | | BF_ofb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *) | | BF_ofb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *) | | BF_ofb64_encrypt | 3 | const BF_KEY * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *) | | BF_ofb64_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *) | | BF_ofb64_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int) | | BF_cfb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int) | | BF_cfb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int) | | BF_cfb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int) | | BF_cfb64_encrypt | 3 | const BF_KEY * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int) | | BF_cfb64_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int) | | BF_cfb64_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int *,int) | | BF_cfb64_encrypt | 6 | int | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int) | | BF_cbc_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int) | | BF_cbc_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int) | | BF_cbc_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int) | | BF_cbc_encrypt | 3 | const BF_KEY * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int) | | BF_cbc_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const BF_KEY *,unsigned char *,int) | | BF_cbc_encrypt | 5 | int | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *) | | CAST_ofb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *) | | CAST_ofb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *) | | CAST_ofb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *) | | CAST_ofb64_encrypt | 3 | const CAST_KEY * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *) | | CAST_ofb64_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *) | | CAST_ofb64_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int) | | CAST_cfb64_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int) | | CAST_cfb64_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int) | | CAST_cfb64_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int) | | CAST_cfb64_encrypt | 3 | const CAST_KEY * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int) | | CAST_cfb64_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int) | | CAST_cfb64_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int *,int) | | CAST_cfb64_encrypt | 6 | int | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int) | | CAST_cbc_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int) | | CAST_cbc_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int) | | CAST_cbc_encrypt | 2 | long | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int) | | CAST_cbc_encrypt | 3 | const CAST_KEY * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int) | | CAST_cbc_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,long,const CAST_KEY *,unsigned char *,int) | | CAST_cbc_encrypt | 5 | int | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int) | | AES_bi_ige_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int) | | AES_bi_ige_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int) | | AES_bi_ige_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int) | | AES_bi_ige_encrypt | 3 | const AES_KEY * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int) | | AES_bi_ige_encrypt | 4 | const AES_KEY * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int) | | AES_bi_ige_encrypt | 5 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,const AES_KEY *,const unsigned char *,const int) | | AES_bi_ige_encrypt | 6 | const int | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,const int) | | AES_ige_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,const int) | | AES_ige_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,const int) | | AES_ige_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,const int) | | AES_ige_encrypt | 3 | const AES_KEY * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,const int) | | AES_ige_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,const int) | | AES_ige_encrypt | 5 | const int | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *) | | AES_ofb128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *) | | AES_ofb128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *) | | AES_ofb128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *) | | AES_ofb128_encrypt | 3 | const AES_KEY * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *) | | AES_ofb128_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *) | | AES_ofb128_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb1_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb1_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb1_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb1_encrypt | 3 | const AES_KEY * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb1_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb1_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb1_encrypt | 6 | const int | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb8_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb8_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb8_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb8_encrypt | 3 | const AES_KEY * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb8_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb8_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb8_encrypt | 6 | const int | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb128_encrypt | 3 | const AES_KEY * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb128_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb128_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const AES_KEY *,unsigned char *,int *,const int) | | AES_cfb128_encrypt | 6 | const int | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *) | | Camellia_ofb128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *) | | Camellia_ofb128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *) | | Camellia_ofb128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *) | | Camellia_ofb128_encrypt | 3 | const CAMELLIA_KEY * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *) | | Camellia_ofb128_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *) | | Camellia_ofb128_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb1_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb1_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb1_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb1_encrypt | 3 | const CAMELLIA_KEY * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb1_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb1_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb1_encrypt | 6 | const int | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb8_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb8_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb8_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb8_encrypt | 3 | const CAMELLIA_KEY * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb8_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb8_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb8_encrypt | 6 | const int | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb128_encrypt | 3 | const CAMELLIA_KEY * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb128_encrypt | 4 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb128_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char *,int *,const int) | | Camellia_cfb128_encrypt | 6 | const int | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *) | | Camellia_ctr128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *) | | Camellia_ctr128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *) | | Camellia_ctr128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *) | | Camellia_ctr128_encrypt | 3 | const CAMELLIA_KEY * | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *) | | Camellia_ctr128_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *) | | Camellia_ctr128_encrypt | 5 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const CAMELLIA_KEY *,unsigned char[16],unsigned char[16],unsigned int *) | | Camellia_ctr128_encrypt | 6 | unsigned int * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *) | | SEED_ofb128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *) | | SEED_ofb128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *) | | SEED_ofb128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *) | | SEED_ofb128_encrypt | 3 | const SEED_KEY_SCHEDULE * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *) | | SEED_ofb128_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *) | | SEED_ofb128_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int) | | SEED_cfb128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int) | | SEED_cfb128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int) | | SEED_cfb128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int) | | SEED_cfb128_encrypt | 3 | const SEED_KEY_SCHEDULE * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int) | | SEED_cfb128_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int) | | SEED_cfb128_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int *,int) | | SEED_cfb128_encrypt | 6 | int | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int) | | SEED_cbc_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int) | | SEED_cbc_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int) | | SEED_cbc_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int) | | SEED_cbc_encrypt | 3 | const SEED_KEY_SCHEDULE * | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int) | | SEED_cbc_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const SEED_KEY_SCHEDULE *,unsigned char[16],int) | | SEED_cbc_encrypt | 5 | int | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_decrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_decrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_decrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_decrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_decrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_decrypt | 5 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_encrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cbc128_encrypt | 5 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_decrypt_block | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_decrypt_block | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_decrypt_block | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_decrypt_block | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_decrypt_block | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_decrypt_block | 5 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_encrypt_block | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_encrypt_block | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_encrypt_block | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_encrypt_block | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_encrypt_block | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_cts128_encrypt_block | 5 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_decrypt_block | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_decrypt_block | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_decrypt_block | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_decrypt_block | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_decrypt_block | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_decrypt_block | 5 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_encrypt_block | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_encrypt_block | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_encrypt_block | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_encrypt_block | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_encrypt_block | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],block128_f) | | CRYPTO_nistcts128_encrypt_block | 5 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_decrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_decrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_decrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_decrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_decrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_decrypt | 5 | cbc128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_encrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_cts128_encrypt | 5 | cbc128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_decrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_decrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_decrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_decrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_decrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_decrypt | 5 | cbc128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_encrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],cbc128_f) | | CRYPTO_nistcts128_encrypt | 5 | cbc128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f) | | CRYPTO_ofb128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f) | | CRYPTO_ofb128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f) | | CRYPTO_ofb128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f) | | CRYPTO_ofb128_encrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f) | | CRYPTO_ofb128_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f) | | CRYPTO_ofb128_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,block128_f) | | CRYPTO_ofb128_encrypt | 6 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_1_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_1_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_1_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_1_encrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_1_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_1_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_1_encrypt | 6 | int | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_1_encrypt | 7 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_8_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_8_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_8_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_8_encrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_8_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_8_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_8_encrypt | 6 | int | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_8_encrypt | 7 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_encrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_encrypt | 5 | int * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_encrypt | 6 | int | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],int *,int,block128_f) | | CRYPTO_cfb128_encrypt | 7 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f) | | CRYPTO_ctr128_encrypt | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f) | | CRYPTO_ctr128_encrypt | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f) | | CRYPTO_ctr128_encrypt | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f) | | CRYPTO_ctr128_encrypt | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f) | | CRYPTO_ctr128_encrypt | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f) | | CRYPTO_ctr128_encrypt | 5 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f) | | CRYPTO_ctr128_encrypt | 6 | unsigned int * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,block128_f) | | CRYPTO_ctr128_encrypt | 7 | block128_f | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f) | | CRYPTO_ctr128_encrypt_ctr32 | 0 | const unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f) | | CRYPTO_ctr128_encrypt_ctr32 | 1 | unsigned char * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f) | | CRYPTO_ctr128_encrypt_ctr32 | 2 | size_t | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f) | | CRYPTO_ctr128_encrypt_ctr32 | 3 | const void * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f) | | CRYPTO_ctr128_encrypt_ctr32 | 4 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f) | | CRYPTO_ctr128_encrypt_ctr32 | 5 | unsigned char[16] | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f) | | CRYPTO_ctr128_encrypt_ctr32 | 6 | unsigned int * | +| (const unsigned char *,unsigned char *,size_t,const void *,unsigned char[16],unsigned char[16],unsigned int *,ctr128_f) | | CRYPTO_ctr128_encrypt_ctr32 | 7 | ctr128_f | +| (const unsigned char[16],SEED_KEY_SCHEDULE *) | | SEED_set_key | 0 | const unsigned char[16] | +| (const unsigned char[16],SEED_KEY_SCHEDULE *) | | SEED_set_key | 1 | SEED_KEY_SCHEDULE * | +| (const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *) | | SEED_decrypt | 0 | const unsigned char[16] | +| (const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *) | | SEED_decrypt | 1 | unsigned char[16] | +| (const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *) | | SEED_decrypt | 2 | const SEED_KEY_SCHEDULE * | +| (const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *) | | SEED_encrypt | 0 | const unsigned char[16] | +| (const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *) | | SEED_encrypt | 1 | unsigned char[16] | +| (const unsigned char[16],unsigned char[16],const SEED_KEY_SCHEDULE *) | | SEED_encrypt | 2 | const SEED_KEY_SCHEDULE * | | (const vector &) | vector | vector | 0 | const vector & | | (const vector &,const Allocator &) | vector | vector | 0 | const vector & | | (const vector &,const Allocator &) | vector | vector | 1 | const class:1 & | +| (const void *,const void *) | | Symbolcmpp | 0 | const void * | +| (const void *,const void *) | | Symbolcmpp | 1 | const void * | +| (const void *,const void *,int) | | ossl_is_partially_overlapping | 0 | const void * | +| (const void *,const void *,int) | | ossl_is_partially_overlapping | 1 | const void * | +| (const void *,const void *,int) | | ossl_is_partially_overlapping | 2 | int | +| (const void *,const void *,int,int,..(*)(..)) | | OBJ_bsearch_ | 0 | const void * | +| (const void *,const void *,int,int,..(*)(..)) | | OBJ_bsearch_ | 1 | const void * | +| (const void *,const void *,int,int,..(*)(..)) | | OBJ_bsearch_ | 2 | int | +| (const void *,const void *,int,int,..(*)(..)) | | OBJ_bsearch_ | 3 | int | +| (const void *,const void *,int,int,..(*)(..)) | | OBJ_bsearch_ | 4 | ..(*)(..) | +| (const void *,const void *,int,int,..(*)(..),int) | | OBJ_bsearch_ex_ | 0 | const void * | +| (const void *,const void *,int,int,..(*)(..),int) | | OBJ_bsearch_ex_ | 1 | const void * | +| (const void *,const void *,int,int,..(*)(..),int) | | OBJ_bsearch_ex_ | 2 | int | +| (const void *,const void *,int,int,..(*)(..),int) | | OBJ_bsearch_ex_ | 3 | int | +| (const void *,const void *,int,int,..(*)(..),int) | | OBJ_bsearch_ex_ | 4 | ..(*)(..) | +| (const void *,const void *,int,int,..(*)(..),int) | | OBJ_bsearch_ex_ | 5 | int | +| (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 0 | const void * | +| (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 1 | const void * | +| (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 2 | int | +| (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 3 | int | +| (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 4 | ..(*)(..) | +| (const void *,const void *,int,int,..(*)(..),int) | | ossl_bsearch | 5 | int | +| (const void *,size_t,const char *,int) | | CRYPTO_memdup | 0 | const void * | +| (const void *,size_t,const char *,int) | | CRYPTO_memdup | 1 | size_t | +| (const void *,size_t,const char *,int) | | CRYPTO_memdup | 2 | const char * | +| (const void *,size_t,const char *,int) | | CRYPTO_memdup | 3 | int | +| (const void *,size_t,unsigned char *) | | WHIRLPOOL | 0 | const void * | +| (const void *,size_t,unsigned char *) | | WHIRLPOOL | 1 | size_t | +| (const void *,size_t,unsigned char *) | | WHIRLPOOL | 2 | unsigned char * | +| (const void *,size_t,unsigned char **,size_t *) | | ossl_prov_memdup | 0 | const void * | +| (const void *,size_t,unsigned char **,size_t *) | | ossl_prov_memdup | 1 | size_t | +| (const void *,size_t,unsigned char **,size_t *) | | ossl_prov_memdup | 2 | unsigned char ** | +| (const void *,size_t,unsigned char **,size_t *) | | ossl_prov_memdup | 3 | size_t * | +| (const void *,sqlite3 **) | | sqlite3_open16 | 0 | const void * | +| (const void *,sqlite3 **) | | sqlite3_open16 | 1 | sqlite3 ** | +| (const_DES_cblock *) | | DES_check_key_parity | 0 | const_DES_cblock * | | (const_iterator,InputIt,InputIt) | deque | insert | 0 | const_iterator | | (const_iterator,InputIt,InputIt) | deque | insert | 1 | func:0 | | (const_iterator,InputIt,InputIt) | deque | insert | 2 | func:0 | @@ -835,6 +26345,47 @@ getSignatureParameterName | (const_iterator,size_type,const T &) | vector | insert | 0 | const_iterator | | (const_iterator,size_type,const T &) | vector | insert | 1 | size_type | | (const_iterator,size_type,const T &) | vector | insert | 2 | const class:0 & | +| (curve448_point_t,const curve448_point_t) | | ossl_curve448_point_double | 0 | curve448_point_t | +| (curve448_point_t,const curve448_point_t) | | ossl_curve448_point_double | 1 | const curve448_point_t | +| (curve448_point_t,const curve448_precomputed_s *,const curve448_scalar_t) | | ossl_curve448_precomputed_scalarmul | 0 | curve448_point_t | +| (curve448_point_t,const curve448_precomputed_s *,const curve448_scalar_t) | | ossl_curve448_precomputed_scalarmul | 1 | const curve448_precomputed_s * | +| (curve448_point_t,const curve448_precomputed_s *,const curve448_scalar_t) | | ossl_curve448_precomputed_scalarmul | 2 | const curve448_scalar_t | +| (curve448_point_t,const curve448_scalar_t,const curve448_point_t,const curve448_scalar_t) | | ossl_curve448_base_double_scalarmul_non_secret | 0 | curve448_point_t | +| (curve448_point_t,const curve448_scalar_t,const curve448_point_t,const curve448_scalar_t) | | ossl_curve448_base_double_scalarmul_non_secret | 1 | const curve448_scalar_t | +| (curve448_point_t,const curve448_scalar_t,const curve448_point_t,const curve448_scalar_t) | | ossl_curve448_base_double_scalarmul_non_secret | 2 | const curve448_point_t | +| (curve448_point_t,const curve448_scalar_t,const curve448_point_t,const curve448_scalar_t) | | ossl_curve448_base_double_scalarmul_non_secret | 3 | const curve448_scalar_t | +| (curve448_point_t,const uint8_t[57]) | | ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio | 0 | curve448_point_t | +| (curve448_point_t,const uint8_t[57]) | | ossl_curve448_point_decode_like_eddsa_and_mul_by_ratio | 1 | const uint8_t[57] | +| (curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_halve | 0 | curve448_scalar_t | +| (curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_halve | 1 | const curve448_scalar_t | +| (curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_add | 0 | curve448_scalar_t | +| (curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_add | 1 | const curve448_scalar_t | +| (curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_add | 2 | const curve448_scalar_t | +| (curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_mul | 0 | curve448_scalar_t | +| (curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_mul | 1 | const curve448_scalar_t | +| (curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_mul | 2 | const curve448_scalar_t | +| (curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_sub | 0 | curve448_scalar_t | +| (curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_sub | 1 | const curve448_scalar_t | +| (curve448_scalar_t,const curve448_scalar_t,const curve448_scalar_t) | | ossl_curve448_scalar_sub | 2 | const curve448_scalar_t | +| (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 0 | curve448_scalar_t | +| (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 1 | const unsigned char * | +| (curve448_scalar_t,const unsigned char *,size_t) | | ossl_curve448_scalar_decode_long | 2 | size_t | +| (curve448_scalar_t,const unsigned char[56]) | | ossl_curve448_scalar_decode | 0 | curve448_scalar_t | +| (curve448_scalar_t,const unsigned char[56]) | | ossl_curve448_scalar_decode | 1 | const unsigned char[56] | +| (custom_ext_methods *,const custom_ext_methods *) | | custom_exts_copy | 0 | custom_ext_methods * | +| (custom_ext_methods *,const custom_ext_methods *) | | custom_exts_copy | 1 | const custom_ext_methods * | +| (d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *) | | PEM_ASN1_read_bio | 0 | d2i_of_void * | +| (d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *) | | PEM_ASN1_read_bio | 1 | const char * | +| (d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *) | | PEM_ASN1_read_bio | 2 | BIO * | +| (d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *) | | PEM_ASN1_read_bio | 3 | void ** | +| (d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *) | | PEM_ASN1_read_bio | 4 | pem_password_cb * | +| (d2i_of_void *,const char *,BIO *,void **,pem_password_cb *,void *) | | PEM_ASN1_read_bio | 5 | void * | +| (d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *) | | PEM_ASN1_read | 0 | d2i_of_void * | +| (d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *) | | PEM_ASN1_read | 1 | const char * | +| (d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *) | | PEM_ASN1_read | 2 | FILE * | +| (d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *) | | PEM_ASN1_read | 3 | void ** | +| (d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *) | | PEM_ASN1_read | 4 | pem_password_cb * | +| (d2i_of_void *,const char *,FILE *,void **,pem_password_cb *,void *) | | PEM_ASN1_read | 5 | void * | | (deque &&) | deque | deque | 0 | deque && | | (deque &&,const Allocator &) | deque | deque | 0 | deque && | | (deque &&,const Allocator &) | deque | deque | 1 | const class:1 & | @@ -843,17 +26394,689 @@ getSignatureParameterName | (forward_list &&) | forward_list | forward_list | 0 | forward_list && | | (forward_list &&,const Allocator &) | forward_list | forward_list | 0 | forward_list && | | (forward_list &&,const Allocator &) | forward_list | forward_list | 1 | const class:1 & | +| (gf,const gf,const gf) | | gf_add | 0 | gf | +| (gf,const gf,const gf) | | gf_add | 1 | const gf | +| (gf,const gf,const gf) | | gf_add | 2 | const gf | +| (gf,const gf,const gf) | | gf_sub | 0 | gf | +| (gf,const gf,const gf) | | gf_sub | 1 | const gf | +| (gf,const gf,const gf) | | gf_sub | 2 | const gf | +| (gf,const uint8_t[56],int,uint8_t) | | gf_deserialize | 0 | gf | +| (gf,const uint8_t[56],int,uint8_t) | | gf_deserialize | 1 | const uint8_t[56] | +| (gf,const uint8_t[56],int,uint8_t) | | gf_deserialize | 2 | int | +| (gf,const uint8_t[56],int,uint8_t) | | gf_deserialize | 3 | uint8_t | +| (i2d_of_void *,BIO *,const void *) | | ASN1_i2d_bio | 0 | i2d_of_void * | +| (i2d_of_void *,BIO *,const void *) | | ASN1_i2d_bio | 1 | BIO * | +| (i2d_of_void *,BIO *,const void *) | | ASN1_i2d_bio | 2 | const void * | +| (i2d_of_void *,FILE *,const void *) | | ASN1_i2d_fp | 0 | i2d_of_void * | +| (i2d_of_void *,FILE *,const void *) | | ASN1_i2d_fp | 1 | FILE * | +| (i2d_of_void *,FILE *,const void *) | | ASN1_i2d_fp | 2 | const void * | +| (i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *) | | ASN1_sign | 0 | i2d_of_void * | +| (i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *) | | ASN1_sign | 1 | X509_ALGOR * | +| (i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *) | | ASN1_sign | 2 | X509_ALGOR * | +| (i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *) | | ASN1_sign | 3 | ASN1_BIT_STRING * | +| (i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *) | | ASN1_sign | 4 | char * | +| (i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *) | | ASN1_sign | 5 | EVP_PKEY * | +| (i2d_of_void *,X509_ALGOR *,X509_ALGOR *,ASN1_BIT_STRING *,char *,EVP_PKEY *,const EVP_MD *) | | ASN1_sign | 6 | const EVP_MD * | +| (i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio | 0 | i2d_of_void * | +| (i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio | 1 | const char * | +| (i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio | 2 | BIO * | +| (i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio | 3 | const void * | +| (i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio | 4 | const EVP_CIPHER * | +| (i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio | 5 | const unsigned char * | +| (i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio | 6 | int | +| (i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio | 7 | pem_password_cb * | +| (i2d_of_void *,const char *,BIO *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write_bio | 8 | void * | +| (i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write | 0 | i2d_of_void * | +| (i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write | 1 | const char * | +| (i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write | 2 | FILE * | +| (i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write | 3 | const void * | +| (i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write | 4 | const EVP_CIPHER * | +| (i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write | 5 | const unsigned char * | +| (i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write | 6 | int | +| (i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write | 7 | pem_password_cb * | +| (i2d_of_void *,const char *,FILE *,const void *,const EVP_CIPHER *,const unsigned char *,int,pem_password_cb *,void *) | | PEM_ASN1_write | 8 | void * | +| (i2d_of_void *,d2i_of_void *,const void *) | | ASN1_dup | 0 | i2d_of_void * | +| (i2d_of_void *,d2i_of_void *,const void *) | | ASN1_dup | 1 | d2i_of_void * | +| (i2d_of_void *,d2i_of_void *,const void *) | | ASN1_dup | 2 | const void * | +| (int64_t *,const ASN1_ENUMERATED *) | | ASN1_ENUMERATED_get_int64 | 0 | int64_t * | +| (int64_t *,const ASN1_ENUMERATED *) | | ASN1_ENUMERATED_get_int64 | 1 | const ASN1_ENUMERATED * | +| (int64_t *,const ASN1_INTEGER *) | | ASN1_INTEGER_get_int64 | 0 | int64_t * | +| (int64_t *,const ASN1_INTEGER *) | | ASN1_INTEGER_get_int64 | 1 | const ASN1_INTEGER * | +| (int *,ASN1_TIME **,const ASN1_TIME *) | | ossl_x509_set1_time | 0 | int * | +| (int *,ASN1_TIME **,const ASN1_TIME *) | | ossl_x509_set1_time | 1 | ASN1_TIME ** | +| (int *,ASN1_TIME **,const ASN1_TIME *) | | ossl_x509_set1_time | 2 | const ASN1_TIME * | +| (int *,X509 *,stack_st_X509 *,unsigned long) | | X509_chain_check_suiteb | 0 | int * | +| (int *,X509 *,stack_st_X509 *,unsigned long) | | X509_chain_check_suiteb | 1 | X509 * | +| (int *,X509 *,stack_st_X509 *,unsigned long) | | X509_chain_check_suiteb | 2 | stack_st_X509 * | +| (int *,X509 *,stack_st_X509 *,unsigned long) | | X509_chain_check_suiteb | 3 | unsigned long | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 0 | int * | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 1 | const char * | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 2 | const char * | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 3 | const char * | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 4 | const char * | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 5 | int | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 6 | int | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 7 | int | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 8 | int | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 9 | int | +| (int *,const char *,const char *,const char *,const char *,int,int,int,int,int,BIO_ADDR **) | | init_client | 10 | BIO_ADDR ** | +| (int *,int *,const ASN1_TIME *,const ASN1_TIME *) | | ASN1_TIME_diff | 0 | int * | +| (int *,int *,const ASN1_TIME *,const ASN1_TIME *) | | ASN1_TIME_diff | 1 | int * | +| (int *,int *,const ASN1_TIME *,const ASN1_TIME *) | | ASN1_TIME_diff | 2 | const ASN1_TIME * | +| (int *,int *,const ASN1_TIME *,const ASN1_TIME *) | | ASN1_TIME_diff | 3 | const ASN1_TIME * | +| (int *,int *,const EVP_PKEY_METHOD *) | | EVP_PKEY_meth_get0_info | 0 | int * | +| (int *,int *,const EVP_PKEY_METHOD *) | | EVP_PKEY_meth_get0_info | 1 | int * | +| (int *,int *,const EVP_PKEY_METHOD *) | | EVP_PKEY_meth_get0_info | 2 | const EVP_PKEY_METHOD * | +| (int *,int *,const tm *,const tm *) | | OPENSSL_gmtime_diff | 0 | int * | +| (int *,int *,const tm *,const tm *) | | OPENSSL_gmtime_diff | 1 | int * | +| (int *,int *,const tm *,const tm *) | | OPENSSL_gmtime_diff | 2 | const tm * | +| (int *,int *,const tm *,const tm *) | | OPENSSL_gmtime_diff | 3 | const tm * | +| (int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *) | | EVP_PKEY_asn1_get0_info | 0 | int * | +| (int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *) | | EVP_PKEY_asn1_get0_info | 1 | int * | +| (int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *) | | EVP_PKEY_asn1_get0_info | 2 | int * | +| (int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *) | | EVP_PKEY_asn1_get0_info | 3 | const char ** | +| (int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *) | | EVP_PKEY_asn1_get0_info | 4 | const char ** | +| (int *,int *,int *,const char **,const char **,const EVP_PKEY_ASN1_METHOD *) | | EVP_PKEY_asn1_get0_info | 5 | const EVP_PKEY_ASN1_METHOD * | +| (int *,int *,size_t) | | EVP_PBE_get | 0 | int * | +| (int *,int *,size_t) | | EVP_PBE_get | 1 | int * | +| (int *,int *,size_t) | | EVP_PBE_get | 2 | size_t | +| (int *,int) | | X509_PURPOSE_set | 0 | int * | +| (int *,int) | | X509_PURPOSE_set | 1 | int | +| (int *,int) | | X509_TRUST_set | 0 | int * | +| (int *,int) | | X509_TRUST_set | 1 | int | +| (int *,sqlite3_stmt *) | | shellReset | 0 | int * | +| (int *,sqlite3_stmt *) | | shellReset | 1 | sqlite3_stmt * | +| (int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_enc_restore | 0 | int * | +| (int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_enc_restore | 1 | unsigned char ** | +| (int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_enc_restore | 2 | const ASN1_VALUE ** | +| (int *,unsigned char **,const ASN1_VALUE **,const ASN1_ITEM *) | | ossl_asn1_enc_restore | 3 | const ASN1_ITEM * | +| (int) | | ASN1_STRING_type_new | 0 | int | +| (int) | | ASN1_tag2bit | 0 | int | +| (int) | | ASN1_tag2str | 0 | int | +| (int) | | EVP_PKEY_asn1_get0 | 0 | int | +| (int) | | Jim_ReturnCode | 0 | int | +| (int) | | Jim_SignalId | 0 | int | +| (int) | | OBJ_nid2ln | 0 | int | +| (int) | | OBJ_nid2obj | 0 | int | +| (int) | | OBJ_nid2sn | 0 | int | +| (int) | | OSSL_STORE_INFO_type_string | 0 | int | +| (int) | | OSSL_trace_get_category_name | 0 | int | +| (int) | | PKCS12_init | 0 | int | +| (int) | | Symbol_Nth | 0 | int | +| (int) | | X509_PURPOSE_get0 | 0 | int | +| (int) | | X509_PURPOSE_get_by_id | 0 | int | +| (int) | | X509_TRUST_get0 | 0 | int | +| (int) | | X509_TRUST_get_by_id | 0 | int | +| (int) | | X509_VERIFY_PARAM_get0 | 0 | int | +| (int) | | evp_pkey_type2name | 0 | int | +| (int) | | ossl_cmp_bodytype_to_string | 0 | int | +| (int) | | ossl_tolower | 0 | int | +| (int) | | ossl_toupper | 0 | int | +| (int) | | pulldown_test_framework | 0 | int | +| (int) | | sqlite3_compileoption_get | 0 | int | +| (int) | | sqlite3_errstr | 0 | int | +| (int) | | tls1_alert_code | 0 | int | +| (int) | | tls13_alert_code | 0 | int | +| (int) | | wait_until_sock_readable | 0 | int | +| (int,BIO_ADDR *,int) | | BIO_accept_ex | 0 | int | +| (int,BIO_ADDR *,int) | | BIO_accept_ex | 1 | BIO_ADDR * | +| (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | int | +| (int,CRYPTO_EX_DATA *,const CRYPTO_EX_DATA *) | | CRYPTO_dup_ex_data | 0 | int | +| (int,CRYPTO_EX_DATA *,const CRYPTO_EX_DATA *) | | CRYPTO_dup_ex_data | 1 | CRYPTO_EX_DATA * | +| (int,CRYPTO_EX_DATA *,const CRYPTO_EX_DATA *) | | CRYPTO_dup_ex_data | 2 | const CRYPTO_EX_DATA * | +| (int,ENGINE *) | | EVP_PKEY_CTX_new_id | 0 | int | +| (int,ENGINE *) | | EVP_PKEY_CTX_new_id | 1 | ENGINE * | +| (int,ENGINE *,const unsigned char *,int) | | EVP_PKEY_new_mac_key | 0 | int | +| (int,ENGINE *,const unsigned char *,int) | | EVP_PKEY_new_mac_key | 1 | ENGINE * | +| (int,ENGINE *,const unsigned char *,int) | | EVP_PKEY_new_mac_key | 2 | const unsigned char * | +| (int,ENGINE *,const unsigned char *,int) | | EVP_PKEY_new_mac_key | 3 | int | +| (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_private_key | 0 | int | +| (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_private_key | 1 | ENGINE * | +| (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_private_key | 2 | const unsigned char * | +| (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_private_key | 3 | size_t | +| (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_public_key | 0 | int | +| (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_public_key | 1 | ENGINE * | +| (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_public_key | 2 | const unsigned char * | +| (int,ENGINE *,const unsigned char *,size_t) | | EVP_PKEY_new_raw_public_key | 3 | size_t | +| (int,ERR_STRING_DATA *) | | ERR_load_strings | 0 | int | +| (int,ERR_STRING_DATA *) | | ERR_load_strings | 1 | ERR_STRING_DATA * | +| (int,ERR_STRING_DATA *) | | ERR_unload_strings | 0 | int | +| (int,ERR_STRING_DATA *) | | ERR_unload_strings | 1 | ERR_STRING_DATA * | +| (int,EVP_PKEY **,BIO *) | | d2i_KeyParams_bio | 0 | int | +| (int,EVP_PKEY **,BIO *) | | d2i_KeyParams_bio | 1 | EVP_PKEY ** | +| (int,EVP_PKEY **,BIO *) | | d2i_KeyParams_bio | 2 | BIO * | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_KeyParams | 0 | int | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_KeyParams | 1 | EVP_PKEY ** | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_KeyParams | 2 | const unsigned char ** | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_KeyParams | 3 | long | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_PrivateKey | 0 | int | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_PrivateKey | 1 | EVP_PKEY ** | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_PrivateKey | 2 | const unsigned char ** | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_PrivateKey | 3 | long | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_PublicKey | 0 | int | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_PublicKey | 1 | EVP_PKEY ** | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_PublicKey | 2 | const unsigned char ** | +| (int,EVP_PKEY **,const unsigned char **,long) | | d2i_PublicKey | 3 | long | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex | 0 | int | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex | 1 | EVP_PKEY ** | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex | 2 | const unsigned char ** | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex | 3 | long | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex | 4 | OSSL_LIB_CTX * | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | d2i_PrivateKey_ex | 5 | const char * | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_PrivateKey_legacy | 0 | int | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_PrivateKey_legacy | 1 | EVP_PKEY ** | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_PrivateKey_legacy | 2 | const unsigned char ** | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_PrivateKey_legacy | 3 | long | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_PrivateKey_legacy | 4 | OSSL_LIB_CTX * | +| (int,EVP_PKEY **,const unsigned char **,long,OSSL_LIB_CTX *,const char *) | | ossl_d2i_PrivateKey_legacy | 5 | const char * | | (int,LPCOLESTR) | CComBSTR | CComBSTR | 0 | int | | (int,LPCOLESTR) | CComBSTR | CComBSTR | 1 | LPCOLESTR | | (int,LPCSTR) | CComBSTR | CComBSTR | 0 | int | | (int,LPCSTR) | CComBSTR | CComBSTR | 1 | LPCSTR | +| (int,OCSP_BASICRESP *) | | OCSP_response_create | 0 | int | +| (int,OCSP_BASICRESP *) | | OCSP_response_create | 1 | OCSP_BASICRESP * | +| (int,OSSL_CRMF_MSG *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | OSSL_CRMF_MSG_create_popo | 0 | int | +| (int,OSSL_CRMF_MSG *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | OSSL_CRMF_MSG_create_popo | 1 | OSSL_CRMF_MSG * | +| (int,OSSL_CRMF_MSG *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | OSSL_CRMF_MSG_create_popo | 2 | EVP_PKEY * | +| (int,OSSL_CRMF_MSG *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | OSSL_CRMF_MSG_create_popo | 3 | const EVP_MD * | +| (int,OSSL_CRMF_MSG *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | OSSL_CRMF_MSG_create_popo | 4 | OSSL_LIB_CTX * | +| (int,OSSL_CRMF_MSG *,EVP_PKEY *,const EVP_MD *,OSSL_LIB_CTX *,const char *) | | OSSL_CRMF_MSG_create_popo | 5 | const char * | +| (int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_CTX_new | 0 | int | +| (int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_CTX_new | 1 | OSSL_HPKE_SUITE | +| (int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_CTX_new | 2 | int | +| (int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_CTX_new | 3 | OSSL_LIB_CTX * | +| (int,OSSL_HPKE_SUITE,int,OSSL_LIB_CTX *,const char *) | | OSSL_HPKE_CTX_new | 4 | const char * | +| (int,OSSL_LIB_CTX *) | | ossl_rcu_lock_new | 0 | int | +| (int,OSSL_LIB_CTX *) | | ossl_rcu_lock_new | 1 | OSSL_LIB_CTX * | +| (int,OSSL_LIB_CTX *,const char *) | | PKCS12_init_ex | 0 | int | +| (int,OSSL_LIB_CTX *,const char *) | | PKCS12_init_ex | 1 | OSSL_LIB_CTX * | +| (int,OSSL_LIB_CTX *,const char *) | | PKCS12_init_ex | 2 | const char * | | (int,PCXSTR) | CStringT | Insert | 0 | int | | (int,PCXSTR) | CStringT | Insert | 1 | PCXSTR | +| (int,SSL *,const unsigned char *,long) | | SSL_use_PrivateKey_ASN1 | 0 | int | +| (int,SSL *,const unsigned char *,long) | | SSL_use_PrivateKey_ASN1 | 1 | SSL * | +| (int,SSL *,const unsigned char *,long) | | SSL_use_PrivateKey_ASN1 | 2 | const unsigned char * | +| (int,SSL *,const unsigned char *,long) | | SSL_use_PrivateKey_ASN1 | 3 | long | +| (int,SSL_CTX *,const unsigned char *,long) | | SSL_CTX_use_PrivateKey_ASN1 | 0 | int | +| (int,SSL_CTX *,const unsigned char *,long) | | SSL_CTX_use_PrivateKey_ASN1 | 1 | SSL_CTX * | +| (int,SSL_CTX *,const unsigned char *,long) | | SSL_CTX_use_PrivateKey_ASN1 | 2 | const unsigned char * | +| (int,SSL_CTX *,const unsigned char *,long) | | SSL_CTX_use_PrivateKey_ASN1 | 3 | long | +| (int,SSL_EXCERT **) | | args_excert | 0 | int | +| (int,SSL_EXCERT **) | | args_excert | 1 | SSL_EXCERT ** | +| (int,X509_STORE_CTX *) | | X509_STORE_CTX_print_verify_cb | 0 | int | +| (int,X509_STORE_CTX *) | | X509_STORE_CTX_print_verify_cb | 1 | X509_STORE_CTX * | +| (int,X509_STORE_CTX *) | | verify_callback | 0 | int | +| (int,X509_STORE_CTX *) | | verify_callback | 1 | X509_STORE_CTX * | | (int,XCHAR) | CStringT | Insert | 0 | int | | (int,XCHAR) | CStringT | Insert | 1 | XCHAR | +| (int,char **) | | BIO_accept | 0 | int | +| (int,char **) | | BIO_accept | 1 | char ** | +| (int,char **,char *[]) | | ca_main | 0 | int | +| (int,char **,char *[]) | | ca_main | 1 | char ** | +| (int,char **,char *[]) | | ca_main | 2 | char *[] | +| (int,char **,char *[]) | | ciphers_main | 0 | int | +| (int,char **,char *[]) | | ciphers_main | 1 | char ** | +| (int,char **,char *[]) | | ciphers_main | 2 | char *[] | +| (int,char **,char *[]) | | cmp_main | 0 | int | +| (int,char **,char *[]) | | cmp_main | 1 | char ** | +| (int,char **,char *[]) | | cmp_main | 2 | char *[] | +| (int,char **,char *[]) | | cms_main | 0 | int | +| (int,char **,char *[]) | | cms_main | 1 | char ** | +| (int,char **,char *[]) | | cms_main | 2 | char *[] | +| (int,char **,char *[]) | | crl2pkcs7_main | 0 | int | +| (int,char **,char *[]) | | crl2pkcs7_main | 1 | char ** | +| (int,char **,char *[]) | | crl2pkcs7_main | 2 | char *[] | +| (int,char **,char *[]) | | crl_main | 0 | int | +| (int,char **,char *[]) | | crl_main | 1 | char ** | +| (int,char **,char *[]) | | crl_main | 2 | char *[] | +| (int,char **,char *[]) | | dgst_main | 0 | int | +| (int,char **,char *[]) | | dgst_main | 1 | char ** | +| (int,char **,char *[]) | | dgst_main | 2 | char *[] | +| (int,char **,char *[]) | | dhparam_main | 0 | int | +| (int,char **,char *[]) | | dhparam_main | 1 | char ** | +| (int,char **,char *[]) | | dhparam_main | 2 | char *[] | +| (int,char **,char *[]) | | dsa_main | 0 | int | +| (int,char **,char *[]) | | dsa_main | 1 | char ** | +| (int,char **,char *[]) | | dsa_main | 2 | char *[] | +| (int,char **,char *[]) | | dsaparam_main | 0 | int | +| (int,char **,char *[]) | | dsaparam_main | 1 | char ** | +| (int,char **,char *[]) | | dsaparam_main | 2 | char *[] | +| (int,char **,char *[]) | | ec_main | 0 | int | +| (int,char **,char *[]) | | ec_main | 1 | char ** | +| (int,char **,char *[]) | | ec_main | 2 | char *[] | +| (int,char **,char *[]) | | ecparam_main | 0 | int | +| (int,char **,char *[]) | | ecparam_main | 1 | char ** | +| (int,char **,char *[]) | | ecparam_main | 2 | char *[] | +| (int,char **,char *[]) | | enc_main | 0 | int | +| (int,char **,char *[]) | | enc_main | 1 | char ** | +| (int,char **,char *[]) | | enc_main | 2 | char *[] | +| (int,char **,char *[]) | | engine_main | 0 | int | +| (int,char **,char *[]) | | engine_main | 1 | char ** | +| (int,char **,char *[]) | | engine_main | 2 | char *[] | +| (int,char **,char *[]) | | errstr_main | 0 | int | +| (int,char **,char *[]) | | errstr_main | 1 | char ** | +| (int,char **,char *[]) | | errstr_main | 2 | char *[] | +| (int,char **,char *[]) | | fipsinstall_main | 0 | int | +| (int,char **,char *[]) | | fipsinstall_main | 1 | char ** | +| (int,char **,char *[]) | | fipsinstall_main | 2 | char *[] | +| (int,char **,char *[]) | | gendsa_main | 0 | int | +| (int,char **,char *[]) | | gendsa_main | 1 | char ** | +| (int,char **,char *[]) | | gendsa_main | 2 | char *[] | +| (int,char **,char *[]) | | genpkey_main | 0 | int | +| (int,char **,char *[]) | | genpkey_main | 1 | char ** | +| (int,char **,char *[]) | | genpkey_main | 2 | char *[] | +| (int,char **,char *[]) | | genrsa_main | 0 | int | +| (int,char **,char *[]) | | genrsa_main | 1 | char ** | +| (int,char **,char *[]) | | genrsa_main | 2 | char *[] | +| (int,char **,char *[]) | | help_main | 0 | int | +| (int,char **,char *[]) | | help_main | 1 | char ** | +| (int,char **,char *[]) | | help_main | 2 | char *[] | +| (int,char **,char *[]) | | info_main | 0 | int | +| (int,char **,char *[]) | | info_main | 1 | char ** | +| (int,char **,char *[]) | | info_main | 2 | char *[] | +| (int,char **,char *[]) | | kdf_main | 0 | int | +| (int,char **,char *[]) | | kdf_main | 1 | char ** | +| (int,char **,char *[]) | | kdf_main | 2 | char *[] | +| (int,char **,char *[]) | | list_main | 0 | int | +| (int,char **,char *[]) | | list_main | 1 | char ** | +| (int,char **,char *[]) | | list_main | 2 | char *[] | +| (int,char **,char *[]) | | mac_main | 0 | int | +| (int,char **,char *[]) | | mac_main | 1 | char ** | +| (int,char **,char *[]) | | mac_main | 2 | char *[] | +| (int,char **,char *[]) | | nseq_main | 0 | int | +| (int,char **,char *[]) | | nseq_main | 1 | char ** | +| (int,char **,char *[]) | | nseq_main | 2 | char *[] | +| (int,char **,char *[]) | | ocsp_main | 0 | int | +| (int,char **,char *[]) | | ocsp_main | 1 | char ** | +| (int,char **,char *[]) | | ocsp_main | 2 | char *[] | +| (int,char **,char *[]) | | passwd_main | 0 | int | +| (int,char **,char *[]) | | passwd_main | 1 | char ** | +| (int,char **,char *[]) | | passwd_main | 2 | char *[] | +| (int,char **,char *[]) | | pkcs7_main | 0 | int | +| (int,char **,char *[]) | | pkcs7_main | 1 | char ** | +| (int,char **,char *[]) | | pkcs7_main | 2 | char *[] | +| (int,char **,char *[]) | | pkcs8_main | 0 | int | +| (int,char **,char *[]) | | pkcs8_main | 1 | char ** | +| (int,char **,char *[]) | | pkcs8_main | 2 | char *[] | +| (int,char **,char *[]) | | pkcs12_main | 0 | int | +| (int,char **,char *[]) | | pkcs12_main | 1 | char ** | +| (int,char **,char *[]) | | pkcs12_main | 2 | char *[] | +| (int,char **,char *[]) | | pkey_main | 0 | int | +| (int,char **,char *[]) | | pkey_main | 1 | char ** | +| (int,char **,char *[]) | | pkey_main | 2 | char *[] | +| (int,char **,char *[]) | | pkeyparam_main | 0 | int | +| (int,char **,char *[]) | | pkeyparam_main | 1 | char ** | +| (int,char **,char *[]) | | pkeyparam_main | 2 | char *[] | +| (int,char **,char *[]) | | pkeyutl_main | 0 | int | +| (int,char **,char *[]) | | pkeyutl_main | 1 | char ** | +| (int,char **,char *[]) | | pkeyutl_main | 2 | char *[] | +| (int,char **,char *[]) | | prime_main | 0 | int | +| (int,char **,char *[]) | | prime_main | 1 | char ** | +| (int,char **,char *[]) | | prime_main | 2 | char *[] | +| (int,char **,char *[]) | | rand_main | 0 | int | +| (int,char **,char *[]) | | rand_main | 1 | char ** | +| (int,char **,char *[]) | | rand_main | 2 | char *[] | +| (int,char **,char *[]) | | rehash_main | 0 | int | +| (int,char **,char *[]) | | rehash_main | 1 | char ** | +| (int,char **,char *[]) | | rehash_main | 2 | char *[] | +| (int,char **,char *[]) | | req_main | 0 | int | +| (int,char **,char *[]) | | req_main | 1 | char ** | +| (int,char **,char *[]) | | req_main | 2 | char *[] | +| (int,char **,char *[]) | | rsa_main | 0 | int | +| (int,char **,char *[]) | | rsa_main | 1 | char ** | +| (int,char **,char *[]) | | rsa_main | 2 | char *[] | +| (int,char **,char *[]) | | rsautl_main | 0 | int | +| (int,char **,char *[]) | | rsautl_main | 1 | char ** | +| (int,char **,char *[]) | | rsautl_main | 2 | char *[] | +| (int,char **,char *[]) | | s_client_main | 0 | int | +| (int,char **,char *[]) | | s_client_main | 1 | char ** | +| (int,char **,char *[]) | | s_client_main | 2 | char *[] | +| (int,char **,char *[]) | | s_time_main | 0 | int | +| (int,char **,char *[]) | | s_time_main | 1 | char ** | +| (int,char **,char *[]) | | s_time_main | 2 | char *[] | +| (int,char **,char *[]) | | sess_id_main | 0 | int | +| (int,char **,char *[]) | | sess_id_main | 1 | char ** | +| (int,char **,char *[]) | | sess_id_main | 2 | char *[] | +| (int,char **,char *[]) | | skeyutl_main | 0 | int | +| (int,char **,char *[]) | | skeyutl_main | 1 | char ** | +| (int,char **,char *[]) | | skeyutl_main | 2 | char *[] | +| (int,char **,char *[]) | | smime_main | 0 | int | +| (int,char **,char *[]) | | smime_main | 1 | char ** | +| (int,char **,char *[]) | | smime_main | 2 | char *[] | +| (int,char **,char *[]) | | speed_main | 0 | int | +| (int,char **,char *[]) | | speed_main | 1 | char ** | +| (int,char **,char *[]) | | speed_main | 2 | char *[] | +| (int,char **,char *[]) | | spkac_main | 0 | int | +| (int,char **,char *[]) | | spkac_main | 1 | char ** | +| (int,char **,char *[]) | | spkac_main | 2 | char *[] | +| (int,char **,char *[]) | | srp_main | 0 | int | +| (int,char **,char *[]) | | srp_main | 1 | char ** | +| (int,char **,char *[]) | | srp_main | 2 | char *[] | +| (int,char **,char *[]) | | ts_main | 0 | int | +| (int,char **,char *[]) | | ts_main | 1 | char ** | +| (int,char **,char *[]) | | ts_main | 2 | char *[] | +| (int,char **,char *[]) | | verify_main | 0 | int | +| (int,char **,char *[]) | | verify_main | 1 | char ** | +| (int,char **,char *[]) | | verify_main | 2 | char *[] | +| (int,char **,char *[]) | | version_main | 0 | int | +| (int,char **,char *[]) | | version_main | 1 | char ** | +| (int,char **,char *[]) | | version_main | 2 | char *[] | +| (int,char **,char *[]) | | x509_main | 0 | int | +| (int,char **,char *[]) | | x509_main | 1 | char ** | +| (int,char **,char *[]) | | x509_main | 2 | char *[] | +| (int,char **,const OPTIONS *) | | opt_init | 0 | int | +| (int,char **,const OPTIONS *) | | opt_init | 1 | char ** | +| (int,char **,const OPTIONS *) | | opt_init | 2 | const OPTIONS * | +| (int,char *,const char *,...) | | sqlite3_snprintf | 0 | int | +| (int,char *,const char *,...) | | sqlite3_snprintf | 1 | char * | +| (int,char *,const char *,...) | | sqlite3_snprintf | 2 | const char * | +| (int,char *,const char *,...) | | sqlite3_snprintf | 3 | ... | +| (int,char *,const char *,va_list) | | sqlite3_vsnprintf | 0 | int | +| (int,char *,const char *,va_list) | | sqlite3_vsnprintf | 1 | char * | +| (int,char *,const char *,va_list) | | sqlite3_vsnprintf | 2 | const char * | +| (int,char *,const char *,va_list) | | sqlite3_vsnprintf | 3 | va_list | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 0 | int | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 1 | const EVP_CIPHER * | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 2 | const char * | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 3 | int | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 4 | unsigned char * | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 5 | int | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 6 | int | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS8_encrypt | 7 | PKCS8_PRIV_KEY_INFO * | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS8_encrypt_ex | 0 | int | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS8_encrypt_ex | 1 | const EVP_CIPHER * | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS8_encrypt_ex | 2 | const char * | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS8_encrypt_ex | 3 | int | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS8_encrypt_ex | 4 | unsigned char * | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS8_encrypt_ex | 5 | int | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS8_encrypt_ex | 6 | int | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS8_encrypt_ex | 7 | PKCS8_PRIV_KEY_INFO * | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS8_encrypt_ex | 8 | OSSL_LIB_CTX * | +| (int,const EVP_CIPHER *,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS8_encrypt_ex | 9 | const char * | +| (int,const OSSL_ALGORITHM *,OSSL_PROVIDER *) | | ossl_decoder_from_algorithm | 0 | int | +| (int,const OSSL_ALGORITHM *,OSSL_PROVIDER *) | | ossl_decoder_from_algorithm | 1 | const OSSL_ALGORITHM * | +| (int,const OSSL_ALGORITHM *,OSSL_PROVIDER *) | | ossl_decoder_from_algorithm | 2 | OSSL_PROVIDER * | +| (int,const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get0_data | 0 | int | +| (int,const OSSL_STORE_INFO *) | | OSSL_STORE_INFO_get0_data | 1 | const OSSL_STORE_INFO * | +| (int,const char *) | | BIO_meth_new | 0 | int | +| (int,const char *) | | BIO_meth_new | 1 | const char * | +| (int,const char **,int *) | | sqlite3_keyword_name | 0 | int | +| (int,const char **,int *) | | sqlite3_keyword_name | 1 | const char ** | +| (int,const char **,int *) | | sqlite3_keyword_name | 2 | int * | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt | 0 | int | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt | 1 | const char * | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt | 2 | int | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt | 3 | unsigned char * | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt | 4 | int | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt | 5 | int | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt | 6 | PKCS8_PRIV_KEY_INFO * | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt_ex | 0 | int | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt_ex | 1 | const char * | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt_ex | 2 | int | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt_ex | 3 | unsigned char * | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt_ex | 4 | int | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt_ex | 5 | int | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt_ex | 6 | PKCS8_PRIV_KEY_INFO * | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt_ex | 7 | OSSL_LIB_CTX * | +| (int,const char *,int,unsigned char *,int,int,PKCS8_PRIV_KEY_INFO *,OSSL_LIB_CTX *,const char *) | | PKCS12_SAFEBAG_create_pkcs8_encrypt_ex | 8 | const char * | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *) | | PKCS12_pack_p7encdata | 0 | int | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *) | | PKCS12_pack_p7encdata | 1 | const char * | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *) | | PKCS12_pack_p7encdata | 2 | int | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *) | | PKCS12_pack_p7encdata | 3 | unsigned char * | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *) | | PKCS12_pack_p7encdata | 4 | int | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *) | | PKCS12_pack_p7encdata | 5 | int | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *) | | PKCS12_pack_p7encdata | 6 | stack_st_PKCS12_SAFEBAG * | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 0 | int | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 1 | const char * | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 2 | int | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 3 | unsigned char * | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 4 | int | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 5 | int | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 6 | stack_st_PKCS12_SAFEBAG * | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 7 | OSSL_LIB_CTX * | +| (int,const char *,int,unsigned char *,int,int,stack_st_PKCS12_SAFEBAG *,OSSL_LIB_CTX *,const char *) | | PKCS12_pack_p7encdata_ex | 8 | const char * | +| (int,const regex_t *,char *,size_t) | | jim_regerror | 0 | int | +| (int,const regex_t *,char *,size_t) | | jim_regerror | 1 | const regex_t * | +| (int,const regex_t *,char *,size_t) | | jim_regerror | 2 | char * | +| (int,const regex_t *,char *,size_t) | | jim_regerror | 3 | size_t | +| (int,const unsigned char *,int,const unsigned char *,int,DSA *) | | DSA_verify | 0 | int | +| (int,const unsigned char *,int,const unsigned char *,int,DSA *) | | DSA_verify | 1 | const unsigned char * | +| (int,const unsigned char *,int,const unsigned char *,int,DSA *) | | DSA_verify | 2 | int | +| (int,const unsigned char *,int,const unsigned char *,int,DSA *) | | DSA_verify | 3 | const unsigned char * | +| (int,const unsigned char *,int,const unsigned char *,int,DSA *) | | DSA_verify | 4 | int | +| (int,const unsigned char *,int,const unsigned char *,int,DSA *) | | DSA_verify | 5 | DSA * | +| (int,const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_ecdsa_verify | 0 | int | +| (int,const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_ecdsa_verify | 1 | const unsigned char * | +| (int,const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_ecdsa_verify | 2 | int | +| (int,const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_ecdsa_verify | 3 | const unsigned char * | +| (int,const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_ecdsa_verify | 4 | int | +| (int,const unsigned char *,int,const unsigned char *,int,EC_KEY *) | | ossl_ecdsa_verify | 5 | EC_KEY * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *) | | DSA_sign | 0 | int | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *) | | DSA_sign | 1 | const unsigned char * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *) | | DSA_sign | 2 | int | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *) | | DSA_sign | 3 | unsigned char * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *) | | DSA_sign | 4 | unsigned int * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *) | | DSA_sign | 5 | DSA * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_sign_int | 0 | int | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_sign_int | 1 | const unsigned char * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_sign_int | 2 | int | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_sign_int | 3 | unsigned char * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_sign_int | 4 | unsigned int * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_sign_int | 5 | DSA * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_sign_int | 6 | unsigned int | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_sign_int | 7 | const char * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_sign_int | 8 | OSSL_LIB_CTX * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,DSA *,unsigned int,const char *,OSSL_LIB_CTX *,const char *) | | ossl_dsa_sign_int | 9 | const char * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_sign | 0 | int | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_sign | 1 | const unsigned char * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_sign | 2 | int | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_sign | 3 | unsigned char * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_sign | 4 | unsigned int * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_sign | 5 | const BIGNUM * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_sign | 6 | const BIGNUM * | +| (int,const unsigned char *,int,unsigned char *,unsigned int *,const BIGNUM *,const BIGNUM *,EC_KEY *) | | ossl_ecdsa_sign | 7 | EC_KEY * | +| (int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *) | | ossl_rsa_verify | 0 | int | +| (int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *) | | ossl_rsa_verify | 1 | const unsigned char * | +| (int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *) | | ossl_rsa_verify | 2 | unsigned int | +| (int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *) | | ossl_rsa_verify | 3 | unsigned char * | +| (int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *) | | ossl_rsa_verify | 4 | size_t * | +| (int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *) | | ossl_rsa_verify | 5 | const unsigned char * | +| (int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *) | | ossl_rsa_verify | 6 | size_t | +| (int,const unsigned char *,unsigned int,unsigned char *,size_t *,const unsigned char *,size_t,RSA *) | | ossl_rsa_verify | 7 | RSA * | +| (int,int *,int *,int) | | sqlite3_status | 0 | int | +| (int,int *,int *,int) | | sqlite3_status | 1 | int * | +| (int,int *,int *,int) | | sqlite3_status | 2 | int * | +| (int,int *,int *,int) | | sqlite3_status | 3 | int | +| (int,int) | | BN_security_bits | 0 | int | +| (int,int) | | BN_security_bits | 1 | int | +| (int,int) | | EVP_MD_meth_new | 0 | int | +| (int,int) | | EVP_MD_meth_new | 1 | int | +| (int,int) | | EVP_PKEY_meth_new | 0 | int | +| (int,int) | | EVP_PKEY_meth_new | 1 | int | +| (int,int) | | acttab_alloc | 0 | int | +| (int,int) | | acttab_alloc | 1 | int | +| (int,int,TLS_GROUP_INFO *,size_t,long,stack_st_OPENSSL_CSTRING *) | | tls1_get0_implemented_groups | 0 | int | +| (int,int,TLS_GROUP_INFO *,size_t,long,stack_st_OPENSSL_CSTRING *) | | tls1_get0_implemented_groups | 1 | int | +| (int,int,TLS_GROUP_INFO *,size_t,long,stack_st_OPENSSL_CSTRING *) | | tls1_get0_implemented_groups | 2 | TLS_GROUP_INFO * | +| (int,int,TLS_GROUP_INFO *,size_t,long,stack_st_OPENSSL_CSTRING *) | | tls1_get0_implemented_groups | 3 | size_t | +| (int,int,TLS_GROUP_INFO *,size_t,long,stack_st_OPENSSL_CSTRING *) | | tls1_get0_implemented_groups | 4 | long | +| (int,int,TLS_GROUP_INFO *,size_t,long,stack_st_OPENSSL_CSTRING *) | | tls1_get0_implemented_groups | 5 | stack_st_OPENSSL_CSTRING * | +| (int,int,const char *) | | OSSL_CMP_STATUSINFO_new | 0 | int | +| (int,int,const char *) | | OSSL_CMP_STATUSINFO_new | 1 | int | +| (int,int,const char *) | | OSSL_CMP_STATUSINFO_new | 2 | const char * | +| (int,int,const char *,const char *) | | EVP_PKEY_asn1_new | 0 | int | +| (int,int,const char *,const char *) | | EVP_PKEY_asn1_new | 1 | int | +| (int,int,const char *,const char *) | | EVP_PKEY_asn1_new | 2 | const char * | +| (int,int,const char *,const char *) | | EVP_PKEY_asn1_new | 3 | const char * | +| (int,int,const char *,va_list) | | ERR_vset_error | 0 | int | +| (int,int,const char *,va_list) | | ERR_vset_error | 1 | int | +| (int,int,const char *,va_list) | | ERR_vset_error | 2 | const char * | +| (int,int,const char *,va_list) | | ERR_vset_error | 3 | va_list | +| (int,int,const unsigned char *,int) | | PKCS5_pbe_set | 0 | int | +| (int,int,const unsigned char *,int) | | PKCS5_pbe_set | 1 | int | +| (int,int,const unsigned char *,int) | | PKCS5_pbe_set | 2 | const unsigned char * | +| (int,int,const unsigned char *,int) | | PKCS5_pbe_set | 3 | int | +| (int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set_ex | 0 | int | +| (int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set_ex | 1 | int | +| (int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set_ex | 2 | const unsigned char * | +| (int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set_ex | 3 | int | +| (int,int,const unsigned char *,int,OSSL_LIB_CTX *) | | PKCS5_pbe_set_ex | 4 | OSSL_LIB_CTX * | +| (int,int,int *) | | ssl_set_version_bound | 0 | int | +| (int,int,int *) | | ssl_set_version_bound | 1 | int | +| (int,int,int *) | | ssl_set_version_bound | 2 | int * | +| (int,int,int) | | ASN1_object_size | 0 | int | +| (int,int,int) | | ASN1_object_size | 1 | int | +| (int,int,int) | | ASN1_object_size | 2 | int | +| (int,int,int) | | EVP_CIPHER_meth_new | 0 | int | +| (int,int,int) | | EVP_CIPHER_meth_new | 1 | int | +| (int,int,int) | | EVP_CIPHER_meth_new | 2 | int | +| (int,int,int,const void *,size_t,SSL *,void *) | | SSL_trace | 0 | int | +| (int,int,int,const void *,size_t,SSL *,void *) | | SSL_trace | 1 | int | +| (int,int,int,const void *,size_t,SSL *,void *) | | SSL_trace | 2 | int | +| (int,int,int,const void *,size_t,SSL *,void *) | | SSL_trace | 3 | const void * | +| (int,int,int,const void *,size_t,SSL *,void *) | | SSL_trace | 4 | size_t | +| (int,int,int,const void *,size_t,SSL *,void *) | | SSL_trace | 5 | SSL * | +| (int,int,int,const void *,size_t,SSL *,void *) | | SSL_trace | 6 | void * | +| (int,int,size_t,size_t) | | ossl_rand_pool_new | 0 | int | +| (int,int,size_t,size_t) | | ossl_rand_pool_new | 1 | int | +| (int,int,size_t,size_t) | | ossl_rand_pool_new | 2 | size_t | +| (int,int,size_t,size_t) | | ossl_rand_pool_new | 3 | size_t | +| (int,int,void *) | | X509V3_EXT_i2d | 0 | int | +| (int,int,void *) | | X509V3_EXT_i2d | 1 | int | +| (int,int,void *) | | X509V3_EXT_i2d | 2 | void * | +| (int,int,void *) | | X509_ATTRIBUTE_create | 0 | int | +| (int,int,void *) | | X509_ATTRIBUTE_create | 1 | int | +| (int,int,void *) | | X509_ATTRIBUTE_create | 2 | void * | +| (int,int,void *) | | ossl_X509_ALGOR_from_nid | 0 | int | +| (int,int,void *) | | ossl_X509_ALGOR_from_nid | 1 | int | +| (int,int,void *) | | ossl_X509_ALGOR_from_nid | 2 | void * | +| (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 0 | int | +| (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 1 | long | +| (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 2 | void * | +| (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 3 | CRYPTO_EX_new * | +| (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 4 | CRYPTO_EX_dup * | +| (int,long,void *,CRYPTO_EX_new *,CRYPTO_EX_dup *,CRYPTO_EX_free *) | | CRYPTO_get_ex_new_index | 5 | CRYPTO_EX_free * | +| (int,size_t) | | ossl_calculate_comp_expansion | 0 | int | +| (int,size_t) | | ossl_calculate_comp_expansion | 1 | size_t | +| (int,sqlite3_int64 *,sqlite3_int64 *,int) | | sqlite3_status64 | 0 | int | +| (int,sqlite3_int64 *,sqlite3_int64 *,int) | | sqlite3_status64 | 1 | sqlite3_int64 * | +| (int,sqlite3_int64 *,sqlite3_int64 *,int) | | sqlite3_status64 | 2 | sqlite3_int64 * | +| (int,sqlite3_int64 *,sqlite3_int64 *,int) | | sqlite3_status64 | 3 | int | +| (int,unsigned char *,int,const char *,const char *) | | ASN1_OBJECT_create | 0 | int | +| (int,unsigned char *,int,const char *,const char *) | | ASN1_OBJECT_create | 1 | unsigned char * | +| (int,unsigned char *,int,const char *,const char *) | | ASN1_OBJECT_create | 2 | int | +| (int,unsigned char *,int,const char *,const char *) | | ASN1_OBJECT_create | 3 | const char * | +| (int,unsigned char *,int,const char *,const char *) | | ASN1_OBJECT_create | 4 | const char * | +| (int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *) | | DSA_generate_parameters | 0 | int | +| (int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *) | | DSA_generate_parameters | 1 | unsigned char * | +| (int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *) | | DSA_generate_parameters | 2 | int | +| (int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *) | | DSA_generate_parameters | 3 | int * | +| (int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *) | | DSA_generate_parameters | 4 | unsigned long * | +| (int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *) | | DSA_generate_parameters | 5 | ..(*)(..) | +| (int,unsigned char *,int,int *,unsigned long *,..(*)(..),void *) | | DSA_generate_parameters | 6 | void * | +| (int,unsigned long,..(*)(..),void *) | | RSA_generate_key | 0 | int | +| (int,unsigned long,..(*)(..),void *) | | RSA_generate_key | 1 | unsigned long | +| (int,unsigned long,..(*)(..),void *) | | RSA_generate_key | 2 | ..(*)(..) | +| (int,unsigned long,..(*)(..),void *) | | RSA_generate_key | 3 | void * | +| (int,va_list) | | ERR_add_error_vdata | 0 | int | +| (int,va_list) | | ERR_add_error_vdata | 1 | va_list | +| (int,void *) | | OSSL_STORE_INFO_new | 0 | int | +| (int,void *) | | OSSL_STORE_INFO_new | 1 | void * | +| (int,void *) | | sqlite3_randomness | 0 | int | +| (int,void *) | | sqlite3_randomness | 1 | void * | +| (int_dhx942_dh **,const unsigned char **,long) | | d2i_int_dhx | 0 | int_dhx942_dh ** | +| (int_dhx942_dh **,const unsigned char **,long) | | d2i_int_dhx | 1 | const unsigned char ** | +| (int_dhx942_dh **,const unsigned char **,long) | | d2i_int_dhx | 2 | long | +| (lemon *) | | ResortStates | 0 | lemon * | +| (lemon *) | | getstate | 0 | lemon * | +| (lemon *,action *) | | compute_action | 0 | lemon * | +| (lemon *,action *) | | compute_action | 1 | action * | +| (lemon *,const char *) | | file_makename | 0 | lemon * | +| (lemon *,const char *) | | file_makename | 1 | const char * | +| (lemon *,const char *,const char *) | | file_open | 0 | lemon * | +| (lemon *,const char *,const char *) | | file_open | 1 | const char * | +| (lemon *,const char *,const char *) | | file_open | 2 | const char * | +| (lhash_st_CONF_VALUE *,BIO *,long *) | | CONF_load_bio | 0 | lhash_st_CONF_VALUE * | +| (lhash_st_CONF_VALUE *,BIO *,long *) | | CONF_load_bio | 1 | BIO * | +| (lhash_st_CONF_VALUE *,BIO *,long *) | | CONF_load_bio | 2 | long * | +| (lhash_st_CONF_VALUE *,FILE *,long *) | | CONF_load_fp | 0 | lhash_st_CONF_VALUE * | +| (lhash_st_CONF_VALUE *,FILE *,long *) | | CONF_load_fp | 1 | FILE * | +| (lhash_st_CONF_VALUE *,FILE *,long *) | | CONF_load_fp | 2 | long * | +| (lhash_st_CONF_VALUE *,X509V3_CTX *,int,const char *) | | X509V3_EXT_conf_nid | 0 | lhash_st_CONF_VALUE * | +| (lhash_st_CONF_VALUE *,X509V3_CTX *,int,const char *) | | X509V3_EXT_conf_nid | 1 | X509V3_CTX * | +| (lhash_st_CONF_VALUE *,X509V3_CTX *,int,const char *) | | X509V3_EXT_conf_nid | 2 | int | +| (lhash_st_CONF_VALUE *,X509V3_CTX *,int,const char *) | | X509V3_EXT_conf_nid | 3 | const char * | +| (lhash_st_CONF_VALUE *,const char *,long *) | | CONF_load | 0 | lhash_st_CONF_VALUE * | +| (lhash_st_CONF_VALUE *,const char *,long *) | | CONF_load | 1 | const char * | +| (lhash_st_CONF_VALUE *,const char *,long *) | | CONF_load | 2 | long * | | (list &&) | list | list | 0 | list && | | (list &&,const Allocator &) | list | list | 0 | list && | | (list &&,const Allocator &) | list | list | 1 | const class:1 & | +| (piterator *) | | pqueue_next | 0 | piterator * | +| (plink *) | | Plink_delete | 0 | plink * | +| (plink **,config *) | | Plink_add | 0 | plink ** | +| (plink **,config *) | | Plink_add | 1 | config * | +| (plink **,plink *) | | Plink_copy | 0 | plink ** | +| (plink **,plink *) | | Plink_copy | 1 | plink * | +| (pqueue *) | | pqueue_iterator | 0 | pqueue * | +| (pqueue *) | | pqueue_peek | 0 | pqueue * | +| (pqueue *) | | pqueue_pop | 0 | pqueue * | +| (pqueue *,pitem *) | | pqueue_insert | 0 | pqueue * | +| (pqueue *,pitem *) | | pqueue_insert | 1 | pitem * | +| (pqueue *,unsigned char *) | | pqueue_find | 0 | pqueue * | +| (pqueue *,unsigned char *) | | pqueue_find | 1 | unsigned char * | +| (regex_t *,const char *,int) | | jim_regcomp | 0 | regex_t * | +| (regex_t *,const char *,int) | | jim_regcomp | 1 | const char * | +| (regex_t *,const char *,int) | | jim_regcomp | 2 | int | +| (regex_t *,const char *,size_t,regmatch_t[],int) | | jim_regexec | 0 | regex_t * | +| (regex_t *,const char *,size_t,regmatch_t[],int) | | jim_regexec | 1 | const char * | +| (regex_t *,const char *,size_t,regmatch_t[],int) | | jim_regexec | 2 | size_t | +| (regex_t *,const char *,size_t,regmatch_t[],int) | | jim_regexec | 3 | regmatch_t[] | +| (regex_t *,const char *,size_t,regmatch_t[],int) | | jim_regexec | 4 | int | +| (rule *,int) | | Configlist_add | 0 | rule * | +| (rule *,int) | | Configlist_add | 1 | int | +| (rule *,int) | | Configlist_addbasis | 0 | rule * | +| (rule *,int) | | Configlist_addbasis | 1 | int | +| (size_t *,const char *) | | next_protos_parse | 0 | size_t * | +| (size_t *,const char *) | | next_protos_parse | 1 | const char * | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *) | | ssl3_cbc_remove_padding_and_mac | 0 | size_t * | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *) | | ssl3_cbc_remove_padding_and_mac | 1 | size_t | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *) | | ssl3_cbc_remove_padding_and_mac | 2 | unsigned char * | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *) | | ssl3_cbc_remove_padding_and_mac | 3 | unsigned char ** | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *) | | ssl3_cbc_remove_padding_and_mac | 4 | int * | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *) | | ssl3_cbc_remove_padding_and_mac | 5 | size_t | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *) | | ssl3_cbc_remove_padding_and_mac | 6 | size_t | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,OSSL_LIB_CTX *) | | ssl3_cbc_remove_padding_and_mac | 7 | OSSL_LIB_CTX * | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *) | | tls1_cbc_remove_padding_and_mac | 0 | size_t * | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *) | | tls1_cbc_remove_padding_and_mac | 1 | size_t | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *) | | tls1_cbc_remove_padding_and_mac | 2 | unsigned char * | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *) | | tls1_cbc_remove_padding_and_mac | 3 | unsigned char ** | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *) | | tls1_cbc_remove_padding_and_mac | 4 | int * | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *) | | tls1_cbc_remove_padding_and_mac | 5 | size_t | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *) | | tls1_cbc_remove_padding_and_mac | 6 | size_t | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *) | | tls1_cbc_remove_padding_and_mac | 7 | int | +| (size_t *,size_t,unsigned char *,unsigned char **,int *,size_t,size_t,int,OSSL_LIB_CTX *) | | tls1_cbc_remove_padding_and_mac | 8 | OSSL_LIB_CTX * | +| (size_t) | | EVP_PKEY_meth_get0 | 0 | size_t | +| (size_t) | | ossl_get_extension_type | 0 | size_t | +| (size_t) | | ossl_param_bytes_to_blocks | 0 | size_t | +| (size_t) | | ossl_quic_sstream_new | 0 | size_t | +| (size_t) | | ssl_cert_new | 0 | size_t | +| (size_t) | | test_get_argument | 0 | size_t | +| (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 0 | size_t | +| (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 1 | OSSL_QTX_IOVEC * | +| (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | size_t | +| (size_t,SSL_CTX *) | | ssl_cert_lookup_by_idx | 0 | size_t | +| (size_t,SSL_CTX *) | | ssl_cert_lookup_by_idx | 1 | SSL_CTX * | +| (size_t,const QUIC_PKT_HDR *) | | ossl_quic_wire_get_encoded_pkt_hdr_len | 0 | size_t | +| (size_t,const QUIC_PKT_HDR *) | | ossl_quic_wire_get_encoded_pkt_hdr_len | 1 | const QUIC_PKT_HDR * | +| (size_t,const char **,size_t *) | | conf_ssl_get | 0 | size_t | +| (size_t,const char **,size_t *) | | conf_ssl_get | 1 | const char ** | +| (size_t,const char **,size_t *) | | conf_ssl_get | 2 | size_t * | +| (size_t,size_t,void **,const char *,int) | | CRYPTO_aligned_alloc | 0 | size_t | +| (size_t,size_t,void **,const char *,int) | | CRYPTO_aligned_alloc | 1 | size_t | +| (size_t,size_t,void **,const char *,int) | | CRYPTO_aligned_alloc | 2 | void ** | +| (size_t,size_t,void **,const char *,int) | | CRYPTO_aligned_alloc | 3 | const char * | +| (size_t,size_t,void **,const char *,int) | | CRYPTO_aligned_alloc | 4 | int | | (size_type,const T &) | deque | assign | 0 | size_type | | (size_type,const T &) | deque | assign | 1 | const class:0 & | | (size_type,const T &) | forward_list | assign | 0 | size_type | @@ -874,12 +27097,1469 @@ getSignatureParameterName | (size_type,const T &,const Allocator &) | vector | vector | 0 | size_type | | (size_type,const T &,const Allocator &) | vector | vector | 1 | const class:0 & | | (size_type,const T &,const Allocator &) | vector | vector | 2 | const class:1 & | +| (sqlite3 *) | | close_db | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3CompletionVtabInit | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_changes | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_changes64 | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_close | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_db_mutex | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_errcode | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_errmsg | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_errmsg16 | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_error_offset | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_extended_errcode | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_get_autocommit | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_last_insert_rowid | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_str_new | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_system_errno | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_total_changes | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_total_changes64 | 0 | sqlite3 * | +| (sqlite3 *) | | sqlite3_vtab_on_conflict | 0 | sqlite3 * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_busy_handler | 0 | sqlite3 * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_busy_handler | 1 | ..(*)(..) | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_busy_handler | 2 | void * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_commit_hook | 0 | sqlite3 * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_commit_hook | 1 | ..(*)(..) | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_commit_hook | 2 | void * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_profile | 0 | sqlite3 * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_profile | 1 | ..(*)(..) | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_profile | 2 | void * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_rollback_hook | 0 | sqlite3 * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_rollback_hook | 1 | ..(*)(..) | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_rollback_hook | 2 | void * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_set_authorizer | 0 | sqlite3 * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_set_authorizer | 1 | ..(*)(..) | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_set_authorizer | 2 | void * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_trace | 0 | sqlite3 * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_trace | 1 | ..(*)(..) | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_trace | 2 | void * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_update_hook | 0 | sqlite3 * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_update_hook | 1 | ..(*)(..) | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_update_hook | 2 | void * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_wal_hook | 0 | sqlite3 * | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_wal_hook | 1 | ..(*)(..) | +| (sqlite3 *,..(*)(..),void *) | | sqlite3_wal_hook | 2 | void * | +| (sqlite3 *,..(*)(..),void *,..(*)(..)) | | sqlite3_autovacuum_pages | 0 | sqlite3 * | +| (sqlite3 *,..(*)(..),void *,..(*)(..)) | | sqlite3_autovacuum_pages | 1 | ..(*)(..) | +| (sqlite3 *,..(*)(..),void *,..(*)(..)) | | sqlite3_autovacuum_pages | 2 | void * | +| (sqlite3 *,..(*)(..),void *,..(*)(..)) | | sqlite3_autovacuum_pages | 3 | ..(*)(..) | +| (sqlite3 *,char **) | | sqlite3_expert_new | 0 | sqlite3 * | +| (sqlite3 *,char **) | | sqlite3_expert_new | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_base64_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_base64_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_base64_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_base85_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_base85_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_base85_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_completion_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_completion_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_completion_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_dbdata_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_dbdata_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_dbdata_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_decimal_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_decimal_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_decimal_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_fileio_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_fileio_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_fileio_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_ieee_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_ieee_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_ieee_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_percentile_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_percentile_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_percentile_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_regexp_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_regexp_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_regexp_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_series_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_series_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_series_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_sha_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_sha_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_sha_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_shathree_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_shathree_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_shathree_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_sqlar_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_sqlar_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_sqlar_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_stmtrand_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_stmtrand_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_stmtrand_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_uint_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_uint_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_uint_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_zipfile_init | 0 | sqlite3 * | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_zipfile_init | 1 | char ** | +| (sqlite3 *,char **,const sqlite3_api_routines *) | | sqlite3_zipfile_init | 2 | const sqlite3_api_routines * | +| (sqlite3 *,const char *) | | sqlite3_declare_vtab | 0 | sqlite3 * | +| (sqlite3 *,const char *) | | sqlite3_declare_vtab | 1 | const char * | +| (sqlite3 *,const char *) | | sqlite3_get_clientdata | 0 | sqlite3 * | +| (sqlite3 *,const char *) | | sqlite3_get_clientdata | 1 | const char * | +| (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 0 | sqlite3 * | +| (sqlite3 *,const char *) | | sqlite3_wal_checkpoint | 1 | const char * | +| (sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **) | | sqlite3_exec | 0 | sqlite3 * | +| (sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **) | | sqlite3_exec | 1 | const char * | +| (sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **) | | sqlite3_exec | 2 | ..(*)(..) | +| (sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **) | | sqlite3_exec | 3 | sqlite3_callback | +| (sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **) | | sqlite3_exec | 4 | void * | +| (sqlite3 *,const char *,..(*)(..),sqlite3_callback,void *,char **) | | sqlite3_exec | 5 | char ** | +| (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_recover_init_sql | 0 | sqlite3 * | +| (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_recover_init_sql | 1 | const char * | +| (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_recover_init_sql | 2 | ..(*)(..) | +| (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_recover_init_sql | 3 | void * | +| (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_rtree_geometry_callback | 0 | sqlite3 * | +| (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_rtree_geometry_callback | 1 | const char * | +| (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_rtree_geometry_callback | 2 | ..(*)(..) | +| (sqlite3 *,const char *,..(*)(..),void *) | | sqlite3_rtree_geometry_callback | 3 | void * | +| (sqlite3 *,const char *,..(*)(..),void *,..(*)(..)) | | sqlite3_rtree_query_callback | 0 | sqlite3 * | +| (sqlite3 *,const char *,..(*)(..),void *,..(*)(..)) | | sqlite3_rtree_query_callback | 1 | const char * | +| (sqlite3 *,const char *,..(*)(..),void *,..(*)(..)) | | sqlite3_rtree_query_callback | 2 | ..(*)(..) | +| (sqlite3 *,const char *,..(*)(..),void *,..(*)(..)) | | sqlite3_rtree_query_callback | 3 | void * | +| (sqlite3 *,const char *,..(*)(..),void *,..(*)(..)) | | sqlite3_rtree_query_callback | 4 | ..(*)(..) | +| (sqlite3 *,const char *,char ***,int *,int *,char **) | | sqlite3_get_table | 0 | sqlite3 * | +| (sqlite3 *,const char *,char ***,int *,int *,char **) | | sqlite3_get_table | 1 | const char * | +| (sqlite3 *,const char *,char ***,int *,int *,char **) | | sqlite3_get_table | 2 | char *** | +| (sqlite3 *,const char *,char ***,int *,int *,char **) | | sqlite3_get_table | 3 | int * | +| (sqlite3 *,const char *,char ***,int *,int *,char **) | | sqlite3_get_table | 4 | int * | +| (sqlite3 *,const char *,char ***,int *,int *,char **) | | sqlite3_get_table | 5 | char ** | +| (sqlite3 *,const char *,const char *) | | sqlite3_recover_init | 0 | sqlite3 * | +| (sqlite3 *,const char *,const char *) | | sqlite3_recover_init | 1 | const char * | +| (sqlite3 *,const char *,const char *) | | sqlite3_recover_init | 2 | const char * | +| (sqlite3 *,const char *,const char *,..(*)(..),void *) | | recoverInit | 0 | sqlite3 * | +| (sqlite3 *,const char *,const char *,..(*)(..),void *) | | recoverInit | 1 | const char * | +| (sqlite3 *,const char *,const char *,..(*)(..),void *) | | recoverInit | 2 | const char * | +| (sqlite3 *,const char *,const char *,..(*)(..),void *) | | recoverInit | 3 | ..(*)(..) | +| (sqlite3 *,const char *,const char *,..(*)(..),void *) | | recoverInit | 4 | void * | +| (sqlite3 *,const char *,const char *,char **) | | sqlite3_load_extension | 0 | sqlite3 * | +| (sqlite3 *,const char *,const char *,char **) | | sqlite3_load_extension | 1 | const char * | +| (sqlite3 *,const char *,const char *,char **) | | sqlite3_load_extension | 2 | const char * | +| (sqlite3 *,const char *,const char *,char **) | | sqlite3_load_extension | 3 | char ** | +| (sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *) | | sqlite3_table_column_metadata | 0 | sqlite3 * | +| (sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *) | | sqlite3_table_column_metadata | 1 | const char * | +| (sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *) | | sqlite3_table_column_metadata | 2 | const char * | +| (sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *) | | sqlite3_table_column_metadata | 3 | const char * | +| (sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *) | | sqlite3_table_column_metadata | 4 | const char ** | +| (sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *) | | sqlite3_table_column_metadata | 5 | const char ** | +| (sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *) | | sqlite3_table_column_metadata | 6 | int * | +| (sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *) | | sqlite3_table_column_metadata | 7 | int * | +| (sqlite3 *,const char *,const char *,const char *,const char **,const char **,int *,int *,int *) | | sqlite3_table_column_metadata | 8 | int * | +| (sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **) | | sqlite3_blob_open | 0 | sqlite3 * | +| (sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **) | | sqlite3_blob_open | 1 | const char * | +| (sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **) | | sqlite3_blob_open | 2 | const char * | +| (sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **) | | sqlite3_blob_open | 3 | const char * | +| (sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **) | | sqlite3_blob_open | 4 | sqlite3_int64 | +| (sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **) | | sqlite3_blob_open | 5 | sqlite_int64 | +| (sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **) | | sqlite3_blob_open | 6 | int | +| (sqlite3 *,const char *,const char *,const char *,sqlite3_int64,sqlite_int64,int,sqlite3_blob **) | | sqlite3_blob_open | 7 | sqlite3_blob ** | +| (sqlite3 *,const char *,const sqlite3_module *,void *) | | sqlite3_create_module | 0 | sqlite3 * | +| (sqlite3 *,const char *,const sqlite3_module *,void *) | | sqlite3_create_module | 1 | const char * | +| (sqlite3 *,const char *,const sqlite3_module *,void *) | | sqlite3_create_module | 2 | const sqlite3_module * | +| (sqlite3 *,const char *,const sqlite3_module *,void *) | | sqlite3_create_module | 3 | void * | +| (sqlite3 *,const char *,const sqlite3_module *,void *,..(*)(..)) | | sqlite3_create_module_v2 | 0 | sqlite3 * | +| (sqlite3 *,const char *,const sqlite3_module *,void *,..(*)(..)) | | sqlite3_create_module_v2 | 1 | const char * | +| (sqlite3 *,const char *,const sqlite3_module *,void *,..(*)(..)) | | sqlite3_create_module_v2 | 2 | const sqlite3_module * | +| (sqlite3 *,const char *,const sqlite3_module *,void *,..(*)(..)) | | sqlite3_create_module_v2 | 3 | void * | +| (sqlite3 *,const char *,const sqlite3_module *,void *,..(*)(..)) | | sqlite3_create_module_v2 | 4 | ..(*)(..) | +| (sqlite3 *,const char *,int) | | sqlite3_overload_function | 0 | sqlite3 * | +| (sqlite3 *,const char *,int) | | sqlite3_overload_function | 1 | const char * | +| (sqlite3 *,const char *,int) | | sqlite3_overload_function | 2 | int | +| (sqlite3 *,const char *,int,int *,int *) | | sqlite3_wal_checkpoint_v2 | 0 | sqlite3 * | +| (sqlite3 *,const char *,int,int *,int *) | | sqlite3_wal_checkpoint_v2 | 1 | const char * | +| (sqlite3 *,const char *,int,int *,int *) | | sqlite3_wal_checkpoint_v2 | 2 | int | +| (sqlite3 *,const char *,int,int *,int *) | | sqlite3_wal_checkpoint_v2 | 3 | int * | +| (sqlite3 *,const char *,int,int *,int *) | | sqlite3_wal_checkpoint_v2 | 4 | int * | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function | 0 | sqlite3 * | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function | 1 | const char * | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function | 2 | int | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function | 3 | int | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function | 4 | void * | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function | 5 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function | 6 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function | 7 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function_v2 | 0 | sqlite3 * | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function_v2 | 1 | const char * | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function_v2 | 2 | int | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function_v2 | 3 | int | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function_v2 | 4 | void * | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function_v2 | 5 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function_v2 | 6 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function_v2 | 7 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function_v2 | 8 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_window_function | 0 | sqlite3 * | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_window_function | 1 | const char * | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_window_function | 2 | int | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_window_function | 3 | int | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_window_function | 4 | void * | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_window_function | 5 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_window_function | 6 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_window_function | 7 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_window_function | 8 | ..(*)(..) | +| (sqlite3 *,const char *,int,int,void *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_window_function | 9 | ..(*)(..) | +| (sqlite3 *,const char *,int,sqlite3_stmt **,const char **) | | sqlite3_prepare | 0 | sqlite3 * | +| (sqlite3 *,const char *,int,sqlite3_stmt **,const char **) | | sqlite3_prepare | 1 | const char * | +| (sqlite3 *,const char *,int,sqlite3_stmt **,const char **) | | sqlite3_prepare | 2 | int | +| (sqlite3 *,const char *,int,sqlite3_stmt **,const char **) | | sqlite3_prepare | 3 | sqlite3_stmt ** | +| (sqlite3 *,const char *,int,sqlite3_stmt **,const char **) | | sqlite3_prepare | 4 | const char ** | +| (sqlite3 *,const char *,int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v2 | 0 | sqlite3 * | +| (sqlite3 *,const char *,int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v2 | 1 | const char * | +| (sqlite3 *,const char *,int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v2 | 2 | int | +| (sqlite3 *,const char *,int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v2 | 3 | sqlite3_stmt ** | +| (sqlite3 *,const char *,int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v2 | 4 | const char ** | +| (sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v3 | 0 | sqlite3 * | +| (sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v3 | 1 | const char * | +| (sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v3 | 2 | int | +| (sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v3 | 3 | unsigned int | +| (sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v3 | 4 | sqlite3_stmt ** | +| (sqlite3 *,const char *,int,unsigned int,sqlite3_stmt **,const char **) | | sqlite3_prepare_v3 | 5 | const char ** | +| (sqlite3 *,const char *,int,void *) | | sqlite3_file_control | 0 | sqlite3 * | +| (sqlite3 *,const char *,int,void *) | | sqlite3_file_control | 1 | const char * | +| (sqlite3 *,const char *,int,void *) | | sqlite3_file_control | 2 | int | +| (sqlite3 *,const char *,int,void *) | | sqlite3_file_control | 3 | void * | +| (sqlite3 *,const char *,int,void *,..(*)(..)) | | sqlite3_create_collation | 0 | sqlite3 * | +| (sqlite3 *,const char *,int,void *,..(*)(..)) | | sqlite3_create_collation | 1 | const char * | +| (sqlite3 *,const char *,int,void *,..(*)(..)) | | sqlite3_create_collation | 2 | int | +| (sqlite3 *,const char *,int,void *,..(*)(..)) | | sqlite3_create_collation | 3 | void * | +| (sqlite3 *,const char *,int,void *,..(*)(..)) | | sqlite3_create_collation | 4 | ..(*)(..) | +| (sqlite3 *,const char *,int,void *,..(*)(..),..(*)(..)) | | sqlite3_create_collation_v2 | 0 | sqlite3 * | +| (sqlite3 *,const char *,int,void *,..(*)(..),..(*)(..)) | | sqlite3_create_collation_v2 | 1 | const char * | +| (sqlite3 *,const char *,int,void *,..(*)(..),..(*)(..)) | | sqlite3_create_collation_v2 | 2 | int | +| (sqlite3 *,const char *,int,void *,..(*)(..),..(*)(..)) | | sqlite3_create_collation_v2 | 3 | void * | +| (sqlite3 *,const char *,int,void *,..(*)(..),..(*)(..)) | | sqlite3_create_collation_v2 | 4 | ..(*)(..) | +| (sqlite3 *,const char *,int,void *,..(*)(..),..(*)(..)) | | sqlite3_create_collation_v2 | 5 | ..(*)(..) | +| (sqlite3 *,const char *,sqlite3 *,const char *) | | sqlite3_backup_init | 0 | sqlite3 * | +| (sqlite3 *,const char *,sqlite3 *,const char *) | | sqlite3_backup_init | 1 | const char * | +| (sqlite3 *,const char *,sqlite3 *,const char *) | | sqlite3_backup_init | 2 | sqlite3 * | +| (sqlite3 *,const char *,sqlite3 *,const char *) | | sqlite3_backup_init | 3 | const char * | +| (sqlite3 *,const char *,sqlite3_int64 *,unsigned int) | | sqlite3_serialize | 0 | sqlite3 * | +| (sqlite3 *,const char *,sqlite3_int64 *,unsigned int) | | sqlite3_serialize | 1 | const char * | +| (sqlite3 *,const char *,sqlite3_int64 *,unsigned int) | | sqlite3_serialize | 2 | sqlite3_int64 * | +| (sqlite3 *,const char *,sqlite3_int64 *,unsigned int) | | sqlite3_serialize | 3 | unsigned int | +| (sqlite3 *,const char *,sqlite3_intck **) | | sqlite3_intck_open | 0 | sqlite3 * | +| (sqlite3 *,const char *,sqlite3_intck **) | | sqlite3_intck_open | 1 | const char * | +| (sqlite3 *,const char *,sqlite3_intck **) | | sqlite3_intck_open | 2 | sqlite3_intck ** | +| (sqlite3 *,const char *,unsigned char *,sqlite3_int64,sqlite3_int64,unsigned int) | | sqlite3_deserialize | 0 | sqlite3 * | +| (sqlite3 *,const char *,unsigned char *,sqlite3_int64,sqlite3_int64,unsigned int) | | sqlite3_deserialize | 1 | const char * | +| (sqlite3 *,const char *,unsigned char *,sqlite3_int64,sqlite3_int64,unsigned int) | | sqlite3_deserialize | 2 | unsigned char * | +| (sqlite3 *,const char *,unsigned char *,sqlite3_int64,sqlite3_int64,unsigned int) | | sqlite3_deserialize | 3 | sqlite3_int64 | +| (sqlite3 *,const char *,unsigned char *,sqlite3_int64,sqlite3_int64,unsigned int) | | sqlite3_deserialize | 4 | sqlite3_int64 | +| (sqlite3 *,const char *,unsigned char *,sqlite3_int64,sqlite3_int64,unsigned int) | | sqlite3_deserialize | 5 | unsigned int | +| (sqlite3 *,const char *,void *,..(*)(..)) | | sqlite3_set_clientdata | 0 | sqlite3 * | +| (sqlite3 *,const char *,void *,..(*)(..)) | | sqlite3_set_clientdata | 1 | const char * | +| (sqlite3 *,const char *,void *,..(*)(..)) | | sqlite3_set_clientdata | 2 | void * | +| (sqlite3 *,const char *,void *,..(*)(..)) | | sqlite3_set_clientdata | 3 | ..(*)(..) | +| (sqlite3 *,const void *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function16 | 0 | sqlite3 * | +| (sqlite3 *,const void *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function16 | 1 | const void * | +| (sqlite3 *,const void *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function16 | 2 | int | +| (sqlite3 *,const void *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function16 | 3 | int | +| (sqlite3 *,const void *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function16 | 4 | void * | +| (sqlite3 *,const void *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function16 | 5 | ..(*)(..) | +| (sqlite3 *,const void *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function16 | 6 | ..(*)(..) | +| (sqlite3 *,const void *,int,int,void *,..(*)(..),..(*)(..),..(*)(..)) | | sqlite3_create_function16 | 7 | ..(*)(..) | +| (sqlite3 *,const void *,int,sqlite3_stmt **,const void **) | | sqlite3_prepare16 | 0 | sqlite3 * | +| (sqlite3 *,const void *,int,sqlite3_stmt **,const void **) | | sqlite3_prepare16 | 1 | const void * | +| (sqlite3 *,const void *,int,sqlite3_stmt **,const void **) | | sqlite3_prepare16 | 2 | int | +| (sqlite3 *,const void *,int,sqlite3_stmt **,const void **) | | sqlite3_prepare16 | 3 | sqlite3_stmt ** | +| (sqlite3 *,const void *,int,sqlite3_stmt **,const void **) | | sqlite3_prepare16 | 4 | const void ** | +| (sqlite3 *,const void *,int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v2 | 0 | sqlite3 * | +| (sqlite3 *,const void *,int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v2 | 1 | const void * | +| (sqlite3 *,const void *,int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v2 | 2 | int | +| (sqlite3 *,const void *,int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v2 | 3 | sqlite3_stmt ** | +| (sqlite3 *,const void *,int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v2 | 4 | const void ** | +| (sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v3 | 0 | sqlite3 * | +| (sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v3 | 1 | const void * | +| (sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v3 | 2 | int | +| (sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v3 | 3 | unsigned int | +| (sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v3 | 4 | sqlite3_stmt ** | +| (sqlite3 *,const void *,int,unsigned int,sqlite3_stmt **,const void **) | | sqlite3_prepare16_v3 | 5 | const void ** | +| (sqlite3 *,const void *,int,void *,..(*)(..)) | | sqlite3_create_collation16 | 0 | sqlite3 * | +| (sqlite3 *,const void *,int,void *,..(*)(..)) | | sqlite3_create_collation16 | 1 | const void * | +| (sqlite3 *,const void *,int,void *,..(*)(..)) | | sqlite3_create_collation16 | 2 | int | +| (sqlite3 *,const void *,int,void *,..(*)(..)) | | sqlite3_create_collation16 | 3 | void * | +| (sqlite3 *,const void *,int,void *,..(*)(..)) | | sqlite3_create_collation16 | 4 | ..(*)(..) | +| (sqlite3 *,int) | | sqlite3_busy_timeout | 0 | sqlite3 * | +| (sqlite3 *,int) | | sqlite3_busy_timeout | 1 | int | +| (sqlite3 *,int) | | sqlite3_db_name | 0 | sqlite3 * | +| (sqlite3 *,int) | | sqlite3_db_name | 1 | int | +| (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 0 | sqlite3 * | +| (sqlite3 *,int) | | sqlite3_wal_autocheckpoint | 1 | int | +| (sqlite3 *,int,..(*)(..),void *) | | sqlite3_progress_handler | 0 | sqlite3 * | +| (sqlite3 *,int,..(*)(..),void *) | | sqlite3_progress_handler | 1 | int | +| (sqlite3 *,int,..(*)(..),void *) | | sqlite3_progress_handler | 2 | ..(*)(..) | +| (sqlite3 *,int,..(*)(..),void *) | | sqlite3_progress_handler | 3 | void * | +| (sqlite3 *,int,int *,int *,int) | | sqlite3_db_status | 0 | sqlite3 * | +| (sqlite3 *,int,int *,int *,int) | | sqlite3_db_status | 1 | int | +| (sqlite3 *,int,int *,int *,int) | | sqlite3_db_status | 2 | int * | +| (sqlite3 *,int,int *,int *,int) | | sqlite3_db_status | 3 | int * | +| (sqlite3 *,int,int *,int *,int) | | sqlite3_db_status | 4 | int | +| (sqlite3 *,int,int) | | sqlite3_limit | 0 | sqlite3 * | +| (sqlite3 *,int,int) | | sqlite3_limit | 1 | int | +| (sqlite3 *,int,int) | | sqlite3_limit | 2 | int | +| (sqlite3 *,sqlite3 *) | | registerUDFs | 0 | sqlite3 * | +| (sqlite3 *,sqlite3 *) | | registerUDFs | 1 | sqlite3 * | +| (sqlite3 *,sqlite3_int64) | | sqlite3_set_last_insert_rowid | 0 | sqlite3 * | +| (sqlite3 *,sqlite3_int64) | | sqlite3_set_last_insert_rowid | 1 | sqlite3_int64 | +| (sqlite3 *,sqlite3_stmt *) | | sqlite3_next_stmt | 0 | sqlite3 * | +| (sqlite3 *,sqlite3_stmt *) | | sqlite3_next_stmt | 1 | sqlite3_stmt * | +| (sqlite3 *,unsigned int,..(*)(..),void *) | | sqlite3_trace_v2 | 0 | sqlite3 * | +| (sqlite3 *,unsigned int,..(*)(..),void *) | | sqlite3_trace_v2 | 1 | unsigned int | +| (sqlite3 *,unsigned int,..(*)(..),void *) | | sqlite3_trace_v2 | 2 | ..(*)(..) | +| (sqlite3 *,unsigned int,..(*)(..),void *) | | sqlite3_trace_v2 | 3 | void * | +| (sqlite3 *,void *,..(*)(..)) | | sqlite3_collation_needed | 0 | sqlite3 * | +| (sqlite3 *,void *,..(*)(..)) | | sqlite3_collation_needed | 1 | void * | +| (sqlite3 *,void *,..(*)(..)) | | sqlite3_collation_needed | 2 | ..(*)(..) | +| (sqlite3 *,void *,..(*)(..)) | | sqlite3_collation_needed16 | 0 | sqlite3 * | +| (sqlite3 *,void *,..(*)(..)) | | sqlite3_collation_needed16 | 1 | void * | +| (sqlite3 *,void *,..(*)(..)) | | sqlite3_collation_needed16 | 2 | ..(*)(..) | +| (sqlite3_backup *) | | sqlite3_backup_finish | 0 | sqlite3_backup * | +| (sqlite3_backup *) | | sqlite3_backup_pagecount | 0 | sqlite3_backup * | +| (sqlite3_backup *) | | sqlite3_backup_remaining | 0 | sqlite3_backup * | +| (sqlite3_backup *,int) | | sqlite3_backup_step | 0 | sqlite3_backup * | +| (sqlite3_backup *,int) | | sqlite3_backup_step | 1 | int | +| (sqlite3_blob *) | | sqlite3_blob_bytes | 0 | sqlite3_blob * | +| (sqlite3_blob *) | | sqlite3_blob_close | 0 | sqlite3_blob * | +| (sqlite3_blob *,const void *,int,int) | | sqlite3_blob_write | 0 | sqlite3_blob * | +| (sqlite3_blob *,const void *,int,int) | | sqlite3_blob_write | 1 | const void * | +| (sqlite3_blob *,const void *,int,int) | | sqlite3_blob_write | 2 | int | +| (sqlite3_blob *,const void *,int,int) | | sqlite3_blob_write | 3 | int | +| (sqlite3_blob *,sqlite3_int64) | | sqlite3_blob_reopen | 0 | sqlite3_blob * | +| (sqlite3_blob *,sqlite3_int64) | | sqlite3_blob_reopen | 1 | sqlite3_int64 | +| (sqlite3_blob *,void *,int,int) | | sqlite3_blob_read | 0 | sqlite3_blob * | +| (sqlite3_blob *,void *,int,int) | | sqlite3_blob_read | 1 | void * | +| (sqlite3_blob *,void *,int,int) | | sqlite3_blob_read | 2 | int | +| (sqlite3_blob *,void *,int,int) | | sqlite3_blob_read | 3 | int | +| (sqlite3_context *) | | sqlite3_aggregate_count | 0 | sqlite3_context * | +| (sqlite3_context *) | | sqlite3_context_db_handle | 0 | sqlite3_context * | +| (sqlite3_context *) | | sqlite3_user_data | 0 | sqlite3_context * | +| (sqlite3_context *,const char *,int) | | sqlite3_result_error | 0 | sqlite3_context * | +| (sqlite3_context *,const char *,int) | | sqlite3_result_error | 1 | const char * | +| (sqlite3_context *,const char *,int) | | sqlite3_result_error | 2 | int | +| (sqlite3_context *,const void *,int) | | sqlite3_result_error16 | 0 | sqlite3_context * | +| (sqlite3_context *,const void *,int) | | sqlite3_result_error16 | 1 | const void * | +| (sqlite3_context *,const void *,int) | | sqlite3_result_error16 | 2 | int | +| (sqlite3_context *,int) | | sqlite3_aggregate_context | 0 | sqlite3_context * | +| (sqlite3_context *,int) | | sqlite3_aggregate_context | 1 | int | +| (sqlite3_context *,int) | | sqlite3_result_error_code | 0 | sqlite3_context * | +| (sqlite3_context *,int) | | sqlite3_result_error_code | 1 | int | +| (sqlite3_index_info *) | | sqlite3_vtab_distinct | 0 | sqlite3_index_info * | +| (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 0 | sqlite3_index_info * | +| (sqlite3_index_info *,int) | | sqlite3_vtab_collation | 1 | int | +| (sqlite3_index_info *,int,int) | | sqlite3_vtab_in | 0 | sqlite3_index_info * | +| (sqlite3_index_info *,int,int) | | sqlite3_vtab_in | 1 | int | +| (sqlite3_index_info *,int,int) | | sqlite3_vtab_in | 2 | int | +| (sqlite3_index_info *,int,sqlite3_value **) | | sqlite3_vtab_rhs_value | 0 | sqlite3_index_info * | +| (sqlite3_index_info *,int,sqlite3_value **) | | sqlite3_vtab_rhs_value | 1 | int | +| (sqlite3_index_info *,int,sqlite3_value **) | | sqlite3_vtab_rhs_value | 2 | sqlite3_value ** | +| (sqlite3_intck *) | | sqlite3_intck_message | 0 | sqlite3_intck * | +| (sqlite3_intck *) | | sqlite3_intck_step | 0 | sqlite3_intck * | +| (sqlite3_intck *) | | sqlite3_intck_unlock | 0 | sqlite3_intck * | +| (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 0 | sqlite3_intck * | +| (sqlite3_intck *,const char *) | | sqlite3_intck_test_sql | 1 | const char * | +| (sqlite3_intck *,const char **) | | sqlite3_intck_error | 0 | sqlite3_intck * | +| (sqlite3_intck *,const char **) | | sqlite3_intck_error | 1 | const char ** | +| (sqlite3_recover *) | | sqlite3_recover_errcode | 0 | sqlite3_recover * | +| (sqlite3_recover *) | | sqlite3_recover_errmsg | 0 | sqlite3_recover * | +| (sqlite3_recover *) | | sqlite3_recover_finish | 0 | sqlite3_recover * | +| (sqlite3_recover *) | | sqlite3_recover_run | 0 | sqlite3_recover * | +| (sqlite3_recover *) | | sqlite3_recover_step | 0 | sqlite3_recover * | +| (sqlite3_recover *,int,void *) | | sqlite3_recover_config | 0 | sqlite3_recover * | +| (sqlite3_recover *,int,void *) | | sqlite3_recover_config | 1 | int | +| (sqlite3_recover *,int,void *) | | sqlite3_recover_config | 2 | void * | +| (sqlite3_stmt *) | | sqlite3_bind_parameter_count | 0 | sqlite3_stmt * | +| (sqlite3_stmt *) | | sqlite3_column_count | 0 | sqlite3_stmt * | +| (sqlite3_stmt *) | | sqlite3_data_count | 0 | sqlite3_stmt * | +| (sqlite3_stmt *) | | sqlite3_db_handle | 0 | sqlite3_stmt * | +| (sqlite3_stmt *) | | sqlite3_expanded_sql | 0 | sqlite3_stmt * | +| (sqlite3_stmt *) | | sqlite3_finalize | 0 | sqlite3_stmt * | +| (sqlite3_stmt *) | | sqlite3_reset | 0 | sqlite3_stmt * | +| (sqlite3_stmt *) | | sqlite3_sql | 0 | sqlite3_stmt * | +| (sqlite3_stmt *) | | sqlite3_step | 0 | sqlite3_stmt * | +| (sqlite3_stmt *) | | sqlite3_stmt_isexplain | 0 | sqlite3_stmt * | +| (sqlite3_stmt *) | | sqlite3_stmt_readonly | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,const char *) | | sqlite3_bind_parameter_index | 1 | const char * | +| (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_bind_parameter_name | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_blob | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_blob | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_bytes | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_bytes | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_bytes16 | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_decltype | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_decltype | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_decltype16 | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_double | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_double | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_int | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_int | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_int64 | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_int64 | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_name | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_name | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_name16 | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_name16 | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_text | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_text | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_text16 | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_text16 | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_type | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_type | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_column_value | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_column_value | 1 | int | +| (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int) | | sqlite3_stmt_explain | 1 | int | +| (sqlite3_stmt *,int,const char *,int,..(*)(..)) | | sqlite3_bind_text | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,const char *,int,..(*)(..)) | | sqlite3_bind_text | 1 | int | +| (sqlite3_stmt *,int,const char *,int,..(*)(..)) | | sqlite3_bind_text | 2 | const char * | +| (sqlite3_stmt *,int,const char *,int,..(*)(..)) | | sqlite3_bind_text | 3 | int | +| (sqlite3_stmt *,int,const char *,int,..(*)(..)) | | sqlite3_bind_text | 4 | ..(*)(..) | +| (sqlite3_stmt *,int,const char *,sqlite3_uint64,..(*)(..),unsigned char) | | sqlite3_bind_text64 | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,const char *,sqlite3_uint64,..(*)(..),unsigned char) | | sqlite3_bind_text64 | 1 | int | +| (sqlite3_stmt *,int,const char *,sqlite3_uint64,..(*)(..),unsigned char) | | sqlite3_bind_text64 | 2 | const char * | +| (sqlite3_stmt *,int,const char *,sqlite3_uint64,..(*)(..),unsigned char) | | sqlite3_bind_text64 | 3 | sqlite3_uint64 | +| (sqlite3_stmt *,int,const char *,sqlite3_uint64,..(*)(..),unsigned char) | | sqlite3_bind_text64 | 4 | ..(*)(..) | +| (sqlite3_stmt *,int,const char *,sqlite3_uint64,..(*)(..),unsigned char) | | sqlite3_bind_text64 | 5 | unsigned char | +| (sqlite3_stmt *,int,const sqlite3_value *) | | sqlite3_bind_value | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,const sqlite3_value *) | | sqlite3_bind_value | 1 | int | +| (sqlite3_stmt *,int,const sqlite3_value *) | | sqlite3_bind_value | 2 | const sqlite3_value * | +| (sqlite3_stmt *,int,const void *,int,..(*)(..)) | | sqlite3_bind_blob | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,const void *,int,..(*)(..)) | | sqlite3_bind_blob | 1 | int | +| (sqlite3_stmt *,int,const void *,int,..(*)(..)) | | sqlite3_bind_blob | 2 | const void * | +| (sqlite3_stmt *,int,const void *,int,..(*)(..)) | | sqlite3_bind_blob | 3 | int | +| (sqlite3_stmt *,int,const void *,int,..(*)(..)) | | sqlite3_bind_blob | 4 | ..(*)(..) | +| (sqlite3_stmt *,int,const void *,int,..(*)(..)) | | sqlite3_bind_text16 | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,const void *,int,..(*)(..)) | | sqlite3_bind_text16 | 1 | int | +| (sqlite3_stmt *,int,const void *,int,..(*)(..)) | | sqlite3_bind_text16 | 2 | const void * | +| (sqlite3_stmt *,int,const void *,int,..(*)(..)) | | sqlite3_bind_text16 | 3 | int | +| (sqlite3_stmt *,int,const void *,int,..(*)(..)) | | sqlite3_bind_text16 | 4 | ..(*)(..) | +| (sqlite3_stmt *,int,const void *,sqlite3_uint64,..(*)(..)) | | sqlite3_bind_blob64 | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,const void *,sqlite3_uint64,..(*)(..)) | | sqlite3_bind_blob64 | 1 | int | +| (sqlite3_stmt *,int,const void *,sqlite3_uint64,..(*)(..)) | | sqlite3_bind_blob64 | 2 | const void * | +| (sqlite3_stmt *,int,const void *,sqlite3_uint64,..(*)(..)) | | sqlite3_bind_blob64 | 3 | sqlite3_uint64 | +| (sqlite3_stmt *,int,const void *,sqlite3_uint64,..(*)(..)) | | sqlite3_bind_blob64 | 4 | ..(*)(..) | +| (sqlite3_stmt *,int,double) | | sqlite3_bind_double | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,double) | | sqlite3_bind_double | 1 | int | +| (sqlite3_stmt *,int,double) | | sqlite3_bind_double | 2 | double | +| (sqlite3_stmt *,int,int) | | sqlite3_bind_int | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,int) | | sqlite3_bind_int | 1 | int | +| (sqlite3_stmt *,int,int) | | sqlite3_bind_int | 2 | int | +| (sqlite3_stmt *,int,int) | | sqlite3_bind_zeroblob | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,int) | | sqlite3_bind_zeroblob | 1 | int | +| (sqlite3_stmt *,int,int) | | sqlite3_bind_zeroblob | 2 | int | +| (sqlite3_stmt *,int,int) | | sqlite3_stmt_status | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,int) | | sqlite3_stmt_status | 1 | int | +| (sqlite3_stmt *,int,int) | | sqlite3_stmt_status | 2 | int | +| (sqlite3_stmt *,int,sqlite3_int64,sqlite_int64) | | sqlite3_bind_int64 | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,sqlite3_int64,sqlite_int64) | | sqlite3_bind_int64 | 1 | int | +| (sqlite3_stmt *,int,sqlite3_int64,sqlite_int64) | | sqlite3_bind_int64 | 2 | sqlite3_int64 | +| (sqlite3_stmt *,int,sqlite3_int64,sqlite_int64) | | sqlite3_bind_int64 | 3 | sqlite_int64 | +| (sqlite3_stmt *,int,sqlite3_uint64) | | sqlite3_bind_zeroblob64 | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,sqlite3_uint64) | | sqlite3_bind_zeroblob64 | 1 | int | +| (sqlite3_stmt *,int,sqlite3_uint64) | | sqlite3_bind_zeroblob64 | 2 | sqlite3_uint64 | +| (sqlite3_stmt *,int,void *,const char *,..(*)(..)) | | sqlite3_bind_pointer | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,int,void *,const char *,..(*)(..)) | | sqlite3_bind_pointer | 1 | int | +| (sqlite3_stmt *,int,void *,const char *,..(*)(..)) | | sqlite3_bind_pointer | 2 | void * | +| (sqlite3_stmt *,int,void *,const char *,..(*)(..)) | | sqlite3_bind_pointer | 3 | const char * | +| (sqlite3_stmt *,int,void *,const char *,..(*)(..)) | | sqlite3_bind_pointer | 4 | ..(*)(..) | +| (sqlite3_stmt *,sqlite3_stmt *) | | sqlite3_transfer_bindings | 0 | sqlite3_stmt * | +| (sqlite3_stmt *,sqlite3_stmt *) | | sqlite3_transfer_bindings | 1 | sqlite3_stmt * | +| (sqlite3_str *) | | sqlite3_str_errcode | 0 | sqlite3_str * | +| (sqlite3_str *) | | sqlite3_str_finish | 0 | sqlite3_str * | +| (sqlite3_str *) | | sqlite3_str_length | 0 | sqlite3_str * | +| (sqlite3_str *) | | sqlite3_str_value | 0 | sqlite3_str * | +| (sqlite3_str *,const char *) | | sqlite3_str_appendall | 0 | sqlite3_str * | +| (sqlite3_str *,const char *) | | sqlite3_str_appendall | 1 | const char * | +| (sqlite3_str *,const char *,int) | | sqlite3_str_append | 0 | sqlite3_str * | +| (sqlite3_str *,const char *,int) | | sqlite3_str_append | 1 | const char * | +| (sqlite3_str *,const char *,int) | | sqlite3_str_append | 2 | int | +| (sqlite3_str *,const char *,va_list) | | sqlite3_str_vappendf | 0 | sqlite3_str * | +| (sqlite3_str *,const char *,va_list) | | sqlite3_str_vappendf | 1 | const char * | +| (sqlite3_str *,const char *,va_list) | | sqlite3_str_vappendf | 2 | va_list | +| (sqlite3_str *,int,char) | | sqlite3_str_appendchar | 0 | sqlite3_str * | +| (sqlite3_str *,int,char) | | sqlite3_str_appendchar | 1 | int | +| (sqlite3_str *,int,char) | | sqlite3_str_appendchar | 2 | char | +| (sqlite3_value *) | | sqlite3_value_blob | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_bytes | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_bytes16 | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_double | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_encoding | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_frombind | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_int | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_int64 | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_numeric_type | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_subtype | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_text | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_text16 | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_text16be | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_text16le | 0 | sqlite3_value * | +| (sqlite3_value *) | | sqlite3_value_type | 0 | sqlite3_value * | +| (sqlite3_value *,const char *) | | sqlite3_value_pointer | 0 | sqlite3_value * | +| (sqlite3_value *,const char *) | | sqlite3_value_pointer | 1 | const char * | +| (sqlite3_value *,sqlite3_value **) | | sqlite3_vtab_in_first | 0 | sqlite3_value * | +| (sqlite3_value *,sqlite3_value **) | | sqlite3_vtab_in_first | 1 | sqlite3_value ** | +| (sqlite3_value *,sqlite3_value **) | | sqlite3_vtab_in_next | 0 | sqlite3_value * | +| (sqlite3_value *,sqlite3_value **) | | sqlite3_vtab_in_next | 1 | sqlite3_value ** | +| (sqlite3expert *) | | sqlite3_expert_count | 0 | sqlite3expert * | +| (sqlite3expert *,char **) | | sqlite3_expert_analyze | 0 | sqlite3expert * | +| (sqlite3expert *,char **) | | sqlite3_expert_analyze | 1 | char ** | +| (sqlite3expert *,const char *,char **) | | sqlite3_expert_sql | 0 | sqlite3expert * | +| (sqlite3expert *,const char *,char **) | | sqlite3_expert_sql | 1 | const char * | +| (sqlite3expert *,const char *,char **) | | sqlite3_expert_sql | 2 | char ** | +| (sqlite3expert *,int,int) | | sqlite3_expert_report | 0 | sqlite3expert * | +| (sqlite3expert *,int,int) | | sqlite3_expert_report | 1 | int | +| (sqlite3expert *,int,int) | | sqlite3_expert_report | 2 | int | +| (stack_st_ASN1_UTF8STRING *) | | OSSL_CMP_ITAV_new0_certProfile | 0 | stack_st_ASN1_UTF8STRING * | +| (stack_st_ASN1_UTF8STRING *,const char *,int) | | ossl_cmp_sk_ASN1_UTF8STRING_push_str | 0 | stack_st_ASN1_UTF8STRING * | +| (stack_st_ASN1_UTF8STRING *,const char *,int) | | ossl_cmp_sk_ASN1_UTF8STRING_push_str | 1 | const char * | +| (stack_st_ASN1_UTF8STRING *,const char *,int) | | ossl_cmp_sk_ASN1_UTF8STRING_push_str | 2 | int | +| (stack_st_OPENSSL_STRING *,const OSSL_PARAM *) | | app_params_new_from_opts | 0 | stack_st_OPENSSL_STRING * | +| (stack_st_OPENSSL_STRING *,const OSSL_PARAM *) | | app_params_new_from_opts | 1 | const OSSL_PARAM * | +| (stack_st_OSSL_CMP_CRLSTATUS *) | | OSSL_CMP_ITAV_new0_crlStatusList | 0 | stack_st_OSSL_CMP_CRLSTATUS * | +| (stack_st_OSSL_CMP_ITAV **,OSSL_CMP_ITAV *) | | OSSL_CMP_ITAV_push0_stack_item | 0 | stack_st_OSSL_CMP_ITAV ** | +| (stack_st_OSSL_CMP_ITAV **,OSSL_CMP_ITAV *) | | OSSL_CMP_ITAV_push0_stack_item | 1 | OSSL_CMP_ITAV * | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *) | | PKCS12_add_safe | 0 | stack_st_PKCS7 ** | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *) | | PKCS12_add_safe | 1 | stack_st_PKCS12_SAFEBAG * | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *) | | PKCS12_add_safe | 2 | int | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *) | | PKCS12_add_safe | 3 | int | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *) | | PKCS12_add_safe | 4 | const char * | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safe_ex | 0 | stack_st_PKCS7 ** | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safe_ex | 1 | stack_st_PKCS12_SAFEBAG * | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safe_ex | 2 | int | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safe_ex | 3 | int | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safe_ex | 4 | const char * | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safe_ex | 5 | OSSL_LIB_CTX * | +| (stack_st_PKCS7 **,stack_st_PKCS12_SAFEBAG *,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safe_ex | 6 | const char * | +| (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 0 | stack_st_PKCS7 * | +| (stack_st_PKCS7 *,int) | | PKCS12_add_safes | 1 | int | +| (stack_st_PKCS7 *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safes_ex | 0 | stack_st_PKCS7 * | +| (stack_st_PKCS7 *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safes_ex | 1 | int | +| (stack_st_PKCS7 *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safes_ex | 2 | OSSL_LIB_CTX * | +| (stack_st_PKCS7 *,int,OSSL_LIB_CTX *,const char *) | | PKCS12_add_safes_ex | 3 | const char * | +| (stack_st_PKCS12_SAFEBAG *) | | PKCS12_pack_p7data | 0 | stack_st_PKCS12_SAFEBAG * | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *) | | PKCS12_add_key | 0 | stack_st_PKCS12_SAFEBAG ** | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *) | | PKCS12_add_key | 1 | EVP_PKEY * | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *) | | PKCS12_add_key | 2 | int | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *) | | PKCS12_add_key | 3 | int | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *) | | PKCS12_add_key | 4 | int | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *) | | PKCS12_add_key | 5 | const char * | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_key_ex | 0 | stack_st_PKCS12_SAFEBAG ** | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_key_ex | 1 | EVP_PKEY * | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_key_ex | 2 | int | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_key_ex | 3 | int | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_key_ex | 4 | int | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_key_ex | 5 | const char * | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_key_ex | 6 | OSSL_LIB_CTX * | +| (stack_st_PKCS12_SAFEBAG **,EVP_PKEY *,int,int,int,const char *,OSSL_LIB_CTX *,const char *) | | PKCS12_add_key_ex | 7 | const char * | +| (stack_st_PKCS12_SAFEBAG **,X509 *) | | PKCS12_add_cert | 0 | stack_st_PKCS12_SAFEBAG ** | +| (stack_st_PKCS12_SAFEBAG **,X509 *) | | PKCS12_add_cert | 1 | X509 * | +| (stack_st_PKCS12_SAFEBAG **,int,const unsigned char *,int) | | PKCS12_add_secret | 0 | stack_st_PKCS12_SAFEBAG ** | +| (stack_st_PKCS12_SAFEBAG **,int,const unsigned char *,int) | | PKCS12_add_secret | 1 | int | +| (stack_st_PKCS12_SAFEBAG **,int,const unsigned char *,int) | | PKCS12_add_secret | 2 | const unsigned char * | +| (stack_st_PKCS12_SAFEBAG **,int,const unsigned char *,int) | | PKCS12_add_secret | 3 | int | +| (stack_st_SCT **,const unsigned char **,long) | | d2i_SCT_LIST | 0 | stack_st_SCT ** | +| (stack_st_SCT **,const unsigned char **,long) | | d2i_SCT_LIST | 1 | const unsigned char ** | +| (stack_st_SCT **,const unsigned char **,long) | | d2i_SCT_LIST | 2 | long | +| (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 0 | stack_st_SCT ** | +| (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 1 | const unsigned char ** | +| (stack_st_SCT **,const unsigned char **,size_t) | | o2i_SCT_LIST | 2 | size_t | +| (stack_st_SSL_COMP *) | | SSL_COMP_set0_compression_methods | 0 | stack_st_SSL_COMP * | +| (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 0 | stack_st_SSL_COMP * | +| (stack_st_SSL_COMP *,int) | | ssl3_comp_find | 1 | int | +| (stack_st_X509 *) | | X509_chain_up_ref | 0 | stack_st_X509 * | +| (stack_st_X509 **,X509 *,int) | | ossl_x509_add_cert_new | 0 | stack_st_X509 ** | +| (stack_st_X509 **,X509 *,int) | | ossl_x509_add_cert_new | 1 | X509 * | +| (stack_st_X509 **,X509 *,int) | | ossl_x509_add_cert_new | 2 | int | +| (stack_st_X509 **,stack_st_X509 *,int) | | ossl_x509_add_certs_new | 0 | stack_st_X509 ** | +| (stack_st_X509 **,stack_st_X509 *,int) | | ossl_x509_add_certs_new | 1 | stack_st_X509 * | +| (stack_st_X509 **,stack_st_X509 *,int) | | ossl_x509_add_certs_new | 2 | int | +| (stack_st_X509 *,ASIdentifiers *,int) | | X509v3_asid_validate_resource_set | 0 | stack_st_X509 * | +| (stack_st_X509 *,ASIdentifiers *,int) | | X509v3_asid_validate_resource_set | 1 | ASIdentifiers * | +| (stack_st_X509 *,ASIdentifiers *,int) | | X509v3_asid_validate_resource_set | 2 | int | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_encrypt_ex | 0 | stack_st_X509 * | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_encrypt_ex | 1 | BIO * | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_encrypt_ex | 2 | const EVP_CIPHER * | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_encrypt_ex | 3 | int | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_encrypt_ex | 4 | OSSL_LIB_CTX * | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *) | | PKCS7_encrypt_ex | 5 | const char * | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_encrypt_ex | 0 | stack_st_X509 * | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_encrypt_ex | 1 | BIO * | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_encrypt_ex | 2 | const EVP_CIPHER * | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_encrypt_ex | 3 | unsigned int | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_encrypt_ex | 4 | OSSL_LIB_CTX * | +| (stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *) | | CMS_encrypt_ex | 5 | const char * | +| (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 0 | stack_st_X509 * | +| (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 1 | IPAddrBlocks * | +| (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 2 | int | +| (stack_st_X509 *,X509 *) | | STACK_OF_X509_push1 | 0 | stack_st_X509 * | +| (stack_st_X509 *,X509 *) | | STACK_OF_X509_push1 | 1 | X509 * | +| (stack_st_X509 *,X509 *,int) | | X509_add_cert | 0 | stack_st_X509 * | +| (stack_st_X509 *,X509 *,int) | | X509_add_cert | 1 | X509 * | +| (stack_st_X509 *,X509 *,int) | | X509_add_cert | 2 | int | +| (stack_st_X509 *,const X509_NAME *) | | X509_find_by_subject | 0 | stack_st_X509 * | +| (stack_st_X509 *,const X509_NAME *) | | X509_find_by_subject | 1 | const X509_NAME * | +| (stack_st_X509 *,const X509_NAME *,const ASN1_INTEGER *) | | X509_find_by_issuer_and_serial | 0 | stack_st_X509 * | +| (stack_st_X509 *,const X509_NAME *,const ASN1_INTEGER *) | | X509_find_by_issuer_and_serial | 1 | const X509_NAME * | +| (stack_st_X509 *,const X509_NAME *,const ASN1_INTEGER *) | | X509_find_by_issuer_and_serial | 2 | const ASN1_INTEGER * | +| (stack_st_X509 *,stack_st_X509 *,int) | | X509_add_certs | 0 | stack_st_X509 * | +| (stack_st_X509 *,stack_st_X509 *,int) | | X509_add_certs | 1 | stack_st_X509 * | +| (stack_st_X509 *,stack_st_X509 *,int) | | X509_add_certs | 2 | int | +| (stack_st_X509_ALGOR **) | | CMS_add_standard_smimecap | 0 | stack_st_X509_ALGOR ** | +| (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 0 | stack_st_X509_ALGOR ** | +| (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 1 | int | +| (stack_st_X509_ALGOR **,int,int) | | CMS_add_simple_smimecap | 2 | int | +| (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 0 | stack_st_X509_ALGOR * | +| (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 1 | int | +| (stack_st_X509_ALGOR *,int,int) | | PKCS7_simple_smimecap | 2 | int | +| (stack_st_X509_ATTRIBUTE **,X509_ATTRIBUTE *) | | X509at_add1_attr | 0 | stack_st_X509_ATTRIBUTE ** | +| (stack_st_X509_ATTRIBUTE **,X509_ATTRIBUTE *) | | X509at_add1_attr | 1 | X509_ATTRIBUTE * | +| (stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int) | | X509at_add1_attr_by_OBJ | 0 | stack_st_X509_ATTRIBUTE ** | +| (stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int) | | X509at_add1_attr_by_OBJ | 1 | const ASN1_OBJECT * | +| (stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int) | | X509at_add1_attr_by_OBJ | 2 | int | +| (stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int) | | X509at_add1_attr_by_OBJ | 3 | const unsigned char * | +| (stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int) | | X509at_add1_attr_by_OBJ | 4 | int | +| (stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_OBJ | 0 | stack_st_X509_ATTRIBUTE ** | +| (stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_OBJ | 1 | const ASN1_OBJECT * | +| (stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_OBJ | 2 | int | +| (stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_OBJ | 3 | const unsigned char * | +| (stack_st_X509_ATTRIBUTE **,const ASN1_OBJECT *,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_OBJ | 4 | int | +| (stack_st_X509_ATTRIBUTE **,const X509_ATTRIBUTE *) | | ossl_x509at_add1_attr | 0 | stack_st_X509_ATTRIBUTE ** | +| (stack_st_X509_ATTRIBUTE **,const X509_ATTRIBUTE *) | | ossl_x509at_add1_attr | 1 | const X509_ATTRIBUTE * | +| (stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | X509at_add1_attr_by_txt | 0 | stack_st_X509_ATTRIBUTE ** | +| (stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | X509at_add1_attr_by_txt | 1 | const char * | +| (stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | X509at_add1_attr_by_txt | 2 | int | +| (stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | X509at_add1_attr_by_txt | 3 | const unsigned char * | +| (stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | X509at_add1_attr_by_txt | 4 | int | +| (stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_txt | 0 | stack_st_X509_ATTRIBUTE ** | +| (stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_txt | 1 | const char * | +| (stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_txt | 2 | int | +| (stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_txt | 3 | const unsigned char * | +| (stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_txt | 4 | int | +| (stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int) | | X509at_add1_attr_by_NID | 0 | stack_st_X509_ATTRIBUTE ** | +| (stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int) | | X509at_add1_attr_by_NID | 1 | int | +| (stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int) | | X509at_add1_attr_by_NID | 2 | int | +| (stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int) | | X509at_add1_attr_by_NID | 3 | const unsigned char * | +| (stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int) | | X509at_add1_attr_by_NID | 4 | int | +| (stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_NID | 0 | stack_st_X509_ATTRIBUTE ** | +| (stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_NID | 1 | int | +| (stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_NID | 2 | int | +| (stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_NID | 3 | const unsigned char * | +| (stack_st_X509_ATTRIBUTE **,int,int,const unsigned char *,int) | | ossl_x509at_add1_attr_by_NID | 4 | int | +| (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 0 | stack_st_X509_ATTRIBUTE * | +| (stack_st_X509_ATTRIBUTE *,int) | | X509at_delete_attr | 1 | int | +| (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 0 | stack_st_X509_EXTENSION ** | +| (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 1 | X509_EXTENSION * | +| (stack_st_X509_EXTENSION **,X509_EXTENSION *,int) | | X509v3_add_ext | 2 | int | +| (stack_st_X509_EXTENSION **,const stack_st_X509_EXTENSION *) | | X509v3_add_extensions | 0 | stack_st_X509_EXTENSION ** | +| (stack_st_X509_EXTENSION **,const stack_st_X509_EXTENSION *) | | X509v3_add_extensions | 1 | const stack_st_X509_EXTENSION * | +| (stack_st_X509_EXTENSION **,int,void *,int,unsigned long) | | X509V3_add1_i2d | 0 | stack_st_X509_EXTENSION ** | +| (stack_st_X509_EXTENSION **,int,void *,int,unsigned long) | | X509V3_add1_i2d | 1 | int | +| (stack_st_X509_EXTENSION **,int,void *,int,unsigned long) | | X509V3_add1_i2d | 2 | void * | +| (stack_st_X509_EXTENSION **,int,void *,int,unsigned long) | | X509V3_add1_i2d | 3 | int | +| (stack_st_X509_EXTENSION **,int,void *,int,unsigned long) | | X509V3_add1_i2d | 4 | unsigned long | +| (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 0 | stack_st_X509_EXTENSION * | +| (stack_st_X509_EXTENSION *,int) | | X509v3_delete_ext | 1 | int | +| (stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *) | | X509_OBJECT_idx_by_subject | 0 | stack_st_X509_OBJECT * | +| (stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *) | | X509_OBJECT_idx_by_subject | 1 | X509_LOOKUP_TYPE | +| (stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *) | | X509_OBJECT_idx_by_subject | 2 | const X509_NAME * | +| (stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *) | | X509_OBJECT_retrieve_by_subject | 0 | stack_st_X509_OBJECT * | +| (stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *) | | X509_OBJECT_retrieve_by_subject | 1 | X509_LOOKUP_TYPE | +| (stack_st_X509_OBJECT *,X509_LOOKUP_TYPE,const X509_NAME *) | | X509_OBJECT_retrieve_by_subject | 2 | const X509_NAME * | +| (stack_st_X509_OBJECT *,X509_OBJECT *) | | X509_OBJECT_retrieve_match | 0 | stack_st_X509_OBJECT * | +| (stack_st_X509_OBJECT *,X509_OBJECT *) | | X509_OBJECT_retrieve_match | 1 | X509_OBJECT * | +| (stack_st_X509_POLICY_NODE *,const ASN1_OBJECT *) | | ossl_policy_tree_find_sk | 0 | stack_st_X509_POLICY_NODE * | +| (stack_st_X509_POLICY_NODE *,const ASN1_OBJECT *) | | ossl_policy_tree_find_sk | 1 | const ASN1_OBJECT * | +| (state *,config *) | | State_insert | 0 | state * | +| (state *,config *) | | State_insert | 1 | config * | +| (symbol *,lemon *) | | has_destructor | 0 | symbol * | +| (symbol *,lemon *) | | has_destructor | 1 | lemon * | +| (tm *,const ASN1_TIME *) | | ossl_asn1_time_to_tm | 0 | tm * | +| (tm *,const ASN1_TIME *) | | ossl_asn1_time_to_tm | 1 | const ASN1_TIME * | +| (tm *,const ASN1_UTCTIME *) | | ossl_asn1_utctime_to_tm | 0 | tm * | +| (tm *,const ASN1_UTCTIME *) | | ossl_asn1_utctime_to_tm | 1 | const ASN1_UTCTIME * | +| (tm *,int,long) | | OPENSSL_gmtime_adj | 0 | tm * | +| (tm *,int,long) | | OPENSSL_gmtime_adj | 1 | int | +| (tm *,int,long) | | OPENSSL_gmtime_adj | 2 | long | +| (u64[2],const u128[16],const u8 *,size_t) | | ossl_gcm_ghash_4bit | 0 | u64[2] | +| (u64[2],const u128[16],const u8 *,size_t) | | ossl_gcm_ghash_4bit | 1 | const u128[16] | +| (u64[2],const u128[16],const u8 *,size_t) | | ossl_gcm_ghash_4bit | 2 | const u8 * | +| (u64[2],const u128[16],const u8 *,size_t) | | ossl_gcm_ghash_4bit | 3 | size_t | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 0 | uint8_t * | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 1 | const uint8_t * | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 2 | size_t | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 3 | const uint8_t[32] | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 4 | const uint8_t[32] | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 5 | const uint8_t | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 6 | const uint8_t | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 7 | const uint8_t | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 8 | const uint8_t * | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 9 | size_t | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 10 | OSSL_LIB_CTX * | +| (uint8_t *,const uint8_t *,size_t,const uint8_t[32],const uint8_t[32],const uint8_t,const uint8_t,const uint8_t,const uint8_t *,size_t,OSSL_LIB_CTX *,const char *) | | ossl_ed25519_sign | 11 | const char * | +| (uint8_t *,size_t) | | ossl_fnv1a_hash | 0 | uint8_t * | +| (uint8_t *,size_t) | | ossl_fnv1a_hash | 1 | size_t | +| (uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_genkey | 0 | uint8_t * | +| (uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_genkey | 1 | size_t | +| (uint8_t *,size_t,ML_KEM_KEY *) | | ossl_ml_kem_genkey | 2 | ML_KEM_KEY * | +| (uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encode_private_key | 0 | uint8_t * | +| (uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encode_private_key | 1 | size_t | +| (uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encode_private_key | 2 | const ML_KEM_KEY * | +| (uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encode_public_key | 0 | uint8_t * | +| (uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encode_public_key | 1 | size_t | +| (uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encode_public_key | 2 | const ML_KEM_KEY * | +| (uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encode_seed | 0 | uint8_t * | +| (uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encode_seed | 1 | size_t | +| (uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encode_seed | 2 | const ML_KEM_KEY * | +| (uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_decap | 0 | uint8_t * | +| (uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_decap | 1 | size_t | +| (uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_decap | 2 | const uint8_t * | +| (uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_decap | 3 | size_t | +| (uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_decap | 4 | const ML_KEM_KEY * | +| (uint8_t *,size_t,uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_rand | 0 | uint8_t * | +| (uint8_t *,size_t,uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_rand | 1 | size_t | +| (uint8_t *,size_t,uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_rand | 2 | uint8_t * | +| (uint8_t *,size_t,uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_rand | 3 | size_t | +| (uint8_t *,size_t,uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_rand | 4 | const ML_KEM_KEY * | +| (uint8_t *,size_t,uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_seed | 0 | uint8_t * | +| (uint8_t *,size_t,uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_seed | 1 | size_t | +| (uint8_t *,size_t,uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_seed | 2 | uint8_t * | +| (uint8_t *,size_t,uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_seed | 3 | size_t | +| (uint8_t *,size_t,uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_seed | 4 | const uint8_t * | +| (uint8_t *,size_t,uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_seed | 5 | size_t | +| (uint8_t *,size_t,uint8_t *,size_t,const uint8_t *,size_t,const ML_KEM_KEY *) | | ossl_ml_kem_encap_seed | 6 | const ML_KEM_KEY * | +| (uint8_t *,unsigned char *,uint64_t) | | ossl_quic_vlint_encode | 0 | uint8_t * | +| (uint8_t *,unsigned char *,uint64_t) | | ossl_quic_vlint_encode | 1 | unsigned char * | +| (uint8_t *,unsigned char *,uint64_t) | | ossl_quic_vlint_encode | 2 | uint64_t | +| (uint8_t *,unsigned char *,uint64_t,int) | | ossl_quic_vlint_encode_n | 0 | uint8_t * | +| (uint8_t *,unsigned char *,uint64_t,int) | | ossl_quic_vlint_encode_n | 1 | unsigned char * | +| (uint8_t *,unsigned char *,uint64_t,int) | | ossl_quic_vlint_encode_n | 2 | uint64_t | +| (uint8_t *,unsigned char *,uint64_t,int) | | ossl_quic_vlint_encode_n | 3 | int | +| (uint8_t[32],const uint8_t[32]) | | ossl_x25519_public_from_private | 0 | uint8_t[32] | +| (uint8_t[32],const uint8_t[32]) | | ossl_x25519_public_from_private | 1 | const uint8_t[32] | +| (uint8_t[32],const uint8_t[32],const uint8_t[32]) | | ossl_x25519 | 0 | uint8_t[32] | +| (uint8_t[32],const uint8_t[32],const uint8_t[32]) | | ossl_x25519 | 1 | const uint8_t[32] | +| (uint8_t[32],const uint8_t[32],const uint8_t[32]) | | ossl_x25519 | 2 | const uint8_t[32] | +| (uint8_t[56],const curve448_point_t) | | ossl_curve448_point_mul_by_ratio_and_encode_like_x448 | 0 | uint8_t[56] | +| (uint8_t[56],const curve448_point_t) | | ossl_curve448_point_mul_by_ratio_and_encode_like_x448 | 1 | const curve448_point_t | +| (uint8_t[56],const gf,int) | | gf_serialize | 0 | uint8_t[56] | +| (uint8_t[56],const gf,int) | | gf_serialize | 1 | const gf | +| (uint8_t[56],const gf,int) | | gf_serialize | 2 | int | +| (uint8_t[56],const uint8_t[56],const uint8_t[56]) | | ossl_x448 | 0 | uint8_t[56] | +| (uint8_t[56],const uint8_t[56],const uint8_t[56]) | | ossl_x448 | 1 | const uint8_t[56] | +| (uint8_t[56],const uint8_t[56],const uint8_t[56]) | | ossl_x448 | 2 | const uint8_t[56] | +| (uint8_t[56],const uint8_t[56],const uint8_t[56]) | | ossl_x448_int | 0 | uint8_t[56] | +| (uint8_t[56],const uint8_t[56],const uint8_t[56]) | | ossl_x448_int | 1 | const uint8_t[56] | +| (uint8_t[56],const uint8_t[56],const uint8_t[56]) | | ossl_x448_int | 2 | const uint8_t[56] | +| (uint8_t[57],const curve448_point_t) | | ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa | 0 | uint8_t[57] | +| (uint8_t[57],const curve448_point_t) | | ossl_curve448_point_mul_by_ratio_and_encode_like_eddsa | 1 | const curve448_point_t | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t) | | tls1_set_groups | 0 | uint16_t ** | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t) | | tls1_set_groups | 1 | size_t * | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t) | | tls1_set_groups | 2 | uint16_t ** | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t) | | tls1_set_groups | 3 | size_t * | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t) | | tls1_set_groups | 4 | size_t ** | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t) | | tls1_set_groups | 5 | size_t * | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t) | | tls1_set_groups | 6 | int * | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,int *,size_t) | | tls1_set_groups | 7 | size_t | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *) | | ssl_set_tmp_ecdh_groups | 0 | uint16_t ** | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *) | | ssl_set_tmp_ecdh_groups | 1 | size_t * | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *) | | ssl_set_tmp_ecdh_groups | 2 | uint16_t ** | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *) | | ssl_set_tmp_ecdh_groups | 3 | size_t * | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *) | | ssl_set_tmp_ecdh_groups | 4 | size_t ** | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *) | | ssl_set_tmp_ecdh_groups | 5 | size_t * | +| (uint16_t **,size_t *,uint16_t **,size_t *,size_t **,size_t *,void *) | | ssl_set_tmp_ecdh_groups | 6 | void * | +| (uint16_t,int) | | tls1_group_id2nid | 0 | uint16_t | +| (uint16_t,int) | | tls1_group_id2nid | 1 | int | +| (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 0 | uint32_t * | +| (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 1 | SSL_CONNECTION * | +| (uint32_t *,SSL_CONNECTION *,int) | | ssl_set_sig_mask | 2 | int | +| (uint32_t,uint32_t *,uint32_t *) | | ossl_ml_dsa_key_compress_power2_round | 0 | uint32_t | +| (uint32_t,uint32_t *,uint32_t *) | | ossl_ml_dsa_key_compress_power2_round | 1 | uint32_t * | +| (uint32_t,uint32_t *,uint32_t *) | | ossl_ml_dsa_key_compress_power2_round | 2 | uint32_t * | +| (uint32_t,uint32_t) | | ossl_ml_dsa_key_compress_high_bits | 0 | uint32_t | +| (uint32_t,uint32_t) | | ossl_ml_dsa_key_compress_high_bits | 1 | uint32_t | +| (uint32_t,uint32_t) | | ossl_ml_dsa_key_compress_low_bits | 0 | uint32_t | +| (uint32_t,uint32_t) | | ossl_ml_dsa_key_compress_low_bits | 1 | uint32_t | +| (uint32_t,uint32_t,uint32_t *,int32_t *) | | ossl_ml_dsa_key_compress_decompose | 0 | uint32_t | +| (uint32_t,uint32_t,uint32_t *,int32_t *) | | ossl_ml_dsa_key_compress_decompose | 1 | uint32_t | +| (uint32_t,uint32_t,uint32_t *,int32_t *) | | ossl_ml_dsa_key_compress_decompose | 2 | uint32_t * | +| (uint32_t,uint32_t,uint32_t *,int32_t *) | | ossl_ml_dsa_key_compress_decompose | 3 | int32_t * | +| (uint32_t,uint32_t,uint32_t) | | ossl_ml_dsa_key_compress_use_hint | 0 | uint32_t | +| (uint32_t,uint32_t,uint32_t) | | ossl_ml_dsa_key_compress_use_hint | 1 | uint32_t | +| (uint32_t,uint32_t,uint32_t) | | ossl_ml_dsa_key_compress_use_hint | 2 | uint32_t | +| (uint64_t *,const ASN1_INTEGER *) | | ASN1_INTEGER_get_uint64 | 0 | uint64_t * | +| (uint64_t *,const ASN1_INTEGER *) | | ASN1_INTEGER_get_uint64 | 1 | const ASN1_INTEGER * | +| (uint64_t *,int *,const unsigned char **,long) | | ossl_c2i_uint64_int | 0 | uint64_t * | +| (uint64_t *,int *,const unsigned char **,long) | | ossl_c2i_uint64_int | 1 | int * | +| (uint64_t *,int *,const unsigned char **,long) | | ossl_c2i_uint64_int | 2 | const unsigned char ** | +| (uint64_t *,int *,const unsigned char **,long) | | ossl_c2i_uint64_int | 3 | long | +| (uint64_t *,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_load | 0 | uint64_t * | +| (uint64_t *,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_load | 1 | uint64_t * | +| (uint64_t *,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_load | 2 | CRYPTO_RWLOCK * | +| (uint64_t *,uint64_t,CRYPTO_RWLOCK *) | | CRYPTO_atomic_store | 0 | uint64_t * | +| (uint64_t *,uint64_t,CRYPTO_RWLOCK *) | | CRYPTO_atomic_store | 1 | uint64_t | +| (uint64_t *,uint64_t,CRYPTO_RWLOCK *) | | CRYPTO_atomic_store | 2 | CRYPTO_RWLOCK * | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_add64 | 0 | uint64_t * | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_add64 | 1 | uint64_t | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_add64 | 2 | uint64_t * | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_add64 | 3 | CRYPTO_RWLOCK * | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_and | 0 | uint64_t * | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_and | 1 | uint64_t | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_and | 2 | uint64_t * | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_and | 3 | CRYPTO_RWLOCK * | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_or | 0 | uint64_t * | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_or | 1 | uint64_t | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_or | 2 | uint64_t * | +| (uint64_t *,uint64_t,uint64_t *,CRYPTO_RWLOCK *) | | CRYPTO_atomic_or | 3 | CRYPTO_RWLOCK * | +| (uint64_t,uint64_t *) | | ossl_adjust_domain_flags | 0 | uint64_t | +| (uint64_t,uint64_t *) | | ossl_adjust_domain_flags | 1 | uint64_t * | | (unsigned char *) | CStringT | CStringT | 0 | unsigned char * | +| (unsigned char **) | | ASN1_put_eoc | 0 | unsigned char ** | +| (unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int) | | CMS_SharedInfo_encode | 0 | unsigned char ** | +| (unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int) | | CMS_SharedInfo_encode | 1 | X509_ALGOR * | +| (unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int) | | CMS_SharedInfo_encode | 2 | ASN1_OCTET_STRING * | +| (unsigned char **,X509_ALGOR *,ASN1_OCTET_STRING *,int) | | CMS_SharedInfo_encode | 3 | int | +| (unsigned char **,int,int,int,int) | | ASN1_put_object | 0 | unsigned char ** | +| (unsigned char **,int,int,int,int) | | ASN1_put_object | 1 | int | +| (unsigned char **,int,int,int,int) | | ASN1_put_object | 2 | int | +| (unsigned char **,int,int,int,int) | | ASN1_put_object | 3 | int | +| (unsigned char **,int,int,int,int) | | ASN1_put_object | 4 | int | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio | 0 | unsigned char ** | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio | 1 | long * | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio | 2 | char ** | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio | 3 | const char * | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio | 4 | BIO * | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio | 5 | pem_password_cb * | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio | 6 | void * | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio_secmem | 0 | unsigned char ** | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio_secmem | 1 | long * | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio_secmem | 2 | char ** | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio_secmem | 3 | const char * | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio_secmem | 4 | BIO * | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio_secmem | 5 | pem_password_cb * | +| (unsigned char **,long *,char **,const char *,BIO *,pem_password_cb *,void *) | | PEM_bytes_read_bio_secmem | 6 | void * | +| (unsigned char **,long) | | ASN1_check_infinite_end | 0 | unsigned char ** | +| (unsigned char **,long) | | ASN1_check_infinite_end | 1 | long | +| (unsigned char **,size_t *,const EC_POINT *,const EC_KEY *) | | ossl_ecdh_simple_compute_key | 0 | unsigned char ** | +| (unsigned char **,size_t *,const EC_POINT *,const EC_KEY *) | | ossl_ecdh_simple_compute_key | 1 | size_t * | +| (unsigned char **,size_t *,const EC_POINT *,const EC_KEY *) | | ossl_ecdh_simple_compute_key | 2 | const EC_POINT * | +| (unsigned char **,size_t *,const EC_POINT *,const EC_KEY *) | | ossl_ecdh_simple_compute_key | 3 | const EC_KEY * | +| (unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int) | | SSL_select_next_proto | 0 | unsigned char ** | +| (unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int) | | SSL_select_next_proto | 1 | unsigned char * | +| (unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int) | | SSL_select_next_proto | 2 | const unsigned char * | +| (unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int) | | SSL_select_next_proto | 3 | unsigned int | +| (unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int) | | SSL_select_next_proto | 4 | const unsigned char * | +| (unsigned char **,unsigned char *,const unsigned char *,unsigned int,const unsigned char *,unsigned int) | | SSL_select_next_proto | 5 | unsigned int | +| (unsigned char *,BLAKE2B_CTX *) | | ossl_blake2b_final | 0 | unsigned char * | +| (unsigned char *,BLAKE2B_CTX *) | | ossl_blake2b_final | 1 | BLAKE2B_CTX * | +| (unsigned char *,BLAKE2S_CTX *) | | ossl_blake2s_final | 0 | unsigned char * | +| (unsigned char *,BLAKE2S_CTX *) | | ossl_blake2s_final | 1 | BLAKE2S_CTX * | +| (unsigned char *,MD4_CTX *) | | MD4_Final | 0 | unsigned char * | +| (unsigned char *,MD4_CTX *) | | MD4_Final | 1 | MD4_CTX * | +| (unsigned char *,MD5_CTX *) | | MD5_Final | 0 | unsigned char * | +| (unsigned char *,MD5_CTX *) | | MD5_Final | 1 | MD5_CTX * | +| (unsigned char *,MD5_SHA1_CTX *) | | ossl_md5_sha1_final | 0 | unsigned char * | +| (unsigned char *,MD5_SHA1_CTX *) | | ossl_md5_sha1_final | 1 | MD5_SHA1_CTX * | +| (unsigned char *,MDC2_CTX *) | | MDC2_Final | 0 | unsigned char * | +| (unsigned char *,MDC2_CTX *) | | MDC2_Final | 1 | MDC2_CTX * | +| (unsigned char *,RIPEMD160_CTX *) | | RIPEMD160_Final | 0 | unsigned char * | +| (unsigned char *,RIPEMD160_CTX *) | | RIPEMD160_Final | 1 | RIPEMD160_CTX * | +| (unsigned char *,SHA256_CTX *) | | SHA224_Final | 0 | unsigned char * | +| (unsigned char *,SHA256_CTX *) | | SHA224_Final | 1 | SHA256_CTX * | +| (unsigned char *,SHA256_CTX *) | | SHA256_Final | 0 | unsigned char * | +| (unsigned char *,SHA256_CTX *) | | SHA256_Final | 1 | SHA256_CTX * | +| (unsigned char *,SHA512_CTX *) | | SHA384_Final | 0 | unsigned char * | +| (unsigned char *,SHA512_CTX *) | | SHA384_Final | 1 | SHA512_CTX * | +| (unsigned char *,SHA512_CTX *) | | SHA512_Final | 0 | unsigned char * | +| (unsigned char *,SHA512_CTX *) | | SHA512_Final | 1 | SHA512_CTX * | +| (unsigned char *,SHA_CTX *) | | SHA1_Final | 0 | unsigned char * | +| (unsigned char *,SHA_CTX *) | | SHA1_Final | 1 | SHA_CTX * | +| (unsigned char *,SM3_CTX *) | | ossl_sm3_final | 0 | unsigned char * | +| (unsigned char *,SM3_CTX *) | | ossl_sm3_final | 1 | SM3_CTX * | +| (unsigned char *,WHIRLPOOL_CTX *) | | WHIRLPOOL_Final | 0 | unsigned char * | +| (unsigned char *,WHIRLPOOL_CTX *) | | WHIRLPOOL_Final | 1 | WHIRLPOOL_CTX * | +| (unsigned char *,const BIGNUM *,DH *) | | DH_compute_key | 0 | unsigned char * | +| (unsigned char *,const BIGNUM *,DH *) | | DH_compute_key | 1 | const BIGNUM * | +| (unsigned char *,const BIGNUM *,DH *) | | DH_compute_key | 2 | DH * | +| (unsigned char *,const BIGNUM *,DH *) | | DH_compute_key_padded | 0 | unsigned char * | +| (unsigned char *,const BIGNUM *,DH *) | | DH_compute_key_padded | 1 | const BIGNUM * | +| (unsigned char *,const BIGNUM *,DH *) | | DH_compute_key_padded | 2 | DH * | +| (unsigned char *,const BIGNUM *,DH *) | | ossl_dh_compute_key | 0 | unsigned char * | +| (unsigned char *,const BIGNUM *,DH *) | | ossl_dh_compute_key | 1 | const BIGNUM * | +| (unsigned char *,const BIGNUM *,DH *) | | ossl_dh_compute_key | 2 | DH * | +| (unsigned char *,const char *) | | ossl_a2i_ipadd | 0 | unsigned char * | +| (unsigned char *,const char *) | | ossl_a2i_ipadd | 1 | const char * | +| (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 0 | unsigned char * | +| (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 1 | const unsigned char * | +| (unsigned char *,const unsigned char *,int) | | EVP_DecodeBlock | 2 | int | +| (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 0 | unsigned char * | +| (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 1 | const unsigned char * | +| (unsigned char *,const unsigned char *,int) | | EVP_EncodeBlock | 2 | int | +| (unsigned char *,const unsigned char *,size_t) | | BUF_reverse | 0 | unsigned char * | +| (unsigned char *,const unsigned char *,size_t) | | BUF_reverse | 1 | const unsigned char * | +| (unsigned char *,const unsigned char *,size_t) | | BUF_reverse | 2 | size_t | +| (unsigned char *,int) | | RAND_bytes | 0 | unsigned char * | +| (unsigned char *,int) | | RAND_bytes | 1 | int | +| (unsigned char *,int) | | RAND_priv_bytes | 0 | unsigned char * | +| (unsigned char *,int) | | RAND_priv_bytes | 1 | int | +| (unsigned char *,int) | | ossl_ipaddr_to_asc | 0 | unsigned char * | +| (unsigned char *,int) | | ossl_ipaddr_to_asc | 1 | int | +| (unsigned char *,int,const char *,int) | | a2d_ASN1_OBJECT | 0 | unsigned char * | +| (unsigned char *,int,const char *,int) | | a2d_ASN1_OBJECT | 1 | int | +| (unsigned char *,int,const char *,int) | | a2d_ASN1_OBJECT | 2 | const char * | +| (unsigned char *,int,const char *,int) | | a2d_ASN1_OBJECT | 3 | int | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_type_1 | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_type_1 | 1 | int | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_type_1 | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_type_1 | 3 | int | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_type_2 | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_type_2 | 1 | int | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_type_2 | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_type_2 | 3 | int | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_X931 | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_X931 | 1 | int | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_X931 | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_X931 | 3 | int | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_none | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_none | 1 | int | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_none | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_none | 3 | int | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_OAEP | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_OAEP | 1 | int | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_OAEP | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_OAEP | 3 | int | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_OAEP | 4 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int) | | RSA_padding_add_PKCS1_OAEP | 5 | int | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_add_PKCS1_OAEP_mgf1 | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_add_PKCS1_OAEP_mgf1 | 1 | int | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_add_PKCS1_OAEP_mgf1 | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_add_PKCS1_OAEP_mgf1 | 3 | int | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_add_PKCS1_OAEP_mgf1 | 4 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_add_PKCS1_OAEP_mgf1 | 5 | int | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_add_PKCS1_OAEP_mgf1 | 6 | const EVP_MD * | +| (unsigned char *,int,const unsigned char *,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_add_PKCS1_OAEP_mgf1 | 7 | const EVP_MD * | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_PKCS1_type_1 | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_PKCS1_type_1 | 1 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_PKCS1_type_1 | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_PKCS1_type_1 | 3 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_PKCS1_type_1 | 4 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_PKCS1_type_2 | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_PKCS1_type_2 | 1 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_PKCS1_type_2 | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_PKCS1_type_2 | 3 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_PKCS1_type_2 | 4 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_X931 | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_X931 | 1 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_X931 | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_X931 | 3 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_X931 | 4 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_none | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_none | 1 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_none | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_none | 3 | int | +| (unsigned char *,int,const unsigned char *,int,int) | | RSA_padding_check_none | 4 | int | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int) | | RSA_padding_check_PKCS1_OAEP | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int) | | RSA_padding_check_PKCS1_OAEP | 1 | int | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int) | | RSA_padding_check_PKCS1_OAEP | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int) | | RSA_padding_check_PKCS1_OAEP | 3 | int | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int) | | RSA_padding_check_PKCS1_OAEP | 4 | int | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int) | | RSA_padding_check_PKCS1_OAEP | 5 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int) | | RSA_padding_check_PKCS1_OAEP | 6 | int | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_check_PKCS1_OAEP_mgf1 | 0 | unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_check_PKCS1_OAEP_mgf1 | 1 | int | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_check_PKCS1_OAEP_mgf1 | 2 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_check_PKCS1_OAEP_mgf1 | 3 | int | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_check_PKCS1_OAEP_mgf1 | 4 | int | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_check_PKCS1_OAEP_mgf1 | 5 | const unsigned char * | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_check_PKCS1_OAEP_mgf1 | 6 | int | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_check_PKCS1_OAEP_mgf1 | 7 | const EVP_MD * | +| (unsigned char *,int,const unsigned char *,int,int,const unsigned char *,int,const EVP_MD *,const EVP_MD *) | | RSA_padding_check_PKCS1_OAEP_mgf1 | 8 | const EVP_MD * | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *) | | CMS_ReceiptRequest_create0 | 0 | unsigned char * | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *) | | CMS_ReceiptRequest_create0 | 1 | int | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *) | | CMS_ReceiptRequest_create0 | 2 | int | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *) | | CMS_ReceiptRequest_create0 | 3 | stack_st_GENERAL_NAMES * | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *) | | CMS_ReceiptRequest_create0 | 4 | stack_st_GENERAL_NAMES * | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *) | | CMS_ReceiptRequest_create0_ex | 0 | unsigned char * | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *) | | CMS_ReceiptRequest_create0_ex | 1 | int | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *) | | CMS_ReceiptRequest_create0_ex | 2 | int | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *) | | CMS_ReceiptRequest_create0_ex | 3 | stack_st_GENERAL_NAMES * | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *) | | CMS_ReceiptRequest_create0_ex | 4 | stack_st_GENERAL_NAMES * | +| (unsigned char *,int,int,stack_st_GENERAL_NAMES *,stack_st_GENERAL_NAMES *,OSSL_LIB_CTX *) | | CMS_ReceiptRequest_create0_ex | 5 | OSSL_LIB_CTX * | +| (unsigned char *,int,unsigned long) | | UTF8_putc | 0 | unsigned char * | +| (unsigned char *,int,unsigned long) | | UTF8_putc | 1 | int | +| (unsigned char *,int,unsigned long) | | UTF8_putc | 2 | unsigned long | +| (unsigned char *,long,const unsigned char *,long,const EVP_MD *) | | PKCS1_MGF1 | 0 | unsigned char * | +| (unsigned char *,long,const unsigned char *,long,const EVP_MD *) | | PKCS1_MGF1 | 1 | long | +| (unsigned char *,long,const unsigned char *,long,const EVP_MD *) | | PKCS1_MGF1 | 2 | const unsigned char * | +| (unsigned char *,long,const unsigned char *,long,const EVP_MD *) | | PKCS1_MGF1 | 3 | long | +| (unsigned char *,long,const unsigned char *,long,const EVP_MD *) | | PKCS1_MGF1 | 4 | const EVP_MD * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_epki2pki_der_decode | 0 | unsigned char * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_epki2pki_der_decode | 1 | long | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_epki2pki_der_decode | 2 | int | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_epki2pki_der_decode | 3 | OSSL_CALLBACK * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_epki2pki_der_decode | 4 | void * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_epki2pki_der_decode | 5 | OSSL_PASSPHRASE_CALLBACK * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_epki2pki_der_decode | 6 | void * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_epki2pki_der_decode | 7 | OSSL_LIB_CTX * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_epki2pki_der_decode | 8 | const char * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_spki2typespki_der_decode | 0 | unsigned char * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_spki2typespki_der_decode | 1 | long | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_spki2typespki_der_decode | 2 | int | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_spki2typespki_der_decode | 3 | OSSL_CALLBACK * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_spki2typespki_der_decode | 4 | void * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_spki2typespki_der_decode | 5 | OSSL_PASSPHRASE_CALLBACK * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_spki2typespki_der_decode | 6 | void * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_spki2typespki_der_decode | 7 | OSSL_LIB_CTX * | +| (unsigned char *,long,int,OSSL_CALLBACK *,void *,OSSL_PASSPHRASE_CALLBACK *,void *,OSSL_LIB_CTX *,const char *) | | ossl_spki2typespki_der_decode | 8 | const char * | +| (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 0 | unsigned char * | +| (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 1 | size_t * | +| (unsigned char *,size_t *,size_t) | | ossl_cipher_padblock | 2 | size_t | +| (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 0 | unsigned char * | +| (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 1 | size_t * | +| (unsigned char *,size_t *,size_t) | | ossl_cipher_unpadblock | 2 | size_t | +| (unsigned char *,size_t *,size_t,const unsigned char **,size_t *) | | ossl_cipher_fillblock | 0 | unsigned char * | +| (unsigned char *,size_t *,size_t,const unsigned char **,size_t *) | | ossl_cipher_fillblock | 1 | size_t * | +| (unsigned char *,size_t *,size_t,const unsigned char **,size_t *) | | ossl_cipher_fillblock | 2 | size_t | +| (unsigned char *,size_t *,size_t,const unsigned char **,size_t *) | | ossl_cipher_fillblock | 3 | const unsigned char ** | +| (unsigned char *,size_t *,size_t,const unsigned char **,size_t *) | | ossl_cipher_fillblock | 4 | size_t * | +| (unsigned char *,size_t *,size_t,const unsigned char **,size_t *) | | ossl_cipher_trailingdata | 0 | unsigned char * | +| (unsigned char *,size_t *,size_t,const unsigned char **,size_t *) | | ossl_cipher_trailingdata | 1 | size_t * | +| (unsigned char *,size_t *,size_t,const unsigned char **,size_t *) | | ossl_cipher_trailingdata | 2 | size_t | +| (unsigned char *,size_t *,size_t,const unsigned char **,size_t *) | | ossl_cipher_trailingdata | 3 | const unsigned char ** | +| (unsigned char *,size_t *,size_t,const unsigned char **,size_t *) | | ossl_cipher_trailingdata | 4 | size_t * | +| (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 0 | unsigned char * | +| (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 1 | uint64_t | +| (unsigned char *,uint64_t,int) | | ossl_i2c_uint64_int | 2 | int | +| (unsigned char *,void *) | | pitem_new | 0 | unsigned char * | +| (unsigned char *,void *) | | pitem_new | 1 | void * | | (unsigned char) | | operator+= | 0 | unsigned char | | (unsigned char) | CSimpleStringT | operator+= | 0 | unsigned char | +| (unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *) | | SCT_new_from_base64 | 0 | unsigned char | +| (unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *) | | SCT_new_from_base64 | 1 | const char * | +| (unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *) | | SCT_new_from_base64 | 2 | ct_log_entry_type_t | +| (unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *) | | SCT_new_from_base64 | 3 | uint64_t | +| (unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *) | | SCT_new_from_base64 | 4 | const char * | +| (unsigned char,const char *,ct_log_entry_type_t,uint64_t,const char *,const char *) | | SCT_new_from_base64 | 5 | const char * | +| (unsigned char[56],const curve448_scalar_t) | | ossl_curve448_scalar_encode | 0 | unsigned char[56] | +| (unsigned char[56],const curve448_scalar_t) | | ossl_curve448_scalar_encode | 1 | const curve448_scalar_t | +| (unsigned int *,const BF_KEY *) | | BF_decrypt | 0 | unsigned int * | +| (unsigned int *,const BF_KEY *) | | BF_decrypt | 1 | const BF_KEY * | +| (unsigned int *,const BF_KEY *) | | BF_encrypt | 0 | unsigned int * | +| (unsigned int *,const BF_KEY *) | | BF_encrypt | 1 | const BF_KEY * | +| (unsigned int *,const CAST_KEY *) | | CAST_decrypt | 0 | unsigned int * | +| (unsigned int *,const CAST_KEY *) | | CAST_decrypt | 1 | const CAST_KEY * | +| (unsigned int *,const CAST_KEY *) | | CAST_encrypt | 0 | unsigned int * | +| (unsigned int *,const CAST_KEY *) | | CAST_encrypt | 1 | const CAST_KEY * | +| (unsigned int) | | Jim_IntHashFunction | 0 | unsigned int | +| (unsigned int) | | ssl3_get_cipher | 0 | unsigned int | +| (unsigned int,int,int) | | ossl_blob_length | 0 | unsigned int | +| (unsigned int,int,int) | | ossl_blob_length | 1 | int | +| (unsigned int,int,int) | | ossl_blob_length | 2 | int | +| (unsigned int[5],const unsigned char[64]) | | SHA1Transform | 0 | unsigned int[5] | +| (unsigned int[5],const unsigned char[64]) | | SHA1Transform | 1 | const unsigned char[64] | +| (unsigned long *,IDEA_KEY_SCHEDULE *) | | IDEA_encrypt | 0 | unsigned long * | +| (unsigned long *,IDEA_KEY_SCHEDULE *) | | IDEA_encrypt | 1 | IDEA_KEY_SCHEDULE * | +| (unsigned long *,RC2_KEY *) | | RC2_decrypt | 0 | unsigned long * | +| (unsigned long *,RC2_KEY *) | | RC2_decrypt | 1 | RC2_KEY * | +| (unsigned long *,RC2_KEY *) | | RC2_encrypt | 0 | unsigned long * | +| (unsigned long *,RC2_KEY *) | | RC2_encrypt | 1 | RC2_KEY * | +| (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 0 | unsigned long * | +| (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 1 | const BIGNUM * | +| (unsigned long *,const BIGNUM *,int) | | bn_copy_words | 2 | int | +| (unsigned long *,const char *) | | set_cert_ex | 0 | unsigned long * | +| (unsigned long *,const char *) | | set_cert_ex | 1 | const char * | +| (unsigned long *,const char *) | | set_name_ex | 0 | unsigned long * | +| (unsigned long *,const char *) | | set_name_ex | 1 | const char * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 0 | unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 1 | const unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 2 | const unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 3 | const unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 4 | const unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 5 | unsigned long | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 6 | unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 7 | const unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 8 | const unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 9 | const unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 10 | const unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 11 | unsigned long | +| (unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,const unsigned long *,unsigned long,int) | | ossl_rsaz_mod_exp_avx512_x2 | 12 | int | +| (unsigned long *,const unsigned long *,const unsigned long *,int,int) | | bn_sub_part_words | 0 | unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,int,int) | | bn_sub_part_words | 1 | const unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,int,int) | | bn_sub_part_words | 2 | const unsigned long * | +| (unsigned long *,const unsigned long *,const unsigned long *,int,int) | | bn_sub_part_words | 3 | int | +| (unsigned long *,const unsigned long *,const unsigned long *,int,int) | | bn_sub_part_words | 4 | int | +| (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 0 | unsigned long * | +| (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 1 | const unsigned long * | +| (unsigned long *,const unsigned long *,int) | | bn_sqr_words | 2 | int | +| (unsigned long *,const unsigned long *,int,unsigned long *) | | bn_sqr_normal | 0 | unsigned long * | +| (unsigned long *,const unsigned long *,int,unsigned long *) | | bn_sqr_normal | 1 | const unsigned long * | +| (unsigned long *,const unsigned long *,int,unsigned long *) | | bn_sqr_normal | 2 | int | +| (unsigned long *,const unsigned long *,int,unsigned long *) | | bn_sqr_normal | 3 | unsigned long * | +| (unsigned long *,const unsigned long *,int,unsigned long *) | | bn_sqr_recursive | 0 | unsigned long * | +| (unsigned long *,const unsigned long *,int,unsigned long *) | | bn_sqr_recursive | 1 | const unsigned long * | +| (unsigned long *,const unsigned long *,int,unsigned long *) | | bn_sqr_recursive | 2 | int | +| (unsigned long *,const unsigned long *,int,unsigned long *) | | bn_sqr_recursive | 3 | unsigned long * | +| (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_add_words | 0 | unsigned long * | +| (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_add_words | 1 | const unsigned long * | +| (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_add_words | 2 | int | +| (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_add_words | 3 | unsigned long | +| (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_words | 0 | unsigned long * | +| (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_words | 1 | const unsigned long * | +| (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_words | 2 | int | +| (unsigned long *,const unsigned long *,int,unsigned long) | | bn_mul_words | 3 | unsigned long | +| (unsigned long *,unsigned long *,int,unsigned long *,int) | | bn_mul_normal | 0 | unsigned long * | +| (unsigned long *,unsigned long *,int,unsigned long *,int) | | bn_mul_normal | 1 | unsigned long * | +| (unsigned long *,unsigned long *,int,unsigned long *,int) | | bn_mul_normal | 2 | int | +| (unsigned long *,unsigned long *,int,unsigned long *,int) | | bn_mul_normal | 3 | unsigned long * | +| (unsigned long *,unsigned long *,int,unsigned long *,int) | | bn_mul_normal | 4 | int | +| (unsigned long *,unsigned long *,unsigned long *,int) | | bn_mul_low_normal | 0 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int) | | bn_mul_low_normal | 1 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int) | | bn_mul_low_normal | 2 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int) | | bn_mul_low_normal | 3 | int | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_part_recursive | 0 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_part_recursive | 1 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_part_recursive | 2 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_part_recursive | 3 | int | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_part_recursive | 4 | int | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_part_recursive | 5 | int | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_part_recursive | 6 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_recursive | 0 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_recursive | 1 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_recursive | 2 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_recursive | 3 | int | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_recursive | 4 | int | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_recursive | 5 | int | +| (unsigned long *,unsigned long *,unsigned long *,int,int,int,unsigned long *) | | bn_mul_recursive | 6 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,unsigned long *) | | bn_mul_low_recursive | 0 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,unsigned long *) | | bn_mul_low_recursive | 1 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,unsigned long *) | | bn_mul_low_recursive | 2 | unsigned long * | +| (unsigned long *,unsigned long *,unsigned long *,int,unsigned long *) | | bn_mul_low_recursive | 3 | int | +| (unsigned long *,unsigned long *,unsigned long *,int,unsigned long *) | | bn_mul_low_recursive | 4 | unsigned long * | +| (unsigned long) | | BN_num_bits_word | 0 | unsigned long | +| (unsigned long) | | BUF_MEM_new_ex | 0 | unsigned long | +| (unsigned long,BIGNUM *,BIGNUM *,int) | | BN_consttime_swap | 0 | unsigned long | +| (unsigned long,BIGNUM *,BIGNUM *,int) | | BN_consttime_swap | 1 | BIGNUM * | +| (unsigned long,BIGNUM *,BIGNUM *,int) | | BN_consttime_swap | 2 | BIGNUM * | +| (unsigned long,BIGNUM *,BIGNUM *,int) | | BN_consttime_swap | 3 | int | +| (unsigned long,char *) | | ERR_error_string | 0 | unsigned long | +| (unsigned long,char *) | | ERR_error_string | 1 | char * | +| (unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8]) | | RSAZ_512_mod_exp | 0 | unsigned long[8] | +| (unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8]) | | RSAZ_512_mod_exp | 1 | const unsigned long[8] | +| (unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8]) | | RSAZ_512_mod_exp | 2 | const unsigned long[8] | +| (unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8]) | | RSAZ_512_mod_exp | 3 | const unsigned long[8] | +| (unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8]) | | RSAZ_512_mod_exp | 4 | unsigned long | +| (unsigned long[8],const unsigned long[8],const unsigned long[8],const unsigned long[8],unsigned long,const unsigned long[8]) | | RSAZ_512_mod_exp | 5 | const unsigned long[8] | +| (unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],unsigned long) | | RSAZ_1024_mod_exp_avx2 | 0 | unsigned long[16] | +| (unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],unsigned long) | | RSAZ_1024_mod_exp_avx2 | 1 | const unsigned long[16] | +| (unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],unsigned long) | | RSAZ_1024_mod_exp_avx2 | 2 | const unsigned long[16] | +| (unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],unsigned long) | | RSAZ_1024_mod_exp_avx2 | 3 | const unsigned long[16] | +| (unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],unsigned long) | | RSAZ_1024_mod_exp_avx2 | 4 | const unsigned long[16] | +| (unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],const unsigned long[16],unsigned long) | | RSAZ_1024_mod_exp_avx2 | 5 | unsigned long | +| (unsigned short,int) | | dtls1_get_queue_priority | 0 | unsigned short | +| (unsigned short,int) | | dtls1_get_queue_priority | 1 | int | | (vector &&) | vector | vector | 0 | vector && | | (vector &&,const Allocator &) | vector | vector | 0 | vector && | | (vector &&,const Allocator &) | vector | vector | 1 | const class:1 & | +| (void *) | | ossl_kdf_data_new | 0 | void * | +| (void *,CRYPTO_THREAD_RETVAL *) | | ossl_crypto_thread_join | 0 | void * | +| (void *,CRYPTO_THREAD_RETVAL *) | | ossl_crypto_thread_join | 1 | CRYPTO_THREAD_RETVAL * | +| (void *,OSSL_PARAM[]) | | fake_pipeline_aead_get_ctx_params | 0 | void * | +| (void *,OSSL_PARAM[]) | | fake_pipeline_aead_get_ctx_params | 1 | OSSL_PARAM[] | +| (void *,OSSL_PARAM[]) | | ossl_blake2b_get_ctx_params | 0 | void * | +| (void *,OSSL_PARAM[]) | | ossl_blake2b_get_ctx_params | 1 | OSSL_PARAM[] | +| (void *,OSSL_PARAM[]) | | ossl_blake2s_get_ctx_params | 0 | void * | +| (void *,OSSL_PARAM[]) | | ossl_blake2s_get_ctx_params | 1 | OSSL_PARAM[] | +| (void *,OSSL_PARAM[]) | | ossl_ccm_get_ctx_params | 0 | void * | +| (void *,OSSL_PARAM[]) | | ossl_ccm_get_ctx_params | 1 | OSSL_PARAM[] | +| (void *,OSSL_PARAM[]) | | ossl_cipher_generic_get_ctx_params | 0 | void * | +| (void *,OSSL_PARAM[]) | | ossl_cipher_generic_get_ctx_params | 1 | OSSL_PARAM[] | +| (void *,OSSL_PARAM[]) | | ossl_gcm_get_ctx_params | 0 | void * | +| (void *,OSSL_PARAM[]) | | ossl_gcm_get_ctx_params | 1 | OSSL_PARAM[] | +| (void *,OSSL_PARAM[]) | | ossl_tdes_get_ctx_params | 0 | void * | +| (void *,OSSL_PARAM[]) | | ossl_tdes_get_ctx_params | 1 | OSSL_PARAM[] | +| (void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *) | | ossl_gcm_initctx | 0 | void * | +| (void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *) | | ossl_gcm_initctx | 1 | PROV_GCM_CTX * | +| (void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *) | | ossl_gcm_initctx | 2 | size_t | +| (void *,PROV_GCM_CTX *,size_t,const PROV_GCM_HW *) | | ossl_gcm_initctx | 3 | const PROV_GCM_HW * | +| (void *,block128_f) | | CRYPTO_gcm128_new | 0 | void * | +| (void *,block128_f) | | CRYPTO_gcm128_new | 1 | block128_f | +| (void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **) | | ASN1_item_pack | 0 | void * | +| (void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **) | | ASN1_item_pack | 1 | const ASN1_ITEM * | +| (void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **) | | ASN1_item_pack | 2 | ASN1_OCTET_STRING ** | +| (void *,const ASN1_ITEM *,ASN1_OCTET_STRING **,ASN1_STRING **) | | ASN1_item_pack | 3 | ASN1_STRING ** | +| (void *,const ASN1_ITEM *,int,int) | | PKCS12_item_pack_safebag | 0 | void * | +| (void *,const ASN1_ITEM *,int,int) | | PKCS12_item_pack_safebag | 1 | const ASN1_ITEM * | +| (void *,const ASN1_ITEM *,int,int) | | PKCS12_item_pack_safebag | 2 | int | +| (void *,const ASN1_ITEM *,int,int) | | PKCS12_item_pack_safebag | 3 | int | +| (void *,const OSSL_PARAM[]) | | fake_pipeline_aead_set_ctx_params | 0 | void * | +| (void *,const OSSL_PARAM[]) | | fake_pipeline_aead_set_ctx_params | 1 | const OSSL_PARAM[] | +| (void *,const OSSL_PARAM[]) | | ossl_blake2b_set_ctx_params | 0 | void * | +| (void *,const OSSL_PARAM[]) | | ossl_blake2b_set_ctx_params | 1 | const OSSL_PARAM[] | +| (void *,const OSSL_PARAM[]) | | ossl_blake2s_set_ctx_params | 0 | void * | +| (void *,const OSSL_PARAM[]) | | ossl_blake2s_set_ctx_params | 1 | const OSSL_PARAM[] | +| (void *,const OSSL_PARAM[]) | | ossl_ccm_set_ctx_params | 0 | void * | +| (void *,const OSSL_PARAM[]) | | ossl_ccm_set_ctx_params | 1 | const OSSL_PARAM[] | +| (void *,const OSSL_PARAM[]) | | ossl_cipher_generic_set_ctx_params | 0 | void * | +| (void *,const OSSL_PARAM[]) | | ossl_cipher_generic_set_ctx_params | 1 | const OSSL_PARAM[] | +| (void *,const OSSL_PARAM[]) | | ossl_cipher_var_keylen_set_ctx_params | 0 | void * | +| (void *,const OSSL_PARAM[]) | | ossl_cipher_var_keylen_set_ctx_params | 1 | const OSSL_PARAM[] | +| (void *,const OSSL_PARAM[]) | | ossl_gcm_set_ctx_params | 0 | void * | +| (void *,const OSSL_PARAM[]) | | ossl_gcm_set_ctx_params | 1 | const OSSL_PARAM[] | +| (void *,const OSSL_PARAM[]) | | ossl_tdes_set_ctx_params | 0 | void * | +| (void *,const OSSL_PARAM[]) | | ossl_tdes_set_ctx_params | 1 | const OSSL_PARAM[] | +| (void *,const char *,int) | | CRYPTO_secure_free | 0 | void * | +| (void *,const char *,int) | | CRYPTO_secure_free | 1 | const char * | +| (void *,const char *,int) | | CRYPTO_secure_free | 2 | int | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_dinit | 0 | void * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_dinit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_dinit | 2 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_dinit | 3 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_dinit | 4 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_dinit | 5 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_einit | 0 | void * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_einit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_einit | 2 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_einit | 3 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_einit | 4 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_ccm_einit | 5 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_dinit | 0 | void * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_dinit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_dinit | 2 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_dinit | 3 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_dinit | 4 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_dinit | 5 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_einit | 0 | void * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_einit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_einit | 2 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_einit | 3 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_einit | 4 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_chacha20_einit | 5 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_dinit | 0 | void * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_dinit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_dinit | 2 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_dinit | 3 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_dinit | 4 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_dinit | 5 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_einit | 0 | void * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_einit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_einit | 2 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_einit | 3 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_einit | 4 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_einit | 5 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_dinit | 0 | void * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_dinit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_dinit | 2 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_dinit | 3 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_dinit | 4 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_dinit | 5 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_einit | 0 | void * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_einit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_einit | 2 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_einit | 3 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_einit | 4 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_gcm_einit | 5 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_dinit | 0 | void * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_dinit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_dinit | 2 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_dinit | 3 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_dinit | 4 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_dinit | 5 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_einit | 0 | void * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_einit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_einit | 2 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_einit | 3 | const unsigned char * | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_einit | 4 | size_t | +| (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_einit | 5 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 0 | void * | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 2 | size_t | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 3 | size_t | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 4 | const unsigned char ** | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 5 | size_t | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 6 | const OSSL_PARAM[] | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 0 | void * | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 1 | const unsigned char * | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 2 | size_t | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 3 | size_t | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 4 | const unsigned char ** | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 5 | size_t | +| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 6 | const OSSL_PARAM[] | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap | 0 | void * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap | 1 | const unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap | 2 | unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap | 3 | const unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap | 4 | size_t | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap | 5 | block128_f | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap_pad | 0 | void * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap_pad | 1 | const unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap_pad | 2 | unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap_pad | 3 | const unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap_pad | 4 | size_t | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap_pad | 5 | block128_f | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap | 0 | void * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap | 1 | const unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap | 2 | unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap | 3 | const unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap | 4 | size_t | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap | 5 | block128_f | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap_pad | 0 | void * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap_pad | 1 | const unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap_pad | 2 | unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap_pad | 3 | const unsigned char * | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap_pad | 4 | size_t | +| (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_wrap_pad | 5 | block128_f | +| (void *,int) | | DSO_dsobyaddr | 0 | void * | +| (void *,int) | | DSO_dsobyaddr | 1 | int | +| (void *,int) | | sqlite3_realloc | 0 | void * | +| (void *,int) | | sqlite3_realloc | 1 | int | +| (void *,int,const OSSL_PARAM[]) | | generic_import | 0 | void * | +| (void *,int,const OSSL_PARAM[]) | | generic_import | 1 | int | +| (void *,int,const OSSL_PARAM[]) | | generic_import | 2 | const OSSL_PARAM[] | +| (void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *) | | ossl_tdes_newctx | 0 | void * | +| (void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *) | | ossl_tdes_newctx | 1 | int | +| (void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *) | | ossl_tdes_newctx | 2 | size_t | +| (void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *) | | ossl_tdes_newctx | 3 | size_t | +| (void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *) | | ossl_tdes_newctx | 4 | size_t | +| (void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *) | | ossl_tdes_newctx | 5 | uint64_t | +| (void *,int,size_t,size_t,size_t,uint64_t,const PROV_CIPHER_HW *) | | ossl_tdes_newctx | 6 | const PROV_CIPHER_HW * | +| (void *,size_t) | | JimDefaultAllocator | 0 | void * | +| (void *,size_t) | | JimDefaultAllocator | 1 | size_t | +| (void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..)) | | ECDH_compute_key | 0 | void * | +| (void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..)) | | ECDH_compute_key | 1 | size_t | +| (void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..)) | | ECDH_compute_key | 2 | const EC_POINT * | +| (void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..)) | | ECDH_compute_key | 3 | const EC_KEY * | +| (void *,size_t,const EC_POINT *,const EC_KEY *,..(*)(..)) | | ECDH_compute_key | 4 | ..(*)(..) | +| (void *,size_t,const char *,int) | | CRYPTO_secure_clear_free | 0 | void * | +| (void *,size_t,const char *,int) | | CRYPTO_secure_clear_free | 1 | size_t | +| (void *,size_t,const char *,int) | | CRYPTO_secure_clear_free | 2 | const char * | +| (void *,size_t,const char *,int) | | CRYPTO_secure_clear_free | 3 | int | +| (void *,size_t,size_t,const char *,int) | | CRYPTO_clear_realloc | 0 | void * | +| (void *,size_t,size_t,const char *,int) | | CRYPTO_clear_realloc | 1 | size_t | +| (void *,size_t,size_t,const char *,int) | | CRYPTO_clear_realloc | 2 | size_t | +| (void *,size_t,size_t,const char *,int) | | CRYPTO_clear_realloc | 3 | const char * | +| (void *,size_t,size_t,const char *,int) | | CRYPTO_clear_realloc | 4 | int | +| (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 0 | void * | +| (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 1 | size_t | +| (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 2 | size_t | +| (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 3 | size_t | +| (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 4 | unsigned int | +| (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 5 | uint64_t | +| (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 6 | const PROV_CIPHER_HW * | +| (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 7 | void * | +| (void *,size_t,unsigned char **,size_t *,const size_t *) | | fake_pipeline_final | 0 | void * | +| (void *,size_t,unsigned char **,size_t *,const size_t *) | | fake_pipeline_final | 1 | size_t | +| (void *,size_t,unsigned char **,size_t *,const size_t *) | | fake_pipeline_final | 2 | unsigned char ** | +| (void *,size_t,unsigned char **,size_t *,const size_t *) | | fake_pipeline_final | 3 | size_t * | +| (void *,size_t,unsigned char **,size_t *,const size_t *) | | fake_pipeline_final | 4 | const size_t * | +| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 0 | void * | +| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 1 | size_t | +| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 2 | unsigned char ** | +| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 3 | size_t * | +| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 4 | const size_t * | +| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 5 | const unsigned char ** | +| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 6 | const size_t * | +| (void *,sqlite3 *,int,const char *) | | useDummyCS | 0 | void * | +| (void *,sqlite3 *,int,const char *) | | useDummyCS | 1 | sqlite3 * | +| (void *,sqlite3 *,int,const char *) | | useDummyCS | 2 | int | +| (void *,sqlite3 *,int,const char *) | | useDummyCS | 3 | const char * | +| (void *,sqlite3_uint64) | | sqlite3_realloc64 | 0 | void * | +| (void *,sqlite3_uint64) | | sqlite3_realloc64 | 1 | sqlite3_uint64 | +| (void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t) | | ossl_drbg_get_seed | 0 | void * | +| (void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t) | | ossl_drbg_get_seed | 1 | unsigned char ** | +| (void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t) | | ossl_drbg_get_seed | 2 | int | +| (void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t) | | ossl_drbg_get_seed | 3 | size_t | +| (void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t) | | ossl_drbg_get_seed | 4 | size_t | +| (void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t) | | ossl_drbg_get_seed | 5 | int | +| (void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t) | | ossl_drbg_get_seed | 6 | const unsigned char * | +| (void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t) | | ossl_drbg_get_seed | 7 | size_t | +| (void *,unsigned char *,size_t *,size_t) | | ossl_ccm_stream_final | 0 | void * | +| (void *,unsigned char *,size_t *,size_t) | | ossl_ccm_stream_final | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t) | | ossl_ccm_stream_final | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t) | | ossl_ccm_stream_final | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t) | | ossl_cipher_generic_block_final | 0 | void * | +| (void *,unsigned char *,size_t *,size_t) | | ossl_cipher_generic_block_final | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t) | | ossl_cipher_generic_block_final | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t) | | ossl_cipher_generic_block_final | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t) | | ossl_gcm_stream_final | 0 | void * | +| (void *,unsigned char *,size_t *,size_t) | | ossl_gcm_stream_final | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t) | | ossl_gcm_stream_final | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t) | | ossl_gcm_stream_final | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_cipher | 0 | void * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_cipher | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_cipher | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_cipher | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_cipher | 4 | const unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_cipher | 5 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_stream_update | 0 | void * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_stream_update | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_stream_update | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_stream_update | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_stream_update | 4 | const unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_ccm_stream_update | 5 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_cbc_cts_block_update | 0 | void * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_cbc_cts_block_update | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_cbc_cts_block_update | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_cbc_cts_block_update | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_cbc_cts_block_update | 4 | const unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_cbc_cts_block_update | 5 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_block_update | 0 | void * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_block_update | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_block_update | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_block_update | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_block_update | 4 | const unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_block_update | 5 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_cipher | 0 | void * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_cipher | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_cipher | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_cipher | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_cipher | 4 | const unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_cipher | 5 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_stream_update | 0 | void * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_stream_update | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_stream_update | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_stream_update | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_stream_update | 4 | const unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_cipher_generic_stream_update | 5 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_cipher | 0 | void * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_cipher | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_cipher | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_cipher | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_cipher | 4 | const unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_cipher | 5 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_stream_update | 0 | void * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_stream_update | 1 | unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_stream_update | 2 | size_t * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_stream_update | 3 | size_t | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_stream_update | 4 | const unsigned char * | +| (void *,unsigned char *,size_t *,size_t,const unsigned char *,size_t) | | ossl_gcm_stream_update | 5 | size_t | +| (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 0 | void * | +| (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 1 | unsigned char * | +| (void *,unsigned char *,size_t) | | ossl_drbg_clear_seed | 2 | size_t | +| (void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_new | 0 | void * | +| (void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_new | 1 | void * | +| (void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_new | 2 | block128_f | +| (void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_new | 3 | block128_f | +| (void *,void *,block128_f,block128_f,ocb128_f) | | CRYPTO_ocb128_new | 4 | ocb128_f | +| (void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | ossl_rand_drbg_new | 0 | void * | +| (void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | ossl_rand_drbg_new | 1 | void * | +| (void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | ossl_rand_drbg_new | 2 | const OSSL_DISPATCH * | +| (void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | ossl_rand_drbg_new | 3 | ..(*)(..) | +| (void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | ossl_rand_drbg_new | 4 | ..(*)(..) | +| (void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | ossl_rand_drbg_new | 5 | ..(*)(..) | +| (void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | ossl_rand_drbg_new | 6 | ..(*)(..) | +| (void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | ossl_rand_drbg_new | 7 | ..(*)(..) | +| (void *,void *,const OSSL_DISPATCH *,..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..),..(*)(..)) | | ossl_rand_drbg_new | 8 | ..(*)(..) | +| (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_dinit | 0 | void * | +| (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_dinit | 1 | void * | +| (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_dinit | 2 | const unsigned char * | +| (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_dinit | 3 | size_t | +| (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_dinit | 4 | const OSSL_PARAM[] | +| (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_einit | 0 | void * | +| (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_einit | 1 | void * | +| (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_einit | 2 | const unsigned char * | +| (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_einit | 3 | size_t | +| (void *,void *,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_cipher_generic_skey_einit | 4 | const OSSL_PARAM[] | | (wchar_t *) | CStringT | CStringT | 0 | wchar_t * | | (wchar_t) | | operator+= | 0 | wchar_t | | (wchar_t) | CComBSTR | Append | 0 | wchar_t | From 3df647f205dbb66da5e6eedaa2a5ac5f3b7c8e10 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Wed, 14 May 2025 13:46:33 +0100 Subject: [PATCH 439/656] C++: Add change note. --- cpp/ql/src/change-notes/2025-05-14-openssl-sqlite-models.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/src/change-notes/2025-05-14-openssl-sqlite-models.md diff --git a/cpp/ql/src/change-notes/2025-05-14-openssl-sqlite-models.md b/cpp/ql/src/change-notes/2025-05-14-openssl-sqlite-models.md new file mode 100644 index 00000000000..c03bd600ac9 --- /dev/null +++ b/cpp/ql/src/change-notes/2025-05-14-openssl-sqlite-models.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added flow model for the `SQLite` and `OpenSSL` libraries. This may result in more alerts when running queries on codebases that use these libraries. \ No newline at end of file From 1d31a383624ae385e7e9a02b7af6a2f03908eb82 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 16 May 2025 13:53:16 +0100 Subject: [PATCH 440/656] C++: Regenerate the models for OpenSSL and sqlite after excluding tests in model-generation (sqlite is unaffected). --- cpp/ql/lib/ext/generated/openssl.model.yml | 251 --------------------- 1 file changed, 251 deletions(-) diff --git a/cpp/ql/lib/ext/generated/openssl.model.yml b/cpp/ql/lib/ext/generated/openssl.model.yml index 83d90d430f9..fd347edf4e0 100644 --- a/cpp/ql/lib/ext/generated/openssl.model.yml +++ b/cpp/ql/lib/ext/generated/openssl.model.yml @@ -5110,22 +5110,6 @@ extensions: - ["", "", True, "OSSL_ROLE_SPEC_CERT_ID_SYNTAX_free", "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] - ["", "", True, "OSSL_ROLE_SPEC_CERT_ID_free", "(OSSL_ROLE_SPEC_CERT_ID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] - ["", "", True, "OSSL_ROLE_SPEC_CERT_ID_free", "(OSSL_ROLE_SPEC_CERT_ID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] - - ["", "", True, "OSSL_SELF_TEST_get_callback", "(OSSL_LIB_CTX *,OSSL_CALLBACK **,void **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] - - ["", "", True, "OSSL_SELF_TEST_get_callback", "(OSSL_LIB_CTX *,OSSL_CALLBACK **,void **)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] - - ["", "", True, "OSSL_SELF_TEST_get_callback", "(OSSL_LIB_CTX *,OSSL_CALLBACK **,void **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] - - ["", "", True, "OSSL_SELF_TEST_new", "(OSSL_CALLBACK *,void *)", "", "Argument[**1]", "ReturnValue[*].Field[***cb_arg]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_new", "(OSSL_CALLBACK *,void *)", "", "Argument[*1]", "ReturnValue[*].Field[**cb_arg]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_new", "(OSSL_CALLBACK *,void *)", "", "Argument[0]", "ReturnValue[*].Field[*cb]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_new", "(OSSL_CALLBACK *,void *)", "", "Argument[1]", "ReturnValue[*].Field[*cb_arg]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**type]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[*1]", "Argument[*0].Field[*params].Field[**data]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[**desc]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[*2]", "Argument[*0].Field[*params].Field[**data]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[*params].Field[*data]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[1]", "Argument[*0].Field[*type]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[*desc]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_onbegin", "(OSSL_SELF_TEST *,const char *,const char *)", "", "Argument[2]", "Argument[*0].Field[*params].Field[*data]", "value", "dfc-generated"] - - ["", "", True, "OSSL_SELF_TEST_oncorrupt_byte", "(OSSL_SELF_TEST *,unsigned char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "OSSL_STORE_INFO_get0_CERT", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "OSSL_STORE_INFO_get0_CERT", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[**(unnamed class/struct/union)]", "ReturnValue[*]", "value", "dfc-generated"] - ["", "", True, "OSSL_STORE_INFO_get0_CRL", "(const OSSL_STORE_INFO *)", "", "Argument[*0].Field[*_].Union[*(unnamed class/struct/union)]", "ReturnValue", "value", "dfc-generated"] @@ -7222,10 +7206,6 @@ extensions: - ["", "", True, "SSL_SESSION_set_time_ex", "(SSL_SESSION *,time_t)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "SSL_SESSION_set_timeout", "(SSL_SESSION *,long)", "", "Argument[1]", "Argument[*0].Field[*calc_timeout].Field[*t]", "taint", "dfc-generated"] - ["", "", True, "SSL_SESSION_set_timeout", "(SSL_SESSION *,long)", "", "Argument[1]", "Argument[*0].Field[*timeout].Field[*t]", "taint", "dfc-generated"] - - ["", "", True, "SSL_TEST_CTX_create", "(const CONF *,const char *,OSSL_LIB_CTX *)", "", "Argument[*2]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "SSL_TEST_CTX_create", "(const CONF *,const char *,OSSL_LIB_CTX *)", "", "Argument[2]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "SSL_TEST_CTX_new", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "SSL_TEST_CTX_new", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - ["", "", True, "SSL_accept", "(SSL *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - ["", "", True, "SSL_add1_host", "(SSL *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**param].Field[**ip]", "taint", "dfc-generated"] - ["", "", True, "SSL_add1_host", "(SSL *,const char *)", "", "Argument[1]", "Argument[*0].Field[**param].Field[**ip]", "taint", "dfc-generated"] @@ -7580,13 +7560,6 @@ extensions: - ["", "", True, "SSL_write_ex", "(SSL *,const void *,size_t,size_t *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - ["", "", True, "SSL_write_ex", "(SSL *,const void *,size_t,size_t *)", "", "Argument[2]", "Argument[*3]", "taint", "dfc-generated"] - ["", "", True, "SSL_write_ex", "(SSL *,const void *,size_t,size_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "STACK_OF_X509_cmp", "(const stack_st_X509 *,const stack_st_X509 *)", "", "Argument[*0].Field[*num]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "STACK_OF_X509_cmp", "(const stack_st_X509 *,const stack_st_X509 *)", "", "Argument[*1].Field[*num]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "STACK_OF_X509_push1", "(stack_st_X509 *,X509 *)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] - - ["", "", True, "STACK_OF_X509_push1", "(stack_st_X509 *,X509 *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] - - ["", "", True, "STACK_OF_X509_push1", "(stack_st_X509 *,X509 *)", "", "Argument[*1]", "Argument[1]", "value", "df-generated"] - - ["", "", True, "STACK_OF_X509_push1", "(stack_st_X509 *,X509 *)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] - - ["", "", True, "STACK_OF_X509_push1", "(stack_st_X509 *,X509 *)", "", "Argument[1]", "Argument[*1]", "value", "df-generated"] - ["", "", True, "SXNETID_free", "(SXNETID *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] - ["", "", True, "SXNETID_free", "(SXNETID *)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] - ["", "", True, "SXNET_add_id_INTEGER", "(SXNET **,ASN1_INTEGER *,const char *,int)", "", "Argument[*0]", "Argument[**0]", "value", "df-generated"] @@ -8904,11 +8877,6 @@ extensions: - ["", "", True, "a2i_IPADDRESS", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] - ["", "", True, "a2i_IPADDRESS_NC", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] - ["", "", True, "a2i_IPADDRESS_NC", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[**data]", "taint", "dfc-generated"] - - ["", "", True, "add_certbag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] - - ["", "", True, "add_certbag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *)", "", "Argument[2]", "Argument[1]", "taint", "dfc-generated"] - - ["", "", True, "add_keybag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] - - ["", "", True, "add_keybag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *)", "", "Argument[2]", "Argument[1]", "taint", "dfc-generated"] - - ["", "", True, "add_secretbag", "(PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *)", "", "Argument[3]", "Argument[*3]", "taint", "df-generated"] - ["", "", True, "app_http_get_asn1", "(const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *)", "", "Argument[*7]", "ReturnValue", "taint", "df-generated"] - ["", "", True, "app_http_get_asn1", "(const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,long,const char *,const ASN1_ITEM *)", "", "Argument[*7]", "ReturnValue[*]", "taint", "df-generated"] - ["", "", True, "app_http_post_asn1", "(const char *,const char *,const char *,const char *,const char *,SSL_CTX *,const stack_st_CONF_VALUE *,const char *,ASN1_VALUE *,const ASN1_ITEM *,const char *,long,const ASN1_ITEM *)", "", "Argument[*12]", "ReturnValue", "taint", "df-generated"] @@ -8959,7 +8927,6 @@ extensions: - ["", "", True, "b2i_RSA_PVK_bio_ex", "(BIO *,pem_password_cb *,void *,OSSL_LIB_CTX *,const char *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] - ["", "", True, "bio_dump_callback", "(BIO *,int,const char *,size_t,int,long,int,size_t *)", "", "Argument[6]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "bio_dump_callback", "(BIO *,int,const char *,size_t,int,long,int,size_t *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] - - ["", "", True, "bio_msg_copy", "(BIO_MSG *,BIO_MSG *)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] - ["", "", True, "bn_compute_wNAF", "(const BIGNUM *,int,size_t *)", "", "Argument[*0].Field[**d]", "ReturnValue[*]", "taint", "dfc-generated"] - ["", "", True, "bn_compute_wNAF", "(const BIGNUM *,int,size_t *)", "", "Argument[*0].Field[*d]", "ReturnValue[*]", "taint", "dfc-generated"] - ["", "", True, "bn_compute_wNAF", "(const BIGNUM *,int,size_t *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] @@ -9094,10 +9061,6 @@ extensions: - ["", "", True, "ca_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "ca_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "calculate_columns", "(FUNCTION *,DISPLAY_COLUMNS *)", "", "Argument[*1].Field[*width]", "Argument[*1].Field[*columns]", "taint", "dfc-generated"] - - ["", "", True, "check_certbag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] - - ["", "", True, "check_certbag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *)", "", "Argument[2]", "Argument[1]", "taint", "dfc-generated"] - - ["", "", True, "check_keybag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *)", "", "Argument[*1]", "Argument[1]", "taint", "dfc-generated"] - - ["", "", True, "check_keybag", "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *)", "", "Argument[2]", "Argument[1]", "taint", "dfc-generated"] - ["", "", True, "chopup_args", "(ARGS *,char *)", "", "Argument[*1]", "Argument[*0].Field[***argv]", "value", "dfc-generated"] - ["", "", True, "chopup_args", "(ARGS *,char *)", "", "Argument[1]", "Argument[*0].Field[***argv]", "value", "dfc-generated"] - ["", "", True, "chopup_args", "(ARGS *,char *)", "", "Argument[1]", "Argument[*0].Field[**argv]", "value", "dfc-generated"] @@ -9131,26 +9094,6 @@ extensions: - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[1]", "Argument[*2]", "taint", "df-generated"] - ["", "", True, "conf_ssl_get_cmd", "(const SSL_CONF_CMD *,size_t,char **,char **)", "", "Argument[1]", "Argument[*3]", "taint", "df-generated"] - ["", "", True, "config_ctx", "(SSL_CONF_CTX *,stack_st_OPENSSL_STRING *,SSL_CTX *)", "", "Argument[2]", "Argument[*0].Field[*ctx]", "value", "dfc-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*0]", "Argument[*4]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*1]", "Argument[*5]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*2]", "Argument[*3]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*2]", "Argument[*6]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[*2]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[*4]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[*5]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[*6]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[4]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[5]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*3]", "Argument[6]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*4]", "Argument[*0]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*4]", "Argument[4]", "value", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*5]", "Argument[*1]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*5]", "Argument[5]", "value", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*6]", "Argument[*2]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[*6]", "Argument[6]", "value", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[4]", "Argument[*0]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[5]", "Argument[*1]", "taint", "df-generated"] - - ["", "", True, "configure_handshake_ctx_for_srp", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)", "", "Argument[6]", "Argument[*2]", "taint", "df-generated"] - ["", "", True, "construct_ca_names", "(SSL_CONNECTION *,const stack_st_X509_NAME *,WPACKET *)", "", "Argument[*1]", "Argument[*2]", "taint", "df-generated"] - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[**2]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[*2]", "Argument[**1]", "value", "dfc-generated"] @@ -9158,27 +9101,6 @@ extensions: - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[2]", "Argument[**1]", "taint", "dfc-generated"] - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] - ["", "", True, "construct_key_exchange_tbs", "(SSL_CONNECTION *,unsigned char **,const void *,size_t)", "", "Argument[3]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "create_a_psk", "(SSL *,size_t)", "", "Argument[1]", "ReturnValue[*].Field[*master_key_length]", "value", "dfc-generated"] - - ["", "", True, "create_bare_ssl_connection", "(SSL *,SSL *,int,int,int)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - - ["", "", True, "create_bare_ssl_connection", "(SSL *,SSL *,int,int,int)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_connection", "(SSL *,SSL *,int)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_connection", "(SSL *,SSL *,int)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[*1]", "Argument[**5].Field[**method]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[*2]", "Argument[**6].Field[**method]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[1]", "Argument[**5].Field[*method]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[2]", "Argument[**6].Field[*method]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] - - ["", "", True, "create_ssl_ctx_pair", "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] - - ["", "", True, "create_ssl_objects2", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] - - ["", "", True, "create_ssl_objects2", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] - - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[4]", "Argument[**2].Field[**bbio].Field[*next_bio]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[4]", "Argument[**2].Field[*wbio]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[4]", "Argument[**3].Field[*rbio]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[5]", "Argument[**2].Field[*rbio]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[5]", "Argument[**3].Field[**bbio].Field[*next_bio]", "value", "dfc-generated"] - - ["", "", True, "create_ssl_objects", "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)", "", "Argument[5]", "Argument[**3].Field[*wbio]", "value", "dfc-generated"] - ["", "", True, "crl2pkcs7_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "crl2pkcs7_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "crl_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] @@ -16999,14 +16921,8 @@ extensions: - ["", "", True, "do_X509_REQ_verify", "(X509_REQ *,EVP_PKEY *,stack_st_OPENSSL_STRING *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] - ["", "", True, "do_X509_verify", "(X509 *,EVP_PKEY *,stack_st_OPENSSL_STRING *)", "", "Argument[*2]", "Argument[*0]", "taint", "df-generated"] - ["", "", True, "do_dtls1_write", "(SSL_CONNECTION *,uint8_t,const unsigned char *,size_t,size_t *)", "", "Argument[3]", "Argument[*4]", "value", "dfc-generated"] - - ["", "", True, "do_handshake", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *)", "", "Argument[1]", "Argument[*0].Field[*client_hello_cb_arg]", "value", "dfc-generated"] - - ["", "", True, "do_handshake", "(SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *)", "", "Argument[1]", "Argument[*0].Field[*msg_callback_arg]", "value", "dfc-generated"] - ["", "", True, "do_ssl_shutdown", "(SSL *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - ["", "", True, "do_updatedb", "(CA_DB *,time_t *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "doit_biopair", "(SSL *,SSL *,long,clock_t *,clock_t *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "doit_biopair", "(SSL *,SSL *,long,clock_t *,clock_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - - ["", "", True, "doit_localhost", "(SSL *,SSL *,int,long,clock_t *,clock_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - - ["", "", True, "doit_localhost", "(SSL *,SSL *,int,long,clock_t *,clock_t *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] - ["", "", True, "dsa_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "dsa_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "dsaparam_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] @@ -17046,7 +16962,6 @@ extensions: - ["", "", True, "ecparam_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "enc_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "enc_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - - ["", "", True, "end_pkcs12_builder", "(PKCS12_BUILDER *)", "", "Argument[*0].Field[*success]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "engine_add_dynamic_id", "(ENGINE *,ENGINE_DYNAMIC_ID,int)", "", "Argument[*0]", "Argument[*0].Field[**prev_dyn].Field[**next_dyn]", "value", "dfc-generated"] - ["", "", True, "engine_add_dynamic_id", "(ENGINE *,ENGINE_DYNAMIC_ID,int)", "", "Argument[0]", "Argument[*0].Field[**prev_dyn].Field[*next_dyn]", "value", "dfc-generated"] - ["", "", True, "engine_add_dynamic_id", "(ENGINE *,ENGINE_DYNAMIC_ID,int)", "", "Argument[1]", "Argument[*0].Field[*dynamic_id]", "value", "dfc-generated"] @@ -17125,39 +17040,6 @@ extensions: - ["", "", True, "evp_rand_can_seed", "(EVP_RAND_CTX *)", "", "Argument[*0].Field[**meth].Field[*get_seed]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "evp_rand_get_number", "(const EVP_RAND *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "evp_signature_get_number", "(const EVP_SIGNATURE *)", "", "Argument[*0].Field[*name_id]", "ReturnValue", "value", "dfc-generated"] - - ["", "", True, "fake_cipher_start", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "fake_cipher_start", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "fake_pipeline_aead_get_ctx_params", "(void *,OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_aead_set_ctx_params", "(void *,const OSSL_PARAM[])", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_dinit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*numpipes]", "value", "dfc-generated"] - - ["", "", True, "fake_pipeline_dinit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[**oiv]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_dinit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[*iv]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_dinit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[*oiv]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_einit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[3]", "Argument[*0].Field[*numpipes]", "value", "dfc-generated"] - - ["", "", True, "fake_pipeline_einit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[**oiv]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_einit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[*iv]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_einit", "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])", "", "Argument[4]", "Argument[*0].Field[**cipher_ctxs].Field[*oiv]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_final", "(void *,size_t,unsigned char **,size_t *,const size_t *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_start", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "fake_pipeline_start", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[**2]", "Argument[*0].Field[**cipher_ctxs].Field[*final]", "value", "dfc-generated"] - - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[**5]", "Argument[*0].Field[**cipher_ctxs].Field[*buf]", "value", "dfc-generated"] - - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[*2]", "Argument[**2]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[*2]", "Argument[*0].Field[**cipher_ctxs].Field[*final]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[*5]", "Argument[*0].Field[**cipher_ctxs].Field[*buf]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[*6]", "Argument[*3]", "value", "df-generated"] - - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[2]", "Argument[**2]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[2]", "Argument[*0].Field[**cipher_ctxs].Field[*final]", "taint", "dfc-generated"] - - ["", "", True, "fake_pipeline_update", "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)", "", "Argument[5]", "Argument[*0].Field[**cipher_ctxs].Field[*buf]", "taint", "dfc-generated"] - - ["", "", True, "fake_rand_set_callback", "(EVP_RAND_CTX *,..(*)(..))", "", "Argument[1]", "Argument[*0].Field[**algctx].Field[*cb]", "value", "dfc-generated"] - - ["", "", True, "fake_rand_start", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "fake_rand_start", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "fake_rsa_start", "(OSSL_LIB_CTX *)", "", "Argument[*0]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "fake_rsa_start", "(OSSL_LIB_CTX *)", "", "Argument[0]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*0]", "Argument[**3].Field[**handle]", "value", "dfc-generated"] - - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[0]", "Argument[**3].Field[*handle]", "value", "dfc-generated"] - - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "filter_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - ["", "", True, "fipsinstall_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "fipsinstall_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "gendsa_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] @@ -18262,19 +18144,11 @@ extensions: - ["", "", True, "load_cert_certs", "(const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *)", "", "Argument[**1]", "Argument[*1]", "value", "df-generated"] - ["", "", True, "load_cert_certs", "(const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "load_cert_certs", "(const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] - - ["", "", True, "load_cert_pem", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue.Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "load_cert_pem", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "load_cert_pem", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue.Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "load_cert_pem", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - ["", "", True, "load_certs", "(const char *,int,stack_st_X509 **,const char *,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] - ["", "", True, "load_certs_multifile", "(char *,const char *,const char *,X509_VERIFY_PARAM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "load_certstore", "(char *,const char *,const char *,X509_VERIFY_PARAM *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "load_crls", "(const char *,stack_st_X509_CRL **,const char *,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "load_csr_autofmt", "(const char *,int,stack_st_OPENSSL_STRING *,const char *)", "", "Argument[*2]", "ReturnValue[*]", "taint", "df-generated"] - - ["", "", True, "load_csr_der", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue.Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "load_csr_der", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "load_csr_der", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue.Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "load_csr_der", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - ["", "", True, "load_excert", "(SSL_EXCERT **)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "load_index", "(const char *,DB_ATTR *)", "", "Argument[*0]", "ReturnValue[*].Field[**dbfname]", "value", "dfc-generated"] - ["", "", True, "load_index", "(const char *,DB_ATTR *)", "", "Argument[*1]", "ReturnValue[*].Field[*attributes]", "value", "dfc-generated"] @@ -18288,10 +18162,6 @@ extensions: - ["", "", True, "load_key_certs_crls", "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] - ["", "", True, "load_key_certs_crls", "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] - ["", "", True, "load_key_certs_crls", "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)", "", "Argument[9]", "Argument[*9]", "taint", "dfc-generated"] - - ["", "", True, "load_pkimsg", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue.Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "load_pkimsg", "(const char *,OSSL_LIB_CTX *)", "", "Argument[*1]", "ReturnValue[*].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "load_pkimsg", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue.Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "load_pkimsg", "(const char *,OSSL_LIB_CTX *)", "", "Argument[1]", "ReturnValue[*].Field[*libctx]", "value", "dfc-generated"] - ["", "", True, "lookup_sess_in_cache", "(SSL_CONNECTION *,const unsigned char *,size_t)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] - ["", "", True, "mac_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "mac_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] @@ -18302,15 +18172,12 @@ extensions: - ["", "", True, "make_uppercase", "(char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "md4_block_data_order", "(MD4_CTX *,const void *,size_t)", "", "Argument[*1]", "Argument[*0]", "taint", "df-generated"] - ["", "", True, "md4_block_data_order", "(MD4_CTX *,const void *,size_t)", "", "Argument[1]", "Argument[*0]", "taint", "df-generated"] - - ["", "", True, "mempacket_test_inject", "(BIO *,const char *,int,int,int)", "", "Argument[2]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[**0]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[**1]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[*0]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[*1]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "name_cmp", "(const char *const *,const char *const *)", "", "Argument[1]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "new_pkcs12_builder", "(const char *)", "", "Argument[*0]", "ReturnValue[*].Field[**filename]", "value", "dfc-generated"] - - ["", "", True, "new_pkcs12_builder", "(const char *)", "", "Argument[0]", "ReturnValue[*].Field[*filename]", "value", "dfc-generated"] - ["", "", True, "next_item", "(char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] - ["", "", True, "next_item", "(char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] - ["", "", True, "next_item", "(char *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -21231,9 +21098,6 @@ extensions: - ["", "", True, "ossl_x509at_add1_attr_by_txt", "(stack_st_X509_ATTRIBUTE **,const char *,int,const unsigned char *,int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "ossl_x509at_dup", "(const stack_st_X509_ATTRIBUTE *)", "", "Argument[*0]", "ReturnValue[*]", "taint", "df-generated"] - ["", "", True, "ossl_x509v3_cache_extensions", "(X509 *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] - - ["", "", True, "p_test_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[*0]", "Argument[**3].Field[**handle]", "value", "dfc-generated"] - - ["", "", True, "p_test_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[0]", "Argument[**3].Field[*handle]", "value", "dfc-generated"] - - ["", "", True, "p_test_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "parse_ca_names", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "parse_yesno", "(const char *,int)", "", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "passwd_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] @@ -21286,55 +21150,6 @@ extensions: - ["", "", True, "print_param_types", "(const char *,const OSSL_PARAM *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "print_verify_detail", "(SSL *,BIO *)", "", "Argument[*0].Field[**tls].Field[**param]", "Argument[*0].Field[**param]", "value", "dfc-generated"] - ["", "", True, "process_responder", "(OCSP_REQUEST *,const char *,const char *,const char *,const char *,const char *,int,stack_st_CONF_VALUE *,int)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] - - ["", "", True, "pulldown_test_framework", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["", "", True, "qtest_create_injector", "(QUIC_TSERVER *)", "", "Argument[*0]", "ReturnValue[*].Field[**qtserv]", "value", "dfc-generated"] - - ["", "", True, "qtest_create_injector", "(QUIC_TSERVER *)", "", "Argument[0]", "ReturnValue[*].Field[*qtserv]", "value", "dfc-generated"] - - ["", "", True, "qtest_create_quic_connection", "(QUIC_TSERVER *,SSL *)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - - ["", "", True, "qtest_create_quic_connection_ex", "(QUIC_TSERVER *,SSL *,int)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[**8].Field[*noiseargs]", "Argument[**6].Field[**ch].Field[**msg_callback_arg]", "value", "dfc-generated"] - - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[*6]", "Argument[**8].Field[*qtserv]", "value", "dfc-generated"] - - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[0]", "Argument[**6].Field[**ctx].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[0]", "Argument[**6].Field[**engine].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[0]", "Argument[**6].Field[*args].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[5]", "Argument[**8].Field[*noiseargs].Field[*flags]", "value", "dfc-generated"] - - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[6]", "Argument[**8].Field[*qtserv]", "taint", "dfc-generated"] - - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[6]", "Argument[*6]", "taint", "dfc-generated"] - - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] - - ["", "", True, "qtest_create_quic_objects", "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] - - ["", "", True, "qtest_fault_delete_extension", "(QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *)", "", "Argument[*0].Field[*handbuflen]", "Argument[*0].Field[**handbuf]", "taint", "dfc-generated"] - - ["", "", True, "qtest_fault_delete_extension", "(QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *)", "", "Argument[*3]", "Argument[*2]", "taint", "dfc-generated"] - - ["", "", True, "qtest_fault_delete_extension", "(QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *)", "", "Argument[3]", "Argument[*2]", "taint", "dfc-generated"] - - ["", "", True, "qtest_fault_delete_extension", "(QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "qtest_fault_prepend_frame", "(QTEST_FAULT *,const unsigned char *,size_t)", "", "Argument[*0].Field[*pplainio].Field[*buf_len]", "Argument[*0].Field[*pplainhdr].Field[*len]", "taint", "dfc-generated"] - - ["", "", True, "qtest_fault_prepend_frame", "(QTEST_FAULT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*pplainhdr].Field[*len]", "taint", "dfc-generated"] - - ["", "", True, "qtest_fault_prepend_frame", "(QTEST_FAULT *,const unsigned char *,size_t)", "", "Argument[2]", "Argument[*0].Field[*pplainio].Field[*buf_len]", "taint", "dfc-generated"] - - ["", "", True, "qtest_fault_resize_datagram", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[*msg].Field[*data_len]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_resize_handshake", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[*handbuflen]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_resize_message", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[**handbuf]", "taint", "dfc-generated"] - - ["", "", True, "qtest_fault_resize_message", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[*handbuflen]", "taint", "dfc-generated"] - - ["", "", True, "qtest_fault_resize_plain_packet", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[*pplainhdr].Field[*len]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_resize_plain_packet", "(QTEST_FAULT *,size_t)", "", "Argument[1]", "Argument[*0].Field[*pplainio].Field[*buf_len]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_datagram_listener", "(QTEST_FAULT *,qtest_fault_on_datagram_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***datagramcbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_datagram_listener", "(QTEST_FAULT *,qtest_fault_on_datagram_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**datagramcbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_datagram_listener", "(QTEST_FAULT *,qtest_fault_on_datagram_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*datagramcb]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_datagram_listener", "(QTEST_FAULT *,qtest_fault_on_datagram_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*datagramcbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_hand_enc_ext_listener", "(QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***encextcbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_hand_enc_ext_listener", "(QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**encextcbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_hand_enc_ext_listener", "(QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*encextcb]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_hand_enc_ext_listener", "(QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*encextcbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_handshake_listener", "(QTEST_FAULT *,qtest_fault_on_handshake_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***handshakecbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_handshake_listener", "(QTEST_FAULT *,qtest_fault_on_handshake_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**handshakecbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_handshake_listener", "(QTEST_FAULT *,qtest_fault_on_handshake_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*handshakecb]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_handshake_listener", "(QTEST_FAULT *,qtest_fault_on_handshake_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*handshakecbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_packet_cipher_listener", "(QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***pciphercbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_packet_cipher_listener", "(QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**pciphercbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_packet_cipher_listener", "(QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*pciphercb]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_packet_cipher_listener", "(QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*pciphercbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_packet_plain_listener", "(QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *)", "", "Argument[**2]", "Argument[*0].Field[***pplaincbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_packet_plain_listener", "(QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *)", "", "Argument[*2]", "Argument[*0].Field[**pplaincbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_packet_plain_listener", "(QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *)", "", "Argument[1]", "Argument[*0].Field[*pplaincb]", "value", "dfc-generated"] - - ["", "", True, "qtest_fault_set_packet_plain_listener", "(QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *)", "", "Argument[2]", "Argument[*0].Field[*pplaincbarg]", "value", "dfc-generated"] - - ["", "", True, "qtest_shutdown", "(QUIC_TSERVER *,SSL *)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - ["", "", True, "rand_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "rand_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "rand_serial", "(BIGNUM *,ASN1_INTEGER *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] @@ -21360,10 +21175,6 @@ extensions: - ["", "", True, "s_time_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "s_time_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "save_serial", "(const char *,const char *,const BIGNUM *,ASN1_INTEGER **)", "", "Argument[*2]", "Argument[**3]", "taint", "df-generated"] - - ["", "", True, "sd_load", "(const char *,SD *,int)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "sd_sym", "(SD,const char *,SD_SYM *)", "", "Argument[*2]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "sd_sym", "(SD,const char *,SD_SYM *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] - - ["", "", True, "sd_sym", "(SD,const char *,SD_SYM *)", "", "Argument[2]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "sess_id_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "sess_id_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "set_cert_ex", "(unsigned long *,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] @@ -21376,8 +21187,6 @@ extensions: - ["", "", True, "set_up_srp_arg", "(SSL_CTX *,SRP_ARG *,int,int,int)", "", "Argument[4]", "Argument[*1].Field[*debug]", "value", "dfc-generated"] - ["", "", True, "set_up_srp_verifier_file", "(SSL_CTX *,srpsrvparm *,char *,char *)", "", "Argument[*2]", "Argument[*1].Field[**vb].Field[**seed_key]", "value", "dfc-generated"] - ["", "", True, "set_up_srp_verifier_file", "(SSL_CTX *,srpsrvparm *,char *,char *)", "", "Argument[2]", "Argument[*1].Field[**vb].Field[**seed_key]", "taint", "dfc-generated"] - - ["", "", True, "shutdown_ssl_connection", "(SSL *,SSL *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - - ["", "", True, "shutdown_ssl_connection", "(SSL *,SSL *)", "", "Argument[1]", "Argument[*1].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - ["", "", True, "skeyutl_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "skeyutl_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "smime_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] @@ -21482,10 +21291,6 @@ extensions: - ["", "", True, "ssl_create_cipher_list", "(SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] - ["", "", True, "ssl_create_cipher_list", "(SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - ["", "", True, "ssl_create_cipher_list", "(SSL_CTX *,stack_st_SSL_CIPHER *,stack_st_SSL_CIPHER **,stack_st_SSL_CIPHER **,const char *,CERT *)", "", "Argument[4]", "Argument[*5].Field[*sec_level]", "taint", "dfc-generated"] - - ["", "", True, "ssl_ctx_add_large_cert_chain", "(OSSL_LIB_CTX *,SSL_CTX *,const char *)", "", "Argument[*0]", "Argument[*1].Field[**msg_callback_arg].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "ssl_ctx_add_large_cert_chain", "(OSSL_LIB_CTX *,SSL_CTX *,const char *)", "", "Argument[*0]", "Argument[*1].Field[*msg_callback_arg].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "ssl_ctx_add_large_cert_chain", "(OSSL_LIB_CTX *,SSL_CTX *,const char *)", "", "Argument[0]", "Argument[*1].Field[**msg_callback_arg].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "ssl_ctx_add_large_cert_chain", "(OSSL_LIB_CTX *,SSL_CTX *,const char *)", "", "Argument[0]", "Argument[*1].Field[*msg_callback_arg].Field[*libctx]", "value", "dfc-generated"] - ["", "", True, "ssl_ctx_set_excert", "(SSL_CTX *,SSL_EXCERT *)", "", "Argument[*1]", "Argument[*0].Field[**cert].Field[**cert_cb_arg]", "value", "dfc-generated"] - ["", "", True, "ssl_ctx_set_excert", "(SSL_CTX *,SSL_EXCERT *)", "", "Argument[1]", "Argument[*0].Field[**cert].Field[*cert_cb_arg]", "value", "dfc-generated"] - ["", "", True, "ssl_dh_to_pkey", "(DH *)", "", "Argument[0]", "ReturnValue[*].Field[*pkey].Union[*legacy_pkey_st]", "value", "dfc-generated"] @@ -21541,63 +21346,10 @@ extensions: - ["", "", True, "ssl_write_internal", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[0]", "Argument[*0].Field[**waitctx].Field[*callback_arg]", "value", "dfc-generated"] - ["", "", True, "ssl_write_internal", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[2]", "Argument[*4]", "taint", "dfc-generated"] - ["", "", True, "ssl_write_internal", "(SSL *,const void *,size_t,uint64_t,size_t *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_eq", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_eq", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_eq_one", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_eq_word", "(const char *,int,const char *,const char *,const BIGNUM *,unsigned long)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_eq_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_even", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_ge", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_ge", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_ge_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_gt", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_gt", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_gt_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_le", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_le", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_le_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_lt", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_lt", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_lt_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_ne", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[4]", "Argument[*4]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_ne", "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[5]", "Argument[*5]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_ne_zero", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "test_BN_odd", "(const char *,int,const char *,const BIGNUM *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[**0]", "Argument[**2].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[*0]", "Argument[**2].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[0]", "Argument[**2].Field[*libctx]", "taint", "dfc-generated"] - - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] - - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[2]", "Argument[*2]", "taint", "dfc-generated"] - - ["", "", True, "test_arg_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)", "", "Argument[3]", "Argument[**2].Field[**name]", "taint", "dfc-generated"] - - ["", "", True, "test_fail_bignum_message", "(const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] - - ["", "", True, "test_fail_bignum_message", "(const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *)", "", "Argument[8]", "Argument[*8]", "taint", "dfc-generated"] - - ["", "", True, "test_fail_bignum_mono_message", "(const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *)", "", "Argument[7]", "Argument[*7]", "taint", "dfc-generated"] - - ["", "", True, "test_get_argument", "(size_t)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[**0]", "Argument[**3].Field[**libctx]", "value", "dfc-generated"] - - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[*0]", "Argument[**3].Field[*libctx]", "value", "dfc-generated"] - - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[*4]", "Argument[**3].Field[**name]", "value", "dfc-generated"] - - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[0]", "Argument[**3].Field[*libctx]", "taint", "dfc-generated"] - - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[0]", "Argument[*0]", "taint", "dfc-generated"] - - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[3]", "Argument[*3]", "taint", "dfc-generated"] - - ["", "", True, "test_get_libctx", "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)", "", "Argument[4]", "Argument[**3].Field[**name]", "taint", "dfc-generated"] - - ["", "", True, "test_mk_file_path", "(const char *,const char *)", "", "Argument[*0]", "ReturnValue[*]", "value", "dfc-generated"] - - ["", "", True, "test_mk_file_path", "(const char *,const char *)", "", "Argument[*1]", "ReturnValue[*]", "value", "dfc-generated"] - - ["", "", True, "test_mk_file_path", "(const char *,const char *)", "", "Argument[0]", "ReturnValue[*]", "taint", "dfc-generated"] - - ["", "", True, "test_mk_file_path", "(const char *,const char *)", "", "Argument[1]", "ReturnValue[*]", "taint", "dfc-generated"] - - ["", "", True, "test_output_bignum", "(const char *,const BIGNUM *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "test_start_file", "(STANZA *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**test_file]", "value", "dfc-generated"] - - ["", "", True, "test_start_file", "(STANZA *,const char *)", "", "Argument[1]", "Argument[*0].Field[*test_file]", "value", "dfc-generated"] - - ["", "", True, "test_vprintf_stderr", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "test_vprintf_stdout", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "test_vprintf_taperr", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "test_vprintf_tapout", "(const char *,va_list)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "tls12_get_psigalgs", "(SSL_CONNECTION *,int,const uint16_t **)", "", "Argument[*0]", "Argument[**2]", "taint", "df-generated"] - ["", "", True, "tls12_get_psigalgs", "(SSL_CONNECTION *,int,const uint16_t **)", "", "Argument[*0]", "Argument[*2]", "taint", "df-generated"] - ["", "", True, "tls12_get_psigalgs", "(SSL_CONNECTION *,int,const uint16_t **)", "", "Argument[*0]", "ReturnValue", "taint", "df-generated"] - ["", "", True, "tls13_alert_code", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["", "", True, "tls1_alert_code", "(int)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "tls1_allocate_write_buffers", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *)", "", "Argument[*3]", "Argument[*0].Field[*numwpipes]", "taint", "dfc-generated"] - ["", "", True, "tls1_allocate_write_buffers", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *)", "", "Argument[2]", "Argument[*0].Field[*numwpipes]", "taint", "dfc-generated"] - ["", "", True, "tls1_allocate_write_buffers", "(OSSL_RECORD_LAYER *,OSSL_RECORD_TEMPLATE *,size_t,size_t *)", "", "Argument[3]", "Argument[*0].Field[*numwpipes]", "taint", "dfc-generated"] @@ -21777,7 +21529,6 @@ extensions: - ["", "", True, "tls_process_server_certificate", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "tls_process_server_hello", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "tls_process_server_rpk", "(SSL_CONNECTION *,PACKET *)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - - ["", "", True, "tls_provider_init", "(const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **)", "", "Argument[1]", "Argument[*1]", "taint", "dfc-generated"] - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[**1]", "taint", "df-generated"] - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[**4]", "taint", "df-generated"] - ["", "", True, "tls_read_record", "(OSSL_RECORD_LAYER *,void **,int *,uint8_t *,const unsigned char **,size_t *,uint16_t *,unsigned char *)", "", "Argument[*0]", "Argument[*1]", "taint", "df-generated"] @@ -21811,13 +21562,11 @@ extensions: - ["", "", True, "v2i_GENERAL_NAME_ex", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int)", "", "Argument[*0]", "ReturnValue[*]", "value", "df-generated"] - ["", "", True, "v2i_GENERAL_NAME_ex", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int)", "", "Argument[0]", "Argument[*0]", "value", "df-generated"] - ["", "", True, "v2i_GENERAL_NAME_ex", "(GENERAL_NAME *,const X509V3_EXT_METHOD *,X509V3_CTX *,CONF_VALUE *,int)", "", "Argument[0]", "ReturnValue", "value", "df-generated"] - - ["", "", True, "valid_asn1_encoding", "(const OSSL_CMP_MSG *)", "", "Argument[*0]", "Argument[0]", "value", "df-generated"] - ["", "", True, "verify_callback", "(int,X509_STORE_CTX *)", "", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["", "", True, "verify_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "verify_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - ["", "", True, "version_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] - ["", "", True, "version_main", "(int,char **,char *[])", "", "Argument[*1]", "Argument[**1]", "value", "dfc-generated"] - - ["", "", True, "wait_until_sock_readable", "(int)", "", "Argument[0]", "ReturnValue", "taint", "dfc-generated"] - ["", "", True, "x509_ctrl_string", "(X509 *,const char *)", "", "Argument[*1]", "Argument[*0].Field[**distinguishing_id].Field[**data]", "taint", "dfc-generated"] - ["", "", True, "x509_ctrl_string", "(X509 *,const char *)", "", "Argument[1]", "Argument[*0].Field[**distinguishing_id].Field[**data]", "taint", "dfc-generated"] - ["", "", True, "x509_main", "(int,char **,char *[])", "", "Argument[**1]", "Argument[*1]", "value", "dfc-generated"] From 9d5a465e9df2fdec27f0e7284cafc5ffaed93faa Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 16 May 2025 15:11:40 +0200 Subject: [PATCH 441/656] C++: Remove unused options file --- cpp/ql/test/library-tests/vector_types/options | 1 - 1 file changed, 1 deletion(-) delete mode 100644 cpp/ql/test/library-tests/vector_types/options diff --git a/cpp/ql/test/library-tests/vector_types/options b/cpp/ql/test/library-tests/vector_types/options deleted file mode 100644 index 5d8122c6f2f..00000000000 --- a/cpp/ql/test/library-tests/vector_types/options +++ /dev/null @@ -1 +0,0 @@ -semmle-extractor-options: --clang --edg --clang_builtin_functions --edg --clang_vector_types --gnu_version 40600 From 55f8cb793552694dc3157964b71dadec3008e141 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 16 May 2025 15:12:06 +0200 Subject: [PATCH 442/656] C++: Drop `--clang_vector_types` option The types are already enabled through the specfied gcc version. --- cpp/ql/test/library-tests/structs/compatible_c/c1_gnu.c | 2 +- cpp/ql/test/library-tests/structs/compatible_c/c2_gnu.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/test/library-tests/structs/compatible_c/c1_gnu.c b/cpp/ql/test/library-tests/structs/compatible_c/c1_gnu.c index 4589aeaac42..00d1acb9496 100644 --- a/cpp/ql/test/library-tests/structs/compatible_c/c1_gnu.c +++ b/cpp/ql/test/library-tests/structs/compatible_c/c1_gnu.c @@ -7,4 +7,4 @@ struct Kiwi { struct Lemon { unsigned int __attribute__ ((vector_size (16))) lemon_x; }; -// semmle-extractor-options: -std=c99 --clang --edg --clang_vector_types --gnu_version 40700 +// semmle-extractor-options: -std=c99 --clang --gnu_version 40700 diff --git a/cpp/ql/test/library-tests/structs/compatible_c/c2_gnu.c b/cpp/ql/test/library-tests/structs/compatible_c/c2_gnu.c index 927533ab9a8..a0923346218 100644 --- a/cpp/ql/test/library-tests/structs/compatible_c/c2_gnu.c +++ b/cpp/ql/test/library-tests/structs/compatible_c/c2_gnu.c @@ -7,4 +7,4 @@ struct Kiwi { struct Lemon { signed int __attribute__ ((vector_size (16))) lemon_x; }; -// semmle-extractor-options: -std=c99 --clang --edg --clang_vector_types --gnu_version 40700 +// semmle-extractor-options: -std=c99 --clang --gnu_version 40700 From f82f1c84f3a20cdf6ae11e644feb2e485f999197 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 16 May 2025 14:14:46 +0100 Subject: [PATCH 443/656] C++: Accept test changes. --- .../dataflow/external-models/flow.expected | 24 +- .../external-models/validatemodels.expected | 51 -- .../taint-tests/test_mad-signatures.expected | 596 ------------------ 3 files changed, 12 insertions(+), 659 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index e071294adfe..2eb0844862d 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -10,31 +10,31 @@ edges | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:103:29:103:39 | *send_buffer | provenance | Sink:MaD:6 | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | provenance | | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | MaD:10 | -| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:23740 | -| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:23741 | -| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:23742 | +| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:23489 | +| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:23490 | +| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:23491 | | test.cpp:7:47:7:52 | value2 | test.cpp:7:64:7:69 | value2 | provenance | | | test.cpp:7:64:7:69 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | provenance | | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:23738 | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:23739 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:23487 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:23488 | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:17:24:17:24 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:21:27:21:27 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:25:35:25:35 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:32:41:32:41 | x | provenance | | | test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | | -| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:23739 | +| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:23488 | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | provenance | | -| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:23740 | +| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:23489 | | test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | | -| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:23739 | +| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:23488 | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | provenance | | -| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:23741 | +| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:23490 | | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | | -| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:23739 | +| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:23488 | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | provenance | | -| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:23742 | +| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:23491 | | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | -| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:23739 | +| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:23488 | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | provenance | | | test.cpp:32:41:32:41 | x | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | nodes diff --git a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected index 440183ae3a9..ff5ad36e15c 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected @@ -307,7 +307,6 @@ | Dubious signature "(BIO *,const char *,const OCSP_REQUEST *,int)" in summary model. | | Dubious signature "(BIO *,const char *,const char *,const char *,const char *,int,BIO *,const char *)" in summary model. | | Dubious signature "(BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int)" in summary model. | -| Dubious signature "(BIO *,const char *,int,int,int)" in summary model. | | Dubious signature "(BIO *,const char *,va_list)" in summary model. | | Dubious signature "(BIO *,const stack_st_X509_EXTENSION *)" in summary model. | | Dubious signature "(BIO *,const unsigned char *,long,int)" in summary model. | @@ -333,7 +332,6 @@ | Dubious signature "(BIO_ADDR *,const sockaddr *)" in summary model. | | Dubious signature "(BIO_ADDR *,int,const void *,size_t,unsigned short)" in summary model. | | Dubious signature "(BIO_METHOD *,..(*)(..))" in summary model. | -| Dubious signature "(BIO_MSG *,BIO_MSG *)" in summary model. | | Dubious signature "(BLAKE2B_CTX *,const BLAKE2B_PARAM *)" in summary model. | | Dubious signature "(BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *)" in summary model. | | Dubious signature "(BLAKE2B_CTX *,const void *,size_t)" in summary model. | @@ -720,7 +718,6 @@ | Dubious signature "(EVP_PKEY_METHOD *,const EVP_PKEY_METHOD *)" in summary model. | | Dubious signature "(EVP_RAND *,EVP_RAND_CTX *)" in summary model. | | Dubious signature "(EVP_RAND_CTX *)" in summary model. | -| Dubious signature "(EVP_RAND_CTX *,..(*)(..))" in summary model. | | Dubious signature "(EVP_RAND_CTX *,unsigned char *,size_t)" in summary model. | | Dubious signature "(EVP_RAND_CTX *,unsigned char *,size_t,unsigned int,int,const unsigned char *,size_t)" in summary model. | | Dubious signature "(EVP_SKEY *,OSSL_LIB_CTX *,OSSL_PROVIDER *,const char *)" in summary model. | @@ -1068,7 +1065,6 @@ | Dubious signature "(OSSL_AUTHORITY_ATTRIBUTE_ID_SYNTAX **,const unsigned char **,long)" in summary model. | | Dubious signature "(OSSL_BASIC_ATTR_CONSTRAINTS *)" in summary model. | | Dubious signature "(OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long)" in summary model. | -| Dubious signature "(OSSL_CALLBACK *,void *)" in summary model. | | Dubious signature "(OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *)" in summary model. | | Dubious signature "(OSSL_CMP_ATAVS *)" in summary model. | | Dubious signature "(OSSL_CMP_ATAVS **,const OSSL_CMP_ATAV *)" in summary model. | @@ -1298,8 +1294,6 @@ | Dubious signature "(OSSL_JSON_ENC *,int64_t)" in summary model. | | Dubious signature "(OSSL_JSON_ENC *,uint64_t)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *)" in summary model. | -| Dubious signature "(OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *)" in summary model. | -| Dubious signature "(OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX **,const char **,const X509_PUBKEY *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,..(*)(..),void *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,CONF_METHOD *)" in summary model. | @@ -1308,13 +1302,10 @@ | Dubious signature "(OSSL_LIB_CTX *,EVP_PKEY *,const char *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,FFC_PARAMS *,int,int,size_t,size_t,int *,BN_GENCB *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *)" in summary model. | -| Dubious signature "(OSSL_LIB_CTX *,OSSL_CALLBACK **,void **)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,OSSL_CORE_BIO *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,OSSL_INDICATOR_CALLBACK **)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,OSSL_PROPERTY_IDX)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,OSSL_PROVIDER_INFO *)" in summary model. | -| Dubious signature "(OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **)" in summary model. | -| Dubious signature "(OSSL_LIB_CTX *,SSL_CTX *,const char *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,const BIO_METHOD *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *,BN_GENCB *)" in summary model. | @@ -1322,7 +1313,6 @@ | Dubious signature "(OSSL_LIB_CTX *,const OSSL_DISPATCH *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,const OSSL_PROPERTY_DEFINITION *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t)" in summary model. | -| Dubious signature "(OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,const char *,ENGINE *)" in summary model. | | Dubious signature "(OSSL_LIB_CTX *,const char *,OSSL_PARAM *)" in summary model. | @@ -1462,8 +1452,6 @@ | Dubious signature "(OSSL_ROLE_SPEC_CERT_ID **,const unsigned char **,long)" in summary model. | | Dubious signature "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX *)" in summary model. | | Dubious signature "(OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long)" in summary model. | -| Dubious signature "(OSSL_SELF_TEST *,const char *,const char *)" in summary model. | -| Dubious signature "(OSSL_SELF_TEST *,unsigned char *)" in summary model. | | Dubious signature "(OSSL_STATM *,OSSL_RTT_INFO *)" in summary model. | | Dubious signature "(OSSL_STATM *,OSSL_TIME,OSSL_TIME)" in summary model. | | Dubious signature "(OSSL_STORE_CTX *)" in summary model. | @@ -1590,10 +1578,6 @@ | Dubious signature "(PKCS12 *,stack_st_PKCS7 *)" in summary model. | | Dubious signature "(PKCS12_BAGS *)" in summary model. | | Dubious signature "(PKCS12_BAGS **,const unsigned char **,long)" in summary model. | -| Dubious signature "(PKCS12_BUILDER *)" in summary model. | -| Dubious signature "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *)" in summary model. | -| Dubious signature "(PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *)" in summary model. | -| Dubious signature "(PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *)" in summary model. | | Dubious signature "(PKCS12_MAC_DATA *)" in summary model. | | Dubious signature "(PKCS12_MAC_DATA **,const unsigned char **,long)" in summary model. | | Dubious signature "(PKCS12_SAFEBAG *)" in summary model. | @@ -1653,14 +1637,6 @@ | Dubious signature "(QLOG *,uint32_t)" in summary model. | | Dubious signature "(QLOG *,uint32_t,const char *,const char *,const char *)" in summary model. | | Dubious signature "(QLOG *,uint32_t,int)" in summary model. | -| Dubious signature "(QTEST_FAULT *,const unsigned char *,size_t)" in summary model. | -| Dubious signature "(QTEST_FAULT *,qtest_fault_on_datagram_cb,void *)" in summary model. | -| Dubious signature "(QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *)" in summary model. | -| Dubious signature "(QTEST_FAULT *,qtest_fault_on_handshake_cb,void *)" in summary model. | -| Dubious signature "(QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *)" in summary model. | -| Dubious signature "(QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *)" in summary model. | -| Dubious signature "(QTEST_FAULT *,size_t)" in summary model. | -| Dubious signature "(QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *)" in summary model. | | Dubious signature "(QUIC_CFQ *,QUIC_CFQ_ITEM *)" in summary model. | | Dubious signature "(QUIC_CFQ *,QUIC_CFQ_ITEM *,uint32_t)" in summary model. | | Dubious signature "(QUIC_CHANNEL *)" in summary model. | @@ -1755,8 +1731,6 @@ | Dubious signature "(QUIC_TLS *,uint64_t *,const char **,ERR_STATE **)" in summary model. | | Dubious signature "(QUIC_TSERVER *)" in summary model. | | Dubious signature "(QUIC_TSERVER *,..(*)(..),void *)" in summary model. | -| Dubious signature "(QUIC_TSERVER *,SSL *)" in summary model. | -| Dubious signature "(QUIC_TSERVER *,SSL *,int)" in summary model. | | Dubious signature "(QUIC_TSERVER *,SSL_psk_find_session_cb_func)" in summary model. | | Dubious signature "(QUIC_TSERVER *,const QUIC_CONN_ID *)" in summary model. | | Dubious signature "(QUIC_TSERVER *,int,uint64_t *)" in summary model. | @@ -1831,7 +1805,6 @@ | Dubious signature "(SCT_CTX *,X509 *,X509 *)" in summary model. | | Dubious signature "(SCT_CTX *,X509_PUBKEY *)" in summary model. | | Dubious signature "(SCT_CTX *,uint64_t)" in summary model. | -| Dubious signature "(SD,const char *,SD_SYM *)" in summary model. | | Dubious signature "(SFRAME_LIST *)" in summary model. | | Dubious signature "(SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int)" in summary model. | | Dubious signature "(SFRAME_LIST *,UINT_RANGE *,const unsigned char **,int *)" in summary model. | @@ -1873,11 +1846,6 @@ | Dubious signature "(SSL *,DTLS_timer_cb)" in summary model. | | Dubious signature "(SSL *,EVP_PKEY *)" in summary model. | | Dubious signature "(SSL *,GEN_SESSION_CB)" in summary model. | -| Dubious signature "(SSL *,SSL *)" in summary model. | -| Dubious signature "(SSL *,SSL *,int)" in summary model. | -| Dubious signature "(SSL *,SSL *,int,int,int)" in summary model. | -| Dubious signature "(SSL *,SSL *,int,long,clock_t *,clock_t *)" in summary model. | -| Dubious signature "(SSL *,SSL *,long,clock_t *,clock_t *)" in summary model. | | Dubious signature "(SSL *,SSL_CTX *)" in summary model. | | Dubious signature "(SSL *,SSL_CTX *,const SSL_METHOD *,int)" in summary model. | | Dubious signature "(SSL *,SSL_SESSION *)" in summary model. | @@ -2001,10 +1969,6 @@ | Dubious signature "(SSL_CTX *,GEN_SESSION_CB)" in summary model. | | Dubious signature "(SSL_CTX *,SRP_ARG *,int,int,int)" in summary model. | | Dubious signature "(SSL_CTX *,SSL *,const SSL_METHOD *)" in summary model. | -| Dubious signature "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *)" in summary model. | -| Dubious signature "(SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int)" in summary model. | -| Dubious signature "(SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *)" in summary model. | -| Dubious signature "(SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *)" in summary model. | | Dubious signature "(SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *)" in summary model. | | Dubious signature "(SSL_CTX *,SSL_CTX_generate_session_ticket_fn,SSL_CTX_decrypt_session_ticket_fn,void *)" in summary model. | | Dubious signature "(SSL_CTX *,SSL_CTX_keylog_cb_func)" in summary model. | @@ -2074,7 +2038,6 @@ | Dubious signature "(SSL_SESSION *,time_t)" in summary model. | | Dubious signature "(SSL_SESSION *,uint32_t)" in summary model. | | Dubious signature "(SSL_SESSION *,void **,size_t *)" in summary model. | -| Dubious signature "(STANZA *,const char *)" in summary model. | | Dubious signature "(SXNET *)" in summary model. | | Dubious signature "(SXNET **,ASN1_INTEGER *,const char *,int)" in summary model. | | Dubious signature "(SXNET **,const char *,const char *,int)" in summary model. | @@ -2557,7 +2520,6 @@ | Dubious signature "(const COMP_CTX *)" in summary model. | | Dubious signature "(const COMP_METHOD *)" in summary model. | | Dubious signature "(const CONF *)" in summary model. | -| Dubious signature "(const CONF *,const char *,OSSL_LIB_CTX *)" in summary model. | | Dubious signature "(const CONF_IMODULE *)" in summary model. | | Dubious signature "(const CRL_DIST_POINTS *,unsigned char **)" in summary model. | | Dubious signature "(const CRYPTO_EX_DATA *)" in summary model. | @@ -3216,10 +3178,8 @@ | Dubious signature "(const char *,EVP_CIPHER **)" in summary model. | | Dubious signature "(const char *,EVP_MD **)" in summary model. | | Dubious signature "(const char *,OSSL_CMP_severity *,char **,char **,int *)" in summary model. | -| Dubious signature "(const char *,OSSL_LIB_CTX *)" in summary model. | | Dubious signature "(const char *,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *)" in summary model. | -| Dubious signature "(const char *,SD *,int)" in summary model. | | Dubious signature "(const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *)" in summary model. | | Dubious signature "(const char *,char *)" in summary model. | | Dubious signature "(const char *,char **,char **,BIO_hostserv_priorities)" in summary model. | @@ -3228,7 +3188,6 @@ | Dubious signature "(const char *,char **,size_t)" in summary model. | | Dubious signature "(const char *,char *,size_t)" in summary model. | | Dubious signature "(const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **)" in summary model. | -| Dubious signature "(const char *,const BIGNUM *)" in summary model. | | Dubious signature "(const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *)" in summary model. | | Dubious signature "(const char *,const OPT_PAIR *,int *)" in summary model. | | Dubious signature "(const char *,const OSSL_PARAM *,int)" in summary model. | @@ -3251,8 +3210,6 @@ | Dubious signature "(const char *,const char *,const char *,const char *,int,BIO *,BIO *,OSSL_HTTP_bio_cb_t,void *,int,int)" in summary model. | | Dubious signature "(const char *,const char *,const char *,int)" in summary model. | | Dubious signature "(const char *,const char *,int)" in summary model. | -| Dubious signature "(const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *)" in summary model. | -| Dubious signature "(const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *)" in summary model. | | Dubious signature "(const char *,const char *,int,int,int,int,BIO_ADDRINFO **)" in summary model. | | Dubious signature "(const char *,const char *,size_t)" in summary model. | | Dubious signature "(const char *,const char *,stack_st_CONF_VALUE **)" in summary model. | @@ -3268,9 +3225,6 @@ | Dubious signature "(const char *,int)" in summary model. | | Dubious signature "(const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *)" in summary model. | | Dubious signature "(const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *)" in summary model. | -| Dubious signature "(const char *,int,const char *,const BIGNUM *)" in summary model. | -| Dubious signature "(const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *)" in summary model. | -| Dubious signature "(const char *,int,const char *,const char *,const BIGNUM *,unsigned long)" in summary model. | | Dubious signature "(const char *,int,int,..(*)(..),void *)" in summary model. | | Dubious signature "(const char *,int,int,const char *,const char *,int,EVP_PKEY **,EVP_PKEY **,EVP_PKEY **,X509 **,stack_st_X509 **,X509_CRL **,stack_st_X509_CRL **)" in summary model. | | Dubious signature "(const char *,int,int,int)" in summary model. | @@ -3318,7 +3272,6 @@ | Dubious signature "(const sqlite3_value *)" in summary model. | | Dubious signature "(const stack_st_SCT *,unsigned char **)" in summary model. | | Dubious signature "(const stack_st_X509 *)" in summary model. | -| Dubious signature "(const stack_st_X509 *,const stack_st_X509 *)" in summary model. | | Dubious signature "(const stack_st_X509_ATTRIBUTE *)" in summary model. | | Dubious signature "(const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int)" in summary model. | | Dubious signature "(const stack_st_X509_ATTRIBUTE *,int)" in summary model. | @@ -3665,7 +3618,6 @@ | Dubious signature "(stack_st_X509 *,BIO *,const EVP_CIPHER *,int,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(stack_st_X509 *,BIO *,const EVP_CIPHER *,unsigned int,OSSL_LIB_CTX *,const char *)" in summary model. | | Dubious signature "(stack_st_X509 *,IPAddrBlocks *,int)" in summary model. | -| Dubious signature "(stack_st_X509 *,X509 *)" in summary model. | | Dubious signature "(stack_st_X509 *,X509 *,int)" in summary model. | | Dubious signature "(stack_st_X509 *,const X509_NAME *)" in summary model. | | Dubious signature "(stack_st_X509 *,const X509_NAME *,const ASN1_INTEGER *)" in summary model. | @@ -3798,7 +3750,6 @@ | Dubious signature "(void *,const OSSL_PARAM[])" in summary model. | | Dubious signature "(void *,const char *,int)" in summary model. | | Dubious signature "(void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[])" in summary model. | -| Dubious signature "(void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[])" in summary model. | | Dubious signature "(void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f)" in summary model. | | Dubious signature "(void *,int)" in summary model. | | Dubious signature "(void *,int,const OSSL_PARAM[])" in summary model. | @@ -3808,8 +3759,6 @@ | Dubious signature "(void *,size_t,const char *,int)" in summary model. | | Dubious signature "(void *,size_t,size_t,const char *,int)" in summary model. | | Dubious signature "(void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *)" in summary model. | -| Dubious signature "(void *,size_t,unsigned char **,size_t *,const size_t *)" in summary model. | -| Dubious signature "(void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *)" in summary model. | | Dubious signature "(void *,sqlite3 *,int,const char *)" in summary model. | | Dubious signature "(void *,sqlite3_uint64)" in summary model. | | Dubious signature "(void *,unsigned char **,int,size_t,size_t,int,const unsigned char *,size_t)" in summary model. | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected index f95cbea3292..7a5791c2756 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected @@ -21,12 +21,9 @@ signatureMatches | arrayassignment.cpp:3:6:3:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | ossl_tolower | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | ossl_toupper | 0 | -| arrayassignment.cpp:3:6:3:9 | sink | (int) | | pulldown_test_framework | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | sqlite3_compileoption_get | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | sqlite3_errstr | 0 | -| arrayassignment.cpp:3:6:3:9 | sink | (int) | | tls1_alert_code | 0 | | arrayassignment.cpp:3:6:3:9 | sink | (int) | | tls13_alert_code | 0 | -| arrayassignment.cpp:3:6:3:9 | sink | (int) | | wait_until_sock_readable | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ASN1_STRING_type_new | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ASN1_tag2bit | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ASN1_tag2str | 0 | @@ -49,12 +46,9 @@ signatureMatches | arrayassignment.cpp:88:7:88:9 | get | (int) | | ossl_cmp_bodytype_to_string | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ossl_tolower | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | ossl_toupper | 0 | -| arrayassignment.cpp:88:7:88:9 | get | (int) | | pulldown_test_framework | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | sqlite3_compileoption_get | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | sqlite3_errstr | 0 | -| arrayassignment.cpp:88:7:88:9 | get | (int) | | tls1_alert_code | 0 | | arrayassignment.cpp:88:7:88:9 | get | (int) | | tls13_alert_code | 0 | -| arrayassignment.cpp:88:7:88:9 | get | (int) | | wait_until_sock_readable | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ASN1_STRING_type_new | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ASN1_tag2bit | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ASN1_tag2str | 0 | @@ -77,12 +71,9 @@ signatureMatches | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ossl_tolower | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | ossl_toupper | 0 | -| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | pulldown_test_framework | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | sqlite3_compileoption_get | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | sqlite3_errstr | 0 | -| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | tls1_alert_code | 0 | | arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | tls13_alert_code | 0 | -| arrayassignment.cpp:90:7:90:16 | operator[] | (int) | | wait_until_sock_readable | 0 | | atl.cpp:71:5:71:17 | _U_STRINGorID | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:71:5:71:17 | _U_STRINGorID | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:71:5:71:17 | _U_STRINGorID | (unsigned int) | | Jim_IntHashFunction | 0 | @@ -99,7 +90,6 @@ signatureMatches | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | X509_LOOKUP_meth_new | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | a2i_IPADDRESS_NC | 0 | -| atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | new_pkcs12_builder | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | opt_path_end | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | opt_progname | 0 | | atl.cpp:72:5:72:17 | _U_STRINGorID | (const char *) | | ossl_lh_strcasehash | 0 | @@ -109,7 +99,6 @@ signatureMatches | atl.cpp:201:8:201:12 | GetAt | (size_t) | | ossl_param_bytes_to_blocks | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | ossl_quic_sstream_new | 0 | | atl.cpp:201:8:201:12 | GetAt | (size_t) | | ssl_cert_new | 0 | -| atl.cpp:201:8:201:12 | GetAt | (size_t) | | test_get_argument | 0 | | atl.cpp:206:10:206:17 | InsertAt | (BLAKE2B_CTX *,const void *,size_t) | | ossl_blake2b_update | 2 | | atl.cpp:206:10:206:17 | InsertAt | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_personal | 2 | | atl.cpp:206:10:206:17 | InsertAt | (BLAKE2B_PARAM *,const uint8_t *,size_t) | | ossl_blake2b_param_set_salt | 2 | @@ -157,7 +146,6 @@ signatureMatches | atl.cpp:206:10:206:17 | InsertAt | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 2 | | atl.cpp:206:10:206:17 | InsertAt | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 2 | | atl.cpp:206:10:206:17 | InsertAt | (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 2 | -| atl.cpp:206:10:206:17 | InsertAt | (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 2 | | atl.cpp:206:10:206:17 | InsertAt | (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 2 | | atl.cpp:206:10:206:17 | InsertAt | (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 2 | | atl.cpp:206:10:206:17 | InsertAt | (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 2 | @@ -244,7 +232,6 @@ signatureMatches | atl.cpp:213:8:213:17 | operator[] | (size_t) | | ossl_param_bytes_to_blocks | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | ossl_quic_sstream_new | 0 | | atl.cpp:213:8:213:17 | operator[] | (size_t) | | ssl_cert_new | 0 | -| atl.cpp:213:8:213:17 | operator[] | (size_t) | | test_get_argument | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:259:5:259:12 | CAtlList | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | @@ -263,8 +250,6 @@ signatureMatches | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ossl_quic_sstream_new | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ssl_cert_new | 0 | | atl.cpp:268:14:268:22 | FindIndex | (size_t) | | ssl_cert_new | 0 | -| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | test_get_argument | 0 | -| atl.cpp:268:14:268:22 | FindIndex | (size_t) | | test_get_argument | 0 | | atl.cpp:409:10:409:10 | operator= | (const CComBSTR &) | CComBSTR | Append | 0 | | atl.cpp:409:10:409:10 | operator= | (const CComBSTR &) | CComBSTR | CComBSTR | 0 | | atl.cpp:411:5:411:12 | CComBSTR | (const CComBSTR &) | CComBSTR | Append | 0 | @@ -291,12 +276,9 @@ signatureMatches | atl.cpp:412:5:412:12 | CComBSTR | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | ossl_tolower | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | ossl_toupper | 0 | -| atl.cpp:412:5:412:12 | CComBSTR | (int) | | pulldown_test_framework | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | sqlite3_errstr | 0 | -| atl.cpp:412:5:412:12 | CComBSTR | (int) | | tls1_alert_code | 0 | | atl.cpp:412:5:412:12 | CComBSTR | (int) | | tls13_alert_code | 0 | -| atl.cpp:412:5:412:12 | CComBSTR | (int) | | wait_until_sock_readable | 0 | | atl.cpp:413:5:413:12 | CComBSTR | (int,LPCOLESTR) | CComBSTR | CComBSTR | 0 | | atl.cpp:413:5:413:12 | CComBSTR | (int,LPCOLESTR) | CComBSTR | CComBSTR | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | @@ -370,7 +352,6 @@ signatureMatches | atl.cpp:414:5:414:12 | CComBSTR | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | -| atl.cpp:414:5:414:12 | CComBSTR | (STANZA *,const char *) | | test_start_file | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (UI *,const char *) | | UI_add_error_string | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (UI *,const char *) | | UI_add_info_string | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (UI *,const char *) | | UI_dup_error_string | 1 | @@ -389,7 +370,6 @@ signatureMatches | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | sqlite3_strglob | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | sqlite3_stricmp | 1 | -| atl.cpp:414:5:414:12 | CComBSTR | (const char *,const char *) | | test_mk_file_path | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (int,LPCSTR) | CComBSTR | CComBSTR | 0 | | atl.cpp:414:5:414:12 | CComBSTR | (int,LPCSTR) | CComBSTR | CComBSTR | 1 | | atl.cpp:414:5:414:12 | CComBSTR | (int,const char *) | | BIO_meth_new | 0 | @@ -421,7 +401,6 @@ signatureMatches | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | X509_LOOKUP_meth_new | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | a2i_IPADDRESS_NC | 0 | -| atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | new_pkcs12_builder | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | opt_path_end | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | opt_progname | 0 | | atl.cpp:416:5:416:12 | CComBSTR | (const char *) | | ossl_lh_strcasehash | 0 | @@ -450,7 +429,6 @@ signatureMatches | atl.cpp:424:13:424:18 | Append | (const char *) | | X509_LOOKUP_meth_new | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | a2i_IPADDRESS_NC | 0 | -| atl.cpp:424:13:424:18 | Append | (const char *) | | new_pkcs12_builder | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | opt_path_end | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | opt_progname | 0 | | atl.cpp:424:13:424:18 | Append | (const char *) | | ossl_lh_strcasehash | 0 | @@ -1101,12 +1079,9 @@ signatureMatches | atl.cpp:568:8:568:17 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | ossl_tolower | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | ossl_toupper | 0 | -| atl.cpp:568:8:568:17 | operator[] | (int) | | pulldown_test_framework | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | sqlite3_errstr | 0 | -| atl.cpp:568:8:568:17 | operator[] | (int) | | tls1_alert_code | 0 | | atl.cpp:568:8:568:17 | operator[] | (int) | | tls13_alert_code | 0 | -| atl.cpp:568:8:568:17 | operator[] | (int) | | wait_until_sock_readable | 0 | | atl.cpp:612:5:612:10 | CPathT | (PCXSTR) | | operator+= | 0 | | atl.cpp:612:5:612:10 | CPathT | (PCXSTR) | CSimpleStringT | operator+= | 0 | | atl.cpp:612:5:612:10 | CPathT | (PCXSTR) | CStringT | operator= | 0 | @@ -1148,12 +1123,9 @@ signatureMatches | atl.cpp:731:8:731:17 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | ossl_tolower | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | ossl_toupper | 0 | -| atl.cpp:731:8:731:17 | operator[] | (int) | | pulldown_test_framework | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | sqlite3_errstr | 0 | -| atl.cpp:731:8:731:17 | operator[] | (int) | | tls1_alert_code | 0 | | atl.cpp:731:8:731:17 | operator[] | (int) | | tls13_alert_code | 0 | -| atl.cpp:731:8:731:17 | operator[] | (int) | | wait_until_sock_readable | 0 | | atl.cpp:765:10:765:12 | Add | (const deque &,const Allocator &) | deque | deque | 1 | | atl.cpp:765:10:765:12 | Add | (const forward_list &,const Allocator &) | forward_list | forward_list | 1 | | atl.cpp:765:10:765:12 | Add | (const list &,const Allocator &) | list | list | 1 | @@ -1184,12 +1156,9 @@ signatureMatches | atl.cpp:770:11:770:20 | GetValueAt | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | ossl_tolower | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | ossl_toupper | 0 | -| atl.cpp:770:11:770:20 | GetValueAt | (int) | | pulldown_test_framework | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | sqlite3_errstr | 0 | -| atl.cpp:770:11:770:20 | GetValueAt | (int) | | tls1_alert_code | 0 | | atl.cpp:770:11:770:20 | GetValueAt | (int) | | tls13_alert_code | 0 | -| atl.cpp:770:11:770:20 | GetValueAt | (int) | | wait_until_sock_readable | 0 | | atl.cpp:776:10:776:14 | SetAt | (const deque &,const Allocator &) | deque | deque | 1 | | atl.cpp:776:10:776:14 | SetAt | (const forward_list &,const Allocator &) | forward_list | forward_list | 1 | | atl.cpp:776:10:776:14 | SetAt | (const list &,const Allocator &) | list | list | 1 | @@ -1259,7 +1228,6 @@ signatureMatches | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | X509_LOOKUP_meth_new | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | a2i_IPADDRESS_NC | 0 | -| atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | new_pkcs12_builder | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | opt_path_end | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | opt_progname | 0 | | atl.cpp:842:17:842:28 | SetExtraInfo | (const char *) | | ossl_lh_strcasehash | 0 | @@ -1276,7 +1244,6 @@ signatureMatches | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | X509_LOOKUP_meth_new | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | a2i_IPADDRESS_NC | 0 | -| atl.cpp:843:17:843:27 | SetHostName | (const char *) | | new_pkcs12_builder | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | opt_path_end | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | opt_progname | 0 | | atl.cpp:843:17:843:27 | SetHostName | (const char *) | | ossl_lh_strcasehash | 0 | @@ -1293,7 +1260,6 @@ signatureMatches | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | X509_LOOKUP_meth_new | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | a2i_IPADDRESS_NC | 0 | -| atl.cpp:844:17:844:27 | SetPassword | (const char *) | | new_pkcs12_builder | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | opt_path_end | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | opt_progname | 0 | | atl.cpp:844:17:844:27 | SetPassword | (const char *) | | ossl_lh_strcasehash | 0 | @@ -1310,7 +1276,6 @@ signatureMatches | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | X509_LOOKUP_meth_new | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | a2i_IPADDRESS_NC | 0 | -| atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | new_pkcs12_builder | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | opt_path_end | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | opt_progname | 0 | | atl.cpp:847:17:847:29 | SetSchemeName | (const char *) | | ossl_lh_strcasehash | 0 | @@ -1327,7 +1292,6 @@ signatureMatches | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | X509_LOOKUP_meth_new | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | a2i_IPADDRESS_NC | 0 | -| atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | new_pkcs12_builder | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | opt_path_end | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | opt_progname | 0 | | atl.cpp:848:17:848:26 | SetUrlPath | (const char *) | | ossl_lh_strcasehash | 0 | @@ -1344,7 +1308,6 @@ signatureMatches | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | X509_LOOKUP_meth_new | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | a2i_IPADDRESS | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | a2i_IPADDRESS_NC | 0 | -| atl.cpp:849:17:849:27 | SetUserName | (const char *) | | new_pkcs12_builder | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | opt_path_end | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | opt_progname | 0 | | atl.cpp:849:17:849:27 | SetUserName | (const char *) | | ossl_lh_strcasehash | 0 | @@ -1780,9 +1743,7 @@ signatureMatches | atl.cpp:927:17:927:25 | CopyChars | (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | | atl.cpp:927:17:927:25 | CopyChars | (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | | atl.cpp:927:17:927:25 | CopyChars | (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | -| atl.cpp:927:17:927:25 | CopyChars | (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | | atl.cpp:927:17:927:25 | CopyChars | (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | -| atl.cpp:927:17:927:25 | CopyChars | (SSL *,SSL *,int) | | create_ssl_connection | 2 | | atl.cpp:927:17:927:25 | CopyChars | (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | | atl.cpp:927:17:927:25 | CopyChars | (SSL *,const void *,int) | | SSL_write | 2 | | atl.cpp:927:17:927:25 | CopyChars | (SSL *,void *,int) | | SSL_peek | 2 | @@ -1860,7 +1821,6 @@ signatureMatches | atl.cpp:927:17:927:25 | CopyChars | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 1 | | atl.cpp:927:17:927:25 | CopyChars | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | -| atl.cpp:927:17:927:25 | CopyChars | (const char *,SD *,int) | | sd_load | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | CRYPTO_strdup | 1 | | atl.cpp:927:17:927:25 | CopyChars | (const char *,const char *,int) | | CRYPTO_strdup | 2 | @@ -2136,9 +2096,7 @@ signatureMatches | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | -| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | -| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL *,SSL *,int) | | create_ssl_connection | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL *,const void *,int) | | SSL_write | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (SSL *,void *,int) | | SSL_peek | 2 | @@ -2216,7 +2174,6 @@ signatureMatches | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | -| atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,SD *,int) | | sd_load | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | CRYPTO_strdup | 1 | | atl.cpp:929:17:929:35 | CopyCharsOverlapped | (const char *,const char *,int) | | CRYPTO_strdup | 2 | @@ -2293,12 +2250,9 @@ signatureMatches | atl.cpp:931:11:931:15 | GetAt | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | ossl_tolower | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | ossl_toupper | 0 | -| atl.cpp:931:11:931:15 | GetAt | (int) | | pulldown_test_framework | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | sqlite3_errstr | 0 | -| atl.cpp:931:11:931:15 | GetAt | (int) | | tls1_alert_code | 0 | | atl.cpp:931:11:931:15 | GetAt | (int) | | tls13_alert_code | 0 | -| atl.cpp:931:11:931:15 | GetAt | (int) | | wait_until_sock_readable | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ASN1_STRING_type_new | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ASN1_tag2bit | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ASN1_tag2str | 0 | @@ -2321,12 +2275,9 @@ signatureMatches | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ossl_tolower | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | ossl_toupper | 0 | -| atl.cpp:932:11:932:19 | GetBuffer | (int) | | pulldown_test_framework | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | sqlite3_errstr | 0 | -| atl.cpp:932:11:932:19 | GetBuffer | (int) | | tls1_alert_code | 0 | | atl.cpp:932:11:932:19 | GetBuffer | (int) | | tls13_alert_code | 0 | -| atl.cpp:932:11:932:19 | GetBuffer | (int) | | wait_until_sock_readable | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ASN1_STRING_type_new | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ASN1_tag2bit | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ASN1_tag2str | 0 | @@ -2349,12 +2300,9 @@ signatureMatches | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ossl_tolower | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | ossl_toupper | 0 | -| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | pulldown_test_framework | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | sqlite3_errstr | 0 | -| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | tls1_alert_code | 0 | | atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | tls13_alert_code | 0 | -| atl.cpp:934:11:934:28 | GetBufferSetLength | (int) | | wait_until_sock_readable | 0 | | atl.cpp:938:10:938:14 | SetAt | (XCHAR,XCHAR) | CStringT | Replace | 1 | | atl.cpp:938:10:938:14 | SetAt | (const CStringT &,char) | | operator+ | 1 | | atl.cpp:938:10:938:14 | SetAt | (int,XCHAR) | CStringT | Insert | 0 | @@ -2673,12 +2621,9 @@ signatureMatches | atl.cpp:942:11:942:20 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | ossl_tolower | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | ossl_toupper | 0 | -| atl.cpp:942:11:942:20 | operator[] | (int) | | pulldown_test_framework | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | sqlite3_errstr | 0 | -| atl.cpp:942:11:942:20 | operator[] | (int) | | tls1_alert_code | 0 | | atl.cpp:942:11:942:20 | operator[] | (int) | | tls13_alert_code | 0 | -| atl.cpp:942:11:942:20 | operator[] | (int) | | wait_until_sock_readable | 0 | | atl.cpp:1036:5:1036:12 | CStringT | (const VARIANT &) | | operator+= | 0 | | atl.cpp:1036:5:1036:12 | CStringT | (const VARIANT &) | CStringT | CStringT | 0 | | atl.cpp:1036:5:1036:12 | CStringT | (const VARIANT &) | CStringT | operator= | 0 | @@ -3336,12 +3281,9 @@ signatureMatches | atl.cpp:1072:14:1072:17 | Left | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | ossl_tolower | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | ossl_toupper | 0 | -| atl.cpp:1072:14:1072:17 | Left | (int) | | pulldown_test_framework | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | sqlite3_errstr | 0 | -| atl.cpp:1072:14:1072:17 | Left | (int) | | tls1_alert_code | 0 | | atl.cpp:1072:14:1072:17 | Left | (int) | | tls13_alert_code | 0 | -| atl.cpp:1072:14:1072:17 | Left | (int) | | wait_until_sock_readable | 0 | | atl.cpp:1075:10:1075:19 | LoadString | (UINT) | CComBSTR | LoadString | 0 | | atl.cpp:1075:10:1075:19 | LoadString | (UINT) | _U_STRINGorID | _U_STRINGorID | 0 | | atl.cpp:1075:10:1075:19 | LoadString | (unsigned int) | | Jim_IntHashFunction | 0 | @@ -3668,12 +3610,9 @@ signatureMatches | atl.cpp:1083:14:1083:18 | Right | (int) | | ossl_cmp_bodytype_to_string | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | ossl_tolower | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | ossl_toupper | 0 | -| atl.cpp:1083:14:1083:18 | Right | (int) | | pulldown_test_framework | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | sqlite3_compileoption_get | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | sqlite3_errstr | 0 | -| atl.cpp:1083:14:1083:18 | Right | (int) | | tls1_alert_code | 0 | | atl.cpp:1083:14:1083:18 | Right | (int) | | tls13_alert_code | 0 | -| atl.cpp:1083:14:1083:18 | Right | (int) | | wait_until_sock_readable | 0 | | atl.cpp:1085:14:1085:26 | SpanExcluding | (PCXSTR) | | operator+= | 0 | | atl.cpp:1085:14:1085:26 | SpanExcluding | (PCXSTR) | CSimpleStringT | operator+= | 0 | | atl.cpp:1085:14:1085:26 | SpanExcluding | (PCXSTR) | CStringT | operator= | 0 | @@ -3761,12 +3700,9 @@ signatureMatches | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ossl_cmp_bodytype_to_string | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ossl_tolower | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | ossl_toupper | 0 | -| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | pulldown_test_framework | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | sqlite3_compileoption_get | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | sqlite3_errstr | 0 | -| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | tls1_alert_code | 0 | | constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | tls13_alert_code | 0 | -| constructor_delegation.cpp:8:2:8:8 | MyValue | (int) | | wait_until_sock_readable | 0 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | constructor_delegation.cpp:10:2:10:8 | MyValue | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -4371,12 +4307,9 @@ signatureMatches | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ossl_cmp_bodytype_to_string | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ossl_tolower | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | ossl_toupper | 0 | -| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | pulldown_test_framework | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | sqlite3_compileoption_get | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | sqlite3_errstr | 0 | -| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | tls1_alert_code | 0 | | copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | tls13_alert_code | 0 | -| copyableclass.cpp:8:2:8:16 | MyCopyableClass | (int) | | wait_until_sock_readable | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ASN1_STRING_type_new | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ASN1_tag2bit | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ASN1_tag2str | 0 | @@ -4399,12 +4332,9 @@ signatureMatches | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ossl_cmp_bodytype_to_string | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ossl_tolower | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | ossl_toupper | 0 | -| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | pulldown_test_framework | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | sqlite3_compileoption_get | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | sqlite3_errstr | 0 | -| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | tls1_alert_code | 0 | | copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | tls13_alert_code | 0 | -| copyableclass_declonly.cpp:8:2:8:24 | MyCopyableClassDeclOnly | (int) | | wait_until_sock_readable | 0 | | file://:0:0:0:0 | operator delete | (void *) | | ossl_kdf_data_new | 0 | | file://:0:0:0:0 | operator new | (unsigned long) | | BN_num_bits_word | 0 | | file://:0:0:0:0 | operator new | (unsigned long) | | BUF_MEM_new_ex | 0 | @@ -4535,7 +4465,6 @@ signatureMatches | format.cpp:142:8:142:13 | strlen | (const char *) | | X509_LOOKUP_meth_new | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | a2i_IPADDRESS | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | a2i_IPADDRESS_NC | 0 | -| format.cpp:142:8:142:13 | strlen | (const char *) | | new_pkcs12_builder | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | opt_path_end | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | opt_progname | 0 | | format.cpp:142:8:142:13 | strlen | (const char *) | | ossl_lh_strcasehash | 0 | @@ -4556,7 +4485,6 @@ signatureMatches | map.cpp:9:6:9:9 | sink | (const char *) | | X509_LOOKUP_meth_new | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | a2i_IPADDRESS | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | a2i_IPADDRESS_NC | 0 | -| map.cpp:9:6:9:9 | sink | (const char *) | | new_pkcs12_builder | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | opt_path_end | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | opt_progname | 0 | | map.cpp:9:6:9:9 | sink | (const char *) | | ossl_lh_strcasehash | 0 | @@ -4583,12 +4511,9 @@ signatureMatches | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ossl_cmp_bodytype_to_string | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ossl_tolower | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | ossl_toupper | 0 | -| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | pulldown_test_framework | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | sqlite3_compileoption_get | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | sqlite3_errstr | 0 | -| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | tls1_alert_code | 0 | | movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | tls13_alert_code | 0 | -| movableclass.cpp:8:2:8:15 | MyMovableClass | (int) | | wait_until_sock_readable | 0 | | set.cpp:8:6:8:9 | sink | (char *) | | SRP_VBASE_new | 0 | | set.cpp:8:6:8:9 | sink | (char *) | | defossilize | 0 | | set.cpp:8:6:8:9 | sink | (char *) | | make_uppercase | 0 | @@ -4616,12 +4541,9 @@ signatureMatches | smart_pointer.cpp:4:6:4:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | ossl_tolower | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | ossl_toupper | 0 | -| smart_pointer.cpp:4:6:4:9 | sink | (int) | | pulldown_test_framework | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | sqlite3_compileoption_get | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | sqlite3_errstr | 0 | -| smart_pointer.cpp:4:6:4:9 | sink | (int) | | tls1_alert_code | 0 | | smart_pointer.cpp:4:6:4:9 | sink | (int) | | tls13_alert_code | 0 | -| smart_pointer.cpp:4:6:4:9 | sink | (int) | | wait_until_sock_readable | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ASN1_tag2str | 0 | @@ -4644,12 +4566,9 @@ signatureMatches | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | ossl_toupper | 0 | -| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | pulldown_test_framework | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | sqlite3_errstr | 0 | -| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | tls1_alert_code | 0 | | standalone_iterators.cpp:5:6:5:9 | sink | (int) | | tls13_alert_code | 0 | -| standalone_iterators.cpp:5:6:5:9 | sink | (int) | | wait_until_sock_readable | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ASN1_tag2str | 0 | @@ -4672,12 +4591,9 @@ signatureMatches | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | ossl_toupper | 0 | -| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | pulldown_test_framework | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | sqlite3_errstr | 0 | -| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | tls1_alert_code | 0 | | standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | tls13_alert_code | 0 | -| standalone_iterators.cpp:16:30:16:39 | operator++ | (int) | | wait_until_sock_readable | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ASN1_tag2str | 0 | @@ -4700,12 +4616,9 @@ signatureMatches | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | ossl_toupper | 0 | -| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | pulldown_test_framework | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | sqlite3_errstr | 0 | -| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | tls1_alert_code | 0 | | standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | tls13_alert_code | 0 | -| standalone_iterators.cpp:23:27:23:36 | operator++ | (int) | | wait_until_sock_readable | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ASN1_tag2str | 0 | @@ -4728,12 +4641,9 @@ signatureMatches | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | ossl_toupper | 0 | -| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | pulldown_test_framework | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | sqlite3_errstr | 0 | -| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | tls1_alert_code | 0 | | standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | tls13_alert_code | 0 | -| standalone_iterators.cpp:39:18:39:27 | operator++ | (int) | | wait_until_sock_readable | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ASN1_tag2str | 0 | @@ -4756,12 +4666,9 @@ signatureMatches | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | ossl_toupper | 0 | -| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | pulldown_test_framework | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | sqlite3_errstr | 0 | -| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | tls1_alert_code | 0 | | standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | tls13_alert_code | 0 | -| standalone_iterators.cpp:66:30:66:39 | operator++ | (int) | | wait_until_sock_readable | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ASN1_tag2str | 0 | @@ -4784,12 +4691,9 @@ signatureMatches | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | ossl_toupper | 0 | -| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | pulldown_test_framework | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | sqlite3_errstr | 0 | -| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | tls1_alert_code | 0 | | standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | tls13_alert_code | 0 | -| standalone_iterators.cpp:68:30:68:39 | operator-- | (int) | | wait_until_sock_readable | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ASN1_STRING_type_new | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ASN1_tag2bit | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ASN1_tag2str | 0 | @@ -4812,12 +4716,9 @@ signatureMatches | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ossl_cmp_bodytype_to_string | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ossl_tolower | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | ossl_toupper | 0 | -| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | pulldown_test_framework | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | sqlite3_compileoption_get | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | sqlite3_errstr | 0 | -| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | tls1_alert_code | 0 | | standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | tls13_alert_code | 0 | -| standalone_iterators.cpp:70:31:70:39 | operator= | (int) | | wait_until_sock_readable | 0 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | standalone_iterators.cpp:103:27:103:36 | operator+= | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -5217,11 +5118,6 @@ signatureMatches | stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | ossl_toupper | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | pulldown_test_framework | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | pulldown_test_framework | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | pulldown_test_framework | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | pulldown_test_framework | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | pulldown_test_framework | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_compileoption_get | 0 | @@ -5232,21 +5128,11 @@ signatureMatches | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | sqlite3_errstr | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | tls1_alert_code | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | tls1_alert_code | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | tls1_alert_code | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | tls1_alert_code | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | tls1_alert_code | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | | stl.h:52:12:52:21 | operator++ | (int) | | tls13_alert_code | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | wait_until_sock_readable | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | wait_until_sock_readable | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | wait_until_sock_readable | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | wait_until_sock_readable | 0 | -| stl.h:52:12:52:21 | operator++ | (int) | | wait_until_sock_readable | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ASN1_STRING_type_new | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ASN1_tag2bit | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ASN1_tag2str | 0 | @@ -5269,12 +5155,9 @@ signatureMatches | stl.h:54:12:54:21 | operator-- | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ossl_tolower | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | ossl_toupper | 0 | -| stl.h:54:12:54:21 | operator-- | (int) | | pulldown_test_framework | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | sqlite3_compileoption_get | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | sqlite3_errstr | 0 | -| stl.h:54:12:54:21 | operator-- | (int) | | tls1_alert_code | 0 | | stl.h:54:12:54:21 | operator-- | (int) | | tls13_alert_code | 0 | -| stl.h:54:12:54:21 | operator-- | (int) | | wait_until_sock_readable | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ASN1_STRING_type_new | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ASN1_tag2bit | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ASN1_tag2str | 0 | @@ -5297,12 +5180,9 @@ signatureMatches | stl.h:59:12:59:20 | operator+ | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ossl_tolower | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | ossl_toupper | 0 | -| stl.h:59:12:59:20 | operator+ | (int) | | pulldown_test_framework | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | sqlite3_compileoption_get | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | sqlite3_errstr | 0 | -| stl.h:59:12:59:20 | operator+ | (int) | | tls1_alert_code | 0 | | stl.h:59:12:59:20 | operator+ | (int) | | tls13_alert_code | 0 | -| stl.h:59:12:59:20 | operator+ | (int) | | wait_until_sock_readable | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ASN1_STRING_type_new | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ASN1_tag2bit | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ASN1_tag2str | 0 | @@ -5325,12 +5205,9 @@ signatureMatches | stl.h:60:12:60:20 | operator- | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ossl_tolower | 0 | | stl.h:60:12:60:20 | operator- | (int) | | ossl_toupper | 0 | -| stl.h:60:12:60:20 | operator- | (int) | | pulldown_test_framework | 0 | | stl.h:60:12:60:20 | operator- | (int) | | sqlite3_compileoption_get | 0 | | stl.h:60:12:60:20 | operator- | (int) | | sqlite3_errstr | 0 | -| stl.h:60:12:60:20 | operator- | (int) | | tls1_alert_code | 0 | | stl.h:60:12:60:20 | operator- | (int) | | tls13_alert_code | 0 | -| stl.h:60:12:60:20 | operator- | (int) | | wait_until_sock_readable | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ASN1_STRING_type_new | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ASN1_STRING_type_new | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ASN1_tag2bit | 0 | @@ -5375,18 +5252,12 @@ signatureMatches | stl.h:61:13:61:22 | operator+= | (int) | | ossl_tolower | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ossl_toupper | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | ossl_toupper | 0 | -| stl.h:61:13:61:22 | operator+= | (int) | | pulldown_test_framework | 0 | -| stl.h:61:13:61:22 | operator+= | (int) | | pulldown_test_framework | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_compileoption_get | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_compileoption_get | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_errstr | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | sqlite3_errstr | 0 | -| stl.h:61:13:61:22 | operator+= | (int) | | tls1_alert_code | 0 | -| stl.h:61:13:61:22 | operator+= | (int) | | tls1_alert_code | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | tls13_alert_code | 0 | | stl.h:61:13:61:22 | operator+= | (int) | | tls13_alert_code | 0 | -| stl.h:61:13:61:22 | operator+= | (int) | | wait_until_sock_readable | 0 | -| stl.h:61:13:61:22 | operator+= | (int) | | wait_until_sock_readable | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ASN1_STRING_type_new | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ASN1_tag2bit | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ASN1_tag2str | 0 | @@ -5409,12 +5280,9 @@ signatureMatches | stl.h:62:13:62:22 | operator-= | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ossl_tolower | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | ossl_toupper | 0 | -| stl.h:62:13:62:22 | operator-= | (int) | | pulldown_test_framework | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | sqlite3_compileoption_get | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | sqlite3_errstr | 0 | -| stl.h:62:13:62:22 | operator-= | (int) | | tls1_alert_code | 0 | | stl.h:62:13:62:22 | operator-= | (int) | | tls13_alert_code | 0 | -| stl.h:62:13:62:22 | operator-= | (int) | | wait_until_sock_readable | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ASN1_STRING_type_new | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ASN1_tag2bit | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ASN1_tag2str | 0 | @@ -5437,12 +5305,9 @@ signatureMatches | stl.h:64:18:64:27 | operator[] | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ossl_tolower | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | ossl_toupper | 0 | -| stl.h:64:18:64:27 | operator[] | (int) | | pulldown_test_framework | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | sqlite3_compileoption_get | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | sqlite3_errstr | 0 | -| stl.h:64:18:64:27 | operator[] | (int) | | tls1_alert_code | 0 | | stl.h:64:18:64:27 | operator[] | (int) | | tls13_alert_code | 0 | -| stl.h:64:18:64:27 | operator[] | (int) | | wait_until_sock_readable | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ASN1_STRING_type_new | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ASN1_tag2bit | 0 | @@ -5487,18 +5352,12 @@ signatureMatches | stl.h:91:24:91:33 | operator++ | (int) | | ossl_tolower | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ossl_toupper | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | ossl_toupper | 0 | -| stl.h:91:24:91:33 | operator++ | (int) | | pulldown_test_framework | 0 | -| stl.h:91:24:91:33 | operator++ | (int) | | pulldown_test_framework | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_compileoption_get | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_errstr | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | sqlite3_errstr | 0 | -| stl.h:91:24:91:33 | operator++ | (int) | | tls1_alert_code | 0 | -| stl.h:91:24:91:33 | operator++ | (int) | | tls1_alert_code | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | tls13_alert_code | 0 | | stl.h:91:24:91:33 | operator++ | (int) | | tls13_alert_code | 0 | -| stl.h:91:24:91:33 | operator++ | (int) | | wait_until_sock_readable | 0 | -| stl.h:91:24:91:33 | operator++ | (int) | | wait_until_sock_readable | 0 | | stl.h:182:17:182:22 | assign | (InputIt,InputIt) | deque | assign | 0 | | stl.h:182:17:182:22 | assign | (InputIt,InputIt) | deque | assign | 1 | | stl.h:182:17:182:22 | assign | (InputIt,InputIt) | forward_list | assign | 0 | @@ -5665,12 +5524,9 @@ signatureMatches | stl.h:240:33:240:42 | operator<< | (int) | | ossl_cmp_bodytype_to_string | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | ossl_tolower | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | ossl_toupper | 0 | -| stl.h:240:33:240:42 | operator<< | (int) | | pulldown_test_framework | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | sqlite3_compileoption_get | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | sqlite3_errstr | 0 | -| stl.h:240:33:240:42 | operator<< | (int) | | tls1_alert_code | 0 | | stl.h:240:33:240:42 | operator<< | (int) | | tls13_alert_code | 0 | -| stl.h:240:33:240:42 | operator<< | (int) | | wait_until_sock_readable | 0 | | stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | | stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_flags | 1 | | stl.h:243:33:243:37 | write | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_nm_flags | 1 | @@ -5983,7 +5839,6 @@ signatureMatches | string.cpp:17:6:17:9 | sink | (const char *) | | X509_LOOKUP_meth_new | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | a2i_IPADDRESS | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | a2i_IPADDRESS_NC | 0 | -| string.cpp:17:6:17:9 | sink | (const char *) | | new_pkcs12_builder | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | opt_path_end | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | opt_progname | 0 | | string.cpp:17:6:17:9 | sink | (const char *) | | ossl_lh_strcasehash | 0 | @@ -6059,7 +5914,6 @@ signatureMatches | string.cpp:19:6:19:9 | sink | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | | string.cpp:19:6:19:9 | sink | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | | string.cpp:19:6:19:9 | sink | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | -| string.cpp:19:6:19:9 | sink | (STANZA *,const char *) | | test_start_file | 1 | | string.cpp:19:6:19:9 | sink | (UI *,const char *) | | UI_add_error_string | 1 | | string.cpp:19:6:19:9 | sink | (UI *,const char *) | | UI_add_info_string | 1 | | string.cpp:19:6:19:9 | sink | (UI *,const char *) | | UI_dup_error_string | 1 | @@ -6087,8 +5941,6 @@ signatureMatches | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | sqlite3_strglob | 1 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | sqlite3_stricmp | 0 | | string.cpp:19:6:19:9 | sink | (const char *,const char *) | | sqlite3_stricmp | 1 | -| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | test_mk_file_path | 0 | -| string.cpp:19:6:19:9 | sink | (const char *,const char *) | | test_mk_file_path | 1 | | string.cpp:19:6:19:9 | sink | (int,const char *) | | BIO_meth_new | 1 | | string.cpp:19:6:19:9 | sink | (lemon *,const char *) | | file_makename | 1 | | string.cpp:19:6:19:9 | sink | (size_t *,const char *) | | next_protos_parse | 1 | @@ -6127,12 +5979,9 @@ signatureMatches | stringstream.cpp:13:6:13:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | ossl_tolower | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | ossl_toupper | 0 | -| stringstream.cpp:13:6:13:9 | sink | (int) | | pulldown_test_framework | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | sqlite3_compileoption_get | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | sqlite3_errstr | 0 | -| stringstream.cpp:13:6:13:9 | sink | (int) | | tls1_alert_code | 0 | | stringstream.cpp:13:6:13:9 | sink | (int) | | tls13_alert_code | 0 | -| stringstream.cpp:13:6:13:9 | sink | (int) | | wait_until_sock_readable | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ASN1_STRING_type_new | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ASN1_tag2bit | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ASN1_tag2str | 0 | @@ -6155,12 +6004,9 @@ signatureMatches | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ossl_cmp_bodytype_to_string | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ossl_tolower | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | ossl_toupper | 0 | -| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | pulldown_test_framework | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | sqlite3_compileoption_get | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | sqlite3_errstr | 0 | -| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | tls1_alert_code | 0 | | stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | tls13_alert_code | 0 | -| stringstream.cpp:26:6:26:29 | test_stringstream_string | (int) | | wait_until_sock_readable | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ASN1_STRING_type_new | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ASN1_tag2bit | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ASN1_tag2str | 0 | @@ -6183,12 +6029,9 @@ signatureMatches | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ossl_cmp_bodytype_to_string | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ossl_tolower | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | ossl_toupper | 0 | -| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | pulldown_test_framework | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | sqlite3_compileoption_get | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | sqlite3_errstr | 0 | -| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | tls1_alert_code | 0 | | stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | tls13_alert_code | 0 | -| stringstream.cpp:70:6:70:26 | test_stringstream_int | (int) | | wait_until_sock_readable | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ASN1_STRING_type_new | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ASN1_tag2bit | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ASN1_tag2str | 0 | @@ -6211,12 +6054,9 @@ signatureMatches | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ossl_cmp_bodytype_to_string | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ossl_tolower | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | ossl_toupper | 0 | -| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | pulldown_test_framework | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | sqlite3_compileoption_get | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | sqlite3_errstr | 0 | -| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | tls1_alert_code | 0 | | structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | tls13_alert_code | 0 | -| structlikeclass.cpp:8:2:8:16 | StructLikeClass | (int) | | wait_until_sock_readable | 0 | | taint.cpp:4:6:4:21 | arithAssignments | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | taint.cpp:4:6:4:21 | arithAssignments | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -6532,12 +6372,9 @@ signatureMatches | taint.cpp:22:5:22:13 | increment | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | ossl_tolower | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | ossl_toupper | 0 | -| taint.cpp:22:5:22:13 | increment | (int) | | pulldown_test_framework | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | sqlite3_errstr | 0 | -| taint.cpp:22:5:22:13 | increment | (int) | | tls1_alert_code | 0 | | taint.cpp:22:5:22:13 | increment | (int) | | tls13_alert_code | 0 | -| taint.cpp:22:5:22:13 | increment | (int) | | wait_until_sock_readable | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ASN1_tag2bit | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ASN1_tag2str | 0 | @@ -6560,12 +6397,9 @@ signatureMatches | taint.cpp:23:5:23:8 | zero | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ossl_tolower | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | ossl_toupper | 0 | -| taint.cpp:23:5:23:8 | zero | (int) | | pulldown_test_framework | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | sqlite3_errstr | 0 | -| taint.cpp:23:5:23:8 | zero | (int) | | tls1_alert_code | 0 | | taint.cpp:23:5:23:8 | zero | (int) | | tls13_alert_code | 0 | -| taint.cpp:23:5:23:8 | zero | (int) | | wait_until_sock_readable | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ASN1_tag2bit | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ASN1_tag2str | 0 | @@ -6588,12 +6422,9 @@ signatureMatches | taint.cpp:100:6:100:15 | array_test | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ossl_tolower | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | ossl_toupper | 0 | -| taint.cpp:100:6:100:15 | array_test | (int) | | pulldown_test_framework | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | sqlite3_errstr | 0 | -| taint.cpp:100:6:100:15 | array_test | (int) | | tls1_alert_code | 0 | | taint.cpp:100:6:100:15 | array_test | (int) | | tls13_alert_code | 0 | -| taint.cpp:100:6:100:15 | array_test | (int) | | wait_until_sock_readable | 0 | | taint.cpp:142:5:142:10 | select | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 1 | | taint.cpp:142:5:142:10 | select | (ASN1_BIT_STRING *,int,int) | | ASN1_BIT_STRING_set_bit | 2 | | taint.cpp:142:5:142:10 | select | (ASN1_BIT_STRING *,unsigned char *,int) | | ASN1_BIT_STRING_set | 2 | @@ -6705,9 +6536,7 @@ signatureMatches | taint.cpp:142:5:142:10 | select | (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | | taint.cpp:142:5:142:10 | select | (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | | taint.cpp:142:5:142:10 | select | (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | -| taint.cpp:142:5:142:10 | select | (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | | taint.cpp:142:5:142:10 | select | (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | -| taint.cpp:142:5:142:10 | select | (SSL *,SSL *,int) | | create_ssl_connection | 2 | | taint.cpp:142:5:142:10 | select | (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | | taint.cpp:142:5:142:10 | select | (SSL *,const void *,int) | | SSL_write | 2 | | taint.cpp:142:5:142:10 | select | (SSL *,void *,int) | | SSL_peek | 2 | @@ -6800,7 +6629,6 @@ signatureMatches | taint.cpp:142:5:142:10 | select | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 1 | | taint.cpp:142:5:142:10 | select | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | | taint.cpp:142:5:142:10 | select | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | -| taint.cpp:142:5:142:10 | select | (const char *,SD *,int) | | sd_load | 2 | | taint.cpp:142:5:142:10 | select | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | | taint.cpp:142:5:142:10 | select | (const char *,const char *,int) | | CRYPTO_strdup | 2 | | taint.cpp:142:5:142:10 | select | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | @@ -6885,12 +6713,9 @@ signatureMatches | taint.cpp:150:6:150:12 | fn_test | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | ossl_tolower | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | ossl_toupper | 0 | -| taint.cpp:150:6:150:12 | fn_test | (int) | | pulldown_test_framework | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | sqlite3_errstr | 0 | -| taint.cpp:150:6:150:12 | fn_test | (int) | | tls1_alert_code | 0 | | taint.cpp:150:6:150:12 | fn_test | (int) | | tls13_alert_code | 0 | -| taint.cpp:150:6:150:12 | fn_test | (int) | | wait_until_sock_readable | 0 | | taint.cpp:156:7:156:12 | strcpy | (ASN1_GENERALIZEDTIME *,const char *) | | ASN1_GENERALIZEDTIME_set_string | 1 | | taint.cpp:156:7:156:12 | strcpy | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string | 1 | | taint.cpp:156:7:156:12 | strcpy | (ASN1_TIME *,const char *) | | ASN1_TIME_set_string_X509 | 1 | @@ -6962,7 +6787,6 @@ signatureMatches | taint.cpp:156:7:156:12 | strcpy | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | | taint.cpp:156:7:156:12 | strcpy | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | | taint.cpp:156:7:156:12 | strcpy | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | -| taint.cpp:156:7:156:12 | strcpy | (STANZA *,const char *) | | test_start_file | 1 | | taint.cpp:156:7:156:12 | strcpy | (UI *,const char *) | | UI_add_error_string | 1 | | taint.cpp:156:7:156:12 | strcpy | (UI *,const char *) | | UI_add_info_string | 1 | | taint.cpp:156:7:156:12 | strcpy | (UI *,const char *) | | UI_dup_error_string | 1 | @@ -6981,7 +6805,6 @@ signatureMatches | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | sqlite3_stricmp | 1 | -| taint.cpp:156:7:156:12 | strcpy | (const char *,const char *) | | test_mk_file_path | 1 | | taint.cpp:156:7:156:12 | strcpy | (int,const char *) | | BIO_meth_new | 1 | | taint.cpp:156:7:156:12 | strcpy | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:156:7:156:12 | strcpy | (size_t *,const char *) | | next_protos_parse | 1 | @@ -7066,7 +6889,6 @@ signatureMatches | taint.cpp:157:7:157:12 | strcat | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | | taint.cpp:157:7:157:12 | strcat | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | | taint.cpp:157:7:157:12 | strcat | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | -| taint.cpp:157:7:157:12 | strcat | (STANZA *,const char *) | | test_start_file | 1 | | taint.cpp:157:7:157:12 | strcat | (UI *,const char *) | | UI_add_error_string | 1 | | taint.cpp:157:7:157:12 | strcat | (UI *,const char *) | | UI_add_info_string | 1 | | taint.cpp:157:7:157:12 | strcat | (UI *,const char *) | | UI_dup_error_string | 1 | @@ -7085,7 +6907,6 @@ signatureMatches | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | sqlite3_stricmp | 1 | -| taint.cpp:157:7:157:12 | strcat | (const char *,const char *) | | test_mk_file_path | 1 | | taint.cpp:157:7:157:12 | strcat | (int,const char *) | | BIO_meth_new | 1 | | taint.cpp:157:7:157:12 | strcat | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:157:7:157:12 | strcat | (size_t *,const char *) | | next_protos_parse | 1 | @@ -7202,9 +7023,7 @@ signatureMatches | taint.cpp:190:7:190:12 | memcpy | (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | | taint.cpp:190:7:190:12 | memcpy | (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | | taint.cpp:190:7:190:12 | memcpy | (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | -| taint.cpp:190:7:190:12 | memcpy | (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | | taint.cpp:190:7:190:12 | memcpy | (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | -| taint.cpp:190:7:190:12 | memcpy | (SSL *,SSL *,int) | | create_ssl_connection | 2 | | taint.cpp:190:7:190:12 | memcpy | (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | | taint.cpp:190:7:190:12 | memcpy | (SSL *,const void *,int) | | SSL_write | 2 | | taint.cpp:190:7:190:12 | memcpy | (SSL *,void *,int) | | SSL_peek | 1 | @@ -7279,7 +7098,6 @@ signatureMatches | taint.cpp:190:7:190:12 | memcpy | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 2 | | taint.cpp:190:7:190:12 | memcpy | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | | taint.cpp:190:7:190:12 | memcpy | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | -| taint.cpp:190:7:190:12 | memcpy | (const char *,SD *,int) | | sd_load | 2 | | taint.cpp:190:7:190:12 | memcpy | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | | taint.cpp:190:7:190:12 | memcpy | (const char *,const char *,int) | | CRYPTO_strdup | 2 | | taint.cpp:190:7:190:12 | memcpy | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | @@ -7934,12 +7752,9 @@ signatureMatches | taint.cpp:266:5:266:6 | id | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:266:5:266:6 | id | (int) | | ossl_tolower | 0 | | taint.cpp:266:5:266:6 | id | (int) | | ossl_toupper | 0 | -| taint.cpp:266:5:266:6 | id | (int) | | pulldown_test_framework | 0 | | taint.cpp:266:5:266:6 | id | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:266:5:266:6 | id | (int) | | sqlite3_errstr | 0 | -| taint.cpp:266:5:266:6 | id | (int) | | tls1_alert_code | 0 | | taint.cpp:266:5:266:6 | id | (int) | | tls13_alert_code | 0 | -| taint.cpp:266:5:266:6 | id | (int) | | wait_until_sock_readable | 0 | | taint.cpp:302:6:302:14 | myAssign2 | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | taint.cpp:302:6:302:14 | myAssign2 | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -8822,7 +8637,6 @@ signatureMatches | taint.cpp:361:7:361:12 | strdup | (const char *) | | X509_LOOKUP_meth_new | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | a2i_IPADDRESS_NC | 0 | -| taint.cpp:361:7:361:12 | strdup | (const char *) | | new_pkcs12_builder | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | opt_path_end | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | opt_progname | 0 | | taint.cpp:361:7:361:12 | strdup | (const char *) | | ossl_lh_strcasehash | 0 | @@ -8859,10 +8673,6 @@ signatureMatches | taint.cpp:362:7:362:13 | strndup | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_record_received_closing_bytes | 1 | | taint.cpp:362:7:362:13 | strndup | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_frag_len | 1 | | taint.cpp:362:7:362:13 | strndup | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_pipelines | 1 | -| taint.cpp:362:7:362:13 | strndup | (QTEST_FAULT *,size_t) | | qtest_fault_resize_datagram | 1 | -| taint.cpp:362:7:362:13 | strndup | (QTEST_FAULT *,size_t) | | qtest_fault_resize_handshake | 1 | -| taint.cpp:362:7:362:13 | strndup | (QTEST_FAULT *,size_t) | | qtest_fault_resize_message | 1 | -| taint.cpp:362:7:362:13 | strndup | (QTEST_FAULT *,size_t) | | qtest_fault_resize_plain_packet | 1 | | taint.cpp:362:7:362:13 | strndup | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_release_record | 1 | | taint.cpp:362:7:362:13 | strndup | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_resize_rbuf | 1 | | taint.cpp:362:7:362:13 | strndup | (QUIC_RXFC *,size_t) | | ossl_quic_rxfc_set_max_window_size | 1 | @@ -8873,7 +8683,6 @@ signatureMatches | taint.cpp:362:7:362:13 | strndup | (SSL *,size_t) | | SSL_set_block_padding | 1 | | taint.cpp:362:7:362:13 | strndup | (SSL *,size_t) | | SSL_set_default_read_buffer_len | 1 | | taint.cpp:362:7:362:13 | strndup | (SSL *,size_t) | | SSL_set_num_tickets | 1 | -| taint.cpp:362:7:362:13 | strndup | (SSL *,size_t) | | create_a_psk | 1 | | taint.cpp:362:7:362:13 | strndup | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | | taint.cpp:362:7:362:13 | strndup | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | | taint.cpp:362:7:362:13 | strndup | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | @@ -8910,7 +8719,6 @@ signatureMatches | taint.cpp:364:7:364:13 | strdupa | (const char *) | | X509_LOOKUP_meth_new | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | a2i_IPADDRESS_NC | 0 | -| taint.cpp:364:7:364:13 | strdupa | (const char *) | | new_pkcs12_builder | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | opt_path_end | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | opt_progname | 0 | | taint.cpp:364:7:364:13 | strdupa | (const char *) | | ossl_lh_strcasehash | 0 | @@ -8947,10 +8755,6 @@ signatureMatches | taint.cpp:365:7:365:14 | strndupa | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_record_received_closing_bytes | 1 | | taint.cpp:365:7:365:14 | strndupa | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_frag_len | 1 | | taint.cpp:365:7:365:14 | strndupa | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_pipelines | 1 | -| taint.cpp:365:7:365:14 | strndupa | (QTEST_FAULT *,size_t) | | qtest_fault_resize_datagram | 1 | -| taint.cpp:365:7:365:14 | strndupa | (QTEST_FAULT *,size_t) | | qtest_fault_resize_handshake | 1 | -| taint.cpp:365:7:365:14 | strndupa | (QTEST_FAULT *,size_t) | | qtest_fault_resize_message | 1 | -| taint.cpp:365:7:365:14 | strndupa | (QTEST_FAULT *,size_t) | | qtest_fault_resize_plain_packet | 1 | | taint.cpp:365:7:365:14 | strndupa | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_release_record | 1 | | taint.cpp:365:7:365:14 | strndupa | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_resize_rbuf | 1 | | taint.cpp:365:7:365:14 | strndupa | (QUIC_RXFC *,size_t) | | ossl_quic_rxfc_set_max_window_size | 1 | @@ -8961,7 +8765,6 @@ signatureMatches | taint.cpp:365:7:365:14 | strndupa | (SSL *,size_t) | | SSL_set_block_padding | 1 | | taint.cpp:365:7:365:14 | strndupa | (SSL *,size_t) | | SSL_set_default_read_buffer_len | 1 | | taint.cpp:365:7:365:14 | strndupa | (SSL *,size_t) | | SSL_set_num_tickets | 1 | -| taint.cpp:365:7:365:14 | strndupa | (SSL *,size_t) | | create_a_psk | 1 | | taint.cpp:365:7:365:14 | strndupa | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | | taint.cpp:365:7:365:14 | strndupa | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | | taint.cpp:365:7:365:14 | strndupa | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | @@ -9014,12 +8817,9 @@ signatureMatches | taint.cpp:379:6:379:17 | test_strndup | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | ossl_tolower | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | ossl_toupper | 0 | -| taint.cpp:379:6:379:17 | test_strndup | (int) | | pulldown_test_framework | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | sqlite3_errstr | 0 | -| taint.cpp:379:6:379:17 | test_strndup | (int) | | tls1_alert_code | 0 | | taint.cpp:379:6:379:17 | test_strndup | (int) | | tls13_alert_code | 0 | -| taint.cpp:379:6:379:17 | test_strndup | (int) | | wait_until_sock_readable | 0 | | taint.cpp:387:6:387:16 | test_wcsdup | (wchar_t *) | CStringT | CStringT | 0 | | taint.cpp:397:6:397:17 | test_strdupa | (char *) | | SRP_VBASE_new | 0 | | taint.cpp:397:6:397:17 | test_strdupa | (char *) | | defossilize | 0 | @@ -9048,12 +8848,9 @@ signatureMatches | taint.cpp:409:6:409:18 | test_strndupa | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | ossl_tolower | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | ossl_toupper | 0 | -| taint.cpp:409:6:409:18 | test_strndupa | (int) | | pulldown_test_framework | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | sqlite3_errstr | 0 | -| taint.cpp:409:6:409:18 | test_strndupa | (int) | | tls1_alert_code | 0 | | taint.cpp:409:6:409:18 | test_strndupa | (int) | | tls13_alert_code | 0 | -| taint.cpp:409:6:409:18 | test_strndupa | (int) | | wait_until_sock_readable | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ASN1_tag2bit | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ASN1_tag2str | 0 | @@ -9076,12 +8873,9 @@ signatureMatches | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ossl_tolower | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | ossl_toupper | 0 | -| taint.cpp:421:2:421:9 | MyClass2 | (int) | | pulldown_test_framework | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | sqlite3_errstr | 0 | -| taint.cpp:421:2:421:9 | MyClass2 | (int) | | tls1_alert_code | 0 | | taint.cpp:421:2:421:9 | MyClass2 | (int) | | tls13_alert_code | 0 | -| taint.cpp:421:2:421:9 | MyClass2 | (int) | | wait_until_sock_readable | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ASN1_STRING_type_new | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ASN1_tag2bit | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ASN1_tag2str | 0 | @@ -9104,12 +8898,9 @@ signatureMatches | taint.cpp:422:7:422:15 | setMember | (int) | | ossl_cmp_bodytype_to_string | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ossl_tolower | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | ossl_toupper | 0 | -| taint.cpp:422:7:422:15 | setMember | (int) | | pulldown_test_framework | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | sqlite3_compileoption_get | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | sqlite3_errstr | 0 | -| taint.cpp:422:7:422:15 | setMember | (int) | | tls1_alert_code | 0 | | taint.cpp:422:7:422:15 | setMember | (int) | | tls13_alert_code | 0 | -| taint.cpp:422:7:422:15 | setMember | (int) | | wait_until_sock_readable | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | BIO_gethostbyname | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | Jim_StrDup | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | OPENSSL_LH_strhash | 0 | @@ -9121,7 +8912,6 @@ signatureMatches | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | X509_LOOKUP_meth_new | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | a2i_IPADDRESS_NC | 0 | -| taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | new_pkcs12_builder | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | opt_path_end | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | opt_progname | 0 | | taint.cpp:430:2:430:9 | MyClass3 | (const char *) | | ossl_lh_strcasehash | 0 | @@ -9137,7 +8927,6 @@ signatureMatches | taint.cpp:431:7:431:15 | setString | (const char *) | | X509_LOOKUP_meth_new | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | a2i_IPADDRESS_NC | 0 | -| taint.cpp:431:7:431:15 | setString | (const char *) | | new_pkcs12_builder | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | opt_path_end | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | opt_progname | 0 | | taint.cpp:431:7:431:15 | setString | (const char *) | | ossl_lh_strcasehash | 0 | @@ -9213,7 +9002,6 @@ signatureMatches | taint.cpp:512:7:512:12 | strtok | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | | taint.cpp:512:7:512:12 | strtok | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | | taint.cpp:512:7:512:12 | strtok | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | -| taint.cpp:512:7:512:12 | strtok | (STANZA *,const char *) | | test_start_file | 1 | | taint.cpp:512:7:512:12 | strtok | (UI *,const char *) | | UI_add_error_string | 1 | | taint.cpp:512:7:512:12 | strtok | (UI *,const char *) | | UI_add_info_string | 1 | | taint.cpp:512:7:512:12 | strtok | (UI *,const char *) | | UI_dup_error_string | 1 | @@ -9232,7 +9020,6 @@ signatureMatches | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | sqlite3_stricmp | 1 | -| taint.cpp:512:7:512:12 | strtok | (const char *,const char *) | | test_mk_file_path | 1 | | taint.cpp:512:7:512:12 | strtok | (int,const char *) | | BIO_meth_new | 1 | | taint.cpp:512:7:512:12 | strtok | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:512:7:512:12 | strtok | (size_t *,const char *) | | next_protos_parse | 1 | @@ -9612,7 +9399,6 @@ signatureMatches | taint.cpp:538:7:538:13 | mempcpy | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 2 | | taint.cpp:538:7:538:13 | mempcpy | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 2 | | taint.cpp:538:7:538:13 | mempcpy | (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 2 | -| taint.cpp:538:7:538:13 | mempcpy | (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 2 | | taint.cpp:538:7:538:13 | mempcpy | (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 2 | | taint.cpp:538:7:538:13 | mempcpy | (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 2 | | taint.cpp:538:7:538:13 | mempcpy | (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 2 | @@ -9843,7 +9629,6 @@ signatureMatches | taint.cpp:558:7:558:12 | strcat | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | | taint.cpp:558:7:558:12 | strcat | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | | taint.cpp:558:7:558:12 | strcat | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | -| taint.cpp:558:7:558:12 | strcat | (STANZA *,const char *) | | test_start_file | 1 | | taint.cpp:558:7:558:12 | strcat | (UI *,const char *) | | UI_add_error_string | 1 | | taint.cpp:558:7:558:12 | strcat | (UI *,const char *) | | UI_add_info_string | 1 | | taint.cpp:558:7:558:12 | strcat | (UI *,const char *) | | UI_dup_error_string | 1 | @@ -9862,7 +9647,6 @@ signatureMatches | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | sqlite3_stricmp | 1 | -| taint.cpp:558:7:558:12 | strcat | (const char *,const char *) | | test_mk_file_path | 1 | | taint.cpp:558:7:558:12 | strcat | (int,const char *) | | BIO_meth_new | 1 | | taint.cpp:558:7:558:12 | strcat | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:558:7:558:12 | strcat | (size_t *,const char *) | | next_protos_parse | 1 | @@ -9988,7 +9772,6 @@ signatureMatches | taint.cpp:572:6:572:20 | test__mbsncat_l | (RSA *,unsigned char *,const unsigned char *,const EVP_MD *,const EVP_MD *,int) | | RSA_padding_add_PKCS1_PSS_mgf1 | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (SSL_CONNECTION *,PACKET *,unsigned int,RAW_EXTENSION **,size_t *,int) | | tls_collect_extensions | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (SSL_CONNECTION *,int,RAW_EXTENSION *,X509 *,size_t,int) | | tls_parse_all_extensions | 5 | -| taint.cpp:572:6:572:20 | test__mbsncat_l | (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (UI *,const char *,int,char *,int,int) | | UI_add_input_string | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (UI *,const char *,int,char *,int,int) | | UI_dup_input_string | 5 | | taint.cpp:572:6:572:20 | test__mbsncat_l | (X509V3_CTX *,X509 *,X509 *,X509_REQ *,X509_CRL *,int) | | X509V3_set_ctx | 5 | @@ -10081,7 +9864,6 @@ signatureMatches | taint.cpp:589:7:589:12 | strsep | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | | taint.cpp:589:7:589:12 | strsep | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | | taint.cpp:589:7:589:12 | strsep | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | -| taint.cpp:589:7:589:12 | strsep | (STANZA *,const char *) | | test_start_file | 1 | | taint.cpp:589:7:589:12 | strsep | (UI *,const char *) | | UI_add_error_string | 1 | | taint.cpp:589:7:589:12 | strsep | (UI *,const char *) | | UI_add_info_string | 1 | | taint.cpp:589:7:589:12 | strsep | (UI *,const char *) | | UI_dup_error_string | 1 | @@ -10100,7 +9882,6 @@ signatureMatches | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | ossl_v3_name_cmp | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | sqlite3_stricmp | 1 | -| taint.cpp:589:7:589:12 | strsep | (const char *,const char *) | | test_mk_file_path | 1 | | taint.cpp:589:7:589:12 | strsep | (int,const char *) | | BIO_meth_new | 1 | | taint.cpp:589:7:589:12 | strsep | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:589:7:589:12 | strsep | (size_t *,const char *) | | next_protos_parse | 1 | @@ -10135,7 +9916,6 @@ signatureMatches | taint.cpp:602:7:602:13 | _strinc | (EVP_PKEY_CTX *,void *) | | EVP_PKEY_CTX_set_data | 1 | | taint.cpp:602:7:602:13 | _strinc | (Jim_Stack *,void *) | | Jim_StackPush | 1 | | taint.cpp:602:7:602:13 | _strinc | (OPENSSL_LHASH *,void *) | | OPENSSL_LH_insert | 1 | -| taint.cpp:602:7:602:13 | _strinc | (OSSL_CALLBACK *,void *) | | OSSL_SELF_TEST_new | 1 | | taint.cpp:602:7:602:13 | _strinc | (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_certConf_cb_arg | 1 | | taint.cpp:602:7:602:13 | _strinc | (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_http_cb_arg | 1 | | taint.cpp:602:7:602:13 | _strinc | (OSSL_CMP_CTX *,void *) | | OSSL_CMP_CTX_set_transfer_cb_arg | 1 | @@ -10206,7 +9986,6 @@ signatureMatches | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | X509_LOOKUP_meth_new | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | a2i_IPADDRESS_NC | 0 | -| taint.cpp:645:14:645:22 | _strnextc | (const char *) | | new_pkcs12_builder | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | opt_path_end | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | opt_progname | 0 | | taint.cpp:645:14:645:22 | _strnextc | (const char *) | | ossl_lh_strcasehash | 0 | @@ -10222,7 +10001,6 @@ signatureMatches | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | X509_LOOKUP_meth_new | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | a2i_IPADDRESS | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | a2i_IPADDRESS_NC | 0 | -| taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | new_pkcs12_builder | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | opt_path_end | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | opt_progname | 0 | | taint.cpp:647:6:647:19 | test__strnextc | (const char *) | | ossl_lh_strcasehash | 0 | @@ -10355,9 +10133,7 @@ signatureMatches | taint.cpp:725:10:725:15 | strtol | (QUIC_RXFC *,uint64_t,int) | | ossl_quic_rxfc_on_rx_stream_frame | 2 | | taint.cpp:725:10:725:15 | strtol | (QUIC_STREAM_ITER *,QUIC_STREAM_MAP *,int) | | ossl_quic_stream_iter_init | 2 | | taint.cpp:725:10:725:15 | strtol | (QUIC_STREAM_MAP *,uint64_t,int) | | ossl_quic_stream_map_alloc | 2 | -| taint.cpp:725:10:725:15 | strtol | (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | | taint.cpp:725:10:725:15 | strtol | (RSA *,const OSSL_PARAM[],int) | | ossl_rsa_fromdata | 2 | -| taint.cpp:725:10:725:15 | strtol | (SSL *,SSL *,int) | | create_ssl_connection | 2 | | taint.cpp:725:10:725:15 | strtol | (SSL *,const unsigned char *,int) | | SSL_use_certificate_ASN1 | 2 | | taint.cpp:725:10:725:15 | strtol | (SSL *,const void *,int) | | SSL_write | 2 | | taint.cpp:725:10:725:15 | strtol | (SSL *,void *,int) | | SSL_peek | 2 | @@ -10429,7 +10205,6 @@ signatureMatches | taint.cpp:725:10:725:15 | strtol | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_NID | 2 | | taint.cpp:725:10:725:15 | strtol | (const X509_REVOKED *,int,int) | | X509_REVOKED_get_ext_by_critical | 2 | | taint.cpp:725:10:725:15 | strtol | (const X509_SIG *,const char *,int) | | PKCS8_decrypt | 2 | -| taint.cpp:725:10:725:15 | strtol | (const char *,SD *,int) | | sd_load | 2 | | taint.cpp:725:10:725:15 | strtol | (const char *,const OSSL_PARAM *,int) | | print_param_types | 2 | | taint.cpp:725:10:725:15 | strtol | (const char *,const char *,int) | | CRYPTO_strdup | 2 | | taint.cpp:725:10:725:15 | strtol | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | @@ -10486,7 +10261,6 @@ signatureMatches | taint.cpp:735:7:735:12 | malloc | (size_t) | | ossl_param_bytes_to_blocks | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | ossl_quic_sstream_new | 0 | | taint.cpp:735:7:735:12 | malloc | (size_t) | | ssl_cert_new | 0 | -| taint.cpp:735:7:735:12 | malloc | (size_t) | | test_get_argument | 0 | | taint.cpp:735:7:735:12 | malloc | (unsigned long) | | BN_num_bits_word | 0 | | taint.cpp:735:7:735:12 | malloc | (unsigned long) | | BUF_MEM_new_ex | 0 | | taint.cpp:736:7:736:13 | realloc | (ASN1_PCTX *,unsigned long) | | ASN1_PCTX_set_cert_flags | 1 | @@ -10521,10 +10295,6 @@ signatureMatches | taint.cpp:736:7:736:13 | realloc | (OSSL_QUIC_TX_PACKETISER *,size_t) | | ossl_quic_tx_packetiser_record_received_closing_bytes | 1 | | taint.cpp:736:7:736:13 | realloc | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_frag_len | 1 | | taint.cpp:736:7:736:13 | realloc | (OSSL_RECORD_LAYER *,size_t) | | tls_set_max_pipelines | 1 | -| taint.cpp:736:7:736:13 | realloc | (QTEST_FAULT *,size_t) | | qtest_fault_resize_datagram | 1 | -| taint.cpp:736:7:736:13 | realloc | (QTEST_FAULT *,size_t) | | qtest_fault_resize_handshake | 1 | -| taint.cpp:736:7:736:13 | realloc | (QTEST_FAULT *,size_t) | | qtest_fault_resize_message | 1 | -| taint.cpp:736:7:736:13 | realloc | (QTEST_FAULT *,size_t) | | qtest_fault_resize_plain_packet | 1 | | taint.cpp:736:7:736:13 | realloc | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_release_record | 1 | | taint.cpp:736:7:736:13 | realloc | (QUIC_RSTREAM *,size_t) | | ossl_quic_rstream_resize_rbuf | 1 | | taint.cpp:736:7:736:13 | realloc | (QUIC_RXFC *,size_t) | | ossl_quic_rxfc_set_max_window_size | 1 | @@ -10535,7 +10305,6 @@ signatureMatches | taint.cpp:736:7:736:13 | realloc | (SSL *,size_t) | | SSL_set_block_padding | 1 | | taint.cpp:736:7:736:13 | realloc | (SSL *,size_t) | | SSL_set_default_read_buffer_len | 1 | | taint.cpp:736:7:736:13 | realloc | (SSL *,size_t) | | SSL_set_num_tickets | 1 | -| taint.cpp:736:7:736:13 | realloc | (SSL *,size_t) | | create_a_psk | 1 | | taint.cpp:736:7:736:13 | realloc | (SSL *,unsigned long) | | SSL_dane_clear_flags | 1 | | taint.cpp:736:7:736:13 | realloc | (SSL *,unsigned long) | | SSL_dane_set_flags | 1 | | taint.cpp:736:7:736:13 | realloc | (SSL_CONNECTION *,unsigned long) | | tls1_check_ec_tmp_key | 1 | @@ -10643,7 +10412,6 @@ signatureMatches | taint.cpp:782:7:782:11 | fopen | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | | taint.cpp:782:7:782:11 | fopen | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | | taint.cpp:782:7:782:11 | fopen | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | -| taint.cpp:782:7:782:11 | fopen | (STANZA *,const char *) | | test_start_file | 1 | | taint.cpp:782:7:782:11 | fopen | (UI *,const char *) | | UI_add_error_string | 1 | | taint.cpp:782:7:782:11 | fopen | (UI *,const char *) | | UI_add_info_string | 1 | | taint.cpp:782:7:782:11 | fopen | (UI *,const char *) | | UI_dup_error_string | 1 | @@ -10671,8 +10439,6 @@ signatureMatches | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | sqlite3_stricmp | 0 | | taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | sqlite3_stricmp | 1 | -| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | test_mk_file_path | 0 | -| taint.cpp:782:7:782:11 | fopen | (const char *,const char *) | | test_mk_file_path | 1 | | taint.cpp:782:7:782:11 | fopen | (int,const char *) | | BIO_meth_new | 1 | | taint.cpp:782:7:782:11 | fopen | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:782:7:782:11 | fopen | (size_t *,const char *) | | next_protos_parse | 1 | @@ -10700,14 +10466,11 @@ signatureMatches | taint.cpp:783:5:783:11 | fopen_s | (OSSL_CMP_MSG *,OSSL_LIB_CTX *,const char *) | | ossl_cmp_msg_set0_libctx | 2 | | taint.cpp:783:5:783:11 | fopen_s | (OSSL_DECODER *,void *,const char *) | | ossl_decoder_instance_new_forprov | 2 | | taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,EVP_PKEY *,const char *) | | EVP_PKEY_CTX_new_from_pkey | 2 | -| taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,SSL_CTX *,const char *) | | ssl_ctx_add_large_cert_chain | 2 | | taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,const char *,const char *) | | EVP_PKEY_CTX_new_from_name | 1 | | taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,const char *,const char *) | | EVP_PKEY_CTX_new_from_name | 2 | | taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,const char *,const char *) | | ossl_slh_dsa_key_new | 1 | | taint.cpp:783:5:783:11 | fopen_s | (OSSL_LIB_CTX *,const char *,const char *) | | ossl_slh_dsa_key_new | 2 | | taint.cpp:783:5:783:11 | fopen_s | (OSSL_NAMEMAP *,int,const char *) | | ossl_namemap_add_name | 2 | -| taint.cpp:783:5:783:11 | fopen_s | (OSSL_SELF_TEST *,const char *,const char *) | | OSSL_SELF_TEST_onbegin | 1 | -| taint.cpp:783:5:783:11 | fopen_s | (OSSL_SELF_TEST *,const char *,const char *) | | OSSL_SELF_TEST_onbegin | 2 | | taint.cpp:783:5:783:11 | fopen_s | (PROV_CTX *,const char *,const char *) | | ossl_prov_ctx_get_param | 1 | | taint.cpp:783:5:783:11 | fopen_s | (PROV_CTX *,const char *,const char *) | | ossl_prov_ctx_get_param | 2 | | taint.cpp:783:5:783:11 | fopen_s | (SRP_user_pwd *,const char *,const char *) | | SRP_user_pwd_set1_ids | 1 | @@ -11152,7 +10915,6 @@ signatureMatches | taint.cpp:822:6:822:19 | take_const_ptr | (SSL_CTX *,const char *) | | SSL_CTX_use_psk_identity_hint | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (SSL_CTX *,const char *) | | ossl_quic_set_diag_title | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (SSL_SESSION *,const char *) | | SSL_SESSION_set1_hostname | 1 | -| taint.cpp:822:6:822:19 | take_const_ptr | (STANZA *,const char *) | | test_start_file | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (UI *,const char *) | | UI_add_error_string | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (UI *,const char *) | | UI_add_info_string | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (UI *,const char *) | | UI_dup_error_string | 1 | @@ -11180,8 +10942,6 @@ signatureMatches | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | sqlite3_strglob | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | sqlite3_stricmp | 0 | | taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | sqlite3_stricmp | 1 | -| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | test_mk_file_path | 0 | -| taint.cpp:822:6:822:19 | take_const_ptr | (const char *,const char *) | | test_mk_file_path | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (int,const char *) | | BIO_meth_new | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (lemon *,const char *) | | file_makename | 1 | | taint.cpp:822:6:822:19 | take_const_ptr | (size_t *,const char *) | | next_protos_parse | 1 | @@ -11217,12 +10977,9 @@ signatureMatches | vector.cpp:13:6:13:9 | sink | (int) | | ossl_cmp_bodytype_to_string | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | ossl_tolower | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | ossl_toupper | 0 | -| vector.cpp:13:6:13:9 | sink | (int) | | pulldown_test_framework | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | sqlite3_compileoption_get | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | sqlite3_errstr | 0 | -| vector.cpp:13:6:13:9 | sink | (int) | | tls1_alert_code | 0 | | vector.cpp:13:6:13:9 | sink | (int) | | tls13_alert_code | 0 | -| vector.cpp:13:6:13:9 | sink | (int) | | wait_until_sock_readable | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ASN1_STRING_type_new | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ASN1_tag2bit | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ASN1_tag2str | 0 | @@ -11245,12 +11002,9 @@ signatureMatches | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ossl_cmp_bodytype_to_string | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ossl_tolower | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | ossl_toupper | 0 | -| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | pulldown_test_framework | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | sqlite3_compileoption_get | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | sqlite3_errstr | 0 | -| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | tls1_alert_code | 0 | | vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | tls13_alert_code | 0 | -| vector.cpp:16:6:16:37 | test_range_based_for_loop_vector | (int) | | wait_until_sock_readable | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ASN1_STRING_type_new | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ASN1_tag2bit | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ASN1_tag2str | 0 | @@ -11273,12 +11027,9 @@ signatureMatches | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ossl_cmp_bodytype_to_string | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ossl_tolower | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | ossl_toupper | 0 | -| vector.cpp:37:6:37:23 | test_element_taint | (int) | | pulldown_test_framework | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | sqlite3_compileoption_get | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | sqlite3_errstr | 0 | -| vector.cpp:37:6:37:23 | test_element_taint | (int) | | tls1_alert_code | 0 | | vector.cpp:37:6:37:23 | test_element_taint | (int) | | tls13_alert_code | 0 | -| vector.cpp:37:6:37:23 | test_element_taint | (int) | | wait_until_sock_readable | 0 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (ASN1_STRING *,int) | | ASN1_STRING_length_set | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (ASYNC_WAIT_CTX *,int) | | ASYNC_WAIT_CTX_set_status | 1 | | vector.cpp:333:6:333:35 | vector_iterator_assign_wrapper | (BIGNUM *,int) | | BN_clear_bit | 1 | @@ -11590,12 +11341,9 @@ signatureMatches | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ossl_cmp_bodytype_to_string | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ossl_tolower | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | ossl_toupper | 0 | -| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | pulldown_test_framework | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | sqlite3_compileoption_get | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | sqlite3_errstr | 0 | -| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | tls1_alert_code | 0 | | vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | tls13_alert_code | 0 | -| vector.cpp:337:6:337:32 | test_vector_output_iterator | (int) | | wait_until_sock_readable | 0 | | vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | SRP_VBASE_new | 0 | | vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | defossilize | 0 | | vector.cpp:417:6:417:25 | test_vector_inserter | (char *) | | make_uppercase | 0 | @@ -11666,7 +11414,6 @@ signatureMatches | vector.cpp:454:7:454:12 | memcpy | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 2 | | vector.cpp:454:7:454:12 | memcpy | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 2 | | vector.cpp:454:7:454:12 | memcpy | (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 2 | -| vector.cpp:454:7:454:12 | memcpy | (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 2 | | vector.cpp:454:7:454:12 | memcpy | (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 2 | | vector.cpp:454:7:454:12 | memcpy | (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 2 | | vector.cpp:454:7:454:12 | memcpy | (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 2 | @@ -11827,7 +11574,6 @@ signatureMatches | zmq.cpp:17:6:17:13 | test_zmc | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_generic_initiv | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (PROV_CIPHER_CTX *,const unsigned char *,size_t) | | ossl_cipher_hw_tdes_ede3_initkey | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (PROV_GCM_CTX *,const unsigned char *,size_t) | | ossl_gcm_aad_update | 2 | -| zmq.cpp:17:6:17:13 | test_zmc | (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (QUIC_PN,unsigned char *,size_t) | | ossl_quic_wire_encode_pkt_hdr_pn | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (QUIC_RXFC *,OSSL_STATM *,size_t) | | ossl_quic_rstream_new | 2 | | zmq.cpp:17:6:17:13 | test_zmc | (QUIC_TLS *,const unsigned char *,size_t) | | ossl_quic_tls_set_transport_params | 2 | @@ -13439,11 +13185,6 @@ getSignatureParameterName | (BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int) | | X509V3_extensions_print | 2 | const stack_st_X509_EXTENSION * | | (BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int) | | X509V3_extensions_print | 3 | unsigned long | | (BIO *,const char *,const stack_st_X509_EXTENSION *,unsigned long,int) | | X509V3_extensions_print | 4 | int | -| (BIO *,const char *,int,int,int) | | mempacket_test_inject | 0 | BIO * | -| (BIO *,const char *,int,int,int) | | mempacket_test_inject | 1 | const char * | -| (BIO *,const char *,int,int,int) | | mempacket_test_inject | 2 | int | -| (BIO *,const char *,int,int,int) | | mempacket_test_inject | 3 | int | -| (BIO *,const char *,int,int,int) | | mempacket_test_inject | 4 | int | | (BIO *,const char *,va_list) | | BIO_vprintf | 0 | BIO * | | (BIO *,const char *,va_list) | | BIO_vprintf | 1 | const char * | | (BIO *,const char *,va_list) | | BIO_vprintf | 2 | va_list | @@ -13599,8 +13340,6 @@ getSignatureParameterName | (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_write | 1 | ..(*)(..) | | (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_write_ex | 0 | BIO_METHOD * | | (BIO_METHOD *,..(*)(..)) | | BIO_meth_set_write_ex | 1 | ..(*)(..) | -| (BIO_MSG *,BIO_MSG *) | | bio_msg_copy | 0 | BIO_MSG * | -| (BIO_MSG *,BIO_MSG *) | | bio_msg_copy | 1 | BIO_MSG * | | (BLAKE2B_CTX *,const BLAKE2B_PARAM *) | | ossl_blake2b_init | 0 | BLAKE2B_CTX * | | (BLAKE2B_CTX *,const BLAKE2B_PARAM *) | | ossl_blake2b_init | 1 | const BLAKE2B_PARAM * | | (BLAKE2B_CTX *,const BLAKE2B_PARAM *,const void *) | | ossl_blake2b_init_key | 0 | BLAKE2B_CTX * | @@ -15361,8 +15100,6 @@ getSignatureParameterName | (EVP_RAND *,EVP_RAND_CTX *) | | EVP_RAND_CTX_new | 1 | EVP_RAND_CTX * | | (EVP_RAND_CTX *) | | EVP_RAND_CTX_get0_rand | 0 | EVP_RAND_CTX * | | (EVP_RAND_CTX *) | | evp_rand_can_seed | 0 | EVP_RAND_CTX * | -| (EVP_RAND_CTX *,..(*)(..)) | | fake_rand_set_callback | 0 | EVP_RAND_CTX * | -| (EVP_RAND_CTX *,..(*)(..)) | | fake_rand_set_callback | 1 | ..(*)(..) | | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 0 | EVP_RAND_CTX * | | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 1 | unsigned char * | | (EVP_RAND_CTX *,unsigned char *,size_t) | | EVP_RAND_nonce | 2 | size_t | @@ -16727,8 +16464,6 @@ getSignatureParameterName | (OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long) | | d2i_OSSL_BASIC_ATTR_CONSTRAINTS | 0 | OSSL_BASIC_ATTR_CONSTRAINTS ** | | (OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long) | | d2i_OSSL_BASIC_ATTR_CONSTRAINTS | 1 | const unsigned char ** | | (OSSL_BASIC_ATTR_CONSTRAINTS **,const unsigned char **,long) | | d2i_OSSL_BASIC_ATTR_CONSTRAINTS | 2 | long | -| (OSSL_CALLBACK *,void *) | | OSSL_SELF_TEST_new | 0 | OSSL_CALLBACK * | -| (OSSL_CALLBACK *,void *) | | OSSL_SELF_TEST_new | 1 | void * | | (OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ATAV_set0 | 0 | OSSL_CMP_ATAV * | | (OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ATAV_set0 | 1 | ASN1_OBJECT * | | (OSSL_CMP_ATAV *,ASN1_OBJECT *,ASN1_TYPE *) | | OSSL_CMP_ATAV_set0 | 2 | ASN1_TYPE * | @@ -17400,11 +17135,6 @@ getSignatureParameterName | (OSSL_LIB_CTX *) | | RAND_get0_primary | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *) | | RAND_get0_private | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *) | | RAND_get0_public | 0 | OSSL_LIB_CTX * | -| (OSSL_LIB_CTX *) | | SSL_TEST_CTX_new | 0 | OSSL_LIB_CTX * | -| (OSSL_LIB_CTX *) | | fake_cipher_start | 0 | OSSL_LIB_CTX * | -| (OSSL_LIB_CTX *) | | fake_pipeline_start | 0 | OSSL_LIB_CTX * | -| (OSSL_LIB_CTX *) | | fake_rand_start | 0 | OSSL_LIB_CTX * | -| (OSSL_LIB_CTX *) | | fake_rsa_start | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *) | | ossl_dh_new_ex | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *) | | ossl_do_ex_data_init | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *) | | ossl_dsa_new | 0 | OSSL_LIB_CTX * | @@ -17418,16 +17148,6 @@ getSignatureParameterName | (OSSL_LIB_CTX *) | | ossl_provider_store_new | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *) | | ossl_rand_get0_seed_noncreating | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *) | | ossl_rsa_new_with_ctx | 0 | OSSL_LIB_CTX * | -| (OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *) | | test_arg_libctx | 0 | OSSL_LIB_CTX ** | -| (OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *) | | test_arg_libctx | 1 | OSSL_PROVIDER ** | -| (OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *) | | test_arg_libctx | 2 | OSSL_PROVIDER ** | -| (OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *) | | test_arg_libctx | 3 | int | -| (OSSL_LIB_CTX **,OSSL_PROVIDER **,OSSL_PROVIDER **,int,const char *) | | test_arg_libctx | 4 | const char * | -| (OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *) | | test_get_libctx | 0 | OSSL_LIB_CTX ** | -| (OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *) | | test_get_libctx | 1 | OSSL_PROVIDER ** | -| (OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *) | | test_get_libctx | 2 | const char * | -| (OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *) | | test_get_libctx | 3 | OSSL_PROVIDER ** | -| (OSSL_LIB_CTX **,OSSL_PROVIDER **,const char *,OSSL_PROVIDER **,const char *) | | test_get_libctx | 4 | const char * | | (OSSL_LIB_CTX **,const char **,const X509_PUBKEY *) | | ossl_x509_PUBKEY_get0_libctx | 0 | OSSL_LIB_CTX ** | | (OSSL_LIB_CTX **,const char **,const X509_PUBKEY *) | | ossl_x509_PUBKEY_get0_libctx | 1 | const char ** | | (OSSL_LIB_CTX **,const char **,const X509_PUBKEY *) | | ossl_x509_PUBKEY_get0_libctx | 2 | const X509_PUBKEY * | @@ -17479,9 +17199,6 @@ getSignatureParameterName | (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_generate | 4 | size_t | | (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_generate | 5 | int * | | (OSSL_LIB_CTX *,FFC_PARAMS *,int,size_t,size_t,int *,BN_GENCB *) | | ossl_ffc_params_FIPS186_4_generate | 6 | BN_GENCB * | -| (OSSL_LIB_CTX *,OSSL_CALLBACK **,void **) | | OSSL_SELF_TEST_get_callback | 0 | OSSL_LIB_CTX * | -| (OSSL_LIB_CTX *,OSSL_CALLBACK **,void **) | | OSSL_SELF_TEST_get_callback | 1 | OSSL_CALLBACK ** | -| (OSSL_LIB_CTX *,OSSL_CALLBACK **,void **) | | OSSL_SELF_TEST_get_callback | 2 | void ** | | (OSSL_LIB_CTX *,OSSL_CORE_BIO *) | | BIO_new_from_core_bio | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *,OSSL_CORE_BIO *) | | BIO_new_from_core_bio | 1 | OSSL_CORE_BIO * | | (OSSL_LIB_CTX *,OSSL_INDICATOR_CALLBACK **) | | OSSL_INDICATOR_get_callback | 0 | OSSL_LIB_CTX * | @@ -17492,19 +17209,6 @@ getSignatureParameterName | (OSSL_LIB_CTX *,OSSL_PROPERTY_IDX) | | ossl_property_value_str | 1 | OSSL_PROPERTY_IDX | | (OSSL_LIB_CTX *,OSSL_PROVIDER_INFO *) | | ossl_provider_info_add_to_store | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *,OSSL_PROVIDER_INFO *) | | ossl_provider_info_add_to_store | 1 | OSSL_PROVIDER_INFO * | -| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 0 | OSSL_LIB_CTX * | -| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 1 | SSL_CTX * | -| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 2 | SSL_CTX * | -| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 3 | char * | -| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 4 | char * | -| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 5 | int | -| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 6 | QUIC_TSERVER ** | -| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 7 | SSL ** | -| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 8 | QTEST_FAULT ** | -| (OSSL_LIB_CTX *,SSL_CTX *,SSL_CTX *,char *,char *,int,QUIC_TSERVER **,SSL **,QTEST_FAULT **,BIO **) | | qtest_create_quic_objects | 9 | BIO ** | -| (OSSL_LIB_CTX *,SSL_CTX *,const char *) | | ssl_ctx_add_large_cert_chain | 0 | OSSL_LIB_CTX * | -| (OSSL_LIB_CTX *,SSL_CTX *,const char *) | | ssl_ctx_add_large_cert_chain | 1 | SSL_CTX * | -| (OSSL_LIB_CTX *,SSL_CTX *,const char *) | | ssl_ctx_add_large_cert_chain | 2 | const char * | | (OSSL_LIB_CTX *,const BIO_METHOD *) | | BIO_new_ex | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *,const BIO_METHOD *) | | BIO_new_ex | 1 | const BIO_METHOD * | | (OSSL_LIB_CTX *,const FFC_PARAMS *,int,int *) | | ossl_ffc_params_full_validate | 0 | OSSL_LIB_CTX * | @@ -17536,15 +17240,6 @@ getSignatureParameterName | (OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t) | | ossl_property_list_to_string | 1 | const OSSL_PROPERTY_LIST * | | (OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t) | | ossl_property_list_to_string | 2 | char * | | (OSSL_LIB_CTX *,const OSSL_PROPERTY_LIST *,char *,size_t) | | ossl_property_list_to_string | 3 | size_t | -| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 0 | OSSL_LIB_CTX * | -| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 1 | const SSL_METHOD * | -| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 2 | const SSL_METHOD * | -| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 3 | int | -| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 4 | int | -| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 5 | SSL_CTX ** | -| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 6 | SSL_CTX ** | -| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 7 | char * | -| (OSSL_LIB_CTX *,const SSL_METHOD *,const SSL_METHOD *,int,int,SSL_CTX **,SSL_CTX **,char *,char *) | | create_ssl_ctx_pair | 8 | char * | | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 0 | OSSL_LIB_CTX * | | (OSSL_LIB_CTX *,const char *) | | CMS_ContentInfo_new_ex | 1 | const char * | | (OSSL_LIB_CTX *,const char *) | | CTLOG_STORE_new_ex | 0 | OSSL_LIB_CTX * | @@ -18221,11 +17916,6 @@ getSignatureParameterName | (OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX | 0 | OSSL_ROLE_SPEC_CERT_ID_SYNTAX ** | | (OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX | 1 | const unsigned char ** | | (OSSL_ROLE_SPEC_CERT_ID_SYNTAX **,const unsigned char **,long) | | d2i_OSSL_ROLE_SPEC_CERT_ID_SYNTAX | 2 | long | -| (OSSL_SELF_TEST *,const char *,const char *) | | OSSL_SELF_TEST_onbegin | 0 | OSSL_SELF_TEST * | -| (OSSL_SELF_TEST *,const char *,const char *) | | OSSL_SELF_TEST_onbegin | 1 | const char * | -| (OSSL_SELF_TEST *,const char *,const char *) | | OSSL_SELF_TEST_onbegin | 2 | const char * | -| (OSSL_SELF_TEST *,unsigned char *) | | OSSL_SELF_TEST_oncorrupt_byte | 0 | OSSL_SELF_TEST * | -| (OSSL_SELF_TEST *,unsigned char *) | | OSSL_SELF_TEST_oncorrupt_byte | 1 | unsigned char * | | (OSSL_STATM *,OSSL_RTT_INFO *) | | ossl_statm_get_rtt_info | 0 | OSSL_STATM * | | (OSSL_STATM *,OSSL_RTT_INFO *) | | ossl_statm_get_rtt_info | 1 | OSSL_RTT_INFO * | | (OSSL_STATM *,OSSL_TIME,OSSL_TIME) | | ossl_statm_update_rtt | 0 | OSSL_STATM * | @@ -18583,29 +18273,6 @@ getSignatureParameterName | (PKCS12_BAGS **,const unsigned char **,long) | | d2i_PKCS12_BAGS | 0 | PKCS12_BAGS ** | | (PKCS12_BAGS **,const unsigned char **,long) | | d2i_PKCS12_BAGS | 1 | const unsigned char ** | | (PKCS12_BAGS **,const unsigned char **,long) | | d2i_PKCS12_BAGS | 2 | long | -| (PKCS12_BUILDER *) | | end_pkcs12_builder | 0 | PKCS12_BUILDER * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | add_certbag | 0 | PKCS12_BUILDER * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | add_certbag | 1 | const unsigned char * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | add_certbag | 2 | int | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | add_certbag | 3 | const PKCS12_ATTR * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | check_certbag | 0 | PKCS12_BUILDER * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | check_certbag | 1 | const unsigned char * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | check_certbag | 2 | int | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *) | | check_certbag | 3 | const PKCS12_ATTR * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | add_keybag | 0 | PKCS12_BUILDER * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | add_keybag | 1 | const unsigned char * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | add_keybag | 2 | int | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | add_keybag | 3 | const PKCS12_ATTR * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | add_keybag | 4 | const PKCS12_ENC * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | check_keybag | 0 | PKCS12_BUILDER * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | check_keybag | 1 | const unsigned char * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | check_keybag | 2 | int | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | check_keybag | 3 | const PKCS12_ATTR * | -| (PKCS12_BUILDER *,const unsigned char *,int,const PKCS12_ATTR *,const PKCS12_ENC *) | | check_keybag | 4 | const PKCS12_ENC * | -| (PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *) | | add_secretbag | 0 | PKCS12_BUILDER * | -| (PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *) | | add_secretbag | 1 | int | -| (PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *) | | add_secretbag | 2 | const char * | -| (PKCS12_BUILDER *,int,const char *,const PKCS12_ATTR *) | | add_secretbag | 3 | const PKCS12_ATTR * | | (PKCS12_MAC_DATA *) | | PKCS12_MAC_DATA_free | 0 | PKCS12_MAC_DATA * | | (PKCS12_MAC_DATA **,const unsigned char **,long) | | d2i_PKCS12_MAC_DATA | 0 | PKCS12_MAC_DATA ** | | (PKCS12_MAC_DATA **,const unsigned char **,long) | | d2i_PKCS12_MAC_DATA | 1 | const unsigned char ** | @@ -18818,37 +18485,6 @@ getSignatureParameterName | (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 0 | QLOG * | | (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 1 | uint32_t | | (QLOG *,uint32_t,int) | | ossl_qlog_set_event_type_enabled | 2 | int | -| (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 1 | const unsigned char * | -| (QTEST_FAULT *,const unsigned char *,size_t) | | qtest_fault_prepend_frame | 2 | size_t | -| (QTEST_FAULT *,qtest_fault_on_datagram_cb,void *) | | qtest_fault_set_datagram_listener | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,qtest_fault_on_datagram_cb,void *) | | qtest_fault_set_datagram_listener | 1 | qtest_fault_on_datagram_cb | -| (QTEST_FAULT *,qtest_fault_on_datagram_cb,void *) | | qtest_fault_set_datagram_listener | 2 | void * | -| (QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *) | | qtest_fault_set_hand_enc_ext_listener | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *) | | qtest_fault_set_hand_enc_ext_listener | 1 | qtest_fault_on_enc_ext_cb | -| (QTEST_FAULT *,qtest_fault_on_enc_ext_cb,void *) | | qtest_fault_set_hand_enc_ext_listener | 2 | void * | -| (QTEST_FAULT *,qtest_fault_on_handshake_cb,void *) | | qtest_fault_set_handshake_listener | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,qtest_fault_on_handshake_cb,void *) | | qtest_fault_set_handshake_listener | 1 | qtest_fault_on_handshake_cb | -| (QTEST_FAULT *,qtest_fault_on_handshake_cb,void *) | | qtest_fault_set_handshake_listener | 2 | void * | -| (QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *) | | qtest_fault_set_packet_cipher_listener | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *) | | qtest_fault_set_packet_cipher_listener | 1 | qtest_fault_on_packet_cipher_cb | -| (QTEST_FAULT *,qtest_fault_on_packet_cipher_cb,void *) | | qtest_fault_set_packet_cipher_listener | 2 | void * | -| (QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *) | | qtest_fault_set_packet_plain_listener | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *) | | qtest_fault_set_packet_plain_listener | 1 | qtest_fault_on_packet_plain_cb | -| (QTEST_FAULT *,qtest_fault_on_packet_plain_cb,void *) | | qtest_fault_set_packet_plain_listener | 2 | void * | -| (QTEST_FAULT *,size_t) | | qtest_fault_resize_datagram | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,size_t) | | qtest_fault_resize_datagram | 1 | size_t | -| (QTEST_FAULT *,size_t) | | qtest_fault_resize_handshake | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,size_t) | | qtest_fault_resize_handshake | 1 | size_t | -| (QTEST_FAULT *,size_t) | | qtest_fault_resize_message | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,size_t) | | qtest_fault_resize_message | 1 | size_t | -| (QTEST_FAULT *,size_t) | | qtest_fault_resize_plain_packet | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,size_t) | | qtest_fault_resize_plain_packet | 1 | size_t | -| (QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *) | | qtest_fault_delete_extension | 0 | QTEST_FAULT * | -| (QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *) | | qtest_fault_delete_extension | 1 | unsigned int | -| (QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *) | | qtest_fault_delete_extension | 2 | unsigned char * | -| (QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *) | | qtest_fault_delete_extension | 3 | size_t * | -| (QTEST_FAULT *,unsigned int,unsigned char *,size_t *,BUF_MEM *) | | qtest_fault_delete_extension | 4 | BUF_MEM * | | (QUIC_CFQ *,QUIC_CFQ_ITEM *) | | ossl_quic_cfq_mark_tx | 0 | QUIC_CFQ * | | (QUIC_CFQ *,QUIC_CFQ_ITEM *) | | ossl_quic_cfq_mark_tx | 1 | QUIC_CFQ_ITEM * | | (QUIC_CFQ *,QUIC_CFQ_ITEM *) | | ossl_quic_cfq_release | 0 | QUIC_CFQ * | @@ -19187,17 +18823,9 @@ getSignatureParameterName | (QUIC_TSERVER *) | | ossl_quic_tserver_get0_rbio | 0 | QUIC_TSERVER * | | (QUIC_TSERVER *) | | ossl_quic_tserver_get0_ssl_ctx | 0 | QUIC_TSERVER * | | (QUIC_TSERVER *) | | ossl_quic_tserver_get_channel | 0 | QUIC_TSERVER * | -| (QUIC_TSERVER *) | | qtest_create_injector | 0 | QUIC_TSERVER * | | (QUIC_TSERVER *,..(*)(..),void *) | | ossl_quic_tserver_set_msg_callback | 0 | QUIC_TSERVER * | | (QUIC_TSERVER *,..(*)(..),void *) | | ossl_quic_tserver_set_msg_callback | 1 | ..(*)(..) | | (QUIC_TSERVER *,..(*)(..),void *) | | ossl_quic_tserver_set_msg_callback | 2 | void * | -| (QUIC_TSERVER *,SSL *) | | qtest_create_quic_connection | 0 | QUIC_TSERVER * | -| (QUIC_TSERVER *,SSL *) | | qtest_create_quic_connection | 1 | SSL * | -| (QUIC_TSERVER *,SSL *) | | qtest_shutdown | 0 | QUIC_TSERVER * | -| (QUIC_TSERVER *,SSL *) | | qtest_shutdown | 1 | SSL * | -| (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 0 | QUIC_TSERVER * | -| (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 1 | SSL * | -| (QUIC_TSERVER *,SSL *,int) | | qtest_create_quic_connection_ex | 2 | int | | (QUIC_TSERVER *,SSL_psk_find_session_cb_func) | | ossl_quic_tserver_set_psk_find_session_cb | 0 | QUIC_TSERVER * | | (QUIC_TSERVER *,SSL_psk_find_session_cb_func) | | ossl_quic_tserver_set_psk_find_session_cb | 1 | SSL_psk_find_session_cb_func | | (QUIC_TSERVER *,const QUIC_CONN_ID *) | | ossl_quic_tserver_set_new_local_cid | 0 | QUIC_TSERVER * | @@ -19507,9 +19135,6 @@ getSignatureParameterName | (SCT_CTX *,X509_PUBKEY *) | | SCT_CTX_set1_pubkey | 1 | X509_PUBKEY * | | (SCT_CTX *,uint64_t) | | SCT_CTX_set_time | 0 | SCT_CTX * | | (SCT_CTX *,uint64_t) | | SCT_CTX_set_time | 1 | uint64_t | -| (SD,const char *,SD_SYM *) | | sd_sym | 0 | SD | -| (SD,const char *,SD_SYM *) | | sd_sym | 1 | const char * | -| (SD,const char *,SD_SYM *) | | sd_sym | 2 | SD_SYM * | | (SFRAME_LIST *) | | ossl_sframe_list_is_head_locked | 0 | SFRAME_LIST * | | (SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int) | | ossl_sframe_list_insert | 0 | SFRAME_LIST * | | (SFRAME_LIST *,UINT_RANGE *,OSSL_QRX_PKT *,const unsigned char *,int) | | ossl_sframe_list_insert | 1 | UINT_RANGE * | @@ -19686,27 +19311,6 @@ getSignatureParameterName | (SSL *,EVP_PKEY *) | | SSL_set0_tmp_dh_pkey | 1 | EVP_PKEY * | | (SSL *,GEN_SESSION_CB) | | SSL_set_generate_session_id | 0 | SSL * | | (SSL *,GEN_SESSION_CB) | | SSL_set_generate_session_id | 1 | GEN_SESSION_CB | -| (SSL *,SSL *) | | shutdown_ssl_connection | 0 | SSL * | -| (SSL *,SSL *) | | shutdown_ssl_connection | 1 | SSL * | -| (SSL *,SSL *,int) | | create_ssl_connection | 0 | SSL * | -| (SSL *,SSL *,int) | | create_ssl_connection | 1 | SSL * | -| (SSL *,SSL *,int) | | create_ssl_connection | 2 | int | -| (SSL *,SSL *,int,int,int) | | create_bare_ssl_connection | 0 | SSL * | -| (SSL *,SSL *,int,int,int) | | create_bare_ssl_connection | 1 | SSL * | -| (SSL *,SSL *,int,int,int) | | create_bare_ssl_connection | 2 | int | -| (SSL *,SSL *,int,int,int) | | create_bare_ssl_connection | 3 | int | -| (SSL *,SSL *,int,int,int) | | create_bare_ssl_connection | 4 | int | -| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 0 | SSL * | -| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 1 | SSL * | -| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 2 | int | -| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 3 | long | -| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 4 | clock_t * | -| (SSL *,SSL *,int,long,clock_t *,clock_t *) | | doit_localhost | 5 | clock_t * | -| (SSL *,SSL *,long,clock_t *,clock_t *) | | doit_biopair | 0 | SSL * | -| (SSL *,SSL *,long,clock_t *,clock_t *) | | doit_biopair | 1 | SSL * | -| (SSL *,SSL *,long,clock_t *,clock_t *) | | doit_biopair | 2 | long | -| (SSL *,SSL *,long,clock_t *,clock_t *) | | doit_biopair | 3 | clock_t * | -| (SSL *,SSL *,long,clock_t *,clock_t *) | | doit_biopair | 4 | clock_t * | | (SSL *,SSL_CTX *) | | SSL_set_SSL_CTX | 0 | SSL * | | (SSL *,SSL_CTX *) | | SSL_set_SSL_CTX | 1 | SSL_CTX * | | (SSL *,SSL_CTX *,const SSL_METHOD *,int) | | ossl_ssl_init | 0 | SSL * | @@ -19919,8 +19523,6 @@ getSignatureParameterName | (SSL *,size_t) | | SSL_set_default_read_buffer_len | 1 | size_t | | (SSL *,size_t) | | SSL_set_num_tickets | 0 | SSL * | | (SSL *,size_t) | | SSL_set_num_tickets | 1 | size_t | -| (SSL *,size_t) | | create_a_psk | 0 | SSL * | -| (SSL *,size_t) | | create_a_psk | 1 | size_t | | (SSL *,size_t,size_t) | | SSL_set_block_padding_ex | 0 | SSL * | | (SSL *,size_t,size_t) | | SSL_set_block_padding_ex | 1 | size_t | | (SSL *,size_t,size_t) | | SSL_set_block_padding_ex | 2 | size_t | @@ -20532,31 +20134,6 @@ getSignatureParameterName | (SSL_CTX *,SSL *,const SSL_METHOD *) | | ossl_ssl_connection_new_int | 0 | SSL_CTX * | | (SSL_CTX *,SSL *,const SSL_METHOD *) | | ossl_ssl_connection_new_int | 1 | SSL * | | (SSL_CTX *,SSL *,const SSL_METHOD *) | | ossl_ssl_connection_new_int | 2 | const SSL_METHOD * | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 0 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 1 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 2 | SSL ** | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 3 | SSL ** | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 4 | BIO * | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,BIO *,BIO *) | | create_ssl_objects | 5 | BIO * | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 0 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 1 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 2 | SSL ** | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 3 | SSL ** | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 4 | int | -| (SSL_CTX *,SSL_CTX *,SSL **,SSL **,int,int) | | create_ssl_objects2 | 5 | int | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 0 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 1 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 2 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 3 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 4 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_CTX *) | | do_handshake | 5 | const SSL_TEST_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 0 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 1 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 2 | SSL_CTX * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 3 | const SSL_TEST_EXTRA_CONF * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 4 | CTX_DATA * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 5 | CTX_DATA * | -| (SSL_CTX *,SSL_CTX *,SSL_CTX *,const SSL_TEST_EXTRA_CONF *,CTX_DATA *,CTX_DATA *,CTX_DATA *) | | configure_handshake_ctx_for_srp | 6 | CTX_DATA * | | (SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *) | | SSL_CTX_set_alpn_select_cb | 0 | SSL_CTX * | | (SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *) | | SSL_CTX_set_alpn_select_cb | 1 | SSL_CTX_alpn_select_cb_func | | (SSL_CTX *,SSL_CTX_alpn_select_cb_func,void *) | | SSL_CTX_set_alpn_select_cb | 2 | void * | @@ -20856,8 +20433,6 @@ getSignatureParameterName | (SSL_SESSION *,void **,size_t *) | | SSL_SESSION_get0_ticket_appdata | 0 | SSL_SESSION * | | (SSL_SESSION *,void **,size_t *) | | SSL_SESSION_get0_ticket_appdata | 1 | void ** | | (SSL_SESSION *,void **,size_t *) | | SSL_SESSION_get0_ticket_appdata | 2 | size_t * | -| (STANZA *,const char *) | | test_start_file | 0 | STANZA * | -| (STANZA *,const char *) | | test_start_file | 1 | const char * | | (SXNET *) | | SXNET_free | 0 | SXNET * | | (SXNET **,ASN1_INTEGER *,const char *,int) | | SXNET_add_id_INTEGER | 0 | SXNET ** | | (SXNET **,ASN1_INTEGER *,const char *,int) | | SXNET_add_id_INTEGER | 1 | ASN1_INTEGER * | @@ -22534,9 +22109,6 @@ getSignatureParameterName | (const COMP_METHOD *) | | COMP_get_type | 0 | const COMP_METHOD * | | (const COMP_METHOD *) | | SSL_COMP_get_name | 0 | const COMP_METHOD * | | (const CONF *) | | NCONF_get0_libctx | 0 | const CONF * | -| (const CONF *,const char *,OSSL_LIB_CTX *) | | SSL_TEST_CTX_create | 0 | const CONF * | -| (const CONF *,const char *,OSSL_LIB_CTX *) | | SSL_TEST_CTX_create | 1 | const char * | -| (const CONF *,const char *,OSSL_LIB_CTX *) | | SSL_TEST_CTX_create | 2 | OSSL_LIB_CTX * | | (const CONF_IMODULE *) | | CONF_imodule_get_flags | 0 | const CONF_IMODULE * | | (const CONF_IMODULE *) | | CONF_imodule_get_module | 0 | const CONF_IMODULE * | | (const CONF_IMODULE *) | | CONF_imodule_get_name | 0 | const CONF_IMODULE * | @@ -23714,7 +23286,6 @@ getSignatureParameterName | (const OSSL_CMP_MSG *) | | OSSL_CMP_MSG_dup | 0 | const OSSL_CMP_MSG * | | (const OSSL_CMP_MSG *) | | OSSL_CMP_MSG_get0_header | 0 | const OSSL_CMP_MSG * | | (const OSSL_CMP_MSG *) | | OSSL_CMP_MSG_get_bodytype | 0 | const OSSL_CMP_MSG * | -| (const OSSL_CMP_MSG *) | | valid_asn1_encoding | 0 | const OSSL_CMP_MSG * | | (const OSSL_CMP_MSG *,unsigned char **) | | i2d_OSSL_CMP_MSG | 0 | const OSSL_CMP_MSG * | | (const OSSL_CMP_MSG *,unsigned char **) | | i2d_OSSL_CMP_MSG | 1 | unsigned char ** | | (const OSSL_CMP_PKIBODY *,unsigned char **) | | i2d_OSSL_CMP_PKIBODY | 0 | const OSSL_CMP_PKIBODY * | @@ -23762,10 +23333,6 @@ getSignatureParameterName | (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | OSSL_provider_init | 1 | const OSSL_DISPATCH * | | (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | OSSL_provider_init | 2 | const OSSL_DISPATCH ** | | (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | OSSL_provider_init | 3 | void ** | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | filter_provider_init | 0 | const OSSL_CORE_HANDLE * | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | filter_provider_init | 1 | const OSSL_DISPATCH * | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | filter_provider_init | 2 | const OSSL_DISPATCH ** | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | filter_provider_init | 3 | void ** | | (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_base_provider_init | 0 | const OSSL_CORE_HANDLE * | | (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_base_provider_init | 1 | const OSSL_DISPATCH * | | (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_base_provider_init | 2 | const OSSL_DISPATCH ** | @@ -23782,14 +23349,6 @@ getSignatureParameterName | (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_null_provider_init | 1 | const OSSL_DISPATCH * | | (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_null_provider_init | 2 | const OSSL_DISPATCH ** | | (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | ossl_null_provider_init | 3 | void ** | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | p_test_init | 0 | const OSSL_CORE_HANDLE * | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | p_test_init | 1 | const OSSL_DISPATCH * | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | p_test_init | 2 | const OSSL_DISPATCH ** | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | p_test_init | 3 | void ** | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | tls_provider_init | 0 | const OSSL_CORE_HANDLE * | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | tls_provider_init | 1 | const OSSL_DISPATCH * | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | tls_provider_init | 2 | const OSSL_DISPATCH ** | -| (const OSSL_CORE_HANDLE *,const OSSL_DISPATCH *,const OSSL_DISPATCH **,void **) | | tls_provider_init | 3 | void ** | | (const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *) | | OSSL_CRMF_ATTRIBUTETYPEANDVALUE_dup | 0 | const OSSL_CRMF_ATTRIBUTETYPEANDVALUE * | | (const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *,unsigned char **) | | i2d_OSSL_CRMF_ATTRIBUTETYPEANDVALUE | 0 | const OSSL_CRMF_ATTRIBUTETYPEANDVALUE * | | (const OSSL_CRMF_ATTRIBUTETYPEANDVALUE *,unsigned char **) | | i2d_OSSL_CRMF_ATTRIBUTETYPEANDVALUE | 1 | unsigned char ** | @@ -24996,7 +24555,6 @@ getSignatureParameterName | (const char *) | | X509_LOOKUP_meth_new | 0 | const char * | | (const char *) | | a2i_IPADDRESS | 0 | const char * | | (const char *) | | a2i_IPADDRESS_NC | 0 | const char * | -| (const char *) | | new_pkcs12_builder | 0 | const char * | | (const char *) | | opt_path_end | 0 | const char * | | (const char *) | | opt_progname | 0 | const char * | | (const char *) | | ossl_lh_strcasehash | 0 | const char * | @@ -25076,12 +24634,6 @@ getSignatureParameterName | (const char *,OSSL_CMP_severity *,char **,char **,int *) | | ossl_cmp_log_parse_metadata | 2 | char ** | | (const char *,OSSL_CMP_severity *,char **,char **,int *) | | ossl_cmp_log_parse_metadata | 3 | char ** | | (const char *,OSSL_CMP_severity *,char **,char **,int *) | | ossl_cmp_log_parse_metadata | 4 | int * | -| (const char *,OSSL_LIB_CTX *) | | load_cert_pem | 0 | const char * | -| (const char *,OSSL_LIB_CTX *) | | load_cert_pem | 1 | OSSL_LIB_CTX * | -| (const char *,OSSL_LIB_CTX *) | | load_csr_der | 0 | const char * | -| (const char *,OSSL_LIB_CTX *) | | load_csr_der | 1 | OSSL_LIB_CTX * | -| (const char *,OSSL_LIB_CTX *) | | load_pkimsg | 0 | const char * | -| (const char *,OSSL_LIB_CTX *) | | load_pkimsg | 1 | OSSL_LIB_CTX * | | (const char *,OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_read | 0 | const char * | | (const char *,OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_read | 1 | OSSL_LIB_CTX * | | (const char *,OSSL_LIB_CTX *,const char *) | | OSSL_CMP_MSG_read | 2 | const char * | @@ -25093,9 +24645,6 @@ getSignatureParameterName | (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 5 | const OSSL_PARAM[] | | (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 6 | OSSL_STORE_post_process_info_fn | | (const char *,OSSL_LIB_CTX *,const char *,const UI_METHOD *,void *,const OSSL_PARAM[],OSSL_STORE_post_process_info_fn,void *) | | OSSL_STORE_open_ex | 7 | void * | -| (const char *,SD *,int) | | sd_load | 0 | const char * | -| (const char *,SD *,int) | | sd_load | 1 | SD * | -| (const char *,SD *,int) | | sd_load | 2 | int | | (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 0 | const char * | | (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 1 | X509 ** | | (const char *,X509 **,stack_st_X509 **,int,const char *,const char *,X509_VERIFY_PARAM *) | | load_cert_certs | 2 | stack_st_X509 ** | @@ -25133,8 +24682,6 @@ getSignatureParameterName | (const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **) | | X509V3_add_value_int | 0 | const char * | | (const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **) | | X509V3_add_value_int | 1 | const ASN1_INTEGER * | | (const char *,const ASN1_INTEGER *,stack_st_CONF_VALUE **) | | X509V3_add_value_int | 2 | stack_st_CONF_VALUE ** | -| (const char *,const BIGNUM *) | | test_output_bignum | 0 | const char * | -| (const char *,const BIGNUM *) | | test_output_bignum | 1 | const BIGNUM * | | (const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *) | | ossl_ml_common_pkcs8_fmt_order | 0 | const char * | | (const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *) | | ossl_ml_common_pkcs8_fmt_order | 1 | const ML_COMMON_PKCS8_FMT * | | (const char *,const ML_COMMON_PKCS8_FMT *,const char *,const char *) | | ossl_ml_common_pkcs8_fmt_order | 2 | const char * | @@ -25168,8 +24715,6 @@ getSignatureParameterName | (const char *,const char *) | | sqlite3_strglob | 1 | const char * | | (const char *,const char *) | | sqlite3_stricmp | 0 | const char * | | (const char *,const char *) | | sqlite3_stricmp | 1 | const char * | -| (const char *,const char *) | | test_mk_file_path | 0 | const char * | -| (const char *,const char *) | | test_mk_file_path | 1 | const char * | | (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 0 | const char * | | (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 1 | const char * | | (const char *,const char *,BIGNUM **,BIGNUM **,const BIGNUM *,const BIGNUM *) | | SRP_create_verifier_BN | 2 | BIGNUM ** | @@ -25306,23 +24851,6 @@ getSignatureParameterName | (const char *,const char *,int) | | sqlite3_strnicmp | 0 | const char * | | (const char *,const char *,int) | | sqlite3_strnicmp | 1 | const char * | | (const char *,const char *,int) | | sqlite3_strnicmp | 2 | int | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 0 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 1 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 2 | int | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 3 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 4 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 5 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 6 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *) | | test_fail_bignum_mono_message | 7 | const BIGNUM * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 0 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 1 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 2 | int | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 3 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 4 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 5 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 6 | const char * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 7 | const BIGNUM * | -| (const char *,const char *,int,const char *,const char *,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_fail_bignum_message | 8 | const BIGNUM * | | (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 0 | const char * | | (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 1 | const char * | | (const char *,const char *,int,int,int,int,BIO_ADDRINFO **) | | BIO_lookup_ex | 2 | int | @@ -25393,84 +24921,6 @@ getSignatureParameterName | (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 3 | X509_ALGOR * | | (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 4 | OSSL_LIB_CTX * | | (const char *,int,PKCS8_PRIV_KEY_INFO *,X509_ALGOR *,OSSL_LIB_CTX *,const char *) | | PKCS8_set0_pbe_ex | 5 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_one | 0 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_one | 1 | int | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_one | 2 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_one | 3 | const BIGNUM * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_zero | 0 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_zero | 1 | int | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_zero | 2 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_eq_zero | 3 | const BIGNUM * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_even | 0 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_even | 1 | int | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_even | 2 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_even | 3 | const BIGNUM * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_ge_zero | 0 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_ge_zero | 1 | int | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_ge_zero | 2 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_ge_zero | 3 | const BIGNUM * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_gt_zero | 0 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_gt_zero | 1 | int | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_gt_zero | 2 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_gt_zero | 3 | const BIGNUM * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_le_zero | 0 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_le_zero | 1 | int | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_le_zero | 2 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_le_zero | 3 | const BIGNUM * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_lt_zero | 0 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_lt_zero | 1 | int | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_lt_zero | 2 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_lt_zero | 3 | const BIGNUM * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_ne_zero | 0 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_ne_zero | 1 | int | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_ne_zero | 2 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_ne_zero | 3 | const BIGNUM * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_odd | 0 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_odd | 1 | int | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_odd | 2 | const char * | -| (const char *,int,const char *,const BIGNUM *) | | test_BN_odd | 3 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 0 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 1 | int | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 2 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 3 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 4 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_eq | 5 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 0 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 1 | int | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 2 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 3 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 4 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ge | 5 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 0 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 1 | int | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 2 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 3 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 4 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_gt | 5 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 0 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 1 | int | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 2 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 3 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 4 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_le | 5 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 0 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 1 | int | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 2 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 3 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 4 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_lt | 5 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 0 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 1 | int | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 2 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 3 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 4 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,const BIGNUM *) | | test_BN_ne | 5 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 0 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 1 | int | -| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 2 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 3 | const char * | -| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 4 | const BIGNUM * | -| (const char *,int,const char *,const char *,const BIGNUM *,unsigned long) | | test_BN_eq_word | 5 | unsigned long | | (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 0 | const char * | | (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 1 | int | | (const char *,int,int,..(*)(..),void *) | | CONF_parse_list | 2 | int | @@ -25584,14 +25034,6 @@ getSignatureParameterName | (const char *,unsigned long *) | | opt_ulong | 1 | unsigned long * | | (const char *,va_list) | | sqlite3_vmprintf | 0 | const char * | | (const char *,va_list) | | sqlite3_vmprintf | 1 | va_list | -| (const char *,va_list) | | test_vprintf_stderr | 0 | const char * | -| (const char *,va_list) | | test_vprintf_stderr | 1 | va_list | -| (const char *,va_list) | | test_vprintf_stdout | 0 | const char * | -| (const char *,va_list) | | test_vprintf_stdout | 1 | va_list | -| (const char *,va_list) | | test_vprintf_taperr | 0 | const char * | -| (const char *,va_list) | | test_vprintf_taperr | 1 | va_list | -| (const char *,va_list) | | test_vprintf_tapout | 0 | const char * | -| (const char *,va_list) | | test_vprintf_tapout | 1 | va_list | | (const char *,void *) | | collect_names | 0 | const char * | | (const char *,void *) | | collect_names | 1 | void * | | (const char *,void **,size_t) | | OSSL_PARAM_construct_octet_ptr | 0 | const char * | @@ -25630,8 +25072,6 @@ getSignatureParameterName | (const stack_st_SCT *,unsigned char **) | | i2o_SCT_LIST | 0 | const stack_st_SCT * | | (const stack_st_SCT *,unsigned char **) | | i2o_SCT_LIST | 1 | unsigned char ** | | (const stack_st_X509 *) | | OSSL_CMP_ITAV_new_caCerts | 0 | const stack_st_X509 * | -| (const stack_st_X509 *,const stack_st_X509 *) | | STACK_OF_X509_cmp | 0 | const stack_st_X509 * | -| (const stack_st_X509 *,const stack_st_X509 *) | | STACK_OF_X509_cmp | 1 | const stack_st_X509 * | | (const stack_st_X509_ATTRIBUTE *) | | X509at_get_attr_count | 0 | const stack_st_X509_ATTRIBUTE * | | (const stack_st_X509_ATTRIBUTE *) | | ossl_x509at_dup | 0 | const stack_st_X509_ATTRIBUTE * | | (const stack_st_X509_ATTRIBUTE *,const ASN1_OBJECT *,int) | | X509at_get_attr_by_OBJ | 0 | const stack_st_X509_ATTRIBUTE * | @@ -26512,12 +25952,9 @@ getSignatureParameterName | (int) | | ossl_cmp_bodytype_to_string | 0 | int | | (int) | | ossl_tolower | 0 | int | | (int) | | ossl_toupper | 0 | int | -| (int) | | pulldown_test_framework | 0 | int | | (int) | | sqlite3_compileoption_get | 0 | int | | (int) | | sqlite3_errstr | 0 | int | -| (int) | | tls1_alert_code | 0 | int | | (int) | | tls13_alert_code | 0 | int | -| (int) | | wait_until_sock_readable | 0 | int | | (int,BIO_ADDR *,int) | | BIO_accept_ex | 0 | int | | (int,BIO_ADDR *,int) | | BIO_accept_ex | 1 | BIO_ADDR * | | (int,BIO_ADDR *,int) | | BIO_accept_ex | 2 | int | @@ -27061,7 +26498,6 @@ getSignatureParameterName | (size_t) | | ossl_param_bytes_to_blocks | 0 | size_t | | (size_t) | | ossl_quic_sstream_new | 0 | size_t | | (size_t) | | ssl_cert_new | 0 | size_t | -| (size_t) | | test_get_argument | 0 | size_t | | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 0 | size_t | | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 1 | OSSL_QTX_IOVEC * | | (size_t,OSSL_QTX_IOVEC *,size_t) | | ossl_quic_sstream_adjust_iov | 2 | size_t | @@ -27693,8 +27129,6 @@ getSignatureParameterName | (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 0 | stack_st_X509 * | | (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 1 | IPAddrBlocks * | | (stack_st_X509 *,IPAddrBlocks *,int) | | X509v3_addr_validate_resource_set | 2 | int | -| (stack_st_X509 *,X509 *) | | STACK_OF_X509_push1 | 0 | stack_st_X509 * | -| (stack_st_X509 *,X509 *) | | STACK_OF_X509_push1 | 1 | X509 * | | (stack_st_X509 *,X509 *,int) | | X509_add_cert | 0 | stack_st_X509 * | | (stack_st_X509 *,X509 *,int) | | X509_add_cert | 1 | X509 * | | (stack_st_X509 *,X509 *,int) | | X509_add_cert | 2 | int | @@ -28264,8 +27698,6 @@ getSignatureParameterName | (void *) | | ossl_kdf_data_new | 0 | void * | | (void *,CRYPTO_THREAD_RETVAL *) | | ossl_crypto_thread_join | 0 | void * | | (void *,CRYPTO_THREAD_RETVAL *) | | ossl_crypto_thread_join | 1 | CRYPTO_THREAD_RETVAL * | -| (void *,OSSL_PARAM[]) | | fake_pipeline_aead_get_ctx_params | 0 | void * | -| (void *,OSSL_PARAM[]) | | fake_pipeline_aead_get_ctx_params | 1 | OSSL_PARAM[] | | (void *,OSSL_PARAM[]) | | ossl_blake2b_get_ctx_params | 0 | void * | | (void *,OSSL_PARAM[]) | | ossl_blake2b_get_ctx_params | 1 | OSSL_PARAM[] | | (void *,OSSL_PARAM[]) | | ossl_blake2s_get_ctx_params | 0 | void * | @@ -28292,8 +27724,6 @@ getSignatureParameterName | (void *,const ASN1_ITEM *,int,int) | | PKCS12_item_pack_safebag | 1 | const ASN1_ITEM * | | (void *,const ASN1_ITEM *,int,int) | | PKCS12_item_pack_safebag | 2 | int | | (void *,const ASN1_ITEM *,int,int) | | PKCS12_item_pack_safebag | 3 | int | -| (void *,const OSSL_PARAM[]) | | fake_pipeline_aead_set_ctx_params | 0 | void * | -| (void *,const OSSL_PARAM[]) | | fake_pipeline_aead_set_ctx_params | 1 | const OSSL_PARAM[] | | (void *,const OSSL_PARAM[]) | | ossl_blake2b_set_ctx_params | 0 | void * | | (void *,const OSSL_PARAM[]) | | ossl_blake2b_set_ctx_params | 1 | const OSSL_PARAM[] | | (void *,const OSSL_PARAM[]) | | ossl_blake2s_set_ctx_params | 0 | void * | @@ -28371,20 +27801,6 @@ getSignatureParameterName | (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_einit | 3 | const unsigned char * | | (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_einit | 4 | size_t | | (void *,const unsigned char *,size_t,const unsigned char *,size_t,const OSSL_PARAM[]) | | ossl_tdes_einit | 5 | const OSSL_PARAM[] | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 0 | void * | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 1 | const unsigned char * | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 2 | size_t | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 3 | size_t | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 4 | const unsigned char ** | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 5 | size_t | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_dinit | 6 | const OSSL_PARAM[] | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 0 | void * | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 1 | const unsigned char * | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 2 | size_t | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 3 | size_t | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 4 | const unsigned char ** | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 5 | size_t | -| (void *,const unsigned char *,size_t,size_t,const unsigned char **,size_t,const OSSL_PARAM[]) | | fake_pipeline_einit | 6 | const OSSL_PARAM[] | | (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap | 0 | void * | | (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap | 1 | const unsigned char * | | (void *,const unsigned char *,unsigned char *,const unsigned char *,size_t,block128_f) | | CRYPTO_128_unwrap | 2 | unsigned char * | @@ -28447,18 +27863,6 @@ getSignatureParameterName | (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 5 | uint64_t | | (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 6 | const PROV_CIPHER_HW * | | (void *,size_t,size_t,size_t,unsigned int,uint64_t,const PROV_CIPHER_HW *,void *) | | ossl_cipher_generic_initkey | 7 | void * | -| (void *,size_t,unsigned char **,size_t *,const size_t *) | | fake_pipeline_final | 0 | void * | -| (void *,size_t,unsigned char **,size_t *,const size_t *) | | fake_pipeline_final | 1 | size_t | -| (void *,size_t,unsigned char **,size_t *,const size_t *) | | fake_pipeline_final | 2 | unsigned char ** | -| (void *,size_t,unsigned char **,size_t *,const size_t *) | | fake_pipeline_final | 3 | size_t * | -| (void *,size_t,unsigned char **,size_t *,const size_t *) | | fake_pipeline_final | 4 | const size_t * | -| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 0 | void * | -| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 1 | size_t | -| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 2 | unsigned char ** | -| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 3 | size_t * | -| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 4 | const size_t * | -| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 5 | const unsigned char ** | -| (void *,size_t,unsigned char **,size_t *,const size_t *,const unsigned char **,const size_t *) | | fake_pipeline_update | 6 | const size_t * | | (void *,sqlite3 *,int,const char *) | | useDummyCS | 0 | void * | | (void *,sqlite3 *,int,const char *) | | useDummyCS | 1 | sqlite3 * | | (void *,sqlite3 *,int,const char *) | | useDummyCS | 2 | int | From 34f5e4e0c8b4f1ff9bb9ac2ab2cd63c813038a94 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 16 May 2025 11:23:19 -0400 Subject: [PATCH 444/656] Adding cipher update modeling (model flow through update to final) --- .../OpenSSL/Operations/EVPCipherOperation.qll | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll index b544079579a..f22bcae6927 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll @@ -67,37 +67,42 @@ abstract class EVP_Cipher_Operation extends OpenSSLOperation, Crypto::KeyOperati } } -// abstract class EVP_Update_Call extends EVP_Cipher_Operation { } -abstract class EVP_Final_Call extends EVP_Cipher_Operation { - override Expr getInputArg() { none() } -} - -// TODO: only model Final (model final as operation and model update but not as an operation) -// Updates are multiple input consumers (most important) -// TODO: assuming update doesn't ouput, otherwise it outputs artifacts, but is not an operation class EVP_Cipher_Call extends EVP_Cipher_Operation { EVP_Cipher_Call() { this.(Call).getTarget().getName() = "EVP_Cipher" } override Expr getInputArg() { result = this.(Call).getArgument(2) } } -// ******* TODO: model UPDATE but not as the core operation, rather a step towards final -// see the JCA -// class EVP_Encrypt_Decrypt_or_Cipher_Update_Call extends EVP_Update_Call { -// EVP_Encrypt_Decrypt_or_Cipher_Update_Call() { -// this.(Call).getTarget().getName() in [ -// "EVP_EncryptUpdate", "EVP_DecryptUpdate", "EVP_CipherUpdate" -// ] -// } -// override Expr getInputArg() { result = this.(Call).getArgument(3) } -// } -class EVP_Encrypt_Decrypt_or_Cipher_Final_Call extends EVP_Final_Call { - EVP_Encrypt_Decrypt_or_Cipher_Final_Call() { +// NOTE: not modeled as cipher operations, these are intermediate calls +class EVP_Update_Call extends Call { + EVP_Update_Call() { + this.(Call).getTarget().getName() in [ + "EVP_EncryptUpdate", "EVP_DecryptUpdate", "EVP_CipherUpdate" + ] + } + + Expr getInputArg() { result = this.(Call).getArgument(3) } + + DataFlow::Node getInputNode() { result.asExpr() = this.getInputArg() } + + Expr getContextArg() { result = this.(Call).getArgument(0) } +} + +class EVP_Final_Call extends EVP_Cipher_Operation { + EVP_Final_Call() { this.(Call).getTarget().getName() in [ "EVP_EncryptFinal_ex", "EVP_DecryptFinal_ex", "EVP_CipherFinal_ex", "EVP_EncryptFinal", "EVP_DecryptFinal", "EVP_CipherFinal" ] } + + EVP_Update_Call getUpdateCalls() { + CTXFlow::ctxArgFlowsToCtxArg(result.getContextArg(), this.getContextArg()) + } + + override Expr getInputArg() { result = this.getUpdateCalls().getInputArg() } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { result = this.getInputNode() } } class EVP_PKEY_Operation extends EVP_Cipher_Operation { From dbd66e64c6d1d7722b94c2edae432b3b74237721 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Fri, 16 May 2025 11:23:42 -0400 Subject: [PATCH 445/656] Fixing bug in JCA cipher modeling. intermediate operations should not be key operations. --- java/ql/lib/experimental/quantum/JCA.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/ql/lib/experimental/quantum/JCA.qll b/java/ql/lib/experimental/quantum/JCA.qll index ceca0e45464..867d6f2c9b8 100644 --- a/java/ql/lib/experimental/quantum/JCA.qll +++ b/java/ql/lib/experimental/quantum/JCA.qll @@ -611,6 +611,8 @@ module JCAModel { } class CipherOperationInstance extends Crypto::KeyOperationInstance instanceof CipherOperationCall { + CipherOperationInstance() { not this.isIntermediate() } + override Crypto::KeyOperationSubtype getKeyOperationSubtype() { if CipherFlowAnalysisImpl::hasInit(this) then result = CipherFlowAnalysisImpl::getInitFromUse(this, _, _).getCipherOperationModeType() From c79a724f5df0d5f0e354fbb3f7633eba024ed11e Mon Sep 17 00:00:00 2001 From: Mathew Payne <2772944+GeekMasher@users.noreply.github.com> Date: Fri, 16 May 2025 18:21:44 +0100 Subject: [PATCH 446/656] feat(cpp): Update FlowSources to add wmain --- cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll b/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll index 2aef5e6e7df..b79a94ae222 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll @@ -55,12 +55,12 @@ private class LocalModelSource extends LocalFlowSource { } /** - * A local data flow source that the `argv` parameter to `main`. + * A local data flow source that the `argv` parameter to `main` or `wmain`. */ private class ArgvSource extends LocalFlowSource { ArgvSource() { exists(Function main, Parameter argv | - main.hasGlobalName("main") and + main.hasGlobalName(["main", "wmain"]) main.getParameter(1) = argv and this.asParameter(2) = argv ) From 94fe9b692fc5e088181148f132c6f34fd0f210f8 Mon Sep 17 00:00:00 2001 From: GeekMasher Date: Fri, 16 May 2025 18:35:50 +0100 Subject: [PATCH 447/656] feat(cpp): Add change notes --- cpp/ql/lib/change-notes/2025-05-16-wmain-support.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2025-05-16-wmain-support.md diff --git a/cpp/ql/lib/change-notes/2025-05-16-wmain-support.md b/cpp/ql/lib/change-notes/2025-05-16-wmain-support.md new file mode 100644 index 00000000000..bdc369bfedd --- /dev/null +++ b/cpp/ql/lib/change-notes/2025-05-16-wmain-support.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added support for `wmain` as part of the ArgvSource model. \ No newline at end of file From bbce0d0c65228eaa41734b108bec472675a6aae5 Mon Sep 17 00:00:00 2001 From: Mathew Payne <2772944+GeekMasher@users.noreply.github.com> Date: Fri, 16 May 2025 18:55:00 +0100 Subject: [PATCH 448/656] Update cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com> --- cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll b/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll index b79a94ae222..b5e94d4c046 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll @@ -60,7 +60,7 @@ private class LocalModelSource extends LocalFlowSource { private class ArgvSource extends LocalFlowSource { ArgvSource() { exists(Function main, Parameter argv | - main.hasGlobalName(["main", "wmain"]) + main.hasGlobalName(["main", "wmain"]) and main.getParameter(1) = argv and this.asParameter(2) = argv ) From 8e005a65bf8a2f76a86f22e554605256b48bb010 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 16 May 2025 20:12:58 +0100 Subject: [PATCH 449/656] C++: Fix missing 'asExpr' for array aggregate literals. --- .../cpp/ir/dataflow/internal/ExprNodes.qll | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll index 5514bd80eee..42ab60eced7 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll @@ -45,6 +45,28 @@ private module Cached { ) } + private Expr getRankedElementExpr(ArrayAggregateLiteral aggr, int rnk) { + result = + rank[rnk + 1](Expr e, int elementIndex, int position | + e = aggr.getElementExpr(elementIndex, position) + | + e order by elementIndex, position + ) + } + + private class LastArrayAggregateStore extends StoreInstruction { + ArrayAggregateLiteral aggr; + + LastArrayAggregateStore() { + exists(int rnk | + this.getSourceValue().getUnconvertedResultExpression() = getRankedElementExpr(aggr, rnk) and + not exists(getRankedElementExpr(aggr, rnk + 1)) + ) + } + + ArrayAggregateLiteral getArrayAggregateLiteral() { result = aggr } + } + private Expr getConvertedResultExpressionImpl0(Instruction instr) { // IR construction inserts an additional cast to a `size_t` on the extent // of a `new[]` expression. The resulting `ConvertInstruction` doesn't have @@ -95,6 +117,16 @@ private module Cached { tco.producesExprResult() and result = asDefinitionImpl0(instr) ) + or + // IR construction breaks an array aggregate literal `{1, 2, 3}` into a + // sequence of `StoreInstruction`s. So there's no instruction `i` for which + // `i.getUnconvertedResultExpression() instanceof ArrayAggregateLiteral`. + // So we map the instruction node corresponding to the last `Store` + // instruction of the sequence to the result of the array aggregate + // literal. This makes sense since this store will immediately flow into + // the indirect node representing the array. So this node does represent + // the array after it has been fully initialized. + result = instr.(LastArrayAggregateStore).getArrayAggregateLiteral() } private Expr getConvertedResultExpressionImpl(Instruction instr) { From ced1d580dff30c53faaef8f4469b3ef1840a2f56 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 16 May 2025 20:14:10 +0100 Subject: [PATCH 450/656] C++: Accept test changes. --- cpp/ql/test/library-tests/dataflow/asExpr/test.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp b/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp index c81b86aa8ae..fc9a4e6be08 100644 --- a/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/asExpr/test.cpp @@ -35,6 +35,6 @@ void test_aggregate_literal() { S s5 = {.a = 1, .b = 2}; // $ asExpr=1 asExpr=2 asExpr={...} - int xs[] = {1, 2, 3}; // $ asExpr=1 asExpr=2 asExpr=3 MISSING: asExpr={...} - const int ys[] = {[0] = 4, [1] = 5, [0] = 6}; // $ asExpr=4 asExpr=5 asExpr=6 MISSING: asExpr={...} + int xs[] = {1, 2, 3}; // $ asExpr=1 asExpr=2 asExpr=3 asExpr={...} + const int ys[] = {[0] = 4, [1] = 5, [0] = 6}; // $ asExpr=4 asExpr=5 asExpr=6 asExpr={...} } \ No newline at end of file From 0eb55779fbcd875278312abdbe2886276e81c38f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 16 May 2025 20:30:21 +0100 Subject: [PATCH 451/656] C++: Add change note. --- .../lib/change-notes/2025-05-16-array-aggregate-literals.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2025-05-16-array-aggregate-literals.md diff --git a/cpp/ql/lib/change-notes/2025-05-16-array-aggregate-literals.md b/cpp/ql/lib/change-notes/2025-05-16-array-aggregate-literals.md new file mode 100644 index 00000000000..a1aec0a695a --- /dev/null +++ b/cpp/ql/lib/change-notes/2025-05-16-array-aggregate-literals.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Fixed a problem where `asExpr()` on `DataFlow::Node` would never return `ArrayAggregateLiteral`s. \ No newline at end of file From ff11aaf2bb8f6d77c1df811086237a4f845245de Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 16 May 2025 21:01:55 +0100 Subject: [PATCH 452/656] C++: Accept query test 'toString' improvements. --- .../semmle/consts/NonConstantFormat.expected | 16 ++++++++-------- .../CWE/CWE-319/UseOfHttp/UseOfHttp.expected | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected index 421d12dabd3..c2a952774ff 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/consts/NonConstantFormat.expected @@ -2,8 +2,8 @@ edges | consts.cpp:24:7:24:9 | **gv1 | consts.cpp:25:2:25:4 | *a | provenance | | | consts.cpp:24:7:24:9 | **gv1 | consts.cpp:30:9:30:14 | *access to array | provenance | | | consts.cpp:24:7:24:9 | **gv1 | consts.cpp:123:2:123:12 | *... = ... | provenance | | -| consts.cpp:25:2:25:4 | *a | consts.cpp:26:2:26:4 | *b | provenance | | -| consts.cpp:26:2:26:4 | *b | consts.cpp:24:7:24:9 | **gv1 | provenance | | +| consts.cpp:25:2:25:4 | *a | consts.cpp:26:2:26:4 | *{...} | provenance | | +| consts.cpp:26:2:26:4 | *{...} | consts.cpp:24:7:24:9 | **gv1 | provenance | | | consts.cpp:29:7:29:25 | **nonConstFuncToArray | consts.cpp:126:9:126:30 | *call to nonConstFuncToArray | provenance | | | consts.cpp:30:9:30:14 | *access to array | consts.cpp:29:7:29:25 | **nonConstFuncToArray | provenance | | | consts.cpp:85:7:85:8 | gets output argument | consts.cpp:86:9:86:10 | *v1 | provenance | | @@ -14,7 +14,7 @@ edges | consts.cpp:85:7:85:8 | gets output argument | consts.cpp:129:19:129:20 | *v1 | provenance | | | consts.cpp:85:7:85:8 | gets output argument | consts.cpp:135:9:135:11 | *v10 | provenance | TaintFunction | | consts.cpp:90:2:90:14 | *... = ... | consts.cpp:91:9:91:10 | *v2 | provenance | | -| consts.cpp:90:2:90:14 | *... = ... | consts.cpp:115:21:115:22 | *v2 | provenance | | +| consts.cpp:90:2:90:14 | *... = ... | consts.cpp:115:21:115:22 | *{...} | provenance | | | consts.cpp:90:7:90:10 | *call to gets | consts.cpp:90:2:90:14 | *... = ... | provenance | | | consts.cpp:90:12:90:13 | gets output argument | consts.cpp:94:13:94:14 | *v1 | provenance | | | consts.cpp:90:12:90:13 | gets output argument | consts.cpp:99:2:99:8 | *... = ... | provenance | | @@ -28,9 +28,9 @@ edges | consts.cpp:106:13:106:19 | *call to varFunc | consts.cpp:107:9:107:10 | *v5 | provenance | | | consts.cpp:111:2:111:15 | *... = ... | consts.cpp:112:9:112:10 | *v6 | provenance | | | consts.cpp:111:7:111:13 | *call to varFunc | consts.cpp:111:2:111:15 | *... = ... | provenance | | -| consts.cpp:115:17:115:18 | *v1 | consts.cpp:115:21:115:22 | *v2 | provenance | | -| consts.cpp:115:21:115:22 | *v2 | consts.cpp:116:9:116:13 | *access to array | provenance | | -| consts.cpp:115:21:115:22 | *v2 | consts.cpp:120:2:120:11 | *... = ... | provenance | | +| consts.cpp:115:17:115:18 | *v1 | consts.cpp:115:21:115:22 | *{...} | provenance | | +| consts.cpp:115:21:115:22 | *{...} | consts.cpp:116:9:116:13 | *access to array | provenance | | +| consts.cpp:115:21:115:22 | *{...} | consts.cpp:120:2:120:11 | *... = ... | provenance | | | consts.cpp:120:2:120:11 | *... = ... | consts.cpp:121:9:121:10 | *v8 | provenance | | | consts.cpp:123:2:123:12 | *... = ... | consts.cpp:24:7:24:9 | **gv1 | provenance | | | consts.cpp:129:19:129:20 | *v1 | consts.cpp:130:9:130:10 | *v9 | provenance | | @@ -39,7 +39,7 @@ edges nodes | consts.cpp:24:7:24:9 | **gv1 | semmle.label | **gv1 | | consts.cpp:25:2:25:4 | *a | semmle.label | *a | -| consts.cpp:26:2:26:4 | *b | semmle.label | *b | +| consts.cpp:26:2:26:4 | *{...} | semmle.label | *{...} | | consts.cpp:29:7:29:25 | **nonConstFuncToArray | semmle.label | **nonConstFuncToArray | | consts.cpp:30:9:30:14 | *access to array | semmle.label | *access to array | | consts.cpp:85:7:85:8 | gets output argument | semmle.label | gets output argument | @@ -60,7 +60,7 @@ nodes | consts.cpp:111:7:111:13 | *call to varFunc | semmle.label | *call to varFunc | | consts.cpp:112:9:112:10 | *v6 | semmle.label | *v6 | | consts.cpp:115:17:115:18 | *v1 | semmle.label | *v1 | -| consts.cpp:115:21:115:22 | *v2 | semmle.label | *v2 | +| consts.cpp:115:21:115:22 | *{...} | semmle.label | *{...} | | consts.cpp:116:9:116:13 | *access to array | semmle.label | *access to array | | consts.cpp:120:2:120:11 | *... = ... | semmle.label | *... = ... | | consts.cpp:121:9:121:10 | *v8 | semmle.label | *v8 | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected index a978b9edd7d..971cdb4f3ff 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected @@ -6,8 +6,8 @@ edges | test.cpp:28:10:28:29 | *http://example.com | test.cpp:11:26:11:28 | *url | provenance | | | test.cpp:35:23:35:42 | *http://example.com | test.cpp:35:23:35:42 | *http://example.com | provenance | | | test.cpp:35:23:35:42 | *http://example.com | test.cpp:39:11:39:15 | *url_l | provenance | | -| test.cpp:36:26:36:45 | *http://example.com | test.cpp:36:26:36:45 | *http://example.com | provenance | | -| test.cpp:36:26:36:45 | *http://example.com | test.cpp:40:11:40:17 | *access to array | provenance | | +| test.cpp:36:26:36:45 | *http://example.com | test.cpp:36:26:36:45 | *{...} | provenance | | +| test.cpp:36:26:36:45 | *{...} | test.cpp:40:11:40:17 | *access to array | provenance | | | test.cpp:38:11:38:15 | *url_g | test.cpp:11:26:11:28 | *url | provenance | | | test.cpp:39:11:39:15 | *url_l | test.cpp:11:26:11:28 | *url | provenance | | | test.cpp:40:11:40:17 | *access to array | test.cpp:11:26:11:28 | *url | provenance | | @@ -29,7 +29,7 @@ nodes | test.cpp:35:23:35:42 | *http://example.com | semmle.label | *http://example.com | | test.cpp:35:23:35:42 | *http://example.com | semmle.label | *http://example.com | | test.cpp:36:26:36:45 | *http://example.com | semmle.label | *http://example.com | -| test.cpp:36:26:36:45 | *http://example.com | semmle.label | *http://example.com | +| test.cpp:36:26:36:45 | *{...} | semmle.label | *{...} | | test.cpp:38:11:38:15 | *url_g | semmle.label | *url_g | | test.cpp:39:11:39:15 | *url_l | semmle.label | *url_l | | test.cpp:40:11:40:17 | *access to array | semmle.label | *access to array | From f575d2f94165b0864025d5aeefe5be21060a6702 Mon Sep 17 00:00:00 2001 From: sentient0being <2663472225@qq.com> Date: Sat, 17 May 2025 19:40:41 +0800 Subject: [PATCH 453/656] get array string url --- .../semmle/code/java/frameworks/spring/SpringController.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll index a222be20c20..cb7bd0e3dac 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll @@ -156,6 +156,10 @@ class SpringRequestMappingMethod extends SpringControllerMethod { /** Gets the "value" @RequestMapping annotation value, if present. */ string getValue() { result = requestMappingAnnotation.getStringValue("value") } + + + /** Gets the "value" @RequestMapping annotation array string value, if present. */ + string getArrayValue() { result = requestMappingAnnotation.getAStringArrayValue("value") } /** Gets the "method" @RequestMapping annotation value, if present. */ string getMethodValue() { result = requestMappingAnnotation.getAnEnumConstantArrayValue("method").getName() From 03ecd244694ada295d127e64b60e25af61c644af Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 16 May 2025 11:58:15 +0200 Subject: [PATCH 454/656] Lower the precision of a range of harcoded password queries to remove them from query suites. --- csharp/ql/src/Configuration/PasswordInConfigurationFile.ql | 2 +- .../src/Security Features/CWE-798/HardcodedConnectionString.ql | 2 +- csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql | 2 +- go/ql/src/Security/CWE-798/HardcodedCredentials.ql | 2 +- java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsApiCall.ql | 2 +- .../ql/src/Security/CWE-313/PasswordInConfigurationFile.ql | 2 +- javascript/ql/src/Security/CWE-798/HardcodedCredentials.ql | 2 +- python/ql/src/Security/CWE-798/HardcodedCredentials.ql | 2 +- ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql | 2 +- swift/ql/src/queries/Security/CWE-259/ConstantPassword.ql | 2 +- swift/ql/src/queries/Security/CWE-321/HardcodedEncryptionKey.ql | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql b/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql index a2fe7cf2290..0cc3f9cfca2 100644 --- a/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql +++ b/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql @@ -4,7 +4,7 @@ * @kind problem * @problem.severity warning * @security-severity 7.5 - * @precision medium + * @precision low * @id cs/password-in-configuration * @tags security * external/cwe/cwe-013 diff --git a/csharp/ql/src/Security Features/CWE-798/HardcodedConnectionString.ql b/csharp/ql/src/Security Features/CWE-798/HardcodedConnectionString.ql index 09f4bdca26b..32508fa9d3f 100644 --- a/csharp/ql/src/Security Features/CWE-798/HardcodedConnectionString.ql +++ b/csharp/ql/src/Security Features/CWE-798/HardcodedConnectionString.ql @@ -4,7 +4,7 @@ * @kind path-problem * @problem.severity error * @security-severity 9.8 - * @precision medium + * @precision low * @id cs/hardcoded-connection-string-credentials * @tags security * external/cwe/cwe-259 diff --git a/csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql b/csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql index d4291c90fb2..d0aed008261 100644 --- a/csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql +++ b/csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql @@ -4,7 +4,7 @@ * @kind path-problem * @problem.severity error * @security-severity 9.8 - * @precision medium + * @precision low * @id cs/hardcoded-credentials * @tags security * external/cwe/cwe-259 diff --git a/go/ql/src/Security/CWE-798/HardcodedCredentials.ql b/go/ql/src/Security/CWE-798/HardcodedCredentials.ql index 37ebbad8f68..d14f24966be 100644 --- a/go/ql/src/Security/CWE-798/HardcodedCredentials.ql +++ b/go/ql/src/Security/CWE-798/HardcodedCredentials.ql @@ -5,7 +5,7 @@ * @kind problem * @problem.severity warning * @security-severity 9.8 - * @precision medium + * @precision low * @id go/hardcoded-credentials * @tags security * external/cwe/cwe-259 diff --git a/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsApiCall.ql b/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsApiCall.ql index 410cea0ed03..7153ba726da 100644 --- a/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsApiCall.ql +++ b/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsApiCall.ql @@ -4,7 +4,7 @@ * @kind path-problem * @problem.severity error * @security-severity 9.8 - * @precision medium + * @precision low * @id java/hardcoded-credential-api-call * @tags security * external/cwe/cwe-798 diff --git a/javascript/ql/src/Security/CWE-313/PasswordInConfigurationFile.ql b/javascript/ql/src/Security/CWE-313/PasswordInConfigurationFile.ql index d00ea7343df..f00a5092a82 100644 --- a/javascript/ql/src/Security/CWE-313/PasswordInConfigurationFile.ql +++ b/javascript/ql/src/Security/CWE-313/PasswordInConfigurationFile.ql @@ -4,7 +4,7 @@ * @kind problem * @problem.severity warning * @security-severity 7.5 - * @precision medium + * @precision low * @id js/password-in-configuration-file * @tags security * external/cwe/cwe-256 diff --git a/javascript/ql/src/Security/CWE-798/HardcodedCredentials.ql b/javascript/ql/src/Security/CWE-798/HardcodedCredentials.ql index a94153e0226..6bb5218ad6a 100644 --- a/javascript/ql/src/Security/CWE-798/HardcodedCredentials.ql +++ b/javascript/ql/src/Security/CWE-798/HardcodedCredentials.ql @@ -5,7 +5,7 @@ * @kind path-problem * @problem.severity warning * @security-severity 9.8 - * @precision high + * @precision low * @id js/hardcoded-credentials * @tags security * external/cwe/cwe-259 diff --git a/python/ql/src/Security/CWE-798/HardcodedCredentials.ql b/python/ql/src/Security/CWE-798/HardcodedCredentials.ql index c8aecd7204b..d08223a553b 100644 --- a/python/ql/src/Security/CWE-798/HardcodedCredentials.ql +++ b/python/ql/src/Security/CWE-798/HardcodedCredentials.ql @@ -4,7 +4,7 @@ * @kind path-problem * @problem.severity error * @security-severity 9.8 - * @precision medium + * @precision low * @id py/hardcoded-credentials * @tags security * external/cwe/cwe-259 diff --git a/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql b/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql index c568e8d2aaf..bba71760818 100644 --- a/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql +++ b/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql @@ -4,7 +4,7 @@ * @kind path-problem * @problem.severity error * @security-severity 9.8 - * @precision medium + * @precision low * @id rb/hardcoded-credentials * @tags security * external/cwe/cwe-259 diff --git a/swift/ql/src/queries/Security/CWE-259/ConstantPassword.ql b/swift/ql/src/queries/Security/CWE-259/ConstantPassword.ql index 4eb9e4548ec..1eb42b301a9 100644 --- a/swift/ql/src/queries/Security/CWE-259/ConstantPassword.ql +++ b/swift/ql/src/queries/Security/CWE-259/ConstantPassword.ql @@ -4,7 +4,7 @@ * @kind path-problem * @problem.severity error * @security-severity 6.8 - * @precision high + * @precision low * @id swift/constant-password * @tags security * external/cwe/cwe-259 diff --git a/swift/ql/src/queries/Security/CWE-321/HardcodedEncryptionKey.ql b/swift/ql/src/queries/Security/CWE-321/HardcodedEncryptionKey.ql index f157478fc8e..f6758f94bb2 100644 --- a/swift/ql/src/queries/Security/CWE-321/HardcodedEncryptionKey.ql +++ b/swift/ql/src/queries/Security/CWE-321/HardcodedEncryptionKey.ql @@ -4,7 +4,7 @@ * @kind path-problem * @problem.severity error * @security-severity 8.1 - * @precision high + * @precision low * @id swift/hardcoded-key * @tags security * external/cwe/cwe-321 From 530025b7aed25bc07486e1ab657ec470b4508613 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 16 May 2025 12:02:48 +0200 Subject: [PATCH 455/656] Update integration tests expected output. --- .../posix/query-suite/csharp-security-and-quality.qls.expected | 3 --- .../posix/query-suite/csharp-security-extended.qls.expected | 3 --- .../posix/query-suite/not_included_in_qls.expected | 3 +++ .../query-suite/go-security-and-quality.qls.expected | 1 - .../query-suite/go-security-extended.qls.expected | 1 - .../integration-tests/query-suite/not_included_in_qls.expected | 1 + .../java/query-suite/java-security-and-quality.qls.expected | 1 - .../java/query-suite/java-security-extended.qls.expected | 1 - .../java/query-suite/not_included_in_qls.expected | 1 + .../query-suite/javascript-code-scanning.qls.expected | 1 - .../query-suite/javascript-security-and-quality.qls.expected | 2 -- .../query-suite/javascript-security-extended.qls.expected | 2 -- .../integration-tests/query-suite/not_included_in_qls.expected | 2 ++ .../integration-tests/query-suite/not_included_in_qls.expected | 1 + .../query-suite/python-security-and-quality.qls.expected | 1 - .../query-suite/python-security-extended.qls.expected | 1 - .../integration-tests/query-suite/not_included_in_qls.expected | 1 + .../query-suite/ruby-security-and-quality.qls.expected | 1 - .../query-suite/ruby-security-extended.qls.expected | 1 - .../posix/query-suite/not_included_in_qls.expected | 2 ++ .../posix/query-suite/swift-code-scanning.qls.expected | 2 -- .../posix/query-suite/swift-security-and-quality.qls.expected | 2 -- .../posix/query-suite/swift-security-extended.qls.expected | 2 -- 23 files changed, 11 insertions(+), 25 deletions(-) diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-security-and-quality.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-security-and-quality.qls.expected index fc0fa2403f9..d4d145986c1 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-security-and-quality.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-security-and-quality.qls.expected @@ -38,7 +38,6 @@ ql/csharp/ql/src/Concurrency/SynchSetUnsynchGet.ql ql/csharp/ql/src/Concurrency/UnsafeLazyInitialization.ql ql/csharp/ql/src/Concurrency/UnsynchronizedStaticAccess.ql ql/csharp/ql/src/Configuration/EmptyPasswordInConfigurationFile.ql -ql/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql ql/csharp/ql/src/Diagnostics/CompilerError.ql ql/csharp/ql/src/Diagnostics/CompilerMessage.ql @@ -146,8 +145,6 @@ ql/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql ql/csharp/ql/src/Security Features/CWE-643/XPathInjection.ql ql/csharp/ql/src/Security Features/CWE-730/ReDoS.ql ql/csharp/ql/src/Security Features/CWE-730/RegexInjection.ql -ql/csharp/ql/src/Security Features/CWE-798/HardcodedConnectionString.ql -ql/csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql ql/csharp/ql/src/Security Features/CWE-807/ConditionalBypass.ql ql/csharp/ql/src/Security Features/CookieWithOverlyBroadDomain.ql ql/csharp/ql/src/Security Features/CookieWithOverlyBroadPath.ql diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-security-extended.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-security-extended.qls.expected index 69f47536e68..48f7ad304a0 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-security-extended.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-security-extended.qls.expected @@ -1,5 +1,4 @@ ql/csharp/ql/src/Configuration/EmptyPasswordInConfigurationFile.ql -ql/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql ql/csharp/ql/src/Diagnostics/CompilerError.ql ql/csharp/ql/src/Diagnostics/CompilerMessage.ql ql/csharp/ql/src/Diagnostics/DiagnosticExtractionErrors.ql @@ -49,8 +48,6 @@ ql/csharp/ql/src/Security Features/CWE-639/InsecureDirectObjectReference.ql ql/csharp/ql/src/Security Features/CWE-643/XPathInjection.ql ql/csharp/ql/src/Security Features/CWE-730/ReDoS.ql ql/csharp/ql/src/Security Features/CWE-730/RegexInjection.ql -ql/csharp/ql/src/Security Features/CWE-798/HardcodedConnectionString.ql -ql/csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql ql/csharp/ql/src/Security Features/CWE-807/ConditionalBypass.ql ql/csharp/ql/src/Security Features/CookieWithOverlyBroadDomain.ql ql/csharp/ql/src/Security Features/CookieWithOverlyBroadPath.ql diff --git a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected index 9604a4aed64..dff6574dddd 100644 --- a/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/not_included_in_qls.expected @@ -26,6 +26,7 @@ ql/csharp/ql/src/Bad Practices/Naming Conventions/DefaultControlNames.ql ql/csharp/ql/src/Bad Practices/Naming Conventions/VariableNameTooShort.ql ql/csharp/ql/src/Bad Practices/UseOfHtmlInputHidden.ql ql/csharp/ql/src/Bad Practices/UseOfSystemOutputStream.ql +ql/csharp/ql/src/Configuration/PasswordInConfigurationFile.ql ql/csharp/ql/src/Dead Code/DeadRefTypes.ql ql/csharp/ql/src/Dead Code/NonAssignedFields.ql ql/csharp/ql/src/Dead Code/UnusedField.ql @@ -89,6 +90,8 @@ ql/csharp/ql/src/Security Features/CWE-321/HardcodedSymmetricEncryptionKey.ql ql/csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql ql/csharp/ql/src/Security Features/CWE-502/UnsafeDeserialization.ql ql/csharp/ql/src/Security Features/CWE-611/UseXmlSecureResolver.ql +ql/csharp/ql/src/Security Features/CWE-798/HardcodedConnectionString.ql +ql/csharp/ql/src/Security Features/CWE-798/HardcodedCredentials.ql ql/csharp/ql/src/Security Features/CWE-838/InappropriateEncoding.ql ql/csharp/ql/src/Useless code/PointlessForwardingMethod.ql ql/csharp/ql/src/definitions.ql diff --git a/go/ql/integration-tests/query-suite/go-security-and-quality.qls.expected b/go/ql/integration-tests/query-suite/go-security-and-quality.qls.expected index 46f21d921ef..634335cd05e 100644 --- a/go/ql/integration-tests/query-suite/go-security-and-quality.qls.expected +++ b/go/ql/integration-tests/query-suite/go-security-and-quality.qls.expected @@ -50,6 +50,5 @@ ql/go/ql/src/Security/CWE-640/EmailInjection.ql ql/go/ql/src/Security/CWE-643/XPathInjection.ql ql/go/ql/src/Security/CWE-681/IncorrectIntegerConversionQuery.ql ql/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql -ql/go/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/go/ql/src/Security/CWE-918/RequestForgery.ql ql/go/ql/src/Summary/LinesOfCode.ql diff --git a/go/ql/integration-tests/query-suite/go-security-extended.qls.expected b/go/ql/integration-tests/query-suite/go-security-extended.qls.expected index a206ef2364a..12db20e22f5 100644 --- a/go/ql/integration-tests/query-suite/go-security-extended.qls.expected +++ b/go/ql/integration-tests/query-suite/go-security-extended.qls.expected @@ -28,6 +28,5 @@ ql/go/ql/src/Security/CWE-640/EmailInjection.ql ql/go/ql/src/Security/CWE-643/XPathInjection.ql ql/go/ql/src/Security/CWE-681/IncorrectIntegerConversionQuery.ql ql/go/ql/src/Security/CWE-770/UncontrolledAllocationSize.ql -ql/go/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/go/ql/src/Security/CWE-918/RequestForgery.ql ql/go/ql/src/Summary/LinesOfCode.ql diff --git a/go/ql/integration-tests/query-suite/not_included_in_qls.expected b/go/ql/integration-tests/query-suite/not_included_in_qls.expected index 751c76041a2..bca9992e600 100644 --- a/go/ql/integration-tests/query-suite/not_included_in_qls.expected +++ b/go/ql/integration-tests/query-suite/not_included_in_qls.expected @@ -6,6 +6,7 @@ ql/go/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql ql/go/ql/src/Security/CWE-020/UntrustedDataToUnknownExternalAPI.ql ql/go/ql/src/Security/CWE-078/StoredCommand.ql ql/go/ql/src/Security/CWE-079/StoredXss.ql +ql/go/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/go/ql/src/definitions.ql ql/go/ql/src/experimental/CWE-090/LDAPInjection.ql ql/go/ql/src/experimental/CWE-1004/CookieWithoutHttpOnly.ql diff --git a/java/ql/integration-tests/java/query-suite/java-security-and-quality.qls.expected b/java/ql/integration-tests/java/query-suite/java-security-and-quality.qls.expected index 85d7e7d0960..f4317f8e2a5 100644 --- a/java/ql/integration-tests/java/query-suite/java-security-and-quality.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-security-and-quality.qls.expected @@ -196,7 +196,6 @@ ql/java/ql/src/Security/CWE/CWE-730/RegexInjection.ql ql/java/ql/src/Security/CWE/CWE-732/ReadingFromWorldWritableFile.ql ql/java/ql/src/Security/CWE/CWE-749/UnsafeAndroidAccess.ql ql/java/ql/src/Security/CWE/CWE-780/RsaWithoutOaep.ql -ql/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsApiCall.ql ql/java/ql/src/Security/CWE/CWE-807/ConditionalBypass.ql ql/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql ql/java/ql/src/Security/CWE/CWE-829/InsecureDependencyResolution.ql diff --git a/java/ql/integration-tests/java/query-suite/java-security-extended.qls.expected b/java/ql/integration-tests/java/query-suite/java-security-extended.qls.expected index d5f4cbf1ccc..209777cf4d9 100644 --- a/java/ql/integration-tests/java/query-suite/java-security-extended.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-security-extended.qls.expected @@ -99,7 +99,6 @@ ql/java/ql/src/Security/CWE/CWE-730/RegexInjection.ql ql/java/ql/src/Security/CWE/CWE-732/ReadingFromWorldWritableFile.ql ql/java/ql/src/Security/CWE/CWE-749/UnsafeAndroidAccess.ql ql/java/ql/src/Security/CWE/CWE-780/RsaWithoutOaep.ql -ql/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsApiCall.ql ql/java/ql/src/Security/CWE/CWE-807/ConditionalBypass.ql ql/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql ql/java/ql/src/Security/CWE/CWE-829/InsecureDependencyResolution.ql diff --git a/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected b/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected index 0fbc365c134..d0378fa2ea4 100644 --- a/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected +++ b/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected @@ -158,6 +158,7 @@ ql/java/ql/src/Security/CWE/CWE-312/CleartextStorageClass.ql ql/java/ql/src/Security/CWE/CWE-319/HttpsUrls.ql ql/java/ql/src/Security/CWE/CWE-319/UseSSL.ql ql/java/ql/src/Security/CWE/CWE-319/UseSSLSocketFactories.ql +ql/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsApiCall.ql ql/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsComparison.ql ql/java/ql/src/Security/CWE/CWE-798/HardcodedCredentialsSourceCall.ql ql/java/ql/src/Security/CWE/CWE-798/HardcodedPasswordField.ql diff --git a/javascript/ql/integration-tests/query-suite/javascript-code-scanning.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-code-scanning.qls.expected index 7f7ab7aa326..1cf124ce3cf 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-code-scanning.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-code-scanning.qls.expected @@ -75,7 +75,6 @@ ql/javascript/ql/src/Security/CWE-754/UnvalidatedDynamicMethodCall.ql ql/javascript/ql/src/Security/CWE-770/MissingRateLimiting.ql ql/javascript/ql/src/Security/CWE-770/ResourceExhaustion.ql ql/javascript/ql/src/Security/CWE-776/XmlBomb.ql -ql/javascript/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/javascript/ql/src/Security/CWE-829/InsecureDownload.ql ql/javascript/ql/src/Security/CWE-830/FunctionalityFromUntrustedDomain.ql ql/javascript/ql/src/Security/CWE-830/FunctionalityFromUntrustedSource.ql diff --git a/javascript/ql/integration-tests/query-suite/javascript-security-and-quality.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-security-and-quality.qls.expected index 63f6629f7bf..eb4acd38e39 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-security-and-quality.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-security-and-quality.qls.expected @@ -144,7 +144,6 @@ ql/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.ql ql/javascript/ql/src/Security/CWE-312/BuildArtifactLeak.ql ql/javascript/ql/src/Security/CWE-312/CleartextLogging.ql ql/javascript/ql/src/Security/CWE-312/CleartextStorage.ql -ql/javascript/ql/src/Security/CWE-313/PasswordInConfigurationFile.ql ql/javascript/ql/src/Security/CWE-326/InsufficientKeySize.ql ql/javascript/ql/src/Security/CWE-327/BadRandomness.ql ql/javascript/ql/src/Security/CWE-327/BrokenCryptoAlgorithm.ql @@ -173,7 +172,6 @@ ql/javascript/ql/src/Security/CWE-754/UnvalidatedDynamicMethodCall.ql ql/javascript/ql/src/Security/CWE-770/MissingRateLimiting.ql ql/javascript/ql/src/Security/CWE-770/ResourceExhaustion.ql ql/javascript/ql/src/Security/CWE-776/XmlBomb.ql -ql/javascript/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/javascript/ql/src/Security/CWE-807/ConditionalBypass.ql ql/javascript/ql/src/Security/CWE-829/InsecureDownload.ql ql/javascript/ql/src/Security/CWE-830/FunctionalityFromUntrustedDomain.ql diff --git a/javascript/ql/integration-tests/query-suite/javascript-security-extended.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-security-extended.qls.expected index 29ae7fd6939..a5b5cfefdbc 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-security-extended.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-security-extended.qls.expected @@ -59,7 +59,6 @@ ql/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.ql ql/javascript/ql/src/Security/CWE-312/BuildArtifactLeak.ql ql/javascript/ql/src/Security/CWE-312/CleartextLogging.ql ql/javascript/ql/src/Security/CWE-312/CleartextStorage.ql -ql/javascript/ql/src/Security/CWE-313/PasswordInConfigurationFile.ql ql/javascript/ql/src/Security/CWE-326/InsufficientKeySize.ql ql/javascript/ql/src/Security/CWE-327/BadRandomness.ql ql/javascript/ql/src/Security/CWE-327/BrokenCryptoAlgorithm.ql @@ -88,7 +87,6 @@ ql/javascript/ql/src/Security/CWE-754/UnvalidatedDynamicMethodCall.ql ql/javascript/ql/src/Security/CWE-770/MissingRateLimiting.ql ql/javascript/ql/src/Security/CWE-770/ResourceExhaustion.ql ql/javascript/ql/src/Security/CWE-776/XmlBomb.ql -ql/javascript/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/javascript/ql/src/Security/CWE-807/ConditionalBypass.ql ql/javascript/ql/src/Security/CWE-829/InsecureDownload.ql ql/javascript/ql/src/Security/CWE-830/FunctionalityFromUntrustedDomain.ql diff --git a/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected b/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected index a6c808c6cbf..34c4df3d6fa 100644 --- a/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected +++ b/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected @@ -53,7 +53,9 @@ ql/javascript/ql/src/RegExp/BackspaceEscape.ql ql/javascript/ql/src/RegExp/MalformedRegExp.ql ql/javascript/ql/src/Security/CWE-020/ExternalAPIsUsedWithUntrustedData.ql ql/javascript/ql/src/Security/CWE-020/UntrustedDataToExternalAPI.ql +ql/javascript/ql/src/Security/CWE-313/PasswordInConfigurationFile.ql ql/javascript/ql/src/Security/CWE-451/MissingXFrameOptions.ql +ql/javascript/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/javascript/ql/src/Security/CWE-807/DifferentKindsComparisonBypass.ql ql/javascript/ql/src/Security/trest/test.ql ql/javascript/ql/src/Statements/EphemeralLoop.ql diff --git a/python/ql/integration-tests/query-suite/not_included_in_qls.expected b/python/ql/integration-tests/query-suite/not_included_in_qls.expected index 9921f13aa55..05108abc206 100644 --- a/python/ql/integration-tests/query-suite/not_included_in_qls.expected +++ b/python/ql/integration-tests/query-suite/not_included_in_qls.expected @@ -58,6 +58,7 @@ ql/python/ql/src/Metrics/NumberOfStatements.ql ql/python/ql/src/Metrics/TransitiveImports.ql ql/python/ql/src/Security/CWE-020-ExternalAPIs/ExternalAPIsUsedWithUntrustedData.ql ql/python/ql/src/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.ql +ql/python/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/python/ql/src/Statements/AssertLiteralConstant.ql ql/python/ql/src/Statements/C_StyleParentheses.ql ql/python/ql/src/Statements/DocStrings.ql diff --git a/python/ql/integration-tests/query-suite/python-security-and-quality.qls.expected b/python/ql/integration-tests/query-suite/python-security-and-quality.qls.expected index 4560c92f36d..e391dea95cd 100644 --- a/python/ql/integration-tests/query-suite/python-security-and-quality.qls.expected +++ b/python/ql/integration-tests/query-suite/python-security-and-quality.qls.expected @@ -133,7 +133,6 @@ ql/python/ql/src/Security/CWE-730/ReDoS.ql ql/python/ql/src/Security/CWE-730/RegexInjection.ql ql/python/ql/src/Security/CWE-732/WeakFilePermissions.ql ql/python/ql/src/Security/CWE-776/XmlBomb.ql -ql/python/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/python/ql/src/Security/CWE-918/FullServerSideRequestForgery.ql ql/python/ql/src/Security/CWE-918/PartialServerSideRequestForgery.ql ql/python/ql/src/Security/CWE-943/NoSqlInjection.ql diff --git a/python/ql/integration-tests/query-suite/python-security-extended.qls.expected b/python/ql/integration-tests/query-suite/python-security-extended.qls.expected index 398da79f01e..1b255c6a0d0 100644 --- a/python/ql/integration-tests/query-suite/python-security-extended.qls.expected +++ b/python/ql/integration-tests/query-suite/python-security-extended.qls.expected @@ -43,7 +43,6 @@ ql/python/ql/src/Security/CWE-730/ReDoS.ql ql/python/ql/src/Security/CWE-730/RegexInjection.ql ql/python/ql/src/Security/CWE-732/WeakFilePermissions.ql ql/python/ql/src/Security/CWE-776/XmlBomb.ql -ql/python/ql/src/Security/CWE-798/HardcodedCredentials.ql ql/python/ql/src/Security/CWE-918/FullServerSideRequestForgery.ql ql/python/ql/src/Security/CWE-918/PartialServerSideRequestForgery.ql ql/python/ql/src/Security/CWE-943/NoSqlInjection.ql diff --git a/ruby/ql/integration-tests/query-suite/not_included_in_qls.expected b/ruby/ql/integration-tests/query-suite/not_included_in_qls.expected index ea96d413106..59aef4e12c1 100644 --- a/ruby/ql/integration-tests/query-suite/not_included_in_qls.expected +++ b/ruby/ql/integration-tests/query-suite/not_included_in_qls.expected @@ -30,6 +30,7 @@ ql/ruby/ql/src/queries/metrics/FLinesOfCode.ql ql/ruby/ql/src/queries/metrics/FLinesOfComments.ql ql/ruby/ql/src/queries/modeling/GenerateModel.ql ql/ruby/ql/src/queries/security/cwe-732/WeakFilePermissions.ql +ql/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql ql/ruby/ql/src/queries/variables/UnusedParameter.ql ql/ruby/ql/src/utils/modeleditor/ApplicationModeEndpoints.ql ql/ruby/ql/src/utils/modeleditor/FrameworkModeAccessPaths.ql diff --git a/ruby/ql/integration-tests/query-suite/ruby-security-and-quality.qls.expected b/ruby/ql/integration-tests/query-suite/ruby-security-and-quality.qls.expected index 604a4c223fb..0d1af0f29d9 100644 --- a/ruby/ql/integration-tests/query-suite/ruby-security-and-quality.qls.expected +++ b/ruby/ql/integration-tests/query-suite/ruby-security-and-quality.qls.expected @@ -41,7 +41,6 @@ ql/ruby/ql/src/queries/security/cwe-598/SensitiveGetQuery.ql ql/ruby/ql/src/queries/security/cwe-601/UrlRedirect.ql ql/ruby/ql/src/queries/security/cwe-611/Xxe.ql ql/ruby/ql/src/queries/security/cwe-732/WeakCookieConfiguration.ql -ql/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql ql/ruby/ql/src/queries/security/cwe-829/InsecureDownload.ql ql/ruby/ql/src/queries/security/cwe-912/HttpToFileAccess.ql ql/ruby/ql/src/queries/security/cwe-915/MassAssignment.ql diff --git a/ruby/ql/integration-tests/query-suite/ruby-security-extended.qls.expected b/ruby/ql/integration-tests/query-suite/ruby-security-extended.qls.expected index 706b9a9a363..b2b0a0d7b27 100644 --- a/ruby/ql/integration-tests/query-suite/ruby-security-extended.qls.expected +++ b/ruby/ql/integration-tests/query-suite/ruby-security-extended.qls.expected @@ -40,7 +40,6 @@ ql/ruby/ql/src/queries/security/cwe-598/SensitiveGetQuery.ql ql/ruby/ql/src/queries/security/cwe-601/UrlRedirect.ql ql/ruby/ql/src/queries/security/cwe-611/Xxe.ql ql/ruby/ql/src/queries/security/cwe-732/WeakCookieConfiguration.ql -ql/ruby/ql/src/queries/security/cwe-798/HardcodedCredentials.ql ql/ruby/ql/src/queries/security/cwe-829/InsecureDownload.ql ql/ruby/ql/src/queries/security/cwe-912/HttpToFileAccess.ql ql/ruby/ql/src/queries/security/cwe-915/MassAssignment.ql diff --git a/swift/ql/integration-tests/posix/query-suite/not_included_in_qls.expected b/swift/ql/integration-tests/posix/query-suite/not_included_in_qls.expected index 64c776d96d1..ced293a493b 100644 --- a/swift/ql/integration-tests/posix/query-suite/not_included_in_qls.expected +++ b/swift/ql/integration-tests/posix/query-suite/not_included_in_qls.expected @@ -1,5 +1,7 @@ ql/swift/ql/src/AlertSuppression.ql ql/swift/ql/src/experimental/Security/CWE-022/UnsafeUnpack.ql +ql/swift/ql/src/queries/Security/CWE-259/ConstantPassword.ql +ql/swift/ql/src/queries/Security/CWE-321/HardcodedEncryptionKey.ql ql/swift/ql/src/queries/Summary/FlowSources.ql ql/swift/ql/src/queries/Summary/QuerySinks.ql ql/swift/ql/src/queries/Summary/RegexEvals.ql diff --git a/swift/ql/integration-tests/posix/query-suite/swift-code-scanning.qls.expected b/swift/ql/integration-tests/posix/query-suite/swift-code-scanning.qls.expected index bee12dbfb8f..7b258338200 100644 --- a/swift/ql/integration-tests/posix/query-suite/swift-code-scanning.qls.expected +++ b/swift/ql/integration-tests/posix/query-suite/swift-code-scanning.qls.expected @@ -14,12 +14,10 @@ ql/swift/ql/src/queries/Security/CWE-1204/StaticInitializationVector.ql ql/swift/ql/src/queries/Security/CWE-1333/ReDoS.ql ql/swift/ql/src/queries/Security/CWE-134/UncontrolledFormatString.ql ql/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql -ql/swift/ql/src/queries/Security/CWE-259/ConstantPassword.ql ql/swift/ql/src/queries/Security/CWE-311/CleartextStorageDatabase.ql ql/swift/ql/src/queries/Security/CWE-311/CleartextTransmission.ql ql/swift/ql/src/queries/Security/CWE-312/CleartextLogging.ql ql/swift/ql/src/queries/Security/CWE-312/CleartextStoragePreferences.ql -ql/swift/ql/src/queries/Security/CWE-321/HardcodedEncryptionKey.ql ql/swift/ql/src/queries/Security/CWE-327/ECBEncryption.ql ql/swift/ql/src/queries/Security/CWE-328/WeakPasswordHashing.ql ql/swift/ql/src/queries/Security/CWE-328/WeakSensitiveDataHashing.ql diff --git a/swift/ql/integration-tests/posix/query-suite/swift-security-and-quality.qls.expected b/swift/ql/integration-tests/posix/query-suite/swift-security-and-quality.qls.expected index 412d0816aff..f1d01d4d065 100644 --- a/swift/ql/integration-tests/posix/query-suite/swift-security-and-quality.qls.expected +++ b/swift/ql/integration-tests/posix/query-suite/swift-security-and-quality.qls.expected @@ -15,12 +15,10 @@ ql/swift/ql/src/queries/Security/CWE-1204/StaticInitializationVector.ql ql/swift/ql/src/queries/Security/CWE-1333/ReDoS.ql ql/swift/ql/src/queries/Security/CWE-134/UncontrolledFormatString.ql ql/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql -ql/swift/ql/src/queries/Security/CWE-259/ConstantPassword.ql ql/swift/ql/src/queries/Security/CWE-311/CleartextStorageDatabase.ql ql/swift/ql/src/queries/Security/CWE-311/CleartextTransmission.ql ql/swift/ql/src/queries/Security/CWE-312/CleartextLogging.ql ql/swift/ql/src/queries/Security/CWE-312/CleartextStoragePreferences.ql -ql/swift/ql/src/queries/Security/CWE-321/HardcodedEncryptionKey.ql ql/swift/ql/src/queries/Security/CWE-327/ECBEncryption.ql ql/swift/ql/src/queries/Security/CWE-328/WeakPasswordHashing.ql ql/swift/ql/src/queries/Security/CWE-328/WeakSensitiveDataHashing.ql diff --git a/swift/ql/integration-tests/posix/query-suite/swift-security-extended.qls.expected b/swift/ql/integration-tests/posix/query-suite/swift-security-extended.qls.expected index 412d0816aff..f1d01d4d065 100644 --- a/swift/ql/integration-tests/posix/query-suite/swift-security-extended.qls.expected +++ b/swift/ql/integration-tests/posix/query-suite/swift-security-extended.qls.expected @@ -15,12 +15,10 @@ ql/swift/ql/src/queries/Security/CWE-1204/StaticInitializationVector.ql ql/swift/ql/src/queries/Security/CWE-1333/ReDoS.ql ql/swift/ql/src/queries/Security/CWE-134/UncontrolledFormatString.ql ql/swift/ql/src/queries/Security/CWE-135/StringLengthConflation.ql -ql/swift/ql/src/queries/Security/CWE-259/ConstantPassword.ql ql/swift/ql/src/queries/Security/CWE-311/CleartextStorageDatabase.ql ql/swift/ql/src/queries/Security/CWE-311/CleartextTransmission.ql ql/swift/ql/src/queries/Security/CWE-312/CleartextLogging.ql ql/swift/ql/src/queries/Security/CWE-312/CleartextStoragePreferences.ql -ql/swift/ql/src/queries/Security/CWE-321/HardcodedEncryptionKey.ql ql/swift/ql/src/queries/Security/CWE-327/ECBEncryption.ql ql/swift/ql/src/queries/Security/CWE-328/WeakPasswordHashing.ql ql/swift/ql/src/queries/Security/CWE-328/WeakSensitiveDataHashing.ql From dabeddb62dc485ba5f73f55f3747b344ef366b9e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Fri, 16 May 2025 12:48:38 +0200 Subject: [PATCH 456/656] Add change-notes. --- .../ql/src/change-notes/2025-05-16-hardcoded-credentials.md | 4 ++++ go/ql/src/change-notes/2025-05-16-hardcoded-credentials.md | 4 ++++ java/ql/src/change-notes/2025-05-16-hardcoded-credentials.md | 4 ++++ .../ql/src/change-notes/2025-05-16-hardcoded-credentials.md | 4 ++++ .../ql/src/change-notes/2025-05-16-hardcoded-credentials.md | 4 ++++ ruby/ql/src/change-notes/2025-05-16-hardcoded-credentials.md | 4 ++++ swift/ql/src/change-notes/2025-05-16-hardcoded-credentials.md | 4 ++++ 7 files changed, 28 insertions(+) create mode 100644 csharp/ql/src/change-notes/2025-05-16-hardcoded-credentials.md create mode 100644 go/ql/src/change-notes/2025-05-16-hardcoded-credentials.md create mode 100644 java/ql/src/change-notes/2025-05-16-hardcoded-credentials.md create mode 100644 javascript/ql/src/change-notes/2025-05-16-hardcoded-credentials.md create mode 100644 python/ql/src/change-notes/2025-05-16-hardcoded-credentials.md create mode 100644 ruby/ql/src/change-notes/2025-05-16-hardcoded-credentials.md create mode 100644 swift/ql/src/change-notes/2025-05-16-hardcoded-credentials.md diff --git a/csharp/ql/src/change-notes/2025-05-16-hardcoded-credentials.md b/csharp/ql/src/change-notes/2025-05-16-hardcoded-credentials.md new file mode 100644 index 00000000000..6255db9c199 --- /dev/null +++ b/csharp/ql/src/change-notes/2025-05-16-hardcoded-credentials.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The queries `cs/password-in-configuration`, `cs/hardcoded-credentials` and `cs/hardcoded-connection-string-credentials` have been removed from all query suites. diff --git a/go/ql/src/change-notes/2025-05-16-hardcoded-credentials.md b/go/ql/src/change-notes/2025-05-16-hardcoded-credentials.md new file mode 100644 index 00000000000..b25a9b3d056 --- /dev/null +++ b/go/ql/src/change-notes/2025-05-16-hardcoded-credentials.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `go/hardcoded-credentials` has been removed from all query suites. diff --git a/java/ql/src/change-notes/2025-05-16-hardcoded-credentials.md b/java/ql/src/change-notes/2025-05-16-hardcoded-credentials.md new file mode 100644 index 00000000000..18340ca8774 --- /dev/null +++ b/java/ql/src/change-notes/2025-05-16-hardcoded-credentials.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `java/hardcoded-credential-api-call` has been removed from all query suites. diff --git a/javascript/ql/src/change-notes/2025-05-16-hardcoded-credentials.md b/javascript/ql/src/change-notes/2025-05-16-hardcoded-credentials.md new file mode 100644 index 00000000000..99af2e2c448 --- /dev/null +++ b/javascript/ql/src/change-notes/2025-05-16-hardcoded-credentials.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The queries `js/hardcoded-credentials` and `js/password-in-configuration-file` have been removed from all query suites. diff --git a/python/ql/src/change-notes/2025-05-16-hardcoded-credentials.md b/python/ql/src/change-notes/2025-05-16-hardcoded-credentials.md new file mode 100644 index 00000000000..ee550ce449b --- /dev/null +++ b/python/ql/src/change-notes/2025-05-16-hardcoded-credentials.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `py/hardcoded-credentials` has been removed from all query suites. diff --git a/ruby/ql/src/change-notes/2025-05-16-hardcoded-credentials.md b/ruby/ql/src/change-notes/2025-05-16-hardcoded-credentials.md new file mode 100644 index 00000000000..684b1b3ea78 --- /dev/null +++ b/ruby/ql/src/change-notes/2025-05-16-hardcoded-credentials.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `rb/hardcoded-credentials` has been removed from all query suites. diff --git a/swift/ql/src/change-notes/2025-05-16-hardcoded-credentials.md b/swift/ql/src/change-notes/2025-05-16-hardcoded-credentials.md new file mode 100644 index 00000000000..cc524d8c34d --- /dev/null +++ b/swift/ql/src/change-notes/2025-05-16-hardcoded-credentials.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The queries `swift/hardcoded-key` and `swift/constant-password` have been removed from all query suites. From 757a4877e0d1bc0d5ba93bef062c83e0435ad538 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 19 May 2025 11:10:29 +0200 Subject: [PATCH 457/656] C++: Do not use deprecated `hasLocationInfo` in `FlowTestCommon` --- cpp/ql/lib/utils/test/dataflow/FlowTestCommon.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/utils/test/dataflow/FlowTestCommon.qll b/cpp/ql/lib/utils/test/dataflow/FlowTestCommon.qll index 0effb698f41..e4eec5dbe12 100644 --- a/cpp/ql/lib/utils/test/dataflow/FlowTestCommon.qll +++ b/cpp/ql/lib/utils/test/dataflow/FlowTestCommon.qll @@ -26,7 +26,7 @@ module IRFlowTest implements TestSig { n = strictcount(int line, int column | Flow::flow(any(IRDataFlow::Node otherSource | - otherSource.hasLocationInfo(_, line, column, _, _) + otherSource.getLocation().hasLocationInfo(_, line, column, _, _) ), sink) ) and ( @@ -55,7 +55,7 @@ module AstFlowTest implements TestSig { n = strictcount(int line, int column | Flow::flow(any(AstDataFlow::Node otherSource | - otherSource.hasLocationInfo(_, line, column, _, _) + otherSource.getLocation().hasLocationInfo(_, line, column, _, _) ), sink) ) and ( From d20a602aabe947867f6d26d5f63149558a232def Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 19 May 2025 11:07:37 +0100 Subject: [PATCH 458/656] Rust: Accept consistency check failures. --- .../sources/CONSISTENCY/ExtractionConsistency.expected | 2 ++ .../sources/CONSISTENCY/PathResolutionConsistency.expected | 3 +++ 2 files changed, 5 insertions(+) create mode 100644 rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/ExtractionConsistency.expected create mode 100644 rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/ExtractionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/ExtractionConsistency.expected new file mode 100644 index 00000000000..9b32055d17f --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/ExtractionConsistency.expected @@ -0,0 +1,2 @@ +extractionWarning +| target/debug/build/typenum-a2c428dcba158190/out/tests.rs:1:1:1:1 | semantic analyzer unavailable (not included in files loaded from manifest) | diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..0819f608024 --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,3 @@ +multipleMethodCallTargets +| test.rs:618:25:618:49 | address.to_socket_addrs() | file://:0:0:0:0 | fn to_socket_addrs | +| test.rs:618:25:618:49 | address.to_socket_addrs() | file://:0:0:0:0 | fn to_socket_addrs | From 1e8a49f31121930fcb29e2a55f90fd10fc03fdac Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 19 May 2025 11:18:29 +0200 Subject: [PATCH 459/656] JS: More efficient nested package naming --- javascript/ql/lib/semmle/javascript/NPM.qll | 29 ++++++++++--------- .../ql/test/library-tests/NPM/tests.expected | 1 - 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/NPM.qll b/javascript/ql/lib/semmle/javascript/NPM.qll index 92e34959414..cbe580b4568 100644 --- a/javascript/ql/lib/semmle/javascript/NPM.qll +++ b/javascript/ql/lib/semmle/javascript/NPM.qll @@ -22,6 +22,13 @@ class PackageJson extends JsonObject { pragma[nomagic] string getDeclaredPackageName() { result = this.getPropStringValue("name") } + /** + * Gets the nearest `package.json` file found in the parent directories, if any. + */ + PackageJson getEnclosingPackage() { + result.getFolder() = packageInternalParent*(this.getFolder().getParentContainer()) + } + /** * Gets the name of this package. * If the package is located under the package `pkg1` and its relative path is `foo/bar`, then the resulting package name will be `pkg1/foo/bar`. @@ -29,18 +36,13 @@ class PackageJson extends JsonObject { string getPackageName() { result = this.getDeclaredPackageName() or - exists( - PackageJson parentPkg, Container currentDir, Container parentDir, string parentPkgName, - string pkgNameDiff - | - currentDir = this.getJsonFile().getParentContainer() and - parentDir = parentPkg.getJsonFile().getParentContainer() and - parentPkgName = parentPkg.getPropStringValue("name") and - parentDir.getAChildContainer+() = currentDir and - pkgNameDiff = currentDir.getAbsolutePath().suffix(parentDir.getAbsolutePath().length()) and - not exists(pkgNameDiff.indexOf("/node_modules/")) and - result = parentPkgName + pkgNameDiff and - not parentPkg.isPrivate() + not exists(this.getDeclaredPackageName()) and + exists(PackageJson parent | + parent = this.getEnclosingPackage() and + not parent.isPrivate() and + result = + parent.getDeclaredPackageName() + + this.getFolder().getRelativePath().suffix(parent.getFolder().getRelativePath().length()) ) } @@ -405,5 +407,6 @@ class NpmPackage extends @folder { */ private Folder packageInternalParent(Container c) { result = c.getParentContainer() and - not c.(Folder).getBaseName() = "node_modules" + not c.(Folder).getBaseName() = "node_modules" and + not c = any(PackageJson pkg).getFolder() } diff --git a/javascript/ql/test/library-tests/NPM/tests.expected b/javascript/ql/test/library-tests/NPM/tests.expected index 568bd0a7a82..59970dcd3d6 100644 --- a/javascript/ql/test/library-tests/NPM/tests.expected +++ b/javascript/ql/test/library-tests/NPM/tests.expected @@ -39,7 +39,6 @@ modules | src/node_modules/nested | nested | src/node_modules/nested/tst3.js:1:1:2:13 | | | src/node_modules/nested/node_modules/a | a | src/node_modules/nested/node_modules/a/index.js:1:1:1:25 | | | src/node_modules/parent-module | parent-module | src/node_modules/parent-module/main.js:1:1:2:0 | | -| src/node_modules/parent-module | parent-module | src/node_modules/parent-module/sub-module/main.js:1:1:2:0 | | | src/node_modules/parent-module/sub-module | parent-module/sub-module | src/node_modules/parent-module/sub-module/main.js:1:1:2:0 | | | src/node_modules/third-party-module | third-party-module | src/node_modules/third-party-module/fancy.js:1:1:4:0 | | npm From 317e61d370e8dc479d575062abba76adefaa0f5b Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 19 May 2025 12:53:05 +0200 Subject: [PATCH 460/656] JS: Update UnresolvableImports to handle nested packages --- javascript/ql/src/NodeJS/UnresolvableImport.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/NodeJS/UnresolvableImport.ql b/javascript/ql/src/NodeJS/UnresolvableImport.ql index 28c46229cf6..972a6b21ccb 100644 --- a/javascript/ql/src/NodeJS/UnresolvableImport.ql +++ b/javascript/ql/src/NodeJS/UnresolvableImport.ql @@ -36,7 +36,7 @@ where not exists(r.getImportedModule()) and // no enclosing NPM package declares a dependency on `mod` forex(NpmPackage pkg, PackageJson pkgJson | - pkg.getAModule() = r.getTopLevel() and pkgJson = pkg.getPackageJson() + pkg.getAModule() = r.getTopLevel() and pkgJson = pkg.getPackageJson().getEnclosingPackage*() | not pkgJson.declaresDependency(mod, _) and not pkgJson.getPeerDependencies().getADependency(mod, _) and From 4bbdc9a1cddd9bbabb5013357a12714471184e27 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 19 May 2025 12:08:53 +0100 Subject: [PATCH 461/656] Rust: Simplify SensitiveData.qll. --- .../codeql/rust/security/SensitiveData.qll | 82 ++++--------------- 1 file changed, 15 insertions(+), 67 deletions(-) diff --git a/rust/ql/lib/codeql/rust/security/SensitiveData.qll b/rust/ql/lib/codeql/rust/security/SensitiveData.qll index 3dcc48a799a..703a5099317 100644 --- a/rust/ql/lib/codeql/rust/security/SensitiveData.qll +++ b/rust/ql/lib/codeql/rust/security/SensitiveData.qll @@ -22,77 +22,26 @@ abstract class SensitiveData extends DataFlow::Node { } /** - * A function that might produce sensitive data. + * A function call or enum variant data flow node that might produce sensitive data. */ -private class SensitiveDataFunction extends Function { +private class SensitiveDataCall extends SensitiveData { SensitiveDataClassification classification; - SensitiveDataFunction() { - HeuristicNames::nameIndicatesSensitiveData(this.getName().getText(), classification) - } - - SensitiveDataClassification getClassification() { result = classification } -} - -/** - * A function call data flow node that might produce sensitive data. - */ -private class SensitiveDataFunctionCall extends SensitiveData { - SensitiveDataClassification classification; - - SensitiveDataFunctionCall() { - classification = - this.asExpr() - .getAstNode() - .(CallExprBase) - .getStaticTarget() - .(SensitiveDataFunction) - .getClassification() + SensitiveDataCall() { + exists(CallExprBase call, string name | + call = this.asExpr().getExpr() and + name = + [ + call.getStaticTarget().(Function).getName().getText(), + call.(CallExpr).getVariant().getName().getText(), + ] and + HeuristicNames::nameIndicatesSensitiveData(name, classification) + ) } override SensitiveDataClassification getClassification() { result = classification } } -/** - * An enum variant that might produce sensitive data. - */ -private class SensitiveDataVariant extends Variant { - SensitiveDataClassification classification; - - SensitiveDataVariant() { - HeuristicNames::nameIndicatesSensitiveData(this.getName().getText(), classification) - } - - SensitiveDataClassification getClassification() { result = classification } -} - -/** - * An enum variant call data flow node that might produce sensitive data. - */ -private class SensitiveDataVariantCall extends SensitiveData { - SensitiveDataClassification classification; - - SensitiveDataVariantCall() { - classification = - this.asExpr().getAstNode().(CallExpr).getVariant().(SensitiveDataVariant).getClassification() - } - - override SensitiveDataClassification getClassification() { result = classification } -} - -/** - * A variable that might contain sensitive data. - */ -private class SensitiveDataVariable extends Variable { - SensitiveDataClassification classification; - - SensitiveDataVariable() { - HeuristicNames::nameIndicatesSensitiveData(this.getText(), classification) - } - - SensitiveDataClassification getClassification() { result = classification } -} - /** * A variable access data flow node that might be sensitive data. */ @@ -100,13 +49,12 @@ private class SensitiveVariableAccess extends SensitiveData { SensitiveDataClassification classification; SensitiveVariableAccess() { - classification = - this.asExpr() + HeuristicNames::nameIndicatesSensitiveData(this.asExpr() .getAstNode() .(VariableAccess) .getVariable() - .(SensitiveDataVariable) - .getClassification() + .(Variable) + .getText(), classification) } override SensitiveDataClassification getClassification() { result = classification } From b503b1ef6ccae745b728267da585dc0559333bb5 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 19 May 2025 12:09:27 +0100 Subject: [PATCH 462/656] Rust: Prefer getExpr() over getAstNode(). --- rust/ql/lib/codeql/rust/security/SensitiveData.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/security/SensitiveData.qll b/rust/ql/lib/codeql/rust/security/SensitiveData.qll index 703a5099317..bf3364abdb6 100644 --- a/rust/ql/lib/codeql/rust/security/SensitiveData.qll +++ b/rust/ql/lib/codeql/rust/security/SensitiveData.qll @@ -50,7 +50,7 @@ private class SensitiveVariableAccess extends SensitiveData { SensitiveVariableAccess() { HeuristicNames::nameIndicatesSensitiveData(this.asExpr() - .getAstNode() + .getExpr() .(VariableAccess) .getVariable() .(Variable) @@ -69,7 +69,7 @@ private class SensitiveFieldAccess extends SensitiveData { SensitiveDataClassification classification; SensitiveFieldAccess() { - exists(FieldExpr fe | fieldExprParentField*(fe) = this.asExpr().getAstNode() | + exists(FieldExpr fe | fieldExprParentField*(fe) = this.asExpr().getExpr() | HeuristicNames::nameIndicatesSensitiveData(fe.getIdentifier().getText(), classification) ) } From c74321a2eea531622907ebb62ff009875e728b63 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 16 May 2025 12:21:07 +0200 Subject: [PATCH 463/656] all: used Erik's script to delete outdated deprecations --- .../cpp/dataflow/internal/DataFlowUtil.qll | 13 --- .../cpp/ir/dataflow/internal/DataFlowUtil.qll | 13 --- .../lib/semmle/code/cpp/security/Security.qll | 90 ------------------- .../code/cpp/security/SecurityOptions.qll | 24 ----- .../codeql/swift/dataflow/ExternalFlow.qll | 38 -------- .../lib/codeql/swift/dataflow/FlowSummary.qll | 10 --- .../dataflow/internal/DataFlowPublic.qll | 13 --- .../WeakSensitiveDataHashingQuery.qll | 4 - 8 files changed, 205 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll index 4a8ea4ebd43..72e742f13aa 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll @@ -98,19 +98,6 @@ class Node extends TNode { /** Gets the location of this element. */ Location getLocation() { none() } // overridden by subclasses - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - deprecated predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - /** * Gets an upper bound on the type of this node. */ diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll index 62ad9f02fe2..ab6a9da6d85 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll @@ -538,19 +538,6 @@ class Node extends TIRDataFlowNode { none() // overridden by subclasses } - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - deprecated predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - /** Gets a textual representation of this element. */ cached final string toString() { diff --git a/cpp/ql/lib/semmle/code/cpp/security/Security.qll b/cpp/ql/lib/semmle/code/cpp/security/Security.qll index 63bdd685a20..fc2ec2a595e 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/Security.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/Security.qll @@ -42,58 +42,6 @@ class SecurityOptions extends string { ) } - /** - * The argument of the given function is filled in from user input. - */ - deprecated predicate userInputArgument(FunctionCall functionCall, int arg) { - exists(string fname | - functionCall.getTarget().hasGlobalOrStdName(fname) and - exists(functionCall.getArgument(arg)) and - ( - fname = ["fread", "fgets", "fgetws", "gets"] and arg = 0 - or - fname = "scanf" and arg >= 1 - or - fname = "fscanf" and arg >= 2 - ) - or - functionCall.getTarget().hasGlobalName(fname) and - exists(functionCall.getArgument(arg)) and - fname = "getaddrinfo" and - arg = 3 - ) - or - exists(RemoteFlowSourceFunction remote, FunctionOutput output | - functionCall.getTarget() = remote and - output.isParameterDerefOrQualifierObject(arg) and - remote.hasRemoteFlowSource(output, _) - ) - } - - /** - * The return value of the given function is filled in from user input. - */ - deprecated predicate userInputReturned(FunctionCall functionCall) { - exists(string fname | - functionCall.getTarget().getName() = fname and - ( - fname = ["fgets", "gets"] or - this.userInputReturn(fname) - ) - ) - or - exists(RemoteFlowSourceFunction remote, FunctionOutput output | - functionCall.getTarget() = remote and - (output.isReturnValue() or output.isReturnValueDeref()) and - remote.hasRemoteFlowSource(output, _) - ) - } - - /** - * DEPRECATED: Users should override `userInputReturned()` instead. - */ - deprecated predicate userInputReturn(string function) { none() } - /** * The argument of the given function is used for running a process or loading * a library. @@ -108,29 +56,6 @@ class SecurityOptions extends string { function = ["LoadLibrary", "LoadLibraryA", "LoadLibraryW"] and arg = 0 } - /** - * This predicate should hold if the expression is directly - * computed from user input. Such expressions are treated as - * sources of taint. - */ - deprecated predicate isUserInput(Expr expr, string cause) { - exists(FunctionCall fc, int i | - this.userInputArgument(fc, i) and - expr = fc.getArgument(i) and - cause = fc.getTarget().getName() - ) - or - exists(FunctionCall fc | - this.userInputReturned(fc) and - expr = fc and - cause = fc.getTarget().getName() - ) - or - commandLineArg(expr) and cause = "argv" - or - expr.(EnvironmentRead).getSourceDescription() = cause - } - /** * This predicate should hold if the expression raises privilege for the * current session. The default definition only holds true for some @@ -173,21 +98,6 @@ predicate argv(Parameter argv) { /** Convenience accessor for SecurityOptions.isPureFunction */ predicate isPureFunction(string name) { exists(SecurityOptions opts | opts.isPureFunction(name)) } -/** Convenience accessor for SecurityOptions.userInputArgument */ -deprecated predicate userInputArgument(FunctionCall functionCall, int arg) { - exists(SecurityOptions opts | opts.userInputArgument(functionCall, arg)) -} - -/** Convenience accessor for SecurityOptions.userInputReturn */ -deprecated predicate userInputReturned(FunctionCall functionCall) { - exists(SecurityOptions opts | opts.userInputReturned(functionCall)) -} - -/** Convenience accessor for SecurityOptions.isUserInput */ -deprecated predicate isUserInput(Expr expr, string cause) { - exists(SecurityOptions opts | opts.isUserInput(expr, cause)) -} - /** Convenience accessor for SecurityOptions.isProcessOperationArgument */ predicate isProcessOperationArgument(string function, int arg) { exists(SecurityOptions opts | opts.isProcessOperationArgument(function, arg)) diff --git a/cpp/ql/lib/semmle/code/cpp/security/SecurityOptions.qll b/cpp/ql/lib/semmle/code/cpp/security/SecurityOptions.qll index 81815971478..612b495d3e6 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/SecurityOptions.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/SecurityOptions.qll @@ -22,28 +22,4 @@ class CustomSecurityOptions extends SecurityOptions { // for example: (function = "MySpecialSqlFunction" and arg = 0) none() // rules to match custom functions replace this line } - - deprecated override predicate userInputArgument(FunctionCall functionCall, int arg) { - SecurityOptions.super.userInputArgument(functionCall, arg) - or - exists(string fname | - functionCall.getTarget().hasGlobalName(fname) and - exists(functionCall.getArgument(arg)) and - // --- custom functions that return user input via one of their arguments: - // 'arg' is the 0-based index of the argument that is used to return user input - // for example: (fname = "readXmlInto" and arg = 1) - none() // rules to match custom functions replace this line - ) - } - - deprecated override predicate userInputReturned(FunctionCall functionCall) { - SecurityOptions.super.userInputReturned(functionCall) - or - exists(string fname | - functionCall.getTarget().hasGlobalName(fname) and - // --- custom functions that return user input via their return value: - // for example: fname = "xmlReadAttribute" - none() // rules to match custom functions replace this line - ) - } } diff --git a/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll b/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll index f396f9536e8..7fac65ecde5 100644 --- a/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll +++ b/swift/ql/lib/codeql/swift/dataflow/ExternalFlow.qll @@ -446,44 +446,6 @@ Element interpretElement( ) } -deprecated private predicate parseField(AccessPathToken c, Content::FieldContent f) { - exists(string fieldRegex, string name | - c.getName() = "Field" and - fieldRegex = "^([^.]+)$" and - name = c.getAnArgument().regexpCapture(fieldRegex, 1) and - f.getField().getName() = name - ) -} - -deprecated private predicate parseTuple(AccessPathToken c, Content::TupleContent t) { - c.getName() = "TupleElement" and - t.getIndex() = c.getAnArgument().toInt() -} - -deprecated private predicate parseEnum(AccessPathToken c, Content::EnumContent e) { - c.getName() = "EnumElement" and - c.getAnArgument() = e.getSignature() - or - c.getName() = "OptionalSome" and - e.getSignature() = "some:0" -} - -/** Holds if the specification component parses as a `Content`. */ -deprecated predicate parseContent(AccessPathToken component, Content content) { - parseField(component, content) - or - parseTuple(component, content) - or - parseEnum(component, content) - or - // map legacy "ArrayElement" specification components to `CollectionContent` - component.getName() = "ArrayElement" and - content instanceof Content::CollectionContent - or - component.getName() = "CollectionElement" and - content instanceof Content::CollectionContent -} - cached private module Cached { /** diff --git a/swift/ql/lib/codeql/swift/dataflow/FlowSummary.qll b/swift/ql/lib/codeql/swift/dataflow/FlowSummary.qll index fadee4aee6f..0cec06a7c9c 100644 --- a/swift/ql/lib/codeql/swift/dataflow/FlowSummary.qll +++ b/swift/ql/lib/codeql/swift/dataflow/FlowSummary.qll @@ -13,14 +13,4 @@ private module Summaries { private import codeql.swift.frameworks.Frameworks } -deprecated class SummaryComponent = Impl::Private::SummaryComponent; - -deprecated module SummaryComponent = Impl::Private::SummaryComponent; - -deprecated class SummaryComponentStack = Impl::Private::SummaryComponentStack; - -deprecated module SummaryComponentStack = Impl::Private::SummaryComponentStack; - class SummarizedCallable = Impl::Public::SummarizedCallable; - -deprecated class RequiredSummaryComponentStack = Impl::Private::RequiredSummaryComponentStack; diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll index b14bd5d5f59..0c5a4fbb2a6 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll @@ -19,19 +19,6 @@ class Node extends TNode { cached final Location getLocation() { result = this.(NodeImpl).getLocationImpl() } - /** - * Holds if this element is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - deprecated predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } - /** * Gets the expression that corresponds to this node, if any. */ diff --git a/swift/ql/lib/codeql/swift/security/WeakSensitiveDataHashingQuery.qll b/swift/ql/lib/codeql/swift/security/WeakSensitiveDataHashingQuery.qll index 5aba8ffa1b0..ade9d9f1437 100755 --- a/swift/ql/lib/codeql/swift/security/WeakSensitiveDataHashingQuery.qll +++ b/swift/ql/lib/codeql/swift/security/WeakSensitiveDataHashingQuery.qll @@ -40,8 +40,4 @@ module WeakSensitiveDataHashingConfig implements DataFlow::ConfigSig { } } -deprecated module WeakHashingConfig = WeakSensitiveDataHashingConfig; - module WeakSensitiveDataHashingFlow = TaintTracking::Global; - -deprecated module WeakHashingFlow = WeakSensitiveDataHashingFlow; From 703aec199081ec3cff0eefc4f9de1eae6af47458 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 16 May 2025 18:14:12 +0200 Subject: [PATCH 464/656] cpp: removed now unused predicate `commandLineArg` --- cpp/ql/lib/semmle/code/cpp/security/Security.qll | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/security/Security.qll b/cpp/ql/lib/semmle/code/cpp/security/Security.qll index fc2ec2a595e..df1555ec4c8 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/Security.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/Security.qll @@ -77,16 +77,6 @@ class SecurityOptions extends string { } } -/** - * An access to the argv argument to main(). - */ -private predicate commandLineArg(Expr e) { - exists(Parameter argv | - argv(argv) and - argv.getAnAccess() = e - ) -} - /** The argv parameter to the main function */ predicate argv(Parameter argv) { exists(Function f | From 673655e093c535ca103ec7082c9eea26a66e80d6 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Sun, 18 May 2025 15:54:56 +0200 Subject: [PATCH 465/656] added change notes --- .../2025-05-18-2025-May-outdated-deprecations.md | 9 +++++++++ .../2025-05-18-2025-May-outdated-deprecations.md | 10 ++++++++++ 2 files changed, 19 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2025-05-18-2025-May-outdated-deprecations.md create mode 100644 swift/ql/lib/change-notes/2025-05-18-2025-May-outdated-deprecations.md diff --git a/cpp/ql/lib/change-notes/2025-05-18-2025-May-outdated-deprecations.md b/cpp/ql/lib/change-notes/2025-05-18-2025-May-outdated-deprecations.md new file mode 100644 index 00000000000..b1a31ea6eb5 --- /dev/null +++ b/cpp/ql/lib/change-notes/2025-05-18-2025-May-outdated-deprecations.md @@ -0,0 +1,9 @@ +--- +category: breaking +--- +* Deleted the deprecated `userInputArgument` predicate and its convenience accessor from the `Security.qll`. +* Deleted the deprecated `userInputReturned` predicate and its convenience accessor from the `Security.qll`. +* Deleted the deprecated `userInputReturn` predicate from the `Security.qll`. +* Deleted the deprecated `isUserInput` predicate and its convenience accessor from the `Security.qll`. +* Deleted the deprecated `userInputArgument` predicate from the `SecurityOptions.qll`. +* Deleted the deprecated `userInputReturned` predicate from the `SecurityOptions.qll`. diff --git a/swift/ql/lib/change-notes/2025-05-18-2025-May-outdated-deprecations.md b/swift/ql/lib/change-notes/2025-05-18-2025-May-outdated-deprecations.md new file mode 100644 index 00000000000..072e6bba5cd --- /dev/null +++ b/swift/ql/lib/change-notes/2025-05-18-2025-May-outdated-deprecations.md @@ -0,0 +1,10 @@ +--- +category: breaking +--- +* Deleted the deprecated `parseContent` predicate from the `ExternalFlow.qll`. +* Deleted the deprecated `hasLocationInfo` predicate from the `DataFlowPublic.qll`. +* Deleted the deprecated `SummaryComponent` class from the `FlowSummary.qll`. +* Deleted the deprecated `SummaryComponentStack` class from the `FlowSummary.qll`. +* Deleted the deprecated `SummaryComponent` module from the `FlowSummary.qll`. +* Deleted the deprecated `SummaryComponentStack` module from the `FlowSummary.qll`. +* Deleted the deprecated `RequiredSummaryComponentStack` class from the `FlowSummary.qll`. From f4ff815253686fa0d47739e96deb46d4a874503c Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 19 May 2025 15:12:38 +0200 Subject: [PATCH 466/656] Rust: Add additional type inference tests --- .../test/library-tests/type-inference/main.rs | 22 + .../type-inference/type-inference.expected | 1260 +++++++++-------- 2 files changed, 679 insertions(+), 603 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index f6c879f24b6..ab4a5c99e4b 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -784,6 +784,16 @@ mod method_supertraits { impl MyTrait3 for MyThing2 {} + fn call_trait_m1>(x: T2) -> T1 { + x.m1() // $ method=MyTrait1::m1 + } + + fn type_param_trait_to_supertrait>(x: T) { + // Test that `MyTrait3` is a subtrait of `MyTrait1>` + let a = x.m1(); // $ method=MyTrait1::m1 type=a:MyThing type=a:A.S1 + println!("{:?}", a); + } + pub fn f() { let x = MyThing { a: S1 }; let y = MyThing { a: S2 }; @@ -802,6 +812,12 @@ mod method_supertraits { println!("{:?}", x.m3()); // $ method=m3 type=x.m3():S1 println!("{:?}", y.m3()); // $ method=m3 type=y.m3():S2 + + let x = MyThing { a: S1 }; + let s = call_trait_m1(x); // $ type=s:S1 + + let x = MyThing2 { a: S2 }; + let s = call_trait_m1(x); // $ type=s:MyThing type=s:A.S2 } } @@ -1054,6 +1070,12 @@ mod method_call_type_conversion { let x6 = &S(S2); // explicit dereference println!("{:?}", (*x6).m1()); // $ method=m1 + + let x7 = S(&S2); + // Non-implicit dereference with nested borrow in order to test that the + // implicit dereference handling doesn't affect nested borrows. + let t = x7.m1(); // $ method=m1 type=t:& type=t:&T.S2 + println!("{:?}", x7); } } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index c2625e0c98e..27ea38cffd8 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1,4 +1,6 @@ testFailures +| main.rs:793:25:793:75 | //... | Missing result: type=a:A.S1 | +| main.rs:793:25:793:75 | //... | Missing result: type=a:MyThing | inferType | loop/main.rs:7:12:7:15 | SelfParam | | loop/main.rs:6:1:8:1 | Self [trait T1] | | loop/main.rs:11:12:11:15 | SelfParam | | loop/main.rs:10:1:14:1 | Self [trait T2] | @@ -791,606 +793,658 @@ inferType | main.rs:779:26:779:29 | self | | main.rs:726:5:729:5 | MyThing2 | | main.rs:779:26:779:29 | self | A | main.rs:776:10:776:10 | T | | main.rs:779:26:779:31 | self.a | | main.rs:776:10:776:10 | T | -| main.rs:788:13:788:13 | x | | main.rs:721:5:724:5 | MyThing | -| main.rs:788:13:788:13 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:788:17:788:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | -| main.rs:788:17:788:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | -| main.rs:788:30:788:31 | S1 | | main.rs:731:5:732:14 | S1 | -| main.rs:789:13:789:13 | y | | main.rs:721:5:724:5 | MyThing | -| main.rs:789:13:789:13 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:789:17:789:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | -| main.rs:789:17:789:33 | MyThing {...} | A | main.rs:733:5:734:14 | S2 | -| main.rs:789:30:789:31 | S2 | | main.rs:733:5:734:14 | S2 | -| main.rs:791:26:791:26 | x | | main.rs:721:5:724:5 | MyThing | -| main.rs:791:26:791:26 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:791:26:791:31 | x.m1() | | main.rs:731:5:732:14 | S1 | -| main.rs:792:26:792:26 | y | | main.rs:721:5:724:5 | MyThing | -| main.rs:792:26:792:26 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:792:26:792:31 | y.m1() | | main.rs:733:5:734:14 | S2 | -| main.rs:794:13:794:13 | x | | main.rs:721:5:724:5 | MyThing | -| main.rs:794:13:794:13 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:794:17:794:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | -| main.rs:794:17:794:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | -| main.rs:794:30:794:31 | S1 | | main.rs:731:5:732:14 | S1 | -| main.rs:795:13:795:13 | y | | main.rs:721:5:724:5 | MyThing | -| main.rs:795:13:795:13 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:795:17:795:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | -| main.rs:795:17:795:33 | MyThing {...} | A | main.rs:733:5:734:14 | S2 | -| main.rs:795:30:795:31 | S2 | | main.rs:733:5:734:14 | S2 | -| main.rs:797:26:797:26 | x | | main.rs:721:5:724:5 | MyThing | -| main.rs:797:26:797:26 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:797:26:797:31 | x.m2() | | main.rs:731:5:732:14 | S1 | -| main.rs:798:26:798:26 | y | | main.rs:721:5:724:5 | MyThing | -| main.rs:798:26:798:26 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:798:26:798:31 | y.m2() | | main.rs:733:5:734:14 | S2 | -| main.rs:800:13:800:13 | x | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:800:13:800:13 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:800:17:800:34 | MyThing2 {...} | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:800:17:800:34 | MyThing2 {...} | A | main.rs:731:5:732:14 | S1 | -| main.rs:800:31:800:32 | S1 | | main.rs:731:5:732:14 | S1 | -| main.rs:801:13:801:13 | y | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:801:13:801:13 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:801:17:801:34 | MyThing2 {...} | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:801:17:801:34 | MyThing2 {...} | A | main.rs:733:5:734:14 | S2 | -| main.rs:801:31:801:32 | S2 | | main.rs:733:5:734:14 | S2 | -| main.rs:803:26:803:26 | x | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:803:26:803:26 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:803:26:803:31 | x.m3() | | main.rs:731:5:732:14 | S1 | -| main.rs:804:26:804:26 | y | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:804:26:804:26 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:804:26:804:31 | y.m3() | | main.rs:733:5:734:14 | S2 | -| main.rs:822:22:822:22 | x | | file://:0:0:0:0 | & | -| main.rs:822:22:822:22 | x | &T | main.rs:822:11:822:19 | T | -| main.rs:822:35:824:5 | { ... } | | file://:0:0:0:0 | & | -| main.rs:822:35:824:5 | { ... } | &T | main.rs:822:11:822:19 | T | -| main.rs:823:9:823:9 | x | | file://:0:0:0:0 | & | -| main.rs:823:9:823:9 | x | &T | main.rs:822:11:822:19 | T | -| main.rs:827:17:827:20 | SelfParam | | main.rs:812:5:813:14 | S1 | -| main.rs:827:29:829:9 | { ... } | | main.rs:815:5:816:14 | S2 | -| main.rs:828:13:828:14 | S2 | | main.rs:815:5:816:14 | S2 | -| main.rs:832:21:832:21 | x | | main.rs:832:13:832:14 | T1 | -| main.rs:835:5:837:5 | { ... } | | main.rs:832:17:832:18 | T2 | -| main.rs:836:9:836:9 | x | | main.rs:832:13:832:14 | T1 | -| main.rs:836:9:836:16 | x.into() | | main.rs:832:17:832:18 | T2 | -| main.rs:840:13:840:13 | x | | main.rs:812:5:813:14 | S1 | -| main.rs:840:17:840:18 | S1 | | main.rs:812:5:813:14 | S1 | -| main.rs:841:26:841:31 | id(...) | | file://:0:0:0:0 | & | -| main.rs:841:26:841:31 | id(...) | &T | main.rs:812:5:813:14 | S1 | -| main.rs:841:29:841:30 | &x | | file://:0:0:0:0 | & | -| main.rs:841:29:841:30 | &x | &T | main.rs:812:5:813:14 | S1 | -| main.rs:841:30:841:30 | x | | main.rs:812:5:813:14 | S1 | -| main.rs:843:13:843:13 | x | | main.rs:812:5:813:14 | S1 | -| main.rs:843:17:843:18 | S1 | | main.rs:812:5:813:14 | S1 | -| main.rs:844:26:844:37 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:844:26:844:37 | id::<...>(...) | &T | main.rs:812:5:813:14 | S1 | -| main.rs:844:35:844:36 | &x | | file://:0:0:0:0 | & | -| main.rs:844:35:844:36 | &x | &T | main.rs:812:5:813:14 | S1 | -| main.rs:844:36:844:36 | x | | main.rs:812:5:813:14 | S1 | -| main.rs:846:13:846:13 | x | | main.rs:812:5:813:14 | S1 | -| main.rs:846:17:846:18 | S1 | | main.rs:812:5:813:14 | S1 | -| main.rs:847:26:847:44 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:847:26:847:44 | id::<...>(...) | &T | main.rs:812:5:813:14 | S1 | -| main.rs:847:42:847:43 | &x | | file://:0:0:0:0 | & | -| main.rs:847:42:847:43 | &x | &T | main.rs:812:5:813:14 | S1 | -| main.rs:847:43:847:43 | x | | main.rs:812:5:813:14 | S1 | -| main.rs:849:13:849:13 | x | | main.rs:812:5:813:14 | S1 | -| main.rs:849:17:849:18 | S1 | | main.rs:812:5:813:14 | S1 | -| main.rs:850:9:850:25 | into::<...>(...) | | main.rs:815:5:816:14 | S2 | -| main.rs:850:24:850:24 | x | | main.rs:812:5:813:14 | S1 | -| main.rs:852:13:852:13 | x | | main.rs:812:5:813:14 | S1 | -| main.rs:852:17:852:18 | S1 | | main.rs:812:5:813:14 | S1 | -| main.rs:853:13:853:13 | y | | main.rs:815:5:816:14 | S2 | -| main.rs:853:21:853:27 | into(...) | | main.rs:815:5:816:14 | S2 | -| main.rs:853:26:853:26 | x | | main.rs:812:5:813:14 | S1 | -| main.rs:867:22:867:25 | SelfParam | | main.rs:858:5:864:5 | PairOption | -| main.rs:867:22:867:25 | SelfParam | Fst | main.rs:866:10:866:12 | Fst | -| main.rs:867:22:867:25 | SelfParam | Snd | main.rs:866:15:866:17 | Snd | -| main.rs:867:35:874:9 | { ... } | | main.rs:866:15:866:17 | Snd | -| main.rs:868:13:873:13 | match self { ... } | | main.rs:866:15:866:17 | Snd | -| main.rs:868:19:868:22 | self | | main.rs:858:5:864:5 | PairOption | -| main.rs:868:19:868:22 | self | Fst | main.rs:866:10:866:12 | Fst | -| main.rs:868:19:868:22 | self | Snd | main.rs:866:15:866:17 | Snd | -| main.rs:869:43:869:82 | MacroExpr | | main.rs:866:15:866:17 | Snd | -| main.rs:870:43:870:81 | MacroExpr | | main.rs:866:15:866:17 | Snd | -| main.rs:871:37:871:39 | snd | | main.rs:866:15:866:17 | Snd | -| main.rs:871:45:871:47 | snd | | main.rs:866:15:866:17 | Snd | -| main.rs:872:41:872:43 | snd | | main.rs:866:15:866:17 | Snd | -| main.rs:872:49:872:51 | snd | | main.rs:866:15:866:17 | Snd | -| main.rs:898:10:898:10 | t | | main.rs:858:5:864:5 | PairOption | -| main.rs:898:10:898:10 | t | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:898:10:898:10 | t | Snd | main.rs:858:5:864:5 | PairOption | -| main.rs:898:10:898:10 | t | Snd.Fst | main.rs:880:5:881:14 | S2 | -| main.rs:898:10:898:10 | t | Snd.Snd | main.rs:883:5:884:14 | S3 | -| main.rs:899:13:899:13 | x | | main.rs:883:5:884:14 | S3 | -| main.rs:899:17:899:17 | t | | main.rs:858:5:864:5 | PairOption | -| main.rs:899:17:899:17 | t | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:899:17:899:17 | t | Snd | main.rs:858:5:864:5 | PairOption | -| main.rs:899:17:899:17 | t | Snd.Fst | main.rs:880:5:881:14 | S2 | -| main.rs:899:17:899:17 | t | Snd.Snd | main.rs:883:5:884:14 | S3 | -| main.rs:899:17:899:29 | t.unwrapSnd() | | main.rs:858:5:864:5 | PairOption | -| main.rs:899:17:899:29 | t.unwrapSnd() | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:899:17:899:29 | t.unwrapSnd() | Snd | main.rs:883:5:884:14 | S3 | -| main.rs:899:17:899:41 | ... .unwrapSnd() | | main.rs:883:5:884:14 | S3 | -| main.rs:900:26:900:26 | x | | main.rs:883:5:884:14 | S3 | -| main.rs:905:13:905:14 | p1 | | main.rs:858:5:864:5 | PairOption | -| main.rs:905:13:905:14 | p1 | Fst | main.rs:877:5:878:14 | S1 | -| main.rs:905:13:905:14 | p1 | Snd | main.rs:880:5:881:14 | S2 | -| main.rs:905:26:905:53 | ...::PairBoth(...) | | main.rs:858:5:864:5 | PairOption | -| main.rs:905:26:905:53 | ...::PairBoth(...) | Fst | main.rs:877:5:878:14 | S1 | -| main.rs:905:26:905:53 | ...::PairBoth(...) | Snd | main.rs:880:5:881:14 | S2 | -| main.rs:905:47:905:48 | S1 | | main.rs:877:5:878:14 | S1 | -| main.rs:905:51:905:52 | S2 | | main.rs:880:5:881:14 | S2 | -| main.rs:906:26:906:27 | p1 | | main.rs:858:5:864:5 | PairOption | -| main.rs:906:26:906:27 | p1 | Fst | main.rs:877:5:878:14 | S1 | -| main.rs:906:26:906:27 | p1 | Snd | main.rs:880:5:881:14 | S2 | -| main.rs:909:13:909:14 | p2 | | main.rs:858:5:864:5 | PairOption | -| main.rs:909:13:909:14 | p2 | Fst | main.rs:877:5:878:14 | S1 | -| main.rs:909:13:909:14 | p2 | Snd | main.rs:880:5:881:14 | S2 | -| main.rs:909:26:909:47 | ...::PairNone(...) | | main.rs:858:5:864:5 | PairOption | -| main.rs:909:26:909:47 | ...::PairNone(...) | Fst | main.rs:877:5:878:14 | S1 | -| main.rs:909:26:909:47 | ...::PairNone(...) | Snd | main.rs:880:5:881:14 | S2 | -| main.rs:910:26:910:27 | p2 | | main.rs:858:5:864:5 | PairOption | -| main.rs:910:26:910:27 | p2 | Fst | main.rs:877:5:878:14 | S1 | -| main.rs:910:26:910:27 | p2 | Snd | main.rs:880:5:881:14 | S2 | -| main.rs:913:13:913:14 | p3 | | main.rs:858:5:864:5 | PairOption | -| main.rs:913:13:913:14 | p3 | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:913:13:913:14 | p3 | Snd | main.rs:883:5:884:14 | S3 | -| main.rs:913:34:913:56 | ...::PairSnd(...) | | main.rs:858:5:864:5 | PairOption | -| main.rs:913:34:913:56 | ...::PairSnd(...) | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:913:34:913:56 | ...::PairSnd(...) | Snd | main.rs:883:5:884:14 | S3 | -| main.rs:913:54:913:55 | S3 | | main.rs:883:5:884:14 | S3 | -| main.rs:914:26:914:27 | p3 | | main.rs:858:5:864:5 | PairOption | -| main.rs:914:26:914:27 | p3 | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:914:26:914:27 | p3 | Snd | main.rs:883:5:884:14 | S3 | -| main.rs:917:13:917:14 | p3 | | main.rs:858:5:864:5 | PairOption | -| main.rs:917:13:917:14 | p3 | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:917:13:917:14 | p3 | Snd | main.rs:883:5:884:14 | S3 | -| main.rs:917:35:917:56 | ...::PairNone(...) | | main.rs:858:5:864:5 | PairOption | -| main.rs:917:35:917:56 | ...::PairNone(...) | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:917:35:917:56 | ...::PairNone(...) | Snd | main.rs:883:5:884:14 | S3 | -| main.rs:918:26:918:27 | p3 | | main.rs:858:5:864:5 | PairOption | -| main.rs:918:26:918:27 | p3 | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:918:26:918:27 | p3 | Snd | main.rs:883:5:884:14 | S3 | -| main.rs:920:11:920:54 | ...::PairSnd(...) | | main.rs:858:5:864:5 | PairOption | -| main.rs:920:11:920:54 | ...::PairSnd(...) | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:920:11:920:54 | ...::PairSnd(...) | Snd | main.rs:858:5:864:5 | PairOption | -| main.rs:920:11:920:54 | ...::PairSnd(...) | Snd.Fst | main.rs:880:5:881:14 | S2 | -| main.rs:920:11:920:54 | ...::PairSnd(...) | Snd.Snd | main.rs:883:5:884:14 | S3 | -| main.rs:920:31:920:53 | ...::PairSnd(...) | | main.rs:858:5:864:5 | PairOption | -| main.rs:920:31:920:53 | ...::PairSnd(...) | Fst | main.rs:880:5:881:14 | S2 | -| main.rs:920:31:920:53 | ...::PairSnd(...) | Snd | main.rs:883:5:884:14 | S3 | -| main.rs:920:51:920:52 | S3 | | main.rs:883:5:884:14 | S3 | -| main.rs:933:16:933:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:933:16:933:24 | SelfParam | &T | main.rs:931:5:938:5 | Self [trait MyTrait] | -| main.rs:933:27:933:31 | value | | main.rs:931:19:931:19 | S | -| main.rs:935:21:935:29 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:935:21:935:29 | SelfParam | &T | main.rs:931:5:938:5 | Self [trait MyTrait] | -| main.rs:935:32:935:36 | value | | main.rs:931:19:931:19 | S | -| main.rs:936:13:936:16 | self | | file://:0:0:0:0 | & | -| main.rs:936:13:936:16 | self | &T | main.rs:931:5:938:5 | Self [trait MyTrait] | -| main.rs:936:22:936:26 | value | | main.rs:931:19:931:19 | S | -| main.rs:942:16:942:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:942:16:942:24 | SelfParam | &T | main.rs:925:5:929:5 | MyOption | -| main.rs:942:16:942:24 | SelfParam | &T.T | main.rs:940:10:940:10 | T | -| main.rs:942:27:942:31 | value | | main.rs:940:10:940:10 | T | -| main.rs:946:26:948:9 | { ... } | | main.rs:925:5:929:5 | MyOption | -| main.rs:946:26:948:9 | { ... } | T | main.rs:945:10:945:10 | T | -| main.rs:947:13:947:30 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:947:13:947:30 | ...::MyNone(...) | T | main.rs:945:10:945:10 | T | -| main.rs:952:20:952:23 | SelfParam | | main.rs:925:5:929:5 | MyOption | -| main.rs:952:20:952:23 | SelfParam | T | main.rs:925:5:929:5 | MyOption | -| main.rs:952:20:952:23 | SelfParam | T.T | main.rs:951:10:951:10 | T | -| main.rs:952:41:957:9 | { ... } | | main.rs:925:5:929:5 | MyOption | -| main.rs:952:41:957:9 | { ... } | T | main.rs:951:10:951:10 | T | -| main.rs:953:13:956:13 | match self { ... } | | main.rs:925:5:929:5 | MyOption | -| main.rs:953:13:956:13 | match self { ... } | T | main.rs:951:10:951:10 | T | -| main.rs:953:19:953:22 | self | | main.rs:925:5:929:5 | MyOption | -| main.rs:953:19:953:22 | self | T | main.rs:925:5:929:5 | MyOption | -| main.rs:953:19:953:22 | self | T.T | main.rs:951:10:951:10 | T | -| main.rs:954:39:954:56 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:954:39:954:56 | ...::MyNone(...) | T | main.rs:951:10:951:10 | T | -| main.rs:955:34:955:34 | x | | main.rs:925:5:929:5 | MyOption | -| main.rs:955:34:955:34 | x | T | main.rs:951:10:951:10 | T | -| main.rs:955:40:955:40 | x | | main.rs:925:5:929:5 | MyOption | -| main.rs:955:40:955:40 | x | T | main.rs:951:10:951:10 | T | -| main.rs:964:13:964:14 | x1 | | main.rs:925:5:929:5 | MyOption | -| main.rs:964:18:964:37 | ...::new(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:965:26:965:27 | x1 | | main.rs:925:5:929:5 | MyOption | -| main.rs:967:13:967:18 | mut x2 | | main.rs:925:5:929:5 | MyOption | -| main.rs:967:13:967:18 | mut x2 | T | main.rs:960:5:961:13 | S | -| main.rs:967:22:967:36 | ...::new(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:967:22:967:36 | ...::new(...) | T | main.rs:960:5:961:13 | S | -| main.rs:968:9:968:10 | x2 | | main.rs:925:5:929:5 | MyOption | -| main.rs:968:9:968:10 | x2 | T | main.rs:960:5:961:13 | S | -| main.rs:968:16:968:16 | S | | main.rs:960:5:961:13 | S | -| main.rs:969:26:969:27 | x2 | | main.rs:925:5:929:5 | MyOption | -| main.rs:969:26:969:27 | x2 | T | main.rs:960:5:961:13 | S | -| main.rs:971:13:971:18 | mut x3 | | main.rs:925:5:929:5 | MyOption | -| main.rs:971:22:971:36 | ...::new(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:972:9:972:10 | x3 | | main.rs:925:5:929:5 | MyOption | -| main.rs:972:21:972:21 | S | | main.rs:960:5:961:13 | S | -| main.rs:973:26:973:27 | x3 | | main.rs:925:5:929:5 | MyOption | -| main.rs:975:13:975:18 | mut x4 | | main.rs:925:5:929:5 | MyOption | -| main.rs:975:13:975:18 | mut x4 | T | main.rs:960:5:961:13 | S | -| main.rs:975:22:975:36 | ...::new(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:975:22:975:36 | ...::new(...) | T | main.rs:960:5:961:13 | S | -| main.rs:976:23:976:29 | &mut x4 | | file://:0:0:0:0 | & | -| main.rs:976:23:976:29 | &mut x4 | &T | main.rs:925:5:929:5 | MyOption | -| main.rs:976:23:976:29 | &mut x4 | &T.T | main.rs:960:5:961:13 | S | -| main.rs:976:28:976:29 | x4 | | main.rs:925:5:929:5 | MyOption | -| main.rs:976:28:976:29 | x4 | T | main.rs:960:5:961:13 | S | -| main.rs:976:32:976:32 | S | | main.rs:960:5:961:13 | S | -| main.rs:977:26:977:27 | x4 | | main.rs:925:5:929:5 | MyOption | -| main.rs:977:26:977:27 | x4 | T | main.rs:960:5:961:13 | S | -| main.rs:979:13:979:14 | x5 | | main.rs:925:5:929:5 | MyOption | -| main.rs:979:13:979:14 | x5 | T | main.rs:925:5:929:5 | MyOption | -| main.rs:979:13:979:14 | x5 | T.T | main.rs:960:5:961:13 | S | -| main.rs:979:18:979:58 | ...::MySome(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:979:18:979:58 | ...::MySome(...) | T | main.rs:925:5:929:5 | MyOption | -| main.rs:979:18:979:58 | ...::MySome(...) | T.T | main.rs:960:5:961:13 | S | -| main.rs:979:35:979:57 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:979:35:979:57 | ...::MyNone(...) | T | main.rs:960:5:961:13 | S | -| main.rs:980:26:980:27 | x5 | | main.rs:925:5:929:5 | MyOption | -| main.rs:980:26:980:27 | x5 | T | main.rs:925:5:929:5 | MyOption | -| main.rs:980:26:980:27 | x5 | T.T | main.rs:960:5:961:13 | S | -| main.rs:980:26:980:37 | x5.flatten() | | main.rs:925:5:929:5 | MyOption | -| main.rs:980:26:980:37 | x5.flatten() | T | main.rs:960:5:961:13 | S | -| main.rs:982:13:982:14 | x6 | | main.rs:925:5:929:5 | MyOption | -| main.rs:982:13:982:14 | x6 | T | main.rs:925:5:929:5 | MyOption | -| main.rs:982:13:982:14 | x6 | T.T | main.rs:960:5:961:13 | S | -| main.rs:982:18:982:58 | ...::MySome(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:982:18:982:58 | ...::MySome(...) | T | main.rs:925:5:929:5 | MyOption | -| main.rs:982:18:982:58 | ...::MySome(...) | T.T | main.rs:960:5:961:13 | S | -| main.rs:982:35:982:57 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:982:35:982:57 | ...::MyNone(...) | T | main.rs:960:5:961:13 | S | -| main.rs:983:26:983:61 | ...::flatten(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:983:26:983:61 | ...::flatten(...) | T | main.rs:960:5:961:13 | S | -| main.rs:983:59:983:60 | x6 | | main.rs:925:5:929:5 | MyOption | -| main.rs:983:59:983:60 | x6 | T | main.rs:925:5:929:5 | MyOption | -| main.rs:983:59:983:60 | x6 | T.T | main.rs:960:5:961:13 | S | -| main.rs:985:13:985:19 | from_if | | main.rs:925:5:929:5 | MyOption | -| main.rs:985:13:985:19 | from_if | T | main.rs:960:5:961:13 | S | -| main.rs:985:23:989:9 | if ... {...} else {...} | | main.rs:925:5:929:5 | MyOption | -| main.rs:985:23:989:9 | if ... {...} else {...} | T | main.rs:960:5:961:13 | S | -| main.rs:985:36:987:9 | { ... } | | main.rs:925:5:929:5 | MyOption | -| main.rs:985:36:987:9 | { ... } | T | main.rs:960:5:961:13 | S | -| main.rs:986:13:986:30 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:986:13:986:30 | ...::MyNone(...) | T | main.rs:960:5:961:13 | S | -| main.rs:987:16:989:9 | { ... } | | main.rs:925:5:929:5 | MyOption | -| main.rs:987:16:989:9 | { ... } | T | main.rs:960:5:961:13 | S | -| main.rs:988:13:988:31 | ...::MySome(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:988:13:988:31 | ...::MySome(...) | T | main.rs:960:5:961:13 | S | -| main.rs:988:30:988:30 | S | | main.rs:960:5:961:13 | S | -| main.rs:990:26:990:32 | from_if | | main.rs:925:5:929:5 | MyOption | -| main.rs:990:26:990:32 | from_if | T | main.rs:960:5:961:13 | S | -| main.rs:992:13:992:22 | from_match | | main.rs:925:5:929:5 | MyOption | -| main.rs:992:13:992:22 | from_match | T | main.rs:960:5:961:13 | S | -| main.rs:992:26:995:9 | match ... { ... } | | main.rs:925:5:929:5 | MyOption | -| main.rs:992:26:995:9 | match ... { ... } | T | main.rs:960:5:961:13 | S | -| main.rs:993:21:993:38 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:993:21:993:38 | ...::MyNone(...) | T | main.rs:960:5:961:13 | S | -| main.rs:994:22:994:40 | ...::MySome(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:994:22:994:40 | ...::MySome(...) | T | main.rs:960:5:961:13 | S | -| main.rs:994:39:994:39 | S | | main.rs:960:5:961:13 | S | -| main.rs:996:26:996:35 | from_match | | main.rs:925:5:929:5 | MyOption | -| main.rs:996:26:996:35 | from_match | T | main.rs:960:5:961:13 | S | -| main.rs:998:13:998:21 | from_loop | | main.rs:925:5:929:5 | MyOption | -| main.rs:998:13:998:21 | from_loop | T | main.rs:960:5:961:13 | S | -| main.rs:998:25:1003:9 | loop { ... } | | main.rs:925:5:929:5 | MyOption | -| main.rs:998:25:1003:9 | loop { ... } | T | main.rs:960:5:961:13 | S | -| main.rs:1000:23:1000:40 | ...::MyNone(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:1000:23:1000:40 | ...::MyNone(...) | T | main.rs:960:5:961:13 | S | -| main.rs:1002:19:1002:37 | ...::MySome(...) | | main.rs:925:5:929:5 | MyOption | -| main.rs:1002:19:1002:37 | ...::MySome(...) | T | main.rs:960:5:961:13 | S | -| main.rs:1002:36:1002:36 | S | | main.rs:960:5:961:13 | S | -| main.rs:1004:26:1004:34 | from_loop | | main.rs:925:5:929:5 | MyOption | -| main.rs:1004:26:1004:34 | from_loop | T | main.rs:960:5:961:13 | S | -| main.rs:1017:15:1017:18 | SelfParam | | main.rs:1010:5:1011:19 | S | -| main.rs:1017:15:1017:18 | SelfParam | T | main.rs:1016:10:1016:10 | T | -| main.rs:1017:26:1019:9 | { ... } | | main.rs:1016:10:1016:10 | T | -| main.rs:1018:13:1018:16 | self | | main.rs:1010:5:1011:19 | S | -| main.rs:1018:13:1018:16 | self | T | main.rs:1016:10:1016:10 | T | -| main.rs:1018:13:1018:18 | self.0 | | main.rs:1016:10:1016:10 | T | -| main.rs:1021:15:1021:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1021:15:1021:19 | SelfParam | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1021:15:1021:19 | SelfParam | &T.T | main.rs:1016:10:1016:10 | T | -| main.rs:1021:28:1023:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1021:28:1023:9 | { ... } | &T | main.rs:1016:10:1016:10 | T | -| main.rs:1022:13:1022:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1022:13:1022:19 | &... | &T | main.rs:1016:10:1016:10 | T | -| main.rs:1022:14:1022:17 | self | | file://:0:0:0:0 | & | -| main.rs:1022:14:1022:17 | self | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1022:14:1022:17 | self | &T.T | main.rs:1016:10:1016:10 | T | -| main.rs:1022:14:1022:19 | self.0 | | main.rs:1016:10:1016:10 | T | -| main.rs:1025:15:1025:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1025:15:1025:25 | SelfParam | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1025:15:1025:25 | SelfParam | &T.T | main.rs:1016:10:1016:10 | T | -| main.rs:1025:34:1027:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1025:34:1027:9 | { ... } | &T | main.rs:1016:10:1016:10 | T | -| main.rs:1026:13:1026:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1026:13:1026:19 | &... | &T | main.rs:1016:10:1016:10 | T | -| main.rs:1026:14:1026:17 | self | | file://:0:0:0:0 | & | -| main.rs:1026:14:1026:17 | self | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1026:14:1026:17 | self | &T.T | main.rs:1016:10:1016:10 | T | -| main.rs:1026:14:1026:19 | self.0 | | main.rs:1016:10:1016:10 | T | -| main.rs:1031:13:1031:14 | x1 | | main.rs:1010:5:1011:19 | S | -| main.rs:1031:13:1031:14 | x1 | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1031:18:1031:22 | S(...) | | main.rs:1010:5:1011:19 | S | -| main.rs:1031:18:1031:22 | S(...) | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1031:20:1031:21 | S2 | | main.rs:1013:5:1014:14 | S2 | -| main.rs:1032:26:1032:27 | x1 | | main.rs:1010:5:1011:19 | S | -| main.rs:1032:26:1032:27 | x1 | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1032:26:1032:32 | x1.m1() | | main.rs:1013:5:1014:14 | S2 | -| main.rs:1034:13:1034:14 | x2 | | main.rs:1010:5:1011:19 | S | -| main.rs:1034:13:1034:14 | x2 | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1034:18:1034:22 | S(...) | | main.rs:1010:5:1011:19 | S | -| main.rs:1034:18:1034:22 | S(...) | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1034:20:1034:21 | S2 | | main.rs:1013:5:1014:14 | S2 | -| main.rs:1036:26:1036:27 | x2 | | main.rs:1010:5:1011:19 | S | -| main.rs:1036:26:1036:27 | x2 | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1036:26:1036:32 | x2.m2() | | file://:0:0:0:0 | & | -| main.rs:1036:26:1036:32 | x2.m2() | &T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1037:26:1037:27 | x2 | | main.rs:1010:5:1011:19 | S | -| main.rs:1037:26:1037:27 | x2 | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1037:26:1037:32 | x2.m3() | | file://:0:0:0:0 | & | -| main.rs:1037:26:1037:32 | x2.m3() | &T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1039:13:1039:14 | x3 | | main.rs:1010:5:1011:19 | S | -| main.rs:1039:13:1039:14 | x3 | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1039:18:1039:22 | S(...) | | main.rs:1010:5:1011:19 | S | -| main.rs:1039:18:1039:22 | S(...) | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1039:20:1039:21 | S2 | | main.rs:1013:5:1014:14 | S2 | -| main.rs:1041:26:1041:41 | ...::m2(...) | | file://:0:0:0:0 | & | -| main.rs:1041:26:1041:41 | ...::m2(...) | &T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1041:38:1041:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1041:38:1041:40 | &x3 | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1041:38:1041:40 | &x3 | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1041:39:1041:40 | x3 | | main.rs:1010:5:1011:19 | S | -| main.rs:1041:39:1041:40 | x3 | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1042:26:1042:41 | ...::m3(...) | | file://:0:0:0:0 | & | -| main.rs:1042:26:1042:41 | ...::m3(...) | &T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1042:38:1042:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1042:38:1042:40 | &x3 | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1042:38:1042:40 | &x3 | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1042:39:1042:40 | x3 | | main.rs:1010:5:1011:19 | S | -| main.rs:1042:39:1042:40 | x3 | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1044:13:1044:14 | x4 | | file://:0:0:0:0 | & | -| main.rs:1044:13:1044:14 | x4 | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1044:13:1044:14 | x4 | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1044:18:1044:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1044:18:1044:23 | &... | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1044:18:1044:23 | &... | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1044:19:1044:23 | S(...) | | main.rs:1010:5:1011:19 | S | -| main.rs:1044:19:1044:23 | S(...) | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1044:21:1044:22 | S2 | | main.rs:1013:5:1014:14 | S2 | -| main.rs:1046:26:1046:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1046:26:1046:27 | x4 | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1046:26:1046:27 | x4 | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1046:26:1046:32 | x4.m2() | | file://:0:0:0:0 | & | -| main.rs:1046:26:1046:32 | x4.m2() | &T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1047:26:1047:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1047:26:1047:27 | x4 | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1047:26:1047:27 | x4 | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1047:26:1047:32 | x4.m3() | | file://:0:0:0:0 | & | -| main.rs:1047:26:1047:32 | x4.m3() | &T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1049:13:1049:14 | x5 | | file://:0:0:0:0 | & | -| main.rs:1049:13:1049:14 | x5 | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1049:13:1049:14 | x5 | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1049:18:1049:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1049:18:1049:23 | &... | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1049:18:1049:23 | &... | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1049:19:1049:23 | S(...) | | main.rs:1010:5:1011:19 | S | -| main.rs:1049:19:1049:23 | S(...) | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1049:21:1049:22 | S2 | | main.rs:1013:5:1014:14 | S2 | -| main.rs:1051:26:1051:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1051:26:1051:27 | x5 | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1051:26:1051:27 | x5 | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1051:26:1051:32 | x5.m1() | | main.rs:1013:5:1014:14 | S2 | -| main.rs:1052:26:1052:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1052:26:1052:27 | x5 | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1052:26:1052:27 | x5 | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1052:26:1052:29 | x5.0 | | main.rs:1013:5:1014:14 | S2 | -| main.rs:1054:13:1054:14 | x6 | | file://:0:0:0:0 | & | -| main.rs:1054:13:1054:14 | x6 | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1054:13:1054:14 | x6 | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1054:18:1054:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1054:18:1054:23 | &... | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1054:18:1054:23 | &... | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1054:19:1054:23 | S(...) | | main.rs:1010:5:1011:19 | S | -| main.rs:1054:19:1054:23 | S(...) | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1054:21:1054:22 | S2 | | main.rs:1013:5:1014:14 | S2 | -| main.rs:1056:26:1056:30 | (...) | | main.rs:1010:5:1011:19 | S | -| main.rs:1056:26:1056:30 | (...) | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1056:26:1056:35 | ... .m1() | | main.rs:1013:5:1014:14 | S2 | -| main.rs:1056:27:1056:29 | * ... | | main.rs:1010:5:1011:19 | S | -| main.rs:1056:27:1056:29 | * ... | T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1056:28:1056:29 | x6 | | file://:0:0:0:0 | & | -| main.rs:1056:28:1056:29 | x6 | &T | main.rs:1010:5:1011:19 | S | -| main.rs:1056:28:1056:29 | x6 | &T.T | main.rs:1013:5:1014:14 | S2 | -| main.rs:1063:16:1063:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1063:16:1063:20 | SelfParam | &T | main.rs:1061:5:1069:5 | Self [trait MyTrait] | -| main.rs:1066:16:1066:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1066:16:1066:20 | SelfParam | &T | main.rs:1061:5:1069:5 | Self [trait MyTrait] | -| main.rs:1066:32:1068:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1066:32:1068:9 | { ... } | &T | main.rs:1061:5:1069:5 | Self [trait MyTrait] | -| main.rs:1067:13:1067:16 | self | | file://:0:0:0:0 | & | -| main.rs:1067:13:1067:16 | self | &T | main.rs:1061:5:1069:5 | Self [trait MyTrait] | -| main.rs:1067:13:1067:22 | self.foo() | | file://:0:0:0:0 | & | -| main.rs:1067:13:1067:22 | self.foo() | &T | main.rs:1061:5:1069:5 | Self [trait MyTrait] | -| main.rs:1075:16:1075:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1075:16:1075:20 | SelfParam | &T | main.rs:1071:5:1071:20 | MyStruct | -| main.rs:1075:36:1077:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1075:36:1077:9 | { ... } | &T | main.rs:1071:5:1071:20 | MyStruct | -| main.rs:1076:13:1076:16 | self | | file://:0:0:0:0 | & | -| main.rs:1076:13:1076:16 | self | &T | main.rs:1071:5:1071:20 | MyStruct | -| main.rs:1081:13:1081:13 | x | | main.rs:1071:5:1071:20 | MyStruct | -| main.rs:1081:17:1081:24 | MyStruct | | main.rs:1071:5:1071:20 | MyStruct | -| main.rs:1082:9:1082:9 | x | | main.rs:1071:5:1071:20 | MyStruct | -| main.rs:1082:9:1082:15 | x.bar() | | file://:0:0:0:0 | & | -| main.rs:1082:9:1082:15 | x.bar() | &T | main.rs:1071:5:1071:20 | MyStruct | -| main.rs:1092:16:1092:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1092:16:1092:20 | SelfParam | &T | main.rs:1089:5:1089:26 | MyStruct | -| main.rs:1092:16:1092:20 | SelfParam | &T.T | main.rs:1091:10:1091:10 | T | -| main.rs:1092:32:1094:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1092:32:1094:9 | { ... } | &T | main.rs:1089:5:1089:26 | MyStruct | -| main.rs:1092:32:1094:9 | { ... } | &T.T | main.rs:1091:10:1091:10 | T | -| main.rs:1093:13:1093:16 | self | | file://:0:0:0:0 | & | -| main.rs:1093:13:1093:16 | self | &T | main.rs:1089:5:1089:26 | MyStruct | -| main.rs:1093:13:1093:16 | self | &T.T | main.rs:1091:10:1091:10 | T | -| main.rs:1098:13:1098:13 | x | | main.rs:1089:5:1089:26 | MyStruct | -| main.rs:1098:13:1098:13 | x | T | main.rs:1087:5:1087:13 | S | -| main.rs:1098:17:1098:27 | MyStruct(...) | | main.rs:1089:5:1089:26 | MyStruct | -| main.rs:1098:17:1098:27 | MyStruct(...) | T | main.rs:1087:5:1087:13 | S | -| main.rs:1098:26:1098:26 | S | | main.rs:1087:5:1087:13 | S | -| main.rs:1099:9:1099:9 | x | | main.rs:1089:5:1089:26 | MyStruct | -| main.rs:1099:9:1099:9 | x | T | main.rs:1087:5:1087:13 | S | -| main.rs:1099:9:1099:15 | x.foo() | | file://:0:0:0:0 | & | -| main.rs:1099:9:1099:15 | x.foo() | &T | main.rs:1089:5:1089:26 | MyStruct | -| main.rs:1099:9:1099:15 | x.foo() | &T.T | main.rs:1087:5:1087:13 | S | -| main.rs:1107:15:1107:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1107:15:1107:19 | SelfParam | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1107:31:1109:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1107:31:1109:9 | { ... } | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1108:13:1108:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1108:13:1108:19 | &... | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1108:14:1108:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1108:14:1108:19 | &... | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1108:15:1108:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1108:15:1108:19 | &self | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1108:16:1108:19 | self | | file://:0:0:0:0 | & | -| main.rs:1108:16:1108:19 | self | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1111:15:1111:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1111:15:1111:25 | SelfParam | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1111:37:1113:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1111:37:1113:9 | { ... } | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1112:13:1112:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1112:13:1112:19 | &... | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1112:14:1112:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1112:14:1112:19 | &... | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1112:15:1112:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1112:15:1112:19 | &self | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1112:16:1112:19 | self | | file://:0:0:0:0 | & | -| main.rs:1112:16:1112:19 | self | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1115:15:1115:15 | x | | file://:0:0:0:0 | & | -| main.rs:1115:15:1115:15 | x | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1115:34:1117:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1115:34:1117:9 | { ... } | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1116:13:1116:13 | x | | file://:0:0:0:0 | & | -| main.rs:1116:13:1116:13 | x | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1119:15:1119:15 | x | | file://:0:0:0:0 | & | -| main.rs:1119:15:1119:15 | x | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1119:34:1121:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1119:34:1121:9 | { ... } | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1120:13:1120:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1120:13:1120:16 | &... | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1120:14:1120:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1120:14:1120:16 | &... | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1120:15:1120:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1120:15:1120:16 | &x | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1120:16:1120:16 | x | | file://:0:0:0:0 | & | -| main.rs:1120:16:1120:16 | x | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1125:13:1125:13 | x | | main.rs:1104:5:1104:13 | S | -| main.rs:1125:17:1125:20 | S {...} | | main.rs:1104:5:1104:13 | S | -| main.rs:1126:9:1126:9 | x | | main.rs:1104:5:1104:13 | S | -| main.rs:1126:9:1126:14 | x.f1() | | file://:0:0:0:0 | & | -| main.rs:1126:9:1126:14 | x.f1() | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1127:9:1127:9 | x | | main.rs:1104:5:1104:13 | S | -| main.rs:1127:9:1127:14 | x.f2() | | file://:0:0:0:0 | & | -| main.rs:1127:9:1127:14 | x.f2() | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1128:9:1128:17 | ...::f3(...) | | file://:0:0:0:0 | & | -| main.rs:1128:9:1128:17 | ...::f3(...) | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1128:15:1128:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1128:15:1128:16 | &x | &T | main.rs:1104:5:1104:13 | S | -| main.rs:1128:16:1128:16 | x | | main.rs:1104:5:1104:13 | S | -| main.rs:1142:43:1145:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:1142:43:1145:5 | { ... } | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1142:43:1145:5 | { ... } | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1143:13:1143:13 | x | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1143:17:1143:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1143:17:1143:30 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1143:17:1143:31 | TryExpr | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1143:28:1143:29 | S1 | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1144:9:1144:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1144:9:1144:22 | ...::Ok(...) | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1144:9:1144:22 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1144:20:1144:21 | S1 | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1148:46:1152:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:1148:46:1152:5 | { ... } | E | main.rs:1138:5:1139:14 | S2 | -| main.rs:1148:46:1152:5 | { ... } | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1149:13:1149:13 | x | | file://:0:0:0:0 | Result | -| main.rs:1149:13:1149:13 | x | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1149:17:1149:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1149:17:1149:30 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1149:28:1149:29 | S1 | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1150:13:1150:13 | y | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1150:17:1150:17 | x | | file://:0:0:0:0 | Result | -| main.rs:1150:17:1150:17 | x | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1150:17:1150:18 | TryExpr | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1151:9:1151:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1151:9:1151:22 | ...::Ok(...) | E | main.rs:1138:5:1139:14 | S2 | -| main.rs:1151:9:1151:22 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1151:20:1151:21 | S1 | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1155:40:1160:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:1155:40:1160:5 | { ... } | E | main.rs:1138:5:1139:14 | S2 | -| main.rs:1155:40:1160:5 | { ... } | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1156:13:1156:13 | x | | file://:0:0:0:0 | Result | -| main.rs:1156:13:1156:13 | x | T | file://:0:0:0:0 | Result | -| main.rs:1156:13:1156:13 | x | T.T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1156:17:1156:42 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1156:17:1156:42 | ...::Ok(...) | T | file://:0:0:0:0 | Result | -| main.rs:1156:17:1156:42 | ...::Ok(...) | T.T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1156:28:1156:41 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1156:28:1156:41 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1156:39:1156:40 | S1 | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1158:17:1158:17 | x | | file://:0:0:0:0 | Result | -| main.rs:1158:17:1158:17 | x | T | file://:0:0:0:0 | Result | -| main.rs:1158:17:1158:17 | x | T.T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1158:17:1158:18 | TryExpr | | file://:0:0:0:0 | Result | -| main.rs:1158:17:1158:18 | TryExpr | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1158:17:1158:29 | ... .map(...) | | file://:0:0:0:0 | Result | -| main.rs:1159:9:1159:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1159:9:1159:22 | ...::Ok(...) | E | main.rs:1138:5:1139:14 | S2 | -| main.rs:1159:9:1159:22 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1159:20:1159:21 | S1 | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1163:30:1163:34 | input | | file://:0:0:0:0 | Result | -| main.rs:1163:30:1163:34 | input | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1163:30:1163:34 | input | T | main.rs:1163:20:1163:27 | T | -| main.rs:1163:69:1170:5 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:1163:69:1170:5 | { ... } | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1163:69:1170:5 | { ... } | T | main.rs:1163:20:1163:27 | T | -| main.rs:1164:13:1164:17 | value | | main.rs:1163:20:1163:27 | T | -| main.rs:1164:21:1164:25 | input | | file://:0:0:0:0 | Result | -| main.rs:1164:21:1164:25 | input | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1164:21:1164:25 | input | T | main.rs:1163:20:1163:27 | T | -| main.rs:1164:21:1164:26 | TryExpr | | main.rs:1163:20:1163:27 | T | -| main.rs:1165:22:1165:38 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1165:22:1165:38 | ...::Ok(...) | T | main.rs:1163:20:1163:27 | T | -| main.rs:1165:22:1168:10 | ... .and_then(...) | | file://:0:0:0:0 | Result | -| main.rs:1165:33:1165:37 | value | | main.rs:1163:20:1163:27 | T | -| main.rs:1165:53:1168:9 | { ... } | | file://:0:0:0:0 | Result | -| main.rs:1165:53:1168:9 | { ... } | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1167:13:1167:34 | ...::Ok::<...>(...) | | file://:0:0:0:0 | Result | -| main.rs:1167:13:1167:34 | ...::Ok::<...>(...) | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1169:9:1169:23 | ...::Err(...) | | file://:0:0:0:0 | Result | -| main.rs:1169:9:1169:23 | ...::Err(...) | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1169:9:1169:23 | ...::Err(...) | T | main.rs:1163:20:1163:27 | T | -| main.rs:1169:21:1169:22 | S1 | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1173:37:1173:52 | try_same_error(...) | | file://:0:0:0:0 | Result | -| main.rs:1173:37:1173:52 | try_same_error(...) | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1173:37:1173:52 | try_same_error(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1177:37:1177:55 | try_convert_error(...) | | file://:0:0:0:0 | Result | -| main.rs:1177:37:1177:55 | try_convert_error(...) | E | main.rs:1138:5:1139:14 | S2 | -| main.rs:1177:37:1177:55 | try_convert_error(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1181:37:1181:49 | try_chained(...) | | file://:0:0:0:0 | Result | -| main.rs:1181:37:1181:49 | try_chained(...) | E | main.rs:1138:5:1139:14 | S2 | -| main.rs:1181:37:1181:49 | try_chained(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1185:37:1185:63 | try_complex(...) | | file://:0:0:0:0 | Result | -| main.rs:1185:37:1185:63 | try_complex(...) | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1185:37:1185:63 | try_complex(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1185:49:1185:62 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1185:49:1185:62 | ...::Ok(...) | E | main.rs:1135:5:1136:14 | S1 | -| main.rs:1185:49:1185:62 | ...::Ok(...) | T | main.rs:1135:5:1136:14 | S1 | -| main.rs:1185:60:1185:61 | S1 | | main.rs:1135:5:1136:14 | S1 | -| main.rs:1193:5:1193:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1194:5:1194:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1194:20:1194:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:1194:41:1194:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:787:44:787:44 | x | | main.rs:787:26:787:41 | T2 | +| main.rs:787:57:789:5 | { ... } | | main.rs:787:22:787:23 | T1 | +| main.rs:788:9:788:9 | x | | main.rs:787:26:787:41 | T2 | +| main.rs:788:9:788:14 | x.m1() | | main.rs:787:22:787:23 | T1 | +| main.rs:791:56:791:56 | x | | main.rs:791:39:791:53 | T | +| main.rs:793:13:793:13 | a | | main.rs:741:20:741:22 | Tr2 | +| main.rs:793:17:793:17 | x | | main.rs:791:39:791:53 | T | +| main.rs:793:17:793:22 | x.m1() | | main.rs:741:20:741:22 | Tr2 | +| main.rs:794:26:794:26 | a | | main.rs:741:20:741:22 | Tr2 | +| main.rs:798:13:798:13 | x | | main.rs:721:5:724:5 | MyThing | +| main.rs:798:13:798:13 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:798:17:798:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | +| main.rs:798:17:798:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | +| main.rs:798:30:798:31 | S1 | | main.rs:731:5:732:14 | S1 | +| main.rs:799:13:799:13 | y | | main.rs:721:5:724:5 | MyThing | +| main.rs:799:13:799:13 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:799:17:799:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | +| main.rs:799:17:799:33 | MyThing {...} | A | main.rs:733:5:734:14 | S2 | +| main.rs:799:30:799:31 | S2 | | main.rs:733:5:734:14 | S2 | +| main.rs:801:26:801:26 | x | | main.rs:721:5:724:5 | MyThing | +| main.rs:801:26:801:26 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:801:26:801:31 | x.m1() | | main.rs:731:5:732:14 | S1 | +| main.rs:802:26:802:26 | y | | main.rs:721:5:724:5 | MyThing | +| main.rs:802:26:802:26 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:802:26:802:31 | y.m1() | | main.rs:733:5:734:14 | S2 | +| main.rs:804:13:804:13 | x | | main.rs:721:5:724:5 | MyThing | +| main.rs:804:13:804:13 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:804:17:804:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | +| main.rs:804:17:804:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | +| main.rs:804:30:804:31 | S1 | | main.rs:731:5:732:14 | S1 | +| main.rs:805:13:805:13 | y | | main.rs:721:5:724:5 | MyThing | +| main.rs:805:13:805:13 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:805:17:805:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | +| main.rs:805:17:805:33 | MyThing {...} | A | main.rs:733:5:734:14 | S2 | +| main.rs:805:30:805:31 | S2 | | main.rs:733:5:734:14 | S2 | +| main.rs:807:26:807:26 | x | | main.rs:721:5:724:5 | MyThing | +| main.rs:807:26:807:26 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:807:26:807:31 | x.m2() | | main.rs:731:5:732:14 | S1 | +| main.rs:808:26:808:26 | y | | main.rs:721:5:724:5 | MyThing | +| main.rs:808:26:808:26 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:808:26:808:31 | y.m2() | | main.rs:733:5:734:14 | S2 | +| main.rs:810:13:810:13 | x | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:810:13:810:13 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:810:17:810:34 | MyThing2 {...} | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:810:17:810:34 | MyThing2 {...} | A | main.rs:731:5:732:14 | S1 | +| main.rs:810:31:810:32 | S1 | | main.rs:731:5:732:14 | S1 | +| main.rs:811:13:811:13 | y | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:811:13:811:13 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:811:17:811:34 | MyThing2 {...} | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:811:17:811:34 | MyThing2 {...} | A | main.rs:733:5:734:14 | S2 | +| main.rs:811:31:811:32 | S2 | | main.rs:733:5:734:14 | S2 | +| main.rs:813:26:813:26 | x | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:813:26:813:26 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:813:26:813:31 | x.m3() | | main.rs:731:5:732:14 | S1 | +| main.rs:814:26:814:26 | y | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:814:26:814:26 | y | A | main.rs:733:5:734:14 | S2 | +| main.rs:814:26:814:31 | y.m3() | | main.rs:733:5:734:14 | S2 | +| main.rs:816:13:816:13 | x | | main.rs:721:5:724:5 | MyThing | +| main.rs:816:13:816:13 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:816:17:816:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | +| main.rs:816:17:816:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | +| main.rs:816:30:816:31 | S1 | | main.rs:731:5:732:14 | S1 | +| main.rs:817:13:817:13 | s | | main.rs:731:5:732:14 | S1 | +| main.rs:817:13:817:13 | s | | main.rs:741:20:741:22 | Tr2 | +| main.rs:817:17:817:32 | call_trait_m1(...) | | main.rs:731:5:732:14 | S1 | +| main.rs:817:17:817:32 | call_trait_m1(...) | | main.rs:741:20:741:22 | Tr2 | +| main.rs:817:31:817:31 | x | | main.rs:721:5:724:5 | MyThing | +| main.rs:817:31:817:31 | x | A | main.rs:731:5:732:14 | S1 | +| main.rs:819:13:819:13 | x | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:819:13:819:13 | x | A | main.rs:733:5:734:14 | S2 | +| main.rs:819:17:819:34 | MyThing2 {...} | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:819:17:819:34 | MyThing2 {...} | A | main.rs:733:5:734:14 | S2 | +| main.rs:819:31:819:32 | S2 | | main.rs:733:5:734:14 | S2 | +| main.rs:820:13:820:13 | s | | main.rs:721:5:724:5 | MyThing | +| main.rs:820:13:820:13 | s | | main.rs:741:20:741:22 | Tr2 | +| main.rs:820:13:820:13 | s | A | main.rs:733:5:734:14 | S2 | +| main.rs:820:17:820:32 | call_trait_m1(...) | | main.rs:721:5:724:5 | MyThing | +| main.rs:820:17:820:32 | call_trait_m1(...) | | main.rs:741:20:741:22 | Tr2 | +| main.rs:820:17:820:32 | call_trait_m1(...) | A | main.rs:733:5:734:14 | S2 | +| main.rs:820:31:820:31 | x | | main.rs:726:5:729:5 | MyThing2 | +| main.rs:820:31:820:31 | x | A | main.rs:733:5:734:14 | S2 | +| main.rs:838:22:838:22 | x | | file://:0:0:0:0 | & | +| main.rs:838:22:838:22 | x | &T | main.rs:838:11:838:19 | T | +| main.rs:838:35:840:5 | { ... } | | file://:0:0:0:0 | & | +| main.rs:838:35:840:5 | { ... } | &T | main.rs:838:11:838:19 | T | +| main.rs:839:9:839:9 | x | | file://:0:0:0:0 | & | +| main.rs:839:9:839:9 | x | &T | main.rs:838:11:838:19 | T | +| main.rs:843:17:843:20 | SelfParam | | main.rs:828:5:829:14 | S1 | +| main.rs:843:29:845:9 | { ... } | | main.rs:831:5:832:14 | S2 | +| main.rs:844:13:844:14 | S2 | | main.rs:831:5:832:14 | S2 | +| main.rs:848:21:848:21 | x | | main.rs:848:13:848:14 | T1 | +| main.rs:851:5:853:5 | { ... } | | main.rs:848:17:848:18 | T2 | +| main.rs:852:9:852:9 | x | | main.rs:848:13:848:14 | T1 | +| main.rs:852:9:852:16 | x.into() | | main.rs:848:17:848:18 | T2 | +| main.rs:856:13:856:13 | x | | main.rs:828:5:829:14 | S1 | +| main.rs:856:17:856:18 | S1 | | main.rs:828:5:829:14 | S1 | +| main.rs:857:26:857:31 | id(...) | | file://:0:0:0:0 | & | +| main.rs:857:26:857:31 | id(...) | &T | main.rs:828:5:829:14 | S1 | +| main.rs:857:29:857:30 | &x | | file://:0:0:0:0 | & | +| main.rs:857:29:857:30 | &x | &T | main.rs:828:5:829:14 | S1 | +| main.rs:857:30:857:30 | x | | main.rs:828:5:829:14 | S1 | +| main.rs:859:13:859:13 | x | | main.rs:828:5:829:14 | S1 | +| main.rs:859:17:859:18 | S1 | | main.rs:828:5:829:14 | S1 | +| main.rs:860:26:860:37 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:860:26:860:37 | id::<...>(...) | &T | main.rs:828:5:829:14 | S1 | +| main.rs:860:35:860:36 | &x | | file://:0:0:0:0 | & | +| main.rs:860:35:860:36 | &x | &T | main.rs:828:5:829:14 | S1 | +| main.rs:860:36:860:36 | x | | main.rs:828:5:829:14 | S1 | +| main.rs:862:13:862:13 | x | | main.rs:828:5:829:14 | S1 | +| main.rs:862:17:862:18 | S1 | | main.rs:828:5:829:14 | S1 | +| main.rs:863:26:863:44 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:863:26:863:44 | id::<...>(...) | &T | main.rs:828:5:829:14 | S1 | +| main.rs:863:42:863:43 | &x | | file://:0:0:0:0 | & | +| main.rs:863:42:863:43 | &x | &T | main.rs:828:5:829:14 | S1 | +| main.rs:863:43:863:43 | x | | main.rs:828:5:829:14 | S1 | +| main.rs:865:13:865:13 | x | | main.rs:828:5:829:14 | S1 | +| main.rs:865:17:865:18 | S1 | | main.rs:828:5:829:14 | S1 | +| main.rs:866:9:866:25 | into::<...>(...) | | main.rs:831:5:832:14 | S2 | +| main.rs:866:24:866:24 | x | | main.rs:828:5:829:14 | S1 | +| main.rs:868:13:868:13 | x | | main.rs:828:5:829:14 | S1 | +| main.rs:868:17:868:18 | S1 | | main.rs:828:5:829:14 | S1 | +| main.rs:869:13:869:13 | y | | main.rs:831:5:832:14 | S2 | +| main.rs:869:21:869:27 | into(...) | | main.rs:831:5:832:14 | S2 | +| main.rs:869:26:869:26 | x | | main.rs:828:5:829:14 | S1 | +| main.rs:883:22:883:25 | SelfParam | | main.rs:874:5:880:5 | PairOption | +| main.rs:883:22:883:25 | SelfParam | Fst | main.rs:882:10:882:12 | Fst | +| main.rs:883:22:883:25 | SelfParam | Snd | main.rs:882:15:882:17 | Snd | +| main.rs:883:35:890:9 | { ... } | | main.rs:882:15:882:17 | Snd | +| main.rs:884:13:889:13 | match self { ... } | | main.rs:882:15:882:17 | Snd | +| main.rs:884:19:884:22 | self | | main.rs:874:5:880:5 | PairOption | +| main.rs:884:19:884:22 | self | Fst | main.rs:882:10:882:12 | Fst | +| main.rs:884:19:884:22 | self | Snd | main.rs:882:15:882:17 | Snd | +| main.rs:885:43:885:82 | MacroExpr | | main.rs:882:15:882:17 | Snd | +| main.rs:886:43:886:81 | MacroExpr | | main.rs:882:15:882:17 | Snd | +| main.rs:887:37:887:39 | snd | | main.rs:882:15:882:17 | Snd | +| main.rs:887:45:887:47 | snd | | main.rs:882:15:882:17 | Snd | +| main.rs:888:41:888:43 | snd | | main.rs:882:15:882:17 | Snd | +| main.rs:888:49:888:51 | snd | | main.rs:882:15:882:17 | Snd | +| main.rs:914:10:914:10 | t | | main.rs:874:5:880:5 | PairOption | +| main.rs:914:10:914:10 | t | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:914:10:914:10 | t | Snd | main.rs:874:5:880:5 | PairOption | +| main.rs:914:10:914:10 | t | Snd.Fst | main.rs:896:5:897:14 | S2 | +| main.rs:914:10:914:10 | t | Snd.Snd | main.rs:899:5:900:14 | S3 | +| main.rs:915:13:915:13 | x | | main.rs:899:5:900:14 | S3 | +| main.rs:915:17:915:17 | t | | main.rs:874:5:880:5 | PairOption | +| main.rs:915:17:915:17 | t | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:915:17:915:17 | t | Snd | main.rs:874:5:880:5 | PairOption | +| main.rs:915:17:915:17 | t | Snd.Fst | main.rs:896:5:897:14 | S2 | +| main.rs:915:17:915:17 | t | Snd.Snd | main.rs:899:5:900:14 | S3 | +| main.rs:915:17:915:29 | t.unwrapSnd() | | main.rs:874:5:880:5 | PairOption | +| main.rs:915:17:915:29 | t.unwrapSnd() | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:915:17:915:29 | t.unwrapSnd() | Snd | main.rs:899:5:900:14 | S3 | +| main.rs:915:17:915:41 | ... .unwrapSnd() | | main.rs:899:5:900:14 | S3 | +| main.rs:916:26:916:26 | x | | main.rs:899:5:900:14 | S3 | +| main.rs:921:13:921:14 | p1 | | main.rs:874:5:880:5 | PairOption | +| main.rs:921:13:921:14 | p1 | Fst | main.rs:893:5:894:14 | S1 | +| main.rs:921:13:921:14 | p1 | Snd | main.rs:896:5:897:14 | S2 | +| main.rs:921:26:921:53 | ...::PairBoth(...) | | main.rs:874:5:880:5 | PairOption | +| main.rs:921:26:921:53 | ...::PairBoth(...) | Fst | main.rs:893:5:894:14 | S1 | +| main.rs:921:26:921:53 | ...::PairBoth(...) | Snd | main.rs:896:5:897:14 | S2 | +| main.rs:921:47:921:48 | S1 | | main.rs:893:5:894:14 | S1 | +| main.rs:921:51:921:52 | S2 | | main.rs:896:5:897:14 | S2 | +| main.rs:922:26:922:27 | p1 | | main.rs:874:5:880:5 | PairOption | +| main.rs:922:26:922:27 | p1 | Fst | main.rs:893:5:894:14 | S1 | +| main.rs:922:26:922:27 | p1 | Snd | main.rs:896:5:897:14 | S2 | +| main.rs:925:13:925:14 | p2 | | main.rs:874:5:880:5 | PairOption | +| main.rs:925:13:925:14 | p2 | Fst | main.rs:893:5:894:14 | S1 | +| main.rs:925:13:925:14 | p2 | Snd | main.rs:896:5:897:14 | S2 | +| main.rs:925:26:925:47 | ...::PairNone(...) | | main.rs:874:5:880:5 | PairOption | +| main.rs:925:26:925:47 | ...::PairNone(...) | Fst | main.rs:893:5:894:14 | S1 | +| main.rs:925:26:925:47 | ...::PairNone(...) | Snd | main.rs:896:5:897:14 | S2 | +| main.rs:926:26:926:27 | p2 | | main.rs:874:5:880:5 | PairOption | +| main.rs:926:26:926:27 | p2 | Fst | main.rs:893:5:894:14 | S1 | +| main.rs:926:26:926:27 | p2 | Snd | main.rs:896:5:897:14 | S2 | +| main.rs:929:13:929:14 | p3 | | main.rs:874:5:880:5 | PairOption | +| main.rs:929:13:929:14 | p3 | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:929:13:929:14 | p3 | Snd | main.rs:899:5:900:14 | S3 | +| main.rs:929:34:929:56 | ...::PairSnd(...) | | main.rs:874:5:880:5 | PairOption | +| main.rs:929:34:929:56 | ...::PairSnd(...) | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:929:34:929:56 | ...::PairSnd(...) | Snd | main.rs:899:5:900:14 | S3 | +| main.rs:929:54:929:55 | S3 | | main.rs:899:5:900:14 | S3 | +| main.rs:930:26:930:27 | p3 | | main.rs:874:5:880:5 | PairOption | +| main.rs:930:26:930:27 | p3 | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:930:26:930:27 | p3 | Snd | main.rs:899:5:900:14 | S3 | +| main.rs:933:13:933:14 | p3 | | main.rs:874:5:880:5 | PairOption | +| main.rs:933:13:933:14 | p3 | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:933:13:933:14 | p3 | Snd | main.rs:899:5:900:14 | S3 | +| main.rs:933:35:933:56 | ...::PairNone(...) | | main.rs:874:5:880:5 | PairOption | +| main.rs:933:35:933:56 | ...::PairNone(...) | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:933:35:933:56 | ...::PairNone(...) | Snd | main.rs:899:5:900:14 | S3 | +| main.rs:934:26:934:27 | p3 | | main.rs:874:5:880:5 | PairOption | +| main.rs:934:26:934:27 | p3 | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:934:26:934:27 | p3 | Snd | main.rs:899:5:900:14 | S3 | +| main.rs:936:11:936:54 | ...::PairSnd(...) | | main.rs:874:5:880:5 | PairOption | +| main.rs:936:11:936:54 | ...::PairSnd(...) | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:936:11:936:54 | ...::PairSnd(...) | Snd | main.rs:874:5:880:5 | PairOption | +| main.rs:936:11:936:54 | ...::PairSnd(...) | Snd.Fst | main.rs:896:5:897:14 | S2 | +| main.rs:936:11:936:54 | ...::PairSnd(...) | Snd.Snd | main.rs:899:5:900:14 | S3 | +| main.rs:936:31:936:53 | ...::PairSnd(...) | | main.rs:874:5:880:5 | PairOption | +| main.rs:936:31:936:53 | ...::PairSnd(...) | Fst | main.rs:896:5:897:14 | S2 | +| main.rs:936:31:936:53 | ...::PairSnd(...) | Snd | main.rs:899:5:900:14 | S3 | +| main.rs:936:51:936:52 | S3 | | main.rs:899:5:900:14 | S3 | +| main.rs:949:16:949:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:949:16:949:24 | SelfParam | &T | main.rs:947:5:954:5 | Self [trait MyTrait] | +| main.rs:949:27:949:31 | value | | main.rs:947:19:947:19 | S | +| main.rs:951:21:951:29 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:951:21:951:29 | SelfParam | &T | main.rs:947:5:954:5 | Self [trait MyTrait] | +| main.rs:951:32:951:36 | value | | main.rs:947:19:947:19 | S | +| main.rs:952:13:952:16 | self | | file://:0:0:0:0 | & | +| main.rs:952:13:952:16 | self | &T | main.rs:947:5:954:5 | Self [trait MyTrait] | +| main.rs:952:22:952:26 | value | | main.rs:947:19:947:19 | S | +| main.rs:958:16:958:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:958:16:958:24 | SelfParam | &T | main.rs:941:5:945:5 | MyOption | +| main.rs:958:16:958:24 | SelfParam | &T.T | main.rs:956:10:956:10 | T | +| main.rs:958:27:958:31 | value | | main.rs:956:10:956:10 | T | +| main.rs:962:26:964:9 | { ... } | | main.rs:941:5:945:5 | MyOption | +| main.rs:962:26:964:9 | { ... } | T | main.rs:961:10:961:10 | T | +| main.rs:963:13:963:30 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:963:13:963:30 | ...::MyNone(...) | T | main.rs:961:10:961:10 | T | +| main.rs:968:20:968:23 | SelfParam | | main.rs:941:5:945:5 | MyOption | +| main.rs:968:20:968:23 | SelfParam | T | main.rs:941:5:945:5 | MyOption | +| main.rs:968:20:968:23 | SelfParam | T.T | main.rs:967:10:967:10 | T | +| main.rs:968:41:973:9 | { ... } | | main.rs:941:5:945:5 | MyOption | +| main.rs:968:41:973:9 | { ... } | T | main.rs:967:10:967:10 | T | +| main.rs:969:13:972:13 | match self { ... } | | main.rs:941:5:945:5 | MyOption | +| main.rs:969:13:972:13 | match self { ... } | T | main.rs:967:10:967:10 | T | +| main.rs:969:19:969:22 | self | | main.rs:941:5:945:5 | MyOption | +| main.rs:969:19:969:22 | self | T | main.rs:941:5:945:5 | MyOption | +| main.rs:969:19:969:22 | self | T.T | main.rs:967:10:967:10 | T | +| main.rs:970:39:970:56 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:970:39:970:56 | ...::MyNone(...) | T | main.rs:967:10:967:10 | T | +| main.rs:971:34:971:34 | x | | main.rs:941:5:945:5 | MyOption | +| main.rs:971:34:971:34 | x | T | main.rs:967:10:967:10 | T | +| main.rs:971:40:971:40 | x | | main.rs:941:5:945:5 | MyOption | +| main.rs:971:40:971:40 | x | T | main.rs:967:10:967:10 | T | +| main.rs:980:13:980:14 | x1 | | main.rs:941:5:945:5 | MyOption | +| main.rs:980:18:980:37 | ...::new(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:981:26:981:27 | x1 | | main.rs:941:5:945:5 | MyOption | +| main.rs:983:13:983:18 | mut x2 | | main.rs:941:5:945:5 | MyOption | +| main.rs:983:13:983:18 | mut x2 | T | main.rs:976:5:977:13 | S | +| main.rs:983:22:983:36 | ...::new(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:983:22:983:36 | ...::new(...) | T | main.rs:976:5:977:13 | S | +| main.rs:984:9:984:10 | x2 | | main.rs:941:5:945:5 | MyOption | +| main.rs:984:9:984:10 | x2 | T | main.rs:976:5:977:13 | S | +| main.rs:984:16:984:16 | S | | main.rs:976:5:977:13 | S | +| main.rs:985:26:985:27 | x2 | | main.rs:941:5:945:5 | MyOption | +| main.rs:985:26:985:27 | x2 | T | main.rs:976:5:977:13 | S | +| main.rs:987:13:987:18 | mut x3 | | main.rs:941:5:945:5 | MyOption | +| main.rs:987:22:987:36 | ...::new(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:988:9:988:10 | x3 | | main.rs:941:5:945:5 | MyOption | +| main.rs:988:21:988:21 | S | | main.rs:976:5:977:13 | S | +| main.rs:989:26:989:27 | x3 | | main.rs:941:5:945:5 | MyOption | +| main.rs:991:13:991:18 | mut x4 | | main.rs:941:5:945:5 | MyOption | +| main.rs:991:13:991:18 | mut x4 | T | main.rs:976:5:977:13 | S | +| main.rs:991:22:991:36 | ...::new(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:991:22:991:36 | ...::new(...) | T | main.rs:976:5:977:13 | S | +| main.rs:992:23:992:29 | &mut x4 | | file://:0:0:0:0 | & | +| main.rs:992:23:992:29 | &mut x4 | &T | main.rs:941:5:945:5 | MyOption | +| main.rs:992:23:992:29 | &mut x4 | &T.T | main.rs:976:5:977:13 | S | +| main.rs:992:28:992:29 | x4 | | main.rs:941:5:945:5 | MyOption | +| main.rs:992:28:992:29 | x4 | T | main.rs:976:5:977:13 | S | +| main.rs:992:32:992:32 | S | | main.rs:976:5:977:13 | S | +| main.rs:993:26:993:27 | x4 | | main.rs:941:5:945:5 | MyOption | +| main.rs:993:26:993:27 | x4 | T | main.rs:976:5:977:13 | S | +| main.rs:995:13:995:14 | x5 | | main.rs:941:5:945:5 | MyOption | +| main.rs:995:13:995:14 | x5 | T | main.rs:941:5:945:5 | MyOption | +| main.rs:995:13:995:14 | x5 | T.T | main.rs:976:5:977:13 | S | +| main.rs:995:18:995:58 | ...::MySome(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:995:18:995:58 | ...::MySome(...) | T | main.rs:941:5:945:5 | MyOption | +| main.rs:995:18:995:58 | ...::MySome(...) | T.T | main.rs:976:5:977:13 | S | +| main.rs:995:35:995:57 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:995:35:995:57 | ...::MyNone(...) | T | main.rs:976:5:977:13 | S | +| main.rs:996:26:996:27 | x5 | | main.rs:941:5:945:5 | MyOption | +| main.rs:996:26:996:27 | x5 | T | main.rs:941:5:945:5 | MyOption | +| main.rs:996:26:996:27 | x5 | T.T | main.rs:976:5:977:13 | S | +| main.rs:996:26:996:37 | x5.flatten() | | main.rs:941:5:945:5 | MyOption | +| main.rs:996:26:996:37 | x5.flatten() | T | main.rs:976:5:977:13 | S | +| main.rs:998:13:998:14 | x6 | | main.rs:941:5:945:5 | MyOption | +| main.rs:998:13:998:14 | x6 | T | main.rs:941:5:945:5 | MyOption | +| main.rs:998:13:998:14 | x6 | T.T | main.rs:976:5:977:13 | S | +| main.rs:998:18:998:58 | ...::MySome(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:998:18:998:58 | ...::MySome(...) | T | main.rs:941:5:945:5 | MyOption | +| main.rs:998:18:998:58 | ...::MySome(...) | T.T | main.rs:976:5:977:13 | S | +| main.rs:998:35:998:57 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:998:35:998:57 | ...::MyNone(...) | T | main.rs:976:5:977:13 | S | +| main.rs:999:26:999:61 | ...::flatten(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:999:26:999:61 | ...::flatten(...) | T | main.rs:976:5:977:13 | S | +| main.rs:999:59:999:60 | x6 | | main.rs:941:5:945:5 | MyOption | +| main.rs:999:59:999:60 | x6 | T | main.rs:941:5:945:5 | MyOption | +| main.rs:999:59:999:60 | x6 | T.T | main.rs:976:5:977:13 | S | +| main.rs:1001:13:1001:19 | from_if | | main.rs:941:5:945:5 | MyOption | +| main.rs:1001:13:1001:19 | from_if | T | main.rs:976:5:977:13 | S | +| main.rs:1001:23:1005:9 | if ... {...} else {...} | | main.rs:941:5:945:5 | MyOption | +| main.rs:1001:23:1005:9 | if ... {...} else {...} | T | main.rs:976:5:977:13 | S | +| main.rs:1001:36:1003:9 | { ... } | | main.rs:941:5:945:5 | MyOption | +| main.rs:1001:36:1003:9 | { ... } | T | main.rs:976:5:977:13 | S | +| main.rs:1002:13:1002:30 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:1002:13:1002:30 | ...::MyNone(...) | T | main.rs:976:5:977:13 | S | +| main.rs:1003:16:1005:9 | { ... } | | main.rs:941:5:945:5 | MyOption | +| main.rs:1003:16:1005:9 | { ... } | T | main.rs:976:5:977:13 | S | +| main.rs:1004:13:1004:31 | ...::MySome(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:1004:13:1004:31 | ...::MySome(...) | T | main.rs:976:5:977:13 | S | +| main.rs:1004:30:1004:30 | S | | main.rs:976:5:977:13 | S | +| main.rs:1006:26:1006:32 | from_if | | main.rs:941:5:945:5 | MyOption | +| main.rs:1006:26:1006:32 | from_if | T | main.rs:976:5:977:13 | S | +| main.rs:1008:13:1008:22 | from_match | | main.rs:941:5:945:5 | MyOption | +| main.rs:1008:13:1008:22 | from_match | T | main.rs:976:5:977:13 | S | +| main.rs:1008:26:1011:9 | match ... { ... } | | main.rs:941:5:945:5 | MyOption | +| main.rs:1008:26:1011:9 | match ... { ... } | T | main.rs:976:5:977:13 | S | +| main.rs:1009:21:1009:38 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:1009:21:1009:38 | ...::MyNone(...) | T | main.rs:976:5:977:13 | S | +| main.rs:1010:22:1010:40 | ...::MySome(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:1010:22:1010:40 | ...::MySome(...) | T | main.rs:976:5:977:13 | S | +| main.rs:1010:39:1010:39 | S | | main.rs:976:5:977:13 | S | +| main.rs:1012:26:1012:35 | from_match | | main.rs:941:5:945:5 | MyOption | +| main.rs:1012:26:1012:35 | from_match | T | main.rs:976:5:977:13 | S | +| main.rs:1014:13:1014:21 | from_loop | | main.rs:941:5:945:5 | MyOption | +| main.rs:1014:13:1014:21 | from_loop | T | main.rs:976:5:977:13 | S | +| main.rs:1014:25:1019:9 | loop { ... } | | main.rs:941:5:945:5 | MyOption | +| main.rs:1014:25:1019:9 | loop { ... } | T | main.rs:976:5:977:13 | S | +| main.rs:1016:23:1016:40 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:1016:23:1016:40 | ...::MyNone(...) | T | main.rs:976:5:977:13 | S | +| main.rs:1018:19:1018:37 | ...::MySome(...) | | main.rs:941:5:945:5 | MyOption | +| main.rs:1018:19:1018:37 | ...::MySome(...) | T | main.rs:976:5:977:13 | S | +| main.rs:1018:36:1018:36 | S | | main.rs:976:5:977:13 | S | +| main.rs:1020:26:1020:34 | from_loop | | main.rs:941:5:945:5 | MyOption | +| main.rs:1020:26:1020:34 | from_loop | T | main.rs:976:5:977:13 | S | +| main.rs:1033:15:1033:18 | SelfParam | | main.rs:1026:5:1027:19 | S | +| main.rs:1033:15:1033:18 | SelfParam | T | main.rs:1032:10:1032:10 | T | +| main.rs:1033:26:1035:9 | { ... } | | main.rs:1032:10:1032:10 | T | +| main.rs:1034:13:1034:16 | self | | main.rs:1026:5:1027:19 | S | +| main.rs:1034:13:1034:16 | self | T | main.rs:1032:10:1032:10 | T | +| main.rs:1034:13:1034:18 | self.0 | | main.rs:1032:10:1032:10 | T | +| main.rs:1037:15:1037:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1037:15:1037:19 | SelfParam | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1037:15:1037:19 | SelfParam | &T.T | main.rs:1032:10:1032:10 | T | +| main.rs:1037:28:1039:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1037:28:1039:9 | { ... } | &T | main.rs:1032:10:1032:10 | T | +| main.rs:1038:13:1038:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1038:13:1038:19 | &... | &T | main.rs:1032:10:1032:10 | T | +| main.rs:1038:14:1038:17 | self | | file://:0:0:0:0 | & | +| main.rs:1038:14:1038:17 | self | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1038:14:1038:17 | self | &T.T | main.rs:1032:10:1032:10 | T | +| main.rs:1038:14:1038:19 | self.0 | | main.rs:1032:10:1032:10 | T | +| main.rs:1041:15:1041:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1041:15:1041:25 | SelfParam | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1041:15:1041:25 | SelfParam | &T.T | main.rs:1032:10:1032:10 | T | +| main.rs:1041:34:1043:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1041:34:1043:9 | { ... } | &T | main.rs:1032:10:1032:10 | T | +| main.rs:1042:13:1042:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1042:13:1042:19 | &... | &T | main.rs:1032:10:1032:10 | T | +| main.rs:1042:14:1042:17 | self | | file://:0:0:0:0 | & | +| main.rs:1042:14:1042:17 | self | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1042:14:1042:17 | self | &T.T | main.rs:1032:10:1032:10 | T | +| main.rs:1042:14:1042:19 | self.0 | | main.rs:1032:10:1032:10 | T | +| main.rs:1047:13:1047:14 | x1 | | main.rs:1026:5:1027:19 | S | +| main.rs:1047:13:1047:14 | x1 | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1047:18:1047:22 | S(...) | | main.rs:1026:5:1027:19 | S | +| main.rs:1047:18:1047:22 | S(...) | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1047:20:1047:21 | S2 | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1048:26:1048:27 | x1 | | main.rs:1026:5:1027:19 | S | +| main.rs:1048:26:1048:27 | x1 | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1048:26:1048:32 | x1.m1() | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1050:13:1050:14 | x2 | | main.rs:1026:5:1027:19 | S | +| main.rs:1050:13:1050:14 | x2 | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1050:18:1050:22 | S(...) | | main.rs:1026:5:1027:19 | S | +| main.rs:1050:18:1050:22 | S(...) | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1050:20:1050:21 | S2 | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1052:26:1052:27 | x2 | | main.rs:1026:5:1027:19 | S | +| main.rs:1052:26:1052:27 | x2 | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1052:26:1052:32 | x2.m2() | | file://:0:0:0:0 | & | +| main.rs:1052:26:1052:32 | x2.m2() | &T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1053:26:1053:27 | x2 | | main.rs:1026:5:1027:19 | S | +| main.rs:1053:26:1053:27 | x2 | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1053:26:1053:32 | x2.m3() | | file://:0:0:0:0 | & | +| main.rs:1053:26:1053:32 | x2.m3() | &T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1055:13:1055:14 | x3 | | main.rs:1026:5:1027:19 | S | +| main.rs:1055:13:1055:14 | x3 | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1055:18:1055:22 | S(...) | | main.rs:1026:5:1027:19 | S | +| main.rs:1055:18:1055:22 | S(...) | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1055:20:1055:21 | S2 | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1057:26:1057:41 | ...::m2(...) | | file://:0:0:0:0 | & | +| main.rs:1057:26:1057:41 | ...::m2(...) | &T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1057:38:1057:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1057:38:1057:40 | &x3 | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1057:38:1057:40 | &x3 | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1057:39:1057:40 | x3 | | main.rs:1026:5:1027:19 | S | +| main.rs:1057:39:1057:40 | x3 | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1058:26:1058:41 | ...::m3(...) | | file://:0:0:0:0 | & | +| main.rs:1058:26:1058:41 | ...::m3(...) | &T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1058:38:1058:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1058:38:1058:40 | &x3 | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1058:38:1058:40 | &x3 | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1058:39:1058:40 | x3 | | main.rs:1026:5:1027:19 | S | +| main.rs:1058:39:1058:40 | x3 | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1060:13:1060:14 | x4 | | file://:0:0:0:0 | & | +| main.rs:1060:13:1060:14 | x4 | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1060:13:1060:14 | x4 | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1060:18:1060:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1060:18:1060:23 | &... | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1060:18:1060:23 | &... | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1060:19:1060:23 | S(...) | | main.rs:1026:5:1027:19 | S | +| main.rs:1060:19:1060:23 | S(...) | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1060:21:1060:22 | S2 | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1062:26:1062:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1062:26:1062:27 | x4 | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1062:26:1062:27 | x4 | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1062:26:1062:32 | x4.m2() | | file://:0:0:0:0 | & | +| main.rs:1062:26:1062:32 | x4.m2() | &T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1063:26:1063:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1063:26:1063:27 | x4 | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1063:26:1063:27 | x4 | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1063:26:1063:32 | x4.m3() | | file://:0:0:0:0 | & | +| main.rs:1063:26:1063:32 | x4.m3() | &T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1065:13:1065:14 | x5 | | file://:0:0:0:0 | & | +| main.rs:1065:13:1065:14 | x5 | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1065:13:1065:14 | x5 | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1065:18:1065:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1065:18:1065:23 | &... | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1065:18:1065:23 | &... | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1065:19:1065:23 | S(...) | | main.rs:1026:5:1027:19 | S | +| main.rs:1065:19:1065:23 | S(...) | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1065:21:1065:22 | S2 | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1067:26:1067:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1067:26:1067:27 | x5 | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1067:26:1067:27 | x5 | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1067:26:1067:32 | x5.m1() | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1068:26:1068:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1068:26:1068:27 | x5 | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1068:26:1068:27 | x5 | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1068:26:1068:29 | x5.0 | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1070:13:1070:14 | x6 | | file://:0:0:0:0 | & | +| main.rs:1070:13:1070:14 | x6 | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1070:13:1070:14 | x6 | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1070:18:1070:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1070:18:1070:23 | &... | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1070:18:1070:23 | &... | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1070:19:1070:23 | S(...) | | main.rs:1026:5:1027:19 | S | +| main.rs:1070:19:1070:23 | S(...) | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1070:21:1070:22 | S2 | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1072:26:1072:30 | (...) | | main.rs:1026:5:1027:19 | S | +| main.rs:1072:26:1072:30 | (...) | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1072:26:1072:35 | ... .m1() | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1072:27:1072:29 | * ... | | main.rs:1026:5:1027:19 | S | +| main.rs:1072:27:1072:29 | * ... | T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1072:28:1072:29 | x6 | | file://:0:0:0:0 | & | +| main.rs:1072:28:1072:29 | x6 | &T | main.rs:1026:5:1027:19 | S | +| main.rs:1072:28:1072:29 | x6 | &T.T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1074:13:1074:14 | x7 | | main.rs:1026:5:1027:19 | S | +| main.rs:1074:13:1074:14 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1074:13:1074:14 | x7 | T.&T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1074:18:1074:23 | S(...) | | main.rs:1026:5:1027:19 | S | +| main.rs:1074:18:1074:23 | S(...) | T | file://:0:0:0:0 | & | +| main.rs:1074:18:1074:23 | S(...) | T.&T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1074:20:1074:22 | &S2 | | file://:0:0:0:0 | & | +| main.rs:1074:20:1074:22 | &S2 | &T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1074:21:1074:22 | S2 | | main.rs:1029:5:1030:14 | S2 | +| main.rs:1077:13:1077:13 | t | | file://:0:0:0:0 | & | +| main.rs:1077:13:1077:13 | t | &T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1077:17:1077:18 | x7 | | main.rs:1026:5:1027:19 | S | +| main.rs:1077:17:1077:18 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1077:17:1077:18 | x7 | T.&T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1077:17:1077:23 | x7.m1() | | file://:0:0:0:0 | & | +| main.rs:1077:17:1077:23 | x7.m1() | &T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1078:26:1078:27 | x7 | | main.rs:1026:5:1027:19 | S | +| main.rs:1078:26:1078:27 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1078:26:1078:27 | x7 | T.&T | main.rs:1029:5:1030:14 | S2 | +| main.rs:1085:16:1085:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1085:16:1085:20 | SelfParam | &T | main.rs:1083:5:1091:5 | Self [trait MyTrait] | +| main.rs:1088:16:1088:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1088:16:1088:20 | SelfParam | &T | main.rs:1083:5:1091:5 | Self [trait MyTrait] | +| main.rs:1088:32:1090:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1088:32:1090:9 | { ... } | &T | main.rs:1083:5:1091:5 | Self [trait MyTrait] | +| main.rs:1089:13:1089:16 | self | | file://:0:0:0:0 | & | +| main.rs:1089:13:1089:16 | self | &T | main.rs:1083:5:1091:5 | Self [trait MyTrait] | +| main.rs:1089:13:1089:22 | self.foo() | | file://:0:0:0:0 | & | +| main.rs:1089:13:1089:22 | self.foo() | &T | main.rs:1083:5:1091:5 | Self [trait MyTrait] | +| main.rs:1097:16:1097:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1097:16:1097:20 | SelfParam | &T | main.rs:1093:5:1093:20 | MyStruct | +| main.rs:1097:36:1099:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1097:36:1099:9 | { ... } | &T | main.rs:1093:5:1093:20 | MyStruct | +| main.rs:1098:13:1098:16 | self | | file://:0:0:0:0 | & | +| main.rs:1098:13:1098:16 | self | &T | main.rs:1093:5:1093:20 | MyStruct | +| main.rs:1103:13:1103:13 | x | | main.rs:1093:5:1093:20 | MyStruct | +| main.rs:1103:17:1103:24 | MyStruct | | main.rs:1093:5:1093:20 | MyStruct | +| main.rs:1104:9:1104:9 | x | | main.rs:1093:5:1093:20 | MyStruct | +| main.rs:1104:9:1104:15 | x.bar() | | file://:0:0:0:0 | & | +| main.rs:1104:9:1104:15 | x.bar() | &T | main.rs:1093:5:1093:20 | MyStruct | +| main.rs:1114:16:1114:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1114:16:1114:20 | SelfParam | &T | main.rs:1111:5:1111:26 | MyStruct | +| main.rs:1114:16:1114:20 | SelfParam | &T.T | main.rs:1113:10:1113:10 | T | +| main.rs:1114:32:1116:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1114:32:1116:9 | { ... } | &T | main.rs:1111:5:1111:26 | MyStruct | +| main.rs:1114:32:1116:9 | { ... } | &T.T | main.rs:1113:10:1113:10 | T | +| main.rs:1115:13:1115:16 | self | | file://:0:0:0:0 | & | +| main.rs:1115:13:1115:16 | self | &T | main.rs:1111:5:1111:26 | MyStruct | +| main.rs:1115:13:1115:16 | self | &T.T | main.rs:1113:10:1113:10 | T | +| main.rs:1120:13:1120:13 | x | | main.rs:1111:5:1111:26 | MyStruct | +| main.rs:1120:13:1120:13 | x | T | main.rs:1109:5:1109:13 | S | +| main.rs:1120:17:1120:27 | MyStruct(...) | | main.rs:1111:5:1111:26 | MyStruct | +| main.rs:1120:17:1120:27 | MyStruct(...) | T | main.rs:1109:5:1109:13 | S | +| main.rs:1120:26:1120:26 | S | | main.rs:1109:5:1109:13 | S | +| main.rs:1121:9:1121:9 | x | | main.rs:1111:5:1111:26 | MyStruct | +| main.rs:1121:9:1121:9 | x | T | main.rs:1109:5:1109:13 | S | +| main.rs:1121:9:1121:15 | x.foo() | | file://:0:0:0:0 | & | +| main.rs:1121:9:1121:15 | x.foo() | &T | main.rs:1111:5:1111:26 | MyStruct | +| main.rs:1121:9:1121:15 | x.foo() | &T.T | main.rs:1109:5:1109:13 | S | +| main.rs:1129:15:1129:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1129:15:1129:19 | SelfParam | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1129:31:1131:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1129:31:1131:9 | { ... } | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1130:13:1130:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1130:13:1130:19 | &... | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1130:14:1130:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1130:14:1130:19 | &... | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1130:15:1130:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1130:15:1130:19 | &self | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1130:16:1130:19 | self | | file://:0:0:0:0 | & | +| main.rs:1130:16:1130:19 | self | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1133:15:1133:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1133:15:1133:25 | SelfParam | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1133:37:1135:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1133:37:1135:9 | { ... } | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1134:13:1134:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1134:13:1134:19 | &... | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1134:14:1134:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1134:14:1134:19 | &... | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1134:15:1134:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1134:15:1134:19 | &self | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1134:16:1134:19 | self | | file://:0:0:0:0 | & | +| main.rs:1134:16:1134:19 | self | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1137:15:1137:15 | x | | file://:0:0:0:0 | & | +| main.rs:1137:15:1137:15 | x | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1137:34:1139:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1137:34:1139:9 | { ... } | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1138:13:1138:13 | x | | file://:0:0:0:0 | & | +| main.rs:1138:13:1138:13 | x | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1141:15:1141:15 | x | | file://:0:0:0:0 | & | +| main.rs:1141:15:1141:15 | x | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1141:34:1143:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1141:34:1143:9 | { ... } | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1142:13:1142:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1142:13:1142:16 | &... | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1142:14:1142:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1142:14:1142:16 | &... | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1142:15:1142:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1142:15:1142:16 | &x | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1142:16:1142:16 | x | | file://:0:0:0:0 | & | +| main.rs:1142:16:1142:16 | x | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1147:13:1147:13 | x | | main.rs:1126:5:1126:13 | S | +| main.rs:1147:17:1147:20 | S {...} | | main.rs:1126:5:1126:13 | S | +| main.rs:1148:9:1148:9 | x | | main.rs:1126:5:1126:13 | S | +| main.rs:1148:9:1148:14 | x.f1() | | file://:0:0:0:0 | & | +| main.rs:1148:9:1148:14 | x.f1() | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1149:9:1149:9 | x | | main.rs:1126:5:1126:13 | S | +| main.rs:1149:9:1149:14 | x.f2() | | file://:0:0:0:0 | & | +| main.rs:1149:9:1149:14 | x.f2() | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1150:9:1150:17 | ...::f3(...) | | file://:0:0:0:0 | & | +| main.rs:1150:9:1150:17 | ...::f3(...) | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1150:15:1150:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1150:15:1150:16 | &x | &T | main.rs:1126:5:1126:13 | S | +| main.rs:1150:16:1150:16 | x | | main.rs:1126:5:1126:13 | S | +| main.rs:1164:43:1167:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1164:43:1167:5 | { ... } | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1164:43:1167:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1165:13:1165:13 | x | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1165:17:1165:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1165:17:1165:30 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1165:17:1165:31 | TryExpr | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1165:28:1165:29 | S1 | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1166:9:1166:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1166:9:1166:22 | ...::Ok(...) | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1166:9:1166:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1166:20:1166:21 | S1 | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1170:46:1174:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1170:46:1174:5 | { ... } | E | main.rs:1160:5:1161:14 | S2 | +| main.rs:1170:46:1174:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1171:13:1171:13 | x | | file://:0:0:0:0 | Result | +| main.rs:1171:13:1171:13 | x | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1171:17:1171:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1171:17:1171:30 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1171:28:1171:29 | S1 | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1172:13:1172:13 | y | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1172:17:1172:17 | x | | file://:0:0:0:0 | Result | +| main.rs:1172:17:1172:17 | x | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1172:17:1172:18 | TryExpr | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1173:9:1173:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1173:9:1173:22 | ...::Ok(...) | E | main.rs:1160:5:1161:14 | S2 | +| main.rs:1173:9:1173:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1173:20:1173:21 | S1 | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1177:40:1182:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1177:40:1182:5 | { ... } | E | main.rs:1160:5:1161:14 | S2 | +| main.rs:1177:40:1182:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1178:13:1178:13 | x | | file://:0:0:0:0 | Result | +| main.rs:1178:13:1178:13 | x | T | file://:0:0:0:0 | Result | +| main.rs:1178:13:1178:13 | x | T.T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1178:17:1178:42 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1178:17:1178:42 | ...::Ok(...) | T | file://:0:0:0:0 | Result | +| main.rs:1178:17:1178:42 | ...::Ok(...) | T.T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1178:28:1178:41 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1178:28:1178:41 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1178:39:1178:40 | S1 | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1180:17:1180:17 | x | | file://:0:0:0:0 | Result | +| main.rs:1180:17:1180:17 | x | T | file://:0:0:0:0 | Result | +| main.rs:1180:17:1180:17 | x | T.T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1180:17:1180:18 | TryExpr | | file://:0:0:0:0 | Result | +| main.rs:1180:17:1180:18 | TryExpr | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1180:17:1180:29 | ... .map(...) | | file://:0:0:0:0 | Result | +| main.rs:1181:9:1181:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1181:9:1181:22 | ...::Ok(...) | E | main.rs:1160:5:1161:14 | S2 | +| main.rs:1181:9:1181:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1181:20:1181:21 | S1 | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1185:30:1185:34 | input | | file://:0:0:0:0 | Result | +| main.rs:1185:30:1185:34 | input | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1185:30:1185:34 | input | T | main.rs:1185:20:1185:27 | T | +| main.rs:1185:69:1192:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1185:69:1192:5 | { ... } | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1185:69:1192:5 | { ... } | T | main.rs:1185:20:1185:27 | T | +| main.rs:1186:13:1186:17 | value | | main.rs:1185:20:1185:27 | T | +| main.rs:1186:21:1186:25 | input | | file://:0:0:0:0 | Result | +| main.rs:1186:21:1186:25 | input | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1186:21:1186:25 | input | T | main.rs:1185:20:1185:27 | T | +| main.rs:1186:21:1186:26 | TryExpr | | main.rs:1185:20:1185:27 | T | +| main.rs:1187:22:1187:38 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1187:22:1187:38 | ...::Ok(...) | T | main.rs:1185:20:1185:27 | T | +| main.rs:1187:22:1190:10 | ... .and_then(...) | | file://:0:0:0:0 | Result | +| main.rs:1187:33:1187:37 | value | | main.rs:1185:20:1185:27 | T | +| main.rs:1187:53:1190:9 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1187:53:1190:9 | { ... } | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1189:13:1189:34 | ...::Ok::<...>(...) | | file://:0:0:0:0 | Result | +| main.rs:1189:13:1189:34 | ...::Ok::<...>(...) | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1191:9:1191:23 | ...::Err(...) | | file://:0:0:0:0 | Result | +| main.rs:1191:9:1191:23 | ...::Err(...) | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1191:9:1191:23 | ...::Err(...) | T | main.rs:1185:20:1185:27 | T | +| main.rs:1191:21:1191:22 | S1 | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1195:37:1195:52 | try_same_error(...) | | file://:0:0:0:0 | Result | +| main.rs:1195:37:1195:52 | try_same_error(...) | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1195:37:1195:52 | try_same_error(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1199:37:1199:55 | try_convert_error(...) | | file://:0:0:0:0 | Result | +| main.rs:1199:37:1199:55 | try_convert_error(...) | E | main.rs:1160:5:1161:14 | S2 | +| main.rs:1199:37:1199:55 | try_convert_error(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1203:37:1203:49 | try_chained(...) | | file://:0:0:0:0 | Result | +| main.rs:1203:37:1203:49 | try_chained(...) | E | main.rs:1160:5:1161:14 | S2 | +| main.rs:1203:37:1203:49 | try_chained(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1207:37:1207:63 | try_complex(...) | | file://:0:0:0:0 | Result | +| main.rs:1207:37:1207:63 | try_complex(...) | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1207:37:1207:63 | try_complex(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1207:49:1207:62 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1207:49:1207:62 | ...::Ok(...) | E | main.rs:1157:5:1158:14 | S1 | +| main.rs:1207:49:1207:62 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | +| main.rs:1207:60:1207:61 | S1 | | main.rs:1157:5:1158:14 | S1 | +| main.rs:1215:5:1215:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1216:5:1216:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1216:20:1216:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1216:41:1216:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | From 654d4104851e32dab384a5d7caacda7c216e970b Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 19 May 2025 15:35:40 +0200 Subject: [PATCH 467/656] Rust: Address PR feedback --- rust/ql/lib/codeql/rust/internal/Type.qll | 11 +- .../codeql/rust/internal/TypeInference.qll | 73 +++---- .../type-inference/type-inference.expected | 15 +- .../PathResolutionConsistency.expected | 0 .../typeinference/internal/TypeInference.qll | 179 ++++++++++-------- 5 files changed, 147 insertions(+), 131 deletions(-) delete mode 100644 rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/Type.qll index b50d0424a3d..9ffbf061463 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/Type.qll @@ -335,7 +335,16 @@ class SelfTypeParameter extends TypeParameter, TSelfTypeParameter { override Location getLocation() { result = trait.getLocation() } } -/** A type abstraction. */ +/** + * A type abstraction. I.e., a place in the program where type variables are + * introduced. + * + * Example: + * ```rust + * impl Foo { } + * // ^^^^^^ a type abstraction + * ``` + */ abstract class TypeAbstraction extends AstNode { abstract TypeParameter getATypeParameter(); } diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 76f6be69e09..ad32c7810b8 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -19,16 +19,6 @@ private module Input1 implements InputSig1 { class TypeParameter = T::TypeParameter; - /** - * A type abstraction. I.e., a place in the program where type variables are - * introduced. - * - * Example: - * ```rust - * impl Foo { } - * // ^^^^^^ a type abstraction - * ``` - */ class TypeAbstraction = T::TypeAbstraction; private newtype TTypeArgumentPosition = @@ -156,7 +146,7 @@ private module Input2 implements InputSig2 { exists(TypeParam param | abs = param.getTypeBoundList().getABound() and condition = param and - constraint = param.getTypeBoundList().getABound().getTypeRepr() + constraint = abs.(TypeBound).getTypeRepr() ) or // the implicit `Self` type parameter satisfies the trait @@ -968,22 +958,6 @@ private module Cached { ) } - pragma[nomagic] - private Type receiverRootType(Expr e) { - any(MethodCallExpr mce).getReceiver() = e and - result = inferType(e) - } - - pragma[nomagic] - private Type inferReceiverType(Expr e, TypePath path) { - exists(Type root | root = receiverRootType(e) | - // for reference types, lookup members in the type being referenced - if root = TRefType() - then result = inferType(e, TypePath::cons(TRefTypeParameter(), path)) - else result = inferType(e, path) - ) - } - private class ReceiverExpr extends Expr { MethodCallExpr mce; @@ -993,13 +967,22 @@ private module Cached { int getNumberOfArgs() { result = mce.getArgList().getNumberOfArgs() } - Type resolveTypeAt(TypePath path) { result = inferReceiverType(this, path) } + pragma[nomagic] + Type getTypeAt(TypePath path) { + exists(TypePath path0 | result = inferType(this, path0) | + path0 = TypePath::cons(TRefTypeParameter(), path) + or + not path0.isCons(TRefTypeParameter(), _) and + not (path0.isEmpty() and result = TRefType()) and + path = path0 + ) + } } /** Holds if a method for `type` with the name `name` and the arity `arity` exists in `impl`. */ pragma[nomagic] private predicate methodCandidate(Type type, string name, int arity, Impl impl) { - type = impl.(ImplTypeAbstraction).getSelfTy().(TypeReprMention).resolveType() and + type = impl.getSelfTy().(TypeReprMention).resolveType() and exists(Function f | f = impl.(ImplItemNode).getASuccessor(name) and f.getParamList().hasSelfParam() and @@ -1009,17 +992,16 @@ private module Cached { private module IsInstantiationOfInput implements IsInstantiationOfInputSig { pragma[nomagic] - predicate potentialInstantiationOf(ReceiverExpr receiver, TypeAbstraction impl, TypeMention sub) { - methodCandidate(receiver.resolveTypeAt(TypePath::nil()), receiver.getField(), + predicate potentialInstantiationOf( + ReceiverExpr receiver, TypeAbstraction impl, TypeMention constraint + ) { + methodCandidate(receiver.getTypeAt(TypePath::nil()), receiver.getField(), receiver.getNumberOfArgs(), impl) and - sub = impl.(ImplTypeAbstraction).getSelfTy() + constraint = impl.(ImplTypeAbstraction).getSelfTy() } - predicate relevantTypeMention(TypeMention sub) { - exists(TypeAbstraction impl | - methodCandidate(_, _, _, impl) and - sub = impl.(ImplTypeAbstraction).getSelfTy() - ) + predicate relevantTypeMention(TypeMention constraint) { + exists(Impl impl | methodCandidate(_, _, _, impl) and constraint = impl.getSelfTy()) } } @@ -1044,8 +1026,7 @@ private module Cached { */ private Function getMethodFromImpl(ReceiverExpr receiver) { exists(Impl impl | - IsInstantiationOf::isInstantiationOf(receiver, impl, - impl.(ImplTypeAbstraction).getSelfTy().(TypeReprMention)) and + IsInstantiationOf::isInstantiationOf(receiver, impl, _) and result = getMethodSuccessor(impl, receiver.getField()) ) } @@ -1059,19 +1040,17 @@ private module Cached { or // The type of `receiver` is a type parameter and the method comes from a // trait bound on the type parameter. - result = getTypeParameterMethod(receiver.resolveTypeAt(TypePath::nil()), receiver.getField()) + result = getTypeParameterMethod(receiver.getTypeAt(TypePath::nil()), receiver.getField()) ) } pragma[inline] private Type inferRootTypeDeref(AstNode n) { - exists(Type t | - t = inferType(n) and - // for reference types, lookup members in the type being referenced - if t = TRefType() - then result = inferType(n, TypePath::singleton(TRefTypeParameter())) - else result = t - ) + result = inferType(n) and + result != TRefType() + or + // for reference types, lookup members in the type being referenced + result = inferType(n, TypePath::singleton(TRefTypeParameter())) } pragma[nomagic] diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 27ea38cffd8..58ccb3f6e88 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1,6 +1,4 @@ testFailures -| main.rs:793:25:793:75 | //... | Missing result: type=a:A.S1 | -| main.rs:793:25:793:75 | //... | Missing result: type=a:MyThing | inferType | loop/main.rs:7:12:7:15 | SelfParam | | loop/main.rs:6:1:8:1 | Self [trait T1] | | loop/main.rs:11:12:11:15 | SelfParam | | loop/main.rs:10:1:14:1 | Self [trait T2] | @@ -798,10 +796,13 @@ inferType | main.rs:788:9:788:9 | x | | main.rs:787:26:787:41 | T2 | | main.rs:788:9:788:14 | x.m1() | | main.rs:787:22:787:23 | T1 | | main.rs:791:56:791:56 | x | | main.rs:791:39:791:53 | T | -| main.rs:793:13:793:13 | a | | main.rs:741:20:741:22 | Tr2 | +| main.rs:793:13:793:13 | a | | main.rs:721:5:724:5 | MyThing | +| main.rs:793:13:793:13 | a | A | main.rs:731:5:732:14 | S1 | | main.rs:793:17:793:17 | x | | main.rs:791:39:791:53 | T | -| main.rs:793:17:793:22 | x.m1() | | main.rs:741:20:741:22 | Tr2 | -| main.rs:794:26:794:26 | a | | main.rs:741:20:741:22 | Tr2 | +| main.rs:793:17:793:22 | x.m1() | | main.rs:721:5:724:5 | MyThing | +| main.rs:793:17:793:22 | x.m1() | A | main.rs:731:5:732:14 | S1 | +| main.rs:794:26:794:26 | a | | main.rs:721:5:724:5 | MyThing | +| main.rs:794:26:794:26 | a | A | main.rs:731:5:732:14 | S1 | | main.rs:798:13:798:13 | x | | main.rs:721:5:724:5 | MyThing | | main.rs:798:13:798:13 | x | A | main.rs:731:5:732:14 | S1 | | main.rs:798:17:798:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | @@ -856,9 +857,7 @@ inferType | main.rs:816:17:816:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | | main.rs:816:30:816:31 | S1 | | main.rs:731:5:732:14 | S1 | | main.rs:817:13:817:13 | s | | main.rs:731:5:732:14 | S1 | -| main.rs:817:13:817:13 | s | | main.rs:741:20:741:22 | Tr2 | | main.rs:817:17:817:32 | call_trait_m1(...) | | main.rs:731:5:732:14 | S1 | -| main.rs:817:17:817:32 | call_trait_m1(...) | | main.rs:741:20:741:22 | Tr2 | | main.rs:817:31:817:31 | x | | main.rs:721:5:724:5 | MyThing | | main.rs:817:31:817:31 | x | A | main.rs:731:5:732:14 | S1 | | main.rs:819:13:819:13 | x | | main.rs:726:5:729:5 | MyThing2 | @@ -867,10 +866,8 @@ inferType | main.rs:819:17:819:34 | MyThing2 {...} | A | main.rs:733:5:734:14 | S2 | | main.rs:819:31:819:32 | S2 | | main.rs:733:5:734:14 | S2 | | main.rs:820:13:820:13 | s | | main.rs:721:5:724:5 | MyThing | -| main.rs:820:13:820:13 | s | | main.rs:741:20:741:22 | Tr2 | | main.rs:820:13:820:13 | s | A | main.rs:733:5:734:14 | S2 | | main.rs:820:17:820:32 | call_trait_m1(...) | | main.rs:721:5:724:5 | MyThing | -| main.rs:820:17:820:32 | call_trait_m1(...) | | main.rs:741:20:741:22 | Tr2 | | main.rs:820:17:820:32 | call_trait_m1(...) | A | main.rs:733:5:734:14 | S2 | | main.rs:820:31:820:31 | x | | main.rs:726:5:729:5 | MyThing2 | | main.rs:820:31:820:31 | x | A | main.rs:733:5:734:14 | S2 | diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index b3cb99abcc5..177e1440575 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -237,14 +237,20 @@ module Make1 Input1> { TypePath cons(TypeParameter tp, TypePath suffix) { result = singleton(tp).append(suffix) } } - /** A class that represents a type tree. */ - private signature class TypeTreeSig { - Type resolveTypeAt(TypePath path); + /** + * A class that has a type tree associated with it. + * + * The type tree is represented by the `getTypeAt` predicate, which for every + * path into the tree gives the type at that path. + */ + signature class HasTypeTreeSig { + /** Gets the type at `path` in the type tree. */ + Type getTypeAt(TypePath path); - /** Gets a textual representation of this type abstraction. */ + /** Gets a textual representation of this type. */ string toString(); - /** Gets the location of this type abstraction. */ + /** Gets the location of this type. */ Location getLocation(); } @@ -309,8 +315,8 @@ module Make1 Input1> { * Holds if * - `abs` is a type abstraction that introduces type variables that are * free in `condition` and `constraint`, - * - and for every instantiation of the type parameters the resulting - * `condition` satisifies the constraint given by `constraint`. + * - and for every instantiation of the type parameters from `abs` the + * resulting `condition` satisifies the constraint given by `constraint`. * * Example in C#: * ```csharp @@ -322,12 +328,12 @@ module Make1 Input1> { * * Example in Rust: * ```rust - * impl Trait for Type { } + * impl Trait for Type { } * // ^^^ `abs` ^^^^^^^^^^^^^^^ `condition` * // ^^^^^^^^^^^^^ `constraint` * ``` * - * To see how `abs` change the meaning of the type parameters that occur in + * To see how `abs` changes the meaning of the type parameters that occur in * `condition`, consider the following examples in Rust: * ```rust * impl Trait for T { } @@ -362,10 +368,11 @@ module Make1 Input1> { result = tm.resolveTypeAt(TypePath::nil()) } - signature module IsInstantiationOfInputSig { + /** Provides the input to `IsInstantiationOf`. */ + signature module IsInstantiationOfInputSig { /** - * Holds if `abs` is a type abstraction, `tm` occurs under `abs`, and - * `app` is potentially an application/instantiation of `abs`. + * Holds if `abs` is a type abstraction, `tm` occurs in the scope of + * `abs`, and `app` is potentially an application/instantiation of `abs`. * * For example: * ```rust @@ -378,8 +385,8 @@ module Make1 Input1> { * foo.bar(); * // ^^^ `app` * ``` - * Here `abs` introduces the type parameter `A` and `tm` occurs under - * `abs` (i.e., `A` is bound in `tm` by `abs`). On the last line, + * Here `abs` introduces the type parameter `A` and `tm` occurs in the + * scope of `abs` (i.e., `A` is bound in `tm` by `abs`). On the last line, * accessing the `bar` method of `foo` potentially instantiates the `impl` * block with a type argument for `A`. */ @@ -397,7 +404,7 @@ module Make1 Input1> { * Provides functionality for determining if a type is a possible * instantiation of a type mention containing type parameters. */ - module IsInstantiationOf Input> { + module IsInstantiationOf Input> { private import Input /** Gets the `i`th path in `tm` per some arbitrary order. */ @@ -422,7 +429,7 @@ module Make1 Input1> { ) { exists(Type t | tm.resolveTypeAt(path) = t and - if t = abs.getATypeParameter() then any() else app.resolveTypeAt(path) = t + if t = abs.getATypeParameter() then any() else app.getTypeAt(path) = t ) } @@ -436,6 +443,7 @@ module Make1 Input1> { if i = 0 then any() else satisfiesConcreteTypesFromIndex(app, abs, tm, i - 1) } + /** Holds if all the concrete types in `tm` also occur in `app`. */ pragma[nomagic] private predicate satisfiesConcreteTypes(App app, TypeAbstraction abs, TypeMention tm) { satisfiesConcreteTypesFromIndex(app, abs, tm, max(int i | exists(getNthPath(tm, i)))) @@ -463,18 +471,22 @@ module Make1 Input1> { private predicate typeParametersEqualFromIndex( App app, TypeAbstraction abs, TypeMention tm, TypeParameter tp, Type t, int i ) { - potentialInstantiationOf(app, abs, tm) and + satisfiesConcreteTypes(app, abs, tm) and exists(TypePath path | path = getNthTypeParameterPath(tm, tp, i) and - t = app.resolveTypeAt(path) and - if i = 0 then any() else typeParametersEqualFromIndex(app, abs, tm, tp, t, i - 1) + t = app.getTypeAt(path) and + if i = 0 + then + // no need to compute this predicate if there is only one path + exists(getNthTypeParameterPath(tm, tp, 1)) + else typeParametersEqualFromIndex(app, abs, tm, tp, t, i - 1) ) } private predicate typeParametersEqual( App app, TypeAbstraction abs, TypeMention tm, TypeParameter tp ) { - potentialInstantiationOf(app, abs, tm) and + satisfiesConcreteTypes(app, abs, tm) and tp = getNthTypeParameter(abs, _) and ( not exists(getNthTypeParameterPath(tm, tp, _)) @@ -487,7 +499,6 @@ module Make1 Input1> { ) } - /** Holds if all the concrete types in `tm` also occur in `app`. */ private predicate typeParametersHaveEqualInstantiationFromIndex( App app, TypeAbstraction abs, TypeMention tm, int i ) { @@ -499,12 +510,20 @@ module Make1 Input1> { ) } - /** All the places where the same type parameter occurs in `tm` are equal in `app. */ - pragma[inline] + /** + * Holds if all the places where the same type parameter occurs in `tm` + * are equal in `app`. + * + * TODO: As of now this only checks equality at the root of the types + * instantiated for type parameters. So, for instance, `Pair, Vec>` + * is mistakenly considered an instantiation of `Pair`. + */ + pragma[nomagic] private predicate typeParametersHaveEqualInstantiation( App app, TypeAbstraction abs, TypeMention tm ) { - potentialInstantiationOf(app, abs, tm) and + // We only need to check equality if the concrete types are satisfied. + satisfiesConcreteTypes(app, abs, tm) and ( not exists(getNthTypeParameter(abs, _)) or @@ -527,7 +546,7 @@ module Make1 Input1> { * - `Pair` is _not_ an instantiation of `Pair` */ predicate isInstantiationOf(App app, TypeAbstraction abs, TypeMention tm) { - satisfiesConcreteTypes(app, abs, tm) and + // `typeParametersHaveEqualInstantiation` suffices as it implies `satisfiesConcreteTypes`. typeParametersHaveEqualInstantiation(app, abs, tm) } } @@ -536,14 +555,14 @@ module Make1 Input1> { private module BaseTypes { /** * Holds if, when `tm1` is considered an instantiation of `tm2`, then at - * the type parameter `tp` is has the type `t` at `path`. + * the type parameter `tp` it has the type `t` at `path`. * * For instance, if the type `Map>` is considered an * instantion of `Map` then it has the type `int` at `K` and the * type `List` at `V`. */ bindingset[tm1, tm2] - predicate instantiatesWith( + private predicate instantiatesWith( TypeMention tm1, TypeMention tm2, TypeParameter tp, TypePath path, Type t ) { exists(TypePath prefix | @@ -551,19 +570,27 @@ module Make1 Input1> { ) } - module IsInstantiationOfInput implements IsInstantiationOfInputSig { + final private class FinalTypeMention = TypeMention; + + final private class TypeMentionTypeTree extends FinalTypeMention { + Type getTypeAt(TypePath path) { result = this.resolveTypeAt(path) } + } + + private module IsInstantiationOfInput implements + IsInstantiationOfInputSig + { pragma[nomagic] - private predicate typeCondition(Type type, TypeAbstraction abs, TypeMention lhs) { + private predicate typeCondition(Type type, TypeAbstraction abs, TypeMentionTypeTree lhs) { conditionSatisfiesConstraint(abs, lhs, _) and type = resolveTypeMentionRoot(lhs) } pragma[nomagic] - private predicate typeConstraint(Type type, TypeMention rhs) { + private predicate typeConstraint(Type type, TypeMentionTypeTree rhs) { conditionSatisfiesConstraint(_, _, rhs) and type = resolveTypeMentionRoot(rhs) } predicate potentialInstantiationOf( - TypeMention condition, TypeAbstraction abs, TypeMention constraint + TypeMentionTypeTree condition, TypeAbstraction abs, TypeMention constraint ) { exists(Type type | typeConstraint(type, condition) and typeCondition(type, abs, constraint) @@ -571,7 +598,10 @@ module Make1 Input1> { } } - // The type mention `condition` satisfies `constraint` with the type `t` at the path `path`. + /** + * The type mention `condition` satisfies `constraint` with the type `t` + * at the path `path`. + */ predicate conditionSatisfiesConstraintTypeAt( TypeAbstraction abs, TypeMention condition, TypeMention constraint, TypePath path, Type t ) { @@ -584,18 +614,17 @@ module Make1 Input1> { conditionSatisfiesConstraint(abs, condition, midSup) and // NOTE: `midAbs` describe the free type variables in `midSub`, hence // we use that for instantiation check. - IsInstantiationOf::isInstantiationOf(midSup, midAbs, - midSub) and - ( - conditionSatisfiesConstraintTypeAt(midAbs, midSub, constraint, path, t) and - not t = abs.getATypeParameter() - or - exists(TypePath prefix, TypePath suffix, TypeParameter tp | - tp = abs.getATypeParameter() and - conditionSatisfiesConstraintTypeAt(midAbs, midSub, constraint, prefix, tp) and - instantiatesWith(midSup, midSub, tp, suffix, t) and - path = prefix.append(suffix) - ) + IsInstantiationOf::isInstantiationOf(midSup, + midAbs, midSub) + | + conditionSatisfiesConstraintTypeAt(midAbs, midSub, constraint, path, t) and + not t = midAbs.getATypeParameter() + or + exists(TypePath prefix, TypePath suffix, TypeParameter tp | + tp = midAbs.getATypeParameter() and + conditionSatisfiesConstraintTypeAt(midAbs, midSub, constraint, prefix, tp) and + instantiatesWith(midSup, midSub, tp, suffix, t) and + path = prefix.append(suffix) ) ) } @@ -954,35 +983,37 @@ module Make1 Input1> { } private module AccessConstraint { - private newtype TTRelevantAccess = - TRelevantAccess(Access a, AccessPosition apos, TypePath path, Type constraint) { - exists(DeclarationPosition dpos | - accessDeclarationPositionMatch(apos, dpos) and - typeParameterConstraintHasTypeParameter(a.getTarget(), dpos, path, _, constraint, _, _) - ) + predicate relevantAccessConstraint( + Access a, AccessPosition apos, TypePath path, Type constraint + ) { + exists(DeclarationPosition dpos | + accessDeclarationPositionMatch(apos, dpos) and + typeParameterConstraintHasTypeParameter(a.getTarget(), dpos, path, _, constraint, _, _) + ) + } + + private newtype TRelevantAccess = + MkRelevantAccess(Access a, AccessPosition apos, TypePath path) { + relevantAccessConstraint(a, apos, path, _) } /** - * If the access `a` for `apos` and `path` has the inferred root type - * `type` and type inference requires it to satisfy the constraint - * `constraint`. + * If the access `a` for `apos` and `path` has an inferred type which + * type inference requires to satisfy some constraint. */ - private class RelevantAccess extends TTRelevantAccess { + private class RelevantAccess extends MkRelevantAccess { Access a; AccessPosition apos; TypePath path; - Type constraint0; - RelevantAccess() { this = TRelevantAccess(a, apos, path, constraint0) } + RelevantAccess() { this = MkRelevantAccess(a, apos, path) } - Type resolveTypeAt(TypePath suffix) { - a.getInferredType(apos, path.append(suffix)) = result - } + Type getTypeAt(TypePath suffix) { a.getInferredType(apos, path.append(suffix)) = result } /** Holds if this relevant access has the type `type` and should satisfy `constraint`. */ predicate hasTypeConstraint(Type type, Type constraint) { type = a.getInferredType(apos, path) and - constraint = constraint0 + relevantAccessConstraint(a, apos, path, constraint) } string toString() { @@ -1013,9 +1044,10 @@ module Make1 Input1> { * Holds if `at` satisfies `constraint` through `abs`, `sub`, and `constraintMention`. */ private predicate hasConstraintMention( - RelevantAccess at, TypeAbstraction abs, TypeMention sub, TypeMention constraintMention + RelevantAccess at, TypeAbstraction abs, TypeMention sub, Type constraint, + TypeMention constraintMention ) { - exists(Type type, Type constraint | at.hasTypeConstraint(type, constraint) | + exists(Type type | at.hasTypeConstraint(type, constraint) | not exists(countConstraintImplementations(type, constraint)) and conditionSatisfiesConstraintTypeAt(abs, sub, constraintMention, _, _) and resolveTypeMentionRoot(sub) = abs.getATypeParameter() and @@ -1046,18 +1078,17 @@ module Make1 Input1> { RelevantAccess at, TypeAbstraction abs, TypeMention sub, Type t0, TypePath prefix0, TypeMention constraintMention | - at = TRelevantAccess(a, apos, prefix, constraint) and - hasConstraintMention(at, abs, sub, constraintMention) and - conditionSatisfiesConstraintTypeAt(abs, sub, constraintMention, prefix0, t0) and - ( - not t0 = abs.getATypeParameter() and t = t0 and path = prefix0 - or - t0 = abs.getATypeParameter() and - exists(TypePath path3, TypePath suffix | - sub.resolveTypeAt(path3) = t0 and - at.resolveTypeAt(path3.append(suffix)) = t and - path = prefix0.append(suffix) - ) + at = MkRelevantAccess(a, apos, prefix) and + hasConstraintMention(at, abs, sub, constraint, constraintMention) and + conditionSatisfiesConstraintTypeAt(abs, sub, constraintMention, prefix0, t0) + | + not t0 = abs.getATypeParameter() and t = t0 and path = prefix0 + or + t0 = abs.getATypeParameter() and + exists(TypePath path3, TypePath suffix | + sub.resolveTypeAt(path3) = t0 and + at.getTypeAt(path3.append(suffix)) = t and + path = prefix0.append(suffix) ) ) } From 97124745ad06531ce37bbf8d0cdc7f5106716810 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 19 May 2025 10:43:32 -0400 Subject: [PATCH 468/656] Quantum/Crypto:Adding interemediate hashing to the openssl (e.g., modeling final and update digest separately). --- .../OpenSSL/Operations/EVPHashOperation.qll | 68 +++++++++++-------- 1 file changed, 41 insertions(+), 27 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll index a187b62a7bd..6d0013df9d5 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll @@ -16,6 +16,16 @@ abstract class EVP_Hash_Operation extends OpenSSLOperation, Crypto::HashOperatio EVP_Hash_Initializer getInitCall() { CTXFlow::ctxArgFlowsToCtxArg(result.getContextArg(), this.getContextArg()) } + + /** + * By default, the algorithm value comes from the init call. + * There are variants where this isn't true, in which case the + * subclass should override this method. + */ + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + AlgGetterToAlgConsumerFlow::flow(result.(OpenSSLAlgorithmValueConsumer).getResultNode(), + DataFlow::exprNode(this.getInitCall().getAlgorithmArg())) + } } private module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { @@ -88,30 +98,34 @@ class EVP_Digest_Operation extends EVP_Hash_Operation { override Crypto::ConsumerInputDataFlowNode getInputConsumer() { result = this.getInputNode() } } -// // override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { -// // AlgGetterToAlgConsumerFlow::flow(result.(OpenSSLAlgorithmValueConsumer).getResultNode(), -// // DataFlow::exprNode(this.getInitCall().getAlgorithmArg())) -// // } -// // ***** TODO *** complete modelinlg for hash operations, but have consideration for terminal and non-terminal (non intermedaite) steps -// // see the JCA. May need to update the cipher operations similarly -// // ALSO SEE cipher for how we currently model initialization of the algorithm through an init call -// class EVP_DigestUpdate_Operation extends EVP_Hash_Operation { -// EVP_DigestUpdate_Operation() { -// this.(Call).getTarget().getName() = "EVP_DigestUpdate" and -// isPossibleOpenSSLFunction(this.(Call).getTarget()) -// } -// override Crypto::AlgorithmConsumer getAlgorithmConsumer() { -// this.getInitCall().getAlgorithmArg() = result -// } -// } -// class EVP_DigestFinal_Variants_Operation extends EVP_Hash_Operation { -// EVP_DigestFinal_Variants_Operation() { -// this.(Call).getTarget().getName() in [ -// "EVP_DigestFinal", "EVP_DigestFinal_ex", "EVP_DigestFinalXOF" -// ] and -// isPossibleOpenSSLFunction(this.(Call).getTarget()) -// } -// override Crypto::AlgorithmConsumer getAlgorithmConsumer() { -// this.getInitCall().getAlgorithmArg() = result -// } -// } + +// NOTE: not modeled as hash operations, these are intermediate calls +class EVP_Digest_Update_Call extends Call { + EVP_Digest_Update_Call() { this.(Call).getTarget().getName() in ["EVP_DigestUpdate"] } + + Expr getInputArg() { result = this.(Call).getArgument(1) } + + DataFlow::Node getInputNode() { result.asExpr() = this.getInputArg() } + + Expr getContextArg() { result = this.(Call).getArgument(0) } +} + +class EVP_Digest_Final_Call extends EVP_Hash_Operation { + EVP_Digest_Final_Call() { + this.(Call).getTarget().getName() in [ + "EVP_DigestFinal", "EVP_DigestFinal_ex", "EVP_DigestFinalXOF" + ] + } + + EVP_Digest_Update_Call getUpdateCalls() { + CTXFlow::ctxArgFlowsToCtxArg(result.getContextArg(), this.getContextArg()) + } + + override Expr getInputArg() { result = this.getUpdateCalls().getInputArg() } + + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { result = this.getInputNode() } + + override Expr getOutputArg() { result = this.(Call).getArgument(1) } + + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { result = this.getOutputNode() } +} From 74271e4a17645c17794420f3120d93e13a933848 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 19 May 2025 10:44:39 -0400 Subject: [PATCH 469/656] Quantum/Crypto: To avoid ambiguity, altered OpenSSL EVP_Update_Call and EVP_Final_Call used for ciphers to explicitly say "Cipher", e.g., EVP_Cipher_Update_Call. This is also consistent with the new analogous digest operations. --- .../quantum/OpenSSL/Operations/EVPCipherOperation.qll | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll index f22bcae6927..26398585737 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll @@ -74,8 +74,8 @@ class EVP_Cipher_Call extends EVP_Cipher_Operation { } // NOTE: not modeled as cipher operations, these are intermediate calls -class EVP_Update_Call extends Call { - EVP_Update_Call() { +class EVP_Cipher_Update_Call extends Call { + EVP_Cipher_Update_Call() { this.(Call).getTarget().getName() in [ "EVP_EncryptUpdate", "EVP_DecryptUpdate", "EVP_CipherUpdate" ] @@ -88,15 +88,15 @@ class EVP_Update_Call extends Call { Expr getContextArg() { result = this.(Call).getArgument(0) } } -class EVP_Final_Call extends EVP_Cipher_Operation { - EVP_Final_Call() { +class EVP_Cipher_Final_Call extends EVP_Cipher_Operation { + EVP_Cipher_Final_Call() { this.(Call).getTarget().getName() in [ "EVP_EncryptFinal_ex", "EVP_DecryptFinal_ex", "EVP_CipherFinal_ex", "EVP_EncryptFinal", "EVP_DecryptFinal", "EVP_CipherFinal" ] } - EVP_Update_Call getUpdateCalls() { + EVP_Cipher_Update_Call getUpdateCalls() { CTXFlow::ctxArgFlowsToCtxArg(result.getContextArg(), this.getContextArg()) } From 309ad461a594e6abb196b81b9b8b5eb33df0371c Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 19 May 2025 10:56:17 -0400 Subject: [PATCH 470/656] Quantum/Crypto: Adding Random.qll for OpenSSL into the general imports for the OpenSSL.qll model. --- cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll index f53812093c4..a232ffa6f3a 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll @@ -6,4 +6,5 @@ module OpenSSLModel { import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers import experimental.quantum.OpenSSL.Operations.OpenSSLOperations + import experimental.quantum.OpenSSL.Random } From 48e97a2e4aed2af1162d1e3fd797a1dc6c718bbe Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 19 May 2025 16:59:08 +0200 Subject: [PATCH 471/656] Swift: Mention Swift 6.1 support in the supported compilers doc --- docs/codeql/reusables/supported-versions-compilers.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index 7e17d0cd97f..8970f31308e 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -25,7 +25,7 @@ JavaScript,ECMAScript 2022 or lower,Not applicable,"``.js``, ``.jsx``, ``.mjs``, ``.es``, ``.es6``, ``.htm``, ``.html``, ``.xhtm``, ``.xhtml``, ``.vue``, ``.hbs``, ``.ejs``, ``.njk``, ``.json``, ``.yaml``, ``.yml``, ``.raml``, ``.xml`` [8]_" Python [9]_,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13",Not applicable,``.py`` Ruby [10]_,"up to 3.3",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``" - Swift [11]_,"Swift 5.4-6.0","Swift compiler","``.swift``" + Swift [11]_,"Swift 5.4-6.1","Swift compiler","``.swift``" TypeScript [12]_,"2.6-5.8",Standard TypeScript compiler,"``.ts``, ``.tsx``, ``.mts``, ``.cts``" .. container:: footnote-group From 7c70f5d8e43c995bef35eeb00b0b96d8679596a5 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 19 May 2025 17:23:34 +0200 Subject: [PATCH 472/656] Go: move to standard windows runner Seems like `windows-latest-xl` is not available any more. This should unblock CI, but longer term we should consider doing what other languages do (i.e. run tests from the internal repo). --- .github/workflows/go-tests-other-os.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/go-tests-other-os.yml b/.github/workflows/go-tests-other-os.yml index 99b45e31dcd..c06135ab82b 100644 --- a/.github/workflows/go-tests-other-os.yml +++ b/.github/workflows/go-tests-other-os.yml @@ -26,9 +26,8 @@ jobs: uses: ./go/actions/test test-win: - if: github.repository_owner == 'github' name: Test Windows - runs-on: windows-latest-xl + runs-on: windows-latest steps: - name: Check out code uses: actions/checkout@v4 From e7535b3effb2f812f4c278d889a879441eb424cc Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 19 May 2025 13:09:33 -0400 Subject: [PATCH 473/656] Crypto: Updating JCA to use new key size predicate returning int for elliptic curve. --- java/ql/lib/experimental/quantum/JCA.qll | 9 ++------- shared/quantum/codeql/quantum/experimental/Model.qll | 4 ++-- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/java/ql/lib/experimental/quantum/JCA.qll b/java/ql/lib/experimental/quantum/JCA.qll index 867d6f2c9b8..70c65ef581d 100644 --- a/java/ql/lib/experimental/quantum/JCA.qll +++ b/java/ql/lib/experimental/quantum/JCA.qll @@ -1606,13 +1606,8 @@ module JCAModel { else result = Crypto::OtherEllipticCurveType() } - override string getKeySize() { - exists(int keySize | - Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), keySize, - _) - | - result = keySize.toString() - ) + override int getKeySize() { + Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), result, _) } EllipticCurveAlgorithmValueConsumer getConsumer() { result = consumer } diff --git a/shared/quantum/codeql/quantum/experimental/Model.qll b/shared/quantum/codeql/quantum/experimental/Model.qll index a87aee2e69c..8e1e6247484 100644 --- a/shared/quantum/codeql/quantum/experimental/Model.qll +++ b/shared/quantum/codeql/quantum/experimental/Model.qll @@ -972,7 +972,7 @@ module CryptographyBase Input> { abstract TEllipticCurveType getEllipticCurveType(); - abstract string getKeySize(); + abstract int getKeySize(); /** * The 'parsed' curve name, e.g., "P-256" or "secp256r1" @@ -2613,7 +2613,7 @@ module CryptographyBase Input> { or // [ONLY_KNOWN] key = "KeySize" and - value = instance.asAlg().getKeySize() and + value = instance.asAlg().getKeySize().toString() and location = this.getLocation() or // [KNOWN_OR_UNKNOWN] From bbbdf89e46828a72c69d16efffba2c6e233dd41f Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 19 May 2025 13:10:11 -0400 Subject: [PATCH 474/656] Crypto: OpenSSL ellipitic curve algorithm instances and consumers. --- .../EllipticCurveAlgorithmInstance.qll | 45 +++++++++++++++++++ .../KnownAlgorithmConstants.qll | 9 ++++ .../OpenSSLAlgorithmInstances.qll | 1 + .../EllipticCurveAlgorithmValueConsumer.qll | 35 +++++++++++++++ .../OpenSSLAlgorithmValueConsumers.qll | 1 + 5 files changed, 91 insertions(+) create mode 100644 cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll create mode 100644 cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll new file mode 100644 index 00000000000..802bf8e0168 --- /dev/null +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll @@ -0,0 +1,45 @@ +import cpp +import experimental.quantum.Language +import KnownAlgorithmConstants +import OpenSSLAlgorithmInstanceBase +import AlgToAVCFlow + +//ellipticCurveNameToKeySizeAndFamilyMapping(name, size, family) +class KnownOpenSSLEllitpicCurveConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, + Crypto::EllipticCurveInstance instanceof KnownOpenSSLEllipticCurveAlgorithmConstant +{ + OpenSSLAlgorithmValueConsumer getterCall; + + KnownOpenSSLEllitpicCurveConstantAlgorithmInstance() { + // Two possibilities: + // 1) The source is a literal and flows to a getter, then we know we have an instance + // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that + // Possibility 1: + this instanceof Literal and + exists(DataFlow::Node src, DataFlow::Node sink | + // Sink is an argument to a CipherGetterCall + sink = getterCall.(OpenSSLAlgorithmValueConsumer).getInputNode() and + // Source is `this` + src.asExpr() = this and + // This traces to a getter + KnownOpenSSLAlgorithmToAlgorithmValueConsumerFlow::flow(src, sink) + ) + or + // Possibility 2: + this instanceof DirectAlgorithmValueConsumer and getterCall = this + } + + override OpenSSLAlgorithmValueConsumer getAVC() { result = getterCall } + + override string getRawEllipticCurveName() { result = this.(Literal).getValue().toString() } + + override Crypto::TEllipticCurveType getEllipticCurveType() { + Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.(KnownOpenSSLEllipticCurveAlgorithmConstant) + .getNormalizedName(), _, result) + } + + override int getKeySize() { + Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.(KnownOpenSSLEllipticCurveAlgorithmConstant) + .getNormalizedName(), result, _) + } +} diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index 77caf0bb378..2d59f8b98c7 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -67,6 +67,15 @@ class KnownOpenSSLHashAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { } } +class KnownOpenSSLEllipticCurveAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { + string algType; + + KnownOpenSSLEllipticCurveAlgorithmConstant() { + resolveAlgorithmFromExpr(this, _, algType) and + algType.toLowerCase().matches("elliptic_curve") + } +} + /** * Resolves a call to a 'direct algorithm getter', e.g., EVP_MD5() * This approach to fetching algorithms was used in OpenSSL 1.0.2. diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll index 7a77a4c3e13..55beb58588b 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstances.qll @@ -3,3 +3,4 @@ import CipherAlgorithmInstance import PaddingAlgorithmInstance import BlockAlgorithmInstance import HashAlgorithmInstance +import EllipticCurveAlgorithmInstance diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll new file mode 100644 index 00000000000..79cddd7613d --- /dev/null +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll @@ -0,0 +1,35 @@ +import cpp +import experimental.quantum.Language +import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances + +abstract class EllipticCurveValueConsumer extends OpenSSLAlgorithmValueConsumer { } + +//https://docs.openssl.org/3.0/man3/EC_KEY_new/#name +class EVPEllipticCurveALgorithmConsumer extends EllipticCurveValueConsumer { + DataFlow::Node valueArgNode; + DataFlow::Node resultNode; + + EVPEllipticCurveALgorithmConsumer() { + resultNode.asExpr() = this.(Call) and // in all cases the result is the return + isPossibleOpenSSLFunction(this.(Call).getTarget()) and + ( + this.(Call).getTarget().getName() in ["EVP_EC_gen", "EC_KEY_new_by_curve_name"] and + valueArgNode.asExpr() = this.(Call).getArgument(0) + or + this.(Call).getTarget().getName() in [ + "EC_KEY_new_by_curve_name_ex", "EVP_PKEY_CTX_set_ec_paramgen_curve_nid" + ] and + valueArgNode.asExpr() = this.(Call).getArgument(2) + ) + } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + exists(OpenSSLAlgorithmInstance i | i.getAVC() = this and result = i) + } + + override DataFlow::Node getResultNode() { result = resultNode } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result = valueArgNode } +} diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll index 0638595afb8..f6ebdf5c8c4 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll @@ -3,3 +3,4 @@ import CipherAlgorithmValueConsumer import DirectAlgorithmValueConsumer import PaddingAlgorithmValueConsumer import HashAlgorithmValueConsumer +import EllipticCurveAlgorithmValueConsumer From 533aa7fc268a2ac7c51ed0d27d59b617e2945b7a Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 16 May 2025 18:34:33 +0100 Subject: [PATCH 475/656] Rust: Add tests for std::Pin. --- .../dataflow/modeled/inline-flow.expected | 16 ++++++ .../library-tests/dataflow/modeled/main.rs | 55 +++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected index b7afe9dae35..b8d2136fcc0 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -55,6 +55,12 @@ edges | main.rs:84:29:84:29 | [post] y [&ref] | main.rs:85:33:85:33 | y [&ref] | provenance | | | main.rs:84:32:84:41 | source(...) | main.rs:84:29:84:29 | [post] y [&ref] | provenance | MaD:7 | | main.rs:85:33:85:33 | y [&ref] | main.rs:85:18:85:34 | ...::read(...) | provenance | MaD:6 | +| main.rs:100:13:100:17 | mut i | main.rs:105:14:105:14 | i | provenance | | +| main.rs:100:21:100:30 | source(...) | main.rs:100:13:100:17 | mut i | provenance | | +| main.rs:114:13:114:18 | mut ms [MyStruct] | main.rs:119:14:119:15 | ms [MyStruct] | provenance | | +| main.rs:114:22:114:49 | MyStruct {...} [MyStruct] | main.rs:114:13:114:18 | mut ms [MyStruct] | provenance | | +| main.rs:114:38:114:47 | source(...) | main.rs:114:22:114:49 | MyStruct {...} [MyStruct] | provenance | | +| main.rs:119:14:119:15 | ms [MyStruct] | main.rs:119:14:119:19 | ms.val | provenance | | nodes | main.rs:12:9:12:9 | a [Some] | semmle.label | a [Some] | | main.rs:12:13:12:28 | Some(...) [Some] | semmle.label | Some(...) [Some] | @@ -108,6 +114,14 @@ nodes | main.rs:84:32:84:41 | source(...) | semmle.label | source(...) | | main.rs:85:18:85:34 | ...::read(...) | semmle.label | ...::read(...) | | main.rs:85:33:85:33 | y [&ref] | semmle.label | y [&ref] | +| main.rs:100:13:100:17 | mut i | semmle.label | mut i | +| main.rs:100:21:100:30 | source(...) | semmle.label | source(...) | +| main.rs:105:14:105:14 | i | semmle.label | i | +| main.rs:114:13:114:18 | mut ms [MyStruct] | semmle.label | mut ms [MyStruct] | +| main.rs:114:22:114:49 | MyStruct {...} [MyStruct] | semmle.label | MyStruct {...} [MyStruct] | +| main.rs:114:38:114:47 | source(...) | semmle.label | source(...) | +| main.rs:119:14:119:15 | ms [MyStruct] | semmle.label | ms [MyStruct] | +| main.rs:119:14:119:19 | ms.val | semmle.label | ms.val | subpaths testFailures #select @@ -121,3 +135,5 @@ testFailures | main.rs:47:38:47:38 | n | main.rs:41:30:41:39 | source(...) | main.rs:47:38:47:38 | n | $@ | main.rs:41:30:41:39 | source(...) | source(...) | | main.rs:63:22:63:22 | m | main.rs:58:22:58:31 | source(...) | main.rs:63:22:63:22 | m | $@ | main.rs:58:22:58:31 | source(...) | source(...) | | main.rs:85:18:85:34 | ...::read(...) | main.rs:84:32:84:41 | source(...) | main.rs:85:18:85:34 | ...::read(...) | $@ | main.rs:84:32:84:41 | source(...) | source(...) | +| main.rs:105:14:105:14 | i | main.rs:100:21:100:30 | source(...) | main.rs:105:14:105:14 | i | $@ | main.rs:100:21:100:30 | source(...) | source(...) | +| main.rs:119:14:119:19 | ms.val | main.rs:114:38:114:47 | source(...) | main.rs:119:14:119:19 | ms.val | $@ | main.rs:114:38:114:47 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/modeled/main.rs b/rust/ql/test/library-tests/dataflow/modeled/main.rs index cb955ce32bd..ec82951affc 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/main.rs +++ b/rust/ql/test/library-tests/dataflow/modeled/main.rs @@ -87,9 +87,64 @@ mod ptr { } } +use std::pin::Pin; +use std::pin::pin; + +#[derive(Clone)] +struct MyStruct { + val: i64, +} + +fn test_pin() { + { + let mut i = source(40); + let mut pin1 = Pin::new(&i); + let mut pin2 = Box::pin(i); + let mut pin3 = Box::into_pin(Box::new(i)); + let mut pin4 = pin!(i); + sink(i); // $ hasValueFlow=40 + sink(*pin1); // $ MISSING: hasValueFlow=40 + sink(*Pin::into_inner(pin1)); // $ MISSING: hasValueFlow=40 + sink(*pin2); // $ MISSING: hasValueFlow=40 + sink(*pin3); // $ MISSING: hasValueFlow=40 + sink(*pin4); // $ MISSING: hasValueFlow=40 + } + + { + let mut ms = MyStruct { val: source(41) }; + let mut pin1 = Pin::new(&ms); + let mut pin2 = Box::pin(ms.clone()); + let mut pin3 = Box::into_pin(Box::new(ms.clone())); + let mut pin4 = pin!(&ms); + sink(ms.val); // $ hasValueFlow=41 + sink(pin1.val); // $ MISSING: hasValueFlow=41 + sink(Pin::into_inner(pin1).val); // $ MISSING: hasValueFlow=41 + sink(pin2.val); // $ MISSING: hasValueFlow=41 + sink(pin3.val); // $ MISSING: hasValueFlow=41 + sink(pin4.val); // $ MISSING: hasValueFlow=41 + } + + unsafe { + let mut ms = MyStruct { val: source(42) }; + let mut pin5 = Pin::new_unchecked(&ms); + sink(pin5.val); // $ MISSING: hasValueFlow=42 + sink(Pin::into_inner_unchecked(pin5).val); // $ MISSING: hasValueFlow=40 + } + + { + let mut ms = MyStruct { val: source(43) }; + let mut ms2 = MyStruct { val: source(44) }; + let mut pin = Pin::new(&mut ms); + sink(pin.val); // $ MISSING: hasValueFlow=43 + pin.set(ms2); + sink(pin.val); // $ MISSING: hasValueFlow=44 + } +} + fn main() { option_clone(); result_clone(); i64_clone(); my_clone::wrapper_clone(); + test_pin(); } From ebd75a118b144c33c834f933e8932066e8f68f17 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 19 May 2025 17:30:06 +0100 Subject: [PATCH 476/656] Rust: Add models for std::Pin. --- .../frameworks/stdlib/lang-alloc.model.yml | 4 + .../frameworks/stdlib/lang-core.model.yml | 8 ++ .../dataflow/modeled/inline-flow.expected | 81 +++++++++++++++---- .../library-tests/dataflow/modeled/main.rs | 12 +-- 4 files changed, 83 insertions(+), 22 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-alloc.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-alloc.model.yml index 8d177c4e856..77c33b47b0c 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-alloc.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-alloc.model.yml @@ -29,6 +29,10 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: + # Box + - ["lang:alloc", "::pin", "Argument[0]", "ReturnValue.Reference", "value", "manual"] + - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Reference", "value", "manual"] + - ["lang:alloc", "::into_pin", "Argument[0]", "ReturnValue", "value", "manual"] # Fmt - ["lang:alloc", "crate::fmt::format", "Argument[0]", "ReturnValue", "taint", "manual"] # String diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-core.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-core.model.yml index 3e37ed7797b..69b2236e3ce 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-core.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/lang-core.model.yml @@ -32,6 +32,14 @@ extensions: - ["lang:core", "::align_to", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"] - ["lang:core", "::pad_to_align", "Argument[self]", "ReturnValue", "taint", "manual"] - ["lang:core", "::size", "Argument[self]", "ReturnValue", "taint", "manual"] + # Pin + - ["lang:core", "crate::pin::Pin", "Argument[0]", "ReturnValue", "value", "manual"] + - ["lang:core", "::new", "Argument[0]", "ReturnValue", "value", "manual"] + - ["lang:core", "::new_unchecked", "Argument[0].Reference", "ReturnValue", "value", "manual"] + - ["lang:core", "::into_inner", "Argument[0]", "ReturnValue", "value", "manual"] + - ["lang:core", "::into_inner_unchecked", "Argument[0]", "ReturnValue", "value", "manual"] + - ["lang:core", "::set", "Argument[0]", "Argument[self]", "value", "manual"] + - ["lang:core", "::into_inner", "Argument[0]", "ReturnValue", "value", "manual"] # Ptr - ["lang:core", "crate::ptr::read", "Argument[0].Reference", "ReturnValue", "value", "manual"] - ["lang:core", "crate::ptr::read_unaligned", "Argument[0].Reference", "ReturnValue", "value", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected index b8d2136fcc0..d1af296044e 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -1,32 +1,37 @@ models -| 1 | Summary: lang:core; ::clone; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue.Field[crate::option::Option::Some(0)]; value | -| 2 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | -| 3 | Summary: lang:core; ::zip; Argument[0].Field[crate::option::Option::Some(0)]; ReturnValue.Field[crate::option::Option::Some(0)].Field[1]; value | -| 4 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | -| 5 | Summary: lang:core; ::clone; Argument[self].Reference; ReturnValue; value | -| 6 | Summary: lang:core; crate::ptr::read; Argument[0].Reference; ReturnValue; value | -| 7 | Summary: lang:core; crate::ptr::write; Argument[1]; Argument[0].Reference; value | +| 1 | Summary: lang:alloc; ::into_pin; Argument[0]; ReturnValue; value | +| 2 | Summary: lang:alloc; ::new; Argument[0]; ReturnValue.Reference; value | +| 3 | Summary: lang:alloc; ::pin; Argument[0]; ReturnValue.Reference; value | +| 4 | Summary: lang:core; ::clone; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue.Field[crate::option::Option::Some(0)]; value | +| 5 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | +| 6 | Summary: lang:core; ::zip; Argument[0].Field[crate::option::Option::Some(0)]; ReturnValue.Field[crate::option::Option::Some(0)].Field[1]; value | +| 7 | Summary: lang:core; ::into_inner; Argument[0]; ReturnValue; value | +| 8 | Summary: lang:core; ::new; Argument[0]; ReturnValue; value | +| 9 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | +| 10 | Summary: lang:core; ::clone; Argument[self].Reference; ReturnValue; value | +| 11 | Summary: lang:core; crate::ptr::read; Argument[0].Reference; ReturnValue; value | +| 12 | Summary: lang:core; crate::ptr::write; Argument[1]; Argument[0].Reference; value | edges -| main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:2 | +| main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:5 | | main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:13 | a [Some] | provenance | | -| main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:21 | a.clone() [Some] | provenance | MaD:1 | +| main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:21 | a.clone() [Some] | provenance | MaD:4 | | main.rs:12:13:12:28 | Some(...) [Some] | main.rs:12:9:12:9 | a [Some] | provenance | | | main.rs:12:18:12:27 | source(...) | main.rs:12:13:12:28 | Some(...) [Some] | provenance | | -| main.rs:14:9:14:9 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:2 | +| main.rs:14:9:14:9 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:5 | | main.rs:14:13:14:13 | a [Some] | main.rs:14:13:14:21 | a.clone() [Some] | provenance | generated | | main.rs:14:13:14:21 | a.clone() [Some] | main.rs:14:9:14:9 | b [Some] | provenance | | -| main.rs:19:9:19:9 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:4 | +| main.rs:19:9:19:9 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:9 | | main.rs:19:9:19:9 | a [Ok] | main.rs:21:13:21:13 | a [Ok] | provenance | | | main.rs:19:31:19:44 | Ok(...) [Ok] | main.rs:19:9:19:9 | a [Ok] | provenance | | | main.rs:19:34:19:43 | source(...) | main.rs:19:31:19:44 | Ok(...) [Ok] | provenance | | -| main.rs:21:9:21:9 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:4 | +| main.rs:21:9:21:9 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:9 | | main.rs:21:13:21:13 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | generated | | main.rs:21:13:21:21 | a.clone() [Ok] | main.rs:21:9:21:9 | b [Ok] | provenance | | | main.rs:26:9:26:9 | a | main.rs:27:10:27:10 | a | provenance | | | main.rs:26:9:26:9 | a | main.rs:28:13:28:13 | a | provenance | | | main.rs:26:13:26:22 | source(...) | main.rs:26:9:26:9 | a | provenance | | | main.rs:28:9:28:9 | b | main.rs:29:10:29:10 | b | provenance | | -| main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:5 | +| main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:10 | | main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | generated | | main.rs:28:13:28:21 | a.clone() | main.rs:28:9:28:9 | b | provenance | | | main.rs:41:13:41:13 | w [Wrapper] | main.rs:42:15:42:15 | w [Wrapper] | provenance | | @@ -47,16 +52,36 @@ edges | main.rs:58:22:58:31 | source(...) | main.rs:58:17:58:32 | Some(...) [Some] | provenance | | | main.rs:59:13:59:13 | z [Some, tuple.1] | main.rs:60:15:60:15 | z [Some, tuple.1] | provenance | | | main.rs:59:17:59:24 | a.zip(...) [Some, tuple.1] | main.rs:59:13:59:13 | z [Some, tuple.1] | provenance | | -| main.rs:59:23:59:23 | b [Some] | main.rs:59:17:59:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:3 | +| main.rs:59:23:59:23 | b [Some] | main.rs:59:17:59:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:6 | | main.rs:60:15:60:15 | z [Some, tuple.1] | main.rs:61:13:61:24 | Some(...) [Some, tuple.1] | provenance | | | main.rs:61:13:61:24 | Some(...) [Some, tuple.1] | main.rs:61:18:61:23 | TuplePat [tuple.1] | provenance | | | main.rs:61:18:61:23 | TuplePat [tuple.1] | main.rs:61:22:61:22 | m | provenance | | | main.rs:61:22:61:22 | m | main.rs:63:22:63:22 | m | provenance | | | main.rs:84:29:84:29 | [post] y [&ref] | main.rs:85:33:85:33 | y [&ref] | provenance | | -| main.rs:84:32:84:41 | source(...) | main.rs:84:29:84:29 | [post] y [&ref] | provenance | MaD:7 | -| main.rs:85:33:85:33 | y [&ref] | main.rs:85:18:85:34 | ...::read(...) | provenance | MaD:6 | +| main.rs:84:32:84:41 | source(...) | main.rs:84:29:84:29 | [post] y [&ref] | provenance | MaD:12 | +| main.rs:85:33:85:33 | y [&ref] | main.rs:85:18:85:34 | ...::read(...) | provenance | MaD:11 | +| main.rs:100:13:100:17 | mut i | main.rs:101:34:101:34 | i | provenance | | +| main.rs:100:13:100:17 | mut i | main.rs:102:33:102:33 | i | provenance | | +| main.rs:100:13:100:17 | mut i | main.rs:103:47:103:47 | i | provenance | | | main.rs:100:13:100:17 | mut i | main.rs:105:14:105:14 | i | provenance | | | main.rs:100:21:100:30 | source(...) | main.rs:100:13:100:17 | mut i | provenance | | +| main.rs:101:13:101:20 | mut pin1 [&ref] | main.rs:106:15:106:18 | pin1 [&ref] | provenance | | +| main.rs:101:13:101:20 | mut pin1 [&ref] | main.rs:107:31:107:34 | pin1 [&ref] | provenance | | +| main.rs:101:24:101:35 | ...::new(...) [&ref] | main.rs:101:13:101:20 | mut pin1 [&ref] | provenance | | +| main.rs:101:33:101:34 | &i [&ref] | main.rs:101:24:101:35 | ...::new(...) [&ref] | provenance | MaD:8 | +| main.rs:101:34:101:34 | i | main.rs:101:33:101:34 | &i [&ref] | provenance | | +| main.rs:102:13:102:20 | mut pin2 [&ref] | main.rs:108:15:108:18 | pin2 [&ref] | provenance | | +| main.rs:102:24:102:34 | ...::pin(...) [&ref] | main.rs:102:13:102:20 | mut pin2 [&ref] | provenance | | +| main.rs:102:33:102:33 | i | main.rs:102:24:102:34 | ...::pin(...) [&ref] | provenance | MaD:3 | +| main.rs:103:13:103:20 | mut pin3 [&ref] | main.rs:109:15:109:18 | pin3 [&ref] | provenance | | +| main.rs:103:24:103:49 | ...::into_pin(...) [&ref] | main.rs:103:13:103:20 | mut pin3 [&ref] | provenance | | +| main.rs:103:38:103:48 | ...::new(...) [&ref] | main.rs:103:24:103:49 | ...::into_pin(...) [&ref] | provenance | MaD:1 | +| main.rs:103:47:103:47 | i | main.rs:103:38:103:48 | ...::new(...) [&ref] | provenance | MaD:2 | +| main.rs:106:15:106:18 | pin1 [&ref] | main.rs:106:14:106:18 | * ... | provenance | | +| main.rs:107:15:107:35 | ...::into_inner(...) [&ref] | main.rs:107:14:107:35 | * ... | provenance | | +| main.rs:107:31:107:34 | pin1 [&ref] | main.rs:107:15:107:35 | ...::into_inner(...) [&ref] | provenance | MaD:7 | +| main.rs:108:15:108:18 | pin2 [&ref] | main.rs:108:14:108:18 | * ... | provenance | | +| main.rs:109:15:109:18 | pin3 [&ref] | main.rs:109:14:109:18 | * ... | provenance | | | main.rs:114:13:114:18 | mut ms [MyStruct] | main.rs:119:14:119:15 | ms [MyStruct] | provenance | | | main.rs:114:22:114:49 | MyStruct {...} [MyStruct] | main.rs:114:13:114:18 | mut ms [MyStruct] | provenance | | | main.rs:114:38:114:47 | source(...) | main.rs:114:22:114:49 | MyStruct {...} [MyStruct] | provenance | | @@ -116,7 +141,27 @@ nodes | main.rs:85:33:85:33 | y [&ref] | semmle.label | y [&ref] | | main.rs:100:13:100:17 | mut i | semmle.label | mut i | | main.rs:100:21:100:30 | source(...) | semmle.label | source(...) | +| main.rs:101:13:101:20 | mut pin1 [&ref] | semmle.label | mut pin1 [&ref] | +| main.rs:101:24:101:35 | ...::new(...) [&ref] | semmle.label | ...::new(...) [&ref] | +| main.rs:101:33:101:34 | &i [&ref] | semmle.label | &i [&ref] | +| main.rs:101:34:101:34 | i | semmle.label | i | +| main.rs:102:13:102:20 | mut pin2 [&ref] | semmle.label | mut pin2 [&ref] | +| main.rs:102:24:102:34 | ...::pin(...) [&ref] | semmle.label | ...::pin(...) [&ref] | +| main.rs:102:33:102:33 | i | semmle.label | i | +| main.rs:103:13:103:20 | mut pin3 [&ref] | semmle.label | mut pin3 [&ref] | +| main.rs:103:24:103:49 | ...::into_pin(...) [&ref] | semmle.label | ...::into_pin(...) [&ref] | +| main.rs:103:38:103:48 | ...::new(...) [&ref] | semmle.label | ...::new(...) [&ref] | +| main.rs:103:47:103:47 | i | semmle.label | i | | main.rs:105:14:105:14 | i | semmle.label | i | +| main.rs:106:14:106:18 | * ... | semmle.label | * ... | +| main.rs:106:15:106:18 | pin1 [&ref] | semmle.label | pin1 [&ref] | +| main.rs:107:14:107:35 | * ... | semmle.label | * ... | +| main.rs:107:15:107:35 | ...::into_inner(...) [&ref] | semmle.label | ...::into_inner(...) [&ref] | +| main.rs:107:31:107:34 | pin1 [&ref] | semmle.label | pin1 [&ref] | +| main.rs:108:14:108:18 | * ... | semmle.label | * ... | +| main.rs:108:15:108:18 | pin2 [&ref] | semmle.label | pin2 [&ref] | +| main.rs:109:14:109:18 | * ... | semmle.label | * ... | +| main.rs:109:15:109:18 | pin3 [&ref] | semmle.label | pin3 [&ref] | | main.rs:114:13:114:18 | mut ms [MyStruct] | semmle.label | mut ms [MyStruct] | | main.rs:114:22:114:49 | MyStruct {...} [MyStruct] | semmle.label | MyStruct {...} [MyStruct] | | main.rs:114:38:114:47 | source(...) | semmle.label | source(...) | @@ -136,4 +181,8 @@ testFailures | main.rs:63:22:63:22 | m | main.rs:58:22:58:31 | source(...) | main.rs:63:22:63:22 | m | $@ | main.rs:58:22:58:31 | source(...) | source(...) | | main.rs:85:18:85:34 | ...::read(...) | main.rs:84:32:84:41 | source(...) | main.rs:85:18:85:34 | ...::read(...) | $@ | main.rs:84:32:84:41 | source(...) | source(...) | | main.rs:105:14:105:14 | i | main.rs:100:21:100:30 | source(...) | main.rs:105:14:105:14 | i | $@ | main.rs:100:21:100:30 | source(...) | source(...) | +| main.rs:106:14:106:18 | * ... | main.rs:100:21:100:30 | source(...) | main.rs:106:14:106:18 | * ... | $@ | main.rs:100:21:100:30 | source(...) | source(...) | +| main.rs:107:14:107:35 | * ... | main.rs:100:21:100:30 | source(...) | main.rs:107:14:107:35 | * ... | $@ | main.rs:100:21:100:30 | source(...) | source(...) | +| main.rs:108:14:108:18 | * ... | main.rs:100:21:100:30 | source(...) | main.rs:108:14:108:18 | * ... | $@ | main.rs:100:21:100:30 | source(...) | source(...) | +| main.rs:109:14:109:18 | * ... | main.rs:100:21:100:30 | source(...) | main.rs:109:14:109:18 | * ... | $@ | main.rs:100:21:100:30 | source(...) | source(...) | | main.rs:119:14:119:19 | ms.val | main.rs:114:38:114:47 | source(...) | main.rs:119:14:119:19 | ms.val | $@ | main.rs:114:38:114:47 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/modeled/main.rs b/rust/ql/test/library-tests/dataflow/modeled/main.rs index ec82951affc..440f3bfd7ee 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/main.rs +++ b/rust/ql/test/library-tests/dataflow/modeled/main.rs @@ -102,11 +102,11 @@ fn test_pin() { let mut pin2 = Box::pin(i); let mut pin3 = Box::into_pin(Box::new(i)); let mut pin4 = pin!(i); - sink(i); // $ hasValueFlow=40 - sink(*pin1); // $ MISSING: hasValueFlow=40 - sink(*Pin::into_inner(pin1)); // $ MISSING: hasValueFlow=40 - sink(*pin2); // $ MISSING: hasValueFlow=40 - sink(*pin3); // $ MISSING: hasValueFlow=40 + sink(i); // $ hasValueFlow=40 + sink(*pin1); // $ hasValueFlow=40 + sink(*Pin::into_inner(pin1)); // $ hasValueFlow=40 + sink(*pin2); // $ hasValueFlow=40 + sink(*pin3); // $ hasValueFlow=40 sink(*pin4); // $ MISSING: hasValueFlow=40 } @@ -116,7 +116,7 @@ fn test_pin() { let mut pin2 = Box::pin(ms.clone()); let mut pin3 = Box::into_pin(Box::new(ms.clone())); let mut pin4 = pin!(&ms); - sink(ms.val); // $ hasValueFlow=41 + sink(ms.val); // $ hasValueFlow=41 sink(pin1.val); // $ MISSING: hasValueFlow=41 sink(Pin::into_inner(pin1).val); // $ MISSING: hasValueFlow=41 sink(pin2.val); // $ MISSING: hasValueFlow=41 From d05d38f00c7f2b97741400f1d06c7461c65e18a1 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 19 May 2025 13:48:15 -0400 Subject: [PATCH 477/656] Crypto: Removing unused class field. --- .../AlgorithmInstances/KnownAlgorithmConstants.qll | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index 2d59f8b98c7..c4c537a34ab 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -68,11 +68,11 @@ class KnownOpenSSLHashAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { } class KnownOpenSSLEllipticCurveAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { - string algType; - KnownOpenSSLEllipticCurveAlgorithmConstant() { - resolveAlgorithmFromExpr(this, _, algType) and - algType.toLowerCase().matches("elliptic_curve") + exists(string algType | + resolveAlgorithmFromExpr(this, _, algType) and + algType.toLowerCase().matches("elliptic_curve") + ) } } From 3e54e4d6b6bb6892775134aa599144dc76e858b4 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 19 May 2025 13:49:29 -0400 Subject: [PATCH 478/656] Crypto: Fixing typo. --- .../EllipticCurveAlgorithmValueConsumer.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll index 79cddd7613d..aa08d4ea50e 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll @@ -7,11 +7,11 @@ import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances abstract class EllipticCurveValueConsumer extends OpenSSLAlgorithmValueConsumer { } //https://docs.openssl.org/3.0/man3/EC_KEY_new/#name -class EVPEllipticCurveALgorithmConsumer extends EllipticCurveValueConsumer { +class EVPEllipticCurveAlgorithmConsumer extends EllipticCurveValueConsumer { DataFlow::Node valueArgNode; DataFlow::Node resultNode; - EVPEllipticCurveALgorithmConsumer() { + EVPEllipticCurveAlgorithmConsumer() { resultNode.asExpr() = this.(Call) and // in all cases the result is the return isPossibleOpenSSLFunction(this.(Call).getTarget()) and ( From e5641eff234d4911a4b6db3b130850298243fc72 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 19 May 2025 13:50:41 -0400 Subject: [PATCH 479/656] Crypto: Typo fix --- .../AlgorithmInstances/EllipticCurveAlgorithmInstance.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll index 802bf8e0168..2da079b23e4 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll @@ -5,12 +5,12 @@ import OpenSSLAlgorithmInstanceBase import AlgToAVCFlow //ellipticCurveNameToKeySizeAndFamilyMapping(name, size, family) -class KnownOpenSSLEllitpicCurveConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, +class KnownOpenSSLEllipticCurveConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, Crypto::EllipticCurveInstance instanceof KnownOpenSSLEllipticCurveAlgorithmConstant { OpenSSLAlgorithmValueConsumer getterCall; - KnownOpenSSLEllitpicCurveConstantAlgorithmInstance() { + KnownOpenSSLEllipticCurveConstantAlgorithmInstance() { // Two possibilities: // 1) The source is a literal and flows to a getter, then we know we have an instance // 2) The source is a KnownOpenSSLAlgorithm is call, and we know we have an instance immediately from that From 03a6e134ba4020bce6c14393e6ab60349c149e33 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Mon, 19 May 2025 13:51:42 -0400 Subject: [PATCH 480/656] Crypto: Removed dead comment. --- .../AlgorithmInstances/EllipticCurveAlgorithmInstance.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll index 2da079b23e4..c5eac8afc89 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll @@ -4,7 +4,6 @@ import KnownAlgorithmConstants import OpenSSLAlgorithmInstanceBase import AlgToAVCFlow -//ellipticCurveNameToKeySizeAndFamilyMapping(name, size, family) class KnownOpenSSLEllipticCurveConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, Crypto::EllipticCurveInstance instanceof KnownOpenSSLEllipticCurveAlgorithmConstant { From fce5b4d43e0bf8ecb707473537ee120495a873c8 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Mon, 19 May 2025 13:55:45 -0500 Subject: [PATCH 481/656] Changedocs for 2.21.3 --- .../codeql-changelog/codeql-cli-2.19.4.rst | 2 +- .../codeql-changelog/codeql-cli-2.20.4.rst | 6 +- .../codeql-changelog/codeql-cli-2.20.5.rst | 8 - .../codeql-changelog/codeql-cli-2.20.6.rst | 7 +- .../codeql-changelog/codeql-cli-2.21.0.rst | 4 +- .../codeql-changelog/codeql-cli-2.21.1.rst | 26 +-- .../codeql-changelog/codeql-cli-2.21.2.rst | 2 +- .../codeql-changelog/codeql-cli-2.21.3.rst | 159 ++++++++++++++++++ .../codeql-changelog/index.rst | 1 + 9 files changed, 186 insertions(+), 29 deletions(-) create mode 100644 docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.3.rst diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst index 754b6d2c4da..9235d63fe2c 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst @@ -79,4 +79,4 @@ JavaScript/TypeScript * Added taint-steps for :code:`Array.prototype.toReversed`. * Added taint-steps for :code:`Array.prototype.toSorted`. * Added support for :code:`String.prototype.matchAll`. -* Added taint-steps for :code:`Array.prototype.reverse`. +* Added taint-steps for :code:`Array.prototype.reverse`\ diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst index a5c9c4f222f..f488198ea3d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst @@ -117,8 +117,8 @@ Java/Kotlin * Deleted the deprecated :code:`isLValue` and :code:`isRValue` predicates from the :code:`VarAccess` class, use :code:`isVarWrite` and :code:`isVarRead` respectively instead. * Deleted the deprecated :code:`getRhs` predicate from the :code:`VarWrite` class, use :code:`getASource` instead. * Deleted the deprecated :code:`LValue` and :code:`RValue` classes, use :code:`VarWrite` and :code:`VarRead` respectively instead. -* Deleted a lot of deprecated classes ending in ``*Access``, use the corresponding ``*Call`` classes instead. -* Deleted a lot of deprecated predicates ending in ``*Access``, use the corresponding ``*Call`` predicates instead. +* Deleted a lot of deprecated classes ending in "*Access", use the corresponding "*Call" classes instead. +* Deleted a lot of deprecated predicates ending in "*Access", use the corresponding "*Call" predicates instead. * Deleted the deprecated :code:`EnvInput` and :code:`DatabaseInput` classes from :code:`FlowSources.qll`, use the threat models feature instead. * Deleted some deprecated API predicates from :code:`SensitiveApi.qll`, use the Sink classes from that file instead. @@ -144,7 +144,7 @@ Ruby * Deleted the deprecated :code:`ModelClass` and :code:`ModelInstance` classes from :code:`ActiveResource.qll`, use :code:`ModelClassNode` and :code:`ModelClassNode.getAnInstanceReference()` instead. * Deleted the deprecated :code:`Collection` class from :code:`ActiveResource.qll`, use :code:`CollectionSource` instead. * Deleted the deprecated :code:`ServiceInstantiation` and :code:`ClientInstantiation` classes from :code:`Twirp.qll`. -* Deleted a lot of deprecated dataflow modules from ``*Query.qll`` files. +* Deleted a lot of deprecated dataflow modules from "*Query.qll" files. * Deleted the old deprecated TypeTracking library. Swift diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst index 855f25655ec..48d4ff27f0b 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst @@ -109,14 +109,6 @@ Python * Fixed a bug in the extractor where a comment inside a subscript could sometimes cause the AST to be missing nodes. * Using the :code:`break` and :code:`continue` keywords outside of a loop, which is a syntax error but is accepted by our parser, would cause the control-flow construction to fail. This is now no longer the case. -Major Analysis Improvements -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Golang -"""""" - -* Go 1.24 is now supported. This includes the new language feature of generic type aliases. - Minor Analysis Improvements ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst index d6b93444925..006aeec5a05 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst @@ -35,7 +35,7 @@ Bug Fixes GitHub Actions """""""""""""" -* The :code:`actions/unversioned-immutable-action` query will no longer report any alerts, since the Immutable Actions feature is not yet available for customer use. The query remains in the default Code Scanning suites for use internal to GitHub. Once the Immutable Actions feature is available, the query will be updated to report alerts again. +* The :code:`actions/unversioned-immutable-action` query will no longer report any alerts, since the Immutable Actions feature is not yet available for customer use. The query has also been moved to the experimental folder and will not be used in code scanning unless it is explicitly added to a code scanning configuration. Once the Immutable Actions feature is available, the query will be updated to report alerts again. Major Analysis Improvements ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -71,6 +71,11 @@ Language Libraries Major Analysis Improvements ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Golang +"""""" + +* Go 1.24 is now supported. This includes the new language feature of generic type aliases. + JavaScript/TypeScript """"""""""""""""""""" diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst index aa604d702e7..f48e372f277 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst @@ -165,7 +165,7 @@ Java/Kotlin """"""""""" * Java extraction is now able to download Maven 3.9.x if a Maven Enforcer Plugin configuration indicates it is necessary. Maven 3.8.x is still preferred if the enforcer-plugin configuration (if any) permits it. -* Added a path injection sanitizer for calls to :code:`java.lang.String.matches`, :code:`java.lang.String.replace`, and :code:`java.lang.String.replaceAll` that make sure :code:`/`, :code:`\\`, :code:`..` are not in the path. +* Added a path injection sanitizer for calls to :code:`java.lang.String.matches`, :code:`java.lang.String.replace`, and :code:`java.lang.String.replaceAll` that make sure '/', '', '..' are not in the path. JavaScript/TypeScript """"""""""""""""""""" @@ -207,5 +207,5 @@ JavaScript/TypeScript * Intersection :code:`&&` * Subtraction :code:`--` - * :code:`\\q` quoted string + * :code:`\q` quoted string diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst index 2a8e20d84d1..40587985d9d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst @@ -37,14 +37,6 @@ Bug Fixes Query Packs ----------- -New Features -~~~~~~~~~~~~ - -GitHub Actions -"""""""""""""" - -* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available. - Bug Fixes ~~~~~~~~~ @@ -87,6 +79,14 @@ Python * The :code:`py/mixed-tuple-returns` query no longer flags instances where the tuple is passed into the function as an argument, as this led to too many false positives. +New Features +~~~~~~~~~~~~ + +GitHub Actions +"""""""""""""" + +* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available. + Language Libraries ------------------ @@ -131,17 +131,17 @@ Ruby New Features ~~~~~~~~~~~~ -GitHub Actions -"""""""""""""" - -* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available. - C/C++ """"" * Calling conventions explicitly specified on function declarations (:code:`__cdecl`, :code:`__stdcall`, :code:`__fastcall`, etc.) are now represented as specifiers of those declarations. * A new class :code:`CallingConventionSpecifier` extending the :code:`Specifier` class was introduced, which represents explicitly specified calling conventions. +GitHub Actions +"""""""""""""" + +* CodeQL and Copilot Autofix support for GitHub Actions is now Generally Available. + Shared Libraries ---------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst index 636cf2fe63d..8d9c20cfbb5 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst @@ -108,7 +108,7 @@ Swift """"" * Added AST nodes :code:`ActorIsolationErasureExpr`, :code:`CurrentContextIsolationExpr`, - :code:`ExtractFunctionIsolationExpr` and :code:`UnreachableExpr` that correspond to new nodes added by Swift 6.0. + :code:`ExtracFunctionIsolationExpr` and :code:`UnreachableExpr` that correspond to new nodes added by Swift 6.0. New Features ~~~~~~~~~~~~ diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.3.rst new file mode 100644 index 00000000000..d499f27dcb1 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.3.rst @@ -0,0 +1,159 @@ +.. _codeql-cli-2.21.3: + +========================== +CodeQL 2.21.3 (2025-05-15) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.21.3 runs a total of 452 security queries when configured with the Default suite (covering 168 CWE). The Extended suite enables an additional 136 queries (covering 35 more CWE). + +CodeQL CLI +---------- + +Miscellaneous +~~~~~~~~~~~~~ + +* Windows binaries for the CodeQL CLI are now built with :code:`/guard:cf`, enabling `Control Flow Guard `__. + +Query Packs +----------- + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* Changed the precision of the :code:`cs/equality-on-floats` query from medium to high. + +JavaScript/TypeScript +""""""""""""""""""""" + +* Type information is now propagated more precisely through :code:`Promise.all()` calls, + leading to more resolved calls and more sources and sinks being detected. + +Query Metadata Changes +~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The tag :code:`external/cwe/cwe-14` has been removed from :code:`cpp/memset-may-be-deleted` and the tag :code:`external/cwe/cwe-014` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`cpp/count-untrusted-data-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`cpp/count-untrusted-data-external-api-ir` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`cpp/untrusted-data-to-external-api-ir` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`cpp/untrusted-data-to-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`cpp/late-check-of-function-argument` and the tag :code:`external/cwe/cwe-020` has been added. + +C# +"" + +* The tag :code:`external/cwe/cwe-13` has been removed from :code:`cs/password-in-configuration` and the tag :code:`external/cwe/cwe-013` has been added. +* The tag :code:`external/cwe/cwe-11` has been removed from :code:`cs/web/debug-binary` and the tag :code:`external/cwe/cwe-011` has been added. +* The tag :code:`external/cwe/cwe-16` has been removed from :code:`cs/web/large-max-request-length` and the tag :code:`external/cwe/cwe-016` has been added. +* The tag :code:`external/cwe/cwe-16` has been removed from :code:`cs/web/request-validation-disabled` and the tag :code:`external/cwe/cwe-016` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`cs/count-untrusted-data-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`cs/serialization-check-bypass` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`cs/untrusted-data-to-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-12` has been removed from :code:`cs/web/missing-global-error-handler` and the tag :code:`external/cwe/cwe-012` has been added. + +Golang +"""""" + +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`go/count-untrusted-data-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`go/incomplete-hostname-regexp` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`go/regex/missing-regexp-anchor` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`go/suspicious-character-in-regex` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`go/untrusted-data-to-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`go/untrusted-data-to-unknown-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-90` has been removed from :code:`go/ldap-injection` and the tag :code:`external/cwe/cwe-090` has been added. +* The tag :code:`external/cwe/cwe-74` has been removed from :code:`go/dsn-injection` and the tag :code:`external/cwe/cwe-074` has been added. +* The tag :code:`external/cwe/cwe-74` has been removed from :code:`go/dsn-injection-local` and the tag :code:`external/cwe/cwe-074` has been added. +* The tag :code:`external/cwe/cwe-79` has been removed from :code:`go/html-template-escaping-passthrough` and the tag :code:`external/cwe/cwe-079` has been added. + +Java/Kotlin +""""""""""" + +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`java/count-untrusted-data-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`java/untrusted-data-to-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-93` has been removed from :code:`java/netty-http-request-or-response-splitting` and the tag :code:`external/cwe/cwe-093` has been added. + +JavaScript/TypeScript +""""""""""""""""""""" + +* The tag :code:`external/cwe/cwe-79` has been removed from :code:`js/disabling-electron-websecurity` and the tag :code:`external/cwe/cwe-079` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`js/count-untrusted-data-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`js/untrusted-data-to-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`js/untrusted-data-to-external-api-more-sources` and the tag :code:`external/cwe/cwe-020` has been added. + +Python +"""""" + +* The tags :code:`security/cwe/cwe-94` and :code:`security/cwe/cwe-95` have been removed from :code:`py/use-of-input` and the tags :code:`external/cwe/cwe-094` and :code:`external/cwe/cwe-095` have been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`py/count-untrusted-data-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`py/untrusted-data-to-external-api` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`py/cookie-injection` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-20` has been removed from :code:`py/incomplete-url-substring-sanitization` and the tag :code:`external/cwe/cwe-020` has been added. +* The tag :code:`external/cwe/cwe-94` has been removed from :code:`py/js2py-rce` and the tag :code:`external/cwe/cwe-094` has been added. + +Ruby +"""" + +* The precision of :code:`rb/useless-assignment-to-local` has been adjusted from :code:`medium` to :code:`high`. +* The tag :code:`external/cwe/cwe-94` has been removed from :code:`rb/server-side-template-injection` and the tag :code:`external/cwe/cwe-094` has been added. + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +C/C++ +""""" + +* Fixed an infinite loop in :code:`semmle.code.cpp.rangeanalysis.new.RangeAnalysis` when computing ranges in very large and complex function bodies. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +JavaScript/TypeScript +""""""""""""""""""""" + +* Enhanced modeling of the `fastify `__ framework to support the :code:`all` route handler method. +* Improved modeling of the |link-code-shelljs-1|_ and |link-code-async-shelljs-2|_ libraries by adding support for the :code:`which`, :code:`cmd`, :code:`asyncExec` and :code:`env`. +* Added support for the :code:`fastify` :code:`addHook` method. + +Python +"""""" + +* Added modeling for the :code:`hdbcli` PyPI package as a database library implementing PEP 249. +* Added header write model for :code:`send_header` in :code:`http.server`. + +New Features +~~~~~~~~~~~~ + +Java/Kotlin +""""""""""" + +* Kotlin versions up to 2.2.0\ *x* are now supported. Support for the Kotlin 1.5.x series is dropped (so the minimum Kotlin version is now 1.6.0). + +Swift +""""" + +* Added AST nodes :code:`UnsafeCastExpr`, :code:`TypeValueExpr`, :code:`IntegerType`, and :code:`BuiltinFixedArrayType` that correspond to new nodes added by Swift 6.1. + +.. |link-code-shelljs-1| replace:: :code:`shelljs`\ +.. _link-code-shelljs-1: https://www.npmjs.com/package/shelljs + +.. |link-code-async-shelljs-2| replace:: :code:`async-shelljs`\ +.. _link-code-async-shelljs-2: https://www.npmjs.com/package/async-shelljs + diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index 92781448af8..2d2fd483aed 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/index.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/index.rst @@ -11,6 +11,7 @@ A list of queries for each suite and language `is available here Date: Mon, 19 May 2025 15:44:15 -0400 Subject: [PATCH 482/656] Switching to private imports. --- .../OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll | 7 ++++--- .../BlockAlgorithmInstance.qll | 11 ++++++----- .../CipherAlgorithmInstance.qll | 17 +++++++++-------- .../EllipticCurveAlgorithmInstance.qll | 12 +++++++----- .../HashAlgorithmInstance.qll | 9 +++++---- .../KnownAlgorithmConstants.qll | 2 +- .../OpenSSLAlgorithmInstanceBase.qll | 4 ++-- .../PaddingAlgorithmInstance.qll | 11 ++++++----- .../CipherAlgorithmValueConsumer.qll | 10 +++++----- .../DirectAlgorithmValueConsumer.qll | 6 +++--- .../EllipticCurveAlgorithmValueConsumer.qll | 9 +++++---- .../HashAlgorithmValueConsumer.qll | 13 +++++-------- .../OpenSSLAlgorithmValueConsumerBase.qll | 4 ++-- .../PaddingAlgorithmValueConsumer.qll | 10 +++++----- .../OpenSSL/Operations/EVPCipherInitializer.qll | 4 ++-- .../OpenSSL/Operations/EVPCipherOperation.qll | 10 +++++----- .../OpenSSL/Operations/EVPHashOperation.qll | 12 ++++++------ .../OpenSSL/Operations/OpenSSLOperationBase.qll | 2 +- 18 files changed, 79 insertions(+), 74 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll index 72c3ffcfad4..045e3649e41 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll @@ -1,7 +1,8 @@ import cpp -import semmle.code.cpp.dataflow.new.DataFlow -import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +private import experimental.quantum.Language +private import semmle.code.cpp.dataflow.new.DataFlow +private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers /** * Traces 'known algorithms' to AVCs, specifically diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll index 2566c1188a6..299d8c88694 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll @@ -1,9 +1,10 @@ import cpp -import experimental.quantum.Language -import OpenSSLAlgorithmInstanceBase -import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer -import AlgToAVCFlow +private import experimental.quantum.Language +private import OpenSSLAlgorithmInstanceBase +private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +private import AlgToAVCFlow /** * Given a `KnownOpenSSLBlockModeAlgorithmConstant`, converts this to a block family type. diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll index 7483572848e..d76265e1c70 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll @@ -1,12 +1,13 @@ import cpp -import experimental.quantum.Language -import KnownAlgorithmConstants -import Crypto::KeyOpAlg as KeyOpAlg -import OpenSSLAlgorithmInstanceBase -import PaddingAlgorithmInstance -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers -import AlgToAVCFlow -import BlockAlgorithmInstance +private import experimental.quantum.Language +private import KnownAlgorithmConstants +private import Crypto::KeyOpAlg as KeyOpAlg +private import OpenSSLAlgorithmInstanceBase +private import PaddingAlgorithmInstance +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer +private import AlgToAVCFlow +private import BlockAlgorithmInstance /** * Given a `KnownOpenSSLCipherAlgorithmConstant`, converts this to a cipher family type. diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll index c5eac8afc89..d80529dd1c6 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll @@ -1,8 +1,10 @@ import cpp -import experimental.quantum.Language -import KnownAlgorithmConstants -import OpenSSLAlgorithmInstanceBase -import AlgToAVCFlow +private import experimental.quantum.Language +private import KnownAlgorithmConstants +private import OpenSSLAlgorithmInstanceBase +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer +private import AlgToAVCFlow class KnownOpenSSLEllipticCurveConstantAlgorithmInstance extends OpenSSLAlgorithmInstance, Crypto::EllipticCurveInstance instanceof KnownOpenSSLEllipticCurveAlgorithmConstant @@ -17,7 +19,7 @@ class KnownOpenSSLEllipticCurveConstantAlgorithmInstance extends OpenSSLAlgorith this instanceof Literal and exists(DataFlow::Node src, DataFlow::Node sink | // Sink is an argument to a CipherGetterCall - sink = getterCall.(OpenSSLAlgorithmValueConsumer).getInputNode() and + sink = getterCall.getInputNode() and // Source is `this` src.asExpr() = this and // This traces to a getter diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll index 985e36dbdd7..6cd9faab7df 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll @@ -1,8 +1,9 @@ import cpp -import experimental.quantum.Language -import KnownAlgorithmConstants -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers -import AlgToAVCFlow +private import experimental.quantum.Language +private import KnownAlgorithmConstants +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase +private import AlgToAVCFlow predicate knownOpenSSLConstantToHashFamilyType( KnownOpenSSLHashAlgorithmConstant e, Crypto::THashType type diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index c4c537a34ab..5e7e16b13dc 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -1,5 +1,5 @@ import cpp -import experimental.quantum.OpenSSL.LibraryDetector +private import experimental.quantum.OpenSSL.LibraryDetector predicate resolveAlgorithmFromExpr(Expr e, string normalizedName, string algType) { resolveAlgorithmFromCall(e, normalizedName, algType) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll index dc49c139cf0..b05ee9180b9 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/OpenSSLAlgorithmInstanceBase.qll @@ -1,5 +1,5 @@ -import experimental.quantum.Language -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase abstract class OpenSSLAlgorithmInstance extends Crypto::AlgorithmInstance { abstract OpenSSLAlgorithmValueConsumer getAVC(); diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll index 4fb4d081869..2979f1c303f 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll @@ -1,9 +1,10 @@ import cpp -import experimental.quantum.Language -import OpenSSLAlgorithmInstanceBase -import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import AlgToAVCFlow -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer +private import experimental.quantum.Language +private import OpenSSLAlgorithmInstanceBase +private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +private import AlgToAVCFlow +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase /** * Given a `KnownOpenSSLPaddingAlgorithmConstant`, converts this to a padding family type. diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll index 8fa65860b60..00fc4d735a5 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll @@ -1,9 +1,9 @@ import cpp -import experimental.quantum.Language -import experimental.quantum.OpenSSL.LibraryDetector -import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase -import OpenSSLAlgorithmValueConsumerBase +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.LibraryDetector +private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase +private import OpenSSLAlgorithmValueConsumerBase abstract class CipherAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll index ffc9a7c3991..f710ff613c2 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll @@ -1,7 +1,7 @@ import cpp -import experimental.quantum.Language -import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase // TODO: can self referential to itself, which is also an algorithm (Known algorithm) /** diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll index aa08d4ea50e..79aada45bd9 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll @@ -1,8 +1,9 @@ import cpp -import experimental.quantum.Language -import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase -import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.LibraryDetector +private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances abstract class EllipticCurveValueConsumer extends OpenSSLAlgorithmValueConsumer { } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll index b041b986754..a1c0a214b9a 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll @@ -1,12 +1,9 @@ -// import EVPHashInitializer -// import EVPHashOperation -// import EVPHashAlgorithmSource import cpp -import experimental.quantum.Language -import semmle.code.cpp.dataflow.new.DataFlow -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase -import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances -import experimental.quantum.OpenSSL.LibraryDetector +private import experimental.quantum.Language +private import semmle.code.cpp.dataflow.new.DataFlow +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances +private import experimental.quantum.OpenSSL.LibraryDetector abstract class HashAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll index 3f6e2bd4dc8..200b08849f5 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll @@ -1,5 +1,5 @@ -import experimental.quantum.Language -import semmle.code.cpp.dataflow.new.DataFlow +private import experimental.quantum.Language +private import semmle.code.cpp.dataflow.new.DataFlow abstract class OpenSSLAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer instanceof Call { /** diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll index 3f7ce20d6b3..bb33ad65381 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll @@ -1,9 +1,9 @@ import cpp -import experimental.quantum.Language -import experimental.quantum.OpenSSL.LibraryDetector -import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants -import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase -import OpenSSLAlgorithmValueConsumerBase +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.LibraryDetector +private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase +private import OpenSSLAlgorithmValueConsumerBase abstract class PaddingAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll index 3e8607ef8ec..353a89645ec 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherInitializer.qll @@ -3,8 +3,8 @@ * Models cipher initialization for EVP cipher operations. */ -import experimental.quantum.Language -import experimental.quantum.OpenSSL.CtxFlow as CTXFlow +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.CtxFlow as CTXFlow module EncValToInitEncArgConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr().getValue().toInt() in [0, 1] } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll index f22bcae6927..736da3ca207 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPCipherOperation.qll @@ -1,8 +1,8 @@ -import experimental.quantum.Language -import experimental.quantum.OpenSSL.CtxFlow as CTXFlow -import EVPCipherInitializer -import OpenSSLOperationBase -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.CtxFlow as CTXFlow +private import EVPCipherInitializer +private import OpenSSLOperationBase +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers private module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll index a187b62a7bd..94de9e1cb42 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll @@ -2,12 +2,12 @@ * https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis */ -import experimental.quantum.Language -import experimental.quantum.OpenSSL.CtxFlow as CTXFlow -import experimental.quantum.OpenSSL.LibraryDetector -import OpenSSLOperationBase -import EVPHashInitializer -import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.CtxFlow as CTXFlow +private import experimental.quantum.OpenSSL.LibraryDetector +private import OpenSSLOperationBase +private import EVPHashInitializer +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers // import EVPHashConsumers abstract class EVP_Hash_Operation extends OpenSSLOperation, Crypto::HashOperationInstance { diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperationBase.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperationBase.qll index 4798f5650a9..f9753e92c5d 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperationBase.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperationBase.qll @@ -1,4 +1,4 @@ -import experimental.quantum.Language +private import experimental.quantum.Language abstract class OpenSSLOperation extends Crypto::OperationInstance instanceof Call { abstract Expr getInputArg(); From 94b57ac9a984f22f2994451ce4a3ff216088ec35 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 19 May 2025 21:49:02 +0100 Subject: [PATCH 483/656] Update rust/ql/test/library-tests/dataflow/modeled/main.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rust/ql/test/library-tests/dataflow/modeled/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/test/library-tests/dataflow/modeled/main.rs b/rust/ql/test/library-tests/dataflow/modeled/main.rs index 440f3bfd7ee..b3044336669 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/main.rs +++ b/rust/ql/test/library-tests/dataflow/modeled/main.rs @@ -128,7 +128,7 @@ fn test_pin() { let mut ms = MyStruct { val: source(42) }; let mut pin5 = Pin::new_unchecked(&ms); sink(pin5.val); // $ MISSING: hasValueFlow=42 - sink(Pin::into_inner_unchecked(pin5).val); // $ MISSING: hasValueFlow=40 + sink(Pin::into_inner_unchecked(pin5).val); // $ MISSING: hasValueFlow=42 } { From 3bd2f85a8e87b404388482dac35efdc00ade9764 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Mon, 19 May 2025 16:33:45 -0500 Subject: [PATCH 484/656] Fixing some upstream typos etc --- .../codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst | 2 +- .../codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst | 2 +- .../codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst | 2 +- java/ql/lib/CHANGELOG.md | 2 +- swift/ql/lib/CHANGELOG.md | 2 +- swift/ql/lib/change-notes/released/4.2.0.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst index 9235d63fe2c..754b6d2c4da 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst @@ -79,4 +79,4 @@ JavaScript/TypeScript * Added taint-steps for :code:`Array.prototype.toReversed`. * Added taint-steps for :code:`Array.prototype.toSorted`. * Added support for :code:`String.prototype.matchAll`. -* Added taint-steps for :code:`Array.prototype.reverse`\ +* Added taint-steps for :code:`Array.prototype.reverse`. diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst index f48e372f277..b6396b2be4e 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst @@ -165,7 +165,7 @@ Java/Kotlin """"""""""" * Java extraction is now able to download Maven 3.9.x if a Maven Enforcer Plugin configuration indicates it is necessary. Maven 3.8.x is still preferred if the enforcer-plugin configuration (if any) permits it. -* Added a path injection sanitizer for calls to :code:`java.lang.String.matches`, :code:`java.lang.String.replace`, and :code:`java.lang.String.replaceAll` that make sure '/', '', '..' are not in the path. +* Added a path injection sanitizer for calls to :code:`java.lang.String.matches`, :code:`java.lang.String.replace`, and :code:`java.lang.String.replaceAll` that make sure :code:`/`, :code:`\\`, :code:`..` are not in the path. JavaScript/TypeScript """"""""""""""""""""" diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst index 8d9c20cfbb5..636cf2fe63d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst @@ -108,7 +108,7 @@ Swift """"" * Added AST nodes :code:`ActorIsolationErasureExpr`, :code:`CurrentContextIsolationExpr`, - :code:`ExtracFunctionIsolationExpr` and :code:`UnreachableExpr` that correspond to new nodes added by Swift 6.0. + :code:`ExtractFunctionIsolationExpr` and :code:`UnreachableExpr` that correspond to new nodes added by Swift 6.0. New Features ~~~~~~~~~~~~ diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 01832478c5b..fff0ac11496 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -20,7 +20,7 @@ No user-facing changes. ### Minor Analysis Improvements * Java extraction is now able to download Maven 3.9.x if a Maven Enforcer Plugin configuration indicates it is necessary. Maven 3.8.x is still preferred if the enforcer-plugin configuration (if any) permits it. -* Added a path injection sanitizer for calls to `java.lang.String.matches`, `java.lang.String.replace`, and `java.lang.String.replaceAll` that make sure '/', '\', '..' are not in the path. +* Added a path injection sanitizer for calls to `java.lang.String.matches`, `java.lang.String.replace`, and `java.lang.String.replaceAll` that make sure `/`, `\\`, `..` are not in the path. ### Bug Fixes diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index 36f0bc8e5fd..1c9326d76e8 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -13,7 +13,7 @@ ### Minor Analysis Improvements * Added AST nodes `ActorIsolationErasureExpr`, `CurrentContextIsolationExpr`, - `ExtracFunctionIsolationExpr` and `UnreachableExpr` that correspond to new nodes + `ExtractFunctionIsolationExpr` and `UnreachableExpr` that correspond to new nodes added by Swift 6.0. ## 4.1.4 diff --git a/swift/ql/lib/change-notes/released/4.2.0.md b/swift/ql/lib/change-notes/released/4.2.0.md index 734840c9318..935d4b5e832 100644 --- a/swift/ql/lib/change-notes/released/4.2.0.md +++ b/swift/ql/lib/change-notes/released/4.2.0.md @@ -7,5 +7,5 @@ ### Minor Analysis Improvements * Added AST nodes `ActorIsolationErasureExpr`, `CurrentContextIsolationExpr`, - `ExtracFunctionIsolationExpr` and `UnreachableExpr` that correspond to new nodes + `ExtractFunctionIsolationExpr` and `UnreachableExpr` that correspond to new nodes added by Swift 6.0. From b9841dccfb8a5ee1bba8e8c43c4fd9a940b1c516 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Mon, 19 May 2025 16:45:08 -0500 Subject: [PATCH 485/656] Fixing more upstream typos --- .../codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst | 2 +- java/ql/lib/change-notes/released/7.1.2.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst index b6396b2be4e..aa604d702e7 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst @@ -207,5 +207,5 @@ JavaScript/TypeScript * Intersection :code:`&&` * Subtraction :code:`--` - * :code:`\q` quoted string + * :code:`\\q` quoted string diff --git a/java/ql/lib/change-notes/released/7.1.2.md b/java/ql/lib/change-notes/released/7.1.2.md index 57fc5b2cc6d..811b2353c99 100644 --- a/java/ql/lib/change-notes/released/7.1.2.md +++ b/java/ql/lib/change-notes/released/7.1.2.md @@ -3,7 +3,7 @@ ### Minor Analysis Improvements * Java extraction is now able to download Maven 3.9.x if a Maven Enforcer Plugin configuration indicates it is necessary. Maven 3.8.x is still preferred if the enforcer-plugin configuration (if any) permits it. -* Added a path injection sanitizer for calls to `java.lang.String.matches`, `java.lang.String.replace`, and `java.lang.String.replaceAll` that make sure '/', '\', '..' are not in the path. +* Added a path injection sanitizer for calls to `java.lang.String.matches`, `java.lang.String.replace`, and `java.lang.String.replaceAll` that make sure `/`, `\\`, `..` are not in the path. ### Bug Fixes From 759ad8adc1748afea0388a46f4cdd440277a284b Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Mon, 19 May 2025 16:53:05 -0500 Subject: [PATCH 486/656] Fixing Go 1.24 release accuracy. It went supported in 2.20.5 and docs were a late commit so this fixes it upstream. --- .../codeql-changelog/codeql-cli-2.20.5.rst | 8 ++++++++ .../codeql-changelog/codeql-cli-2.20.6.rst | 5 ----- go/ql/lib/CHANGELOG.md | 8 ++++---- go/ql/lib/change-notes/released/4.1.0.md | 4 ++++ go/ql/lib/change-notes/released/4.2.0.md | 4 ---- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst index 48d4ff27f0b..855f25655ec 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst @@ -109,6 +109,14 @@ Python * Fixed a bug in the extractor where a comment inside a subscript could sometimes cause the AST to be missing nodes. * Using the :code:`break` and :code:`continue` keywords outside of a loop, which is a syntax error but is accepted by our parser, would cause the control-flow construction to fail. This is now no longer the case. +Major Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Golang +"""""" + +* Go 1.24 is now supported. This includes the new language feature of generic type aliases. + Minor Analysis Improvements ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst index 006aeec5a05..76c038bded2 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst @@ -71,11 +71,6 @@ Language Libraries Major Analysis Improvements ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Golang -"""""" - -* Go 1.24 is now supported. This includes the new language feature of generic type aliases. - JavaScript/TypeScript """"""""""""""""""""" diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 9eb5ef69ebc..b6031842a21 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -30,10 +30,6 @@ No user-facing changes. * The member predicate `hasLocationInfo` has been deprecated on the following classes: `BasicBlock`, `Callable`, `Content`, `ContentSet`, `ControlFlow::Node`, `DataFlowCallable`, `DataFlow::Node`, `Entity`, `GVN`, `HtmlTemplate::TemplateStmt`, `IR:WriteTarget`, `SourceSinkInterpretationInput::SourceOrSinkElement`, `SourceSinkInterpretationInput::InterpretNode`, `SsaVariable`, `SsaDefinition`, `SsaWithFields`, `StringOps::ConcatenationElement`, `Type`, and `VariableWithFields`. Use `getLocation()` instead. -### Major Analysis Improvements - -* Go 1.24 is now supported. This includes the new language feature of generic type aliases. - ### Minor Analysis Improvements * The location info for the following classes has been changed slightly to match a location that is in the database: `BasicBlock`, `ControlFlow::EntryNode`, `ControlFlow::ExitNode`, `ControlFlow::ConditionGuardNode`, `IR::ImplicitLiteralElementIndexInstruction`, `IR::EvalImplicitTrueInstruction`, `SsaImplicitDefinition`, `SsaPhiNode`. @@ -48,6 +44,10 @@ No user-facing changes. * The member predicate `getNamedType` on `GoMicro::ServiceInterfaceType` has been deprecated. Use the new member predicate `getDefinedType` instead. * The member predicate `getNamedType` on `Twirp::ServiceInterfaceType` has been deprecated. Use the new member predicate `getDefinedType` instead. +### Major Analysis Improvements + +* Go 1.24 is now supported. This includes the new language feature of generic type aliases. + ### Minor Analysis Improvements * Taint models have been added for the `weak` package, which was added in Go 1.24. diff --git a/go/ql/lib/change-notes/released/4.1.0.md b/go/ql/lib/change-notes/released/4.1.0.md index 3061e491f48..728d754bd1d 100644 --- a/go/ql/lib/change-notes/released/4.1.0.md +++ b/go/ql/lib/change-notes/released/4.1.0.md @@ -6,6 +6,10 @@ * The member predicate `getNamedType` on `GoMicro::ServiceInterfaceType` has been deprecated. Use the new member predicate `getDefinedType` instead. * The member predicate `getNamedType` on `Twirp::ServiceInterfaceType` has been deprecated. Use the new member predicate `getDefinedType` instead. +### Major Analysis Improvements + +* Go 1.24 is now supported. This includes the new language feature of generic type aliases. + ### Minor Analysis Improvements * Taint models have been added for the `weak` package, which was added in Go 1.24. diff --git a/go/ql/lib/change-notes/released/4.2.0.md b/go/ql/lib/change-notes/released/4.2.0.md index 771e8733053..34af613a015 100644 --- a/go/ql/lib/change-notes/released/4.2.0.md +++ b/go/ql/lib/change-notes/released/4.2.0.md @@ -4,10 +4,6 @@ * The member predicate `hasLocationInfo` has been deprecated on the following classes: `BasicBlock`, `Callable`, `Content`, `ContentSet`, `ControlFlow::Node`, `DataFlowCallable`, `DataFlow::Node`, `Entity`, `GVN`, `HtmlTemplate::TemplateStmt`, `IR:WriteTarget`, `SourceSinkInterpretationInput::SourceOrSinkElement`, `SourceSinkInterpretationInput::InterpretNode`, `SsaVariable`, `SsaDefinition`, `SsaWithFields`, `StringOps::ConcatenationElement`, `Type`, and `VariableWithFields`. Use `getLocation()` instead. -### Major Analysis Improvements - -* Go 1.24 is now supported. This includes the new language feature of generic type aliases. - ### Minor Analysis Improvements * The location info for the following classes has been changed slightly to match a location that is in the database: `BasicBlock`, `ControlFlow::EntryNode`, `ControlFlow::ExitNode`, `ControlFlow::ConditionGuardNode`, `IR::ImplicitLiteralElementIndexInstruction`, `IR::EvalImplicitTrueInstruction`, `SsaImplicitDefinition`, `SsaPhiNode`. From e5efe83243a0c18d0b3816b1766ef770f52f2afc Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Mon, 19 May 2025 17:03:23 -0500 Subject: [PATCH 487/656] Fixing upstream backticks around problematic characters so that the RST generator doesn't choke on asterisks --- .../codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst | 4 ++-- java/ql/lib/CHANGELOG.md | 4 ++-- java/ql/lib/change-notes/released/7.0.0.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst index f488198ea3d..143f50387b7 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst @@ -117,8 +117,8 @@ Java/Kotlin * Deleted the deprecated :code:`isLValue` and :code:`isRValue` predicates from the :code:`VarAccess` class, use :code:`isVarWrite` and :code:`isVarRead` respectively instead. * Deleted the deprecated :code:`getRhs` predicate from the :code:`VarWrite` class, use :code:`getASource` instead. * Deleted the deprecated :code:`LValue` and :code:`RValue` classes, use :code:`VarWrite` and :code:`VarRead` respectively instead. -* Deleted a lot of deprecated classes ending in "*Access", use the corresponding "*Call" classes instead. -* Deleted a lot of deprecated predicates ending in "*Access", use the corresponding "*Call" predicates instead. +* Deleted a lot of deprecated classes ending in ``*Access``, use the corresponding ``*Call`` classes instead. +* Deleted a lot of deprecated predicates ending in ``*Access``, use the corresponding ``*Call`` predicates instead. * Deleted the deprecated :code:`EnvInput` and :code:`DatabaseInput` classes from :code:`FlowSources.qll`, use the threat models feature instead. * Deleted some deprecated API predicates from :code:`SensitiveApi.qll`, use the Sink classes from that file instead. diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index fff0ac11496..412521919b9 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -55,8 +55,8 @@ No user-facing changes. * Deleted the deprecated `isLValue` and `isRValue` predicates from the `VarAccess` class, use `isVarWrite` and `isVarRead` respectively instead. * Deleted the deprecated `getRhs` predicate from the `VarWrite` class, use `getASource` instead. * Deleted the deprecated `LValue` and `RValue` classes, use `VarWrite` and `VarRead` respectively instead. -* Deleted a lot of deprecated classes ending in "*Access", use the corresponding "*Call" classes instead. -* Deleted a lot of deprecated predicates ending in "*Access", use the corresponding "*Call" predicates instead. +* Deleted a lot of deprecated classes ending in `*Access`, use the corresponding `*Call` classes instead. +* Deleted a lot of deprecated predicates ending in `*Access`, use the corresponding `*Call` predicates instead. * Deleted the deprecated `EnvInput` and `DatabaseInput` classes from `FlowSources.qll`, use the threat models feature instead. * Deleted some deprecated API predicates from `SensitiveApi.qll`, use the Sink classes from that file instead. diff --git a/java/ql/lib/change-notes/released/7.0.0.md b/java/ql/lib/change-notes/released/7.0.0.md index 08a4b0f85bf..1f367abb668 100644 --- a/java/ql/lib/change-notes/released/7.0.0.md +++ b/java/ql/lib/change-notes/released/7.0.0.md @@ -5,8 +5,8 @@ * Deleted the deprecated `isLValue` and `isRValue` predicates from the `VarAccess` class, use `isVarWrite` and `isVarRead` respectively instead. * Deleted the deprecated `getRhs` predicate from the `VarWrite` class, use `getASource` instead. * Deleted the deprecated `LValue` and `RValue` classes, use `VarWrite` and `VarRead` respectively instead. -* Deleted a lot of deprecated classes ending in "*Access", use the corresponding "*Call" classes instead. -* Deleted a lot of deprecated predicates ending in "*Access", use the corresponding "*Call" predicates instead. +* Deleted a lot of deprecated classes ending in `*Access`, use the corresponding `*Call` classes instead. +* Deleted a lot of deprecated predicates ending in `*Access`, use the corresponding `*Call` predicates instead. * Deleted the deprecated `EnvInput` and `DatabaseInput` classes from `FlowSources.qll`, use the threat models feature instead. * Deleted some deprecated API predicates from `SensitiveApi.qll`, use the Sink classes from that file instead. From 7570f503ceacd4b0be1e78ae8176ef84465ca346 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Mon, 19 May 2025 17:06:29 -0500 Subject: [PATCH 488/656] Escaping more problematic asterisks --- .../codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst | 2 +- ruby/ql/lib/CHANGELOG.md | 2 +- ruby/ql/lib/change-notes/released/4.0.0.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst index 143f50387b7..a5c9c4f222f 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst @@ -144,7 +144,7 @@ Ruby * Deleted the deprecated :code:`ModelClass` and :code:`ModelInstance` classes from :code:`ActiveResource.qll`, use :code:`ModelClassNode` and :code:`ModelClassNode.getAnInstanceReference()` instead. * Deleted the deprecated :code:`Collection` class from :code:`ActiveResource.qll`, use :code:`CollectionSource` instead. * Deleted the deprecated :code:`ServiceInstantiation` and :code:`ClientInstantiation` classes from :code:`Twirp.qll`. -* Deleted a lot of deprecated dataflow modules from "*Query.qll" files. +* Deleted a lot of deprecated dataflow modules from ``*Query.qll`` files. * Deleted the old deprecated TypeTracking library. Swift diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index f9858668d93..4d3dfc9c436 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -48,7 +48,7 @@ No user-facing changes. * Deleted the deprecated `ModelClass` and `ModelInstance` classes from `ActiveResource.qll`, use `ModelClassNode` and `ModelClassNode.getAnInstanceReference()` instead. * Deleted the deprecated `Collection` class from `ActiveResource.qll`, use `CollectionSource` instead. * Deleted the deprecated `ServiceInstantiation` and `ClientInstantiation` classes from `Twirp.qll`. -* Deleted a lot of deprecated dataflow modules from "*Query.qll" files. +* Deleted a lot of deprecated dataflow modules from `*Query.qll` files. * Deleted the old deprecated TypeTracking library. ## 3.0.2 diff --git a/ruby/ql/lib/change-notes/released/4.0.0.md b/ruby/ql/lib/change-notes/released/4.0.0.md index 9674020e9dd..28ccd379dc5 100644 --- a/ruby/ql/lib/change-notes/released/4.0.0.md +++ b/ruby/ql/lib/change-notes/released/4.0.0.md @@ -14,5 +14,5 @@ * Deleted the deprecated `ModelClass` and `ModelInstance` classes from `ActiveResource.qll`, use `ModelClassNode` and `ModelClassNode.getAnInstanceReference()` instead. * Deleted the deprecated `Collection` class from `ActiveResource.qll`, use `CollectionSource` instead. * Deleted the deprecated `ServiceInstantiation` and `ClientInstantiation` classes from `Twirp.qll`. -* Deleted a lot of deprecated dataflow modules from "*Query.qll" files. +* Deleted a lot of deprecated dataflow modules from `*Query.qll` files. * Deleted the old deprecated TypeTracking library. From f6f6a5ccc6027bf04d30c1fe32a7dc4d16072504 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 20 May 2025 02:11:05 +0100 Subject: [PATCH 489/656] Only list type params in test files This will make the test results not depend on the version of the standard library being used, which means we don't have to update it with each new release. --- .../semmle/go/Function/TypeParamType.expected | 206 ------------------ .../semmle/go/Function/TypeParamType.ql | 6 +- 2 files changed, 5 insertions(+), 207 deletions(-) diff --git a/go/ql/test/library-tests/semmle/go/Function/TypeParamType.expected b/go/ql/test/library-tests/semmle/go/Function/TypeParamType.expected index 27a0d5171de..bda7c151797 100644 --- a/go/ql/test/library-tests/semmle/go/Function/TypeParamType.expected +++ b/go/ql/test/library-tests/semmle/go/Function/TypeParamType.expected @@ -20,10 +20,6 @@ numberOfTypeParameters | genericFunctions.go:152:6:152:36 | multipleAnonymousTypeParamsType | 3 | | genericFunctions.go:154:51:154:51 | f | 3 | #select -| cmp.Compare | 0 | T | Ordered | -| cmp.Less | 0 | T | Ordered | -| cmp.Or | 0 | T | comparable | -| cmp.isNaN | 0 | T | Ordered | | codeql-go-tests/function.EdgeConstraint | 0 | Node | interface { } | | codeql-go-tests/function.Element | 0 | S | interface { } | | codeql-go-tests/function.GenericFunctionInAnotherFile | 0 | T | interface { } | @@ -57,205 +53,3 @@ numberOfTypeParameters | codeql-go-tests/function.multipleAnonymousTypeParamsType.f | 0 | _ | interface { } | | codeql-go-tests/function.multipleAnonymousTypeParamsType.f | 1 | _ | interface { string } | | codeql-go-tests/function.multipleAnonymousTypeParamsType.f | 2 | _ | interface { } | -| github.com/anotherpkg.GenericFunctionInAnotherPackage | 0 | T | interface { } | -| internal/abi.Escape | 0 | T | interface { } | -| internal/bytealg.HashStr | 0 | T | interface { string \| []uint8 } | -| internal/bytealg.HashStrRev | 0 | T | interface { string \| []uint8 } | -| internal/bytealg.IndexRabinKarp | 0 | T | interface { string \| []uint8 } | -| internal/bytealg.LastIndexRabinKarp | 0 | T | interface { string \| []uint8 } | -| internal/poll.ignoringEINTR2 | 0 | T | interface { } | -| internal/runtime/atomic.Pointer.CompareAndSwap | 0 | T | interface { } | -| internal/runtime/atomic.Pointer.CompareAndSwapNoWB | 0 | T | interface { } | -| internal/runtime/atomic.Pointer.Load | 0 | T | interface { } | -| internal/runtime/atomic.Pointer.Store | 0 | T | interface { } | -| internal/runtime/atomic.Pointer.StoreNoWB | 0 | T | interface { } | -| internal/sync.HashTrieMap.All | 0 | K | comparable | -| internal/sync.HashTrieMap.All | 1 | V | interface { } | -| internal/sync.HashTrieMap.CompareAndDelete | 0 | K | comparable | -| internal/sync.HashTrieMap.CompareAndDelete | 1 | V | interface { } | -| internal/sync.HashTrieMap.CompareAndSwap | 0 | K | comparable | -| internal/sync.HashTrieMap.CompareAndSwap | 1 | V | interface { } | -| internal/sync.HashTrieMap.Delete | 0 | K | comparable | -| internal/sync.HashTrieMap.Load | 0 | K | comparable | -| internal/sync.HashTrieMap.Load | 1 | V | interface { } | -| internal/sync.HashTrieMap.LoadAndDelete | 0 | K | comparable | -| internal/sync.HashTrieMap.LoadAndDelete | 1 | V | interface { } | -| internal/sync.HashTrieMap.LoadOrStore | 0 | K | comparable | -| internal/sync.HashTrieMap.LoadOrStore | 1 | V | interface { } | -| internal/sync.HashTrieMap.Range | 0 | K | comparable | -| internal/sync.HashTrieMap.Range | 1 | V | interface { } | -| internal/sync.HashTrieMap.Store | 0 | K | comparable | -| internal/sync.HashTrieMap.Store | 1 | V | interface { } | -| internal/sync.HashTrieMap.Swap | 0 | K | comparable | -| internal/sync.HashTrieMap.Swap | 1 | V | interface { } | -| internal/sync.HashTrieMap.find | 0 | K | comparable | -| internal/sync.HashTrieMap.find | 1 | V | interface { } | -| internal/sync.HashTrieMap.iter | 0 | K | comparable | -| internal/sync.HashTrieMap.iter | 1 | V | interface { } | -| internal/sync.entry | 0 | K | comparable | -| internal/sync.entry | 1 | V | interface { } | -| internal/sync.entry.compareAndDelete | 0 | K | comparable | -| internal/sync.entry.compareAndDelete | 1 | V | interface { } | -| internal/sync.entry.compareAndSwap | 0 | K | comparable | -| internal/sync.entry.compareAndSwap | 1 | V | interface { } | -| internal/sync.entry.loadAndDelete | 0 | K | comparable | -| internal/sync.entry.loadAndDelete | 1 | V | interface { } | -| internal/sync.entry.lookup | 0 | K | comparable | -| internal/sync.entry.lookup | 1 | V | interface { } | -| internal/sync.entry.lookupWithValue | 0 | K | comparable | -| internal/sync.entry.lookupWithValue | 1 | V | interface { } | -| internal/sync.entry.swap | 0 | K | comparable | -| internal/sync.entry.swap | 1 | V | interface { } | -| internal/sync.newEntryNode | 0 | K | comparable | -| internal/sync.newEntryNode | 1 | V | interface { } | -| iter.Pull | 0 | V | interface { } | -| iter.Pull2 | 0 | K | interface { } | -| iter.Pull2 | 1 | V | interface { } | -| iter.Seq | 0 | V | interface { } | -| iter.Seq2 | 0 | K | interface { } | -| iter.Seq2 | 1 | V | interface { } | -| os.doInRoot | 0 | T | interface { } | -| os.ignoringEINTR2 | 0 | T | interface { } | -| reflect.rangeNum | 1 | N | interface { int64 \| uint64 } | -| runtime.AddCleanup | 0 | T | interface { } | -| runtime.AddCleanup | 1 | S | interface { } | -| runtime.fandbits | 0 | F | floaty | -| runtime.fmax | 0 | F | floaty | -| runtime.fmin | 0 | F | floaty | -| runtime.forbits | 0 | F | floaty | -| runtime.noEscapePtr | 0 | T | interface { } | -| slices.All | 0 | Slice | interface { ~[]E } | -| slices.All | 1 | E | interface { } | -| slices.AppendSeq | 0 | Slice | interface { ~[]E } | -| slices.AppendSeq | 1 | E | interface { } | -| slices.Backward | 0 | Slice | interface { ~[]E } | -| slices.Backward | 1 | E | interface { } | -| slices.BinarySearch | 0 | S | interface { ~[]E } | -| slices.BinarySearch | 1 | E | Ordered | -| slices.BinarySearchFunc | 0 | S | interface { ~[]E } | -| slices.BinarySearchFunc | 1 | E | interface { } | -| slices.BinarySearchFunc | 2 | T | interface { } | -| slices.Chunk | 0 | Slice | interface { ~[]E } | -| slices.Chunk | 1 | E | interface { } | -| slices.Clip | 0 | S | interface { ~[]E } | -| slices.Clip | 1 | E | interface { } | -| slices.Clone | 0 | S | interface { ~[]E } | -| slices.Clone | 1 | E | interface { } | -| slices.Collect | 0 | E | interface { } | -| slices.Compact | 0 | S | interface { ~[]E } | -| slices.Compact | 1 | E | comparable | -| slices.CompactFunc | 0 | S | interface { ~[]E } | -| slices.CompactFunc | 1 | E | interface { } | -| slices.Compare | 0 | S | interface { ~[]E } | -| slices.Compare | 1 | E | Ordered | -| slices.CompareFunc | 0 | S1 | interface { ~[]E1 } | -| slices.CompareFunc | 1 | S2 | interface { ~[]E2 } | -| slices.CompareFunc | 2 | E1 | interface { } | -| slices.CompareFunc | 3 | E2 | interface { } | -| slices.Concat | 0 | S | interface { ~[]E } | -| slices.Concat | 1 | E | interface { } | -| slices.Contains | 0 | S | interface { ~[]E } | -| slices.Contains | 1 | E | comparable | -| slices.ContainsFunc | 0 | S | interface { ~[]E } | -| slices.ContainsFunc | 1 | E | interface { } | -| slices.Delete | 0 | S | interface { ~[]E } | -| slices.Delete | 1 | E | interface { } | -| slices.DeleteFunc | 0 | S | interface { ~[]E } | -| slices.DeleteFunc | 1 | E | interface { } | -| slices.Equal | 0 | S | interface { ~[]E } | -| slices.Equal | 1 | E | comparable | -| slices.EqualFunc | 0 | S1 | interface { ~[]E1 } | -| slices.EqualFunc | 1 | S2 | interface { ~[]E2 } | -| slices.EqualFunc | 2 | E1 | interface { } | -| slices.EqualFunc | 3 | E2 | interface { } | -| slices.Grow | 0 | S | interface { ~[]E } | -| slices.Grow | 1 | E | interface { } | -| slices.Index | 0 | S | interface { ~[]E } | -| slices.Index | 1 | E | comparable | -| slices.IndexFunc | 0 | S | interface { ~[]E } | -| slices.IndexFunc | 1 | E | interface { } | -| slices.Insert | 0 | S | interface { ~[]E } | -| slices.Insert | 1 | E | interface { } | -| slices.IsSorted | 0 | S | interface { ~[]E } | -| slices.IsSorted | 1 | E | Ordered | -| slices.IsSortedFunc | 0 | S | interface { ~[]E } | -| slices.IsSortedFunc | 1 | E | interface { } | -| slices.Max | 0 | S | interface { ~[]E } | -| slices.Max | 1 | E | Ordered | -| slices.MaxFunc | 0 | S | interface { ~[]E } | -| slices.MaxFunc | 1 | E | interface { } | -| slices.Min | 0 | S | interface { ~[]E } | -| slices.Min | 1 | E | Ordered | -| slices.MinFunc | 0 | S | interface { ~[]E } | -| slices.MinFunc | 1 | E | interface { } | -| slices.Repeat | 0 | S | interface { ~[]E } | -| slices.Repeat | 1 | E | interface { } | -| slices.Replace | 0 | S | interface { ~[]E } | -| slices.Replace | 1 | E | interface { } | -| slices.Reverse | 0 | S | interface { ~[]E } | -| slices.Reverse | 1 | E | interface { } | -| slices.Sort | 0 | S | interface { ~[]E } | -| slices.Sort | 1 | E | Ordered | -| slices.SortFunc | 0 | S | interface { ~[]E } | -| slices.SortFunc | 1 | E | interface { } | -| slices.SortStableFunc | 0 | S | interface { ~[]E } | -| slices.SortStableFunc | 1 | E | interface { } | -| slices.Sorted | 0 | E | Ordered | -| slices.SortedFunc | 0 | E | interface { } | -| slices.SortedStableFunc | 0 | E | interface { } | -| slices.Values | 0 | Slice | interface { ~[]E } | -| slices.Values | 1 | E | interface { } | -| slices.breakPatternsCmpFunc | 0 | E | interface { } | -| slices.breakPatternsOrdered | 0 | E | Ordered | -| slices.choosePivotCmpFunc | 0 | E | interface { } | -| slices.choosePivotOrdered | 0 | E | Ordered | -| slices.heapSortCmpFunc | 0 | E | interface { } | -| slices.heapSortOrdered | 0 | E | Ordered | -| slices.insertionSortCmpFunc | 0 | E | interface { } | -| slices.insertionSortOrdered | 0 | E | Ordered | -| slices.isNaN | 0 | T | Ordered | -| slices.medianAdjacentCmpFunc | 0 | E | interface { } | -| slices.medianAdjacentOrdered | 0 | E | Ordered | -| slices.medianCmpFunc | 0 | E | interface { } | -| slices.medianOrdered | 0 | E | Ordered | -| slices.order2CmpFunc | 0 | E | interface { } | -| slices.order2Ordered | 0 | E | Ordered | -| slices.overlaps | 0 | E | interface { } | -| slices.partialInsertionSortCmpFunc | 0 | E | interface { } | -| slices.partialInsertionSortOrdered | 0 | E | Ordered | -| slices.partitionCmpFunc | 0 | E | interface { } | -| slices.partitionEqualCmpFunc | 0 | E | interface { } | -| slices.partitionEqualOrdered | 0 | E | Ordered | -| slices.partitionOrdered | 0 | E | Ordered | -| slices.pdqsortCmpFunc | 0 | E | interface { } | -| slices.pdqsortOrdered | 0 | E | Ordered | -| slices.reverseRangeCmpFunc | 0 | E | interface { } | -| slices.reverseRangeOrdered | 0 | E | Ordered | -| slices.rotateCmpFunc | 0 | E | interface { } | -| slices.rotateLeft | 0 | E | interface { } | -| slices.rotateOrdered | 0 | E | Ordered | -| slices.rotateRight | 0 | E | interface { } | -| slices.siftDownCmpFunc | 0 | E | interface { } | -| slices.siftDownOrdered | 0 | E | Ordered | -| slices.stableCmpFunc | 0 | E | interface { } | -| slices.stableOrdered | 0 | E | Ordered | -| slices.startIdx | 0 | E | interface { } | -| slices.swapRangeCmpFunc | 0 | E | interface { } | -| slices.swapRangeOrdered | 0 | E | Ordered | -| slices.symMergeCmpFunc | 0 | E | interface { } | -| slices.symMergeOrdered | 0 | E | Ordered | -| strconv.bsearch | 0 | S | interface { ~[]E } | -| strconv.bsearch | 1 | E | interface { ~uint16 \| ~uint32 } | -| sync.OnceValue | 0 | T | interface { } | -| sync.OnceValues | 0 | T1 | interface { } | -| sync.OnceValues | 1 | T2 | interface { } | -| sync/atomic.Pointer | 0 | T | interface { } | -| sync/atomic.Pointer.CompareAndSwap | 0 | T | interface { } | -| sync/atomic.Pointer.Load | 0 | T | interface { } | -| sync/atomic.Pointer.Store | 0 | T | interface { } | -| sync/atomic.Pointer.Swap | 0 | T | interface { } | -| time.atoi | 0 | bytes | interface { []uint8 \| string } | -| time.isDigit | 0 | bytes | interface { []uint8 \| string } | -| time.leadingInt | 0 | bytes | interface { []uint8 \| string } | -| time.parseNanoseconds | 0 | bytes | interface { []uint8 \| string } | -| time.parseRFC3339 | 0 | bytes | interface { []uint8 \| string } | diff --git a/go/ql/test/library-tests/semmle/go/Function/TypeParamType.ql b/go/ql/test/library-tests/semmle/go/Function/TypeParamType.ql index 202a437d6a0..02dec23d2a8 100644 --- a/go/ql/test/library-tests/semmle/go/Function/TypeParamType.ql +++ b/go/ql/test/library-tests/semmle/go/Function/TypeParamType.ql @@ -6,5 +6,9 @@ query predicate numberOfTypeParameters(TypeParamParentEntity parent, int n) { } from TypeParamType tpt, TypeParamParentEntity ty -where ty = tpt.getParent() +where + ty = tpt.getParent() and + // Note that we cannot use the location of `tpt` itself as we currently fail + // to extract an object for type parameters for methods on generic structs. + exists(ty.getLocation()) select ty.getQualifiedName(), tpt.getIndex(), tpt.getParamName(), tpt.getConstraint().pp() From 98c6783ed92f8d15154f5a766d2d04e30ba6770a Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 20 May 2025 09:20:35 +0200 Subject: [PATCH 490/656] Rust: Rename predicate and inline predicate only used once --- .../codeql/rust/internal/TypeInference.qll | 2 +- .../typeinference/internal/TypeInference.qll | 48 ++++++++----------- 2 files changed, 20 insertions(+), 30 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index ad32c7810b8..1807ef60d46 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -112,7 +112,7 @@ private module Input2 implements InputSig2 { TypeMention getABaseTypeMention(Type t) { none() } - TypeMention getTypeParameterConstraint(TypeParameter tp) { + TypeMention getATypeParameterConstraint(TypeParameter tp) { result = tp.(TypeParamTypeParameter).getTypeParam().getTypeBoundList().getABound().getTypeRepr() or result = tp.(SelfTypeParameter).getTrait() diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 177e1440575..1bce43c436b 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -309,7 +309,7 @@ module Make1 Input1> { * ``` * the type parameter `T` has the constraint `IComparable`. */ - TypeMention getTypeParameterConstraint(TypeParameter tp); + TypeMention getATypeParameterConstraint(TypeParameter tp); /** * Holds if @@ -510,29 +510,6 @@ module Make1 Input1> { ) } - /** - * Holds if all the places where the same type parameter occurs in `tm` - * are equal in `app`. - * - * TODO: As of now this only checks equality at the root of the types - * instantiated for type parameters. So, for instance, `Pair, Vec>` - * is mistakenly considered an instantiation of `Pair`. - */ - pragma[nomagic] - private predicate typeParametersHaveEqualInstantiation( - App app, TypeAbstraction abs, TypeMention tm - ) { - // We only need to check equality if the concrete types are satisfied. - satisfiesConcreteTypes(app, abs, tm) and - ( - not exists(getNthTypeParameter(abs, _)) - or - exists(int n | n = max(int i | exists(getNthTypeParameter(abs, i))) | - typeParametersHaveEqualInstantiationFromIndex(app, abs, tm, n) - ) - ) - } - /** * Holds if `app` is a possible instantiation of `tm`. That is, by making * appropriate substitutions for the free type parameters in `tm` given by @@ -546,8 +523,21 @@ module Make1 Input1> { * - `Pair` is _not_ an instantiation of `Pair` */ predicate isInstantiationOf(App app, TypeAbstraction abs, TypeMention tm) { - // `typeParametersHaveEqualInstantiation` suffices as it implies `satisfiesConcreteTypes`. - typeParametersHaveEqualInstantiation(app, abs, tm) + // We only need to check equality if the concrete types are satisfied. + satisfiesConcreteTypes(app, abs, tm) and + // Check if all the places where the same type parameter occurs in `tm` + // are equal in `app`. + // + // TODO: As of now this only checks equality at the root of the types + // instantiated for type parameters. So, for instance, `Pair, Vec>` + // is mistakenly considered an instantiation of `Pair`. + ( + not exists(getNthTypeParameter(abs, _)) + or + exists(int n | n = max(int i | exists(getNthTypeParameter(abs, i))) | + typeParametersHaveEqualInstantiationFromIndex(app, abs, tm, n) + ) + ) } } @@ -599,8 +589,8 @@ module Make1 Input1> { } /** - * The type mention `condition` satisfies `constraint` with the type `t` - * at the path `path`. + * Holds if the type mention `condition` satisfies `constraint` with the + * type `t` at the path `path`. */ predicate conditionSatisfiesConstraintTypeAt( TypeAbstraction abs, TypeMention condition, TypeMention constraint, TypePath path, Type t @@ -1207,7 +1197,7 @@ module Make1 Input1> { tp1 != tp2 and tp1 = target.getDeclaredType(dpos, path1) and exists(TypeMention tm | - tm = getTypeParameterConstraint(tp1) and + tm = getATypeParameterConstraint(tp1) and tm.resolveTypeAt(path2) = tp2 and constraint = resolveTypeMentionRoot(tm) ) From 3fa4ea4da3bb616767f9e2c049253d6b505e8541 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 19 May 2025 21:31:18 +0200 Subject: [PATCH 491/656] Rust: Improve performance of type inference --- .../codeql/rust/internal/TypeInference.qll | 41 +++++++--- .../typeinference/internal/TypeInference.qll | 82 +++++++++++++------ 2 files changed, 88 insertions(+), 35 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 278d9ebc317..5ce64b52d68 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -213,13 +213,6 @@ private predicate typeEquality(AstNode n1, TypePath path1, AstNode n2, TypePath path1 = path2 ) or - n2 = - any(PrefixExpr pe | - pe.getOperatorName() = "*" and - pe.getExpr() = n1 and - path1 = TypePath::cons(TRefTypeParameter(), path2) - ) - or n1 = n2.(ParenExpr).getExpr() and path1 = path2 or @@ -239,12 +232,36 @@ private predicate typeEquality(AstNode n1, TypePath path1, AstNode n2, TypePath ) } +bindingset[path1] +private predicate typeEqualityLeft(AstNode n1, TypePath path1, AstNode n2, TypePath path2) { + typeEquality(n1, path1, n2, path2) + or + n2 = + any(PrefixExpr pe | + pe.getOperatorName() = "*" and + pe.getExpr() = n1 and + path1 = TypePath::consInverse(TRefTypeParameter(), path2) + ) +} + +bindingset[path2] +private predicate typeEqualityRight(AstNode n1, TypePath path1, AstNode n2, TypePath path2) { + typeEquality(n1, path1, n2, path2) + or + n2 = + any(PrefixExpr pe | + pe.getOperatorName() = "*" and + pe.getExpr() = n1 and + path1 = TypePath::cons(TRefTypeParameter(), path2) + ) +} + pragma[nomagic] private Type inferTypeEquality(AstNode n, TypePath path) { exists(AstNode n2, TypePath path2 | result = inferType(n2, path2) | - typeEquality(n, path, n2, path2) + typeEqualityRight(n, path, n2, path2) or - typeEquality(n2, path2, n, path) + typeEqualityLeft(n2, path2, n, path) ) } @@ -909,7 +926,7 @@ private Type inferRefExprType(Expr e, TypePath path) { e = re.getExpr() and exists(TypePath exprPath, TypePath refPath, Type exprType | result = inferType(re, exprPath) and - exprPath = TypePath::cons(TRefTypeParameter(), refPath) and + exprPath = TypePath::consInverse(TRefTypeParameter(), refPath) and exprType = inferType(e) | if exprType = TRefType() @@ -924,7 +941,7 @@ private Type inferRefExprType(Expr e, TypePath path) { pragma[nomagic] private Type inferTryExprType(TryExpr te, TypePath path) { exists(TypeParam tp | - result = inferType(te.getExpr(), TypePath::cons(TTypeParamTypeParameter(tp), path)) + result = inferType(te.getExpr(), TypePath::consInverse(TTypeParamTypeParameter(tp), path)) | tp = any(ResultEnum r).getGenericParamList().getGenericParam(0) or @@ -1000,7 +1017,7 @@ private module Cached { pragma[nomagic] Type getTypeAt(TypePath path) { exists(TypePath path0 | result = inferType(this, path0) | - path0 = TypePath::cons(TRefTypeParameter(), path) + path0 = TypePath::consInverse(TRefTypeParameter(), path) or not path0.isCons(TRefTypeParameter(), _) and not (path0.isEmpty() and result = TRefType()) and diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 1bce43c436b..fa475be575f 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -181,18 +181,29 @@ module Make1 Input1> { /** Holds if this type path is empty. */ predicate isEmpty() { this = "" } + /** Gets the length of this path, assuming the length is at least 2. */ + bindingset[this] + pragma[inline_late] + private int length2() { + // Same as + // `result = strictcount(this.indexOf(".")) + 1` + // but performs better because it doesn't use an aggregate + result = this.regexpReplaceAll("[0-9]+", "").length() + 1 + } + /** Gets the length of this path. */ bindingset[this] pragma[inline_late] int length() { - this.isEmpty() and result = 0 - or - result = strictcount(this.indexOf(".")) + 1 + if this.isEmpty() + then result = 0 + else + if exists(TypeParameter::decode(this)) + then result = 1 + else result = this.length2() } /** Gets the path obtained by appending `suffix` onto this path. */ - bindingset[suffix, result] - bindingset[this, result] bindingset[this, suffix] TypePath append(TypePath suffix) { if this.isEmpty() @@ -202,22 +213,37 @@ module Make1 Input1> { then result = this else ( result = this + "." + suffix and - not result.length() > getTypePathLimit() + ( + not exists(getTypePathLimit()) + or + result.length2() <= getTypePathLimit() + ) + ) + } + + /** + * Gets the path obtained by appending `suffix` onto this path. + * + * Unlike `append`, this predicate has `result` in the binding set, + * so there is no need to check the length of `result`. + */ + bindingset[this, result] + TypePath appendInverse(TypePath suffix) { + if result.isEmpty() + then this.isEmpty() and suffix.isEmpty() + else + if this.isEmpty() + then suffix = result + else ( + result = this and suffix.isEmpty() + or + result = this + "." + suffix ) } /** Holds if this path starts with `tp`, followed by `suffix`. */ bindingset[this] - predicate isCons(TypeParameter tp, TypePath suffix) { - tp = TypeParameter::decode(this) and - suffix.isEmpty() - or - exists(int first | - first = min(this.indexOf(".")) and - suffix = this.suffix(first + 1) and - tp = TypeParameter::decode(this.prefix(first)) - ) - } + predicate isCons(TypeParameter tp, TypePath suffix) { this = TypePath::consInverse(tp, suffix) } } /** Provides predicates for constructing `TypePath`s. */ @@ -232,9 +258,17 @@ module Make1 Input1> { * Gets the type path obtained by appending the singleton type path `tp` * onto `suffix`. */ - bindingset[result] bindingset[suffix] TypePath cons(TypeParameter tp, TypePath suffix) { result = singleton(tp).append(suffix) } + + /** + * Gets the type path obtained by appending the singleton type path `tp` + * onto `suffix`. + */ + bindingset[result] + TypePath consInverse(TypeParameter tp, TypePath suffix) { + result = singleton(tp).appendInverse(suffix) + } } /** @@ -556,7 +590,7 @@ module Make1 Input1> { TypeMention tm1, TypeMention tm2, TypeParameter tp, TypePath path, Type t ) { exists(TypePath prefix | - tm2.resolveTypeAt(prefix) = tp and t = tm1.resolveTypeAt(prefix.append(path)) + tm2.resolveTypeAt(prefix) = tp and t = tm1.resolveTypeAt(prefix.appendInverse(path)) ) } @@ -899,7 +933,7 @@ module Make1 Input1> { exists(AccessPosition apos, DeclarationPosition dpos, TypePath pathToTypeParam | tp = target.getDeclaredType(dpos, pathToTypeParam) and accessDeclarationPositionMatch(apos, dpos) and - adjustedAccessType(a, apos, target, pathToTypeParam.append(path), t) + adjustedAccessType(a, apos, target, pathToTypeParam.appendInverse(path), t) ) } @@ -998,7 +1032,9 @@ module Make1 Input1> { RelevantAccess() { this = MkRelevantAccess(a, apos, path) } - Type getTypeAt(TypePath suffix) { a.getInferredType(apos, path.append(suffix)) = result } + Type getTypeAt(TypePath suffix) { + a.getInferredType(apos, path.appendInverse(suffix)) = result + } /** Holds if this relevant access has the type `type` and should satisfy `constraint`. */ predicate hasTypeConstraint(Type type, Type constraint) { @@ -1077,7 +1113,7 @@ module Make1 Input1> { t0 = abs.getATypeParameter() and exists(TypePath path3, TypePath suffix | sub.resolveTypeAt(path3) = t0 and - at.getTypeAt(path3.append(suffix)) = t and + at.getTypeAt(path3.appendInverse(suffix)) = t and path = prefix0.append(suffix) ) ) @@ -1149,7 +1185,7 @@ module Make1 Input1> { not exists(getTypeArgument(a, target, tp, _)) and target = a.getTarget() and exists(AccessPosition apos, DeclarationPosition dpos, Type base, TypePath pathToTypeParam | - accessBaseType(a, apos, base, pathToTypeParam.append(path), t) and + accessBaseType(a, apos, base, pathToTypeParam.appendInverse(path), t) and declarationBaseType(target, dpos, base, pathToTypeParam, tp) and accessDeclarationPositionMatch(apos, dpos) ) @@ -1217,7 +1253,7 @@ module Make1 Input1> { typeParameterConstraintHasTypeParameter(target, dpos, pathToTp2, _, constraint, pathToTp, tp) and AccessConstraint::satisfiesConstraintTypeMention(a, apos, pathToTp2, constraint, - pathToTp.append(path), t) + pathToTp.appendInverse(path), t) ) } From bc4b69bb93936c646a47d76e33f0415c844c8184 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 10:05:30 +0100 Subject: [PATCH 492/656] Rust: Add ComparisonOperation library. --- .../rust/elements/ComparisonOperation.qll | 66 +++++++++++++++++++ rust/ql/lib/rust.qll | 1 + .../library-tests/operations/Operations.ql | 18 +++++ rust/ql/test/library-tests/operations/test.rs | 12 ++-- 4 files changed, 91 insertions(+), 6 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll diff --git a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll new file mode 100644 index 00000000000..e37c5db5987 --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll @@ -0,0 +1,66 @@ +private import codeql.rust.elements.Expr +private import codeql.rust.elements.BinaryExpr +private import codeql.rust.elements.Operation + +/** + * A comparison operation, such as `==`, `<` or `>=`. + */ +abstract private class ComparisonOperationImpl extends Operation { } + +final class ComparisonOperation = ComparisonOperationImpl; + +/** + * An equality comparison operation, `==` or `!=`. + */ +abstract private class EqualityOperationImpl extends BinaryExpr, ComparisonOperationImpl { } + +final class EqualityOperation = EqualityOperationImpl; + +/** + * The equal comparison operation, `==`. + */ +final class EqualOperation extends EqualityOperationImpl, BinaryExpr { + EqualOperation() { this.getOperatorName() = "==" } +} + +/** + * The not equal comparison operation, `!=`. + */ +final class NotEqualOperation extends EqualityOperationImpl { + NotEqualOperation() { this.getOperatorName() = "!=" } +} + +/** + * A relational comparison operation, that is, one of `<=`, `<`, `>`, or `>=`. + */ +abstract private class RelationalOperationImpl extends BinaryExpr, ComparisonOperationImpl { } + +final class RelationalOperation = RelationalOperationImpl; + +/** + * The less than comparison operation, `<`. + */ +final class LessThanOperation extends RelationalOperationImpl, BinaryExpr { + LessThanOperation() { this.getOperatorName() = "<" } +} + +/** + * The greater than comparison operation, `>?`. + */ +final class GreaterThanOperation extends RelationalOperationImpl, BinaryExpr { + GreaterThanOperation() { this.getOperatorName() = ">" } +} + +/** + * The less than or equal comparison operation, `<=`. + */ +final class LessOrEqualOperation extends RelationalOperationImpl, BinaryExpr { + LessOrEqualOperation() { this.getOperatorName() = "<=" } +} + +/** + * The less than or equal comparison operation, `>=`. + */ +final class GreaterOrEqualOperation extends RelationalOperationImpl, BinaryExpr { + GreaterOrEqualOperation() { this.getOperatorName() = ">=" } +} diff --git a/rust/ql/lib/rust.qll b/rust/ql/lib/rust.qll index 7b97f68469c..4a533b34bad 100644 --- a/rust/ql/lib/rust.qll +++ b/rust/ql/lib/rust.qll @@ -5,6 +5,7 @@ import codeql.Locations import codeql.files.FileSystem import codeql.rust.elements.Operation import codeql.rust.elements.AssignmentOperation +import codeql.rust.elements.ComparisonOperation import codeql.rust.elements.LiteralExprExt import codeql.rust.elements.LogicalOperation import codeql.rust.elements.AsyncBlockExpr diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql index cbb81bdcb02..39b4279ddd6 100644 --- a/rust/ql/test/library-tests/operations/Operations.ql +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -13,6 +13,24 @@ string describe(Expr op) { op instanceof LogicalOperation and result = "LogicalOperation" or op instanceof RefExpr and result = "RefExpr" + or + op instanceof ComparisonOperation and result = "ComparisonOperation" + or + op instanceof EqualityOperation and result = "EqualityOperation" + or + op instanceof EqualOperation and result = "EqualOperation" + or + op instanceof NotEqualOperation and result = "NotEqualOperation" + or + op instanceof RelationalOperation and result = "RelationalOperation" + or + op instanceof LessThanOperation and result = "LessThanOperation" + or + op instanceof GreaterThanOperation and result = "GreaterThanOperation" + or + op instanceof LessOrEqualOperation and result = "LessOrEqualOperation" + or + op instanceof GreaterOrEqualOperation and result = "GreaterOrEqualOperation" } module OperationsTest implements TestSig { diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs index f82a9501fef..8b7e6764b53 100644 --- a/rust/ql/test/library-tests/operations/test.rs +++ b/rust/ql/test/library-tests/operations/test.rs @@ -11,12 +11,12 @@ fn test_operations( x = y; // $ Operation Op== Operands=2 AssignmentOperation BinaryExpr // comparison operations - x == y; // $ Operation Op=== Operands=2 BinaryExpr - x != y; // $ Operation Op=!= Operands=2 BinaryExpr - x < y; // $ Operation Op=< Operands=2 BinaryExpr - x <= y; // $ Operation Op=<= Operands=2 BinaryExpr - x > y; // $ Operation Op=> Operands=2 BinaryExpr - x >= y; // $ Operation Op=>= Operands=2 BinaryExpr + x == y; // $ Operation Op=== Operands=2 BinaryExpr ComparisonOperation EqualityOperation EqualOperation + x != y; // $ Operation Op=!= Operands=2 BinaryExpr ComparisonOperation EqualityOperation NotEqualOperation + x < y; // $ Operation Op=< Operands=2 BinaryExpr ComparisonOperation RelationalOperation LessThanOperation + x <= y; // $ Operation Op=<= Operands=2 BinaryExpr ComparisonOperation RelationalOperation LessOrEqualOperation + x > y; // $ Operation Op=> Operands=2 BinaryExpr ComparisonOperation RelationalOperation GreaterThanOperation + x >= y; // $ Operation Op=>= Operands=2 BinaryExpr ComparisonOperation RelationalOperation GreaterOrEqualOperation // arithmetic operations x + y; // $ Operation Op=+ Operands=2 BinaryExpr From ca1437adf19e8ded15b8ea5e40cf5efac324ceb9 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 10:14:11 +0100 Subject: [PATCH 493/656] Rust: Move the getGreaterOperand/getLesserOperand predicates into RelationalOperation. --- .../rust/elements/ComparisonOperation.qll | 36 +++++++++++++++++-- .../UncontrolledAllocationSizeExtensions.qll | 32 ++--------------- .../library-tests/operations/Operations.ql | 12 ++++++- rust/ql/test/library-tests/operations/test.rs | 8 ++--- 4 files changed, 51 insertions(+), 37 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll index e37c5db5987..002e011c2f0 100644 --- a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll @@ -33,7 +33,23 @@ final class NotEqualOperation extends EqualityOperationImpl { /** * A relational comparison operation, that is, one of `<=`, `<`, `>`, or `>=`. */ -abstract private class RelationalOperationImpl extends BinaryExpr, ComparisonOperationImpl { } +abstract private class RelationalOperationImpl extends BinaryExpr, ComparisonOperationImpl { + /** + * Gets the operand on the "greater" (or "greater-or-equal") side + * of this relational expression, that is, the side that is larger + * if the overall expression evaluates to `true`; for example on + * `x <= 20` this is the `20`, and on `y > 0` it is `y`. + */ + abstract Expr getGreaterOperand(); + + /** + * Gets the operand on the "lesser" (or "lesser-or-equal") side + * of this relational expression, that is, the side that is smaller + * if the overall expression evaluates to `true`; for example on + * `x <= 20` this is `x`, and on `y > 0` it is the `0`. + */ + abstract Expr getLesserOperand(); +} final class RelationalOperation = RelationalOperationImpl; @@ -42,13 +58,21 @@ final class RelationalOperation = RelationalOperationImpl; */ final class LessThanOperation extends RelationalOperationImpl, BinaryExpr { LessThanOperation() { this.getOperatorName() = "<" } + + override Expr getGreaterOperand() { result = this.getRhs() } + + override Expr getLesserOperand() { result = this.getLhs() } } /** - * The greater than comparison operation, `>?`. + * The greater than comparison operation, `>`. */ final class GreaterThanOperation extends RelationalOperationImpl, BinaryExpr { GreaterThanOperation() { this.getOperatorName() = ">" } + + override Expr getGreaterOperand() { result = this.getLhs() } + + override Expr getLesserOperand() { result = this.getRhs() } } /** @@ -56,6 +80,10 @@ final class GreaterThanOperation extends RelationalOperationImpl, BinaryExpr { */ final class LessOrEqualOperation extends RelationalOperationImpl, BinaryExpr { LessOrEqualOperation() { this.getOperatorName() = "<=" } + + override Expr getGreaterOperand() { result = this.getRhs() } + + override Expr getLesserOperand() { result = this.getLhs() } } /** @@ -63,4 +91,8 @@ final class LessOrEqualOperation extends RelationalOperationImpl, BinaryExpr { */ final class GreaterOrEqualOperation extends RelationalOperationImpl, BinaryExpr { GreaterOrEqualOperation() { this.getOperatorName() = ">=" } + + override Expr getGreaterOperand() { result = this.getLhs() } + + override Expr getLesserOperand() { result = this.getRhs() } } diff --git a/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll b/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll index b8ab16090d1..1a333a9f9e7 100644 --- a/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll @@ -43,44 +43,16 @@ module UncontrolledAllocationSize { } } - /** - * Gets the operand on the "greater" (or "greater-or-equal") side - * of this relational expression, that is, the side that is larger - * if the overall expression evaluates to `true`; for example on - * `x <= 20` this is the `20`, and on `y > 0` it is `y`. - */ - private Expr getGreaterOperand(BinaryExpr op) { - op.getOperatorName() = ["<", "<="] and - result = op.getRhs() - or - op.getOperatorName() = [">", ">="] and - result = op.getLhs() - } - - /** - * Gets the operand on the "lesser" (or "lesser-or-equal") side - * of this relational expression, that is, the side that is smaller - * if the overall expression evaluates to `true`; for example on - * `x <= 20` this is `x`, and on `y > 0` it is the `0`. - */ - private Expr getLesserOperand(BinaryExpr op) { - op.getOperatorName() = ["<", "<="] and - result = op.getLhs() - or - op.getOperatorName() = [">", ">="] and - result = op.getRhs() - } - /** * Holds if comparison `g` having result `branch` indicates an upper bound for the sub-expression * `node`. For example when the comparison `x < 10` is true, we have an upper bound for `x`. */ private predicate isUpperBoundCheck(CfgNodes::AstCfgNode g, Cfg::CfgNode node, boolean branch) { exists(BinaryExpr cmp | g = cmp.getACfgNode() | - node = getLesserOperand(cmp).getACfgNode() and + node = cmp.(RelationalOperation).getLesserOperand().getACfgNode() and branch = true or - node = getGreaterOperand(cmp).getACfgNode() and + node = cmp.(RelationalOperation).getGreaterOperand().getACfgNode() and branch = false or cmp.getOperatorName() = "==" and diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql index 39b4279ddd6..af7ecefb1c3 100644 --- a/rust/ql/test/library-tests/operations/Operations.ql +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -34,7 +34,9 @@ string describe(Expr op) { } module OperationsTest implements TestSig { - string getARelevantTag() { result = describe(_) or result = ["Op", "Operands"] } + string getARelevantTag() { + result = describe(_) or result = ["Op", "Operands", "Greater", "Lesser"] + } predicate hasActualResult(Location location, string element, string tag, string value) { exists(Expr op | @@ -51,6 +53,14 @@ module OperationsTest implements TestSig { op instanceof Operation and tag = "Operands" and value = count(op.(Operation).getAnOperand()).toString() + or + op instanceof RelationalOperation and + tag = "Greater" and + value = op.(RelationalOperation).getGreaterOperand().toString() + or + op instanceof RelationalOperation and + tag = "Lesser" and + value = op.(RelationalOperation).getLesserOperand().toString() ) ) } diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs index 8b7e6764b53..06c9bbe6db1 100644 --- a/rust/ql/test/library-tests/operations/test.rs +++ b/rust/ql/test/library-tests/operations/test.rs @@ -13,10 +13,10 @@ fn test_operations( // comparison operations x == y; // $ Operation Op=== Operands=2 BinaryExpr ComparisonOperation EqualityOperation EqualOperation x != y; // $ Operation Op=!= Operands=2 BinaryExpr ComparisonOperation EqualityOperation NotEqualOperation - x < y; // $ Operation Op=< Operands=2 BinaryExpr ComparisonOperation RelationalOperation LessThanOperation - x <= y; // $ Operation Op=<= Operands=2 BinaryExpr ComparisonOperation RelationalOperation LessOrEqualOperation - x > y; // $ Operation Op=> Operands=2 BinaryExpr ComparisonOperation RelationalOperation GreaterThanOperation - x >= y; // $ Operation Op=>= Operands=2 BinaryExpr ComparisonOperation RelationalOperation GreaterOrEqualOperation + x < y; // $ Operation Op=< Operands=2 BinaryExpr ComparisonOperation RelationalOperation LessThanOperation Greater=y Lesser=x + x <= y; // $ Operation Op=<= Operands=2 BinaryExpr ComparisonOperation RelationalOperation LessOrEqualOperation Greater=y Lesser=x + x > y; // $ Operation Op=> Operands=2 BinaryExpr ComparisonOperation RelationalOperation GreaterThanOperation Greater=x Lesser=y + x >= y; // $ Operation Op=>= Operands=2 BinaryExpr ComparisonOperation RelationalOperation GreaterOrEqualOperation Greater=x Lesser=y // arithmetic operations x + y; // $ Operation Op=+ Operands=2 BinaryExpr From 2b65eebbc8226bd927fca1ca3fde3b800f87eedf Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 10:32:50 +0100 Subject: [PATCH 494/656] Rust: QLDoc. --- rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll | 4 ++++ rust/ql/lib/codeql/rust/elements/LogicalOperation.qll | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll index 002e011c2f0..4c20b1d38de 100644 --- a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll @@ -1,3 +1,7 @@ +/** + * Provides classes for comparison operations. + */ + private import codeql.rust.elements.Expr private import codeql.rust.elements.BinaryExpr private import codeql.rust.elements.Operation diff --git a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll index eaf1ff06b7d..d0099be0b93 100644 --- a/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/LogicalOperation.qll @@ -1,3 +1,7 @@ +/** + * Provides classes for logical operations. + */ + private import codeql.rust.elements.Expr private import codeql.rust.elements.BinaryExpr private import codeql.rust.elements.PrefixExpr From 0feade467dc40cb34828023a9eb85ac3ff97e8d7 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 10:35:02 +0100 Subject: [PATCH 495/656] Update rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll index 4c20b1d38de..bdba5ad2c29 100644 --- a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll @@ -91,7 +91,7 @@ final class LessOrEqualOperation extends RelationalOperationImpl, BinaryExpr { } /** - * The less than or equal comparison operation, `>=`. + * The greater than or equal comparison operation, `>=`. */ final class GreaterOrEqualOperation extends RelationalOperationImpl, BinaryExpr { GreaterOrEqualOperation() { this.getOperatorName() = ">=" } From bd004abeae7b2f11b58b8da371caaa25ea771455 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 10:35:41 +0100 Subject: [PATCH 496/656] Rust: Remove redundant import. --- rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll | 1 - 1 file changed, 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll index bdba5ad2c29..253dd0d19ac 100644 --- a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll @@ -2,7 +2,6 @@ * Provides classes for comparison operations. */ -private import codeql.rust.elements.Expr private import codeql.rust.elements.BinaryExpr private import codeql.rust.elements.Operation From 204260e244aac11fbd336362dfd847ece70fd408 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 10:59:23 +0100 Subject: [PATCH 497/656] Rust: Uncomment calls to test functions. --- rust/ql/test/library-tests/dataflow/sources/test.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/test.rs b/rust/ql/test/library-tests/dataflow/sources/test.rs index e2cea47b95b..370f3d4c9b6 100644 --- a/rust/ql/test/library-tests/dataflow/sources/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/test.rs @@ -777,17 +777,17 @@ async fn main() -> Result<(), Box> { println!("test_env_vars..."); test_env_vars(); - /*println!("test_env_args..."); - test_env_args();*/ + println!("test_env_args..."); + test_env_args(); println!("test_env_dirs..."); test_env_dirs(); - /*println!("test_reqwest..."); + println!("test_reqwest..."); match futures::executor::block_on(test_reqwest()) { Ok(_) => println!("complete"), Err(e) => println!("error: {}", e), - }*/ + } println!("test_hyper_http..."); match futures::executor::block_on(test_hyper_http(case)) { @@ -795,7 +795,7 @@ async fn main() -> Result<(), Box> { Err(e) => println!("error: {}", e), } - /*println!("test_io_stdin..."); + println!("test_io_stdin..."); match test_io_stdin() { Ok(_) => println!("complete"), Err(e) => println!("error: {}", e), @@ -805,7 +805,7 @@ async fn main() -> Result<(), Box> { match futures::executor::block_on(test_tokio_stdin()) { Ok(_) => println!("complete"), Err(e) => println!("error: {}", e), - }*/ + } println!("test_fs..."); match test_fs() { From bfb15cd88f8f3cf463efbbc58ee6fc54fbfdb853 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 11:07:06 +0100 Subject: [PATCH 498/656] Rust: Accept changes to other tests. --- .../dataflow/local/DataFlowStep.expected | 3 + .../dataflow/local/inline-flow.expected | 55 +++++++++++-------- .../test/library-tests/dataflow/local/main.rs | 2 +- 3 files changed, 37 insertions(+), 23 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 98a2634346e..95ec1685202 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -1167,6 +1167,8 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_mut_ptr | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_mut_ptr | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ptr | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ptr | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::new | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::pin | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::pin | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_mut | @@ -1367,6 +1369,7 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::unwrap_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::unwrap_or_else | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::zip | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::new_unchecked | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::new_unchecked | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_err_and | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_err_and | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_ok_and | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_ok_and | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map | diff --git a/rust/ql/test/library-tests/dataflow/local/inline-flow.expected b/rust/ql/test/library-tests/dataflow/local/inline-flow.expected index 80469e0b399..cf3fd262c65 100644 --- a/rust/ql/test/library-tests/dataflow/local/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/local/inline-flow.expected @@ -1,14 +1,15 @@ models -| 1 | Summary: lang:core; <_ as crate::convert::From>::from; Argument[0]; ReturnValue; value | -| 2 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | -| 3 | Summary: lang:core; ::unwrap_or; Argument[0]; ReturnValue; value | -| 4 | Summary: lang:core; ::unwrap_or; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | -| 5 | Summary: lang:core; ::unwrap_or_else; Argument[0].ReturnValue; ReturnValue; value | -| 6 | Summary: lang:core; ::unwrap_or_else; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | -| 7 | Summary: lang:core; ::err; Argument[self].Field[crate::result::Result::Err(0)]; ReturnValue.Field[crate::option::Option::Some(0)]; value | -| 8 | Summary: lang:core; ::expect; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | -| 9 | Summary: lang:core; ::expect_err; Argument[self].Field[crate::result::Result::Err(0)]; ReturnValue; value | -| 10 | Summary: lang:core; ::ok; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue.Field[crate::option::Option::Some(0)]; value | +| 1 | Summary: lang:alloc; ::new; Argument[0]; ReturnValue.Reference; value | +| 2 | Summary: lang:core; <_ as crate::convert::From>::from; Argument[0]; ReturnValue; value | +| 3 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | +| 4 | Summary: lang:core; ::unwrap_or; Argument[0]; ReturnValue; value | +| 5 | Summary: lang:core; ::unwrap_or; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | +| 6 | Summary: lang:core; ::unwrap_or_else; Argument[0].ReturnValue; ReturnValue; value | +| 7 | Summary: lang:core; ::unwrap_or_else; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | +| 8 | Summary: lang:core; ::err; Argument[self].Field[crate::result::Result::Err(0)]; ReturnValue.Field[crate::option::Option::Some(0)]; value | +| 9 | Summary: lang:core; ::expect; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | +| 10 | Summary: lang:core; ::expect_err; Argument[self].Field[crate::result::Result::Err(0)]; ReturnValue; value | +| 11 | Summary: lang:core; ::ok; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue.Field[crate::option::Option::Some(0)]; value | edges | main.rs:22:9:22:9 | s | main.rs:23:10:23:10 | s | provenance | | | main.rs:22:13:22:21 | source(...) | main.rs:22:9:22:9 | s | provenance | | @@ -22,6 +23,10 @@ edges | main.rs:48:15:48:23 | source(...) | main.rs:47:9:47:9 | b | provenance | | | main.rs:56:5:56:5 | i | main.rs:57:10:57:10 | i | provenance | | | main.rs:56:9:56:17 | source(...) | main.rs:56:5:56:5 | i | provenance | | +| main.rs:89:9:89:9 | i [&ref] | main.rs:90:11:90:11 | i [&ref] | provenance | | +| main.rs:89:13:89:31 | ...::new(...) [&ref] | main.rs:89:9:89:9 | i [&ref] | provenance | | +| main.rs:89:22:89:30 | source(...) | main.rs:89:13:89:31 | ...::new(...) [&ref] | provenance | MaD:1 | +| main.rs:90:11:90:11 | i [&ref] | main.rs:90:10:90:11 | * ... | provenance | | | main.rs:97:9:97:9 | a [tuple.0] | main.rs:98:10:98:10 | a [tuple.0] | provenance | | | main.rs:97:13:97:26 | TupleExpr [tuple.0] | main.rs:97:9:97:9 | a [tuple.0] | provenance | | | main.rs:97:14:97:22 | source(...) | main.rs:97:13:97:26 | TupleExpr [tuple.0] | provenance | | @@ -95,32 +100,32 @@ edges | main.rs:229:11:229:12 | s1 [Some] | main.rs:230:9:230:15 | Some(...) [Some] | provenance | | | main.rs:230:9:230:15 | Some(...) [Some] | main.rs:230:14:230:14 | n | provenance | | | main.rs:230:14:230:14 | n | main.rs:230:25:230:25 | n | provenance | | -| main.rs:240:9:240:10 | s1 [Some] | main.rs:241:10:241:20 | s1.unwrap() | provenance | MaD:2 | +| main.rs:240:9:240:10 | s1 [Some] | main.rs:241:10:241:20 | s1.unwrap() | provenance | MaD:3 | | main.rs:240:14:240:29 | Some(...) [Some] | main.rs:240:9:240:10 | s1 [Some] | provenance | | | main.rs:240:19:240:28 | source(...) | main.rs:240:14:240:29 | Some(...) [Some] | provenance | | -| main.rs:245:9:245:10 | s1 [Some] | main.rs:246:10:246:24 | s1.unwrap_or(...) | provenance | MaD:4 | +| main.rs:245:9:245:10 | s1 [Some] | main.rs:246:10:246:24 | s1.unwrap_or(...) | provenance | MaD:5 | | main.rs:245:14:245:29 | Some(...) [Some] | main.rs:245:9:245:10 | s1 [Some] | provenance | | | main.rs:245:19:245:28 | source(...) | main.rs:245:14:245:29 | Some(...) [Some] | provenance | | -| main.rs:249:23:249:32 | source(...) | main.rs:249:10:249:33 | s2.unwrap_or(...) | provenance | MaD:3 | -| main.rs:253:9:253:10 | s1 [Some] | main.rs:254:10:254:32 | s1.unwrap_or_else(...) | provenance | MaD:6 | +| main.rs:249:23:249:32 | source(...) | main.rs:249:10:249:33 | s2.unwrap_or(...) | provenance | MaD:4 | +| main.rs:253:9:253:10 | s1 [Some] | main.rs:254:10:254:32 | s1.unwrap_or_else(...) | provenance | MaD:7 | | main.rs:253:14:253:29 | Some(...) [Some] | main.rs:253:9:253:10 | s1 [Some] | provenance | | | main.rs:253:19:253:28 | source(...) | main.rs:253:14:253:29 | Some(...) [Some] | provenance | | -| main.rs:257:31:257:40 | source(...) | main.rs:257:10:257:41 | s2.unwrap_or_else(...) | provenance | MaD:5 | +| main.rs:257:31:257:40 | source(...) | main.rs:257:10:257:41 | s2.unwrap_or_else(...) | provenance | MaD:6 | | main.rs:261:9:261:10 | s1 [Some] | main.rs:263:14:263:15 | s1 [Some] | provenance | | | main.rs:261:14:261:29 | Some(...) [Some] | main.rs:261:9:261:10 | s1 [Some] | provenance | | | main.rs:261:19:261:28 | source(...) | main.rs:261:14:261:29 | Some(...) [Some] | provenance | | | main.rs:263:9:263:10 | i1 | main.rs:264:10:264:11 | i1 | provenance | | | main.rs:263:14:263:15 | s1 [Some] | main.rs:263:14:263:16 | TryExpr | provenance | | | main.rs:263:14:263:16 | TryExpr | main.rs:263:9:263:10 | i1 | provenance | | -| main.rs:270:9:270:10 | r1 [Ok] | main.rs:271:29:271:35 | r1.ok() [Some] | provenance | MaD:10 | +| main.rs:270:9:270:10 | r1 [Ok] | main.rs:271:29:271:35 | r1.ok() [Some] | provenance | MaD:11 | | main.rs:270:33:270:46 | Ok(...) [Ok] | main.rs:270:9:270:10 | r1 [Ok] | provenance | | | main.rs:270:36:270:45 | source(...) | main.rs:270:33:270:46 | Ok(...) [Ok] | provenance | | -| main.rs:271:9:271:11 | o1a [Some] | main.rs:273:10:273:21 | o1a.unwrap() | provenance | MaD:2 | +| main.rs:271:9:271:11 | o1a [Some] | main.rs:273:10:273:21 | o1a.unwrap() | provenance | MaD:3 | | main.rs:271:29:271:35 | r1.ok() [Some] | main.rs:271:9:271:11 | o1a [Some] | provenance | | -| main.rs:276:9:276:10 | r2 [Err] | main.rs:278:29:278:36 | r2.err() [Some] | provenance | MaD:7 | +| main.rs:276:9:276:10 | r2 [Err] | main.rs:278:29:278:36 | r2.err() [Some] | provenance | MaD:8 | | main.rs:276:33:276:47 | Err(...) [Err] | main.rs:276:9:276:10 | r2 [Err] | provenance | | | main.rs:276:37:276:46 | source(...) | main.rs:276:33:276:47 | Err(...) [Err] | provenance | | -| main.rs:278:9:278:11 | o2b [Some] | main.rs:280:10:280:21 | o2b.unwrap() | provenance | MaD:2 | +| main.rs:278:9:278:11 | o2b [Some] | main.rs:280:10:280:21 | o2b.unwrap() | provenance | MaD:3 | | main.rs:278:29:278:36 | r2.err() [Some] | main.rs:278:9:278:11 | o2b [Some] | provenance | | | main.rs:284:9:284:10 | s1 [Ok] | main.rs:287:14:287:15 | s1 [Ok] | provenance | | | main.rs:284:32:284:45 | Ok(...) [Ok] | main.rs:284:9:284:10 | s1 [Ok] | provenance | | @@ -128,10 +133,10 @@ edges | main.rs:287:9:287:10 | i1 | main.rs:289:10:289:11 | i1 | provenance | | | main.rs:287:14:287:15 | s1 [Ok] | main.rs:287:14:287:16 | TryExpr | provenance | | | main.rs:287:14:287:16 | TryExpr | main.rs:287:9:287:10 | i1 | provenance | | -| main.rs:297:9:297:10 | s1 [Ok] | main.rs:298:10:298:22 | s1.expect(...) | provenance | MaD:8 | +| main.rs:297:9:297:10 | s1 [Ok] | main.rs:298:10:298:22 | s1.expect(...) | provenance | MaD:9 | | main.rs:297:32:297:45 | Ok(...) [Ok] | main.rs:297:9:297:10 | s1 [Ok] | provenance | | | main.rs:297:35:297:44 | source(...) | main.rs:297:32:297:45 | Ok(...) [Ok] | provenance | | -| main.rs:301:9:301:10 | s2 [Err] | main.rs:303:10:303:26 | s2.expect_err(...) | provenance | MaD:9 | +| main.rs:301:9:301:10 | s2 [Err] | main.rs:303:10:303:26 | s2.expect_err(...) | provenance | MaD:10 | | main.rs:301:32:301:46 | Err(...) [Err] | main.rs:301:9:301:10 | s2 [Err] | provenance | | | main.rs:301:36:301:45 | source(...) | main.rs:301:32:301:46 | Err(...) [Err] | provenance | | | main.rs:312:9:312:10 | s1 [A] | main.rs:314:11:314:12 | s1 [A] | provenance | | @@ -233,7 +238,7 @@ edges | main.rs:524:11:524:15 | c_ref [&ref] | main.rs:524:10:524:15 | * ... | provenance | | | main.rs:528:9:528:9 | a | main.rs:532:20:532:20 | a | provenance | | | main.rs:528:18:528:27 | source(...) | main.rs:528:9:528:9 | a | provenance | | -| main.rs:532:20:532:20 | a | main.rs:532:10:532:21 | ...::from(...) | provenance | MaD:1 | +| main.rs:532:20:532:20 | a | main.rs:532:10:532:21 | ...::from(...) | provenance | MaD:2 | nodes | main.rs:18:10:18:18 | source(...) | semmle.label | source(...) | | main.rs:22:9:22:9 | s | semmle.label | s | @@ -253,6 +258,11 @@ nodes | main.rs:56:5:56:5 | i | semmle.label | i | | main.rs:56:9:56:17 | source(...) | semmle.label | source(...) | | main.rs:57:10:57:10 | i | semmle.label | i | +| main.rs:89:9:89:9 | i [&ref] | semmle.label | i [&ref] | +| main.rs:89:13:89:31 | ...::new(...) [&ref] | semmle.label | ...::new(...) [&ref] | +| main.rs:89:22:89:30 | source(...) | semmle.label | source(...) | +| main.rs:90:10:90:11 | * ... | semmle.label | * ... | +| main.rs:90:11:90:11 | i [&ref] | semmle.label | i [&ref] | | main.rs:97:9:97:9 | a [tuple.0] | semmle.label | a [tuple.0] | | main.rs:97:13:97:26 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | | main.rs:97:14:97:22 | source(...) | semmle.label | source(...) | @@ -514,6 +524,7 @@ testFailures | main.rs:39:10:39:10 | b | main.rs:34:13:34:21 | source(...) | main.rs:39:10:39:10 | b | $@ | main.rs:34:13:34:21 | source(...) | source(...) | | main.rs:50:10:50:10 | b | main.rs:48:15:48:23 | source(...) | main.rs:50:10:50:10 | b | $@ | main.rs:48:15:48:23 | source(...) | source(...) | | main.rs:57:10:57:10 | i | main.rs:56:9:56:17 | source(...) | main.rs:57:10:57:10 | i | $@ | main.rs:56:9:56:17 | source(...) | source(...) | +| main.rs:90:10:90:11 | * ... | main.rs:89:22:89:30 | source(...) | main.rs:90:10:90:11 | * ... | $@ | main.rs:89:22:89:30 | source(...) | source(...) | | main.rs:98:10:98:12 | a.0 | main.rs:97:14:97:22 | source(...) | main.rs:98:10:98:12 | a.0 | $@ | main.rs:97:14:97:22 | source(...) | source(...) | | main.rs:106:10:106:11 | a1 | main.rs:103:17:103:26 | source(...) | main.rs:106:10:106:11 | a1 | $@ | main.rs:103:17:103:26 | source(...) | source(...) | | main.rs:113:10:113:12 | a.1 | main.rs:111:21:111:30 | source(...) | main.rs:113:10:113:12 | a.1 | $@ | main.rs:111:21:111:30 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/local/main.rs b/rust/ql/test/library-tests/dataflow/local/main.rs index 1d91135a31d..4323f58c880 100644 --- a/rust/ql/test/library-tests/dataflow/local/main.rs +++ b/rust/ql/test/library-tests/dataflow/local/main.rs @@ -87,7 +87,7 @@ fn block_expression3(b: bool) -> i64 { fn box_deref() { let i = Box::new(source(7)); - sink(*i); // $ MISSING: hasValueFlow=7 + sink(*i); // $ hasValueFlow=7 } // ----------------------------------------------------------------------------- From 72730368f6a8d0014cab70011fd453bd5f85e4af Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Tue, 20 May 2025 11:39:43 +0200 Subject: [PATCH 499/656] Update SDK version in integration test --- .../blazor_build_mode_none/BlazorTest/global.json | 2 +- .../all-platforms/blazor_build_mode_none/XSS.expected | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json index 7a0e39d71fa..548d37935ed 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json +++ b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.100" + "version": "9.0.300" } } \ No newline at end of file diff --git a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/XSS.expected b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/XSS.expected index 64ab3e186a1..f20ca29ee85 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/XSS.expected +++ b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/XSS.expected @@ -3,8 +3,8 @@ | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | $@ flows to here and is written to HTML or JavaScript. | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | User-provided value | | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | $@ flows to here and is written to HTML or JavaScript. | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | User-provided value | edges -| BlazorTest/Components/Pages/TestPage.razor:85:23:85:32 | access to property QueryParam : String | test-db/working/razor/AC613014E59A413B9538FF8068364499/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:569:16:577:13 | call to method TypeCheck : String | provenance | Src:MaD:2 MaD:3 | -| test-db/working/razor/AC613014E59A413B9538FF8068364499/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:569:16:577:13 | call to method TypeCheck : String | BlazorTest/Components/MyOutput.razor:5:53:5:57 | access to property Value | provenance | Sink:MaD:1 | +| BlazorTest/Components/Pages/TestPage.razor:85:23:85:32 | access to property QueryParam : String | test-db/working/razor/AC613014E59A413B9538FF8068364499/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | provenance | Src:MaD:2 MaD:3 | +| test-db/working/razor/AC613014E59A413B9538FF8068364499/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | BlazorTest/Components/MyOutput.razor:5:53:5:57 | access to property Value | provenance | Sink:MaD:1 | models | 1 | Sink: Microsoft.AspNetCore.Components; MarkupString; false; MarkupString; (System.String); ; Argument[0]; html-injection; manual | | 2 | Source: Microsoft.AspNetCore.Components; SupplyParameterFromQueryAttribute; false; ; ; Attribute.Getter; ReturnValue; remote; manual | @@ -14,5 +14,5 @@ nodes | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | semmle.label | access to property UrlParam | | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | semmle.label | access to property QueryParam | | BlazorTest/Components/Pages/TestPage.razor:85:23:85:32 | access to property QueryParam : String | semmle.label | access to property QueryParam : String | -| test-db/working/razor/AC613014E59A413B9538FF8068364499/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:569:16:577:13 | call to method TypeCheck : String | semmle.label | call to method TypeCheck : String | +| test-db/working/razor/AC613014E59A413B9538FF8068364499/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | semmle.label | call to method TypeCheck : String | subpaths From 14af9218b20cded64daf6eaff57f11af1d2abf9f Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 14 May 2025 11:00:50 +0100 Subject: [PATCH 500/656] Check more things while running tests --- go/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/Makefile b/go/Makefile index 5bf6d70e0e6..44e943e76db 100644 --- a/go/Makefile +++ b/go/Makefile @@ -54,7 +54,7 @@ ql/lib/go.dbscheme.stats: ql/lib/go.dbscheme build/stats/src.stamp extractor codeql dataset measure -o $@ build/stats/database/db-go test: all build/testdb/check-upgrade-path - codeql test run -j0 ql/test --search-path .. --consistency-queries ql/test/consistency --compilation-cache=$(cache) --dynamic-join-order-mode=$(rtjo) + codeql test run -j0 ql/test --search-path .. --consistency-queries ql/test/consistency --compilation-cache=$(cache) --dynamic-join-order-mode=$(rtjo) --check-databases --fail-on-trap-errors --check-undefined-labels --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition # use GOOS=linux because GOOS=darwin GOARCH=386 is no longer supported env GOOS=linux GOARCH=386 codeql$(EXE) test run -j0 ql/test/query-tests/Security/CWE-681 --search-path .. --consistency-queries ql/test/consistency --compilation-cache=$(cache) --dynamic-join-order-mode=$(rtjo) cd extractor; $(BAZEL) test ... From d39e7c2066eaa62dcff6657bee4632261e03ff63 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 15 May 2025 11:26:47 +0100 Subject: [PATCH 501/656] Added named import to definitions test This makes the test slightly more thorough. --- go/ql/test/query-tests/definitions/definitions.expected | 1 + go/ql/test/query-tests/definitions/greet.go | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go/ql/test/query-tests/definitions/definitions.expected b/go/ql/test/query-tests/definitions/definitions.expected index 3c10cc9afbc..a06fb63ff39 100644 --- a/go/ql/test/query-tests/definitions/definitions.expected +++ b/go/ql/test/query-tests/definitions/definitions.expected @@ -1,3 +1,4 @@ +| greet.go:6:2:6:6 | myfmt | greet.go:3:8:3:12 | myfmt | V | | main.go:6:26:6:28 | who | main.go:5:12:5:14 | who | V | | main.go:11:2:11:6 | greet | main.go:5:6:5:10 | greet | V | | main.go:11:8:11:12 | world | main.go:10:2:10:6 | world | V | diff --git a/go/ql/test/query-tests/definitions/greet.go b/go/ql/test/query-tests/definitions/greet.go index 064e43a2ca9..4067a5896be 100644 --- a/go/ql/test/query-tests/definitions/greet.go +++ b/go/ql/test/query-tests/definitions/greet.go @@ -1,7 +1,7 @@ package main -import "fmt" +import myfmt "fmt" func greet2() { - fmt.Println("Hello world!") + myfmt.Println("Hello world!") } From 401c60654eabc92262119847e4b3bc88786f2f34 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 15 May 2025 13:40:57 +0100 Subject: [PATCH 502/656] Fix nil checks to stop creating unused labels In go, an interface with value nil does not compare equal to nil. This is known as "typed nils". So our existing nil checks weren't working, which shows why we needed more nil checks inside the type switches. The solution is to explicitly check for each type we care about. --- go/extractor/extractor.go | 147 ++++++-------------------------------- 1 file changed, 22 insertions(+), 125 deletions(-) diff --git a/go/extractor/extractor.go b/go/extractor/extractor.go index c4544390753..1456dd3a899 100644 --- a/go/extractor/extractor.go +++ b/go/extractor/extractor.go @@ -936,7 +936,16 @@ func emitScopeNodeInfo(tw *trap.Writer, nd ast.Node, lbl trap.Label) { // extractExpr extracts AST information for the given expression and all its subexpressions func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, skipExtractingValue bool) { - if expr == nil { + if expr == nil || expr == (*ast.Ident)(nil) || expr == (*ast.BasicLit)(nil) || + expr == (*ast.Ellipsis)(nil) || expr == (*ast.FuncLit)(nil) || + expr == (*ast.CompositeLit)(nil) || expr == (*ast.SelectorExpr)(nil) || + expr == (*ast.IndexListExpr)(nil) || expr == (*ast.SliceExpr)(nil) || + expr == (*ast.TypeAssertExpr)(nil) || expr == (*ast.CallExpr)(nil) || + expr == (*ast.StarExpr)(nil) || expr == (*ast.KeyValueExpr)(nil) || + expr == (*ast.UnaryExpr)(nil) || expr == (*ast.BinaryExpr)(nil) || + expr == (*ast.ArrayType)(nil) || expr == (*ast.StructType)(nil) || + expr == (*ast.FuncType)(nil) || expr == (*ast.InterfaceType)(nil) || + expr == (*ast.MapType)(nil) || expr == (*ast.ChanType)(nil) { return } @@ -948,9 +957,6 @@ func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, ski case *ast.BadExpr: kind = dbscheme.BadExpr.Index() case *ast.Ident: - if expr == nil { - return - } kind = dbscheme.IdentExpr.Index() dbscheme.LiteralsTable.Emit(tw, lbl, expr.Name, expr.Name) def := tw.Package.TypesInfo.Defs[expr] @@ -984,15 +990,9 @@ func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, ski } } case *ast.Ellipsis: - if expr == nil { - return - } kind = dbscheme.EllipsisExpr.Index() extractExpr(tw, expr.Elt, lbl, 0, false) case *ast.BasicLit: - if expr == nil { - return - } value := "" switch expr.Kind { case token.INT: @@ -1016,36 +1016,21 @@ func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, ski } dbscheme.LiteralsTable.Emit(tw, lbl, value, expr.Value) case *ast.FuncLit: - if expr == nil { - return - } kind = dbscheme.FuncLitExpr.Index() extractExpr(tw, expr.Type, lbl, 0, false) extractStmt(tw, expr.Body, lbl, 1) case *ast.CompositeLit: - if expr == nil { - return - } kind = dbscheme.CompositeLitExpr.Index() extractExpr(tw, expr.Type, lbl, 0, false) extractExprs(tw, expr.Elts, lbl, 1, 1) case *ast.ParenExpr: - if expr == nil { - return - } kind = dbscheme.ParenExpr.Index() extractExpr(tw, expr.X, lbl, 0, false) case *ast.SelectorExpr: - if expr == nil { - return - } kind = dbscheme.SelectorExpr.Index() extractExpr(tw, expr.X, lbl, 0, false) extractExpr(tw, expr.Sel, lbl, 1, false) case *ast.IndexExpr: - if expr == nil { - return - } typeofx := typeOf(tw, expr.X) if typeofx == nil { // We are missing type information for `expr.X`, so we cannot @@ -1065,9 +1050,6 @@ func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, ski extractExpr(tw, expr.X, lbl, 0, false) extractExpr(tw, expr.Index, lbl, 1, false) case *ast.IndexListExpr: - if expr == nil { - return - } typeofx := typeOf(tw, expr.X) if typeofx == nil { // We are missing type information for `expr.X`, so we cannot @@ -1084,18 +1066,12 @@ func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, ski extractExpr(tw, expr.X, lbl, 0, false) extractExprs(tw, expr.Indices, lbl, 1, 1) case *ast.SliceExpr: - if expr == nil { - return - } kind = dbscheme.SliceExpr.Index() extractExpr(tw, expr.X, lbl, 0, false) extractExpr(tw, expr.Low, lbl, 1, false) extractExpr(tw, expr.High, lbl, 2, false) extractExpr(tw, expr.Max, lbl, 3, false) case *ast.TypeAssertExpr: - if expr == nil { - return - } kind = dbscheme.TypeAssertExpr.Index() extractExpr(tw, expr.X, lbl, 0, false) // expr.Type can be `nil` if this is the `x.(type)` in a type switch. @@ -1103,9 +1079,6 @@ func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, ski extractExpr(tw, expr.Type, lbl, 1, false) } case *ast.CallExpr: - if expr == nil { - return - } kind = dbscheme.CallOrConversionExpr.Index() extractExpr(tw, expr.Fun, lbl, 0, false) extractExprs(tw, expr.Args, lbl, 1, 1) @@ -1113,22 +1086,13 @@ func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, ski dbscheme.HasEllipsisTable.Emit(tw, lbl) } case *ast.StarExpr: - if expr == nil { - return - } kind = dbscheme.StarExpr.Index() extractExpr(tw, expr.X, lbl, 0, false) case *ast.KeyValueExpr: - if expr == nil { - return - } kind = dbscheme.KeyValueExpr.Index() extractExpr(tw, expr.Key, lbl, 0, false) extractExpr(tw, expr.Value, lbl, 1, false) case *ast.UnaryExpr: - if expr == nil { - return - } if expr.Op == token.TILDE { kind = dbscheme.TypeSetLiteralExpr.Index() } else { @@ -1140,9 +1104,6 @@ func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, ski } extractExpr(tw, expr.X, lbl, 0, false) case *ast.BinaryExpr: - if expr == nil { - return - } _, isUnionType := typeOf(tw, expr).(*types.Union) if expr.Op == token.OR && isUnionType { kind = dbscheme.TypeSetLiteralExpr.Index() @@ -1158,46 +1119,28 @@ func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, ski extractExpr(tw, expr.Y, lbl, 1, false) } case *ast.ArrayType: - if expr == nil { - return - } kind = dbscheme.ArrayTypeExpr.Index() extractExpr(tw, expr.Len, lbl, 0, false) extractExpr(tw, expr.Elt, lbl, 1, false) case *ast.StructType: - if expr == nil { - return - } kind = dbscheme.StructTypeExpr.Index() extractFields(tw, expr.Fields, lbl, 0, 1) case *ast.FuncType: - if expr == nil { - return - } kind = dbscheme.FuncTypeExpr.Index() extractFields(tw, expr.Params, lbl, 0, 1) extractFields(tw, expr.Results, lbl, -1, -1) emitScopeNodeInfo(tw, expr, lbl) case *ast.InterfaceType: - if expr == nil { - return - } kind = dbscheme.InterfaceTypeExpr.Index() // expr.Methods contains methods, embedded interfaces and type set // literals. makeTypeSetLiteralsUnionTyped(tw, expr.Methods) extractFields(tw, expr.Methods, lbl, 0, 1) case *ast.MapType: - if expr == nil { - return - } kind = dbscheme.MapTypeExpr.Index() extractExpr(tw, expr.Key, lbl, 0, false) extractExpr(tw, expr.Value, lbl, 1, false) case *ast.ChanType: - if expr == nil { - return - } tp := dbscheme.ChanTypeExprs[expr.Dir] if tp == nil { log.Fatalf("unsupported channel direction %v", expr.Dir) @@ -1299,7 +1242,15 @@ func extractFields(tw *trap.Writer, fields *ast.FieldList, parent trap.Label, id // extractStmt extracts AST information for a given statement and all other statements or expressions // nested inside it func extractStmt(tw *trap.Writer, stmt ast.Stmt, parent trap.Label, idx int) { - if stmt == nil { + if stmt == nil || stmt == (*ast.DeclStmt)(nil) || + stmt == (*ast.LabeledStmt)(nil) || stmt == (*ast.ExprStmt)(nil) || + stmt == (*ast.SendStmt)(nil) || stmt == (*ast.IncDecStmt)(nil) || + stmt == (*ast.AssignStmt)(nil) || stmt == (*ast.GoStmt)(nil) || + stmt == (*ast.DeferStmt)(nil) || stmt == (*ast.BranchStmt)(nil) || + stmt == (*ast.BlockStmt)(nil) || stmt == (*ast.IfStmt)(nil) || + stmt == (*ast.CaseClause)(nil) || stmt == (*ast.SwitchStmt)(nil) || + stmt == (*ast.TypeSwitchStmt)(nil) || stmt == (*ast.CommClause)(nil) || + stmt == (*ast.ForStmt)(nil) || stmt == (*ast.RangeStmt)(nil) { return } @@ -1309,37 +1260,22 @@ func extractStmt(tw *trap.Writer, stmt ast.Stmt, parent trap.Label, idx int) { case *ast.BadStmt: kind = dbscheme.BadStmtType.Index() case *ast.DeclStmt: - if stmt == nil { - return - } kind = dbscheme.DeclStmtType.Index() extractDecl(tw, stmt.Decl, lbl, 0) case *ast.EmptyStmt: kind = dbscheme.EmptyStmtType.Index() case *ast.LabeledStmt: - if stmt == nil { - return - } kind = dbscheme.LabeledStmtType.Index() extractExpr(tw, stmt.Label, lbl, 0, false) extractStmt(tw, stmt.Stmt, lbl, 1) case *ast.ExprStmt: - if stmt == nil { - return - } kind = dbscheme.ExprStmtType.Index() extractExpr(tw, stmt.X, lbl, 0, false) case *ast.SendStmt: - if stmt == nil { - return - } kind = dbscheme.SendStmtType.Index() extractExpr(tw, stmt.Chan, lbl, 0, false) extractExpr(tw, stmt.Value, lbl, 1, false) case *ast.IncDecStmt: - if stmt == nil { - return - } if stmt.Tok == token.INC { kind = dbscheme.IncStmtType.Index() } else if stmt.Tok == token.DEC { @@ -1349,9 +1285,6 @@ func extractStmt(tw *trap.Writer, stmt ast.Stmt, parent trap.Label, idx int) { } extractExpr(tw, stmt.X, lbl, 0, false) case *ast.AssignStmt: - if stmt == nil { - return - } tp := dbscheme.AssignStmtTypes[stmt.Tok] if tp == nil { log.Fatalf("unsupported assignment statement with operator %v", stmt.Tok) @@ -1360,24 +1293,15 @@ func extractStmt(tw *trap.Writer, stmt ast.Stmt, parent trap.Label, idx int) { extractExprs(tw, stmt.Lhs, lbl, -1, -1) extractExprs(tw, stmt.Rhs, lbl, 1, 1) case *ast.GoStmt: - if stmt == nil { - return - } kind = dbscheme.GoStmtType.Index() extractExpr(tw, stmt.Call, lbl, 0, false) case *ast.DeferStmt: - if stmt == nil { - return - } kind = dbscheme.DeferStmtType.Index() extractExpr(tw, stmt.Call, lbl, 0, false) case *ast.ReturnStmt: kind = dbscheme.ReturnStmtType.Index() extractExprs(tw, stmt.Results, lbl, 0, 1) case *ast.BranchStmt: - if stmt == nil { - return - } switch stmt.Tok { case token.BREAK: kind = dbscheme.BreakStmtType.Index() @@ -1392,16 +1316,10 @@ func extractStmt(tw *trap.Writer, stmt ast.Stmt, parent trap.Label, idx int) { } extractExpr(tw, stmt.Label, lbl, 0, false) case *ast.BlockStmt: - if stmt == nil { - return - } kind = dbscheme.BlockStmtType.Index() extractStmts(tw, stmt.List, lbl, 0, 1) emitScopeNodeInfo(tw, stmt, lbl) case *ast.IfStmt: - if stmt == nil { - return - } kind = dbscheme.IfStmtType.Index() extractStmt(tw, stmt.Init, lbl, 0) extractExpr(tw, stmt.Cond, lbl, 1, false) @@ -1409,35 +1327,23 @@ func extractStmt(tw *trap.Writer, stmt ast.Stmt, parent trap.Label, idx int) { extractStmt(tw, stmt.Else, lbl, 3) emitScopeNodeInfo(tw, stmt, lbl) case *ast.CaseClause: - if stmt == nil { - return - } kind = dbscheme.CaseClauseType.Index() extractExprs(tw, stmt.List, lbl, -1, -1) extractStmts(tw, stmt.Body, lbl, 0, 1) emitScopeNodeInfo(tw, stmt, lbl) case *ast.SwitchStmt: - if stmt == nil { - return - } kind = dbscheme.ExprSwitchStmtType.Index() extractStmt(tw, stmt.Init, lbl, 0) extractExpr(tw, stmt.Tag, lbl, 1, false) extractStmt(tw, stmt.Body, lbl, 2) emitScopeNodeInfo(tw, stmt, lbl) case *ast.TypeSwitchStmt: - if stmt == nil { - return - } kind = dbscheme.TypeSwitchStmtType.Index() extractStmt(tw, stmt.Init, lbl, 0) extractStmt(tw, stmt.Assign, lbl, 1) extractStmt(tw, stmt.Body, lbl, 2) emitScopeNodeInfo(tw, stmt, lbl) case *ast.CommClause: - if stmt == nil { - return - } kind = dbscheme.CommClauseType.Index() extractStmt(tw, stmt.Comm, lbl, 0) extractStmts(tw, stmt.Body, lbl, 1, 1) @@ -1446,9 +1352,6 @@ func extractStmt(tw *trap.Writer, stmt ast.Stmt, parent trap.Label, idx int) { kind = dbscheme.SelectStmtType.Index() extractStmt(tw, stmt.Body, lbl, 0) case *ast.ForStmt: - if stmt == nil { - return - } kind = dbscheme.ForStmtType.Index() extractStmt(tw, stmt.Init, lbl, 0) extractExpr(tw, stmt.Cond, lbl, 1, false) @@ -1456,9 +1359,6 @@ func extractStmt(tw *trap.Writer, stmt ast.Stmt, parent trap.Label, idx int) { extractStmt(tw, stmt.Body, lbl, 3) emitScopeNodeInfo(tw, stmt, lbl) case *ast.RangeStmt: - if stmt == nil { - return - } kind = dbscheme.RangeStmtType.Index() extractExpr(tw, stmt.Key, lbl, 0, false) extractExpr(tw, stmt.Value, lbl, 1, false) @@ -1486,15 +1386,15 @@ func extractStmts(tw *trap.Writer, stmts []ast.Stmt, parent trap.Label, idx int, // extractDecl extracts AST information for the given declaration func extractDecl(tw *trap.Writer, decl ast.Decl, parent trap.Label, idx int) { + if decl == (*ast.FuncDecl)(nil) || decl == (*ast.GenDecl)(nil) { + return + } lbl := tw.Labeler.LocalID(decl) var kind int switch decl := decl.(type) { case *ast.BadDecl: kind = dbscheme.BadDeclType.Index() case *ast.GenDecl: - if decl == nil { - return - } switch decl.Tok { case token.IMPORT: kind = dbscheme.ImportDeclType.Index() @@ -1512,9 +1412,6 @@ func extractDecl(tw *trap.Writer, decl ast.Decl, parent trap.Label, idx int) { } extractDoc(tw, decl.Doc, lbl) case *ast.FuncDecl: - if decl == nil { - return - } kind = dbscheme.FuncDeclType.Index() extractFields(tw, decl.Recv, lbl, -1, -1) extractExpr(tw, decl.Name, lbl, 0, false) From d5044fd07276ffee8df483916a9efa796eb9eab8 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 15 May 2025 14:19:58 +0100 Subject: [PATCH 503/656] Deal better with Windows paths --- go/extractor/extractor.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/go/extractor/extractor.go b/go/extractor/extractor.go index 1456dd3a899..d90d572a67a 100644 --- a/go/extractor/extractor.go +++ b/go/extractor/extractor.go @@ -773,9 +773,15 @@ func (extraction *Extraction) extractFileInfo(tw *trap.Writer, file string, isDu var parentLbl trap.Label for i, component := range components { + isRoot := false if i == 0 { if component == "" { path = "/" + isRoot = true + } else if regexp.MustCompile(`^[A-Za-z]:$`).MatchString(component) { + // Handle Windows drive letters by appending "/" + path = component + "/" + isRoot = true } else { path = component } @@ -800,7 +806,7 @@ func (extraction *Extraction) extractFileInfo(tw *trap.Writer, file string, isDu if i > 0 { dbscheme.ContainerParentTable.Emit(tw, parentLbl, lbl) } - if path != "/" { + if !isRoot { parentPath = path } parentLbl = lbl From 47dac643016624181231a75ba00bbc5a3df5d40f Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 20 May 2025 03:03:36 +0100 Subject: [PATCH 504/656] fix previous commit --- go/extractor/extractor.go | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/go/extractor/extractor.go b/go/extractor/extractor.go index d90d572a67a..ff58df73a91 100644 --- a/go/extractor/extractor.go +++ b/go/extractor/extractor.go @@ -773,24 +773,22 @@ func (extraction *Extraction) extractFileInfo(tw *trap.Writer, file string, isDu var parentLbl trap.Label for i, component := range components { - isRoot := false + var rawPath, canonicalPath string if i == 0 { - if component == "" { - path = "/" - isRoot = true - } else if regexp.MustCompile(`^[A-Za-z]:$`).MatchString(component) { - // Handle Windows drive letters by appending "/" - path = component + "/" - isRoot = true + rawPath = component + if component == "" || regexp.MustCompile(`^[A-Za-z]:$`).MatchString(component) { + // Handle linux root and Windows drive letters by appending "/" + canonicalPath = rawPath + "/" } else { - path = component + canonicalPath = rawPath } } else { - path = parentPath + "/" + component + rawPath = parentPath + "/" + component + canonicalPath = rawPath } if i == len(components)-1 { lbl := tw.Labeler.FileLabelFor(file) - dbscheme.FilesTable.Emit(tw, lbl, path) + dbscheme.FilesTable.Emit(tw, lbl, canonicalPath) dbscheme.ContainerParentTable.Emit(tw, parentLbl, lbl) dbscheme.HasLocationTable.Emit(tw, lbl, emitLocation(tw, lbl, 0, 0, 0, 0)) extraction.Lock.Lock() @@ -801,14 +799,12 @@ func (extraction *Extraction) extractFileInfo(tw *trap.Writer, file string, isDu extraction.Lock.Unlock() break } - lbl := tw.Labeler.GlobalID(util.EscapeTrapSpecialChars(path) + ";folder") - dbscheme.FoldersTable.Emit(tw, lbl, path) + lbl := tw.Labeler.GlobalID(util.EscapeTrapSpecialChars(canonicalPath) + ";folder") + dbscheme.FoldersTable.Emit(tw, lbl, canonicalPath) if i > 0 { dbscheme.ContainerParentTable.Emit(tw, parentLbl, lbl) } - if !isRoot { - parentPath = path - } + parentPath = rawPath parentLbl = lbl } } From 83cd349531e8ac2fb03ac371123bf986ac83556d Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 20 May 2025 13:13:03 +0100 Subject: [PATCH 505/656] Change variable name and add comment --- go/extractor/extractor.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/go/extractor/extractor.go b/go/extractor/extractor.go index ff58df73a91..42ea0527ce8 100644 --- a/go/extractor/extractor.go +++ b/go/extractor/extractor.go @@ -773,22 +773,25 @@ func (extraction *Extraction) extractFileInfo(tw *trap.Writer, file string, isDu var parentLbl trap.Label for i, component := range components { - var rawPath, canonicalPath string + // displayPath is the same as rawPath except for root directories: if + // rawPath is "" then displayPath is "/"; if rawPath is "C:" then + // displayPath is "C:/". + var rawPath, displayPath string if i == 0 { rawPath = component if component == "" || regexp.MustCompile(`^[A-Za-z]:$`).MatchString(component) { // Handle linux root and Windows drive letters by appending "/" - canonicalPath = rawPath + "/" + displayPath = rawPath + "/" } else { - canonicalPath = rawPath + displayPath = rawPath } } else { rawPath = parentPath + "/" + component - canonicalPath = rawPath + displayPath = rawPath } if i == len(components)-1 { lbl := tw.Labeler.FileLabelFor(file) - dbscheme.FilesTable.Emit(tw, lbl, canonicalPath) + dbscheme.FilesTable.Emit(tw, lbl, displayPath) dbscheme.ContainerParentTable.Emit(tw, parentLbl, lbl) dbscheme.HasLocationTable.Emit(tw, lbl, emitLocation(tw, lbl, 0, 0, 0, 0)) extraction.Lock.Lock() @@ -799,8 +802,8 @@ func (extraction *Extraction) extractFileInfo(tw *trap.Writer, file string, isDu extraction.Lock.Unlock() break } - lbl := tw.Labeler.GlobalID(util.EscapeTrapSpecialChars(canonicalPath) + ";folder") - dbscheme.FoldersTable.Emit(tw, lbl, canonicalPath) + lbl := tw.Labeler.GlobalID(util.EscapeTrapSpecialChars(displayPath) + ";folder") + dbscheme.FoldersTable.Emit(tw, lbl, displayPath) if i > 0 { dbscheme.ContainerParentTable.Emit(tw, parentLbl, lbl) } From 3b40a5875a170e835c74560781217b5a272874dd Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 15:21:32 +0100 Subject: [PATCH 506/656] Rust: Add test cases (generated by LLM). --- .../security/CWE-312/test_logging.rs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/rust/ql/test/query-tests/security/CWE-312/test_logging.rs b/rust/ql/test/query-tests/security/CWE-312/test_logging.rs index 970a9caf0ee..529d3ed9a03 100644 --- a/rust/ql/test/query-tests/security/CWE-312/test_logging.rs +++ b/rust/ql/test/query-tests/security/CWE-312/test_logging.rs @@ -2,6 +2,7 @@ use log::{debug, error, info, trace, warn, log, Level}; use std::io::Write as _; use std::fmt::Write as _; +use log_err::{LogErrOption, LogErrResult}; // --- tests --- @@ -146,6 +147,32 @@ fn test_log(harmless: String, password: String, encrypted_password: String) { warn!("message = {}", s2); // (this implementation does not output the password field) warn!("message = {:?}", s2); // $ MISSING: Alert[rust/cleartext-logging]=s2 warn!("message = {:#?}", s2); // $ MISSING: Alert[rust/cleartext-logging]=s2 + + // test log_expect with sensitive data + let password2 = "123456".to_string(); // Create new password for this test + let sensitive_opt: Option = Some(password2.clone()); + + // log_expect tests with LogErrOption trait + let _ = sensitive_opt.log_expect("Option is None"); // $ Alert[rust/cleartext-logging] + + // log_expect tests with LogErrResult trait + let sensitive_result: Result = Ok(password2.clone()); + let _ = sensitive_result.log_expect("Result failed"); // $ Alert[rust/cleartext-logging] + + // log_unwrap tests with LogErrOption trait + let sensitive_opt2: Option = Some(password2.clone()); + let _ = sensitive_opt2.log_unwrap(); // $ Alert[rust/cleartext-logging] + + // log_unwrap tests with LogErrResult trait + let sensitive_result2: Result = Ok(password2.clone()); + let _ = sensitive_result2.log_unwrap(); // $ Alert[rust/cleartext-logging] + + // Negative cases that should fail and log + let none_opt: Option = None; + let _ = none_opt.log_expect(&format!("Failed with password: {}", password2)); // $ Alert[rust/cleartext-logging] + + let err_result: Result = Err(password2); + let _ = err_result.log_unwrap(); // $ Alert[rust/cleartext-logging] } fn test_std(password: String, i: i32, opt_i: Option) { From 355e440fdfc25e4364252b6aadd889ff15fb5bc1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 15:23:06 +0100 Subject: [PATCH 507/656] Rust: Make the new test cases work. --- .../CWE-312/CleartextLogging.expected | 830 +++++++++--------- .../query-tests/security/CWE-312/options.yml | 1 + .../security/CWE-312/test_logging.rs | 12 +- 3 files changed, 422 insertions(+), 421 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected index 61218e9c908..b81d85d9027 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected @@ -1,220 +1,220 @@ #select -| test_logging.rs:42:5:42:36 | ...::log | test_logging.rs:42:28:42:35 | password | test_logging.rs:42:5:42:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:42:28:42:35 | password | password | | test_logging.rs:43:5:43:36 | ...::log | test_logging.rs:43:28:43:35 | password | test_logging.rs:43:5:43:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:43:28:43:35 | password | password | -| test_logging.rs:44:5:44:35 | ...::log | test_logging.rs:44:27:44:34 | password | test_logging.rs:44:5:44:35 | ...::log | This operation writes $@ to a log file. | test_logging.rs:44:27:44:34 | password | password | -| test_logging.rs:45:5:45:36 | ...::log | test_logging.rs:45:28:45:35 | password | test_logging.rs:45:5:45:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:45:28:45:35 | password | password | -| test_logging.rs:46:5:46:35 | ...::log | test_logging.rs:46:27:46:34 | password | test_logging.rs:46:5:46:35 | ...::log | This operation writes $@ to a log file. | test_logging.rs:46:27:46:34 | password | password | -| test_logging.rs:47:5:47:48 | ...::log | test_logging.rs:47:40:47:47 | password | test_logging.rs:47:5:47:48 | ...::log | This operation writes $@ to a log file. | test_logging.rs:47:40:47:47 | password | password | -| test_logging.rs:52:5:52:36 | ...::log | test_logging.rs:52:28:52:35 | password | test_logging.rs:52:5:52:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:52:28:52:35 | password | password | -| test_logging.rs:54:5:54:49 | ...::log | test_logging.rs:54:41:54:48 | password | test_logging.rs:54:5:54:49 | ...::log | This operation writes $@ to a log file. | test_logging.rs:54:41:54:48 | password | password | -| test_logging.rs:56:5:56:47 | ...::log | test_logging.rs:56:39:56:46 | password | test_logging.rs:56:5:56:47 | ...::log | This operation writes $@ to a log file. | test_logging.rs:56:39:56:46 | password | password | -| test_logging.rs:57:5:57:34 | ...::log | test_logging.rs:57:24:57:31 | password | test_logging.rs:57:5:57:34 | ...::log | This operation writes $@ to a log file. | test_logging.rs:57:24:57:31 | password | password | -| test_logging.rs:58:5:58:36 | ...::log | test_logging.rs:58:24:58:31 | password | test_logging.rs:58:5:58:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:58:24:58:31 | password | password | -| test_logging.rs:60:5:60:54 | ...::log | test_logging.rs:60:46:60:53 | password | test_logging.rs:60:5:60:54 | ...::log | This operation writes $@ to a log file. | test_logging.rs:60:46:60:53 | password | password | -| test_logging.rs:61:5:61:55 | ...::log | test_logging.rs:61:21:61:28 | password | test_logging.rs:61:5:61:55 | ...::log | This operation writes $@ to a log file. | test_logging.rs:61:21:61:28 | password | password | -| test_logging.rs:65:5:65:48 | ...::log | test_logging.rs:65:40:65:47 | password | test_logging.rs:65:5:65:48 | ...::log | This operation writes $@ to a log file. | test_logging.rs:65:40:65:47 | password | password | -| test_logging.rs:67:5:67:66 | ...::log | test_logging.rs:67:58:67:65 | password | test_logging.rs:67:5:67:66 | ...::log | This operation writes $@ to a log file. | test_logging.rs:67:58:67:65 | password | password | -| test_logging.rs:68:5:68:67 | ...::log | test_logging.rs:68:19:68:26 | password | test_logging.rs:68:5:68:67 | ...::log | This operation writes $@ to a log file. | test_logging.rs:68:19:68:26 | password | password | -| test_logging.rs:72:5:72:47 | ...::log | test_logging.rs:72:39:72:46 | password | test_logging.rs:72:5:72:47 | ...::log | This operation writes $@ to a log file. | test_logging.rs:72:39:72:46 | password | password | -| test_logging.rs:74:5:74:65 | ...::log | test_logging.rs:74:57:74:64 | password | test_logging.rs:74:5:74:65 | ...::log | This operation writes $@ to a log file. | test_logging.rs:74:57:74:64 | password | password | -| test_logging.rs:75:5:75:51 | ...::log | test_logging.rs:75:21:75:28 | password | test_logging.rs:75:5:75:51 | ...::log | This operation writes $@ to a log file. | test_logging.rs:75:21:75:28 | password | password | -| test_logging.rs:76:5:76:47 | ...::log | test_logging.rs:76:39:76:46 | password | test_logging.rs:76:5:76:47 | ...::log | This operation writes $@ to a log file. | test_logging.rs:76:39:76:46 | password | password | -| test_logging.rs:82:5:82:44 | ...::log | test_logging.rs:82:36:82:43 | password | test_logging.rs:82:5:82:44 | ...::log | This operation writes $@ to a log file. | test_logging.rs:82:36:82:43 | password | password | -| test_logging.rs:84:5:84:62 | ...::log | test_logging.rs:84:54:84:61 | password | test_logging.rs:84:5:84:62 | ...::log | This operation writes $@ to a log file. | test_logging.rs:84:54:84:61 | password | password | -| test_logging.rs:85:5:85:48 | ...::log | test_logging.rs:85:21:85:28 | password | test_logging.rs:85:5:85:48 | ...::log | This operation writes $@ to a log file. | test_logging.rs:85:21:85:28 | password | password | -| test_logging.rs:86:5:86:44 | ...::log | test_logging.rs:86:36:86:43 | password | test_logging.rs:86:5:86:44 | ...::log | This operation writes $@ to a log file. | test_logging.rs:86:36:86:43 | password | password | -| test_logging.rs:94:5:94:29 | ...::log | test_logging.rs:93:15:93:22 | password | test_logging.rs:94:5:94:29 | ...::log | This operation writes $@ to a log file. | test_logging.rs:93:15:93:22 | password | password | -| test_logging.rs:97:5:97:19 | ...::log | test_logging.rs:96:42:96:49 | password | test_logging.rs:97:5:97:19 | ...::log | This operation writes $@ to a log file. | test_logging.rs:96:42:96:49 | password | password | -| test_logging.rs:100:5:100:19 | ...::log | test_logging.rs:99:38:99:45 | password | test_logging.rs:100:5:100:19 | ...::log | This operation writes $@ to a log file. | test_logging.rs:99:38:99:45 | password | password | -| test_logging.rs:118:5:118:42 | ...::log | test_logging.rs:118:28:118:41 | get_password(...) | test_logging.rs:118:5:118:42 | ...::log | This operation writes $@ to a log file. | test_logging.rs:118:28:118:41 | get_password(...) | get_password(...) | -| test_logging.rs:131:5:131:32 | ...::log | test_logging.rs:129:25:129:32 | password | test_logging.rs:131:5:131:32 | ...::log | This operation writes $@ to a log file. | test_logging.rs:129:25:129:32 | password | password | -| test_logging.rs:152:5:152:38 | ...::_print | test_logging.rs:152:30:152:37 | password | test_logging.rs:152:5:152:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:152:30:152:37 | password | password | -| test_logging.rs:153:5:153:38 | ...::_print | test_logging.rs:153:30:153:37 | password | test_logging.rs:153:5:153:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:153:30:153:37 | password | password | -| test_logging.rs:154:5:154:39 | ...::_eprint | test_logging.rs:154:31:154:38 | password | test_logging.rs:154:5:154:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:154:31:154:38 | password | password | -| test_logging.rs:155:5:155:39 | ...::_eprint | test_logging.rs:155:31:155:38 | password | test_logging.rs:155:5:155:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:155:31:155:38 | password | password | -| test_logging.rs:158:16:158:47 | ...::panic_fmt | test_logging.rs:158:39:158:46 | password | test_logging.rs:158:16:158:47 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:158:39:158:46 | password | password | -| test_logging.rs:159:16:159:46 | ...::panic_fmt | test_logging.rs:159:38:159:45 | password | test_logging.rs:159:16:159:46 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:159:38:159:45 | password | password | -| test_logging.rs:160:16:160:55 | ...::panic_fmt | test_logging.rs:160:47:160:54 | password | test_logging.rs:160:16:160:55 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:160:47:160:54 | password | password | -| test_logging.rs:161:16:161:53 | ...::panic_fmt | test_logging.rs:161:45:161:52 | password | test_logging.rs:161:16:161:53 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:161:45:161:52 | password | password | -| test_logging.rs:162:16:162:55 | ...::panic_fmt | test_logging.rs:162:47:162:54 | password | test_logging.rs:162:16:162:55 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:162:47:162:54 | password | password | -| test_logging.rs:163:16:163:57 | ...::assert_failed | test_logging.rs:163:49:163:56 | password | test_logging.rs:163:16:163:57 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:163:49:163:56 | password | password | -| test_logging.rs:164:16:164:57 | ...::assert_failed | test_logging.rs:164:49:164:56 | password | test_logging.rs:164:16:164:57 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:164:49:164:56 | password | password | -| test_logging.rs:165:16:165:61 | ...::panic_fmt | test_logging.rs:165:53:165:60 | password | test_logging.rs:165:16:165:61 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:165:53:165:60 | password | password | -| test_logging.rs:166:16:166:63 | ...::assert_failed | test_logging.rs:166:55:166:62 | password | test_logging.rs:166:16:166:63 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:166:55:166:62 | password | password | -| test_logging.rs:167:17:167:64 | ...::assert_failed | test_logging.rs:167:56:167:63 | password | test_logging.rs:167:17:167:64 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:167:56:167:63 | password | password | -| test_logging.rs:168:27:168:32 | expect | test_logging.rs:168:58:168:65 | password | test_logging.rs:168:27:168:32 | expect | This operation writes $@ to a log file. | test_logging.rs:168:58:168:65 | password | password | -| test_logging.rs:174:30:174:34 | write | test_logging.rs:174:62:174:69 | password | test_logging.rs:174:30:174:34 | write | This operation writes $@ to a log file. | test_logging.rs:174:62:174:69 | password | password | -| test_logging.rs:175:30:175:38 | write_all | test_logging.rs:175:66:175:73 | password | test_logging.rs:175:30:175:38 | write_all | This operation writes $@ to a log file. | test_logging.rs:175:66:175:73 | password | password | -| test_logging.rs:178:9:178:13 | write | test_logging.rs:178:41:178:48 | password | test_logging.rs:178:9:178:13 | write | This operation writes $@ to a log file. | test_logging.rs:178:41:178:48 | password | password | -| test_logging.rs:181:9:181:13 | write | test_logging.rs:181:41:181:48 | password | test_logging.rs:181:9:181:13 | write | This operation writes $@ to a log file. | test_logging.rs:181:41:181:48 | password | password | +| test_logging.rs:44:5:44:36 | ...::log | test_logging.rs:44:28:44:35 | password | test_logging.rs:44:5:44:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:44:28:44:35 | password | password | +| test_logging.rs:45:5:45:35 | ...::log | test_logging.rs:45:27:45:34 | password | test_logging.rs:45:5:45:35 | ...::log | This operation writes $@ to a log file. | test_logging.rs:45:27:45:34 | password | password | +| test_logging.rs:46:5:46:36 | ...::log | test_logging.rs:46:28:46:35 | password | test_logging.rs:46:5:46:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:46:28:46:35 | password | password | +| test_logging.rs:47:5:47:35 | ...::log | test_logging.rs:47:27:47:34 | password | test_logging.rs:47:5:47:35 | ...::log | This operation writes $@ to a log file. | test_logging.rs:47:27:47:34 | password | password | +| test_logging.rs:48:5:48:48 | ...::log | test_logging.rs:48:40:48:47 | password | test_logging.rs:48:5:48:48 | ...::log | This operation writes $@ to a log file. | test_logging.rs:48:40:48:47 | password | password | +| test_logging.rs:53:5:53:36 | ...::log | test_logging.rs:53:28:53:35 | password | test_logging.rs:53:5:53:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:53:28:53:35 | password | password | +| test_logging.rs:55:5:55:49 | ...::log | test_logging.rs:55:41:55:48 | password | test_logging.rs:55:5:55:49 | ...::log | This operation writes $@ to a log file. | test_logging.rs:55:41:55:48 | password | password | +| test_logging.rs:57:5:57:47 | ...::log | test_logging.rs:57:39:57:46 | password | test_logging.rs:57:5:57:47 | ...::log | This operation writes $@ to a log file. | test_logging.rs:57:39:57:46 | password | password | +| test_logging.rs:58:5:58:34 | ...::log | test_logging.rs:58:24:58:31 | password | test_logging.rs:58:5:58:34 | ...::log | This operation writes $@ to a log file. | test_logging.rs:58:24:58:31 | password | password | +| test_logging.rs:59:5:59:36 | ...::log | test_logging.rs:59:24:59:31 | password | test_logging.rs:59:5:59:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:59:24:59:31 | password | password | +| test_logging.rs:61:5:61:54 | ...::log | test_logging.rs:61:46:61:53 | password | test_logging.rs:61:5:61:54 | ...::log | This operation writes $@ to a log file. | test_logging.rs:61:46:61:53 | password | password | +| test_logging.rs:62:5:62:55 | ...::log | test_logging.rs:62:21:62:28 | password | test_logging.rs:62:5:62:55 | ...::log | This operation writes $@ to a log file. | test_logging.rs:62:21:62:28 | password | password | +| test_logging.rs:66:5:66:48 | ...::log | test_logging.rs:66:40:66:47 | password | test_logging.rs:66:5:66:48 | ...::log | This operation writes $@ to a log file. | test_logging.rs:66:40:66:47 | password | password | +| test_logging.rs:68:5:68:66 | ...::log | test_logging.rs:68:58:68:65 | password | test_logging.rs:68:5:68:66 | ...::log | This operation writes $@ to a log file. | test_logging.rs:68:58:68:65 | password | password | +| test_logging.rs:69:5:69:67 | ...::log | test_logging.rs:69:19:69:26 | password | test_logging.rs:69:5:69:67 | ...::log | This operation writes $@ to a log file. | test_logging.rs:69:19:69:26 | password | password | +| test_logging.rs:73:5:73:47 | ...::log | test_logging.rs:73:39:73:46 | password | test_logging.rs:73:5:73:47 | ...::log | This operation writes $@ to a log file. | test_logging.rs:73:39:73:46 | password | password | +| test_logging.rs:75:5:75:65 | ...::log | test_logging.rs:75:57:75:64 | password | test_logging.rs:75:5:75:65 | ...::log | This operation writes $@ to a log file. | test_logging.rs:75:57:75:64 | password | password | +| test_logging.rs:76:5:76:51 | ...::log | test_logging.rs:76:21:76:28 | password | test_logging.rs:76:5:76:51 | ...::log | This operation writes $@ to a log file. | test_logging.rs:76:21:76:28 | password | password | +| test_logging.rs:77:5:77:47 | ...::log | test_logging.rs:77:39:77:46 | password | test_logging.rs:77:5:77:47 | ...::log | This operation writes $@ to a log file. | test_logging.rs:77:39:77:46 | password | password | +| test_logging.rs:83:5:83:44 | ...::log | test_logging.rs:83:36:83:43 | password | test_logging.rs:83:5:83:44 | ...::log | This operation writes $@ to a log file. | test_logging.rs:83:36:83:43 | password | password | +| test_logging.rs:85:5:85:62 | ...::log | test_logging.rs:85:54:85:61 | password | test_logging.rs:85:5:85:62 | ...::log | This operation writes $@ to a log file. | test_logging.rs:85:54:85:61 | password | password | +| test_logging.rs:86:5:86:48 | ...::log | test_logging.rs:86:21:86:28 | password | test_logging.rs:86:5:86:48 | ...::log | This operation writes $@ to a log file. | test_logging.rs:86:21:86:28 | password | password | +| test_logging.rs:87:5:87:44 | ...::log | test_logging.rs:87:36:87:43 | password | test_logging.rs:87:5:87:44 | ...::log | This operation writes $@ to a log file. | test_logging.rs:87:36:87:43 | password | password | +| test_logging.rs:95:5:95:29 | ...::log | test_logging.rs:94:15:94:22 | password | test_logging.rs:95:5:95:29 | ...::log | This operation writes $@ to a log file. | test_logging.rs:94:15:94:22 | password | password | +| test_logging.rs:98:5:98:19 | ...::log | test_logging.rs:97:42:97:49 | password | test_logging.rs:98:5:98:19 | ...::log | This operation writes $@ to a log file. | test_logging.rs:97:42:97:49 | password | password | +| test_logging.rs:101:5:101:19 | ...::log | test_logging.rs:100:38:100:45 | password | test_logging.rs:101:5:101:19 | ...::log | This operation writes $@ to a log file. | test_logging.rs:100:38:100:45 | password | password | +| test_logging.rs:119:5:119:42 | ...::log | test_logging.rs:119:28:119:41 | get_password(...) | test_logging.rs:119:5:119:42 | ...::log | This operation writes $@ to a log file. | test_logging.rs:119:28:119:41 | get_password(...) | get_password(...) | +| test_logging.rs:132:5:132:32 | ...::log | test_logging.rs:130:25:130:32 | password | test_logging.rs:132:5:132:32 | ...::log | This operation writes $@ to a log file. | test_logging.rs:130:25:130:32 | password | password | +| test_logging.rs:179:5:179:38 | ...::_print | test_logging.rs:179:30:179:37 | password | test_logging.rs:179:5:179:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:179:30:179:37 | password | password | +| test_logging.rs:180:5:180:38 | ...::_print | test_logging.rs:180:30:180:37 | password | test_logging.rs:180:5:180:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:180:30:180:37 | password | password | +| test_logging.rs:181:5:181:39 | ...::_eprint | test_logging.rs:181:31:181:38 | password | test_logging.rs:181:5:181:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:181:31:181:38 | password | password | +| test_logging.rs:182:5:182:39 | ...::_eprint | test_logging.rs:182:31:182:38 | password | test_logging.rs:182:5:182:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:182:31:182:38 | password | password | +| test_logging.rs:185:16:185:47 | ...::panic_fmt | test_logging.rs:185:39:185:46 | password | test_logging.rs:185:16:185:47 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:185:39:185:46 | password | password | +| test_logging.rs:186:16:186:46 | ...::panic_fmt | test_logging.rs:186:38:186:45 | password | test_logging.rs:186:16:186:46 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:186:38:186:45 | password | password | +| test_logging.rs:187:16:187:55 | ...::panic_fmt | test_logging.rs:187:47:187:54 | password | test_logging.rs:187:16:187:55 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:187:47:187:54 | password | password | +| test_logging.rs:188:16:188:53 | ...::panic_fmt | test_logging.rs:188:45:188:52 | password | test_logging.rs:188:16:188:53 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:188:45:188:52 | password | password | +| test_logging.rs:189:16:189:55 | ...::panic_fmt | test_logging.rs:189:47:189:54 | password | test_logging.rs:189:16:189:55 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:189:47:189:54 | password | password | +| test_logging.rs:190:16:190:57 | ...::assert_failed | test_logging.rs:190:49:190:56 | password | test_logging.rs:190:16:190:57 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:190:49:190:56 | password | password | +| test_logging.rs:191:16:191:57 | ...::assert_failed | test_logging.rs:191:49:191:56 | password | test_logging.rs:191:16:191:57 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:191:49:191:56 | password | password | +| test_logging.rs:192:16:192:61 | ...::panic_fmt | test_logging.rs:192:53:192:60 | password | test_logging.rs:192:16:192:61 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:192:53:192:60 | password | password | +| test_logging.rs:193:16:193:63 | ...::assert_failed | test_logging.rs:193:55:193:62 | password | test_logging.rs:193:16:193:63 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:193:55:193:62 | password | password | +| test_logging.rs:194:17:194:64 | ...::assert_failed | test_logging.rs:194:56:194:63 | password | test_logging.rs:194:17:194:64 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:194:56:194:63 | password | password | +| test_logging.rs:195:27:195:32 | expect | test_logging.rs:195:58:195:65 | password | test_logging.rs:195:27:195:32 | expect | This operation writes $@ to a log file. | test_logging.rs:195:58:195:65 | password | password | +| test_logging.rs:201:30:201:34 | write | test_logging.rs:201:62:201:69 | password | test_logging.rs:201:30:201:34 | write | This operation writes $@ to a log file. | test_logging.rs:201:62:201:69 | password | password | +| test_logging.rs:202:30:202:38 | write_all | test_logging.rs:202:66:202:73 | password | test_logging.rs:202:30:202:38 | write_all | This operation writes $@ to a log file. | test_logging.rs:202:66:202:73 | password | password | +| test_logging.rs:205:9:205:13 | write | test_logging.rs:205:41:205:48 | password | test_logging.rs:205:9:205:13 | write | This operation writes $@ to a log file. | test_logging.rs:205:41:205:48 | password | password | +| test_logging.rs:208:9:208:13 | write | test_logging.rs:208:41:208:48 | password | test_logging.rs:208:9:208:13 | write | This operation writes $@ to a log file. | test_logging.rs:208:41:208:48 | password | password | edges -| test_logging.rs:42:12:42:35 | MacroExpr | test_logging.rs:42:5:42:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:42:28:42:35 | password | test_logging.rs:42:12:42:35 | MacroExpr | provenance | | | test_logging.rs:43:12:43:35 | MacroExpr | test_logging.rs:43:5:43:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | | test_logging.rs:43:28:43:35 | password | test_logging.rs:43:12:43:35 | MacroExpr | provenance | | -| test_logging.rs:44:11:44:34 | MacroExpr | test_logging.rs:44:5:44:35 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:44:27:44:34 | password | test_logging.rs:44:11:44:34 | MacroExpr | provenance | | -| test_logging.rs:45:12:45:35 | MacroExpr | test_logging.rs:45:5:45:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:45:28:45:35 | password | test_logging.rs:45:12:45:35 | MacroExpr | provenance | | -| test_logging.rs:46:11:46:34 | MacroExpr | test_logging.rs:46:5:46:35 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:46:27:46:34 | password | test_logging.rs:46:11:46:34 | MacroExpr | provenance | | -| test_logging.rs:47:24:47:47 | MacroExpr | test_logging.rs:47:5:47:48 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:47:40:47:47 | password | test_logging.rs:47:24:47:47 | MacroExpr | provenance | | -| test_logging.rs:52:12:52:35 | MacroExpr | test_logging.rs:52:5:52:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:52:28:52:35 | password | test_logging.rs:52:12:52:35 | MacroExpr | provenance | | -| test_logging.rs:54:12:54:48 | MacroExpr | test_logging.rs:54:5:54:49 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:54:41:54:48 | password | test_logging.rs:54:12:54:48 | MacroExpr | provenance | | -| test_logging.rs:56:12:56:46 | MacroExpr | test_logging.rs:56:5:56:47 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:56:39:56:46 | password | test_logging.rs:56:12:56:46 | MacroExpr | provenance | | -| test_logging.rs:57:12:57:33 | MacroExpr | test_logging.rs:57:5:57:34 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:57:24:57:31 | password | test_logging.rs:57:12:57:33 | MacroExpr | provenance | | -| test_logging.rs:58:12:58:35 | MacroExpr | test_logging.rs:58:5:58:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:58:24:58:31 | password | test_logging.rs:58:12:58:35 | MacroExpr | provenance | | -| test_logging.rs:60:30:60:53 | MacroExpr | test_logging.rs:60:5:60:54 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:60:46:60:53 | password | test_logging.rs:60:30:60:53 | MacroExpr | provenance | | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:55 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:55 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | test_logging.rs:61:5:61:55 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:61:20:61:28 | &password | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0] | provenance | | -| test_logging.rs:61:20:61:28 | &password [&ref] | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0, &ref] | provenance | | -| test_logging.rs:61:20:61:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | provenance | | -| test_logging.rs:61:20:61:28 | TupleExpr [tuple.0] | test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | provenance | | -| test_logging.rs:61:21:61:28 | password | test_logging.rs:61:20:61:28 | &password | provenance | Config | -| test_logging.rs:61:21:61:28 | password | test_logging.rs:61:20:61:28 | &password [&ref] | provenance | | -| test_logging.rs:65:24:65:47 | MacroExpr | test_logging.rs:65:5:65:48 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:65:40:65:47 | password | test_logging.rs:65:24:65:47 | MacroExpr | provenance | | -| test_logging.rs:67:42:67:65 | MacroExpr | test_logging.rs:67:5:67:66 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:67:58:67:65 | password | test_logging.rs:67:42:67:65 | MacroExpr | provenance | | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:67 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:67 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | test_logging.rs:68:5:68:67 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:68:18:68:26 | &password | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0] | provenance | | -| test_logging.rs:68:18:68:26 | &password [&ref] | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0, &ref] | provenance | | -| test_logging.rs:68:18:68:26 | TupleExpr [tuple.0, &ref] | test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | provenance | | -| test_logging.rs:68:18:68:26 | TupleExpr [tuple.0] | test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | provenance | | -| test_logging.rs:68:19:68:26 | password | test_logging.rs:68:18:68:26 | &password | provenance | Config | -| test_logging.rs:68:19:68:26 | password | test_logging.rs:68:18:68:26 | &password [&ref] | provenance | | -| test_logging.rs:72:23:72:46 | MacroExpr | test_logging.rs:72:5:72:47 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:72:39:72:46 | password | test_logging.rs:72:23:72:46 | MacroExpr | provenance | | -| test_logging.rs:74:41:74:64 | MacroExpr | test_logging.rs:74:5:74:65 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:74:57:74:64 | password | test_logging.rs:74:41:74:64 | MacroExpr | provenance | | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:51 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:51 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | test_logging.rs:75:5:75:51 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:75:20:75:28 | &password | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0] | provenance | | -| test_logging.rs:75:20:75:28 | &password [&ref] | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0, &ref] | provenance | | -| test_logging.rs:75:20:75:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | provenance | | -| test_logging.rs:75:20:75:28 | TupleExpr [tuple.0] | test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | provenance | | -| test_logging.rs:75:21:75:28 | password | test_logging.rs:75:20:75:28 | &password | provenance | Config | -| test_logging.rs:75:21:75:28 | password | test_logging.rs:75:20:75:28 | &password [&ref] | provenance | | -| test_logging.rs:76:23:76:46 | MacroExpr | test_logging.rs:76:5:76:47 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:76:39:76:46 | password | test_logging.rs:76:23:76:46 | MacroExpr | provenance | | -| test_logging.rs:82:20:82:43 | MacroExpr | test_logging.rs:82:5:82:44 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:82:36:82:43 | password | test_logging.rs:82:20:82:43 | MacroExpr | provenance | | -| test_logging.rs:84:38:84:61 | MacroExpr | test_logging.rs:84:5:84:62 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:84:54:84:61 | password | test_logging.rs:84:38:84:61 | MacroExpr | provenance | | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:48 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:48 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | test_logging.rs:85:5:85:48 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:85:20:85:28 | &password | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0] | provenance | | -| test_logging.rs:85:20:85:28 | &password [&ref] | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0, &ref] | provenance | | -| test_logging.rs:85:20:85:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | provenance | | -| test_logging.rs:85:20:85:28 | TupleExpr [tuple.0] | test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | provenance | | -| test_logging.rs:85:21:85:28 | password | test_logging.rs:85:20:85:28 | &password | provenance | Config | -| test_logging.rs:85:21:85:28 | password | test_logging.rs:85:20:85:28 | &password [&ref] | provenance | | -| test_logging.rs:86:20:86:43 | MacroExpr | test_logging.rs:86:5:86:44 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:86:36:86:43 | password | test_logging.rs:86:20:86:43 | MacroExpr | provenance | | -| test_logging.rs:93:9:93:10 | m1 | test_logging.rs:94:11:94:28 | MacroExpr | provenance | | -| test_logging.rs:93:14:93:22 | &password | test_logging.rs:93:9:93:10 | m1 | provenance | | -| test_logging.rs:93:15:93:22 | password | test_logging.rs:93:14:93:22 | &password | provenance | Config | -| test_logging.rs:94:11:94:28 | MacroExpr | test_logging.rs:94:5:94:29 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:96:9:96:10 | m2 | test_logging.rs:97:11:97:18 | MacroExpr | provenance | | -| test_logging.rs:96:41:96:49 | &password | test_logging.rs:96:9:96:10 | m2 | provenance | | -| test_logging.rs:96:42:96:49 | password | test_logging.rs:96:41:96:49 | &password | provenance | Config | -| test_logging.rs:97:11:97:18 | MacroExpr | test_logging.rs:97:5:97:19 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:99:9:99:10 | m3 | test_logging.rs:100:11:100:18 | MacroExpr | provenance | | -| test_logging.rs:99:14:99:46 | res | test_logging.rs:99:22:99:45 | { ... } | provenance | | -| test_logging.rs:99:22:99:45 | ...::format(...) | test_logging.rs:99:14:99:46 | res | provenance | | -| test_logging.rs:99:22:99:45 | ...::must_use(...) | test_logging.rs:99:9:99:10 | m3 | provenance | | -| test_logging.rs:99:22:99:45 | MacroExpr | test_logging.rs:99:22:99:45 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:99:22:99:45 | { ... } | test_logging.rs:99:22:99:45 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:99:38:99:45 | password | test_logging.rs:99:22:99:45 | MacroExpr | provenance | | -| test_logging.rs:100:11:100:18 | MacroExpr | test_logging.rs:100:5:100:19 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:118:12:118:41 | MacroExpr | test_logging.rs:118:5:118:42 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:118:28:118:41 | get_password(...) | test_logging.rs:118:12:118:41 | MacroExpr | provenance | | -| test_logging.rs:129:9:129:10 | t1 [tuple.1] | test_logging.rs:131:28:131:29 | t1 [tuple.1] | provenance | | -| test_logging.rs:129:14:129:33 | TupleExpr [tuple.1] | test_logging.rs:129:9:129:10 | t1 [tuple.1] | provenance | | -| test_logging.rs:129:25:129:32 | password | test_logging.rs:129:14:129:33 | TupleExpr [tuple.1] | provenance | | -| test_logging.rs:131:12:131:31 | MacroExpr | test_logging.rs:131:5:131:32 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:131:28:131:29 | t1 [tuple.1] | test_logging.rs:131:28:131:31 | t1.1 | provenance | | -| test_logging.rs:131:28:131:31 | t1.1 | test_logging.rs:131:12:131:31 | MacroExpr | provenance | | -| test_logging.rs:152:12:152:37 | MacroExpr | test_logging.rs:152:5:152:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | -| test_logging.rs:152:30:152:37 | password | test_logging.rs:152:12:152:37 | MacroExpr | provenance | | -| test_logging.rs:153:14:153:37 | MacroExpr | test_logging.rs:153:5:153:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | -| test_logging.rs:153:30:153:37 | password | test_logging.rs:153:14:153:37 | MacroExpr | provenance | | -| test_logging.rs:154:13:154:38 | MacroExpr | test_logging.rs:154:5:154:39 | ...::_eprint | provenance | MaD:7 Sink:MaD:7 | -| test_logging.rs:154:31:154:38 | password | test_logging.rs:154:13:154:38 | MacroExpr | provenance | | -| test_logging.rs:155:15:155:38 | MacroExpr | test_logging.rs:155:5:155:39 | ...::_eprint | provenance | MaD:7 Sink:MaD:7 | -| test_logging.rs:155:31:155:38 | password | test_logging.rs:155:15:155:38 | MacroExpr | provenance | | -| test_logging.rs:158:23:158:46 | MacroExpr | test_logging.rs:158:16:158:47 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:158:39:158:46 | password | test_logging.rs:158:23:158:46 | MacroExpr | provenance | | -| test_logging.rs:159:22:159:45 | MacroExpr | test_logging.rs:159:16:159:46 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:159:38:159:45 | password | test_logging.rs:159:22:159:45 | MacroExpr | provenance | | -| test_logging.rs:160:31:160:54 | MacroExpr | test_logging.rs:160:16:160:55 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:160:47:160:54 | password | test_logging.rs:160:31:160:54 | MacroExpr | provenance | | -| test_logging.rs:161:29:161:52 | MacroExpr | test_logging.rs:161:16:161:53 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:161:45:161:52 | password | test_logging.rs:161:29:161:52 | MacroExpr | provenance | | -| test_logging.rs:162:31:162:54 | MacroExpr | test_logging.rs:162:16:162:55 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:162:47:162:54 | password | test_logging.rs:162:31:162:54 | MacroExpr | provenance | | -| test_logging.rs:163:33:163:56 | ...::Some(...) [Some] | test_logging.rs:163:16:163:57 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | -| test_logging.rs:163:33:163:56 | MacroExpr | test_logging.rs:163:33:163:56 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:163:49:163:56 | password | test_logging.rs:163:33:163:56 | MacroExpr | provenance | | -| test_logging.rs:164:33:164:56 | ...::Some(...) [Some] | test_logging.rs:164:16:164:57 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | -| test_logging.rs:164:33:164:56 | MacroExpr | test_logging.rs:164:33:164:56 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:164:49:164:56 | password | test_logging.rs:164:33:164:56 | MacroExpr | provenance | | -| test_logging.rs:165:37:165:60 | MacroExpr | test_logging.rs:165:16:165:61 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:165:53:165:60 | password | test_logging.rs:165:37:165:60 | MacroExpr | provenance | | -| test_logging.rs:166:39:166:62 | ...::Some(...) [Some] | test_logging.rs:166:16:166:63 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | -| test_logging.rs:166:39:166:62 | MacroExpr | test_logging.rs:166:39:166:62 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:166:55:166:62 | password | test_logging.rs:166:39:166:62 | MacroExpr | provenance | | -| test_logging.rs:167:40:167:63 | ...::Some(...) [Some] | test_logging.rs:167:17:167:64 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | -| test_logging.rs:167:40:167:63 | MacroExpr | test_logging.rs:167:40:167:63 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:167:56:167:63 | password | test_logging.rs:167:40:167:63 | MacroExpr | provenance | | -| test_logging.rs:168:34:168:66 | res | test_logging.rs:168:42:168:65 | { ... } | provenance | | -| test_logging.rs:168:34:168:75 | ... .as_str() | test_logging.rs:168:27:168:32 | expect | provenance | MaD:1 Sink:MaD:1 | -| test_logging.rs:168:42:168:65 | ...::format(...) | test_logging.rs:168:34:168:66 | res | provenance | | -| test_logging.rs:168:42:168:65 | ...::must_use(...) | test_logging.rs:168:34:168:75 | ... .as_str() | provenance | MaD:12 | -| test_logging.rs:168:42:168:65 | MacroExpr | test_logging.rs:168:42:168:65 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:168:42:168:65 | { ... } | test_logging.rs:168:42:168:65 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:168:58:168:65 | password | test_logging.rs:168:42:168:65 | MacroExpr | provenance | | -| test_logging.rs:174:36:174:70 | res | test_logging.rs:174:44:174:69 | { ... } | provenance | | -| test_logging.rs:174:36:174:81 | ... .as_bytes() | test_logging.rs:174:30:174:34 | write | provenance | MaD:5 Sink:MaD:5 | -| test_logging.rs:174:44:174:69 | ...::format(...) | test_logging.rs:174:36:174:70 | res | provenance | | -| test_logging.rs:174:44:174:69 | ...::must_use(...) | test_logging.rs:174:36:174:81 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:174:44:174:69 | MacroExpr | test_logging.rs:174:44:174:69 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:174:44:174:69 | { ... } | test_logging.rs:174:44:174:69 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:174:62:174:69 | password | test_logging.rs:174:44:174:69 | MacroExpr | provenance | | -| test_logging.rs:175:40:175:74 | res | test_logging.rs:175:48:175:73 | { ... } | provenance | | -| test_logging.rs:175:40:175:85 | ... .as_bytes() | test_logging.rs:175:30:175:38 | write_all | provenance | MaD:6 Sink:MaD:6 | -| test_logging.rs:175:48:175:73 | ...::format(...) | test_logging.rs:175:40:175:74 | res | provenance | | -| test_logging.rs:175:48:175:73 | ...::must_use(...) | test_logging.rs:175:40:175:85 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:175:48:175:73 | MacroExpr | test_logging.rs:175:48:175:73 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:175:48:175:73 | { ... } | test_logging.rs:175:48:175:73 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:175:66:175:73 | password | test_logging.rs:175:48:175:73 | MacroExpr | provenance | | -| test_logging.rs:178:15:178:49 | res | test_logging.rs:178:23:178:48 | { ... } | provenance | | -| test_logging.rs:178:15:178:60 | ... .as_bytes() | test_logging.rs:178:9:178:13 | write | provenance | MaD:5 Sink:MaD:5 | -| test_logging.rs:178:23:178:48 | ...::format(...) | test_logging.rs:178:15:178:49 | res | provenance | | -| test_logging.rs:178:23:178:48 | ...::must_use(...) | test_logging.rs:178:15:178:60 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:178:23:178:48 | MacroExpr | test_logging.rs:178:23:178:48 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:178:23:178:48 | { ... } | test_logging.rs:178:23:178:48 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:178:41:178:48 | password | test_logging.rs:178:23:178:48 | MacroExpr | provenance | | -| test_logging.rs:181:15:181:49 | res | test_logging.rs:181:23:181:48 | { ... } | provenance | | -| test_logging.rs:181:15:181:60 | ... .as_bytes() | test_logging.rs:181:9:181:13 | write | provenance | MaD:4 Sink:MaD:4 | -| test_logging.rs:181:23:181:48 | ...::format(...) | test_logging.rs:181:15:181:49 | res | provenance | | -| test_logging.rs:181:23:181:48 | ...::must_use(...) | test_logging.rs:181:15:181:60 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:181:23:181:48 | MacroExpr | test_logging.rs:181:23:181:48 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:181:23:181:48 | { ... } | test_logging.rs:181:23:181:48 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:181:41:181:48 | password | test_logging.rs:181:23:181:48 | MacroExpr | provenance | | +| test_logging.rs:44:12:44:35 | MacroExpr | test_logging.rs:44:5:44:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:44:28:44:35 | password | test_logging.rs:44:12:44:35 | MacroExpr | provenance | | +| test_logging.rs:45:11:45:34 | MacroExpr | test_logging.rs:45:5:45:35 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:45:27:45:34 | password | test_logging.rs:45:11:45:34 | MacroExpr | provenance | | +| test_logging.rs:46:12:46:35 | MacroExpr | test_logging.rs:46:5:46:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:46:28:46:35 | password | test_logging.rs:46:12:46:35 | MacroExpr | provenance | | +| test_logging.rs:47:11:47:34 | MacroExpr | test_logging.rs:47:5:47:35 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:47:27:47:34 | password | test_logging.rs:47:11:47:34 | MacroExpr | provenance | | +| test_logging.rs:48:24:48:47 | MacroExpr | test_logging.rs:48:5:48:48 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:48:40:48:47 | password | test_logging.rs:48:24:48:47 | MacroExpr | provenance | | +| test_logging.rs:53:12:53:35 | MacroExpr | test_logging.rs:53:5:53:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:53:28:53:35 | password | test_logging.rs:53:12:53:35 | MacroExpr | provenance | | +| test_logging.rs:55:12:55:48 | MacroExpr | test_logging.rs:55:5:55:49 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:55:41:55:48 | password | test_logging.rs:55:12:55:48 | MacroExpr | provenance | | +| test_logging.rs:57:12:57:46 | MacroExpr | test_logging.rs:57:5:57:47 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:57:39:57:46 | password | test_logging.rs:57:12:57:46 | MacroExpr | provenance | | +| test_logging.rs:58:12:58:33 | MacroExpr | test_logging.rs:58:5:58:34 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:58:24:58:31 | password | test_logging.rs:58:12:58:33 | MacroExpr | provenance | | +| test_logging.rs:59:12:59:35 | MacroExpr | test_logging.rs:59:5:59:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:59:24:59:31 | password | test_logging.rs:59:12:59:35 | MacroExpr | provenance | | +| test_logging.rs:61:30:61:53 | MacroExpr | test_logging.rs:61:5:61:54 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:61:46:61:53 | password | test_logging.rs:61:30:61:53 | MacroExpr | provenance | | +| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:62:5:62:55 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:62:5:62:55 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0] | test_logging.rs:62:5:62:55 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:62:20:62:28 | &password | test_logging.rs:62:20:62:28 | TupleExpr [tuple.0] | provenance | | +| test_logging.rs:62:20:62:28 | &password [&ref] | test_logging.rs:62:20:62:28 | TupleExpr [tuple.0, &ref] | provenance | | +| test_logging.rs:62:20:62:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:62:20:62:28 | &... [&ref, tuple.0, &ref] | provenance | | +| test_logging.rs:62:20:62:28 | TupleExpr [tuple.0] | test_logging.rs:62:20:62:28 | &... [&ref, tuple.0] | provenance | | +| test_logging.rs:62:21:62:28 | password | test_logging.rs:62:20:62:28 | &password | provenance | Config | +| test_logging.rs:62:21:62:28 | password | test_logging.rs:62:20:62:28 | &password [&ref] | provenance | | +| test_logging.rs:66:24:66:47 | MacroExpr | test_logging.rs:66:5:66:48 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:66:40:66:47 | password | test_logging.rs:66:24:66:47 | MacroExpr | provenance | | +| test_logging.rs:68:42:68:65 | MacroExpr | test_logging.rs:68:5:68:66 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:68:58:68:65 | password | test_logging.rs:68:42:68:65 | MacroExpr | provenance | | +| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:69:5:69:67 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:69:5:69:67 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0] | test_logging.rs:69:5:69:67 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:69:18:69:26 | &password | test_logging.rs:69:18:69:26 | TupleExpr [tuple.0] | provenance | | +| test_logging.rs:69:18:69:26 | &password [&ref] | test_logging.rs:69:18:69:26 | TupleExpr [tuple.0, &ref] | provenance | | +| test_logging.rs:69:18:69:26 | TupleExpr [tuple.0, &ref] | test_logging.rs:69:18:69:26 | &... [&ref, tuple.0, &ref] | provenance | | +| test_logging.rs:69:18:69:26 | TupleExpr [tuple.0] | test_logging.rs:69:18:69:26 | &... [&ref, tuple.0] | provenance | | +| test_logging.rs:69:19:69:26 | password | test_logging.rs:69:18:69:26 | &password | provenance | Config | +| test_logging.rs:69:19:69:26 | password | test_logging.rs:69:18:69:26 | &password [&ref] | provenance | | +| test_logging.rs:73:23:73:46 | MacroExpr | test_logging.rs:73:5:73:47 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:73:39:73:46 | password | test_logging.rs:73:23:73:46 | MacroExpr | provenance | | +| test_logging.rs:75:41:75:64 | MacroExpr | test_logging.rs:75:5:75:65 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:75:57:75:64 | password | test_logging.rs:75:41:75:64 | MacroExpr | provenance | | +| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:76:5:76:51 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:76:5:76:51 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0] | test_logging.rs:76:5:76:51 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:76:20:76:28 | &password | test_logging.rs:76:20:76:28 | TupleExpr [tuple.0] | provenance | | +| test_logging.rs:76:20:76:28 | &password [&ref] | test_logging.rs:76:20:76:28 | TupleExpr [tuple.0, &ref] | provenance | | +| test_logging.rs:76:20:76:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:76:20:76:28 | &... [&ref, tuple.0, &ref] | provenance | | +| test_logging.rs:76:20:76:28 | TupleExpr [tuple.0] | test_logging.rs:76:20:76:28 | &... [&ref, tuple.0] | provenance | | +| test_logging.rs:76:21:76:28 | password | test_logging.rs:76:20:76:28 | &password | provenance | Config | +| test_logging.rs:76:21:76:28 | password | test_logging.rs:76:20:76:28 | &password [&ref] | provenance | | +| test_logging.rs:77:23:77:46 | MacroExpr | test_logging.rs:77:5:77:47 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:77:39:77:46 | password | test_logging.rs:77:23:77:46 | MacroExpr | provenance | | +| test_logging.rs:83:20:83:43 | MacroExpr | test_logging.rs:83:5:83:44 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:83:36:83:43 | password | test_logging.rs:83:20:83:43 | MacroExpr | provenance | | +| test_logging.rs:85:38:85:61 | MacroExpr | test_logging.rs:85:5:85:62 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:85:54:85:61 | password | test_logging.rs:85:38:85:61 | MacroExpr | provenance | | +| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:86:5:86:48 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:86:5:86:48 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0] | test_logging.rs:86:5:86:48 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:86:20:86:28 | &password | test_logging.rs:86:20:86:28 | TupleExpr [tuple.0] | provenance | | +| test_logging.rs:86:20:86:28 | &password [&ref] | test_logging.rs:86:20:86:28 | TupleExpr [tuple.0, &ref] | provenance | | +| test_logging.rs:86:20:86:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:86:20:86:28 | &... [&ref, tuple.0, &ref] | provenance | | +| test_logging.rs:86:20:86:28 | TupleExpr [tuple.0] | test_logging.rs:86:20:86:28 | &... [&ref, tuple.0] | provenance | | +| test_logging.rs:86:21:86:28 | password | test_logging.rs:86:20:86:28 | &password | provenance | Config | +| test_logging.rs:86:21:86:28 | password | test_logging.rs:86:20:86:28 | &password [&ref] | provenance | | +| test_logging.rs:87:20:87:43 | MacroExpr | test_logging.rs:87:5:87:44 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:87:36:87:43 | password | test_logging.rs:87:20:87:43 | MacroExpr | provenance | | +| test_logging.rs:94:9:94:10 | m1 | test_logging.rs:95:11:95:28 | MacroExpr | provenance | | +| test_logging.rs:94:14:94:22 | &password | test_logging.rs:94:9:94:10 | m1 | provenance | | +| test_logging.rs:94:15:94:22 | password | test_logging.rs:94:14:94:22 | &password | provenance | Config | +| test_logging.rs:95:11:95:28 | MacroExpr | test_logging.rs:95:5:95:29 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:97:9:97:10 | m2 | test_logging.rs:98:11:98:18 | MacroExpr | provenance | | +| test_logging.rs:97:41:97:49 | &password | test_logging.rs:97:9:97:10 | m2 | provenance | | +| test_logging.rs:97:42:97:49 | password | test_logging.rs:97:41:97:49 | &password | provenance | Config | +| test_logging.rs:98:11:98:18 | MacroExpr | test_logging.rs:98:5:98:19 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:100:9:100:10 | m3 | test_logging.rs:101:11:101:18 | MacroExpr | provenance | | +| test_logging.rs:100:14:100:46 | res | test_logging.rs:100:22:100:45 | { ... } | provenance | | +| test_logging.rs:100:22:100:45 | ...::format(...) | test_logging.rs:100:14:100:46 | res | provenance | | +| test_logging.rs:100:22:100:45 | ...::must_use(...) | test_logging.rs:100:9:100:10 | m3 | provenance | | +| test_logging.rs:100:22:100:45 | MacroExpr | test_logging.rs:100:22:100:45 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:100:22:100:45 | { ... } | test_logging.rs:100:22:100:45 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:100:38:100:45 | password | test_logging.rs:100:22:100:45 | MacroExpr | provenance | | +| test_logging.rs:101:11:101:18 | MacroExpr | test_logging.rs:101:5:101:19 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:119:12:119:41 | MacroExpr | test_logging.rs:119:5:119:42 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:119:28:119:41 | get_password(...) | test_logging.rs:119:12:119:41 | MacroExpr | provenance | | +| test_logging.rs:130:9:130:10 | t1 [tuple.1] | test_logging.rs:132:28:132:29 | t1 [tuple.1] | provenance | | +| test_logging.rs:130:14:130:33 | TupleExpr [tuple.1] | test_logging.rs:130:9:130:10 | t1 [tuple.1] | provenance | | +| test_logging.rs:130:25:130:32 | password | test_logging.rs:130:14:130:33 | TupleExpr [tuple.1] | provenance | | +| test_logging.rs:132:12:132:31 | MacroExpr | test_logging.rs:132:5:132:32 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:132:28:132:29 | t1 [tuple.1] | test_logging.rs:132:28:132:31 | t1.1 | provenance | | +| test_logging.rs:132:28:132:31 | t1.1 | test_logging.rs:132:12:132:31 | MacroExpr | provenance | | +| test_logging.rs:179:12:179:37 | MacroExpr | test_logging.rs:179:5:179:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | +| test_logging.rs:179:30:179:37 | password | test_logging.rs:179:12:179:37 | MacroExpr | provenance | | +| test_logging.rs:180:14:180:37 | MacroExpr | test_logging.rs:180:5:180:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | +| test_logging.rs:180:30:180:37 | password | test_logging.rs:180:14:180:37 | MacroExpr | provenance | | +| test_logging.rs:181:13:181:38 | MacroExpr | test_logging.rs:181:5:181:39 | ...::_eprint | provenance | MaD:7 Sink:MaD:7 | +| test_logging.rs:181:31:181:38 | password | test_logging.rs:181:13:181:38 | MacroExpr | provenance | | +| test_logging.rs:182:15:182:38 | MacroExpr | test_logging.rs:182:5:182:39 | ...::_eprint | provenance | MaD:7 Sink:MaD:7 | +| test_logging.rs:182:31:182:38 | password | test_logging.rs:182:15:182:38 | MacroExpr | provenance | | +| test_logging.rs:185:23:185:46 | MacroExpr | test_logging.rs:185:16:185:47 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:185:39:185:46 | password | test_logging.rs:185:23:185:46 | MacroExpr | provenance | | +| test_logging.rs:186:22:186:45 | MacroExpr | test_logging.rs:186:16:186:46 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:186:38:186:45 | password | test_logging.rs:186:22:186:45 | MacroExpr | provenance | | +| test_logging.rs:187:31:187:54 | MacroExpr | test_logging.rs:187:16:187:55 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:187:47:187:54 | password | test_logging.rs:187:31:187:54 | MacroExpr | provenance | | +| test_logging.rs:188:29:188:52 | MacroExpr | test_logging.rs:188:16:188:53 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:188:45:188:52 | password | test_logging.rs:188:29:188:52 | MacroExpr | provenance | | +| test_logging.rs:189:31:189:54 | MacroExpr | test_logging.rs:189:16:189:55 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:189:47:189:54 | password | test_logging.rs:189:31:189:54 | MacroExpr | provenance | | +| test_logging.rs:190:33:190:56 | ...::Some(...) [Some] | test_logging.rs:190:16:190:57 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:190:33:190:56 | MacroExpr | test_logging.rs:190:33:190:56 | ...::Some(...) [Some] | provenance | | +| test_logging.rs:190:49:190:56 | password | test_logging.rs:190:33:190:56 | MacroExpr | provenance | | +| test_logging.rs:191:33:191:56 | ...::Some(...) [Some] | test_logging.rs:191:16:191:57 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:191:33:191:56 | MacroExpr | test_logging.rs:191:33:191:56 | ...::Some(...) [Some] | provenance | | +| test_logging.rs:191:49:191:56 | password | test_logging.rs:191:33:191:56 | MacroExpr | provenance | | +| test_logging.rs:192:37:192:60 | MacroExpr | test_logging.rs:192:16:192:61 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:192:53:192:60 | password | test_logging.rs:192:37:192:60 | MacroExpr | provenance | | +| test_logging.rs:193:39:193:62 | ...::Some(...) [Some] | test_logging.rs:193:16:193:63 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:193:39:193:62 | MacroExpr | test_logging.rs:193:39:193:62 | ...::Some(...) [Some] | provenance | | +| test_logging.rs:193:55:193:62 | password | test_logging.rs:193:39:193:62 | MacroExpr | provenance | | +| test_logging.rs:194:40:194:63 | ...::Some(...) [Some] | test_logging.rs:194:17:194:64 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:194:40:194:63 | MacroExpr | test_logging.rs:194:40:194:63 | ...::Some(...) [Some] | provenance | | +| test_logging.rs:194:56:194:63 | password | test_logging.rs:194:40:194:63 | MacroExpr | provenance | | +| test_logging.rs:195:34:195:66 | res | test_logging.rs:195:42:195:65 | { ... } | provenance | | +| test_logging.rs:195:34:195:75 | ... .as_str() | test_logging.rs:195:27:195:32 | expect | provenance | MaD:1 Sink:MaD:1 | +| test_logging.rs:195:42:195:65 | ...::format(...) | test_logging.rs:195:34:195:66 | res | provenance | | +| test_logging.rs:195:42:195:65 | ...::must_use(...) | test_logging.rs:195:34:195:75 | ... .as_str() | provenance | MaD:12 | +| test_logging.rs:195:42:195:65 | MacroExpr | test_logging.rs:195:42:195:65 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:195:42:195:65 | { ... } | test_logging.rs:195:42:195:65 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:195:58:195:65 | password | test_logging.rs:195:42:195:65 | MacroExpr | provenance | | +| test_logging.rs:201:36:201:70 | res | test_logging.rs:201:44:201:69 | { ... } | provenance | | +| test_logging.rs:201:36:201:81 | ... .as_bytes() | test_logging.rs:201:30:201:34 | write | provenance | MaD:5 Sink:MaD:5 | +| test_logging.rs:201:44:201:69 | ...::format(...) | test_logging.rs:201:36:201:70 | res | provenance | | +| test_logging.rs:201:44:201:69 | ...::must_use(...) | test_logging.rs:201:36:201:81 | ... .as_bytes() | provenance | MaD:11 | +| test_logging.rs:201:44:201:69 | MacroExpr | test_logging.rs:201:44:201:69 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:201:44:201:69 | { ... } | test_logging.rs:201:44:201:69 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:201:62:201:69 | password | test_logging.rs:201:44:201:69 | MacroExpr | provenance | | +| test_logging.rs:202:40:202:74 | res | test_logging.rs:202:48:202:73 | { ... } | provenance | | +| test_logging.rs:202:40:202:85 | ... .as_bytes() | test_logging.rs:202:30:202:38 | write_all | provenance | MaD:6 Sink:MaD:6 | +| test_logging.rs:202:48:202:73 | ...::format(...) | test_logging.rs:202:40:202:74 | res | provenance | | +| test_logging.rs:202:48:202:73 | ...::must_use(...) | test_logging.rs:202:40:202:85 | ... .as_bytes() | provenance | MaD:11 | +| test_logging.rs:202:48:202:73 | MacroExpr | test_logging.rs:202:48:202:73 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:202:48:202:73 | { ... } | test_logging.rs:202:48:202:73 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:202:66:202:73 | password | test_logging.rs:202:48:202:73 | MacroExpr | provenance | | +| test_logging.rs:205:15:205:49 | res | test_logging.rs:205:23:205:48 | { ... } | provenance | | +| test_logging.rs:205:15:205:60 | ... .as_bytes() | test_logging.rs:205:9:205:13 | write | provenance | MaD:5 Sink:MaD:5 | +| test_logging.rs:205:23:205:48 | ...::format(...) | test_logging.rs:205:15:205:49 | res | provenance | | +| test_logging.rs:205:23:205:48 | ...::must_use(...) | test_logging.rs:205:15:205:60 | ... .as_bytes() | provenance | MaD:11 | +| test_logging.rs:205:23:205:48 | MacroExpr | test_logging.rs:205:23:205:48 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:205:23:205:48 | { ... } | test_logging.rs:205:23:205:48 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:205:41:205:48 | password | test_logging.rs:205:23:205:48 | MacroExpr | provenance | | +| test_logging.rs:208:15:208:49 | res | test_logging.rs:208:23:208:48 | { ... } | provenance | | +| test_logging.rs:208:15:208:60 | ... .as_bytes() | test_logging.rs:208:9:208:13 | write | provenance | MaD:4 Sink:MaD:4 | +| test_logging.rs:208:23:208:48 | ...::format(...) | test_logging.rs:208:15:208:49 | res | provenance | | +| test_logging.rs:208:23:208:48 | ...::must_use(...) | test_logging.rs:208:15:208:60 | ... .as_bytes() | provenance | MaD:11 | +| test_logging.rs:208:23:208:48 | MacroExpr | test_logging.rs:208:23:208:48 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:208:23:208:48 | { ... } | test_logging.rs:208:23:208:48 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:208:41:208:48 | password | test_logging.rs:208:23:208:48 | MacroExpr | provenance | | models | 1 | Sink: lang:core; ::expect; log-injection; Argument[0] | | 2 | Sink: lang:core; crate::panicking::assert_failed; log-injection; Argument[3].Field[crate::option::Option::Some(0)] | @@ -231,211 +231,211 @@ models | 13 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | | 14 | Summary: lang:core; crate::hint::must_use; Argument[0]; ReturnValue; value | nodes -| test_logging.rs:42:5:42:36 | ...::log | semmle.label | ...::log | -| test_logging.rs:42:12:42:35 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:42:28:42:35 | password | semmle.label | password | | test_logging.rs:43:5:43:36 | ...::log | semmle.label | ...::log | | test_logging.rs:43:12:43:35 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:43:28:43:35 | password | semmle.label | password | -| test_logging.rs:44:5:44:35 | ...::log | semmle.label | ...::log | -| test_logging.rs:44:11:44:34 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:44:27:44:34 | password | semmle.label | password | -| test_logging.rs:45:5:45:36 | ...::log | semmle.label | ...::log | -| test_logging.rs:45:12:45:35 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:45:28:45:35 | password | semmle.label | password | -| test_logging.rs:46:5:46:35 | ...::log | semmle.label | ...::log | -| test_logging.rs:46:11:46:34 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:46:27:46:34 | password | semmle.label | password | -| test_logging.rs:47:5:47:48 | ...::log | semmle.label | ...::log | -| test_logging.rs:47:24:47:47 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:47:40:47:47 | password | semmle.label | password | -| test_logging.rs:52:5:52:36 | ...::log | semmle.label | ...::log | -| test_logging.rs:52:12:52:35 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:52:28:52:35 | password | semmle.label | password | -| test_logging.rs:54:5:54:49 | ...::log | semmle.label | ...::log | -| test_logging.rs:54:12:54:48 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:54:41:54:48 | password | semmle.label | password | -| test_logging.rs:56:5:56:47 | ...::log | semmle.label | ...::log | -| test_logging.rs:56:12:56:46 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:56:39:56:46 | password | semmle.label | password | -| test_logging.rs:57:5:57:34 | ...::log | semmle.label | ...::log | -| test_logging.rs:57:12:57:33 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:57:24:57:31 | password | semmle.label | password | -| test_logging.rs:58:5:58:36 | ...::log | semmle.label | ...::log | -| test_logging.rs:58:12:58:35 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:44:5:44:36 | ...::log | semmle.label | ...::log | +| test_logging.rs:44:12:44:35 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:44:28:44:35 | password | semmle.label | password | +| test_logging.rs:45:5:45:35 | ...::log | semmle.label | ...::log | +| test_logging.rs:45:11:45:34 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:45:27:45:34 | password | semmle.label | password | +| test_logging.rs:46:5:46:36 | ...::log | semmle.label | ...::log | +| test_logging.rs:46:12:46:35 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:46:28:46:35 | password | semmle.label | password | +| test_logging.rs:47:5:47:35 | ...::log | semmle.label | ...::log | +| test_logging.rs:47:11:47:34 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:47:27:47:34 | password | semmle.label | password | +| test_logging.rs:48:5:48:48 | ...::log | semmle.label | ...::log | +| test_logging.rs:48:24:48:47 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:48:40:48:47 | password | semmle.label | password | +| test_logging.rs:53:5:53:36 | ...::log | semmle.label | ...::log | +| test_logging.rs:53:12:53:35 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:53:28:53:35 | password | semmle.label | password | +| test_logging.rs:55:5:55:49 | ...::log | semmle.label | ...::log | +| test_logging.rs:55:12:55:48 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:55:41:55:48 | password | semmle.label | password | +| test_logging.rs:57:5:57:47 | ...::log | semmle.label | ...::log | +| test_logging.rs:57:12:57:46 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:57:39:57:46 | password | semmle.label | password | +| test_logging.rs:58:5:58:34 | ...::log | semmle.label | ...::log | +| test_logging.rs:58:12:58:33 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:58:24:58:31 | password | semmle.label | password | -| test_logging.rs:60:5:60:54 | ...::log | semmle.label | ...::log | -| test_logging.rs:60:30:60:53 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:60:46:60:53 | password | semmle.label | password | -| test_logging.rs:61:5:61:55 | ...::log | semmle.label | ...::log | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | -| test_logging.rs:61:20:61:28 | &password | semmle.label | &password | -| test_logging.rs:61:20:61:28 | &password [&ref] | semmle.label | &password [&ref] | -| test_logging.rs:61:20:61:28 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | -| test_logging.rs:61:20:61:28 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| test_logging.rs:61:21:61:28 | password | semmle.label | password | -| test_logging.rs:65:5:65:48 | ...::log | semmle.label | ...::log | -| test_logging.rs:65:24:65:47 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:65:40:65:47 | password | semmle.label | password | -| test_logging.rs:67:5:67:66 | ...::log | semmle.label | ...::log | -| test_logging.rs:67:42:67:65 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:67:58:67:65 | password | semmle.label | password | -| test_logging.rs:68:5:68:67 | ...::log | semmle.label | ...::log | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | -| test_logging.rs:68:18:68:26 | &password | semmle.label | &password | -| test_logging.rs:68:18:68:26 | &password [&ref] | semmle.label | &password [&ref] | -| test_logging.rs:68:18:68:26 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | -| test_logging.rs:68:18:68:26 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| test_logging.rs:68:19:68:26 | password | semmle.label | password | -| test_logging.rs:72:5:72:47 | ...::log | semmle.label | ...::log | -| test_logging.rs:72:23:72:46 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:72:39:72:46 | password | semmle.label | password | -| test_logging.rs:74:5:74:65 | ...::log | semmle.label | ...::log | -| test_logging.rs:74:41:74:64 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:74:57:74:64 | password | semmle.label | password | -| test_logging.rs:75:5:75:51 | ...::log | semmle.label | ...::log | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | -| test_logging.rs:75:20:75:28 | &password | semmle.label | &password | -| test_logging.rs:75:20:75:28 | &password [&ref] | semmle.label | &password [&ref] | -| test_logging.rs:75:20:75:28 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | -| test_logging.rs:75:20:75:28 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| test_logging.rs:75:21:75:28 | password | semmle.label | password | -| test_logging.rs:76:5:76:47 | ...::log | semmle.label | ...::log | -| test_logging.rs:76:23:76:46 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:76:39:76:46 | password | semmle.label | password | -| test_logging.rs:82:5:82:44 | ...::log | semmle.label | ...::log | -| test_logging.rs:82:20:82:43 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:82:36:82:43 | password | semmle.label | password | -| test_logging.rs:84:5:84:62 | ...::log | semmle.label | ...::log | -| test_logging.rs:84:38:84:61 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:84:54:84:61 | password | semmle.label | password | -| test_logging.rs:85:5:85:48 | ...::log | semmle.label | ...::log | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | -| test_logging.rs:85:20:85:28 | &password | semmle.label | &password | -| test_logging.rs:85:20:85:28 | &password [&ref] | semmle.label | &password [&ref] | -| test_logging.rs:85:20:85:28 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | -| test_logging.rs:85:20:85:28 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| test_logging.rs:85:21:85:28 | password | semmle.label | password | -| test_logging.rs:86:5:86:44 | ...::log | semmle.label | ...::log | -| test_logging.rs:86:20:86:43 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:86:36:86:43 | password | semmle.label | password | -| test_logging.rs:93:9:93:10 | m1 | semmle.label | m1 | -| test_logging.rs:93:14:93:22 | &password | semmle.label | &password | -| test_logging.rs:93:15:93:22 | password | semmle.label | password | -| test_logging.rs:94:5:94:29 | ...::log | semmle.label | ...::log | -| test_logging.rs:94:11:94:28 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:96:9:96:10 | m2 | semmle.label | m2 | -| test_logging.rs:96:41:96:49 | &password | semmle.label | &password | -| test_logging.rs:96:42:96:49 | password | semmle.label | password | -| test_logging.rs:97:5:97:19 | ...::log | semmle.label | ...::log | -| test_logging.rs:97:11:97:18 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:99:9:99:10 | m3 | semmle.label | m3 | -| test_logging.rs:99:14:99:46 | res | semmle.label | res | -| test_logging.rs:99:22:99:45 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:99:22:99:45 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:99:22:99:45 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:99:22:99:45 | { ... } | semmle.label | { ... } | -| test_logging.rs:99:38:99:45 | password | semmle.label | password | -| test_logging.rs:100:5:100:19 | ...::log | semmle.label | ...::log | -| test_logging.rs:100:11:100:18 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:118:5:118:42 | ...::log | semmle.label | ...::log | -| test_logging.rs:118:12:118:41 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:118:28:118:41 | get_password(...) | semmle.label | get_password(...) | -| test_logging.rs:129:9:129:10 | t1 [tuple.1] | semmle.label | t1 [tuple.1] | -| test_logging.rs:129:14:129:33 | TupleExpr [tuple.1] | semmle.label | TupleExpr [tuple.1] | -| test_logging.rs:129:25:129:32 | password | semmle.label | password | -| test_logging.rs:131:5:131:32 | ...::log | semmle.label | ...::log | -| test_logging.rs:131:12:131:31 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:131:28:131:29 | t1 [tuple.1] | semmle.label | t1 [tuple.1] | -| test_logging.rs:131:28:131:31 | t1.1 | semmle.label | t1.1 | -| test_logging.rs:152:5:152:38 | ...::_print | semmle.label | ...::_print | -| test_logging.rs:152:12:152:37 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:152:30:152:37 | password | semmle.label | password | -| test_logging.rs:153:5:153:38 | ...::_print | semmle.label | ...::_print | -| test_logging.rs:153:14:153:37 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:153:30:153:37 | password | semmle.label | password | -| test_logging.rs:154:5:154:39 | ...::_eprint | semmle.label | ...::_eprint | -| test_logging.rs:154:13:154:38 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:154:31:154:38 | password | semmle.label | password | -| test_logging.rs:155:5:155:39 | ...::_eprint | semmle.label | ...::_eprint | -| test_logging.rs:155:15:155:38 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:155:31:155:38 | password | semmle.label | password | -| test_logging.rs:158:16:158:47 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:158:23:158:46 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:158:39:158:46 | password | semmle.label | password | -| test_logging.rs:159:16:159:46 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:159:22:159:45 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:159:38:159:45 | password | semmle.label | password | -| test_logging.rs:160:16:160:55 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:160:31:160:54 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:160:47:160:54 | password | semmle.label | password | -| test_logging.rs:161:16:161:53 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:161:29:161:52 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:161:45:161:52 | password | semmle.label | password | -| test_logging.rs:162:16:162:55 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:162:31:162:54 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:162:47:162:54 | password | semmle.label | password | -| test_logging.rs:163:16:163:57 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:163:33:163:56 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:163:33:163:56 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:163:49:163:56 | password | semmle.label | password | -| test_logging.rs:164:16:164:57 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:164:33:164:56 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:164:33:164:56 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:164:49:164:56 | password | semmle.label | password | -| test_logging.rs:165:16:165:61 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:165:37:165:60 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:165:53:165:60 | password | semmle.label | password | -| test_logging.rs:166:16:166:63 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:166:39:166:62 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:166:39:166:62 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:166:55:166:62 | password | semmle.label | password | -| test_logging.rs:167:17:167:64 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:167:40:167:63 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:167:40:167:63 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:167:56:167:63 | password | semmle.label | password | -| test_logging.rs:168:27:168:32 | expect | semmle.label | expect | -| test_logging.rs:168:34:168:66 | res | semmle.label | res | -| test_logging.rs:168:34:168:75 | ... .as_str() | semmle.label | ... .as_str() | -| test_logging.rs:168:42:168:65 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:168:42:168:65 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:168:42:168:65 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:168:42:168:65 | { ... } | semmle.label | { ... } | -| test_logging.rs:168:58:168:65 | password | semmle.label | password | -| test_logging.rs:174:30:174:34 | write | semmle.label | write | -| test_logging.rs:174:36:174:70 | res | semmle.label | res | -| test_logging.rs:174:36:174:81 | ... .as_bytes() | semmle.label | ... .as_bytes() | -| test_logging.rs:174:44:174:69 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:174:44:174:69 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:174:44:174:69 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:174:44:174:69 | { ... } | semmle.label | { ... } | -| test_logging.rs:174:62:174:69 | password | semmle.label | password | -| test_logging.rs:175:30:175:38 | write_all | semmle.label | write_all | -| test_logging.rs:175:40:175:74 | res | semmle.label | res | -| test_logging.rs:175:40:175:85 | ... .as_bytes() | semmle.label | ... .as_bytes() | -| test_logging.rs:175:48:175:73 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:175:48:175:73 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:175:48:175:73 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:175:48:175:73 | { ... } | semmle.label | { ... } | -| test_logging.rs:175:66:175:73 | password | semmle.label | password | -| test_logging.rs:178:9:178:13 | write | semmle.label | write | -| test_logging.rs:178:15:178:49 | res | semmle.label | res | -| test_logging.rs:178:15:178:60 | ... .as_bytes() | semmle.label | ... .as_bytes() | -| test_logging.rs:178:23:178:48 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:178:23:178:48 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:178:23:178:48 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:178:23:178:48 | { ... } | semmle.label | { ... } | -| test_logging.rs:178:41:178:48 | password | semmle.label | password | -| test_logging.rs:181:9:181:13 | write | semmle.label | write | -| test_logging.rs:181:15:181:49 | res | semmle.label | res | -| test_logging.rs:181:15:181:60 | ... .as_bytes() | semmle.label | ... .as_bytes() | -| test_logging.rs:181:23:181:48 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:181:23:181:48 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:181:23:181:48 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:181:23:181:48 | { ... } | semmle.label | { ... } | -| test_logging.rs:181:41:181:48 | password | semmle.label | password | +| test_logging.rs:59:5:59:36 | ...::log | semmle.label | ...::log | +| test_logging.rs:59:12:59:35 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:59:24:59:31 | password | semmle.label | password | +| test_logging.rs:61:5:61:54 | ...::log | semmle.label | ...::log | +| test_logging.rs:61:30:61:53 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:61:46:61:53 | password | semmle.label | password | +| test_logging.rs:62:5:62:55 | ...::log | semmle.label | ...::log | +| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | +| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | +| test_logging.rs:62:20:62:28 | &password | semmle.label | &password | +| test_logging.rs:62:20:62:28 | &password [&ref] | semmle.label | &password [&ref] | +| test_logging.rs:62:20:62:28 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | +| test_logging.rs:62:20:62:28 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| test_logging.rs:62:21:62:28 | password | semmle.label | password | +| test_logging.rs:66:5:66:48 | ...::log | semmle.label | ...::log | +| test_logging.rs:66:24:66:47 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:66:40:66:47 | password | semmle.label | password | +| test_logging.rs:68:5:68:66 | ...::log | semmle.label | ...::log | +| test_logging.rs:68:42:68:65 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:68:58:68:65 | password | semmle.label | password | +| test_logging.rs:69:5:69:67 | ...::log | semmle.label | ...::log | +| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | +| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | +| test_logging.rs:69:18:69:26 | &password | semmle.label | &password | +| test_logging.rs:69:18:69:26 | &password [&ref] | semmle.label | &password [&ref] | +| test_logging.rs:69:18:69:26 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | +| test_logging.rs:69:18:69:26 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| test_logging.rs:69:19:69:26 | password | semmle.label | password | +| test_logging.rs:73:5:73:47 | ...::log | semmle.label | ...::log | +| test_logging.rs:73:23:73:46 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:73:39:73:46 | password | semmle.label | password | +| test_logging.rs:75:5:75:65 | ...::log | semmle.label | ...::log | +| test_logging.rs:75:41:75:64 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:75:57:75:64 | password | semmle.label | password | +| test_logging.rs:76:5:76:51 | ...::log | semmle.label | ...::log | +| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | +| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | +| test_logging.rs:76:20:76:28 | &password | semmle.label | &password | +| test_logging.rs:76:20:76:28 | &password [&ref] | semmle.label | &password [&ref] | +| test_logging.rs:76:20:76:28 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | +| test_logging.rs:76:20:76:28 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| test_logging.rs:76:21:76:28 | password | semmle.label | password | +| test_logging.rs:77:5:77:47 | ...::log | semmle.label | ...::log | +| test_logging.rs:77:23:77:46 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:77:39:77:46 | password | semmle.label | password | +| test_logging.rs:83:5:83:44 | ...::log | semmle.label | ...::log | +| test_logging.rs:83:20:83:43 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:83:36:83:43 | password | semmle.label | password | +| test_logging.rs:85:5:85:62 | ...::log | semmle.label | ...::log | +| test_logging.rs:85:38:85:61 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:85:54:85:61 | password | semmle.label | password | +| test_logging.rs:86:5:86:48 | ...::log | semmle.label | ...::log | +| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | +| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | +| test_logging.rs:86:20:86:28 | &password | semmle.label | &password | +| test_logging.rs:86:20:86:28 | &password [&ref] | semmle.label | &password [&ref] | +| test_logging.rs:86:20:86:28 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | +| test_logging.rs:86:20:86:28 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| test_logging.rs:86:21:86:28 | password | semmle.label | password | +| test_logging.rs:87:5:87:44 | ...::log | semmle.label | ...::log | +| test_logging.rs:87:20:87:43 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:87:36:87:43 | password | semmle.label | password | +| test_logging.rs:94:9:94:10 | m1 | semmle.label | m1 | +| test_logging.rs:94:14:94:22 | &password | semmle.label | &password | +| test_logging.rs:94:15:94:22 | password | semmle.label | password | +| test_logging.rs:95:5:95:29 | ...::log | semmle.label | ...::log | +| test_logging.rs:95:11:95:28 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:97:9:97:10 | m2 | semmle.label | m2 | +| test_logging.rs:97:41:97:49 | &password | semmle.label | &password | +| test_logging.rs:97:42:97:49 | password | semmle.label | password | +| test_logging.rs:98:5:98:19 | ...::log | semmle.label | ...::log | +| test_logging.rs:98:11:98:18 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:100:9:100:10 | m3 | semmle.label | m3 | +| test_logging.rs:100:14:100:46 | res | semmle.label | res | +| test_logging.rs:100:22:100:45 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:100:22:100:45 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:100:22:100:45 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:100:22:100:45 | { ... } | semmle.label | { ... } | +| test_logging.rs:100:38:100:45 | password | semmle.label | password | +| test_logging.rs:101:5:101:19 | ...::log | semmle.label | ...::log | +| test_logging.rs:101:11:101:18 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:119:5:119:42 | ...::log | semmle.label | ...::log | +| test_logging.rs:119:12:119:41 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:119:28:119:41 | get_password(...) | semmle.label | get_password(...) | +| test_logging.rs:130:9:130:10 | t1 [tuple.1] | semmle.label | t1 [tuple.1] | +| test_logging.rs:130:14:130:33 | TupleExpr [tuple.1] | semmle.label | TupleExpr [tuple.1] | +| test_logging.rs:130:25:130:32 | password | semmle.label | password | +| test_logging.rs:132:5:132:32 | ...::log | semmle.label | ...::log | +| test_logging.rs:132:12:132:31 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:132:28:132:29 | t1 [tuple.1] | semmle.label | t1 [tuple.1] | +| test_logging.rs:132:28:132:31 | t1.1 | semmle.label | t1.1 | +| test_logging.rs:179:5:179:38 | ...::_print | semmle.label | ...::_print | +| test_logging.rs:179:12:179:37 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:179:30:179:37 | password | semmle.label | password | +| test_logging.rs:180:5:180:38 | ...::_print | semmle.label | ...::_print | +| test_logging.rs:180:14:180:37 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:180:30:180:37 | password | semmle.label | password | +| test_logging.rs:181:5:181:39 | ...::_eprint | semmle.label | ...::_eprint | +| test_logging.rs:181:13:181:38 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:181:31:181:38 | password | semmle.label | password | +| test_logging.rs:182:5:182:39 | ...::_eprint | semmle.label | ...::_eprint | +| test_logging.rs:182:15:182:38 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:182:31:182:38 | password | semmle.label | password | +| test_logging.rs:185:16:185:47 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:185:23:185:46 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:185:39:185:46 | password | semmle.label | password | +| test_logging.rs:186:16:186:46 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:186:22:186:45 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:186:38:186:45 | password | semmle.label | password | +| test_logging.rs:187:16:187:55 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:187:31:187:54 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:187:47:187:54 | password | semmle.label | password | +| test_logging.rs:188:16:188:53 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:188:29:188:52 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:188:45:188:52 | password | semmle.label | password | +| test_logging.rs:189:16:189:55 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:189:31:189:54 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:189:47:189:54 | password | semmle.label | password | +| test_logging.rs:190:16:190:57 | ...::assert_failed | semmle.label | ...::assert_failed | +| test_logging.rs:190:33:190:56 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | +| test_logging.rs:190:33:190:56 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:190:49:190:56 | password | semmle.label | password | +| test_logging.rs:191:16:191:57 | ...::assert_failed | semmle.label | ...::assert_failed | +| test_logging.rs:191:33:191:56 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | +| test_logging.rs:191:33:191:56 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:191:49:191:56 | password | semmle.label | password | +| test_logging.rs:192:16:192:61 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:192:37:192:60 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:192:53:192:60 | password | semmle.label | password | +| test_logging.rs:193:16:193:63 | ...::assert_failed | semmle.label | ...::assert_failed | +| test_logging.rs:193:39:193:62 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | +| test_logging.rs:193:39:193:62 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:193:55:193:62 | password | semmle.label | password | +| test_logging.rs:194:17:194:64 | ...::assert_failed | semmle.label | ...::assert_failed | +| test_logging.rs:194:40:194:63 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | +| test_logging.rs:194:40:194:63 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:194:56:194:63 | password | semmle.label | password | +| test_logging.rs:195:27:195:32 | expect | semmle.label | expect | +| test_logging.rs:195:34:195:66 | res | semmle.label | res | +| test_logging.rs:195:34:195:75 | ... .as_str() | semmle.label | ... .as_str() | +| test_logging.rs:195:42:195:65 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:195:42:195:65 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:195:42:195:65 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:195:42:195:65 | { ... } | semmle.label | { ... } | +| test_logging.rs:195:58:195:65 | password | semmle.label | password | +| test_logging.rs:201:30:201:34 | write | semmle.label | write | +| test_logging.rs:201:36:201:70 | res | semmle.label | res | +| test_logging.rs:201:36:201:81 | ... .as_bytes() | semmle.label | ... .as_bytes() | +| test_logging.rs:201:44:201:69 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:201:44:201:69 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:201:44:201:69 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:201:44:201:69 | { ... } | semmle.label | { ... } | +| test_logging.rs:201:62:201:69 | password | semmle.label | password | +| test_logging.rs:202:30:202:38 | write_all | semmle.label | write_all | +| test_logging.rs:202:40:202:74 | res | semmle.label | res | +| test_logging.rs:202:40:202:85 | ... .as_bytes() | semmle.label | ... .as_bytes() | +| test_logging.rs:202:48:202:73 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:202:48:202:73 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:202:48:202:73 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:202:48:202:73 | { ... } | semmle.label | { ... } | +| test_logging.rs:202:66:202:73 | password | semmle.label | password | +| test_logging.rs:205:9:205:13 | write | semmle.label | write | +| test_logging.rs:205:15:205:49 | res | semmle.label | res | +| test_logging.rs:205:15:205:60 | ... .as_bytes() | semmle.label | ... .as_bytes() | +| test_logging.rs:205:23:205:48 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:205:23:205:48 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:205:23:205:48 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:205:23:205:48 | { ... } | semmle.label | { ... } | +| test_logging.rs:205:41:205:48 | password | semmle.label | password | +| test_logging.rs:208:9:208:13 | write | semmle.label | write | +| test_logging.rs:208:15:208:49 | res | semmle.label | res | +| test_logging.rs:208:15:208:60 | ... .as_bytes() | semmle.label | ... .as_bytes() | +| test_logging.rs:208:23:208:48 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:208:23:208:48 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:208:23:208:48 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:208:23:208:48 | { ... } | semmle.label | { ... } | +| test_logging.rs:208:41:208:48 | password | semmle.label | password | subpaths diff --git a/rust/ql/test/query-tests/security/CWE-312/options.yml b/rust/ql/test/query-tests/security/CWE-312/options.yml index 439af840b90..e2329156d6f 100644 --- a/rust/ql/test/query-tests/security/CWE-312/options.yml +++ b/rust/ql/test/query-tests/security/CWE-312/options.yml @@ -2,3 +2,4 @@ qltest_cargo_check: true qltest_dependencies: - log = { version = "0.4.25", features = ["kv"] } - simple_logger = { version = "5.0.0" } + - log_err = { version = "1.1.1" } diff --git a/rust/ql/test/query-tests/security/CWE-312/test_logging.rs b/rust/ql/test/query-tests/security/CWE-312/test_logging.rs index 529d3ed9a03..85252552100 100644 --- a/rust/ql/test/query-tests/security/CWE-312/test_logging.rs +++ b/rust/ql/test/query-tests/security/CWE-312/test_logging.rs @@ -153,26 +153,26 @@ fn test_log(harmless: String, password: String, encrypted_password: String) { let sensitive_opt: Option = Some(password2.clone()); // log_expect tests with LogErrOption trait - let _ = sensitive_opt.log_expect("Option is None"); // $ Alert[rust/cleartext-logging] + let _ = sensitive_opt.log_expect("Option is None"); // $ MISSING: Alert[rust/cleartext-logging] // log_expect tests with LogErrResult trait let sensitive_result: Result = Ok(password2.clone()); - let _ = sensitive_result.log_expect("Result failed"); // $ Alert[rust/cleartext-logging] + let _ = sensitive_result.log_expect("Result failed"); // $ MISSING: Alert[rust/cleartext-logging] // log_unwrap tests with LogErrOption trait let sensitive_opt2: Option = Some(password2.clone()); - let _ = sensitive_opt2.log_unwrap(); // $ Alert[rust/cleartext-logging] + let _ = sensitive_opt2.log_unwrap(); // $ MISSING: Alert[rust/cleartext-logging] // log_unwrap tests with LogErrResult trait let sensitive_result2: Result = Ok(password2.clone()); - let _ = sensitive_result2.log_unwrap(); // $ Alert[rust/cleartext-logging] + let _ = sensitive_result2.log_unwrap(); // $ MISSING: Alert[rust/cleartext-logging] // Negative cases that should fail and log let none_opt: Option = None; - let _ = none_opt.log_expect(&format!("Failed with password: {}", password2)); // $ Alert[rust/cleartext-logging] + let _ = none_opt.log_expect(&format!("Failed with password: {}", password2)); // $ MISSING: Alert[rust/cleartext-logging] let err_result: Result = Err(password2); - let _ = err_result.log_unwrap(); // $ Alert[rust/cleartext-logging] + let _ = err_result.log_unwrap(); // $ MISSING: Alert[rust/cleartext-logging] } fn test_std(password: String, i: i32, opt_i: Option) { From 799c39bc9b65203b3a3df5a2bb7ffd0609e004ea Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 20 May 2025 16:30:05 +0200 Subject: [PATCH 508/656] Rust: ignore `target` in `qltest` The target file created by `cargo check` was causing problems in language tests. We might want to also ignore `target` by default in the production indexing, but I'll leave that for further discussion. --- rust/extractor/src/qltest.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/rust/extractor/src/qltest.rs b/rust/extractor/src/qltest.rs index 316ecd0cee4..de0c36df784 100644 --- a/rust/extractor/src/qltest.rs +++ b/rust/extractor/src/qltest.rs @@ -54,6 +54,7 @@ path = "main.rs" fn set_sources(config: &mut Config) -> anyhow::Result<()> { let path_iterator = glob("**/*.rs").context("globbing test sources")?; config.inputs = path_iterator + .filter(|f| f.is_err() || !f.as_ref().unwrap().starts_with("target")) .collect::, _>>() .context("fetching test sources")?; Ok(()) From b56472436edd6b1511b5a366ce64c36e346f3677 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 20 May 2025 09:19:50 -0400 Subject: [PATCH 509/656] Crypto: Alterations to OpenSSL cipher algorithms to use new fixed keysize predicate. --- .../CipherAlgorithmInstance.qll | 7 ++----- java/ql/lib/experimental/quantum/JCA.qll | 6 +++--- .../quantum/codeql/quantum/experimental/Model.qll | 15 ++++++--------- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll index d76265e1c70..0e41b50300c 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll @@ -104,11 +104,8 @@ class KnownOpenSSLCipherConstantAlgorithmInstance extends OpenSSLAlgorithmInstan override string getRawAlgorithmName() { result = this.(Literal).getValue().toString() } - override string getKeySizeFixed() { - exists(int keySize | - this.(KnownOpenSSLCipherAlgorithmConstant).getExplicitKeySize() = keySize and - result = keySize.toString() - ) + override int getKeySizeFixed() { + this.(KnownOpenSSLCipherAlgorithmConstant).getExplicitKeySize() = result } override Crypto::KeyOpAlg::Algorithm getAlgorithmType() { diff --git a/java/ql/lib/experimental/quantum/JCA.qll b/java/ql/lib/experimental/quantum/JCA.qll index 70c65ef581d..8245abe13c4 100644 --- a/java/ql/lib/experimental/quantum/JCA.qll +++ b/java/ql/lib/experimental/quantum/JCA.qll @@ -353,7 +353,7 @@ module JCAModel { else result instanceof KeyOpAlg::TUnknownKeyOperationAlgorithmType } - override string getKeySizeFixed() { + override int getKeySizeFixed() { none() // TODO: implement to handle variants such as AES-128 } @@ -1104,7 +1104,7 @@ module JCAModel { KeyGeneratorFlowAnalysisImpl::getInitFromUse(this, _, _).getKeySizeArg() = result.asExpr() } - override string getKeySizeFixed() { none() } + override int getKeySizeFixed() { none() } } class KeyGeneratorCipherAlgorithm extends CipherStringLiteralAlgorithmInstance { @@ -1310,7 +1310,7 @@ module JCAModel { result.asExpr() = this.getKeySpecInstantiation().(PBEKeySpecInstantiation).getKeyLengthArg() } - override string getKeySizeFixed() { none() } + override int getKeySizeFixed() { none() } override string getOutputKeySizeFixed() { none() } diff --git a/shared/quantum/codeql/quantum/experimental/Model.qll b/shared/quantum/codeql/quantum/experimental/Model.qll index 8e1e6247484..5370f72ef47 100644 --- a/shared/quantum/codeql/quantum/experimental/Model.qll +++ b/shared/quantum/codeql/quantum/experimental/Model.qll @@ -841,7 +841,7 @@ module CryptographyBase Input> { * This will be automatically inferred and applied at the node level. * See `fixedImplicitCipherKeySize`. */ - abstract string getKeySizeFixed(); + abstract int getKeySizeFixed(); /** * Gets a consumer for the key size in bits specified for this algorithm variant. @@ -1044,7 +1044,7 @@ module CryptographyBase Input> { abstract KeyArtifactType getOutputKeyType(); // Defaults or fixed values - string getKeySizeFixed() { none() } + int getKeySizeFixed() { none() } // Consumer input nodes abstract ConsumerInputDataFlowNode getKeySizeConsumer(); @@ -1900,7 +1900,7 @@ module CryptographyBase Input> { or // [ONLY_KNOWN] key = "DefaultKeySize" and - value = kdfInstance.getKeySizeFixed() and + value = kdfInstance.getKeySizeFixed().toString() and location = this.getLocation() or // [ONLY_KNOWN] - TODO: refactor for known unknowns @@ -2259,13 +2259,10 @@ module CryptographyBase Input> { /** * Gets the key size variant of this algorithm in bits, e.g., 128 for "AES-128". */ - string getKeySizeFixed() { + int getKeySizeFixed() { result = instance.asAlg().getKeySizeFixed() or - exists(int size | - KeyOpAlg::fixedImplicitCipherKeySize(instance.asAlg().getAlgorithmType(), size) and - result = size.toString() - ) + KeyOpAlg::fixedImplicitCipherKeySize(instance.asAlg().getAlgorithmType(), result) } /** @@ -2333,7 +2330,7 @@ module CryptographyBase Input> { // [ONLY_KNOWN] key = "KeySize" and ( - value = this.getKeySizeFixed() and + value = this.getKeySizeFixed().toString() and location = this.getLocation() or node_as_property(this.getKeySize(), value, location) From c3ed4549f46c017c4ac751c8bd1577153a2684ad Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 20 May 2025 09:52:23 -0400 Subject: [PATCH 510/656] Crypto: Changing fixed key size for the key gen operation for EC key gen to be none, and rely implicitly on the connected algorithm length. (+1 squashed commits) (+1 squashed commits) Squashed commits: [b7cd7baa42] Crypto: Modeled EC key gen for openssl. (+1 squashed commits) --- .../EllipticCurveAlgorithmInstance.qll | 7 +- .../OpenSSL/Operations/ECKeyGenOperation.qll | 65 +++++++++++++++++++ .../OpenSSL/Operations/OpenSSLOperations.qll | 1 + 3 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll index d80529dd1c6..574869ca29c 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll @@ -35,8 +35,11 @@ class KnownOpenSSLEllipticCurveConstantAlgorithmInstance extends OpenSSLAlgorith override string getRawEllipticCurveName() { result = this.(Literal).getValue().toString() } override Crypto::TEllipticCurveType getEllipticCurveType() { - Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.(KnownOpenSSLEllipticCurveAlgorithmConstant) - .getNormalizedName(), _, result) + Crypto::ellipticCurveNameToKeySizeAndFamilyMapping(this.getParsedEllipticCurveName(), _, result) + } + + override string getParsedEllipticCurveName() { + result = this.(KnownOpenSSLEllipticCurveAlgorithmConstant).getNormalizedName() } override int getKeySize() { diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll new file mode 100644 index 00000000000..4a28e565d4e --- /dev/null +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll @@ -0,0 +1,65 @@ +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.LibraryDetector +private import experimental.quantum.OpenSSL.CtxFlow as CTXFlow +private import OpenSSLOperationBase +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +private import semmle.code.cpp.dataflow.new.DataFlow + +private module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + exists(OpenSSLAlgorithmValueConsumer c | c.getResultNode() = source) + } + + predicate isSink(DataFlow::Node sink) { + exists(ECKeyGenOperation c | c.getAlgorithmArg() = sink.asExpr()) + } +} + +private module AlgGetterToAlgConsumerFlow = DataFlow::Global; + +class ECKeyGenOperation extends OpenSSLOperation, Crypto::KeyGenerationOperationInstance { + ECKeyGenOperation() { + this.(Call).getTarget().getName() = "EC_KEY_generate_key" and + isPossibleOpenSSLFunction(this.(Call).getTarget()) + } + + override Expr getOutputArg() { + result = this.(Call) // return value of call + } + + Expr getAlgorithmArg() { result = this.(Call).getArgument(0) } + + override Expr getInputArg() { + // there is no 'input', in the sense that no data is being manipualted by the operation. + // There is an input of an algorithm, but that is not the intention of the operation input arg. + none() + } + + override Crypto::KeyArtifactType getOutputKeyType() { result = Crypto::TAsymmetricKeyType() } + + override Crypto::ArtifactOutputDataFlowNode getOutputKeyArtifact() { + result = this.getOutputNode() + } + + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + AlgGetterToAlgConsumerFlow::flow(result.(OpenSSLAlgorithmValueConsumer).getResultNode(), + DataFlow::exprNode(this.getAlgorithmArg())) + } + + override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { + none() // no explicit key size, inferred from algorithm + } + + override int getKeySizeFixed() { + none() + // TODO: marked as none as the operation itself has no key size, it + // comes from the algorithm source, but note we could grab the + // algorithm source and get the key size (see below). + // We may need to reconsider what is the best approach here. + // result = + // this.getAnAlgorithmValueConsumer() + // .getAKnownAlgorithmSource() + // .(Crypto::EllipticCurveInstance) + // .getKeySize() + } +} diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperations.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperations.qll index 819e964878c..f6ff0dd1f07 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperations.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperations.qll @@ -1,3 +1,4 @@ import OpenSSLOperationBase import EVPCipherOperation import EVPHashOperation +import ECKeyGenOperation From efd9386d6e09f207ec4ed3971b0d138d5d1c2ab7 Mon Sep 17 00:00:00 2001 From: Ben Rodes Date: Tue, 20 May 2025 10:58:19 -0400 Subject: [PATCH 511/656] Update cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../quantum/OpenSSL/Operations/ECKeyGenOperation.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll index 4a28e565d4e..9dc723bb5d1 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll @@ -30,7 +30,7 @@ class ECKeyGenOperation extends OpenSSLOperation, Crypto::KeyGenerationOperation Expr getAlgorithmArg() { result = this.(Call).getArgument(0) } override Expr getInputArg() { - // there is no 'input', in the sense that no data is being manipualted by the operation. + // there is no 'input', in the sense that no data is being manipulated by the operation. // There is an input of an algorithm, but that is not the intention of the operation input arg. none() } From d35fc64987c2a3bbb8e2ec82111b0b54ab33f3d6 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 20 May 2025 11:22:53 -0400 Subject: [PATCH 512/656] Crypto: Missing openssl EVP digest consumers. --- .../HashAlgorithmValueConsumer.qll | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll index a1c0a214b9a..066f0fa1a3a 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll @@ -30,3 +30,34 @@ class EVP_Q_Digest_Algorithm_Consumer extends OpenSSLAlgorithmValueConsumer { none() } } + +/** + * EVP digest algorithm getters + * https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis + */ +class EVPDigestAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { + DataFlow::Node valueArgNode; + DataFlow::Node resultNode; + + EVPDigestAlgorithmValueConsumer() { + resultNode.asExpr() = this and + isPossibleOpenSSLFunction(this.(Call).getTarget()) and + ( + this.(Call).getTarget().getName() in [ + "EVP_get_digestbyname", "EVP_get_digestbynid", "EVP_get_digestbyobj" + ] and + valueArgNode.asExpr() = this.(Call).getArgument(0) + or + this.(Call).getTarget().getName() = "EVP_MD_fetch" and + valueArgNode.asExpr() = this.(Call).getArgument(1) + ) + } + + override DataFlow::Node getResultNode() { result = resultNode } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result = valueArgNode } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + exists(OpenSSLAlgorithmInstance i | i.getAVC() = this and result = i) + } +} From e5af4597879a46e2a61f8bacffbe6a5f41842b54 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 16:54:38 +0100 Subject: [PATCH 513/656] Rust: Correct what we're testing here. --- .../CWE-312/CleartextLogging.expected | 344 +++++++++--------- .../security/CWE-312/test_logging.rs | 34 +- 2 files changed, 193 insertions(+), 185 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected index b81d85d9027..4d76ae3b5a5 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected @@ -28,25 +28,25 @@ | test_logging.rs:101:5:101:19 | ...::log | test_logging.rs:100:38:100:45 | password | test_logging.rs:101:5:101:19 | ...::log | This operation writes $@ to a log file. | test_logging.rs:100:38:100:45 | password | password | | test_logging.rs:119:5:119:42 | ...::log | test_logging.rs:119:28:119:41 | get_password(...) | test_logging.rs:119:5:119:42 | ...::log | This operation writes $@ to a log file. | test_logging.rs:119:28:119:41 | get_password(...) | get_password(...) | | test_logging.rs:132:5:132:32 | ...::log | test_logging.rs:130:25:130:32 | password | test_logging.rs:132:5:132:32 | ...::log | This operation writes $@ to a log file. | test_logging.rs:130:25:130:32 | password | password | -| test_logging.rs:179:5:179:38 | ...::_print | test_logging.rs:179:30:179:37 | password | test_logging.rs:179:5:179:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:179:30:179:37 | password | password | -| test_logging.rs:180:5:180:38 | ...::_print | test_logging.rs:180:30:180:37 | password | test_logging.rs:180:5:180:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:180:30:180:37 | password | password | -| test_logging.rs:181:5:181:39 | ...::_eprint | test_logging.rs:181:31:181:38 | password | test_logging.rs:181:5:181:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:181:31:181:38 | password | password | -| test_logging.rs:182:5:182:39 | ...::_eprint | test_logging.rs:182:31:182:38 | password | test_logging.rs:182:5:182:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:182:31:182:38 | password | password | -| test_logging.rs:185:16:185:47 | ...::panic_fmt | test_logging.rs:185:39:185:46 | password | test_logging.rs:185:16:185:47 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:185:39:185:46 | password | password | -| test_logging.rs:186:16:186:46 | ...::panic_fmt | test_logging.rs:186:38:186:45 | password | test_logging.rs:186:16:186:46 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:186:38:186:45 | password | password | -| test_logging.rs:187:16:187:55 | ...::panic_fmt | test_logging.rs:187:47:187:54 | password | test_logging.rs:187:16:187:55 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:187:47:187:54 | password | password | -| test_logging.rs:188:16:188:53 | ...::panic_fmt | test_logging.rs:188:45:188:52 | password | test_logging.rs:188:16:188:53 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:188:45:188:52 | password | password | -| test_logging.rs:189:16:189:55 | ...::panic_fmt | test_logging.rs:189:47:189:54 | password | test_logging.rs:189:16:189:55 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:189:47:189:54 | password | password | -| test_logging.rs:190:16:190:57 | ...::assert_failed | test_logging.rs:190:49:190:56 | password | test_logging.rs:190:16:190:57 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:190:49:190:56 | password | password | -| test_logging.rs:191:16:191:57 | ...::assert_failed | test_logging.rs:191:49:191:56 | password | test_logging.rs:191:16:191:57 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:191:49:191:56 | password | password | -| test_logging.rs:192:16:192:61 | ...::panic_fmt | test_logging.rs:192:53:192:60 | password | test_logging.rs:192:16:192:61 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:192:53:192:60 | password | password | -| test_logging.rs:193:16:193:63 | ...::assert_failed | test_logging.rs:193:55:193:62 | password | test_logging.rs:193:16:193:63 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:193:55:193:62 | password | password | -| test_logging.rs:194:17:194:64 | ...::assert_failed | test_logging.rs:194:56:194:63 | password | test_logging.rs:194:17:194:64 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:194:56:194:63 | password | password | -| test_logging.rs:195:27:195:32 | expect | test_logging.rs:195:58:195:65 | password | test_logging.rs:195:27:195:32 | expect | This operation writes $@ to a log file. | test_logging.rs:195:58:195:65 | password | password | -| test_logging.rs:201:30:201:34 | write | test_logging.rs:201:62:201:69 | password | test_logging.rs:201:30:201:34 | write | This operation writes $@ to a log file. | test_logging.rs:201:62:201:69 | password | password | -| test_logging.rs:202:30:202:38 | write_all | test_logging.rs:202:66:202:73 | password | test_logging.rs:202:30:202:38 | write_all | This operation writes $@ to a log file. | test_logging.rs:202:66:202:73 | password | password | -| test_logging.rs:205:9:205:13 | write | test_logging.rs:205:41:205:48 | password | test_logging.rs:205:9:205:13 | write | This operation writes $@ to a log file. | test_logging.rs:205:41:205:48 | password | password | -| test_logging.rs:208:9:208:13 | write | test_logging.rs:208:41:208:48 | password | test_logging.rs:208:9:208:13 | write | This operation writes $@ to a log file. | test_logging.rs:208:41:208:48 | password | password | +| test_logging.rs:187:5:187:38 | ...::_print | test_logging.rs:187:30:187:37 | password | test_logging.rs:187:5:187:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:187:30:187:37 | password | password | +| test_logging.rs:188:5:188:38 | ...::_print | test_logging.rs:188:30:188:37 | password | test_logging.rs:188:5:188:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:188:30:188:37 | password | password | +| test_logging.rs:189:5:189:39 | ...::_eprint | test_logging.rs:189:31:189:38 | password | test_logging.rs:189:5:189:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:189:31:189:38 | password | password | +| test_logging.rs:190:5:190:39 | ...::_eprint | test_logging.rs:190:31:190:38 | password | test_logging.rs:190:5:190:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:190:31:190:38 | password | password | +| test_logging.rs:193:16:193:47 | ...::panic_fmt | test_logging.rs:193:39:193:46 | password | test_logging.rs:193:16:193:47 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:193:39:193:46 | password | password | +| test_logging.rs:194:16:194:46 | ...::panic_fmt | test_logging.rs:194:38:194:45 | password | test_logging.rs:194:16:194:46 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:194:38:194:45 | password | password | +| test_logging.rs:195:16:195:55 | ...::panic_fmt | test_logging.rs:195:47:195:54 | password | test_logging.rs:195:16:195:55 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:195:47:195:54 | password | password | +| test_logging.rs:196:16:196:53 | ...::panic_fmt | test_logging.rs:196:45:196:52 | password | test_logging.rs:196:16:196:53 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:196:45:196:52 | password | password | +| test_logging.rs:197:16:197:55 | ...::panic_fmt | test_logging.rs:197:47:197:54 | password | test_logging.rs:197:16:197:55 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:197:47:197:54 | password | password | +| test_logging.rs:198:16:198:57 | ...::assert_failed | test_logging.rs:198:49:198:56 | password | test_logging.rs:198:16:198:57 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:198:49:198:56 | password | password | +| test_logging.rs:199:16:199:57 | ...::assert_failed | test_logging.rs:199:49:199:56 | password | test_logging.rs:199:16:199:57 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:199:49:199:56 | password | password | +| test_logging.rs:200:16:200:61 | ...::panic_fmt | test_logging.rs:200:53:200:60 | password | test_logging.rs:200:16:200:61 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:200:53:200:60 | password | password | +| test_logging.rs:201:16:201:63 | ...::assert_failed | test_logging.rs:201:55:201:62 | password | test_logging.rs:201:16:201:63 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:201:55:201:62 | password | password | +| test_logging.rs:202:17:202:64 | ...::assert_failed | test_logging.rs:202:56:202:63 | password | test_logging.rs:202:17:202:64 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:202:56:202:63 | password | password | +| test_logging.rs:203:27:203:32 | expect | test_logging.rs:203:58:203:65 | password | test_logging.rs:203:27:203:32 | expect | This operation writes $@ to a log file. | test_logging.rs:203:58:203:65 | password | password | +| test_logging.rs:209:30:209:34 | write | test_logging.rs:209:62:209:69 | password | test_logging.rs:209:30:209:34 | write | This operation writes $@ to a log file. | test_logging.rs:209:62:209:69 | password | password | +| test_logging.rs:210:30:210:38 | write_all | test_logging.rs:210:66:210:73 | password | test_logging.rs:210:30:210:38 | write_all | This operation writes $@ to a log file. | test_logging.rs:210:66:210:73 | password | password | +| test_logging.rs:213:9:213:13 | write | test_logging.rs:213:41:213:48 | password | test_logging.rs:213:9:213:13 | write | This operation writes $@ to a log file. | test_logging.rs:213:41:213:48 | password | password | +| test_logging.rs:216:9:216:13 | write | test_logging.rs:216:41:216:48 | password | test_logging.rs:216:9:216:13 | write | This operation writes $@ to a log file. | test_logging.rs:216:41:216:48 | password | password | edges | test_logging.rs:43:12:43:35 | MacroExpr | test_logging.rs:43:5:43:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | | test_logging.rs:43:28:43:35 | password | test_logging.rs:43:12:43:35 | MacroExpr | provenance | | @@ -148,73 +148,73 @@ edges | test_logging.rs:132:12:132:31 | MacroExpr | test_logging.rs:132:5:132:32 | ...::log | provenance | MaD:9 Sink:MaD:9 | | test_logging.rs:132:28:132:29 | t1 [tuple.1] | test_logging.rs:132:28:132:31 | t1.1 | provenance | | | test_logging.rs:132:28:132:31 | t1.1 | test_logging.rs:132:12:132:31 | MacroExpr | provenance | | -| test_logging.rs:179:12:179:37 | MacroExpr | test_logging.rs:179:5:179:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | -| test_logging.rs:179:30:179:37 | password | test_logging.rs:179:12:179:37 | MacroExpr | provenance | | -| test_logging.rs:180:14:180:37 | MacroExpr | test_logging.rs:180:5:180:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | -| test_logging.rs:180:30:180:37 | password | test_logging.rs:180:14:180:37 | MacroExpr | provenance | | -| test_logging.rs:181:13:181:38 | MacroExpr | test_logging.rs:181:5:181:39 | ...::_eprint | provenance | MaD:7 Sink:MaD:7 | -| test_logging.rs:181:31:181:38 | password | test_logging.rs:181:13:181:38 | MacroExpr | provenance | | -| test_logging.rs:182:15:182:38 | MacroExpr | test_logging.rs:182:5:182:39 | ...::_eprint | provenance | MaD:7 Sink:MaD:7 | -| test_logging.rs:182:31:182:38 | password | test_logging.rs:182:15:182:38 | MacroExpr | provenance | | -| test_logging.rs:185:23:185:46 | MacroExpr | test_logging.rs:185:16:185:47 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:185:39:185:46 | password | test_logging.rs:185:23:185:46 | MacroExpr | provenance | | -| test_logging.rs:186:22:186:45 | MacroExpr | test_logging.rs:186:16:186:46 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:186:38:186:45 | password | test_logging.rs:186:22:186:45 | MacroExpr | provenance | | -| test_logging.rs:187:31:187:54 | MacroExpr | test_logging.rs:187:16:187:55 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:187:47:187:54 | password | test_logging.rs:187:31:187:54 | MacroExpr | provenance | | -| test_logging.rs:188:29:188:52 | MacroExpr | test_logging.rs:188:16:188:53 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:188:45:188:52 | password | test_logging.rs:188:29:188:52 | MacroExpr | provenance | | -| test_logging.rs:189:31:189:54 | MacroExpr | test_logging.rs:189:16:189:55 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:189:47:189:54 | password | test_logging.rs:189:31:189:54 | MacroExpr | provenance | | -| test_logging.rs:190:33:190:56 | ...::Some(...) [Some] | test_logging.rs:190:16:190:57 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | -| test_logging.rs:190:33:190:56 | MacroExpr | test_logging.rs:190:33:190:56 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:190:49:190:56 | password | test_logging.rs:190:33:190:56 | MacroExpr | provenance | | -| test_logging.rs:191:33:191:56 | ...::Some(...) [Some] | test_logging.rs:191:16:191:57 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | -| test_logging.rs:191:33:191:56 | MacroExpr | test_logging.rs:191:33:191:56 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:191:49:191:56 | password | test_logging.rs:191:33:191:56 | MacroExpr | provenance | | -| test_logging.rs:192:37:192:60 | MacroExpr | test_logging.rs:192:16:192:61 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:192:53:192:60 | password | test_logging.rs:192:37:192:60 | MacroExpr | provenance | | -| test_logging.rs:193:39:193:62 | ...::Some(...) [Some] | test_logging.rs:193:16:193:63 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | -| test_logging.rs:193:39:193:62 | MacroExpr | test_logging.rs:193:39:193:62 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:193:55:193:62 | password | test_logging.rs:193:39:193:62 | MacroExpr | provenance | | -| test_logging.rs:194:40:194:63 | ...::Some(...) [Some] | test_logging.rs:194:17:194:64 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | -| test_logging.rs:194:40:194:63 | MacroExpr | test_logging.rs:194:40:194:63 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:194:56:194:63 | password | test_logging.rs:194:40:194:63 | MacroExpr | provenance | | -| test_logging.rs:195:34:195:66 | res | test_logging.rs:195:42:195:65 | { ... } | provenance | | -| test_logging.rs:195:34:195:75 | ... .as_str() | test_logging.rs:195:27:195:32 | expect | provenance | MaD:1 Sink:MaD:1 | -| test_logging.rs:195:42:195:65 | ...::format(...) | test_logging.rs:195:34:195:66 | res | provenance | | -| test_logging.rs:195:42:195:65 | ...::must_use(...) | test_logging.rs:195:34:195:75 | ... .as_str() | provenance | MaD:12 | -| test_logging.rs:195:42:195:65 | MacroExpr | test_logging.rs:195:42:195:65 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:195:42:195:65 | { ... } | test_logging.rs:195:42:195:65 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:195:58:195:65 | password | test_logging.rs:195:42:195:65 | MacroExpr | provenance | | -| test_logging.rs:201:36:201:70 | res | test_logging.rs:201:44:201:69 | { ... } | provenance | | -| test_logging.rs:201:36:201:81 | ... .as_bytes() | test_logging.rs:201:30:201:34 | write | provenance | MaD:5 Sink:MaD:5 | -| test_logging.rs:201:44:201:69 | ...::format(...) | test_logging.rs:201:36:201:70 | res | provenance | | -| test_logging.rs:201:44:201:69 | ...::must_use(...) | test_logging.rs:201:36:201:81 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:201:44:201:69 | MacroExpr | test_logging.rs:201:44:201:69 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:201:44:201:69 | { ... } | test_logging.rs:201:44:201:69 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:201:62:201:69 | password | test_logging.rs:201:44:201:69 | MacroExpr | provenance | | -| test_logging.rs:202:40:202:74 | res | test_logging.rs:202:48:202:73 | { ... } | provenance | | -| test_logging.rs:202:40:202:85 | ... .as_bytes() | test_logging.rs:202:30:202:38 | write_all | provenance | MaD:6 Sink:MaD:6 | -| test_logging.rs:202:48:202:73 | ...::format(...) | test_logging.rs:202:40:202:74 | res | provenance | | -| test_logging.rs:202:48:202:73 | ...::must_use(...) | test_logging.rs:202:40:202:85 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:202:48:202:73 | MacroExpr | test_logging.rs:202:48:202:73 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:202:48:202:73 | { ... } | test_logging.rs:202:48:202:73 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:202:66:202:73 | password | test_logging.rs:202:48:202:73 | MacroExpr | provenance | | -| test_logging.rs:205:15:205:49 | res | test_logging.rs:205:23:205:48 | { ... } | provenance | | -| test_logging.rs:205:15:205:60 | ... .as_bytes() | test_logging.rs:205:9:205:13 | write | provenance | MaD:5 Sink:MaD:5 | -| test_logging.rs:205:23:205:48 | ...::format(...) | test_logging.rs:205:15:205:49 | res | provenance | | -| test_logging.rs:205:23:205:48 | ...::must_use(...) | test_logging.rs:205:15:205:60 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:205:23:205:48 | MacroExpr | test_logging.rs:205:23:205:48 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:205:23:205:48 | { ... } | test_logging.rs:205:23:205:48 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:205:41:205:48 | password | test_logging.rs:205:23:205:48 | MacroExpr | provenance | | -| test_logging.rs:208:15:208:49 | res | test_logging.rs:208:23:208:48 | { ... } | provenance | | -| test_logging.rs:208:15:208:60 | ... .as_bytes() | test_logging.rs:208:9:208:13 | write | provenance | MaD:4 Sink:MaD:4 | -| test_logging.rs:208:23:208:48 | ...::format(...) | test_logging.rs:208:15:208:49 | res | provenance | | -| test_logging.rs:208:23:208:48 | ...::must_use(...) | test_logging.rs:208:15:208:60 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:208:23:208:48 | MacroExpr | test_logging.rs:208:23:208:48 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:208:23:208:48 | { ... } | test_logging.rs:208:23:208:48 | ...::must_use(...) | provenance | MaD:14 | -| test_logging.rs:208:41:208:48 | password | test_logging.rs:208:23:208:48 | MacroExpr | provenance | | +| test_logging.rs:187:12:187:37 | MacroExpr | test_logging.rs:187:5:187:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | +| test_logging.rs:187:30:187:37 | password | test_logging.rs:187:12:187:37 | MacroExpr | provenance | | +| test_logging.rs:188:14:188:37 | MacroExpr | test_logging.rs:188:5:188:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | +| test_logging.rs:188:30:188:37 | password | test_logging.rs:188:14:188:37 | MacroExpr | provenance | | +| test_logging.rs:189:13:189:38 | MacroExpr | test_logging.rs:189:5:189:39 | ...::_eprint | provenance | MaD:7 Sink:MaD:7 | +| test_logging.rs:189:31:189:38 | password | test_logging.rs:189:13:189:38 | MacroExpr | provenance | | +| test_logging.rs:190:15:190:38 | MacroExpr | test_logging.rs:190:5:190:39 | ...::_eprint | provenance | MaD:7 Sink:MaD:7 | +| test_logging.rs:190:31:190:38 | password | test_logging.rs:190:15:190:38 | MacroExpr | provenance | | +| test_logging.rs:193:23:193:46 | MacroExpr | test_logging.rs:193:16:193:47 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:193:39:193:46 | password | test_logging.rs:193:23:193:46 | MacroExpr | provenance | | +| test_logging.rs:194:22:194:45 | MacroExpr | test_logging.rs:194:16:194:46 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:194:38:194:45 | password | test_logging.rs:194:22:194:45 | MacroExpr | provenance | | +| test_logging.rs:195:31:195:54 | MacroExpr | test_logging.rs:195:16:195:55 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:195:47:195:54 | password | test_logging.rs:195:31:195:54 | MacroExpr | provenance | | +| test_logging.rs:196:29:196:52 | MacroExpr | test_logging.rs:196:16:196:53 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:196:45:196:52 | password | test_logging.rs:196:29:196:52 | MacroExpr | provenance | | +| test_logging.rs:197:31:197:54 | MacroExpr | test_logging.rs:197:16:197:55 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:197:47:197:54 | password | test_logging.rs:197:31:197:54 | MacroExpr | provenance | | +| test_logging.rs:198:33:198:56 | ...::Some(...) [Some] | test_logging.rs:198:16:198:57 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:198:33:198:56 | MacroExpr | test_logging.rs:198:33:198:56 | ...::Some(...) [Some] | provenance | | +| test_logging.rs:198:49:198:56 | password | test_logging.rs:198:33:198:56 | MacroExpr | provenance | | +| test_logging.rs:199:33:199:56 | ...::Some(...) [Some] | test_logging.rs:199:16:199:57 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:199:33:199:56 | MacroExpr | test_logging.rs:199:33:199:56 | ...::Some(...) [Some] | provenance | | +| test_logging.rs:199:49:199:56 | password | test_logging.rs:199:33:199:56 | MacroExpr | provenance | | +| test_logging.rs:200:37:200:60 | MacroExpr | test_logging.rs:200:16:200:61 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | +| test_logging.rs:200:53:200:60 | password | test_logging.rs:200:37:200:60 | MacroExpr | provenance | | +| test_logging.rs:201:39:201:62 | ...::Some(...) [Some] | test_logging.rs:201:16:201:63 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:201:39:201:62 | MacroExpr | test_logging.rs:201:39:201:62 | ...::Some(...) [Some] | provenance | | +| test_logging.rs:201:55:201:62 | password | test_logging.rs:201:39:201:62 | MacroExpr | provenance | | +| test_logging.rs:202:40:202:63 | ...::Some(...) [Some] | test_logging.rs:202:17:202:64 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:202:40:202:63 | MacroExpr | test_logging.rs:202:40:202:63 | ...::Some(...) [Some] | provenance | | +| test_logging.rs:202:56:202:63 | password | test_logging.rs:202:40:202:63 | MacroExpr | provenance | | +| test_logging.rs:203:34:203:66 | res | test_logging.rs:203:42:203:65 | { ... } | provenance | | +| test_logging.rs:203:34:203:75 | ... .as_str() | test_logging.rs:203:27:203:32 | expect | provenance | MaD:1 Sink:MaD:1 | +| test_logging.rs:203:42:203:65 | ...::format(...) | test_logging.rs:203:34:203:66 | res | provenance | | +| test_logging.rs:203:42:203:65 | ...::must_use(...) | test_logging.rs:203:34:203:75 | ... .as_str() | provenance | MaD:12 | +| test_logging.rs:203:42:203:65 | MacroExpr | test_logging.rs:203:42:203:65 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:203:42:203:65 | { ... } | test_logging.rs:203:42:203:65 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:203:58:203:65 | password | test_logging.rs:203:42:203:65 | MacroExpr | provenance | | +| test_logging.rs:209:36:209:70 | res | test_logging.rs:209:44:209:69 | { ... } | provenance | | +| test_logging.rs:209:36:209:81 | ... .as_bytes() | test_logging.rs:209:30:209:34 | write | provenance | MaD:5 Sink:MaD:5 | +| test_logging.rs:209:44:209:69 | ...::format(...) | test_logging.rs:209:36:209:70 | res | provenance | | +| test_logging.rs:209:44:209:69 | ...::must_use(...) | test_logging.rs:209:36:209:81 | ... .as_bytes() | provenance | MaD:11 | +| test_logging.rs:209:44:209:69 | MacroExpr | test_logging.rs:209:44:209:69 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:209:44:209:69 | { ... } | test_logging.rs:209:44:209:69 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:209:62:209:69 | password | test_logging.rs:209:44:209:69 | MacroExpr | provenance | | +| test_logging.rs:210:40:210:74 | res | test_logging.rs:210:48:210:73 | { ... } | provenance | | +| test_logging.rs:210:40:210:85 | ... .as_bytes() | test_logging.rs:210:30:210:38 | write_all | provenance | MaD:6 Sink:MaD:6 | +| test_logging.rs:210:48:210:73 | ...::format(...) | test_logging.rs:210:40:210:74 | res | provenance | | +| test_logging.rs:210:48:210:73 | ...::must_use(...) | test_logging.rs:210:40:210:85 | ... .as_bytes() | provenance | MaD:11 | +| test_logging.rs:210:48:210:73 | MacroExpr | test_logging.rs:210:48:210:73 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:210:48:210:73 | { ... } | test_logging.rs:210:48:210:73 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:210:66:210:73 | password | test_logging.rs:210:48:210:73 | MacroExpr | provenance | | +| test_logging.rs:213:15:213:49 | res | test_logging.rs:213:23:213:48 | { ... } | provenance | | +| test_logging.rs:213:15:213:60 | ... .as_bytes() | test_logging.rs:213:9:213:13 | write | provenance | MaD:5 Sink:MaD:5 | +| test_logging.rs:213:23:213:48 | ...::format(...) | test_logging.rs:213:15:213:49 | res | provenance | | +| test_logging.rs:213:23:213:48 | ...::must_use(...) | test_logging.rs:213:15:213:60 | ... .as_bytes() | provenance | MaD:11 | +| test_logging.rs:213:23:213:48 | MacroExpr | test_logging.rs:213:23:213:48 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:213:23:213:48 | { ... } | test_logging.rs:213:23:213:48 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:213:41:213:48 | password | test_logging.rs:213:23:213:48 | MacroExpr | provenance | | +| test_logging.rs:216:15:216:49 | res | test_logging.rs:216:23:216:48 | { ... } | provenance | | +| test_logging.rs:216:15:216:60 | ... .as_bytes() | test_logging.rs:216:9:216:13 | write | provenance | MaD:4 Sink:MaD:4 | +| test_logging.rs:216:23:216:48 | ...::format(...) | test_logging.rs:216:15:216:49 | res | provenance | | +| test_logging.rs:216:23:216:48 | ...::must_use(...) | test_logging.rs:216:15:216:60 | ... .as_bytes() | provenance | MaD:11 | +| test_logging.rs:216:23:216:48 | MacroExpr | test_logging.rs:216:23:216:48 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:216:23:216:48 | { ... } | test_logging.rs:216:23:216:48 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:216:41:216:48 | password | test_logging.rs:216:23:216:48 | MacroExpr | provenance | | models | 1 | Sink: lang:core; ::expect; log-injection; Argument[0] | | 2 | Sink: lang:core; crate::panicking::assert_failed; log-injection; Argument[3].Field[crate::option::Option::Some(0)] | @@ -352,90 +352,90 @@ nodes | test_logging.rs:132:12:132:31 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:132:28:132:29 | t1 [tuple.1] | semmle.label | t1 [tuple.1] | | test_logging.rs:132:28:132:31 | t1.1 | semmle.label | t1.1 | -| test_logging.rs:179:5:179:38 | ...::_print | semmle.label | ...::_print | -| test_logging.rs:179:12:179:37 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:179:30:179:37 | password | semmle.label | password | -| test_logging.rs:180:5:180:38 | ...::_print | semmle.label | ...::_print | -| test_logging.rs:180:14:180:37 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:180:30:180:37 | password | semmle.label | password | -| test_logging.rs:181:5:181:39 | ...::_eprint | semmle.label | ...::_eprint | -| test_logging.rs:181:13:181:38 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:181:31:181:38 | password | semmle.label | password | -| test_logging.rs:182:5:182:39 | ...::_eprint | semmle.label | ...::_eprint | -| test_logging.rs:182:15:182:38 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:182:31:182:38 | password | semmle.label | password | -| test_logging.rs:185:16:185:47 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:185:23:185:46 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:185:39:185:46 | password | semmle.label | password | -| test_logging.rs:186:16:186:46 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:186:22:186:45 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:186:38:186:45 | password | semmle.label | password | -| test_logging.rs:187:16:187:55 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:187:31:187:54 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:187:47:187:54 | password | semmle.label | password | -| test_logging.rs:188:16:188:53 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:188:29:188:52 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:188:45:188:52 | password | semmle.label | password | -| test_logging.rs:189:16:189:55 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:189:31:189:54 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:189:47:189:54 | password | semmle.label | password | -| test_logging.rs:190:16:190:57 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:190:33:190:56 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:190:33:190:56 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:190:49:190:56 | password | semmle.label | password | -| test_logging.rs:191:16:191:57 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:191:33:191:56 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:191:33:191:56 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:191:49:191:56 | password | semmle.label | password | -| test_logging.rs:192:16:192:61 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:192:37:192:60 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:192:53:192:60 | password | semmle.label | password | -| test_logging.rs:193:16:193:63 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:193:39:193:62 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:193:39:193:62 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:193:55:193:62 | password | semmle.label | password | -| test_logging.rs:194:17:194:64 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:194:40:194:63 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:194:40:194:63 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:194:56:194:63 | password | semmle.label | password | -| test_logging.rs:195:27:195:32 | expect | semmle.label | expect | -| test_logging.rs:195:34:195:66 | res | semmle.label | res | -| test_logging.rs:195:34:195:75 | ... .as_str() | semmle.label | ... .as_str() | -| test_logging.rs:195:42:195:65 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:195:42:195:65 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:195:42:195:65 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:195:42:195:65 | { ... } | semmle.label | { ... } | -| test_logging.rs:195:58:195:65 | password | semmle.label | password | -| test_logging.rs:201:30:201:34 | write | semmle.label | write | -| test_logging.rs:201:36:201:70 | res | semmle.label | res | -| test_logging.rs:201:36:201:81 | ... .as_bytes() | semmle.label | ... .as_bytes() | -| test_logging.rs:201:44:201:69 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:201:44:201:69 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:201:44:201:69 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:201:44:201:69 | { ... } | semmle.label | { ... } | -| test_logging.rs:201:62:201:69 | password | semmle.label | password | -| test_logging.rs:202:30:202:38 | write_all | semmle.label | write_all | -| test_logging.rs:202:40:202:74 | res | semmle.label | res | -| test_logging.rs:202:40:202:85 | ... .as_bytes() | semmle.label | ... .as_bytes() | -| test_logging.rs:202:48:202:73 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:202:48:202:73 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:202:48:202:73 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:202:48:202:73 | { ... } | semmle.label | { ... } | -| test_logging.rs:202:66:202:73 | password | semmle.label | password | -| test_logging.rs:205:9:205:13 | write | semmle.label | write | -| test_logging.rs:205:15:205:49 | res | semmle.label | res | -| test_logging.rs:205:15:205:60 | ... .as_bytes() | semmle.label | ... .as_bytes() | -| test_logging.rs:205:23:205:48 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:205:23:205:48 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:205:23:205:48 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:205:23:205:48 | { ... } | semmle.label | { ... } | -| test_logging.rs:205:41:205:48 | password | semmle.label | password | -| test_logging.rs:208:9:208:13 | write | semmle.label | write | -| test_logging.rs:208:15:208:49 | res | semmle.label | res | -| test_logging.rs:208:15:208:60 | ... .as_bytes() | semmle.label | ... .as_bytes() | -| test_logging.rs:208:23:208:48 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:208:23:208:48 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:208:23:208:48 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:208:23:208:48 | { ... } | semmle.label | { ... } | -| test_logging.rs:208:41:208:48 | password | semmle.label | password | +| test_logging.rs:187:5:187:38 | ...::_print | semmle.label | ...::_print | +| test_logging.rs:187:12:187:37 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:187:30:187:37 | password | semmle.label | password | +| test_logging.rs:188:5:188:38 | ...::_print | semmle.label | ...::_print | +| test_logging.rs:188:14:188:37 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:188:30:188:37 | password | semmle.label | password | +| test_logging.rs:189:5:189:39 | ...::_eprint | semmle.label | ...::_eprint | +| test_logging.rs:189:13:189:38 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:189:31:189:38 | password | semmle.label | password | +| test_logging.rs:190:5:190:39 | ...::_eprint | semmle.label | ...::_eprint | +| test_logging.rs:190:15:190:38 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:190:31:190:38 | password | semmle.label | password | +| test_logging.rs:193:16:193:47 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:193:23:193:46 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:193:39:193:46 | password | semmle.label | password | +| test_logging.rs:194:16:194:46 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:194:22:194:45 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:194:38:194:45 | password | semmle.label | password | +| test_logging.rs:195:16:195:55 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:195:31:195:54 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:195:47:195:54 | password | semmle.label | password | +| test_logging.rs:196:16:196:53 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:196:29:196:52 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:196:45:196:52 | password | semmle.label | password | +| test_logging.rs:197:16:197:55 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:197:31:197:54 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:197:47:197:54 | password | semmle.label | password | +| test_logging.rs:198:16:198:57 | ...::assert_failed | semmle.label | ...::assert_failed | +| test_logging.rs:198:33:198:56 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | +| test_logging.rs:198:33:198:56 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:198:49:198:56 | password | semmle.label | password | +| test_logging.rs:199:16:199:57 | ...::assert_failed | semmle.label | ...::assert_failed | +| test_logging.rs:199:33:199:56 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | +| test_logging.rs:199:33:199:56 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:199:49:199:56 | password | semmle.label | password | +| test_logging.rs:200:16:200:61 | ...::panic_fmt | semmle.label | ...::panic_fmt | +| test_logging.rs:200:37:200:60 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:200:53:200:60 | password | semmle.label | password | +| test_logging.rs:201:16:201:63 | ...::assert_failed | semmle.label | ...::assert_failed | +| test_logging.rs:201:39:201:62 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | +| test_logging.rs:201:39:201:62 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:201:55:201:62 | password | semmle.label | password | +| test_logging.rs:202:17:202:64 | ...::assert_failed | semmle.label | ...::assert_failed | +| test_logging.rs:202:40:202:63 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | +| test_logging.rs:202:40:202:63 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:202:56:202:63 | password | semmle.label | password | +| test_logging.rs:203:27:203:32 | expect | semmle.label | expect | +| test_logging.rs:203:34:203:66 | res | semmle.label | res | +| test_logging.rs:203:34:203:75 | ... .as_str() | semmle.label | ... .as_str() | +| test_logging.rs:203:42:203:65 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:203:42:203:65 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:203:42:203:65 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:203:42:203:65 | { ... } | semmle.label | { ... } | +| test_logging.rs:203:58:203:65 | password | semmle.label | password | +| test_logging.rs:209:30:209:34 | write | semmle.label | write | +| test_logging.rs:209:36:209:70 | res | semmle.label | res | +| test_logging.rs:209:36:209:81 | ... .as_bytes() | semmle.label | ... .as_bytes() | +| test_logging.rs:209:44:209:69 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:209:44:209:69 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:209:44:209:69 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:209:44:209:69 | { ... } | semmle.label | { ... } | +| test_logging.rs:209:62:209:69 | password | semmle.label | password | +| test_logging.rs:210:30:210:38 | write_all | semmle.label | write_all | +| test_logging.rs:210:40:210:74 | res | semmle.label | res | +| test_logging.rs:210:40:210:85 | ... .as_bytes() | semmle.label | ... .as_bytes() | +| test_logging.rs:210:48:210:73 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:210:48:210:73 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:210:48:210:73 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:210:48:210:73 | { ... } | semmle.label | { ... } | +| test_logging.rs:210:66:210:73 | password | semmle.label | password | +| test_logging.rs:213:9:213:13 | write | semmle.label | write | +| test_logging.rs:213:15:213:49 | res | semmle.label | res | +| test_logging.rs:213:15:213:60 | ... .as_bytes() | semmle.label | ... .as_bytes() | +| test_logging.rs:213:23:213:48 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:213:23:213:48 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:213:23:213:48 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:213:23:213:48 | { ... } | semmle.label | { ... } | +| test_logging.rs:213:41:213:48 | password | semmle.label | password | +| test_logging.rs:216:9:216:13 | write | semmle.label | write | +| test_logging.rs:216:15:216:49 | res | semmle.label | res | +| test_logging.rs:216:15:216:60 | ... .as_bytes() | semmle.label | ... .as_bytes() | +| test_logging.rs:216:23:216:48 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:216:23:216:48 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:216:23:216:48 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:216:23:216:48 | { ... } | semmle.label | { ... } | +| test_logging.rs:216:41:216:48 | password | semmle.label | password | subpaths diff --git a/rust/ql/test/query-tests/security/CWE-312/test_logging.rs b/rust/ql/test/query-tests/security/CWE-312/test_logging.rs index 85252552100..6202bcaa2f4 100644 --- a/rust/ql/test/query-tests/security/CWE-312/test_logging.rs +++ b/rust/ql/test/query-tests/security/CWE-312/test_logging.rs @@ -148,31 +148,39 @@ fn test_log(harmless: String, password: String, encrypted_password: String) { warn!("message = {:?}", s2); // $ MISSING: Alert[rust/cleartext-logging]=s2 warn!("message = {:#?}", s2); // $ MISSING: Alert[rust/cleartext-logging]=s2 - // test log_expect with sensitive data let password2 = "123456".to_string(); // Create new password for this test + + // test `log_expect` with sensitive `Option.Some` (which is not output by `log_expect`) let sensitive_opt: Option = Some(password2.clone()); + let _ = sensitive_opt.log_expect("Option is None"); - // log_expect tests with LogErrOption trait - let _ = sensitive_opt.log_expect("Option is None"); // $ MISSING: Alert[rust/cleartext-logging] - - // log_expect tests with LogErrResult trait + // test `log_expect` with sensitive `Result.Ok` (which is not output by `log_expect`) let sensitive_result: Result = Ok(password2.clone()); - let _ = sensitive_result.log_expect("Result failed"); // $ MISSING: Alert[rust/cleartext-logging] + let _ = sensitive_result.log_expect("Result failed"); - // log_unwrap tests with LogErrOption trait + // test `log_unwrap` with sensitive `Option.Some` (which is not output by `log_unwrap`) let sensitive_opt2: Option = Some(password2.clone()); - let _ = sensitive_opt2.log_unwrap(); // $ MISSING: Alert[rust/cleartext-logging] + let _ = sensitive_opt2.log_unwrap(); - // log_unwrap tests with LogErrResult trait + // test `log_unwrap` with sensitive `Result.Ok` (which is not output by `log_unwrap`) let sensitive_result2: Result = Ok(password2.clone()); - let _ = sensitive_result2.log_unwrap(); // $ MISSING: Alert[rust/cleartext-logging] + let _ = sensitive_result2.log_unwrap(); - // Negative cases that should fail and log + // test `log_expect` on `Option` with sensitive message let none_opt: Option = None; let _ = none_opt.log_expect(&format!("Failed with password: {}", password2)); // $ MISSING: Alert[rust/cleartext-logging] - let err_result: Result = Err(password2); - let _ = err_result.log_unwrap(); // $ MISSING: Alert[rust/cleartext-logging] + // test `log_expect` on `Result` with sensitive message + let err_result: Result = Err(""); + let _ = err_result.log_expect(&format!("Failed with password: {}", password2)); // $ MISSING: Alert[rust/cleartext-logging] + + // test `log_expect` with sensitive `Result.Err` + let err_result2: Result = Err(password2.clone()); + let _ = err_result2.log_expect(""); // $ MISSING: Alert[rust/cleartext-logging] + + // test `log_unwrap` with sensitive `Result.Err` + let err_result3: Result = Err(password2); + let _ = err_result3.log_unwrap(); // $ MISSING: Alert[rust/cleartext-logging] } fn test_std(password: String, i: i32, opt_i: Option) { From e96e39c3d37552c6b178c404a1e30e3210632257 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 20 May 2025 15:51:25 +0100 Subject: [PATCH 514/656] Rust: Model log_err. --- .../lib/codeql/rust/frameworks/log.model.yml | 4 + .../CWE-312/CleartextLogging.expected | 175 ++++++++++++------ .../security/CWE-312/test_logging.rs | 8 +- 3 files changed, 123 insertions(+), 64 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/log.model.yml b/rust/ql/lib/codeql/rust/frameworks/log.model.yml index d6ac223742f..15f45c40093 100644 --- a/rust/ql/lib/codeql/rust/frameworks/log.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/log.model.yml @@ -17,3 +17,7 @@ extensions: - ["lang:core", "crate::panicking::panic_fmt", "Argument[0]", "log-injection", "manual"] - ["lang:core", "crate::panicking::assert_failed", "Argument[3].Field[crate::option::Option::Some(0)]", "log-injection", "manual"] - ["lang:core", "::expect", "Argument[0]", "log-injection", "manual"] + - ["repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err", "::log_expect", "Argument[0]", "log-injection", "manual"] + - ["repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err", "::log_unwrap", "Argument[self].Field[crate::result::Result::Err(0)]", "log-injection", "manual"] + - ["repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err", "::log_expect", "Argument[0]", "log-injection", "manual"] + - ["repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err", "::log_expect", "Argument[self].Field[crate::result::Result::Err(0)]", "log-injection", "manual"] diff --git a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected index 4d76ae3b5a5..c21ce5b8aef 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected @@ -28,6 +28,9 @@ | test_logging.rs:101:5:101:19 | ...::log | test_logging.rs:100:38:100:45 | password | test_logging.rs:101:5:101:19 | ...::log | This operation writes $@ to a log file. | test_logging.rs:100:38:100:45 | password | password | | test_logging.rs:119:5:119:42 | ...::log | test_logging.rs:119:28:119:41 | get_password(...) | test_logging.rs:119:5:119:42 | ...::log | This operation writes $@ to a log file. | test_logging.rs:119:28:119:41 | get_password(...) | get_password(...) | | test_logging.rs:132:5:132:32 | ...::log | test_logging.rs:130:25:130:32 | password | test_logging.rs:132:5:132:32 | ...::log | This operation writes $@ to a log file. | test_logging.rs:130:25:130:32 | password | password | +| test_logging.rs:171:22:171:31 | log_expect | test_logging.rs:171:70:171:78 | password2 | test_logging.rs:171:22:171:31 | log_expect | This operation writes $@ to a log file. | test_logging.rs:171:70:171:78 | password2 | password2 | +| test_logging.rs:175:24:175:33 | log_expect | test_logging.rs:175:72:175:80 | password2 | test_logging.rs:175:24:175:33 | log_expect | This operation writes $@ to a log file. | test_logging.rs:175:72:175:80 | password2 | password2 | +| test_logging.rs:183:25:183:34 | log_unwrap | test_logging.rs:182:51:182:59 | password2 | test_logging.rs:183:25:183:34 | log_unwrap | This operation writes $@ to a log file. | test_logging.rs:182:51:182:59 | password2 | password2 | | test_logging.rs:187:5:187:38 | ...::_print | test_logging.rs:187:30:187:37 | password | test_logging.rs:187:5:187:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:187:30:187:37 | password | password | | test_logging.rs:188:5:188:38 | ...::_print | test_logging.rs:188:30:188:37 | password | test_logging.rs:188:5:188:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:188:30:188:37 | password | password | | test_logging.rs:189:5:189:39 | ...::_eprint | test_logging.rs:189:31:189:38 | password | test_logging.rs:189:5:189:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:189:31:189:38 | password | password | @@ -48,106 +51,130 @@ | test_logging.rs:213:9:213:13 | write | test_logging.rs:213:41:213:48 | password | test_logging.rs:213:9:213:13 | write | This operation writes $@ to a log file. | test_logging.rs:213:41:213:48 | password | password | | test_logging.rs:216:9:216:13 | write | test_logging.rs:216:41:216:48 | password | test_logging.rs:216:9:216:13 | write | This operation writes $@ to a log file. | test_logging.rs:216:41:216:48 | password | password | edges -| test_logging.rs:43:12:43:35 | MacroExpr | test_logging.rs:43:5:43:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:43:12:43:35 | MacroExpr | test_logging.rs:43:5:43:36 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:43:28:43:35 | password | test_logging.rs:43:12:43:35 | MacroExpr | provenance | | -| test_logging.rs:44:12:44:35 | MacroExpr | test_logging.rs:44:5:44:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:44:12:44:35 | MacroExpr | test_logging.rs:44:5:44:36 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:44:28:44:35 | password | test_logging.rs:44:12:44:35 | MacroExpr | provenance | | -| test_logging.rs:45:11:45:34 | MacroExpr | test_logging.rs:45:5:45:35 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:45:11:45:34 | MacroExpr | test_logging.rs:45:5:45:35 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:45:27:45:34 | password | test_logging.rs:45:11:45:34 | MacroExpr | provenance | | -| test_logging.rs:46:12:46:35 | MacroExpr | test_logging.rs:46:5:46:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:46:12:46:35 | MacroExpr | test_logging.rs:46:5:46:36 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:46:28:46:35 | password | test_logging.rs:46:12:46:35 | MacroExpr | provenance | | -| test_logging.rs:47:11:47:34 | MacroExpr | test_logging.rs:47:5:47:35 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:47:11:47:34 | MacroExpr | test_logging.rs:47:5:47:35 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:47:27:47:34 | password | test_logging.rs:47:11:47:34 | MacroExpr | provenance | | -| test_logging.rs:48:24:48:47 | MacroExpr | test_logging.rs:48:5:48:48 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:48:24:48:47 | MacroExpr | test_logging.rs:48:5:48:48 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:48:40:48:47 | password | test_logging.rs:48:24:48:47 | MacroExpr | provenance | | -| test_logging.rs:53:12:53:35 | MacroExpr | test_logging.rs:53:5:53:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:53:12:53:35 | MacroExpr | test_logging.rs:53:5:53:36 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:53:28:53:35 | password | test_logging.rs:53:12:53:35 | MacroExpr | provenance | | -| test_logging.rs:55:12:55:48 | MacroExpr | test_logging.rs:55:5:55:49 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:55:12:55:48 | MacroExpr | test_logging.rs:55:5:55:49 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:55:41:55:48 | password | test_logging.rs:55:12:55:48 | MacroExpr | provenance | | -| test_logging.rs:57:12:57:46 | MacroExpr | test_logging.rs:57:5:57:47 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:57:12:57:46 | MacroExpr | test_logging.rs:57:5:57:47 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:57:39:57:46 | password | test_logging.rs:57:12:57:46 | MacroExpr | provenance | | -| test_logging.rs:58:12:58:33 | MacroExpr | test_logging.rs:58:5:58:34 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:58:12:58:33 | MacroExpr | test_logging.rs:58:5:58:34 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:58:24:58:31 | password | test_logging.rs:58:12:58:33 | MacroExpr | provenance | | -| test_logging.rs:59:12:59:35 | MacroExpr | test_logging.rs:59:5:59:36 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:59:12:59:35 | MacroExpr | test_logging.rs:59:5:59:36 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:59:24:59:31 | password | test_logging.rs:59:12:59:35 | MacroExpr | provenance | | -| test_logging.rs:61:30:61:53 | MacroExpr | test_logging.rs:61:5:61:54 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:61:30:61:53 | MacroExpr | test_logging.rs:61:5:61:54 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:61:46:61:53 | password | test_logging.rs:61:30:61:53 | MacroExpr | provenance | | -| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:62:5:62:55 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:62:5:62:55 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0] | test_logging.rs:62:5:62:55 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:62:5:62:55 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:62:5:62:55 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:62:20:62:28 | &... [&ref, tuple.0] | test_logging.rs:62:5:62:55 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | | test_logging.rs:62:20:62:28 | &password | test_logging.rs:62:20:62:28 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:62:20:62:28 | &password [&ref] | test_logging.rs:62:20:62:28 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:62:20:62:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:62:20:62:28 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:62:20:62:28 | TupleExpr [tuple.0] | test_logging.rs:62:20:62:28 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:62:21:62:28 | password | test_logging.rs:62:20:62:28 | &password | provenance | Config | | test_logging.rs:62:21:62:28 | password | test_logging.rs:62:20:62:28 | &password [&ref] | provenance | | -| test_logging.rs:66:24:66:47 | MacroExpr | test_logging.rs:66:5:66:48 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:66:24:66:47 | MacroExpr | test_logging.rs:66:5:66:48 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:66:40:66:47 | password | test_logging.rs:66:24:66:47 | MacroExpr | provenance | | -| test_logging.rs:68:42:68:65 | MacroExpr | test_logging.rs:68:5:68:66 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:68:42:68:65 | MacroExpr | test_logging.rs:68:5:68:66 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:68:58:68:65 | password | test_logging.rs:68:42:68:65 | MacroExpr | provenance | | -| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:69:5:69:67 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:69:5:69:67 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0] | test_logging.rs:69:5:69:67 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:69:5:69:67 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:69:5:69:67 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:69:18:69:26 | &... [&ref, tuple.0] | test_logging.rs:69:5:69:67 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | | test_logging.rs:69:18:69:26 | &password | test_logging.rs:69:18:69:26 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:69:18:69:26 | &password [&ref] | test_logging.rs:69:18:69:26 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:69:18:69:26 | TupleExpr [tuple.0, &ref] | test_logging.rs:69:18:69:26 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:69:18:69:26 | TupleExpr [tuple.0] | test_logging.rs:69:18:69:26 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:69:19:69:26 | password | test_logging.rs:69:18:69:26 | &password | provenance | Config | | test_logging.rs:69:19:69:26 | password | test_logging.rs:69:18:69:26 | &password [&ref] | provenance | | -| test_logging.rs:73:23:73:46 | MacroExpr | test_logging.rs:73:5:73:47 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:73:23:73:46 | MacroExpr | test_logging.rs:73:5:73:47 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:73:39:73:46 | password | test_logging.rs:73:23:73:46 | MacroExpr | provenance | | -| test_logging.rs:75:41:75:64 | MacroExpr | test_logging.rs:75:5:75:65 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:75:41:75:64 | MacroExpr | test_logging.rs:75:5:75:65 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:75:57:75:64 | password | test_logging.rs:75:41:75:64 | MacroExpr | provenance | | -| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:76:5:76:51 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:76:5:76:51 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0] | test_logging.rs:76:5:76:51 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:76:5:76:51 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:76:5:76:51 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:76:20:76:28 | &... [&ref, tuple.0] | test_logging.rs:76:5:76:51 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | | test_logging.rs:76:20:76:28 | &password | test_logging.rs:76:20:76:28 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:76:20:76:28 | &password [&ref] | test_logging.rs:76:20:76:28 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:76:20:76:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:76:20:76:28 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:76:20:76:28 | TupleExpr [tuple.0] | test_logging.rs:76:20:76:28 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:76:21:76:28 | password | test_logging.rs:76:20:76:28 | &password | provenance | Config | | test_logging.rs:76:21:76:28 | password | test_logging.rs:76:20:76:28 | &password [&ref] | provenance | | -| test_logging.rs:77:23:77:46 | MacroExpr | test_logging.rs:77:5:77:47 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:77:23:77:46 | MacroExpr | test_logging.rs:77:5:77:47 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:77:39:77:46 | password | test_logging.rs:77:23:77:46 | MacroExpr | provenance | | -| test_logging.rs:83:20:83:43 | MacroExpr | test_logging.rs:83:5:83:44 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:83:20:83:43 | MacroExpr | test_logging.rs:83:5:83:44 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:83:36:83:43 | password | test_logging.rs:83:20:83:43 | MacroExpr | provenance | | -| test_logging.rs:85:38:85:61 | MacroExpr | test_logging.rs:85:5:85:62 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:85:38:85:61 | MacroExpr | test_logging.rs:85:5:85:62 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:85:54:85:61 | password | test_logging.rs:85:38:85:61 | MacroExpr | provenance | | -| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:86:5:86:48 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:86:5:86:48 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 Sink:MaD:10 | -| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0] | test_logging.rs:86:5:86:48 | ...::log | provenance | MaD:10 Sink:MaD:10 Sink:MaD:10 | +| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:86:5:86:48 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:86:5:86:48 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:86:20:86:28 | &... [&ref, tuple.0] | test_logging.rs:86:5:86:48 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | | test_logging.rs:86:20:86:28 | &password | test_logging.rs:86:20:86:28 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:86:20:86:28 | &password [&ref] | test_logging.rs:86:20:86:28 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:86:20:86:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:86:20:86:28 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:86:20:86:28 | TupleExpr [tuple.0] | test_logging.rs:86:20:86:28 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:86:21:86:28 | password | test_logging.rs:86:20:86:28 | &password | provenance | Config | | test_logging.rs:86:21:86:28 | password | test_logging.rs:86:20:86:28 | &password [&ref] | provenance | | -| test_logging.rs:87:20:87:43 | MacroExpr | test_logging.rs:87:5:87:44 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:87:20:87:43 | MacroExpr | test_logging.rs:87:5:87:44 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:87:36:87:43 | password | test_logging.rs:87:20:87:43 | MacroExpr | provenance | | | test_logging.rs:94:9:94:10 | m1 | test_logging.rs:95:11:95:28 | MacroExpr | provenance | | | test_logging.rs:94:14:94:22 | &password | test_logging.rs:94:9:94:10 | m1 | provenance | | | test_logging.rs:94:15:94:22 | password | test_logging.rs:94:14:94:22 | &password | provenance | Config | -| test_logging.rs:95:11:95:28 | MacroExpr | test_logging.rs:95:5:95:29 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:95:11:95:28 | MacroExpr | test_logging.rs:95:5:95:29 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:97:9:97:10 | m2 | test_logging.rs:98:11:98:18 | MacroExpr | provenance | | | test_logging.rs:97:41:97:49 | &password | test_logging.rs:97:9:97:10 | m2 | provenance | | | test_logging.rs:97:42:97:49 | password | test_logging.rs:97:41:97:49 | &password | provenance | Config | -| test_logging.rs:98:11:98:18 | MacroExpr | test_logging.rs:98:5:98:19 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:98:11:98:18 | MacroExpr | test_logging.rs:98:5:98:19 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:100:9:100:10 | m3 | test_logging.rs:101:11:101:18 | MacroExpr | provenance | | | test_logging.rs:100:14:100:46 | res | test_logging.rs:100:22:100:45 | { ... } | provenance | | | test_logging.rs:100:22:100:45 | ...::format(...) | test_logging.rs:100:14:100:46 | res | provenance | | | test_logging.rs:100:22:100:45 | ...::must_use(...) | test_logging.rs:100:9:100:10 | m3 | provenance | | -| test_logging.rs:100:22:100:45 | MacroExpr | test_logging.rs:100:22:100:45 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:100:22:100:45 | { ... } | test_logging.rs:100:22:100:45 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:100:22:100:45 | MacroExpr | test_logging.rs:100:22:100:45 | ...::format(...) | provenance | MaD:16 | +| test_logging.rs:100:22:100:45 | { ... } | test_logging.rs:100:22:100:45 | ...::must_use(...) | provenance | MaD:17 | | test_logging.rs:100:38:100:45 | password | test_logging.rs:100:22:100:45 | MacroExpr | provenance | | -| test_logging.rs:101:11:101:18 | MacroExpr | test_logging.rs:101:5:101:19 | ...::log | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:119:12:119:41 | MacroExpr | test_logging.rs:119:5:119:42 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:101:11:101:18 | MacroExpr | test_logging.rs:101:5:101:19 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:119:12:119:41 | MacroExpr | test_logging.rs:119:5:119:42 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:119:28:119:41 | get_password(...) | test_logging.rs:119:12:119:41 | MacroExpr | provenance | | | test_logging.rs:130:9:130:10 | t1 [tuple.1] | test_logging.rs:132:28:132:29 | t1 [tuple.1] | provenance | | | test_logging.rs:130:14:130:33 | TupleExpr [tuple.1] | test_logging.rs:130:9:130:10 | t1 [tuple.1] | provenance | | | test_logging.rs:130:25:130:32 | password | test_logging.rs:130:14:130:33 | TupleExpr [tuple.1] | provenance | | -| test_logging.rs:132:12:132:31 | MacroExpr | test_logging.rs:132:5:132:32 | ...::log | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:132:12:132:31 | MacroExpr | test_logging.rs:132:5:132:32 | ...::log | provenance | MaD:12 Sink:MaD:12 | | test_logging.rs:132:28:132:29 | t1 [tuple.1] | test_logging.rs:132:28:132:31 | t1.1 | provenance | | | test_logging.rs:132:28:132:31 | t1.1 | test_logging.rs:132:12:132:31 | MacroExpr | provenance | | +| test_logging.rs:171:33:171:79 | &... | test_logging.rs:171:22:171:31 | log_expect | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:171:33:171:79 | &... [&ref] | test_logging.rs:171:22:171:31 | log_expect | provenance | MaD:9 Sink:MaD:9 | +| test_logging.rs:171:34:171:79 | MacroExpr | test_logging.rs:171:33:171:79 | &... | provenance | Config | +| test_logging.rs:171:34:171:79 | MacroExpr | test_logging.rs:171:33:171:79 | &... [&ref] | provenance | | +| test_logging.rs:171:34:171:79 | res | test_logging.rs:171:42:171:78 | { ... } | provenance | | +| test_logging.rs:171:42:171:78 | ...::format(...) | test_logging.rs:171:34:171:79 | res | provenance | | +| test_logging.rs:171:42:171:78 | ...::must_use(...) | test_logging.rs:171:34:171:79 | MacroExpr | provenance | | +| test_logging.rs:171:42:171:78 | MacroExpr | test_logging.rs:171:42:171:78 | ...::format(...) | provenance | MaD:16 | +| test_logging.rs:171:42:171:78 | { ... } | test_logging.rs:171:42:171:78 | ...::must_use(...) | provenance | MaD:17 | +| test_logging.rs:171:70:171:78 | password2 | test_logging.rs:171:42:171:78 | MacroExpr | provenance | | +| test_logging.rs:175:35:175:81 | &... | test_logging.rs:175:24:175:33 | log_expect | provenance | MaD:10 Sink:MaD:10 | +| test_logging.rs:175:35:175:81 | &... [&ref] | test_logging.rs:175:24:175:33 | log_expect | provenance | MaD:10 Sink:MaD:10 | +| test_logging.rs:175:36:175:81 | MacroExpr | test_logging.rs:175:35:175:81 | &... | provenance | Config | +| test_logging.rs:175:36:175:81 | MacroExpr | test_logging.rs:175:35:175:81 | &... [&ref] | provenance | | +| test_logging.rs:175:36:175:81 | res | test_logging.rs:175:44:175:80 | { ... } | provenance | | +| test_logging.rs:175:44:175:80 | ...::format(...) | test_logging.rs:175:36:175:81 | res | provenance | | +| test_logging.rs:175:44:175:80 | ...::must_use(...) | test_logging.rs:175:36:175:81 | MacroExpr | provenance | | +| test_logging.rs:175:44:175:80 | MacroExpr | test_logging.rs:175:44:175:80 | ...::format(...) | provenance | MaD:16 | +| test_logging.rs:175:44:175:80 | { ... } | test_logging.rs:175:44:175:80 | ...::must_use(...) | provenance | MaD:17 | +| test_logging.rs:175:72:175:80 | password2 | test_logging.rs:175:44:175:80 | MacroExpr | provenance | | +| test_logging.rs:182:9:182:19 | err_result3 [Err] | test_logging.rs:183:13:183:23 | err_result3 [Err] | provenance | | +| test_logging.rs:182:47:182:60 | Err(...) [Err] | test_logging.rs:182:9:182:19 | err_result3 [Err] | provenance | | +| test_logging.rs:182:51:182:59 | password2 | test_logging.rs:182:47:182:60 | Err(...) [Err] | provenance | | +| test_logging.rs:183:13:183:23 | err_result3 [Err] | test_logging.rs:183:25:183:34 | log_unwrap | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:187:12:187:37 | MacroExpr | test_logging.rs:187:5:187:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | | test_logging.rs:187:30:187:37 | password | test_logging.rs:187:12:187:37 | MacroExpr | provenance | | | test_logging.rs:188:14:188:37 | MacroExpr | test_logging.rs:188:5:188:38 | ...::_print | provenance | MaD:8 Sink:MaD:8 | @@ -183,37 +210,37 @@ edges | test_logging.rs:203:34:203:66 | res | test_logging.rs:203:42:203:65 | { ... } | provenance | | | test_logging.rs:203:34:203:75 | ... .as_str() | test_logging.rs:203:27:203:32 | expect | provenance | MaD:1 Sink:MaD:1 | | test_logging.rs:203:42:203:65 | ...::format(...) | test_logging.rs:203:34:203:66 | res | provenance | | -| test_logging.rs:203:42:203:65 | ...::must_use(...) | test_logging.rs:203:34:203:75 | ... .as_str() | provenance | MaD:12 | -| test_logging.rs:203:42:203:65 | MacroExpr | test_logging.rs:203:42:203:65 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:203:42:203:65 | { ... } | test_logging.rs:203:42:203:65 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:203:42:203:65 | ...::must_use(...) | test_logging.rs:203:34:203:75 | ... .as_str() | provenance | MaD:15 | +| test_logging.rs:203:42:203:65 | MacroExpr | test_logging.rs:203:42:203:65 | ...::format(...) | provenance | MaD:16 | +| test_logging.rs:203:42:203:65 | { ... } | test_logging.rs:203:42:203:65 | ...::must_use(...) | provenance | MaD:17 | | test_logging.rs:203:58:203:65 | password | test_logging.rs:203:42:203:65 | MacroExpr | provenance | | | test_logging.rs:209:36:209:70 | res | test_logging.rs:209:44:209:69 | { ... } | provenance | | | test_logging.rs:209:36:209:81 | ... .as_bytes() | test_logging.rs:209:30:209:34 | write | provenance | MaD:5 Sink:MaD:5 | | test_logging.rs:209:44:209:69 | ...::format(...) | test_logging.rs:209:36:209:70 | res | provenance | | -| test_logging.rs:209:44:209:69 | ...::must_use(...) | test_logging.rs:209:36:209:81 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:209:44:209:69 | MacroExpr | test_logging.rs:209:44:209:69 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:209:44:209:69 | { ... } | test_logging.rs:209:44:209:69 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:209:44:209:69 | ...::must_use(...) | test_logging.rs:209:36:209:81 | ... .as_bytes() | provenance | MaD:14 | +| test_logging.rs:209:44:209:69 | MacroExpr | test_logging.rs:209:44:209:69 | ...::format(...) | provenance | MaD:16 | +| test_logging.rs:209:44:209:69 | { ... } | test_logging.rs:209:44:209:69 | ...::must_use(...) | provenance | MaD:17 | | test_logging.rs:209:62:209:69 | password | test_logging.rs:209:44:209:69 | MacroExpr | provenance | | | test_logging.rs:210:40:210:74 | res | test_logging.rs:210:48:210:73 | { ... } | provenance | | | test_logging.rs:210:40:210:85 | ... .as_bytes() | test_logging.rs:210:30:210:38 | write_all | provenance | MaD:6 Sink:MaD:6 | | test_logging.rs:210:48:210:73 | ...::format(...) | test_logging.rs:210:40:210:74 | res | provenance | | -| test_logging.rs:210:48:210:73 | ...::must_use(...) | test_logging.rs:210:40:210:85 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:210:48:210:73 | MacroExpr | test_logging.rs:210:48:210:73 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:210:48:210:73 | { ... } | test_logging.rs:210:48:210:73 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:210:48:210:73 | ...::must_use(...) | test_logging.rs:210:40:210:85 | ... .as_bytes() | provenance | MaD:14 | +| test_logging.rs:210:48:210:73 | MacroExpr | test_logging.rs:210:48:210:73 | ...::format(...) | provenance | MaD:16 | +| test_logging.rs:210:48:210:73 | { ... } | test_logging.rs:210:48:210:73 | ...::must_use(...) | provenance | MaD:17 | | test_logging.rs:210:66:210:73 | password | test_logging.rs:210:48:210:73 | MacroExpr | provenance | | | test_logging.rs:213:15:213:49 | res | test_logging.rs:213:23:213:48 | { ... } | provenance | | | test_logging.rs:213:15:213:60 | ... .as_bytes() | test_logging.rs:213:9:213:13 | write | provenance | MaD:5 Sink:MaD:5 | | test_logging.rs:213:23:213:48 | ...::format(...) | test_logging.rs:213:15:213:49 | res | provenance | | -| test_logging.rs:213:23:213:48 | ...::must_use(...) | test_logging.rs:213:15:213:60 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:213:23:213:48 | MacroExpr | test_logging.rs:213:23:213:48 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:213:23:213:48 | { ... } | test_logging.rs:213:23:213:48 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:213:23:213:48 | ...::must_use(...) | test_logging.rs:213:15:213:60 | ... .as_bytes() | provenance | MaD:14 | +| test_logging.rs:213:23:213:48 | MacroExpr | test_logging.rs:213:23:213:48 | ...::format(...) | provenance | MaD:16 | +| test_logging.rs:213:23:213:48 | { ... } | test_logging.rs:213:23:213:48 | ...::must_use(...) | provenance | MaD:17 | | test_logging.rs:213:41:213:48 | password | test_logging.rs:213:23:213:48 | MacroExpr | provenance | | | test_logging.rs:216:15:216:49 | res | test_logging.rs:216:23:216:48 | { ... } | provenance | | | test_logging.rs:216:15:216:60 | ... .as_bytes() | test_logging.rs:216:9:216:13 | write | provenance | MaD:4 Sink:MaD:4 | | test_logging.rs:216:23:216:48 | ...::format(...) | test_logging.rs:216:15:216:49 | res | provenance | | -| test_logging.rs:216:23:216:48 | ...::must_use(...) | test_logging.rs:216:15:216:60 | ... .as_bytes() | provenance | MaD:11 | -| test_logging.rs:216:23:216:48 | MacroExpr | test_logging.rs:216:23:216:48 | ...::format(...) | provenance | MaD:13 | -| test_logging.rs:216:23:216:48 | { ... } | test_logging.rs:216:23:216:48 | ...::must_use(...) | provenance | MaD:14 | +| test_logging.rs:216:23:216:48 | ...::must_use(...) | test_logging.rs:216:15:216:60 | ... .as_bytes() | provenance | MaD:14 | +| test_logging.rs:216:23:216:48 | MacroExpr | test_logging.rs:216:23:216:48 | ...::format(...) | provenance | MaD:16 | +| test_logging.rs:216:23:216:48 | { ... } | test_logging.rs:216:23:216:48 | ...::must_use(...) | provenance | MaD:17 | | test_logging.rs:216:41:216:48 | password | test_logging.rs:216:23:216:48 | MacroExpr | provenance | | models | 1 | Sink: lang:core; ::expect; log-injection; Argument[0] | @@ -224,12 +251,15 @@ models | 6 | Sink: lang:std; ::write_all; log-injection; Argument[0] | | 7 | Sink: lang:std; crate::io::stdio::_eprint; log-injection; Argument[0] | | 8 | Sink: lang:std; crate::io::stdio::_print; log-injection; Argument[0] | -| 9 | Sink: repo:https://github.com/rust-lang/log:log; crate::__private_api::log; log-injection; Argument[1] | -| 10 | Sink: repo:https://github.com/rust-lang/log:log; crate::__private_api::log; log-injection; Argument[3] | -| 11 | Summary: lang:alloc; ::as_bytes; Argument[self]; ReturnValue; value | -| 12 | Summary: lang:alloc; ::as_str; Argument[self]; ReturnValue; value | -| 13 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | -| 14 | Summary: lang:core; crate::hint::must_use; Argument[0]; ReturnValue; value | +| 9 | Sink: repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err; ::log_expect; log-injection; Argument[0] | +| 10 | Sink: repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err; ::log_expect; log-injection; Argument[0] | +| 11 | Sink: repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err; ::log_unwrap; log-injection; Argument[self].Field[crate::result::Result::Err(0)] | +| 12 | Sink: repo:https://github.com/rust-lang/log:log; crate::__private_api::log; log-injection; Argument[1] | +| 13 | Sink: repo:https://github.com/rust-lang/log:log; crate::__private_api::log; log-injection; Argument[3] | +| 14 | Summary: lang:alloc; ::as_bytes; Argument[self]; ReturnValue; value | +| 15 | Summary: lang:alloc; ::as_str; Argument[self]; ReturnValue; value | +| 16 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | +| 17 | Summary: lang:core; crate::hint::must_use; Argument[0]; ReturnValue; value | nodes | test_logging.rs:43:5:43:36 | ...::log | semmle.label | ...::log | | test_logging.rs:43:12:43:35 | MacroExpr | semmle.label | MacroExpr | @@ -352,6 +382,31 @@ nodes | test_logging.rs:132:12:132:31 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:132:28:132:29 | t1 [tuple.1] | semmle.label | t1 [tuple.1] | | test_logging.rs:132:28:132:31 | t1.1 | semmle.label | t1.1 | +| test_logging.rs:171:22:171:31 | log_expect | semmle.label | log_expect | +| test_logging.rs:171:33:171:79 | &... | semmle.label | &... | +| test_logging.rs:171:33:171:79 | &... [&ref] | semmle.label | &... [&ref] | +| test_logging.rs:171:34:171:79 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:171:34:171:79 | res | semmle.label | res | +| test_logging.rs:171:42:171:78 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:171:42:171:78 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:171:42:171:78 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:171:42:171:78 | { ... } | semmle.label | { ... } | +| test_logging.rs:171:70:171:78 | password2 | semmle.label | password2 | +| test_logging.rs:175:24:175:33 | log_expect | semmle.label | log_expect | +| test_logging.rs:175:35:175:81 | &... | semmle.label | &... | +| test_logging.rs:175:35:175:81 | &... [&ref] | semmle.label | &... [&ref] | +| test_logging.rs:175:36:175:81 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:175:36:175:81 | res | semmle.label | res | +| test_logging.rs:175:44:175:80 | ...::format(...) | semmle.label | ...::format(...) | +| test_logging.rs:175:44:175:80 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| test_logging.rs:175:44:175:80 | MacroExpr | semmle.label | MacroExpr | +| test_logging.rs:175:44:175:80 | { ... } | semmle.label | { ... } | +| test_logging.rs:175:72:175:80 | password2 | semmle.label | password2 | +| test_logging.rs:182:9:182:19 | err_result3 [Err] | semmle.label | err_result3 [Err] | +| test_logging.rs:182:47:182:60 | Err(...) [Err] | semmle.label | Err(...) [Err] | +| test_logging.rs:182:51:182:59 | password2 | semmle.label | password2 | +| test_logging.rs:183:13:183:23 | err_result3 [Err] | semmle.label | err_result3 [Err] | +| test_logging.rs:183:25:183:34 | log_unwrap | semmle.label | log_unwrap | | test_logging.rs:187:5:187:38 | ...::_print | semmle.label | ...::_print | | test_logging.rs:187:12:187:37 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:187:30:187:37 | password | semmle.label | password | diff --git a/rust/ql/test/query-tests/security/CWE-312/test_logging.rs b/rust/ql/test/query-tests/security/CWE-312/test_logging.rs index 6202bcaa2f4..d22453cbb3a 100644 --- a/rust/ql/test/query-tests/security/CWE-312/test_logging.rs +++ b/rust/ql/test/query-tests/security/CWE-312/test_logging.rs @@ -168,19 +168,19 @@ fn test_log(harmless: String, password: String, encrypted_password: String) { // test `log_expect` on `Option` with sensitive message let none_opt: Option = None; - let _ = none_opt.log_expect(&format!("Failed with password: {}", password2)); // $ MISSING: Alert[rust/cleartext-logging] + let _ = none_opt.log_expect(&format!("Failed with password: {}", password2)); // $ Alert[rust/cleartext-logging] // test `log_expect` on `Result` with sensitive message let err_result: Result = Err(""); - let _ = err_result.log_expect(&format!("Failed with password: {}", password2)); // $ MISSING: Alert[rust/cleartext-logging] + let _ = err_result.log_expect(&format!("Failed with password: {}", password2)); // $ Alert[rust/cleartext-logging] // test `log_expect` with sensitive `Result.Err` let err_result2: Result = Err(password2.clone()); let _ = err_result2.log_expect(""); // $ MISSING: Alert[rust/cleartext-logging] // test `log_unwrap` with sensitive `Result.Err` - let err_result3: Result = Err(password2); - let _ = err_result3.log_unwrap(); // $ MISSING: Alert[rust/cleartext-logging] + let err_result3: Result = Err(password2); // $ Source=err_result3 + let _ = err_result3.log_unwrap(); // $ Alert[rust/cleartext-logging]=err_result3 } fn test_std(password: String, i: i32, opt_i: Option) { From 6ffb049b750dad968c57539ce1a502f88e464825 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Tue, 20 May 2025 14:18:33 -0400 Subject: [PATCH 515/656] Crypto: Adding alg value consumers for EVP PKEY for openssl. As part of the additional modeling, updated the generic dataflow source to match JCA with how "EC" is handled as a consumed algorithm for PKEY. --- cpp/ql/lib/experimental/quantum/Language.qll | 23 +++++++- .../OpenSSLAlgorithmValueConsumers.qll | 1 + .../PKeyAlgorithmValueConsumer.qll | 57 +++++++++++++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll diff --git a/cpp/ql/lib/experimental/quantum/Language.qll b/cpp/ql/lib/experimental/quantum/Language.qll index db9737cf152..ab3ce039cc5 100644 --- a/cpp/ql/lib/experimental/quantum/Language.qll +++ b/cpp/ql/lib/experimental/quantum/Language.qll @@ -1,5 +1,5 @@ private import cpp as Language -import semmle.code.cpp.dataflow.new.DataFlow +import semmle.code.cpp.dataflow.new.TaintTracking import codeql.quantum.experimental.Model module CryptoInput implements InputSig { @@ -86,6 +86,27 @@ module GenericDataSourceFlowConfig implements DataFlow::ConfigSig { } } +module GenericDataSourceFlow = TaintTracking::Global; + +private class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceof Literal { + ConstantDataSource() { + // TODO: this is an API specific workaround for OpenSSL, as 'EC' is a constant that may be used + // where typical algorithms are specified, but EC specifically means set up a + // default curve container, that will later be specified explicitly (or if not a default) + // curve is used. + this.getValue() != "EC" + } + + override DataFlow::Node getOutputNode() { result.asExpr() = this } + + override predicate flowsTo(Crypto::FlowAwareElement other) { + // TODO: separate config to avoid blowing up data-flow analysis + GenericDataSourceFlow::flow(this.getOutputNode(), other.getInputNode()) + } + + override string getAdditionalDescription() { result = this.toString() } +} + module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source = any(Crypto::ArtifactInstance artifact).getOutputNode() diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll index f6ebdf5c8c4..c76d6d6f041 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumers.qll @@ -4,3 +4,4 @@ import DirectAlgorithmValueConsumer import PaddingAlgorithmValueConsumer import HashAlgorithmValueConsumer import EllipticCurveAlgorithmValueConsumer +import PKeyAlgorithmValueConsumer diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll new file mode 100644 index 00000000000..879af7cbe6c --- /dev/null +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll @@ -0,0 +1,57 @@ +import cpp +private import experimental.quantum.Language +private import experimental.quantum.OpenSSL.LibraryDetector +private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants +private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances + +abstract class PKeyValueConsumer extends OpenSSLAlgorithmValueConsumer { } + +class EVPPKeyAlgorithmConsumer extends PKeyValueConsumer { + DataFlow::Node valueArgNode; + DataFlow::Node resultNode; + + EVPPKeyAlgorithmConsumer() { + resultNode.asExpr() = this.(Call) and // in all cases the result is the return + isPossibleOpenSSLFunction(this.(Call).getTarget()) and + ( + // NOTE: some of these consumers are themselves key gen operations, + // in these cases, the operation will be created separately for the same function. + this.(Call).getTarget().getName() in [ + "EVP_PKEY_CTX_new_id", "EVP_PKEY_new_raw_private_key", "EVP_PKEY_new_raw_public_key", + "EVP_PKEY_new_mac_key" + ] and + valueArgNode.asExpr() = this.(Call).getArgument(0) + or + this.(Call).getTarget().getName() in [ + "EVP_PKEY_CTX_new_from_name", "EVP_PKEY_new_raw_private_key_ex", + "EVP_PKEY_new_raw_public_key_ex", "EVP_PKEY_CTX_ctrl", "EVP_PKEY_CTX_set_group_name" + ] and + valueArgNode.asExpr() = this.(Call).getArgument(1) + or + // argInd 2 is 'type' which can be RSA, or EC + // if RSA argInd 3 is the key size, else if EC argInd 3 is the curve name + // In all other cases there is no argInd 3, and argInd 2 is the algorithm. + // Since this is a key gen operation, handling the key size should be handled + // when the operation is again modeled as a key gen operation. + this.(Call).getTarget().getName() = "EVP_PKEY_Q_keygen" and + ( + // Ellipitic curve case + // If the argInd 3 is a derived type (pointer or array) then assume it is a curve name + if this.(Call).getArgument(3).getType().getUnderlyingType() instanceof DerivedType + then valueArgNode.asExpr() = this.(Call).getArgument(3) + else + // All other cases + valueArgNode.asExpr() = this.(Call).getArgument(2) + ) + ) + } + + override Crypto::AlgorithmInstance getAKnownAlgorithmSource() { + exists(OpenSSLAlgorithmInstance i | i.getAVC() = this and result = i) + } + + override DataFlow::Node getResultNode() { result = resultNode } + + override Crypto::ConsumerInputDataFlowNode getInputNode() { result = valueArgNode } +} From f202586f5e734b41d6e8cf598418d19a8974bd4f Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 16 May 2025 11:04:07 +0200 Subject: [PATCH 516/656] Java: Use the shared BasicBlocks library. --- java/ql/lib/qlpack.yml | 1 + .../code/java/controlflow/BasicBlocks.qll | 129 +++++++++--------- .../code/java/controlflow/Dominance.qll | 39 +----- .../semmle/code/java/controlflow/Guards.qll | 4 +- .../code/java/controlflow/SuccessorType.qll | 25 ++++ .../java/controlflow/internal/GuardsLogic.qll | 6 +- .../semmle/code/java/dataflow/Nullness.qll | 4 +- .../code/java/dataflow/RangeAnalysis.qll | 2 +- .../code/java/dataflow/internal/BaseSSA.qll | 2 +- .../code/java/dataflow/internal/SsaImpl.qll | 4 +- .../rangeanalysis/SsaReadPositionSpecific.qll | 2 +- .../semmle/code/java/security/Validation.qll | 2 +- .../Likely Bugs/Concurrency/UnreleasedLock.ql | 8 +- .../codeql/controlflow/BasicBlock.qll | 8 +- 14 files changed, 117 insertions(+), 119 deletions(-) create mode 100644 java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index d34620678ba..8e1e06ab6b5 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -6,6 +6,7 @@ extractor: java library: true upgrades: upgrades dependencies: + codeql/controlflow: ${workspace} codeql/dataflow: ${workspace} codeql/mad: ${workspace} codeql/quantum: ${workspace} diff --git a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll index c2f9e8a6a69..7521d627742 100644 --- a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll +++ b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll @@ -4,18 +4,69 @@ import java import Dominance +private import codeql.controlflow.BasicBlock as BB -cached -private module BasicBlockStage { - cached - predicate ref() { any() } +private module Input implements BB::InputSig { + import SuccessorType - cached - predicate backref() { - (exists(any(BasicBlock bb).getABBSuccessor()) implies any()) and - (exists(any(BasicBlock bb).getNode(_)) implies any()) and - (exists(any(BasicBlock bb).length()) implies any()) + /** Hold if `t` represents a conditional successor type. */ + predicate successorTypeIsCondition(SuccessorType t) { none() } + + /** A delineated part of the AST with its own CFG. */ + class CfgScope = Callable; + + /** The class of control flow nodes. */ + class Node = ControlFlowNode; + + /** Gets the CFG scope in which this node occurs. */ + CfgScope nodeGetCfgScope(Node node) { node.getEnclosingCallable() = result } + + private Node getASpecificSuccessor(Node node, SuccessorType t) { + node.(ConditionNode).getABranchSuccessor(t.(BooleanSuccessor).getValue()) = result + or + node.getAnExceptionSuccessor() = result and t instanceof ExceptionSuccessor } + + /** Gets an immediate successor of this node. */ + Node nodeGetASuccessor(Node node, SuccessorType t) { + result = getASpecificSuccessor(node, t) + or + node.getASuccessor() = result and + t instanceof NormalSuccessor and + not result = getASpecificSuccessor(node, _) + } + + /** + * Holds if `node` represents an entry node to be used when calculating + * dominance. + */ + predicate nodeIsDominanceEntry(Node node) { + exists(Stmt entrystmt | entrystmt = node.asStmt() | + exists(Callable c | entrystmt = c.getBody()) + or + // This disjunct is technically superfluous, but safeguards against extractor problems. + entrystmt instanceof BlockStmt and + not exists(entrystmt.getEnclosingCallable()) and + not entrystmt.getParent() instanceof Stmt + ) + } + + /** + * Holds if `node` represents an exit node to be used when calculating + * post dominance. + */ + predicate nodeIsPostDominanceExit(Node node) { node instanceof ControlFlow::ExitNode } +} + +private module BbImpl = BB::Make; + +import BbImpl + +/** Holds if the dominance relation is calculated for `bb`. */ +predicate hasDominanceInformation(BasicBlock bb) { + exists(BasicBlock entry | + Input::nodeIsDominanceEntry(entry.getFirstNode()) and entry.getASuccessor*() = bb + ) } /** @@ -24,71 +75,27 @@ private module BasicBlockStage { * A basic block is a series of nodes with no control-flow branching, which can * often be treated as a unit in analyses. */ -class BasicBlock extends ControlFlowNode { - cached - BasicBlock() { - BasicBlockStage::ref() and - not exists(this.getAPredecessor()) and - exists(this.getASuccessor()) - or - strictcount(this.getAPredecessor()) > 1 - or - exists(ControlFlowNode pred | pred = this.getAPredecessor() | - strictcount(pred.getASuccessor()) > 1 - ) - } +class BasicBlock extends BbImpl::BasicBlock { + /** Gets the immediately enclosing callable whose body contains this node. */ + Callable getEnclosingCallable() { result = this.getScope() } /** Gets an immediate successor of this basic block. */ - cached - BasicBlock getABBSuccessor() { - BasicBlockStage::ref() and - result = this.getLastNode().getASuccessor() - } + BasicBlock getABBSuccessor() { result = this.getASuccessor() } /** Gets an immediate predecessor of this basic block. */ BasicBlock getABBPredecessor() { result.getABBSuccessor() = this } - /** Gets a control-flow node contained in this basic block. */ - ControlFlowNode getANode() { result = this.getNode(_) } - - /** Gets the control-flow node at a specific (zero-indexed) position in this basic block. */ - cached - ControlFlowNode getNode(int pos) { - BasicBlockStage::ref() and - result = this and - pos = 0 - or - exists(ControlFlowNode mid, int mid_pos | pos = mid_pos + 1 | - this.getNode(mid_pos) = mid and - mid.getASuccessor() = result and - not result instanceof BasicBlock - ) - } - - /** Gets the first control-flow node in this basic block. */ - ControlFlowNode getFirstNode() { result = this } - - /** Gets the last control-flow node in this basic block. */ - ControlFlowNode getLastNode() { result = this.getNode(this.length() - 1) } - - /** Gets the number of control-flow nodes contained in this basic block. */ - cached - int length() { - BasicBlockStage::ref() and - result = strictcount(this.getANode()) - } - /** Holds if this basic block strictly dominates `node`. */ - predicate bbStrictlyDominates(BasicBlock node) { bbStrictlyDominates(this, node) } + predicate bbStrictlyDominates(BasicBlock node) { this.strictlyDominates(node) } /** Holds if this basic block dominates `node`. (This is reflexive.) */ - predicate bbDominates(BasicBlock node) { bbDominates(this, node) } + predicate bbDominates(BasicBlock node) { this.dominates(node) } /** Holds if this basic block strictly post-dominates `node`. */ - predicate bbStrictlyPostDominates(BasicBlock node) { bbStrictlyPostDominates(this, node) } + predicate bbStrictlyPostDominates(BasicBlock node) { this.strictlyPostDominates(node) } /** Holds if this basic block post-dominates `node`. (This is reflexive.) */ - predicate bbPostDominates(BasicBlock node) { bbPostDominates(this, node) } + predicate bbPostDominates(BasicBlock node) { this.postDominates(node) } } /** A basic block that ends in an exit node. */ diff --git a/java/ql/lib/semmle/code/java/controlflow/Dominance.qll b/java/ql/lib/semmle/code/java/controlflow/Dominance.qll index 953bfa12e64..7db312c432b 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Dominance.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Dominance.qll @@ -8,30 +8,8 @@ import java * Predicates for basic-block-level dominance. */ -/** Entry points for control-flow. */ -private predicate flowEntry(BasicBlock entry) { - exists(Stmt entrystmt | entrystmt = entry.getFirstNode().asStmt() | - exists(Callable c | entrystmt = c.getBody()) - or - // This disjunct is technically superfluous, but safeguards against extractor problems. - entrystmt instanceof BlockStmt and - not exists(entry.getEnclosingCallable()) and - not entrystmt.getParent() instanceof Stmt - ) -} - -/** The successor relation for basic blocks. */ -private predicate bbSucc(BasicBlock pre, BasicBlock post) { post = pre.getABBSuccessor() } - /** The immediate dominance relation for basic blocks. */ -cached -predicate bbIDominates(BasicBlock dom, BasicBlock node) = - idominance(flowEntry/1, bbSucc/2)(_, dom, node) - -/** Holds if the dominance relation is calculated for `bb`. */ -predicate hasDominanceInformation(BasicBlock bb) { - exists(BasicBlock entry | flowEntry(entry) and bbSucc*(entry, bb)) -} +predicate bbIDominates(BasicBlock dom, BasicBlock node) { dom.immediatelyDominates(node) } /** Exit points for basic-block control-flow. */ private predicate bbSink(BasicBlock exit) { exit.getLastNode() instanceof ControlFlow::ExitNode } @@ -78,21 +56,6 @@ predicate dominanceFrontier(BasicBlock x, BasicBlock w) { ) } -/** - * Holds if `(bb1, bb2)` is an edge that dominates `bb2`, that is, all other - * predecessors of `bb2` are dominated by `bb2`. This implies that `bb1` is the - * immediate dominator of `bb2`. - * - * This is a necessary and sufficient condition for an edge to dominate anything, - * and in particular `dominatingEdge(bb1, bb2) and bb2.bbDominates(bb3)` means - * that the edge `(bb1, bb2)` dominates `bb3`. - */ -predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) { - bbIDominates(bb1, bb2) and - bb1.getABBSuccessor() = bb2 and - forall(BasicBlock pred | pred = bb2.getABBPredecessor() and pred != bb1 | bbDominates(bb2, pred)) -} - /* * Predicates for expression-level dominance. */ diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll index ff564b3a446..93629a9f6fb 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll @@ -23,7 +23,7 @@ class ConditionBlock extends BasicBlock { /** Gets a `true`- or `false`-successor of the last node of this basic block. */ BasicBlock getTestSuccessor(boolean testIsTrue) { - result = this.getConditionNode().getABranchSuccessor(testIsTrue) + result.getFirstNode() = this.getConditionNode().getABranchSuccessor(testIsTrue) } /* @@ -300,7 +300,7 @@ private predicate preconditionBranchEdge( ) { conditionCheckArgument(ma, _, branch) and bb1.getLastNode() = ma.getControlFlowNode() and - bb2 = bb1.getLastNode().getANormalSuccessor() + bb2.getFirstNode() = bb1.getLastNode().getANormalSuccessor() } private predicate preconditionControls(MethodCall ma, BasicBlock controlled, boolean branch) { diff --git a/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll b/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll new file mode 100644 index 00000000000..323d571e6e0 --- /dev/null +++ b/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll @@ -0,0 +1,25 @@ +import java +private import codeql.util.Boolean + +private newtype TSuccessorType = + TNormalSuccessor() or + TBooleanSuccessor(Boolean branch) or + TExceptionSuccessor() + +class SuccessorType extends TSuccessorType { + string toString() { result = "SuccessorType" } +} + +class NormalSuccessor extends SuccessorType, TNormalSuccessor { } + +class ExceptionSuccessor extends SuccessorType, TExceptionSuccessor { } + +class ConditionalSuccessor extends SuccessorType, TBooleanSuccessor { + boolean getValue() { this = TBooleanSuccessor(result) } +} + +class BooleanSuccessor = ConditionalSuccessor; + +class NullnessSuccessor extends ConditionalSuccessor { + NullnessSuccessor() { none() } +} diff --git a/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll b/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll index 9fed7516ba3..9f7b88f9af1 100644 --- a/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll +++ b/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll @@ -290,10 +290,10 @@ private predicate guardImpliesEqual(Guard guard, boolean branch, SsaVariable v, ) } -private ControlFlowNode getAGuardBranchSuccessor(Guard g, boolean branch) { - result = g.(Expr).getControlFlowNode().(ConditionNode).getABranchSuccessor(branch) +private BasicBlock getAGuardBranchSuccessor(Guard g, boolean branch) { + result.getFirstNode() = g.(Expr).getControlFlowNode().(ConditionNode).getABranchSuccessor(branch) or - result = g.(SwitchCase).getControlFlowNode() and branch = true + result.getFirstNode() = g.(SwitchCase).getControlFlowNode() and branch = true } /** diff --git a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll index 17f1b4ae702..757720b9ae8 100644 --- a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll +++ b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll @@ -299,8 +299,8 @@ private predicate leavingFinally(BasicBlock bb1, BasicBlock bb2, boolean normale exists(TryStmt try, BlockStmt finally | try.getFinally() = finally and bb1.getABBSuccessor() = bb2 and - bb1.getEnclosingStmt().getEnclosingStmt*() = finally and - not bb2.getEnclosingStmt().getEnclosingStmt*() = finally and + bb1.getFirstNode().getEnclosingStmt().getEnclosingStmt*() = finally and + not bb2.getFirstNode().getEnclosingStmt().getEnclosingStmt*() = finally and if bb1.getLastNode().getANormalSuccessor() = bb2.getFirstNode() then normaledge = true else normaledge = false diff --git a/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll b/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll index b67dc2ba08d..499d27b594d 100644 --- a/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll +++ b/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll @@ -215,7 +215,7 @@ module Sem implements Semantic { private predicate idOfAst(ExprParent x, int y) = equivalenceRelation(id/2)(x, y) - private predicate idOf(BasicBlock x, int y) { idOfAst(x.getAstNode(), y) } + private predicate idOf(BasicBlock x, int y) { idOfAst(x.getFirstNode().getAstNode(), y) } int getBlockId1(BasicBlock bb) { idOf(bb, result) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll index eeac19e66a7..3ce4fbcce9f 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll @@ -145,7 +145,7 @@ private module BaseSsaImpl { /** Holds if `v` has an implicit definition at the entry, `b`, of the callable. */ predicate hasEntryDef(BaseSsaSourceVariable v, BasicBlock b) { exists(LocalScopeVariable l, Callable c | - v = TLocalVar(c, l) and c.getBody().getControlFlowNode() = b + v = TLocalVar(c, l) and c.getBody().getBasicBlock() = b | l instanceof Parameter or l.getCallable() != c diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll index b5a42a97569..26342debbb0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll @@ -144,13 +144,13 @@ private predicate certainVariableUpdate(TrackedVar v, ControlFlowNode n, BasicBl pragma[nomagic] private predicate hasEntryDef(TrackedVar v, BasicBlock b) { exists(LocalScopeVariable l, Callable c | - v = TLocalVar(c, l) and c.getBody().getControlFlowNode() = b + v = TLocalVar(c, l) and c.getBody().getBasicBlock() = b | l instanceof Parameter or l.getCallable() != c ) or - v instanceof SsaSourceField and v.getEnclosingCallable().getBody().getControlFlowNode() = b + v instanceof SsaSourceField and v.getEnclosingCallable().getBody().getBasicBlock() = b } /** Holds if `n` might update the locally tracked variable `v`. */ diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll index 8712ad635f5..9b081150e89 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SsaReadPositionSpecific.qll @@ -19,7 +19,7 @@ private predicate id(BB::ExprParent x, BB::ExprParent y) { x = y } private predicate idOfAst(BB::ExprParent x, int y) = equivalenceRelation(id/2)(x, y) -private predicate idOf(BasicBlock x, int y) { idOfAst(x.getAstNode(), y) } +private predicate idOf(BasicBlock x, int y) { idOfAst(x.getFirstNode().getAstNode(), y) } private int getId(BasicBlock bb) { idOf(bb, result) } diff --git a/java/ql/lib/semmle/code/java/security/Validation.qll b/java/ql/lib/semmle/code/java/security/Validation.qll index 50f0a9aab1b..13df6fe49c7 100644 --- a/java/ql/lib/semmle/code/java/security/Validation.qll +++ b/java/ql/lib/semmle/code/java/security/Validation.qll @@ -40,7 +40,7 @@ private predicate validatedAccess(VarAccess va) { guardcall.getControlFlowNode() = node | exists(BasicBlock succ | - succ = node.getANormalSuccessor() and + succ.getFirstNode() = node.getANormalSuccessor() and dominatingEdge(node.getBasicBlock(), succ) and succ.bbDominates(va.getBasicBlock()) ) diff --git a/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql b/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql index 73c66c664f1..cc6c3d816ce 100644 --- a/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql +++ b/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql @@ -99,8 +99,8 @@ predicate failedLock(LockType t, BasicBlock lockblock, BasicBlock exblock) { ) ) and ( - lock.getAnExceptionSuccessor() = exblock or - lock.(ConditionNode).getAFalseSuccessor() = exblock + lock.getAnExceptionSuccessor() = exblock.getFirstNode() or + lock.(ConditionNode).getAFalseSuccessor() = exblock.getFirstNode() ) ) } @@ -113,7 +113,7 @@ predicate heldByCurrentThreadCheck(LockType t, BasicBlock checkblock, BasicBlock exists(ConditionBlock conditionBlock | conditionBlock.getCondition() = t.getIsHeldByCurrentThreadAccess() | - conditionBlock.getBasicBlock() = checkblock and + conditionBlock = checkblock and conditionBlock.getTestSuccessor(false) = falsesucc ) } @@ -133,7 +133,7 @@ predicate variableLockStateCheck(LockType t, BasicBlock checkblock, BasicBlock f conditionBlock.getTestSuccessor(true) = t.getUnlockAccess().getBasicBlock() and conditionBlock.getCondition() = v | - conditionBlock.getBasicBlock() = checkblock and + conditionBlock = checkblock and conditionBlock.getTestSuccessor(false) = falsesucc ) } diff --git a/shared/controlflow/codeql/controlflow/BasicBlock.qll b/shared/controlflow/codeql/controlflow/BasicBlock.qll index 74dc8ca5f51..fa7fcce6548 100644 --- a/shared/controlflow/codeql/controlflow/BasicBlock.qll +++ b/shared/controlflow/codeql/controlflow/BasicBlock.qll @@ -51,8 +51,6 @@ signature module InputSig { module Make Input> { private import Input - final class BasicBlock = BasicBlockImpl; - private Node nodeGetAPredecessor(Node node, SuccessorType s) { nodeGetASuccessor(result, s) = node } @@ -67,7 +65,7 @@ module Make Input> { * A basic block, that is, a maximal straight-line sequence of control flow nodes * without branches or joins. */ - private class BasicBlockImpl extends TBasicBlockStart { + final class BasicBlock extends TBasicBlockStart { /** Gets the CFG scope of this basic block. */ CfgScope getScope() { result = nodeGetCfgScope(this.getFirstNode()) } @@ -259,6 +257,10 @@ module Make Input> { * only be reached from the entry block by going through `(bb1, bb2)`. This * implies that `(bb1, bb2)` dominates its endpoint `bb2`. I.e., `bb2` can * only be reached from the entry block by going via `(bb1, bb2)`. + * + * This is a necessary and sufficient condition for an edge to dominate anything, + * and in particular `dominatingEdge(bb1, bb2) and bb2.dominates(bb3)` means + * that the edge `(bb1, bb2)` dominates `bb3`. */ pragma[nomagic] predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) { From 13c5906e7ec465424a92b341a0b8b3ee4acba62b Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 16 May 2025 11:31:40 +0200 Subject: [PATCH 517/656] Shared: Refactor the shared BasicBlock lib slightly and cache the successor relation. --- .../codeql/controlflow/BasicBlock.qll | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/BasicBlock.qll b/shared/controlflow/codeql/controlflow/BasicBlock.qll index fa7fcce6548..d5cda7b910b 100644 --- a/shared/controlflow/codeql/controlflow/BasicBlock.qll +++ b/shared/controlflow/codeql/controlflow/BasicBlock.qll @@ -51,16 +51,6 @@ signature module InputSig { module Make Input> { private import Input - private Node nodeGetAPredecessor(Node node, SuccessorType s) { - nodeGetASuccessor(result, s) = node - } - - /** Holds if this node has more than one predecessor. */ - private predicate nodeIsJoin(Node node) { strictcount(nodeGetAPredecessor(node, _)) > 1 } - - /** Holds if this node has more than one successor. */ - private predicate nodeIsBranch(Node node) { strictcount(nodeGetASuccessor(node, _)) > 1 } - /** * A basic block, that is, a maximal straight-line sequence of control flow nodes * without branches or joins. @@ -76,9 +66,7 @@ module Make Input> { BasicBlock getASuccessor() { result = this.getASuccessor(_) } /** Gets an immediate successor of this basic block of a given type, if any. */ - BasicBlock getASuccessor(SuccessorType t) { - result.getFirstNode() = nodeGetASuccessor(this.getLastNode(), t) - } + BasicBlock getASuccessor(SuccessorType t) { bbSuccessor(this, result, t) } /** Gets an immediate predecessor of this basic block, if any. */ BasicBlock getAPredecessor() { result.getASuccessor(_) = this } @@ -287,6 +275,16 @@ module Make Input> { cached private module Cached { + private Node nodeGetAPredecessor(Node node, SuccessorType s) { + nodeGetASuccessor(result, s) = node + } + + /** Holds if this node has more than one predecessor. */ + private predicate nodeIsJoin(Node node) { strictcount(nodeGetAPredecessor(node, _)) > 1 } + + /** Holds if this node has more than one successor. */ + private predicate nodeIsBranch(Node node) { strictcount(nodeGetASuccessor(node, _)) > 1 } + /** * Internal representation of basic blocks. A basic block is represented * by its first CFG node. @@ -343,11 +341,19 @@ module Make Input> { cached Node getNode(BasicBlock bb, int pos) { bbIndex(bb.getFirstNode(), result, pos) } + /** Holds if `bb` is an entry basic block. */ + private predicate entryBB(BasicBlock bb) { nodeIsDominanceEntry(bb.getFirstNode()) } + + cached + predicate bbSuccessor(BasicBlock bb1, BasicBlock bb2, SuccessorType t) { + bb2.getFirstNode() = nodeGetASuccessor(bb1.getLastNode(), t) + } + /** * Holds if the first node of basic block `succ` is a control flow * successor of the last node of basic block `pred`. */ - private predicate succBB(BasicBlock pred, BasicBlock succ) { pred.getASuccessor(_) = succ } + private predicate succBB(BasicBlock pred, BasicBlock succ) { bbSuccessor(pred, succ, _) } /** Holds if `dom` is an immediate dominator of `bb`. */ cached @@ -367,7 +373,4 @@ module Make Input> { } private import Cached - - /** Holds if `bb` is an entry basic block. */ - private predicate entryBB(BasicBlock bb) { nodeIsDominanceEntry(bb.getFirstNode()) } } From db01828717677ef185a79c44916028d87dd03aca Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 16 May 2025 11:46:22 +0200 Subject: [PATCH 518/656] Java: Deprecate redundant basic block predicates. --- .../new/internal/semantic/SemanticCFG.qll | 2 +- .../code/java/controlflow/BasicBlocks.qll | 48 +++++++++---- .../code/java/controlflow/Dominance.qll | 71 ++++++++++++------- .../semmle/code/java/controlflow/Guards.qll | 6 +- .../semmle/code/java/controlflow/Paths.qll | 10 +-- .../java/controlflow/UnreachableBlocks.qll | 7 +- .../java/controlflow/internal/GuardsLogic.qll | 6 +- .../semmle/code/java/dataflow/Nullness.qll | 4 +- .../code/java/dataflow/RangeAnalysis.qll | 2 +- .../semmle/code/java/dataflow/TypeFlow.qll | 6 +- .../code/java/dataflow/internal/BaseSSA.qll | 5 +- .../dataflow/internal/DataFlowPrivate.qll | 8 +-- .../java/dataflow/internal/DataFlowUtil.qll | 6 +- .../code/java/dataflow/internal/SsaImpl.qll | 5 +- ...droidWebViewCertificateValidationQuery.qll | 2 +- .../code/java/security/PathSanitizer.qll | 2 +- .../code/java/security/UrlForwardQuery.qll | 2 +- .../semmle/code/java/security/Validation.qll | 4 +- .../Likely Bugs/Concurrency/UnreleasedLock.ql | 4 +- .../Likely Typos/NestedLoopsSameVariable.ql | 2 +- .../Dead Code/DeadLocals.qll | 2 +- .../Declarations/Common.qll | 2 +- .../meta/ssa/UseWithoutUniqueSsaVariable.ql | 2 +- .../controlflow/basic/bbStrictDominance.ql | 4 +- .../controlflow/basic/bbSuccessor.ql | 4 +- .../controlflow/dominance/dominanceWrong.ql | 2 +- .../controlflow/basic/bbStrictDominance.ql | 4 +- .../controlflow/basic/bbSuccessor.ql | 4 +- .../controlflow/dominance/dominanceWrong.ql | 2 +- .../controlflow/basic/bbStrictDominance.ql | 4 +- .../controlflow/basic/bbSuccessor.ql | 4 +- .../controlflow/dominance/dominanceWrong.ql | 2 +- .../codeql/rangeanalysis/RangeAnalysis.qll | 2 +- .../rangeanalysis/internal/RangeUtils.qll | 4 +- 34 files changed, 142 insertions(+), 102 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticCFG.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticCFG.qll index 5123434a35c..8f164aa1b69 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticCFG.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticCFG.qll @@ -10,7 +10,7 @@ private import SemanticExprSpecific::SemanticExprConfig as Specific */ class SemBasicBlock extends Specific::BasicBlock { /** Holds if this block (transitively) dominates `otherblock`. */ - final predicate bbDominates(SemBasicBlock otherBlock) { Specific::bbDominates(this, otherBlock) } + final predicate dominates(SemBasicBlock otherBlock) { Specific::bbDominates(this, otherBlock) } /** Gets an expression that is evaluated in this basic block. */ final SemExpr getAnExpr() { result.getBasicBlock() = this } diff --git a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll index 7521d627742..60fa976ef68 100644 --- a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll +++ b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll @@ -79,23 +79,47 @@ class BasicBlock extends BbImpl::BasicBlock { /** Gets the immediately enclosing callable whose body contains this node. */ Callable getEnclosingCallable() { result = this.getScope() } - /** Gets an immediate successor of this basic block. */ - BasicBlock getABBSuccessor() { result = this.getASuccessor() } + /** + * DEPRECATED: Use `getASuccessor` instead. + * + * Gets an immediate successor of this basic block. + */ + deprecated BasicBlock getABBSuccessor() { result = this.getASuccessor() } - /** Gets an immediate predecessor of this basic block. */ - BasicBlock getABBPredecessor() { result.getABBSuccessor() = this } + /** + * DEPRECATED: Use `getAPredecessor` instead. + * + * Gets an immediate predecessor of this basic block. + */ + deprecated BasicBlock getABBPredecessor() { result.getASuccessor() = this } - /** Holds if this basic block strictly dominates `node`. */ - predicate bbStrictlyDominates(BasicBlock node) { this.strictlyDominates(node) } + /** + * DEPRECATED: Use `strictlyDominates` instead. + * + * Holds if this basic block strictly dominates `node`. + */ + deprecated predicate bbStrictlyDominates(BasicBlock node) { this.strictlyDominates(node) } - /** Holds if this basic block dominates `node`. (This is reflexive.) */ - predicate bbDominates(BasicBlock node) { this.dominates(node) } + /** + * DEPRECATED: Use `dominates` instead. + * + * Holds if this basic block dominates `node`. (This is reflexive.) + */ + deprecated predicate bbDominates(BasicBlock node) { this.dominates(node) } - /** Holds if this basic block strictly post-dominates `node`. */ - predicate bbStrictlyPostDominates(BasicBlock node) { this.strictlyPostDominates(node) } + /** + * DEPRECATED: Use `strictlyPostDominates` instead. + * + * Holds if this basic block strictly post-dominates `node`. + */ + deprecated predicate bbStrictlyPostDominates(BasicBlock node) { this.strictlyPostDominates(node) } - /** Holds if this basic block post-dominates `node`. (This is reflexive.) */ - predicate bbPostDominates(BasicBlock node) { this.postDominates(node) } + /** + * DEPRECATED: Use `postDominates` instead. + * + * Holds if this basic block post-dominates `node`. (This is reflexive.) + */ + deprecated predicate bbPostDominates(BasicBlock node) { this.postDominates(node) } } /** A basic block that ends in an exit node. */ diff --git a/java/ql/lib/semmle/code/java/controlflow/Dominance.qll b/java/ql/lib/semmle/code/java/controlflow/Dominance.qll index 7db312c432b..6f0cb3d255c 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Dominance.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Dominance.qll @@ -8,51 +8,72 @@ import java * Predicates for basic-block-level dominance. */ -/** The immediate dominance relation for basic blocks. */ -predicate bbIDominates(BasicBlock dom, BasicBlock node) { dom.immediatelyDominates(node) } +/** + * DEPRECATED: Use `BasicBlock::immediatelyDominates` instead. + * + * The immediate dominance relation for basic blocks. + */ +deprecated predicate bbIDominates(BasicBlock dom, BasicBlock node) { + dom.immediatelyDominates(node) +} /** Exit points for basic-block control-flow. */ private predicate bbSink(BasicBlock exit) { exit.getLastNode() instanceof ControlFlow::ExitNode } /** Reversed `bbSucc`. */ -private predicate bbPred(BasicBlock post, BasicBlock pre) { post = pre.getABBSuccessor() } +private predicate bbPred(BasicBlock post, BasicBlock pre) { post = pre.getASuccessor() } /** The immediate post-dominance relation on basic blocks. */ -cached -predicate bbIPostDominates(BasicBlock dominator, BasicBlock node) = +deprecated predicate bbIPostDominates(BasicBlock dominator, BasicBlock node) = idominance(bbSink/1, bbPred/2)(_, dominator, node) -/** Holds if `dom` strictly dominates `node`. */ -predicate bbStrictlyDominates(BasicBlock dom, BasicBlock node) { bbIDominates+(dom, node) } - -/** Holds if `dom` dominates `node`. (This is reflexive.) */ -predicate bbDominates(BasicBlock dom, BasicBlock node) { - bbStrictlyDominates(dom, node) or dom = node +/** + * DEPRECATED: Use `BasicBlock::strictlyDominates` instead. + * + * Holds if `dom` strictly dominates `node`. + */ +deprecated predicate bbStrictlyDominates(BasicBlock dom, BasicBlock node) { + dom.strictlyDominates(node) } -/** Holds if `dom` strictly post-dominates `node`. */ -predicate bbStrictlyPostDominates(BasicBlock dom, BasicBlock node) { bbIPostDominates+(dom, node) } +/** + * DEPRECATED: Use `BasicBlock::dominates` instead. + * + * Holds if `dom` dominates `node`. (This is reflexive.) + */ +deprecated predicate bbDominates(BasicBlock dom, BasicBlock node) { dom.dominates(node) } -/** Holds if `dom` post-dominates `node`. (This is reflexive.) */ -predicate bbPostDominates(BasicBlock dom, BasicBlock node) { - bbStrictlyPostDominates(dom, node) or dom = node +/** + * DEPRECATED: Use `BasicBlock::strictlyPostDominates` instead. + * + * Holds if `dom` strictly post-dominates `node`. + */ +deprecated predicate bbStrictlyPostDominates(BasicBlock dom, BasicBlock node) { + dom.strictlyPostDominates(node) } +/** + * DEPRECATED: Use `BasicBlock::postDominates` instead. + * + * Holds if `dom` post-dominates `node`. (This is reflexive.) + */ +deprecated predicate bbPostDominates(BasicBlock dom, BasicBlock node) { dom.postDominates(node) } + /** * The dominance frontier relation for basic blocks. * * This is equivalent to: * * ``` - * bbDominates(x, w.getABBPredecessor()) and not bbStrictlyDominates(x, w) + * x.dominates(w.getAPredecessor()) and not x.strictlyDominates(w) * ``` */ predicate dominanceFrontier(BasicBlock x, BasicBlock w) { - x = w.getABBPredecessor() and not bbIDominates(x, w) + x = w.getAPredecessor() and not x.immediatelyDominates(w) or exists(BasicBlock prev | dominanceFrontier(prev, w) | - bbIDominates(x, prev) and - not bbIDominates(x, w) + x.immediatelyDominates(prev) and + not x.immediatelyDominates(w) ) } @@ -65,7 +86,7 @@ predicate iDominates(ControlFlowNode dominator, ControlFlowNode node) { exists(BasicBlock bb, int i | dominator = bb.getNode(i) and node = bb.getNode(i + 1)) or exists(BasicBlock dom, BasicBlock bb | - bbIDominates(dom, bb) and + dom.immediatelyDominates(bb) and dominator = dom.getLastNode() and node = bb.getFirstNode() ) @@ -75,7 +96,7 @@ predicate iDominates(ControlFlowNode dominator, ControlFlowNode node) { pragma[inline] predicate strictlyDominates(ControlFlowNode dom, ControlFlowNode node) { // This predicate is gigantic, so it must be inlined. - bbStrictlyDominates(dom.getBasicBlock(), node.getBasicBlock()) + dom.getBasicBlock().strictlyDominates(node.getBasicBlock()) or exists(BasicBlock b, int i, int j | dom = b.getNode(i) and node = b.getNode(j) and i < j) } @@ -84,7 +105,7 @@ predicate strictlyDominates(ControlFlowNode dom, ControlFlowNode node) { pragma[inline] predicate dominates(ControlFlowNode dom, ControlFlowNode node) { // This predicate is gigantic, so it must be inlined. - bbStrictlyDominates(dom.getBasicBlock(), node.getBasicBlock()) + dom.getBasicBlock().strictlyDominates(node.getBasicBlock()) or exists(BasicBlock b, int i, int j | dom = b.getNode(i) and node = b.getNode(j) and i <= j) } @@ -93,7 +114,7 @@ predicate dominates(ControlFlowNode dom, ControlFlowNode node) { pragma[inline] predicate strictlyPostDominates(ControlFlowNode dom, ControlFlowNode node) { // This predicate is gigantic, so it must be inlined. - bbStrictlyPostDominates(dom.getBasicBlock(), node.getBasicBlock()) + dom.getBasicBlock().strictlyPostDominates(node.getBasicBlock()) or exists(BasicBlock b, int i, int j | dom = b.getNode(i) and node = b.getNode(j) and i > j) } @@ -102,7 +123,7 @@ predicate strictlyPostDominates(ControlFlowNode dom, ControlFlowNode node) { pragma[inline] predicate postDominates(ControlFlowNode dom, ControlFlowNode node) { // This predicate is gigantic, so it must be inlined. - bbStrictlyPostDominates(dom.getBasicBlock(), node.getBasicBlock()) + dom.getBasicBlock().strictlyPostDominates(node.getBasicBlock()) or exists(BasicBlock b, int i, int j | dom = b.getNode(i) and node = b.getNode(j) and i >= j) } diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll index 93629a9f6fb..99a832c08a8 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll @@ -68,7 +68,7 @@ class ConditionBlock extends BasicBlock { exists(BasicBlock succ | succ = this.getTestSuccessor(testIsTrue) and dominatingEdge(this, succ) and - succ.bbDominates(controlled) + succ.dominates(controlled) ) } } @@ -287,7 +287,7 @@ private predicate switchCaseControls(SwitchCase sc, BasicBlock bb) { // Pattern cases are handled as condition blocks not sc instanceof PatternCase and caseblock.getFirstNode() = sc.getControlFlowNode() and - caseblock.bbDominates(bb) and + caseblock.dominates(bb) and // Check we can't fall through from a previous block: forall(ControlFlowNode pred | pred = sc.getControlFlowNode().getAPredecessor() | isNonFallThroughPredecessor(sc, pred) @@ -307,7 +307,7 @@ private predicate preconditionControls(MethodCall ma, BasicBlock controlled, boo exists(BasicBlock check, BasicBlock succ | preconditionBranchEdge(ma, check, succ, branch) and dominatingEdge(check, succ) and - succ.bbDominates(controlled) + succ.dominates(controlled) ) } diff --git a/java/ql/lib/semmle/code/java/controlflow/Paths.qll b/java/ql/lib/semmle/code/java/controlflow/Paths.qll index 5a06a3a1ee5..8f87e19404a 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Paths.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Paths.qll @@ -47,7 +47,7 @@ private predicate callAlwaysPerformsAction(Call call, ActionConfiguration conf) private predicate actionDominatesExit(Callable callable, ActionConfiguration conf) { exists(ExitBlock exit | exit.getEnclosingCallable() = callable and - actionBlock(conf).bbDominates(exit) + actionBlock(conf).dominates(exit) ) } @@ -56,12 +56,12 @@ private BasicBlock nonDominatingActionBlock(ActionConfiguration conf) { exists(ExitBlock exit | result = actionBlock(conf) and exit.getEnclosingCallable() = result.getEnclosingCallable() and - not result.bbDominates(exit) + not result.dominates(exit) ) } private class JoinBlock extends BasicBlock { - JoinBlock() { 2 <= strictcount(this.getABBPredecessor()) } + JoinBlock() { 2 <= strictcount(this.getAPredecessor()) } } /** @@ -72,8 +72,8 @@ private predicate postActionBlock(BasicBlock bb, ActionConfiguration conf) { bb = nonDominatingActionBlock(conf) or if bb instanceof JoinBlock - then forall(BasicBlock pred | pred = bb.getABBPredecessor() | postActionBlock(pred, conf)) - else postActionBlock(bb.getABBPredecessor(), conf) + then forall(BasicBlock pred | pred = bb.getAPredecessor() | postActionBlock(pred, conf)) + else postActionBlock(bb.getAPredecessor(), conf) } /** Holds if every path through `callable` goes through at least one action node. */ diff --git a/java/ql/lib/semmle/code/java/controlflow/UnreachableBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/UnreachableBlocks.qll index 7bcc732de6a..0ade780bc00 100644 --- a/java/ql/lib/semmle/code/java/controlflow/UnreachableBlocks.qll +++ b/java/ql/lib/semmle/code/java/controlflow/UnreachableBlocks.qll @@ -209,7 +209,7 @@ class UnreachableBasicBlock extends BasicBlock { or // This block is not reachable in the CFG, and is not the entrypoint in a callable, an // expression in an assert statement, or a catch clause. - forall(BasicBlock bb | bb = this.getABBPredecessor() | bb instanceof UnreachableBasicBlock) and + forall(BasicBlock bb | bb = this.getAPredecessor() | bb instanceof UnreachableBasicBlock) and not exists(Callable c | c.getBody().getControlFlowNode() = this.getFirstNode()) and not this.getFirstNode().asExpr().getEnclosingStmt() instanceof AssertStmt and not this.getFirstNode().asStmt() instanceof CatchClause @@ -219,11 +219,10 @@ class UnreachableBasicBlock extends BasicBlock { // Not accessible from the switch expression unreachableCaseBlock = constSwitchStmt.getAFailingCase().getBasicBlock() and // Not accessible from the successful case - not constSwitchStmt.getMatchingCase().getBasicBlock().getABBSuccessor*() = - unreachableCaseBlock + not constSwitchStmt.getMatchingCase().getBasicBlock().getASuccessor*() = unreachableCaseBlock | // Blocks dominated by an unreachable case block are unreachable - unreachableCaseBlock.bbDominates(this) + unreachableCaseBlock.dominates(this) ) } } diff --git a/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll b/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll index 9f7b88f9af1..4cb3bc74f97 100644 --- a/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll +++ b/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll @@ -239,7 +239,7 @@ SsaVariable getADefinition(SsaVariable v, boolean fromBackEdge) { exists(SsaVariable inp, BasicBlock bb, boolean fbe | v.(SsaPhiNode).hasInputFromBlock(inp, bb) and result = getADefinition(inp, fbe) and - (if v.getBasicBlock().bbDominates(bb) then fromBackEdge = true else fromBackEdge = fbe) + (if v.getBasicBlock().dominates(bb) then fromBackEdge = true else fromBackEdge = fbe) ) } @@ -306,7 +306,7 @@ private predicate guardControlsPhiBranch( guard.directlyControls(upd.getBasicBlock(), branch) and upd.getDefiningExpr().(VariableAssign).getSource() = e and upd = phi.getAPhiInput() and - guard.getBasicBlock().bbStrictlyDominates(phi.getBasicBlock()) + guard.getBasicBlock().strictlyDominates(phi.getBasicBlock()) } /** @@ -331,7 +331,7 @@ private predicate conditionalAssign(SsaVariable v, Guard guard, boolean branch, forall(SsaVariable other | other != upd and other = phi.getAPhiInput() | guard.directlyControls(other.getBasicBlock(), branch.booleanNot()) or - other.getBasicBlock().bbDominates(guard.getBasicBlock()) and + other.getBasicBlock().dominates(guard.getBasicBlock()) and not other.isLiveAtEndOfBlock(getAGuardBranchSuccessor(guard, branch)) ) ) diff --git a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll index 757720b9ae8..786207d3486 100644 --- a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll +++ b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll @@ -298,7 +298,7 @@ private predicate impossibleEdge(BasicBlock bb1, BasicBlock bb2) { private predicate leavingFinally(BasicBlock bb1, BasicBlock bb2, boolean normaledge) { exists(TryStmt try, BlockStmt finally | try.getFinally() = finally and - bb1.getABBSuccessor() = bb2 and + bb1.getASuccessor() = bb2 and bb1.getFirstNode().getEnclosingStmt().getEnclosingStmt*() = finally and not bb2.getFirstNode().getEnclosingStmt().getEnclosingStmt*() = finally and if bb1.getLastNode().getANormalSuccessor() = bb2.getFirstNode() @@ -339,7 +339,7 @@ private predicate nullVarStep( midssa.isLiveAtEndOfBlock(mid) and not ensureNotNull(midssa).getBasicBlock() = mid and not assertFail(mid, _) and - bb = mid.getABBSuccessor() and + bb = mid.getASuccessor() and not impossibleEdge(mid, bb) and not exists(boolean branch | nullGuard(midssa, branch, false).hasBranchEdge(mid, bb, branch)) and not (leavingFinally(mid, bb, true) and midstoredcompletion = true) and diff --git a/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll b/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll index 499d27b594d..b43990e1455 100644 --- a/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll +++ b/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll @@ -209,7 +209,7 @@ module Sem implements Semantic { class BasicBlock = J::BasicBlock; - BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getABBSuccessor() } + BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() } private predicate id(ExprParent x, ExprParent y) { x = y } diff --git a/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll b/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll index d29cc1ae542..f2fcbc5951d 100644 --- a/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll @@ -321,14 +321,14 @@ private module Input implements TypeFlowInput { */ private predicate instanceofDisjunct(InstanceOfExpr ioe, BasicBlock bb, BaseSsaVariable v) { ioe.getExpr() = v.getAUse() and - strictcount(bb.getABBPredecessor()) > 1 and + strictcount(bb.getAPredecessor()) > 1 and exists(ConditionBlock cb | cb.getCondition() = ioe and cb.getTestSuccessor(true) = bb) } /** Holds if `bb` is disjunctively guarded by multiple `instanceof` tests on `v`. */ private predicate instanceofDisjunction(BasicBlock bb, BaseSsaVariable v) { strictcount(InstanceOfExpr ioe | instanceofDisjunct(ioe, bb, v)) = - strictcount(bb.getABBPredecessor()) + strictcount(bb.getAPredecessor()) } /** @@ -338,7 +338,7 @@ private module Input implements TypeFlowInput { predicate instanceofDisjunctionGuarded(TypeFlowNode n, RefType t) { exists(BasicBlock bb, InstanceOfExpr ioe, BaseSsaVariable v, VarAccess va | instanceofDisjunction(bb, v) and - bb.bbDominates(va.getBasicBlock()) and + bb.dominates(va.getBasicBlock()) and va = v.getAUse() and instanceofDisjunct(ioe, bb, v) and t = ioe.getSyntacticCheckedType() and diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll index 3ce4fbcce9f..874aca87183 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll @@ -157,15 +157,14 @@ private import BaseSsaImpl private module SsaInput implements SsaImplCommon::InputSig { private import java as J - private import semmle.code.java.controlflow.Dominance as Dom class BasicBlock = J::BasicBlock; class ControlFlowNode = J::ControlFlowNode; - BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { Dom::bbIDominates(result, bb) } + BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { result.immediatelyDominates(bb) } - BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getABBSuccessor() } + BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() } class SourceVariable = BaseSsaSourceVariable; diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll index d1df53a8a85..9e924df1278 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll @@ -83,12 +83,12 @@ private module CaptureInput implements VariableCapture::InputSig { class ControlFlowNode = J::ControlFlowNode; - BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { bbIDominates(result, bb) } - - BasicBlock getABasicBlockSuccessor(BasicBlock bb) { - result = bb.(J::BasicBlock).getABBSuccessor() + BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { + result.(J::BasicBlock).immediatelyDominates(bb) } + BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.(J::BasicBlock).getASuccessor() } + //TODO: support capture of `this` in lambdas class CapturedVariable instanceof LocalScopeVariable { CapturedVariable() { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll index e87c92f3d6c..6000c37c6cd 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll @@ -40,14 +40,14 @@ private module ThisFlow { private int lastRank(BasicBlock b) { result = max(int rankix | thisRank(_, b, rankix)) } - private predicate blockPrecedesThisAccess(BasicBlock b) { thisAccess(_, b.getABBSuccessor*(), _) } + private predicate blockPrecedesThisAccess(BasicBlock b) { thisAccess(_, b.getASuccessor*(), _) } private predicate thisAccessBlockReaches(BasicBlock b1, BasicBlock b2) { - thisAccess(_, b1, _) and b2 = b1.getABBSuccessor() + thisAccess(_, b1, _) and b2 = b1.getASuccessor() or exists(BasicBlock mid | thisAccessBlockReaches(b1, mid) and - b2 = mid.getABBSuccessor() and + b2 = mid.getASuccessor() and not thisAccess(_, mid, _) and blockPrecedesThisAccess(b2) ) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll index 26342debbb0..6054db635bc 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll @@ -165,15 +165,14 @@ private predicate uncertainVariableUpdate(TrackedVar v, ControlFlowNode n, Basic private module SsaInput implements SsaImplCommon::InputSig { private import java as J - private import semmle.code.java.controlflow.Dominance as Dom class BasicBlock = J::BasicBlock; class ControlFlowNode = J::ControlFlowNode; - BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { Dom::bbIDominates(result, bb) } + BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { result.immediatelyDominates(bb) } - BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getABBSuccessor() } + BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() } class SourceVariable = SsaSourceVariable; diff --git a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll index 8e6a9c30141..8d53766e008 100644 --- a/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/AndroidWebViewCertificateValidationQuery.qll @@ -24,6 +24,6 @@ private class SslProceedCall extends MethodCall { /** Holds if `m` trusts all certificates by calling `SslErrorHandler.proceed` unconditionally. */ predicate trustsAllCerts(OnReceivedSslErrorMethod m) { exists(SslProceedCall pr | pr.getQualifier().(VarAccess).getVariable() = m.handlerArg() | - pr.getBasicBlock().bbPostDominates(m.getBody().getBasicBlock()) + pr.getBasicBlock().postDominates(m.getBody().getBasicBlock()) ) } diff --git a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll index 8b08b5a78f2..f3385c94646 100644 --- a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll +++ b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll @@ -21,7 +21,7 @@ private module ValidationMethod { validationMethod(ma.getMethod(), pos) and ma.getArgument(pos) = rv and adjacentUseUseSameVar(rv, result.asExpr()) and - ma.getBasicBlock().bbDominates(result.asExpr().getBasicBlock()) + ma.getBasicBlock().dominates(result.asExpr().getBasicBlock()) ) } diff --git a/java/ql/lib/semmle/code/java/security/UrlForwardQuery.qll b/java/ql/lib/semmle/code/java/security/UrlForwardQuery.qll index bc3b4000927..7234b4c788f 100644 --- a/java/ql/lib/semmle/code/java/security/UrlForwardQuery.qll +++ b/java/ql/lib/semmle/code/java/security/UrlForwardQuery.qll @@ -168,7 +168,7 @@ private class FullyDecodesUrlBarrier extends DataFlow::Node { exists(Variable v, Expr e | this.asExpr() = v.getAnAccess() | fullyDecodesUrlGuard(e) and e = v.getAnAccess() and - e.getBasicBlock().bbDominates(this.asExpr().getBasicBlock()) + e.getBasicBlock().dominates(this.asExpr().getBasicBlock()) ) } } diff --git a/java/ql/lib/semmle/code/java/security/Validation.qll b/java/ql/lib/semmle/code/java/security/Validation.qll index 13df6fe49c7..664c55e70d8 100644 --- a/java/ql/lib/semmle/code/java/security/Validation.qll +++ b/java/ql/lib/semmle/code/java/security/Validation.qll @@ -42,14 +42,14 @@ private predicate validatedAccess(VarAccess va) { exists(BasicBlock succ | succ.getFirstNode() = node.getANormalSuccessor() and dominatingEdge(node.getBasicBlock(), succ) and - succ.bbDominates(va.getBasicBlock()) + succ.dominates(va.getBasicBlock()) ) or exists(BasicBlock bb, int i | bb.getNode(i) = node and bb.getNode(i + 1) = node.getANormalSuccessor() | - bb.bbStrictlyDominates(va.getBasicBlock()) or + bb.strictlyDominates(va.getBasicBlock()) or bb.getNode(any(int j | j > i)).asExpr() = va ) ) diff --git a/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql b/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql index cc6c3d816ce..118593e31fe 100644 --- a/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql +++ b/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.ql @@ -145,9 +145,7 @@ predicate variableLockStateCheck(LockType t, BasicBlock checkblock, BasicBlock f predicate blockIsLocked(LockType t, BasicBlock src, BasicBlock b, int locks) { lockUnlockBlock(t, b, locks) and src = b and locks > 0 or - exists(BasicBlock pred, int predlocks, int curlocks, int failedlock | - pred = b.getABBPredecessor() - | + exists(BasicBlock pred, int predlocks, int curlocks, int failedlock | pred = b.getAPredecessor() | // The number of net locks from the `src` block to the predecessor block `pred` is `predlocks`. blockIsLocked(t, src, pred, predlocks) and // The recursive call ensures that at least one lock is held, so do not consider the false diff --git a/java/ql/src/Likely Bugs/Likely Typos/NestedLoopsSameVariable.ql b/java/ql/src/Likely Bugs/Likely Typos/NestedLoopsSameVariable.ql index 83781f85377..f3f23e6893b 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/NestedLoopsSameVariable.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/NestedLoopsSameVariable.ql @@ -18,6 +18,6 @@ where iteration = inner.getAnIterationVariable() and iteration = outer.getAnIterationVariable() and inner.getEnclosingStmt+() = outer and - inner.getBasicBlock().getABBSuccessor+() = outer.getCondition().getBasicBlock() + inner.getBasicBlock().getASuccessor+() = outer.getCondition().getBasicBlock() select inner.getCondition(), "Nested for statement uses loop variable $@ of enclosing $@.", iteration, iteration.getName(), outer, "for statement" diff --git a/java/ql/src/Violations of Best Practice/Dead Code/DeadLocals.qll b/java/ql/src/Violations of Best Practice/Dead Code/DeadLocals.qll index 773743370f6..26c5ed66a86 100644 --- a/java/ql/src/Violations of Best Practice/Dead Code/DeadLocals.qll +++ b/java/ql/src/Violations of Best Practice/Dead Code/DeadLocals.qll @@ -37,7 +37,7 @@ predicate overwritten(VariableUpdate upd) { bb1.getNode(i) = upd.getControlFlowNode() and bb2.getNode(j) = overwrite.getControlFlowNode() | - bb1.getABBSuccessor+() = bb2 + bb1.getASuccessor+() = bb2 or bb1 = bb2 and i < j ) diff --git a/java/ql/src/Violations of Best Practice/Declarations/Common.qll b/java/ql/src/Violations of Best Practice/Declarations/Common.qll index 9211c4b0f29..9b3225db81a 100644 --- a/java/ql/src/Violations of Best Practice/Declarations/Common.qll +++ b/java/ql/src/Violations of Best Practice/Declarations/Common.qll @@ -14,7 +14,7 @@ private predicate blockInSwitch(SwitchStmt s, BasicBlock b) { private predicate switchCaseControlFlow(SwitchStmt switch, BasicBlock b1, BasicBlock b2) { blockInSwitch(switch, b1) and - b1.getABBSuccessor() = b2 and + b1.getASuccessor() = b2 and blockInSwitch(switch, b2) } diff --git a/java/ql/src/meta/ssa/UseWithoutUniqueSsaVariable.ql b/java/ql/src/meta/ssa/UseWithoutUniqueSsaVariable.ql index 85bd192fe99..76f6ee37fb1 100644 --- a/java/ql/src/meta/ssa/UseWithoutUniqueSsaVariable.ql +++ b/java/ql/src/meta/ssa/UseWithoutUniqueSsaVariable.ql @@ -13,7 +13,7 @@ import semmle.code.java.dataflow.SSA class SsaConvertibleReadAccess extends VarRead { SsaConvertibleReadAccess() { - this.getEnclosingCallable().getBody().getBasicBlock().getABBSuccessor*() = this.getBasicBlock() and + this.getEnclosingCallable().getBody().getBasicBlock().getASuccessor*() = this.getBasicBlock() and ( not exists(this.getQualifier()) or diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.ql b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.ql index 9765b8e6cc5..de1e23b649c 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.ql +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbStrictDominance.ql @@ -1,6 +1,6 @@ -import default +import java import semmle.code.java.controlflow.Dominance from BasicBlock b, BasicBlock b2 -where bbStrictlyDominates(b, b2) +where b.strictlyDominates(b2) select b, b2 diff --git a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.ql b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.ql index 1d464c2a31a..ae2d8a393b4 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.ql +++ b/java/ql/test-kotlin1/library-tests/controlflow/basic/bbSuccessor.ql @@ -1,5 +1,5 @@ -import default +import java from BasicBlock b, BasicBlock b2 -where b.getABBSuccessor() = b2 +where b.getASuccessor() = b2 select b, b2 diff --git a/java/ql/test-kotlin1/library-tests/controlflow/dominance/dominanceWrong.ql b/java/ql/test-kotlin1/library-tests/controlflow/dominance/dominanceWrong.ql index 5ee23224d5f..4eadcddc61a 100644 --- a/java/ql/test-kotlin1/library-tests/controlflow/dominance/dominanceWrong.ql +++ b/java/ql/test-kotlin1/library-tests/controlflow/dominance/dominanceWrong.ql @@ -16,6 +16,6 @@ predicate dominanceCounterExample(ControlFlowNode entry, ControlFlowNode dom, Co from Callable c, ControlFlowNode dom, ControlFlowNode node where - (strictlyDominates(dom, node) or bbStrictlyDominates(dom, node)) and + strictlyDominates(dom, node) and dominanceCounterExample(c.getBody().getControlFlowNode(), dom, node) select c, dom, node diff --git a/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStrictDominance.ql b/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStrictDominance.ql index 9765b8e6cc5..de1e23b649c 100644 --- a/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStrictDominance.ql +++ b/java/ql/test-kotlin2/library-tests/controlflow/basic/bbStrictDominance.ql @@ -1,6 +1,6 @@ -import default +import java import semmle.code.java.controlflow.Dominance from BasicBlock b, BasicBlock b2 -where bbStrictlyDominates(b, b2) +where b.strictlyDominates(b2) select b, b2 diff --git a/java/ql/test-kotlin2/library-tests/controlflow/basic/bbSuccessor.ql b/java/ql/test-kotlin2/library-tests/controlflow/basic/bbSuccessor.ql index 1d464c2a31a..ae2d8a393b4 100644 --- a/java/ql/test-kotlin2/library-tests/controlflow/basic/bbSuccessor.ql +++ b/java/ql/test-kotlin2/library-tests/controlflow/basic/bbSuccessor.ql @@ -1,5 +1,5 @@ -import default +import java from BasicBlock b, BasicBlock b2 -where b.getABBSuccessor() = b2 +where b.getASuccessor() = b2 select b, b2 diff --git a/java/ql/test-kotlin2/library-tests/controlflow/dominance/dominanceWrong.ql b/java/ql/test-kotlin2/library-tests/controlflow/dominance/dominanceWrong.ql index 5ee23224d5f..4eadcddc61a 100644 --- a/java/ql/test-kotlin2/library-tests/controlflow/dominance/dominanceWrong.ql +++ b/java/ql/test-kotlin2/library-tests/controlflow/dominance/dominanceWrong.ql @@ -16,6 +16,6 @@ predicate dominanceCounterExample(ControlFlowNode entry, ControlFlowNode dom, Co from Callable c, ControlFlowNode dom, ControlFlowNode node where - (strictlyDominates(dom, node) or bbStrictlyDominates(dom, node)) and + strictlyDominates(dom, node) and dominanceCounterExample(c.getBody().getControlFlowNode(), dom, node) select c, dom, node diff --git a/java/ql/test/library-tests/controlflow/basic/bbStrictDominance.ql b/java/ql/test/library-tests/controlflow/basic/bbStrictDominance.ql index 9765b8e6cc5..de1e23b649c 100644 --- a/java/ql/test/library-tests/controlflow/basic/bbStrictDominance.ql +++ b/java/ql/test/library-tests/controlflow/basic/bbStrictDominance.ql @@ -1,6 +1,6 @@ -import default +import java import semmle.code.java.controlflow.Dominance from BasicBlock b, BasicBlock b2 -where bbStrictlyDominates(b, b2) +where b.strictlyDominates(b2) select b, b2 diff --git a/java/ql/test/library-tests/controlflow/basic/bbSuccessor.ql b/java/ql/test/library-tests/controlflow/basic/bbSuccessor.ql index 1d464c2a31a..ae2d8a393b4 100644 --- a/java/ql/test/library-tests/controlflow/basic/bbSuccessor.ql +++ b/java/ql/test/library-tests/controlflow/basic/bbSuccessor.ql @@ -1,5 +1,5 @@ -import default +import java from BasicBlock b, BasicBlock b2 -where b.getABBSuccessor() = b2 +where b.getASuccessor() = b2 select b, b2 diff --git a/java/ql/test/library-tests/controlflow/dominance/dominanceWrong.ql b/java/ql/test/library-tests/controlflow/dominance/dominanceWrong.ql index 5ee23224d5f..4eadcddc61a 100644 --- a/java/ql/test/library-tests/controlflow/dominance/dominanceWrong.ql +++ b/java/ql/test/library-tests/controlflow/dominance/dominanceWrong.ql @@ -16,6 +16,6 @@ predicate dominanceCounterExample(ControlFlowNode entry, ControlFlowNode dom, Co from Callable c, ControlFlowNode dom, ControlFlowNode node where - (strictlyDominates(dom, node) or bbStrictlyDominates(dom, node)) and + strictlyDominates(dom, node) and dominanceCounterExample(c.getBody().getControlFlowNode(), dom, node) select c, dom, node diff --git a/shared/rangeanalysis/codeql/rangeanalysis/RangeAnalysis.qll b/shared/rangeanalysis/codeql/rangeanalysis/RangeAnalysis.qll index d0fc084e6c5..60888c9f93f 100644 --- a/shared/rangeanalysis/codeql/rangeanalysis/RangeAnalysis.qll +++ b/shared/rangeanalysis/codeql/rangeanalysis/RangeAnalysis.qll @@ -146,7 +146,7 @@ signature module Semantic { class BasicBlock { /** Holds if this block (transitively) dominates `otherblock`. */ - predicate bbDominates(BasicBlock otherBlock); + predicate dominates(BasicBlock otherBlock); } /** Gets an immediate successor of basic block `bb`, if any. */ diff --git a/shared/rangeanalysis/codeql/rangeanalysis/internal/RangeUtils.qll b/shared/rangeanalysis/codeql/rangeanalysis/internal/RangeUtils.qll index ee6e3a4c958..05aef480508 100644 --- a/shared/rangeanalysis/codeql/rangeanalysis/internal/RangeUtils.qll +++ b/shared/rangeanalysis/codeql/rangeanalysis/internal/RangeUtils.qll @@ -205,7 +205,7 @@ module MakeUtils Lang, DeltaSig D> { predicate backEdge(SsaPhiNode phi, SsaVariable inp, SsaReadPositionPhiInputEdge edge) { edge.phiInput(phi, inp) and ( - phi.getBasicBlock().bbDominates(edge.getOrigBlock()) or + phi.getBasicBlock().dominates(edge.getOrigBlock()) or irreducibleSccEdge(edge.getOrigBlock(), phi.getBasicBlock()) ) } @@ -227,7 +227,7 @@ module MakeUtils Lang, DeltaSig D> { private predicate trimmedEdge(BasicBlock pred, BasicBlock succ) { getABasicBlockSuccessor(pred) = succ and - not succ.bbDominates(pred) + not succ.dominates(pred) } /** From 6b830faa622693303d55e0dc9a84182d95dde1ad Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 16 May 2025 13:55:16 +0200 Subject: [PATCH 519/656] Java: Add change note. --- java/ql/lib/change-notes/2025-05-16-shared-basicblocks.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2025-05-16-shared-basicblocks.md diff --git a/java/ql/lib/change-notes/2025-05-16-shared-basicblocks.md b/java/ql/lib/change-notes/2025-05-16-shared-basicblocks.md new file mode 100644 index 00000000000..ff8be9b9edd --- /dev/null +++ b/java/ql/lib/change-notes/2025-05-16-shared-basicblocks.md @@ -0,0 +1,4 @@ +--- +category: deprecated +--- +* Java now uses the shared `BasicBlock` library. This means that several member predicates now use the preferred names. The old predicates have been deprecated. The `BasicBlock` class itself no longer extends `ControlFlowNode` - the predicate `getFirstNode` can be used to fix any QL code that somehow relied on this. From a98d93b98b54e4e4e7fd38fcb11d5de9f24ac990 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 16 May 2025 14:22:36 +0200 Subject: [PATCH 520/656] Java: Override dominates to reference the right type. --- java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll index 60fa976ef68..e8395166d4e 100644 --- a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll +++ b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll @@ -79,6 +79,14 @@ class BasicBlock extends BbImpl::BasicBlock { /** Gets the immediately enclosing callable whose body contains this node. */ Callable getEnclosingCallable() { result = this.getScope() } + /** + * Holds if this basic block dominates basic block `bb`. + * + * That is, all paths reaching `bb` from the entry point basic block must + * go through this basic block. + */ + predicate dominates(BasicBlock bb) { super.dominates(bb) } + /** * DEPRECATED: Use `getASuccessor` instead. * From 3fde675d08789b361e5ae2d1a8bd419e23b5a260 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 19 May 2025 09:16:29 +0200 Subject: [PATCH 521/656] Java: Extend qldoc. --- .../code/java/controlflow/SuccessorType.qll | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll b/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll index 323d571e6e0..f03e4690a95 100644 --- a/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll +++ b/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll @@ -1,3 +1,7 @@ +/** + * Provides different types of control flow successor types. + */ + import java private import codeql.util.Boolean @@ -6,20 +10,63 @@ private newtype TSuccessorType = TBooleanSuccessor(Boolean branch) or TExceptionSuccessor() +/** The type of a control flow successor. */ class SuccessorType extends TSuccessorType { + /** Gets a textual representation of successor type. */ string toString() { result = "SuccessorType" } } +/** A normal control flow successor. */ class NormalSuccessor extends SuccessorType, TNormalSuccessor { } +/** + * An exceptional control flow successor. + * + * This marks control flow edges that are taken when an exception is thrown. + */ class ExceptionSuccessor extends SuccessorType, TExceptionSuccessor { } +/** + * A conditional control flow successor. + * + * This currently only includes boolean successors (`BooleanSuccessor`). + */ class ConditionalSuccessor extends SuccessorType, TBooleanSuccessor { + /** Gets the Boolean value of this successor. */ boolean getValue() { this = TBooleanSuccessor(result) } } +/** + * A Boolean control flow successor. + * + * For example, this program fragment: + * + * ```java + * if (x < 0) + * return 0; + * else + * return 1; + * ``` + * + * has a control flow graph containing Boolean successors: + * + * ``` + * if + * | + * x < 0 + * / \ + * / \ + * / \ + * true false + * | \ + * return 0 return 1 + * ``` + */ class BooleanSuccessor = ConditionalSuccessor; +/** + * A nullness control flow successor. This is currently unused for Java. + */ class NullnessSuccessor extends ConditionalSuccessor { NullnessSuccessor() { none() } } From 10efea10758f3f67db60b2195c35af0b000098e0 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 20 May 2025 14:30:40 +0200 Subject: [PATCH 522/656] Java/Shared: Address review comments. --- java/ql/lib/change-notes/2025-05-16-shared-basicblocks.md | 2 +- java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll | 6 ++---- shared/controlflow/codeql/controlflow/BasicBlock.qll | 6 +++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/java/ql/lib/change-notes/2025-05-16-shared-basicblocks.md b/java/ql/lib/change-notes/2025-05-16-shared-basicblocks.md index ff8be9b9edd..e71ae5c1317 100644 --- a/java/ql/lib/change-notes/2025-05-16-shared-basicblocks.md +++ b/java/ql/lib/change-notes/2025-05-16-shared-basicblocks.md @@ -1,4 +1,4 @@ --- category: deprecated --- -* Java now uses the shared `BasicBlock` library. This means that several member predicates now use the preferred names. The old predicates have been deprecated. The `BasicBlock` class itself no longer extends `ControlFlowNode` - the predicate `getFirstNode` can be used to fix any QL code that somehow relied on this. +* Java now uses the shared `BasicBlock` library. This means that the names of several member predicates have been changed to align with the names used in other languages. The old predicates have been deprecated. The `BasicBlock` class itself no longer extends `ControlFlowNode` - the predicate `getFirstNode` can be used to fix any QL code that somehow relied on this. diff --git a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll index e8395166d4e..284ee1dad0c 100644 --- a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll +++ b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll @@ -70,10 +70,8 @@ predicate hasDominanceInformation(BasicBlock bb) { } /** - * A control-flow node that represents the start of a basic block. - * - * A basic block is a series of nodes with no control-flow branching, which can - * often be treated as a unit in analyses. + * A basic block, that is, a maximal straight-line sequence of control flow nodes + * without branches or joins. */ class BasicBlock extends BbImpl::BasicBlock { /** Gets the immediately enclosing callable whose body contains this node. */ diff --git a/shared/controlflow/codeql/controlflow/BasicBlock.qll b/shared/controlflow/codeql/controlflow/BasicBlock.qll index d5cda7b910b..9c26b18c093 100644 --- a/shared/controlflow/codeql/controlflow/BasicBlock.qll +++ b/shared/controlflow/codeql/controlflow/BasicBlock.qll @@ -246,9 +246,9 @@ module Make Input> { * implies that `(bb1, bb2)` dominates its endpoint `bb2`. I.e., `bb2` can * only be reached from the entry block by going via `(bb1, bb2)`. * - * This is a necessary and sufficient condition for an edge to dominate anything, - * and in particular `dominatingEdge(bb1, bb2) and bb2.dominates(bb3)` means - * that the edge `(bb1, bb2)` dominates `bb3`. + * This is a necessary and sufficient condition for an edge to dominate some + * block, and therefore `dominatingEdge(bb1, bb2) and bb2.dominates(bb3)` + * means that the edge `(bb1, bb2)` dominates `bb3`. */ pragma[nomagic] predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) { From b7f8b79f0eb12f7755ecf0e6e62602d4e9681074 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 20 Mar 2025 20:54:50 +0100 Subject: [PATCH 523/656] Rust: Calculate canonical paths in QL --- .../dataflow/internal/DataFlowConsistency.qll | 22 ++ .../elements/internal/AddressableImpl.qll | 35 +- .../codeql/rust/frameworks/stdlib/Stdlib.qll | 22 +- .../codeql/rust/internal/PathResolution.qll | 344 +++++++++++++++++- .../internal/PathResolutionConsistency.qll | 9 + .../telemetry/RustAnalyzerComparison.qll | 5 + .../canonical_path/canonical_paths.expected | 23 ++ .../canonical_path/canonical_paths.ql | 5 + .../canonical_paths.expected | 23 ++ 9 files changed, 463 insertions(+), 25 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowConsistency.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowConsistency.qll index f8e24c4c34a..f0dc961a9f9 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowConsistency.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowConsistency.qll @@ -29,3 +29,25 @@ private module Input implements InputSig { } import MakeConsistency +private import codeql.rust.dataflow.internal.ModelsAsData + +query predicate missingMadSummaryCanonicalPath(string crate, string path, Addressable a) { + summaryModel(crate, path, _, _, _, _, _) and + a.getCrateOrigin() = crate and + a.getExtendedCanonicalPath() = path and + not exists(a.getCanonicalPath()) +} + +query predicate missingMadSourceCanonicalPath(string crate, string path, Addressable a) { + sourceModel(crate, path, _, _, _, _) and + a.getCrateOrigin() = crate and + a.getExtendedCanonicalPath() = path and + not exists(a.getCanonicalPath()) +} + +query predicate missingMadSinkCanonicalPath(string crate, string path, Addressable a) { + sinkModel(crate, path, _, _, _, _) and + a.getCrateOrigin() = crate and + a.getExtendedCanonicalPath() = path and + not exists(a.getCanonicalPath()) +} diff --git a/rust/ql/lib/codeql/rust/elements/internal/AddressableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/AddressableImpl.qll index b3fe47b294a..b38ddc4fcb6 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/AddressableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/AddressableImpl.qll @@ -1,4 +1,3 @@ -// generated by codegen, remove this comment if you wish to edit this file /** * This module provides a hand-modifiable wrapper around the generated class `Addressable`. * @@ -12,10 +11,42 @@ private import codeql.rust.elements.internal.generated.Addressable * be referenced directly. */ module Impl { + private import rust + private import codeql.rust.internal.PathResolution + /** * Something that can be addressed by a path. * * TODO: This does not yet include all possible cases. */ - class Addressable extends Generated::Addressable { } + class Addressable extends Generated::Addressable { + /** + * Gets the canonical path of this item, if any. + * + * The crate `c` is the root of the path. + * + * See [The Rust Reference][1] for more details. + * + * [1]: https://doc.rust-lang.org/reference/paths.html#canonical-paths + */ + string getCanonicalPath(Crate c) { result = this.(ItemNode).getCanonicalPath(c) } + + /** + * Gets the canonical path of this item, if any. + * + * See [The Rust Reference][1] for more details. + * + * [1]: https://doc.rust-lang.org/reference/paths.html#canonical-paths + */ + string getCanonicalPath() { result = this.getCanonicalPath(_) } + + /** + * Holds if this item has a canonical path. + * + * See [The Rust Reference][1] for more details. + * + * [1]: https://doc.rust-lang.org/reference/paths.html#canonical-paths + */ + predicate hasCanonicalPath() { exists(this.getCanonicalPath()) } + } } diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll index 0ba90bc2e34..84ee379773a 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll @@ -28,16 +28,7 @@ private class StartswithCall extends Path::SafeAccessCheck::Range, CfgNodes::Met * [1]: https://doc.rust-lang.org/std/option/enum.Option.html */ class OptionEnum extends Enum { - OptionEnum() { - // todo: replace with canonical path, once calculated in QL - exists(Crate core, Module m | - core.getName() = "core" and - m = core.getModule().getItemList().getAnItem() and - m.getName().getText() = "option" and - this = m.getItemList().getAnItem() and - this.getName().getText() = "Option" - ) - } + OptionEnum() { this.getCanonicalPath() = "core::option::Option" } /** Gets the `Some` variant. */ Variant getSome() { result = this.getVariant("Some") } @@ -49,16 +40,7 @@ class OptionEnum extends Enum { * [1]: https://doc.rust-lang.org/stable/std/result/enum.Result.html */ class ResultEnum extends Enum { - ResultEnum() { - // todo: replace with canonical path, once calculated in QL - exists(Crate core, Module m | - core.getName() = "core" and - m = core.getModule().getItemList().getAnItem() and - m.getName().getText() = "result" and - this = m.getItemList().getAnItem() and - this.getName().getText() = "Result" - ) - } + ResultEnum() { this.getCanonicalPath() = "core::result::Result" } /** Gets the `Ok` variant. */ Variant getOk() { result = this.getVariant("Ok") } diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index 9009c2626aa..6be07a62f7f 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -225,6 +225,45 @@ abstract class ItemNode extends Locatable { ) } + /** Holds if this item has a canonical path belonging to the crate `c`. */ + abstract predicate hasCanonicalPath(Crate c); + + /** Holds if this node provides a canonical path prefix for `child` in crate `c`. */ + pragma[nomagic] + predicate providesCanonicalPathPrefixFor(Crate c, ItemNode child) { + child.getImmediateParent() = this and + this.hasCanonicalPath(c) + } + + /** Holds if this node has a canonical path prefix in crate `c`. */ + pragma[nomagic] + final predicate hasCanonicalPathPrefix(Crate c) { + any(ItemNode parent).providesCanonicalPathPrefixFor(c, this) + } + + /** + * Gets the canonical path of this item, if any. + * + * See [The Rust Reference][1] for more details. + * + * [1]: https://doc.rust-lang.org/reference/paths.html#canonical-paths + */ + cached + abstract string getCanonicalPath(Crate c); + + /** Gets the canonical path prefix that this node provides for `child`. */ + pragma[nomagic] + string getCanonicalPathPrefixFor(Crate c, ItemNode child) { + this.providesCanonicalPathPrefixFor(c, child) and + result = this.getCanonicalPath(c) + } + + /** Gets the canonical path prefix of this node, if any. */ + pragma[nomagic] + final string getCanonicalPathPrefix(Crate c) { + result = any(ItemNode parent).getCanonicalPathPrefixFor(c, this) + } + /** Gets the location of this item. */ Location getLocation() { result = super.getLocation() } } @@ -269,6 +308,10 @@ private class SourceFileItemNode extends ModuleLikeNode, SourceFile { override Visibility getVisibility() { none() } override TypeParam getTypeParam(int i) { none() } + + override predicate hasCanonicalPath(Crate c) { none() } + + override string getCanonicalPath(Crate c) { none() } } class CrateItemNode extends ItemNode instanceof Crate { @@ -331,12 +374,48 @@ class CrateItemNode extends ItemNode instanceof Crate { override Visibility getVisibility() { none() } override TypeParam getTypeParam(int i) { none() } + + override predicate hasCanonicalPath(Crate c) { c = this } + + override predicate providesCanonicalPathPrefixFor(Crate c, ItemNode child) { + this.hasCanonicalPath(c) and + exists(ModuleLikeNode m | + child.getImmediateParent() = m and + not m = child.(SourceFileItemNode).getSuper() + | + m = super.getModule() // the special `crate` root module inserted by the extractor + or + m = super.getSourceFile() + ) + } + + override string getCanonicalPath(Crate c) { c = this and result = Crate.super.getName() } } /** An item that can occur in a trait or an `impl` block. */ abstract private class AssocItemNode extends ItemNode, AssocItem { /** Holds if this associated item has an implementation. */ abstract predicate hasImplementation(); + + override predicate hasCanonicalPath(Crate c) { this.hasCanonicalPathPrefix(c) } + + bindingset[c] + private string getCanonicalPathPart(Crate c, int i) { + i = 0 and + result = this.getCanonicalPathPrefix(c) + or + i = 1 and + result = "::" + or + i = 2 and + result = this.getName() + } + + language[monotonicAggregates] + override string getCanonicalPath(Crate c) { + this.hasCanonicalPath(c) and + result = strictconcat(int i | i in [0 .. 2] | this.getCanonicalPathPart(c, i) order by i) + } } private class ConstItemNode extends AssocItemNode instanceof Const { @@ -366,6 +445,26 @@ private class EnumItemNode extends ItemNode instanceof Enum { override Visibility getVisibility() { result = Enum.super.getVisibility() } override TypeParam getTypeParam(int i) { result = super.getGenericParamList().getTypeParam(i) } + + override predicate hasCanonicalPath(Crate c) { this.hasCanonicalPathPrefix(c) } + + bindingset[c] + private string getCanonicalPathPart(Crate c, int i) { + i = 0 and + result = this.getCanonicalPathPrefix(c) + or + i = 1 and + result = "::" + or + i = 2 and + result = this.getName() + } + + language[monotonicAggregates] + override string getCanonicalPath(Crate c) { + this.hasCanonicalPath(c) and + result = strictconcat(int i | i in [0 .. 2] | this.getCanonicalPathPart(c, i) order by i) + } } private class VariantItemNode extends ItemNode instanceof Variant { @@ -380,6 +479,26 @@ private class VariantItemNode extends ItemNode instanceof Variant { } override Visibility getVisibility() { result = super.getEnum().getVisibility() } + + override predicate hasCanonicalPath(Crate c) { this.hasCanonicalPathPrefix(c) } + + bindingset[c] + private string getCanonicalPathPart(Crate c, int i) { + i = 0 and + result = this.getCanonicalPathPrefix(c) + or + i = 1 and + result = "::" + or + i = 2 and + result = this.getName() + } + + language[monotonicAggregates] + override string getCanonicalPath(Crate c) { + this.hasCanonicalPath(c) and + result = strictconcat(int i | i in [0 .. 2] | this.getCanonicalPathPart(c, i) order by i) + } } class FunctionItemNode extends AssocItemNode instanceof Function { @@ -457,6 +576,75 @@ class ImplItemNode extends ImplOrTraitItemNode instanceof Impl { override TypeParam getTypeParam(int i) { result = super.getGenericParamList().getTypeParam(i) } override Visibility getVisibility() { result = Impl.super.getVisibility() } + + override predicate hasCanonicalPath(Crate c) { this.resolveSelfTy().hasCanonicalPathPrefix(c) } + + /** + * Holds if `(c1, c2)` forms a pair of crates for the type and trait + * being implemented, for which a canonical path can be computed. + * + * This is the case when either the type and the trait belong to the + * same crate, or when they belong to different crates where one depends + * on the other. + */ + pragma[nomagic] + private predicate selfTraitCratePair(Crate c1, Crate c2) { + this.hasCanonicalPath(pragma[only_bind_into](c1)) and + exists(TraitItemNode trait | + trait = this.resolveTraitTy() and + trait.hasCanonicalPath(c2) and + if this.hasCanonicalPath(c2) + then c1 = c2 + else ( + c2 = c1.getADependency() or c1 = c2.getADependency() + ) + ) + } + + pragma[nomagic] + private string getTraitCanonicalPath(Crate c) { + result = this.resolveTraitTy().getCanonicalPath(c) + } + + pragma[nomagic] + private string getCanonicalPathTraitPart(Crate c) { + exists(Crate c2 | + this.selfTraitCratePair(c, c2) and + result = this.getTraitCanonicalPath(c2) + ) + } + + bindingset[c] + private string getCanonicalPathPart(Crate c, int i) { + i = 0 and + result = "<" + or + i = 1 and + result = this.resolveSelfTy().getCanonicalPath(c) + or + if exists(this.getTraitPath()) + then + i = 2 and + result = " as " + or + i = 3 and + result = this.getCanonicalPathTraitPart(c) + or + i = 4 and + result = ">" + else ( + i = 2 and + result = ">" + ) + } + + language[monotonicAggregates] + override string getCanonicalPath(Crate c) { + this.hasCanonicalPath(c) and + exists(int m | if exists(this.getTraitPath()) then m = 4 else m = 2 | + result = strictconcat(int i | i in [0 .. m] | this.getCanonicalPathPart(c, i) order by i) + ) + } } private class MacroCallItemNode extends AssocItemNode instanceof MacroCall { @@ -469,6 +657,20 @@ private class MacroCallItemNode extends AssocItemNode instanceof MacroCall { override TypeParam getTypeParam(int i) { none() } override Visibility getVisibility() { none() } + + override predicate providesCanonicalPathPrefixFor(Crate c, ItemNode child) { + any(ItemNode parent).providesCanonicalPathPrefixFor(c, this) and + child.getImmediateParent() = this + } + + override string getCanonicalPathPrefixFor(Crate c, ItemNode child) { + result = this.getCanonicalPathPrefix(c) and + this.providesCanonicalPathPrefixFor(c, child) + } + + override predicate hasCanonicalPath(Crate c) { none() } + + override string getCanonicalPath(Crate c) { none() } } private class ModuleItemNode extends ModuleLikeNode instanceof Module { @@ -479,6 +681,43 @@ private class ModuleItemNode extends ModuleLikeNode instanceof Module { override Visibility getVisibility() { result = Module.super.getVisibility() } override TypeParam getTypeParam(int i) { none() } + + override predicate hasCanonicalPath(Crate c) { this.hasCanonicalPathPrefix(c) } + + override predicate providesCanonicalPathPrefixFor(Crate c, ItemNode child) { + this.hasCanonicalPath(c) and + ( + exists(SourceFile f | + fileImport(this, f) and + sourceFileEdge(f, _, child) + ) + or + this = child.getImmediateParent() + or + exists(ItemNode mid | + this.providesCanonicalPathPrefixFor(c, mid) and + mid.(MacroCallItemNode) = child.getImmediateParent() + ) + ) + } + + bindingset[c] + private string getCanonicalPathPart(Crate c, int i) { + i = 0 and + result = this.getCanonicalPathPrefix(c) + or + i = 1 and + result = "::" + or + i = 2 and + result = this.getName() + } + + language[monotonicAggregates] + override string getCanonicalPath(Crate c) { + this.hasCanonicalPath(c) and + result = strictconcat(int i | i in [0 .. 2] | this.getCanonicalPathPart(c, i) order by i) + } } private class StructItemNode extends ItemNode instanceof Struct { @@ -494,6 +733,26 @@ private class StructItemNode extends ItemNode instanceof Struct { override Visibility getVisibility() { result = Struct.super.getVisibility() } override TypeParam getTypeParam(int i) { result = super.getGenericParamList().getTypeParam(i) } + + override predicate hasCanonicalPath(Crate c) { this.hasCanonicalPathPrefix(c) } + + bindingset[c] + private string getCanonicalPathPart(Crate c, int i) { + i = 0 and + result = this.getCanonicalPathPrefix(c) + or + i = 1 and + result = "::" + or + i = 2 and + result = this.getName() + } + + language[monotonicAggregates] + override string getCanonicalPath(Crate c) { + this.hasCanonicalPath(c) and + result = strictconcat(int i | i in [0 .. 2] | this.getCanonicalPathPart(c, i) order by i) + } } class TraitItemNode extends ImplOrTraitItemNode instanceof Trait { @@ -514,6 +773,43 @@ class TraitItemNode extends ImplOrTraitItemNode instanceof Trait { override Visibility getVisibility() { result = Trait.super.getVisibility() } override TypeParam getTypeParam(int i) { result = super.getGenericParamList().getTypeParam(i) } + + override predicate hasCanonicalPath(Crate c) { this.hasCanonicalPathPrefix(c) } + + override predicate providesCanonicalPathPrefixFor(Crate c, ItemNode child) { + this.hasCanonicalPath(c) and + child = this.getAnAssocItem() + } + + bindingset[c] + private string getCanonicalPathPart(Crate c, int i) { + i = 0 and + result = "<_ as " + or + i = 1 and + result = this.getCanonicalPathPrefix(c) + or + i = 2 and + result = "::" + or + i = 3 and + result = this.getName() + or + i = 4 and + result = ">" + } + + language[monotonicAggregates] + override string getCanonicalPath(Crate c) { + this.hasCanonicalPath(c) and + result = strictconcat(int i | i in [1 .. 3] | this.getCanonicalPathPart(c, i) order by i) + } + + language[monotonicAggregates] + override string getCanonicalPathPrefixFor(Crate c, ItemNode child) { + this.providesCanonicalPathPrefixFor(c, child) and + result = strictconcat(int i | i in [0 .. 4] | this.getCanonicalPathPart(c, i) order by i) + } } class TypeAliasItemNode extends AssocItemNode instanceof TypeAlias { @@ -536,6 +832,26 @@ private class UnionItemNode extends ItemNode instanceof Union { override Visibility getVisibility() { result = Union.super.getVisibility() } override TypeParam getTypeParam(int i) { result = super.getGenericParamList().getTypeParam(i) } + + override predicate hasCanonicalPath(Crate c) { this.hasCanonicalPathPrefix(c) } + + bindingset[c] + private string getCanonicalPathPart(Crate c, int i) { + i = 0 and + result = this.getCanonicalPathPrefix(c) + or + i = 1 and + result = "::" + or + i = 2 and + result = this.getName() + } + + language[monotonicAggregates] + override string getCanonicalPath(Crate c) { + this.hasCanonicalPath(c) and + result = strictconcat(int i | i in [0 .. 2] | this.getCanonicalPathPart(c, i) order by i) + } } private class UseItemNode extends ItemNode instanceof Use { @@ -546,6 +862,10 @@ private class UseItemNode extends ItemNode instanceof Use { override Visibility getVisibility() { result = Use.super.getVisibility() } override TypeParam getTypeParam(int i) { none() } + + override predicate hasCanonicalPath(Crate c) { none() } + + override string getCanonicalPath(Crate c) { none() } } private class BlockExprItemNode extends ItemNode instanceof BlockExpr { @@ -556,6 +876,10 @@ private class BlockExprItemNode extends ItemNode instanceof BlockExpr { override Visibility getVisibility() { none() } override TypeParam getTypeParam(int i) { none() } + + override predicate hasCanonicalPath(Crate c) { none() } + + override string getCanonicalPath(Crate c) { none() } } class TypeParamItemNode extends ItemNode instanceof TypeParam { @@ -621,6 +945,10 @@ class TypeParamItemNode extends ItemNode instanceof TypeParam { override TypeParam getTypeParam(int i) { none() } override Location getLocation() { result = TypeParam.super.getName().getLocation() } + + override predicate hasCanonicalPath(Crate c) { none() } + + override string getCanonicalPath(Crate c) { none() } } /** Holds if `item` has the name `name` and is a top-level item inside `f`. */ @@ -1151,8 +1479,8 @@ private module Debug { private Locatable getRelevantLocatable() { exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | result.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and - filepath.matches("%/test_logging.rs") and - startline = 163 + filepath.matches("%/term.rs") and + startline = [71] ) } @@ -1160,7 +1488,7 @@ private module Debug { RelevantPath p, string name, Namespace ns, ItemNode encl, string path ) { p = getRelevantLocatable() and - unqualifiedPathLookup(p, name, ns, encl) and + unqualifiedPathLookup(encl, name, ns, p) and path = p.toStringDebug() } @@ -1188,4 +1516,14 @@ private module Debug { m = getRelevantLocatable() and fileImport(m, f) } + + predicate debugPreludeEdge(SourceFile f, string name, ItemNode i) { + preludeEdge(f, name, i) and + f = getRelevantLocatable() + } + + string debugGetCanonicalPath(ItemNode i, Crate c) { + result = i.getCanonicalPath(c) and + i = getRelevantLocatable() + } } diff --git a/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll b/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll index a8f581aabdf..2175dea3713 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll @@ -38,6 +38,12 @@ query predicate multipleTupleFields(FieldExpr fe, TupleField field) { strictcount(fe.getTupleField()) > 1 } +/** Holds if `p` may resolve to multiple items including `i`. */ +query predicate multipleCanonicalPaths(ItemNode i, Crate c, string path) { + path = i.getCanonicalPath(c) and + strictcount(i.getCanonicalPath(c)) > 1 +} + /** * Gets counts of path resolution inconsistencies of each type. */ @@ -53,4 +59,7 @@ int getPathResolutionInconsistencyCounts(string type) { or type = "Multiple tuple fields" and result = count(FieldExpr fe | multipleTupleFields(fe, _) | fe) + or + type = "Multiple canonical paths" and + result = count(ItemNode i | multipleCanonicalPaths(i, _, _) | i) } diff --git a/rust/ql/src/queries/telemetry/RustAnalyzerComparison.qll b/rust/ql/src/queries/telemetry/RustAnalyzerComparison.qll index d62e5ec3363..e68306a3cf9 100644 --- a/rust/ql/src/queries/telemetry/RustAnalyzerComparison.qll +++ b/rust/ql/src/queries/telemetry/RustAnalyzerComparison.qll @@ -145,3 +145,8 @@ private module QlCallGraph implements CompareSig { } module CallGraphCompare = Compare; + +predicate qlMissingCanonicalPath(Addressable a, string path) { + path = a.getExtendedCanonicalPath() and + not exists(a.getCanonicalPath(_)) +} diff --git a/rust/ql/test/extractor-tests/canonical_path/canonical_paths.expected b/rust/ql/test/extractor-tests/canonical_path/canonical_paths.expected index 8395c20a00a..69ea1bb7b0e 100644 --- a/rust/ql/test/extractor-tests/canonical_path/canonical_paths.expected +++ b/rust/ql/test/extractor-tests/canonical_path/canonical_paths.expected @@ -1,3 +1,26 @@ +canonicalPath +| anonymous.rs:3:1:32:1 | fn canonicals | test::anonymous::canonicals | +| anonymous.rs:34:1:36:1 | fn other | test::anonymous::other | +| lib.rs:1:1:1:14 | mod anonymous | test::anonymous | +| lib.rs:2:1:2:12 | mod regular | test::regular | +| regular.rs:1:1:2:18 | struct Struct | test::regular::Struct | +| regular.rs:4:1:6:1 | trait Trait | test::regular::Trait | +| regular.rs:5:5:5:16 | fn f | <_ as test::regular::Trait>::f | +| regular.rs:8:1:10:1 | impl Trait for Struct { ... } | | +| regular.rs:9:5:9:18 | fn f | ::f | +| regular.rs:12:1:14:1 | impl Struct { ... } | | +| regular.rs:13:5:13:18 | fn g | ::g | +| regular.rs:16:1:18:1 | trait TraitWithBlanketImpl | test::regular::TraitWithBlanketImpl | +| regular.rs:17:5:17:16 | fn h | <_ as test::regular::TraitWithBlanketImpl>::h | +| regular.rs:24:1:24:12 | fn free | test::regular::free | +| regular.rs:26:1:32:1 | fn usage | test::regular::usage | +| regular.rs:34:1:38:1 | enum MyEnum | test::regular::MyEnum | +| regular.rs:35:5:35:12 | Variant1 | test::regular::MyEnum::Variant1 | +| regular.rs:36:5:36:19 | Variant2 | test::regular::MyEnum::Variant2 | +| regular.rs:37:5:37:25 | Variant3 | test::regular::MyEnum::Variant3 | +| regular.rs:40:1:46:1 | fn enum_qualified_usage | test::regular::enum_qualified_usage | +| regular.rs:48:1:55:1 | fn enum_unqualified_usage | test::regular::enum_unqualified_usage | +| regular.rs:57:1:63:1 | fn enum_match | test::regular::enum_match | canonicalPaths | anonymous.rs:1:1:1:26 | use ...::Trait | None | None | | anonymous.rs:3:1:32:1 | fn canonicals | repo::test | crate::anonymous::canonicals | diff --git a/rust/ql/test/extractor-tests/canonical_path/canonical_paths.ql b/rust/ql/test/extractor-tests/canonical_path/canonical_paths.ql index 7488d699087..16aa82eee21 100644 --- a/rust/ql/test/extractor-tests/canonical_path/canonical_paths.ql +++ b/rust/ql/test/extractor-tests/canonical_path/canonical_paths.ql @@ -1,6 +1,11 @@ import rust import TestUtils +query predicate canonicalPath(Addressable a, string path) { + toBeTested(a) and + path = a.getCanonicalPath(_) +} + query predicate canonicalPaths(Item i, string origin, string path) { toBeTested(i) and ( diff --git a/rust/ql/test/extractor-tests/canonical_path_disabled/canonical_paths.expected b/rust/ql/test/extractor-tests/canonical_path_disabled/canonical_paths.expected index 878cb1fc7c9..2605a806f6f 100644 --- a/rust/ql/test/extractor-tests/canonical_path_disabled/canonical_paths.expected +++ b/rust/ql/test/extractor-tests/canonical_path_disabled/canonical_paths.expected @@ -1,3 +1,26 @@ +canonicalPath +| anonymous.rs:6:1:35:1 | fn canonicals | test::anonymous::canonicals | +| anonymous.rs:37:1:39:1 | fn other | test::anonymous::other | +| lib.rs:1:1:1:14 | mod anonymous | test::anonymous | +| lib.rs:2:1:2:12 | mod regular | test::regular | +| regular.rs:4:1:5:18 | struct Struct | test::regular::Struct | +| regular.rs:7:1:9:1 | trait Trait | test::regular::Trait | +| regular.rs:8:5:8:16 | fn f | <_ as test::regular::Trait>::f | +| regular.rs:11:1:13:1 | impl Trait for Struct { ... } | | +| regular.rs:12:5:12:18 | fn f | ::f | +| regular.rs:15:1:17:1 | impl Struct { ... } | | +| regular.rs:16:5:16:18 | fn g | ::g | +| regular.rs:19:1:21:1 | trait TraitWithBlanketImpl | test::regular::TraitWithBlanketImpl | +| regular.rs:20:5:20:16 | fn h | <_ as test::regular::TraitWithBlanketImpl>::h | +| regular.rs:27:1:27:12 | fn free | test::regular::free | +| regular.rs:29:1:35:1 | fn usage | test::regular::usage | +| regular.rs:37:1:41:1 | enum MyEnum | test::regular::MyEnum | +| regular.rs:38:5:38:12 | Variant1 | test::regular::MyEnum::Variant1 | +| regular.rs:39:5:39:19 | Variant2 | test::regular::MyEnum::Variant2 | +| regular.rs:40:5:40:25 | Variant3 | test::regular::MyEnum::Variant3 | +| regular.rs:43:1:49:1 | fn enum_qualified_usage | test::regular::enum_qualified_usage | +| regular.rs:51:1:58:1 | fn enum_unqualified_usage | test::regular::enum_unqualified_usage | +| regular.rs:60:1:66:1 | fn enum_match | test::regular::enum_match | canonicalPaths | anonymous.rs:4:1:4:26 | use ...::Trait | None | None | | anonymous.rs:6:1:35:1 | fn canonicals | None | None | From 93c8507ebcdf06524e19e2f6bd10f7f06e814184 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 1 Apr 2025 09:20:32 +0200 Subject: [PATCH 524/656] Rust: Run codegen --- rust/ql/.generated.list | 1 - rust/ql/.gitattributes | 1 - rust/ql/lib/codeql/rust/elements/internal/AddressableImpl.qll | 1 + 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index b2c870d6270..051cf9f8937 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -192,7 +192,6 @@ lib/codeql/rust/elements/YeetExpr.qll 4172bf70de31cab17639da6eed4a12a7afcefd7aa9 lib/codeql/rust/elements/YieldExpr.qll de2dc096a077f6c57bba9d1c2b2dcdbecce501333753b866d77c3ffbe06aa516 1f3e8949689c09ed356ff4777394fe39f2ed2b1e6c381fd391790da4f5d5c76a lib/codeql/rust/elements/internal/AbiConstructor.qll 4484538db49d7c1d31c139f0f21879fceb48d00416e24499a1d4b1337b4141ac 460818e397f2a1a8f2e5466d9551698b0e569d4640fcb87de6c4268a519b3da1 lib/codeql/rust/elements/internal/AbiImpl.qll 01439712ecadc9dc8da6f74d2e19cee13c77f8e1e25699055da675b2c88cb02d dcc9395ef8abd1af3805f3e7fcbc2d7ce30affbce654b6f5e559924768db403c -lib/codeql/rust/elements/internal/AddressableImpl.qll e01a6104980960f5708d5a0ada774ba21db9a344e33deeaf3d3239c627268c77 b8bfc711b267df305ac9fe5f6a994f051ddeca7fc95dacd76d1bae2d4fa7adde lib/codeql/rust/elements/internal/ArgListConstructor.qll a73685c8792ae23a2d628e7357658efb3f6e34006ff6e9661863ef116ec0b015 0bee572a046e8dfc031b1216d729843991519d94ae66280f5e795d20aea07a22 lib/codeql/rust/elements/internal/ArgListImpl.qll 19664651c06b46530f0ae5745ccb3233afc97b9152e053761d641de6e9c62d38 40af167e571f5c255f264b3be7cc7f5ff42ec109661ca03dcee94e92f8facfc6 lib/codeql/rust/elements/internal/ArrayExprInternal.qll 07a219b3d3fba3ff8b18e77686b2f58ab01acd99e0f5d5cad5d91af937e228f5 7528fc0e2064c481f0d6cbff3835950a044e429a2cd00c4d8442d2e132560d37 diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 3dca1a2cbfb..e937789f907 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -194,7 +194,6 @@ /lib/codeql/rust/elements/YieldExpr.qll linguist-generated /lib/codeql/rust/elements/internal/AbiConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/AbiImpl.qll linguist-generated -/lib/codeql/rust/elements/internal/AddressableImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ArgListConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ArgListImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ArrayExprInternal.qll linguist-generated diff --git a/rust/ql/lib/codeql/rust/elements/internal/AddressableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/AddressableImpl.qll index b38ddc4fcb6..cea40b66aee 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/AddressableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/AddressableImpl.qll @@ -14,6 +14,7 @@ module Impl { private import rust private import codeql.rust.internal.PathResolution + // the following QLdoc is generated: if you need to edit it, do it in the schema file /** * Something that can be addressed by a path. * From 053da5530fda1379fe793775932f042eb0374123 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 21 May 2025 10:17:14 +0100 Subject: [PATCH 525/656] Rust: Accept test changes after merge with main. --- .../sources/CONSISTENCY/ExtractionConsistency.expected | 2 -- .../sources/CONSISTENCY/PathResolutionConsistency.expected | 3 --- .../test/library-tests/dataflow/sources/TaintSources.expected | 2 ++ 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/ExtractionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/ExtractionConsistency.expected index 9b32055d17f..e69de29bb2d 100644 --- a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/ExtractionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/ExtractionConsistency.expected @@ -1,2 +0,0 @@ -extractionWarning -| target/debug/build/typenum-a2c428dcba158190/out/tests.rs:1:1:1:1 | semantic analyzer unavailable (not included in files loaded from manifest) | diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected index 0819f608024..e69de29bb2d 100644 --- a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected @@ -1,3 +0,0 @@ -multipleMethodCallTargets -| test.rs:618:25:618:49 | address.to_socket_addrs() | file://:0:0:0:0 | fn to_socket_addrs | -| test.rs:618:25:618:49 | address.to_socket_addrs() | file://:0:0:0:0 | fn to_socket_addrs | diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index 30077337732..da3b69eb050 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -59,6 +59,8 @@ | test.rs:444:31:444:45 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:449:22:449:46 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:455:26:455:29 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:455:26:455:29 | path | Flow source 'FileSource' of type file (DEFAULT). | +| test.rs:456:31:456:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:456:31:456:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:462:22:462:41 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:472:20:472:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | From 5941b3081c3a48084c21675fb961f8acabd89c0e Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 19 May 2025 13:44:09 +0200 Subject: [PATCH 526/656] C#: Convert tests for cs/missed-readonly-modifier to inline expectatations. --- .../MissedReadonlyOpportunity/MissedReadonlyOpportunity.cs | 4 ++-- .../MissedReadonlyOpportunity/MissedReadonlyOpportunity.qlref | 3 ++- .../MissedReadonlyOpportunity/MissedReadonlyOpportunityBad.cs | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.cs b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.cs index 0ecb33abadc..bfe6b3243d4 100644 --- a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.cs +++ b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.cs @@ -1,7 +1,7 @@ class MissedReadonlyOpportunity { - public int Bad1; - public T Bad2; + public int Bad1; // $ Alert + public T Bad2; // $ Alert public readonly int Good1; public readonly int Good2 = 0; public const int Good3 = 0; diff --git a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.qlref b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.qlref index 28237dce311..eb2e98d639d 100644 --- a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.qlref +++ b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.qlref @@ -1 +1,2 @@ -Language Abuse/MissedReadonlyOpportunity.ql +query: Language Abuse/MissedReadonlyOpportunity.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunityBad.cs b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunityBad.cs index 7bd3d8d31cd..912141bb862 100644 --- a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunityBad.cs +++ b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunityBad.cs @@ -1,6 +1,6 @@ class Bad { - int Field; + int Field; // $ Alert public Bad(int i) { From 3a1cd3f734959ac38db20c97d4e1789c0ceed1a3 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 19 May 2025 13:56:35 +0200 Subject: [PATCH 527/656] C#: Add cs/missed-readonly-modifier to the code-quality suite. --- .../posix/query-suite/csharp-code-quality.qls.expected | 1 + csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql | 1 + 2 files changed, 2 insertions(+) diff --git a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected index d1b40bd013e..14934899e0d 100644 --- a/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected +++ b/csharp/ql/integration-tests/posix/query-suite/csharp-code-quality.qls.expected @@ -3,6 +3,7 @@ ql/csharp/ql/src/API Abuse/FormatInvalid.ql ql/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql ql/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql +ql/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql ql/csharp/ql/src/Likely Bugs/Collections/ContainerLengthCmpOffByOne.ql ql/csharp/ql/src/Likely Bugs/Collections/ContainerSizeCmpZero.ql ql/csharp/ql/src/Likely Bugs/DangerousNonShortCircuitLogic.ql diff --git a/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql b/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql index b794700e79b..a71876e8c7d 100644 --- a/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql +++ b/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql @@ -8,6 +8,7 @@ * @id cs/missed-readonly-modifier * @tags maintainability * language-features + * quality */ import csharp From 4ebf3adfdfffdfa78a2ac3d8dd91d95bf751d98e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 21 May 2025 11:02:48 +0100 Subject: [PATCH 528/656] Rust: Address review comments. --- .../lib/codeql/rust/elements/ComparisonOperation.qll | 12 ++++++------ .../UncontrolledAllocationSizeExtensions.qll | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll index 253dd0d19ac..cbd9ae91a27 100644 --- a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll @@ -6,7 +6,7 @@ private import codeql.rust.elements.BinaryExpr private import codeql.rust.elements.Operation /** - * A comparison operation, such as `==`, `<` or `>=`. + * A comparison operation, such as `==`, `<`, or `>=`. */ abstract private class ComparisonOperationImpl extends Operation { } @@ -22,7 +22,7 @@ final class EqualityOperation = EqualityOperationImpl; /** * The equal comparison operation, `==`. */ -final class EqualOperation extends EqualityOperationImpl, BinaryExpr { +final class EqualOperation extends EqualityOperationImpl { EqualOperation() { this.getOperatorName() = "==" } } @@ -59,7 +59,7 @@ final class RelationalOperation = RelationalOperationImpl; /** * The less than comparison operation, `<`. */ -final class LessThanOperation extends RelationalOperationImpl, BinaryExpr { +final class LessThanOperation extends RelationalOperationImpl { LessThanOperation() { this.getOperatorName() = "<" } override Expr getGreaterOperand() { result = this.getRhs() } @@ -70,7 +70,7 @@ final class LessThanOperation extends RelationalOperationImpl, BinaryExpr { /** * The greater than comparison operation, `>`. */ -final class GreaterThanOperation extends RelationalOperationImpl, BinaryExpr { +final class GreaterThanOperation extends RelationalOperationImpl { GreaterThanOperation() { this.getOperatorName() = ">" } override Expr getGreaterOperand() { result = this.getLhs() } @@ -81,7 +81,7 @@ final class GreaterThanOperation extends RelationalOperationImpl, BinaryExpr { /** * The less than or equal comparison operation, `<=`. */ -final class LessOrEqualOperation extends RelationalOperationImpl, BinaryExpr { +final class LessOrEqualOperation extends RelationalOperationImpl { LessOrEqualOperation() { this.getOperatorName() = "<=" } override Expr getGreaterOperand() { result = this.getRhs() } @@ -92,7 +92,7 @@ final class LessOrEqualOperation extends RelationalOperationImpl, BinaryExpr { /** * The greater than or equal comparison operation, `>=`. */ -final class GreaterOrEqualOperation extends RelationalOperationImpl, BinaryExpr { +final class GreaterOrEqualOperation extends RelationalOperationImpl { GreaterOrEqualOperation() { this.getOperatorName() = ">=" } override Expr getGreaterOperand() { result = this.getLhs() } diff --git a/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll b/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll index 1a333a9f9e7..ab543d5a63d 100644 --- a/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll @@ -55,11 +55,11 @@ module UncontrolledAllocationSize { node = cmp.(RelationalOperation).getGreaterOperand().getACfgNode() and branch = false or - cmp.getOperatorName() = "==" and + cmp instanceof EqualOperation and [cmp.getLhs(), cmp.getRhs()].getACfgNode() = node and branch = true or - cmp.getOperatorName() = "!=" and + cmp instanceof NotEqualOperation and [cmp.getLhs(), cmp.getRhs()].getACfgNode() = node and branch = false ) From 0dcf15bf7733ce7c37e45b0a0349f307f1168985 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 21 May 2025 12:59:00 +0200 Subject: [PATCH 529/656] Rust: Add type inference tests for operators --- .../ql/test/library-tests/type-inference/main.rs | 16 ++++++++++++++++ .../type-inference/type-inference.expected | 16 ++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 7ac5710b7a1..0c938d516f0 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1224,6 +1224,21 @@ mod builtins { } } +mod operators { + pub fn f() { + let x = true && false; // $ MISSING: type=x:bool + let y = true || false; // $ MISSING: type=y:bool + + let mut a; + if 34 == 33 { + let z = (a = 1); // $ MISSING: type=z:() MISSING: type=a:i32 + } else { + a = 2; // $ MISSING: type=a:i32 + } + a; // $ MISSING: type=a:i32 + } +} + fn main() { field_access::f(); method_impl::f(); @@ -1242,4 +1257,5 @@ fn main() { borrowed_typed::f(); try_expressions::f(); builtins::f(); + operators::f(); } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index b91a839b5ab..473957c0344 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1581,7 +1581,15 @@ inferType | main.rs:1222:17:1222:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:1223:13:1223:13 | f | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:1223:17:1223:21 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1229:5:1229:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1230:5:1230:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1230:20:1230:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:1230:41:1230:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1229:17:1229:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1229:25:1229:29 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1230:17:1230:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1230:25:1230:29 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1233:12:1233:13 | 34 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1233:18:1233:19 | 33 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1234:26:1234:26 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1236:17:1236:17 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1244:5:1244:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1245:5:1245:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1245:20:1245:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1245:41:1245:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | From fafae8950211501d337c7380716f487300c6e703 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 21 May 2025 13:00:28 +0200 Subject: [PATCH 530/656] Rust: Add unit type --- rust/ql/lib/codeql/rust/internal/Type.qll | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/Type.qll index 9ffbf061463..bb698236deb 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/Type.qll @@ -9,6 +9,7 @@ private import codeql.rust.elements.internal.generated.Synth cached newtype TType = + TUnit() or TStruct(Struct s) { Stages::TypeInferenceStage::ref() } or TEnum(Enum e) or TTrait(Trait t) or @@ -48,6 +49,21 @@ abstract class Type extends TType { abstract Location getLocation(); } +/** The unit type `()`. */ +class UnitType extends Type, TUnit { + UnitType() { this = TUnit() } + + override StructField getStructField(string name) { none() } + + override TupleField getTupleField(int i) { none() } + + override TypeParameter getTypeParameter(int i) { none() } + + override string toString() { result = "()" } + + override Location getLocation() { result instanceof EmptyLocation } +} + abstract private class StructOrEnumType extends Type { abstract ItemNode asItemNode(); } From 666726c9359b8e58246757762d054d4ba507ce99 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 21 May 2025 13:02:55 +0200 Subject: [PATCH 531/656] Rust: Infer types for non-overloadable operators --- .../codeql/rust/internal/TypeInference.qll | 28 +++++++++++++++++-- .../test/library-tests/type-inference/main.rs | 10 +++---- .../type-inference/type-inference.expected | 12 ++++++++ 3 files changed, 43 insertions(+), 7 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 278d9ebc317..c13d80c2d19 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -7,6 +7,7 @@ private import Type as T private import TypeMention private import codeql.typeinference.internal.TypeInference private import codeql.rust.frameworks.stdlib.Stdlib +private import codeql.rust.frameworks.stdlib.Bultins as Builtins class Type = T::Type; @@ -190,6 +191,21 @@ private Type inferAnnotatedType(AstNode n, TypePath path) { result = getTypeAnnotation(n).resolveTypeAt(path) } +private Type inferLogicalOperationType(AstNode n, TypePath path) { + exists(Builtins::BuiltinType t, BinaryLogicalOperation be | + n = [be, be.getLhs(), be.getRhs()] and + path.isEmpty() and + result = TStruct(t) and + t instanceof Builtins::Bool + ) +} + +private Type inferAssignmentOperationType(AstNode n, TypePath path) { + n instanceof AssignmentOperation and + path.isEmpty() and + result = TUnit() +} + /** * Holds if the type of `n1` at `path1` is the same as the type of `n2` at * `path2` and type information should propagate in both directions through the @@ -237,6 +253,12 @@ private predicate typeEquality(AstNode n1, TypePath path1, AstNode n2, TypePath break.getTarget() = n2.(LoopExpr) and path1 = path2 ) + or + exists(AssignmentExpr be | + n1 = be.getLhs() and + n2 = be.getRhs() and + path1 = path2 + ) } pragma[nomagic] @@ -932,8 +954,6 @@ private Type inferTryExprType(TryExpr te, TypePath path) { ) } -private import codeql.rust.frameworks.stdlib.Bultins as Builtins - pragma[nomagic] private StructType inferLiteralType(LiteralExpr le) { exists(Builtins::BuiltinType t | result = TStruct(t) | @@ -1156,6 +1176,10 @@ private module Cached { Stages::TypeInferenceStage::ref() and result = inferAnnotatedType(n, path) or + result = inferLogicalOperationType(n, path) + or + result = inferAssignmentOperationType(n, path) + or result = inferTypeEquality(n, path) or result = inferImplicitSelfType(n, path) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 0c938d516f0..b33010e7b83 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1226,16 +1226,16 @@ mod builtins { mod operators { pub fn f() { - let x = true && false; // $ MISSING: type=x:bool - let y = true || false; // $ MISSING: type=y:bool + let x = true && false; // $ type=x:bool + let y = true || false; // $ type=y:bool let mut a; if 34 == 33 { - let z = (a = 1); // $ MISSING: type=z:() MISSING: type=a:i32 + let z = (a = 1); // $ type=z:() type=a:i32 } else { - a = 2; // $ MISSING: type=a:i32 + a = 2; // $ type=a:i32 } - a; // $ MISSING: type=a:i32 + a; // $ type=a:i32 } } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 473957c0344..b8b52cf4b50 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1581,14 +1581,26 @@ inferType | main.rs:1222:17:1222:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:1223:13:1223:13 | f | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:1223:17:1223:21 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1229:13:1229:13 | x | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:1229:17:1229:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1229:17:1229:29 | ... && ... | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:1229:25:1229:29 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1230:13:1230:13 | y | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:1230:17:1230:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1230:17:1230:29 | ... \|\| ... | | file:///BUILTINS/types.rs:3:1:5:16 | bool | | main.rs:1230:25:1230:29 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1232:13:1232:17 | mut a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | | main.rs:1233:12:1233:13 | 34 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | | main.rs:1233:18:1233:19 | 33 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1234:17:1234:17 | z | | file://:0:0:0:0 | () | +| main.rs:1234:21:1234:27 | (...) | | file://:0:0:0:0 | () | +| main.rs:1234:22:1234:22 | a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1234:22:1234:26 | ... = ... | | file://:0:0:0:0 | () | | main.rs:1234:26:1234:26 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1236:13:1236:13 | a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1236:13:1236:17 | ... = ... | | file://:0:0:0:0 | () | | main.rs:1236:17:1236:17 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1238:9:1238:9 | a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | | main.rs:1244:5:1244:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | | main.rs:1245:5:1245:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | | main.rs:1245:20:1245:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | From 13861b81a850a4c32f3377d148ed3f133df0e799 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 21 May 2025 14:01:48 +0200 Subject: [PATCH 532/656] Address review comments --- .../codeql/rust/internal/TypeInference.qll | 11 ++--- .../typeinference/internal/TypeInference.qll | 43 ++++++++----------- 2 files changed, 25 insertions(+), 29 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 5ce64b52d68..9bbd540f9a9 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -240,7 +240,7 @@ private predicate typeEqualityLeft(AstNode n1, TypePath path1, AstNode n2, TypeP any(PrefixExpr pe | pe.getOperatorName() = "*" and pe.getExpr() = n1 and - path1 = TypePath::consInverse(TRefTypeParameter(), path2) + path1.isCons(TRefTypeParameter(), path2) ) } @@ -926,7 +926,7 @@ private Type inferRefExprType(Expr e, TypePath path) { e = re.getExpr() and exists(TypePath exprPath, TypePath refPath, Type exprType | result = inferType(re, exprPath) and - exprPath = TypePath::consInverse(TRefTypeParameter(), refPath) and + exprPath.isCons(TRefTypeParameter(), refPath) and exprType = inferType(e) | if exprType = TRefType() @@ -940,8 +940,9 @@ private Type inferRefExprType(Expr e, TypePath path) { pragma[nomagic] private Type inferTryExprType(TryExpr te, TypePath path) { - exists(TypeParam tp | - result = inferType(te.getExpr(), TypePath::consInverse(TTypeParamTypeParameter(tp), path)) + exists(TypeParam tp, TypePath path0 | + result = inferType(te.getExpr(), path0) and + path0.isCons(TTypeParamTypeParameter(tp), path) | tp = any(ResultEnum r).getGenericParamList().getGenericParam(0) or @@ -1017,7 +1018,7 @@ private module Cached { pragma[nomagic] Type getTypeAt(TypePath path) { exists(TypePath path0 | result = inferType(this, path0) | - path0 = TypePath::consInverse(TRefTypeParameter(), path) + path0.isCons(TRefTypeParameter(), path) or not path0.isCons(TRefTypeParameter(), _) and not (path0.isEmpty() and result = TRefType()) and diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index fa475be575f..4414bc74c0b 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -184,7 +184,7 @@ module Make1 Input1> { /** Gets the length of this path, assuming the length is at least 2. */ bindingset[this] pragma[inline_late] - private int length2() { + private int lengthAtLeast2() { // Same as // `result = strictcount(this.indexOf(".")) + 1` // but performs better because it doesn't use an aggregate @@ -200,7 +200,7 @@ module Make1 Input1> { else if exists(TypeParameter::decode(this)) then result = 1 - else result = this.length2() + else result = this.lengthAtLeast2() } /** Gets the path obtained by appending `suffix` onto this path. */ @@ -216,7 +216,7 @@ module Make1 Input1> { ( not exists(getTypePathLimit()) or - result.length2() <= getTypePathLimit() + result.lengthAtLeast2() <= getTypePathLimit() ) ) } @@ -228,22 +228,26 @@ module Make1 Input1> { * so there is no need to check the length of `result`. */ bindingset[this, result] - TypePath appendInverse(TypePath suffix) { - if result.isEmpty() - then this.isEmpty() and suffix.isEmpty() - else - if this.isEmpty() - then suffix = result - else ( - result = this and suffix.isEmpty() - or - result = this + "." + suffix - ) + TypePath appendInverse(TypePath suffix) { suffix = result.stripPrefix(this) } + + /** Gets the path obtained by removing `prefix` from this path. */ + bindingset[this, prefix] + TypePath stripPrefix(TypePath prefix) { + if prefix.isEmpty() + then result = this + else ( + this = prefix and + result.isEmpty() + or + this = prefix + "." + result + ) } /** Holds if this path starts with `tp`, followed by `suffix`. */ bindingset[this] - predicate isCons(TypeParameter tp, TypePath suffix) { this = TypePath::consInverse(tp, suffix) } + predicate isCons(TypeParameter tp, TypePath suffix) { + suffix = this.stripPrefix(TypePath::singleton(tp)) + } } /** Provides predicates for constructing `TypePath`s. */ @@ -260,15 +264,6 @@ module Make1 Input1> { */ bindingset[suffix] TypePath cons(TypeParameter tp, TypePath suffix) { result = singleton(tp).append(suffix) } - - /** - * Gets the type path obtained by appending the singleton type path `tp` - * onto `suffix`. - */ - bindingset[result] - TypePath consInverse(TypeParameter tp, TypePath suffix) { - result = singleton(tp).appendInverse(suffix) - } } /** From be44c6ed45170ebf400de1714de335619eeaa5aa Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 21 May 2025 14:19:57 +0200 Subject: [PATCH 533/656] DevEx: add temporary files created by some checks to `.gitignore` --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index bbb60c3eccd..fe4a5de9672 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,7 @@ node_modules/ # cargo build directory /target + +# some upgrade/downgrade checks create these files +**/upgrades/*/*.dbscheme.stats +**/downgrades/*/*.dbscheme.stats From 28cd8a827a772bc9ce9eab91033852fa99bc6d78 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 19 May 2025 14:12:29 +0200 Subject: [PATCH 534/656] C#: Add more test examples for cs/missing-readonly-modifier. --- .../MissedReadonlyOpportunity.cs | 55 +++++++++++++++++++ .../MissedReadonlyOpportunity.expected | 11 ++++ 2 files changed, 66 insertions(+) diff --git a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.cs b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.cs index bfe6b3243d4..a365feec5e3 100644 --- a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.cs +++ b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.cs @@ -2,22 +2,26 @@ class MissedReadonlyOpportunity { public int Bad1; // $ Alert public T Bad2; // $ Alert + public Immutable Bad3; // $ Alert public readonly int Good1; public readonly int Good2 = 0; public const int Good3 = 0; public int Good4; public readonly T Good5; public T Good6; + public Mutable Good7; public MissedReadonlyOpportunity(int i, T t) { Bad1 = i; Bad2 = t; + Bad3 = new Immutable(); Good1 = i; Good2 = i; Good4 = i; Good5 = t; Good6 = t; + Good7 = new Mutable(); } public void M(int i) @@ -27,3 +31,54 @@ class MissedReadonlyOpportunity x.Good6 = false; } } + +struct Mutable +{ + private int x; + public int Mutate() + { + x = x + 1; + return x; + } +} + +readonly struct Immutable { } + +class Tree +{ + private Tree? Parent; + private Tree? Left; // $ Alert + private readonly Tree? Right; + + public Tree(Tree left, Tree right) + { + this.Left = left; + this.Right = right; + left.Parent = this; + right.Parent = this; + } + + public Tree() + { + Left = null; + Right = null; + } +} + +class StaticFields +{ + static int X; // $ Alert + static int Y; + + // Static constructor + static StaticFields() + { + X = 0; + } + + // Instance constructor + public StaticFields(int y) + { + Y = y; + } +} diff --git a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.expected b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.expected index 680a571e775..620b6b2dd11 100644 --- a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.expected +++ b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.expected @@ -1,3 +1,14 @@ +#select | MissedReadonlyOpportunity.cs:3:16:3:19 | Bad1 | Field 'Bad1' can be 'readonly'. | | MissedReadonlyOpportunity.cs:4:14:4:17 | Bad2 | Field 'Bad2' can be 'readonly'. | +| MissedReadonlyOpportunity.cs:5:22:5:25 | Bad3 | Field 'Bad3' can be 'readonly'. | +| MissedReadonlyOpportunity.cs:12:20:12:24 | Good7 | Field 'Good7' can be 'readonly'. | +| MissedReadonlyOpportunity.cs:49:19:49:24 | Parent | Field 'Parent' can be 'readonly'. | +| MissedReadonlyOpportunity.cs:50:19:50:22 | Left | Field 'Left' can be 'readonly'. | +| MissedReadonlyOpportunity.cs:70:16:70:16 | X | Field 'X' can be 'readonly'. | +| MissedReadonlyOpportunity.cs:71:16:71:16 | Y | Field 'Y' can be 'readonly'. | | MissedReadonlyOpportunityBad.cs:3:9:3:13 | Field | Field 'Field' can be 'readonly'. | +testFailures +| MissedReadonlyOpportunity.cs:12:20:12:24 | Field 'Good7' can be 'readonly'. | Unexpected result: Alert | +| MissedReadonlyOpportunity.cs:49:19:49:24 | Field 'Parent' can be 'readonly'. | Unexpected result: Alert | +| MissedReadonlyOpportunity.cs:71:16:71:16 | Field 'Y' can be 'readonly'. | Unexpected result: Alert | From 8108c72c17b945f5987fd6a730d5b1a263e8c721 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 19 May 2025 14:15:13 +0200 Subject: [PATCH 535/656] C#: Exclude structs from being flagged in cs/missed-readonly-modifier. --- csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql | 1 + 1 file changed, 1 insertion(+) diff --git a/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql b/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql index a71876e8c7d..6946e9b4894 100644 --- a/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql +++ b/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql @@ -27,6 +27,7 @@ predicate isReadonlyCompatibleDefinition(AssignableDefinition def, Field f) { } predicate canBeReadonly(Field f) { + exists(Type t | t = f.getType() | not t instanceof Struct or t.(Struct).isReadonly()) and forex(AssignableDefinition def | defTargetsField(def, f) | isReadonlyCompatibleDefinition(def, f)) } From 19e9197874cd585ce55e4cfbdc00ffb40b6764c1 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 19 May 2025 16:37:14 +0200 Subject: [PATCH 536/656] C#: The field access should be on this for it to be compatible with readonly. --- csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql b/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql index 6946e9b4894..78cce5126df 100644 --- a/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql +++ b/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql @@ -20,7 +20,10 @@ predicate defTargetsField(AssignableDefinition def, Field f) { predicate isReadonlyCompatibleDefinition(AssignableDefinition def, Field f) { defTargetsField(def, f) and ( - def.getEnclosingCallable().(Constructor).getDeclaringType() = f.getDeclaringType() + def.getEnclosingCallable().(StaticConstructor).getDeclaringType() = f.getDeclaringType() + or + def.getEnclosingCallable().(InstanceConstructor).getDeclaringType() = f.getDeclaringType() and + def.getTargetAccess().(QualifiableExpr).getQualifier() instanceof ThisAccess or def instanceof AssignableDefinitions::InitializerDefinition ) From 008d5b7081b941a092e3b25320b037380154bfdb Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Wed, 21 May 2025 15:20:15 +0200 Subject: [PATCH 537/656] C#: Update test expected output. --- .../MissedReadonlyOpportunity.expected | 8 -------- 1 file changed, 8 deletions(-) diff --git a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.expected b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.expected index 620b6b2dd11..6a9b286a343 100644 --- a/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.expected +++ b/csharp/ql/test/query-tests/Language Abuse/MissedReadonlyOpportunity/MissedReadonlyOpportunity.expected @@ -1,14 +1,6 @@ -#select | MissedReadonlyOpportunity.cs:3:16:3:19 | Bad1 | Field 'Bad1' can be 'readonly'. | | MissedReadonlyOpportunity.cs:4:14:4:17 | Bad2 | Field 'Bad2' can be 'readonly'. | | MissedReadonlyOpportunity.cs:5:22:5:25 | Bad3 | Field 'Bad3' can be 'readonly'. | -| MissedReadonlyOpportunity.cs:12:20:12:24 | Good7 | Field 'Good7' can be 'readonly'. | -| MissedReadonlyOpportunity.cs:49:19:49:24 | Parent | Field 'Parent' can be 'readonly'. | | MissedReadonlyOpportunity.cs:50:19:50:22 | Left | Field 'Left' can be 'readonly'. | | MissedReadonlyOpportunity.cs:70:16:70:16 | X | Field 'X' can be 'readonly'. | -| MissedReadonlyOpportunity.cs:71:16:71:16 | Y | Field 'Y' can be 'readonly'. | | MissedReadonlyOpportunityBad.cs:3:9:3:13 | Field | Field 'Field' can be 'readonly'. | -testFailures -| MissedReadonlyOpportunity.cs:12:20:12:24 | Field 'Good7' can be 'readonly'. | Unexpected result: Alert | -| MissedReadonlyOpportunity.cs:49:19:49:24 | Field 'Parent' can be 'readonly'. | Unexpected result: Alert | -| MissedReadonlyOpportunity.cs:71:16:71:16 | Field 'Y' can be 'readonly'. | Unexpected result: Alert | From 48e484b438c592a2eb0f2c2cafd5c2a60f390f82 Mon Sep 17 00:00:00 2001 From: Nicolas Will Date: Wed, 21 May 2025 16:26:11 +0200 Subject: [PATCH 538/656] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll index 879af7cbe6c..8da40884a3a 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll @@ -36,7 +36,7 @@ class EVPPKeyAlgorithmConsumer extends PKeyValueConsumer { // when the operation is again modeled as a key gen operation. this.(Call).getTarget().getName() = "EVP_PKEY_Q_keygen" and ( - // Ellipitic curve case + // Elliptic curve case // If the argInd 3 is a derived type (pointer or array) then assume it is a curve name if this.(Call).getArgument(3).getType().getUnderlyingType() instanceof DerivedType then valueArgNode.asExpr() = this.(Call).getArgument(3) From 9f65cb8c4c9bf48ec47bd8be5cd8c0534bd42cf8 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Wed, 21 May 2025 11:51:25 -0400 Subject: [PATCH 539/656] Comment/doc cleanup --- .../AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll | 1 - .../AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll index f710ff613c2..affb7ae6095 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/DirectAlgorithmValueConsumer.qll @@ -3,7 +3,6 @@ private import experimental.quantum.Language private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase -// TODO: can self referential to itself, which is also an algorithm (Known algorithm) /** * Cases like EVP_MD5(), * there is no input, rather it directly gets an algorithm diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll index 066f0fa1a3a..52d7949561e 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/HashAlgorithmValueConsumer.qll @@ -32,7 +32,7 @@ class EVP_Q_Digest_Algorithm_Consumer extends OpenSSLAlgorithmValueConsumer { } /** - * EVP digest algorithm getters + * The EVP digest algorithm getters * https://docs.openssl.org/3.0/man3/EVP_DigestInit/#synopsis */ class EVPDigestAlgorithmValueConsumer extends OpenSSLAlgorithmValueConsumer { From bbee2c9bdf7dd37b980822ae79c4f72b5d7b50b2 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Wed, 21 May 2025 15:06:00 -0400 Subject: [PATCH 540/656] Crypto: Misc. refactoring and code clean up. --- cpp/ql/lib/experimental/quantum/Language.qll | 5 +- .../AlgorithmInstances/AlgToAVCFlow.qll | 8 ++- .../BlockAlgorithmInstance.qll | 2 +- .../CipherAlgorithmInstance.qll | 2 +- .../KnownAlgorithmConstants.qll | 12 ++-- .../PaddingAlgorithmInstance.qll | 64 ++++++++++--------- .../CipherAlgorithmValueConsumer.qll | 2 - .../EllipticCurveAlgorithmValueConsumer.qll | 2 - .../OpenSSLAlgorithmValueConsumerBase.qll | 1 - .../PKeyAlgorithmValueConsumer.qll | 2 - .../PaddingAlgorithmValueConsumer.qll | 8 +-- .../experimental/quantum/OpenSSL/CtxFlow.qll | 53 +++++++++++---- .../experimental/quantum/OpenSSL/OpenSSL.qll | 12 ++-- .../OpenSSL/Operations/ECKeyGenOperation.qll | 6 +- .../OpenSSL/Operations/EVPHashOperation.qll | 11 +--- 15 files changed, 101 insertions(+), 89 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/Language.qll b/cpp/ql/lib/experimental/quantum/Language.qll index ab3ce039cc5..75ed05ef6fa 100644 --- a/cpp/ql/lib/experimental/quantum/Language.qll +++ b/cpp/ql/lib/experimental/quantum/Language.qll @@ -94,7 +94,10 @@ private class ConstantDataSource extends Crypto::GenericConstantSourceInstance i // where typical algorithms are specified, but EC specifically means set up a // default curve container, that will later be specified explicitly (or if not a default) // curve is used. - this.getValue() != "EC" + this.getValue() != "EC" and + // Exclude all 0's as algorithms. Currently we know of no algorithm defined as 0, and + // the typical case is 0 is assigned to represent null. + this.getValue().toInt() != 0 } override DataFlow::Node getOutputNode() { result.asExpr() = this } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll index 045e3649e41..c2df3989f81 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/AlgToAVCFlow.qll @@ -3,6 +3,7 @@ private import experimental.quantum.Language private import semmle.code.cpp.dataflow.new.DataFlow private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers +private import PaddingAlgorithmInstance /** * Traces 'known algorithms' to AVCs, specifically @@ -19,6 +20,9 @@ module KnownOpenSSLAlgorithmToAlgorithmValueConsumerConfig implements DataFlow:: predicate isSink(DataFlow::Node sink) { exists(OpenSSLAlgorithmValueConsumer c | c.getInputNode() = sink and + // exclude padding algorithm consumers, since + // these consumers take in different constant values + // not in the typical "known algorithm" set not c instanceof PaddingAlgorithmValueConsumer ) } @@ -43,9 +47,7 @@ module KnownOpenSSLAlgorithmToAlgorithmValueConsumerFlow = DataFlow::Global; module RSAPaddingAlgorithmToPaddingAlgorithmValueConsumerConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { - source.asExpr() instanceof KnownOpenSSLAlgorithmConstant - } + predicate isSource(DataFlow::Node source) { source.asExpr() instanceof OpenSSLPaddingLiteral } predicate isSink(DataFlow::Node sink) { exists(PaddingAlgorithmValueConsumer c | c.getInputNode() = sink) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll index 299d8c88694..1bc7d12e984 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/BlockAlgorithmInstance.qll @@ -8,7 +8,7 @@ private import AlgToAVCFlow /** * Given a `KnownOpenSSLBlockModeAlgorithmConstant`, converts this to a block family type. - * Does not bind if there is know mapping (no mapping to 'unknown' or 'other'). + * Does not bind if there is no mapping (no mapping to 'unknown' or 'other'). */ predicate knownOpenSSLConstantToBlockModeFamilyType( KnownOpenSSLBlockModeAlgorithmConstant e, Crypto::TBlockCipherModeOfOperationType type diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll index 0e41b50300c..a6415df31c6 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/CipherAlgorithmInstance.qll @@ -11,7 +11,7 @@ private import BlockAlgorithmInstance /** * Given a `KnownOpenSSLCipherAlgorithmConstant`, converts this to a cipher family type. - * Does not bind if there is know mapping (no mapping to 'unknown' or 'other'). + * Does not bind if there is no mapping (no mapping to 'unknown' or 'other'). */ predicate knownOpenSSLConstantToCipherFamilyType( KnownOpenSSLCipherAlgorithmConstant e, Crypto::KeyOpAlg::TAlgorithm type diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index 5e7e16b13dc..0491aba5179 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -1,5 +1,4 @@ import cpp -private import experimental.quantum.OpenSSL.LibraryDetector predicate resolveAlgorithmFromExpr(Expr e, string normalizedName, string algType) { resolveAlgorithmFromCall(e, normalizedName, algType) @@ -20,7 +19,7 @@ class KnownOpenSSLCipherAlgorithmConstant extends KnownOpenSSLAlgorithmConstant KnownOpenSSLCipherAlgorithmConstant() { resolveAlgorithmFromExpr(this, _, algType) and - algType.toLowerCase().matches("%encryption") + algType.matches("%ENCRYPTION") } int getExplicitKeySize() { @@ -37,7 +36,7 @@ class KnownOpenSSLPaddingAlgorithmConstant extends KnownOpenSSLAlgorithmConstant KnownOpenSSLPaddingAlgorithmConstant() { resolveAlgorithmFromExpr(this, _, algType) and - algType.toLowerCase().matches("%padding") + algType.matches("%PADDING") } } @@ -46,7 +45,7 @@ class KnownOpenSSLBlockModeAlgorithmConstant extends KnownOpenSSLAlgorithmConsta KnownOpenSSLBlockModeAlgorithmConstant() { resolveAlgorithmFromExpr(this, _, algType) and - algType.toLowerCase().matches("%block_mode") + algType.matches("%BLOCK_MODE") } } @@ -55,7 +54,7 @@ class KnownOpenSSLHashAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { KnownOpenSSLHashAlgorithmConstant() { resolveAlgorithmFromExpr(this, _, algType) and - algType.toLowerCase().matches("%hash") + algType.matches("%HASH") } int getExplicitDigestLength() { @@ -71,7 +70,7 @@ class KnownOpenSSLEllipticCurveAlgorithmConstant extends KnownOpenSSLAlgorithmCo KnownOpenSSLEllipticCurveAlgorithmConstant() { exists(string algType | resolveAlgorithmFromExpr(this, _, algType) and - algType.toLowerCase().matches("elliptic_curve") + algType.matches("ELLIPTIC_CURVE") ) } } @@ -89,7 +88,6 @@ class KnownOpenSSLEllipticCurveAlgorithmConstant extends KnownOpenSSLAlgorithmCo * alias = "dss1" and target = "dsaWithSHA1" */ predicate resolveAlgorithmFromCall(Call c, string normalized, string algType) { - isPossibleOpenSSLFunction(c.getTarget()) and exists(string name, string parsedTargetName | parsedTargetName = c.getTarget().getName().replaceAll("EVP_", "").toLowerCase().replaceAll("_", "-") and diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll index 2979f1c303f..d6be45c22ff 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll @@ -6,9 +6,26 @@ private import AlgToAVCFlow private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.DirectAlgorithmValueConsumer private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase +/** + * A class to define padding specific integer values. + * from rsa.h in openssl: + * # define RSA_PKCS1_PADDING 1 + * # define RSA_NO_PADDING 3 + * # define RSA_PKCS1_OAEP_PADDING 4 + * # define RSA_X931_PADDING 5 + * # define RSA_PKCS1_PSS_PADDING 6 + * # define RSA_PKCS1_WITH_TLS_PADDING 7 + * # define RSA_PKCS1_NO_IMPLICIT_REJECT_PADDING 8 + */ +class OpenSSLPaddingLiteral extends Literal { + // TODO: we can be more specific about where the literal is in a larger expression + // to avoid literals that are clealy not representing an algorithm, e.g., array indices. + OpenSSLPaddingLiteral() { this.getValue().toInt() in [0, 1, 3, 4, 5, 6, 7, 8] } +} + /** * Given a `KnownOpenSSLPaddingAlgorithmConstant`, converts this to a padding family type. - * Does not bind if there is know mapping (no mapping to 'unknown' or 'other'). + * Does not bind if there is no mapping (no mapping to 'unknown' or 'other'). */ predicate knownOpenSSLConstantToPaddingFamilyType( KnownOpenSSLPaddingAlgorithmConstant e, Crypto::TPaddingType type @@ -60,19 +77,8 @@ class KnownOpenSSLPaddingConstantAlgorithmInstance extends OpenSSLAlgorithmInsta this instanceof KnownOpenSSLPaddingAlgorithmConstant and isPaddingSpecificConsumer = false or - // Possibility 3: - // from rsa.h in openssl: - // # define RSA_PKCS1_PADDING 1 - // # define RSA_NO_PADDING 3 - // # define RSA_PKCS1_OAEP_PADDING 4 - // # define RSA_X931_PADDING 5 - // /* EVP_PKEY_ only */ - // # define RSA_PKCS1_PSS_PADDING 6 - // # define RSA_PKCS1_WITH_TLS_PADDING 7 - // /* internal RSA_ only */ - // # define RSA_PKCS1_NO_IMPLICIT_REJECT_PADDING 8 - this instanceof Literal and - this.getValue().toInt() in [0, 1, 3, 4, 5, 6, 7, 8] and + // Possibility 3: padding-specific literal + this instanceof OpenSSLPaddingLiteral and exists(DataFlow::Node src, DataFlow::Node sink | // Sink is an argument to a CipherGetterCall sink = getterCall.(OpenSSLAlgorithmValueConsumer).getInputNode() and @@ -88,24 +94,24 @@ class KnownOpenSSLPaddingConstantAlgorithmInstance extends OpenSSLAlgorithmInsta override OpenSSLAlgorithmValueConsumer getAVC() { result = getterCall } + Crypto::TPaddingType getKnownPaddingType() { + this.(Literal).getValue().toInt() in [1, 7, 8] and result = Crypto::PKCS1_v1_5() + or + this.(Literal).getValue().toInt() = 3 and result = Crypto::NoPadding() + or + this.(Literal).getValue().toInt() = 4 and result = Crypto::OAEP() + or + this.(Literal).getValue().toInt() = 5 and result = Crypto::ANSI_X9_23() + or + this.(Literal).getValue().toInt() = 6 and result = Crypto::PSS() + } + override Crypto::TPaddingType getPaddingType() { isPaddingSpecificConsumer = true and ( - if this.(Literal).getValue().toInt() in [1, 7, 8] - then result = Crypto::PKCS1_v1_5() - else - if this.(Literal).getValue().toInt() = 3 - then result = Crypto::NoPadding() - else - if this.(Literal).getValue().toInt() = 4 - then result = Crypto::OAEP() - else - if this.(Literal).getValue().toInt() = 5 - then result = Crypto::ANSI_X9_23() - else - if this.(Literal).getValue().toInt() = 6 - then result = Crypto::PSS() - else result = Crypto::OtherPadding() + result = getKnownPaddingType() + or + not exists(getKnownPaddingType()) and result = Crypto::OtherPadding() ) or isPaddingSpecificConsumer = false and diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll index 00fc4d735a5..8aa5d946bae 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/CipherAlgorithmValueConsumer.qll @@ -1,6 +1,5 @@ import cpp private import experimental.quantum.Language -private import experimental.quantum.OpenSSL.LibraryDetector private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase private import OpenSSLAlgorithmValueConsumerBase @@ -14,7 +13,6 @@ class EVPCipherAlgorithmValueConsumer extends CipherAlgorithmValueConsumer { EVPCipherAlgorithmValueConsumer() { resultNode.asExpr() = this and - isPossibleOpenSSLFunction(this.(Call).getTarget()) and ( this.(Call).getTarget().getName() in [ "EVP_get_cipherbyname", "EVP_get_cipherbyobj", "EVP_get_cipherbynid" diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll index 79aada45bd9..4bff4cb05db 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/EllipticCurveAlgorithmValueConsumer.qll @@ -1,6 +1,5 @@ import cpp private import experimental.quantum.Language -private import experimental.quantum.OpenSSL.LibraryDetector private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances @@ -14,7 +13,6 @@ class EVPEllipticCurveAlgorithmConsumer extends EllipticCurveValueConsumer { EVPEllipticCurveAlgorithmConsumer() { resultNode.asExpr() = this.(Call) and // in all cases the result is the return - isPossibleOpenSSLFunction(this.(Call).getTarget()) and ( this.(Call).getTarget().getName() in ["EVP_EC_gen", "EC_KEY_new_by_curve_name"] and valueArgNode.asExpr() = this.(Call).getArgument(0) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll index 200b08849f5..b0cdee1f8f5 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/OpenSSLAlgorithmValueConsumerBase.qll @@ -1,5 +1,4 @@ private import experimental.quantum.Language -private import semmle.code.cpp.dataflow.new.DataFlow abstract class OpenSSLAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer instanceof Call { /** diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll index 8da40884a3a..0d40ceeb68a 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PKeyAlgorithmValueConsumer.qll @@ -1,6 +1,5 @@ import cpp private import experimental.quantum.Language -private import experimental.quantum.OpenSSL.LibraryDetector private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumerBase private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances @@ -13,7 +12,6 @@ class EVPPKeyAlgorithmConsumer extends PKeyValueConsumer { EVPPKeyAlgorithmConsumer() { resultNode.asExpr() = this.(Call) and // in all cases the result is the return - isPossibleOpenSSLFunction(this.(Call).getTarget()) and ( // NOTE: some of these consumers are themselves key gen operations, // in these cases, the operation will be created separately for the same function. diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll index bb33ad65381..0a06ec5fd6f 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll @@ -1,6 +1,5 @@ import cpp private import experimental.quantum.Language -private import experimental.quantum.OpenSSL.LibraryDetector private import experimental.quantum.OpenSSL.AlgorithmInstances.KnownAlgorithmConstants private import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstanceBase private import OpenSSLAlgorithmValueConsumerBase @@ -16,11 +15,8 @@ class EVP_PKEY_CTX_set_rsa_padding_AlgorithmValueConsumer extends PaddingAlgorit EVP_PKEY_CTX_set_rsa_padding_AlgorithmValueConsumer() { resultNode.asExpr() = this and - isPossibleOpenSSLFunction(this.(Call).getTarget()) and - ( - this.(Call).getTarget().getName() in ["EVP_PKEY_CTX_set_rsa_padding"] and - valueArgNode.asExpr() = this.(Call).getArgument(1) - ) + this.(Call).getTarget().getName() in ["EVP_PKEY_CTX_set_rsa_padding"] and + valueArgNode.asExpr() = this.(Call).getArgument(1) } override DataFlow::Node getResultNode() { result = resultNode } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll index 88e4a1c378b..b2a31484de7 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll @@ -20,48 +20,74 @@ import semmle.code.cpp.dataflow.new.DataFlow -class CTXType extends Type { - CTXType() { - // TODO: should we limit this to an openssl path? - this.getUnspecifiedType().stripType().getName().matches("evp_%ctx_%st") - } +/** + * An openSSL CTX type, which is type for which the stripped underlying type + * matches the pattern 'evp_%ctx_%st'. + * This includes types like: + * - EVP_CIPHER_CTX + * - EVP_MD_CTX + * - EVP_PKEY_CTX + */ +private class CTXType extends Type { + CTXType() { this.getUnspecifiedType().stripType().getName().matches("evp_%ctx_%st") } } -class CTXPointerExpr extends Expr { +/** + * A pointer to a CTXType + */ +private class CTXPointerExpr extends Expr { CTXPointerExpr() { this.getType() instanceof CTXType and this.getType() instanceof PointerType } } -class CTXPointerArgument extends CTXPointerExpr { +/** + * A call argument of type CTXPointerExpr. + */ +private class CTXPointerArgument extends CTXPointerExpr { CTXPointerArgument() { exists(Call c | c.getAnArgument() = this) } Call getCall() { result.getAnArgument() = this } } -class CTXClearCall extends Call { +/** + * A call whose target contains 'free' or 'reset' and has an argument of type + * CTXPointerArgument. + */ +private class CTXClearCall extends Call { CTXClearCall() { this.getTarget().getName().toLowerCase().matches(["%free%", "%reset%"]) and this.getAnArgument() instanceof CTXPointerArgument } } -class CTXCopyOutArgCall extends Call { +/** + * A call whose target contains 'copy' and has an argument of type + * CTXPointerArgument. + */ +private class CTXCopyOutArgCall extends Call { CTXCopyOutArgCall() { - this.getTarget().getName().toLowerCase().matches(["%copy%"]) and + this.getTarget().getName().toLowerCase().matches("%copy%") and this.getAnArgument() instanceof CTXPointerArgument } } -class CTXCopyReturnCall extends Call { +/** + * A call whose target contains 'dup' and has an argument of type + * CTXPointerArgument. + */ +private class CTXCopyReturnCall extends Call { CTXCopyReturnCall() { - this.getTarget().getName().toLowerCase().matches(["%dup%"]) and + this.getTarget().getName().toLowerCase().matches("%dup%") and this.getAnArgument() instanceof CTXPointerArgument and this instanceof CTXPointerExpr } } +/** + * Flow from any CTXPointerArgument to any other CTXPointerArgument + */ module OpenSSLCTXArgumentFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr() instanceof CTXPointerArgument } @@ -90,6 +116,9 @@ module OpenSSLCTXArgumentFlowConfig implements DataFlow::ConfigSig { module OpenSSLCTXArgumentFlow = DataFlow::Global; +/** + * Holds if there is a context flow from the source to the sink. + */ predicate ctxArgFlowsToCtxArg(CTXPointerArgument source, CTXPointerArgument sink) { exists(DataFlow::Node a, DataFlow::Node b | OpenSSLCTXArgumentFlow::flow(a, b) and diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll index a232ffa6f3a..68fdfb73124 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll @@ -1,10 +1,6 @@ -import cpp -import semmle.code.cpp.dataflow.new.DataFlow - module OpenSSLModel { - import experimental.quantum.Language - import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances - import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers - import experimental.quantum.OpenSSL.Operations.OpenSSLOperations - import experimental.quantum.OpenSSL.Random + import AlgorithmInstances.OpenSSLAlgorithmInstances + import AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers + import Operations.OpenSSLOperations + import Random } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll index 9dc723bb5d1..4f07ecc0f9e 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll @@ -1,5 +1,4 @@ private import experimental.quantum.Language -private import experimental.quantum.OpenSSL.LibraryDetector private import experimental.quantum.OpenSSL.CtxFlow as CTXFlow private import OpenSSLOperationBase private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers @@ -18,10 +17,7 @@ private module AlgGetterToAlgConsumerConfig implements DataFlow::ConfigSig { private module AlgGetterToAlgConsumerFlow = DataFlow::Global; class ECKeyGenOperation extends OpenSSLOperation, Crypto::KeyGenerationOperationInstance { - ECKeyGenOperation() { - this.(Call).getTarget().getName() = "EC_KEY_generate_key" and - isPossibleOpenSSLFunction(this.(Call).getTarget()) - } + ECKeyGenOperation() { this.(Call).getTarget().getName() = "EC_KEY_generate_key" } override Expr getOutputArg() { result = this.(Call) // return value of call diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll index 81248d5bad1..43d10545357 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/Operations/EVPHashOperation.qll @@ -4,7 +4,6 @@ private import experimental.quantum.Language private import experimental.quantum.OpenSSL.CtxFlow as CTXFlow -private import experimental.quantum.OpenSSL.LibraryDetector private import OpenSSLOperationBase private import EVPHashInitializer private import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers @@ -42,10 +41,7 @@ private module AlgGetterToAlgConsumerFlow = DataFlow::Global Date: Wed, 21 May 2025 15:24:03 -0400 Subject: [PATCH 541/656] Crypto: Further code cleanup --- .../PaddingAlgorithmInstance.qll | 4 +- .../PaddingAlgorithmValueConsumer.qll | 2 +- .../experimental/quantum/OpenSSL/CtxFlow.qll | 67 +++++++++---------- 3 files changed, 36 insertions(+), 37 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll index d6be45c22ff..8db2dc3ab4b 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/PaddingAlgorithmInstance.qll @@ -109,9 +109,9 @@ class KnownOpenSSLPaddingConstantAlgorithmInstance extends OpenSSLAlgorithmInsta override Crypto::TPaddingType getPaddingType() { isPaddingSpecificConsumer = true and ( - result = getKnownPaddingType() + result = this.getKnownPaddingType() or - not exists(getKnownPaddingType()) and result = Crypto::OtherPadding() + not exists(this.getKnownPaddingType()) and result = Crypto::OtherPadding() ) or isPaddingSpecificConsumer = false and diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll index 0a06ec5fd6f..c60918519c8 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmValueConsumers/PaddingAlgorithmValueConsumer.qll @@ -15,7 +15,7 @@ class EVP_PKEY_CTX_set_rsa_padding_AlgorithmValueConsumer extends PaddingAlgorit EVP_PKEY_CTX_set_rsa_padding_AlgorithmValueConsumer() { resultNode.asExpr() = this and - this.(Call).getTarget().getName() in ["EVP_PKEY_CTX_set_rsa_padding"] and + this.(Call).getTarget().getName() = "EVP_PKEY_CTX_set_rsa_padding" and valueArgNode.asExpr() = this.(Call).getArgument(1) } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll index b2a31484de7..cbce19fb5df 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/CtxFlow.qll @@ -28,100 +28,99 @@ import semmle.code.cpp.dataflow.new.DataFlow * - EVP_MD_CTX * - EVP_PKEY_CTX */ -private class CTXType extends Type { - CTXType() { this.getUnspecifiedType().stripType().getName().matches("evp_%ctx_%st") } +private class CtxType extends Type { + CtxType() { this.getUnspecifiedType().stripType().getName().matches("evp_%ctx_%st") } } /** - * A pointer to a CTXType + * A pointer to a CtxType */ -private class CTXPointerExpr extends Expr { - CTXPointerExpr() { - this.getType() instanceof CTXType and +private class CtxPointerExpr extends Expr { + CtxPointerExpr() { + this.getType() instanceof CtxType and this.getType() instanceof PointerType } } /** - * A call argument of type CTXPointerExpr. + * A call argument of type CtxPointerExpr. */ -private class CTXPointerArgument extends CTXPointerExpr { - CTXPointerArgument() { exists(Call c | c.getAnArgument() = this) } +private class CtxPointerArgument extends CtxPointerExpr { + CtxPointerArgument() { exists(Call c | c.getAnArgument() = this) } Call getCall() { result.getAnArgument() = this } } /** * A call whose target contains 'free' or 'reset' and has an argument of type - * CTXPointerArgument. + * CtxPointerArgument. */ -private class CTXClearCall extends Call { - CTXClearCall() { +private class CtxClearCall extends Call { + CtxClearCall() { this.getTarget().getName().toLowerCase().matches(["%free%", "%reset%"]) and - this.getAnArgument() instanceof CTXPointerArgument + this.getAnArgument() instanceof CtxPointerArgument } } /** * A call whose target contains 'copy' and has an argument of type - * CTXPointerArgument. + * CtxPointerArgument. */ -private class CTXCopyOutArgCall extends Call { - CTXCopyOutArgCall() { +private class CtxCopyOutArgCall extends Call { + CtxCopyOutArgCall() { this.getTarget().getName().toLowerCase().matches("%copy%") and - this.getAnArgument() instanceof CTXPointerArgument + this.getAnArgument() instanceof CtxPointerArgument } } /** * A call whose target contains 'dup' and has an argument of type - * CTXPointerArgument. + * CtxPointerArgument. */ -private class CTXCopyReturnCall extends Call { - CTXCopyReturnCall() { +private class CtxCopyReturnCall extends Call, CtxPointerExpr { + CtxCopyReturnCall() { this.getTarget().getName().toLowerCase().matches("%dup%") and - this.getAnArgument() instanceof CTXPointerArgument and - this instanceof CTXPointerExpr + this.getAnArgument() instanceof CtxPointerArgument } } /** - * Flow from any CTXPointerArgument to any other CTXPointerArgument + * Flow from any CtxPointerArgument to any other CtxPointerArgument */ -module OpenSSLCTXArgumentFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source.asExpr() instanceof CTXPointerArgument } +module OpenSSLCtxArgumentFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr() instanceof CtxPointerArgument } - predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof CTXPointerArgument } + predicate isSink(DataFlow::Node sink) { sink.asExpr() instanceof CtxPointerArgument } predicate isBarrier(DataFlow::Node node) { - exists(CTXClearCall c | c.getAnArgument() = node.asExpr()) + exists(CtxClearCall c | c.getAnArgument() = node.asExpr()) } predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { - exists(CTXCopyOutArgCall c | + exists(CtxCopyOutArgCall c | c.getAnArgument() = node1.asExpr() and c.getAnArgument() = node2.asExpr() and node1.asExpr() != node2.asExpr() and - node2.asExpr().getType() instanceof CTXType + node2.asExpr().getType() instanceof CtxType ) or - exists(CTXCopyReturnCall c | + exists(CtxCopyReturnCall c | c.getAnArgument() = node1.asExpr() and c = node2.asExpr() and node1.asExpr() != node2.asExpr() and - node2.asExpr().getType() instanceof CTXType + node2.asExpr().getType() instanceof CtxType ) } } -module OpenSSLCTXArgumentFlow = DataFlow::Global; +module OpenSSLCtxArgumentFlow = DataFlow::Global; /** * Holds if there is a context flow from the source to the sink. */ -predicate ctxArgFlowsToCtxArg(CTXPointerArgument source, CTXPointerArgument sink) { +predicate ctxArgFlowsToCtxArg(CtxPointerArgument source, CtxPointerArgument sink) { exists(DataFlow::Node a, DataFlow::Node b | - OpenSSLCTXArgumentFlow::flow(a, b) and + OpenSSLCtxArgumentFlow::flow(a, b) and a.asExpr() = source and b.asExpr() = sink ) From 463a71155266d8e2508579f428c86c3503b5bfdb Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 21 May 2025 22:22:10 +0100 Subject: [PATCH 542/656] Use reflection for interface nil check instead --- go/extractor/extractor.go | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/go/extractor/extractor.go b/go/extractor/extractor.go index 42ea0527ce8..67c12737584 100644 --- a/go/extractor/extractor.go +++ b/go/extractor/extractor.go @@ -13,6 +13,7 @@ import ( "log" "os" "path/filepath" + "reflect" "regexp" "runtime" "strconv" @@ -941,16 +942,7 @@ func emitScopeNodeInfo(tw *trap.Writer, nd ast.Node, lbl trap.Label) { // extractExpr extracts AST information for the given expression and all its subexpressions func extractExpr(tw *trap.Writer, expr ast.Expr, parent trap.Label, idx int, skipExtractingValue bool) { - if expr == nil || expr == (*ast.Ident)(nil) || expr == (*ast.BasicLit)(nil) || - expr == (*ast.Ellipsis)(nil) || expr == (*ast.FuncLit)(nil) || - expr == (*ast.CompositeLit)(nil) || expr == (*ast.SelectorExpr)(nil) || - expr == (*ast.IndexListExpr)(nil) || expr == (*ast.SliceExpr)(nil) || - expr == (*ast.TypeAssertExpr)(nil) || expr == (*ast.CallExpr)(nil) || - expr == (*ast.StarExpr)(nil) || expr == (*ast.KeyValueExpr)(nil) || - expr == (*ast.UnaryExpr)(nil) || expr == (*ast.BinaryExpr)(nil) || - expr == (*ast.ArrayType)(nil) || expr == (*ast.StructType)(nil) || - expr == (*ast.FuncType)(nil) || expr == (*ast.InterfaceType)(nil) || - expr == (*ast.MapType)(nil) || expr == (*ast.ChanType)(nil) { + if expr == nil || reflect.ValueOf(expr).IsNil() { return } @@ -1247,15 +1239,7 @@ func extractFields(tw *trap.Writer, fields *ast.FieldList, parent trap.Label, id // extractStmt extracts AST information for a given statement and all other statements or expressions // nested inside it func extractStmt(tw *trap.Writer, stmt ast.Stmt, parent trap.Label, idx int) { - if stmt == nil || stmt == (*ast.DeclStmt)(nil) || - stmt == (*ast.LabeledStmt)(nil) || stmt == (*ast.ExprStmt)(nil) || - stmt == (*ast.SendStmt)(nil) || stmt == (*ast.IncDecStmt)(nil) || - stmt == (*ast.AssignStmt)(nil) || stmt == (*ast.GoStmt)(nil) || - stmt == (*ast.DeferStmt)(nil) || stmt == (*ast.BranchStmt)(nil) || - stmt == (*ast.BlockStmt)(nil) || stmt == (*ast.IfStmt)(nil) || - stmt == (*ast.CaseClause)(nil) || stmt == (*ast.SwitchStmt)(nil) || - stmt == (*ast.TypeSwitchStmt)(nil) || stmt == (*ast.CommClause)(nil) || - stmt == (*ast.ForStmt)(nil) || stmt == (*ast.RangeStmt)(nil) { + if stmt == nil || reflect.ValueOf(stmt).IsNil() { return } @@ -1391,7 +1375,7 @@ func extractStmts(tw *trap.Writer, stmts []ast.Stmt, parent trap.Label, idx int, // extractDecl extracts AST information for the given declaration func extractDecl(tw *trap.Writer, decl ast.Decl, parent trap.Label, idx int) { - if decl == (*ast.FuncDecl)(nil) || decl == (*ast.GenDecl)(nil) { + if reflect.ValueOf(decl).IsNil() { return } lbl := tw.Labeler.LocalID(decl) From a36fd2cb31929affc304167d748e9d513ada27ae Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Wed, 21 May 2025 18:15:44 -0400 Subject: [PATCH 543/656] Crypto: Advanced literal filtering for OpenSSL, used for both unknown and known algorithm literals to improve dataflow performance. --- cpp/ql/lib/experimental/quantum/Language.qll | 9 +- .../OpenSSL/AlgorithmCandidateLiteral.qll | 116 ++++++++++++++++++ .../KnownAlgorithmConstants.qll | 34 ++--- .../experimental/quantum/OpenSSL/OpenSSL.qll | 10 +- 4 files changed, 134 insertions(+), 35 deletions(-) create mode 100644 cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmCandidateLiteral.qll diff --git a/cpp/ql/lib/experimental/quantum/Language.qll b/cpp/ql/lib/experimental/quantum/Language.qll index ab3ce039cc5..c9d3f735322 100644 --- a/cpp/ql/lib/experimental/quantum/Language.qll +++ b/cpp/ql/lib/experimental/quantum/Language.qll @@ -1,6 +1,7 @@ private import cpp as Language import semmle.code.cpp.dataflow.new.TaintTracking import codeql.quantum.experimental.Model +private import experimental.quantum.OpenSSL.AlgorithmCandidateLiteral module CryptoInput implements InputSig { class DataFlowNode = DataFlow::Node; @@ -89,13 +90,7 @@ module GenericDataSourceFlowConfig implements DataFlow::ConfigSig { module GenericDataSourceFlow = TaintTracking::Global; private class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceof Literal { - ConstantDataSource() { - // TODO: this is an API specific workaround for OpenSSL, as 'EC' is a constant that may be used - // where typical algorithms are specified, but EC specifically means set up a - // default curve container, that will later be specified explicitly (or if not a default) - // curve is used. - this.getValue() != "EC" - } + ConstantDataSource() { this instanceof OpenSSLAlgorithmCandidateLiteral } override DataFlow::Node getOutputNode() { result.asExpr() = this } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmCandidateLiteral.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmCandidateLiteral.qll new file mode 100644 index 00000000000..3e2d1d0301b --- /dev/null +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmCandidateLiteral.qll @@ -0,0 +1,116 @@ +import cpp +private import semmle.code.cpp.models.Models +private import semmle.code.cpp.models.interfaces.FormattingFunction + +/** + * Holds if a StringLiteral could be an algorithm literal. + * Note: this predicate should only consider restrictions with respect to strings only. + * General restrictions are in the OpenSSLAlgorithmCandidateLiteral class. + */ +private predicate isOpenSSLStringLiteralAlgorithmCandidate(StringLiteral s) { + // 'EC' is a constant that may be used where typical algorithms are specified, + // but EC specifically means set up a default curve container, that will later be + //specified explicitly (or if not a default) curve is used. + s.getValue() != "EC" and + // Ignore empty strings + s.getValue() != "" and + // ignore strings that represent integers, it is possible this could be used for actual + // algorithms but assuming this is not the common case + // NOTE: if we were to revert this restriction, we should still consider filtering "0" + // to be consistent with filtering integer 0 + not exists(s.getValue().toInt()) and + // Filter out strings with "%", to filter out format strings + not s.getValue().matches("%\\%%") and + // Filter out strings in brackets or braces + not s.getValue().matches(["[%]", "(%)"]) and + // Filter out all strings of length 1, since these are not algorithm names + s.getValue().length() > 1 and + // Ignore all strings that are in format string calls outputing to a stream (e.g., stdout) + not exists(FormattingFunctionCall f | + exists(f.getOutputArgument(true)) and s = f.(Call).getAnArgument() + ) and + // Ignore all format string calls where there is no known out param (resulting string) + // i.e., ignore printf, since it will just ouput a string and not produce a new string + not exists(FormattingFunctionCall f | + // Note: using two ways of determining if there is an out param, since I'm not sure + // which way is canonical + not exists(f.getOutputArgument(false)) and + not f.getTarget().(FormattingFunction).hasTaintFlow(_, _) and + f.(Call).getAnArgument() = s + ) +} + +/** + * Holds if an IntLiteral could be an algorithm literal. + * Note: this predicate should only consider restrictions with respect to integers only. + * General restrictions are in the OpenSSLAlgorithmCandidateLiteral class. + */ +private predicate isOpenSSLIntLiteralAlgorithmCandidate(Literal l) { + exists(l.getValue().toInt()) and + // Ignore char literals + not l instanceof CharLiteral and + not l instanceof StringLiteral and + // Ignore integer values of 0, commonly referring to NULL only (no known algorithm 0) + // Also ignore integer values greater than 5000 + l.getValue().toInt() != 0 and + // ASSUMPTION, no negative numbers are allowed + // RATIONALE: this is a performance improvement to avoid having to trace every number + not exists(UnaryMinusExpr u | u.getOperand() = l) and + // OPENSSL has a special macro for getting every line, ignore it + not exists(MacroInvocation mi | mi.getExpr() = l and mi.getMacroName() = "OPENSSL_LINE") and + // Filter out cases where an int is returned into a pointer, e.g., return NULL; + not exists(ReturnStmt r | + r.getExpr() = l and + r.getEnclosingFunction().getType().getUnspecifiedType() instanceof DerivedType + ) and + // A literal as an array index should never be an algorithm + not exists(ArrayExpr op | op.getArrayOffset() = l) and + // A literal used in a bitwise operation may be an algorithm, but not a candidate + // for the purposes of finding applied algorithms + not exists(BinaryBitwiseOperation op | op.getAnOperand() = l) and + not exists(AssignBitwiseOperation op | op.getAnOperand() = l) and + //Filter out cases where an int is assigned or initialized into a pointer, e.g., char* x = NULL; + not exists(Assignment a | + a.getRValue() = l and + a.getLValue().getType().getUnspecifiedType() instanceof DerivedType + ) and + not exists(Initializer i | + i.getExpr() = l and + i.getDeclaration().getADeclarationEntry().getUnspecifiedType() instanceof DerivedType + ) and + // Filter out cases where the literal is used in any kind of arithmetic operation + not exists(BinaryArithmeticOperation op | op.getAnOperand() = l) and + not exists(UnaryArithmeticOperation op | op.getOperand() = l) and + not exists(AssignArithmeticOperation op | op.getAnOperand() = l) +} + +/** + * Any literal that may represent an algorithm for use in an operation, even if an invalid or unknown algorithm. + * The set of all literals is restricted by this class to cases where there is higher + * plausibility that the literal is eventually used as an algorithm. + * Literals are filtered, for example if they are used in a way no indicative of an algorithm use + * such as in an array index, bitwise operation, or logical operation. + * Note a case like this: + * if(algVal == "AES") + * + * "AES" may be a legitimate algorithm literal, but the literal will not be used for an operation directly + * since it is in a equality comparison, hence this case would also be filtered. + */ +class OpenSSLAlgorithmCandidateLiteral extends Literal { + OpenSSLAlgorithmCandidateLiteral() { + ( + isOpenSSLIntLiteralAlgorithmCandidate(this) or + isOpenSSLStringLiteralAlgorithmCandidate(this) + ) and + // ********* General filters beyond what is filtered for strings and ints ********* + // An algorithm literal in a switch case will not be directly applied to an operation. + not exists(SwitchCase sc | sc.getExpr() = this) and + // A literal in a logical operation may be an algorithm, but not a candidate + // for the purposes of finding applied algorithms + not exists(BinaryLogicalOperation op | op.getAnOperand() = this) and + not exists(UnaryLogicalOperation op | op.getOperand() = this) and + // A literal in a comparison operation may be an algorithm, but not a candidate + // for the purposes of finding applied algorithms + not exists(ComparisonOperation op | op.getAnOperand() = this) + } +} diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index 5e7e16b13dc..e8cb9bdf539 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -1,5 +1,5 @@ import cpp -private import experimental.quantum.OpenSSL.LibraryDetector +import experimental.quantum.OpenSSL.AlgorithmCandidateLiteral predicate resolveAlgorithmFromExpr(Expr e, string normalizedName, string algType) { resolveAlgorithmFromCall(e, normalizedName, algType) @@ -89,7 +89,6 @@ class KnownOpenSSLEllipticCurveAlgorithmConstant extends KnownOpenSSLAlgorithmCo * alias = "dss1" and target = "dsaWithSHA1" */ predicate resolveAlgorithmFromCall(Call c, string normalized, string algType) { - isPossibleOpenSSLFunction(c.getTarget()) and exists(string name, string parsedTargetName | parsedTargetName = c.getTarget().getName().replaceAll("EVP_", "").toLowerCase().replaceAll("_", "-") and @@ -103,7 +102,9 @@ predicate resolveAlgorithmFromCall(Call c, string normalized, string algType) { * if `e` resolves to a known algorithm. * If this predicate does not hold, then `e` can be interpreted as being of `UNKNOWN` type. */ -predicate resolveAlgorithmFromLiteral(Literal e, string normalized, string algType) { +predicate resolveAlgorithmFromLiteral( + OpenSSLAlgorithmCandidateLiteral e, string normalized, string algType +) { exists(int nid | nid = getPossibleNidFromLiteral(e) and knownOpenSSLAlgorithmLiteral(_, nid, normalized, algType) ) @@ -125,28 +126,15 @@ string resolveAlgorithmAlias(string name) { ) } -private int getPossibleNidFromLiteral(Literal e) { +/** + * Determines if an int literal (NID) is a candidate for being an algorithm literal. + * Checks for common cases where literals are used that would not be indicative of an algorithm. + * Returns the int literal value if the literal is a candidate for an algorithm. + */ +private int getPossibleNidFromLiteral(OpenSSLAlgorithmCandidateLiteral e) { result = e.getValue().toInt() and not e instanceof CharLiteral and - not e instanceof StringLiteral and - // ASSUMPTION, no negative numbers are allowed - // RATIONALE: this is a performance improvement to avoid having to trace every number - not exists(UnaryMinusExpr u | u.getOperand() = e) and - // OPENSSL has a special macro for getting every line, ignore it - not exists(MacroInvocation mi | mi.getExpr() = e and mi.getMacroName() = "OPENSSL_LINE") and - // Filter out cases where an int is assigned into a pointer, e.g., char* x = NULL; - not exists(Assignment a | - a.getRValue() = e and a.getLValue().getType().getUnspecifiedType() instanceof PointerType - ) and - not exists(Initializer i | - i.getExpr() = e and - i.getDeclaration().getADeclarationEntry().getUnspecifiedType() instanceof PointerType - ) and - // Filter out cases where an int is returned into a pointer, e.g., return NULL; - not exists(ReturnStmt r | - r.getExpr() = e and - r.getEnclosingFunction().getType().getUnspecifiedType() instanceof PointerType - ) + not e instanceof StringLiteral } string getAlgorithmAlias(string alias) { diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll index a232ffa6f3a..eadf1a3e223 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll @@ -2,9 +2,9 @@ import cpp import semmle.code.cpp.dataflow.new.DataFlow module OpenSSLModel { - import experimental.quantum.Language - import experimental.quantum.OpenSSL.AlgorithmInstances.OpenSSLAlgorithmInstances - import experimental.quantum.OpenSSL.AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers - import experimental.quantum.OpenSSL.Operations.OpenSSLOperations - import experimental.quantum.OpenSSL.Random + import AlgorithmInstances.OpenSSLAlgorithmInstances + import AlgorithmValueConsumers.OpenSSLAlgorithmValueConsumers + import Operations.OpenSSLOperations + import Random + import AlgorithmCandidateLiteral } From 100045d4cb3a3c80957e1c62f741a9f5d51387b9 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Wed, 21 May 2025 18:25:29 -0400 Subject: [PATCH 544/656] Crypto: optimizing out the "getPossibleNidFromLiteral" predicate, and now relying on the charpred of OpenSSLAlgorithmCandidateLiteral. --- .../KnownAlgorithmConstants.qll | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index e8cb9bdf539..59f03264a69 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -105,9 +105,7 @@ predicate resolveAlgorithmFromCall(Call c, string normalized, string algType) { predicate resolveAlgorithmFromLiteral( OpenSSLAlgorithmCandidateLiteral e, string normalized, string algType ) { - exists(int nid | - nid = getPossibleNidFromLiteral(e) and knownOpenSSLAlgorithmLiteral(_, nid, normalized, algType) - ) + knownOpenSSLAlgorithmLiteral(_, e.getValue().toInt(), normalized, algType) or exists(string name | name = resolveAlgorithmAlias(e.getValue()) and @@ -126,17 +124,6 @@ string resolveAlgorithmAlias(string name) { ) } -/** - * Determines if an int literal (NID) is a candidate for being an algorithm literal. - * Checks for common cases where literals are used that would not be indicative of an algorithm. - * Returns the int literal value if the literal is a candidate for an algorithm. - */ -private int getPossibleNidFromLiteral(OpenSSLAlgorithmCandidateLiteral e) { - result = e.getValue().toInt() and - not e instanceof CharLiteral and - not e instanceof StringLiteral -} - string getAlgorithmAlias(string alias) { customAliases(result, alias) or From bae16f07ff5ae6c52e93924c5217eaa4f33f8cd9 Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Thu, 22 May 2025 08:42:37 +0200 Subject: [PATCH 545/656] C#: Change note. --- .../src/change-notes/2025-05-22-missed-readonly-modifier.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 csharp/ql/src/change-notes/2025-05-22-missed-readonly-modifier.md diff --git a/csharp/ql/src/change-notes/2025-05-22-missed-readonly-modifier.md b/csharp/ql/src/change-notes/2025-05-22-missed-readonly-modifier.md new file mode 100644 index 00000000000..ee3d60fe4ff --- /dev/null +++ b/csharp/ql/src/change-notes/2025-05-22-missed-readonly-modifier.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The precision of the query `cs/missed-readonly-modifier` has been improved. Some false positives related to static fields and struct type fields have been removed. From dd5c48762879d170f7370a52bc6b53d259d970f1 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Thu, 15 May 2025 10:56:39 +0200 Subject: [PATCH 546/656] Rust: extract source files of depdendencies --- rust/extractor/src/main.rs | 69 +++++++++++++++++++++++----- rust/extractor/src/translate.rs | 2 +- rust/extractor/src/translate/base.rs | 35 +++++++++++++- 3 files changed, 93 insertions(+), 13 deletions(-) diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index 91f224d657b..38d113d02dc 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -1,6 +1,6 @@ use crate::diagnostics::{ExtractionStep, emit_extraction_diagnostics}; use crate::rust_analyzer::path_to_file_id; -use crate::translate::ResolvePaths; +use crate::translate::{ResolvePaths, SourceKind}; use crate::trap::TrapId; use anyhow::Context; use archive::Archiver; @@ -12,6 +12,7 @@ use ra_ap_paths::{AbsPathBuf, Utf8PathBuf}; use ra_ap_project_model::{CargoConfig, ProjectManifest}; use ra_ap_vfs::Vfs; use rust_analyzer::{ParseResult, RustAnalyzer}; +use std::collections::HashSet; use std::time::Instant; use std::{ collections::HashMap, @@ -47,9 +48,14 @@ impl<'a> Extractor<'a> { } } - fn extract(&mut self, rust_analyzer: &RustAnalyzer, file: &Path, resolve_paths: ResolvePaths) { + fn extract( + &mut self, + rust_analyzer: &RustAnalyzer, + file: &Path, + resolve_paths: ResolvePaths, + source_kind: SourceKind, + ) { self.archiver.archive(file); - let before_parse = Instant::now(); let ParseResult { ast, @@ -71,6 +77,7 @@ impl<'a> Extractor<'a> { line_index, semantics_info.as_ref().ok(), resolve_paths, + source_kind, ); for err in errors { @@ -110,15 +117,27 @@ impl<'a> Extractor<'a> { semantics: &Semantics<'_, RootDatabase>, vfs: &Vfs, resolve_paths: ResolvePaths, + source_kind: SourceKind, ) { - self.extract(&RustAnalyzer::new(vfs, semantics), file, resolve_paths); + self.extract( + &RustAnalyzer::new(vfs, semantics), + file, + resolve_paths, + source_kind, + ); } - pub fn extract_without_semantics(&mut self, file: &Path, reason: &str) { + pub fn extract_without_semantics( + &mut self, + file: &Path, + source_kind: SourceKind, + reason: &str, + ) { self.extract( &RustAnalyzer::WithoutSemantics { reason }, file, ResolvePaths::No, + source_kind, ); } @@ -246,7 +265,7 @@ fn main() -> anyhow::Result<()> { continue 'outer; } } - extractor.extract_without_semantics(file, "no manifest found"); + extractor.extract_without_semantics(file, SourceKind::Source, "no manifest found"); } let cwd = cwd()?; let (cargo_config, load_cargo_config) = cfg.to_cargo_config(&cwd); @@ -255,6 +274,7 @@ fn main() -> anyhow::Result<()> { } else { ResolvePaths::Yes }; + let mut processed_files = HashSet::new(); for (manifest, files) in map.values().filter(|(_, files)| !files.is_empty()) { if let Some((ref db, ref vfs)) = extractor.load_manifest(manifest, &cargo_config, &load_cargo_config) @@ -266,16 +286,43 @@ fn main() -> anyhow::Result<()> { .push(ExtractionStep::crate_graph(before_crate_graph)); let semantics = Semantics::new(db); for file in files { + processed_files.insert((*file).to_owned()); match extractor.load_source(file, &semantics, vfs) { - Ok(()) => { - extractor.extract_with_semantics(file, &semantics, vfs, resolve_paths) + Ok(()) => extractor.extract_with_semantics( + file, + &semantics, + vfs, + resolve_paths, + SourceKind::Source, + ), + Err(reason) => { + extractor.extract_without_semantics(file, SourceKind::Source, &reason) } - Err(reason) => extractor.extract_without_semantics(file, &reason), }; } + for (_, file) in vfs.iter() { + if let Some(file) = file.as_path().map(<_ as AsRef>::as_ref) { + if file.extension().is_some_and(|ext| ext == "rs") + && processed_files.insert(file.to_owned()) + { + extractor.extract_with_semantics( + file, + &semantics, + vfs, + resolve_paths, + SourceKind::Library, + ); + extractor.archiver.archive(file); + } + } + } } else { for file in files { - extractor.extract_without_semantics(file, "unable to load manifest"); + extractor.extract_without_semantics( + file, + SourceKind::Source, + "unable to load manifest", + ); } } } @@ -286,7 +333,7 @@ fn main() -> anyhow::Result<()> { let entry = entry.context("failed to read builtins directory")?; let path = entry.path(); if path.extension().is_some_and(|ext| ext == "rs") { - extractor.extract_without_semantics(&path, ""); + extractor.extract_without_semantics(&path, SourceKind::Library, ""); } } diff --git a/rust/extractor/src/translate.rs b/rust/extractor/src/translate.rs index c74652628f8..22bb3f4909f 100644 --- a/rust/extractor/src/translate.rs +++ b/rust/extractor/src/translate.rs @@ -2,4 +2,4 @@ mod base; mod generated; mod mappings; -pub use base::{ResolvePaths, Translator}; +pub use base::{ResolvePaths, SourceKind, Translator}; diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index d0e99e8a5b4..43eca8480e4 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -16,7 +16,7 @@ use ra_ap_ide_db::RootDatabase; use ra_ap_ide_db::line_index::{LineCol, LineIndex}; use ra_ap_parser::SyntaxKind; use ra_ap_span::TextSize; -use ra_ap_syntax::ast::HasName; +use ra_ap_syntax::ast::{Const, Fn, HasName, Static}; use ra_ap_syntax::{ AstNode, NodeOrToken, SyntaxElementChildren, SyntaxError, SyntaxNode, SyntaxToken, TextRange, ast, @@ -93,6 +93,11 @@ pub enum ResolvePaths { Yes, No, } +#[derive(PartialEq, Eq)] +pub enum SourceKind { + Source, + Library, +} pub struct Translator<'a> { pub trap: TrapFile, @@ -102,6 +107,7 @@ pub struct Translator<'a> { file_id: Option, pub semantics: Option<&'a Semantics<'a, RootDatabase>>, resolve_paths: ResolvePaths, + source_kind: SourceKind, } const UNKNOWN_LOCATION: (LineCol, LineCol) = @@ -115,6 +121,7 @@ impl<'a> Translator<'a> { line_index: LineIndex, semantic_info: Option<&FileSemanticInformation<'a>>, resolve_paths: ResolvePaths, + source_kind: SourceKind, ) -> Translator<'a> { Translator { trap, @@ -124,6 +131,7 @@ impl<'a> Translator<'a> { file_id: semantic_info.map(|i| i.file_id), semantics: semantic_info.map(|i| i.semantics), resolve_paths, + source_kind, } } fn location(&self, range: TextRange) -> Option<(LineCol, LineCol)> { @@ -612,6 +620,31 @@ impl<'a> Translator<'a> { } pub(crate) fn should_be_excluded(&self, item: &impl ast::HasAttrs) -> bool { + if self.source_kind == SourceKind::Library { + let syntax = item.syntax(); + if let Some(body) = syntax.parent().and_then(Fn::cast).and_then(|x| x.body()) { + if body.syntax() == syntax { + tracing::debug!("Skipping Fn body"); + return true; + } + } + if let Some(body) = syntax.parent().and_then(Const::cast).and_then(|x| x.body()) { + if body.syntax() == syntax { + tracing::debug!("Skipping Const body"); + return true; + } + } + if let Some(body) = syntax + .parent() + .and_then(Static::cast) + .and_then(|x| x.body()) + { + if body.syntax() == syntax { + tracing::debug!("Skipping Static body"); + return true; + } + } + } self.semantics.is_some_and(|sema| { item.attrs().any(|attr| { attr.as_simple_call().is_some_and(|(name, tokens)| { From f05bed685dded2eb72f31c20fc049fcdb455d42c Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Thu, 15 May 2025 18:49:15 +0200 Subject: [PATCH 547/656] Rust: remove module data from Crate elements --- rust/extractor/src/crate_graph.rs | 1540 +---------------- rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 4 - rust/ql/.generated.list | 8 +- rust/ql/lib/codeql/rust/elements/Crate.qll | 1 - .../elements/internal/generated/Crate.qll | 13 - .../rust/elements/internal/generated/Raw.qll | 5 - rust/ql/lib/rust.dbscheme | 6 - rust/schema/prelude.py | 1 - 9 files changed, 13 insertions(+), 1567 deletions(-) diff --git a/rust/extractor/src/crate_graph.rs b/rust/extractor/src/crate_graph.rs index 8122248aba3..87f8e4e17b4 100644 --- a/rust/extractor/src/crate_graph.rs +++ b/rust/extractor/src/crate_graph.rs @@ -1,46 +1,15 @@ -use crate::{ - generated::{self}, - trap::{self, TrapFile}, -}; -use chalk_ir::FloatTy; -use chalk_ir::IntTy; -use chalk_ir::Scalar; -use chalk_ir::UintTy; +use crate::{generated, trap}; + use itertools::Itertools; use ra_ap_base_db::{Crate, RootQueryDb}; use ra_ap_cfg::CfgAtom; -use ra_ap_hir::{DefMap, ModuleDefId, PathKind, db::HirDatabase}; -use ra_ap_hir::{VariantId, Visibility, db::DefDatabase}; -use ra_ap_hir_def::GenericDefId; -use ra_ap_hir_def::Lookup; -use ra_ap_hir_def::{ - AssocItemId, ConstParamId, LocalModuleId, TypeOrConstParamId, - data::adt::VariantData, - generics::{GenericParams, TypeOrConstParamData}, - item_scope::ImportOrGlob, - item_tree::ImportKind, - nameres::ModuleData, - path::ImportAlias, -}; -use ra_ap_hir_def::{HasModule, visibility::VisibilityExplicitness}; -use ra_ap_hir_def::{ModuleId, resolver::HasResolver}; -use ra_ap_hir_ty::GenericArg; -use ra_ap_hir_ty::ProjectionTyExt; -use ra_ap_hir_ty::TraitRefExt; -use ra_ap_hir_ty::Ty; -use ra_ap_hir_ty::TyExt; -use ra_ap_hir_ty::TyLoweringContext; -use ra_ap_hir_ty::WhereClause; -use ra_ap_hir_ty::from_assoc_type_id; -use ra_ap_hir_ty::{Binders, FnPointer}; -use ra_ap_hir_ty::{Interner, ProjectionTy}; use ra_ap_ide_db::RootDatabase; use ra_ap_vfs::{Vfs, VfsPath}; +use std::hash::Hash; use std::hash::Hasher; use std::{cmp::Ordering, collections::HashMap, path::PathBuf}; -use std::{hash::Hash, vec}; -use tracing::{debug, error}; +use tracing::error; pub fn extract_crate_graph(trap_provider: &trap::TrapFileProvider, db: &RootDatabase, vfs: &Vfs) { let crate_graph = db.all_crates(); @@ -89,16 +58,6 @@ pub fn extract_crate_graph(trap_provider: &trap::TrapFileProvider, db: &RootData continue; } let krate = krate_id.data(db); - let root_module = emit_module( - db, - db.crate_def_map(*krate_id).as_ref(), - "crate", - DefMap::ROOT, - &mut trap, - ); - let file_label = trap.emit_file(root_module_file); - trap.emit_file_only_location(file_label, root_module); - let crate_dependencies: Vec = krate .dependencies .iter() @@ -118,7 +77,6 @@ pub fn extract_crate_graph(trap_provider: &trap::TrapFileProvider, db: &RootData .as_ref() .map(|x| x.canonical_name().to_string()), version: krate_extra.version.to_owned(), - module: Some(root_module), cfg_options: krate_id .cfg_options(db) .into_iter() @@ -129,7 +87,10 @@ pub fn extract_crate_graph(trap_provider: &trap::TrapFileProvider, db: &RootData .map(|dep| trap.emit(dep)) .collect(), }; - trap.emit(element); + let label = trap.emit(element); + let file_label = trap.emit_file(root_module_file); + trap.emit_file_only_location(file_label, label); + trap.commit().unwrap_or_else(|err| { error!( "Failed to write trap file for crate: {}: {}", @@ -141,1491 +102,6 @@ pub fn extract_crate_graph(trap_provider: &trap::TrapFileProvider, db: &RootData } } -fn emit_module( - db: &dyn HirDatabase, - map: &DefMap, - name: &str, - module: LocalModuleId, - trap: &mut TrapFile, -) -> trap::Label { - let module = &map.modules[module]; - let mut items = Vec::new(); - items.extend(emit_module_children(db, map, module, trap)); - items.extend(emit_module_items(db, module, trap)); - items.extend(emit_module_impls(db, module, trap)); - - let name = trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name.to_owned()), - }); - let item_list = trap.emit(generated::ItemList { - id: trap::TrapId::Star, - attrs: vec![], - items, - }); - let visibility = emit_visibility(db, trap, module.visibility); - trap.emit(generated::Module { - id: trap::TrapId::Star, - name: Some(name), - attrs: vec![], - item_list: Some(item_list), - visibility, - }) -} - -fn emit_module_children( - db: &dyn HirDatabase, - map: &DefMap, - module: &ModuleData, - trap: &mut TrapFile, -) -> Vec> { - module - .children - .iter() - .sorted_by(|a, b| Ord::cmp(&a.0, &b.0)) - .map(|(name, child)| emit_module(db, map, name.as_str(), *child, trap).into()) - .collect() -} - -fn emit_reexport( - db: &dyn HirDatabase, - trap: &mut TrapFile, - uses: &mut HashMap>, - import: ImportOrGlob, - name: &str, -) { - let (use_, idx) = match import { - ImportOrGlob::Glob(import) => (import.use_, import.idx), - ImportOrGlob::Import(import) => (import.use_, import.idx), - }; - let def_db = db.upcast(); - let loc = use_.lookup(def_db); - let use_ = &loc.id.item_tree(def_db)[loc.id.value]; - - use_.use_tree.expand(|id, path, kind, alias| { - if id == idx { - let mut path_components = Vec::new(); - match path.kind { - PathKind::Plain => (), - PathKind::Super(0) => path_components.push("self".to_owned()), - PathKind::Super(n) => { - path_components.extend(std::iter::repeat_n("super".to_owned(), n.into())); - } - PathKind::Crate => path_components.push("crate".to_owned()), - PathKind::Abs => path_components.push("".to_owned()), - PathKind::DollarCrate(crate_id) => { - let crate_extra = crate_id.extra_data(db); - let crate_name = crate_extra - .display_name - .as_ref() - .map(|x| x.canonical_name().to_string()); - path_components.push(crate_name.unwrap_or("crate".to_owned())); - } - } - path_components.extend(path.segments().iter().map(|x| x.as_str().to_owned())); - match kind { - ImportKind::Plain => (), - ImportKind::Glob => path_components.push(name.to_owned()), - ImportKind::TypeOnly => path_components.push("self".to_owned()), - }; - - let alias = alias.map(|alias| match alias { - ImportAlias::Underscore => "_".to_owned(), - ImportAlias::Alias(name) => name.as_str().to_owned(), - }); - let key = format!( - "{} as {}", - path_components.join("::"), - alias.as_ref().unwrap_or(&"".to_owned()) - ); - // prevent duplicate imports - if uses.contains_key(&key) { - return; - } - let rename = alias.map(|name| { - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name), - })); - trap.emit(generated::Rename { - id: trap::TrapId::Star, - name, - }) - }); - let path = make_qualified_path(trap, path_components, None); - let use_tree = trap.emit(generated::UseTree { - id: trap::TrapId::Star, - is_glob: false, - path, - rename, - use_tree_list: None, - }); - let visibility = emit_visibility(db, trap, Visibility::Public); - uses.insert( - key, - trap.emit(generated::Use { - id: trap::TrapId::Star, - attrs: vec![], - use_tree: Some(use_tree), - visibility, - }) - .into(), - ); - } - }); -} - -fn emit_module_items( - db: &dyn HirDatabase, - module: &ModuleData, - trap: &mut TrapFile, -) -> Vec> { - let mut items: Vec> = Vec::new(); - let mut uses = HashMap::new(); - let item_scope = &module.scope; - for (name, item) in item_scope.entries() { - let def = item.filter_visibility(|x| matches!(x, ra_ap_hir::Visibility::Public)); - if let Some(ra_ap_hir_def::per_ns::Item { - def: _, - vis: _, - import: Some(import), - }) = def.values - { - emit_reexport(db, trap, &mut uses, import, name.as_str()); - } - if let Some(ra_ap_hir_def::per_ns::Item { - def: value, - vis, - import: None, - }) = def.values - { - match value { - ModuleDefId::FunctionId(function) => { - items.push(emit_function(db, trap, None, function, name).into()); - } - ModuleDefId::ConstId(konst) => { - items.extend( - emit_const(db, trap, None, name.as_str(), konst, vis) - .map(Into::>::into), - ); - } - ModuleDefId::StaticId(statik) => { - items.extend(emit_static(db, name.as_str(), trap, statik, vis)); - } - // Enum variants can only be introduced into the value namespace by an import (`use`) statement - ModuleDefId::EnumVariantId(_) => (), - // Not in the "value" namespace - ModuleDefId::ModuleId(_) - | ModuleDefId::AdtId(_) - | ModuleDefId::TraitId(_) - | ModuleDefId::TraitAliasId(_) - | ModuleDefId::TypeAliasId(_) - | ModuleDefId::BuiltinType(_) - | ModuleDefId::MacroId(_) => (), - } - } - if let Some(ra_ap_hir_def::per_ns::Item { - def: _, - vis: _, - import: Some(import), - }) = def.types - { - // TODO: handle ExternCrate as well? - if let Some(import) = import.import_or_glob() { - emit_reexport(db, trap, &mut uses, import, name.as_str()); - } - } - if let Some(ra_ap_hir_def::per_ns::Item { - def: type_id, - vis, - import: None, - }) = def.types - { - match type_id { - ModuleDefId::AdtId(adt_id) => { - items.extend(emit_adt(db, name.as_str(), trap, adt_id, vis)); - } - ModuleDefId::TraitId(trait_id) => { - items.extend(emit_trait(db, name.as_str(), trap, trait_id, vis)); - } - ModuleDefId::TypeAliasId(type_alias_id_) => items.extend( - emit_type_alias(db, trap, None, name.as_str(), type_alias_id_, vis) - .map(Into::>::into), - ), - ModuleDefId::TraitAliasId(_) => (), - ModuleDefId::BuiltinType(_) => (), - // modules are handled separatedly - ModuleDefId::ModuleId(_) => (), - // Enum variants cannot be declarted, only imported - ModuleDefId::EnumVariantId(_) => (), - // Not in the "types" namespace - ModuleDefId::FunctionId(_) - | ModuleDefId::ConstId(_) - | ModuleDefId::StaticId(_) - | ModuleDefId::MacroId(_) => (), - } - } - } - items.extend(uses.values()); - items -} - -fn emit_function( - db: &dyn HirDatabase, - trap: &mut TrapFile, - container: Option, - function: ra_ap_hir_def::FunctionId, - name: &ra_ap_hir::Name, -) -> trap::Label { - let sig = db.callable_item_signature(function.into()); - let parameters = collect_generic_parameters(db, function.into(), container); - - assert_eq!(sig.binders.len(Interner), parameters.len()); - let sig = sig.skip_binders(); - let ty_vars = &[parameters]; - let function_data = db.function_data(function); - let mut self_param = None; - let params = sig - .params() - .iter() - .enumerate() - .filter_map(|(idx, p)| { - let type_repr = emit_hir_ty(trap, db, ty_vars, p); - - if idx == 0 && function_data.has_self_param() { - // Check if the self parameter is a reference - let (is_ref, is_mut) = match p.kind(Interner) { - chalk_ir::TyKind::Ref(mutability, _, _) => { - (true, matches!(mutability, chalk_ir::Mutability::Mut)) - } - chalk_ir::TyKind::Raw(mutability, _) => { - (false, matches!(mutability, chalk_ir::Mutability::Mut)) - } - _ => (false, false), - }; - - self_param = Some(trap.emit(generated::SelfParam { - id: trap::TrapId::Star, - attrs: vec![], - type_repr, - is_ref, - is_mut, - lifetime: None, - name: None, - })); - None - } else { - Some(trap.emit(generated::Param { - id: trap::TrapId::Star, - attrs: vec![], - type_repr, - pat: None, - })) - } - }) - .collect(); - - let ret_type = emit_hir_ty(trap, db, ty_vars, sig.ret()); - - let param_list = trap.emit(generated::ParamList { - id: trap::TrapId::Star, - params, - self_param, - }); - let ret_type = ret_type.map(|ret_type| { - trap.emit(generated::RetTypeRepr { - id: trap::TrapId::Star, - type_repr: Some(ret_type), - }) - }); - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name.as_str().to_owned()), - })); - let data = db.function_data(function); - let visibility = emit_visibility( - db, - trap, - data.visibility - .resolve(db.upcast(), &function.resolver(db.upcast())), - ); - let generic_param_list = emit_generic_param_list(trap, db, ty_vars, function.into()); - trap.emit(generated::Function { - id: trap::TrapId::Star, - name, - attrs: vec![], - body: None, - is_const: data.is_const(), - is_default: data.is_default(), - visibility, - abi: None, - is_async: data.is_async(), - is_gen: false, - is_unsafe: data.is_unsafe(), - generic_param_list, - param_list: Some(param_list), - ret_type, - where_clause: None, - }) -} - -fn collect_generic_parameters( - db: &dyn HirDatabase, - def: GenericDefId, - container: Option, -) -> Vec { - let mut parameters = Vec::new(); - let gen_params = db.generic_params(def); - collect(&gen_params, &mut parameters); - if let Some(gen_params) = container.map(|container| db.generic_params(container)) { - collect(gen_params.as_ref(), &mut parameters); - } - return parameters; - - fn collect(gen_params: &GenericParams, parameters: &mut Vec) { - // Self, Lifetimes, TypesOrConsts - let skip = if gen_params.trait_self_param().is_some() { - parameters.push("Self".into()); - 1 - } else { - 0 - }; - parameters.extend(gen_params.iter_lt().map(|(_, lt)| lt.name.as_str().into())); - parameters.extend(gen_params.iter_type_or_consts().skip(skip).map(|(_, p)| { - p.name() - .map(|p| p.as_str().into()) - .unwrap_or("{error}".into()) - })); - } -} - -fn emit_const( - db: &dyn HirDatabase, - trap: &mut TrapFile, - container: Option, - name: &str, - konst: ra_ap_hir_def::ConstId, - visibility: Visibility, -) -> Option> { - let type_ = db.value_ty(konst.into()); - let parameters = collect_generic_parameters(db, konst.into(), container); - assert_eq!( - type_ - .as_ref() - .map_or(0, |type_| type_.binders.len(Interner)), - parameters.len() - ); - let ty_vars = &[parameters]; - let type_repr = type_.and_then(|type_| emit_hir_ty(trap, db, ty_vars, type_.skip_binders())); - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name.to_owned()), - })); - let konst = db.const_data(konst); - let visibility = emit_visibility(db, trap, visibility); - Some(trap.emit(generated::Const { - id: trap::TrapId::Star, - name, - attrs: vec![], - body: None, - is_const: true, - is_default: konst.has_body(), - type_repr, - visibility, - })) -} - -fn emit_static( - db: &dyn HirDatabase, - name: &str, - trap: &mut TrapFile, - statik: ra_ap_hir_def::StaticId, - visibility: Visibility, -) -> Option> { - let type_ = db.value_ty(statik.into()); - let parameters = collect_generic_parameters(db, statik.into(), None); - assert_eq!( - type_ - .as_ref() - .map_or(0, |type_| type_.binders.len(Interner)), - parameters.len() - ); - let ty_vars = &[parameters]; - let type_repr = type_.and_then(|type_| emit_hir_ty(trap, db, ty_vars, type_.skip_binders())); - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name.to_owned()), - })); - let statik = db.static_data(statik); - let visibility = emit_visibility(db, trap, visibility); - Some( - trap.emit(generated::Static { - id: trap::TrapId::Star, - name, - attrs: vec![], - body: None, - type_repr, - visibility, - is_mut: statik.mutable(), - is_static: true, - is_unsafe: statik.has_unsafe_kw(), - }) - .into(), - ) -} - -fn emit_type_alias( - db: &dyn HirDatabase, - trap: &mut TrapFile, - container: Option, - name: &str, - alias_id: ra_ap_hir_def::TypeAliasId, - visibility: Visibility, -) -> Option> { - let (type_, _) = db.type_for_type_alias_with_diagnostics(alias_id); - let parameters = collect_generic_parameters(db, alias_id.into(), container); - assert_eq!(type_.binders.len(Interner), parameters.len()); - let ty_vars = &[parameters]; - let type_repr = emit_hir_ty(trap, db, ty_vars, type_.skip_binders()); - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name.to_owned()), - })); - let visibility = emit_visibility(db, trap, visibility); - let alias = db.type_alias_data(alias_id); - let generic_param_list = emit_generic_param_list(trap, db, ty_vars, alias_id.into()); - Some(trap.emit(generated::TypeAlias { - id: trap::TrapId::Star, - name, - attrs: vec![], - is_default: container.is_some() && alias.type_ref.is_some(), - type_repr, - visibility, - generic_param_list, - type_bound_list: None, - where_clause: None, - })) -} - -fn emit_generic_param_list( - trap: &mut TrapFile, - db: &dyn HirDatabase, - ty_vars: &[Vec], - def: GenericDefId, -) -> Option> { - let params = db.generic_params(def); - let trait_self_param = params.trait_self_param(); - if params.is_empty() || params.len() == 1 && trait_self_param.is_some() { - return None; - } - let mut generic_params = Vec::new(); - generic_params.extend(params.iter_lt().map( - |(_, param)| -> trap::Label { - let lifetime = trap - .emit(generated::Lifetime { - id: trap::TrapId::Star, - text: Some(param.name.as_str().to_owned()), - }) - .into(); - - trap.emit(generated::LifetimeParam { - id: trap::TrapId::Star, - attrs: vec![], - lifetime, - type_bound_list: None, - }) - .into() - }, - )); - generic_params.extend( - params - .iter_type_or_consts() - .filter(|(id, _)| trait_self_param != Some(*id)) - .map( - |(param_id, param)| -> trap::Label { - match param { - TypeOrConstParamData::TypeParamData(param) => { - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: param.name.as_ref().map(|name| name.as_str().to_owned()), - })); - let resolver = def.resolver(db.upcast()); - let mut ctx = TyLoweringContext::new( - db, - &resolver, - ¶ms.types_map, - def.into(), - ); - - let default_type = param - .default - .and_then(|ty| emit_hir_ty(trap, db, ty_vars, &ctx.lower_ty(ty))); - trap.emit(generated::TypeParam { - id: trap::TrapId::Star, - attrs: vec![], - name, - default_type, - type_bound_list: None, - }) - .into() - } - TypeOrConstParamData::ConstParamData(param) => { - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: param.name.as_str().to_owned().into(), - })); - let param_id = TypeOrConstParamId { - parent: def, - local_id: param_id, - }; - let ty = db.const_param_ty(ConstParamId::from_unchecked(param_id)); - let type_repr = emit_hir_ty(trap, db, ty_vars, &ty); - trap.emit(generated::ConstParam { - id: trap::TrapId::Star, - attrs: vec![], - name, - default_val: None, - is_const: true, - type_repr, - }) - .into() - } - } - }, - ), - ); - trap.emit(generated::GenericParamList { - id: trap::TrapId::Star, - generic_params, - }) - .into() -} -fn emit_adt( - db: &dyn HirDatabase, - name: &str, - trap: &mut TrapFile, - adt_id: ra_ap_hir_def::AdtId, - visibility: Visibility, -) -> Option> { - let parameters = collect_generic_parameters(db, adt_id.into(), None); - let ty_vars = &[parameters]; - - match adt_id { - ra_ap_hir_def::AdtId::StructId(struct_id) => { - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name.to_owned()), - })); - let field_list = emit_variant_data(trap, db, ty_vars, struct_id.into()).into(); - let visibility = emit_visibility(db, trap, visibility); - let generic_param_list = emit_generic_param_list(trap, db, ty_vars, adt_id.into()); - Some( - trap.emit(generated::Struct { - id: trap::TrapId::Star, - name, - attrs: vec![], - field_list, - generic_param_list, - visibility, - where_clause: None, - }) - .into(), - ) - } - ra_ap_hir_def::AdtId::EnumId(enum_id) => { - let data = db.enum_variants(enum_id); - let variants = data - .variants - .iter() - .map(|(enum_id, name)| { - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name.as_str().to_owned()), - })); - let field_list = emit_variant_data(trap, db, ty_vars, (*enum_id).into()).into(); - let visibility = None; - trap.emit(generated::Variant { - id: trap::TrapId::Star, - name, - field_list, - attrs: vec![], - discriminant: None, - visibility, - }) - }) - .collect(); - let variant_list = Some(trap.emit(generated::VariantList { - id: trap::TrapId::Star, - variants, - })); - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name.to_owned()), - })); - let visibility = emit_visibility(db, trap, visibility); - let generic_param_list = emit_generic_param_list(trap, db, ty_vars, adt_id.into()); - Some( - trap.emit(generated::Enum { - id: trap::TrapId::Star, - name, - attrs: vec![], - generic_param_list, - variant_list, - visibility, - where_clause: None, - }) - .into(), - ) - } - ra_ap_hir_def::AdtId::UnionId(union_id) => { - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name.to_owned()), - })); - let struct_field_list = emit_variant_data(trap, db, ty_vars, union_id.into()).into(); - let visibility = emit_visibility(db, trap, visibility); - let generic_param_list = emit_generic_param_list(trap, db, ty_vars, adt_id.into()); - Some( - trap.emit(generated::Union { - id: trap::TrapId::Star, - name, - attrs: vec![], - struct_field_list, - generic_param_list, - visibility, - where_clause: None, - }) - .into(), - ) - } - } -} - -fn emit_trait( - db: &dyn HirDatabase, - name: &str, - trap: &mut TrapFile, - trait_id: ra_ap_hir_def::TraitId, - visibility: Visibility, -) -> Option> { - let parameters = collect_generic_parameters(db, trait_id.into(), None); - let ty_vars = &[parameters]; - let trait_items = db.trait_items(trait_id); - let assoc_items: Vec> = trait_items - .items - .iter() - .flat_map(|(name, item)| match item { - AssocItemId::FunctionId(function_id) => { - Some(emit_function(db, trap, Some(trait_id.into()), *function_id, name).into()) - } - - AssocItemId::ConstId(const_id) => emit_const( - db, - trap, - Some(trait_id.into()), - name.as_str(), - *const_id, - visibility, - ) - .map(Into::into), - AssocItemId::TypeAliasId(type_alias_id) => emit_type_alias( - db, - trap, - Some(trait_id.into()), - name.as_str(), - *type_alias_id, - visibility, - ) - .map(Into::into), - }) - .collect(); - let assoc_item_list = Some(trap.emit(generated::AssocItemList { - id: trap::TrapId::Star, - assoc_items, - attrs: vec![], - })); - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(name.to_owned()), - })); - let visibility = emit_visibility(db, trap, visibility); - let generic_param_list = emit_generic_param_list(trap, db, ty_vars, trait_id.into()); - Some( - trap.emit(generated::Trait { - id: trap::TrapId::Star, - name, - assoc_item_list, - attrs: vec![], - generic_param_list, - is_auto: false, - is_unsafe: false, - type_bound_list: None, - visibility, - where_clause: None, - }) - .into(), - ) -} - -fn emit_module_impls( - db: &dyn HirDatabase, - module: &ModuleData, - trap: &mut TrapFile, -) -> Vec> { - let mut items = Vec::new(); - module.scope.impls().for_each(|imp| { - let self_ty = db.impl_self_ty(imp); - let parameters = collect_generic_parameters(db, imp.into(), None); - let parameters_len = parameters.len(); - assert_eq!(self_ty.binders.len(Interner), parameters_len); - - let ty_vars = &[parameters]; - let self_ty = emit_hir_ty(trap, db, ty_vars, self_ty.skip_binders()); - let path = db.impl_trait(imp).map(|trait_ref| { - assert_eq!(trait_ref.binders.len(Interner), parameters_len); - trait_path(db, trap, ty_vars, trait_ref.skip_binders()) - }); - let trait_ = path.map(|path| { - trap.emit(generated::PathTypeRepr { - id: trap::TrapId::Star, - path, - }) - .into() - }); - let imp_items = db.impl_items(imp); - let assoc_items = imp_items - .items - .iter() - .flat_map(|item| { - if let (name, AssocItemId::FunctionId(function)) = item { - Some(emit_function(db, trap, Some(imp.into()), *function, name).into()) - } else { - None - } - }) - .collect(); - let assoc_item_list = Some(trap.emit(generated::AssocItemList { - id: trap::TrapId::Star, - assoc_items, - attrs: vec![], - })); - let generic_param_list = emit_generic_param_list(trap, db, ty_vars, imp.into()); - items.push( - trap.emit(generated::Impl { - id: trap::TrapId::Star, - trait_, - self_ty, - assoc_item_list, - attrs: vec![], - generic_param_list, - is_const: false, - is_default: false, - is_unsafe: false, - visibility: None, - where_clause: None, - }) - .into(), - ); - }); - items -} - -fn emit_visibility( - db: &dyn HirDatabase, - trap: &mut TrapFile, - visibility: Visibility, -) -> Option> { - let path = match visibility { - Visibility::Module(module_id, VisibilityExplicitness::Explicit) => { - Some(make_path_mod(db.upcast(), module_id)) - } - Visibility::Public => Some(vec![]), - Visibility::Module(_, VisibilityExplicitness::Implicit) => None, - }; - path.map(|path| { - let path = make_qualified_path(trap, path, None); - trap.emit(generated::Visibility { - id: trap::TrapId::Star, - path, - }) - }) -} -fn push_ty_vars(ty_vars: &[Vec], vars: Vec) -> Vec> { - let mut result = ty_vars.to_vec(); - result.push(vars); - result -} -fn emit_hir_type_bound( - db: &dyn HirDatabase, - trap: &mut TrapFile, - ty_vars: &[Vec], - type_bound: &Binders>, -) -> Option> { - // Rust-analyzer seems to call `wrap_empty_binders` on `WhereClause`s. - let parameters = vec![]; - assert_eq!(type_bound.binders.len(Interner), parameters.len(),); - let ty_vars = &push_ty_vars(ty_vars, parameters); - - match type_bound.skip_binders() { - WhereClause::Implemented(trait_ref) => { - let path = trait_path(db, trap, ty_vars, trait_ref); - let type_repr = Some( - trap.emit(generated::PathTypeRepr { - id: trap::TrapId::Star, - path, - }) - .into(), - ); - Some(trap.emit(generated::TypeBound { - id: trap::TrapId::Star, - is_async: false, - is_const: false, - lifetime: None, - type_repr, - use_bound_generic_args: None, - })) - } - WhereClause::AliasEq(_) - | WhereClause::LifetimeOutlives(_) - | WhereClause::TypeOutlives(_) => None, // TODO - } -} - -fn trait_path( - db: &dyn HirDatabase, - trap: &mut TrapFile, - ty_vars: &[Vec], - trait_ref: &chalk_ir::TraitRef, -) -> Option> { - let mut path = make_path(db, trait_ref.hir_trait_id()); - path.push( - db.trait_data(trait_ref.hir_trait_id()) - .name - .as_str() - .to_owned(), - ); - let generic_arg_list = emit_generic_arg_list( - trap, - db, - ty_vars, - &trait_ref.substitution.as_slice(Interner)[1..], - ); - - make_qualified_path(trap, path, generic_arg_list) -} - -fn emit_hir_fn_ptr( - trap: &mut TrapFile, - db: &dyn HirDatabase, - ty_vars: &[Vec], - function: &FnPointer, -) -> trap::Label { - // Currently rust-analyzer does not handle `for<'a'> fn()` correctly: - // ```rust - // TyKind::Function(FnPointer { - // num_binders: 0, // FIXME lower `for<'a> fn()` correctly - // ``` - // https://github.com/rust-lang/rust-analyzer/blob/c5882732e6e6e09ac75cddd13545e95860be1c42/crates/hir-ty/src/lower.rs#L325 - let parameters = vec![]; - assert_eq!(function.num_binders, parameters.len(),); - let ty_vars = &push_ty_vars(ty_vars, parameters); - - let parameters: Vec<_> = function.substitution.0.type_parameters(Interner).collect(); - - let (ret_type, params) = parameters.split_last().unwrap(); - - let ret_type = emit_hir_ty(trap, db, ty_vars, ret_type); - let ret_type = Some(trap.emit(generated::RetTypeRepr { - id: trap::TrapId::Star, - type_repr: ret_type, - })); - let params = params - .iter() - .map(|t| { - let type_repr = emit_hir_ty(trap, db, ty_vars, t); - trap.emit(generated::Param { - id: trap::TrapId::Star, - attrs: vec![], - type_repr, - pat: None, - }) - }) - .collect(); - let param_list = Some(trap.emit(generated::ParamList { - id: trap::TrapId::Star, - params, - self_param: None, - })); - let is_unsafe = matches!(function.sig.safety, ra_ap_hir::Safety::Unsafe); - trap.emit(generated::FnPtrTypeRepr { - id: trap::TrapId::Star, - abi: None, - is_async: false, - is_const: false, - is_unsafe, - ret_type, - param_list, - }) -} - -fn scalar_to_str(scalar: &Scalar) -> &'static str { - match scalar { - Scalar::Bool => "bool", - Scalar::Char => "char", - Scalar::Int(IntTy::I8) => "i8", - Scalar::Int(IntTy::I16) => "i16", - Scalar::Int(IntTy::I32) => "i32", - Scalar::Int(IntTy::I64) => "i64", - Scalar::Int(IntTy::I128) => "i128", - Scalar::Int(IntTy::Isize) => "isize", - Scalar::Uint(UintTy::U8) => "u8", - Scalar::Uint(UintTy::U16) => "u16", - Scalar::Uint(UintTy::U32) => "u32", - Scalar::Uint(UintTy::U64) => "u64", - Scalar::Uint(UintTy::U128) => "u128", - Scalar::Uint(UintTy::Usize) => "usize", - Scalar::Float(FloatTy::F16) => "f16", - Scalar::Float(FloatTy::F32) => "f32", - Scalar::Float(FloatTy::F64) => "f64", - Scalar::Float(FloatTy::F128) => "f128", - } -} - -fn make_path(db: &dyn HirDatabase, item: impl HasModule) -> Vec { - let db = db.upcast(); - let module = item.module(db); - make_path_mod(db, module) -} - -fn make_path_mod(db: &dyn DefDatabase, module: ModuleId) -> Vec { - let mut path = Vec::new(); - let mut module = module; - loop { - if module.is_block_module() { - path.push("".to_owned()); - } else if let Some(name) = module.name(db).map(|x| x.as_str().to_owned()).or_else(|| { - module.as_crate_root().and_then(|k| { - let krate = k.krate().extra_data(db); - krate - .display_name - .as_ref() - .map(|x| x.canonical_name().to_string()) - }) - }) { - path.push(name); - } else { - path.push("".to_owned()); - } - if let Some(parent) = module.containing_module(db) { - module = parent; - } else { - break; - } - } - path.reverse(); - path -} - -fn make_qualified_path( - trap: &mut TrapFile, - path: Vec, - generic_arg_list: Option>, -) -> Option> { - fn qualified_path( - trap: &mut TrapFile, - qualifier: Option>, - name: String, - generic_arg_list: Option>, - ) -> trap::Label { - let identifier = Some(trap.emit(generated::NameRef { - id: trap::TrapId::Star, - text: Some(name), - })); - let segment = Some(trap.emit(generated::PathSegment { - id: trap::TrapId::Star, - generic_arg_list, - identifier, - parenthesized_arg_list: None, - ret_type: None, - return_type_syntax: None, - })); - trap.emit(generated::Path { - id: trap::TrapId::Star, - qualifier, - segment, - }) - } - let args = std::iter::repeat_n(None, &path.len() - 1).chain(std::iter::once(generic_arg_list)); - path.into_iter() - .zip(args) - .fold(None, |q, (p, a)| Some(qualified_path(trap, q, p, a))) -} -fn emit_hir_ty( - trap: &mut TrapFile, - db: &dyn HirDatabase, - ty_vars: &[Vec], - ty: &Ty, -) -> Option> { - match ty.kind(ra_ap_hir_ty::Interner) { - chalk_ir::TyKind::Never => Some( - trap.emit(generated::NeverTypeRepr { - id: trap::TrapId::Star, - }) - .into(), - ), - - chalk_ir::TyKind::Placeholder(_index) => Some( - trap.emit(generated::InferTypeRepr { - id: trap::TrapId::Star, - }) - .into(), - ), - - chalk_ir::TyKind::Tuple(_size, substitution) => { - let fields = substitution.type_parameters(ra_ap_hir_ty::Interner); - let fields = fields - .flat_map(|field| emit_hir_ty(trap, db, ty_vars, &field)) - .collect(); - - Some( - trap.emit(generated::TupleTypeRepr { - id: trap::TrapId::Star, - fields, - }) - .into(), - ) - } - chalk_ir::TyKind::Raw(mutability, ty) => { - let type_repr = emit_hir_ty(trap, db, ty_vars, ty); - - Some( - trap.emit(generated::PtrTypeRepr { - id: trap::TrapId::Star, - is_mut: matches!(mutability, chalk_ir::Mutability::Mut), - is_const: false, - type_repr, - }) - .into(), - ) - } - chalk_ir::TyKind::Ref(mutability, lifetime, ty) => { - let type_repr = emit_hir_ty(trap, db, ty_vars, ty); - let lifetime = emit_lifetime(trap, ty_vars, lifetime); - Some( - trap.emit(generated::RefTypeRepr { - id: trap::TrapId::Star, - is_mut: matches!(mutability, chalk_ir::Mutability::Mut), - lifetime: Some(lifetime), - type_repr, - }) - .into(), - ) - } - chalk_ir::TyKind::Array(ty, _konst) => { - let element_type_repr = emit_hir_ty(trap, db, ty_vars, ty); - // TODO: handle array size constant - Some( - trap.emit(generated::ArrayTypeRepr { - id: trap::TrapId::Star, - const_arg: None, - element_type_repr, - }) - .into(), - ) - } - chalk_ir::TyKind::Slice(ty) => { - let type_repr = emit_hir_ty(trap, db, ty_vars, ty); - Some( - trap.emit(generated::SliceTypeRepr { - id: trap::TrapId::Star, - type_repr, - }) - .into(), - ) - } - - chalk_ir::TyKind::Adt(adt_id, substitution) => { - let mut path = make_path(db, adt_id.0); - let name = match adt_id.0 { - ra_ap_hir_def::AdtId::StructId(struct_id) => { - db.struct_data(struct_id).name.as_str().to_owned() - } - ra_ap_hir_def::AdtId::UnionId(union_id) => { - db.union_data(union_id).name.as_str().to_owned() - } - ra_ap_hir_def::AdtId::EnumId(enum_id) => { - db.enum_data(enum_id).name.as_str().to_owned() - } - }; - path.push(name); - let generic_arg_list = - emit_generic_arg_list(trap, db, ty_vars, substitution.as_slice(Interner)); - let path = make_qualified_path(trap, path, generic_arg_list); - Some( - trap.emit(generated::PathTypeRepr { - id: trap::TrapId::Star, - path, - }) - .into(), - ) - } - chalk_ir::TyKind::Scalar(scalar) => { - let path = make_qualified_path(trap, vec![scalar_to_str(scalar).to_owned()], None); - Some( - trap.emit(generated::PathTypeRepr { - id: trap::TrapId::Star, - path, - }) - .into(), - ) - } - chalk_ir::TyKind::Str => { - let path = make_qualified_path(trap, vec!["str".to_owned()], None); - Some( - trap.emit(generated::PathTypeRepr { - id: trap::TrapId::Star, - path, - }) - .into(), - ) - } - chalk_ir::TyKind::Function(fn_pointer) => { - Some(emit_hir_fn_ptr(trap, db, ty_vars, fn_pointer).into()) - } - chalk_ir::TyKind::OpaqueType(_, _) - | chalk_ir::TyKind::Alias(chalk_ir::AliasTy::Opaque(_)) => { - let bounds = ty - .impl_trait_bounds(db) - .iter() - .flatten() - .flat_map(|t| emit_hir_type_bound(db, trap, ty_vars, t)) - .collect(); - let type_bound_list = Some(trap.emit(generated::TypeBoundList { - id: trap::TrapId::Star, - bounds, - })); - Some( - trap.emit(generated::ImplTraitTypeRepr { - id: trap::TrapId::Star, - type_bound_list, - }) - .into(), - ) - } - chalk_ir::TyKind::Dyn(dyn_ty) => { - let parameters = vec!["Self".to_owned()]; - assert_eq!(dyn_ty.bounds.binders.len(Interner), parameters.len(),); - let ty_vars = &push_ty_vars(ty_vars, parameters); - - let bounds = dyn_ty - .bounds - .skip_binders() - .iter(ra_ap_hir_ty::Interner) - .flat_map(|t| emit_hir_type_bound(db, trap, ty_vars, t)) - .collect(); - let type_bound_list = Some(trap.emit(generated::TypeBoundList { - id: trap::TrapId::Star, - bounds, - })); - Some( - trap.emit(generated::DynTraitTypeRepr { - id: trap::TrapId::Star, - type_bound_list, - }) - .into(), - ) - } - chalk_ir::TyKind::FnDef(fn_def_id, parameters) => { - let sig = ra_ap_hir_ty::CallableSig::from_def(db, *fn_def_id, parameters); - Some(emit_hir_fn_ptr(trap, db, ty_vars, &sig.to_fn_ptr()).into()) - } - - chalk_ir::TyKind::Alias(chalk_ir::AliasTy::Projection(ProjectionTy { - associated_ty_id, - substitution, - })) - | chalk_ir::TyKind::AssociatedType(associated_ty_id, substitution) => { - let pt = ProjectionTy { - associated_ty_id: *associated_ty_id, - substitution: substitution.clone(), - }; - - // >::Name<...> - - let qualifier = trap.emit(generated::PathSegment { - id: trap::TrapId::Star, - generic_arg_list: None, - identifier: None, - parenthesized_arg_list: None, - ret_type: None, - return_type_syntax: None, - }); - let self_ty = pt.self_type_parameter(db); - let self_ty = emit_hir_ty(trap, db, ty_vars, &self_ty); - if let Some(self_ty) = self_ty { - generated::PathSegment::emit_type_repr(qualifier, self_ty, &mut trap.writer) - } - let trait_ref = pt.trait_ref(db); - let trait_ref = trait_path(db, trap, ty_vars, &trait_ref); - let trait_ref = trait_ref.map(|path| { - trap.emit(generated::PathTypeRepr { - id: trap::TrapId::Star, - path: Some(path), - }) - }); - if let Some(trait_ref) = trait_ref { - generated::PathSegment::emit_trait_type_repr(qualifier, trait_ref, &mut trap.writer) - } - let data = db.type_alias_data(from_assoc_type_id(*associated_ty_id)); - - let identifier = Some(trap.emit(generated::NameRef { - id: trap::TrapId::Star, - text: Some(data.name.as_str().to_owned()), - })); - let segment = trap.emit(generated::PathSegment { - id: trap::TrapId::Star, - generic_arg_list: None, - identifier, - parenthesized_arg_list: None, - ret_type: None, - return_type_syntax: None, - }); - let qualifier = trap.emit(generated::Path { - id: trap::TrapId::Star, - qualifier: None, - segment: Some(qualifier), - }); - let path = trap.emit(generated::Path { - id: trap::TrapId::Star, - qualifier: Some(qualifier), - segment: Some(segment), - }); - Some( - trap.emit(generated::PathTypeRepr { - id: trap::TrapId::Star, - path: Some(path), - }) - .into(), - ) - } - chalk_ir::TyKind::BoundVar(var) => { - let var_ = ty_vars - .get(ty_vars.len() - 1 - var.debruijn.depth() as usize) - .and_then(|ty_vars| ty_vars.get(var.index)); - let path = make_qualified_path( - trap, - vec![ - var_.unwrap_or(&format!("E_{}_{}", var.debruijn.depth(), var.index)) - .clone(), - ], - None, - ); - Some( - trap.emit(generated::PathTypeRepr { - id: trap::TrapId::Star, - path, - }) - .into(), - ) - } - chalk_ir::TyKind::Foreign(_) - | chalk_ir::TyKind::Closure(_, _) - | chalk_ir::TyKind::Coroutine(_, _) - | chalk_ir::TyKind::CoroutineWitness(_, _) - | chalk_ir::TyKind::InferenceVar(_, _) - | chalk_ir::TyKind::Error => { - debug!("Unexpected type {:#?}", ty.kind(ra_ap_hir_ty::Interner)); - None - } - } -} - -fn emit_generic_arg_list( - trap: &mut TrapFile, - db: &dyn HirDatabase, - ty_vars: &[Vec], - args: &[GenericArg], -) -> Option> { - if args.is_empty() { - return None; - } - let generic_args = args - .iter() - .flat_map(|arg| { - if let Some(ty) = arg.ty(Interner) { - let type_repr = emit_hir_ty(trap, db, ty_vars, ty); - Some( - trap.emit(generated::TypeArg { - id: trap::TrapId::Star, - type_repr, - }) - .into(), - ) - } else if let Some(l) = arg.lifetime(Interner) { - let lifetime = emit_lifetime(trap, ty_vars, l); - Some( - trap.emit(generated::LifetimeArg { - id: trap::TrapId::Star, - lifetime: Some(lifetime), - }) - .into(), - ) - } else if arg.constant(Interner).is_some() { - Some( - trap.emit(generated::ConstArg { - id: trap::TrapId::Star, - expr: None, - }) - .into(), - ) - } else { - None - } - }) - .collect(); - - trap.emit(generated::GenericArgList { - id: trap::TrapId::Star, - generic_args, - }) - .into() -} - -fn emit_lifetime( - trap: &mut TrapFile, - ty_vars: &[Vec], - l: &chalk_ir::Lifetime, -) -> trap::Label { - let text = match l.data(Interner) { - chalk_ir::LifetimeData::BoundVar(var) => { - let var_ = ty_vars - .get(ty_vars.len() - 1 - var.debruijn.depth() as usize) - .and_then(|ty_vars| ty_vars.get(var.index)); - - Some(var_.map(|v| v.to_string()).unwrap_or(format!( - "'E_{}_{}", - var.debruijn.depth(), - var.index - ))) - } - chalk_ir::LifetimeData::Static => "'static'".to_owned().into(), - chalk_ir::LifetimeData::InferenceVar(_) - | chalk_ir::LifetimeData::Placeholder(_) - | chalk_ir::LifetimeData::Erased - | chalk_ir::LifetimeData::Phantom(_, _) - | chalk_ir::LifetimeData::Error => None, - }; - trap.emit(generated::Lifetime { - id: trap::TrapId::Star, - text, - }) -} - -enum Variant { - Unit, - Record(trap::Label), - Tuple(trap::Label), -} - -impl From for Option> { - fn from(val: Variant) -> Self { - match val { - Variant::Record(label) => Some(label), - Variant::Unit | Variant::Tuple(_) => None, - } - } -} - -impl From for Option> { - fn from(val: Variant) -> Self { - match val { - Variant::Record(label) => Some(label.into()), - Variant::Tuple(label) => Some(label.into()), - Variant::Unit => None, - } - } -} - -fn emit_variant_data( - trap: &mut TrapFile, - db: &dyn HirDatabase, - ty_vars: &[Vec], - variant_id: VariantId, -) -> Variant { - let parameters_len = ty_vars.last().map_or(0, Vec::len); - let variant = variant_id.variant_data(db.upcast()); - match variant.as_ref() { - VariantData::Record { - fields: field_data, - types_map: _, - } => { - let field_types = db.field_types(variant_id); - let fields = field_types - .iter() - .map(|(field_id, ty)| { - let name = Some(trap.emit(generated::Name { - id: trap::TrapId::Star, - text: Some(field_data[field_id].name.as_str().to_owned()), - })); - assert_eq!(ty.binders.len(Interner), parameters_len); - let type_repr = emit_hir_ty(trap, db, ty_vars, ty.skip_binders()); - let visibility = emit_visibility( - db, - trap, - field_data[field_id] - .visibility - .resolve(db.upcast(), &variant_id.resolver(db.upcast())), - ); - trap.emit(generated::StructField { - id: trap::TrapId::Star, - attrs: vec![], - is_unsafe: field_data[field_id].is_unsafe, - name, - type_repr, - visibility, - default: None, - }) - }) - .collect(); - Variant::Record(trap.emit(generated::StructFieldList { - id: trap::TrapId::Star, - fields, - })) - } - VariantData::Tuple { - fields: field_data, .. - } => { - let field_types = db.field_types(variant_id); - let fields = field_types - .iter() - .map(|(field_id, ty)| { - assert_eq!(ty.binders.len(Interner), parameters_len); - let type_repr = emit_hir_ty(trap, db, ty_vars, ty.skip_binders()); - let visibility = emit_visibility( - db, - trap, - field_data[field_id] - .visibility - .resolve(db.upcast(), &variant_id.resolver(db.upcast())), - ); - - trap.emit(generated::TupleField { - id: trap::TrapId::Star, - attrs: vec![], - type_repr, - visibility, - }) - }) - .collect(); - Variant::Tuple(trap.emit(generated::TupleFieldList { - id: trap::TrapId::Star, - fields, - })) - } - VariantData::Unit => Variant::Unit, - } -} - fn cmp_flag(a: &&CfgAtom, b: &&CfgAtom) -> Ordering { match (a, b) { (CfgAtom::Flag(a), CfgAtom::Flag(b)) => a.as_str().cmp(b.as_str()), diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index a6ed4103871..cb687e1bff0 100644 --- a/rust/extractor/src/generated/.generated.list +++ b/rust/extractor/src/generated/.generated.list @@ -1,2 +1,2 @@ mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 -top.rs 7d0c7b324631207a5f0f89649634431b6fe6f27610a31be118f0dc90c17314f7 7d0c7b324631207a5f0f89649634431b6fe6f27610a31be118f0dc90c17314f7 +top.rs 7f8a694078bc0cde1ce420544d0cf5b83bb297dd29ee4f9d7bcbb1572f0e815a 7f8a694078bc0cde1ce420544d0cf5b83bb297dd29ee4f9d7bcbb1572f0e815a diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index 7b64e755030..6cece591734 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -154,7 +154,6 @@ pub struct Crate { pub id: trap::TrapId, pub name: Option, pub version: Option, - pub module: Option>, pub cfg_options: Vec, pub named_dependencies: Vec>, } @@ -172,9 +171,6 @@ impl trap::TrapEntry for Crate { if let Some(v) = self.version { out.add_tuple("crate_versions", vec![id.into(), v.into()]); } - if let Some(v) = self.module { - out.add_tuple("crate_modules", vec![id.into(), v.into()]); - } for (i, v) in self.cfg_options.into_iter().enumerate() { out.add_tuple("crate_cfg_options", vec![id.into(), i.into(), v.into()]); } diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 051cf9f8937..e14f2fd1e46 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -43,7 +43,7 @@ lib/codeql/rust/elements/ConstArg.qll f37b34417503bbd2f3ce09b3211d8fa71f6a954970 lib/codeql/rust/elements/ConstBlockPat.qll a25f42b84dbeb33e10955735ef53b8bb7e3258522d6d1a9068f19adaf1af89d9 eeb816d2b54db77a1e7bb70e90b68d040a0cd44e9d44455a223311c3615c5e6e lib/codeql/rust/elements/ConstParam.qll 248db1e3abef6943326c42478a15f148f8cdaa25649ef5578064b15924c53351 28babba3aea28a65c3fe3b3db6cb9c86f70d7391e9d6ef9188eb2e4513072f9f lib/codeql/rust/elements/ContinueExpr.qll 9f27c5d5c819ad0ebc5bd10967ba8d33a9dc95b9aae278fcfb1fcf9216bda79c 0dc061445a6b89854fdce92aaf022fdc76b724511a50bb777496ce75c9ecb262 -lib/codeql/rust/elements/Crate.qll 37e8d0daa7bef38cee51008499ee3fd6c19800c48f23983a82b7b36bae250813 95eb88b896fe01d57627c1766daf0fe859f086aed6ca1184e1e16b10c9cdaf37 +lib/codeql/rust/elements/Crate.qll 1426960e6f36195e42ea5ea321405c1a72fccd40cd6c0a33673c321c20302d8d 1571a89f89dab43c5291b71386de7aadf52730755ba10f9d696db9ad2f760aff lib/codeql/rust/elements/DynTraitTypeRepr.qll 5953263ec1e77613170c13b5259b22a71c206a7e08841d2fa1a0b373b4014483 d4380c6cc460687dcd8598df27cad954ef4f508f1117a82460d15d295a7b64ab lib/codeql/rust/elements/Element.qll 0b62d139fef54ed2cf2e2334806aa9bfbc036c9c2085d558f15a42cc3fa84c48 24b999b93df79383ef27ede46e38da752868c88a07fe35fcff5d526684ba7294 lib/codeql/rust/elements/Enum.qll 2f122b042519d55e221fceac72fce24b30d4caf1947b25e9b68ee4a2095deb11 83a47445145e4fda8c3631db602a42dbb7a431f259eddf5c09dccd86f6abdd0e @@ -503,7 +503,7 @@ lib/codeql/rust/elements/internal/generated/ConstArg.qll e2451cac6ee464f5b64883d lib/codeql/rust/elements/internal/generated/ConstBlockPat.qll 7526d83ee9565d74776f42db58b1a2efff6fb324cfc7137f51f2206fee815d79 0ab3c22908ff790e7092e576a5df3837db33c32a7922a513a0f5e495729c1ac5 lib/codeql/rust/elements/internal/generated/ConstParam.qll 310342603959a4d521418caec45b585b97e3a5bf79368769c7150f52596a7266 a5dd92f0b24d7dbdaea2daedba3c8d5f700ec7d3ace81ca368600da2ad610082 lib/codeql/rust/elements/internal/generated/ContinueExpr.qll e2010feb14fb6edeb83a991d9357e50edb770172ddfde2e8670b0d3e68169f28 48d09d661e1443002f6d22b8710e22c9c36d9daa9cde09c6366a61e960d717cb -lib/codeql/rust/elements/internal/generated/Crate.qll d245f24e9da4f180c526a6d092f554a9577bae7225c81c36a391947c0865eeb3 c95dbb32b2ce4d9664be56c95b19fcd01c2d3244385e55151f9b06b07f04ce9b +lib/codeql/rust/elements/internal/generated/Crate.qll 37f3760d7c0c1c3ca809d07daf7215a8eae6053eda05e88ed7db6e07f4db0781 649a3d7cd7ee99f95f8a4d3d3c41ea2fa848ce7d8415ccbac62977dfc9a49d35 lib/codeql/rust/elements/internal/generated/DynTraitTypeRepr.qll a9d540717af1f00dbea1c683fd6b846cddfb2968c7f3e021863276f123337787 1972efb9bca7aae9a9708ca6dcf398e5e8c6d2416a07d525dba1649b80fbe4d1 lib/codeql/rust/elements/internal/generated/Element.qll d56d22c060fa929464f837b1e16475a4a2a2e42d68235a014f7369bcb48431db 0e48426ca72179f675ac29aa49bbaadb8b1d27b08ad5cbc72ec5a005c291848e lib/codeql/rust/elements/internal/generated/Enum.qll 4f4cbc9cd758c20d476bc767b916c62ba434d1750067d0ffb63e0821bb95ec86 3da735d54022add50cec0217bbf8ec4cf29b47f4851ee327628bcdd6454989d0 @@ -578,7 +578,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll c808c9d84dd7800573832b lib/codeql/rust/elements/internal/generated/ParenExpr.qll bc0731505bfe88516205ec360582a4222d2681d11342c93e15258590ddee82f2 d4bd6e0c80cf1d63746c88d4bcb3a01d4c75732e5da09e3ebd9437ced227fb60 lib/codeql/rust/elements/internal/generated/ParenPat.qll 4f168ef5d5bb87a903251cc31b2e44a759b099ec69c90af31783fbb15778c940 0e34f94a45a13396fd57d94c245dc64d1adde2ab0e22b56946f7e94c04e297fc lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 40ab5c592e7699c621787793743e33988de71ff42ca27599f5ab3ddb70e3f7d8 12c0a6eed2202ee3e892f61da3b3ce77ac3190854cdf3097e8d2be98aa3cb91d -lib/codeql/rust/elements/internal/generated/ParentChild.qll 2f620064351fc0275ee1c13d1d0681ac927a2af81c13fbb3fae9ef86dd08e585 61cf70eb649f241e2fcd5e0ba34df63f3a14f07032811b9ae151721783a0fd20 +lib/codeql/rust/elements/internal/generated/ParentChild.qll e2c6aaaa1735113f160c0e178d682bff8e9ebc627632f73c0dd2d1f4f9d692a8 61cf70eb649f241e2fcd5e0ba34df63f3a14f07032811b9ae151721783a0fd20 lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll c5fa328ea60d3a3333d7c7bb3480969c1873166c7ac8ebb9d0afad7a8099d1a8 2dbbb6200d96f7db7dea4a55bdeab8d67b14d39a43e0bd54ada019f7e466f163 lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4 lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd @@ -593,7 +593,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 51d1e9e683fc79dddbff lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9 -lib/codeql/rust/elements/internal/generated/Raw.qll 96e66877688eafb2f901d2790aa3a0d3176d795732fbcd349c3f950016651fdf 855be30b38dd0886938d51219f90e8ce8c4929e23c0f6697f344d5296fbb07cc +lib/codeql/rust/elements/internal/generated/Raw.qll de98fe8481864e23e1cd67d926ffd2e8bb8a83ed48901263122068f9c29ab372 3bd67fe283aaf24b94a2e3fd8f6e73ae34f61a097817900925d1cdcd3b745ecc lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 3d8c0bd296d33b91a81633f697a43269a6538df06d277262d3990d3f6880ef57 13680f39e89bcd8299c218aba396f3deec804597e6f7cb7d4a7e7c748b6faa77 diff --git a/rust/ql/lib/codeql/rust/elements/Crate.qll b/rust/ql/lib/codeql/rust/elements/Crate.qll index a092591a470..9bcbcba3b63 100644 --- a/rust/ql/lib/codeql/rust/elements/Crate.qll +++ b/rust/ql/lib/codeql/rust/elements/Crate.qll @@ -5,7 +5,6 @@ private import internal.CrateImpl import codeql.rust.elements.Locatable -import codeql.rust.elements.Module import codeql.rust.elements.internal.NamedCrate final class Crate = Impl::Crate; diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Crate.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Crate.qll index f3eac4f7766..644b23f1a1e 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Crate.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Crate.qll @@ -7,7 +7,6 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.LocatableImpl::Impl as LocatableImpl -import codeql.rust.elements.Module import codeql.rust.elements.internal.NamedCrate /** @@ -42,18 +41,6 @@ module Generated { */ final predicate hasVersion() { exists(this.getVersion()) } - /** - * Gets the module of this crate, if it exists. - */ - Module getModule() { - result = Synth::convertModuleFromRaw(Synth::convertCrateToRaw(this).(Raw::Crate).getModule()) - } - - /** - * Holds if `getModule()` exists. - */ - final predicate hasModule() { exists(this.getModule()) } - /** * Gets the `index`th cfg option of this crate (0-based). */ diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index d06c69e1ce8..d50a13ad7a8 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -86,11 +86,6 @@ module Raw { */ string getVersion() { crate_versions(this, result) } - /** - * Gets the module of this crate, if it exists. - */ - Module getModule() { crate_modules(this, result) } - /** * Gets the `index`th cfg option of this crate (0-based). */ diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index 2df29df1bf8..a1005655e9e 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -238,12 +238,6 @@ crate_versions( string version: string ref ); -#keyset[id] -crate_modules( - int id: @crate ref, - int module: @module ref -); - #keyset[id, index] crate_cfg_options( int id: @crate ref, diff --git a/rust/schema/prelude.py b/rust/schema/prelude.py index 5fc4aba2e1a..6d356567d22 100644 --- a/rust/schema/prelude.py +++ b/rust/schema/prelude.py @@ -116,7 +116,6 @@ class ExtractorStep(Element): class Crate(Locatable): name: optional[string] version: optional[string] - module: optional["Module"] cfg_options: list[string] named_dependencies: list["NamedCrate"] | ql.internal From 980cebeef8dac18bf4e3c1a49226c0db8324947b Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 16 May 2025 12:35:20 +0200 Subject: [PATCH 548/656] Rust: fix QL code after removing Crate::getModule() --- .../rust/elements/internal/CrateImpl.qll | 4 +-- .../codeql/rust/internal/AstConsistency.qll | 5 +--- .../codeql/rust/internal/PathResolution.qll | 25 +++++-------------- rust/ql/src/queries/summary/Stats.qll | 3 +-- rust/ql/test/TestUtils.qll | 2 +- 5 files changed, 10 insertions(+), 29 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/CrateImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CrateImpl.qll index d8321fce4bf..0e0337f20aa 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CrateImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CrateImpl.qll @@ -60,13 +60,11 @@ module Impl { Crate getADependency() { result = this.getDependency(_) } /** Gets the source file that defines this crate, if any. */ - SourceFile getSourceFile() { result.getFile() = this.getModule().getFile() } + SourceFile getSourceFile() { result.getFile() = this.getLocation().getFile() } /** * Gets a source file that belongs to this crate, if any. */ SourceFile getASourceFile() { result = this.(CrateItemNode).getASourceFile() } - - override Location getLocation() { result = this.getModule().getLocation() } } } diff --git a/rust/ql/lib/codeql/rust/internal/AstConsistency.qll b/rust/ql/lib/codeql/rust/internal/AstConsistency.qll index d812bfd2ef7..43adfc351f7 100644 --- a/rust/ql/lib/codeql/rust/internal/AstConsistency.qll +++ b/rust/ql/lib/codeql/rust/internal/AstConsistency.qll @@ -24,10 +24,7 @@ query predicate multipleLocations(Locatable e) { strictcount(e.getLocation()) > /** * Holds if `e` does not have a `Location`. */ -query predicate noLocation(Locatable e) { - not exists(e.getLocation()) and - not e.(AstNode).getParentNode*() = any(Crate c).getModule() -} +query predicate noLocation(Locatable e) { not exists(e.getLocation()) } private predicate multiplePrimaryQlClasses(Element e) { strictcount(string cls | cls = e.getAPrimaryQlClass() and cls != "VariableAccess") > 1 diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index 6be07a62f7f..bdf13aeb4b6 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -286,11 +286,7 @@ abstract private class ModuleLikeNode extends ItemNode { * Holds if this is a root module, meaning either a source file or * the entry module of a crate. */ - predicate isRoot() { - this instanceof SourceFileItemNode - or - this = any(Crate c).getModule() - } + predicate isRoot() { this instanceof SourceFileItemNode } } private class SourceFileItemNode extends ModuleLikeNode, SourceFile { @@ -322,12 +318,7 @@ class CrateItemNode extends ItemNode instanceof Crate { * or a module, when the crate is defined in a dependency. */ pragma[nomagic] - ModuleLikeNode getModuleNode() { - result = super.getSourceFile() - or - not exists(super.getSourceFile()) and - result = super.getModule() - } + ModuleLikeNode getModuleNode() { result = super.getSourceFile() } /** * Gets a source file that belongs to this crate, if any. @@ -351,11 +342,7 @@ class CrateItemNode extends ItemNode instanceof Crate { /** * Gets a root module node belonging to this crate. */ - ModuleLikeNode getARootModuleNode() { - result = this.getASourceFile() - or - result = super.getModule() - } + ModuleLikeNode getARootModuleNode() { result = this.getASourceFile() } pragma[nomagic] predicate isPotentialDollarCrateTarget() { @@ -1104,7 +1091,7 @@ private predicate crateDependencyEdge(ModuleLikeNode m, string name, CrateItemNo or // paths inside the crate graph use the name of the crate itself as prefix, // although that is not valid in Rust - dep = any(Crate c | name = c.getName() and m = c.getModule()) + dep = any(Crate c | name = c.getName() and m = c.getSourceFile()) } private predicate useTreeDeclares(UseTree tree, string name) { @@ -1448,10 +1435,10 @@ private predicate useImportEdge(Use use, string name, ItemNode item) { * [1]: https://doc.rust-lang.org/core/prelude/index.html */ private predicate preludeEdge(SourceFile f, string name, ItemNode i) { - exists(Crate core, ModuleItemNode mod, ModuleItemNode prelude, ModuleItemNode rust | + exists(Crate core, ModuleLikeNode mod, ModuleItemNode prelude, ModuleItemNode rust | f = any(Crate c0 | core = c0.getDependency(_)).getASourceFile() and core.getName() = "core" and - mod = core.getModule() and + mod = core.getSourceFile() and prelude = mod.getASuccessorRec("prelude") and rust = prelude.getASuccessorRec(["rust_2015", "rust_2018", "rust_2021", "rust_2024"]) and i = rust.getASuccessorRec(name) and diff --git a/rust/ql/src/queries/summary/Stats.qll b/rust/ql/src/queries/summary/Stats.qll index 8ce0126e4fd..6e9f08b17c6 100644 --- a/rust/ql/src/queries/summary/Stats.qll +++ b/rust/ql/src/queries/summary/Stats.qll @@ -91,8 +91,7 @@ int getQuerySinksCount() { result = count(QuerySink s) } class CrateElement extends Element { CrateElement() { this instanceof Crate or - this instanceof NamedCrate or - this.(AstNode).getParentNode*() = any(Crate c).getModule() + this instanceof NamedCrate } } diff --git a/rust/ql/test/TestUtils.qll b/rust/ql/test/TestUtils.qll index dc75d109a33..f5b1f846657 100644 --- a/rust/ql/test/TestUtils.qll +++ b/rust/ql/test/TestUtils.qll @@ -6,7 +6,7 @@ class CrateElement extends Element { CrateElement() { this instanceof Crate or this instanceof NamedCrate or - any(Crate c).getModule() = this.(AstNode).getParentNode*() + any(Crate c).getSourceFile() = this.(AstNode).getParentNode*() } } From 0bb0a70fb752c2fd7bf1ea692a738040ff4c4ec4 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 16 May 2025 17:39:30 +0200 Subject: [PATCH 549/656] Rust: add upgrade/downgrade scripts --- .../old.dbscheme | 3606 ++++++++++++++++ .../rust.dbscheme | 3612 +++++++++++++++++ .../upgrade.properties | 2 + .../old.dbscheme | 3612 +++++++++++++++++ .../rust.dbscheme | 3606 ++++++++++++++++ .../upgrade.properties | 4 + 6 files changed, 14442 insertions(+) create mode 100644 rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/old.dbscheme create mode 100644 rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/rust.dbscheme create mode 100644 rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/upgrade.properties create mode 100644 rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/old.dbscheme create mode 100644 rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/rust.dbscheme create mode 100644 rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/upgrade.properties diff --git a/rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/old.dbscheme b/rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/old.dbscheme new file mode 100644 index 00000000000..a1005655e9e --- /dev/null +++ b/rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/old.dbscheme @@ -0,0 +1,3606 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/rust.dbscheme b/rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/rust.dbscheme new file mode 100644 index 00000000000..2df29df1bf8 --- /dev/null +++ b/rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/rust.dbscheme @@ -0,0 +1,3612 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id] +crate_modules( + int id: @crate ref, + int module: @module ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/upgrade.properties b/rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/upgrade.properties new file mode 100644 index 00000000000..e9796d4cba8 --- /dev/null +++ b/rust/downgrades/a1005655e9efc9f67d3aa2b7a3128f6b80d405a9/upgrade.properties @@ -0,0 +1,2 @@ +description: Remove 'module' from Crate +compatibility: breaking diff --git a/rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/old.dbscheme b/rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/old.dbscheme new file mode 100644 index 00000000000..2df29df1bf8 --- /dev/null +++ b/rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/old.dbscheme @@ -0,0 +1,3612 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id] +crate_modules( + int id: @crate ref, + int module: @module ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/rust.dbscheme b/rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/rust.dbscheme new file mode 100644 index 00000000000..a1005655e9e --- /dev/null +++ b/rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/rust.dbscheme @@ -0,0 +1,3606 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location_default ref +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_segment +| @rename +| @resolvable +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_def +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +@variant_def = + @struct +| @union +| @variant +; + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +@call_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +@path_expr_base = + @path_expr +; + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +path_pats( + unique int id: @path_pat +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/upgrade.properties b/rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/upgrade.properties new file mode 100644 index 00000000000..deb8bcdb944 --- /dev/null +++ b/rust/ql/lib/upgrades/2df29df1bf8f8ba77919fd0873007e8322654f67/upgrade.properties @@ -0,0 +1,4 @@ +description: Remove 'module' from Crate +compatibility: partial + +crate_modules.rel: delete From 8996f9e61c2fb0db3454940a5a66d5b3f64e00ff Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 19 May 2025 14:14:57 +0200 Subject: [PATCH 550/656] Rust: Follow-up work to make path resolution and type inference tests pass again --- .../rust/elements/internal/AstNodeImpl.qll | 19 ++++- .../rust/elements/internal/LocatableImpl.qll | 2 +- .../rust/elements/internal/LocationImpl.qll | 73 +++++++++++++++++-- .../rust/elements/internal/MacroCallImpl.qll | 16 ++++ .../codeql/rust/frameworks/stdlib/Stdlib.qll | 1 + .../codeql/rust/internal/PathResolution.qll | 63 +++++----------- .../codeql/rust/internal/TypeInference.qll | 2 +- .../PathResolutionInlineExpectationsTest.qll | 5 +- rust/ql/test/TestUtils.qll | 14 +++- .../test/library-tests/path-resolution/my.rs | 10 +-- .../path-resolution/path-resolution.expected | 10 +-- .../path-resolution/path-resolution.ql | 4 +- .../type-inference/type-inference.expected | 68 +++++++++-------- .../type-inference/type-inference.ql | 12 ++- 14 files changed, 193 insertions(+), 106 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll index f75294f3d10..b80da6d7084 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll @@ -15,6 +15,7 @@ module Impl { private import rust private import codeql.rust.elements.internal.generated.ParentChild private import codeql.rust.controlflow.ControlFlowGraph + private import codeql.rust.elements.internal.MacroCallImpl::Impl as MacroCallImpl /** * Gets the immediate parent of a non-`AstNode` element `e`. @@ -59,10 +60,20 @@ module Impl { } /** Holds if this node is inside a macro expansion. */ - predicate isInMacroExpansion() { - this = any(MacroCall mc).getMacroCallExpansion() - or - this.getParentNode().isInMacroExpansion() + predicate isInMacroExpansion() { MacroCallImpl::isInMacroExpansion(_, this) } + + /** + * Holds if this node exists only as the result of a macro expansion. + * + * This is the same as `isInMacroExpansion()`, but excludes AST nodes corresponding + * to macro arguments. + */ + pragma[nomagic] + predicate isFromMacroExpansion() { + exists(MacroCall mc | + MacroCallImpl::isInMacroExpansion(mc, this) and + not this = mc.getATokenTreeNode() + ) } /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/LocatableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/LocatableImpl.qll index ed349df4868..fcb5289e049 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/LocatableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/LocatableImpl.qll @@ -43,7 +43,7 @@ module Impl { File getFile() { result = this.getLocation().getFile() } /** Holds if this element is from source code. */ - predicate fromSource() { exists(this.getFile().getRelativePath()) } + predicate fromSource() { this.getFile().fromSource() } } private @location_default getDbLocation(Locatable l) { diff --git a/rust/ql/lib/codeql/rust/elements/internal/LocationImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/LocationImpl.qll index 52daf46863b..65cc6b3bd7c 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/LocationImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/LocationImpl.qll @@ -77,13 +77,76 @@ module LocationImpl { ) } - /** Holds if this location starts strictly before the specified location. */ + /** Holds if this location starts before location `that`. */ pragma[inline] - predicate strictlyBefore(Location other) { - this.getStartLine() < other.getStartLine() - or - this.getStartLine() = other.getStartLine() and this.getStartColumn() < other.getStartColumn() + predicate startsBefore(Location that) { + exists(string f, int sl1, int sc1, int sl2, int sc2 | + this.hasLocationInfo(f, sl1, sc1, _, _) and + that.hasLocationInfo(f, sl2, sc2, _, _) + | + sl1 < sl2 + or + sl1 = sl2 and sc1 <= sc2 + ) } + + /** Holds if this location starts strictly before location `that`. */ + pragma[inline] + predicate startsStrictlyBefore(Location that) { + exists(string f, int sl1, int sc1, int sl2, int sc2 | + this.hasLocationInfo(f, sl1, sc1, _, _) and + that.hasLocationInfo(f, sl2, sc2, _, _) + | + sl1 < sl2 + or + sl1 = sl2 and sc1 < sc2 + ) + } + + /** Holds if this location ends after location `that`. */ + pragma[inline] + predicate endsAfter(Location that) { + exists(string f, int el1, int ec1, int el2, int ec2 | + this.hasLocationInfo(f, _, _, el1, ec1) and + that.hasLocationInfo(f, _, _, el2, ec2) + | + el1 > el2 + or + el1 = el2 and ec1 >= ec2 + ) + } + + /** Holds if this location ends strictly after location `that`. */ + pragma[inline] + predicate endsStrictlyAfter(Location that) { + exists(string f, int el1, int ec1, int el2, int ec2 | + this.hasLocationInfo(f, _, _, el1, ec1) and + that.hasLocationInfo(f, _, _, el2, ec2) + | + el1 > el2 + or + el1 = el2 and ec1 > ec2 + ) + } + + /** + * Holds if this location contains location `that`, meaning that it starts + * before and ends after it. + */ + pragma[inline] + predicate contains(Location that) { this.startsBefore(that) and this.endsAfter(that) } + + /** + * Holds if this location strictlycontains location `that`, meaning that it starts + * strictly before and ends strictly after it. + */ + pragma[inline] + predicate strictlyContains(Location that) { + this.startsStrictlyBefore(that) and this.endsStrictlyAfter(that) + } + + /** Holds if this location is from source code. */ + predicate fromSource() { this.getFile().fromSource() } } class LocationDefault extends Location, TLocationDefault { diff --git a/rust/ql/lib/codeql/rust/elements/internal/MacroCallImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/MacroCallImpl.qll index c28d08f540b..f8f96315fd4 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/MacroCallImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/MacroCallImpl.qll @@ -11,6 +11,15 @@ private import codeql.rust.elements.internal.generated.MacroCall * be referenced directly. */ module Impl { + private import rust + + pragma[nomagic] + predicate isInMacroExpansion(MacroCall mc, AstNode n) { + n = mc.getMacroCallExpansion() + or + isInMacroExpansion(mc, n.getParentNode()) + } + // the following QLdoc is generated: if you need to edit it, do it in the schema file /** * A MacroCall. For example: @@ -20,5 +29,12 @@ module Impl { */ class MacroCall extends Generated::MacroCall { override string toStringImpl() { result = this.getPath().toAbbreviatedString() + "!..." } + + /** Gets an AST node whose location is inside the token tree belonging to this macro call. */ + pragma[nomagic] + AstNode getATokenTreeNode() { + isInMacroExpansion(this, result) and + this.getTokenTree().getLocation().contains(result.getLocation()) + } } } diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll index 84ee379773a..e7d9cac24e9 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll @@ -7,6 +7,7 @@ private import codeql.rust.Concepts private import codeql.rust.controlflow.ControlFlowGraph as Cfg private import codeql.rust.controlflow.CfgNodes as CfgNodes private import codeql.rust.dataflow.DataFlow +private import codeql.rust.internal.PathResolution /** * A call to the `starts_with` method on a `Path`. diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index bdf13aeb4b6..a3535b7f346 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -196,11 +196,11 @@ abstract class ItemNode extends Locatable { this = result.(ImplOrTraitItemNode).getAnItemInSelfScope() or name = "crate" and - this = result.(CrateItemNode).getARootModuleNode() + this = result.(CrateItemNode).getASourceFile() or // todo: implement properly name = "$crate" and - result = any(CrateItemNode crate | this = crate.getARootModuleNode()).(Crate).getADependency*() and + result = any(CrateItemNode crate | this = crate.getASourceFile()).(Crate).getADependency*() and result.(CrateItemNode).isPotentialDollarCrateTarget() } @@ -281,12 +281,6 @@ abstract private class ModuleLikeNode extends ItemNode { not mid instanceof ModuleLikeNode ) } - - /** - * Holds if this is a root module, meaning either a source file or - * the entry module of a crate. - */ - predicate isRoot() { this instanceof SourceFileItemNode } } private class SourceFileItemNode extends ModuleLikeNode, SourceFile { @@ -312,16 +306,13 @@ private class SourceFileItemNode extends ModuleLikeNode, SourceFile { class CrateItemNode extends ItemNode instanceof Crate { /** - * Gets the module node that defines this crate. - * - * This is either a source file, when the crate is defined in source code, - * or a module, when the crate is defined in a dependency. + * Gets the source file that defines this crate. */ pragma[nomagic] - ModuleLikeNode getModuleNode() { result = super.getSourceFile() } + SourceFileItemNode getSourceFile() { result = super.getSourceFile() } /** - * Gets a source file that belongs to this crate, if any. + * Gets a source file that belongs to this crate. * * This is calculated as those source files that can be reached from the entry * file of this crate using zero or more `mod` imports, without going through @@ -339,11 +330,6 @@ class CrateItemNode extends ItemNode instanceof Crate { ) } - /** - * Gets a root module node belonging to this crate. - */ - ModuleLikeNode getARootModuleNode() { result = this.getASourceFile() } - pragma[nomagic] predicate isPotentialDollarCrateTarget() { exists(string name, RelevantPath p | @@ -985,7 +971,7 @@ private predicate modImport0(Module m, string name, Folder lookup) { // sibling import lookup = parent and ( - m.getFile() = any(CrateItemNode c).getModuleNode().(SourceFileItemNode).getFile() + m.getFile() = any(CrateItemNode c).getSourceFile().getFile() or m.getFile().getBaseName() = "mod.rs" ) @@ -1073,7 +1059,7 @@ private predicate fileImportEdge(Module mod, string name, ItemNode item) { */ pragma[nomagic] private predicate crateDefEdge(CrateItemNode c, string name, ItemNode i) { - i = c.getModuleNode().getASuccessorRec(name) and + i = c.getSourceFile().getASuccessorRec(name) and not i instanceof Crate } @@ -1081,17 +1067,10 @@ private predicate crateDefEdge(CrateItemNode c, string name, ItemNode i) { * Holds if `m` depends on crate `dep` named `name`. */ private predicate crateDependencyEdge(ModuleLikeNode m, string name, CrateItemNode dep) { - exists(CrateItemNode c | dep = c.(Crate).getDependency(name) | - // entry module/entry source file - m = c.getModuleNode() - or - // entry/transitive source file + exists(CrateItemNode c | + dep = c.(Crate).getDependency(name) and m = c.getASourceFile() ) - or - // paths inside the crate graph use the name of the crate itself as prefix, - // although that is not valid in Rust - dep = any(Crate c | name = c.getName() and m = c.getSourceFile()) } private predicate useTreeDeclares(UseTree tree, string name) { @@ -1159,9 +1138,9 @@ class RelevantPath extends Path { private predicate isModule(ItemNode m) { m instanceof Module } -/** Holds if root module `root` contains the module `m`. */ -private predicate rootHasModule(ItemNode root, ItemNode m) = - doublyBoundedFastTC(hasChild/2, isRoot/1, isModule/1)(root, m) +/** Holds if source file `source` contains the module `m`. */ +private predicate rootHasModule(SourceFileItemNode source, ItemNode m) = + doublyBoundedFastTC(hasChild/2, isSourceFile/1, isModule/1)(source, m) pragma[nomagic] private ItemNode getOuterScope(ItemNode i) { @@ -1214,14 +1193,14 @@ private ItemNode getASuccessorFull(ItemNode pred, string name, Namespace ns) { ns = result.getNamespace() } -private predicate isRoot(ItemNode root) { root.(ModuleLikeNode).isRoot() } +private predicate isSourceFile(ItemNode source) { source instanceof SourceFileItemNode } private predicate hasCratePath(ItemNode i) { any(RelevantPath path).isCratePath(_, i) } private predicate hasChild(ItemNode parent, ItemNode child) { child.getImmediateParent() = parent } -private predicate rootHasCratePathTc(ItemNode i1, ItemNode i2) = - doublyBoundedFastTC(hasChild/2, isRoot/1, hasCratePath/1)(i1, i2) +private predicate sourceFileHasCratePathTc(ItemNode i1, ItemNode i2) = + doublyBoundedFastTC(hasChild/2, isSourceFile/1, hasCratePath/1)(i1, i2) /** * Holds if the unqualified path `p` references a keyword item named `name`, and @@ -1231,10 +1210,10 @@ pragma[nomagic] private predicate keywordLookup(ItemNode encl, string name, Namespace ns, RelevantPath p) { // For `($)crate`, jump directly to the root module exists(ItemNode i | p.isCratePath(name, i) | - encl.(ModuleLikeNode).isRoot() and + encl instanceof SourceFile and encl = i or - rootHasCratePathTc(encl, i) + sourceFileHasCratePathTc(encl, i) ) or name = ["super", "self"] and @@ -1449,12 +1428,8 @@ private predicate preludeEdge(SourceFile f, string name, ItemNode i) { private import codeql.rust.frameworks.stdlib.Bultins as Builtins pragma[nomagic] -private predicate builtinEdge(ModuleLikeNode m, string name, ItemNode i) { - ( - m instanceof SourceFile - or - m = any(CrateItemNode c).getModuleNode() - ) and +private predicate builtinEdge(SourceFile source, string name, ItemNode i) { + exists(source) and exists(SourceFileItemNode builtins | builtins.getFile().getParentContainer() instanceof Builtins::BuiltinsFolder and i = builtins.getASuccessorRec(name) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index bae628b4723..5bc137252fd 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1232,7 +1232,7 @@ private module Debug { exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | result.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and filepath.matches("%/main.rs") and - startline = 28 + startline = 948 ) } diff --git a/rust/ql/lib/utils/test/PathResolutionInlineExpectationsTest.qll b/rust/ql/lib/utils/test/PathResolutionInlineExpectationsTest.qll index cd82003feac..e6cf20da84d 100644 --- a/rust/ql/lib/utils/test/PathResolutionInlineExpectationsTest.qll +++ b/rust/ql/lib/utils/test/PathResolutionInlineExpectationsTest.qll @@ -18,7 +18,8 @@ private module ResolveTest implements TestSig { private predicate commmentAt(string text, string filepath, int line) { exists(Comment c | c.getLocation().hasLocationInfo(filepath, line, _, _, _) and - c.getCommentText().trim() = text + c.getCommentText().trim() = text and + c.fromSource() ) } @@ -35,6 +36,8 @@ private module ResolveTest implements TestSig { exists(AstNode n | not n = any(Path parent).getQualifier() and location = n.getLocation() and + n.fromSource() and + not n.isFromMacroExpansion() and element = n.toString() and tag = "item" | diff --git a/rust/ql/test/TestUtils.qll b/rust/ql/test/TestUtils.qll index f5b1f846657..586989321e1 100644 --- a/rust/ql/test/TestUtils.qll +++ b/rust/ql/test/TestUtils.qll @@ -1,12 +1,20 @@ private import rust -predicate toBeTested(Element e) { not e instanceof CrateElement and not e instanceof Builtin } +predicate toBeTested(Element e) { + not e instanceof CrateElement and + not e instanceof Builtin and + ( + not e instanceof Locatable + or + e.(Locatable).fromSource() + ) and + not e.(AstNode).isFromMacroExpansion() +} class CrateElement extends Element { CrateElement() { this instanceof Crate or - this instanceof NamedCrate or - any(Crate c).getSourceFile() = this.(AstNode).getParentNode*() + this instanceof NamedCrate } } diff --git a/rust/ql/test/library-tests/path-resolution/my.rs b/rust/ql/test/library-tests/path-resolution/my.rs index 29856d613c2..3d7b150214a 100644 --- a/rust/ql/test/library-tests/path-resolution/my.rs +++ b/rust/ql/test/library-tests/path-resolution/my.rs @@ -16,13 +16,13 @@ mod my4 { } pub use my4::my5::f as nested_f; // $ item=I201 - +#[rustfmt::skip] type Result< T, // T > = ::std::result::Result< T, // $ item=T - String, ->; // my::Result + String,> // $ item=Result +; // my::Result fn int_div( x: i32, // $ item=i32 @@ -30,7 +30,7 @@ fn int_div( ) -> Result // $ item=my::Result $ item=i32 { if y == 0 { - return Err("Div by zero".to_string()); + return Err("Div by zero".to_string()); // $ item=Err } - Ok(x / y) + Ok(x / y) // $ item=Ok } diff --git a/rust/ql/test/library-tests/path-resolution/path-resolution.expected b/rust/ql/test/library-tests/path-resolution/path-resolution.expected index 264e8757d51..806b0059093 100644 --- a/rust/ql/test/library-tests/path-resolution/path-resolution.expected +++ b/rust/ql/test/library-tests/path-resolution/path-resolution.expected @@ -352,15 +352,15 @@ resolvePath | my.rs:18:9:18:16 | ...::my5 | my.rs:15:5:15:16 | mod my5 | | my.rs:18:9:18:19 | ...::f | my/my4/my5/mod.rs:1:1:3:1 | fn f | | my.rs:22:5:22:9 | std | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/std/src/lib.rs:0:0:0:0 | Crate(std@0.0.0) | -| my.rs:22:5:22:17 | ...::result | file://:0:0:0:0 | mod result | -| my.rs:22:5:25:1 | ...::Result::<...> | file://:0:0:0:0 | enum Result | +| my.rs:22:5:22:17 | ...::result | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/lib.rs:356:1:356:15 | mod result | +| my.rs:22:5:24:12 | ...::Result::<...> | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | enum Result | | my.rs:23:5:23:5 | T | my.rs:21:5:21:5 | T | | my.rs:28:8:28:10 | i32 | file:///BUILTINS/types.rs:12:1:12:15 | struct i32 | | my.rs:29:8:29:10 | i32 | file:///BUILTINS/types.rs:12:1:12:15 | struct i32 | -| my.rs:30:6:30:16 | Result::<...> | my.rs:20:1:25:2 | type Result<...> | +| my.rs:30:6:30:16 | Result::<...> | my.rs:18:34:25:1 | type Result<...> | | my.rs:30:13:30:15 | i32 | file:///BUILTINS/types.rs:12:1:12:15 | struct i32 | -| my.rs:33:16:33:18 | Err | file://:0:0:0:0 | Err | -| my.rs:35:5:35:6 | Ok | file://:0:0:0:0 | Ok | +| my.rs:33:16:33:18 | Err | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:534:5:537:56 | Err | +| my.rs:35:5:35:6 | Ok | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:529:5:532:55 | Ok | | my/nested.rs:9:13:9:13 | f | my/nested.rs:3:9:5:9 | fn f | | my/nested.rs:15:9:15:15 | nested2 | my/nested.rs:2:5:11:5 | mod nested2 | | my/nested.rs:15:9:15:18 | ...::f | my/nested.rs:3:9:5:9 | fn f | diff --git a/rust/ql/test/library-tests/path-resolution/path-resolution.ql b/rust/ql/test/library-tests/path-resolution/path-resolution.ql index 88ea10c0eba..d04036f7b51 100644 --- a/rust/ql/test/library-tests/path-resolution/path-resolution.ql +++ b/rust/ql/test/library-tests/path-resolution/path-resolution.ql @@ -21,5 +21,7 @@ class ItemNodeLoc extends ItemNodeFinal { } query predicate resolvePath(Path p, ItemNodeLoc i) { - toBeTested(p) and not p.isInMacroExpansion() and i = resolvePath(p) + toBeTested(p) and + not p.isFromMacroExpansion() and + i = resolvePath(p) } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index b8b52cf4b50..7e8559672ed 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -494,10 +494,12 @@ inferType | main.rs:377:26:377:29 | SelfParam | | main.rs:366:5:367:14 | S1 | | main.rs:377:38:379:9 | { ... } | | main.rs:366:5:367:14 | S1 | | main.rs:378:20:378:31 | "not called" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:378:20:378:31 | MacroExpr | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:549:1:584:1 | Arguments | | main.rs:382:28:382:31 | SelfParam | | main.rs:366:5:367:14 | S1 | | main.rs:382:34:382:35 | s1 | | main.rs:366:5:367:14 | S1 | | main.rs:382:48:384:9 | { ... } | | main.rs:366:5:367:14 | S1 | | main.rs:383:20:383:31 | "not called" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:383:20:383:31 | MacroExpr | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:549:1:584:1 | Arguments | | main.rs:389:26:389:29 | SelfParam | | main.rs:366:5:367:14 | S1 | | main.rs:389:38:391:9 | { ... } | | main.rs:366:5:367:14 | S1 | | main.rs:390:13:390:16 | self | | main.rs:366:5:367:14 | S1 | @@ -1002,8 +1004,10 @@ inferType | main.rs:884:19:884:22 | self | Snd | main.rs:882:15:882:17 | Snd | | main.rs:885:43:885:82 | MacroExpr | | main.rs:882:15:882:17 | Snd | | main.rs:885:50:885:81 | "PairNone has no second elemen... | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:885:50:885:81 | MacroExpr | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:549:1:584:1 | Arguments | | main.rs:886:43:886:81 | MacroExpr | | main.rs:882:15:882:17 | Snd | | main.rs:886:50:886:80 | "PairFst has no second element... | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:886:50:886:80 | MacroExpr | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:549:1:584:1 | Arguments | | main.rs:887:37:887:39 | snd | | main.rs:882:15:882:17 | Snd | | main.rs:887:45:887:47 | snd | | main.rs:882:15:882:17 | Snd | | main.rs:888:41:888:43 | snd | | main.rs:882:15:882:17 | Snd | @@ -1468,96 +1472,96 @@ inferType | main.rs:1150:15:1150:16 | &x | | file://:0:0:0:0 | & | | main.rs:1150:15:1150:16 | &x | &T | main.rs:1126:5:1126:13 | S | | main.rs:1150:16:1150:16 | x | | main.rs:1126:5:1126:13 | S | -| main.rs:1164:43:1167:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1164:43:1167:5 | { ... } | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1164:43:1167:5 | { ... } | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1164:43:1167:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1165:13:1165:13 | x | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1165:17:1165:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1165:17:1165:30 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1165:17:1165:30 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1165:17:1165:31 | TryExpr | | main.rs:1157:5:1158:14 | S1 | | main.rs:1165:28:1165:29 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1166:9:1166:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1166:9:1166:22 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1166:9:1166:22 | ...::Ok(...) | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1166:9:1166:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1166:20:1166:21 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1170:46:1174:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1170:46:1174:5 | { ... } | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1170:46:1174:5 | { ... } | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1170:46:1174:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1171:13:1171:13 | x | | file://:0:0:0:0 | Result | +| main.rs:1171:13:1171:13 | x | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1171:13:1171:13 | x | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1171:17:1171:30 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1171:17:1171:30 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1171:17:1171:30 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1171:28:1171:29 | S1 | | main.rs:1157:5:1158:14 | S1 | | main.rs:1172:13:1172:13 | y | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1172:17:1172:17 | x | | file://:0:0:0:0 | Result | +| main.rs:1172:17:1172:17 | x | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1172:17:1172:17 | x | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1172:17:1172:18 | TryExpr | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1173:9:1173:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1173:9:1173:22 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1173:9:1173:22 | ...::Ok(...) | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1173:9:1173:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1173:20:1173:21 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1177:40:1182:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1177:40:1182:5 | { ... } | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1177:40:1182:5 | { ... } | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1177:40:1182:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1178:13:1178:13 | x | | file://:0:0:0:0 | Result | -| main.rs:1178:13:1178:13 | x | T | file://:0:0:0:0 | Result | +| main.rs:1178:13:1178:13 | x | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1178:13:1178:13 | x | T | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1178:13:1178:13 | x | T.T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1178:17:1178:42 | ...::Ok(...) | | file://:0:0:0:0 | Result | -| main.rs:1178:17:1178:42 | ...::Ok(...) | T | file://:0:0:0:0 | Result | +| main.rs:1178:17:1178:42 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1178:17:1178:42 | ...::Ok(...) | T | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1178:17:1178:42 | ...::Ok(...) | T.T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1178:28:1178:41 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1178:28:1178:41 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1178:28:1178:41 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1178:39:1178:40 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1180:17:1180:17 | x | | file://:0:0:0:0 | Result | -| main.rs:1180:17:1180:17 | x | T | file://:0:0:0:0 | Result | +| main.rs:1180:17:1180:17 | x | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1180:17:1180:17 | x | T | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1180:17:1180:17 | x | T.T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1180:17:1180:18 | TryExpr | | file://:0:0:0:0 | Result | +| main.rs:1180:17:1180:18 | TryExpr | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1180:17:1180:18 | TryExpr | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1180:17:1180:29 | ... .map(...) | | file://:0:0:0:0 | Result | -| main.rs:1181:9:1181:22 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1180:17:1180:29 | ... .map(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1181:9:1181:22 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1181:9:1181:22 | ...::Ok(...) | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1181:9:1181:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1181:20:1181:21 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1185:30:1185:34 | input | | file://:0:0:0:0 | Result | +| main.rs:1185:30:1185:34 | input | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1185:30:1185:34 | input | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1185:30:1185:34 | input | T | main.rs:1185:20:1185:27 | T | -| main.rs:1185:69:1192:5 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1185:69:1192:5 | { ... } | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1185:69:1192:5 | { ... } | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1185:69:1192:5 | { ... } | T | main.rs:1185:20:1185:27 | T | | main.rs:1186:13:1186:17 | value | | main.rs:1185:20:1185:27 | T | -| main.rs:1186:21:1186:25 | input | | file://:0:0:0:0 | Result | +| main.rs:1186:21:1186:25 | input | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1186:21:1186:25 | input | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1186:21:1186:25 | input | T | main.rs:1185:20:1185:27 | T | | main.rs:1186:21:1186:26 | TryExpr | | main.rs:1185:20:1185:27 | T | -| main.rs:1187:22:1187:38 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1187:22:1187:38 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1187:22:1187:38 | ...::Ok(...) | T | main.rs:1185:20:1185:27 | T | -| main.rs:1187:22:1190:10 | ... .and_then(...) | | file://:0:0:0:0 | Result | +| main.rs:1187:22:1190:10 | ... .and_then(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1187:33:1187:37 | value | | main.rs:1185:20:1185:27 | T | -| main.rs:1187:53:1190:9 | { ... } | | file://:0:0:0:0 | Result | +| main.rs:1187:53:1190:9 | { ... } | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1187:53:1190:9 | { ... } | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1188:22:1188:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1189:13:1189:34 | ...::Ok::<...>(...) | | file://:0:0:0:0 | Result | +| main.rs:1189:13:1189:34 | ...::Ok::<...>(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1189:13:1189:34 | ...::Ok::<...>(...) | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1191:9:1191:23 | ...::Err(...) | | file://:0:0:0:0 | Result | +| main.rs:1191:9:1191:23 | ...::Err(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1191:9:1191:23 | ...::Err(...) | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1191:9:1191:23 | ...::Err(...) | T | main.rs:1185:20:1185:27 | T | | main.rs:1191:21:1191:22 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1195:37:1195:52 | try_same_error(...) | | file://:0:0:0:0 | Result | +| main.rs:1195:37:1195:52 | try_same_error(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1195:37:1195:52 | try_same_error(...) | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1195:37:1195:52 | try_same_error(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1196:22:1196:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1199:37:1199:55 | try_convert_error(...) | | file://:0:0:0:0 | Result | +| main.rs:1199:37:1199:55 | try_convert_error(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1199:37:1199:55 | try_convert_error(...) | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1199:37:1199:55 | try_convert_error(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1200:22:1200:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1203:37:1203:49 | try_chained(...) | | file://:0:0:0:0 | Result | +| main.rs:1203:37:1203:49 | try_chained(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1203:37:1203:49 | try_chained(...) | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1203:37:1203:49 | try_chained(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1204:22:1204:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1207:37:1207:63 | try_complex(...) | | file://:0:0:0:0 | Result | +| main.rs:1207:37:1207:63 | try_complex(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1207:37:1207:63 | try_complex(...) | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1207:37:1207:63 | try_complex(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1207:49:1207:62 | ...::Ok(...) | | file://:0:0:0:0 | Result | +| main.rs:1207:49:1207:62 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1207:49:1207:62 | ...::Ok(...) | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1207:49:1207:62 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1207:60:1207:61 | S1 | | main.rs:1157:5:1158:14 | S1 | diff --git a/rust/ql/test/library-tests/type-inference/type-inference.ql b/rust/ql/test/library-tests/type-inference/type-inference.ql index 6801a9ca569..02c1ef6f2b0 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.ql +++ b/rust/ql/test/library-tests/type-inference/type-inference.ql @@ -18,16 +18,18 @@ class TypeLoc extends TypeFinal { query predicate inferType(AstNode n, TypePath path, TypeLoc t) { t = TypeInference::inferType(n, path) and - n.fromSource() + n.fromSource() and + not n.isFromMacroExpansion() } module ResolveTest implements TestSig { string getARelevantTag() { result = ["method", "fieldof"] } private predicate functionHasValue(Function f, string value) { - f.getAPrecedingComment().getCommentText() = value + f.getAPrecedingComment().getCommentText() = value and + f.fromSource() or - not exists(f.getAPrecedingComment()) and + not any(f.getAPrecedingComment()).fromSource() and // TODO: Default to canonical path once that is available value = f.getName().getText() } @@ -35,7 +37,9 @@ module ResolveTest implements TestSig { predicate hasActualResult(Location location, string element, string tag, string value) { exists(AstNode source, AstNode target | location = source.getLocation() and - element = source.toString() + element = source.toString() and + source.fromSource() and + not source.isFromMacroExpansion() | target = source.(MethodCallExpr).getStaticTarget() and functionHasValue(target, value) and From 1269a2e8a03167913cfcd906c29ddde857c55e1c Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 19 May 2025 13:00:46 +0200 Subject: [PATCH 551/656] Rust: fix extractor-tests --- rust/ql/test/extractor-tests/literal/literal.ql | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/rust/ql/test/extractor-tests/literal/literal.ql b/rust/ql/test/extractor-tests/literal/literal.ql index 3585ad2f5b9..21c36ab5761 100644 --- a/rust/ql/test/extractor-tests/literal/literal.ql +++ b/rust/ql/test/extractor-tests/literal/literal.ql @@ -1,13 +1,16 @@ import rust +import TestUtils -query predicate charLiteral(CharLiteralExpr e) { any() } +query predicate charLiteral(CharLiteralExpr e) { toBeTested(e) } -query predicate stringLiteral(StringLiteralExpr e) { any() } +query predicate stringLiteral(StringLiteralExpr e) { toBeTested(e) } query predicate integerLiteral(IntegerLiteralExpr e, string suffix) { - suffix = concat(e.getSuffix()) + toBeTested(e) and suffix = concat(e.getSuffix()) } -query predicate floatLiteral(FloatLiteralExpr e, string suffix) { suffix = concat(e.getSuffix()) } +query predicate floatLiteral(FloatLiteralExpr e, string suffix) { + toBeTested(e) and suffix = concat(e.getSuffix()) +} -query predicate booleanLiteral(BooleanLiteralExpr e) { any() } +query predicate booleanLiteral(BooleanLiteralExpr e) { toBeTested(e) } From 456a4b2be8cde098c7a53db3208d094a8f54da85 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 20 May 2025 11:31:36 +0200 Subject: [PATCH 552/656] Rust: Make `dataflow/modeled` pass by not using `#[derive(Clone)]` --- .../dataflow/modeled/inline-flow.expected | 130 ++++++++++-------- .../library-tests/dataflow/modeled/main.rs | 10 +- 2 files changed, 80 insertions(+), 60 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected index b7afe9dae35..ff44b6acc8a 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -29,32 +29,38 @@ edges | main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:5 | | main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | generated | | main.rs:28:13:28:21 | a.clone() | main.rs:28:9:28:9 | b | provenance | | -| main.rs:41:13:41:13 | w [Wrapper] | main.rs:42:15:42:15 | w [Wrapper] | provenance | | -| main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | main.rs:41:13:41:13 | w [Wrapper] | provenance | | -| main.rs:41:30:41:39 | source(...) | main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | provenance | | -| main.rs:42:15:42:15 | w [Wrapper] | main.rs:43:13:43:28 | Wrapper {...} [Wrapper] | provenance | | -| main.rs:42:15:42:15 | w [Wrapper] | main.rs:45:17:45:17 | w [Wrapper] | provenance | | -| main.rs:43:13:43:28 | Wrapper {...} [Wrapper] | main.rs:43:26:43:26 | n | provenance | | -| main.rs:43:26:43:26 | n | main.rs:43:38:43:38 | n | provenance | | -| main.rs:45:13:45:13 | u [Wrapper] | main.rs:46:15:46:15 | u [Wrapper] | provenance | | -| main.rs:45:17:45:17 | w [Wrapper] | main.rs:45:17:45:25 | w.clone() [Wrapper] | provenance | generated | -| main.rs:45:17:45:25 | w.clone() [Wrapper] | main.rs:45:13:45:13 | u [Wrapper] | provenance | | -| main.rs:46:15:46:15 | u [Wrapper] | main.rs:47:13:47:28 | Wrapper {...} [Wrapper] | provenance | | -| main.rs:47:13:47:28 | Wrapper {...} [Wrapper] | main.rs:47:26:47:26 | n | provenance | | -| main.rs:47:26:47:26 | n | main.rs:47:38:47:38 | n | provenance | | -| main.rs:58:13:58:13 | b [Some] | main.rs:59:23:59:23 | b [Some] | provenance | | -| main.rs:58:17:58:32 | Some(...) [Some] | main.rs:58:13:58:13 | b [Some] | provenance | | -| main.rs:58:22:58:31 | source(...) | main.rs:58:17:58:32 | Some(...) [Some] | provenance | | -| main.rs:59:13:59:13 | z [Some, tuple.1] | main.rs:60:15:60:15 | z [Some, tuple.1] | provenance | | -| main.rs:59:17:59:24 | a.zip(...) [Some, tuple.1] | main.rs:59:13:59:13 | z [Some, tuple.1] | provenance | | -| main.rs:59:23:59:23 | b [Some] | main.rs:59:17:59:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:3 | -| main.rs:60:15:60:15 | z [Some, tuple.1] | main.rs:61:13:61:24 | Some(...) [Some, tuple.1] | provenance | | -| main.rs:61:13:61:24 | Some(...) [Some, tuple.1] | main.rs:61:18:61:23 | TuplePat [tuple.1] | provenance | | -| main.rs:61:18:61:23 | TuplePat [tuple.1] | main.rs:61:22:61:22 | m | provenance | | -| main.rs:61:22:61:22 | m | main.rs:63:22:63:22 | m | provenance | | -| main.rs:84:29:84:29 | [post] y [&ref] | main.rs:85:33:85:33 | y [&ref] | provenance | | -| main.rs:84:32:84:41 | source(...) | main.rs:84:29:84:29 | [post] y [&ref] | provenance | MaD:7 | -| main.rs:85:33:85:33 | y [&ref] | main.rs:85:18:85:34 | ...::read(...) | provenance | MaD:6 | +| main.rs:43:18:43:22 | SelfParam [Wrapper] | main.rs:44:26:44:29 | self [Wrapper] | provenance | | +| main.rs:44:13:44:33 | Wrapper {...} [Wrapper] | main.rs:43:33:45:9 | { ... } [Wrapper] | provenance | | +| main.rs:44:26:44:29 | self [Wrapper] | main.rs:44:26:44:31 | self.n | provenance | | +| main.rs:44:26:44:31 | self.n | main.rs:44:13:44:33 | Wrapper {...} [Wrapper] | provenance | | +| main.rs:49:13:49:13 | w [Wrapper] | main.rs:50:15:50:15 | w [Wrapper] | provenance | | +| main.rs:49:17:49:41 | Wrapper {...} [Wrapper] | main.rs:49:13:49:13 | w [Wrapper] | provenance | | +| main.rs:49:30:49:39 | source(...) | main.rs:49:17:49:41 | Wrapper {...} [Wrapper] | provenance | | +| main.rs:50:15:50:15 | w [Wrapper] | main.rs:43:18:43:22 | SelfParam [Wrapper] | provenance | | +| main.rs:50:15:50:15 | w [Wrapper] | main.rs:51:13:51:28 | Wrapper {...} [Wrapper] | provenance | | +| main.rs:50:15:50:15 | w [Wrapper] | main.rs:53:17:53:17 | w [Wrapper] | provenance | | +| main.rs:50:15:50:15 | w [Wrapper] | main.rs:53:17:53:25 | w.clone() [Wrapper] | provenance | | +| main.rs:51:13:51:28 | Wrapper {...} [Wrapper] | main.rs:51:26:51:26 | n | provenance | | +| main.rs:51:26:51:26 | n | main.rs:51:38:51:38 | n | provenance | | +| main.rs:53:13:53:13 | u [Wrapper] | main.rs:54:15:54:15 | u [Wrapper] | provenance | | +| main.rs:53:17:53:17 | w [Wrapper] | main.rs:53:17:53:25 | w.clone() [Wrapper] | provenance | generated | +| main.rs:53:17:53:25 | w.clone() [Wrapper] | main.rs:53:13:53:13 | u [Wrapper] | provenance | | +| main.rs:54:15:54:15 | u [Wrapper] | main.rs:55:13:55:28 | Wrapper {...} [Wrapper] | provenance | | +| main.rs:55:13:55:28 | Wrapper {...} [Wrapper] | main.rs:55:26:55:26 | n | provenance | | +| main.rs:55:26:55:26 | n | main.rs:55:38:55:38 | n | provenance | | +| main.rs:66:13:66:13 | b [Some] | main.rs:67:23:67:23 | b [Some] | provenance | | +| main.rs:66:17:66:32 | Some(...) [Some] | main.rs:66:13:66:13 | b [Some] | provenance | | +| main.rs:66:22:66:31 | source(...) | main.rs:66:17:66:32 | Some(...) [Some] | provenance | | +| main.rs:67:13:67:13 | z [Some, tuple.1] | main.rs:68:15:68:15 | z [Some, tuple.1] | provenance | | +| main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | main.rs:67:13:67:13 | z [Some, tuple.1] | provenance | | +| main.rs:67:23:67:23 | b [Some] | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:3 | +| main.rs:68:15:68:15 | z [Some, tuple.1] | main.rs:69:13:69:24 | Some(...) [Some, tuple.1] | provenance | | +| main.rs:69:13:69:24 | Some(...) [Some, tuple.1] | main.rs:69:18:69:23 | TuplePat [tuple.1] | provenance | | +| main.rs:69:18:69:23 | TuplePat [tuple.1] | main.rs:69:22:69:22 | m | provenance | | +| main.rs:69:22:69:22 | m | main.rs:71:22:71:22 | m | provenance | | +| main.rs:92:29:92:29 | [post] y [&ref] | main.rs:93:33:93:33 | y [&ref] | provenance | | +| main.rs:92:32:92:41 | source(...) | main.rs:92:29:92:29 | [post] y [&ref] | provenance | MaD:7 | +| main.rs:93:33:93:33 | y [&ref] | main.rs:93:18:93:34 | ...::read(...) | provenance | MaD:6 | nodes | main.rs:12:9:12:9 | a [Some] | semmle.label | a [Some] | | main.rs:12:13:12:28 | Some(...) [Some] | semmle.label | Some(...) [Some] | @@ -79,36 +85,42 @@ nodes | main.rs:28:13:28:13 | a | semmle.label | a | | main.rs:28:13:28:21 | a.clone() | semmle.label | a.clone() | | main.rs:29:10:29:10 | b | semmle.label | b | -| main.rs:41:13:41:13 | w [Wrapper] | semmle.label | w [Wrapper] | -| main.rs:41:17:41:41 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | -| main.rs:41:30:41:39 | source(...) | semmle.label | source(...) | -| main.rs:42:15:42:15 | w [Wrapper] | semmle.label | w [Wrapper] | -| main.rs:43:13:43:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | -| main.rs:43:26:43:26 | n | semmle.label | n | -| main.rs:43:38:43:38 | n | semmle.label | n | -| main.rs:45:13:45:13 | u [Wrapper] | semmle.label | u [Wrapper] | -| main.rs:45:17:45:17 | w [Wrapper] | semmle.label | w [Wrapper] | -| main.rs:45:17:45:25 | w.clone() [Wrapper] | semmle.label | w.clone() [Wrapper] | -| main.rs:46:15:46:15 | u [Wrapper] | semmle.label | u [Wrapper] | -| main.rs:47:13:47:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | -| main.rs:47:26:47:26 | n | semmle.label | n | -| main.rs:47:38:47:38 | n | semmle.label | n | -| main.rs:58:13:58:13 | b [Some] | semmle.label | b [Some] | -| main.rs:58:17:58:32 | Some(...) [Some] | semmle.label | Some(...) [Some] | -| main.rs:58:22:58:31 | source(...) | semmle.label | source(...) | -| main.rs:59:13:59:13 | z [Some, tuple.1] | semmle.label | z [Some, tuple.1] | -| main.rs:59:17:59:24 | a.zip(...) [Some, tuple.1] | semmle.label | a.zip(...) [Some, tuple.1] | -| main.rs:59:23:59:23 | b [Some] | semmle.label | b [Some] | -| main.rs:60:15:60:15 | z [Some, tuple.1] | semmle.label | z [Some, tuple.1] | -| main.rs:61:13:61:24 | Some(...) [Some, tuple.1] | semmle.label | Some(...) [Some, tuple.1] | -| main.rs:61:18:61:23 | TuplePat [tuple.1] | semmle.label | TuplePat [tuple.1] | -| main.rs:61:22:61:22 | m | semmle.label | m | -| main.rs:63:22:63:22 | m | semmle.label | m | -| main.rs:84:29:84:29 | [post] y [&ref] | semmle.label | [post] y [&ref] | -| main.rs:84:32:84:41 | source(...) | semmle.label | source(...) | -| main.rs:85:18:85:34 | ...::read(...) | semmle.label | ...::read(...) | -| main.rs:85:33:85:33 | y [&ref] | semmle.label | y [&ref] | +| main.rs:43:18:43:22 | SelfParam [Wrapper] | semmle.label | SelfParam [Wrapper] | +| main.rs:43:33:45:9 | { ... } [Wrapper] | semmle.label | { ... } [Wrapper] | +| main.rs:44:13:44:33 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | +| main.rs:44:26:44:29 | self [Wrapper] | semmle.label | self [Wrapper] | +| main.rs:44:26:44:31 | self.n | semmle.label | self.n | +| main.rs:49:13:49:13 | w [Wrapper] | semmle.label | w [Wrapper] | +| main.rs:49:17:49:41 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | +| main.rs:49:30:49:39 | source(...) | semmle.label | source(...) | +| main.rs:50:15:50:15 | w [Wrapper] | semmle.label | w [Wrapper] | +| main.rs:51:13:51:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | +| main.rs:51:26:51:26 | n | semmle.label | n | +| main.rs:51:38:51:38 | n | semmle.label | n | +| main.rs:53:13:53:13 | u [Wrapper] | semmle.label | u [Wrapper] | +| main.rs:53:17:53:17 | w [Wrapper] | semmle.label | w [Wrapper] | +| main.rs:53:17:53:25 | w.clone() [Wrapper] | semmle.label | w.clone() [Wrapper] | +| main.rs:54:15:54:15 | u [Wrapper] | semmle.label | u [Wrapper] | +| main.rs:55:13:55:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | +| main.rs:55:26:55:26 | n | semmle.label | n | +| main.rs:55:38:55:38 | n | semmle.label | n | +| main.rs:66:13:66:13 | b [Some] | semmle.label | b [Some] | +| main.rs:66:17:66:32 | Some(...) [Some] | semmle.label | Some(...) [Some] | +| main.rs:66:22:66:31 | source(...) | semmle.label | source(...) | +| main.rs:67:13:67:13 | z [Some, tuple.1] | semmle.label | z [Some, tuple.1] | +| main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | semmle.label | a.zip(...) [Some, tuple.1] | +| main.rs:67:23:67:23 | b [Some] | semmle.label | b [Some] | +| main.rs:68:15:68:15 | z [Some, tuple.1] | semmle.label | z [Some, tuple.1] | +| main.rs:69:13:69:24 | Some(...) [Some, tuple.1] | semmle.label | Some(...) [Some, tuple.1] | +| main.rs:69:18:69:23 | TuplePat [tuple.1] | semmle.label | TuplePat [tuple.1] | +| main.rs:69:22:69:22 | m | semmle.label | m | +| main.rs:71:22:71:22 | m | semmle.label | m | +| main.rs:92:29:92:29 | [post] y [&ref] | semmle.label | [post] y [&ref] | +| main.rs:92:32:92:41 | source(...) | semmle.label | source(...) | +| main.rs:93:18:93:34 | ...::read(...) | semmle.label | ...::read(...) | +| main.rs:93:33:93:33 | y [&ref] | semmle.label | y [&ref] | subpaths +| main.rs:50:15:50:15 | w [Wrapper] | main.rs:43:18:43:22 | SelfParam [Wrapper] | main.rs:43:33:45:9 | { ... } [Wrapper] | main.rs:53:17:53:25 | w.clone() [Wrapper] | testFailures #select | main.rs:13:10:13:19 | a.unwrap() | main.rs:12:18:12:27 | source(...) | main.rs:13:10:13:19 | a.unwrap() | $@ | main.rs:12:18:12:27 | source(...) | source(...) | @@ -117,7 +129,7 @@ testFailures | main.rs:22:10:22:19 | b.unwrap() | main.rs:19:34:19:43 | source(...) | main.rs:22:10:22:19 | b.unwrap() | $@ | main.rs:19:34:19:43 | source(...) | source(...) | | main.rs:27:10:27:10 | a | main.rs:26:13:26:22 | source(...) | main.rs:27:10:27:10 | a | $@ | main.rs:26:13:26:22 | source(...) | source(...) | | main.rs:29:10:29:10 | b | main.rs:26:13:26:22 | source(...) | main.rs:29:10:29:10 | b | $@ | main.rs:26:13:26:22 | source(...) | source(...) | -| main.rs:43:38:43:38 | n | main.rs:41:30:41:39 | source(...) | main.rs:43:38:43:38 | n | $@ | main.rs:41:30:41:39 | source(...) | source(...) | -| main.rs:47:38:47:38 | n | main.rs:41:30:41:39 | source(...) | main.rs:47:38:47:38 | n | $@ | main.rs:41:30:41:39 | source(...) | source(...) | -| main.rs:63:22:63:22 | m | main.rs:58:22:58:31 | source(...) | main.rs:63:22:63:22 | m | $@ | main.rs:58:22:58:31 | source(...) | source(...) | -| main.rs:85:18:85:34 | ...::read(...) | main.rs:84:32:84:41 | source(...) | main.rs:85:18:85:34 | ...::read(...) | $@ | main.rs:84:32:84:41 | source(...) | source(...) | +| main.rs:51:38:51:38 | n | main.rs:49:30:49:39 | source(...) | main.rs:51:38:51:38 | n | $@ | main.rs:49:30:49:39 | source(...) | source(...) | +| main.rs:55:38:55:38 | n | main.rs:49:30:49:39 | source(...) | main.rs:55:38:55:38 | n | $@ | main.rs:49:30:49:39 | source(...) | source(...) | +| main.rs:71:22:71:22 | m | main.rs:66:22:66:31 | source(...) | main.rs:71:22:71:22 | m | $@ | main.rs:66:22:66:31 | source(...) | source(...) | +| main.rs:93:18:93:34 | ...::read(...) | main.rs:92:32:92:41 | source(...) | main.rs:93:18:93:34 | ...::read(...) | $@ | main.rs:92:32:92:41 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/modeled/main.rs b/rust/ql/test/library-tests/dataflow/modeled/main.rs index cb955ce32bd..3772d648795 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/main.rs +++ b/rust/ql/test/library-tests/dataflow/modeled/main.rs @@ -32,11 +32,19 @@ fn i64_clone() { mod my_clone { use super::{sink, source}; - #[derive(Clone)] + // TODO: Replace manual implementation below with `#[derive(Clone)]`, + // once the extractor expands the `#[derive]` attributes. + // #[derive(Clone)] struct Wrapper { n: i64, } + impl Clone for Wrapper { + fn clone(&self) -> Self { + Wrapper { n: self.n } + } + } + pub fn wrapper_clone() { let w = Wrapper { n: source(73) }; match w { From 44a404571f3e91056a76a234967092aad2455105 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 19 May 2025 21:30:39 +0200 Subject: [PATCH 553/656] Rust: fixes --- .../templates/extractor.mustache | 3 +- rust/extractor/src/diagnostics.rs | 17 +- rust/extractor/src/main.rs | 5 +- rust/extractor/src/translate/base.rs | 22 +- rust/extractor/src/translate/generated.rs | 462 ++++++++++++++++++ .../extractor-tests/crate_graph/modules.ql | 14 +- .../library-tests/controlflow/BasicBlocks.ql | 17 +- .../library-tests/operations/Operations.ql | 2 + rust/ql/test/library-tests/variables/Ssa.ql | 17 +- .../test/library-tests/variables/variables.ql | 27 +- 10 files changed, 545 insertions(+), 41 deletions(-) diff --git a/rust/ast-generator/templates/extractor.mustache b/rust/ast-generator/templates/extractor.mustache index c4f8dbd983d..0ce5b863f26 100644 --- a/rust/ast-generator/templates/extractor.mustache +++ b/rust/ast-generator/templates/extractor.mustache @@ -34,8 +34,9 @@ impl Translator<'_> { {{#nodes}} pub(crate) fn emit_{{snake_case_name}}(&mut self, node: &ast::{{ast_name}}) -> Option> { - {{#has_attrs}} if self.should_be_excluded(node) { return None; } + {{#has_attrs}} + if self.should_be_excluded_attrs(node) { return None; } {{/has_attrs}} {{#fields}} {{#predicate}} diff --git a/rust/extractor/src/diagnostics.rs b/rust/extractor/src/diagnostics.rs index b0201e2aed7..0db3358d558 100644 --- a/rust/extractor/src/diagnostics.rs +++ b/rust/extractor/src/diagnostics.rs @@ -1,4 +1,5 @@ use crate::config::Config; +use crate::translate::SourceKind; use anyhow::Context; use chrono::{DateTime, Utc}; use ra_ap_project_model::ProjectManifest; @@ -83,6 +84,8 @@ pub enum ExtractionStepKind { LoadSource, Parse, Extract, + ParseLibrary, + ExtractLibrary, CrateGraph, } @@ -113,18 +116,24 @@ impl ExtractionStep { ) } - pub fn parse(start: Instant, target: &Path) -> Self { + pub fn parse(start: Instant, source_kind: SourceKind, target: &Path) -> Self { Self::new( start, - ExtractionStepKind::Parse, + match source_kind { + SourceKind::Source => ExtractionStepKind::Parse, + SourceKind::Library => ExtractionStepKind::ParseLibrary, + }, Some(PathBuf::from(target)), ) } - pub fn extract(start: Instant, target: &Path) -> Self { + pub fn extract(start: Instant, source_kind: SourceKind, target: &Path) -> Self { Self::new( start, - ExtractionStepKind::Extract, + match source_kind { + SourceKind::Source => ExtractionStepKind::Extract, + SourceKind::Library => ExtractionStepKind::ExtractLibrary, + }, Some(PathBuf::from(target)), ) } diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index 38d113d02dc..b9d3ddabd54 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -63,7 +63,8 @@ impl<'a> Extractor<'a> { errors, semantics_info, } = rust_analyzer.parse(file); - self.steps.push(ExtractionStep::parse(before_parse, file)); + self.steps + .push(ExtractionStep::parse(before_parse, source_kind, file)); let before_extract = Instant::now(); let line_index = LineIndex::new(text.as_ref()); @@ -108,7 +109,7 @@ impl<'a> Extractor<'a> { ) }); self.steps - .push(ExtractionStep::extract(before_extract, file)); + .push(ExtractionStep::extract(before_extract, source_kind, file)); } pub fn extract_with_semantics( diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 43eca8480e4..b60e57cf6d3 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -93,7 +93,7 @@ pub enum ResolvePaths { Yes, No, } -#[derive(PartialEq, Eq)] +#[derive(Copy, Clone, PartialEq, Eq)] pub enum SourceKind { Source, Library, @@ -619,7 +619,17 @@ impl<'a> Translator<'a> { })(); } - pub(crate) fn should_be_excluded(&self, item: &impl ast::HasAttrs) -> bool { + pub(crate) fn should_be_excluded_attrs(&self, item: &impl ast::HasAttrs) -> bool { + self.semantics.is_some_and(|sema| { + item.attrs().any(|attr| { + attr.as_simple_call().is_some_and(|(name, tokens)| { + name == "cfg" && sema.check_cfg_attr(&tokens) == Some(false) + }) + }) + }) + } + + pub(crate) fn should_be_excluded(&self, item: &impl ast::AstNode) -> bool { if self.source_kind == SourceKind::Library { let syntax = item.syntax(); if let Some(body) = syntax.parent().and_then(Fn::cast).and_then(|x| x.body()) { @@ -645,13 +655,7 @@ impl<'a> Translator<'a> { } } } - self.semantics.is_some_and(|sema| { - item.attrs().any(|attr| { - attr.as_simple_call().is_some_and(|(name, tokens)| { - name == "cfg" && sema.check_cfg_attr(&tokens) == Some(false) - }) - }) - }) + return false; } pub(crate) fn extract_types_from_path_segment( diff --git a/rust/extractor/src/translate/generated.rs b/rust/extractor/src/translate/generated.rs index 5002f09c4d8..84159f970c9 100644 --- a/rust/extractor/src/translate/generated.rs +++ b/rust/extractor/src/translate/generated.rs @@ -242,6 +242,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_abi(&mut self, node: &ast::Abi) -> Option> { + if self.should_be_excluded(node) { + return None; + } let abi_string = node.try_get_text(); let label = self.trap.emit(generated::Abi { id: TrapId::Star, @@ -256,6 +259,9 @@ impl Translator<'_> { &mut self, node: &ast::ArgList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let args = node.args().filter_map(|x| self.emit_expr(&x)).collect(); let label = self.trap.emit(generated::ArgList { id: TrapId::Star, @@ -273,6 +279,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let exprs = node.exprs().filter_map(|x| self.emit_expr(&x)).collect(); let is_semicolon = node.semicolon_token().is_some(); @@ -291,6 +300,9 @@ impl Translator<'_> { &mut self, node: &ast::ArrayType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(&x)); let element_type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ArrayTypeRepr { @@ -307,6 +319,9 @@ impl Translator<'_> { &mut self, node: &ast::AsmClobberAbi, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let label = self .trap .emit(generated::AsmClobberAbi { id: TrapId::Star }); @@ -319,6 +334,9 @@ impl Translator<'_> { &mut self, node: &ast::AsmConst, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let expr = node.expr().and_then(|x| self.emit_expr(&x)); let is_const = node.const_token().is_some(); let label = self.trap.emit(generated::AsmConst { @@ -335,6 +353,9 @@ impl Translator<'_> { &mut self, node: &ast::AsmDirSpec, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let label = self.trap.emit(generated::AsmDirSpec { id: TrapId::Star }); self.emit_location(label, node); emit_detached!(AsmDirSpec, self, node, label); @@ -348,6 +369,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let asm_pieces = node .asm_pieces() .filter_map(|x| self.emit_asm_piece(&x)) @@ -369,6 +393,9 @@ impl Translator<'_> { &mut self, node: &ast::AsmLabel, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::AsmLabel { id: TrapId::Star, @@ -383,6 +410,9 @@ impl Translator<'_> { &mut self, node: &ast::AsmOperandExpr, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let in_expr = node.in_expr().and_then(|x| self.emit_expr(&x)); let out_expr = node.out_expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::AsmOperandExpr { @@ -399,6 +429,9 @@ impl Translator<'_> { &mut self, node: &ast::AsmOperandNamed, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let asm_operand = node.asm_operand().and_then(|x| self.emit_asm_operand(&x)); let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::AsmOperandNamed { @@ -415,6 +448,9 @@ impl Translator<'_> { &mut self, node: &ast::AsmOption, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let is_raw = node.raw_token().is_some(); let label = self.trap.emit(generated::AsmOption { id: TrapId::Star, @@ -429,6 +465,9 @@ impl Translator<'_> { &mut self, node: &ast::AsmOptions, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let asm_options = node .asm_options() .filter_map(|x| self.emit_asm_option(&x)) @@ -446,6 +485,9 @@ impl Translator<'_> { &mut self, node: &ast::AsmRegOperand, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let asm_dir_spec = node.asm_dir_spec().and_then(|x| self.emit_asm_dir_spec(&x)); let asm_operand_expr = node .asm_operand_expr() @@ -466,6 +508,9 @@ impl Translator<'_> { &mut self, node: &ast::AsmRegSpec, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); let label = self.trap.emit(generated::AsmRegSpec { id: TrapId::Star, @@ -477,6 +522,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_asm_sym(&mut self, node: &ast::AsmSym) -> Option> { + if self.should_be_excluded(node) { + return None; + } let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::AsmSym { id: TrapId::Star, @@ -494,6 +542,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let assoc_items = node .assoc_items() .filter_map(|x| self.emit_assoc_item(&x)) @@ -513,6 +564,9 @@ impl Translator<'_> { &mut self, node: &ast::AssocTypeArg, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(&x)); let generic_arg_list = node .generic_arg_list() @@ -544,6 +598,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_attr(&mut self, node: &ast::Attr) -> Option> { + if self.should_be_excluded(node) { + return None; + } let meta = node.meta().and_then(|x| self.emit_meta(&x)); let label = self.trap.emit(generated::Attr { id: TrapId::Star, @@ -561,6 +618,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::AwaitExpr { @@ -580,6 +640,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::BecomeExpr { @@ -599,6 +662,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let lhs = node.lhs().and_then(|x| self.emit_expr(&x)); let operator_name = node.try_get_text(); @@ -622,6 +688,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); @@ -649,6 +718,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_box_pat(&mut self, node: &ast::BoxPat) -> Option> { + if self.should_be_excluded(node) { + return None; + } let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::BoxPat { id: TrapId::Star, @@ -666,6 +738,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); @@ -687,6 +762,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let arg_list = node.arg_list().and_then(|x| self.emit_arg_list(&x)); let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let function = node.expr().and_then(|x| self.emit_expr(&x)); @@ -708,6 +786,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); @@ -726,6 +807,9 @@ impl Translator<'_> { &mut self, node: &ast::ClosureBinder, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let generic_param_list = node .generic_param_list() .and_then(|x| self.emit_generic_param_list(&x)); @@ -745,6 +829,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let body = node.body().and_then(|x| self.emit_expr(&x)); let closure_binder = node @@ -779,6 +866,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let body = node.body().and_then(|x| self.emit_expr(&x)); let is_const = node.const_token().is_some(); @@ -805,6 +895,9 @@ impl Translator<'_> { &mut self, node: &ast::ConstArg, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ConstArg { id: TrapId::Star, @@ -819,6 +912,9 @@ impl Translator<'_> { &mut self, node: &ast::ConstBlockPat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let is_const = node.const_token().is_some(); let label = self.trap.emit(generated::ConstBlockPat { @@ -838,6 +934,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let default_val = node.default_val().and_then(|x| self.emit_const_arg(&x)); let is_const = node.const_token().is_some(); @@ -863,6 +962,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::ContinueExpr { @@ -879,6 +981,9 @@ impl Translator<'_> { &mut self, node: &ast::DynTraitType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let type_bound_list = node .type_bound_list() .and_then(|x| self.emit_type_bound_list(&x)); @@ -895,6 +1000,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let generic_param_list = node .generic_param_list() @@ -921,6 +1029,9 @@ impl Translator<'_> { &mut self, node: &ast::ExprStmt, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ExprStmt { id: TrapId::Star, @@ -938,6 +1049,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let abi = node.abi().and_then(|x| self.emit_abi(&x)); let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let extern_item_list = node @@ -963,6 +1077,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); let rename = node.rename().and_then(|x| self.emit_rename(&x)); @@ -986,6 +1103,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let extern_items = node .extern_items() @@ -1008,6 +1128,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let container = node.expr().and_then(|x| self.emit_expr(&x)); let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); @@ -1026,6 +1149,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let abi = node.abi().and_then(|x| self.emit_abi(&x)); let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let body = node.body().and_then(|x| self.emit_block_expr(&x)); @@ -1068,6 +1194,9 @@ impl Translator<'_> { &mut self, node: &ast::FnPtrType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let abi = node.abi().and_then(|x| self.emit_abi(&x)); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); @@ -1095,6 +1224,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let iterable = node.iterable().and_then(|x| self.emit_expr(&x)); let label = node.label().and_then(|x| self.emit_label(&x)); @@ -1117,6 +1249,9 @@ impl Translator<'_> { &mut self, node: &ast::ForType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let generic_param_list = node .generic_param_list() .and_then(|x| self.emit_generic_param_list(&x)); @@ -1135,6 +1270,9 @@ impl Translator<'_> { &mut self, node: &ast::FormatArgsArg, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let expr = node.expr().and_then(|x| self.emit_expr(&x)); let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::FormatArgsArg { @@ -1154,6 +1292,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let args = node .args() .filter_map(|x| self.emit_format_args_arg(&x)) @@ -1175,6 +1316,9 @@ impl Translator<'_> { &mut self, node: &ast::GenericArgList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let generic_args = node .generic_args() .filter_map(|x| self.emit_generic_arg(&x)) @@ -1192,6 +1336,9 @@ impl Translator<'_> { &mut self, node: &ast::GenericParamList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let generic_params = node .generic_params() .filter_map(|x| self.emit_generic_param(&x)) @@ -1212,6 +1359,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let is_mut = node.mut_token().is_some(); let is_ref = node.ref_token().is_some(); @@ -1234,6 +1384,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let condition = node.condition().and_then(|x| self.emit_expr(&x)); let else_ = node.else_branch().and_then(|x| self.emit_else_branch(&x)); @@ -1254,6 +1407,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let assoc_item_list = node .assoc_item_list() .and_then(|x| self.emit_assoc_item_list(&x)); @@ -1290,6 +1446,9 @@ impl Translator<'_> { &mut self, node: &ast::ImplTraitType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let type_bound_list = node .type_bound_list() .and_then(|x| self.emit_type_bound_list(&x)); @@ -1309,6 +1468,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let base = node.base().and_then(|x| self.emit_expr(&x)); let index = node.index().and_then(|x| self.emit_expr(&x)); @@ -1327,6 +1489,9 @@ impl Translator<'_> { &mut self, node: &ast::InferType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let label = self .trap .emit(generated::InferTypeRepr { id: TrapId::Star }); @@ -1342,6 +1507,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let items = node.items().filter_map(|x| self.emit_item(&x)).collect(); let label = self.trap.emit(generated::ItemList { @@ -1355,6 +1523,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_label(&mut self, node: &ast::Label) -> Option> { + if self.should_be_excluded(node) { + return None; + } let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::Label { id: TrapId::Star, @@ -1369,6 +1540,9 @@ impl Translator<'_> { &mut self, node: &ast::LetElse, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::LetElse { id: TrapId::Star, @@ -1386,6 +1560,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let scrutinee = node.expr().and_then(|x| self.emit_expr(&x)); let pat = node.pat().and_then(|x| self.emit_pat(&x)); @@ -1407,6 +1584,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let initializer = node.initializer().and_then(|x| self.emit_expr(&x)); let let_else = node.let_else().and_then(|x| self.emit_let_else(&x)); @@ -1429,6 +1609,9 @@ impl Translator<'_> { &mut self, node: &ast::Lifetime, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let text = node.try_get_text(); let label = self.trap.emit(generated::Lifetime { id: TrapId::Star, @@ -1443,6 +1626,9 @@ impl Translator<'_> { &mut self, node: &ast::LifetimeArg, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::LifetimeArg { id: TrapId::Star, @@ -1460,6 +1646,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let type_bound_list = node @@ -1483,6 +1672,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let text_value = node.try_get_text(); let label = self.trap.emit(generated::LiteralExpr { @@ -1499,6 +1691,9 @@ impl Translator<'_> { &mut self, node: &ast::LiteralPat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let literal = node.literal().and_then(|x| self.emit_literal(&x)); let label = self.trap.emit(generated::LiteralPat { id: TrapId::Star, @@ -1516,6 +1711,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let label = node.label().and_then(|x| self.emit_label(&x)); let loop_body = node.loop_body().and_then(|x| self.emit_block_expr(&x)); @@ -1537,6 +1735,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let path = node.path().and_then(|x| self.emit_path(&x)); let token_tree = node.token_tree().and_then(|x| self.emit_token_tree(&x)); @@ -1558,6 +1759,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let args = node.args().and_then(|x| self.emit_token_tree(&x)); let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let body = node.body().and_then(|x| self.emit_token_tree(&x)); @@ -1580,6 +1784,9 @@ impl Translator<'_> { &mut self, node: &ast::MacroExpr, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroExpr { id: TrapId::Star, @@ -1594,6 +1801,9 @@ impl Translator<'_> { &mut self, node: &ast::MacroItems, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let items = node.items().filter_map(|x| self.emit_item(&x)).collect(); let label = self.trap.emit(generated::MacroItems { id: TrapId::Star, @@ -1608,6 +1818,9 @@ impl Translator<'_> { &mut self, node: &ast::MacroPat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroPat { id: TrapId::Star, @@ -1625,6 +1838,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let name = node.name().and_then(|x| self.emit_name(&x)); let token_tree = node.token_tree().and_then(|x| self.emit_token_tree(&x)); @@ -1645,6 +1861,9 @@ impl Translator<'_> { &mut self, node: &ast::MacroStmts, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let tail_expr = node.expr().and_then(|x| self.emit_expr(&x)); let statements = node .statements() @@ -1664,6 +1883,9 @@ impl Translator<'_> { &mut self, node: &ast::MacroType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroTypeRepr { id: TrapId::Star, @@ -1681,6 +1903,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let guard = node.guard().and_then(|x| self.emit_match_guard(&x)); @@ -1704,6 +1929,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let arms = node .arms() .filter_map(|x| self.emit_match_arm(&x)) @@ -1726,6 +1954,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let scrutinee = node.expr().and_then(|x| self.emit_expr(&x)); let match_arm_list = node @@ -1746,6 +1977,9 @@ impl Translator<'_> { &mut self, node: &ast::MatchGuard, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let condition = node.condition().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::MatchGuard { id: TrapId::Star, @@ -1757,6 +1991,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_meta(&mut self, node: &ast::Meta) -> Option> { + if self.should_be_excluded(node) { + return None; + } let expr = node.expr().and_then(|x| self.emit_expr(&x)); let is_unsafe = node.unsafe_token().is_some(); let path = node.path().and_then(|x| self.emit_path(&x)); @@ -1780,6 +2017,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let arg_list = node.arg_list().and_then(|x| self.emit_arg_list(&x)); let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let generic_arg_list = node @@ -1804,6 +2044,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let item_list = node.item_list().and_then(|x| self.emit_item_list(&x)); let name = node.name().and_then(|x| self.emit_name(&x)); @@ -1821,6 +2064,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_name(&mut self, node: &ast::Name) -> Option> { + if self.should_be_excluded(node) { + return None; + } let text = node.try_get_text(); let label = self.trap.emit(generated::Name { id: TrapId::Star, @@ -1835,6 +2081,9 @@ impl Translator<'_> { &mut self, node: &ast::NameRef, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let text = node.try_get_text(); let label = self.trap.emit(generated::NameRef { id: TrapId::Star, @@ -1849,6 +2098,9 @@ impl Translator<'_> { &mut self, node: &ast::NeverType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let label = self .trap .emit(generated::NeverTypeRepr { id: TrapId::Star }); @@ -1864,6 +2116,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let fields = node .fields() @@ -1882,6 +2137,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_or_pat(&mut self, node: &ast::OrPat) -> Option> { + if self.should_be_excluded(node) { + return None; + } let pats = node.pats().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::OrPat { id: TrapId::Star, @@ -1896,6 +2154,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let pat = node.pat().and_then(|x| self.emit_pat(&x)); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); @@ -1914,6 +2175,9 @@ impl Translator<'_> { &mut self, node: &ast::ParamList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let params = node.params().filter_map(|x| self.emit_param(&x)).collect(); let self_param = node.self_param().and_then(|x| self.emit_self_param(&x)); let label = self.trap.emit(generated::ParamList { @@ -1933,6 +2197,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ParenExpr { @@ -1949,6 +2216,9 @@ impl Translator<'_> { &mut self, node: &ast::ParenPat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::ParenPat { id: TrapId::Star, @@ -1963,6 +2233,9 @@ impl Translator<'_> { &mut self, node: &ast::ParenType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ParenTypeRepr { id: TrapId::Star, @@ -1977,6 +2250,9 @@ impl Translator<'_> { &mut self, node: &ast::ParenthesizedArgList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let type_args = node .type_args() .filter_map(|x| self.emit_type_arg(&x)) @@ -1991,6 +2267,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_path(&mut self, node: &ast::Path) -> Option> { + if self.should_be_excluded(node) { + return None; + } let qualifier = node.qualifier().and_then(|x| self.emit_path(&x)); let segment = node.segment().and_then(|x| self.emit_path_segment(&x)); let label = self.trap.emit(generated::Path { @@ -2010,6 +2289,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::PathExpr { @@ -2026,6 +2308,9 @@ impl Translator<'_> { &mut self, node: &ast::PathPat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::PathPat { id: TrapId::Star, @@ -2040,6 +2325,9 @@ impl Translator<'_> { &mut self, node: &ast::PathSegment, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let generic_arg_list = node .generic_arg_list() .and_then(|x| self.emit_generic_arg_list(&x)); @@ -2068,6 +2356,9 @@ impl Translator<'_> { &mut self, node: &ast::PathType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::PathTypeRepr { id: TrapId::Star, @@ -2085,6 +2376,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let operator_name = node.try_get_text(); @@ -2103,6 +2397,9 @@ impl Translator<'_> { &mut self, node: &ast::PtrType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let is_const = node.const_token().is_some(); let is_mut = node.mut_token().is_some(); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); @@ -2124,6 +2421,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let end = node.end().and_then(|x| self.emit_expr(&x)); let operator_name = node.try_get_text(); @@ -2144,6 +2444,9 @@ impl Translator<'_> { &mut self, node: &ast::RangePat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let end = node.end().and_then(|x| self.emit_pat(&x)); let operator_name = node.try_get_text(); let start = node.start().and_then(|x| self.emit_pat(&x)); @@ -2162,6 +2465,9 @@ impl Translator<'_> { &mut self, node: &ast::RecordExpr, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let path = node.path().and_then(|x| self.emit_path(&x)); let struct_expr_field_list = node .record_expr_field_list() @@ -2183,6 +2489,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); @@ -2204,6 +2513,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let fields = node .fields() @@ -2228,6 +2540,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let default = node.expr().and_then(|x| self.emit_expr(&x)); let is_unsafe = node.unsafe_token().is_some(); @@ -2252,6 +2567,9 @@ impl Translator<'_> { &mut self, node: &ast::RecordFieldList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let fields = node .fields() .filter_map(|x| self.emit_record_field(&x)) @@ -2269,6 +2587,9 @@ impl Translator<'_> { &mut self, node: &ast::RecordPat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let path = node.path().and_then(|x| self.emit_path(&x)); let struct_pat_field_list = node .record_pat_field_list() @@ -2290,6 +2611,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); let pat = node.pat().and_then(|x| self.emit_pat(&x)); @@ -2308,6 +2632,9 @@ impl Translator<'_> { &mut self, node: &ast::RecordPatFieldList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let fields = node .fields() .filter_map(|x| self.emit_record_pat_field(&x)) @@ -2330,6 +2657,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let is_const = node.const_token().is_some(); @@ -2349,6 +2679,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_ref_pat(&mut self, node: &ast::RefPat) -> Option> { + if self.should_be_excluded(node) { + return None; + } let is_mut = node.mut_token().is_some(); let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::RefPat { @@ -2365,6 +2698,9 @@ impl Translator<'_> { &mut self, node: &ast::RefType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let is_mut = node.mut_token().is_some(); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); @@ -2380,6 +2716,9 @@ impl Translator<'_> { Some(label) } pub(crate) fn emit_rename(&mut self, node: &ast::Rename) -> Option> { + if self.should_be_excluded(node) { + return None; + } let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::Rename { id: TrapId::Star, @@ -2397,6 +2736,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let label = self.trap.emit(generated::RestPat { id: TrapId::Star, @@ -2411,6 +2753,9 @@ impl Translator<'_> { &mut self, node: &ast::RetType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::RetTypeRepr { id: TrapId::Star, @@ -2428,6 +2773,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ReturnExpr { @@ -2444,6 +2792,9 @@ impl Translator<'_> { &mut self, node: &ast::ReturnTypeSyntax, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let label = self .trap .emit(generated::ReturnTypeSyntax { id: TrapId::Star }); @@ -2459,6 +2810,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let is_ref = node.amp_token().is_some(); let is_mut = node.mut_token().is_some(); @@ -2483,6 +2837,9 @@ impl Translator<'_> { &mut self, node: &ast::SlicePat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let pats = node.pats().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::SlicePat { id: TrapId::Star, @@ -2497,6 +2854,9 @@ impl Translator<'_> { &mut self, node: &ast::SliceType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::SliceTypeRepr { id: TrapId::Star, @@ -2514,6 +2874,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let items = node.items().filter_map(|x| self.emit_item(&x)).collect(); let label = self.trap.emit(generated::SourceFile { @@ -2530,6 +2893,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let body = node.body().and_then(|x| self.emit_expr(&x)); let is_mut = node.mut_token().is_some(); @@ -2561,6 +2927,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let statements = node .statements() @@ -2582,6 +2951,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let field_list = node.field_list().and_then(|x| self.emit_field_list(&x)); let generic_param_list = node @@ -2608,6 +2980,9 @@ impl Translator<'_> { &mut self, node: &ast::TokenTree, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let label = self.trap.emit(generated::TokenTree { id: TrapId::Star }); self.emit_location(label, node); emit_detached!(TokenTree, self, node, label); @@ -2618,6 +2993,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let assoc_item_list = node .assoc_item_list() .and_then(|x| self.emit_assoc_item_list(&x)); @@ -2657,6 +3035,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let generic_param_list = node .generic_param_list() @@ -2688,6 +3069,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::TryExpr { @@ -2707,6 +3091,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let fields = node.fields().filter_map(|x| self.emit_expr(&x)).collect(); let label = self.trap.emit(generated::TupleExpr { @@ -2726,6 +3113,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); @@ -2744,6 +3134,9 @@ impl Translator<'_> { &mut self, node: &ast::TupleFieldList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let fields = node .fields() .filter_map(|x| self.emit_tuple_field(&x)) @@ -2761,6 +3154,9 @@ impl Translator<'_> { &mut self, node: &ast::TuplePat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let fields = node.fields().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::TuplePat { id: TrapId::Star, @@ -2775,6 +3171,9 @@ impl Translator<'_> { &mut self, node: &ast::TupleStructPat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let fields = node.fields().filter_map(|x| self.emit_pat(&x)).collect(); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::TupleStructPat { @@ -2791,6 +3190,9 @@ impl Translator<'_> { &mut self, node: &ast::TupleType, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let fields = node.fields().filter_map(|x| self.emit_type(&x)).collect(); let label = self.trap.emit(generated::TupleTypeRepr { id: TrapId::Star, @@ -2808,6 +3210,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let generic_param_list = node .generic_param_list() @@ -2840,6 +3245,9 @@ impl Translator<'_> { &mut self, node: &ast::TypeArg, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::TypeArg { id: TrapId::Star, @@ -2854,6 +3262,9 @@ impl Translator<'_> { &mut self, node: &ast::TypeBound, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); @@ -2878,6 +3289,9 @@ impl Translator<'_> { &mut self, node: &ast::TypeBoundList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let bounds = node .bounds() .filter_map(|x| self.emit_type_bound(&x)) @@ -2898,6 +3312,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let default_type = node.default_type().and_then(|x| self.emit_type(&x)); let name = node.name().and_then(|x| self.emit_name(&x)); @@ -2923,6 +3340,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let label = self.trap.emit(generated::UnderscoreExpr { id: TrapId::Star, @@ -2937,6 +3357,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let generic_param_list = node .generic_param_list() @@ -2965,6 +3388,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let use_tree = node.use_tree().and_then(|x| self.emit_use_tree(&x)); let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); @@ -2983,6 +3409,9 @@ impl Translator<'_> { &mut self, node: &ast::UseBoundGenericArgs, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let use_bound_generic_args = node .use_bound_generic_args() .filter_map(|x| self.emit_use_bound_generic_arg(&x)) @@ -3000,6 +3429,9 @@ impl Translator<'_> { &mut self, node: &ast::UseTree, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let is_glob = node.star_token().is_some(); let path = node.path().and_then(|x| self.emit_path(&x)); let rename = node.rename().and_then(|x| self.emit_rename(&x)); @@ -3022,6 +3454,9 @@ impl Translator<'_> { &mut self, node: &ast::UseTreeList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let use_trees = node .use_trees() .filter_map(|x| self.emit_use_tree(&x)) @@ -3042,6 +3477,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let discriminant = node.expr().and_then(|x| self.emit_expr(&x)); let field_list = node.field_list().and_then(|x| self.emit_field_list(&x)); @@ -3064,6 +3502,9 @@ impl Translator<'_> { &mut self, node: &ast::VariantList, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let variants = node .variants() .filter_map(|x| self.emit_variant(&x)) @@ -3081,6 +3522,9 @@ impl Translator<'_> { &mut self, node: &ast::Visibility, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::Visibility { id: TrapId::Star, @@ -3095,6 +3539,9 @@ impl Translator<'_> { &mut self, node: &ast::WhereClause, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let predicates = node .predicates() .filter_map(|x| self.emit_where_pred(&x)) @@ -3112,6 +3559,9 @@ impl Translator<'_> { &mut self, node: &ast::WherePred, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let generic_param_list = node .generic_param_list() .and_then(|x| self.emit_generic_param_list(&x)); @@ -3139,6 +3589,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let condition = node.condition().and_then(|x| self.emit_expr(&x)); let label = node.label().and_then(|x| self.emit_label(&x)); @@ -3159,6 +3612,9 @@ impl Translator<'_> { &mut self, node: &ast::WildcardPat, ) -> Option> { + if self.should_be_excluded(node) { + return None; + } let label = self.trap.emit(generated::WildcardPat { id: TrapId::Star }); self.emit_location(label, node); emit_detached!(WildcardPat, self, node, label); @@ -3172,6 +3628,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::YeetExpr { @@ -3191,6 +3650,9 @@ impl Translator<'_> { if self.should_be_excluded(node) { return None; } + if self.should_be_excluded_attrs(node) { + return None; + } let attrs = node.attrs().filter_map(|x| self.emit_attr(&x)).collect(); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::YieldExpr { diff --git a/rust/ql/test/extractor-tests/crate_graph/modules.ql b/rust/ql/test/extractor-tests/crate_graph/modules.ql index 5554a69d1a9..b9db8f9b1e3 100644 --- a/rust/ql/test/extractor-tests/crate_graph/modules.ql +++ b/rust/ql/test/extractor-tests/crate_graph/modules.ql @@ -5,13 +5,16 @@ */ import rust +import codeql.rust.internal.PathResolution predicate nodes(Item i) { i instanceof RelevantNode } -class RelevantNode extends Item { +class RelevantNode extends Element instanceof ItemNode { RelevantNode() { - this.getParentNode*() = - any(Crate m | m.getName() = "test" and m.getVersion() = "0.0.1").getModule() + this.(ItemNode).getImmediateParentModule*() = + any(Crate m | m.getName() = "test" and m.getVersion() = "0.0.1") + .(CrateItemNode) + .getModuleNode() } string label() { result = this.toString() } @@ -26,9 +29,8 @@ class HasGenericParams extends RelevantNode { params = this.(Struct).getGenericParamList() or params = this.(Union).getGenericParamList() or params = this.(Impl).getGenericParamList() or - params = this.(Enum).getGenericParamList() or - params = this.(Trait).getGenericParamList() or - params = this.(TraitAlias).getGenericParamList() + params = this.(Trait).getGenericParamList() // or + //params = this.(TraitAlias).getGenericParamList() } override string label() { diff --git a/rust/ql/test/library-tests/controlflow/BasicBlocks.ql b/rust/ql/test/library-tests/controlflow/BasicBlocks.ql index 2d072fa5b7c..770fd1133e6 100644 --- a/rust/ql/test/library-tests/controlflow/BasicBlocks.ql +++ b/rust/ql/test/library-tests/controlflow/BasicBlocks.ql @@ -1,23 +1,28 @@ import rust import codeql.rust.controlflow.ControlFlowGraph import codeql.rust.controlflow.BasicBlocks +import TestUtils -query predicate dominates(BasicBlock bb1, BasicBlock bb2) { bb1.dominates(bb2) } +query predicate dominates(BasicBlock bb1, BasicBlock bb2) { + toBeTested(bb1.getScope()) and bb1.dominates(bb2) +} -query predicate postDominance(BasicBlock bb1, BasicBlock bb2) { bb1.postDominates(bb2) } +query predicate postDominance(BasicBlock bb1, BasicBlock bb2) { + toBeTested(bb1.getScope()) and bb1.postDominates(bb2) +} query predicate immediateDominator(BasicBlock bb1, BasicBlock bb2) { - bb1.getImmediateDominator() = bb2 + toBeTested(bb1.getScope()) and bb1.getImmediateDominator() = bb2 } query predicate controls(ConditionBasicBlock bb1, BasicBlock bb2, SuccessorType t) { - bb1.edgeDominates(bb2, t) + toBeTested(bb1.getScope()) and bb1.edgeDominates(bb2, t) } query predicate successor(ConditionBasicBlock bb1, BasicBlock bb2, SuccessorType t) { - bb1.getASuccessor(t) = bb2 + toBeTested(bb1.getScope()) and bb1.getASuccessor(t) = bb2 } query predicate joinBlockPredecessor(JoinBasicBlock bb1, BasicBlock bb2, int i) { - bb1.getJoinBlockPredecessor(i) = bb2 + toBeTested(bb1.getScope()) and bb1.getJoinBlockPredecessor(i) = bb2 } diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql index cbb81bdcb02..71929f26a12 100644 --- a/rust/ql/test/library-tests/operations/Operations.ql +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -1,5 +1,6 @@ import rust import utils.test.InlineExpectationsTest +import TestUtils string describe(Expr op) { op instanceof Operation and result = "Operation" @@ -20,6 +21,7 @@ module OperationsTest implements TestSig { predicate hasActualResult(Location location, string element, string tag, string value) { exists(Expr op | + toBeTested(op) and location = op.getLocation() and location.getFile().getBaseName() != "" and element = op.toString() and diff --git a/rust/ql/test/library-tests/variables/Ssa.ql b/rust/ql/test/library-tests/variables/Ssa.ql index c972bb2747c..d93a1f13b64 100644 --- a/rust/ql/test/library-tests/variables/Ssa.ql +++ b/rust/ql/test/library-tests/variables/Ssa.ql @@ -4,31 +4,38 @@ import codeql.rust.controlflow.ControlFlowGraph import codeql.rust.dataflow.Ssa import codeql.rust.dataflow.internal.SsaImpl import Impl::TestAdjacentRefs as RefTest +import TestUtils -query predicate definition(Ssa::Definition def, Variable v) { def.getSourceVariable() = v } +query predicate definition(Ssa::Definition def, Variable v) { + toBeTested(v.getEnclosingCfgScope()) and def.getSourceVariable() = v +} query predicate read(Ssa::Definition def, Variable v, CfgNode read) { - def.getSourceVariable() = v and read = def.getARead() + toBeTested(v.getEnclosingCfgScope()) and def.getSourceVariable() = v and read = def.getARead() } query predicate firstRead(Ssa::Definition def, Variable v, CfgNode read) { - def.getSourceVariable() = v and read = def.getAFirstRead() + toBeTested(v.getEnclosingCfgScope()) and + def.getSourceVariable() = v and + read = def.getAFirstRead() } query predicate adjacentReads(Ssa::Definition def, Variable v, CfgNode read1, CfgNode read2) { + toBeTested(v.getEnclosingCfgScope()) and def.getSourceVariable() = v and def.hasAdjacentReads(read1, read2) } query predicate phi(Ssa::PhiDefinition phi, Variable v, Ssa::Definition input) { - phi.getSourceVariable() = v and input = phi.getAnInput() + toBeTested(v.getEnclosingCfgScope()) and phi.getSourceVariable() = v and input = phi.getAnInput() } query predicate phiReadNode(RefTest::Ref phi, Variable v) { - phi.isPhiRead() and phi.getSourceVariable() = v + toBeTested(v.getEnclosingCfgScope()) and phi.isPhiRead() and phi.getSourceVariable() = v } query predicate phiReadNodeFirstRead(RefTest::Ref phi, Variable v, CfgNode read) { + toBeTested(v.getEnclosingCfgScope()) and exists(RefTest::Ref r, BasicBlock bb, int i | phi.isPhiRead() and RefTest::adjacentRefRead(phi, r) and diff --git a/rust/ql/test/library-tests/variables/variables.ql b/rust/ql/test/library-tests/variables/variables.ql index 121975c0c82..dbde4f56e85 100644 --- a/rust/ql/test/library-tests/variables/variables.ql +++ b/rust/ql/test/library-tests/variables/variables.ql @@ -1,29 +1,39 @@ import rust import utils.test.InlineExpectationsTest import codeql.rust.elements.internal.VariableImpl::Impl as VariableImpl +import TestUtils -query predicate variable(Variable v) { any() } +query predicate variable(Variable v) { toBeTested(v.getEnclosingCfgScope()) } -query predicate variableAccess(VariableAccess va, Variable v) { v = va.getVariable() } +query predicate variableAccess(VariableAccess va, Variable v) { + variable(v) and toBeTested(va) and v = va.getVariable() +} -query predicate variableWriteAccess(VariableWriteAccess va, Variable v) { v = va.getVariable() } +query predicate variableWriteAccess(VariableWriteAccess va, Variable v) { + variable(v) and toBeTested(va) and v = va.getVariable() +} -query predicate variableReadAccess(VariableReadAccess va, Variable v) { v = va.getVariable() } +query predicate variableReadAccess(VariableReadAccess va, Variable v) { + variable(v) and toBeTested(va) and v = va.getVariable() +} -query predicate variableInitializer(Variable v, Expr e) { e = v.getInitializer() } +query predicate variableInitializer(Variable v, Expr e) { + variable(v) and toBeTested(e) and e = v.getInitializer() +} -query predicate capturedVariable(Variable v) { v.isCaptured() } +query predicate capturedVariable(Variable v) { variable(v) and v.isCaptured() } -query predicate capturedAccess(VariableAccess va) { va.isCapture() } +query predicate capturedAccess(VariableAccess va) { toBeTested(va) and va.isCapture() } query predicate nestedFunctionAccess(VariableImpl::NestedFunctionAccess nfa, Function f) { - f = nfa.getFunction() + toBeTested(f) and f = nfa.getFunction() } module VariableAccessTest implements TestSig { string getARelevantTag() { result = ["", "write_", "read_"] + "access" } private predicate declAt(Variable v, string filepath, int line, boolean inMacro) { + variable(v) and v.getLocation().hasLocationInfo(filepath, _, _, line, _) and if v.getPat().isInMacroExpansion() then inMacro = true else inMacro = false } @@ -46,6 +56,7 @@ module VariableAccessTest implements TestSig { predicate hasActualResult(Location location, string element, string tag, string value) { exists(VariableAccess va | + toBeTested(va) and location = va.getLocation() and element = va.toString() and decl(va.getVariable(), value) From 643059ed34c2896cf571e2f33fea79a1485bcb7d Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 20 May 2025 15:20:09 +0200 Subject: [PATCH 554/656] Rust: fix type-interence file paths --- .../type-inference/type-inference.expected | 68 +++++++++---------- .../type-inference/type-inference.ql | 4 +- 2 files changed, 35 insertions(+), 37 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 7e8559672ed..4657df91cf3 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -494,12 +494,10 @@ inferType | main.rs:377:26:377:29 | SelfParam | | main.rs:366:5:367:14 | S1 | | main.rs:377:38:379:9 | { ... } | | main.rs:366:5:367:14 | S1 | | main.rs:378:20:378:31 | "not called" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:378:20:378:31 | MacroExpr | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:549:1:584:1 | Arguments | | main.rs:382:28:382:31 | SelfParam | | main.rs:366:5:367:14 | S1 | | main.rs:382:34:382:35 | s1 | | main.rs:366:5:367:14 | S1 | | main.rs:382:48:384:9 | { ... } | | main.rs:366:5:367:14 | S1 | | main.rs:383:20:383:31 | "not called" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:383:20:383:31 | MacroExpr | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:549:1:584:1 | Arguments | | main.rs:389:26:389:29 | SelfParam | | main.rs:366:5:367:14 | S1 | | main.rs:389:38:391:9 | { ... } | | main.rs:366:5:367:14 | S1 | | main.rs:390:13:390:16 | self | | main.rs:366:5:367:14 | S1 | @@ -1004,10 +1002,8 @@ inferType | main.rs:884:19:884:22 | self | Snd | main.rs:882:15:882:17 | Snd | | main.rs:885:43:885:82 | MacroExpr | | main.rs:882:15:882:17 | Snd | | main.rs:885:50:885:81 | "PairNone has no second elemen... | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:885:50:885:81 | MacroExpr | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:549:1:584:1 | Arguments | | main.rs:886:43:886:81 | MacroExpr | | main.rs:882:15:882:17 | Snd | | main.rs:886:50:886:80 | "PairFst has no second element... | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:886:50:886:80 | MacroExpr | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:549:1:584:1 | Arguments | | main.rs:887:37:887:39 | snd | | main.rs:882:15:882:17 | Snd | | main.rs:887:45:887:47 | snd | | main.rs:882:15:882:17 | Snd | | main.rs:888:41:888:43 | snd | | main.rs:882:15:882:17 | Snd | @@ -1472,96 +1468,96 @@ inferType | main.rs:1150:15:1150:16 | &x | | file://:0:0:0:0 | & | | main.rs:1150:15:1150:16 | &x | &T | main.rs:1126:5:1126:13 | S | | main.rs:1150:16:1150:16 | x | | main.rs:1126:5:1126:13 | S | -| main.rs:1164:43:1167:5 | { ... } | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1164:43:1167:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1164:43:1167:5 | { ... } | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1164:43:1167:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1165:13:1165:13 | x | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1165:17:1165:30 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1165:17:1165:30 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1165:17:1165:30 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1165:17:1165:31 | TryExpr | | main.rs:1157:5:1158:14 | S1 | | main.rs:1165:28:1165:29 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1166:9:1166:22 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1166:9:1166:22 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1166:9:1166:22 | ...::Ok(...) | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1166:9:1166:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1166:20:1166:21 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1170:46:1174:5 | { ... } | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1170:46:1174:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1170:46:1174:5 | { ... } | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1170:46:1174:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1171:13:1171:13 | x | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1171:13:1171:13 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1171:13:1171:13 | x | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1171:17:1171:30 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1171:17:1171:30 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1171:17:1171:30 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1171:28:1171:29 | S1 | | main.rs:1157:5:1158:14 | S1 | | main.rs:1172:13:1172:13 | y | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1172:17:1172:17 | x | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1172:17:1172:17 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1172:17:1172:17 | x | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1172:17:1172:18 | TryExpr | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1173:9:1173:22 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1173:9:1173:22 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1173:9:1173:22 | ...::Ok(...) | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1173:9:1173:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1173:20:1173:21 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1177:40:1182:5 | { ... } | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1177:40:1182:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1177:40:1182:5 | { ... } | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1177:40:1182:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1178:13:1178:13 | x | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1178:13:1178:13 | x | T | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1178:13:1178:13 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1178:13:1178:13 | x | T | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1178:13:1178:13 | x | T.T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1178:17:1178:42 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1178:17:1178:42 | ...::Ok(...) | T | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1178:17:1178:42 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1178:17:1178:42 | ...::Ok(...) | T | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1178:17:1178:42 | ...::Ok(...) | T.T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1178:28:1178:41 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1178:28:1178:41 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1178:28:1178:41 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1178:39:1178:40 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1180:17:1180:17 | x | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1180:17:1180:17 | x | T | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1180:17:1180:17 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1180:17:1180:17 | x | T | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1180:17:1180:17 | x | T.T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1180:17:1180:18 | TryExpr | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1180:17:1180:18 | TryExpr | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1180:17:1180:18 | TryExpr | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1180:17:1180:29 | ... .map(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1181:9:1181:22 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1180:17:1180:29 | ... .map(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1181:9:1181:22 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1181:9:1181:22 | ...::Ok(...) | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1181:9:1181:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1181:20:1181:21 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1185:30:1185:34 | input | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1185:30:1185:34 | input | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1185:30:1185:34 | input | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1185:30:1185:34 | input | T | main.rs:1185:20:1185:27 | T | -| main.rs:1185:69:1192:5 | { ... } | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1185:69:1192:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1185:69:1192:5 | { ... } | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1185:69:1192:5 | { ... } | T | main.rs:1185:20:1185:27 | T | | main.rs:1186:13:1186:17 | value | | main.rs:1185:20:1185:27 | T | -| main.rs:1186:21:1186:25 | input | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1186:21:1186:25 | input | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1186:21:1186:25 | input | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1186:21:1186:25 | input | T | main.rs:1185:20:1185:27 | T | | main.rs:1186:21:1186:26 | TryExpr | | main.rs:1185:20:1185:27 | T | -| main.rs:1187:22:1187:38 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1187:22:1187:38 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1187:22:1187:38 | ...::Ok(...) | T | main.rs:1185:20:1185:27 | T | -| main.rs:1187:22:1190:10 | ... .and_then(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1187:22:1190:10 | ... .and_then(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1187:33:1187:37 | value | | main.rs:1185:20:1185:27 | T | -| main.rs:1187:53:1190:9 | { ... } | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1187:53:1190:9 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1187:53:1190:9 | { ... } | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1188:22:1188:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1189:13:1189:34 | ...::Ok::<...>(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1189:13:1189:34 | ...::Ok::<...>(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1189:13:1189:34 | ...::Ok::<...>(...) | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1191:9:1191:23 | ...::Err(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1191:9:1191:23 | ...::Err(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1191:9:1191:23 | ...::Err(...) | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1191:9:1191:23 | ...::Err(...) | T | main.rs:1185:20:1185:27 | T | | main.rs:1191:21:1191:22 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1195:37:1195:52 | try_same_error(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1195:37:1195:52 | try_same_error(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1195:37:1195:52 | try_same_error(...) | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1195:37:1195:52 | try_same_error(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1196:22:1196:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1199:37:1199:55 | try_convert_error(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1199:37:1199:55 | try_convert_error(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1199:37:1199:55 | try_convert_error(...) | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1199:37:1199:55 | try_convert_error(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1200:22:1200:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1203:37:1203:49 | try_chained(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1203:37:1203:49 | try_chained(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1203:37:1203:49 | try_chained(...) | E | main.rs:1160:5:1161:14 | S2 | | main.rs:1203:37:1203:49 | try_chained(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1204:22:1204:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1207:37:1207:63 | try_complex(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1207:37:1207:63 | try_complex(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1207:37:1207:63 | try_complex(...) | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1207:37:1207:63 | try_complex(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1207:49:1207:62 | ...::Ok(...) | | file:///Users/hvitved/.rustup/toolchains/1.85-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1207:49:1207:62 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | | main.rs:1207:49:1207:62 | ...::Ok(...) | E | main.rs:1157:5:1158:14 | S1 | | main.rs:1207:49:1207:62 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | | main.rs:1207:60:1207:61 | S1 | | main.rs:1157:5:1158:14 | S1 | diff --git a/rust/ql/test/library-tests/type-inference/type-inference.ql b/rust/ql/test/library-tests/type-inference/type-inference.ql index 02c1ef6f2b0..94d8ee23796 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.ql +++ b/rust/ql/test/library-tests/type-inference/type-inference.ql @@ -11,7 +11,9 @@ class TypeLoc extends TypeFinal { ) { exists(string file | this.getLocation().hasLocationInfo(file, startline, startcolumn, endline, endcolumn) and - filepath = file.regexpReplaceAll("^/.*/tools/builtins/", "/BUILTINS/") + filepath = + file.regexpReplaceAll("^/.*/tools/builtins/", "/BUILTINS/") + .regexpReplaceAll("^/.*/.rustup/toolchains/[^/]+/", "/RUSTUP_HOME/toolchain/") ) } } From 67846f1d50a36d18a20c89978017af913b6613d0 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 20 May 2025 15:20:48 +0200 Subject: [PATCH 555/656] fixup TestUtils --- rust/ql/test/TestUtils.qll | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rust/ql/test/TestUtils.qll b/rust/ql/test/TestUtils.qll index 586989321e1..f1e3c729494 100644 --- a/rust/ql/test/TestUtils.qll +++ b/rust/ql/test/TestUtils.qll @@ -7,8 +7,7 @@ predicate toBeTested(Element e) { not e instanceof Locatable or e.(Locatable).fromSource() - ) and - not e.(AstNode).isFromMacroExpansion() + ) } class CrateElement extends Element { From 3761099de98288cb8e59c27e04d7ed22a5b99325 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 20 May 2025 15:38:11 +0200 Subject: [PATCH 556/656] Rust: drop Param::pat when extracting libraries --- rust/extractor/src/translate/base.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index b60e57cf6d3..44a6610abb5 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -16,7 +16,7 @@ use ra_ap_ide_db::RootDatabase; use ra_ap_ide_db::line_index::{LineCol, LineIndex}; use ra_ap_parser::SyntaxKind; use ra_ap_span::TextSize; -use ra_ap_syntax::ast::{Const, Fn, HasName, Static}; +use ra_ap_syntax::ast::{Const, Fn, HasName, Param, Static}; use ra_ap_syntax::{ AstNode, NodeOrToken, SyntaxElementChildren, SyntaxError, SyntaxNode, SyntaxToken, TextRange, ast, @@ -654,8 +654,14 @@ impl<'a> Translator<'a> { return true; } } + if let Some(pat) = syntax.parent().and_then(Param::cast).and_then(|x| x.pat()) { + if pat.syntax() == syntax { + tracing::debug!("Skipping parameter"); + return true; + } + } } - return false; + false } pub(crate) fn extract_types_from_path_segment( From 5ee76589218887f09179267cff80030305377615 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 20 May 2025 16:22:27 +0200 Subject: [PATCH 557/656] Rust: update DataFlowStep.expected --- .../dataflow/local/DataFlowStep.expected | 2433 +++++++++++++++++ 1 file changed, 2433 insertions(+) diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 463915258e8..162efcfa2b7 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -867,9 +867,13 @@ localStep | main.rs:577:36:577:41 | ...::new(...) | main.rs:577:36:577:41 | MacroExpr | | main.rs:577:36:577:41 | [post] MacroExpr | main.rs:577:36:577:41 | [post] ...::new(...) | storeStep +| file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::asserting::Capture::elem] in lang:core::_::::try_capture | Capture.elem | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::::try_capture | +| file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::asserting::Capture::elem].Field[crate::option::Option::Some(0)] in lang:core::_::::try_capture | Some | file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::asserting::Capture::elem] in lang:core::_::::try_capture | +| file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::collections::vec_deque::VecDeque::len] in lang:alloc::_::::new | VecDeque.len | file://:0:0:0:0 | [post] [summary param] 0 in lang:alloc::_::::new | | file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::::zip_with | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:alloc::_::::retain_mut | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:alloc::_::::retain_mut | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:core::_::::take_if | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:core::_::::take_if | +| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:core::_::::map_unchecked | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:core::_::::map_unchecked | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::default_tcp_http_server | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::default_tcp_http_server | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in repo:https://github.com/servo/rust-smallvec:smallvec::_::::retain | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in repo:https://github.com/servo/rust-smallvec:smallvec::_::::retain | | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1].Reference in lang:core::_::crate::num::flt2dec::to_exact_exp_str | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1] in lang:core::_::crate::num::flt2dec::to_exact_exp_str | @@ -957,6 +961,7 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | +| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in lang:core::_::::spec_try_fold | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in lang:core::_::::spec_try_fold | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in lang:core::_::crate::slice::sort::stable::sort | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in lang:core::_::crate::slice::sort::stable::sort | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::prefix_is_substring | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::prefix_is_substring | | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::suffix_is_substring | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::suffix_is_substring | @@ -965,6 +970,8 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | &ref | file://:0:0:0:0 | [post] [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_until | &ref | file://:0:0:0:0 | [post] [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_until | | file://:0:0:0:0 | [summary] to write: Argument[1].Reference.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | Err | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | +| file://:0:0:0:0 | [summary] to write: Argument[2].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::div_rem | Big32x40.size | file://:0:0:0:0 | [post] [summary param] 2 in lang:core::_::::div_rem | +| file://:0:0:0:0 | [summary] to write: Argument[2].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::div_rem | Big8x3.size | file://:0:0:0:0 | [post] [summary param] 2 in lang:core::_::::div_rem | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::max_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::max_by | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::max_by_key | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::max_by_key | | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::min_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::min_by | @@ -986,12 +993,89 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-http::_::::write_u64 | tuple.0 | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/actix/actix-web:actix-http::_::::write_u64 | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[0] in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | tuple.0 | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[0].Reference in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[0] in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::block::BlockRng64::index] in repo:https://github.com/rust-random/rand:rand_core::_::::generate_and_set | BlockRng64.index | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/rust-random/rand:rand_core::_::::generate_and_set | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::block::BlockRng::index] in repo:https://github.com/rust-random/rand:rand_core::_::::generate_and_set | BlockRng.index | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/rust-random/rand:rand_core::_::::generate_and_set | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::char::decode::DecodeUtf16::buf] in lang:core::_::::next | DecodeUtf16.buf | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::char::decode::DecodeUtf16::buf].Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::char::decode::DecodeUtf16::buf] in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone_from | BTreeSet | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::clone_from | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::btree::set::BTreeSet::map].Reference in lang:alloc::_::::clone_from | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone_from | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::move_next | Cursor.current | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::move_next | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::move_prev | Cursor.current | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::move_prev | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::move_next | CursorMut.current | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::move_next | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::move_prev | CursorMut.current | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::move_prev | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::CursorMut::index] in lang:alloc::_::::insert_after | CursorMut.index | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::insert_after | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::CursorMut::index] in lang:alloc::_::::splice_after | CursorMut.index | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::splice_after | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::append | LinkedList.tail | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::append | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::vec_deque::VecDeque::len] in lang:alloc::_::::split_off | VecDeque.len | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::split_off | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::vec_deque::VecDeque::len] in lang:alloc::_::::truncate | VecDeque.len | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::truncate | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::diagnostic::Diagnostic::level] in lang:proc_macro::_::::set_level | Diagnostic.level | file://:0:0:0:0 | [post] [summary param] self in lang:proc_macro::_::::set_level | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::error::Report::pretty] in lang:std::_::::pretty | Report.pretty | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::pretty | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::error::Report::show_backtrace] in lang:std::_::::show_backtrace | Report.show_backtrace | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::show_backtrace | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fmt::FormattingOptions::align] in lang:core::_::::align | FormattingOptions.align | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::align | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fmt::FormattingOptions::fill] in lang:core::_::::fill | FormattingOptions.fill | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::fill | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fmt::FormattingOptions::flags] in lang:core::_::::flags | FormattingOptions.flags | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::flags | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fmt::FormattingOptions::precision] in lang:core::_::::precision | FormattingOptions.precision | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::precision | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fmt::FormattingOptions::width] in lang:core::_::::width | FormattingOptions.width | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::width | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fs::DirBuilder::recursive] in lang:std::_::::recursive | DirBuilder.recursive | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::recursive | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::Take::limit] in lang:std::_::::set_limit | Take.limit | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::set_limit | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::set_init | BorrowedBuf.init | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_init | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::pos] in lang:std::_::::consume | Buffer.pos | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::consume | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::clone_from | Cursor.inner | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::clone_from | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::inner].Reference in lang:std::_::::clone_from | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::clone_from | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::clone_from | Cursor.pos | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::clone_from | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::seek | Cursor.pos | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::seek | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::set_position | Cursor.pos | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::set_position | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter] in lang:core::_::::advance_by | Cycle.iter | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::advance_by | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter] in lang:core::_::::try_fold | Cycle.iter | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::try_fold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter].Reference in lang:core::_::::advance_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter] in lang:core::_::::advance_by | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter].Reference in lang:core::_::::try_fold | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter] in lang:core::_::::try_fold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | StepBy.iter | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_fold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_try_fold | StepBy.iter | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_try_fold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_fold | element | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_try_fold | element | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_try_fold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Field[crate::ops::range::Range::start] in lang:core::_::::spec_fold | Range.start | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV4::ip] in lang:core::_::::set_ip | SocketAddrV4.ip | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_ip | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV4::port] in lang:core::_::::set_port | SocketAddrV4.port | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_port | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::flowinfo] in lang:core::_::::set_flowinfo | SocketAddrV6.flowinfo | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_flowinfo | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::ip] in lang:core::_::::set_ip | SocketAddrV6.ip | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_ip | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::port] in lang:core::_::::set_port | SocketAddrV6.port | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_port | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::scope_id] in lang:core::_::::set_scope_id | SocketAddrV6.scope_id | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_scope_id | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::add | Big32x40.size | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::add | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::sub | Big32x40.size | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::sub | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::add | Big8x3.size | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::add | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::sub | Big8x3.size | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::sub | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::dec2flt::decimal::Decimal::digits] in lang:core::_::::try_add_digit | Decimal.digits | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::try_add_digit | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::dec2flt::decimal::Decimal::digits].Element in lang:core::_::::try_add_digit | element | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::dec2flt::decimal::Decimal::digits] in lang:core::_::::try_add_digit | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::map_break | Break | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_break | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::map_continue | Continue | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_continue | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::take_suffix | IndexRange.end | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::take_suffix | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::take_prefix | IndexRange.start | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::take_prefix | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::map | Excluded | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::map | Included | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_nth_back | Range.end | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::spec_nth | Range.start | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_nth | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Range::start].Reference in lang:core::_::::spec_nth | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::spec_nth | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::spec_try_rfold | RangeInclusive.end | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_try_rfold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::nth_back | RangeInclusive.end | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::end].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_fold | RangeInclusive.start | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_try_fold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_rfold | RangeInclusive.start | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_try_rfold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::nth | RangeInclusive.start | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference in lang:core::_::::spec_try_fold | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_fold | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::nth | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::and_then | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_none_or | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_none_or | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_some_and | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_some_and | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map_or | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map_or_else | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or_else | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::zip_with | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next_back | Components.path | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::next_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next | Components.path | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::next | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path].Reference in lang:std::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path].Reference in lang:std::_::::next | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked_mut | Pin | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_unchecked_mut | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::set | Pin | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::set | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::set | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::is_err_and | Err | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_err_and | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | Err | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_err | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::map_or_else | Err | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or_else | @@ -1001,6 +1085,71 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::is_ok_and | Ok | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_ok_and | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_or | Ok | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or | | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_or_else | Ok | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or_else | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth_back | Chunks.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth | Chunks.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::nth_back | ChunksExact.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::ChunksExact::v].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth_back | RChunks.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth | RChunks.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::nth_back | RChunksExact.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunksExact::v].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next_back | SplitInclusive.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next | SplitInclusive.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v].Reference in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v].Reference in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next_back | Windows.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth_back | Windows.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next | Windows.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth | Windows.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v].Reference in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v].Reference in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::str::pattern::CharSearcher::finger] in lang:core::_::::next_match | CharSearcher.finger | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next_match | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::str::pattern::CharSearcher::finger_back] in lang:core::_::::next_match_back | CharSearcher.finger_back | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next_match_back | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::accessed] in lang:std::_::::set_accessed | FileTimes.accessed | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::set_accessed | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::accessed].Field[crate::option::Option::Some(0)] in lang:std::_::::set_accessed | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::accessed] in lang:std::_::::set_accessed | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::created] in lang:std::_::::set_created | FileTimes.created | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::set_created | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::created].Field[crate::option::Option::Some(0)] in lang:std::_::::set_created | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::created] in lang:std::_::::set_created | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::modified] in lang:std::_::::set_modified | FileTimes.modified | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::set_modified | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::modified].Field[crate::option::Option::Some(0)] in lang:std::_::::set_modified | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::modified] in lang:std::_::::set_modified | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::append] in lang:std::_::::append | OpenOptions.append | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::append | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::create] in lang:std::_::::create | OpenOptions.create | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::create | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::create_new] in lang:std::_::::create_new | OpenOptions.create_new | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::create_new | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::custom_flags] in lang:std::_::::custom_flags | OpenOptions.custom_flags | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::custom_flags | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::read] in lang:std::_::::read | OpenOptions.read | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::read | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::truncate] in lang:std::_::::truncate | OpenOptions.truncate | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::truncate | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::write] in lang:std::_::::write | OpenOptions.write | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::write | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::gid] in lang:std::_::::gid | Command.gid | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::gid | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::gid].Field[crate::option::Option::Some(0)] in lang:std::_::::gid | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::gid] in lang:std::_::::gid | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::pgroup] in lang:std::_::::pgroup | Command.pgroup | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::pgroup | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::pgroup].Field[crate::option::Option::Some(0)] in lang:std::_::::pgroup | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::pgroup] in lang:std::_::::pgroup | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stderr] in lang:std::_::::stderr | Command.stderr | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::stderr | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stderr].Field[crate::option::Option::Some(0)] in lang:std::_::::stderr | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stderr] in lang:std::_::::stderr | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdin] in lang:std::_::::stdin | Command.stdin | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::stdin | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdin].Field[crate::option::Option::Some(0)] in lang:std::_::::stdin | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdin] in lang:std::_::::stdin | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdout] in lang:std::_::::stdout | Command.stdout | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::stdout | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdout].Field[crate::option::Option::Some(0)] in lang:std::_::::stdout | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdout] in lang:std::_::::stdout | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::uid] in lang:std::_::::uid | Command.uid | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::uid | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::uid].Field[crate::option::Option::Some(0)] in lang:std::_::::uid | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::uid] in lang:std::_::::uid | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map | Ready | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | Ready | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | Ready | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_ok | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | Err | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_ok | Ok | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::name] in lang:std::_::::name | Builder.name | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::name | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::name].Field[crate::option::Option::Some(0)] in lang:std::_::::name | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::name] in lang:std::_::::name | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::stack_size] in lang:std::_::::stack_size | Builder.stack_size | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::stack_size | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::stack_size].Field[crate::option::Option::Some(0)] in lang:std::_::::stack_size | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::stack_size] in lang:std::_::::stack_size | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::Vec::len] in lang:alloc::_::::set_len | Vec.len | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::set_len | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::Vec::len] in lang:alloc::_::::truncate | Vec.len | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::truncate | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::into_iter::IntoIter::ptr] in lang:alloc::_::::forget_allocation_drop_remaining | IntoIter.ptr | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::forget_allocation_drop_remaining | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::len] in lang:alloc::_::::drop | SetLenOnDrop.len | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::drop | +| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::len].Reference in lang:alloc::_::::drop | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::len] in lang:alloc::_::::drop | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:alloc::_::::add_assign | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::add_assign | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:alloc::_::::clone_from | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::clone_from | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::get_or_insert | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::get_or_insert | @@ -1017,6 +1166,7 @@ storeStep | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | &ref | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | &ref | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | &ref | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | +| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::add_assign | Borrowed | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:alloc::_::::add_assign | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::get_or_insert | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::get_or_insert | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::insert | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::insert | | file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::replace | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::replace | @@ -1032,12 +1182,36 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::cmp::minmax_by | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::cmp::minmax_by | | file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::cmp::minmax_by_key | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::cmp::minmax_by_key | | file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::iter::traits::iterator::Iterator::collect | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::collect | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::nexts | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::nexts | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::find_lower_bound_edge | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_lower_bound_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::find_upper_bound_edge | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_upper_bound_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::align_to | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::align_to | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::align_to_mut | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::align_to_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::partition_dedup_by | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::partition_dedup_by | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_parts | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_parts | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::size_hint | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::div_rem_small | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::div_rem_small | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::div_rem_small | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::div_rem_small | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::unzip | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::unzip | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::size_hint | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | @@ -1050,23 +1224,631 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::get_mut | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::get_ref | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in repo:https://github.com/serde-rs/serde:serde::_::crate::de::value::private::unit_only | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::crate::de::value::private::unit_only | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::find_lower_bound_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::find_lower_bound_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::find_upper_bound_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::find_upper_bound_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::option::Option::Some(0)] in lang:alloc::_::::nexts | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::nexts | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::unzip | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::extract_if_inner | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::nexts | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::nexts | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::find_lower_bound_edge | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_lower_bound_edge | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::find_upper_bound_edge | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_upper_bound_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::bound | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_inner | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::bound | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::bound | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::bound | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::unzip | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::unzip | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::size_hint | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::crate::slice::sort::shared::find_existing_run | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::slice::sort::shared::find_existing_run | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::get_mut | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::get_ref | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::into_inner | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::try_reuse | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::try_reuse | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::into_bounds | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::into_bounds | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::into_bounds | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::into_bounds | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::nexts | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::nexts | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:core::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::size_hint | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::unzip | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:core::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::size_hint | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::get_ref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[2] in lang:core::_::::into_parts | tuple.2 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_parts | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Group(0)] in lang:proc_macro::_::::new | Group | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Group(0)].Field[crate::bridge::Group::delimiter] in lang:proc_macro::_::::new | Group.delimiter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Group(0)] in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Group(0)].Field[crate::bridge::Group::stream] in lang:proc_macro::_::::new | Group.stream | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Group(0)] in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)] in lang:proc_macro::_::::new | Ident | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)] in lang:proc_macro::_::::new_raw | Ident | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)].Field[crate::bridge::Ident::span] in lang:proc_macro::_::::new | Ident.span | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)] in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)].Field[crate::bridge::Ident::span] in lang:proc_macro::_::::new_raw | Ident.span | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)] in lang:proc_macro::_::::new_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Span(0)] in lang:proc_macro::_::::span | Span | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Span(0)] in lang:proc_macro::_::::span | Span | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Span(0)] in lang:proc_macro::_::::span | Span | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::TokenStream(0)] in lang:proc_macro::_::::stream | TokenStream | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::stream | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::TokenTree::Group(0)] in lang:proc_macro::_::::from | Group | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::TokenTree::Ident(0)] in lang:proc_macro::_::::from | Ident | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::TokenTree::Literal(0)] in lang:proc_macro::_::::from | Literal | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::TokenTree::Punct(0)] in lang:proc_macro::_::::from | Punct | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::alloc::layout::Layout::size] in lang:core::_::::from_size_align_unchecked | Layout.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_size_align_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::alive] in lang:core::_::::new_unchecked | IntoIter.alive | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::alive].Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::new_unchecked | IndexRange.end | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::alive] in lang:core::_::::new_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::alive].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::new_unchecked | IndexRange.start | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::alive] in lang:core::_::::new_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::data] in lang:core::_::::new_unchecked | IntoIter.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::block::BlockRng64::core] in repo:https://github.com/rust-random/rand:rand_core::_::::new | BlockRng64.core | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand_core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::block::BlockRng::core] in repo:https://github.com/rust-random/rand:rand_core::_::::new | BlockRng.core | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand_core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::clone | Borrowed | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::from | Borrowed | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::borrow::Cow::Borrowed(0)].Reference in lang:alloc::_::::from | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::borrow::Cow::Owned(0)] in lang:alloc::_::::from | Owned | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::boxed::Box(1)] in lang:alloc::_::::from_non_null_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_non_null_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::boxed::Box(1)] in lang:alloc::_::::from_raw_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_raw_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::boxed::Box(1)] in lang:alloc::_::::new_uninit_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_uninit_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::boxed::Box(1)] in lang:alloc::_::::new_zeroed_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_zeroed_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::DelimSpan::close] in lang:proc_macro::_::::from_single | DelimSpan.close | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from_single | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::DelimSpan::entire] in lang:proc_macro::_::::from_single | DelimSpan.entire | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from_single | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::DelimSpan::open] in lang:proc_macro::_::::from_single | DelimSpan.open | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from_single | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::Marked::value] in lang:proc_macro::_::::mark | Marked.value | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::mark | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::client::ProcMacro::Attr::name] in lang:proc_macro::_::::attr | Attr.name | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::attr | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::client::ProcMacro::Bang::name] in lang:proc_macro::_::::bang | Bang.name | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::bang | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::client::ProcMacro::CustomDerive::attributes] in lang:proc_macro::_::::custom_derive | CustomDerive.attributes | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::custom_derive | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::client::ProcMacro::CustomDerive::trait_name] in lang:proc_macro::_::::custom_derive | CustomDerive.trait_name | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::custom_derive | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::handle::InternedStore::owned] in lang:proc_macro::_::::new | InternedStore.owned | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::handle::InternedStore::owned].Field[crate::bridge::handle::OwnedStore::counter] in lang:proc_macro::_::::new | OwnedStore.counter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::handle::InternedStore::owned] in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::handle::OwnedStore::counter] in lang:proc_macro::_::::new | OwnedStore.counter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::server::MaybeCrossThread::cross_thread] in lang:proc_macro::_::::new | MaybeCrossThread.cross_thread | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::BorrowRef::borrow] in lang:core::_::::clone | BorrowRef | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value] in lang:core::_::::from | Cell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value] in lang:core::_::::new | Cell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value] in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Ref::borrow] in lang:core::_::::map | Ref.borrow | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value] in lang:core::_::::from | RefCell.value | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value] in lang:core::_::::new | RefCell.value | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value] in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefMut::borrow] in lang:core::_::::map | RefMut.borrow | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::from | SyncUnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::new | SyncUnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::UnsafeCell::value] in lang:core::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::TryReserveError::kind] in lang:alloc::_::::from | TryReserveError | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::binary_heap::BinaryHeap::data] in lang:alloc::_::::clone | BinaryHeap | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::binary_heap::BinaryHeap::data] in lang:alloc::_::::from | BinaryHeap | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::binary_heap::DrainSorted::inner] in lang:alloc::_::::drain_sorted | DrainSorted | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::drain_sorted | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::binary_heap::IntoIterSorted::inner] in lang:alloc::_::::into_iter_sorted | IntoIterSorted | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::into_iter_sorted | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::dedup_sorted_iter::DedupSortedIter::iter] in lang:alloc::_::::new | DedupSortedIter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::dedup_sorted_iter::DedupSortedIter::iter].Field[crate::iter::adapters::peekable::Peekable::iter] in lang:alloc::_::::new | Peekable.iter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::dedup_sorted_iter::DedupSortedIter::iter] in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::clone | BTreeMap.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::bulk_build_from_sorted_iter | BTreeMap.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::bulk_build_from_sorted_iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::new_in | BTreeMap.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::split_off | BTreeMap.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::split_off | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:alloc::_::::clone | ManuallyDrop | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:alloc::_::::bulk_build_from_sorted_iter | ManuallyDrop | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::bulk_build_from_sorted_iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:alloc::_::::new_in | ManuallyDrop | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::new_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Reference in lang:alloc::_::::split_off | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::split_off | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::clone | Cursor.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Cursor::root] in lang:alloc::_::::clone | Cursor.root | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::ExtractIf::pred] in lang:alloc::_::::extract_if | ExtractIf.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::iter | Iter.length | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::iter | Iter.length | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::clone | Iter.length | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::iter | Iter.length | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Iter::range] in lang:alloc::_::::clone | Iter.range | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::iter_mut | IterMut.length | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Range::inner] in lang:alloc::_::::clone | Range | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::Entry::Occupied(0)] in lang:alloc::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::and_modify | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::Entry::Vacant(0)] in lang:alloc::_::::entry | Vacant | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::entry | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::Entry::Vacant(0)] in lang:alloc::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::and_modify | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::Entry::Vacant(0)].Field[crate::collections::btree::map::entry::VacantEntry::key] in lang:alloc::_::::entry | VacantEntry.key | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::Entry::Vacant(0)] in lang:alloc::_::::entry | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::OccupiedEntry::alloc] in lang:alloc::_::::insert_entry | OccupiedEntry.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::insert_entry | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::OccupiedEntry::dormant_map] in lang:alloc::_::::insert_entry | OccupiedEntry.dormant_map | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::insert_entry | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::merge_iter::MergeIterInner::a] in lang:alloc::_::::new | MergeIterInner.a | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::merge_iter::MergeIterInner::b] in lang:alloc::_::::new | MergeIterInner.b | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::navigate::LazyLeafHandle::Edge(0)] in lang:alloc::_::::clone | Edge | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::navigate::LazyLeafHandle::Root(0)] in lang:alloc::_::::clone | Root | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::BalancingContext::parent] in lang:alloc::_::::consider_for_balancing | BalancingContext.parent | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::consider_for_balancing | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Internal(0)] in lang:alloc::_::::force | Internal | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::force | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Internal(0)].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::force | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Internal(0)] in lang:alloc::_::::force | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Leaf(0)] in lang:alloc::_::::force | Leaf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::force | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Leaf(0)].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::force | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Leaf(0)] in lang:alloc::_::::force | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::merge_tracking_child_edge | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::merge_tracking_child_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::steal_right | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::steal_right | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::awaken | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::awaken | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::cast_to_leaf_unchecked | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cast_to_leaf_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::dormant | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::dormant | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::forget_node_type | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::forget_node_type | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::left_edge | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::left_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::new_edge | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::new_kv | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_kv | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::reborrow | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::reborrow_mut | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::reborrow_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::merge_tracking_child_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::merge_tracking_child_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::steal_left | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::steal_left | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::steal_right | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::steal_right | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::left_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::left_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::new_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::new_kv | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_kv | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::right_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::right_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::first_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::first_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::first_kv | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::first_kv | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::last_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::last_edge | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::last_kv | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::last_kv | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::push_with_handle | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::push_with_handle | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::reborrow | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::push_with_handle | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::push_with_handle | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::reborrow | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::push_with_handle | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::push_with_handle | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::awaken | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::awaken | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::borrow_mut | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::borrow_valmut | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_valmut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::cast_to_leaf_unchecked | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cast_to_leaf_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::dormant | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::dormant | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::forget_type | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::forget_type | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::into_dying | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::into_dying | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::push_internal_level | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::push_internal_level | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::reborrow | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::awaken | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::awaken | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::borrow_mut | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::borrow_valmut | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_valmut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::cast_to_leaf_unchecked | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cast_to_leaf_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::dormant | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::dormant | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::forget_type | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::forget_type | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::into_dying | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::into_dying | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::push_internal_level | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::push_internal_level | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::reborrow | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::SplitResult::kv] in lang:alloc::_::::forget_node_type | SplitResult.kv | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::forget_node_type | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::SplitResult::left] in lang:alloc::_::::split | SplitResult.left | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::split | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::SplitResult::right] in lang:alloc::_::::split | SplitResult.right | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::split | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::SplitResult::right].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::split | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::SplitResult::right] in lang:alloc::_::::split | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchBound::Excluded(0)] in lang:alloc::_::::from_range | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_range | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchBound::Included(0)] in lang:alloc::_::::from_range | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_range | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::Found(0)] in lang:alloc::_::::search_node | Found | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::search_node | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::Found(0)].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::search_node | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::Found(0)] in lang:alloc::_::::search_node | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::GoDown(0)] in lang:alloc::_::::search_node | GoDown | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::search_node | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::GoDown(0)].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::search_node | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::GoDown(0)] in lang:alloc::_::::search_node | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone | BTreeSet | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::CursorMutKey::inner] in lang:alloc::_::::with_mutable_key | CursorMutKey | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::with_mutable_key | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Difference::inner] in lang:alloc::_::::difference | Difference | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::difference | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Difference::inner].Field[crate::collections::btree::set::DifferenceInner::Search::other_set] in lang:alloc::_::::difference | Search.other_set | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Difference::inner] in lang:alloc::_::::difference | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::ExtractIf::pred] in lang:alloc::_::::extract_if | ExtractIf.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Intersection::inner] in lang:alloc::_::::intersection | Intersection | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::intersection | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Intersection::inner].Field[crate::collections::btree::set::IntersectionInner::Search::large_set] in lang:alloc::_::::intersection | Search.large_set | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Intersection::inner] in lang:alloc::_::::intersection | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::Entry::Occupied(0)] in lang:std::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::and_modify | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::Entry::Vacant(0)] in lang:std::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::and_modify | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::HashMap::base] in lang:std::_::::clone | HashMap | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::HashMap::base].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::HashMap::base] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::Iter::base] in lang:std::_::::clone | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::Iter::base].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::Iter::base] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::RawEntryBuilder::map] in lang:std::_::::raw_entry | RawEntryBuilder | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::raw_entry | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::RawEntryBuilderMut::map] in lang:std::_::::raw_entry_mut | RawEntryBuilderMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::raw_entry_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::RawEntryMut::Occupied(0)] in lang:std::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::and_modify | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::RawEntryMut::Vacant(0)] in lang:std::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::and_modify | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Difference::other] in lang:std::_::::difference | Difference.other | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::difference | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::HashSet::base] in lang:std::_::::clone | HashSet | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::HashSet::base].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::HashSet::base] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Intersection::other] in lang:std::_::::intersection | Intersection.other | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::intersection | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Iter::base] in lang:std::_::::clone | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Iter::base].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Iter::base] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::SymmetricDifference::iter] in lang:std::_::::clone | SymmetricDifference | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::SymmetricDifference::iter].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::SymmetricDifference::iter] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Union::iter] in lang:std::_::::clone | Union | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Union::iter].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Union::iter] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::clone | Cursor.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::as_cursor | Cursor.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_cursor | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::cursor_back | Cursor.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::cursor_front | Cursor.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_front | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::index] in lang:alloc::_::::clone | Cursor.index | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::index] in lang:alloc::_::::as_cursor | Cursor.index | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_cursor | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::clone | Cursor.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::as_cursor | Cursor.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_cursor | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::cursor_back | Cursor.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::cursor_front | Cursor.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_front | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::cursor_back_mut | CursorMut.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_back_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::cursor_front_mut | CursorMut.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_front_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::cursor_back_mut | CursorMut.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_back_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::cursor_front_mut | CursorMut.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_front_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::ExtractIf::it] in lang:alloc::_::::extract_if | ExtractIf.it | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::ExtractIf::list] in lang:alloc::_::::extract_if | ExtractIf.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::ExtractIf::old_len] in lang:alloc::_::::extract_if | ExtractIf.old_len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::ExtractIf::pred] in lang:alloc::_::::extract_if | ExtractIf.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Iter::head] in lang:alloc::_::::iter | Iter.head | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Iter::len] in lang:alloc::_::::iter | Iter.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Iter::tail] in lang:alloc::_::::iter | Iter.tail | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::IterMut::head] in lang:alloc::_::::iter_mut | IterMut.head | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::IterMut::len] in lang:alloc::_::::iter_mut | IterMut.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::IterMut::tail] in lang:alloc::_::::iter_mut | IterMut.tail | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::LinkedList::alloc] in lang:alloc::_::::new_in | LinkedList.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::VecDeque::head] in lang:alloc::_::::from_contiguous_raw_parts_in | VecDeque.head | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_contiguous_raw_parts_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::drain::Drain::drain_len] in lang:alloc::_::::new | Drain.drain_len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::drain::Drain::idx] in lang:alloc::_::::new | Drain.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::drain::Drain::remaining] in lang:alloc::_::::new | Drain.remaining | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::into_iter::IntoIter::inner] in lang:alloc::_::::new | IntoIter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::iter::Iter::i1] in lang:alloc::_::::new | Iter.i1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::iter::Iter::i2] in lang:alloc::_::::new | Iter.i2 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::iter_mut::IterMut::i1] in lang:alloc::_::::new | IterMut.i1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::iter_mut::IterMut::i2] in lang:alloc::_::::new | IterMut.i2 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::diagnostic::Diagnostic::level] in lang:proc_macro::_::::new | Diagnostic.level | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::diagnostic::Diagnostic::level] in lang:proc_macro::_::::spanned | Diagnostic.level | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::spanned | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Report::error] in lang:std::_::::from | Report.error | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Report::pretty] in lang:std::_::::pretty | Report.pretty | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::pretty | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Report::show_backtrace] in lang:std::_::::show_backtrace | Report.show_backtrace | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::show_backtrace | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Source::current] in lang:core::_::::sources | Source | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::sources | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Source::current].Field[crate::option::Option::Some(0)] in lang:core::_::::sources | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Source::current] in lang:core::_::::sources | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::escape::EscapeIterInner::data] in lang:core::_::::backslash | EscapeIterInner.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::backslash | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::escape::EscapeIterInner::data].Element in lang:core::_::::backslash | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::escape::EscapeIterInner::data] in lang:core::_::::backslash | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ffi::os_str::Display::os_str] in lang:std::_::::display | Display | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::display | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::from_inner | OsString | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::from_encoded_bytes_unchecked | OsString | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_encoded_bytes_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ffi::os_str::OsString::inner].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::from_encoded_bytes_unchecked | Buf | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::from_encoded_bytes_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::args] in lang:core::_::::new_v1 | Arguments.args | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_v1 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::args] in lang:core::_::::new_v1_formatted | Arguments.args | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_v1_formatted | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::fmt] in lang:core::_::::new_v1_formatted | Arguments.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_v1_formatted | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::fmt].Field[crate::option::Option::Some(0)] in lang:core::_::::new_v1_formatted | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::fmt] in lang:core::_::::new_v1_formatted | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::pieces] in lang:core::_::::new_const | Arguments.pieces | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_const | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::pieces] in lang:core::_::::new_v1 | Arguments.pieces | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_v1 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::pieces] in lang:core::_::::new_v1_formatted | Arguments.pieces | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_v1_formatted | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::buf] in lang:core::_::::new | Formatter.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::buf] in lang:core::_::::with_options | Formatter.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::with_options | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::buf] in lang:core::_::::create_formatter | Formatter.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::create_formatter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::options] in lang:core::_::::new | Formatter.options | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::options] in lang:core::_::::with_options | Formatter.options | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::with_options | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::options] in lang:core::_::::create_formatter | Formatter.options | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::create_formatter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::FormattingOptions::align] in lang:core::_::::align | FormattingOptions.align | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::align | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::FormattingOptions::fill] in lang:core::_::::fill | FormattingOptions.fill | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::fill | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::FormattingOptions::precision] in lang:core::_::::precision | FormattingOptions.precision | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::precision | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::FormattingOptions::width] in lang:core::_::::width | FormattingOptions.width | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::width | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner] in lang:core::_::::debug_list | DebugList | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug_list | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner] in lang:core::_::crate::fmt::builders::debug_list_new | DebugList | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::debug_list_new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner].Field[crate::fmt::builders::DebugInner::fmt] in lang:core::_::::debug_list | DebugInner.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner] in lang:core::_::::debug_list | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner].Field[crate::fmt::builders::DebugInner::fmt] in lang:core::_::crate::fmt::builders::debug_list_new | DebugInner.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner] in lang:core::_::crate::fmt::builders::debug_list_new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::fmt] in lang:core::_::::debug_map | DebugMap.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::fmt] in lang:core::_::crate::fmt::builders::debug_map_new | DebugMap.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::debug_map_new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::entry | DebugMap.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::entry | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key | DebugMap.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::key | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key_with | DebugMap.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::key_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value | DebugMap.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::value | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value_with | DebugMap.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::value_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::entry | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::entry | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::key | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::key_with | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::value | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::value_with | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::debug_set | DebugSet | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug_set | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::crate::fmt::builders::debug_set_new | DebugSet | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::debug_set_new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::fmt] in lang:core::_::::debug_set | DebugInner.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::debug_set | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::fmt] in lang:core::_::crate::fmt::builders::debug_set_new | DebugInner.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::crate::fmt::builders::debug_set_new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::fmt] in lang:core::_::::debug_struct | DebugStruct.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug_struct | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::fmt] in lang:core::_::crate::fmt::builders::debug_struct_new | DebugStruct.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::debug_struct_new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field | DebugStruct.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::field | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field_with | DebugStruct.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::field_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field_with | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::fmt] in lang:core::_::::debug_tuple | DebugTuple.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug_tuple | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::fmt] in lang:core::_::crate::fmt::builders::debug_tuple_new | DebugTuple.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::debug_tuple_new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field | DebugTuple.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::field | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field_with | DebugTuple.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::field_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field_with | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::FromFn(0)] in lang:core::_::crate::fmt::builders::from_fn | FromFn | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::from_fn | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Argument::ty] in lang:core::_::::from_usize | Argument | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_usize | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Argument::ty].Field[crate::fmt::rt::ArgumentType::Count(0)] in lang:core::_::::from_usize | Count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Argument::ty] in lang:core::_::::from_usize | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::align] in lang:core::_::::new | Placeholder.align | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::fill] in lang:core::_::::new | Placeholder.fill | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::flags] in lang:core::_::::new | Placeholder.flags | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::position] in lang:core::_::::new | Placeholder.position | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::precision] in lang:core::_::::new | Placeholder.precision | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::width] in lang:core::_::::new | Placeholder.width | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fs::DirBuilder::recursive] in lang:std::_::::recursive | DirBuilder.recursive | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::recursive | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fs::File::inner] in lang:std::_::::from_inner | File | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fs::Metadata(0)] in lang:std::_::::from_inner | Metadata | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fs::Permissions(0)] in lang:std::_::::from_inner | Permissions | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::future::poll_fn::PollFn::f] in lang:core::_::crate::future::poll_fn::poll_fn | PollFn | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::future::poll_fn::poll_fn | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::future::ready::Ready(0)] in lang:core::_::crate::future::ready::ready | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::future::ready::ready | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::future::ready::Ready(0)].Field[crate::option::Option::Some(0)] in lang:core::_::crate::future::ready::ready | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::future::ready::Ready(0)] in lang:core::_::crate::future::ready::ready | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::hash::sip::SipHasher13::hasher] in lang:core::_::::new_with_keys | SipHasher13 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_with_keys | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::hash::sip::SipHasher13::hasher].Field[crate::hash::sip::Hasher::k0] in lang:core::_::::new_with_keys | Hasher.k0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::hash::sip::SipHasher13::hasher] in lang:core::_::::new_with_keys | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::hash::sip::SipHasher13::hasher].Field[crate::hash::sip::Hasher::k1] in lang:core::_::::new_with_keys | Hasher.k1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::hash::sip::SipHasher13::hasher] in lang:core::_::::new_with_keys | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedBuf::buf] in lang:core::_::::from | BorrowedBuf.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::set_init | BorrowedBuf.init | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::set_init | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::buf] in lang:core::_::::set_init | BorrowedCursor.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::set_init | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::buf].Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::set_init | BorrowedBuf.init | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::buf] in lang:core::_::::set_init | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::start] in lang:core::_::::unfilled | BorrowedCursor.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::unfilled | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::start] in lang:core::_::::reborrow | BorrowedCursor.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::reborrow | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufreader::BufReader::buf] in lang:std::_::::with_buffer | BufReader.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_buffer | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::new | BufReader.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::with_buffer | BufReader.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_buffer | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::with_capacity | BufReader.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_capacity | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::buf] in lang:std::_::::with_buffer | BufWriter.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_buffer | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::new | BufWriter.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::with_buffer | BufWriter.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_buffer | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::with_capacity | BufWriter.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_capacity | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner] in lang:std::_::::new | LineWriter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner] in lang:std::_::::with_capacity | LineWriter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_capacity | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner].Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::new | BufWriter.inner | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner] in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner].Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::with_capacity | BufWriter.inner | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner] in lang:std::_::::with_capacity | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewritershim::LineWriterShim::buffer] in lang:std::_::::new | LineWriterShim | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::cursor::Cursor::inner] in lang:std::_::::new | Cursor.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::util::Repeat::byte] in lang:std::_::crate::io::util::repeat | Repeat | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::io::util::repeat | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::array_chunks::ArrayChunks::iter] in lang:core::_::::new | ArrayChunks.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::a] in lang:core::_::::new | Chain.a | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::a].Field[crate::option::Option::Some(0)] in lang:core::_::::new | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::a] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::b] in lang:core::_::::new | Chain.b | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::b].Field[crate::option::Option::Some(0)] in lang:core::_::::new | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::b] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::cloned::Cloned::it] in lang:core::_::::new | Cloned | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::copied::Copied::it] in lang:core::_::::new | Copied | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::enumerate::Enumerate::iter] in lang:core::_::::new | Enumerate.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::filter::Filter::iter] in lang:core::_::::new | Filter.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::filter::Filter::predicate] in lang:core::_::::new | Filter.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::filter_map::FilterMap::f] in lang:core::_::::new | FilterMap.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::filter_map::FilterMap::iter] in lang:core::_::::new | FilterMap.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::clone | FlatMap | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::flatten::Flatten::inner] in lang:core::_::::clone | Flatten | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::fuse::Fuse::iter] in lang:core::_::::new | Fuse | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::fuse::Fuse::iter].Field[crate::option::Option::Some(0)] in lang:core::_::::new | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::fuse::Fuse::iter] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::inspect::Inspect::f] in lang:core::_::::new | Inspect.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::inspect::Inspect::iter] in lang:core::_::::new | Inspect.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::intersperse::Intersperse::separator] in lang:core::_::::new | Intersperse.separator | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::intersperse::IntersperseWith::separator] in lang:core::_::::new | IntersperseWith.separator | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map::Map::f] in lang:core::_::::new | Map.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map::Map::iter] in lang:core::_::::new | Map.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map_while::MapWhile::iter] in lang:core::_::::new | MapWhile.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map_while::MapWhile::predicate] in lang:core::_::::new | MapWhile.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map_windows::Buffer::start] in lang:core::_::::clone | Buffer.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map_windows::MapWindows::f] in lang:core::_::::new | MapWindows.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::peekable::Peekable::iter] in lang:core::_::::new | Peekable.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::rev::Rev::iter] in lang:core::_::::new | Rev | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::scan::Scan::f] in lang:core::_::::new | Scan.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::scan::Scan::iter] in lang:core::_::::new | Scan.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::scan::Scan::state] in lang:core::_::::new | Scan.state | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::new | Skip.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::skip::Skip::n] in lang:core::_::::new | Skip.n | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::skip_while::SkipWhile::iter] in lang:core::_::::new | SkipWhile.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::skip_while::SkipWhile::predicate] in lang:core::_::::new | SkipWhile.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::take::Take::iter] in lang:core::_::::new | Take.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::take::Take::n] in lang:core::_::::new | Take.n | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::take_while::TakeWhile::iter] in lang:core::_::::new | TakeWhile.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::take_while::TakeWhile::predicate] in lang:core::_::::new | TakeWhile.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::zip::Zip::a] in lang:core::_::::new | Zip.a | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::zip::Zip::b] in lang:core::_::::new | Zip.b | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::from_coroutine::FromCoroutine(0)] in lang:core::_::crate::iter::sources::from_coroutine::from_coroutine | FromCoroutine | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::from_coroutine::from_coroutine | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::from_fn::FromFn(0)] in lang:core::_::crate::iter::sources::from_fn::from_fn | FromFn | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::from_fn::from_fn | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::crate::iter::sources::repeat::repeat | Repeat | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::repeat::repeat | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::repeat_n::RepeatN::count] in lang:core::_::::clone | RepeatN.count | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::repeat_n::RepeatN::count] in lang:core::_::crate::iter::sources::repeat_n::repeat_n | RepeatN.count | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::repeat_n::repeat_n | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::repeat_with::RepeatWith::repeater] in lang:core::_::crate::iter::sources::repeat_with::repeat_with | RepeatWith | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::repeat_with::repeat_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::successors::Successors::next] in lang:core::_::crate::iter::sources::successors::successors | Successors.next | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::successors::successors | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::successors::Successors::succ] in lang:core::_::crate::iter::sources::successors::successors | Successors.succ | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::successors::successors | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:core::_::::new | ManuallyDrop | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V4(0)] in lang:core::_::::from | V4 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V4(0)].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::from | Ipv4Addr | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V4(0)] in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)] in lang:core::_::::from | V6 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)] in lang:core::_::::to_canonical | V6 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::to_canonical | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)].Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::from | Ipv6Addr | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)] in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::from | Ipv4Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::from_octets | Ipv4Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_octets | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::new | Ipv4Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets].Element in lang:core::_::::new | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::to_ipv6_compatible | Ipv6Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::to_ipv6_compatible | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::to_ipv6_mapped | Ipv6Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::to_ipv6_mapped | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::from | Ipv6Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::from_octets | Ipv6Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_octets | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets].Element in lang:core::_::::to_ipv6_compatible | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::to_ipv6_compatible | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets].Element in lang:core::_::::to_ipv6_mapped | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::to_ipv6_mapped | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)] in lang:core::_::::from | V4 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)] in lang:core::_::::new | V4 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)].Field[crate::net::socket_addr::SocketAddrV4::ip] in lang:core::_::::new | SocketAddrV4.ip | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)].Field[crate::net::socket_addr::SocketAddrV4::port] in lang:core::_::::from | SocketAddrV4.port | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)] in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)].Field[crate::net::socket_addr::SocketAddrV4::port] in lang:core::_::::new | SocketAddrV4.port | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)] in lang:core::_::::from | V6 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)] in lang:core::_::::new | V6 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)].Field[crate::net::socket_addr::SocketAddrV6::ip] in lang:core::_::::new | SocketAddrV6.ip | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)].Field[crate::net::socket_addr::SocketAddrV6::port] in lang:core::_::::from | SocketAddrV6.port | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)] in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)].Field[crate::net::socket_addr::SocketAddrV6::port] in lang:core::_::::new | SocketAddrV6.port | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV4::ip] in lang:core::_::::new | SocketAddrV4.ip | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV4::port] in lang:core::_::::new | SocketAddrV4.port | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::flowinfo] in lang:core::_::::new | SocketAddrV6.flowinfo | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::ip] in lang:core::_::::new | SocketAddrV6.ip | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::port] in lang:core::_::::new | SocketAddrV6.port | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::scope_id] in lang:core::_::::new | SocketAddrV6.scope_id | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::tcp::Incoming::listener] in lang:std::_::::incoming | Incoming | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::incoming | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::tcp::IntoIncoming::listener] in lang:std::_::::into_incoming | IntoIncoming | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_incoming | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::tcp::TcpListener(0)] in lang:std::_::::from_inner | TcpListener | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::tcp::TcpStream(0)] in lang:std::_::::from_inner | TcpStream | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::udp::UdpSocket(0)] in lang:std::_::::from_inner | UdpSocket | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::::clone | Big32x40.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::::from_small | Big32x40.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_small | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::::mul_pow2 | Big32x40.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::mul_pow2 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | Big32x40.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::::from_small | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::::from_small | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::::mul_pow2 | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::::mul_pow2 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::size] in lang:core::_::::clone | Big32x40.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::size] in lang:core::_::::add | Big32x40.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::add | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::size] in lang:core::_::::mul_small | Big32x40.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::mul_small | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::size] in lang:core::_::::sub | Big32x40.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::sub | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::size] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | Big32x40.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::clone | Big8x3.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::from_small | Big8x3.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_small | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::mul_pow2 | Big8x3.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::mul_pow2 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base].Element in lang:core::_::::from_small | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::from_small | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base].Element in lang:core::_::::mul_pow2 | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::mul_pow2 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::clone | Big8x3.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::add | Big8x3.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::add | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::mul_small | Big8x3.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::mul_small | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::sub | Big8x3.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::sub | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::dec2flt::common::BiasedFp::e] in lang:core::_::::zero_pow2 | BiasedFp.e | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::zero_pow2 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::diy_float::Fp::e] in lang:core::_::::normalize | Fp.e | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::normalize | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::diy_float::Fp::e] in lang:core::_::::normalize_to | Fp.e | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::normalize_to | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::diy_float::Fp::f] in lang:core::_::::normalize | Fp.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::normalize | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::from_residual | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_residual | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::map_break | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_break | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::map_continue | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_continue | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | Break | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::branch | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::branch | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::from_output | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_output | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::map_break | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_break | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::map_continue | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_continue | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::branch | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::new_unchecked | IndexRange.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::take_prefix | IndexRange.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::take_prefix | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::take_suffix | IndexRange.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::take_suffix | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::zero_to | IndexRange.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::zero_to | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::new_unchecked | IndexRange.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::take_prefix | IndexRange.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::take_prefix | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::take_suffix | IndexRange.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::take_suffix | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_mut | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_ref | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::map | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_mut | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_ref | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::map | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Range::end] in lang:core::_::::from | Range.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Range::end] in lang:core::_::crate::slice::index::range | Range.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::slice::index::range | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Range::start] in lang:core::_::::from | Range.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::RangeFrom::start] in lang:core::_::::from | RangeFrom | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::new | RangeInclusive.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::new | RangeInclusive.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::try_trait::NeverShortCircuit(0)] in lang:core::_::::from_output | NeverShortCircuit | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_output | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Iter::inner] in lang:core::_::::clone | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::<&crate::string::String as crate::str::pattern::Pattern>::as_utf8_pattern | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::<&crate::string::String as crate::str::pattern::Pattern>::as_utf8_pattern | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::peek_mut | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::peek_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::index | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::index | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::index | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::index | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::remove_current_as_list | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::remove_current_as_list | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::source | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::source | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::upgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::upgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::next_back | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::then | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::then | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::then_some | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::then_some | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_utf8_pattern | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_utf8_pattern | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_str | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_usize | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_usize | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::take_output | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::take_output | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::write | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::write | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::break_value | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::break_value | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::continue_value | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::continue_value | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_next_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::get | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::get_mut | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_next_back | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::clone | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::from | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::from_output | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_output | @@ -1077,16 +1859,41 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::copied | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::copied | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::zip | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::zip_with | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::location | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::location | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::err | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::err | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::ok | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::transpose | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::last | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::last | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::last | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::finish | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::finish | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::last | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_match_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_match_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_match | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_match | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::matching | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_abs | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_abs | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | @@ -1108,8 +1915,17 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::iter::traits::iterator::Iterator::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::iter::traits::iterator::Iterator::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::slice::index::try_range | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::slice::index::try_range | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:proc_macro::_::::as_str | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::as_str | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:proc_macro::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::location | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::location | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::capacity | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::capacity | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::cause | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::cause | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::try_lock | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_lock | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::fd | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::fd | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::from_u32 | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_u32 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | @@ -1121,25 +1937,136 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/clap-rs/clap:clap_builder::_::::insert | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/clap-rs/clap:clap_builder::_::::insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::ty | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::ty | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::next | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::zip | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::next | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::next_match_back | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_match_back | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::matching | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::next | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::nth | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::zip | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::next_match | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_match | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::matching | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::collections::binary_heap::PeekMut::heap] in lang:alloc::_::::peek_mut | PeekMut.heap | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::peek_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::collections::linked_list::LinkedList::alloc] in lang:alloc::_::::remove_current_as_list | LinkedList.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::remove_current_as_list | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::ops::range::Range::end] in lang:core::_::crate::slice::index::try_range | Range.end | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::slice::index::try_range | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::rc::Rc::alloc] in lang:alloc::_::::upgrade | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::rc::Rc::ptr] in lang:alloc::_::::upgrade | Rc.ptr | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::transpose | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Ok(0)] in lang:std::_::::next | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::str::pattern::Utf8Pattern::CharPattern(0)] in lang:core::_::::as_utf8_pattern | CharPattern | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_utf8_pattern | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::str::pattern::Utf8Pattern::StringPattern(0)] in lang:alloc::_::<&crate::string::String as crate::str::pattern::Pattern>::as_utf8_pattern | StringPattern | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::<&crate::string::String as crate::str::pattern::Pattern>::as_utf8_pattern | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::Arc::alloc] in lang:alloc::_::::upgrade | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::Arc::ptr] in lang:alloc::_::::upgrade | Arc.ptr | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock] in lang:std::_::::try_lock | ReentrantLockGuard | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::try_lock | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sys_common::wtf8::CodePoint::value] in lang:std::_::::from_u32 | CodePoint | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::from_u32 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:alloc::_::::source | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::source | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::spec_next_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::spec_next | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::spec_next_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next_back | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::from | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::from | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::location | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::location | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::last | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::last | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::last | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:std::_::::location | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::location | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:std::_::::cause | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::cause | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::os::unix::net::listener::Incoming::listener] in lang:std::_::<&crate::os::unix::net::listener::UnixListener as crate::iter::traits::collect::IntoIterator>::into_iter | Incoming | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<&crate::os::unix::net::listener::UnixListener as crate::iter::traits::collect::IntoIterator>::into_iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::os::unix::net::listener::Incoming::listener] in lang:std::_::::incoming | Incoming | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::incoming | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::PanicHookInfo::can_unwind] in lang:std::_::::new | PanicHookInfo.can_unwind | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::PanicHookInfo::force_no_backtrace] in lang:std::_::::new | PanicHookInfo.force_no_backtrace | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::PanicHookInfo::location] in lang:std::_::::new | PanicHookInfo.location | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::PanicHookInfo::payload] in lang:std::_::::new | PanicHookInfo.payload | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::location::Location::col] in lang:core::_::::internal_constructor | Location.col | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::internal_constructor | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::location::Location::file] in lang:core::_::::internal_constructor | Location.file | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::internal_constructor | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::location::Location::line] in lang:core::_::::internal_constructor | Location.line | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::internal_constructor | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::panic_info::PanicInfo::can_unwind] in lang:core::_::::new | PanicInfo.can_unwind | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::panic_info::PanicInfo::force_no_backtrace] in lang:core::_::::new | PanicInfo.force_no_backtrace | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::panic_info::PanicInfo::location] in lang:core::_::::new | PanicInfo.location | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::panic_info::PanicInfo::message] in lang:core::_::::new | PanicInfo.message | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::panic_info::PanicMessage::message] in lang:core::_::::message | PanicMessage | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::message | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::path::Display::inner] in lang:std::_::::display | Display | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::display | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::path::Display::inner].Field[crate::ffi::os_str::Display::os_str] in lang:std::_::::display | Display | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::path::Display::inner] in lang:std::_::::display | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::path::PathBuf::inner] in lang:std::_::::from | PathBuf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:alloc::_::::into_pin | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::into_pin | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:alloc::_::::from | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::as_mut | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::as_ref | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::into_ref | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked_mut | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_unchecked_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::new | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::new_unchecked | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::static_mut | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::static_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::static_ref | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::static_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::map_unchecked_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::Child::handle] in lang:std::_::::from_inner | Child.handle | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::ChildStderr::inner] in lang:std::_::::from_inner | ChildStderr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::ChildStdin::inner] in lang:std::_::::from_inner | ChildStdin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::ChildStdout::inner] in lang:std::_::::from_inner | ChildStdout | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::ExitCode(0)] in lang:std::_::::from_inner | ExitCode | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::ExitStatus(0)] in lang:std::_::::from_inner | ExitStatus | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::Stdio(0)] in lang:std::_::::from_inner | Stdio | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ptr::unique::Unique::pointer] in lang:core::_::::from | Unique.pointer | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::Range::end] in lang:core::_::::from | Range.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::Range::start] in lang:core::_::::from | Range.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::Range::start] in lang:core::_::::into_slice_range | Range.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_slice_range | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::RangeFrom::start] in lang:core::_::::from | RangeFrom | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::RangeFrom::start] in lang:core::_::::remainder | RangeFrom | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::remainder | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::RangeInclusive::end] in lang:core::_::::from | RangeInclusive.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::RangeInclusive::start] in lang:core::_::::from | RangeInclusive.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::from_nonnull_in | RawVec.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_nonnull_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::from_raw_parts_in | RawVec.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_raw_parts_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::new_in | RawVec.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::with_capacity_in | RawVec.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::with_capacity_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::with_capacity_zeroed_in | RawVec.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::with_capacity_zeroed_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc] in lang:alloc::_::::from_nonnull_in | RawVecInner.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::from_nonnull_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc] in lang:alloc::_::::from_raw_parts_in | RawVecInner.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::from_raw_parts_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc] in lang:alloc::_::::new_in | RawVecInner.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::new_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc] in lang:alloc::_::::with_capacity_in | RawVecInner.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::with_capacity_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc] in lang:alloc::_::::with_capacity_zeroed_in | RawVecInner.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::with_capacity_zeroed_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Rc::alloc] in lang:alloc::_::::new_uninit_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_uninit_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Rc::alloc] in lang:alloc::_::::new_uninit_slice_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_uninit_slice_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Rc::alloc] in lang:alloc::_::::new_zeroed_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_zeroed_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Rc::alloc] in lang:alloc::_::::new_zeroed_slice_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_zeroed_slice_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Weak::alloc] in lang:alloc::_::::downgrade | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Weak::alloc] in lang:alloc::_::::from_raw_in | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_raw_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Weak::alloc] in lang:alloc::_::::new_in | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Weak::ptr] in lang:alloc::_::::downgrade | Weak.ptr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Iter::inner] in lang:core::_::::clone | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_from | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_from | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::downcast | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downcast | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::left_kv | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::left_kv | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::right_kv | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::right_kv | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::from_vec_with_nul | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_vec_with_nul | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_from | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_from | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::downcast | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downcast | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_unwrap | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_unwrap | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::from_utf8 | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_utf8 | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_from | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_from | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::downcast | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downcast | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_unwrap | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_unwrap | @@ -1149,6 +2076,12 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::filter_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::filter_map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::set | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish_non_exhaustive | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish_non_exhaustive | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish_non_exhaustive | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::ok_or | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::ok_or_else | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or_else | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::transpose | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::transpose | @@ -1162,15 +2095,27 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::copied | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::copied | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::flatten | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::flatten | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::send | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_send | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::write | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::write | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::write | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::write | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::send | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_send | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::write | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::write | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::set | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::wait | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_inner | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::replace | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::replace | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::set | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_inner | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::replace | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::replace | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::set | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_string | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_string | @@ -1241,12 +2186,38 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in lang:std::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::collections::btree::map::entry::OccupiedError::value] in lang:alloc::_::::try_insert | OccupiedError.value | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::collections::hash::map::OccupiedError::value] in lang:std::_::::try_insert | OccupiedError.value | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::ffi::c_str::FromVecWithNulError::bytes] in lang:alloc::_::::from_vec_with_nul | FromVecWithNulError.bytes | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::from_vec_with_nul | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::string::FromUtf8Error::bytes] in lang:alloc::_::::from_utf8 | FromUtf8Error.bytes | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::from_utf8 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpmc::error::SendTimeoutError::Disconnected(0)] in lang:std::_::::send | Disconnected | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::send | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpmc::error::SendTimeoutError::Timeout(0)] in lang:std::_::::send | Timeout | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::send | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Disconnected(0)] in lang:core::_::::map_err | Disconnected | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Disconnected(0)] in lang:std::_::::try_send | Disconnected | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_send | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Full(0)] in lang:std::_::::try_send | Full | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_send | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Full(0)] in lang:std::_::::try_send | Full | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_send | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::wait | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::wait | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::into_inner | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::replace | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::replace | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::set | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::set | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::into_inner | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::replace | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::replace | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::set | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::set | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_uninit_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_zeroed_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::left_kv | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::left_kv | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::right_kv | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::right_kv | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::search_tree_for_bifurcation | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::search_tree_for_bifurcation | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_uninit_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_zeroed_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::from_utf8 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_utf8 | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::parse | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_uninit_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_zeroed_in | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::align_to | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::align_to | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::array | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::array | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::extend | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::extend | @@ -1254,6 +2225,9 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::from_size_align | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_size_align | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::repeat | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::repeat | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::repeat_packed | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::repeat_packed | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::filter_map | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::filter_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::filter_map | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::filter_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::padding | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::padding | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::ok_or | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::ok_or_else | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or_else | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::transpose | @@ -1269,13 +2243,21 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::parse | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::fill_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::fill_buf | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::seek | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::seek | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::stream_position | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::stream_position | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::try_clone | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::from_parts | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_parts | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::canonicalize | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::canonicalize | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::from_str | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_str | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait_timeout | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_ms | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait_timeout_ms | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_while | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait_timeout_while | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_while | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait_while | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::into_inner | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::lock | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::lock | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::into_inner | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::write | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::write | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::try_with | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_with | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::crate::sys::pal::unix::cvt | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::sys::pal::unix::cvt | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo::serde_test_suite::_::::variant_seed | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::variant_seed | @@ -1335,10 +2317,291 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:std::_::::wait_timeout_while | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_while | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait_timeout | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait_timeout | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[1] in repo::serde_test_suite::_::::variant_seed | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo::serde_test_suite::_::::variant_seed | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::align] in lang:core::_::::align_to | Layout.align | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::align_to | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::align] in lang:core::_::::extend_packed | Layout.align | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::extend_packed | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::align] in lang:core::_::::repeat_packed | Layout.align | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::repeat_packed | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::size] in lang:core::_::::align_to | Layout.size | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::align_to | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::size] in lang:core::_::::from_size_align | Layout.size | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::from_size_align | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::boxed::Box(1)] in lang:alloc::_::::try_new_uninit_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::boxed::Box(1)] in lang:alloc::_::::try_new_zeroed_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::cell::Ref::borrow] in lang:core::_::::filter_map | Ref.borrow | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::filter_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::cell::RefMut::borrow] in lang:core::_::::filter_map | RefMut.borrow | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::filter_map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::right_kv | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::right_kv | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::left_kv | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::left_kv | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::right_kv | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::right_kv | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::fmt::PostPadding::fill] in lang:core::_::::padding | PostPadding.fill | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::padding | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::fmt::PostPadding::padding] in lang:core::_::::padding | PostPadding.padding | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::padding | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::os::unix::net::addr::SocketAddr::addr] in lang:std::_::::from_parts | SocketAddr.addr | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::from_parts | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::os::unix::net::addr::SocketAddr::len] in lang:std::_::::from_parts | SocketAddr.len | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::from_parts | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::path::PathBuf::inner] in lang:std::_::::from_str | PathBuf | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::from_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::rc::Rc::alloc] in lang:alloc::_::::try_new_uninit_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::rc::Rc::alloc] in lang:alloc::_::::try_new_zeroed_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::string::String::vec] in lang:alloc::_::::from_utf8 | String | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::from_utf8 | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::Arc::alloc] in lang:alloc::_::::try_new_uninit_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::Arc::alloc] in lang:alloc::_::::try_new_zeroed_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::poison::mutex::MutexGuard::lock] in lang:std::_::::lock | MutexGuard.lock | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::lock | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock] in lang:std::_::::write | RwLockWriteGuard.lock | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::write | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_ref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rngs::mock::StepRng::a] in repo:https://github.com/rust-random/rand:rand::_::::new | StepRng.a | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rngs::mock::StepRng::v] in repo:https://github.com/rust-random/rand:rand::_::::new | StepRng.v | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkBy::predicate] in lang:core::_::<[_]>::chunk_by | ChunkBy.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunk_by | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkBy::predicate] in lang:core::_::::new | ChunkBy.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkBy::slice] in lang:core::_::<[_]>::chunk_by | ChunkBy.slice | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunk_by | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkBy::slice] in lang:core::_::::new | ChunkBy.slice | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkByMut::predicate] in lang:core::_::<[_]>::chunk_by_mut | ChunkByMut.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunk_by_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkByMut::predicate] in lang:core::_::::new | ChunkByMut.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkByMut::slice] in lang:core::_::<[_]>::chunk_by_mut | ChunkByMut.slice | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunk_by_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkByMut::slice] in lang:core::_::::new | ChunkByMut.slice | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::chunk_size] in lang:core::_::<[_]>::chunks | Chunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::chunk_size] in lang:core::_::::clone | Chunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::chunk_size] in lang:core::_::::new | Chunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::v] in lang:core::_::<[_]>::chunks | Chunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::v] in lang:core::_::::clone | Chunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::v] in lang:core::_::::new | Chunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExact::chunk_size] in lang:core::_::<[_]>::chunks_exact | ChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks_exact | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExact::chunk_size] in lang:core::_::::clone | ChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExact::chunk_size] in lang:core::_::::new | ChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExact::rem] in lang:core::_::::clone | ChunksExact.rem | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::clone | ChunksExact.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExactMut::chunk_size] in lang:core::_::<[_]>::chunks_exact_mut | ChunksExactMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks_exact_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExactMut::chunk_size] in lang:core::_::::new | ChunksExactMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksMut::chunk_size] in lang:core::_::<[_]>::chunks_mut | ChunksMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksMut::chunk_size] in lang:core::_::::new | ChunksMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksMut::v] in lang:core::_::<[_]>::chunks_mut | ChunksMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksMut::v] in lang:core::_::::new | ChunksMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Iter::_marker] in lang:core::_::::clone | Iter._marker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Iter::end_or_len] in lang:core::_::::clone | Iter.end_or_len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Iter::ptr] in lang:core::_::::clone | Iter.ptr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::chunk_size] in lang:core::_::<[_]>::rchunks | RChunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::chunk_size] in lang:core::_::::clone | RChunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::chunk_size] in lang:core::_::::new | RChunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::v] in lang:core::_::<[_]>::rchunks | RChunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::v] in lang:core::_::::clone | RChunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::v] in lang:core::_::::new | RChunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExact::chunk_size] in lang:core::_::<[_]>::rchunks_exact | RChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks_exact | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExact::chunk_size] in lang:core::_::::clone | RChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExact::chunk_size] in lang:core::_::::new | RChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExact::rem] in lang:core::_::::clone | RChunksExact.rem | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::clone | RChunksExact.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExactMut::chunk_size] in lang:core::_::<[_]>::rchunks_exact_mut | RChunksExactMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks_exact_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExactMut::chunk_size] in lang:core::_::::new | RChunksExactMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksMut::chunk_size] in lang:core::_::<[_]>::rchunks_mut | RChunksMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksMut::chunk_size] in lang:core::_::::new | RChunksMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksMut::v] in lang:core::_::<[_]>::rchunks_mut | RChunksMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksMut::v] in lang:core::_::::new | RChunksMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::<[_]>::rsplit | RSplit | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rsplit | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::::clone | RSplit | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::::new | RSplit | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner].Field[crate::slice::iter::Split::pred] in lang:core::_::<[_]>::rsplit | Split.pred | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::<[_]>::rsplit | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner].Field[crate::slice::iter::Split::pred] in lang:core::_::::new | Split.pred | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner].Field[crate::slice::iter::Split::v] in lang:core::_::<[_]>::rsplit | Split.v | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::<[_]>::rsplit | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner].Field[crate::slice::iter::Split::v] in lang:core::_::::new | Split.v | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::<[_]>::rsplit_mut | RSplitMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rsplit_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::::new | RSplitMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner].Field[crate::slice::iter::SplitMut::pred] in lang:core::_::<[_]>::rsplit_mut | SplitMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::<[_]>::rsplit_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner].Field[crate::slice::iter::SplitMut::pred] in lang:core::_::::new | SplitMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner].Field[crate::slice::iter::SplitMut::v] in lang:core::_::<[_]>::rsplit_mut | SplitMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::<[_]>::rsplit_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner].Field[crate::slice::iter::SplitMut::v] in lang:core::_::::new | SplitMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner] in lang:core::_::<[_]>::rsplitn | RSplitN | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rsplitn | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner] in lang:core::_::::new | RSplitN | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::<[_]>::rsplitn | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner] in lang:core::_::<[_]>::rsplitn | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::::new | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::new | GenericSplitN.iter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner] in lang:core::_::<[_]>::rsplitn_mut | RSplitNMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rsplitn_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner] in lang:core::_::::new | RSplitNMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::<[_]>::rsplitn_mut | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner] in lang:core::_::<[_]>::rsplitn_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::::new | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::new | GenericSplitN.iter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Split::pred] in lang:core::_::<[_]>::split | Split.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Split::pred] in lang:core::_::::new | Split.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Split::v] in lang:core::_::<[_]>::split | Split.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Split::v] in lang:core::_::::new | Split.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusive::pred] in lang:core::_::<[_]>::split_inclusive | SplitInclusive.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_inclusive | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusive::pred] in lang:core::_::::new | SplitInclusive.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::<[_]>::split_inclusive | SplitInclusive.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_inclusive | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::new | SplitInclusive.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusiveMut::pred] in lang:core::_::<[_]>::split_inclusive_mut | SplitInclusiveMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_inclusive_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusiveMut::pred] in lang:core::_::::new | SplitInclusiveMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusiveMut::v] in lang:core::_::<[_]>::split_inclusive_mut | SplitInclusiveMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_inclusive_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusiveMut::v] in lang:core::_::::new | SplitInclusiveMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitMut::pred] in lang:core::_::<[_]>::split_mut | SplitMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitMut::pred] in lang:core::_::::new | SplitMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitMut::v] in lang:core::_::<[_]>::split_mut | SplitMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitMut::v] in lang:core::_::::new | SplitMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner] in lang:core::_::<[_]>::splitn | SplitN | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::splitn | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner] in lang:core::_::::new | SplitN | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::<[_]>::splitn | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner] in lang:core::_::<[_]>::splitn | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::::new | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::new | GenericSplitN.iter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner] in lang:core::_::<[_]>::splitn_mut | SplitNMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::splitn_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner] in lang:core::_::::new | SplitNMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::<[_]>::splitn_mut | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner] in lang:core::_::<[_]>::splitn_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::::new | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::new | GenericSplitN.iter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Windows::size] in lang:core::_::::clone | Windows.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Windows::size] in lang:core::_::::new | Windows.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Windows::v] in lang:core::_::<[_]>::windows | Windows.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::windows | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Windows::v] in lang:core::_::::clone | Windows.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Windows::v] in lang:core::_::::new | Windows.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::iter::SplitInternal::matcher] in lang:core::_::::clone | SplitInternal.matcher | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::iter::SplitN(0)] in lang:core::_::::splitn | SplitN | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::splitn | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::iter::SplitN(0)].Field[crate::str::iter::SplitNInternal::count] in lang:core::_::::splitn | SplitNInternal.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::iter::SplitN(0)] in lang:core::_::::splitn | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::iter::SplitNInternal::iter] in lang:core::_::::clone | SplitNInternal.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::lossy::Debug(0)] in lang:core::_::::debug | Debug | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::lossy::Utf8Chunks::source] in lang:core::_::<[u8]>::utf8_chunks | Utf8Chunks | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[u8]>::utf8_chunks | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::CharSearcher::haystack] in lang:core::_::::into_searcher | CharSearcher.haystack | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_searcher | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::CharSearcher::needle] in lang:core::_::::into_searcher | CharSearcher.needle | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_searcher | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::MultiCharEqSearcher::char_eq] in lang:core::_::::into_searcher | MultiCharEqSearcher.char_eq | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_searcher | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::MultiCharEqSearcher::haystack] in lang:core::_::::into_searcher | MultiCharEqSearcher.haystack | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_searcher | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::SearchStep::Match(0)] in lang:core::_::::matching | Match(0) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::matching | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::SearchStep::Match(1)] in lang:core::_::::matching | Match(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::matching | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::SearchStep::Reject(0)] in lang:core::_::::rejecting | Reject(0) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::rejecting | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::SearchStep::Reject(1)] in lang:core::_::::rejecting | Reject(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::rejecting | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::StrSearcher::haystack] in lang:core::_::<&str as crate::str::pattern::Pattern>::into_searcher | StrSearcher.haystack | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&str as crate::str::pattern::Pattern>::into_searcher | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::StrSearcher::needle] in lang:core::_::<&str as crate::str::pattern::Pattern>::into_searcher | StrSearcher.needle | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&str as crate::str::pattern::Pattern>::into_searcher | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::string::String::vec] in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | String | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::string::String::vec] in lang:alloc::_::::clone | String | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::string::String::vec] in lang:alloc::_::::from_utf8_lossy_owned | String | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_utf8_lossy_owned | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::string::String::vec] in lang:alloc::_::::from_utf8_unchecked | String | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_utf8_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Arc::alloc] in lang:alloc::_::::new_uninit_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_uninit_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Arc::alloc] in lang:alloc::_::::new_uninit_slice_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_uninit_slice_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Arc::alloc] in lang:alloc::_::::new_zeroed_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_zeroed_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Arc::alloc] in lang:alloc::_::::new_zeroed_slice_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_zeroed_slice_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Weak::alloc] in lang:alloc::_::::downgrade | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Weak::alloc] in lang:alloc::_::::from_raw_in | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_raw_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Weak::alloc] in lang:alloc::_::::new_in | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Weak::ptr] in lang:alloc::_::::downgrade | Weak.ptr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI8::v] in lang:core::_::::new | AtomicI8 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI8::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI8::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI16::v] in lang:core::_::::new | AtomicI16 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI16::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI16::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI32::v] in lang:core::_::::new | AtomicI32 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI32::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI32::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI64::v] in lang:core::_::::new | AtomicI64 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI64::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI64::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI128::v] in lang:core::_::::new | AtomicI128 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI128::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI128::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicIsize::v] in lang:core::_::::new | AtomicIsize | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicIsize::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicIsize::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicPtr::p] in lang:core::_::::new | AtomicPtr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicPtr::p].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicPtr::p] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU8::v] in lang:core::_::::new | AtomicU8 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU8::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU8::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU16::v] in lang:core::_::::new | AtomicU16 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU16::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU16::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU32::v] in lang:core::_::::new | AtomicU32 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU32::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU32::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU64::v] in lang:core::_::::new | AtomicU64 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU64::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU64::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU128::v] in lang:core::_::::new | AtomicU128 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU128::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU128::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicUsize::v] in lang:core::_::::new | AtomicUsize | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicUsize::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicUsize::v] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::barrier::Barrier::num_threads] in lang:std::_::::new | Barrier.num_threads | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::exclusive::Exclusive::inner] in lang:core::_::::new | Exclusive | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::Iter::rx] in lang:std::_::<&crate::sync::mpmc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<&crate::sync::mpmc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::Iter::rx] in lang:std::_::::iter | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::TryIter::rx] in lang:std::_::::try_iter | TryIter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::array::Channel::cap] in lang:std::_::::with_capacity | Channel.cap | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_capacity | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::counter::Receiver::counter] in lang:std::_::::acquire | Receiver | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::acquire | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::counter::Sender::counter] in lang:std::_::::acquire | Sender | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::acquire | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::error::SendTimeoutError::Disconnected(0)] in lang:std::_::::from | Disconnected | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::select::Selected::Operation(0)] in lang:std::_::::from | Operation | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::select::Selected::Operation(0)].Field[crate::sync::mpmc::select::Operation(0)] in lang:std::_::::from | Operation | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::select::Selected::Operation(0)] in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::utils::CachePadded::value] in lang:std::_::::new | CachePadded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::Iter::rx] in lang:std::_::<&crate::sync::mpsc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<&crate::sync::mpsc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::Iter::rx] in lang:std::_::::iter | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::Sender::inner] in lang:std::_::::clone | Sender | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::Sender::inner].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::Sender::inner] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::SyncSender::inner] in lang:std::_::::clone | SyncSender | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::SyncSender::inner].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::SyncSender::inner] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::TryIter::rx] in lang:std::_::::try_iter | TryIter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::TrySendError::Disconnected(0)] in lang:std::_::::from | Disconnected | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::PoisonError::data] in lang:std::_::::new | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::TryLockError::Poisoned(0)] in lang:std::_::::from | Poisoned | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::from | Mutex.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::new | Mutex.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::from | RwLock.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::new | RwLock.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLockReadGuard::inner_lock] in lang:std::_::::downgrade | RwLockReadGuard.inner_lock | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::downgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLockReadGuard::inner_lock].Reference in lang:std::_::::downgrade | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLockReadGuard::inner_lock] in lang:std::_::::downgrade | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::reentrant_lock::ReentrantLock::data] in lang:std::_::::new | ReentrantLock.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock] in lang:std::_::::lock | ReentrantLockGuard | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::lock | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::clone | Buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::from_inner | Buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::from_encoded_bytes_unchecked | Buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_encoded_bytes_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::pal::unix::process::process_common::Stdio::Fd(0)] in lang:std::_::::from | Fd | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::pal::unix::process::process_inner::ExitStatus(0)] in lang:std::_::::from | ExitStatus | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::pal::unix::process::process_inner::ExitStatus(0)] in lang:std::_::::new | ExitStatus | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::pal::unix::weak::DlsymWeak::name] in lang:std::_::::new | DlsymWeak.name | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::pal::unix::weak::ExternWeak::weak_ptr] in lang:std::_::::new | ExternWeak | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::personality::dwarf::DwarfReader::ptr] in lang:std::_::::new | DwarfReader | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::thread_local::native::eager::Storage::val] in lang:std::_::::new | Storage.val | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::thread_local::native::eager::Storage::val].Field[crate::cell::UnsafeCell::value] in lang:std::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::thread_local::native::eager::Storage::val] in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys_common::wtf8::CodePoint::value] in lang:std::_::::from_u32_unchecked | CodePoint | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_u32_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys_common::wtf8::Wtf8Buf::bytes] in lang:std::_::::from_bytes_unchecked | Wtf8Buf.bytes | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_bytes_unchecked | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::from | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::async_gen_ready | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::async_gen_ready | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_ok | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::async_gen_ready | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::async_gen_ready | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::map_ok | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_err | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_ok | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::ext] in lang:core::_::::build | Context.ext | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::build | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::ext].Field[crate::panic::unwind_safe::AssertUnwindSafe(0)] in lang:core::_::::build | AssertUnwindSafe | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::ext] in lang:core::_::::build | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::local_waker] in lang:core::_::::build | Context.local_waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::build | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::waker] in lang:core::_::::from_waker | Context.waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_waker | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::waker] in lang:core::_::::build | Context.waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::build | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::ext] in lang:core::_::::ext | ContextBuilder.ext | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ext | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::ext].Field[crate::task::wake::ExtData::Some(0)] in lang:core::_::::ext | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::ext] in lang:core::_::::ext | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::local_waker] in lang:core::_::::from | ContextBuilder.local_waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::local_waker] in lang:core::_::::local_waker | ContextBuilder.local_waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::local_waker | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::waker] in lang:core::_::::from | ContextBuilder.waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::waker] in lang:core::_::::from_waker | ContextBuilder.waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_waker | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::waker] in lang:core::_::::waker | ContextBuilder.waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::waker | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::from_raw | LocalWaker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::new | LocalWaker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::data] in lang:core::_::::new | RawWaker.data | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::vtable] in lang:core::_::::new | RawWaker.vtable | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWaker::data] in lang:core::_::::new | RawWaker.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWaker::vtable] in lang:core::_::::new | RawWaker.vtable | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWakerVTable::clone] in lang:core::_::::new | RawWakerVTable.clone | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWakerVTable::drop] in lang:core::_::::new | RawWakerVTable.drop | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWakerVTable::wake] in lang:core::_::::new | RawWakerVTable.wake | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWakerVTable::wake_by_ref] in lang:core::_::::new | RawWakerVTable.wake_by_ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker] in lang:core::_::::from_raw | Waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_raw | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker] in lang:core::_::::new | Waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::data] in lang:core::_::::new | RawWaker.data | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::vtable] in lang:core::_::::new | RawWaker.vtable | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker] in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::name] in lang:std::_::::name | Builder.name | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::name | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::name].Field[crate::option::Option::Some(0)] in lang:std::_::::name | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::name] in lang:std::_::::name | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::stack_size] in lang:std::_::::stack_size | Builder.stack_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::stack_size | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::stack_size].Field[crate::option::Option::Some(0)] in lang:std::_::::stack_size | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::stack_size] in lang:std::_::::stack_size | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::local::LocalKey::inner] in lang:std::_::::new | LocalKey | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::time::Duration::secs] in lang:core::_::::from_secs | Duration.secs | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_secs | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::time::Duration::secs] in lang:core::_::::new | Duration.secs | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::time::SystemTime(0)] in lang:std::_::::from_inner | SystemTime | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::Vec::len] in lang:alloc::_::<_ as crate::vec::spec_from_elem::SpecFromElem>::from_elem | Vec.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::<_ as crate::vec::spec_from_elem::SpecFromElem>::from_elem | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::Vec::len] in lang:alloc::_::::from_parts_in | Vec.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_parts_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::Vec::len] in lang:alloc::_::::from_raw_parts_in | Vec.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_raw_parts_in | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::Vec::len] in lang:alloc::_::::from_elem | Vec.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_elem | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::Vec::len] in lang:alloc::_::::from_elem | Vec.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_elem | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::extract_if::ExtractIf::pred] in lang:alloc::_::::extract_if | ExtractIf.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::extract_if::ExtractIf::pred] in lang:alloc::_::::new | ExtractIf.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::extract_if::ExtractIf::vec] in lang:alloc::_::::extract_if | ExtractIf.vec | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::extract_if::ExtractIf::vec] in lang:alloc::_::::new | ExtractIf.vec | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::set_len_on_drop::SetLenOnDrop::len] in lang:alloc::_::::new | SetLenOnDrop.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::set_len_on_drop::SetLenOnDrop::local_len] in lang:alloc::_::::new | SetLenOnDrop.local_len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | @@ -1412,6 +2675,7 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::to_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::to_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_mut | @@ -1430,20 +2694,34 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::index | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::index | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::index_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::index_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::kind | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::kind | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_into_iter | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_into_iter | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::key | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::key | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_bytes_with_nul | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_bytes_with_nul | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_c_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_c_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_bytes | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::strong_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::strong_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::weak_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::weak_ref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_bytes | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_mut_vec | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_mut_vec | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::trim | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::trim | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | @@ -1456,39 +2734,111 @@ storeStep | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::index | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::index | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::index_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::index_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::as_octets | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_octets | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::as_octets | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_octets | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::ip | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ip | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::ip | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ip | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::digits | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::digits | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::digits | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::digits | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::kind | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::kind | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::end | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::start | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::get_or_insert | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_or_insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::get_or_insert_default | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_or_insert_default | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::get_or_insert_with | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_or_insert_with | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::insert | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::insert | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::as_slice | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_slice | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::local_waker | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::local_waker | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::waker | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::waker | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::trim | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::trim | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::index | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::index | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::index_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::index_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::Unmark>::unmark | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::Unmark>::unmark | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::Unmark>::unmark | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::Unmark>::unmark | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::::message | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::message | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::::spans | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::spans | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_encoded_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_encoded_bytes | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::borrow | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::deref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::error | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::error | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::buffer | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::buffer | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::buffer_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::buffer_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_mut_os_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_mut_os_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_os_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_os_str | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_mut_os_string | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_mut_os_string | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::deref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::deref_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::deref | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_encoded_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_encoded_bytes | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_file_desc | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_file_desc | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::env_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::env_mut | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_argv | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_argv | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_closures | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_closures | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_program_cstr | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_program_cstr | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_bytes | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::thread | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::thread | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::thread | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::thread | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_cstr | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_cstr | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::crate::sync::poison::mutex::guard_lock | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::sync::poison::mutex::guard_lock | +| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::crate::sync::poison::mutex::guard_poison | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::sync::poison::mutex::guard_poison | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo::serde_test_suite::_::::get | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::get | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo::serde_test_suite::_::::second | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::second | | file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-files::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-files::_::::deref | @@ -1644,12 +2994,19 @@ storeStep | main.rs:522:15:522:15 | b | &ref | main.rs:522:14:522:15 | &b | | main.rs:545:27:545:27 | 0 | Some | main.rs:545:22:545:28 | Some(...) | readStep +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::clone_from | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::allocator | Box(1) | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::boxed::Box(1)] in lang:alloc::_::::allocator | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::allocator | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[0].Field[1] in lang:alloc::_::::allocator | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::as_mut_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_mut_ptr | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::as_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_ptr | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::into_inner | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::into_inner | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::merge_tracking_child_edge | Left | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::btree::node::LeftOrRight::Left(0)] in lang:alloc::_::::merge_tracking_child_edge | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::visit_nodes_in_order | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:alloc::_::::visit_nodes_in_order | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from_range | Excluded | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::Bound::Excluded(0)] in lang:alloc::_::::from_range | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from_range | Included | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::Bound::Included(0)] in lang:alloc::_::::from_range | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::clone_from | BTreeSet | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone_from | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::append | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::append | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::fold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::fold | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_rfold | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:alloc::_::::try_rfold | @@ -1659,9 +3016,18 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:alloc::_::::try_rfold | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_fold | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:alloc::_::::try_fold | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::allocator | Rc.alloc | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::rc::Rc::alloc] in lang:alloc::_::::allocator | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::downgrade | Rc.alloc | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::rc::Rc::alloc] in lang:alloc::_::::downgrade | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::downgrade | Rc.ptr | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::rc::Rc::ptr] in lang:alloc::_::::downgrade | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::unwrap_or_clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::unwrap_or_clone | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::allocator | Arc.alloc | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::Arc::alloc] in lang:alloc::_::::allocator | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::downgrade | Arc.alloc | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::Arc::alloc] in lang:alloc::_::::downgrade | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::downgrade | Arc.ptr | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::Arc::ptr] in lang:alloc::_::::downgrade | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::unwrap_or_clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::unwrap_or_clone | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from | BinaryHeap | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::binary_heap::BinaryHeap::data] in lang:alloc::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from | String | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::string::String::vec] in lang:alloc::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:alloc::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::new | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::new | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::crate::collections::btree::mem::replace | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::crate::collections::btree::mem::replace | | file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::crate::collections::btree::mem::take_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::crate::collections::btree::mem::take_mut | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::<_ as crate::array::SpecArrayClone>::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::<_ as crate::array::SpecArrayClone>::clone | @@ -1669,13 +3035,36 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::then | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::update | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::update | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::filter_map | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::filter_map | Ref.borrow | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::cell::Ref::borrow] in lang:core::_::::filter_map | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::map | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | Ref.borrow | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::cell::Ref::borrow] in lang:core::_::::map | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::filter_map | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::filter_map | RefMut.borrow | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::cell::RefMut::borrow] in lang:core::_::::filter_map | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::map | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | RefMut.borrow | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::cell::RefMut::borrow] in lang:core::_::::map | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::then_with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::then_with | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::with_copy | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::with_copy | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from_usize | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::from_usize | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::spec_fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:core::_::::spec_fold | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::into_inner | ManuallyDrop | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::take | ManuallyDrop | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:core::_::::take | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[0].Field[1] in lang:core::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::new | V4 | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::net::ip_addr::IpAddr::V4(0)] in lang:core::_::::new | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::new | V6 | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::net::ip_addr::IpAddr::V6(0)] in lang:core::_::::new | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::add | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::add | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::div_rem | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::div_rem | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::sub | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::sub | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::add | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::add | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::div_rem | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::div_rem | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::sub | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::sub | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from_residual | Break | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::from_residual | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_break | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_break | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_continue | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_continue | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Range.end | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::range::Range::end] in lang:core::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Range.start | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::range::Range::start] in lang:core::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::range::RangeFrom::start] in lang:core::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::and_then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::and_then | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_none_or | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_none_or | @@ -1686,6 +3075,15 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::unwrap_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::unwrap_or_else | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::zip | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::into_inner | Pin | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::pin::Pin::__pointer] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::into_inner_unchecked | Pin | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::pin::Pin::__pointer] in lang:core::_::::into_inner_unchecked | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_unchecked | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_unchecked | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_unchecked_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_unchecked_mut | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Range.end | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::Range::end] in lang:core::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Range.start | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::Range::start] in lang:core::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_err_and | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_err_and | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_ok_and | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_ok_and | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map | @@ -1694,6 +3092,11 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::or_else | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::unwrap_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::unwrap_or_else | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::call | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:core::_::::call | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_err | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_ok | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_ok | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Context.local_waker | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::task::wake::Context::local_waker] in lang:core::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Context.waker | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::task::wake::Context::waker] in lang:core::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::clone_from | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::clone_from | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::::index | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::index | @@ -1701,6 +3104,8 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::mem::copy | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::mem::copy | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::mem::replace | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::mem::replace | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::mem::take | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::mem::take | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | Big32x40.base | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::base] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | +| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::size] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::panic::abort_unwind | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::crate::panic::abort_unwind | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::ptr::read | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::ptr::read | | file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::ptr::read_unaligned | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::ptr::read_unaligned | @@ -1716,11 +3121,22 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:proc_macro::_::::decode | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:proc_macro::_::::decode | | file://:0:0:0:0 | [summary param] 0 in lang:proc_macro::_::::decode | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:proc_macro::_::::decode | | file://:0:0:0:0 | [summary param] 0 in lang:proc_macro::_::crate::bridge::client::state::with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:proc_macro::_::crate::bridge::client::state::with | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | PathBuf | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner] in lang:std::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::advance_slices | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::advance_slices | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::clone_from | Cursor.inner | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::clone_from | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::clone_from | Cursor.pos | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::clone_from | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::seek | Start | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::io::SeekFrom::Start(0)] in lang:std::_::::seek | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | IntoInnerError(1) | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::io::buffered::IntoInnerError(1)] in lang:std::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[0].Field[1] in lang:std::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | PathBuf | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner] in lang:std::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from_str | PathBuf | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner] in lang:std::_::::from_str | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:std::_::::from_inner | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | SendError | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::mpsc::SendError(0)] in lang:std::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | SendError | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::mpsc::SendError(0)] in lang:std::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::wait_timeout_while | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::wait_timeout_while | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::wait_while | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::wait_while | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::downgrade | RwLockWriteGuard.lock | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock] in lang:std::_::::downgrade | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::bind | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:std::_::::bind | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::bind | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:std::_::::bind | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::connect | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:std::_::::connect | @@ -1729,12 +3145,17 @@ readStep | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::bind | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:std::_::::bind | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::connect | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:std::_::::connect | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::connect | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:std::_::::connect | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | AnonPipe | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sys::pal::unix::pipe::AnonPipe(0)] in lang:std::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | File | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sys::pal::unix::fs::File(0)] in lang:std::_::::from | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:std::_::::from | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::try_with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::try_with | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::with | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::with_borrow | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::with_borrow | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::::with_borrow_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::with_borrow_mut | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::io::default_read_vectored | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::io::default_read_vectored | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::io::default_write_vectored | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::io::default_write_vectored | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sync::poison::mutex::guard_lock | MutexGuard.lock | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock] in lang:std::_::crate::sync::poison::mutex::guard_lock | +| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sync::poison::mutex::guard_poison | MutexGuard.lock | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock] in lang:std::_::crate::sync::poison::mutex::guard_poison | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sys::backtrace::__rust_begin_short_backtrace | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::sys::backtrace::__rust_begin_short_backtrace | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sys::backtrace::__rust_end_short_backtrace | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::sys::backtrace::__rust_end_short_backtrace | | file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sys_common::ignore_notfound | Err | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Err(0)] in lang:std::_::crate::sys_common::ignore_notfound | @@ -1830,12 +3251,15 @@ readStep | file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::blocking::block_in_place | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::blocking::block_in_place | | file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::budget | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::budget | | file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::with_unconstrained | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::with_unconstrained | +| file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::::from_contiguous_raw_parts_in | Range.start | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::ops::range::Range::start] in lang:alloc::_::::from_contiguous_raw_parts_in | | file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::crate::collections::btree::mem::replace | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::crate::collections::btree::mem::replace | | file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::crate::collections::btree::mem::take_mut | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::crate::collections::btree::mem::take_mut | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::new_unchecked | Range.end | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::ops::range::Range::end] in lang:core::_::::new_unchecked | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::new_unchecked | Range.start | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::ops::range::Range::start] in lang:core::_::::new_unchecked | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | @@ -1883,7 +3307,21 @@ readStep | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::crate::array::drain::drain_array_with | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::crate::array::drain::drain_array_with | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::crate::slice::index::range | RangeTo | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::ops::range::RangeTo::end] in lang:core::_::crate::slice::index::range | +| file://:0:0:0:0 | [summary param] 1 in lang:core::_::crate::slice::index::try_range | RangeTo | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::ops::range::RangeTo::end] in lang:core::_::crate::slice::index::try_range | | file://:0:0:0:0 | [summary param] 1 in lang:core::_::crate::slice::sort::shared::find_existing_run | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::crate::slice::sort::shared::find_existing_run | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | HandleStore.FreeFunctions | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | HandleStore.SourceFile | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | HandleStore.TokenStream | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | HandleStore.FreeFunctions | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | HandleStore.SourceFile | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | HandleStore.TokenStream | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new | TokenStream | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::TokenStream(0)] in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[1].Field[0] in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new | Span | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::Span(0)] in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[1].Field[0] in lang:proc_macro::_::::new | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new_raw | Span | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::Span(0)] in lang:proc_macro::_::::new_raw | +| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new_raw | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[1].Field[0] in lang:proc_macro::_::::new_raw | | file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::crate::bridge::client::state::set | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:proc_macro::_::crate::bridge::client::state::set | | file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | | file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | @@ -1931,6 +3369,10 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:alloc::_::<_ as crate::borrow::ToOwned>::clone_into | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<_ as crate::borrow::ToOwned>::clone_into | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::<_ as crate::borrow::ToOwned>::to_owned | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<_ as crate::borrow::ToOwned>::to_owned | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::deref | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_owned | Owned | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::borrow::Cow::Owned(0)] in lang:alloc::_::::into_owned | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::to_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::to_mut | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow_mut | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_mut | @@ -1946,24 +3388,191 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::index | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::index_mut | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_bytes | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::as_bytes | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::kind | TryReserveError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::TryReserveError::kind] in lang:alloc::_::::kind | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | BinaryHeap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::BinaryHeap::data] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_into_iter | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::IntoIter::iter] in lang:alloc::_::::as_into_iter | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::Iter::iter] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | BTreeMap.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::extract_if_inner | BTreeMap.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::extract_if_inner | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | BTreeMap.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::length] in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter_mut | BTreeMap.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::length] in lang:alloc::_::::iter_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | BTreeMap.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::length] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::split_off | BTreeMap.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::split_off | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::peek_next | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_next | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::peek_prev | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_prev | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::prev | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::prev | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::with_mutable_key | CursorMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMut::inner] in lang:alloc::_::::with_mutable_key | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next | CursorMutKey.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::prev | CursorMutKey.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::prev | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next | ExtractIfInner.cur_leaf_edge | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | ExtractIfInner.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::length] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | IntoIter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IntoIter::length] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | IntoIter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IntoIter::length] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | IntoIter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IntoIter::length] in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | Iter.range | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::range] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | IterMut.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | IterMut.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | IterMut.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | Keys | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | Keys | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | Range | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Range::inner] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | Values | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | Values | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | ValuesMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | ValuesMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::Entry::Occupied(0)] in lang:alloc::_::::and_modify | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::Entry::Vacant(0)] in lang:alloc::_::::and_modify | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::insert_entry | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::Entry::Occupied(0)] in lang:alloc::_::::insert_entry | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::insert_entry | VacantEntry.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::alloc] in lang:alloc::_::::insert_entry | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::insert_entry | VacantEntry.dormant_map | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::dormant_map] in lang:alloc::_::::insert_entry | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_key | VacantEntry.key | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::key] in lang:alloc::_::::into_key | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::key | VacantEntry.key | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::key] in lang:alloc::_::::key | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::nexts | MergeIterInner.a | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::a] in lang:alloc::_::::nexts | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::nexts | MergeIterInner.b | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::b] in lang:alloc::_::::nexts | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | Edge | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Edge(0)] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | Root | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Root(0)] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_left_child | BalancingContext.left_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child] in lang:alloc::_::::into_left_child | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_right_child | BalancingContext.right_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::right_child] in lang:alloc::_::::into_right_child | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::merge_tracking_child | BalancingContext.left_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child] in lang:alloc::_::::merge_tracking_child | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::merge_tracking_child_edge | BalancingContext.left_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child] in lang:alloc::_::::merge_tracking_child_edge | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::merge_tracking_parent | BalancingContext.parent | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::parent] in lang:alloc::_::::merge_tracking_parent | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::steal_left | BalancingContext.right_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::right_child] in lang:alloc::_::::steal_left | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::steal_right | BalancingContext.left_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child] in lang:alloc::_::::steal_right | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::awaken | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::awaken | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cast_to_leaf_unchecked | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::cast_to_leaf_unchecked | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::dormant | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::dormant | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::force | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::force | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::forget_node_type | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::forget_node_type | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::idx | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::idx | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_node | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::into_node | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::left_edge | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::left_edge | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::left_edge | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::left_edge | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::left_kv | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::left_kv | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::reborrow | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::reborrow | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::reborrow_mut | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::reborrow_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::right_edge | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::right_edge | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::right_kv | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::right_kv | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::right_kv | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::right_kv | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::split | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::split | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::awaken | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::awaken | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::awaken | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::awaken | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::borrow_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::borrow_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_valmut | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::borrow_valmut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_valmut | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::borrow_valmut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cast_to_leaf_unchecked | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::cast_to_leaf_unchecked | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cast_to_leaf_unchecked | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::cast_to_leaf_unchecked | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::dormant | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::dormant | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::dormant | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::dormant | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::forget_type | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::forget_type | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::forget_type | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::forget_type | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::height | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::height | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_dying | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::into_dying | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_dying | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::into_dying | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::push_internal_level | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::push_internal_level | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::push_internal_level | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::push_internal_level | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::push_with_handle | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::push_with_handle | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::push_with_handle | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::push_with_handle | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::reborrow | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::reborrow | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::forget_node_type | SplitResult.kv | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::SplitResult::kv] in lang:alloc::_::::forget_node_type | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | BTreeSet | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::with_mutable_key | CursorMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::CursorMut::inner] in lang:alloc::_::::with_mutable_key | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::insert | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::entry::Entry::Occupied(0)] in lang:alloc::_::::insert | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_list | Cursor.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::as_list | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::index | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index | Cursor.index | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::index] in lang:alloc::_::::index | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::move_next | Cursor.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::move_next | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::move_prev | Cursor.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::move_prev | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_cursor | CursorMut.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::as_cursor | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_cursor | CursorMut.index | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::index] in lang:alloc::_::::as_cursor | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_cursor | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::as_cursor | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_list | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::as_list | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index | CursorMut.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::index | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index | CursorMut.index | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::index] in lang:alloc::_::::index | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::insert_after | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::insert_after | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::move_next | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::move_next | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::move_prev | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::move_prev | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::remove_current | CursorMut.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::remove_current_as_list | CursorMut.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current_as_list | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::remove_current_as_list | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::remove_current_as_list | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::splice_after | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::splice_after | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::IntoIter::list] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | Iter.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Iter::len] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | IterMut.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::IterMut::len] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cursor_back | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::cursor_back | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cursor_back_mut | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::cursor_back_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cursor_front | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::cursor_front | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cursor_front_mut | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::cursor_front_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::extract_if | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::extract_if | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::extract_if | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::extract_if | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::iter | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter_mut | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::iter_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter_mut | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::iter_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter_mut | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::iter_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | VecDeque.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::VecDeque::len] in lang:alloc::_::::len | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::retain_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::retain_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | Drain.remaining | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::drain::Drain::remaining] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::count | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::into_iter::IntoIter::inner] in lang:alloc::_::::count | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_vecdeque | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::into_iter::IntoIter::inner] in lang:alloc::_::::into_vecdeque | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next | Iter.i1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::iter::Iter::i1] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_bytes_with_nul | CString | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::CString::inner] in lang:alloc::_::::as_bytes_with_nul | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_c_str | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_c_str | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_bytes | FromVecWithNulError.bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::FromVecWithNulError::bytes] in lang:alloc::_::::as_bytes | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_bytes | FromVecWithNulError.bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::FromVecWithNulError::bytes] in lang:alloc::_::::into_bytes | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::source | IntoStringError.error | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::IntoStringError::error] in lang:alloc::_::::source | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_cstring | IntoStringError.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::IntoStringError::inner] in lang:alloc::_::::into_cstring | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::utf8_error | IntoStringError.error | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::IntoStringError::error] in lang:alloc::_::::utf8_error | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_vec | NulError(1) | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::NulError(1)] in lang:alloc::_::::into_vec | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_vec | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in lang:alloc::_::::into_vec | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::nul_position | NulError(0) | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::NulError(0)] in lang:alloc::_::::nul_position | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::nul_position | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::nul_position | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::strong_ref | RcInner.strong | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::RcInner::strong] in lang:alloc::_::::strong_ref | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::weak_ref | RcInner.weak | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::RcInner::weak] in lang:alloc::_::::weak_ref | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow_mut | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_mut | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::allocator | Weak.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::Weak::alloc] in lang:alloc::_::::allocator | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::upgrade | Weak.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::Weak::alloc] in lang:alloc::_::::upgrade | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::upgrade | Weak.ptr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::Weak::ptr] in lang:alloc::_::::upgrade | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::strong_ref | WeakInner.strong | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::WeakInner::strong] in lang:alloc::_::::strong_ref | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::weak_ref | WeakInner.weak | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::WeakInner::weak] in lang:alloc::_::::weak_ref | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_bytes | FromUtf8Error.bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::FromUtf8Error::bytes] in lang:alloc::_::::as_bytes | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_bytes | FromUtf8Error.bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::FromUtf8Error::bytes] in lang:alloc::_::::into_bytes | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::utf8_error | FromUtf8Error.error | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::FromUtf8Error::error] in lang:alloc::_::::utf8_error | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::borrow_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | String | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::String::vec] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_mut_vec | String | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::String::vec] in lang:alloc::_::::as_mut_vec | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_bytes | String | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::String::vec] in lang:alloc::_::::into_bytes | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::allocator | Weak.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::Weak::alloc] in lang:alloc::_::::allocator | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::upgrade | Weak.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::Weak::alloc] in lang:alloc::_::::upgrade | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::upgrade | Weak.ptr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::Weak::ptr] in lang:alloc::_::::upgrade | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::borrow_mut | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | Vec.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::Vec::len] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next_back | IntoIter.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::into_iter::IntoIter::end] in lang:alloc::_::::next_back | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::allocator | IntoIter.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::into_iter::IntoIter::alloc] in lang:alloc::_::::allocator | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::forget_allocation_drop_remaining | IntoIter.buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::into_iter::IntoIter::buf] in lang:alloc::_::::forget_allocation_drop_remaining | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::drop | SetLenOnDrop.local_len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::local_len] in lang:alloc::_::::drop | +| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::current_len | SetLenOnDrop.local_len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::local_len] in lang:alloc::_::::current_len | | file://:0:0:0:0 | [summary param] self in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | | file://:0:0:0:0 | [summary param] self in lang:core::_::<&_ as crate::clone::Clone>::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&_ as crate::clone::Clone>::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::<&_ as crate::ops::deref::Deref>::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&_ as crate::ops::deref::Deref>::deref | @@ -1978,8 +3587,16 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:core::_::<_ as crate::str::pattern::MultiCharEq>::matches | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<_ as crate::str::pattern::MultiCharEq>::matches | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_utf8_pattern | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_utf8_pattern | | file://:0:0:0:0 | [summary param] self in lang:core::_::::to_ascii_lowercase | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::to_ascii_lowercase | | file://:0:0:0:0 | [summary param] self in lang:core::_::::to_ascii_uppercase | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::to_ascii_uppercase | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::align_to | Layout.align | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::alloc::layout::Layout::align] in lang:core::_::::align_to | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::align_to | Layout.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::alloc::layout::Layout::size] in lang:core::_::::align_to | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::extend_packed | Layout.align | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::alloc::layout::Layout::align] in lang:core::_::::extend_packed | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::repeat_packed | Layout.align | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::alloc::layout::Layout::align] in lang:core::_::::repeat_packed | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::size | Layout.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::alloc::layout::Layout::size] in lang:core::_::::size | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::try_capture | Wrapper | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::asserting::Wrapper(0)] in lang:core::_::::try_capture | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::try_capture | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::try_capture | | file://:0:0:0:0 | [summary param] self in lang:core::_::::borrow | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:core::_::::borrow_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::borrow_mut | | file://:0:0:0:0 | [summary param] self in lang:core::_::::as_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::as_mut | @@ -1989,17 +3606,208 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:core::_::::index | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index | | file://:0:0:0:0 | [summary param] self in lang:core::_::::index_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index_mut | | file://:0:0:0:0 | [summary param] self in lang:core::_::::as_bytes | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::as_bytes | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | BorrowRef | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::BorrowRef::borrow] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | Cell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::Cell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | RefCell.value | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::RefCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | SyncUnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_mut | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::UnsafeCell::value] in lang:core::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | OnceCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::once::OnceCell::inner] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | EscapeDebug | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::EscapeDebug(0)] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | DecodeUtf16.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::decode::DecodeUtf16::iter] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::unpaired_surrogate | DecodeUtf16Error | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::decode::DecodeUtf16Error::code] in lang:core::_::::unpaired_surrogate | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Source | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::error::Source::current] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | VaList.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::va_list::VaList::inner] in lang:core::_::::deref | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | VaList.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::va_list::VaList::inner] in lang:core::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_str | Arguments.pieces | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Arguments::pieces] in lang:core::_::::as_str | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::align | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::align | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::fill | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::fill | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::flags | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::flags | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::options | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::options | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::padding | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::padding | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::precision | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::precision | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::width | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::width | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::with_options | Formatter.buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::buf] in lang:core::_::::with_options | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_align | FormattingOptions.align | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::FormattingOptions::align] in lang:core::_::::get_align | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_fill | FormattingOptions.fill | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::FormattingOptions::fill] in lang:core::_::::get_fill | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_flags | FormattingOptions.flags | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::FormattingOptions::flags] in lang:core::_::::get_flags | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_precision | FormattingOptions.precision | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::FormattingOptions::precision] in lang:core::_::::get_precision | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_width | FormattingOptions.width | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::FormattingOptions::width] in lang:core::_::::get_width | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | DebugList | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugList::inner] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::entry | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::entry | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish_non_exhaustive | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::finish_non_exhaustive | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::key | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::key_with | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key_with | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::value | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::value_with | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value_with | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | DebugSet | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish_non_exhaustive | DebugSet | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::finish_non_exhaustive | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::field | DebugStruct.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::field_with | DebugStruct.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field_with | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | DebugStruct.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish_non_exhaustive | DebugStruct.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::finish_non_exhaustive | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::field | DebugTuple.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::field_with | DebugTuple.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field_with | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | DebugTuple.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish_non_exhaustive | DebugTuple.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::finish_non_exhaustive | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_usize | Argument | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::rt::Argument::ty] in lang:core::_::::as_usize | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_output | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::take_output | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | Ready | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::future::ready::Ready(0)] in lang:core::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::init_len | BorrowedBuf.init | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::init_len | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::len | BorrowedBuf.filled | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::filled] in lang:core::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::set_init | BorrowedBuf.init | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::set_init | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::unfilled | BorrowedBuf.filled | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::filled] in lang:core::_::::unfilled | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::reborrow | BorrowedCursor.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedCursor::start] in lang:core::_::::reborrow | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::set_init | BorrowedCursor.buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedCursor::buf] in lang:core::_::::set_init | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_remainder | ArrayChunks.remainder | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::array_chunks::ArrayChunks::remainder] in lang:core::_::::into_remainder | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_unchecked | Cloned | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cloned::Cloned::it] in lang:core::_::::next_unchecked | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::advance_by | Cycle.orig | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig] in lang:core::_::::advance_by | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::try_fold | Cycle.orig | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig] in lang:core::_::::try_fold | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Enumerate.count | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::count] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Enumerate.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Enumerate.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | FlatMap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_parts | FlatMap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::into_parts | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Flatten | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::Flatten::inner] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | Fuse | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::fuse::Fuse::iter] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Intersperse.separator | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::intersperse::Intersperse::separator] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | Map.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::map::Map::iter] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | MapWhile.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::map_while::MapWhile::iter] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Buffer.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::map_windows::Buffer::start] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | Peekable.peeked | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::last | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Peekable.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Peekable.peeked | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Peekable.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Peekable.peeked | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | Rev | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | Rev | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Scan.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::scan::Scan::iter] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | Skip.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::last | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Skip.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Skip.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_fold | StepBy.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_next | StepBy.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_nth | StepBy.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_try_fold | StepBy.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_try_fold | | file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::len | Take.n | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::n] in lang:core::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Take.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Take.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::size_hint | Take.n | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::n] in lang:core::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | TakeWhile.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take_while::TakeWhile::iter] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | Repeat | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | Repeat | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Repeat | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Repeat | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RepeatN.count | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat_n::RepeatN::count] in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::len | RepeatN.count | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat_n::RepeatN::count] in lang:core::_::::len | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | ManuallyDrop | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:core::_::::deref | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | ManuallyDrop | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:core::_::::deref_mut | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::to_canonical | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::to_canonical | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_octets | Ipv4Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::as_octets | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::octets | Ipv4Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::octets | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::to_ipv6_compatible | Ipv4Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::to_ipv6_compatible | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::to_ipv6_mapped | Ipv4Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::to_ipv6_mapped | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_octets | Ipv6Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::as_octets | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::octets | Ipv6Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::octets | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::to_canonical | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::to_canonical | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::ip | SocketAddrV4.ip | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV4::ip] in lang:core::_::::ip | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::port | SocketAddrV4.port | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV4::port] in lang:core::_::::port | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::flowinfo | SocketAddrV6.flowinfo | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::flowinfo] in lang:core::_::::flowinfo | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::ip | SocketAddrV6.ip | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::ip] in lang:core::_::::ip | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::port | SocketAddrV6.port | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::port] in lang:core::_::::port | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::scope_id | SocketAddrV6.scope_id | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::scope_id] in lang:core::_::::scope_id | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Big32x40.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::add | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::add | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::digits | Big32x40.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base] in lang:core::_::::digits | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::mul_pow2 | Big32x40.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base] in lang:core::_::::mul_pow2 | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::mul_small | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::mul_small | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::sub | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::sub | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Big8x3.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::add | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::add | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::digits | Big8x3.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::digits | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::mul_pow2 | Big8x3.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::mul_pow2 | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::mul_small | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::mul_small | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::sub | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::sub | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::normalize | Fp.e | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::diy_float::Fp::e] in lang:core::_::::normalize | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::normalize | Fp.f | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::diy_float::Fp::f] in lang:core::_::::normalize | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::kind | ParseIntError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::error::ParseIntError::kind] in lang:core::_::::kind | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::len | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::write | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::write | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::break_value | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::break_value | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::continue_value | Continue | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::continue_value | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_try | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::into_try | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_value | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::into_value | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_value | Continue | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::into_value | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_break | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::map_break | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_break | Continue | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::map_break | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_continue | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::map_continue | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_continue | Continue | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::map_continue | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | IndexRange.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::end | IndexRange.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::end | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::start | IndexRange.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::start | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_prefix | IndexRange.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::take_prefix | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_prefix | IndexRange.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::take_prefix | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_suffix | IndexRange.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::take_suffix | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_suffix | IndexRange.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::take_suffix | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map | Excluded | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::map | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map | Included | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::map | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_next | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::spec_next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_next_back | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_next_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_nth | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_nth_back | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_nth_back | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::spec_nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::bound | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_next | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_next_back | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::spec_next_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_try_fold | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_fold | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_try_rfold | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::spec_try_rfold | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_try_rfold | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_rfold | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::end | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::end | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::start | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::start | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeTo | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeTo::end] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::bound | RangeTo | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeTo::end] in lang:core::_::::bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | RangeTo | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeTo::end] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeToInclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeToInclusive::end] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::bound | RangeToInclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeToInclusive::end] in lang:core::_::::bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | RangeToInclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeToInclusive::end] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | NeverShortCircuit | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::try_trait::NeverShortCircuit(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | Item | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Item::opt] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Iter::inner] in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::branch | | file://:0:0:0:0 | [summary param] self in lang:core::_::::and_then | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | | file://:0:0:0:0 | [summary param] self in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary param] self in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | @@ -2029,14 +3837,59 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:core::_::::unzip | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | | file://:0:0:0:0 | [summary param] self in lang:core::_::::zip | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::zip | | file://:0:0:0:0 | [summary param] self in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::column | Location.col | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::location::Location::col] in lang:core::_::::column | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::file | Location.file | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::location::Location::file] in lang:core::_::::file | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::line | Location.line | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::location::Location::line] in lang:core::_::::line | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::can_unwind | PanicInfo.can_unwind | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::panic_info::PanicInfo::can_unwind] in lang:core::_::::can_unwind | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::force_no_backtrace | PanicInfo.force_no_backtrace | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::panic_info::PanicInfo::force_no_backtrace] in lang:core::_::::force_no_backtrace | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::location | PanicInfo.location | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::panic_info::PanicInfo::location] in lang:core::_::::location | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::message | PanicInfo.message | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::panic_info::PanicInfo::message] in lang:core::_::::message | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | AssertUnwindSafe | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::unwind_safe::AssertUnwindSafe(0)] in lang:core::_::::deref | | file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::deref | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | AssertUnwindSafe | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::unwind_safe::AssertUnwindSafe(0)] in lang:core::_::::deref_mut | | file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::deref | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_mut | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_ref | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_mut | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_ref | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::get_ref | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_unchecked_mut | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::get_unchecked_mut | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_ref | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::into_ref | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_unchecked | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_unchecked_mut | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked_mut | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_non_null_ptr | Unique.pointer | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ptr::unique::Unique::pointer] in lang:core::_::::as_non_null_ptr | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::Range::end] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::Range::start] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::Range::end] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::Range::start] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeFrom::start] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeFrom::start] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeInclusive::end] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeInclusive::start] in lang:core::_::::into_bounds | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeInclusive::end] in lang:core::_::::end_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeInclusive::start] in lang:core::_::::start_bound | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_slice_range | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeInclusive::start] in lang:core::_::::into_slice_range | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | IterRange | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRange(0)] in lang:core::_::::nth | | file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | IterRangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)] in lang:core::_::::nth | | file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::remainder | IterRangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)] in lang:core::_::::remainder | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::remainder | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::remainder | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | IterRangeInclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeInclusive(0)] in lang:core::_::::nth | | file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | IterMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | IterMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::branch | | file://:0:0:0:0 | [summary param] self in lang:core::_::::and | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::and | | file://:0:0:0:0 | [summary param] self in lang:core::_::::and_then | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::and_then | | file://:0:0:0:0 | [summary param] self in lang:core::_::::and_then | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::and_then | @@ -2076,13 +3929,107 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or_else | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::unwrap_or_else | | file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or_else | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::unwrap_or_else | | file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_unchecked | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::unwrap_unchecked | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | ArrayChunks.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | ArrayChunks.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::remainder | ArrayChunks.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::rem] in lang:core::_::::remainder | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_remainder | ArrayChunksMut.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunksMut::rem] in lang:core::_::::into_remainder | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::count | ArrayWindows.num | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayWindows::num] in lang:core::_::::count | | file://:0:0:0:0 | [summary param] self in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::last | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::size_hint | ArrayWindows.num | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayWindows::num] in lang:core::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Chunks.chunk_size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::chunk_size] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Chunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | Chunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | Chunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::last | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Chunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | ChunksExact.chunk_size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::chunk_size] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | ChunksExact.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::rem] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | ChunksExact.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | ChunksExact.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::remainder | ChunksExact.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::rem] in lang:core::_::::remainder | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_remainder | ChunksExactMut.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExactMut::rem] in lang:core::_::::into_remainder | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | GenericSplitN.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::size_hint | GenericSplitN.count | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::::size_hint | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Iter._marker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Iter::_marker] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Iter.end_or_len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Iter::end_or_len] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Iter.ptr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Iter::ptr] in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::collect | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::collect | | file://:0:0:0:0 | [summary param] self in lang:core::_::::for_each | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::for_each | | file://:0:0:0:0 | [summary param] self in lang:core::_::::map | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::map | | file://:0:0:0:0 | [summary param] self in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::next | | file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RChunks.chunk_size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::chunk_size] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RChunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | RChunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | RChunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::last | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | RChunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RChunksExact.chunk_size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::chunk_size] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RChunksExact.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::rem] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RChunksExact.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | RChunksExact.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::remainder | RChunksExact.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::rem] in lang:core::_::::remainder | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_remainder | RChunksExactMut.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExactMut::rem] in lang:core::_::::into_remainder | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RSplit | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RSplit::inner] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | Split.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Split::v] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_slice | Split.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Split::v] in lang:core::_::::as_slice | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | SplitInclusive.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | SplitInclusive.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | SplitMut.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitMut::v] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Windows.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::size] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::last | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::valid_up_to | Utf8Error.valid_up_to | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::error::Utf8Error::valid_up_to] in lang:core::_::::valid_up_to | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::Bytes(0)] in lang:core::_::::nth | | file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | CharIndices.front_offset | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::CharIndices::front_offset] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::offset | CharIndices.front_offset | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::CharIndices::front_offset] in lang:core::_::::offset | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | EncodeUtf16.extra | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::EncodeUtf16::extra] in lang:core::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | SplitInternal.matcher | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitInternal::matcher] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | SplitNInternal.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitNInternal::iter] in lang:core::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::invalid | Utf8Chunk.invalid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::lossy::Utf8Chunk::invalid] in lang:core::_::::invalid | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::valid | Utf8Chunk.valid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::lossy::Utf8Chunk::valid] in lang:core::_::::valid | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::debug | Utf8Chunks | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::lossy::Utf8Chunks::source] in lang:core::_::::debug | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_match_back | CharSearcher.finger | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::CharSearcher::finger] in lang:core::_::::next_match_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_match_back | CharSearcher.finger_back | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::CharSearcher::finger_back] in lang:core::_::::next_match_back | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::haystack | CharSearcher.haystack | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::CharSearcher::haystack] in lang:core::_::::haystack | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_match | CharSearcher.finger | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::CharSearcher::finger] in lang:core::_::::next_match | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_match | CharSearcher.finger_back | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::CharSearcher::finger_back] in lang:core::_::::next_match | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_searcher | MultiCharEqPattern | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::MultiCharEqPattern(0)] in lang:core::_::::into_searcher | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_searcher | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::into_searcher | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::haystack | MultiCharEqSearcher.haystack | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::MultiCharEqSearcher::haystack] in lang:core::_::::haystack | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::haystack | StrSearcher.haystack | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::StrSearcher::haystack] in lang:core::_::::haystack | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicI8 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI8::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicI16 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI16::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicI32 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI32::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicI64 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI64::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicI128 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI128::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicIsize | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicIsize::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicPtr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicPtr::p] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicU8 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU8::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicU16 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU16::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicU32 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU32::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicU64 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU64::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicU128 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU128::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicUsize | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicUsize::v] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_mut | Exclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::exclusive::Exclusive::inner] in lang:core::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | Exclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::exclusive::Exclusive::inner] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Ready | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map | Ready | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_err | Ready | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_ok | Ready | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::local_waker | Context.local_waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Context::local_waker] in lang:core::_::::local_waker | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::waker | Context.waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Context::waker] in lang:core::_::::waker | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::build | ContextBuilder.ext | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::ContextBuilder::ext] in lang:core::_::::build | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::build | ContextBuilder.local_waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::ContextBuilder::local_waker] in lang:core::_::::build | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::build | ContextBuilder.waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::ContextBuilder::waker] in lang:core::_::::build | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::data | LocalWaker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::data | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::vtable | LocalWaker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::vtable | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::data | Waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker] in lang:core::_::::data | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::vtable | Waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker] in lang:core::_::::vtable | +| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_secs | Duration.secs | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::time::Duration::secs] in lang:core::_::::as_secs | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | @@ -2104,11 +4051,34 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::map | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::map | | file://:0:0:0:0 | [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::next | | file://:0:0:0:0 | [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::nth | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::Unmark>::unmark | Marked.value | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::Marked::value] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::Unmark>::unmark | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::Unmark>::unmark | Marked.value | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::Marked::value] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::Unmark>::unmark | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::delimiter | Group | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)] in lang:proc_macro::_::::delimiter | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::delimiter | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::delimiter | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::stream | Group | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)] in lang:proc_macro::_::::stream | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::stream | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::stream | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | Ident | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Ident(0)] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | Literal | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Literal(0)] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | Punct | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Punct(0)] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::unmark | Marked.value | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::Marked::value] in lang:proc_macro::_::::unmark | | file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::take | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::take | | file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::name | Attr.name | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::client::ProcMacro::Attr::name] in lang:proc_macro::_::::name | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::name | Bang.name | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::client::ProcMacro::Bang::name] in lang:proc_macro::_::::name | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::name | CustomDerive.trait_name | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::client::ProcMacro::CustomDerive::trait_name] in lang:proc_macro::_::::name | | file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::clone | | file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::copy | InternedStore.owned | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::handle::InternedStore::owned] in lang:proc_macro::_::::copy | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::as_str | StaticStr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::rpc::PanicMessage::StaticStr(0)] in lang:proc_macro::_::::as_str | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::as_str | String | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::rpc::PanicMessage::String(0)] in lang:proc_macro::_::::as_str | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::next | Children | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Children(0)] in lang:proc_macro::_::::next | | file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::next | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::level | Diagnostic.level | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Diagnostic::level] in lang:proc_macro::_::::level | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::message | Diagnostic.message | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Diagnostic::message] in lang:proc_macro::_::::message | +| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::spans | Diagnostic.spans | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Diagnostic::spans] in lang:proc_macro::_::::spans | | file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::BufRead>::consume | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::BufRead>::consume | | file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | | file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_buf_exact | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::Read>::read_buf_exact | @@ -2116,44 +4086,207 @@ readStep | file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | | file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | | file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Entry::Occupied(0)] in lang:std::_::::and_modify | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Entry::Vacant(0)] in lang:std::_::::and_modify | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::insert_entry | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Entry::Occupied(0)] in lang:std::_::::insert_entry | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | HashMap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::HashMap::base] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Iter::base] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::RawEntryMut::Occupied(0)] in lang:std::_::::and_modify | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::RawEntryMut::Vacant(0)] in lang:std::_::::and_modify | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::insert | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Entry::Occupied(0)] in lang:std::_::::insert | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | HashSet | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::HashSet::base] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Iter::base] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | SymmetricDifference | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::SymmetricDifference::iter] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | Union | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Union::iter] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | OsStr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsStr::inner] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_encoded_bytes | OsStr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsStr::inner] in lang:std::_::::as_encoded_bytes | | file://:0:0:0:0 | [summary param] self in lang:std::_::::borrow | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::::borrow | | file://:0:0:0:0 | [summary param] self in lang:std::_::::deref | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::::deref | | file://:0:0:0:0 | [summary param] self in lang:std::_::::deref_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_vec | OsString | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::into_vec | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | OsString | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_encoded_bytes | OsString | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::into_encoded_bytes | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | DirBuilder.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::DirBuilder::inner] in lang:std::_::::as_inner_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | DirEntry | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::DirEntry(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | File | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::File::inner] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | File | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::File::inner] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | FileTimes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::FileTimes(0)] in lang:std::_::::as_inner_mut | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | FileType | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::FileType(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Metadata | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::Metadata(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | OpenOptions | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::OpenOptions(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | OpenOptions | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::OpenOptions(0)] in lang:std::_::::as_inner_mut | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Permissions | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::Permissions(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | Chain.first | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::first] in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | Chain.second | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::second] in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | Chain.first | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::first] in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | Chain.second | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::second] in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Chain.first | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::first] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Chain.second | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::second] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | Take.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Take::inner] in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | Take.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Take::inner] in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Take.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Take::inner] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::limit | Take.limit | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Take::limit] in lang:std::_::::limit | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::error | IntoInnerError(1) | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::IntoInnerError(1)] in lang:std::_::::error | | file://:0:0:0:0 | [summary param] self in lang:std::_::::error | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in lang:std::_::::error | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_error | IntoInnerError(1) | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::IntoInnerError(1)] in lang:std::_::::into_error | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_error | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in lang:std::_::::into_error | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | IntoInnerError(0) | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::IntoInnerError(0)] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | BufReader.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | BufReader.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | BufReader.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::consume | Buffer.filled | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::filled] in lang:std::_::::consume | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::filled | Buffer.filled | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::filled] in lang:std::_::::filled | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::pos | Buffer.pos | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::pos] in lang:std::_::::pos | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::buffer | BufWriter.buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::buf] in lang:std::_::::buffer | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::buffer_mut | BufWriter.buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::buf] in lang:std::_::::buffer_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | BufWriter.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | BufWriter.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | WriterPanicked | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufwriter::WriterPanicked::buf] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::seek | Cursor.pos | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::seek | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::stream_position | Cursor.pos | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::stream_position | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | Cursor.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | Cursor.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Cursor.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::position | Cursor.pos | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::position | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | TcpListener | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::tcp::TcpListener(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | TcpListener | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::tcp::TcpListener(0)] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | TcpStream | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::tcp::TcpStream(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | TcpStream | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::tcp::TcpStream(0)] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | UdpSocket | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::udp::UdpSocket(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | UdpSocket | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::udp::UdpSocket(0)] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_fd | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::as_fd | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | UnixDatagram | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::os::unix::net::datagram::UnixDatagram(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | UnixStream | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::os::unix::net::stream::UnixStream(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::can_unwind | PanicHookInfo.can_unwind | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::PanicHookInfo::can_unwind] in lang:std::_::::can_unwind | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::force_no_backtrace | PanicHookInfo.force_no_backtrace | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::PanicHookInfo::force_no_backtrace] in lang:std::_::::force_no_backtrace | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::location | PanicHookInfo.location | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::PanicHookInfo::location] in lang:std::_::::location | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::payload | PanicHookInfo.payload | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::PanicHookInfo::payload] in lang:std::_::::payload | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::next | Ancestors | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Ancestors::next] in lang:std::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_ref | Normal | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Component::Normal(0)] in lang:std::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_os_str | Normal | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Component::Normal(0)] in lang:std::_::::as_os_str | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::next_back | Components.path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next_back | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::next | Components.path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_ref | Path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Path::inner] in lang:std::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_mut_os_str | Path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Path::inner] in lang:std::_::::as_mut_os_str | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_os_str | Path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Path::inner] in lang:std::_::::as_os_str | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::display | Path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Path::inner] in lang:std::_::::display | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_ref | PathBuf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PathBuf::inner] in lang:std::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_mut_os_string | PathBuf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PathBuf::inner] in lang:std::_::::as_mut_os_string | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_os_string | PathBuf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PathBuf::inner] in lang:std::_::::into_os_string | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_os_str | PrefixComponent.raw | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PrefixComponent::raw] in lang:std::_::::as_os_str | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::kind | PrefixComponent.parsed | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PrefixComponent::parsed] in lang:std::_::::kind | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Child.handle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::Child::handle] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Child.handle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::Child::handle] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | ChildStderr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStderr::inner] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | ChildStderr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStderr::inner] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | ChildStdin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStdin::inner] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | ChildStdin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStdin::inner] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | ChildStdout | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStdout::inner] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | ChildStdout | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStdout::inner] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Command | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::Command::inner] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | Command | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::Command::inner] in lang:std::_::::as_inner_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | ExitCode | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ExitCode(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | ExitStatus | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ExitStatus(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::is_leader | BarrierWaitResult | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::barrier::BarrierWaitResult(0)] in lang:std::_::::is_leader | | file://:0:0:0:0 | [summary param] self in lang:std::_::::is_leader | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::is_leader | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::capacity | Channel.cap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::array::Channel::cap] in lang:std::_::::capacity | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::len | Channel.cap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::array::Channel::cap] in lang:std::_::::len | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::acquire | Receiver | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::counter::Receiver::counter] in lang:std::_::::acquire | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::acquire | Sender | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::counter::Sender::counter] in lang:std::_::::acquire | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into | Operation | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::select::Selected::Operation(0)] in lang:std::_::::into | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::deref | CachePadded | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::utils::CachePadded::value] in lang:std::_::::deref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::deref_mut | CachePadded | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::utils::CachePadded::value] in lang:std::_::::deref_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | Sender | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::Sender::inner] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | SyncSender | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::SyncSender::inner] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | PoisonError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | PoisonError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::get_ref | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | PoisonError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::cause | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::cause | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::timed_out | WaitTimeoutResult | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::condvar::WaitTimeoutResult(0)] in lang:std::_::::timed_out | | file://:0:0:0:0 | [summary param] self in lang:std::_::::timed_out | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::timed_out | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Mutex.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::is_poisoned | OnceState | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::once::OnceState::inner] in lang:std::_::::is_poisoned | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | RwLock.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | ReentrantLock.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::reentrant_lock::ReentrantLock::data] in lang:std::_::::get_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | ReentrantLock.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::reentrant_lock::ReentrantLock::data] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::deref | ReentrantLockGuard | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock] in lang:std::_::::deref | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::clone | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_encoded_bytes | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::into_encoded_bytes | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_encoded_bytes | Slice | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Slice::inner] in lang:std::_::::as_encoded_bytes | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | FileDesc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fd::FileDesc(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | FileDesc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fd::FileDesc(0)] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | File | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fs::File(0)] in lang:std::_::::as_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | File | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fs::File(0)] in lang:std::_::::as_inner_mut | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | File | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fs::File(0)] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | FileAttr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fs::FileAttr::stat] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | AnonPipe | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::pipe::AnonPipe(0)] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_file_desc | AnonPipe | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::pipe::AnonPipe(0)] in lang:std::_::::as_file_desc | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_file_desc | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_file_desc | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::fd | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::fd | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::env_mut | Command.env | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::env] in lang:std::_::::env_mut | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_argv | Command.argv | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv] in lang:std::_::::get_argv | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_closures | Command.closures | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::closures] in lang:std::_::::get_closures | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_gid | Command.gid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::gid] in lang:std::_::::get_gid | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_pgroup | Command.pgroup | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::pgroup] in lang:std::_::::get_pgroup | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_program_cstr | Command.program | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::program] in lang:std::_::::get_program_cstr | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_program_kind | Command.program_kind | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::program_kind] in lang:std::_::::get_program_kind | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_uid | Command.uid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::uid] in lang:std::_::::get_uid | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::saw_nul | Command.saw_nul | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::saw_nul] in lang:std::_::::saw_nul | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_raw | ExitStatus | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_inner::ExitStatus(0)] in lang:std::_::::into_raw | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_raw | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_raw | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::id | Thread | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::thread::Thread::id] in lang:std::_::::id | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::get | ExternWeak | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::weak::ExternWeak::weak_ptr] in lang:std::_::::get | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::is_poisoned | OnceState.poisoned | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::sync::once::queue::OnceState::poisoned] in lang:std::_::::is_poisoned | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::does_clear | CommandEnv.clear | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::process::CommandEnv::clear] in lang:std::_::::does_clear | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::to_u32 | CodePoint | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::CodePoint::value] in lang:std::_::::to_u32 | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::next | EncodeWide.extra | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::EncodeWide::extra] in lang:std::_::::next | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Wtf8 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_bytes | Wtf8 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes] in lang:std::_::::as_bytes | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::ascii_byte_at | Wtf8 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes] in lang:std::_::::ascii_byte_at | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_bytes | Wtf8Buf.bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8Buf::bytes] in lang:std::_::::into_bytes | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | JoinHandle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | JoinHandle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::thread | JoinHandle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::thread | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::thread | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::thread | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_u64 | ThreadId | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::ThreadId(0)] in lang:std::_::::as_u64 | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_u64 | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_u64 | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::thread | ScopedJoinHandle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::scoped::ScopedJoinHandle(0)] in lang:std::_::::thread | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::thread | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::thread | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_cstr | ThreadNameString | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::thread_name_string::ThreadNameString::inner] in lang:std::_::::as_cstr | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | SystemTime | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::time::SystemTime(0)] in lang:std::_::::into_inner | | file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary param] self in lang:std::_::::duration | SystemTimeError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::time::SystemTimeError(0)] in lang:std::_::::duration | | file://:0:0:0:0 | [summary param] self in lang:std::_::::duration | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::duration | | file://:0:0:0:0 | [summary param] self in lang:std::_::::as_raw_fd | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::as_raw_fd | | file://:0:0:0:0 | [summary param] self in repo::serde_test_suite::_::::get | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo::serde_test_suite::_::::get | @@ -2210,11 +4343,18 @@ readStep | file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::as_ref | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::as_bytes | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::as_bytes | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::si_addr | siginfo_t.si_addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_addr] in repo:https://github.com/rust-lang/libc:libc::_::::si_addr | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::si_pid | siginfo_t.si_pid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_pid] in repo:https://github.com/rust-lang/libc:libc::_::::si_pid | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::si_status | siginfo_t.si_status | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_status] in repo:https://github.com/rust-lang/libc:libc::_::::si_status | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::si_uid | siginfo_t.si_uid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_uid] in repo:https://github.com/rust-lang/libc:libc::_::::si_uid | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand::_::::next_u64 | StepRng.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rngs::mock::StepRng::v] in repo:https://github.com/rust-random/rand:rand::_::::next_u64 | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_mut | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_ref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand_core::_::::index | BlockRng64.index | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::block::BlockRng64::index] in repo:https://github.com/rust-random/rand:rand_core::_::::index | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand_core::_::::index | BlockRng.index | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::block::BlockRng::index] in repo:https://github.com/rust-random/rand:rand_core::_::::index | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref_mut | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::into_inner | @@ -2308,9 +4448,19 @@ readStep | file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw_value | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw_value | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::deref | +| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | BarrierWaitResult | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::barrier::BarrierWaitResult(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | | file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::append | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::linked_list::LinkedList::tail].Reference in lang:alloc::_::::append | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::base] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | element | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::from | | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | element | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)].Element in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner] in lang:std::_::::from | PathBuf | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner].Field[crate::path::PathBuf::inner] in lang:std::_::::from | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner] in lang:std::_::::from_str | PathBuf | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner].Field[crate::path::PathBuf::inner] in lang:std::_::::from_str | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::rc::Rc::alloc] in lang:alloc::_::::downgrade | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::rc::Rc::alloc].Reference in lang:alloc::_::::downgrade | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::Arc::alloc] in lang:alloc::_::::downgrade | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::Arc::alloc].Reference in lang:alloc::_::::downgrade | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock] in lang:std::_::crate::sync::poison::mutex::guard_lock | Mutex.inner | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock].Field[crate::sync::poison::mutex::Mutex::inner] in lang:std::_::crate::sync::poison::mutex::guard_lock | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock] in lang:std::_::crate::sync::poison::mutex::guard_poison | Mutex.poison | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock].Field[crate::sync::poison::mutex::Mutex::poison] in lang:std::_::crate::sync::poison::mutex::guard_poison | +| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock] in lang:std::_::::downgrade | RwLock.inner | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock].Field[crate::sync::poison::rwlock::RwLock::inner] in lang:std::_::::downgrade | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_mut_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::as_mut_ptr | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::as_ptr | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::unwrap_or_clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::unwrap_or_clone | @@ -2320,19 +4470,197 @@ readStep | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::index_mut | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:core::_::::index_mut | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:std::_::::advance_slices | | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:std::_::::advance_slices | +| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions].Element in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | +| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions].Element in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | +| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile].Element in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | +| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile].Element in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | +| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream].Element in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | +| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream].Element in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::index | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:alloc::_::::index | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::index_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:alloc::_::::index_mut | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::try_capture | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Reference in lang:core::_::::try_capture | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::index | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::index_mut | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::next | Char | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::char::EscapeDebugInner::Char(0)] in lang:core::_::::next | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::into_inner | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::option::Option::Some(0)] in lang:core::_::::into_inner | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::remainder | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::remainder | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::delimiter | Group.delimiter | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::bridge::Group::delimiter] in lang:proc_macro::_::::delimiter | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::stream | Group.stream | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::bridge::Group::stream] in lang:proc_macro::_::::stream | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | Ident.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::bridge::Ident::span] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | Literal.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::bridge::Literal::span] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | Punct.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::bridge::Punct::span] in lang:proc_macro::_::::span | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:proc_macro::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | JoinInner.native | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::thread::JoinInner::native] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | JoinInner.native | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::thread::JoinInner::native] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::thread | JoinInner.thread | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::thread::JoinInner::thread] in lang:std::_::::thread | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::thread | JoinInner.thread | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::thread::JoinInner::thread] in lang:std::_::::thread | | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::poll_next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::poll_next | | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight_or | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[1].Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight_or | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)] in lang:proc_macro::_::::delimiter | Group.delimiter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)].Field[crate::bridge::Group::delimiter] in lang:proc_macro::_::::delimiter | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)] in lang:proc_macro::_::::stream | Group.stream | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)].Field[crate::bridge::Group::stream] in lang:proc_macro::_::::stream | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Ident(0)] in lang:proc_macro::_::::span | Ident.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Ident(0)].Field[crate::bridge::Ident::span] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Literal(0)] in lang:proc_macro::_::::span | Literal.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Literal(0)].Field[crate::bridge::Literal::span] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Punct(0)] in lang:proc_macro::_::::span | Punct.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Punct(0)].Field[crate::bridge::Punct::span] in lang:proc_macro::_::::span | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::asserting::Wrapper(0)] in lang:core::_::::try_capture | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::asserting::Wrapper(0)].Reference in lang:core::_::::try_capture | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::handle::InternedStore::owned] in lang:proc_macro::_::::copy | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::handle::InternedStore::owned].Element in lang:proc_macro::_::::copy | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::Cell::value] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::Cell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::RefCell::value] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::RefCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::SyncUnsafeCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::once::OnceCell::inner] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::once::OnceCell::inner].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::EscapeDebug(0)] in lang:core::_::::next | Char | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::EscapeDebug(0)].Field[crate::char::EscapeDebugInner::Char(0)] in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::decode::DecodeUtf16::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::decode::DecodeUtf16::iter].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::TryReserveError::kind] in lang:alloc::_::::kind | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::TryReserveError::kind].Reference in lang:alloc::_::::kind | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::BinaryHeap::data] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::BinaryHeap::data].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::Iter::iter] in lang:alloc::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::Iter::iter].Element in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::extract_if_inner | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc].Reference in lang:alloc::_::::extract_if_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::split_off | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc].Reference in lang:alloc::_::::split_off | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::next | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::next | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_next | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::peek_next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_next | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::peek_next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_prev | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::peek_prev | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_prev | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::peek_prev | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::prev | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::prev | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::prev | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::prev | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::next | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::next | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::prev | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::prev | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::prev | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::prev | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge] in lang:alloc::_::::next | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge] in lang:alloc::_::::next | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge].Field[crate::option::Option::Some(0)] in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::length] in lang:alloc::_::::size_hint | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::length].Reference in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::range] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::range].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner] in lang:alloc::_::::len | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner] in lang:alloc::_::::size_hint | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Range::inner] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Range::inner].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner] in lang:alloc::_::::len | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner] in lang:alloc::_::::size_hint | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner] in lang:alloc::_::::len | IterMut.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner].Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::len | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner] in lang:alloc::_::::size_hint | IterMut.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner].Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::a] in lang:alloc::_::::nexts | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::a].Element in lang:alloc::_::::nexts | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::b] in lang:alloc::_::::nexts | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::b].Element in lang:alloc::_::::nexts | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Edge(0)] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Edge(0)].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Root(0)] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Root(0)].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::parent] in lang:alloc::_::::merge_tracking_parent | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::parent].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::merge_tracking_parent | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::reborrow | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::split | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::split | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::BTreeSet::map].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::CursorMut::inner] in lang:alloc::_::::with_mutable_key | CursorMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::CursorMut::inner].Field[crate::collections::btree::map::CursorMut::inner] in lang:alloc::_::::with_mutable_key | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::HashMap::base] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::HashMap::base].Reference in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Iter::base] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Iter::base].Reference in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::HashSet::base] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::HashSet::base].Reference in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Iter::base] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Iter::base].Reference in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::SymmetricDifference::iter] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::SymmetricDifference::iter].Reference in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Union::iter] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Union::iter].Reference in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::index | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::index | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::index | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::index | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::move_next | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::move_next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::move_prev | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::move_prev | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::index | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::index | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::index | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::index | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::remove_current | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::remove_current | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current_as_list | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::remove_current_as_list | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current_as_list | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::remove_current_as_list | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::insert_after | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::insert_after | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::move_next | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::move_next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::move_prev | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::move_prev | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::remove_current_as_list | LinkedList.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::alloc] in lang:alloc::_::::remove_current_as_list | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::splice_after | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::splice_after | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::IntoIter::list] in lang:alloc::_::::size_hint | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::IntoIter::list].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::size_hint | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::into_iter::IntoIter::inner] in lang:alloc::_::::count | VecDeque.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::into_iter::IntoIter::inner].Field[crate::collections::vec_deque::VecDeque::len] in lang:alloc::_::::count | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::iter::Iter::i1] in lang:alloc::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::iter::Iter::i1].Element in lang:alloc::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Children(0)] in lang:proc_macro::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Children(0)].Element in lang:proc_macro::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::FromVecWithNulError::bytes] in lang:alloc::_::::as_bytes | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::FromVecWithNulError::bytes].Element in lang:alloc::_::::as_bytes | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsStr::inner] in lang:std::_::::as_encoded_bytes | Slice | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsStr::inner].Field[crate::sys::os_str::bytes::Slice::inner] in lang:std::_::::as_encoded_bytes | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::into_vec | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::into_vec | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::into_encoded_bytes | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::into_encoded_bytes | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Arguments::pieces] in lang:core::_::::as_str | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Arguments::pieces].Element in lang:core::_::::as_str | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::align | FormattingOptions.align | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::align] in lang:core::_::::align | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::fill | FormattingOptions.fill | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::fill] in lang:core::_::::fill | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::flags | FormattingOptions.flags | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::flags] in lang:core::_::::flags | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::padding | FormattingOptions.fill | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::fill] in lang:core::_::::padding | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::precision | FormattingOptions.precision | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::precision] in lang:core::_::::precision | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::width | FormattingOptions.width | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::width] in lang:core::_::::width | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugList::inner] in lang:core::_::::finish | DebugInner.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugList::inner].Field[crate::fmt::builders::DebugInner::result] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::entry | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::entry | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::key | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key_with | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::key_with | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::value | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value_with | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::value_with | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::finish | DebugInner.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::result] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::finish_non_exhaustive | DebugInner.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::result] in lang:core::_::::finish_non_exhaustive | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field_with | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field_with | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field_with | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field_with | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::rt::Argument::ty] in lang:core::_::::as_usize | Count | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::rt::Argument::ty].Field[crate::fmt::rt::ArgumentType::Count(0)] in lang:core::_::::as_usize | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::future::ready::Ready(0)] in lang:core::_::::into_inner | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::future::ready::Ready(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedCursor::buf] in lang:core::_::::set_init | BorrowedBuf.init | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedCursor::buf].Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::set_init | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cloned::Cloned::it] in lang:core::_::::next_unchecked | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cloned::Cloned::it].Element in lang:core::_::::next_unchecked | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig] in lang:core::_::::advance_by | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig].Reference in lang:core::_::::advance_by | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig] in lang:core::_::::try_fold | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig].Reference in lang:core::_::::try_fold | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::into_parts | FlattenCompat.backiter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner].Field[crate::iter::adapters::flatten::FlattenCompat::backiter] in lang:core::_::::into_parts | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::into_parts | FlattenCompat.frontiter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner].Field[crate::iter::adapters::flatten::FlattenCompat::frontiter] in lang:core::_::::into_parts | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::Flatten::inner] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::Flatten::inner].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::intersperse::Intersperse::separator] in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::intersperse::Intersperse::separator].Reference in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::map_while::MapWhile::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::map_while::MapWhile::iter].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked].Field[crate::option::Option::Some(0)] in lang:core::_::::last | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked].Field[crate::option::Option::Some(0)] in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked].Field[crate::option::Option::Some(0)] in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter] in lang:core::_::::next_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter].Element in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter].Element in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::scan::Scan::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::scan::Scan::iter].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter].Element in lang:core::_::::last | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Field[crate::ops::range::Range::start] in lang:core::_::::spec_fold | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_fold | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_next | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Field[crate::ops::range::Range::start] in lang:core::_::::spec_next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_try_fold | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_try_fold | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take_while::TakeWhile::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take_while::TakeWhile::iter].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::to_ipv6_compatible | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets].Element in lang:core::_::::to_ipv6_compatible | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::to_ipv6_mapped | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets].Element in lang:core::_::::to_ipv6_mapped | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base] in lang:core::_::::digits | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::::digits | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base] in lang:core::_::::mul_pow2 | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::::mul_pow2 | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::digits | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base].Element in lang:core::_::::digits | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::mul_pow2 | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base].Element in lang:core::_::::mul_pow2 | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end].Reference in lang:core::_::::spec_next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_nth | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end].Reference in lang:core::_::::spec_nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::spec_next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end].Reference in lang:core::_::::spec_next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end].Reference in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference in lang:core::_::::spec_next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_fold | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference in lang:core::_::::spec_try_fold | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Item::opt] in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Item::opt].Reference in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Iter::inner] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Iter::inner].Reference in lang:core::_::::clone | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | Normal | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[crate::path::Component::Normal(0)] in lang:core::_::::and_then | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::and_then | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::cloned | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::cloned | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::copied | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::copied | @@ -2340,19 +4668,114 @@ readStep | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::unzip | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::unzip | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path].Element in lang:std::_::::next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path].Element in lang:std::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PathBuf::inner] in lang:std::_::::as_ref | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PathBuf::inner].Element in lang:std::_::::as_ref | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::deref | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::deref_mut | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::map_unchecked | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Field[0] in lang:core::_::::map_unchecked_mut | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRange(0)] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRange(0)].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)] in lang:core::_::::remainder | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::remainder | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeInclusive(0)] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeInclusive(0)].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::Weak::alloc] in lang:alloc::_::::upgrade | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::Weak::alloc].Reference in lang:alloc::_::::upgrade | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner] in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner].Reference in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner] in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner].Reference in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner] in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner].Reference in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner] in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner].Reference in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner] in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner].Reference in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner] in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner].Reference in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | Disconnected | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)].Field[crate::sync::mpmc::error::SendTimeoutError::Disconnected(0)] in lang:core::_::::map_err | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::unwrap_or_else | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)].Reference in lang:core::_::::unwrap_or_else | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::cloned | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::cloned | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::copied | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::copied | | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v].Element in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v].Element in lang:core::_::::last | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::v].Element in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::GenericSplitN::iter].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v].Element in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v].Element in lang:core::_::::last | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::v].Element in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RSplit::inner] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RSplit::inner].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v].Element in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v].Element in lang:core::_::::next_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v].Element in lang:core::_::::nth_back | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v].Element in lang:core::_::::last | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v].Element in lang:core::_::::next | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::Bytes(0)] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::Bytes(0)].Element in lang:core::_::::nth | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitInternal::matcher] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitInternal::matcher].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitNInternal::iter] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitNInternal::iter].Reference in lang:core::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::FromUtf8Error::bytes] in lang:alloc::_::::as_bytes | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::FromUtf8Error::bytes].Element in lang:alloc::_::::as_bytes | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::String::vec] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::String::vec].Reference in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::Weak::alloc] in lang:alloc::_::::upgrade | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::Weak::alloc].Reference in lang:alloc::_::::upgrade | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI8::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI8::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI16::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI16::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI32::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI32::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI64::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI64::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI128::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI128::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicIsize::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicIsize::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicPtr::p] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicPtr::p].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU8::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU8::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU16::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU16::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU32::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU32::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU64::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU64::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU128::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU128::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicUsize::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicUsize::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::select::Selected::Operation(0)] in lang:std::_::::into | Operation | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::select::Selected::Operation(0)].Field[crate::sync::mpmc::select::Operation(0)] in lang:std::_::::into | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::Sender::inner] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::Sender::inner].Reference in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::SyncSender::inner] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::SyncSender::inner].Reference in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::mutex::Mutex::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::once::OnceState::inner] in lang:std::_::::is_poisoned | OnceState.poisoned | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::once::OnceState::inner].Field[crate::sys::sync::once::queue::OnceState::poisoned] in lang:std::_::::is_poisoned | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::rwlock::RwLock::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock] in lang:std::_::::deref | ReentrantLock.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock].Field[crate::sync::reentrant_lock::ReentrantLock::data] in lang:std::_::::deref | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner].Reference in lang:std::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv] in lang:std::_::::get_argv | Argv | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv].Field[crate::sys::pal::unix::process::process_common::Argv(0)] in lang:std::_::::get_argv | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv] in lang:std::_::::get_argv | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv].Field[0] in lang:std::_::::get_argv | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::program] in lang:std::_::::get_program_cstr | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::program].Reference in lang:std::_::::get_program_cstr | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes] in lang:std::_::::ascii_byte_at | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes].Element in lang:std::_::::ascii_byte_at | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::branch | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::branch | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::branch | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_err | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::map_ok | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_ok | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::data | RawWaker.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::data] in lang:core::_::::data | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::vtable | RawWaker.vtable | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::vtable] in lang:core::_::::vtable | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker] in lang:core::_::::data | RawWaker.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::data] in lang:core::_::::data | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker] in lang:core::_::::vtable | RawWaker.vtable | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::vtable] in lang:core::_::::vtable | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::as_inner | JoinInner.native | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)].Field[crate::thread::JoinInner::native] in lang:std::_::::as_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::into_inner | JoinInner.native | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)].Field[crate::thread::JoinInner::native] in lang:std::_::::into_inner | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::thread | JoinInner.thread | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)].Field[crate::thread::JoinInner::thread] in lang:std::_::::thread | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::scoped::ScopedJoinHandle(0)] in lang:std::_::::thread | JoinInner.thread | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::scoped::ScopedJoinHandle(0)].Field[crate::thread::JoinInner::thread] in lang:std::_::::thread | +| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::into_iter::IntoIter::end] in lang:alloc::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::into_iter::IntoIter::end].Reference in lang:alloc::_::::next_back | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | String | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::string::String::vec] in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Borrowed | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::deref | Borrowed | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::deref | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::to_mut | Owned | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::borrow::Cow::Owned(0)] in lang:alloc::_::::to_mut | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow_mut | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::as_mut | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::as_ref | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::deref | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::deref_mut | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Cursor.root | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::collections::btree::map::Cursor::root] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Cursor.index | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::collections::linked_list::Cursor::index] in lang:alloc::_::::clone | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Cursor.list | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::clone | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::as_ref | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | @@ -2365,6 +4788,13 @@ readStep | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<_ as crate::str::pattern::MultiCharEq>::matches | function return | file://:0:0:0:0 | [summary] read: Argument[self].Reference.ReturnValue in lang:core::_::<_ as crate::str::pattern::MultiCharEq>::matches | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::take_output | Done | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::future::join::MaybeDone::Done(0)] in lang:core::_::::take_output | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::len | Zero | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::num::fmt::Part::Zero(0)] in lang:core::_::::len | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::write | Zero | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::num::fmt::Part::Zero(0)] in lang:core::_::::write | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | Excluded | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | Included | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_mut | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | Excluded | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | Included | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_ref | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | Some | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | Some | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::as_ref | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::get_or_insert | Some | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::get_or_insert | @@ -2378,6 +4808,9 @@ readStep | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_mut | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | Err | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::result::Result::Err(0)] in lang:core::_::::as_ref | | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_ref | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::as_ref | Normal | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::path::Component::Normal(0)] in lang:std::_::::as_ref | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::cause | Poisoned | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::sync::poison::TryLockError::Poisoned(0)] in lang:std::_::::cause | +| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::fd | Explicit | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::sys::pal::unix::process::process_common::ChildStdio::Explicit(0)] in lang:std::_::::fd | | main.rs:36:9:36:15 | Some(...) | Some | main.rs:36:14:36:14 | _ | | main.rs:90:11:90:11 | i | &ref | main.rs:90:10:90:11 | * ... | | main.rs:98:10:98:10 | a | tuple.0 | main.rs:98:10:98:12 | a.0 | From 457632e10efed85cc9d4416fc23817b245dac3ab Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 20 May 2025 16:25:39 +0200 Subject: [PATCH 558/656] Rust: update UncontrolledAllocationSize.expected --- .../UncontrolledAllocationSize.expected | 117 ++++++++++-------- 1 file changed, 63 insertions(+), 54 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected index 0e9acca98d7..d2b3e2e156c 100644 --- a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected +++ b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected @@ -53,36 +53,40 @@ edges | main.rs:18:41:18:41 | v | main.rs:32:60:32:89 | ... * ... | provenance | | | main.rs:18:41:18:41 | v | main.rs:35:9:35:10 | s6 | provenance | | | main.rs:20:9:20:10 | l2 | main.rs:21:31:21:32 | l2 | provenance | | -| main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | main.rs:20:14:20:63 | ... .unwrap() | provenance | MaD:31 | +| main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | main.rs:20:14:20:63 | ... .unwrap() | provenance | MaD:33 | | main.rs:20:14:20:63 | ... .unwrap() | main.rs:20:9:20:10 | l2 | provenance | | | main.rs:20:50:20:50 | v | main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | provenance | MaD:23 | | main.rs:21:31:21:32 | l2 | main.rs:21:13:21:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:21:31:21:32 | l2 | main.rs:22:31:22:44 | l2.align_to(...) [Ok] | provenance | MaD:17 | | main.rs:21:31:21:32 | l2 | main.rs:23:31:23:44 | l2.align_to(...) [Ok] | provenance | MaD:17 | | main.rs:21:31:21:32 | l2 | main.rs:24:38:24:39 | l2 | provenance | | -| main.rs:22:31:22:44 | l2.align_to(...) [Ok] | main.rs:22:31:22:53 | ... .unwrap() | provenance | MaD:31 | +| main.rs:22:31:22:44 | l2.align_to(...) [Ok] | main.rs:22:31:22:53 | ... .unwrap() | provenance | MaD:33 | | main.rs:22:31:22:53 | ... .unwrap() | main.rs:22:13:22:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:23:31:23:44 | l2.align_to(...) [Ok] | main.rs:23:31:23:53 | ... .unwrap() | provenance | MaD:31 | -| main.rs:23:31:23:53 | ... .unwrap() | main.rs:23:31:23:68 | ... .pad_to_align() | provenance | MaD:25 | +| main.rs:23:31:23:44 | l2.align_to(...) [Ok] | main.rs:23:31:23:53 | ... .unwrap() | provenance | MaD:33 | +| main.rs:23:31:23:53 | ... .unwrap() | main.rs:23:31:23:68 | ... .pad_to_align() | provenance | MaD:26 | | main.rs:23:31:23:68 | ... .pad_to_align() | main.rs:23:13:23:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:24:38:24:39 | l2 | main.rs:24:13:24:36 | ...::alloc_zeroed | provenance | MaD:4 Sink:MaD:4 | | main.rs:29:9:29:10 | l4 | main.rs:30:31:30:32 | l4 | provenance | | | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | main.rs:29:9:29:10 | l4 | provenance | | -| main.rs:29:60:29:60 | v | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | provenance | MaD:24 | +| main.rs:29:60:29:60 | v | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | provenance | MaD:25 | | main.rs:30:31:30:32 | l4 | main.rs:30:13:30:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:32:9:32:10 | l5 | main.rs:33:31:33:32 | l5 | provenance | | | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | main.rs:32:9:32:10 | l5 | provenance | | -| main.rs:32:60:32:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:24 | +| main.rs:32:60:32:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:25 | | main.rs:33:31:33:32 | l5 | main.rs:33:13:33:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:35:9:35:10 | s6 | main.rs:36:60:36:61 | s6 | provenance | | | main.rs:36:9:36:10 | l6 | main.rs:37:31:37:32 | l6 | provenance | | +| main.rs:36:9:36:10 | l6 [Layout.size] | main.rs:37:31:37:32 | l6 [Layout.size] | provenance | | | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | main.rs:36:9:36:10 | l6 | provenance | | -| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:24 | +| main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) [Layout.size] | main.rs:36:9:36:10 | l6 [Layout.size] | provenance | | +| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:25 | +| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) [Layout.size] | provenance | MaD:24 | | main.rs:37:31:37:32 | l6 | main.rs:37:13:37:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:37:31:37:32 | l6 | main.rs:39:60:39:68 | l6.size() | provenance | MaD:28 | +| main.rs:37:31:37:32 | l6 | main.rs:39:60:39:68 | l6.size() | provenance | MaD:30 | +| main.rs:37:31:37:32 | l6 [Layout.size] | main.rs:39:60:39:68 | l6.size() | provenance | MaD:29 | | main.rs:39:9:39:10 | l7 | main.rs:40:31:40:32 | l7 | provenance | | | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | main.rs:39:9:39:10 | l7 | provenance | | -| main.rs:39:60:39:68 | l6.size() | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | provenance | MaD:24 | +| main.rs:39:60:39:68 | l6.size() | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | provenance | MaD:25 | | main.rs:40:31:40:32 | l7 | main.rs:40:13:40:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:43:44:43:51 | ...: usize | main.rs:50:41:50:41 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:51:41:51:45 | ... + ... | provenance | | @@ -90,25 +94,25 @@ edges | main.rs:43:44:43:51 | ...: usize | main.rs:54:48:54:53 | ... * ... | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:58:34:58:34 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:67:46:67:46 | v | provenance | | -| main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | provenance | MaD:31 | +| main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | provenance | MaD:33 | | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | main.rs:50:31:50:53 | ... .0 | provenance | | | main.rs:50:31:50:53 | ... .0 | main.rs:50:13:50:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:50:41:50:41 | v | main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:26 | -| main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | provenance | MaD:31 | +| main.rs:50:41:50:41 | v | main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:27 | +| main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | provenance | MaD:33 | | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | main.rs:51:31:51:57 | ... .0 | provenance | | | main.rs:51:31:51:57 | ... .0 | main.rs:51:13:51:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:51:41:51:45 | ... + ... | main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:26 | -| main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | main.rs:53:31:53:58 | ... .unwrap() | provenance | MaD:31 | +| main.rs:51:41:51:45 | ... + ... | main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:27 | +| main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | main.rs:53:31:53:58 | ... .unwrap() | provenance | MaD:33 | | main.rs:53:31:53:58 | ... .unwrap() | main.rs:53:13:53:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:53:48:53:48 | v | main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | provenance | MaD:27 | -| main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | main.rs:54:31:54:63 | ... .unwrap() | provenance | MaD:31 | +| main.rs:53:48:53:48 | v | main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | provenance | MaD:28 | +| main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | main.rs:54:31:54:63 | ... .unwrap() | provenance | MaD:33 | | main.rs:54:31:54:63 | ... .unwrap() | main.rs:54:13:54:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:54:48:54:53 | ... * ... | main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | provenance | MaD:27 | +| main.rs:54:48:54:53 | ... * ... | main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | provenance | MaD:28 | | main.rs:58:9:58:20 | TuplePat [tuple.0] | main.rs:58:10:58:11 | k1 | provenance | | | main.rs:58:10:58:11 | k1 | main.rs:59:31:59:32 | k1 | provenance | | -| main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | provenance | MaD:30 | +| main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | provenance | MaD:32 | | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | main.rs:58:9:58:20 | TuplePat [tuple.0] | provenance | | -| main.rs:58:34:58:34 | v | main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | provenance | MaD:26 | +| main.rs:58:34:58:34 | v | main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | provenance | MaD:27 | | main.rs:59:31:59:32 | k1 | main.rs:59:13:59:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:59:31:59:32 | k1 | main.rs:60:34:60:35 | k1 | provenance | | | main.rs:59:31:59:32 | k1 | main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | provenance | MaD:20 | @@ -116,28 +120,28 @@ edges | main.rs:59:31:59:32 | k1 | main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | provenance | MaD:22 | | main.rs:60:9:60:20 | TuplePat [tuple.0] | main.rs:60:10:60:11 | k2 | provenance | | | main.rs:60:10:60:11 | k2 | main.rs:61:31:61:32 | k2 | provenance | | -| main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | provenance | MaD:31 | +| main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | provenance | MaD:33 | | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | main.rs:60:9:60:20 | TuplePat [tuple.0] | provenance | | | main.rs:60:34:60:35 | k1 | main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | provenance | MaD:19 | | main.rs:61:31:61:32 | k2 | main.rs:61:13:61:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:62:9:62:20 | TuplePat [tuple.0] | main.rs:62:10:62:11 | k3 | provenance | | | main.rs:62:10:62:11 | k3 | main.rs:63:31:63:32 | k3 | provenance | | -| main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | provenance | MaD:31 | +| main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | provenance | MaD:33 | | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | main.rs:62:9:62:20 | TuplePat [tuple.0] | provenance | | | main.rs:63:31:63:32 | k3 | main.rs:63:13:63:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | main.rs:64:31:64:59 | ... .unwrap() | provenance | MaD:31 | +| main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | main.rs:64:31:64:59 | ... .unwrap() | provenance | MaD:33 | | main.rs:64:31:64:59 | ... .unwrap() | main.rs:64:13:64:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:64:48:64:49 | k1 | main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | provenance | MaD:21 | -| main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | main.rs:65:31:65:59 | ... .unwrap() | provenance | MaD:31 | +| main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | main.rs:65:31:65:59 | ... .unwrap() | provenance | MaD:33 | | main.rs:65:31:65:59 | ... .unwrap() | main.rs:65:13:65:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:67:9:67:10 | l4 | main.rs:68:31:68:32 | l4 | provenance | | -| main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | main.rs:67:14:67:56 | ... .unwrap() | provenance | MaD:31 | +| main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | main.rs:67:14:67:56 | ... .unwrap() | provenance | MaD:33 | | main.rs:67:14:67:56 | ... .unwrap() | main.rs:67:9:67:10 | l4 | provenance | | | main.rs:67:46:67:46 | v | main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | | main.rs:68:31:68:32 | l4 | main.rs:68:13:68:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:86:35:86:42 | ...: usize | main.rs:87:54:87:54 | v | provenance | | | main.rs:87:9:87:14 | layout | main.rs:88:31:88:36 | layout | provenance | | -| main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | main.rs:87:18:87:67 | ... .unwrap() | provenance | MaD:31 | +| main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | main.rs:87:18:87:67 | ... .unwrap() | provenance | MaD:33 | | main.rs:87:18:87:67 | ... .unwrap() | main.rs:87:9:87:14 | layout | provenance | | | main.rs:87:54:87:54 | v | main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | provenance | MaD:23 | | main.rs:88:31:88:36 | layout | main.rs:88:13:88:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | @@ -150,14 +154,14 @@ edges | main.rs:91:38:91:45 | ...: usize | main.rs:161:55:161:55 | v | provenance | | | main.rs:92:9:92:10 | l1 | main.rs:96:35:96:36 | l1 | provenance | | | main.rs:92:9:92:10 | l1 | main.rs:102:35:102:36 | l1 | provenance | | -| main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | main.rs:92:14:92:57 | ... .unwrap() | provenance | MaD:31 | +| main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | main.rs:92:14:92:57 | ... .unwrap() | provenance | MaD:33 | | main.rs:92:14:92:57 | ... .unwrap() | main.rs:92:9:92:10 | l1 | provenance | | | main.rs:92:47:92:47 | v | main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | | main.rs:96:35:96:36 | l1 | main.rs:96:17:96:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:96:35:96:36 | l1 | main.rs:109:35:109:36 | l1 | provenance | | | main.rs:96:35:96:36 | l1 | main.rs:111:35:111:36 | l1 | provenance | | | main.rs:101:13:101:14 | l3 | main.rs:103:35:103:36 | l3 | provenance | | -| main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | main.rs:101:18:101:61 | ... .unwrap() | provenance | MaD:31 | +| main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | main.rs:101:18:101:61 | ... .unwrap() | provenance | MaD:33 | | main.rs:101:18:101:61 | ... .unwrap() | main.rs:101:13:101:14 | l3 | provenance | | | main.rs:101:51:101:51 | v | main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | | main.rs:102:35:102:36 | l1 | main.rs:102:17:102:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | @@ -170,26 +174,26 @@ edges | main.rs:111:35:111:36 | l1 | main.rs:111:17:111:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:111:35:111:36 | l1 | main.rs:146:35:146:36 | l1 | provenance | | | main.rs:145:13:145:14 | l9 | main.rs:148:35:148:36 | l9 | provenance | | -| main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | main.rs:145:18:145:61 | ... .unwrap() | provenance | MaD:31 | +| main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | main.rs:145:18:145:61 | ... .unwrap() | provenance | MaD:33 | | main.rs:145:18:145:61 | ... .unwrap() | main.rs:145:13:145:14 | l9 | provenance | | | main.rs:145:51:145:51 | v | main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | | main.rs:146:35:146:36 | l1 | main.rs:146:17:146:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:146:35:146:36 | l1 | main.rs:177:31:177:32 | l1 | provenance | | | main.rs:148:35:148:36 | l9 | main.rs:148:17:148:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:151:9:151:11 | l10 | main.rs:152:31:152:33 | l10 | provenance | | -| main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | main.rs:151:15:151:78 | ... .unwrap() | provenance | MaD:31 | +| main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | main.rs:151:15:151:78 | ... .unwrap() | provenance | MaD:33 | | main.rs:151:15:151:78 | ... .unwrap() | main.rs:151:9:151:11 | l10 | provenance | | | main.rs:151:48:151:68 | ...::min(...) | main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | -| main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:34 | +| main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:36 | | main.rs:152:31:152:33 | l10 | main.rs:152:13:152:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:154:9:154:11 | l11 | main.rs:155:31:155:33 | l11 | provenance | | -| main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | main.rs:154:15:154:78 | ... .unwrap() | provenance | MaD:31 | +| main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | main.rs:154:15:154:78 | ... .unwrap() | provenance | MaD:33 | | main.rs:154:15:154:78 | ... .unwrap() | main.rs:154:9:154:11 | l11 | provenance | | | main.rs:154:48:154:68 | ...::max(...) | main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | -| main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:33 | +| main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:35 | | main.rs:155:31:155:33 | l11 | main.rs:155:13:155:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:161:13:161:15 | l13 | main.rs:162:35:162:37 | l13 | provenance | | -| main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | main.rs:161:19:161:68 | ... .unwrap() | provenance | MaD:31 | +| main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | main.rs:161:19:161:68 | ... .unwrap() | provenance | MaD:33 | | main.rs:161:19:161:68 | ... .unwrap() | main.rs:161:13:161:15 | l13 | provenance | | | main.rs:161:55:161:55 | v | main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | provenance | MaD:23 | | main.rs:162:35:162:37 | l13 | main.rs:162:17:162:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | @@ -198,7 +202,7 @@ edges | main.rs:177:31:177:32 | l1 | main.rs:177:13:177:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:183:29:183:36 | ...: usize | main.rs:192:46:192:46 | v | provenance | | | main.rs:192:9:192:10 | l2 | main.rs:193:38:193:39 | l2 | provenance | | -| main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | main.rs:192:14:192:56 | ... .unwrap() | provenance | MaD:31 | +| main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | main.rs:192:14:192:56 | ... .unwrap() | provenance | MaD:33 | | main.rs:192:14:192:56 | ... .unwrap() | main.rs:192:9:192:10 | l2 | provenance | | | main.rs:192:46:192:46 | v | main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | | main.rs:193:38:193:39 | l2 | main.rs:193:32:193:36 | alloc | provenance | MaD:10 Sink:MaD:10 | @@ -226,18 +230,18 @@ edges | main.rs:223:26:223:26 | v | main.rs:223:13:223:24 | ...::calloc | provenance | MaD:13 Sink:MaD:13 | | main.rs:223:26:223:26 | v | main.rs:224:31:224:31 | v | provenance | | | main.rs:224:31:224:31 | v | main.rs:224:13:224:25 | ...::realloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:279:24:279:41 | ...: String | main.rs:280:21:280:47 | user_input.parse() [Ok] | provenance | MaD:32 | +| main.rs:279:24:279:41 | ...: String | main.rs:280:21:280:47 | user_input.parse() [Ok] | provenance | MaD:34 | | main.rs:280:9:280:17 | num_bytes | main.rs:282:54:282:62 | num_bytes | provenance | | | main.rs:280:21:280:47 | user_input.parse() [Ok] | main.rs:280:21:280:48 | TryExpr | provenance | | | main.rs:280:21:280:48 | TryExpr | main.rs:280:9:280:17 | num_bytes | provenance | | | main.rs:282:9:282:14 | layout | main.rs:284:40:284:45 | layout | provenance | | -| main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | main.rs:282:18:282:75 | ... .unwrap() | provenance | MaD:31 | +| main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | main.rs:282:18:282:75 | ... .unwrap() | provenance | MaD:33 | | main.rs:282:18:282:75 | ... .unwrap() | main.rs:282:9:282:14 | layout | provenance | | | main.rs:282:54:282:62 | num_bytes | main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | provenance | MaD:23 | | main.rs:284:40:284:45 | layout | main.rs:284:22:284:38 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:308:25:308:38 | ...::args | main.rs:308:25:308:40 | ...::args(...) [element] | provenance | Src:MaD:16 | -| main.rs:308:25:308:40 | ...::args(...) [element] | main.rs:308:25:308:47 | ... .nth(...) [Some] | provenance | MaD:35 | -| main.rs:308:25:308:47 | ... .nth(...) [Some] | main.rs:308:25:308:74 | ... .unwrap_or(...) | provenance | MaD:29 | +| main.rs:308:25:308:40 | ...::args(...) [element] | main.rs:308:25:308:47 | ... .nth(...) [Some] | provenance | MaD:37 | +| main.rs:308:25:308:47 | ... .nth(...) [Some] | main.rs:308:25:308:74 | ... .unwrap_or(...) | provenance | MaD:31 | | main.rs:308:25:308:74 | ... .unwrap_or(...) | main.rs:279:24:279:41 | ...: String | provenance | | | main.rs:317:9:317:9 | v | main.rs:320:34:320:34 | v | provenance | | | main.rs:317:9:317:9 | v | main.rs:321:42:321:42 | v | provenance | | @@ -245,10 +249,10 @@ edges | main.rs:317:9:317:9 | v | main.rs:323:27:323:27 | v | provenance | | | main.rs:317:9:317:9 | v | main.rs:324:25:324:25 | v | provenance | | | main.rs:317:13:317:26 | ...::args | main.rs:317:13:317:28 | ...::args(...) [element] | provenance | Src:MaD:16 | -| main.rs:317:13:317:28 | ...::args(...) [element] | main.rs:317:13:317:35 | ... .nth(...) [Some] | provenance | MaD:35 | -| main.rs:317:13:317:35 | ... .nth(...) [Some] | main.rs:317:13:317:65 | ... .unwrap_or(...) | provenance | MaD:29 | -| main.rs:317:13:317:65 | ... .unwrap_or(...) | main.rs:317:13:317:82 | ... .parse() [Ok] | provenance | MaD:32 | -| main.rs:317:13:317:82 | ... .parse() [Ok] | main.rs:317:13:317:91 | ... .unwrap() | provenance | MaD:31 | +| main.rs:317:13:317:28 | ...::args(...) [element] | main.rs:317:13:317:35 | ... .nth(...) [Some] | provenance | MaD:37 | +| main.rs:317:13:317:35 | ... .nth(...) [Some] | main.rs:317:13:317:65 | ... .unwrap_or(...) | provenance | MaD:31 | +| main.rs:317:13:317:65 | ... .unwrap_or(...) | main.rs:317:13:317:82 | ... .parse() [Ok] | provenance | MaD:34 | +| main.rs:317:13:317:82 | ... .parse() [Ok] | main.rs:317:13:317:91 | ... .unwrap() | provenance | MaD:33 | | main.rs:317:13:317:91 | ... .unwrap() | main.rs:317:9:317:9 | v | provenance | | | main.rs:320:34:320:34 | v | main.rs:12:36:12:43 | ...: usize | provenance | | | main.rs:321:42:321:42 | v | main.rs:43:44:43:51 | ...: usize | provenance | | @@ -279,18 +283,20 @@ models | 21 | Summary: lang:core; ::extend_packed; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | | 22 | Summary: lang:core; ::extend_packed; Argument[self]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | | 23 | Summary: lang:core; ::from_size_align; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | -| 24 | Summary: lang:core; ::from_size_align_unchecked; Argument[0]; ReturnValue; taint | -| 25 | Summary: lang:core; ::pad_to_align; Argument[self]; ReturnValue; taint | -| 26 | Summary: lang:core; ::repeat; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)].Field[0]; taint | -| 27 | Summary: lang:core; ::repeat_packed; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | -| 28 | Summary: lang:core; ::size; Argument[self]; ReturnValue; taint | -| 29 | Summary: lang:core; ::unwrap_or; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | -| 30 | Summary: lang:core; ::expect; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | -| 31 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | -| 32 | Summary: lang:core; ::parse; Argument[self]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | -| 33 | Summary: lang:core; crate::cmp::max; Argument[0]; ReturnValue; value | -| 34 | Summary: lang:core; crate::cmp::min; Argument[0]; ReturnValue; value | -| 35 | Summary: lang:core; crate::iter::traits::iterator::Iterator::nth; Argument[self].Element; ReturnValue.Field[crate::option::Option::Some(0)]; value | +| 24 | Summary: lang:core; ::from_size_align_unchecked; Argument[0]; ReturnValue.Field[crate::alloc::layout::Layout::size]; value | +| 25 | Summary: lang:core; ::from_size_align_unchecked; Argument[0]; ReturnValue; taint | +| 26 | Summary: lang:core; ::pad_to_align; Argument[self]; ReturnValue; taint | +| 27 | Summary: lang:core; ::repeat; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)].Field[0]; taint | +| 28 | Summary: lang:core; ::repeat_packed; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | +| 29 | Summary: lang:core; ::size; Argument[self].Field[crate::alloc::layout::Layout::size]; ReturnValue; value | +| 30 | Summary: lang:core; ::size; Argument[self]; ReturnValue; taint | +| 31 | Summary: lang:core; ::unwrap_or; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | +| 32 | Summary: lang:core; ::expect; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | +| 33 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | +| 34 | Summary: lang:core; ::parse; Argument[self]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | +| 35 | Summary: lang:core; crate::cmp::max; Argument[0]; ReturnValue; value | +| 36 | Summary: lang:core; crate::cmp::min; Argument[0]; ReturnValue; value | +| 37 | Summary: lang:core; crate::iter::traits::iterator::Iterator::nth; Argument[self].Element; ReturnValue.Field[crate::option::Option::Some(0)]; value | nodes | main.rs:12:36:12:43 | ...: usize | semmle.label | ...: usize | | main.rs:18:13:18:31 | ...::realloc | semmle.label | ...::realloc | @@ -322,10 +328,13 @@ nodes | main.rs:33:31:33:32 | l5 | semmle.label | l5 | | main.rs:35:9:35:10 | s6 | semmle.label | s6 | | main.rs:36:9:36:10 | l6 | semmle.label | l6 | +| main.rs:36:9:36:10 | l6 [Layout.size] | semmle.label | l6 [Layout.size] | | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | semmle.label | ...::from_size_align_unchecked(...) | +| main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) [Layout.size] | semmle.label | ...::from_size_align_unchecked(...) [Layout.size] | | main.rs:36:60:36:61 | s6 | semmle.label | s6 | | main.rs:37:13:37:29 | ...::alloc | semmle.label | ...::alloc | | main.rs:37:31:37:32 | l6 | semmle.label | l6 | +| main.rs:37:31:37:32 | l6 [Layout.size] | semmle.label | l6 [Layout.size] | | main.rs:39:9:39:10 | l7 | semmle.label | l7 | | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | semmle.label | ...::from_size_align_unchecked(...) | | main.rs:39:60:39:68 | l6.size() | semmle.label | l6.size() | From e90ab7b8812d4637cd81965f50d06ec7eb088c4a Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 20 May 2025 16:51:16 +0200 Subject: [PATCH 559/656] Rust: fix diagnostics tests --- .../queries/diagnostics/UnresolvedMacroCalls.ql | 2 +- rust/ql/src/queries/summary/Stats.qll | 16 ++++++++++------ .../query-tests/diagnostics/LinesOfCode.expected | 2 +- .../diagnostics/SummaryStatsReduced.expected | 2 +- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/rust/ql/src/queries/diagnostics/UnresolvedMacroCalls.ql b/rust/ql/src/queries/diagnostics/UnresolvedMacroCalls.ql index 9b04fca82f4..f4e6a73fa7a 100644 --- a/rust/ql/src/queries/diagnostics/UnresolvedMacroCalls.ql +++ b/rust/ql/src/queries/diagnostics/UnresolvedMacroCalls.ql @@ -8,5 +8,5 @@ import rust from MacroCall mc -where not mc.hasMacroCallExpansion() +where mc.fromSource() and not mc.hasMacroCallExpansion() select mc, "Macro call was not resolved to a target." diff --git a/rust/ql/src/queries/summary/Stats.qll b/rust/ql/src/queries/summary/Stats.qll index 6e9f08b17c6..2199a3ddff0 100644 --- a/rust/ql/src/queries/summary/Stats.qll +++ b/rust/ql/src/queries/summary/Stats.qll @@ -28,7 +28,7 @@ private import codeql.rust.security.WeakSensitiveDataHashingExtensions /** * Gets a count of the total number of lines of code in the database. */ -int getLinesOfCode() { result = sum(File f | | f.getNumberOfLinesOfCode()) } +int getLinesOfCode() { result = sum(File f | f.fromSource() | f.getNumberOfLinesOfCode()) } /** * Gets a count of the total number of lines of code from the source code directory in the database. @@ -109,9 +109,11 @@ predicate elementStats(string key, int value) { * Gets summary statistics about extraction. */ predicate extractionStats(string key, int value) { - key = "Extraction errors" and value = count(ExtractionError e) + key = "Extraction errors" and + value = count(ExtractionError e | not exists(e.getLocation()) or e.getLocation().fromSource()) or - key = "Extraction warnings" and value = count(ExtractionWarning w) + key = "Extraction warnings" and + value = count(ExtractionWarning w | not exists(w.getLocation()) or w.getLocation().fromSource()) or key = "Files extracted - total" and value = count(ExtractedFile f | exists(f.getRelativePath())) or @@ -133,11 +135,13 @@ predicate extractionStats(string key, int value) { or key = "Lines of user code extracted" and value = getLinesOfUserCode() or - key = "Macro calls - total" and value = count(MacroCall mc) + key = "Macro calls - total" and value = count(MacroCall mc | mc.fromSource()) or - key = "Macro calls - resolved" and value = count(MacroCall mc | mc.hasMacroCallExpansion()) + key = "Macro calls - resolved" and + value = count(MacroCall mc | mc.fromSource() and mc.hasMacroCallExpansion()) or - key = "Macro calls - unresolved" and value = count(MacroCall mc | not mc.hasMacroCallExpansion()) + key = "Macro calls - unresolved" and + value = count(MacroCall mc | mc.fromSource() and not mc.hasMacroCallExpansion()) } /** diff --git a/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected b/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected index 76e48043d0d..5fa7b20e01b 100644 --- a/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected +++ b/rust/ql/test/query-tests/diagnostics/LinesOfCode.expected @@ -1 +1 @@ -| 77 | +| 60 | diff --git a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected index 793ed90a482..ed21d9772fc 100644 --- a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected +++ b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected @@ -9,7 +9,7 @@ | Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | -| Lines of code extracted | 77 | +| Lines of code extracted | 60 | | Lines of user code extracted | 60 | | Macro calls - resolved | 8 | | Macro calls - total | 9 | From 76da2e41f74672b629d9d53162a8431a2b86793c Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 20 May 2025 16:56:21 +0200 Subject: [PATCH 560/656] Rust: drop crate_graph/modules.ql test --- .../crate_graph/modules.expected | 140 ------------------ .../extractor-tests/crate_graph/modules.ql | 74 --------- 2 files changed, 214 deletions(-) delete mode 100644 rust/ql/test/extractor-tests/crate_graph/modules.expected delete mode 100644 rust/ql/test/extractor-tests/crate_graph/modules.ql diff --git a/rust/ql/test/extractor-tests/crate_graph/modules.expected b/rust/ql/test/extractor-tests/crate_graph/modules.expected deleted file mode 100644 index 157432a77e3..00000000000 --- a/rust/ql/test/extractor-tests/crate_graph/modules.expected +++ /dev/null @@ -1,140 +0,0 @@ -#-----| Const - -#-----| Static - -#-----| enum X - -#-----| fn as_string - -#-----| fn as_string - -#-----| fn fmt - -#-----| fn from - -#-----| fn length - -#-----| impl ...::AsString for ...::X { ... } -#-----| -> fn as_string - -#-----| impl ...::Display for ...::X { ... } -#-----| -> fn fmt - -#-----| impl ...::From::<...> for ...::Thing::<...> { ... } -#-----| -> fn from - -lib.rs: -# 0| mod crate -#-----| -> mod module - -#-----| mod module -#-----| -> Const -#-----| -> Static -#-----| -> enum X -#-----| -> fn length -#-----| -> impl ...::AsString for ...::X { ... } -#-----| -> impl ...::Display for ...::X { ... } -#-----| -> impl ...::From::<...> for ...::Thing::<...> { ... } -#-----| -> struct LocalKey -#-----| -> struct Thing -#-----| -> struct X_List -#-----| -> trait AsString -#-----| -> use ...::DirBuilder -#-----| -> use ...::DirEntry -#-----| -> use ...::File -#-----| -> use ...::FileTimes -#-----| -> use ...::FileType -#-----| -> use ...::Metadata -#-----| -> use ...::OpenOptions -#-----| -> use ...::PathBuf -#-----| -> use ...::Permissions -#-----| -> use ...::ReadDir -#-----| -> use ...::canonicalize -#-----| -> use ...::copy -#-----| -> use ...::create_dir -#-----| -> use ...::create_dir as mkdir -#-----| -> use ...::create_dir_all -#-----| -> use ...::exists -#-----| -> use ...::hard_link -#-----| -> use ...::metadata -#-----| -> use ...::read -#-----| -> use ...::read_dir -#-----| -> use ...::read_link -#-----| -> use ...::read_to_string -#-----| -> use ...::remove_dir -#-----| -> use ...::remove_dir_all -#-----| -> use ...::remove_file -#-----| -> use ...::rename -#-----| -> use ...::set_permissions -#-----| -> use ...::soft_link -#-----| -> use ...::symlink_metadata -#-----| -> use ...::write - -#-----| struct LocalKey - -#-----| struct Thing - -#-----| struct X_List - -#-----| trait AsString -#-----| -> fn as_string - -#-----| use ...::DirBuilder - -#-----| use ...::DirEntry - -#-----| use ...::File - -#-----| use ...::FileTimes - -#-----| use ...::FileType - -#-----| use ...::Metadata - -#-----| use ...::OpenOptions - -#-----| use ...::PathBuf - -#-----| use ...::Permissions - -#-----| use ...::ReadDir - -#-----| use ...::canonicalize - -#-----| use ...::copy - -#-----| use ...::create_dir - -#-----| use ...::create_dir as mkdir - -#-----| use ...::create_dir_all - -#-----| use ...::exists - -#-----| use ...::hard_link - -#-----| use ...::metadata - -#-----| use ...::read - -#-----| use ...::read_dir - -#-----| use ...::read_link - -#-----| use ...::read_to_string - -#-----| use ...::remove_dir - -#-----| use ...::remove_dir_all - -#-----| use ...::remove_file - -#-----| use ...::rename - -#-----| use ...::set_permissions - -#-----| use ...::soft_link - -#-----| use ...::symlink_metadata - -#-----| use ...::write diff --git a/rust/ql/test/extractor-tests/crate_graph/modules.ql b/rust/ql/test/extractor-tests/crate_graph/modules.ql deleted file mode 100644 index b9db8f9b1e3..00000000000 --- a/rust/ql/test/extractor-tests/crate_graph/modules.ql +++ /dev/null @@ -1,74 +0,0 @@ -/** - * @id module-graph - * @name Module and Item Graph - * @kind graph - */ - -import rust -import codeql.rust.internal.PathResolution - -predicate nodes(Item i) { i instanceof RelevantNode } - -class RelevantNode extends Element instanceof ItemNode { - RelevantNode() { - this.(ItemNode).getImmediateParentModule*() = - any(Crate m | m.getName() = "test" and m.getVersion() = "0.0.1") - .(CrateItemNode) - .getModuleNode() - } - - string label() { result = this.toString() } -} - -class HasGenericParams extends RelevantNode { - private GenericParamList params; - - HasGenericParams() { - params = this.(Function).getGenericParamList() or - params = this.(Enum).getGenericParamList() or - params = this.(Struct).getGenericParamList() or - params = this.(Union).getGenericParamList() or - params = this.(Impl).getGenericParamList() or - params = this.(Trait).getGenericParamList() // or - //params = this.(TraitAlias).getGenericParamList() - } - - override string label() { - result = - super.toString() + "<" + - strictconcat(string part, int index | - part = params.getGenericParam(index).toString() - | - part, ", " order by index - ) + ">" - } -} - -predicate edges(RelevantNode container, RelevantNode element) { - element = container.(Module).getItemList().getAnItem() or - element = container.(Impl).getAssocItemList().getAnAssocItem() or - element = container.(Trait).getAssocItemList().getAnAssocItem() -} - -query predicate nodes(RelevantNode node, string attr, string val) { - nodes(node) and - ( - attr = "semmle.label" and - val = node.label() - or - attr = "semmle.order" and - val = - any(int i | node = rank[i](RelevantNode n | nodes(n) | n order by n.toString())).toString() - ) -} - -query predicate edges(RelevantNode pred, RelevantNode succ, string attr, string val) { - edges(pred, succ) and - ( - attr = "semmle.label" and - val = "" - or - attr = "semmle.order" and - val = any(int i | succ = rank[i](Item s | edges(pred, s) | s order by s.toString())).toString() - ) -} From 81f0e4202af3c8e76d65584074faa70fe7853642 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 20 May 2025 17:21:21 +0200 Subject: [PATCH 561/656] Rust: improve ExtractionConsistency.ql --- rust/ql/consistency-queries/ExtractionConsistency.ql | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rust/ql/consistency-queries/ExtractionConsistency.ql b/rust/ql/consistency-queries/ExtractionConsistency.ql index 8b1f0adca94..c6e9bcdc2cb 100644 --- a/rust/ql/consistency-queries/ExtractionConsistency.ql +++ b/rust/ql/consistency-queries/ExtractionConsistency.ql @@ -7,6 +7,10 @@ import codeql.rust.Diagnostics -query predicate extractionError(ExtractionError ee) { any() } +query predicate extractionError(ExtractionError ee) { + not exists(ee.getLocation()) or ee.getLocation().fromSource() +} -query predicate extractionWarning(ExtractionWarning ew) { any() } +query predicate extractionWarning(ExtractionWarning ew) { + not exists(ew.getLocation()) or ew.getLocation().fromSource() +} From f093c496d58ea4212ea0a9151b9e67c9bdb20bed Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 20 May 2025 22:28:55 +0200 Subject: [PATCH 562/656] Rust: normalize file paths for PathResolutionConsistency.ql --- .../PathResolutionConsistency.ql | 23 +++++++++++++++- .../PathResolutionConsistency.expected | 3 +++ .../PathResolutionConsistency.expected | 27 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 rust/ql/test/query-tests/security/CWE-696/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/consistency-queries/PathResolutionConsistency.ql b/rust/ql/consistency-queries/PathResolutionConsistency.ql index 368b2c1e559..88f5f4aa175 100644 --- a/rust/ql/consistency-queries/PathResolutionConsistency.ql +++ b/rust/ql/consistency-queries/PathResolutionConsistency.ql @@ -5,4 +5,25 @@ * @id rust/diagnostics/path-resolution-consistency */ -import codeql.rust.internal.PathResolutionConsistency +private import codeql.rust.internal.PathResolutionConsistency as PathResolutionConsistency +private import codeql.rust.elements.Locatable +private import codeql.Locations +import PathResolutionConsistency + +class SourceLocatable instanceof Locatable { + string toString() { result = super.toString() } + + Location getLocation() { + if super.getLocation().fromSource() + then result = super.getLocation() + else result instanceof EmptyLocation + } +} + +query predicate multipleMethodCallTargets(SourceLocatable a, SourceLocatable b) { + PathResolutionConsistency::multipleMethodCallTargets(a, b) +} + +query predicate multiplePathResolutions(SourceLocatable a, SourceLocatable b) { + PathResolutionConsistency::multiplePathResolutions(a, b) +} diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected index e69de29bb2d..cdd925c7ad1 100644 --- a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,3 @@ +multipleMethodCallTargets +| web_frameworks.rs:194:30:194:74 | ... .get(...) | file://:0:0:0:0 | fn get | +| web_frameworks.rs:194:30:194:74 | ... .get(...) | file://:0:0:0:0 | fn get | diff --git a/rust/ql/test/query-tests/security/CWE-696/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-696/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..5fb57b10c01 --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-696/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,27 @@ +multiplePathResolutions +| test.rs:50:3:50:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:50:3:50:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:55:3:55:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:55:3:55:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:60:3:60:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:60:3:60:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:65:3:65:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:65:3:65:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:73:3:73:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:73:3:73:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:78:3:78:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:78:3:78:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:87:3:87:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:87:3:87:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:94:3:94:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:94:3:94:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:128:3:128:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:128:3:128:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:139:3:139:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:139:3:139:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:144:3:144:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:144:3:144:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:150:3:150:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:150:3:150:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:168:3:168:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | +| test.rs:168:3:168:6 | ctor | file://:0:0:0:0 | fn ctor | From 9ee0d2e6cf13af6ac84b33b658561605c60239ea Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 21 May 2025 11:04:53 +0200 Subject: [PATCH 563/656] Rust: Exclude flow summary nodes from `DataFlowStep.ql` --- .../PathResolutionConsistency.ql | 4 +- .../rust/dataflow/internal/DataFlowImpl.qll | 178 +- .../dataflow/local/DataFlowStep.expected | 4256 +---------------- .../dataflow/local/DataFlowStep.ql | 26 +- 4 files changed, 318 insertions(+), 4146 deletions(-) diff --git a/rust/ql/consistency-queries/PathResolutionConsistency.ql b/rust/ql/consistency-queries/PathResolutionConsistency.ql index 88f5f4aa175..555b8239996 100644 --- a/rust/ql/consistency-queries/PathResolutionConsistency.ql +++ b/rust/ql/consistency-queries/PathResolutionConsistency.ql @@ -10,9 +10,7 @@ private import codeql.rust.elements.Locatable private import codeql.Locations import PathResolutionConsistency -class SourceLocatable instanceof Locatable { - string toString() { result = super.toString() } - +class SourceLocatable extends Locatable { Location getLocation() { if super.getLocation().fromSource() then result = super.getLocation() diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 8aa6c921eef..d0f7378bd3a 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -523,97 +523,103 @@ module RustDataFlow implements InputSig { exists(c) } + pragma[nomagic] + additional predicate readContentStep(Node node1, Content c, Node node2) { + exists(TupleStructPatCfgNode pat, int pos | + pat = node1.asPat() and + node2.asPat() = pat.getField(pos) and + c = TTupleFieldContent(pat.getTupleStructPat().getTupleField(pos)) + ) + or + exists(TuplePatCfgNode pat, int pos | + pos = c.(TuplePositionContent).getPosition() and + node1.asPat() = pat and + node2.asPat() = pat.getField(pos) + ) + or + exists(StructPatCfgNode pat, string field | + pat = node1.asPat() and + c = TStructFieldContent(pat.getStructPat().getStructField(field)) and + node2.asPat() = pat.getFieldPat(field) + ) + or + c instanceof ReferenceContent and + node1.asPat().(RefPatCfgNode).getPat() = node2.asPat() + or + exists(FieldExprCfgNode access | + node1.asExpr() = access.getContainer() and + node2.asExpr() = access and + access = c.(FieldContent).getAnAccess() + ) + or + exists(IndexExprCfgNode arr | + c instanceof ElementContent and + node1.asExpr() = arr.getBase() and + node2.asExpr() = arr + ) + or + exists(ForExprCfgNode for | + c instanceof ElementContent and + node1.asExpr() = for.getIterable() and + node2.asPat() = for.getPat() + ) + or + exists(SlicePatCfgNode pat | + c instanceof ElementContent and + node1.asPat() = pat and + node2.asPat() = pat.getAPat() + ) + or + exists(TryExprCfgNode try | + node1.asExpr() = try.getExpr() and + node2.asExpr() = try and + c.(TupleFieldContent) + .isVariantField([any(OptionEnum o).getSome(), any(ResultEnum r).getOk()], 0) + ) + or + exists(PrefixExprCfgNode deref | + c instanceof ReferenceContent and + deref.getOperatorName() = "*" and + node1.asExpr() = deref.getExpr() and + node2.asExpr() = deref + ) + or + // Read from function return + exists(DataFlowCall call | + lambdaCall(call, _, node1) and + call = node2.(OutNode).getCall(TNormalReturnKind()) and + c instanceof FunctionCallReturnContent + ) + or + exists(AwaitExprCfgNode await | + c instanceof FutureContent and + node1.asExpr() = await.getExpr() and + node2.asExpr() = await + ) + or + referenceExprToExpr(node2.(PostUpdateNode).getPreUpdateNode(), + node1.(PostUpdateNode).getPreUpdateNode(), c) + or + // Step from receiver expression to receiver node, in case of an implicit + // dereference. + implicitDerefToReceiver(node1, node2, c) + or + // A read step dual to the store step for implicit borrows. + implicitBorrowToReceiver(node2.(PostUpdateNode).getPreUpdateNode(), + node1.(PostUpdateNode).getPreUpdateNode(), c) + or + VariableCapture::readStep(node1, c, node2) + } + /** * Holds if data can flow from `node1` to `node2` via a read of `c`. Thus, * `node1` references an object with a content `c.getAReadContent()` whose * value ends up in `node2`. */ predicate readStep(Node node1, ContentSet cs, Node node2) { - exists(Content c | c = cs.(SingletonContentSet).getContent() | - exists(TupleStructPatCfgNode pat, int pos | - pat = node1.asPat() and - node2.asPat() = pat.getField(pos) and - c = TTupleFieldContent(pat.getTupleStructPat().getTupleField(pos)) - ) - or - exists(TuplePatCfgNode pat, int pos | - pos = c.(TuplePositionContent).getPosition() and - node1.asPat() = pat and - node2.asPat() = pat.getField(pos) - ) - or - exists(StructPatCfgNode pat, string field | - pat = node1.asPat() and - c = TStructFieldContent(pat.getStructPat().getStructField(field)) and - node2.asPat() = pat.getFieldPat(field) - ) - or - c instanceof ReferenceContent and - node1.asPat().(RefPatCfgNode).getPat() = node2.asPat() - or - exists(FieldExprCfgNode access | - node1.asExpr() = access.getContainer() and - node2.asExpr() = access and - access = c.(FieldContent).getAnAccess() - ) - or - exists(IndexExprCfgNode arr | - c instanceof ElementContent and - node1.asExpr() = arr.getBase() and - node2.asExpr() = arr - ) - or - exists(ForExprCfgNode for | - c instanceof ElementContent and - node1.asExpr() = for.getIterable() and - node2.asPat() = for.getPat() - ) - or - exists(SlicePatCfgNode pat | - c instanceof ElementContent and - node1.asPat() = pat and - node2.asPat() = pat.getAPat() - ) - or - exists(TryExprCfgNode try | - node1.asExpr() = try.getExpr() and - node2.asExpr() = try and - c.(TupleFieldContent) - .isVariantField([any(OptionEnum o).getSome(), any(ResultEnum r).getOk()], 0) - ) - or - exists(PrefixExprCfgNode deref | - c instanceof ReferenceContent and - deref.getOperatorName() = "*" and - node1.asExpr() = deref.getExpr() and - node2.asExpr() = deref - ) - or - // Read from function return - exists(DataFlowCall call | - lambdaCall(call, _, node1) and - call = node2.(OutNode).getCall(TNormalReturnKind()) and - c instanceof FunctionCallReturnContent - ) - or - exists(AwaitExprCfgNode await | - c instanceof FutureContent and - node1.asExpr() = await.getExpr() and - node2.asExpr() = await - ) - or - referenceExprToExpr(node2.(PostUpdateNode).getPreUpdateNode(), - node1.(PostUpdateNode).getPreUpdateNode(), c) - or - // Step from receiver expression to receiver node, in case of an implicit - // dereference. - implicitDerefToReceiver(node1, node2, c) - or - // A read step dual to the store step for implicit borrows. - implicitBorrowToReceiver(node2.(PostUpdateNode).getPreUpdateNode(), - node1.(PostUpdateNode).getPreUpdateNode(), c) - or - VariableCapture::readStep(node1, c, node2) + exists(Content c | + c = cs.(SingletonContentSet).getContent() and + readContentStep(node1, c, node2) ) or FlowSummaryImpl::Private::Steps::summaryReadStep(node1.(FlowSummaryNode).getSummaryNode(), cs, @@ -652,7 +658,7 @@ module RustDataFlow implements InputSig { } pragma[nomagic] - private predicate storeContentStep(Node node1, Content c, Node node2) { + additional predicate storeContentStep(Node node1, Content c, Node node2) { exists(CallExprCfgNode call, int pos | node1.asExpr() = call.getArgument(pragma[only_bind_into](pos)) and node2.asExpr() = call and diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 162efcfa2b7..b7300075dc3 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -867,4059 +867,205 @@ localStep | main.rs:577:36:577:41 | ...::new(...) | main.rs:577:36:577:41 | MacroExpr | | main.rs:577:36:577:41 | [post] MacroExpr | main.rs:577:36:577:41 | [post] ...::new(...) | storeStep -| file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::asserting::Capture::elem] in lang:core::_::::try_capture | Capture.elem | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::::try_capture | -| file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::asserting::Capture::elem].Field[crate::option::Option::Some(0)] in lang:core::_::::try_capture | Some | file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::asserting::Capture::elem] in lang:core::_::::try_capture | -| file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::collections::vec_deque::VecDeque::len] in lang:alloc::_::::new | VecDeque.len | file://:0:0:0:0 | [post] [summary param] 0 in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::::zip_with | -| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:alloc::_::::retain_mut | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:alloc::_::::retain_mut | -| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:core::_::::take_if | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:core::_::::take_if | -| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in lang:core::_::::map_unchecked | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in lang:core::_::::map_unchecked | -| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::default_tcp_http_server | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::default_tcp_http_server | -| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0].Reference in repo:https://github.com/servo/rust-smallvec:smallvec::_::::retain | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[0] in repo:https://github.com/servo/rust-smallvec:smallvec::_::::retain | -| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1].Reference in lang:core::_::crate::num::flt2dec::to_exact_exp_str | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1] in lang:core::_::crate::num::flt2dec::to_exact_exp_str | -| file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1].Reference in lang:core::_::crate::num::flt2dec::to_exact_fixed_str | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Parameter[1] in lang:core::_::crate::num::flt2dec::to_exact_fixed_str | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:alloc::_::<_ as crate::borrow::ToOwned>::clone_into | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:alloc::_::<_ as crate::borrow::ToOwned>::clone_into | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:alloc::_::crate::collections::btree::mem::replace | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:alloc::_::crate::collections::btree::mem::replace | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:alloc::_::crate::collections::btree::mem::take_mut | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:alloc::_::crate::collections::btree::mem::take_mut | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:core::_::crate::mem::replace | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::crate::mem::replace | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:core::_::crate::ptr::replace | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::crate::ptr::replace | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:core::_::crate::ptr::write | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::crate::ptr::write | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:core::_::crate::ptr::write_unaligned | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::crate::ptr::write_unaligned | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:core::_::crate::ptr::write_volatile | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:core::_::crate::ptr::write_volatile | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::::decode | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:proc_macro::_::::decode | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::::decode | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:proc_macro::_::::decode | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::::decode | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:proc_macro::_::::decode | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_:::::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_:::::read_to_end | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_:::::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_:::::read_to_end | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_exact | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_to_end | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_to_string | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::advance_slices | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::advance_slices | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::advance_slices | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::advance_slices | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_exact | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_to_string | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_exact | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_to_string | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_exact | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_to_end | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::::read_to_string | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::BufRead::read_line | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::BufRead::read_line | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read_exact | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read_to_end | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::crate::io::Read::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in lang:std::_::crate::io::Read::read_to_string | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::count_byte_by_byte | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::count_byte_by_byte | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::peek | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::peek | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_read | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_read_buf | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_read_buf | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_line | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_line | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_buf | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_buf | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_exact | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_to_end | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_to_string | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:proc_macro::_::::decode | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::::decode | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:proc_macro::_::::decode | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::::decode | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:proc_macro::_::::decode | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:proc_macro::_::::decode | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:std::_::::advance_slices | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::advance_slices | -| file://:0:0:0:0 | [summary] to write: Argument[0].Reference.Reference in lang:std::_::::advance_slices | &ref | file://:0:0:0:0 | [summary] to write: Argument[0].Reference in lang:std::_::::advance_slices | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:proc_macro::_::crate::bridge::client::state::set | function argument at 0 | file://:0:0:0:0 | [post] [summary param] 1 in lang:proc_macro::_::crate::bridge::client::state::set | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in lang:std::_::::wait_while | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in lang:std::_::::wait_while | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::crate::derive::form_field::first_duplicate | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::crate::derive::form_field::first_duplicate | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in lang:core::_::::spec_try_fold | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in lang:core::_::::spec_try_fold | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in lang:core::_::crate::slice::sort::stable::sort | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in lang:core::_::crate::slice::sort::stable::sort | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::prefix_is_substring | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::prefix_is_substring | -| file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::suffix_is_substring | &ref | file://:0:0:0:0 | [summary] to write: Argument[1].Parameter[1] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::suffix_is_substring | -| file://:0:0:0:0 | [summary] to write: Argument[1].Reference in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | &ref | file://:0:0:0:0 | [post] [summary param] 1 in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | -| file://:0:0:0:0 | [summary] to write: Argument[1].Reference in lang:std::_::crate::io::BufRead::read_until | &ref | file://:0:0:0:0 | [post] [summary param] 1 in lang:std::_::crate::io::BufRead::read_until | -| file://:0:0:0:0 | [summary] to write: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | &ref | file://:0:0:0:0 | [post] [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | -| file://:0:0:0:0 | [summary] to write: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_until | &ref | file://:0:0:0:0 | [post] [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::read_until | -| file://:0:0:0:0 | [summary] to write: Argument[1].Reference.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | Err | file://:0:0:0:0 | [summary] to write: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | -| file://:0:0:0:0 | [summary] to write: Argument[2].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::div_rem | Big32x40.size | file://:0:0:0:0 | [post] [summary param] 2 in lang:core::_::::div_rem | -| file://:0:0:0:0 | [summary] to write: Argument[2].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::div_rem | Big8x3.size | file://:0:0:0:0 | [post] [summary param] 2 in lang:core::_::::div_rem | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::max_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::max_by | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::max_by_key | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::max_by_key | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::min_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::min_by | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::min_by_key | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::min_by_key | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::minmax_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::minmax_by | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:core::_::crate::cmp::minmax_by_key | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:core::_::crate::cmp::minmax_by_key | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0].Reference in lang:std::_::::wait_timeout_while | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[0] in lang:std::_::::wait_timeout_while | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1].Reference in lang:core::_::crate::cmp::max_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1] in lang:core::_::crate::cmp::max_by | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1].Reference in lang:core::_::crate::cmp::min_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1] in lang:core::_::crate::cmp::min_by | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1].Reference in lang:core::_::crate::cmp::minmax_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1] in lang:core::_::crate::cmp::minmax_by | -| file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1].Reference in lang:core::_::crate::slice::sort::shared::smallsort::sort4_stable | &ref | file://:0:0:0:0 | [summary] to write: Argument[2].Parameter[1] in lang:core::_::crate::slice::sort::shared::smallsort::sort4_stable | -| file://:0:0:0:0 | [summary] to write: Argument[3].Parameter[1].Reference in lang:core::_::crate::slice::sort::stable::drift::sort | &ref | file://:0:0:0:0 | [summary] to write: Argument[3].Parameter[1] in lang:core::_::crate::slice::sort::stable::drift::sort | -| file://:0:0:0:0 | [summary] to write: Argument[3].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | &ref | file://:0:0:0:0 | [post] [summary param] 3 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | -| file://:0:0:0:0 | [summary] to write: Argument[4].Parameter[1].Reference in lang:core::_::crate::slice::sort::stable::quicksort::quicksort | &ref | file://:0:0:0:0 | [summary] to write: Argument[4].Parameter[1] in lang:core::_::crate::slice::sort::stable::quicksort::quicksort | -| file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::::for_each | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::for_each | -| file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::::map | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::for_each | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::for_each | -| file://:0:0:0:0 | [summary] to write: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::map | element | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::map | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-http::_::::write_u64 | tuple.0 | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/actix/actix-web:actix-http::_::::write_u64 | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[0] in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | tuple.0 | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[0].Reference in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[0] in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::block::BlockRng64::index] in repo:https://github.com/rust-random/rand:rand_core::_::::generate_and_set | BlockRng64.index | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/rust-random/rand:rand_core::_::::generate_and_set | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::block::BlockRng::index] in repo:https://github.com/rust-random/rand:rand_core::_::::generate_and_set | BlockRng.index | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/rust-random/rand:rand_core::_::::generate_and_set | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::char::decode::DecodeUtf16::buf] in lang:core::_::::next | DecodeUtf16.buf | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::char::decode::DecodeUtf16::buf].Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::char::decode::DecodeUtf16::buf] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone_from | BTreeSet | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::clone_from | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::btree::set::BTreeSet::map].Reference in lang:alloc::_::::clone_from | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone_from | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::move_next | Cursor.current | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::move_next | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::move_prev | Cursor.current | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::move_prev | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::move_next | CursorMut.current | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::move_next | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::move_prev | CursorMut.current | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::move_prev | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::CursorMut::index] in lang:alloc::_::::insert_after | CursorMut.index | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::insert_after | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::CursorMut::index] in lang:alloc::_::::splice_after | CursorMut.index | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::splice_after | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::append | LinkedList.tail | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::append | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::vec_deque::VecDeque::len] in lang:alloc::_::::split_off | VecDeque.len | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::split_off | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::collections::vec_deque::VecDeque::len] in lang:alloc::_::::truncate | VecDeque.len | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::truncate | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::diagnostic::Diagnostic::level] in lang:proc_macro::_::::set_level | Diagnostic.level | file://:0:0:0:0 | [post] [summary param] self in lang:proc_macro::_::::set_level | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::error::Report::pretty] in lang:std::_::::pretty | Report.pretty | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::pretty | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::error::Report::show_backtrace] in lang:std::_::::show_backtrace | Report.show_backtrace | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::show_backtrace | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fmt::FormattingOptions::align] in lang:core::_::::align | FormattingOptions.align | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::align | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fmt::FormattingOptions::fill] in lang:core::_::::fill | FormattingOptions.fill | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::fill | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fmt::FormattingOptions::flags] in lang:core::_::::flags | FormattingOptions.flags | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::flags | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fmt::FormattingOptions::precision] in lang:core::_::::precision | FormattingOptions.precision | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::precision | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fmt::FormattingOptions::width] in lang:core::_::::width | FormattingOptions.width | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::width | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::fs::DirBuilder::recursive] in lang:std::_::::recursive | DirBuilder.recursive | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::recursive | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::Take::limit] in lang:std::_::::set_limit | Take.limit | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::set_limit | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::set_init | BorrowedBuf.init | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_init | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::pos] in lang:std::_::::consume | Buffer.pos | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::consume | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::clone_from | Cursor.inner | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::clone_from | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::inner].Reference in lang:std::_::::clone_from | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::clone_from | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::clone_from | Cursor.pos | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::clone_from | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::seek | Cursor.pos | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::seek | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::set_position | Cursor.pos | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::set_position | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter] in lang:core::_::::advance_by | Cycle.iter | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::advance_by | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter] in lang:core::_::::try_fold | Cycle.iter | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter].Reference in lang:core::_::::advance_by | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter] in lang:core::_::::advance_by | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter].Reference in lang:core::_::::try_fold | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::cycle::Cycle::iter] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | StepBy.iter | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_try_fold | StepBy.iter | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_try_fold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_fold | element | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_try_fold | element | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_try_fold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Field[crate::ops::range::Range::start] in lang:core::_::::spec_fold | Range.start | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV4::ip] in lang:core::_::::set_ip | SocketAddrV4.ip | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_ip | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV4::port] in lang:core::_::::set_port | SocketAddrV4.port | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_port | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::flowinfo] in lang:core::_::::set_flowinfo | SocketAddrV6.flowinfo | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_flowinfo | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::ip] in lang:core::_::::set_ip | SocketAddrV6.ip | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_ip | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::port] in lang:core::_::::set_port | SocketAddrV6.port | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_port | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::scope_id] in lang:core::_::::set_scope_id | SocketAddrV6.scope_id | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set_scope_id | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::add | Big32x40.size | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::add | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::sub | Big32x40.size | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::sub | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::add | Big8x3.size | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::add | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::sub | Big8x3.size | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::sub | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::dec2flt::decimal::Decimal::digits] in lang:core::_::::try_add_digit | Decimal.digits | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::try_add_digit | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::dec2flt::decimal::Decimal::digits].Element in lang:core::_::::try_add_digit | element | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::num::dec2flt::decimal::Decimal::digits] in lang:core::_::::try_add_digit | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::map_break | Break | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_break | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::map_continue | Continue | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_continue | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::take_suffix | IndexRange.end | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::take_suffix | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::take_prefix | IndexRange.start | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::take_prefix | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::map | Excluded | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::map | Included | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_nth_back | Range.end | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::spec_nth | Range.start | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_nth | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Range::start].Reference in lang:core::_::::spec_nth | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::spec_nth | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::spec_try_rfold | RangeInclusive.end | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_try_rfold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::nth_back | RangeInclusive.end | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::end].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_fold | RangeInclusive.start | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_try_fold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_rfold | RangeInclusive.start | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::spec_try_rfold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::nth | RangeInclusive.start | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference in lang:core::_::::spec_try_fold | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_fold | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::and_then | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_none_or | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_none_or | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_some_and | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_some_and | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map_or | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map_or_else | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or_else | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::zip_with | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next_back | Components.path | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::next_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next | Components.path | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::next | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path].Reference in lang:std::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path].Reference in lang:std::_::::next | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked_mut | Pin | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_unchecked_mut | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::set | Pin | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::set | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::set | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::set | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::is_err_and | Err | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_err_and | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | Err | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::map_or_else | Err | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or_else | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::or_else | Err | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::or_else | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::unwrap_or_else | Err | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::unwrap_or_else | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::and_then | Ok | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::and_then | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::is_ok_and | Ok | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::is_ok_and | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_or | Ok | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_or_else | Ok | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_or_else | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth_back | Chunks.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth | Chunks.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::nth_back | ChunksExact.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::ChunksExact::v].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth_back | RChunks.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth | RChunks.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::nth_back | RChunksExact.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunksExact::v].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next_back | SplitInclusive.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next | SplitInclusive.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v].Reference in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v].Reference in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next_back | Windows.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth_back | Windows.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next | Windows.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth | Windows.v | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v].Reference in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v].Reference in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::str::pattern::CharSearcher::finger] in lang:core::_::::next_match | CharSearcher.finger | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next_match | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::str::pattern::CharSearcher::finger_back] in lang:core::_::::next_match_back | CharSearcher.finger_back | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::next_match_back | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::accessed] in lang:std::_::::set_accessed | FileTimes.accessed | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::set_accessed | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::accessed].Field[crate::option::Option::Some(0)] in lang:std::_::::set_accessed | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::accessed] in lang:std::_::::set_accessed | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::created] in lang:std::_::::set_created | FileTimes.created | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::set_created | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::created].Field[crate::option::Option::Some(0)] in lang:std::_::::set_created | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::created] in lang:std::_::::set_created | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::modified] in lang:std::_::::set_modified | FileTimes.modified | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::set_modified | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::modified].Field[crate::option::Option::Some(0)] in lang:std::_::::set_modified | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::FileTimes::modified] in lang:std::_::::set_modified | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::append] in lang:std::_::::append | OpenOptions.append | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::append | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::create] in lang:std::_::::create | OpenOptions.create | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::create | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::create_new] in lang:std::_::::create_new | OpenOptions.create_new | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::create_new | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::custom_flags] in lang:std::_::::custom_flags | OpenOptions.custom_flags | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::custom_flags | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::read] in lang:std::_::::read | OpenOptions.read | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::read | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::truncate] in lang:std::_::::truncate | OpenOptions.truncate | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::truncate | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::fs::OpenOptions::write] in lang:std::_::::write | OpenOptions.write | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::write | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::gid] in lang:std::_::::gid | Command.gid | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::gid | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::gid].Field[crate::option::Option::Some(0)] in lang:std::_::::gid | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::gid] in lang:std::_::::gid | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::pgroup] in lang:std::_::::pgroup | Command.pgroup | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::pgroup | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::pgroup].Field[crate::option::Option::Some(0)] in lang:std::_::::pgroup | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::pgroup] in lang:std::_::::pgroup | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stderr] in lang:std::_::::stderr | Command.stderr | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::stderr | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stderr].Field[crate::option::Option::Some(0)] in lang:std::_::::stderr | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stderr] in lang:std::_::::stderr | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdin] in lang:std::_::::stdin | Command.stdin | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::stdin | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdin].Field[crate::option::Option::Some(0)] in lang:std::_::::stdin | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdin] in lang:std::_::::stdin | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdout] in lang:std::_::::stdout | Command.stdout | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::stdout | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdout].Field[crate::option::Option::Some(0)] in lang:std::_::::stdout | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::stdout] in lang:std::_::::stdout | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::uid] in lang:std::_::::uid | Command.uid | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::uid | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::uid].Field[crate::option::Option::Some(0)] in lang:std::_::::uid | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::uid] in lang:std::_::::uid | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map | Ready | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | Ready | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | Ready | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::map_ok | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | Err | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_ok | Ok | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::name] in lang:std::_::::name | Builder.name | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::name | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::name].Field[crate::option::Option::Some(0)] in lang:std::_::::name | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::name] in lang:std::_::::name | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::stack_size] in lang:std::_::::stack_size | Builder.stack_size | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::::stack_size | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::stack_size].Field[crate::option::Option::Some(0)] in lang:std::_::::stack_size | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::thread::Builder::stack_size] in lang:std::_::::stack_size | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::Vec::len] in lang:alloc::_::::set_len | Vec.len | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::set_len | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::Vec::len] in lang:alloc::_::::truncate | Vec.len | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::truncate | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::into_iter::IntoIter::ptr] in lang:alloc::_::::forget_allocation_drop_remaining | IntoIter.ptr | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::forget_allocation_drop_remaining | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::len] in lang:alloc::_::::drop | SetLenOnDrop.len | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::drop | -| file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::len].Reference in lang:alloc::_::::drop | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::len] in lang:alloc::_::::drop | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:alloc::_::::add_assign | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::add_assign | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:alloc::_::::clone_from | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:alloc::_::::clone_from | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::get_or_insert | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::get_or_insert | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::insert | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::insert | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::replace | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::replace | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::clone_from | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::clone_from | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::clone_from | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:core::_::::clone_from | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::BufRead>::consume | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::<&[u8] as crate::io::BufRead>::consume | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_buf_exact | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_buf_exact | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_exact | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_exact | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | &ref | file://:0:0:0:0 | [post] [summary param] self in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | &ref | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | &ref | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | &ref | file://:0:0:0:0 | [post] [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::add_assign | Borrowed | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:alloc::_::::add_assign | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::get_or_insert | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::get_or_insert | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::insert | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::insert | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::replace | Some | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:core::_::::replace | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in lang:std::_::<&[u8] as crate::io::BufRead>::consume | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::BufRead>::consume | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in lang:std::_::<&[u8] as crate::io::Read>::read_buf_exact | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_buf_exact | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in lang:std::_::<&[u8] as crate::io::Read>::read_exact | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_exact | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | -| file://:0:0:0:0 | [summary] to write: Argument[self].Reference.Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | &ref | file://:0:0:0:0 | [summary] to write: Argument[self].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::::collect | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::collect | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::cmp::minmax | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::cmp::minmax | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::cmp::minmax_by | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::cmp::minmax_by | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::cmp::minmax_by_key | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::cmp::minmax_by_key | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Element in lang:core::_::crate::iter::traits::iterator::Iterator::collect | element | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::collect | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::nexts | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::nexts | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::find_lower_bound_edge | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_lower_bound_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::find_upper_bound_edge | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_upper_bound_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::align_to | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::align_to | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::align_to_mut | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::align_to_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::<[_]>::partition_dedup_by | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::partition_dedup_by | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_parts | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_parts | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::div_rem_small | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::div_rem_small | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::div_rem_small | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::div_rem_small | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::unzip | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::unzip | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::size_hint | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::overflowing_div_euclid | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::overflowing_div_euclid | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::get_mut | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::get_ref | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in repo:https://github.com/serde-rs/serde:serde::_::crate::de::value::private::unit_only | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::crate::de::value::private::unit_only | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::find_lower_bound_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::find_lower_bound_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::find_upper_bound_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::find_upper_bound_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::option::Option::Some(0)] in lang:alloc::_::::nexts | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:alloc::_::::nexts | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:core::_::::unzip | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0].Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[0] in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::extract_if_inner | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::nexts | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::nexts | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::find_lower_bound_edge | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_lower_bound_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::find_upper_bound_edge | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::find_upper_bound_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::bound | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_inner | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::bound | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::bound | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::unzip | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::unzip | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::size_hint | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::crate::slice::sort::shared::find_existing_run | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::slice::sort::shared::find_existing_run | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::get_mut | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::get_ref | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::into_inner | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::try_reuse | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::try_reuse | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::into_bounds | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::into_bounds | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::into_bounds | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::into_bounds | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::into_bounds | Included | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::nexts | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::nexts | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:alloc::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:core::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::unzip | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Field[crate::option::Option::Some(0)] in lang:core::_::::size_hint | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:core::_::::size_hint | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1].Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[2] in lang:core::_::::into_parts | tuple.2 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_parts | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Group(0)] in lang:proc_macro::_::::new | Group | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Group(0)].Field[crate::bridge::Group::delimiter] in lang:proc_macro::_::::new | Group.delimiter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Group(0)] in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Group(0)].Field[crate::bridge::Group::stream] in lang:proc_macro::_::::new | Group.stream | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Group(0)] in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)] in lang:proc_macro::_::::new | Ident | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)] in lang:proc_macro::_::::new_raw | Ident | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)].Field[crate::bridge::Ident::span] in lang:proc_macro::_::::new | Ident.span | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)] in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)].Field[crate::bridge::Ident::span] in lang:proc_macro::_::::new_raw | Ident.span | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Ident(0)] in lang:proc_macro::_::::new_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Span(0)] in lang:proc_macro::_::::span | Span | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Span(0)] in lang:proc_macro::_::::span | Span | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::Span(0)] in lang:proc_macro::_::::span | Span | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::TokenStream(0)] in lang:proc_macro::_::::stream | TokenStream | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::stream | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::TokenTree::Group(0)] in lang:proc_macro::_::::from | Group | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::TokenTree::Ident(0)] in lang:proc_macro::_::::from | Ident | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::TokenTree::Literal(0)] in lang:proc_macro::_::::from | Literal | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::TokenTree::Punct(0)] in lang:proc_macro::_::::from | Punct | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::alloc::layout::Layout::size] in lang:core::_::::from_size_align_unchecked | Layout.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_size_align_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::alive] in lang:core::_::::new_unchecked | IntoIter.alive | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::alive].Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::new_unchecked | IndexRange.end | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::alive] in lang:core::_::::new_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::alive].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::new_unchecked | IndexRange.start | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::alive] in lang:core::_::::new_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::array::iter::IntoIter::data] in lang:core::_::::new_unchecked | IntoIter.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::block::BlockRng64::core] in repo:https://github.com/rust-random/rand:rand_core::_::::new | BlockRng64.core | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand_core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::block::BlockRng::core] in repo:https://github.com/rust-random/rand:rand_core::_::::new | BlockRng.core | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand_core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::clone | Borrowed | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::from | Borrowed | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::borrow::Cow::Borrowed(0)].Reference in lang:alloc::_::::from | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::borrow::Cow::Owned(0)] in lang:alloc::_::::from | Owned | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::boxed::Box(1)] in lang:alloc::_::::from_non_null_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_non_null_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::boxed::Box(1)] in lang:alloc::_::::from_raw_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_raw_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::boxed::Box(1)] in lang:alloc::_::::new_uninit_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_uninit_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::boxed::Box(1)] in lang:alloc::_::::new_zeroed_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::DelimSpan::close] in lang:proc_macro::_::::from_single | DelimSpan.close | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from_single | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::DelimSpan::entire] in lang:proc_macro::_::::from_single | DelimSpan.entire | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from_single | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::DelimSpan::open] in lang:proc_macro::_::::from_single | DelimSpan.open | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::from_single | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::Marked::value] in lang:proc_macro::_::::mark | Marked.value | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::mark | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::client::ProcMacro::Attr::name] in lang:proc_macro::_::::attr | Attr.name | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::attr | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::client::ProcMacro::Bang::name] in lang:proc_macro::_::::bang | Bang.name | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::bang | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::client::ProcMacro::CustomDerive::attributes] in lang:proc_macro::_::::custom_derive | CustomDerive.attributes | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::custom_derive | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::client::ProcMacro::CustomDerive::trait_name] in lang:proc_macro::_::::custom_derive | CustomDerive.trait_name | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::custom_derive | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::handle::InternedStore::owned] in lang:proc_macro::_::::new | InternedStore.owned | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::handle::InternedStore::owned].Field[crate::bridge::handle::OwnedStore::counter] in lang:proc_macro::_::::new | OwnedStore.counter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::handle::InternedStore::owned] in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::handle::OwnedStore::counter] in lang:proc_macro::_::::new | OwnedStore.counter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::bridge::server::MaybeCrossThread::cross_thread] in lang:proc_macro::_::::new | MaybeCrossThread.cross_thread | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::BorrowRef::borrow] in lang:core::_::::clone | BorrowRef | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value] in lang:core::_::::from | Cell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value] in lang:core::_::::new | Cell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value] in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Cell::value] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::Ref::borrow] in lang:core::_::::map | Ref.borrow | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value] in lang:core::_::::from | RefCell.value | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value] in lang:core::_::::new | RefCell.value | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value] in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefCell::value] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::RefMut::borrow] in lang:core::_::::map | RefMut.borrow | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::from | SyncUnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::new | SyncUnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::UnsafeCell::value] in lang:core::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::TryReserveError::kind] in lang:alloc::_::::from | TryReserveError | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::binary_heap::BinaryHeap::data] in lang:alloc::_::::clone | BinaryHeap | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::binary_heap::BinaryHeap::data] in lang:alloc::_::::from | BinaryHeap | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::binary_heap::DrainSorted::inner] in lang:alloc::_::::drain_sorted | DrainSorted | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::drain_sorted | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::binary_heap::IntoIterSorted::inner] in lang:alloc::_::::into_iter_sorted | IntoIterSorted | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::into_iter_sorted | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::dedup_sorted_iter::DedupSortedIter::iter] in lang:alloc::_::::new | DedupSortedIter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::dedup_sorted_iter::DedupSortedIter::iter].Field[crate::iter::adapters::peekable::Peekable::iter] in lang:alloc::_::::new | Peekable.iter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::dedup_sorted_iter::DedupSortedIter::iter] in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::clone | BTreeMap.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::bulk_build_from_sorted_iter | BTreeMap.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::bulk_build_from_sorted_iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::new_in | BTreeMap.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::split_off | BTreeMap.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::split_off | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:alloc::_::::clone | ManuallyDrop | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:alloc::_::::bulk_build_from_sorted_iter | ManuallyDrop | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::bulk_build_from_sorted_iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:alloc::_::::new_in | ManuallyDrop | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::new_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc].Reference in lang:alloc::_::::split_off | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::split_off | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::clone | Cursor.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Cursor::root] in lang:alloc::_::::clone | Cursor.root | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::ExtractIf::pred] in lang:alloc::_::::extract_if | ExtractIf.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::iter | Iter.length | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::iter | Iter.length | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::clone | Iter.length | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::iter | Iter.length | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Iter::range] in lang:alloc::_::::clone | Iter.range | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::iter_mut | IterMut.length | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::Range::inner] in lang:alloc::_::::clone | Range | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::Entry::Occupied(0)] in lang:alloc::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::and_modify | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::Entry::Vacant(0)] in lang:alloc::_::::entry | Vacant | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::entry | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::Entry::Vacant(0)] in lang:alloc::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::and_modify | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::Entry::Vacant(0)].Field[crate::collections::btree::map::entry::VacantEntry::key] in lang:alloc::_::::entry | VacantEntry.key | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::Entry::Vacant(0)] in lang:alloc::_::::entry | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::OccupiedEntry::alloc] in lang:alloc::_::::insert_entry | OccupiedEntry.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::insert_entry | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::map::entry::OccupiedEntry::dormant_map] in lang:alloc::_::::insert_entry | OccupiedEntry.dormant_map | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::insert_entry | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::merge_iter::MergeIterInner::a] in lang:alloc::_::::new | MergeIterInner.a | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::merge_iter::MergeIterInner::b] in lang:alloc::_::::new | MergeIterInner.b | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::navigate::LazyLeafHandle::Edge(0)] in lang:alloc::_::::clone | Edge | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::navigate::LazyLeafHandle::Root(0)] in lang:alloc::_::::clone | Root | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::BalancingContext::parent] in lang:alloc::_::::consider_for_balancing | BalancingContext.parent | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::consider_for_balancing | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Internal(0)] in lang:alloc::_::::force | Internal | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::force | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Internal(0)].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::force | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Internal(0)] in lang:alloc::_::::force | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Leaf(0)] in lang:alloc::_::::force | Leaf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::force | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Leaf(0)].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::force | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::ForceResult::Leaf(0)] in lang:alloc::_::::force | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::merge_tracking_child_edge | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::merge_tracking_child_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::steal_right | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::steal_right | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::awaken | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::awaken | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::cast_to_leaf_unchecked | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cast_to_leaf_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::dormant | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::dormant | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::forget_node_type | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::forget_node_type | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::left_edge | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::left_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::new_edge | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::new_kv | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::reborrow | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::reborrow_mut | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::reborrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::merge_tracking_child_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::merge_tracking_child_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::steal_left | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::steal_left | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::steal_right | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::steal_right | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::left_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::left_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::new_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::new_kv | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::right_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::right_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::first_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::first_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::first_kv | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::first_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::last_edge | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::last_edge | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::last_kv | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::last_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::push_with_handle | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::push_with_handle | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::reborrow | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::push_with_handle | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::push_with_handle | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::reborrow | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::push_with_handle | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::push_with_handle | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::awaken | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::awaken | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::borrow_mut | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::borrow_valmut | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_valmut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::cast_to_leaf_unchecked | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cast_to_leaf_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::dormant | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::dormant | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::forget_type | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::forget_type | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::into_dying | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::into_dying | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::push_internal_level | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::push_internal_level | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::reborrow | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::awaken | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::awaken | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::borrow_mut | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::borrow_valmut | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_valmut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::cast_to_leaf_unchecked | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cast_to_leaf_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::dormant | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::dormant | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::forget_type | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::forget_type | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::into_dying | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::into_dying | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::push_internal_level | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::push_internal_level | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::reborrow | NodeRef.node | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::SplitResult::kv] in lang:alloc::_::::forget_node_type | SplitResult.kv | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::forget_node_type | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::SplitResult::left] in lang:alloc::_::::split | SplitResult.left | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::split | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::SplitResult::right] in lang:alloc::_::::split | SplitResult.right | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::split | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::SplitResult::right].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::split | NodeRef.height | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::node::SplitResult::right] in lang:alloc::_::::split | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchBound::Excluded(0)] in lang:alloc::_::::from_range | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_range | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchBound::Included(0)] in lang:alloc::_::::from_range | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_range | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::Found(0)] in lang:alloc::_::::search_node | Found | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::search_node | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::Found(0)].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::search_node | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::Found(0)] in lang:alloc::_::::search_node | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::GoDown(0)] in lang:alloc::_::::search_node | GoDown | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::search_node | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::GoDown(0)].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::search_node | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::search::SearchResult::GoDown(0)] in lang:alloc::_::::search_node | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone | BTreeSet | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::CursorMutKey::inner] in lang:alloc::_::::with_mutable_key | CursorMutKey | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::with_mutable_key | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Difference::inner] in lang:alloc::_::::difference | Difference | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::difference | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Difference::inner].Field[crate::collections::btree::set::DifferenceInner::Search::other_set] in lang:alloc::_::::difference | Search.other_set | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Difference::inner] in lang:alloc::_::::difference | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::ExtractIf::pred] in lang:alloc::_::::extract_if | ExtractIf.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Intersection::inner] in lang:alloc::_::::intersection | Intersection | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::intersection | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Intersection::inner].Field[crate::collections::btree::set::IntersectionInner::Search::large_set] in lang:alloc::_::::intersection | Search.large_set | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::btree::set::Intersection::inner] in lang:alloc::_::::intersection | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::Entry::Occupied(0)] in lang:std::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::and_modify | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::Entry::Vacant(0)] in lang:std::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::and_modify | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::HashMap::base] in lang:std::_::::clone | HashMap | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::HashMap::base].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::HashMap::base] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::Iter::base] in lang:std::_::::clone | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::Iter::base].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::Iter::base] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::RawEntryBuilder::map] in lang:std::_::::raw_entry | RawEntryBuilder | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::raw_entry | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::RawEntryBuilderMut::map] in lang:std::_::::raw_entry_mut | RawEntryBuilderMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::raw_entry_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::RawEntryMut::Occupied(0)] in lang:std::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::and_modify | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::map::RawEntryMut::Vacant(0)] in lang:std::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::and_modify | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Difference::other] in lang:std::_::::difference | Difference.other | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::difference | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::HashSet::base] in lang:std::_::::clone | HashSet | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::HashSet::base].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::HashSet::base] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Intersection::other] in lang:std::_::::intersection | Intersection.other | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::intersection | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Iter::base] in lang:std::_::::clone | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Iter::base].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Iter::base] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::SymmetricDifference::iter] in lang:std::_::::clone | SymmetricDifference | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::SymmetricDifference::iter].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::SymmetricDifference::iter] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Union::iter] in lang:std::_::::clone | Union | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Union::iter].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::hash::set::Union::iter] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::clone | Cursor.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::as_cursor | Cursor.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_cursor | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::cursor_back | Cursor.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::cursor_front | Cursor.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_front | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::index] in lang:alloc::_::::clone | Cursor.index | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::index] in lang:alloc::_::::as_cursor | Cursor.index | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_cursor | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::clone | Cursor.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::as_cursor | Cursor.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_cursor | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::cursor_back | Cursor.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::cursor_front | Cursor.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_front | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::cursor_back_mut | CursorMut.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_back_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::cursor_front_mut | CursorMut.current | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_front_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::cursor_back_mut | CursorMut.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_back_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::cursor_front_mut | CursorMut.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::cursor_front_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::ExtractIf::it] in lang:alloc::_::::extract_if | ExtractIf.it | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::ExtractIf::list] in lang:alloc::_::::extract_if | ExtractIf.list | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::ExtractIf::old_len] in lang:alloc::_::::extract_if | ExtractIf.old_len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::ExtractIf::pred] in lang:alloc::_::::extract_if | ExtractIf.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Iter::head] in lang:alloc::_::::iter | Iter.head | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Iter::len] in lang:alloc::_::::iter | Iter.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::Iter::tail] in lang:alloc::_::::iter | Iter.tail | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::IterMut::head] in lang:alloc::_::::iter_mut | IterMut.head | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::IterMut::len] in lang:alloc::_::::iter_mut | IterMut.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::IterMut::tail] in lang:alloc::_::::iter_mut | IterMut.tail | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::iter_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::linked_list::LinkedList::alloc] in lang:alloc::_::::new_in | LinkedList.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::VecDeque::head] in lang:alloc::_::::from_contiguous_raw_parts_in | VecDeque.head | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_contiguous_raw_parts_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::drain::Drain::drain_len] in lang:alloc::_::::new | Drain.drain_len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::drain::Drain::idx] in lang:alloc::_::::new | Drain.idx | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::drain::Drain::remaining] in lang:alloc::_::::new | Drain.remaining | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::into_iter::IntoIter::inner] in lang:alloc::_::::new | IntoIter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::iter::Iter::i1] in lang:alloc::_::::new | Iter.i1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::iter::Iter::i2] in lang:alloc::_::::new | Iter.i2 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::iter_mut::IterMut::i1] in lang:alloc::_::::new | IterMut.i1 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::collections::vec_deque::iter_mut::IterMut::i2] in lang:alloc::_::::new | IterMut.i2 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::diagnostic::Diagnostic::level] in lang:proc_macro::_::::new | Diagnostic.level | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::diagnostic::Diagnostic::level] in lang:proc_macro::_::::spanned | Diagnostic.level | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::spanned | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Report::error] in lang:std::_::::from | Report.error | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Report::pretty] in lang:std::_::::pretty | Report.pretty | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::pretty | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Report::show_backtrace] in lang:std::_::::show_backtrace | Report.show_backtrace | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::show_backtrace | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Source::current] in lang:core::_::::sources | Source | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::sources | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Source::current].Field[crate::option::Option::Some(0)] in lang:core::_::::sources | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::error::Source::current] in lang:core::_::::sources | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::escape::EscapeIterInner::data] in lang:core::_::::backslash | EscapeIterInner.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::backslash | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::escape::EscapeIterInner::data].Element in lang:core::_::::backslash | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::escape::EscapeIterInner::data] in lang:core::_::::backslash | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ffi::os_str::Display::os_str] in lang:std::_::::display | Display | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::display | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::from_inner | OsString | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::from_encoded_bytes_unchecked | OsString | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_encoded_bytes_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ffi::os_str::OsString::inner].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::from_encoded_bytes_unchecked | Buf | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::from_encoded_bytes_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::args] in lang:core::_::::new_v1 | Arguments.args | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_v1 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::args] in lang:core::_::::new_v1_formatted | Arguments.args | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_v1_formatted | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::fmt] in lang:core::_::::new_v1_formatted | Arguments.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_v1_formatted | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::fmt].Field[crate::option::Option::Some(0)] in lang:core::_::::new_v1_formatted | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::fmt] in lang:core::_::::new_v1_formatted | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::pieces] in lang:core::_::::new_const | Arguments.pieces | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_const | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::pieces] in lang:core::_::::new_v1 | Arguments.pieces | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_v1 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Arguments::pieces] in lang:core::_::::new_v1_formatted | Arguments.pieces | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_v1_formatted | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::buf] in lang:core::_::::new | Formatter.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::buf] in lang:core::_::::with_options | Formatter.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::with_options | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::buf] in lang:core::_::::create_formatter | Formatter.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::create_formatter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::options] in lang:core::_::::new | Formatter.options | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::options] in lang:core::_::::with_options | Formatter.options | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::with_options | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::Formatter::options] in lang:core::_::::create_formatter | Formatter.options | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::create_formatter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::FormattingOptions::align] in lang:core::_::::align | FormattingOptions.align | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::align | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::FormattingOptions::fill] in lang:core::_::::fill | FormattingOptions.fill | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::fill | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::FormattingOptions::precision] in lang:core::_::::precision | FormattingOptions.precision | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::precision | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::FormattingOptions::width] in lang:core::_::::width | FormattingOptions.width | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::width | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner] in lang:core::_::::debug_list | DebugList | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug_list | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner] in lang:core::_::crate::fmt::builders::debug_list_new | DebugList | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::debug_list_new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner].Field[crate::fmt::builders::DebugInner::fmt] in lang:core::_::::debug_list | DebugInner.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner] in lang:core::_::::debug_list | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner].Field[crate::fmt::builders::DebugInner::fmt] in lang:core::_::crate::fmt::builders::debug_list_new | DebugInner.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugList::inner] in lang:core::_::crate::fmt::builders::debug_list_new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::fmt] in lang:core::_::::debug_map | DebugMap.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::fmt] in lang:core::_::crate::fmt::builders::debug_map_new | DebugMap.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::debug_map_new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::entry | DebugMap.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::entry | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key | DebugMap.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::key | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key_with | DebugMap.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::key_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value | DebugMap.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::value | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value_with | DebugMap.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::value_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::entry | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::entry | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::key | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::key_with | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::value | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::value_with | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::debug_set | DebugSet | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug_set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::crate::fmt::builders::debug_set_new | DebugSet | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::debug_set_new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::fmt] in lang:core::_::::debug_set | DebugInner.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::debug_set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::fmt] in lang:core::_::crate::fmt::builders::debug_set_new | DebugInner.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::crate::fmt::builders::debug_set_new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::fmt] in lang:core::_::::debug_struct | DebugStruct.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug_struct | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::fmt] in lang:core::_::crate::fmt::builders::debug_struct_new | DebugStruct.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::debug_struct_new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field | DebugStruct.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::field | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field_with | DebugStruct.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::field_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field_with | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::fmt] in lang:core::_::::debug_tuple | DebugTuple.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug_tuple | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::fmt] in lang:core::_::crate::fmt::builders::debug_tuple_new | DebugTuple.fmt | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::debug_tuple_new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field | DebugTuple.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::field | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field_with | DebugTuple.result | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::field_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field_with | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::builders::FromFn(0)] in lang:core::_::crate::fmt::builders::from_fn | FromFn | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::fmt::builders::from_fn | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Argument::ty] in lang:core::_::::from_usize | Argument | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_usize | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Argument::ty].Field[crate::fmt::rt::ArgumentType::Count(0)] in lang:core::_::::from_usize | Count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Argument::ty] in lang:core::_::::from_usize | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::align] in lang:core::_::::new | Placeholder.align | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::fill] in lang:core::_::::new | Placeholder.fill | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::flags] in lang:core::_::::new | Placeholder.flags | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::position] in lang:core::_::::new | Placeholder.position | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::precision] in lang:core::_::::new | Placeholder.precision | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fmt::rt::Placeholder::width] in lang:core::_::::new | Placeholder.width | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fs::DirBuilder::recursive] in lang:std::_::::recursive | DirBuilder.recursive | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::recursive | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fs::File::inner] in lang:std::_::::from_inner | File | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fs::Metadata(0)] in lang:std::_::::from_inner | Metadata | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::fs::Permissions(0)] in lang:std::_::::from_inner | Permissions | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::future::poll_fn::PollFn::f] in lang:core::_::crate::future::poll_fn::poll_fn | PollFn | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::future::poll_fn::poll_fn | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::future::ready::Ready(0)] in lang:core::_::crate::future::ready::ready | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::future::ready::ready | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::future::ready::Ready(0)].Field[crate::option::Option::Some(0)] in lang:core::_::crate::future::ready::ready | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::future::ready::Ready(0)] in lang:core::_::crate::future::ready::ready | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::hash::sip::SipHasher13::hasher] in lang:core::_::::new_with_keys | SipHasher13 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_with_keys | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::hash::sip::SipHasher13::hasher].Field[crate::hash::sip::Hasher::k0] in lang:core::_::::new_with_keys | Hasher.k0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::hash::sip::SipHasher13::hasher] in lang:core::_::::new_with_keys | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::hash::sip::SipHasher13::hasher].Field[crate::hash::sip::Hasher::k1] in lang:core::_::::new_with_keys | Hasher.k1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::hash::sip::SipHasher13::hasher] in lang:core::_::::new_with_keys | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedBuf::buf] in lang:core::_::::from | BorrowedBuf.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::set_init | BorrowedBuf.init | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::set_init | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::buf] in lang:core::_::::set_init | BorrowedCursor.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::set_init | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::buf].Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::set_init | BorrowedBuf.init | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::buf] in lang:core::_::::set_init | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::start] in lang:core::_::::unfilled | BorrowedCursor.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::unfilled | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::borrowed_buf::BorrowedCursor::start] in lang:core::_::::reborrow | BorrowedCursor.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::reborrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufreader::BufReader::buf] in lang:std::_::::with_buffer | BufReader.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_buffer | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::new | BufReader.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::with_buffer | BufReader.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_buffer | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::with_capacity | BufReader.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_capacity | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::buf] in lang:std::_::::with_buffer | BufWriter.buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_buffer | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::new | BufWriter.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::with_buffer | BufWriter.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_buffer | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::with_capacity | BufWriter.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_capacity | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner] in lang:std::_::::new | LineWriter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner] in lang:std::_::::with_capacity | LineWriter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_capacity | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner].Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::new | BufWriter.inner | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner] in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner].Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::with_capacity | BufWriter.inner | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewriter::LineWriter::inner] in lang:std::_::::with_capacity | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::buffered::linewritershim::LineWriterShim::buffer] in lang:std::_::::new | LineWriterShim | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::cursor::Cursor::inner] in lang:std::_::::new | Cursor.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::io::util::Repeat::byte] in lang:std::_::crate::io::util::repeat | Repeat | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::io::util::repeat | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::array_chunks::ArrayChunks::iter] in lang:core::_::::new | ArrayChunks.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::a] in lang:core::_::::new | Chain.a | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::a].Field[crate::option::Option::Some(0)] in lang:core::_::::new | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::a] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::b] in lang:core::_::::new | Chain.b | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::b].Field[crate::option::Option::Some(0)] in lang:core::_::::new | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::chain::Chain::b] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::cloned::Cloned::it] in lang:core::_::::new | Cloned | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::copied::Copied::it] in lang:core::_::::new | Copied | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::enumerate::Enumerate::iter] in lang:core::_::::new | Enumerate.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::filter::Filter::iter] in lang:core::_::::new | Filter.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::filter::Filter::predicate] in lang:core::_::::new | Filter.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::filter_map::FilterMap::f] in lang:core::_::::new | FilterMap.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::filter_map::FilterMap::iter] in lang:core::_::::new | FilterMap.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::clone | FlatMap | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::flatten::Flatten::inner] in lang:core::_::::clone | Flatten | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::fuse::Fuse::iter] in lang:core::_::::new | Fuse | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::fuse::Fuse::iter].Field[crate::option::Option::Some(0)] in lang:core::_::::new | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::fuse::Fuse::iter] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::inspect::Inspect::f] in lang:core::_::::new | Inspect.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::inspect::Inspect::iter] in lang:core::_::::new | Inspect.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::intersperse::Intersperse::separator] in lang:core::_::::new | Intersperse.separator | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::intersperse::IntersperseWith::separator] in lang:core::_::::new | IntersperseWith.separator | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map::Map::f] in lang:core::_::::new | Map.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map::Map::iter] in lang:core::_::::new | Map.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map_while::MapWhile::iter] in lang:core::_::::new | MapWhile.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map_while::MapWhile::predicate] in lang:core::_::::new | MapWhile.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map_windows::Buffer::start] in lang:core::_::::clone | Buffer.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::map_windows::MapWindows::f] in lang:core::_::::new | MapWindows.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::peekable::Peekable::iter] in lang:core::_::::new | Peekable.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::rev::Rev::iter] in lang:core::_::::new | Rev | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::scan::Scan::f] in lang:core::_::::new | Scan.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::scan::Scan::iter] in lang:core::_::::new | Scan.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::scan::Scan::state] in lang:core::_::::new | Scan.state | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::new | Skip.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::skip::Skip::n] in lang:core::_::::new | Skip.n | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::skip_while::SkipWhile::iter] in lang:core::_::::new | SkipWhile.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::skip_while::SkipWhile::predicate] in lang:core::_::::new | SkipWhile.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::take::Take::iter] in lang:core::_::::new | Take.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::take::Take::n] in lang:core::_::::new | Take.n | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::take_while::TakeWhile::iter] in lang:core::_::::new | TakeWhile.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::take_while::TakeWhile::predicate] in lang:core::_::::new | TakeWhile.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::zip::Zip::a] in lang:core::_::::new | Zip.a | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::adapters::zip::Zip::b] in lang:core::_::::new | Zip.b | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::from_coroutine::FromCoroutine(0)] in lang:core::_::crate::iter::sources::from_coroutine::from_coroutine | FromCoroutine | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::from_coroutine::from_coroutine | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::from_fn::FromFn(0)] in lang:core::_::crate::iter::sources::from_fn::from_fn | FromFn | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::from_fn::from_fn | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::crate::iter::sources::repeat::repeat | Repeat | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::repeat::repeat | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::repeat_n::RepeatN::count] in lang:core::_::::clone | RepeatN.count | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::repeat_n::RepeatN::count] in lang:core::_::crate::iter::sources::repeat_n::repeat_n | RepeatN.count | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::repeat_n::repeat_n | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::repeat_with::RepeatWith::repeater] in lang:core::_::crate::iter::sources::repeat_with::repeat_with | RepeatWith | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::repeat_with::repeat_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::successors::Successors::next] in lang:core::_::crate::iter::sources::successors::successors | Successors.next | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::successors::successors | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::iter::sources::successors::Successors::succ] in lang:core::_::crate::iter::sources::successors::successors | Successors.succ | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::sources::successors::successors | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:core::_::::new | ManuallyDrop | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V4(0)] in lang:core::_::::from | V4 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V4(0)].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::from | Ipv4Addr | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V4(0)] in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)] in lang:core::_::::from | V6 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)] in lang:core::_::::to_canonical | V6 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::to_canonical | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)].Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::from | Ipv6Addr | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::IpAddr::V6(0)] in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::from | Ipv4Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::from_octets | Ipv4Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_octets | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::new | Ipv4Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets].Element in lang:core::_::::new | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::to_ipv6_compatible | Ipv6Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::to_ipv6_compatible | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::to_ipv6_mapped | Ipv6Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::to_ipv6_mapped | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::from | Ipv6Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::from_octets | Ipv6Addr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_octets | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets].Element in lang:core::_::::to_ipv6_compatible | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::to_ipv6_compatible | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets].Element in lang:core::_::::to_ipv6_mapped | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::to_ipv6_mapped | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)] in lang:core::_::::from | V4 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)] in lang:core::_::::new | V4 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)].Field[crate::net::socket_addr::SocketAddrV4::ip] in lang:core::_::::new | SocketAddrV4.ip | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)].Field[crate::net::socket_addr::SocketAddrV4::port] in lang:core::_::::from | SocketAddrV4.port | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)] in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)].Field[crate::net::socket_addr::SocketAddrV4::port] in lang:core::_::::new | SocketAddrV4.port | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V4(0)] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)] in lang:core::_::::from | V6 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)] in lang:core::_::::new | V6 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)].Field[crate::net::socket_addr::SocketAddrV6::ip] in lang:core::_::::new | SocketAddrV6.ip | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)].Field[crate::net::socket_addr::SocketAddrV6::port] in lang:core::_::::from | SocketAddrV6.port | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)] in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)].Field[crate::net::socket_addr::SocketAddrV6::port] in lang:core::_::::new | SocketAddrV6.port | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddr::V6(0)] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV4::ip] in lang:core::_::::new | SocketAddrV4.ip | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV4::port] in lang:core::_::::new | SocketAddrV4.port | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::flowinfo] in lang:core::_::::new | SocketAddrV6.flowinfo | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::ip] in lang:core::_::::new | SocketAddrV6.ip | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::port] in lang:core::_::::new | SocketAddrV6.port | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::socket_addr::SocketAddrV6::scope_id] in lang:core::_::::new | SocketAddrV6.scope_id | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::tcp::Incoming::listener] in lang:std::_::::incoming | Incoming | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::incoming | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::tcp::IntoIncoming::listener] in lang:std::_::::into_incoming | IntoIncoming | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_incoming | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::tcp::TcpListener(0)] in lang:std::_::::from_inner | TcpListener | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::tcp::TcpStream(0)] in lang:std::_::::from_inner | TcpStream | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::net::udp::UdpSocket(0)] in lang:std::_::::from_inner | UdpSocket | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::::clone | Big32x40.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::::from_small | Big32x40.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_small | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::::mul_pow2 | Big32x40.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::mul_pow2 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | Big32x40.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::::from_small | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::::from_small | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::::mul_pow2 | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::::mul_pow2 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::base] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::size] in lang:core::_::::clone | Big32x40.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::size] in lang:core::_::::add | Big32x40.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::add | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::size] in lang:core::_::::mul_small | Big32x40.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::mul_small | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::size] in lang:core::_::::sub | Big32x40.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::sub | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::Big32x40::size] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | Big32x40.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::clone | Big8x3.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::from_small | Big8x3.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_small | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::mul_pow2 | Big8x3.base | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::mul_pow2 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base].Element in lang:core::_::::from_small | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::from_small | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base].Element in lang:core::_::::mul_pow2 | element | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::mul_pow2 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::clone | Big8x3.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::add | Big8x3.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::add | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::mul_small | Big8x3.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::mul_small | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::sub | Big8x3.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::sub | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::dec2flt::common::BiasedFp::e] in lang:core::_::::zero_pow2 | BiasedFp.e | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::zero_pow2 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::diy_float::Fp::e] in lang:core::_::::normalize | Fp.e | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::normalize | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::diy_float::Fp::e] in lang:core::_::::normalize_to | Fp.e | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::normalize_to | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::num::diy_float::Fp::f] in lang:core::_::::normalize | Fp.f | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::normalize | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::from_residual | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_residual | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::map_break | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_break | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::map_continue | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_continue | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | Break | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | Break | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::branch | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::branch | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::from_output | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_output | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::map_break | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_break | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::map_continue | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_continue | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::branch | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::new_unchecked | IndexRange.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::take_prefix | IndexRange.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::take_prefix | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::take_suffix | IndexRange.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::take_suffix | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::zero_to | IndexRange.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::zero_to | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::new_unchecked | IndexRange.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::take_prefix | IndexRange.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::take_prefix | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::take_suffix | IndexRange.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::take_suffix | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_mut | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_ref | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::map | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | Excluded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_mut | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_ref | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::map | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | Included | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::end_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)].Reference in lang:core::_::::start_bound | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Range::end] in lang:core::_::::from | Range.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Range::end] in lang:core::_::crate::slice::index::range | Range.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::slice::index::range | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::Range::start] in lang:core::_::::from | Range.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::RangeFrom::start] in lang:core::_::::from | RangeFrom | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::new | RangeInclusive.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::new | RangeInclusive.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ops::try_trait::NeverShortCircuit(0)] in lang:core::_::::from_output | NeverShortCircuit | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_output | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Iter::inner] in lang:core::_::::clone | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::<&crate::string::String as crate::str::pattern::Pattern>::as_utf8_pattern | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::<&crate::string::String as crate::str::pattern::Pattern>::as_utf8_pattern | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::peek_mut | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::peek_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::index | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::index | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::remove_current_as_list | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::remove_current_as_list | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::source | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::source | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::then | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::then | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::then_some | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::then_some | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_utf8_pattern | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_utf8_pattern | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_str | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_usize | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_usize | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::take_output | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::take_output | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::write | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::write | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::break_value | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::break_value | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::continue_value | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::continue_value | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::get | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::get_mut | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::spec_next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::clone | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::from | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::from_output | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_output | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::and_then | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_mut | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_ref | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::cloned | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::cloned | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::copied | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::copied | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::zip | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::zip_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::location | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::location | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::err | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::err | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::ok | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::last | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::last | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::last | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::finish | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::finish | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::last | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_match_back | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_match_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_match | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::next_match | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::matching | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_abs | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_abs | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_abs | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_abs | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_abs | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_abs | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_abs | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_abs | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_abs | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_abs | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_abs | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_abs | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::checked_next_multiple_of | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::checked_next_multiple_of | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::iter::traits::iterator::Iterator::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::iter::traits::iterator::Iterator::nth | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::iter::traits::iterator::Iterator::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::slice::index::try_range | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::crate::slice::index::try_range | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:proc_macro::_::::as_str | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::as_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:proc_macro::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::location | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::location | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::capacity | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::capacity | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::cause | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::cause | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::try_lock | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_lock | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::fd | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::fd | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::from_u32 | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_u32 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::next | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::find_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/clap-rs/clap:clap_builder::_::::insert | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/clap-rs/clap:clap_builder::_::::insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::ty | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::ty | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | Some | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::next | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::zip | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::next | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::next_match_back | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_match_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::matching | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::next | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::nth | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::zip | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::zip | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::next_match | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_match | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::matching | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::matching | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::collections::binary_heap::PeekMut::heap] in lang:alloc::_::::peek_mut | PeekMut.heap | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::peek_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::collections::linked_list::LinkedList::alloc] in lang:alloc::_::::remove_current_as_list | LinkedList.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::remove_current_as_list | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::ops::range::Range::end] in lang:core::_::crate::slice::index::try_range | Range.end | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::crate::slice::index::try_range | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::rc::Rc::alloc] in lang:alloc::_::::upgrade | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::rc::Rc::ptr] in lang:alloc::_::::upgrade | Rc.ptr | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::transpose | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::result::Result::Ok(0)] in lang:std::_::::next | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::str::pattern::Utf8Pattern::CharPattern(0)] in lang:core::_::::as_utf8_pattern | CharPattern | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_utf8_pattern | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::str::pattern::Utf8Pattern::StringPattern(0)] in lang:alloc::_::<&crate::string::String as crate::str::pattern::Pattern>::as_utf8_pattern | StringPattern | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::<&crate::string::String as crate::str::pattern::Pattern>::as_utf8_pattern | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::Arc::alloc] in lang:alloc::_::::upgrade | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::Arc::ptr] in lang:alloc::_::::upgrade | Arc.ptr | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock] in lang:std::_::::try_lock | ReentrantLockGuard | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::try_lock | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Field[crate::sys_common::wtf8::CodePoint::value] in lang:std::_::::from_u32 | CodePoint | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::from_u32 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:alloc::_::::source | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:alloc::_::::source | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::spec_next_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::spec_next | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::spec_next_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::spec_next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::from | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::location | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::location | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::last | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::last | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::last | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::last | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:std::_::::location | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::location | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in lang:std::_::::cause | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in lang:std::_::::cause | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)].Reference in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::os::unix::net::listener::Incoming::listener] in lang:std::_::<&crate::os::unix::net::listener::UnixListener as crate::iter::traits::collect::IntoIterator>::into_iter | Incoming | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<&crate::os::unix::net::listener::UnixListener as crate::iter::traits::collect::IntoIterator>::into_iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::os::unix::net::listener::Incoming::listener] in lang:std::_::::incoming | Incoming | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::incoming | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::PanicHookInfo::can_unwind] in lang:std::_::::new | PanicHookInfo.can_unwind | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::PanicHookInfo::force_no_backtrace] in lang:std::_::::new | PanicHookInfo.force_no_backtrace | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::PanicHookInfo::location] in lang:std::_::::new | PanicHookInfo.location | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::PanicHookInfo::payload] in lang:std::_::::new | PanicHookInfo.payload | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::location::Location::col] in lang:core::_::::internal_constructor | Location.col | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::internal_constructor | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::location::Location::file] in lang:core::_::::internal_constructor | Location.file | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::internal_constructor | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::location::Location::line] in lang:core::_::::internal_constructor | Location.line | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::internal_constructor | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::panic_info::PanicInfo::can_unwind] in lang:core::_::::new | PanicInfo.can_unwind | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::panic_info::PanicInfo::force_no_backtrace] in lang:core::_::::new | PanicInfo.force_no_backtrace | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::panic_info::PanicInfo::location] in lang:core::_::::new | PanicInfo.location | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::panic_info::PanicInfo::message] in lang:core::_::::new | PanicInfo.message | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::panic::panic_info::PanicMessage::message] in lang:core::_::::message | PanicMessage | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::message | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::path::Display::inner] in lang:std::_::::display | Display | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::display | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::path::Display::inner].Field[crate::ffi::os_str::Display::os_str] in lang:std::_::::display | Display | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::path::Display::inner] in lang:std::_::::display | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::path::PathBuf::inner] in lang:std::_::::from | PathBuf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:alloc::_::::into_pin | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::into_pin | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:alloc::_::::from | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::as_mut | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::as_ref | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::into_ref | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked_mut | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_unchecked_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::new | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::new_unchecked | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::static_mut | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::static_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::static_ref | Pin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::static_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::map_unchecked_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::Child::handle] in lang:std::_::::from_inner | Child.handle | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::ChildStderr::inner] in lang:std::_::::from_inner | ChildStderr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::ChildStdin::inner] in lang:std::_::::from_inner | ChildStdin | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::ChildStdout::inner] in lang:std::_::::from_inner | ChildStdout | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::ExitCode(0)] in lang:std::_::::from_inner | ExitCode | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::ExitStatus(0)] in lang:std::_::::from_inner | ExitStatus | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::process::Stdio(0)] in lang:std::_::::from_inner | Stdio | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::ptr::unique::Unique::pointer] in lang:core::_::::from | Unique.pointer | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::Range::end] in lang:core::_::::from | Range.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::Range::start] in lang:core::_::::from | Range.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::Range::start] in lang:core::_::::into_slice_range | Range.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_slice_range | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::RangeFrom::start] in lang:core::_::::from | RangeFrom | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::RangeFrom::start] in lang:core::_::::remainder | RangeFrom | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::remainder | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::RangeInclusive::end] in lang:core::_::::from | RangeInclusive.end | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::range::RangeInclusive::start] in lang:core::_::::from | RangeInclusive.start | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::from_nonnull_in | RawVec.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_nonnull_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::from_raw_parts_in | RawVec.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_raw_parts_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::new_in | RawVec.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::with_capacity_in | RawVec.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::with_capacity_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::with_capacity_zeroed_in | RawVec.inner | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::with_capacity_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc] in lang:alloc::_::::from_nonnull_in | RawVecInner.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::from_nonnull_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc] in lang:alloc::_::::from_raw_parts_in | RawVecInner.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::from_raw_parts_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc] in lang:alloc::_::::new_in | RawVecInner.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::new_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc] in lang:alloc::_::::with_capacity_in | RawVecInner.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::with_capacity_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner].Field[crate::raw_vec::RawVecInner::alloc] in lang:alloc::_::::with_capacity_zeroed_in | RawVecInner.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::raw_vec::RawVec::inner] in lang:alloc::_::::with_capacity_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Rc::alloc] in lang:alloc::_::::new_uninit_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_uninit_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Rc::alloc] in lang:alloc::_::::new_uninit_slice_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_uninit_slice_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Rc::alloc] in lang:alloc::_::::new_zeroed_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Rc::alloc] in lang:alloc::_::::new_zeroed_slice_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_zeroed_slice_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Weak::alloc] in lang:alloc::_::::downgrade | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Weak::alloc] in lang:alloc::_::::from_raw_in | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_raw_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Weak::alloc] in lang:alloc::_::::new_in | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rc::Weak::ptr] in lang:alloc::_::::downgrade | Weak.ptr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Iter::inner] in lang:core::_::::clone | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_from | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::downcast | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downcast | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::left_kv | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::left_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::right_kv | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::right_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::from_vec_with_nul | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_vec_with_nul | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_from | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::downcast | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downcast | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_unwrap | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_unwrap | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::from_utf8 | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_utf8 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_from | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::downcast | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downcast | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_unwrap | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_unwrap | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::push_within_capacity | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::push_within_capacity | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::downcast | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downcast | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::filter_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::filter_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::ok_or | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::ok_or_else | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or_else | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::transpose | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::and | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::and | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::and_then | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::and_then | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref_mut | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_mut | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_ref | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::cloned | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::cloned | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::copied | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::copied | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::flatten | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::flatten | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::write | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::write | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::write | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::write | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::write | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::write | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::wait | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_inner | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::replace | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::replace | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_inner | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::replace | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::replace | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_string | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_string | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::crate::sys_common::ignore_notfound | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::sys_common::ignore_notfound | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::crate::thread::current::set_current | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::thread::current::set_current | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo::pastebin::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::pastebin::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::send_request | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::send_request | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::try_send_request | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::try_send_request | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::try_send | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::try_send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or_else | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or_else | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::respond_to | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::respond_to | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/servo/rust-smallvec:smallvec::_::::into_inner | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/servo/rust-smallvec:smallvec::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::try_set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::try_set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_into_std | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_into_std | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_into_panic | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_into_panic | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::insert | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_set | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::util::typeid::try_transmute | Err | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::util::typeid::try_transmute | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::insert | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::insert | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in lang:core::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in lang:std::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[1] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::collections::btree::map::entry::OccupiedError::value] in lang:alloc::_::::try_insert | OccupiedError.value | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::collections::hash::map::OccupiedError::value] in lang:std::_::::try_insert | OccupiedError.value | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::ffi::c_str::FromVecWithNulError::bytes] in lang:alloc::_::::from_vec_with_nul | FromVecWithNulError.bytes | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::from_vec_with_nul | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::string::FromUtf8Error::bytes] in lang:alloc::_::::from_utf8 | FromUtf8Error.bytes | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:alloc::_::::from_utf8 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpmc::error::SendTimeoutError::Disconnected(0)] in lang:std::_::::send | Disconnected | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpmc::error::SendTimeoutError::Timeout(0)] in lang:std::_::::send | Timeout | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Disconnected(0)] in lang:core::_::::map_err | Disconnected | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Disconnected(0)] in lang:std::_::::try_send | Disconnected | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Full(0)] in lang:std::_::::try_send | Full | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::mpsc::TrySendError::Full(0)] in lang:std::_::::try_send | Full | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::try_send | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::wait | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::wait | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::into_inner | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::replace | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::replace | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::set | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::into_inner | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::replace | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::replace | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::set | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:std::_::::set | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Err(0)] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_uninit_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::left_kv | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::left_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::right_kv | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::right_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::search_tree_for_bifurcation | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::search_tree_for_bifurcation | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_uninit_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::from_utf8 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_utf8 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::parse | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_uninit_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::try_new_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::align_to | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::align_to | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::array | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::array | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::extend | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::extend | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::extend_packed | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::extend_packed | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::from_size_align | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_size_align | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::repeat | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::repeat | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::repeat_packed | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::repeat_packed | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::filter_map | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::filter_map | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::padding | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::padding | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::ok_or | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::ok_or_else | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ok_or_else | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::from_output | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_output | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_mut | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_ref | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::cloned | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::cloned | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::copied | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::copied | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::map | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::map_err | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::or | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::or | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::or_else | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::or_else | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::parse | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::fill_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::fill_buf | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::seek | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::seek | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::stream_position | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::stream_position | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::try_clone | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::from_parts | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_parts | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::canonicalize | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::canonicalize | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::from_str | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait_timeout | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_ms | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait_timeout_ms | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_while | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait_timeout_while | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_while | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::wait_while | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::into_inner | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::lock | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::lock | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::into_inner | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::write | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::write | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::try_with | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::crate::sys::pal::unix::cvt | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::sys::pal::unix::cvt | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo::serde_test_suite::_::::variant_seed | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::variant_seed | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo::serde_test_suite::_::::visit_byte_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::visit_byte_buf | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-http::_::<&crate::header::value::HeaderValue as crate::header::into_value::TryIntoHeaderValue>::try_into_value | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::<&crate::header::value::HeaderValue as crate::header::into_value::TryIntoHeaderValue>::try_into_value | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_value | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::try_into_value | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_auto_h2c | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_auto_h2c | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_openssl | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_openssl | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_0_22 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_0_22 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_0_23 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_0_23 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_021 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_rustls_021 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::bind_uds | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::bind_uds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::listen | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::listen | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::listen_auto_h2c | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::listen_auto_h2c | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:actix-web::_::::listen_uds | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::listen_uds | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/actix/actix-web:awc::_::::query | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:awc::_::::query | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/clap-rs/clap:clap_builder::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/clap-rs/clap:clap_builder::_::::parse | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::<&str as crate::request::from_param::FromParam>::from_param | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::<&str as crate::request::from_param::FromParam>::from_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::map_base | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::map_base | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::map_base | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::map_base | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket::_::::from_segments | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::from_segments | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::upgrade_param | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::upgrade_param | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::head_err_or | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::head_err_or | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/rwf2/Rocket:rocket_http::_::crate::parse::uri::scheme_from_str | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::crate::parse::uri::scheme_from_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::into_url | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::into_url | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::error_for_status | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::error_for_status | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::error_for_status_ref | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::error_for_status_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::into_proxy_scheme | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::into_proxy_scheme | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/serde-rs/serde:serde::_::::visit_bool | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::::visit_bool | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/serde-rs/serde:serde::_::::visit_borrowed_bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::::visit_borrowed_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/serde-rs/serde:serde::_::::visit_char | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::::visit_char | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/serde-rs/serde:serde::_::::visit_borrowed_str | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::::visit_borrowed_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/serde-rs/serde:serde::_::::visit_string | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/servo/rust-url:url::_::::parse | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/servo/rust-url:url::_::::parse | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::poll_fill_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::poll_fill_buf | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait_timeout | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait_timeout | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::read_line_internal | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::read_line_internal | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_to_end::read_to_end_internal | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_to_end::read_to_end_internal | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_until::read_until_internal | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_until::read_until_internal | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::budget | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::budget | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:alloc::_::::search_tree_for_bifurcation | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::search_tree_for_bifurcation | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:core::_::::extend | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::extend | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:core::_::::repeat | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::repeat | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:std::_::::wait_timeout | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:std::_::::wait_timeout_ms | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_ms | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in lang:std::_::::wait_timeout_while | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::wait_timeout_while | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait_timeout | tuple.0 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::wait_timeout | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[1] in repo::serde_test_suite::_::::variant_seed | tuple.1 | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo::serde_test_suite::_::::variant_seed | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::align] in lang:core::_::::align_to | Layout.align | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::align_to | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::align] in lang:core::_::::extend_packed | Layout.align | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::extend_packed | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::align] in lang:core::_::::repeat_packed | Layout.align | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::repeat_packed | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::size] in lang:core::_::::align_to | Layout.size | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::align_to | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::alloc::layout::Layout::size] in lang:core::_::::from_size_align | Layout.size | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::from_size_align | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::boxed::Box(1)] in lang:alloc::_::::try_new_uninit_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::boxed::Box(1)] in lang:alloc::_::::try_new_zeroed_in | Box(1) | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::cell::Ref::borrow] in lang:core::_::::filter_map | Ref.borrow | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::cell::RefMut::borrow] in lang:core::_::::filter_map | RefMut.borrow | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::right_kv | Handle.idx | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::right_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::left_kv | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::left_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::right_kv | Handle.node | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::right_kv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::fmt::PostPadding::fill] in lang:core::_::::padding | PostPadding.fill | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::padding | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::fmt::PostPadding::padding] in lang:core::_::::padding | PostPadding.padding | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::padding | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::os::unix::net::addr::SocketAddr::addr] in lang:std::_::::from_parts | SocketAddr.addr | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::from_parts | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::os::unix::net::addr::SocketAddr::len] in lang:std::_::::from_parts | SocketAddr.len | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::from_parts | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::path::PathBuf::inner] in lang:std::_::::from_str | PathBuf | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::from_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::rc::Rc::alloc] in lang:alloc::_::::try_new_uninit_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::rc::Rc::alloc] in lang:alloc::_::::try_new_zeroed_in | Rc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::string::String::vec] in lang:alloc::_::::from_utf8 | String | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::from_utf8 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::Arc::alloc] in lang:alloc::_::::try_new_uninit_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_uninit_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::Arc::alloc] in lang:alloc::_::::try_new_zeroed_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_new_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::poison::mutex::MutexGuard::lock] in lang:std::_::::lock | MutexGuard.lock | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::lock | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock] in lang:std::_::::write | RwLockWriteGuard.lock | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:std::_::::write | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::result::Result::Ok(0)] in repo:https://github.com/matklad/once_cell:once_cell::_::::try_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rngs::mock::StepRng::a] in repo:https://github.com/rust-random/rand:rand::_::::new | StepRng.a | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::rngs::mock::StepRng::v] in repo:https://github.com/rust-random/rand:rand::_::::new | StepRng.v | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkBy::predicate] in lang:core::_::<[_]>::chunk_by | ChunkBy.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunk_by | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkBy::predicate] in lang:core::_::::new | ChunkBy.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkBy::slice] in lang:core::_::<[_]>::chunk_by | ChunkBy.slice | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunk_by | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkBy::slice] in lang:core::_::::new | ChunkBy.slice | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkByMut::predicate] in lang:core::_::<[_]>::chunk_by_mut | ChunkByMut.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunk_by_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkByMut::predicate] in lang:core::_::::new | ChunkByMut.predicate | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkByMut::slice] in lang:core::_::<[_]>::chunk_by_mut | ChunkByMut.slice | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunk_by_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunkByMut::slice] in lang:core::_::::new | ChunkByMut.slice | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::chunk_size] in lang:core::_::<[_]>::chunks | Chunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::chunk_size] in lang:core::_::::clone | Chunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::chunk_size] in lang:core::_::::new | Chunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::v] in lang:core::_::<[_]>::chunks | Chunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::v] in lang:core::_::::clone | Chunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Chunks::v] in lang:core::_::::new | Chunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExact::chunk_size] in lang:core::_::<[_]>::chunks_exact | ChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks_exact | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExact::chunk_size] in lang:core::_::::clone | ChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExact::chunk_size] in lang:core::_::::new | ChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExact::rem] in lang:core::_::::clone | ChunksExact.rem | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::clone | ChunksExact.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExactMut::chunk_size] in lang:core::_::<[_]>::chunks_exact_mut | ChunksExactMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks_exact_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksExactMut::chunk_size] in lang:core::_::::new | ChunksExactMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksMut::chunk_size] in lang:core::_::<[_]>::chunks_mut | ChunksMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksMut::chunk_size] in lang:core::_::::new | ChunksMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksMut::v] in lang:core::_::<[_]>::chunks_mut | ChunksMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::chunks_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::ChunksMut::v] in lang:core::_::::new | ChunksMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Iter::_marker] in lang:core::_::::clone | Iter._marker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Iter::end_or_len] in lang:core::_::::clone | Iter.end_or_len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Iter::ptr] in lang:core::_::::clone | Iter.ptr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::chunk_size] in lang:core::_::<[_]>::rchunks | RChunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::chunk_size] in lang:core::_::::clone | RChunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::chunk_size] in lang:core::_::::new | RChunks.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::v] in lang:core::_::<[_]>::rchunks | RChunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::v] in lang:core::_::::clone | RChunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunks::v] in lang:core::_::::new | RChunks.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExact::chunk_size] in lang:core::_::<[_]>::rchunks_exact | RChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks_exact | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExact::chunk_size] in lang:core::_::::clone | RChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExact::chunk_size] in lang:core::_::::new | RChunksExact.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExact::rem] in lang:core::_::::clone | RChunksExact.rem | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::clone | RChunksExact.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExactMut::chunk_size] in lang:core::_::<[_]>::rchunks_exact_mut | RChunksExactMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks_exact_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksExactMut::chunk_size] in lang:core::_::::new | RChunksExactMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksMut::chunk_size] in lang:core::_::<[_]>::rchunks_mut | RChunksMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksMut::chunk_size] in lang:core::_::::new | RChunksMut.chunk_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksMut::v] in lang:core::_::<[_]>::rchunks_mut | RChunksMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rchunks_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RChunksMut::v] in lang:core::_::::new | RChunksMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::<[_]>::rsplit | RSplit | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rsplit | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::::clone | RSplit | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::::new | RSplit | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner].Field[crate::slice::iter::Split::pred] in lang:core::_::<[_]>::rsplit | Split.pred | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::<[_]>::rsplit | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner].Field[crate::slice::iter::Split::pred] in lang:core::_::::new | Split.pred | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner].Field[crate::slice::iter::Split::v] in lang:core::_::<[_]>::rsplit | Split.v | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::<[_]>::rsplit | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner].Field[crate::slice::iter::Split::v] in lang:core::_::::new | Split.v | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplit::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::<[_]>::rsplit_mut | RSplitMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rsplit_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::::new | RSplitMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner].Field[crate::slice::iter::SplitMut::pred] in lang:core::_::<[_]>::rsplit_mut | SplitMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::<[_]>::rsplit_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner].Field[crate::slice::iter::SplitMut::pred] in lang:core::_::::new | SplitMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner].Field[crate::slice::iter::SplitMut::v] in lang:core::_::<[_]>::rsplit_mut | SplitMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::<[_]>::rsplit_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner].Field[crate::slice::iter::SplitMut::v] in lang:core::_::::new | SplitMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitMut::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner] in lang:core::_::<[_]>::rsplitn | RSplitN | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rsplitn | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner] in lang:core::_::::new | RSplitN | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::<[_]>::rsplitn | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner] in lang:core::_::<[_]>::rsplitn | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::::new | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::new | GenericSplitN.iter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitN::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner] in lang:core::_::<[_]>::rsplitn_mut | RSplitNMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::rsplitn_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner] in lang:core::_::::new | RSplitNMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::<[_]>::rsplitn_mut | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner] in lang:core::_::<[_]>::rsplitn_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::::new | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::new | GenericSplitN.iter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::RSplitNMut::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Split::pred] in lang:core::_::<[_]>::split | Split.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Split::pred] in lang:core::_::::new | Split.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Split::v] in lang:core::_::<[_]>::split | Split.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Split::v] in lang:core::_::::new | Split.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusive::pred] in lang:core::_::<[_]>::split_inclusive | SplitInclusive.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_inclusive | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusive::pred] in lang:core::_::::new | SplitInclusive.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::<[_]>::split_inclusive | SplitInclusive.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_inclusive | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::new | SplitInclusive.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusiveMut::pred] in lang:core::_::<[_]>::split_inclusive_mut | SplitInclusiveMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_inclusive_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusiveMut::pred] in lang:core::_::::new | SplitInclusiveMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusiveMut::v] in lang:core::_::<[_]>::split_inclusive_mut | SplitInclusiveMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_inclusive_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitInclusiveMut::v] in lang:core::_::::new | SplitInclusiveMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitMut::pred] in lang:core::_::<[_]>::split_mut | SplitMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitMut::pred] in lang:core::_::::new | SplitMut.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitMut::v] in lang:core::_::<[_]>::split_mut | SplitMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::split_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitMut::v] in lang:core::_::::new | SplitMut.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner] in lang:core::_::<[_]>::splitn | SplitN | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::splitn | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner] in lang:core::_::::new | SplitN | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::<[_]>::splitn | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner] in lang:core::_::<[_]>::splitn | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::::new | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::new | GenericSplitN.iter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitN::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner] in lang:core::_::<[_]>::splitn_mut | SplitNMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::splitn_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner] in lang:core::_::::new | SplitNMut | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::<[_]>::splitn_mut | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner] in lang:core::_::<[_]>::splitn_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::::new | GenericSplitN.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::new | GenericSplitN.iter | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::SplitNMut::inner] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Windows::size] in lang:core::_::::clone | Windows.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Windows::size] in lang:core::_::::new | Windows.size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Windows::v] in lang:core::_::<[_]>::windows | Windows.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[_]>::windows | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Windows::v] in lang:core::_::::clone | Windows.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::slice::iter::Windows::v] in lang:core::_::::new | Windows.v | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::iter::SplitInternal::matcher] in lang:core::_::::clone | SplitInternal.matcher | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::iter::SplitN(0)] in lang:core::_::::splitn | SplitN | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::splitn | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::iter::SplitN(0)].Field[crate::str::iter::SplitNInternal::count] in lang:core::_::::splitn | SplitNInternal.count | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::iter::SplitN(0)] in lang:core::_::::splitn | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::iter::SplitNInternal::iter] in lang:core::_::::clone | SplitNInternal.iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::lossy::Debug(0)] in lang:core::_::::debug | Debug | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::debug | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::lossy::Utf8Chunks::source] in lang:core::_::<[u8]>::utf8_chunks | Utf8Chunks | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<[u8]>::utf8_chunks | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::CharSearcher::haystack] in lang:core::_::::into_searcher | CharSearcher.haystack | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_searcher | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::CharSearcher::needle] in lang:core::_::::into_searcher | CharSearcher.needle | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_searcher | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::MultiCharEqSearcher::char_eq] in lang:core::_::::into_searcher | MultiCharEqSearcher.char_eq | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_searcher | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::MultiCharEqSearcher::haystack] in lang:core::_::::into_searcher | MultiCharEqSearcher.haystack | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::into_searcher | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::SearchStep::Match(0)] in lang:core::_::::matching | Match(0) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::matching | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::SearchStep::Match(1)] in lang:core::_::::matching | Match(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::matching | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::SearchStep::Reject(0)] in lang:core::_::::rejecting | Reject(0) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::rejecting | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::SearchStep::Reject(1)] in lang:core::_::::rejecting | Reject(1) | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::rejecting | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::StrSearcher::haystack] in lang:core::_::<&str as crate::str::pattern::Pattern>::into_searcher | StrSearcher.haystack | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&str as crate::str::pattern::Pattern>::into_searcher | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::str::pattern::StrSearcher::needle] in lang:core::_::<&str as crate::str::pattern::Pattern>::into_searcher | StrSearcher.needle | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&str as crate::str::pattern::Pattern>::into_searcher | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::string::String::vec] in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | String | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::string::String::vec] in lang:alloc::_::::clone | String | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::string::String::vec] in lang:alloc::_::::from_utf8_lossy_owned | String | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_utf8_lossy_owned | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::string::String::vec] in lang:alloc::_::::from_utf8_unchecked | String | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_utf8_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Arc::alloc] in lang:alloc::_::::new_uninit_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_uninit_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Arc::alloc] in lang:alloc::_::::new_uninit_slice_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_uninit_slice_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Arc::alloc] in lang:alloc::_::::new_zeroed_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_zeroed_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Arc::alloc] in lang:alloc::_::::new_zeroed_slice_in | Arc.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_zeroed_slice_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Weak::alloc] in lang:alloc::_::::downgrade | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Weak::alloc] in lang:alloc::_::::from_raw_in | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_raw_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Weak::alloc] in lang:alloc::_::::new_in | Weak.alloc | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::Weak::ptr] in lang:alloc::_::::downgrade | Weak.ptr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::downgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI8::v] in lang:core::_::::new | AtomicI8 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI8::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI8::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI16::v] in lang:core::_::::new | AtomicI16 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI16::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI16::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI32::v] in lang:core::_::::new | AtomicI32 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI32::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI32::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI64::v] in lang:core::_::::new | AtomicI64 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI64::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI64::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI128::v] in lang:core::_::::new | AtomicI128 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI128::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicI128::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicIsize::v] in lang:core::_::::new | AtomicIsize | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicIsize::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicIsize::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicPtr::p] in lang:core::_::::new | AtomicPtr | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicPtr::p].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicPtr::p] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU8::v] in lang:core::_::::new | AtomicU8 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU8::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU8::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU16::v] in lang:core::_::::new | AtomicU16 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU16::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU16::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU32::v] in lang:core::_::::new | AtomicU32 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU32::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU32::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU64::v] in lang:core::_::::new | AtomicU64 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU64::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU64::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU128::v] in lang:core::_::::new | AtomicU128 | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU128::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicU128::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicUsize::v] in lang:core::_::::new | AtomicUsize | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicUsize::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::atomic::AtomicUsize::v] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::barrier::Barrier::num_threads] in lang:std::_::::new | Barrier.num_threads | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::exclusive::Exclusive::inner] in lang:core::_::::new | Exclusive | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::Iter::rx] in lang:std::_::<&crate::sync::mpmc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<&crate::sync::mpmc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::Iter::rx] in lang:std::_::::iter | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::TryIter::rx] in lang:std::_::::try_iter | TryIter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::array::Channel::cap] in lang:std::_::::with_capacity | Channel.cap | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::with_capacity | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::counter::Receiver::counter] in lang:std::_::::acquire | Receiver | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::acquire | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::counter::Sender::counter] in lang:std::_::::acquire | Sender | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::acquire | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::error::SendTimeoutError::Disconnected(0)] in lang:std::_::::from | Disconnected | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::select::Selected::Operation(0)] in lang:std::_::::from | Operation | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::select::Selected::Operation(0)].Field[crate::sync::mpmc::select::Operation(0)] in lang:std::_::::from | Operation | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::select::Selected::Operation(0)] in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpmc::utils::CachePadded::value] in lang:std::_::::new | CachePadded | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::Iter::rx] in lang:std::_::<&crate::sync::mpsc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::<&crate::sync::mpsc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::Iter::rx] in lang:std::_::::iter | Iter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::Sender::inner] in lang:std::_::::clone | Sender | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::Sender::inner].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::Sender::inner] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::SyncSender::inner] in lang:std::_::::clone | SyncSender | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::SyncSender::inner].Reference in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::SyncSender::inner] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::TryIter::rx] in lang:std::_::::try_iter | TryIter | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::try_iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::mpsc::TrySendError::Disconnected(0)] in lang:std::_::::from | Disconnected | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::PoisonError::data] in lang:std::_::::new | PoisonError | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::TryLockError::Poisoned(0)] in lang:std::_::::from | Poisoned | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::from | Mutex.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::new | Mutex.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::from | RwLock.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::new | RwLock.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::from | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLockReadGuard::inner_lock] in lang:std::_::::downgrade | RwLockReadGuard.inner_lock | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::downgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLockReadGuard::inner_lock].Reference in lang:std::_::::downgrade | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::poison::rwlock::RwLockReadGuard::inner_lock] in lang:std::_::::downgrade | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::reentrant_lock::ReentrantLock::data] in lang:std::_::::new | ReentrantLock.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock] in lang:std::_::::lock | ReentrantLockGuard | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::lock | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::clone | Buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::from_inner | Buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::from_encoded_bytes_unchecked | Buf | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_encoded_bytes_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::pal::unix::process::process_common::Stdio::Fd(0)] in lang:std::_::::from | Fd | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::pal::unix::process::process_inner::ExitStatus(0)] in lang:std::_::::from | ExitStatus | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::pal::unix::process::process_inner::ExitStatus(0)] in lang:std::_::::new | ExitStatus | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::pal::unix::weak::DlsymWeak::name] in lang:std::_::::new | DlsymWeak.name | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::pal::unix::weak::ExternWeak::weak_ptr] in lang:std::_::::new | ExternWeak | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::personality::dwarf::DwarfReader::ptr] in lang:std::_::::new | DwarfReader | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::thread_local::native::eager::Storage::val] in lang:std::_::::new | Storage.val | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::thread_local::native::eager::Storage::val].Field[crate::cell::UnsafeCell::value] in lang:std::_::::new | UnsafeCell | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys::thread_local::native::eager::Storage::val] in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys_common::wtf8::CodePoint::value] in lang:std::_::::from_u32_unchecked | CodePoint | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_u32_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::sys_common::wtf8::Wtf8Buf::bytes] in lang:std::_::::from_bytes_unchecked | Wtf8Buf.bytes | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_bytes_unchecked | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::from | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::async_gen_ready | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::async_gen_ready | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | Ready | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::map_ok | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::async_gen_ready | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::async_gen_ready | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::map_ok | Err | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_err | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_ok | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::ext] in lang:core::_::::build | Context.ext | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::build | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::ext].Field[crate::panic::unwind_safe::AssertUnwindSafe(0)] in lang:core::_::::build | AssertUnwindSafe | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::ext] in lang:core::_::::build | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::local_waker] in lang:core::_::::build | Context.local_waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::build | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::waker] in lang:core::_::::from_waker | Context.waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_waker | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Context::waker] in lang:core::_::::build | Context.waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::build | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::ext] in lang:core::_::::ext | ContextBuilder.ext | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ext | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::ext].Field[crate::task::wake::ExtData::Some(0)] in lang:core::_::::ext | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::ext] in lang:core::_::::ext | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::local_waker] in lang:core::_::::from | ContextBuilder.local_waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::local_waker] in lang:core::_::::local_waker | ContextBuilder.local_waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::local_waker | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::waker] in lang:core::_::::from | ContextBuilder.waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::waker] in lang:core::_::::from_waker | ContextBuilder.waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_waker | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::ContextBuilder::waker] in lang:core::_::::waker | ContextBuilder.waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::waker | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::from_raw | LocalWaker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::new | LocalWaker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::data] in lang:core::_::::new | RawWaker.data | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::vtable] in lang:core::_::::new | RawWaker.vtable | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWaker::data] in lang:core::_::::new | RawWaker.data | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWaker::vtable] in lang:core::_::::new | RawWaker.vtable | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWakerVTable::clone] in lang:core::_::::new | RawWakerVTable.clone | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWakerVTable::drop] in lang:core::_::::new | RawWakerVTable.drop | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWakerVTable::wake] in lang:core::_::::new | RawWakerVTable.wake | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::RawWakerVTable::wake_by_ref] in lang:core::_::::new | RawWakerVTable.wake_by_ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker] in lang:core::_::::from_raw | Waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_raw | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker] in lang:core::_::::new | Waker | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::data] in lang:core::_::::new | RawWaker.data | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::vtable] in lang:core::_::::new | RawWaker.vtable | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::task::wake::Waker::waker] in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::name] in lang:std::_::::name | Builder.name | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::name | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::name].Field[crate::option::Option::Some(0)] in lang:std::_::::name | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::name] in lang:std::_::::name | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::stack_size] in lang:std::_::::stack_size | Builder.stack_size | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::stack_size | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::stack_size].Field[crate::option::Option::Some(0)] in lang:std::_::::stack_size | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::Builder::stack_size] in lang:std::_::::stack_size | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::thread::local::LocalKey::inner] in lang:std::_::::new | LocalKey | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::time::Duration::secs] in lang:core::_::::from_secs | Duration.secs | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::from_secs | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::time::Duration::secs] in lang:core::_::::new | Duration.secs | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::time::SystemTime(0)] in lang:std::_::::from_inner | SystemTime | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::Vec::len] in lang:alloc::_::<_ as crate::vec::spec_from_elem::SpecFromElem>::from_elem | Vec.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::<_ as crate::vec::spec_from_elem::SpecFromElem>::from_elem | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::Vec::len] in lang:alloc::_::::from_parts_in | Vec.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_parts_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::Vec::len] in lang:alloc::_::::from_raw_parts_in | Vec.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_raw_parts_in | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::Vec::len] in lang:alloc::_::::from_elem | Vec.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_elem | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::Vec::len] in lang:alloc::_::::from_elem | Vec.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::from_elem | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::extract_if::ExtractIf::pred] in lang:alloc::_::::extract_if | ExtractIf.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::extract_if::ExtractIf::pred] in lang:alloc::_::::new | ExtractIf.pred | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::extract_if::ExtractIf::vec] in lang:alloc::_::::extract_if | ExtractIf.vec | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::extract_if | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::extract_if::ExtractIf::vec] in lang:alloc::_::::new | ExtractIf.vec | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::set_len_on_drop::SetLenOnDrop::len] in lang:alloc::_::::new | SetLenOnDrop.len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Field[crate::vec::set_len_on_drop::SetLenOnDrop::local_len] in lang:alloc::_::::new | SetLenOnDrop.local_len | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::fill_buf | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::fill_buf | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128 | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128_le | future | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::text_with_charset | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::fill_buf | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_buf_read_ext::AsyncBufReadExt::fill_buf | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f32_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_f64_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i8_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i16_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i32_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i64_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_i128_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u8_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u16_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u32_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u64_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128 | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128 | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128_le | Ok | file://:0:0:0:0 | [summary] to write: ReturnValue.Future in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::async_read_ext::AsyncReadExt::read_u128_le | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::chunk | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_line | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | Some | file://:0:0:0:0 | [summary] to write: ReturnValue.Future.Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::next_segment | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::to_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::to_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_mut_ptr | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_mut_ptr | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ptr | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ptr | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::index | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::index_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::index_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::kind | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::kind | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_into_iter | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_into_iter | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::key | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::key | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_bytes_with_nul | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_bytes_with_nul | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_c_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_c_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::strong_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::strong_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::weak_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::weak_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_mut_vec | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_mut_vec | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::trim | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::trim | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:alloc::_::::allocator | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::borrow_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::index | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::index | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::index_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::index_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::as_octets | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_octets | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::as_octets | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_octets | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::ip | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ip | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::ip | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::ip | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::digits | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::digits | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::digits | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::digits | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::kind | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::kind | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::end | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::end | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::start | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::start | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::get_or_insert | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_or_insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::get_or_insert_default | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_or_insert_default | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::get_or_insert_with | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_or_insert_with | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::insert | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::insert | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::as_slice | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::as_slice | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::local_waker | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::local_waker | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::waker | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::waker | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::trim | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::trim | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::index | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::index | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:core::_::::index_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:core::_::::index_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::Unmark>::unmark | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::Unmark>::unmark | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::Unmark>::unmark | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::Unmark>::unmark | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::::message | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::message | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:proc_macro::_::::spans | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:proc_macro::_::::spans | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_encoded_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_encoded_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::error | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::error | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::buffer | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::buffer | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::buffer_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::buffer_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_mut_os_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_mut_os_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_os_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_os_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_mut_os_string | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_mut_os_string | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_encoded_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_encoded_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_file_desc | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_file_desc | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::env_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::env_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_argv | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_argv | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_closures | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_closures | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::get_program_cstr | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::get_program_cstr | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::thread | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::thread | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::thread | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::thread | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::::as_cstr | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::::as_cstr | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::crate::sync::poison::mutex::guard_lock | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::sync::poison::mutex::guard_lock | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in lang:std::_::crate::sync::poison::mutex::guard_poison | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in lang:std::_::crate::sync::poison::mutex::guard_poison | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo::serde_test_suite::_::::get | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::get | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo::serde_test_suite::_::::second | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo::serde_test_suite::_::::second | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-files::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-files::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-router::_::<_ as crate::resource_path::Resource>::resource_path | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-router::_::<_ as crate::resource_path::Resource>::resource_path | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/actix/actix-web:awc::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/actix/actix-web:awc::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_styled_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_styled_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_internal_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_internal_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/hyperium/hyper:hyper::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/hyperium/hyper:hyper::_::::as_bytes | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/hyperium/hyper:hyper::_::::as_bytes | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates::_::::context | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates::_::::context | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::file | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::file | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::file_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::file_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::inner | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::inner | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::borrow | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::borrow | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_str | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_str | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::as_ref | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::as_ref | -| file://:0:0:0:0 | [summary] to write: ReturnValue.Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_inner_mut | &ref | file://:0:0:0:0 | [summary] to write: ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_inner_mut | -| main.rs:97:14:97:22 | source(...) | tuple.0 | main.rs:97:13:97:26 | TupleExpr | -| main.rs:97:25:97:25 | 2 | tuple.1 | main.rs:97:13:97:26 | TupleExpr | -| main.rs:103:14:103:14 | 2 | tuple.0 | main.rs:103:13:103:30 | TupleExpr | -| main.rs:103:17:103:26 | source(...) | tuple.1 | main.rs:103:13:103:30 | TupleExpr | -| main.rs:103:29:103:29 | 2 | tuple.2 | main.rs:103:13:103:30 | TupleExpr | -| main.rs:111:18:111:18 | 2 | tuple.0 | main.rs:111:17:111:31 | TupleExpr | -| main.rs:111:21:111:30 | source(...) | tuple.1 | main.rs:111:17:111:31 | TupleExpr | -| main.rs:114:11:114:20 | source(...) | tuple.0 | main.rs:114:5:114:5 | [post] a | -| main.rs:115:11:115:11 | 2 | tuple.1 | main.rs:115:5:115:5 | [post] a | -| main.rs:121:14:121:14 | 3 | tuple.0 | main.rs:121:13:121:27 | TupleExpr | -| main.rs:121:17:121:26 | source(...) | tuple.1 | main.rs:121:13:121:27 | TupleExpr | -| main.rs:122:14:122:14 | a | tuple.0 | main.rs:122:13:122:18 | TupleExpr | -| main.rs:122:17:122:17 | 3 | tuple.1 | main.rs:122:13:122:18 | TupleExpr | -| main.rs:137:24:137:32 | source(...) | Point.x | main.rs:137:13:137:40 | Point {...} | -| main.rs:137:38:137:38 | 2 | Point.y | main.rs:137:13:137:40 | Point {...} | -| main.rs:143:28:143:36 | source(...) | Point.x | main.rs:143:17:143:44 | Point {...} | -| main.rs:143:42:143:42 | 2 | Point.y | main.rs:143:17:143:44 | Point {...} | -| main.rs:145:11:145:20 | source(...) | Point.y | main.rs:145:5:145:5 | [post] p | -| main.rs:151:12:151:21 | source(...) | Point.x | main.rs:150:13:153:5 | Point {...} | -| main.rs:152:12:152:12 | 2 | Point.y | main.rs:150:13:153:5 | Point {...} | -| main.rs:166:16:169:9 | Point {...} | Point3D.plane | main.rs:165:13:171:5 | Point3D {...} | -| main.rs:167:16:167:16 | 2 | Point.x | main.rs:166:16:169:9 | Point {...} | -| main.rs:168:16:168:25 | source(...) | Point.y | main.rs:166:16:169:9 | Point {...} | -| main.rs:170:12:170:12 | 4 | Point3D.z | main.rs:165:13:171:5 | Point3D {...} | -| main.rs:180:16:180:32 | Point {...} | Point3D.plane | main.rs:179:13:182:5 | Point3D {...} | -| main.rs:180:27:180:27 | 2 | Point.x | main.rs:180:16:180:32 | Point {...} | -| main.rs:180:30:180:30 | y | Point.y | main.rs:180:16:180:32 | Point {...} | -| main.rs:181:12:181:12 | 4 | Point3D.z | main.rs:179:13:182:5 | Point3D {...} | -| main.rs:198:27:198:36 | source(...) | MyTupleStruct(0) | main.rs:198:13:198:40 | MyTupleStruct(...) | -| main.rs:198:39:198:39 | 2 | MyTupleStruct(1) | main.rs:198:13:198:40 | MyTupleStruct(...) | -| main.rs:214:27:214:36 | source(...) | Some | main.rs:214:14:214:37 | ...::Some(...) | -| main.rs:215:27:215:27 | 2 | Some | main.rs:215:14:215:28 | ...::Some(...) | -| main.rs:227:19:227:28 | source(...) | Some | main.rs:227:14:227:29 | Some(...) | -| main.rs:228:19:228:19 | 2 | Some | main.rs:228:14:228:20 | Some(...) | -| main.rs:240:19:240:28 | source(...) | Some | main.rs:240:14:240:29 | Some(...) | -| main.rs:245:19:245:28 | source(...) | Some | main.rs:245:14:245:29 | Some(...) | -| main.rs:248:19:248:19 | 0 | Some | main.rs:248:14:248:20 | Some(...) | -| main.rs:253:19:253:28 | source(...) | Some | main.rs:253:14:253:29 | Some(...) | -| main.rs:261:19:261:28 | source(...) | Some | main.rs:261:14:261:29 | Some(...) | -| main.rs:262:19:262:19 | 2 | Some | main.rs:262:14:262:20 | Some(...) | -| main.rs:266:10:266:10 | 0 | Some | main.rs:266:5:266:11 | Some(...) | -| main.rs:270:36:270:45 | source(...) | Ok | main.rs:270:33:270:46 | Ok(...) | -| main.rs:276:37:276:46 | source(...) | Err | main.rs:276:33:276:47 | Err(...) | -| main.rs:284:35:284:44 | source(...) | Ok | main.rs:284:32:284:45 | Ok(...) | -| main.rs:285:35:285:35 | 2 | Ok | main.rs:285:32:285:36 | Ok(...) | -| main.rs:286:36:286:45 | source(...) | Err | main.rs:286:32:286:46 | Err(...) | -| main.rs:293:8:293:8 | 0 | Ok | main.rs:293:5:293:9 | Ok(...) | -| main.rs:297:35:297:44 | source(...) | Ok | main.rs:297:32:297:45 | Ok(...) | -| main.rs:301:36:301:45 | source(...) | Err | main.rs:301:32:301:46 | Err(...) | -| main.rs:312:29:312:38 | source(...) | A | main.rs:312:14:312:39 | ...::A(...) | -| main.rs:313:29:313:29 | 2 | B | main.rs:313:14:313:30 | ...::B(...) | -| main.rs:330:16:330:25 | source(...) | A | main.rs:330:14:330:26 | A(...) | -| main.rs:331:16:331:16 | 2 | B | main.rs:331:14:331:17 | B(...) | -| main.rs:352:18:352:27 | source(...) | C | main.rs:351:14:353:5 | ...::C {...} | -| main.rs:354:41:354:41 | 2 | D | main.rs:354:14:354:43 | ...::D {...} | -| main.rs:372:18:372:27 | source(...) | C | main.rs:371:14:373:5 | C {...} | -| main.rs:374:27:374:27 | 2 | D | main.rs:374:14:374:29 | D {...} | -| main.rs:392:17:392:17 | 1 | element | main.rs:392:16:392:33 | [...] | -| main.rs:392:20:392:20 | 2 | element | main.rs:392:16:392:33 | [...] | -| main.rs:392:23:392:32 | source(...) | element | main.rs:392:16:392:33 | [...] | -| main.rs:396:17:396:26 | source(...) | element | main.rs:396:16:396:31 | [...; 10] | -| main.rs:400:17:400:17 | 1 | element | main.rs:400:16:400:24 | [...] | -| main.rs:400:20:400:20 | 2 | element | main.rs:400:16:400:24 | [...] | -| main.rs:400:23:400:23 | 3 | element | main.rs:400:16:400:24 | [...] | -| main.rs:406:17:406:17 | 1 | element | main.rs:406:16:406:33 | [...] | -| main.rs:406:20:406:20 | 2 | element | main.rs:406:16:406:33 | [...] | -| main.rs:406:23:406:32 | source(...) | element | main.rs:406:16:406:33 | [...] | -| main.rs:411:17:411:17 | 1 | element | main.rs:411:16:411:24 | [...] | -| main.rs:411:20:411:20 | 2 | element | main.rs:411:16:411:24 | [...] | -| main.rs:411:23:411:23 | 3 | element | main.rs:411:16:411:24 | [...] | -| main.rs:418:17:418:17 | 1 | element | main.rs:418:16:418:33 | [...] | -| main.rs:418:20:418:20 | 2 | element | main.rs:418:16:418:33 | [...] | -| main.rs:418:23:418:32 | source(...) | element | main.rs:418:16:418:33 | [...] | -| main.rs:429:24:429:24 | 1 | element | main.rs:429:23:429:31 | [...] | -| main.rs:429:27:429:27 | 2 | element | main.rs:429:23:429:31 | [...] | -| main.rs:429:30:429:30 | 3 | element | main.rs:429:23:429:31 | [...] | -| main.rs:432:18:432:27 | source(...) | element | main.rs:432:5:432:11 | [post] mut_arr | -| main.rs:444:41:444:67 | default_name | captured default_name | main.rs:444:41:444:67 | \|...\| ... | -| main.rs:479:15:479:24 | source(...) | element | main.rs:479:14:479:34 | [...] | -| main.rs:479:27:479:27 | 2 | element | main.rs:479:14:479:34 | [...] | -| main.rs:479:30:479:30 | 3 | element | main.rs:479:14:479:34 | [...] | -| main.rs:479:33:479:33 | 4 | element | main.rs:479:14:479:34 | [...] | -| main.rs:504:23:504:32 | source(...) | element | main.rs:504:22:504:42 | [...] | -| main.rs:504:35:504:35 | 2 | element | main.rs:504:22:504:42 | [...] | -| main.rs:504:38:504:38 | 3 | element | main.rs:504:22:504:42 | [...] | -| main.rs:504:41:504:41 | 4 | element | main.rs:504:22:504:42 | [...] | -| main.rs:519:18:519:18 | c | &ref | main.rs:519:17:519:18 | &c | -| main.rs:522:15:522:15 | b | &ref | main.rs:522:14:522:15 | &b | -| main.rs:545:27:545:27 | 0 | Some | main.rs:545:22:545:28 | Some(...) | +| main.rs:97:14:97:22 | source(...) | file://:0:0:0:0 | tuple.0 | main.rs:97:13:97:26 | TupleExpr | +| main.rs:97:25:97:25 | 2 | file://:0:0:0:0 | tuple.1 | main.rs:97:13:97:26 | TupleExpr | +| main.rs:103:14:103:14 | 2 | file://:0:0:0:0 | tuple.0 | main.rs:103:13:103:30 | TupleExpr | +| main.rs:103:17:103:26 | source(...) | file://:0:0:0:0 | tuple.1 | main.rs:103:13:103:30 | TupleExpr | +| main.rs:103:29:103:29 | 2 | file://:0:0:0:0 | tuple.2 | main.rs:103:13:103:30 | TupleExpr | +| main.rs:111:18:111:18 | 2 | file://:0:0:0:0 | tuple.0 | main.rs:111:17:111:31 | TupleExpr | +| main.rs:111:21:111:30 | source(...) | file://:0:0:0:0 | tuple.1 | main.rs:111:17:111:31 | TupleExpr | +| main.rs:114:11:114:20 | source(...) | file://:0:0:0:0 | tuple.0 | main.rs:114:5:114:5 | [post] a | +| main.rs:115:11:115:11 | 2 | file://:0:0:0:0 | tuple.1 | main.rs:115:5:115:5 | [post] a | +| main.rs:121:14:121:14 | 3 | file://:0:0:0:0 | tuple.0 | main.rs:121:13:121:27 | TupleExpr | +| main.rs:121:17:121:26 | source(...) | file://:0:0:0:0 | tuple.1 | main.rs:121:13:121:27 | TupleExpr | +| main.rs:122:14:122:14 | a | file://:0:0:0:0 | tuple.0 | main.rs:122:13:122:18 | TupleExpr | +| main.rs:122:17:122:17 | 3 | file://:0:0:0:0 | tuple.1 | main.rs:122:13:122:18 | TupleExpr | +| main.rs:137:24:137:32 | source(...) | main.rs:132:5:132:10 | Point.x | main.rs:137:13:137:40 | Point {...} | +| main.rs:137:38:137:38 | 2 | main.rs:133:5:133:10 | Point.y | main.rs:137:13:137:40 | Point {...} | +| main.rs:143:28:143:36 | source(...) | main.rs:132:5:132:10 | Point.x | main.rs:143:17:143:44 | Point {...} | +| main.rs:143:42:143:42 | 2 | main.rs:133:5:133:10 | Point.y | main.rs:143:17:143:44 | Point {...} | +| main.rs:145:11:145:20 | source(...) | main.rs:133:5:133:10 | Point.y | main.rs:145:5:145:5 | [post] p | +| main.rs:151:12:151:21 | source(...) | main.rs:132:5:132:10 | Point.x | main.rs:150:13:153:5 | Point {...} | +| main.rs:152:12:152:12 | 2 | main.rs:133:5:133:10 | Point.y | main.rs:150:13:153:5 | Point {...} | +| main.rs:166:16:169:9 | Point {...} | main.rs:160:5:160:16 | Point3D.plane | main.rs:165:13:171:5 | Point3D {...} | +| main.rs:167:16:167:16 | 2 | main.rs:132:5:132:10 | Point.x | main.rs:166:16:169:9 | Point {...} | +| main.rs:168:16:168:25 | source(...) | main.rs:133:5:133:10 | Point.y | main.rs:166:16:169:9 | Point {...} | +| main.rs:170:12:170:12 | 4 | main.rs:161:5:161:10 | Point3D.z | main.rs:165:13:171:5 | Point3D {...} | +| main.rs:180:16:180:32 | Point {...} | main.rs:160:5:160:16 | Point3D.plane | main.rs:179:13:182:5 | Point3D {...} | +| main.rs:180:27:180:27 | 2 | main.rs:132:5:132:10 | Point.x | main.rs:180:16:180:32 | Point {...} | +| main.rs:180:30:180:30 | y | main.rs:133:5:133:10 | Point.y | main.rs:180:16:180:32 | Point {...} | +| main.rs:181:12:181:12 | 4 | main.rs:161:5:161:10 | Point3D.z | main.rs:179:13:182:5 | Point3D {...} | +| main.rs:198:27:198:36 | source(...) | main.rs:195:22:195:24 | MyTupleStruct(0) | main.rs:198:13:198:40 | MyTupleStruct(...) | +| main.rs:198:39:198:39 | 2 | main.rs:195:27:195:29 | MyTupleStruct(1) | main.rs:198:13:198:40 | MyTupleStruct(...) | +| main.rs:214:27:214:36 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:214:14:214:37 | ...::Some(...) | +| main.rs:215:27:215:27 | 2 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:215:14:215:28 | ...::Some(...) | +| main.rs:227:19:227:28 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:227:14:227:29 | Some(...) | +| main.rs:228:19:228:19 | 2 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:228:14:228:20 | Some(...) | +| main.rs:240:19:240:28 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:240:14:240:29 | Some(...) | +| main.rs:245:19:245:28 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:245:14:245:29 | Some(...) | +| main.rs:248:19:248:19 | 0 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:248:14:248:20 | Some(...) | +| main.rs:253:19:253:28 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:253:14:253:29 | Some(...) | +| main.rs:261:19:261:28 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:261:14:261:29 | Some(...) | +| main.rs:262:19:262:19 | 2 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:262:14:262:20 | Some(...) | +| main.rs:266:10:266:10 | 0 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:266:5:266:11 | Some(...) | +| main.rs:270:36:270:45 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:532:8:532:54 | Ok | main.rs:270:33:270:46 | Ok(...) | +| main.rs:276:37:276:46 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:537:9:537:55 | Err | main.rs:276:33:276:47 | Err(...) | +| main.rs:284:35:284:44 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:532:8:532:54 | Ok | main.rs:284:32:284:45 | Ok(...) | +| main.rs:285:35:285:35 | 2 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:532:8:532:54 | Ok | main.rs:285:32:285:36 | Ok(...) | +| main.rs:286:36:286:45 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:537:9:537:55 | Err | main.rs:286:32:286:46 | Err(...) | +| main.rs:293:8:293:8 | 0 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:532:8:532:54 | Ok | main.rs:293:5:293:9 | Ok(...) | +| main.rs:297:35:297:44 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:532:8:532:54 | Ok | main.rs:297:32:297:45 | Ok(...) | +| main.rs:301:36:301:45 | source(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:537:9:537:55 | Err | main.rs:301:32:301:46 | Err(...) | +| main.rs:312:29:312:38 | source(...) | main.rs:307:7:307:9 | A | main.rs:312:14:312:39 | ...::A(...) | +| main.rs:313:29:313:29 | 2 | main.rs:308:7:308:9 | B | main.rs:313:14:313:30 | ...::B(...) | +| main.rs:330:16:330:25 | source(...) | main.rs:307:7:307:9 | A | main.rs:330:14:330:26 | A(...) | +| main.rs:331:16:331:16 | 2 | main.rs:308:7:308:9 | B | main.rs:331:14:331:17 | B(...) | +| main.rs:352:18:352:27 | source(...) | main.rs:346:9:346:20 | C | main.rs:351:14:353:5 | ...::C {...} | +| main.rs:354:41:354:41 | 2 | main.rs:347:9:347:20 | D | main.rs:354:14:354:43 | ...::D {...} | +| main.rs:372:18:372:27 | source(...) | main.rs:346:9:346:20 | C | main.rs:371:14:373:5 | C {...} | +| main.rs:374:27:374:27 | 2 | main.rs:347:9:347:20 | D | main.rs:374:14:374:29 | D {...} | +| main.rs:392:17:392:17 | 1 | file://:0:0:0:0 | element | main.rs:392:16:392:33 | [...] | +| main.rs:392:20:392:20 | 2 | file://:0:0:0:0 | element | main.rs:392:16:392:33 | [...] | +| main.rs:392:23:392:32 | source(...) | file://:0:0:0:0 | element | main.rs:392:16:392:33 | [...] | +| main.rs:396:17:396:26 | source(...) | file://:0:0:0:0 | element | main.rs:396:16:396:31 | [...; 10] | +| main.rs:400:17:400:17 | 1 | file://:0:0:0:0 | element | main.rs:400:16:400:24 | [...] | +| main.rs:400:20:400:20 | 2 | file://:0:0:0:0 | element | main.rs:400:16:400:24 | [...] | +| main.rs:400:23:400:23 | 3 | file://:0:0:0:0 | element | main.rs:400:16:400:24 | [...] | +| main.rs:406:17:406:17 | 1 | file://:0:0:0:0 | element | main.rs:406:16:406:33 | [...] | +| main.rs:406:20:406:20 | 2 | file://:0:0:0:0 | element | main.rs:406:16:406:33 | [...] | +| main.rs:406:23:406:32 | source(...) | file://:0:0:0:0 | element | main.rs:406:16:406:33 | [...] | +| main.rs:411:17:411:17 | 1 | file://:0:0:0:0 | element | main.rs:411:16:411:24 | [...] | +| main.rs:411:20:411:20 | 2 | file://:0:0:0:0 | element | main.rs:411:16:411:24 | [...] | +| main.rs:411:23:411:23 | 3 | file://:0:0:0:0 | element | main.rs:411:16:411:24 | [...] | +| main.rs:418:17:418:17 | 1 | file://:0:0:0:0 | element | main.rs:418:16:418:33 | [...] | +| main.rs:418:20:418:20 | 2 | file://:0:0:0:0 | element | main.rs:418:16:418:33 | [...] | +| main.rs:418:23:418:32 | source(...) | file://:0:0:0:0 | element | main.rs:418:16:418:33 | [...] | +| main.rs:429:24:429:24 | 1 | file://:0:0:0:0 | element | main.rs:429:23:429:31 | [...] | +| main.rs:429:27:429:27 | 2 | file://:0:0:0:0 | element | main.rs:429:23:429:31 | [...] | +| main.rs:429:30:429:30 | 3 | file://:0:0:0:0 | element | main.rs:429:23:429:31 | [...] | +| main.rs:432:18:432:27 | source(...) | file://:0:0:0:0 | element | main.rs:432:5:432:11 | [post] mut_arr | +| main.rs:444:41:444:67 | default_name | main.rs:441:9:441:20 | captured default_name | main.rs:444:41:444:67 | \|...\| ... | +| main.rs:479:15:479:24 | source(...) | file://:0:0:0:0 | element | main.rs:479:14:479:34 | [...] | +| main.rs:479:27:479:27 | 2 | file://:0:0:0:0 | element | main.rs:479:14:479:34 | [...] | +| main.rs:479:30:479:30 | 3 | file://:0:0:0:0 | element | main.rs:479:14:479:34 | [...] | +| main.rs:479:33:479:33 | 4 | file://:0:0:0:0 | element | main.rs:479:14:479:34 | [...] | +| main.rs:504:23:504:32 | source(...) | file://:0:0:0:0 | element | main.rs:504:22:504:42 | [...] | +| main.rs:504:35:504:35 | 2 | file://:0:0:0:0 | element | main.rs:504:22:504:42 | [...] | +| main.rs:504:38:504:38 | 3 | file://:0:0:0:0 | element | main.rs:504:22:504:42 | [...] | +| main.rs:504:41:504:41 | 4 | file://:0:0:0:0 | element | main.rs:504:22:504:42 | [...] | +| main.rs:519:18:519:18 | c | file://:0:0:0:0 | &ref | main.rs:519:17:519:18 | &c | +| main.rs:522:15:522:15 | b | file://:0:0:0:0 | &ref | main.rs:522:14:522:15 | &b | +| main.rs:545:27:545:27 | 0 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:545:22:545:28 | Some(...) | readStep -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::clone_from | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::allocator | Box(1) | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::boxed::Box(1)] in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::allocator | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[0].Field[1] in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::as_mut_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_mut_ptr | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::as_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_ptr | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::into_inner | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::into_inner | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::merge_tracking_child_edge | Left | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::btree::node::LeftOrRight::Left(0)] in lang:alloc::_::::merge_tracking_child_edge | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::visit_nodes_in_order | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:alloc::_::::visit_nodes_in_order | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from_range | Excluded | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::Bound::Excluded(0)] in lang:alloc::_::::from_range | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from_range | Included | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::Bound::Included(0)] in lang:alloc::_::::from_range | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::clone_from | BTreeSet | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone_from | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::append | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::append | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::fold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::fold | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_rfold | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:alloc::_::::try_rfold | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_fold | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:alloc::_::::try_fold | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_rfold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_rfold | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_rfold | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:alloc::_::::try_rfold | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_fold | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::try_fold | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::try_fold | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:alloc::_::::try_fold | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::allocator | Rc.alloc | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::rc::Rc::alloc] in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::downgrade | Rc.alloc | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::rc::Rc::alloc] in lang:alloc::_::::downgrade | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::downgrade | Rc.ptr | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::rc::Rc::ptr] in lang:alloc::_::::downgrade | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::unwrap_or_clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::unwrap_or_clone | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::allocator | Arc.alloc | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::Arc::alloc] in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::downgrade | Arc.alloc | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::Arc::alloc] in lang:alloc::_::::downgrade | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::downgrade | Arc.ptr | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::Arc::ptr] in lang:alloc::_::::downgrade | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::unwrap_or_clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::unwrap_or_clone | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from | BinaryHeap | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::binary_heap::BinaryHeap::data] in lang:alloc::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from | String | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::string::String::vec] in lang:alloc::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:alloc::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::::new | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::new | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::crate::collections::btree::mem::replace | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::crate::collections::btree::mem::replace | -| file://:0:0:0:0 | [summary param] 0 in lang:alloc::_::crate::collections::btree::mem::take_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::crate::collections::btree::mem::take_mut | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::<_ as crate::array::SpecArrayClone>::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::<_ as crate::array::SpecArrayClone>::clone | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::<_ as crate::clone::uninit::CopySpec>::clone_one | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::then | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::update | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::update | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::filter_map | Ref.borrow | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::cell::Ref::borrow] in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | Ref.borrow | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::cell::Ref::borrow] in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::filter_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::filter_map | RefMut.borrow | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::cell::RefMut::borrow] in lang:core::_::::filter_map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | RefMut.borrow | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::cell::RefMut::borrow] in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::then_with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::then_with | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::with_copy | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::with_copy | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from_usize | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::from_usize | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::spec_fold | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::into_inner | ManuallyDrop | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::take | ManuallyDrop | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:core::_::::take | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[0].Field[1] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::new | V4 | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::net::ip_addr::IpAddr::V4(0)] in lang:core::_::::new | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::new | V6 | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::net::ip_addr::IpAddr::V6(0)] in lang:core::_::::new | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::add | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::add | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::div_rem | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::div_rem | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::sub | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::sub | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::add | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::add | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::div_rem | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::div_rem | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::sub | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::sub | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from_residual | Break | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::from_residual | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_break | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_break | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_continue | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_continue | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Range.end | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::range::Range::end] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Range.start | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::range::Range::start] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::range::RangeFrom::start] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::and_then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::and_then | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_none_or | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_none_or | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_some_and | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_some_and | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_or_else | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::ok_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::ok_or_else | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::or_else | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::unwrap_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::unwrap_or_else | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::zip | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::into_inner | Pin | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::pin::Pin::__pointer] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::into_inner_unchecked | Pin | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::pin::Pin::__pointer] in lang:core::_::::into_inner_unchecked | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_unchecked | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_unchecked | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_unchecked_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_unchecked_mut | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Range.end | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::Range::end] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Range.start | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::Range::start] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_err_and | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_err_and | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::is_ok_and | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::is_ok_and | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_err | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_or_else | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::or_else | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::unwrap_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::unwrap_or_else | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::call | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:core::_::::call | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_err | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::map_ok | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::::map_ok | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Context.local_waker | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::task::wake::Context::local_waker] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::from | Context.waker | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::task::wake::Context::waker] in lang:core::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::clone_from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::clone_from | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::index | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::index | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::::index_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::index_mut | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::mem::copy | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::mem::copy | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::mem::replace | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::mem::replace | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::mem::take | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::mem::take | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | Big32x40.base | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::base] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::size] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::panic::abort_unwind | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:core::_::crate::panic::abort_unwind | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::ptr::read | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::ptr::read | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::ptr::read_unaligned | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::ptr::read_unaligned | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::ptr::read_volatile | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::ptr::read_volatile | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::ptr::replace | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::ptr::replace | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::slice::sort::shared::smallsort::sort4_stable | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::crate::slice::sort::shared::smallsort::sort4_stable | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::slice::sort::stable::drift::sort | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:core::_::crate::slice::sort::stable::drift::sort | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::slice::sort::stable::quicksort::quicksort | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:core::_::crate::slice::sort::stable::quicksort::quicksort | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::slice::sort::stable::sort | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:core::_::crate::slice::sort::stable::sort | -| file://:0:0:0:0 | [summary param] 0 in lang:core::_::crate::str::validations::next_code_point | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:core::_::crate::str::validations::next_code_point | -| file://:0:0:0:0 | [summary param] 0 in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:proc_macro::_::<&[u8] as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary param] 0 in lang:proc_macro::_::::decode | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:proc_macro::_::::decode | -| file://:0:0:0:0 | [summary param] 0 in lang:proc_macro::_::::decode | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:proc_macro::_::::decode | -| file://:0:0:0:0 | [summary param] 0 in lang:proc_macro::_::::decode | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in lang:proc_macro::_::::decode | -| file://:0:0:0:0 | [summary param] 0 in lang:proc_macro::_::crate::bridge::client::state::with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:proc_macro::_::crate::bridge::client::state::with | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | PathBuf | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner] in lang:std::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::advance_slices | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::advance_slices | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::clone_from | Cursor.inner | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::clone_from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::clone_from | Cursor.pos | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::clone_from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::seek | Start | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::io::SeekFrom::Start(0)] in lang:std::_::::seek | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | IntoInnerError(1) | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::io::buffered::IntoInnerError(1)] in lang:std::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[0].Field[1] in lang:std::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | PathBuf | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner] in lang:std::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from_str | PathBuf | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner] in lang:std::_::::from_str | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:std::_::::from_inner | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | SendError | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::mpsc::SendError(0)] in lang:std::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | SendError | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::mpsc::SendError(0)] in lang:std::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::wait_timeout_while | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::wait_timeout_while | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::wait_while | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::wait_while | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::downgrade | RwLockWriteGuard.lock | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock] in lang:std::_::::downgrade | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::bind | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:std::_::::bind | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::bind | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:std::_::::bind | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::connect | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:std::_::::connect | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::connect | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:std::_::::connect | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::bind | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:std::_::::bind | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::bind | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:std::_::::bind | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::connect | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in lang:std::_::::connect | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::connect | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in lang:std::_::::connect | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | AnonPipe | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sys::pal::unix::pipe::AnonPipe(0)] in lang:std::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | File | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sys::pal::unix::fs::File(0)] in lang:std::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in lang:std::_::::from | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::try_with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::try_with | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::with | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::with_borrow | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::with_borrow | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::::with_borrow_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::::with_borrow_mut | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::io::default_read_vectored | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::io::default_read_vectored | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::io::default_write_vectored | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::io::default_write_vectored | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sync::poison::mutex::guard_lock | MutexGuard.lock | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock] in lang:std::_::crate::sync::poison::mutex::guard_lock | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sync::poison::mutex::guard_poison | MutexGuard.lock | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock] in lang:std::_::crate::sync::poison::mutex::guard_poison | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sys::backtrace::__rust_begin_short_backtrace | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::sys::backtrace::__rust_begin_short_backtrace | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sys::backtrace::__rust_end_short_backtrace | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::sys::backtrace::__rust_end_short_backtrace | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::sys_common::ignore_notfound | Err | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Err(0)] in lang:std::_::crate::sys_common::ignore_notfound | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::thread::current::try_with_current | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::thread::current::try_with_current | -| file://:0:0:0:0 | [summary param] 0 in lang:std::_::crate::thread::with_current_name | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in lang:std::_::crate::thread::with_current_name | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::::count | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/BurntSushi/memchr:memchr::_::::count | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::count_byte_by_byte | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::count_byte_by_byte | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::arch::generic::memchr::fwd_byte_by_byte | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::prefix_is_substring | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::prefix_is_substring | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::suffix_is_substring | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in repo:https://github.com/BurntSushi/memchr:memchr::_::crate::tests::substring::prop::suffix_is_substring | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/actix/actix-web:actix-http::_::::with_pool | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/actix/actix-web:actix-http::_::::with_pool | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/clap-rs/clap:clap_builder::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/hyperium/hyper:hyper::_::::from | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/hyperium/hyper:hyper::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | Err | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Err(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::recv_msg | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_init | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_init | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/matklad/once_cell:once_cell::_::::clone_from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/matklad/once_cell:once_cell::_::::get_or_try_init | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rust-lang/regex:regex::_::crate::escape | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/rust-lang/regex:regex::_::crate::escape | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies_mut | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::_test | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::_test | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::_with_raw_cookies | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::and_then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::and_then | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::error_then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::error_then | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::forward_then | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::forward_then | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::ok_map_error | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::ok_map_error | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::ok_map_forward | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::ok_map_forward | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::::success_or_else | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::crate::derive::form_field::first_duplicate | element | file://:0:0:0:0 | [summary] read: Argument[0].Element in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::crate::derive::form_field::first_duplicate | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/serde-rs/serde:serde::_::crate::de::size_hint::cautious | Some | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/serde-rs/serde:serde::_::crate::de::size_hint::cautious | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/servo/rust-url:url::_::::parse | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/servo/rust-url:url::_::::parse | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio-test::_::::enter | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio-test::_::::enter | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::with | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::with | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::with | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::with_mut | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::downgrade_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_downgrade_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_map | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::from | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | Err | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | Ok | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::budget | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::budget | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::runtime_mt::exit_runtime | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::runtime_mt::exit_runtime | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::with_scheduler | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::with_scheduler | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::scheduler::block_in_place::block_in_place | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::scheduler::block_in_place::block_in_place | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::scheduler::multi_thread::worker::block_in_place | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::scheduler::multi_thread::worker::block_in_place | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::blocking::block_in_place | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::blocking::block_in_place | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::budget | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::budget | -| file://:0:0:0:0 | [summary param] 0 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::with_unconstrained | function return | file://:0:0:0:0 | [summary] read: Argument[0].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::task::coop::with_unconstrained | -| file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::::from_contiguous_raw_parts_in | Range.start | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::ops::range::Range::start] in lang:alloc::_::::from_contiguous_raw_parts_in | -| file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::crate::collections::btree::mem::replace | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::crate::collections::btree::mem::replace | -| file://:0:0:0:0 | [summary param] 1 in lang:alloc::_::crate::collections::btree::mem::take_mut | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:alloc::_::crate::collections::btree::mem::take_mut | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::new_unchecked | Range.end | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::ops::range::Range::end] in lang:core::_::::new_unchecked | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::new_unchecked | Range.start | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::ops::range::Range::start] in lang:core::_::::new_unchecked | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::try_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::try_rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::spec_rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::spec_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::spec_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::rfold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::rfold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::spec_fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::map_or | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::map_or | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::map_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::map_or_else | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::zip_with | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::zip_with | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::map_or | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::map_or | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::map_or_else | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::map_or_else | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::crate::array::drain::drain_array_with | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::crate::array::drain::drain_array_with | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::crate::slice::index::range | RangeTo | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::ops::range::RangeTo::end] in lang:core::_::crate::slice::index::range | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::crate::slice::index::try_range | RangeTo | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::ops::range::RangeTo::end] in lang:core::_::crate::slice::index::try_range | -| file://:0:0:0:0 | [summary param] 1 in lang:core::_::crate::slice::sort::shared::find_existing_run | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:core::_::crate::slice::sort::shared::find_existing_run | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | HandleStore.FreeFunctions | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | HandleStore.SourceFile | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | HandleStore.TokenStream | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | HandleStore.FreeFunctions | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | HandleStore.SourceFile | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | HandleStore.TokenStream | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new | TokenStream | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::TokenStream(0)] in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[1].Field[0] in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new | Span | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::Span(0)] in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[1].Field[0] in lang:proc_macro::_::::new | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new_raw | Span | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::Span(0)] in lang:proc_macro::_::::new_raw | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::::new_raw | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[1].Field[0] in lang:proc_macro::_::::new_raw | -| file://:0:0:0:0 | [summary param] 1 in lang:proc_macro::_::crate::bridge::client::state::set | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:proc_macro::_::crate::bridge::client::state::set | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::::fold | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::::fold | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::crate::io::append_to_string | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::crate::io::append_to_string | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::crate::sys::pal::common::small_c_string::run_path_with_cstr | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::crate::sys::pal::common::small_c_string::run_path_with_cstr | -| file://:0:0:0:0 | [summary param] 1 in lang:std::_::crate::sys::pal::common::small_c_string::run_with_cstr | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in lang:std::_::crate::sys::pal::common::small_c_string::run_with_cstr | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/clap-rs/clap:clap_builder::_::::unwrap | Ok | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::result::Result::Ok(0)] in repo:https://github.com/clap-rs/clap:clap_builder::_::::unwrap | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_bound | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_bound | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_self_bound | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_self_bound | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates_from_fields | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates_from_fields | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates_from_variants | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/serde-rs/serde:serde_derive::_::crate::bound::with_where_predicates_from_variants | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::finalize | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::finalize | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::finalize | &ref | file://:0:0:0:0 | [summary] read: Argument[1].Reference in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::finalize | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io_mut | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io_mut | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::::set | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::set | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::try_io | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::::sync_scope | function return | file://:0:0:0:0 | [summary] read: Argument[1].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::::sync_scope | -| file://:0:0:0:0 | [summary param] 1 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | Ok | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::result::Result::Ok(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::finish_string_read | -| file://:0:0:0:0 | [summary param] 2 in lang:proc_macro::_::::run_bridge_and_client | function return | file://:0:0:0:0 | [summary] read: Argument[2].ReturnValue in lang:proc_macro::_::::run_bridge_and_client | -| file://:0:0:0:0 | [summary param] 2 in lang:proc_macro::_::::run_bridge_and_client | function return | file://:0:0:0:0 | [summary] read: Argument[2].ReturnValue in lang:proc_macro::_::::run_bridge_and_client | -| file://:0:0:0:0 | [summary param] 2 in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | Err | file://:0:0:0:0 | [summary] read: Argument[2].Field[crate::result::Result::Err(0)] in repo:https://github.com/tokio-rs/tokio:tokio-stream::_::::extend | -| file://:0:0:0:0 | [summary param] 2 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_to_end::read_to_end_internal | &ref | file://:0:0:0:0 | [summary] read: Argument[2].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_to_end::read_to_end_internal | -| file://:0:0:0:0 | [summary param] 2 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::runtime::enter_runtime | function return | file://:0:0:0:0 | [summary] read: Argument[2].ReturnValue in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::runtime::context::runtime::enter_runtime | -| file://:0:0:0:0 | [summary param] 4 in lang:core::_::crate::num::flt2dec::to_exact_fixed_str | element | file://:0:0:0:0 | [summary] read: Argument[4].Element in lang:core::_::crate::num::flt2dec::to_exact_fixed_str | -| file://:0:0:0:0 | [summary param] 4 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::read_line_internal | &ref | file://:0:0:0:0 | [summary] read: Argument[4].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_line::read_line_internal | -| file://:0:0:0:0 | [summary param] 4 in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_until::read_until_internal | &ref | file://:0:0:0:0 | [summary] read: Argument[4].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::crate::io::util::read_until::read_until_internal | -| file://:0:0:0:0 | [summary param] 5 in lang:core::_::crate::num::flt2dec::to_exact_exp_str | element | file://:0:0:0:0 | [summary] read: Argument[5].Element in lang:core::_::crate::num::flt2dec::to_exact_exp_str | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::<_ as crate::borrow::ToOwned>::clone_into | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<_ as crate::borrow::ToOwned>::clone_into | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::<_ as crate::borrow::ToOwned>::to_owned | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<_ as crate::borrow::ToOwned>::to_owned | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_owned | Owned | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::borrow::Cow::Owned(0)] in lang:alloc::_::::into_owned | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::to_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::to_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::as_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::index_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_bytes | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::as_bytes | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::kind | TryReserveError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::TryReserveError::kind] in lang:alloc::_::::kind | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | BinaryHeap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::BinaryHeap::data] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_into_iter | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::IntoIter::iter] in lang:alloc::_::::as_into_iter | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::Iter::iter] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | BTreeMap.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::extract_if_inner | BTreeMap.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::extract_if_inner | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | BTreeMap.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::length] in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter_mut | BTreeMap.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::length] in lang:alloc::_::::iter_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | BTreeMap.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::length] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::split_off | BTreeMap.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::split_off | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::peek_next | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_next | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::peek_prev | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_prev | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::prev | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::prev | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::with_mutable_key | CursorMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMut::inner] in lang:alloc::_::::with_mutable_key | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next | CursorMutKey.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::prev | CursorMutKey.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::prev | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next | ExtractIfInner.cur_leaf_edge | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | ExtractIfInner.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::length] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | IntoIter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IntoIter::length] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | IntoIter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IntoIter::length] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | IntoIter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IntoIter::length] in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | Iter.range | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::range] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | IterMut.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | IterMut.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | IterMut.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | Keys | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | Keys | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | Range | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Range::inner] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | Values | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | Values | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | ValuesMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | ValuesMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::Entry::Occupied(0)] in lang:alloc::_::::and_modify | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::Entry::Vacant(0)] in lang:alloc::_::::and_modify | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::insert_entry | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::Entry::Occupied(0)] in lang:alloc::_::::insert_entry | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::insert_entry | VacantEntry.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::alloc] in lang:alloc::_::::insert_entry | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::insert_entry | VacantEntry.dormant_map | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::dormant_map] in lang:alloc::_::::insert_entry | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_key | VacantEntry.key | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::key] in lang:alloc::_::::into_key | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::key | VacantEntry.key | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::entry::VacantEntry::key] in lang:alloc::_::::key | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::nexts | MergeIterInner.a | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::a] in lang:alloc::_::::nexts | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::nexts | MergeIterInner.b | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::b] in lang:alloc::_::::nexts | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | Edge | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Edge(0)] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | Root | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Root(0)] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_left_child | BalancingContext.left_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child] in lang:alloc::_::::into_left_child | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_right_child | BalancingContext.right_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::right_child] in lang:alloc::_::::into_right_child | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::merge_tracking_child | BalancingContext.left_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child] in lang:alloc::_::::merge_tracking_child | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::merge_tracking_child_edge | BalancingContext.left_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child] in lang:alloc::_::::merge_tracking_child_edge | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::merge_tracking_parent | BalancingContext.parent | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::parent] in lang:alloc::_::::merge_tracking_parent | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::steal_left | BalancingContext.right_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::right_child] in lang:alloc::_::::steal_left | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::steal_right | BalancingContext.left_child | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::left_child] in lang:alloc::_::::steal_right | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::awaken | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::awaken | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cast_to_leaf_unchecked | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::cast_to_leaf_unchecked | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::dormant | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::dormant | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::force | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::force | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::forget_node_type | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::forget_node_type | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::idx | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::idx | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_node | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::into_node | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::left_edge | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::left_edge | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::left_edge | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::left_edge | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::left_kv | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::left_kv | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::reborrow | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::reborrow | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::reborrow_mut | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::reborrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::right_edge | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::right_edge | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::right_kv | Handle.idx | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::idx] in lang:alloc::_::::right_kv | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::right_kv | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::right_kv | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::split | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::split | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::awaken | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::awaken | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::awaken | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::awaken | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_valmut | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::borrow_valmut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_valmut | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::borrow_valmut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cast_to_leaf_unchecked | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::cast_to_leaf_unchecked | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cast_to_leaf_unchecked | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::cast_to_leaf_unchecked | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::dormant | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::dormant | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::dormant | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::dormant | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::forget_type | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::forget_type | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::forget_type | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::forget_type | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::height | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::height | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_dying | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::into_dying | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_dying | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::into_dying | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::push_internal_level | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::push_internal_level | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::push_internal_level | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::push_internal_level | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::push_with_handle | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::push_with_handle | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::push_with_handle | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::push_with_handle | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::reborrow | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::reborrow | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::forget_node_type | SplitResult.kv | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::SplitResult::kv] in lang:alloc::_::::forget_node_type | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | BTreeSet | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::with_mutable_key | CursorMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::CursorMut::inner] in lang:alloc::_::::with_mutable_key | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::insert | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::entry::Entry::Occupied(0)] in lang:alloc::_::::insert | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_list | Cursor.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::as_list | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index | Cursor.index | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::index] in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::move_next | Cursor.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::move_next | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::move_prev | Cursor.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::move_prev | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_cursor | CursorMut.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::as_cursor | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_cursor | CursorMut.index | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::index] in lang:alloc::_::::as_cursor | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_cursor | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::as_cursor | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_list | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::as_list | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index | CursorMut.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::index | CursorMut.index | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::index] in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::insert_after | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::insert_after | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::move_next | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::move_next | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::move_prev | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::move_prev | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::remove_current | CursorMut.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::remove_current_as_list | CursorMut.current | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current_as_list | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::remove_current_as_list | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::remove_current_as_list | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::splice_after | CursorMut.list | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::splice_after | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::IntoIter::list] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | Iter.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Iter::len] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | IterMut.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::IterMut::len] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cursor_back | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::cursor_back | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cursor_back_mut | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::cursor_back_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cursor_front | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::cursor_front | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::cursor_front_mut | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::cursor_front_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::extract_if | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::extract_if | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::extract_if | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::extract_if | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::iter | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter_mut | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::iter_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter_mut | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::iter_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::iter_mut | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::iter_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | VecDeque.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::VecDeque::len] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::retain_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::retain_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::size_hint | Drain.remaining | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::drain::Drain::remaining] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::count | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::into_iter::IntoIter::inner] in lang:alloc::_::::count | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_vecdeque | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::into_iter::IntoIter::inner] in lang:alloc::_::::into_vecdeque | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next | Iter.i1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::iter::Iter::i1] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_bytes_with_nul | CString | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::CString::inner] in lang:alloc::_::::as_bytes_with_nul | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_c_str | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_c_str | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_bytes | FromVecWithNulError.bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::FromVecWithNulError::bytes] in lang:alloc::_::::as_bytes | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_bytes | FromVecWithNulError.bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::FromVecWithNulError::bytes] in lang:alloc::_::::into_bytes | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::source | IntoStringError.error | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::IntoStringError::error] in lang:alloc::_::::source | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_cstring | IntoStringError.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::IntoStringError::inner] in lang:alloc::_::::into_cstring | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::utf8_error | IntoStringError.error | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::IntoStringError::error] in lang:alloc::_::::utf8_error | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_vec | NulError(1) | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::NulError(1)] in lang:alloc::_::::into_vec | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_vec | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in lang:alloc::_::::into_vec | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::nul_position | NulError(0) | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::NulError(0)] in lang:alloc::_::::nul_position | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::nul_position | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::nul_position | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::strong_ref | RcInner.strong | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::RcInner::strong] in lang:alloc::_::::strong_ref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::weak_ref | RcInner.weak | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::RcInner::weak] in lang:alloc::_::::weak_ref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::allocator | Weak.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::Weak::alloc] in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::upgrade | Weak.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::Weak::alloc] in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::upgrade | Weak.ptr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::Weak::ptr] in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::strong_ref | WeakInner.strong | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::WeakInner::strong] in lang:alloc::_::::strong_ref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::weak_ref | WeakInner.weak | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::WeakInner::weak] in lang:alloc::_::::weak_ref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_bytes | FromUtf8Error.bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::FromUtf8Error::bytes] in lang:alloc::_::::as_bytes | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_bytes | FromUtf8Error.bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::FromUtf8Error::bytes] in lang:alloc::_::::into_bytes | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::utf8_error | FromUtf8Error.error | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::FromUtf8Error::error] in lang:alloc::_::::utf8_error | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::clone | String | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::String::vec] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_mut_vec | String | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::String::vec] in lang:alloc::_::::as_mut_vec | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::into_bytes | String | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::String::vec] in lang:alloc::_::::into_bytes | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::allocator | Weak.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::Weak::alloc] in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::upgrade | Weak.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::Weak::alloc] in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::upgrade | Weak.ptr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::Weak::ptr] in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::borrow_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::len | Vec.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::Vec::len] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::next_back | IntoIter.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::into_iter::IntoIter::end] in lang:alloc::_::::next_back | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::allocator | IntoIter.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::into_iter::IntoIter::alloc] in lang:alloc::_::::allocator | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::forget_allocation_drop_remaining | IntoIter.buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::into_iter::IntoIter::buf] in lang:alloc::_::::forget_allocation_drop_remaining | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::drop | SetLenOnDrop.local_len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::local_len] in lang:alloc::_::::drop | -| file://:0:0:0:0 | [summary param] self in lang:alloc::_::::current_len | SetLenOnDrop.local_len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::set_len_on_drop::SetLenOnDrop::local_len] in lang:alloc::_::::current_len | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&_ as crate::clone::Clone>::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&_ as crate::clone::Clone>::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&_ as crate::ops::deref::Deref>::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&_ as crate::ops::deref::Deref>::deref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitAnd>::bitand | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitAnd>::bitand | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitOr>::bitor | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitOr>::bitor | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitAnd>::bitand | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitAnd>::bitand | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitOr>::bitor | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitOr>::bitor | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&mut _ as crate::ops::deref::Deref>::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::ops::deref::Deref>::deref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<&mut _ as crate::ops::deref::DerefMut>::deref_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::ops::deref::DerefMut>::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::<_ as crate::str::pattern::MultiCharEq>::matches | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<_ as crate::str::pattern::MultiCharEq>::matches | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_utf8_pattern | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_utf8_pattern | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::to_ascii_lowercase | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::to_ascii_lowercase | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::to_ascii_uppercase | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::to_ascii_uppercase | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::align_to | Layout.align | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::alloc::layout::Layout::align] in lang:core::_::::align_to | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::align_to | Layout.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::alloc::layout::Layout::size] in lang:core::_::::align_to | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::extend_packed | Layout.align | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::alloc::layout::Layout::align] in lang:core::_::::extend_packed | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::repeat_packed | Layout.align | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::alloc::layout::Layout::align] in lang:core::_::::repeat_packed | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::size | Layout.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::alloc::layout::Layout::size] in lang:core::_::::size | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::try_capture | Wrapper | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::asserting::Wrapper(0)] in lang:core::_::::try_capture | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::try_capture | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::try_capture | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::borrow | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::borrow | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::borrow_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::borrow_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::index | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::index_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_bytes | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::as_bytes | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | BorrowRef | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::BorrowRef::borrow] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | Cell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::Cell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | RefCell.value | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::RefCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | SyncUnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_mut | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::UnsafeCell::value] in lang:core::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | OnceCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::once::OnceCell::inner] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | EscapeDebug | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::EscapeDebug(0)] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | DecodeUtf16.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::decode::DecodeUtf16::iter] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unpaired_surrogate | DecodeUtf16Error | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::decode::DecodeUtf16Error::code] in lang:core::_::::unpaired_surrogate | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Source | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::error::Source::current] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | VaList.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::va_list::VaList::inner] in lang:core::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | VaList.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::va_list::VaList::inner] in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_str | Arguments.pieces | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Arguments::pieces] in lang:core::_::::as_str | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::align | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::align | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::fill | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::fill | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::flags | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::flags | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::options | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::options | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::padding | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::padding | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::precision | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::precision | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::width | Formatter.options | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::width | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::with_options | Formatter.buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::buf] in lang:core::_::::with_options | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_align | FormattingOptions.align | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::FormattingOptions::align] in lang:core::_::::get_align | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_fill | FormattingOptions.fill | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::FormattingOptions::fill] in lang:core::_::::get_fill | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_flags | FormattingOptions.flags | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::FormattingOptions::flags] in lang:core::_::::get_flags | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_precision | FormattingOptions.precision | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::FormattingOptions::precision] in lang:core::_::::get_precision | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_width | FormattingOptions.width | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::FormattingOptions::width] in lang:core::_::::get_width | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | DebugList | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugList::inner] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::entry | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::entry | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish_non_exhaustive | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::key | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::key_with | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key_with | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::value | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::value_with | DebugMap.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value_with | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | DebugSet | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish_non_exhaustive | DebugSet | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::field | DebugStruct.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::field_with | DebugStruct.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field_with | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | DebugStruct.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish_non_exhaustive | DebugStruct.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::field | DebugTuple.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::field_with | DebugTuple.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field_with | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | DebugTuple.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish_non_exhaustive | DebugTuple.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_usize | Argument | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::rt::Argument::ty] in lang:core::_::::as_usize | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_output | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::take_output | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | Ready | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::future::ready::Ready(0)] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::init_len | BorrowedBuf.init | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::init_len | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::len | BorrowedBuf.filled | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::filled] in lang:core::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::set_init | BorrowedBuf.init | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::set_init | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unfilled | BorrowedBuf.filled | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedBuf::filled] in lang:core::_::::unfilled | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::reborrow | BorrowedCursor.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedCursor::start] in lang:core::_::::reborrow | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::set_init | BorrowedCursor.buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedCursor::buf] in lang:core::_::::set_init | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_remainder | ArrayChunks.remainder | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::array_chunks::ArrayChunks::remainder] in lang:core::_::::into_remainder | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_unchecked | Cloned | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cloned::Cloned::it] in lang:core::_::::next_unchecked | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::advance_by | Cycle.orig | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig] in lang:core::_::::advance_by | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::try_fold | Cycle.orig | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig] in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Enumerate.count | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::count] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Enumerate.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Enumerate.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | FlatMap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_parts | FlatMap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::into_parts | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Flatten | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::Flatten::inner] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | Fuse | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::fuse::Fuse::iter] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Intersperse.separator | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::intersperse::Intersperse::separator] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | Map.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::map::Map::iter] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | MapWhile.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::map_while::MapWhile::iter] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Buffer.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::map_windows::Buffer::start] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | Peekable.peeked | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::last | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Peekable.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Peekable.peeked | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Peekable.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Peekable.peeked | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | Rev | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | Rev | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Scan.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::scan::Scan::iter] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | Skip.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::last | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Skip.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Skip.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_fold | StepBy.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_next | StepBy.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_nth | StepBy.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_try_fold | StepBy.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_try_fold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::len | Take.n | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::n] in lang:core::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Take.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Take.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::size_hint | Take.n | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::n] in lang:core::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | TakeWhile.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take_while::TakeWhile::iter] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | Repeat | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | Repeat | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Repeat | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Repeat | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RepeatN.count | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat_n::RepeatN::count] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::len | RepeatN.count | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat_n::RepeatN::count] in lang:core::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | ManuallyDrop | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:core::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | ManuallyDrop | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::mem::manually_drop::ManuallyDrop::value] in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::to_canonical | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::to_canonical | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_octets | Ipv4Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::as_octets | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::octets | Ipv4Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::octets | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::to_ipv6_compatible | Ipv4Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::to_ipv6_compatible | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::to_ipv6_mapped | Ipv4Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::to_ipv6_mapped | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_octets | Ipv6Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::as_octets | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::octets | Ipv6Addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv6Addr::octets] in lang:core::_::::octets | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::to_canonical | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::to_canonical | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::ip | SocketAddrV4.ip | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV4::ip] in lang:core::_::::ip | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::port | SocketAddrV4.port | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV4::port] in lang:core::_::::port | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::flowinfo | SocketAddrV6.flowinfo | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::flowinfo] in lang:core::_::::flowinfo | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::ip | SocketAddrV6.ip | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::ip] in lang:core::_::::ip | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::port | SocketAddrV6.port | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::port] in lang:core::_::::port | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::scope_id | SocketAddrV6.scope_id | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::socket_addr::SocketAddrV6::scope_id] in lang:core::_::::scope_id | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Big32x40.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::add | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::add | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::digits | Big32x40.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base] in lang:core::_::::digits | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::mul_pow2 | Big32x40.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base] in lang:core::_::::mul_pow2 | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::mul_small | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::mul_small | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::sub | Big32x40.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::size] in lang:core::_::::sub | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Big8x3.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::add | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::add | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::digits | Big8x3.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::digits | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::mul_pow2 | Big8x3.base | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::mul_pow2 | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::mul_small | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::mul_small | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::sub | Big8x3.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::size] in lang:core::_::::sub | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::normalize | Fp.e | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::diy_float::Fp::e] in lang:core::_::::normalize | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::normalize | Fp.f | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::diy_float::Fp::f] in lang:core::_::::normalize | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::kind | ParseIntError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::error::ParseIntError::kind] in lang:core::_::::kind | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::len | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::write | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::write | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Continue | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::break_value | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::break_value | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::continue_value | Continue | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::continue_value | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_try | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::into_try | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_value | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::into_value | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_value | Continue | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::into_value | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_break | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::map_break | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_break | Continue | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::map_break | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_continue | Break | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Break(0)] in lang:core::_::::map_continue | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_continue | Continue | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::control_flow::ControlFlow::Continue(0)] in lang:core::_::::map_continue | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | IndexRange.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::end | IndexRange.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::end | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::start | IndexRange.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::start | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_prefix | IndexRange.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::take_prefix | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_prefix | IndexRange.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::take_prefix | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_suffix | IndexRange.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::end] in lang:core::_::::take_suffix | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_suffix | IndexRange.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::index_range::IndexRange::start] in lang:core::_::::take_suffix | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map | Excluded | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map | Included | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_next | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::spec_next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_next_back | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_next_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_nth | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_nth_back | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_nth_back | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::spec_nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::start] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::bound | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_next | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_next_back | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::spec_next_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_try_fold | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_fold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_try_rfold | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::spec_try_rfold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::spec_try_rfold | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_rfold | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::end | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::end | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::start | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::start | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeTo | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeTo::end] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::bound | RangeTo | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeTo::end] in lang:core::_::::bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | RangeTo | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeTo::end] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeToInclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeToInclusive::end] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::bound | RangeToInclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeToInclusive::end] in lang:core::_::::bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | RangeToInclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeToInclusive::end] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | NeverShortCircuit | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::try_trait::NeverShortCircuit(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | Item | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Item::opt] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Iter::inner] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::and_then | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::cloned | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::cloned | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::copied | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::copied | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::expect | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::expect | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::flatten | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::flatten | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_or_insert | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::get_or_insert | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_or_insert_default | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::get_or_insert_default | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_or_insert_with | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::get_or_insert_with | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::insert | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::insert | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::is_none_or | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_none_or | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::is_some_and | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::is_some_and | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_or | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map_or | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_or_else | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::map_or_else | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::ok_or | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::ok_or | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::ok_or_else | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::ok_or_else | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::replace | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::replace | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::take | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::take | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::take_if | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::take_if | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unwrap | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unwrap_or | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or_default | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unwrap_or_default | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or_else | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unwrap_or_else | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_unchecked | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unwrap_unchecked | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unzip | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::zip | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::zip | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::zip_with | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::zip_with | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::column | Location.col | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::location::Location::col] in lang:core::_::::column | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::file | Location.file | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::location::Location::file] in lang:core::_::::file | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::line | Location.line | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::location::Location::line] in lang:core::_::::line | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::can_unwind | PanicInfo.can_unwind | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::panic_info::PanicInfo::can_unwind] in lang:core::_::::can_unwind | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::force_no_backtrace | PanicInfo.force_no_backtrace | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::panic_info::PanicInfo::force_no_backtrace] in lang:core::_::::force_no_backtrace | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::location | PanicInfo.location | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::panic_info::PanicInfo::location] in lang:core::_::::location | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::message | PanicInfo.message | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::panic_info::PanicInfo::message] in lang:core::_::::message | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | AssertUnwindSafe | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::unwind_safe::AssertUnwindSafe(0)] in lang:core::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | AssertUnwindSafe | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::unwind_safe::AssertUnwindSafe(0)] in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::deref_mut | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_mut | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_ref | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_mut | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_ref | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::get_ref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_unchecked_mut | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::get_unchecked_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_ref | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::into_ref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_unchecked | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_unchecked_mut | Pin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_non_null_ptr | Unique.pointer | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ptr::unique::Unique::pointer] in lang:core::_::::as_non_null_ptr | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::Range::end] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::Range::start] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | Range.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::Range::end] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::Range::start] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeFrom::start] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeFrom::start] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeInclusive::end] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_bounds | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeInclusive::start] in lang:core::_::::into_bounds | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::end_bound | RangeInclusive.end | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeInclusive::end] in lang:core::_::::end_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::start_bound | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeInclusive::start] in lang:core::_::::start_bound | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_slice_range | RangeInclusive.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::RangeInclusive::start] in lang:core::_::::into_slice_range | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | IterRange | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRange(0)] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | IterRangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::remainder | IterRangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)] in lang:core::_::::remainder | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::remainder | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::remainder | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | IterRangeInclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeInclusive(0)] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | IntoIter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | IterMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | IterMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::and | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::and | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::and_then | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::and_then | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::and_then | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::and_then | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_deref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_deref_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::cloned | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::cloned | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::cloned | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::cloned | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::copied | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::copied | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::copied | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::copied | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::err | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::err | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::expect | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::expect | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::expect_err | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::expect_err | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::flatten | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::flatten | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::flatten | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::flatten | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_err | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::into_err | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_ok | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::into_ok | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::is_err_and | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::is_err_and | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::is_ok_and | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::is_ok_and | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_err | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_err | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_or | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_or | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_or_else | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::map_or_else | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_or_else | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_or_else | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::ok | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::ok | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::or | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::or | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::or_else | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::or_else | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::or_else | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::or_else | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::transpose | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::transpose | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::unwrap | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_err | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::unwrap_err | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_err_unchecked | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::unwrap_err_unchecked | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::unwrap_or | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or_default | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::unwrap_or_default | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or_else | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::unwrap_or_else | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_or_else | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::unwrap_or_else | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::unwrap_unchecked | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::unwrap_unchecked | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | ArrayChunks.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | ArrayChunks.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::remainder | ArrayChunks.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::rem] in lang:core::_::::remainder | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_remainder | ArrayChunksMut.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunksMut::rem] in lang:core::_::::into_remainder | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::count | ArrayWindows.num | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayWindows::num] in lang:core::_::::count | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::last | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::size_hint | ArrayWindows.num | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayWindows::num] in lang:core::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Chunks.chunk_size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::chunk_size] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Chunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | Chunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | Chunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::last | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Chunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | ChunksExact.chunk_size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::chunk_size] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | ChunksExact.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::rem] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | ChunksExact.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | ChunksExact.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::remainder | ChunksExact.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::rem] in lang:core::_::::remainder | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_remainder | ChunksExactMut.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExactMut::rem] in lang:core::_::::into_remainder | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | GenericSplitN.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::size_hint | GenericSplitN.count | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::GenericSplitN::count] in lang:core::_::::size_hint | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Iter._marker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Iter::_marker] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Iter.end_or_len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Iter::end_or_len] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Iter.ptr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Iter::ptr] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::collect | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::collect | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::for_each | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::for_each | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RChunks.chunk_size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::chunk_size] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RChunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | RChunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | RChunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::last | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | RChunks.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RChunksExact.chunk_size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::chunk_size] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RChunksExact.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::rem] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RChunksExact.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | RChunksExact.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::remainder | RChunksExact.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::rem] in lang:core::_::::remainder | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_remainder | RChunksExactMut.rem | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExactMut::rem] in lang:core::_::::into_remainder | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | RSplit | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RSplit::inner] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | Split.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Split::v] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_slice | Split.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Split::v] in lang:core::_::::as_slice | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | SplitInclusive.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | SplitInclusive.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::finish | SplitMut.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitMut::v] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Windows.size | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::size] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_back | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth_back | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::last | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::last | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Windows.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::valid_up_to | Utf8Error.valid_up_to | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::error::Utf8Error::valid_up_to] in lang:core::_::::valid_up_to | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | Bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::Bytes(0)] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::nth | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | CharIndices.front_offset | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::CharIndices::front_offset] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::offset | CharIndices.front_offset | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::CharIndices::front_offset] in lang:core::_::::offset | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next | EncodeUtf16.extra | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::EncodeUtf16::extra] in lang:core::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | SplitInternal.matcher | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitInternal::matcher] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | SplitNInternal.iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitNInternal::iter] in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::invalid | Utf8Chunk.invalid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::lossy::Utf8Chunk::invalid] in lang:core::_::::invalid | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::valid | Utf8Chunk.valid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::lossy::Utf8Chunk::valid] in lang:core::_::::valid | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::debug | Utf8Chunks | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::lossy::Utf8Chunks::source] in lang:core::_::::debug | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_match_back | CharSearcher.finger | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::CharSearcher::finger] in lang:core::_::::next_match_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_match_back | CharSearcher.finger_back | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::CharSearcher::finger_back] in lang:core::_::::next_match_back | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::haystack | CharSearcher.haystack | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::CharSearcher::haystack] in lang:core::_::::haystack | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_match | CharSearcher.finger | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::CharSearcher::finger] in lang:core::_::::next_match | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::next_match | CharSearcher.finger_back | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::CharSearcher::finger_back] in lang:core::_::::next_match | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_searcher | MultiCharEqPattern | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::MultiCharEqPattern(0)] in lang:core::_::::into_searcher | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_searcher | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::into_searcher | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::haystack | MultiCharEqSearcher.haystack | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::MultiCharEqSearcher::haystack] in lang:core::_::::haystack | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::haystack | StrSearcher.haystack | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::pattern::StrSearcher::haystack] in lang:core::_::::haystack | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicI8 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI8::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicI16 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI16::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicI32 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI32::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicI64 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI64::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicI128 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI128::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicIsize | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicIsize::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicPtr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicPtr::p] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicU8 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU8::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicU16 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU16::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicU32 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU32::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicU64 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU64::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicU128 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU128::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | AtomicUsize | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicUsize::v] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::get_mut | Exclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::exclusive::Exclusive::inner] in lang:core::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::into_inner | Exclusive | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::exclusive::Exclusive::inner] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::branch | Ready | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map | Ready | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_err | Ready | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::map_ok | Ready | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::local_waker | Context.local_waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Context::local_waker] in lang:core::_::::local_waker | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::waker | Context.waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Context::waker] in lang:core::_::::waker | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::build | ContextBuilder.ext | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::ContextBuilder::ext] in lang:core::_::::build | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::build | ContextBuilder.local_waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::ContextBuilder::local_waker] in lang:core::_::::build | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::build | ContextBuilder.waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::ContextBuilder::waker] in lang:core::_::::build | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::data | LocalWaker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::data | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::vtable | LocalWaker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::vtable | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::data | Waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker] in lang:core::_::::data | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::vtable | Waker | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker] in lang:core::_::::vtable | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::as_secs | Duration.secs | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::time::Duration::secs] in lang:core::_::::as_secs | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::collect | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::collect | -| file://:0:0:0:0 | [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::for_each | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::for_each | -| file://:0:0:0:0 | [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::map | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::map | -| file://:0:0:0:0 | [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::next | -| file://:0:0:0:0 | [summary param] self in lang:core::_::crate::iter::traits::iterator::Iterator::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:core::_::crate::iter::traits::iterator::Iterator::nth | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::Unmark>::unmark | Marked.value | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::Marked::value] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::Unmark>::unmark | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::Unmark>::unmark | Marked.value | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::Marked::value] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::Unmark>::unmark | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::delimiter | Group | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)] in lang:proc_macro::_::::delimiter | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::delimiter | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::delimiter | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::stream | Group | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)] in lang:proc_macro::_::::stream | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::stream | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::stream | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | Ident | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Ident(0)] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | Literal | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Literal(0)] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | Punct | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Punct(0)] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::span | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::unmark | Marked.value | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::Marked::value] in lang:proc_macro::_::::unmark | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::take | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::take | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::name | Attr.name | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::client::ProcMacro::Attr::name] in lang:proc_macro::_::::name | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::name | Bang.name | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::client::ProcMacro::Bang::name] in lang:proc_macro::_::::name | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::name | CustomDerive.trait_name | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::client::ProcMacro::CustomDerive::trait_name] in lang:proc_macro::_::::name | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:proc_macro::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::copy | InternedStore.owned | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::handle::InternedStore::owned] in lang:proc_macro::_::::copy | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::as_str | StaticStr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::rpc::PanicMessage::StaticStr(0)] in lang:proc_macro::_::::as_str | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::as_str | String | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::rpc::PanicMessage::String(0)] in lang:proc_macro::_::::as_str | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::next | Children | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Children(0)] in lang:proc_macro::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::next | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::level | Diagnostic.level | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Diagnostic::level] in lang:proc_macro::_::::level | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::message | Diagnostic.message | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Diagnostic::message] in lang:proc_macro::_::::message | -| file://:0:0:0:0 | [summary param] self in lang:proc_macro::_::::spans | Diagnostic.spans | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Diagnostic::spans] in lang:proc_macro::_::::spans | -| file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::BufRead>::consume | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::BufRead>::consume | -| file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::<&[u8] as crate::io::BufRead>::fill_buf | -| file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_buf_exact | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::Read>::read_buf_exact | -| file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_exact | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::Read>::read_exact | -| file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::Read>::read_to_end | -| file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::Read>::read_to_string | -| file://:0:0:0:0 | [summary param] self in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Entry::Occupied(0)] in lang:std::_::::and_modify | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Entry::Vacant(0)] in lang:std::_::::and_modify | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::insert_entry | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Entry::Occupied(0)] in lang:std::_::::insert_entry | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | HashMap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::HashMap::base] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Iter::base] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::and_modify | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::RawEntryMut::Occupied(0)] in lang:std::_::::and_modify | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::and_modify | Vacant | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::RawEntryMut::Vacant(0)] in lang:std::_::::and_modify | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::insert | Occupied | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Entry::Occupied(0)] in lang:std::_::::insert | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | HashSet | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::HashSet::base] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | Iter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Iter::base] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | SymmetricDifference | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::SymmetricDifference::iter] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | Union | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Union::iter] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | OsStr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsStr::inner] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_encoded_bytes | OsStr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsStr::inner] in lang:std::_::::as_encoded_bytes | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::borrow | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::::borrow | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::deref | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::deref_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in lang:std::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_vec | OsString | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::into_vec | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | OsString | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_encoded_bytes | OsString | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::into_encoded_bytes | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | DirBuilder.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::DirBuilder::inner] in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | DirEntry | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::DirEntry(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | File | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::File::inner] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | File | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::File::inner] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | FileTimes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::FileTimes(0)] in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | FileType | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::FileType(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Metadata | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::Metadata(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | OpenOptions | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::OpenOptions(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | OpenOptions | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::OpenOptions(0)] in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Permissions | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fs::Permissions(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | Chain.first | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::first] in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | Chain.second | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::second] in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | Chain.first | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::first] in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | Chain.second | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::second] in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Chain.first | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::first] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Chain.second | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Chain::second] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | Take.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Take::inner] in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | Take.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Take::inner] in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Take.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Take::inner] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::limit | Take.limit | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::Take::limit] in lang:std::_::::limit | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::error | IntoInnerError(1) | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::IntoInnerError(1)] in lang:std::_::::error | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::error | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in lang:std::_::::error | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_error | IntoInnerError(1) | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::IntoInnerError(1)] in lang:std::_::::into_error | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_error | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in lang:std::_::::into_error | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | IntoInnerError(0) | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::IntoInnerError(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | BufReader.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | BufReader.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | BufReader.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::BufReader::inner] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::consume | Buffer.filled | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::filled] in lang:std::_::::consume | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::filled | Buffer.filled | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::filled] in lang:std::_::::filled | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::pos | Buffer.pos | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufreader::buffer::Buffer::pos] in lang:std::_::::pos | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::buffer | BufWriter.buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::buf] in lang:std::_::::buffer | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::buffer_mut | BufWriter.buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::buf] in lang:std::_::::buffer_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | BufWriter.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | BufWriter.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufwriter::BufWriter::inner] in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | WriterPanicked | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::buffered::bufwriter::WriterPanicked::buf] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::seek | Cursor.pos | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::seek | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::stream_position | Cursor.pos | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::stream_position | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | Cursor.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | Cursor.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Cursor.inner | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::inner] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::position | Cursor.pos | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::cursor::Cursor::pos] in lang:std::_::::position | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | TcpListener | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::tcp::TcpListener(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | TcpListener | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::tcp::TcpListener(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | TcpStream | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::tcp::TcpStream(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | TcpStream | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::tcp::TcpStream(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | UdpSocket | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::udp::UdpSocket(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | UdpSocket | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::udp::UdpSocket(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_fd | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::as_fd | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | UnixDatagram | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::os::unix::net::datagram::UnixDatagram(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | UnixStream | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::os::unix::net::stream::UnixStream(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::can_unwind | PanicHookInfo.can_unwind | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::PanicHookInfo::can_unwind] in lang:std::_::::can_unwind | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::force_no_backtrace | PanicHookInfo.force_no_backtrace | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::PanicHookInfo::force_no_backtrace] in lang:std::_::::force_no_backtrace | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::location | PanicHookInfo.location | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::PanicHookInfo::location] in lang:std::_::::location | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::payload | PanicHookInfo.payload | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::panic::PanicHookInfo::payload] in lang:std::_::::payload | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::next | Ancestors | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Ancestors::next] in lang:std::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_ref | Normal | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Component::Normal(0)] in lang:std::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_os_str | Normal | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Component::Normal(0)] in lang:std::_::::as_os_str | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::next_back | Components.path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next_back | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::next | Components.path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_ref | Path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Path::inner] in lang:std::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_mut_os_str | Path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Path::inner] in lang:std::_::::as_mut_os_str | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_os_str | Path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Path::inner] in lang:std::_::::as_os_str | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::display | Path | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Path::inner] in lang:std::_::::display | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_ref | PathBuf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PathBuf::inner] in lang:std::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_mut_os_string | PathBuf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PathBuf::inner] in lang:std::_::::as_mut_os_string | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_os_string | PathBuf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PathBuf::inner] in lang:std::_::::into_os_string | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_os_str | PrefixComponent.raw | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PrefixComponent::raw] in lang:std::_::::as_os_str | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::kind | PrefixComponent.parsed | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PrefixComponent::parsed] in lang:std::_::::kind | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Child.handle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::Child::handle] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Child.handle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::Child::handle] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | ChildStderr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStderr::inner] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | ChildStderr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStderr::inner] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | ChildStdin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStdin::inner] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | ChildStdin | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStdin::inner] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | ChildStdout | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStdout::inner] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | ChildStdout | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ChildStdout::inner] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Command | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::Command::inner] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | Command | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::Command::inner] in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | ExitCode | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ExitCode(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | ExitStatus | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::process::ExitStatus(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::is_leader | BarrierWaitResult | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::barrier::BarrierWaitResult(0)] in lang:std::_::::is_leader | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::is_leader | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::is_leader | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::capacity | Channel.cap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::array::Channel::cap] in lang:std::_::::capacity | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::len | Channel.cap | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::array::Channel::cap] in lang:std::_::::len | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::acquire | Receiver | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::counter::Receiver::counter] in lang:std::_::::acquire | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::acquire | Sender | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::counter::Sender::counter] in lang:std::_::::acquire | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into | Operation | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::select::Selected::Operation(0)] in lang:std::_::::into | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::deref | CachePadded | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::utils::CachePadded::value] in lang:std::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::deref_mut | CachePadded | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::utils::CachePadded::value] in lang:std::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | Sender | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::Sender::inner] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | SyncSender | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::SyncSender::inner] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | PoisonError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_ref | PoisonError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::get_ref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | PoisonError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::PoisonError::data] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::cause | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::cause | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::timed_out | WaitTimeoutResult | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::condvar::WaitTimeoutResult(0)] in lang:std::_::::timed_out | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::timed_out | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::timed_out | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Mutex.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::is_poisoned | OnceState | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::once::OnceState::inner] in lang:std::_::::is_poisoned | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | RwLock.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_mut | ReentrantLock.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::reentrant_lock::ReentrantLock::data] in lang:std::_::::get_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | ReentrantLock.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::reentrant_lock::ReentrantLock::data] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::deref | ReentrantLockGuard | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock] in lang:std::_::::deref | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::clone | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::clone | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_encoded_bytes | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::into_encoded_bytes | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_encoded_bytes | Slice | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Slice::inner] in lang:std::_::::as_encoded_bytes | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | FileDesc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fd::FileDesc(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | FileDesc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fd::FileDesc(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | File | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fs::File(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | File | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fs::File(0)] in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | File | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fs::File(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | FileAttr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::fs::FileAttr::stat] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | AnonPipe | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::pipe::AnonPipe(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_file_desc | AnonPipe | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::pipe::AnonPipe(0)] in lang:std::_::::as_file_desc | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_file_desc | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_file_desc | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::fd | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::fd | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::env_mut | Command.env | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::env] in lang:std::_::::env_mut | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_argv | Command.argv | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv] in lang:std::_::::get_argv | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_closures | Command.closures | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::closures] in lang:std::_::::get_closures | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_gid | Command.gid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::gid] in lang:std::_::::get_gid | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_pgroup | Command.pgroup | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::pgroup] in lang:std::_::::get_pgroup | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_program_cstr | Command.program | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::program] in lang:std::_::::get_program_cstr | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_program_kind | Command.program_kind | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::program_kind] in lang:std::_::::get_program_kind | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get_uid | Command.uid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::uid] in lang:std::_::::get_uid | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::saw_nul | Command.saw_nul | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::saw_nul] in lang:std::_::::saw_nul | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_raw | ExitStatus | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_inner::ExitStatus(0)] in lang:std::_::::into_raw | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_raw | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_raw | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::id | Thread | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::thread::Thread::id] in lang:std::_::::id | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::get | ExternWeak | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::weak::ExternWeak::weak_ptr] in lang:std::_::::get | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::is_poisoned | OnceState.poisoned | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::sync::once::queue::OnceState::poisoned] in lang:std::_::::is_poisoned | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::does_clear | CommandEnv.clear | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::process::CommandEnv::clear] in lang:std::_::::does_clear | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::to_u32 | CodePoint | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::CodePoint::value] in lang:std::_::::to_u32 | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::next | EncodeWide.extra | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::EncodeWide::extra] in lang:std::_::::next | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | Wtf8 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_bytes | Wtf8 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes] in lang:std::_::::as_bytes | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::ascii_byte_at | Wtf8 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes] in lang:std::_::::ascii_byte_at | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_bytes | Wtf8Buf.bytes | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8Buf::bytes] in lang:std::_::::into_bytes | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | JoinHandle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | JoinHandle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::thread | JoinHandle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::thread | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::thread | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::thread | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_u64 | ThreadId | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::ThreadId(0)] in lang:std::_::::as_u64 | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_u64 | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_u64 | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::thread | ScopedJoinHandle | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::scoped::ScopedJoinHandle(0)] in lang:std::_::::thread | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::thread | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::thread | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_cstr | ThreadNameString | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::thread_name_string::ThreadNameString::inner] in lang:std::_::::as_cstr | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | SystemTime | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::time::SystemTime(0)] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::duration | SystemTimeError | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::time::SystemTimeError(0)] in lang:std::_::::duration | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::duration | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::duration | -| file://:0:0:0:0 | [summary param] self in lang:std::_::::as_raw_fd | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::as_raw_fd | -| file://:0:0:0:0 | [summary param] self in repo::serde_test_suite::_::::get | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo::serde_test_suite::_::::get | -| file://:0:0:0:0 | [summary param] self in repo::serde_test_suite::_::::get | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo::serde_test_suite::_::::get | -| file://:0:0:0:0 | [summary param] self in repo::serde_test_suite::_::::first | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo::serde_test_suite::_::::first | -| file://:0:0:0:0 | [summary param] self in repo::serde_test_suite::_::::second | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo::serde_test_suite::_::::second | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-files::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-files::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-http::_::<&crate::header::value::HeaderValue as crate::header::into_value::TryIntoHeaderValue>::try_into_value | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/actix/actix-web:actix-http::_::<&crate::header::value::HeaderValue as crate::header::into_value::TryIntoHeaderValue>::try_into_value | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-http::_::::finish | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-http::_::::finish | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-http::_::::take | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/actix/actix-web:actix-http::_::::take | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-multipart::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-router::_::<_ as crate::resource_path::Resource>::resource_path | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/actix/actix-web:actix-router::_::<_ as crate::resource_path::Resource>::resource_path | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-router::_::::patterns | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/actix/actix-web:actix-router::_::::patterns | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::<_ as crate::guard::Guard>::check | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::<_ as crate::guard::Guard>::check | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::<_ as crate::handler::Handler>::call | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/actix/actix-web:actix-web::_::<_ as crate::handler::Handler>::call | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::as_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::as_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:actix-web::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:awc::_::::no_disconnect_timeout | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/actix/actix-web:awc::_::::no_disconnect_timeout | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/actix/actix-web:awc::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/actix/actix-web:awc::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_bench::_::::args | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/clap-rs/clap:clap_bench::_::::args | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_bench::_::::name | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/clap-rs/clap:clap_bench::_::::name | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_builder::_::::ansi | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/clap-rs/clap:clap_builder::_::::ansi | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_styled_str | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_styled_str | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_internal_str | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/clap-rs/clap:clap_builder::_::::as_internal_str | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_complete::_::<_ as crate::engine::custom::ValueCandidates>::candidates | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/clap-rs/clap:clap_complete::_::<_ as crate::engine::custom::ValueCandidates>::candidates | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/clap-rs/clap:clap_complete::_::<_ as crate::engine::custom::ValueCompleter>::complete | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/clap-rs/clap:clap_complete::_::<_ as crate::engine::custom::ValueCompleter>::complete | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::danger_len | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::danger_len | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::handshake | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/hyperium/hyper:hyper::_::::handshake | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::handshake | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/hyperium/hyper:hyper::_::::handshake | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/hyperium/hyper:hyper::_::::as_bytes | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::as_bytes | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::si_addr | siginfo_t.si_addr | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_addr] in repo:https://github.com/rust-lang/libc:libc::_::::si_addr | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::si_pid | siginfo_t.si_pid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_pid] in repo:https://github.com/rust-lang/libc:libc::_::::si_pid | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::si_status | siginfo_t.si_status | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_status] in repo:https://github.com/rust-lang/libc:libc::_::::si_status | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::si_uid | siginfo_t.si_uid | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::unix::bsd::apple::siginfo_t::si_uid] in repo:https://github.com/rust-lang/libc:libc::_::::si_uid | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-lang/libc:libc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rust-lang/libc:libc::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand::_::::next_u64 | StepRng.v | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rngs::mock::StepRng::v] in repo:https://github.com/rust-random/rand:rand::_::::next_u64 | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rust-random/rand:rand_chacha::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand_core::_::::index | BlockRng64.index | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::block::BlockRng64::index] in repo:https://github.com/rust-random/rand:rand_core::_::::index | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rust-random/rand:rand_core::_::::index | BlockRng.index | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::block::BlockRng::index] in repo:https://github.com/rust-random/rand:rand_core::_::::index | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates::_::::context | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates::_::::context | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::<_ as crate::catcher::handler::Handler>::handle | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::<_ as crate::catcher::handler::Handler>::handle | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::<_ as crate::route::handler::Handler>::handle | function return | file://:0:0:0:0 | [summary] read: Argument[self].ReturnValue in repo:https://github.com/rwf2/Rocket:rocket::_::<_ as crate::route::handler::Handler>::handle | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::as_str | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::file | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket::_::::file | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::file_mut | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket::_::::file_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::take_file | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket::_::::take_file | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::take | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::take | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::poll_next | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::poll_next | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket::_::::inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_codegen::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight_or | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight_or | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::media_type | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::borrow | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::borrow | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_str | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::as_str | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in repo:https://github.com/rwf2/Rocket:rocket_http::_::::split_at_byte | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::into_string | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::into_string | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::render | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::render | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/rwf2/Rocket:rocket_http::_::::render | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::render | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/seanmonstar/reqwest:reqwest::_::::source | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/serde-rs/serde:serde::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/serde-rs/serde:serde::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/servo/rust-smallvec:smallvec::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/servo/rust-smallvec:smallvec::_::::clone | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/servo/rust-smallvec:smallvec::_::::retain | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in repo:https://github.com/servo/rust-smallvec:smallvec::_::::retain | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::into_inner | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::into_inner | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio-util::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | element | file://:0:0:0:0 | [summary] read: Argument[self].Element in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::poll_fill_buf | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&[u8] as crate::io::async_buf_read::AsyncBufRead>::poll_fill_buf | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::<&crate::task::wake::Waker as crate::sync::task::atomic_waker::WakerRef>::into_waker | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference in repo:https://github.com/tokio-rs/tokio:tokio::_::<&crate::task::wake::Waker as crate::sync::task::atomic_waker::WakerRef>::into_waker | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_inner_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_inner_mut | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_usize | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_usize | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_ref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw_value | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::as_raw_value | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::deref | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::deref | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | BarrierWaitResult | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::barrier::BarrierWaitResult(0)] in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | -| file://:0:0:0:0 | [summary param] self in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/tokio-rs/tokio:tokio::_::::is_leader | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::append | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::collections::linked_list::LinkedList::tail].Reference in lang:alloc::_::::append | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::base] in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | element | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::crate::num::flt2dec::strategy::dragon::mul_pow10 | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/hyperium/hyper:hyper::_::::from | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)].Field[0] in repo:https://github.com/hyperium/hyper:hyper::_::::from | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | element | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::option::Option::Some(0)].Element in repo:https://github.com/rwf2/Rocket:rocket_http::_::::from_source | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner] in lang:std::_::::from | PathBuf | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner].Field[crate::path::PathBuf::inner] in lang:std::_::::from | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner] in lang:std::_::::from_str | PathBuf | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::path::PathBuf::inner].Field[crate::path::PathBuf::inner] in lang:std::_::::from_str | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::rc::Rc::alloc] in lang:alloc::_::::downgrade | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::rc::Rc::alloc].Reference in lang:alloc::_::::downgrade | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::Arc::alloc] in lang:alloc::_::::downgrade | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::Arc::alloc].Reference in lang:alloc::_::::downgrade | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock] in lang:std::_::crate::sync::poison::mutex::guard_lock | Mutex.inner | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock].Field[crate::sync::poison::mutex::Mutex::inner] in lang:std::_::crate::sync::poison::mutex::guard_lock | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock] in lang:std::_::crate::sync::poison::mutex::guard_poison | Mutex.poison | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::mutex::MutexGuard::lock].Field[crate::sync::poison::mutex::Mutex::poison] in lang:std::_::crate::sync::poison::mutex::guard_poison | -| file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock] in lang:std::_::::downgrade | RwLock.inner | file://:0:0:0:0 | [summary] read: Argument[0].Field[crate::sync::poison::rwlock::RwLockWriteGuard::lock].Field[crate::sync::poison::rwlock::RwLock::inner] in lang:std::_::::downgrade | -| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_mut_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::as_mut_ptr | -| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::as_ptr | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::as_ptr | -| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::unwrap_or_clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::unwrap_or_clone | -| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:alloc::_::::unwrap_or_clone | &ref | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Reference in lang:alloc::_::::unwrap_or_clone | -| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::from | Some | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::from | -| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::index | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:core::_::::index | -| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:core::_::::index_mut | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:core::_::::index_mut | -| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:std::_::::advance_slices | -| file://:0:0:0:0 | [summary] read: Argument[0].Reference in lang:std::_::::advance_slices | element | file://:0:0:0:0 | [summary] read: Argument[0].Reference.Element in lang:std::_::::advance_slices | -| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions].Element in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | -| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::FreeFunctions].Element in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile].Element in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | -| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::SourceFile].Element in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream] in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream].Element in lang:proc_macro::_::<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode | -| file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream] in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | element | file://:0:0:0:0 | [summary] read: Argument[1].Field[crate::bridge::server::HandleStore::TokenStream].Element in lang:proc_macro::_::<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::index | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:alloc::_::::index_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:alloc::_::::index_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::try_capture | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Reference in lang:core::_::::try_capture | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::index | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::index_mut | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::index_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::next | Char | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::char::EscapeDebugInner::Char(0)] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::into_inner | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::option::Option::Some(0)] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::remainder | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::remainder | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::delimiter | Group.delimiter | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::bridge::Group::delimiter] in lang:proc_macro::_::::delimiter | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::stream | Group.stream | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::bridge::Group::stream] in lang:proc_macro::_::::stream | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | Ident.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::bridge::Ident::span] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | Literal.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::bridge::Literal::span] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::span | Punct.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::bridge::Punct::span] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:proc_macro::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Element in lang:proc_macro::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::as_inner | JoinInner.native | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::thread::JoinInner::native] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::into_inner | JoinInner.native | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::thread::JoinInner::native] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::thread | JoinInner.thread | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::thread::JoinInner::thread] in lang:std::_::::thread | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in lang:std::_::::thread | JoinInner.thread | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Field[crate::thread::JoinInner::thread] in lang:std::_::::thread | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[0] in repo:https://github.com/rwf2/Rocket:rocket::_::::poll_next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[0].Reference in repo:https://github.com/rwf2/Rocket:rocket::_::::poll_next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[1] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight_or | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[1].Field[crate::option::Option::Some(0)] in repo:https://github.com/rwf2/Rocket:rocket_http::_::::weight_or | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)] in lang:proc_macro::_::::delimiter | Group.delimiter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)].Field[crate::bridge::Group::delimiter] in lang:proc_macro::_::::delimiter | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)] in lang:proc_macro::_::::stream | Group.stream | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Group(0)].Field[crate::bridge::Group::stream] in lang:proc_macro::_::::stream | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Ident(0)] in lang:proc_macro::_::::span | Ident.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Ident(0)].Field[crate::bridge::Ident::span] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Literal(0)] in lang:proc_macro::_::::span | Literal.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Literal(0)].Field[crate::bridge::Literal::span] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Punct(0)] in lang:proc_macro::_::::span | Punct.span | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::Punct(0)].Field[crate::bridge::Punct::span] in lang:proc_macro::_::::span | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::asserting::Wrapper(0)] in lang:core::_::::try_capture | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::asserting::Wrapper(0)].Reference in lang:core::_::::try_capture | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::handle::InternedStore::owned] in lang:proc_macro::_::::copy | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::bridge::handle::InternedStore::owned].Element in lang:proc_macro::_::::copy | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::Cell::value] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::Cell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::RefCell::value] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::RefCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::SyncUnsafeCell::value] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::SyncUnsafeCell::value].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::once::OnceCell::inner] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::cell::once::OnceCell::inner].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::EscapeDebug(0)] in lang:core::_::::next | Char | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::EscapeDebug(0)].Field[crate::char::EscapeDebugInner::Char(0)] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::decode::DecodeUtf16::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::char::decode::DecodeUtf16::iter].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::TryReserveError::kind] in lang:alloc::_::::kind | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::TryReserveError::kind].Reference in lang:alloc::_::::kind | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::BinaryHeap::data] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::BinaryHeap::data].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::Iter::iter] in lang:alloc::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::binary_heap::Iter::iter].Element in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::extract_if_inner | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc].Reference in lang:alloc::_::::extract_if_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc] in lang:alloc::_::::split_off | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::BTreeMap::alloc].Reference in lang:alloc::_::::split_off | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::next | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::next | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_next | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::peek_next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_next | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::peek_next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_prev | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::peek_prev | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::peek_prev | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::peek_prev | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::prev | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::prev | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::prev | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Cursor::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::prev | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::next | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::next | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::prev | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::prev | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current] in lang:alloc::_::::prev | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::CursorMutKey::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::prev | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge] in lang:alloc::_::::next | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge] in lang:alloc::_::::next | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::cur_leaf_edge].Field[crate::option::Option::Some(0)] in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::length] in lang:alloc::_::::size_hint | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ExtractIfInner::length].Reference in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::range] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Iter::range].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner] in lang:alloc::_::::len | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner] in lang:alloc::_::::size_hint | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Keys::inner].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Range::inner] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Range::inner].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner] in lang:alloc::_::::len | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner] in lang:alloc::_::::size_hint | Iter.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::Values::inner].Field[crate::collections::btree::map::Iter::length] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner] in lang:alloc::_::::len | IterMut.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner].Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::len | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner] in lang:alloc::_::::size_hint | IterMut.length | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::map::ValuesMut::inner].Field[crate::collections::btree::map::IterMut::length] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::a] in lang:alloc::_::::nexts | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::a].Element in lang:alloc::_::::nexts | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::b] in lang:alloc::_::::nexts | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::merge_iter::MergeIterInner::b].Element in lang:alloc::_::::nexts | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Edge(0)] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Edge(0)].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Root(0)] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::navigate::LazyLeafHandle::Root(0)].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::parent] in lang:alloc::_::::merge_tracking_parent | Handle.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::BalancingContext::parent].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::merge_tracking_parent | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::reborrow | NodeRef.node | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::node] in lang:alloc::_::::reborrow | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node] in lang:alloc::_::::split | NodeRef.height | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::node::Handle::node].Field[crate::collections::btree::node::NodeRef::height] in lang:alloc::_::::split | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::BTreeSet::map] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::BTreeSet::map].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::CursorMut::inner] in lang:alloc::_::::with_mutable_key | CursorMut | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::btree::set::CursorMut::inner].Field[crate::collections::btree::map::CursorMut::inner] in lang:alloc::_::::with_mutable_key | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::HashMap::base] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::HashMap::base].Reference in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Iter::base] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::map::Iter::base].Reference in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::HashSet::base] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::HashSet::base].Reference in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Iter::base] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Iter::base].Reference in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::SymmetricDifference::iter] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::SymmetricDifference::iter].Reference in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Union::iter] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::hash::set::Union::iter].Reference in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::index | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::index | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::move_next | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::move_next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::move_prev | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::Cursor::list].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::move_prev | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::index | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::index | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::index | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::remove_current | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::remove_current | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current_as_list | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::result::Result::Ok(0)] in lang:alloc::_::::remove_current_as_list | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current] in lang:alloc::_::::remove_current_as_list | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::current].Field[crate::option::Option::Some(0)] in lang:alloc::_::::remove_current_as_list | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::insert_after | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::insert_after | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::move_next | LinkedList.head | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::head] in lang:alloc::_::::move_next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::move_prev | LinkedList.tail | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::tail] in lang:alloc::_::::move_prev | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::remove_current_as_list | LinkedList.alloc | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::alloc] in lang:alloc::_::::remove_current_as_list | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list] in lang:alloc::_::::splice_after | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::CursorMut::list].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::splice_after | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::IntoIter::list] in lang:alloc::_::::size_hint | LinkedList.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::linked_list::IntoIter::list].Field[crate::collections::linked_list::LinkedList::len] in lang:alloc::_::::size_hint | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::into_iter::IntoIter::inner] in lang:alloc::_::::count | VecDeque.len | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::into_iter::IntoIter::inner].Field[crate::collections::vec_deque::VecDeque::len] in lang:alloc::_::::count | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::iter::Iter::i1] in lang:alloc::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::collections::vec_deque::iter::Iter::i1].Element in lang:alloc::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Children(0)] in lang:proc_macro::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::diagnostic::Children(0)].Element in lang:proc_macro::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::FromVecWithNulError::bytes] in lang:alloc::_::::as_bytes | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::c_str::FromVecWithNulError::bytes].Element in lang:alloc::_::::as_bytes | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsStr::inner] in lang:std::_::::as_encoded_bytes | Slice | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsStr::inner].Field[crate::sys::os_str::bytes::Slice::inner] in lang:std::_::::as_encoded_bytes | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::into_vec | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::into_vec | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner] in lang:std::_::::into_encoded_bytes | Buf | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ffi::os_str::OsString::inner].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::into_encoded_bytes | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Arguments::pieces] in lang:core::_::::as_str | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Arguments::pieces].Element in lang:core::_::::as_str | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::align | FormattingOptions.align | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::align] in lang:core::_::::align | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::fill | FormattingOptions.fill | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::fill] in lang:core::_::::fill | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::flags | FormattingOptions.flags | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::flags] in lang:core::_::::flags | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::padding | FormattingOptions.fill | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::fill] in lang:core::_::::padding | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::precision | FormattingOptions.precision | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::precision] in lang:core::_::::precision | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options] in lang:core::_::::width | FormattingOptions.width | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::Formatter::options].Field[crate::fmt::FormattingOptions::width] in lang:core::_::::width | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugList::inner] in lang:core::_::::finish | DebugInner.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugList::inner].Field[crate::fmt::builders::DebugInner::result] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::entry | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::entry | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::key | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::key_with | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::key_with | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::value | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result] in lang:core::_::::value_with | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugMap::result].Field[crate::result::Result::Err(0)] in lang:core::_::::value_with | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::finish | DebugInner.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::result] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner] in lang:core::_::::finish_non_exhaustive | DebugInner.result | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugSet::inner].Field[crate::fmt::builders::DebugInner::result] in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::field_with | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field_with | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugStruct::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::field_with | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::field_with | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::finish | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result] in lang:core::_::::finish_non_exhaustive | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::builders::DebugTuple::result].Field[crate::result::Result::Err(0)] in lang:core::_::::finish_non_exhaustive | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::rt::Argument::ty] in lang:core::_::::as_usize | Count | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::fmt::rt::Argument::ty].Field[crate::fmt::rt::ArgumentType::Count(0)] in lang:core::_::::as_usize | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::future::ready::Ready(0)] in lang:core::_::::into_inner | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::future::ready::Ready(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedCursor::buf] in lang:core::_::::set_init | BorrowedBuf.init | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::io::borrowed_buf::BorrowedCursor::buf].Field[crate::io::borrowed_buf::BorrowedBuf::init] in lang:core::_::::set_init | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cloned::Cloned::it] in lang:core::_::::next_unchecked | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cloned::Cloned::it].Element in lang:core::_::::next_unchecked | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig] in lang:core::_::::advance_by | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig].Reference in lang:core::_::::advance_by | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig] in lang:core::_::::try_fold | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::cycle::Cycle::orig].Reference in lang:core::_::::try_fold | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::enumerate::Enumerate::iter].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::into_parts | FlattenCompat.backiter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner].Field[crate::iter::adapters::flatten::FlattenCompat::backiter] in lang:core::_::::into_parts | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner] in lang:core::_::::into_parts | FlattenCompat.frontiter | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::FlatMap::inner].Field[crate::iter::adapters::flatten::FlattenCompat::frontiter] in lang:core::_::::into_parts | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::Flatten::inner] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::flatten::Flatten::inner].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::intersperse::Intersperse::separator] in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::intersperse::Intersperse::separator].Reference in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::map_while::MapWhile::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::map_while::MapWhile::iter].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::iter].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::last | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked].Field[crate::option::Option::Some(0)] in lang:core::_::::last | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::next | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked].Field[crate::option::Option::Some(0)] in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked] in lang:core::_::::nth | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::peekable::Peekable::peeked].Field[crate::option::Option::Some(0)] in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter] in lang:core::_::::next_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter].Element in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::rev::Rev::iter].Element in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::scan::Scan::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::scan::Scan::iter].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter].Element in lang:core::_::::last | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::skip::Skip::iter].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Field[crate::ops::range::Range::start] in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_fold | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_fold | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_next | Range.start | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Field[crate::ops::range::Range::start] in lang:core::_::::spec_next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter] in lang:core::_::::spec_try_fold | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::step_by::StepBy::iter].Element in lang:core::_::::spec_try_fold | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take::Take::iter].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take_while::TakeWhile::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::adapters::take_while::TakeWhile::iter].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element] in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::iter::sources::repeat::Repeat::element].Reference in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::to_ipv6_compatible | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets].Element in lang:core::_::::to_ipv6_compatible | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets] in lang:core::_::::to_ipv6_mapped | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::net::ip_addr::Ipv4Addr::octets].Element in lang:core::_::::to_ipv6_mapped | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base] in lang:core::_::::digits | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::::digits | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base] in lang:core::_::::mul_pow2 | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::Big32x40::base].Element in lang:core::_::::mul_pow2 | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::digits | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base].Element in lang:core::_::::digits | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base] in lang:core::_::::mul_pow2 | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::num::bignum::tests::Big8x3::base].Element in lang:core::_::::mul_pow2 | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end].Reference in lang:core::_::::spec_next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end] in lang:core::_::::spec_nth | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::Range::end].Reference in lang:core::_::::spec_nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::spec_next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end].Reference in lang:core::_::::spec_next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end] in lang:core::_::::nth | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::end].Reference in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference in lang:core::_::::spec_next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::spec_try_fold | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference in lang:core::_::::spec_try_fold | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start] in lang:core::_::::nth_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::ops::range::RangeInclusive::start].Reference in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Item::opt] in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Item::opt].Reference in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Iter::inner] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Iter::inner].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | Normal | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[crate::path::Component::Normal(0)] in lang:core::_::::and_then | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::and_then | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::and_then | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::cloned | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::cloned | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::copied | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Reference in lang:core::_::::copied | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[0] in lang:core::_::::unzip | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)] in lang:core::_::::unzip | tuple.1 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::option::Option::Some(0)].Field[1] in lang:core::_::::unzip | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path].Element in lang:std::_::::next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path] in lang:std::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::Components::path].Element in lang:std::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PathBuf::inner] in lang:std::_::::as_ref | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::path::PathBuf::inner].Element in lang:std::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::deref | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::deref_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Reference in lang:core::_::::map_unchecked | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer] in lang:core::_::::map_unchecked_mut | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::pin::Pin::__pointer].Field[0] in lang:core::_::::map_unchecked_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRange(0)] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRange(0)].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)] in lang:core::_::::remainder | RangeFrom | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeFrom(0)].Field[crate::ops::range::RangeFrom::start] in lang:core::_::::remainder | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeInclusive(0)] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::range::iter::IterRangeInclusive(0)].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::Weak::alloc] in lang:alloc::_::::upgrade | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::rc::Weak::alloc].Reference in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner] in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner].Reference in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner] in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IntoIter::inner].Reference in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner] in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner].Reference in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner] in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Iter::inner].Reference in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner] in lang:core::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner].Reference in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner] in lang:core::_::::next | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::IterMut::inner].Reference in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | Disconnected | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)].Field[crate::sync::mpmc::error::SendTimeoutError::Disconnected(0)] in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)] in lang:core::_::::unwrap_or_else | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Err(0)].Reference in lang:core::_::::unwrap_or_else | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::cloned | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::cloned | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::copied | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)].Reference in lang:core::_::::copied | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)] in lang:core::_::::transpose | Some | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::result::Result::Ok(0)].Field[crate::option::Option::Some(0)] in lang:core::_::::transpose | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ArrayChunks::iter].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v].Element in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v].Element in lang:core::_::::last | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Chunks::v].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::v] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::ChunksExact::v].Element in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::GenericSplitN::iter] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::GenericSplitN::iter].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v].Element in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v].Element in lang:core::_::::last | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunks::v].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::v] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RChunksExact::v].Element in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RSplit::inner] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::RSplit::inner].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v].Element in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::SplitInclusive::v].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v].Element in lang:core::_::::next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth_back | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v].Element in lang:core::_::::nth_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::last | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v].Element in lang:core::_::::last | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::next | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v].Element in lang:core::_::::next | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::slice::iter::Windows::v].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::Bytes(0)] in lang:core::_::::nth | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::Bytes(0)].Element in lang:core::_::::nth | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitInternal::matcher] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitInternal::matcher].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitNInternal::iter] in lang:core::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::str::iter::SplitNInternal::iter].Reference in lang:core::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::FromUtf8Error::bytes] in lang:alloc::_::::as_bytes | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::FromUtf8Error::bytes].Element in lang:alloc::_::::as_bytes | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::String::vec] in lang:alloc::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::string::String::vec].Reference in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::Weak::alloc] in lang:alloc::_::::upgrade | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::Weak::alloc].Reference in lang:alloc::_::::upgrade | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI8::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI8::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI16::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI16::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI32::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI32::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI64::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI64::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI128::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicI128::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicIsize::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicIsize::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicPtr::p] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicPtr::p].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU8::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU8::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU16::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU16::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU32::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU32::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU64::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU64::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU128::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicU128::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicUsize::v] in lang:core::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::atomic::AtomicUsize::v].Field[crate::cell::UnsafeCell::value] in lang:core::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::select::Selected::Operation(0)] in lang:std::_::::into | Operation | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpmc::select::Selected::Operation(0)].Field[crate::sync::mpmc::select::Operation(0)] in lang:std::_::::into | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::Sender::inner] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::Sender::inner].Reference in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::SyncSender::inner] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::mpsc::SyncSender::inner].Reference in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::mutex::Mutex::data] in lang:std::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::mutex::Mutex::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::once::OnceState::inner] in lang:std::_::::is_poisoned | OnceState.poisoned | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::once::OnceState::inner].Field[crate::sys::sync::once::queue::OnceState::poisoned] in lang:std::_::::is_poisoned | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::rwlock::RwLock::data] in lang:std::_::::into_inner | UnsafeCell | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::poison::rwlock::RwLock::data].Field[crate::cell::UnsafeCell::value] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock] in lang:std::_::::deref | ReentrantLock.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sync::reentrant_lock::ReentrantLockGuard::lock].Field[crate::sync::reentrant_lock::ReentrantLock::data] in lang:std::_::::deref | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner] in lang:std::_::::clone | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::os_str::bytes::Buf::inner].Reference in lang:std::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv] in lang:std::_::::get_argv | Argv | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv].Field[crate::sys::pal::unix::process::process_common::Argv(0)] in lang:std::_::::get_argv | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv] in lang:std::_::::get_argv | tuple.0 | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::argv].Field[0] in lang:std::_::::get_argv | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::program] in lang:std::_::::get_program_cstr | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys::pal::unix::process::process_common::Command::program].Reference in lang:std::_::::get_program_cstr | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes] in lang:std::_::::ascii_byte_at | element | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::sys_common::wtf8::Wtf8::bytes].Element in lang:std::_::::ascii_byte_at | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::branch | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::branch | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::branch | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_err | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_err | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | Err | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Err(0)] in lang:core::_::::map_ok | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)] in lang:core::_::::map_ok | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::poll::Poll::Ready(0)].Field[crate::result::Result::Ok(0)] in lang:core::_::::map_ok | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::data | RawWaker.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::data] in lang:core::_::::data | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker] in lang:core::_::::vtable | RawWaker.vtable | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::LocalWaker::waker].Field[crate::task::wake::RawWaker::vtable] in lang:core::_::::vtable | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker] in lang:core::_::::data | RawWaker.data | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::data] in lang:core::_::::data | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker] in lang:core::_::::vtable | RawWaker.vtable | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::task::wake::Waker::waker].Field[crate::task::wake::RawWaker::vtable] in lang:core::_::::vtable | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::as_inner | JoinInner.native | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)].Field[crate::thread::JoinInner::native] in lang:std::_::::as_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::into_inner | JoinInner.native | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)].Field[crate::thread::JoinInner::native] in lang:std::_::::into_inner | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)] in lang:std::_::::thread | JoinInner.thread | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::JoinHandle(0)].Field[crate::thread::JoinInner::thread] in lang:std::_::::thread | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::scoped::ScopedJoinHandle(0)] in lang:std::_::::thread | JoinInner.thread | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::thread::scoped::ScopedJoinHandle(0)].Field[crate::thread::JoinInner::thread] in lang:std::_::::thread | -| file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::into_iter::IntoIter::end] in lang:alloc::_::::next_back | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Field[crate::vec::into_iter::IntoIter::end].Reference in lang:alloc::_::::next_back | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::<&&str as crate::string::SpecToString>::spec_to_string | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | String | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::string::String::vec] in lang:alloc::_::<&str as crate::string::SpecToString>::spec_to_string | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Borrowed | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::deref | Borrowed | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::borrow::Cow::Borrowed(0)] in lang:alloc::_::::deref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::to_mut | Owned | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::borrow::Cow::Owned(0)] in lang:alloc::_::::to_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::as_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::deref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::deref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::deref_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::deref_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::collections::btree::map::Cursor::current] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Cursor.root | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::collections::btree::map::Cursor::root] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Cursor.current | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::collections::linked_list::Cursor::current] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Cursor.index | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::collections::linked_list::Cursor::index] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::clone | Cursor.list | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::collections::linked_list::Cursor::list] in lang:alloc::_::::clone | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::as_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::borrow | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:alloc::_::::as_ref | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:alloc::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:core::_::<&_ as crate::borrow::Borrow>::borrow | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:core::_::<&mut _ as crate::borrow::Borrow>::borrow | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | &ref | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Reference in lang:core::_::<&mut _ as crate::borrow::BorrowMut>::borrow_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::<_ as crate::str::pattern::MultiCharEq>::matches | function return | file://:0:0:0:0 | [summary] read: Argument[self].Reference.ReturnValue in lang:core::_::<_ as crate::str::pattern::MultiCharEq>::matches | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::take_output | Done | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::future::join::MaybeDone::Done(0)] in lang:core::_::::take_output | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::len | Zero | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::num::fmt::Part::Zero(0)] in lang:core::_::::len | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::write | Zero | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::num::fmt::Part::Zero(0)] in lang:core::_::::write | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | Excluded | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | Included | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | Excluded | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::ops::range::Bound::Excluded(0)] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | Included | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::ops::range::Bound::Included(0)] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | Some | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | Some | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::get_or_insert | Some | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::get_or_insert | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::get_or_insert_default | Some | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::get_or_insert_default | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::get_or_insert_with | Some | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::get_or_insert_with | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::insert | Some | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::insert | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::take_if | Some | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::option::Option::Some(0)] in lang:core::_::::take_if | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_deref | Err | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_deref_mut | Err | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::result::Result::Err(0)] in lang:core::_::::as_deref_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | Err | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::result::Result::Err(0)] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_mut | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_mut | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | Err | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::result::Result::Err(0)] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:core::_::::as_ref | Ok | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::result::Result::Ok(0)] in lang:core::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::as_ref | Normal | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::path::Component::Normal(0)] in lang:std::_::::as_ref | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::cause | Poisoned | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::sync::poison::TryLockError::Poisoned(0)] in lang:std::_::::cause | -| file://:0:0:0:0 | [summary] read: Argument[self].Reference in lang:std::_::::fd | Explicit | file://:0:0:0:0 | [summary] read: Argument[self].Reference.Field[crate::sys::pal::unix::process::process_common::ChildStdio::Explicit(0)] in lang:std::_::::fd | -| main.rs:36:9:36:15 | Some(...) | Some | main.rs:36:14:36:14 | _ | -| main.rs:90:11:90:11 | i | &ref | main.rs:90:10:90:11 | * ... | -| main.rs:98:10:98:10 | a | tuple.0 | main.rs:98:10:98:12 | a.0 | -| main.rs:99:10:99:10 | a | tuple.1 | main.rs:99:10:99:12 | a.1 | -| main.rs:104:9:104:20 | TuplePat | tuple.0 | main.rs:104:10:104:11 | a0 | -| main.rs:104:9:104:20 | TuplePat | tuple.1 | main.rs:104:14:104:15 | a1 | -| main.rs:104:9:104:20 | TuplePat | tuple.2 | main.rs:104:18:104:19 | a2 | -| main.rs:112:10:112:10 | a | tuple.0 | main.rs:112:10:112:12 | a.0 | -| main.rs:113:10:113:10 | a | tuple.1 | main.rs:113:10:113:12 | a.1 | -| main.rs:114:5:114:5 | a | tuple.0 | main.rs:114:5:114:7 | a.0 | -| main.rs:115:5:115:5 | a | tuple.1 | main.rs:115:5:115:7 | a.1 | -| main.rs:116:10:116:10 | a | tuple.0 | main.rs:116:10:116:12 | a.0 | -| main.rs:117:10:117:10 | a | tuple.1 | main.rs:117:10:117:12 | a.1 | -| main.rs:123:10:123:10 | b | tuple.0 | main.rs:123:10:123:12 | b.0 | -| main.rs:123:10:123:12 | b.0 | tuple.0 | main.rs:123:10:123:15 | ... .0 | -| main.rs:124:10:124:10 | b | tuple.0 | main.rs:124:10:124:12 | b.0 | -| main.rs:124:10:124:12 | b.0 | tuple.1 | main.rs:124:10:124:15 | ... .1 | -| main.rs:125:10:125:10 | b | tuple.1 | main.rs:125:10:125:12 | b.1 | -| main.rs:138:10:138:10 | p | Point.x | main.rs:138:10:138:12 | p.x | -| main.rs:139:10:139:10 | p | Point.y | main.rs:139:10:139:12 | p.y | -| main.rs:144:10:144:10 | p | Point.y | main.rs:144:10:144:12 | p.y | -| main.rs:145:5:145:5 | p | Point.y | main.rs:145:5:145:7 | p.y | -| main.rs:146:10:146:10 | p | Point.y | main.rs:146:10:146:12 | p.y | -| main.rs:154:9:154:28 | Point {...} | Point.x | main.rs:154:20:154:20 | a | -| main.rs:154:9:154:28 | Point {...} | Point.y | main.rs:154:26:154:26 | b | -| main.rs:172:10:172:10 | p | Point3D.plane | main.rs:172:10:172:16 | p.plane | -| main.rs:172:10:172:16 | p.plane | Point.x | main.rs:172:10:172:18 | ... .x | -| main.rs:173:10:173:10 | p | Point3D.plane | main.rs:173:10:173:16 | p.plane | -| main.rs:173:10:173:16 | p.plane | Point.y | main.rs:173:10:173:18 | ... .y | -| main.rs:174:10:174:10 | p | Point3D.z | main.rs:174:10:174:12 | p.z | -| main.rs:184:9:187:9 | Point3D {...} | Point3D.plane | main.rs:185:20:185:33 | Point {...} | -| main.rs:184:9:187:9 | Point3D {...} | Point3D.z | main.rs:186:13:186:13 | z | -| main.rs:185:20:185:33 | Point {...} | Point.x | main.rs:185:28:185:28 | x | -| main.rs:185:20:185:33 | Point {...} | Point.y | main.rs:185:31:185:31 | y | -| main.rs:199:10:199:10 | s | MyTupleStruct(0) | main.rs:199:10:199:12 | s.0 | -| main.rs:199:10:199:10 | s | tuple.0 | main.rs:199:10:199:12 | s.0 | -| main.rs:200:10:200:10 | s | MyTupleStruct(1) | main.rs:200:10:200:12 | s.1 | -| main.rs:200:10:200:10 | s | tuple.1 | main.rs:200:10:200:12 | s.1 | -| main.rs:203:9:203:27 | MyTupleStruct(...) | MyTupleStruct(0) | main.rs:203:23:203:23 | x | -| main.rs:203:9:203:27 | MyTupleStruct(...) | MyTupleStruct(1) | main.rs:203:26:203:26 | y | -| main.rs:217:9:217:23 | ...::Some(...) | Some | main.rs:217:22:217:22 | n | -| main.rs:221:9:221:23 | ...::Some(...) | Some | main.rs:221:22:221:22 | n | -| main.rs:230:9:230:15 | Some(...) | Some | main.rs:230:14:230:14 | n | -| main.rs:234:9:234:15 | Some(...) | Some | main.rs:234:14:234:14 | n | -| main.rs:263:14:263:15 | s1 | Ok | main.rs:263:14:263:16 | TryExpr | -| main.rs:263:14:263:15 | s1 | Some | main.rs:263:14:263:16 | TryExpr | -| main.rs:265:10:265:11 | s2 | Ok | main.rs:265:10:265:12 | TryExpr | -| main.rs:265:10:265:11 | s2 | Some | main.rs:265:10:265:12 | TryExpr | -| main.rs:287:14:287:15 | s1 | Ok | main.rs:287:14:287:16 | TryExpr | -| main.rs:287:14:287:15 | s1 | Some | main.rs:287:14:287:16 | TryExpr | -| main.rs:288:14:288:15 | s2 | Ok | main.rs:288:14:288:16 | TryExpr | -| main.rs:288:14:288:15 | s2 | Some | main.rs:288:14:288:16 | TryExpr | -| main.rs:291:14:291:15 | s3 | Ok | main.rs:291:14:291:16 | TryExpr | -| main.rs:291:14:291:15 | s3 | Some | main.rs:291:14:291:16 | TryExpr | -| main.rs:315:9:315:25 | ...::A(...) | A | main.rs:315:24:315:24 | n | -| main.rs:316:9:316:25 | ...::B(...) | B | main.rs:316:24:316:24 | n | -| main.rs:319:9:319:25 | ...::A(...) | A | main.rs:319:24:319:24 | n | -| main.rs:319:29:319:45 | ...::B(...) | B | main.rs:319:44:319:44 | n | -| main.rs:322:9:322:25 | ...::A(...) | A | main.rs:322:24:322:24 | n | -| main.rs:323:9:323:25 | ...::B(...) | B | main.rs:323:24:323:24 | n | -| main.rs:333:9:333:12 | A(...) | A | main.rs:333:11:333:11 | n | -| main.rs:334:9:334:12 | B(...) | B | main.rs:334:11:334:11 | n | -| main.rs:337:9:337:12 | A(...) | A | main.rs:337:11:337:11 | n | -| main.rs:337:16:337:19 | B(...) | B | main.rs:337:18:337:18 | n | -| main.rs:340:9:340:12 | A(...) | A | main.rs:340:11:340:11 | n | -| main.rs:341:9:341:12 | B(...) | B | main.rs:341:11:341:11 | n | -| main.rs:356:9:356:38 | ...::C {...} | C | main.rs:356:36:356:36 | n | -| main.rs:357:9:357:38 | ...::D {...} | D | main.rs:357:36:357:36 | n | -| main.rs:360:9:360:38 | ...::C {...} | C | main.rs:360:36:360:36 | n | -| main.rs:360:42:360:71 | ...::D {...} | D | main.rs:360:69:360:69 | n | -| main.rs:363:9:363:38 | ...::C {...} | C | main.rs:363:36:363:36 | n | -| main.rs:364:9:364:38 | ...::D {...} | D | main.rs:364:36:364:36 | n | -| main.rs:376:9:376:24 | C {...} | C | main.rs:376:22:376:22 | n | -| main.rs:377:9:377:24 | D {...} | D | main.rs:377:22:377:22 | n | -| main.rs:380:9:380:24 | C {...} | C | main.rs:380:22:380:22 | n | -| main.rs:380:28:380:43 | D {...} | D | main.rs:380:41:380:41 | n | -| main.rs:383:9:383:24 | C {...} | C | main.rs:383:22:383:22 | n | -| main.rs:384:9:384:24 | D {...} | D | main.rs:384:22:384:22 | n | -| main.rs:393:14:393:17 | arr1 | element | main.rs:393:14:393:20 | arr1[2] | -| main.rs:397:14:397:17 | arr2 | element | main.rs:397:14:397:20 | arr2[4] | -| main.rs:401:14:401:17 | arr3 | element | main.rs:401:14:401:20 | arr3[2] | -| main.rs:407:15:407:18 | arr1 | element | main.rs:407:9:407:10 | n1 | -| main.rs:412:15:412:18 | arr2 | element | main.rs:412:9:412:10 | n2 | -| main.rs:420:9:420:17 | SlicePat | element | main.rs:420:10:420:10 | a | -| main.rs:420:9:420:17 | SlicePat | element | main.rs:420:13:420:13 | b | -| main.rs:420:9:420:17 | SlicePat | element | main.rs:420:16:420:16 | c | -| main.rs:430:10:430:16 | mut_arr | element | main.rs:430:10:430:19 | mut_arr[1] | -| main.rs:432:5:432:11 | mut_arr | element | main.rs:432:5:432:14 | mut_arr[1] | -| main.rs:433:13:433:19 | mut_arr | element | main.rs:433:13:433:22 | mut_arr[1] | -| main.rs:435:10:435:16 | mut_arr | element | main.rs:435:10:435:19 | mut_arr[0] | -| main.rs:442:9:442:20 | TuplePat | tuple.0 | main.rs:442:10:442:13 | cond | -| main.rs:442:9:442:20 | TuplePat | tuple.1 | main.rs:442:16:442:19 | name | -| main.rs:442:25:442:29 | names | element | main.rs:442:9:442:20 | TuplePat | -| main.rs:444:41:444:67 | [post] \|...\| ... | captured default_name | main.rs:444:41:444:67 | [post] default_name | -| main.rs:444:44:444:55 | this | captured default_name | main.rs:444:44:444:55 | default_name | -| main.rs:481:10:481:11 | vs | element | main.rs:481:10:481:14 | vs[0] | -| main.rs:482:11:482:35 | ... .unwrap() | &ref | main.rs:482:10:482:35 | * ... | -| main.rs:483:11:483:35 | ... .unwrap() | &ref | main.rs:483:10:483:35 | * ... | -| main.rs:485:14:485:15 | vs | element | main.rs:485:9:485:9 | v | -| main.rs:488:9:488:10 | &... | &ref | main.rs:488:10:488:10 | v | -| main.rs:488:15:488:23 | vs.iter() | element | main.rs:488:9:488:10 | &... | -| main.rs:493:9:493:10 | &... | &ref | main.rs:493:10:493:10 | v | -| main.rs:493:15:493:17 | vs2 | element | main.rs:493:9:493:10 | &... | -| main.rs:497:29:497:29 | x | &ref | main.rs:497:28:497:29 | * ... | -| main.rs:498:34:498:34 | x | &ref | main.rs:498:33:498:34 | * ... | -| main.rs:500:14:500:27 | vs.into_iter() | element | main.rs:500:9:500:9 | v | -| main.rs:506:10:506:15 | vs_mut | element | main.rs:506:10:506:18 | vs_mut[0] | -| main.rs:507:11:507:39 | ... .unwrap() | &ref | main.rs:507:10:507:39 | * ... | -| main.rs:508:11:508:39 | ... .unwrap() | &ref | main.rs:508:10:508:39 | * ... | -| main.rs:510:9:510:14 | &mut ... | &ref | main.rs:510:14:510:14 | v | -| main.rs:510:19:510:35 | vs_mut.iter_mut() | element | main.rs:510:9:510:14 | &mut ... | -| main.rs:524:11:524:15 | c_ref | &ref | main.rs:524:10:524:15 | * ... | +| main.rs:36:9:36:15 | Some(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:36:14:36:14 | _ | +| main.rs:90:11:90:11 | i | file://:0:0:0:0 | &ref | main.rs:90:10:90:11 | * ... | +| main.rs:98:10:98:10 | a | file://:0:0:0:0 | tuple.0 | main.rs:98:10:98:12 | a.0 | +| main.rs:99:10:99:10 | a | file://:0:0:0:0 | tuple.1 | main.rs:99:10:99:12 | a.1 | +| main.rs:104:9:104:20 | TuplePat | file://:0:0:0:0 | tuple.0 | main.rs:104:10:104:11 | a0 | +| main.rs:104:9:104:20 | TuplePat | file://:0:0:0:0 | tuple.1 | main.rs:104:14:104:15 | a1 | +| main.rs:104:9:104:20 | TuplePat | file://:0:0:0:0 | tuple.2 | main.rs:104:18:104:19 | a2 | +| main.rs:112:10:112:10 | a | file://:0:0:0:0 | tuple.0 | main.rs:112:10:112:12 | a.0 | +| main.rs:113:10:113:10 | a | file://:0:0:0:0 | tuple.1 | main.rs:113:10:113:12 | a.1 | +| main.rs:114:5:114:5 | a | file://:0:0:0:0 | tuple.0 | main.rs:114:5:114:7 | a.0 | +| main.rs:115:5:115:5 | a | file://:0:0:0:0 | tuple.1 | main.rs:115:5:115:7 | a.1 | +| main.rs:116:10:116:10 | a | file://:0:0:0:0 | tuple.0 | main.rs:116:10:116:12 | a.0 | +| main.rs:117:10:117:10 | a | file://:0:0:0:0 | tuple.1 | main.rs:117:10:117:12 | a.1 | +| main.rs:123:10:123:10 | b | file://:0:0:0:0 | tuple.0 | main.rs:123:10:123:12 | b.0 | +| main.rs:123:10:123:12 | b.0 | file://:0:0:0:0 | tuple.0 | main.rs:123:10:123:15 | ... .0 | +| main.rs:124:10:124:10 | b | file://:0:0:0:0 | tuple.0 | main.rs:124:10:124:12 | b.0 | +| main.rs:124:10:124:12 | b.0 | file://:0:0:0:0 | tuple.1 | main.rs:124:10:124:15 | ... .1 | +| main.rs:125:10:125:10 | b | file://:0:0:0:0 | tuple.1 | main.rs:125:10:125:12 | b.1 | +| main.rs:138:10:138:10 | p | main.rs:132:5:132:10 | Point.x | main.rs:138:10:138:12 | p.x | +| main.rs:139:10:139:10 | p | main.rs:133:5:133:10 | Point.y | main.rs:139:10:139:12 | p.y | +| main.rs:144:10:144:10 | p | main.rs:133:5:133:10 | Point.y | main.rs:144:10:144:12 | p.y | +| main.rs:145:5:145:5 | p | main.rs:133:5:133:10 | Point.y | main.rs:145:5:145:7 | p.y | +| main.rs:146:10:146:10 | p | main.rs:133:5:133:10 | Point.y | main.rs:146:10:146:12 | p.y | +| main.rs:154:9:154:28 | Point {...} | main.rs:132:5:132:10 | Point.x | main.rs:154:20:154:20 | a | +| main.rs:154:9:154:28 | Point {...} | main.rs:133:5:133:10 | Point.y | main.rs:154:26:154:26 | b | +| main.rs:172:10:172:10 | p | main.rs:160:5:160:16 | Point3D.plane | main.rs:172:10:172:16 | p.plane | +| main.rs:172:10:172:16 | p.plane | main.rs:132:5:132:10 | Point.x | main.rs:172:10:172:18 | ... .x | +| main.rs:173:10:173:10 | p | main.rs:160:5:160:16 | Point3D.plane | main.rs:173:10:173:16 | p.plane | +| main.rs:173:10:173:16 | p.plane | main.rs:133:5:133:10 | Point.y | main.rs:173:10:173:18 | ... .y | +| main.rs:174:10:174:10 | p | main.rs:161:5:161:10 | Point3D.z | main.rs:174:10:174:12 | p.z | +| main.rs:184:9:187:9 | Point3D {...} | main.rs:160:5:160:16 | Point3D.plane | main.rs:185:20:185:33 | Point {...} | +| main.rs:184:9:187:9 | Point3D {...} | main.rs:161:5:161:10 | Point3D.z | main.rs:186:13:186:13 | z | +| main.rs:185:20:185:33 | Point {...} | main.rs:132:5:132:10 | Point.x | main.rs:185:28:185:28 | x | +| main.rs:185:20:185:33 | Point {...} | main.rs:133:5:133:10 | Point.y | main.rs:185:31:185:31 | y | +| main.rs:199:10:199:10 | s | file://:0:0:0:0 | tuple.0 | main.rs:199:10:199:12 | s.0 | +| main.rs:199:10:199:10 | s | main.rs:195:22:195:24 | MyTupleStruct(0) | main.rs:199:10:199:12 | s.0 | +| main.rs:200:10:200:10 | s | file://:0:0:0:0 | tuple.1 | main.rs:200:10:200:12 | s.1 | +| main.rs:200:10:200:10 | s | main.rs:195:27:195:29 | MyTupleStruct(1) | main.rs:200:10:200:12 | s.1 | +| main.rs:203:9:203:27 | MyTupleStruct(...) | main.rs:195:22:195:24 | MyTupleStruct(0) | main.rs:203:23:203:23 | x | +| main.rs:203:9:203:27 | MyTupleStruct(...) | main.rs:195:27:195:29 | MyTupleStruct(1) | main.rs:203:26:203:26 | y | +| main.rs:217:9:217:23 | ...::Some(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:217:22:217:22 | n | +| main.rs:221:9:221:23 | ...::Some(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:221:22:221:22 | n | +| main.rs:230:9:230:15 | Some(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:230:14:230:14 | n | +| main.rs:234:9:234:15 | Some(...) | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:234:14:234:14 | n | +| main.rs:263:14:263:15 | s1 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:263:14:263:16 | TryExpr | +| main.rs:263:14:263:15 | s1 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:532:8:532:54 | Ok | main.rs:263:14:263:16 | TryExpr | +| main.rs:265:10:265:11 | s2 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:265:10:265:12 | TryExpr | +| main.rs:265:10:265:11 | s2 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:532:8:532:54 | Ok | main.rs:265:10:265:12 | TryExpr | +| main.rs:287:14:287:15 | s1 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:287:14:287:16 | TryExpr | +| main.rs:287:14:287:15 | s1 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:532:8:532:54 | Ok | main.rs:287:14:287:16 | TryExpr | +| main.rs:288:14:288:15 | s2 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:288:14:288:16 | TryExpr | +| main.rs:288:14:288:15 | s2 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:532:8:532:54 | Ok | main.rs:288:14:288:16 | TryExpr | +| main.rs:291:14:291:15 | s3 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/option.rs:580:10:580:56 | Some | main.rs:291:14:291:16 | TryExpr | +| main.rs:291:14:291:15 | s3 | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:532:8:532:54 | Ok | main.rs:291:14:291:16 | TryExpr | +| main.rs:315:9:315:25 | ...::A(...) | main.rs:307:7:307:9 | A | main.rs:315:24:315:24 | n | +| main.rs:316:9:316:25 | ...::B(...) | main.rs:308:7:308:9 | B | main.rs:316:24:316:24 | n | +| main.rs:319:9:319:25 | ...::A(...) | main.rs:307:7:307:9 | A | main.rs:319:24:319:24 | n | +| main.rs:319:29:319:45 | ...::B(...) | main.rs:308:7:308:9 | B | main.rs:319:44:319:44 | n | +| main.rs:322:9:322:25 | ...::A(...) | main.rs:307:7:307:9 | A | main.rs:322:24:322:24 | n | +| main.rs:323:9:323:25 | ...::B(...) | main.rs:308:7:308:9 | B | main.rs:323:24:323:24 | n | +| main.rs:333:9:333:12 | A(...) | main.rs:307:7:307:9 | A | main.rs:333:11:333:11 | n | +| main.rs:334:9:334:12 | B(...) | main.rs:308:7:308:9 | B | main.rs:334:11:334:11 | n | +| main.rs:337:9:337:12 | A(...) | main.rs:307:7:307:9 | A | main.rs:337:11:337:11 | n | +| main.rs:337:16:337:19 | B(...) | main.rs:308:7:308:9 | B | main.rs:337:18:337:18 | n | +| main.rs:340:9:340:12 | A(...) | main.rs:307:7:307:9 | A | main.rs:340:11:340:11 | n | +| main.rs:341:9:341:12 | B(...) | main.rs:308:7:308:9 | B | main.rs:341:11:341:11 | n | +| main.rs:356:9:356:38 | ...::C {...} | main.rs:346:9:346:20 | C | main.rs:356:36:356:36 | n | +| main.rs:357:9:357:38 | ...::D {...} | main.rs:347:9:347:20 | D | main.rs:357:36:357:36 | n | +| main.rs:360:9:360:38 | ...::C {...} | main.rs:346:9:346:20 | C | main.rs:360:36:360:36 | n | +| main.rs:360:42:360:71 | ...::D {...} | main.rs:347:9:347:20 | D | main.rs:360:69:360:69 | n | +| main.rs:363:9:363:38 | ...::C {...} | main.rs:346:9:346:20 | C | main.rs:363:36:363:36 | n | +| main.rs:364:9:364:38 | ...::D {...} | main.rs:347:9:347:20 | D | main.rs:364:36:364:36 | n | +| main.rs:376:9:376:24 | C {...} | main.rs:346:9:346:20 | C | main.rs:376:22:376:22 | n | +| main.rs:377:9:377:24 | D {...} | main.rs:347:9:347:20 | D | main.rs:377:22:377:22 | n | +| main.rs:380:9:380:24 | C {...} | main.rs:346:9:346:20 | C | main.rs:380:22:380:22 | n | +| main.rs:380:28:380:43 | D {...} | main.rs:347:9:347:20 | D | main.rs:380:41:380:41 | n | +| main.rs:383:9:383:24 | C {...} | main.rs:346:9:346:20 | C | main.rs:383:22:383:22 | n | +| main.rs:384:9:384:24 | D {...} | main.rs:347:9:347:20 | D | main.rs:384:22:384:22 | n | +| main.rs:393:14:393:17 | arr1 | file://:0:0:0:0 | element | main.rs:393:14:393:20 | arr1[2] | +| main.rs:397:14:397:17 | arr2 | file://:0:0:0:0 | element | main.rs:397:14:397:20 | arr2[4] | +| main.rs:401:14:401:17 | arr3 | file://:0:0:0:0 | element | main.rs:401:14:401:20 | arr3[2] | +| main.rs:407:15:407:18 | arr1 | file://:0:0:0:0 | element | main.rs:407:9:407:10 | n1 | +| main.rs:412:15:412:18 | arr2 | file://:0:0:0:0 | element | main.rs:412:9:412:10 | n2 | +| main.rs:420:9:420:17 | SlicePat | file://:0:0:0:0 | element | main.rs:420:10:420:10 | a | +| main.rs:420:9:420:17 | SlicePat | file://:0:0:0:0 | element | main.rs:420:13:420:13 | b | +| main.rs:420:9:420:17 | SlicePat | file://:0:0:0:0 | element | main.rs:420:16:420:16 | c | +| main.rs:430:10:430:16 | mut_arr | file://:0:0:0:0 | element | main.rs:430:10:430:19 | mut_arr[1] | +| main.rs:432:5:432:11 | mut_arr | file://:0:0:0:0 | element | main.rs:432:5:432:14 | mut_arr[1] | +| main.rs:433:13:433:19 | mut_arr | file://:0:0:0:0 | element | main.rs:433:13:433:22 | mut_arr[1] | +| main.rs:435:10:435:16 | mut_arr | file://:0:0:0:0 | element | main.rs:435:10:435:19 | mut_arr[0] | +| main.rs:442:9:442:20 | TuplePat | file://:0:0:0:0 | tuple.0 | main.rs:442:10:442:13 | cond | +| main.rs:442:9:442:20 | TuplePat | file://:0:0:0:0 | tuple.1 | main.rs:442:16:442:19 | name | +| main.rs:442:25:442:29 | names | file://:0:0:0:0 | element | main.rs:442:9:442:20 | TuplePat | +| main.rs:444:41:444:67 | [post] \|...\| ... | main.rs:441:9:441:20 | captured default_name | main.rs:444:41:444:67 | [post] default_name | +| main.rs:444:44:444:55 | this | main.rs:441:9:441:20 | captured default_name | main.rs:444:44:444:55 | default_name | +| main.rs:481:10:481:11 | vs | file://:0:0:0:0 | element | main.rs:481:10:481:14 | vs[0] | +| main.rs:482:11:482:35 | ... .unwrap() | file://:0:0:0:0 | &ref | main.rs:482:10:482:35 | * ... | +| main.rs:483:11:483:35 | ... .unwrap() | file://:0:0:0:0 | &ref | main.rs:483:10:483:35 | * ... | +| main.rs:485:14:485:15 | vs | file://:0:0:0:0 | element | main.rs:485:9:485:9 | v | +| main.rs:488:9:488:10 | &... | file://:0:0:0:0 | &ref | main.rs:488:10:488:10 | v | +| main.rs:488:15:488:23 | vs.iter() | file://:0:0:0:0 | element | main.rs:488:9:488:10 | &... | +| main.rs:493:9:493:10 | &... | file://:0:0:0:0 | &ref | main.rs:493:10:493:10 | v | +| main.rs:493:15:493:17 | vs2 | file://:0:0:0:0 | element | main.rs:493:9:493:10 | &... | +| main.rs:497:29:497:29 | x | file://:0:0:0:0 | &ref | main.rs:497:28:497:29 | * ... | +| main.rs:498:34:498:34 | x | file://:0:0:0:0 | &ref | main.rs:498:33:498:34 | * ... | +| main.rs:500:14:500:27 | vs.into_iter() | file://:0:0:0:0 | element | main.rs:500:9:500:9 | v | +| main.rs:506:10:506:15 | vs_mut | file://:0:0:0:0 | element | main.rs:506:10:506:18 | vs_mut[0] | +| main.rs:507:11:507:39 | ... .unwrap() | file://:0:0:0:0 | &ref | main.rs:507:10:507:39 | * ... | +| main.rs:508:11:508:39 | ... .unwrap() | file://:0:0:0:0 | &ref | main.rs:508:10:508:39 | * ... | +| main.rs:510:9:510:14 | &mut ... | file://:0:0:0:0 | &ref | main.rs:510:14:510:14 | v | +| main.rs:510:19:510:35 | vs_mut.iter_mut() | file://:0:0:0:0 | element | main.rs:510:9:510:14 | &mut ... | +| main.rs:524:11:524:15 | c_ref | file://:0:0:0:0 | &ref | main.rs:524:10:524:15 | * ... | diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.ql b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.ql index 29158454b2f..e3043d55bb6 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.ql +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.ql @@ -1,5 +1,6 @@ import codeql.rust.dataflow.DataFlow import codeql.rust.dataflow.internal.DataFlowImpl +import codeql.rust.dataflow.internal.Node import utils.test.TranslateModels query predicate localStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { @@ -7,6 +8,27 @@ query predicate localStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { RustDataFlow::simpleLocalFlowStep(nodeFrom, nodeTo, "") } -query predicate storeStep = RustDataFlow::storeStep/3; +class Content extends DataFlow::Content { + predicate hasLocationInfo( + string filepath, int startline, int startcolumn, int endline, int endcolumn + ) { + exists(string file | + this.getLocation().hasLocationInfo(file, startline, startcolumn, endline, endcolumn) and + filepath = + file.regexpReplaceAll("^/.*/tools/builtins/", "/BUILTINS/") + .regexpReplaceAll("^/.*/.rustup/toolchains/[^/]+/", "/RUSTUP_HOME/toolchain/") + ) + } +} -query predicate readStep = RustDataFlow::readStep/3; +class Node extends DataFlow::Node { + Node() { not this instanceof FlowSummaryNode } +} + +query predicate storeStep(Node node1, Content c, Node node2) { + RustDataFlow::storeContentStep(node1, c, node2) +} + +query predicate readStep(Node node1, Content c, Node node2) { + RustDataFlow::readContentStep(node1, c, node2) +} From c69aa224c73346019156e4fe8d666c03fb56dc08 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 21 May 2025 12:03:38 +0200 Subject: [PATCH 564/656] Rust: restrict to library files --- rust/extractor/src/main.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index b9d3ddabd54..536d86f67f0 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -4,6 +4,7 @@ use crate::translate::{ResolvePaths, SourceKind}; use crate::trap::TrapId; use anyhow::Context; use archive::Archiver; +use ra_ap_base_db::SourceDatabase; use ra_ap_hir::Semantics; use ra_ap_ide_db::RootDatabase; use ra_ap_ide_db::line_index::{LineCol, LineIndex}; @@ -301,10 +302,14 @@ fn main() -> anyhow::Result<()> { } }; } - for (_, file) in vfs.iter() { + for (file_id, file) in vfs.iter() { if let Some(file) = file.as_path().map(<_ as AsRef>::as_ref) { if file.extension().is_some_and(|ext| ext == "rs") && processed_files.insert(file.to_owned()) + && db + .source_root(db.file_source_root(file_id).source_root_id(db)) + .source_root(db) + .is_library { extractor.extract_with_semantics( file, From 1eaa491f394c14b473e75062fe71f22a7db54072 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 21 May 2025 12:46:29 +0200 Subject: [PATCH 565/656] Rust: update integration tests --- .../integration-tests/hello-project/steps.ql | 26 ++----------------- .../hello-workspace/steps.ql | 26 ++----------------- .../integration-tests/macro-expansion/test.ql | 2 +- .../workspace-with-glob/steps.ql | 26 ++----------------- 4 files changed, 7 insertions(+), 73 deletions(-) diff --git a/rust/ql/integration-tests/hello-project/steps.ql b/rust/ql/integration-tests/hello-project/steps.ql index fe45fc4b6dc..a87e434b14a 100644 --- a/rust/ql/integration-tests/hello-project/steps.ql +++ b/rust/ql/integration-tests/hello-project/steps.ql @@ -1,27 +1,5 @@ import codeql.rust.elements.internal.ExtractorStep -private class Step instanceof ExtractorStep { - string toString() { - result = super.getAction() + "(" + this.getFilePath() + ")" - or - not super.hasFile() and result = super.getAction() - } - - private string getFilePath() { - exists(File file | file = super.getFile() | - exists(file.getRelativePath()) and result = file.getAbsolutePath() - or - not exists(file.getRelativePath()) and result = "/" + file.getBaseName() - ) - } - - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(_, startline, startcolumn, endline, endcolumn) and - filepath = this.getFilePath() - } -} - -from Step step +from ExtractorStep step +where not step.getAction() = ["ParseLibrary", "ExtractLibrary"] select step diff --git a/rust/ql/integration-tests/hello-workspace/steps.ql b/rust/ql/integration-tests/hello-workspace/steps.ql index fe45fc4b6dc..a87e434b14a 100644 --- a/rust/ql/integration-tests/hello-workspace/steps.ql +++ b/rust/ql/integration-tests/hello-workspace/steps.ql @@ -1,27 +1,5 @@ import codeql.rust.elements.internal.ExtractorStep -private class Step instanceof ExtractorStep { - string toString() { - result = super.getAction() + "(" + this.getFilePath() + ")" - or - not super.hasFile() and result = super.getAction() - } - - private string getFilePath() { - exists(File file | file = super.getFile() | - exists(file.getRelativePath()) and result = file.getAbsolutePath() - or - not exists(file.getRelativePath()) and result = "/" + file.getBaseName() - ) - } - - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(_, startline, startcolumn, endline, endcolumn) and - filepath = this.getFilePath() - } -} - -from Step step +from ExtractorStep step +where not step.getAction() = ["ParseLibrary", "ExtractLibrary"] select step diff --git a/rust/ql/integration-tests/macro-expansion/test.ql b/rust/ql/integration-tests/macro-expansion/test.ql index f3f49cbf5c7..3369acc3a28 100644 --- a/rust/ql/integration-tests/macro-expansion/test.ql +++ b/rust/ql/integration-tests/macro-expansion/test.ql @@ -1,5 +1,5 @@ import rust from Item i, MacroItems items, int index, Item expanded -where i.getAttributeMacroExpansion() = items and items.getItem(index) = expanded +where i.fromSource() and i.getAttributeMacroExpansion() = items and items.getItem(index) = expanded select i, index, expanded diff --git a/rust/ql/integration-tests/workspace-with-glob/steps.ql b/rust/ql/integration-tests/workspace-with-glob/steps.ql index fe45fc4b6dc..a87e434b14a 100644 --- a/rust/ql/integration-tests/workspace-with-glob/steps.ql +++ b/rust/ql/integration-tests/workspace-with-glob/steps.ql @@ -1,27 +1,5 @@ import codeql.rust.elements.internal.ExtractorStep -private class Step instanceof ExtractorStep { - string toString() { - result = super.getAction() + "(" + this.getFilePath() + ")" - or - not super.hasFile() and result = super.getAction() - } - - private string getFilePath() { - exists(File file | file = super.getFile() | - exists(file.getRelativePath()) and result = file.getAbsolutePath() - or - not exists(file.getRelativePath()) and result = "/" + file.getBaseName() - ) - } - - predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - super.hasLocationInfo(_, startline, startcolumn, endline, endcolumn) and - filepath = this.getFilePath() - } -} - -from Step step +from ExtractorStep step +where not step.getAction() = ["ParseLibrary", "ExtractLibrary"] select step From 2a93b2a499b59819aaa09b8916895a2899dcdee2 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 21 May 2025 12:05:44 +0200 Subject: [PATCH 566/656] Rust: integration-tests: update output --- .../hello-project/diagnostics.expected | 10 +++++++++- .../hello-project/steps.cargo.expected | 2 -- .../hello-project/steps.rust-project.expected | 2 -- .../integration-tests/hello-project/summary.expected | 2 +- .../hello-workspace/diagnostics.cargo.expected | 10 +++++++++- .../hello-workspace/diagnostics.rust-project.expected | 10 +++++++++- .../hello-workspace/steps.cargo.expected | 2 -- .../hello-workspace/steps.rust-project.expected | 2 -- .../hello-workspace/summary.cargo.expected | 2 +- .../hello-workspace/summary.rust-project.expected | 2 +- .../macro-expansion/diagnostics.expected | 10 +++++++++- .../workspace-with-glob/steps.expected | 2 -- 12 files changed, 39 insertions(+), 17 deletions(-) diff --git a/rust/ql/integration-tests/hello-project/diagnostics.expected b/rust/ql/integration-tests/hello-project/diagnostics.expected index f45877f26d0..65c797abe29 100644 --- a/rust/ql/integration-tests/hello-project/diagnostics.expected +++ b/rust/ql/integration-tests/hello-project/diagnostics.expected @@ -9,6 +9,10 @@ "ms": "__REDACTED__", "pretty": "__REDACTED__" }, + "extractLibrary": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, "findManifests": { "ms": "__REDACTED__", "pretty": "__REDACTED__" @@ -25,12 +29,16 @@ "ms": "__REDACTED__", "pretty": "__REDACTED__" }, + "parseLibrary": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, "total": { "ms": "__REDACTED__", "pretty": "__REDACTED__" } }, - "numberOfFiles": 6, + "numberOfFiles": 5, "numberOfManifests": 1 }, "severity": "note", diff --git a/rust/ql/integration-tests/hello-project/steps.cargo.expected b/rust/ql/integration-tests/hello-project/steps.cargo.expected index ca256c4f856..4deec0653da 100644 --- a/rust/ql/integration-tests/hello-project/steps.cargo.expected +++ b/rust/ql/integration-tests/hello-project/steps.cargo.expected @@ -1,6 +1,4 @@ | Cargo.toml:0:0:0:0 | LoadManifest(Cargo.toml) | -| file:///types.rs:0:0:0:0 | Extract(/types.rs) | -| file:///types.rs:0:0:0:0 | Parse(/types.rs) | | file://:0:0:0:0 | CrateGraph | | file://:0:0:0:0 | FindManifests | | src/directory_module/mod.rs:0:0:0:0 | Extract(src/directory_module/mod.rs) | diff --git a/rust/ql/integration-tests/hello-project/steps.rust-project.expected b/rust/ql/integration-tests/hello-project/steps.rust-project.expected index 165a770e1cb..fa790e6cd7f 100644 --- a/rust/ql/integration-tests/hello-project/steps.rust-project.expected +++ b/rust/ql/integration-tests/hello-project/steps.rust-project.expected @@ -1,5 +1,3 @@ -| file:///types.rs:0:0:0:0 | Extract(/types.rs) | -| file:///types.rs:0:0:0:0 | Parse(/types.rs) | | file://:0:0:0:0 | CrateGraph | | file://:0:0:0:0 | FindManifests | | rust-project.json:0:0:0:0 | LoadManifest(rust-project.json) | diff --git a/rust/ql/integration-tests/hello-project/summary.expected b/rust/ql/integration-tests/hello-project/summary.expected index 15ee83de7ad..1f343b197c0 100644 --- a/rust/ql/integration-tests/hello-project/summary.expected +++ b/rust/ql/integration-tests/hello-project/summary.expected @@ -9,7 +9,7 @@ | Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | -| Lines of code extracted | 23 | +| Lines of code extracted | 6 | | Lines of user code extracted | 6 | | Macro calls - resolved | 2 | | Macro calls - total | 2 | diff --git a/rust/ql/integration-tests/hello-workspace/diagnostics.cargo.expected b/rust/ql/integration-tests/hello-workspace/diagnostics.cargo.expected index 146d8514488..511bd49f1a5 100644 --- a/rust/ql/integration-tests/hello-workspace/diagnostics.cargo.expected +++ b/rust/ql/integration-tests/hello-workspace/diagnostics.cargo.expected @@ -9,6 +9,10 @@ "ms": "__REDACTED__", "pretty": "__REDACTED__" }, + "extractLibrary": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, "findManifests": { "ms": "__REDACTED__", "pretty": "__REDACTED__" @@ -25,12 +29,16 @@ "ms": "__REDACTED__", "pretty": "__REDACTED__" }, + "parseLibrary": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, "total": { "ms": "__REDACTED__", "pretty": "__REDACTED__" } }, - "numberOfFiles": 5, + "numberOfFiles": 4, "numberOfManifests": 1 }, "severity": "note", diff --git a/rust/ql/integration-tests/hello-workspace/diagnostics.rust-project.expected b/rust/ql/integration-tests/hello-workspace/diagnostics.rust-project.expected index 146d8514488..511bd49f1a5 100644 --- a/rust/ql/integration-tests/hello-workspace/diagnostics.rust-project.expected +++ b/rust/ql/integration-tests/hello-workspace/diagnostics.rust-project.expected @@ -9,6 +9,10 @@ "ms": "__REDACTED__", "pretty": "__REDACTED__" }, + "extractLibrary": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, "findManifests": { "ms": "__REDACTED__", "pretty": "__REDACTED__" @@ -25,12 +29,16 @@ "ms": "__REDACTED__", "pretty": "__REDACTED__" }, + "parseLibrary": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, "total": { "ms": "__REDACTED__", "pretty": "__REDACTED__" } }, - "numberOfFiles": 5, + "numberOfFiles": 4, "numberOfManifests": 1 }, "severity": "note", diff --git a/rust/ql/integration-tests/hello-workspace/steps.cargo.expected b/rust/ql/integration-tests/hello-workspace/steps.cargo.expected index 03c81ea6fb7..32a3b111024 100644 --- a/rust/ql/integration-tests/hello-workspace/steps.cargo.expected +++ b/rust/ql/integration-tests/hello-workspace/steps.cargo.expected @@ -5,8 +5,6 @@ | exe/src/main.rs:0:0:0:0 | Extract(exe/src/main.rs) | | exe/src/main.rs:0:0:0:0 | LoadSource(exe/src/main.rs) | | exe/src/main.rs:0:0:0:0 | Parse(exe/src/main.rs) | -| file:///types.rs:0:0:0:0 | Extract(/types.rs) | -| file:///types.rs:0:0:0:0 | Parse(/types.rs) | | file://:0:0:0:0 | CrateGraph | | file://:0:0:0:0 | FindManifests | | lib/src/a_module/mod.rs:0:0:0:0 | Extract(lib/src/a_module/mod.rs) | diff --git a/rust/ql/integration-tests/hello-workspace/steps.rust-project.expected b/rust/ql/integration-tests/hello-workspace/steps.rust-project.expected index 0cf90cf71e0..e9a65e0c7be 100644 --- a/rust/ql/integration-tests/hello-workspace/steps.rust-project.expected +++ b/rust/ql/integration-tests/hello-workspace/steps.rust-project.expected @@ -4,8 +4,6 @@ | exe/src/main.rs:0:0:0:0 | Extract(exe/src/main.rs) | | exe/src/main.rs:0:0:0:0 | LoadSource(exe/src/main.rs) | | exe/src/main.rs:0:0:0:0 | Parse(exe/src/main.rs) | -| file:///types.rs:0:0:0:0 | Extract(/types.rs) | -| file:///types.rs:0:0:0:0 | Parse(/types.rs) | | file://:0:0:0:0 | CrateGraph | | file://:0:0:0:0 | FindManifests | | lib/src/a_module/mod.rs:0:0:0:0 | Extract(lib/src/a_module/mod.rs) | diff --git a/rust/ql/integration-tests/hello-workspace/summary.cargo.expected b/rust/ql/integration-tests/hello-workspace/summary.cargo.expected index c845417a624..5912f7d69ba 100644 --- a/rust/ql/integration-tests/hello-workspace/summary.cargo.expected +++ b/rust/ql/integration-tests/hello-workspace/summary.cargo.expected @@ -9,7 +9,7 @@ | Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | -| Lines of code extracted | 26 | +| Lines of code extracted | 9 | | Lines of user code extracted | 9 | | Macro calls - resolved | 2 | | Macro calls - total | 2 | diff --git a/rust/ql/integration-tests/hello-workspace/summary.rust-project.expected b/rust/ql/integration-tests/hello-workspace/summary.rust-project.expected index c845417a624..5912f7d69ba 100644 --- a/rust/ql/integration-tests/hello-workspace/summary.rust-project.expected +++ b/rust/ql/integration-tests/hello-workspace/summary.rust-project.expected @@ -9,7 +9,7 @@ | Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | -| Lines of code extracted | 26 | +| Lines of code extracted | 9 | | Lines of user code extracted | 9 | | Macro calls - resolved | 2 | | Macro calls - total | 2 | diff --git a/rust/ql/integration-tests/macro-expansion/diagnostics.expected b/rust/ql/integration-tests/macro-expansion/diagnostics.expected index 74e11aa9f2b..c98f923b463 100644 --- a/rust/ql/integration-tests/macro-expansion/diagnostics.expected +++ b/rust/ql/integration-tests/macro-expansion/diagnostics.expected @@ -9,6 +9,10 @@ "ms": "__REDACTED__", "pretty": "__REDACTED__" }, + "extractLibrary": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, "findManifests": { "ms": "__REDACTED__", "pretty": "__REDACTED__" @@ -25,12 +29,16 @@ "ms": "__REDACTED__", "pretty": "__REDACTED__" }, + "parseLibrary": { + "ms": "__REDACTED__", + "pretty": "__REDACTED__" + }, "total": { "ms": "__REDACTED__", "pretty": "__REDACTED__" } }, - "numberOfFiles": 3, + "numberOfFiles": 2, "numberOfManifests": 1 }, "severity": "note", diff --git a/rust/ql/integration-tests/workspace-with-glob/steps.expected b/rust/ql/integration-tests/workspace-with-glob/steps.expected index 0ee55e79623..4b0e6ed828b 100644 --- a/rust/ql/integration-tests/workspace-with-glob/steps.expected +++ b/rust/ql/integration-tests/workspace-with-glob/steps.expected @@ -1,8 +1,6 @@ | Cargo.toml:0:0:0:0 | LoadManifest(Cargo.toml) | | exe/src/main.rs:0:0:0:0 | Extract(exe/src/main.rs) | | exe/src/main.rs:0:0:0:0 | Parse(exe/src/main.rs) | -| file:///types.rs:0:0:0:0 | Extract(/types.rs) | -| file:///types.rs:0:0:0:0 | Parse(/types.rs) | | file://:0:0:0:0 | CrateGraph | | file://:0:0:0:0 | FindManifests | | lib/src/lib.rs:0:0:0:0 | Extract(lib/src/lib.rs) | From fa1a21b20d61ca1e0463308b39311625543fe5e5 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 21 May 2025 15:12:29 +0200 Subject: [PATCH 567/656] Rust: reduce log-level of diagnostics when extracting library files --- rust/extractor/src/translate/base.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 44a6610abb5..62900083933 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -210,6 +210,14 @@ impl<'a> Translator<'a> { full_message: String, location: (LineCol, LineCol), ) { + let severity = if self.source_kind == SourceKind::Library { + match severity { + DiagnosticSeverity::Error => DiagnosticSeverity::Info, + _ => DiagnosticSeverity::Debug, + } + } else { + severity + }; let (start, end) = location; dispatch_to_tracing!( severity, From a6cd60f20e647116292d2048a96343a63e5af935 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 21 May 2025 16:18:20 +0200 Subject: [PATCH 568/656] Rust: address comments --- rust/extractor/src/translate/base.rs | 48 ++++++++++++++++------------ 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 62900083933..01b00bfbdfd 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -640,33 +640,41 @@ impl<'a> Translator<'a> { pub(crate) fn should_be_excluded(&self, item: &impl ast::AstNode) -> bool { if self.source_kind == SourceKind::Library { let syntax = item.syntax(); - if let Some(body) = syntax.parent().and_then(Fn::cast).and_then(|x| x.body()) { - if body.syntax() == syntax { - tracing::debug!("Skipping Fn body"); - return true; - } + if syntax + .parent() + .and_then(Fn::cast) + .and_then(|x| x.body()) + .is_some_and(|body| body.syntax() == syntax) + { + tracing::debug!("Skipping Fn body"); + return true; } - if let Some(body) = syntax.parent().and_then(Const::cast).and_then(|x| x.body()) { - if body.syntax() == syntax { - tracing::debug!("Skipping Const body"); - return true; - } + if syntax + .parent() + .and_then(Const::cast) + .and_then(|x| x.body()) + .is_some_and(|body| body.syntax() == syntax) + { + tracing::debug!("Skipping Const body"); + return true; } - if let Some(body) = syntax + if syntax .parent() .and_then(Static::cast) .and_then(|x| x.body()) + .is_some_and(|body| body.syntax() == syntax) { - if body.syntax() == syntax { - tracing::debug!("Skipping Static body"); - return true; - } + tracing::debug!("Skipping Static body"); + return true; } - if let Some(pat) = syntax.parent().and_then(Param::cast).and_then(|x| x.pat()) { - if pat.syntax() == syntax { - tracing::debug!("Skipping parameter"); - return true; - } + if syntax + .parent() + .and_then(Param::cast) + .and_then(|x| x.pat()) + .is_some_and(|pat| pat.syntax() == syntax) + { + tracing::debug!("Skipping parameter"); + return true; } } false From 28be2086ade3668c6068e8d29f7f9fcd322a3faa Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Wed, 21 May 2025 17:32:02 +0200 Subject: [PATCH 569/656] Rust: drop too noisy log statements --- rust/extractor/src/translate/base.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 01b00bfbdfd..e440e00cb25 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -646,7 +646,6 @@ impl<'a> Translator<'a> { .and_then(|x| x.body()) .is_some_and(|body| body.syntax() == syntax) { - tracing::debug!("Skipping Fn body"); return true; } if syntax @@ -655,7 +654,6 @@ impl<'a> Translator<'a> { .and_then(|x| x.body()) .is_some_and(|body| body.syntax() == syntax) { - tracing::debug!("Skipping Const body"); return true; } if syntax @@ -664,7 +662,6 @@ impl<'a> Translator<'a> { .and_then(|x| x.body()) .is_some_and(|body| body.syntax() == syntax) { - tracing::debug!("Skipping Static body"); return true; } if syntax @@ -673,7 +670,6 @@ impl<'a> Translator<'a> { .and_then(|x| x.pat()) .is_some_and(|pat| pat.syntax() == syntax) { - tracing::debug!("Skipping parameter"); return true; } } From 36f5e78a7eab78077c0bea4804fd6c439f0acecb Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 22 May 2025 10:17:44 +0200 Subject: [PATCH 570/656] Rust: Remove unused impl type --- rust/ql/lib/codeql/rust/internal/Type.qll | 70 ------------------- .../lib/codeql/rust/internal/TypeMention.qll | 50 ------------- 2 files changed, 120 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/Type.qll index bb698236deb..db7938b3cf1 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/Type.qll @@ -13,7 +13,6 @@ newtype TType = TStruct(Struct s) { Stages::TypeInferenceStage::ref() } or TEnum(Enum e) or TTrait(Trait t) or - TImpl(Impl i) or TArrayType() or // todo: add size? TRefType() or // todo: add mut? TTypeParamTypeParameter(TypeParam t) or @@ -132,75 +131,6 @@ class TraitType extends Type, TTrait { override Location getLocation() { result = trait.getLocation() } } -/** - * An `impl` block type. - * - * Although `impl` blocks are not really types, we treat them as such in order - * to be able to match type parameters from structs (or enums) with type - * parameters from `impl` blocks. For example, in - * - * ```rust - * struct S(T1); - * - * impl S { - * fn id(self) -> S { self } - * } - * - * let x : S(i64) = S(42); - * x.id(); - * ``` - * - * we pretend that the `impl` block is a base type mention of the struct `S`, - * with type argument `T1`. This means that from knowing that `x` has type - * `S(i64)`, we can first match `i64` with `T1`, and then by matching `T1` with - * `T2`, we can match `i64` with `T2`. - * - * `impl` blocks can also have base type mentions, namely the trait that they - * implement (if any). Example: - * - * ```rust - * struct S(T1); - * - * trait Trait { - * fn f(self) -> T2; - * - * fn g(self) -> T2 { self.f() } - * } - * - * impl Trait for S { // `Trait` is a base type mention of this `impl` block - * fn f(self) -> T3 { - * match self { - * S(x) => x - * } - * } - * } - * - * let x : S(i64) = S(42); - * x.g(); - * ``` - * - * In this case we can match `i64` with `T1`, `T1` with `T3`, and `T3` with `T2`, - * allowing us match `i64` with `T2`, and hence infer that the return type of `g` - * is `i64`. - */ -class ImplType extends Type, TImpl { - private Impl impl; - - ImplType() { this = TImpl(impl) } - - override StructField getStructField(string name) { none() } - - override TupleField getTupleField(int i) { none() } - - override TypeParameter getTypeParameter(int i) { - result = TTypeParamTypeParameter(impl.getGenericParamList().getTypeParam(i)) - } - - override string toString() { result = impl.toString() } - - override Location getLocation() { result = impl.getLocation() } -} - /** * An array type. * diff --git a/rust/ql/lib/codeql/rust/internal/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/TypeMention.qll index d12cdf8ac3e..a957a82149f 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeMention.qll @@ -189,56 +189,6 @@ class TypeAliasMention extends TypeMention, TypeAlias { override Type resolveType() { result = t } } -/** - * Holds if the `i`th type argument of `selfPath`, belonging to `impl`, resolves - * to type parameter `tp`. - * - * Example: - * - * ```rust - * impl Foo for Bar { ... } - * // ^^^^^^ selfPath - * // ^ tp - * ``` - */ -pragma[nomagic] -private predicate isImplSelfTypeParam( - ImplItemNode impl, PathMention selfPath, int i, TypeParameter tp -) { - exists(PathMention path | - selfPath = impl.getSelfPath() and - path = selfPath.getSegment().getGenericArgList().getTypeArg(i).(PathTypeRepr).getPath() and - tp = path.resolveType() - ) -} - -class ImplMention extends TypeMention, ImplItemNode { - override TypeReprMention getTypeArgument(int i) { none() } - - override Type resolveType() { result = TImpl(this) } - - override Type resolveTypeAt(TypePath path) { - result = TImpl(this) and - path.isEmpty() - or - // For example, in - // - // ```rust - // struct S(T1); - // - // impl S { ... } - // ``` - // - // We get that the type path "0" resolves to `T1` for the `impl` block, - // which is considered a base type mention of `S`. - exists(PathMention selfPath, TypeParameter tp, int i | - isImplSelfTypeParam(this, selfPath, pragma[only_bind_into](i), tp) and - result = selfPath.resolveType().getTypeParameter(pragma[only_bind_into](i)) and - path = TypePath::singleton(tp) - ) - } -} - class TraitMention extends TypeMention, TraitItemNode { override TypeMention getTypeArgument(int i) { result = this.getTypeParam(i) From 76737cb53aaa0d024bab996aaa4a4b0b4625e307 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Thu, 22 May 2025 10:13:07 +0200 Subject: [PATCH 571/656] Rust: Follow-up changes after rebase --- .../PathResolutionConsistency.ql | 6 ++++++ rust/ql/lib/codeql/rust/internal/PathResolution.qll | 5 +---- .../CONSISTENCY/PathResolutionConsistency.expected | 13 +++++++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/rust/ql/consistency-queries/PathResolutionConsistency.ql b/rust/ql/consistency-queries/PathResolutionConsistency.ql index 555b8239996..db93f4b2860 100644 --- a/rust/ql/consistency-queries/PathResolutionConsistency.ql +++ b/rust/ql/consistency-queries/PathResolutionConsistency.ql @@ -5,6 +5,8 @@ * @id rust/diagnostics/path-resolution-consistency */ +private import rust +private import codeql.rust.internal.PathResolution private import codeql.rust.internal.PathResolutionConsistency as PathResolutionConsistency private import codeql.rust.elements.Locatable private import codeql.Locations @@ -25,3 +27,7 @@ query predicate multipleMethodCallTargets(SourceLocatable a, SourceLocatable b) query predicate multiplePathResolutions(SourceLocatable a, SourceLocatable b) { PathResolutionConsistency::multiplePathResolutions(a, b) } + +query predicate multipleCanonicalPaths(SourceLocatable i, SourceLocatable c, string path) { + PathResolutionConsistency::multipleCanonicalPaths(i, c, path) +} diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index a3535b7f346..6ca0b88814c 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -354,10 +354,7 @@ class CrateItemNode extends ItemNode instanceof Crate { this.hasCanonicalPath(c) and exists(ModuleLikeNode m | child.getImmediateParent() = m and - not m = child.(SourceFileItemNode).getSuper() - | - m = super.getModule() // the special `crate` root module inserted by the extractor - or + not m = child.(SourceFileItemNode).getSuper() and m = super.getSourceFile() ) } diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected index cdd925c7ad1..55de4510344 100644 --- a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected @@ -1,3 +1,16 @@ multipleMethodCallTargets | web_frameworks.rs:194:30:194:74 | ... .get(...) | file://:0:0:0:0 | fn get | | web_frameworks.rs:194:30:194:74 | ... .get(...) | file://:0:0:0:0 | fn get | +multipleCanonicalPaths +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | From 7e5f6523c5a9d5f699986a7dda9e054dd7b6c50f Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Thu, 22 May 2025 11:35:54 +0200 Subject: [PATCH 572/656] Rust: disable ResolvePaths when extracting library source files --- rust/extractor/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index 536d86f67f0..1b681d448d2 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -315,7 +315,7 @@ fn main() -> anyhow::Result<()> { file, &semantics, vfs, - resolve_paths, + ResolvePaths::No, SourceKind::Library, ); extractor.archiver.archive(file); From 852203911afc2f8b271660fd9264763a6ab64db8 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 22 May 2025 11:13:56 +0100 Subject: [PATCH 573/656] Rust: Equal -> Equals. --- .../codeql/rust/elements/ComparisonOperation.qll | 16 ++++++++-------- .../UncontrolledAllocationSizeExtensions.qll | 4 ++-- .../test/library-tests/operations/Operations.ql | 8 ++++---- rust/ql/test/library-tests/operations/test.rs | 8 ++++---- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll index cbd9ae91a27..24fe9b0b19d 100644 --- a/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll @@ -22,15 +22,15 @@ final class EqualityOperation = EqualityOperationImpl; /** * The equal comparison operation, `==`. */ -final class EqualOperation extends EqualityOperationImpl { - EqualOperation() { this.getOperatorName() = "==" } +final class EqualsOperation extends EqualityOperationImpl { + EqualsOperation() { this.getOperatorName() = "==" } } /** * The not equal comparison operation, `!=`. */ -final class NotEqualOperation extends EqualityOperationImpl { - NotEqualOperation() { this.getOperatorName() = "!=" } +final class NotEqualsOperation extends EqualityOperationImpl { + NotEqualsOperation() { this.getOperatorName() = "!=" } } /** @@ -81,8 +81,8 @@ final class GreaterThanOperation extends RelationalOperationImpl { /** * The less than or equal comparison operation, `<=`. */ -final class LessOrEqualOperation extends RelationalOperationImpl { - LessOrEqualOperation() { this.getOperatorName() = "<=" } +final class LessOrEqualsOperation extends RelationalOperationImpl { + LessOrEqualsOperation() { this.getOperatorName() = "<=" } override Expr getGreaterOperand() { result = this.getRhs() } @@ -92,8 +92,8 @@ final class LessOrEqualOperation extends RelationalOperationImpl { /** * The greater than or equal comparison operation, `>=`. */ -final class GreaterOrEqualOperation extends RelationalOperationImpl { - GreaterOrEqualOperation() { this.getOperatorName() = ">=" } +final class GreaterOrEqualsOperation extends RelationalOperationImpl { + GreaterOrEqualsOperation() { this.getOperatorName() = ">=" } override Expr getGreaterOperand() { result = this.getLhs() } diff --git a/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll b/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll index ab543d5a63d..2f4898f6e9d 100644 --- a/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/UncontrolledAllocationSizeExtensions.qll @@ -55,11 +55,11 @@ module UncontrolledAllocationSize { node = cmp.(RelationalOperation).getGreaterOperand().getACfgNode() and branch = false or - cmp instanceof EqualOperation and + cmp instanceof EqualsOperation and [cmp.getLhs(), cmp.getRhs()].getACfgNode() = node and branch = true or - cmp instanceof NotEqualOperation and + cmp instanceof NotEqualsOperation and [cmp.getLhs(), cmp.getRhs()].getACfgNode() = node and branch = false ) diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql index af7ecefb1c3..482373c8d05 100644 --- a/rust/ql/test/library-tests/operations/Operations.ql +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -18,9 +18,9 @@ string describe(Expr op) { or op instanceof EqualityOperation and result = "EqualityOperation" or - op instanceof EqualOperation and result = "EqualOperation" + op instanceof EqualsOperation and result = "EqualsOperation" or - op instanceof NotEqualOperation and result = "NotEqualOperation" + op instanceof NotEqualsOperation and result = "NotEqualsOperation" or op instanceof RelationalOperation and result = "RelationalOperation" or @@ -28,9 +28,9 @@ string describe(Expr op) { or op instanceof GreaterThanOperation and result = "GreaterThanOperation" or - op instanceof LessOrEqualOperation and result = "LessOrEqualOperation" + op instanceof LessOrEqualsOperation and result = "LessOrEqualsOperation" or - op instanceof GreaterOrEqualOperation and result = "GreaterOrEqualOperation" + op instanceof GreaterOrEqualsOperation and result = "GreaterOrEqualsOperation" } module OperationsTest implements TestSig { diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs index 06c9bbe6db1..dba47f5faa3 100644 --- a/rust/ql/test/library-tests/operations/test.rs +++ b/rust/ql/test/library-tests/operations/test.rs @@ -11,12 +11,12 @@ fn test_operations( x = y; // $ Operation Op== Operands=2 AssignmentOperation BinaryExpr // comparison operations - x == y; // $ Operation Op=== Operands=2 BinaryExpr ComparisonOperation EqualityOperation EqualOperation - x != y; // $ Operation Op=!= Operands=2 BinaryExpr ComparisonOperation EqualityOperation NotEqualOperation + x == y; // $ Operation Op=== Operands=2 BinaryExpr ComparisonOperation EqualityOperation EqualsOperation + x != y; // $ Operation Op=!= Operands=2 BinaryExpr ComparisonOperation EqualityOperation NotEqualsOperation x < y; // $ Operation Op=< Operands=2 BinaryExpr ComparisonOperation RelationalOperation LessThanOperation Greater=y Lesser=x - x <= y; // $ Operation Op=<= Operands=2 BinaryExpr ComparisonOperation RelationalOperation LessOrEqualOperation Greater=y Lesser=x + x <= y; // $ Operation Op=<= Operands=2 BinaryExpr ComparisonOperation RelationalOperation LessOrEqualsOperation Greater=y Lesser=x x > y; // $ Operation Op=> Operands=2 BinaryExpr ComparisonOperation RelationalOperation GreaterThanOperation Greater=x Lesser=y - x >= y; // $ Operation Op=>= Operands=2 BinaryExpr ComparisonOperation RelationalOperation GreaterOrEqualOperation Greater=x Lesser=y + x >= y; // $ Operation Op=>= Operands=2 BinaryExpr ComparisonOperation RelationalOperation GreaterOrEqualsOperation Greater=x Lesser=y // arithmetic operations x + y; // $ Operation Op=+ Operands=2 BinaryExpr From 775338ebdd74df612b04d50a4f344495cd790d08 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 22 May 2025 12:21:20 +0100 Subject: [PATCH 574/656] Rename `getArrayValue` to `getAValue` --- .../semmle/code/java/frameworks/spring/SpringController.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll index cb7bd0e3dac..847ca788bb9 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll @@ -159,7 +159,8 @@ class SpringRequestMappingMethod extends SpringControllerMethod { /** Gets the "value" @RequestMapping annotation array string value, if present. */ - string getArrayValue() { result = requestMappingAnnotation.getAStringArrayValue("value") } + string getAValue() { result = requestMappingAnnotation.getAStringArrayValue("value") } + /** Gets the "method" @RequestMapping annotation value, if present. */ string getMethodValue() { result = requestMappingAnnotation.getAnEnumConstantArrayValue("method").getName() From 708bbe391e3b113f760e778411e09c47b4e49f73 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 22 May 2025 12:22:34 +0100 Subject: [PATCH 575/656] Add test for `SpringRequestMappingMethod.getAValue` --- .../controller/RequestController.expected | 0 .../spring/controller/RequestController.ql | 18 +++++ .../frameworks/spring/controller/Test.java | 72 ++++++++++--------- 3 files changed, 58 insertions(+), 32 deletions(-) create mode 100644 java/ql/test/library-tests/frameworks/spring/controller/RequestController.expected create mode 100644 java/ql/test/library-tests/frameworks/spring/controller/RequestController.ql diff --git a/java/ql/test/library-tests/frameworks/spring/controller/RequestController.expected b/java/ql/test/library-tests/frameworks/spring/controller/RequestController.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/java/ql/test/library-tests/frameworks/spring/controller/RequestController.ql b/java/ql/test/library-tests/frameworks/spring/controller/RequestController.ql new file mode 100644 index 00000000000..b1c1c1c8600 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/spring/controller/RequestController.ql @@ -0,0 +1,18 @@ +import java +import utils.test.InlineExpectationsTest +private import semmle.code.java.frameworks.spring.SpringController + +module TestRequestController implements TestSig { + string getARelevantTag() { result = "RequestMappingURL" } + + predicate hasActualResult(Location location, string element, string tag, string value) { + tag = "RequestMappingURL" and + exists(SpringRequestMappingMethod m | + m.getLocation() = location and + element = m.toString() and + value = "\"" + m.getAValue() + "\"" + ) + } +} + +import MakeTest diff --git a/java/ql/test/library-tests/frameworks/spring/controller/Test.java b/java/ql/test/library-tests/frameworks/spring/controller/Test.java index 6267073ce87..ad4fbc89f44 100644 --- a/java/ql/test/library-tests/frameworks/spring/controller/Test.java +++ b/java/ql/test/library-tests/frameworks/spring/controller/Test.java @@ -32,92 +32,93 @@ import org.springframework.web.bind.annotation.SessionAttribute; public class Test { - static void sink(Object o) {} + static void sink(Object o) { + } @Controller static class NotTaintedTest { @RequestMapping("/") - public void get(WebRequest src) { + public void get(WebRequest src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(NativeWebRequest src) { + public void get(NativeWebRequest src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(ServletRequest src) { + public void get(ServletRequest src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(HttpSession src) { + public void get(HttpSession src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(PushBuilder src) { + public void get(PushBuilder src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(Principal src) { + public void get(Principal src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(HttpMethod src) { + public void get(HttpMethod src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(Locale src) { + public void get(Locale src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(TimeZone src) { + public void get(TimeZone src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(ZoneId src) { + public void get(ZoneId src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(OutputStream src) { + public void get(OutputStream src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(Writer src) { + public void get(Writer src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(RedirectAttributes src) { + public void get(RedirectAttributes src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(Errors src) { + public void get(Errors src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(SessionStatus src) { + public void get(SessionStatus src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(UriComponentsBuilder src) { + public void get(UriComponentsBuilder src) { // $ RequestMappingURL="/" sink(src); } @RequestMapping("/") - public void get(Pageable src) { + public void get(Pageable src) { // $ RequestMappingURL="/" sink(src); } } @@ -125,62 +126,62 @@ public class Test { @Controller static class ExplicitlyTaintedTest { @RequestMapping("/") - public void get(InputStream src) { + public void get(InputStream src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void get(Reader src) { + public void get(Reader src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void matrixVariable(@MatrixVariable Object src) { + public void matrixVariable(@MatrixVariable Object src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void requestParam(@RequestParam Object src) { + public void requestParam(@RequestParam Object src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void requestHeader(@RequestHeader Object src) { + public void requestHeader(@RequestHeader Object src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void cookieValue(@CookieValue Object src) { + public void cookieValue(@CookieValue Object src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void requestPart(@RequestPart Object src) { + public void requestPart(@RequestPart Object src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void pathVariable(@PathVariable Object src) { + public void pathVariable(@PathVariable Object src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void requestBody(@RequestBody Object src) { + public void requestBody(@RequestBody Object src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void get(HttpEntity src) { + public void get(HttpEntity src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void requestAttribute(@RequestAttribute Object src) { + public void requestAttribute(@RequestAttribute Object src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void sessionAttribute(@SessionAttribute Object src) { + public void sessionAttribute(@SessionAttribute Object src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } } @@ -191,13 +192,20 @@ public class Test { } @RequestMapping("/") - public void get(String src) { + public void get(String src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } @RequestMapping("/") - public void get1(Pojo src) { + public void get1(Pojo src) { // $ RequestMappingURL="/" sink(src); // $hasValueFlow } } + + @Controller + static class MultipleValuesTest { + @RequestMapping({"/a", "/b"}) + public void get(WebRequest src) { // $ RequestMappingURL="/a" RequestMappingURL="/b" + } + } } From 59d4f039d8e8bf5b8b90390de7a24bada2c7b17d Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 22 May 2025 12:23:04 +0100 Subject: [PATCH 576/656] Deprecate `SpringRequestMappingMethod.getValue` (which didn't work) --- .../semmle/code/java/frameworks/spring/SpringController.qll | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll index 847ca788bb9..4717cf031a2 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll @@ -153,10 +153,8 @@ class SpringRequestMappingMethod extends SpringControllerMethod { result = this.getProducesExpr().(CompileTimeConstantExpr).getStringValue() } - /** Gets the "value" @RequestMapping annotation value, if present. */ - string getValue() { result = requestMappingAnnotation.getStringValue("value") } - - + /** DEPRECATED: Use `getAValue()` instead. */ + deprecated string getValue() { result = requestMappingAnnotation.getStringValue("value") } /** Gets the "value" @RequestMapping annotation array string value, if present. */ string getAValue() { result = requestMappingAnnotation.getAStringArrayValue("value") } From 45475c5c1debec552a30f0b1a05bfbe017b17146 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 22 May 2025 12:23:15 +0100 Subject: [PATCH 577/656] Add change note --- .../change-notes/2025-05-22-spring-request-mapping-value.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2025-05-22-spring-request-mapping-value.md diff --git a/java/ql/lib/change-notes/2025-05-22-spring-request-mapping-value.md b/java/ql/lib/change-notes/2025-05-22-spring-request-mapping-value.md new file mode 100644 index 00000000000..8b7effc535d --- /dev/null +++ b/java/ql/lib/change-notes/2025-05-22-spring-request-mapping-value.md @@ -0,0 +1,4 @@ +--- +category: deprecated +--- +* The predicate `getValue()` on `SpringRequestMappingMethod` is now deprecated. Use `getAValue()` instead. From a4788fd8160c4842c2897f025d2e36bf10075852 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Thu, 22 May 2025 13:36:38 +0200 Subject: [PATCH 578/656] Rust: update expected output --- .../PathResolutionConsistency.expected | 13 ++ .../PathResolutionConsistency.expected | 13 ++ .../PathResolutionConsistency.expected | 13 ++ .../PathResolutionConsistency.expected | 23 ++++ .../PathResolutionConsistency.expected | 13 ++ .../PathResolutionConsistency.expected | 13 ++ .../UncontrolledAllocationSize.expected | 117 ++++++++---------- 7 files changed, 142 insertions(+), 63 deletions(-) create mode 100644 rust/ql/test/extractor-tests/crate_graph/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/query-tests/security/CWE-327/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/query-tests/security/CWE-328/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/test/extractor-tests/crate_graph/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/extractor-tests/crate_graph/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..0aa77163252 --- /dev/null +++ b/rust/ql/test/extractor-tests/crate_graph/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,13 @@ +multipleCanonicalPaths +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..0aa77163252 --- /dev/null +++ b/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,13 @@ +multipleCanonicalPaths +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected index 03a2899da09..88e64c648bc 100644 --- a/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected @@ -39,3 +39,16 @@ multiplePathResolutions | src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | | src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | | src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | +multipleCanonicalPaths +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..ea9e17f0c1d --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,23 @@ +multipleCanonicalPaths +| file://:0:0:0:0 | fn encode | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode | +| file://:0:0:0:0 | fn encode | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode | +| file://:0:0:0:0 | fn encode_by_ref | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode_by_ref | +| file://:0:0:0:0 | fn encode_by_ref | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode_by_ref | +| file://:0:0:0:0 | fn produces | file://:0:0:0:0 | Crate(core@0.0.0) | ::produces | +| file://:0:0:0:0 | fn produces | file://:0:0:0:0 | Crate(core@0.0.0) | ::produces | +| file://:0:0:0:0 | fn size_hint | file://:0:0:0:0 | Crate(core@0.0.0) | ::size_hint | +| file://:0:0:0:0 | fn size_hint | file://:0:0:0:0 | Crate(core@0.0.0) | ::size_hint | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | impl ...::Encode::<...> for Option::<...> { ... } | file://:0:0:0:0 | Crate(core@0.0.0) | | +| file://:0:0:0:0 | impl ...::Encode::<...> for Option::<...> { ... } | file://:0:0:0:0 | Crate(core@0.0.0) | | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/query-tests/security/CWE-327/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-327/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..0aa77163252 --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-327/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,13 @@ +multipleCanonicalPaths +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/query-tests/security/CWE-328/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-328/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..0aa77163252 --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-328/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,13 @@ +multipleCanonicalPaths +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected index d2b3e2e156c..0e9acca98d7 100644 --- a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected +++ b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected @@ -53,40 +53,36 @@ edges | main.rs:18:41:18:41 | v | main.rs:32:60:32:89 | ... * ... | provenance | | | main.rs:18:41:18:41 | v | main.rs:35:9:35:10 | s6 | provenance | | | main.rs:20:9:20:10 | l2 | main.rs:21:31:21:32 | l2 | provenance | | -| main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | main.rs:20:14:20:63 | ... .unwrap() | provenance | MaD:33 | +| main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | main.rs:20:14:20:63 | ... .unwrap() | provenance | MaD:31 | | main.rs:20:14:20:63 | ... .unwrap() | main.rs:20:9:20:10 | l2 | provenance | | | main.rs:20:50:20:50 | v | main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | provenance | MaD:23 | | main.rs:21:31:21:32 | l2 | main.rs:21:13:21:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:21:31:21:32 | l2 | main.rs:22:31:22:44 | l2.align_to(...) [Ok] | provenance | MaD:17 | | main.rs:21:31:21:32 | l2 | main.rs:23:31:23:44 | l2.align_to(...) [Ok] | provenance | MaD:17 | | main.rs:21:31:21:32 | l2 | main.rs:24:38:24:39 | l2 | provenance | | -| main.rs:22:31:22:44 | l2.align_to(...) [Ok] | main.rs:22:31:22:53 | ... .unwrap() | provenance | MaD:33 | +| main.rs:22:31:22:44 | l2.align_to(...) [Ok] | main.rs:22:31:22:53 | ... .unwrap() | provenance | MaD:31 | | main.rs:22:31:22:53 | ... .unwrap() | main.rs:22:13:22:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:23:31:23:44 | l2.align_to(...) [Ok] | main.rs:23:31:23:53 | ... .unwrap() | provenance | MaD:33 | -| main.rs:23:31:23:53 | ... .unwrap() | main.rs:23:31:23:68 | ... .pad_to_align() | provenance | MaD:26 | +| main.rs:23:31:23:44 | l2.align_to(...) [Ok] | main.rs:23:31:23:53 | ... .unwrap() | provenance | MaD:31 | +| main.rs:23:31:23:53 | ... .unwrap() | main.rs:23:31:23:68 | ... .pad_to_align() | provenance | MaD:25 | | main.rs:23:31:23:68 | ... .pad_to_align() | main.rs:23:13:23:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:24:38:24:39 | l2 | main.rs:24:13:24:36 | ...::alloc_zeroed | provenance | MaD:4 Sink:MaD:4 | | main.rs:29:9:29:10 | l4 | main.rs:30:31:30:32 | l4 | provenance | | | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | main.rs:29:9:29:10 | l4 | provenance | | -| main.rs:29:60:29:60 | v | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | provenance | MaD:25 | +| main.rs:29:60:29:60 | v | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | provenance | MaD:24 | | main.rs:30:31:30:32 | l4 | main.rs:30:13:30:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:32:9:32:10 | l5 | main.rs:33:31:33:32 | l5 | provenance | | | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | main.rs:32:9:32:10 | l5 | provenance | | -| main.rs:32:60:32:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:25 | +| main.rs:32:60:32:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:24 | | main.rs:33:31:33:32 | l5 | main.rs:33:13:33:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:35:9:35:10 | s6 | main.rs:36:60:36:61 | s6 | provenance | | | main.rs:36:9:36:10 | l6 | main.rs:37:31:37:32 | l6 | provenance | | -| main.rs:36:9:36:10 | l6 [Layout.size] | main.rs:37:31:37:32 | l6 [Layout.size] | provenance | | | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | main.rs:36:9:36:10 | l6 | provenance | | -| main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) [Layout.size] | main.rs:36:9:36:10 | l6 [Layout.size] | provenance | | -| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:25 | -| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) [Layout.size] | provenance | MaD:24 | +| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:24 | | main.rs:37:31:37:32 | l6 | main.rs:37:13:37:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:37:31:37:32 | l6 | main.rs:39:60:39:68 | l6.size() | provenance | MaD:30 | -| main.rs:37:31:37:32 | l6 [Layout.size] | main.rs:39:60:39:68 | l6.size() | provenance | MaD:29 | +| main.rs:37:31:37:32 | l6 | main.rs:39:60:39:68 | l6.size() | provenance | MaD:28 | | main.rs:39:9:39:10 | l7 | main.rs:40:31:40:32 | l7 | provenance | | | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | main.rs:39:9:39:10 | l7 | provenance | | -| main.rs:39:60:39:68 | l6.size() | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | provenance | MaD:25 | +| main.rs:39:60:39:68 | l6.size() | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | provenance | MaD:24 | | main.rs:40:31:40:32 | l7 | main.rs:40:13:40:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:43:44:43:51 | ...: usize | main.rs:50:41:50:41 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:51:41:51:45 | ... + ... | provenance | | @@ -94,25 +90,25 @@ edges | main.rs:43:44:43:51 | ...: usize | main.rs:54:48:54:53 | ... * ... | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:58:34:58:34 | v | provenance | | | main.rs:43:44:43:51 | ...: usize | main.rs:67:46:67:46 | v | provenance | | -| main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | provenance | MaD:33 | +| main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | provenance | MaD:31 | | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | main.rs:50:31:50:53 | ... .0 | provenance | | | main.rs:50:31:50:53 | ... .0 | main.rs:50:13:50:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:50:41:50:41 | v | main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:27 | -| main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | provenance | MaD:33 | +| main.rs:50:41:50:41 | v | main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:26 | +| main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | provenance | MaD:31 | | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | main.rs:51:31:51:57 | ... .0 | provenance | | | main.rs:51:31:51:57 | ... .0 | main.rs:51:13:51:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:51:41:51:45 | ... + ... | main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:27 | -| main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | main.rs:53:31:53:58 | ... .unwrap() | provenance | MaD:33 | +| main.rs:51:41:51:45 | ... + ... | main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:26 | +| main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | main.rs:53:31:53:58 | ... .unwrap() | provenance | MaD:31 | | main.rs:53:31:53:58 | ... .unwrap() | main.rs:53:13:53:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:53:48:53:48 | v | main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | provenance | MaD:28 | -| main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | main.rs:54:31:54:63 | ... .unwrap() | provenance | MaD:33 | +| main.rs:53:48:53:48 | v | main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | provenance | MaD:27 | +| main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | main.rs:54:31:54:63 | ... .unwrap() | provenance | MaD:31 | | main.rs:54:31:54:63 | ... .unwrap() | main.rs:54:13:54:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:54:48:54:53 | ... * ... | main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | provenance | MaD:28 | +| main.rs:54:48:54:53 | ... * ... | main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | provenance | MaD:27 | | main.rs:58:9:58:20 | TuplePat [tuple.0] | main.rs:58:10:58:11 | k1 | provenance | | | main.rs:58:10:58:11 | k1 | main.rs:59:31:59:32 | k1 | provenance | | -| main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | provenance | MaD:32 | +| main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | provenance | MaD:30 | | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | main.rs:58:9:58:20 | TuplePat [tuple.0] | provenance | | -| main.rs:58:34:58:34 | v | main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | provenance | MaD:27 | +| main.rs:58:34:58:34 | v | main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | provenance | MaD:26 | | main.rs:59:31:59:32 | k1 | main.rs:59:13:59:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:59:31:59:32 | k1 | main.rs:60:34:60:35 | k1 | provenance | | | main.rs:59:31:59:32 | k1 | main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | provenance | MaD:20 | @@ -120,28 +116,28 @@ edges | main.rs:59:31:59:32 | k1 | main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | provenance | MaD:22 | | main.rs:60:9:60:20 | TuplePat [tuple.0] | main.rs:60:10:60:11 | k2 | provenance | | | main.rs:60:10:60:11 | k2 | main.rs:61:31:61:32 | k2 | provenance | | -| main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | provenance | MaD:33 | +| main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | provenance | MaD:31 | | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | main.rs:60:9:60:20 | TuplePat [tuple.0] | provenance | | | main.rs:60:34:60:35 | k1 | main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | provenance | MaD:19 | | main.rs:61:31:61:32 | k2 | main.rs:61:13:61:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:62:9:62:20 | TuplePat [tuple.0] | main.rs:62:10:62:11 | k3 | provenance | | | main.rs:62:10:62:11 | k3 | main.rs:63:31:63:32 | k3 | provenance | | -| main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | provenance | MaD:33 | +| main.rs:62:24:62:36 | k1.extend(...) [Ok, tuple.0] | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | provenance | MaD:31 | | main.rs:62:24:62:45 | ... .unwrap() [tuple.0] | main.rs:62:9:62:20 | TuplePat [tuple.0] | provenance | | | main.rs:63:31:63:32 | k3 | main.rs:63:13:63:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | main.rs:64:31:64:59 | ... .unwrap() | provenance | MaD:33 | +| main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | main.rs:64:31:64:59 | ... .unwrap() | provenance | MaD:31 | | main.rs:64:31:64:59 | ... .unwrap() | main.rs:64:13:64:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:64:48:64:49 | k1 | main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | provenance | MaD:21 | -| main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | main.rs:65:31:65:59 | ... .unwrap() | provenance | MaD:33 | +| main.rs:65:31:65:50 | k1.extend_packed(...) [Ok] | main.rs:65:31:65:59 | ... .unwrap() | provenance | MaD:31 | | main.rs:65:31:65:59 | ... .unwrap() | main.rs:65:13:65:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:67:9:67:10 | l4 | main.rs:68:31:68:32 | l4 | provenance | | -| main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | main.rs:67:14:67:56 | ... .unwrap() | provenance | MaD:33 | +| main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | main.rs:67:14:67:56 | ... .unwrap() | provenance | MaD:31 | | main.rs:67:14:67:56 | ... .unwrap() | main.rs:67:9:67:10 | l4 | provenance | | | main.rs:67:46:67:46 | v | main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | | main.rs:68:31:68:32 | l4 | main.rs:68:13:68:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:86:35:86:42 | ...: usize | main.rs:87:54:87:54 | v | provenance | | | main.rs:87:9:87:14 | layout | main.rs:88:31:88:36 | layout | provenance | | -| main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | main.rs:87:18:87:67 | ... .unwrap() | provenance | MaD:33 | +| main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | main.rs:87:18:87:67 | ... .unwrap() | provenance | MaD:31 | | main.rs:87:18:87:67 | ... .unwrap() | main.rs:87:9:87:14 | layout | provenance | | | main.rs:87:54:87:54 | v | main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | provenance | MaD:23 | | main.rs:88:31:88:36 | layout | main.rs:88:13:88:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | @@ -154,14 +150,14 @@ edges | main.rs:91:38:91:45 | ...: usize | main.rs:161:55:161:55 | v | provenance | | | main.rs:92:9:92:10 | l1 | main.rs:96:35:96:36 | l1 | provenance | | | main.rs:92:9:92:10 | l1 | main.rs:102:35:102:36 | l1 | provenance | | -| main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | main.rs:92:14:92:57 | ... .unwrap() | provenance | MaD:33 | +| main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | main.rs:92:14:92:57 | ... .unwrap() | provenance | MaD:31 | | main.rs:92:14:92:57 | ... .unwrap() | main.rs:92:9:92:10 | l1 | provenance | | | main.rs:92:47:92:47 | v | main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | | main.rs:96:35:96:36 | l1 | main.rs:96:17:96:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:96:35:96:36 | l1 | main.rs:109:35:109:36 | l1 | provenance | | | main.rs:96:35:96:36 | l1 | main.rs:111:35:111:36 | l1 | provenance | | | main.rs:101:13:101:14 | l3 | main.rs:103:35:103:36 | l3 | provenance | | -| main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | main.rs:101:18:101:61 | ... .unwrap() | provenance | MaD:33 | +| main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | main.rs:101:18:101:61 | ... .unwrap() | provenance | MaD:31 | | main.rs:101:18:101:61 | ... .unwrap() | main.rs:101:13:101:14 | l3 | provenance | | | main.rs:101:51:101:51 | v | main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | | main.rs:102:35:102:36 | l1 | main.rs:102:17:102:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | @@ -174,26 +170,26 @@ edges | main.rs:111:35:111:36 | l1 | main.rs:111:17:111:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:111:35:111:36 | l1 | main.rs:146:35:146:36 | l1 | provenance | | | main.rs:145:13:145:14 | l9 | main.rs:148:35:148:36 | l9 | provenance | | -| main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | main.rs:145:18:145:61 | ... .unwrap() | provenance | MaD:33 | +| main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | main.rs:145:18:145:61 | ... .unwrap() | provenance | MaD:31 | | main.rs:145:18:145:61 | ... .unwrap() | main.rs:145:13:145:14 | l9 | provenance | | | main.rs:145:51:145:51 | v | main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | | main.rs:146:35:146:36 | l1 | main.rs:146:17:146:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:146:35:146:36 | l1 | main.rs:177:31:177:32 | l1 | provenance | | | main.rs:148:35:148:36 | l9 | main.rs:148:17:148:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:151:9:151:11 | l10 | main.rs:152:31:152:33 | l10 | provenance | | -| main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | main.rs:151:15:151:78 | ... .unwrap() | provenance | MaD:33 | +| main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | main.rs:151:15:151:78 | ... .unwrap() | provenance | MaD:31 | | main.rs:151:15:151:78 | ... .unwrap() | main.rs:151:9:151:11 | l10 | provenance | | | main.rs:151:48:151:68 | ...::min(...) | main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | -| main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:36 | +| main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:34 | | main.rs:152:31:152:33 | l10 | main.rs:152:13:152:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:154:9:154:11 | l11 | main.rs:155:31:155:33 | l11 | provenance | | -| main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | main.rs:154:15:154:78 | ... .unwrap() | provenance | MaD:33 | +| main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | main.rs:154:15:154:78 | ... .unwrap() | provenance | MaD:31 | | main.rs:154:15:154:78 | ... .unwrap() | main.rs:154:9:154:11 | l11 | provenance | | | main.rs:154:48:154:68 | ...::max(...) | main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | -| main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:35 | +| main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:33 | | main.rs:155:31:155:33 | l11 | main.rs:155:13:155:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:161:13:161:15 | l13 | main.rs:162:35:162:37 | l13 | provenance | | -| main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | main.rs:161:19:161:68 | ... .unwrap() | provenance | MaD:33 | +| main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | main.rs:161:19:161:68 | ... .unwrap() | provenance | MaD:31 | | main.rs:161:19:161:68 | ... .unwrap() | main.rs:161:13:161:15 | l13 | provenance | | | main.rs:161:55:161:55 | v | main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | provenance | MaD:23 | | main.rs:162:35:162:37 | l13 | main.rs:162:17:162:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | @@ -202,7 +198,7 @@ edges | main.rs:177:31:177:32 | l1 | main.rs:177:13:177:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:183:29:183:36 | ...: usize | main.rs:192:46:192:46 | v | provenance | | | main.rs:192:9:192:10 | l2 | main.rs:193:38:193:39 | l2 | provenance | | -| main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | main.rs:192:14:192:56 | ... .unwrap() | provenance | MaD:33 | +| main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | main.rs:192:14:192:56 | ... .unwrap() | provenance | MaD:31 | | main.rs:192:14:192:56 | ... .unwrap() | main.rs:192:9:192:10 | l2 | provenance | | | main.rs:192:46:192:46 | v | main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | provenance | MaD:18 | | main.rs:193:38:193:39 | l2 | main.rs:193:32:193:36 | alloc | provenance | MaD:10 Sink:MaD:10 | @@ -230,18 +226,18 @@ edges | main.rs:223:26:223:26 | v | main.rs:223:13:223:24 | ...::calloc | provenance | MaD:13 Sink:MaD:13 | | main.rs:223:26:223:26 | v | main.rs:224:31:224:31 | v | provenance | | | main.rs:224:31:224:31 | v | main.rs:224:13:224:25 | ...::realloc | provenance | MaD:15 Sink:MaD:15 | -| main.rs:279:24:279:41 | ...: String | main.rs:280:21:280:47 | user_input.parse() [Ok] | provenance | MaD:34 | +| main.rs:279:24:279:41 | ...: String | main.rs:280:21:280:47 | user_input.parse() [Ok] | provenance | MaD:32 | | main.rs:280:9:280:17 | num_bytes | main.rs:282:54:282:62 | num_bytes | provenance | | | main.rs:280:21:280:47 | user_input.parse() [Ok] | main.rs:280:21:280:48 | TryExpr | provenance | | | main.rs:280:21:280:48 | TryExpr | main.rs:280:9:280:17 | num_bytes | provenance | | | main.rs:282:9:282:14 | layout | main.rs:284:40:284:45 | layout | provenance | | -| main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | main.rs:282:18:282:75 | ... .unwrap() | provenance | MaD:33 | +| main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | main.rs:282:18:282:75 | ... .unwrap() | provenance | MaD:31 | | main.rs:282:18:282:75 | ... .unwrap() | main.rs:282:9:282:14 | layout | provenance | | | main.rs:282:54:282:62 | num_bytes | main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | provenance | MaD:23 | | main.rs:284:40:284:45 | layout | main.rs:284:22:284:38 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | | main.rs:308:25:308:38 | ...::args | main.rs:308:25:308:40 | ...::args(...) [element] | provenance | Src:MaD:16 | -| main.rs:308:25:308:40 | ...::args(...) [element] | main.rs:308:25:308:47 | ... .nth(...) [Some] | provenance | MaD:37 | -| main.rs:308:25:308:47 | ... .nth(...) [Some] | main.rs:308:25:308:74 | ... .unwrap_or(...) | provenance | MaD:31 | +| main.rs:308:25:308:40 | ...::args(...) [element] | main.rs:308:25:308:47 | ... .nth(...) [Some] | provenance | MaD:35 | +| main.rs:308:25:308:47 | ... .nth(...) [Some] | main.rs:308:25:308:74 | ... .unwrap_or(...) | provenance | MaD:29 | | main.rs:308:25:308:74 | ... .unwrap_or(...) | main.rs:279:24:279:41 | ...: String | provenance | | | main.rs:317:9:317:9 | v | main.rs:320:34:320:34 | v | provenance | | | main.rs:317:9:317:9 | v | main.rs:321:42:321:42 | v | provenance | | @@ -249,10 +245,10 @@ edges | main.rs:317:9:317:9 | v | main.rs:323:27:323:27 | v | provenance | | | main.rs:317:9:317:9 | v | main.rs:324:25:324:25 | v | provenance | | | main.rs:317:13:317:26 | ...::args | main.rs:317:13:317:28 | ...::args(...) [element] | provenance | Src:MaD:16 | -| main.rs:317:13:317:28 | ...::args(...) [element] | main.rs:317:13:317:35 | ... .nth(...) [Some] | provenance | MaD:37 | -| main.rs:317:13:317:35 | ... .nth(...) [Some] | main.rs:317:13:317:65 | ... .unwrap_or(...) | provenance | MaD:31 | -| main.rs:317:13:317:65 | ... .unwrap_or(...) | main.rs:317:13:317:82 | ... .parse() [Ok] | provenance | MaD:34 | -| main.rs:317:13:317:82 | ... .parse() [Ok] | main.rs:317:13:317:91 | ... .unwrap() | provenance | MaD:33 | +| main.rs:317:13:317:28 | ...::args(...) [element] | main.rs:317:13:317:35 | ... .nth(...) [Some] | provenance | MaD:35 | +| main.rs:317:13:317:35 | ... .nth(...) [Some] | main.rs:317:13:317:65 | ... .unwrap_or(...) | provenance | MaD:29 | +| main.rs:317:13:317:65 | ... .unwrap_or(...) | main.rs:317:13:317:82 | ... .parse() [Ok] | provenance | MaD:32 | +| main.rs:317:13:317:82 | ... .parse() [Ok] | main.rs:317:13:317:91 | ... .unwrap() | provenance | MaD:31 | | main.rs:317:13:317:91 | ... .unwrap() | main.rs:317:9:317:9 | v | provenance | | | main.rs:320:34:320:34 | v | main.rs:12:36:12:43 | ...: usize | provenance | | | main.rs:321:42:321:42 | v | main.rs:43:44:43:51 | ...: usize | provenance | | @@ -283,20 +279,18 @@ models | 21 | Summary: lang:core; ::extend_packed; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | | 22 | Summary: lang:core; ::extend_packed; Argument[self]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | | 23 | Summary: lang:core; ::from_size_align; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | -| 24 | Summary: lang:core; ::from_size_align_unchecked; Argument[0]; ReturnValue.Field[crate::alloc::layout::Layout::size]; value | -| 25 | Summary: lang:core; ::from_size_align_unchecked; Argument[0]; ReturnValue; taint | -| 26 | Summary: lang:core; ::pad_to_align; Argument[self]; ReturnValue; taint | -| 27 | Summary: lang:core; ::repeat; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)].Field[0]; taint | -| 28 | Summary: lang:core; ::repeat_packed; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | -| 29 | Summary: lang:core; ::size; Argument[self].Field[crate::alloc::layout::Layout::size]; ReturnValue; value | -| 30 | Summary: lang:core; ::size; Argument[self]; ReturnValue; taint | -| 31 | Summary: lang:core; ::unwrap_or; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | -| 32 | Summary: lang:core; ::expect; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | -| 33 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | -| 34 | Summary: lang:core; ::parse; Argument[self]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | -| 35 | Summary: lang:core; crate::cmp::max; Argument[0]; ReturnValue; value | -| 36 | Summary: lang:core; crate::cmp::min; Argument[0]; ReturnValue; value | -| 37 | Summary: lang:core; crate::iter::traits::iterator::Iterator::nth; Argument[self].Element; ReturnValue.Field[crate::option::Option::Some(0)]; value | +| 24 | Summary: lang:core; ::from_size_align_unchecked; Argument[0]; ReturnValue; taint | +| 25 | Summary: lang:core; ::pad_to_align; Argument[self]; ReturnValue; taint | +| 26 | Summary: lang:core; ::repeat; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)].Field[0]; taint | +| 27 | Summary: lang:core; ::repeat_packed; Argument[0]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | +| 28 | Summary: lang:core; ::size; Argument[self]; ReturnValue; taint | +| 29 | Summary: lang:core; ::unwrap_or; Argument[self].Field[crate::option::Option::Some(0)]; ReturnValue; value | +| 30 | Summary: lang:core; ::expect; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | +| 31 | Summary: lang:core; ::unwrap; Argument[self].Field[crate::result::Result::Ok(0)]; ReturnValue; value | +| 32 | Summary: lang:core; ::parse; Argument[self]; ReturnValue.Field[crate::result::Result::Ok(0)]; taint | +| 33 | Summary: lang:core; crate::cmp::max; Argument[0]; ReturnValue; value | +| 34 | Summary: lang:core; crate::cmp::min; Argument[0]; ReturnValue; value | +| 35 | Summary: lang:core; crate::iter::traits::iterator::Iterator::nth; Argument[self].Element; ReturnValue.Field[crate::option::Option::Some(0)]; value | nodes | main.rs:12:36:12:43 | ...: usize | semmle.label | ...: usize | | main.rs:18:13:18:31 | ...::realloc | semmle.label | ...::realloc | @@ -328,13 +322,10 @@ nodes | main.rs:33:31:33:32 | l5 | semmle.label | l5 | | main.rs:35:9:35:10 | s6 | semmle.label | s6 | | main.rs:36:9:36:10 | l6 | semmle.label | l6 | -| main.rs:36:9:36:10 | l6 [Layout.size] | semmle.label | l6 [Layout.size] | | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | semmle.label | ...::from_size_align_unchecked(...) | -| main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) [Layout.size] | semmle.label | ...::from_size_align_unchecked(...) [Layout.size] | | main.rs:36:60:36:61 | s6 | semmle.label | s6 | | main.rs:37:13:37:29 | ...::alloc | semmle.label | ...::alloc | | main.rs:37:31:37:32 | l6 | semmle.label | l6 | -| main.rs:37:31:37:32 | l6 [Layout.size] | semmle.label | l6 [Layout.size] | | main.rs:39:9:39:10 | l7 | semmle.label | l7 | | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | semmle.label | ...::from_size_align_unchecked(...) | | main.rs:39:60:39:68 | l6.size() | semmle.label | l6.size() | From b8fe1a676a2d3cfd888214412e1f62e6655991a5 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 22 May 2025 14:43:17 +0200 Subject: [PATCH 579/656] Swift: Clarify the tag in the Swift updating doc --- swift/third_party/resources/updating.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swift/third_party/resources/updating.md b/swift/third_party/resources/updating.md index 2a5184e0562..80dad329643 100644 --- a/swift/third_party/resources/updating.md +++ b/swift/third_party/resources/updating.md @@ -3,9 +3,9 @@ These files can only be updated having access for the internal repository at the In order to perform a Swift update: 1. Dispatch the [internal `swift-prebuild` workflow](https://github.com/github/semmle-code/actions/workflows/__swift-prebuild.yml) with the appropriate swift - tag. + tag, e.g., `swift-6.1.1-RELEASE`. 2. Dispatch [internal `swift-prepare-resource-dir` workflow](https://github.com/github/semmle-code/actions/workflows/__swift-prepare-resource-dir.yml) with the - appropriate swift tag. + appropriate swift tag, e.g., `swift-6.1.1-RELEASE`. 3. Once the jobs finish, staged artifacts are available at https://github.com/dsp-testing/codeql-swift-artifacts/releases. Copy and paste the sha256 within the `_override` definition in [`load.bzl`](../load.bzl). From 11480d29b7dc425884754ce53a0a0461a786b505 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 21 May 2025 11:26:55 +0100 Subject: [PATCH 580/656] Rust: Add ArithmeticOperation library. --- .../rust/elements/ArithmeticOperation.qll | 41 +++++++++++++++++++ rust/ql/lib/rust.qll | 1 + .../library-tests/operations/Operations.ql | 8 ++++ rust/ql/test/library-tests/operations/test.rs | 22 +++++----- 4 files changed, 61 insertions(+), 11 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/elements/ArithmeticOperation.qll diff --git a/rust/ql/lib/codeql/rust/elements/ArithmeticOperation.qll b/rust/ql/lib/codeql/rust/elements/ArithmeticOperation.qll new file mode 100644 index 00000000000..c91d65c976a --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/ArithmeticOperation.qll @@ -0,0 +1,41 @@ +/** + * Provides classes for arithmetic operations. + */ + +private import codeql.rust.elements.BinaryExpr +private import codeql.rust.elements.PrefixExpr +private import codeql.rust.elements.Operation + +/** + * An arithmetic operation, such as `+`, `*=`, or `-`. + */ +abstract private class ArithmeticOperationImpl extends Operation { } + +final class ArithmeticOperation = ArithmeticOperationImpl; + +/** + * A binary arithmetic operation, such as `+` or `*`. + */ +final class BinaryArithmeticOperation extends BinaryExpr, ArithmeticOperationImpl { + BinaryArithmeticOperation() { + this.getOperatorName() = ["+", "-", "*", "/", "%"] + } +} + +/** + * An arithmetic assignment operation, such as `+=` or `*=`. + */ +final class AssignArithmeticOperation extends BinaryExpr, ArithmeticOperationImpl { + AssignArithmeticOperation() { + this.getOperatorName() = ["+=", "-=", "*=", "/=", "%="] + } +} + +/** + * A prefix arithmetic operation, such as `-`. + */ +final class PrefixArithmeticOperation extends PrefixExpr, ArithmeticOperationImpl { + PrefixArithmeticOperation() { + this.getOperatorName() = "-" + } +} diff --git a/rust/ql/lib/rust.qll b/rust/ql/lib/rust.qll index 4a533b34bad..3f39dee3337 100644 --- a/rust/ql/lib/rust.qll +++ b/rust/ql/lib/rust.qll @@ -4,6 +4,7 @@ import codeql.rust.elements import codeql.Locations import codeql.files.FileSystem import codeql.rust.elements.Operation +import codeql.rust.elements.ArithmeticOperation import codeql.rust.elements.AssignmentOperation import codeql.rust.elements.ComparisonOperation import codeql.rust.elements.LiteralExprExt diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql index 482373c8d05..f33a8dec6b1 100644 --- a/rust/ql/test/library-tests/operations/Operations.ql +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -31,6 +31,14 @@ string describe(Expr op) { op instanceof LessOrEqualsOperation and result = "LessOrEqualsOperation" or op instanceof GreaterOrEqualsOperation and result = "GreaterOrEqualsOperation" + or + op instanceof ArithmeticOperation and result = "ArithmeticOperation" + or + op instanceof BinaryArithmeticOperation and result = "BinaryArithmeticOperation" + or + op instanceof AssignArithmeticOperation and result = "AssignArithmeticOperation" + or + op instanceof PrefixArithmeticOperation and result = "PrefixArithmeticOperation" } module OperationsTest implements TestSig { diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs index dba47f5faa3..a8fce0a0ee8 100644 --- a/rust/ql/test/library-tests/operations/test.rs +++ b/rust/ql/test/library-tests/operations/test.rs @@ -19,17 +19,17 @@ fn test_operations( x >= y; // $ Operation Op=>= Operands=2 BinaryExpr ComparisonOperation RelationalOperation GreaterOrEqualsOperation Greater=x Lesser=y // arithmetic operations - x + y; // $ Operation Op=+ Operands=2 BinaryExpr - x - y; // $ Operation Op=- Operands=2 BinaryExpr - x * y; // $ Operation Op=* Operands=2 BinaryExpr - x / y; // $ Operation Op=/ Operands=2 BinaryExpr - x % y; // $ Operation Op=% Operands=2 BinaryExpr - x += y; // $ Operation Op=+= Operands=2 AssignmentOperation BinaryExpr - x -= y; // $ Operation Op=-= Operands=2 AssignmentOperation BinaryExpr - x *= y; // $ Operation Op=*= Operands=2 AssignmentOperation BinaryExpr - x /= y; // $ Operation Op=/= Operands=2 AssignmentOperation BinaryExpr - x %= y; // $ Operation Op=%= Operands=2 AssignmentOperation BinaryExpr - -x; // $ Operation Op=- Operands=1 PrefixExpr + x + y; // $ Operation Op=+ Operands=2 BinaryExpr ArithmeticOperation BinaryArithmeticOperation + x - y; // $ Operation Op=- Operands=2 BinaryExpr ArithmeticOperation BinaryArithmeticOperation + x * y; // $ Operation Op=* Operands=2 BinaryExpr ArithmeticOperation BinaryArithmeticOperation + x / y; // $ Operation Op=/ Operands=2 BinaryExpr ArithmeticOperation BinaryArithmeticOperation + x % y; // $ Operation Op=% Operands=2 BinaryExpr ArithmeticOperation BinaryArithmeticOperation + x += y; // $ Operation Op=+= Operands=2 AssignmentOperation BinaryExpr ArithmeticOperation AssignArithmeticOperation + x -= y; // $ Operation Op=-= Operands=2 AssignmentOperation BinaryExpr ArithmeticOperation AssignArithmeticOperation + x *= y; // $ Operation Op=*= Operands=2 AssignmentOperation BinaryExpr ArithmeticOperation AssignArithmeticOperation + x /= y; // $ Operation Op=/= Operands=2 AssignmentOperation BinaryExpr ArithmeticOperation AssignArithmeticOperation + x %= y; // $ Operation Op=%= Operands=2 AssignmentOperation BinaryExpr ArithmeticOperation AssignArithmeticOperation + -x; // $ Operation Op=- Operands=1 PrefixExpr ArithmeticOperation PrefixArithmeticOperation // logical operations a && b; // $ Operation Op=&& Operands=2 BinaryExpr LogicalOperation From fafdc1d181a114f43c3c17eb5268eb4a75a62fc1 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 21 May 2025 11:33:28 +0100 Subject: [PATCH 581/656] Rust: Add BitwiseOperation library. --- .../codeql/rust/elements/BitwiseOperation.qll | 27 +++++++++++++++++++ rust/ql/lib/rust.qll | 1 + .../library-tests/operations/Operations.ql | 6 +++++ rust/ql/test/library-tests/operations/test.rs | 20 +++++++------- 4 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/elements/BitwiseOperation.qll diff --git a/rust/ql/lib/codeql/rust/elements/BitwiseOperation.qll b/rust/ql/lib/codeql/rust/elements/BitwiseOperation.qll new file mode 100644 index 00000000000..b906a2216ce --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/BitwiseOperation.qll @@ -0,0 +1,27 @@ +/** + * Provides classes for bitwise operations. + */ + +private import codeql.rust.elements.BinaryExpr +private import codeql.rust.elements.Operation + +/** + * A bitwise operation, such as `&`, `<<`, or `|=`. + */ +abstract private class BitwiseOperationImpl extends Operation { } + +final class BitwiseOperation = BitwiseOperationImpl; + +/** + * A binary bitwise operation, such as `&` or `<<`. + */ +final class BinaryBitwiseOperation extends BinaryExpr, BitwiseOperationImpl { + BinaryBitwiseOperation() { this.getOperatorName() = ["&", "|", "^", "<<", ">>"] } +} + +/** + * A bitwise assignment operation, such as `|=` or `<<=`. + */ +final class AssignBitwiseOperation extends BinaryExpr, BitwiseOperationImpl { + AssignBitwiseOperation() { this.getOperatorName() = ["&=", "|=", "^=", "<<=", ">>="] } +} diff --git a/rust/ql/lib/rust.qll b/rust/ql/lib/rust.qll index 3f39dee3337..e64b0e36abb 100644 --- a/rust/ql/lib/rust.qll +++ b/rust/ql/lib/rust.qll @@ -6,6 +6,7 @@ import codeql.files.FileSystem import codeql.rust.elements.Operation import codeql.rust.elements.ArithmeticOperation import codeql.rust.elements.AssignmentOperation +import codeql.rust.elements.BitwiseOperation import codeql.rust.elements.ComparisonOperation import codeql.rust.elements.LiteralExprExt import codeql.rust.elements.LogicalOperation diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql index f33a8dec6b1..76e9acfde3f 100644 --- a/rust/ql/test/library-tests/operations/Operations.ql +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -39,6 +39,12 @@ string describe(Expr op) { op instanceof AssignArithmeticOperation and result = "AssignArithmeticOperation" or op instanceof PrefixArithmeticOperation and result = "PrefixArithmeticOperation" + or + op instanceof BitwiseOperation and result = "BitwiseOperation" + or + op instanceof BinaryBitwiseOperation and result = "BinaryBitwiseOperation" + or + op instanceof AssignBitwiseOperation and result = "AssignBitwiseOperation" } module OperationsTest implements TestSig { diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs index a8fce0a0ee8..72cb8269636 100644 --- a/rust/ql/test/library-tests/operations/test.rs +++ b/rust/ql/test/library-tests/operations/test.rs @@ -37,16 +37,16 @@ fn test_operations( !a; // $ Operation Op=! Operands=1 PrefixExpr LogicalOperation // bitwise operations - x & y; // $ Operation Op=& Operands=2 BinaryExpr - x | y; // $ Operation Op=| Operands=2 BinaryExpr - x ^ y; // $ Operation Op=^ Operands=2 BinaryExpr - x << y; // $ Operation Op=<< Operands=2 BinaryExpr - x >> y; // $ Operation Op=>> Operands=2 BinaryExpr - x &= y; // $ Operation Op=&= Operands=2 AssignmentOperation BinaryExpr - x |= y; // $ Operation Op=|= Operands=2 AssignmentOperation BinaryExpr - x ^= y; // $ Operation Op=^= Operands=2 AssignmentOperation BinaryExpr - x <<= y; // $ Operation Op=<<= Operands=2 AssignmentOperation BinaryExpr - x >>= y; // $ Operation Op=>>= Operands=2 AssignmentOperation BinaryExpr + x & y; // $ Operation Op=& Operands=2 BinaryExpr BitwiseOperation BinaryBitwiseOperation + x | y; // $ Operation Op=| Operands=2 BinaryExpr BitwiseOperation BinaryBitwiseOperation + x ^ y; // $ Operation Op=^ Operands=2 BinaryExpr BitwiseOperation BinaryBitwiseOperation + x << y; // $ Operation Op=<< Operands=2 BinaryExpr BitwiseOperation BinaryBitwiseOperation + x >> y; // $ Operation Op=>> Operands=2 BinaryExpr BitwiseOperation BinaryBitwiseOperation + x &= y; // $ Operation Op=&= Operands=2 AssignmentOperation BinaryExpr BitwiseOperation AssignBitwiseOperation + x |= y; // $ Operation Op=|= Operands=2 AssignmentOperation BinaryExpr BitwiseOperation AssignBitwiseOperation + x ^= y; // $ Operation Op=^= Operands=2 AssignmentOperation BinaryExpr BitwiseOperation AssignBitwiseOperation + x <<= y; // $ Operation Op=<<= Operands=2 AssignmentOperation BinaryExpr BitwiseOperation AssignBitwiseOperation + x >>= y; // $ Operation Op=>>= Operands=2 AssignmentOperation BinaryExpr BitwiseOperation AssignBitwiseOperation // miscellaneous expressions that might be operations *ptr; // $ Operation Op=* Operands=1 PrefixExpr From 6c19cecb076115d621f1725dcccd1b1a1114f991 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 21 May 2025 11:55:48 +0100 Subject: [PATCH 582/656] Rust: Add DerefExpr class. --- rust/ql/lib/codeql/rust/elements/DerefExpr.qll | 13 +++++++++++++ rust/ql/lib/rust.qll | 1 + rust/ql/test/library-tests/operations/Operations.ql | 2 ++ rust/ql/test/library-tests/operations/test.rs | 2 +- 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 rust/ql/lib/codeql/rust/elements/DerefExpr.qll diff --git a/rust/ql/lib/codeql/rust/elements/DerefExpr.qll b/rust/ql/lib/codeql/rust/elements/DerefExpr.qll new file mode 100644 index 00000000000..28302a93411 --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/DerefExpr.qll @@ -0,0 +1,13 @@ +/** + * Provides classes for deref expressions (`*`). + */ + +private import codeql.rust.elements.PrefixExpr +private import codeql.rust.elements.Operation + +/** + * A dereference expression, `*`. + */ +final class DerefExpr extends PrefixExpr, Operation { + DerefExpr() { this.getOperatorName() = "*" } +} diff --git a/rust/ql/lib/rust.qll b/rust/ql/lib/rust.qll index e64b0e36abb..209a002663f 100644 --- a/rust/ql/lib/rust.qll +++ b/rust/ql/lib/rust.qll @@ -8,6 +8,7 @@ import codeql.rust.elements.ArithmeticOperation import codeql.rust.elements.AssignmentOperation import codeql.rust.elements.BitwiseOperation import codeql.rust.elements.ComparisonOperation +import codeql.rust.elements.DerefExpr import codeql.rust.elements.LiteralExprExt import codeql.rust.elements.LogicalOperation import codeql.rust.elements.AsyncBlockExpr diff --git a/rust/ql/test/library-tests/operations/Operations.ql b/rust/ql/test/library-tests/operations/Operations.ql index 76e9acfde3f..2c2c7ac7e99 100644 --- a/rust/ql/test/library-tests/operations/Operations.ql +++ b/rust/ql/test/library-tests/operations/Operations.ql @@ -45,6 +45,8 @@ string describe(Expr op) { op instanceof BinaryBitwiseOperation and result = "BinaryBitwiseOperation" or op instanceof AssignBitwiseOperation and result = "AssignBitwiseOperation" + or + op instanceof DerefExpr and result = "DerefExpr" } module OperationsTest implements TestSig { diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs index 72cb8269636..662a5ce0252 100644 --- a/rust/ql/test/library-tests/operations/test.rs +++ b/rust/ql/test/library-tests/operations/test.rs @@ -49,7 +49,7 @@ fn test_operations( x >>= y; // $ Operation Op=>>= Operands=2 AssignmentOperation BinaryExpr BitwiseOperation AssignBitwiseOperation // miscellaneous expressions that might be operations - *ptr; // $ Operation Op=* Operands=1 PrefixExpr + *ptr; // $ Operation Op=* Operands=1 PrefixExpr DerefExpr &x; // $ RefExpr res?; From b8f0e4d7e054942f29c1a44cd1995527dd1e07ce Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 21 May 2025 13:49:46 +0100 Subject: [PATCH 583/656] Rust: Use DerefExpr. --- rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll | 2 +- rust/ql/lib/codeql/rust/internal/TypeInference.qll | 6 ++---- .../codeql/rust/security/AccessInvalidPointerExtensions.qll | 4 +--- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll index 9bb2029cd44..790186bf2c9 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll @@ -610,7 +610,7 @@ module Impl { exists(Expr mid | assignmentExprDescendant(mid) and getImmediateParent(e) = mid and - not mid.(PrefixExpr).getOperatorName() = "*" and + not mid instanceof DerefExpr and not mid instanceof FieldExpr and not mid instanceof IndexExpr ) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index bae628b4723..6ddaa81bfbf 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -259,8 +259,7 @@ private predicate typeEqualityLeft(AstNode n1, TypePath path1, AstNode n2, TypeP typeEquality(n1, path1, n2, path2) or n2 = - any(PrefixExpr pe | - pe.getOperatorName() = "*" and + any(DerefExpr pe | pe.getExpr() = n1 and path1.isCons(TRefTypeParameter(), path2) ) @@ -271,8 +270,7 @@ private predicate typeEqualityRight(AstNode n1, TypePath path1, AstNode n2, Type typeEquality(n1, path1, n2, path2) or n2 = - any(PrefixExpr pe | - pe.getOperatorName() = "*" and + any(DerefExpr pe | pe.getExpr() = n1 and path1 = TypePath::cons(TRefTypeParameter(), path2) ) diff --git a/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll b/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll index 37788609211..36abfb62d54 100644 --- a/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll @@ -50,9 +50,7 @@ module AccessInvalidPointer { * A pointer access using the unary `*` operator. */ private class DereferenceSink extends Sink { - DereferenceSink() { - exists(PrefixExpr p | p.getOperatorName() = "*" and p.getExpr() = this.asExpr().getExpr()) - } + DereferenceSink() { exists(DerefExpr p | p.getExpr() = this.asExpr().getExpr()) } } /** From b22ce5515fe6a52aa7150b028072f86dcb75036e Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 21 May 2025 14:15:47 +0100 Subject: [PATCH 584/656] Rust: Make RefExpr an Operation. --- rust/ql/lib/codeql/rust/elements/internal/RefExprImpl.qll | 7 ++++++- rust/ql/test/library-tests/operations/test.rs | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/RefExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/RefExprImpl.qll index 83f32d892fb..752b94dbacd 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/RefExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/RefExprImpl.qll @@ -5,6 +5,7 @@ */ private import codeql.rust.elements.internal.generated.RefExpr +private import codeql.rust.elements.internal.OperationImpl::Impl as OperationImpl /** * INTERNAL: This module contains the customizable definition of `RefExpr` and should not @@ -21,11 +22,15 @@ module Impl { * let raw_mut: &mut i32 = &raw mut foo; * ``` */ - class RefExpr extends Generated::RefExpr { + class RefExpr extends Generated::RefExpr, OperationImpl::Operation { override string toStringImpl() { result = "&" + concat(int i | | this.getSpecPart(i), " " order by i) } + override string getOperatorName() { result = "&" } + + override Expr getAnOperand() { result = this.getExpr() } + private string getSpecPart(int index) { index = 0 and this.isRaw() and result = "raw" or diff --git a/rust/ql/test/library-tests/operations/test.rs b/rust/ql/test/library-tests/operations/test.rs index 662a5ce0252..c3cde698aa0 100644 --- a/rust/ql/test/library-tests/operations/test.rs +++ b/rust/ql/test/library-tests/operations/test.rs @@ -50,7 +50,7 @@ fn test_operations( // miscellaneous expressions that might be operations *ptr; // $ Operation Op=* Operands=1 PrefixExpr DerefExpr - &x; // $ RefExpr + &x; // $ Operation Op=& Operands=1 RefExpr MISSING: PrefixExpr res?; return Ok(()); From 476ada13dbf4753257d3bdd01b66dddd31a2b114 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 22 May 2025 14:22:28 +0100 Subject: [PATCH 585/656] Improve QLDoc for `SpringRequestMappingMethod.getAValue` --- .../code/java/frameworks/spring/SpringController.qll | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll index 4717cf031a2..c93993336d9 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringController.qll @@ -156,7 +156,12 @@ class SpringRequestMappingMethod extends SpringControllerMethod { /** DEPRECATED: Use `getAValue()` instead. */ deprecated string getValue() { result = requestMappingAnnotation.getStringValue("value") } - /** Gets the "value" @RequestMapping annotation array string value, if present. */ + /** + * Gets a "value" @RequestMapping annotation string value, if present. + * + * If the annotation element is defined with an array initializer, then the result will be one of the + * elements of that array. Otherwise, the result will be the single expression used as value. + */ string getAValue() { result = requestMappingAnnotation.getAStringArrayValue("value") } /** Gets the "method" @RequestMapping annotation value, if present. */ From 79453cc10310dccc74c0e38c4b2facb4928fe939 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 22 May 2025 14:30:32 +0100 Subject: [PATCH 586/656] Add test showing correct usage --- java/ql/src/Performance/StringReplaceAllWithNonRegex.md | 1 + java/ql/test/query-tests/StringReplaceAllWithNonRegex/Test.java | 1 + 2 files changed, 2 insertions(+) diff --git a/java/ql/src/Performance/StringReplaceAllWithNonRegex.md b/java/ql/src/Performance/StringReplaceAllWithNonRegex.md index 6e298b4955b..c7bb609b2c0 100644 --- a/java/ql/src/Performance/StringReplaceAllWithNonRegex.md +++ b/java/ql/src/Performance/StringReplaceAllWithNonRegex.md @@ -18,6 +18,7 @@ public class Test { String s1 = "test"; s1 = s1.replaceAll("t", "x"); // NON_COMPLIANT s1 = s1.replaceAll(".*", "x"); // COMPLIANT + s1 = s1.replace("t", "x"); // COMPLIANT } } diff --git a/java/ql/test/query-tests/StringReplaceAllWithNonRegex/Test.java b/java/ql/test/query-tests/StringReplaceAllWithNonRegex/Test.java index 1465343b8c2..86711c93de5 100644 --- a/java/ql/test/query-tests/StringReplaceAllWithNonRegex/Test.java +++ b/java/ql/test/query-tests/StringReplaceAllWithNonRegex/Test.java @@ -3,5 +3,6 @@ public class Test { String s1 = "test"; s1 = s1.replaceAll("t", "x"); // $ Alert // NON_COMPLIANT s1 = s1.replaceAll(".*", "x"); // COMPLIANT + s1 = s1.replace("t", "x"); // COMPLIANT } } From dc280c6fb7e42f59406d63c0e6b6b01423ae7e2d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 22 May 2025 15:18:45 +0100 Subject: [PATCH 587/656] Rust: Add missing assignment class relations. --- .../rust/elements/ArithmeticOperation.qll | 17 +++++++---------- .../codeql/rust/elements/BitwiseOperation.qll | 3 ++- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/ArithmeticOperation.qll b/rust/ql/lib/codeql/rust/elements/ArithmeticOperation.qll index c91d65c976a..81abffa1a38 100644 --- a/rust/ql/lib/codeql/rust/elements/ArithmeticOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/ArithmeticOperation.qll @@ -5,6 +5,7 @@ private import codeql.rust.elements.BinaryExpr private import codeql.rust.elements.PrefixExpr private import codeql.rust.elements.Operation +private import codeql.rust.elements.AssignmentOperation /** * An arithmetic operation, such as `+`, `*=`, or `-`. @@ -17,25 +18,21 @@ final class ArithmeticOperation = ArithmeticOperationImpl; * A binary arithmetic operation, such as `+` or `*`. */ final class BinaryArithmeticOperation extends BinaryExpr, ArithmeticOperationImpl { - BinaryArithmeticOperation() { - this.getOperatorName() = ["+", "-", "*", "/", "%"] - } + BinaryArithmeticOperation() { this.getOperatorName() = ["+", "-", "*", "/", "%"] } } /** * An arithmetic assignment operation, such as `+=` or `*=`. */ -final class AssignArithmeticOperation extends BinaryExpr, ArithmeticOperationImpl { - AssignArithmeticOperation() { - this.getOperatorName() = ["+=", "-=", "*=", "/=", "%="] - } +final class AssignArithmeticOperation extends BinaryExpr, ArithmeticOperationImpl, + AssignmentOperation +{ + AssignArithmeticOperation() { this.getOperatorName() = ["+=", "-=", "*=", "/=", "%="] } } /** * A prefix arithmetic operation, such as `-`. */ final class PrefixArithmeticOperation extends PrefixExpr, ArithmeticOperationImpl { - PrefixArithmeticOperation() { - this.getOperatorName() = "-" - } + PrefixArithmeticOperation() { this.getOperatorName() = "-" } } diff --git a/rust/ql/lib/codeql/rust/elements/BitwiseOperation.qll b/rust/ql/lib/codeql/rust/elements/BitwiseOperation.qll index b906a2216ce..3c1f63158b6 100644 --- a/rust/ql/lib/codeql/rust/elements/BitwiseOperation.qll +++ b/rust/ql/lib/codeql/rust/elements/BitwiseOperation.qll @@ -4,6 +4,7 @@ private import codeql.rust.elements.BinaryExpr private import codeql.rust.elements.Operation +private import codeql.rust.elements.AssignmentOperation /** * A bitwise operation, such as `&`, `<<`, or `|=`. @@ -22,6 +23,6 @@ final class BinaryBitwiseOperation extends BinaryExpr, BitwiseOperationImpl { /** * A bitwise assignment operation, such as `|=` or `<<=`. */ -final class AssignBitwiseOperation extends BinaryExpr, BitwiseOperationImpl { +final class AssignBitwiseOperation extends BinaryExpr, BitwiseOperationImpl, AssignmentOperation { AssignBitwiseOperation() { this.getOperatorName() = ["&=", "|=", "^=", "<<=", ">>="] } } From 09170e598c4c55d779a50e6ea8829f42eaf56cea Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 22 May 2025 10:31:58 -0400 Subject: [PATCH 588/656] Crypto: Making generic literal filter more explicit that it is for filtering all constants, not just for algorithms. --- cpp/ql/lib/experimental/quantum/Language.qll | 4 +- .../KnownAlgorithmConstants.qll | 9 +--- ....qll => GenericSourceCandidateLiteral.qll} | 41 ++++++++++--------- 3 files changed, 25 insertions(+), 29 deletions(-) rename cpp/ql/lib/experimental/quantum/OpenSSL/{AlgorithmCandidateLiteral.qll => GenericSourceCandidateLiteral.qll} (76%) diff --git a/cpp/ql/lib/experimental/quantum/Language.qll b/cpp/ql/lib/experimental/quantum/Language.qll index c9d3f735322..bc1a2de10e7 100644 --- a/cpp/ql/lib/experimental/quantum/Language.qll +++ b/cpp/ql/lib/experimental/quantum/Language.qll @@ -1,7 +1,7 @@ private import cpp as Language import semmle.code.cpp.dataflow.new.TaintTracking import codeql.quantum.experimental.Model -private import experimental.quantum.OpenSSL.AlgorithmCandidateLiteral +private import experimental.quantum.OpenSSL.GericSourceCandidateLiteral module CryptoInput implements InputSig { class DataFlowNode = DataFlow::Node; @@ -90,7 +90,7 @@ module GenericDataSourceFlowConfig implements DataFlow::ConfigSig { module GenericDataSourceFlow = TaintTracking::Global; private class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceof Literal { - ConstantDataSource() { this instanceof OpenSSLAlgorithmCandidateLiteral } + ConstantDataSource() { this instanceof OpenSSLGenericSourceCandidateLiteral } override DataFlow::Node getOutputNode() { result.asExpr() = this } diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index 59f03264a69..f49767bd282 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -1,5 +1,5 @@ import cpp -import experimental.quantum.OpenSSL.AlgorithmCandidateLiteral +import experimental.quantum.OpenSSL.GericSourceCandidateLiteral predicate resolveAlgorithmFromExpr(Expr e, string normalizedName, string algType) { resolveAlgorithmFromCall(e, normalizedName, algType) @@ -103,7 +103,7 @@ predicate resolveAlgorithmFromCall(Call c, string normalized, string algType) { * If this predicate does not hold, then `e` can be interpreted as being of `UNKNOWN` type. */ predicate resolveAlgorithmFromLiteral( - OpenSSLAlgorithmCandidateLiteral e, string normalized, string algType + OpenSSLGenericSourceCandidateLiteral e, string normalized, string algType ) { knownOpenSSLAlgorithmLiteral(_, e.getValue().toInt(), normalized, algType) or @@ -237,11 +237,6 @@ predicate defaultAliases(string target, string alias) { alias = "ssl3-sha1" and target = "sha1" } -predicate tbd(string normalized, string algType) { - knownOpenSSLAlgorithmLiteral(_, _, normalized, algType) and - algType = "HASH" -} - /** * Enumeration of all known crypto algorithms for openSSL * `name` is all lower case (caller's must ensure they pass in lower case) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmCandidateLiteral.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll similarity index 76% rename from cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmCandidateLiteral.qll rename to cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll index 3e2d1d0301b..0f6730bed74 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmCandidateLiteral.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll @@ -3,27 +3,24 @@ private import semmle.code.cpp.models.Models private import semmle.code.cpp.models.interfaces.FormattingFunction /** - * Holds if a StringLiteral could be an algorithm literal. + * Holds if a StringLiteral could conceivably be used in some way for cryptography. * Note: this predicate should only consider restrictions with respect to strings only. - * General restrictions are in the OpenSSLAlgorithmCandidateLiteral class. + * General restrictions are in the OpenSSLGenericSourceCandidateLiteral class. */ -private predicate isOpenSSLStringLiteralAlgorithmCandidate(StringLiteral s) { +private predicate isOpenSSLStringLiteralGenericSourceCandidate(StringLiteral s) { // 'EC' is a constant that may be used where typical algorithms are specified, // but EC specifically means set up a default curve container, that will later be //specified explicitly (or if not a default) curve is used. s.getValue() != "EC" and // Ignore empty strings s.getValue() != "" and - // ignore strings that represent integers, it is possible this could be used for actual - // algorithms but assuming this is not the common case - // NOTE: if we were to revert this restriction, we should still consider filtering "0" - // to be consistent with filtering integer 0 - not exists(s.getValue().toInt()) and // Filter out strings with "%", to filter out format strings not s.getValue().matches("%\\%%") and - // Filter out strings in brackets or braces + // Filter out strings in brackets or braces (commonly seen strings not relevant for crypto) not s.getValue().matches(["[%]", "(%)"]) and // Filter out all strings of length 1, since these are not algorithm names + // NOTE/ASSUMPTION: If a user legitimately passes a string of length 1 to some configuration + // we will assume this is generally unknown. We may need to reassess this in the future. s.getValue().length() > 1 and // Ignore all strings that are in format string calls outputing to a stream (e.g., stdout) not exists(FormattingFunctionCall f | @@ -43,15 +40,14 @@ private predicate isOpenSSLStringLiteralAlgorithmCandidate(StringLiteral s) { /** * Holds if an IntLiteral could be an algorithm literal. * Note: this predicate should only consider restrictions with respect to integers only. - * General restrictions are in the OpenSSLAlgorithmCandidateLiteral class. + * General restrictions are in the OpenSSLGenericSourceCandidateLiteral class. */ -private predicate isOpenSSLIntLiteralAlgorithmCandidate(Literal l) { +private predicate isOpenSSLIntLiteralGenericSourceCandidate(Literal l) { exists(l.getValue().toInt()) and // Ignore char literals not l instanceof CharLiteral and not l instanceof StringLiteral and // Ignore integer values of 0, commonly referring to NULL only (no known algorithm 0) - // Also ignore integer values greater than 5000 l.getValue().toInt() != 0 and // ASSUMPTION, no negative numbers are allowed // RATIONALE: this is a performance improvement to avoid having to trace every number @@ -63,10 +59,9 @@ private predicate isOpenSSLIntLiteralAlgorithmCandidate(Literal l) { r.getExpr() = l and r.getEnclosingFunction().getType().getUnspecifiedType() instanceof DerivedType ) and - // A literal as an array index should never be an algorithm + // A literal as an array index should not be relevant for crypo not exists(ArrayExpr op | op.getArrayOffset() = l) and - // A literal used in a bitwise operation may be an algorithm, but not a candidate - // for the purposes of finding applied algorithms + // A literal used in a bitwise should not be relevant for crypto not exists(BinaryBitwiseOperation op | op.getAnOperand() = l) and not exists(AssignBitwiseOperation op | op.getAnOperand() = l) and //Filter out cases where an int is assigned or initialized into a pointer, e.g., char* x = NULL; @@ -81,7 +76,13 @@ private predicate isOpenSSLIntLiteralAlgorithmCandidate(Literal l) { // Filter out cases where the literal is used in any kind of arithmetic operation not exists(BinaryArithmeticOperation op | op.getAnOperand() = l) and not exists(UnaryArithmeticOperation op | op.getOperand() = l) and - not exists(AssignArithmeticOperation op | op.getAnOperand() = l) + not exists(AssignArithmeticOperation op | op.getAnOperand() = l) and + // If a literal has no parent ignore it, this is a workaround for the current inability + // to find a literal in an array declaration: int x[100]; + // NOTE/ASSUMPTION: this value might actually be relevant for finding hard coded sizes + // consider size as inferred through the allocation of a buffer. + // In these cases, we advise that the source is not generic and must be traced explicitly. + exists(l.getParent()) } /** @@ -96,11 +97,11 @@ private predicate isOpenSSLIntLiteralAlgorithmCandidate(Literal l) { * "AES" may be a legitimate algorithm literal, but the literal will not be used for an operation directly * since it is in a equality comparison, hence this case would also be filtered. */ -class OpenSSLAlgorithmCandidateLiteral extends Literal { - OpenSSLAlgorithmCandidateLiteral() { +class OpenSSLGenericSourceCandidateLiteral extends Literal { + OpenSSLGenericSourceCandidateLiteral() { ( - isOpenSSLIntLiteralAlgorithmCandidate(this) or - isOpenSSLStringLiteralAlgorithmCandidate(this) + isOpenSSLIntLiteralGenericSourceCandidate(this) or + isOpenSSLStringLiteralGenericSourceCandidate(this) ) and // ********* General filters beyond what is filtered for strings and ints ********* // An algorithm literal in a switch case will not be directly applied to an operation. From 570fdeb25474fd60a32c1da2d1850714eea181a0 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 22 May 2025 10:39:27 -0400 Subject: [PATCH 589/656] Crypto: Code Cleanup (+1 squashed commits) Squashed commits: [417734cc3c] Crypto: Fixing typo (+1 squashed commits) Squashed commits: [1ac3d5c7d4] Crypto: Fixing typo caused by AI auto complete. --- cpp/ql/lib/experimental/quantum/Language.qll | 2 +- .../OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll | 2 +- .../quantum/OpenSSL/GenericSourceCandidateLiteral.qll | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/Language.qll b/cpp/ql/lib/experimental/quantum/Language.qll index bc1a2de10e7..ebc246291a3 100644 --- a/cpp/ql/lib/experimental/quantum/Language.qll +++ b/cpp/ql/lib/experimental/quantum/Language.qll @@ -1,7 +1,7 @@ private import cpp as Language import semmle.code.cpp.dataflow.new.TaintTracking import codeql.quantum.experimental.Model -private import experimental.quantum.OpenSSL.GericSourceCandidateLiteral +private import OpenSSL.GenericSourceCandidateLiteral module CryptoInput implements InputSig { class DataFlowNode = DataFlow::Node; diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index e1d14e689e0..f7d186e4ea9 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -1,5 +1,5 @@ import cpp -import experimental.quantum.OpenSSL.GericSourceCandidateLiteral +import experimental.quantum.OpenSSL.GenericSourceCandidateLiteral predicate resolveAlgorithmFromExpr(Expr e, string normalizedName, string algType) { resolveAlgorithmFromCall(e, normalizedName, algType) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll index 0f6730bed74..214093aae36 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll @@ -27,12 +27,12 @@ private predicate isOpenSSLStringLiteralGenericSourceCandidate(StringLiteral s) exists(f.getOutputArgument(true)) and s = f.(Call).getAnArgument() ) and // Ignore all format string calls where there is no known out param (resulting string) - // i.e., ignore printf, since it will just ouput a string and not produce a new string + // i.e., ignore printf, since it will just output a string and not produce a new string not exists(FormattingFunctionCall f | // Note: using two ways of determining if there is an out param, since I'm not sure // which way is canonical not exists(f.getOutputArgument(false)) and - not f.getTarget().(FormattingFunction).hasTaintFlow(_, _) and + not f.getTarget().hasTaintFlow(_, _) and f.(Call).getAnArgument() = s ) } From ca1d4e270a5fb5eb37e381452c902c2c3357b952 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 22 May 2025 12:53:11 -0400 Subject: [PATCH 590/656] Crypto: Separating out an IntLiteral class so it is clearer that some constraints for generic input sources are heuristics to filter sources, and other constraints narrow the literals to a general type (ints). Also adding fixes in KnownAlgorithmConstants to classify some algorithms as key exchange and signature correctly, and added support for a signature constant wrapper. --- .../OpenSSL/GenericSourceCandidateLiteral.qll | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll index 214093aae36..8841adc17b6 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/GenericSourceCandidateLiteral.qll @@ -2,6 +2,15 @@ import cpp private import semmle.code.cpp.models.Models private import semmle.code.cpp.models.interfaces.FormattingFunction +private class IntLiteral extends Literal { + IntLiteral() { + //Heuristics for distinguishing int literals from other literals + exists(this.getValue().toInt()) and + not this instanceof CharLiteral and + not this instanceof StringLiteral + } +} + /** * Holds if a StringLiteral could conceivably be used in some way for cryptography. * Note: this predicate should only consider restrictions with respect to strings only. @@ -38,15 +47,11 @@ private predicate isOpenSSLStringLiteralGenericSourceCandidate(StringLiteral s) } /** - * Holds if an IntLiteral could be an algorithm literal. + * Holds if a StringLiteral could conceivably be used in some way for cryptography. * Note: this predicate should only consider restrictions with respect to integers only. * General restrictions are in the OpenSSLGenericSourceCandidateLiteral class. */ -private predicate isOpenSSLIntLiteralGenericSourceCandidate(Literal l) { - exists(l.getValue().toInt()) and - // Ignore char literals - not l instanceof CharLiteral and - not l instanceof StringLiteral and +private predicate isOpenSSLIntLiteralGenericSourceCandidate(IntLiteral l) { // Ignore integer values of 0, commonly referring to NULL only (no known algorithm 0) l.getValue().toInt() != 0 and // ASSUMPTION, no negative numbers are allowed @@ -86,10 +91,10 @@ private predicate isOpenSSLIntLiteralGenericSourceCandidate(Literal l) { } /** - * Any literal that may represent an algorithm for use in an operation, even if an invalid or unknown algorithm. + * Any literal that may be conceivably be used in some way for cryptography. * The set of all literals is restricted by this class to cases where there is higher - * plausibility that the literal is eventually used as an algorithm. - * Literals are filtered, for example if they are used in a way no indicative of an algorithm use + * plausibility that the literal could be used as a source of configuration. + * Literals are filtered, for example, if they are used in a way no indicative of an algorithm use * such as in an array index, bitwise operation, or logical operation. * Note a case like this: * if(algVal == "AES") From 28f48246fc87d42efb6e40039a0f33f3dc38e998 Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 22 May 2025 13:13:35 -0400 Subject: [PATCH 591/656] Crypto: Adding signature constant support, and fixing key exchange and signature mapping for ED and X elliptic curve variants. --- .../KnownAlgorithmConstants.qll | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index f7d186e4ea9..e56f70700b0 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -76,6 +76,15 @@ class KnownOpenSSLEllipticCurveAlgorithmConstant extends KnownOpenSSLAlgorithmCo } } +class KnownOpenSSLSignatureAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { + string algType; + + KnownOpenSSLSignatureAlgorithmConstant() { + resolveAlgorithmFromExpr(this, _, algType) and + algType.matches("SIGNATURE") + } +} + /** * Resolves a call to a 'direct algorithm getter', e.g., EVP_MD5() * This approach to fetching algorithms was used in OpenSSL 1.0.2. @@ -263,8 +272,12 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "ed25519" and nid = 1087 and normalized = "ED25519" and algType = "ELLIPTIC_CURVE" or + name = "ed25519" and nid = 1087 and normalized = "ED25519" and algType = "SIGNATURE" + or name = "ed448" and nid = 1088 and normalized = "ED448" and algType = "ELLIPTIC_CURVE" or + name = "ed448" and nid = 1088 and normalized = "ED448" and algType = "SIGNATURE" + or name = "md2" and nid = 3 and normalized = "MD2" and algType = "HASH" or name = "sha" and nid = 41 and normalized = "SHA" and algType = "HASH" @@ -1684,8 +1697,12 @@ predicate knownOpenSSLAlgorithmLiteral(string name, int nid, string normalized, or name = "x448" and nid = 1035 and normalized = "X448" and algType = "ELLIPTIC_CURVE" or + name = "x448" and nid = 1035 and normalized = "X448" and algType = "KEY_EXCHANGE" + or name = "x25519" and nid = 1034 and normalized = "X25519" and algType = "ELLIPTIC_CURVE" or + name = "x25519" and nid = 1034 and normalized = "X25519" and algType = "KEY_EXCHANGE" + or name = "authecdsa" and nid = 1047 and normalized = "ECDSA" and algType = "SIGNATURE" or name = "authgost01" and nid = 1050 and normalized = "GOST" and algType = "SYMMETRIC_ENCRYPTION" From 007683f06ae0175eec7114d56f8b3eb6c09899ab Mon Sep 17 00:00:00 2001 From: "REDMOND\\brodes" Date: Thu, 22 May 2025 14:06:13 -0400 Subject: [PATCH 592/656] Crypto: Simplifying constant comparisons. --- .../KnownAlgorithmConstants.qll | 34 +++++-------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll index e56f70700b0..402fbac02ec 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll @@ -33,30 +33,20 @@ class KnownOpenSSLCipherAlgorithmConstant extends KnownOpenSSLAlgorithmConstant } class KnownOpenSSLPaddingAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { - string algType; - KnownOpenSSLPaddingAlgorithmConstant() { - resolveAlgorithmFromExpr(this, _, algType) and - algType.matches("%PADDING") + exists(string algType | + resolveAlgorithmFromExpr(this, _, algType) and + algType.matches("%PADDING") + ) } } class KnownOpenSSLBlockModeAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { - string algType; - - KnownOpenSSLBlockModeAlgorithmConstant() { - resolveAlgorithmFromExpr(this, _, algType) and - algType.matches("%BLOCK_MODE") - } + KnownOpenSSLBlockModeAlgorithmConstant() { resolveAlgorithmFromExpr(this, _, "BLOCK_MODE") } } class KnownOpenSSLHashAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { - string algType; - - KnownOpenSSLHashAlgorithmConstant() { - resolveAlgorithmFromExpr(this, _, algType) and - algType.matches("%HASH") - } + KnownOpenSSLHashAlgorithmConstant() { resolveAlgorithmFromExpr(this, _, "HASH") } int getExplicitDigestLength() { exists(string name | @@ -69,20 +59,12 @@ class KnownOpenSSLHashAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { class KnownOpenSSLEllipticCurveAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { KnownOpenSSLEllipticCurveAlgorithmConstant() { - exists(string algType | - resolveAlgorithmFromExpr(this, _, algType) and - algType.matches("ELLIPTIC_CURVE") - ) + resolveAlgorithmFromExpr(this, _, "ELLIPTIC_CURVE") } } class KnownOpenSSLSignatureAlgorithmConstant extends KnownOpenSSLAlgorithmConstant { - string algType; - - KnownOpenSSLSignatureAlgorithmConstant() { - resolveAlgorithmFromExpr(this, _, algType) and - algType.matches("SIGNATURE") - } + KnownOpenSSLSignatureAlgorithmConstant() { resolveAlgorithmFromExpr(this, _, "SIGNATURE") } } /** From 372d1c68a4ce05e9a50cc37dafe2cd580d1e692d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 May 2025 00:23:59 +0000 Subject: [PATCH 593/656] Add changed framework coverage reports --- csharp/documentation/library-coverage/coverage.csv | 10 +++++----- csharp/documentation/library-coverage/coverage.rst | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/csharp/documentation/library-coverage/coverage.csv b/csharp/documentation/library-coverage/coverage.csv index 2d786f62d6e..70a2dfec6cc 100644 --- a/csharp/documentation/library-coverage/coverage.csv +++ b/csharp/documentation/library-coverage/coverage.csv @@ -4,11 +4,11 @@ Amazon.Lambda.Core,10,,,,,,,,,,,10,,,,,,,,,,, Dapper,55,42,1,,,,,,,,,,55,,42,,,,,,,,1 ILCompiler,,,121,,,,,,,,,,,,,,,,,,,77,44 ILLink.RoslynAnalyzer,,,107,,,,,,,,,,,,,,,,,,,31,76 -ILLink.Shared,,,37,,,,,,,,,,,,,,,,,,,11,26 +ILLink.Shared,,,37,,,,,,,,,,,,,,,,,,,9,28 ILLink.Tasks,,,5,,,,,,,,,,,,,,,,,,,4,1 Internal.IL,,,54,,,,,,,,,,,,,,,,,,,28,26 Internal.Pgo,,,9,,,,,,,,,,,,,,,,,,,2,7 -Internal.TypeSystem,,,342,,,,,,,,,,,,,,,,,,,205,137 +Internal.TypeSystem,,,343,,,,,,,,,,,,,,,,,,,197,146 Microsoft.ApplicationBlocks.Data,28,,,,,,,,,,,,28,,,,,,,,,, Microsoft.AspNetCore.Components,2,4,2,,,,,,,2,,,,,,,,,4,,,1,1 Microsoft.AspNetCore.Http,,,1,,,,,,,,,,,,,,,,,,,1, @@ -21,7 +21,7 @@ Microsoft.DotNet.PlatformAbstractions,,,1,,,,,,,,,,,,,,,,,,,1, Microsoft.EntityFrameworkCore,6,,12,,,,,,,,,,6,,,,,,,,,,12 Microsoft.Extensions.Caching.Distributed,,,3,,,,,,,,,,,,,,,,,,,,3 Microsoft.Extensions.Caching.Memory,,,37,,,,,,,,,,,,,,,,,,,5,32 -Microsoft.Extensions.Configuration,,3,118,,,,,,,,,,,,,3,,,,,,41,77 +Microsoft.Extensions.Configuration,,3,118,,,,,,,,,,,,,3,,,,,,39,79 Microsoft.Extensions.DependencyInjection,,,209,,,,,,,,,,,,,,,,,,,15,194 Microsoft.Extensions.DependencyModel,,1,57,,,,,,,,,,,,,1,,,,,,13,44 Microsoft.Extensions.Diagnostics.Metrics,,,14,,,,,,,,,,,,,,,,,,,1,13 @@ -37,10 +37,10 @@ Microsoft.JSInterop,2,,,,,,,,,,2,,,,,,,,,,,, Microsoft.NET.Build.Tasks,,,5,,,,,,,,,,,,,,,,,,,3,2 Microsoft.VisualBasic,,,6,,,,,,,,,,,,,,,,,,,1,5 Microsoft.Win32,,4,2,,,,,,,,,,,,,,,,,,4,,2 -Mono.Linker,,,278,,,,,,,,,,,,,,,,,,,130,148 +Mono.Linker,,,278,,,,,,,,,,,,,,,,,,,127,151 MySql.Data.MySqlClient,48,,,,,,,,,,,,48,,,,,,,,,, Newtonsoft.Json,,,91,,,,,,,,,,,,,,,,,,,73,18 ServiceStack,194,,7,27,,,,,75,,,,92,,,,,,,,,7, SourceGenerators,,,5,,,,,,,,,,,,,,,,,,,,5 -System,54,47,12111,,6,5,5,,,4,1,,33,2,,6,15,17,4,3,,5993,6118 +System,54,47,12139,,6,5,5,,,4,1,,33,2,,6,15,17,4,3,,5903,6236 Windows.Security.Cryptography.Core,1,,,,,,,1,,,,,,,,,,,,,,, diff --git a/csharp/documentation/library-coverage/coverage.rst b/csharp/documentation/library-coverage/coverage.rst index a7c9f8bc54c..6762de6ed12 100644 --- a/csharp/documentation/library-coverage/coverage.rst +++ b/csharp/documentation/library-coverage/coverage.rst @@ -8,7 +8,7 @@ C# framework & library support Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE-079` :sub:`Cross-site scripting` `ServiceStack `_,"``ServiceStack.*``, ``ServiceStack``",,7,194, - System,"``System.*``, ``System``",47,12111,54,5 - Others,"``Amazon.Lambda.APIGatewayEvents``, ``Amazon.Lambda.Core``, ``Dapper``, ``ILCompiler``, ``ILLink.RoslynAnalyzer``, ``ILLink.Shared``, ``ILLink.Tasks``, ``Internal.IL``, ``Internal.Pgo``, ``Internal.TypeSystem``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.AspNetCore.Components``, ``Microsoft.AspNetCore.Http``, ``Microsoft.AspNetCore.Mvc``, ``Microsoft.AspNetCore.WebUtilities``, ``Microsoft.CSharp``, ``Microsoft.Diagnostics.Tools.Pgo``, ``Microsoft.DotNet.Build.Tasks``, ``Microsoft.DotNet.PlatformAbstractions``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.Diagnostics.Metrics``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.JSInterop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.VisualBasic``, ``Microsoft.Win32``, ``Mono.Linker``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",60,2252,152,4 - Totals,,107,14370,400,9 + System,"``System.*``, ``System``",47,12139,54,5 + Others,"``Amazon.Lambda.APIGatewayEvents``, ``Amazon.Lambda.Core``, ``Dapper``, ``ILCompiler``, ``ILLink.RoslynAnalyzer``, ``ILLink.Shared``, ``ILLink.Tasks``, ``Internal.IL``, ``Internal.Pgo``, ``Internal.TypeSystem``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.AspNetCore.Components``, ``Microsoft.AspNetCore.Http``, ``Microsoft.AspNetCore.Mvc``, ``Microsoft.AspNetCore.WebUtilities``, ``Microsoft.CSharp``, ``Microsoft.Diagnostics.Tools.Pgo``, ``Microsoft.DotNet.Build.Tasks``, ``Microsoft.DotNet.PlatformAbstractions``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.Diagnostics.Metrics``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.JSInterop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.VisualBasic``, ``Microsoft.Win32``, ``Mono.Linker``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",60,2253,152,4 + Totals,,107,14399,400,9 From df99e06c816183b01c9cdb56521e20bdaf4cb7b6 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 23 May 2025 07:47:31 +0200 Subject: [PATCH 594/656] Rust: temporarily disable attribute macro expansion in library mode --- rust/extractor/src/translate/base.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index e440e00cb25..ece10f2f0f2 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -709,6 +709,10 @@ impl<'a> Translator<'a> { } pub(crate) fn emit_item_expansion(&mut self, node: &ast::Item, label: Label) { + // TODO: remove this after fixing exponential expansion on libraries like funty-2.0.0 + if self.source_kind == SourceKind::Library { + return; + } (|| { let semantics = self.semantics?; let ExpandResult { From 1d301035592abcfa6b6d4a033e45920e7e942c91 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 23 May 2025 09:56:22 +0200 Subject: [PATCH 595/656] SSA: Distinguish between has and controls branch edge. --- .../ir/dataflow/internal/DataFlowPrivate.qll | 4 ++++ .../cpp/ir/dataflow/internal/SsaInternals.qll | 6 +++++- .../code/csharp/dataflow/internal/SsaImpl.qll | 16 ++++++++++---- .../semmle/code/java/controlflow/Guards.qll | 21 +++++++++++++++++++ .../code/java/dataflow/internal/SsaImpl.qll | 11 +--------- .../dataflow/internal/sharedlib/Ssa.qll | 16 ++++++++++---- .../codeql/ruby/dataflow/internal/SsaImpl.qll | 16 ++++++++++---- .../codeql/rust/dataflow/internal/SsaImpl.qll | 16 ++++++++++---- .../codeql/dataflow/VariableCapture.qll | 2 ++ shared/ssa/codeql/ssa/Ssa.qll | 14 +++++++++---- 10 files changed, 91 insertions(+), 31 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll index 073d7a4bbc9..39cc58d54b0 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll @@ -1903,6 +1903,10 @@ module IteratorFlow { predicate allowFlowIntoUncertainDef(IteratorSsa::UncertainWriteDefinition def) { any() } class Guard extends Void { + predicate hasBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { + none() + } + predicate controlsBranchEdge( SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch ) { diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll index bea6b68d511..7799081eae3 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll @@ -991,13 +991,17 @@ private module DataFlowIntegrationInput implements SsaImpl::DataFlowIntegrationI class Guard instanceof IRGuards::IRGuardCondition { string toString() { result = super.toString() } - predicate controlsBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { + predicate hasBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { exists(EdgeKind kind | super.getBlock() = bb1 and kind = getConditionalEdge(branch) and bb1.getSuccessor(kind) = bb2 ) } + + predicate controlsBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { + this.hasBranchEdge(bb1, bb2, branch) + } } predicate guardDirectlyControlsBlock(Guard guard, SsaInput::BasicBlock bb, boolean branch) { diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll index ad7a2aba911..6d59c057986 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -1044,17 +1044,25 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu class Guard extends Guards::Guard { /** - * Holds if the control flow branching from `bb1` is dependent on this guard, - * and that the edge from `bb1` to `bb2` corresponds to the evaluation of this - * guard to `branch`. + * Holds if the evaluation of this guard to `branch` corresponds to the edge + * from `bb1` to `bb2`. */ - predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { + predicate hasBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { exists(ControlFlow::SuccessorTypes::ConditionalSuccessor s | this.getAControlFlowNode() = bb1.getLastNode() and bb2 = bb1.getASuccessorByType(s) and s.getValue() = branch ) } + + /** + * Holds if this guard evaluating to `branch` controls the control-flow + * branch edge from `bb1` to `bb2`. That is, following the edge from + * `bb1` to `bb2` implies that this guard evaluated to `branch`. + */ + predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { + this.hasBranchEdge(bb1, bb2, branch) + } } /** Holds if the guard `guard` controls block `bb` upon evaluating to `branch`. */ diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll index 99a832c08a8..5cedb97ec05 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll @@ -272,6 +272,15 @@ class Guard extends ExprParent { preconditionControls(this, controlled, branch) } + /** + * Holds if this guard evaluating to `branch` controls the control-flow + * branch edge from `bb1` to `bb2`. That is, following the edge from + * `bb1` to `bb2` implies that this guard evaluated to `branch`. + */ + predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { + guardControlsBranchEdge_v3(this, bb1, bb2, branch) + } + /** * Holds if this guard evaluating to `branch` directly or indirectly controls * the block `controlled`. That is, the evaluation of `controlled` is @@ -351,6 +360,18 @@ private predicate guardControls_v3(Guard guard, BasicBlock controlled, boolean b ) } +pragma[nomagic] +private predicate guardControlsBranchEdge_v3( + Guard guard, BasicBlock bb1, BasicBlock bb2, boolean branch +) { + guard.hasBranchEdge(bb1, bb2, branch) + or + exists(Guard g, boolean b | + guardControlsBranchEdge_v3(g, bb1, bb2, b) and + implies_v3(g, b, guard, branch) + ) +} + private predicate equalityGuard(Guard g, Expr e1, Expr e2, boolean polarity) { exists(EqualityTest eqtest | eqtest = g and diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll index 6054db635bc..2a1ea8b0e06 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll @@ -654,16 +654,7 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu def instanceof SsaUncertainImplicitUpdate } - class Guard extends Guards::Guard { - /** - * Holds if the control flow branching from `bb1` is dependent on this guard, - * and that the edge from `bb1` to `bb2` corresponds to the evaluation of this - * guard to `branch`. - */ - predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { - super.hasBranchEdge(bb1, bb2, branch) - } - } + class Guard = Guards::Guard; /** Holds if the guard `guard` directly controls block `bb` upon evaluating to `branch`. */ predicate guardDirectlyControlsBlock(Guard guard, BasicBlock bb, boolean branch) { diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll index adc4a79dd04..bea32b38437 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll @@ -75,11 +75,10 @@ module SsaDataflowInput implements DataFlowIntegrationInputSig { Guard() { this = any(js::ConditionGuardNode g).getTest() } /** - * Holds if the control flow branching from `bb1` is dependent on this guard, - * and that the edge from `bb1` to `bb2` corresponds to the evaluation of this - * guard to `branch`. + * Holds if the evaluation of this guard to `branch` corresponds to the edge + * from `bb1` to `bb2`. */ - predicate controlsBranchEdge(js::BasicBlock bb1, js::BasicBlock bb2, boolean branch) { + predicate hasBranchEdge(js::BasicBlock bb1, js::BasicBlock bb2, boolean branch) { exists(js::ConditionGuardNode g | g.getTest() = this and bb1 = this.getBasicBlock() and @@ -87,6 +86,15 @@ module SsaDataflowInput implements DataFlowIntegrationInputSig { branch = g.getOutcome() ) } + + /** + * Holds if this guard evaluating to `branch` controls the control-flow + * branch edge from `bb1` to `bb2`. That is, following the edge from + * `bb1` to `bb2` implies that this guard evaluated to `branch`. + */ + predicate controlsBranchEdge(js::BasicBlock bb1, js::BasicBlock bb2, boolean branch) { + this.hasBranchEdge(bb1, bb2, branch) + } } pragma[inline] diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll index b4ba8e3ffad..adbec18be64 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/SsaImpl.qll @@ -484,17 +484,25 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu class Guard extends Cfg::CfgNodes::AstCfgNode { /** - * Holds if the control flow branching from `bb1` is dependent on this guard, - * and that the edge from `bb1` to `bb2` corresponds to the evaluation of this - * guard to `branch`. + * Holds if the evaluation of this guard to `branch` corresponds to the edge + * from `bb1` to `bb2`. */ - predicate controlsBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { + predicate hasBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { exists(Cfg::SuccessorTypes::ConditionalSuccessor s | this.getBasicBlock() = bb1 and bb2 = bb1.getASuccessor(s) and s.getValue() = branch ) } + + /** + * Holds if this guard evaluating to `branch` controls the control-flow + * branch edge from `bb1` to `bb2`. That is, following the edge from + * `bb1` to `bb2` implies that this guard evaluated to `branch`. + */ + predicate controlsBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { + this.hasBranchEdge(bb1, bb2, branch) + } } /** Holds if the guard `guard` controls block `bb` upon evaluating to `branch`. */ diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll index f2500f32ca8..42b1d09f8f9 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/SsaImpl.qll @@ -363,17 +363,25 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu class Guard extends CfgNodes::AstCfgNode { /** - * Holds if the control flow branching from `bb1` is dependent on this guard, - * and that the edge from `bb1` to `bb2` corresponds to the evaluation of this - * guard to `branch`. + * Holds if the evaluation of this guard to `branch` corresponds to the edge + * from `bb1` to `bb2`. */ - predicate controlsBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { + predicate hasBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { exists(Cfg::ConditionalSuccessor s | this = bb1.getANode() and bb2 = bb1.getASuccessor(s) and s.getValue() = branch ) } + + /** + * Holds if this guard evaluating to `branch` controls the control-flow + * branch edge from `bb1` to `bb2`. That is, following the edge from + * `bb1` to `bb2` implies that this guard evaluated to `branch`. + */ + predicate controlsBranchEdge(SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, boolean branch) { + this.hasBranchEdge(bb1, bb2, branch) + } } /** Holds if the guard `guard` controls block `bb` upon evaluating to `branch`. */ diff --git a/shared/dataflow/codeql/dataflow/VariableCapture.qll b/shared/dataflow/codeql/dataflow/VariableCapture.qll index c76e1320a37..c2c84b7f0f8 100644 --- a/shared/dataflow/codeql/dataflow/VariableCapture.qll +++ b/shared/dataflow/codeql/dataflow/VariableCapture.qll @@ -732,6 +732,8 @@ module Flow Input> implements OutputSig } class Guard extends Void { + predicate hasBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { none() } + predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { none() } } diff --git a/shared/ssa/codeql/ssa/Ssa.qll b/shared/ssa/codeql/ssa/Ssa.qll index a0a8a1c864d..a5f9e3f862b 100644 --- a/shared/ssa/codeql/ssa/Ssa.qll +++ b/shared/ssa/codeql/ssa/Ssa.qll @@ -1570,9 +1570,15 @@ module Make Input> { string toString(); /** - * Holds if the control flow branching from `bb1` is dependent on this guard, - * and that the edge from `bb1` to `bb2` corresponds to the evaluation of this - * guard to `branch`. + * Holds if the evaluation of this guard to `branch` corresponds to the edge + * from `bb1` to `bb2`. + */ + predicate hasBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch); + + /** + * Holds if this guard evaluating to `branch` controls the control-flow + * branch edge from `bb1` to `bb2`. That is, following the edge from + * `bb1` to `bb2` implies that this guard evaluated to `branch`. */ predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch); } @@ -1667,7 +1673,7 @@ module Make Input> { ( // The input node is relevant either if it sits directly on a branch // edge for a guard, - exists(DfInput::Guard g | g.controlsBranchEdge(input, phi.getBasicBlock(), _)) + exists(DfInput::Guard g | g.hasBranchEdge(input, phi.getBasicBlock(), _)) or // or if the unique predecessor is not an equivalent substitute in // terms of being controlled by the same guards. From b62d52ede0eda06d431735aba703842f36e72d18 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 23 May 2025 10:35:12 +0200 Subject: [PATCH 596/656] Rust: prevent source files from being extracted in both source and library mode When analysing a repository with multiple separate but related sub-projects there is a risk that some source file are extracted in library mode as well as source mode. To prevent this we pre-fill 'processed_files' set with all source files, even though they have not be processed yet, but are known to be processed later.. This prevents source file to be --- rust/extractor/src/main.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index 1b681d448d2..99f470aa13e 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -14,6 +14,7 @@ use ra_ap_project_model::{CargoConfig, ProjectManifest}; use ra_ap_vfs::Vfs; use rust_analyzer::{ParseResult, RustAnalyzer}; use std::collections::HashSet; +use std::hash::RandomState; use std::time::Instant; use std::{ collections::HashMap, @@ -276,7 +277,8 @@ fn main() -> anyhow::Result<()> { } else { ResolvePaths::Yes }; - let mut processed_files = HashSet::new(); + let mut processed_files: HashSet = + HashSet::from_iter(files.iter().cloned()); for (manifest, files) in map.values().filter(|(_, files)| !files.is_empty()) { if let Some((ref db, ref vfs)) = extractor.load_manifest(manifest, &cargo_config, &load_cargo_config) @@ -288,7 +290,6 @@ fn main() -> anyhow::Result<()> { .push(ExtractionStep::crate_graph(before_crate_graph)); let semantics = Semantics::new(db); for file in files { - processed_files.insert((*file).to_owned()); match extractor.load_source(file, &semantics, vfs) { Ok(()) => extractor.extract_with_semantics( file, From 23b4e5042fa9e83af967c69767ddeabe27f8e4a8 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 23 May 2025 11:18:23 +0200 Subject: [PATCH 597/656] Rust: update expected output --- .../sources/CONSISTENCY/PathResolutionConsistency.expected | 3 --- 1 file changed, 3 deletions(-) diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected index 55de4510344..0aa77163252 100644 --- a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected @@ -1,6 +1,3 @@ -multipleMethodCallTargets -| web_frameworks.rs:194:30:194:74 | ... .get(...) | file://:0:0:0:0 | fn get | -| web_frameworks.rs:194:30:194:74 | ... .get(...) | file://:0:0:0:0 | fn get | multipleCanonicalPaths | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | From 32cece3a43a72447a4c927eded79ba4875c10fdf Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 16 May 2025 16:14:51 +0200 Subject: [PATCH 598/656] Rust: adapt `BadCtorInitialization.ql` to attribute macro expansion --- .../security/CWE-696/BadCtorInitialization.ql | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql b/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql index 80364a9de06..75946d89e11 100644 --- a/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql +++ b/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql @@ -44,9 +44,18 @@ class PathElement = AstNode; * reachable from a source. */ predicate edgesFwd(PathElement pred, PathElement succ) { - // attribute (source) -> callable - pred.(CtorAttr) = succ.(Callable).getAnAttr() + // attribute (source) -> function in macro expansion + exists(Function f | + pred.(CtorAttr) = f.getAnAttr() and + ( + f.getAttributeMacroExpansion().getAnItem() = succ.(Callable) + or + // if for some reason the ctor/dtor macro expansion failed, fall back to looking into the unexpanded item + not f.hasAttributeMacroExpansion() and f = succ.(Callable) + ) + ) or + // callable -> callable attribute macro expansion // [forwards reachable] callable -> enclosed call edgesFwd(_, pred) and pred = succ.(CallExprBase).getEnclosingCallable() From abf21ba767e2a23c7ddeda6df33c36549f307da1 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 16 May 2025 16:15:03 +0200 Subject: [PATCH 599/656] Rust: skip macro expansion in unexpanded attribute macro AST --- .../templates/extractor.mustache | 8 +- rust/extractor/src/translate/base.rs | 51 +- rust/extractor/src/translate/generated.rs | 503 ++++++++++++------ 3 files changed, 383 insertions(+), 179 deletions(-) diff --git a/rust/ast-generator/templates/extractor.mustache b/rust/ast-generator/templates/extractor.mustache index c4f8dbd983d..d0c11bb78e0 100644 --- a/rust/ast-generator/templates/extractor.mustache +++ b/rust/ast-generator/templates/extractor.mustache @@ -2,7 +2,7 @@ use super::base::Translator; use super::mappings::TextValue; -use crate::emit_detached; +use crate::{pre_emit,post_emit}; use crate::generated; use crate::trap::{Label, TrapId}; use ra_ap_syntax::ast::{ @@ -22,18 +22,20 @@ impl Translator<'_> { {{#enums}} pub(crate) fn emit_{{snake_case_name}}(&mut self, node: &ast::{{ast_name}}) -> Option> { + pre_emit!({{name}}, self, node); let label = match node { {{#variants}} ast::{{ast_name}}::{{variant_ast_name}}(inner) => self.emit_{{snake_case_name}}(inner).map(Into::into), {{/variants}} }?; - emit_detached!({{name}}, self, node, label); + post_emit!({{name}}, self, node, label); Some(label) } {{/enums}} {{#nodes}} pub(crate) fn emit_{{snake_case_name}}(&mut self, node: &ast::{{ast_name}}) -> Option> { + pre_emit!({{name}}, self, node); {{#has_attrs}} if self.should_be_excluded(node) { return None; } {{/has_attrs}} @@ -58,7 +60,7 @@ impl Translator<'_> { {{/fields}} }); self.emit_location(label, node); - emit_detached!({{name}}, self, node, label); + post_emit!({{name}}, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index d0e99e8a5b4..d1cec34242c 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -11,7 +11,7 @@ use ra_ap_hir::{ }; use ra_ap_hir_def::ModuleId; use ra_ap_hir_def::type_ref::Mutability; -use ra_ap_hir_expand::{ExpandResult, ExpandTo}; +use ra_ap_hir_expand::{ExpandResult, ExpandTo, InFile}; use ra_ap_ide_db::RootDatabase; use ra_ap_ide_db::line_index::{LineCol, LineIndex}; use ra_ap_parser::SyntaxKind; @@ -23,7 +23,15 @@ use ra_ap_syntax::{ }; #[macro_export] -macro_rules! emit_detached { +macro_rules! pre_emit { + (Item, $self:ident, $node:ident) => { + $self.setup_item_expansion($node); + }; + ($($_:tt)*) => {}; +} + +#[macro_export] +macro_rules! post_emit { (MacroCall, $self:ident, $node:ident, $label:ident) => { $self.extract_macro_call_expanded($node, $label); }; @@ -101,7 +109,8 @@ pub struct Translator<'a> { line_index: LineIndex, file_id: Option, pub semantics: Option<&'a Semantics<'a, RootDatabase>>, - resolve_paths: ResolvePaths, + resolve_paths: bool, + macro_context_depth: usize, } const UNKNOWN_LOCATION: (LineCol, LineCol) = @@ -123,7 +132,8 @@ impl<'a> Translator<'a> { line_index, file_id: semantic_info.map(|i| i.file_id), semantics: semantic_info.map(|i| i.semantics), - resolve_paths, + resolve_paths: resolve_paths == ResolvePaths::Yes, + macro_context_depth: 0, } } fn location(&self, range: TextRange) -> Option<(LineCol, LineCol)> { @@ -321,6 +331,11 @@ impl<'a> Translator<'a> { mcall: &ast::MacroCall, label: Label, ) { + if self.macro_context_depth > 0 { + // we are in an attribute macro, don't emit anything: we would be failing to expand any + // way as rust-analyser now only expands in the context of an expansion + return; + } if let Some(expanded) = self .semantics .as_ref() @@ -521,7 +536,7 @@ impl<'a> Translator<'a> { item: &T, label: Label, ) { - if self.resolve_paths == ResolvePaths::No { + if !self.resolve_paths { return; } (|| { @@ -544,7 +559,7 @@ impl<'a> Translator<'a> { item: &ast::Variant, label: Label, ) { - if self.resolve_paths == ResolvePaths::No { + if !self.resolve_paths { return; } (|| { @@ -567,7 +582,7 @@ impl<'a> Translator<'a> { item: &impl PathAst, label: Label, ) { - if self.resolve_paths == ResolvePaths::No { + if !self.resolve_paths { return; } (|| { @@ -590,7 +605,7 @@ impl<'a> Translator<'a> { item: &ast::MethodCallExpr, label: Label, ) { - if self.resolve_paths == ResolvePaths::No { + if !self.resolve_paths { return; } (|| { @@ -653,9 +668,29 @@ impl<'a> Translator<'a> { } } + pub(crate) fn setup_item_expansion(&mut self, node: &ast::Item) { + if self.semantics.is_some_and(|s| { + let file = s.hir_file_for(node.syntax()); + let node = InFile::new(file, node); + s.is_attr_macro_call(node) + }) { + self.macro_context_depth += 1; + } + } + pub(crate) fn emit_item_expansion(&mut self, node: &ast::Item, label: Label) { (|| { let semantics = self.semantics?; + let file = semantics.hir_file_for(node.syntax()); + let infile_node = InFile::new(file, node); + if !semantics.is_attr_macro_call(infile_node) { + return None; + } + self.macro_context_depth -= 1; + if self.macro_context_depth > 0 { + // only expand the outermost attribute macro + return None; + } let ExpandResult { value: expanded, .. } = semantics.expand_attr_macro(node)?; diff --git a/rust/extractor/src/translate/generated.rs b/rust/extractor/src/translate/generated.rs index 5002f09c4d8..fe8da75770c 100644 --- a/rust/extractor/src/translate/generated.rs +++ b/rust/extractor/src/translate/generated.rs @@ -1,9 +1,9 @@ //! Generated by `ast-generator`, do not edit by hand. use super::base::Translator; use super::mappings::TextValue; -use crate::emit_detached; use crate::generated; use crate::trap::{Label, TrapId}; +use crate::{post_emit, pre_emit}; use ra_ap_syntax::ast::{ HasArgList, HasAttrs, HasGenericArgs, HasGenericParams, HasLoopBody, HasModuleItem, HasName, HasTypeBounds, HasVisibility, RangeItem, @@ -21,6 +21,7 @@ impl Translator<'_> { &mut self, node: &ast::AsmOperand, ) -> Option> { + pre_emit!(AsmOperand, self, node); let label = match node { ast::AsmOperand::AsmConst(inner) => self.emit_asm_const(inner).map(Into::into), ast::AsmOperand::AsmLabel(inner) => self.emit_asm_label(inner).map(Into::into), @@ -29,13 +30,14 @@ impl Translator<'_> { } ast::AsmOperand::AsmSym(inner) => self.emit_asm_sym(inner).map(Into::into), }?; - emit_detached!(AsmOperand, self, node, label); + post_emit!(AsmOperand, self, node, label); Some(label) } pub(crate) fn emit_asm_piece( &mut self, node: &ast::AsmPiece, ) -> Option> { + pre_emit!(AsmPiece, self, node); let label = match node { ast::AsmPiece::AsmClobberAbi(inner) => self.emit_asm_clobber_abi(inner).map(Into::into), ast::AsmPiece::AsmOperandNamed(inner) => { @@ -43,23 +45,25 @@ impl Translator<'_> { } ast::AsmPiece::AsmOptions(inner) => self.emit_asm_options(inner).map(Into::into), }?; - emit_detached!(AsmPiece, self, node, label); + post_emit!(AsmPiece, self, node, label); Some(label) } pub(crate) fn emit_assoc_item( &mut self, node: &ast::AssocItem, ) -> Option> { + pre_emit!(AssocItem, self, node); let label = match node { ast::AssocItem::Const(inner) => self.emit_const(inner).map(Into::into), ast::AssocItem::Fn(inner) => self.emit_fn(inner).map(Into::into), ast::AssocItem::MacroCall(inner) => self.emit_macro_call(inner).map(Into::into), ast::AssocItem::TypeAlias(inner) => self.emit_type_alias(inner).map(Into::into), }?; - emit_detached!(AssocItem, self, node, label); + post_emit!(AssocItem, self, node, label); Some(label) } pub(crate) fn emit_expr(&mut self, node: &ast::Expr) -> Option> { + pre_emit!(Expr, self, node); let label = match node { ast::Expr::ArrayExpr(inner) => self.emit_array_expr(inner).map(Into::into), ast::Expr::AsmExpr(inner) => self.emit_asm_expr(inner).map(Into::into), @@ -98,26 +102,28 @@ impl Translator<'_> { ast::Expr::YeetExpr(inner) => self.emit_yeet_expr(inner).map(Into::into), ast::Expr::YieldExpr(inner) => self.emit_yield_expr(inner).map(Into::into), }?; - emit_detached!(Expr, self, node, label); + post_emit!(Expr, self, node, label); Some(label) } pub(crate) fn emit_extern_item( &mut self, node: &ast::ExternItem, ) -> Option> { + pre_emit!(ExternItem, self, node); let label = match node { ast::ExternItem::Fn(inner) => self.emit_fn(inner).map(Into::into), ast::ExternItem::MacroCall(inner) => self.emit_macro_call(inner).map(Into::into), ast::ExternItem::Static(inner) => self.emit_static(inner).map(Into::into), ast::ExternItem::TypeAlias(inner) => self.emit_type_alias(inner).map(Into::into), }?; - emit_detached!(ExternItem, self, node, label); + post_emit!(ExternItem, self, node, label); Some(label) } pub(crate) fn emit_field_list( &mut self, node: &ast::FieldList, ) -> Option> { + pre_emit!(FieldList, self, node); let label = match node { ast::FieldList::RecordFieldList(inner) => { self.emit_record_field_list(inner).map(Into::into) @@ -126,26 +132,28 @@ impl Translator<'_> { self.emit_tuple_field_list(inner).map(Into::into) } }?; - emit_detached!(FieldList, self, node, label); + post_emit!(FieldList, self, node, label); Some(label) } pub(crate) fn emit_generic_arg( &mut self, node: &ast::GenericArg, ) -> Option> { + pre_emit!(GenericArg, self, node); let label = match node { ast::GenericArg::AssocTypeArg(inner) => self.emit_assoc_type_arg(inner).map(Into::into), ast::GenericArg::ConstArg(inner) => self.emit_const_arg(inner).map(Into::into), ast::GenericArg::LifetimeArg(inner) => self.emit_lifetime_arg(inner).map(Into::into), ast::GenericArg::TypeArg(inner) => self.emit_type_arg(inner).map(Into::into), }?; - emit_detached!(GenericArg, self, node, label); + post_emit!(GenericArg, self, node, label); Some(label) } pub(crate) fn emit_generic_param( &mut self, node: &ast::GenericParam, ) -> Option> { + pre_emit!(GenericParam, self, node); let label = match node { ast::GenericParam::ConstParam(inner) => self.emit_const_param(inner).map(Into::into), ast::GenericParam::LifetimeParam(inner) => { @@ -153,10 +161,11 @@ impl Translator<'_> { } ast::GenericParam::TypeParam(inner) => self.emit_type_param(inner).map(Into::into), }?; - emit_detached!(GenericParam, self, node, label); + post_emit!(GenericParam, self, node, label); Some(label) } pub(crate) fn emit_pat(&mut self, node: &ast::Pat) -> Option> { + pre_emit!(Pat, self, node); let label = match node { ast::Pat::BoxPat(inner) => self.emit_box_pat(inner).map(Into::into), ast::Pat::ConstBlockPat(inner) => self.emit_const_block_pat(inner).map(Into::into), @@ -175,19 +184,21 @@ impl Translator<'_> { ast::Pat::TupleStructPat(inner) => self.emit_tuple_struct_pat(inner).map(Into::into), ast::Pat::WildcardPat(inner) => self.emit_wildcard_pat(inner).map(Into::into), }?; - emit_detached!(Pat, self, node, label); + post_emit!(Pat, self, node, label); Some(label) } pub(crate) fn emit_stmt(&mut self, node: &ast::Stmt) -> Option> { + pre_emit!(Stmt, self, node); let label = match node { ast::Stmt::ExprStmt(inner) => self.emit_expr_stmt(inner).map(Into::into), ast::Stmt::Item(inner) => self.emit_item(inner).map(Into::into), ast::Stmt::LetStmt(inner) => self.emit_let_stmt(inner).map(Into::into), }?; - emit_detached!(Stmt, self, node, label); + post_emit!(Stmt, self, node, label); Some(label) } pub(crate) fn emit_type(&mut self, node: &ast::Type) -> Option> { + pre_emit!(TypeRepr, self, node); let label = match node { ast::Type::ArrayType(inner) => self.emit_array_type(inner).map(Into::into), ast::Type::DynTraitType(inner) => self.emit_dyn_trait_type(inner).map(Into::into), @@ -204,21 +215,23 @@ impl Translator<'_> { ast::Type::SliceType(inner) => self.emit_slice_type(inner).map(Into::into), ast::Type::TupleType(inner) => self.emit_tuple_type(inner).map(Into::into), }?; - emit_detached!(TypeRepr, self, node, label); + post_emit!(TypeRepr, self, node, label); Some(label) } pub(crate) fn emit_use_bound_generic_arg( &mut self, node: &ast::UseBoundGenericArg, ) -> Option> { + pre_emit!(UseBoundGenericArg, self, node); let label = match node { ast::UseBoundGenericArg::Lifetime(inner) => self.emit_lifetime(inner).map(Into::into), ast::UseBoundGenericArg::NameRef(inner) => self.emit_name_ref(inner).map(Into::into), }?; - emit_detached!(UseBoundGenericArg, self, node, label); + post_emit!(UseBoundGenericArg, self, node, label); Some(label) } pub(crate) fn emit_item(&mut self, node: &ast::Item) -> Option> { + pre_emit!(Item, self, node); let label = match node { ast::Item::Const(inner) => self.emit_const(inner).map(Into::into), ast::Item::Enum(inner) => self.emit_enum(inner).map(Into::into), @@ -238,17 +251,18 @@ impl Translator<'_> { ast::Item::Union(inner) => self.emit_union(inner).map(Into::into), ast::Item::Use(inner) => self.emit_use(inner).map(Into::into), }?; - emit_detached!(Item, self, node, label); + post_emit!(Item, self, node, label); Some(label) } pub(crate) fn emit_abi(&mut self, node: &ast::Abi) -> Option> { + pre_emit!(Abi, self, node); let abi_string = node.try_get_text(); let label = self.trap.emit(generated::Abi { id: TrapId::Star, abi_string, }); self.emit_location(label, node); - emit_detached!(Abi, self, node, label); + post_emit!(Abi, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -256,13 +270,14 @@ impl Translator<'_> { &mut self, node: &ast::ArgList, ) -> Option> { + pre_emit!(ArgList, self, node); let args = node.args().filter_map(|x| self.emit_expr(&x)).collect(); let label = self.trap.emit(generated::ArgList { id: TrapId::Star, args, }); self.emit_location(label, node); - emit_detached!(ArgList, self, node, label); + post_emit!(ArgList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -270,6 +285,7 @@ impl Translator<'_> { &mut self, node: &ast::ArrayExpr, ) -> Option> { + pre_emit!(ArrayExprInternal, self, node); if self.should_be_excluded(node) { return None; } @@ -283,7 +299,7 @@ impl Translator<'_> { is_semicolon, }); self.emit_location(label, node); - emit_detached!(ArrayExprInternal, self, node, label); + post_emit!(ArrayExprInternal, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -291,6 +307,7 @@ impl Translator<'_> { &mut self, node: &ast::ArrayType, ) -> Option> { + pre_emit!(ArrayTypeRepr, self, node); let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(&x)); let element_type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ArrayTypeRepr { @@ -299,7 +316,7 @@ impl Translator<'_> { element_type_repr, }); self.emit_location(label, node); - emit_detached!(ArrayTypeRepr, self, node, label); + post_emit!(ArrayTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -307,11 +324,12 @@ impl Translator<'_> { &mut self, node: &ast::AsmClobberAbi, ) -> Option> { + pre_emit!(AsmClobberAbi, self, node); let label = self .trap .emit(generated::AsmClobberAbi { id: TrapId::Star }); self.emit_location(label, node); - emit_detached!(AsmClobberAbi, self, node, label); + post_emit!(AsmClobberAbi, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -319,6 +337,7 @@ impl Translator<'_> { &mut self, node: &ast::AsmConst, ) -> Option> { + pre_emit!(AsmConst, self, node); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let is_const = node.const_token().is_some(); let label = self.trap.emit(generated::AsmConst { @@ -327,7 +346,7 @@ impl Translator<'_> { is_const, }); self.emit_location(label, node); - emit_detached!(AsmConst, self, node, label); + post_emit!(AsmConst, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -335,9 +354,10 @@ impl Translator<'_> { &mut self, node: &ast::AsmDirSpec, ) -> Option> { + pre_emit!(AsmDirSpec, self, node); let label = self.trap.emit(generated::AsmDirSpec { id: TrapId::Star }); self.emit_location(label, node); - emit_detached!(AsmDirSpec, self, node, label); + post_emit!(AsmDirSpec, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -345,6 +365,7 @@ impl Translator<'_> { &mut self, node: &ast::AsmExpr, ) -> Option> { + pre_emit!(AsmExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -361,7 +382,7 @@ impl Translator<'_> { template, }); self.emit_location(label, node); - emit_detached!(AsmExpr, self, node, label); + post_emit!(AsmExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -369,13 +390,14 @@ impl Translator<'_> { &mut self, node: &ast::AsmLabel, ) -> Option> { + pre_emit!(AsmLabel, self, node); let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::AsmLabel { id: TrapId::Star, block_expr, }); self.emit_location(label, node); - emit_detached!(AsmLabel, self, node, label); + post_emit!(AsmLabel, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -383,6 +405,7 @@ impl Translator<'_> { &mut self, node: &ast::AsmOperandExpr, ) -> Option> { + pre_emit!(AsmOperandExpr, self, node); let in_expr = node.in_expr().and_then(|x| self.emit_expr(&x)); let out_expr = node.out_expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::AsmOperandExpr { @@ -391,7 +414,7 @@ impl Translator<'_> { out_expr, }); self.emit_location(label, node); - emit_detached!(AsmOperandExpr, self, node, label); + post_emit!(AsmOperandExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -399,6 +422,7 @@ impl Translator<'_> { &mut self, node: &ast::AsmOperandNamed, ) -> Option> { + pre_emit!(AsmOperandNamed, self, node); let asm_operand = node.asm_operand().and_then(|x| self.emit_asm_operand(&x)); let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::AsmOperandNamed { @@ -407,7 +431,7 @@ impl Translator<'_> { name, }); self.emit_location(label, node); - emit_detached!(AsmOperandNamed, self, node, label); + post_emit!(AsmOperandNamed, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -415,13 +439,14 @@ impl Translator<'_> { &mut self, node: &ast::AsmOption, ) -> Option> { + pre_emit!(AsmOption, self, node); let is_raw = node.raw_token().is_some(); let label = self.trap.emit(generated::AsmOption { id: TrapId::Star, is_raw, }); self.emit_location(label, node); - emit_detached!(AsmOption, self, node, label); + post_emit!(AsmOption, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -429,6 +454,7 @@ impl Translator<'_> { &mut self, node: &ast::AsmOptions, ) -> Option> { + pre_emit!(AsmOptionsList, self, node); let asm_options = node .asm_options() .filter_map(|x| self.emit_asm_option(&x)) @@ -438,7 +464,7 @@ impl Translator<'_> { asm_options, }); self.emit_location(label, node); - emit_detached!(AsmOptionsList, self, node, label); + post_emit!(AsmOptionsList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -446,6 +472,7 @@ impl Translator<'_> { &mut self, node: &ast::AsmRegOperand, ) -> Option> { + pre_emit!(AsmRegOperand, self, node); let asm_dir_spec = node.asm_dir_spec().and_then(|x| self.emit_asm_dir_spec(&x)); let asm_operand_expr = node .asm_operand_expr() @@ -458,7 +485,7 @@ impl Translator<'_> { asm_reg_spec, }); self.emit_location(label, node); - emit_detached!(AsmRegOperand, self, node, label); + post_emit!(AsmRegOperand, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -466,24 +493,26 @@ impl Translator<'_> { &mut self, node: &ast::AsmRegSpec, ) -> Option> { + pre_emit!(AsmRegSpec, self, node); let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); let label = self.trap.emit(generated::AsmRegSpec { id: TrapId::Star, identifier, }); self.emit_location(label, node); - emit_detached!(AsmRegSpec, self, node, label); + post_emit!(AsmRegSpec, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_asm_sym(&mut self, node: &ast::AsmSym) -> Option> { + pre_emit!(AsmSym, self, node); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::AsmSym { id: TrapId::Star, path, }); self.emit_location(label, node); - emit_detached!(AsmSym, self, node, label); + post_emit!(AsmSym, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -491,6 +520,7 @@ impl Translator<'_> { &mut self, node: &ast::AssocItemList, ) -> Option> { + pre_emit!(AssocItemList, self, node); if self.should_be_excluded(node) { return None; } @@ -505,7 +535,7 @@ impl Translator<'_> { attrs, }); self.emit_location(label, node); - emit_detached!(AssocItemList, self, node, label); + post_emit!(AssocItemList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -513,6 +543,7 @@ impl Translator<'_> { &mut self, node: &ast::AssocTypeArg, ) -> Option> { + pre_emit!(AssocTypeArg, self, node); let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(&x)); let generic_arg_list = node .generic_arg_list() @@ -539,18 +570,19 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - emit_detached!(AssocTypeArg, self, node, label); + post_emit!(AssocTypeArg, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_attr(&mut self, node: &ast::Attr) -> Option> { + pre_emit!(Attr, self, node); let meta = node.meta().and_then(|x| self.emit_meta(&x)); let label = self.trap.emit(generated::Attr { id: TrapId::Star, meta, }); self.emit_location(label, node); - emit_detached!(Attr, self, node, label); + post_emit!(Attr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -558,6 +590,7 @@ impl Translator<'_> { &mut self, node: &ast::AwaitExpr, ) -> Option> { + pre_emit!(AwaitExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -569,7 +602,7 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - emit_detached!(AwaitExpr, self, node, label); + post_emit!(AwaitExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -577,6 +610,7 @@ impl Translator<'_> { &mut self, node: &ast::BecomeExpr, ) -> Option> { + pre_emit!(BecomeExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -588,7 +622,7 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - emit_detached!(BecomeExpr, self, node, label); + post_emit!(BecomeExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -596,6 +630,7 @@ impl Translator<'_> { &mut self, node: &ast::BinExpr, ) -> Option> { + pre_emit!(BinaryExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -611,7 +646,7 @@ impl Translator<'_> { rhs, }); self.emit_location(label, node); - emit_detached!(BinaryExpr, self, node, label); + post_emit!(BinaryExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -619,6 +654,7 @@ impl Translator<'_> { &mut self, node: &ast::BlockExpr, ) -> Option> { + pre_emit!(BlockExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -644,18 +680,19 @@ impl Translator<'_> { stmt_list, }); self.emit_location(label, node); - emit_detached!(BlockExpr, self, node, label); + post_emit!(BlockExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_box_pat(&mut self, node: &ast::BoxPat) -> Option> { + pre_emit!(BoxPat, self, node); let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::BoxPat { id: TrapId::Star, pat, }); self.emit_location(label, node); - emit_detached!(BoxPat, self, node, label); + post_emit!(BoxPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -663,6 +700,7 @@ impl Translator<'_> { &mut self, node: &ast::BreakExpr, ) -> Option> { + pre_emit!(BreakExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -676,7 +714,7 @@ impl Translator<'_> { lifetime, }); self.emit_location(label, node); - emit_detached!(BreakExpr, self, node, label); + post_emit!(BreakExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -684,6 +722,7 @@ impl Translator<'_> { &mut self, node: &ast::CallExpr, ) -> Option> { + pre_emit!(CallExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -697,7 +736,7 @@ impl Translator<'_> { function, }); self.emit_location(label, node); - emit_detached!(CallExpr, self, node, label); + post_emit!(CallExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -705,6 +744,7 @@ impl Translator<'_> { &mut self, node: &ast::CastExpr, ) -> Option> { + pre_emit!(CastExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -718,7 +758,7 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - emit_detached!(CastExpr, self, node, label); + post_emit!(CastExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -726,6 +766,7 @@ impl Translator<'_> { &mut self, node: &ast::ClosureBinder, ) -> Option> { + pre_emit!(ClosureBinder, self, node); let generic_param_list = node .generic_param_list() .and_then(|x| self.emit_generic_param_list(&x)); @@ -734,7 +775,7 @@ impl Translator<'_> { generic_param_list, }); self.emit_location(label, node); - emit_detached!(ClosureBinder, self, node, label); + post_emit!(ClosureBinder, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -742,6 +783,7 @@ impl Translator<'_> { &mut self, node: &ast::ClosureExpr, ) -> Option> { + pre_emit!(ClosureExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -771,11 +813,12 @@ impl Translator<'_> { ret_type, }); self.emit_location(label, node); - emit_detached!(ClosureExpr, self, node, label); + post_emit!(ClosureExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_const(&mut self, node: &ast::Const) -> Option> { + pre_emit!(Const, self, node); if self.should_be_excluded(node) { return None; } @@ -797,7 +840,7 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - emit_detached!(Const, self, node, label); + post_emit!(Const, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -805,13 +848,14 @@ impl Translator<'_> { &mut self, node: &ast::ConstArg, ) -> Option> { + pre_emit!(ConstArg, self, node); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ConstArg { id: TrapId::Star, expr, }); self.emit_location(label, node); - emit_detached!(ConstArg, self, node, label); + post_emit!(ConstArg, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -819,6 +863,7 @@ impl Translator<'_> { &mut self, node: &ast::ConstBlockPat, ) -> Option> { + pre_emit!(ConstBlockPat, self, node); let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let is_const = node.const_token().is_some(); let label = self.trap.emit(generated::ConstBlockPat { @@ -827,7 +872,7 @@ impl Translator<'_> { is_const, }); self.emit_location(label, node); - emit_detached!(ConstBlockPat, self, node, label); + post_emit!(ConstBlockPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -835,6 +880,7 @@ impl Translator<'_> { &mut self, node: &ast::ConstParam, ) -> Option> { + pre_emit!(ConstParam, self, node); if self.should_be_excluded(node) { return None; } @@ -852,7 +898,7 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - emit_detached!(ConstParam, self, node, label); + post_emit!(ConstParam, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -860,6 +906,7 @@ impl Translator<'_> { &mut self, node: &ast::ContinueExpr, ) -> Option> { + pre_emit!(ContinueExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -871,7 +918,7 @@ impl Translator<'_> { lifetime, }); self.emit_location(label, node); - emit_detached!(ContinueExpr, self, node, label); + post_emit!(ContinueExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -879,6 +926,7 @@ impl Translator<'_> { &mut self, node: &ast::DynTraitType, ) -> Option> { + pre_emit!(DynTraitTypeRepr, self, node); let type_bound_list = node .type_bound_list() .and_then(|x| self.emit_type_bound_list(&x)); @@ -887,11 +935,12 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - emit_detached!(DynTraitTypeRepr, self, node, label); + post_emit!(DynTraitTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_enum(&mut self, node: &ast::Enum) -> Option> { + pre_emit!(Enum, self, node); if self.should_be_excluded(node) { return None; } @@ -913,7 +962,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - emit_detached!(Enum, self, node, label); + post_emit!(Enum, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -921,13 +970,14 @@ impl Translator<'_> { &mut self, node: &ast::ExprStmt, ) -> Option> { + pre_emit!(ExprStmt, self, node); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ExprStmt { id: TrapId::Star, expr, }); self.emit_location(label, node); - emit_detached!(ExprStmt, self, node, label); + post_emit!(ExprStmt, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -935,6 +985,7 @@ impl Translator<'_> { &mut self, node: &ast::ExternBlock, ) -> Option> { + pre_emit!(ExternBlock, self, node); if self.should_be_excluded(node) { return None; } @@ -952,7 +1003,7 @@ impl Translator<'_> { is_unsafe, }); self.emit_location(label, node); - emit_detached!(ExternBlock, self, node, label); + post_emit!(ExternBlock, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -960,6 +1011,7 @@ impl Translator<'_> { &mut self, node: &ast::ExternCrate, ) -> Option> { + pre_emit!(ExternCrate, self, node); if self.should_be_excluded(node) { return None; } @@ -975,7 +1027,7 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - emit_detached!(ExternCrate, self, node, label); + post_emit!(ExternCrate, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -983,6 +1035,7 @@ impl Translator<'_> { &mut self, node: &ast::ExternItemList, ) -> Option> { + pre_emit!(ExternItemList, self, node); if self.should_be_excluded(node) { return None; } @@ -997,7 +1050,7 @@ impl Translator<'_> { extern_items, }); self.emit_location(label, node); - emit_detached!(ExternItemList, self, node, label); + post_emit!(ExternItemList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1005,6 +1058,7 @@ impl Translator<'_> { &mut self, node: &ast::FieldExpr, ) -> Option> { + pre_emit!(FieldExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1018,11 +1072,12 @@ impl Translator<'_> { identifier, }); self.emit_location(label, node); - emit_detached!(FieldExpr, self, node, label); + post_emit!(FieldExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_fn(&mut self, node: &ast::Fn) -> Option> { + pre_emit!(Function, self, node); if self.should_be_excluded(node) { return None; } @@ -1060,7 +1115,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - emit_detached!(Function, self, node, label); + post_emit!(Function, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1068,6 +1123,7 @@ impl Translator<'_> { &mut self, node: &ast::FnPtrType, ) -> Option> { + pre_emit!(FnPtrTypeRepr, self, node); let abi = node.abi().and_then(|x| self.emit_abi(&x)); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); @@ -1084,7 +1140,7 @@ impl Translator<'_> { ret_type, }); self.emit_location(label, node); - emit_detached!(FnPtrTypeRepr, self, node, label); + post_emit!(FnPtrTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1092,6 +1148,7 @@ impl Translator<'_> { &mut self, node: &ast::ForExpr, ) -> Option> { + pre_emit!(ForExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1109,7 +1166,7 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - emit_detached!(ForExpr, self, node, label); + post_emit!(ForExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1117,6 +1174,7 @@ impl Translator<'_> { &mut self, node: &ast::ForType, ) -> Option> { + pre_emit!(ForTypeRepr, self, node); let generic_param_list = node .generic_param_list() .and_then(|x| self.emit_generic_param_list(&x)); @@ -1127,7 +1185,7 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - emit_detached!(ForTypeRepr, self, node, label); + post_emit!(ForTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1135,6 +1193,7 @@ impl Translator<'_> { &mut self, node: &ast::FormatArgsArg, ) -> Option> { + pre_emit!(FormatArgsArg, self, node); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::FormatArgsArg { @@ -1143,7 +1202,7 @@ impl Translator<'_> { name, }); self.emit_location(label, node); - emit_detached!(FormatArgsArg, self, node, label); + post_emit!(FormatArgsArg, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1151,6 +1210,7 @@ impl Translator<'_> { &mut self, node: &ast::FormatArgsExpr, ) -> Option> { + pre_emit!(FormatArgsExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1167,7 +1227,7 @@ impl Translator<'_> { template, }); self.emit_location(label, node); - emit_detached!(FormatArgsExpr, self, node, label); + post_emit!(FormatArgsExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1175,6 +1235,7 @@ impl Translator<'_> { &mut self, node: &ast::GenericArgList, ) -> Option> { + pre_emit!(GenericArgList, self, node); let generic_args = node .generic_args() .filter_map(|x| self.emit_generic_arg(&x)) @@ -1184,7 +1245,7 @@ impl Translator<'_> { generic_args, }); self.emit_location(label, node); - emit_detached!(GenericArgList, self, node, label); + post_emit!(GenericArgList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1192,6 +1253,7 @@ impl Translator<'_> { &mut self, node: &ast::GenericParamList, ) -> Option> { + pre_emit!(GenericParamList, self, node); let generic_params = node .generic_params() .filter_map(|x| self.emit_generic_param(&x)) @@ -1201,7 +1263,7 @@ impl Translator<'_> { generic_params, }); self.emit_location(label, node); - emit_detached!(GenericParamList, self, node, label); + post_emit!(GenericParamList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1209,6 +1271,7 @@ impl Translator<'_> { &mut self, node: &ast::IdentPat, ) -> Option> { + pre_emit!(IdentPat, self, node); if self.should_be_excluded(node) { return None; } @@ -1226,11 +1289,12 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - emit_detached!(IdentPat, self, node, label); + post_emit!(IdentPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_if_expr(&mut self, node: &ast::IfExpr) -> Option> { + pre_emit!(IfExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1246,11 +1310,12 @@ impl Translator<'_> { then, }); self.emit_location(label, node); - emit_detached!(IfExpr, self, node, label); + post_emit!(IfExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_impl(&mut self, node: &ast::Impl) -> Option> { + pre_emit!(Impl, self, node); if self.should_be_excluded(node) { return None; } @@ -1282,7 +1347,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - emit_detached!(Impl, self, node, label); + post_emit!(Impl, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1290,6 +1355,7 @@ impl Translator<'_> { &mut self, node: &ast::ImplTraitType, ) -> Option> { + pre_emit!(ImplTraitTypeRepr, self, node); let type_bound_list = node .type_bound_list() .and_then(|x| self.emit_type_bound_list(&x)); @@ -1298,7 +1364,7 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - emit_detached!(ImplTraitTypeRepr, self, node, label); + post_emit!(ImplTraitTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1306,6 +1372,7 @@ impl Translator<'_> { &mut self, node: &ast::IndexExpr, ) -> Option> { + pre_emit!(IndexExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1319,7 +1386,7 @@ impl Translator<'_> { index, }); self.emit_location(label, node); - emit_detached!(IndexExpr, self, node, label); + post_emit!(IndexExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1327,11 +1394,12 @@ impl Translator<'_> { &mut self, node: &ast::InferType, ) -> Option> { + pre_emit!(InferTypeRepr, self, node); let label = self .trap .emit(generated::InferTypeRepr { id: TrapId::Star }); self.emit_location(label, node); - emit_detached!(InferTypeRepr, self, node, label); + post_emit!(InferTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1339,6 +1407,7 @@ impl Translator<'_> { &mut self, node: &ast::ItemList, ) -> Option> { + pre_emit!(ItemList, self, node); if self.should_be_excluded(node) { return None; } @@ -1350,18 +1419,19 @@ impl Translator<'_> { items, }); self.emit_location(label, node); - emit_detached!(ItemList, self, node, label); + post_emit!(ItemList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_label(&mut self, node: &ast::Label) -> Option> { + pre_emit!(Label, self, node); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::Label { id: TrapId::Star, lifetime, }); self.emit_location(label, node); - emit_detached!(Label, self, node, label); + post_emit!(Label, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1369,13 +1439,14 @@ impl Translator<'_> { &mut self, node: &ast::LetElse, ) -> Option> { + pre_emit!(LetElse, self, node); let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::LetElse { id: TrapId::Star, block_expr, }); self.emit_location(label, node); - emit_detached!(LetElse, self, node, label); + post_emit!(LetElse, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1383,6 +1454,7 @@ impl Translator<'_> { &mut self, node: &ast::LetExpr, ) -> Option> { + pre_emit!(LetExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1396,7 +1468,7 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - emit_detached!(LetExpr, self, node, label); + post_emit!(LetExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1404,6 +1476,7 @@ impl Translator<'_> { &mut self, node: &ast::LetStmt, ) -> Option> { + pre_emit!(LetStmt, self, node); if self.should_be_excluded(node) { return None; } @@ -1421,7 +1494,7 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - emit_detached!(LetStmt, self, node, label); + post_emit!(LetStmt, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1429,13 +1502,14 @@ impl Translator<'_> { &mut self, node: &ast::Lifetime, ) -> Option> { + pre_emit!(Lifetime, self, node); let text = node.try_get_text(); let label = self.trap.emit(generated::Lifetime { id: TrapId::Star, text, }); self.emit_location(label, node); - emit_detached!(Lifetime, self, node, label); + post_emit!(Lifetime, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1443,13 +1517,14 @@ impl Translator<'_> { &mut self, node: &ast::LifetimeArg, ) -> Option> { + pre_emit!(LifetimeArg, self, node); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::LifetimeArg { id: TrapId::Star, lifetime, }); self.emit_location(label, node); - emit_detached!(LifetimeArg, self, node, label); + post_emit!(LifetimeArg, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1457,6 +1532,7 @@ impl Translator<'_> { &mut self, node: &ast::LifetimeParam, ) -> Option> { + pre_emit!(LifetimeParam, self, node); if self.should_be_excluded(node) { return None; } @@ -1472,7 +1548,7 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - emit_detached!(LifetimeParam, self, node, label); + post_emit!(LifetimeParam, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1480,6 +1556,7 @@ impl Translator<'_> { &mut self, node: &ast::Literal, ) -> Option> { + pre_emit!(LiteralExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1491,7 +1568,7 @@ impl Translator<'_> { text_value, }); self.emit_location(label, node); - emit_detached!(LiteralExpr, self, node, label); + post_emit!(LiteralExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1499,13 +1576,14 @@ impl Translator<'_> { &mut self, node: &ast::LiteralPat, ) -> Option> { + pre_emit!(LiteralPat, self, node); let literal = node.literal().and_then(|x| self.emit_literal(&x)); let label = self.trap.emit(generated::LiteralPat { id: TrapId::Star, literal, }); self.emit_location(label, node); - emit_detached!(LiteralPat, self, node, label); + post_emit!(LiteralPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1513,6 +1591,7 @@ impl Translator<'_> { &mut self, node: &ast::LoopExpr, ) -> Option> { + pre_emit!(LoopExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1526,7 +1605,7 @@ impl Translator<'_> { loop_body, }); self.emit_location(label, node); - emit_detached!(LoopExpr, self, node, label); + post_emit!(LoopExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1534,6 +1613,7 @@ impl Translator<'_> { &mut self, node: &ast::MacroCall, ) -> Option> { + pre_emit!(MacroCall, self, node); if self.should_be_excluded(node) { return None; } @@ -1547,7 +1627,7 @@ impl Translator<'_> { token_tree, }); self.emit_location(label, node); - emit_detached!(MacroCall, self, node, label); + post_emit!(MacroCall, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1555,6 +1635,7 @@ impl Translator<'_> { &mut self, node: &ast::MacroDef, ) -> Option> { + pre_emit!(MacroDef, self, node); if self.should_be_excluded(node) { return None; } @@ -1572,7 +1653,7 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - emit_detached!(MacroDef, self, node, label); + post_emit!(MacroDef, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1580,13 +1661,14 @@ impl Translator<'_> { &mut self, node: &ast::MacroExpr, ) -> Option> { + pre_emit!(MacroExpr, self, node); let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroExpr { id: TrapId::Star, macro_call, }); self.emit_location(label, node); - emit_detached!(MacroExpr, self, node, label); + post_emit!(MacroExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1594,13 +1676,14 @@ impl Translator<'_> { &mut self, node: &ast::MacroItems, ) -> Option> { + pre_emit!(MacroItems, self, node); let items = node.items().filter_map(|x| self.emit_item(&x)).collect(); let label = self.trap.emit(generated::MacroItems { id: TrapId::Star, items, }); self.emit_location(label, node); - emit_detached!(MacroItems, self, node, label); + post_emit!(MacroItems, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1608,13 +1691,14 @@ impl Translator<'_> { &mut self, node: &ast::MacroPat, ) -> Option> { + pre_emit!(MacroPat, self, node); let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroPat { id: TrapId::Star, macro_call, }); self.emit_location(label, node); - emit_detached!(MacroPat, self, node, label); + post_emit!(MacroPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1622,6 +1706,7 @@ impl Translator<'_> { &mut self, node: &ast::MacroRules, ) -> Option> { + pre_emit!(MacroRules, self, node); if self.should_be_excluded(node) { return None; } @@ -1637,7 +1722,7 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - emit_detached!(MacroRules, self, node, label); + post_emit!(MacroRules, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1645,6 +1730,7 @@ impl Translator<'_> { &mut self, node: &ast::MacroStmts, ) -> Option> { + pre_emit!(MacroBlockExpr, self, node); let tail_expr = node.expr().and_then(|x| self.emit_expr(&x)); let statements = node .statements() @@ -1656,7 +1742,7 @@ impl Translator<'_> { statements, }); self.emit_location(label, node); - emit_detached!(MacroBlockExpr, self, node, label); + post_emit!(MacroBlockExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1664,13 +1750,14 @@ impl Translator<'_> { &mut self, node: &ast::MacroType, ) -> Option> { + pre_emit!(MacroTypeRepr, self, node); let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroTypeRepr { id: TrapId::Star, macro_call, }); self.emit_location(label, node); - emit_detached!(MacroTypeRepr, self, node, label); + post_emit!(MacroTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1678,6 +1765,7 @@ impl Translator<'_> { &mut self, node: &ast::MatchArm, ) -> Option> { + pre_emit!(MatchArm, self, node); if self.should_be_excluded(node) { return None; } @@ -1693,7 +1781,7 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - emit_detached!(MatchArm, self, node, label); + post_emit!(MatchArm, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1701,6 +1789,7 @@ impl Translator<'_> { &mut self, node: &ast::MatchArmList, ) -> Option> { + pre_emit!(MatchArmList, self, node); if self.should_be_excluded(node) { return None; } @@ -1715,7 +1804,7 @@ impl Translator<'_> { attrs, }); self.emit_location(label, node); - emit_detached!(MatchArmList, self, node, label); + post_emit!(MatchArmList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1723,6 +1812,7 @@ impl Translator<'_> { &mut self, node: &ast::MatchExpr, ) -> Option> { + pre_emit!(MatchExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1738,7 +1828,7 @@ impl Translator<'_> { match_arm_list, }); self.emit_location(label, node); - emit_detached!(MatchExpr, self, node, label); + post_emit!(MatchExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1746,17 +1836,19 @@ impl Translator<'_> { &mut self, node: &ast::MatchGuard, ) -> Option> { + pre_emit!(MatchGuard, self, node); let condition = node.condition().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::MatchGuard { id: TrapId::Star, condition, }); self.emit_location(label, node); - emit_detached!(MatchGuard, self, node, label); + post_emit!(MatchGuard, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_meta(&mut self, node: &ast::Meta) -> Option> { + pre_emit!(Meta, self, node); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let is_unsafe = node.unsafe_token().is_some(); let path = node.path().and_then(|x| self.emit_path(&x)); @@ -1769,7 +1861,7 @@ impl Translator<'_> { token_tree, }); self.emit_location(label, node); - emit_detached!(Meta, self, node, label); + post_emit!(Meta, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1777,6 +1869,7 @@ impl Translator<'_> { &mut self, node: &ast::MethodCallExpr, ) -> Option> { + pre_emit!(MethodCallExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1796,11 +1889,12 @@ impl Translator<'_> { receiver, }); self.emit_location(label, node); - emit_detached!(MethodCallExpr, self, node, label); + post_emit!(MethodCallExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_module(&mut self, node: &ast::Module) -> Option> { + pre_emit!(Module, self, node); if self.should_be_excluded(node) { return None; } @@ -1816,18 +1910,19 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - emit_detached!(Module, self, node, label); + post_emit!(Module, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_name(&mut self, node: &ast::Name) -> Option> { + pre_emit!(Name, self, node); let text = node.try_get_text(); let label = self.trap.emit(generated::Name { id: TrapId::Star, text, }); self.emit_location(label, node); - emit_detached!(Name, self, node, label); + post_emit!(Name, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1835,13 +1930,14 @@ impl Translator<'_> { &mut self, node: &ast::NameRef, ) -> Option> { + pre_emit!(NameRef, self, node); let text = node.try_get_text(); let label = self.trap.emit(generated::NameRef { id: TrapId::Star, text, }); self.emit_location(label, node); - emit_detached!(NameRef, self, node, label); + post_emit!(NameRef, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1849,11 +1945,12 @@ impl Translator<'_> { &mut self, node: &ast::NeverType, ) -> Option> { + pre_emit!(NeverTypeRepr, self, node); let label = self .trap .emit(generated::NeverTypeRepr { id: TrapId::Star }); self.emit_location(label, node); - emit_detached!(NeverTypeRepr, self, node, label); + post_emit!(NeverTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1861,6 +1958,7 @@ impl Translator<'_> { &mut self, node: &ast::OffsetOfExpr, ) -> Option> { + pre_emit!(OffsetOfExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1877,22 +1975,24 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - emit_detached!(OffsetOfExpr, self, node, label); + post_emit!(OffsetOfExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_or_pat(&mut self, node: &ast::OrPat) -> Option> { + pre_emit!(OrPat, self, node); let pats = node.pats().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::OrPat { id: TrapId::Star, pats, }); self.emit_location(label, node); - emit_detached!(OrPat, self, node, label); + post_emit!(OrPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_param(&mut self, node: &ast::Param) -> Option> { + pre_emit!(Param, self, node); if self.should_be_excluded(node) { return None; } @@ -1906,7 +2006,7 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - emit_detached!(Param, self, node, label); + post_emit!(Param, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1914,6 +2014,7 @@ impl Translator<'_> { &mut self, node: &ast::ParamList, ) -> Option> { + pre_emit!(ParamList, self, node); let params = node.params().filter_map(|x| self.emit_param(&x)).collect(); let self_param = node.self_param().and_then(|x| self.emit_self_param(&x)); let label = self.trap.emit(generated::ParamList { @@ -1922,7 +2023,7 @@ impl Translator<'_> { self_param, }); self.emit_location(label, node); - emit_detached!(ParamList, self, node, label); + post_emit!(ParamList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1930,6 +2031,7 @@ impl Translator<'_> { &mut self, node: &ast::ParenExpr, ) -> Option> { + pre_emit!(ParenExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1941,7 +2043,7 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - emit_detached!(ParenExpr, self, node, label); + post_emit!(ParenExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1949,13 +2051,14 @@ impl Translator<'_> { &mut self, node: &ast::ParenPat, ) -> Option> { + pre_emit!(ParenPat, self, node); let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::ParenPat { id: TrapId::Star, pat, }); self.emit_location(label, node); - emit_detached!(ParenPat, self, node, label); + post_emit!(ParenPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1963,13 +2066,14 @@ impl Translator<'_> { &mut self, node: &ast::ParenType, ) -> Option> { + pre_emit!(ParenTypeRepr, self, node); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ParenTypeRepr { id: TrapId::Star, type_repr, }); self.emit_location(label, node); - emit_detached!(ParenTypeRepr, self, node, label); + post_emit!(ParenTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1977,6 +2081,7 @@ impl Translator<'_> { &mut self, node: &ast::ParenthesizedArgList, ) -> Option> { + pre_emit!(ParenthesizedArgList, self, node); let type_args = node .type_args() .filter_map(|x| self.emit_type_arg(&x)) @@ -1986,11 +2091,12 @@ impl Translator<'_> { type_args, }); self.emit_location(label, node); - emit_detached!(ParenthesizedArgList, self, node, label); + post_emit!(ParenthesizedArgList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_path(&mut self, node: &ast::Path) -> Option> { + pre_emit!(Path, self, node); let qualifier = node.qualifier().and_then(|x| self.emit_path(&x)); let segment = node.segment().and_then(|x| self.emit_path_segment(&x)); let label = self.trap.emit(generated::Path { @@ -1999,7 +2105,7 @@ impl Translator<'_> { segment, }); self.emit_location(label, node); - emit_detached!(Path, self, node, label); + post_emit!(Path, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2007,6 +2113,7 @@ impl Translator<'_> { &mut self, node: &ast::PathExpr, ) -> Option> { + pre_emit!(PathExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2018,7 +2125,7 @@ impl Translator<'_> { path, }); self.emit_location(label, node); - emit_detached!(PathExpr, self, node, label); + post_emit!(PathExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2026,13 +2133,14 @@ impl Translator<'_> { &mut self, node: &ast::PathPat, ) -> Option> { + pre_emit!(PathPat, self, node); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::PathPat { id: TrapId::Star, path, }); self.emit_location(label, node); - emit_detached!(PathPat, self, node, label); + post_emit!(PathPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2040,6 +2148,7 @@ impl Translator<'_> { &mut self, node: &ast::PathSegment, ) -> Option> { + pre_emit!(PathSegment, self, node); let generic_arg_list = node .generic_arg_list() .and_then(|x| self.emit_generic_arg_list(&x)); @@ -2060,7 +2169,7 @@ impl Translator<'_> { return_type_syntax, }); self.emit_location(label, node); - emit_detached!(PathSegment, self, node, label); + post_emit!(PathSegment, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2068,13 +2177,14 @@ impl Translator<'_> { &mut self, node: &ast::PathType, ) -> Option> { + pre_emit!(PathTypeRepr, self, node); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::PathTypeRepr { id: TrapId::Star, path, }); self.emit_location(label, node); - emit_detached!(PathTypeRepr, self, node, label); + post_emit!(PathTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2082,6 +2192,7 @@ impl Translator<'_> { &mut self, node: &ast::PrefixExpr, ) -> Option> { + pre_emit!(PrefixExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2095,7 +2206,7 @@ impl Translator<'_> { operator_name, }); self.emit_location(label, node); - emit_detached!(PrefixExpr, self, node, label); + post_emit!(PrefixExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2103,6 +2214,7 @@ impl Translator<'_> { &mut self, node: &ast::PtrType, ) -> Option> { + pre_emit!(PtrTypeRepr, self, node); let is_const = node.const_token().is_some(); let is_mut = node.mut_token().is_some(); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); @@ -2113,7 +2225,7 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - emit_detached!(PtrTypeRepr, self, node, label); + post_emit!(PtrTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2121,6 +2233,7 @@ impl Translator<'_> { &mut self, node: &ast::RangeExpr, ) -> Option> { + pre_emit!(RangeExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2136,7 +2249,7 @@ impl Translator<'_> { start, }); self.emit_location(label, node); - emit_detached!(RangeExpr, self, node, label); + post_emit!(RangeExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2144,6 +2257,7 @@ impl Translator<'_> { &mut self, node: &ast::RangePat, ) -> Option> { + pre_emit!(RangePat, self, node); let end = node.end().and_then(|x| self.emit_pat(&x)); let operator_name = node.try_get_text(); let start = node.start().and_then(|x| self.emit_pat(&x)); @@ -2154,7 +2268,7 @@ impl Translator<'_> { start, }); self.emit_location(label, node); - emit_detached!(RangePat, self, node, label); + post_emit!(RangePat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2162,6 +2276,7 @@ impl Translator<'_> { &mut self, node: &ast::RecordExpr, ) -> Option> { + pre_emit!(StructExpr, self, node); let path = node.path().and_then(|x| self.emit_path(&x)); let struct_expr_field_list = node .record_expr_field_list() @@ -2172,7 +2287,7 @@ impl Translator<'_> { struct_expr_field_list, }); self.emit_location(label, node); - emit_detached!(StructExpr, self, node, label); + post_emit!(StructExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2180,6 +2295,7 @@ impl Translator<'_> { &mut self, node: &ast::RecordExprField, ) -> Option> { + pre_emit!(StructExprField, self, node); if self.should_be_excluded(node) { return None; } @@ -2193,7 +2309,7 @@ impl Translator<'_> { identifier, }); self.emit_location(label, node); - emit_detached!(StructExprField, self, node, label); + post_emit!(StructExprField, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2201,6 +2317,7 @@ impl Translator<'_> { &mut self, node: &ast::RecordExprFieldList, ) -> Option> { + pre_emit!(StructExprFieldList, self, node); if self.should_be_excluded(node) { return None; } @@ -2217,7 +2334,7 @@ impl Translator<'_> { spread, }); self.emit_location(label, node); - emit_detached!(StructExprFieldList, self, node, label); + post_emit!(StructExprFieldList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2225,6 +2342,7 @@ impl Translator<'_> { &mut self, node: &ast::RecordField, ) -> Option> { + pre_emit!(StructField, self, node); if self.should_be_excluded(node) { return None; } @@ -2244,7 +2362,7 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - emit_detached!(StructField, self, node, label); + post_emit!(StructField, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2252,6 +2370,7 @@ impl Translator<'_> { &mut self, node: &ast::RecordFieldList, ) -> Option> { + pre_emit!(StructFieldList, self, node); let fields = node .fields() .filter_map(|x| self.emit_record_field(&x)) @@ -2261,7 +2380,7 @@ impl Translator<'_> { fields, }); self.emit_location(label, node); - emit_detached!(StructFieldList, self, node, label); + post_emit!(StructFieldList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2269,6 +2388,7 @@ impl Translator<'_> { &mut self, node: &ast::RecordPat, ) -> Option> { + pre_emit!(StructPat, self, node); let path = node.path().and_then(|x| self.emit_path(&x)); let struct_pat_field_list = node .record_pat_field_list() @@ -2279,7 +2399,7 @@ impl Translator<'_> { struct_pat_field_list, }); self.emit_location(label, node); - emit_detached!(StructPat, self, node, label); + post_emit!(StructPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2287,6 +2407,7 @@ impl Translator<'_> { &mut self, node: &ast::RecordPatField, ) -> Option> { + pre_emit!(StructPatField, self, node); if self.should_be_excluded(node) { return None; } @@ -2300,7 +2421,7 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - emit_detached!(StructPatField, self, node, label); + post_emit!(StructPatField, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2308,6 +2429,7 @@ impl Translator<'_> { &mut self, node: &ast::RecordPatFieldList, ) -> Option> { + pre_emit!(StructPatFieldList, self, node); let fields = node .fields() .filter_map(|x| self.emit_record_pat_field(&x)) @@ -2319,7 +2441,7 @@ impl Translator<'_> { rest_pat, }); self.emit_location(label, node); - emit_detached!(StructPatFieldList, self, node, label); + post_emit!(StructPatFieldList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2327,6 +2449,7 @@ impl Translator<'_> { &mut self, node: &ast::RefExpr, ) -> Option> { + pre_emit!(RefExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2344,11 +2467,12 @@ impl Translator<'_> { is_raw, }); self.emit_location(label, node); - emit_detached!(RefExpr, self, node, label); + post_emit!(RefExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_ref_pat(&mut self, node: &ast::RefPat) -> Option> { + pre_emit!(RefPat, self, node); let is_mut = node.mut_token().is_some(); let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::RefPat { @@ -2357,7 +2481,7 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - emit_detached!(RefPat, self, node, label); + post_emit!(RefPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2365,6 +2489,7 @@ impl Translator<'_> { &mut self, node: &ast::RefType, ) -> Option> { + pre_emit!(RefTypeRepr, self, node); let is_mut = node.mut_token().is_some(); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); @@ -2375,18 +2500,19 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - emit_detached!(RefTypeRepr, self, node, label); + post_emit!(RefTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_rename(&mut self, node: &ast::Rename) -> Option> { + pre_emit!(Rename, self, node); let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::Rename { id: TrapId::Star, name, }); self.emit_location(label, node); - emit_detached!(Rename, self, node, label); + post_emit!(Rename, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2394,6 +2520,7 @@ impl Translator<'_> { &mut self, node: &ast::RestPat, ) -> Option> { + pre_emit!(RestPat, self, node); if self.should_be_excluded(node) { return None; } @@ -2403,7 +2530,7 @@ impl Translator<'_> { attrs, }); self.emit_location(label, node); - emit_detached!(RestPat, self, node, label); + post_emit!(RestPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2411,13 +2538,14 @@ impl Translator<'_> { &mut self, node: &ast::RetType, ) -> Option> { + pre_emit!(RetTypeRepr, self, node); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::RetTypeRepr { id: TrapId::Star, type_repr, }); self.emit_location(label, node); - emit_detached!(RetTypeRepr, self, node, label); + post_emit!(RetTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2425,6 +2553,7 @@ impl Translator<'_> { &mut self, node: &ast::ReturnExpr, ) -> Option> { + pre_emit!(ReturnExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2436,7 +2565,7 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - emit_detached!(ReturnExpr, self, node, label); + post_emit!(ReturnExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2444,11 +2573,12 @@ impl Translator<'_> { &mut self, node: &ast::ReturnTypeSyntax, ) -> Option> { + pre_emit!(ReturnTypeSyntax, self, node); let label = self .trap .emit(generated::ReturnTypeSyntax { id: TrapId::Star }); self.emit_location(label, node); - emit_detached!(ReturnTypeSyntax, self, node, label); + post_emit!(ReturnTypeSyntax, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2456,6 +2586,7 @@ impl Translator<'_> { &mut self, node: &ast::SelfParam, ) -> Option> { + pre_emit!(SelfParam, self, node); if self.should_be_excluded(node) { return None; } @@ -2475,7 +2606,7 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - emit_detached!(SelfParam, self, node, label); + post_emit!(SelfParam, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2483,13 +2614,14 @@ impl Translator<'_> { &mut self, node: &ast::SlicePat, ) -> Option> { + pre_emit!(SlicePat, self, node); let pats = node.pats().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::SlicePat { id: TrapId::Star, pats, }); self.emit_location(label, node); - emit_detached!(SlicePat, self, node, label); + post_emit!(SlicePat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2497,13 +2629,14 @@ impl Translator<'_> { &mut self, node: &ast::SliceType, ) -> Option> { + pre_emit!(SliceTypeRepr, self, node); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::SliceTypeRepr { id: TrapId::Star, type_repr, }); self.emit_location(label, node); - emit_detached!(SliceTypeRepr, self, node, label); + post_emit!(SliceTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2511,6 +2644,7 @@ impl Translator<'_> { &mut self, node: &ast::SourceFile, ) -> Option> { + pre_emit!(SourceFile, self, node); if self.should_be_excluded(node) { return None; } @@ -2522,11 +2656,12 @@ impl Translator<'_> { items, }); self.emit_location(label, node); - emit_detached!(SourceFile, self, node, label); + post_emit!(SourceFile, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_static(&mut self, node: &ast::Static) -> Option> { + pre_emit!(Static, self, node); if self.should_be_excluded(node) { return None; } @@ -2550,7 +2685,7 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - emit_detached!(Static, self, node, label); + post_emit!(Static, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2558,6 +2693,7 @@ impl Translator<'_> { &mut self, node: &ast::StmtList, ) -> Option> { + pre_emit!(StmtList, self, node); if self.should_be_excluded(node) { return None; } @@ -2574,11 +2710,12 @@ impl Translator<'_> { tail_expr, }); self.emit_location(label, node); - emit_detached!(StmtList, self, node, label); + post_emit!(StmtList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_struct(&mut self, node: &ast::Struct) -> Option> { + pre_emit!(Struct, self, node); if self.should_be_excluded(node) { return None; } @@ -2600,7 +2737,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - emit_detached!(Struct, self, node, label); + post_emit!(Struct, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2608,13 +2745,15 @@ impl Translator<'_> { &mut self, node: &ast::TokenTree, ) -> Option> { + pre_emit!(TokenTree, self, node); let label = self.trap.emit(generated::TokenTree { id: TrapId::Star }); self.emit_location(label, node); - emit_detached!(TokenTree, self, node, label); + post_emit!(TokenTree, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_trait(&mut self, node: &ast::Trait) -> Option> { + pre_emit!(Trait, self, node); if self.should_be_excluded(node) { return None; } @@ -2646,7 +2785,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - emit_detached!(Trait, self, node, label); + post_emit!(Trait, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2654,6 +2793,7 @@ impl Translator<'_> { &mut self, node: &ast::TraitAlias, ) -> Option> { + pre_emit!(TraitAlias, self, node); if self.should_be_excluded(node) { return None; } @@ -2677,7 +2817,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - emit_detached!(TraitAlias, self, node, label); + post_emit!(TraitAlias, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2685,6 +2825,7 @@ impl Translator<'_> { &mut self, node: &ast::TryExpr, ) -> Option> { + pre_emit!(TryExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2696,7 +2837,7 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - emit_detached!(TryExpr, self, node, label); + post_emit!(TryExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2704,6 +2845,7 @@ impl Translator<'_> { &mut self, node: &ast::TupleExpr, ) -> Option> { + pre_emit!(TupleExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2715,7 +2857,7 @@ impl Translator<'_> { fields, }); self.emit_location(label, node); - emit_detached!(TupleExpr, self, node, label); + post_emit!(TupleExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2723,6 +2865,7 @@ impl Translator<'_> { &mut self, node: &ast::TupleField, ) -> Option> { + pre_emit!(TupleField, self, node); if self.should_be_excluded(node) { return None; } @@ -2736,7 +2879,7 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - emit_detached!(TupleField, self, node, label); + post_emit!(TupleField, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2744,6 +2887,7 @@ impl Translator<'_> { &mut self, node: &ast::TupleFieldList, ) -> Option> { + pre_emit!(TupleFieldList, self, node); let fields = node .fields() .filter_map(|x| self.emit_tuple_field(&x)) @@ -2753,7 +2897,7 @@ impl Translator<'_> { fields, }); self.emit_location(label, node); - emit_detached!(TupleFieldList, self, node, label); + post_emit!(TupleFieldList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2761,13 +2905,14 @@ impl Translator<'_> { &mut self, node: &ast::TuplePat, ) -> Option> { + pre_emit!(TuplePat, self, node); let fields = node.fields().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::TuplePat { id: TrapId::Star, fields, }); self.emit_location(label, node); - emit_detached!(TuplePat, self, node, label); + post_emit!(TuplePat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2775,6 +2920,7 @@ impl Translator<'_> { &mut self, node: &ast::TupleStructPat, ) -> Option> { + pre_emit!(TupleStructPat, self, node); let fields = node.fields().filter_map(|x| self.emit_pat(&x)).collect(); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::TupleStructPat { @@ -2783,7 +2929,7 @@ impl Translator<'_> { path, }); self.emit_location(label, node); - emit_detached!(TupleStructPat, self, node, label); + post_emit!(TupleStructPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2791,13 +2937,14 @@ impl Translator<'_> { &mut self, node: &ast::TupleType, ) -> Option> { + pre_emit!(TupleTypeRepr, self, node); let fields = node.fields().filter_map(|x| self.emit_type(&x)).collect(); let label = self.trap.emit(generated::TupleTypeRepr { id: TrapId::Star, fields, }); self.emit_location(label, node); - emit_detached!(TupleTypeRepr, self, node, label); + post_emit!(TupleTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2805,6 +2952,7 @@ impl Translator<'_> { &mut self, node: &ast::TypeAlias, ) -> Option> { + pre_emit!(TypeAlias, self, node); if self.should_be_excluded(node) { return None; } @@ -2832,7 +2980,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - emit_detached!(TypeAlias, self, node, label); + post_emit!(TypeAlias, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2840,13 +2988,14 @@ impl Translator<'_> { &mut self, node: &ast::TypeArg, ) -> Option> { + pre_emit!(TypeArg, self, node); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::TypeArg { id: TrapId::Star, type_repr, }); self.emit_location(label, node); - emit_detached!(TypeArg, self, node, label); + post_emit!(TypeArg, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2854,6 +3003,7 @@ impl Translator<'_> { &mut self, node: &ast::TypeBound, ) -> Option> { + pre_emit!(TypeBound, self, node); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); @@ -2870,7 +3020,7 @@ impl Translator<'_> { use_bound_generic_args, }); self.emit_location(label, node); - emit_detached!(TypeBound, self, node, label); + post_emit!(TypeBound, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2878,6 +3028,7 @@ impl Translator<'_> { &mut self, node: &ast::TypeBoundList, ) -> Option> { + pre_emit!(TypeBoundList, self, node); let bounds = node .bounds() .filter_map(|x| self.emit_type_bound(&x)) @@ -2887,7 +3038,7 @@ impl Translator<'_> { bounds, }); self.emit_location(label, node); - emit_detached!(TypeBoundList, self, node, label); + post_emit!(TypeBoundList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2895,6 +3046,7 @@ impl Translator<'_> { &mut self, node: &ast::TypeParam, ) -> Option> { + pre_emit!(TypeParam, self, node); if self.should_be_excluded(node) { return None; } @@ -2912,7 +3064,7 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - emit_detached!(TypeParam, self, node, label); + post_emit!(TypeParam, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2920,6 +3072,7 @@ impl Translator<'_> { &mut self, node: &ast::UnderscoreExpr, ) -> Option> { + pre_emit!(UnderscoreExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2929,11 +3082,12 @@ impl Translator<'_> { attrs, }); self.emit_location(label, node); - emit_detached!(UnderscoreExpr, self, node, label); + post_emit!(UnderscoreExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_union(&mut self, node: &ast::Union) -> Option> { + pre_emit!(Union, self, node); if self.should_be_excluded(node) { return None; } @@ -2957,11 +3111,12 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - emit_detached!(Union, self, node, label); + post_emit!(Union, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_use(&mut self, node: &ast::Use) -> Option> { + pre_emit!(Use, self, node); if self.should_be_excluded(node) { return None; } @@ -2975,7 +3130,7 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - emit_detached!(Use, self, node, label); + post_emit!(Use, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2983,6 +3138,7 @@ impl Translator<'_> { &mut self, node: &ast::UseBoundGenericArgs, ) -> Option> { + pre_emit!(UseBoundGenericArgs, self, node); let use_bound_generic_args = node .use_bound_generic_args() .filter_map(|x| self.emit_use_bound_generic_arg(&x)) @@ -2992,7 +3148,7 @@ impl Translator<'_> { use_bound_generic_args, }); self.emit_location(label, node); - emit_detached!(UseBoundGenericArgs, self, node, label); + post_emit!(UseBoundGenericArgs, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3000,6 +3156,7 @@ impl Translator<'_> { &mut self, node: &ast::UseTree, ) -> Option> { + pre_emit!(UseTree, self, node); let is_glob = node.star_token().is_some(); let path = node.path().and_then(|x| self.emit_path(&x)); let rename = node.rename().and_then(|x| self.emit_rename(&x)); @@ -3014,7 +3171,7 @@ impl Translator<'_> { use_tree_list, }); self.emit_location(label, node); - emit_detached!(UseTree, self, node, label); + post_emit!(UseTree, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3022,6 +3179,7 @@ impl Translator<'_> { &mut self, node: &ast::UseTreeList, ) -> Option> { + pre_emit!(UseTreeList, self, node); let use_trees = node .use_trees() .filter_map(|x| self.emit_use_tree(&x)) @@ -3031,7 +3189,7 @@ impl Translator<'_> { use_trees, }); self.emit_location(label, node); - emit_detached!(UseTreeList, self, node, label); + post_emit!(UseTreeList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3039,6 +3197,7 @@ impl Translator<'_> { &mut self, node: &ast::Variant, ) -> Option> { + pre_emit!(Variant, self, node); if self.should_be_excluded(node) { return None; } @@ -3056,7 +3215,7 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - emit_detached!(Variant, self, node, label); + post_emit!(Variant, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3064,6 +3223,7 @@ impl Translator<'_> { &mut self, node: &ast::VariantList, ) -> Option> { + pre_emit!(VariantList, self, node); let variants = node .variants() .filter_map(|x| self.emit_variant(&x)) @@ -3073,7 +3233,7 @@ impl Translator<'_> { variants, }); self.emit_location(label, node); - emit_detached!(VariantList, self, node, label); + post_emit!(VariantList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3081,13 +3241,14 @@ impl Translator<'_> { &mut self, node: &ast::Visibility, ) -> Option> { + pre_emit!(Visibility, self, node); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::Visibility { id: TrapId::Star, path, }); self.emit_location(label, node); - emit_detached!(Visibility, self, node, label); + post_emit!(Visibility, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3095,6 +3256,7 @@ impl Translator<'_> { &mut self, node: &ast::WhereClause, ) -> Option> { + pre_emit!(WhereClause, self, node); let predicates = node .predicates() .filter_map(|x| self.emit_where_pred(&x)) @@ -3104,7 +3266,7 @@ impl Translator<'_> { predicates, }); self.emit_location(label, node); - emit_detached!(WhereClause, self, node, label); + post_emit!(WhereClause, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3112,6 +3274,7 @@ impl Translator<'_> { &mut self, node: &ast::WherePred, ) -> Option> { + pre_emit!(WherePred, self, node); let generic_param_list = node .generic_param_list() .and_then(|x| self.emit_generic_param_list(&x)); @@ -3128,7 +3291,7 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - emit_detached!(WherePred, self, node, label); + post_emit!(WherePred, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3136,6 +3299,7 @@ impl Translator<'_> { &mut self, node: &ast::WhileExpr, ) -> Option> { + pre_emit!(WhileExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -3151,7 +3315,7 @@ impl Translator<'_> { loop_body, }); self.emit_location(label, node); - emit_detached!(WhileExpr, self, node, label); + post_emit!(WhileExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3159,9 +3323,10 @@ impl Translator<'_> { &mut self, node: &ast::WildcardPat, ) -> Option> { + pre_emit!(WildcardPat, self, node); let label = self.trap.emit(generated::WildcardPat { id: TrapId::Star }); self.emit_location(label, node); - emit_detached!(WildcardPat, self, node, label); + post_emit!(WildcardPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3169,6 +3334,7 @@ impl Translator<'_> { &mut self, node: &ast::YeetExpr, ) -> Option> { + pre_emit!(YeetExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -3180,7 +3346,7 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - emit_detached!(YeetExpr, self, node, label); + post_emit!(YeetExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3188,6 +3354,7 @@ impl Translator<'_> { &mut self, node: &ast::YieldExpr, ) -> Option> { + pre_emit!(YieldExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -3199,7 +3366,7 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - emit_detached!(YieldExpr, self, node, label); + post_emit!(YieldExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } From 31b48e18e62a365a1af5339a7b7d4e80629d611e Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 19 May 2025 11:30:28 +0200 Subject: [PATCH 600/656] Rust: fix `BadCtorInitialization` test --- .../security/CWE-696/BadCtorInitialization.ql | 3 +- .../CWE-696/BadCTorInitialization.expected | 108 +++++++++++------- .../test/query-tests/security/CWE-696/test.rs | 12 +- 3 files changed, 73 insertions(+), 50 deletions(-) diff --git a/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql b/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql index 75946d89e11..cff84ed51d7 100644 --- a/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql +++ b/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql @@ -82,4 +82,5 @@ query predicate edges(PathElement pred, PathElement succ) { from CtorAttr source, StdCall sink where edges+(source, sink) select sink, source, sink, - "Call to " + sink.toString() + " in a function with the " + source.getWhichAttr() + " attribute." + "Call to " + sink.toString() + " from the standard library in a function with the " + + source.getWhichAttr() + " attribute." diff --git a/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected b/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected index 9d8fc252471..3ac74a3cb13 100644 --- a/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected +++ b/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected @@ -1,49 +1,71 @@ #select -| test.rs:30:9:30:25 | ...::stdout(...) | test.rs:28:1:28:13 | Attr | test.rs:30:9:30:25 | ...::stdout(...) | Call to ...::stdout(...) in a function with the ctor attribute. | -| test.rs:35:9:35:25 | ...::stdout(...) | test.rs:33:1:33:13 | Attr | test.rs:35:9:35:25 | ...::stdout(...) | Call to ...::stdout(...) in a function with the dtor attribute. | -| test.rs:42:9:42:25 | ...::stdout(...) | test.rs:39:1:39:13 | Attr | test.rs:42:9:42:25 | ...::stdout(...) | Call to ...::stdout(...) in a function with the dtor attribute. | -| test.rs:52:9:52:16 | stdout(...) | test.rs:50:1:50:7 | Attr | test.rs:52:9:52:16 | stdout(...) | Call to stdout(...) in a function with the ctor attribute. | -| test.rs:57:9:57:16 | stderr(...) | test.rs:55:1:55:7 | Attr | test.rs:57:9:57:16 | stderr(...) | Call to stderr(...) in a function with the ctor attribute. | -| test.rs:62:14:62:28 | ...::_print(...) | test.rs:60:1:60:7 | Attr | test.rs:62:14:62:28 | ...::_print(...) | Call to ...::_print(...) in a function with the ctor attribute. | -| test.rs:68:9:68:24 | ...::stdin(...) | test.rs:65:1:65:7 | Attr | test.rs:68:9:68:24 | ...::stdin(...) | Call to ...::stdin(...) in a function with the ctor attribute. | -| test.rs:89:5:89:35 | ...::sleep(...) | test.rs:87:1:87:7 | Attr | test.rs:89:5:89:35 | ...::sleep(...) | Call to ...::sleep(...) in a function with the ctor attribute. | -| test.rs:96:5:96:23 | ...::exit(...) | test.rs:94:1:94:7 | Attr | test.rs:96:5:96:23 | ...::exit(...) | Call to ...::exit(...) in a function with the ctor attribute. | -| test.rs:125:9:125:16 | stderr(...) | test.rs:128:1:128:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) in a function with the ctor attribute. | -| test.rs:125:9:125:16 | stderr(...) | test.rs:144:1:144:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) in a function with the ctor attribute. | -| test.rs:125:9:125:16 | stderr(...) | test.rs:150:1:150:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) in a function with the ctor attribute. | -| test.rs:125:9:125:44 | ... .write_all(...) | test.rs:128:1:128:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) in a function with the ctor attribute. | -| test.rs:125:9:125:44 | ... .write_all(...) | test.rs:144:1:144:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) in a function with the ctor attribute. | -| test.rs:125:9:125:44 | ... .write_all(...) | test.rs:150:1:150:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) in a function with the ctor attribute. | -| test.rs:170:5:170:15 | ...::stdout(...) | test.rs:168:1:168:7 | Attr | test.rs:170:5:170:15 | ...::stdout(...) | Call to ...::stdout(...) in a function with the ctor attribute. | +| test.rs:30:9:30:24 | ...::stdout(...) | test.rs:28:1:28:13 | Attr | test.rs:30:9:30:24 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the ctor attribute. | +| test.rs:30:9:30:48 | ... .write(...) | test.rs:28:1:28:13 | Attr | test.rs:30:9:30:48 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the ctor attribute. | +| test.rs:35:9:35:24 | ...::stdout(...) | test.rs:33:1:33:13 | Attr | test.rs:35:9:35:24 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the dtor attribute. | +| test.rs:35:9:35:48 | ... .write(...) | test.rs:33:1:33:13 | Attr | test.rs:35:9:35:48 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the dtor attribute. | +| test.rs:42:9:42:24 | ...::stdout(...) | test.rs:39:1:39:13 | Attr | test.rs:42:9:42:24 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the dtor attribute. | +| test.rs:42:9:42:48 | ... .write(...) | test.rs:39:1:39:13 | Attr | test.rs:42:9:42:48 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the dtor attribute. | +| test.rs:52:9:52:15 | stdout(...) | test.rs:50:1:50:7 | Attr | test.rs:52:9:52:15 | stdout(...) | Call to stdout(...) from the standard library in a function with the ctor attribute. | +| test.rs:52:9:52:39 | ... .write(...) | test.rs:50:1:50:7 | Attr | test.rs:52:9:52:39 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the ctor attribute. | +| test.rs:57:9:57:15 | stderr(...) | test.rs:55:1:55:7 | Attr | test.rs:57:9:57:15 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | +| test.rs:57:9:57:43 | ... .write_all(...) | test.rs:55:1:55:7 | Attr | test.rs:57:9:57:43 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | +| test.rs:62:14:62:28 | ...::_print(...) | test.rs:60:1:60:7 | Attr | test.rs:62:14:62:28 | ...::_print(...) | Call to ...::_print(...) from the standard library in a function with the ctor attribute. | +| test.rs:68:9:68:23 | ...::stdin(...) | test.rs:65:1:65:7 | Attr | test.rs:68:9:68:23 | ...::stdin(...) | Call to ...::stdin(...) from the standard library in a function with the ctor attribute. | +| test.rs:68:9:68:44 | ... .read_line(...) | test.rs:65:1:65:7 | Attr | test.rs:68:9:68:44 | ... .read_line(...) | Call to ... .read_line(...) from the standard library in a function with the ctor attribute. | +| test.rs:75:17:75:44 | ...::create(...) | test.rs:73:1:73:7 | Attr | test.rs:75:17:75:44 | ...::create(...) | Call to ...::create(...) from the standard library in a function with the ctor attribute. | +| test.rs:80:14:80:37 | ...::now(...) | test.rs:78:1:78:7 | Attr | test.rs:80:14:80:37 | ...::now(...) | Call to ...::now(...) from the standard library in a function with the ctor attribute. | +| test.rs:89:5:89:34 | ...::sleep(...) | test.rs:87:1:87:7 | Attr | test.rs:89:5:89:34 | ...::sleep(...) | Call to ...::sleep(...) from the standard library in a function with the ctor attribute. | +| test.rs:96:5:96:22 | ...::exit(...) | test.rs:94:1:94:7 | Attr | test.rs:96:5:96:22 | ...::exit(...) | Call to ...::exit(...) from the standard library in a function with the ctor attribute. | +| test.rs:125:9:125:16 | stderr(...) | test.rs:128:1:128:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | +| test.rs:125:9:125:16 | stderr(...) | test.rs:144:1:144:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | +| test.rs:125:9:125:16 | stderr(...) | test.rs:150:1:150:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | +| test.rs:125:9:125:44 | ... .write_all(...) | test.rs:128:1:128:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | +| test.rs:125:9:125:44 | ... .write_all(...) | test.rs:144:1:144:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | +| test.rs:125:9:125:44 | ... .write_all(...) | test.rs:150:1:150:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | +| test.rs:168:1:168:7 | ... .write(...) | test.rs:168:1:168:7 | Attr | test.rs:168:1:168:7 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the ctor attribute. | +| test.rs:168:1:168:7 | ...::stdout(...) | test.rs:168:1:168:7 | Attr | test.rs:168:1:168:7 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the ctor attribute. | edges -| test.rs:28:1:28:13 | Attr | test.rs:28:1:31:1 | fn bad1_1 | -| test.rs:28:1:31:1 | fn bad1_1 | test.rs:30:9:30:25 | ...::stdout(...) | -| test.rs:33:1:33:13 | Attr | test.rs:33:1:36:1 | fn bad1_2 | -| test.rs:33:1:36:1 | fn bad1_2 | test.rs:35:9:35:25 | ...::stdout(...) | -| test.rs:38:1:43:1 | fn bad1_3 | test.rs:42:9:42:25 | ...::stdout(...) | -| test.rs:39:1:39:13 | Attr | test.rs:38:1:43:1 | fn bad1_3 | -| test.rs:50:1:50:7 | Attr | test.rs:50:1:53:1 | fn bad2_1 | -| test.rs:50:1:53:1 | fn bad2_1 | test.rs:52:9:52:16 | stdout(...) | -| test.rs:55:1:55:7 | Attr | test.rs:55:1:58:1 | fn bad2_2 | -| test.rs:55:1:58:1 | fn bad2_2 | test.rs:57:9:57:16 | stderr(...) | -| test.rs:60:1:60:7 | Attr | test.rs:60:1:63:1 | fn bad2_3 | -| test.rs:60:1:63:1 | fn bad2_3 | test.rs:62:14:62:28 | ...::_print(...) | -| test.rs:65:1:65:7 | Attr | test.rs:65:1:69:1 | fn bad2_4 | -| test.rs:65:1:69:1 | fn bad2_4 | test.rs:68:9:68:24 | ...::stdin(...) | -| test.rs:87:1:87:7 | Attr | test.rs:87:1:90:1 | fn bad2_7 | -| test.rs:87:1:90:1 | fn bad2_7 | test.rs:89:5:89:35 | ...::sleep(...) | -| test.rs:94:1:94:7 | Attr | test.rs:94:1:97:1 | fn bad2_8 | -| test.rs:94:1:97:1 | fn bad2_8 | test.rs:96:5:96:23 | ...::exit(...) | +| test.rs:28:1:28:13 | Attr | test.rs:29:4:30:50 | fn bad1_1 | +| test.rs:29:4:30:50 | fn bad1_1 | test.rs:30:9:30:24 | ...::stdout(...) | +| test.rs:29:4:30:50 | fn bad1_1 | test.rs:30:9:30:48 | ... .write(...) | +| test.rs:33:1:33:13 | Attr | test.rs:34:4:35:50 | fn bad1_2 | +| test.rs:34:4:35:50 | fn bad1_2 | test.rs:35:9:35:24 | ...::stdout(...) | +| test.rs:34:4:35:50 | fn bad1_2 | test.rs:35:9:35:48 | ... .write(...) | +| test.rs:38:1:42:50 | fn bad1_3 | test.rs:42:9:42:24 | ...::stdout(...) | +| test.rs:38:1:42:50 | fn bad1_3 | test.rs:42:9:42:48 | ... .write(...) | +| test.rs:39:1:39:13 | Attr | test.rs:38:1:42:50 | fn bad1_3 | +| test.rs:50:1:50:7 | Attr | test.rs:51:4:52:41 | fn bad2_1 | +| test.rs:51:4:52:41 | fn bad2_1 | test.rs:52:9:52:15 | stdout(...) | +| test.rs:51:4:52:41 | fn bad2_1 | test.rs:52:9:52:39 | ... .write(...) | +| test.rs:55:1:55:7 | Attr | test.rs:56:4:57:45 | fn bad2_2 | +| test.rs:56:4:57:45 | fn bad2_2 | test.rs:57:9:57:15 | stderr(...) | +| test.rs:56:4:57:45 | fn bad2_2 | test.rs:57:9:57:43 | ... .write_all(...) | +| test.rs:60:1:60:7 | Attr | test.rs:61:4:62:30 | fn bad2_3 | +| test.rs:61:4:62:30 | fn bad2_3 | test.rs:62:14:62:28 | ...::_print(...) | +| test.rs:65:1:65:7 | Attr | test.rs:66:4:68:46 | fn bad2_4 | +| test.rs:66:4:68:46 | fn bad2_4 | test.rs:68:9:68:23 | ...::stdin(...) | +| test.rs:66:4:68:46 | fn bad2_4 | test.rs:68:9:68:44 | ... .read_line(...) | +| test.rs:73:1:73:7 | Attr | test.rs:74:4:75:55 | fn bad2_5 | +| test.rs:74:4:75:55 | fn bad2_5 | test.rs:75:17:75:44 | ...::create(...) | +| test.rs:78:1:78:7 | Attr | test.rs:79:4:80:39 | fn bad2_6 | +| test.rs:79:4:80:39 | fn bad2_6 | test.rs:80:14:80:37 | ...::now(...) | +| test.rs:87:1:87:7 | Attr | test.rs:88:4:89:36 | fn bad2_7 | +| test.rs:88:4:89:36 | fn bad2_7 | test.rs:89:5:89:34 | ...::sleep(...) | +| test.rs:94:1:94:7 | Attr | test.rs:95:4:96:24 | fn bad2_8 | +| test.rs:95:4:96:24 | fn bad2_8 | test.rs:96:5:96:22 | ...::exit(...) | | test.rs:124:1:126:1 | fn call_target3_1 | test.rs:125:9:125:16 | stderr(...) | | test.rs:124:1:126:1 | fn call_target3_1 | test.rs:125:9:125:44 | ... .write_all(...) | -| test.rs:128:1:128:7 | Attr | test.rs:128:1:131:1 | fn bad3_1 | -| test.rs:128:1:131:1 | fn bad3_1 | test.rs:130:5:130:20 | call_target3_1(...) | -| test.rs:130:5:130:20 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | -| test.rs:144:1:144:7 | Attr | test.rs:144:1:148:1 | fn bad3_3 | +| test.rs:128:1:128:7 | Attr | test.rs:129:4:130:21 | fn bad3_1 | +| test.rs:129:4:130:21 | fn bad3_1 | test.rs:130:5:130:19 | call_target3_1(...) | +| test.rs:130:5:130:19 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | +| test.rs:144:1:144:7 | Attr | test.rs:145:4:147:21 | fn bad3_3 | | test.rs:144:1:148:1 | fn bad3_3 | test.rs:146:5:146:20 | call_target3_1(...) | +| test.rs:145:4:147:21 | fn bad3_3 | test.rs:146:5:146:19 | call_target3_1(...) | +| test.rs:146:5:146:19 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | | test.rs:146:5:146:20 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | -| test.rs:150:1:150:7 | Attr | test.rs:150:1:153:1 | fn bad3_4 | -| test.rs:150:1:153:1 | fn bad3_4 | test.rs:152:5:152:12 | bad3_3(...) | -| test.rs:152:5:152:12 | bad3_3(...) | test.rs:144:1:148:1 | fn bad3_3 | -| test.rs:168:1:168:7 | Attr | test.rs:168:1:171:1 | fn bad4_1 | -| test.rs:168:1:171:1 | fn bad4_1 | test.rs:170:5:170:15 | ...::stdout(...) | +| test.rs:150:1:150:7 | Attr | test.rs:151:4:152:13 | fn bad3_4 | +| test.rs:151:4:152:13 | fn bad3_4 | test.rs:152:5:152:11 | bad3_3(...) | +| test.rs:152:5:152:11 | bad3_3(...) | test.rs:144:1:148:1 | fn bad3_3 | +| test.rs:168:1:168:7 | Attr | test.rs:169:4:170:16 | fn bad4_1 | +| test.rs:169:4:170:16 | fn bad4_1 | test.rs:168:1:168:7 | ... .write(...) | +| test.rs:169:4:170:16 | fn bad4_1 | test.rs:168:1:168:7 | ...::stdout(...) | diff --git a/rust/ql/test/query-tests/security/CWE-696/test.rs b/rust/ql/test/query-tests/security/CWE-696/test.rs index b23c06aa6a6..f589994d5d1 100644 --- a/rust/ql/test/query-tests/security/CWE-696/test.rs +++ b/rust/ql/test/query-tests/security/CWE-696/test.rs @@ -70,14 +70,14 @@ fn bad2_4() { use std::fs; -#[ctor] // $ MISSING: Source=source2_5 +#[ctor] // $ Source=source2_5 fn bad2_5() { - let _buff = fs::File::create("hello.txt").unwrap(); // $ MISSING: Alert[rust/ctor-initialization]=source2_5 + let _buff = fs::File::create("hello.txt").unwrap(); // $ Alert[rust/ctor-initialization]=source2_5 } -#[ctor] // $ MISSING: Source=source2_6 +#[ctor] // $ Source=source2_6 fn bad2_6() { - let _t = std::time::Instant::now(); // $ MISSING: Alert[rust/ctor-initialization]=source2_6 + let _t = std::time::Instant::now(); // $ Alert[rust/ctor-initialization]=source2_6 } use std::time::Duration; @@ -165,7 +165,7 @@ macro_rules! macro4_1 { }; } -#[ctor] // $ Source=source4_1 +#[ctor] // $ Alert[rust/ctor-initialization] fn bad4_1() { - macro4_1!(); // $ Alert[rust/ctor-initialization]=source4_1 + macro4_1!(); } From 5183d1610f81138638541bfff08afbeef6d87f23 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 19 May 2025 13:56:28 +0200 Subject: [PATCH 601/656] Rust: enhance macro expansion integration test --- .../macro-expansion/src/lib.rs | 7 ++++- .../macro-expansion/summary.expected | 16 +++++++++++ .../macro-expansion/summary.qlref | 1 + .../macro-expansion/test.expected | 28 +++++++++++-------- 4 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 rust/ql/integration-tests/macro-expansion/summary.expected create mode 100644 rust/ql/integration-tests/macro-expansion/summary.qlref diff --git a/rust/ql/integration-tests/macro-expansion/src/lib.rs b/rust/ql/integration-tests/macro-expansion/src/lib.rs index 6d2d6037e5d..2007d3b111a 100644 --- a/rust/ql/integration-tests/macro-expansion/src/lib.rs +++ b/rust/ql/integration-tests/macro-expansion/src/lib.rs @@ -1,7 +1,12 @@ use macros::repeat; #[repeat(3)] -fn foo() {} +fn foo() { + println!("Hello, world!"); + + #[repeat(2)] + fn inner() {} +} #[repeat(2)] #[repeat(3)] diff --git a/rust/ql/integration-tests/macro-expansion/summary.expected b/rust/ql/integration-tests/macro-expansion/summary.expected new file mode 100644 index 00000000000..529d1736d02 --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/summary.expected @@ -0,0 +1,16 @@ +| Extraction errors | 0 | +| Extraction warnings | 0 | +| Files extracted - total | 2 | +| Files extracted - with errors | 0 | +| Files extracted - without errors | 2 | +| Files extracted - without errors % | 100 | +| Inconsistencies - AST | 0 | +| Inconsistencies - CFG | 0 | +| Inconsistencies - Path resolution | 0 | +| Inconsistencies - SSA | 0 | +| Inconsistencies - data flow | 0 | +| Lines of code extracted | 46 | +| Lines of user code extracted | 29 | +| Macro calls - resolved | 52 | +| Macro calls - total | 53 | +| Macro calls - unresolved | 1 | diff --git a/rust/ql/integration-tests/macro-expansion/summary.qlref b/rust/ql/integration-tests/macro-expansion/summary.qlref new file mode 100644 index 00000000000..926fc790391 --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/summary.qlref @@ -0,0 +1 @@ +queries/summary/SummaryStatsReduced.ql diff --git a/rust/ql/integration-tests/macro-expansion/test.expected b/rust/ql/integration-tests/macro-expansion/test.expected index 1247930bd22..83edecf5d5d 100644 --- a/rust/ql/integration-tests/macro-expansion/test.expected +++ b/rust/ql/integration-tests/macro-expansion/test.expected @@ -1,11 +1,17 @@ -| src/lib.rs:3:1:4:11 | fn foo | 0 | src/lib.rs:4:1:4:10 | fn foo_0 | -| src/lib.rs:3:1:4:11 | fn foo | 1 | src/lib.rs:4:1:4:10 | fn foo_1 | -| src/lib.rs:3:1:4:11 | fn foo | 2 | src/lib.rs:4:1:4:10 | fn foo_2 | -| src/lib.rs:6:1:8:11 | fn bar | 0 | src/lib.rs:7:1:8:10 | fn bar_0 | -| src/lib.rs:6:1:8:11 | fn bar | 1 | src/lib.rs:7:1:8:10 | fn bar_1 | -| src/lib.rs:7:1:8:10 | fn bar_0 | 0 | src/lib.rs:8:1:8:10 | fn bar_0_0 | -| src/lib.rs:7:1:8:10 | fn bar_0 | 1 | src/lib.rs:8:1:8:10 | fn bar_0_1 | -| src/lib.rs:7:1:8:10 | fn bar_0 | 2 | src/lib.rs:8:1:8:10 | fn bar_0_2 | -| src/lib.rs:7:1:8:10 | fn bar_1 | 0 | src/lib.rs:8:1:8:10 | fn bar_1_0 | -| src/lib.rs:7:1:8:10 | fn bar_1 | 1 | src/lib.rs:8:1:8:10 | fn bar_1_1 | -| src/lib.rs:7:1:8:10 | fn bar_1 | 2 | src/lib.rs:8:1:8:10 | fn bar_1_2 | +| src/lib.rs:3:1:9:1 | fn foo | 0 | src/lib.rs:4:1:8:16 | fn foo_0 | +| src/lib.rs:3:1:9:1 | fn foo | 1 | src/lib.rs:4:1:8:16 | fn foo_1 | +| src/lib.rs:3:1:9:1 | fn foo | 2 | src/lib.rs:4:1:8:16 | fn foo_2 | +| src/lib.rs:7:5:8:16 | fn inner | 0 | src/lib.rs:8:5:8:16 | fn inner_0 | +| src/lib.rs:7:5:8:16 | fn inner | 0 | src/lib.rs:8:5:8:16 | fn inner_0 | +| src/lib.rs:7:5:8:16 | fn inner | 0 | src/lib.rs:8:5:8:16 | fn inner_0 | +| src/lib.rs:7:5:8:16 | fn inner | 1 | src/lib.rs:8:5:8:16 | fn inner_1 | +| src/lib.rs:7:5:8:16 | fn inner | 1 | src/lib.rs:8:5:8:16 | fn inner_1 | +| src/lib.rs:7:5:8:16 | fn inner | 1 | src/lib.rs:8:5:8:16 | fn inner_1 | +| src/lib.rs:11:1:13:11 | fn bar | 0 | src/lib.rs:12:1:13:10 | fn bar_0 | +| src/lib.rs:11:1:13:11 | fn bar | 1 | src/lib.rs:12:1:13:10 | fn bar_1 | +| src/lib.rs:12:1:13:10 | fn bar_0 | 0 | src/lib.rs:13:1:13:10 | fn bar_0_0 | +| src/lib.rs:12:1:13:10 | fn bar_0 | 1 | src/lib.rs:13:1:13:10 | fn bar_0_1 | +| src/lib.rs:12:1:13:10 | fn bar_0 | 2 | src/lib.rs:13:1:13:10 | fn bar_0_2 | +| src/lib.rs:12:1:13:10 | fn bar_1 | 0 | src/lib.rs:13:1:13:10 | fn bar_1_0 | +| src/lib.rs:12:1:13:10 | fn bar_1 | 1 | src/lib.rs:13:1:13:10 | fn bar_1_1 | +| src/lib.rs:12:1:13:10 | fn bar_1 | 2 | src/lib.rs:13:1:13:10 | fn bar_1_2 | From 01e22b72668f17b2e4325481bf3cde0e77a16c3a Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 22 May 2025 11:47:33 +0200 Subject: [PATCH 602/656] Rust: remove wrong comment --- rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql | 1 - 1 file changed, 1 deletion(-) diff --git a/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql b/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql index cff84ed51d7..80e1043a979 100644 --- a/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql +++ b/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql @@ -55,7 +55,6 @@ predicate edgesFwd(PathElement pred, PathElement succ) { ) ) or - // callable -> callable attribute macro expansion // [forwards reachable] callable -> enclosed call edgesFwd(_, pred) and pred = succ.(CallExprBase).getEnclosingCallable() From 69ea19cb8b30b8bc61e0961c563fa99b6af6094d Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 23 May 2025 11:16:29 +0100 Subject: [PATCH 603/656] Shared: Add a 'getReturnValueKind' predicate and use it in 'interpretOutput' and 'interpretInput' to handle non-standard return value input/output. This is needed to support C++'s ReturnValue[**] notation. --- .../dataflow/internal/FlowSummaryImpl.qll | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 95d29153f47..d9efa7a8449 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -54,6 +54,20 @@ signature module InputSig Lang> { /** Gets the return kind corresponding to specification `"ReturnValue"`. */ Lang::ReturnKind getStandardReturnValueKind(); + /** + * Gets the return kind corresponding to specification `"ReturnValue"` when + * the supplied argument `arg`. + * + * Note that it is expected that the following equality holds: + * ``` + * getReturnValueKind("") = getStandardReturnValueKind() + * ``` + */ + default Lang::ReturnKind getReturnValueKind(string arg) { + arg = "" and + result = getStandardReturnValueKind() + } + /** Gets the textual representation of parameter position `pos` used in MaD. */ string encodeParameterPosition(Lang::ParameterPosition pos); @@ -2164,9 +2178,15 @@ module Make< ) ) or - c = "ReturnValue" and - node.asNode() = - getAnOutNodeExt(mid.asCall(), TValueReturn(getStandardReturnValueKind())) + c.getName() = "ReturnValue" and + exists(ReturnKind rk | + not exists(c.getAnArgument()) and + rk = getStandardReturnValueKind() + or + rk = getReturnValueKind(c.getAnArgument()) + | + node.asNode() = getAnOutNodeExt(mid.asCall(), TValueReturn(rk)) + ) or SourceSinkInterpretationInput::interpretOutput(c, mid, node) ) @@ -2198,12 +2218,16 @@ module Make< ) ) or - exists(ReturnNode ret, ValueReturnKind kind | - c = "ReturnValue" and + exists(ReturnNode ret, ReturnKind kind | + c.getName() = "ReturnValue" and ret = node.asNode() and - kind.getKind() = ret.getKind() and - kind.getKind() = getStandardReturnValueKind() and + kind = ret.getKind() and mid.asCallable() = getNodeEnclosingCallable(ret) + | + not exists(c.getAnArgument()) and + kind = getStandardReturnValueKind() + or + kind = getReturnValueKind(c.getAnArgument()) ) or SourceSinkInterpretationInput::interpretInput(c, mid, node) From 07c4eca4d82a7bdcadffe805d3043a47ee7731e4 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 23 May 2025 11:16:49 +0100 Subject: [PATCH 604/656] C++: Implement the new predicate for C++. --- .../semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll index 5ba1db04429..58c3dfdea16 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll @@ -22,7 +22,11 @@ module Input implements InputSig { ArgumentPosition callbackSelfParameterPosition() { result = TDirectPosition(-1) } - ReturnKind getStandardReturnValueKind() { result.(NormalReturnKind).getIndirectionIndex() = 0 } + ReturnKind getStandardReturnValueKind() { result = getReturnValueKind("") } + + ReturnKind getReturnValueKind(string arg) { + arg = repeatStars(result.(NormalReturnKind).getIndirectionIndex()) + } string encodeParameterPosition(ParameterPosition pos) { result = pos.toString() } From cf39103df37ac9b19f6df084a78c4233ef5bdd17 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 23 May 2025 11:19:25 +0100 Subject: [PATCH 605/656] C++: Accept test changes. --- cpp/ql/test/library-tests/dataflow/models-as-data/tests.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/models-as-data/tests.cpp b/cpp/ql/test/library-tests/dataflow/models-as-data/tests.cpp index 9f01f0959c0..92397bc91c3 100644 --- a/cpp/ql/test/library-tests/dataflow/models-as-data/tests.cpp +++ b/cpp/ql/test/library-tests/dataflow/models-as-data/tests.cpp @@ -56,9 +56,9 @@ void test_sources() { sink(v_direct); // $ ir sink(remoteMadSourceIndirect()); - sink(*remoteMadSourceIndirect()); // $ MISSING: ir + sink(*remoteMadSourceIndirect()); // $ ir sink(*remoteMadSourceDoubleIndirect()); - sink(**remoteMadSourceDoubleIndirect()); // $ MISSING: ir + sink(**remoteMadSourceDoubleIndirect()); // $ ir int a, b, c, d; @@ -124,7 +124,7 @@ void test_sinks() { // test sources + sinks together madSinkArg0(localMadSource()); // $ ir - madSinkIndirectArg0(remoteMadSourceIndirect()); // $ MISSING: ir + madSinkIndirectArg0(remoteMadSourceIndirect()); // $ ir madSinkVar = remoteMadSourceVar; // $ ir *madSinkVarIndirect = remoteMadSourceVar; // $ MISSING: ir } From 893cb592b571113f537ed2514b6798a63573b7a7 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 23 May 2025 12:35:30 +0200 Subject: [PATCH 606/656] SSA: Elaborate qldoc a bit. --- shared/ssa/codeql/ssa/Ssa.qll | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/shared/ssa/codeql/ssa/Ssa.qll b/shared/ssa/codeql/ssa/Ssa.qll index a5f9e3f862b..4734cf7e414 100644 --- a/shared/ssa/codeql/ssa/Ssa.qll +++ b/shared/ssa/codeql/ssa/Ssa.qll @@ -1579,6 +1579,14 @@ module Make Input> { * Holds if this guard evaluating to `branch` controls the control-flow * branch edge from `bb1` to `bb2`. That is, following the edge from * `bb1` to `bb2` implies that this guard evaluated to `branch`. + * + * This predicate differs from `hasBranchEdge` in that it also covers + * indirect guards, such as: + * ``` + * b = guard; + * ... + * if (b) { ... } + * ``` */ predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch); } From 92e0b6430741a0f9b217e711d8fdab553494468b Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 23 May 2025 11:43:27 +0100 Subject: [PATCH 607/656] Shared: Fix QLDoc. --- shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index d9efa7a8449..244cc573197 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -56,7 +56,7 @@ signature module InputSig Lang> { /** * Gets the return kind corresponding to specification `"ReturnValue"` when - * the supplied argument `arg`. + * supplied with the argument `arg`. * * Note that it is expected that the following equality holds: * ``` From f4fb717a34a169890dd3a524484a850949115372 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 23 May 2025 12:49:01 +0200 Subject: [PATCH 608/656] SSA: Add change note. --- shared/ssa/change-notes/2025-05-23-guards-interface.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 shared/ssa/change-notes/2025-05-23-guards-interface.md diff --git a/shared/ssa/change-notes/2025-05-23-guards-interface.md b/shared/ssa/change-notes/2025-05-23-guards-interface.md new file mode 100644 index 00000000000..cc8d76372f6 --- /dev/null +++ b/shared/ssa/change-notes/2025-05-23-guards-interface.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* Adjusted the Guards interface in the SSA data flow integration to distinguish `hasBranchEdge` from `controlsBranchEdge`. Any breakage can be fixed by implementing one with the other as a reasonable fallback solution. From 05288d395255163f94fab47a3a1b24585b2e5847 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 23 May 2025 13:36:58 +0200 Subject: [PATCH 609/656] Type inference: Simplify internal representation of type paths --- .../typeinference/internal/TypeInference.qll | 52 +++++-------------- 1 file changed, 12 insertions(+), 40 deletions(-) diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 4414bc74c0b..6a1f1c50bb3 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -181,44 +181,25 @@ module Make1 Input1> { /** Holds if this type path is empty. */ predicate isEmpty() { this = "" } - /** Gets the length of this path, assuming the length is at least 2. */ - bindingset[this] - pragma[inline_late] - private int lengthAtLeast2() { - // Same as - // `result = strictcount(this.indexOf(".")) + 1` - // but performs better because it doesn't use an aggregate - result = this.regexpReplaceAll("[0-9]+", "").length() + 1 - } - /** Gets the length of this path. */ bindingset[this] pragma[inline_late] int length() { - if this.isEmpty() - then result = 0 - else - if exists(TypeParameter::decode(this)) - then result = 1 - else result = this.lengthAtLeast2() + // Same as + // `result = count(this.indexOf("."))` + // but performs better because it doesn't use an aggregate + result = this.regexpReplaceAll("[0-9]+", "").length() } /** Gets the path obtained by appending `suffix` onto this path. */ bindingset[this, suffix] TypePath append(TypePath suffix) { - if this.isEmpty() - then result = suffix - else - if suffix.isEmpty() - then result = this - else ( - result = this + "." + suffix and - ( - not exists(getTypePathLimit()) - or - result.lengthAtLeast2() <= getTypePathLimit() - ) - ) + result = this + suffix and + ( + not exists(getTypePathLimit()) + or + result.length() <= getTypePathLimit() + ) } /** @@ -232,16 +213,7 @@ module Make1 Input1> { /** Gets the path obtained by removing `prefix` from this path. */ bindingset[this, prefix] - TypePath stripPrefix(TypePath prefix) { - if prefix.isEmpty() - then result = this - else ( - this = prefix and - result.isEmpty() - or - this = prefix + "." + result - ) - } + TypePath stripPrefix(TypePath prefix) { this = prefix + result } /** Holds if this path starts with `tp`, followed by `suffix`. */ bindingset[this] @@ -256,7 +228,7 @@ module Make1 Input1> { TypePath nil() { result.isEmpty() } /** Gets the singleton type path `tp`. */ - TypePath singleton(TypeParameter tp) { result = TypeParameter::encode(tp) } + TypePath singleton(TypeParameter tp) { result = TypeParameter::encode(tp) + "." } /** * Gets the type path obtained by appending the singleton type path `tp` From 62000319fed5cb114eeddf92ecadce0212000e1e Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 23 May 2025 11:43:42 +0200 Subject: [PATCH 610/656] Rangeanalysis: Simplify Guards integration. --- .../semantic/SemanticExprSpecific.qll | 4 -- .../new/internal/semantic/SemanticGuard.qll | 8 +-- .../semantic/analysis/RangeAnalysisImpl.qll | 2 - .../semmle/code/java/controlflow/Guards.qll | 35 ++++++++++- .../code/java/dataflow/ModulusAnalysis.qll | 2 +- .../code/java/dataflow/RangeAnalysis.qll | 8 +-- .../semmle/code/java/dataflow/RangeUtils.qll | 2 - .../rangeanalysis/ModulusAnalysisSpecific.qll | 27 +++----- .../rangeanalysis/SignAnalysisSpecific.qll | 29 +++------ .../codeql/rangeanalysis/ModulusAnalysis.qll | 2 +- .../codeql/rangeanalysis/RangeAnalysis.qll | 63 ++++++------------- .../rangeanalysis/internal/RangeUtils.qll | 28 ++------- 12 files changed, 77 insertions(+), 133 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExprSpecific.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExprSpecific.qll index 1b83ae959d2..224f968ce69 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExprSpecific.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExprSpecific.qll @@ -264,10 +264,6 @@ module SemanticExprConfig { Guard comparisonGuard(Expr e) { getSemanticExpr(result) = e } - predicate implies_v2(Guard g1, boolean b1, Guard g2, boolean b2) { - none() // TODO - } - /** Gets the expression associated with `instr`. */ SemExpr getSemanticExpr(IR::Instruction instr) { result = instr } } diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticGuard.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticGuard.qll index 14755d59f5b..a28d03a0666 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticGuard.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticGuard.qll @@ -18,11 +18,11 @@ class SemGuard instanceof Specific::Guard { Specific::equalityGuard(this, e1, e2, polarity) } - final predicate directlyControls(SemBasicBlock controlled, boolean branch) { + final predicate controls(SemBasicBlock controlled, boolean branch) { Specific::guardDirectlyControlsBlock(this, controlled, branch) } - final predicate hasBranchEdge(SemBasicBlock bb1, SemBasicBlock bb2, boolean branch) { + final predicate controlsBranchEdge(SemBasicBlock bb1, SemBasicBlock bb2, boolean branch) { Specific::guardHasBranchEdge(this, bb1, bb2, branch) } @@ -31,8 +31,4 @@ class SemGuard instanceof Specific::Guard { final SemExpr asExpr() { result = Specific::getGuardAsExpr(this) } } -predicate semImplies_v2(SemGuard g1, boolean b1, SemGuard g2, boolean b2) { - Specific::implies_v2(g1, b1, g2, b2) -} - SemGuard semGetComparisonGuard(SemRelationalExpr e) { result = Specific::comparisonGuard(e) } diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/RangeAnalysisImpl.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/RangeAnalysisImpl.qll index 22acb6fc1ca..0281037e279 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/RangeAnalysisImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/RangeAnalysisImpl.qll @@ -77,8 +77,6 @@ module Sem implements Semantic { class Guard = SemGuard; - predicate implies_v2 = semImplies_v2/4; - class Type = SemType; class IntegerType = SemIntegerType; diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll index 5cedb97ec05..4042e7b2962 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll @@ -145,7 +145,7 @@ private predicate isNonFallThroughPredecessor(SwitchCase sc, ControlFlowNode pre * Evaluating a switch case to true corresponds to taking that switch case, and * evaluating it to false corresponds to taking some other branch. */ -class Guard extends ExprParent { +final class Guard extends ExprParent { Guard() { this.(Expr).getType() instanceof BooleanType and not this instanceof BooleanLiteral or @@ -360,6 +360,18 @@ private predicate guardControls_v3(Guard guard, BasicBlock controlled, boolean b ) } +pragma[nomagic] +private predicate guardControlsBranchEdge_v2( + Guard guard, BasicBlock bb1, BasicBlock bb2, boolean branch +) { + guard.hasBranchEdge(bb1, bb2, branch) + or + exists(Guard g, boolean b | + guardControlsBranchEdge_v2(g, bb1, bb2, b) and + implies_v2(g, b, guard, branch) + ) +} + pragma[nomagic] private predicate guardControlsBranchEdge_v3( Guard guard, BasicBlock bb1, BasicBlock bb2, boolean branch @@ -372,6 +384,27 @@ private predicate guardControlsBranchEdge_v3( ) } +/** INTERNAL: Use `Guard` instead. */ +final class Guard_v2 extends Guard { + /** + * Holds if this guard evaluating to `branch` controls the control-flow + * branch edge from `bb1` to `bb2`. That is, following the edge from + * `bb1` to `bb2` implies that this guard evaluated to `branch`. + */ + predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { + guardControlsBranchEdge_v2(this, bb1, bb2, branch) + } + + /** + * Holds if this guard evaluating to `branch` directly or indirectly controls + * the block `controlled`. That is, the evaluation of `controlled` is + * dominated by this guard evaluating to `branch`. + */ + predicate controls(BasicBlock controlled, boolean branch) { + guardControls_v2(this, controlled, branch) + } +} + private predicate equalityGuard(Guard g, Expr e1, Expr e2, boolean polarity) { exists(EqualityTest eqtest | eqtest = g and diff --git a/java/ql/lib/semmle/code/java/dataflow/ModulusAnalysis.qll b/java/ql/lib/semmle/code/java/dataflow/ModulusAnalysis.qll index 5b2a39ad6c9..3e5a45da247 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ModulusAnalysis.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ModulusAnalysis.qll @@ -17,7 +17,7 @@ private predicate valueFlowStepSsa(SsaVariable v, SsaReadPosition pos, Expr e, i exists(Guard guard, boolean testIsTrue | pos.hasReadOfVar(v) and guard = eqFlowCond(v, e, delta, true, testIsTrue) and - guardDirectlyControlsSsaRead(guard, pos, testIsTrue) + guardControlsSsaRead(guard, pos, testIsTrue) ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll b/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll index b43990e1455..64f68b9c075 100644 --- a/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll +++ b/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll @@ -219,16 +219,10 @@ module Sem implements Semantic { int getBlockId1(BasicBlock bb) { idOf(bb, result) } - final private class FinalGuard = GL::Guard; - - class Guard extends FinalGuard { + class Guard extends GL::Guard_v2 { Expr asExpr() { result = this } } - predicate implies_v2(Guard g1, boolean b1, Guard g2, boolean b2) { - GL::implies_v2(g1, b1, g2, b2) - } - class Type = J::Type; class IntegerType extends J::IntegralType { diff --git a/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll b/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll index e96d591ced5..444fec8f865 100644 --- a/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll +++ b/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll @@ -19,8 +19,6 @@ predicate ssaUpdateStep = U::ssaUpdateStep/3; predicate valueFlowStep = U::valueFlowStep/3; -predicate guardDirectlyControlsSsaRead = U::guardDirectlyControlsSsaRead/3; - predicate guardControlsSsaRead = U::guardControlsSsaRead/3; predicate eqFlowCond = U::eqFlowCond/5; diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll index c88b9946faa..b639947793b 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll @@ -4,7 +4,6 @@ module Private { private import semmle.code.java.dataflow.RangeUtils as RU private import semmle.code.java.controlflow.Guards as G private import semmle.code.java.controlflow.BasicBlocks as BB - private import semmle.code.java.controlflow.internal.GuardsLogic as GL private import SsaReadPositionCommon class BasicBlock = BB::BasicBlock; @@ -15,7 +14,7 @@ module Private { class Expr = J::Expr; - class Guard = G::Guard; + class Guard = G::Guard_v2; class ConstantIntegerExpr = RU::ConstantIntegerExpr; @@ -101,29 +100,17 @@ module Private { } } - /** - * Holds if `guard` directly controls the position `controlled` with the - * value `testIsTrue`. - */ - pragma[nomagic] - predicate guardDirectlyControlsSsaRead(Guard guard, SsaReadPosition controlled, boolean testIsTrue) { - guard.directlyControls(controlled.(SsaReadPositionBlock).getBlock(), testIsTrue) - or - exists(SsaReadPositionPhiInputEdge controlledEdge | controlledEdge = controlled | - guard.directlyControls(controlledEdge.getOrigBlock(), testIsTrue) or - guard.hasBranchEdge(controlledEdge.getOrigBlock(), controlledEdge.getPhiBlock(), testIsTrue) - ) - } - /** * Holds if `guard` controls the position `controlled` with the value `testIsTrue`. */ predicate guardControlsSsaRead(Guard guard, SsaReadPosition controlled, boolean testIsTrue) { - guardDirectlyControlsSsaRead(guard, controlled, testIsTrue) + guard.controls(controlled.(SsaReadPositionBlock).getBlock(), testIsTrue) or - exists(Guard guard0, boolean testIsTrue0 | - GL::implies_v2(guard0, testIsTrue0, guard, testIsTrue) and - guardControlsSsaRead(guard0, controlled, testIsTrue0) + exists(SsaReadPositionPhiInputEdge controlledEdge | controlledEdge = controlled | + guard.controls(controlledEdge.getOrigBlock(), testIsTrue) or + guard + .controlsBranchEdge(controlledEdge.getOrigBlock(), controlledEdge.getPhiBlock(), + testIsTrue) ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll index ee2e3bb2412..04e896b2601 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll @@ -7,13 +7,12 @@ module Private { private import semmle.code.java.dataflow.SSA as Ssa private import semmle.code.java.controlflow.Guards as G private import SsaReadPositionCommon - private import semmle.code.java.controlflow.internal.GuardsLogic as GL private import Sign import Impl class ConstantIntegerExpr = RU::ConstantIntegerExpr; - class Guard = G::Guard; + class Guard = G::Guard_v2; class SsaVariable = Ssa::SsaVariable; @@ -170,31 +169,17 @@ module Private { predicate ssaRead = RU::ssaRead/2; - /** - * Holds if `guard` directly controls the position `controlled` with the - * value `testIsTrue`. - */ - pragma[nomagic] - private predicate guardDirectlyControlsSsaRead( - Guard guard, SsaReadPosition controlled, boolean testIsTrue - ) { - guard.directlyControls(controlled.(SsaReadPositionBlock).getBlock(), testIsTrue) - or - exists(SsaReadPositionPhiInputEdge controlledEdge | controlledEdge = controlled | - guard.directlyControls(controlledEdge.getOrigBlock(), testIsTrue) or - guard.hasBranchEdge(controlledEdge.getOrigBlock(), controlledEdge.getPhiBlock(), testIsTrue) - ) - } - /** * Holds if `guard` controls the position `controlled` with the value `testIsTrue`. */ predicate guardControlsSsaRead(Guard guard, SsaReadPosition controlled, boolean testIsTrue) { - guardDirectlyControlsSsaRead(guard, controlled, testIsTrue) + guard.controls(controlled.(SsaReadPositionBlock).getBlock(), testIsTrue) or - exists(Guard guard0, boolean testIsTrue0 | - GL::implies_v2(guard0, testIsTrue0, guard, testIsTrue) and - guardControlsSsaRead(guard0, controlled, testIsTrue0) + exists(SsaReadPositionPhiInputEdge controlledEdge | controlledEdge = controlled | + guard.controls(controlledEdge.getOrigBlock(), testIsTrue) or + guard + .controlsBranchEdge(controlledEdge.getOrigBlock(), controlledEdge.getPhiBlock(), + testIsTrue) ) } } diff --git a/shared/rangeanalysis/codeql/rangeanalysis/ModulusAnalysis.qll b/shared/rangeanalysis/codeql/rangeanalysis/ModulusAnalysis.qll index 88d816b8644..db3377ff3cc 100644 --- a/shared/rangeanalysis/codeql/rangeanalysis/ModulusAnalysis.qll +++ b/shared/rangeanalysis/codeql/rangeanalysis/ModulusAnalysis.qll @@ -34,7 +34,7 @@ module ModulusAnalysis< exists(Sem::Guard guard, boolean testIsTrue | hasReadOfVarInlineLate(pos, v) and guard = eqFlowCond(v, e, D::fromInt(delta), true, testIsTrue) and - guardDirectlyControlsSsaRead(guard, pos, testIsTrue) + guardControlsSsaRead(guard, pos, testIsTrue) ) } diff --git a/shared/rangeanalysis/codeql/rangeanalysis/RangeAnalysis.qll b/shared/rangeanalysis/codeql/rangeanalysis/RangeAnalysis.qll index 60888c9f93f..445ec9f0b8d 100644 --- a/shared/rangeanalysis/codeql/rangeanalysis/RangeAnalysis.qll +++ b/shared/rangeanalysis/codeql/rangeanalysis/RangeAnalysis.qll @@ -181,21 +181,6 @@ signature module Semantic { */ Expr asExpr(); - /** - * Holds if the guard directly controls a given basic block. For example in - * the following code, the guard `(x > y)` directly controls the block - * beneath it: - * ``` - * if (x > y) - * { - * Console.WriteLine("x is greater than y"); - * } - * ``` - * `branch` indicates whether the basic block is entered when the guard - * evaluates to `true` or when it evaluates to `false`. - */ - predicate directlyControls(BasicBlock controlled, boolean branch); - /** * Holds if this guard is an equality test between `e1` and `e2`. If the * test is negated, that is `!=`, then `polarity` is false, otherwise @@ -204,24 +189,19 @@ signature module Semantic { predicate isEquality(Expr e1, Expr e2, boolean polarity); /** - * Holds if there is a branch edge between two basic blocks. For example - * in the following C code, there are two branch edges from the basic block - * containing the condition `(x > y)` to the beginnings of the true and - * false blocks that follow: - * ``` - * if (x > y) { - * printf("x is greater than y\n"); - * } else { - * printf("x is not greater than y\n"); - * } - * ``` - * `branch` indicates whether the second basic block is the one entered - * when the guard evaluates to `true` or when it evaluates to `false`. + * Holds if this guard evaluating to `branch` controls the control-flow + * branch edge from `bb1` to `bb2`. That is, following the edge from + * `bb1` to `bb2` implies that this guard evaluated to `branch`. */ - predicate hasBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch); - } + predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch); - predicate implies_v2(Guard g1, boolean b1, Guard g2, boolean b2); + /** + * Holds if this guard evaluating to `branch` directly or indirectly controls + * the block `controlled`. That is, the evaluation of `controlled` is + * dominated by this guard evaluating to `branch`. + */ + predicate controls(BasicBlock controlled, boolean branch); + } class Type; @@ -670,19 +650,14 @@ module RangeStage< delta = D::fromFloat(D::toFloat(d1) + d2 + d3) ) or - exists(boolean testIsTrue0 | - Sem::implies_v2(result, testIsTrue, boundFlowCond(v, e, delta, upper, testIsTrue0), - testIsTrue0) - ) - or result = eqFlowCond(v, e, delta, true, testIsTrue) and (upper = true or upper = false) or - // guard that tests whether `v2` is bounded by `e + delta + d1 - d2` and - // exists a guard `guardEq` such that `v = v2 - d1 + d2`. + // guard that tests whether `v2` is bounded by `e + delta - d` and + // exists a guard `guardEq` such that `v = v2 + d`. exists(Sem::SsaVariable v2, D::Delta oldDelta, float d | // equality needs to control guard - result.getBasicBlock() = eqSsaCondDirectlyControls(v, v2, d) and + result.getBasicBlock() = eqSsaCondControls(v, v2, d) and result = boundFlowCond(v2, e, oldDelta, upper, testIsTrue) and delta = D::fromFloat(D::toFloat(oldDelta) + d) ) @@ -692,13 +667,11 @@ module RangeStage< * Gets a basic block in which `v1` equals `v2 + delta`. */ pragma[nomagic] - private Sem::BasicBlock eqSsaCondDirectlyControls( - Sem::SsaVariable v1, Sem::SsaVariable v2, float delta - ) { + private Sem::BasicBlock eqSsaCondControls(Sem::SsaVariable v1, Sem::SsaVariable v2, float delta) { exists(Sem::Guard guardEq, D::Delta d1, D::Delta d2, boolean eqIsTrue | guardEq = eqFlowCond(v1, ssaRead(v2, d1), d2, true, eqIsTrue) and delta = D::toFloat(d2) - D::toFloat(d1) and - guardEq.directlyControls(result, eqIsTrue) + guardEq.controls(result, eqIsTrue) ) } @@ -749,7 +722,7 @@ module RangeStage< exists(Sem::Guard guard, boolean testIsTrue | pos.hasReadOfVar(v) and guard = boundFlowCond(v, e, delta, upper, testIsTrue) and - guardDirectlyControlsSsaRead(guard, pos, testIsTrue) and + guardControlsSsaRead(guard, pos, testIsTrue) and reason = TSemCondReason(guard) ) } @@ -762,7 +735,7 @@ module RangeStage< exists(Sem::Guard guard, boolean testIsTrue | pos.hasReadOfVar(v) and guard = eqFlowCond(v, e, delta, false, testIsTrue) and - guardDirectlyControlsSsaRead(guard, pos, testIsTrue) and + guardControlsSsaRead(guard, pos, testIsTrue) and reason = TSemCondReason(guard) ) } diff --git a/shared/rangeanalysis/codeql/rangeanalysis/internal/RangeUtils.qll b/shared/rangeanalysis/codeql/rangeanalysis/internal/RangeUtils.qll index 05aef480508..d6eeb781f39 100644 --- a/shared/rangeanalysis/codeql/rangeanalysis/internal/RangeUtils.qll +++ b/shared/rangeanalysis/codeql/rangeanalysis/internal/RangeUtils.qll @@ -52,10 +52,6 @@ module MakeUtils Lang, DeltaSig D> { (testIsTrue = true or testIsTrue = false) and eqpolarity.booleanXor(testIsTrue).booleanNot() = isEq ) - or - exists(boolean testIsTrue0 | - implies_v2(result, testIsTrue, eqFlowCond(v, e, delta, isEq, testIsTrue0), testIsTrue0) - ) } /** @@ -173,29 +169,17 @@ module MakeUtils Lang, DeltaSig D> { override string toString() { result = "edge" } } - /** - * Holds if `guard` directly controls the position `controlled` with the - * value `testIsTrue`. - */ - pragma[nomagic] - predicate guardDirectlyControlsSsaRead(Guard guard, SsaReadPosition controlled, boolean testIsTrue) { - guard.directlyControls(controlled.(SsaReadPositionBlock).getBlock(), testIsTrue) - or - exists(SsaReadPositionPhiInputEdge controlledEdge | controlledEdge = controlled | - guard.directlyControls(controlledEdge.getOrigBlock(), testIsTrue) or - guard.hasBranchEdge(controlledEdge.getOrigBlock(), controlledEdge.getPhiBlock(), testIsTrue) - ) - } - /** * Holds if `guard` controls the position `controlled` with the value `testIsTrue`. */ predicate guardControlsSsaRead(Guard guard, SsaReadPosition controlled, boolean testIsTrue) { - guardDirectlyControlsSsaRead(guard, controlled, testIsTrue) + guard.controls(controlled.(SsaReadPositionBlock).getBlock(), testIsTrue) or - exists(Guard guard0, boolean testIsTrue0 | - implies_v2(guard0, testIsTrue0, guard, testIsTrue) and - guardControlsSsaRead(guard0, controlled, testIsTrue0) + exists(SsaReadPositionPhiInputEdge controlledEdge | controlledEdge = controlled | + guard.controls(controlledEdge.getOrigBlock(), testIsTrue) or + guard + .controlsBranchEdge(controlledEdge.getOrigBlock(), controlledEdge.getPhiBlock(), + testIsTrue) ) } From c8ff69af9ad5c9eeb8e45de633fb33c0c60f6fa2 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 23 May 2025 13:57:19 +0200 Subject: [PATCH 611/656] Rust: Fix bad join --- rust/ql/lib/codeql/rust/internal/PathResolution.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index 6ca0b88814c..8764869a152 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -180,7 +180,8 @@ abstract class ItemNode extends Locatable { or preludeEdge(this, name, result) and not declares(this, _, name) or - builtinEdge(this, name, result) + this instanceof SourceFile and + builtin(name, result) or name = "super" and if this instanceof Module or this instanceof SourceFile @@ -1425,8 +1426,7 @@ private predicate preludeEdge(SourceFile f, string name, ItemNode i) { private import codeql.rust.frameworks.stdlib.Bultins as Builtins pragma[nomagic] -private predicate builtinEdge(SourceFile source, string name, ItemNode i) { - exists(source) and +private predicate builtin(string name, ItemNode i) { exists(SourceFileItemNode builtins | builtins.getFile().getParentContainer() instanceof Builtins::BuiltinsFolder and i = builtins.getASuccessorRec(name) From 5b21188e0df36afd3313aaf1ca4ec15a6d5d0b5f Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 23 May 2025 14:17:21 +0200 Subject: [PATCH 612/656] C#: Sync. --- csharp/ql/lib/semmle/code/csharp/dataflow/ModulusAnalysis.qll | 2 +- .../dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/ModulusAnalysis.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/ModulusAnalysis.qll index 5b2a39ad6c9..3e5a45da247 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/ModulusAnalysis.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/ModulusAnalysis.qll @@ -17,7 +17,7 @@ private predicate valueFlowStepSsa(SsaVariable v, SsaReadPosition pos, Expr e, i exists(Guard guard, boolean testIsTrue | pos.hasReadOfVar(v) and guard = eqFlowCond(v, e, delta, true, testIsTrue) and - guardDirectlyControlsSsaRead(guard, pos, testIsTrue) + guardControlsSsaRead(guard, pos, testIsTrue) ) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll index 4a9c3cdbe6d..c9c3a937ef9 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll @@ -32,8 +32,6 @@ module Private { class LeftShiftExpr = RU::ExprNode::LeftShiftExpr; - predicate guardDirectlyControlsSsaRead = RU::guardControlsSsaRead/3; - predicate guardControlsSsaRead = RU::guardControlsSsaRead/3; predicate valueFlowStep = RU::valueFlowStep/3; From 5c294617c5096066c4ebc2bf575a5e61ea6f13f9 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 23 May 2025 14:43:18 +0200 Subject: [PATCH 613/656] Rust: update a comment --- rust/extractor/src/translate/base.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index d1cec34242c..a2f3101b75e 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -333,7 +333,7 @@ impl<'a> Translator<'a> { ) { if self.macro_context_depth > 0 { // we are in an attribute macro, don't emit anything: we would be failing to expand any - // way as rust-analyser now only expands in the context of an expansion + // way as from version 0.0.274 rust-analyser only expands in the context of an expansion return; } if let Some(expanded) = self From b800040c73550d188ef76c898575c7331889d99a Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 23 May 2025 15:49:12 +0200 Subject: [PATCH 614/656] C++: Add tests for various local Windows dataflow sources --- .../dataflow/dataflow-tests/TestBase.qll | 4 +++ .../dataflow/dataflow-tests/winmain.cpp | 9 ++++++ .../dataflow/external-models/windows.cpp | 31 +++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 cpp/ql/test/library-tests/dataflow/dataflow-tests/winmain.cpp create mode 100644 cpp/ql/test/library-tests/dataflow/external-models/windows.cpp diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/TestBase.qll b/cpp/ql/test/library-tests/dataflow/dataflow-tests/TestBase.qll index b9213a71549..e28d19133c7 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/TestBase.qll +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/TestBase.qll @@ -124,7 +124,11 @@ module IRTest { /** Common data flow configuration to be used by tests. */ module IRTestAllocationConfig implements DataFlow::ConfigSig { + private import semmle.code.cpp.security.FlowSources + predicate isSource(DataFlow::Node source) { + source instanceof FlowSource + or source.asExpr().(FunctionCall).getTarget().getName() = "source" or source.asIndirectExpr(1).(FunctionCall).getTarget().getName() = "indirect_source" diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/winmain.cpp b/cpp/ql/test/library-tests/dataflow/dataflow-tests/winmain.cpp new file mode 100644 index 00000000000..3db41088842 --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/winmain.cpp @@ -0,0 +1,9 @@ +void sink(char); +void sink(char*); + +int WinMain(void *hInstance, void *hPrevInstance, char *pCmdLine, int nCmdShow) { // $ ast-def=hInstance ast-def=hPrevInstance ast-def=pCmdLine ir-def=*hInstance ir-def=*hPrevInstance ir-def=*pCmdLine + sink(pCmdLine); + sink(*pCmdLine); // $ MISSING: ir + + return 0; +} diff --git a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp new file mode 100644 index 00000000000..33f496be0f0 --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp @@ -0,0 +1,31 @@ +void sink(char); +void sink(char*); +void sink(char**); + +char* GetCommandLineA(); +char** CommandLineToArgvA(char*, int*); +char* GetEnvironmentStringsA(); +int GetEnvironmentVariableA(const char*, char*, int); + +void getCommandLine() { + char* cmd = GetCommandLineA(); + sink(cmd); + sink(*cmd); // $ MISSING: ir + + int argc; + char** argv = CommandLineToArgvA(cmd, &argc); + sink(argv); + sink(argv[1]); + sink(*argv[1]); // $ MISSING: ir +} + +void getEnvironment() { + char* env = GetEnvironmentStringsA(); + sink(env); + sink(*env); // $ MISSING: ir + + char buf[1024]; + GetEnvironmentVariableA("FOO", buf, sizeof(buf)); + sink(buf); + sink(*buf); // $ MISSING: ir +} From a77ddd7532e935720a9ccb9b38d30e7033b50d6a Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 22 May 2025 20:26:01 +0200 Subject: [PATCH 615/656] C++: Add Windows command line and environment models --- cpp/ql/lib/ext/Windows.model.yml | 20 +++++++++++++++++++ .../semmle/code/cpp/security/FlowSources.qll | 17 +++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 cpp/ql/lib/ext/Windows.model.yml diff --git a/cpp/ql/lib/ext/Windows.model.yml b/cpp/ql/lib/ext/Windows.model.yml new file mode 100644 index 00000000000..acac5f5fbf8 --- /dev/null +++ b/cpp/ql/lib/ext/Windows.model.yml @@ -0,0 +1,20 @@ + # partial model of windows system calls +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: sourceModel + data: # namespace, type, subtypes, name, signature, ext, output, kind, provenance + # processenv.h + - ["", "", False, "GetCommandLineA", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "GetCommandLineW", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "GetEnvironmentStringsA", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "GetEnvironmentStringsW", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "GetEnvironmentVariableA", "", "", "Argument[*1]", "local", "manual"] + - ["", "", False, "GetEnvironmentVariableW", "", "", "Argument[*1]", "local", "manual"] + - addsTo: + pack: codeql/cpp-all + extensible: summaryModel + data: # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance + # shellapi.h + - ["", "", False, "CommandLineToArgvA", "", "", "Argument[*0]", "ReturnValue[**]", "taint", "manual"] + - ["", "", False, "CommandLineToArgvW", "", "", "Argument[*0]", "ReturnValue[**]", "taint", "manual"] diff --git a/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll b/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll index b5e94d4c046..eba6f9339ff 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll @@ -55,7 +55,7 @@ private class LocalModelSource extends LocalFlowSource { } /** - * A local data flow source that the `argv` parameter to `main` or `wmain`. + * A local data flow source that is the `argv` parameter to `main` or `wmain`. */ private class ArgvSource extends LocalFlowSource { ArgvSource() { @@ -69,6 +69,21 @@ private class ArgvSource extends LocalFlowSource { override string getSourceType() { result = "a command-line argument" } } +/** + * A local data flow source that is the `pCmdLine` parameter to `WinMain` or `wWinMain`. + */ +private class CmdLineSource extends LocalFlowSource { + CmdLineSource() { + exists(Function main, Parameter pCmdLine | + main.hasGlobalName(["WinMain", "wWinMain"]) and + main.getParameter(2) = pCmdLine and + this.asParameter(1) = pCmdLine + ) + } + + override string getSourceType() { result = "a command-line" } +} + /** * A remote data flow source that is defined through 'models as data'. */ From fbc96152872182eb3d9af74c5f8737c542fbe8b0 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 23 May 2025 16:03:47 +0200 Subject: [PATCH 616/656] C++: Update expected test results --- .../dataflow-tests/test-source-sink.expected | 1 + .../dataflow/dataflow-tests/winmain.cpp | 2 +- .../dataflow/external-models/flow.expected | 50 ++++++++++++++----- .../dataflow/external-models/sources.expected | 3 ++ .../dataflow/external-models/steps.expected | 1 + .../dataflow/external-models/windows.cpp | 8 +-- 6 files changed, 48 insertions(+), 17 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected index fa141b614ea..323ce2a4312 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected @@ -337,3 +337,4 @@ irFlow | true_upon_entry.cpp:70:11:70:16 | call to source | true_upon_entry.cpp:78:8:78:8 | x | | true_upon_entry.cpp:83:11:83:16 | call to source | true_upon_entry.cpp:86:8:86:8 | x | | true_upon_entry.cpp:98:11:98:16 | call to source | true_upon_entry.cpp:105:8:105:8 | x | +| winmain.cpp:4:57:4:64 | *pCmdLine | winmain.cpp:6:8:6:16 | * ... | diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/winmain.cpp b/cpp/ql/test/library-tests/dataflow/dataflow-tests/winmain.cpp index 3db41088842..3f267e1e81b 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/winmain.cpp +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/winmain.cpp @@ -3,7 +3,7 @@ void sink(char*); int WinMain(void *hInstance, void *hPrevInstance, char *pCmdLine, int nCmdShow) { // $ ast-def=hInstance ast-def=hPrevInstance ast-def=pCmdLine ir-def=*hInstance ir-def=*hPrevInstance ir-def=*pCmdLine sink(pCmdLine); - sink(*pCmdLine); // $ MISSING: ir + sink(*pCmdLine); // $ ir return 0; } diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index 2eb0844862d..9992ca5a721 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -10,33 +10,44 @@ edges | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:103:29:103:39 | *send_buffer | provenance | Sink:MaD:6 | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | provenance | | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | MaD:10 | -| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:23489 | -| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:23490 | -| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:23491 | +| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:23497 | +| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:23498 | +| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:23499 | | test.cpp:7:47:7:52 | value2 | test.cpp:7:64:7:69 | value2 | provenance | | | test.cpp:7:64:7:69 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | provenance | | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:23487 | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:23488 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:23495 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:23496 | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:17:24:17:24 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:21:27:21:27 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:25:35:25:35 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:32:41:32:41 | x | provenance | | | test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | | -| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:23488 | +| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:23496 | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | provenance | | -| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:23489 | +| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:23497 | | test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | | -| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:23488 | +| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:23496 | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | provenance | | -| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:23490 | +| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:23498 | | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | | -| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:23488 | +| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:23496 | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | provenance | | -| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:23491 | +| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:23499 | | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | -| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:23488 | +| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:23496 | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | provenance | | | test.cpp:32:41:32:41 | x | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | +| windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:6:8:6:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | provenance | MaD:331 | +| windows.cpp:11:15:11:29 | *call to GetCommandLineA | windows.cpp:11:15:11:29 | *call to GetCommandLineA | provenance | Src:MaD:325 | +| windows.cpp:11:15:11:29 | *call to GetCommandLineA | windows.cpp:13:8:13:11 | * ... | provenance | | +| windows.cpp:11:15:11:29 | *call to GetCommandLineA | windows.cpp:16:36:16:38 | *cmd | provenance | | +| windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | provenance | | +| windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | windows.cpp:19:8:19:15 | * ... | provenance | | +| windows.cpp:16:36:16:38 | *cmd | windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | provenance | | +| windows.cpp:16:36:16:38 | *cmd | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | provenance | MaD:331 | +| windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | provenance | Src:MaD:327 | +| windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | windows.cpp:25:10:25:13 | * ... | provenance | | +| windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | windows.cpp:30:10:30:13 | * ... | provenance | Src:MaD:329 | nodes | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | semmle.label | [summary param] *0 in buffer | | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | semmle.label | [summary] to write: ReturnValue in buffer | @@ -78,9 +89,24 @@ nodes | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | semmle.label | call to ymlStepGenerated_with_body | | test.cpp:32:41:32:41 | x | semmle.label | x | | test.cpp:33:10:33:11 | z2 | semmle.label | z2 | +| windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | semmle.label | [summary param] *0 in CommandLineToArgvA | +| windows.cpp:6:8:6:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | semmle.label | [summary] to write: ReturnValue[**] in CommandLineToArgvA | +| windows.cpp:11:15:11:29 | *call to GetCommandLineA | semmle.label | *call to GetCommandLineA | +| windows.cpp:11:15:11:29 | *call to GetCommandLineA | semmle.label | *call to GetCommandLineA | +| windows.cpp:13:8:13:11 | * ... | semmle.label | * ... | +| windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | semmle.label | **call to CommandLineToArgvA | +| windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | semmle.label | **call to CommandLineToArgvA | +| windows.cpp:16:36:16:38 | *cmd | semmle.label | *cmd | +| windows.cpp:19:8:19:15 | * ... | semmle.label | * ... | +| windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | semmle.label | *call to GetEnvironmentStringsA | +| windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | semmle.label | *call to GetEnvironmentStringsA | +| windows.cpp:25:10:25:13 | * ... | semmle.label | * ... | +| windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | semmle.label | GetEnvironmentVariableA output argument | +| windows.cpp:30:10:30:13 | * ... | semmle.label | * ... | subpaths | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | asio_streams.cpp:100:44:100:62 | call to buffer | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | +| windows.cpp:16:36:16:38 | *cmd | windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:6:8:6:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected index 3e71025e7ff..1c21bf85121 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected @@ -1,2 +1,5 @@ | asio_streams.cpp:87:34:87:44 | read_until output argument | remote | | test.cpp:10:10:10:18 | call to ymlSource | local | +| windows.cpp:11:15:11:29 | *call to GetCommandLineA | local | +| windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | local | +| windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | local | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/steps.expected b/cpp/ql/test/library-tests/dataflow/external-models/steps.expected index aab2691cda1..ccdec4aefcb 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/steps.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/steps.expected @@ -5,3 +5,4 @@ | test.cpp:28:35:28:35 | 0 | test.cpp:28:11:28:33 | call to ymlStepManual_with_body | | test.cpp:32:38:32:38 | 0 | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | | test.cpp:35:38:35:38 | x | test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | +| windows.cpp:16:36:16:38 | *cmd | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp index 33f496be0f0..dfa055fa1e8 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp @@ -10,22 +10,22 @@ int GetEnvironmentVariableA(const char*, char*, int); void getCommandLine() { char* cmd = GetCommandLineA(); sink(cmd); - sink(*cmd); // $ MISSING: ir + sink(*cmd); // $ ir int argc; char** argv = CommandLineToArgvA(cmd, &argc); sink(argv); sink(argv[1]); - sink(*argv[1]); // $ MISSING: ir + sink(*argv[1]); // $ ir } void getEnvironment() { char* env = GetEnvironmentStringsA(); sink(env); - sink(*env); // $ MISSING: ir + sink(*env); // $ ir char buf[1024]; GetEnvironmentVariableA("FOO", buf, sizeof(buf)); sink(buf); - sink(*buf); // $ MISSING: ir + sink(*buf); // $ ir } From 10f6e1ceb81be20b96d709d0a9d849052d81492b Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 23 May 2025 16:08:25 +0200 Subject: [PATCH 617/656] C++: Add change note --- cpp/ql/lib/change-notes/2025-05-23-windows-sources.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2025-05-23-windows-sources.md diff --git a/cpp/ql/lib/change-notes/2025-05-23-windows-sources.md b/cpp/ql/lib/change-notes/2025-05-23-windows-sources.md new file mode 100644 index 00000000000..e07dcbe8598 --- /dev/null +++ b/cpp/ql/lib/change-notes/2025-05-23-windows-sources.md @@ -0,0 +1,6 @@ +--- +category: feature +--- +* Added the `pCmdLine` arguments of `WinMain` and `wWinMain` as local flow sources. +* Added source models for `GetCommandLineA`, `GetCommandLineW`, `GetEnvironmentStringsA`, `GetEnvironmentStringsW`, `GetEnvironmentVariableA`, and `GetEnvironmentVariableW`. +* Added summary models for `CommandLineToArgvA` and `CommandLineToArgvW`. From e4d1b01361b3df52d9e096e3ae2de743ca3b67da Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Sat, 24 May 2025 08:56:33 +0200 Subject: [PATCH 618/656] Rust: Add type inference test with function call to trait method --- .../test/library-tests/type-inference/main.rs | 26 + .../type-inference/type-inference.expected | 3039 +++++++++-------- 2 files changed, 1554 insertions(+), 1511 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index b33010e7b83..48964f9fb37 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -90,6 +90,32 @@ mod method_impl { } } +mod trait_impl { + #[derive(Debug)] + struct MyThing { + field: bool, + } + + trait MyTrait { + fn trait_method(self) -> B; + } + + impl MyTrait for MyThing { + // MyThing::trait_method + fn trait_method(self) -> bool { + self.field // $ fieldof=MyThing + } + } + + pub fn f() { + let x = MyThing { field: true }; + let a = x.trait_method(); // $ type=a:bool method=MyThing::trait_method + + let y = MyThing { field: false }; + let b = MyTrait::trait_method(y); // $ type=b:bool MISSING: method=MyThing::trait_method + } +} + mod method_non_parametric_impl { #[derive(Debug)] struct MyThing { diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 4657df91cf3..8c3b8bc7d39 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -88,1520 +88,1537 @@ inferType | main.rs:88:9:88:14 | x.m1() | | main.rs:67:5:67:21 | Foo | | main.rs:89:9:89:9 | y | | main.rs:67:5:67:21 | Foo | | main.rs:89:9:89:14 | y.m2() | | main.rs:67:5:67:21 | Foo | -| main.rs:106:15:106:18 | SelfParam | | main.rs:94:5:97:5 | MyThing | -| main.rs:106:15:106:18 | SelfParam | A | main.rs:99:5:100:14 | S1 | -| main.rs:106:27:108:9 | { ... } | | main.rs:99:5:100:14 | S1 | -| main.rs:107:13:107:16 | self | | main.rs:94:5:97:5 | MyThing | -| main.rs:107:13:107:16 | self | A | main.rs:99:5:100:14 | S1 | -| main.rs:107:13:107:18 | self.a | | main.rs:99:5:100:14 | S1 | -| main.rs:113:15:113:18 | SelfParam | | main.rs:94:5:97:5 | MyThing | -| main.rs:113:15:113:18 | SelfParam | A | main.rs:101:5:102:14 | S2 | -| main.rs:113:29:115:9 | { ... } | | main.rs:94:5:97:5 | MyThing | -| main.rs:113:29:115:9 | { ... } | A | main.rs:101:5:102:14 | S2 | -| main.rs:114:13:114:30 | Self {...} | | main.rs:94:5:97:5 | MyThing | -| main.rs:114:13:114:30 | Self {...} | A | main.rs:101:5:102:14 | S2 | -| main.rs:114:23:114:26 | self | | main.rs:94:5:97:5 | MyThing | -| main.rs:114:23:114:26 | self | A | main.rs:101:5:102:14 | S2 | -| main.rs:114:23:114:28 | self.a | | main.rs:101:5:102:14 | S2 | -| main.rs:119:15:119:18 | SelfParam | | main.rs:94:5:97:5 | MyThing | -| main.rs:119:15:119:18 | SelfParam | A | main.rs:118:10:118:10 | T | -| main.rs:119:26:121:9 | { ... } | | main.rs:118:10:118:10 | T | -| main.rs:120:13:120:16 | self | | main.rs:94:5:97:5 | MyThing | -| main.rs:120:13:120:16 | self | A | main.rs:118:10:118:10 | T | -| main.rs:120:13:120:18 | self.a | | main.rs:118:10:118:10 | T | -| main.rs:125:13:125:13 | x | | main.rs:94:5:97:5 | MyThing | -| main.rs:125:13:125:13 | x | A | main.rs:99:5:100:14 | S1 | -| main.rs:125:17:125:33 | MyThing {...} | | main.rs:94:5:97:5 | MyThing | -| main.rs:125:17:125:33 | MyThing {...} | A | main.rs:99:5:100:14 | S1 | -| main.rs:125:30:125:31 | S1 | | main.rs:99:5:100:14 | S1 | -| main.rs:126:13:126:13 | y | | main.rs:94:5:97:5 | MyThing | -| main.rs:126:13:126:13 | y | A | main.rs:101:5:102:14 | S2 | -| main.rs:126:17:126:33 | MyThing {...} | | main.rs:94:5:97:5 | MyThing | -| main.rs:126:17:126:33 | MyThing {...} | A | main.rs:101:5:102:14 | S2 | -| main.rs:126:30:126:31 | S2 | | main.rs:101:5:102:14 | S2 | -| main.rs:129:18:129:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:129:26:129:26 | x | | main.rs:94:5:97:5 | MyThing | -| main.rs:129:26:129:26 | x | A | main.rs:99:5:100:14 | S1 | -| main.rs:129:26:129:28 | x.a | | main.rs:99:5:100:14 | S1 | -| main.rs:130:18:130:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:130:26:130:26 | y | | main.rs:94:5:97:5 | MyThing | -| main.rs:130:26:130:26 | y | A | main.rs:101:5:102:14 | S2 | -| main.rs:130:26:130:28 | y.a | | main.rs:101:5:102:14 | S2 | -| main.rs:132:18:132:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:132:26:132:26 | x | | main.rs:94:5:97:5 | MyThing | -| main.rs:132:26:132:26 | x | A | main.rs:99:5:100:14 | S1 | -| main.rs:132:26:132:31 | x.m1() | | main.rs:99:5:100:14 | S1 | -| main.rs:133:18:133:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:133:26:133:26 | y | | main.rs:94:5:97:5 | MyThing | -| main.rs:133:26:133:26 | y | A | main.rs:101:5:102:14 | S2 | -| main.rs:133:26:133:31 | y.m1() | | main.rs:94:5:97:5 | MyThing | -| main.rs:133:26:133:31 | y.m1() | A | main.rs:101:5:102:14 | S2 | -| main.rs:133:26:133:33 | ... .a | | main.rs:101:5:102:14 | S2 | -| main.rs:135:13:135:13 | x | | main.rs:94:5:97:5 | MyThing | -| main.rs:135:13:135:13 | x | A | main.rs:99:5:100:14 | S1 | -| main.rs:135:17:135:33 | MyThing {...} | | main.rs:94:5:97:5 | MyThing | -| main.rs:135:17:135:33 | MyThing {...} | A | main.rs:99:5:100:14 | S1 | -| main.rs:135:30:135:31 | S1 | | main.rs:99:5:100:14 | S1 | -| main.rs:136:13:136:13 | y | | main.rs:94:5:97:5 | MyThing | -| main.rs:136:13:136:13 | y | A | main.rs:101:5:102:14 | S2 | -| main.rs:136:17:136:33 | MyThing {...} | | main.rs:94:5:97:5 | MyThing | -| main.rs:136:17:136:33 | MyThing {...} | A | main.rs:101:5:102:14 | S2 | -| main.rs:136:30:136:31 | S2 | | main.rs:101:5:102:14 | S2 | -| main.rs:138:18:138:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:138:26:138:26 | x | | main.rs:94:5:97:5 | MyThing | -| main.rs:138:26:138:26 | x | A | main.rs:99:5:100:14 | S1 | -| main.rs:138:26:138:31 | x.m2() | | main.rs:99:5:100:14 | S1 | -| main.rs:139:18:139:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:139:26:139:26 | y | | main.rs:94:5:97:5 | MyThing | -| main.rs:139:26:139:26 | y | A | main.rs:101:5:102:14 | S2 | -| main.rs:139:26:139:31 | y.m2() | | main.rs:101:5:102:14 | S2 | -| main.rs:163:15:163:18 | SelfParam | | main.rs:162:5:171:5 | Self [trait MyTrait] | -| main.rs:165:15:165:18 | SelfParam | | main.rs:162:5:171:5 | Self [trait MyTrait] | -| main.rs:168:9:170:9 | { ... } | | main.rs:162:5:171:5 | Self [trait MyTrait] | -| main.rs:169:13:169:16 | self | | main.rs:162:5:171:5 | Self [trait MyTrait] | -| main.rs:175:16:175:19 | SelfParam | | main.rs:173:5:178:5 | Self [trait MyProduct] | -| main.rs:177:16:177:19 | SelfParam | | main.rs:173:5:178:5 | Self [trait MyProduct] | -| main.rs:180:43:180:43 | x | | main.rs:180:26:180:40 | T2 | -| main.rs:180:56:182:5 | { ... } | | main.rs:180:22:180:23 | T1 | -| main.rs:181:9:181:9 | x | | main.rs:180:26:180:40 | T2 | -| main.rs:181:9:181:14 | x.m1() | | main.rs:180:22:180:23 | T1 | -| main.rs:186:15:186:18 | SelfParam | | main.rs:144:5:147:5 | MyThing | -| main.rs:186:15:186:18 | SelfParam | A | main.rs:155:5:156:14 | S1 | -| main.rs:186:27:188:9 | { ... } | | main.rs:155:5:156:14 | S1 | -| main.rs:187:13:187:16 | self | | main.rs:144:5:147:5 | MyThing | -| main.rs:187:13:187:16 | self | A | main.rs:155:5:156:14 | S1 | -| main.rs:187:13:187:18 | self.a | | main.rs:155:5:156:14 | S1 | -| main.rs:193:15:193:18 | SelfParam | | main.rs:144:5:147:5 | MyThing | -| main.rs:193:15:193:18 | SelfParam | A | main.rs:157:5:158:14 | S2 | -| main.rs:193:29:195:9 | { ... } | | main.rs:144:5:147:5 | MyThing | -| main.rs:193:29:195:9 | { ... } | A | main.rs:157:5:158:14 | S2 | -| main.rs:194:13:194:30 | Self {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:194:13:194:30 | Self {...} | A | main.rs:157:5:158:14 | S2 | -| main.rs:194:23:194:26 | self | | main.rs:144:5:147:5 | MyThing | -| main.rs:194:23:194:26 | self | A | main.rs:157:5:158:14 | S2 | -| main.rs:194:23:194:28 | self.a | | main.rs:157:5:158:14 | S2 | -| main.rs:205:15:205:18 | SelfParam | | main.rs:144:5:147:5 | MyThing | -| main.rs:205:15:205:18 | SelfParam | A | main.rs:159:5:160:14 | S3 | -| main.rs:205:27:207:9 | { ... } | | main.rs:200:10:200:11 | TD | -| main.rs:206:13:206:25 | ...::default(...) | | main.rs:200:10:200:11 | TD | -| main.rs:212:15:212:18 | SelfParam | | main.rs:149:5:153:5 | MyPair | -| main.rs:212:15:212:18 | SelfParam | P1 | main.rs:210:10:210:10 | I | -| main.rs:212:15:212:18 | SelfParam | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:212:26:214:9 | { ... } | | main.rs:210:10:210:10 | I | -| main.rs:213:13:213:16 | self | | main.rs:149:5:153:5 | MyPair | -| main.rs:213:13:213:16 | self | P1 | main.rs:210:10:210:10 | I | -| main.rs:213:13:213:16 | self | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:213:13:213:19 | self.p1 | | main.rs:210:10:210:10 | I | -| main.rs:219:15:219:18 | SelfParam | | main.rs:149:5:153:5 | MyPair | -| main.rs:219:15:219:18 | SelfParam | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:219:15:219:18 | SelfParam | P2 | main.rs:157:5:158:14 | S2 | -| main.rs:219:27:221:9 | { ... } | | main.rs:159:5:160:14 | S3 | -| main.rs:220:13:220:14 | S3 | | main.rs:159:5:160:14 | S3 | -| main.rs:226:15:226:18 | SelfParam | | main.rs:149:5:153:5 | MyPair | -| main.rs:226:15:226:18 | SelfParam | P1 | main.rs:144:5:147:5 | MyThing | -| main.rs:226:15:226:18 | SelfParam | P1.A | main.rs:224:10:224:11 | TT | -| main.rs:226:15:226:18 | SelfParam | P2 | main.rs:159:5:160:14 | S3 | -| main.rs:226:27:229:9 | { ... } | | main.rs:224:10:224:11 | TT | -| main.rs:227:17:227:21 | alpha | | main.rs:144:5:147:5 | MyThing | -| main.rs:227:17:227:21 | alpha | A | main.rs:224:10:224:11 | TT | -| main.rs:227:25:227:28 | self | | main.rs:149:5:153:5 | MyPair | -| main.rs:227:25:227:28 | self | P1 | main.rs:144:5:147:5 | MyThing | -| main.rs:227:25:227:28 | self | P1.A | main.rs:224:10:224:11 | TT | -| main.rs:227:25:227:28 | self | P2 | main.rs:159:5:160:14 | S3 | -| main.rs:227:25:227:31 | self.p1 | | main.rs:144:5:147:5 | MyThing | -| main.rs:227:25:227:31 | self.p1 | A | main.rs:224:10:224:11 | TT | -| main.rs:228:13:228:17 | alpha | | main.rs:144:5:147:5 | MyThing | -| main.rs:228:13:228:17 | alpha | A | main.rs:224:10:224:11 | TT | -| main.rs:228:13:228:19 | alpha.a | | main.rs:224:10:224:11 | TT | -| main.rs:235:16:235:19 | SelfParam | | main.rs:149:5:153:5 | MyPair | -| main.rs:235:16:235:19 | SelfParam | P1 | main.rs:233:10:233:10 | A | -| main.rs:235:16:235:19 | SelfParam | P2 | main.rs:233:10:233:10 | A | -| main.rs:235:27:237:9 | { ... } | | main.rs:233:10:233:10 | A | -| main.rs:236:13:236:16 | self | | main.rs:149:5:153:5 | MyPair | -| main.rs:236:13:236:16 | self | P1 | main.rs:233:10:233:10 | A | -| main.rs:236:13:236:16 | self | P2 | main.rs:233:10:233:10 | A | -| main.rs:236:13:236:19 | self.p1 | | main.rs:233:10:233:10 | A | -| main.rs:240:16:240:19 | SelfParam | | main.rs:149:5:153:5 | MyPair | -| main.rs:240:16:240:19 | SelfParam | P1 | main.rs:233:10:233:10 | A | -| main.rs:240:16:240:19 | SelfParam | P2 | main.rs:233:10:233:10 | A | -| main.rs:240:27:242:9 | { ... } | | main.rs:233:10:233:10 | A | -| main.rs:241:13:241:16 | self | | main.rs:149:5:153:5 | MyPair | -| main.rs:241:13:241:16 | self | P1 | main.rs:233:10:233:10 | A | -| main.rs:241:13:241:16 | self | P2 | main.rs:233:10:233:10 | A | -| main.rs:241:13:241:19 | self.p2 | | main.rs:233:10:233:10 | A | -| main.rs:248:16:248:19 | SelfParam | | main.rs:149:5:153:5 | MyPair | -| main.rs:248:16:248:19 | SelfParam | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:248:16:248:19 | SelfParam | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:248:28:250:9 | { ... } | | main.rs:155:5:156:14 | S1 | -| main.rs:249:13:249:16 | self | | main.rs:149:5:153:5 | MyPair | -| main.rs:249:13:249:16 | self | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:249:13:249:16 | self | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:249:13:249:19 | self.p2 | | main.rs:155:5:156:14 | S1 | -| main.rs:253:16:253:19 | SelfParam | | main.rs:149:5:153:5 | MyPair | -| main.rs:253:16:253:19 | SelfParam | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:253:16:253:19 | SelfParam | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:253:28:255:9 | { ... } | | main.rs:157:5:158:14 | S2 | -| main.rs:254:13:254:16 | self | | main.rs:149:5:153:5 | MyPair | -| main.rs:254:13:254:16 | self | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:254:13:254:16 | self | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:254:13:254:19 | self.p1 | | main.rs:157:5:158:14 | S2 | -| main.rs:258:46:258:46 | p | | main.rs:258:24:258:43 | P | -| main.rs:258:58:260:5 | { ... } | | main.rs:258:16:258:17 | V1 | -| main.rs:259:9:259:9 | p | | main.rs:258:24:258:43 | P | -| main.rs:259:9:259:15 | p.fst() | | main.rs:258:16:258:17 | V1 | -| main.rs:262:46:262:46 | p | | main.rs:262:24:262:43 | P | -| main.rs:262:58:264:5 | { ... } | | main.rs:262:20:262:21 | V2 | -| main.rs:263:9:263:9 | p | | main.rs:262:24:262:43 | P | -| main.rs:263:9:263:15 | p.snd() | | main.rs:262:20:262:21 | V2 | -| main.rs:266:54:266:54 | p | | main.rs:149:5:153:5 | MyPair | -| main.rs:266:54:266:54 | p | P1 | main.rs:266:20:266:21 | V0 | -| main.rs:266:54:266:54 | p | P2 | main.rs:266:32:266:51 | P | -| main.rs:266:78:268:5 | { ... } | | main.rs:266:24:266:25 | V1 | -| main.rs:267:9:267:9 | p | | main.rs:149:5:153:5 | MyPair | -| main.rs:267:9:267:9 | p | P1 | main.rs:266:20:266:21 | V0 | -| main.rs:267:9:267:9 | p | P2 | main.rs:266:32:266:51 | P | -| main.rs:267:9:267:12 | p.p2 | | main.rs:266:32:266:51 | P | -| main.rs:267:9:267:18 | ... .fst() | | main.rs:266:24:266:25 | V1 | -| main.rs:272:23:272:26 | SelfParam | | main.rs:270:5:273:5 | Self [trait ConvertTo] | -| main.rs:277:23:277:26 | SelfParam | | main.rs:275:10:275:23 | T | -| main.rs:277:35:279:9 | { ... } | | main.rs:155:5:156:14 | S1 | -| main.rs:278:13:278:16 | self | | main.rs:275:10:275:23 | T | -| main.rs:278:13:278:21 | self.m1() | | main.rs:155:5:156:14 | S1 | -| main.rs:282:41:282:45 | thing | | main.rs:282:23:282:38 | T | -| main.rs:282:57:284:5 | { ... } | | main.rs:282:19:282:20 | TS | -| main.rs:283:9:283:13 | thing | | main.rs:282:23:282:38 | T | -| main.rs:283:9:283:26 | thing.convert_to() | | main.rs:282:19:282:20 | TS | -| main.rs:286:56:286:60 | thing | | main.rs:286:39:286:53 | TP | -| main.rs:286:73:289:5 | { ... } | | main.rs:155:5:156:14 | S1 | -| main.rs:288:9:288:13 | thing | | main.rs:286:39:286:53 | TP | -| main.rs:288:9:288:26 | thing.convert_to() | | main.rs:155:5:156:14 | S1 | -| main.rs:292:13:292:20 | thing_s1 | | main.rs:144:5:147:5 | MyThing | -| main.rs:292:13:292:20 | thing_s1 | A | main.rs:155:5:156:14 | S1 | -| main.rs:292:24:292:40 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:292:24:292:40 | MyThing {...} | A | main.rs:155:5:156:14 | S1 | -| main.rs:292:37:292:38 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:293:13:293:20 | thing_s2 | | main.rs:144:5:147:5 | MyThing | -| main.rs:293:13:293:20 | thing_s2 | A | main.rs:157:5:158:14 | S2 | -| main.rs:293:24:293:40 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:293:24:293:40 | MyThing {...} | A | main.rs:157:5:158:14 | S2 | -| main.rs:293:37:293:38 | S2 | | main.rs:157:5:158:14 | S2 | -| main.rs:294:13:294:20 | thing_s3 | | main.rs:144:5:147:5 | MyThing | -| main.rs:294:13:294:20 | thing_s3 | A | main.rs:159:5:160:14 | S3 | -| main.rs:294:24:294:40 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:294:24:294:40 | MyThing {...} | A | main.rs:159:5:160:14 | S3 | -| main.rs:294:37:294:38 | S3 | | main.rs:159:5:160:14 | S3 | -| main.rs:298:18:298:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:298:26:298:33 | thing_s1 | | main.rs:144:5:147:5 | MyThing | -| main.rs:298:26:298:33 | thing_s1 | A | main.rs:155:5:156:14 | S1 | -| main.rs:298:26:298:38 | thing_s1.m1() | | main.rs:155:5:156:14 | S1 | -| main.rs:299:18:299:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:299:26:299:33 | thing_s2 | | main.rs:144:5:147:5 | MyThing | -| main.rs:299:26:299:33 | thing_s2 | A | main.rs:157:5:158:14 | S2 | -| main.rs:299:26:299:38 | thing_s2.m1() | | main.rs:144:5:147:5 | MyThing | -| main.rs:299:26:299:38 | thing_s2.m1() | A | main.rs:157:5:158:14 | S2 | -| main.rs:299:26:299:40 | ... .a | | main.rs:157:5:158:14 | S2 | -| main.rs:300:13:300:14 | s3 | | main.rs:159:5:160:14 | S3 | -| main.rs:300:22:300:29 | thing_s3 | | main.rs:144:5:147:5 | MyThing | -| main.rs:300:22:300:29 | thing_s3 | A | main.rs:159:5:160:14 | S3 | -| main.rs:300:22:300:34 | thing_s3.m1() | | main.rs:159:5:160:14 | S3 | -| main.rs:301:18:301:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:301:26:301:27 | s3 | | main.rs:159:5:160:14 | S3 | -| main.rs:303:13:303:14 | p1 | | main.rs:149:5:153:5 | MyPair | -| main.rs:303:13:303:14 | p1 | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:303:13:303:14 | p1 | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:303:18:303:42 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | -| main.rs:303:18:303:42 | MyPair {...} | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:303:18:303:42 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:303:31:303:32 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:303:39:303:40 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:304:18:304:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:304:26:304:27 | p1 | | main.rs:149:5:153:5 | MyPair | -| main.rs:304:26:304:27 | p1 | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:304:26:304:27 | p1 | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:304:26:304:32 | p1.m1() | | main.rs:155:5:156:14 | S1 | -| main.rs:306:13:306:14 | p2 | | main.rs:149:5:153:5 | MyPair | -| main.rs:306:13:306:14 | p2 | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:306:13:306:14 | p2 | P2 | main.rs:157:5:158:14 | S2 | -| main.rs:306:18:306:42 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | -| main.rs:306:18:306:42 | MyPair {...} | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:306:18:306:42 | MyPair {...} | P2 | main.rs:157:5:158:14 | S2 | -| main.rs:306:31:306:32 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:306:39:306:40 | S2 | | main.rs:157:5:158:14 | S2 | -| main.rs:307:18:307:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:307:26:307:27 | p2 | | main.rs:149:5:153:5 | MyPair | -| main.rs:307:26:307:27 | p2 | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:307:26:307:27 | p2 | P2 | main.rs:157:5:158:14 | S2 | -| main.rs:307:26:307:32 | p2.m1() | | main.rs:159:5:160:14 | S3 | -| main.rs:309:13:309:14 | p3 | | main.rs:149:5:153:5 | MyPair | -| main.rs:309:13:309:14 | p3 | P1 | main.rs:144:5:147:5 | MyThing | -| main.rs:309:13:309:14 | p3 | P1.A | main.rs:155:5:156:14 | S1 | -| main.rs:309:13:309:14 | p3 | P2 | main.rs:159:5:160:14 | S3 | -| main.rs:309:18:312:9 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | -| main.rs:309:18:312:9 | MyPair {...} | P1 | main.rs:144:5:147:5 | MyThing | -| main.rs:309:18:312:9 | MyPair {...} | P1.A | main.rs:155:5:156:14 | S1 | -| main.rs:309:18:312:9 | MyPair {...} | P2 | main.rs:159:5:160:14 | S3 | -| main.rs:310:17:310:33 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:310:17:310:33 | MyThing {...} | A | main.rs:155:5:156:14 | S1 | -| main.rs:310:30:310:31 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:311:17:311:18 | S3 | | main.rs:159:5:160:14 | S3 | -| main.rs:313:18:313:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:313:26:313:27 | p3 | | main.rs:149:5:153:5 | MyPair | -| main.rs:313:26:313:27 | p3 | P1 | main.rs:144:5:147:5 | MyThing | -| main.rs:313:26:313:27 | p3 | P1.A | main.rs:155:5:156:14 | S1 | -| main.rs:313:26:313:27 | p3 | P2 | main.rs:159:5:160:14 | S3 | -| main.rs:313:26:313:32 | p3.m1() | | main.rs:155:5:156:14 | S1 | -| main.rs:316:13:316:13 | a | | main.rs:149:5:153:5 | MyPair | -| main.rs:316:13:316:13 | a | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:316:13:316:13 | a | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:316:17:316:41 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | -| main.rs:316:17:316:41 | MyPair {...} | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:316:17:316:41 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:316:30:316:31 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:316:38:316:39 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:317:13:317:13 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:317:17:317:17 | a | | main.rs:149:5:153:5 | MyPair | -| main.rs:317:17:317:17 | a | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:317:17:317:17 | a | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:317:17:317:23 | a.fst() | | main.rs:155:5:156:14 | S1 | -| main.rs:318:18:318:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:318:26:318:26 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:319:13:319:13 | y | | main.rs:155:5:156:14 | S1 | -| main.rs:319:17:319:17 | a | | main.rs:149:5:153:5 | MyPair | -| main.rs:319:17:319:17 | a | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:319:17:319:17 | a | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:319:17:319:23 | a.snd() | | main.rs:155:5:156:14 | S1 | -| main.rs:320:18:320:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:320:26:320:26 | y | | main.rs:155:5:156:14 | S1 | -| main.rs:326:13:326:13 | b | | main.rs:149:5:153:5 | MyPair | -| main.rs:326:13:326:13 | b | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:326:13:326:13 | b | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:326:17:326:41 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | -| main.rs:326:17:326:41 | MyPair {...} | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:326:17:326:41 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:326:30:326:31 | S2 | | main.rs:157:5:158:14 | S2 | -| main.rs:326:38:326:39 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:327:13:327:13 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:327:17:327:17 | b | | main.rs:149:5:153:5 | MyPair | -| main.rs:327:17:327:17 | b | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:327:17:327:17 | b | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:327:17:327:23 | b.fst() | | main.rs:155:5:156:14 | S1 | -| main.rs:328:18:328:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:328:26:328:26 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:329:13:329:13 | y | | main.rs:157:5:158:14 | S2 | -| main.rs:329:17:329:17 | b | | main.rs:149:5:153:5 | MyPair | -| main.rs:329:17:329:17 | b | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:329:17:329:17 | b | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:329:17:329:23 | b.snd() | | main.rs:157:5:158:14 | S2 | +| main.rs:100:25:100:28 | SelfParam | | main.rs:99:5:101:5 | Self [trait MyTrait] | +| main.rs:105:25:105:28 | SelfParam | | main.rs:94:5:97:5 | MyThing | +| main.rs:105:39:107:9 | { ... } | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:106:13:106:16 | self | | main.rs:94:5:97:5 | MyThing | +| main.rs:106:13:106:22 | self.field | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:111:13:111:13 | x | | main.rs:94:5:97:5 | MyThing | +| main.rs:111:17:111:39 | MyThing {...} | | main.rs:94:5:97:5 | MyThing | +| main.rs:111:34:111:37 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:112:13:112:13 | a | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:112:17:112:17 | x | | main.rs:94:5:97:5 | MyThing | +| main.rs:112:17:112:32 | x.trait_method() | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:114:13:114:13 | y | | main.rs:94:5:97:5 | MyThing | +| main.rs:114:17:114:40 | MyThing {...} | | main.rs:94:5:97:5 | MyThing | +| main.rs:114:34:114:38 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:115:13:115:13 | b | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:115:17:115:40 | ...::trait_method(...) | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:115:39:115:39 | y | | main.rs:94:5:97:5 | MyThing | +| main.rs:132:15:132:18 | SelfParam | | main.rs:120:5:123:5 | MyThing | +| main.rs:132:15:132:18 | SelfParam | A | main.rs:125:5:126:14 | S1 | +| main.rs:132:27:134:9 | { ... } | | main.rs:125:5:126:14 | S1 | +| main.rs:133:13:133:16 | self | | main.rs:120:5:123:5 | MyThing | +| main.rs:133:13:133:16 | self | A | main.rs:125:5:126:14 | S1 | +| main.rs:133:13:133:18 | self.a | | main.rs:125:5:126:14 | S1 | +| main.rs:139:15:139:18 | SelfParam | | main.rs:120:5:123:5 | MyThing | +| main.rs:139:15:139:18 | SelfParam | A | main.rs:127:5:128:14 | S2 | +| main.rs:139:29:141:9 | { ... } | | main.rs:120:5:123:5 | MyThing | +| main.rs:139:29:141:9 | { ... } | A | main.rs:127:5:128:14 | S2 | +| main.rs:140:13:140:30 | Self {...} | | main.rs:120:5:123:5 | MyThing | +| main.rs:140:13:140:30 | Self {...} | A | main.rs:127:5:128:14 | S2 | +| main.rs:140:23:140:26 | self | | main.rs:120:5:123:5 | MyThing | +| main.rs:140:23:140:26 | self | A | main.rs:127:5:128:14 | S2 | +| main.rs:140:23:140:28 | self.a | | main.rs:127:5:128:14 | S2 | +| main.rs:145:15:145:18 | SelfParam | | main.rs:120:5:123:5 | MyThing | +| main.rs:145:15:145:18 | SelfParam | A | main.rs:144:10:144:10 | T | +| main.rs:145:26:147:9 | { ... } | | main.rs:144:10:144:10 | T | +| main.rs:146:13:146:16 | self | | main.rs:120:5:123:5 | MyThing | +| main.rs:146:13:146:16 | self | A | main.rs:144:10:144:10 | T | +| main.rs:146:13:146:18 | self.a | | main.rs:144:10:144:10 | T | +| main.rs:151:13:151:13 | x | | main.rs:120:5:123:5 | MyThing | +| main.rs:151:13:151:13 | x | A | main.rs:125:5:126:14 | S1 | +| main.rs:151:17:151:33 | MyThing {...} | | main.rs:120:5:123:5 | MyThing | +| main.rs:151:17:151:33 | MyThing {...} | A | main.rs:125:5:126:14 | S1 | +| main.rs:151:30:151:31 | S1 | | main.rs:125:5:126:14 | S1 | +| main.rs:152:13:152:13 | y | | main.rs:120:5:123:5 | MyThing | +| main.rs:152:13:152:13 | y | A | main.rs:127:5:128:14 | S2 | +| main.rs:152:17:152:33 | MyThing {...} | | main.rs:120:5:123:5 | MyThing | +| main.rs:152:17:152:33 | MyThing {...} | A | main.rs:127:5:128:14 | S2 | +| main.rs:152:30:152:31 | S2 | | main.rs:127:5:128:14 | S2 | +| main.rs:155:18:155:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:155:26:155:26 | x | | main.rs:120:5:123:5 | MyThing | +| main.rs:155:26:155:26 | x | A | main.rs:125:5:126:14 | S1 | +| main.rs:155:26:155:28 | x.a | | main.rs:125:5:126:14 | S1 | +| main.rs:156:18:156:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:156:26:156:26 | y | | main.rs:120:5:123:5 | MyThing | +| main.rs:156:26:156:26 | y | A | main.rs:127:5:128:14 | S2 | +| main.rs:156:26:156:28 | y.a | | main.rs:127:5:128:14 | S2 | +| main.rs:158:18:158:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:158:26:158:26 | x | | main.rs:120:5:123:5 | MyThing | +| main.rs:158:26:158:26 | x | A | main.rs:125:5:126:14 | S1 | +| main.rs:158:26:158:31 | x.m1() | | main.rs:125:5:126:14 | S1 | +| main.rs:159:18:159:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:159:26:159:26 | y | | main.rs:120:5:123:5 | MyThing | +| main.rs:159:26:159:26 | y | A | main.rs:127:5:128:14 | S2 | +| main.rs:159:26:159:31 | y.m1() | | main.rs:120:5:123:5 | MyThing | +| main.rs:159:26:159:31 | y.m1() | A | main.rs:127:5:128:14 | S2 | +| main.rs:159:26:159:33 | ... .a | | main.rs:127:5:128:14 | S2 | +| main.rs:161:13:161:13 | x | | main.rs:120:5:123:5 | MyThing | +| main.rs:161:13:161:13 | x | A | main.rs:125:5:126:14 | S1 | +| main.rs:161:17:161:33 | MyThing {...} | | main.rs:120:5:123:5 | MyThing | +| main.rs:161:17:161:33 | MyThing {...} | A | main.rs:125:5:126:14 | S1 | +| main.rs:161:30:161:31 | S1 | | main.rs:125:5:126:14 | S1 | +| main.rs:162:13:162:13 | y | | main.rs:120:5:123:5 | MyThing | +| main.rs:162:13:162:13 | y | A | main.rs:127:5:128:14 | S2 | +| main.rs:162:17:162:33 | MyThing {...} | | main.rs:120:5:123:5 | MyThing | +| main.rs:162:17:162:33 | MyThing {...} | A | main.rs:127:5:128:14 | S2 | +| main.rs:162:30:162:31 | S2 | | main.rs:127:5:128:14 | S2 | +| main.rs:164:18:164:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:164:26:164:26 | x | | main.rs:120:5:123:5 | MyThing | +| main.rs:164:26:164:26 | x | A | main.rs:125:5:126:14 | S1 | +| main.rs:164:26:164:31 | x.m2() | | main.rs:125:5:126:14 | S1 | +| main.rs:165:18:165:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:165:26:165:26 | y | | main.rs:120:5:123:5 | MyThing | +| main.rs:165:26:165:26 | y | A | main.rs:127:5:128:14 | S2 | +| main.rs:165:26:165:31 | y.m2() | | main.rs:127:5:128:14 | S2 | +| main.rs:189:15:189:18 | SelfParam | | main.rs:188:5:197:5 | Self [trait MyTrait] | +| main.rs:191:15:191:18 | SelfParam | | main.rs:188:5:197:5 | Self [trait MyTrait] | +| main.rs:194:9:196:9 | { ... } | | main.rs:188:5:197:5 | Self [trait MyTrait] | +| main.rs:195:13:195:16 | self | | main.rs:188:5:197:5 | Self [trait MyTrait] | +| main.rs:201:16:201:19 | SelfParam | | main.rs:199:5:204:5 | Self [trait MyProduct] | +| main.rs:203:16:203:19 | SelfParam | | main.rs:199:5:204:5 | Self [trait MyProduct] | +| main.rs:206:43:206:43 | x | | main.rs:206:26:206:40 | T2 | +| main.rs:206:56:208:5 | { ... } | | main.rs:206:22:206:23 | T1 | +| main.rs:207:9:207:9 | x | | main.rs:206:26:206:40 | T2 | +| main.rs:207:9:207:14 | x.m1() | | main.rs:206:22:206:23 | T1 | +| main.rs:212:15:212:18 | SelfParam | | main.rs:170:5:173:5 | MyThing | +| main.rs:212:15:212:18 | SelfParam | A | main.rs:181:5:182:14 | S1 | +| main.rs:212:27:214:9 | { ... } | | main.rs:181:5:182:14 | S1 | +| main.rs:213:13:213:16 | self | | main.rs:170:5:173:5 | MyThing | +| main.rs:213:13:213:16 | self | A | main.rs:181:5:182:14 | S1 | +| main.rs:213:13:213:18 | self.a | | main.rs:181:5:182:14 | S1 | +| main.rs:219:15:219:18 | SelfParam | | main.rs:170:5:173:5 | MyThing | +| main.rs:219:15:219:18 | SelfParam | A | main.rs:183:5:184:14 | S2 | +| main.rs:219:29:221:9 | { ... } | | main.rs:170:5:173:5 | MyThing | +| main.rs:219:29:221:9 | { ... } | A | main.rs:183:5:184:14 | S2 | +| main.rs:220:13:220:30 | Self {...} | | main.rs:170:5:173:5 | MyThing | +| main.rs:220:13:220:30 | Self {...} | A | main.rs:183:5:184:14 | S2 | +| main.rs:220:23:220:26 | self | | main.rs:170:5:173:5 | MyThing | +| main.rs:220:23:220:26 | self | A | main.rs:183:5:184:14 | S2 | +| main.rs:220:23:220:28 | self.a | | main.rs:183:5:184:14 | S2 | +| main.rs:231:15:231:18 | SelfParam | | main.rs:170:5:173:5 | MyThing | +| main.rs:231:15:231:18 | SelfParam | A | main.rs:185:5:186:14 | S3 | +| main.rs:231:27:233:9 | { ... } | | main.rs:226:10:226:11 | TD | +| main.rs:232:13:232:25 | ...::default(...) | | main.rs:226:10:226:11 | TD | +| main.rs:238:15:238:18 | SelfParam | | main.rs:175:5:179:5 | MyPair | +| main.rs:238:15:238:18 | SelfParam | P1 | main.rs:236:10:236:10 | I | +| main.rs:238:15:238:18 | SelfParam | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:238:26:240:9 | { ... } | | main.rs:236:10:236:10 | I | +| main.rs:239:13:239:16 | self | | main.rs:175:5:179:5 | MyPair | +| main.rs:239:13:239:16 | self | P1 | main.rs:236:10:236:10 | I | +| main.rs:239:13:239:16 | self | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:239:13:239:19 | self.p1 | | main.rs:236:10:236:10 | I | +| main.rs:245:15:245:18 | SelfParam | | main.rs:175:5:179:5 | MyPair | +| main.rs:245:15:245:18 | SelfParam | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:245:15:245:18 | SelfParam | P2 | main.rs:183:5:184:14 | S2 | +| main.rs:245:27:247:9 | { ... } | | main.rs:185:5:186:14 | S3 | +| main.rs:246:13:246:14 | S3 | | main.rs:185:5:186:14 | S3 | +| main.rs:252:15:252:18 | SelfParam | | main.rs:175:5:179:5 | MyPair | +| main.rs:252:15:252:18 | SelfParam | P1 | main.rs:170:5:173:5 | MyThing | +| main.rs:252:15:252:18 | SelfParam | P1.A | main.rs:250:10:250:11 | TT | +| main.rs:252:15:252:18 | SelfParam | P2 | main.rs:185:5:186:14 | S3 | +| main.rs:252:27:255:9 | { ... } | | main.rs:250:10:250:11 | TT | +| main.rs:253:17:253:21 | alpha | | main.rs:170:5:173:5 | MyThing | +| main.rs:253:17:253:21 | alpha | A | main.rs:250:10:250:11 | TT | +| main.rs:253:25:253:28 | self | | main.rs:175:5:179:5 | MyPair | +| main.rs:253:25:253:28 | self | P1 | main.rs:170:5:173:5 | MyThing | +| main.rs:253:25:253:28 | self | P1.A | main.rs:250:10:250:11 | TT | +| main.rs:253:25:253:28 | self | P2 | main.rs:185:5:186:14 | S3 | +| main.rs:253:25:253:31 | self.p1 | | main.rs:170:5:173:5 | MyThing | +| main.rs:253:25:253:31 | self.p1 | A | main.rs:250:10:250:11 | TT | +| main.rs:254:13:254:17 | alpha | | main.rs:170:5:173:5 | MyThing | +| main.rs:254:13:254:17 | alpha | A | main.rs:250:10:250:11 | TT | +| main.rs:254:13:254:19 | alpha.a | | main.rs:250:10:250:11 | TT | +| main.rs:261:16:261:19 | SelfParam | | main.rs:175:5:179:5 | MyPair | +| main.rs:261:16:261:19 | SelfParam | P1 | main.rs:259:10:259:10 | A | +| main.rs:261:16:261:19 | SelfParam | P2 | main.rs:259:10:259:10 | A | +| main.rs:261:27:263:9 | { ... } | | main.rs:259:10:259:10 | A | +| main.rs:262:13:262:16 | self | | main.rs:175:5:179:5 | MyPair | +| main.rs:262:13:262:16 | self | P1 | main.rs:259:10:259:10 | A | +| main.rs:262:13:262:16 | self | P2 | main.rs:259:10:259:10 | A | +| main.rs:262:13:262:19 | self.p1 | | main.rs:259:10:259:10 | A | +| main.rs:266:16:266:19 | SelfParam | | main.rs:175:5:179:5 | MyPair | +| main.rs:266:16:266:19 | SelfParam | P1 | main.rs:259:10:259:10 | A | +| main.rs:266:16:266:19 | SelfParam | P2 | main.rs:259:10:259:10 | A | +| main.rs:266:27:268:9 | { ... } | | main.rs:259:10:259:10 | A | +| main.rs:267:13:267:16 | self | | main.rs:175:5:179:5 | MyPair | +| main.rs:267:13:267:16 | self | P1 | main.rs:259:10:259:10 | A | +| main.rs:267:13:267:16 | self | P2 | main.rs:259:10:259:10 | A | +| main.rs:267:13:267:19 | self.p2 | | main.rs:259:10:259:10 | A | +| main.rs:274:16:274:19 | SelfParam | | main.rs:175:5:179:5 | MyPair | +| main.rs:274:16:274:19 | SelfParam | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:274:16:274:19 | SelfParam | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:274:28:276:9 | { ... } | | main.rs:181:5:182:14 | S1 | +| main.rs:275:13:275:16 | self | | main.rs:175:5:179:5 | MyPair | +| main.rs:275:13:275:16 | self | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:275:13:275:16 | self | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:275:13:275:19 | self.p2 | | main.rs:181:5:182:14 | S1 | +| main.rs:279:16:279:19 | SelfParam | | main.rs:175:5:179:5 | MyPair | +| main.rs:279:16:279:19 | SelfParam | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:279:16:279:19 | SelfParam | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:279:28:281:9 | { ... } | | main.rs:183:5:184:14 | S2 | +| main.rs:280:13:280:16 | self | | main.rs:175:5:179:5 | MyPair | +| main.rs:280:13:280:16 | self | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:280:13:280:16 | self | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:280:13:280:19 | self.p1 | | main.rs:183:5:184:14 | S2 | +| main.rs:284:46:284:46 | p | | main.rs:284:24:284:43 | P | +| main.rs:284:58:286:5 | { ... } | | main.rs:284:16:284:17 | V1 | +| main.rs:285:9:285:9 | p | | main.rs:284:24:284:43 | P | +| main.rs:285:9:285:15 | p.fst() | | main.rs:284:16:284:17 | V1 | +| main.rs:288:46:288:46 | p | | main.rs:288:24:288:43 | P | +| main.rs:288:58:290:5 | { ... } | | main.rs:288:20:288:21 | V2 | +| main.rs:289:9:289:9 | p | | main.rs:288:24:288:43 | P | +| main.rs:289:9:289:15 | p.snd() | | main.rs:288:20:288:21 | V2 | +| main.rs:292:54:292:54 | p | | main.rs:175:5:179:5 | MyPair | +| main.rs:292:54:292:54 | p | P1 | main.rs:292:20:292:21 | V0 | +| main.rs:292:54:292:54 | p | P2 | main.rs:292:32:292:51 | P | +| main.rs:292:78:294:5 | { ... } | | main.rs:292:24:292:25 | V1 | +| main.rs:293:9:293:9 | p | | main.rs:175:5:179:5 | MyPair | +| main.rs:293:9:293:9 | p | P1 | main.rs:292:20:292:21 | V0 | +| main.rs:293:9:293:9 | p | P2 | main.rs:292:32:292:51 | P | +| main.rs:293:9:293:12 | p.p2 | | main.rs:292:32:292:51 | P | +| main.rs:293:9:293:18 | ... .fst() | | main.rs:292:24:292:25 | V1 | +| main.rs:298:23:298:26 | SelfParam | | main.rs:296:5:299:5 | Self [trait ConvertTo] | +| main.rs:303:23:303:26 | SelfParam | | main.rs:301:10:301:23 | T | +| main.rs:303:35:305:9 | { ... } | | main.rs:181:5:182:14 | S1 | +| main.rs:304:13:304:16 | self | | main.rs:301:10:301:23 | T | +| main.rs:304:13:304:21 | self.m1() | | main.rs:181:5:182:14 | S1 | +| main.rs:308:41:308:45 | thing | | main.rs:308:23:308:38 | T | +| main.rs:308:57:310:5 | { ... } | | main.rs:308:19:308:20 | TS | +| main.rs:309:9:309:13 | thing | | main.rs:308:23:308:38 | T | +| main.rs:309:9:309:26 | thing.convert_to() | | main.rs:308:19:308:20 | TS | +| main.rs:312:56:312:60 | thing | | main.rs:312:39:312:53 | TP | +| main.rs:312:73:315:5 | { ... } | | main.rs:181:5:182:14 | S1 | +| main.rs:314:9:314:13 | thing | | main.rs:312:39:312:53 | TP | +| main.rs:314:9:314:26 | thing.convert_to() | | main.rs:181:5:182:14 | S1 | +| main.rs:318:13:318:20 | thing_s1 | | main.rs:170:5:173:5 | MyThing | +| main.rs:318:13:318:20 | thing_s1 | A | main.rs:181:5:182:14 | S1 | +| main.rs:318:24:318:40 | MyThing {...} | | main.rs:170:5:173:5 | MyThing | +| main.rs:318:24:318:40 | MyThing {...} | A | main.rs:181:5:182:14 | S1 | +| main.rs:318:37:318:38 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:319:13:319:20 | thing_s2 | | main.rs:170:5:173:5 | MyThing | +| main.rs:319:13:319:20 | thing_s2 | A | main.rs:183:5:184:14 | S2 | +| main.rs:319:24:319:40 | MyThing {...} | | main.rs:170:5:173:5 | MyThing | +| main.rs:319:24:319:40 | MyThing {...} | A | main.rs:183:5:184:14 | S2 | +| main.rs:319:37:319:38 | S2 | | main.rs:183:5:184:14 | S2 | +| main.rs:320:13:320:20 | thing_s3 | | main.rs:170:5:173:5 | MyThing | +| main.rs:320:13:320:20 | thing_s3 | A | main.rs:185:5:186:14 | S3 | +| main.rs:320:24:320:40 | MyThing {...} | | main.rs:170:5:173:5 | MyThing | +| main.rs:320:24:320:40 | MyThing {...} | A | main.rs:185:5:186:14 | S3 | +| main.rs:320:37:320:38 | S3 | | main.rs:185:5:186:14 | S3 | +| main.rs:324:18:324:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:324:26:324:33 | thing_s1 | | main.rs:170:5:173:5 | MyThing | +| main.rs:324:26:324:33 | thing_s1 | A | main.rs:181:5:182:14 | S1 | +| main.rs:324:26:324:38 | thing_s1.m1() | | main.rs:181:5:182:14 | S1 | +| main.rs:325:18:325:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:325:26:325:33 | thing_s2 | | main.rs:170:5:173:5 | MyThing | +| main.rs:325:26:325:33 | thing_s2 | A | main.rs:183:5:184:14 | S2 | +| main.rs:325:26:325:38 | thing_s2.m1() | | main.rs:170:5:173:5 | MyThing | +| main.rs:325:26:325:38 | thing_s2.m1() | A | main.rs:183:5:184:14 | S2 | +| main.rs:325:26:325:40 | ... .a | | main.rs:183:5:184:14 | S2 | +| main.rs:326:13:326:14 | s3 | | main.rs:185:5:186:14 | S3 | +| main.rs:326:22:326:29 | thing_s3 | | main.rs:170:5:173:5 | MyThing | +| main.rs:326:22:326:29 | thing_s3 | A | main.rs:185:5:186:14 | S3 | +| main.rs:326:22:326:34 | thing_s3.m1() | | main.rs:185:5:186:14 | S3 | +| main.rs:327:18:327:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:327:26:327:27 | s3 | | main.rs:185:5:186:14 | S3 | +| main.rs:329:13:329:14 | p1 | | main.rs:175:5:179:5 | MyPair | +| main.rs:329:13:329:14 | p1 | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:329:13:329:14 | p1 | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:329:18:329:42 | MyPair {...} | | main.rs:175:5:179:5 | MyPair | +| main.rs:329:18:329:42 | MyPair {...} | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:329:18:329:42 | MyPair {...} | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:329:31:329:32 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:329:39:329:40 | S1 | | main.rs:181:5:182:14 | S1 | | main.rs:330:18:330:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:330:26:330:26 | y | | main.rs:157:5:158:14 | S2 | -| main.rs:334:13:334:13 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:334:17:334:39 | call_trait_m1(...) | | main.rs:155:5:156:14 | S1 | -| main.rs:334:31:334:38 | thing_s1 | | main.rs:144:5:147:5 | MyThing | -| main.rs:334:31:334:38 | thing_s1 | A | main.rs:155:5:156:14 | S1 | -| main.rs:335:18:335:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:335:26:335:26 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:336:13:336:13 | y | | main.rs:144:5:147:5 | MyThing | -| main.rs:336:13:336:13 | y | A | main.rs:157:5:158:14 | S2 | -| main.rs:336:17:336:39 | call_trait_m1(...) | | main.rs:144:5:147:5 | MyThing | -| main.rs:336:17:336:39 | call_trait_m1(...) | A | main.rs:157:5:158:14 | S2 | -| main.rs:336:31:336:38 | thing_s2 | | main.rs:144:5:147:5 | MyThing | -| main.rs:336:31:336:38 | thing_s2 | A | main.rs:157:5:158:14 | S2 | -| main.rs:337:18:337:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:337:26:337:26 | y | | main.rs:144:5:147:5 | MyThing | -| main.rs:337:26:337:26 | y | A | main.rs:157:5:158:14 | S2 | -| main.rs:337:26:337:28 | y.a | | main.rs:157:5:158:14 | S2 | -| main.rs:340:13:340:13 | a | | main.rs:149:5:153:5 | MyPair | -| main.rs:340:13:340:13 | a | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:340:13:340:13 | a | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:340:17:340:41 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | -| main.rs:340:17:340:41 | MyPair {...} | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:340:17:340:41 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:340:30:340:31 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:340:38:340:39 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:341:13:341:13 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:341:17:341:26 | get_fst(...) | | main.rs:155:5:156:14 | S1 | -| main.rs:341:25:341:25 | a | | main.rs:149:5:153:5 | MyPair | -| main.rs:341:25:341:25 | a | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:341:25:341:25 | a | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:342:18:342:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:342:26:342:26 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:343:13:343:13 | y | | main.rs:155:5:156:14 | S1 | -| main.rs:343:17:343:26 | get_snd(...) | | main.rs:155:5:156:14 | S1 | -| main.rs:343:25:343:25 | a | | main.rs:149:5:153:5 | MyPair | -| main.rs:343:25:343:25 | a | P1 | main.rs:155:5:156:14 | S1 | -| main.rs:343:25:343:25 | a | P2 | main.rs:155:5:156:14 | S1 | +| main.rs:330:26:330:27 | p1 | | main.rs:175:5:179:5 | MyPair | +| main.rs:330:26:330:27 | p1 | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:330:26:330:27 | p1 | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:330:26:330:32 | p1.m1() | | main.rs:181:5:182:14 | S1 | +| main.rs:332:13:332:14 | p2 | | main.rs:175:5:179:5 | MyPair | +| main.rs:332:13:332:14 | p2 | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:332:13:332:14 | p2 | P2 | main.rs:183:5:184:14 | S2 | +| main.rs:332:18:332:42 | MyPair {...} | | main.rs:175:5:179:5 | MyPair | +| main.rs:332:18:332:42 | MyPair {...} | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:332:18:332:42 | MyPair {...} | P2 | main.rs:183:5:184:14 | S2 | +| main.rs:332:31:332:32 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:332:39:332:40 | S2 | | main.rs:183:5:184:14 | S2 | +| main.rs:333:18:333:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:333:26:333:27 | p2 | | main.rs:175:5:179:5 | MyPair | +| main.rs:333:26:333:27 | p2 | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:333:26:333:27 | p2 | P2 | main.rs:183:5:184:14 | S2 | +| main.rs:333:26:333:32 | p2.m1() | | main.rs:185:5:186:14 | S3 | +| main.rs:335:13:335:14 | p3 | | main.rs:175:5:179:5 | MyPair | +| main.rs:335:13:335:14 | p3 | P1 | main.rs:170:5:173:5 | MyThing | +| main.rs:335:13:335:14 | p3 | P1.A | main.rs:181:5:182:14 | S1 | +| main.rs:335:13:335:14 | p3 | P2 | main.rs:185:5:186:14 | S3 | +| main.rs:335:18:338:9 | MyPair {...} | | main.rs:175:5:179:5 | MyPair | +| main.rs:335:18:338:9 | MyPair {...} | P1 | main.rs:170:5:173:5 | MyThing | +| main.rs:335:18:338:9 | MyPair {...} | P1.A | main.rs:181:5:182:14 | S1 | +| main.rs:335:18:338:9 | MyPair {...} | P2 | main.rs:185:5:186:14 | S3 | +| main.rs:336:17:336:33 | MyThing {...} | | main.rs:170:5:173:5 | MyThing | +| main.rs:336:17:336:33 | MyThing {...} | A | main.rs:181:5:182:14 | S1 | +| main.rs:336:30:336:31 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:337:17:337:18 | S3 | | main.rs:185:5:186:14 | S3 | +| main.rs:339:18:339:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:339:26:339:27 | p3 | | main.rs:175:5:179:5 | MyPair | +| main.rs:339:26:339:27 | p3 | P1 | main.rs:170:5:173:5 | MyThing | +| main.rs:339:26:339:27 | p3 | P1.A | main.rs:181:5:182:14 | S1 | +| main.rs:339:26:339:27 | p3 | P2 | main.rs:185:5:186:14 | S3 | +| main.rs:339:26:339:32 | p3.m1() | | main.rs:181:5:182:14 | S1 | +| main.rs:342:13:342:13 | a | | main.rs:175:5:179:5 | MyPair | +| main.rs:342:13:342:13 | a | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:342:13:342:13 | a | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:342:17:342:41 | MyPair {...} | | main.rs:175:5:179:5 | MyPair | +| main.rs:342:17:342:41 | MyPair {...} | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:342:17:342:41 | MyPair {...} | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:342:30:342:31 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:342:38:342:39 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:343:13:343:13 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:343:17:343:17 | a | | main.rs:175:5:179:5 | MyPair | +| main.rs:343:17:343:17 | a | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:343:17:343:17 | a | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:343:17:343:23 | a.fst() | | main.rs:181:5:182:14 | S1 | | main.rs:344:18:344:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:344:26:344:26 | y | | main.rs:155:5:156:14 | S1 | -| main.rs:347:13:347:13 | b | | main.rs:149:5:153:5 | MyPair | -| main.rs:347:13:347:13 | b | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:347:13:347:13 | b | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:347:17:347:41 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | -| main.rs:347:17:347:41 | MyPair {...} | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:347:17:347:41 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:347:30:347:31 | S2 | | main.rs:157:5:158:14 | S2 | -| main.rs:347:38:347:39 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:348:13:348:13 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:348:17:348:26 | get_fst(...) | | main.rs:155:5:156:14 | S1 | -| main.rs:348:25:348:25 | b | | main.rs:149:5:153:5 | MyPair | -| main.rs:348:25:348:25 | b | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:348:25:348:25 | b | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:349:18:349:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:349:26:349:26 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:350:13:350:13 | y | | main.rs:157:5:158:14 | S2 | -| main.rs:350:17:350:26 | get_snd(...) | | main.rs:157:5:158:14 | S2 | -| main.rs:350:25:350:25 | b | | main.rs:149:5:153:5 | MyPair | -| main.rs:350:25:350:25 | b | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:350:25:350:25 | b | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:351:18:351:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:351:26:351:26 | y | | main.rs:157:5:158:14 | S2 | -| main.rs:353:13:353:13 | c | | main.rs:149:5:153:5 | MyPair | -| main.rs:353:13:353:13 | c | P1 | main.rs:159:5:160:14 | S3 | -| main.rs:353:13:353:13 | c | P2 | main.rs:149:5:153:5 | MyPair | -| main.rs:353:13:353:13 | c | P2.P1 | main.rs:157:5:158:14 | S2 | -| main.rs:353:13:353:13 | c | P2.P2 | main.rs:155:5:156:14 | S1 | -| main.rs:353:17:356:9 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | -| main.rs:353:17:356:9 | MyPair {...} | P1 | main.rs:159:5:160:14 | S3 | -| main.rs:353:17:356:9 | MyPair {...} | P2 | main.rs:149:5:153:5 | MyPair | -| main.rs:353:17:356:9 | MyPair {...} | P2.P1 | main.rs:157:5:158:14 | S2 | -| main.rs:353:17:356:9 | MyPair {...} | P2.P2 | main.rs:155:5:156:14 | S1 | -| main.rs:354:17:354:18 | S3 | | main.rs:159:5:160:14 | S3 | -| main.rs:355:17:355:41 | MyPair {...} | | main.rs:149:5:153:5 | MyPair | -| main.rs:355:17:355:41 | MyPair {...} | P1 | main.rs:157:5:158:14 | S2 | -| main.rs:355:17:355:41 | MyPair {...} | P2 | main.rs:155:5:156:14 | S1 | -| main.rs:355:30:355:31 | S2 | | main.rs:157:5:158:14 | S2 | -| main.rs:355:38:355:39 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:357:13:357:13 | x | | main.rs:155:5:156:14 | S1 | -| main.rs:357:17:357:30 | get_snd_fst(...) | | main.rs:155:5:156:14 | S1 | -| main.rs:357:29:357:29 | c | | main.rs:149:5:153:5 | MyPair | -| main.rs:357:29:357:29 | c | P1 | main.rs:159:5:160:14 | S3 | -| main.rs:357:29:357:29 | c | P2 | main.rs:149:5:153:5 | MyPair | -| main.rs:357:29:357:29 | c | P2.P1 | main.rs:157:5:158:14 | S2 | -| main.rs:357:29:357:29 | c | P2.P2 | main.rs:155:5:156:14 | S1 | -| main.rs:359:13:359:17 | thing | | main.rs:144:5:147:5 | MyThing | -| main.rs:359:13:359:17 | thing | A | main.rs:155:5:156:14 | S1 | -| main.rs:359:21:359:37 | MyThing {...} | | main.rs:144:5:147:5 | MyThing | -| main.rs:359:21:359:37 | MyThing {...} | A | main.rs:155:5:156:14 | S1 | -| main.rs:359:34:359:35 | S1 | | main.rs:155:5:156:14 | S1 | -| main.rs:360:17:360:21 | thing | | main.rs:144:5:147:5 | MyThing | -| main.rs:360:17:360:21 | thing | A | main.rs:155:5:156:14 | S1 | -| main.rs:361:13:361:13 | j | | main.rs:155:5:156:14 | S1 | -| main.rs:361:17:361:33 | convert_to(...) | | main.rs:155:5:156:14 | S1 | -| main.rs:361:28:361:32 | thing | | main.rs:144:5:147:5 | MyThing | -| main.rs:361:28:361:32 | thing | A | main.rs:155:5:156:14 | S1 | -| main.rs:370:26:370:29 | SelfParam | | main.rs:369:5:373:5 | Self [trait OverlappingTrait] | -| main.rs:372:28:372:31 | SelfParam | | main.rs:369:5:373:5 | Self [trait OverlappingTrait] | -| main.rs:372:34:372:35 | s1 | | main.rs:366:5:367:14 | S1 | -| main.rs:377:26:377:29 | SelfParam | | main.rs:366:5:367:14 | S1 | -| main.rs:377:38:379:9 | { ... } | | main.rs:366:5:367:14 | S1 | -| main.rs:378:20:378:31 | "not called" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:382:28:382:31 | SelfParam | | main.rs:366:5:367:14 | S1 | -| main.rs:382:34:382:35 | s1 | | main.rs:366:5:367:14 | S1 | -| main.rs:382:48:384:9 | { ... } | | main.rs:366:5:367:14 | S1 | -| main.rs:383:20:383:31 | "not called" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:389:26:389:29 | SelfParam | | main.rs:366:5:367:14 | S1 | -| main.rs:389:38:391:9 | { ... } | | main.rs:366:5:367:14 | S1 | -| main.rs:390:13:390:16 | self | | main.rs:366:5:367:14 | S1 | -| main.rs:394:28:394:31 | SelfParam | | main.rs:366:5:367:14 | S1 | -| main.rs:394:40:396:9 | { ... } | | main.rs:366:5:367:14 | S1 | -| main.rs:395:13:395:16 | self | | main.rs:366:5:367:14 | S1 | -| main.rs:400:13:400:13 | x | | main.rs:366:5:367:14 | S1 | -| main.rs:400:17:400:18 | S1 | | main.rs:366:5:367:14 | S1 | -| main.rs:401:18:401:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:401:26:401:26 | x | | main.rs:366:5:367:14 | S1 | -| main.rs:401:26:401:42 | x.common_method() | | main.rs:366:5:367:14 | S1 | -| main.rs:402:18:402:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:402:26:402:26 | x | | main.rs:366:5:367:14 | S1 | -| main.rs:402:26:402:44 | x.common_method_2() | | main.rs:366:5:367:14 | S1 | -| main.rs:419:19:419:22 | SelfParam | | main.rs:417:5:420:5 | Self [trait FirstTrait] | -| main.rs:424:19:424:22 | SelfParam | | main.rs:422:5:425:5 | Self [trait SecondTrait] | -| main.rs:427:64:427:64 | x | | main.rs:427:45:427:61 | T | -| main.rs:429:13:429:14 | s1 | | main.rs:427:35:427:42 | I | -| main.rs:429:18:429:18 | x | | main.rs:427:45:427:61 | T | -| main.rs:429:18:429:27 | x.method() | | main.rs:427:35:427:42 | I | -| main.rs:430:18:430:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:430:26:430:27 | s1 | | main.rs:427:35:427:42 | I | -| main.rs:433:65:433:65 | x | | main.rs:433:46:433:62 | T | -| main.rs:435:13:435:14 | s2 | | main.rs:433:36:433:43 | I | -| main.rs:435:18:435:18 | x | | main.rs:433:46:433:62 | T | -| main.rs:435:18:435:27 | x.method() | | main.rs:433:36:433:43 | I | -| main.rs:436:18:436:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:436:26:436:27 | s2 | | main.rs:433:36:433:43 | I | -| main.rs:439:49:439:49 | x | | main.rs:439:30:439:46 | T | -| main.rs:440:13:440:13 | s | | main.rs:409:5:410:14 | S1 | -| main.rs:440:17:440:17 | x | | main.rs:439:30:439:46 | T | -| main.rs:440:17:440:26 | x.method() | | main.rs:409:5:410:14 | S1 | -| main.rs:441:18:441:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:441:26:441:26 | s | | main.rs:409:5:410:14 | S1 | -| main.rs:444:53:444:53 | x | | main.rs:444:34:444:50 | T | -| main.rs:445:13:445:13 | s | | main.rs:409:5:410:14 | S1 | -| main.rs:445:17:445:17 | x | | main.rs:444:34:444:50 | T | -| main.rs:445:17:445:26 | x.method() | | main.rs:409:5:410:14 | S1 | -| main.rs:446:18:446:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:446:26:446:26 | s | | main.rs:409:5:410:14 | S1 | -| main.rs:450:16:450:19 | SelfParam | | main.rs:449:5:453:5 | Self [trait Pair] | -| main.rs:452:16:452:19 | SelfParam | | main.rs:449:5:453:5 | Self [trait Pair] | -| main.rs:455:58:455:58 | x | | main.rs:455:41:455:55 | T | -| main.rs:455:64:455:64 | y | | main.rs:455:41:455:55 | T | -| main.rs:457:13:457:14 | s1 | | main.rs:409:5:410:14 | S1 | -| main.rs:457:18:457:18 | x | | main.rs:455:41:455:55 | T | -| main.rs:457:18:457:24 | x.fst() | | main.rs:409:5:410:14 | S1 | -| main.rs:458:13:458:14 | s2 | | main.rs:412:5:413:14 | S2 | -| main.rs:458:18:458:18 | y | | main.rs:455:41:455:55 | T | -| main.rs:458:18:458:24 | y.snd() | | main.rs:412:5:413:14 | S2 | -| main.rs:459:18:459:29 | "{:?}, {:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:459:32:459:33 | s1 | | main.rs:409:5:410:14 | S1 | -| main.rs:459:36:459:37 | s2 | | main.rs:412:5:413:14 | S2 | -| main.rs:462:69:462:69 | x | | main.rs:462:52:462:66 | T | -| main.rs:462:75:462:75 | y | | main.rs:462:52:462:66 | T | -| main.rs:464:13:464:14 | s1 | | main.rs:409:5:410:14 | S1 | -| main.rs:464:18:464:18 | x | | main.rs:462:52:462:66 | T | -| main.rs:464:18:464:24 | x.fst() | | main.rs:409:5:410:14 | S1 | -| main.rs:465:13:465:14 | s2 | | main.rs:462:41:462:49 | T2 | -| main.rs:465:18:465:18 | y | | main.rs:462:52:462:66 | T | -| main.rs:465:18:465:24 | y.snd() | | main.rs:462:41:462:49 | T2 | -| main.rs:466:18:466:29 | "{:?}, {:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:466:32:466:33 | s1 | | main.rs:409:5:410:14 | S1 | -| main.rs:466:36:466:37 | s2 | | main.rs:462:41:462:49 | T2 | -| main.rs:482:15:482:18 | SelfParam | | main.rs:481:5:490:5 | Self [trait MyTrait] | -| main.rs:484:15:484:18 | SelfParam | | main.rs:481:5:490:5 | Self [trait MyTrait] | -| main.rs:487:9:489:9 | { ... } | | main.rs:481:19:481:19 | A | -| main.rs:488:13:488:16 | self | | main.rs:481:5:490:5 | Self [trait MyTrait] | -| main.rs:488:13:488:21 | self.m1() | | main.rs:481:19:481:19 | A | -| main.rs:493:43:493:43 | x | | main.rs:493:26:493:40 | T2 | -| main.rs:493:56:495:5 | { ... } | | main.rs:493:22:493:23 | T1 | -| main.rs:494:9:494:9 | x | | main.rs:493:26:493:40 | T2 | -| main.rs:494:9:494:14 | x.m1() | | main.rs:493:22:493:23 | T1 | -| main.rs:498:49:498:49 | x | | main.rs:471:5:474:5 | MyThing | -| main.rs:498:49:498:49 | x | T | main.rs:498:32:498:46 | T2 | -| main.rs:498:71:500:5 | { ... } | | main.rs:498:28:498:29 | T1 | -| main.rs:499:9:499:9 | x | | main.rs:471:5:474:5 | MyThing | -| main.rs:499:9:499:9 | x | T | main.rs:498:32:498:46 | T2 | -| main.rs:499:9:499:11 | x.a | | main.rs:498:32:498:46 | T2 | -| main.rs:499:9:499:16 | ... .m1() | | main.rs:498:28:498:29 | T1 | -| main.rs:503:15:503:18 | SelfParam | | main.rs:471:5:474:5 | MyThing | -| main.rs:503:15:503:18 | SelfParam | T | main.rs:502:10:502:10 | T | -| main.rs:503:26:505:9 | { ... } | | main.rs:502:10:502:10 | T | -| main.rs:504:13:504:16 | self | | main.rs:471:5:474:5 | MyThing | -| main.rs:504:13:504:16 | self | T | main.rs:502:10:502:10 | T | -| main.rs:504:13:504:18 | self.a | | main.rs:502:10:502:10 | T | -| main.rs:509:13:509:13 | x | | main.rs:471:5:474:5 | MyThing | -| main.rs:509:13:509:13 | x | T | main.rs:476:5:477:14 | S1 | -| main.rs:509:17:509:33 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | -| main.rs:509:17:509:33 | MyThing {...} | T | main.rs:476:5:477:14 | S1 | -| main.rs:509:30:509:31 | S1 | | main.rs:476:5:477:14 | S1 | -| main.rs:510:13:510:13 | y | | main.rs:471:5:474:5 | MyThing | -| main.rs:510:13:510:13 | y | T | main.rs:478:5:479:14 | S2 | -| main.rs:510:17:510:33 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | -| main.rs:510:17:510:33 | MyThing {...} | T | main.rs:478:5:479:14 | S2 | -| main.rs:510:30:510:31 | S2 | | main.rs:478:5:479:14 | S2 | -| main.rs:512:18:512:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:512:26:512:26 | x | | main.rs:471:5:474:5 | MyThing | -| main.rs:512:26:512:26 | x | T | main.rs:476:5:477:14 | S1 | -| main.rs:512:26:512:31 | x.m1() | | main.rs:476:5:477:14 | S1 | -| main.rs:513:18:513:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:513:26:513:26 | y | | main.rs:471:5:474:5 | MyThing | -| main.rs:513:26:513:26 | y | T | main.rs:478:5:479:14 | S2 | -| main.rs:513:26:513:31 | y.m1() | | main.rs:478:5:479:14 | S2 | -| main.rs:515:13:515:13 | x | | main.rs:471:5:474:5 | MyThing | -| main.rs:515:13:515:13 | x | T | main.rs:476:5:477:14 | S1 | -| main.rs:515:17:515:33 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | -| main.rs:515:17:515:33 | MyThing {...} | T | main.rs:476:5:477:14 | S1 | -| main.rs:515:30:515:31 | S1 | | main.rs:476:5:477:14 | S1 | -| main.rs:516:13:516:13 | y | | main.rs:471:5:474:5 | MyThing | -| main.rs:516:13:516:13 | y | T | main.rs:478:5:479:14 | S2 | -| main.rs:516:17:516:33 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | -| main.rs:516:17:516:33 | MyThing {...} | T | main.rs:478:5:479:14 | S2 | -| main.rs:516:30:516:31 | S2 | | main.rs:478:5:479:14 | S2 | -| main.rs:518:18:518:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:518:26:518:26 | x | | main.rs:471:5:474:5 | MyThing | -| main.rs:518:26:518:26 | x | T | main.rs:476:5:477:14 | S1 | -| main.rs:518:26:518:31 | x.m2() | | main.rs:476:5:477:14 | S1 | -| main.rs:519:18:519:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:519:26:519:26 | y | | main.rs:471:5:474:5 | MyThing | -| main.rs:519:26:519:26 | y | T | main.rs:478:5:479:14 | S2 | -| main.rs:519:26:519:31 | y.m2() | | main.rs:478:5:479:14 | S2 | -| main.rs:521:13:521:14 | x2 | | main.rs:471:5:474:5 | MyThing | -| main.rs:521:13:521:14 | x2 | T | main.rs:476:5:477:14 | S1 | -| main.rs:521:18:521:34 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | -| main.rs:521:18:521:34 | MyThing {...} | T | main.rs:476:5:477:14 | S1 | -| main.rs:521:31:521:32 | S1 | | main.rs:476:5:477:14 | S1 | -| main.rs:522:13:522:14 | y2 | | main.rs:471:5:474:5 | MyThing | -| main.rs:522:13:522:14 | y2 | T | main.rs:478:5:479:14 | S2 | -| main.rs:522:18:522:34 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | -| main.rs:522:18:522:34 | MyThing {...} | T | main.rs:478:5:479:14 | S2 | -| main.rs:522:31:522:32 | S2 | | main.rs:478:5:479:14 | S2 | -| main.rs:524:18:524:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:524:26:524:42 | call_trait_m1(...) | | main.rs:476:5:477:14 | S1 | -| main.rs:524:40:524:41 | x2 | | main.rs:471:5:474:5 | MyThing | -| main.rs:524:40:524:41 | x2 | T | main.rs:476:5:477:14 | S1 | -| main.rs:525:18:525:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:525:26:525:42 | call_trait_m1(...) | | main.rs:478:5:479:14 | S2 | -| main.rs:525:40:525:41 | y2 | | main.rs:471:5:474:5 | MyThing | -| main.rs:525:40:525:41 | y2 | T | main.rs:478:5:479:14 | S2 | -| main.rs:527:13:527:14 | x3 | | main.rs:471:5:474:5 | MyThing | -| main.rs:527:13:527:14 | x3 | T | main.rs:471:5:474:5 | MyThing | -| main.rs:527:13:527:14 | x3 | T.T | main.rs:476:5:477:14 | S1 | -| main.rs:527:18:529:9 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | -| main.rs:527:18:529:9 | MyThing {...} | T | main.rs:471:5:474:5 | MyThing | -| main.rs:527:18:529:9 | MyThing {...} | T.T | main.rs:476:5:477:14 | S1 | -| main.rs:528:16:528:32 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | -| main.rs:528:16:528:32 | MyThing {...} | T | main.rs:476:5:477:14 | S1 | -| main.rs:528:29:528:30 | S1 | | main.rs:476:5:477:14 | S1 | -| main.rs:530:13:530:14 | y3 | | main.rs:471:5:474:5 | MyThing | -| main.rs:530:13:530:14 | y3 | T | main.rs:471:5:474:5 | MyThing | -| main.rs:530:13:530:14 | y3 | T.T | main.rs:478:5:479:14 | S2 | -| main.rs:530:18:532:9 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | -| main.rs:530:18:532:9 | MyThing {...} | T | main.rs:471:5:474:5 | MyThing | -| main.rs:530:18:532:9 | MyThing {...} | T.T | main.rs:478:5:479:14 | S2 | -| main.rs:531:16:531:32 | MyThing {...} | | main.rs:471:5:474:5 | MyThing | -| main.rs:531:16:531:32 | MyThing {...} | T | main.rs:478:5:479:14 | S2 | -| main.rs:531:29:531:30 | S2 | | main.rs:478:5:479:14 | S2 | -| main.rs:534:13:534:13 | a | | main.rs:476:5:477:14 | S1 | -| main.rs:534:17:534:39 | call_trait_thing_m1(...) | | main.rs:476:5:477:14 | S1 | -| main.rs:534:37:534:38 | x3 | | main.rs:471:5:474:5 | MyThing | -| main.rs:534:37:534:38 | x3 | T | main.rs:471:5:474:5 | MyThing | -| main.rs:534:37:534:38 | x3 | T.T | main.rs:476:5:477:14 | S1 | -| main.rs:535:18:535:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:535:26:535:26 | a | | main.rs:476:5:477:14 | S1 | -| main.rs:536:13:536:13 | b | | main.rs:478:5:479:14 | S2 | -| main.rs:536:17:536:39 | call_trait_thing_m1(...) | | main.rs:478:5:479:14 | S2 | -| main.rs:536:37:536:38 | y3 | | main.rs:471:5:474:5 | MyThing | -| main.rs:536:37:536:38 | y3 | T | main.rs:471:5:474:5 | MyThing | -| main.rs:536:37:536:38 | y3 | T.T | main.rs:478:5:479:14 | S2 | -| main.rs:537:18:537:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:537:26:537:26 | b | | main.rs:478:5:479:14 | S2 | -| main.rs:548:19:548:22 | SelfParam | | main.rs:542:5:545:5 | Wrapper | -| main.rs:548:19:548:22 | SelfParam | A | main.rs:547:10:547:10 | A | -| main.rs:548:30:550:9 | { ... } | | main.rs:547:10:547:10 | A | -| main.rs:549:13:549:16 | self | | main.rs:542:5:545:5 | Wrapper | -| main.rs:549:13:549:16 | self | A | main.rs:547:10:547:10 | A | -| main.rs:549:13:549:22 | self.field | | main.rs:547:10:547:10 | A | -| main.rs:557:15:557:18 | SelfParam | | main.rs:553:5:567:5 | Self [trait MyTrait] | -| main.rs:559:15:559:18 | SelfParam | | main.rs:553:5:567:5 | Self [trait MyTrait] | -| main.rs:563:9:566:9 | { ... } | | main.rs:554:9:554:28 | AssociatedType | -| main.rs:564:13:564:16 | self | | main.rs:553:5:567:5 | Self [trait MyTrait] | -| main.rs:564:13:564:21 | self.m1() | | main.rs:554:9:554:28 | AssociatedType | -| main.rs:565:13:565:43 | ...::default(...) | | main.rs:554:9:554:28 | AssociatedType | -| main.rs:573:19:573:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:573:19:573:23 | SelfParam | &T | main.rs:569:5:579:5 | Self [trait MyTraitAssoc2] | -| main.rs:573:26:573:26 | a | | main.rs:573:16:573:16 | A | -| main.rs:575:22:575:26 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:575:22:575:26 | SelfParam | &T | main.rs:569:5:579:5 | Self [trait MyTraitAssoc2] | -| main.rs:575:29:575:29 | a | | main.rs:575:19:575:19 | A | -| main.rs:575:35:575:35 | b | | main.rs:575:19:575:19 | A | -| main.rs:575:75:578:9 | { ... } | | main.rs:570:9:570:52 | GenericAssociatedType | -| main.rs:576:13:576:16 | self | | file://:0:0:0:0 | & | -| main.rs:576:13:576:16 | self | &T | main.rs:569:5:579:5 | Self [trait MyTraitAssoc2] | -| main.rs:576:13:576:23 | self.put(...) | | main.rs:570:9:570:52 | GenericAssociatedType | -| main.rs:576:22:576:22 | a | | main.rs:575:19:575:19 | A | -| main.rs:577:13:577:16 | self | | file://:0:0:0:0 | & | -| main.rs:577:13:577:16 | self | &T | main.rs:569:5:579:5 | Self [trait MyTraitAssoc2] | -| main.rs:577:13:577:23 | self.put(...) | | main.rs:570:9:570:52 | GenericAssociatedType | -| main.rs:577:22:577:22 | b | | main.rs:575:19:575:19 | A | -| main.rs:586:21:586:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:586:21:586:25 | SelfParam | &T | main.rs:581:5:591:5 | Self [trait TraitMultipleAssoc] | -| main.rs:588:20:588:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:588:20:588:24 | SelfParam | &T | main.rs:581:5:591:5 | Self [trait TraitMultipleAssoc] | -| main.rs:590:20:590:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:590:20:590:24 | SelfParam | &T | main.rs:581:5:591:5 | Self [trait TraitMultipleAssoc] | -| main.rs:606:15:606:18 | SelfParam | | main.rs:593:5:594:13 | S | -| main.rs:606:45:608:9 | { ... } | | main.rs:599:5:600:14 | AT | -| main.rs:607:13:607:14 | AT | | main.rs:599:5:600:14 | AT | -| main.rs:616:19:616:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:616:19:616:23 | SelfParam | &T | main.rs:593:5:594:13 | S | -| main.rs:616:26:616:26 | a | | main.rs:616:16:616:16 | A | -| main.rs:616:46:618:9 | { ... } | | main.rs:542:5:545:5 | Wrapper | -| main.rs:616:46:618:9 | { ... } | A | main.rs:616:16:616:16 | A | -| main.rs:617:13:617:32 | Wrapper {...} | | main.rs:542:5:545:5 | Wrapper | -| main.rs:617:13:617:32 | Wrapper {...} | A | main.rs:616:16:616:16 | A | -| main.rs:617:30:617:30 | a | | main.rs:616:16:616:16 | A | -| main.rs:625:15:625:18 | SelfParam | | main.rs:596:5:597:14 | S2 | -| main.rs:625:45:627:9 | { ... } | | main.rs:542:5:545:5 | Wrapper | -| main.rs:625:45:627:9 | { ... } | A | main.rs:596:5:597:14 | S2 | -| main.rs:626:13:626:35 | Wrapper {...} | | main.rs:542:5:545:5 | Wrapper | -| main.rs:626:13:626:35 | Wrapper {...} | A | main.rs:596:5:597:14 | S2 | -| main.rs:626:30:626:33 | self | | main.rs:596:5:597:14 | S2 | -| main.rs:632:30:634:9 | { ... } | | main.rs:542:5:545:5 | Wrapper | -| main.rs:632:30:634:9 | { ... } | A | main.rs:596:5:597:14 | S2 | -| main.rs:633:13:633:33 | Wrapper {...} | | main.rs:542:5:545:5 | Wrapper | -| main.rs:633:13:633:33 | Wrapper {...} | A | main.rs:596:5:597:14 | S2 | -| main.rs:633:30:633:31 | S2 | | main.rs:596:5:597:14 | S2 | -| main.rs:638:22:638:26 | thing | | main.rs:638:10:638:19 | T | -| main.rs:639:9:639:13 | thing | | main.rs:638:10:638:19 | T | -| main.rs:646:21:646:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:646:21:646:25 | SelfParam | &T | main.rs:599:5:600:14 | AT | -| main.rs:646:34:648:9 | { ... } | | main.rs:599:5:600:14 | AT | -| main.rs:647:13:647:14 | AT | | main.rs:599:5:600:14 | AT | -| main.rs:650:20:650:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:650:20:650:24 | SelfParam | &T | main.rs:599:5:600:14 | AT | -| main.rs:650:43:652:9 | { ... } | | main.rs:593:5:594:13 | S | -| main.rs:651:13:651:13 | S | | main.rs:593:5:594:13 | S | -| main.rs:654:20:654:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:654:20:654:24 | SelfParam | &T | main.rs:599:5:600:14 | AT | -| main.rs:654:43:656:9 | { ... } | | main.rs:596:5:597:14 | S2 | -| main.rs:655:13:655:14 | S2 | | main.rs:596:5:597:14 | S2 | -| main.rs:660:13:660:14 | x1 | | main.rs:593:5:594:13 | S | -| main.rs:660:18:660:18 | S | | main.rs:593:5:594:13 | S | -| main.rs:662:18:662:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:662:26:662:27 | x1 | | main.rs:593:5:594:13 | S | -| main.rs:662:26:662:32 | x1.m1() | | main.rs:599:5:600:14 | AT | -| main.rs:664:13:664:14 | x2 | | main.rs:593:5:594:13 | S | -| main.rs:664:18:664:18 | S | | main.rs:593:5:594:13 | S | -| main.rs:666:13:666:13 | y | | main.rs:599:5:600:14 | AT | -| main.rs:666:17:666:18 | x2 | | main.rs:593:5:594:13 | S | -| main.rs:666:17:666:23 | x2.m2() | | main.rs:599:5:600:14 | AT | -| main.rs:667:18:667:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:667:26:667:26 | y | | main.rs:599:5:600:14 | AT | -| main.rs:669:13:669:14 | x3 | | main.rs:593:5:594:13 | S | -| main.rs:669:18:669:18 | S | | main.rs:593:5:594:13 | S | -| main.rs:671:18:671:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:671:26:671:27 | x3 | | main.rs:593:5:594:13 | S | -| main.rs:671:26:671:34 | x3.put(...) | | main.rs:542:5:545:5 | Wrapper | -| main.rs:671:26:671:34 | x3.put(...) | A | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:671:26:671:43 | ... .unwrap() | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:671:33:671:33 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:674:18:674:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:674:26:674:27 | x3 | | main.rs:593:5:594:13 | S | -| main.rs:674:36:674:36 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:674:39:674:39 | 3 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:676:20:676:20 | S | | main.rs:593:5:594:13 | S | -| main.rs:677:18:677:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:679:13:679:14 | x5 | | main.rs:596:5:597:14 | S2 | -| main.rs:679:18:679:19 | S2 | | main.rs:596:5:597:14 | S2 | -| main.rs:680:18:680:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:680:26:680:27 | x5 | | main.rs:596:5:597:14 | S2 | -| main.rs:680:26:680:32 | x5.m1() | | main.rs:542:5:545:5 | Wrapper | -| main.rs:680:26:680:32 | x5.m1() | A | main.rs:596:5:597:14 | S2 | -| main.rs:681:13:681:14 | x6 | | main.rs:596:5:597:14 | S2 | -| main.rs:681:18:681:19 | S2 | | main.rs:596:5:597:14 | S2 | -| main.rs:682:18:682:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:682:26:682:27 | x6 | | main.rs:596:5:597:14 | S2 | -| main.rs:682:26:682:32 | x6.m2() | | main.rs:542:5:545:5 | Wrapper | -| main.rs:682:26:682:32 | x6.m2() | A | main.rs:596:5:597:14 | S2 | -| main.rs:684:13:684:22 | assoc_zero | | main.rs:599:5:600:14 | AT | -| main.rs:684:26:684:27 | AT | | main.rs:599:5:600:14 | AT | -| main.rs:684:26:684:38 | AT.get_zero() | | main.rs:599:5:600:14 | AT | -| main.rs:685:13:685:21 | assoc_one | | main.rs:593:5:594:13 | S | -| main.rs:685:25:685:26 | AT | | main.rs:599:5:600:14 | AT | -| main.rs:685:25:685:36 | AT.get_one() | | main.rs:593:5:594:13 | S | -| main.rs:686:13:686:21 | assoc_two | | main.rs:596:5:597:14 | S2 | -| main.rs:686:25:686:26 | AT | | main.rs:599:5:600:14 | AT | -| main.rs:686:25:686:36 | AT.get_two() | | main.rs:596:5:597:14 | S2 | -| main.rs:703:15:703:18 | SelfParam | | main.rs:691:5:695:5 | MyEnum | -| main.rs:703:15:703:18 | SelfParam | A | main.rs:702:10:702:10 | T | -| main.rs:703:26:708:9 | { ... } | | main.rs:702:10:702:10 | T | -| main.rs:704:13:707:13 | match self { ... } | | main.rs:702:10:702:10 | T | -| main.rs:704:19:704:22 | self | | main.rs:691:5:695:5 | MyEnum | -| main.rs:704:19:704:22 | self | A | main.rs:702:10:702:10 | T | -| main.rs:705:28:705:28 | a | | main.rs:702:10:702:10 | T | -| main.rs:705:34:705:34 | a | | main.rs:702:10:702:10 | T | -| main.rs:706:30:706:30 | a | | main.rs:702:10:702:10 | T | -| main.rs:706:37:706:37 | a | | main.rs:702:10:702:10 | T | -| main.rs:712:13:712:13 | x | | main.rs:691:5:695:5 | MyEnum | -| main.rs:712:13:712:13 | x | A | main.rs:697:5:698:14 | S1 | -| main.rs:712:17:712:30 | ...::C1(...) | | main.rs:691:5:695:5 | MyEnum | -| main.rs:712:17:712:30 | ...::C1(...) | A | main.rs:697:5:698:14 | S1 | -| main.rs:712:28:712:29 | S1 | | main.rs:697:5:698:14 | S1 | -| main.rs:713:13:713:13 | y | | main.rs:691:5:695:5 | MyEnum | -| main.rs:713:13:713:13 | y | A | main.rs:699:5:700:14 | S2 | -| main.rs:713:17:713:36 | ...::C2 {...} | | main.rs:691:5:695:5 | MyEnum | -| main.rs:713:17:713:36 | ...::C2 {...} | A | main.rs:699:5:700:14 | S2 | -| main.rs:713:33:713:34 | S2 | | main.rs:699:5:700:14 | S2 | -| main.rs:715:18:715:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:715:26:715:26 | x | | main.rs:691:5:695:5 | MyEnum | -| main.rs:715:26:715:26 | x | A | main.rs:697:5:698:14 | S1 | -| main.rs:715:26:715:31 | x.m1() | | main.rs:697:5:698:14 | S1 | -| main.rs:716:18:716:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:716:26:716:26 | y | | main.rs:691:5:695:5 | MyEnum | -| main.rs:716:26:716:26 | y | A | main.rs:699:5:700:14 | S2 | -| main.rs:716:26:716:31 | y.m1() | | main.rs:699:5:700:14 | S2 | -| main.rs:738:15:738:18 | SelfParam | | main.rs:736:5:739:5 | Self [trait MyTrait1] | -| main.rs:742:15:742:18 | SelfParam | | main.rs:741:5:752:5 | Self [trait MyTrait2] | -| main.rs:745:9:751:9 | { ... } | | main.rs:741:20:741:22 | Tr2 | -| main.rs:746:13:750:13 | if ... {...} else {...} | | main.rs:741:20:741:22 | Tr2 | -| main.rs:746:16:746:16 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:746:20:746:20 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:746:24:746:24 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:746:26:748:13 | { ... } | | main.rs:741:20:741:22 | Tr2 | -| main.rs:747:17:747:20 | self | | main.rs:741:5:752:5 | Self [trait MyTrait2] | -| main.rs:747:17:747:25 | self.m1() | | main.rs:741:20:741:22 | Tr2 | -| main.rs:748:20:750:13 | { ... } | | main.rs:741:20:741:22 | Tr2 | -| main.rs:749:17:749:30 | ...::m1(...) | | main.rs:741:20:741:22 | Tr2 | -| main.rs:749:26:749:29 | self | | main.rs:741:5:752:5 | Self [trait MyTrait2] | -| main.rs:755:15:755:18 | SelfParam | | main.rs:754:5:765:5 | Self [trait MyTrait3] | -| main.rs:758:9:764:9 | { ... } | | main.rs:754:20:754:22 | Tr3 | -| main.rs:759:13:763:13 | if ... {...} else {...} | | main.rs:754:20:754:22 | Tr3 | -| main.rs:759:16:759:16 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:759:20:759:20 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:759:24:759:24 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:759:26:761:13 | { ... } | | main.rs:754:20:754:22 | Tr3 | -| main.rs:760:17:760:20 | self | | main.rs:754:5:765:5 | Self [trait MyTrait3] | -| main.rs:760:17:760:25 | self.m2() | | main.rs:721:5:724:5 | MyThing | -| main.rs:760:17:760:25 | self.m2() | A | main.rs:754:20:754:22 | Tr3 | -| main.rs:760:17:760:27 | ... .a | | main.rs:754:20:754:22 | Tr3 | -| main.rs:761:20:763:13 | { ... } | | main.rs:754:20:754:22 | Tr3 | -| main.rs:762:17:762:30 | ...::m2(...) | | main.rs:721:5:724:5 | MyThing | -| main.rs:762:17:762:30 | ...::m2(...) | A | main.rs:754:20:754:22 | Tr3 | -| main.rs:762:17:762:32 | ... .a | | main.rs:754:20:754:22 | Tr3 | -| main.rs:762:26:762:29 | self | | main.rs:754:5:765:5 | Self [trait MyTrait3] | -| main.rs:769:15:769:18 | SelfParam | | main.rs:721:5:724:5 | MyThing | -| main.rs:769:15:769:18 | SelfParam | A | main.rs:767:10:767:10 | T | -| main.rs:769:26:771:9 | { ... } | | main.rs:767:10:767:10 | T | -| main.rs:770:13:770:16 | self | | main.rs:721:5:724:5 | MyThing | -| main.rs:770:13:770:16 | self | A | main.rs:767:10:767:10 | T | -| main.rs:770:13:770:18 | self.a | | main.rs:767:10:767:10 | T | -| main.rs:778:15:778:18 | SelfParam | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:778:15:778:18 | SelfParam | A | main.rs:776:10:776:10 | T | -| main.rs:778:35:780:9 | { ... } | | main.rs:721:5:724:5 | MyThing | -| main.rs:778:35:780:9 | { ... } | A | main.rs:776:10:776:10 | T | -| main.rs:779:13:779:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | -| main.rs:779:13:779:33 | MyThing {...} | A | main.rs:776:10:776:10 | T | -| main.rs:779:26:779:29 | self | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:779:26:779:29 | self | A | main.rs:776:10:776:10 | T | -| main.rs:779:26:779:31 | self.a | | main.rs:776:10:776:10 | T | -| main.rs:787:44:787:44 | x | | main.rs:787:26:787:41 | T2 | -| main.rs:787:57:789:5 | { ... } | | main.rs:787:22:787:23 | T1 | -| main.rs:788:9:788:9 | x | | main.rs:787:26:787:41 | T2 | -| main.rs:788:9:788:14 | x.m1() | | main.rs:787:22:787:23 | T1 | -| main.rs:791:56:791:56 | x | | main.rs:791:39:791:53 | T | -| main.rs:793:13:793:13 | a | | main.rs:721:5:724:5 | MyThing | -| main.rs:793:13:793:13 | a | A | main.rs:731:5:732:14 | S1 | -| main.rs:793:17:793:17 | x | | main.rs:791:39:791:53 | T | -| main.rs:793:17:793:22 | x.m1() | | main.rs:721:5:724:5 | MyThing | -| main.rs:793:17:793:22 | x.m1() | A | main.rs:731:5:732:14 | S1 | -| main.rs:794:18:794:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:794:26:794:26 | a | | main.rs:721:5:724:5 | MyThing | -| main.rs:794:26:794:26 | a | A | main.rs:731:5:732:14 | S1 | -| main.rs:798:13:798:13 | x | | main.rs:721:5:724:5 | MyThing | -| main.rs:798:13:798:13 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:798:17:798:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | -| main.rs:798:17:798:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | -| main.rs:798:30:798:31 | S1 | | main.rs:731:5:732:14 | S1 | -| main.rs:799:13:799:13 | y | | main.rs:721:5:724:5 | MyThing | -| main.rs:799:13:799:13 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:799:17:799:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | -| main.rs:799:17:799:33 | MyThing {...} | A | main.rs:733:5:734:14 | S2 | -| main.rs:799:30:799:31 | S2 | | main.rs:733:5:734:14 | S2 | -| main.rs:801:18:801:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:801:26:801:26 | x | | main.rs:721:5:724:5 | MyThing | -| main.rs:801:26:801:26 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:801:26:801:31 | x.m1() | | main.rs:731:5:732:14 | S1 | -| main.rs:802:18:802:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:802:26:802:26 | y | | main.rs:721:5:724:5 | MyThing | -| main.rs:802:26:802:26 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:802:26:802:31 | y.m1() | | main.rs:733:5:734:14 | S2 | -| main.rs:804:13:804:13 | x | | main.rs:721:5:724:5 | MyThing | -| main.rs:804:13:804:13 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:804:17:804:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | -| main.rs:804:17:804:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | -| main.rs:804:30:804:31 | S1 | | main.rs:731:5:732:14 | S1 | -| main.rs:805:13:805:13 | y | | main.rs:721:5:724:5 | MyThing | -| main.rs:805:13:805:13 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:805:17:805:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | -| main.rs:805:17:805:33 | MyThing {...} | A | main.rs:733:5:734:14 | S2 | -| main.rs:805:30:805:31 | S2 | | main.rs:733:5:734:14 | S2 | -| main.rs:807:18:807:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:807:26:807:26 | x | | main.rs:721:5:724:5 | MyThing | -| main.rs:807:26:807:26 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:807:26:807:31 | x.m2() | | main.rs:731:5:732:14 | S1 | -| main.rs:808:18:808:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:808:26:808:26 | y | | main.rs:721:5:724:5 | MyThing | -| main.rs:808:26:808:26 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:808:26:808:31 | y.m2() | | main.rs:733:5:734:14 | S2 | -| main.rs:810:13:810:13 | x | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:810:13:810:13 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:810:17:810:34 | MyThing2 {...} | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:810:17:810:34 | MyThing2 {...} | A | main.rs:731:5:732:14 | S1 | -| main.rs:810:31:810:32 | S1 | | main.rs:731:5:732:14 | S1 | -| main.rs:811:13:811:13 | y | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:811:13:811:13 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:811:17:811:34 | MyThing2 {...} | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:811:17:811:34 | MyThing2 {...} | A | main.rs:733:5:734:14 | S2 | -| main.rs:811:31:811:32 | S2 | | main.rs:733:5:734:14 | S2 | -| main.rs:813:18:813:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:813:26:813:26 | x | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:813:26:813:26 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:813:26:813:31 | x.m3() | | main.rs:731:5:732:14 | S1 | -| main.rs:814:18:814:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:814:26:814:26 | y | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:814:26:814:26 | y | A | main.rs:733:5:734:14 | S2 | -| main.rs:814:26:814:31 | y.m3() | | main.rs:733:5:734:14 | S2 | -| main.rs:816:13:816:13 | x | | main.rs:721:5:724:5 | MyThing | -| main.rs:816:13:816:13 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:816:17:816:33 | MyThing {...} | | main.rs:721:5:724:5 | MyThing | -| main.rs:816:17:816:33 | MyThing {...} | A | main.rs:731:5:732:14 | S1 | -| main.rs:816:30:816:31 | S1 | | main.rs:731:5:732:14 | S1 | -| main.rs:817:13:817:13 | s | | main.rs:731:5:732:14 | S1 | -| main.rs:817:17:817:32 | call_trait_m1(...) | | main.rs:731:5:732:14 | S1 | -| main.rs:817:31:817:31 | x | | main.rs:721:5:724:5 | MyThing | -| main.rs:817:31:817:31 | x | A | main.rs:731:5:732:14 | S1 | -| main.rs:819:13:819:13 | x | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:819:13:819:13 | x | A | main.rs:733:5:734:14 | S2 | -| main.rs:819:17:819:34 | MyThing2 {...} | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:819:17:819:34 | MyThing2 {...} | A | main.rs:733:5:734:14 | S2 | -| main.rs:819:31:819:32 | S2 | | main.rs:733:5:734:14 | S2 | -| main.rs:820:13:820:13 | s | | main.rs:721:5:724:5 | MyThing | -| main.rs:820:13:820:13 | s | A | main.rs:733:5:734:14 | S2 | -| main.rs:820:17:820:32 | call_trait_m1(...) | | main.rs:721:5:724:5 | MyThing | -| main.rs:820:17:820:32 | call_trait_m1(...) | A | main.rs:733:5:734:14 | S2 | -| main.rs:820:31:820:31 | x | | main.rs:726:5:729:5 | MyThing2 | -| main.rs:820:31:820:31 | x | A | main.rs:733:5:734:14 | S2 | -| main.rs:838:22:838:22 | x | | file://:0:0:0:0 | & | -| main.rs:838:22:838:22 | x | &T | main.rs:838:11:838:19 | T | -| main.rs:838:35:840:5 | { ... } | | file://:0:0:0:0 | & | -| main.rs:838:35:840:5 | { ... } | &T | main.rs:838:11:838:19 | T | -| main.rs:839:9:839:9 | x | | file://:0:0:0:0 | & | -| main.rs:839:9:839:9 | x | &T | main.rs:838:11:838:19 | T | -| main.rs:843:17:843:20 | SelfParam | | main.rs:828:5:829:14 | S1 | -| main.rs:843:29:845:9 | { ... } | | main.rs:831:5:832:14 | S2 | -| main.rs:844:13:844:14 | S2 | | main.rs:831:5:832:14 | S2 | -| main.rs:848:21:848:21 | x | | main.rs:848:13:848:14 | T1 | -| main.rs:851:5:853:5 | { ... } | | main.rs:848:17:848:18 | T2 | -| main.rs:852:9:852:9 | x | | main.rs:848:13:848:14 | T1 | -| main.rs:852:9:852:16 | x.into() | | main.rs:848:17:848:18 | T2 | -| main.rs:856:13:856:13 | x | | main.rs:828:5:829:14 | S1 | -| main.rs:856:17:856:18 | S1 | | main.rs:828:5:829:14 | S1 | -| main.rs:857:18:857:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:857:26:857:31 | id(...) | | file://:0:0:0:0 | & | -| main.rs:857:26:857:31 | id(...) | &T | main.rs:828:5:829:14 | S1 | -| main.rs:857:29:857:30 | &x | | file://:0:0:0:0 | & | -| main.rs:857:29:857:30 | &x | &T | main.rs:828:5:829:14 | S1 | -| main.rs:857:30:857:30 | x | | main.rs:828:5:829:14 | S1 | -| main.rs:859:13:859:13 | x | | main.rs:828:5:829:14 | S1 | -| main.rs:859:17:859:18 | S1 | | main.rs:828:5:829:14 | S1 | -| main.rs:860:18:860:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:860:26:860:37 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:860:26:860:37 | id::<...>(...) | &T | main.rs:828:5:829:14 | S1 | -| main.rs:860:35:860:36 | &x | | file://:0:0:0:0 | & | -| main.rs:860:35:860:36 | &x | &T | main.rs:828:5:829:14 | S1 | -| main.rs:860:36:860:36 | x | | main.rs:828:5:829:14 | S1 | -| main.rs:862:13:862:13 | x | | main.rs:828:5:829:14 | S1 | -| main.rs:862:17:862:18 | S1 | | main.rs:828:5:829:14 | S1 | -| main.rs:863:18:863:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:863:26:863:44 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:863:26:863:44 | id::<...>(...) | &T | main.rs:828:5:829:14 | S1 | -| main.rs:863:42:863:43 | &x | | file://:0:0:0:0 | & | -| main.rs:863:42:863:43 | &x | &T | main.rs:828:5:829:14 | S1 | -| main.rs:863:43:863:43 | x | | main.rs:828:5:829:14 | S1 | -| main.rs:865:13:865:13 | x | | main.rs:828:5:829:14 | S1 | -| main.rs:865:17:865:18 | S1 | | main.rs:828:5:829:14 | S1 | -| main.rs:866:9:866:25 | into::<...>(...) | | main.rs:831:5:832:14 | S2 | -| main.rs:866:24:866:24 | x | | main.rs:828:5:829:14 | S1 | -| main.rs:868:13:868:13 | x | | main.rs:828:5:829:14 | S1 | -| main.rs:868:17:868:18 | S1 | | main.rs:828:5:829:14 | S1 | -| main.rs:869:13:869:13 | y | | main.rs:831:5:832:14 | S2 | -| main.rs:869:21:869:27 | into(...) | | main.rs:831:5:832:14 | S2 | -| main.rs:869:26:869:26 | x | | main.rs:828:5:829:14 | S1 | -| main.rs:883:22:883:25 | SelfParam | | main.rs:874:5:880:5 | PairOption | -| main.rs:883:22:883:25 | SelfParam | Fst | main.rs:882:10:882:12 | Fst | -| main.rs:883:22:883:25 | SelfParam | Snd | main.rs:882:15:882:17 | Snd | -| main.rs:883:35:890:9 | { ... } | | main.rs:882:15:882:17 | Snd | -| main.rs:884:13:889:13 | match self { ... } | | main.rs:882:15:882:17 | Snd | -| main.rs:884:19:884:22 | self | | main.rs:874:5:880:5 | PairOption | -| main.rs:884:19:884:22 | self | Fst | main.rs:882:10:882:12 | Fst | -| main.rs:884:19:884:22 | self | Snd | main.rs:882:15:882:17 | Snd | -| main.rs:885:43:885:82 | MacroExpr | | main.rs:882:15:882:17 | Snd | -| main.rs:885:50:885:81 | "PairNone has no second elemen... | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:886:43:886:81 | MacroExpr | | main.rs:882:15:882:17 | Snd | -| main.rs:886:50:886:80 | "PairFst has no second element... | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:887:37:887:39 | snd | | main.rs:882:15:882:17 | Snd | -| main.rs:887:45:887:47 | snd | | main.rs:882:15:882:17 | Snd | -| main.rs:888:41:888:43 | snd | | main.rs:882:15:882:17 | Snd | -| main.rs:888:49:888:51 | snd | | main.rs:882:15:882:17 | Snd | -| main.rs:914:10:914:10 | t | | main.rs:874:5:880:5 | PairOption | -| main.rs:914:10:914:10 | t | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:914:10:914:10 | t | Snd | main.rs:874:5:880:5 | PairOption | -| main.rs:914:10:914:10 | t | Snd.Fst | main.rs:896:5:897:14 | S2 | -| main.rs:914:10:914:10 | t | Snd.Snd | main.rs:899:5:900:14 | S3 | -| main.rs:915:13:915:13 | x | | main.rs:899:5:900:14 | S3 | -| main.rs:915:17:915:17 | t | | main.rs:874:5:880:5 | PairOption | -| main.rs:915:17:915:17 | t | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:915:17:915:17 | t | Snd | main.rs:874:5:880:5 | PairOption | -| main.rs:915:17:915:17 | t | Snd.Fst | main.rs:896:5:897:14 | S2 | -| main.rs:915:17:915:17 | t | Snd.Snd | main.rs:899:5:900:14 | S3 | -| main.rs:915:17:915:29 | t.unwrapSnd() | | main.rs:874:5:880:5 | PairOption | -| main.rs:915:17:915:29 | t.unwrapSnd() | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:915:17:915:29 | t.unwrapSnd() | Snd | main.rs:899:5:900:14 | S3 | -| main.rs:915:17:915:41 | ... .unwrapSnd() | | main.rs:899:5:900:14 | S3 | -| main.rs:916:18:916:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:916:26:916:26 | x | | main.rs:899:5:900:14 | S3 | -| main.rs:921:13:921:14 | p1 | | main.rs:874:5:880:5 | PairOption | -| main.rs:921:13:921:14 | p1 | Fst | main.rs:893:5:894:14 | S1 | -| main.rs:921:13:921:14 | p1 | Snd | main.rs:896:5:897:14 | S2 | -| main.rs:921:26:921:53 | ...::PairBoth(...) | | main.rs:874:5:880:5 | PairOption | -| main.rs:921:26:921:53 | ...::PairBoth(...) | Fst | main.rs:893:5:894:14 | S1 | -| main.rs:921:26:921:53 | ...::PairBoth(...) | Snd | main.rs:896:5:897:14 | S2 | -| main.rs:921:47:921:48 | S1 | | main.rs:893:5:894:14 | S1 | -| main.rs:921:51:921:52 | S2 | | main.rs:896:5:897:14 | S2 | -| main.rs:922:18:922:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:922:26:922:27 | p1 | | main.rs:874:5:880:5 | PairOption | -| main.rs:922:26:922:27 | p1 | Fst | main.rs:893:5:894:14 | S1 | -| main.rs:922:26:922:27 | p1 | Snd | main.rs:896:5:897:14 | S2 | -| main.rs:925:13:925:14 | p2 | | main.rs:874:5:880:5 | PairOption | -| main.rs:925:13:925:14 | p2 | Fst | main.rs:893:5:894:14 | S1 | -| main.rs:925:13:925:14 | p2 | Snd | main.rs:896:5:897:14 | S2 | -| main.rs:925:26:925:47 | ...::PairNone(...) | | main.rs:874:5:880:5 | PairOption | -| main.rs:925:26:925:47 | ...::PairNone(...) | Fst | main.rs:893:5:894:14 | S1 | -| main.rs:925:26:925:47 | ...::PairNone(...) | Snd | main.rs:896:5:897:14 | S2 | -| main.rs:926:18:926:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:926:26:926:27 | p2 | | main.rs:874:5:880:5 | PairOption | -| main.rs:926:26:926:27 | p2 | Fst | main.rs:893:5:894:14 | S1 | -| main.rs:926:26:926:27 | p2 | Snd | main.rs:896:5:897:14 | S2 | -| main.rs:929:13:929:14 | p3 | | main.rs:874:5:880:5 | PairOption | -| main.rs:929:13:929:14 | p3 | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:929:13:929:14 | p3 | Snd | main.rs:899:5:900:14 | S3 | -| main.rs:929:34:929:56 | ...::PairSnd(...) | | main.rs:874:5:880:5 | PairOption | -| main.rs:929:34:929:56 | ...::PairSnd(...) | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:929:34:929:56 | ...::PairSnd(...) | Snd | main.rs:899:5:900:14 | S3 | -| main.rs:929:54:929:55 | S3 | | main.rs:899:5:900:14 | S3 | -| main.rs:930:18:930:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:930:26:930:27 | p3 | | main.rs:874:5:880:5 | PairOption | -| main.rs:930:26:930:27 | p3 | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:930:26:930:27 | p3 | Snd | main.rs:899:5:900:14 | S3 | -| main.rs:933:13:933:14 | p3 | | main.rs:874:5:880:5 | PairOption | -| main.rs:933:13:933:14 | p3 | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:933:13:933:14 | p3 | Snd | main.rs:899:5:900:14 | S3 | -| main.rs:933:35:933:56 | ...::PairNone(...) | | main.rs:874:5:880:5 | PairOption | -| main.rs:933:35:933:56 | ...::PairNone(...) | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:933:35:933:56 | ...::PairNone(...) | Snd | main.rs:899:5:900:14 | S3 | -| main.rs:934:18:934:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:934:26:934:27 | p3 | | main.rs:874:5:880:5 | PairOption | -| main.rs:934:26:934:27 | p3 | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:934:26:934:27 | p3 | Snd | main.rs:899:5:900:14 | S3 | -| main.rs:936:11:936:54 | ...::PairSnd(...) | | main.rs:874:5:880:5 | PairOption | -| main.rs:936:11:936:54 | ...::PairSnd(...) | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:936:11:936:54 | ...::PairSnd(...) | Snd | main.rs:874:5:880:5 | PairOption | -| main.rs:936:11:936:54 | ...::PairSnd(...) | Snd.Fst | main.rs:896:5:897:14 | S2 | -| main.rs:936:11:936:54 | ...::PairSnd(...) | Snd.Snd | main.rs:899:5:900:14 | S3 | -| main.rs:936:31:936:53 | ...::PairSnd(...) | | main.rs:874:5:880:5 | PairOption | -| main.rs:936:31:936:53 | ...::PairSnd(...) | Fst | main.rs:896:5:897:14 | S2 | -| main.rs:936:31:936:53 | ...::PairSnd(...) | Snd | main.rs:899:5:900:14 | S3 | -| main.rs:936:51:936:52 | S3 | | main.rs:899:5:900:14 | S3 | -| main.rs:949:16:949:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:949:16:949:24 | SelfParam | &T | main.rs:947:5:954:5 | Self [trait MyTrait] | -| main.rs:949:27:949:31 | value | | main.rs:947:19:947:19 | S | -| main.rs:951:21:951:29 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:951:21:951:29 | SelfParam | &T | main.rs:947:5:954:5 | Self [trait MyTrait] | -| main.rs:951:32:951:36 | value | | main.rs:947:19:947:19 | S | -| main.rs:952:13:952:16 | self | | file://:0:0:0:0 | & | -| main.rs:952:13:952:16 | self | &T | main.rs:947:5:954:5 | Self [trait MyTrait] | -| main.rs:952:22:952:26 | value | | main.rs:947:19:947:19 | S | -| main.rs:958:16:958:24 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:958:16:958:24 | SelfParam | &T | main.rs:941:5:945:5 | MyOption | -| main.rs:958:16:958:24 | SelfParam | &T.T | main.rs:956:10:956:10 | T | -| main.rs:958:27:958:31 | value | | main.rs:956:10:956:10 | T | -| main.rs:962:26:964:9 | { ... } | | main.rs:941:5:945:5 | MyOption | -| main.rs:962:26:964:9 | { ... } | T | main.rs:961:10:961:10 | T | -| main.rs:963:13:963:30 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:963:13:963:30 | ...::MyNone(...) | T | main.rs:961:10:961:10 | T | -| main.rs:968:20:968:23 | SelfParam | | main.rs:941:5:945:5 | MyOption | -| main.rs:968:20:968:23 | SelfParam | T | main.rs:941:5:945:5 | MyOption | -| main.rs:968:20:968:23 | SelfParam | T.T | main.rs:967:10:967:10 | T | -| main.rs:968:41:973:9 | { ... } | | main.rs:941:5:945:5 | MyOption | -| main.rs:968:41:973:9 | { ... } | T | main.rs:967:10:967:10 | T | -| main.rs:969:13:972:13 | match self { ... } | | main.rs:941:5:945:5 | MyOption | -| main.rs:969:13:972:13 | match self { ... } | T | main.rs:967:10:967:10 | T | -| main.rs:969:19:969:22 | self | | main.rs:941:5:945:5 | MyOption | -| main.rs:969:19:969:22 | self | T | main.rs:941:5:945:5 | MyOption | -| main.rs:969:19:969:22 | self | T.T | main.rs:967:10:967:10 | T | -| main.rs:970:39:970:56 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:970:39:970:56 | ...::MyNone(...) | T | main.rs:967:10:967:10 | T | -| main.rs:971:34:971:34 | x | | main.rs:941:5:945:5 | MyOption | -| main.rs:971:34:971:34 | x | T | main.rs:967:10:967:10 | T | -| main.rs:971:40:971:40 | x | | main.rs:941:5:945:5 | MyOption | -| main.rs:971:40:971:40 | x | T | main.rs:967:10:967:10 | T | -| main.rs:980:13:980:14 | x1 | | main.rs:941:5:945:5 | MyOption | -| main.rs:980:18:980:37 | ...::new(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:981:18:981:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:981:26:981:27 | x1 | | main.rs:941:5:945:5 | MyOption | -| main.rs:983:13:983:18 | mut x2 | | main.rs:941:5:945:5 | MyOption | -| main.rs:983:13:983:18 | mut x2 | T | main.rs:976:5:977:13 | S | -| main.rs:983:22:983:36 | ...::new(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:983:22:983:36 | ...::new(...) | T | main.rs:976:5:977:13 | S | -| main.rs:984:9:984:10 | x2 | | main.rs:941:5:945:5 | MyOption | -| main.rs:984:9:984:10 | x2 | T | main.rs:976:5:977:13 | S | -| main.rs:984:16:984:16 | S | | main.rs:976:5:977:13 | S | -| main.rs:985:18:985:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:985:26:985:27 | x2 | | main.rs:941:5:945:5 | MyOption | -| main.rs:985:26:985:27 | x2 | T | main.rs:976:5:977:13 | S | -| main.rs:987:13:987:18 | mut x3 | | main.rs:941:5:945:5 | MyOption | -| main.rs:987:22:987:36 | ...::new(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:988:9:988:10 | x3 | | main.rs:941:5:945:5 | MyOption | -| main.rs:988:21:988:21 | S | | main.rs:976:5:977:13 | S | -| main.rs:989:18:989:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:989:26:989:27 | x3 | | main.rs:941:5:945:5 | MyOption | -| main.rs:991:13:991:18 | mut x4 | | main.rs:941:5:945:5 | MyOption | -| main.rs:991:13:991:18 | mut x4 | T | main.rs:976:5:977:13 | S | -| main.rs:991:22:991:36 | ...::new(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:991:22:991:36 | ...::new(...) | T | main.rs:976:5:977:13 | S | -| main.rs:992:23:992:29 | &mut x4 | | file://:0:0:0:0 | & | -| main.rs:992:23:992:29 | &mut x4 | &T | main.rs:941:5:945:5 | MyOption | -| main.rs:992:23:992:29 | &mut x4 | &T.T | main.rs:976:5:977:13 | S | -| main.rs:992:28:992:29 | x4 | | main.rs:941:5:945:5 | MyOption | -| main.rs:992:28:992:29 | x4 | T | main.rs:976:5:977:13 | S | -| main.rs:992:32:992:32 | S | | main.rs:976:5:977:13 | S | -| main.rs:993:18:993:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:993:26:993:27 | x4 | | main.rs:941:5:945:5 | MyOption | -| main.rs:993:26:993:27 | x4 | T | main.rs:976:5:977:13 | S | -| main.rs:995:13:995:14 | x5 | | main.rs:941:5:945:5 | MyOption | -| main.rs:995:13:995:14 | x5 | T | main.rs:941:5:945:5 | MyOption | -| main.rs:995:13:995:14 | x5 | T.T | main.rs:976:5:977:13 | S | -| main.rs:995:18:995:58 | ...::MySome(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:995:18:995:58 | ...::MySome(...) | T | main.rs:941:5:945:5 | MyOption | -| main.rs:995:18:995:58 | ...::MySome(...) | T.T | main.rs:976:5:977:13 | S | -| main.rs:995:35:995:57 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:995:35:995:57 | ...::MyNone(...) | T | main.rs:976:5:977:13 | S | -| main.rs:996:18:996:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:996:26:996:27 | x5 | | main.rs:941:5:945:5 | MyOption | -| main.rs:996:26:996:27 | x5 | T | main.rs:941:5:945:5 | MyOption | -| main.rs:996:26:996:27 | x5 | T.T | main.rs:976:5:977:13 | S | -| main.rs:996:26:996:37 | x5.flatten() | | main.rs:941:5:945:5 | MyOption | -| main.rs:996:26:996:37 | x5.flatten() | T | main.rs:976:5:977:13 | S | -| main.rs:998:13:998:14 | x6 | | main.rs:941:5:945:5 | MyOption | -| main.rs:998:13:998:14 | x6 | T | main.rs:941:5:945:5 | MyOption | -| main.rs:998:13:998:14 | x6 | T.T | main.rs:976:5:977:13 | S | -| main.rs:998:18:998:58 | ...::MySome(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:998:18:998:58 | ...::MySome(...) | T | main.rs:941:5:945:5 | MyOption | -| main.rs:998:18:998:58 | ...::MySome(...) | T.T | main.rs:976:5:977:13 | S | -| main.rs:998:35:998:57 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:998:35:998:57 | ...::MyNone(...) | T | main.rs:976:5:977:13 | S | -| main.rs:999:18:999:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:999:26:999:61 | ...::flatten(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:999:26:999:61 | ...::flatten(...) | T | main.rs:976:5:977:13 | S | -| main.rs:999:59:999:60 | x6 | | main.rs:941:5:945:5 | MyOption | -| main.rs:999:59:999:60 | x6 | T | main.rs:941:5:945:5 | MyOption | -| main.rs:999:59:999:60 | x6 | T.T | main.rs:976:5:977:13 | S | -| main.rs:1001:13:1001:19 | from_if | | main.rs:941:5:945:5 | MyOption | -| main.rs:1001:13:1001:19 | from_if | T | main.rs:976:5:977:13 | S | -| main.rs:1001:23:1005:9 | if ... {...} else {...} | | main.rs:941:5:945:5 | MyOption | -| main.rs:1001:23:1005:9 | if ... {...} else {...} | T | main.rs:976:5:977:13 | S | -| main.rs:1001:26:1001:26 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1001:30:1001:30 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1001:34:1001:34 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1001:36:1003:9 | { ... } | | main.rs:941:5:945:5 | MyOption | -| main.rs:1001:36:1003:9 | { ... } | T | main.rs:976:5:977:13 | S | -| main.rs:1002:13:1002:30 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:1002:13:1002:30 | ...::MyNone(...) | T | main.rs:976:5:977:13 | S | -| main.rs:1003:16:1005:9 | { ... } | | main.rs:941:5:945:5 | MyOption | -| main.rs:1003:16:1005:9 | { ... } | T | main.rs:976:5:977:13 | S | -| main.rs:1004:13:1004:31 | ...::MySome(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:1004:13:1004:31 | ...::MySome(...) | T | main.rs:976:5:977:13 | S | -| main.rs:1004:30:1004:30 | S | | main.rs:976:5:977:13 | S | -| main.rs:1006:18:1006:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1006:26:1006:32 | from_if | | main.rs:941:5:945:5 | MyOption | -| main.rs:1006:26:1006:32 | from_if | T | main.rs:976:5:977:13 | S | -| main.rs:1008:13:1008:22 | from_match | | main.rs:941:5:945:5 | MyOption | -| main.rs:1008:13:1008:22 | from_match | T | main.rs:976:5:977:13 | S | -| main.rs:1008:26:1011:9 | match ... { ... } | | main.rs:941:5:945:5 | MyOption | -| main.rs:1008:26:1011:9 | match ... { ... } | T | main.rs:976:5:977:13 | S | -| main.rs:1008:32:1008:32 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1008:36:1008:36 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1008:40:1008:40 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1009:13:1009:16 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1009:21:1009:38 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:1009:21:1009:38 | ...::MyNone(...) | T | main.rs:976:5:977:13 | S | -| main.rs:1010:13:1010:17 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1010:22:1010:40 | ...::MySome(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:1010:22:1010:40 | ...::MySome(...) | T | main.rs:976:5:977:13 | S | -| main.rs:1010:39:1010:39 | S | | main.rs:976:5:977:13 | S | -| main.rs:1012:18:1012:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1012:26:1012:35 | from_match | | main.rs:941:5:945:5 | MyOption | -| main.rs:1012:26:1012:35 | from_match | T | main.rs:976:5:977:13 | S | -| main.rs:1014:13:1014:21 | from_loop | | main.rs:941:5:945:5 | MyOption | -| main.rs:1014:13:1014:21 | from_loop | T | main.rs:976:5:977:13 | S | -| main.rs:1014:25:1019:9 | loop { ... } | | main.rs:941:5:945:5 | MyOption | -| main.rs:1014:25:1019:9 | loop { ... } | T | main.rs:976:5:977:13 | S | -| main.rs:1015:16:1015:16 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1015:20:1015:20 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1015:24:1015:24 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1016:23:1016:40 | ...::MyNone(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:1016:23:1016:40 | ...::MyNone(...) | T | main.rs:976:5:977:13 | S | -| main.rs:1018:19:1018:37 | ...::MySome(...) | | main.rs:941:5:945:5 | MyOption | -| main.rs:1018:19:1018:37 | ...::MySome(...) | T | main.rs:976:5:977:13 | S | -| main.rs:1018:36:1018:36 | S | | main.rs:976:5:977:13 | S | -| main.rs:1020:18:1020:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1020:26:1020:34 | from_loop | | main.rs:941:5:945:5 | MyOption | -| main.rs:1020:26:1020:34 | from_loop | T | main.rs:976:5:977:13 | S | -| main.rs:1033:15:1033:18 | SelfParam | | main.rs:1026:5:1027:19 | S | -| main.rs:1033:15:1033:18 | SelfParam | T | main.rs:1032:10:1032:10 | T | -| main.rs:1033:26:1035:9 | { ... } | | main.rs:1032:10:1032:10 | T | -| main.rs:1034:13:1034:16 | self | | main.rs:1026:5:1027:19 | S | -| main.rs:1034:13:1034:16 | self | T | main.rs:1032:10:1032:10 | T | -| main.rs:1034:13:1034:18 | self.0 | | main.rs:1032:10:1032:10 | T | -| main.rs:1037:15:1037:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1037:15:1037:19 | SelfParam | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1037:15:1037:19 | SelfParam | &T.T | main.rs:1032:10:1032:10 | T | -| main.rs:1037:28:1039:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1037:28:1039:9 | { ... } | &T | main.rs:1032:10:1032:10 | T | -| main.rs:1038:13:1038:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1038:13:1038:19 | &... | &T | main.rs:1032:10:1032:10 | T | -| main.rs:1038:14:1038:17 | self | | file://:0:0:0:0 | & | -| main.rs:1038:14:1038:17 | self | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1038:14:1038:17 | self | &T.T | main.rs:1032:10:1032:10 | T | -| main.rs:1038:14:1038:19 | self.0 | | main.rs:1032:10:1032:10 | T | -| main.rs:1041:15:1041:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1041:15:1041:25 | SelfParam | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1041:15:1041:25 | SelfParam | &T.T | main.rs:1032:10:1032:10 | T | -| main.rs:1041:34:1043:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1041:34:1043:9 | { ... } | &T | main.rs:1032:10:1032:10 | T | -| main.rs:1042:13:1042:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1042:13:1042:19 | &... | &T | main.rs:1032:10:1032:10 | T | -| main.rs:1042:14:1042:17 | self | | file://:0:0:0:0 | & | -| main.rs:1042:14:1042:17 | self | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1042:14:1042:17 | self | &T.T | main.rs:1032:10:1032:10 | T | -| main.rs:1042:14:1042:19 | self.0 | | main.rs:1032:10:1032:10 | T | -| main.rs:1047:13:1047:14 | x1 | | main.rs:1026:5:1027:19 | S | -| main.rs:1047:13:1047:14 | x1 | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1047:18:1047:22 | S(...) | | main.rs:1026:5:1027:19 | S | -| main.rs:1047:18:1047:22 | S(...) | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1047:20:1047:21 | S2 | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1048:18:1048:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1048:26:1048:27 | x1 | | main.rs:1026:5:1027:19 | S | -| main.rs:1048:26:1048:27 | x1 | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1048:26:1048:32 | x1.m1() | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1050:13:1050:14 | x2 | | main.rs:1026:5:1027:19 | S | -| main.rs:1050:13:1050:14 | x2 | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1050:18:1050:22 | S(...) | | main.rs:1026:5:1027:19 | S | -| main.rs:1050:18:1050:22 | S(...) | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1050:20:1050:21 | S2 | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1052:18:1052:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1052:26:1052:27 | x2 | | main.rs:1026:5:1027:19 | S | -| main.rs:1052:26:1052:27 | x2 | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1052:26:1052:32 | x2.m2() | | file://:0:0:0:0 | & | -| main.rs:1052:26:1052:32 | x2.m2() | &T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1053:18:1053:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1053:26:1053:27 | x2 | | main.rs:1026:5:1027:19 | S | -| main.rs:1053:26:1053:27 | x2 | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1053:26:1053:32 | x2.m3() | | file://:0:0:0:0 | & | -| main.rs:1053:26:1053:32 | x2.m3() | &T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1055:13:1055:14 | x3 | | main.rs:1026:5:1027:19 | S | -| main.rs:1055:13:1055:14 | x3 | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1055:18:1055:22 | S(...) | | main.rs:1026:5:1027:19 | S | -| main.rs:1055:18:1055:22 | S(...) | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1055:20:1055:21 | S2 | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1057:18:1057:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1057:26:1057:41 | ...::m2(...) | | file://:0:0:0:0 | & | -| main.rs:1057:26:1057:41 | ...::m2(...) | &T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1057:38:1057:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1057:38:1057:40 | &x3 | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1057:38:1057:40 | &x3 | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1057:39:1057:40 | x3 | | main.rs:1026:5:1027:19 | S | -| main.rs:1057:39:1057:40 | x3 | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1058:18:1058:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1058:26:1058:41 | ...::m3(...) | | file://:0:0:0:0 | & | -| main.rs:1058:26:1058:41 | ...::m3(...) | &T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1058:38:1058:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1058:38:1058:40 | &x3 | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1058:38:1058:40 | &x3 | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1058:39:1058:40 | x3 | | main.rs:1026:5:1027:19 | S | -| main.rs:1058:39:1058:40 | x3 | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1060:13:1060:14 | x4 | | file://:0:0:0:0 | & | -| main.rs:1060:13:1060:14 | x4 | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1060:13:1060:14 | x4 | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1060:18:1060:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1060:18:1060:23 | &... | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1060:18:1060:23 | &... | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1060:19:1060:23 | S(...) | | main.rs:1026:5:1027:19 | S | -| main.rs:1060:19:1060:23 | S(...) | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1060:21:1060:22 | S2 | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1062:18:1062:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1062:26:1062:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1062:26:1062:27 | x4 | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1062:26:1062:27 | x4 | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1062:26:1062:32 | x4.m2() | | file://:0:0:0:0 | & | -| main.rs:1062:26:1062:32 | x4.m2() | &T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1063:18:1063:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1063:26:1063:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1063:26:1063:27 | x4 | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1063:26:1063:27 | x4 | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1063:26:1063:32 | x4.m3() | | file://:0:0:0:0 | & | -| main.rs:1063:26:1063:32 | x4.m3() | &T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1065:13:1065:14 | x5 | | file://:0:0:0:0 | & | -| main.rs:1065:13:1065:14 | x5 | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1065:13:1065:14 | x5 | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1065:18:1065:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1065:18:1065:23 | &... | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1065:18:1065:23 | &... | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1065:19:1065:23 | S(...) | | main.rs:1026:5:1027:19 | S | -| main.rs:1065:19:1065:23 | S(...) | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1065:21:1065:22 | S2 | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1067:18:1067:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1067:26:1067:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1067:26:1067:27 | x5 | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1067:26:1067:27 | x5 | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1067:26:1067:32 | x5.m1() | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1068:18:1068:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1068:26:1068:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1068:26:1068:27 | x5 | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1068:26:1068:27 | x5 | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1068:26:1068:29 | x5.0 | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1070:13:1070:14 | x6 | | file://:0:0:0:0 | & | -| main.rs:1070:13:1070:14 | x6 | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1070:13:1070:14 | x6 | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1070:18:1070:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1070:18:1070:23 | &... | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1070:18:1070:23 | &... | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1070:19:1070:23 | S(...) | | main.rs:1026:5:1027:19 | S | -| main.rs:1070:19:1070:23 | S(...) | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1070:21:1070:22 | S2 | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1072:18:1072:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1072:26:1072:30 | (...) | | main.rs:1026:5:1027:19 | S | -| main.rs:1072:26:1072:30 | (...) | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1072:26:1072:35 | ... .m1() | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1072:27:1072:29 | * ... | | main.rs:1026:5:1027:19 | S | -| main.rs:1072:27:1072:29 | * ... | T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1072:28:1072:29 | x6 | | file://:0:0:0:0 | & | -| main.rs:1072:28:1072:29 | x6 | &T | main.rs:1026:5:1027:19 | S | -| main.rs:1072:28:1072:29 | x6 | &T.T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1074:13:1074:14 | x7 | | main.rs:1026:5:1027:19 | S | -| main.rs:1074:13:1074:14 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1074:13:1074:14 | x7 | T.&T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1074:18:1074:23 | S(...) | | main.rs:1026:5:1027:19 | S | -| main.rs:1074:18:1074:23 | S(...) | T | file://:0:0:0:0 | & | -| main.rs:1074:18:1074:23 | S(...) | T.&T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1074:20:1074:22 | &S2 | | file://:0:0:0:0 | & | -| main.rs:1074:20:1074:22 | &S2 | &T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1074:21:1074:22 | S2 | | main.rs:1029:5:1030:14 | S2 | -| main.rs:1077:13:1077:13 | t | | file://:0:0:0:0 | & | -| main.rs:1077:13:1077:13 | t | &T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1077:17:1077:18 | x7 | | main.rs:1026:5:1027:19 | S | -| main.rs:1077:17:1077:18 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1077:17:1077:18 | x7 | T.&T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1077:17:1077:23 | x7.m1() | | file://:0:0:0:0 | & | -| main.rs:1077:17:1077:23 | x7.m1() | &T | main.rs:1029:5:1030:14 | S2 | +| main.rs:344:26:344:26 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:345:13:345:13 | y | | main.rs:181:5:182:14 | S1 | +| main.rs:345:17:345:17 | a | | main.rs:175:5:179:5 | MyPair | +| main.rs:345:17:345:17 | a | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:345:17:345:17 | a | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:345:17:345:23 | a.snd() | | main.rs:181:5:182:14 | S1 | +| main.rs:346:18:346:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:346:26:346:26 | y | | main.rs:181:5:182:14 | S1 | +| main.rs:352:13:352:13 | b | | main.rs:175:5:179:5 | MyPair | +| main.rs:352:13:352:13 | b | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:352:13:352:13 | b | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:352:17:352:41 | MyPair {...} | | main.rs:175:5:179:5 | MyPair | +| main.rs:352:17:352:41 | MyPair {...} | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:352:17:352:41 | MyPair {...} | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:352:30:352:31 | S2 | | main.rs:183:5:184:14 | S2 | +| main.rs:352:38:352:39 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:353:13:353:13 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:353:17:353:17 | b | | main.rs:175:5:179:5 | MyPair | +| main.rs:353:17:353:17 | b | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:353:17:353:17 | b | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:353:17:353:23 | b.fst() | | main.rs:181:5:182:14 | S1 | +| main.rs:354:18:354:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:354:26:354:26 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:355:13:355:13 | y | | main.rs:183:5:184:14 | S2 | +| main.rs:355:17:355:17 | b | | main.rs:175:5:179:5 | MyPair | +| main.rs:355:17:355:17 | b | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:355:17:355:17 | b | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:355:17:355:23 | b.snd() | | main.rs:183:5:184:14 | S2 | +| main.rs:356:18:356:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:356:26:356:26 | y | | main.rs:183:5:184:14 | S2 | +| main.rs:360:13:360:13 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:360:17:360:39 | call_trait_m1(...) | | main.rs:181:5:182:14 | S1 | +| main.rs:360:31:360:38 | thing_s1 | | main.rs:170:5:173:5 | MyThing | +| main.rs:360:31:360:38 | thing_s1 | A | main.rs:181:5:182:14 | S1 | +| main.rs:361:18:361:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:361:26:361:26 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:362:13:362:13 | y | | main.rs:170:5:173:5 | MyThing | +| main.rs:362:13:362:13 | y | A | main.rs:183:5:184:14 | S2 | +| main.rs:362:17:362:39 | call_trait_m1(...) | | main.rs:170:5:173:5 | MyThing | +| main.rs:362:17:362:39 | call_trait_m1(...) | A | main.rs:183:5:184:14 | S2 | +| main.rs:362:31:362:38 | thing_s2 | | main.rs:170:5:173:5 | MyThing | +| main.rs:362:31:362:38 | thing_s2 | A | main.rs:183:5:184:14 | S2 | +| main.rs:363:18:363:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:363:26:363:26 | y | | main.rs:170:5:173:5 | MyThing | +| main.rs:363:26:363:26 | y | A | main.rs:183:5:184:14 | S2 | +| main.rs:363:26:363:28 | y.a | | main.rs:183:5:184:14 | S2 | +| main.rs:366:13:366:13 | a | | main.rs:175:5:179:5 | MyPair | +| main.rs:366:13:366:13 | a | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:366:13:366:13 | a | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:366:17:366:41 | MyPair {...} | | main.rs:175:5:179:5 | MyPair | +| main.rs:366:17:366:41 | MyPair {...} | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:366:17:366:41 | MyPair {...} | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:366:30:366:31 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:366:38:366:39 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:367:13:367:13 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:367:17:367:26 | get_fst(...) | | main.rs:181:5:182:14 | S1 | +| main.rs:367:25:367:25 | a | | main.rs:175:5:179:5 | MyPair | +| main.rs:367:25:367:25 | a | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:367:25:367:25 | a | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:368:18:368:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:368:26:368:26 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:369:13:369:13 | y | | main.rs:181:5:182:14 | S1 | +| main.rs:369:17:369:26 | get_snd(...) | | main.rs:181:5:182:14 | S1 | +| main.rs:369:25:369:25 | a | | main.rs:175:5:179:5 | MyPair | +| main.rs:369:25:369:25 | a | P1 | main.rs:181:5:182:14 | S1 | +| main.rs:369:25:369:25 | a | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:370:18:370:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:370:26:370:26 | y | | main.rs:181:5:182:14 | S1 | +| main.rs:373:13:373:13 | b | | main.rs:175:5:179:5 | MyPair | +| main.rs:373:13:373:13 | b | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:373:13:373:13 | b | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:373:17:373:41 | MyPair {...} | | main.rs:175:5:179:5 | MyPair | +| main.rs:373:17:373:41 | MyPair {...} | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:373:17:373:41 | MyPair {...} | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:373:30:373:31 | S2 | | main.rs:183:5:184:14 | S2 | +| main.rs:373:38:373:39 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:374:13:374:13 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:374:17:374:26 | get_fst(...) | | main.rs:181:5:182:14 | S1 | +| main.rs:374:25:374:25 | b | | main.rs:175:5:179:5 | MyPair | +| main.rs:374:25:374:25 | b | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:374:25:374:25 | b | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:375:18:375:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:375:26:375:26 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:376:13:376:13 | y | | main.rs:183:5:184:14 | S2 | +| main.rs:376:17:376:26 | get_snd(...) | | main.rs:183:5:184:14 | S2 | +| main.rs:376:25:376:25 | b | | main.rs:175:5:179:5 | MyPair | +| main.rs:376:25:376:25 | b | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:376:25:376:25 | b | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:377:18:377:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:377:26:377:26 | y | | main.rs:183:5:184:14 | S2 | +| main.rs:379:13:379:13 | c | | main.rs:175:5:179:5 | MyPair | +| main.rs:379:13:379:13 | c | P1 | main.rs:185:5:186:14 | S3 | +| main.rs:379:13:379:13 | c | P2 | main.rs:175:5:179:5 | MyPair | +| main.rs:379:13:379:13 | c | P2.P1 | main.rs:183:5:184:14 | S2 | +| main.rs:379:13:379:13 | c | P2.P2 | main.rs:181:5:182:14 | S1 | +| main.rs:379:17:382:9 | MyPair {...} | | main.rs:175:5:179:5 | MyPair | +| main.rs:379:17:382:9 | MyPair {...} | P1 | main.rs:185:5:186:14 | S3 | +| main.rs:379:17:382:9 | MyPair {...} | P2 | main.rs:175:5:179:5 | MyPair | +| main.rs:379:17:382:9 | MyPair {...} | P2.P1 | main.rs:183:5:184:14 | S2 | +| main.rs:379:17:382:9 | MyPair {...} | P2.P2 | main.rs:181:5:182:14 | S1 | +| main.rs:380:17:380:18 | S3 | | main.rs:185:5:186:14 | S3 | +| main.rs:381:17:381:41 | MyPair {...} | | main.rs:175:5:179:5 | MyPair | +| main.rs:381:17:381:41 | MyPair {...} | P1 | main.rs:183:5:184:14 | S2 | +| main.rs:381:17:381:41 | MyPair {...} | P2 | main.rs:181:5:182:14 | S1 | +| main.rs:381:30:381:31 | S2 | | main.rs:183:5:184:14 | S2 | +| main.rs:381:38:381:39 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:383:13:383:13 | x | | main.rs:181:5:182:14 | S1 | +| main.rs:383:17:383:30 | get_snd_fst(...) | | main.rs:181:5:182:14 | S1 | +| main.rs:383:29:383:29 | c | | main.rs:175:5:179:5 | MyPair | +| main.rs:383:29:383:29 | c | P1 | main.rs:185:5:186:14 | S3 | +| main.rs:383:29:383:29 | c | P2 | main.rs:175:5:179:5 | MyPair | +| main.rs:383:29:383:29 | c | P2.P1 | main.rs:183:5:184:14 | S2 | +| main.rs:383:29:383:29 | c | P2.P2 | main.rs:181:5:182:14 | S1 | +| main.rs:385:13:385:17 | thing | | main.rs:170:5:173:5 | MyThing | +| main.rs:385:13:385:17 | thing | A | main.rs:181:5:182:14 | S1 | +| main.rs:385:21:385:37 | MyThing {...} | | main.rs:170:5:173:5 | MyThing | +| main.rs:385:21:385:37 | MyThing {...} | A | main.rs:181:5:182:14 | S1 | +| main.rs:385:34:385:35 | S1 | | main.rs:181:5:182:14 | S1 | +| main.rs:386:17:386:21 | thing | | main.rs:170:5:173:5 | MyThing | +| main.rs:386:17:386:21 | thing | A | main.rs:181:5:182:14 | S1 | +| main.rs:387:13:387:13 | j | | main.rs:181:5:182:14 | S1 | +| main.rs:387:17:387:33 | convert_to(...) | | main.rs:181:5:182:14 | S1 | +| main.rs:387:28:387:32 | thing | | main.rs:170:5:173:5 | MyThing | +| main.rs:387:28:387:32 | thing | A | main.rs:181:5:182:14 | S1 | +| main.rs:396:26:396:29 | SelfParam | | main.rs:395:5:399:5 | Self [trait OverlappingTrait] | +| main.rs:398:28:398:31 | SelfParam | | main.rs:395:5:399:5 | Self [trait OverlappingTrait] | +| main.rs:398:34:398:35 | s1 | | main.rs:392:5:393:14 | S1 | +| main.rs:403:26:403:29 | SelfParam | | main.rs:392:5:393:14 | S1 | +| main.rs:403:38:405:9 | { ... } | | main.rs:392:5:393:14 | S1 | +| main.rs:404:20:404:31 | "not called" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:408:28:408:31 | SelfParam | | main.rs:392:5:393:14 | S1 | +| main.rs:408:34:408:35 | s1 | | main.rs:392:5:393:14 | S1 | +| main.rs:408:48:410:9 | { ... } | | main.rs:392:5:393:14 | S1 | +| main.rs:409:20:409:31 | "not called" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:415:26:415:29 | SelfParam | | main.rs:392:5:393:14 | S1 | +| main.rs:415:38:417:9 | { ... } | | main.rs:392:5:393:14 | S1 | +| main.rs:416:13:416:16 | self | | main.rs:392:5:393:14 | S1 | +| main.rs:420:28:420:31 | SelfParam | | main.rs:392:5:393:14 | S1 | +| main.rs:420:40:422:9 | { ... } | | main.rs:392:5:393:14 | S1 | +| main.rs:421:13:421:16 | self | | main.rs:392:5:393:14 | S1 | +| main.rs:426:13:426:13 | x | | main.rs:392:5:393:14 | S1 | +| main.rs:426:17:426:18 | S1 | | main.rs:392:5:393:14 | S1 | +| main.rs:427:18:427:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:427:26:427:26 | x | | main.rs:392:5:393:14 | S1 | +| main.rs:427:26:427:42 | x.common_method() | | main.rs:392:5:393:14 | S1 | +| main.rs:428:18:428:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:428:26:428:26 | x | | main.rs:392:5:393:14 | S1 | +| main.rs:428:26:428:44 | x.common_method_2() | | main.rs:392:5:393:14 | S1 | +| main.rs:445:19:445:22 | SelfParam | | main.rs:443:5:446:5 | Self [trait FirstTrait] | +| main.rs:450:19:450:22 | SelfParam | | main.rs:448:5:451:5 | Self [trait SecondTrait] | +| main.rs:453:64:453:64 | x | | main.rs:453:45:453:61 | T | +| main.rs:455:13:455:14 | s1 | | main.rs:453:35:453:42 | I | +| main.rs:455:18:455:18 | x | | main.rs:453:45:453:61 | T | +| main.rs:455:18:455:27 | x.method() | | main.rs:453:35:453:42 | I | +| main.rs:456:18:456:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:456:26:456:27 | s1 | | main.rs:453:35:453:42 | I | +| main.rs:459:65:459:65 | x | | main.rs:459:46:459:62 | T | +| main.rs:461:13:461:14 | s2 | | main.rs:459:36:459:43 | I | +| main.rs:461:18:461:18 | x | | main.rs:459:46:459:62 | T | +| main.rs:461:18:461:27 | x.method() | | main.rs:459:36:459:43 | I | +| main.rs:462:18:462:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:462:26:462:27 | s2 | | main.rs:459:36:459:43 | I | +| main.rs:465:49:465:49 | x | | main.rs:465:30:465:46 | T | +| main.rs:466:13:466:13 | s | | main.rs:435:5:436:14 | S1 | +| main.rs:466:17:466:17 | x | | main.rs:465:30:465:46 | T | +| main.rs:466:17:466:26 | x.method() | | main.rs:435:5:436:14 | S1 | +| main.rs:467:18:467:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:467:26:467:26 | s | | main.rs:435:5:436:14 | S1 | +| main.rs:470:53:470:53 | x | | main.rs:470:34:470:50 | T | +| main.rs:471:13:471:13 | s | | main.rs:435:5:436:14 | S1 | +| main.rs:471:17:471:17 | x | | main.rs:470:34:470:50 | T | +| main.rs:471:17:471:26 | x.method() | | main.rs:435:5:436:14 | S1 | +| main.rs:472:18:472:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:472:26:472:26 | s | | main.rs:435:5:436:14 | S1 | +| main.rs:476:16:476:19 | SelfParam | | main.rs:475:5:479:5 | Self [trait Pair] | +| main.rs:478:16:478:19 | SelfParam | | main.rs:475:5:479:5 | Self [trait Pair] | +| main.rs:481:58:481:58 | x | | main.rs:481:41:481:55 | T | +| main.rs:481:64:481:64 | y | | main.rs:481:41:481:55 | T | +| main.rs:483:13:483:14 | s1 | | main.rs:435:5:436:14 | S1 | +| main.rs:483:18:483:18 | x | | main.rs:481:41:481:55 | T | +| main.rs:483:18:483:24 | x.fst() | | main.rs:435:5:436:14 | S1 | +| main.rs:484:13:484:14 | s2 | | main.rs:438:5:439:14 | S2 | +| main.rs:484:18:484:18 | y | | main.rs:481:41:481:55 | T | +| main.rs:484:18:484:24 | y.snd() | | main.rs:438:5:439:14 | S2 | +| main.rs:485:18:485:29 | "{:?}, {:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:485:32:485:33 | s1 | | main.rs:435:5:436:14 | S1 | +| main.rs:485:36:485:37 | s2 | | main.rs:438:5:439:14 | S2 | +| main.rs:488:69:488:69 | x | | main.rs:488:52:488:66 | T | +| main.rs:488:75:488:75 | y | | main.rs:488:52:488:66 | T | +| main.rs:490:13:490:14 | s1 | | main.rs:435:5:436:14 | S1 | +| main.rs:490:18:490:18 | x | | main.rs:488:52:488:66 | T | +| main.rs:490:18:490:24 | x.fst() | | main.rs:435:5:436:14 | S1 | +| main.rs:491:13:491:14 | s2 | | main.rs:488:41:488:49 | T2 | +| main.rs:491:18:491:18 | y | | main.rs:488:52:488:66 | T | +| main.rs:491:18:491:24 | y.snd() | | main.rs:488:41:488:49 | T2 | +| main.rs:492:18:492:29 | "{:?}, {:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:492:32:492:33 | s1 | | main.rs:435:5:436:14 | S1 | +| main.rs:492:36:492:37 | s2 | | main.rs:488:41:488:49 | T2 | +| main.rs:508:15:508:18 | SelfParam | | main.rs:507:5:516:5 | Self [trait MyTrait] | +| main.rs:510:15:510:18 | SelfParam | | main.rs:507:5:516:5 | Self [trait MyTrait] | +| main.rs:513:9:515:9 | { ... } | | main.rs:507:19:507:19 | A | +| main.rs:514:13:514:16 | self | | main.rs:507:5:516:5 | Self [trait MyTrait] | +| main.rs:514:13:514:21 | self.m1() | | main.rs:507:19:507:19 | A | +| main.rs:519:43:519:43 | x | | main.rs:519:26:519:40 | T2 | +| main.rs:519:56:521:5 | { ... } | | main.rs:519:22:519:23 | T1 | +| main.rs:520:9:520:9 | x | | main.rs:519:26:519:40 | T2 | +| main.rs:520:9:520:14 | x.m1() | | main.rs:519:22:519:23 | T1 | +| main.rs:524:49:524:49 | x | | main.rs:497:5:500:5 | MyThing | +| main.rs:524:49:524:49 | x | T | main.rs:524:32:524:46 | T2 | +| main.rs:524:71:526:5 | { ... } | | main.rs:524:28:524:29 | T1 | +| main.rs:525:9:525:9 | x | | main.rs:497:5:500:5 | MyThing | +| main.rs:525:9:525:9 | x | T | main.rs:524:32:524:46 | T2 | +| main.rs:525:9:525:11 | x.a | | main.rs:524:32:524:46 | T2 | +| main.rs:525:9:525:16 | ... .m1() | | main.rs:524:28:524:29 | T1 | +| main.rs:529:15:529:18 | SelfParam | | main.rs:497:5:500:5 | MyThing | +| main.rs:529:15:529:18 | SelfParam | T | main.rs:528:10:528:10 | T | +| main.rs:529:26:531:9 | { ... } | | main.rs:528:10:528:10 | T | +| main.rs:530:13:530:16 | self | | main.rs:497:5:500:5 | MyThing | +| main.rs:530:13:530:16 | self | T | main.rs:528:10:528:10 | T | +| main.rs:530:13:530:18 | self.a | | main.rs:528:10:528:10 | T | +| main.rs:535:13:535:13 | x | | main.rs:497:5:500:5 | MyThing | +| main.rs:535:13:535:13 | x | T | main.rs:502:5:503:14 | S1 | +| main.rs:535:17:535:33 | MyThing {...} | | main.rs:497:5:500:5 | MyThing | +| main.rs:535:17:535:33 | MyThing {...} | T | main.rs:502:5:503:14 | S1 | +| main.rs:535:30:535:31 | S1 | | main.rs:502:5:503:14 | S1 | +| main.rs:536:13:536:13 | y | | main.rs:497:5:500:5 | MyThing | +| main.rs:536:13:536:13 | y | T | main.rs:504:5:505:14 | S2 | +| main.rs:536:17:536:33 | MyThing {...} | | main.rs:497:5:500:5 | MyThing | +| main.rs:536:17:536:33 | MyThing {...} | T | main.rs:504:5:505:14 | S2 | +| main.rs:536:30:536:31 | S2 | | main.rs:504:5:505:14 | S2 | +| main.rs:538:18:538:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:538:26:538:26 | x | | main.rs:497:5:500:5 | MyThing | +| main.rs:538:26:538:26 | x | T | main.rs:502:5:503:14 | S1 | +| main.rs:538:26:538:31 | x.m1() | | main.rs:502:5:503:14 | S1 | +| main.rs:539:18:539:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:539:26:539:26 | y | | main.rs:497:5:500:5 | MyThing | +| main.rs:539:26:539:26 | y | T | main.rs:504:5:505:14 | S2 | +| main.rs:539:26:539:31 | y.m1() | | main.rs:504:5:505:14 | S2 | +| main.rs:541:13:541:13 | x | | main.rs:497:5:500:5 | MyThing | +| main.rs:541:13:541:13 | x | T | main.rs:502:5:503:14 | S1 | +| main.rs:541:17:541:33 | MyThing {...} | | main.rs:497:5:500:5 | MyThing | +| main.rs:541:17:541:33 | MyThing {...} | T | main.rs:502:5:503:14 | S1 | +| main.rs:541:30:541:31 | S1 | | main.rs:502:5:503:14 | S1 | +| main.rs:542:13:542:13 | y | | main.rs:497:5:500:5 | MyThing | +| main.rs:542:13:542:13 | y | T | main.rs:504:5:505:14 | S2 | +| main.rs:542:17:542:33 | MyThing {...} | | main.rs:497:5:500:5 | MyThing | +| main.rs:542:17:542:33 | MyThing {...} | T | main.rs:504:5:505:14 | S2 | +| main.rs:542:30:542:31 | S2 | | main.rs:504:5:505:14 | S2 | +| main.rs:544:18:544:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:544:26:544:26 | x | | main.rs:497:5:500:5 | MyThing | +| main.rs:544:26:544:26 | x | T | main.rs:502:5:503:14 | S1 | +| main.rs:544:26:544:31 | x.m2() | | main.rs:502:5:503:14 | S1 | +| main.rs:545:18:545:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:545:26:545:26 | y | | main.rs:497:5:500:5 | MyThing | +| main.rs:545:26:545:26 | y | T | main.rs:504:5:505:14 | S2 | +| main.rs:545:26:545:31 | y.m2() | | main.rs:504:5:505:14 | S2 | +| main.rs:547:13:547:14 | x2 | | main.rs:497:5:500:5 | MyThing | +| main.rs:547:13:547:14 | x2 | T | main.rs:502:5:503:14 | S1 | +| main.rs:547:18:547:34 | MyThing {...} | | main.rs:497:5:500:5 | MyThing | +| main.rs:547:18:547:34 | MyThing {...} | T | main.rs:502:5:503:14 | S1 | +| main.rs:547:31:547:32 | S1 | | main.rs:502:5:503:14 | S1 | +| main.rs:548:13:548:14 | y2 | | main.rs:497:5:500:5 | MyThing | +| main.rs:548:13:548:14 | y2 | T | main.rs:504:5:505:14 | S2 | +| main.rs:548:18:548:34 | MyThing {...} | | main.rs:497:5:500:5 | MyThing | +| main.rs:548:18:548:34 | MyThing {...} | T | main.rs:504:5:505:14 | S2 | +| main.rs:548:31:548:32 | S2 | | main.rs:504:5:505:14 | S2 | +| main.rs:550:18:550:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:550:26:550:42 | call_trait_m1(...) | | main.rs:502:5:503:14 | S1 | +| main.rs:550:40:550:41 | x2 | | main.rs:497:5:500:5 | MyThing | +| main.rs:550:40:550:41 | x2 | T | main.rs:502:5:503:14 | S1 | +| main.rs:551:18:551:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:551:26:551:42 | call_trait_m1(...) | | main.rs:504:5:505:14 | S2 | +| main.rs:551:40:551:41 | y2 | | main.rs:497:5:500:5 | MyThing | +| main.rs:551:40:551:41 | y2 | T | main.rs:504:5:505:14 | S2 | +| main.rs:553:13:553:14 | x3 | | main.rs:497:5:500:5 | MyThing | +| main.rs:553:13:553:14 | x3 | T | main.rs:497:5:500:5 | MyThing | +| main.rs:553:13:553:14 | x3 | T.T | main.rs:502:5:503:14 | S1 | +| main.rs:553:18:555:9 | MyThing {...} | | main.rs:497:5:500:5 | MyThing | +| main.rs:553:18:555:9 | MyThing {...} | T | main.rs:497:5:500:5 | MyThing | +| main.rs:553:18:555:9 | MyThing {...} | T.T | main.rs:502:5:503:14 | S1 | +| main.rs:554:16:554:32 | MyThing {...} | | main.rs:497:5:500:5 | MyThing | +| main.rs:554:16:554:32 | MyThing {...} | T | main.rs:502:5:503:14 | S1 | +| main.rs:554:29:554:30 | S1 | | main.rs:502:5:503:14 | S1 | +| main.rs:556:13:556:14 | y3 | | main.rs:497:5:500:5 | MyThing | +| main.rs:556:13:556:14 | y3 | T | main.rs:497:5:500:5 | MyThing | +| main.rs:556:13:556:14 | y3 | T.T | main.rs:504:5:505:14 | S2 | +| main.rs:556:18:558:9 | MyThing {...} | | main.rs:497:5:500:5 | MyThing | +| main.rs:556:18:558:9 | MyThing {...} | T | main.rs:497:5:500:5 | MyThing | +| main.rs:556:18:558:9 | MyThing {...} | T.T | main.rs:504:5:505:14 | S2 | +| main.rs:557:16:557:32 | MyThing {...} | | main.rs:497:5:500:5 | MyThing | +| main.rs:557:16:557:32 | MyThing {...} | T | main.rs:504:5:505:14 | S2 | +| main.rs:557:29:557:30 | S2 | | main.rs:504:5:505:14 | S2 | +| main.rs:560:13:560:13 | a | | main.rs:502:5:503:14 | S1 | +| main.rs:560:17:560:39 | call_trait_thing_m1(...) | | main.rs:502:5:503:14 | S1 | +| main.rs:560:37:560:38 | x3 | | main.rs:497:5:500:5 | MyThing | +| main.rs:560:37:560:38 | x3 | T | main.rs:497:5:500:5 | MyThing | +| main.rs:560:37:560:38 | x3 | T.T | main.rs:502:5:503:14 | S1 | +| main.rs:561:18:561:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:561:26:561:26 | a | | main.rs:502:5:503:14 | S1 | +| main.rs:562:13:562:13 | b | | main.rs:504:5:505:14 | S2 | +| main.rs:562:17:562:39 | call_trait_thing_m1(...) | | main.rs:504:5:505:14 | S2 | +| main.rs:562:37:562:38 | y3 | | main.rs:497:5:500:5 | MyThing | +| main.rs:562:37:562:38 | y3 | T | main.rs:497:5:500:5 | MyThing | +| main.rs:562:37:562:38 | y3 | T.T | main.rs:504:5:505:14 | S2 | +| main.rs:563:18:563:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:563:26:563:26 | b | | main.rs:504:5:505:14 | S2 | +| main.rs:574:19:574:22 | SelfParam | | main.rs:568:5:571:5 | Wrapper | +| main.rs:574:19:574:22 | SelfParam | A | main.rs:573:10:573:10 | A | +| main.rs:574:30:576:9 | { ... } | | main.rs:573:10:573:10 | A | +| main.rs:575:13:575:16 | self | | main.rs:568:5:571:5 | Wrapper | +| main.rs:575:13:575:16 | self | A | main.rs:573:10:573:10 | A | +| main.rs:575:13:575:22 | self.field | | main.rs:573:10:573:10 | A | +| main.rs:583:15:583:18 | SelfParam | | main.rs:579:5:593:5 | Self [trait MyTrait] | +| main.rs:585:15:585:18 | SelfParam | | main.rs:579:5:593:5 | Self [trait MyTrait] | +| main.rs:589:9:592:9 | { ... } | | main.rs:580:9:580:28 | AssociatedType | +| main.rs:590:13:590:16 | self | | main.rs:579:5:593:5 | Self [trait MyTrait] | +| main.rs:590:13:590:21 | self.m1() | | main.rs:580:9:580:28 | AssociatedType | +| main.rs:591:13:591:43 | ...::default(...) | | main.rs:580:9:580:28 | AssociatedType | +| main.rs:599:19:599:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:599:19:599:23 | SelfParam | &T | main.rs:595:5:605:5 | Self [trait MyTraitAssoc2] | +| main.rs:599:26:599:26 | a | | main.rs:599:16:599:16 | A | +| main.rs:601:22:601:26 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:601:22:601:26 | SelfParam | &T | main.rs:595:5:605:5 | Self [trait MyTraitAssoc2] | +| main.rs:601:29:601:29 | a | | main.rs:601:19:601:19 | A | +| main.rs:601:35:601:35 | b | | main.rs:601:19:601:19 | A | +| main.rs:601:75:604:9 | { ... } | | main.rs:596:9:596:52 | GenericAssociatedType | +| main.rs:602:13:602:16 | self | | file://:0:0:0:0 | & | +| main.rs:602:13:602:16 | self | &T | main.rs:595:5:605:5 | Self [trait MyTraitAssoc2] | +| main.rs:602:13:602:23 | self.put(...) | | main.rs:596:9:596:52 | GenericAssociatedType | +| main.rs:602:22:602:22 | a | | main.rs:601:19:601:19 | A | +| main.rs:603:13:603:16 | self | | file://:0:0:0:0 | & | +| main.rs:603:13:603:16 | self | &T | main.rs:595:5:605:5 | Self [trait MyTraitAssoc2] | +| main.rs:603:13:603:23 | self.put(...) | | main.rs:596:9:596:52 | GenericAssociatedType | +| main.rs:603:22:603:22 | b | | main.rs:601:19:601:19 | A | +| main.rs:612:21:612:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:612:21:612:25 | SelfParam | &T | main.rs:607:5:617:5 | Self [trait TraitMultipleAssoc] | +| main.rs:614:20:614:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:614:20:614:24 | SelfParam | &T | main.rs:607:5:617:5 | Self [trait TraitMultipleAssoc] | +| main.rs:616:20:616:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:616:20:616:24 | SelfParam | &T | main.rs:607:5:617:5 | Self [trait TraitMultipleAssoc] | +| main.rs:632:15:632:18 | SelfParam | | main.rs:619:5:620:13 | S | +| main.rs:632:45:634:9 | { ... } | | main.rs:625:5:626:14 | AT | +| main.rs:633:13:633:14 | AT | | main.rs:625:5:626:14 | AT | +| main.rs:642:19:642:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:642:19:642:23 | SelfParam | &T | main.rs:619:5:620:13 | S | +| main.rs:642:26:642:26 | a | | main.rs:642:16:642:16 | A | +| main.rs:642:46:644:9 | { ... } | | main.rs:568:5:571:5 | Wrapper | +| main.rs:642:46:644:9 | { ... } | A | main.rs:642:16:642:16 | A | +| main.rs:643:13:643:32 | Wrapper {...} | | main.rs:568:5:571:5 | Wrapper | +| main.rs:643:13:643:32 | Wrapper {...} | A | main.rs:642:16:642:16 | A | +| main.rs:643:30:643:30 | a | | main.rs:642:16:642:16 | A | +| main.rs:651:15:651:18 | SelfParam | | main.rs:622:5:623:14 | S2 | +| main.rs:651:45:653:9 | { ... } | | main.rs:568:5:571:5 | Wrapper | +| main.rs:651:45:653:9 | { ... } | A | main.rs:622:5:623:14 | S2 | +| main.rs:652:13:652:35 | Wrapper {...} | | main.rs:568:5:571:5 | Wrapper | +| main.rs:652:13:652:35 | Wrapper {...} | A | main.rs:622:5:623:14 | S2 | +| main.rs:652:30:652:33 | self | | main.rs:622:5:623:14 | S2 | +| main.rs:658:30:660:9 | { ... } | | main.rs:568:5:571:5 | Wrapper | +| main.rs:658:30:660:9 | { ... } | A | main.rs:622:5:623:14 | S2 | +| main.rs:659:13:659:33 | Wrapper {...} | | main.rs:568:5:571:5 | Wrapper | +| main.rs:659:13:659:33 | Wrapper {...} | A | main.rs:622:5:623:14 | S2 | +| main.rs:659:30:659:31 | S2 | | main.rs:622:5:623:14 | S2 | +| main.rs:664:22:664:26 | thing | | main.rs:664:10:664:19 | T | +| main.rs:665:9:665:13 | thing | | main.rs:664:10:664:19 | T | +| main.rs:672:21:672:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:672:21:672:25 | SelfParam | &T | main.rs:625:5:626:14 | AT | +| main.rs:672:34:674:9 | { ... } | | main.rs:625:5:626:14 | AT | +| main.rs:673:13:673:14 | AT | | main.rs:625:5:626:14 | AT | +| main.rs:676:20:676:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:676:20:676:24 | SelfParam | &T | main.rs:625:5:626:14 | AT | +| main.rs:676:43:678:9 | { ... } | | main.rs:619:5:620:13 | S | +| main.rs:677:13:677:13 | S | | main.rs:619:5:620:13 | S | +| main.rs:680:20:680:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:680:20:680:24 | SelfParam | &T | main.rs:625:5:626:14 | AT | +| main.rs:680:43:682:9 | { ... } | | main.rs:622:5:623:14 | S2 | +| main.rs:681:13:681:14 | S2 | | main.rs:622:5:623:14 | S2 | +| main.rs:686:13:686:14 | x1 | | main.rs:619:5:620:13 | S | +| main.rs:686:18:686:18 | S | | main.rs:619:5:620:13 | S | +| main.rs:688:18:688:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:688:26:688:27 | x1 | | main.rs:619:5:620:13 | S | +| main.rs:688:26:688:32 | x1.m1() | | main.rs:625:5:626:14 | AT | +| main.rs:690:13:690:14 | x2 | | main.rs:619:5:620:13 | S | +| main.rs:690:18:690:18 | S | | main.rs:619:5:620:13 | S | +| main.rs:692:13:692:13 | y | | main.rs:625:5:626:14 | AT | +| main.rs:692:17:692:18 | x2 | | main.rs:619:5:620:13 | S | +| main.rs:692:17:692:23 | x2.m2() | | main.rs:625:5:626:14 | AT | +| main.rs:693:18:693:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:693:26:693:26 | y | | main.rs:625:5:626:14 | AT | +| main.rs:695:13:695:14 | x3 | | main.rs:619:5:620:13 | S | +| main.rs:695:18:695:18 | S | | main.rs:619:5:620:13 | S | +| main.rs:697:18:697:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:697:26:697:27 | x3 | | main.rs:619:5:620:13 | S | +| main.rs:697:26:697:34 | x3.put(...) | | main.rs:568:5:571:5 | Wrapper | +| main.rs:697:26:697:34 | x3.put(...) | A | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:697:26:697:43 | ... .unwrap() | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:697:33:697:33 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:700:18:700:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:700:26:700:27 | x3 | | main.rs:619:5:620:13 | S | +| main.rs:700:36:700:36 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:700:39:700:39 | 3 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:702:20:702:20 | S | | main.rs:619:5:620:13 | S | +| main.rs:703:18:703:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:705:13:705:14 | x5 | | main.rs:622:5:623:14 | S2 | +| main.rs:705:18:705:19 | S2 | | main.rs:622:5:623:14 | S2 | +| main.rs:706:18:706:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:706:26:706:27 | x5 | | main.rs:622:5:623:14 | S2 | +| main.rs:706:26:706:32 | x5.m1() | | main.rs:568:5:571:5 | Wrapper | +| main.rs:706:26:706:32 | x5.m1() | A | main.rs:622:5:623:14 | S2 | +| main.rs:707:13:707:14 | x6 | | main.rs:622:5:623:14 | S2 | +| main.rs:707:18:707:19 | S2 | | main.rs:622:5:623:14 | S2 | +| main.rs:708:18:708:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:708:26:708:27 | x6 | | main.rs:622:5:623:14 | S2 | +| main.rs:708:26:708:32 | x6.m2() | | main.rs:568:5:571:5 | Wrapper | +| main.rs:708:26:708:32 | x6.m2() | A | main.rs:622:5:623:14 | S2 | +| main.rs:710:13:710:22 | assoc_zero | | main.rs:625:5:626:14 | AT | +| main.rs:710:26:710:27 | AT | | main.rs:625:5:626:14 | AT | +| main.rs:710:26:710:38 | AT.get_zero() | | main.rs:625:5:626:14 | AT | +| main.rs:711:13:711:21 | assoc_one | | main.rs:619:5:620:13 | S | +| main.rs:711:25:711:26 | AT | | main.rs:625:5:626:14 | AT | +| main.rs:711:25:711:36 | AT.get_one() | | main.rs:619:5:620:13 | S | +| main.rs:712:13:712:21 | assoc_two | | main.rs:622:5:623:14 | S2 | +| main.rs:712:25:712:26 | AT | | main.rs:625:5:626:14 | AT | +| main.rs:712:25:712:36 | AT.get_two() | | main.rs:622:5:623:14 | S2 | +| main.rs:729:15:729:18 | SelfParam | | main.rs:717:5:721:5 | MyEnum | +| main.rs:729:15:729:18 | SelfParam | A | main.rs:728:10:728:10 | T | +| main.rs:729:26:734:9 | { ... } | | main.rs:728:10:728:10 | T | +| main.rs:730:13:733:13 | match self { ... } | | main.rs:728:10:728:10 | T | +| main.rs:730:19:730:22 | self | | main.rs:717:5:721:5 | MyEnum | +| main.rs:730:19:730:22 | self | A | main.rs:728:10:728:10 | T | +| main.rs:731:28:731:28 | a | | main.rs:728:10:728:10 | T | +| main.rs:731:34:731:34 | a | | main.rs:728:10:728:10 | T | +| main.rs:732:30:732:30 | a | | main.rs:728:10:728:10 | T | +| main.rs:732:37:732:37 | a | | main.rs:728:10:728:10 | T | +| main.rs:738:13:738:13 | x | | main.rs:717:5:721:5 | MyEnum | +| main.rs:738:13:738:13 | x | A | main.rs:723:5:724:14 | S1 | +| main.rs:738:17:738:30 | ...::C1(...) | | main.rs:717:5:721:5 | MyEnum | +| main.rs:738:17:738:30 | ...::C1(...) | A | main.rs:723:5:724:14 | S1 | +| main.rs:738:28:738:29 | S1 | | main.rs:723:5:724:14 | S1 | +| main.rs:739:13:739:13 | y | | main.rs:717:5:721:5 | MyEnum | +| main.rs:739:13:739:13 | y | A | main.rs:725:5:726:14 | S2 | +| main.rs:739:17:739:36 | ...::C2 {...} | | main.rs:717:5:721:5 | MyEnum | +| main.rs:739:17:739:36 | ...::C2 {...} | A | main.rs:725:5:726:14 | S2 | +| main.rs:739:33:739:34 | S2 | | main.rs:725:5:726:14 | S2 | +| main.rs:741:18:741:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:741:26:741:26 | x | | main.rs:717:5:721:5 | MyEnum | +| main.rs:741:26:741:26 | x | A | main.rs:723:5:724:14 | S1 | +| main.rs:741:26:741:31 | x.m1() | | main.rs:723:5:724:14 | S1 | +| main.rs:742:18:742:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:742:26:742:26 | y | | main.rs:717:5:721:5 | MyEnum | +| main.rs:742:26:742:26 | y | A | main.rs:725:5:726:14 | S2 | +| main.rs:742:26:742:31 | y.m1() | | main.rs:725:5:726:14 | S2 | +| main.rs:764:15:764:18 | SelfParam | | main.rs:762:5:765:5 | Self [trait MyTrait1] | +| main.rs:768:15:768:18 | SelfParam | | main.rs:767:5:778:5 | Self [trait MyTrait2] | +| main.rs:771:9:777:9 | { ... } | | main.rs:767:20:767:22 | Tr2 | +| main.rs:772:13:776:13 | if ... {...} else {...} | | main.rs:767:20:767:22 | Tr2 | +| main.rs:772:16:772:16 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:772:20:772:20 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:772:24:772:24 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:772:26:774:13 | { ... } | | main.rs:767:20:767:22 | Tr2 | +| main.rs:773:17:773:20 | self | | main.rs:767:5:778:5 | Self [trait MyTrait2] | +| main.rs:773:17:773:25 | self.m1() | | main.rs:767:20:767:22 | Tr2 | +| main.rs:774:20:776:13 | { ... } | | main.rs:767:20:767:22 | Tr2 | +| main.rs:775:17:775:30 | ...::m1(...) | | main.rs:767:20:767:22 | Tr2 | +| main.rs:775:26:775:29 | self | | main.rs:767:5:778:5 | Self [trait MyTrait2] | +| main.rs:781:15:781:18 | SelfParam | | main.rs:780:5:791:5 | Self [trait MyTrait3] | +| main.rs:784:9:790:9 | { ... } | | main.rs:780:20:780:22 | Tr3 | +| main.rs:785:13:789:13 | if ... {...} else {...} | | main.rs:780:20:780:22 | Tr3 | +| main.rs:785:16:785:16 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:785:20:785:20 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:785:24:785:24 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:785:26:787:13 | { ... } | | main.rs:780:20:780:22 | Tr3 | +| main.rs:786:17:786:20 | self | | main.rs:780:5:791:5 | Self [trait MyTrait3] | +| main.rs:786:17:786:25 | self.m2() | | main.rs:747:5:750:5 | MyThing | +| main.rs:786:17:786:25 | self.m2() | A | main.rs:780:20:780:22 | Tr3 | +| main.rs:786:17:786:27 | ... .a | | main.rs:780:20:780:22 | Tr3 | +| main.rs:787:20:789:13 | { ... } | | main.rs:780:20:780:22 | Tr3 | +| main.rs:788:17:788:30 | ...::m2(...) | | main.rs:747:5:750:5 | MyThing | +| main.rs:788:17:788:30 | ...::m2(...) | A | main.rs:780:20:780:22 | Tr3 | +| main.rs:788:17:788:32 | ... .a | | main.rs:780:20:780:22 | Tr3 | +| main.rs:788:26:788:29 | self | | main.rs:780:5:791:5 | Self [trait MyTrait3] | +| main.rs:795:15:795:18 | SelfParam | | main.rs:747:5:750:5 | MyThing | +| main.rs:795:15:795:18 | SelfParam | A | main.rs:793:10:793:10 | T | +| main.rs:795:26:797:9 | { ... } | | main.rs:793:10:793:10 | T | +| main.rs:796:13:796:16 | self | | main.rs:747:5:750:5 | MyThing | +| main.rs:796:13:796:16 | self | A | main.rs:793:10:793:10 | T | +| main.rs:796:13:796:18 | self.a | | main.rs:793:10:793:10 | T | +| main.rs:804:15:804:18 | SelfParam | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:804:15:804:18 | SelfParam | A | main.rs:802:10:802:10 | T | +| main.rs:804:35:806:9 | { ... } | | main.rs:747:5:750:5 | MyThing | +| main.rs:804:35:806:9 | { ... } | A | main.rs:802:10:802:10 | T | +| main.rs:805:13:805:33 | MyThing {...} | | main.rs:747:5:750:5 | MyThing | +| main.rs:805:13:805:33 | MyThing {...} | A | main.rs:802:10:802:10 | T | +| main.rs:805:26:805:29 | self | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:805:26:805:29 | self | A | main.rs:802:10:802:10 | T | +| main.rs:805:26:805:31 | self.a | | main.rs:802:10:802:10 | T | +| main.rs:813:44:813:44 | x | | main.rs:813:26:813:41 | T2 | +| main.rs:813:57:815:5 | { ... } | | main.rs:813:22:813:23 | T1 | +| main.rs:814:9:814:9 | x | | main.rs:813:26:813:41 | T2 | +| main.rs:814:9:814:14 | x.m1() | | main.rs:813:22:813:23 | T1 | +| main.rs:817:56:817:56 | x | | main.rs:817:39:817:53 | T | +| main.rs:819:13:819:13 | a | | main.rs:747:5:750:5 | MyThing | +| main.rs:819:13:819:13 | a | A | main.rs:757:5:758:14 | S1 | +| main.rs:819:17:819:17 | x | | main.rs:817:39:817:53 | T | +| main.rs:819:17:819:22 | x.m1() | | main.rs:747:5:750:5 | MyThing | +| main.rs:819:17:819:22 | x.m1() | A | main.rs:757:5:758:14 | S1 | +| main.rs:820:18:820:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:820:26:820:26 | a | | main.rs:747:5:750:5 | MyThing | +| main.rs:820:26:820:26 | a | A | main.rs:757:5:758:14 | S1 | +| main.rs:824:13:824:13 | x | | main.rs:747:5:750:5 | MyThing | +| main.rs:824:13:824:13 | x | A | main.rs:757:5:758:14 | S1 | +| main.rs:824:17:824:33 | MyThing {...} | | main.rs:747:5:750:5 | MyThing | +| main.rs:824:17:824:33 | MyThing {...} | A | main.rs:757:5:758:14 | S1 | +| main.rs:824:30:824:31 | S1 | | main.rs:757:5:758:14 | S1 | +| main.rs:825:13:825:13 | y | | main.rs:747:5:750:5 | MyThing | +| main.rs:825:13:825:13 | y | A | main.rs:759:5:760:14 | S2 | +| main.rs:825:17:825:33 | MyThing {...} | | main.rs:747:5:750:5 | MyThing | +| main.rs:825:17:825:33 | MyThing {...} | A | main.rs:759:5:760:14 | S2 | +| main.rs:825:30:825:31 | S2 | | main.rs:759:5:760:14 | S2 | +| main.rs:827:18:827:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:827:26:827:26 | x | | main.rs:747:5:750:5 | MyThing | +| main.rs:827:26:827:26 | x | A | main.rs:757:5:758:14 | S1 | +| main.rs:827:26:827:31 | x.m1() | | main.rs:757:5:758:14 | S1 | +| main.rs:828:18:828:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:828:26:828:26 | y | | main.rs:747:5:750:5 | MyThing | +| main.rs:828:26:828:26 | y | A | main.rs:759:5:760:14 | S2 | +| main.rs:828:26:828:31 | y.m1() | | main.rs:759:5:760:14 | S2 | +| main.rs:830:13:830:13 | x | | main.rs:747:5:750:5 | MyThing | +| main.rs:830:13:830:13 | x | A | main.rs:757:5:758:14 | S1 | +| main.rs:830:17:830:33 | MyThing {...} | | main.rs:747:5:750:5 | MyThing | +| main.rs:830:17:830:33 | MyThing {...} | A | main.rs:757:5:758:14 | S1 | +| main.rs:830:30:830:31 | S1 | | main.rs:757:5:758:14 | S1 | +| main.rs:831:13:831:13 | y | | main.rs:747:5:750:5 | MyThing | +| main.rs:831:13:831:13 | y | A | main.rs:759:5:760:14 | S2 | +| main.rs:831:17:831:33 | MyThing {...} | | main.rs:747:5:750:5 | MyThing | +| main.rs:831:17:831:33 | MyThing {...} | A | main.rs:759:5:760:14 | S2 | +| main.rs:831:30:831:31 | S2 | | main.rs:759:5:760:14 | S2 | +| main.rs:833:18:833:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:833:26:833:26 | x | | main.rs:747:5:750:5 | MyThing | +| main.rs:833:26:833:26 | x | A | main.rs:757:5:758:14 | S1 | +| main.rs:833:26:833:31 | x.m2() | | main.rs:757:5:758:14 | S1 | +| main.rs:834:18:834:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:834:26:834:26 | y | | main.rs:747:5:750:5 | MyThing | +| main.rs:834:26:834:26 | y | A | main.rs:759:5:760:14 | S2 | +| main.rs:834:26:834:31 | y.m2() | | main.rs:759:5:760:14 | S2 | +| main.rs:836:13:836:13 | x | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:836:13:836:13 | x | A | main.rs:757:5:758:14 | S1 | +| main.rs:836:17:836:34 | MyThing2 {...} | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:836:17:836:34 | MyThing2 {...} | A | main.rs:757:5:758:14 | S1 | +| main.rs:836:31:836:32 | S1 | | main.rs:757:5:758:14 | S1 | +| main.rs:837:13:837:13 | y | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:837:13:837:13 | y | A | main.rs:759:5:760:14 | S2 | +| main.rs:837:17:837:34 | MyThing2 {...} | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:837:17:837:34 | MyThing2 {...} | A | main.rs:759:5:760:14 | S2 | +| main.rs:837:31:837:32 | S2 | | main.rs:759:5:760:14 | S2 | +| main.rs:839:18:839:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:839:26:839:26 | x | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:839:26:839:26 | x | A | main.rs:757:5:758:14 | S1 | +| main.rs:839:26:839:31 | x.m3() | | main.rs:757:5:758:14 | S1 | +| main.rs:840:18:840:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:840:26:840:26 | y | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:840:26:840:26 | y | A | main.rs:759:5:760:14 | S2 | +| main.rs:840:26:840:31 | y.m3() | | main.rs:759:5:760:14 | S2 | +| main.rs:842:13:842:13 | x | | main.rs:747:5:750:5 | MyThing | +| main.rs:842:13:842:13 | x | A | main.rs:757:5:758:14 | S1 | +| main.rs:842:17:842:33 | MyThing {...} | | main.rs:747:5:750:5 | MyThing | +| main.rs:842:17:842:33 | MyThing {...} | A | main.rs:757:5:758:14 | S1 | +| main.rs:842:30:842:31 | S1 | | main.rs:757:5:758:14 | S1 | +| main.rs:843:13:843:13 | s | | main.rs:757:5:758:14 | S1 | +| main.rs:843:17:843:32 | call_trait_m1(...) | | main.rs:757:5:758:14 | S1 | +| main.rs:843:31:843:31 | x | | main.rs:747:5:750:5 | MyThing | +| main.rs:843:31:843:31 | x | A | main.rs:757:5:758:14 | S1 | +| main.rs:845:13:845:13 | x | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:845:13:845:13 | x | A | main.rs:759:5:760:14 | S2 | +| main.rs:845:17:845:34 | MyThing2 {...} | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:845:17:845:34 | MyThing2 {...} | A | main.rs:759:5:760:14 | S2 | +| main.rs:845:31:845:32 | S2 | | main.rs:759:5:760:14 | S2 | +| main.rs:846:13:846:13 | s | | main.rs:747:5:750:5 | MyThing | +| main.rs:846:13:846:13 | s | A | main.rs:759:5:760:14 | S2 | +| main.rs:846:17:846:32 | call_trait_m1(...) | | main.rs:747:5:750:5 | MyThing | +| main.rs:846:17:846:32 | call_trait_m1(...) | A | main.rs:759:5:760:14 | S2 | +| main.rs:846:31:846:31 | x | | main.rs:752:5:755:5 | MyThing2 | +| main.rs:846:31:846:31 | x | A | main.rs:759:5:760:14 | S2 | +| main.rs:864:22:864:22 | x | | file://:0:0:0:0 | & | +| main.rs:864:22:864:22 | x | &T | main.rs:864:11:864:19 | T | +| main.rs:864:35:866:5 | { ... } | | file://:0:0:0:0 | & | +| main.rs:864:35:866:5 | { ... } | &T | main.rs:864:11:864:19 | T | +| main.rs:865:9:865:9 | x | | file://:0:0:0:0 | & | +| main.rs:865:9:865:9 | x | &T | main.rs:864:11:864:19 | T | +| main.rs:869:17:869:20 | SelfParam | | main.rs:854:5:855:14 | S1 | +| main.rs:869:29:871:9 | { ... } | | main.rs:857:5:858:14 | S2 | +| main.rs:870:13:870:14 | S2 | | main.rs:857:5:858:14 | S2 | +| main.rs:874:21:874:21 | x | | main.rs:874:13:874:14 | T1 | +| main.rs:877:5:879:5 | { ... } | | main.rs:874:17:874:18 | T2 | +| main.rs:878:9:878:9 | x | | main.rs:874:13:874:14 | T1 | +| main.rs:878:9:878:16 | x.into() | | main.rs:874:17:874:18 | T2 | +| main.rs:882:13:882:13 | x | | main.rs:854:5:855:14 | S1 | +| main.rs:882:17:882:18 | S1 | | main.rs:854:5:855:14 | S1 | +| main.rs:883:18:883:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:883:26:883:31 | id(...) | | file://:0:0:0:0 | & | +| main.rs:883:26:883:31 | id(...) | &T | main.rs:854:5:855:14 | S1 | +| main.rs:883:29:883:30 | &x | | file://:0:0:0:0 | & | +| main.rs:883:29:883:30 | &x | &T | main.rs:854:5:855:14 | S1 | +| main.rs:883:30:883:30 | x | | main.rs:854:5:855:14 | S1 | +| main.rs:885:13:885:13 | x | | main.rs:854:5:855:14 | S1 | +| main.rs:885:17:885:18 | S1 | | main.rs:854:5:855:14 | S1 | +| main.rs:886:18:886:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:886:26:886:37 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:886:26:886:37 | id::<...>(...) | &T | main.rs:854:5:855:14 | S1 | +| main.rs:886:35:886:36 | &x | | file://:0:0:0:0 | & | +| main.rs:886:35:886:36 | &x | &T | main.rs:854:5:855:14 | S1 | +| main.rs:886:36:886:36 | x | | main.rs:854:5:855:14 | S1 | +| main.rs:888:13:888:13 | x | | main.rs:854:5:855:14 | S1 | +| main.rs:888:17:888:18 | S1 | | main.rs:854:5:855:14 | S1 | +| main.rs:889:18:889:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:889:26:889:44 | id::<...>(...) | | file://:0:0:0:0 | & | +| main.rs:889:26:889:44 | id::<...>(...) | &T | main.rs:854:5:855:14 | S1 | +| main.rs:889:42:889:43 | &x | | file://:0:0:0:0 | & | +| main.rs:889:42:889:43 | &x | &T | main.rs:854:5:855:14 | S1 | +| main.rs:889:43:889:43 | x | | main.rs:854:5:855:14 | S1 | +| main.rs:891:13:891:13 | x | | main.rs:854:5:855:14 | S1 | +| main.rs:891:17:891:18 | S1 | | main.rs:854:5:855:14 | S1 | +| main.rs:892:9:892:25 | into::<...>(...) | | main.rs:857:5:858:14 | S2 | +| main.rs:892:24:892:24 | x | | main.rs:854:5:855:14 | S1 | +| main.rs:894:13:894:13 | x | | main.rs:854:5:855:14 | S1 | +| main.rs:894:17:894:18 | S1 | | main.rs:854:5:855:14 | S1 | +| main.rs:895:13:895:13 | y | | main.rs:857:5:858:14 | S2 | +| main.rs:895:21:895:27 | into(...) | | main.rs:857:5:858:14 | S2 | +| main.rs:895:26:895:26 | x | | main.rs:854:5:855:14 | S1 | +| main.rs:909:22:909:25 | SelfParam | | main.rs:900:5:906:5 | PairOption | +| main.rs:909:22:909:25 | SelfParam | Fst | main.rs:908:10:908:12 | Fst | +| main.rs:909:22:909:25 | SelfParam | Snd | main.rs:908:15:908:17 | Snd | +| main.rs:909:35:916:9 | { ... } | | main.rs:908:15:908:17 | Snd | +| main.rs:910:13:915:13 | match self { ... } | | main.rs:908:15:908:17 | Snd | +| main.rs:910:19:910:22 | self | | main.rs:900:5:906:5 | PairOption | +| main.rs:910:19:910:22 | self | Fst | main.rs:908:10:908:12 | Fst | +| main.rs:910:19:910:22 | self | Snd | main.rs:908:15:908:17 | Snd | +| main.rs:911:43:911:82 | MacroExpr | | main.rs:908:15:908:17 | Snd | +| main.rs:911:50:911:81 | "PairNone has no second elemen... | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:912:43:912:81 | MacroExpr | | main.rs:908:15:908:17 | Snd | +| main.rs:912:50:912:80 | "PairFst has no second element... | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:913:37:913:39 | snd | | main.rs:908:15:908:17 | Snd | +| main.rs:913:45:913:47 | snd | | main.rs:908:15:908:17 | Snd | +| main.rs:914:41:914:43 | snd | | main.rs:908:15:908:17 | Snd | +| main.rs:914:49:914:51 | snd | | main.rs:908:15:908:17 | Snd | +| main.rs:940:10:940:10 | t | | main.rs:900:5:906:5 | PairOption | +| main.rs:940:10:940:10 | t | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:940:10:940:10 | t | Snd | main.rs:900:5:906:5 | PairOption | +| main.rs:940:10:940:10 | t | Snd.Fst | main.rs:922:5:923:14 | S2 | +| main.rs:940:10:940:10 | t | Snd.Snd | main.rs:925:5:926:14 | S3 | +| main.rs:941:13:941:13 | x | | main.rs:925:5:926:14 | S3 | +| main.rs:941:17:941:17 | t | | main.rs:900:5:906:5 | PairOption | +| main.rs:941:17:941:17 | t | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:941:17:941:17 | t | Snd | main.rs:900:5:906:5 | PairOption | +| main.rs:941:17:941:17 | t | Snd.Fst | main.rs:922:5:923:14 | S2 | +| main.rs:941:17:941:17 | t | Snd.Snd | main.rs:925:5:926:14 | S3 | +| main.rs:941:17:941:29 | t.unwrapSnd() | | main.rs:900:5:906:5 | PairOption | +| main.rs:941:17:941:29 | t.unwrapSnd() | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:941:17:941:29 | t.unwrapSnd() | Snd | main.rs:925:5:926:14 | S3 | +| main.rs:941:17:941:41 | ... .unwrapSnd() | | main.rs:925:5:926:14 | S3 | +| main.rs:942:18:942:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:942:26:942:26 | x | | main.rs:925:5:926:14 | S3 | +| main.rs:947:13:947:14 | p1 | | main.rs:900:5:906:5 | PairOption | +| main.rs:947:13:947:14 | p1 | Fst | main.rs:919:5:920:14 | S1 | +| main.rs:947:13:947:14 | p1 | Snd | main.rs:922:5:923:14 | S2 | +| main.rs:947:26:947:53 | ...::PairBoth(...) | | main.rs:900:5:906:5 | PairOption | +| main.rs:947:26:947:53 | ...::PairBoth(...) | Fst | main.rs:919:5:920:14 | S1 | +| main.rs:947:26:947:53 | ...::PairBoth(...) | Snd | main.rs:922:5:923:14 | S2 | +| main.rs:947:47:947:48 | S1 | | main.rs:919:5:920:14 | S1 | +| main.rs:947:51:947:52 | S2 | | main.rs:922:5:923:14 | S2 | +| main.rs:948:18:948:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:948:26:948:27 | p1 | | main.rs:900:5:906:5 | PairOption | +| main.rs:948:26:948:27 | p1 | Fst | main.rs:919:5:920:14 | S1 | +| main.rs:948:26:948:27 | p1 | Snd | main.rs:922:5:923:14 | S2 | +| main.rs:951:13:951:14 | p2 | | main.rs:900:5:906:5 | PairOption | +| main.rs:951:13:951:14 | p2 | Fst | main.rs:919:5:920:14 | S1 | +| main.rs:951:13:951:14 | p2 | Snd | main.rs:922:5:923:14 | S2 | +| main.rs:951:26:951:47 | ...::PairNone(...) | | main.rs:900:5:906:5 | PairOption | +| main.rs:951:26:951:47 | ...::PairNone(...) | Fst | main.rs:919:5:920:14 | S1 | +| main.rs:951:26:951:47 | ...::PairNone(...) | Snd | main.rs:922:5:923:14 | S2 | +| main.rs:952:18:952:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:952:26:952:27 | p2 | | main.rs:900:5:906:5 | PairOption | +| main.rs:952:26:952:27 | p2 | Fst | main.rs:919:5:920:14 | S1 | +| main.rs:952:26:952:27 | p2 | Snd | main.rs:922:5:923:14 | S2 | +| main.rs:955:13:955:14 | p3 | | main.rs:900:5:906:5 | PairOption | +| main.rs:955:13:955:14 | p3 | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:955:13:955:14 | p3 | Snd | main.rs:925:5:926:14 | S3 | +| main.rs:955:34:955:56 | ...::PairSnd(...) | | main.rs:900:5:906:5 | PairOption | +| main.rs:955:34:955:56 | ...::PairSnd(...) | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:955:34:955:56 | ...::PairSnd(...) | Snd | main.rs:925:5:926:14 | S3 | +| main.rs:955:54:955:55 | S3 | | main.rs:925:5:926:14 | S3 | +| main.rs:956:18:956:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:956:26:956:27 | p3 | | main.rs:900:5:906:5 | PairOption | +| main.rs:956:26:956:27 | p3 | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:956:26:956:27 | p3 | Snd | main.rs:925:5:926:14 | S3 | +| main.rs:959:13:959:14 | p3 | | main.rs:900:5:906:5 | PairOption | +| main.rs:959:13:959:14 | p3 | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:959:13:959:14 | p3 | Snd | main.rs:925:5:926:14 | S3 | +| main.rs:959:35:959:56 | ...::PairNone(...) | | main.rs:900:5:906:5 | PairOption | +| main.rs:959:35:959:56 | ...::PairNone(...) | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:959:35:959:56 | ...::PairNone(...) | Snd | main.rs:925:5:926:14 | S3 | +| main.rs:960:18:960:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:960:26:960:27 | p3 | | main.rs:900:5:906:5 | PairOption | +| main.rs:960:26:960:27 | p3 | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:960:26:960:27 | p3 | Snd | main.rs:925:5:926:14 | S3 | +| main.rs:962:11:962:54 | ...::PairSnd(...) | | main.rs:900:5:906:5 | PairOption | +| main.rs:962:11:962:54 | ...::PairSnd(...) | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:962:11:962:54 | ...::PairSnd(...) | Snd | main.rs:900:5:906:5 | PairOption | +| main.rs:962:11:962:54 | ...::PairSnd(...) | Snd.Fst | main.rs:922:5:923:14 | S2 | +| main.rs:962:11:962:54 | ...::PairSnd(...) | Snd.Snd | main.rs:925:5:926:14 | S3 | +| main.rs:962:31:962:53 | ...::PairSnd(...) | | main.rs:900:5:906:5 | PairOption | +| main.rs:962:31:962:53 | ...::PairSnd(...) | Fst | main.rs:922:5:923:14 | S2 | +| main.rs:962:31:962:53 | ...::PairSnd(...) | Snd | main.rs:925:5:926:14 | S3 | +| main.rs:962:51:962:52 | S3 | | main.rs:925:5:926:14 | S3 | +| main.rs:975:16:975:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:975:16:975:24 | SelfParam | &T | main.rs:973:5:980:5 | Self [trait MyTrait] | +| main.rs:975:27:975:31 | value | | main.rs:973:19:973:19 | S | +| main.rs:977:21:977:29 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:977:21:977:29 | SelfParam | &T | main.rs:973:5:980:5 | Self [trait MyTrait] | +| main.rs:977:32:977:36 | value | | main.rs:973:19:973:19 | S | +| main.rs:978:13:978:16 | self | | file://:0:0:0:0 | & | +| main.rs:978:13:978:16 | self | &T | main.rs:973:5:980:5 | Self [trait MyTrait] | +| main.rs:978:22:978:26 | value | | main.rs:973:19:973:19 | S | +| main.rs:984:16:984:24 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:984:16:984:24 | SelfParam | &T | main.rs:967:5:971:5 | MyOption | +| main.rs:984:16:984:24 | SelfParam | &T.T | main.rs:982:10:982:10 | T | +| main.rs:984:27:984:31 | value | | main.rs:982:10:982:10 | T | +| main.rs:988:26:990:9 | { ... } | | main.rs:967:5:971:5 | MyOption | +| main.rs:988:26:990:9 | { ... } | T | main.rs:987:10:987:10 | T | +| main.rs:989:13:989:30 | ...::MyNone(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:989:13:989:30 | ...::MyNone(...) | T | main.rs:987:10:987:10 | T | +| main.rs:994:20:994:23 | SelfParam | | main.rs:967:5:971:5 | MyOption | +| main.rs:994:20:994:23 | SelfParam | T | main.rs:967:5:971:5 | MyOption | +| main.rs:994:20:994:23 | SelfParam | T.T | main.rs:993:10:993:10 | T | +| main.rs:994:41:999:9 | { ... } | | main.rs:967:5:971:5 | MyOption | +| main.rs:994:41:999:9 | { ... } | T | main.rs:993:10:993:10 | T | +| main.rs:995:13:998:13 | match self { ... } | | main.rs:967:5:971:5 | MyOption | +| main.rs:995:13:998:13 | match self { ... } | T | main.rs:993:10:993:10 | T | +| main.rs:995:19:995:22 | self | | main.rs:967:5:971:5 | MyOption | +| main.rs:995:19:995:22 | self | T | main.rs:967:5:971:5 | MyOption | +| main.rs:995:19:995:22 | self | T.T | main.rs:993:10:993:10 | T | +| main.rs:996:39:996:56 | ...::MyNone(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:996:39:996:56 | ...::MyNone(...) | T | main.rs:993:10:993:10 | T | +| main.rs:997:34:997:34 | x | | main.rs:967:5:971:5 | MyOption | +| main.rs:997:34:997:34 | x | T | main.rs:993:10:993:10 | T | +| main.rs:997:40:997:40 | x | | main.rs:967:5:971:5 | MyOption | +| main.rs:997:40:997:40 | x | T | main.rs:993:10:993:10 | T | +| main.rs:1006:13:1006:14 | x1 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1006:18:1006:37 | ...::new(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1007:18:1007:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1007:26:1007:27 | x1 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1009:13:1009:18 | mut x2 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1009:13:1009:18 | mut x2 | T | main.rs:1002:5:1003:13 | S | +| main.rs:1009:22:1009:36 | ...::new(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1009:22:1009:36 | ...::new(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1010:9:1010:10 | x2 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1010:9:1010:10 | x2 | T | main.rs:1002:5:1003:13 | S | +| main.rs:1010:16:1010:16 | S | | main.rs:1002:5:1003:13 | S | +| main.rs:1011:18:1011:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1011:26:1011:27 | x2 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1011:26:1011:27 | x2 | T | main.rs:1002:5:1003:13 | S | +| main.rs:1013:13:1013:18 | mut x3 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1013:22:1013:36 | ...::new(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1014:9:1014:10 | x3 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1014:21:1014:21 | S | | main.rs:1002:5:1003:13 | S | +| main.rs:1015:18:1015:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1015:26:1015:27 | x3 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1017:13:1017:18 | mut x4 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1017:13:1017:18 | mut x4 | T | main.rs:1002:5:1003:13 | S | +| main.rs:1017:22:1017:36 | ...::new(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1017:22:1017:36 | ...::new(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1018:23:1018:29 | &mut x4 | | file://:0:0:0:0 | & | +| main.rs:1018:23:1018:29 | &mut x4 | &T | main.rs:967:5:971:5 | MyOption | +| main.rs:1018:23:1018:29 | &mut x4 | &T.T | main.rs:1002:5:1003:13 | S | +| main.rs:1018:28:1018:29 | x4 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1018:28:1018:29 | x4 | T | main.rs:1002:5:1003:13 | S | +| main.rs:1018:32:1018:32 | S | | main.rs:1002:5:1003:13 | S | +| main.rs:1019:18:1019:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1019:26:1019:27 | x4 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1019:26:1019:27 | x4 | T | main.rs:1002:5:1003:13 | S | +| main.rs:1021:13:1021:14 | x5 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1021:13:1021:14 | x5 | T | main.rs:967:5:971:5 | MyOption | +| main.rs:1021:13:1021:14 | x5 | T.T | main.rs:1002:5:1003:13 | S | +| main.rs:1021:18:1021:58 | ...::MySome(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1021:18:1021:58 | ...::MySome(...) | T | main.rs:967:5:971:5 | MyOption | +| main.rs:1021:18:1021:58 | ...::MySome(...) | T.T | main.rs:1002:5:1003:13 | S | +| main.rs:1021:35:1021:57 | ...::MyNone(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1021:35:1021:57 | ...::MyNone(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1022:18:1022:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1022:26:1022:27 | x5 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1022:26:1022:27 | x5 | T | main.rs:967:5:971:5 | MyOption | +| main.rs:1022:26:1022:27 | x5 | T.T | main.rs:1002:5:1003:13 | S | +| main.rs:1022:26:1022:37 | x5.flatten() | | main.rs:967:5:971:5 | MyOption | +| main.rs:1022:26:1022:37 | x5.flatten() | T | main.rs:1002:5:1003:13 | S | +| main.rs:1024:13:1024:14 | x6 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1024:13:1024:14 | x6 | T | main.rs:967:5:971:5 | MyOption | +| main.rs:1024:13:1024:14 | x6 | T.T | main.rs:1002:5:1003:13 | S | +| main.rs:1024:18:1024:58 | ...::MySome(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1024:18:1024:58 | ...::MySome(...) | T | main.rs:967:5:971:5 | MyOption | +| main.rs:1024:18:1024:58 | ...::MySome(...) | T.T | main.rs:1002:5:1003:13 | S | +| main.rs:1024:35:1024:57 | ...::MyNone(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1024:35:1024:57 | ...::MyNone(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1025:18:1025:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1025:26:1025:61 | ...::flatten(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1025:26:1025:61 | ...::flatten(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1025:59:1025:60 | x6 | | main.rs:967:5:971:5 | MyOption | +| main.rs:1025:59:1025:60 | x6 | T | main.rs:967:5:971:5 | MyOption | +| main.rs:1025:59:1025:60 | x6 | T.T | main.rs:1002:5:1003:13 | S | +| main.rs:1027:13:1027:19 | from_if | | main.rs:967:5:971:5 | MyOption | +| main.rs:1027:13:1027:19 | from_if | T | main.rs:1002:5:1003:13 | S | +| main.rs:1027:23:1031:9 | if ... {...} else {...} | | main.rs:967:5:971:5 | MyOption | +| main.rs:1027:23:1031:9 | if ... {...} else {...} | T | main.rs:1002:5:1003:13 | S | +| main.rs:1027:26:1027:26 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1027:30:1027:30 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1027:34:1027:34 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1027:36:1029:9 | { ... } | | main.rs:967:5:971:5 | MyOption | +| main.rs:1027:36:1029:9 | { ... } | T | main.rs:1002:5:1003:13 | S | +| main.rs:1028:13:1028:30 | ...::MyNone(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1028:13:1028:30 | ...::MyNone(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1029:16:1031:9 | { ... } | | main.rs:967:5:971:5 | MyOption | +| main.rs:1029:16:1031:9 | { ... } | T | main.rs:1002:5:1003:13 | S | +| main.rs:1030:13:1030:31 | ...::MySome(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1030:13:1030:31 | ...::MySome(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1030:30:1030:30 | S | | main.rs:1002:5:1003:13 | S | +| main.rs:1032:18:1032:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1032:26:1032:32 | from_if | | main.rs:967:5:971:5 | MyOption | +| main.rs:1032:26:1032:32 | from_if | T | main.rs:1002:5:1003:13 | S | +| main.rs:1034:13:1034:22 | from_match | | main.rs:967:5:971:5 | MyOption | +| main.rs:1034:13:1034:22 | from_match | T | main.rs:1002:5:1003:13 | S | +| main.rs:1034:26:1037:9 | match ... { ... } | | main.rs:967:5:971:5 | MyOption | +| main.rs:1034:26:1037:9 | match ... { ... } | T | main.rs:1002:5:1003:13 | S | +| main.rs:1034:32:1034:32 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1034:36:1034:36 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1034:40:1034:40 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1035:13:1035:16 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1035:21:1035:38 | ...::MyNone(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1035:21:1035:38 | ...::MyNone(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1036:13:1036:17 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1036:22:1036:40 | ...::MySome(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1036:22:1036:40 | ...::MySome(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1036:39:1036:39 | S | | main.rs:1002:5:1003:13 | S | +| main.rs:1038:18:1038:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1038:26:1038:35 | from_match | | main.rs:967:5:971:5 | MyOption | +| main.rs:1038:26:1038:35 | from_match | T | main.rs:1002:5:1003:13 | S | +| main.rs:1040:13:1040:21 | from_loop | | main.rs:967:5:971:5 | MyOption | +| main.rs:1040:13:1040:21 | from_loop | T | main.rs:1002:5:1003:13 | S | +| main.rs:1040:25:1045:9 | loop { ... } | | main.rs:967:5:971:5 | MyOption | +| main.rs:1040:25:1045:9 | loop { ... } | T | main.rs:1002:5:1003:13 | S | +| main.rs:1041:16:1041:16 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1041:20:1041:20 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1041:24:1041:24 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1042:23:1042:40 | ...::MyNone(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1042:23:1042:40 | ...::MyNone(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1044:19:1044:37 | ...::MySome(...) | | main.rs:967:5:971:5 | MyOption | +| main.rs:1044:19:1044:37 | ...::MySome(...) | T | main.rs:1002:5:1003:13 | S | +| main.rs:1044:36:1044:36 | S | | main.rs:1002:5:1003:13 | S | +| main.rs:1046:18:1046:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1046:26:1046:34 | from_loop | | main.rs:967:5:971:5 | MyOption | +| main.rs:1046:26:1046:34 | from_loop | T | main.rs:1002:5:1003:13 | S | +| main.rs:1059:15:1059:18 | SelfParam | | main.rs:1052:5:1053:19 | S | +| main.rs:1059:15:1059:18 | SelfParam | T | main.rs:1058:10:1058:10 | T | +| main.rs:1059:26:1061:9 | { ... } | | main.rs:1058:10:1058:10 | T | +| main.rs:1060:13:1060:16 | self | | main.rs:1052:5:1053:19 | S | +| main.rs:1060:13:1060:16 | self | T | main.rs:1058:10:1058:10 | T | +| main.rs:1060:13:1060:18 | self.0 | | main.rs:1058:10:1058:10 | T | +| main.rs:1063:15:1063:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1063:15:1063:19 | SelfParam | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1063:15:1063:19 | SelfParam | &T.T | main.rs:1058:10:1058:10 | T | +| main.rs:1063:28:1065:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1063:28:1065:9 | { ... } | &T | main.rs:1058:10:1058:10 | T | +| main.rs:1064:13:1064:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1064:13:1064:19 | &... | &T | main.rs:1058:10:1058:10 | T | +| main.rs:1064:14:1064:17 | self | | file://:0:0:0:0 | & | +| main.rs:1064:14:1064:17 | self | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1064:14:1064:17 | self | &T.T | main.rs:1058:10:1058:10 | T | +| main.rs:1064:14:1064:19 | self.0 | | main.rs:1058:10:1058:10 | T | +| main.rs:1067:15:1067:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1067:15:1067:25 | SelfParam | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1067:15:1067:25 | SelfParam | &T.T | main.rs:1058:10:1058:10 | T | +| main.rs:1067:34:1069:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1067:34:1069:9 | { ... } | &T | main.rs:1058:10:1058:10 | T | +| main.rs:1068:13:1068:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1068:13:1068:19 | &... | &T | main.rs:1058:10:1058:10 | T | +| main.rs:1068:14:1068:17 | self | | file://:0:0:0:0 | & | +| main.rs:1068:14:1068:17 | self | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1068:14:1068:17 | self | &T.T | main.rs:1058:10:1058:10 | T | +| main.rs:1068:14:1068:19 | self.0 | | main.rs:1058:10:1058:10 | T | +| main.rs:1073:13:1073:14 | x1 | | main.rs:1052:5:1053:19 | S | +| main.rs:1073:13:1073:14 | x1 | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1073:18:1073:22 | S(...) | | main.rs:1052:5:1053:19 | S | +| main.rs:1073:18:1073:22 | S(...) | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1073:20:1073:21 | S2 | | main.rs:1055:5:1056:14 | S2 | +| main.rs:1074:18:1074:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1074:26:1074:27 | x1 | | main.rs:1052:5:1053:19 | S | +| main.rs:1074:26:1074:27 | x1 | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1074:26:1074:32 | x1.m1() | | main.rs:1055:5:1056:14 | S2 | +| main.rs:1076:13:1076:14 | x2 | | main.rs:1052:5:1053:19 | S | +| main.rs:1076:13:1076:14 | x2 | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1076:18:1076:22 | S(...) | | main.rs:1052:5:1053:19 | S | +| main.rs:1076:18:1076:22 | S(...) | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1076:20:1076:21 | S2 | | main.rs:1055:5:1056:14 | S2 | | main.rs:1078:18:1078:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1078:26:1078:27 | x7 | | main.rs:1026:5:1027:19 | S | -| main.rs:1078:26:1078:27 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1078:26:1078:27 | x7 | T.&T | main.rs:1029:5:1030:14 | S2 | -| main.rs:1085:16:1085:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1085:16:1085:20 | SelfParam | &T | main.rs:1083:5:1091:5 | Self [trait MyTrait] | -| main.rs:1088:16:1088:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1088:16:1088:20 | SelfParam | &T | main.rs:1083:5:1091:5 | Self [trait MyTrait] | -| main.rs:1088:32:1090:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1088:32:1090:9 | { ... } | &T | main.rs:1083:5:1091:5 | Self [trait MyTrait] | -| main.rs:1089:13:1089:16 | self | | file://:0:0:0:0 | & | -| main.rs:1089:13:1089:16 | self | &T | main.rs:1083:5:1091:5 | Self [trait MyTrait] | -| main.rs:1089:13:1089:22 | self.foo() | | file://:0:0:0:0 | & | -| main.rs:1089:13:1089:22 | self.foo() | &T | main.rs:1083:5:1091:5 | Self [trait MyTrait] | -| main.rs:1097:16:1097:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1097:16:1097:20 | SelfParam | &T | main.rs:1093:5:1093:20 | MyStruct | -| main.rs:1097:36:1099:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1097:36:1099:9 | { ... } | &T | main.rs:1093:5:1093:20 | MyStruct | -| main.rs:1098:13:1098:16 | self | | file://:0:0:0:0 | & | -| main.rs:1098:13:1098:16 | self | &T | main.rs:1093:5:1093:20 | MyStruct | -| main.rs:1103:13:1103:13 | x | | main.rs:1093:5:1093:20 | MyStruct | -| main.rs:1103:17:1103:24 | MyStruct | | main.rs:1093:5:1093:20 | MyStruct | -| main.rs:1104:9:1104:9 | x | | main.rs:1093:5:1093:20 | MyStruct | -| main.rs:1104:9:1104:15 | x.bar() | | file://:0:0:0:0 | & | -| main.rs:1104:9:1104:15 | x.bar() | &T | main.rs:1093:5:1093:20 | MyStruct | +| main.rs:1078:26:1078:27 | x2 | | main.rs:1052:5:1053:19 | S | +| main.rs:1078:26:1078:27 | x2 | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1078:26:1078:32 | x2.m2() | | file://:0:0:0:0 | & | +| main.rs:1078:26:1078:32 | x2.m2() | &T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1079:18:1079:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1079:26:1079:27 | x2 | | main.rs:1052:5:1053:19 | S | +| main.rs:1079:26:1079:27 | x2 | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1079:26:1079:32 | x2.m3() | | file://:0:0:0:0 | & | +| main.rs:1079:26:1079:32 | x2.m3() | &T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1081:13:1081:14 | x3 | | main.rs:1052:5:1053:19 | S | +| main.rs:1081:13:1081:14 | x3 | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1081:18:1081:22 | S(...) | | main.rs:1052:5:1053:19 | S | +| main.rs:1081:18:1081:22 | S(...) | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1081:20:1081:21 | S2 | | main.rs:1055:5:1056:14 | S2 | +| main.rs:1083:18:1083:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1083:26:1083:41 | ...::m2(...) | | file://:0:0:0:0 | & | +| main.rs:1083:26:1083:41 | ...::m2(...) | &T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1083:38:1083:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1083:38:1083:40 | &x3 | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1083:38:1083:40 | &x3 | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1083:39:1083:40 | x3 | | main.rs:1052:5:1053:19 | S | +| main.rs:1083:39:1083:40 | x3 | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1084:18:1084:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1084:26:1084:41 | ...::m3(...) | | file://:0:0:0:0 | & | +| main.rs:1084:26:1084:41 | ...::m3(...) | &T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1084:38:1084:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1084:38:1084:40 | &x3 | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1084:38:1084:40 | &x3 | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1084:39:1084:40 | x3 | | main.rs:1052:5:1053:19 | S | +| main.rs:1084:39:1084:40 | x3 | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1086:13:1086:14 | x4 | | file://:0:0:0:0 | & | +| main.rs:1086:13:1086:14 | x4 | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1086:13:1086:14 | x4 | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1086:18:1086:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1086:18:1086:23 | &... | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1086:18:1086:23 | &... | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1086:19:1086:23 | S(...) | | main.rs:1052:5:1053:19 | S | +| main.rs:1086:19:1086:23 | S(...) | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1086:21:1086:22 | S2 | | main.rs:1055:5:1056:14 | S2 | +| main.rs:1088:18:1088:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1088:26:1088:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1088:26:1088:27 | x4 | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1088:26:1088:27 | x4 | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1088:26:1088:32 | x4.m2() | | file://:0:0:0:0 | & | +| main.rs:1088:26:1088:32 | x4.m2() | &T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1089:18:1089:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1089:26:1089:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1089:26:1089:27 | x4 | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1089:26:1089:27 | x4 | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1089:26:1089:32 | x4.m3() | | file://:0:0:0:0 | & | +| main.rs:1089:26:1089:32 | x4.m3() | &T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1091:13:1091:14 | x5 | | file://:0:0:0:0 | & | +| main.rs:1091:13:1091:14 | x5 | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1091:13:1091:14 | x5 | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1091:18:1091:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1091:18:1091:23 | &... | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1091:18:1091:23 | &... | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1091:19:1091:23 | S(...) | | main.rs:1052:5:1053:19 | S | +| main.rs:1091:19:1091:23 | S(...) | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1091:21:1091:22 | S2 | | main.rs:1055:5:1056:14 | S2 | +| main.rs:1093:18:1093:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1093:26:1093:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1093:26:1093:27 | x5 | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1093:26:1093:27 | x5 | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1093:26:1093:32 | x5.m1() | | main.rs:1055:5:1056:14 | S2 | +| main.rs:1094:18:1094:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1094:26:1094:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1094:26:1094:27 | x5 | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1094:26:1094:27 | x5 | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1094:26:1094:29 | x5.0 | | main.rs:1055:5:1056:14 | S2 | +| main.rs:1096:13:1096:14 | x6 | | file://:0:0:0:0 | & | +| main.rs:1096:13:1096:14 | x6 | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1096:13:1096:14 | x6 | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1096:18:1096:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1096:18:1096:23 | &... | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1096:18:1096:23 | &... | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1096:19:1096:23 | S(...) | | main.rs:1052:5:1053:19 | S | +| main.rs:1096:19:1096:23 | S(...) | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1096:21:1096:22 | S2 | | main.rs:1055:5:1056:14 | S2 | +| main.rs:1098:18:1098:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1098:26:1098:30 | (...) | | main.rs:1052:5:1053:19 | S | +| main.rs:1098:26:1098:30 | (...) | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1098:26:1098:35 | ... .m1() | | main.rs:1055:5:1056:14 | S2 | +| main.rs:1098:27:1098:29 | * ... | | main.rs:1052:5:1053:19 | S | +| main.rs:1098:27:1098:29 | * ... | T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1098:28:1098:29 | x6 | | file://:0:0:0:0 | & | +| main.rs:1098:28:1098:29 | x6 | &T | main.rs:1052:5:1053:19 | S | +| main.rs:1098:28:1098:29 | x6 | &T.T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1100:13:1100:14 | x7 | | main.rs:1052:5:1053:19 | S | +| main.rs:1100:13:1100:14 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1100:13:1100:14 | x7 | T.&T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1100:18:1100:23 | S(...) | | main.rs:1052:5:1053:19 | S | +| main.rs:1100:18:1100:23 | S(...) | T | file://:0:0:0:0 | & | +| main.rs:1100:18:1100:23 | S(...) | T.&T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1100:20:1100:22 | &S2 | | file://:0:0:0:0 | & | +| main.rs:1100:20:1100:22 | &S2 | &T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1100:21:1100:22 | S2 | | main.rs:1055:5:1056:14 | S2 | +| main.rs:1103:13:1103:13 | t | | file://:0:0:0:0 | & | +| main.rs:1103:13:1103:13 | t | &T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1103:17:1103:18 | x7 | | main.rs:1052:5:1053:19 | S | +| main.rs:1103:17:1103:18 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1103:17:1103:18 | x7 | T.&T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1103:17:1103:23 | x7.m1() | | file://:0:0:0:0 | & | +| main.rs:1103:17:1103:23 | x7.m1() | &T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1104:18:1104:23 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1104:26:1104:27 | x7 | | main.rs:1052:5:1053:19 | S | +| main.rs:1104:26:1104:27 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1104:26:1104:27 | x7 | T.&T | main.rs:1055:5:1056:14 | S2 | +| main.rs:1111:16:1111:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1111:16:1111:20 | SelfParam | &T | main.rs:1109:5:1117:5 | Self [trait MyTrait] | | main.rs:1114:16:1114:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1114:16:1114:20 | SelfParam | &T | main.rs:1111:5:1111:26 | MyStruct | -| main.rs:1114:16:1114:20 | SelfParam | &T.T | main.rs:1113:10:1113:10 | T | +| main.rs:1114:16:1114:20 | SelfParam | &T | main.rs:1109:5:1117:5 | Self [trait MyTrait] | | main.rs:1114:32:1116:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1114:32:1116:9 | { ... } | &T | main.rs:1111:5:1111:26 | MyStruct | -| main.rs:1114:32:1116:9 | { ... } | &T.T | main.rs:1113:10:1113:10 | T | +| main.rs:1114:32:1116:9 | { ... } | &T | main.rs:1109:5:1117:5 | Self [trait MyTrait] | | main.rs:1115:13:1115:16 | self | | file://:0:0:0:0 | & | -| main.rs:1115:13:1115:16 | self | &T | main.rs:1111:5:1111:26 | MyStruct | -| main.rs:1115:13:1115:16 | self | &T.T | main.rs:1113:10:1113:10 | T | -| main.rs:1120:13:1120:13 | x | | main.rs:1111:5:1111:26 | MyStruct | -| main.rs:1120:13:1120:13 | x | T | main.rs:1109:5:1109:13 | S | -| main.rs:1120:17:1120:27 | MyStruct(...) | | main.rs:1111:5:1111:26 | MyStruct | -| main.rs:1120:17:1120:27 | MyStruct(...) | T | main.rs:1109:5:1109:13 | S | -| main.rs:1120:26:1120:26 | S | | main.rs:1109:5:1109:13 | S | -| main.rs:1121:9:1121:9 | x | | main.rs:1111:5:1111:26 | MyStruct | -| main.rs:1121:9:1121:9 | x | T | main.rs:1109:5:1109:13 | S | -| main.rs:1121:9:1121:15 | x.foo() | | file://:0:0:0:0 | & | -| main.rs:1121:9:1121:15 | x.foo() | &T | main.rs:1111:5:1111:26 | MyStruct | -| main.rs:1121:9:1121:15 | x.foo() | &T.T | main.rs:1109:5:1109:13 | S | -| main.rs:1129:15:1129:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1129:15:1129:19 | SelfParam | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1129:31:1131:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1129:31:1131:9 | { ... } | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1130:13:1130:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1130:13:1130:19 | &... | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1130:14:1130:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1130:14:1130:19 | &... | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1130:15:1130:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1130:15:1130:19 | &self | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1130:16:1130:19 | self | | file://:0:0:0:0 | & | -| main.rs:1130:16:1130:19 | self | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1133:15:1133:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1133:15:1133:25 | SelfParam | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1133:37:1135:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1133:37:1135:9 | { ... } | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1134:13:1134:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1134:13:1134:19 | &... | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1134:14:1134:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1134:14:1134:19 | &... | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1134:15:1134:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1134:15:1134:19 | &self | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1134:16:1134:19 | self | | file://:0:0:0:0 | & | -| main.rs:1134:16:1134:19 | self | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1137:15:1137:15 | x | | file://:0:0:0:0 | & | -| main.rs:1137:15:1137:15 | x | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1137:34:1139:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1137:34:1139:9 | { ... } | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1138:13:1138:13 | x | | file://:0:0:0:0 | & | -| main.rs:1138:13:1138:13 | x | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1141:15:1141:15 | x | | file://:0:0:0:0 | & | -| main.rs:1141:15:1141:15 | x | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1141:34:1143:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1141:34:1143:9 | { ... } | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1142:13:1142:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1142:13:1142:16 | &... | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1142:14:1142:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1142:14:1142:16 | &... | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1142:15:1142:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1142:15:1142:16 | &x | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1142:16:1142:16 | x | | file://:0:0:0:0 | & | -| main.rs:1142:16:1142:16 | x | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1147:13:1147:13 | x | | main.rs:1126:5:1126:13 | S | -| main.rs:1147:17:1147:20 | S {...} | | main.rs:1126:5:1126:13 | S | -| main.rs:1148:9:1148:9 | x | | main.rs:1126:5:1126:13 | S | -| main.rs:1148:9:1148:14 | x.f1() | | file://:0:0:0:0 | & | -| main.rs:1148:9:1148:14 | x.f1() | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1149:9:1149:9 | x | | main.rs:1126:5:1126:13 | S | -| main.rs:1149:9:1149:14 | x.f2() | | file://:0:0:0:0 | & | -| main.rs:1149:9:1149:14 | x.f2() | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1150:9:1150:17 | ...::f3(...) | | file://:0:0:0:0 | & | -| main.rs:1150:9:1150:17 | ...::f3(...) | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1150:15:1150:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1150:15:1150:16 | &x | &T | main.rs:1126:5:1126:13 | S | -| main.rs:1150:16:1150:16 | x | | main.rs:1126:5:1126:13 | S | -| main.rs:1164:43:1167:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1164:43:1167:5 | { ... } | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1164:43:1167:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1165:13:1165:13 | x | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1165:17:1165:30 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1165:17:1165:30 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1165:17:1165:31 | TryExpr | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1165:28:1165:29 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1166:9:1166:22 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1166:9:1166:22 | ...::Ok(...) | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1166:9:1166:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1166:20:1166:21 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1170:46:1174:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1170:46:1174:5 | { ... } | E | main.rs:1160:5:1161:14 | S2 | -| main.rs:1170:46:1174:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1171:13:1171:13 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1171:13:1171:13 | x | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1171:17:1171:30 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1171:17:1171:30 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1171:28:1171:29 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1172:13:1172:13 | y | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1172:17:1172:17 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1172:17:1172:17 | x | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1172:17:1172:18 | TryExpr | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1173:9:1173:22 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1173:9:1173:22 | ...::Ok(...) | E | main.rs:1160:5:1161:14 | S2 | -| main.rs:1173:9:1173:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1173:20:1173:21 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1177:40:1182:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1177:40:1182:5 | { ... } | E | main.rs:1160:5:1161:14 | S2 | -| main.rs:1177:40:1182:5 | { ... } | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1178:13:1178:13 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1178:13:1178:13 | x | T | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1178:13:1178:13 | x | T.T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1178:17:1178:42 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1178:17:1178:42 | ...::Ok(...) | T | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1178:17:1178:42 | ...::Ok(...) | T.T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1178:28:1178:41 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1178:28:1178:41 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1178:39:1178:40 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1180:17:1180:17 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1180:17:1180:17 | x | T | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1180:17:1180:17 | x | T.T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1180:17:1180:18 | TryExpr | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1180:17:1180:18 | TryExpr | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1180:17:1180:29 | ... .map(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1181:9:1181:22 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1181:9:1181:22 | ...::Ok(...) | E | main.rs:1160:5:1161:14 | S2 | -| main.rs:1181:9:1181:22 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1181:20:1181:21 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1185:30:1185:34 | input | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1185:30:1185:34 | input | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1185:30:1185:34 | input | T | main.rs:1185:20:1185:27 | T | -| main.rs:1185:69:1192:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1185:69:1192:5 | { ... } | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1185:69:1192:5 | { ... } | T | main.rs:1185:20:1185:27 | T | -| main.rs:1186:13:1186:17 | value | | main.rs:1185:20:1185:27 | T | -| main.rs:1186:21:1186:25 | input | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1186:21:1186:25 | input | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1186:21:1186:25 | input | T | main.rs:1185:20:1185:27 | T | -| main.rs:1186:21:1186:26 | TryExpr | | main.rs:1185:20:1185:27 | T | -| main.rs:1187:22:1187:38 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1187:22:1187:38 | ...::Ok(...) | T | main.rs:1185:20:1185:27 | T | -| main.rs:1187:22:1190:10 | ... .and_then(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1187:33:1187:37 | value | | main.rs:1185:20:1185:27 | T | -| main.rs:1187:53:1190:9 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1187:53:1190:9 | { ... } | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1188:22:1188:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1189:13:1189:34 | ...::Ok::<...>(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1189:13:1189:34 | ...::Ok::<...>(...) | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1191:9:1191:23 | ...::Err(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1191:9:1191:23 | ...::Err(...) | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1191:9:1191:23 | ...::Err(...) | T | main.rs:1185:20:1185:27 | T | -| main.rs:1191:21:1191:22 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1195:37:1195:52 | try_same_error(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1195:37:1195:52 | try_same_error(...) | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1195:37:1195:52 | try_same_error(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1196:22:1196:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1199:37:1199:55 | try_convert_error(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1199:37:1199:55 | try_convert_error(...) | E | main.rs:1160:5:1161:14 | S2 | -| main.rs:1199:37:1199:55 | try_convert_error(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1200:22:1200:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1203:37:1203:49 | try_chained(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1203:37:1203:49 | try_chained(...) | E | main.rs:1160:5:1161:14 | S2 | -| main.rs:1203:37:1203:49 | try_chained(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1204:22:1204:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1207:37:1207:63 | try_complex(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1207:37:1207:63 | try_complex(...) | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1207:37:1207:63 | try_complex(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1207:49:1207:62 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | -| main.rs:1207:49:1207:62 | ...::Ok(...) | E | main.rs:1157:5:1158:14 | S1 | -| main.rs:1207:49:1207:62 | ...::Ok(...) | T | main.rs:1157:5:1158:14 | S1 | -| main.rs:1207:60:1207:61 | S1 | | main.rs:1157:5:1158:14 | S1 | -| main.rs:1208:22:1208:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1215:13:1215:13 | x | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1215:22:1215:22 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1216:13:1216:13 | y | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1216:17:1216:17 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1217:17:1217:17 | x | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1217:21:1217:21 | y | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1218:13:1218:13 | z | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1218:17:1218:17 | x | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1218:17:1218:23 | x.abs() | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1219:13:1219:13 | c | | file:///BUILTINS/types.rs:6:1:7:16 | char | -| main.rs:1219:17:1219:19 | 'c' | | file:///BUILTINS/types.rs:6:1:7:16 | char | -| main.rs:1220:13:1220:17 | hello | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1220:21:1220:27 | "Hello" | | file:///BUILTINS/types.rs:8:1:8:15 | str | -| main.rs:1221:13:1221:13 | f | | file:///BUILTINS/types.rs:25:1:25:15 | f64 | -| main.rs:1221:17:1221:24 | 123.0f64 | | file:///BUILTINS/types.rs:25:1:25:15 | f64 | -| main.rs:1222:13:1222:13 | t | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1222:17:1222:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1223:13:1223:13 | f | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1223:17:1223:21 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1229:13:1229:13 | x | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1229:17:1229:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1229:17:1229:29 | ... && ... | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1229:25:1229:29 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1230:13:1230:13 | y | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1230:17:1230:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1230:17:1230:29 | ... \|\| ... | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1230:25:1230:29 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | -| main.rs:1232:13:1232:17 | mut a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1233:12:1233:13 | 34 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1233:18:1233:19 | 33 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1234:17:1234:17 | z | | file://:0:0:0:0 | () | -| main.rs:1234:21:1234:27 | (...) | | file://:0:0:0:0 | () | -| main.rs:1234:22:1234:22 | a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1234:22:1234:26 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1234:26:1234:26 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1236:13:1236:13 | a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1236:13:1236:17 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1236:17:1236:17 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1238:9:1238:9 | a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | -| main.rs:1244:5:1244:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1245:5:1245:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1245:20:1245:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:1245:41:1245:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1115:13:1115:16 | self | &T | main.rs:1109:5:1117:5 | Self [trait MyTrait] | +| main.rs:1115:13:1115:22 | self.foo() | | file://:0:0:0:0 | & | +| main.rs:1115:13:1115:22 | self.foo() | &T | main.rs:1109:5:1117:5 | Self [trait MyTrait] | +| main.rs:1123:16:1123:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1123:16:1123:20 | SelfParam | &T | main.rs:1119:5:1119:20 | MyStruct | +| main.rs:1123:36:1125:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1123:36:1125:9 | { ... } | &T | main.rs:1119:5:1119:20 | MyStruct | +| main.rs:1124:13:1124:16 | self | | file://:0:0:0:0 | & | +| main.rs:1124:13:1124:16 | self | &T | main.rs:1119:5:1119:20 | MyStruct | +| main.rs:1129:13:1129:13 | x | | main.rs:1119:5:1119:20 | MyStruct | +| main.rs:1129:17:1129:24 | MyStruct | | main.rs:1119:5:1119:20 | MyStruct | +| main.rs:1130:9:1130:9 | x | | main.rs:1119:5:1119:20 | MyStruct | +| main.rs:1130:9:1130:15 | x.bar() | | file://:0:0:0:0 | & | +| main.rs:1130:9:1130:15 | x.bar() | &T | main.rs:1119:5:1119:20 | MyStruct | +| main.rs:1140:16:1140:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1140:16:1140:20 | SelfParam | &T | main.rs:1137:5:1137:26 | MyStruct | +| main.rs:1140:16:1140:20 | SelfParam | &T.T | main.rs:1139:10:1139:10 | T | +| main.rs:1140:32:1142:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1140:32:1142:9 | { ... } | &T | main.rs:1137:5:1137:26 | MyStruct | +| main.rs:1140:32:1142:9 | { ... } | &T.T | main.rs:1139:10:1139:10 | T | +| main.rs:1141:13:1141:16 | self | | file://:0:0:0:0 | & | +| main.rs:1141:13:1141:16 | self | &T | main.rs:1137:5:1137:26 | MyStruct | +| main.rs:1141:13:1141:16 | self | &T.T | main.rs:1139:10:1139:10 | T | +| main.rs:1146:13:1146:13 | x | | main.rs:1137:5:1137:26 | MyStruct | +| main.rs:1146:13:1146:13 | x | T | main.rs:1135:5:1135:13 | S | +| main.rs:1146:17:1146:27 | MyStruct(...) | | main.rs:1137:5:1137:26 | MyStruct | +| main.rs:1146:17:1146:27 | MyStruct(...) | T | main.rs:1135:5:1135:13 | S | +| main.rs:1146:26:1146:26 | S | | main.rs:1135:5:1135:13 | S | +| main.rs:1147:9:1147:9 | x | | main.rs:1137:5:1137:26 | MyStruct | +| main.rs:1147:9:1147:9 | x | T | main.rs:1135:5:1135:13 | S | +| main.rs:1147:9:1147:15 | x.foo() | | file://:0:0:0:0 | & | +| main.rs:1147:9:1147:15 | x.foo() | &T | main.rs:1137:5:1137:26 | MyStruct | +| main.rs:1147:9:1147:15 | x.foo() | &T.T | main.rs:1135:5:1135:13 | S | +| main.rs:1155:15:1155:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1155:15:1155:19 | SelfParam | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1155:31:1157:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1155:31:1157:9 | { ... } | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1156:13:1156:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1156:13:1156:19 | &... | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1156:14:1156:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1156:14:1156:19 | &... | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1156:15:1156:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1156:15:1156:19 | &self | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1156:16:1156:19 | self | | file://:0:0:0:0 | & | +| main.rs:1156:16:1156:19 | self | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1159:15:1159:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1159:15:1159:25 | SelfParam | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1159:37:1161:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1159:37:1161:9 | { ... } | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1160:13:1160:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1160:13:1160:19 | &... | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1160:14:1160:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1160:14:1160:19 | &... | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1160:15:1160:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1160:15:1160:19 | &self | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1160:16:1160:19 | self | | file://:0:0:0:0 | & | +| main.rs:1160:16:1160:19 | self | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1163:15:1163:15 | x | | file://:0:0:0:0 | & | +| main.rs:1163:15:1163:15 | x | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1163:34:1165:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1163:34:1165:9 | { ... } | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1164:13:1164:13 | x | | file://:0:0:0:0 | & | +| main.rs:1164:13:1164:13 | x | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1167:15:1167:15 | x | | file://:0:0:0:0 | & | +| main.rs:1167:15:1167:15 | x | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1167:34:1169:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1167:34:1169:9 | { ... } | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1168:13:1168:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1168:13:1168:16 | &... | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1168:14:1168:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1168:14:1168:16 | &... | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1168:15:1168:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1168:15:1168:16 | &x | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1168:16:1168:16 | x | | file://:0:0:0:0 | & | +| main.rs:1168:16:1168:16 | x | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1173:13:1173:13 | x | | main.rs:1152:5:1152:13 | S | +| main.rs:1173:17:1173:20 | S {...} | | main.rs:1152:5:1152:13 | S | +| main.rs:1174:9:1174:9 | x | | main.rs:1152:5:1152:13 | S | +| main.rs:1174:9:1174:14 | x.f1() | | file://:0:0:0:0 | & | +| main.rs:1174:9:1174:14 | x.f1() | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1175:9:1175:9 | x | | main.rs:1152:5:1152:13 | S | +| main.rs:1175:9:1175:14 | x.f2() | | file://:0:0:0:0 | & | +| main.rs:1175:9:1175:14 | x.f2() | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1176:9:1176:17 | ...::f3(...) | | file://:0:0:0:0 | & | +| main.rs:1176:9:1176:17 | ...::f3(...) | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1176:15:1176:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1176:15:1176:16 | &x | &T | main.rs:1152:5:1152:13 | S | +| main.rs:1176:16:1176:16 | x | | main.rs:1152:5:1152:13 | S | +| main.rs:1190:43:1193:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1190:43:1193:5 | { ... } | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1190:43:1193:5 | { ... } | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1191:13:1191:13 | x | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1191:17:1191:30 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1191:17:1191:30 | ...::Ok(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1191:17:1191:31 | TryExpr | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1191:28:1191:29 | S1 | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1192:9:1192:22 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1192:9:1192:22 | ...::Ok(...) | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1192:9:1192:22 | ...::Ok(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1192:20:1192:21 | S1 | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1196:46:1200:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1196:46:1200:5 | { ... } | E | main.rs:1186:5:1187:14 | S2 | +| main.rs:1196:46:1200:5 | { ... } | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1197:13:1197:13 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1197:13:1197:13 | x | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1197:17:1197:30 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1197:17:1197:30 | ...::Ok(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1197:28:1197:29 | S1 | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1198:13:1198:13 | y | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1198:17:1198:17 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1198:17:1198:17 | x | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1198:17:1198:18 | TryExpr | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1199:9:1199:22 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1199:9:1199:22 | ...::Ok(...) | E | main.rs:1186:5:1187:14 | S2 | +| main.rs:1199:9:1199:22 | ...::Ok(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1199:20:1199:21 | S1 | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1203:40:1208:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1203:40:1208:5 | { ... } | E | main.rs:1186:5:1187:14 | S2 | +| main.rs:1203:40:1208:5 | { ... } | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1204:13:1204:13 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1204:13:1204:13 | x | T | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1204:13:1204:13 | x | T.T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1204:17:1204:42 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1204:17:1204:42 | ...::Ok(...) | T | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1204:17:1204:42 | ...::Ok(...) | T.T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1204:28:1204:41 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1204:28:1204:41 | ...::Ok(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1204:39:1204:40 | S1 | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1206:17:1206:17 | x | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1206:17:1206:17 | x | T | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1206:17:1206:17 | x | T.T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1206:17:1206:18 | TryExpr | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1206:17:1206:18 | TryExpr | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1206:17:1206:29 | ... .map(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1207:9:1207:22 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1207:9:1207:22 | ...::Ok(...) | E | main.rs:1186:5:1187:14 | S2 | +| main.rs:1207:9:1207:22 | ...::Ok(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1207:20:1207:21 | S1 | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1211:30:1211:34 | input | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1211:30:1211:34 | input | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1211:30:1211:34 | input | T | main.rs:1211:20:1211:27 | T | +| main.rs:1211:69:1218:5 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1211:69:1218:5 | { ... } | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1211:69:1218:5 | { ... } | T | main.rs:1211:20:1211:27 | T | +| main.rs:1212:13:1212:17 | value | | main.rs:1211:20:1211:27 | T | +| main.rs:1212:21:1212:25 | input | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1212:21:1212:25 | input | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1212:21:1212:25 | input | T | main.rs:1211:20:1211:27 | T | +| main.rs:1212:21:1212:26 | TryExpr | | main.rs:1211:20:1211:27 | T | +| main.rs:1213:22:1213:38 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1213:22:1213:38 | ...::Ok(...) | T | main.rs:1211:20:1211:27 | T | +| main.rs:1213:22:1216:10 | ... .and_then(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1213:33:1213:37 | value | | main.rs:1211:20:1211:27 | T | +| main.rs:1213:53:1216:9 | { ... } | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1213:53:1216:9 | { ... } | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1214:22:1214:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1215:13:1215:34 | ...::Ok::<...>(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1215:13:1215:34 | ...::Ok::<...>(...) | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1217:9:1217:23 | ...::Err(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1217:9:1217:23 | ...::Err(...) | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1217:9:1217:23 | ...::Err(...) | T | main.rs:1211:20:1211:27 | T | +| main.rs:1217:21:1217:22 | S1 | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1221:37:1221:52 | try_same_error(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1221:37:1221:52 | try_same_error(...) | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1221:37:1221:52 | try_same_error(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1222:22:1222:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1225:37:1225:55 | try_convert_error(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1225:37:1225:55 | try_convert_error(...) | E | main.rs:1186:5:1187:14 | S2 | +| main.rs:1225:37:1225:55 | try_convert_error(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1226:22:1226:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1229:37:1229:49 | try_chained(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1229:37:1229:49 | try_chained(...) | E | main.rs:1186:5:1187:14 | S2 | +| main.rs:1229:37:1229:49 | try_chained(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1230:22:1230:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1233:37:1233:63 | try_complex(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1233:37:1233:63 | try_complex(...) | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1233:37:1233:63 | try_complex(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1233:49:1233:62 | ...::Ok(...) | | file:///RUSTUP_HOME/toolchain/lib/rustlib/src/rust/library/core/src/result.rs:520:1:538:1 | Result | +| main.rs:1233:49:1233:62 | ...::Ok(...) | E | main.rs:1183:5:1184:14 | S1 | +| main.rs:1233:49:1233:62 | ...::Ok(...) | T | main.rs:1183:5:1184:14 | S1 | +| main.rs:1233:60:1233:61 | S1 | | main.rs:1183:5:1184:14 | S1 | +| main.rs:1234:22:1234:27 | "{:?}\\n" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1241:13:1241:13 | x | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1241:22:1241:22 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1242:13:1242:13 | y | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1242:17:1242:17 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1243:17:1243:17 | x | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1243:21:1243:21 | y | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1244:13:1244:13 | z | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1244:17:1244:17 | x | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1244:17:1244:23 | x.abs() | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1245:13:1245:13 | c | | file:///BUILTINS/types.rs:6:1:7:16 | char | +| main.rs:1245:17:1245:19 | 'c' | | file:///BUILTINS/types.rs:6:1:7:16 | char | +| main.rs:1246:13:1246:17 | hello | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1246:21:1246:27 | "Hello" | | file:///BUILTINS/types.rs:8:1:8:15 | str | +| main.rs:1247:13:1247:13 | f | | file:///BUILTINS/types.rs:25:1:25:15 | f64 | +| main.rs:1247:17:1247:24 | 123.0f64 | | file:///BUILTINS/types.rs:25:1:25:15 | f64 | +| main.rs:1248:13:1248:13 | t | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1248:17:1248:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1249:13:1249:13 | f | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1249:17:1249:21 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1255:13:1255:13 | x | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1255:17:1255:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1255:17:1255:29 | ... && ... | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1255:25:1255:29 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1256:13:1256:13 | y | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1256:17:1256:20 | true | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1256:17:1256:29 | ... \|\| ... | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1256:25:1256:29 | false | | file:///BUILTINS/types.rs:3:1:5:16 | bool | +| main.rs:1258:13:1258:17 | mut a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1259:12:1259:13 | 34 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1259:18:1259:19 | 33 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1260:17:1260:17 | z | | file://:0:0:0:0 | () | +| main.rs:1260:21:1260:27 | (...) | | file://:0:0:0:0 | () | +| main.rs:1260:22:1260:22 | a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1260:22:1260:26 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1260:26:1260:26 | 1 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1262:13:1262:13 | a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1262:13:1262:17 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1262:17:1262:17 | 2 | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1264:9:1264:9 | a | | file:///BUILTINS/types.rs:12:1:12:15 | i32 | +| main.rs:1270:5:1270:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1271:5:1271:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1271:20:1271:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1271:41:1271:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | From e778cbe768cb0efae57e198d3ba444aa76b44a31 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Sat, 24 May 2025 10:01:33 +0200 Subject: [PATCH 619/656] Rust: Resolve function calls to traits methods --- .../rust/elements/internal/CallExprImpl.qll | 10 +- .../elements/internal/MethodCallExprImpl.qll | 41 +-- .../codeql/rust/internal/TypeInference.qll | 261 ++++++++++++------ .../dataflow/global/inline-flow.expected | 42 +++ .../library-tests/dataflow/global/main.rs | 4 +- .../dataflow/global/viableCallable.expected | 3 + .../test/library-tests/type-inference/main.rs | 2 +- .../type-inference/type-inference.ql | 2 +- 8 files changed, 240 insertions(+), 125 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallExprImpl.qll index 944185cf122..e9ec4339d1a 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallExprImpl.qll @@ -14,6 +14,7 @@ private import codeql.rust.elements.PathExpr module Impl { private import rust private import codeql.rust.internal.PathResolution as PathResolution + private import codeql.rust.internal.TypeInference as TypeInference pragma[nomagic] Path getFunctionPath(CallExpr ce) { result = ce.getFunction().(PathExpr).getPath() } @@ -36,7 +37,14 @@ module Impl { class CallExpr extends Generated::CallExpr { override string toStringImpl() { result = this.getFunction().toAbbreviatedString() + "(...)" } - override Callable getStaticTarget() { result = getResolvedFunction(this) } + override Callable getStaticTarget() { + // If this call is to a trait method, e.g., `Trait::foo(bar)`, then check + // if type inference can resolve it to the correct trait implementation. + result = TypeInference::resolveMethodCallTarget(this) + or + not exists(TypeInference::resolveMethodCallTarget(this)) and + result = getResolvedFunction(this) + } /** Gets the struct that this call resolves to, if any. */ Struct getStruct() { result = getResolvedFunction(this) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll index 4996da37d90..1141ade4bd6 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/MethodCallExprImpl.qll @@ -14,14 +14,6 @@ private import codeql.rust.internal.TypeInference * be referenced directly. */ module Impl { - private predicate isInherentImplFunction(Function f) { - f = any(Impl impl | not impl.hasTrait()).(ImplItemNode).getAnAssocItem() - } - - private predicate isTraitImplFunction(Function f) { - f = any(Impl impl | impl.hasTrait()).(ImplItemNode).getAnAssocItem() - } - // the following QLdoc is generated: if you need to edit it, do it in the schema file /** * A method call expression. For example: @@ -31,38 +23,7 @@ module Impl { * ``` */ class MethodCallExpr extends Generated::MethodCallExpr { - private Function getStaticTargetFrom(boolean fromSource) { - result = resolveMethodCallExpr(this) and - (if result.fromSource() then fromSource = true else fromSource = false) and - ( - // prioritize inherent implementation methods first - isInherentImplFunction(result) - or - not isInherentImplFunction(resolveMethodCallExpr(this)) and - ( - // then trait implementation methods - isTraitImplFunction(result) - or - not isTraitImplFunction(resolveMethodCallExpr(this)) and - ( - // then trait methods with default implementations - result.hasBody() - or - // and finally trait methods without default implementations - not resolveMethodCallExpr(this).hasBody() - ) - ) - ) - } - - override Function getStaticTarget() { - // Functions in source code also gets extracted as library code, due to - // this duplication we prioritize functions from source code. - result = this.getStaticTargetFrom(true) - or - not exists(this.getStaticTargetFrom(true)) and - result = this.getStaticTargetFrom(false) - } + override Function getStaticTarget() { result = resolveMethodCallTarget(this) } private string toStringPart(int index) { index = 0 and diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 5bc137252fd..8cff1635b93 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -678,7 +678,7 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { Declaration getTarget() { result = CallExprImpl::getResolvedFunction(this) or - result = resolveMethodCallExpr(this) // mutual recursion; resolving method calls requires resolving types and vice versa + result = inferMethodCallTarget(this) // mutual recursion; resolving method calls requires resolving types and vice versa } } @@ -1000,6 +1000,150 @@ private StructType inferLiteralType(LiteralExpr le) { ) } +private module MethodCall { + /** An expression that calls a method. */ + abstract private class MethodCallImpl extends Expr { + /** Gets the name of the method targeted. */ + abstract string getMethodName(); + + /** Gets the number of arguments _excluding_ the `self` argument. */ + abstract int getArity(); + + /** Gets the trait targeted by this method call, if any. */ + Trait getTrait() { none() } + + /** Gets the type of the receiver of the method call at `path`. */ + abstract Type getTypeAt(TypePath path); + } + + final class MethodCall = MethodCallImpl; + + private class MethodCallExprMethodCall extends MethodCallImpl instanceof MethodCallExpr { + override string getMethodName() { result = super.getIdentifier().getText() } + + override int getArity() { result = super.getArgList().getNumberOfArgs() } + + pragma[nomagic] + override Type getTypeAt(TypePath path) { + exists(TypePath path0 | result = inferType(super.getReceiver(), path0) | + path0.isCons(TRefTypeParameter(), path) + or + not path0.isCons(TRefTypeParameter(), _) and + not (path0.isEmpty() and result = TRefType()) and + path = path0 + ) + } + } + + private class CallExprMethodCall extends MethodCallImpl instanceof CallExpr { + TraitItemNode trait; + string methodName; + Expr receiver; + + CallExprMethodCall() { + receiver = this.getArgList().getArg(0) and + exists(Path path, Function f | + path = this.getFunction().(PathExpr).getPath() and + f = resolvePath(path) and + f.getParamList().hasSelfParam() and + trait = resolvePath(path.getQualifier()) and + trait.getAnAssocItem() = f and + path.getSegment().getIdentifier().getText() = methodName + ) + } + + override string getMethodName() { result = methodName } + + override int getArity() { result = super.getArgList().getNumberOfArgs() - 1 } + + override Trait getTrait() { result = trait } + + pragma[nomagic] + override Type getTypeAt(TypePath path) { result = inferType(receiver, path) } + } +} + +import MethodCall + +/** + * Holds if a method for `type` with the name `name` and the arity `arity` + * exists in `impl`. + */ +private predicate methodCandidate(Type type, string name, int arity, Impl impl) { + type = impl.getSelfTy().(TypeMention).resolveType() and + exists(Function f | + f = impl.(ImplItemNode).getASuccessor(name) and + f.getParamList().hasSelfParam() and + arity = f.getParamList().getNumberOfParams() + ) +} + +/** + * Holds if a method for `type` for `trait` with the name `name` and the arity + * `arity` exists in `impl`. + */ +pragma[nomagic] +private predicate methodCandidateTrait(Type type, Trait trait, string name, int arity, Impl impl) { + trait = resolvePath(impl.getTrait().(PathTypeRepr).getPath()) and + methodCandidate(type, name, arity, impl) +} + +private module IsInstantiationOfInput implements IsInstantiationOfInputSig { + pragma[nomagic] + predicate potentialInstantiationOf(MethodCall mc, TypeAbstraction impl, TypeMention constraint) { + exists(Type rootType, string name, int arity | + rootType = mc.getTypeAt(TypePath::nil()) and + name = mc.getMethodName() and + arity = mc.getArity() and + constraint = impl.(ImplTypeAbstraction).getSelfTy() + | + methodCandidateTrait(rootType, mc.getTrait(), name, arity, impl) + or + not exists(mc.getTrait()) and + methodCandidate(rootType, name, arity, impl) + ) + } + + predicate relevantTypeMention(TypeMention constraint) { + exists(Impl impl | methodCandidate(_, _, _, impl) and constraint = impl.getSelfTy()) + } +} + +bindingset[item, name] +pragma[inline_late] +private Function getMethodSuccessor(ItemNode item, string name) { + result = item.getASuccessor(name) +} + +bindingset[tp, name] +pragma[inline_late] +private Function getTypeParameterMethod(TypeParameter tp, string name) { + result = getMethodSuccessor(tp.(TypeParamTypeParameter).getTypeParam(), name) + or + result = getMethodSuccessor(tp.(SelfTypeParameter).getTrait(), name) +} + +/** Gets a method from an `impl` block that matches the method call `mc`. */ +private Function getMethodFromImpl(MethodCall mc) { + exists(Impl impl | + IsInstantiationOf::isInstantiationOf(mc, impl, _) and + result = getMethodSuccessor(impl, mc.getMethodName()) + ) +} + +/** + * Gets a method that the method call `mc` resolves to based on type inference, + * if any. + */ +private Function inferMethodCallTarget(MethodCall mc) { + // The method comes from an `impl` block targeting the type of the receiver. + result = getMethodFromImpl(mc) + or + // The type of the receiver is a type parameter and the method comes from a + // trait bound on the type parameter. + result = getTypeParameterMethod(mc.getTypeAt(TypePath::nil()), mc.getMethodName()) +} + cached private module Cached { private import codeql.rust.internal.CachedStages @@ -1026,92 +1170,49 @@ private module Cached { ) } - private class ReceiverExpr extends Expr { - MethodCallExpr mce; - - ReceiverExpr() { mce.getReceiver() = this } - - string getField() { result = mce.getIdentifier().getText() } - - int getNumberOfArgs() { result = mce.getArgList().getNumberOfArgs() } - - pragma[nomagic] - Type getTypeAt(TypePath path) { - exists(TypePath path0 | result = inferType(this, path0) | - path0.isCons(TRefTypeParameter(), path) - or - not path0.isCons(TRefTypeParameter(), _) and - not (path0.isEmpty() and result = TRefType()) and - path = path0 - ) - } + private predicate isInherentImplFunction(Function f) { + f = any(Impl impl | not impl.hasTrait()).(ImplItemNode).getAnAssocItem() } - /** Holds if a method for `type` with the name `name` and the arity `arity` exists in `impl`. */ - pragma[nomagic] - private predicate methodCandidate(Type type, string name, int arity, Impl impl) { - type = impl.getSelfTy().(TypeReprMention).resolveType() and - exists(Function f | - f = impl.(ImplItemNode).getASuccessor(name) and - f.getParamList().hasSelfParam() and - arity = f.getParamList().getNumberOfParams() - ) + private predicate isTraitImplFunction(Function f) { + f = any(Impl impl | impl.hasTrait()).(ImplItemNode).getAnAssocItem() } - private module IsInstantiationOfInput implements IsInstantiationOfInputSig { - pragma[nomagic] - predicate potentialInstantiationOf( - ReceiverExpr receiver, TypeAbstraction impl, TypeMention constraint - ) { - methodCandidate(receiver.getTypeAt(TypePath::nil()), receiver.getField(), - receiver.getNumberOfArgs(), impl) and - constraint = impl.(ImplTypeAbstraction).getSelfTy() - } - - predicate relevantTypeMention(TypeMention constraint) { - exists(Impl impl | methodCandidate(_, _, _, impl) and constraint = impl.getSelfTy()) - } - } - - bindingset[item, name] - pragma[inline_late] - private Function getMethodSuccessor(ItemNode item, string name) { - result = item.getASuccessor(name) - } - - bindingset[tp, name] - pragma[inline_late] - private Function getTypeParameterMethod(TypeParameter tp, string name) { - result = getMethodSuccessor(tp.(TypeParamTypeParameter).getTypeParam(), name) - or - result = getMethodSuccessor(tp.(SelfTypeParameter).getTrait(), name) - } - - /** - * Gets the method from an `impl` block with an implementing type that matches - * the type of `receiver` and with a name of the method call in which - * `receiver` occurs, if any. - */ - private Function getMethodFromImpl(ReceiverExpr receiver) { - exists(Impl impl | - IsInstantiationOf::isInstantiationOf(receiver, impl, _) and - result = getMethodSuccessor(impl, receiver.getField()) - ) - } - - /** Gets a method that the method call `mce` resolves to, if any. */ - cached - Function resolveMethodCallExpr(MethodCallExpr mce) { - exists(ReceiverExpr receiver | mce.getReceiver() = receiver | - // The method comes from an `impl` block targeting the type of `receiver`. - result = getMethodFromImpl(receiver) + private Function resolveMethodCallTargetFrom(MethodCall mc, boolean fromSource) { + result = inferMethodCallTarget(mc) and + (if result.fromSource() then fromSource = true else fromSource = false) and + ( + // prioritize inherent implementation methods first + isInherentImplFunction(result) or - // The type of `receiver` is a type parameter and the method comes from a - // trait bound on the type parameter. - result = getTypeParameterMethod(receiver.getTypeAt(TypePath::nil()), receiver.getField()) + not isInherentImplFunction(inferMethodCallTarget(mc)) and + ( + // then trait implementation methods + isTraitImplFunction(result) + or + not isTraitImplFunction(inferMethodCallTarget(mc)) and + ( + // then trait methods with default implementations + result.hasBody() + or + // and finally trait methods without default implementations + not inferMethodCallTarget(mc).hasBody() + ) + ) ) } + /** Gets a method that the method call `mc` resolves to, if any. */ + cached + Function resolveMethodCallTarget(MethodCall mc) { + // Functions in source code also gets extracted as library code, due to + // this duplication we prioritize functions from source code. + result = resolveMethodCallTargetFrom(mc, true) + or + not exists(resolveMethodCallTargetFrom(mc, true)) and + result = resolveMethodCallTargetFrom(mc, false) + } + pragma[inline] private Type inferRootTypeDeref(AstNode n) { result = inferType(n) and @@ -1243,6 +1344,6 @@ private module Debug { Function debugResolveMethodCallExpr(MethodCallExpr mce) { mce = getRelevantLocatable() and - result = resolveMethodCallExpr(mce) + result = resolveMethodCallTarget(mce) } } diff --git a/rust/ql/test/library-tests/dataflow/global/inline-flow.expected b/rust/ql/test/library-tests/dataflow/global/inline-flow.expected index ec838732cd5..c64956c59a0 100644 --- a/rust/ql/test/library-tests/dataflow/global/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/global/inline-flow.expected @@ -92,6 +92,24 @@ edges | main.rs:188:9:188:9 | d [MyInt] | main.rs:189:10:189:10 | d [MyInt] | provenance | | | main.rs:188:13:188:20 | a.add(...) [MyInt] | main.rs:188:9:188:9 | d [MyInt] | provenance | | | main.rs:189:10:189:10 | d [MyInt] | main.rs:189:10:189:16 | d.value | provenance | | +| main.rs:201:18:201:21 | SelfParam [MyInt] | main.rs:201:48:203:5 | { ... } [MyInt] | provenance | | +| main.rs:205:26:205:37 | ...: MyInt [MyInt] | main.rs:205:49:207:5 | { ... } [MyInt] | provenance | | +| main.rs:211:9:211:9 | a [MyInt] | main.rs:213:49:213:49 | a [MyInt] | provenance | | +| main.rs:211:13:211:38 | MyInt {...} [MyInt] | main.rs:211:9:211:9 | a [MyInt] | provenance | | +| main.rs:211:28:211:36 | source(...) | main.rs:211:13:211:38 | MyInt {...} [MyInt] | provenance | | +| main.rs:213:9:213:26 | MyInt {...} [MyInt] | main.rs:213:24:213:24 | c | provenance | | +| main.rs:213:24:213:24 | c | main.rs:214:10:214:10 | c | provenance | | +| main.rs:213:30:213:53 | ...::take_self(...) [MyInt] | main.rs:213:9:213:26 | MyInt {...} [MyInt] | provenance | | +| main.rs:213:49:213:49 | a [MyInt] | main.rs:201:18:201:21 | SelfParam [MyInt] | provenance | | +| main.rs:213:49:213:49 | a [MyInt] | main.rs:213:30:213:53 | ...::take_self(...) [MyInt] | provenance | | +| main.rs:217:9:217:9 | b [MyInt] | main.rs:218:54:218:54 | b [MyInt] | provenance | | +| main.rs:217:13:217:39 | MyInt {...} [MyInt] | main.rs:217:9:217:9 | b [MyInt] | provenance | | +| main.rs:217:28:217:37 | source(...) | main.rs:217:13:217:39 | MyInt {...} [MyInt] | provenance | | +| main.rs:218:9:218:26 | MyInt {...} [MyInt] | main.rs:218:24:218:24 | c | provenance | | +| main.rs:218:24:218:24 | c | main.rs:219:10:219:10 | c | provenance | | +| main.rs:218:30:218:55 | ...::take_second(...) [MyInt] | main.rs:218:9:218:26 | MyInt {...} [MyInt] | provenance | | +| main.rs:218:54:218:54 | b [MyInt] | main.rs:205:26:205:37 | ...: MyInt [MyInt] | provenance | | +| main.rs:218:54:218:54 | b [MyInt] | main.rs:218:30:218:55 | ...::take_second(...) [MyInt] | provenance | | | main.rs:227:32:231:1 | { ... } | main.rs:246:41:246:54 | async_source(...) | provenance | | | main.rs:228:9:228:9 | a | main.rs:227:32:231:1 | { ... } | provenance | | | main.rs:228:9:228:9 | a | main.rs:229:10:229:10 | a | provenance | | @@ -202,6 +220,26 @@ nodes | main.rs:188:13:188:20 | a.add(...) [MyInt] | semmle.label | a.add(...) [MyInt] | | main.rs:189:10:189:10 | d [MyInt] | semmle.label | d [MyInt] | | main.rs:189:10:189:16 | d.value | semmle.label | d.value | +| main.rs:201:18:201:21 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] | +| main.rs:201:48:203:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | +| main.rs:205:26:205:37 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] | +| main.rs:205:49:207:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | +| main.rs:211:9:211:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:211:13:211:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:211:28:211:36 | source(...) | semmle.label | source(...) | +| main.rs:213:9:213:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:213:24:213:24 | c | semmle.label | c | +| main.rs:213:30:213:53 | ...::take_self(...) [MyInt] | semmle.label | ...::take_self(...) [MyInt] | +| main.rs:213:49:213:49 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:214:10:214:10 | c | semmle.label | c | +| main.rs:217:9:217:9 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:217:13:217:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:217:28:217:37 | source(...) | semmle.label | source(...) | +| main.rs:218:9:218:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:218:24:218:24 | c | semmle.label | c | +| main.rs:218:30:218:55 | ...::take_second(...) [MyInt] | semmle.label | ...::take_second(...) [MyInt] | +| main.rs:218:54:218:54 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:219:10:219:10 | c | semmle.label | c | | main.rs:227:32:231:1 | { ... } | semmle.label | { ... } | | main.rs:228:9:228:9 | a | semmle.label | a | | main.rs:228:13:228:21 | source(...) | semmle.label | source(...) | @@ -225,6 +263,8 @@ subpaths | main.rs:143:38:143:38 | a | main.rs:106:27:106:32 | ...: i64 | main.rs:106:42:112:5 | { ... } | main.rs:143:13:143:39 | ...::data_through(...) | | main.rs:161:24:161:33 | source(...) | main.rs:155:12:155:17 | ...: i64 | main.rs:155:28:157:5 | { ... } [MyInt] | main.rs:161:13:161:34 | ...::new(...) [MyInt] | | main.rs:186:9:186:9 | a [MyInt] | main.rs:169:12:169:15 | SelfParam [MyInt] | main.rs:169:42:172:5 | { ... } [MyInt] | main.rs:188:13:188:20 | a.add(...) [MyInt] | +| main.rs:213:49:213:49 | a [MyInt] | main.rs:201:18:201:21 | SelfParam [MyInt] | main.rs:201:48:203:5 | { ... } [MyInt] | main.rs:213:30:213:53 | ...::take_self(...) [MyInt] | +| main.rs:218:54:218:54 | b [MyInt] | main.rs:205:26:205:37 | ...: MyInt [MyInt] | main.rs:205:49:207:5 | { ... } [MyInt] | main.rs:218:30:218:55 | ...::take_second(...) [MyInt] | testFailures #select | main.rs:18:10:18:10 | a | main.rs:13:5:13:13 | source(...) | main.rs:18:10:18:10 | a | $@ | main.rs:13:5:13:13 | source(...) | source(...) | @@ -241,6 +281,8 @@ testFailures | main.rs:144:10:144:10 | b | main.rs:142:13:142:22 | source(...) | main.rs:144:10:144:10 | b | $@ | main.rs:142:13:142:22 | source(...) | source(...) | | main.rs:163:10:163:10 | m | main.rs:161:24:161:33 | source(...) | main.rs:163:10:163:10 | m | $@ | main.rs:161:24:161:33 | source(...) | source(...) | | main.rs:189:10:189:16 | d.value | main.rs:186:28:186:36 | source(...) | main.rs:189:10:189:16 | d.value | $@ | main.rs:186:28:186:36 | source(...) | source(...) | +| main.rs:214:10:214:10 | c | main.rs:211:28:211:36 | source(...) | main.rs:214:10:214:10 | c | $@ | main.rs:211:28:211:36 | source(...) | source(...) | +| main.rs:219:10:219:10 | c | main.rs:217:28:217:37 | source(...) | main.rs:219:10:219:10 | c | $@ | main.rs:217:28:217:37 | source(...) | source(...) | | main.rs:229:10:229:10 | a | main.rs:228:13:228:21 | source(...) | main.rs:229:10:229:10 | a | $@ | main.rs:228:13:228:21 | source(...) | source(...) | | main.rs:239:14:239:14 | c | main.rs:238:17:238:25 | source(...) | main.rs:239:14:239:14 | c | $@ | main.rs:238:17:238:25 | source(...) | source(...) | | main.rs:247:10:247:10 | a | main.rs:228:13:228:21 | source(...) | main.rs:247:10:247:10 | a | $@ | main.rs:228:13:228:21 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/global/main.rs b/rust/ql/test/library-tests/dataflow/global/main.rs index a28a8e03084..507772692d6 100644 --- a/rust/ql/test/library-tests/dataflow/global/main.rs +++ b/rust/ql/test/library-tests/dataflow/global/main.rs @@ -211,12 +211,12 @@ fn data_through_trait_method_called_as_function() { let a = MyInt { value: source(8) }; let b = MyInt { value: 2 }; let MyInt { value: c } = MyTrait::take_self(a, b); - sink(c); // $ MISSING: hasValueFlow=8 + sink(c); // $ hasValueFlow=8 let a = MyInt { value: 0 }; let b = MyInt { value: source(37) }; let MyInt { value: c } = MyTrait::take_second(a, b); - sink(c); // $ MISSING: hasValueFlow=37 + sink(c); // $ hasValueFlow=37 let a = MyInt { value: 0 }; let b = MyInt { value: source(38) }; diff --git a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected index 76e65eea387..63abc4c7f41 100644 --- a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected +++ b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected @@ -48,10 +48,13 @@ | main.rs:188:13:188:20 | a.add(...) | main.rs:169:5:172:5 | fn add | | main.rs:189:5:189:17 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:211:28:211:36 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:213:30:213:53 | ...::take_self(...) | main.rs:201:5:203:5 | fn take_self | | main.rs:214:5:214:11 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:217:28:217:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:218:30:218:55 | ...::take_second(...) | main.rs:205:5:207:5 | fn take_second | | main.rs:219:5:219:11 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:222:28:222:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:223:30:223:53 | ...::take_self(...) | main.rs:201:5:203:5 | fn take_self | | main.rs:224:5:224:11 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:228:13:228:21 | source(...) | main.rs:1:1:3:1 | fn source | | main.rs:229:5:229:11 | sink(...) | main.rs:5:1:7:1 | fn sink | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 48964f9fb37..9f0056522b6 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -112,7 +112,7 @@ mod trait_impl { let a = x.trait_method(); // $ type=a:bool method=MyThing::trait_method let y = MyThing { field: false }; - let b = MyTrait::trait_method(y); // $ type=b:bool MISSING: method=MyThing::trait_method + let b = MyTrait::trait_method(y); // $ type=b:bool method=MyThing::trait_method } } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.ql b/rust/ql/test/library-tests/type-inference/type-inference.ql index 94d8ee23796..cea5839c6ad 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.ql +++ b/rust/ql/test/library-tests/type-inference/type-inference.ql @@ -43,7 +43,7 @@ module ResolveTest implements TestSig { source.fromSource() and not source.isFromMacroExpansion() | - target = source.(MethodCallExpr).getStaticTarget() and + target = resolveMethodCallTarget(source) and functionHasValue(target, value) and tag = "method" or From bb9c72f889791cceef62074ede02edc9fbfb1d2a Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Sun, 25 May 2025 21:13:18 +0200 Subject: [PATCH 620/656] Swift: Update to Swift 6.1.1 --- swift/third_party/load.bzl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index d19345a1880..ad05960e7f6 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -5,6 +5,10 @@ load("//misc/bazel:lfs.bzl", "lfs_archive", "lfs_files") _override = { # these are used to test new artifacts. Must be empty before merging to main + "swift-prebuilt-macOS-swift-6.1.1-RELEASE-108.tar.zst": "2aaf6e7083c27a561d7212f88b3e15cbeb2bdf1d2363d310227d278937a4c2c9", + "swift-prebuilt-Linux-swift-6.1.1-RELEASE-108.tar.zst": "31cba2387c7e1ce4e73743935b0db65ea69fccf5c07bd2b392fd6815f5dffca5", + "resource-dir-macOS-swift-6.1.1-RELEASE-115.zip": "84e34d6af45883fe6d0103c2f36bbff3069ac068e671cb62d0d01d16e087362d", + "resource-dir-Linux-swift-6.1.1-RELEASE-115.zip": "1e00a730a93b85a5ba478590218e1f769792ec56501977cc72d941101c5c3657", } _staging_url = "https://github.com/dsp-testing/codeql-swift-artifacts/releases/download/staging-{}/{}" From 27fd7c48faf5214c5576c18a9dfe8d2373fde502 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 26 May 2025 10:03:43 +0200 Subject: [PATCH 621/656] Swift: Update macOS runner --- .github/workflows/swift.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 4af46d302ac..df610a96702 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -32,7 +32,7 @@ jobs: if: github.repository_owner == 'github' strategy: matrix: - runner: [ubuntu-latest, macos-13-xlarge] + runner: [ubuntu-latest, macos-15-xlarge] fail-fast: false runs-on: ${{ matrix.runner }} steps: From 37024ade85bb73a443b216406fb9d315a94f0440 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Mon, 26 May 2025 10:22:33 +0200 Subject: [PATCH 622/656] JS: Move query suite selector logic to `javascript-security-and-quality.qls` --- .../javascript-security-and-quality.qls | 144 +++++++++++++++++- 1 file changed, 142 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/codeql-suites/javascript-security-and-quality.qls b/javascript/ql/src/codeql-suites/javascript-security-and-quality.qls index fe0fb9b6f34..d02a016f058 100644 --- a/javascript/ql/src/codeql-suites/javascript-security-and-quality.qls +++ b/javascript/ql/src/codeql-suites/javascript-security-and-quality.qls @@ -1,4 +1,144 @@ - description: Security-and-quality queries for JavaScript - queries: . -- apply: security-and-quality-selectors.yml - from: codeql/suite-helpers +- include: + kind: + - problem + - path-problem + precision: + - high + - very-high + tags contain: + - security +- include: + kind: + - problem + - path-problem + precision: medium + problem.severity: + - error + - warning + tags contain: + - security +- include: + id: + - js/node/assignment-to-exports-variable + - js/node/missing-exports-qualifier + - js/angular/duplicate-dependency + - js/angular/missing-explicit-injection + - js/angular/dependency-injection-mismatch + - js/angular/incompatible-service + - js/angular/expression-in-url-attribute + - js/angular/repeated-dependency-injection + - js/regex/back-reference-to-negative-lookahead + - js/regex/unmatchable-dollar + - js/regex/empty-character-class + - js/regex/back-reference-before-group + - js/regex/unbound-back-reference + - js/regex/always-matches + - js/regex/unmatchable-caret + - js/regex/duplicate-in-character-class + - js/vue/arrow-method-on-vue-instance + - js/conditional-comment + - js/superfluous-trailing-arguments + - js/illegal-invocation + - js/invalid-prototype-value + - js/incomplete-object-initialization + - js/useless-type-test + - js/template-syntax-in-string-literal + - js/with-statement + - js/property-assignment-on-primitive + - js/deletion-of-non-property + - js/setter-return + - js/index-out-of-bounds + - js/unused-index-variable + - js/non-standard-language-feature + - js/syntax-error + - js/for-in-comprehension + - js/strict-mode-call-stack-introspection + - js/automatic-semicolon-insertion + - js/inconsistent-use-of-new + - js/non-linear-pattern + - js/yield-outside-generator + - js/mixed-static-instance-this-access + - js/arguments-redefinition + - js/nested-function-reference-in-default-parameter + - js/duplicate-parameter-name + - js/unreachable-method-overloads + - js/duplicate-variable-declaration + - js/function-declaration-conflict + - js/ineffective-parameter-type + - js/assignment-to-constant + - js/use-before-declaration + - js/suspicious-method-name-declaration + - js/overwritten-property + - js/useless-assignment-to-local + - js/useless-assignment-to-property + - js/variable-initialization-conflict + - js/variable-use-in-temporal-dead-zone + - js/missing-variable-declaration + - js/missing-this-qualifier + - js/unused-local-variable + - js/label-in-switch + - js/ignore-array-result + - js/inconsistent-loop-direction + - js/unreachable-statement + - js/trivial-conditional + - js/useless-comparison-test + - js/misleading-indentation-of-dangling-else + - js/use-of-returnless-function + - js/useless-assignment-in-return + - js/loop-iteration-skipped-due-to-shifting + - js/misleading-indentation-after-control-statement + - js/unused-loop-variable + - js/implicit-operand-conversion + - js/whitespace-contradicts-precedence + - js/missing-space-in-concatenation + - js/unbound-event-handler-receiver + - js/shift-out-of-range + - js/missing-dot-length-in-comparison + - js/redundant-operation + - js/comparison-with-nan + - js/duplicate-property + - js/unclear-operator-precedence + - js/unknown-directive + - js/string-instead-of-regex + - js/unneeded-defensive-code + - js/duplicate-switch-case + - js/duplicate-condition + - js/useless-expression + - js/redundant-assignment + - js/misspelled-variable-name + - js/call-to-non-callable + - js/missing-await + - js/comparison-between-incompatible-types + - js/property-access-on-non-object + - js/malformed-html-id + - js/eval-like-call + - js/duplicate-html-attribute + - js/react/unsupported-state-update-in-lifecycle-method + - js/react/unused-or-undefined-state-property + - js/react/direct-state-mutation + - js/react/inconsistent-state-update + - js/diagnostics/extraction-errors + - js/diagnostics/successfully-extracted-files + - js/summary/lines-of-code + - js/summary/lines-of-user-code +- include: + kind: + - diagnostic +- include: + kind: + - metric + tags contain: + - summary +- exclude: + deprecated: // +- exclude: + query path: + - /^experimental\/.*/ + - Metrics/Summaries/FrameworkCoverage.ql + - /Diagnostics/Internal/.*/ +- exclude: + tags contain: + - modeleditor + - modelgenerator From ba7726462fb695d5b28280572d15cccd1eb73f3d Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 26 May 2025 12:17:25 +0200 Subject: [PATCH 623/656] Rust: Also include prelude path resolution in Core --- rust/ql/lib/codeql/rust/internal/PathResolution.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index 8764869a152..ca05b0fba7d 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -1413,7 +1413,7 @@ private predicate useImportEdge(Use use, string name, ItemNode item) { */ private predicate preludeEdge(SourceFile f, string name, ItemNode i) { exists(Crate core, ModuleLikeNode mod, ModuleItemNode prelude, ModuleItemNode rust | - f = any(Crate c0 | core = c0.getDependency(_)).getASourceFile() and + f = any(Crate c0 | core = c0.getDependency(_) or core = c0).getASourceFile() and core.getName() = "core" and mod = core.getSourceFile() and prelude = mod.getASuccessorRec("prelude") and @@ -1438,8 +1438,8 @@ private module Debug { private Locatable getRelevantLocatable() { exists(string filepath, int startline, int startcolumn, int endline, int endcolumn | result.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) and - filepath.matches("%/term.rs") and - startline = [71] + filepath.matches("%/test.rs") and + startline = 74 ) } From a749cf934ae87caf773a10e386ca4b45605b1ad2 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 26 May 2025 14:15:56 +0200 Subject: [PATCH 624/656] Rust: accept test changes --- rust/ql/integration-tests/macro-expansion/summary.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/integration-tests/macro-expansion/summary.expected b/rust/ql/integration-tests/macro-expansion/summary.expected index 529d1736d02..6917d67b1cf 100644 --- a/rust/ql/integration-tests/macro-expansion/summary.expected +++ b/rust/ql/integration-tests/macro-expansion/summary.expected @@ -9,7 +9,7 @@ | Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | -| Lines of code extracted | 46 | +| Lines of code extracted | 29 | | Lines of user code extracted | 29 | | Macro calls - resolved | 52 | | Macro calls - total | 53 | From 0ce06e88188df1d0301374a09608b3253eaca78e Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 26 May 2025 15:12:33 +0200 Subject: [PATCH 625/656] Rust: Use member predicate from path resolution --- rust/ql/lib/codeql/rust/internal/TypeInference.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 8cff1635b93..ca5c65f38ef 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1084,7 +1084,7 @@ private predicate methodCandidate(Type type, string name, int arity, Impl impl) */ pragma[nomagic] private predicate methodCandidateTrait(Type type, Trait trait, string name, int arity, Impl impl) { - trait = resolvePath(impl.getTrait().(PathTypeRepr).getPath()) and + trait = resolvePath(impl.(ImplItemNode).getTraitPath()) and methodCandidate(type, name, arity, impl) } From b4d2fb45ab7b7e90f07d6dfb09153b90a83bd591 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 26 May 2025 16:22:20 +0200 Subject: [PATCH 626/656] Swift: Fix type string representation --- swift/extractor/translators/ExprTranslator.cpp | 4 +++- .../generated/expr/TypeValueExpr/TypeValueExpr.expected | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/swift/extractor/translators/ExprTranslator.cpp b/swift/extractor/translators/ExprTranslator.cpp index 30cca659a8c..15a6765e5fc 100644 --- a/swift/extractor/translators/ExprTranslator.cpp +++ b/swift/extractor/translators/ExprTranslator.cpp @@ -691,7 +691,9 @@ codeql::CurrentContextIsolationExpr ExprTranslator::translateCurrentContextIsola codeql::TypeValueExpr ExprTranslator::translateTypeValueExpr(const swift::TypeValueExpr& expr) { auto entry = createExprEntry(expr); - entry.type_repr = dispatcher.fetchLabel(expr.getParamTypeRepr()); + if (expr.getParamTypeRepr() && expr.getParamType()) { + entry.type_repr = dispatcher.fetchLabel(expr.getParamTypeRepr(), expr.getParamType()); + } return entry; } diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected index fa57faafb19..685ff810fcf 100644 --- a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected @@ -1,2 +1,2 @@ -| type_value_exprs.swift:4:13:4:13 | TypeValueExpr | hasType: | yes | getTypeRepr: | type_value_exprs.swift:4:13:4:13 | (no string representation) | -| type_value_exprs.swift:5:13:5:13 | TypeValueExpr | hasType: | yes | getTypeRepr: | type_value_exprs.swift:5:13:5:13 | (no string representation) | +| type_value_exprs.swift:4:13:4:13 | TypeValueExpr | hasType: | yes | getTypeRepr: | type_value_exprs.swift:4:13:4:13 | N | +| type_value_exprs.swift:5:13:5:13 | TypeValueExpr | hasType: | yes | getTypeRepr: | type_value_exprs.swift:5:13:5:13 | N | From f17076e212187e3f0c601f706bfd9612474000eb Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 26 May 2025 16:41:05 +0200 Subject: [PATCH 627/656] Swift: Update expected test results --- swift/ql/test/library-tests/ast/Errors.expected | 2 -- swift/ql/test/library-tests/ast/Missing.expected | 2 -- swift/ql/test/library-tests/ast/PrintAst.expected | 6 ++---- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/swift/ql/test/library-tests/ast/Errors.expected b/swift/ql/test/library-tests/ast/Errors.expected index e6ccf071851..e69de29bb2d 100644 --- a/swift/ql/test/library-tests/ast/Errors.expected +++ b/swift/ql/test/library-tests/ast/Errors.expected @@ -1,2 +0,0 @@ -| cfg.swift:591:13:591:13 | missing type from TypeRepr | UnspecifiedElement | -| cfg.swift:595:13:595:13 | missing type from TypeRepr | UnspecifiedElement | diff --git a/swift/ql/test/library-tests/ast/Missing.expected b/swift/ql/test/library-tests/ast/Missing.expected index 1966db9b890..e69de29bb2d 100644 --- a/swift/ql/test/library-tests/ast/Missing.expected +++ b/swift/ql/test/library-tests/ast/Missing.expected @@ -1,2 +0,0 @@ -| cfg.swift:591:13:591:13 | missing type from TypeRepr | -| cfg.swift:595:13:595:13 | missing type from TypeRepr | diff --git a/swift/ql/test/library-tests/ast/PrintAst.expected b/swift/ql/test/library-tests/ast/PrintAst.expected index 248401ac814..f0383c005c3 100644 --- a/swift/ql/test/library-tests/ast/PrintAst.expected +++ b/swift/ql/test/library-tests/ast/PrintAst.expected @@ -3552,7 +3552,7 @@ cfg.swift: # 590| getGenericTypeParam(0): [GenericTypeParamDecl] N # 591| getMember(0): [PatternBindingDecl] var ... = ... # 591| getInit(0): [TypeValueExpr] TypeValueExpr -# 591| getTypeRepr(): (no string representation) +# 591| getTypeRepr(): [TypeRepr] N # 591| getPattern(0): [NamedPattern] x # 591| getMember(1): [ConcreteVarDecl] x # 591| Type = Int @@ -3596,7 +3596,6 @@ cfg.swift: # 590| Type = ValueGenericsStruct # 590| getBody(): [BraceStmt] { ... } # 590| getElement(0): [ReturnStmt] return -# 591| [UnspecifiedElement] missing type from TypeRepr # 594| [NamedFunction] valueGenericsFn(_:) # 594| InterfaceType = (ValueGenericsStruct) -> () # 594| getGenericTypeParam(0): [GenericTypeParamDecl] N @@ -3607,7 +3606,7 @@ cfg.swift: # 595| Type = Int # 595| getElement(0): [PatternBindingDecl] var ... = ... # 595| getInit(0): [TypeValueExpr] TypeValueExpr -# 595| getTypeRepr(): (no string representation) +# 595| getTypeRepr(): [TypeRepr] N # 595| getPattern(0): [NamedPattern] x # 596| getElement(1): [CallExpr] call to print(_:separator:terminator:) # 596| getFunction(): [DeclRefExpr] print(_:separator:terminator:) @@ -3624,7 +3623,6 @@ cfg.swift: # 597| getElement(2): [AssignExpr] ... = ... # 597| getDest(): [DiscardAssignmentExpr] _ # 597| getSource(): [DeclRefExpr] value -# 595| [UnspecifiedElement] missing type from TypeRepr declarations.swift: # 1| [StructDecl] Foo # 2| getMember(0): [PatternBindingDecl] var ... = ... From 765afdbae0a9464a9dda609944c196af542a7453 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 26 May 2025 18:21:35 +0200 Subject: [PATCH 628/656] Rust: add option to extract dependencies as source files --- rust/codeql-extractor.yml | 8 ++++++++ rust/extractor/src/config.rs | 1 + rust/extractor/src/main.rs | 15 +++++++++++++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/rust/codeql-extractor.yml b/rust/codeql-extractor.yml index 1c73a070e58..0ba77ee88d1 100644 --- a/rust/codeql-extractor.yml +++ b/rust/codeql-extractor.yml @@ -82,3 +82,11 @@ options: title: Skip path resolution description: > Skip path resolution. This is experimental, while we move path resolution from the extractor to the QL library. + type: string + pattern: "^(false|true)$" + extract_dependencies_as_source: + title: Extract dependencies as source code + description: > + Extract the full source code of dependencies instead of only extracting signatures. + type: string + pattern: "^(false|true)$" diff --git a/rust/extractor/src/config.rs b/rust/extractor/src/config.rs index e66d54807be..3f6b86d1f1f 100644 --- a/rust/extractor/src/config.rs +++ b/rust/extractor/src/config.rs @@ -67,6 +67,7 @@ pub struct Config { pub extra_includes: Vec, pub proc_macro_server: Option, pub skip_path_resolution: bool, + pub extract_dependencies_as_source: bool, } impl Config { diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index 99f470aa13e..fd827f46d7c 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -277,6 +277,16 @@ fn main() -> anyhow::Result<()> { } else { ResolvePaths::Yes }; + let library_mode = if cfg.extract_dependencies_as_source { + SourceKind::Source + } else { + SourceKind::Library + }; + let library_resolve_paths = if cfg.extract_dependencies_as_source { + resolve_paths + } else { + ResolvePaths::No + }; let mut processed_files: HashSet = HashSet::from_iter(files.iter().cloned()); for (manifest, files) in map.values().filter(|(_, files)| !files.is_empty()) { @@ -312,12 +322,13 @@ fn main() -> anyhow::Result<()> { .source_root(db) .is_library { + tracing::info!("file: {}", file.display()); extractor.extract_with_semantics( file, &semantics, vfs, - ResolvePaths::No, - SourceKind::Library, + library_resolve_paths, + library_mode, ); extractor.archiver.archive(file); } From 96cba8b8c248282c3de20b592f4c2b7c4dba0810 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 22 May 2025 14:04:44 +0200 Subject: [PATCH 629/656] Rust: Add inconsistency check for type mentions without a root type --- .../codeql/typeinference/internal/TypeInference.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 6a1f1c50bb3..b0f5fc67300 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -1314,6 +1314,10 @@ module Make1 Input1> { getTypeParameterId(tp1) = getTypeParameterId(tp2) and tp1 != tp2 } + + query predicate illFormedTypeMention(TypeMention tm) { + not exists(tm.resolveTypeAt(TypePath::nil())) and exists(tm.getLocation()) + } } } } From 5278064407ea4880713d82f1fda1800eefbd6946 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 22 May 2025 14:08:25 +0200 Subject: [PATCH 630/656] Rust: Only include relevant AST nodes in TypeMention --- .../codeql/rust/internal/TypeInference.qll | 14 +- .../lib/codeql/rust/internal/TypeMention.qll | 154 ++++++++---------- 2 files changed, 77 insertions(+), 91 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index ca5c65f38ef..ca60efe2864 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -314,7 +314,7 @@ private Type getRefAdjustImplicitSelfType(SelfParam self, TypePath suffix, Type pragma[nomagic] private Type resolveImplSelfType(Impl i, TypePath path) { - result = i.getSelfTy().(TypeReprMention).resolveTypeAt(path) + result = i.getSelfTy().(TypeMention).resolveTypeAt(path) } /** Gets the type at `path` of the implicitly typed `self` parameter. */ @@ -377,7 +377,7 @@ private module StructExprMatchingInput implements MatchingInputSig { Type getDeclaredType(DeclarationPosition dpos, TypePath path) { // type of a field - exists(TypeReprMention tp | + exists(TypeMention tp | tp = this.getField(dpos.asFieldPos()).getTypeRepr() and result = tp.resolveTypeAt(path) ) @@ -537,7 +537,7 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { override Type getParameterType(DeclarationPosition dpos, TypePath path) { exists(int pos | - result = this.getTupleField(pos).getTypeRepr().(TypeReprMention).resolveTypeAt(path) and + result = this.getTupleField(pos).getTypeRepr().(TypeMention).resolveTypeAt(path) and dpos = TPositionalDeclarationPosition(pos, false) ) } @@ -560,7 +560,7 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { override Type getParameterType(DeclarationPosition dpos, TypePath path) { exists(int p | - result = this.getTupleField(p).getTypeRepr().(TypeReprMention).resolveTypeAt(path) and + result = this.getTupleField(p).getTypeRepr().(TypeMention).resolveTypeAt(path) and dpos = TPositionalDeclarationPosition(p, false) ) } @@ -608,7 +608,7 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { } override Type getReturnType(TypePath path) { - result = this.getRetType().getTypeRepr().(TypeReprMention).resolveTypeAt(path) + result = this.getRetType().getTypeRepr().(TypeMention).resolveTypeAt(path) } } @@ -646,7 +646,7 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { private import codeql.rust.elements.internal.CallExprImpl::Impl as CallExprImpl class Access extends CallExprBase { - private TypeReprMention getMethodTypeArg(int i) { + private TypeMention getMethodTypeArg(int i) { result = this.(MethodCallExpr).getGenericArgList().getTypeArg(i) } @@ -831,7 +831,7 @@ private module FieldExprMatchingInput implements MatchingInputSig { ) or dpos.isField() and - result = this.getTypeRepr().(TypeReprMention).resolveTypeAt(path) + result = this.getTypeRepr().(TypeMention).resolveTypeAt(path) } } diff --git a/rust/ql/lib/codeql/rust/internal/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/TypeMention.qll index a957a82149f..7e947a35bc4 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeMention.qll @@ -31,53 +31,33 @@ abstract class TypeMention extends AstNode { Type resolveTypeAt(TypePath path) { result = this.getMentionAt(path).resolveType() } } -class TypeReprMention extends TypeMention, TypeRepr { - TypeReprMention() { not this instanceof InferTypeRepr } +class ArrayTypeReprMention extends TypeMention instanceof ArrayTypeRepr { + override TypeMention getTypeArgument(int i) { result = super.getElementTypeRepr() and i = 0 } - override TypeReprMention getTypeArgument(int i) { - result = this.(ArrayTypeRepr).getElementTypeRepr() and - i = 0 - or - result = this.(RefTypeRepr).getTypeRepr() and - i = 0 - or - result = this.(PathTypeRepr).getPath().(PathMention).getTypeArgument(i) - } - - override Type resolveType() { - this instanceof ArrayTypeRepr and - result = TArrayType() - or - this instanceof RefTypeRepr and - result = TRefType() - or - result = this.(PathTypeRepr).getPath().(PathMention).resolveType() - } - - override Type resolveTypeAt(TypePath path) { - result = this.(PathTypeRepr).getPath().(PathMention).resolveTypeAt(path) - or - not exists(this.(PathTypeRepr).getPath()) and - result = super.resolveTypeAt(path) - } + override Type resolveType() { result = TArrayType() } } -/** Holds if `path` resolves to the type alias `alias` with the definition `rhs`. */ -private predicate resolvePathAlias(Path path, TypeAlias alias, TypeReprMention rhs) { - alias = resolvePath(path) and rhs = alias.getTypeRepr() +class RefTypeReprMention extends TypeMention instanceof RefTypeRepr { + override TypeMention getTypeArgument(int i) { result = super.getTypeRepr() and i = 0 } + + override Type resolveType() { result = TRefType() } } -abstract class PathMention extends TypeMention, Path { - override TypeMention getTypeArgument(int i) { - result = this.getSegment().getGenericArgList().getTypeArg(i) +class PathTypeReprMention extends TypeMention instanceof PathTypeRepr { + Path path; + ItemNode resolved; + + PathTypeReprMention() { + path = super.getPath() and + // NOTE: This excludes unresolvable paths which is intentional as these + // don't add value to the type inference anyway. + resolved = resolvePath(path) } -} -class NonAliasPathMention extends PathMention { - NonAliasPathMention() { not resolvePathAlias(this, _, _) } + ItemNode getResolved() { result = resolved } override TypeMention getTypeArgument(int i) { - result = super.getTypeArgument(i) + result = path.getSegment().getGenericArgList().getTypeArg(i) or // `Self` paths inside `impl` blocks have implicit type arguments that are // the type parameters of the `impl` block. For example, in @@ -92,17 +72,17 @@ class NonAliasPathMention extends PathMention { // // the `Self` return type is shorthand for `Foo`. exists(ImplItemNode node | - this = node.getASelfPath() and + path = node.getASelfPath() and result = node.(ImplItemNode).getSelfPath().getSegment().getGenericArgList().getTypeArg(i) ) or - // If `this` is the trait of an `impl` block then any associated types + // If `path` is the trait of an `impl` block then any associated types // defined in the `impl` block are type arguments to the trait. // // For instance, for a trait implementation like this // ```rust // impl MyTrait for MyType { - // ^^^^^^^ this + // ^^^^^^^ path // type AssociatedType = i64 // ^^^ result // // ... @@ -110,88 +90,94 @@ class NonAliasPathMention extends PathMention { // ``` // the rhs. of the type alias is a type argument to the trait. exists(ImplItemNode impl, AssociatedTypeTypeParameter param, TypeAlias alias | - this = impl.getTraitPath() and - param.getTrait() = resolvePath(this) and + path = impl.getTraitPath() and + param.getTrait() = resolved and alias = impl.getASuccessor(param.getTypeAlias().getName().getText()) and result = alias.getTypeRepr() and param.getIndex() = i ) } + /** + * Holds if this path resolved to a type alias with a rhs. that has the + * resulting type at `typePath`. + */ + Type aliasResolveTypeAt(TypePath typePath) { + exists(TypeAlias alias, TypeMention rhs | alias = resolved and rhs = alias.getTypeRepr() | + result = rhs.resolveTypeAt(typePath) and + not result = pathGetTypeParameter(alias, _) + or + exists(TypeParameter tp, TypeMention arg, TypePath prefix, TypePath suffix, int i | + tp = rhs.resolveTypeAt(prefix) and + tp = pathGetTypeParameter(alias, i) and + arg = path.getSegment().getGenericArgList().getTypeArg(i) and + result = arg.resolveTypeAt(suffix) and + typePath = prefix.append(suffix) + ) + ) + } + override Type resolveType() { - exists(ItemNode i | i = resolvePath(this) | - result = TStruct(i) + result = this.aliasResolveTypeAt(TypePath::nil()) + or + not exists(resolved.(TypeAlias).getTypeRepr()) and + ( + result = TStruct(resolved) or - result = TEnum(i) + result = TEnum(resolved) or - exists(TraitItemNode trait | trait = i | + exists(TraitItemNode trait | trait = resolved | // If this is a `Self` path, then it resolves to the implicit `Self` // type parameter, otherwise it is a trait bound. - if this = trait.getASelfPath() + if super.getPath() = trait.getASelfPath() then result = TSelfTypeParameter(trait) else result = TTrait(trait) ) or - result = TTypeParamTypeParameter(i) + result = TTypeParamTypeParameter(resolved) or - exists(TypeAlias alias | alias = i | + exists(TypeAlias alias | alias = resolved | result.(AssociatedTypeTypeParameter).getTypeAlias() = alias or - result = alias.getTypeRepr().(TypeReprMention).resolveType() + result = alias.getTypeRepr().(TypeMention).resolveType() ) ) } + + override Type resolveTypeAt(TypePath typePath) { + result = this.aliasResolveTypeAt(typePath) + or + not exists(resolved.(TypeAlias).getTypeRepr()) and + result = super.resolveTypeAt(typePath) + } } -class AliasPathMention extends PathMention { - TypeAlias alias; - TypeReprMention rhs; - - AliasPathMention() { resolvePathAlias(this, alias, rhs) } - - /** Get the `i`th type parameter of the alias itself. */ - private TypeParameter getTypeParameter(int i) { - result = TTypeParamTypeParameter(alias.getGenericParamList().getTypeParam(i)) - } - - override Type resolveType() { result = rhs.resolveType() } - - override Type resolveTypeAt(TypePath path) { - result = rhs.resolveTypeAt(path) and - not result = this.getTypeParameter(_) - or - exists(TypeParameter tp, TypeMention arg, TypePath prefix, TypePath suffix, int i | - tp = rhs.resolveTypeAt(prefix) and - tp = this.getTypeParameter(i) and - arg = this.getTypeArgument(i) and - result = arg.resolveTypeAt(suffix) and - path = prefix.append(suffix) - ) - } +private TypeParameter pathGetTypeParameter(TypeAlias alias, int i) { + result = TTypeParamTypeParameter(alias.getGenericParamList().getTypeParam(i)) } // Used to represent implicit `Self` type arguments in traits and `impl` blocks, // see `PathMention` for details. -class TypeParamMention extends TypeMention, TypeParam { - override TypeReprMention getTypeArgument(int i) { none() } +class TypeParamMention extends TypeMention instanceof TypeParam { + override TypeMention getTypeArgument(int i) { none() } override Type resolveType() { result = TTypeParamTypeParameter(this) } } // Used to represent implicit type arguments for associated types in traits. -class TypeAliasMention extends TypeMention, TypeAlias { +class TypeAliasMention extends TypeMention instanceof TypeAlias { private Type t; TypeAliasMention() { t = TAssociatedTypeTypeParameter(this) } - override TypeReprMention getTypeArgument(int i) { none() } + override TypeMention getTypeArgument(int i) { none() } override Type resolveType() { result = t } } -class TraitMention extends TypeMention, TraitItemNode { +class TraitMention extends TypeMention instanceof TraitItemNode { override TypeMention getTypeArgument(int i) { - result = this.getTypeParam(i) + result = super.getTypeParam(i) or traitAliasIndex(this, i, result) } @@ -203,7 +189,7 @@ class TraitMention extends TypeMention, TraitItemNode { // appears in the AST, we (somewhat arbitrarily) choose the name of a trait as a // type mention. This works because there is a one-to-one correspondence between // a trait and its name. -class SelfTypeParameterMention extends TypeMention, Name { +class SelfTypeParameterMention extends TypeMention instanceof Name { Trait trait; SelfTypeParameterMention() { trait.getName() = this } @@ -212,5 +198,5 @@ class SelfTypeParameterMention extends TypeMention, Name { override Type resolveType() { result = TSelfTypeParameter(trait) } - override TypeReprMention getTypeArgument(int i) { none() } + override TypeMention getTypeArgument(int i) { none() } } From ba4950fb89100d94caf8dfd58627eb98d9418958 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 22 May 2025 14:52:37 +0200 Subject: [PATCH 631/656] Rust: Accept test changes --- .../CONSISTENCY/TypeInferenceConsistency.expected | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 rust/ql/test/query-tests/unusedentities/CONSISTENCY/TypeInferenceConsistency.expected diff --git a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/TypeInferenceConsistency.expected b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/TypeInferenceConsistency.expected new file mode 100644 index 00000000000..56ce1df5c89 --- /dev/null +++ b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/TypeInferenceConsistency.expected @@ -0,0 +1,2 @@ +illFormedTypeMention +| main.rs:403:18:403:24 | FuncPtr | From 1f6b3ad929a7128f42d696e6c12249153beb0c03 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Tue, 27 May 2025 09:38:24 +0200 Subject: [PATCH 632/656] Update javascript/ql/src/codeql-suites/javascript-security-and-quality.qls Co-authored-by: Michael Nebel --- .../src/codeql-suites/javascript-security-and-quality.qls | 6 ------ 1 file changed, 6 deletions(-) diff --git a/javascript/ql/src/codeql-suites/javascript-security-and-quality.qls b/javascript/ql/src/codeql-suites/javascript-security-and-quality.qls index d02a016f058..38d45ecfbe6 100644 --- a/javascript/ql/src/codeql-suites/javascript-security-and-quality.qls +++ b/javascript/ql/src/codeql-suites/javascript-security-and-quality.qls @@ -136,9 +136,3 @@ - exclude: query path: - /^experimental\/.*/ - - Metrics/Summaries/FrameworkCoverage.ql - - /Diagnostics/Internal/.*/ -- exclude: - tags contain: - - modeleditor - - modelgenerator From 1e64f50c3c77f6a59651033b0462d496fb83a5f5 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 27 May 2025 08:51:00 +0100 Subject: [PATCH 633/656] Apply suggestions from code review Co-authored-by: Simon Friis Vindum --- rust/ql/lib/codeql/rust/elements/DerefExpr.qll | 2 +- .../lib/codeql/rust/security/AccessInvalidPointerExtensions.qll | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/DerefExpr.qll b/rust/ql/lib/codeql/rust/elements/DerefExpr.qll index 28302a93411..0eb54d4930d 100644 --- a/rust/ql/lib/codeql/rust/elements/DerefExpr.qll +++ b/rust/ql/lib/codeql/rust/elements/DerefExpr.qll @@ -6,7 +6,7 @@ private import codeql.rust.elements.PrefixExpr private import codeql.rust.elements.Operation /** - * A dereference expression, `*`. + * A dereference expression, the prefix operator `*`. */ final class DerefExpr extends PrefixExpr, Operation { DerefExpr() { this.getOperatorName() = "*" } diff --git a/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll b/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll index 36abfb62d54..444db014209 100644 --- a/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll @@ -50,7 +50,7 @@ module AccessInvalidPointer { * A pointer access using the unary `*` operator. */ private class DereferenceSink extends Sink { - DereferenceSink() { exists(DerefExpr p | p.getExpr() = this.asExpr().getExpr()) } + DereferenceSink() { any(DerefExpr p).getExpr() = this.asExpr().getExpr() } } /** From 329d451d4db8e31a54bcad818433d10a7dfb035d Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 27 May 2025 10:53:57 +0200 Subject: [PATCH 634/656] Swift: Add change note --- swift/ql/lib/change-notes/2025-05-27-swift.6.1.1.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 swift/ql/lib/change-notes/2025-05-27-swift.6.1.1.md diff --git a/swift/ql/lib/change-notes/2025-05-27-swift.6.1.1.md b/swift/ql/lib/change-notes/2025-05-27-swift.6.1.1.md new file mode 100644 index 00000000000..19101e5b615 --- /dev/null +++ b/swift/ql/lib/change-notes/2025-05-27-swift.6.1.1.md @@ -0,0 +1,5 @@ + +--- +category: minorAnalysis +--- +* Updated to allow analysis of Swift 6.1.1. From f4636b9ef2bb822323fb9b9781f18a622e43c7ee Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 27 May 2025 10:56:52 +0200 Subject: [PATCH 635/656] Swift: Update Swift resources --- swift/third_party/load.bzl | 4 ---- swift/third_party/resources/resource-dir-linux.zip | 4 ++-- swift/third_party/resources/resource-dir-macos.zip | 4 ++-- swift/third_party/resources/swift-prebuilt-linux.tar.zst | 4 ++-- swift/third_party/resources/swift-prebuilt-macos.tar.zst | 4 ++-- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index ad05960e7f6..d19345a1880 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -5,10 +5,6 @@ load("//misc/bazel:lfs.bzl", "lfs_archive", "lfs_files") _override = { # these are used to test new artifacts. Must be empty before merging to main - "swift-prebuilt-macOS-swift-6.1.1-RELEASE-108.tar.zst": "2aaf6e7083c27a561d7212f88b3e15cbeb2bdf1d2363d310227d278937a4c2c9", - "swift-prebuilt-Linux-swift-6.1.1-RELEASE-108.tar.zst": "31cba2387c7e1ce4e73743935b0db65ea69fccf5c07bd2b392fd6815f5dffca5", - "resource-dir-macOS-swift-6.1.1-RELEASE-115.zip": "84e34d6af45883fe6d0103c2f36bbff3069ac068e671cb62d0d01d16e087362d", - "resource-dir-Linux-swift-6.1.1-RELEASE-115.zip": "1e00a730a93b85a5ba478590218e1f769792ec56501977cc72d941101c5c3657", } _staging_url = "https://github.com/dsp-testing/codeql-swift-artifacts/releases/download/staging-{}/{}" diff --git a/swift/third_party/resources/resource-dir-linux.zip b/swift/third_party/resources/resource-dir-linux.zip index 8697b7c7afc..e09b73863e5 100644 --- a/swift/third_party/resources/resource-dir-linux.zip +++ b/swift/third_party/resources/resource-dir-linux.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:874932f93c4ca6269ae3a9e9c841916b3fd88f65f5018eec8777a52dde56901d -size 293646067 +oid sha256:1e00a730a93b85a5ba478590218e1f769792ec56501977cc72d941101c5c3657 +size 293644020 diff --git a/swift/third_party/resources/resource-dir-macos.zip b/swift/third_party/resources/resource-dir-macos.zip index 95ffbc2e02f..aaacc64a9e8 100644 --- a/swift/third_party/resources/resource-dir-macos.zip +++ b/swift/third_party/resources/resource-dir-macos.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:12bef89163486ac24d9ca00a5cc6ef3851b633e6fa63b7493c518e4d426e036c -size 595744464 +oid sha256:84e34d6af45883fe6d0103c2f36bbff3069ac068e671cb62d0d01d16e087362d +size 595760699 diff --git a/swift/third_party/resources/swift-prebuilt-linux.tar.zst b/swift/third_party/resources/swift-prebuilt-linux.tar.zst index 03490187210..206ea6adb4d 100644 --- a/swift/third_party/resources/swift-prebuilt-linux.tar.zst +++ b/swift/third_party/resources/swift-prebuilt-linux.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d01b90bccfec46995bdf98a59339bd94e64257da99b4963148869c4a108bc2a9 -size 124360007 +oid sha256:31cba2387c7e1ce4e73743935b0db65ea69fccf5c07bd2b392fd6815f5dffca5 +size 124428345 diff --git a/swift/third_party/resources/swift-prebuilt-macos.tar.zst b/swift/third_party/resources/swift-prebuilt-macos.tar.zst index 692a8b05dc3..bcbc7aaf412 100644 --- a/swift/third_party/resources/swift-prebuilt-macos.tar.zst +++ b/swift/third_party/resources/swift-prebuilt-macos.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4dcfe858b5519327c9b0c99735b47fe75c7a5090793d917de1ba6e42795aa86d -size 105011965 +oid sha256:2aaf6e7083c27a561d7212f88b3e15cbeb2bdf1d2363d310227d278937a4c2c9 +size 104357336 From 5d8bb1b5b014e0408bc2e4c796b94772537256d2 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 23 May 2025 20:50:16 +0100 Subject: [PATCH 636/656] C++: Add more Windows sources. --- cpp/ql/lib/ext/Windows.model.yml | 10 + .../dataflow/external-models/flow.expected | 86 +++++- .../dataflow/external-models/sources.expected | 10 + .../dataflow/external-models/windows.cpp | 265 ++++++++++++++++++ 4 files changed, 357 insertions(+), 14 deletions(-) diff --git a/cpp/ql/lib/ext/Windows.model.yml b/cpp/ql/lib/ext/Windows.model.yml index acac5f5fbf8..89127459f96 100644 --- a/cpp/ql/lib/ext/Windows.model.yml +++ b/cpp/ql/lib/ext/Windows.model.yml @@ -11,6 +11,16 @@ extensions: - ["", "", False, "GetEnvironmentStringsW", "", "", "ReturnValue[*]", "local", "manual"] - ["", "", False, "GetEnvironmentVariableA", "", "", "Argument[*1]", "local", "manual"] - ["", "", False, "GetEnvironmentVariableW", "", "", "Argument[*1]", "local", "manual"] + - ["", "", False, "ReadFile", "", "", "Argument[*1]", "local", "manual"] + - ["", "", False, "ReadFileEx", "", "", "Argument[*1]", "local", "manual"] + - ["", "", False, "MapViewOfFile", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "MapViewOfFile2", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "MapViewOfFile3", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "MapViewOfFile3FromApp", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "MapViewOfFileEx", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "MapViewOfFileFromApp", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "MapViewOfFileNuma2", "", "", "ReturnValue[*]", "local", "manual"] + - ["", "", False, "NtReadFile", "", "", "Argument[*5]", "local", "manual"] - addsTo: pack: codeql/cpp-all extensible: summaryModel diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index 9992ca5a721..c8babcb1454 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -10,44 +10,68 @@ edges | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:103:29:103:39 | *send_buffer | provenance | Sink:MaD:6 | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | provenance | | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | MaD:10 | -| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:23497 | -| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:23498 | -| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:23499 | +| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:23507 | +| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:23508 | +| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:23509 | | test.cpp:7:47:7:52 | value2 | test.cpp:7:64:7:69 | value2 | provenance | | | test.cpp:7:64:7:69 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | provenance | | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:23495 | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:23496 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:23505 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:23506 | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:17:24:17:24 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:21:27:21:27 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:25:35:25:35 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:32:41:32:41 | x | provenance | | | test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | | -| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:23496 | +| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:23506 | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | provenance | | -| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:23497 | +| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:23507 | | test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | | -| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:23496 | +| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:23506 | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | provenance | | -| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:23498 | +| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:23508 | | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | | -| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:23496 | +| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:23506 | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | provenance | | -| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:23499 | +| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:23509 | | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | -| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:23496 | +| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:23506 | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | provenance | | | test.cpp:32:41:32:41 | x | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | -| windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:6:8:6:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | provenance | MaD:331 | +| windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:6:8:6:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | provenance | MaD:341 | | windows.cpp:11:15:11:29 | *call to GetCommandLineA | windows.cpp:11:15:11:29 | *call to GetCommandLineA | provenance | Src:MaD:325 | | windows.cpp:11:15:11:29 | *call to GetCommandLineA | windows.cpp:13:8:13:11 | * ... | provenance | | | windows.cpp:11:15:11:29 | *call to GetCommandLineA | windows.cpp:16:36:16:38 | *cmd | provenance | | | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | provenance | | | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | windows.cpp:19:8:19:15 | * ... | provenance | | | windows.cpp:16:36:16:38 | *cmd | windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | provenance | | -| windows.cpp:16:36:16:38 | *cmd | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | provenance | MaD:331 | +| windows.cpp:16:36:16:38 | *cmd | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | provenance | MaD:341 | | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | provenance | Src:MaD:327 | | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | windows.cpp:25:10:25:13 | * ... | provenance | | | windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | windows.cpp:30:10:30:13 | * ... | provenance | Src:MaD:329 | +| windows.cpp:145:35:145:40 | ReadFile output argument | windows.cpp:147:10:147:16 | * ... | provenance | Src:MaD:331 | +| windows.cpp:154:23:154:28 | ReadFileEx output argument | windows.cpp:156:10:156:16 | * ... | provenance | Src:MaD:332 | +| windows.cpp:168:84:168:89 | NtReadFile output argument | windows.cpp:170:10:170:16 | * ... | provenance | Src:MaD:340 | +| windows.cpp:245:23:245:35 | *call to MapViewOfFile | windows.cpp:245:23:245:35 | *call to MapViewOfFile | provenance | Src:MaD:333 | +| windows.cpp:245:23:245:35 | *call to MapViewOfFile | windows.cpp:246:20:246:52 | *pMapView | provenance | | +| windows.cpp:246:20:246:52 | *pMapView | windows.cpp:248:10:248:16 | * ... | provenance | | +| windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | provenance | Src:MaD:334 | +| windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | windows.cpp:253:20:253:52 | *pMapView | provenance | | +| windows.cpp:253:20:253:52 | *pMapView | windows.cpp:255:10:255:16 | * ... | provenance | | +| windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | provenance | Src:MaD:335 | +| windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | windows.cpp:262:20:262:52 | *pMapView | provenance | | +| windows.cpp:262:20:262:52 | *pMapView | windows.cpp:264:10:264:16 | * ... | provenance | | +| windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | provenance | Src:MaD:336 | +| windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | windows.cpp:271:20:271:52 | *pMapView | provenance | | +| windows.cpp:271:20:271:52 | *pMapView | windows.cpp:273:10:273:16 | * ... | provenance | | +| windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | provenance | Src:MaD:337 | +| windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | windows.cpp:278:20:278:52 | *pMapView | provenance | | +| windows.cpp:278:20:278:52 | *pMapView | windows.cpp:280:10:280:16 | * ... | provenance | | +| windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | provenance | Src:MaD:338 | +| windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | windows.cpp:285:20:285:52 | *pMapView | provenance | | +| windows.cpp:285:20:285:52 | *pMapView | windows.cpp:287:10:287:16 | * ... | provenance | | +| windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | provenance | Src:MaD:339 | +| windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | windows.cpp:292:20:292:52 | *pMapView | provenance | | +| windows.cpp:292:20:292:52 | *pMapView | windows.cpp:294:10:294:16 | * ... | provenance | | nodes | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | semmle.label | [summary param] *0 in buffer | | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | semmle.label | [summary] to write: ReturnValue in buffer | @@ -103,6 +127,40 @@ nodes | windows.cpp:25:10:25:13 | * ... | semmle.label | * ... | | windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | semmle.label | GetEnvironmentVariableA output argument | | windows.cpp:30:10:30:13 | * ... | semmle.label | * ... | +| windows.cpp:145:35:145:40 | ReadFile output argument | semmle.label | ReadFile output argument | +| windows.cpp:147:10:147:16 | * ... | semmle.label | * ... | +| windows.cpp:154:23:154:28 | ReadFileEx output argument | semmle.label | ReadFileEx output argument | +| windows.cpp:156:10:156:16 | * ... | semmle.label | * ... | +| windows.cpp:168:84:168:89 | NtReadFile output argument | semmle.label | NtReadFile output argument | +| windows.cpp:170:10:170:16 | * ... | semmle.label | * ... | +| windows.cpp:245:23:245:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | +| windows.cpp:245:23:245:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | +| windows.cpp:246:20:246:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:248:10:248:16 | * ... | semmle.label | * ... | +| windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | semmle.label | *call to MapViewOfFile2 | +| windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | semmle.label | *call to MapViewOfFile2 | +| windows.cpp:253:20:253:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:255:10:255:16 | * ... | semmle.label | * ... | +| windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | semmle.label | *call to MapViewOfFile3 | +| windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | semmle.label | *call to MapViewOfFile3 | +| windows.cpp:262:20:262:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:264:10:264:16 | * ... | semmle.label | * ... | +| windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | semmle.label | *call to MapViewOfFile3FromApp | +| windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | semmle.label | *call to MapViewOfFile3FromApp | +| windows.cpp:271:20:271:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:273:10:273:16 | * ... | semmle.label | * ... | +| windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | semmle.label | *call to MapViewOfFileEx | +| windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | semmle.label | *call to MapViewOfFileEx | +| windows.cpp:278:20:278:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:280:10:280:16 | * ... | semmle.label | * ... | +| windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | semmle.label | *call to MapViewOfFileFromApp | +| windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | semmle.label | *call to MapViewOfFileFromApp | +| windows.cpp:285:20:285:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:287:10:287:16 | * ... | semmle.label | * ... | +| windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | +| windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | +| windows.cpp:292:20:292:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:294:10:294:16 | * ... | semmle.label | * ... | subpaths | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | asio_streams.cpp:100:44:100:62 | call to buffer | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected index 1c21bf85121..f8d2da8a002 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected @@ -3,3 +3,13 @@ | windows.cpp:11:15:11:29 | *call to GetCommandLineA | local | | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | local | | windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | local | +| windows.cpp:145:35:145:40 | ReadFile output argument | local | +| windows.cpp:154:23:154:28 | ReadFileEx output argument | local | +| windows.cpp:168:84:168:89 | NtReadFile output argument | local | +| windows.cpp:245:23:245:35 | *call to MapViewOfFile | local | +| windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | local | +| windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | local | +| windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | local | +| windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | local | +| windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | local | +| windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | local | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp index dfa055fa1e8..382f534dde8 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp @@ -29,3 +29,268 @@ void getEnvironment() { sink(buf); sink(*buf); // $ ir } + +using HANDLE = void*; +using DWORD = unsigned long; +using LPVOID = void*; +using LPDWORD = unsigned long*; +using PVOID = void*; +using ULONG_PTR = unsigned long*; +using SIZE_T = decltype(sizeof(0)); +typedef struct _OVERLAPPED { + ULONG_PTR Internal; + ULONG_PTR InternalHigh; + union { + struct { + DWORD Offset; + DWORD OffsetHigh; + } DUMMYSTRUCTNAME; + PVOID Pointer; + } DUMMYUNIONNAME; + HANDLE hEvent; +} OVERLAPPED, *LPOVERLAPPED; + +using BOOL = int; +#define FILE_MAP_READ 0x0004 + +using ULONG64 = unsigned long long; +using ULONG = unsigned long; + +using DWORD64 = unsigned long long; +#define MEM_EXTENDED_PARAMETER_TYPE_BITS 8 + +typedef struct MEM_EXTENDED_PARAMETER { + struct { + DWORD64 Type : MEM_EXTENDED_PARAMETER_TYPE_BITS; + DWORD64 Reserved : 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS; + } DUMMYSTRUCTNAME; + union { + DWORD64 ULong64; + PVOID Pointer; + SIZE_T Size; + HANDLE Handle; + DWORD ULong; + } DUMMYUNIONNAME; +} MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER; + +BOOL ReadFile( + HANDLE hFile, + LPVOID lpBuffer, + DWORD nNumberOfBytesToRead, + LPDWORD lpNumberOfBytesRead, + LPOVERLAPPED lpOverlapped +); + +using LPOVERLAPPED_COMPLETION_ROUTINE = void (*)(DWORD, DWORD, LPOVERLAPPED); + +BOOL ReadFileEx( + HANDLE hFile, + LPVOID lpBuffer, + DWORD nNumberOfBytesToRead, + LPOVERLAPPED lpOverlapped, + LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine +); + +using NTSTATUS = long; +using PIO_APC_ROUTINE = void (*)(struct _DEVICE_OBJECT*, struct _IRP*, PVOID); +typedef struct _IO_STATUS_BLOCK { + union { + NTSTATUS Status; + PVOID Pointer; + } DUMMYUNIONNAME; + ULONG_PTR Information; +} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; +using LONGLONG = long long; +using LONG = long; +typedef struct _LARGE_INTEGER { + union { + struct { + ULONG LowPart; + LONG HighPart; + } DUMMYSTRUCTNAME; + LONGLONG QuadPart; + } DUMMYUNIONNAME; +} LARGE_INTEGER, *PLARGE_INTEGER; + +using PULONG = unsigned long*; + +NTSTATUS NtReadFile( + HANDLE FileHandle, + HANDLE Event, + PIO_APC_ROUTINE ApcRoutine, + PVOID ApcContext, + PIO_STATUS_BLOCK IoStatusBlock, + PVOID Buffer, + ULONG Length, + PLARGE_INTEGER ByteOffset, + PULONG Key +); + + +void FileIOCompletionRoutine( + DWORD dwErrorCode, + DWORD dwNumberOfBytesTransfered, + LPOVERLAPPED lpOverlapped +) { + char* buffer = reinterpret_cast(lpOverlapped->hEvent); + sink(buffer); + sink(*buffer); // $ MISSING: ir +} + +void readFile(HANDLE hFile) { + { + char buffer[1024]; + DWORD bytesRead; + OVERLAPPED overlapped; + BOOL result = ReadFile(hFile, buffer, sizeof(buffer), &bytesRead, &overlapped); + sink(buffer); + sink(*buffer); // $ ir + } + + { + char buffer[1024]; + OVERLAPPED overlapped; + overlapped.hEvent = reinterpret_cast(buffer); + ReadFileEx(hFile, buffer, sizeof(buffer) - 1, &overlapped, FileIOCompletionRoutine); + sink(buffer); + sink(*buffer); // $ ir + + char* p = reinterpret_cast(overlapped.hEvent); + sink(p); + sink(*p); // $ MISSING: ir + } + + { + char buffer[1024]; + IO_STATUS_BLOCK ioStatusBlock; + LARGE_INTEGER byteOffset; + ULONG key; + NTSTATUS status = NtReadFile(hFile, nullptr, nullptr, nullptr, &ioStatusBlock, buffer, sizeof(buffer), &byteOffset, &key); + sink(buffer); + sink(*buffer); // $ ir + } +} + +LPVOID MapViewOfFile( + HANDLE hFileMappingObject, + DWORD dwDesiredAccess, + DWORD dwFileOffsetHigh, + DWORD dwFileOffsetLow, + SIZE_T dwNumberOfBytesToMap +); + +PVOID MapViewOfFile2( + HANDLE FileMappingHandle, + HANDLE ProcessHandle, + ULONG64 Offset, + PVOID BaseAddress, + SIZE_T ViewSize, + ULONG AllocationType, + ULONG PageProtection +); + +PVOID MapViewOfFile3( + HANDLE FileMapping, + HANDLE Process, + PVOID BaseAddress, + ULONG64 Offset, + SIZE_T ViewSize, + ULONG AllocationType, + ULONG PageProtection, + MEM_EXTENDED_PARAMETER *ExtendedParameters, + ULONG ParameterCount +); + +PVOID MapViewOfFile3FromApp( + HANDLE FileMapping, + HANDLE Process, + PVOID BaseAddress, + ULONG64 Offset, + SIZE_T ViewSize, + ULONG AllocationType, + ULONG PageProtection, + MEM_EXTENDED_PARAMETER *ExtendedParameters, + ULONG ParameterCount +); + +LPVOID MapViewOfFileEx( + HANDLE hFileMappingObject, + DWORD dwDesiredAccess, + DWORD dwFileOffsetHigh, + DWORD dwFileOffsetLow, + SIZE_T dwNumberOfBytesToMap, + LPVOID lpBaseAddress +); + +PVOID MapViewOfFileFromApp( + HANDLE hFileMappingObject, + ULONG DesiredAccess, + ULONG64 FileOffset, + SIZE_T NumberOfBytesToMap +); + +PVOID MapViewOfFileNuma2( + HANDLE FileMappingHandle, + HANDLE ProcessHandle, + ULONG64 Offset, + PVOID BaseAddress, + SIZE_T ViewSize, + ULONG AllocationType, + ULONG PageProtection, + ULONG PreferredNode +); + +void mapViewOfFile(HANDLE hMapFile) { + { + LPVOID pMapView = MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0); + char* buffer = reinterpret_cast(pMapView); + sink(buffer); + sink(*buffer); // $ ir + } + + { + LPVOID pMapView = MapViewOfFile2(hMapFile, nullptr, 0, nullptr, 0, 0, 0); + char* buffer = reinterpret_cast(pMapView); + sink(buffer); + sink(*buffer); // $ ir + } + + { + MEM_EXTENDED_PARAMETER extendedParams; + + LPVOID pMapView = MapViewOfFile3(hMapFile, nullptr, 0, 0, 0, 0, 0, &extendedParams, 1); + char* buffer = reinterpret_cast(pMapView); + sink(buffer); + sink(*buffer); // $ ir + } + + { + MEM_EXTENDED_PARAMETER extendedParams; + + LPVOID pMapView = MapViewOfFile3FromApp(hMapFile, nullptr, 0, 0, 0, 0, 0, &extendedParams, 1); + char* buffer = reinterpret_cast(pMapView); + sink(buffer); + sink(*buffer); // $ ir + } + + { + LPVOID pMapView = MapViewOfFileEx(hMapFile, FILE_MAP_READ, 0, 0, 0, nullptr); + char* buffer = reinterpret_cast(pMapView); + sink(buffer); + sink(*buffer); // $ ir + } + + { + LPVOID pMapView = MapViewOfFileFromApp(hMapFile, FILE_MAP_READ, 0, 0); + char* buffer = reinterpret_cast(pMapView); + sink(buffer); + sink(*buffer); // $ ir + } + + { + LPVOID pMapView = MapViewOfFileNuma2(hMapFile, nullptr, 0, nullptr, 0, 0, 0, 0); + char* buffer = reinterpret_cast(pMapView); + sink(buffer); + sink(*buffer); // $ ir + } +} From fd9adc43c230545498f1b8ae070b6678c10e8da9 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 27 May 2025 11:00:48 +0100 Subject: [PATCH 637/656] C++: Add change note. --- cpp/ql/lib/change-notes/2025-05-27-windows-sources-2.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2025-05-27-windows-sources-2.md diff --git a/cpp/ql/lib/change-notes/2025-05-27-windows-sources-2.md b/cpp/ql/lib/change-notes/2025-05-27-windows-sources-2.md new file mode 100644 index 00000000000..423a1a424f9 --- /dev/null +++ b/cpp/ql/lib/change-notes/2025-05-27-windows-sources-2.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Added local flow source models for `ReadFile`, `ReadFileEx`, `MapViewOfFile`, `MapViewOfFile2`, `MapViewOfFile3`, `MapViewOfFile3FromApp`, `MapViewOfFileEx`, `MapViewOfFileFromApp`, `MapViewOfFileNuma2`, and `NtReadFile`. \ No newline at end of file From 52280625eeeee973f1b998cfc062caf93cd53e62 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 23 May 2025 14:20:44 +0200 Subject: [PATCH 638/656] Rust: Add type inference inconsistency counts to the stats summary --- .../internal/TypeInferenceConsistency.qll | 24 +++++++++++++++++++ rust/ql/src/queries/summary/Stats.qll | 15 ++++++++++++ rust/ql/src/queries/summary/SummaryStats.ql | 2 ++ .../TypeInferenceConsistency.expected | 3 +++ 4 files changed, 44 insertions(+) create mode 100644 rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/TypeInferenceConsistency.expected diff --git a/rust/ql/lib/codeql/rust/internal/TypeInferenceConsistency.qll b/rust/ql/lib/codeql/rust/internal/TypeInferenceConsistency.qll index 214ee3e6d49..e9bcf35badc 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInferenceConsistency.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInferenceConsistency.qll @@ -2,4 +2,28 @@ * Provides classes for recognizing type inference inconsistencies. */ +private import Type +private import TypeMention +private import TypeInference::Consistency as Consistency import TypeInference::Consistency + +query predicate illFormedTypeMention(TypeMention tm) { + Consistency::illFormedTypeMention(tm) and + // Only include inconsistencies in the source, as we otherwise get + // inconsistencies from library code in every project. + tm.fromSource() +} + +int getTypeInferenceInconsistencyCounts(string type) { + type = "Missing type parameter ID" and + result = count(TypeParameter tp | missingTypeParameterId(tp) | tp) + or + type = "Non-functional type parameter ID" and + result = count(TypeParameter tp | nonFunctionalTypeParameterId(tp) | tp) + or + type = "Non-injective type parameter ID" and + result = count(TypeParameter tp | nonInjectiveTypeParameterId(tp, _) | tp) + or + type = "Ill-formed type mention" and + result = count(TypeMention tm | illFormedTypeMention(tm) | tm) +} diff --git a/rust/ql/src/queries/summary/Stats.qll b/rust/ql/src/queries/summary/Stats.qll index 2199a3ddff0..db0a05629df 100644 --- a/rust/ql/src/queries/summary/Stats.qll +++ b/rust/ql/src/queries/summary/Stats.qll @@ -8,6 +8,7 @@ private import codeql.rust.dataflow.internal.DataFlowImpl private import codeql.rust.dataflow.internal.TaintTrackingImpl private import codeql.rust.internal.AstConsistency as AstConsistency private import codeql.rust.internal.PathResolutionConsistency as PathResolutionConsistency +private import codeql.rust.internal.TypeInferenceConsistency as TypeInferenceConsistency private import codeql.rust.controlflow.internal.CfgConsistency as CfgConsistency private import codeql.rust.dataflow.internal.DataFlowConsistency as DataFlowConsistency private import codeql.rust.dataflow.internal.SsaImpl::Consistency as SsaConsistency @@ -52,6 +53,13 @@ int getTotalPathResolutionInconsistencies() { sum(string type | | PathResolutionConsistency::getPathResolutionInconsistencyCounts(type)) } +/** + * Gets a count of the total number of type inference inconsistencies in the database. + */ +int getTotalTypeInferenceInconsistencies() { + result = sum(string type | | TypeInferenceConsistency::getTypeInferenceInconsistencyCounts(type)) +} + /** * Gets a count of the total number of control flow graph inconsistencies in the database. */ @@ -159,6 +167,13 @@ predicate inconsistencyStats(string key, int value) { key = "Inconsistencies - data flow" and value = getTotalDataFlowInconsistencies() } +/** + * Gets summary statistics about inconsistencies related to type inference. + */ +predicate typeInferenceInconsistencyStats(string key, int value) { + key = "Inconsistencies - Type inference" and value = getTotalTypeInferenceInconsistencies() +} + /** * Gets summary statistics about taint. */ diff --git a/rust/ql/src/queries/summary/SummaryStats.ql b/rust/ql/src/queries/summary/SummaryStats.ql index 57ac5b4004e..515c78c7268 100644 --- a/rust/ql/src/queries/summary/SummaryStats.ql +++ b/rust/ql/src/queries/summary/SummaryStats.ql @@ -17,5 +17,7 @@ where or inconsistencyStats(key, value) or + typeInferenceInconsistencyStats(key, value) + or taintStats(key, value) select key, value order by key diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/TypeInferenceConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/TypeInferenceConsistency.expected new file mode 100644 index 00000000000..9bd56449240 --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/TypeInferenceConsistency.expected @@ -0,0 +1,3 @@ +illFormedTypeMention +| sqlx.rs:158:13:158:81 | ...::BoxDynError | +| sqlx.rs:160:17:160:86 | ...::BoxDynError | From e406f27bb379fe95c2a2c2723a3ef52cbc41afbb Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 27 May 2025 11:45:18 +0100 Subject: [PATCH 639/656] Update cpp/ql/lib/ext/Windows.model.yml Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com> --- cpp/ql/lib/ext/Windows.model.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/ql/lib/ext/Windows.model.yml b/cpp/ql/lib/ext/Windows.model.yml index 89127459f96..cdc4d946496 100644 --- a/cpp/ql/lib/ext/Windows.model.yml +++ b/cpp/ql/lib/ext/Windows.model.yml @@ -11,6 +11,7 @@ extensions: - ["", "", False, "GetEnvironmentStringsW", "", "", "ReturnValue[*]", "local", "manual"] - ["", "", False, "GetEnvironmentVariableA", "", "", "Argument[*1]", "local", "manual"] - ["", "", False, "GetEnvironmentVariableW", "", "", "Argument[*1]", "local", "manual"] + # fileapi.h - ["", "", False, "ReadFile", "", "", "Argument[*1]", "local", "manual"] - ["", "", False, "ReadFileEx", "", "", "Argument[*1]", "local", "manual"] - ["", "", False, "MapViewOfFile", "", "", "ReturnValue[*]", "local", "manual"] From 80229644b89fd496dcfc763a7640f6b7de2a504f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 27 May 2025 11:45:27 +0100 Subject: [PATCH 640/656] Update cpp/ql/lib/ext/Windows.model.yml Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com> --- cpp/ql/lib/ext/Windows.model.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/ql/lib/ext/Windows.model.yml b/cpp/ql/lib/ext/Windows.model.yml index cdc4d946496..2c07b773fca 100644 --- a/cpp/ql/lib/ext/Windows.model.yml +++ b/cpp/ql/lib/ext/Windows.model.yml @@ -14,6 +14,7 @@ extensions: # fileapi.h - ["", "", False, "ReadFile", "", "", "Argument[*1]", "local", "manual"] - ["", "", False, "ReadFileEx", "", "", "Argument[*1]", "local", "manual"] + # memoryapi.h - ["", "", False, "MapViewOfFile", "", "", "ReturnValue[*]", "local", "manual"] - ["", "", False, "MapViewOfFile2", "", "", "ReturnValue[*]", "local", "manual"] - ["", "", False, "MapViewOfFile3", "", "", "ReturnValue[*]", "local", "manual"] From a05ddca9c94f2ecda541ac583f6c3f8b935d7e20 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 27 May 2025 11:45:35 +0100 Subject: [PATCH 641/656] Update cpp/ql/lib/ext/Windows.model.yml Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com> --- cpp/ql/lib/ext/Windows.model.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/ql/lib/ext/Windows.model.yml b/cpp/ql/lib/ext/Windows.model.yml index 2c07b773fca..3dcde03f9a1 100644 --- a/cpp/ql/lib/ext/Windows.model.yml +++ b/cpp/ql/lib/ext/Windows.model.yml @@ -22,6 +22,7 @@ extensions: - ["", "", False, "MapViewOfFileEx", "", "", "ReturnValue[*]", "local", "manual"] - ["", "", False, "MapViewOfFileFromApp", "", "", "ReturnValue[*]", "local", "manual"] - ["", "", False, "MapViewOfFileNuma2", "", "", "ReturnValue[*]", "local", "manual"] + # ntifs.h - ["", "", False, "NtReadFile", "", "", "Argument[*5]", "local", "manual"] - addsTo: pack: codeql/cpp-all From ac724d2671df66ad4247850850743949de95db90 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Tue, 27 May 2025 13:08:20 +0200 Subject: [PATCH 642/656] Update rust/extractor/src/main.rs Co-authored-by: Simon Friis Vindum --- rust/extractor/src/main.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index fd827f46d7c..928542c5422 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -277,15 +277,10 @@ fn main() -> anyhow::Result<()> { } else { ResolvePaths::Yes }; - let library_mode = if cfg.extract_dependencies_as_source { - SourceKind::Source + let (library_mode, library_resolve_paths) = if cfg.extract_dependencies_as_source { + (SourceKind::Source, resolve_paths) } else { - SourceKind::Library - }; - let library_resolve_paths = if cfg.extract_dependencies_as_source { - resolve_paths - } else { - ResolvePaths::No + (SourceKind::Library, ResolvePaths::No) }; let mut processed_files: HashSet = HashSet::from_iter(files.iter().cloned()); From c1ee56e4c174893d26059bd6aa65da0ea46d9335 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 27 May 2025 12:05:30 +0100 Subject: [PATCH 643/656] C++: Add ReadFileEx tests with missing flow. --- .../dataflow/external-models/flow.expected | 116 +++++++++--------- .../dataflow/external-models/sources.expected | 24 ++-- .../dataflow/external-models/windows.cpp | 37 ++++++ 3 files changed, 109 insertions(+), 68 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index c8babcb1454..0560a4da865 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -48,30 +48,30 @@ edges | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | provenance | Src:MaD:327 | | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | windows.cpp:25:10:25:13 | * ... | provenance | | | windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | windows.cpp:30:10:30:13 | * ... | provenance | Src:MaD:329 | -| windows.cpp:145:35:145:40 | ReadFile output argument | windows.cpp:147:10:147:16 | * ... | provenance | Src:MaD:331 | -| windows.cpp:154:23:154:28 | ReadFileEx output argument | windows.cpp:156:10:156:16 | * ... | provenance | Src:MaD:332 | -| windows.cpp:168:84:168:89 | NtReadFile output argument | windows.cpp:170:10:170:16 | * ... | provenance | Src:MaD:340 | -| windows.cpp:245:23:245:35 | *call to MapViewOfFile | windows.cpp:245:23:245:35 | *call to MapViewOfFile | provenance | Src:MaD:333 | -| windows.cpp:245:23:245:35 | *call to MapViewOfFile | windows.cpp:246:20:246:52 | *pMapView | provenance | | -| windows.cpp:246:20:246:52 | *pMapView | windows.cpp:248:10:248:16 | * ... | provenance | | -| windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | provenance | Src:MaD:334 | -| windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | windows.cpp:253:20:253:52 | *pMapView | provenance | | -| windows.cpp:253:20:253:52 | *pMapView | windows.cpp:255:10:255:16 | * ... | provenance | | -| windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | provenance | Src:MaD:335 | -| windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | windows.cpp:262:20:262:52 | *pMapView | provenance | | -| windows.cpp:262:20:262:52 | *pMapView | windows.cpp:264:10:264:16 | * ... | provenance | | -| windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | provenance | Src:MaD:336 | -| windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | windows.cpp:271:20:271:52 | *pMapView | provenance | | -| windows.cpp:271:20:271:52 | *pMapView | windows.cpp:273:10:273:16 | * ... | provenance | | -| windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | provenance | Src:MaD:337 | -| windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | windows.cpp:278:20:278:52 | *pMapView | provenance | | -| windows.cpp:278:20:278:52 | *pMapView | windows.cpp:280:10:280:16 | * ... | provenance | | -| windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | provenance | Src:MaD:338 | -| windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | windows.cpp:285:20:285:52 | *pMapView | provenance | | -| windows.cpp:285:20:285:52 | *pMapView | windows.cpp:287:10:287:16 | * ... | provenance | | -| windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | provenance | Src:MaD:339 | -| windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | windows.cpp:292:20:292:52 | *pMapView | provenance | | -| windows.cpp:292:20:292:52 | *pMapView | windows.cpp:294:10:294:16 | * ... | provenance | | +| windows.cpp:164:35:164:40 | ReadFile output argument | windows.cpp:166:10:166:16 | * ... | provenance | Src:MaD:331 | +| windows.cpp:173:23:173:28 | ReadFileEx output argument | windows.cpp:175:10:175:16 | * ... | provenance | Src:MaD:332 | +| windows.cpp:205:84:205:89 | NtReadFile output argument | windows.cpp:207:10:207:16 | * ... | provenance | Src:MaD:340 | +| windows.cpp:282:23:282:35 | *call to MapViewOfFile | windows.cpp:282:23:282:35 | *call to MapViewOfFile | provenance | Src:MaD:333 | +| windows.cpp:282:23:282:35 | *call to MapViewOfFile | windows.cpp:283:20:283:52 | *pMapView | provenance | | +| windows.cpp:283:20:283:52 | *pMapView | windows.cpp:285:10:285:16 | * ... | provenance | | +| windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | provenance | Src:MaD:334 | +| windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | windows.cpp:290:20:290:52 | *pMapView | provenance | | +| windows.cpp:290:20:290:52 | *pMapView | windows.cpp:292:10:292:16 | * ... | provenance | | +| windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | provenance | Src:MaD:335 | +| windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | windows.cpp:299:20:299:52 | *pMapView | provenance | | +| windows.cpp:299:20:299:52 | *pMapView | windows.cpp:301:10:301:16 | * ... | provenance | | +| windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | provenance | Src:MaD:336 | +| windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | windows.cpp:308:20:308:52 | *pMapView | provenance | | +| windows.cpp:308:20:308:52 | *pMapView | windows.cpp:310:10:310:16 | * ... | provenance | | +| windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | provenance | Src:MaD:337 | +| windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | windows.cpp:315:20:315:52 | *pMapView | provenance | | +| windows.cpp:315:20:315:52 | *pMapView | windows.cpp:317:10:317:16 | * ... | provenance | | +| windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | provenance | Src:MaD:338 | +| windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | windows.cpp:322:20:322:52 | *pMapView | provenance | | +| windows.cpp:322:20:322:52 | *pMapView | windows.cpp:324:10:324:16 | * ... | provenance | | +| windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | provenance | Src:MaD:339 | +| windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | windows.cpp:329:20:329:52 | *pMapView | provenance | | +| windows.cpp:329:20:329:52 | *pMapView | windows.cpp:331:10:331:16 | * ... | provenance | | nodes | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | semmle.label | [summary param] *0 in buffer | | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | semmle.label | [summary] to write: ReturnValue in buffer | @@ -127,40 +127,40 @@ nodes | windows.cpp:25:10:25:13 | * ... | semmle.label | * ... | | windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | semmle.label | GetEnvironmentVariableA output argument | | windows.cpp:30:10:30:13 | * ... | semmle.label | * ... | -| windows.cpp:145:35:145:40 | ReadFile output argument | semmle.label | ReadFile output argument | -| windows.cpp:147:10:147:16 | * ... | semmle.label | * ... | -| windows.cpp:154:23:154:28 | ReadFileEx output argument | semmle.label | ReadFileEx output argument | -| windows.cpp:156:10:156:16 | * ... | semmle.label | * ... | -| windows.cpp:168:84:168:89 | NtReadFile output argument | semmle.label | NtReadFile output argument | -| windows.cpp:170:10:170:16 | * ... | semmle.label | * ... | -| windows.cpp:245:23:245:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | -| windows.cpp:245:23:245:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | -| windows.cpp:246:20:246:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:248:10:248:16 | * ... | semmle.label | * ... | -| windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | semmle.label | *call to MapViewOfFile2 | -| windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | semmle.label | *call to MapViewOfFile2 | -| windows.cpp:253:20:253:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:255:10:255:16 | * ... | semmle.label | * ... | -| windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | semmle.label | *call to MapViewOfFile3 | -| windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | semmle.label | *call to MapViewOfFile3 | -| windows.cpp:262:20:262:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:264:10:264:16 | * ... | semmle.label | * ... | -| windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | semmle.label | *call to MapViewOfFile3FromApp | -| windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | semmle.label | *call to MapViewOfFile3FromApp | -| windows.cpp:271:20:271:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:273:10:273:16 | * ... | semmle.label | * ... | -| windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | semmle.label | *call to MapViewOfFileEx | -| windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | semmle.label | *call to MapViewOfFileEx | -| windows.cpp:278:20:278:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:280:10:280:16 | * ... | semmle.label | * ... | -| windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | semmle.label | *call to MapViewOfFileFromApp | -| windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | semmle.label | *call to MapViewOfFileFromApp | -| windows.cpp:285:20:285:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:287:10:287:16 | * ... | semmle.label | * ... | -| windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | -| windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | -| windows.cpp:292:20:292:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:294:10:294:16 | * ... | semmle.label | * ... | +| windows.cpp:164:35:164:40 | ReadFile output argument | semmle.label | ReadFile output argument | +| windows.cpp:166:10:166:16 | * ... | semmle.label | * ... | +| windows.cpp:173:23:173:28 | ReadFileEx output argument | semmle.label | ReadFileEx output argument | +| windows.cpp:175:10:175:16 | * ... | semmle.label | * ... | +| windows.cpp:205:84:205:89 | NtReadFile output argument | semmle.label | NtReadFile output argument | +| windows.cpp:207:10:207:16 | * ... | semmle.label | * ... | +| windows.cpp:282:23:282:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | +| windows.cpp:282:23:282:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | +| windows.cpp:283:20:283:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:285:10:285:16 | * ... | semmle.label | * ... | +| windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | semmle.label | *call to MapViewOfFile2 | +| windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | semmle.label | *call to MapViewOfFile2 | +| windows.cpp:290:20:290:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:292:10:292:16 | * ... | semmle.label | * ... | +| windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | semmle.label | *call to MapViewOfFile3 | +| windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | semmle.label | *call to MapViewOfFile3 | +| windows.cpp:299:20:299:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:301:10:301:16 | * ... | semmle.label | * ... | +| windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | semmle.label | *call to MapViewOfFile3FromApp | +| windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | semmle.label | *call to MapViewOfFile3FromApp | +| windows.cpp:308:20:308:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:310:10:310:16 | * ... | semmle.label | * ... | +| windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | semmle.label | *call to MapViewOfFileEx | +| windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | semmle.label | *call to MapViewOfFileEx | +| windows.cpp:315:20:315:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:317:10:317:16 | * ... | semmle.label | * ... | +| windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | semmle.label | *call to MapViewOfFileFromApp | +| windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | semmle.label | *call to MapViewOfFileFromApp | +| windows.cpp:322:20:322:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:324:10:324:16 | * ... | semmle.label | * ... | +| windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | +| windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | +| windows.cpp:329:20:329:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:331:10:331:16 | * ... | semmle.label | * ... | subpaths | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | asio_streams.cpp:100:44:100:62 | call to buffer | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected index f8d2da8a002..a50ce484e1c 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected @@ -3,13 +3,17 @@ | windows.cpp:11:15:11:29 | *call to GetCommandLineA | local | | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | local | | windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | local | -| windows.cpp:145:35:145:40 | ReadFile output argument | local | -| windows.cpp:154:23:154:28 | ReadFileEx output argument | local | -| windows.cpp:168:84:168:89 | NtReadFile output argument | local | -| windows.cpp:245:23:245:35 | *call to MapViewOfFile | local | -| windows.cpp:252:23:252:36 | *call to MapViewOfFile2 | local | -| windows.cpp:261:23:261:36 | *call to MapViewOfFile3 | local | -| windows.cpp:270:23:270:43 | *call to MapViewOfFile3FromApp | local | -| windows.cpp:277:23:277:37 | *call to MapViewOfFileEx | local | -| windows.cpp:284:23:284:42 | *call to MapViewOfFileFromApp | local | -| windows.cpp:291:23:291:40 | *call to MapViewOfFileNuma2 | local | +| windows.cpp:164:35:164:40 | ReadFile output argument | local | +| windows.cpp:173:23:173:28 | ReadFileEx output argument | local | +| windows.cpp:185:21:185:26 | ReadFile output argument | local | +| windows.cpp:188:23:188:29 | ReadFileEx output argument | local | +| windows.cpp:194:21:194:26 | ReadFile output argument | local | +| windows.cpp:197:23:197:29 | ReadFileEx output argument | local | +| windows.cpp:205:84:205:89 | NtReadFile output argument | local | +| windows.cpp:282:23:282:35 | *call to MapViewOfFile | local | +| windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | local | +| windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | local | +| windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | local | +| windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | local | +| windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | local | +| windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | local | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp index 382f534dde8..eb08d9d350a 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp @@ -137,6 +137,25 @@ void FileIOCompletionRoutine( sink(*buffer); // $ MISSING: ir } +void FileIOCompletionRoutine2( + DWORD dwErrorCode, + DWORD dwNumberOfBytesTransfered, + LPOVERLAPPED lpOverlapped +) { + char* buffer = reinterpret_cast(lpOverlapped->hEvent); + sink(buffer); + sink(*buffer); // $ MISSING: ir +} + +void FileIOCompletionRoutine3( + DWORD dwErrorCode, + DWORD dwNumberOfBytesTransfered, + LPOVERLAPPED lpOverlapped +) { + char c = reinterpret_cast(lpOverlapped->hEvent); + sink(c); // $ MISSING: ir +} + void readFile(HANDLE hFile) { { char buffer[1024]; @@ -159,6 +178,24 @@ void readFile(HANDLE hFile) { sink(p); sink(*p); // $ MISSING: ir } + + { + char buffer[1024]; + OVERLAPPED overlapped; + ReadFile(hFile, buffer, sizeof(buffer), nullptr, nullptr); + overlapped.hEvent = reinterpret_cast(buffer); + char buffer2[1024]; + ReadFileEx(hFile, buffer2, sizeof(buffer2) - 1, &overlapped, FileIOCompletionRoutine2); + } + + { + char buffer[1024]; + OVERLAPPED overlapped; + ReadFile(hFile, buffer, sizeof(buffer), nullptr, nullptr); + overlapped.hEvent = reinterpret_cast(*buffer); + char buffer2[1024]; + ReadFileEx(hFile, buffer2, sizeof(buffer2) - 1, &overlapped, FileIOCompletionRoutine3); + } { char buffer[1024]; From 76c2d24a7ef427282492df98dea2234c50174496 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Tue, 27 May 2025 12:09:19 +0100 Subject: [PATCH 644/656] C++: Add summary for ReadFileEx and accept test changes. --- cpp/ql/lib/ext/Windows.model.yml | 2 + .../dataflow/external-models/flow.expected | 78 ++++++++++++++++--- .../external-models/validatemodels.expected | 4 + .../dataflow/external-models/windows.cpp | 4 +- 4 files changed, 74 insertions(+), 14 deletions(-) diff --git a/cpp/ql/lib/ext/Windows.model.yml b/cpp/ql/lib/ext/Windows.model.yml index 3dcde03f9a1..8bfb3f48b91 100644 --- a/cpp/ql/lib/ext/Windows.model.yml +++ b/cpp/ql/lib/ext/Windows.model.yml @@ -31,3 +31,5 @@ extensions: # shellapi.h - ["", "", False, "CommandLineToArgvA", "", "", "Argument[*0]", "ReturnValue[**]", "taint", "manual"] - ["", "", False, "CommandLineToArgvW", "", "", "Argument[*0]", "ReturnValue[**]", "taint", "manual"] + # fileapi.h + - ["", "", False, "ReadFileEx", "", "", "Argument[*3].Field[@hEvent]", "Argument[4].Parameter[*2].Field[@hEvent]", "value", "manual"] \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index 0560a4da865..4f333d4c36f 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -10,31 +10,31 @@ edges | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:103:29:103:39 | *send_buffer | provenance | Sink:MaD:6 | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | provenance | | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | MaD:10 | -| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:23507 | -| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:23508 | -| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:23509 | +| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:23508 | +| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:23509 | +| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:23510 | | test.cpp:7:47:7:52 | value2 | test.cpp:7:64:7:69 | value2 | provenance | | | test.cpp:7:64:7:69 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | provenance | | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:23505 | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:23506 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:23506 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:23507 | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:17:24:17:24 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:21:27:21:27 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:25:35:25:35 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:32:41:32:41 | x | provenance | | | test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | | -| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:23506 | +| test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:23507 | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | provenance | | -| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:23507 | +| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:23508 | | test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | | -| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:23506 | +| test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:23507 | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | provenance | | -| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:23508 | +| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:23509 | | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | | -| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:23506 | +| test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:23507 | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | provenance | | -| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:23509 | +| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:23510 | | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | -| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:23506 | +| test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:23507 | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | provenance | | | test.cpp:32:41:32:41 | x | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | | windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:6:8:6:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | provenance | MaD:341 | @@ -48,8 +48,35 @@ edges | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | provenance | Src:MaD:327 | | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | windows.cpp:25:10:25:13 | * ... | provenance | | | windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | windows.cpp:30:10:30:13 | * ... | provenance | Src:MaD:329 | +| windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [*hEvent] | windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | provenance | | +| windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [hEvent] | windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | provenance | | +| windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | provenance | MaD:343 | +| windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | provenance | MaD:343 | +| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | windows.cpp:143:16:143:27 | *lpOverlapped [*hEvent] | provenance | | +| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | windows.cpp:153:16:153:27 | *lpOverlapped [hEvent] | provenance | | +| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | provenance | | +| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | provenance | | +| windows.cpp:143:16:143:27 | *lpOverlapped [*hEvent] | windows.cpp:145:42:145:53 | *lpOverlapped [*hEvent] | provenance | | +| windows.cpp:145:18:145:62 | *hEvent | windows.cpp:145:18:145:62 | *hEvent | provenance | | +| windows.cpp:145:18:145:62 | *hEvent | windows.cpp:147:8:147:14 | * ... | provenance | | +| windows.cpp:145:42:145:53 | *lpOverlapped [*hEvent] | windows.cpp:145:18:145:62 | *hEvent | provenance | | +| windows.cpp:145:42:145:53 | *lpOverlapped [*hEvent] | windows.cpp:145:56:145:61 | *hEvent | provenance | | +| windows.cpp:145:56:145:61 | *hEvent | windows.cpp:145:18:145:62 | *hEvent | provenance | | +| windows.cpp:153:16:153:27 | *lpOverlapped [hEvent] | windows.cpp:155:35:155:46 | *lpOverlapped [hEvent] | provenance | | +| windows.cpp:155:12:155:55 | hEvent | windows.cpp:155:12:155:55 | hEvent | provenance | | +| windows.cpp:155:12:155:55 | hEvent | windows.cpp:156:8:156:8 | c | provenance | | +| windows.cpp:155:35:155:46 | *lpOverlapped [hEvent] | windows.cpp:155:12:155:55 | hEvent | provenance | | +| windows.cpp:155:35:155:46 | *lpOverlapped [hEvent] | windows.cpp:155:12:155:55 | hEvent | provenance | | | windows.cpp:164:35:164:40 | ReadFile output argument | windows.cpp:166:10:166:16 | * ... | provenance | Src:MaD:331 | | windows.cpp:173:23:173:28 | ReadFileEx output argument | windows.cpp:175:10:175:16 | * ... | provenance | Src:MaD:332 | +| windows.cpp:185:21:185:26 | ReadFile output argument | windows.cpp:186:5:186:56 | *... = ... | provenance | Src:MaD:331 | +| windows.cpp:186:5:186:14 | *overlapped [post update] [*hEvent] | windows.cpp:188:53:188:63 | *& ... [*hEvent] | provenance | | +| windows.cpp:186:5:186:56 | *... = ... | windows.cpp:186:5:186:14 | *overlapped [post update] [*hEvent] | provenance | | +| windows.cpp:188:53:188:63 | *& ... [*hEvent] | windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [*hEvent] | provenance | | +| windows.cpp:194:21:194:26 | ReadFile output argument | windows.cpp:195:5:195:57 | ... = ... | provenance | Src:MaD:331 | +| windows.cpp:195:5:195:14 | *overlapped [post update] [hEvent] | windows.cpp:197:53:197:63 | *& ... [hEvent] | provenance | | +| windows.cpp:195:5:195:57 | ... = ... | windows.cpp:195:5:195:14 | *overlapped [post update] [hEvent] | provenance | | +| windows.cpp:197:53:197:63 | *& ... [hEvent] | windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [hEvent] | provenance | | | windows.cpp:205:84:205:89 | NtReadFile output argument | windows.cpp:207:10:207:16 | * ... | provenance | Src:MaD:340 | | windows.cpp:282:23:282:35 | *call to MapViewOfFile | windows.cpp:282:23:282:35 | *call to MapViewOfFile | provenance | Src:MaD:333 | | windows.cpp:282:23:282:35 | *call to MapViewOfFile | windows.cpp:283:20:283:52 | *pMapView | provenance | | @@ -127,10 +154,37 @@ nodes | windows.cpp:25:10:25:13 | * ... | semmle.label | * ... | | windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | semmle.label | GetEnvironmentVariableA output argument | | windows.cpp:30:10:30:13 | * ... | semmle.label | * ... | +| windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [*hEvent] | semmle.label | [summary param] *3 in ReadFileEx [*hEvent] | +| windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [hEvent] | semmle.label | [summary param] *3 in ReadFileEx [hEvent] | +| windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | semmle.label | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | +| windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | semmle.label | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | +| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | semmle.label | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | +| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | semmle.label | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | +| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | semmle.label | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | +| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | semmle.label | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | +| windows.cpp:143:16:143:27 | *lpOverlapped [*hEvent] | semmle.label | *lpOverlapped [*hEvent] | +| windows.cpp:145:18:145:62 | *hEvent | semmle.label | *hEvent | +| windows.cpp:145:18:145:62 | *hEvent | semmle.label | *hEvent | +| windows.cpp:145:42:145:53 | *lpOverlapped [*hEvent] | semmle.label | *lpOverlapped [*hEvent] | +| windows.cpp:145:56:145:61 | *hEvent | semmle.label | *hEvent | +| windows.cpp:147:8:147:14 | * ... | semmle.label | * ... | +| windows.cpp:153:16:153:27 | *lpOverlapped [hEvent] | semmle.label | *lpOverlapped [hEvent] | +| windows.cpp:155:12:155:55 | hEvent | semmle.label | hEvent | +| windows.cpp:155:12:155:55 | hEvent | semmle.label | hEvent | +| windows.cpp:155:35:155:46 | *lpOverlapped [hEvent] | semmle.label | *lpOverlapped [hEvent] | +| windows.cpp:156:8:156:8 | c | semmle.label | c | | windows.cpp:164:35:164:40 | ReadFile output argument | semmle.label | ReadFile output argument | | windows.cpp:166:10:166:16 | * ... | semmle.label | * ... | | windows.cpp:173:23:173:28 | ReadFileEx output argument | semmle.label | ReadFileEx output argument | | windows.cpp:175:10:175:16 | * ... | semmle.label | * ... | +| windows.cpp:185:21:185:26 | ReadFile output argument | semmle.label | ReadFile output argument | +| windows.cpp:186:5:186:14 | *overlapped [post update] [*hEvent] | semmle.label | *overlapped [post update] [*hEvent] | +| windows.cpp:186:5:186:56 | *... = ... | semmle.label | *... = ... | +| windows.cpp:188:53:188:63 | *& ... [*hEvent] | semmle.label | *& ... [*hEvent] | +| windows.cpp:194:21:194:26 | ReadFile output argument | semmle.label | ReadFile output argument | +| windows.cpp:195:5:195:14 | *overlapped [post update] [hEvent] | semmle.label | *overlapped [post update] [hEvent] | +| windows.cpp:195:5:195:57 | ... = ... | semmle.label | ... = ... | +| windows.cpp:197:53:197:63 | *& ... [hEvent] | semmle.label | *& ... [hEvent] | | windows.cpp:205:84:205:89 | NtReadFile output argument | semmle.label | NtReadFile output argument | | windows.cpp:207:10:207:16 | * ... | semmle.label | * ... | | windows.cpp:282:23:282:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected index ff5ad36e15c..a1511035d9e 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected @@ -3771,3 +3771,7 @@ | Dubious signature "(wchar_t *)" in summary model. | | Dubious signature "(wchar_t, const CStringT &)" in summary model. | | Dubious signature "(wchar_t,const CStringT &)" in summary model. | +| Unrecognized input specification "Field[****hEvent]" in summary model. | +| Unrecognized input specification "Field[***hEvent]" in summary model. | +| Unrecognized output specification "Field[****hEvent]" in summary model. | +| Unrecognized output specification "Field[***hEvent]" in summary model. | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp index eb08d9d350a..3d45afc6609 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp @@ -144,7 +144,7 @@ void FileIOCompletionRoutine2( ) { char* buffer = reinterpret_cast(lpOverlapped->hEvent); sink(buffer); - sink(*buffer); // $ MISSING: ir + sink(*buffer); // $ ir } void FileIOCompletionRoutine3( @@ -153,7 +153,7 @@ void FileIOCompletionRoutine3( LPOVERLAPPED lpOverlapped ) { char c = reinterpret_cast(lpOverlapped->hEvent); - sink(c); // $ MISSING: ir + sink(c); // $ ir } void readFile(HANDLE hFile) { From c236084043b7ae57e3196d293ee162a7e7f0c5f4 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Tue, 27 May 2025 14:58:18 +0100 Subject: [PATCH 645/656] Go: Explicitly check whether proxy env vars are empty --- go/extractor/util/registryproxy.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/go/extractor/util/registryproxy.go b/go/extractor/util/registryproxy.go index 43eaa461032..301d45896d2 100644 --- a/go/extractor/util/registryproxy.go +++ b/go/extractor/util/registryproxy.go @@ -50,8 +50,8 @@ func parseRegistryConfigs(str string) ([]RegistryConfig, error) { func getEnvVars() []string { var result []string - if proxy_host, proxy_host_set := os.LookupEnv(PROXY_HOST); proxy_host_set { - if proxy_port, proxy_port_set := os.LookupEnv(PROXY_PORT); proxy_port_set { + if proxy_host, proxy_host_set := os.LookupEnv(PROXY_HOST); proxy_host_set && proxy_host != "" { + if proxy_port, proxy_port_set := os.LookupEnv(PROXY_PORT); proxy_port_set && proxy_port != "" { proxy_address = fmt.Sprintf("http://%s:%s", proxy_host, proxy_port) result = append(result, fmt.Sprintf("HTTP_PROXY=%s", proxy_address), fmt.Sprintf("HTTPS_PROXY=%s", proxy_address)) @@ -59,7 +59,7 @@ func getEnvVars() []string { } } - if proxy_cert, proxy_cert_set := os.LookupEnv(PROXY_CA_CERTIFICATE); proxy_cert_set { + if proxy_cert, proxy_cert_set := os.LookupEnv(PROXY_CA_CERTIFICATE); proxy_cert_set && proxy_cert != "" { // Write the certificate to a temporary file slog.Info("Found certificate") @@ -82,7 +82,7 @@ func getEnvVars() []string { } } - if proxy_urls, proxy_urls_set := os.LookupEnv(PROXY_URLS); proxy_urls_set { + if proxy_urls, proxy_urls_set := os.LookupEnv(PROXY_URLS); proxy_urls_set && proxy_urls != "" { val, err := parseRegistryConfigs(proxy_urls) if err != nil { slog.Error("Unable to parse proxy configurations", slog.String("error", err.Error())) From ae67948a677395dd7d7ef23536cb50a13d1cae7f Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 27 May 2025 16:55:26 +0200 Subject: [PATCH 646/656] C++: Fix formatting in model files --- cpp/ql/lib/ext/Boost.Asio.model.yml | 2 +- cpp/ql/lib/ext/Windows.model.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/ext/Boost.Asio.model.yml b/cpp/ql/lib/ext/Boost.Asio.model.yml index 3b6fb77071f..f6ba957d259 100644 --- a/cpp/ql/lib/ext/Boost.Asio.model.yml +++ b/cpp/ql/lib/ext/Boost.Asio.model.yml @@ -1,4 +1,4 @@ - # partial model of the Boost::Asio network library +# partial model of the Boost::Asio network library extensions: - addsTo: pack: codeql/cpp-all diff --git a/cpp/ql/lib/ext/Windows.model.yml b/cpp/ql/lib/ext/Windows.model.yml index 8bfb3f48b91..810a98de85d 100644 --- a/cpp/ql/lib/ext/Windows.model.yml +++ b/cpp/ql/lib/ext/Windows.model.yml @@ -1,4 +1,4 @@ - # partial model of windows system calls +# partial model of windows system calls extensions: - addsTo: pack: codeql/cpp-all From ae266546a650395584abcbfdaa85d38bad4c78ef Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 27 May 2025 16:57:23 +0200 Subject: [PATCH 647/656] C++: Minor test clean up --- .../dataflow/external-models/flow.expected | 276 +++++++++--------- .../dataflow/external-models/sources.expected | 34 +-- .../dataflow/external-models/steps.expected | 2 +- .../dataflow/external-models/windows.cpp | 26 +- 4 files changed, 171 insertions(+), 167 deletions(-) diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index 4f333d4c36f..a4f7767db56 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -37,68 +37,68 @@ edges | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:23507 | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | provenance | | | test.cpp:32:41:32:41 | x | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | -| windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:6:8:6:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | provenance | MaD:341 | -| windows.cpp:11:15:11:29 | *call to GetCommandLineA | windows.cpp:11:15:11:29 | *call to GetCommandLineA | provenance | Src:MaD:325 | -| windows.cpp:11:15:11:29 | *call to GetCommandLineA | windows.cpp:13:8:13:11 | * ... | provenance | | -| windows.cpp:11:15:11:29 | *call to GetCommandLineA | windows.cpp:16:36:16:38 | *cmd | provenance | | -| windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | provenance | | -| windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | windows.cpp:19:8:19:15 | * ... | provenance | | -| windows.cpp:16:36:16:38 | *cmd | windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | provenance | | -| windows.cpp:16:36:16:38 | *cmd | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | provenance | MaD:341 | -| windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | provenance | Src:MaD:327 | -| windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | windows.cpp:25:10:25:13 | * ... | provenance | | -| windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | windows.cpp:30:10:30:13 | * ... | provenance | Src:MaD:329 | -| windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [*hEvent] | windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | provenance | | -| windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [hEvent] | windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | provenance | | -| windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | provenance | MaD:343 | -| windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | provenance | MaD:343 | -| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | windows.cpp:143:16:143:27 | *lpOverlapped [*hEvent] | provenance | | -| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | windows.cpp:153:16:153:27 | *lpOverlapped [hEvent] | provenance | | -| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | provenance | | -| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | provenance | | -| windows.cpp:143:16:143:27 | *lpOverlapped [*hEvent] | windows.cpp:145:42:145:53 | *lpOverlapped [*hEvent] | provenance | | -| windows.cpp:145:18:145:62 | *hEvent | windows.cpp:145:18:145:62 | *hEvent | provenance | | -| windows.cpp:145:18:145:62 | *hEvent | windows.cpp:147:8:147:14 | * ... | provenance | | -| windows.cpp:145:42:145:53 | *lpOverlapped [*hEvent] | windows.cpp:145:18:145:62 | *hEvent | provenance | | -| windows.cpp:145:42:145:53 | *lpOverlapped [*hEvent] | windows.cpp:145:56:145:61 | *hEvent | provenance | | -| windows.cpp:145:56:145:61 | *hEvent | windows.cpp:145:18:145:62 | *hEvent | provenance | | -| windows.cpp:153:16:153:27 | *lpOverlapped [hEvent] | windows.cpp:155:35:155:46 | *lpOverlapped [hEvent] | provenance | | -| windows.cpp:155:12:155:55 | hEvent | windows.cpp:155:12:155:55 | hEvent | provenance | | -| windows.cpp:155:12:155:55 | hEvent | windows.cpp:156:8:156:8 | c | provenance | | -| windows.cpp:155:35:155:46 | *lpOverlapped [hEvent] | windows.cpp:155:12:155:55 | hEvent | provenance | | -| windows.cpp:155:35:155:46 | *lpOverlapped [hEvent] | windows.cpp:155:12:155:55 | hEvent | provenance | | -| windows.cpp:164:35:164:40 | ReadFile output argument | windows.cpp:166:10:166:16 | * ... | provenance | Src:MaD:331 | -| windows.cpp:173:23:173:28 | ReadFileEx output argument | windows.cpp:175:10:175:16 | * ... | provenance | Src:MaD:332 | -| windows.cpp:185:21:185:26 | ReadFile output argument | windows.cpp:186:5:186:56 | *... = ... | provenance | Src:MaD:331 | -| windows.cpp:186:5:186:14 | *overlapped [post update] [*hEvent] | windows.cpp:188:53:188:63 | *& ... [*hEvent] | provenance | | -| windows.cpp:186:5:186:56 | *... = ... | windows.cpp:186:5:186:14 | *overlapped [post update] [*hEvent] | provenance | | -| windows.cpp:188:53:188:63 | *& ... [*hEvent] | windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [*hEvent] | provenance | | -| windows.cpp:194:21:194:26 | ReadFile output argument | windows.cpp:195:5:195:57 | ... = ... | provenance | Src:MaD:331 | -| windows.cpp:195:5:195:14 | *overlapped [post update] [hEvent] | windows.cpp:197:53:197:63 | *& ... [hEvent] | provenance | | -| windows.cpp:195:5:195:57 | ... = ... | windows.cpp:195:5:195:14 | *overlapped [post update] [hEvent] | provenance | | -| windows.cpp:197:53:197:63 | *& ... [hEvent] | windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [hEvent] | provenance | | -| windows.cpp:205:84:205:89 | NtReadFile output argument | windows.cpp:207:10:207:16 | * ... | provenance | Src:MaD:340 | -| windows.cpp:282:23:282:35 | *call to MapViewOfFile | windows.cpp:282:23:282:35 | *call to MapViewOfFile | provenance | Src:MaD:333 | -| windows.cpp:282:23:282:35 | *call to MapViewOfFile | windows.cpp:283:20:283:52 | *pMapView | provenance | | -| windows.cpp:283:20:283:52 | *pMapView | windows.cpp:285:10:285:16 | * ... | provenance | | -| windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | provenance | Src:MaD:334 | -| windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | windows.cpp:290:20:290:52 | *pMapView | provenance | | -| windows.cpp:290:20:290:52 | *pMapView | windows.cpp:292:10:292:16 | * ... | provenance | | -| windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | provenance | Src:MaD:335 | -| windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | windows.cpp:299:20:299:52 | *pMapView | provenance | | -| windows.cpp:299:20:299:52 | *pMapView | windows.cpp:301:10:301:16 | * ... | provenance | | -| windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | provenance | Src:MaD:336 | -| windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | windows.cpp:308:20:308:52 | *pMapView | provenance | | -| windows.cpp:308:20:308:52 | *pMapView | windows.cpp:310:10:310:16 | * ... | provenance | | -| windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | provenance | Src:MaD:337 | -| windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | windows.cpp:315:20:315:52 | *pMapView | provenance | | -| windows.cpp:315:20:315:52 | *pMapView | windows.cpp:317:10:317:16 | * ... | provenance | | -| windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | provenance | Src:MaD:338 | -| windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | windows.cpp:322:20:322:52 | *pMapView | provenance | | -| windows.cpp:322:20:322:52 | *pMapView | windows.cpp:324:10:324:16 | * ... | provenance | | -| windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | provenance | Src:MaD:339 | -| windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | windows.cpp:329:20:329:52 | *pMapView | provenance | | -| windows.cpp:329:20:329:52 | *pMapView | windows.cpp:331:10:331:16 | * ... | provenance | | +| windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:17:8:17:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | provenance | MaD:341 | +| windows.cpp:22:15:22:29 | *call to GetCommandLineA | windows.cpp:22:15:22:29 | *call to GetCommandLineA | provenance | Src:MaD:325 | +| windows.cpp:22:15:22:29 | *call to GetCommandLineA | windows.cpp:24:8:24:11 | * ... | provenance | | +| windows.cpp:22:15:22:29 | *call to GetCommandLineA | windows.cpp:27:36:27:38 | *cmd | provenance | | +| windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | provenance | | +| windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | windows.cpp:30:8:30:15 | * ... | provenance | | +| windows.cpp:27:36:27:38 | *cmd | windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | provenance | | +| windows.cpp:27:36:27:38 | *cmd | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | provenance | MaD:341 | +| windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | provenance | Src:MaD:327 | +| windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | windows.cpp:36:10:36:13 | * ... | provenance | | +| windows.cpp:39:36:39:38 | GetEnvironmentVariableA output argument | windows.cpp:41:10:41:13 | * ... | provenance | Src:MaD:329 | +| windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [*hEvent] | windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | provenance | | +| windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [hEvent] | windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | provenance | | +| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | provenance | MaD:343 | +| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | provenance | MaD:343 | +| windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | windows.cpp:147:16:147:27 | *lpOverlapped [*hEvent] | provenance | | +| windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | windows.cpp:157:16:157:27 | *lpOverlapped [hEvent] | provenance | | +| windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | provenance | | +| windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | provenance | | +| windows.cpp:147:16:147:27 | *lpOverlapped [*hEvent] | windows.cpp:149:42:149:53 | *lpOverlapped [*hEvent] | provenance | | +| windows.cpp:149:18:149:62 | *hEvent | windows.cpp:149:18:149:62 | *hEvent | provenance | | +| windows.cpp:149:18:149:62 | *hEvent | windows.cpp:151:8:151:14 | * ... | provenance | | +| windows.cpp:149:42:149:53 | *lpOverlapped [*hEvent] | windows.cpp:149:18:149:62 | *hEvent | provenance | | +| windows.cpp:149:42:149:53 | *lpOverlapped [*hEvent] | windows.cpp:149:56:149:61 | *hEvent | provenance | | +| windows.cpp:149:56:149:61 | *hEvent | windows.cpp:149:18:149:62 | *hEvent | provenance | | +| windows.cpp:157:16:157:27 | *lpOverlapped [hEvent] | windows.cpp:159:35:159:46 | *lpOverlapped [hEvent] | provenance | | +| windows.cpp:159:12:159:55 | hEvent | windows.cpp:159:12:159:55 | hEvent | provenance | | +| windows.cpp:159:12:159:55 | hEvent | windows.cpp:160:8:160:8 | c | provenance | | +| windows.cpp:159:35:159:46 | *lpOverlapped [hEvent] | windows.cpp:159:12:159:55 | hEvent | provenance | | +| windows.cpp:159:35:159:46 | *lpOverlapped [hEvent] | windows.cpp:159:12:159:55 | hEvent | provenance | | +| windows.cpp:168:35:168:40 | ReadFile output argument | windows.cpp:170:10:170:16 | * ... | provenance | Src:MaD:331 | +| windows.cpp:177:23:177:28 | ReadFileEx output argument | windows.cpp:179:10:179:16 | * ... | provenance | Src:MaD:332 | +| windows.cpp:189:21:189:26 | ReadFile output argument | windows.cpp:190:5:190:56 | *... = ... | provenance | Src:MaD:331 | +| windows.cpp:190:5:190:14 | *overlapped [post update] [*hEvent] | windows.cpp:192:53:192:63 | *& ... [*hEvent] | provenance | | +| windows.cpp:190:5:190:56 | *... = ... | windows.cpp:190:5:190:14 | *overlapped [post update] [*hEvent] | provenance | | +| windows.cpp:192:53:192:63 | *& ... [*hEvent] | windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [*hEvent] | provenance | | +| windows.cpp:198:21:198:26 | ReadFile output argument | windows.cpp:199:5:199:57 | ... = ... | provenance | Src:MaD:331 | +| windows.cpp:199:5:199:14 | *overlapped [post update] [hEvent] | windows.cpp:201:53:201:63 | *& ... [hEvent] | provenance | | +| windows.cpp:199:5:199:57 | ... = ... | windows.cpp:199:5:199:14 | *overlapped [post update] [hEvent] | provenance | | +| windows.cpp:201:53:201:63 | *& ... [hEvent] | windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [hEvent] | provenance | | +| windows.cpp:209:84:209:89 | NtReadFile output argument | windows.cpp:211:10:211:16 | * ... | provenance | Src:MaD:340 | +| windows.cpp:286:23:286:35 | *call to MapViewOfFile | windows.cpp:286:23:286:35 | *call to MapViewOfFile | provenance | Src:MaD:333 | +| windows.cpp:286:23:286:35 | *call to MapViewOfFile | windows.cpp:287:20:287:52 | *pMapView | provenance | | +| windows.cpp:287:20:287:52 | *pMapView | windows.cpp:289:10:289:16 | * ... | provenance | | +| windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | provenance | Src:MaD:334 | +| windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | windows.cpp:294:20:294:52 | *pMapView | provenance | | +| windows.cpp:294:20:294:52 | *pMapView | windows.cpp:296:10:296:16 | * ... | provenance | | +| windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | provenance | Src:MaD:335 | +| windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | windows.cpp:303:20:303:52 | *pMapView | provenance | | +| windows.cpp:303:20:303:52 | *pMapView | windows.cpp:305:10:305:16 | * ... | provenance | | +| windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | provenance | Src:MaD:336 | +| windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | windows.cpp:312:20:312:52 | *pMapView | provenance | | +| windows.cpp:312:20:312:52 | *pMapView | windows.cpp:314:10:314:16 | * ... | provenance | | +| windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | provenance | Src:MaD:337 | +| windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | windows.cpp:319:20:319:52 | *pMapView | provenance | | +| windows.cpp:319:20:319:52 | *pMapView | windows.cpp:321:10:321:16 | * ... | provenance | | +| windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | provenance | Src:MaD:338 | +| windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | windows.cpp:326:20:326:52 | *pMapView | provenance | | +| windows.cpp:326:20:326:52 | *pMapView | windows.cpp:328:10:328:16 | * ... | provenance | | +| windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | provenance | Src:MaD:339 | +| windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | windows.cpp:333:20:333:52 | *pMapView | provenance | | +| windows.cpp:333:20:333:52 | *pMapView | windows.cpp:335:10:335:16 | * ... | provenance | | nodes | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | semmle.label | [summary param] *0 in buffer | | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | semmle.label | [summary] to write: ReturnValue in buffer | @@ -140,85 +140,85 @@ nodes | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | semmle.label | call to ymlStepGenerated_with_body | | test.cpp:32:41:32:41 | x | semmle.label | x | | test.cpp:33:10:33:11 | z2 | semmle.label | z2 | -| windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | semmle.label | [summary param] *0 in CommandLineToArgvA | -| windows.cpp:6:8:6:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | semmle.label | [summary] to write: ReturnValue[**] in CommandLineToArgvA | -| windows.cpp:11:15:11:29 | *call to GetCommandLineA | semmle.label | *call to GetCommandLineA | -| windows.cpp:11:15:11:29 | *call to GetCommandLineA | semmle.label | *call to GetCommandLineA | -| windows.cpp:13:8:13:11 | * ... | semmle.label | * ... | -| windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | semmle.label | **call to CommandLineToArgvA | -| windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | semmle.label | **call to CommandLineToArgvA | -| windows.cpp:16:36:16:38 | *cmd | semmle.label | *cmd | -| windows.cpp:19:8:19:15 | * ... | semmle.label | * ... | -| windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | semmle.label | *call to GetEnvironmentStringsA | -| windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | semmle.label | *call to GetEnvironmentStringsA | -| windows.cpp:25:10:25:13 | * ... | semmle.label | * ... | -| windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | semmle.label | GetEnvironmentVariableA output argument | -| windows.cpp:30:10:30:13 | * ... | semmle.label | * ... | -| windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [*hEvent] | semmle.label | [summary param] *3 in ReadFileEx [*hEvent] | -| windows.cpp:86:6:86:15 | [summary param] *3 in ReadFileEx [hEvent] | semmle.label | [summary param] *3 in ReadFileEx [hEvent] | -| windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | semmle.label | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | -| windows.cpp:86:6:86:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | semmle.label | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | -| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | semmle.label | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | -| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | semmle.label | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | -| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | semmle.label | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | -| windows.cpp:86:6:86:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | semmle.label | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | -| windows.cpp:143:16:143:27 | *lpOverlapped [*hEvent] | semmle.label | *lpOverlapped [*hEvent] | -| windows.cpp:145:18:145:62 | *hEvent | semmle.label | *hEvent | -| windows.cpp:145:18:145:62 | *hEvent | semmle.label | *hEvent | -| windows.cpp:145:42:145:53 | *lpOverlapped [*hEvent] | semmle.label | *lpOverlapped [*hEvent] | -| windows.cpp:145:56:145:61 | *hEvent | semmle.label | *hEvent | -| windows.cpp:147:8:147:14 | * ... | semmle.label | * ... | -| windows.cpp:153:16:153:27 | *lpOverlapped [hEvent] | semmle.label | *lpOverlapped [hEvent] | -| windows.cpp:155:12:155:55 | hEvent | semmle.label | hEvent | -| windows.cpp:155:12:155:55 | hEvent | semmle.label | hEvent | -| windows.cpp:155:35:155:46 | *lpOverlapped [hEvent] | semmle.label | *lpOverlapped [hEvent] | -| windows.cpp:156:8:156:8 | c | semmle.label | c | -| windows.cpp:164:35:164:40 | ReadFile output argument | semmle.label | ReadFile output argument | -| windows.cpp:166:10:166:16 | * ... | semmle.label | * ... | -| windows.cpp:173:23:173:28 | ReadFileEx output argument | semmle.label | ReadFileEx output argument | -| windows.cpp:175:10:175:16 | * ... | semmle.label | * ... | -| windows.cpp:185:21:185:26 | ReadFile output argument | semmle.label | ReadFile output argument | -| windows.cpp:186:5:186:14 | *overlapped [post update] [*hEvent] | semmle.label | *overlapped [post update] [*hEvent] | -| windows.cpp:186:5:186:56 | *... = ... | semmle.label | *... = ... | -| windows.cpp:188:53:188:63 | *& ... [*hEvent] | semmle.label | *& ... [*hEvent] | -| windows.cpp:194:21:194:26 | ReadFile output argument | semmle.label | ReadFile output argument | -| windows.cpp:195:5:195:14 | *overlapped [post update] [hEvent] | semmle.label | *overlapped [post update] [hEvent] | -| windows.cpp:195:5:195:57 | ... = ... | semmle.label | ... = ... | -| windows.cpp:197:53:197:63 | *& ... [hEvent] | semmle.label | *& ... [hEvent] | -| windows.cpp:205:84:205:89 | NtReadFile output argument | semmle.label | NtReadFile output argument | -| windows.cpp:207:10:207:16 | * ... | semmle.label | * ... | -| windows.cpp:282:23:282:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | -| windows.cpp:282:23:282:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | -| windows.cpp:283:20:283:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:285:10:285:16 | * ... | semmle.label | * ... | -| windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | semmle.label | *call to MapViewOfFile2 | -| windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | semmle.label | *call to MapViewOfFile2 | -| windows.cpp:290:20:290:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:292:10:292:16 | * ... | semmle.label | * ... | -| windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | semmle.label | *call to MapViewOfFile3 | -| windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | semmle.label | *call to MapViewOfFile3 | -| windows.cpp:299:20:299:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:301:10:301:16 | * ... | semmle.label | * ... | -| windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | semmle.label | *call to MapViewOfFile3FromApp | -| windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | semmle.label | *call to MapViewOfFile3FromApp | -| windows.cpp:308:20:308:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:310:10:310:16 | * ... | semmle.label | * ... | -| windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | semmle.label | *call to MapViewOfFileEx | -| windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | semmle.label | *call to MapViewOfFileEx | -| windows.cpp:315:20:315:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:317:10:317:16 | * ... | semmle.label | * ... | -| windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | semmle.label | *call to MapViewOfFileFromApp | -| windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | semmle.label | *call to MapViewOfFileFromApp | -| windows.cpp:322:20:322:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:324:10:324:16 | * ... | semmle.label | * ... | -| windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | -| windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | -| windows.cpp:329:20:329:52 | *pMapView | semmle.label | *pMapView | -| windows.cpp:331:10:331:16 | * ... | semmle.label | * ... | +| windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | semmle.label | [summary param] *0 in CommandLineToArgvA | +| windows.cpp:17:8:17:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | semmle.label | [summary] to write: ReturnValue[**] in CommandLineToArgvA | +| windows.cpp:22:15:22:29 | *call to GetCommandLineA | semmle.label | *call to GetCommandLineA | +| windows.cpp:22:15:22:29 | *call to GetCommandLineA | semmle.label | *call to GetCommandLineA | +| windows.cpp:24:8:24:11 | * ... | semmle.label | * ... | +| windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | semmle.label | **call to CommandLineToArgvA | +| windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | semmle.label | **call to CommandLineToArgvA | +| windows.cpp:27:36:27:38 | *cmd | semmle.label | *cmd | +| windows.cpp:30:8:30:15 | * ... | semmle.label | * ... | +| windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | semmle.label | *call to GetEnvironmentStringsA | +| windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | semmle.label | *call to GetEnvironmentStringsA | +| windows.cpp:36:10:36:13 | * ... | semmle.label | * ... | +| windows.cpp:39:36:39:38 | GetEnvironmentVariableA output argument | semmle.label | GetEnvironmentVariableA output argument | +| windows.cpp:41:10:41:13 | * ... | semmle.label | * ... | +| windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [*hEvent] | semmle.label | [summary param] *3 in ReadFileEx [*hEvent] | +| windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [hEvent] | semmle.label | [summary param] *3 in ReadFileEx [hEvent] | +| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | semmle.label | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | +| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | semmle.label | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | +| windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | semmle.label | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | +| windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | semmle.label | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | +| windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | semmle.label | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | +| windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | semmle.label | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | +| windows.cpp:147:16:147:27 | *lpOverlapped [*hEvent] | semmle.label | *lpOverlapped [*hEvent] | +| windows.cpp:149:18:149:62 | *hEvent | semmle.label | *hEvent | +| windows.cpp:149:18:149:62 | *hEvent | semmle.label | *hEvent | +| windows.cpp:149:42:149:53 | *lpOverlapped [*hEvent] | semmle.label | *lpOverlapped [*hEvent] | +| windows.cpp:149:56:149:61 | *hEvent | semmle.label | *hEvent | +| windows.cpp:151:8:151:14 | * ... | semmle.label | * ... | +| windows.cpp:157:16:157:27 | *lpOverlapped [hEvent] | semmle.label | *lpOverlapped [hEvent] | +| windows.cpp:159:12:159:55 | hEvent | semmle.label | hEvent | +| windows.cpp:159:12:159:55 | hEvent | semmle.label | hEvent | +| windows.cpp:159:35:159:46 | *lpOverlapped [hEvent] | semmle.label | *lpOverlapped [hEvent] | +| windows.cpp:160:8:160:8 | c | semmle.label | c | +| windows.cpp:168:35:168:40 | ReadFile output argument | semmle.label | ReadFile output argument | +| windows.cpp:170:10:170:16 | * ... | semmle.label | * ... | +| windows.cpp:177:23:177:28 | ReadFileEx output argument | semmle.label | ReadFileEx output argument | +| windows.cpp:179:10:179:16 | * ... | semmle.label | * ... | +| windows.cpp:189:21:189:26 | ReadFile output argument | semmle.label | ReadFile output argument | +| windows.cpp:190:5:190:14 | *overlapped [post update] [*hEvent] | semmle.label | *overlapped [post update] [*hEvent] | +| windows.cpp:190:5:190:56 | *... = ... | semmle.label | *... = ... | +| windows.cpp:192:53:192:63 | *& ... [*hEvent] | semmle.label | *& ... [*hEvent] | +| windows.cpp:198:21:198:26 | ReadFile output argument | semmle.label | ReadFile output argument | +| windows.cpp:199:5:199:14 | *overlapped [post update] [hEvent] | semmle.label | *overlapped [post update] [hEvent] | +| windows.cpp:199:5:199:57 | ... = ... | semmle.label | ... = ... | +| windows.cpp:201:53:201:63 | *& ... [hEvent] | semmle.label | *& ... [hEvent] | +| windows.cpp:209:84:209:89 | NtReadFile output argument | semmle.label | NtReadFile output argument | +| windows.cpp:211:10:211:16 | * ... | semmle.label | * ... | +| windows.cpp:286:23:286:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | +| windows.cpp:286:23:286:35 | *call to MapViewOfFile | semmle.label | *call to MapViewOfFile | +| windows.cpp:287:20:287:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:289:10:289:16 | * ... | semmle.label | * ... | +| windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | semmle.label | *call to MapViewOfFile2 | +| windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | semmle.label | *call to MapViewOfFile2 | +| windows.cpp:294:20:294:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:296:10:296:16 | * ... | semmle.label | * ... | +| windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | semmle.label | *call to MapViewOfFile3 | +| windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | semmle.label | *call to MapViewOfFile3 | +| windows.cpp:303:20:303:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:305:10:305:16 | * ... | semmle.label | * ... | +| windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | semmle.label | *call to MapViewOfFile3FromApp | +| windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | semmle.label | *call to MapViewOfFile3FromApp | +| windows.cpp:312:20:312:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:314:10:314:16 | * ... | semmle.label | * ... | +| windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | semmle.label | *call to MapViewOfFileEx | +| windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | semmle.label | *call to MapViewOfFileEx | +| windows.cpp:319:20:319:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:321:10:321:16 | * ... | semmle.label | * ... | +| windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | semmle.label | *call to MapViewOfFileFromApp | +| windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | semmle.label | *call to MapViewOfFileFromApp | +| windows.cpp:326:20:326:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:328:10:328:16 | * ... | semmle.label | * ... | +| windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | +| windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | semmle.label | *call to MapViewOfFileNuma2 | +| windows.cpp:333:20:333:52 | *pMapView | semmle.label | *pMapView | +| windows.cpp:335:10:335:16 | * ... | semmle.label | * ... | subpaths | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | asio_streams.cpp:100:44:100:62 | call to buffer | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | -| windows.cpp:16:36:16:38 | *cmd | windows.cpp:6:8:6:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:6:8:6:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | +| windows.cpp:27:36:27:38 | *cmd | windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:17:8:17:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected index a50ce484e1c..8730083d016 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected @@ -1,19 +1,19 @@ | asio_streams.cpp:87:34:87:44 | read_until output argument | remote | | test.cpp:10:10:10:18 | call to ymlSource | local | -| windows.cpp:11:15:11:29 | *call to GetCommandLineA | local | -| windows.cpp:23:17:23:38 | *call to GetEnvironmentStringsA | local | -| windows.cpp:28:36:28:38 | GetEnvironmentVariableA output argument | local | -| windows.cpp:164:35:164:40 | ReadFile output argument | local | -| windows.cpp:173:23:173:28 | ReadFileEx output argument | local | -| windows.cpp:185:21:185:26 | ReadFile output argument | local | -| windows.cpp:188:23:188:29 | ReadFileEx output argument | local | -| windows.cpp:194:21:194:26 | ReadFile output argument | local | -| windows.cpp:197:23:197:29 | ReadFileEx output argument | local | -| windows.cpp:205:84:205:89 | NtReadFile output argument | local | -| windows.cpp:282:23:282:35 | *call to MapViewOfFile | local | -| windows.cpp:289:23:289:36 | *call to MapViewOfFile2 | local | -| windows.cpp:298:23:298:36 | *call to MapViewOfFile3 | local | -| windows.cpp:307:23:307:43 | *call to MapViewOfFile3FromApp | local | -| windows.cpp:314:23:314:37 | *call to MapViewOfFileEx | local | -| windows.cpp:321:23:321:42 | *call to MapViewOfFileFromApp | local | -| windows.cpp:328:23:328:40 | *call to MapViewOfFileNuma2 | local | +| windows.cpp:22:15:22:29 | *call to GetCommandLineA | local | +| windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | local | +| windows.cpp:39:36:39:38 | GetEnvironmentVariableA output argument | local | +| windows.cpp:168:35:168:40 | ReadFile output argument | local | +| windows.cpp:177:23:177:28 | ReadFileEx output argument | local | +| windows.cpp:189:21:189:26 | ReadFile output argument | local | +| windows.cpp:192:23:192:29 | ReadFileEx output argument | local | +| windows.cpp:198:21:198:26 | ReadFile output argument | local | +| windows.cpp:201:23:201:29 | ReadFileEx output argument | local | +| windows.cpp:209:84:209:89 | NtReadFile output argument | local | +| windows.cpp:286:23:286:35 | *call to MapViewOfFile | local | +| windows.cpp:293:23:293:36 | *call to MapViewOfFile2 | local | +| windows.cpp:302:23:302:36 | *call to MapViewOfFile3 | local | +| windows.cpp:311:23:311:43 | *call to MapViewOfFile3FromApp | local | +| windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | local | +| windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | local | +| windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | local | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/steps.expected b/cpp/ql/test/library-tests/dataflow/external-models/steps.expected index ccdec4aefcb..ce5dd687caf 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/steps.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/steps.expected @@ -5,4 +5,4 @@ | test.cpp:28:35:28:35 | 0 | test.cpp:28:11:28:33 | call to ymlStepManual_with_body | | test.cpp:32:38:32:38 | 0 | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | | test.cpp:35:38:35:38 | x | test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | -| windows.cpp:16:36:16:38 | *cmd | windows.cpp:16:17:16:34 | **call to CommandLineToArgvA | +| windows.cpp:27:36:27:38 | *cmd | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp index 3d45afc6609..b97ac833102 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp @@ -2,10 +2,21 @@ void sink(char); void sink(char*); void sink(char**); -char* GetCommandLineA(); -char** CommandLineToArgvA(char*, int*); -char* GetEnvironmentStringsA(); -int GetEnvironmentVariableA(const char*, char*, int); +using HANDLE = void*; +using DWORD = unsigned long; +using LPCH = char*; +using LPSTR = char*; +using LPCSTR = const char*; +using LPVOID = void*; +using LPDWORD = unsigned long*; +using PVOID = void*; +using ULONG_PTR = unsigned long*; +using SIZE_T = decltype(sizeof(0)); + +LPSTR GetCommandLineA(); +LPSTR* CommandLineToArgvA(LPSTR, int*); +LPCH GetEnvironmentStringsA(); +DWORD GetEnvironmentVariableA(LPCSTR, LPSTR, DWORD); void getCommandLine() { char* cmd = GetCommandLineA(); @@ -30,13 +41,6 @@ void getEnvironment() { sink(*buf); // $ ir } -using HANDLE = void*; -using DWORD = unsigned long; -using LPVOID = void*; -using LPDWORD = unsigned long*; -using PVOID = void*; -using ULONG_PTR = unsigned long*; -using SIZE_T = decltype(sizeof(0)); typedef struct _OVERLAPPED { ULONG_PTR Internal; ULONG_PTR InternalHigh; From ece075c214faed16aab174dec8f53f24dbdf8d4d Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 27 May 2025 16:43:28 +0200 Subject: [PATCH 648/656] Rust: add more macro expansion tests --- rust/ql/integration-tests/.gitignore | 1 + .../macro-expansion/Cargo.lock | 53 ------------------- .../macro-expansion/Cargo.toml | 10 +--- .../macro-expansion/attributes/Cargo.toml | 7 +++ .../{ => attributes}/src/lib.rs | 4 +- .../macro-expansion/calls/Cargo.toml | 6 +++ .../macro-expansion/calls/src/included.rs | 3 ++ .../macro-expansion/calls/src/lib.rs | 30 +++++++++++ .../macro-expansion/calls/src/some.txt | 1 + .../macro-expansion/diagnostics.expected | 2 +- .../{macros => proc_macros}/Cargo.toml | 2 +- .../{macros => proc_macros}/src/lib.rs | 0 .../macro-expansion/source_archive.expected | 6 ++- .../macro-expansion/summary.expected | 16 ------ .../macro-expansion/summary.qlref | 1 - .../macro-expansion/test.expected | 51 ++++++++++++------ .../integration-tests/macro-expansion/test.ql | 16 ++++-- .../generated/MacroCall/some.txt | 1 + 18 files changed, 105 insertions(+), 105 deletions(-) delete mode 100644 rust/ql/integration-tests/macro-expansion/Cargo.lock create mode 100644 rust/ql/integration-tests/macro-expansion/attributes/Cargo.toml rename rust/ql/integration-tests/macro-expansion/{ => attributes}/src/lib.rs (67%) create mode 100644 rust/ql/integration-tests/macro-expansion/calls/Cargo.toml create mode 100644 rust/ql/integration-tests/macro-expansion/calls/src/included.rs create mode 100644 rust/ql/integration-tests/macro-expansion/calls/src/lib.rs create mode 100644 rust/ql/integration-tests/macro-expansion/calls/src/some.txt rename rust/ql/integration-tests/macro-expansion/{macros => proc_macros}/Cargo.toml (88%) rename rust/ql/integration-tests/macro-expansion/{macros => proc_macros}/src/lib.rs (100%) delete mode 100644 rust/ql/integration-tests/macro-expansion/summary.expected delete mode 100644 rust/ql/integration-tests/macro-expansion/summary.qlref create mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/some.txt diff --git a/rust/ql/integration-tests/.gitignore b/rust/ql/integration-tests/.gitignore index 2f7896d1d13..2c96eb1b651 100644 --- a/rust/ql/integration-tests/.gitignore +++ b/rust/ql/integration-tests/.gitignore @@ -1 +1,2 @@ target/ +Cargo.lock diff --git a/rust/ql/integration-tests/macro-expansion/Cargo.lock b/rust/ql/integration-tests/macro-expansion/Cargo.lock deleted file mode 100644 index 976dc5e7def..00000000000 --- a/rust/ql/integration-tests/macro-expansion/Cargo.lock +++ /dev/null @@ -1,53 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "macro_expansion" -version = "0.1.0" -dependencies = [ - "macros", -] - -[[package]] -name = "macros" -version = "0.1.0" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "proc-macro2" -version = "1.0.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "syn" -version = "2.0.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "unicode-ident" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" diff --git a/rust/ql/integration-tests/macro-expansion/Cargo.toml b/rust/ql/integration-tests/macro-expansion/Cargo.toml index b7ce204e07f..9be2ec64b57 100644 --- a/rust/ql/integration-tests/macro-expansion/Cargo.toml +++ b/rust/ql/integration-tests/macro-expansion/Cargo.toml @@ -1,11 +1,3 @@ [workspace] -members = ["macros"] +members = [ "attributes", "calls", "proc_macros"] resolver = "2" - -[package] -name = "macro_expansion" -version = "0.1.0" -edition = "2024" - -[dependencies] -macros = { path = "macros" } diff --git a/rust/ql/integration-tests/macro-expansion/attributes/Cargo.toml b/rust/ql/integration-tests/macro-expansion/attributes/Cargo.toml new file mode 100644 index 00000000000..b475ead960a --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/attributes/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "attributes" +version = "0.1.0" +edition = "2024" + +[dependencies] +proc_macros = { path = "../proc_macros" } diff --git a/rust/ql/integration-tests/macro-expansion/src/lib.rs b/rust/ql/integration-tests/macro-expansion/attributes/src/lib.rs similarity index 67% rename from rust/ql/integration-tests/macro-expansion/src/lib.rs rename to rust/ql/integration-tests/macro-expansion/attributes/src/lib.rs index 2007d3b111a..682083aa10a 100644 --- a/rust/ql/integration-tests/macro-expansion/src/lib.rs +++ b/rust/ql/integration-tests/macro-expansion/attributes/src/lib.rs @@ -1,8 +1,8 @@ -use macros::repeat; +use proc_macros::repeat; #[repeat(3)] fn foo() { - println!("Hello, world!"); + _ = concat!("Hello ", "world!"); #[repeat(2)] fn inner() {} diff --git a/rust/ql/integration-tests/macro-expansion/calls/Cargo.toml b/rust/ql/integration-tests/macro-expansion/calls/Cargo.toml new file mode 100644 index 00000000000..d38cf944489 --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/calls/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "calls" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/rust/ql/integration-tests/macro-expansion/calls/src/included.rs b/rust/ql/integration-tests/macro-expansion/calls/src/included.rs new file mode 100644 index 00000000000..7397e24bd81 --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/calls/src/included.rs @@ -0,0 +1,3 @@ +fn included() { + _ = concat!("Hello", " ", "world!"); // this doesn't expand (in included.rs) since 0.0.274 +} diff --git a/rust/ql/integration-tests/macro-expansion/calls/src/lib.rs b/rust/ql/integration-tests/macro-expansion/calls/src/lib.rs new file mode 100644 index 00000000000..df3fccb7c40 --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/calls/src/lib.rs @@ -0,0 +1,30 @@ +struct S; + +macro_rules! def_x { + () => { + fn x() {} + }; +} + +impl S { + def_x!(); // this doesn't expand since 0.0.274 +} + +macro_rules! my_macro { + ($head:expr, $($tail:tt)*) => { format!($head, $($tail)*) }; +} + + +fn test() { + _ = concat!("x", "y"); + + _ = my_macro!( + concat!("<", "{}", ">"), // this doesn't expand since 0.0.274 + "hi", + ); +} + +include!("included.rs"); + +#[doc = include_str!("some.txt")] // this doesn't expand since 0.0.274 +fn documented() {} diff --git a/rust/ql/integration-tests/macro-expansion/calls/src/some.txt b/rust/ql/integration-tests/macro-expansion/calls/src/some.txt new file mode 100644 index 00000000000..4c5477a837a --- /dev/null +++ b/rust/ql/integration-tests/macro-expansion/calls/src/some.txt @@ -0,0 +1 @@ +Hey! diff --git a/rust/ql/integration-tests/macro-expansion/diagnostics.expected b/rust/ql/integration-tests/macro-expansion/diagnostics.expected index c98f923b463..511bd49f1a5 100644 --- a/rust/ql/integration-tests/macro-expansion/diagnostics.expected +++ b/rust/ql/integration-tests/macro-expansion/diagnostics.expected @@ -38,7 +38,7 @@ "pretty": "__REDACTED__" } }, - "numberOfFiles": 2, + "numberOfFiles": 4, "numberOfManifests": 1 }, "severity": "note", diff --git a/rust/ql/integration-tests/macro-expansion/macros/Cargo.toml b/rust/ql/integration-tests/macro-expansion/proc_macros/Cargo.toml similarity index 88% rename from rust/ql/integration-tests/macro-expansion/macros/Cargo.toml rename to rust/ql/integration-tests/macro-expansion/proc_macros/Cargo.toml index a503d3fb903..712f7ba3393 100644 --- a/rust/ql/integration-tests/macro-expansion/macros/Cargo.toml +++ b/rust/ql/integration-tests/macro-expansion/proc_macros/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "macros" +name = "proc_macros" version = "0.1.0" edition = "2024" diff --git a/rust/ql/integration-tests/macro-expansion/macros/src/lib.rs b/rust/ql/integration-tests/macro-expansion/proc_macros/src/lib.rs similarity index 100% rename from rust/ql/integration-tests/macro-expansion/macros/src/lib.rs rename to rust/ql/integration-tests/macro-expansion/proc_macros/src/lib.rs diff --git a/rust/ql/integration-tests/macro-expansion/source_archive.expected b/rust/ql/integration-tests/macro-expansion/source_archive.expected index ec61af6032b..c1700a0a300 100644 --- a/rust/ql/integration-tests/macro-expansion/source_archive.expected +++ b/rust/ql/integration-tests/macro-expansion/source_archive.expected @@ -1,2 +1,4 @@ -macros/src/lib.rs -src/lib.rs +attributes/src/lib.rs +calls/src/included.rs +calls/src/lib.rs +proc_macros/src/lib.rs diff --git a/rust/ql/integration-tests/macro-expansion/summary.expected b/rust/ql/integration-tests/macro-expansion/summary.expected deleted file mode 100644 index 6917d67b1cf..00000000000 --- a/rust/ql/integration-tests/macro-expansion/summary.expected +++ /dev/null @@ -1,16 +0,0 @@ -| Extraction errors | 0 | -| Extraction warnings | 0 | -| Files extracted - total | 2 | -| Files extracted - with errors | 0 | -| Files extracted - without errors | 2 | -| Files extracted - without errors % | 100 | -| Inconsistencies - AST | 0 | -| Inconsistencies - CFG | 0 | -| Inconsistencies - Path resolution | 0 | -| Inconsistencies - SSA | 0 | -| Inconsistencies - data flow | 0 | -| Lines of code extracted | 29 | -| Lines of user code extracted | 29 | -| Macro calls - resolved | 52 | -| Macro calls - total | 53 | -| Macro calls - unresolved | 1 | diff --git a/rust/ql/integration-tests/macro-expansion/summary.qlref b/rust/ql/integration-tests/macro-expansion/summary.qlref deleted file mode 100644 index 926fc790391..00000000000 --- a/rust/ql/integration-tests/macro-expansion/summary.qlref +++ /dev/null @@ -1 +0,0 @@ -queries/summary/SummaryStatsReduced.ql diff --git a/rust/ql/integration-tests/macro-expansion/test.expected b/rust/ql/integration-tests/macro-expansion/test.expected index 83edecf5d5d..24d95c99b35 100644 --- a/rust/ql/integration-tests/macro-expansion/test.expected +++ b/rust/ql/integration-tests/macro-expansion/test.expected @@ -1,17 +1,34 @@ -| src/lib.rs:3:1:9:1 | fn foo | 0 | src/lib.rs:4:1:8:16 | fn foo_0 | -| src/lib.rs:3:1:9:1 | fn foo | 1 | src/lib.rs:4:1:8:16 | fn foo_1 | -| src/lib.rs:3:1:9:1 | fn foo | 2 | src/lib.rs:4:1:8:16 | fn foo_2 | -| src/lib.rs:7:5:8:16 | fn inner | 0 | src/lib.rs:8:5:8:16 | fn inner_0 | -| src/lib.rs:7:5:8:16 | fn inner | 0 | src/lib.rs:8:5:8:16 | fn inner_0 | -| src/lib.rs:7:5:8:16 | fn inner | 0 | src/lib.rs:8:5:8:16 | fn inner_0 | -| src/lib.rs:7:5:8:16 | fn inner | 1 | src/lib.rs:8:5:8:16 | fn inner_1 | -| src/lib.rs:7:5:8:16 | fn inner | 1 | src/lib.rs:8:5:8:16 | fn inner_1 | -| src/lib.rs:7:5:8:16 | fn inner | 1 | src/lib.rs:8:5:8:16 | fn inner_1 | -| src/lib.rs:11:1:13:11 | fn bar | 0 | src/lib.rs:12:1:13:10 | fn bar_0 | -| src/lib.rs:11:1:13:11 | fn bar | 1 | src/lib.rs:12:1:13:10 | fn bar_1 | -| src/lib.rs:12:1:13:10 | fn bar_0 | 0 | src/lib.rs:13:1:13:10 | fn bar_0_0 | -| src/lib.rs:12:1:13:10 | fn bar_0 | 1 | src/lib.rs:13:1:13:10 | fn bar_0_1 | -| src/lib.rs:12:1:13:10 | fn bar_0 | 2 | src/lib.rs:13:1:13:10 | fn bar_0_2 | -| src/lib.rs:12:1:13:10 | fn bar_1 | 0 | src/lib.rs:13:1:13:10 | fn bar_1_0 | -| src/lib.rs:12:1:13:10 | fn bar_1 | 1 | src/lib.rs:13:1:13:10 | fn bar_1_1 | -| src/lib.rs:12:1:13:10 | fn bar_1 | 2 | src/lib.rs:13:1:13:10 | fn bar_1_2 | +attribute_macros +| attributes/src/lib.rs:3:1:9:1 | fn foo | 0 | attributes/src/lib.rs:4:1:8:16 | fn foo_0 | +| attributes/src/lib.rs:3:1:9:1 | fn foo | 1 | attributes/src/lib.rs:4:1:8:16 | fn foo_1 | +| attributes/src/lib.rs:3:1:9:1 | fn foo | 2 | attributes/src/lib.rs:4:1:8:16 | fn foo_2 | +| attributes/src/lib.rs:7:5:8:16 | fn inner | 0 | attributes/src/lib.rs:8:5:8:16 | fn inner_0 | +| attributes/src/lib.rs:7:5:8:16 | fn inner | 0 | attributes/src/lib.rs:8:5:8:16 | fn inner_0 | +| attributes/src/lib.rs:7:5:8:16 | fn inner | 0 | attributes/src/lib.rs:8:5:8:16 | fn inner_0 | +| attributes/src/lib.rs:7:5:8:16 | fn inner | 1 | attributes/src/lib.rs:8:5:8:16 | fn inner_1 | +| attributes/src/lib.rs:7:5:8:16 | fn inner | 1 | attributes/src/lib.rs:8:5:8:16 | fn inner_1 | +| attributes/src/lib.rs:7:5:8:16 | fn inner | 1 | attributes/src/lib.rs:8:5:8:16 | fn inner_1 | +| attributes/src/lib.rs:11:1:13:11 | fn bar | 0 | attributes/src/lib.rs:12:1:13:10 | fn bar_0 | +| attributes/src/lib.rs:11:1:13:11 | fn bar | 1 | attributes/src/lib.rs:12:1:13:10 | fn bar_1 | +| attributes/src/lib.rs:12:1:13:10 | fn bar_0 | 0 | attributes/src/lib.rs:13:1:13:10 | fn bar_0_0 | +| attributes/src/lib.rs:12:1:13:10 | fn bar_0 | 1 | attributes/src/lib.rs:13:1:13:10 | fn bar_0_1 | +| attributes/src/lib.rs:12:1:13:10 | fn bar_0 | 2 | attributes/src/lib.rs:13:1:13:10 | fn bar_0_2 | +| attributes/src/lib.rs:12:1:13:10 | fn bar_1 | 0 | attributes/src/lib.rs:13:1:13:10 | fn bar_1_0 | +| attributes/src/lib.rs:12:1:13:10 | fn bar_1 | 1 | attributes/src/lib.rs:13:1:13:10 | fn bar_1_1 | +| attributes/src/lib.rs:12:1:13:10 | fn bar_1 | 2 | attributes/src/lib.rs:13:1:13:10 | fn bar_1_2 | +macro_calls +| attributes/src/lib.rs:5:9:5:34 | concat!... | attributes/src/lib.rs:5:17:5:34 | "Hello world!" | +| attributes/src/lib.rs:5:9:5:34 | concat!... | attributes/src/lib.rs:5:17:5:34 | "Hello world!" | +| attributes/src/lib.rs:5:9:5:34 | concat!... | attributes/src/lib.rs:5:17:5:34 | "Hello world!" | +| calls/src/included.rs:2:9:2:39 | concat!... | calls/src/included.rs:2:17:2:38 | "Hello world!" | +| calls/src/lib.rs:10:5:10:13 | def_x!... | calls/src/lib.rs:10:5:10:13 | MacroItems | +| calls/src/lib.rs:19:9:19:25 | concat!... | calls/src/lib.rs:19:17:19:24 | "xy" | +| calls/src/lib.rs:21:9:24:5 | my_macro!... | calls/src/lib.rs:22:9:23:13 | MacroExpr | +| calls/src/lib.rs:22:9:22:31 | concat!... | calls/src/lib.rs:22:17:22:30 | "<{}>" | +| calls/src/lib.rs:22:9:23:13 | ...::format_args!... | calls/src/lib.rs:22:9:23:13 | FormatArgsExpr | +| calls/src/lib.rs:22:9:23:13 | format!... | calls/src/lib.rs:22:9:23:13 | ...::must_use(...) | +| calls/src/lib.rs:27:1:27:24 | concat!... | calls/src/lib.rs:27:1:27:24 | "Hello world!" | +| calls/src/lib.rs:27:1:27:24 | include!... | calls/src/lib.rs:27:1:27:24 | MacroItems | +| calls/src/lib.rs:29:9:29:32 | include_str!... | calls/src/lib.rs:29:22:29:31 | "" | +unexpanded_macro_calls +| attributes/src/lib.rs:5:9:5:35 | concat!... | diff --git a/rust/ql/integration-tests/macro-expansion/test.ql b/rust/ql/integration-tests/macro-expansion/test.ql index 3369acc3a28..439ffab9a29 100644 --- a/rust/ql/integration-tests/macro-expansion/test.ql +++ b/rust/ql/integration-tests/macro-expansion/test.ql @@ -1,5 +1,15 @@ import rust -from Item i, MacroItems items, int index, Item expanded -where i.fromSource() and i.getAttributeMacroExpansion() = items and items.getItem(index) = expanded -select i, index, expanded +query predicate attribute_macros(Item i, int index, Item expanded) { + i.fromSource() and expanded = i.getAttributeMacroExpansion().getItem(index) +} + +query predicate macro_calls(MacroCall c, AstNode expansion) { + c.fromSource() and + not c.getLocation().getFile().getAbsolutePath().matches("%proc_macros%") and + expansion = c.getMacroCallExpansion() +} + +query predicate unexpanded_macro_calls(MacroCall c) { + c.fromSource() and not c.hasMacroCallExpansion() +} diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/some.txt b/rust/ql/test/extractor-tests/generated/MacroCall/some.txt new file mode 100644 index 00000000000..10ddd6d257e --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroCall/some.txt @@ -0,0 +1 @@ +Hello! From 0796184573355d69b26647f2d8532e5c52f37a2c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 28 May 2025 14:16:47 +0200 Subject: [PATCH 649/656] C++: Specify GNU version on min/max test The `?` operators where removed in g++ in version 4.3, and the latest version of our our frontend enforces this through a version check. Hence, to keep the test working, we not to explicitly specify a version. --- cpp/ql/test/library-tests/exprs/min_max/expr.expected | 8 ++++---- cpp/ql/test/library-tests/exprs/min_max/test.cpp | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cpp/ql/test/library-tests/exprs/min_max/expr.expected b/cpp/ql/test/library-tests/exprs/min_max/expr.expected index ebd03f8b699..b2ce8fb6e40 100644 --- a/cpp/ql/test/library-tests/exprs/min_max/expr.expected +++ b/cpp/ql/test/library-tests/exprs/min_max/expr.expected @@ -1,6 +1,6 @@ -| test.cpp:3:13:3:13 | i | -| test.cpp:3:13:3:18 | ... ? ... | +| test.cpp:4:13:4:18 | ... ? ... | +| test.cpp:5:18:5:18 | j | diff --git a/cpp/ql/test/library-tests/exprs/min_max/test.cpp b/cpp/ql/test/library-tests/exprs/min_max/test.cpp index d8be21af82a..f62e08974ce 100644 --- a/cpp/ql/test/library-tests/exprs/min_max/test.cpp +++ b/cpp/ql/test/library-tests/exprs/min_max/test.cpp @@ -1,3 +1,4 @@ +// semmle-extractor-options: --gnu_version 40200 void f(int i, int j) { int k = i Date: Wed, 28 May 2025 15:51:42 +0200 Subject: [PATCH 650/656] Rust: delete leftover log statement --- rust/extractor/src/main.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index 928542c5422..bae83c99fbf 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -317,7 +317,6 @@ fn main() -> anyhow::Result<()> { .source_root(db) .is_library { - tracing::info!("file: {}", file.display()); extractor.extract_with_semantics( file, &semantics, From a86dfe173e9d2f5f59065b49de9d1556cc808c23 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 28 May 2025 14:13:21 +0200 Subject: [PATCH 651/656] Rust: fix gzip compression --- rust/extractor/src/config.rs | 2 +- rust/extractor/src/trap.rs | 14 ++++++++------ .../hello-project/test_project.py | 17 ++++++++++++++++- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/rust/extractor/src/config.rs b/rust/extractor/src/config.rs index 3f6b86d1f1f..3f3a37cf5f0 100644 --- a/rust/extractor/src/config.rs +++ b/rust/extractor/src/config.rs @@ -55,7 +55,7 @@ pub struct Config { pub cargo_all_targets: bool, pub logging_flamegraph: Option, pub logging_verbosity: Option, - pub compression: Compression, + pub trap_compression: Compression, pub inputs: Vec, pub qltest: bool, pub qltest_cargo_check: bool, diff --git a/rust/extractor/src/trap.rs b/rust/extractor/src/trap.rs index ce739e067f0..2206c4c067b 100644 --- a/rust/extractor/src/trap.rs +++ b/rust/extractor/src/trap.rs @@ -1,4 +1,3 @@ -use crate::config::Compression; use crate::{config, generated}; use codeql_extractor::{extractor, file_paths, trap}; use ra_ap_ide_db::line_index::LineCol; @@ -9,7 +8,7 @@ use std::path::{Path, PathBuf}; use tracing::debug; pub use trap::Label as UntypedLabel; -pub use trap::Writer; +pub use trap::{Compression, Writer}; pub trait AsTrapKeyPart { fn as_key_part(&self) -> String; @@ -245,8 +244,7 @@ impl TrapFile { pub fn commit(&self) -> std::io::Result<()> { std::fs::create_dir_all(self.path.parent().unwrap())?; - self.writer - .write_to_file(&self.path, self.compression.into()) + self.writer.write_to_file(&self.path, self.compression) } } @@ -261,12 +259,16 @@ impl TrapFileProvider { std::fs::create_dir_all(&trap_dir)?; Ok(TrapFileProvider { trap_dir, - compression: cfg.compression, + compression: cfg.trap_compression.into(), }) } pub fn create(&self, category: &str, key: impl AsRef) -> TrapFile { - let path = file_paths::path_for(&self.trap_dir.join(category), key.as_ref(), "trap"); + let path = file_paths::path_for( + &self.trap_dir.join(category), + key.as_ref(), + self.compression.extension(), + ); debug!("creating trap file {}", path.display()); let mut writer = trap::Writer::new(); extractor::populate_empty_location(&mut writer); diff --git a/rust/ql/integration-tests/hello-project/test_project.py b/rust/ql/integration-tests/hello-project/test_project.py index 5509bc3a93d..5b0eae903ac 100644 --- a/rust/ql/integration-tests/hello-project/test_project.py +++ b/rust/ql/integration-tests/hello-project/test_project.py @@ -10,7 +10,22 @@ def test_rust_project(codeql, rust, rust_project, check_source_archive, rust_che codeql.database.create() @pytest.mark.ql_test(None) -def test_do_not_print_env(codeql, rust, cargo, check_env_not_dumped, rust_check_diagnostics): +# parametrizing `rust_edition` allows us to skip the default parametrization over all editions +@pytest.mark.parametrize("rust_edition", [2024]) +def test_do_not_print_env(codeql, rust, rust_edition, cargo, check_env_not_dumped, rust_check_diagnostics): codeql.database.create(_env={ "CODEQL_EXTRACTOR_RUST_VERBOSE": "2", }) + +@pytest.mark.ql_test("steps.ql", expected=".cargo.expected") +@pytest.mark.parametrize(("rust_edition", "compression", "suffix"), [ + pytest.param(2024, "gzip", ".gz", id="gzip"), +]) +def test_compression(codeql, rust, rust_edition, compression, suffix, cargo, rust_check_diagnostics, cwd): + codeql.database.create(cleanup=False, _env={ + "CODEQL_EXTRACTOR_RUST_TRAP_COMPRESSION": compression, + }) + trap_files = [*(cwd / "test-db" / "trap").rglob("*.trap*")] + assert trap_files + files_with_wrong_format = [f for f in trap_files if f.suffix != suffix and f.name != "metadata.trap.gz"] + assert not files_with_wrong_format, f"Found trap files with wrong format: {files_with_wrong_format}" From 4a9e31ebd87c8b74ea9fa4b4a43ad899c57696ad Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 28 May 2025 14:15:44 +0200 Subject: [PATCH 652/656] Shared: add zstd crate to tree-sitter-extractor dependencies --- Cargo.lock | 46 +++++ MODULE.bazel | 1 + .../tree_sitter_extractors_deps/BUILD.bazel | 12 ++ .../BUILD.cc-1.2.7.bazel | 41 ++++- .../BUILD.jobserver-0.1.32.bazel | 158 ++++++++++++++++++ .../BUILD.pkg-config-0.3.32.bazel | 83 +++++++++ .../BUILD.zstd-0.13.3.bazel | 92 ++++++++++ .../BUILD.zstd-safe-7.2.4.bazel | 158 ++++++++++++++++++ .../BUILD.zstd-sys-2.0.15+zstd.1.5.7.bazel | 157 +++++++++++++++++ .../tree_sitter_extractors_deps/defs.bzl | 52 ++++++ shared/tree-sitter-extractor/Cargo.toml | 1 + 11 files changed, 800 insertions(+), 1 deletion(-) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.32.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.13.3.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.15+zstd.1.5.7.bazel diff --git a/Cargo.lock b/Cargo.lock index f425373ceea..934cae590c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -242,6 +242,8 @@ version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" dependencies = [ + "jobserver", + "libc", "shlex", ] @@ -390,6 +392,7 @@ dependencies = [ "tree-sitter", "tree-sitter-json", "tree-sitter-ql", + "zstd", ] [[package]] @@ -983,6 +986,15 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + [[package]] name = "jod-thread" version = "0.1.2" @@ -1334,6 +1346,12 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + [[package]] name = "portable-atomic" version = "1.11.0" @@ -3027,3 +3045,31 @@ dependencies = [ "quote", "syn", ] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.15+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/MODULE.bazel b/MODULE.bazel index 49ea49975bb..764eb6abe72 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -124,6 +124,7 @@ use_repo( "vendor_ts__tree-sitter-ruby-0.23.1", "vendor_ts__triomphe-0.1.14", "vendor_ts__ungrammar-1.16.1", + "vendor_ts__zstd-0.13.3", ) http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel index 1f97bfd967f..52ebf159f01 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel @@ -672,3 +672,15 @@ alias( actual = "@vendor_ts__ungrammar-1.16.1//:ungrammar", tags = ["manual"], ) + +alias( + name = "zstd-0.13.3", + actual = "@vendor_ts__zstd-0.13.3//:zstd", + tags = ["manual"], +) + +alias( + name = "zstd", + actual = "@vendor_ts__zstd-0.13.3//:zstd", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.7.bazel index 56be5f5153b..54aab54c9ca 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.7.bazel @@ -28,6 +28,9 @@ rust_library( "WORKSPACE.bazel", ], ), + crate_features = [ + "parallel", + ], crate_root = "src/lib.rs", edition = "2018", rustc_flags = [ @@ -81,6 +84,42 @@ rust_library( }), version = "1.2.7", deps = [ + "@vendor_ts__jobserver-0.1.32//:jobserver", "@vendor_ts__shlex-1.3.0//:shlex", - ], + ] + select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [ + "@vendor_ts__libc-0.2.171//:libc", # aarch64-apple-darwin + ], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # aarch64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + ], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ + "@vendor_ts__libc-0.2.171//:libc", # arm-unknown-linux-gnueabi + ], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # i686-unknown-linux-gnu + ], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # powerpc-unknown-linux-gnu + ], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # s390x-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-apple-darwin": [ + "@vendor_ts__libc-0.2.171//:libc", # x86_64-apple-darwin + ], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ + "@vendor_ts__libc-0.2.171//:libc", # x86_64-unknown-freebsd + ], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # x86_64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + ], + "//conditions:default": [], + }), ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel new file mode 100644 index 00000000000..7e041e35b8c --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel @@ -0,0 +1,158 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "jobserver", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=jobserver", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.1.32", + deps = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-apple-ios": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-linux-android": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:armv7-linux-androideabi": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:i686-apple-darwin": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:i686-linux-android": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:i686-unknown-freebsd": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-apple-darwin": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-apple-ios": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-linux-android": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ + "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + ], + "//conditions:default": [], + }), +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.32.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.32.bazel new file mode 100644 index 00000000000..8fb981887a7 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.32.bazel @@ -0,0 +1,83 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "pkg_config", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=pkg-config", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.3.32", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.13.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.13.3.bazel new file mode 100644 index 00000000000..2ba80632d93 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.13.3.bazel @@ -0,0 +1,92 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "zstd", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "arrays", + "default", + "legacy", + "zdict_builder", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=zstd", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.13.3", + deps = [ + "@vendor_ts__zstd-safe-7.2.4//:zstd_safe", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel new file mode 100644 index 00000000000..265b6514b70 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel @@ -0,0 +1,158 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "zstd_safe", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "arrays", + "legacy", + "std", + "zdict_builder", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=zstd-safe", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "7.2.4", + deps = [ + "@vendor_ts__zstd-safe-7.2.4//:build_script_build", + "@vendor_ts__zstd-sys-2.0.15-zstd.1.5.7//:zstd_sys", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "arrays", + "legacy", + "std", + "zdict_builder", + ], + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2018", + link_deps = [ + "@vendor_ts__zstd-sys-2.0.15-zstd.1.5.7//:zstd_sys", + ], + pkg_name = "zstd-safe", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=zstd-safe", + "manual", + "noclippy", + "norustfmt", + ], + version = "7.2.4", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.15+zstd.1.5.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.15+zstd.1.5.7.bazel new file mode 100644 index 00000000000..7db2ad80d02 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.15+zstd.1.5.7.bazel @@ -0,0 +1,157 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "zstd_sys", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "legacy", + "std", + "zdict_builder", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=zstd-sys", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.0.15+zstd.1.5.7", + deps = [ + "@vendor_ts__zstd-sys-2.0.15-zstd.1.5.7//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "legacy", + "std", + "zdict_builder", + ], + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2018", + links = "zstd", + pkg_name = "zstd-sys", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=zstd-sys", + "manual", + "noclippy", + "norustfmt", + ], + version = "2.0.15+zstd.1.5.7", + visibility = ["//visibility:private"], + deps = [ + "@vendor_ts__cc-1.2.7//:cc", + "@vendor_ts__pkg-config-0.3.32//:pkg_config", + ], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl index ee2044468e7..0247ee36d9f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl @@ -381,6 +381,7 @@ _NORMAL_DEPENDENCIES = { "tracing": Label("@vendor_ts__tracing-0.1.41//:tracing"), "tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.19//:tracing_subscriber"), "tree-sitter": Label("@vendor_ts__tree-sitter-0.24.6//:tree_sitter"), + "zstd": Label("@vendor_ts__zstd-0.13.3//:zstd"), }, }, } @@ -1658,6 +1659,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.itoa-1.0.15.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__jobserver-0.1.32", + sha256 = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0", + type = "tar.gz", + urls = ["https://static.crates.io/crates/jobserver/0.1.32/download"], + strip_prefix = "jobserver-0.1.32", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.jobserver-0.1.32.bazel"), + ) + maybe( http_archive, name = "vendor_ts__jod-thread-0.1.2", @@ -2048,6 +2059,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.pin-project-lite-0.2.16.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__pkg-config-0.3.32", + sha256 = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c", + type = "tar.gz", + urls = ["https://static.crates.io/crates/pkg-config/0.3.32/download"], + strip_prefix = "pkg-config-0.3.32", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.pkg-config-0.3.32.bazel"), + ) + maybe( http_archive, name = "vendor_ts__portable-atomic-1.11.0", @@ -3647,6 +3668,36 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerocopy-derive-0.8.20.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__zstd-0.13.3", + sha256 = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a", + type = "tar.gz", + urls = ["https://static.crates.io/crates/zstd/0.13.3/download"], + strip_prefix = "zstd-0.13.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zstd-0.13.3.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__zstd-safe-7.2.4", + sha256 = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d", + type = "tar.gz", + urls = ["https://static.crates.io/crates/zstd-safe/7.2.4/download"], + strip_prefix = "zstd-safe-7.2.4", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zstd-safe-7.2.4.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__zstd-sys-2.0.15-zstd.1.5.7", + sha256 = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237", + type = "tar.gz", + urls = ["https://static.crates.io/crates/zstd-sys/2.0.15+zstd.1.5.7/download"], + strip_prefix = "zstd-sys-2.0.15+zstd.1.5.7", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zstd-sys-2.0.15+zstd.1.5.7.bazel"), + ) + return [ struct(repo = "vendor_ts__anyhow-1.0.97", is_dev_dep = False), struct(repo = "vendor_ts__argfile-0.2.1", is_dev_dep = False), @@ -3698,6 +3749,7 @@ def crate_repositories(): struct(repo = "vendor_ts__tree-sitter-ruby-0.23.1", is_dev_dep = False), struct(repo = "vendor_ts__triomphe-0.1.14", is_dev_dep = False), struct(repo = "vendor_ts__ungrammar-1.16.1", is_dev_dep = False), + struct(repo = "vendor_ts__zstd-0.13.3", is_dev_dep = False), struct(repo = "vendor_ts__rand-0.9.0", is_dev_dep = True), struct(repo = "vendor_ts__tree-sitter-json-0.24.8", is_dev_dep = True), struct(repo = "vendor_ts__tree-sitter-ql-0.23.1", is_dev_dep = True), diff --git a/shared/tree-sitter-extractor/Cargo.toml b/shared/tree-sitter-extractor/Cargo.toml index 6bbda6dc83b..3bda73a774d 100644 --- a/shared/tree-sitter-extractor/Cargo.toml +++ b/shared/tree-sitter-extractor/Cargo.toml @@ -19,6 +19,7 @@ serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" chrono = { version = "0.4.40", features = ["serde"] } num_cpus = "1.16.0" +zstd = "0.13.3" [dev-dependencies] tree-sitter-ql = "0.23.1" From 923a2854cb3c9718f98bbff24fbcda3db23c7885 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 28 May 2025 16:09:03 +0200 Subject: [PATCH 653/656] Ruby, Rust: add `zstd` compression option --- ruby/codeql-extractor.yml | 6 +++--- rust/codeql-extractor.yml | 6 +++--- rust/extractor/src/config.rs | 2 ++ .../hello-project/test_project.py | 1 + shared/tree-sitter-extractor/src/trap.rs | 17 +++++++++++++++-- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/ruby/codeql-extractor.yml b/ruby/codeql-extractor.yml index 9b949a1a4ab..abb50db2a29 100644 --- a/ruby/codeql-extractor.yml +++ b/ruby/codeql-extractor.yml @@ -27,7 +27,7 @@ options: title: Controls compression for the TRAP files written by the extractor. description: > This option is only intended for use in debugging the extractor. Accepted - values are 'gzip' (the default, to write gzip-compressed TRAP) and 'none' - (to write uncompressed TRAP). + values are 'gzip' (the default, to write gzip-compressed TRAP) 'zstd' (to + write Zstandard-compressed TRAP) and 'none' (to write uncompressed TRAP). type: string - pattern: "^(none|gzip)$" + pattern: "^(none|gzip|zstd)$" diff --git a/rust/codeql-extractor.yml b/rust/codeql-extractor.yml index 0ba77ee88d1..464a13e1c09 100644 --- a/rust/codeql-extractor.yml +++ b/rust/codeql-extractor.yml @@ -23,10 +23,10 @@ options: title: Controls compression for the TRAP files written by the extractor. description: > This option is only intended for use in debugging the extractor. Accepted - values are 'gzip' (to write gzip-compressed TRAP) and 'none' - (currently the default, to write uncompressed TRAP). + values are 'gzip' (the default, to write gzip-compressed TRAP) 'zstd' (to + write Zstandard-compressed TRAP) and 'none' (to write uncompressed TRAP). type: string - pattern: "^(none|gzip)$" + pattern: "^(none|gzip|zstd)$" cargo_target_dir: title: Directory to use for cargo output files. description: > diff --git a/rust/extractor/src/config.rs b/rust/extractor/src/config.rs index 3f3a37cf5f0..8124f825da3 100644 --- a/rust/extractor/src/config.rs +++ b/rust/extractor/src/config.rs @@ -29,6 +29,7 @@ pub enum Compression { #[default] // TODO make gzip default None, Gzip, + Zstd, } impl From for trap::Compression { @@ -36,6 +37,7 @@ impl From for trap::Compression { match val { Compression::None => Self::None, Compression::Gzip => Self::Gzip, + Compression::Zstd => Self::Zstd, } } } diff --git a/rust/ql/integration-tests/hello-project/test_project.py b/rust/ql/integration-tests/hello-project/test_project.py index 5b0eae903ac..a8c5e3384fb 100644 --- a/rust/ql/integration-tests/hello-project/test_project.py +++ b/rust/ql/integration-tests/hello-project/test_project.py @@ -20,6 +20,7 @@ def test_do_not_print_env(codeql, rust, rust_edition, cargo, check_env_not_dumpe @pytest.mark.ql_test("steps.ql", expected=".cargo.expected") @pytest.mark.parametrize(("rust_edition", "compression", "suffix"), [ pytest.param(2024, "gzip", ".gz", id="gzip"), + pytest.param(2024, "zstd", ".zst", id="zstd"), ]) def test_compression(codeql, rust, rust_edition, compression, suffix, cargo, rust_check_diagnostics, cwd): codeql.database.create(cleanup=False, _env={ diff --git a/shared/tree-sitter-extractor/src/trap.rs b/shared/tree-sitter-extractor/src/trap.rs index 4ad1e48eb6b..a636dc88551 100644 --- a/shared/tree-sitter-extractor/src/trap.rs +++ b/shared/tree-sitter-extractor/src/trap.rs @@ -96,10 +96,17 @@ impl Writer { self.write_trap_entries(&mut trap_file) } Compression::Gzip => { - let trap_file = GzEncoder::new(trap_file, flate2::Compression::fast()); + let trap_file = GzEncoder::new(trap_file, Compression::GZIP_LEVEL); let mut trap_file = BufWriter::new(trap_file); self.write_trap_entries(&mut trap_file) } + Compression::Zstd => { + let trap_file = zstd::stream::Encoder::new(trap_file, Compression::ZSTD_LEVEL)?; + let mut trap_file = BufWriter::new(trap_file); + self.write_trap_entries(&mut trap_file)?; + trap_file.into_inner()?.finish()?; + Ok(()) + } } } @@ -107,7 +114,7 @@ impl Writer { for trap_entry in &self.trap_output { writeln!(file, "{}", trap_entry)?; } - std::io::Result::Ok(()) + Ok(()) } } @@ -280,9 +287,13 @@ fn limit_string(string: &str, max_size: usize) -> &str { pub enum Compression { None, Gzip, + Zstd, } impl Compression { + pub const ZSTD_LEVEL: i32 = 2; + pub const GZIP_LEVEL: flate2::Compression = flate2::Compression::fast(); + pub fn from_env(var_name: &str) -> Result { match std::env::var(var_name) { Ok(method) => match Compression::from_string(&method) { @@ -298,6 +309,7 @@ impl Compression { match s.to_lowercase().as_ref() { "none" => Some(Compression::None), "gzip" => Some(Compression::Gzip), + "zstd" => Some(Compression::Zstd), _ => None, } } @@ -306,6 +318,7 @@ impl Compression { match self { Compression::None => "trap", Compression::Gzip => "trap.gz", + Compression::Zstd => "trap.zst", } } } From 8248c50bdfeae82310104bb5e4705f80c579fab4 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 28 May 2025 16:38:25 +0200 Subject: [PATCH 654/656] Rust: add `none` compression integration test --- .../hello-project/test_project.py | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/rust/ql/integration-tests/hello-project/test_project.py b/rust/ql/integration-tests/hello-project/test_project.py index a8c5e3384fb..7f53e78f7d4 100644 --- a/rust/ql/integration-tests/hello-project/test_project.py +++ b/rust/ql/integration-tests/hello-project/test_project.py @@ -19,14 +19,25 @@ def test_do_not_print_env(codeql, rust, rust_edition, cargo, check_env_not_dumpe @pytest.mark.ql_test("steps.ql", expected=".cargo.expected") @pytest.mark.parametrize(("rust_edition", "compression", "suffix"), [ - pytest.param(2024, "gzip", ".gz", id="gzip"), - pytest.param(2024, "zstd", ".zst", id="zstd"), + pytest.param(2024, "none", [], id="none"), + pytest.param(2024, "gzip", [".gz"], id="gzip"), + pytest.param(2024, "zstd", [".zst"], id="zstd"), ]) def test_compression(codeql, rust, rust_edition, compression, suffix, cargo, rust_check_diagnostics, cwd): - codeql.database.create(cleanup=False, _env={ - "CODEQL_EXTRACTOR_RUST_TRAP_COMPRESSION": compression, - }) + codeql.database.create( + _env={ + "CODEQL_EXTRACTOR_RUST_OPTION_TRAP_COMPRESSION": compression, + } + ) trap_files = [*(cwd / "test-db" / "trap").rglob("*.trap*")] - assert trap_files - files_with_wrong_format = [f for f in trap_files if f.suffix != suffix and f.name != "metadata.trap.gz"] - assert not files_with_wrong_format, f"Found trap files with wrong format: {files_with_wrong_format}" + assert trap_files, "No trap files found" + expected_suffixes = [".trap"] + suffix + + def is_of_expected_format(file): + return file.name == "metadata.trap.gz" or \ + file.suffixes[-len(expected_suffixes):] == expected_suffixes + + files_with_wrong_format = [ + f for f in trap_files if not is_of_expected_format(f) + ] + assert not files_with_wrong_format, f"Found trap files with wrong format" From fd00ed502d40e261e33d37dd8f9a5d6b7a39060c Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 28 May 2025 16:38:36 +0200 Subject: [PATCH 655/656] Ruby: add compression integration test --- .../compression/methods.expected | 1 + .../integration-tests/compression/methods.ql | 4 +++ .../integration-tests/compression/source.rb | 3 +++ ruby/ql/integration-tests/compression/test.py | 26 +++++++++++++++++++ 4 files changed, 34 insertions(+) create mode 100644 ruby/ql/integration-tests/compression/methods.expected create mode 100644 ruby/ql/integration-tests/compression/methods.ql create mode 100644 ruby/ql/integration-tests/compression/source.rb create mode 100644 ruby/ql/integration-tests/compression/test.py diff --git a/ruby/ql/integration-tests/compression/methods.expected b/ruby/ql/integration-tests/compression/methods.expected new file mode 100644 index 00000000000..2bdc091c80d --- /dev/null +++ b/ruby/ql/integration-tests/compression/methods.expected @@ -0,0 +1 @@ +| source.rb:1:1:3:3 | f | diff --git a/ruby/ql/integration-tests/compression/methods.ql b/ruby/ql/integration-tests/compression/methods.ql new file mode 100644 index 00000000000..208d26dee63 --- /dev/null +++ b/ruby/ql/integration-tests/compression/methods.ql @@ -0,0 +1,4 @@ +import codeql.ruby.AST + +from Method m +select m diff --git a/ruby/ql/integration-tests/compression/source.rb b/ruby/ql/integration-tests/compression/source.rb new file mode 100644 index 00000000000..360eabdab75 --- /dev/null +++ b/ruby/ql/integration-tests/compression/source.rb @@ -0,0 +1,3 @@ +def f + puts "hello" +end diff --git a/ruby/ql/integration-tests/compression/test.py b/ruby/ql/integration-tests/compression/test.py new file mode 100644 index 00000000000..6976b063d3e --- /dev/null +++ b/ruby/ql/integration-tests/compression/test.py @@ -0,0 +1,26 @@ +import pytest + + +@pytest.mark.parametrize(("compression", "suffix"), [ + pytest.param("none", [], id="none"), + pytest.param("gzip", [".gz"], id="gzip"), + pytest.param("zstd", [".zst"], id="zstd"), +]) +def test(codeql, ruby, compression, suffix, cwd): + codeql.database.create( + _env={ + "CODEQL_EXTRACTOR_RUBY_OPTION_TRAP_COMPRESSION": compression, + } + ) + trap_files = [*(cwd / "test-db" / "trap").rglob("*.trap*")] + assert trap_files, "No trap files found" + expected_suffixes = [".trap"] + suffix + + def is_of_expected_format(file): + return file.name == "metadata.trap.gz" or \ + file.suffixes[-len(expected_suffixes):] == expected_suffixes + + files_with_wrong_format = [ + f for f in trap_files if not is_of_expected_format(f) + ] + assert not files_with_wrong_format, f"Found trap files with wrong format" From c8f5e26200f8eb91650185ed41395d8424ab2952 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 28 May 2025 16:48:02 +0200 Subject: [PATCH 656/656] Rust: fix compression option description --- rust/codeql-extractor.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rust/codeql-extractor.yml b/rust/codeql-extractor.yml index 464a13e1c09..ce876e8d3ff 100644 --- a/rust/codeql-extractor.yml +++ b/rust/codeql-extractor.yml @@ -23,8 +23,9 @@ options: title: Controls compression for the TRAP files written by the extractor. description: > This option is only intended for use in debugging the extractor. Accepted - values are 'gzip' (the default, to write gzip-compressed TRAP) 'zstd' (to - write Zstandard-compressed TRAP) and 'none' (to write uncompressed TRAP). + values are 'gzip' (to write gzip-compressed TRAP) 'zstd' (to write + Zstandard-compressed TRAP) and 'none' (the default, to write uncompressed + TRAP). type: string pattern: "^(none|gzip|zstd)$" cargo_target_dir: